应用层PC端前端服务

caseentryDialog.vue 38KB

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