|  |  |  | 
|---|
|  |  |  | <GlobalWindow | 
|---|
|  |  |  | :title="title" | 
|---|
|  |  |  | width="100%" | 
|---|
|  |  |  | :withFooter="false" | 
|---|
|  |  |  | text="投保申请" | 
|---|
|  |  |  | :visible.sync="visible" | 
|---|
|  |  |  | :confirm-working="isWorking" | 
|---|
|  |  |  | @confirm="confirm" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <div class="list"> | 
|---|
|  |  |  | <el-form :inline="true" :model="form" :rules="rules" class="demo-form-inline"> | 
|---|
|  |  |  | <el-form :inline="true" ref="form" :model="form" :rules="rules" class="demo-form-inline"> | 
|---|
|  |  |  | <el-form-item label="保险方案" prop="solutionId"> | 
|---|
|  |  |  | <el-select v-model="form.solutionId" placeholder="请选择"> | 
|---|
|  |  |  | <el-option label="区域一" value="shanghai"></el-option> | 
|---|
|  |  |  | <el-option label="区域二" value="beijing"></el-option> | 
|---|
|  |  |  | <el-select v-model="form.solutionId" @change="changeSolution" placeholder="请选择"> | 
|---|
|  |  |  | <el-option | 
|---|
|  |  |  | v-for="item in company" | 
|---|
|  |  |  | :key="item.id" | 
|---|
|  |  |  | :label="item.name" | 
|---|
|  |  |  | :value="item.id"> | 
|---|
|  |  |  | </el-option> | 
|---|
|  |  |  | </el-select> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | <el-form-item label="期望保险生效起期" prop="applyStartTime"> | 
|---|
|  |  |  | <div style="display: flex; flex-direction: column;"> | 
|---|
|  |  |  | <el-date-picker | 
|---|
|  |  |  | v-model="form.applyStartTime" | 
|---|
|  |  |  | type="date" | 
|---|
|  |  |  | placeholder="选择日期"> | 
|---|
|  |  |  | @change="getTimeVal" | 
|---|
|  |  |  | v-model="form.applyStartTime" | 
|---|
|  |  |  | type="date" | 
|---|
|  |  |  | class="date_picker" | 
|---|
|  |  |  | :clearable="false" | 
|---|
|  |  |  | :disabled="!form.solutionId" | 
|---|
|  |  |  | :picker-options="pickerOptions" | 
|---|
|  |  |  | value-format="yyyy-MM-dd HH:mm:ss" | 
|---|
|  |  |  | format="yyyy-MM-dd HH:mm:ss" | 
|---|
|  |  |  | placeholder="选择日期"> | 
|---|
|  |  |  | </el-date-picker> | 
|---|
|  |  |  | <span style="color: #F95601; font-size: 14px;">(次日生效投保请于17:30前提交,超时提交以保险单为准)</span> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | <el-form-item label="保险生效止期" prop="applyEndTime"> | 
|---|
|  |  |  | <el-date-picker | 
|---|
|  |  |  | disabled | 
|---|
|  |  |  | v-model="form.applyEndTime" | 
|---|
|  |  |  | type="date" | 
|---|
|  |  |  | class="date_picker" | 
|---|
|  |  |  | :picker-options="pickerOptions" | 
|---|
|  |  |  | value-format="yyyy-MM-dd HH:mm:ss" | 
|---|
|  |  |  | format="yyyy-MM-dd HH:mm:ss" | 
|---|
|  |  |  | placeholder="选择日期"> | 
|---|
|  |  |  | </el-date-picker> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | <el-form-item label="投保年龄"> | 
|---|
|  |  |  | <span>25至65</span> | 
|---|
|  |  |  | <el-form-item label="投保年龄" v-if="item"> | 
|---|
|  |  |  | <span>{{item.minAge}} 至 {{item.maxAge}}</span> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | <el-form-item label="费用"> | 
|---|
|  |  |  | <span>200元/年/人</span> | 
|---|
|  |  |  | <el-form-item label="费用" v-if="item"> | 
|---|
|  |  |  | <span>{{item.price}}元</span> | 
|---|
|  |  |  | <span v-if="item.timeUnit === 0">/天</span> | 
|---|
|  |  |  | <span v-if="item.timeUnit === 1">/半月</span> | 
|---|
|  |  |  | <span v-if="item.timeUnit === 2">/月</span> | 
|---|
|  |  |  | <span v-if="item.timeUnit === 3">/年</span> | 
|---|
|  |  |  | <span>/人</span> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | </el-form> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <div class="btns"> | 
|---|
|  |  |  | <div class="btns_item"> | 
|---|
|  |  |  | <el-button type="primary" @click="$refs.selectEmployees.open('选取员工')">选取员工</el-button> | 
|---|
|  |  |  | <el-button type="primary">导入员工</el-button> | 
|---|
|  |  |  | <el-button type="primary" @click="$refs.addEmployee.open('添加员工', tableData)">添加员工</el-button> | 
|---|
|  |  |  | <el-button type="primary" @click="seleUser">选取员工</el-button> | 
|---|
|  |  |  | <el-button type="primary" @click="uploadUser">导入员工</el-button> | 
|---|
|  |  |  | <el-button type="primary" @click="addUser">添加员工</el-button> | 
|---|
|  |  |  | <el-button type="danger" @click="deleItem">删除</el-button> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <div class="btns_item"> | 
|---|
|  |  |  | <el-button type="primary">选取派遣单位</el-button> | 
|---|
|  |  |  | <el-button type="primary" @click="sele">选取派遣单位</el-button> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <el-table | 
|---|
|  |  |  | :data="tableData" | 
|---|
|  |  |  | border | 
|---|
|  |  |  | show-summary | 
|---|
|  |  |  | :summary-method="getSummaries" | 
|---|
|  |  |  | ref="multipleTable" | 
|---|
|  |  |  | @selection-change="handleSelectionChange" | 
|---|
|  |  |  | style="width: 100%;margin-bottom: 15px;"> | 
|---|
|  |  |  | <el-table-column | 
|---|
|  |  |  | type="selection" | 
|---|
|  |  |  | width="55"> | 
|---|
|  |  |  | </el-table-column> | 
|---|
|  |  |  | <el-table-column label="序号" width="80px"> | 
|---|
|  |  |  | <template slot-scope="scope"> | 
|---|
|  |  |  | <span>{{scope.$index + 1}}</span> | 
|---|
|  |  |  | </template> | 
|---|
|  |  |  | </el-table-column> | 
|---|
|  |  |  | <el-table-column | 
|---|
|  |  |  | prop="name" | 
|---|
|  |  |  | prop="memberName" | 
|---|
|  |  |  | label="姓名"> | 
|---|
|  |  |  | </el-table-column> | 
|---|
|  |  |  | <el-table-column | 
|---|
|  |  |  | prop="idcardNo" | 
|---|
|  |  |  | prop="idCard" | 
|---|
|  |  |  | label="身份证号"> | 
|---|
|  |  |  | </el-table-column> | 
|---|
|  |  |  | <el-table-column | 
|---|
|  |  |  | prop="address" | 
|---|
|  |  |  | label="年龄"> | 
|---|
|  |  |  | <template slot-scope="{row}"> | 
|---|
|  |  |  | <template v-if="item"> | 
|---|
|  |  |  | <span style="color: red;" v-if="row.idCard && (getAgeByIdCard(row.idCard) < item.minAge || getAgeByIdCard(row.idCard) > item.maxAge)">{{ getAgeByIdCard(row.idCard) }}</span> | 
|---|
|  |  |  | <span v-else>{{ getAgeByIdCard(row.idCard) }}</span> | 
|---|
|  |  |  | </template> | 
|---|
|  |  |  | </template> | 
|---|
|  |  |  | </el-table-column> | 
|---|
|  |  |  | <el-table-column | 
|---|
|  |  |  | prop="address" | 
|---|
|  |  |  | prop="duName" | 
|---|
|  |  |  | label="派遣单位"> | 
|---|
|  |  |  | </el-table-column> | 
|---|
|  |  |  | <el-table-column | 
|---|
|  |  |  | prop="address" | 
|---|
|  |  |  | prop="workTypeName" | 
|---|
|  |  |  | label="所属工种"> | 
|---|
|  |  |  | </el-table-column> | 
|---|
|  |  |  | <el-table-column | 
|---|
|  |  |  | prop="address" | 
|---|
|  |  |  | prop="fee" | 
|---|
|  |  |  | label="费用"> | 
|---|
|  |  |  | </el-table-column> | 
|---|
|  |  |  | <el-table-column | 
|---|
|  |  |  | prop="address" | 
|---|
|  |  |  | label="操作"> | 
|---|
|  |  |  | <template slot-scope="scope"> | 
|---|
|  |  |  | <el-button type="text" style="color: red;" @click="dele(scope.$index)">删除</el-button> | 
|---|
|  |  |  | </template> | 
|---|
|  |  |  | </el-table-column> | 
|---|
|  |  |  | </el-table> | 
|---|
|  |  |  | <div class="submit"> | 
|---|
|  |  |  | <el-button type="primary">投保申请</el-button> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <div class="info"> | 
|---|
|  |  |  | 富文本 | 
|---|
|  |  |  | <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> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <!--    选择员工    --> | 
|---|
|  |  |  | <selectEmployees ref="selectEmployees" /> | 
|---|
|  |  |  | <selectEmployees ref="selectEmployees" @result="getValue" /> | 
|---|
|  |  |  | <!--    添加员工    --> | 
|---|
|  |  |  | <addEmployee ref="addEmployee" @result="getValue" /> | 
|---|
|  |  |  | <!--    导入名单    --> | 
|---|
|  |  |  | <importEmployees ref="importEmployees" @result="getValue" /> | 
|---|
|  |  |  | <!--    确认工种    --> | 
|---|
|  |  |  | <confirmJobType ref="confirmJobType" @result="getUser" /> | 
|---|
|  |  |  | <!--    查看详单    --> | 
|---|
|  |  |  | <detailsPolicyholder ref="detailsPolicyholder" @success="successEvent" /> | 
|---|
|  |  |  | </GlobalWindow> | 
|---|
|  |  |  | </template> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | 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 detailsPolicyholder from '@/components/business/detailsPolicyholder' | 
|---|
|  |  |  | import { all, getNewVersion } from '@/api/business/solutions' | 
|---|
|  |  |  | import { mapState } from 'vuex' | 
|---|
|  |  |  | import { create, getCountCyclePriceVO, getDetail, findList, updateData } from '@/api/business/insuranceApply' | 
|---|
|  |  |  | export default { | 
|---|
|  |  |  | name: 'OperaInsuranceApplyWindow', | 
|---|
|  |  |  | name: 'OperaInsuranceApplyWindow2', | 
|---|
|  |  |  | extends: BaseOpera, | 
|---|
|  |  |  | components: { GlobalWindow, selectEmployees, addEmployee }, | 
|---|
|  |  |  | components: { GlobalWindow, selectEmployees, addEmployee, importEmployees, confirmJobType, detailsPolicyholder }, | 
|---|
|  |  |  | data () { | 
|---|
|  |  |  | return { | 
|---|
|  |  |  | form: { | 
|---|
|  |  |  | id: null, | 
|---|
|  |  |  | ID: null, | 
|---|
|  |  |  | solutionId: '', | 
|---|
|  |  |  | applyStartTime: '', | 
|---|
|  |  |  | applyEndTime: '' | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | solutionName: '', | 
|---|
|  |  |  | type: '', | 
|---|
|  |  |  | pickerOptions: {}, // 存放picker options的变量 | 
|---|
|  |  |  | price: '', | 
|---|
|  |  |  | company: [], | 
|---|
|  |  |  | seleData: [], | 
|---|
|  |  |  | item: null, | 
|---|
|  |  |  | // 验证规则 | 
|---|
|  |  |  | rules: { | 
|---|
|  |  |  | solutionId: [ | 
|---|
|  |  |  | 
|---|
|  |  |  | 'field.id': 'id' | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | methods: { | 
|---|
|  |  |  | computed: { | 
|---|
|  |  |  | ...mapState(['userInfo']) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | methods: { | 
|---|
|  |  |  | successEvent() { | 
|---|
|  |  |  | let arr = JSON.parse(JSON.stringify(this.tableData)) | 
|---|
|  |  |  | arr.forEach(item => { | 
|---|
|  |  |  | item.idcardNo = item.idCard | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | this.isWorking = true | 
|---|
|  |  |  | // if (!this.form.id) { | 
|---|
|  |  |  | create({ | 
|---|
|  |  |  | applyDetailList: arr, | 
|---|
|  |  |  | applyStartTime: this.form.applyStartTime, | 
|---|
|  |  |  | applyEndTime: this.form.applyEndTime, | 
|---|
|  |  |  | solutionId: this.form.solutionId | 
|---|
|  |  |  | }).then(() => { | 
|---|
|  |  |  | this.visible = false | 
|---|
|  |  |  | this.$tip.apiSuccess('操作成功') | 
|---|
|  |  |  | this.$emit('success') | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | .catch(e => { | 
|---|
|  |  |  | this.$tip.apiFailed(e) | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | .finally(() => { | 
|---|
|  |  |  | this.isWorking = false | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | // } else { | 
|---|
|  |  |  | //     updateData({ | 
|---|
|  |  |  | //         id: this.form.id, | 
|---|
|  |  |  | //         applyDetailList: arr, | 
|---|
|  |  |  | //         applyStartTime: this.form.applyStartTime, | 
|---|
|  |  |  | //         applyEndTime: this.form.applyEndTime, | 
|---|
|  |  |  | //         solutionId: this.form.solutionId | 
|---|
|  |  |  | //     }).then(() => { | 
|---|
|  |  |  | //         this.visible = false | 
|---|
|  |  |  | //         this.$tip.apiSuccess('操作成功') | 
|---|
|  |  |  | //         this.$emit('success') | 
|---|
|  |  |  | //     }).catch(e => { | 
|---|
|  |  |  | //         this.$tip.apiFailed(e) | 
|---|
|  |  |  | //     }) | 
|---|
|  |  |  | //         .finally(() => { | 
|---|
|  |  |  | //             this.isWorking = false | 
|---|
|  |  |  | //         }) | 
|---|
|  |  |  | // } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | open (title, target) { | 
|---|
|  |  |  | this.title = title | 
|---|
|  |  |  | this.tableData = [] | 
|---|
|  |  |  | this.form.id = null | 
|---|
|  |  |  | this.item = null | 
|---|
|  |  |  | if (target.type) { | 
|---|
|  |  |  | this.type = target.type | 
|---|
|  |  |  | } | 
|---|
|  |  |  | this.form.solutionId = '' | 
|---|
|  |  |  | this.form.applyStartTime = '' | 
|---|
|  |  |  | this.form.applyEndTime = '' | 
|---|
|  |  |  | if (target && target.id) { | 
|---|
|  |  |  | this.$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() | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | // 获取投保详情 | 
|---|
|  |  |  | getDetails() { | 
|---|
|  |  |  | findList({ applyId: this.form.id }) | 
|---|
|  |  |  | .then(res => { | 
|---|
|  |  |  | res.forEach(item => { | 
|---|
|  |  |  | console.log(item) | 
|---|
|  |  |  | item.idCard = item.idcardNo | 
|---|
|  |  |  | item.fee = '' | 
|---|
|  |  |  | if (this.type === 1) { | 
|---|
|  |  |  | item.duName = '' | 
|---|
|  |  |  | item.duId = '' | 
|---|
|  |  |  | item.worktypeId = '' | 
|---|
|  |  |  | item.workTypeName = '' | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | this.tableData = res | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | getDetail(this.form.id) | 
|---|
|  |  |  | .then(res => { | 
|---|
|  |  |  | // this.form.solutionId = res.solutionId | 
|---|
|  |  |  | 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 | 
|---|
|  |  |  | this.tableData.forEach(item => { | 
|---|
|  |  |  | total += item.fee | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | sums[index] = total | 
|---|
|  |  |  | return | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | return sums | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | deleItem() { | 
|---|
|  |  |  | if (this.seleData.length === 0) { | 
|---|
|  |  |  | this.$message.warning('至少选择一项内容') | 
|---|
|  |  |  | return | 
|---|
|  |  |  | } | 
|---|
|  |  |  | this.seleData.forEach(item => { | 
|---|
|  |  |  | this.tableData.forEach((row, index) => { | 
|---|
|  |  |  | if (item === row.idCard) { | 
|---|
|  |  |  | this.tableData.splice(index, 1) | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | confirm() { | 
|---|
|  |  |  | this.$refs.form.validate((valid) => { | 
|---|
|  |  |  | if (valid) { | 
|---|
|  |  |  | if (this.tableData.length === 0) { | 
|---|
|  |  |  | this.$message.warning('至少添加一项员工') | 
|---|
|  |  |  | return | 
|---|
|  |  |  | } | 
|---|
|  |  |  | for (let i = 0; i < this.tableData.length; i++) { | 
|---|
|  |  |  | console.log(this.tableData[i].worktypeId) | 
|---|
|  |  |  | console.log(this.tableData[i].duId) | 
|---|
|  |  |  | if (!this.tableData[i].worktypeId || !this.tableData[i].duId) { | 
|---|
|  |  |  | this.$message.warning('请完善派遣单位和工种信息') | 
|---|
|  |  |  | return | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | let price = 0 | 
|---|
|  |  |  | this.tableData.forEach(item => { | 
|---|
|  |  |  | price = price + item.fee | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | this.$refs.detailsPolicyholder.open('投保详情单', { | 
|---|
|  |  |  | companyName: this.userInfo.company.name, | 
|---|
|  |  |  | solutionName: this.item.name, | 
|---|
|  |  |  | applyStartTime: this.form.applyStartTime, | 
|---|
|  |  |  | applyEndTime: this.form.applyEndTime, | 
|---|
|  |  |  | insureNum: this.tableData.length, | 
|---|
|  |  |  | totalPrice: price, | 
|---|
|  |  |  | detailList: this.tableData | 
|---|
|  |  |  | }) | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // let arr = JSON.parse(JSON.stringify(this.tableData)) | 
|---|
|  |  |  | // arr.forEach(item => { | 
|---|
|  |  |  | //     item.idcardNo = item.idCard | 
|---|
|  |  |  | // }) | 
|---|
|  |  |  | // this.isWorking = true | 
|---|
|  |  |  | // if (!this.form.id) { | 
|---|
|  |  |  | //     create({ | 
|---|
|  |  |  | //         applyDetailList: arr, | 
|---|
|  |  |  | //         applyStartTime: this.form.applyStartTime, | 
|---|
|  |  |  | //         applyEndTime: this.form.applyEndTime, | 
|---|
|  |  |  | //         solutionId: this.form.solutionId | 
|---|
|  |  |  | //     }).then(() => { | 
|---|
|  |  |  | //         this.visible = false | 
|---|
|  |  |  | //         this.$tip.apiSuccess('操作成功') | 
|---|
|  |  |  | //         this.$emit('success') | 
|---|
|  |  |  | //     }) | 
|---|
|  |  |  | //         .catch(e => { | 
|---|
|  |  |  | //             this.$tip.apiFailed(e) | 
|---|
|  |  |  | //         }) | 
|---|
|  |  |  | //         .finally(() => { | 
|---|
|  |  |  | //             this.isWorking = false | 
|---|
|  |  |  | //         }) | 
|---|
|  |  |  | // } else { | 
|---|
|  |  |  | //     updateData({ | 
|---|
|  |  |  | //         id: this.form.id, | 
|---|
|  |  |  | //         applyDetailList: arr, | 
|---|
|  |  |  | //         applyStartTime: this.form.applyStartTime, | 
|---|
|  |  |  | //         applyEndTime: this.form.applyEndTime, | 
|---|
|  |  |  | //         solutionId: this.form.solutionId | 
|---|
|  |  |  | //     }).then(() => { | 
|---|
|  |  |  | //         this.visible = false | 
|---|
|  |  |  | //         this.$tip.apiSuccess('操作成功') | 
|---|
|  |  |  | //         this.$emit('success') | 
|---|
|  |  |  | //     }).catch(e => { | 
|---|
|  |  |  | //         this.$tip.apiFailed(e) | 
|---|
|  |  |  | //     }) | 
|---|
|  |  |  | //     .finally(() => { | 
|---|
|  |  |  | //         this.isWorking = false | 
|---|
|  |  |  | //     }) | 
|---|
|  |  |  | // } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | // 获取结束时间和价格 | 
|---|
|  |  |  | getTimeVal(time) { | 
|---|
|  |  |  | getCountCyclePriceVO({ | 
|---|
|  |  |  | solutionsId: this.form.solutionId, | 
|---|
|  |  |  | startDate: time | 
|---|
|  |  |  | }).then(res => { | 
|---|
|  |  |  | this.price = res.cyclePrice | 
|---|
|  |  |  | this.form.applyEndTime = res.endDate | 
|---|
|  |  |  | this.tableData.forEach(item => { | 
|---|
|  |  |  | item.fee = res.cyclePrice | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | this.$forceUpdate() | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | getDate(n) { // n为多少天,-代表往前,+代表往后 | 
|---|
|  |  |  | let date1 = new Date(), | 
|---|
|  |  |  | time1 = date1.getFullYear() + "-" + (date1.getMonth() + 1) + "-" + date1.getDate();//time1表示当前时间 | 
|---|
|  |  |  | let date2 = new Date(date1); | 
|---|
|  |  |  | date2.setDate(date1.getDate() + n); | 
|---|
|  |  |  | let time2 = date2.getFullYear() + "-" + ("0" + (date2.getMonth() + 1)).slice(-2) + "-" + ("0" + date2.getDate()).slice(-2); | 
|---|
|  |  |  | return time2 | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | updatePickerOptions() { | 
|---|
|  |  |  | var that = this; | 
|---|
|  |  |  | this.pickerOptions = { | 
|---|
|  |  |  | disabledDate(time) { | 
|---|
|  |  |  | if (!that.item) return | 
|---|
|  |  |  | if (that.item.validType === 1) { | 
|---|
|  |  |  | // 次月 | 
|---|
|  |  |  | const currentDate = new Date(); | 
|---|
|  |  |  | currentDate.setMonth(currentDate.getMonth() + 1); | 
|---|
|  |  |  | currentDate.setDate(1); | 
|---|
|  |  |  | return time.getTime() <= new Date(currentDate.toLocaleString()).getTime() - 8.64e7; | 
|---|
|  |  |  | } else if (that.item.validType === 0) { | 
|---|
|  |  |  | // 多少日后生效 | 
|---|
|  |  |  | return time.getTime() <= new Date(that.getDate(that.item.validTypeNum - 1)).getTime(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }; | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | seleUser() { | 
|---|
|  |  |  | if (!this.form.solutionId) { | 
|---|
|  |  |  | this.$message.warning('请先选择保险方案') | 
|---|
|  |  |  | return | 
|---|
|  |  |  | } | 
|---|
|  |  |  | this.$refs.selectEmployees.open('选取员工', { arr: this.tableData, price: this.price, type: 1 }) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | addUser() { | 
|---|
|  |  |  | if (!this.form.solutionId) { | 
|---|
|  |  |  | this.$message.warning('请先选择保险方案') | 
|---|
|  |  |  | return | 
|---|
|  |  |  | } | 
|---|
|  |  |  | this.$refs.addEmployee.open('添加员工', { arr: this.tableData, price: this.price }) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | uploadUser() { | 
|---|
|  |  |  | if (!this.form.solutionId) { | 
|---|
|  |  |  | this.$message.warning('请先选择保险方案') | 
|---|
|  |  |  | return | 
|---|
|  |  |  | } | 
|---|
|  |  |  | this.$refs.importEmployees.open('上传名单', { arr: this.tableData, solutionId: this.form.solutionId, type: 1, price: this.price }) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | // 切换方案 | 
|---|
|  |  |  | changeSolution(e) { | 
|---|
|  |  |  | if (!this.form.id) { | 
|---|
|  |  |  | this.tableData = [] | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | this.price = '' | 
|---|
|  |  |  | this.form.applyEndTime = '' | 
|---|
|  |  |  | this.form.applyStartTime = '' | 
|---|
|  |  |  | this.tableData.forEach(item => { | 
|---|
|  |  |  | item.fee = '' | 
|---|
|  |  |  | item.duName = '' | 
|---|
|  |  |  | item.duId = '' | 
|---|
|  |  |  | item.workTypeName = '' | 
|---|
|  |  |  | item.workTypeId = '' | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | } | 
|---|
|  |  |  | this.company.forEach(item => { | 
|---|
|  |  |  | if (item.id === e) { | 
|---|
|  |  |  | // this.price = item.price | 
|---|
|  |  |  | this.item = item | 
|---|
|  |  |  | this.updatePickerOptions() | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | this.tableData.forEach(item => { | 
|---|
|  |  |  | item.fee = this.price | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | // 切换方案 | 
|---|
|  |  |  | changeSolution1(e) { | 
|---|
|  |  |  | getNewVersion(e) | 
|---|
|  |  |  | .then(res => { | 
|---|
|  |  |  | this.form.solutionId = res.id | 
|---|
|  |  |  | this.company.forEach(item => { | 
|---|
|  |  |  | if (item.id === res.id) { | 
|---|
|  |  |  | // this.price = item.price | 
|---|
|  |  |  | this.item = item | 
|---|
|  |  |  | this.updatePickerOptions() | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | this.tableData.forEach(item => { | 
|---|
|  |  |  | item.fee = this.price | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | dele(index) { | 
|---|
|  |  |  | this.tableData.splice(index, 1) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | getUser(obj) { | 
|---|
|  |  |  | this.seleData.forEach(id => { | 
|---|
|  |  |  | this.tableData.forEach(row => { | 
|---|
|  |  |  | if (id === 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.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.idCard) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | getValue(list) { | 
|---|
|  |  |  | this.tableData.push(...list) | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | </script> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <style> | 
|---|
|  |  |  | .el-picker-panel__footer .el-button--text.el-picker-panel__link-btn { | 
|---|
|  |  |  | display: none; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | </style> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <style lang="scss" scoped> | 
|---|
|  |  |  | .list { | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .info { | 
|---|
|  |  |  | width: 100%; | 
|---|
|  |  |  | font-size: 14px; | 
|---|
|  |  |  | color: black; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | </style> | 
|---|