调解系统PC端服务

addCase.vue 62KB

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