jiangping
2024-06-20 09da100729793848bc01b51f7b05ca3f1e7ec64f
company/src/components/business/OperaUnionChangeDetailWindow.vue
@@ -11,22 +11,33 @@
                <div class="desc_item_label">
                    <div class="desc_item_label_left">
                        <span>投保人:{{ model.shopName}}</span>
                        <span v-if="model.status === 0">保单状态:<span  :class="'change-status'+model.status" >待签署</span></span>
                        <span v-if="model.status === 1">保单状态:<span  :class="'change-status'+model.status" >待审核</span></span>
                        <span v-if="model.status === 2">保单状态:<span  :class="'change-status'+model.status" >已生效</span></span>
                        <span v-if="model.status === 3">保单状态:<span  :class="'change-status'+model.status" >已退回</span></span>
                      <span v-if="model.status === 0">保单状态:<span  :class="'change-status'+model.status" >待签署</span></span>
                      <span v-if="model.status === 1">保单状态:<span  :class="'change-status'+model.status" >待审核</span></span>
                      <span v-if="model.status === 2">保单状态:<span  :class="'change-status'+model.status" >已生效</span></span>
                      <span v-if="model.status === 7">保单状态:<span  :class="'change-status'+model.status" >待出单</span></span>
                      <span v-if="model.status === 9">保单状态:<span  :class="'change-status'+model.status" >批改申请中</span></span>
                      <span v-if="model.status === 3 || model.status === 4">保单状态:<span  :class="'change-status'+model.status" >退回申请</span></span>
                      <span v-if="model.status === 5 || model.status === 8">保单状态:<span  :class="'change-status'+model.status" >已退回</span></span>
                      <span v-if=" model.status === 6">保单状态:<span  :class="'change-status'+model.status" >已关闭</span></span>
                        <span>提交时间:{{ model.createDate }}</span>
                    </div>
                  <div class="desc_item_label_right">
                        <template v-if="2">
                            <el-button type="primary"  @click="$refs.ApplyChangeDetails.open('加减保详单',model,0)">导出详单</el-button>
                            <el-button v-if="[1,2].includes(model.status)" type="primary" @click="viewApplyFile">查看申请单</el-button>
                            <el-button v-if="[0].includes(model.status)" type="primary" :disabled="loading" :loading="loading" @click="getSignLink(0)">签署申请单</el-button>
                            <el-button v-if="[2].includes(model.status)" type="primary" @click="viewPidan">查看批单</el-button>
                            <el-button v-if=" [1].includes(model.status)" type="primary" @click="$refs.OperaApplyChangeCheckWindow.open('上传批单',model,3)">上传批单</el-button>
                            <el-button  v-if="[0,1].includes(model.status)" type="danger" @click="$refs.OperaApplyChangeCheckWindow.open('退回投保',model,1)">退回投保</el-button>
                            <el-button v-if=" [1].includes(model.status)" type="primary" @click="$refs.OperaUnionChangeCheckWindow.open('上传批单',model,3)">上传批单</el-button>
                            <el-button  v-if="[0,1].includes(model.status)" type="danger" @click="$refs.OperaUnionChangeCheckWindow.open('退回投保',model,1)">退回投保</el-button>
                        </template>
                        <template  v-if="0">
                                             </template>
                          <template  v-if="0">
                            <el-button type="primary"  @click="$refs.ApplyChangeDetails.open('更换派遣单位详单',model,0)">导出详单</el-button>
                            <el-button v-if="[1,2].includes(model.status)" type="primary" @click="viewApplyFile">查看申请单</el-button>
                            <el-button v-if="[0].includes(model.status)" type="primary" :disabled="loading" :loading="loading" @click="getSignLink(0)">签署申请单</el-button>
                            <el-button v-if="[2].includes(model.status)" type="primary" @click="viewPidan">查看批单</el-button>
                          </template>
                        </template>
                  </div>
                </div>
                <div class="desc_item_from">
@@ -35,7 +46,7 @@
                        border
                        style="width: 100%">
                        <el-table-column
                            prop="validCode"
                            prop="code"
                            align="center"
                            label="批单号">
                        </el-table-column>
@@ -43,7 +54,7 @@
                            align="center"
                            label="保单号">
                            <template slot-scope="{row}">
                                <el-button type="text" @click="$refs.insuranceApplyDetails.open('投保详情', { id: row.applyId })">{{row.applyCode}}</el-button>
                                <el-button type="text" @click="$refs.detailsEntrustedInsurance.open('投保详情', { id: row.unionApplyId })">{{row.applyCode}}</el-button>
                            </template>
                        </el-table-column>
                        <el-table-column
@@ -65,7 +76,12 @@
                      <el-table-column
                          prop="applyStartTime"
                          align="center"
                          label="批单生效起期">
                          label="批增生效日期">
                      </el-table-column>
                      <el-table-column
                          prop="delValidTime"
                          align="center"
                          label="批减生效日期">
                      </el-table-column>
                        <el-table-column
                            prop="addNum"
