MrShi
2024-02-22 4be10170bc9a1546537762e03f2c963d61d2f6ea
company/src/components/business/OperaInsuranceApplyWindow.vue
@@ -11,7 +11,7 @@
                <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 })">一键续保</el-button>
                        <el-button type="primary" v-if="model.statusCollect === 2 || model.statusCollect === 3" @click="$refs.OperaInsuranceApply.open('续保', { id: dataId })">一键续保</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>
@@ -26,6 +26,7 @@
                      <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>
@@ -101,6 +102,7 @@
                </div>
                <div class="desc_item_search">
                    <el-form :inline="true" :model="formInline" ref="sou" class="demo-form-inline">
                        <template v-if="activeName === '0'">
                        <el-form-item label="在保状态" prop="applyStatus">
                            <el-select v-model="formInline.applyStatus" @change="search" placeholder="请选择">
                                <el-option label="全部" value="0"></el-option>
@@ -155,17 +157,45 @@
                                end-placeholder="结束日期">
                            </el-date-picker>
                        </el-form-item>
                        <section>
                            <el-button type="primary" @click="search">查询</el-button>
                            <el-button @click="resetting">重置</el-button>
                            <el-button type="primary" @click="exportExcel">导出名单</el-button>
                        </section>
                        </template>
                        <template v-else>
                            <el-form-item label="状态" prop="applyStatus">
                                <el-select v-model="formInline.applyStatus" @change="search" placeholder="请选择">
                                    <el-option label="全部" value=""></el-option>
                                    <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="5"></el-option>
                                    <el-option label="已关闭" value="6"></el-option>
                                </el-select>
                            </el-form-item>
                            <el-form-item label="批单生效起期" prop="end">
                                <el-date-picker
                                    @change="changeStart"
                                    v-model="formInline.end"
                                    type="daterange"
                                    format="yyyy 年 MM 月 dd 日"
                                    value-format="yyyy-MM-dd"
                                    range-separator="至"
                                    start-placeholder="开始日期"
                                    end-placeholder="结束日期">
                                </el-date-picker>
                            </el-form-item>
                        </template>
                        <el-form-item>
                            <el-button type="primary" style="width: 80px;" @click="search">查询</el-button>
                            <el-button @click="resetting" style="width: 80px;">重置</el-button>
                            <el-button type="primary" style="width: 80px;" @click="exportExcel" v-if="activeName === '0'">导出名单</el-button>
                        </el-form-item>
                    </el-form>
                </div>
                <div class="desc_item_from">
                    <el-table
                        :data="list"
                        border
                        ref="table"
                        v-if="activeName === '0'"
                        style="width: 100%">
                        <el-table-column label="序号">
                            <template slot-scope="scope">
@@ -173,10 +203,12 @@
                            </template>
                        </el-table-column>
                        <el-table-column
                            :key="Math.random()"
                            prop="memberName"
                            label="员工姓名">
                        </el-table-column>
                        <el-table-column
                            :key="Math.random()"
                            label="性别">
                            <template slot-scope="{row}">
                                <span v-if="row.sex === 0">男</span>
