|  |  | 
 |  |  |                     align="center" | 
 |  |  |                     label="保险生效止期"> | 
 |  |  |                 </el-table-column> | 
 |  |  |                 <el-table-column | 
 |  |  |                     prop="insureNum" | 
 |  |  |                     align="center" | 
 |  |  |                     label="投保人数"> | 
 |  |  | <!--                <el-table-column--> | 
 |  |  | <!--                    prop="insureNum"--> | 
 |  |  | <!--                    align="center"--> | 
 |  |  | <!--                    label="投保人数">--> | 
 |  |  | <!--                </el-table-column>--> | 
 |  |  | <!--              <el-table-column prop="guaranteeNum"  align="center" label="在保人数" ></el-table-column>--> | 
 |  |  |                 <el-table-column prop="guaranteeNum"  align="center" label="当前在保人数" width="120"> | 
 |  |  |                     <template slot-scope="{row}"> | 
 |  |  |                         <span>{{(row.guaranteeNum||0)}} 人</span> | 
 |  |  |                     </template> | 
 |  |  |                 </el-table-column> | 
 |  |  |                 <el-table-column | 
 |  |  |                     prop="serviceDays" | 
 |  |  |                     align="center" | 
 |  |  |                     label="在保时长(天)"> | 
 |  |  |                     label="保单时长(天)"> | 
 |  |  |                 </el-table-column> | 
 |  |  |                 <el-table-column | 
 |  |  |                     prop="currentFee" | 
 |  |  |                     align="center" | 
 |  |  |                     label="已产生费用(元)"> | 
 |  |  | <!--                <el-table-column--> | 
 |  |  | <!--                    prop="currentFee"--> | 
 |  |  | <!--                    align="center"--> | 
 |  |  | <!--                    label="已产生费用(元)">--> | 
 |  |  | <!--                </el-table-column>--> | 
 |  |  |                 <el-table-column prop="fee" label="批改费用合计"  align="center" width="120"> | 
 |  |  |                     <template slot-scope="{row}"> | 
 |  |  |                         <span>{{row.changeMoney+' 元'}}</span> | 
 |  |  |                     </template> | 
 |  |  |                 </el-table-column> | 
 |  |  |                 <el-table-column | 
 |  |  |                     prop="fee" | 
 |  |  | 
 |  |  |                 <el-button type="danger" @click="deleItem">删除</el-button> | 
 |  |  |             </div> | 
 |  |  |             <div class="btns_item"> | 
 |  |  |                 <el-button type="primary" @click="sele">选取派遣单位</el-button> | 
 |  |  | <!--                <el-button type="primary" @click="sele">选取派遣单位</el-button>--> | 
 |  |  |                 <el-button type="primary" @click="sele(1)" v-if="item && item.hasDispatchUnit !== 1">选取派遣单位</el-button> | 
 |  |  |                 <el-button type="primary" @click="sele(2)" v-if="item && item.hasDispatchUnit === 1">选取工种</el-button> | 
 |  |  |             </div> | 
 |  |  |         </div> | 
 |  |  |         <el-table | 
 |  |  | 
 |  |  |                 label="身份证号"> | 
 |  |  |             </el-table-column> | 
 |  |  |             <el-table-column | 
 |  |  |                 v-if="item && item.hasDispatchUnit !== 1" | 
 |  |  |                 prop="oldDuName" | 
 |  |  |                 label="原派遣单位"> | 
 |  |  |             </el-table-column> | 
 |  |  | 
 |  |  |                 label="原所属工种"> | 
 |  |  |             </el-table-column> | 
 |  |  |             <el-table-column | 
 |  |  |                 v-if="item && item.hasDispatchUnit !== 1" | 
 |  |  |                 prop="duName" | 
 |  |  |                 label="变更后派遣单位"> | 
 |  |  |             </el-table-column> | 
 |  |  | 
 |  |  |             </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="getValue1" /> | 
 |  |  | 
 |  |  |         <!--    详单    --> | 
 |  |  |         <ApplyChangeUnitDetails1 ref="ApplyChangeUnitDetails1" @success="success" /> | 
 |  |  |         <!-- 更新派遣单位详情 --> | 
 |  |  |         <OperaApplyChangeUnitDetailWindow ref="OperaApplyChangeUnitDetailWindow" /> | 
 |  |  | <!--        <OperaApplyChangeUnitDetailWindow ref="OperaApplyChangeUnitDetailWindow" />--> | 
 |  |  |     </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 ApplyChangeUnitDetails1 from '@/components/business/ApplyChangeUnitDetails1' | 
 |  |  |     import OperaApplyChangeUnitDetailWindow from '@/components/business/OperaApplyChangeUnitDetailWindow' | 
 |  |  |     import { all } from '@/api/business/solutions' | 
 |  |  |     import { getDetail, findList } from '@/api/business/insuranceApply' | 
 |  |  |     import { create } from '@/api/business/applyChange' | 
 |  |  |     import { getDate, compareDates, getTomorrow } from '@/utils/util' | 
 |  |  |     export default { | 
 |  |  |         name: 'factoryChange', | 
 |  |  |         extends: BaseOpera, | 
 |  |  |         components: { GlobalWindow, OperaApplyChangeUnitDetailWindow, selectEmployees, addEmployee, importEmployees, confirmJobType, ApplyChangeUnitDetails1 }, | 
 |  |  |         data () { | 
 |  |  |             return { | 
 |  |  |                 form: { | 
 |  |  |                     id: null, | 
 |  |  |                     solutionId: '', | 
 |  |  |                     solutionsName: '', | 
 |  |  |                     applyStartTime: '', | 
 |  |  |                     applyEndTime: '', | 
 |  |  |                     factory: [] | 
 |  |  |                 }, | 
 |  |  |                 newVersionSolutionId: '', | 
 |  |  |                 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.factory = [] | 
 |  |  |                 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() | 
 |  |  |             }, | 
 |  |  |             success() { | 
 |  |  |                 this.form.factory.forEach(item => { | 
 |  |  |                     item.idcardNo = item.idCard | 
 |  |  |                 }) | 
 |  |  |                 this.isWorking = true | 
 |  |  |                 create({ | 
 |  |  |                     applyId: this.form.id, | 
 |  |  |                     changeDetailList: this.form.factory, | 
 |  |  |                     validTime: this.form.applyStartTime, | 
 |  |  |                     type: 1 | 
 |  |  |                 }).then(res => { | 
 |  |  |                     this.visible = false | 
 |  |  |                     this.$refs.OperaApplyChangeUnitDetailWindow.open('更换派遣单位详情', { applyId: this.form.id, id: res }) | 
 |  |  |                     this.$tip.apiSuccess('操作成功') | 
 |  |  |                     // this.$emit('success') | 
 |  |  |                 }).catch(e => { | 
 |  |  |                     this.$tip.apiFailed(e) | 
 |  |  |                 }).finally(() => { | 
 |  |  |                     this.isWorking = false | 
 |  |  |                 }) | 
 |  |  |             }, | 
 |  |  |             // 获取投保详情 | 
 |  |  |             getDetails() { | 
 |  |  |                 findList({ applyId: this.form.id }) | 
 |  |  |                     .then(res => { | 
 |  |  |                         res.forEach(item => { | 
 |  |  |                             item.idCard = item.idcardNo | 
 |  |  |                             item.fee = '' | 
 |  |  |                         }) | 
 |  |  |                         res.forEach(item => { | 
 |  |  |                             item.oldDuId = item.duId | 
 |  |  |                             item.oldDuName = item.duName | 
 |  |  |                             item.oldWorkTypeName = item.workTypeName | 
 |  |  |                             item.oldWorktypeId = item.worktypeId | 
 |  |  |                             item.workTypeName = '' | 
 |  |  |                             item.worktypeId = '' | 
 |  |  |                             item.duId = '' | 
 |  |  |                             item.duName = '' | 
 |  |  |                         }) | 
 |  |  |                         // this.form.factory = res | 
 |  |  |                     }) | 
 |  |  |                 getDetail(this.form.id) | 
 |  |  |                     .then(res => { | 
 |  |  |                         console.log(res) | 
 |  |  |                         this.list.push(res) | 
 |  |  |                         this.endTime = res.endTime | 
 |  |  |                         this.form.solutionId = res.solutionId | 
 |  |  |                         this.newVersionSolutionId = res.newVersionSolutionId | 
 |  |  |                         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) | 
 |  |  |                     }) | 
 |  |  |             }, | 
 |  |  |             deleItem() { | 
 |  |  |                 if (this.seleData.length === 0) { | 
 |  |  |                     this.$message.warning('至少选择一项内容') | 
 |  |  |                     return | 
 |  |  |                 } | 
 |  |  |                 this.seleData.forEach(item => { | 
 |  |  |                     this.form.factory.forEach((row, index) => { | 
 |  |  |                         if (item === row.memberName) { | 
 |  |  |                             this.form.factory.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.factory.length; i++) { | 
 |  |  |                             if (!this.form.factory[i].worktypeId || !this.form.factory[i].duId) { | 
 |  |  |                                 this.$message.warning('请完善派遣单位和工种信息') | 
 |  |  |                                 return | 
 |  |  |                             } | 
 |  |  |                         } | 
 |  |  |                         this.$refs.ApplyChangeUnitDetails1.open('更换派遣单位详单', this.form.factory, {...this.list[0], applyStartTime: this.form.applyStartTime}) | 
 |  |  |                         // this.form.factory.forEach(item => { | 
 |  |  |                         //     item.idcardNo = item.idCard | 
 |  |  |                         // }) | 
 |  |  |                         // let arr = JSON.parse(JSON.stringify(this.form.factory)) | 
 |  |  |                         // arr.forEach(item => { | 
 |  |  |                         //     item.idcardNo = item.idCard | 
 |  |  |                         // }) | 
 |  |  |                         // this.isWorking = true | 
 |  |  |                         // create({ | 
 |  |  |                         //     applyId: this.form.id, | 
 |  |  |                         //     changeDetailList: this.form.factory, | 
 |  |  |                         //     validTime: this.form.applyStartTime, | 
 |  |  |                         //     type: 1 | 
 |  |  |                         // }).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 | 
 |  |  |                 } | 
 |  |  |                 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 | 
 |  |  |                 } | 
 |  |  |                 this.$refs.addEmployee.open('添加员工', { arr: this.form.factory, price: this.price }) | 
 |  |  |             }, | 
 |  |  |             uploadUser() { | 
 |  |  |                 if (!this.form.solutionId) { | 
 |  |  |                     this.$message.warning('请先选择保险方案') | 
 |  |  |                     return | 
 |  |  |                 } | 
 |  |  |                 this.$refs.importEmployees.open('上传名单', { arr: this.form.factory, price: this.price }) | 
 |  |  |             }, | 
 |  |  |             // 切换方案 | 
 |  |  |             changeSolution1(e) { | 
 |  |  |                 this.company.forEach(item => { | 
 |  |  |                     if (item.id === e) { | 
 |  |  |                         this.item = item | 
 |  |  |                     } | 
 |  |  |                 }) | 
 |  |  |                 // this.tableData.forEach(item => { | 
 |  |  |                 //     item.fee = this.price | 
 |  |  |                 // }) | 
 |  |  |             }, | 
 |  |  |             dele(index) { | 
 |  |  |                 this.form.factory.splice(index, 1) | 
 |  |  |             }, | 
 |  |  |             getUser(obj) { | 
 |  |  |                 console.log(obj) | 
 |  |  |                 this.seleData.forEach(item => { | 
 |  |  |                     this.form.factory.forEach(row => { | 
 |  |  |                         if (item === row.memberName) { | 
 |  |  |                             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.newVersionSolutionId }) | 
 |  |  |             }, | 
 |  |  |             // 查询全部方案 | 
 |  |  |             getCompany() { | 
 |  |  |                 all({}) | 
 |  |  |                     .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.memberName) | 
 |  |  |             }, | 
 |  |  |             // 选取员工 | 
 |  |  |             getValue1 (list) { | 
 |  |  |                 let arr = JSON.parse(JSON.stringify(list)) | 
 |  |  |  | 
 |  |  |                 arr.forEach(item => { | 
 |  |  |                     item.oldDuId = item.duId | 
 |  |  |                     item.oldDuName = item.duName | 
 |  |  |                     item.oldWorkTypeName = item.workTypeName | 
 |  |  |                     item.oldWorktypeId = item.worktypeId | 
 |  |  |  | 
 |  |  |                     item.duId = '' | 
 |  |  |                     item.duName = '' | 
 |  |  |                     item.workTypeName = '' | 
 |  |  |                     item.worktypeId = '' | 
 |  |  |                 }) | 
 |  |  |  | 
 |  |  |                 for (let a = 0; a < arr.length; a++) { | 
 |  |  |                     for (let b = 0; b < this.form.factory.length; b++) { | 
 |  |  |                         if (arr[a].id === this.form.factory[b].id) { | 
 |  |  |                             this.$message.warning(`${arr[a].companyName}员工重复!`) | 
 |  |  |                             return | 
 |  |  |                         } | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |                 this.form.factory.push(...arr) | 
 |  |  |             }, | 
 |  |  |             getValue(list) { | 
 |  |  |                 let arr = JSON.parse(JSON.stringify(list)) | 
 |  |  |  | 
 |  |  |                 arr.forEach(item => { | 
 |  |  |                     item.oldDuId = item.duId | 
 |  |  |                     item.oldDuName = item.duName | 
 |  |  |                     item.oldWorkTypeName = item.workTypeName | 
 |  |  |                     item.oldWorktypeId = item.worktypeId | 
 |  |  |  | 
 |  |  |                     item.duId = '' | 
 |  |  |                     item.duName = '' | 
 |  |  |                     item.workTypeName = '' | 
 |  |  |                     item.worktypeId = '' | 
 |  |  |                 }) | 
 |  |  |                 this.form.factory.push(...arr) | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  | 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 ApplyChangeUnitDetails1 from '@/components/business/ApplyChangeUnitDetails1' | 
 |  |  | // import OperaApplyChangeUnitDetailWindow from '@/components/business/OperaApplyChangeUnitDetailWindow' | 
 |  |  | import { all } from '@/api/business/solutions' | 
 |  |  | import { getDetail, findList } from '@/api/business/insuranceApply' | 
 |  |  | import { create } from '@/api/business/applyChange' | 
 |  |  | import { getDate, compareDates, getTomorrow } from '@/utils/util' | 
 |  |  | export default { | 
 |  |  |   name: 'factoryChange', | 
 |  |  |   extends: BaseOpera, | 
 |  |  |   components: { | 
 |  |  |     GlobalWindow, | 
 |  |  |     // OperaApplyChangeUnitDetailWindow, | 
 |  |  |     selectEmployees, | 
 |  |  |     addEmployee, | 
 |  |  |     importEmployees, | 
 |  |  |     confirmJobType, | 
 |  |  |     ApplyChangeUnitDetails1 | 
 |  |  |   }, | 
 |  |  |   data () { | 
 |  |  |     return { | 
 |  |  |       form: { | 
 |  |  |         id: null, | 
 |  |  |         solutionId: '', | 
 |  |  |         solutionsName: '', | 
 |  |  |         applyStartTime: '', | 
 |  |  |         applyEndTime: '', | 
 |  |  |         factory: [] | 
 |  |  |       }, | 
 |  |  |       newVersionSolutionId: '', | 
 |  |  |       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.factory = [] | 
 |  |  |       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() | 
 |  |  |     }, | 
 |  |  |     success () { | 
 |  |  |       this.form.factory.forEach(item => { | 
 |  |  |         item.idcardNo = item.idCard | 
 |  |  |       }) | 
 |  |  |       this.isWorking = true | 
 |  |  |       create({ | 
 |  |  |         applyId: this.form.id, | 
 |  |  |         changeDetailList: this.form.factory, | 
 |  |  |         validTime: this.form.applyStartTime, | 
 |  |  |         type: 1 | 
 |  |  |       }).then(res => { | 
 |  |  |         this.visible = false | 
 |  |  |         // this.$refs.OperaApplyChangeUnitDetailWindow.open('更换派遣单位详情', { applyId: this.form.id, id: res }) | 
 |  |  |         this.$tip.apiSuccess('操作成功') | 
 |  |  |         this.$emit('success',{ applyId: this.form.id, id: res }) | 
 |  |  |       }).catch(e => { | 
 |  |  |         this.$tip.apiFailed(e) | 
 |  |  |       }).finally(() => { | 
 |  |  |         this.isWorking = false | 
 |  |  |       }) | 
 |  |  |     }, | 
 |  |  |     // 获取投保详情 | 
 |  |  |     getDetails () { | 
 |  |  |       findList({ applyId: this.form.id }) | 
 |  |  |         .then(res => { | 
 |  |  |           res.forEach(item => { | 
 |  |  |             item.idCard = item.idcardNo | 
 |  |  |             item.fee = '' | 
 |  |  |           }) | 
 |  |  |           res.forEach(item => { | 
 |  |  |             item.oldDuId = item.duId | 
 |  |  |             item.oldDuName = item.duName | 
 |  |  |             item.oldWorkTypeName = item.workTypeName | 
 |  |  |             item.oldWorktypeId = item.worktypeId | 
 |  |  |             item.workTypeName = '' | 
 |  |  |             item.worktypeId = '' | 
 |  |  |             item.duId = '' | 
 |  |  |             item.duName = '' | 
 |  |  |           }) | 
 |  |  |           // this.form.factory = res | 
 |  |  |         }) | 
 |  |  |       getDetail(this.form.id) | 
 |  |  |         .then(res => { | 
 |  |  |           console.log(res) | 
 |  |  |           this.list.push(res) | 
 |  |  |           this.endTime = res.endTime | 
 |  |  |           this.form.solutionId = res.solutionId | 
 |  |  |           this.newVersionSolutionId = res.newVersionSolutionId | 
 |  |  |           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) | 
 |  |  |         }) | 
 |  |  |     }, | 
 |  |  |     deleItem () { | 
 |  |  |       if (this.seleData.length === 0) { | 
 |  |  |         this.$message.warning('至少选择一项内容') | 
 |  |  |         return | 
 |  |  |       } | 
 |  |  |       this.seleData.forEach(item => { | 
 |  |  |         this.form.factory.forEach((row, index) => { | 
 |  |  |           if (item === row.memberName) { | 
 |  |  |             this.form.factory.splice(index, 1) | 
 |  |  |           } | 
 |  |  |         }) | 
 |  |  |       }) | 
 |  |  |     }, | 
 |  |  |     confirm () { | 
 |  |  |       this.$refs.form.validate((valid) => { | 
 |  |  |         if (valid) { | 
 |  |  |           // if (this.form.addDetailList.length === 0) { | 
 |  |  |           //     this.$message.warning('至少添加一项员工') | 
 |  |  |           //     return | 
 |  |  |           // } | 
 |  |  |           if (this.item.hasDispatchUnit !== 1) { | 
 |  |  |             for (let i = 0; i < this.form.factory.length; i++) { | 
 |  |  |               if (!this.form.factory[i].worktypeId || !this.form.factory[i].duId) { | 
 |  |  |                 this.$message.warning('请完善派遣单位和工种信息') | 
 |  |  |                 return | 
 |  |  |               } | 
 |  |  |             } | 
 |  |  |           } else { | 
 |  |  |             for (let i = 0; i < this.form.factory.length; i++) { | 
 |  |  |               if (!this.form.factory[i].worktypeId) { | 
 |  |  |                 this.$message.warning('请完善工种信息') | 
 |  |  |                 return | 
 |  |  |               } | 
 |  |  |             } | 
 |  |  |           } | 
 |  |  |           let arr = this.company.filter(item => item.id === this.form.solutionId) | 
 |  |  |           const endTime = Number(arr[0].correctWarnTime.split(':')[0] + arr[0].correctWarnTime.split(':')[1]) | 
 |  |  |           const now = new Date(); | 
 |  |  |           const hours = now.getHours(); | 
 |  |  |           const minutes = now.getMinutes(); | 
 |  |  |           const date = `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}`; | 
 |  |  |           const startTime = Number(date.split(':')[0] + date.split(':')[1]) | 
 |  |  |           if (startTime > endTime) { | 
 |  |  |             this.$confirm('您已超过当天最晚批改时间,保单实际生效时间以保险公司审核为准!', '提示', { | 
 |  |  |               confirmButtonText: '确定', | 
 |  |  |               cancelButtonText: '取消', | 
 |  |  |               type: 'warning' | 
 |  |  |             }).then(() => { | 
 |  |  |               this.$refs.ApplyChangeUnitDetails1.open('更换派遣单位详单', this.form.factory, { ...this.list[0], applyStartTime: this.form.applyStartTime }) | 
 |  |  |             }).catch(() => { | 
 |  |  |  | 
 |  |  |             }); | 
 |  |  |           } else { | 
 |  |  |             this.$refs.ApplyChangeUnitDetails1.open('更换派遣单位详单', this.form.factory, { ...this.list[0], applyStartTime: this.form.applyStartTime }) | 
 |  |  |           } | 
 |  |  |         } | 
 |  |  |       }) | 
 |  |  |     }, | 
 |  |  |     seleUser () { | 
 |  |  |       if (!this.form.solutionId) { | 
 |  |  |         this.$message.warning('请先选择保险方案') | 
 |  |  |         return | 
 |  |  |       } | 
 |  |  |       if (!this.form.applyStartTime) { | 
 |  |  |         this.$message.warning('请先选择批单生效起期') | 
 |  |  |         return | 
 |  |  |       } | 
 |  |  |       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 | 
 |  |  |       } | 
 |  |  |       this.$refs.addEmployee.open('添加员工', { arr: this.form.factory, price: this.price }) | 
 |  |  |     }, | 
 |  |  |     uploadUser () { | 
 |  |  |       if (!this.form.solutionId) { | 
 |  |  |         this.$message.warning('请先选择保险方案') | 
 |  |  |         return | 
 |  |  |       } | 
 |  |  |       this.$refs.importEmployees.open('上传名单', { arr: this.form.factory, price: this.price, hasDispatchUnit: this.item.hasDispatchUnit }) | 
 |  |  |     }, | 
 |  |  |     // 切换方案 | 
 |  |  |     changeSolution1 (e) { | 
 |  |  |       this.company.forEach(item => { | 
 |  |  |         if (item.id === e) { | 
 |  |  |           this.item = item | 
 |  |  |         } | 
 |  |  |       }) | 
 |  |  |       // this.tableData.forEach(item => { | 
 |  |  |       //     item.fee = this.price | 
 |  |  |       // }) | 
 |  |  |     }, | 
 |  |  |     dele (index) { | 
 |  |  |       this.form.factory.splice(index, 1) | 
 |  |  |     }, | 
 |  |  |     getUser (obj) { | 
 |  |  |       console.log(obj) | 
 |  |  |       this.seleData.forEach(item => { | 
 |  |  |         this.form.factory.forEach(row => { | 
 |  |  |           if (item === row.memberName) { | 
 |  |  |             row.workTypeName = obj.workTypeName | 
 |  |  |             row.worktypeId = obj.worktypeId | 
 |  |  |             row.duName = obj.duName | 
 |  |  |             row.duId = obj.duId | 
 |  |  |           } | 
 |  |  |         }) | 
 |  |  |       }) | 
 |  |  |       this.seleData = [] | 
 |  |  |       this.$refs.multipleTable.clearSelection() | 
 |  |  |     }, | 
 |  |  |     // 选择员工 | 
 |  |  |     sele (type) { | 
 |  |  |       if (!this.form.solutionId) { | 
 |  |  |         this.$message.warning('请选择保险方案') | 
 |  |  |         return | 
 |  |  |       } | 
 |  |  |       if (this.seleData.length === 0) { | 
 |  |  |         this.$message.warning('请选择员工') | 
 |  |  |         return | 
 |  |  |       } | 
 |  |  |       this.$refs.confirmJobType.open('确认工种', { solutionId: this.newVersionSolutionId, type }) | 
 |  |  |     }, | 
 |  |  |     // 查询全部方案 | 
 |  |  |     getCompany () { | 
 |  |  |       all({}) | 
 |  |  |         .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.memberName) | 
 |  |  |     }, | 
 |  |  |     // 选取员工 | 
 |  |  |     getValue1 (list) { | 
 |  |  |       const arr = JSON.parse(JSON.stringify(list)) | 
 |  |  |  | 
 |  |  |       arr.forEach(item => { | 
 |  |  |         item.oldDuId = item.duId | 
 |  |  |         item.oldDuName = item.duName | 
 |  |  |         item.oldWorkTypeName = item.workTypeName | 
 |  |  |         item.oldWorktypeId = item.worktypeId | 
 |  |  |  | 
 |  |  |         item.duId = '' | 
 |  |  |         item.duName = '' | 
 |  |  |         item.workTypeName = '' | 
 |  |  |         item.worktypeId = '' | 
 |  |  |       }) | 
 |  |  |  | 
 |  |  |       for (let a = 0; a < arr.length; a++) { | 
 |  |  |         for (let b = 0; b < this.form.factory.length; b++) { | 
 |  |  |           if (arr[a].id === this.form.factory[b].id) { | 
 |  |  |             this.$message.warning(`${arr[a].companyName}员工重复!`) | 
 |  |  |             return | 
 |  |  |           } | 
 |  |  |         } | 
 |  |  |       } | 
 |  |  |  | 
 |  |  |       this.form.factory.push(...arr) | 
 |  |  |     }, | 
 |  |  |     getValue (list) { | 
 |  |  |       const arr = JSON.parse(JSON.stringify(list)) | 
 |  |  |  | 
 |  |  |       arr.forEach(item => { | 
 |  |  |         item.oldDuId = item.duId | 
 |  |  |         item.oldDuName = item.duName | 
 |  |  |         item.oldWorkTypeName = item.workTypeName | 
 |  |  |         item.oldWorktypeId = item.worktypeId | 
 |  |  |  | 
 |  |  |         item.duId = '' | 
 |  |  |         item.duName = '' | 
 |  |  |         item.workTypeName = '' | 
 |  |  |         item.worktypeId = '' | 
 |  |  |       }) | 
 |  |  |       this.form.factory.push(...arr) | 
 |  |  |     } | 
 |  |  |   } | 
 |  |  | } | 
 |  |  | </script> | 
 |  |  |  | 
 |  |  | <style lang="scss" scoped> |