应用层PC端前端服务

caseentryDialog.vue 44KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231
  1. <template>
  2. <div>
  3. <el-dialog :title="dialogtitle" :visible="visible" @close="cancel" width="1000px" append-to-body
  4. :destroy-on-close="true" center>
  5. <!-- tab页 -->
  6. <el-tabs v-model="activeName" @tab-click="handleClick" v-show="form.id != undefined && form.id != null">
  7. <el-tab-pane label="案件基本信息" name="first"></el-tab-pane>
  8. <el-tab-pane label="自定义抓取内容" name="second"></el-tab-pane>
  9. </el-tabs>
  10. <div v-show="activeName=='first'">
  11. <!-- 案件信息 -->
  12. <el-form ref="form" :model="formData" :rules="rules" label-width="150px" :disabled="flag == '0'">
  13. <div style="display: inline-flex">
  14. <div class="infoIcon"></div>
  15. <div class="caseInfo">案件信息:</div>
  16. </div>
  17. <el-divider></el-divider>
  18. <el-row>
  19. <el-col :span="12">
  20. <el-form-item label="案件编号:" prop="caseNum" v-if="flag !== '2'">
  21. <el-input v-model="formData.caseNum" placeholder="请输入案件编号" :disabled="flag == '1'" />
  22. </el-form-item>
  23. </el-col>
  24. <el-col :span="12">
  25. <!-- :disabled="flag == '1'" -->
  26. <el-form-item label="案件名称:" prop="caseName">
  27. <el-input v-model="formData.caseName" placeholder="请输入案件名称" />
  28. </el-form-item>
  29. </el-col>
  30. <el-col :span="12">
  31. <el-form-item label="案件标的:" prop="caseSubjectAmount">
  32. <el-input v-model="formData.caseSubjectAmount" placeholder="请输入案件标的"
  33. @input="numberFn('caseSubjectAmount')" />
  34. </el-form-item>
  35. </el-col>
  36. <el-col :span="12">
  37. <el-form-item label="借款开始日期:" prop="loanStartDate">
  38. <el-date-picker v-model="formData.loanStartDate" type="datetime" placeholder="借款开始日期"
  39. >
  40. </el-date-picker>
  41. </el-form-item>
  42. </el-col>
  43. <el-col :span="12">
  44. <el-form-item label="借款结束日期:" prop="loanEndDate">
  45. <el-date-picker v-model="formData.loanEndDate" type="datetime" placeholder="借款结束日期" @change="setEndTime">
  46. </el-date-picker>
  47. </el-form-item>
  48. </el-col>
  49. <el-col :span="12">
  50. <el-form-item label="合同编号:" prop="contractNumber">
  51. <el-input v-model="formData.contractNumber" placeholder="请输入" />
  52. </el-form-item>
  53. </el-col>
  54. <el-col :span="12">
  55. <el-form-item label="申请人主张欠本金:" prop="claimPrinciOwed">
  56. <el-input v-model="formData.claimPrinciOwed" placeholder="请输入" @input="numberFn('claimPrinciOwed')" />
  57. </el-form-item>
  58. </el-col>
  59. <el-col :span="12">
  60. <el-form-item label="申请人主张欠利息:" prop="claimInterestOwed">
  61. <el-input v-model="formData.claimInterestOwed" placeholder="请输入" @input="numberFn('claimInterestOwed')" />
  62. </el-form-item>
  63. </el-col>
  64. <el-col :span="12">
  65. <el-form-item label="申请人主张违约金:" prop="claimLiquidDamag">
  66. <el-input v-model="formData.claimLiquidDamag" placeholder="请输入" @input="numberFn('claimLiquidDamag')" />
  67. </el-form-item>
  68. </el-col>
  69. <el-col :span="24">
  70. <el-form-item label="申请人请求仲裁庭裁决:" prop="requestRule">
  71. <el-input v-model="formData.requestRule" placeholder="请输入申请人请求仲裁庭裁决" type="textarea"
  72. :autosize="{ minRows: 4, maxRows: 8 }" />
  73. </el-form-item>
  74. </el-col>
  75. <el-col :span="24">
  76. <el-form-item label="是否财产保全申请:" prop="properPreser">
  77. <el-radio-group v-model="formData.properPreser">
  78. <el-radio :label="1">是</el-radio>
  79. <el-radio :label="0">否</el-radio>
  80. </el-radio-group>
  81. </el-form-item>
  82. </el-col>
  83. <el-col :span="24">
  84. <el-form-item label="是否书面审理" prop="applicantIsWrittenHear">
  85. <el-radio-group v-model="formData.applicantIsWrittenHear">
  86. <el-radio :label="1">是</el-radio>
  87. <el-radio :label="0">否</el-radio>
  88. </el-radio-group>
  89. </el-form-item>
  90. </el-col>
  91. <!-- 应缴费用 -->
  92. <el-col :span="12" v-if="flag == 0">
  93. <el-form-item label="应缴费用:" prop="feePayable">
  94. <el-input v-model="formData.feePayable" placeholder="请输入" />
  95. </el-form-item>
  96. </el-col>
  97. <!-- 申请人仲裁诉求 -->
  98. <el-col :span="24">
  99. <el-form-item label="申请人仲裁请求" prop="arbitratClaims">
  100. <el-input v-model="formData.arbitratClaims" placeholder="请输入申请人仲裁诉求" type="textarea"
  101. :autosize="{ minRows: 4, maxRows: 8 }" />
  102. </el-form-item>
  103. </el-col>
  104. <el-col :span="24">
  105. <el-form-item label="事实和理由" prop="facts">
  106. <el-input v-model="formData.facts" placeholder="请输入事实和理由" type="textarea"
  107. :autosize="{ minRows: 4, maxRows: 8 }" />
  108. </el-form-item>
  109. </el-col>
  110. <el-col :span="12">
  111. <el-form-item label="申请人案件证据资料上传:" prop="applicantEvidence" v-if="flag !== '0'">
  112. <el-upload class="upload-demo" ref="fileupload" accept=".png,.jpg,.doc,.docx,.txt,.pdf"
  113. :action="UploadUrl()" :on-success="handlSuccess" :on-remove="handleRemove" :on-preview="handlePreview"
  114. :before-remove="beforeRemove" :data="filedata" :headers="headers" multiple :limit="50"
  115. :on-exceed="handleExceed" :file-list="fileList">
  116. <el-button size="small" type="primary">点击上传</el-button>
  117. <div slot="tip" class="el-upload__tip">
  118. 文件支持上传.jpg,png,.doc,docx,.txt,.pdf文件
  119. </div>
  120. </el-upload>
  121. </el-form-item>
  122. </el-col>
  123. <el-col :span="24" v-if="flag == '2'">
  124. <el-form-item label="裁决书模板" prop="templateId">
  125. <el-select placeholder="请选择裁决书模板" v-model="formData.templateId">
  126. <el-option v-for="item in templateList" :label="item.temName" :key="item.id" :value="item.id"></el-option>
  127. </el-select>
  128. </el-form-item>
  129. </el-col>
  130. <el-col :span="12">
  131. <el-form-item label="申请人案件证据资料:" v-if="flag == '0' &&
  132. caseAttachList.length > 0 &&
  133. applicateArr.length > 0
  134. ">
  135. <div v-for="(item, index) in applicateArr" :key="index">
  136. <a href="#" @click="toFile(item, index)" style="color: blue">
  137. {{ item.annexName }}
  138. </a>
  139. </div>
  140. </el-form-item>
  141. </el-col>
  142. <!-- 仅详情展示 案件质证环节以后显示被申请人证据-->
  143. <el-col :span="12">
  144. <el-form-item label="被申请人案件证据资料:" prop="respondentEvidence" v-if="flag == '0' && caseAttachList.length > 0 && quiltArr.length > 0
  145. ">
  146. <div v-for="(item, index) in quiltArr" :key="index">
  147. <a href="#" @click="toFile1(item, index)" style="color: blue">
  148. {{ item.annexName }}
  149. </a>
  150. </div>
  151. <!-- <el-upload
  152. class="upload-demo"
  153. action="https://jsonplaceholder.typicode.com/posts/"
  154. :on-preview="handlePreview"
  155. :on-remove="handleRemove"
  156. :before-remove="beforeRemove"
  157. multiple
  158. :limit="3"
  159. :on-exceed="handleExceed"
  160. :file-list="fileList"
  161. >
  162. <el-button size="small" type="primary">点击上传</el-button>
  163. <div slot="tip" class="el-upload__tip">
  164. 只能上传jpg/png文件,且不超过500kb
  165. </div>
  166. </el-upload> -->
  167. </el-form-item>
  168. </el-col>
  169. </el-row>
  170. </el-form>
  171. <!-- 申请人主体信息 -->
  172. <el-form ref="form2" :model="form2" label-width="150px" :disabled="flag == '0'">
  173. <div v-for="(item, index) in form2.paymentArr" :key="index">
  174. <div style="display: flex; justify-content: space-between">
  175. <div style="display: inline-flex">
  176. <div class="infoIcon"></div>
  177. <div class="caseInfo">申请人主体信息:</div>
  178. </div>
  179. <!-- <p>申请人主体信息:</p> -->
  180. <el-button type="danger" icon="el-icon-delete" @click="deleteData(index)"
  181. v-if="form2.paymentArr.length > 1 && flag != '0'"></el-button>
  182. </div>
  183. <el-divider></el-divider>
  184. <el-row>
  185. <el-col :span="12">
  186. <el-form-item label="申请人(机构):" :prop="'paymentArr.' + index + '.name'" :rules="[
  187. {
  188. required: true,
  189. message: '申请人不能为空',
  190. trigger: 'blur',
  191. },
  192. { max: 50, message: '长度应小于50个字符', trigger: 'blur' }
  193. ]">
  194. <el-input v-model="item.name" placeholder="请输入" />
  195. </el-form-item>
  196. </el-col>
  197. <el-col :span="12">
  198. <el-form-item label="代码:" :prop="'paymentArr.' + index + '.identityNum'" :rules="[
  199. { max: 50, message: '长度应小于50个字符', trigger: 'blur' }
  200. ]">
  201. <el-input v-model="item.identityNum" placeholder="请输入" />
  202. </el-form-item>
  203. </el-col>
  204. <el-col :span="12">
  205. <el-form-item label="联系电话:" :prop="'paymentArr.' + index + '.contactTelphone'" :rules="[
  206. {
  207. required: true,
  208. message: '联系电话不能为空',
  209. trigger: 'blur',
  210. },
  211. {
  212. pattern: /^[1][3,4,5,6,7,8,9][0-9]{9}$/,
  213. message: '请输入正确的手机号码',
  214. trigger: 'blur',
  215. },
  216. ]">
  217. <el-input v-model="item.contactTelphone" placeholder="请输入" />
  218. </el-form-item>
  219. </el-col>
  220. <!-- 新增申请人邮箱 -->
  221. <el-col :span="12">
  222. <el-form-item label="邮箱" :prop="'paymentArr.' + index + '.email'" :rules="[
  223. {
  224. required: true,
  225. message: '邮箱地址不能为空',
  226. trigger: 'blur',
  227. },
  228. {
  229. pattern:
  230. /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/,
  231. message: '请输入正确的邮箱地址',
  232. trigger: 'blur',
  233. },
  234. ]">
  235. <el-input
  236. v-model="item.email"
  237. placeholder="请输入电子邮件"
  238. />
  239. </el-form-item>
  240. </el-col>
  241. <el-col :span="12">
  242. <el-form-item label="单位地址:" :prop="'paymentArr.' + index + '.workAddress'" :rules="[
  243. {
  244. required: true,
  245. message: '单位地址不能为空',
  246. trigger: 'blur',
  247. },
  248. { max: 50, message: '长度应小于50个字符', trigger: 'blur' }
  249. ]">
  250. <el-input v-model="item.workAddress" placeholder="请输入" />
  251. </el-form-item>
  252. </el-col>
  253. <el-col :span="12">
  254. <el-form-item label="单位电话:" :prop="'paymentArr.' + index + '.workTelphone'" :rules="[
  255. {
  256. required: true,
  257. message: '单位电话不能为空',
  258. trigger: 'blur',
  259. },
  260. ]">
  261. <el-input v-model="item.workTelphone" placeholder="请输入" />
  262. </el-form-item>
  263. </el-col>
  264. <el-col :span="12">
  265. <el-form-item label="联系地址:" :prop="'paymentArr.' + index + '.contactAddress'" :rules="[
  266. {
  267. required: true,
  268. message: '联系地址不能为空',
  269. trigger: 'blur',
  270. },
  271. { max: 50, message: '长度应小于50个字符', trigger: 'blur' }
  272. ]">
  273. <el-input v-model="item.contactAddress" placeholder="请输入" />
  274. </el-form-item>
  275. </el-col>
  276. <el-col :span="12">
  277. <el-form-item label="申请人住所:" :prop="'paymentArr.' + index + '.residenAffili'" :rules="[
  278. {
  279. required: true,
  280. message: '申请人住所不能为空',
  281. trigger: 'blur',
  282. },
  283. { max: 50, message: '长度应小于50个字符', trigger: 'blur' }
  284. ]">
  285. <el-input v-model="item.residenAffili" placeholder="请输入" />
  286. </el-form-item>
  287. </el-col>
  288. <el-col :span="12">
  289. <el-form-item label="法定代表人:" :prop="'paymentArr.' + index + '.compLegalPerson'" :rules="[
  290. {
  291. required: true,
  292. message: '法定代表人不能为空',
  293. trigger: 'blur',
  294. },
  295. { max: 50, message: '长度应小于50个字符', trigger: 'blur' }
  296. ]">
  297. <el-input v-model="item.compLegalPerson" placeholder="请输入" />
  298. </el-form-item>
  299. </el-col>
  300. <el-col :span="12">
  301. <el-form-item label="法定代表人职位:" :prop="'paymentArr.' + index + '.compLegalperPost'" :rules="[
  302. {
  303. required: true,
  304. message: '法定代表人职位不能为空',
  305. trigger: 'blur',
  306. },
  307. { max: 50, message: '长度应小于50个字符', trigger: 'blur' }
  308. ]">
  309. <el-input v-model="item.compLegalperPost" placeholder="请输入" />
  310. </el-form-item>
  311. </el-col>
  312. </el-row>
  313. <div style="display: inline-flex">
  314. <div class="infoIcon"></div>
  315. <div class="caseInfo2">代理人信息:</div>
  316. </div>
  317. <!-- <p>代理人信息:</p> -->
  318. <el-row>
  319. <el-col :span="12">
  320. <el-form-item label="姓名:" :prop="'paymentArr.' + index + '.nameAgent'" :rules="[
  321. {
  322. message: '姓名不能为空',
  323. trigger: 'blur',
  324. },
  325. { max: 20, message: '长度应小于20个字符', trigger: 'blur' }
  326. ]">
  327. <el-input v-model="item.nameAgent" placeholder="请输入" />
  328. </el-form-item>
  329. </el-col>
  330. <el-col :span="12">
  331. <el-form-item label="身份证号:" :prop="'paymentArr.' + index + '.identityNumAgent'" :rules="[
  332. {
  333. message: '身份证号不能为空',
  334. trigger: 'blur',
  335. },
  336. {
  337. pattern:
  338. /^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/,
  339. message: '请输入正确的身份证号码',
  340. trigger: 'blur',
  341. },
  342. ]">
  343. <el-input v-model="item.identityNumAgent" placeholder="请输入" />
  344. </el-form-item>
  345. </el-col>
  346. <el-col :span="12">
  347. <el-form-item label="联系电话:" :prop="'paymentArr.' + index + '.contactTelphoneAgent'" :rules="[
  348. {
  349. message: '联系电话不能为空',
  350. trigger: 'blur',
  351. },
  352. {
  353. pattern: /^[1][3,4,5,6,7,8,9][0-9]{9}$/,
  354. message: '请输入正确的手机号码',
  355. trigger: 'blur',
  356. },
  357. ]">
  358. <el-input v-model="item.contactTelphoneAgent" placeholder="请输入" />
  359. </el-form-item>
  360. </el-col>
  361. <el-col :span="12">
  362. <el-form-item label="联系地址:" :prop="'paymentArr.' + index + '.contactAddressAgent'" :rules="[
  363. {
  364. message: '联系地址不能为空',
  365. trigger: 'blur',
  366. },
  367. { max: 50, message: '长度应小于50个字符', trigger: 'blur' }
  368. ]">
  369. <el-input v-model="item.contactAddressAgent" placeholder="请输入" />
  370. </el-form-item>
  371. </el-col>
  372. </el-row>
  373. </div>
  374. </el-form>
  375. <!-- <el-button
  376. v-if="flag == 1 || flag == 2"
  377. type="primary"
  378. plain
  379. @click="generateForm"
  380. >新增申请人主体信息</el-button
  381. > -->
  382. <!-- 被申请人主体信息 -->
  383. <el-form ref="form3" label-width="150px" :disabled="flag == '0'" :model="form3">
  384. <div v-for="(itm, index) in form3.paymentArr1" :key="index + form2.paymentArr.length">
  385. <div style="display: flex; justify-content: space-between">
  386. <div style="display: inline-flex">
  387. <div class="infoIcon"></div>
  388. <div class="caseInfo">被申请人主体信息:</div>
  389. </div>
  390. <!-- <p>被申请人主体信息:</p> -->
  391. <el-button type="danger" icon="el-icon-delete" @click="deleteData1(index)"
  392. v-if="form3.paymentArr1.length > 1 && flag != '0'"></el-button>
  393. </div>
  394. <el-divider></el-divider>
  395. <el-row>
  396. <el-col :span="12">
  397. <el-form-item label="被申请人姓名" :prop="'paymentArr1.' + index + '.name'" :rules="[
  398. {
  399. required: true,
  400. message: '被申请人不能为空',
  401. trigger: 'blur',
  402. },
  403. { max: 20, message: '长度应小于20个字符', trigger: 'blur' }
  404. ]">
  405. <el-input v-model="itm.name" placeholder="请输入" />
  406. </el-form-item>
  407. </el-col>
  408. <el-col :span="12">
  409. <el-form-item label="身份证号:" :prop="'paymentArr1.' + index + '.identityNum'" :rules="[
  410. {
  411. required: true,
  412. message: '身份证号不能为空',
  413. trigger: 'blur',
  414. },
  415. {
  416. pattern:
  417. /^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/,
  418. message: '请输入正确的身份证号码',
  419. trigger: 'blur',
  420. },
  421. ]">
  422. <el-input v-model="itm.identityNum" placeholder="请输入" />
  423. </el-form-item>
  424. </el-col>
  425. <el-col :span="12">
  426. <el-form-item label="联系电话:" :prop="'paymentArr1.' + index + '.contactTelphone'" :rules="[
  427. {
  428. required: true,
  429. message: '联系电话不能为空',
  430. trigger: 'blur',
  431. },
  432. {
  433. pattern: /^[1][3,4,5,6,7,8,9][0-9]{9}$/,
  434. message: '请输入正确的手机号码',
  435. trigger: 'blur',
  436. },
  437. ]">
  438. <el-input v-model="itm.contactTelphone" placeholder="请输入" />
  439. </el-form-item>
  440. </el-col>
  441. <el-col :span="12">
  442. <el-form-item label="邮箱" :prop="'paymentArr1.' + index + '.email'" :rules="[
  443. {
  444. required: true,
  445. message: '邮箱地址不能为空',
  446. trigger: 'blur',
  447. },
  448. {
  449. pattern:
  450. /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/,
  451. message: '请输入正确的邮箱地址',
  452. trigger: 'blur',
  453. },
  454. ]">
  455. <el-input
  456. v-model="itm.email"
  457. placeholder="请输入电子邮件"
  458. />
  459. </el-form-item>
  460. </el-col>
  461. <el-col :span="12">
  462. <el-form-item label="单位地址:" :prop="'paymentArr1.' + index + '.workAddress'" :rules="[
  463. {
  464. required: true,
  465. message: '单位地址不能为空',
  466. trigger: 'blur',
  467. },
  468. { max: 50, message: '长度应小于50个字符', trigger: 'blur' }
  469. ]">
  470. <el-input v-model="itm.workAddress" placeholder="请输入" />
  471. </el-form-item>
  472. </el-col>
  473. <el-col :span="12">
  474. <el-form-item label="单位电话:" :prop="'paymentArr1.' + index + '.workTelphone'" :rules="[
  475. {
  476. required: true,
  477. message: '单位电话不能为空',
  478. trigger: 'blur',
  479. },
  480. ]">
  481. <el-input v-model="itm.workTelphone" placeholder="请输入" />
  482. </el-form-item>
  483. </el-col>
  484. <el-col :span="12">
  485. <el-form-item label="联系地址:" :prop="'paymentArr1.' + index + '.contactAddress'" :rules="[
  486. {
  487. required: true,
  488. message: '联系地址不能为空',
  489. trigger: 'blur',
  490. },
  491. { max: 50, message: '长度应小于50个字符', trigger: 'blur' }
  492. ]">
  493. <el-input v-model="itm.contactAddress" placeholder="请输入" />
  494. </el-form-item>
  495. </el-col>
  496. <el-col :span="12">
  497. <el-form-item label="被申请人住所:" :prop="'paymentArr1.' + index + '.residenAffili'" :rules="[
  498. {
  499. required: true,
  500. message: '被申请人住所不能为空',
  501. trigger: 'blur',
  502. },
  503. { max: 50, message: '长度应小于50个字符', trigger: 'blur' }
  504. ]">
  505. <el-input v-model="itm.residenAffili" placeholder="请输入" />
  506. </el-form-item>
  507. </el-col>
  508. <el-col :span="12">
  509. <el-form-item label="被申请人性别:" :prop="'paymentArr1.' + index + '.responSex'" :rules="[
  510. {
  511. required: true,
  512. message: '请选择性别'
  513. },
  514. ]">
  515. <el-radio-group v-model="itm.responSex">
  516. <el-radio label="0">男</el-radio>
  517. <el-radio label="1">女</el-radio>
  518. </el-radio-group>
  519. </el-form-item>
  520. </el-col>
  521. <el-col :span="12">
  522. <el-form-item label="被申请人出生年月日:" :prop="'paymentArr1.' + index + '.responBirth'" :rules="[
  523. {
  524. required: true,
  525. message: '被申请人出生年月日不能为空',
  526. trigger: 'blur',
  527. },
  528. ]">
  529. <el-date-picker v-model="itm.responBirth" :picker-options="pickerOptions" type="date"
  530. placeholder="被申请人出生年月日">
  531. </el-date-picker>
  532. </el-form-item>
  533. </el-col>
  534. </el-row>
  535. <div style="display: inline-flex">
  536. <div class="infoIcon"></div>
  537. <div class="caseInfo2">代理人信息:</div>
  538. </div>
  539. <!-- <p>代理人信息:</p> -->
  540. <el-row>
  541. <el-col :span="12">
  542. <el-form-item label="姓名:" :prop="'paymentArr1.' + index + '.nameAgent'" :rules="[
  543. {
  544. required: true,
  545. message: '姓名不能为空',
  546. trigger: 'blur',
  547. },
  548. { max: 20, message: '长度应小于20个字符', trigger: 'blur' }
  549. ]">
  550. <el-input v-model="itm.nameAgent" placeholder="请输入" />
  551. </el-form-item>
  552. </el-col>
  553. <el-col :span="12">
  554. <!-- -->
  555. <el-form-item label="身份证号:" :prop="'paymentArr1.' + index + '.identityNumAgent'" :rules="[
  556. {
  557. required: true,
  558. message: '身份证号不能为空',
  559. trigger: 'blur',
  560. },
  561. {
  562. pattern:
  563. /^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/,
  564. message: '请输入正确的身份证号码',
  565. trigger: 'blur',
  566. },
  567. ]">
  568. <el-input v-model="itm.identityNumAgent" placeholder="请输入" />
  569. </el-form-item>
  570. </el-col>
  571. <el-col :span="12">
  572. <el-form-item label="联系电话:" :prop="'paymentArr1.' + index + '.contactTelphoneAgent'" :rules="[
  573. {
  574. required: true,
  575. message: '联系电话不能为空',
  576. trigger: 'blur',
  577. },
  578. {
  579. pattern: /^[1][3,4,5,6,7,8,9][0-9]{9}$/,
  580. message: '请输入正确的手机号码',
  581. trigger: 'blur',
  582. },
  583. ]">
  584. <el-input v-model="itm.contactTelphoneAgent" placeholder="请输入" />
  585. </el-form-item>
  586. </el-col>
  587. <el-col :span="12">
  588. <el-form-item label="联系地址:" :prop="'paymentArr1.' + index + '.contactAddressAgent'" :rules="[
  589. {
  590. required: true,
  591. message: '联系地址不能为空',
  592. trigger: 'blur',
  593. },
  594. { max: 50, message: '长度应小于50个字符', trigger: 'blur' }
  595. ]">
  596. <el-input v-model="itm.contactAddressAgent" placeholder="请输入" />
  597. </el-form-item>
  598. </el-col>
  599. </el-row>
  600. </div>
  601. </el-form>
  602. <!-- <el-button
  603. v-if="flag == 1 || flag == 2"
  604. type="primary"
  605. plain
  606. @click="generateForm1()"
  607. >新增被申请人主体信息</el-button
  608. > -->
  609. <div v-if="flag == '0'|| flag == '1'">
  610. <div style="display: inline-flex">
  611. <div class="infoIcon"></div>
  612. <div class="caseInfo2">仲裁申请书:</div>
  613. </div>
  614. <div v-for="item in caseAttachList" :key ="item.annexId" v-if="item.annexType==1" style="margin-top:25px;margin-left:100px;">
  615. <el-link target="_blank" type="primary" :href="fileURL+item.annexPath">{{item.annexName}}</el-link>
  616. </div>
  617. </div>
  618. <div style="margin-top:15px;" v-if="flag == '0'">
  619. <div style="display: inline-flex">
  620. <div class="infoIcon"></div>
  621. <div class="caseInfo2">案件异议信息:</div>
  622. </div>
  623. <div style="margin-left:100px;">
  624. {{this.form.adjudicaCounterReason}}
  625. </div>
  626. </div>
  627. <div slot="footer" class="dialog-footer" style="text-align:center;margin-top:20px;">
  628. <el-button type="primary" @click="submitForm" v-if="flag != 0" class="endbutton" :loading="loadingSubmit"><span>确 定</span></el-button>
  629. <el-button @click="cancel" class="endbutton1"><span>取 消</span></el-button>
  630. </div>
  631. </div>
  632. <div v-show="activeName=='second'" style="margin-top:20px;">
  633. <el-form :model="formGrab" label-width="120px" :disabled ="flag == '0'">
  634. <el-form-item v-for="(item,index) in formGrab.list" :label="item.name" :key="item.id">
  635. <el-input type="textarea" v-model="item.value"></el-input>
  636. </el-form-item>
  637. </el-form>
  638. <!-- <el-col :span="24">
  639. <div style="text-align:center;margin-top:50px;">
  640. <el-button type="primary" @click="submitFormGrab" v-if="flag != 0" class="endbutton"><span>确 定</span></el-button>
  641. <el-button @click="cancel" class="endbutton1"><span>取 消</span></el-button>
  642. </div>
  643. </el-col> -->
  644. </div>
  645. </el-dialog>
  646. </div>
  647. </template>
  648. <script>
  649. import moment from "moment"; //导入文件
  650. import { getToken } from "@/utils/auth";
  651. import { addCaseApply, editCaseApply,editCaseApplicationDefineval} from "@/api/caseAccess/caseEntry";
  652. import {
  653. getTemplate,
  654. } from "@/api/officialSeal/officialSeal.js";
  655. export default {
  656. props: [
  657. "visible",
  658. "dialogtitle",
  659. "form",
  660. "getcaseApply",
  661. "flag",
  662. "initpaymentArr",
  663. "initpaymentArr1",
  664. "queryParams",
  665. "caseAttachList",
  666. "columnValues"
  667. ],
  668. data() {
  669. return {
  670. activeName: 'first',
  671. loadingSubmit: false,
  672. fileURL: window.location.origin + "/API",
  673. formData: this.form,
  674. templateList: [],
  675. filedata: {
  676. annexType: 2,
  677. },
  678. headers: {
  679. Authorization: "Bearer " + getToken(),
  680. },
  681. form2: {
  682. paymentArr: [
  683. {
  684. identityType: 1,
  685. name: "",
  686. identityNum: "",
  687. contactTelphone: "",
  688. email: "",
  689. workAddress: "",
  690. workTelphone: "",
  691. contactAddress: "",
  692. nameAgent: "",
  693. contactTelphoneAgent: "",
  694. contactAddressAgent: "",
  695. residenAffili: ""
  696. },
  697. ],
  698. }, //申请人主体信息
  699. form3: {
  700. paymentArr1: [
  701. {
  702. identityType: 2,
  703. name: "",
  704. identityNum: "",
  705. contactTelphone: "",
  706. email: "",
  707. workAddress: "",
  708. workTelphone: "",
  709. contactAddress: "",
  710. nameAgent: "",
  711. contactTelphoneAgent: "",
  712. contactAddressAgent: "",
  713. responSex: 1,
  714. responBirth: "",
  715. residenAffili: ""
  716. },
  717. ],
  718. }, //被申请人主体信息
  719. // 抓取内容
  720. formGrab:{
  721. list:[]
  722. },
  723. formGrabList:[],
  724. // 表单校验
  725. rules: {
  726. // caseNum: [
  727. // {
  728. // required: true,
  729. // message: "案件编号不能为空",
  730. // trigger: "blur",
  731. // },
  732. // { max: 20, message: "长度应小于20个字符", trigger: "blur" },
  733. // ],
  734. caseSubjectAmount: [
  735. {
  736. required: true,
  737. message: "案件标的不能为空",
  738. trigger: "blur",
  739. },
  740. ],
  741. caseName: [
  742. {
  743. required: true,
  744. message: "案件名称不能为空",
  745. trigger: "blur",
  746. },
  747. ],
  748. loanStartDate: [
  749. {
  750. required: true,
  751. message: "借款开始日期不能为空",
  752. trigger: "blur",
  753. },
  754. ],
  755. loanEndDate: [
  756. {
  757. required: true,
  758. message: "借款结束日期不能为空",
  759. trigger: "blur",
  760. },
  761. ],
  762. name: [
  763. {
  764. required: true,
  765. message: "申请人姓名不能为空",
  766. trigger: "blur",
  767. },
  768. ],
  769. contractNumber: [
  770. {
  771. required: true,
  772. message: "合同编号不能为空",
  773. trigger: "blur",
  774. },
  775. ],
  776. claimPrinciOwed: [
  777. {
  778. required: true,
  779. message: "申请人主张欠本金不能为空",
  780. trigger: "blur",
  781. },
  782. ],
  783. claimInterestOwed: [
  784. {
  785. required: true,
  786. message: "申请人主张欠利息不能为空",
  787. trigger: "blur",
  788. },
  789. ],
  790. Overduedays: [
  791. {
  792. required: true,
  793. message: "逾期天数不能为空",
  794. trigger: "blur",
  795. },
  796. ],
  797. claimLiquidDamag: [
  798. {
  799. required: true,
  800. message: "申请人主张违约金不能为空",
  801. trigger: "blur",
  802. },
  803. ],
  804. arbitratClaims: [
  805. {
  806. required: true,
  807. message: "请输入申请人仲裁诉求",
  808. trigger: "blur",
  809. },
  810. ],
  811. facts: [
  812. {
  813. required: true,
  814. message: "请输入事实和理由",
  815. trigger: "blur",
  816. }
  817. ],
  818. templateId: [
  819. {
  820. required: true,
  821. message: '请输入裁决书模板',
  822. trigger: 'change'
  823. }
  824. ],
  825. feePayable: [
  826. {
  827. required: true,
  828. },
  829. ]
  830. },
  831. // annexId: '',
  832. caseAttachListArr: [],
  833. fileList: [],
  834. applicateArr: [],
  835. quiltArr: [],
  836. pickerOptions: {
  837. disabledDate(time) {
  838. return time.getTime() > Date.now() - 8.64e6;
  839. }
  840. }
  841. };
  842. },
  843. watch: {
  844. initpaymentArr: {
  845. handler(val) {
  846. this.activeName = "first"
  847. this.formGrab.list = this.columnValues
  848.  this.caseAttachListArr = []
  849. if (val) {
  850. this.applicateArr = [];
  851. this.quiltArr = [];
  852. this.formData = this.form;
  853. console.log(this.form)
  854. this.fileList = [];
  855. this.getTemplateFn({
  856. pageNum: 1,
  857. pageSize: 10000000,
  858. })
  859. if (this.flag == "1" || this.flag == "0") {
  860. this.form2.paymentArr = this.initpaymentArr;
  861. this.form3.paymentArr1 = this.initpaymentArr1;
  862. this.caseAttachList.forEach((item) => {
  863. if (item.annexType == 2) {
  864. this.applicateArr.push({
  865. annexName: item.annexName,
  866. annexPath: item.annexPath,
  867. });
  868. }
  869. if (item.annexType == 6) {
  870. this.quiltArr.push({
  871. annexName: item.annexName,
  872. annexPath: item.annexPath,
  873. });
  874. }
  875. });
  876. if (this.caseAttachList.length > 0) {
  877. this.caseAttachListArr = this.caseAttachList
  878. }
  879. this.caseAttachList.forEach((item) => {
  880. if (item.annexType == 2) {
  881. this.fileList.push(item)
  882. }
  883. });
  884. this.fileList.forEach((item) => {
  885. item["name"] = item.annexName;
  886. item["certificatePath"] = item.annexPath;
  887. });
  888. }
  889. if (this.flag == "2") {
  890. this.form2.paymentArr = [
  891. {
  892. identityType: 1,
  893. name: "",
  894. identityNum: "",
  895. contactTelphone: "",
  896. email: "",
  897. workAddress: "",
  898. workTelphone: "",
  899. contactAddress: "",
  900. nameAgent: "",
  901. contactTelphoneAgent: "",
  902. contactAddressAgent: "",
  903. },
  904. ];
  905. this.form3.paymentArr1 = [
  906. {
  907. identityType: 2,
  908. name: "",
  909. identityNum: "",
  910. contactTelphone: "",
  911. email: "",
  912. workAddress: "",
  913. workTelphone: "",
  914. contactAddress: "",
  915. nameAgent: "",
  916. contactTelphoneAgent: "",
  917. contactAddressAgent: "",
  918. },
  919. ];
  920. }
  921. }
  922. },
  923. deep: true,
  924. },
  925. },
  926. methods: {
  927. numberFn(p) {
  928. this.formData[p] =
  929. this.formData[p]
  930. .replace(/[^\d^\.]+/g, "")
  931. .replace(/^0+(\d)/, "$1")
  932. .replace(/^\./, "0.")
  933. .match(/^\d*(\.?\d{0,2})/g)[0] || "";
  934. },
  935. UploadUrl() {
  936. return window.location.origin + "/API/evidence/upload";
  937. },
  938. handlePreview(file) {
  939. if (this.flag == "2") {
  940. window.open(
  941. window.location.origin + "/API" + file.response.data.annexName,
  942. "_blank"
  943. );
  944. } else if (this.flag == "1") {
  945. window.open(
  946. window.location.origin + "/API" + file.certificatePath,
  947. "_blank"
  948. );
  949. }
  950. },
  951. // 文件上传成功
  952. handlSuccess(res, file) {
  953. this.caseAttachListArr.push(
  954. res.data,
  955. );
  956. },
  957. // 文件超出个数限制时的钩子
  958. handleExceed(files, fileList) {
  959. this.$message.warning(
  960. `当前限制选择 3 个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length
  961. } 个文件`
  962. );
  963. },
  964. // 获取裁决书模板
  965. getTemplateFn(data) {
  966. getTemplate(data).then(res => {
  967. console.log(res)
  968. this.templateList = res.rows;
  969. })
  970. },
  971. // 删除文件之前的钩子,参数为上传的文件和文件列表,若返回 false 或者返回 Promise 且被 reject,则停止删除。
  972. beforeRemove(file, fileList) {
  973. return this.$confirm(`确定移除 ${file.name}?`);
  974. },
  975. handleRemove(file, fileList) {
  976. console.log(file)
  977. console.log(fileList)
  978. console.log(this.caseAttachListArr)
  979. this.caseAttachListArr = this.caseAttachListArr.filter(item => item.annexId != file.annexId)
  980. // (this.caseAttachListArr = []),
  981. // fileList.forEach((item) => {
  982. // this.caseAttachListArr.push( item.response.data );
  983. // });
  984. },
  985. // 取消
  986. cancel() {
  987. this.$emit("cancel");
  988. },
  989. // 校验借款开始日期与结束日期
  990. // setStartTime() {
  991. // if (
  992. // this.setTime(this.formData.loanStartDate) >=
  993. // this.setTime(this.formData.loanEndDate)
  994. // ) {
  995. // this.$message.error("借款开始日期应早于借款结束日期");
  996. // this.formData.loanStartDate = "";
  997. // this.formData.loanEndDate = "";
  998. // }
  999. // },
  1000. setEndTime() {
  1001. if (
  1002. this.setTime(this.formData.loanEndDate) <=
  1003. this.setTime(this.formData.loanStartDate)
  1004. ) {
  1005. this.$message.error("借款结束日期应晚于借款开始日期");
  1006. this.formData.loanStartDate = "";
  1007. this.formData.loanEndDate = "";
  1008. }
  1009. },
  1010. setTime(val) {
  1011. const date = new Date(val);
  1012. const time = date.getTime();
  1013. return time;
  1014. },
  1015. // 新增申请人主体信息
  1016. generateForm() {
  1017. this.form2.paymentArr.push({
  1018. identityType: 1,
  1019. name: "",
  1020. identityNum: "",
  1021. contactTelphone: "",
  1022. email: "",
  1023. workAddress: "",
  1024. workTelphone: "",
  1025. contactAddress: "",
  1026. nameAgent: "",
  1027. contactTelphoneAgent: "",
  1028. contactAddressAgent: "",
  1029. });
  1030. },
  1031. // 新增被申请人主体信息
  1032. generateForm1() {
  1033. this.form3.paymentArr1.push({
  1034. identityType: 2,
  1035. name: "",
  1036. identityNum: "",
  1037. contactTelphone: "",
  1038. email: "",
  1039. workAddress: "",
  1040. workTelphone: "",
  1041. contactAddress: "",
  1042. nameAgent: "",
  1043. contactTelphoneAgent: "",
  1044. contactAddressAgent: "",
  1045. });
  1046. },
  1047. // 删除申请人主体信息
  1048. deleteData(index) {
  1049. this.form2.paymentArr.splice(index, 1);
  1050. },
  1051. // 删除被申请人主体信息
  1052. deleteData1(index) {
  1053. this.form3.paymentArr1.splice(index, 1);
  1054. },
  1055. // 提交立案申请 addCaseApply
  1056. submitForm() {
  1057. this.$refs["form"].validate((valid) => {
  1058. this.formData.loanStartDate = moment(
  1059. this.formData.loanStartDate
  1060. ).format("YYYY-MM-DD HH:mm:ss");
  1061. this.formData.loanEndDate = moment(this.formData.loanEndDate).format(
  1062. "YYYY-MM-DD HH:mm:ss"
  1063. );
  1064. if (valid) {
  1065. this.loadingSubmit = true;
  1066. this.$refs["form2"].validate((valid) => {
  1067. if (valid) {
  1068. this.$refs["form3"].validate((vail) => {
  1069. if (vail) {
  1070. this.formData.caseAffiliates = [
  1071. ...this.form2.paymentArr,
  1072. ...this.form3.paymentArr1,
  1073. ];
  1074. this.formData.caseAttachList = [...this.caseAttachListArr];
  1075. this.formData.caseAffiliates[1].responBirth = moment(this.formData.caseAffiliates[1].responBirth).format(
  1076. "YYYY-MM-DD HH:mm:ss"
  1077. );
  1078. if (this.formData.id) {
  1079. this.formData['columnValues'] = this.formGrab.list
  1080. editCaseApply({
  1081. ...this.formData,
  1082. caseAffiliates: this.formData.caseAffiliates,
  1083. }).then((res) => {
  1084. if (res.code == 200) {
  1085. this.$modal.msgSuccess("修改成功");
  1086. this.$emit("cancel");
  1087. this.getcaseApply(this.queryParams);
  1088. this.loadingSubmit = false;
  1089. }
  1090. }).catch((err) => {
  1091. this.loadingSubmit = false;
  1092. });
  1093. } else {
  1094. addCaseApply({
  1095. ...this.formData,
  1096. caseAffiliates: this.formData.caseAffiliates,
  1097. }).then((response) => {
  1098. if (response.code == 200) {
  1099. this.$modal.msgSuccess("新增成功");
  1100. this.$emit("cancel");
  1101. this.getcaseApply(this.queryParams);
  1102. this.loadingSubmit = false;
  1103. }
  1104. }).catch((err) => {
  1105. this.loadingSubmit = false;
  1106. });
  1107. }
  1108. }
  1109. });
  1110. }
  1111. });
  1112. }
  1113. });
  1114. },
  1115. // 提交抓取内容修改
  1116. // submitFormGrab(){
  1117. // this.$refs['formGrabRef'].validate((valid) => {
  1118. // if(valid){
  1119. // this.formGrabList['columnValues']= this.formGrab.list
  1120. // console.log(this.formGrabList)
  1121. // editCaseApplicationDefineval({columnValues:this.formGrab.list}).then(res=>{
  1122. // if (res.code == 200) {
  1123. // this.$modal.msgSuccess("修改成功");
  1124. // this.$emit("cancel");
  1125. // this.getcaseApply(this.queryParams);
  1126. // }
  1127. // })
  1128. // }
  1129. // });
  1130. // },
  1131. // 详情显示,展示申请人案件文件
  1132. toFile(item, index) {
  1133. window.open(
  1134. window.location.origin + "/API" + this.applicateArr[index].annexPath,
  1135. "_black"
  1136. );
  1137. },
  1138. // 被申请人文件
  1139. toFile1(item, index) {
  1140. window.open(
  1141. window.location.origin + "/API" + this.quiltArr[index].annexPath,
  1142. "_black"
  1143. );
  1144. },
  1145. // tabs页
  1146. handleClick(tab, event) {
  1147. // console.log(tab, event);
  1148. }
  1149. },
  1150. };
  1151. </script>
  1152. <style lang="scss" scoped>
  1153. ::v-deep .el-dialog__body {
  1154. height: 700px !important;
  1155. overflow: auto !important;
  1156. }
  1157. ::v-deep .el-dialog {
  1158. width: 800px;
  1159. background: #ffffff;
  1160. border-radius: 20px;
  1161. }
  1162. .caseInfo {
  1163. font-size: 17px;
  1164. font-weight: 600;
  1165. }
  1166. .caseInfo2 {
  1167. font-size: 15px;
  1168. font-weight: 550;
  1169. }
  1170. .infoIcon {
  1171. width: 4px;
  1172. // height: 17px;
  1173. background-color: #0072ff;
  1174. margin-right: 5px;
  1175. }
  1176. .el-date-editor {
  1177. width: 100%;
  1178. }
  1179. .endbutton {
  1180. width: 154px;
  1181. height: 37px;
  1182. background: #0072ff;
  1183. border-radius: 19px;
  1184. span {
  1185. width: 96px;
  1186. height: 15px;
  1187. font-size: 16px;
  1188. font-family: Microsoft YaHei;
  1189. font-weight: 400;
  1190. color: #ffffff;
  1191. }
  1192. }
  1193. .endbutton1 {
  1194. width: 154px;
  1195. height: 37px;
  1196. background: #ffffff;
  1197. border: 1px solid #d0d0d0;
  1198. border-radius: 19px;
  1199. span {
  1200. width: 31px;
  1201. height: 13px;
  1202. font-size: 16px;
  1203. font-family: Microsoft YaHei;
  1204. font-weight: 400;
  1205. color: #959595;
  1206. }
  1207. }
  1208. </style>