From 3a45da15c947c2d478a44a51bd0f926647b1b841 Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期五, 11 四月 2025 16:33:17 +0800
Subject: [PATCH] 提交

---
 company/src/components/enterprise/OperaInsuranceApplyAddWindow.vue |  264 ++++++++++++++++++++++++++++++----------------------
 1 files changed, 154 insertions(+), 110 deletions(-)

diff --git a/company/src/components/enterprise/OperaInsuranceApplyAddWindow.vue b/company/src/components/enterprise/OperaInsuranceApplyAddWindow.vue
index b079e87..15fb687 100644
--- a/company/src/components/enterprise/OperaInsuranceApplyAddWindow.vue
+++ b/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,41 +122,41 @@
             <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">{{item.specialAgreement}}</span>
-      <span v-if="item.specialInfo">{{item.specialInfo}}</span>
-      <span v-if="item.ortherInfo">{{item.ortherInfo}}</span>
+      <span v-if="item.specialAgreement"  v-html="item.specialAgreement"></span>
+      <span v-if="item.specialInfo" v-html="item.specialInfo"> </span>
+      <span v-if="item.ortherInfo" v-html="item.ortherInfo"></span>
     </div>
     <!--    閫夋嫨鍛樺伐    -->
     <selectEmployees ref="selectEmployees" @result="getValue" />
@@ -162,23 +179,30 @@
 import BaseOpera from '@/components/base/BaseOpera'
 import GlobalWindow from '@/components/common/GlobalWindow'
 import selectEmployees from '@/components/enterprise/selectEmployees'
-import addEmployee from '@/components/enterprise/addEmployee'
+import addEmployee from '@/components/enterprise/addEmployeeWithDu'
 import importEmployees from '@/components/enterprise/importEmployees'
 import confirmJobType from '@/components/enterprise/confirmJobType'
 import detailsPolicyholder from '@/components/business/detailsPolicyholder'
-// import OperaInsuranceApplyDetails from '@/components/business/OperaInsuranceApplyWindow'
-// import OperaWtbApplyShopWindow from '@/components/business/OperaWtbApplyShopWindow'
 import { all, getNewVersion } from '@/api/business/solutions'
 import { mapState } from 'vuex'
