company/src/components/business/ApplyChangeDetails1.vue
@@ -41,18 +41,20 @@ <div class="box_table_head" style="width: 50%;"> <div class="box_table_head_item">åºå·</div> <div class="box_table_head_item">åå·¥å§å</div> <div class="box_table_head_item">身份è¯å·</div> <div class="box_table_head_item">æ§å«</div> <div class="box_table_head_item">身份è¯å·</div><!-- <div class="box_table_head_item">æ§å«</div>--> <div class="box_table_head_item">æ´¾é£åä½</div> <div class="box_table_head_item">æå±å·¥ç§</div> <div class="box_table_head_item">夿³¨</div> </div> <div class="box_table_head" style="width: 50%;"> <div class="box_table_head_item">åºå·</div> <div class="box_table_head_item">åå·¥å§å</div> <div class="box_table_head_item">身份è¯å·</div> <div class="box_table_head_item">æ§å«</div> <div class="box_table_head_item">身份è¯å·</div><!-- <div class="box_table_head_item">æ§å«</div>--> <div class="box_table_head_item">æ´¾é£åä½</div> <div class="box_table_head_item">æå±å·¥ç§</div> <div class="box_table_head_item">夿³¨</div> </div> </div> <div style="width: 100%; display: flex;"> @@ -60,20 +62,22 @@ <div class="box_table_content" style="width: 100%;" v-for="(item, index) in arr1" :key="index"> <div class="box_table_content_item">{{index + 1}}</div> <div class="box_table_content_item">{{item.name}}</div> <div class="box_table_content_item">{{item.idCard}}</div> <div class="box_table_content_item">{{item.sex === 0 ? 'ç·' : '女'}}</div> <div class="box_table_content_item">{{item.idCard}}</div><!-- <div class="box_table_content_item">{{item.sex === 0 ? 'ç·' : '女'}}</div>--> <div class="box_table_content_item">{{item.duName}}</div> <div class="box_table_content_item">{{item.workTypeName}}</div> <div class="box_table_content_item">{{item.remark}}</div> </div> </div> <div style="width: 50%; border-bottom: 1px solid #b4bbc5;"> <div class="box_table_content" style="width: 100%;" v-for="(item, index) in arr2" :key="index"> <div class="box_table_content_item">{{index + 1}}</div> <div class="box_table_content_item">{{item.name}}</div> <div class="box_table_content_item">{{item.idCard}}</div> <div class="box_table_content_item">{{item.sex === 0 ? 'ç·' : '女'}}</div> <div class="box_table_content_item">{{item.idCard}}</div><!-- <div class="box_table_content_item">{{item.sex === 0 ? 'ç·' : '女'}}</div>--> <div class="box_table_content_item">{{item.duName}}</div> <div class="box_table_content_item">{{item.workTypeName}}</div> <div class="box_table_content_item">{{item.remark}}</div> </div> </div> </div> @@ -87,56 +91,56 @@ </template> <script> import BaseOpera from '@/components/base/BaseOpera' import GlobalWindow from '@/components/common/GlobalWindow' export default { name: 'ApplyChangeDetails', extends: BaseOpera, components: { GlobalWindow }, data () { return { form: { companyName: '', solutionsName: '', code: '', startTime: '', endTime: '', applyStartTime: '' }, arr1: [], arr2: [] } }, created () { this.config({ api: '/business/insuranceApply', 'field.id': 'id' }) }, methods: { submit() { this.$emit('success') this.visible = false }, go() { this.visible = false }, open(title, arr1, arr2, obj){ this.title = title this.arr1 = arr1 this.arr2 = arr2 this.visible = true this.$nextTick(() => { for (const key in this.form) { this.form[key] = obj[key] } }) }, confirm() { this.$emit('success') } } import BaseOpera from '@/components/base/BaseOpera' import GlobalWindow from '@/components/common/GlobalWindow' export default { name: 'ApplyChangeDetails', extends: BaseOpera, components: { GlobalWindow }, data () { return { form: { companyName: '', solutionsName: '', code: '', startTime: '', endTime: '', applyStartTime: '' }, arr1: [], arr2: [] } }, created () { this.config({ api: '/business/insuranceApply', 'field.id': 'id' }) }, methods: { submit () { this.$emit('success') this.visible = false }, go () { this.visible = false }, open (title, arr1, arr2, obj) { this.title = title this.arr1 = arr1 this.arr2 = arr2 this.visible = true this.$nextTick(() => { for (const key in this.form) { this.form[key] = obj[key] } }) }, confirm () { this.$emit('success') } } } </script> <style lang="scss" scoped> company/src/components/business/ApplyChangeUnitDetails1.vue
@@ -12,7 +12,7 @@ </div> <div class="box_table"> <div class="box_table_head"> <div class="box_table_head_item">æä¿ä¼ä¸</div> <div class="box_table_head_item" style="flex: 1.5">æä¿ä¼ä¸</div> <div class="box_table_head_item">ä¿é©æ¹æ¡</div> <div class="box_table_head_item">ä¿åå·</div> <div class="box_table_head_item">ä¿é©çæèµ·æ</div> @@ -21,7 +21,7 @@ <div class="box_table_head_item">æ¹åçææ</div> </div> <div class="box_table_content " > <div class="box_table_content_item box_table_content_header">{{ apply.companyName }}</div> <div class="box_table_content_item box_table_content_header" style="flex: 1.5">{{ apply.companyName }}</div> <div class="box_table_content_item box_table_content_header">{{ apply.solutionsName }}</div> <div class="box_table_content_item box_table_content_header">{{ apply.code }}</div> <div class="box_table_content_item box_table_content_header">{{ apply.startTime }}</div> @@ -32,24 +32,28 @@ </div> <div class="box_table"> <div class="box_table_head"> <div class="box_table_head_item">åºå·</div> <div class="box_table_head_item" style="flex: 0.5">åºå·</div> <div class="box_table_head_item">åå·¥å§å</div> <!-- <div class="box_table_head_item">æ§å«</div> --> <div class="box_table_head_item">身份è¯å·</div> <div class="box_table_head_item">åæ´¾é£åä½</div> <div class="box_table_head_item">åæå±å·¥ç§</div> <div class="box_table_head_item">æ´æ¢åæ´¾é£åä½</div> <div class="box_table_head_item">æ´æ¢åæå±å·¥ç§</div> <div class="box_table_head_item">夿³¨</div> </div> <div class="box_table_content" v-for="(item, index) in detailList" :key="index"> <div class="box_table_content_item">{{index + 1}}</div> <div class="box_table_content_item" >{{ item.memberName }}</div> <div class="box_table_content_item">{{ item.sex==0?"ç·":(item.sex==1?"女":"" )}}</div> <div class="box_table_content_item" style="flex: 0.5">{{index + 1}}</div> <div class="box_table_content_item" >{{ item.memberName }}</div><!-- <div class="box_table_content_item">{{ item.sex==0?"ç·":(item.sex==1?"女":"" )}}</div>--> <div class="box_table_content_item">{{ item.idCard }}</div> <div class="box_table_content_item">{{ item.oldDuName }}</div> <div class="box_table_content_item">{{item.oldWorkTypeName}}</div> <div class="box_table_content_item">{{ item.duName }}</div> <div class="box_table_content_item">{{item.workTypeName}}</div> <div class="box_table_content_item">{{item.remark}}</div> </div> </div> </div> @@ -181,13 +185,13 @@ border-bottom: 1px solid #b4bbc5; box-sizing: border-box; &:nth-child(4) { flex: 1.5;; //flex: 1.5;; } &:nth-child(6) { flex: 1.5;; //flex: 1.5;; } &:nth-child(8) { flex: 1.5;; //flex: 1.5;; } } .box_table_head_item5 { @@ -237,19 +241,21 @@ display: flex; align-items: center; justify-content: center; word-break: break-all; word-wrap: break-word; font-size: 14px; color: black; border-right: 1px solid #b4bbc5; border-bottom: 1px solid #b4bbc5; box-sizing: border-box; &:nth-child(4) { flex: 1.5; //flex: 1.5; } &:nth-child(6) { flex: 1.5; //flex: 1.5; } &:nth-child(8) { flex: 1.5; //flex: 1.5; } } } company/src/components/business/OperaApplyChangeDetailWindow.vue
@@ -10,7 +10,7 @@ <div class="desc_item"> <div class="desc_item_label"> <div class="desc_item_label_left"> <span>æä¿1ä¼ä¸ï¼{{ apply.companyName }}</span> <span>æä¿ä¼ä¸ï¼{{ apply.companyName }}</span> <span v-if="model.status === 0">ä¿åç¶æï¼<span :class="'change-status'+model.status" >å¾ ç¾ç½²</span></span> <span v-if="model.status === 1">ä¿åç¶æï¼<span :class="'change-status'+model.status" >å¾ å®¡æ ¸</span></span> <span v-if="model.status === 2">ä¿åç¶æï¼<span :class="'change-status'+model.status" >å·²çæ</span></span> @@ -19,7 +19,7 @@ <span v-if="model.status === 3 || model.status === 4">ä¿åç¶æï¼<span :class="'change-status'+model.status" >éåç³è¯·</span></span> <span v-if="model.status === 5 || model.status === 8">ä¿åç¶æï¼<span :class="'change-status'+model.status" >å·²éå</span></span> <span v-if=" model.status === 6">ä¿åç¶æï¼<span :class="'change-status'+model.status" >å·²å ³é</span></span> <span>æäº¤æ¶é´ï¼{{ model.createDate }}</span> <span>ç³è¯·æ¥æï¼{{ model.validTime }}</span> </div> <div class="desc_item_label_right"> <template v-if="userInfo.type === 1"> @@ -265,7 +265,7 @@ getChangeMemberListOnlineSignLink} from '@/api/business/applyChange' import {sendSms} from "@/api/business/smsEmail"; import OperaInsuranceApply from '@/components/enterprise/OperaInsuranceApplyWindow' import OperaInsuranceApply from '@/components/enterprise/OperaInsuranceApplyAddWindow' import { mapState } from 'vuex' export default { company/src/components/business/OperaApplyChangeUnitDetailWindow.vue
@@ -249,7 +249,7 @@ getChangeUnitSignLink } from '@/api/business/insuranceApply' import { applyChangeOpt, getChangeMemberListOnlineSignLink } from '@/api/business/applyChange' import OperaInsuranceApply from '@/components/enterprise/OperaInsuranceApplyWindow' import OperaInsuranceApply from '@/components/enterprise/OperaInsuranceApplyAddWindow' import { mapState } from 'vuex' import { sendSms } from '@/api/business/smsEmail' company/src/components/business/OperaInsuranceApplyShopWindow.vue
@@ -445,7 +445,7 @@ import { findListByDTO } from "@/api/business/dispatchUnit"; import { fetchList } from "@/api/business/applyChange"; import { findListByDTO as worktypeFindListByDTO } from "@/api/business/worktype"; import OperaInsuranceApply from '@/components/enterprise/OperaInsuranceApplyWindow' import OperaInsuranceApply from '@/components/enterprise/OperaInsuranceApplyAddWindow' import { mapState } from 'vuex' export default { company/src/components/business/OperaInsuranceApplyWindow.vue
@@ -11,7 +11,7 @@ <div class="desc_item_label" v-if="userInfo.type === 1 &&(model.statusCollect === 2 || model.statusCollect === 3)"> <div class="desc_item_label_left"> <span>ä¿é©å°æè¿æ <b style="color: #F95601;">{{model.loseEfficacyDays ? model.loseEfficacyDays : '-'}}</b> 天</span> <el-button type="primary" v-if="model.statusCollect === 2 || model.statusCollect === 3" @click="$refs.OperaInsuranceApply.open('ç»ä¿', { id: dataId, type: 1 })">ä¸é®ç»ä¿</el-button> <el-button type="primary" v-if="model.statusCollect === 2 || model.statusCollect === 3" @click="$refs.OperaInsuranceApplyAddWindow.open('ç»ä¿', {id: dataId,type: 1 })">ä¸é®ç»ä¿</el-button> <el-button type="primary" v-if="model.statusCollect === 2" @click="$refs.additionSubtractionApplication.open('å åä¿ç³è¯·', { id: dataId })">å åä¿ç³è¯·</el-button> <el-button type="primary" v-if="model.statusCollect === 2" @click="$refs.factoryChange.open('æ´æ¢æ´¾é£åä½ç³è¯·', { id: dataId })">æ´æ¢æ´¾é£åä½ç³è¯·</el-button> </div> @@ -449,7 +449,7 @@ <!-- ä¼ä¸ç³è¯·éå --> <applyReturn ref="applyReturn" @success="successEvent" /> <!-- æ°å¢æä¿ --> <OperaInsuranceApply ref="OperaInsuranceApply" @success="successEvent" /> <OperaInsuranceApplyAddWindow ref="OperaInsuranceApplyAddWindow" @success="successEvent" /> <!-- å åä¿ç³è¯· --> <additionSubtractionApplication ref="additionSubtractionApplication" @success="successEvent" /> <!-- æ´æ¢æ´¾é£åä½ç³è¯· --> @@ -482,7 +482,7 @@ import { findListByDTO } from "@/api/business/dispatchUnit"; import { fetchList } from "@/api/business/applyChange"; import { findListByDTO as worktypeFindListByDTO } from "@/api/business/worktype"; import OperaInsuranceApply from '@/components/enterprise/OperaInsuranceApplyWindow' import OperaInsuranceApplyAddWindow from '@/components/enterprise/OperaInsuranceApplyAddWindow' import { mapState } from 'vuex' export default { @@ -493,7 +493,7 @@ InsuranceDetails, OperaInsuranceApplyCheckWindow, applyReturn, OperaInsuranceApply, OperaInsuranceApplyAddWindow, additionSubtractionApplication, factoryChange, OperaApplyChangeDetailWindow, company/src/components/business/OperaUnionChangeDetailWindow.vue
@@ -264,7 +264,7 @@ import detailsEntrustedInsurance from '@/components/business/detailsEntrustedInsurance' import {sendSms} from "@/api/business/smsEmail"; import OperaInsuranceApply from '@/components/enterprise/OperaInsuranceApplyWindow' import OperaInsuranceApply from '@/components/enterprise/OperaInsuranceApplyAddWindow' import { mapState } from 'vuex' export default { company/src/components/business/OperaUnionChangeUnitDetailWindow.vue
@@ -240,7 +240,7 @@ import {applyChangeOpt, listAll as applyList} from '@/api/business/applyChange' import {sendSms} from "@/api/business/smsEmail"; import OperaInsuranceApply from '@/components/enterprise/OperaInsuranceApplyWindow' import OperaInsuranceApply from '@/components/enterprise/OperaInsuranceApplyAddWindow' import { mapState } from 'vuex' export default { company/src/components/business/OperaWtbApplyShopWindow.vue
@@ -11,7 +11,7 @@ <div class="desc_item_label" v-if="userInfo.type === 1 && model.status ===27 "> <div class="desc_item_label_left"> <span>ä¿é©å°æè¿æ <b style="color: #F95601;">{{model.loseEfficacyDays ? model.loseEfficacyDays : '-'}}</b> 天</span> <el-button type="primary" v-if="model.status === 27" @click="$refs.OperaInsuranceApply.open('ç»ä¿', { id: dataId, type: 1 })">ä¸é®ç»ä¿</el-button> <el-button type="primary" v-if="model.status === 27" @click="$refs.OperaInsuranceApplyAddWindow.open('ç»ä¿', {id: dataId,type: 1 })">ä¸é®ç»ä¿</el-button> <el-button type="primary" v-if="model.status === 27 && model.loseEfficacyDays" @click="$refs.additionSubtractionApplication.open('å åä¿ç³è¯·', { id: dataId })">å åä¿ç³è¯·</el-button> <el-button type="primary" v-if="model.status === 27 && model.loseEfficacyDays" @click="$refs.factoryChange.open('æ´æ¢æ´¾é£åä½ç³è¯·', { id: dataId })">æ´æ¢æ´¾é£åä½ç³è¯·</el-button> </div> @@ -454,7 +454,7 @@ <!-- ä¼ä¸ç³è¯·éå --> <applyReturn ref="applyReturn" @success="successEvent" /> <!-- æ°å¢æä¿ --> <OperaInsuranceApplyWindow ref="OperaInsuranceApply" @success="successEvent" /> <OperaInsuranceApplyAddWindow ref="OperaInsuranceApplyAddWindow" @success="successEvent" /> <!-- å åä¿ç³è¯· --> <additionSubtractionApplication ref="additionSubtractionApplication" @success="successEvent" /> <!-- æ´æ¢æ´¾é£åä½ç³è¯· --> @@ -500,6 +500,7 @@ <script> import BaseOpera from '@/components/base/BaseOpera' import OperaInsuranceApplyAddWindow from '@/components/enterprise/OperaInsuranceApplyAddWindow' import GlobalWindow from '@/components/common/GlobalWindow' import InsuranceDetails from '@/components/business/InsuranceDetails' import OperaWtbApplyCheckWindow from '@/components/business/OperaWtbApplyCheckWindow' @@ -507,9 +508,7 @@ import factoryChange from '@/components/enterprise/factoryChange' import operaverifyPhoneNumberWindew from '@/components/business/operaverifyPhoneNumberWindew' import OperaApplyChangeDetailWindow from '@/components/business/OperaApplyChangeDetailWindow' import OperaInsuranceApplyWindow from '@/components/enterprise/OperaInsuranceApplyWindow' import OperaApplyChangeUnitDetailWindow from '@/components/business/OperaApplyChangeUnitDetailWindow' import applyReturn from '@/components/enterprise/applyReturn' import { getDetail, @@ -534,7 +533,7 @@ InsuranceDetails, OperaWtbApplyCheckWindow, applyReturn, OperaInsuranceApplyWindow, OperaInsuranceApplyAddWindow, additionSubtractionApplication, factoryChange, OperaApplyChangeDetailWindow, @@ -606,11 +605,10 @@ }, methods: { open (title, target) { this.visible = true this.title = title this.model = {} this.num=0 this.timer=null this.num= 0 this.timer= null this.dataId = null this.dataId = target.id this.form.businessId = target.id @@ -626,6 +624,8 @@ this.formInline.startTimeS = '' this.formInline.type = '' this.activeName = '0' this.visible = true this.getDetail() this.getList() this.getDW() company/src/components/business/detailsPolicyholder.vue
@@ -12,16 +12,16 @@ </div> <div class="box_table"> <div class="box_table_head"> <div class="box_table_head_item">æä¿ä¼ä¸</div> <div class="box_table_head_item">ä¿é©æ¹æ¡</div> <div class="box_table_head_item" style="flex: 1.5">æä¿ä¼ä¸</div> <div class="box_table_head_item" >ä¿é©æ¹æ¡</div> <div class="box_table_head_item">ä¿é©çæèµ·æ</div> <div class="box_table_head_item">ä¿é©çææ¢æ</div> <div class="box_table_head_item">æä¿äººæ°</div> <div class="box_table_head_item">æ»è´¹ç¨(å )</div> </div> <div class="box_table_content " > <div class="box_table_content_item box_table_content_header">{{ model.companyName }}</div> <div class="box_table_content_item box_table_content_header">{{ model.solutionName }}</div> <div class="box_table_content_item box_table_content_header" style="flex:1.5">{{ model.companyName }}</div> <div class="box_table_content_item box_table_content_header" >{{ model.solutionName }}</div> <div class="box_table_content_item box_table_content_header">{{ model.applyStartTime }}</div> <div class="box_table_content_item box_table_content_header">{{ model.applyEndTime }}</div> <div class="box_table_content_item box_table_content_header">{{ model.insureNum }}</div> @@ -30,20 +30,22 @@ </div> <div class="box_table" v-if="model"> <div class="box_table_head"> <div class="box_table_head_item">åºå·</div> <div class="box_table_head_item" style="flex: 0.5">åºå·</div> <div class="box_table_head_item">åå·¥å§å</div> <div class="box_table_head_item">身份è¯å·</div> <div class="box_table_head_item">æ§å«</div> <div class="box_table_head_item">æ´¾é£åä½</div> <div class="box_table_head_item">æå±å·¥ç§</div> <div class="box_table_head_item">夿³¨</div> </div> <div class="box_table_content" v-for="(item, index) in model.detailList" :key="index"> <div class="box_table_content_item">{{index + 1}}</div> <div class="box_table_content_item" style="flex: 0.5">{{index + 1}}</div> <div class="box_table_content_item">{{ item.memberName }}</div> <div class="box_table_content_item">{{ item.idCard }}</div> <div class="box_table_content_item">{{ getGender(item.idCard) }}</div> <div class="box_table_content_item">{{ item.duName }}</div> <div class="box_table_content_item">{{ item.workTypeName}}</div> <div class="box_table_content_item">{{ item.remark}}</div> </div> </div> </div> @@ -55,39 +57,39 @@ </template> <script> import BaseOpera from '@/components/base/BaseOpera' import GlobalWindow from '@/components/common/GlobalWindow' export default { name: 'InsuranceDetails', extends: BaseOpera, components: { GlobalWindow }, data () { return { model:{} } }, methods: { open(title, target){ this.title = title this.visible = true this.model = target }, submit() { this.$emit('success') this.visible = false }, getGender(idCardNumber) { // ä½¿ç¨æ£åè¡¨è¾¾å¼æå身份è¯å·ç ç第17使°å const genderCode = idCardNumber.substr(-2); if (genderCode % 2 === 0) { return '女'; } else { return 'ç·'; } }, } import BaseOpera from '@/components/base/BaseOpera' import GlobalWindow from '@/components/common/GlobalWindow' export default { name: 'InsuranceDetails', extends: BaseOpera, components: { GlobalWindow }, data () { return { model: {} } }, methods: { open (title, target) { this.title = title this.visible = true this.model = target }, submit () { this.$emit('success') this.visible = false }, getGender (idCardNumber) { // ä½¿ç¨æ£åè¡¨è¾¾å¼æå身份è¯å·ç ç第17使°å const genderCode = idCardNumber.substr(-2) if (genderCode % 2 === 0) { return '女' } else { return 'ç·' } } } } </script> <style lang="scss" scoped> @@ -164,7 +166,7 @@ border-bottom: 1px solid #b4bbc5; box-sizing: border-box; &:nth-child(1) { //flex: 0.5; //flex: 2; } } .box_table_head_item5 { company/src/components/enterprise/OperaInsuranceApplyAddWindow.vue
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,603 @@ <template> <GlobalWindow :title="title" width="100%" text="æä¿ç³è¯·" :visible.sync="visible" :confirm-working="isWorking" @confirm="confirm" > <div class="list"> <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" @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 @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="æä¿å¹´é¾" v-if="item"> <span>{{item.minAge}} è³ {{item.maxAge}}</span> </el-form-item> <el-form-item label="è´¹ç¨" v-if="item && item.type ==0"> <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="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" @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="memberName" label="å§å"> </el-table-column> <el-table-column prop="idCard" label="身份è¯å·"> </el-table-column> <el-table-column 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="duName" label="æ´¾é£åä½"> </el-table-column> <el-table-column prop="workTypeName" label="æå±å·¥ç§"> </el-table-column> <el-table-column prop="fee" label="è´¹ç¨"> <template slot-scope="{row}"> {{item.type==1?'-':row.fee}} </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-button type="text" style="color: red;" @click="dele(scope.$index)">å é¤</el-button> </template> </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> </div> <!-- éæ©åå·¥ --> <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" /> <!-- <!– ç´ä¿æä¿è¯¦æ –> <OperaInsuranceApplyDetails ref="OperaInsuranceApplyDetails" /> <!– å§ææä¿è¯¦æ –> <OperaWtbApplyShopWindow ref="OperaWtbApplyShopWindow" />--> </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 detailsPolicyholder from '@/components/business/detailsPolicyholder' // import OperaInsuranceApplyDetails from '@/components/business/OperaInsuranceApplyWindow' // import OperaWtbApplyShopWindow from '@/components/business/OperaWtbApplyShopWindow' import { all, getNewVersion } from '@/api/business/solutions' import { mapState } from 'vuex' import { create, getCountCyclePriceVO, getDetail, findList, updateData } from '@/api/business/insuranceApply' export default { name: 'OperaInsuranceApplyAddWindow', extends: BaseOpera, components: { GlobalWindow, selectEmployees, addEmployee,importEmployees, confirmJobType, detailsPolicyholder // , OperaWtbApplyShopWindow, OperaInsuranceApplyDetails }, data () { return { form: { id: null, ID: null, solutionId: '', applyStartTime: '', applyEndTime: '' }, solutionName: '', type: '', pickerOptions: {}, // åæ¾picker optionsçåé price: '', company: [], seleData: [], item: null, // éªè¯è§å rules: { solutionId: [ { required: true, message: 'è¯·éæ©ä¿é©æ¹æ¡' } ], applyStartTime: [ { required: true, message: 'è¯·éæ©ææä¿é©çæèµ·æ' } ] }, tableData: [] } }, created () { this.config({ api: '/business/insuranceApply', 'field.id': 'id' }) }, computed: { ...mapState(['userInfo']) }, methods: { successEvent () { const 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(res=> { console.log(res) this.visible = false if (this.item.type == 1) { // this.$refs.OperaWtbApplyShopWindow.open('å§ææä¿è¯¦æ ', { id: res }) this.$emit('success','å§ææä¿è¯¦æ ', { id: res }) } else { // this.$refs.OperaInsuranceApplyDetails.open('æä¿è¯¦æ ', { id: res }) this.$emit('success','æä¿è¯¦æ ', { id: res }) } this.$tip.apiSuccess('æä½æå') // this.$emit('success','å§ææä¿è¯¦æ ', { id: res }) }) .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 = {} 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] = 'æ»ä»·' } else if (index === 7) { if(this.item || this.item.type == 1){ sums[index] = "-" }else{ let total = 0 this.tableData.forEach(item => { total += item.fee }) sums[index] = total.toFixed(2) } } }) 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 if (this.item && this.item.type != 1) { this.tableData.forEach(item => { price = price + item.fee }) } this.$refs.detailsPolicyholder.open('æä¿è¯¦æ å', { companyName: this.userInfo.company.name, solutionName: this.item.name, solutionType: this.item.type, applyStartTime: this.form.applyStartTime, applyEndTime: this.form.applyEndTime, insureNum: this.tableData.length, totalPrice: price, detailList: this.tableData }) } }) }, // è·åç»ææ¶é´åä»·æ ¼ 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为å¤å°å¤©ï¼-代表å¾åï¼+代表å¾å const date1 = new Date() const time1 = date1.getFullYear() + '-' + (date1.getMonth() + 1) + '-' + date1.getDate()// time1表示å½åæ¶é´ const date2 = new Date(date1) date2.setDate(date1.getDate() + n) const 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) { this.form.applyEndTime = '' this.form.applyStartTime = '' if (!this.form.id) { this.tableData = [] } else { this.price = '' 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 if(this.item && this.item.type==1){ this.item.fee=0 } 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 if(this.item && this.item.type==1){ this.item.fee=0 } 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 { width: 100%; } .btns { width: 100%; margin-bottom: 15px; display: flex; align-items: center; justify-content: space-between; .btns_item { display: flex; align-items: center; } } .submit { width: 100%; display: flex; align-items: center; justify-content: center; margin-bottom: 15px; } .info { width: 100%; font-size: 14px; color: black; span{ display: block; } } </style> company/src/components/enterprise/OperaInsuranceApplyWindow.vue
ÎļþÒÑɾ³ý company/src/components/enterprise/add_subtract_return.vue
@@ -15,58 +15,58 @@ </template> <script> import BaseOpera from '@/components/base/BaseOpera' import GlobalWindow from '@/components/common/GlobalWindow' import { applyChangeOpt } from '@/api/business/applyChange' import BaseOpera from '@/components/base/BaseOpera' import GlobalWindow from '@/components/common/GlobalWindow' import { applyChangeOpt } from '@/api/business/applyChange' export default { name: 'add_subtract_return', extends: BaseOpera, components: { GlobalWindow }, data () { return { // è¡¨åæ°æ® form: { id: null, remark: '' } } }, created () { this.config({ api: '/business/insurance', 'field.id': 'id' }) }, methods: { open (title, target) { this.title = title this.visible = true this.$nextTick(() => { this.$refs.form.resetFields() this.form[this.configData['field.id']] = null }) this.$nextTick(() => { for (const key in this.form) { this.form[key] = target[key] } }) }, confirm() { this.isWorking = true applyChangeOpt({ applyId: this.form.id, optIllustration: this.form.remark, optType: 3 }) .then(res => { this.visible = false this.$tip.apiSuccess('æä½æå') this.$emit('success') }) .catch(e => { this.$tip.apiFailed(e) }) .finally(() => { this.isWorking = false }) } } export default { name: 'add_subtract_return', extends: BaseOpera, components: { GlobalWindow }, data () { return { // è¡¨åæ°æ® form: { id: null, remark: '' } } }, created () { this.config({ api: '/business/insurance', 'field.id': 'id' }) }, methods: { open (title, target) { this.title = title this.visible = true this.$nextTick(() => { this.$refs.form.resetFields() this.form[this.configData['field.id']] = null }) this.$nextTick(() => { for (const key in this.form) { this.form[key] = target[key] } }) }, confirm () { this.isWorking = true applyChangeOpt({ applyId: this.form.id, optIllustration: this.form.remark, optType: 3 }) .then(res => { this.visible = false this.$tip.apiSuccess('æä½æå') this.$emit('success') }) .catch(e => { this.$tip.apiFailed(e) }) .finally(() => { this.isWorking = false }) } } } </script> company/src/components/enterprise/additionSubtractionApplication.vue
@@ -12,7 +12,7 @@ <el-form-item label="ä¿é©æ¹æ¡"> <span>{{form.solutionsName}}</span> </el-form-item> <el-form-item label="æ¹åçæèµ·æ" prop="applyStartTime"> <el-form-item label="ç³è¯·æ¥æ" prop="applyStartTime"> <div style="display: flex; flex-direction: column;"> <el-date-picker @change="changeApplyStartTime" @@ -151,6 +151,14 @@ <span v-else>{{row.fee ? '-' + row.fee : ''}}</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"> company/src/components/enterprise/factoryChange.vue
@@ -134,6 +134,14 @@ prop="workTypeName" label="åæ´åæå±å·¥ç§"> </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"> company/src/components/enterprise/renewalInsurance.vue
@@ -64,7 +64,7 @@ <script> import BaseOpera from '@/components/base/BaseOpera' import GlobalWindow from '@/components/common/GlobalWindow' import OperaInsuranceApply from '@/components/enterprise/OperaInsuranceApplyWindow' import OperaInsuranceApply from '@/components/enterprise/OperaInsuranceApplyAddWindow' import { fetchList } from '@/api/business/insuranceApply' export default { name: 'renewalInsurance', company/src/views/enterprise/add_subtract.vue
@@ -74,9 +74,10 @@ <span style="color: #F95601;" v-else>ç´æ¥æä¿</span> </template> </el-table-column> <el-table-column prop="addNum" label="å ä¿äººæ°ï¼äººï¼" min-width="100px"></el-table-column> <el-table-column prop="delNum" label="åä¿äººæ°ï¼äººï¼" min-width="100px"></el-table-column> <el-table-column prop="addNum" label="å ä¿äººæ°(人)" min-width="100px"></el-table-column> <el-table-column prop="delNum" label="åä¿äººæ°(人)" min-width="100px"></el-table-column> <el-table-column prop="fee" label="è´¹ç¨åæ´" min-width="100px"></el-table-column> <el-table-column prop="validTime" label="ç³è¯·æ¥æ" min-width="100px"></el-table-column> <el-table-column prop="createDate" label="æäº¤æ¶é´" min-width="100px"></el-table-column> <el-table-column label="æä½" company/src/views/enterprise/insuranceApply.vue
@@ -44,7 +44,7 @@ <!-- è¡¨æ ¼åå页 --> <template v-slot:table-wrap> <ul class="toolbar" v-permissions="['business:dispatchunit:create']"> <li><el-button type="primary" @click="$refs.OperaInsuranceApplyWindow.open('æä¿ç³è¯·', {type: ''})">æä¿ç³è¯·</el-button></li> <li><el-button type="primary" @click="$refs.OperaInsuranceApplyAddWindow.open('æä¿ç³è¯·', {type: ''})">æä¿ç³è¯·</el-button></li> </ul> <el-table v-loading="isWorking.search" @@ -106,7 +106,7 @@ </pagination> </template> <!-- æ°å¢æä¿ --> <OperaInsuranceApplyWindow ref="OperaInsuranceApplyWindow" @success="handlePageChange" /> <OperaInsuranceApplyAddWindow ref="OperaInsuranceApplyAddWindow" @success="handlePageChange" /> <OperaWtbApplyShopWindow ref="OperaWtbApplyShopWindow" @success="handlePageChange" /> <!-- æä¿è¯¦æ --> <OperaInsuranceApplyDetails ref="OperaInsuranceApplyDetails" @success="handlePageChange" /> @@ -117,7 +117,7 @@ import BaseTable from '@/components/base/BaseTable' import TableLayout from '@/layouts/TableLayout' import Pagination from '@/components/common/Pagination' import OperaInsuranceApplyWindow from '@/components/enterprise/OperaInsuranceApplyWindow' import OperaInsuranceApplyAddWindow from '@/components/enterprise/OperaInsuranceApplyAddWindow' import OperaInsuranceApplyDetails from '@/components/business/OperaInsuranceApplyWindow' import OperaWtbApplyShopWindow from '@/components/business/OperaWtbApplyShopWindow' @@ -125,7 +125,7 @@ export default { name: 'InsuranceApply', extends: BaseTable, components: { TableLayout, Pagination, OperaInsuranceApplyWindow, OperaInsuranceApplyDetails,OperaWtbApplyShopWindow }, components: { TableLayout, Pagination, OperaInsuranceApplyAddWindow, OperaInsuranceApplyDetails,OperaWtbApplyShopWindow }, data () { return { // æç´¢ company/src/views/enterprise/myPolicy.vue
@@ -150,12 +150,11 @@ <renewalInsurance ref="renewalInsurance" @success="handlePageChange" /> </TableLayout> </template> <script> import BaseTable from '@/components/base/BaseTable' import TableLayout from '@/layouts/TableLayout' import Pagination from '@/components/common/Pagination' import OperaInsuranceApplyWindow from '@/components/enterprise/OperaInsuranceApplyWindow' import OperaInsuranceApplyWindow from '@/components/enterprise/OperaInsuranceApplyAddWindow' import OperaInsuranceApplyDetails from '@/components/business/OperaInsuranceApplyWindow' import additionSubtractionApplication from '@/components/enterprise/additionSubtractionApplication' import renewalInsurance from '@/components/enterprise/renewalInsurance'