应用层PC端前端服务

caseentryDialog.vue 42KB

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