nidapeng
2024-04-01 ac3587fec379a08d94d30b0a13e67e10612b3b06
提交一把
已修改8个文件
250 ■■■■ 文件已修改
company/src/assets/style/style.scss 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/business/OpearaUnionApply.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/business/OperaWtbApplyShopWindow.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/business/detailsEntrustedInsurance.vue 217 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/views/business/unionApply.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/core/utils/Constants.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/dao/business/model/UnionApply.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/impl/UnionApplyServiceImpl.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/assets/style/style.scss
@@ -77,7 +77,8 @@
::v-deep .el-table__cell {
  height: 100% !important;
}
.apply-status0, .apply-status26,.apply-status20,.apply-status21,.apply-status22,
.apply-status0, .apply-status26,.apply-status20,.apply-status28,
.apply-status21,.apply-status22,
.apply-status23,.apply-status2 , .apply-status3, .apply-status10,
.change-status0,.change-status1,.change-status2,
.settle-status0,.settle-status2,.settle-status3,
company/src/components/business/OpearaUnionApply.vue
@@ -113,7 +113,7 @@
import selectApplicationForm from '@/components/business/selectApplicationForm'
import employeeList from '@/components/business/employeeList'
import { all } from '@/api/business/solutions'
import { closeWtbForShop, fetchList } from '@/api/business/insuranceApply'
import { fetchList } from '@/api/business/insuranceApply'
import { merge } from '@/api/business/unionApply'
export default {
  name: 'factoryChange',
company/src/components/business/OperaWtbApplyShopWindow.vue
@@ -18,7 +18,8 @@
                </div>
                <div class="desc_item_label">
                    <div class="desc_item_label_left">
                        <span>投保企业:{{ model.companyName }}</span>
                        <span>投保人:{{ model.shopName }}</span>
                        <span>被保险人:{{ model.companyName }}</span>
                      <span>保单状态:<span  :class="'apply-status'+model.status" >{{ model.statusInfo }}</span></span>
                        <span>提交时间:{{ model.createDate }}</span>
                    </div>
company/src/components/business/detailsEntrustedInsurance.vue
@@ -8,41 +8,37 @@
    >
        <div class="desc">
            <div class="desc_item">
                <div class="desc_item_label" v-if="userInfo.type === 1 &&(model.statusCollect === 2 || model.statusCollect === 3)">
                    <div class="desc_item_label_left">
                        <span>保险到期还有 <b style="color: #F95601;">{{model.loseEfficacyDays ? model.loseEfficacyDays : '-'}}</b> 天</span>
                        <el-button type="primary" v-if="model.statusCollect === 2 || model.statusCollect === 3" @click="$refs.OperaInsuranceApply.open('续保', { id: dataId, type: 1 })">一键续保</el-button>
                        <el-button type="primary" v-if="model.statusCollect === 2" @click="$refs.additionSubtractionApplication.open('加减保申请', { id: dataId })">加减保申请</el-button>
                        <el-button type="primary" v-if="model.statusCollect === 2" @click="$refs.factoryChange.open('更换派遣单位申请', { id: dataId })">更换派遣单位申请</el-button>
                    </div>
                </div>
                <div class="desc_item_label">
                    <div class="desc_item_label_left">
                        <span>投保企业:{{ model.companyName }}</span>
            <span>投保人:{{ model.companyName }}</span>
                        <span>保单状态:<span  :class="'apply-status'+model.status" >{{ model.statusInfo }}</span></span>
                        <span>提交时间:{{ model.createDate }}</span>
                    </div>
                    <div class="desc_item_label_right">
                        <template v-if="userInfo.type === 1">
                            <el-button v-if="[0, 2, 3, 10].includes(model.status)" type="danger" @click="$refs.applyReturn.open('申请退回', {id: dataId})">申请退回</el-button>
                            <el-button v-if="model.status == 4" type="primary" @click="$refs.OperaInsuranceApply.open('投保申请', {id: dataId})">再次投保</el-button>
                            <el-button v-if="model.status == 4" type="primary" @click="closeOrder">关闭订单</el-button>
                            <el-button type="primary" @click="$refs.InsuranceDetails.open('投保详情单',model,0)">导出详单</el-button>
                            <el-button v-if="[2, 3, 5, 7, 8].includes(model.status)" type="primary" @click="viewToubaodan">查看投保单</el-button>
                            <el-button v-if="model.status == 5" type="primary" @click="viewBaoxiandan">查看保险单</el-button>
              <el-button v-if="model.status == 24" type="primary" @click="$refs.OperaInsuranceApply.open('投保申请', {id: dataId})">再次投保</el-button>
              <el-button v-if="model.status == 24" type="primary" @click="closeOrder">关闭订单</el-button>
              <el-button v-if="[21,22,23,24,25,26,27].includes(model.status)" type="primary" @click="viewFanganshu">查看确认书</el-button>
              <el-button v-if="[22,23,24,25,26,27].includes(model.status)" type="primary" @click="viewShenqingdan">查看申请单</el-button>
              <el-button v-if="[1,2,3].includes(model.unionApplyTbdStatus)" type="primary" @click="viewToubaodan">查看投保单</el-button>
              <el-button v-if="[3].includes(model.unionApplyTbdStatus) " type="primary" @click="viewBaoxiandan">查看保险单</el-button>
                            <!--                          goSign-->
                            <el-button v-if="model.status == 2" type="primary" @click="$refs.operaverifyPhoneNumberWindew.open('验证手机号')">签署投保单</el-button>
              <el-button v-if="model.status == 20" type="primary" @click="getSignLink(0)">签署方案确认书</el-button>
              <el-button v-if="model.status == 21" type="primary" @click="getSignLink(1)">签署申请单</el-button>
              <el-button v-if="model.unionApplyTbdStatus == 1" type="primary" @click="getSignLink(2)">签署投保单</el-button>
                        </template>
                        <template v-else>
                            <el-button type="primary" @click="$refs.InsuranceDetails.open('投保详情单',model,0)">导出详单</el-button>
                            <el-button v-if="[2, 3, 5, 7, 8].includes(model.status)" type="primary" @click="viewToubaodan">查看投保单</el-button>
                            <el-button v-if="model.status == 5" type="primary" @click="viewBaoxiandan">查看保险单</el-button>
                            <el-button v-if="[2,10].includes(model.status) && model.solutionType ==0" type="primary" @click="$refs.OperaInsuranceApplyCheckWindow.open('上传投保单',model,2)">上传投保单</el-button>
                            <el-button v-if="model.status == 3 && model.solutionType ==0" type="primary" @click="$refs.OperaInsuranceApplyCheckWindow.open('上传保险单',model,3)">上传保险单</el-button>
                            <el-button  v-if="[6,7,8,11].includes(model.status) && model.solutionType ==0" type="primary" @click="$refs.OperaInsuranceApplyCheckWindow.open('驳回退回申请',model,5)">驳回退回申请</el-button>
                            <el-button v-if="model.status == 0 && model.solutionType ==0" type="primary" @click="$refs.InsuranceDetails.open('投保审核',model,1)">投保审核</el-button>
                            <el-button v-if="![1,4,,5].includes(model.status) && model.solutionType ==0" type="danger" @click="$refs.OperaInsuranceApplyCheckWindow.open('退回投保',model,1)">退回投保</el-button>
                            <el-button v-if="model.status == 5  && model.solutionType ==0" type="danger" @click="$refs.OperaInsuranceApplyCheckWindow.open('修改保险单',model,4)">修改保险单</el-button>
            <template v-if="userInfo.type === 2">
              <el-button v-if="[21,22,23,24,25,26,27].includes(model.status)" type="primary" @click="viewFanganshu">查看确认书</el-button>
              <el-button v-if="[22,23,24,25,26,27].includes(model.status)" type="primary" @click="viewShenqingdan">查看申请单</el-button>
              <el-button v-if="model.status == 22" type="primary" @click="$refs.InsuranceDetails.open('投保审核',model,1)">投保审核</el-button>
              <el-button v-if="[20,21,22].includes(model.status)" type="danger" @click="$refs.OperaWtbApplyCheckWindow.open('退回投保',model,1)">退回申请</el-button>
              <el-button v-if="model.status == 23" type="danger" @click="$refs.OperaWtbApplyCheckWindow.open('关闭申请',model,2)">关闭申请</el-button>
            </template>
            <template v-if="userInfo.type === 0">
              <el-button v-if="[27].includes(model.status)" type="primary" @click="viewFanganshu">查看确认书</el-button>
              <el-button v-if="[27].includes(model.status)" type="primary" @click="viewShenqingdan">查看申请单</el-button>
              <el-button v-if="[27].includes(model.status)" type="primary" @click="viewToubaodan">查看投保单</el-button>
              <el-button v-if="[27].includes(model.status)" type="primary" @click="viewBaoxiandan">查看保险单</el-button>
                        </template>
                    </div>
                </div>
@@ -57,7 +53,7 @@
                                label="保单号">
                        </el-table-column>
                        <el-table-column
                                prop="solutionsName"
                prop="solutionName"
                                label="保险方案"
                                align="center"
                                width="180">
@@ -399,7 +395,7 @@
                            </span>
                        </span>
                                <span style="margin-top: 5px; font-size: 12px; font-weight: 400; color: #999999;">
                            操作员-{{activity.creatorName}}({{activity.creatorType == 1 ? activity.companyName: "平台端"}}){{activity.createDate}}
                            操作员-{{activity.creatorName}}({{(activity.creatorType == 1||activity.creatorType == 2) ? activity.companyName: "平台端"}}){{activity.createDate}}
                        </span>
                            </div>
                        </el-timeline-item>
@@ -408,7 +404,7 @@
            </div>
        </div>
        <InsuranceDetails ref="InsuranceDetails" @success="successEvent" />
        <OperaInsuranceApplyCheckWindow ref="OperaInsuranceApplyCheckWindow" @success="successEvent" />
    <OperaWtbApplyCheckWindow ref="OperaWtbApplyCheckWindow" @success="successEvent" />
        <!--    企业申请退回    -->
        <applyReturn ref="applyReturn" @success="successEvent" />
        <!--    新增投保    -->
@@ -426,6 +422,33 @@
        <template v-slot:footer>
            <el-button @click="visible=false">返回</el-button>
        </template>
    <!-- 修改手机号 -->
    <el-dialog
        :title="signTitle"
        :visible.sync="visiblePhone"
        width="500px"
        :modal="false"
        :show-close="false"
        :close-on-click-modal="false"
        center>
      <el-form :model="form" ref="form" :rules="rules">
        <el-form-item label="手机号" prop="phone">
          <el-input v-model="form.phone" placeholder="请输入" disabled v-trim/>
        </el-form-item>
        <el-form-item label="验证码" prop="code">
          <div style="width: 100%; display: flex; align-items: center;">
            <el-input v-model="form.code" placeholder="请输入" v-trim/>
            <el-button type="primary" style="margin-left: 15px;" @click="send" v-if="num === 0">发送验证码</el-button>
            <el-button type="primary" style="margin-left: 15px;" v-else>{{num}}s</el-button>
          </div>
        </el-form-item>
      </el-form>
      <span slot="footer" class="dialog-footer">
                <el-button type="primary" @click="goSignDo()">确  定</el-button>
                <el-button @click="visiblePhone=false">取 消</el-button>
            </span>
    </el-dialog>
    </GlobalWindow>
</template>
@@ -433,28 +456,38 @@
    import BaseOpera from '@/components/base/BaseOpera'
    import GlobalWindow from '@/components/common/GlobalWindow'
    import InsuranceDetails from '@/components/business/InsuranceDetails'
    import OperaInsuranceApplyCheckWindow from '@/components/business/OperaInsuranceApplyCheckWindow'
import OperaWtbApplyCheckWindow from '@/components/business/OperaWtbApplyCheckWindow'
    import additionSubtractionApplication from '@/components/enterprise/additionSubtractionApplication'
    import factoryChange from '@/components/enterprise/factoryChange'
    import operaverifyPhoneNumberWindew from '@/components/business/operaverifyPhoneNumberWindew'
    import OperaApplyChangeDetailWindow from '@/components/business/OperaApplyChangeDetailWindow'
    import OperaApplyChangeUnitDetailWindow from '@/components/business/OperaApplyChangeUnitDetailWindow'
import { getById } from '@/api/business/unionApply'
    import applyReturn from '@/components/enterprise/applyReturn'
    import { getDetail, getSignLink, applyDetailPage, applyChagneDetailPage, exportExcel, applyChagneDetailExcel, applyOpt } from "@/api/business/insuranceApply";
    import { findListByDTO } from "@/api/business/dispatchUnit";
    import { fetchList } from "@/api/business/applyChange";
    import { findListByDTO as worktypeFindListByDTO } from "@/api/business/worktype";
import {
  getDetail,
  getSignLink,
  applyDetailPage,
  exportExcel,
  applyChagneDetailExcel,
  applyOpt,
  getMemberListOnlineSignLink, getSignTBQRSLink
} from '@/api/business/insuranceApply'
import { findListByDTO } from '@/api/business/dispatchUnit'
import { fetchList } from '@/api/business/applyChange'
import { findListByDTO as worktypeFindListByDTO } from '@/api/business/worktype'
    import OperaInsuranceApply from '@/components/enterprise/OperaInsuranceApplyWindow'
    import { mapState } from 'vuex'
import {sendSms, validateCode} from "@/api/business/smsEmail";
    export default {
        name: 'detailsEntrustedInsurance',
  name: 'OperaWtbApplyShopWindow',
        extends: BaseOpera,
        components: {
            GlobalWindow,
            InsuranceDetails,
            OperaInsuranceApplyCheckWindow,
    OperaWtbApplyCheckWindow,
            applyReturn,
            OperaInsuranceApply,
            additionSubtractionApplication,
@@ -467,14 +500,21 @@
            return {
                // 表单数据
                dataId:null,
      signTitle: '手机号验证',
                model: {},
                form: {
                    id: null,
                    editDate: ''
        businessId: null,
        phone: this.$store.state.userInfo.company.phone,
        code: '',
        type:0
                },
                // 验证规则
                rules: {
        code: [
          { required: true, message: '请输入验证码' }
        ]
                },
      num: 0,
      timer: null,
                formInline: {
                    applyStatus: '',
                    duId: '',
@@ -493,6 +533,7 @@
                visible3: false,
                visible4: false,
                visible5: false,
      visiblePhone: false,
                reverse: false,
                radio: 0,
                activities: [],
@@ -518,11 +559,12 @@
        },
        methods: {
            open(title,target){
                this.visible = true;
      this.visible = true
                this.title = title
                this.model = {}
                this.dataId = null
                this.dataId = target.id
      this.form.businessId = target.id
                this.formInline.applyStatus = ''
                this.formInline.duId = ''
                this.formInline.workTypeId = ''
@@ -540,6 +582,74 @@
                this.getDW()
                this.getGZ()
            },
    getSignLink (flag) {
      if (flag === 0) {
        this.signTitle = '签署方案确认书'
      } else if (flag === 1) {
        this.signTitle = '签署申请单'
      } else if (flag === 2) {
        this.signTitle = '签署投保单'
      }
      this.form.type = flag
      this.visiblePhone = true
      this.$nextTick(() => {
        this.$refs.form.resetFields()
      });
    },
    goSignDo(){
      this.$refs.form.validate((valid) => {
        if (!valid) {
          return
        }
        this.isWorking = true
        if(this.form.type===0){
          getSignTBQRSLink(this.form).then(res => {
            setTimeout(() => {
              this.visiblePhone=false
              window.open(res)
            }, 500)
          }).catch(err => {
            this.$tip.apiFailed(err)
          })
        } else if (this.form.type === 1) {
          getMemberListOnlineSignLink(this.form).then(res => {
            setTimeout(() => {
              this.visiblePhone=false
              window.open(res)
            }, 500)
          }).catch(err => {
            this.$tip.apiFailed(err)
          })
        } else if (this.form.type === 2) {
          getSignLink(this.dataId).then(res => {
            setTimeout(() => {
              this.visiblePhone=false
              window.open(res)
            }, 500)
          }).catch(err => {
            this.$tip.apiFailed(err)
          })
        }
      })
    },
    send () {
      sendSms({
        phone: this.form.phone
      }).then(res => {
        this.num = 60
        this.setTime()
      })
    },
    setTime () {
      this.timer = setInterval(() => {
        if (this.num === 0) {
          clearInterval(this.timer)
          this.timer = null
          return
        }
        this.num = this.num - 1
      }, 1000)
    },
            // 关闭订单
            closeOrder () {
                this.$confirm('确认关闭此订单吗?', '提示', {
@@ -555,7 +665,7 @@
                    })
                }).catch(() => {
                });
      })
            },
            // 派遣单位
            getDW() {
@@ -683,9 +793,9 @@
                        this.$nextTick(() => {
                            console.log(this.$refs.table)
                            if (this.$refs.table && this.$refs.table.doLayout) {
                                this.$refs.table.doLayout();
              this.$refs.table.doLayout()
                            }
                        });
          })
                    })
                } else {
                    fetchList({
@@ -708,9 +818,9 @@
                        this.$nextTick(() => {
                            console.log(this.$refs.table)
                            if (this.$refs.table && this.$refs.table.doLayout) {
                                this.$refs.table.doLayout();
              this.$refs.table.doLayout()
                            }
                        });
          })
                    })
                }
            },
