调解系统PC端服务

addCase.vue 62KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518
  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. if (this.formZipData.affiliate) {
  1264. // this.$set(this.formData.affiliate.applicant[0].applicant, 'organizeFlag', 0);
  1265. this.$set(this.formData, 'arbitratClaims', this.formZipData.arbitratClaims);
  1266. this.$set(this.formData, 'facts', this.formZipData.facts);
  1267. this.$set(this.formData.affiliate.applicant[0].applicant, "name", this.getUserInfoList.nickName);
  1268. this.$set(this.formData.affiliate.applicant[0].applicant, "idCard", this.getUserInfoList.idCard);
  1269. this.$set(this.formData.affiliate.applicant[0].applicant, "email", this.getUserInfoList.email);
  1270. this.$set(this.formData.affiliate.applicant[0].applicant, "phone", this.getUserInfoList.phonenumber);
  1271. this.$set(this.formData.affiliate.applicant[0].applicant, "idType", this.getUserInfoList.idType);
  1272. this.$set(this.formData.affiliate.applicant[0].applicant, "nationality", this.getUserInfoList.nationality);
  1273. } else {
  1274. this.formData.affiliate.applicant[0].applicantAgent.name = null;
  1275. this.formData.affiliate.applicant[0].applicantAgent.email = null;
  1276. this.formData.affiliate.applicant[0].applicantAgent.phone = null;
  1277. }
  1278. } else if (val == 1) {
  1279. this.$set(this.formData.affiliate.applicant[0].applicantAgent, "name", this.getUserInfoList.nickName);
  1280. this.$set(this.formData.affiliate.applicant[0].applicantAgent, "email", this.getUserInfoList.email);
  1281. this.$set(this.formData.affiliate.applicant[0].applicantAgent, "phone", this.getUserInfoList.phonenumber);
  1282. if (this.formZipData.affiliate) {
  1283. // this.$set(this.formData.affiliate.applicant[0].applicant, 'organizeFlag', 1);
  1284. this.$set(this.formData, 'arbitratClaims', this.formZipData.arbitratClaims);
  1285. this.$set(this.formData, 'facts', this.formZipData.facts);
  1286. this.$set(this.formData.affiliate.applicant[0].applicant, 'name', this.formZipData
  1287. .affiliate.applicant[0]
  1288. .applicant.name);
  1289. this.$set(this.formData.affiliate.applicant[0].applicant, 'code', this.formZipData
  1290. .affiliate.applicant[0].applicant.code);
  1291. this.$set(this.formData.affiliate.applicant[0].applicant, 'home', this.formZipData
  1292. .affiliate.applicant[0]
  1293. .applicant.home);
  1294. this.$set(this.formData.affiliate.applicant[0].applicant, 'address', this
  1295. .formZipData.affiliate.applicant[0]
  1296. .applicant.address);
  1297. this.$set(this.formData.affiliate.applicant[0].applicant, 'compLegalPerson', this
  1298. .formZipData.affiliate.applicant[0]
  1299. .applicant.compLegalPerson);
  1300. this.$set(this.formData.affiliate.applicant[0].applicant, 'email', this.formZipData
  1301. .affiliate.applicant[0]
  1302. .applicant.email);
  1303. this.$set(this.formData.affiliate.applicant[0].applicant, 'phone', this.formZipData
  1304. .affiliate.applicant[0]
  1305. .applicant.phone);
  1306. } else {
  1307. this.$set(this.formData.affiliate.applicant[0].applicant, 'name', null);
  1308. this.$set(this.formData.affiliate.applicant[0].applicant, 'idCard', null);
  1309. this.$set(this.formData.affiliate.applicant[0].applicant, 'email', null);
  1310. this.$set(this.formData.affiliate.applicant[0].applicant, 'phone', null);
  1311. }
  1312. }
  1313. }
  1314. this.$refs["ruleForm"].clearValidate()
  1315. },
  1316. clearValidateRes(val, index) {
  1317. if (index == 0) {
  1318. if (val == 0) {
  1319. console.log(this.formData.affiliate.res[0].res.sex)
  1320. this.$set(this.formData.affiliate.res[0].res, 'sex', this.formZipData.affiliate.res[0].res.sex);
  1321. if (this.formZipData.affiliate) {
  1322. // this.$set(this.formData.affiliate.res[0].res, 'organizeFlag', 0);
  1323. this.$set(this.formData.affiliate.res[0].res, 'name', this.formZipData.affiliate.res[0].res.name);
  1324. this.$set(this.formData.affiliate.res[0].res, 'phone', this.formZipData.affiliate.res[0].res.phone);
  1325. this.$set(this.formData.affiliate.res[0].res, 'idCard', this.formZipData.affiliate.res[0].res.idCard);
  1326. this.$set(this.formData.affiliate.res[0].res, 'sex', this.formZipData.affiliate.res[0].res.sex);
  1327. this.$set(this.formData.affiliate.res[0].res, 'birth', this.formZipData.affiliate.res[0].res.birth);
  1328. this.$set(this.formData.affiliate.res[0].res, 'home', this.formZipData.affiliate.res[0].res.home);
  1329. this.$set(this.formData.affiliate.res[0].res, 'email', this.formZipData.affiliate.res[0].res.email);
  1330. }
  1331. } else if (val == 1) {
  1332. console.log(this.formData.affiliate.res[0].res.sex)
  1333. if (this.formZipData.affiliate) {
  1334. // this.$set(this.formData.affiliate.res[0].res, 'organizeFlag', 1);
  1335. this.$set(this.formData.affiliate.res[0].res, 'name', this.formZipData.affiliate.res[0].res.name);
  1336. this.$set(this.formData.affiliate.res[0].res, 'phone', this.formZipData.affiliate.res[0].res.phone);
  1337. this.$set(this.formData.affiliate.res[0].res, 'idCard', this.formZipData.affiliate.res[0].res.idCard);
  1338. this.$set(this.formData.affiliate.res[0].res, 'sex', this.formZipData.affiliate.res[0].res.sex);
  1339. this.$set(this.formData.affiliate.res[0].res, 'birth', this.formZipData.affiliate.res[0].res.birth);
  1340. this.$set(this.formData.affiliate.res[0].res, 'home', this.formZipData.affiliate.res[0].res.home);
  1341. this.$set(this.formData.affiliate.res[0].res, 'email', this.formZipData.affiliate.res[0].res.email);
  1342. }
  1343. this.$set(this.formData.affiliate.res[0].res, 'name', null)
  1344. this.$set(this.formData.affiliate.res[0].res, 'home', null)
  1345. }
  1346. }
  1347. this.$refs["ruleForm"].clearValidate()
  1348. },
  1349. cancel() {
  1350. this.$emit("cancelCaseAdd");
  1351. },
  1352. institutionalNatural() {
  1353. // console.log(this.formData.organizeFlag);
  1354. },
  1355. handleBlur(index) {
  1356. // console.log(this.formData.affiliate.respondentIdentityNum);
  1357. let idCards = {
  1358. idCard: this.formData.affiliate.res[index].res.idCard,
  1359. };
  1360. getInfoByIdCard(idCards).then((res) => {
  1361. this.formData.affiliate.res[index].res.sex = res.respondentSex;
  1362. // console.log(res.respondentBirth);
  1363. this.formData.affiliate.res[index].res.birth = res.respondentBirth;
  1364. });
  1365. },
  1366. // 申请人身份证
  1367. handleBlurApplicant(index) {
  1368. console.log(index)
  1369. let idCards = {
  1370. idCard: this.formData.affiliate.applicant[index].applicant.idCard,
  1371. };
  1372. getInfoByIdCard(idCards).then((res) => {
  1373. this.formData.affiliate.applicant[index].applicant.sex = res.respondentSex;
  1374. // console.log(res.respondentBirth);
  1375. this.formData.affiliate.applicant[index].applicant.birth = res.respondentBirth;
  1376. });
  1377. },
  1378. /**删除新增信息某一项 */
  1379. deleteDetali(item) {
  1380. var index = this.formData.affiliate.indexOf(item)
  1381. if (index !== -1) {
  1382. this.formData.affiliate.splice(index, 1)
  1383. }
  1384. },
  1385. /**新增申请人信息 */
  1386. addApplicant() {
  1387. this.formData.affiliate.applicant.push({
  1388. applicant: {
  1389. roleType: 1,
  1390. name: "",
  1391. idCard: "",
  1392. code: "",
  1393. phone: "",
  1394. compLegalPerson: "",
  1395. email: "",
  1396. home: "",
  1397. address: "",
  1398. idType: 0,
  1399. nationality: 1,
  1400. birth: "",
  1401. sex: "1",
  1402. operatorFlag: 1,
  1403. organizeFlag: 0,
  1404. },
  1405. applicantAgent: {
  1406. roleType: 2,
  1407. name: "",
  1408. idCard: "",
  1409. code: "",
  1410. phone: "",
  1411. compLegalPerson: "",
  1412. email: "",
  1413. home: "",
  1414. address: "",
  1415. idType: 0,
  1416. nationality: 1,
  1417. birth: "",
  1418. sex: "1",
  1419. operatorFlag: 1,
  1420. organizeFlag: 0,
  1421. },
  1422. },);
  1423. },
  1424. /** 新增被申请人信息*/
  1425. addRes() {
  1426. this.formData.affiliate.res.push({
  1427. res: {
  1428. roleType: 3,
  1429. name: "",
  1430. idCard: "",
  1431. code: "",
  1432. phone: "",
  1433. compLegalPerson: "",
  1434. email: "",
  1435. home: "",
  1436. address: "",
  1437. idType: 0,
  1438. nationality: 1,
  1439. birth: "",
  1440. sex: "1",
  1441. operatorFlag: 1,
  1442. organizeFlag: 0,
  1443. },
  1444. resAgent: {
  1445. roleType: 4,
  1446. name: "",
  1447. idCard: "",
  1448. code: "",
  1449. phone: "",
  1450. compLegalPerson: "",
  1451. email: "",
  1452. home: "",
  1453. address: "",
  1454. idType: 0,
  1455. nationality: 1,
  1456. birth: "",
  1457. sex: "1",
  1458. operatorFlag: 1,
  1459. organizeFlag: 0,
  1460. },
  1461. },);
  1462. },
  1463. /**申请人删除信息 */
  1464. deleteApplicant(item) {
  1465. var index = this.formData.affiliate.applicant.indexOf(item)
  1466. if (index !== -1) {
  1467. this.formData.affiliate.applicant.splice(index, 1)
  1468. }
  1469. },
  1470. /**被申请人删除信息 */
  1471. deleteRes(item) {
  1472. var index = this.formData.affiliate.res.indexOf(item)
  1473. if (index !== -1) {
  1474. this.formData.affiliate.res.splice(index, 1)
  1475. }
  1476. },
  1477. },
  1478. };
  1479. </script>
  1480. <style lang="scss" scoped>
  1481. .infoIcon {
  1482. width: 4px;
  1483. // height: 17px;
  1484. background-color: #0072ff;
  1485. margin-right: 5px;
  1486. }
  1487. .caseInfo {
  1488. font-size: 17px;
  1489. font-weight: 600;
  1490. }
  1491. ::v-deep .el-dialog__body {
  1492. height: 700px !important;
  1493. overflow: auto !important;
  1494. }
  1495. ::v-deep .el-input--medium .el-input__inner {
  1496. height: 40px;
  1497. line-height: 40px;
  1498. }
  1499. </style>