k94314517
2024-04-09 02bc3bfe47e3d5311a0bb041c94e70a34b1ca73c
company/src/components/business/detailsEntrustedInsurance.vue
@@ -11,34 +11,23 @@
        <div class="desc_item_label">
          <div class="desc_item_label_left">
            <span>投保人:{{ model.companyName }}</span>
            <span>保单状态:<span  :class="'apply-status'+model.status" >{{ model.statusInfo }}</span></span>
            <span>保单状态:<span  :class="'union-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="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 == 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-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>
              <el-button type="primary"   @click="$refs.InsuranceDetails.open('导出详单',model,0)">导出详单</el-button>
              <el-button v-if="[0].includes(model.status) " type="primary" @click="$refs.OperaUnionApplyCheckWindow.open('上传投保单',model,2)">上传投保单</el-button>
              <el-button v-if="model.status == 1" type="primary" @click="getSignLink(0)">签署投保单</el-button>
              <el-button v-if="[2,3,4].includes(model.status)" type="primary" @click="viewToubaodan">查看投保单</el-button>
              <el-button v-if="[2].includes(model.status) " type="primary" @click="$refs.OperaUnionApplyCheckWindow.open('上传保险单',model,3)">上传保险单</el-button>
              <el-button v-if="model.status == 3" type="primary" @click="viewBaoxiandan">查看保险单</el-button>
              <el-button v-if="[0,1,2].includes(model.status) " type="danger" @click="$refs.OperaUnionApplyCheckWindow.open('退回投保',model,1)">退回申请</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 v-if="userInfo.type ===0">
              <el-button type="primary"   @click="$refs.InsuranceDetails.open('导出详单',model,0)">导出详单</el-button>
              <el-button v-if="[2,3,4].includes(model.status)" type="primary" @click="viewToubaodan">查看投保单</el-button>
              <el-button v-if="[4].includes(model.status)" type="primary" @click="viewBaoxiandan">查看保险单</el-button>
            </template>
          </div>
        </div>
@@ -107,52 +96,11 @@
                  <el-option label="不在保" value="2"></el-option>
                </el-select>
              </el-form-item>
              <el-form-item label="派遣单位" prop="duId">
                <el-select v-model="formInline.duId" placeholder="请选择" @change="search">
                  <el-option
                      v-for="item in dwList"
                      :key="item.id"
                      :label="item.name"
                      :value="item.id">
                  </el-option>
                </el-select>
              </el-form-item>
              <el-form-item label="所属工种" prop="workTypeId">
                <el-select v-model="formInline.workTypeId" placeholder="请选择" @change="search">
                  <el-option
                      v-for="item in gzList"
                      :key="item.id"
                      :label="item.name"
                      :value="item.id">
                  </el-option>
                </el-select>
              </el-form-item>
              <el-form-item label="员工姓名" prop="memberName">
                <el-input v-model="formInline.memberName" placeholder="请输入" @keypress.enter.native="search"></el-input>
              </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>
              <el-form-item label="保险生效止期" prop="start">
                <el-date-picker
                    @change="changeEnd"
                    v-model="formInline.start"
                    type="daterange"
                    format="yyyy 年 MM 月 dd 日"
                    value-format="yyyy-MM-dd"
                    range-separator="至"
                    start-placeholder="开始日期"
                    end-placeholder="结束日期">
                </el-date-picker>
              <el-form-item label="被保险人" prop="applyCompanyName">
                <el-input v-model="formInline.applyCompanyName" placeholder="请输入" @keypress.enter.native="search"></el-input>
              </el-form-item>
            </template>
            <template v-else>
@@ -160,11 +108,9 @@
                <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-option label="待出单" value="1"></el-option>
                  <el-option label="保障中" value="2"></el-option>
                  <el-option label="已退回" value="3"></el-option>
                </el-select>
              </el-form-item>
              <el-form-item label="批单生效起期" prop="end">
@@ -183,7 +129,6 @@
            <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>
@@ -220,6 +165,12 @@
                prop="idcardNo"
                align="center"
                label="身份证号">
            </el-table-column>
            <el-table-column
                :key="Math.random()"
                prop="companyName"
                align="center"
                label="被保险人">
            </el-table-column>
            <el-table-column
                :key="Math.random()"
@@ -269,11 +220,9 @@
                             align="center">
              <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>
                <span :class="'change-status'+row.status" v-if="row.status === 6">已关闭</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">已退回</span>
              </template>
            </el-table-column>
            <el-table-column
@@ -311,7 +260,9 @@
                :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>
@@ -331,11 +282,9 @@
                align="center" 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>
                <span :class="'change-status'+row.status" v-if="row.status === 6">已关闭</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">已退回</span>
              </template>
            </el-table-column>
            <el-table-column
