linwenxin vor 5 Monaten
Ursprung
Commit
ec9bc7ce81

+ 16 - 0
src/api/employerInsurance.js

@@ -19,3 +19,19 @@ export function policyOrderListEmExport(data, name) {
 export function policyOrderImportEm(data) {
   return handleImport('/policyOrder/importEm', data.formdata, data.id || '')
 }
+
+export function policyOrderDetail(params) {
+  return request({
+    url: '/policyOrder/detail',
+    method: 'post',
+    params
+  })
+}
+
+export function policyOrderUpdate(data) {
+  return request({
+    url: '/policyOrder/update',
+    method: 'post',
+    data
+  })
+}

+ 160 - 0
src/views/setting/insuranceAdministration/employerInsurance/InsuranceContractForm.vue

@@ -0,0 +1,160 @@
+<template>
+  <div>
+    <zj-form-container ref="formRef" :formData="formData" :formRules="formRules">
+      <zj-form-module title="保险信息" label-width="110px" :formData="formData" :formItems="formItems" :column="3">
+      </zj-form-module>
+    </zj-form-container>
+    <div v-if="type === 0 || type === 1" style="text-align: right">
+      <el-button size="mini" @click="submit">提交</el-button>
+    </div>
+  </div>
+</template>
+
+<script>
+import { dateFormat } from '@/utils/util'
+import { policyOrderDetail, policyOrderUpdate } from '@/api/employerInsurance'
+import ImageUpload from '@/components/file-upload'
+import { required, mobileRequired, mobile, httpUrl, email } from '@/components/template/rules_verify.js'
+export default {
+  components: {
+    ImageUpload
+  },
+  props: {
+    type: {
+      type: Number,
+      default: null
+    },
+    item: {
+      type: Object,
+      default: null
+    }
+  },
+  data() {
+    return {
+      disabled: this.type === 2,
+      // 表单数据
+      formData: {
+        belongCompany: '',
+        belongCompanyCode: '',
+        buyUnit: '',
+        buyUnitId: '',
+        classWebsitId: '',
+        classWebsitName: '',
+        companyWechatId: '',
+        companyWechatName: '',
+        createBy: '',
+        createTime: '',
+        endTime: '',
+        fileUrl: '',
+        id: '',
+        isPay: '',
+        isReceipt: '',
+        isSend: '',
+        monthDate: '',
+        payAmount: 0,
+        payTime: '',
+        policyId: '',
+        policyName: '',
+        policyNumber: '',
+        policyOrderStatus: '',
+        receiptTime: '',
+        replaceIdcard: '',
+        replaceName: '',
+        replaceNumber: '',
+        replacePhone: '',
+        sendBatch: '',
+        sendTime: '',
+        startTime: '',
+        transactionId: '',
+        type: '',
+        updateBy: '',
+        updateTime: '',
+        websitId: '',
+        websitName: '',
+        websitUserId: '',
+        workerIdcard: '',
+        workerMobile: '',
+        workerName: '',
+        workerNumber: ''
+      },
+      formRules: {}
+    }
+  },
+  computed: {
+    formItems() {
+      return [
+        {
+          name: 'el-input',
+          attributes: { disabled: this.disabled },
+          formItemAttributes: { label: '保单编号', prop: 'policyNumber', rules: [...required] }
+        },
+        {
+          name: 'el-date-picker',
+          attributes: { disabled: this.disabled, type: 'date', style: { width: '100%' } },
+          formItemAttributes: { label: '生效时间', prop: 'startTime', rules: [...required] }
+        },
+        {
+          name: 'el-date-picker',
+          attributes: { disabled: this.disabled, type: 'date', style: { width: '100%' } },
+          formItemAttributes: { label: '失效时间', prop: 'endTime', rules: [...required] }
+        },
+        {
+          md: 24,
+          isShow: true,
+          name: 'slot-component',
+          formItemAttributes: {
+            label: '上传附件',
+            prop: 'fileUrl',
+            rules: [...required]
+          },
+          render: (h, { props, onInput }) => {
+            return (
+              <div>
+                <ImageUpload fileList={this.formData.fileUrl} limit={1} fileType={['image']} />
+                <h4 style="color:#ffa700">上传图片</h4>
+              </div>
+            )
+          }
+        }
+      ]
+    }
+  },
+  created() {
+    // 获取详情
+    if (this.type !== 0) {
+      policyOrderDetail({
+        id: this.item.id
+      }).then(res => {
+        this.formData = { ...res.data, fileUrl: res.data.fileUrl ? [{ url: res.data.fileUrl }] : [] }
+      })
+    }
+  },
+  methods: {
+    submit() {
+      this.$refs['formRef'].validate(valid => {
+        if (valid) {
+          policyOrderUpdate({
+            ...this.formData,
+            startTime: dateFormat('YYYY-mm-dd HH:MM:SS', new Date(this.formData.startTime)),
+            endTime: this.formData?.endTime
+              ? `${dateFormat('YYYY-mm-dd HH:MM:SS', new Date(this.formData.endTime))?.split(' ')?.[0]} 23:59:59`
+              : '',
+            fileUrl: this.formData?.fileUrl?.[0]?.url
+          }).then(res => {
+            this.$message({
+              type: 'success',
+              message: `保存成功!`
+            })
+            this.$emit('success')
+          })
+        } else {
+          console.log('error submit!!')
+          return false
+        }
+      })
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped></style>

+ 53 - 5
src/views/setting/insuranceAdministration/employerInsurance/index.vue

@@ -9,17 +9,37 @@
     :moreParameters="moreParameters"
     :column-parsing="columnParsing"
   >
-  </template-page>
+    <Popu v-if="visible">
+      <el-page-header slot="head" content="" @back="handleClose" />
+      <InsuranceContractForm
+        :item="item"
+        :type="showType"
+        @success="
+          () => {
+            handleClose()
+            $refs.pageRef.refreshList()
+          }
+        "
+      /> </Popu
+  ></template-page>
 </template>
 
 <script>
 import TemplatePage from '@/components/template/template-page-1.vue'
 import { required, mobileRequired, mobile, httpUrl, email } from '@/components/template/rules_verify.js'
-import { policyOrderListEm, policyOrderListEmExport, policyOrderImportEm } from '@/api/employerInsurance'
+import {
+  policyOrderListEm,
+  policyOrderListEmExport,
+  policyOrderImportEm,
+  policyOrderDetail,
+  policyOrderUpdate
+} from '@/api/employerInsurance'
 import operation_mixin from '@/components/template/operation_mixin.js'
 import import_mixin from '@/components/template/import_mixin.js'
+import Popu from '@/components/template/popu.vue'
+import InsuranceContractForm from './InsuranceContractForm.vue'
 export default {
-  components: { TemplatePage },
+  components: { TemplatePage, Popu, InsuranceContractForm },
   mixins: [import_mixin, operation_mixin],
   data() {
     return {
@@ -33,7 +53,10 @@ export default {
         'selection-change': this.selectionChange
       },
       // 勾选选中行
-      recordSelected: []
+      recordSelected: [],
+      visible: false,
+      item: null,
+      showType: null
     }
   },
   computed: {
@@ -111,7 +134,32 @@ export default {
       return defaultData
     },
     // 表格操作列
-    operation(h, { row, index, column }) {}
+    operation(h, { row, index, column }) {
+      return this.operationBtn({
+        edit: {
+          click: ({ row, index, column }) => {
+            this.item = row
+            this.visible = true
+            this.showType = 1
+            // policyOrderDetail({ id: row.id }).then(res => {})
+          }
+        },
+        details: {
+          click: ({ row, index, column }) => {
+            this.item = row
+            this.visible = true
+            this.showType = 2
+            // policyOrderDetail({ id: row.id }).then(res => {})
+          }
+        }
+      })
+    },
+    // 关闭新增弹窗
+    handleClose() {
+      this.visible = false
+      this.item = null
+      this.showType = null
+    }
   }
 }
 </script>