|  |  |  | 
|---|
|  |  |  | <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=" "> | 
|---|
|  |  |  | <span style="color: #F95601; font-size: 14px;">批改提示:(次日生效投保请于17:30前提交,超时提交以保险单为准)</span> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | <!--                <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> | 
|---|
|  |  |  | 
|---|
|  |  |  | 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" | 
|---|
|  |  |  | 
|---|
|  |  |  | <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> | 
|---|
|  |  |  | <div class="btns_item" v-if="activeName !== '1'"> | 
|---|
|  |  |  | <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 | 
|---|
|  |  |  | v-if="item" | 
|---|
|  |  |  | :data="activeName === '0' ? form.addDetailList : form.delDetailList" | 
|---|
|  |  |  | border | 
|---|
|  |  |  | show-summary | 
|---|
|  |  |  | 
|---|
|  |  |  | </template> | 
|---|
|  |  |  | </el-table-column> | 
|---|
|  |  |  | <el-table-column | 
|---|
|  |  |  | v-if="item && item.hasDispatchUnit !== 1" | 
|---|
|  |  |  | prop="duName" | 
|---|
|  |  |  | label="派遣单位"> | 
|---|
|  |  |  | </el-table-column> | 
|---|
|  |  |  | 
|---|
|  |  |  | label="费用"> | 
|---|
|  |  |  | <template slot-scope="{row}"> | 
|---|
|  |  |  | <span v-if="activeName === '0'">{{row.fee}}</span> | 
|---|
|  |  |  | <span v-else>-{{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' | 
|---|
|  |  |  | 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.endTime = res.endTime | 
|---|
|  |  |  | this.form.solutionId = res.solutionId | 
|---|
|  |  |  | this.form.solutionsName = res.solutionsName | 
|---|
|  |  |  | this.pickerOptions = { | 
|---|
|  |  |  | disabledDate(time) { | 
|---|
|  |  |  | // - 8.64e7 | 
|---|
|  |  |  | return time.getTime() > new Date(res.endTime).getTime() || time.getTime() < new Date().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 | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | } 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.activeName === '0') { | 
|---|
|  |  |  | this.$refs.selectEmployees.open('选取员工', { arr: this.form.addDetailList, price: this.price, notInInsuranceApplyId: this.form.id }) | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | this.$refs.selectEmployees.open('选取员工', { arr: this.form.delDetailList, price: this.price, insuranceApplyId: this.form.id }) | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | 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 => { | 
|---|
|  |  |  | if (item.id === e) { | 
|---|
|  |  |  | 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({}) | 
|---|
|  |  |  | .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) { | 
|---|
|  |  |  | console.log(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/addEmployeeWithDu' | 
|---|
|  |  |  | 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, getApplyPower } 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: [] | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | addTrue: '', | 
|---|
|  |  |  | delTrue: '', | 
|---|
|  |  |  | 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) | 
|---|
|  |  |  | this.getApplyPowerData() | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | this.$nextTick(() => { | 
|---|
|  |  |  | this.$refs.form.resetFields() | 
|---|
|  |  |  | this.form[this.configData['field.id']] = null | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | } | 
|---|
|  |  |  | this.getCompany() | 
|---|
|  |  |  | this.visible = true | 
|---|
|  |  |  | // this.updatePickerOptions() | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | // 获取是否能加减保 | 
|---|
|  |  |  | getApplyPowerData() { | 
|---|
|  |  |  | getApplyPower({ applyId: this.form.id }) | 
|---|
|  |  |  | .then(res => { | 
|---|
|  |  |  | this.addTrue = res.addTrue | 
|---|
|  |  |  | this.delTrue = res.delTrue | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | 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 () { | 
|---|
|  |  |  | 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 (this.item.hasDispatchUnit === 1 && index === 6) { | 
|---|
|  |  |  | 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) | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } else if (this.item.hasDispatchUnit !== 1 && 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.activeName === '0') { | 
|---|
|  |  |  | if (this.addTrue !== 0) return this.$message.warning('当前保单暂不支持操作') | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | if (this.delTrue !== 0) return this.$message.warning('当前保单暂不支持操作') | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 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 }) | 
|---|
|  |  |  | //   { applyId: this.form.id, id: res } | 
|---|
|  |  |  | this.$emit('success') | 
|---|
|  |  |  | }).catch(e => { | 
|---|
|  |  |  | this.$tip.apiFailed(e) | 
|---|
|  |  |  | }).finally(() => { | 
|---|
|  |  |  | this.isWorking = false | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | confirm () { | 
|---|
|  |  |  | if (this.addTrue !== 0 && this.delTrue !== 0) return this.$message.warning('当前保单暂不支持操作') | 
|---|
|  |  |  | 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.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 | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | for (let i = 0; i < this.form.addDetailList.length; i++) { | 
|---|
|  |  |  | if (!this.form.addDetailList[i].worktypeId) { | 
|---|
|  |  |  | this.$message.warning('请完善加保工种信息') | 
|---|
|  |  |  | return | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | for (let i = 0; i < this.form.delDetailList.length; i++) { | 
|---|
|  |  |  | if (!this.form.delDetailList[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.ApplyChangeDetails1.open('加减保详单', this.form.addDetailList, this.form.delDetailList, { | 
|---|
|  |  |  | companyName: this.item.companyName, | 
|---|
|  |  |  | solutionsName: this.form.solutionsName, | 
|---|
|  |  |  | code: this.list[0].code, | 
|---|
|  |  |  | startTime: this.list[0].startTime, | 
|---|
|  |  |  | endTime: this.list[0].endTime, | 
|---|
|  |  |  | applyStartTime: this.form.applyStartTime | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | }).catch(() => { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | this.$refs.ApplyChangeDetails1.open('加减保详单', this.form.addDetailList, this.form.delDetailList, { | 
|---|
|  |  |  | companyName: this.item.companyName, | 
|---|
|  |  |  | solutionsName: this.form.solutionsName, | 
|---|
|  |  |  | code: this.list[0].code, | 
|---|
|  |  |  | startTime: this.list[0].startTime, | 
|---|
|  |  |  | endTime: this.list[0].endTime, | 
|---|
|  |  |  | applyStartTime: this.form.applyStartTime | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | seleUser () { | 
|---|
|  |  |  | if (this.activeName === '0') { | 
|---|
|  |  |  | if (this.addTrue !== 0) return this.$message.warning('当前保单暂不支持操作') | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | if (this.delTrue !== 0) return this.$message.warning('当前保单暂不支持操作') | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 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.activeName === '0') { | 
|---|
|  |  |  | if (this.addTrue !== 0) return this.$message.warning('当前保单暂不支持操作') | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | if (this.delTrue !== 0) return this.$message.warning('当前保单暂不支持操作') | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (!this.form.solutionId) { | 
|---|
|  |  |  | this.$message.warning('请先选择保险方案') | 
|---|
|  |  |  | return | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (this.activeName === '0') { | 
|---|
|  |  |  | this.$refs.addEmployee.open('添加加保员工', { arr: this.form.addDetailList, solutionId: this.item.newVersionSolutionId, price: this.price, companyId: this.item.hasDispatchUnit === 1 ? '1' : '' }) | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | this.$refs.addEmployee.open('添加减保员工', { arr: this.form.delDetailList, solutionId: this.item.newVersionSolutionId, price: this.reducePrice, companyId: this.item.hasDispatchUnit === 1 ? '1' : '' }) | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | uploadUser () { | 
|---|
|  |  |  | if (this.activeName === '0') { | 
|---|
|  |  |  | if (this.addTrue !== 0) return this.$message.warning('当前保单暂不支持操作') | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | if (this.delTrue !== 0) return this.$message.warning('当前保单暂不支持操作') | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 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, hasDispatchUnit: this.item.hasDispatchUnit, solutionId: this.item.newVersionSolutionId }) | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | this.$refs.importEmployees.open('减保员工名单', { arr: this.form.delDetailList, type: 0, price: this.reducePrice, hasDispatchUnit: this.item.hasDispatchUnit, solutionId: this.item.newVersionSolutionId, 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) { | 
|---|
|  |  |  | 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 (type) { | 
|---|
|  |  |  | if (this.activeName === '0') { | 
|---|
|  |  |  | if (this.addTrue !== 0) return this.$message.warning('当前保单暂不支持操作') | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | if (this.delTrue !== 0) return this.$message.warning('当前保单暂不支持操作') | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 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, type }) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | // 查询全部方案 | 
|---|
|  |  |  | 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> | 
|---|