调解系统PC端服务

addCase.vue 60KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504
  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" v-if="buttonFlag">
  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="12" v-if="buttonFlag">
  52. <el-form-item label="申请人案件证据资料上传:" prop="applicantEvidence">
  53. <el-upload class="upload-demo" ref="fileupload" accept=".png,.jpg,.doc,.docx,.txt,.pdf"
  54. :action="UploadUrl()" :on-success="handlSuccess" :on-remove="handleRemove" :on-preview="handlePreview"
  55. :before-remove="beforeRemove" :data="filedata" :headers="headers" multiple :limit="50"
  56. :on-exceed="handleExceed" :file-list="fileList">
  57. <el-button size="small" type="primary">点击上传</el-button>
  58. <div slot="tip" class="el-upload__tip">
  59. 文件支持上传.jpg,png,.doc,docx,.txt,.pdf文件
  60. </div>
  61. </el-upload>
  62. </el-form-item>
  63. </el-col>
  64. <el-col :span="24" v-if="modelFlag && showEvidence">
  65. <el-form-item label="证据:">
  66. <div v-for="(item, index) in formData.caseAttachList" :key="index" v-if="item.annexType == 2">
  67. <div style="color: blue; cursor: pointer" @click="fileDetil(item.annexPath, 1)">
  68. {{ item.annexName }}
  69. </div>
  70. </div>
  71. </el-form-item>
  72. </el-col>
  73. <el-col :span="24" v-if="modelFlag && mediationApplication">
  74. <el-form-item label="调解申请书:">
  75. <div v-for="(item, index) in formData.caseAttachList" :key="index" v-if="item.annexType == 3">
  76. <div style="color: blue; cursor: pointer" @click="fileDetil(item.annexPath, 1)">
  77. {{ item.annexName }}
  78. </div>
  79. </div>
  80. </el-form-item>
  81. </el-col>
  82. <el-col :span="24" v-if="modelFlag && showmediate">
  83. <el-form-item label="签名前调解书:">
  84. <div v-for="(item, index) in formData.caseAttachList" :key="index" v-if="item.annexType == 7">
  85. <div style="color: blue; cursor: pointer" @click="fileDetil(item.onlyOfficeFileId, 2)">
  86. {{ item.annexName }}
  87. </div>
  88. </div>
  89. </el-form-item>
  90. </el-col>
  91. <el-col :span="24" v-if="modelFlag&&labelShowMediate">
  92. <el-form-item label="调解后调解书:">
  93. <div v-for="(item, index) in formData.caseAttachList" :key="index" v-if="item.annexType == 13">
  94. <div style="color: blue; cursor: pointer" @click="fileDetil(item.annexPath, 1)">
  95. {{ item.annexName }}
  96. </div>
  97. </div>
  98. </el-form-item>
  99. </el-col>
  100. <el-col :span="24">
  101. <el-form-item label="调解结果:" v-if="modelFlag && formData.mediaResult">
  102. <el-link v-if="formData.mediaResult == 1">达成调解</el-link>
  103. <el-link v-if="formData.mediaResult == 2">未达成调解</el-link>
  104. <el-link v-if="formData.mediaResult == 3">未达成调解但不在争议</el-link>
  105. <el-link v-if="formData.mediaResult == 4">未达成调解但同意引入仲裁</el-link>
  106. <el-link v-if="formData.mediaResult == 5">达成和解</el-link>
  107. </el-form-item>
  108. </el-col>
  109. <el-col :span="24">
  110. <div style="display: inline-flex">
  111. <div class="infoIcon"></div>
  112. <div class="caseInfo" style="margin-right: 20px;">双方信息:</div>
  113. </div>
  114. <el-divider></el-divider>
  115. </el-col>
  116. <!-- <el-col :span="24">
  117. <el-form-item label="选择机构或自然人" prop="organizeFlag">
  118. <el-radio-group v-model="formData.organizeFlag" :disabled="modelFlag" @change="clearValidate">
  119. <el-radio :label="0">自然人</el-radio>
  120. <el-radio :label="1">机构</el-radio>
  121. </el-radio-group>
  122. </el-form-item>
  123. </el-col> -->
  124. <el-col :span="24" v-if="buttonFlag">
  125. <el-button type="primary" icon="el-icon-circle-plus-outline" @click='addApplicant'
  126. style="margin-bottom: 40px;">新增申请人信息</el-button>
  127. </el-col>
  128. <div class="applicant" v-for="(item, index) in formData.affiliate.applicant" :key="item.key">
  129. <el-col :span="24">
  130. <div style="display: inline-flex">
  131. <div class="infoIcon"></div>
  132. <div class="caseInfo">申请人</div>
  133. </div>
  134. <el-divider></el-divider>
  135. </el-col>
  136. <el-col :span="24">
  137. <el-form-item label="选择机构或自然人">
  138. <el-radio-group v-model="item.applicant.organizeFlag" :disabled="modelFlag" @change="clearValidate($event,index)">
  139. <el-radio :label="0">自然人</el-radio>
  140. <el-radio :label="1">机构</el-radio>
  141. </el-radio-group>
  142. </el-form-item>
  143. </el-col>
  144. <el-col :span="12" v-if="item.applicant.organizeFlag == 1">
  145. <el-form-item label="机构名称" :prop="'affiliate.applicant.' + index + '.applicant.name'" :rules="[
  146. {
  147. required: true,
  148. message: '申请机构名称不能为空',
  149. trigger: 'blur',
  150. },
  151. ]">
  152. <el-input v-model="item.applicant.name" placeholder="请输入申请机构名称" />
  153. </el-form-item>
  154. </el-col>
  155. <el-col :span="12" v-if="item.applicant.organizeFlag == 0">
  156. <el-form-item label="申请人" :prop="'affiliate.applicant.' + index + '.applicant.name'" :rules="[
  157. {
  158. required: true,
  159. message: '申请人名称不能为空',
  160. trigger: 'blur',
  161. },
  162. ]">
  163. <el-input v-model="item.applicant.name" placeholder="请输入申请人姓名" />
  164. </el-form-item>
  165. </el-col>
  166. <el-col :span="12" v-if="item.applicant.organizeFlag == 0">
  167. <el-form-item label="是否为操作人" :prop="'affiliate.applicant.' + index + '.applicant.operatorFlag'" :rules="[
  168. {
  169. required: true,
  170. message: '请选择是否为操作人',
  171. trigger: 'blur',
  172. },
  173. ]">
  174. <el-select v-model="item.applicant.operatorFlag" placeholder="请选择" auto-complete="off"
  175. style="width: 100%;">
  176. <el-option v-for="item in roleTypeList" :key="item.id" :label="item.value" :value="item.id">
  177. </el-option>
  178. </el-select>
  179. </el-form-item>
  180. </el-col>
  181. <el-col :span="12" v-if="item.applicant.organizeFlag == 1">
  182. <el-form-item label-width="140px" label="统一社会信用代码"
  183. :prop="'affiliate.applicant.' + index + '.applicant.code'" :rules="[
  184. {
  185. required: true,
  186. message: '统一社会信用代码不能为空',
  187. trigger: 'blur',
  188. },
  189. ]">
  190. <el-input v-model="item.applicant.code" placeholder="请输入统一社会信用代码" />
  191. </el-form-item>
  192. </el-col>
  193. <el-col :span="12">
  194. <el-form-item :prop="'affiliate.applicant.' + index + '.applicant.nationality'" label="国籍" :rules="[
  195. {
  196. required: true,
  197. message: '国籍不能为空',
  198. trigger: 'blur',
  199. },
  200. ]">
  201. <el-select v-model="item.applicant.nationality" placeholder="请选择国籍" auto-complete="off"
  202. style="width: 100%;">
  203. <el-option v-for="item in nationalityList" :key="item.id" :label="item.value" :value="item.id">
  204. </el-option>
  205. </el-select>
  206. </el-form-item>
  207. </el-col>
  208. <el-col :span="12" v-if="item.applicant.organizeFlag == 0">
  209. <el-form-item :prop="'affiliate.applicant.' + index + '.applicant.idType'" label="证件类型" :rules="[
  210. {
  211. required: true,
  212. message: '证件类型不能为空',
  213. trigger: 'blur',
  214. },
  215. ]">
  216. <el-select v-model="item.applicant.idType" placeholder="证件类型" auto-complete="off" style="width: 100%;">
  217. <el-option v-for="item in idTypeList" :key="Number(item.dictValue)" :label="item.dictLabel"
  218. :value="Number(item.dictValue)">
  219. </el-option>
  220. </el-select>
  221. </el-form-item>
  222. </el-col>
  223. <el-col :span="12" v-if="item.applicant.organizeFlag == 0">
  224. <el-form-item label="证件号码" :prop="'affiliate.applicant.' + index + '.applicant.idCard'" :rules="[
  225. {
  226. required: true,
  227. message: '证件号码不能为空',
  228. trigger: 'blur',
  229. },
  230. ]">
  231. <el-input v-model="item.applicant.idCard" @blur="handleBlurApplicant(index)"
  232. placeholder="请输入申请人的证件号码" />
  233. </el-form-item>
  234. </el-col>
  235. <el-col :span="12" v-if="item.applicant.organizeFlag == 0">
  236. <el-form-item label-width="140px" label="出生年月:"
  237. :prop="'affiliate.applicant.' + index + '.applicant.birth'">
  238. <el-date-picker disabled v-model="item.applicant.birth" type="date" placeholder="申请人出生年月日">
  239. </el-date-picker>
  240. </el-form-item>
  241. </el-col>
  242. <el-col :span="12" v-if="item.applicant.organizeFlag == 0">
  243. <el-form-item label="性别:" :prop="'affiliate.applicant.' + index + '.applicant.sex'" :rules="[
  244. {
  245. required: true,
  246. message: '请选择性别',
  247. },
  248. ]">
  249. <el-radio-group v-model="item.applicant.sex" disabled>
  250. <el-radio :label="'0'">男</el-radio>
  251. <el-radio :label="'1'">女</el-radio>
  252. </el-radio-group>
  253. </el-form-item>
  254. </el-col>
  255. <el-col :span="12" v-if="item.applicant.organizeFlag == 0">
  256. <el-form-item label="邮箱" :prop="'affiliate.applicant.' + index + '.applicant.email'" :rules="[
  257. {
  258. required: true,
  259. message: '申请人邮箱不能为空',
  260. trigger: 'blur',
  261. },
  262. {
  263. pattern:
  264. /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/,
  265. message: '请输入正确的邮箱地址',
  266. trigger: 'blur',
  267. },
  268. ]">
  269. <el-input v-model="item.applicant.email" placeholder="请输入申请人邮箱" />
  270. </el-form-item>
  271. </el-col>
  272. <el-col :span="12" v-if="item.applicant.organizeFlag == 0">
  273. <el-form-item label="电话" :prop="'affiliate.applicant.' + index + '.applicant.phone'" :rules="formData.affiliate.nationality == 0 ? [
  274. {
  275. required: true,
  276. message: '申请人联系电话不能为空',
  277. trigger: 'blur',
  278. },
  279. {
  280. pattern: /^[1][3,4,5,6,7,8,9][0-9]{9}$/,
  281. message: '请输入正确的手机号码',
  282. trigger: 'blur',
  283. },
  284. ] : []">
  285. <el-input v-model="item.applicant.phone" placeholder="请输入申请人联系电话" />
  286. </el-form-item>
  287. </el-col>
  288. <el-col :span="12" v-if="item.applicant.organizeFlag == 1">
  289. <el-form-item label="法定代表人" :prop="'affiliate.applicant.' + index + '.applicant.compLegalPerson'" :rules="[
  290. {
  291. required: true,
  292. message: '法定代表人不能为空',
  293. trigger: 'blur',
  294. },
  295. ]">
  296. <el-input v-model="item.applicant.compLegalPerson" placeholder="请输入法定代表人" />
  297. </el-form-item>
  298. </el-col>
  299. <el-col :span="12">
  300. <el-form-item label="住所" :prop="'affiliate.applicant.' + index + '.applicant.home'" :rules="[
  301. {
  302. required: true,
  303. message: '申请人住所不能为空',
  304. trigger: 'blur',
  305. },
  306. ]">
  307. <el-input v-model="item.applicant.home" placeholder="请输入申请人住所" />
  308. </el-form-item>
  309. </el-col>
  310. <el-col :span="12">
  311. <el-form-item label="联系地址" :prop="'affiliate.applicant.' + index + '.applicant.address'" :rules="[
  312. {
  313. required: true,
  314. message: '申请人联系地址不能为空',
  315. trigger: 'blur',
  316. },
  317. ]">
  318. <el-input v-model="item.applicant.address" placeholder="请输入申请人联系地址" />
  319. </el-form-item>
  320. </el-col>
  321. <el-col :span="24">
  322. <div style="display: inline-flex">
  323. <div class="infoIcon"></div>
  324. <div class="caseInfo">申请人代理人</div>
  325. </div>
  326. <el-divider></el-divider>
  327. </el-col>
  328. <el-col :span="12" v-if="item.applicant.organizeFlag == 1">
  329. <el-form-item label="联系电话" :prop="'affiliate.applicant.' + index + '.applicantAgent.phone'" :rules="[
  330. {
  331. required: true,
  332. message: '代理人联系电话不能为空',
  333. trigger: 'blur',
  334. },
  335. {
  336. pattern: /^[1][3,4,5,6,7,8,9][0-9]{9}$/,
  337. message: '请输入正确的手机号码',
  338. trigger: 'blur',
  339. },
  340. ]">
  341. <el-input v-model="item.applicantAgent.phone" placeholder="请输入代理人联系电话" />
  342. </el-form-item>
  343. </el-col>
  344. <el-col :span="12" v-if="item.applicant.organizeFlag == 0">
  345. <el-form-item label="联系电话" :prop="'affiliate.applicant.' + index + '.applicantAgent.phone'">
  346. <el-input v-model="item.applicantAgent.phone" placeholder="请输入代理人联系电话" />
  347. </el-form-item>
  348. </el-col>
  349. <el-col :span="12" v-if="item.applicant.organizeFlag == 1">
  350. <el-form-item label="姓名" :prop="'affiliate.applicant.' + index + '.applicantAgent.name'" :rules="[
  351. {
  352. required: true,
  353. message: '代理人姓名不能为空',
  354. trigger: 'blur',
  355. },
  356. ]">
  357. <el-input v-model="item.applicantAgent.name" placeholder="请输入代理人姓名" />
  358. </el-form-item>
  359. </el-col>
  360. <el-col :span="12" v-if="item.applicant.organizeFlag == 0">
  361. <el-form-item label="姓名" :prop="'affiliate.applicant.' + index + '.applicantAgent.name'">
  362. <el-input v-model="item.applicantAgent.name" placeholder="请输入代理人姓名" />
  363. </el-form-item>
  364. </el-col>
  365. <el-col :span="12">
  366. <el-form-item label="是否为操作人" :prop="'affiliate.applicant.' + index + '.applicant.operatorFlag'">
  367. <el-select v-model="item.applicantAgent.operatorFlag" placeholder="请选择" auto-complete="off"
  368. style="width: 100%;">
  369. <el-option v-for="item in roleTypeList" :key="item.id" :label="item.value" :value="item.id">
  370. </el-option>
  371. </el-select>
  372. </el-form-item>
  373. </el-col>
  374. <el-col :span="12" v-if="item.applicant.organizeFlag == 1">
  375. <el-form-item label="邮箱" :prop="'affiliate.applicant.' + index + '.applicantAgent.email'" :rules="[
  376. {
  377. required: true,
  378. message: '代理人邮箱不能为空',
  379. trigger: 'blur',
  380. },
  381. {
  382. pattern:
  383. /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/,
  384. message: '请输入正确的邮箱地址',
  385. trigger: 'blur',
  386. },
  387. ]">
  388. <el-input v-model="item.applicantAgent.email" placeholder="请输入代理人邮箱" />
  389. </el-form-item>
  390. </el-col>
  391. <el-col :span="12" v-if="item.applicant.organizeFlag == 0">
  392. <el-form-item label="邮箱" :prop="'affiliate.applicant.' + index + '.applicantAgent.email'" :rules="[
  393. {
  394. pattern:
  395. /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/,
  396. message: '请输入正确的邮箱地址',
  397. trigger: 'blur',
  398. },
  399. ]">
  400. <el-input v-model="item.applicantAgent.email" placeholder="请输入代理人邮箱" />
  401. </el-form-item>
  402. </el-col>
  403. <el-col :span="12" v-if="buttonFlag">
  404. <el-button v-if="index >=1?true:false" type="primary" icon="el-icon-delete" style='margin-bottom: 40px;'
  405. @click='deleteApplicant(item)'>删除</el-button>
  406. </el-col>
  407. </div>
  408. <el-col :span="24" v-if="buttonFlag">
  409. <el-button type="primary" icon="el-icon-circle-plus-outline" @click='addRes'
  410. style="margin-bottom: 40px;">新增被申请人信息</el-button>
  411. </el-col>
  412. <div class="res" v-for="(item, index) in formData.affiliate.res" :key="index">
  413. <el-col :span="24">
  414. <div style="display: inline-flex">
  415. <div class="infoIcon"></div>
  416. <div class="caseInfo" style="margin-right: 40px;">被申请人</div>
  417. </div>
  418. <el-divider></el-divider>
  419. </el-col>
  420. <el-col :span="24">
  421. <el-form-item label="选择机构或自然人">
  422. <el-radio-group v-model="item.res.organizeFlag" :disabled="modelFlag" @change="clearValidateRes($event,index)">
  423. <el-radio :label="0">自然人</el-radio>
  424. <el-radio :label="1">机构</el-radio>
  425. </el-radio-group>
  426. </el-form-item>
  427. </el-col>
  428. <el-col :span="12" v-if="item.res.organizeFlag == 0">
  429. <el-form-item label="被申请人" :prop="'affiliate.res.' + index + '.res.name'" :rules="[
  430. {
  431. required: true,
  432. message: '被申请人姓名不能为空',
  433. trigger: 'blur',
  434. },
  435. ]">
  436. <el-input v-model="item.res.name" placeholder="请输入被申请人姓名" />
  437. </el-form-item>
  438. </el-col>
  439. <el-col :span="12" v-if="item.res.organizeFlag == 1">
  440. <el-form-item label="机构名称" :prop="'affiliate.res.' + index + '.res.name'" :rules="[
  441. {
  442. required: true,
  443. message: '机构名称不能为空',
  444. trigger: 'blur',
  445. },
  446. ]">
  447. <el-input v-model="item.res.name" placeholder="请输入机构名称" />
  448. </el-form-item>
  449. </el-col>
  450. <el-col :span="12" v-if="item.res.organizeFlag == 0">
  451. <el-form-item label="是否为操作人" :prop="'affiliate.res.' + index + '.res.operatorFlag'">
  452. <el-select v-model="item.res.operatorFlag" placeholder="请选择" auto-complete="off" style="width: 100%;">
  453. <el-option v-for="item in roleTypeList" :key="item.id" :label="item.value" :value="item.id">
  454. </el-option>
  455. </el-select>
  456. </el-form-item>
  457. </el-col>
  458. <el-col :span="12">
  459. <el-form-item :prop="'affiliate.res.' + index + '.res.nationality'" label="国籍" :rules="[
  460. {
  461. required: true,
  462. message: '国籍不能为空',
  463. trigger: 'blur',
  464. },
  465. ]">
  466. <el-select v-model="item.res.nationality" placeholder="请选择国籍" auto-complete="off" style="width: 100%;">
  467. <el-option v-for="item in nationalityList" :key="item.id" :label="item.value" :value="item.id">
  468. </el-option>
  469. </el-select>
  470. </el-form-item>
  471. </el-col>
  472. <el-col :span="12" v-if="item.res.organizeFlag == 0">
  473. <el-form-item :prop="'affiliate.res.' + index + '.res.idType'" label="证件类型" :rules="[
  474. {
  475. required: true,
  476. message: '证件类型不能为空',
  477. trigger: 'blur',
  478. },
  479. ]">
  480. <el-select v-model="item.res.idType" placeholder="证件类型" auto-complete="off" style="width: 100%;">
  481. <el-option v-for="item in idTypeList" :key="Number(item.dictValue)" :label="item.dictLabel"
  482. :value="Number(item.dictValue)">
  483. </el-option>
  484. </el-select>
  485. </el-form-item>
  486. </el-col>
  487. <el-col :span="12" v-if="item.res.organizeFlag == 0">
  488. <el-form-item label-width="140px" label="联系电话" :prop="'affiliate.res.' + index + '.res.phone'" :rules="[
  489. {
  490. required: true,
  491. message: '被申请人联系电话不能为空',
  492. trigger: 'blur',
  493. },
  494. {
  495. pattern: /^[1][3,4,5,6,7,8,9][0-9]{9}$/,
  496. message: '请输入正确的手机号码',
  497. trigger: 'blur',
  498. },
  499. ]">
  500. <el-input v-model="item.res.phone" placeholder="请输入被申请人联系电话" />
  501. </el-form-item>
  502. </el-col>
  503. <el-col :span="12">
  504. <el-form-item label-width="150px" label="住所" :prop="'affiliate.res.' + index + '.res.home'" :rules="[
  505. {
  506. required: true,
  507. message: '住所不能为空',
  508. trigger: 'blur',
  509. },
  510. ]">
  511. <el-input v-model="item.res.home" placeholder="请输入住所" />
  512. </el-form-item>
  513. </el-col>
  514. <el-col :span="12">
  515. <el-form-item label="联系地址" :prop="'affiliate.res.' + index + '.res.address'" :rules="[
  516. {
  517. required: true,
  518. message: '联系地址不能为空',
  519. trigger: 'blur',
  520. },
  521. ]">
  522. <el-input v-model="item.res.address" placeholder="请输入联系地址" />
  523. </el-form-item>
  524. </el-col>
  525. <el-col :span="12" v-if="item.res.organizeFlag == 0">
  526. <el-form-item label="邮箱" :prop="'affiliate.res.' + index + '.res.email'" :rules="[
  527. {
  528. required: true,
  529. message: '被申请人邮箱不能为空',
  530. trigger: 'blur',
  531. },
  532. {
  533. pattern:
  534. /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/,
  535. message: '请输入正确的邮箱地址',
  536. trigger: 'blur',
  537. },
  538. ]">
  539. <el-input v-model="item.res.email" placeholder="请输入被申请人邮箱" />
  540. </el-form-item>
  541. </el-col>
  542. <el-col :span="12" v-if="item.res.organizeFlag == 0">
  543. <el-form-item label-width="140px" label="身份证号" :prop="'affiliate.res.' + index + '.res.idCard'"
  544. :rules="[
  545. {
  546. required: true,
  547. message: '被申请人身份证号不能为空',
  548. trigger: 'blur',
  549. },
  550. {
  551. pattern:
  552. /^[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]$/,
  553. message: '请输入正确的身份证号码',
  554. trigger: 'blur',
  555. },
  556. ]">
  557. <el-input v-model="item.res.idCard" @blur="handleBlur(index)" placeholder="请输入被申请人身份证号" />
  558. </el-form-item>
  559. </el-col>
  560. <el-col :span="12" v-if="item.res.organizeFlag == 1">
  561. <el-form-item label-width="140px" label="统一社会信用代码" :prop="'affiliate.res.' + index + '.res.code'" :rules="[
  562. {
  563. required: true,
  564. message: '统一社会信用代码不能为空',
  565. trigger: 'blur',
  566. },
  567. ]">
  568. <el-input v-model="item.res.code" placeholder="请输入统一社会信用代码" />
  569. </el-form-item>
  570. </el-col>
  571. <el-col :span="12" v-if="item.res.organizeFlag == 1">
  572. <el-form-item label="法定代表人" :prop="'affiliate.res.' + index + '.res.compLegalPerson'" :rules="[
  573. {
  574. required: true,
  575. message: '法定代表人不能为空',
  576. trigger: 'blur',
  577. },
  578. ]">
  579. <el-input v-model="item.res.compLegalPerson" placeholder="请输入法定代表人" />
  580. </el-form-item>
  581. </el-col>
  582. <el-col :span="12" v-if="item.res.organizeFlag == 0">
  583. <el-form-item label-width="140px" label="出生年月:" :prop="'affiliate.res.' + index + '.res.birth'">
  584. <el-date-picker disabled v-model="item.res.birth" type="date" placeholder="被申请人出生年月日">
  585. </el-date-picker>
  586. </el-form-item>
  587. </el-col>
  588. <el-col :span="12" v-if="item.res.organizeFlag == 0">
  589. <el-form-item label="性别:" :prop="'affiliate.res.' + index + '.res.sex'" :rules="[
  590. {
  591. required: true,
  592. message: '请选择性别',
  593. },
  594. ]">
  595. <el-radio-group v-model="item.res.sex" disabled>
  596. <el-radio :label="'0'">男</el-radio>
  597. <el-radio :label="'1'">女</el-radio>
  598. </el-radio-group>
  599. </el-form-item>
  600. </el-col>
  601. <el-col :span="24">
  602. <div style="display: inline-flex">
  603. <div class="infoIcon"></div>
  604. <div class="caseInfo">被申请人代理人</div>
  605. </div>
  606. <el-divider></el-divider>
  607. </el-col>
  608. <el-col :span="12" v-if="item.res.organizeFlag == 1">
  609. <el-form-item label="联系电话" :prop="'affiliate.res.' + index + '.resAgent.phone'" :rules="[
  610. {
  611. required: true,
  612. message: '代理人联系电话不能为空',
  613. trigger: 'blur',
  614. },
  615. {
  616. pattern: /^[1][3,4,5,6,7,8,9][0-9]{9}$/,
  617. message: '请输入正确的手机号码',
  618. trigger: 'blur',
  619. },
  620. ]">
  621. <el-input v-model="item.resAgent.phone" placeholder="请输入代理人联系电话" />
  622. </el-form-item>
  623. </el-col>
  624. <el-col :span="12" v-if="item.res.organizeFlag == 0">
  625. <el-form-item label="联系电话" :prop="'affiliate.res.' + index + '.resAgent.phone'">
  626. <el-input v-model="item.resAgent.phone" placeholder="请输入代理人联系电话" />
  627. </el-form-item>
  628. </el-col>
  629. <el-col :span="12" v-if="item.res.organizeFlag == 1">
  630. <el-form-item label="姓名" :prop="'affiliate.res.' + index + '.resAgent.name'" :rules="[
  631. {
  632. required: true,
  633. message: '代理人姓名不能为空',
  634. trigger: 'blur',
  635. },
  636. ]">
  637. <el-input v-model="item.resAgent.name" placeholder="请输入代理人姓名" />
  638. </el-form-item>
  639. </el-col>
  640. <el-col :span="12">
  641. <el-form-item label="是否为操作人" :prop="'affiliate.res.' + index + '.resAgent.operatorFlag'">
  642. <el-select v-model="item.resAgent.operatorFlag" placeholder="请选择" auto-complete="off"
  643. style="width: 100%;">
  644. <el-option v-for="item in roleTypeList" :key="item.id" :label="item.value" :value="item.id">
  645. </el-option>
  646. </el-select>
  647. </el-form-item>
  648. </el-col>
  649. <el-col :span="12" v-if="item.res.organizeFlag == 0">
  650. <el-form-item label="姓名" :prop="'affiliate.res.' + index + '.resAgent.name'">
  651. <el-input v-model="item.resAgent.name" placeholder="请输入代理人姓名" />
  652. </el-form-item>
  653. </el-col>
  654. <el-col :span="12" v-if="item.res.organizeFlag == 1">
  655. <el-form-item label="邮箱" :prop="'affiliate.res.' + index + '.resAgent.email'" :rules="[
  656. {
  657. required: true,
  658. message: '代理人邮箱不能为空',
  659. trigger: 'blur',
  660. },
  661. {
  662. pattern:
  663. /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/,
  664. message: '请输入正确的邮箱地址',
  665. trigger: 'blur',
  666. },
  667. ]">
  668. <el-input v-model="item.resAgent.email" placeholder="请输入代理人邮箱" />
  669. </el-form-item>
  670. </el-col>
  671. <el-col :span="12" v-if="item.res.organizeFlag == 0">
  672. <el-form-item label="邮箱" :prop="'affiliate.res.' + index + '.resAgent.email'" :rules="[
  673. {
  674. pattern:
  675. /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/,
  676. message: '请输入正确的邮箱地址',
  677. trigger: 'blur',
  678. },
  679. ]">
  680. <el-input v-model="item.resAgent.email" placeholder="请输入代理人邮箱" />
  681. </el-form-item>
  682. </el-col>
  683. <el-col :span="24" v-if="modelFlag">
  684. <el-form-item v-for="item in formData.columnValueList" :label="item.name" :key="item.id">
  685. <el-input type="textarea" v-model="item.value"></el-input>
  686. </el-form-item>
  687. </el-col>
  688. <el-col :span="12" v-if="buttonFlag">
  689. <el-button v-if="index >=1?true:false" type="primary" icon="el-icon-delete" style='margin-bottom: 40px;'
  690. @click='deleteRes(item)'>删除</el-button>
  691. </el-col>
  692. </div>
  693. </el-row>
  694. </el-form>
  695. <div v-if="activeName == 'second'">
  696. <el-card class="box-card" style="margin-bottom: 30px" v-if="applicantEvidence.length">
  697. <div slot="header" class="clearfix">
  698. <span>申请人证据清单</span>
  699. </div>
  700. <div v-for="(item, index) in applicantEvidence" :key="index" class="text item"
  701. style="color: blue; cursor: pointer" @click="toPreview(item.annexPath)">
  702. {{ item.annexName }}
  703. </div>
  704. </el-card>
  705. <el-card class="box-card" v-if="respondentEvidence.length">
  706. <div slot="header" class="clearfix">
  707. <span>被申请人证据清单</span>
  708. </div>
  709. <div v-for="(item, index) in respondentEvidence" :key="index" class="text item"
  710. style="color: blue; cursor: pointer" @click="toPreview(item.annexPath)">
  711. {{ item.annexName }}
  712. </div>
  713. </el-card>
  714. <el-card class="box-card" v-if="videoList.length">
  715. <div slot="header" class="clearfix">
  716. <span>视频资料</span>
  717. </div>
  718. <div v-for="(item, index) in videoList" :key="index" class="text item" style="color: blue; cursor: pointer">
  719. <video style="background-color: #181717;width: 350px;height: 200px;margin: 10px;" :key="index"
  720. :src="fileURL + item.annexPath" controls="controls"></video>
  721. </div>
  722. </el-card>
  723. </div>
  724. <div slot="footer" class="dialog-footer" v-if="buttonFlag">
  725. <el-button @click="cancel" class="endbutton"><span>取 消</span></el-button>
  726. <el-button type="primary" @click="submitForm" class="endbutton"><span>确认</span></el-button>
  727. </div>
  728. </el-dialog>
  729. </div>
  730. </template>
  731. <script>
  732. import {
  733. caseApplicationInsert,
  734. caseApplicationSelectById,
  735. updateComfire,
  736. getInfoByIdCard,
  737. getUserInfo,
  738. getIdType
  739. } from "@/api/caseManagement/caseManagement.js";
  740. import { getTemplate } from "@/api/officialSeal/officialSeal.js";
  741. import { getToken } from "@/utils/auth";
  742. export default {
  743. props: [
  744. "addVisable",
  745. "queryParams",
  746. "caseData",
  747. "caseDisabled",
  748. "tabFlag",
  749. "addModifyData",
  750. ],
  751. // dicts: ["id_type"],
  752. data() {
  753. return {
  754. activeName: "first",
  755. title: "新增案件",
  756. // organizeFlag:0,//选择机构和自然人
  757. formData: {
  758. caseSource: "YC",
  759. arbitratClaims: "",
  760. facts: "",
  761. organizeFlag: 0,
  762. affiliate:
  763. {
  764. applicant: [
  765. {
  766. applicant: {
  767. roleType: 1,
  768. name: "",
  769. idCard: "",
  770. code: "",
  771. phone: "",
  772. compLegalPerson: "",
  773. email: "",
  774. home: "",
  775. address: "",
  776. idType: 0,
  777. nationality: 1,
  778. birth: "",
  779. sex: "1",
  780. operatorFlag: 1,
  781. organizeFlag: 0,
  782. },
  783. applicantAgent: {
  784. roleType: 2,
  785. name: "",
  786. idCard: "",
  787. code: "",
  788. phone: "",
  789. compLegalPerson: "",
  790. email: "",
  791. home: "",
  792. address: "",
  793. idType: 0,
  794. nationality: 1,
  795. birth: "",
  796. sex: "1",
  797. operatorFlag: 1,
  798. organizeFlag: 0,
  799. },
  800. },
  801. ],
  802. res: [
  803. {
  804. res: {
  805. roleType: 3,
  806. name: "",
  807. idCard: "",
  808. code: "",
  809. phone: "",
  810. compLegalPerson: "",
  811. email: "",
  812. home: "",
  813. address: "",
  814. idType: 0,
  815. nationality: 1,
  816. birth: "",
  817. sex: "0",
  818. operatorFlag: 1,
  819. organizeFlag: 0,
  820. },
  821. resAgent: {
  822. roleType: 4,
  823. name: "",
  824. idCard: "",
  825. code: "",
  826. phone: "",
  827. compLegalPerson: "",
  828. email: "",
  829. home: "",
  830. address: "",
  831. idType: 0,
  832. nationality: 1,
  833. birth: "",
  834. sex: "",
  835. operatorFlag: 1,
  836. organizeFlag: 0,
  837. }
  838. }
  839. ]
  840. },
  841. columnValueList: [],
  842. caseAttachList: [],
  843. },
  844. templateList: [],
  845. modelFlag: false,
  846. fileURL: window.location.origin + "/API",
  847. fileList: [],
  848. fileListZip: [],
  849. filedata: {
  850. annexType: 2,
  851. },
  852. headers: {
  853. Authorization: "Bearer " + getToken(),
  854. },
  855. applicantEvidence: [], //申请人证据
  856. respondentEvidence: [], //被申请人证据
  857. videoList: [],
  858. buttonFlag: true,
  859. getUserInfoList: {},
  860. applicationFlag: null,
  861. showmediate: false,
  862. labelShowMediate:false,
  863. showEvidence: false,//是否显示证据
  864. mediationApplication: false,
  865. formZipData: {},
  866. nationalityList: [
  867. {
  868. value: '境内',
  869. id: 0
  870. },
  871. {
  872. value: '境外',
  873. id: 1
  874. }
  875. ],
  876. roleTypeList: [
  877. {
  878. value: '否',
  879. id: 0
  880. },
  881. {
  882. value: '是',
  883. id: 1
  884. }
  885. ],
  886. idTypeList: [
  887. // {
  888. // value: '身份证',
  889. // id: 0
  890. // },
  891. // {
  892. // value: '护照',
  893. // id: 1
  894. // }
  895. ]
  896. };
  897. },
  898. watch: {
  899. addModifyData(val) {
  900. if (val == 1) {
  901. this.title = "新增案件";
  902. this.getUserInfoFn();
  903. this.modelFlag = false;
  904. this.buttonFlag = true;
  905. } else if (val == 3) {
  906. this.title = "修改案件";
  907. this.modelFlag = true;
  908. this.buttonFlag = true;
  909. } else if (val == 2) {
  910. this.title = "案件详情";
  911. this.modelFlag = true;
  912. this.buttonFlag = false;
  913. }
  914. },
  915. async addVisable(val) {
  916. if (val) {
  917. if (this.addModifyData == 1) {
  918. this.formData = {
  919. caseSource: "YC",
  920. organizeFlag: 0,
  921. affiliate:
  922. {
  923. applicant: [
  924. {
  925. applicant: {
  926. roleType: 1,
  927. name: "",
  928. idCard: "",
  929. code: "",
  930. phone: "",
  931. compLegalPerson: "",
  932. email: "",
  933. home: "",
  934. address: "",
  935. idType: 0,
  936. nationality: 1,
  937. birth: "",
  938. sex: "1",
  939. operatorFlag: 1,
  940. organizeFlag: 0,
  941. },
  942. applicantAgent: {
  943. roleType: 2,
  944. name: "",
  945. idCard: "",
  946. code: "",
  947. phone: "",
  948. compLegalPerson: "",
  949. email: "",
  950. home: "",
  951. address: "",
  952. idType: 0,
  953. nationality: 1,
  954. birth: "",
  955. sex: "1",
  956. operatorFlag: 1,
  957. organizeFlag: 0,
  958. }
  959. },
  960. ],
  961. res: [
  962. {
  963. res: {
  964. roleType: 3,
  965. name: "",
  966. idCard: "",
  967. code: "",
  968. phone: "",
  969. compLegalPerson: "",
  970. email: "",
  971. home: "",
  972. address: "",
  973. idType: 0,
  974. nationality: 1,
  975. birth: "",
  976. sex: "0",
  977. operatorFlag: 1,
  978. organizeFlag: 0,
  979. },
  980. resAgent: {
  981. roleType: 4,
  982. name: "",
  983. idCard: "",
  984. code: "",
  985. phone: "",
  986. compLegalPerson: "",
  987. email: "",
  988. home: "",
  989. address: "",
  990. idType: 0,
  991. nationality: 1,
  992. birth: "",
  993. sex: "",
  994. operatorFlag: 1,
  995. organizeFlag: 0,
  996. }
  997. }
  998. ]
  999. },
  1000. columnValueList: [],
  1001. caseAttachList: [],
  1002. };
  1003. this.$set(this.formData.affiliate.applicant[0].applicant, "name", this.getUserInfoList.nickName);
  1004. this.$set(this.formData.affiliate.applicant[0].applicant, "idCard", this.getUserInfoList.idCard);
  1005. this.$set(this.formData.affiliate.applicant[0].applicant, "email", this.getUserInfoList.email);
  1006. this.$set(this.formData.affiliate.applicant[0].applicant, "phone", this.getUserInfoList.phonenumber);
  1007. this.$set(this.formData.affiliate.applicant[0].applicant, "idType", this.getUserInfoList.idType);
  1008. this.$set(this.formData.affiliate.applicant[0].applicant, "nationality", this.getUserInfoList.nationality);
  1009. this.$set(this.formData.affiliate.applicant[0].applicant, "sex", this.getUserInfoList.sex);
  1010. this.$set(this.formData.affiliate.applicant[0].applicant, "birth", this.getUserInfoList.birth);
  1011. }
  1012. this.activeName = "first";
  1013. this.showmediate = false;
  1014. this.labelShowMediate = false;
  1015. this.showEvidence = false;
  1016. this.mediationApplication = false;
  1017. this.getTemplateFn();
  1018. if (this.addModifyData != 1) {
  1019. await this.getIdTypeFn();
  1020. await this.caseApplicationSelectByIdFn(this.caseData.id);
  1021. }
  1022. }
  1023. },
  1024. },
  1025. created() {
  1026. // this.getUserInfoFn();
  1027. this.getIdTypeFn();
  1028. },
  1029. methods: {
  1030. /** 获取证件类型 */
  1031. getIdTypeFn() {
  1032. getIdType().then(res => {
  1033. this.idTypeList = res.data;
  1034. })
  1035. },
  1036. /** 切换申请类型 */
  1037. changeApplyType(val) {
  1038. // console.log(val, "变化");
  1039. // this.$refs["ruleForm"].resetFields();
  1040. },
  1041. /**获取申请人信息 */
  1042. getUserInfoFn() {
  1043. getUserInfo().then(res => {
  1044. this.getUserInfoList = res.data;
  1045. console.log(this.getUserInfoList.sex)
  1046. this.$set(this.formData.affiliate.applicant[0].applicant, "name", this.getUserInfoList.nickName);
  1047. this.$set(this.formData.affiliate.applicant[0].applicant, "idCard", this.getUserInfoList.idCard);
  1048. this.$set(this.formData.affiliate.applicant[0].applicant, "email", this.getUserInfoList.email);
  1049. this.$set(this.formData.affiliate.applicant[0].applicant, "phone", this.getUserInfoList.phonenumber);
  1050. this.$set(this.formData.affiliate.applicant[0].applicant, "idType", this.getUserInfoList.idType);
  1051. this.$set(this.formData.affiliate.applicant[0].applicant, "nationality", this.getUserInfoList.nationality);
  1052. this.$set(this.formData.affiliate.applicant[0].applicant, "sex", this.getUserInfoList.sex);
  1053. this.$set(this.formData.affiliate.applicant[0].applicant, "birth", this.getUserInfoList.birth);
  1054. })
  1055. },
  1056. /** 根据案件id获取对应信息 */
  1057. async caseApplicationSelectByIdFn(data) {
  1058. this.applicantEvidence = [];
  1059. this.respondentEvidence = [];
  1060. this.videoList = [];
  1061. await caseApplicationSelectById({ id: data }).then((res) => {
  1062. let data = res.data;
  1063. data.affiliate.applicant.forEach(item => {
  1064. if (!item.applicant) {
  1065. item.applicant = {}
  1066. }
  1067. if (!item.applicantAgent) {
  1068. item.applicantAgent = {}
  1069. }
  1070. })
  1071. data.affiliate.res.forEach(item => {
  1072. if (!item.res) {
  1073. item.res = {}
  1074. }
  1075. if (!item.resAgent) {
  1076. item.resAgent = {}
  1077. }
  1078. })
  1079. this.formData = data;
  1080. data.caseAttachList.forEach((item) => {
  1081. if (item.annexType == 2) {
  1082. this.applicantEvidence.push(item);
  1083. this.showEvidence = true
  1084. } else if (item.annexType == 5) {
  1085. this.videoList.push(item);
  1086. } else if (item.annexType == 7) {
  1087. this.showmediate = true
  1088. } else if (item.annexType == 3) {
  1089. this.mediationApplication = true
  1090. } else if(item.annexType == 13){
  1091. this.labelShowMediate = true
  1092. }
  1093. });
  1094. });
  1095. },
  1096. // 新增案件
  1097. insertFn(data) {
  1098. caseApplicationInsert(data).then((res) => {
  1099. this.$modal.msgSuccess("新增成功!");
  1100. this.$emit("cancelCaseAdd");
  1101. this.$emit("getList", this.queryParams);
  1102. });
  1103. },
  1104. // 修改确定
  1105. modifyData(data) {
  1106. updateComfire(data).then((res) => {
  1107. this.$modal.msgSuccess("修改成功!");
  1108. this.$emit("cancelCaseAdd");
  1109. this.$emit("getList", this.queryParams);
  1110. });
  1111. },
  1112. /** 获取裁决书模板 */
  1113. getTemplateFn(data) {
  1114. getTemplate(data).then((res) => {
  1115. this.templateList = res.rows;
  1116. });
  1117. },
  1118. /** 查看证据 */
  1119. fileDetil(val, flag) {
  1120. if (flag == 1) {
  1121. window.open(this.fileURL + val);
  1122. } else if (flag == 2) {
  1123. this.$router.push({ path: '/onlyoffice', query: { id: val, flag: 0 } })
  1124. }
  1125. },
  1126. /** 查看证据 */
  1127. toPreview(val) {
  1128. window.open(this.fileURL + val);
  1129. },
  1130. /** 文件上传地址 */
  1131. UploadUrl() {
  1132. return window.location.origin + "/API/common/upload";
  1133. },
  1134. zipUrl() {
  1135. return window.location.origin + "/API/caseApplication/userIdentify";
  1136. },
  1137. /**文件上传成功*/
  1138. handlSuccess(res, file) {
  1139. this.formData.caseAttachList.push({
  1140. annexId: res.annexId,
  1141. });
  1142. },
  1143. /**文件超出个数限制时的钩子*/
  1144. handleExceed(files, fileList) {
  1145. this.$message.warning(
  1146. `当前限制选择 3 个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length
  1147. } 个文件`
  1148. );
  1149. },
  1150. // 删除文件之前的钩子,参数为上传的文件和文件列表,若返回 false 或者返回 Promise 且被 reject,则停止删除。
  1151. beforeRemove(file, fileList) {
  1152. return this.$confirm(`确定移除 ${file.name}?`);
  1153. },
  1154. handleRemove(file, fileList) {
  1155. let newcaseAttachList = this.formData.caseAttachList.filter(item =>
  1156. item.annexId !== file.response.annexId
  1157. )
  1158. this.formData.caseAttachList = newcaseAttachList
  1159. },
  1160. handleExceedZip(files, fileList) {
  1161. this.$message.warning(`当前限制选择 1 个文件`);
  1162. },
  1163. beforeRemoveZip(file, fileList) {
  1164. return this.$confirm(`确定移除 ${file.name}?`);
  1165. },
  1166. successZip(res) {
  1167. this.formZipData = res.data;
  1168. if (this.formData.affiliate.applicant[0].applicant.organizeFlag == 0) {
  1169. this.$set(this.formData, 'arbitratClaims', this.formZipData.arbitratClaims);
  1170. this.$set(this.formData, 'facts', this.formZipData.facts);
  1171. this.$set(this.formData.affiliate.applicant[0].applicant, 'home', this.formZipData.affiliate.applicant[0].applicant.home);
  1172. this.$set(this.formData.affiliate.applicant[0].applicant, 'address', this.formZipData.affiliate.applicant[0].applicant.address);
  1173. this.$set(this.formData.affiliate.applicant[0].applicantAgent, 'phone', this.formZipData.affiliate.applicant[0].applicantAgent.phone);
  1174. this.$set(this.formData.affiliate.applicant[0].applicantAgent, 'name', this.formZipData.affiliate.applicant[0].applicantAgent.name);
  1175. this.$set(this.formData.affiliate.applicant[0].applicantAgent, 'email', this.formZipData.affiliate.applicant[0].applicantAgent.email);
  1176. this.$set(this.formData.affiliate.applicant[0].applicant, "sex", this.getUserInfoList.sex);
  1177. this.$set(this.formData.affiliate.applicant[0].applicant, "birth", this.getUserInfoList.birth);
  1178. } else if (this.formData.affiliate.applicant[0].applicant.organizeFlag == 1) {
  1179. this.$set(this.formData, 'arbitratClaims', this.formZipData.arbitratClaims);
  1180. this.$set(this.formData, 'facts', this.formZipData.facts);
  1181. this.$set(this.formData.affiliate.applicant[0].applicant, 'name', this.formZipData
  1182. .affiliate.applicant[0]
  1183. .applicant.name);
  1184. this.$set(this.formData.affiliate.applicant[0].applicant, 'code', this.formZipData
  1185. .affiliate.applicant[0].applicant.code);
  1186. this.$set(this.formData.affiliate.applicant[0].applicant, 'home', this.formZipData
  1187. .affiliate.applicant[0]
  1188. .applicant.home);
  1189. this.$set(this.formData.affiliate.applicant[0].applicant, 'address', this
  1190. .formZipData.affiliate.applicant[0]
  1191. .applicant.address);
  1192. this.$set(this.formData.affiliate.applicant[0].applicant, 'compLegalPerson', this
  1193. .formZipData.affiliate.applicant[0]
  1194. .applicant.compLegalPerson);
  1195. this.$set(this.formData.affiliate.applicant[0].applicant, 'email', this.formZipData
  1196. .affiliate.applicant[0]
  1197. .applicant.email);
  1198. this.$set(this.formData.affiliate.applicant[0].applicant, 'phone', this.formZipData
  1199. .affiliate.applicant[0]
  1200. .applicant.phone);
  1201. }
  1202. this.$set(this.formData.affiliate.res[0].res, 'name', this.formZipData.affiliate.res[0].res.name);
  1203. this.$set(this.formData.affiliate.res[0].res, 'phone', this.formZipData.affiliate.res[0].res.phone);
  1204. this.$set(this.formData.affiliate.res[0].res, 'idCard', this.formZipData.affiliate.res[0].res.idCard);
  1205. this.$set(this.formData.affiliate.res[0].res, 'sex', this.formZipData.affiliate.res[0].res.sex);
  1206. this.$set(this.formData.affiliate.res[0].res, 'birth', this.formZipData.affiliate.res[0].res.birth);
  1207. this.$set(this.formData.affiliate.res[0].res, 'home', this.formZipData.affiliate.res[0].res.home);
  1208. this.$set(this.formData.affiliate.res[0].res, 'email', this.formZipData.affiliate.res[0].res.email);
  1209. this.$set(this.formData.affiliate.applicant[0].applicant, 'compLegalPerson', this.formZipData.affiliate.applicant[0].applicant.compLegalPerson);
  1210. // this.$set(this.formData.affiliate,'respondentSex',Number(res.data.affiliate.respondentSex));
  1211. },
  1212. handlePreview(file) {
  1213. window.open(
  1214. window.location.origin + "/API" + file.certificatePath,
  1215. "_blank"
  1216. );
  1217. },
  1218. // 提交form表单
  1219. submitForm() {
  1220. this.$refs["ruleForm"].validate((valid) => {
  1221. if (valid) {
  1222. if (this.addModifyData == 3) {
  1223. this.formData.affiliate.applicant.forEach((item) => {
  1224. console.log(item)
  1225. // this.$set(item,"organizeFlag",0);
  1226. // this.$set(item,"roleType",2)
  1227. item.applicantAgent.organizeFlag = 0;
  1228. item.applicantAgent['roleType'] = 2;
  1229. })
  1230. this.formData.affiliate.res.forEach((item) => {
  1231. // this.$set(item,"organizeFlag",0);
  1232. // this.$set(item,"roleType",4)
  1233. item.resAgent.organizeFlag = 0;
  1234. item.applicantAgent['roleType'] = 4;
  1235. })
  1236. this.modifyData(this.formData);
  1237. } else if (this.addModifyData == 1) {
  1238. this.insertFn(this.formData);
  1239. }
  1240. }
  1241. });
  1242. },
  1243. clearValidate(val,index) {
  1244. if(index==0){
  1245. if (val == 0) {
  1246. this.$set(this.formData.affiliate.applicant[0].applicant, "name", this.getUserInfoList.nickName);
  1247. this.$set(this.formData.affiliate.applicant[0].applicant, "idCard", this.getUserInfoList.idCard);
  1248. this.$set(this.formData.affiliate.applicant[0].applicant, "email", this.getUserInfoList.email);
  1249. this.$set(this.formData.affiliate.applicant[0].applicant, "phone", this.getUserInfoList.phonenumber);
  1250. this.$set(this.formData.affiliate.applicant[0].applicant, "idType", this.getUserInfoList.idType);
  1251. this.$set(this.formData.affiliate.applicant[0].applicant, "nationality", this.getUserInfoList.nationality);
  1252. if (this.formZipData.affiliate) {
  1253. // this.$set(this.formData.affiliate.applicant[0].applicant, 'organizeFlag', 0);
  1254. this.$set(this.formData, 'arbitratClaims', this.formZipData.arbitratClaims);
  1255. this.$set(this.formData, 'facts', this.formZipData.facts);
  1256. this.$set(this.formData.affiliate.applicant[0].applicant, "name", this.getUserInfoList.nickName);
  1257. this.$set(this.formData.affiliate.applicant[0].applicant, "idCard", this.getUserInfoList.idCard);
  1258. this.$set(this.formData.affiliate.applicant[0].applicant, "email", this.getUserInfoList.email);
  1259. this.$set(this.formData.affiliate.applicant[0].applicant, "phone", this.getUserInfoList.phonenumber);
  1260. this.$set(this.formData.affiliate.applicant[0].applicant, "idType", this.getUserInfoList.idType);
  1261. this.$set(this.formData.affiliate.applicant[0].applicant, "nationality", this.getUserInfoList.nationality);
  1262. } else {
  1263. this.formData.affiliate.applicant[0].applicantAgent.name = null;
  1264. this.formData.affiliate.applicant[0].applicantAgent.email = null;
  1265. this.formData.affiliate.applicant[0].applicantAgent.phone = null;
  1266. }
  1267. } else if (val == 1) {
  1268. this.$set(this.formData.affiliate.applicant[0].applicantAgent, "name", this.getUserInfoList.nickName);
  1269. this.$set(this.formData.affiliate.applicant[0].applicantAgent, "email", this.getUserInfoList.email);
  1270. this.$set(this.formData.affiliate.applicant[0].applicantAgent, "phone", this.getUserInfoList.phonenumber);
  1271. if (this.formZipData.affiliate) {
  1272. // this.$set(this.formData.affiliate.applicant[0].applicant, 'organizeFlag', 1);
  1273. this.$set(this.formData, 'arbitratClaims', this.formZipData.arbitratClaims);
  1274. this.$set(this.formData, 'facts', this.formZipData.facts);
  1275. this.$set(this.formData.affiliate.applicant[0].applicant, 'name', this.formZipData
  1276. .affiliate.applicant[0]
  1277. .applicant.name);
  1278. this.$set(this.formData.affiliate.applicant[0].applicant, 'code', this.formZipData
  1279. .affiliate.applicant[0].applicant.code);
  1280. this.$set(this.formData.affiliate.applicant[0].applicant, 'home', this.formZipData
  1281. .affiliate.applicant[0]
  1282. .applicant.home);
  1283. this.$set(this.formData.affiliate.applicant[0].applicant, 'address', this
  1284. .formZipData.affiliate.applicant[0]
  1285. .applicant.address);
  1286. this.$set(this.formData.affiliate.applicant[0].applicant, 'compLegalPerson', this
  1287. .formZipData.affiliate.applicant[0]
  1288. .applicant.compLegalPerson);
  1289. this.$set(this.formData.affiliate.applicant[0].applicant, 'email', this.formZipData
  1290. .affiliate.applicant[0]
  1291. .applicant.email);
  1292. this.$set(this.formData.affiliate.applicant[0].applicant, 'phone', this.formZipData
  1293. .affiliate.applicant[0]
  1294. .applicant.phone);
  1295. } else {
  1296. this.$set(this.formData.affiliate.applicant[0].applicant, 'name', null);
  1297. this.$set(this.formData.affiliate.applicant[0].applicant, 'idCard', null);
  1298. this.$set(this.formData.affiliate.applicant[0].applicant, 'email', null);
  1299. this.$set(this.formData.affiliate.applicant[0].applicant, 'phone', null);
  1300. }
  1301. }
  1302. }
  1303. this.$refs["ruleForm"].clearValidate()
  1304. },
  1305. clearValidateRes(val,index) {
  1306. if(index==0){
  1307. if (val == 0) {
  1308. if (this.formZipData.affiliate) {
  1309. // this.$set(this.formData.affiliate.res[0].res, 'organizeFlag', 0);
  1310. this.$set(this.formData.affiliate.res[0].res, 'name', this.formZipData.affiliate.res[0].res.name);
  1311. this.$set(this.formData.affiliate.res[0].res, 'phone', this.formZipData.affiliate.res[0].res.phone);
  1312. this.$set(this.formData.affiliate.res[0].res, 'idCard', this.formZipData.affiliate.res[0].res.idCard);
  1313. this.$set(this.formData.affiliate.res[0].res, 'sex', Number(this.formZipData.affiliate.res[0].res.sex));
  1314. this.$set(this.formData.affiliate.res[0].res, 'birth', this.formZipData.affiliate.res[0].res.birth);
  1315. this.$set(this.formData.affiliate.res[0].res, 'home', this.formZipData.affiliate.res[0].res.home);
  1316. this.$set(this.formData.affiliate.res[0].res, 'email', this.formZipData.affiliate.res[0].res.email);
  1317. }
  1318. } else if (val == 1) {
  1319. if (this.formZipData.affiliate) {
  1320. // this.$set(this.formData.affiliate.res[0].res, 'organizeFlag', 1);
  1321. this.$set(this.formData.affiliate.res[0].res, 'name', this.formZipData.affiliate.res[0].res.name);
  1322. this.$set(this.formData.affiliate.res[0].res, 'phone', this.formZipData.affiliate.res[0].res.phone);
  1323. this.$set(this.formData.affiliate.res[0].res, 'idCard', this.formZipData.affiliate.res[0].res.idCard);
  1324. this.$set(this.formData.affiliate.res[0].res, 'sex', Number(this.formZipData.affiliate.res[0].res.sex));
  1325. this.$set(this.formData.affiliate.res[0].res, 'birth', this.formZipData.affiliate.res[0].res.birth);
  1326. this.$set(this.formData.affiliate.res[0].res, 'home', this.formZipData.affiliate.res[0].res.home);
  1327. this.$set(this.formData.affiliate.res[0].res, 'email', this.formZipData.affiliate.res[0].res.email);
  1328. }
  1329. this.$set(this.formData.affiliate.res[0].res, 'name', null)
  1330. this.$set(this.formData.affiliate.res[0].res, 'home', null)
  1331. }
  1332. }
  1333. this.$refs["ruleForm"].clearValidate()
  1334. },
  1335. cancel() {
  1336. this.$emit("cancelCaseAdd");
  1337. },
  1338. institutionalNatural() {
  1339. // console.log(this.formData.organizeFlag);
  1340. },
  1341. handleBlur(index) {
  1342. // console.log(this.formData.affiliate.respondentIdentityNum);
  1343. let idCards = {
  1344. idCard: this.formData.affiliate.res[index].res.idCard,
  1345. };
  1346. getInfoByIdCard(idCards).then((res) => {
  1347. this.formData.affiliate.res[index].res.sex = res.respondentSex;
  1348. // console.log(res.respondentBirth);
  1349. this.formData.affiliate.res[index].res.birth = res.respondentBirth;
  1350. });
  1351. },
  1352. // 申请人身份证
  1353. handleBlurApplicant(index) {
  1354. console.log(index)
  1355. let idCards = {
  1356. idCard: this.formData.affiliate.applicant[index].applicant.idCard,
  1357. };
  1358. getInfoByIdCard(idCards).then((res) => {
  1359. this.formData.affiliate.applicant[index].applicant.sex = res.respondentSex;
  1360. // console.log(res.respondentBirth);
  1361. this.formData.affiliate.applicant[index].applicant.birth = res.respondentBirth;
  1362. });
  1363. },
  1364. /**删除新增信息某一项 */
  1365. deleteDetali(item) {
  1366. var index = this.formData.affiliate.indexOf(item)
  1367. if (index !== -1) {
  1368. this.formData.affiliate.splice(index, 1)
  1369. }
  1370. },
  1371. /**新增申请人信息 */
  1372. addApplicant() {
  1373. this.formData.affiliate.applicant.push({
  1374. applicant: {
  1375. roleType: 1,
  1376. name: "",
  1377. idCard: "",
  1378. code: "",
  1379. phone: "",
  1380. compLegalPerson: "",
  1381. email: "",
  1382. home: "",
  1383. address: "",
  1384. idType: 0,
  1385. nationality: 1,
  1386. birth: "",
  1387. sex: "1",
  1388. operatorFlag: 1,
  1389. organizeFlag: 0,
  1390. },
  1391. applicantAgent: {
  1392. roleType: 2,
  1393. name: "",
  1394. idCard: "",
  1395. code: "",
  1396. phone: "",
  1397. compLegalPerson: "",
  1398. email: "",
  1399. home: "",
  1400. address: "",
  1401. idType: 0,
  1402. nationality: 1,
  1403. birth: "",
  1404. sex: "1",
  1405. operatorFlag: 1,
  1406. organizeFlag: 0,
  1407. },
  1408. },);
  1409. },
  1410. /** 新增被申请人信息*/
  1411. addRes() {
  1412. this.formData.affiliate.res.push({
  1413. res: {
  1414. roleType: 3,
  1415. name: "",
  1416. idCard: "",
  1417. code: "",
  1418. phone: "",
  1419. compLegalPerson: "",
  1420. email: "",
  1421. home: "",
  1422. address: "",
  1423. idType: 0,
  1424. nationality: 1,
  1425. birth: "",
  1426. sex: "1",
  1427. operatorFlag: 1,
  1428. organizeFlag: 0,
  1429. },
  1430. resAgent: {
  1431. roleType: 4,
  1432. name: "",
  1433. idCard: "",
  1434. code: "",
  1435. phone: "",
  1436. compLegalPerson: "",
  1437. email: "",
  1438. home: "",
  1439. address: "",
  1440. idType: 0,
  1441. nationality: 1,
  1442. birth: "",
  1443. sex: "1",
  1444. operatorFlag: 1,
  1445. organizeFlag: 0,
  1446. },
  1447. },);
  1448. },
  1449. /**申请人删除信息 */
  1450. deleteApplicant(item) {
  1451. var index = this.formData.affiliate.applicant.indexOf(item)
  1452. if (index !== -1) {
  1453. this.formData.affiliate.applicant.splice(index, 1)
  1454. }
  1455. },
  1456. /**被申请人删除信息 */
  1457. deleteRes(item) {
  1458. var index = this.formData.affiliate.res.indexOf(item)
  1459. if (index !== -1) {
  1460. this.formData.affiliate.res.splice(index, 1)
  1461. }
  1462. },
  1463. },
  1464. };
  1465. </script>
  1466. <style lang="scss" scoped>
  1467. .infoIcon {
  1468. width: 4px;
  1469. // height: 17px;
  1470. background-color: #0072ff;
  1471. margin-right: 5px;
  1472. }
  1473. .caseInfo {
  1474. font-size: 17px;
  1475. font-weight: 600;
  1476. }
  1477. ::v-deep .el-dialog__body {
  1478. height: 700px !important;
  1479. overflow: auto !important;
  1480. }
  1481. ::v-deep .el-input--medium .el-input__inner {
  1482. height: 40px;
  1483. line-height: 40px;
  1484. }
  1485. </style>