jiangping
2024-06-07 8a266df75e912cc4ff49bc504db5b6b26f152892
company/src/components/enterprise/OperaInsuranceApplyAddWindow.vue
@@ -48,17 +48,17 @@
              placeholder="选择日期">
          </el-date-picker>
        </el-form-item>
        <el-form-item label="投保年龄" v-if="item">
<!--        <el-form-item label="投保年龄" v-if="item && item.id !=null">
          <span>{{item.minAge}} 至 {{item.maxAge}}</span>
        </el-form-item>
        <el-form-item label="费用" v-if="item && item.type ==0">
        <el-form-item label="费用" v-if="item && item.id !=null">
          <span>{{item.price}}元</span>
          <span v-if="item.timeUnit === 0">/天</span>
          <span v-if="item.timeUnit === 1">/半月</span>
          <span v-if="item.timeUnit === 2">/月</span>
          <span v-if="item.timeUnit === 3">/年</span>
          <span>/人</span>
        </el-form-item>
        </el-form-item>-->
      </el-form>
    </div>
    <div class="btns">
@@ -69,35 +69,52 @@
        <el-button type="danger" @click="deleItem">删除</el-button>
      </div>
      <div class="btns_item">
        <div style="display: inline-block;margin-right: 30px;font-size: 14px" v-if="item && item.id !=null">
          <span>投保年龄:</span>
          <span>{{item.minAge}} 至 {{item.maxAge}}周岁</span>
          <span style="margin-left: 20px">费用:</span>
          <span>{{item.price}}元</span>
          <span v-if="item.timeUnit === 0">/天</span>
          <span v-if="item.timeUnit === 1">/半月</span>
          <span v-if="item.timeUnit === 2">/月</span>
          <span v-if="item.timeUnit === 3">/年</span>
          <span>/人</span>
        </div>
        <div style="display: inline-block;margin-right: 30px;font-size: 14px"><span>合计费用:</span>
        <span style="font-weight: bold;color: red">{{sumFee}}</span>元
        </div>
        <el-button type="primary" @click="sele">选取派遣单位</el-button>
      </div>
    </div>
    <el-table
<!--    show-summary
    :summary-method="getSummaries"-->
    <u-table
        :data="tableData"
        border
        show-summary
        :summary-method="getSummaries"
        use-virtual
        :row-height="30"
        :height="680"
        ref="multipleTable"
        @selection-change="handleSelectionChange"
        style="width: 100%;margin-bottom: 15px;">
      <el-table-column
      <u-table-column
          type="selection"
          width="55">
      </el-table-column>
      <el-table-column label="序号" width="80px">
      </u-table-column>
      <u-table-column label="序号" width="80px">
        <template slot-scope="scope">
          <span>{{scope.$index + 1}}</span>
        </template>
      </el-table-column>
      <el-table-column
      </u-table-column>
      <u-table-column
          prop="memberName"
          label="姓名">
      </el-table-column>
      <el-table-column
      </u-table-column>
      <u-table-column
          prop="idCard"
          label="身份证号">
      </el-table-column>
      <el-table-column
      </u-table-column>
      <u-table-column
          label="年龄">
        <template slot-scope="{row}">
          <template v-if="item">
@@ -105,37 +122,37 @@
            <span v-else>{{ getAgeByIdCard(row.idCard) }}</span>
          </template>
        </template>
      </el-table-column>
      <el-table-column
      </u-table-column>
      <u-table-column
          prop="duName"
          label="派遣单位">
      </el-table-column>
      <el-table-column
      </u-table-column>
      <u-table-column
          prop="workTypeName"
          label="所属工种">
      </el-table-column>
      <el-table-column
      </u-table-column>
      <u-table-column
          prop="fee"
          label="费用">
        <template slot-scope="{row}">
          {{item.type==1?'-':row.fee}}
          {{row.fee}}
        </template>
      </el-table-column>
      <el-table-column
      </u-table-column>
      <u-table-column
          prop="remark"
          align="center"
          label="备注">
        <template slot-scope="{row}">
          <el-input v-model="row.remark" placeholder="请输入"></el-input>
        </template>
      </el-table-column>
      <el-table-column
      </u-table-column>
      <u-table-column
          label="操作">
        <template slot-scope="scope">
          <el-button type="text" style="color: red;" @click="dele(scope.$index)">删除</el-button>
        </template>
      </el-table-column>
    </el-table>
      </u-table-column>
    </u-table>
    <div class="info" v-if="item">
      <span v-if="item.specialAgreement"  v-html="item.specialAgreement"></span>
      <span v-if="item.specialInfo" v-html="item.specialInfo"> </span>
