From d2bc6e096f0806b78ea92d4b90a21d3627d406c7 Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期五, 08 三月 2024 18:28:42 +0800
Subject: [PATCH] mrshi

---
 company/src/components/enterprise/OperaInsuranceApplyWindow.vue |  204 ++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 136 insertions(+), 68 deletions(-)

diff --git a/company/src/components/enterprise/OperaInsuranceApplyWindow.vue b/company/src/components/enterprise/OperaInsuranceApplyWindow.vue
index d31b415..b6ed940 100644
--- a/company/src/components/enterprise/OperaInsuranceApplyWindow.vue
+++ b/company/src/components/enterprise/OperaInsuranceApplyWindow.vue
@@ -25,10 +25,12 @@
                             @change="getTimeVal"
                             v-model="form.applyStartTime"
                             type="date"
+                            class="date_picker"
+                            :clearable="false"
                             :disabled="!form.solutionId"
                             :picker-options="pickerOptions"
-                            value-format="yyyy-MM-dd"
-                            format="yyyy 骞� MM 鏈� dd 鏃�"
+                            value-format="yyyy-MM-dd HH:mm:ss"
+                            format="yyyy-MM-dd HH:mm:ss"
                             placeholder="閫夋嫨鏃ユ湡">
                         </el-date-picker>
                         <span style="color: #F95601; font-size: 14px;">锛堟鏃ョ敓鏁堟姇淇濊浜�17:30鍓嶆彁浜わ紝瓒呮椂鎻愪氦浠ヤ繚闄╁崟涓哄噯锛�</span>
@@ -39,8 +41,10 @@
                         disabled
                         v-model="form.applyEndTime"
                         type="date"
-                        value-format="yyyy-MM-dd"
-                        format="yyyy 骞� MM 鏈� dd 鏃�"
+                        class="date_picker"
+                        :picker-options="pickerOptions"
+                        value-format="yyyy-MM-dd HH:mm:ss"
+                        format="yyyy-MM-dd HH:mm:ss"
                         placeholder="閫夋嫨鏃ユ湡">
                     </el-date-picker>
                 </el-form-item>
@@ -96,7 +100,10 @@
             <el-table-column
                 label="骞撮緞">
                 <template slot-scope="{row}">
-                    <span v-if="row.idCard">{{ getAgeByIdCard(row.idCard) }}</span>
+                    <template v-if="item">
+                        <span style="color: red;" v-if="row.idCard && (getAgeByIdCard(row.idCard) < item.minAge || getAgeByIdCard(row.idCard) > item.maxAge)">{{ getAgeByIdCard(row.idCard) }}</span>
+                        <span v-else>{{ getAgeByIdCard(row.idCard) }}</span>
+                    </template>
                 </template>
             </el-table-column>
             <el-table-column
@@ -131,6 +138,8 @@
         <importEmployees ref="importEmployees" @result="getValue" />
         <!--    纭宸ョ    -->
         <confirmJobType ref="confirmJobType" @result="getUser" />
+        <!--    鏌ョ湅璇﹀崟    -->
+        <detailsPolicyholder ref="detailsPolicyholder" @success="successEvent" />
     </GlobalWindow>
 </template>
 
@@ -141,12 +150,14 @@
 import addEmployee from '@/components/enterprise/addEmployee'
 import importEmployees from '@/components/enterprise/importEmployees'
 import confirmJobType from '@/components/enterprise/confirmJobType'
-import { all } from '@/api/business/solutions'
+import detailsPolicyholder from '@/components/business/detailsPolicyholder'
+import { all, getNewVersion } from '@/api/business/solutions'
+import { mapState } from 'vuex'
 import { create, getCountCyclePriceVO, getDetail, findList, updateData } from '@/api/business/insuranceApply'
 export default {
-  name: 'OperaInsuranceApplyWindow',
+  name: 'OperaInsuranceApplyWindow2',
   extends: BaseOpera,
-  components: { GlobalWindow, selectEmployees, addEmployee, importEmployees, confirmJobType },
+  components: { GlobalWindow, selectEmployees, addEmployee, importEmployees, confirmJobType, detailsPolicyholder },
   data () {
     return {
       form: {
@@ -156,6 +167,8 @@
           applyStartTime: '',
           applyEndTime: ''
       },
+      solutionName: '',
+      type: '',
       pickerOptions: {}, // 瀛樻斁picker options鐨勫彉閲�
       price: '',
       company: [],
@@ -179,18 +192,69 @@
           'field.id': 'id'
       })
   },
