jiangping
2025-06-09 663dbe4ddca1fa409e6acbc1f77d924c161b0c39
company/src/components/enterprise/OperaInsuranceApplyAddWindow.vue
@@ -10,7 +10,7 @@
    <div class="list">
      <el-form :inline="true" ref="form" :model="form" :rules="rules" class="demo-form-inline">
        <el-form-item label="保险方案" prop="solutionId">
          <el-select v-model="form.solutionId" @change="changeSolution" placeholder="请选择">
          <el-select v-model="form.solutionId" filterable @change="changeSolution" placeholder="请选择">
            <el-option
                v-for="item in company"
                :key="item.id"
@@ -83,7 +83,8 @@
        <div style="display: inline-block;margin-right: 30px;font-size: 14px"><span>合计费用:</span>
        <span style="font-weight: bold;color: red">{{sumFee}}</span>元
        </div>
        <el-button type="primary" @click="sele">选取派遣单位</el-button>
        <el-button type="primary" @click="sele(1)" v-if="item && item.hasDispatchUnit !== 1">选取派遣单位</el-button>
        <el-button type="primary" @click="sele(2)" v-if="item && item.hasDispatchUnit === 1">选取工种</el-button>
      </div>
    </div>
<!--    show-summary
@@ -124,6 +125,7 @@
        </template>
      </u-table-column>
      <u-table-column
          v-if="item && item.hasDispatchUnit !== 1"
          prop="duName"
          label="派遣单位">
      </u-table-column>
@@ -168,10 +170,10 @@
    <confirmJobType ref="confirmJobType" @result="getUser" />
    <!--    查看详单    -->
    <detailsPolicyholder ref="detailsPolicyholder" @success="successEvent" />
    <!--    直保投保详情    -->
<!--    &lt;!&ndash;    直保投保详情    &ndash;&gt;
    <OperaInsuranceApplyDetails ref="OperaInsuranceApplyDetails" />
    <!--    委托投保详情    -->
    <OperaWtbApplyShopWindow ref="OperaWtbApplyShopWindow" />
    &lt;!&ndash;    委托投保详情    &ndash;&gt;
    <OperaWtbApplyShopWindow ref="OperaWtbApplyShopWindow" />-->
  </GlobalWindow>