@@ -171,15 +188,19 @@
import { all, getNewVersion } from '@/api/business/solutions'
import { mapState } from 'vuex'
import { create, getCountCyclePriceVO, getDetail, findList, updateData } from '@/api/business/insuranceApply'
import { UTable, UTableColumn } from 'umy-ui'
// Vue.component(UTable.name, UTable);
// Vue.component(UTableColumn.name, UTableColumn);
export default {
  name: 'OperaInsuranceApplyAddWindow',
  extends: BaseOpera,
  components: {
    GlobalWindow, selectEmployees, addEmployee, importEmployees, confirmJobType, detailsPolicyholder
    GlobalWindow, selectEmployees, addEmployee, importEmployees, confirmJobType, detailsPolicyholder, UTable, UTableColumn
    // ,  OperaWtbApplyShopWindow, OperaInsuranceApplyDetails
  },
  data () {
    return {
      sumFee:0,
      form: {
        id: null,
        ID: null,
@@ -214,6 +235,17 @@
  },
  computed: {
    ...mapState(['userInfo'])
  },
  watch: {
    // 监听tableData的变化
    tableData: {
      deep: true,
      handler(newVal, oldVal) {
        // 数据变化时的处理逻辑
        this.getSummaries2()
        console.log(this.tableData.length)
      }
    }
  },
  methods: {
    successEvent () {
@@ -316,25 +348,37 @@
          this.changeSolution1(res.solutionId)
        })
    },
    getSummaries (param) {
      const { columns, data } = param
    getSummaries ({ columns, data }) {
      const sums = []
      // this.currentData = data; //记录当前页数据;
      columns.forEach((column, index) => {
        if (index === 0) {
        if (index == 0) {
          sums[index] = '总价'
        } else if (index === 7) {
          if (this.item || this.item.type == 1) {
            sums[index] = '-'
          } else {
            let total = 0
            this.tableData.forEach(item => {
              total += item.fee
            })
            sums[index] = total.toFixed(2)
          }
        } else if (index == 7) {
          // if (this.item || this.item.type == 1) {
          //   sums[index] = '-'
          // } else {
          let total = 0
          this.tableData.forEach(item => {
            total += item.fee
          })
          sums[index] = total.toFixed(2)
          // }
        }else {
          sums[index] = ''
        }
      })
      console.log(sums)
      return sums
    },
    getSummaries2 () {
      this.sumFee = 0;
      if(this.tableData&&this.tableData.length){
        this.tableData.forEach((column, index) => {
          this.sumFee = parseFloat(this.sumFee) + parseFloat(column.fee)
        })
        this.sumFee = (this.sumFee || 0).toFixed(2)
      }
    },
    deleItem () {
      if (this.seleData.length === 0) {
@@ -348,6 +392,7 @@
          }
        })
      })
      // this.getSummaries2()
    },
    confirm () {
      this.$refs.form.validate((valid) => {
@@ -366,11 +411,11 @@
          }
          let price = 0
          if (this.item && this.item.type != 1) {
          // if (this.item && this.item.type != 1) {
            this.tableData.forEach(item => {
              price = price + item.fee
            })
          }
          // }
          this.$refs.detailsPolicyholder.open('投保详情单', {
            companyName: this.userInfo.company.name,
            solutionName: this.item.name,
@@ -447,14 +492,15 @@
    },
    // 切换方案
    changeSolution (e) {
      this.sumFee =0;
      this.form.applyEndTime = ''
      this.form.applyStartTime = ''
      if (!this.form.id) {
        this.tableData = []
      } else {
        this.price = ''
        this.price = 0
        this.tableData.forEach(item => {
          item.fee = ''
          item.fee = 0
          item.duName = ''
          item.duId = ''
          item.workTypeName = ''
@@ -463,11 +509,11 @@
      }
      this.company.forEach(item => {
        if (item.id === e) {
          // this.price = item.price
          this.price = item.price
          this.item = item
          if (this.item && this.item.type == 1) {
            this.item.fee = 0
          }
          // if (this.item && this.item.type == 1) {
          //   this.item.fee = 0
          // }
          this.updatePickerOptions()
        }
      })
@@ -482,23 +528,21 @@
          this.form.solutionId = res.id
          this.company.forEach(item => {
            if (item.id === res.id) {
              // this.price = item.price
              this.price = item.price
              this.item = item
              if (this.item && this.item.type == 1) {
                this.item.fee = 0
              }
              this.updatePickerOptions()
            }
          })
        })
      this.tableData.forEach(item => {
        if(this.item.type != 0){
        // if (this.item.type != 0) {
          item.fee = this.price
        }
        // }
      })
    },
    dele (index) {
      this.tableData.splice(index, 1)
      // this.getSummaries2()
    },
    getUser (obj) {
      this.seleData.forEach(id => {
@@ -562,6 +606,7 @@
    },
    getValue (list) {
      this.tableData.push(...list)
      this.getSummaries2()
    }
  }
}