+    computed: {
+      ...mapState(['userInfo'])
+    },
     methods: {
+      successEvent() {
+          let arr = JSON.parse(JSON.stringify(this.tableData))
+          arr.forEach(item => {
+              item.idcardNo = item.idCard
+          })
+          this.isWorking = true
+          // if (!this.form.id) {
+              create({
+                  applyDetailList: arr,
+                  applyStartTime: this.form.applyStartTime,
+                  applyEndTime: this.form.applyEndTime,
+                  solutionId: this.form.solutionId
+              }).then(() => {
+                  this.visible = false
+                  this.$tip.apiSuccess('鎿嶄綔鎴愬姛')
+                  this.$emit('success')
+              })
+                  .catch(e => {
+                      this.$tip.apiFailed(e)
+                  })
+                  .finally(() => {
+                      this.isWorking = false
+                  })
+          // } else {
+          //     updateData({
+          //         id: this.form.id,
+          //         applyDetailList: arr,
+          //         applyStartTime: this.form.applyStartTime,
+          //         applyEndTime: this.form.applyEndTime,
+          //         solutionId: this.form.solutionId
+          //     }).then(() => {
+          //         this.visible = false
+          //         this.$tip.apiSuccess('鎿嶄綔鎴愬姛')
+          //         this.$emit('success')
+          //     }).catch(e => {
+          //         this.$tip.apiFailed(e)
+          //     })
+          //         .finally(() => {
+          //             this.isWorking = false
+          //         })
+          // }
+      },
       open (title, target) {
           this.title = title
           this.tableData = []
           this.form.id = null
           this.item = null
+          if (target.type) {
+              this.type = target.type
+          }
           this.form.solutionId = ''
           this.form.applyStartTime = ''
           this.form.applyEndTime = ''
           if (target && target.id) {
-              this.form.id = target.id
-              this.getDetails()
+              this.$nextTick(() => {
+                  this.$refs.form.resetFields()
+                  this.form.id = target.id
+                  this.getDetails()
+              })
           } else {
               this.$nextTick(() => {
                   this.$refs.form.resetFields()
@@ -206,14 +270,21 @@
             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
                 })
             getDetail(this.form.id)
                 .then(res => {
-                    this.form.solutionId = res.solutionId
+                    // this.form.solutionId = res.solutionId
                     this.changeSolution1(res.solutionId)
                 })
         },
@@ -242,7 +313,7 @@
             }
             this.seleData.forEach(item => {
                 this.tableData.forEach((row, index) => {
-                    if (item === row.name) {
+                    if (item === row.idCard) {
                         this.tableData.splice(index, 1)
                     }
                 })
@@ -256,52 +327,27 @@
                         return
                     }
                     for (let i = 0; i < this.tableData.length; i++) {
-                        console.log(this.tableData[i].worktypeId, this.tableData[i].duId)
+                        console.log(this.tableData[i].worktypeId)
+                        console.log(this.tableData[i].duId)
                         if (!this.tableData[i].worktypeId || !this.tableData[i].duId) {
                             this.$message.warning('璇峰畬鍠勬淳閬e崟浣嶅拰宸ョ淇℃伅')
                             return
                         }
                     }
-                    let arr = JSON.parse(JSON.stringify(this.tableData))
-                    arr.forEach(item => {
-                        item.idcardNo = item.idCard
+
+                    let price = 0
+                    this.tableData.forEach(item => {
+                        price = price + item.fee
                     })
-                    this.isWorking = true
-                    if (!this.form.id) {
-                        create({
-                            applyDetailList: arr,
-                            applyStartTime: this.form.applyStartTime,
-                            applyEndTime: this.form.applyEndTime,
-                            solutionId: this.form.solutionId
-                        }).then(() => {
-                            this.visible = false
-                            this.$tip.apiSuccess('鎿嶄綔鎴愬姛')
-                            this.$emit('success')
-                        })
-                            .catch(e => {
-                                this.$tip.apiFailed(e)
-                            })
-                            .finally(() => {
-                                this.isWorking = false
-                            })
-                    } else {
-                        updateData({
-                            id: this.form.id,
-                            applyDetailList: arr,
-                            applyStartTime: this.form.applyStartTime,
-                            applyEndTime: this.form.applyEndTime,
-                            solutionId: this.form.solutionId
-                        }).then(() => {
-                            this.visible = false
-                            this.$tip.apiSuccess('鎿嶄綔鎴愬姛')
-                            this.$emit('success')
-                        }).catch(e => {
-                            this.$tip.apiFailed(e)
-                        })
-                        .finally(() => {
-                            this.isWorking = false
-                        })
-                    }
+                    this.$refs.detailsPolicyholder.open('鎶曚繚璇︽儏鍗�', {
+                        companyName: this.userInfo.company.name,
+                        solutionName: this.item.name,
+                        applyStartTime: this.form.applyStartTime,
+                        applyEndTime: this.form.applyEndTime,
+                        insureNum: this.tableData.length,
+                        totalPrice: price,
+                        detailList: this.tableData
+                    })
 
                 }
             })
@@ -313,11 +359,10 @@
                 startDate: time
             }).then(res => {
                 this.price = res.cyclePrice
-                this.form.applyEndTime = res.endDate.substring(0, 10)
+                this.form.applyEndTime = res.endDate
                 this.tableData.forEach(item => {
                     item.fee = res.cyclePrice
                 })
-                console.log(this.tableData)
                 this.$forceUpdate()
             })
         },
