nidapeng
2024-04-07 517b1e08824bb54abccaed92980bc0cf298d2030
提交一把
已修改28个文件
1128 ■■■■■ 文件已修改
company/src/components/business/ApplyChangeDetails.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/business/OperaApplyChangeDetailWindow.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/business/OperaApplyChangeUnitDetailWindow.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/business/OperaCompanyDescWindow.vue 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/business/OperaCompanyWindow.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/business/OperaShopDescWindow.vue 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/business/OperaShopWindow.vue 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/business/OperaSolutionsDescWindow.vue 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/business/OperaSolutionsWindow.vue 27 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/business/modification.vue 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/enterprise/addEmployee.vue 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/enterprise/additionSubtractionApplication.vue 826 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/views/business/applyChange.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/views/business/applyChangeShop.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/views/business/insuranceApply.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/views/business/insuranceApplyShop.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/views/business/policyList.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/views/business/switchCourt.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/views/business/switchCourtShop.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/views/business/unionChange.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/views/business/unionChangeUnit.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/views/enterprise/insuranceApply.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/views/index.vue 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/views/indexShop.vue 40 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/dao/business/model/CompanySolution.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/impl/CompanySolutionServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/impl/SolutionsServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/business/ApplyChangeDetails.vue
@@ -171,7 +171,6 @@
                     var addModel = addDetailList.length > i?addDetailList[i]:{}
                     var delModel = delDetailList.length > i?delDetailList[i]:{}
                     that.detailList.push({add:addModel,del:delModel});
                     console.log(detailList)
                   }
                 }).catch(err => {})
           },
company/src/components/business/OperaApplyChangeDetailWindow.vue
@@ -31,7 +31,7 @@
                          <el-button v-if="model.status == 2" type="primary" @click="viewPidan">查看批单</el-button>
                          <el-button v-if="[5,8].includes(model.status)" type="primary" @click="closeOrder">关闭订单</el-button>
                      </template>
                        <template v-if="2">
                        <template v-if="userInfo.type ===2">
                            <el-button type="primary"  @click="$refs.ApplyChangeDetails.open('加减保详单',apply,model,0)">导出详单</el-button>
                            <el-button v-if="[1,2,4,7,9].includes(model.status)" type="primary" @click="viewApplyFile">查看申请单</el-button>
                            <el-button v-if="[2].includes(model.status)" type="primary" @click="viewPidan">查看批单</el-button>
@@ -40,16 +40,16 @@
                            <el-button v-if=" model.solutionType == 1 && [7].includes(model.status)" type="danger" @click="closeOrder">关闭订单</el-button>
                            <el-button v-if=" model.solutionType == 0 && [1].includes(model.status)" type="primary" @click="$refs.OperaApplyChangeCheckWindow.open('上传批单',model,3)">上传批单</el-button>
                            <el-button  v-if="model.solutionType == 0 &&[3,4].includes(model.status)"  type="primary" @click="$refs.OperaApplyChangeCheckWindow.open('驳回退回申请',model,5)">驳回退回申请</el-button>
                            <el-button  v-if="model.solutionType == 0 &&[0,1].includes(model.status)" type="danger" @click="$refs.OperaApplyChangeCheckWindow.open('退回投保',model,1)">退回投保</el-button>
                            <el-button  v-if="model.solutionType == 0 &&[0,1,3,4].includes(model.status)" type="danger" @click="$refs.OperaApplyChangeCheckWindow.open('退回投保',model,1)">退回投保</el-button>
                            <el-button  v-if="model.solutionType == 0 &&[2].includes(model.status)"  type="danger" @click="$refs.OperaApplyChangeCheckWindow.open('修改批单',model,4)">修改批单</el-button>
                        </template>
                        <template  v-if="0">
                        <template  v-if="userInfo.type ===0">
                          <el-button type="primary" @click="$refs.ApplyChangeDetails.open('加减保详单',apply,model,0)">导出详单</el-button>
                          <el-button v-if="[1,2,4,7,9].includes(model.status)" type="primary" @click="viewApplyFile">查看申请单</el-button>
                          <el-button v-if="[2].includes(model.status)" type="primary" @click="viewPidan">查看批单</el-button>
                          <el-button v-if=" model.solutionType == 0 && [1].includes(model.status)" type="primary" @click="$refs.OperaApplyChangeCheckWindow.open('上传批单',model,3)">上传批单</el-button>
                          <el-button  v-if="model.solutionType == 0 &&[3,4].includes(model.status)"  type="primary" @click="$refs.OperaApplyChangeCheckWindow.open('驳回退回申请',model,5)">驳回退回申请</el-button>
                          <el-button  v-if="model.solutionType == 0 &&[0,1].includes(model.status)" type="danger" @click="$refs.OperaApplyChangeCheckWindow.open('退回投保',model,1)">退回投保</el-button>
                          <el-button  v-if="model.solutionType == 0 &&[0,1,3,4].includes(model.status)" type="danger" @click="$refs.OperaApplyChangeCheckWindow.open('退回投保',model,1)">退回投保</el-button>
                          <el-button  v-if="model.solutionType == 0 &&[2].includes(model.status)"  type="danger" @click="$refs.OperaApplyChangeCheckWindow.open('修改批单',model,4)">修改批单</el-button>
                        </template>
                  </div>
company/src/components/business/OperaApplyChangeUnitDetailWindow.vue
@@ -40,7 +40,7 @@
                      <el-button v-if=" model.solutionType == 1 && [7].includes(model.status)" type="danger" @click="closeOrder">关闭订单</el-button>
                      <el-button v-if=" model.solutionType == 0 && [1].includes(model.status)" type="primary" @click="$refs.OperaApplyChangeCheckWindow.open('上传批单',model,3)">上传批单</el-button>
                      <el-button  v-if="model.solutionType == 0 &&[3,4].includes(model.status)"  type="primary" @click="$refs.OperaApplyChangeCheckWindow.open('驳回退回申请',model,5)">驳回退回申请</el-button>
                      <el-button  v-if="model.solutionType == 0 &&[0,1].includes(model.status)" type="danger" @click="$refs.OperaApplyChangeCheckWindow.open('退回投保',model,1)">退回投保</el-button>
                      <el-button  v-if="model.solutionType == 0 &&[0,1,3,4].includes(model.status)" type="danger" @click="$refs.OperaApplyChangeCheckWindow.open('退回投保',model,1)">退回投保</el-button>
                      <el-button  v-if="model.solutionType == 0 &&[2].includes(model.status)"  type="danger" @click="$refs.OperaApplyChangeCheckWindow.open('修改批单',model,4)">修改批单</el-button>
                    </template>
                    <template  v-if="userInfo.type === 0">
@@ -49,7 +49,7 @@
                      <el-button v-if="[2].includes(model.status)" type="primary" @click="viewPidan">查看批单</el-button>
                      <el-button v-if=" model.solutionType == 0 && [1].includes(model.status)" type="primary" @click="$refs.OperaApplyChangeCheckWindow.open('上传批单',model,3)">上传批单</el-button>
                      <el-button  v-if="model.solutionType == 0 &&[3,4].includes(model.status)"  type="primary" @click="$refs.OperaApplyChangeCheckWindow.open('驳回退回申请',model,5)">驳回退回申请</el-button>
                      <el-button  v-if="model.solutionType == 0 &&[0,1].includes(model.status)" type="danger" @click="$refs.OperaApplyChangeCheckWindow.open('退回投保',model,1)">退回投保</el-button>
                      <el-button  v-if="model.solutionType == 0 &&[0,1,3,4].includes(model.status)" type="danger" @click="$refs.OperaApplyChangeCheckWindow.open('退回投保',model,1)">退回投保</el-button>
                      <el-button  v-if="model.solutionType == 0 &&[2].includes(model.status)"  type="danger" @click="$refs.OperaApplyChangeCheckWindow.open('修改批单',model,4)">修改批单</el-button>
                    </template>
                  </div>
company/src/components/business/OperaCompanyDescWindow.vue
@@ -28,6 +28,10 @@
                    <div class="info_list_item_label">公司账号:</div>
                    <div class="info_list_item_val">{{form.username || '-'}}</div>
                </div>
              <div class="info_list_item">
                <div class="info_list_item_label">法人姓名:</div>
                <div class="info_list_item_val">{{form.legalName || '-'}}</div>
              </div>
                <div class="info_list_item">
                    <div class="info_list_item_label">绑定手机号:</div>
                    <div class="info_list_item_val">