@@ -184,28 +216,135 @@
                            </template>
                        </el-table-column>
                        <el-table-column
                            :key="Math.random()"
                            prop="idcardNo"
                            label="身份证号">
                        </el-table-column>
                        <el-table-column
                            :key="Math.random()"
                            prop="duName"
                            label="派遣单位">
                        </el-table-column>
                        <el-table-column
                            :key="Math.random()"
                            prop="workTypeName"
                            label="所属工种">
                        </el-table-column>
                        <el-table-column
                            :key="Math.random()"
                            prop="startTime"
                            label="保险生效起期">
                        </el-table-column>
                        <el-table-column
                            :key="Math.random()"
                            prop="endTime"
                            label="保险生效止期">
                        </el-table-column>
                        <el-table-column
                            :key="Math.random()"
                            prop="fee"
                            label="产生费用(元)">
                        </el-table-column>
                    </el-table>
                    <el-table
                        :data="list1"
                        border
                        ref="table"
                        v-if="activeName === '1'"
                        style="width: 100%">
                        <el-table-column label="序号">
                            <template slot-scope="scope">
                                <span>{{scope.$index + 1}}</span>
                            </template>
                        </el-table-column>
                        <el-table-column label="保单状态" :key="Math.random()">
                            <template slot-scope="{row}">
                                <span :class="'change-status'+row.status" v-if="row.status === 0">待签署</span>
                                <span :class="'change-status'+row.status" v-if="row.status === 1">待审核</span>
                                <span :class="'change-status'+row.status" v-if="row.status === 2">已生效</span>
                                <span :class="'change-status'+row.status" v-if="row.status === 3 || row.status === 4">申请退回</span>
                                <span :class="'change-status'+row.status" v-if="row.status === 5 || row.status === 8">已退回</span>
                            </template>
                        </el-table-column>
                        <el-table-column
                            :key="Math.random()"
                            prop="applyCode"
                            label="批单号">
                        </el-table-column>
                        <el-table-column
                            :key="Math.random()"
                            prop="addNum"
                            label="增加人数(人)">
                        </el-table-column>
                        <el-table-column
                            :key="Math.random()"
                            prop="delNum"
                            label="减少人数(人)">
                        </el-table-column>
                        <el-table-column
                            :key="Math.random()"
                            prop="createDate"
                            label="提交时间">
                        </el-table-column>
                        <el-table-column
                            :key="Math.random()"
                            prop="startTime"
                            label="批单生效起期">
                        </el-table-column>
                        <el-table-column
                            :key="Math.random()"
                            label="操作">
                            <template slot-scope="{row}">
                                <el-button type="text" @click="$refs.OperaApplyChangeDetailWindow.open('加减保详情', row)">查看详情</el-button>
                            </template>
                        </el-table-column>
                    </el-table>
                    <el-table
                        :data="list2"
                        border
                        ref="table"
                        v-if="activeName === '2'"
                        style="width: 100%">
                        <el-table-column label="序号">
                            <template slot-scope="scope">
                                <span>{{scope.$index + 1}}</span>
                            </template>
                        </el-table-column>
                        <el-table-column label="保单状态" :key="Math.random()">
                            <template slot-scope="{row}">
                                <span :class="'change-status'+row.status" v-if="row.status === 0">待签署</span>
                                <span :class="'change-status'+row.status" v-if="row.status === 1">待审核</span>
                                <span :class="'change-status'+row.status" v-if="row.status === 2">已生效</span>
                                <span :class="'change-status'+row.status" v-if="row.status === 3 || row.status === 4">申请退回</span>
                                <span :class="'change-status'+row.status" v-if="row.status === 5 || row.status === 8">已退回</span>
                            </template>
                        </el-table-column>
                        <el-table-column
                            :key="Math.random()"
                            prop="applyCode"
                            label="批单号">
                        </el-table-column>
                        <el-table-column
                            :key="Math.random()"
                            prop="changeNum"
                            label="换厂人数">
                        </el-table-column>
                        <el-table-column
                            :key="Math.random()"
                            prop="createDate"
                            label="提交时间">
                        </el-table-column>
                        <el-table-column
                            :key="Math.random()"
                            prop="startTime"
                            label="批单生效起期">
                        </el-table-column>
                        <el-table-column
                            :key="Math.random()"
                            label="操作">
                            <template slot-scope="{row}">
                                <el-button type="text" @click="$refs.OperaApplyChangeUnitDetailWindow.open('换厂详情', row)">查看详情</el-button>
                            </template>
                        </el-table-column>
                    </el-table>
                    <div class="desc_item_from_page">
@@ -227,7 +366,7 @@
                      <div style="display: flex; flex-direction: column;">
                                <span style="font-size: 16px; font-weight: 400; color: black;">
                                    {{activity.title}}
                                    <span style="font-size: 16px; font-weight: 400; color: black; margin-left: 10px;" v-if="activity.objType === 5 || activity.objType === 6 || activity.objType === 1 || activity.objType === 2">
                            <span style="font-size: 16px; font-weight: 400; color: black; margin-left: 10px;" v-if="[1, 2, 5, 6, 9].includes(activity.objType)">
                                      {{activity.content}}
                                    </span>
                                </span>
@@ -250,6 +389,10 @@
        <additionSubtractionApplication ref="additionSubtractionApplication" @success="successEvent" />
        <!--    换厂申请    -->
        <factoryChange ref="factoryChange" @success="successEvent" />
        <!-- 加减保详情 -->
        <OperaApplyChangeDetailWindow ref="OperaApplyChangeDetailWindow" @success="successEvent"/>
        <!-- 换厂详情 -->
        <OperaApplyChangeUnitDetailWindow ref="OperaApplyChangeUnitDetailWindow" @success="successEvent"/>
      <template v-slot:footer>
        <el-button @click="visible=false">返回</el-button>
      </template>
