MrShi
2025-04-11 3a45da15c947c2d478a44a51bd0f926647b1b841
company/src/components/business/OperaUnionApplyCheckWindow.vue
@@ -1,7 +1,7 @@
<template>
    <GlobalWindow
        :title="title"
        width="50%"
        width="60%"
        :visible.sync="visible"
        :confirm-working="isWorking"
        @confirm="confirm"
@@ -18,14 +18,14 @@
          </el-form-item>
          <div v-for="(item,index) in this.model.applyList" :key="index">
            <el-form-item :label="(index+1)+'.被保险人('+item.companyName+'):'" prop="tbdMultifileList[index]">
              <UploadFile   :uploadData="{ folder: 'apply',fileType:'.pdf' }"  :fileIndex="index"  :showTips="showTips" :fileList="model.applyList[index].fileList" @uploadSuccess="toubaoFileUploaded2" />
              <UploadFile  @remove="deleIndex(0,index)"  :uploadData="{ folder: 'apply',fileType:'.pdf' }"  :fileIndex="index"  :showTips="showTips" :fileList="model.applyList[index].fileList" @uploadSuccess="toubaoFileUploaded2" />
            </el-form-item>
          </div>
        </el-form>
        <!--    上传保险单    -->
      <el-form v-if="visible3==true" :model="form" ref="form3" :rules="rules3" style="width: 100%;">
        <el-form-item label="客户期望保险生效起期:">
          {{ model.applyStartTime }}
        <el-form-item label="期望保险生效期:">
          <span >{{( form.startTime|| '-') +'  至  '+( form.endTime|| '-')}}</span>
        </el-form-item>
        <el-form-item label="" >
          <el-radio-group v-model="form.selectRadio" @change="selectChange">
@@ -41,20 +41,47 @@
              placeholder="选择日期">
          </el-date-picker>
        </el-form-item>
        <el-form-item label="保险生效起期:">
          {{ form.startTime }}
        <el-form-item label="保险生效止期:" prop="endTime" v-if="form.selectRadio === 1">
          <el-date-picker
              v-model="form.endTime"
              @change="changEndTime"
              type="date"
              value-format="yyyy-MM-dd HH:mm:ss"
              placeholder="选择日期">
          </el-date-picker>
        </el-form-item>
        <el-form-item label="保单号:" prop="code">
          <el-input v-model="form.code" placeholder="请输入" v-trim/>
        </el-form-item>
        <el-form-item label="上传保险单:" prop="baoxianFile">
          <UploadFile @remove="dele3" :uploadData="{ folder: 'apply',fileType:'.pdf' }" :fileList="form.fileList1" @uploadSuccess="baoxianFileUploaded" />
          <UploadFile @remove="dele3"  :uploadData="{ folder: 'apply',fileType:'.pdf' }" :fileList="form.fileList1" @uploadSuccess="baoxianFileUploaded" />
        </el-form-item>
        <div v-for="(item,index) in this.model.applyList" :key="index">
        <div class="box_table">
          <div class="box_table_head">
            <div class="box_table_head_item">序号</div>
            <div class="box_table_head_item">被保险人</div>
            <div  class="box_table_head_item">在保/投保人数</div>
            <div class="box_table_head_item">操作</div>
            <div class="box_table_head_item">服务费(当前保单)</div>
          </div>
          <div class="box_table_content" v-for="(item, index) in model.applyList" :key="index">
            <div class="box_table_content_item">{{index + 1}}</div>
            <div class="box_table_content_item" >{{ item.companyName }}</div>
            <div class="box_table_content_item">{{item.guaranteeNum}} / {{ item.insureNum }}</div>
            <div class="box_table_content_item">
              <el-form-item label="" prop="bxdMultifileList[index]">
                <UploadFileLink   @remove="deleIndex(1,index)" :uploadData="{ folder: 'apply',fileType:'.pdf' }" :fileIndex="index" :showTips="showTips" :fileList="model.applyList[index].fileList1" @uploadSuccess="baoxianFileUploaded2" />
              </el-form-item>
            </div>
            <div class="box_table_content_item">  <el-input style="width: 60%" v-model="form.bxdMultifileList[index].serverMoney" placeholder="请输入"  ></el-input>
              <span style="margin-left: 15px">元/人</span></div>
          </div>
        </div>
