|  |  | 
 |  |  |     <GlobalWindow | 
 |  |  |         :title="title" | 
 |  |  |         width="100%" | 
 |  |  |         text="投保申请" | 
 |  |  |         text="批改申请" | 
 |  |  |         :visible.sync="visible" | 
 |  |  |         :confirm-working="isWorking" | 
 |  |  |         @confirm="confirm" | 
 |  |  | 
 |  |  |                 <el-form-item label="保险方案"> | 
 |  |  |                     <span>{{form.solutionsName}}</span> | 
 |  |  |                 </el-form-item> | 
 |  |  |                 <el-form-item label="批单生效起期" prop="applyStartTime"> | 
 |  |  | <!--                <el-form-item label="申请日期" prop="applyStartTime"> | 
 |  |  |                     <div style="display: flex; flex-direction: column;"> | 
 |  |  |                         <el-date-picker | 
 |  |  |                             @change="changeApplyStartTime" | 
 |  |  | 
 |  |  |                         </el-date-picker> | 
 |  |  |                         <span style="color: #F95601; font-size: 14px;">(次日生效投保请于17:30前提交,超时提交以保险单为准)</span> | 
 |  |  |                     </div> | 
 |  |  |                 </el-form-item> | 
 |  |  |                 </el-form-item>--> | 
 |  |  |                 <el-form-item label="投保年龄" v-if="item"> | 
 |  |  |                     <span>{{item.minAge}} 至 {{item.maxAge}}</span> | 
 |  |  |                 </el-form-item> | 
 |  |  |                 <el-form-item label="费用" v-if="item"> | 
 |  |  |                 <el-form-item label="费用" v-if="item && item.solutionType==0"> | 
 |  |  |                     <span>{{item.price}}元</span> | 
 |  |  |                     <span v-if="item.timeUnit === 0">/天</span> | 
 |  |  |                     <span v-if="item.timeUnit === 1">/半月</span> | 
 |  |  | 
 |  |  |                     label="投保人数"> | 
 |  |  |                 </el-table-column> | 
 |  |  |                 <el-table-column | 
 |  |  |                     prop="guaranteeNum" | 
 |  |  |                     align="center" | 
 |  |  |                     label="在保人数"> | 
 |  |  |                 </el-table-column> | 
 |  |  |                 <el-table-column | 
 |  |  |                     prop="serviceDays" | 
 |  |  |                     align="center" | 
 |  |  |                     label="在保时长(天)"> | 
 |  |  |                     label="保单时长(天)"> | 
 |  |  |                 </el-table-column> | 
 |  |  |                 <el-table-column | 
 |  |  |                     prop="currentFee" | 
 |  |  |                     align="center" | 
 |  |  |                     label="产生费用(元)"> | 
 |  |  |                     label="已产生费用(元)"> | 
 |  |  |                 </el-table-column> | 
 |  |  |                 <el-table-column | 
 |  |  |                     prop="fee" | 
 |  |  | 
 |  |  |         <div class="btns"> | 
 |  |  |             <div class="btns_item"> | 
 |  |  |                 <el-button type="primary" @click="seleUser">选取员工</el-button> | 
 |  |  |                 <el-button type="primary" @click="uploadUser" v-if="activeName !== '1'">导入员工</el-button> | 
 |  |  |                 <el-button type="primary" @click="uploadUser">导入员工</el-button> | 
 |  |  |                 <el-button type="primary" @click="addUser" v-if="activeName !== '1'">添加员工</el-button> | 
 |  |  |                 <el-button type="danger" @click="deleItem">删除</el-button> | 
 |  |  |             </div> | 
 |  |  | 
 |  |  |                 label="费用"> | 
 |  |  |                 <template slot-scope="{row}"> | 
 |  |  |                     <span v-if="activeName === '0'">{{row.fee}}</span> | 
 |  |  |                     <span v-else>{{row.fee ? '-' + row.fee : ''}}</span> | 
 |  |  |                     <span v-else>{{row.reducePrice ?  row.reducePrice : '0'}}</span> | 
 |  |  |                 </template> | 
 |  |  |             </el-table-column> | 
 |  |  |           <el-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 | 
 |  |  |                 label="操作"> | 
 |  |  |                 <template slot-scope="scope"> | 
 |  |  | 
 |  |  |             </el-table-column> | 
 |  |  |         </el-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" /> | 
 |  |  | 
 |  |  |         <importEmployees ref="importEmployees" @result="getValue" /> | 
 |  |  |         <!--    确认工种    --> | 
 |  |  |         <confirmJobType ref="confirmJobType" @result="getUser" /> | 
 |  |  |         <!--    详情    --> | 
 |  |  |         <ApplyChangeDetails1 ref="ApplyChangeDetails1" @success="success" /> | 
 |  |  |         <!-- 加减保详情 --> | 
 |  |  |         <OperaApplyChangeDetailWindow ref="OperaApplyChangeDetailWindow" /> | 
 |  |  |     </GlobalWindow> | 
 |  |  | </template> | 
 |  |  |  | 
 |  |  | <script> | 
 |  |  |     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 importEmployees from '@/components/enterprise/importEmployees' | 
 |  |  |     import confirmJobType from '@/components/enterprise/confirmJobType' | 
 |  |  |     import { all } from '@/api/business/solutions' | 
 |  |  |     import { getDetail } from '@/api/business/insuranceApply' | 
 |  |  |     import { create, getChangeCountCyclePriceVO } from '@/api/business/applyChange' | 
 |  |  |     import { getDate } from '@/utils/util' | 
 |  |  |     export default { | 
 |  |  |         name: 'additionSubtractionApplication', | 
 |  |  |         extends: BaseOpera, | 
 |  |  |         components: { GlobalWindow, selectEmployees, addEmployee, importEmployees, confirmJobType }, | 
 |  |  |         data () { | 
 |  |  |             return { | 
 |  |  |                 form: { | 
 |  |  |                     id: null, | 
 |  |  |                     solutionId: '', | 
 |  |  |                     solutionsName: '', | 
 |  |  |                     applyStartTime: '', | 
 |  |  |                     applyEndTime: '', | 
 |  |  |                     addDetailList: [], | 
 |  |  |                     delDetailList: [], | 
 |  |  |                 }, | 
 |  |  |                 activeName: '0', | 
 |  |  |                 pickerOptions: {}, | 
 |  |  |                 price: '', | 
 |  |  |                 endTime: '',    //    实际保险生效止期 | 
 |  |  |                 company: [], | 
 |  |  |                 seleData: [], | 
 |  |  |                 item: null, | 
 |  |  |                 // 验证规则 | 
 |  |  |                 rules: { | 
 |  |  |                     applyStartTime: [ | 
 |  |  |                         { required: true, message: '请选择批单生效起期' } | 
 |  |  |                     ] | 
 |  |  |                 }, | 
 |  |  |                 list: [] | 
 |  |  |             } | 
 |  |  |         }, | 
 |  |  |         created () { | 
 |  |  |             this.config({ | 
 |  |  |                 api: '/business/insuranceApply', | 
 |  |  |                 'field.id': 'id' | 
 |  |  |             }) | 
 |  |  |         }, | 
 |  |  |         methods: { | 
 |  |  |             open (title, target) { | 
 |  |  |                 this.title = title | 
 |  |  |                 this.form.addDetailList = [] | 
 |  |  |                 this.form.delDetailList = [] | 
 |  |  |                 this.list = [] | 
 |  |  |                 this.form.id = null | 
 |  |  |                 this.item = null | 
 |  |  |                 this.form.solutionId = '' | 
 |  |  |                 this.form.solutionsName = '' | 
 |  |  |                 this.form.applyStartTime = '' | 
 |  |  |                 this.form.applyEndTime = '' | 
 |  |  |                 if (target && target.id) { | 
 |  |  |                     this.$nextTick(() => { | 
 |  |  |                         this.$refs.form.resetFields() | 
 |  |  |                         this.form.id = target.id | 
 |  |  |                         this.getDetails() | 
 |  |  |                     }) | 
 |  |  |                 } else { | 
 |  |  |                     this.$nextTick(() => { | 
 |  |  |                         this.$refs.form.resetFields() | 
 |  |  |                         this.form[this.configData['field.id']] = null | 
 |  |  |                     }) | 
 |  |  |                 } | 
 |  |  |                 this.getCompany() | 
 |  |  |                 this.visible = true | 
 |  |  |                 // this.updatePickerOptions() | 
 |  |  |             }, | 
 |  |  |             changeApplyStartTime(e) { | 
 |  |  |                 getChangeCountCyclePriceVO({ | 
 |  |  |                     applyId: this.form.id, | 
 |  |  |                     validTime: e | 
 |  |  |                 }).then(res => { | 
 |  |  |                     this.price = res.cyclePrice | 
 |  |  |                     this.form.addDetailList.forEach(item => { | 
 |  |  |                         item.fee = res.cyclePrice | 
 |  |  |                     }) | 
 |  |  |                     this.form.delDetailList.forEach(item => { | 
 |  |  |                         item.fee = res.cyclePrice | 
 |  |  |                     }) | 
 |  |  |                 }) | 
 |  |  |             }, | 
 |  |  |             handleClick(e) { | 
 |  |  |                 this.activeName = e.index | 
 |  |  |             }, | 
 |  |  |             // 获取投保详情 | 
 |  |  |             getDetails() { | 
 |  |  |                 // findList({ applyId: this.form.id }) | 
 |  |  |                 //     .then(res => { | 
 |  |  |                 //         res.forEach(item => { | 
 |  |  |                 //             item.idCard = item.idcardNo | 
 |  |  |                 //             item.fee = '' | 
 |  |  |                 //         }) | 
 |  |  |                 //         this.tableData = res | 
 |  |  |                 //     }) | 
 |  |  |                 getDetail(this.form.id) | 
 |  |  |                     .then(res => { | 
 |  |  |                         this.list.push(res) | 
 |  |  |                         this.item = res | 
 |  |  |                         this.endTime = res.endTime | 
 |  |  |                         this.form.solutionId = res.solutionId | 
 |  |  |                         this.form.solutionsName = res.solutionsName | 
 |  |  |                         this.pickerOptions = { | 
 |  |  |                             disabledDate(time) { | 
 |  |  |                                 // - 8.64e7 | 
 |  |  |                                 if (getDate()) { | 
 |  |  |  | 
 |  |  |                                 } | 
 |  |  |                                 return time.getTime() > new Date(res.endTime).getTime() || time.getTime() < new Date(res.lastChangeDate ? res.lastChangeDate : res.startTime).getTime() | 
 |  |  |                             } | 
 |  |  |                         }; | 
 |  |  |                         // this.changeSolution1(res.solutionId) | 
 |  |  |                     }) | 
 |  |  |             }, | 
 |  |  |             getSummaries(param) { | 
 |  |  |                 const { columns, data } = param | 
 |  |  |                 const sums = [] | 
 |  |  |                 columns.forEach((column, index) => { | 
 |  |  |                     if (index === 0) { | 
 |  |  |                         sums[index] = '总价' | 
 |  |  |                         return | 
 |  |  |                     } else if (index === 7) { | 
 |  |  |                         let total = 0 | 
 |  |  |                         if (this.activeName === '0') { | 
 |  |  |                             this.form.addDetailList.forEach(item => { | 
 |  |  |                                 total += item.fee | 
 |  |  |                             }) | 
 |  |  |                             sums[index] = total | 
 |  |  |                             return | 
 |  |  |                         } else { | 
 |  |  |                             this.form.delDetailList.forEach(item => { | 
 |  |  |                                 total += item.fee | 
 |  |  |                             }) | 
 |  |  |                             sums[index] = '-' + total | 
 |  |  |                             return | 
 |  |  |                         } | 
 |  |  |                     } | 
 |  |  |                 }) | 
 |  |  |                 return sums | 
 |  |  |             }, | 
 |  |  |             deleItem() { | 
 |  |  |                 if (this.seleData.length === 0) { | 
 |  |  |                     this.$message.warning('至少选择一项内容') | 
 |  |  |                     return | 
 |  |  |                 } | 
 |  |  |                 if (this.activeName === '0') { | 
 |  |  |                     this.seleData.forEach(item => { | 
 |  |  |                         this.form.addDetailList.forEach((row, index) => { | 
 |  |  |                             if (item === row.name) { | 
 |  |  |                                 this.form.addDetailList.splice(index, 1) | 
 |  |  |                             } | 
 |  |  |                         }) | 
 |  |  |                     }) | 
 |  |  |                 } else { | 
 |  |  |                     this.seleData.forEach(item => { | 
 |  |  |                         this.form.delDetailList.forEach((row, index) => { | 
 |  |  |                             if (item === row.name) { | 
 |  |  |                                 this.form.delDetailList.splice(index, 1) | 
 |  |  |                             } | 
 |  |  |                         }) | 
 |  |  |                     }) | 
 |  |  |                 } | 
 |  |  |             }, | 
 |  |  |             confirm() { | 
 |  |  |                 this.$refs.form.validate((valid) => { | 
 |  |  |                     if (valid) { | 
 |  |  |                         // if (this.form.addDetailList.length === 0) { | 
 |  |  |                         //     this.$message.warning('至少添加一项员工') | 
 |  |  |                         //     return | 
 |  |  |                         // } | 
 |  |  |                         for (let i = 0; i < this.form.addDetailList.length; i++) { | 
 |  |  |                             if (!this.form.addDetailList[i].worktypeId || !this.form.addDetailList[i].duId) { | 
 |  |  |                                 this.$message.warning('请完善加保派遣单位和工种信息') | 
 |  |  |                                 return | 
 |  |  |                             } | 
 |  |  |                         } | 
 |  |  |                         for (let i = 0; i < this.form.delDetailList.length; i++) { | 
 |  |  |                             if (!this.form.delDetailList[i].worktypeId || !this.form.delDetailList[i].duId) { | 
 |  |  |                                 this.$message.warning('请完善减保派遣单位和工种信息') | 
 |  |  |                                 return | 
 |  |  |                             } | 
 |  |  |                         } | 
 |  |  |                         this.form.addDetailList.forEach(item => { | 
 |  |  |                             item.idcardNo = item.idCard | 
 |  |  |                         }) | 
 |  |  |                         this.form.delDetailList.forEach(item => { | 
 |  |  |                             item.idcardNo = item.idCard | 
 |  |  |                         }) | 
 |  |  |                         // let arr = JSON.parse(JSON.stringify(this.form.addDetailList)) | 
 |  |  |                         // arr.forEach(item => { | 
 |  |  |                         //     item.idcardNo = item.idCard | 
 |  |  |                         // }) | 
 |  |  |                         this.isWorking = true | 
 |  |  |                         create({ | 
 |  |  |                             applyId: this.form.id, | 
 |  |  |                             addDetailList: this.form.addDetailList, | 
 |  |  |                             delDetailList: this.form.delDetailList, | 
 |  |  |                             validTime: this.form.applyStartTime, | 
 |  |  |                             type: 0 | 
 |  |  |                         }).then(() => { | 
 |  |  |                             this.visible = false | 
 |  |  |                             this.$tip.apiSuccess('操作成功') | 
 |  |  |                             this.$emit('success') | 
 |  |  |                         }).catch(e => { | 
 |  |  |                             this.$tip.apiFailed(e) | 
 |  |  |                         }).finally(() => { | 
 |  |  |                             this.isWorking = false | 
 |  |  |                         }) | 
 |  |  |                     } | 
 |  |  |                 }) | 
 |  |  |             }, | 
 |  |  |             seleUser() { | 
 |  |  |                 if (!this.form.solutionId) { | 
 |  |  |                     this.$message.warning('请先选择保险方案') | 
 |  |  |                     return | 
 |  |  |                 } | 
 |  |  |                 if (!this.form.applyStartTime) { | 
 |  |  |                     this.$message.warning('请先选择批单生效起期') | 
 |  |  |                     return | 
 |  |  |                 } | 
 |  |  |                 if (this.activeName === '0') { | 
 |  |  |                     this.$refs.selectEmployees.open('选取员工', { arr: this.form.addDetailList, price: this.price, notInInsuranceApplyId: this.form.id, validTime: this.form.applyStartTime }) | 
 |  |  |                 } else { | 
 |  |  |                     this.$refs.selectEmployees.open('选取员工', { arr: this.form.delDetailList, price: this.price, insuranceApplyId: this.form.id, validTime: this.form.applyStartTime }) | 
 |  |  |                 } | 
 |  |  |             }, | 
 |  |  |             addUser() { | 
 |  |  |                 if (!this.form.solutionId) { | 
 |  |  |                     this.$message.warning('请先选择保险方案') | 
 |  |  |                     return | 
 |  |  |                 } | 
 |  |  |                 if (this.activeName === '0') { | 
 |  |  |                     this.$refs.addEmployee.open('添加员工', { arr: this.form.addDetailList, price: this.price }) | 
 |  |  |                 } else { | 
 |  |  |                     this.$refs.addEmployee.open('添加员工', { arr: this.form.delDetailList, price: this.price }) | 
 |  |  |                 } | 
 |  |  |             }, | 
 |  |  |             uploadUser() { | 
 |  |  |                 if (!this.form.solutionId) { | 
 |  |  |                     this.$message.warning('请先选择保险方案') | 
 |  |  |                     return | 
 |  |  |                 } | 
 |  |  |                 if (this.activeName === '0') { | 
 |  |  |                     this.$refs.importEmployees.open('上传名单', { arr: this.form.addDetailList, price: this.price }) | 
 |  |  |                 } else { | 
 |  |  |                     this.$refs.importEmployees.open('上传名单', { arr: this.form.delDetailList, price: this.price }) | 
 |  |  |                 } | 
 |  |  |             }, | 
 |  |  |             // 切换方案 | 
 |  |  |             changeSolution1(e) { | 
 |  |  |                 this.company.forEach(item => { | 
 |  |  |                     console.log(item.id + '-----' + e) | 
 |  |  |                     if (item.id === e) { | 
 |  |  |                         console.log(item) | 
 |  |  |                         this.item = item | 
 |  |  |                     } | 
 |  |  |                 }) | 
 |  |  |                 // this.tableData.forEach(item => { | 
 |  |  |                 //     item.fee = this.price | 
 |  |  |                 // }) | 
 |  |  |             }, | 
 |  |  |             dele(index) { | 
 |  |  |                 if (this.activeName === '0') { | 
 |  |  |                     this.form.addDetailList.splice(index, 1) | 
 |  |  |                 } else { | 
 |  |  |                     this.form.delDetailList.splice(index, 1) | 
 |  |  |                 } | 
 |  |  |             }, | 
 |  |  |             getUser(obj) { | 
 |  |  |                 this.seleData.forEach(item => { | 
 |  |  |                     if (this.activeName === '0') { | 
 |  |  |                         this.form.addDetailList.forEach(row => { | 
 |  |  |                             if (item === row.name) { | 
 |  |  |                                 row.workTypeName = obj.workTypeName | 
 |  |  |                                 row.worktypeId = obj.worktypeId | 
 |  |  |                                 row.duName = obj.duName | 
 |  |  |                                 row.duId = obj.duId | 
 |  |  |                             } | 
 |  |  |                         }) | 
 |  |  |                     } else { | 
 |  |  |                         this.form.delDetailList.forEach(row => { | 
 |  |  |                             if (item === row.name) { | 
 |  |  |                                 row.workTypeName = obj.workTypeName | 
 |  |  |                                 row.worktypeId = obj.worktypeId | 
 |  |  |                                 row.duName = obj.duName | 
 |  |  |                                 row.duId = obj.duId | 
 |  |  |                             } | 
 |  |  |                         }) | 
 |  |  |                     } | 
 |  |  |                 }) | 
 |  |  |                 this.seleData = [] | 
 |  |  |                 this.$refs.multipleTable.clearSelection(); | 
 |  |  |             }, | 
 |  |  |             // 选择员工 | 
 |  |  |             sele() { | 
 |  |  |                 if (!this.form.solutionId) { | 
 |  |  |                     this.$message.warning('请选择保险方案') | 
 |  |  |                     return | 
 |  |  |                 } | 
 |  |  |                 if (this.seleData.length === 0) { | 
 |  |  |                     this.$message.warning('请选择员工') | 
 |  |  |                     return | 
 |  |  |                 } | 
 |  |  |                 this.$refs.confirmJobType.open('确认工种', { solutionId: this.form.solutionId }) | 
 |  |  |             }, | 
 |  |  |             // 查询全部方案 | 
 |  |  |             getCompany() { | 
 |  |  |                 all({ dataType: 2 }) | 
 |  |  |                     .then(res => { | 
 |  |  |                         this.company = res | 
 |  |  |                     }) | 
 |  |  |             }, | 
 |  |  |             getAgeByIdCard(idCard){ | 
 |  |  |                 const sexAndAge = {} | 
 |  |  |                 //获取用户身份证号码 | 
 |  |  |                 const userCard = idCard | 
 |  |  |                 //如果用户身份证号码为undefined则返回空 | 
 |  |  |                 if (!userCard) { | 
 |  |  |                     return sexAndAge | 
 |  |  |                 } | 
 |  |  |                 // 获取出生日期 | 
 |  |  |                 const yearBirth = userCard.substring(6, 10) | 
 |  |  |                 const monthBirth = userCard.substring(10, 12) | 
 |  |  |                 const dayBirth = userCard.substring(12, 14) | 
 |  |  |                 // 获取当前年月日并计算年龄 | 
 |  |  |                 const myDate = new Date() | 
 |  |  |                 const monthNow = myDate.getMonth() + 1 | 
 |  |  |                 const dayNow = myDate.getDate() | 
 |  |  |                 let age = myDate.getFullYear() - yearBirth | 
 |  |  |                 if (monthNow < monthBirth || (monthNow == monthBirth && dayNow < dayBirth)) { | 
 |  |  |                     age-- | 
 |  |  |                 } | 
 |  |  |                 // 得到年龄 | 
 |  |  |                 sexAndAge.age = age | 
 |  |  |                 return sexAndAge.age | 
 |  |  |             }, | 
 |  |  |             handleSelectionChange (e) { | 
 |  |  |                 this.seleData = e.map(item => item.name) | 
 |  |  |             }, | 
 |  |  |             getValue(list) { | 
 |  |  |                 if (this.activeName === '0') { | 
 |  |  |                     this.form.addDetailList.push(...list) | 
 |  |  |                 } else { | 
 |  |  |                     this.form.delDetailList.push(...list) | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  | 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 importEmployees from '@/components/enterprise/importEmployees' | 
 |  |  | import confirmJobType from '@/components/enterprise/confirmJobType' | 
 |  |  | import ApplyChangeDetails1 from '@/components/business/ApplyChangeDetails1' | 
 |  |  | import OperaApplyChangeDetailWindow from '@/components/business/OperaApplyChangeDetailWindow' | 
 |  |  | import { all } from '@/api/business/solutions' | 
 |  |  | import { getDetail } from '@/api/business/insuranceApply' | 
 |  |  | import { create, getChangeCountCyclePriceVO } from '@/api/business/applyChange' | 
 |  |  | import { getDate, compareDates, getTomorrow } from '@/utils/util' | 
 |  |  | import { mapState } from 'vuex' | 
 |  |  | export default { | 
 |  |  |   name: 'additionSubtractionApplication', | 
 |  |  |   extends: BaseOpera, | 
 |  |  |   components: { GlobalWindow, selectEmployees, OperaApplyChangeDetailWindow, addEmployee, importEmployees, confirmJobType, ApplyChangeDetails1 }, | 
 |  |  |   data () { | 
 |  |  |     return { | 
 |  |  |       form: { | 
 |  |  |         id: null, | 
 |  |  |         solutionId: '', | 
 |  |  |         solutionsName: '', | 
 |  |  |         applyStartTime: '', | 
 |  |  |         applyEndTime: '', | 
 |  |  |         addDetailList: [], | 
 |  |  |         delDetailList: [] | 
 |  |  |       }, | 
 |  |  |       tempMemberIndex: -1, | 
 |  |  |       activeName: '0', | 
 |  |  |       pickerOptions: {}, | 
 |  |  |       price: '', | 
 |  |  |       reducePrice: '', | 
 |  |  |       endTime: '', //    实际保险生效止期 | 
 |  |  |       company: [], | 
 |  |  |       seleData: [], | 
 |  |  |       item: null, | 
 |  |  |       // 验证规则 | 
 |  |  |       rules: { | 
 |  |  |         applyStartTime: [ | 
 |  |  |           { required: true, message: '请选择批单生效起期' } | 
 |  |  |         ] | 
 |  |  |       }, | 
 |  |  |       list: [] | 
 |  |  |     } | 
 |  |  |   }, | 
 |  |  |   computed: { | 
 |  |  |     ...mapState(['userInfo']) | 
 |  |  |   }, | 
 |  |  |   created () { | 
 |  |  |     this.config({ | 
 |  |  |       api: '/business/insuranceApply', | 
 |  |  |       'field.id': 'id' | 
 |  |  |     }) | 
 |  |  |   }, | 
 |  |  |   methods: { | 
 |  |  |     open (title, target) { | 
 |  |  |       this.title = title | 
 |  |  |       this.form.addDetailList = [] | 
 |  |  |       this.form.delDetailList = [] | 
 |  |  |       this.list = [] | 
 |  |  |       this.form.id = null | 
 |  |  |       this.item = null | 
 |  |  |       this.tempMemberIndex = -1 | 
 |  |  |       this.form.solutionId = '' | 
 |  |  |       this.form.solutionsName = '' | 
 |  |  |       this.form.applyStartTime = '' | 
 |  |  |       this.form.applyEndTime = '' | 
 |  |  |       // alert(target.id) | 
 |  |  |       if (target && target.id) { | 
 |  |  |         this.$nextTick(() => { | 
 |  |  |           this.$refs.form.resetFields() | 
 |  |  |           this.form.id = target.id | 
 |  |  |           this.getDetails() | 
 |  |  |           this.changeApplyStartTime(null) | 
 |  |  |         }) | 
 |  |  |       } else { | 
 |  |  |         this.$nextTick(() => { | 
 |  |  |           this.$refs.form.resetFields() | 
 |  |  |           this.form[this.configData['field.id']] = null | 
 |  |  |         }) | 
 |  |  |       } | 
 |  |  |       this.getCompany() | 
 |  |  |       this.visible = true | 
 |  |  |       // this.updatePickerOptions() | 
 |  |  |     }, | 
 |  |  |     changeApplyStartTime (e) { | 
 |  |  |       getChangeCountCyclePriceVO({ | 
 |  |  |         applyId: this.form.id, | 
 |  |  |         validTime: e | 
 |  |  |       }).then(res => { | 
 |  |  |         this.price = res.cyclePrice | 
 |  |  |         this.reducePrice= 0 | 
 |  |  |         this.form.addDetailList.forEach(item => { | 
 |  |  |           item.fee = res.cyclePrice | 
 |  |  |         }) | 
 |  |  |         this.form.delDetailList.forEach(item => { | 
 |  |  |           // item.fee = item.reducePrice | 
 |  |  |         }) | 
 |  |  |       }).catch(e => { | 
 |  |  |         this.$tip.apiFailed(e) | 
 |  |  |       }).finally(() => { | 
 |  |  |         this.isWorking = false | 
 |  |  |       }) | 
 |  |  |     }, | 
 |  |  |     handleClick (e) { | 
 |  |  |       this.activeName = e.index | 
 |  |  |     }, | 
 |  |  |     // 获取投保详情 | 
 |  |  |     getDetails () { | 
 |  |  |       // findList({ applyId: this.form.id }) | 
 |  |  |       //     .then(res => { | 
 |  |  |       //         res.forEach(item => { | 
 |  |  |       //             item.idCard = item.idcardNo | 
 |  |  |       //             item.fee = '' | 
 |  |  |       //         }) | 
 |  |  |       //         this.tableData = res | 
 |  |  |       //     }) | 
 |  |  |       getDetail(this.form.id) | 
 |  |  |         .then(res => { | 
 |  |  |           this.list.push(res) | 
 |  |  |           this.item = res | 
 |  |  |           this.endTime = res.endTime | 
 |  |  |           this.form.solutionId = res.solutionId | 
 |  |  |           this.form.solutionsName = res.solutionsName | 
 |  |  |           this.pickerOptions = { | 
 |  |  |             disabledDate (time) { | 
 |  |  |               // 当前日期大于等于生效日期并且最后一次操作时间等于空 | 
 |  |  |               if ([1, 3].includes(compareDates(getDate(), res.startTime)) && !res.lastChangeDate) { | 
 |  |  |                 return time.getTime() > new Date(res.endTime).getTime() || time.getTime() < new Date(getTomorrow()).getTime() | 
 |  |  |                 // 当前日期小于生效日期并且最后一次操作时间等于空 | 
 |  |  |               } else if (compareDates(getDate(), res.startTime) === 2 && !res.lastChangeDate) { | 
 |  |  |                 return time.getTime() > new Date(res.endTime).getTime() || time.getTime() < new Date(res.startTime).getTime() | 
 |  |  |                 // 最后一次操作时间有值 | 
 |  |  |               } else if (res.lastChangeDate) { | 
 |  |  |                 // 当前日期大于最后一次操作时间 | 
 |  |  |                 if ([1, 3].includes(compareDates(getDate(), res.lastChangeDate))) { | 
 |  |  |                   return time.getTime() > new Date(res.endTime).getTime() || time.getTime() < new Date(getTomorrow()).getTime() | 
 |  |  |                   // 当前时间小于最后一次操作时间 | 
 |  |  |                 } else if (compareDates(getDate(), res.lastChangeDate) === 2) { | 
 |  |  |                   return time.getTime() > new Date(res.endTime).getTime() || time.getTime() < new Date(res.lastChangeDate).getTime() | 
 |  |  |                 } | 
 |  |  |               } | 
 |  |  |             } | 
 |  |  |           } | 
 |  |  |           // this.changeSolution1(res.solutionId) | 
 |  |  |         }) | 
 |  |  |     }, | 
 |  |  |     getSummaries (param) { | 
 |  |  |       const { columns, data } = param | 
 |  |  |       const sums = [] | 
 |  |  |       columns.forEach((column, index) => { | 
 |  |  |         if (index === 0) { | 
 |  |  |           sums[index] = '总价' | 
 |  |  |         } else if (index === 7) { | 
 |  |  |           let total = 0 | 
 |  |  |           if (this.activeName === '0') { | 
 |  |  |             this.form.addDetailList.forEach(item => { | 
 |  |  |               total += item.fee || 0 | 
 |  |  |             }) | 
 |  |  |             sums[index] =  (total || 0).toFixed(2) | 
 |  |  |           } else { | 
 |  |  |             this.form.delDetailList.forEach(item => { | 
 |  |  |               total += item.reducePrice | 
 |  |  |             }) | 
 |  |  |             sums[index] =  (total || 0).toFixed(2) | 
 |  |  |           } | 
 |  |  |         } | 
 |  |  |       }) | 
 |  |  |       return sums | 
 |  |  |     }, | 
 |  |  |     deleItem () { | 
 |  |  |       if (this.seleData.length === 0) { | 
 |  |  |         this.$message.warning('至少选择一项内容') | 
 |  |  |         return | 
 |  |  |       } | 
 |  |  |       if (this.activeName === '0') { | 
 |  |  |         this.seleData.forEach(item => { | 
 |  |  |           this.form.addDetailList.forEach((row, index) => { | 
 |  |  |             if (item === row.idCard) { | 
 |  |  |               this.form.addDetailList.splice(index, 1) | 
 |  |  |             } | 
 |  |  |           }) | 
 |  |  |         }) | 
 |  |  |       } else { | 
 |  |  |         this.seleData.forEach(item => { | 
 |  |  |           this.form.delDetailList.forEach((row, index) => { | 
 |  |  |             if (item === row.idCard) { | 
 |  |  |               this.form.delDetailList.splice(index, 1) | 
 |  |  |             } | 
 |  |  |           }) | 
 |  |  |         }) | 
 |  |  |       } | 
 |  |  |     }, | 
 |  |  |     success () { | 
 |  |  |       this.form.addDetailList.forEach(item => { | 
 |  |  |         item.idcardNo = item.idCard | 
 |  |  |       }) | 
 |  |  |       this.form.delDetailList.forEach(item => { | 
 |  |  |         item.idcardNo = item.idCard | 
 |  |  |       }) | 
 |  |  |       // let arr = JSON.parse(JSON.stringify(this.form.addDetailList)) | 
 |  |  |       // arr.forEach(item => { | 
 |  |  |       //     item.idcardNo = item.idCard | 
 |  |  |       // }) | 
 |  |  |       this.isWorking = true | 
 |  |  |       create({ | 
 |  |  |         applyId: this.form.id, | 
 |  |  |         addDetailList: this.form.addDetailList, | 
 |  |  |         delDetailList: this.form.delDetailList, | 
 |  |  |         validTime: this.form.applyStartTime, | 
 |  |  |         type: 0 | 
 |  |  |       }).then(res => { | 
 |  |  |         this.visible = false | 
 |  |  |         this.$tip.apiSuccess('操作成功') | 
 |  |  |         this.$refs.OperaApplyChangeDetailWindow.open('加减保详情', { applyId: this.form.id, id: res }) | 
 |  |  |         this.$emit('success') | 
 |  |  |       }).catch(e => { | 
 |  |  |         this.$tip.apiFailed(e) | 
 |  |  |       }).finally(() => { | 
 |  |  |         this.isWorking = false | 
 |  |  |       }) | 
 |  |  |     }, | 
 |  |  |     confirm () { | 
 |  |  |       this.$refs.form.validate((valid) => { | 
 |  |  |         if (valid) { | 
 |  |  |           // if (this.form.addDetailList.length === 0) { | 
 |  |  |           //     this.$message.warning('至少添加一项员工') | 
 |  |  |           //     return | 
 |  |  |           // } | 
 |  |  |           for (let i = 0; i < this.form.addDetailList.length; i++) { | 
 |  |  |             if (!this.form.addDetailList[i].worktypeId || !this.form.addDetailList[i].duId) { | 
 |  |  |               this.$message.warning('请完善加保派遣单位和工种信息') | 
 |  |  |               return | 
 |  |  |             } | 
 |  |  |           } | 
 |  |  |           for (let i = 0; i < this.form.delDetailList.length; i++) { | 
 |  |  |             if (!this.form.delDetailList[i].worktypeId || !this.form.delDetailList[i].duId) { | 
 |  |  |               this.$message.warning('请完善减保派遣单位和工种信息') | 
 |  |  |               return | 
 |  |  |             } | 
 |  |  |           } | 
 |  |  |  | 
 |  |  |           this.$refs.ApplyChangeDetails1.open('加减保详单', this.form.addDetailList, this.form.delDetailList, { | 
 |  |  |             companyName: this.userInfo.company.name, | 
 |  |  |             solutionsName: this.form.solutionsName, | 
 |  |  |             code: this.list[0].code, | 
 |  |  |             startTime: this.list[0].startTime, | 
 |  |  |             endTime: this.list[0].endTime, | 
 |  |  |             applyStartTime: this.form.applyStartTime | 
 |  |  |           }) | 
 |  |  |  | 
 |  |  |           // return | 
 |  |  |  | 
 |  |  |           // this.form.addDetailList.forEach(item => { | 
 |  |  |           //     item.idcardNo = item.idCard | 
 |  |  |           // }) | 
 |  |  |           // this.form.delDetailList.forEach(item => { | 
 |  |  |           //     item.idcardNo = item.idCard | 
 |  |  |           // }) | 
 |  |  |           // // let arr = JSON.parse(JSON.stringify(this.form.addDetailList)) | 
 |  |  |           // // arr.forEach(item => { | 
 |  |  |           // //     item.idcardNo = item.idCard | 
 |  |  |           // // }) | 
 |  |  |           // this.isWorking = true | 
 |  |  |           // create({ | 
 |  |  |           //     applyId: this.form.id, | 
 |  |  |           //     addDetailList: this.form.addDetailList, | 
 |  |  |           //     delDetailList: this.form.delDetailList, | 
 |  |  |           //     validTime: this.form.applyStartTime, | 
 |  |  |           //     type: 0 | 
 |  |  |           // }).then(() => { | 
 |  |  |           //     this.visible = false | 
 |  |  |           //     this.$tip.apiSuccess('操作成功') | 
 |  |  |           //     this.$emit('success') | 
 |  |  |           // }).catch(e => { | 
 |  |  |           //     this.$tip.apiFailed(e) | 
 |  |  |           // }).finally(() => { | 
 |  |  |           //     this.isWorking = false | 
 |  |  |           // }) | 
 |  |  |         } | 
 |  |  |       }) | 
 |  |  |     }, | 
 |  |  |     seleUser () { | 
 |  |  |       if (!this.form.solutionId) { | 
 |  |  |         this.$message.warning('请先选择保险方案') | 
 |  |  |         return | 
 |  |  |       } | 
 |  |  |     /* if (!this.form.applyStartTime) { | 
 |  |  |         this.$message.warning('请先选择批单生效起期') | 
 |  |  |         return | 
 |  |  |       }*/ | 
 |  |  |       if (this.activeName === '0') { | 
 |  |  |         this.$refs.selectEmployees.open('选取加保员工', { arr: this.form.addDetailList, price: this.price, notInInsuranceApplyId: this.form.id, validTime: this.form.applyStartTime }) | 
 |  |  |       } else { | 
 |  |  |         this.$refs.selectEmployees.open('选取减保员工', { arr: this.form.delDetailList, price: this.reducePrice, insuranceApplyId: this.form.id, validTime: this.form.applyStartTime }) | 
 |  |  |       } | 
 |  |  |     }, | 
 |  |  |     addUser () { | 
 |  |  |       if (!this.form.solutionId) { | 
 |  |  |         this.$message.warning('请先选择保险方案') | 
 |  |  |         return | 
 |  |  |       } | 
 |  |  |       if (this.activeName === '0') { | 
 |  |  |         this.$refs.addEmployee.open('添加加保员工', { arr: this.form.addDetailList, price: this.price }) | 
 |  |  |       } else { | 
 |  |  |         this.$refs.addEmployee.open('添加减保员工', { arr: this.form.delDetailList, price: this.reducePrice }) | 
 |  |  |       } | 
 |  |  |     }, | 
 |  |  |     uploadUser () { | 
 |  |  |       if (!this.form.solutionId) { | 
 |  |  |         this.$message.warning('请先选择保险方案') | 
 |  |  |         return | 
 |  |  |       } | 
 |  |  |       if (this.activeName === '0') { | 
 |  |  |         this.$refs.importEmployees.open('加保员工名单', { arr: this.form.addDetailList,type:1, price: this.price, solutionId: this.form.solutionId }) | 
 |  |  |       } else { | 
 |  |  |         this.$refs.importEmployees.open('减保员工名单', { arr: this.form.delDetailList,type:0, price: this.reducePrice, solutionId: this.form.solutionId,insuranceApplyId: this.form.id  }) | 
 |  |  |       } | 
 |  |  |     }, | 
 |  |  |     // 切换方案 | 
 |  |  |     changeSolution1 (e) { | 
 |  |  |       this.company.forEach(item => { | 
 |  |  |         console.log(item.id + '-----' + e) | 
 |  |  |         if (item.id === e) { | 
 |  |  |           console.log(item) | 
 |  |  |           this.item = item | 
 |  |  |         } | 
 |  |  |       }) | 
 |  |  |       // this.tableData.forEach(item => { | 
 |  |  |       //     item.fee = this.price | 
 |  |  |       // }) | 
 |  |  |     }, | 
 |  |  |     dele (index) { | 
 |  |  |       if (this.activeName === '0') { | 
 |  |  |         this.form.addDetailList.splice(index, 1) | 
 |  |  |       } else { | 
 |  |  |         this.form.delDetailList.splice(index, 1) | 
 |  |  |       } | 
 |  |  |     }, | 
 |  |  |     getUser (obj) { | 
 |  |  |       console.log(this.seleData) | 
 |  |  |       this.seleData.forEach(item => { | 
 |  |  |         if (this.activeName === '0') { | 
 |  |  |           this.form.addDetailList.forEach(row => { | 
 |  |  |             if (item === row.idCard) { | 
 |  |  |               row.workTypeName = obj.workTypeName | 
 |  |  |               row.worktypeId = obj.worktypeId | 
 |  |  |               row.duName = obj.duName | 
 |  |  |               row.duId = obj.duId | 
 |  |  |             } | 
 |  |  |           }) | 
 |  |  |         } else { | 
 |  |  |           this.form.delDetailList.forEach(row => { | 
 |  |  |             if (item === row.idCard) { | 
 |  |  |               row.workTypeName = obj.workTypeName | 
 |  |  |               row.worktypeId = obj.worktypeId | 
 |  |  |               row.duName = obj.duName | 
 |  |  |               row.duId = obj.duId | 
 |  |  |             } | 
 |  |  |           }) | 
 |  |  |         } | 
 |  |  |       }) | 
 |  |  |       this.seleData = [] | 
 |  |  |       this.$refs.multipleTable.clearSelection() | 
 |  |  |     }, | 
 |  |  |     // 选择员工 | 
 |  |  |     sele () { | 
 |  |  |       if (!this.form.solutionId) { | 
 |  |  |         this.$message.warning('请选择保险方案') | 
 |  |  |         return | 
 |  |  |       } | 
 |  |  |       if (this.seleData.length === 0) { | 
 |  |  |         this.$message.warning('请选择员工') | 
 |  |  |         return | 
 |  |  |       } | 
 |  |  |       this.$refs.confirmJobType.open('确认工种', { solutionId: this.item.newVersionSolutionId }) | 
 |  |  |     }, | 
 |  |  |     // 查询全部方案 | 
 |  |  |     getCompany () { | 
 |  |  |       all({ dataType: 2 }) | 
 |  |  |         .then(res => { | 
 |  |  |           this.company = res | 
 |  |  |         }) | 
 |  |  |     }, | 
 |  |  |     getAgeByIdCard (idCard) { | 
 |  |  |       const sexAndAge = {} | 
 |  |  |       // 获取用户身份证号码 | 
 |  |  |       const userCard = idCard | 
 |  |  |       // 如果用户身份证号码为undefined则返回空 | 
 |  |  |       if (!userCard) { | 
 |  |  |         return sexAndAge | 
 |  |  |       } | 
 |  |  |       // 获取出生日期 | 
 |  |  |       const yearBirth = userCard.substring(6, 10) | 
 |  |  |       const monthBirth = userCard.substring(10, 12) | 
 |  |  |       const dayBirth = userCard.substring(12, 14) | 
 |  |  |       // 获取当前年月日并计算年龄 | 
 |  |  |       const myDate = new Date() | 
 |  |  |       const monthNow = myDate.getMonth() + 1 | 
 |  |  |       const dayNow = myDate.getDate() | 
 |  |  |       let age = myDate.getFullYear() - yearBirth | 
 |  |  |       if (monthNow < monthBirth || (monthNow == monthBirth && dayNow < dayBirth)) { | 
 |  |  |         age-- | 
 |  |  |       } | 
 |  |  |       // 得到年龄 | 
 |  |  |       sexAndAge.age = age | 
 |  |  |       return sexAndAge.age | 
 |  |  |     }, | 
 |  |  |     handleSelectionChange (e) { | 
 |  |  |       this.seleData = e.map(item => item.idCard) | 
 |  |  |     }, | 
 |  |  |     getValue (list) { | 
 |  |  |       list.forEach(item => { | 
 |  |  |         const temIndex = this.tempMemberIndex | 
 |  |  |         item.id = temIndex | 
 |  |  |         item.name = item.memberName | 
 |  |  |         this.tempMemberIndex = this.tempMemberIndex - 1 | 
 |  |  |       }) | 
 |  |  |       if (this.activeName === '0') { | 
 |  |  |         this.form.addDetailList.push(...list) | 
 |  |  |       } else { | 
 |  |  |         this.form.delDetailList.push(...list) | 
 |  |  |       } | 
 |  |  |     } | 
 |  |  |   } | 
 |  |  | } | 
 |  |  | </script> | 
 |  |  |  | 
 |  |  | <style lang="scss" scoped> |