@@ -108,7 +124,7 @@
                            label="性别">
                            <template slot-scope="{row}">
                                <span v-if="row.sex === 0">男</span>
                                <span v-else>女</span>
                              <span  v-if="row.sex === 1">女</span>
                            </template>
                        </el-table-column>
                        <el-table-column
@@ -137,7 +153,11 @@
                        </el-table-column>
                        <el-table-column
                            prop="fee"
                            label="已产生费用(元)">
                            label="费用变更(元)">
                        </el-table-column>
                        <el-table-column
                            prop="remark"
                            label="备注">
                        </el-table-column>
                    </el-table>
                    <div class="desc_item_from_page">
@@ -151,7 +171,7 @@
                    </div>
                </div>
                <div class="desc_item_review" v-if="model.applyLogList">
                    <div class="desc_item_review_label">审核流程</div>
                    <div class="desc_item_review_label">操作记录</div>
                  <el-timeline :reverse="reverse">
                    <el-timeline-item
                        v-for="(activity, index) in model.applyLogList"
@@ -164,7 +184,7 @@
                                    </span>
                                </span>
                        <span style="margin-top: 5px; font-size: 12px; font-weight: 400; color: #999999;">
                                    操作员-{{activity.creatorName}}({{activity.creatorType==1? activity.companyName: (activity.creatorType==2? activity.companyName: "平台端") }}}){{activity.createDate}}
                                    操作员-{{activity.creatorName}}({{activity.creatorType==1? activity.companyName: (activity.creatorType==2? activity.companyName: "平台端") }}){{activity.createDate}}
                                </span>
                      </div>
                    </el-timeline-item>
@@ -173,7 +193,7 @@
            </div>
        </div>
        <UnionChangeDetails ref="ApplyChangeDetails" @success="successEvent" />
        <OperaApplyChangeCheckWindow ref="OperaApplyChangeCheckWindow" @success="successEvent" />
        <OperaUnionChangeCheckWindow ref="OperaUnionChangeCheckWindow" @success="successEvent" />
        <!--    企业申请退回    -->
<!--        <applyReturn ref="applyReturn" @success="successEvent" />-->
        <add_subtract_return ref="add_subtract_return" @success="successEvent" />
@@ -185,11 +205,14 @@
        <factoryChange ref="factoryChange" @success="successEvent" />
        <!--    投保详情    -->
        <insuranceApplyDetails ref="insuranceApplyDetails" @success="successEvent" />
        <!-- 详情 -->
        <OperaPdfViewerWindow ref="OperaPdfViewerWindow" />
        <detailsEntrustedInsurance ref="detailsEntrustedInsurance" />
      <!-- 修改手机号 -->
      <el-dialog
          :title="signTitle"
          :visible.sync="visiblePhone"
          width="500px"
          width="800px"
          :modal="false"
          :show-close="false"
          :close-on-click-modal="false"
@@ -207,8 +230,28 @@
          </el-form-item>
        </el-form>
        <span slot="footer" class="dialog-footer">
                <el-button type="primary" @click="goSignDo()">确  定</el-button>
                <el-button type="primary" :loading="signing" @click="goSignDo()">确  定</el-button>
                <el-button @click="visiblePhone=false">取 消</el-button>
            </span>
      </el-dialog>
      <el-dialog
          title="查看保险单"
          :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 pidanFileData" :key="index"  style="margin-bottom: 15px">
          <span v-if="index ==0">{{item.name}}:</span>
          <span v-if="index >0">被保险人({{item.name}})保险单:</span>
          <a  style="cursor: pointer;color: #2E68EC" v-if="item.file && item.file.fileurl && index ==0" @click="openFile(item.file.fileurlFull,item.name)">在线预览</a>
          <a   style="cursor: pointer;color: #2E68EC" v-if="item.file && item.file.fileurl && index !=0 " @click="openFile(item.file.fileurlFull,'被保险人('+item.name+')保险单')">在线预览</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>
      <template v-slot:footer>
@@ -222,7 +265,7 @@
import BaseOpera from '@/components/base/BaseOpera'
import GlobalWindow from '@/components/common/GlobalWindow'
import UnionChangeDetails from '@/components/business/UnionChangeDetails'
import OperaApplyChangeCheckWindow from '@/components/business/OperaApplyChangeCheckWindow'
import OperaUnionChangeCheckWindow from '@/components/business/OperaUnionChangeCheckWindow'
import reinsurance from '@/components/enterprise/reinsurance'
import factoryChange from '@/components/enterprise/factoryChange'
import add_subtract_return from '@/components/enterprise/add_subtract_return'
@@ -231,25 +274,29 @@
} from '@/api/business/insuranceApply'
import {
  getById,
    getSignLink
} from '@/api/business/unionChange'
import { applyChangeOpt ,
  getChangeMemberListOnlineSignLink} from '@/api/business/applyChange'
