调解系统PC端服务

addCase.vue 29KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763
  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' :limit="1"
  21. :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. };
  538. },
  539. watch: {
  540. addModifyData(val) {
  541. if (val == 1) {
  542. this.title = "新增案件";
  543. this.getUserInfoFn();
  544. this.modelFlag = false;
  545. this.buttonFlag = true;
  546. this.formData = {
  547. affiliate: {
  548. organizeFlag: 0,
  549. respondentSex: 0,
  550. },
  551. columnValueList: [],
  552. caseAttachList: [],
  553. };
  554. } else if (val == 3) {
  555. this.title = "修改案件";
  556. this.modelFlag = true;
  557. this.buttonFlag = true;
  558. } else if (val == 2) {
  559. this.title = "案件详情";
  560. this.modelFlag = true;
  561. this.buttonFlag = false;
  562. }
  563. },
  564. addVisable(val) {
  565. if (val) {
  566. this.activeName = "first";
  567. this.showmediate = false;
  568. this.getTemplateFn();
  569. if (this.addModifyData != 1) {
  570. this.caseApplicationSelectByIdFn(this.caseData.id);
  571. }
  572. }
  573. },
  574. },
  575. created() {
  576. console.log(this.formData, "000000000000000000")
  577. // this.getUserInfoFn();
  578. },
  579. methods: {
  580. /** 切换申请类型 */
  581. changeApplyType(val) {
  582. console.log(val, "变化");
  583. // this.$refs["ruleForm"].resetFields();
  584. },
  585. /**获取申请人信息 */
  586. getUserInfoFn() {
  587. getUserInfo().then(res => {
  588. this.getUserInfoList = res.data;
  589. this.$set(this.formData.affiliate, "applicationName", this.getUserInfoList.nickName);
  590. this.$set(this.formData.affiliate, "code", this.getUserInfoList.idCard);
  591. this.$set(this.formData.affiliate, "applicationEmail", this.getUserInfoList.email);
  592. this.$set(this.formData.affiliate, "applicationPhone", this.getUserInfoList.phonenumber);
  593. })
  594. },
  595. /** 根据案件id获取对应信息 */
  596. caseApplicationSelectByIdFn(data) {
  597. this.applicantEvidence = [];
  598. this.respondentEvidence = [];
  599. caseApplicationSelectById({ id: data }).then((res) => {
  600. res.data.affiliate.respondentSex = Number(res.data.affiliate.respondentSex)
  601. this.formData = res.data;
  602. this.formData.caseAttachList.forEach((item) => {
  603. if (item.annexType == 2) {
  604. this.applicantEvidence.push(item);
  605. } else if (item.annexType == 6) {
  606. this.respondentEvidence.push(item);
  607. } else if (item.annexType == 7) {
  608. this.showmediate = true
  609. }
  610. });
  611. });
  612. },
  613. // 新增案件
  614. insertFn(data) {
  615. caseApplicationInsert(data).then((res) => {
  616. this.$modal.msgSuccess("新增成功!");
  617. this.$emit("cancelCaseAdd");
  618. this.$emit("getList", this.queryParams);
  619. });
  620. },
  621. // 修改确定
  622. modifyData(data) {
  623. updateComfire(data).then((res) => {
  624. this.$modal.msgSuccess("修改成功!");
  625. this.$emit("cancelCaseAdd");
  626. this.$emit("getList", this.queryParams);
  627. });
  628. },
  629. /** 获取裁决书模板 */
  630. getTemplateFn(data) {
  631. getTemplate(data).then((res) => {
  632. this.templateList = res.rows;
  633. });
  634. },
  635. /** 查看证据 */
  636. fileDetil(val) {
  637. window.open(this.fileURL + val);
  638. },
  639. /** 查看证据 */
  640. toPreview(val) {
  641. window.open(this.fileURL + val);
  642. },
  643. /** 文件上传地址 */
  644. UploadUrl() {
  645. return window.location.origin + "/API/common/upload";
  646. },
  647. zipUrl() {
  648. return window.location.origin + "/API/caseApplication/userIdentify";
  649. },
  650. /**文件上传成功*/
  651. handlSuccess(res, file) {
  652. this.formData.caseAttachList.push({
  653. annexId: res.annexId,
  654. });
  655. },
  656. /**文件超出个数限制时的钩子*/
  657. handleExceed(files, fileList) {
  658. this.$message.warning(
  659. `当前限制选择 3 个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length
  660. } 个文件`
  661. );
  662. },
  663. // 删除文件之前的钩子,参数为上传的文件和文件列表,若返回 false 或者返回 Promise 且被 reject,则停止删除。
  664. beforeRemove(file, fileList) {
  665. return this.$confirm(`确定移除 ${file.name}?`);
  666. },
  667. handleRemove(file, fileList) {
  668. this.caseAttachListArr = this.caseAttachListArr.filter(
  669. (item) => item.annexId != file.annexId
  670. );
  671. },
  672. handleExceedZip(files, fileList) {
  673. this.$message.warning(`当前限制选择 1 个文件`);
  674. },
  675. beforeRemoveZip(file, fileList) {
  676. return this.$confirm(`确定移除 ${file.name}?`);
  677. },
  678. successZip(res){
  679. this.formData = res.data;
  680. this.$set(this.formData.affiliate,'organizeFlag',0);
  681. this.$set(this.formData.affiliate,'respondentSex',Number(res.data.affiliate.respondentSex));
  682. },
  683. handlePreview(file) {
  684. window.open(
  685. window.location.origin + "/API" + file.certificatePath,
  686. "_blank"
  687. );
  688. },
  689. // 提交form表单
  690. submitForm() {
  691. this.$refs["ruleForm"].validate((valid) => {
  692. if (valid) {
  693. if (this.addModifyData == 3) {
  694. this.modifyData(this.formData);
  695. } else if (this.addModifyData == 1) {
  696. this.insertFn(this.formData);
  697. }
  698. }
  699. });
  700. },
  701. clearValidate(val) {
  702. if (val == 0) {
  703. this.$set(this.formData.affiliate, "applicationName", this.getUserInfoList.nickName);
  704. this.$set(this.formData.affiliate, "code", this.getUserInfoList.idCard);
  705. this.$set(this.formData.affiliate, "applicationEmail", this.getUserInfoList.email);
  706. this.$set(this.formData.affiliate, "applicationPhone", this.getUserInfoList.phonenumber);
  707. this.formData.affiliate.nameAgent = null;
  708. this.formData.affiliate.agentEmail = null;
  709. this.formData.affiliate.contactTelphoneAgent = null;
  710. } else if (val == 1) {
  711. this.$set(this.formData.affiliate, "nameAgent", this.getUserInfoList.nickName);
  712. this.$set(this.formData.affiliate, "agentEmail", this.getUserInfoList.email);
  713. this.$set(this.formData.affiliate, "contactTelphoneAgent", this.getUserInfoList.phonenumber);
  714. this.formData.affiliate.applicationName = null;
  715. this.formData.affiliate.code = null;
  716. this.formData.affiliate.applicationEmail = null;
  717. this.formData.affiliate.applicationPhone = null;
  718. }
  719. this.$refs["ruleForm"].clearValidate()
  720. },
  721. cancel() {
  722. this.$emit("cancelCaseAdd");
  723. },
  724. institutionalNatural() {
  725. console.log(this.formData.affiliate.organizeFlag);
  726. },
  727. handleBlur() {
  728. console.log(this.formData.affiliate.respondentIdentityNum);
  729. let idCards = {
  730. idCard: this.formData.affiliate.respondentIdentityNum,
  731. };
  732. getInfoByIdCard(idCards).then((res) => {
  733. this.formData.affiliate.respondentSex = Number(res.respondentSex);
  734. console.log(res.respondentBirth);
  735. this.formData.affiliate.respondentBirth = res.respondentBirth;
  736. });
  737. },
  738. },
  739. };
  740. </script>
  741. <style lang="scss" scoped>
  742. .infoIcon {
  743. width: 4px;
  744. // height: 17px;
  745. background-color: #0072ff;
  746. margin-right: 5px;
  747. }
  748. .caseInfo {
  749. font-size: 17px;
  750. font-weight: 600;
  751. }
  752. ::v-deep .el-dialog__body {
  753. height: 700px !important;
  754. overflow: auto !important;
  755. }
  756. ::v-deep .el-form-item--medium .el-form-item__content {
  757. line-height: 37px;
  758. }
  759. </style>