应用层PC端前端服务

caseentryDialog.vue 42KB

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