import {applyChangeOpt, listAll as applyList} from '@/api/business/applyChange'
import detailsEntrustedInsurance from '@/components/business/detailsEntrustedInsurance'
import {sendSms} from "@/api/business/smsEmail";
import OperaInsuranceApply from '@/components/enterprise/OperaInsuranceApplyWindow'
import OperaInsuranceApply from '@/components/enterprise/OperaInsuranceApplyAddWindow'
import { mapState } from 'vuex'
import OperaPdfViewerWindow from '@/components/business/OperaPdfViewerWindow'
export default {
  name: 'OperaUnionChangeDetailWindow',
  extends: BaseOpera,
  components: {
      GlobalWindow,
    UnionChangeDetails,
      OperaApplyChangeCheckWindow,
    OperaUnionChangeCheckWindow,
      add_subtract_return,
    OperaPdfViewerWindow,
      OperaInsuranceApply,
      reinsurance,
      factoryChange,
      detailsEntrustedInsurance,
      insuranceApplyDetails: () => import ('@/components/business/OperaInsuranceApplyWindow')
  },
  data () {
@@ -258,12 +305,15 @@
      modelId:null,
      num: 0,
      timer: null,
      signing:false,
      signTitle: '手机号验证',
      pidanFileData:[],
      model: {},
      visiblePhone: false,
      visibleFile:false,
      form: {
          businessId: null,
          phone: this.$store.state.userInfo.company.phone,
          phone: this.$store.state.userInfo.company? this.$store.state.userInfo.company.phone:null,
          id: null,
          editDate: '',
          code:null
@@ -285,7 +335,8 @@
        list: [],
      activeName: '0',
        total: 0,
      currentPage: 1
      currentPage: 1,
        loading: false
    }
  },
  created () {
@@ -305,6 +356,10 @@
       this.model={}
       this.form.businessId = target.id
       this.num=0
       this.signing=false
       this.visiblePhone=false
       this.visibleFile=false
       this. pidanFileData=[]
       this.timer=null
        this.getDetail()
        this.getList()
@@ -317,6 +372,13 @@
        this.setTime()
      })
    },
    openFile (url,title) {
      setTimeout(() => {
        this.$refs.OperaPdfViewerWindow.open(title || '在线预览',url)
        // window.open(url)
      }, 500)
    },
    setTime () {
      this.timer = setInterval(() => {
        if (this.num === 0) {
@@ -328,32 +390,36 @@
      }, 1000)
    },
    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()
      });
        this.form.type = flag
        this.loading = true
        getSignLink(this.form).then(res => {
            this.loading = false
            window.open(res)
        }).catch(err => {
            this.loading = false
            this.$tip.apiFailed(err)
        })
      // this.visiblePhone = true
      // this.$nextTick(() => {
      //   this.$refs.form.resetFields()
      // });
    },
    goSignDo(){
      this.$refs.form.validate((valid) => {
        if (!valid) {
          return
        }
        this.isWorking = true
        this.signing = true
        if(this.form.type===0){
          getChangeMemberListOnlineSignLink(this.form).then(res => {
          getSignLink(this.form).then(res => {
            setTimeout(() => {
              this.visiblePhone=false
              this.signing=false
              window.open(res)
            }, 500)
          }).catch(err => {
            this.signing=false
            this.$tip.apiFailed(err)
          })
        }
@@ -403,13 +469,12 @@
      },
    viewApplyFile(){
       if(this.model.applyFile && this.model.applyFile.fileurlFull){
        window.open(this.model.applyFile.fileurlFull)
         this.$refs.OperaPdfViewerWindow.open('查看申请单',this.model.applyFile.fileurlFull)
        // window.open(this.model.applyFile.fileurlFull)
       }
    },
    viewPidan(){
      if(this.model.pidanFile && this.model.pidanFile.fileurlFull){
        window.open(this.model.pidanFile.fileurlFull)
      }
      this.visibleFile=true
    },
    handleSizeChange(val){
        console.log(val)
@@ -423,10 +488,29 @@
    },
    getDetail(){
      this.pidanFileData=[]
      getById(this.modelId).then(res => {
        this.model = res
        this.tableData = new Array()
        this.tableData.push(res)
          console.log(this.tableData)
        this.pidanFileData.push({ name: '商户保险单', file: this.model.pidanFile })
        this.getApplyList()
      }).catch(err => {
      })
    },
    getApplyList () {
      applyList({ unionChangeId: this.model.id, getFiles: 1 }).then(res => {
        this.model.applyList = res
        if (res && res.length > 0) {
          res.forEach(item => {
            if (item.pidanFile) {
              this.pidanFileData.push({ name: item.companyName, file: item.pidanFile })
            } else {
              this.pidanFileData.push({ name: item.companyName, file: null })
            }
          })
        }
      }).catch(err => {
      })
    },