index.vue 33 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959
  1. <template>
  2. <template-page
  3. ref="pageRef"
  4. :get-list="getList"
  5. :table-attributes="tableAttributes"
  6. :table-events="tableEvents"
  7. :options-evens-group="optionsEvensGroup"
  8. :moreParameters="moreParameters"
  9. :column-parsing="columnParsing"
  10. :operation="operation()"
  11. >
  12. <div class="cartographer_big">
  13. <el-dialog title="修改师傅数据" width="100%" :modal="false" :visible.sync="formDialog" :before-close="formCancel">
  14. <zj-page-container>
  15. <zj-page-fill class="neibuview">
  16. <zj-form-container
  17. v-if="formDialog"
  18. ref="formRef"
  19. :form-data="formData"
  20. :form-attributes="{ size: 'mini' }"
  21. >
  22. <zj-form-module
  23. v-if="formDialog"
  24. title="详情"
  25. label-width="100px"
  26. :showPackUp="false"
  27. :form-data="formData"
  28. :form-items="formItems"
  29. >
  30. </zj-form-module>
  31. <zj-form-module
  32. v-if="formDialog"
  33. title="证件信息"
  34. label-width="100px"
  35. :showPackUp="false"
  36. :form-data="formData"
  37. :form-items="formItems2"
  38. >
  39. </zj-form-module>
  40. <zj-form-module
  41. v-if="formDialog"
  42. title="保险信息"
  43. label-width="100px"
  44. :showPackUp="false"
  45. :form-data="formData"
  46. :form-items="formItems3"
  47. >
  48. </zj-form-module>
  49. </zj-form-container>
  50. </zj-page-fill>
  51. <div style="box-sizing: border-box; padding: 16px; text-align: right !important">
  52. <el-button @click="formCancel" size="mini">取消</el-button>
  53. <el-button @click="formConfirm" type="primary" size="mini">确定</el-button>
  54. </div>
  55. </zj-page-container>
  56. </el-dialog>
  57. </div>
  58. </template-page>
  59. </template>
  60. <script>
  61. import TemplatePage from '@/components/template/template-page-1.vue'
  62. import import_mixin from '@/components/template/import_mixin.js'
  63. import ImageUpload from '@/components/file-upload'
  64. import { downloadFiles } from '@/utils/util'
  65. import { required, mobileRequired, mobile, httpUrl, email } from '@/components/template/rules_verify.js'
  66. import {
  67. listPageV2,
  68. pageExport,
  69. del,
  70. listImport,
  71. memberUserWatitUpdate,
  72. memberUserWatitDetail2,
  73. memberUserWatitUpdate2
  74. } from '@/api/workerProfileInit'
  75. import { commonTemplateDownload } from '@/api/common.js'
  76. import operation_mixin from '@/components/template/operation_mixin.js'
  77. import editTable from '@/components/template/editTable.js'
  78. export default {
  79. components: { TemplatePage, ImageUpload },
  80. mixins: [import_mixin, operation_mixin, editTable],
  81. data() {
  82. return {
  83. // 表格属性
  84. tableAttributes: {
  85. // 启用勾选列
  86. selectColumn: true
  87. },
  88. // 表格事件
  89. tableEvents: {
  90. 'selection-change': this.selectionChange
  91. },
  92. // 勾选选中行
  93. recordSelected: [],
  94. /** 表单变量 */
  95. formDialog: false,
  96. formData: {}
  97. }
  98. },
  99. computed: {
  100. // 事件组合
  101. optionsEvensGroup() {
  102. return [
  103. [
  104. [
  105. this.optionsEvensAuth('download', {
  106. click: () => {
  107. this.handleDownload()
  108. }
  109. })
  110. ],
  111. [
  112. this.optionsEvensAuth('import', {
  113. render: () => {
  114. return this.importButton(listImport, '导入师傅资料')
  115. }
  116. })
  117. ]
  118. ]
  119. ]
  120. },
  121. // 更多参数
  122. moreParameters() {
  123. return []
  124. },
  125. formItems() {
  126. return [
  127. {
  128. name: 'slot-component',
  129. md: 12,
  130. isShow: true,
  131. attributes: { placeholder: '请输入', disabled: true },
  132. formItemAttributes: {
  133. label: '网点名称',
  134. prop: 'websitName',
  135. rules: [...required]
  136. },
  137. render: (h, { props, onInput }) => {
  138. var { formData } = props
  139. return (
  140. <el-input
  141. value={`(${formData.websitId || ''})${formData.websitName || ''}`}
  142. disabled={true}
  143. size="mini"
  144. placeholder="请输入"
  145. ></el-input>
  146. )
  147. }
  148. },
  149. {
  150. md: 6,
  151. isShow: true,
  152. name: 'el-input',
  153. attributes: { placeholder: '请输入' },
  154. formItemAttributes: {
  155. label: '师傅名称',
  156. prop: 'name',
  157. rules: [...required]
  158. }
  159. },
  160. {
  161. md: 6,
  162. isShow: true,
  163. name: 'el-input',
  164. attributes: { placeholder: '请输入' },
  165. formItemAttributes: {
  166. label: '联系电话',
  167. prop: 'mobile',
  168. rules: [...required]
  169. }
  170. },
  171. {
  172. md: 6,
  173. isShow: true,
  174. name: 'el-input',
  175. attributes: { placeholder: '请输入' },
  176. formItemAttributes: {
  177. label: '师傅编号',
  178. prop: 'workerNumber',
  179. rules: []
  180. }
  181. },
  182. {
  183. md: 6,
  184. isShow: true,
  185. name: 'el-input',
  186. attributes: { placeholder: '请输入' },
  187. formItemAttributes: {
  188. label: '银行卡',
  189. prop: 'bankAccount',
  190. rules: []
  191. }
  192. }
  193. ]
  194. },
  195. formItems2() {
  196. return [
  197. {
  198. name: 'slot-component',
  199. md: 24,
  200. formItemAttributes: {
  201. 'label-width': '0px',
  202. label: '',
  203. prop: 'items',
  204. rules: []
  205. },
  206. render: (h, { props }) => {
  207. return (
  208. <zj-table
  209. columns={[
  210. {
  211. columnAttributes: {
  212. label: '证件名称',
  213. prop: 'type'
  214. },
  215. render: (h, { row, column, index }) => {
  216. return (
  217. <div class="redbordererr">
  218. <el-form-item
  219. label=""
  220. label-width="0px"
  221. prop={`userWaitWorkerImgsCp.${index}.${column.columnAttributes.prop}`}
  222. >
  223. <el-select
  224. value={row[column.columnAttributes.prop]}
  225. onInput={val => {
  226. row[column.columnAttributes.prop] = val
  227. }}
  228. placeholder="请选择"
  229. disabled={true}
  230. >
  231. {[
  232. { value: 'HIGHT', label: '高空证' },
  233. { value: 'ID', label: '身份证' }
  234. ].map((item, index_) => (
  235. <el-option key={index_} label={item.label} value={item.value}></el-option>
  236. ))}
  237. </el-select>
  238. </el-form-item>
  239. </div>
  240. )
  241. }
  242. },
  243. {
  244. columnAttributes: {
  245. label: '证件号码',
  246. prop: 'number'
  247. },
  248. render: (h, { row, column, index }) => {
  249. return (
  250. <div class="redbordererr">
  251. <el-input
  252. value={row[column.columnAttributes.prop]}
  253. onInput={val => {
  254. row[column.columnAttributes.prop] = val
  255. }}
  256. placeholder="请输入内容"
  257. ></el-input>
  258. </div>
  259. )
  260. }
  261. },
  262. {
  263. columnAttributes: {
  264. label: '有效期开始日期',
  265. prop: 'startTime'
  266. },
  267. render: (h, { row, column, index }) => {
  268. return (
  269. <div class="redbordererr">
  270. <el-form-item
  271. label=""
  272. label-width="0px"
  273. prop={`userWaitWorkerImgsCp.${index}.${column.columnAttributes.prop}`}
  274. >
  275. <el-date-picker
  276. value={row[column.columnAttributes.prop]}
  277. value-format={'yyyy-MM-dd HH:mm:ss'}
  278. onInput={val => {
  279. row[column.columnAttributes.prop] = val
  280. }}
  281. type="date"
  282. placeholder="选择日期"
  283. ></el-date-picker>
  284. </el-form-item>
  285. </div>
  286. )
  287. }
  288. },
  289. {
  290. columnAttributes: {
  291. label: '有效期结束日期',
  292. prop: 'endTime'
  293. },
  294. render: (h, { row, column, index }) => {
  295. return (
  296. <div class="redbordererr">
  297. <el-form-item
  298. label=""
  299. label-width="0px"
  300. prop={`userWaitWorkerImgsCp.${index}.${column.columnAttributes.prop}`}
  301. >
  302. <el-date-picker
  303. value={row[column.columnAttributes.prop]}
  304. onInput={val => {
  305. row[column.columnAttributes.prop] = val
  306. }}
  307. value-format={'yyyy-MM-dd HH:mm:ss'}
  308. type="date"
  309. placeholder="选择日期"
  310. ></el-date-picker>
  311. </el-form-item>
  312. </div>
  313. )
  314. }
  315. },
  316. {
  317. columnAttributes: {
  318. label: '复审日期',
  319. prop: 'reexamineTime'
  320. },
  321. render: (h, { row, column, index }) => {
  322. if (index) {
  323. return (
  324. <div class="redbordererr">
  325. <el-form-item
  326. label=""
  327. label-width="0px"
  328. prop={`userWaitWorkerImgsCp.${index}.${column.columnAttributes.prop}`}
  329. >
  330. <el-date-picker
  331. value={row[column.columnAttributes.prop]}
  332. onInput={val => {
  333. row[column.columnAttributes.prop] = val
  334. }}
  335. value-format={'yyyy-MM-dd HH:mm:ss'}
  336. type="date"
  337. placeholder="选择日期"
  338. ></el-date-picker>
  339. </el-form-item>
  340. </div>
  341. )
  342. } else {
  343. return null
  344. }
  345. }
  346. },
  347. {
  348. columnAttributes: {
  349. label: '正面',
  350. prop: 'positive',
  351. width: 130
  352. },
  353. render: (h, { row, column, index }) => {
  354. return (
  355. <div class="redbordererr">
  356. <ImageUpload fileList={row[column.columnAttributes.prop]} limit={1} isEdit={true} />
  357. </div>
  358. )
  359. }
  360. },
  361. {
  362. columnAttributes: {
  363. label: '反面',
  364. prop: 'negative',
  365. width: 130
  366. },
  367. render: (h, { row, column, index }) => {
  368. return (
  369. <div class="redbordererr">
  370. <ImageUpload fileList={row[column.columnAttributes.prop]} limit={1} isEdit={true} />
  371. </div>
  372. )
  373. }
  374. }
  375. ]}
  376. table-data={this.formData.userWaitWorkerImgsCp || []}
  377. />
  378. )
  379. }
  380. }
  381. ]
  382. },
  383. formItems3() {
  384. return [
  385. {
  386. name: 'slot-component',
  387. md: 24,
  388. formItemAttributes: {
  389. label: '',
  390. 'label-width': '0px',
  391. prop: 'userWaitPolicies',
  392. rules: []
  393. },
  394. render: (h, { props, onInput }) => {
  395. var { value } = props
  396. return this.convertTableJson(
  397. value,
  398. [
  399. {
  400. columnAttributes: {
  401. label: '保险公司名字',
  402. prop: 'company',
  403. 'min-width': '200px'
  404. },
  405. render: (h, { row, column, index }) => {
  406. return (
  407. <div class="redbordererr">
  408. <el-form-item
  409. label=""
  410. label-width="0px"
  411. prop={`userWaitPolicies.${index}.${column.columnAttributes.prop}`}
  412. rules={[]}
  413. >
  414. <el-input
  415. value={row[column.columnAttributes.prop]}
  416. onInput={val => {
  417. row[column.columnAttributes.prop] = val
  418. }}
  419. placeholder="请输入内容"
  420. ></el-input>
  421. </el-form-item>
  422. </div>
  423. )
  424. }
  425. },
  426. {
  427. columnAttributes: {
  428. label: '购买类型',
  429. prop: 'type',
  430. 'min-width': '200px'
  431. },
  432. render: (h, { row, column, index }) => {
  433. return (
  434. <div class="redbordererr">
  435. <el-form-item
  436. label=""
  437. label-width="0px"
  438. prop={`userWaitPolicies.${index}.${column.columnAttributes.prop}`}
  439. rules={[]}
  440. >
  441. <el-select
  442. value={row[column.columnAttributes.prop]}
  443. onInput={val => {
  444. row[column.columnAttributes.prop] = val
  445. }}
  446. placeholder="请输入内容"
  447. disabled={true}
  448. >
  449. {[
  450. { label: '线下购买', value: 'LINE' },
  451. { label: '在线购买', value: 'IN' }
  452. ].map((item, index_) => (
  453. <el-option key={index_} label={item.label} value={item.value}></el-option>
  454. ))}
  455. </el-select>
  456. </el-form-item>
  457. </div>
  458. )
  459. }
  460. },
  461. {
  462. columnAttributes: {
  463. label: '保险单名称',
  464. prop: 'policyName',
  465. 'min-width': '200px'
  466. },
  467. render: (h, { row, column, index }) => {
  468. return (
  469. <div class="redbordererr">
  470. <el-form-item
  471. label=""
  472. label-width="0px"
  473. prop={`userWaitPolicies.${index}.${column.columnAttributes.prop}`}
  474. rules={[]}
  475. >
  476. <el-input
  477. value={row[column.columnAttributes.prop]}
  478. onInput={val => {
  479. row[column.columnAttributes.prop] = val
  480. }}
  481. placeholder="请输入内容"
  482. ></el-input>
  483. </el-form-item>
  484. </div>
  485. )
  486. }
  487. },
  488. {
  489. columnAttributes: {
  490. label: '保单类型',
  491. prop: 'policyType',
  492. 'min-width': '200px'
  493. },
  494. render: (h, { row, column, index }) => {
  495. return (
  496. <div class="redbordererr">
  497. <el-form-item
  498. label=""
  499. label-width="0px"
  500. prop={`userWaitPolicies.${index}.${column.columnAttributes.prop}`}
  501. rules={[]}
  502. >
  503. <el-select
  504. value={row[column.columnAttributes.prop]}
  505. onInput={val => {
  506. row[column.columnAttributes.prop] = val
  507. }}
  508. placeholder="请输入内容"
  509. >
  510. {[
  511. { label: '意外险', value: 'AC' },
  512. { label: '雇主险', value: 'EM' },
  513. { label: '工伤险', value: 'IN' }
  514. ].map((item, index_) => (
  515. <el-option key={index_} label={item.label} value={item.value}></el-option>
  516. ))}
  517. </el-select>
  518. </el-form-item>
  519. </div>
  520. )
  521. }
  522. },
  523. {
  524. columnAttributes: {
  525. label: '保单状态',
  526. prop: 'status',
  527. 'min-width': '200px'
  528. },
  529. render: (h, { row, column, index }) => {
  530. return (
  531. <div class="redbordererr">
  532. <el-form-item label="" label-width="0px" rules={[]}>
  533. <el-select
  534. value={row[column.columnAttributes.prop]}
  535. onInput={val => {
  536. row[column.columnAttributes.prop] = val
  537. }}
  538. placeholder="请输入内容"
  539. >
  540. {[
  541. { label: '保障中', value: 'BZZ' },
  542. { label: '失效', value: 'YSX' },
  543. { label: '待生效', value: 'DSX' }
  544. ].map((item, index_) => (
  545. <el-option key={index_} label={item.label} value={item.value}></el-option>
  546. ))}
  547. </el-select>
  548. </el-form-item>
  549. </div>
  550. )
  551. }
  552. },
  553. {
  554. columnAttributes: {
  555. label: '保险单号',
  556. prop: 'policyOrder',
  557. 'min-width': '200px'
  558. },
  559. render: (h, { row, column, index }) => {
  560. return (
  561. <div class="redbordererr">
  562. <el-form-item
  563. label=""
  564. label-width="0px"
  565. prop={`userWaitPolicies.${index}.${column.columnAttributes.prop}`}
  566. >
  567. <el-input
  568. value={row[column.columnAttributes.prop]}
  569. onInput={val => {
  570. row[column.columnAttributes.prop] = val
  571. }}
  572. placeholder="请输入内容"
  573. ></el-input>
  574. </el-form-item>
  575. </div>
  576. )
  577. }
  578. },
  579. {
  580. columnAttributes: {
  581. label: '有效期开始日期',
  582. prop: 'startTime',
  583. 'min-width': '200px'
  584. },
  585. render: (h, { row, column, index }) => {
  586. return (
  587. <div class="redbordererr">
  588. <el-form-item
  589. label=""
  590. label-width="0px"
  591. prop={`userWaitPolicies.${index}.${column.columnAttributes.prop}`}
  592. rules={[]}
  593. >
  594. <el-date-picker
  595. value-format="yyyy-MM-dd HH:mm:ss"
  596. value={row[column.columnAttributes.prop]}
  597. onInput={val => {
  598. row[column.columnAttributes.prop] = val
  599. }}
  600. type="date"
  601. placeholder="选择日期"
  602. ></el-date-picker>
  603. </el-form-item>
  604. </div>
  605. )
  606. }
  607. },
  608. {
  609. columnAttributes: {
  610. label: '有效期结束日期',
  611. prop: 'endTime',
  612. 'min-width': '200px'
  613. },
  614. render: (h, { row, column, index }) => {
  615. return (
  616. <div class="redbordererr">
  617. <el-form-item
  618. label=""
  619. label-width="0px"
  620. prop={`userWaitPolicies.${index}.${column.columnAttributes.prop}`}
  621. rules={[]}
  622. >
  623. <el-date-picker
  624. value-format="yyyy-MM-dd HH:mm:ss"
  625. value={row[column.columnAttributes.prop]}
  626. onInput={val => {
  627. row[column.columnAttributes.prop] = val
  628. }}
  629. type="date"
  630. placeholder="选择日期"
  631. ></el-date-picker>
  632. </el-form-item>
  633. </div>
  634. )
  635. }
  636. },
  637. {
  638. columnAttributes: {
  639. label: '附件',
  640. prop: 'policyUrls',
  641. 'min-width': '440px'
  642. },
  643. render: (h, { row, column, index }) => {
  644. return (
  645. <div class="redbordererr">
  646. <ImageUpload
  647. fileList={row[column.columnAttributes.prop]}
  648. limit={100}
  649. isEdit={row.type !== 'IN'}
  650. />
  651. </div>
  652. )
  653. }
  654. }
  655. ],
  656. {
  657. isEdit: true,
  658. isAdd: this.openType !== 0 && value.filter(item => item.status === 'BZZ').length < 2,
  659. isDel: true,
  660. isUpdate: false,
  661. isConfirm: false
  662. },
  663. {
  664. add: () => {
  665. this.formData.userWaitPolicies.push({
  666. company: '',
  667. endTime: '',
  668. exTime: '',
  669. policyId: '',
  670. policyName: '',
  671. policyOrder: '',
  672. policyPrice: '',
  673. policyType: '',
  674. startTime: '',
  675. status: '',
  676. type: 'LINE',
  677. websitId: '',
  678. websitName: '',
  679. websitUserId: '',
  680. workerId: '',
  681. workerName: '',
  682. policyUrls: []
  683. })
  684. this.isEditTableIndex = this.formData.userWaitPolicies.length - 1
  685. },
  686. delete: ({ row, column, index }, cb) => {
  687. if (this.isEditTableIndex == index) {
  688. this.isEditTableIndex = -1
  689. } else if (this.isEditTableIndex > index) {
  690. this.isEditTableIndex--
  691. }
  692. cb && cb()
  693. }
  694. }
  695. )
  696. }
  697. }
  698. ]
  699. }
  700. },
  701. methods: {
  702. // 列表请求函数
  703. getList(p, cb) {
  704. try {
  705. var pam = JSON.parse(JSON.stringify(p))
  706. cb && cb(pam)
  707. return listPageV2(pam)
  708. } catch (error) {
  709. console.log(error)
  710. }
  711. },
  712. // 列表导出函数
  713. exportList: pageExport,
  714. // 表格列解析渲染数据更改
  715. columnParsing(item, defaultData) {
  716. return defaultData
  717. },
  718. // 监听勾选变化
  719. selectionChange(data) {
  720. this.recordSelected = data
  721. },
  722. // 表格操作列
  723. operation() {
  724. return this.operationBtn({
  725. del: {
  726. prompt: '确定删除吗?',
  727. click: ({ row, index, column }) => {
  728. del({
  729. id: row.id
  730. }).then(res => {
  731. if (res.code == 200) {
  732. this.$message({ type: 'success', message: `删除成功!` })
  733. this.$refs.pageRef.refreshList()
  734. } else {
  735. this.$message.error(res.msg)
  736. }
  737. })
  738. }
  739. },
  740. edit: {
  741. click: ({ row, index, column }) => {
  742. memberUserWatitDetail2({
  743. id: row.id
  744. }).then(res => {
  745. this.formData = {
  746. ...res.data,
  747. userWaitWorkerImgsCp: [
  748. {
  749. type: 'ID',
  750. number: res.data?.idcard || '',
  751. startTime: res.data?.idCardStartTime || '',
  752. endTime: res.data?.idCardEndTime || '',
  753. reexamineTime: '',
  754. positive: (() => {
  755. var data = (res.data?.userWaitWorkerImgs || [])
  756. .filter(item => item.type == 'ID')
  757. .map(item => ({
  758. name: item.imgName,
  759. url: item.imgUrl
  760. }))?.[0]
  761. if (data) {
  762. return [data]
  763. }
  764. return []
  765. })(),
  766. negative: (() => {
  767. var data = (res.data?.userWaitWorkerImgs || [])
  768. .filter(item => item.type == 'ID')
  769. .map(item => ({
  770. name: item.imgName,
  771. url: item.imgUrl
  772. }))?.[1]
  773. if (data) {
  774. return [data]
  775. }
  776. return []
  777. })()
  778. },
  779. {
  780. type: 'HIGHT',
  781. number: res.data?.number || '',
  782. startTime: res.data?.startTime || '',
  783. endTime: res.data?.endTime || '',
  784. reexamineTime: res.data?.hightExamineTime || '',
  785. positive: (() => {
  786. var data = (res.data?.userWaitWorkerImgs || [])
  787. .filter(item => item.type == 'HIGHT')
  788. .map(item => ({
  789. name: item.imgName,
  790. url: item.imgUrl
  791. }))?.[0]
  792. if (data) {
  793. return [data]
  794. }
  795. return []
  796. })(),
  797. negative: (() => {
  798. var data = (res.data?.userWaitWorkerImgs || [])
  799. .filter(item => item.type == 'HIGHT')
  800. .map(item => ({
  801. name: item.imgName,
  802. url: item.imgUrl
  803. }))?.[1]
  804. if (data) {
  805. return [data]
  806. }
  807. return []
  808. })()
  809. }
  810. ],
  811. userWaitPolicies: res.data?.userWaitPolicies?.map(item => {
  812. return {
  813. ...item,
  814. policyUrls: item.policyUrl ? item.policyUrl.split(',').map(url => ({ url })) : []
  815. }
  816. })
  817. }
  818. // this.formData = { ...res.data }
  819. this.$nextTick(() => {
  820. this.openForm()
  821. })
  822. })
  823. }
  824. }
  825. })
  826. },
  827. getPam() {
  828. return {
  829. ...this.formData,
  830. idCard: this.formData?.userWaitWorkerImgsCp?.find(item => item.type == 'ID')?.number,
  831. idCardStartTime: this.formData?.userWaitWorkerImgsCp?.find(item => item.type == 'ID')?.startTime,
  832. idCardEndTime: this.formData?.userWaitWorkerImgsCp?.find(item => item.type == 'ID')?.endTime,
  833. number: this.formData?.userWaitWorkerImgsCp?.find(item => item.type == 'HIGHT')?.number,
  834. startTime: this.formData?.userWaitWorkerImgsCp?.find(item => item.type == 'HIGHT')?.startTime,
  835. endTime: this.formData?.userWaitWorkerImgsCp?.find(item => item.type == 'HIGHT')?.endTime,
  836. hightExamineTime: this.formData?.userWaitWorkerImgsCp?.find(item => item.type == 'HIGHT')?.reexamineTime,
  837. userWaitWorkerImgs: [
  838. ...(() => {
  839. var url = this.formData?.userWaitWorkerImgsCp?.find(item => item.type == 'ID')?.positive?.[0]?.url
  840. if (url) {
  841. return [
  842. {
  843. type: 'ID',
  844. imgName: '身份证正面',
  845. imgUrl: url
  846. }
  847. ]
  848. } else {
  849. return []
  850. }
  851. })(),
  852. ...(() => {
  853. var url = this.formData?.userWaitWorkerImgsCp?.find(item => item.type == 'ID')?.negative?.[0]?.url
  854. if (url) {
  855. return [
  856. {
  857. type: 'ID',
  858. imgName: '身份证反面',
  859. imgUrl: url
  860. }
  861. ]
  862. } else {
  863. return []
  864. }
  865. })(),
  866. ...(() => {
  867. var url = this.formData?.userWaitWorkerImgsCp?.find(item => item.type == 'HIGHT')?.positive?.[0]?.url
  868. if (url) {
  869. return [
  870. {
  871. type: 'HIGHT',
  872. imgName: '高空证正面',
  873. imgUrl: url
  874. }
  875. ]
  876. } else {
  877. return []
  878. }
  879. })(),
  880. ...(() => {
  881. var url = this.formData?.userWaitWorkerImgsCp?.find(item => item.type == 'HIGHT')?.negative?.[0]?.url
  882. if (url) {
  883. return [
  884. {
  885. type: 'HIGHT',
  886. imgName: '高空证反面',
  887. imgUrl: url
  888. }
  889. ]
  890. } else {
  891. return []
  892. }
  893. })()
  894. ],
  895. userWaitPolicies: this.formData?.userWaitPolicies?.map(item => {
  896. return {
  897. ...item,
  898. policyUrl: item?.policyUrls?.map(v => v.url)?.join(',')
  899. }
  900. })
  901. }
  902. },
  903. openForm() {
  904. this.formDialog = true
  905. },
  906. formCancel() {
  907. this.$refs?.formRef?.$refs?.inlineForm?.clearValidate?.()
  908. this.$data.formData = this.$options.data().formData
  909. this.formDialog = false
  910. },
  911. formConfirm() {
  912. this.$refs.formRef.validate((valid, invalidFields, errLabels) => {
  913. if (valid) {
  914. memberUserWatitUpdate2(this.getPam()).then(res => {
  915. this.$message({ type: 'success', message: `编辑成功!` })
  916. this.formCancel()
  917. this.$refs.pageRef.refreshList()
  918. })
  919. }
  920. })
  921. },
  922. handleDownload() {
  923. commonTemplateDownload({ name: '师傅资料初始化模板.xlsx' }, `${this.$route.meta.title}`)
  924. .then(res => {
  925. this.$message({
  926. message: '下载成功',
  927. type: 'success'
  928. })
  929. })
  930. .catch(err => {
  931. this.$message.error('下载失败')
  932. })
  933. }
  934. }
  935. }
  936. </script>
  937. <style lang="scss" scoped>
  938. .neibuview {
  939. box-sizing: border-box;
  940. padding-left: 16px;
  941. ::v-deep & > .zj-page-fill-scroll {
  942. box-sizing: border-box;
  943. padding-right: 16px;
  944. & > div:nth-child(1) {
  945. margin-top: 20px;
  946. }
  947. }
  948. }
  949. </style>