@@ -263,10 +406,13 @@
import OperaInsuranceApplyCheckWindow from '@/components/business/OperaInsuranceApplyCheckWindow'
import additionSubtractionApplication from '@/components/enterprise/additionSubtractionApplication'
import factoryChange from '@/components/enterprise/factoryChange'
import OperaApplyChangeDetailWindow from '@/components/business/OperaApplyChangeDetailWindow'
import OperaApplyChangeUnitDetailWindow from '@/components/business/OperaApplyChangeUnitDetailWindow'
import applyReturn from '@/components/enterprise/applyReturn'
import { getDetail, getSignLink, applyDetailPage, applyChagneDetailPage, exportExcel, applyChagneDetailExcel } from "@/api/business/insuranceApply";
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 OperaInsuranceApply from '@/components/enterprise/OperaInsuranceApplyWindow'
import { mapState } from 'vuex'
@@ -281,7 +427,9 @@
      applyReturn,
      OperaInsuranceApply,
      additionSubtractionApplication,
      factoryChange
      factoryChange,
      OperaApplyChangeDetailWindow,
      OperaApplyChangeUnitDetailWindow
  },
  data () {
    return {
@@ -318,6 +466,8 @@
      activities: [],
      tableData: [],
        list: [],
        list1: [],
        list2: [],
        dwList: [],
        gzList: [],
      activeName: '0',
@@ -341,10 +491,39 @@
        this.model={}
        this.dataId=null
        this.dataId = target.id
        this.formInline.applyStatus = ''
        this.formInline.duId = ''
        this.formInline.workTypeId = ''
        this.formInline.memberName = ''
        this.formInline.end = ''
        this.formInline.start = ''
        this.formInline.endTimeE = ''
        this.formInline.endTimeS = ''
        this.formInline.startTimeE = ''
        this.formInline.startTimeS = ''
        this.formInline.types = ''
        this.activeName = '0'
        this.getDetail()
        this.getList()
        this.getDW()
        this.getGZ()
     },
      // 关闭订单
      closeOrder () {
          this.$confirm('确认关闭此订单吗?', '提示', {
              confirmButtonText: '确定',
              cancelButtonText: '取消',
              type: 'warning'
          }).then(() => {
              applyOpt({
                  applyId: this.dataId,
                  optType: 2
              }).then(res => {
                  this.getDetail()
              })
          }).catch(() => {
          });
     },
      // 派遣单位
      getDW() {
@@ -363,13 +542,23 @@
          })
      },
      resetting() {
         if (this.activeName === '0') {
             this.formInline.applyStatus = '0'
         } else {
             this.formInline.applyStatus = ''
         }
         this.list = []
          this.list1 = []
          this.list2 = []
          this.formInline.duId = ''
          this.formInline.workTypeId = ''
          this.formInline.memberName = ''
            this.formInline.end = []
            this.formInline.end = []
            this.formInline.endTimeE = ''
            this.formInline.endTimeS = ''
            this.formInline.startTimeE = ''
            this.formInline.startTimeS = ''
            this.$refs.sou.resetFields();
            this.search()
      },
      search() {
@@ -378,21 +567,21 @@
      },
      changeStart(e) {
            if (e.length > 0) {
                this.formInline.startTimeE = e[0]
                this.formInline.startTimeS = e[1]
                this.formInline.startTimeS = e[0]
                this.formInline.endTimeS = e[1]
            } else {
                this.formInline.startTimeE = ''
                this.formInline.startTimeS = ''
                this.formInline.endTimeS = ''
            }
            this.search()
      },
      changeEnd(e) {
         if (e.length > 0) {
             this.formInline.endTimeE = e[0]
             this.formInline.endTimeS = e[1]
             this.formInline.startTimeE = e[0]
             this.formInline.endTimeE = e[1]
         } else {
             this.formInline.startTimeE = ''
             this.formInline.endTimeE = ''
             this.formInline.endTimeS = ''
         }
          this.search()
      },
@@ -456,35 +645,46 @@
             }).then(res => {
                 this.list = res.records
                 this.total = res.total
                 this.$nextTick(() => {
                     console.log(this.$refs.table)
                     if (this.$refs.table && this.$refs.table.doLayout) {
                         this.$refs.table.doLayout();
                     }
                 });
             })
         } else {
             applyChagneDetailPage({
             fetchList({
                 capacity: 10,
                 page: this.currentPage,
                 model: {
                     applyId: this.dataId,
                     applyStatus: this.formInline.applyStatus,
                     duId: this.formInline.duId,
                     workTypeId: this.formInline.workTypeId,
                     memberName: this.formInline.memberName,
                     endTimeE: this.formInline.endTimeE,
                     endTimeS: this.formInline.endTimeS,
                     startTimeE: this.formInline.startTimeE,
                     startTimeS: this.formInline.startTimeS,
                     status: this.formInline.applyStatus,
                     endTimeE: this.formInline.endTimeS,
                     endTimeS: this.formInline.startTimeS,
                     types: this.formInline.types
                 }
             }).then(res => {
                 this.list = res.records
                 if (this.activeName === '1') {
                     this.list1 = res.records
                 } else if (this.activeName === '2') {
                     this.list2 = res.records
                 }
                 this.total = res.total
                 this.$nextTick(() => {
                     console.log(this.$refs.table)
                     if (this.$refs.table && this.$refs.table.doLayout) {
                         this.$refs.table.doLayout();
                     }
                 });
             })
         }
      },
      handleClick(e) {
        this.activeName = e.index
          if (e.index === '1') {
            this.formInline.types = [0, 1]
                this.formInline.types = 0
          } else if (e.index === '2') {
            this.formInline.types = [2]
                this.formInline.types = 1
          }
          this.resetting()
      },
@@ -519,7 +719,7 @@
    },
    handleCurrentChange(val){
        console.log(val)
        this.page = val
        this.currentPage = val
        this.getList()
    },
    onSubmit(){