-import { create, getCountCyclePriceVO, getDetail, findList, updateData } from '@/api/business/insuranceApply'
+import { create, getCountCyclePriceVO, getDetail, findList } from '@/api/business/insuranceApply'
+import { UTable, UTableColumn } from 'umy-ui'
 export default {
-  name: 'OperaInsuranceApplyAddWindow',
+  name: 'OperaInsuranceApplyAddWindowNew',
   extends: BaseOpera,
-  components: { GlobalWindow, selectEmployees, addEmployee,importEmployees, confirmJobType, detailsPolicyholder
-    // ,  OperaWtbApplyShopWindow, OperaInsuranceApplyDetails
+  components: {
+    GlobalWindow,
+    selectEmployees,
+    addEmployee,
+    importEmployees,
+    confirmJobType,
+    detailsPolicyholder,
+    UTable,
+    UTableColumn
   },
   data () {
     return {
+      sumFee: 0,
       form: {
         id: null,
         ID: null,
@@ -214,6 +238,17 @@
   computed: {
     ...mapState(['userInfo'])
   },
+  watch: {
+    // 鐩戝惉tableData鐨勫彉鍖�
+    tableData: {
+      deep: true,
+      handler (newVal, oldVal) {
+        // 鏁版嵁鍙樺寲鏃剁殑澶勭悊閫昏緫
+        this.getSummaries2()
+        console.log(this.tableData.length)
+      }
+    }
+  },
   methods: {
     successEvent () {
       const arr = JSON.parse(JSON.stringify(this.tableData))
@@ -227,25 +262,19 @@
         applyStartTime: this.form.applyStartTime,
         applyEndTime: this.form.applyEndTime,
         solutionId: this.form.solutionId
-      }).then(res=> {
+      }).then(res => {
         console.log(res)
-        this.visible = false
-        if (this.item.type == 1) {
-          // this.$refs.OperaWtbApplyShopWindow.open('濮旀墭鎶曚繚璇︽儏', { id: res })
-          this.$emit('success','濮旀墭鎶曚繚璇︽儏', { id: res })
-        } else {
-          // this.$refs.OperaInsuranceApplyDetails.open('鎶曚繚璇︽儏', { id: res })
-          this.$emit('success','鎶曚繚璇︽儏', { id: res })
-        }
+        this.$emit('success', 1, { id: res,godetail:true,type:this.item.type})
         this.$tip.apiSuccess('鎿嶄綔鎴愬姛')
+        this.visible = false
         // this.$emit('success','濮旀墭鎶曚繚璇︽儏', { id: res })
       })
-          .catch(e => {
-            this.$tip.apiFailed(e)
-          })
-          .finally(() => {
-            this.isWorking = false
-          })
+        .catch(e => {
+          this.$tip.apiFailed(e)
+        })
+        .finally(() => {
+          this.isWorking = false
+        })
       // } else {
       //     updateData({
       //         id: this.form.id,
@@ -295,45 +324,57 @@
     // 鑾峰彇鎶曚繚璇︽儏
     getDetails () {
       findList({ applyId: this.form.id })
-          .then(res => {
-            res.forEach(item => {
-              console.log(item)
-              item.idCard = item.idcardNo
-              item.fee = ''
-              if (this.type === 1) {
-                item.duName = ''
-                item.duId = ''
-                item.worktypeId = ''
-                item.workTypeName = ''
-              }
-            })
-            this.tableData = res
+        .then(res => {
+          res.forEach(item => {
+            console.log(item)
+            item.idCard = item.idcardNo
+            item.fee = ''
+            if (this.type === 1) {
+              // item.duName = ''
+              // item.duId = ''
+              // item.worktypeId = ''
+              // item.workTypeName = ''
+            }
           })
+          this.tableData = res
+        })
       getDetail(this.form.id)
-          .then(res => {
-            // this.form.solutionId = res.solutionId
-            this.changeSolution1(res.solutionId)
-          })
+        .then(res => {
+          // this.form.solutionId = res.solutionId
+          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) {
@@ -347,6 +388,7 @@
           }
         })
       })
+      // this.getSummaries2()
     },
     confirm () {
       this.$refs.form.validate((valid) => {
@@ -365,11 +407,11 @@
           }
 
           let price = 0
-          if (this.item && this.item.type != 1) {
-            this.tableData.forEach(item => {
-              price = price + item.fee
-            })
-          }
+          // 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,
@@ -435,7 +477,7 @@
         this.$message.warning('璇峰厛閫夋嫨淇濋櫓鏂规')
         return
       }
-      this.$refs.addEmployee.open('娣诲姞鍛樺伐', { arr: this.tableData, price: this.price })
+      this.$refs.addEmployee.open('娣诲姞鍛樺伐', { arr: this.tableData, price: this.price, solutionId: this.form.solutionId })
     },
     uploadUser () {
       if (!this.form.solutionId) {
@@ -446,14 +488,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 = ''
@@ -462,11 +505,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()
         }
       })
@@ -477,25 +520,25 @@
     // 鍒囨崲鏂规
     changeSolution1 (e) {
       getNewVersion(e)
-          .then(res => {
-            this.form.solutionId = res.id
-            this.company.forEach(item => {
-              if (item.id === res.id) {
-                // this.price = item.price
-                this.item = item
-                if(this.item && this.item.type==1){
-                  this.item.fee=0
-                }
-                this.updatePickerOptions()
-              }
-            })
+        .then(res => {
+          this.form.solutionId = res.id
+          this.company.forEach(item => {
+            if (item.id === res.id) {
+              this.price = item.price
+              this.item = item
+              this.updatePickerOptions()
+            }
           })
+        })
       this.tableData.forEach(item => {
+        // if (this.item.type != 0) {
         item.fee = this.price
+        // }
       })
     },
     dele (index) {
       this.tableData.splice(index, 1)
+      // this.getSummaries2()
     },
     getUser (obj) {
       this.seleData.forEach(id => {
@@ -526,9 +569,9 @@
     // 鏌ヨ鍏ㄩ儴鏂规
     getCompany () {
       all({})
-          .then(res => {
-            this.company = res
-          })
+        .then(res => {
+          this.company = res
+        })
     },
     getAgeByIdCard (idCard) {
       const sexAndAge = {}
@@ -559,6 +602,7 @@
     },
     getValue (list) {
       this.tableData.push(...list)
+      this.getSummaries2()
     }
   }
 }

--
Gitblit v1.9.3