应用层PC端前端服务

caseentryDialog.vue 43KB

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