@@ -112,8 +116,8 @@
                <div class="info_list_item">
                    <div class="info_list_item_label" style="width: 100px;">法人身份证:</div>
                    <div class="info_list_item_val">
                        <div class="image" v-if="form.idcardImgList && form.idcardImgList .length>1 && form.idcardImgList[0].fileurlFull">
                          <el-image
                        <div class="image" v-if="form.idcardImgList && form.idcardImgList .length>0 && form.idcardImgList[0].fileurlFull">
                           <el-image
                              append-to-body
                              v-if="form.idcardImgList[0].fileurlFull"
                              style="width: 90px; height: 90px"
@@ -121,8 +125,8 @@
                              :preview-src-list="[form.idcardImgList[0].fileurlFull]">
                          </el-image>
                        </div>
                        <div class="image" v-if="form.idcardImgList && form.idcardImgList .length>2 && form.idcardImgList[1].fileurlFull">
                          <el-image
                        <div class="image" v-if="form.idcardImgList && form.idcardImgList .length>1 && form.idcardImgList[1].fileurlFull">
                           <el-image
                              append-to-body
                              v-if="form.idcardImgList[1].fileurlFull"
                              style="width: 90px; height: 90px"
@@ -249,6 +253,8 @@
        this.code = ''
        clearInterval(this.timer)
        this.num = 0
      }) .catch(e => {
        this.$tip.apiFailed(e)
      })
    },
    send () {
@@ -260,7 +266,9 @@
        .then(res => {
          this.num = 60
          this.setTime()
        })
        }) .catch(e => {
        this.$tip.apiFailed(e)
         })
    },
    setTime () {
      this.timer = setInterval(() => {
@@ -308,11 +316,11 @@
            this.form.file.imgurl = res.businessImg.fileurl
            this.form.file.imgurlfull = res.businessImg.fileurlFull
          }
          if (res.idcardImgList&& res.idcardImgList.length>1) {
          if (res.idcardImgList&& res.idcardImgList.length>0) {
            this.form.file1.imgurl = res.idcardImgList[0].fileurl
            this.form.file1.imgurlfull = res.idcardImgList[0].fileurlFull
          }
          if (res.idcardImgList && res.idcardImgList.length>2) {
          if (res.idcardImgList && res.idcardImgList.length>1) {
            this.form.file2.imgurl = res.idcardImgList[1].fileurl
            this.form.file2.imgurlfull = res.idcardImgList[1].fileurlFull
          }
company/src/components/business/OperaCompanyWindow.vue
@@ -100,7 +100,7 @@
                align="center"
                label="委托商户">
                <template slot-scope="scope">
                  <el-select  v-model="scope.row.shopId" clearable="true" value-key="id" placeholder="请选择" >
                  <el-select  v-model="scope.row.shopId" clearable value-key="id" placeholder="请选择" >
                    <el-option
                        v-for="item in shops"
                        :key="item.id"
company/src/components/business/OperaShopDescWindow.vue
@@ -38,7 +38,11 @@
                    <div class="info_list_item_label">认证邮箱:</div>
                    <div class="info_list_item_val">{{form.email || '-'}}</div>
                </div>
                <div class="info_list_item">
              <div class="info_list_item">
                <div class="info_list_item_label">法人姓名:</div>
                <div class="info_list_item_val">{{form.legalName || '-'}}</div>
              </div>
<!--                <div class="info_list_item">
                    <div class="info_list_item_label">纳税人识别号:</div>
                    <div class="info_list_item_val">{{form.taxCode || '-'}}</div>
                </div>
@@ -61,7 +65,7 @@
                <div class="info_list_item" style="width: 100%;">
                    <div class="info_list_item_label">纸质发票接收地址:</div>
                    <div class="info_list_item_val">{{form.invoiceAddr || '-'}}</div>
                </div>
                </div>-->
            </div>
            <div class="info_list" v-if="JSON.stringify(form) !== '{}'">
                <div class="info_list_item">
@@ -78,9 +82,9 @@
                    </div>
                </div>
                <div class="info_list_item">
                    <div class="info_list_item_label" style="width: 100px;">法人身份证:</div>
                    <div class="info_list_item_label" style="width: 100px;">法人身份证 :</div>
                    <div class="info_list_item_val">
                        <div class="image" v-if="form.idcardImgList && form.idcardImgList .length>1 && form.idcardImgList[0].fileurlFull">
                        <div class="image" v-if="form.idcardImgList && form.idcardImgList .length>0 && form.idcardImgList[0].fileurlFull">
                          <el-image
                              append-to-body
                              v-if="form.idcardImgList[0].fileurlFull"
@@ -89,7 +93,7 @@
                              :preview-src-list="[form.idcardImgList[0].fileurlFull]">
                          </el-image>
                        </div>
                        <div class="image" v-if="form.idcardImgList && form.idcardImgList .length>2 && form.idcardImgList[1].fileurlFull">
                        <div class="image" v-if="form.idcardImgList && form.idcardImgList .length>1 && form.idcardImgList[1].fileurlFull">
                          <el-image
                              append-to-body
                              v-if="form.idcardImgList[1].fileurlFull"
@@ -261,11 +265,11 @@
            this.form.file.imgurl = res.businessImg.fileurl
            this.form.file.imgurlfull = res.businessImg.fileurlFull
          }
          if (res.idcardImgList&& res.idcardImgList.length>1) {
          if (res.idcardImgList&& res.idcardImgList.length>0) {
            this.form.file1.imgurl = res.idcardImgList[0].fileurl
            this.form.file1.imgurlfull = res.idcardImgList[0].fileurlFull
          }
          if (res.idcardImgList && res.idcardImgList.length>2) {
          if (res.idcardImgList && res.idcardImgList.length>1) {
            this.form.file2.imgurl = res.idcardImgList[1].fileurl
            this.form.file2.imgurlfull = res.idcardImgList[1].fileurlFull
          }
company/src/components/business/OperaShopWindow.vue
@@ -32,7 +32,7 @@
            <el-form-item label="认证邮箱" prop="email" >
                <el-input v-model="form.email" placeholder="请输入" v-trim/>
            </el-form-item>
            <el-form-item label="纳税人识别号" prop="taxCode">
<!--            <el-form-item label="纳税人识别号" prop="taxCode">
                <el-input v-model="form.taxCode" placeholder="请输入" v-trim/>
            </el-form-item>
            <el-form-item label="银行账号" prop="taxAccount">
@@ -49,7 +49,7 @@
            </el-form-item>
            <el-form-item label="纸质发票接收地址" prop="invoiceAddr">
                <el-input v-model="form.invoiceAddr" placeholder="请输入" v-trim/>
            </el-form-item>
            </el-form-item>-->
            <el-form-item label="营业执照" prop="businessImg">
                <div style="width: 100%; height: 100px; display: flex; align-items: center;">
                    <UploadAvatarImage :uploadData="{ folder: 'company' }" :file="form.file" @uploadSuccess="result" />
@@ -107,7 +107,7 @@
          fileurl: '',
          name: ''
        },
        idcardImgList: [],
        idcardImgList: [{},{}],
        signImg: {
          fileurl: '',
          name: ''
@@ -256,12 +256,14 @@
    open (title, target, type) {
      this.title = title
      this.visible = true
      this.form = this.initParam
      this.clearFrom()
      console.log(this.form)
      this.getAll()
      // 新建
      if (target == null) {
        this.$nextTick(() => {
          this.$refs.form.resetFields()
          // this.$refs.form.resetFields()
          this.form[this.configData['field.id']] = null
        })
        return
@@ -273,6 +275,58 @@
        }
      })
    },
    clearFrom(){
      this.form ={
        id: null,
        name: '',
        code: '',
        legalName: '',
        taxCode: '',
        taxAccount: '',
        username: '',
        taxBank: '',
        taxAddr: '',
        invoiceEmail: '',
        invoiceAddr: '',
        phone: '',
        email: '',
        type: 1,
        actionType: 0,
        captche: '',
        businessImg: {
          fileurl: '',
          name: ''
        },
        idcardImgList: [{},{}],
        signImg: {
          fileurl: '',
          name: ''
        },
        solutionList: [
          {
            solution: null,
            canAdd: 0,
            canReduce: 0
          }
        ],
        file: {
          imgurl: '',
          imgurlfull: ''
        },
        file1: {
          imgurl: '',
          imgurlfull: ''
        },
        file2: {
          imgurl: '',
          imgurlfull: ''
        },
        file3: {
          imgurl: '',
          imgurlfull: ''
        }
      }
    },
    // 获取全部方案
    getAll () {
      all({})
company/src/components/business/OperaSolutionsDescWindow.vue
@@ -1,7 +1,7 @@
<template>
    <GlobalWindow
        :title="title"
        width="50%"
        width="70%"
        text="修改"
        :withFooter="userInfo.type !== 1"
        :visible.sync="visible"
@@ -64,6 +64,10 @@
                    <div class="info_list_item_label">接收文件邮箱:</div>
                    <div class="info_list_item_val">{{form.email}}</div>
                </div>
              <div class="info_list_item" style="width: 100%" v-if="form.type==1">
                <div class="info_list_item_label">方案确认书:</div>
                <div class="info_list_item_val" ><a v-if="form.fanganFile && form.fanganFile.fileurlFull" style="cursor: pointer;color: #2E68EC" title="点击查看" @click="openFile(form.fanganFile.fileurlFull)">{{ form.fanganFile.name || '点击查看' }}</a></div>
              </div>
            </div>
            <el-table
                :data="form.worktypeList"
@@ -165,11 +169,13 @@
                    specialAgreement: '',
                    specialInfo: '',
                    ortherInfo: '',
                    fanganFile:null,
                    insuranceName: '',
                    signKeyword: '',
                    worktypeList: [],
                    worktypeIdList: []
              }
                this.$nextTick(() => {
                    for (const key in this.form) {
                        this.form[key] = target[key]
@@ -177,6 +183,11 @@
                    this.getDetails()
                })
            },
          openFile (url) {
            setTimeout(() => {
              window.open(url)
            }, 500)
          },
            getDetails() {
                solutionsId(this.form.id)
                    .then(res => {
company/src/components/business/OperaSolutionsWindow.vue
@@ -80,12 +80,12 @@
                </div>
            </el-form-item>
            <el-form-item label="投保类型" prop="type">
                <el-radio-group v-model="form.type">
                    <el-radio :label="0">直保</el-radio>
                <el-radio-group v-model="form.type" :disabled="form.id!=null">
                    <el-radio :label="0" >直保</el-radio>
                    <el-radio :label="1">委托投保</el-radio>
                </el-radio-group>
            </el-form-item>
          <el-form-item label="委托商户" prop="shopId" v-if="form.type =='1'">
          <el-form-item label="委托商户" prop="shopId" v-if="form.type =='1'" :rules="form.type===1?[{required:true,message:'请选择商户'}]:[{required:false}]">
            <el-select v-model="form.shopId"  placeholder="请选择委托商户">
              <el-option
                  v-for="item in shops"
@@ -95,8 +95,8 @@
              </el-option>
            </el-select>
          </el-form-item>
          <el-form-item label="上传方案确认书:" prop="fanganFile" v-if="form.type =='1'">
            <UploadFile   :uploadData="{ folder: 'apply',fileType:'.pdf' }" :fileList="form.fileList1" @uploadSuccess="editFanganFile" />
          <el-form-item label="上传方案确认书:" prop="fanganFile" v-if="form.type =='1'" :rules="form.type===1?[{required:true,message:'请上传方案确认书'}]:[{required:false}]">
            <UploadFile  @remove="deleFile" :uploadData="{ folder: 'apply',fileType:'.pdf' }" :fileList="form.fileList1" @uploadSuccess="editFanganFile" />
          </el-form-item>
            <el-form-item label="接收文件邮箱" prop="email">
                <el-input v-model="form.email" placeholder="请输入" v-trim/>
@@ -258,6 +258,10 @@
        if (!valid) {
          return
        }
        if(data.type===1 &&  (!data.fanganFile || !data.fanganFile.fileurl)){
          this.$message.error('请上传方案确认书!')
          return;
        }
        // 调用新建接口
        this.isWorking = true
        if (data.id == null || data.id === '') {
@@ -289,13 +293,16 @@
        }
      })
    },
    deleFile(){
      this.form.fanganFile={}
    },
    open (title, target) {
      this.title = title
      this.visible = true
      this.form.maxAge = ''
      this.form.timeUnit = ''
      this.form.insureCycleUnit = ''
      this.form.validTypeNum = ''
      this.visible = true
      this.form.fanganFile=null
      this.form.fileList1= new Array();
      this.form.worktypeIdList = [{ worktypeId: '' }]
@@ -306,6 +313,13 @@
      if (target == null) {
        this.$nextTick(() => {
          this.$refs.form.resetFields()
          this.form.maxAge = ''
          this.form.timeUnit = ''
          this.form.insureCycleUnit = ''
          this.form.validTypeNum = ''
          this.form.fanganFile=null
          this.form.fileList1= new Array();
          this.form.worktypeIdList = [{ worktypeId: '' }]
          this.form[this.configData['field.id']] = null
        })
        return
@@ -338,6 +352,7 @@
        this.typeWork = res
      })
    },
    // 查询全部保险公司
    allCompany () {
      all({ dataType: 2, status: 0 })
company/src/components/business/modification.vue
@@ -7,7 +7,7 @@
        @confirm="confirm"
    >
        <el-button type="primary" style="margin-bottom: 15px;" @click="add">添加</el-button>
        <el-table
        <el-table v-if="form.solutionList && form.solutionList.length>0"
            :data="form.solutionList"
            border
            style="width: 100%">
@@ -38,7 +38,7 @@
              align="center"
              label="委托商户">
            <template slot-scope="scope">
              <el-select  v-model="scope.row.shopId" clearable="true" value-key="id" placeholder="请选择">
              <el-select :ref="'shopSelect'+scope.$index" :disabled="scope.row.solution.type ==1" v-model="scope.row.shopId" clearable value-key="id" placeholder="请选择">
                <el-option
                    v-for="item in shops"
                    :key="item.id"
@@ -52,8 +52,8 @@
                align="center"
                label="加减保功能">
                <template slot-scope="{row}">
                    <el-checkbox :true-label="1" :false-label="0" v-model="row.canAdd">加保</el-checkbox>
                    <el-checkbox :true-label="1" :false-label="0" v-model="row.canReduce">减保</el-checkbox>
                    <el-checkbox :true-label="1" :false-label="0" disabled  v-model="row.canAdd">加保</el-checkbox>
                    <el-checkbox :true-label="1" :false-label="0"  disabled   v-model="row.canReduce">减保</el-checkbox>
                </template>
            </el-table-column>
            <el-table-column
@@ -86,8 +86,9 @@
        id: null,
        solutionList: [
          {
            solution: { id: null, baseId: null },
            solution: { id: null, baseId: null,type:0 },
            canAdd: 0,
            shopId:null,
            canReduce: 0
          }
        ]
@@ -114,8 +115,13 @@
      this.programme.forEach(item => {
        if (item.id === e) {
          baseId = item.baseId
          this.form.solutionList[index].solution.type = item.type
          if(item.type == 1){
            this.form.solutionList[index].shopId =item.shopId
          }
        }
      })
      this.form.solutionList[index].solution.baseId = baseId
    },
    confirm () {
@@ -152,17 +158,18 @@
        this.form[key] = target[key]
      }
      this.getAll()
      this.form.solutionList=[]
      listForCompany({ companyId: target.id })
        .then(resa => {
          that.form.solutionList = resa.map(item => {
            return {
              solution: { id: item.solutionId, baseId: item.solutionBaseId },
          resa.forEach(item => {
            this.form.solutionList.push({
              solution: { id: item.solutionId, baseId: item.solutionBaseId,type:item.solutionType },
              shopId: item.shopId,
              canAdd: item.canAdd,
              canReduce: item.canReduce
            }
              canAdd: 1,
              canReduce: 1
            })
          })
          console.log(that.form.solutionList)
          console.log(this.form.solutionList)
          that.visible = true
        })
    },
@@ -170,8 +177,8 @@
      this.form.solutionList.push({
        solution: { id: null, baseId: null },
        shopId: null,
        canAdd: '',
        canReduce: ''
        canAdd: 1,
        canReduce: 1
      })
    },
    dele (index) {
company/src/components/enterprise/addEmployee.vue
@@ -32,6 +32,7 @@
        components: { GlobalWindow },
        data () {
            return {
                tempIndex : -1,
                list: [
                    {
                        memberName: '',
@@ -48,9 +49,10 @@
            }
        },
        methods: {
            open (title, obj) {
            open (title, obj,tempIndex) {
                this.title = title
                this.visible = true
                this.tempIndex = tempIndex
                this.list = [
                    {
                        memberName: '',
@@ -73,7 +75,8 @@
                    worktypeId: '',
                    duName: '',
                    duId: '',
                    fee: ''
                    fee: '',
                     id:this.tempIndex - 1
                })
            },
            dele(index) {
company/src/components/enterprise/additionSubtractionApplication.vue
@@ -177,417 +177,423 @@
</template>
<script>
    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 importEmployees from '@/components/enterprise/importEmployees'
    import confirmJobType from '@/components/enterprise/confirmJobType'
    import ApplyChangeDetails1 from '@/components/business/ApplyChangeDetails1'
    import { all } from '@/api/business/solutions'
    import { getDetail } from '@/api/business/insuranceApply'
    import { create, getChangeCountCyclePriceVO } from '@/api/business/applyChange'
    import { getDate, compareDates, getTomorrow } from '@/utils/util'
    import { mapState } from 'vuex'
    export default {
        name: 'additionSubtractionApplication',
        extends: BaseOpera,
        components: { GlobalWindow, selectEmployees, addEmployee, importEmployees, confirmJobType, ApplyChangeDetails1 },
        data () {
            return {
                form: {
                    id: null,
                    solutionId: '',
                    solutionsName: '',
                    applyStartTime: '',
                    applyEndTime: '',
                    addDetailList: [],
                    delDetailList: [],
                },
                activeName: '0',
                pickerOptions: {},
                price: '',
                endTime: '',    //     实际保险生效止期
                company: [],
                seleData: [],
                item: null,
                // 验证规则
                rules: {
                    applyStartTime: [
                        { required: true, message: '请选择批单生效起期' }
                    ]
                },
                list: []
            }
        },
        computed: {
            ...mapState(['userInfo'])
        },
        created () {
            this.config({
                api: '/business/insuranceApply',
                'field.id': 'id'
            })
        },
        methods: {
            open (title, target) {
                this.title = title
                this.form.addDetailList = []
                this.form.delDetailList = []
                this.list = []
                this.form.id = null
                this.item = null
                this.form.solutionId = ''
                this.form.solutionsName = ''
                this.form.applyStartTime = ''
                this.form.applyEndTime = ''
                if (target && target.id) {
                    this.$nextTick(() => {
                        this.$refs.form.resetFields()
                        this.form.id = target.id
                        this.getDetails()
                    })
                } else {
                    this.$nextTick(() => {
                        this.$refs.form.resetFields()
                        this.form[this.configData['field.id']] = null
                    })
                }
                this.getCompany()
                this.visible = true
                // this.updatePickerOptions()
            },
            changeApplyStartTime(e) {
                getChangeCountCyclePriceVO({
                    applyId: this.form.id,
                    validTime: e
                }).then(res => {
                    this.price = res.cyclePrice
                    this.form.addDetailList.forEach(item => {
                        item.fee = res.cyclePrice
                    })
                    this.form.delDetailList.forEach(item => {
                        item.fee = res.cyclePrice
                    })
                })
            },
            handleClick(e) {
                this.activeName = e.index
            },
            // 获取投保详情
            getDetails() {
                // findList({ applyId: this.form.id })
                //     .then(res => {
                //         res.forEach(item => {
                //             item.idCard = item.idcardNo
                //             item.fee = ''
                //         })
                //         this.tableData = res
                //     })
                getDetail(this.form.id)
                    .then(res => {
                        this.list.push(res)
                        this.item = res
                        this.endTime = res.endTime
                        this.form.solutionId = res.solutionId
                        this.form.solutionsName = res.solutionsName
                        this.pickerOptions = {
                            disabledDate(time) {
                                // 当前日期大于等于生效日期并且最后一次操作时间等于空
                                if ([1,3].includes(compareDates(getDate(), res.startTime)) && !res.lastChangeDate) {
                                    return time.getTime() > new Date(res.endTime).getTime() || time.getTime() < new Date(getTomorrow()).getTime()
                                // 当前日期小于生效日期并且最后一次操作时间等于空
                                } else if (compareDates(getDate(), res.startTime) === 2 && !res.lastChangeDate) {
                                    return time.getTime() > new Date(res.endTime).getTime() || time.getTime() < new Date(res.startTime).getTime()
                                // 最后一次操作时间有值
                                } else if (res.lastChangeDate) {
                                    // 当前日期大于最后一次操作时间
                                    if ([1,3].includes(compareDates(getDate(), res.lastChangeDate))) {
                                        return time.getTime() > new Date(res.endTime).getTime() || time.getTime() < new Date(getTomorrow()).getTime()
                                    // 当前时间小于最后一次操作时间
                                    } else if (compareDates(getDate(), res.lastChangeDate) === 2) {
                                        return time.getTime() > new Date(res.endTime).getTime() || time.getTime() < new Date(res.lastChangeDate).getTime()
                                    }
                                }
                            }
                        };
                        // this.changeSolution1(res.solutionId)
                    })
            },
            getSummaries(param) {
                const { columns, data } = param
                const sums = []
                columns.forEach((column, index) => {
                    if (index === 0) {
                        sums[index] = '总价'
                        return
                    } else if (index === 7) {
                        let total = 0
                        if (this.activeName === '0') {
                            this.form.addDetailList.forEach(item => {
                                total += item.fee
                            })
                            sums[index] = total
                            return
                        } else {
                            this.form.delDetailList.forEach(item => {
                                total += item.fee
                            })
                            sums[index] = '-' + total
                            return
                        }
                    }
                })
                return sums
            },
            deleItem() {
                if (this.seleData.length === 0) {
                    this.$message.warning('至少选择一项内容')
                    return
                }
                if (this.activeName === '0') {
                    this.seleData.forEach(item => {
                        this.form.addDetailList.forEach((row, index) => {
                            if (item === row.name) {
                                this.form.addDetailList.splice(index, 1)
                            }
                        })
                    })
                } else {
                    this.seleData.forEach(item => {
                        this.form.delDetailList.forEach((row, index) => {
                            if (item === row.name) {
                                this.form.delDetailList.splice(index, 1)
                            }
                        })
                    })
                }
            },
            success() {
                this.form.addDetailList.forEach(item => {
                    item.idcardNo = item.idCard
                })
                this.form.delDetailList.forEach(item => {
                    item.idcardNo = item.idCard
                })
                // let arr = JSON.parse(JSON.stringify(this.form.addDetailList))
                // arr.forEach(item => {
                //     item.idcardNo = item.idCard
                // })
                this.isWorking = true
                create({
                    applyId: this.form.id,
                    addDetailList: this.form.addDetailList,
                    delDetailList: this.form.delDetailList,
                    validTime: this.form.applyStartTime,
                    type: 0
                }).then(() => {
                    this.visible = false
                    this.$tip.apiSuccess('操作成功')
                    this.$emit('success')
                }).catch(e => {
                    this.$tip.apiFailed(e)
                }).finally(() => {
                    this.isWorking = false
                })
            },
            confirm() {
                this.$refs.form.validate((valid) => {
                    if (valid) {
                        // if (this.form.addDetailList.length === 0) {
                        //     this.$message.warning('至少添加一项员工')
                        //     return
                        // }
                        for (let i = 0; i < this.form.addDetailList.length; i++) {
                            if (!this.form.addDetailList[i].worktypeId || !this.form.addDetailList[i].duId) {
                                this.$message.warning('请完善加保派遣单位和工种信息')
                                return
                            }
                        }
                        for (let i = 0; i < this.form.delDetailList.length; i++) {
                            if (!this.form.delDetailList[i].worktypeId || !this.form.delDetailList[i].duId) {
                                this.$message.warning('请完善减保派遣单位和工种信息')
                                return
                            }
                        }
                        this.$refs.ApplyChangeDetails1.open('加减保详单', this.form.addDetailList, this.form.delDetailList, {
                            companyName: this.userInfo.company.name,
                            solutionsName: this.form.solutionsName,
                            code: this.list[0].code,
                            startTime: this.list[0].startTime,
                            endTime: this.list[0].endTime,
                            applyStartTime: this.form.applyStartTime
                        })
                        // return
                        // this.form.addDetailList.forEach(item => {
                        //     item.idcardNo = item.idCard
                        // })
                        // this.form.delDetailList.forEach(item => {
                        //     item.idcardNo = item.idCard
                        // })
                        // // let arr = JSON.parse(JSON.stringify(this.form.addDetailList))
                        // // arr.forEach(item => {
                        // //     item.idcardNo = item.idCard
                        // // })
                        // this.isWorking = true
                        // create({
                        //     applyId: this.form.id,
                        //     addDetailList: this.form.addDetailList,
                        //     delDetailList: this.form.delDetailList,
                        //     validTime: this.form.applyStartTime,
                        //     type: 0
                        // }).then(() => {
                        //     this.visible = false
                        //     this.$tip.apiSuccess('操作成功')
                        //     this.$emit('success')
                        // }).catch(e => {
                        //     this.$tip.apiFailed(e)
                        // }).finally(() => {
                        //     this.isWorking = false
                        // })
                    }
                })
            },
            seleUser() {
                if (!this.form.solutionId) {
                    this.$message.warning('请先选择保险方案')
                    return
                }
                if (!this.form.applyStartTime) {
                    this.$message.warning('请先选择批单生效起期')
                    return
                }
                if (this.activeName === '0') {
                    this.$refs.selectEmployees.open('选取员工', { arr: this.form.addDetailList, price: this.price, notInInsuranceApplyId: this.form.id, validTime: this.form.applyStartTime })
                } else {
                    this.$refs.selectEmployees.open('选取员工', { arr: this.form.delDetailList, price: this.price, insuranceApplyId: this.form.id, validTime: this.form.applyStartTime })
                }
            },
            addUser() {
                if (!this.form.solutionId) {
                    this.$message.warning('请先选择保险方案')
                    return
                }
                if (this.activeName === '0') {
                    this.$refs.addEmployee.open('添加员工', { arr: this.form.addDetailList, price: this.price })
                } else {
                    this.$refs.addEmployee.open('添加员工', { arr: this.form.delDetailList, price: this.price })
                }
            },
            uploadUser() {
                if (!this.form.solutionId) {
                    this.$message.warning('请先选择保险方案')
                    return
                }
                if (this.activeName === '0') {
                    this.$refs.importEmployees.open('上传名单', { arr: this.form.addDetailList, price: this.price })
                } else {
                    this.$refs.importEmployees.open('上传名单', { arr: this.form.delDetailList, price: this.price })
                }
            },
            // 切换方案
            changeSolution1(e) {
                this.company.forEach(item => {
                    console.log(item.id + '-----' + e)
                    if (item.id === e) {
                        console.log(item)
                        this.item = item
                    }
                })
                // this.tableData.forEach(item => {
                //     item.fee = this.price
                // })
            },
            dele(index) {
                if (this.activeName === '0') {
                    this.form.addDetailList.splice(index, 1)
                } else {
                    this.form.delDetailList.splice(index, 1)
                }
            },
            getUser(obj) {
                this.seleData.forEach(item => {
                    if (this.activeName === '0') {
                        this.form.addDetailList.forEach(row => {
                            if (item === row.name) {
                                row.workTypeName = obj.workTypeName
                                row.worktypeId = obj.worktypeId
                                row.duName = obj.duName
                                row.duId = obj.duId
                            }
                        })
                    } else {
                        this.form.delDetailList.forEach(row => {
                            if (item === row.name) {
                                row.workTypeName = obj.workTypeName
                                row.worktypeId = obj.worktypeId
                                row.duName = obj.duName
                                row.duId = obj.duId
                            }
                        })
                    }
                })
                this.seleData = []
                this.$refs.multipleTable.clearSelection();
            },
            // 选择员工
            sele() {
                if (!this.form.solutionId) {
                    this.$message.warning('请选择保险方案')
                    return
                }
                if (this.seleData.length === 0) {
                    this.$message.warning('请选择员工')
                    return
                }
                this.$refs.confirmJobType.open('确认工种', { solutionId: this.item.newVersionSolutionId })
            },
            // 查询全部方案
            getCompany() {
                all({ dataType: 2 })
                    .then(res => {
                        this.company = res
                    })
            },
            getAgeByIdCard(idCard){
                const sexAndAge = {}
                //获取用户身份证号码
                const userCard = idCard
                //如果用户身份证号码为undefined则返回空
                if (!userCard) {
                    return sexAndAge
                }
                // 获取出生日期
                const yearBirth = userCard.substring(6, 10)
                const monthBirth = userCard.substring(10, 12)
                const dayBirth = userCard.substring(12, 14)
                // 获取当前年月日并计算年龄
                const myDate = new Date()
                const monthNow = myDate.getMonth() + 1
                const dayNow = myDate.getDate()
                let age = myDate.getFullYear() - yearBirth
                if (monthNow < monthBirth || (monthNow == monthBirth && dayNow < dayBirth)) {
                    age--
                }
                // 得到年龄
                sexAndAge.age = age
                return sexAndAge.age
            },
            handleSelectionChange (e) {
                this.seleData = e.map(item => item.name)
            },
            getValue(list) {
                if (this.activeName === '0') {
                    this.form.addDetailList.push(...list)
                } else {
                    this.form.delDetailList.push(...list)
                }
            }
        }
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 importEmployees from '@/components/enterprise/importEmployees'
import confirmJobType from '@/components/enterprise/confirmJobType'
import ApplyChangeDetails1 from '@/components/business/ApplyChangeDetails1'
import { all } from '@/api/business/solutions'
import { getDetail } from '@/api/business/insuranceApply'
import { create, getChangeCountCyclePriceVO } from '@/api/business/applyChange'
import { getDate, compareDates, getTomorrow } from '@/utils/util'
import { mapState } from 'vuex'
export default {
  name: 'additionSubtractionApplication',
  extends: BaseOpera,
  components: { GlobalWindow, selectEmployees, addEmployee, importEmployees, confirmJobType, ApplyChangeDetails1 },
  data () {
    return {
      form: {
        id: null,
        solutionId: '',
        solutionsName: '',
        applyStartTime: '',
        applyEndTime: '',
        addDetailList: [],
        delDetailList: []
      },
      tempMemberIndex: -1,
      activeName: '0',
      pickerOptions: {},
      price: '',
      endTime: '', //     实际保险生效止期
      company: [],
      seleData: [],
      item: null,
      // 验证规则
      rules: {
        applyStartTime: [
          { required: true, message: '请选择批单生效起期' }
        ]
      },
      list: []
    }
  },
  computed: {
    ...mapState(['userInfo'])
  },
  created () {
    this.config({
      api: '/business/insuranceApply',
      'field.id': 'id'
    })
  },
  methods: {
    open (title, target) {
      this.title = title
      this.form.addDetailList = []
      this.form.delDetailList = []
      this.list = []
      this.form.id = null
      this.item = null
      this.tempMemberIndex = -1
      this.form.solutionId = ''
      this.form.solutionsName = ''
      this.form.applyStartTime = ''
      this.form.applyEndTime = ''
      if (target && target.id) {
        this.$nextTick(() => {
          this.$refs.form.resetFields()
          this.form.id = target.id
          this.getDetails()
        })
      } else {
        this.$nextTick(() => {
          this.$refs.form.resetFields()
          this.form[this.configData['field.id']] = null
        })
      }
      this.getCompany()
      this.visible = true
      // this.updatePickerOptions()
    },
    changeApplyStartTime (e) {
      getChangeCountCyclePriceVO({
        applyId: this.form.id,
        validTime: e
      }).then(res => {
        this.price = res.cyclePrice
        this.form.addDetailList.forEach(item => {
          item.fee = res.cyclePrice
        })
        this.form.delDetailList.forEach(item => {
          item.fee = res.cyclePrice
        })
      })
    },
    handleClick (e) {
      this.activeName = e.index
    },
    // 获取投保详情
    getDetails () {
      // findList({ applyId: this.form.id })
      //     .then(res => {
      //         res.forEach(item => {
      //             item.idCard = item.idcardNo
      //             item.fee = ''
      //         })
      //         this.tableData = res
      //     })
      getDetail(this.form.id)
        .then(res => {
          this.list.push(res)
          this.item = res
          this.endTime = res.endTime
          this.form.solutionId = res.solutionId
          this.form.solutionsName = res.solutionsName
          this.pickerOptions = {
            disabledDate (time) {
              // 当前日期大于等于生效日期并且最后一次操作时间等于空
              if ([1, 3].includes(compareDates(getDate(), res.startTime)) && !res.lastChangeDate) {
                return time.getTime() > new Date(res.endTime).getTime() || time.getTime() < new Date(getTomorrow()).getTime()
                // 当前日期小于生效日期并且最后一次操作时间等于空
              } else if (compareDates(getDate(), res.startTime) === 2 && !res.lastChangeDate) {
                return time.getTime() > new Date(res.endTime).getTime() || time.getTime() < new Date(res.startTime).getTime()
                // 最后一次操作时间有值
              } else if (res.lastChangeDate) {
                // 当前日期大于最后一次操作时间
                if ([1, 3].includes(compareDates(getDate(), res.lastChangeDate))) {
                  return time.getTime() > new Date(res.endTime).getTime() || time.getTime() < new Date(getTomorrow()).getTime()
                  // 当前时间小于最后一次操作时间
                } else if (compareDates(getDate(), res.lastChangeDate) === 2) {
                  return time.getTime() > new Date(res.endTime).getTime() || time.getTime() < new Date(res.lastChangeDate).getTime()
                }
              }
            }
          }
          // this.changeSolution1(res.solutionId)
        })
    },
    getSummaries (param) {
      const { columns, data } = param
      const sums = []
      columns.forEach((column, index) => {
        if (index === 0) {
          sums[index] = '总价'
        } else if (index === 7) {
          let total = 0
          if (this.activeName === '0') {
            this.form.addDetailList.forEach(item => {
              total += item.fee
            })
            sums[index] = total
          } else {
            this.form.delDetailList.forEach(item => {
              total += item.fee
            })
            sums[index] = '-' + total
          }
        }
      })
      return sums
    },
    deleItem () {
      if (this.seleData.length === 0) {
        this.$message.warning('至少选择一项内容')
        return
      }
      if (this.activeName === '0') {
        this.seleData.forEach(item => {
          this.form.addDetailList.forEach((row, index) => {
            if (item === row.idCard) {
              this.form.addDetailList.splice(index, 1)
            }
          })
        })
      } else {
        this.seleData.forEach(item => {
          this.form.delDetailList.forEach((row, index) => {
            if (item === row.idCard) {
              this.form.delDetailList.splice(index, 1)
            }
          })
        })
      }
    },
    success () {
      this.form.addDetailList.forEach(item => {
        item.idcardNo = item.idCard
      })
      this.form.delDetailList.forEach(item => {
        item.idcardNo = item.idCard
      })
      // let arr = JSON.parse(JSON.stringify(this.form.addDetailList))
      // arr.forEach(item => {
      //     item.idcardNo = item.idCard
      // })
      this.isWorking = true
      create({
        applyId: this.form.id,
        addDetailList: this.form.addDetailList,
        delDetailList: this.form.delDetailList,
        validTime: this.form.applyStartTime,
        type: 0
      }).then(() => {
        this.visible = false
        this.$tip.apiSuccess('操作成功')
        this.$emit('success')
      }).catch(e => {
        this.$tip.apiFailed(e)
      }).finally(() => {
        this.isWorking = false
      })
    },
    confirm () {
      this.$refs.form.validate((valid) => {
        if (valid) {
          // if (this.form.addDetailList.length === 0) {
          //     this.$message.warning('至少添加一项员工')
          //     return
          // }
          for (let i = 0; i < this.form.addDetailList.length; i++) {
            if (!this.form.addDetailList[i].worktypeId || !this.form.addDetailList[i].duId) {
              this.$message.warning('请完善加保派遣单位和工种信息')
              return
            }
          }
          for (let i = 0; i < this.form.delDetailList.length; i++) {
            if (!this.form.delDetailList[i].worktypeId || !this.form.delDetailList[i].duId) {
              this.$message.warning('请完善减保派遣单位和工种信息')
              return
            }
          }
          this.$refs.ApplyChangeDetails1.open('加减保详单', this.form.addDetailList, this.form.delDetailList, {
            companyName: this.userInfo.company.name,
            solutionsName: this.form.solutionsName,
            code: this.list[0].code,
            startTime: this.list[0].startTime,
            endTime: this.list[0].endTime,
            applyStartTime: this.form.applyStartTime
          })
          // return
          // this.form.addDetailList.forEach(item => {
          //     item.idcardNo = item.idCard
          // })
          // this.form.delDetailList.forEach(item => {
          //     item.idcardNo = item.idCard
          // })
          // // let arr = JSON.parse(JSON.stringify(this.form.addDetailList))
          // // arr.forEach(item => {
          // //     item.idcardNo = item.idCard
          // // })
          // this.isWorking = true
          // create({
          //     applyId: this.form.id,
          //     addDetailList: this.form.addDetailList,
          //     delDetailList: this.form.delDetailList,
          //     validTime: this.form.applyStartTime,
          //     type: 0
          // }).then(() => {
          //     this.visible = false
          //     this.$tip.apiSuccess('操作成功')
          //     this.$emit('success')
          // }).catch(e => {
          //     this.$tip.apiFailed(e)
          // }).finally(() => {
          //     this.isWorking = false
          // })
        }
      })
    },
    seleUser () {
      if (!this.form.solutionId) {
        this.$message.warning('请先选择保险方案')
        return
      }
      if (!this.form.applyStartTime) {
        this.$message.warning('请先选择批单生效起期')
        return
      }
      if (this.activeName === '0') {
        this.$refs.selectEmployees.open('选取员工', { arr: this.form.addDetailList, price: this.price, notInInsuranceApplyId: this.form.id, validTime: this.form.applyStartTime })
      } else {
        this.$refs.selectEmployees.open('选取员工', { arr: this.form.delDetailList, price: this.price, insuranceApplyId: this.form.id, validTime: this.form.applyStartTime })
      }
    },
    addUser () {
      if (!this.form.solutionId) {
        this.$message.warning('请先选择保险方案')
        return
      }
      if (this.activeName === '0') {
        this.$refs.addEmployee.open('添加员工', { arr: this.form.addDetailList, price: this.price })
      } else {
        this.$refs.addEmployee.open('添加员工', { arr: this.form.delDetailList, price: this.price })
      }
    },
    uploadUser () {
      if (!this.form.solutionId) {
        this.$message.warning('请先选择保险方案')
        return
      }
      if (this.activeName === '0') {
        this.$refs.importEmployees.open('上传名单', { arr: this.form.addDetailList, price: this.price, solutionId: this.form.solutionId })
      } else {
        this.$refs.importEmployees.open('上传名单', { arr: this.form.delDetailList, price: this.price, solutionId: this.form.solutionId })
      }
    },
    // 切换方案
    changeSolution1 (e) {
      this.company.forEach(item => {
        console.log(item.id + '-----' + e)
        if (item.id === e) {
          console.log(item)
          this.item = item
        }
      })
      // this.tableData.forEach(item => {
      //     item.fee = this.price
      // })
    },
    dele (index) {
      if (this.activeName === '0') {
        this.form.addDetailList.splice(index, 1)
      } else {
        this.form.delDetailList.splice(index, 1)
      }
    },
    getUser (obj) {
      console.log(this.seleData)
      this.seleData.forEach(item => {
        if (this.activeName === '0') {
          this.form.addDetailList.forEach(row => {
            if (item === row.idCard) {
              row.workTypeName = obj.workTypeName
              row.worktypeId = obj.worktypeId
              row.duName = obj.duName
              row.duId = obj.duId
            }
          })
        } else {
          this.form.delDetailList.forEach(row => {
            if (item === row.idCard) {
              row.workTypeName = obj.workTypeName
              row.worktypeId = obj.worktypeId
              row.duName = obj.duName
              row.duId = obj.duId
            }
          })
        }
      })
      this.seleData = []
      this.$refs.multipleTable.clearSelection()
    },
    // 选择员工
    sele () {
      if (!this.form.solutionId) {
        this.$message.warning('请选择保险方案')
        return
      }
      if (this.seleData.length === 0) {
        this.$message.warning('请选择员工')
        return
      }
      this.$refs.confirmJobType.open('确认工种', { solutionId: this.item.newVersionSolutionId })
    },
    // 查询全部方案
    getCompany () {
      all({ dataType: 2 })
        .then(res => {
          this.company = res
        })
    },
    getAgeByIdCard (idCard) {
      const sexAndAge = {}
      // 获取用户身份证号码
      const userCard = idCard
      // 如果用户身份证号码为undefined则返回空
      if (!userCard) {
        return sexAndAge
      }
      // 获取出生日期
      const yearBirth = userCard.substring(6, 10)
      const monthBirth = userCard.substring(10, 12)
      const dayBirth = userCard.substring(12, 14)
      // 获取当前年月日并计算年龄
      const myDate = new Date()
      const monthNow = myDate.getMonth() + 1
      const dayNow = myDate.getDate()
      let age = myDate.getFullYear() - yearBirth
      if (monthNow < monthBirth || (monthNow == monthBirth && dayNow < dayBirth)) {
        age--
      }
      // 得到年龄
      sexAndAge.age = age
      return sexAndAge.age
    },
    handleSelectionChange (e) {
      this.seleData = e.map(item => item.idCard)
    },
    getValue (list) {
      list.forEach(item => {
        const temIndex = this.tempMemberIndex
        item.id = temIndex
        item.name = item.memberName
        this.tempMemberIndex = this.tempMemberIndex - 1
      })
      if (this.activeName === '0') {
        this.form.addDetailList.push(...list)
      } else {
        this.form.delDetailList.push(...list)
      }
    }
  }
}
</script>
<style lang="scss" scoped>
company/src/views/business/applyChange.vue
@@ -142,7 +142,7 @@
  },
  methods: {
    loadSelectList() {
      solutionAll({dataType:2}).then(res => {
      solutionAll({dataType:2,type:0}).then(res => {
        this.solutionList = res
      }).catch(err => {
      })
company/src/views/business/applyChangeShop.vue
@@ -8,7 +8,7 @@
          <el-option label="待签署" value="0"></el-option>
          <el-option label="待审核" value="1"></el-option>
          <el-option label="已生效" value="2"></el-option>
          <el-option label="申请退回" value="3"></el-option>
<!--          <el-option label="申请退回" value="3"></el-option>-->
          <el-option label="已退回" value="5"></el-option>
          <el-option label="已关闭" value="6"></el-option>
          <el-option label="待出单" value="7"></el-option>
company/src/views/business/insuranceApply.vue
@@ -62,7 +62,7 @@
                        <span>{{scope.$index + 1}}</span>
                    </template>
                </el-table-column>
                <el-table-column prop="statusInfo" label="投保状态" min-width="100px">
                <el-table-column prop="statusInfo" label="保单状态" min-width="100px">
                  <template slot-scope="{row}">
                    <span :class="'apply-status'+row.status" >{{row.statusInfo}}</span>
                  </template>
@@ -154,7 +154,7 @@
        //   this.search()
        // },
        loadSelectList() {
          solutionAll({dataType:2}).then(res => {
          solutionAll({dataType:2,type:0}).then(res => {
              this.solutionList = res
            }).catch(err => {
            })
company/src/views/business/insuranceApplyShop.vue
@@ -61,7 +61,7 @@
                        <span>{{scope.$index + 1}}</span>
                    </template>
                </el-table-column>
                <el-table-column prop="statusInfo" label="投保状态" min-width="100px">
                <el-table-column prop="statusInfo" label="保单状态" min-width="100px">
                  <template slot-scope="{row}">
                    <span :class="'apply-status'+row.statusCollect" >{{row.statusInfo}}</span>
                  </template>
company/src/views/business/policyList.vue
@@ -65,7 +65,7 @@
            <span>{{scope.$index + 1}}</span>
          </template>
        </el-table-column>
        <el-table-column prop="statusInfo" label="投保状态" align="center" min-width="100px">
        <el-table-column prop="statusInfo" label="保单状态" align="center" min-width="100px">
          <template slot-scope="{row}">
            <span :class="'apply-status'+row.status" >{{row.statusInfo}}</span>
          </template>
@@ -144,7 +144,7 @@
    //   this.search()
    // },
    loadSelectList() {
      solutionAll({dataType:2}).then(res => {
      solutionAll({dataType:2,type:0}).then(res => {
        this.solutionList = res
      }).catch(err => {
      })
company/src/views/business/switchCourt.vue
@@ -140,7 +140,7 @@
  },
  methods: {
    loadSelectList() {
      solutionAll({dataType:2}).then(res => {
      solutionAll({dataType:2,type:0}).then(res => {
        this.solutionList = res
      }).catch(err => {
      })
company/src/views/business/switchCourtShop.vue
@@ -8,7 +8,7 @@
          <el-option label="待签署" value="0"></el-option>
          <el-option label="待审核" value="1"></el-option>
          <el-option label="已生效" value="2"></el-option>
          <el-option label="申请退回" value="3"></el-option>
<!--          <el-option label="申请退回" value="3"></el-option>-->
          <el-option label="待出单" value="7"></el-option>
          <el-option label="投保中" value="9"></el-option>
          <!--                    3 4 都是退回申请中-->
company/src/views/business/unionChange.vue
@@ -31,7 +31,7 @@
        </el-form>
        <!-- 表格和分页 -->
        <template v-slot:table-wrap>
            <ul class="toolbar" v-permissions="['business:unionchange:create']">
            <ul class="toolbar"  v-if="userInfo.type==2" v-permissions="['business:unionchange:create']">
                <li><el-button type="primary" @click="$refs.OpearaUnionChange.open('加减保申请')" v-permissions="['business:unionchange:create']">提交申请</el-button></li>
            </ul>
            <el-table
company/src/views/business/unionChangeUnit.vue
@@ -31,7 +31,7 @@
    </el-form>
    <!-- 表格和分页 -->
    <template v-slot:table-wrap>
      <ul class="toolbar" v-permissions="['business:unionchange:create']">
      <ul class="toolbar"  v-if="userInfo.type==2" v-permissions="['business:unionchange:create']">
        <li><el-button type="primary" @click="$refs.OpearaUnionChangeUnit.open('更换派遣单位申请')" v-permissions="['business:unionchange:create']">提交申请</el-button></li>
      </ul>
      <el-table
company/src/views/enterprise/insuranceApply.vue
@@ -12,7 +12,7 @@
                    <el-option label="已退回" value="4"></el-option>
                    <el-option label="退回申请中" value="5"></el-option>
                    <el-option label="已关闭" value="6"></el-option>
                    <el-option label="投保中" value="25"></el-option>
                    <el-option label="投保中" value="26"></el-option>
                </el-select>
            </el-form-item>
            <el-form-item label="保险方案" prop="baseSolutionId">
company/src/views/index.vue
@@ -31,7 +31,7 @@
          </el-tab-pane>
        </el-tabs>
        <div v-if="activeName === '0'"  v-permissions="['business:notice:insurance']" >
          <div class="home_content_right_list">
          <div class="home_content_right_list" v-if="tableData0 && tableData0.length">
            <div class="list_item" v-for="(item, index) in tableData0" :key="index">
              <div class="list_item_left">
                <span>{{item.title}}({{ item.typeDetail }})</span>
@@ -46,6 +46,11 @@
              </div>
            </div>
          </div>
          <div class="home_content_right_list" v-else>
            <div class="list_item" style="width: 100%;font-size: 12px;display:block;color: #8c939d;text-align: center; padding: 20px">
              暂无消息
            </div>
          </div>
          <div class="home_content_right_page">
            <el-pagination
                @current-change="handleCurrentChange0"
@@ -57,7 +62,7 @@
          </div>
        </div>
        <div v-if="activeName === '1'"  v-permissions="['business:notice:tax']">
          <div class="home_content_right_list">
          <div class="home_content_right_list" v-if="tableData1 && tableData1.length">
            <div class="list_item" v-for="(item, index) in tableData1" :key="index">
              <div class="list_item_left">
                <span>{{item.title}}({{ item.typeDetail }})</span>
@@ -72,6 +77,11 @@
              </div>
            </div>
          </div>
          <div class="home_content_right_list" v-else>
            <div class="list_item" style="width: 100%;font-size: 12px;display:block;color: #8c939d;text-align: center; padding: 20px">
              暂无消息
            </div>
          </div>
          <div class="home_content_right_page">
            <el-pagination
                @current-change="handleCurrentChange1"
@@ -83,7 +93,7 @@
          </div>
        </div>
        <div v-if="activeName === '2'"  v-permissions="['business:notice:settle']">
          <div class="home_content_right_list">
          <div class="home_content_right_list" v-if="tableData2 && tableData2.length">
            <div class="list_item" v-for="(item, index) in tableData2" :key="index">
              <div class="list_item_left">
                <span>{{item.title}}({{ item.typeDetail }})</span>
@@ -98,6 +108,11 @@
              </div>
            </div>
          </div>
          <div class="home_content_right_list" v-else>
            <div class="list_item" style="width: 100%;font-size: 12px;display:block;color: #8c939d;text-align: center; padding: 20px">
              暂无消息
            </div>
          </div>
          <div class="home_content_right_page">
            <el-pagination
                @current-change="handleCurrentChange2"
company/src/views/indexShop.vue
@@ -25,7 +25,7 @@
          </el-tab-pane>
        </el-tabs>
        <div v-if="activeName === '0'"   >
          <div class="home_content_right_list">
          <div class="home_content_right_list" v-if="tableData0&&tableData0.length">
            <div class="list_item" v-for="(item, index) in tableData0" :key="index">
              <div class="list_item_left">
                <span>{{item.title}}({{ item.typeDetail }})</span>
@@ -40,6 +40,11 @@
              </div>
            </div>
          </div>
          <div class="home_content_right_list" v-else>
            <div class="list_item" style="width: 100%;font-size: 12px;display:block;color: #8c939d;text-align: center; padding: 20px">
              暂无消息
            </div>
          </div>
          <div class="home_content_right_page">
            <el-pagination
                @current-change="handleCurrentChange0"
@@ -51,8 +56,8 @@
          </div>
        </div>
        <div v-if="activeName === '1'"  >
          <div class="home_content_right_list">
            <div class="list_item" v-for="(item, index) in tableData1" :key="index">
          <div class="home_content_right_list" v-if="tableData1&&tableData1.length">
            <div class="list_item"  v-for="(item, index) in tableData1" :key="index">
              <div class="list_item_left">
                <span>{{item.title}}({{ item.typeDetail }})</span>
                <span>{{item.info}}({{item.content}})</span>
@@ -64,6 +69,11 @@
              <div class="list_item_right">
                <span @click="detail(item)">查看</span>
              </div>
            </div>
          </div>
          <div class="home_content_right_list" v-else>
            <div class="list_item" style="width: 100%;font-size: 12px;display:block;color: #8c939d;text-align: center; padding: 20px">
              暂无消息
            </div>
          </div>
          <div class="home_content_right_page">
@@ -79,8 +89,7 @@
      </div>
    </div>
    <OperaInsuranceApplyWindow ref="operaInsuranceApplyWindow" @success="handleCurrentChange0()"/>
    <dispatchUnitDetailsPlat ref="dispatchUnitDetailsPlat" @success="handleCurrentChange0()"/>
    <OperaSettleClaimsWindow ref="operaSettleClaimsWindow" @success="handleCurrentChange2()"/>
    <OperaWtbApplyShopWindow ref="OperaWtbApplyShopWindow" @success="handleCurrentChange0()"/>
    <OperaApplyChangeUnitDetailWindow ref="operaApplyChangeUnitDetailWindow" @success="handleCurrentChange0()"/>
    <OperaApplyChangeDetailWindow ref="operaApplyChangeDetailWindow" @success="handleCurrentChange0()"/>
    <OperaTaxesWindow ref="OperaTaxesWindow" @success="handleCurrentChange1()"/>
@@ -91,20 +100,16 @@
import * as echarts from 'echarts'
import { mapState } from 'vuex'
import OperaInsuranceApplyWindow from '@/components/business/OperaInsuranceApplyWindow'
import dispatchUnitDetailsPlat from '@/components/business/dispatchUnitDetailsPlat'
import OperaWtbApplyShopWindow from '@/components/business/OperaWtbApplyShopWindow'
import OperaApplyChangeUnitDetailWindow from '@/components/business/OperaApplyChangeUnitDetailWindow'
import OperaSettleClaimsWindow from '@/components/business/OperaSettleClaimsWindow'
import OperaApplyChangeDetailWindow from '@/components/business/OperaApplyChangeDetailWindow'
import OperaTaxesWindow from '@/components/business/OperaTaxesWindow'
import { fetchList as noticeList, deleById } from '@/api/business/notices'
import { fetchList as noticeList } from '@/api/business/notices'
export default {
  components: {
    OperaInsuranceApplyWindow,
    dispatchUnitDetailsPlat,
    OperaTaxesWindow,
    OperaSettleClaimsWindow,
    OperaApplyChangeDetailWindow,
    OperaApplyChangeUnitDetailWindow
    OperaApplyChangeUnitDetailWindow,
    OperaWtbApplyShopWindow
  },
  name: 'Index',
  data () {
@@ -168,7 +173,7 @@
    detail (obj) {
      if(obj && obj.type === 7){
        if (obj.objType === 0) {
          this.$refs.operaInsuranceApplyWindow.open('投保申请详情', { id: obj.objId })
          this.$refs.OperaWtbApplyShopWindow.open('投保申请详情', { id: obj.objId })
        } else if (obj.objType === 1) {
          this.$refs.operaApplyChangeDetailWindow.open('加减保详情', { id: obj.objId, applyId: obj.param1 })
        } else if (obj.objType === 2) {
@@ -206,16 +211,13 @@
        sorts: []
      })
        .then(response => {
          if (type === 0) {
          if (type === 3) {
            this.tableData0 = response.records
            this.totalPage0 = response.total
          }
          if (type === 1) {
          if (type === 4) {
            this.tableData1 = response.records
            this.totalPage1 = response.total
          } if (type === 2) {
            this.tableData2 = response.records
            this.totalPage2 = response.total
          }
        })
        .catch(e => {
server/service/src/main/java/com/doumee/dao/business/model/CompanySolution.java
@@ -79,6 +79,10 @@
    @ApiModelProperty(value = "方案名称" )
    @TableField(exist = false)
    private String solutionName  ;
    @ApiModelProperty(value = "类型 0直保 1委托投保", example = "1")
    @TableField(exist = false)
    private Integer solutionType;
    @ApiModelProperty(value = "委托商户名称" )
    @TableField(exist = false)
    private String shopName  ;
server/service/src/main/java/com/doumee/service/business/impl/CompanySolutionServiceImpl.java
@@ -88,6 +88,7 @@
    public List<CompanySolution> findListForCompany(CompanySolution companySolution) {
        MPJLambdaWrapper<CompanySolution> csWrapper = new MPJLambdaWrapper<>();
        csWrapper.selectAll(CompanySolution.class);
        csWrapper.selectAs(Solutions::getType,CompanySolution::getSolutionType);
        csWrapper.selectAs(Solutions::getName,CompanySolution::getSolutionName);
        csWrapper.selectAs(Company::getName,CompanySolution::getShopName);
        csWrapper.leftJoin(Solutions.class,Solutions::getId,CompanySolution::getSolutionBaseId);
server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java
@@ -1899,9 +1899,14 @@
        queryWrapper.eq(pageWrap.getModel().getBaseSolutionId()!=null,Solutions::getBaseId,pageWrap.getModel().getBaseSolutionId());
        queryWrapper.in(statusList.size()>0,InsuranceApply::getStatus,statusList);
        queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getSolutionName()),Solutions::getName,pageWrap.getModel().getSolutionName());
        if(Constants.equalsInteger(pageWrap.getModel().getStatusCollect(),Constants.THREE) ){
        if(Constants.equalsInteger(pageWrap.getModel().getStatusCollect(),Constants.ApplyCollectStatus.YGQ.getKey()) ){
            //如果是已過期
            queryWrapper.eq(InsuranceApply::getStatus,Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey());
            queryWrapper.lt(InsuranceApply::getEndTime, Utils.Date.getStart(new Date()));
        }else if(Constants.equalsInteger(pageWrap.getModel().getStatusCollect(),Constants.ApplyCollectStatus.BZZ.getKey()) ){
            //如果是保障中
            queryWrapper.eq(InsuranceApply::getStatus,Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey());
            queryWrapper.gt(InsuranceApply::getEndTime, Utils.Date.getStart(new Date()));
        }
        LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
server/service/src/main/java/com/doumee/service/business/impl/SolutionsServiceImpl.java
@@ -156,7 +156,7 @@
//                ||Constants.formatIntegerNum(solutions.getPriceCycleUnit()) < 0
                ||Constants.formatIntegerNum(solutions.getInsureCycle()) < 0
                ||Constants.formatIntegerNum(solutions.getInsureCycleUnit()) < 0
                || solutions.getMinAge() >solutions.getMaxAge()
                ||Constants.formatIntegerNum( solutions.getMinAge()) >Constants.formatIntegerNum(solutions.getMaxAge())
                || Constants.formatBigdecimal(solutions.getPrice()).compareTo(new BigDecimal(0)) !=1
        ){
            throw new BusinessException(ResponseStatus.BAD_REQUEST);
@@ -194,6 +194,7 @@
        }
        //数据有效性校验
        initCreateParam(solutions);
        solutions.setType(null);//不支持修改投保方案
        if(solutionsMapper.selectCount(new QueryWrapper<Solutions>().lambda()
                .eq(Solutions::getName,solutions.getName())
                .eq(Solutions::getIsdeleted,Constants.ZERO)
@@ -213,7 +214,6 @@
                .eq(Solutions::getDataType,Constants.TWO)
                .last("limit 1")
        );
        if(Objects.isNull(oldVersion)){
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"未查询到历史版本数据");