<!--        <div v-for="(item,index) in this.model.applyList" :key="index">
          <el-form-item :label="item.companyName" prop="bxdMultifileList[index]">
            <UploadFile   :uploadData="{ folder: 'apply',fileType:'.pdf' }" :fileIndex="index" :showTips="showTips" :fileList="model.applyList[index].fileList1" @uploadSuccess="baoxianFileUploaded2" />
          </el-form-item>
        </div>
        </div>-->
      </el-form>
      <template v-slot:footer>
        <el-button type="primary" @click="doSubmit">确 定</el-button>
@@ -72,11 +99,12 @@
  uploadToubaodan
} from '@/api/business/unionApply'
import UploadFile from '@/components/common/UploadFile'
import UploadFileLink from '@/components/common/UploadFileLink'
export default {
  name: 'OperaUnionApplyCheckWindow',
  extends: BaseOpera,
  components: { UploadFile, GlobalWindow },
  components: { UploadFile, GlobalWindow ,UploadFileLink},
  data () {
    return {
      // 表单数据
@@ -100,6 +128,9 @@
        startTime: [
          { required: true, message: '请完善信息' }
        ],
        endTime: [
          { required: true, message: '请完善信息' }
        ],
        baoxianFile: [
          { required: true, message: '请完善信息' }
        ]
@@ -109,6 +140,7 @@
        backCheckInfo: '',
        editCheckInfo: '',
        startTime: null,
        endTime: null,
        code: null,
        toubaodanFile: null,
        baoxianFile: null,
@@ -130,13 +162,20 @@
    })
  },
  methods: {
    changEndTime(){
      this.form.endTime=this.form.endTime.replace(" 00:00:00"," 23:59:59")
    },
    dele2 () {
      this.form.toubaodanFile= null
    },
    deleIndex (flag,index) {
      if(flag == 0)
      this.form.tbdMultifileList[index].fileurl = null
      this.form.tbdMultifileList[index].name = null
      if(flag == 0){
        this.form.tbdMultifileList[index].fileurl = null
        this.form.tbdMultifileList[index].name = null
      }else  if(flag ==1){
        this.form.bxdMultifileList[index].fileUrl = null
        this.form.bxdMultifileList[index].fileName = null
      }
    },
    dele3 () {
      this.form.baoxianFile = null
@@ -152,10 +191,13 @@
        editDate: '',
        editCode: '',
        startTime: null,
        endTime: null,
        code: null,
        toubaodanFile: null,
        baoxianFile: null,
        editBaoxianFile: null,
        tbdMultifileList:[],
        bxdMultifileList:[],
        fileList: [],
        fileList1: [],
        selectRadio: 0
@@ -163,6 +205,7 @@
      this.model = target
      this.form.startTime = target.startTime
      this.form.endTime = target.endTime
      this.title = title
      this.flag = flag
      this.visible1 = false
@@ -188,7 +231,7 @@
        if(this.model.applyList){
          this.model.applyList.forEach(item =>{
            item.fileList1 =[]
            this.form.bxdMultifileList.push({objId:item.id,fileurl:null,name:null})
            this.form.bxdMultifileList.push({applyId:item.id,serverMoney:0,fileUrl:null,fileName:null})
          })
        }
      }
@@ -223,8 +266,10 @@
    selectChange () {
      if (this.form.selectRadio == 0) {
        this.form.startTime = this.model.startTime
        this.form.endTime = this.model.endTime
      } else {
        this.form.startTime = ''
        // this.form.startTime = ''
        // this.form.endTime = ''
      }
    },
    toubaoFileUploaded (data) {
@@ -238,11 +283,11 @@
      this.form.baoxianFile = data
    },
    baoxianFileUploaded2 (data) {
      this.form.bxdMultifileList[data.index].fileurl = data.fileurl
      this.form.bxdMultifileList[data.index].name = data.name
      this.form.bxdMultifileList[data.index].fileUrl = data.fileurl
      this.form.bxdMultifileList[data.index].fileName = data.name
    },
    backDo () {
      this.$dialog.messageConfirm('确认进行该操作吗?')
      this.$dialog.messageConfirm('您确认进行该操作吗?')
        .then(() => {
          this.isWorking = true
          cancel({ id: this.model.id, reason: this.form.backCheckInfo })
@@ -255,7 +300,7 @@
        })
    },
    uploadToubaodan () {
      this.$dialog.messageConfirm('确认进行该操作吗?')
      this.$dialog.messageConfirm('提交后不可修改,请再次核对后确认提交!')
        .then(() => {
          this.isWorking = true
          console.log(this.form.tbdMultifileList )
@@ -270,10 +315,20 @@
    },
    uploadBaoxiandan () {
      this.$dialog.messageConfirm('确认进行该操作吗?')
      this.$dialog.messageConfirm('提交后不可修改,请再次核对后确认提交!')
        .then(() => {
          this.isWorking = true
          uploadBXD({ id: this.model.id, startTime: this.form.startTime, code: this.form.code, baoxiandanFile: this.form.baoxianFile })
          var param ={
            id: this.model.id,
            startTime: this.form.startTime,
            endTime: this.form.endTime,
            code: this.form.code,
            fileUrl: this.form.baoxianFile.fileurl,
            fileName: this.form.baoxianFile.name,
            unionApplyBXDDDetailDTOList:this.form.bxdMultifileList
          }
          console.log(param)
          uploadBXD(param)
            .then(response => {
              this.visible = false
              this.$emit('success')
@@ -428,4 +483,129 @@
            }
        }
    }
    .box_table {
      width: 100%;
      border-top: 1px solid #b4bbc5;
      border-left: 1px solid #b4bbc5;
      box-sizing: border-box;
      .box_table_head {
        width: 100%;
        display: flex;
        align-items: center;
        .box_table_head_item1 {
          flex: 1;
          height: 50px;
          background: #f2f2f2;
          display: flex;
          align-items: center;
          justify-content: center;
          font-size: 14px;
          color: black;
          border-right: 1px solid #b4bbc5;
          border-bottom: 1px solid #b4bbc5;
          box-sizing: border-box;
        }
        .box_table_head_item {
          flex: 1;
          height: 50px;
          background: #f2f2f2;
          display: flex;
          align-items: center;
          justify-content: center;
          font-size: 14px;
          color: black;
          border-right: 1px solid #b4bbc5;
          border-bottom: 1px solid #b4bbc5;
          box-sizing: border-box;
          &:nth-child(1) {
            flex: 0.5;;
          }
          &:nth-child(2) {
             flex:1.5;
           }
          &:nth-child(4) {
             flex:1.5;
           }
          &:nth-child(5) {
            flex: 1.5;;
          }
        }
        .box_table_head_item5 {
          flex: 1;
          height: 50px;
          background: #f2f2f2;
          display: flex;
          align-items: center;
          justify-content: center;
          font-size: 14px;
          color: black;
          border-right: 1px solid #b4bbc5;
          border-bottom: 1px solid #b4bbc5;
          box-sizing: border-box;
          &:nth-child(2) {
            flex: 5;
          }
        }
        .box_form_item {
          flex: 1;
          height: 50px;
          background: #ffffff;
          display: flex;
          align-items: center;
          justify-content: center;
          font-size: 14px;
          color: black;
          border-right: 1px solid #b4bbc5;
          border-bottom: 1px solid #b4bbc5;
          box-sizing: border-box;
          &:nth-child(1) {
            //flex: 0.5;
          }
        }
      }
      .box_table_content {
        width: 100%;
        display: flex;
        align-items: center;
        .box_table_content_header{
          border-bottom: 0px solid #b4bbc5 !important;
        }
        .box_table_content_item {
          //white-space: nowrap;
          overflow: hidden;
          //text-overflow: ellipsis;
          flex: 1;
          height: 50px;
          padding: 10px;
          background: #ffffff;
          display: flex;
          align-items: center;
          justify-content: center;
          font-size: 14px;
          color: black;
          border-right: 1px solid #b4bbc5;
          border-bottom: 1px solid #b4bbc5;
          box-sizing: border-box;
          &:nth-child(1) {
            flex: 0.5;;
          }
          &:nth-child(2) {
            flex:1.5;
          }
          &:nth-child(4) {
            flex: 1.5;
          }
          &:nth-child(5) {
            flex: 1.5;
          }
          span{
            width: 100%;
            white-space: nowrap;
            word-wrap: break-word;
            text-overflow: ellipsis;
            overflow: hidden;
          }
        }
      }
    }
</style>