调解系统PC端服务

addCase.vue 35KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826
  1. <template>
  2. <div>
  3. <el-dialog :title="title" :visible="addVisable" v-if="addVisable" @close="cancel" width="1000px" center
  4. :distroy-on-close="true">
  5. <el-tabs v-model="activeName">
  6. <el-tab-pane label="案件信息" name="first"> </el-tab-pane>
  7. <el-tab-pane label="证据清单" name="second" v-if="tabFlag">
  8. </el-tab-pane>
  9. </el-tabs>
  10. <el-form v-if="activeName == 'first'" :disabled="caseDisabled" :model="formData" ref="ruleForm"
  11. label-width="130px" class="demo-ruleForm">
  12. <el-row>
  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-col :span="24">
  19. <el-form-item label="压缩包导入">
  20. <el-upload class="upload-demo" :action="zipUrl()" :before-remove="beforeRemoveZip" multiple accept='.zip'
  21. :limit="1" :on-exceed="handleExceedZip" :on-success='successZip' :file-list="fileListZip">
  22. <el-button size="small" type="primary">点击上传</el-button>
  23. <div slot="tip" class="el-upload__tip">只能上传zip压缩包</div>
  24. </el-upload>
  25. </el-form-item>
  26. </el-col>
  27. <el-col :span="24">
  28. <el-form-item label="申请人调解请求" prop="arbitratClaims" :rules="[
  29. {
  30. required: true,
  31. message: '申请人调解请求不能为空',
  32. trigger: 'blur',
  33. },
  34. ]">
  35. <el-input v-model="formData.arbitratClaims" placeholder="请输入申请人调解诉求" type="textarea"
  36. :autosize="{ minRows: 4, maxRows: 8 }" />
  37. </el-form-item>
  38. </el-col>
  39. <el-col :span="24">
  40. <el-form-item label="事实和理由" prop="facts" :rules="[
  41. {
  42. required: true,
  43. message: '事实和理由不能为空',
  44. trigger: 'blur',
  45. },
  46. ]">
  47. <el-input v-model="formData.facts" placeholder="请输入事实和理由" type="textarea"
  48. :autosize="{ minRows: 4, maxRows: 8 }" />
  49. </el-form-item>
  50. </el-col>
  51. <!-- <el-col :span="24">
  52. <el-form-item label="申请人请求仲裁庭裁决" prop="requestRule">
  53. <el-input v-model="formData.requestRule" placeholder="请输入申请人请求仲裁庭裁决" type="textarea"
  54. :autosize="{ minRows: 4, maxRows: 8 }" />
  55. </el-form-item>
  56. </el-col> -->
  57. <!-- <el-col :span="24">
  58. <el-form-item label="案件描述" prop="caseDescribe">
  59. <el-input v-model="formData.caseDescribe" placeholder="请输入案件描述" type="textarea"
  60. :autosize="{ minRows: 4, maxRows: 8 }" />
  61. </el-form-item>
  62. </el-col> -->
  63. <!-- <el-col :span="12">
  64. <el-form-item label="案件标的" prop="caseSubjectAmount" :rules="[
  65. {
  66. required: true,
  67. message: '案件标的不能为空',
  68. trigger: 'blur',
  69. },
  70. ]">
  71. <el-input v-model="formData.caseSubjectAmount" placeholder="请输入案件标的" />
  72. </el-form-item>
  73. </el-col> -->
  74. <!-- <el-col :span="24">
  75. <el-form-item label="调解模板" prop="templateId" :rules="[
  76. {
  77. required: true,
  78. message: '调解模板',
  79. trigger: 'blur',
  80. },
  81. ]">
  82. <el-select placeholder="请选择调解模板" v-model="formData.templateId">
  83. <el-option v-for="item in templateList" :label="item.temName" :key="item.id" :value="item.id"></el-option>
  84. </el-select>
  85. </el-form-item>
  86. </el-col> -->
  87. <el-col :span="12">
  88. <el-form-item label="申请人案件证据资料上传:" prop="applicantEvidence">
  89. <el-upload class="upload-demo" ref="fileupload" accept=".png,.jpg,.doc,.docx,.txt,.pdf"
  90. :action="UploadUrl()" :on-success="handlSuccess" :on-remove="handleRemove" :on-preview="handlePreview"
  91. :before-remove="beforeRemove" :data="filedata" :headers="headers" multiple :limit="50"
  92. :on-exceed="handleExceed" :file-list="fileList">
  93. <el-button size="small" type="primary">点击上传</el-button>
  94. <div slot="tip" class="el-upload__tip">
  95. 文件支持上传.jpg,png,.doc,docx,.txt,.pdf文件
  96. </div>
  97. </el-upload>
  98. </el-form-item>
  99. </el-col>
  100. <el-col :span="24" v-if="modelFlag">
  101. <el-form-item label="证据:">
  102. <div v-for="(item, index) in formData.caseAttachList" :key="index" v-if="item.annexType == 2">
  103. <div style="color: blue; cursor: pointer" @click="fileDetil(item.annexPath)">
  104. {{ item.annexName }}
  105. </div>
  106. </div>
  107. </el-form-item>
  108. </el-col>
  109. <el-col :span="24" v-if="modelFlag">
  110. <el-form-item label="调解申请书:">
  111. <div v-for="(item, index) in formData.caseAttachList" :key="index" v-if="item.annexType == 3">
  112. <div style="color: blue; cursor: pointer" @click="fileDetil(item.annexPath)">
  113. {{ item.annexName }}
  114. </div>
  115. </div>
  116. </el-form-item>
  117. </el-col>
  118. <el-col :span="24" v-if="modelFlag && showmediate">
  119. <el-form-item label="调解书:">
  120. <div v-for="(item, index) in formData.caseAttachList" :key="index" v-if="item.annexType == 7">
  121. <div style="color: blue; cursor: pointer" @click="fileDetil(item.annexPath)">
  122. {{ item.annexName }}
  123. </div>
  124. </div>
  125. </el-form-item>
  126. </el-col>
  127. <el-col :span="24">
  128. <div style="display: inline-flex">
  129. <div class="infoIcon"></div>
  130. <div class="caseInfo">双方信息:</div>
  131. </div>
  132. <el-divider></el-divider>
  133. </el-col>
  134. <el-col :span="24">
  135. <el-form-item label="选择机构或自然人" prop="affiliate.organizeFlag">
  136. <el-radio-group v-model="formData.affiliate.organizeFlag" :disabled="modelFlag" @change="clearValidate">
  137. <el-radio :label="0">自然人</el-radio>
  138. <el-radio :label="1">机构</el-radio>
  139. </el-radio-group>
  140. </el-form-item>
  141. </el-col>
  142. <el-col :span="24">
  143. <div style="display: inline-flex">
  144. <div class="infoIcon"></div>
  145. <div class="caseInfo">申请人</div>
  146. </div>
  147. <el-divider></el-divider>
  148. </el-col>
  149. <el-col :span="12" v-if="formData.affiliate.organizeFlag == 1">
  150. <el-form-item label="申请机构名称" prop="affiliate.applicationName" :rules="[
  151. {
  152. required: true,
  153. message: '申请机构名称不能为空',
  154. trigger: 'blur',
  155. },
  156. ]">
  157. <el-input v-model="formData.affiliate.applicationName" placeholder="请输入申请机构名称" />
  158. </el-form-item>
  159. </el-col>
  160. <el-col :span="12" v-if="formData.affiliate.organizeFlag == 0">
  161. <el-form-item label="申请人" prop="affiliate.applicationName" :rules="[
  162. {
  163. required: true,
  164. message: '申请人名称不能为空',
  165. trigger: 'blur',
  166. },
  167. ]">
  168. <el-input v-model="formData.affiliate.applicationName" disabled placeholder="请输入申请人姓名" />
  169. </el-form-item>
  170. </el-col>
  171. <el-col :span="12" v-if="formData.affiliate.organizeFlag == 1">
  172. <el-form-item label-width="140px" label="统一社会信用代码" prop="affiliate.code" :rules="[
  173. {
  174. required: true,
  175. message: '统一社会信用代码不能为空',
  176. trigger: 'blur',
  177. },
  178. ]">
  179. <el-input v-model="formData.affiliate.code" placeholder="请输入统一社会信用代码" />
  180. </el-form-item>
  181. </el-col>
  182. <el-col :span="12" v-if="formData.affiliate.organizeFlag == 0">
  183. <el-form-item label="申请人身份证号码" prop="affiliate.code" :rules="[
  184. {
  185. required: true,
  186. message: '申请人身份证号不能为空',
  187. trigger: 'blur',
  188. },
  189. {
  190. pattern:
  191. /^[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]$/,
  192. message: '请输入正确的身份证号码',
  193. trigger: 'blur',
  194. },
  195. ]">
  196. <el-input v-model="formData.affiliate.code" disabled placeholder="请输入申请人的身份证号" />
  197. </el-form-item>
  198. </el-col>
  199. <el-col :span="12" v-if="formData.affiliate.organizeFlag == 0">
  200. <el-form-item label="申请人邮箱" prop="affiliate.applicationEmail" :rules="[
  201. {
  202. required: true,
  203. message: '申请人邮箱不能为空',
  204. trigger: 'blur',
  205. },
  206. {
  207. pattern:
  208. /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/,
  209. message: '请输入正确的邮箱地址',
  210. trigger: 'blur',
  211. },
  212. ]">
  213. <el-input v-model="formData.affiliate.applicationEmail" disabled placeholder="请输入申请人邮箱" />
  214. </el-form-item>
  215. </el-col>
  216. <el-col :span="12" v-if="formData.affiliate.organizeFlag == 0">
  217. <el-form-item label="申请人电话" prop="affiliate.applicationPhone" :rules="[
  218. {
  219. required: true,
  220. message: '申请人联系电话不能为空',
  221. trigger: 'blur',
  222. },
  223. {
  224. pattern: /^[1][3,4,5,6,7,8,9][0-9]{9}$/,
  225. message: '请输入正确的手机号码',
  226. trigger: 'blur',
  227. },
  228. ]">
  229. <el-input v-model="formData.affiliate.applicationPhone" disabled placeholder="请输入申请人联系电话" />
  230. </el-form-item>
  231. </el-col>
  232. <!-- <el-col :span="12" v-if="formData.affiliate.organizeFlag == 1">
  233. <el-form-item label="申请人电话" prop="affiliate.applicationPhone" :rules="[
  234. {
  235. required: true,
  236. message: '申请人联系电话不能为空',
  237. trigger: 'blur',
  238. },
  239. {
  240. pattern: /^[1][3,4,5,6,7,8,9][0-9]{9}$/,
  241. message: '请输入正确的手机号码',
  242. trigger: 'blur',
  243. },
  244. ]">
  245. <el-input v-model="formData.affiliate.applicationPhone" placeholder="请输入申请人联系电话" />
  246. </el-form-item>
  247. </el-col> -->
  248. <el-col :span="12" v-if="formData.affiliate.organizeFlag == 1">
  249. <el-form-item label="法定代表人" prop="affiliate.compLegalPerson" :rules="[
  250. {
  251. required: true,
  252. message: '法定代表人不能为空',
  253. trigger: 'blur',
  254. },
  255. ]">
  256. <el-input v-model="formData.affiliate.compLegalPerson" placeholder="请输入法定代表人" />
  257. </el-form-item>
  258. </el-col>
  259. <el-col :span="12">
  260. <el-form-item label="申请人住所" prop="affiliate.applicantHome" :rules="[
  261. {
  262. required: true,
  263. message: '申请人住所不能为空',
  264. trigger: 'blur',
  265. },
  266. ]">
  267. <el-input v-model="formData.affiliate.applicantHome" placeholder="请输入申请人住所" />
  268. </el-form-item>
  269. </el-col>
  270. <el-col :span="12">
  271. <el-form-item label="申请人联系地址" prop="affiliate.applicantAddress" :rules="[
  272. {
  273. required: true,
  274. message: '申请人联系地址不能为空',
  275. trigger: 'blur',
  276. },
  277. ]">
  278. <el-input v-model="formData.affiliate.applicantAddress" placeholder="请输入申请人联系地址" />
  279. </el-form-item>
  280. </el-col>
  281. <el-col :span="24">
  282. <div style="display: inline-flex">
  283. <div class="infoIcon"></div>
  284. <div class="caseInfo">代理人</div>
  285. </div>
  286. <el-divider></el-divider>
  287. </el-col>
  288. <el-col :span="12" v-if="formData.affiliate.organizeFlag == 1">
  289. <el-form-item label="代理人联系电话" prop="affiliate.contactTelphoneAgent" :rules="[
  290. {
  291. required: true,
  292. message: '代理人联系电话不能为空',
  293. trigger: 'blur',
  294. },
  295. {
  296. pattern: /^[1][3,4,5,6,7,8,9][0-9]{9}$/,
  297. message: '请输入正确的手机号码',
  298. trigger: 'blur',
  299. },
  300. ]">
  301. <el-input v-model="formData.affiliate.contactTelphoneAgent" disabled placeholder="请输入代理人联系电话" />
  302. </el-form-item>
  303. </el-col>
  304. <el-col :span="12" v-if="formData.affiliate.organizeFlag == 0">
  305. <el-form-item label="代理人联系电话" prop="affiliate.contactTelphoneAgent">
  306. <el-input v-model="formData.affiliate.contactTelphoneAgent" placeholder="请输入代理人联系电话" />
  307. </el-form-item>
  308. </el-col>
  309. <el-col :span="12" v-if="formData.affiliate.organizeFlag == 1">
  310. <el-form-item label="代理人姓名" prop="affiliate.nameAgent" :rules="[
  311. {
  312. required: true,
  313. message: '代理人姓名不能为空',
  314. trigger: 'blur',
  315. },
  316. ]">
  317. <el-input v-model="formData.affiliate.nameAgent" disabled placeholder="请输入代理人姓名" />
  318. </el-form-item>
  319. </el-col>
  320. <el-col :span="12" v-if="formData.affiliate.organizeFlag == 0">
  321. <el-form-item label="代理人姓名" prop="affiliate.nameAgent">
  322. <el-input v-model="formData.affiliate.nameAgent" placeholder="请输入代理人姓名" />
  323. </el-form-item>
  324. </el-col>
  325. <el-col :span="12" v-if="formData.affiliate.organizeFlag == 1">
  326. <el-form-item label="代理人邮箱" prop="affiliate.agentEmail" :rules="[
  327. {
  328. required: true,
  329. message: '代理人邮箱不能为空',
  330. trigger: 'blur',
  331. },
  332. {
  333. pattern:
  334. /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/,
  335. message: '请输入正确的邮箱地址',
  336. trigger: 'blur',
  337. },
  338. ]">
  339. <el-input v-model="formData.affiliate.agentEmail" disabled placeholder="请输入代理人邮箱" />
  340. </el-form-item>
  341. </el-col>
  342. <el-col :span="12" v-if="formData.affiliate.organizeFlag == 0">
  343. <el-form-item label="代理人邮箱" prop="affiliate.agentEmail" :rules="[
  344. {
  345. pattern:
  346. /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/,
  347. message: '请输入正确的邮箱地址',
  348. trigger: 'blur',
  349. },
  350. ]">
  351. <el-input v-model="formData.affiliate.agentEmail" placeholder="请输入代理人邮箱" />
  352. </el-form-item>
  353. </el-col>
  354. <el-col :span="24">
  355. <div style="display: inline-flex">
  356. <div class="infoIcon"></div>
  357. <div class="caseInfo">被申请人</div>
  358. </div>
  359. <el-divider></el-divider>
  360. </el-col>
  361. <el-col :span="12">
  362. <el-form-item label="被申请人姓名" prop="affiliate.respondentName" :rules="[
  363. {
  364. required: true,
  365. message: '被申请人姓名不能为空',
  366. trigger: 'blur',
  367. },
  368. ]">
  369. <el-input v-model="formData.affiliate.respondentName" placeholder="请输入被申请人姓名" />
  370. </el-form-item>
  371. </el-col>
  372. <el-col :span="12">
  373. <el-form-item label-width="140px" label="被申请人联系电话" prop="affiliate.respondentPhone" :rules="[
  374. {
  375. required: true,
  376. message: '被申请人联系电话不能为空',
  377. trigger: 'blur',
  378. },
  379. {
  380. pattern: /^[1][3,4,5,6,7,8,9][0-9]{9}$/,
  381. message: '请输入正确的手机号码',
  382. trigger: 'blur',
  383. },
  384. ]">
  385. <el-input v-model="formData.affiliate.respondentPhone" placeholder="请输入被申请人联系电话" />
  386. </el-form-item>
  387. </el-col>
  388. <el-col :span="12">
  389. <el-form-item label-width="140px" label="被申请人身份证号" prop="affiliate.respondentIdentityNum" :rules="[
  390. {
  391. required: true,
  392. message: '被申请人身份证号不能为空',
  393. trigger: 'blur',
  394. },
  395. {
  396. pattern:
  397. /^[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]$/,
  398. message: '请输入正确的身份证号码',
  399. trigger: 'blur',
  400. },
  401. ]">
  402. <el-input v-model="formData.affiliate.respondentIdentityNum" @blur="handleBlur"
  403. placeholder="请输入被申请人身份证号" />
  404. </el-form-item>
  405. </el-col>
  406. <el-col :span="10">
  407. <el-form-item label="被申请人性别:" prop="affiliate.respondentSex" :rules="[
  408. {
  409. required: true,
  410. message: '请选择性别',
  411. },
  412. ]">
  413. <el-radio-group v-model="formData.affiliate.respondentSex" disabled>
  414. <el-radio :label="0">男</el-radio>
  415. <el-radio :label="1">女</el-radio>
  416. </el-radio-group>
  417. </el-form-item>
  418. </el-col>
  419. <el-col :span="12">
  420. <el-form-item label-width="140px" label="被申请人出生年月:" prop="affiliate.respondentBirth">
  421. <el-date-picker disabled v-model="formData.affiliate.respondentBirth" type="date" placeholder="被申请人出生年月日">
  422. </el-date-picker>
  423. </el-form-item>
  424. </el-col>
  425. <el-col :span="12">
  426. <el-form-item label-width="150px" label="被申请人申请人住所" prop="affiliate.respondentHome" :rules="[
  427. {
  428. required: true,
  429. message: '被申请人申请人住所不能为空',
  430. trigger: 'blur',
  431. },
  432. ]">
  433. <el-input v-model="formData.affiliate.respondentHome" placeholder="请输入被申请人申请人住所" />
  434. </el-form-item>
  435. </el-col>
  436. <el-col :span="12">
  437. <el-form-item label="被申请人邮箱" prop="affiliate.respondentEmail" :rules="[
  438. {
  439. required: true,
  440. message: '代理人邮箱不能为空',
  441. trigger: 'blur',
  442. },
  443. {
  444. pattern:
  445. /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/,
  446. message: '请输入正确的邮箱地址',
  447. trigger: 'blur',
  448. },
  449. ]">
  450. <el-input v-model="formData.affiliate.respondentEmail" placeholder="请输入被申请人邮箱" />
  451. </el-form-item>
  452. </el-col>
  453. </el-row>
  454. <el-col :span="24" v-if="modelFlag">
  455. <el-form-item v-for="item in formData.columnValueList" :label="item.name" :key="item.id">
  456. <el-input type="textarea" v-model="item.value"></el-input>
  457. </el-form-item>
  458. </el-col>
  459. </el-form>
  460. <div v-if="activeName == 'second'">
  461. <el-card class="box-card" style="margin-bottom: 30px" v-if="applicantEvidence.length">
  462. <div slot="header" class="clearfix">
  463. <span>申请人证据清单</span>
  464. </div>
  465. <div v-for="(item, index) in applicantEvidence" :key="index" class="text item"
  466. style="color: blue; cursor: pointer" @click="toPreview(item.annexPath)">
  467. {{ item.annexName }}
  468. </div>
  469. </el-card>
  470. <el-card class="box-card" v-if="respondentEvidence.length">
  471. <div slot="header" class="clearfix">
  472. <span>被申请人证据清单</span>
  473. </div>
  474. <div v-for="(item, index) in respondentEvidence" :key="index" class="text item"
  475. style="color: blue; cursor: pointer" @click="toPreview(item.annexPath)">
  476. {{ item.annexName }}
  477. </div>
  478. </el-card>
  479. </div>
  480. <div slot="footer" class="dialog-footer" v-if="buttonFlag">
  481. <el-button @click="cancel" class="endbutton"><span>取 消</span></el-button>
  482. <el-button type="primary" @click="submitForm" class="endbutton"><span>确认</span></el-button>
  483. </div>
  484. </el-dialog>
  485. </div>
  486. </template>
  487. <script>
  488. import {
  489. caseApplicationInsert,
  490. caseApplicationSelectById,
  491. updateComfire,
  492. getInfoByIdCard,
  493. getUserInfo
  494. } from "@/api/caseManagement/caseManagement.js";
  495. import { getTemplate } from "@/api/officialSeal/officialSeal.js";
  496. import { getToken } from "@/utils/auth";
  497. export default {
  498. props: [
  499. "addVisable",
  500. "queryParams",
  501. "caseData",
  502. "caseDisabled",
  503. "tabFlag",
  504. "addModifyData",
  505. ],
  506. dicts: ["case_built_type"],
  507. data() {
  508. return {
  509. activeName: "first",
  510. title: "新增案件",
  511. // organizeFlag:0,//选择机构和自然人
  512. formData: {
  513. affiliate: {
  514. organizeFlag: 0,
  515. respondentSex: 0,
  516. },
  517. columnValueList: [],
  518. caseAttachList: [],
  519. },
  520. templateList: [],
  521. modelFlag: false,
  522. fileURL: window.location.origin + "/API",
  523. fileList: [],
  524. fileListZip: [],
  525. filedata: {
  526. annexType: 2,
  527. },
  528. headers: {
  529. Authorization: "Bearer " + getToken(),
  530. },
  531. applicantEvidence: [], //申请人证据
  532. respondentEvidence: [], //被申请人证据
  533. buttonFlag: true,
  534. getUserInfoList: {},
  535. applicationFlag: null,
  536. showmediate: false,
  537. formZipData: {}
  538. };
  539. },
  540. watch: {
  541. addModifyData(val) {
  542. if (val == 1) {
  543. this.title = "新增案件";
  544. this.getUserInfoFn();
  545. this.modelFlag = false;
  546. this.buttonFlag = true;
  547. this.formData = {
  548. affiliate: {
  549. organizeFlag: 0,
  550. respondentSex: 0,
  551. },
  552. columnValueList: [],
  553. caseAttachList: [],
  554. };
  555. } else if (val == 3) {
  556. this.title = "修改案件";
  557. this.modelFlag = true;
  558. this.buttonFlag = true;
  559. } else if (val == 2) {
  560. this.title = "案件详情";
  561. this.modelFlag = true;
  562. this.buttonFlag = false;
  563. }
  564. },
  565. addVisable(val) {
  566. if (val) {
  567. this.activeName = "first";
  568. this.showmediate = false;
  569. this.getTemplateFn();
  570. if (this.addModifyData != 1) {
  571. this.caseApplicationSelectByIdFn(this.caseData.id);
  572. }
  573. }
  574. },
  575. },
  576. created() {
  577. console.log(this.formData, "000000000000000000")
  578. // this.getUserInfoFn();
  579. },
  580. methods: {
  581. /** 切换申请类型 */
  582. changeApplyType(val) {
  583. console.log(val, "变化");
  584. // this.$refs["ruleForm"].resetFields();
  585. },
  586. /**获取申请人信息 */
  587. getUserInfoFn() {
  588. getUserInfo().then(res => {
  589. this.getUserInfoList = res.data;
  590. this.$set(this.formData.affiliate, "applicationName", this.getUserInfoList.nickName);
  591. this.$set(this.formData.affiliate, "code", this.getUserInfoList.idCard);
  592. this.$set(this.formData.affiliate, "applicationEmail", this.getUserInfoList.email);
  593. this.$set(this.formData.affiliate, "applicationPhone", this.getUserInfoList.phonenumber);
  594. })
  595. },
  596. /** 根据案件id获取对应信息 */
  597. caseApplicationSelectByIdFn(data) {
  598. this.applicantEvidence = [];
  599. this.respondentEvidence = [];
  600. caseApplicationSelectById({ id: data }).then((res) => {
  601. res.data.affiliate.respondentSex = Number(res.data.affiliate.respondentSex)
  602. this.formData = res.data;
  603. this.formData.caseAttachList.forEach((item) => {
  604. if (item.annexType == 2) {
  605. this.applicantEvidence.push(item);
  606. } else if (item.annexType == 6) {
  607. // this.respondentEvidence.push(item);
  608. } else if (item.annexType == 7) {
  609. this.showmediate = true
  610. }
  611. });
  612. });
  613. },
  614. // 新增案件
  615. insertFn(data) {
  616. caseApplicationInsert(data).then((res) => {
  617. this.$modal.msgSuccess("新增成功!");
  618. this.$emit("cancelCaseAdd");
  619. this.$emit("getList", this.queryParams);
  620. });
  621. },
  622. // 修改确定
  623. modifyData(data) {
  624. updateComfire(data).then((res) => {
  625. this.$modal.msgSuccess("修改成功!");
  626. this.$emit("cancelCaseAdd");
  627. this.$emit("getList", this.queryParams);
  628. });
  629. },
  630. /** 获取裁决书模板 */
  631. getTemplateFn(data) {
  632. getTemplate(data).then((res) => {
  633. this.templateList = res.rows;
  634. });
  635. },
  636. /** 查看证据 */
  637. fileDetil(val) {
  638. window.open(this.fileURL + val);
  639. },
  640. /** 查看证据 */
  641. toPreview(val) {
  642. window.open(this.fileURL + val);
  643. },
  644. /** 文件上传地址 */
  645. UploadUrl() {
  646. return window.location.origin + "/API/common/upload";
  647. },
  648. zipUrl() {
  649. return window.location.origin + "/API/caseApplication/userIdentify";
  650. },
  651. /**文件上传成功*/
  652. handlSuccess(res, file) {
  653. this.formData.caseAttachList.push({
  654. annexId: res.annexId,
  655. });
  656. },
  657. /**文件超出个数限制时的钩子*/
  658. handleExceed(files, fileList) {
  659. this.$message.warning(
  660. `当前限制选择 3 个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length
  661. } 个文件`
  662. );
  663. },
  664. // 删除文件之前的钩子,参数为上传的文件和文件列表,若返回 false 或者返回 Promise 且被 reject,则停止删除。
  665. beforeRemove(file, fileList) {
  666. return this.$confirm(`确定移除 ${file.name}?`);
  667. },
  668. handleRemove(file, fileList) {
  669. this.caseAttachListArr = this.caseAttachListArr.filter(
  670. (item) => item.annexId != file.annexId
  671. );
  672. },
  673. handleExceedZip(files, fileList) {
  674. this.$message.warning(`当前限制选择 1 个文件`);
  675. },
  676. beforeRemoveZip(file, fileList) {
  677. return this.$confirm(`确定移除 ${file.name}?`);
  678. },
  679. successZip(res) {
  680. this.formZipData = res.data;
  681. // this.formData = res.data;
  682. this.$set(this.formData.affiliate, 'organizeFlag', 0);
  683. this.$set(this.formData, 'arbitratClaims', this.formZipData.arbitratClaims);
  684. this.$set(this.formData, 'facts', this.formZipData.facts);
  685. // this.$set(this.formData.affiliate,'applicationName',this.formZipData.affiliate.applicationName);
  686. // this.$set(this.formData.affiliate,'code',this.formZipData.affiliate.code);
  687. // this.$set(this.formData.affiliate,'applicationEmail',this.formZipData.affiliate.applicationEmail);
  688. // this.$set(this.formData.affiliate,'applicationPhone',this.formZipData.affiliate.applicationPhone);
  689. this.$set(this.formData.affiliate, 'applicantHome', this.formZipData.affiliate.applicantHome);
  690. this.$set(this.formData.affiliate, 'applicantAddress', this.formZipData.affiliate.applicantAddress);
  691. this.$set(this.formData.affiliate, 'contactTelphoneAgent', this.formZipData.affiliate.contactTelphoneAgent);
  692. this.$set(this.formData.affiliate, 'nameAgent', this.formZipData.affiliate.nameAgent);
  693. this.$set(this.formData.affiliate, 'agentEmail', this.formZipData.affiliate.agentEmail);
  694. this.$set(this.formData.affiliate, 'respondentName', this.formZipData.affiliate.respondentName);
  695. this.$set(this.formData.affiliate, 'respondentPhone', this.formZipData.affiliate.respondentPhone);
  696. this.$set(this.formData.affiliate, 'respondentIdentityNum', this.formZipData.affiliate.respondentIdentityNum);
  697. this.$set(this.formData.affiliate, 'respondentSex', Number(this.formZipData.affiliate.respondentSex));
  698. this.$set(this.formData.affiliate, 'respondentBirth', this.formZipData.affiliate.respondentBirth);
  699. this.$set(this.formData.affiliate, 'respondentHome', this.formZipData.affiliate.respondentHome);
  700. this.$set(this.formData.affiliate, 'respondentEmail', this.formZipData.affiliate.respondentEmail);
  701. this.$set(this.formData.affiliate, 'compLegalPerson', this.formZipData.affiliate.compLegalPerson);
  702. // this.$set(this.formData.affiliate,'respondentSex',Number(res.data.affiliate.respondentSex));
  703. },
  704. handlePreview(file) {
  705. window.open(
  706. window.location.origin + "/API" + file.certificatePath,
  707. "_blank"
  708. );
  709. },
  710. // 提交form表单
  711. submitForm() {
  712. this.$refs["ruleForm"].validate((valid) => {
  713. if (valid) {
  714. if (this.addModifyData == 3) {
  715. this.modifyData(this.formData);
  716. } else if (this.addModifyData == 1) {
  717. this.insertFn(this.formData);
  718. }
  719. }
  720. });
  721. },
  722. clearValidate(val) {
  723. if (val == 0) {
  724. this.$set(this.formData.affiliate, "applicationName", this.getUserInfoList.nickName);
  725. this.$set(this.formData.affiliate, "code", this.getUserInfoList.idCard);
  726. this.$set(this.formData.affiliate, "applicationEmail", this.getUserInfoList.email);
  727. this.$set(this.formData.affiliate, "applicationPhone", this.getUserInfoList.phonenumber);
  728. if (this.formZipData.affiliate) {
  729. this.$set(this.formData.affiliate, 'organizeFlag', 0);
  730. this.$set(this.formData, 'arbitratClaims', this.formZipData.arbitratClaims);
  731. this.$set(this.formData, 'facts', this.formZipData.facts);
  732. // this.$set(this.formData.affiliate,'applicationName',this.formZipData.affiliate.applicationName);
  733. // this.$set(this.formData.affiliate,'code',this.formZipData.affiliate.code);
  734. // this.$set(this.formData.affiliate,'applicationEmail',this.formZipData.affiliate.applicationEmail);
  735. // this.$set(this.formData.affiliate,'applicationPhone',this.formZipData.affiliate.applicationPhone);
  736. this.$set(this.formData.affiliate, 'applicantHome', this.formZipData.affiliate.applicantHome);
  737. this.$set(this.formData.affiliate, 'applicantAddress', this.formZipData.affiliate.applicantAddress);
  738. this.$set(this.formData.affiliate, 'contactTelphoneAgent', this.formZipData.affiliate.contactTelphoneAgent);
  739. this.$set(this.formData.affiliate, 'nameAgent', this.formZipData.affiliate.nameAgent);
  740. this.$set(this.formData.affiliate, 'agentEmail', this.formZipData.affiliate.agentEmail);
  741. this.$set(this.formData.affiliate, 'respondentName', this.formZipData.affiliate.respondentName);
  742. this.$set(this.formData.affiliate, 'respondentPhone', this.formZipData.affiliate.respondentPhone);
  743. this.$set(this.formData.affiliate, 'respondentIdentityNum', this.formZipData.affiliate.respondentIdentityNum);
  744. this.$set(this.formData.affiliate, 'respondentSex', Number(this.formZipData.affiliate.respondentSex));
  745. this.$set(this.formData.affiliate, 'respondentBirth', this.formZipData.affiliate.respondentBirth);
  746. this.$set(this.formData.affiliate, 'respondentHome', this.formZipData.affiliate.respondentHome);
  747. this.$set(this.formData.affiliate, 'respondentEmail', this.formZipData.affiliate.respondentEmail);
  748. }
  749. // this.formData.affiliate.nameAgent = null;
  750. // this.formData.affiliate.agentEmail = null;
  751. // this.formData.affiliate.contactTelphoneAgent = null;
  752. } else if (val == 1) {
  753. this.$set(this.formData.affiliate, "nameAgent", this.getUserInfoList.nickName);
  754. this.$set(this.formData.affiliate, "agentEmail", this.getUserInfoList.email);
  755. this.$set(this.formData.affiliate, "contactTelphoneAgent", this.getUserInfoList.phonenumber);
  756. if (this.formZipData.affiliate) {
  757. this.$set(this.formData.affiliate, 'organizeFlag', 1);
  758. this.$set(this.formData, 'arbitratClaims', this.formZipData.arbitratClaims);
  759. this.$set(this.formData, 'facts', this.formZipData.facts);
  760. this.$set(this.formData.affiliate,'applicationName',this.formZipData.affiliate.applicationName);
  761. this.$set(this.formData.affiliate,'code',this.formZipData.affiliate.code);
  762. this.$set(this.formData.affiliate,'applicationEmail',this.formZipData.affiliate.applicationEmail);
  763. this.$set(this.formData.affiliate,'applicationPhone',this.formZipData.affiliate.applicationPhone);
  764. // this.$set(this.formData.affiliate, 'applicantHome', this.formZipData.affiliate.applicantHome);
  765. // this.$set(this.formData.affiliate, 'applicantAddress', this.formZipData.affiliate.applicantAddress);
  766. // this.$set(this.formData.affiliate, 'contactTelphoneAgent', this.formZipData.affiliate.contactTelphoneAgent);
  767. this.$set(this.formData.affiliate, 'nameAgent', this.formZipData.affiliate.nameAgent);
  768. this.$set(this.formData.affiliate, 'agentEmail', this.formZipData.affiliate.agentEmail);
  769. this.$set(this.formData.affiliate, 'respondentName', this.formZipData.affiliate.respondentName);
  770. this.$set(this.formData.affiliate, 'respondentPhone', this.formZipData.affiliate.respondentPhone);
  771. this.$set(this.formData.affiliate, 'respondentIdentityNum', this.formZipData.affiliate.respondentIdentityNum);
  772. this.$set(this.formData.affiliate, 'respondentSex', Number(this.formZipData.affiliate.respondentSex));
  773. this.$set(this.formData.affiliate, 'respondentBirth', this.formZipData.affiliate.respondentBirth);
  774. this.$set(this.formData.affiliate, 'respondentHome', this.formZipData.affiliate.respondentHome);
  775. this.$set(this.formData.affiliate, 'respondentEmail', this.formZipData.affiliate.respondentEmail);
  776. }
  777. // this.formData.affiliate.applicationName = null;
  778. // this.formData.affiliate.code = null;
  779. // this.formData.affiliate.applicationEmail = null;
  780. // this.formData.affiliate.applicationPhone = null;
  781. }
  782. this.$refs["ruleForm"].clearValidate()
  783. },
  784. cancel() {
  785. this.$emit("cancelCaseAdd");
  786. },
  787. institutionalNatural() {
  788. console.log(this.formData.affiliate.organizeFlag);
  789. },
  790. handleBlur() {
  791. console.log(this.formData.affiliate.respondentIdentityNum);
  792. let idCards = {
  793. idCard: this.formData.affiliate.respondentIdentityNum,
  794. };
  795. getInfoByIdCard(idCards).then((res) => {
  796. this.formData.affiliate.respondentSex = Number(res.respondentSex);
  797. console.log(res.respondentBirth);
  798. this.formData.affiliate.respondentBirth = res.respondentBirth;
  799. });
  800. },
  801. },
  802. };
  803. </script>
  804. <style lang="scss" scoped>
  805. .infoIcon {
  806. width: 4px;
  807. // height: 17px;
  808. background-color: #0072ff;
  809. margin-right: 5px;
  810. }
  811. .caseInfo {
  812. font-size: 17px;
  813. font-weight: 600;
  814. }
  815. ::v-deep .el-dialog__body {
  816. height: 700px !important;
  817. overflow: auto !important;
  818. }
  819. ::v-deep .el-form-item--medium .el-form-item__content {
  820. line-height: 37px;
  821. }
  822. </style>