应用层PC端前端服务

caseentryDialog.vue 38KB

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