@@ -403,22 +352,13 @@
        </div>
      </div>
    </div>
    <InsuranceDetails ref="InsuranceDetails" @success="successEvent" />
    <OperaWtbApplyCheckWindow ref="OperaWtbApplyCheckWindow" @success="successEvent" />
    <!--    企业申请退回    -->
    <applyReturn ref="applyReturn" @success="successEvent" />
    <!--    新增投保    -->
    <OperaInsuranceApply ref="OperaInsuranceApply" @success="successEvent" />
    <!--    加减保申请    -->
    <additionSubtractionApplication ref="additionSubtractionApplication" @success="successEvent" />
    <!--    更换派遣单位申请    -->
    <factoryChange ref="factoryChange" @success="successEvent" />
    <InsuranceDetailsWtb ref="InsuranceDetails" @success="successEvent" />
    <OperaUnionApplyCheckWindow ref="OperaUnionApplyCheckWindow" @success="successEvent" />
    <!-- 加减保详情 -->
    <OperaApplyChangeDetailWindow ref="OperaApplyChangeDetailWindow" @success="successEvent"/>
    <!-- 更换派遣单位详情 -->
    <OperaApplyChangeUnitDetailWindow ref="OperaApplyChangeUnitDetailWindow" @success="successEvent"/>
    <!--    验证手机号    -->
    <operaverifyPhoneNumberWindew ref="operaverifyPhoneNumberWindew" @success="goSign" />
    <!-- 加减保详情 -->
    <template v-slot:footer>
      <el-button @click="visible=false">返回</el-button>
    </template>
@@ -428,9 +368,10 @@
        :title="signTitle"
        :visible.sync="visiblePhone"
        width="500px"
        :modal="false"
        :show-close="false"
        :modal="true"
        :show-close="true"
        :close-on-click-modal="false"
        append-to-body
        center>
      <el-form :model="form" ref="form" :rules="rules">
        <el-form-item label="手机号" prop="phone">
@@ -449,64 +390,76 @@
                <el-button @click="visiblePhone=false">取 消</el-button>
            </span>
    </el-dialog>
    <el-dialog
        :title="fileTitle"
        :visible.sync="visibleFile"
        width="500px"
        :modal="true"
        :show-close="true"
        :close-on-click-modal="false"
        append-to-body
        center>
      <div class="desc_item_from" v-for="(item, index) in fileData" :key="index"  style="margin-bottom: 15px">
        <span v-if="index ==0">{{item.name}}:</span>
        <span v-if="index >0">被保险人({{item.name}}){{fileFlag=== 0?"投保单":"保险单"}}:</span>
        <a style="cursor: pointer;color: #2E68EC" v-if="item.file && item.file.fileurl" @click="openFile(item.file.fileurlFull)">在线预览</a><span v-if="!item.file || !item.file.fileurl">未上传</span>
      </div>
      <span slot="footer" class="dialog-footer">
                <el-button @click="visibleFile=false">关 闭</el-button>
            </span>
    </el-dialog>
  </GlobalWindow>