@@ -342,7 +387,7 @@
                         return time.getTime() <= new Date(currentDate.toLocaleString()).getTime() - 8.64e7;
                     } else if (that.item.validType === 0) {
                         // 澶氬皯鏃ュ悗鐢熸晥
-                        return time.getTime() <= new Date(that.getDate(that.item.validTypeNum)).getTime();
+                        return time.getTime() <= new Date(that.getDate(that.item.validTypeNum - 1)).getTime();
                     }
                 }
             };
@@ -352,7 +397,7 @@
                 this.$message.warning('璇峰厛閫夋嫨淇濋櫓鏂规')
                 return
             }
-            this.$refs.selectEmployees.open('閫夊彇鍛樺伐', { arr: this.tableData, price: this.price })
+            this.$refs.selectEmployees.open('閫夊彇鍛樺伐', { arr: this.tableData, price: this.price, type: 1 })
         },
       addUser() {
           if (!this.form.solutionId) {
@@ -366,11 +411,24 @@
               this.$message.warning('璇峰厛閫夋嫨淇濋櫓鏂规')
               return
           }
-          this.$refs.importEmployees.open('涓婁紶鍚嶅崟', { arr: this.tableData, price: this.price })
+          this.$refs.importEmployees.open('涓婁紶鍚嶅崟', { arr: this.tableData, solutionId: this.form.solutionId, type: 1, price: this.price })
       },
       // 鍒囨崲鏂规
       changeSolution(e) {
-          this.tableData = []
+          if (!this.form.id) {
+              this.tableData = []
+          } else {
+              this.price = ''
+              this.form.applyEndTime = ''
+              this.form.applyStartTime = ''
+              this.tableData.forEach(item => {
+                  item.fee = ''
+                  item.duName = ''
+                  item.duId = ''
+                  item.workTypeName = ''
+                  item.workTypeId = ''
+              })
+          }
           this.company.forEach(item => {
               if (item.id === e) {
                   // this.price = item.price
@@ -384,13 +442,17 @@
       },
         // 鍒囨崲鏂规
         changeSolution1(e) {
-            this.company.forEach(item => {
-                if (item.id === e) {
-                    // this.price = item.price
-                    this.item = item
-                    this.updatePickerOptions()
-                }
-            })
+            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
+                            this.updatePickerOptions()
+                        }
+                    })
+                })
             this.tableData.forEach(item => {
                 item.fee = this.price
             })
@@ -399,9 +461,9 @@
           this.tableData.splice(index, 1)
       },
       getUser(obj) {
-          this.seleData.forEach(item => {
+          this.seleData.forEach(id => {
               this.tableData.forEach(row => {
-                   if (item === row.name) {
+                   if (id === row.idCard) {
                        row.workTypeName = obj.workTypeName
                        row.worktypeId = obj.worktypeId
                        row.duName = obj.duName
@@ -456,7 +518,7 @@
           return sexAndAge.age
       },
       handleSelectionChange (e) {
-          this.seleData = e.map(item => item.name)
+          this.seleData = e.map(item => item.idCard)
       },
       getValue(list) {
           this.tableData.push(...list)
@@ -465,6 +527,12 @@
 }
 </script>
 
+<style>
+    .el-picker-panel__footer .el-button--text.el-picker-panel__link-btn {
+        display: none;
+    }
+</style>
+
 <style lang="scss" scoped>
     .list {
         width: 100%;

--
Gitblit v1.9.3