</template>
@@ -179,34 +181,37 @@
import BaseOpera from '@/components/base/BaseOpera'
import GlobalWindow from '@/components/common/GlobalWindow'
import selectEmployees from '@/components/enterprise/selectEmployees'
import addEmployee from '@/components/enterprise/addEmployee'
import addEmployee from '@/components/enterprise/addEmployeeWithDu'
import importEmployees from '@/components/enterprise/importEmployees'
import confirmJobType from '@/components/enterprise/confirmJobType'
import detailsPolicyholder from '@/components/business/detailsPolicyholder'
import OperaInsuranceApplyDetails from '@/components/business/OperaInsuranceApplyWindow'
import OperaWtbApplyShopWindow from '@/components/business/OperaWtbApplyShopWindow'
import { all, getNewVersion } from '@/api/business/solutions'
import { all, getNewVersion, getUseList } from '@/api/business/solutions'
import { mapState } from 'vuex'
import { create, getCountCyclePriceVO, getDetail, findList, updateData } from '@/api/business/insuranceApply'
import { create, getCountCyclePriceVO, getDetail, findList } from '@/api/business/insuranceApply'
import { UTable, UTableColumn } from 'umy-ui'
// Vue.component(UTable.name, UTable);
// Vue.component(UTableColumn.name, UTableColumn);
export default {
  name: 'OperaInsuranceApplyAddWindowNew',
  extends: BaseOpera,
  components: {
    GlobalWindow, selectEmployees, addEmployee, importEmployees, confirmJobType, detailsPolicyholder, UTable, UTableColumn
    ,  OperaWtbApplyShopWindow, OperaInsuranceApplyDetails
    GlobalWindow,
    selectEmployees,
    addEmployee,
    importEmployees,
    confirmJobType,
    detailsPolicyholder,
    UTable,
    UTableColumn
  },
  data () {
    return {
      sumFee:0,
      sumFee: 0,
      form: {
        id: null,
        ID: null,
        solutionId: '',
        applyStartTime: '',
        applyEndTime: ''
        applyEndTime: '',
        companyId: null
      },
      solutionName: '',
      type: '',
@@ -240,7 +245,7 @@
    // 监听tableData的变化
    tableData: {
      deep: true,
      handler(newVal, oldVal) {
      handler (newVal, oldVal) {
        // 数据变化时的处理逻辑
        this.getSummaries2()
        console.log(this.tableData.length)
@@ -256,21 +261,16 @@
      this.isWorking = true
      // if (!this.form.id) {
      create({
        companyId: this.form.companyId,
        applyDetailList: arr,
        applyStartTime: this.form.applyStartTime,
        applyEndTime: this.form.applyEndTime,
        solutionId: this.form.solutionId
      }).then(res => {
        console.log(res)
        this.visible = false
        if (this.item.type == 1) {
          this.$emit('success', 1, { id: res })
          this.$refs.OperaWtbApplyShopWindow.open('委托投保详情', { id: res })
        } else {
          this.$emit('success', 1, { id: res })
          this.$refs.OperaInsuranceApplyDetails.open('投保详情', { id: res })
        }
        this.$emit('success', 1, { id: res,godetail:true,type:this.item.type})
        this.$tip.apiSuccess('操作成功')
        this.visible = false
        // this.$emit('success','委托投保详情', { id: res })
      })
        .catch(e => {
@@ -309,6 +309,10 @@
      this.form.solutionId = ''
      this.form.applyStartTime = ''
      this.form.applyEndTime = ''
      if (target.companyId) {
        this.form.companyId = target.companyId
        this.form.companyName = target.companyName
      }
      if (target && target.id) {
        this.$nextTick(() => {
          this.$refs.form.resetFields()
@@ -364,7 +368,7 @@
          })
          sums[index] = total.toFixed(2)
          // }
        }else {
        } else {
          sums[index] = ''
        }
      })
@@ -372,8 +376,8 @@
      return sums
    },
    getSummaries2 () {
      this.sumFee = 0;
      if(this.tableData&&this.tableData.length){
      this.sumFee = 0
      if (this.tableData && this.tableData.length) {
        this.tableData.forEach((column, index) => {
          this.sumFee = parseFloat(this.sumFee) + parseFloat(column.fee)
        })
@@ -401,31 +405,90 @@
            this.$message.warning('至少添加一项员工')
            return
          }
          for (let i = 0; i < this.tableData.length; i++) {
            console.log(this.tableData[i].worktypeId)
            console.log(this.tableData[i].duId)
            if (!this.tableData[i].worktypeId || !this.tableData[i].duId) {
              this.$message.warning('请完善派遣单位和工种信息')
              return
          if (this.item.hasDispatchUnit !== 1) {
            for (let i = 0; i < this.tableData.length; i++) {
              if (!this.tableData[i].worktypeId || !this.tableData[i].duId) {
                this.$message.warning('请完善派遣单位和工种信息')
                return
              }
            }
          } else {
            for (let i = 0; i < this.tableData.length; i++) {
              if (!this.tableData[i].worktypeId) {
                this.$message.warning('请完善派工种信息')
                return
              }
            }
          }
          let price = 0
          // if (this.item && this.item.type != 1) {
            this.tableData.forEach(item => {
              price = price + item.fee
            })
          // }
          this.$refs.detailsPolicyholder.open('投保详情单', {
            companyName: this.userInfo.company.name,
            solutionName: this.item.name,
            solutionType: this.item.type,
            applyStartTime: this.form.applyStartTime,
            applyEndTime: this.form.applyEndTime,
            insureNum: this.tableData.length,
            totalPrice: price,
            detailList: this.tableData
          this.tableData.forEach(item => {
            price = price + item.fee
          })
          // }
          const endTime = Number(this.item.correctWarnTime.split(':')[0] + this.item.correctWarnTime.split(':')[1])
          const now = new Date();
          const hours = now.getHours();
          const minutes = now.getMinutes();
          const date = `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}`;
          const startTime = Number(date.split(':')[0] + date.split(':')[1])
          if (startTime > endTime) {
            this.$confirm('您已超过当天最晚批改时间,保单实际生效时间以保险公司审核为准!', '提示', {
              confirmButtonText: '确定',
              cancelButtonText: '取消',
              type: 'warning'
            }).then(() => {
              if (!this.form.companyId) {
                this.$refs.detailsPolicyholder.open('投保详情单', {
                  companyName: this.userInfo.company.name,
                  solutionName: this.item.name,
                  solutionType: this.item.type,
                  applyStartTime: this.form.applyStartTime,
                  applyEndTime: this.form.applyEndTime,
                  insureNum: this.tableData.length,
                  totalPrice: price,
                  detailList: this.tableData
                })
              } else {
                this.$refs.detailsPolicyholder.open('投保详情单', {
                  companyName: this.form.companyName,
                  solutionName: this.item.name,
                  solutionType: this.item.type,
                  applyStartTime: this.form.applyStartTime,
                  applyEndTime: this.form.applyEndTime,
                  insureNum: this.tableData.length,
                  totalPrice: price,
                  detailList: this.tableData
                })
              }
            }).catch(() => {
            });
          } else {
            if (!this.form.companyId) {
              this.$refs.detailsPolicyholder.open('投保详情单', {
                companyName: this.userInfo.company.name,
                solutionName: this.item.name,
                solutionType: this.item.type,
                applyStartTime: this.form.applyStartTime,
                applyEndTime: this.form.applyEndTime,
                insureNum: this.tableData.length,
                totalPrice: price,
                detailList: this.tableData
              })
            } else {
              this.$refs.detailsPolicyholder.open('投保详情单', {
                companyName: this.form.companyName,
                solutionName: this.item.name,
                solutionType: this.item.type,
                applyStartTime: this.form.applyStartTime,
                applyEndTime: this.form.applyEndTime,
                insureNum: this.tableData.length,
                totalPrice: price,
                detailList: this.tableData
              })
            }
          }
        }
      })
    },
@@ -474,25 +537,25 @@
        this.$message.warning('请先选择保险方案')
        return
      }
      this.$refs.selectEmployees.open('选取员工', { arr: this.tableData, price: this.price, type: 1 })
      this.$refs.selectEmployees.open('选取员工', { arr: this.tableData, price: this.price, type: 1, companyId: this.form.companyId })
    },
    addUser () {
      if (!this.form.solutionId) {
        this.$message.warning('请先选择保险方案')
        return
      }
      this.$refs.addEmployee.open('添加员工', { arr: this.tableData, price: this.price })
      this.$refs.addEmployee.open('添加员工', { arr: this.tableData, price: this.price, solutionId: this.form.solutionId, hasDispatchUnit: this.item.hasDispatchUnit, companyId: this.userInfo.type === 1 ? this.userInfo.companyId : this.form.companyId })
    },
    uploadUser () {
      if (!this.form.solutionId) {
        this.$message.warning('请先选择保险方案')
        return
      }
      this.$refs.importEmployees.open('上传名单', { arr: this.tableData, solutionId: this.form.solutionId, type: 1, price: this.price })
      this.$refs.importEmployees.open('上传名单', { arr: this.tableData, solutionId: this.form.solutionId, type: 1, hasDispatchUnit: this.item.hasDispatchUnit, price: this.price })
    },
    // 切换方案
    changeSolution (e) {
      this.sumFee =0;
      this.sumFee = 0
      this.form.applyEndTime = ''
      this.form.applyStartTime = ''
      if (!this.form.id) {
@@ -536,7 +599,7 @@
        })
      this.tableData.forEach(item => {
        // if (this.item.type != 0) {
          item.fee = this.price
        item.fee = this.price
        // }
      })
    },
@@ -559,7 +622,7 @@
      this.$refs.multipleTable.clearSelection()
    },
    // 选择员工
    sele () {
    sele (type) {
      if (!this.form.solutionId) {
        this.$message.warning('请选择保险方案')
        return
@@ -568,14 +631,18 @@
        this.$message.warning('请选择员工')
        return
      }
      this.$refs.confirmJobType.open('确认工种', { solutionId: this.form.solutionId })
      this.$refs.confirmJobType.open('确认工种', { solutionId: this.form.solutionId, type })
    },
    // 查询全部方案
    getCompany () {
      all({})
      getUseList(this.form.companyId ? this.form.companyId : this.userInfo.companyId, 2)
        .then(res => {
          this.company = res
        })
      // all({ companyId: this.form.companyId })
      //   .then(res => {
      //     this.company = res
      //   })
    },
    getAgeByIdCard (idCard) {
      const sexAndAge = {}