</template>
<script>
import BaseOpera from '@/components/base/BaseOpera'
import GlobalWindow from '@/components/common/GlobalWindow'
import InsuranceDetails from '@/components/business/InsuranceDetails'
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 InsuranceDetailsWtb from '@/components/business/InsuranceDetailsWtb'
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 OperaUnionApplyCheckWindow from '@/components/business/OperaUnionApplyCheckWindow'
import { getById, getSignLink } from '@/api/business/unionApply'
import {
  getDetail,
  getSignLink,
  applyDetailPage,
  exportExcel,
  applyChagneDetailExcel,
  applyOpt,
  getMemberListOnlineSignLink, getSignTBQRSLink
  findListByDTO as applyList
} 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";
import { sendSms } from '@/api/business/smsEmail'
export default {
  name: 'OperaWtbApplyShopWindow',
  extends: BaseOpera,
  components: {
    GlobalWindow,
    InsuranceDetails,
    OperaWtbApplyCheckWindow,
    applyReturn,
    OperaInsuranceApply,
    additionSubtractionApplication,
    factoryChange,
    OperaApplyChangeDetailWindow,
    OperaApplyChangeUnitDetailWindow,
    operaverifyPhoneNumberWindew
    OperaApplyChangeDetailWindow,
    InsuranceDetailsWtb,
    OperaUnionApplyCheckWindow
  },
  data () {
    return {
      // 表单数据
      dataId: null,
      signTitle: '手机号验证',
      fileTitle: '查看投保单',
      fileFlag: 0,
      visibleFile: false,
      fileData: [],
      model: {},
      form: {
        businessId: null,
        phone: this.$store.state.userInfo.company.phone,
        phone: this.$store.state.userInfo.company ? this.$store.state.userInfo.company.phone:null,
        code: '',
        type:0
        type: 0
      },
      rules: {
        code: [
@@ -517,22 +470,12 @@
      timer: null,
      formInline: {
        applyStatus: '',
        duId: '',
        workTypeId: '',
        memberName: '',
        end: [],
        start: [],
        endTimeE: '',
        endTimeS: '',
        startTimeE: '',
        startTimeS: '',
        type: ''
        startTimeS: null,
        startTimeE: null,
        applyCompanyName: ''
      },
      visible1: false,
      visible2: false,
      visible3: false,
      visible4: false,
      visible5: false,
      visiblePhone: false,
      reverse: false,
      radio: 0,
@@ -562,7 +505,9 @@
      this.visible = true
      this.title = title
      this.model = {}
      this.dataId = null
      this.fileData = []
      this.taobaodanFileData = []
      this.baoxiandanFileData = []
      this.dataId = target.id
      this.form.businessId = target.id
      this.formInline.applyStatus = ''
@@ -584,46 +529,24 @@
    },
    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(){
    goSignDo () {
      this.$refs.form.validate((valid) => {
        if (!valid) {
          return
        }
        this.isWorking = true
        if(this.form.type===0){
          getSignTBQRSLink(this.form).then(res => {
        if (this.form.type === 0) {
          getSignLink(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
              this.visiblePhone = false
              window.open(res)
            }, 500)
          }).catch(err => {
@@ -670,9 +593,9 @@
    // 派遣单位
    getDW () {
      findListByDTO({ applyId: this.dataId })
          .then(res => {
            this.dwList = res
          })
        .then(res => {
          this.dwList = res
        })
    },
    // 工种
    getGZ () {
@@ -690,6 +613,7 @@
        this.formInline.applyStatus = ''
      }
      this.formInline.start = ''
      this.fileData = []
      this.formInline.startTimeE = ''
      this.formInline.endTimeE = ''
      this.list = []
@@ -777,15 +701,10 @@
          capacity: 10,
          page: this.currentPage,
          model: {
            applyId: this.dataId,
            unionApplyId: 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
            companyName: this.formInline.applyCompanyName,
            memberName: this.formInline.memberName
          }
        }).then(res => {
          this.list = res.records
@@ -802,7 +721,7 @@
          capacity: 10,
          page: this.currentPage,
          model: {
            applyId: this.dataId,
            unionApplyId: this.dataId,
            status: this.formInline.applyStatus,
            endTimeE: this.formInline.endTimeS,
            endTimeS: this.formInline.startTimeS,
@@ -842,21 +761,25 @@
        this.$tip.apiFailed(err)
      })
    },
    openFile (url) {
      setTimeout(() => {
        window.open(url)
      }, 500)
    },
    viewToubaodan () {
      if (this.model.toubaodanSignedFile && this.model.toubaodanSignedFile.fileurlFull) {
        setTimeout(() => {
          window.open(this.model.toubaodanSignedFile.fileurlFull)
        }, 500)
      } else if (this.model.toubaodanFile && this.model.toubaodanFile.fileurlFull) {
        setTimeout(() => {
          window.open(this.model.toubaodanFile.fileurlFull)
        }, 500)
      }
      this.fileData = this.taobaodanFileData;
      this.visibleFile=true
      this.fileTitle='查看投保单'
      this.fileFlag = 0
    },
    viewBaoxiandan () {
      if (this.model.baoxiandanFile && this.model.baoxiandanFile.fileurlFull) {
      this.fileFlag = 1
      this.fileTitle='查看保险单'
      this.fileData = this.baoxiandanFileData;
      this.visibleFile=true
     /* if (this.model.baoxiandanFile && this.model.baoxiandanFile.fileurlFull) {
        window.open(this.model.baoxiandanFile.fileurlFull)
      }
      }*/
    },
    viewFanganshu () {
      if (this.model.fanganFile && this.model.fanganFile.fileurlFull) {
@@ -886,10 +809,44 @@
        this.tableData.push(res)
        console.log(this.tableData)
        this.activities = res.applyLogList
        if (this.model.toubaodanSignedFile && this.model.toubaodanSignedFile.fileurlFull) {
          this.taobaodanFileData.push({ name: '商户投保单', file: this.model.toubaodanSignedFile })
        } else if (this.model.toubaodanFile && this.model.toubaodanFile.fileurlFull) {
          this.taobaodanFileData.push({ name: '商户投保单', file: this.model.toubaodanFile })
        }
        this.baoxiandanFileData.push({ name: '商户保险单', file: this.model.baoxiandanFile })
        // if (this.model.status !== 0 && this.model.status !== 4) {
          this.getApplyList()
        // }
      }).catch(err => {
      })
    },
    getApplyList () {
      applyList({ unionApplyId: this.dataId, getFiles: 1 }).then(res => {
        this.model.applyList = res
        if (res && res.length > 0) {
          res.forEach(item => {
            if (item.toubaodanSignedFile) {
              this.taobaodanFileData.push({ name: item.companyName, file: item.toubaodanSignedFile })
            } else if (item.toubaodanFile) {
              this.taobaodanFileData.push({ name: item.companyName, file: item.toubaodanFile })
            } else {
              this.taobaodanFileData.push({ name: item.companyName, file: null })
            }
            if (item.baoxiandanFile) {
              this.baoxiandanFileData.push({ name: item.companyName, file: item.baoxiandanFile })
            } else {
              this.baoxiandanFileData.push({ name: item.companyName, file: null })
            }
          })
        }
      }).catch(err => {
      })
    },
    successEvent () {
      this.fileData=[]
      this.taobaodanFileData=[]
      this.baoxiandanFileData=[]
      // this.visible=false
      this.getDetail()
      this.$emit('success')