From 7b336b5d570dece2d283d33221874e8dae1a2118 Mon Sep 17 00:00:00 2001 From: jiangping <jp@doumee.com> Date: 星期二, 05 三月 2024 14:02:44 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- company/src/components/business/OperaSolutionsDescWindow.vue | 2 company/src/components/enterprise/importEmployees.vue | 12 + company/src/views/business/solutions.vue | 1 company/src/components/business/detailsPolicyholder.vue | 229 ++++++++++++++++++++ company/src/components/enterprise/OperaDispatchUnitWindow.vue | 18 company/src/components/enterprise/OperaInsuranceApplyWindow.vue | 150 +++++++++--- company/src/components/business/OperaInsuranceApplyWindow.vue | 22 + company/src/views/enterprise/myPolicy.vue | 12 company/.env | 7 company/src/components/enterprise/renewalInsurance.vue | 34 +- company/.env.production | 6 company/vue.config.js | 2 company/src/utils/waterMark.js | 56 +++++ company/src/views/business/insuranceApply.vue | 4 company/src/assets/style/style.scss | 2 company/src/components/enterprise/confirmJobType.vue | 2 company/src/components/enterprise/dispatchUnitDetails.vue | 10 company/src/views/enterprise/insuranceApply.vue | 6 platform/src/layouts/AppLayout.vue | 16 + company/.env.development | 4 company/src/layouts/AppLayout.vue | 16 + 21 files changed, 502 insertions(+), 109 deletions(-) diff --git a/company/.env b/company/.env index 4f8ad0a..b8c4aaa 100644 --- a/company/.env +++ b/company/.env @@ -4,7 +4,7 @@ VUE_APP_ROUTER_MODE = 'hash' # 椤圭洰涓婁笅鏂囪矾寰� -VUE_APP_CONTEXT_PATH = '/yyb_admin' +VUE_APP_CONTEXT_PATH = '/yyb_web' # 鎺ュ彛鍓嶇紑 VUE_APP_API_PREFIX = '/api' @@ -12,5 +12,8 @@ # 宸ョ瀵煎叆妯℃澘 VUE_APP_TYPEWORK_URL = 'https://doumeetest.oss-cn-beijing.aliyuncs.com/yunyibao_file/typeWork.xlsx' -# 浜哄憳瀵煎叆妯℃澘 +# 浜哄憳瀵煎叆妯℃澘(鍔犲噺淇濇崲鍦�) VUE_APP_MEMBER_URL = 'https://doumeetest.oss-cn-beijing.aliyuncs.com/yunyibao_file/member.xlsx' + +# 浜哄憳瀵煎叆妯℃澘(鎶曚繚鐢宠) +VUE_APP_MEMBER1_URL = 'https://doumeetest.oss-cn-beijing.aliyuncs.com/yunyibao_file/personnel.xlsx' diff --git a/company/.env.development b/company/.env.development index ddbde5e..49771e1 100644 --- a/company/.env.development +++ b/company/.env.development @@ -5,10 +5,10 @@ # VUE_APP_API_PREFIX = '/yyb_web_api' # 浼佷笟绔�-浠佸悍 -VUE_APP_API = 'http://192.168.0.129:10031/' +VUE_APP_API = 'http://192.168.0.186:10031/' # 骞冲彴绔�-浠佸悍 -# VUE_APP_API = 'http://192.168.0.129:10030/' +# VUE_APP_API = 'http://192.168.0.186:10030/' # 骞冲彴绔�-钀嶅 # VUE_APP_API = 'http://192.168.0.105:10023/' diff --git a/company/.env.production b/company/.env.production index 9cf23b3..4ad77c8 100644 --- a/company/.env.production +++ b/company/.env.production @@ -1,10 +1,10 @@ # 鐢熶骇鐜閰嶇疆 NODE_ENV = 'production' -VUE_APP_API_PREFIX = '/yyb_admin_api' +VUE_APP_API_PREFIX = '/yyb_web_api' # 骞冲彴绔� -VUE_APP_API = 'https://dmtest.ahapp.net/yyb_admin_api/' +# VUE_APP_API = 'https://dmtest.ahapp.net/yyb_admin_api/' # 浼佷笟绔� -# VUE_APP_API = 'https://dmtest.ahapp.net/yyb_web_api/' +VUE_APP_API = 'https://dmtest.ahapp.net/yyb_web_api/' diff --git a/company/src/assets/style/style.scss b/company/src/assets/style/style.scss index 5a90314..44a053b 100644 --- a/company/src/assets/style/style.scss +++ b/company/src/assets/style/style.scss @@ -84,7 +84,7 @@ .du-status0 { color: #216EEE !important; } - .apply-status1 , .apply-status4, .apply-status6, .apply-status7, .apply-status8, + .apply-status1 , .apply-status4, .apply-status6, .apply-status7, .apply-status8, .apply-status11, .change-status3,.change-status4,.change-status5,.change-status8, .settle-status1, .tax-status2, diff --git a/company/src/components/business/OperaInsuranceApplyWindow.vue b/company/src/components/business/OperaInsuranceApplyWindow.vue index e1ac5c8..f64ff23 100644 --- a/company/src/components/business/OperaInsuranceApplyWindow.vue +++ b/company/src/components/business/OperaInsuranceApplyWindow.vue @@ -39,7 +39,7 @@ <el-button v-if="model.status == 5" type="primary" @click="viewBaoxiandan">鏌ョ湅淇濋櫓鍗�</el-button> <el-button v-if="model.status == 10 ||model.status == 2" type="primary" @click="$refs.OperaInsuranceApplyCheckWindow.open('涓婁紶鎶曚繚鍗�',model,2)">涓婁紶鎶曚繚鍗�</el-button> <el-button v-if="model.status == 3" type="primary" @click="$refs.OperaInsuranceApplyCheckWindow.open('涓婁紶淇濋櫓鍗�',model,3)">涓婁紶淇濋櫓鍗�</el-button> - <el-button v-if="model.status == 6 || model.status == 7|| model.status == 8" type="primary" @click="$refs.OperaInsuranceApplyCheckWindow.open('椹冲洖閫�鍥炵敵璇�',model,5)">椹冲洖閫�鍥炵敵璇�</el-button> + <el-button v-if="model.status == 6 || model.status == 7|| model.status == 8 || model.status == 11" type="primary" @click="$refs.OperaInsuranceApplyCheckWindow.open('椹冲洖閫�鍥炵敵璇�',model,5)">椹冲洖閫�鍥炵敵璇�</el-button> <el-button v-if="model.status == 0" type="primary" @click="$refs.InsuranceDetails.open('鎶曚繚瀹℃牳',model,1)">鎶曚繚瀹℃牳</el-button> <el-button v-if="model.status != 5 && model.status != 4 && model.status != 1" type="danger" @click="$refs.OperaInsuranceApplyCheckWindow.open('閫�鍥炴姇淇�',model,1)">閫�鍥炴姇淇�</el-button> <el-button v-if="model.status == 5" type="danger" @click="$refs.OperaInsuranceApplyCheckWindow.open('淇敼淇濋櫓鍗�',model,4)">淇敼淇濋櫓鍗�</el-button> @@ -253,7 +253,7 @@ :key="Math.random()" align="center" prop="fee" - label="宸蹭骇鐢熻垂鐢紙鍏冿級"> + label="浜х敓璐圭敤"> </el-table-column> </el-table> <el-table @@ -262,14 +262,15 @@ ref="table" v-if="activeName === '1'" style="width: 100%"> - <el-table-column label="搴忓彿" - align="center"> + <el-table-column + label="搴忓彿" + align="center"> <template slot-scope="scope"> <span>{{scope.$index + 1}}</span> </template> </el-table-column> <el-table-column label="淇濆崟鐘舵��" :key="Math.random()" - align="center"> + align="center"> <template slot-scope="{row}"> <span :class="'change-status'+row.status" v-if="row.status === 0">寰呯缃�</span> <span :class="'change-status'+row.status" v-if="row.status === 1">寰呭鏍�</span> @@ -574,6 +575,9 @@ } else { this.formInline.applyStatus = '' } + this.formInline.start = '' + this.formInline.startTimeE = '' + this.formInline.endTimeE = '' this.list = [] this.list1 = [] this.list2 = [] @@ -595,19 +599,19 @@ changeStart(e) { if (e.length > 0) { this.formInline.startTimeS = e[0] - this.formInline.endTimeS = e[1] + this.formInline.startTimeE = e[1] } else { this.formInline.startTimeS = '' - this.formInline.endTimeS = '' + this.formInline.startTimeE = '' } this.search() }, changeEnd(e) { if (e.length > 0) { - this.formInline.startTimeE = e[0] + this.formInline.endTimeS = e[0] this.formInline.endTimeE = e[1] } else { - this.formInline.startTimeE = '' + this.formInline.endTimeS = '' this.formInline.endTimeE = '' } this.search() diff --git a/company/src/components/business/OperaSolutionsDescWindow.vue b/company/src/components/business/OperaSolutionsDescWindow.vue index 1cefecd..c0d9bc0 100644 --- a/company/src/components/business/OperaSolutionsDescWindow.vue +++ b/company/src/components/business/OperaSolutionsDescWindow.vue @@ -3,7 +3,7 @@ :title="title" width="50%" text="淇敼" - :visible="userInfo.type !== 1" + :withFooter="userInfo.type !== 1" :visible.sync="visible" :confirm-working="isWorking" @confirm="$refs.operaSolutionsWindow.open('缂栬緫鏂规', form)" diff --git a/company/src/components/business/detailsPolicyholder.vue b/company/src/components/business/detailsPolicyholder.vue new file mode 100644 index 0000000..3fe84cd --- /dev/null +++ b/company/src/components/business/detailsPolicyholder.vue @@ -0,0 +1,229 @@ +<template> + <GlobalWindow + :title="title" + width="100%" + :visible.sync="visible" + :confirm-working="isWorking" + @confirm="confirm" + > + <div class="box"> + <div class="top"> + {{title}} + </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">淇濋櫓鐢熸晥璧锋湡</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">{{ 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> + <div class="box_table_content_item box_table_content_header">{{model.totalPrice}}</div> + </div> + </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">鍛樺伐濮撳悕</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">{{ 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> + </div> + </div> + <template v-slot:footer> + <el-button type="primary" @click="submit">纭畾</el-button> + <el-button @click="visible=false">鍙栨秷</el-button> + </template> + </GlobalWindow> +</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) { + // 浣跨敤姝e垯琛ㄨ揪寮忔彁鍙栬韩浠借瘉鍙风爜鐨勭17浣嶆暟瀛� + const genderCode = idCardNumber.substr(-2); + + if (genderCode % 2 === 0) { + return '濂�'; + } else { + return '鐢�'; + } + }, + } + } +</script> + +<style lang="scss" scoped> + .box { + width: 100%; + .top{ + width: 100%; + align-items: center; + flex-wrap: wrap; + border-top: 1px solid #b4bbc5; + border-left: 1px solid #b4bbc5; + font-size: 14px; + font-weight: bold; + text-align: center; + padding: 15px; + box-sizing: border-box; + } + .box_header { + width: 100%; + display: flex; + align-items: center; + flex-wrap: wrap; + border-top: 1px solid #b4bbc5; + border-left: 1px solid #b4bbc5; + .box_header_item { + width: 50%; + height: 50px; + display: flex; + align-items: center; + border-right: 1px solid #b4bbc5; + border-bottom: 1px solid #b4bbc5; + box-sizing: border-box; + .box_header_item_label { + flex: 1; + height: 100%; + display: flex; + align-items: center; + justify-content: center; + font-size: 14px; + color: black; + background: #f2f2f2; + border-right: 1px solid #b4bbc5; + } + .box_header_item_val { + flex: 1; + height: 100%; + display: flex; + align-items: center; + justify-content: center; + font-size: 14px; + color: black; + } + } + } + .box_table { + width: 100%; + border-top: 1px solid #b4bbc5; + border-left: 1px solid #b4bbc5; + box-sizing: border-box; + .box_table_head { + width: 100%; + display: flex; + align-items: center; + .box_table_head_item { + flex: 1; + height: 50px; + background: #f2f2f2; + display: flex; + align-items: center; + justify-content: center; + font-size: 14px; + color: black; + border-right: 1px solid #b4bbc5; + border-bottom: 1px solid #b4bbc5; + box-sizing: border-box; + &:nth-child(1) { + //flex: 0.5; + } + } + .box_table_head_item5 { + flex: 1; + height: 50px; + background: #f2f2f2; + display: flex; + align-items: center; + justify-content: center; + font-size: 14px; + color: black; + border-right: 1px solid #b4bbc5; + border-bottom: 1px solid #b4bbc5; + box-sizing: border-box; + &:nth-child(2) { + flex: 5; + } + } + .box_form_item { + flex: 1; + height: 50px; + background: #ffffff; + display: flex; + align-items: center; + justify-content: center; + font-size: 14px; + color: black; + border-right: 1px solid #b4bbc5; + border-bottom: 1px solid #b4bbc5; + box-sizing: border-box; + &:nth-child(1) { + //flex: 0.5; + } + } + } + .box_table_content { + width: 100%; + display: flex; + align-items: center; + .box_table_content_header{ + border-bottom: 0px solid #b4bbc5 !important; + } + .box_table_content_item { + flex: 1; + height: 50px; + background: #ffffff; + display: flex; + align-items: center; + justify-content: center; + font-size: 14px; + color: black; + border-right: 1px solid #b4bbc5; + border-bottom: 1px solid #b4bbc5; + box-sizing: border-box; + &:nth-child(1) { + // flex: 0.5; + } + } + } + } + } +</style> diff --git a/company/src/components/enterprise/OperaDispatchUnitWindow.vue b/company/src/components/enterprise/OperaDispatchUnitWindow.vue index 81e0e66..4f7bda4 100644 --- a/company/src/components/enterprise/OperaDispatchUnitWindow.vue +++ b/company/src/components/enterprise/OperaDispatchUnitWindow.vue @@ -10,9 +10,9 @@ <el-form-item label="娲鹃仯鍗曚綅鍚嶇О" prop="name"> <el-input v-model="form.name" placeholder="璇疯緭鍏�" v-trim/> </el-form-item> - <el-form-item label="娲鹃仯鍗曚綅淇$敤浠g爜" prop="code"> - <el-input v-model="form.code" placeholder="璇疯緭鍏�" v-trim/> - </el-form-item> +<!-- <el-form-item label="娲鹃仯鍗曚綅淇$敤浠g爜" prop="code">--> +<!-- <el-input v-model="form.code" placeholder="璇疯緭鍏�" v-trim/>--> +<!-- </el-form-item>--> <el-form-item label="娲鹃仯鍗曚綅鎻忚堪" prop="content"> <el-input v-model="form.content" placeholder="璇疯緭鍏�" v-trim/> </el-form-item> @@ -130,12 +130,12 @@ name: [ { required: true, message: '璇疯緭鍏ユ淳閬e崟浣嶅悕绉�' } ], - code: [ - { required: true, message: '璇疯緭鍏ユ淳閬e崟浣嶄俊鐢ㄤ唬鐮�' } - ], - content: [ - { required: true, message: '璇疯緭鍏ユ淳閬e崟浣嶆弿杩�' } - ] + // code: [ + // { required: true, message: '璇疯緭鍏ユ淳閬e崟浣嶄俊鐢ㄤ唬鐮�' } + // ], + // content: [ + // { required: true, message: '璇疯緭鍏ユ淳閬e崟浣嶆弿杩�' } + // ] }, insuranceScheme: [] } diff --git a/company/src/components/enterprise/OperaInsuranceApplyWindow.vue b/company/src/components/enterprise/OperaInsuranceApplyWindow.vue index 9dbd1e4..6295d2b 100644 --- a/company/src/components/enterprise/OperaInsuranceApplyWindow.vue +++ b/company/src/components/enterprise/OperaInsuranceApplyWindow.vue @@ -138,6 +138,8 @@ <importEmployees ref="importEmployees" @result="getValue" /> <!-- 纭宸ョ --> <confirmJobType ref="confirmJobType" @result="getUser" /> + <!-- 鏌ョ湅璇﹀崟 --> + <detailsPolicyholder ref="detailsPolicyholder" @success="successEvent" /> </GlobalWindow> </template> @@ -148,12 +150,14 @@ 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: 'OperaInsuranceApplyWindow2', extends: BaseOpera, - components: { GlobalWindow, selectEmployees, addEmployee, importEmployees, confirmJobType }, + components: { GlobalWindow, selectEmployees, addEmployee, importEmployees, confirmJobType, detailsPolicyholder }, data () { return { form: { @@ -163,6 +167,7 @@ applyStartTime: '', applyEndTime: '' }, + solutionName: '', type: '', pickerOptions: {}, // 瀛樻斁picker options鐨勫彉閲� price: '', @@ -187,7 +192,52 @@ 'field.id': 'id' }) }, + 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 = [] @@ -277,52 +327,68 @@ return } for (let i = 0; i < this.tableData.length; i++) { - console.log(this.tableData[i].worktypeId, this.tableData[i].duId) + console.log(this.tableData[i].worktypeId) + console.log(this.tableData[i].duId) if (!this.tableData[i].worktypeId || !this.tableData[i].duId) { this.$message.warning('璇峰畬鍠勬淳閬e崟浣嶅拰宸ョ淇℃伅') return } } - let arr = JSON.parse(JSON.stringify(this.tableData)) - arr.forEach(item => { - item.idcardNo = item.idCard + + let price = 0 + this.tableData.forEach(item => { + price = price + item.fee }) - 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 - }) - } + 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 + // }) + // } } }) @@ -386,7 +452,7 @@ this.$message.warning('璇峰厛閫夋嫨淇濋櫓鏂规') return } - this.$refs.importEmployees.open('涓婁紶鍚嶅崟', { arr: this.tableData, price: this.price }) + this.$refs.importEmployees.open('涓婁紶鍚嶅崟', { arr: this.tableData, solutionId: this.form.solutionId, type: 1, price: this.price }) }, // 鍒囨崲鏂规 changeSolution(e) { diff --git a/company/src/components/enterprise/confirmJobType.vue b/company/src/components/enterprise/confirmJobType.vue index f0f79ce..09b1325 100644 --- a/company/src/components/enterprise/confirmJobType.vue +++ b/company/src/components/enterprise/confirmJobType.vue @@ -65,7 +65,7 @@ getFindListByDTO () { findListByDTO({ solutionId: this.form.solutionId, - dataType: 0 + // dataType: 0 }).then(res => { this.dispatching = res }) diff --git a/company/src/components/enterprise/dispatchUnitDetails.vue b/company/src/components/enterprise/dispatchUnitDetails.vue index fab9807..ddeb6c6 100644 --- a/company/src/components/enterprise/dispatchUnitDetails.vue +++ b/company/src/components/enterprise/dispatchUnitDetails.vue @@ -12,10 +12,10 @@ <div class="info_list_item_label">娲鹃仯鍗曚綅锛�</div> <div class="info_list_item_val">{{form.name}}</div> </div> - <div class="info_list_item"> - <div class="info_list_item_label">娲鹃仯鍗曚綅淇$敤浠g爜锛�</div> - <div class="info_list_item_val">{{form.code}}</div> - </div> +<!-- <div class="info_list_item">--> +<!-- <div class="info_list_item_label">娲鹃仯鍗曚綅淇$敤浠g爜锛�</div>--> +<!-- <div class="info_list_item_val">{{form.code}}</div>--> +<!-- </div>--> <div class="info_list_item"> <div class="info_list_item_label">娲鹃仯鍗曚綅鐘舵�侊細</div> <div class="info_list_item_val" style="color:#2E68EC;" v-if="form.unitStatus === 0">寰呭鏍�</div> @@ -236,7 +236,7 @@ margin-bottom: 15px; .info_list_item_label { flex-shrink: 0; - width: 150px; + /*width: 150px;*/ font-size: 14px; color: black; } diff --git a/company/src/components/enterprise/importEmployees.vue b/company/src/components/enterprise/importEmployees.vue index c06e9a6..72e8cb1 100644 --- a/company/src/components/enterprise/importEmployees.vue +++ b/company/src/components/enterprise/importEmployees.vue @@ -31,6 +31,8 @@ return { list: [], price: 0, + type: null, + solutionId: null, addList: [], fileName: '' } @@ -40,13 +42,20 @@ this.title = title this.addList = [] this.fileName = '' + this.type = obj.type this.visible = true + this.solutionId = obj.solutionId this.list = obj.arr this.price = obj.price }, // 瀵煎嚭妯℃澘 exportTemplate () { - window.open(process.env.VUE_APP_MEMBER_URL) + // 鎶曚繚鐢宠 + if (this.type === 1) { + window.open(process.env.VUE_APP_MEMBER1_URL) + } else { + window.open(process.env.VUE_APP_MEMBER_URL) + } }, clickRef () { this.$refs.fileExcel.click() @@ -54,6 +63,7 @@ result (e) { const data = new FormData() data.append('file', e.target.files[0]) + data.append('solutionId', this.solutionId) importExcel(data) .then(res => { res.forEach(item => { diff --git a/company/src/components/enterprise/renewalInsurance.vue b/company/src/components/enterprise/renewalInsurance.vue index bad4d11..6d7f44d 100644 --- a/company/src/components/enterprise/renewalInsurance.vue +++ b/company/src/components/enterprise/renewalInsurance.vue @@ -27,18 +27,25 @@ </template> </el-table-column> <el-table-column prop="insureNum" label="鎶曚繚浜烘暟"></el-table-column> - <el-table-column prop="serviceDays" label="鎶曚繚鏃堕暱锛堝ぉ锛�"></el-table-column> + <el-table-column label="鎶曚繚鏃堕暱锛堝ぉ锛�"> + <template slot-scope="{row}"> + <span>{{row.serviceDays < 0 ? `-` : row.serviceDays}}</span> + </template> + </el-table-column> <el-table-column prop="currentFee" label="宸蹭骇鐢熻垂鐢�"></el-table-column> <el-table-column prop="fee" label="鎬昏垂鐢紙鍏冿級"></el-table-column> - <el-table-column prop="checkDate" label="鎻愪氦鏃ユ湡"></el-table-column> - <el-table-column prop="startTime" label="鎶曚繚鐢熸晥鏃ユ湡"></el-table-column> - <el-table-column prop="endTime" label="鎶曚繚澶辨晥鏃ユ湡"></el-table-column> + <el-table-column prop="endTime" label="淇濋櫓鐢熸晥姝㈡湡"></el-table-column> + <el-table-column label="澶辨晥鍓╀綑锛堝ぉ锛�"> + <template slot-scope="{row}"> + <span style="color: #F95601;">{{row.loseEfficacyDays}}</span> + </template> + </el-table-column> <el-table-column - min-width="150" + min-width="100" label="鎿嶄綔"> <template slot-scope="{row}"> <el-button type="text" @click="$refs.OperaInsuranceApply.open('缁繚', { id: row.id, type: 1 })">涓�浠剁画淇�</el-button> - <el-button type="text" @click="dele(row)">鍒犻櫎鎻愰啋</el-button> +<!-- <el-button type="text" @click="dele(row)">鍒犻櫎鎻愰啋</el-button>--> </template> </el-table-column> </el-table> @@ -94,24 +101,13 @@ capacity: 10, page: this.currentPage, model: { - loseEfficacy: 1 + loseEfficacy: 1, + status: 5 } }).then(res => { this.tableData = res.records this.total = res.total }) - }, - dele(row) { - this.$confirm('纭畾鍏抽棴姝ゆ彁绀哄悧?', '鎻愮ず', { - confirmButtonText: '纭畾', - cancelButtonText: '鍙栨秷', - type: 'warning' - }).then(() => { - - }).catch(() => { - - }); - console.log(row) }, successEvent(){ this.$emit('success') diff --git a/company/src/layouts/AppLayout.vue b/company/src/layouts/AppLayout.vue index f073fc6..43e3677 100644 --- a/company/src/layouts/AppLayout.vue +++ b/company/src/layouts/AppLayout.vue @@ -11,7 +11,7 @@ <AppHeader/> </header> <div style="height:10px;"></div> - <main> + <main ref="containerS"> <transition name="fade"> <!-- <keep-alive>--> <router-view></router-view> @@ -29,19 +29,28 @@ import Header from '@/components/common/Header' import CommonHeader from '@/components/common/CommonHeader' import Menu from '@/components/common/Menu' +import Watermark from "@/utils/waterMark"; export default { name: 'DefaultLayout', components: { AppHeader: Header, Menu, CommonHeader }, data() { return { - isFinishData: false + isFinishData: false, + orgBackground: '' } }, computed: { ...mapState(['menuData', 'userInfo']) }, - methods: { + mounted() { + // 浼佷笟绔敤鎴疯缃按鍗� + if (this.userInfo.type === 1) { + Watermark.set(this.userInfo.company.name, this.$refs.containerS); + } + }, + + methods: { }, } @@ -99,6 +108,7 @@ } & > main { height: 100%; + box-sizing: border-box; overflow-y: auto; } } diff --git a/company/src/utils/waterMark.js b/company/src/utils/waterMark.js new file mode 100644 index 0000000..a16cf6e --- /dev/null +++ b/company/src/utils/waterMark.js @@ -0,0 +1,56 @@ +'use strict' +const watermark = {} +const setWatermark = (str, container) => { + const id = '1.23452384164.123412415' + if (container === undefined) { + return + } + + // 鏌ョ湅椤甸潰涓婃湁娌℃湁锛屽鏋滄湁鍒欏垹闄� + if (document.getElementById(id) !== null) { + const childelement = document.getElementById(id) + childelement.parentNode.removeChild(childelement) + } + var containerWidth = container.offsetWidth // 鑾峰彇鐖跺鍣ㄥ + var containerHeight = container.offsetHeight // 鑾峰彇鐖跺鍣ㄩ珮 + container.style.position = 'relative' // 璁剧疆甯冨眬涓虹浉瀵瑰竷灞� + // 鍒涘缓canvas鍏冪礌(鍏堝埗浣滀竴鍧楄儗鏅浘) + const can = document.createElement('canvas') + can.width = 300 // 璁剧疆姣忎竴鍧楃殑瀹藉害 + can.height = 260 // 楂樺害 + const cans = can.getContext('2d') // 鑾峰彇canvas鐢诲竷 + cans.rotate(-20 * Math.PI / 180) // 閫嗘椂閽堟棆杞�/9 + cans.font = '24px Vedana' // 璁剧疆瀛椾綋 + cans.fillStyle = 'rgba(0, 0, 0, 0.1)' // 璁剧疆瀛椾綋鐨勯鑹� + cans.textAlign = 'left' // 鏂囨湰瀵归綈鏂瑰紡 + cans.textBaseline = 'Middle' // 鏂囨湰鍩虹嚎 + cans.fillText(str, 0, 4 * can.height / 5) // 缁樺埗鏂囧瓧 + // 鍒涘缓涓�涓猟iv鍏冪礌 + const div = document.createElement('div') + div.id = id // 璁剧疆id + div.style.pointerEvents = 'none' // 鍙栨秷鎵�鏈変簨浠� + div.style.top = '0px' + div.style.left = '0px' + div.style.position = 'absolute' + div.style.zIndex = '100000' + div.style.width = '100%' + // div.style.width = containerWidth + 'px' + div.style.height = containerHeight + 'px' + div.style.background = 'url(' + can.toDataURL('image/png') + ') left top repeat' + container.appendChild(div) // 杩藉姞鍒伴〉闈� + return id +} +// 璇ユ柟娉曞彧鍏佽璋冪敤涓�娆� +watermark.set = (str, container) => { + let id = setWatermark(str, container) + setInterval(() => { + if (document.getElementById(id) === null) { + id = setWatermark(str, container) + } + }, 500) + // 鐩戝惉椤甸潰澶у皬鐨勫彉鍖� + window.onresize = () => { + setWatermark(str, container) + } +} +export default watermark diff --git a/company/src/views/business/insuranceApply.vue b/company/src/views/business/insuranceApply.vue index ac5716b..361228f 100644 --- a/company/src/views/business/insuranceApply.vue +++ b/company/src/views/business/insuranceApply.vue @@ -18,9 +18,9 @@ <el-select v-model="searchForm.companyId" placeholder="璇烽�夋嫨" @change="search"> <el-option v-for="item in companyList" - :key="item.baseId" + :key="item.id" :label="item.name" - :value="item.baseId"> + :value="item.id"> </el-option> </el-select> </el-form-item> diff --git a/company/src/views/business/solutions.vue b/company/src/views/business/solutions.vue index e8fbcc0..03873fc 100644 --- a/company/src/views/business/solutions.vue +++ b/company/src/views/business/solutions.vue @@ -67,6 +67,7 @@ </el-switch> </template> </el-table-column> + <el-table-column prop="createDate" label="鏂规鏃ユ湡" min-width="100px"></el-table-column> <el-table-column v-if="containPermissions(['business:solutions:update', 'business:solutions:delete'])" label="鎿嶄綔" diff --git a/company/src/views/enterprise/insuranceApply.vue b/company/src/views/enterprise/insuranceApply.vue index 617c916..f2df5a6 100644 --- a/company/src/views/enterprise/insuranceApply.vue +++ b/company/src/views/enterprise/insuranceApply.vue @@ -62,7 +62,11 @@ </el-table-column> <el-table-column prop="solutionsName" label="淇濋櫓鏂规"></el-table-column> <el-table-column prop="insureNum" label="鎶曚繚浜烘暟"></el-table-column> - <el-table-column prop="serviceDays" label="鎶曚繚鏃堕暱锛堝ぉ锛�"></el-table-column> + <el-table-column label="鎶曚繚鏃堕暱锛堝ぉ锛�"> + <template slot-scope="{row}"> + <span>{{(row.serviceDays - row.loseEfficacyDays) < 0 ? `-` : row.serviceDays - row.loseEfficacyDays}}</span> + </template> + </el-table-column> <el-table-column prop="fee" label="鎬昏垂鐢紙鍏冿級"></el-table-column> <el-table-column prop="checkDate" label="鎻愪氦鏃ユ湡"></el-table-column> <el-table-column prop="startTime" label="鎶曚繚鐢熸晥鏃ユ湡"></el-table-column> diff --git a/company/src/views/enterprise/myPolicy.vue b/company/src/views/enterprise/myPolicy.vue index c87b329..887b8c7 100644 --- a/company/src/views/enterprise/myPolicy.vue +++ b/company/src/views/enterprise/myPolicy.vue @@ -93,7 +93,11 @@ </template> </el-table-column> <el-table-column prop="insureNum" label="鎶曚繚浜烘暟"></el-table-column> - <el-table-column prop="serviceDays" label="鎶曚繚鏃堕暱锛堝ぉ锛�"></el-table-column> + <el-table-column label="鎶曚繚鏃堕暱锛堝ぉ锛�"> + <template slot-scope="{row}"> + <span>{{(row.serviceDays - row.loseEfficacyDays) < 0 ? `-` : row.serviceDays - row.loseEfficacyDays}}</span> + </template> + </el-table-column> <el-table-column prop="currentFee" label="宸蹭骇鐢熻垂鐢�"></el-table-column> <el-table-column prop="fee" label="鎬昏垂鐢紙鍏冿級"></el-table-column> <el-table-column prop="checkDate" label="鎻愪氦鏃ユ湡"></el-table-column> @@ -107,9 +111,9 @@ > <template slot-scope="{row}"> <el-button type="text" @click="$refs.OperaInsuranceApplyDetails.open('鎶曚繚璇︽儏', { id: row.id })" v-permissions="['business:insuranceapply:update']">鏌ョ湅璇︽儏</el-button> - <template v-if="row.statusCollect === 2"> - <el-button type="text" @click="$refs.additionSubtractionApplication.open('鍔犲噺淇濈敵璇�', { id: row.id })">鍔犲噺淇濈敵璇�</el-button> - </template> +<!-- <template v-if="row.statusCollect === 2">--> +<!-- <el-button type="text" @click="$refs.additionSubtractionApplication.open('鍔犲噺淇濈敵璇�', { id: row.id })">鍔犲噺淇濈敵璇�</el-button>--> +<!-- </template>--> </template> </el-table-column> </el-table> diff --git a/company/vue.config.js b/company/vue.config.js index f283dfd..c8c48d1 100644 --- a/company/vue.config.js +++ b/company/vue.config.js @@ -3,7 +3,7 @@ // const outputDir = process.env.VUE_APP_CONTEXT_PATH.substring(1, process.env.VUE_APP_CONTEXT_PATH.length) module.exports = { publicPath: './', - outputDir: 'yyb_admin', + outputDir: 'yyb_web', assetsDir: 'static', lintOnSave: false, devServer: { diff --git a/platform/src/layouts/AppLayout.vue b/platform/src/layouts/AppLayout.vue index f073fc6..43e3677 100644 --- a/platform/src/layouts/AppLayout.vue +++ b/platform/src/layouts/AppLayout.vue @@ -11,7 +11,7 @@ <AppHeader/> </header> <div style="height:10px;"></div> - <main> + <main ref="containerS"> <transition name="fade"> <!-- <keep-alive>--> <router-view></router-view> @@ -29,19 +29,28 @@ import Header from '@/components/common/Header' import CommonHeader from '@/components/common/CommonHeader' import Menu from '@/components/common/Menu' +import Watermark from "@/utils/waterMark"; export default { name: 'DefaultLayout', components: { AppHeader: Header, Menu, CommonHeader }, data() { return { - isFinishData: false + isFinishData: false, + orgBackground: '' } }, computed: { ...mapState(['menuData', 'userInfo']) }, - methods: { + mounted() { + // 浼佷笟绔敤鎴疯缃按鍗� + if (this.userInfo.type === 1) { + Watermark.set(this.userInfo.company.name, this.$refs.containerS); + } + }, + + methods: { }, } @@ -99,6 +108,7 @@ } & > main { height: 100%; + box-sizing: border-box; overflow-y: auto; } } -- Gitblit v1.9.3