@@ -727,7 +837,7 @@
                getSignLink(this.dataId).then(res => {
                    setTimeout(() => {
                        window.open(res)
                    }, 500);
        }, 500)
                }).catch(err => {
                    this.$tip.apiFailed(err)
                })
@@ -736,8 +846,7 @@
                if(this.model.toubaodanSignedFile && this.model.toubaodanSignedFile.fileurlFull){
                    setTimeout(() => {
                        window.open(this.model.toubaodanSignedFile.fileurlFull)
                    }, 500);
        }, 500)
                } else if(this.model.toubaodanFile && this.model.toubaodanFile.fileurlFull){
                    setTimeout(() => {
                        window.open(this.model.toubaodanFile.fileurlFull)
@@ -747,6 +856,16 @@
            viewBaoxiandan(){
                if(this.model.baoxiandanFile && this.model.baoxiandanFile.fileurlFull){
                    window.open(this.model.baoxiandanFile.fileurlFull)
      }
    },
    viewFanganshu () {
      if (this.model.fanganFile && this.model.fanganFile.fileurlFull) {
        window.open(this.model.fanganFile.fileurlFull)
      }
    },
    viewShenqingdan () {
      if (this.model.shenqingdanFile && this.model.shenqingdanFile.fileurlFull) {
        window.open(this.model.shenqingdanFile.fileurlFull)
                }
            },
            handleSizeChange(val){
@@ -761,7 +880,7 @@
            },
            getDetail(){
                getDetail(this.dataId).then(res => {
      getById(this.dataId).then(res => {
                    this.model = res
                    this.tableData = new Array()
                    this.tableData.push(res)
company/src/views/business/unionApply.vue
@@ -54,11 +54,7 @@
                </el-table-column>
                <el-table-column prop="statusInfo" label="状态" min-width="100px">
                    <template slot-scope="{row}">
                        <span :class="'union-apply-status'+row.status" v-if="row.status==0">待审核 </span>
                        <span :class="'union-apply-status'+row.status" v-if="row.status==1">待签署 </span>
                        <span :class="'union-apply-status'+row.status" v-if="row.status==2">待出单 </span>
                        <span :class="'union-apply-status'+row.status" v-if="row.status==3">保障中 </span>
                        <span :class="'union-apply-status'+row.status" v-if="row.status==4">已退回 </span>
                        <span :class="'union-apply-status'+row.status" v-if="row.status==0">{{ row.statusInfo}}</span>
                    </template>
                </el-table-column>
                <el-table-column prop="solutionName" label="保险方案" min-width="100px"></el-table-column>
server/service/src/main/java/com/doumee/core/utils/Constants.java
@@ -886,11 +886,11 @@
    }
    public  enum UnionApplyStatus {
        MERGE(0, "待上传保单","",0),
        MERGE(0, "待审核","",0),
        WAIT_SIGNATURE(1, "待签署","",0),
        UPLOAD_INSURANCE_POLICY(2, "待上传保单","",0),
        UPLOAD_INSURANCE_POLICY(2, "待出单","",0),
        FINISH(3, "保障中","",0),
        CLOSE(4, "关闭","",0),
        CLOSE(4, "已退回","",0),
        ;
        // 成员变量
        private String name;
server/service/src/main/java/com/doumee/dao/business/model/UnionApply.java
@@ -127,4 +127,7 @@
    @ApiModelProperty(value = "投保人数")
    @TableField(exist = false)
    private Integer insureNum;
    @ApiModelProperty(value = "状态名称")
    @TableField(exist = false)
    private String statusInfo;
}
server/service/src/main/java/com/doumee/service/business/impl/UnionApplyServiceImpl.java
@@ -236,7 +236,16 @@
        }
        PageData<UnionApply> pageData = PageData.from(unionApplyJoinMapper.selectJoinPage(page,UnionApply.class, queryWrapper));
        if(pageData!=null && pageData.getRecords()!=null){
            for(UnionApply model : pageData.getRecords()){
                initStatusInfo(model);
            }
        }
        return pageData;
    }
    private void initStatusInfo(UnionApply model) {
        model.setStatusInfo(Constants.UnionApplyStatus.getName(Constants.formatIntegerNum(model.getStatus())));
    }
    @Override
@@ -274,6 +283,7 @@
                unionApply.setServiceDays(DateUtil.daysBetweenDates(new Date(),unionApply.getStartTime())+1);
            }
        }
        initStatusInfo(unionApply);
        return unionApply;
    }