应用层PC端前端服务

caseentryDialog.vue 35KB

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