company/src/components/business/OperaKnowledgeWindow.vue
@@ -15,21 +15,41 @@ <el-select v-model="form.labelsArr" style="width: 100%;" @change="changeLabel" multiple placeholder="è¯·éæ©"> <el-option v-for="item in cateList" :key="item.id" :key="item.name" :label="item.name" :value="item.id"> :value="item.name"> </el-option> </el-select> <el-button size="medium" style="margin-left: 15px;" @click="$refs.tagLibrary.open('æ ç¾åº')">æ ç¾åº</el-button> </div> </el-form-item> <el-form-item label="å°åº" prop="area"> <el-form-item label="ç份" prop="provinceId"> <el-select v-model="form.provinceId" filterable @change="changeProvince" placeholder="è¯·éæ©"> <el-option v-for="item in areas" :key="item.id" :label="item.name" :value="item.id"> </el-option> </el-select> </el-form-item> <el-form-item label="åå¸" prop="cityId"> <el-select v-model="form.cityId" clearablefilterable placeholder="è¯·éæ©"> <el-option v-for="item in citys" :key="item.id" :label="item.name" :value="item.id"> </el-option> </el-select> </el-form-item> <!-- <el-form-item label="å°åº" prop="area"> <el-cascader v-model="form.area" :options="area" @change="changeArea" :props="{ label: 'name', children: 'childAreasList', value: 'id' }" /> </el-form-item> </el-form-item>--> <el-form-item label="年份" prop="yearInfo"> <el-date-picker v-model="form.yearInfo" @@ -70,10 +90,21 @@ area: [], labelsArr: [] }, areas: [], citys: [], // éªè¯è§å rules: { title: [ { required: true, message: '请è¾å ¥å 容', trigger: 'blur' } ], yearInfo: [ { required: true, message: 'è¯·éæ©å¹´ä»½', trigger: 'blur' } ], labelsArr: [ { required: true, message: 'è¯·éæ©è¡¨æ ', trigger: 'blur' } ], provinceId: [ { required: true, message: 'è¯·éæ©ç份', trigger: 'blur' } ], link: [ { required: true, message: '请è¾å ¥å 容', trigger: 'blur' } @@ -88,7 +119,6 @@ api: '/business/knowledge', 'field.id': 'id' }) }, methods: { changeLabel(e) { @@ -103,9 +133,18 @@ this.form.cityId = e[1] } }, changeProvince (e) { this.citys = [] this.form.cityId=null this.areas.forEach(item => { if (item.id === this.form.provinceId) { this.citys = item.childAreasList || [] } }) }, open (title, target) { this.getLabel() this.getCityTree() this.getCityTreeList() this.title = title this.visible = true // æ°å»º @@ -122,7 +161,7 @@ this.form[key] = target[key] } if (this.form.labels) { this.form.labelsArr = this.form.labels.split(',').map(item => Number(item)) this.form.labelsArr = this.form.labels.split(',') } if (this.form.provinceId && this.form.cityId) { this.form.area = [this.form.provinceId, this.form.cityId] @@ -134,9 +173,12 @@ async getLabel() { this.cateList = await list() }, async getCityTreeList () { this.areas = await findTreeList({}) }, async getCityTree() { this.area = await findTreeList({}) this.setSecondLevelChildrenToNullPrecise(this.area); this.setSecondLevelChildrenToNullPrecise(this.area) this.area.forEach(item => { if (item.childAreasList.length === 0) { item.childAreasList = null @@ -144,21 +186,21 @@ }) }, setSecondLevelChildrenToNullPrecise(data, level = 1) { if (!data || !data.length) return; if (!data || !data.length) return data.forEach(item => { if (item.childAreasList && item.childAreasList.length) { if (level === 1) { // è¿æ¯ç¬¬ä¸çº§èç¹ï¼å¤çå ¶åèç¹ï¼ç¬¬äºçº§ï¼ item.childAreasList.forEach(child => { child.childAreasList = null; }); child.childAreasList = null }) } else { // ç»§ç»éå½å¤çæ´æ·±å±çº§ this.setSecondLevelChildrenToNullPrecise(item.childAreasList, level + 1); this.setSecondLevelChildrenToNullPrecise(item.childAreasList, level + 1) } } }); }) } } } company/src/components/business/OperaSettleClaimsCheckWindow.vue
@@ -296,7 +296,7 @@ </script> <style> .v-modal { z-index: 2000 !important; // z-index: 2000 !important; } </style> <style lang="scss" scoped> company/src/components/business/OperaSettleClaimsWindow.vue
@@ -22,7 +22,7 @@ <div class="box_dk" v-if="[13].includes(info.status)"> <div class="box_dk_title"> <i class="el-icon-success"></i> <span>å·²ææ¬¾</span> <span style="font-weight: bold">å·²ææ¬¾</span> </div> <div class="box_dk_list"> <div class="box_dk_list_row"> @@ -161,7 +161,7 @@ <div class="box_desc_title"> <span class="box_desc_title_val">æ¥æ¡è¯¦æ </span> <div class="box_desc_title_zt" v-if="info.statusName">{{info.statusName}}</div> <div class="box_desc_title_tips" v-if="info.isRisk === 1"> <div class="box_desc_title_tips" @click="$refs.riskCaseReminder.open('é£é©æ¡ä»¶æé', info.riskContent)" v-if="info.isRisk === 1"> <i class="el-icon-warning"></i> <span>é£é©æ¡ä»¶</span> </div> @@ -183,7 +183,7 @@ <el-button type="primary" @click="register" v-if="[1,2].includes(info.status)">ç«æ¡</el-button> <el-button type="primary" @click="$refs.acceptance.open('æ¡ä»¶åç', info.id)" v-if="[3,5].includes(info.status)">åç</el-button> <el-button type="primary" @click="addRemark" v-if="![0,1,2,4,13,14].includes(info.status)">夿³¨</el-button> <el-button type="primary" @click="addReport(1)" v-if="[3].includes(info.status) && info.reportNumStatus === 0">æ·»å æ¥æ¡å·</el-button> <el-button type="primary" @click="addReport(1)" v-if="[3,7,9].includes(info.status) && info.reportNumStatus === 0">æ·»å æ¥æ¡å·</el-button> <el-button type="primary" @click="addReport(2)" v-if="[9].includes(info.status) && info.reportNumStatus === 1">ç¼è¾æ¥æ¡å·</el-button> <el-button type="primary" @click="$refs.adjustment.open('çç®', info.id, 1)" v-if="[9].includes(info.status)">çç®</el-button> <el-button type="primary" @click="$refs.adjustment.open('éæ°çç®', info.id, 1)" v-if="[10].includes(info.status)">éæ°çç®</el-button> @@ -193,7 +193,7 @@ <el-button type="primary" @click="supplementaryMaterials" v-if="[9].includes(info.status)">è¡¥å ææ</el-button> <el-button type="primary" @click="$refs.additionMaterial_ba.open('æ·»å ææ', info.id)" v-if="[9,10].includes(info.status)">æ·»å ææ</el-button> </template> <el-button icon="el-icon-refresh-left" type="primary" circle @click="$refs.caseProgress.open('æ¡ä»¶è¿åº¦', info.settleClaimsLogList)" v-if="![0,13,14].includes(info.status)"></el-button> <el-button icon="el-icon-refresh-left" type="primary" title="æ¥çæ¡ä»¶è¿åº¦" circle @click="$refs.caseProgress.open('æ¡ä»¶è¿åº¦', info.settleClaimsLogList)" v-if="![0].includes(info.status)"></el-button> </div> </div> <div class="box_desc_list"> @@ -215,13 +215,13 @@ <div class="box_desc_list_zw"></div> </div> </div> <div class="box_fx" v-if="info.isRisk === 1"> <div class="box_fx" v-if="info.isRisk === 1 && showIsRisk ===true "> <div class="box_fx_left"> <i class="el-icon-warning"></i> <span class="box_fx_left_a">注æï¼è¯¥æ¡ä»¶æ{{info.riskContent.length}}æ¡é£é©ä¿¡æ¯</span> <span class="box_fx_left_b" @click="$refs.riskCaseReminder.open('é£é©æ¡ä»¶æé', info.riskContent)">æ¥ç详æ </span> </div> <i class="el-icon-close" @click="info.isRisk = 0"></i> <i class="el-icon-close" @click="closeRiskTip"></i> </div> <div class="box_desc"> <div class="box_desc_head"> @@ -240,7 +240,7 @@ åºé©äººå§åï¼{{info.memberName}} </div> <div class="box_desc_list_row"> åºé©äººèº«ä»½è¯å·ï¼{{info.memberIdcard}} åºé©äººèº«ä»½è¯å·ï¼{{info.idcardNo}} </div> <div style="width: 33%; height: 0;"></div> </div> @@ -281,7 +281,10 @@ äºæ ç±»åï¼{{returnType(info.type)}} </div> <div class="box_desc_list_row"> æ¯å¦æå»çä¿é©ï¼{{returnName(info.medicalInsurance)}} æ¯å¦ä¼¤æ®ï¼{{returnName(info.hurtType)}} </div> <div class="box_desc_list_row"> æ¯å¦æå»ä¿ï¼{{returnName(info.medicalInsurance)}} </div> <div class="box_desc_list_row"> å°±è¯ç±»åï¼{{returnInHospital(info.inHospital)}} @@ -392,7 +395,8 @@ addRemark, saveSupplementDescribe, updCaseType, confirmFee } from '@/api/business/settleRisk' confirmFee } from '@/api/business/settleRisk' import RiskCaseReminder from '@/components/business/riskCaseReminder' import CaseProgress from '@/components/business/caseProgress' import Acceptance from '@/components/business/acceptance' @@ -411,7 +415,8 @@ data () { return { info: null, id: null id: null, showIsRisk: true } }, computed: { @@ -429,6 +434,9 @@ this.id = id this.getDetail() }, closeRiskTip(){ this.showIsRisk= false }, setCaseType(e) { updCaseType({ id: this.id, caseType: e }) .then(res => { @@ -439,125 +447,155 @@ this.$prompt('è¡¥å 说æ', 'è¡¥å ææ', { confirmButtonText: 'æäº¤', cancelButtonText: 'åæ¶', inputType: 'textarea', inputPattern: /^(?:.|\n)+$/, inputErrorMessage: 'è¡¥å 说æä¸è½ä¸ºç©ºï¼', beforeClose: (action, instance, done) => { if (action === 'confirm') { instance.confirmButtonLoading = true; instance.confirmButtonLoading = true saveSupplementDescribe({ id: this.id, describe: instance.inputValue }) .then((res) => { done() }) .catch((data) => { this.$message.error(data.message) }) .finally(() => { done(); instance.confirmButtonLoading = false; instance.confirmButtonLoading = false }) } else { done(); done() } } }).then(({ value }) => { this.getDetail() }).catch(() => { }); }) }, addRemark() { this.$prompt('夿³¨', 'æ·»å 夿³¨', { confirmButtonText: 'æ·»å ', cancelButtonText: 'åæ¶', inputType: 'textarea', inputPattern: /^(?:.|\n)+$/, inputErrorMessage: '夿³¨ä¸è½ä¸ºç©ºï¼', beforeClose: (action, instance, done) => { if (action === 'confirm') { instance.confirmButtonLoading = true; instance.confirmButtonLoading = true addRemark({ id: this.id, describe: instance.inputValue }) .then((res) => { done() }) .catch((data) => { this.$message.error(data.message) }) .finally(() => { done(); instance.confirmButtonLoading = false; instance.confirmButtonLoading = false }) } else { done(); done() } } }).then(({ value }) => { this.getDetail() }).catch(() => { }); }) }, addReport(type) { this.$prompt(`æ¥æ¡å·`, `${type === 1 ? 'æ·»å æ¥æ¡å·' : 'ç¼è¾æ¥æ¡å·'}`, { this.$prompt('æ¥æ¡å·', `${type === 1 ? 'æ·»å æ¥æ¡å·' : 'ç¼è¾æ¥æ¡å·'}`, { confirmButtonText: 'æ·»å ', cancelButtonText: 'åæ¶', inputPattern: /^(?:.|\n)+$/, inputErrorMessage: 'æ¥æ¡å·ä¸è½ä¸ºç©ºï¼', beforeClose: (action, instance, done) => { if (action === 'confirm') { instance.confirmButtonLoading = true; instance.confirmButtonLoading = true addReportNum({ id: this.id, reportNum: instance.inputValue }) .then((res) => { done() }) .catch((data) => { this.$message.error(data.message) }) .finally(() => { done(); instance.confirmButtonLoading = false; instance.confirmButtonLoading = false }) } else { done(); done() } } }).then(({ value }) => { this.getDetail() }).catch(() => { }); }) }, register() { this.$prompt('ç«æ¡è¯´æ', 'ç«æ¡', { confirmButtonText: 'ç¡®å®', cancelButtonText: 'åæ¶', inputType: 'textarea', beforeClose: (action, instance, done) => { if (action === 'confirm') { instance.confirmButtonLoading = true; instance.confirmButtonLoading = true register({ id: this.id, describe: instance.inputValue, registerStatus: 3 }) .then((res) => { done() }) .catch((data) => { this.$message.error(data.message) }) .finally(() => { done(); instance.confirmButtonLoading = false; instance.confirmButtonLoading = false }) } else { done(); done() } } }).then(({ value }) => { this.getDetail() }).catch(() => { }); }) }, returnCase() { this.$prompt('éå说æ', 'éå', { confirmButtonText: 'ç¡®å®', cancelButtonText: 'åæ¶', inputType: 'textarea', inputPattern: /^(?:.|\n)+$/, inputErrorMessage: 'éå说æä¸è½ä¸ºç©ºï¼', beforeClose: (action, instance, done) => { if (action === 'confirm') { instance.confirmButtonLoading = true; instance.confirmButtonLoading = true register({ id: this.id, describe: instance.inputValue, registerStatus: 4 }) .then((res) => { done() }) .catch((data) => { this.$message.error(data.message) }) .finally(() => { done(); instance.confirmButtonLoading = false; instance.confirmButtonLoading = false }) } else { done(); done() } } }).then(({ value }) => { this.getDetail() }).catch(() => { }); }) }, getDetail() { findById(this.id) .then(res => { res.riskContent = JSON.parse(res.riskContent) this.info = res this.info.showIsRisk = true this.visible = true }) }, @@ -574,7 +612,7 @@ }) }).catch(() => { }); }) }, returnInHospital(type) { switch (type) { @@ -590,6 +628,10 @@ return 'æ¯' case 1: return 'å¦' case 2: return 'å¾ ç¡®å®' default: return '' } }, returnType(type) { @@ -616,14 +658,15 @@ }) }).catch(() => { }); }, }) } } } </script> <style lang="scss" scoped> .box { //margin-left: 30px; width: 100%; .box_tui { width: 100%; @@ -987,6 +1030,7 @@ .box_desc_head { width: 100%; display: flex; font-weight: bold; align-items: center; justify-content: space-between; margin-bottom: 26px; @@ -1017,6 +1061,7 @@ margin-right: 20px; } .box_desc_title_tips { cursor: pointer; width: 84px; height: 25px; border-radius: 15px; company/src/components/business/OperaSolutionsBaseWindow.vue
@@ -101,6 +101,8 @@ <el-button type="primary" @click="impor">å¯¼å ¥å·¥ç§</el-button> <el-button type="text" @click="exprot">å¯¼å ¥æ¨¡çxls</el-button> </div> <el-form-item label="已添å å·¥ç§" prop="worktypeIdList"> <u-table :data="form.worktypeIdList" border @@ -125,6 +127,7 @@ </template> </u-table-column> </u-table> </el-form-item> </div> <el-form-item label="é£é©è®¾ç½®" prop="risk"> <div class="tx"> @@ -151,8 +154,8 @@ </div> <div class="tx_item_content"> <span>è§å设置ï¼å 许åºé©æ¶é´å¨ä¿åçæå</span> <el-input-number style="margin: 0 15px;" v-model="form.riskNewUserTime" :min="1"></el-input-number> <el-select v-model="form.riskNewUserUnit" style="width: 100px; margin-right: 15px;" placeholder="è¯·éæ©"> <el-input-number style="margin: 0 15px;" :disabled="form.riskNewUserStatus === 0" v-model="form.riskNewUserTime" :min="1"></el-input-number> <el-select v-model="form.riskNewUserUnit" :disabled="form.riskNewUserStatus === 0" style="width: 100px; margin-right: 15px;" placeholder="è¯·éæ©"> <el-option label="å°æ¶" :value="1"></el-option> <el-option label="天" :value="2"></el-option> </el-select> @@ -283,6 +286,9 @@ correctWarnTime: [ { required: true, message: '请è¾å ¥æ¹æ¹æéæ¶é´' } ], worktypeIdList: [ { required: true, message: '请å®åå·¥ç§ä¿¡æ¯' } ], canAdd: [ { required: true, validator: canAddFun } ] company/src/components/business/caseProgress.vue
@@ -3,7 +3,7 @@ :title="title" width="50%" :withFooter="false" :visible.sync="visible" :visible.sync="visible"æ¯å¦ :confirm-working="isWorking" > <el-timeline reverse> @@ -11,7 +11,7 @@ <div style="display: flex; flex-direction: column;"> <span class="a">{{item.title}}</span> <span class="b">{{item.creatorName}} {{item.companyName || 'å¹³å°çèµå'}} {{item.createDate }}</span> <span class="c">说æï¼{{item.content}}</span> <span class="c" v-if="index>0">说æï¼{{item.content}}</span> </div> </el-timeline-item> </el-timeline> company/src/components/business/tagLibrary.vue
@@ -22,6 +22,9 @@ </div> </div> </div> <template v-slot:footer> <el-button @click="close">è¿å</el-button> </template> </GlobalWindow> </template> @@ -57,18 +60,31 @@ // æ·»å æ ç¾ async add() { if (!this.value) return this.$message.warning('请å è¾å ¥å 容') let res = await createLabels({ name: this.value }) await this.getData() createLabels({ name: this.value }) .then(() => { this.$message.success('æ·»å æå') this.$emit('success') this.getData() this.$emit('refresh') this.value = '' this.$message.success('æ·»å æå') }) .catch(e => { this.$tip.apiFailed(e) }) }, // å é¤ async dele(id) { let res = await labelsDeleteById(id) await this.getData() this.$emit('refresh') labelsDeleteById(id) .then(() => { this.$message.success('å 餿å') this.$emit('success') this.getData() this.$emit('refresh') this.value = '' }) .catch(e => { this.$tip.apiFailed(e) }) } } } company/src/components/common/previewArea.vue
@@ -1,10 +1,12 @@ <template> <template :append-to-body="true"> <div class="box_item_list_row_l"> <div class="desc_data_list_item" v-for="(item, index) in list" :key="index"> <div class="desc_data_list_item_img" v-if="item.type === 0"> <el-image style="width: 100%; height: 100%" style="width: 100%; height: 100%;" :src="item.fileurlFull" :preview-teleported="true" :append-to-body="true" :preview-src-list="[item.fileurlFull]"> </el-image> </div> @@ -37,8 +39,13 @@ } } </script> <style> .el-image-viewer__wrapper{ z-index: 9999 !important; } </style> <style lang="scss" scoped> .box_item_list_row_l { width: 100%; display: flex; company/src/components/enterprise/onlineReporting.vue
@@ -517,9 +517,13 @@ ], informantPhone: [ { required: true, message: 'ä¸è½ä¸ºç©º' } ], ] }, pickerOptions: {}, pickerOptions: { disabledDate(time) { return time.getTime() > Date.now(); // ç¦ç¨æªæ¥çæ¥æ } }, area: [], user: [], solutionList: [] @@ -559,9 +563,11 @@ item.active = true this.pickerOptions = { disabledDate(time) { return time.getTime() < new Date(item.parentStartTime).getTime() || time.getTime() > new Date(item.parentEndTime).getTime() var start = new Date(item.startTime) var end = new Date(item.endTime) return ( time.getTime() < start.getTime() || time.getTime()>end.getTime()) } }; } } else { item.active = false } @@ -629,24 +635,24 @@ }, async getCityTree() { this.area = await findTreeList({}) this.setSecondLevelChildrenToNullPrecise(this.area); this.setSecondLevelChildrenToNullPrecise(this.area) }, setSecondLevelChildrenToNullPrecise(data, level = 1) { if (!data || !data.length) return; if (!data || !data.length) return data.forEach(item => { if (item.childAreasList && item.childAreasList.length) { if (level === 2) { // è¿æ¯ç¬¬ä¸çº§èç¹ï¼å¤çå ¶åèç¹ï¼ç¬¬äºçº§ï¼ item.childAreasList.forEach(child => { child.childAreasList = null; }); child.childAreasList = null }) } else { // ç»§ç»éå½å¤çæ´æ·±å±çº§ this.setSecondLevelChildrenToNullPrecise(item.childAreasList, level + 1); this.setSecondLevelChildrenToNullPrecise(item.childAreasList, level + 1) } } }); }) }, getUser() { findListByDTO({}) @@ -688,7 +694,7 @@ } }, getSolutions(id) { let row = this.user.filter(item => item.id === id) const row = this.user.filter(item => item.id === id) this.form.idcardNo = row[0].idcardNo findList({ memberId: id }) .then(res => { @@ -697,24 +703,32 @@ item.active = false }) this.solutionList = res this.changeSolution(null,0) }) }, changeSolution(e, i) { this.pickerOptions = {} if(this.solutionList.length < i){ return } this.solutionList.forEach((item, index) => { item.active = i === index }) let obj = this.solutionList.filter(item => item.active)[0] const obj = this.solutionList.filter(item => item.active)[0] this.pickerOptions = { disabledDate (time) { var start = new Date(obj.startTime) var end = new Date(obj.endTime) return ( time.getTime() < start.getTime() || time.getTime()>end.getTime()) } } this.form.insuranceApplyId = obj.applyId this.form.solutionId = obj.solutionId this.form.worktypeId = obj.worktypeId this.form.duId = obj.duId this.form.applyDetailId = obj.id this.form.happenTime = '' this.pickerOptions = { disabledDate(time) { return time.getTime() < new Date(obj.parentStartTime).getTime() || time.getTime() > new Date(obj.parentEndTime).getTime() } }; this.form.happenTime = obj.startTime console.log(this.pickerOptions) }, // æ¥çä¿å详æ jumpSolutionDetail(id, solutionType) { @@ -736,6 +750,8 @@ this.i = 2 } this.$emit('success') }).catch(err => { this.$tip.apiFailed(err) }) .finally(() => { this.isWorking = false company/src/views/business/knowledge.vue
@@ -2,14 +2,28 @@ <TableLayout :permissions="['business:knowledge:query']"> <!-- æç´¢è¡¨å --> <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline> <el-form-item label="æ é¢/å 容" prop="title"> <el-input v-model="searchForm.title" placeholder="请è¾å ¥æ é¢å 容" @keypress.enter.native="search"></el-input> <el-form-item label="æ é¢" prop="title"> <el-input v-model="searchForm.title" style="width: 120px" clearable placeholder="请è¾å ¥æ é¢" @keypress.enter.native="search"></el-input> </el-form-item> <el-form-item label="ç份ç¼ç " prop="provinceId"> <el-input v-model="searchForm.provinceId" placeholder="请è¾å ¥ç份ç¼ç " @keypress.enter.native="search"></el-input> <el-form-item label="ç份" prop="area"> <el-select style="width: 120px" v-model="searchForm.provinceId" clearable filterable @change="changeProvince" placeholder="è¯·éæ©"> <el-option v-for="item in areas" :key="item.id" :label="item.name" :value="item.id"> </el-option> </el-select> </el-form-item> <el-form-item label="åå¸ç¼ç " prop="cityId"> <el-input v-model="searchForm.cityId" placeholder="请è¾å ¥åå¸ç¼ç " @keypress.enter.native="search"></el-input> <el-form-item label="åå¸" prop="area"> <el-select style="width: 120px" v-model="searchForm.cityId" clearablefilterable @change="search" placeholder="è¯·éæ©"> <el-option v-for="item in citys" :key="item.id" :label="item.name" :value="item.id"> </el-option> </el-select> </el-form-item> <section> <el-button type="primary" @click="search">æç´¢</el-button> @@ -25,18 +39,17 @@ </ul> <div class="list" v-loading="isWorking.search" v-if="tableData.list.length > 0"> <div class="list-item" v-for="(item, index) in tableData.list" :key="index"> <div class="list-item-title"> <div class="list-item-title" @click="gourl(item.link)"> <span>{{item.title}}</span> <i class="el-icon-arrow-right"></i> </div> <div class="list-item-cates" v-if="item.labelNames"> <div class="list-item-cates-row" v-for="(label, index) in item.labelNames.split(',')" :key="index">æ¿çæ³è§labels</div> <div class="list-item-cates-row">{{label}}</div> <div class="list-item-cates" v-if="item.labels"> <div class="list-item-cates-row" v-for="(label, index) in item.labels.split(',')" :key="index"> {{label}}</div> </div> <div class="list-item-footer"> <div class="left"> <div class="list-item-footer-row">éç¨å°åºï¼{{item.cityName ? item.cityName : item.provinceName}}</div> <div class="list-item-footer-row">éç¨å¹´ä»½ï¼{{item.yearInfo}}</div> <div class="list-item-footer-row">éç¨å¹´ä»½ï¼{{item.yearInfo}} å¹´</div> </div> <div class="right"> <el-button type="text" size="medium" style="margin-right: 15px; color: red;" @click="dele(item.id)">å é¤</el-button> @@ -65,7 +78,7 @@ import TableLayout from '@/layouts/TableLayout' import Pagination from '@/components/common/Pagination' import OperaKnowledgeWindow from '@/components/business/OperaKnowledgeWindow' import { deleteById } from '@/api/business/knowledge' import {deleteById, findTreeList} from '@/api/business/knowledge' export default { name: 'Knowledge', extends: BaseTable, @@ -77,7 +90,9 @@ provinceId: '', cityId: '', title: '' } }, areas: [], citys: [] } }, created () { @@ -88,20 +103,39 @@ 'field.main': 'id' }) this.search() this.getCityTree() }, methods: { changeProvince (e) { this.citys = [] this.searchForm.cityId=null this.areas.forEach(item => { if (item.id === this.searchForm.provinceId) { this.citys = item.childAreasList || [] } }) this.search() }, gourl (url) { if (url) { window.open(url) } }, dele(id) { this.$confirm('æ¤æä½å°æ°¸ä¹ å é¤è¯¥æ°æ®, æ¯å¦ç»§ç»?', 'æç¤º', { confirmButtonText: 'ç¡®å®', cancelButtonText: 'åæ¶', type: 'warning' }).then(async () => { let res = await deleteById(id) const res = await deleteById(id) this.search() this.$message.success('å 餿å') }).catch(() => { }); }) }, async getCityTree () { this.areas = await findTreeList({}) } } } company/src/views/business/riskReminder.vue
@@ -3,23 +3,23 @@ <div class="tx_item"> <div class="tx_item_head"> <span>夿¬¡åºé©æé</span> <el-switch active-value="1" inactive-value="0" v-model="form.riskTimesOpen"></el-switch> <el-switch :active-value="'1'" :inactive-value="'0'" v-model="form.riskTimesOpen"></el-switch> </div> <div class="tx_item_content"> <span>è§å设置ï¼åä¸äººä¸å¹´å æ¥æ¡</span> <el-input-number style="margin: 0 15px;" v-model="form.riskTimesReportTimes" :min="0"></el-input-number> <el-input-number style="width: 100px; min-width: 100px;margin: 0 15px;" :disabled="form.riskTimesOpen === '0'" v-model="form.riskTimesReportTimes" :min="0"></el-input-number> <span>次å以ä¸ï¼è¿è¡æéã</span> </div> </div> <div class="tx_item"> <div class="tx_item_head"> <span>çä¼¼é夿¥æ¡æé</span> <el-switch active-value="1" inactive-value="0" v-model="form.riskRepeatReportOpen"></el-switch> <el-switch :active-value="'1'" :inactive-value="'0'" v-model="form.riskRepeatReportOpen"></el-switch> </div> <div class="tx_item_content"> <span>è§å设置ï¼</span> <el-input-number style="margin: 0 15px;" v-model="form.riskRepeatReportTime" :min="0"></el-input-number> <el-select v-model="form.riskRepeatReportTimeUnit" style="width: 100px; margin-right: 15px;" placeholder="è¯·éæ©"> <el-input-number style="width: 100px; min-width: 100px;margin: 0 15px;" v-model="form.riskRepeatReportTime" :disabled="form.riskRepeatReportOpen === '0'" :min="0"></el-input-number> <el-select v-model="form.riskRepeatReportTimeUnit" :disabled="form.riskRepeatReportOpen === '0'" style="width: 90px; min-width: 90px; margin-right: 15px;" placeholder="è¯·éæ©"> <el-option label="å°æ¶" value="1"></el-option> <el-option label="天" value="2"></el-option> </el-select> @@ -29,23 +29,23 @@ <div class="tx_item"> <div class="tx_item_head"> <span>ç´¢èµæ¬¡æ°è¿å¤æé</span> <el-switch active-value="1" inactive-value="0" v-model="form.riskClaimTimesOpen"></el-switch> <el-switch :active-value="'1'" :inactive-value="'0'" v-model="form.riskClaimTimesOpen"></el-switch> </div> <div class="tx_item_content"> <span>è§å设置ï¼åä¸ä¸ªä¿å1å¹´å ç´¢èµæ¬¡æ°è¶ è¿</span> <el-input-number style="margin: 0 15px;" v-model="form.riskClaimTimes" :min="0"></el-input-number> <el-input-number style="width: 100px; min-width: 100px;margin: 0 15px;" v-model="form.riskClaimTimes" :disabled="form.riskClaimTimesOpen === '0'" :min="0"></el-input-number> <span>次ï¼è¿è¡æéã</span> </div> </div> <div class="tx_item"> <div class="tx_item_head"> <span>æ°åå·¥åºé©æé</span> <el-switch active-value="1" inactive-value="0" v-model="form.riskNewMemberOpen"></el-switch> <el-switch :active-value="'1'" :inactive-value="'0'" v-model="form.riskNewMemberOpen"></el-switch> </div> <div class="tx_item_content"> <span>è§å设置ï¼ä¿åçæç</span> <el-input-number style="margin: 0 15px;" v-model="form.riskNewMemberTime" :min="0"></el-input-number> <el-select v-model="form.riskNewMemberTimeUnit" style="width: 100px; margin-right: 15px;" placeholder="è¯·éæ©"> <el-input-number style="width: 100px; min-width: 100px;margin: 0 15px;" v-model="form.riskNewMemberTime" :disabled="form.riskNewMemberOpen === '0'" :min="0"></el-input-number> <el-select v-model="form.riskNewMemberTimeUnit" style="width: 90px; min-width: 90px; margin-right: 15px;" :disabled="form.riskNewMemberOpen === '0'" placeholder="è¯·éæ©"> <el-option label="å°æ¶" value="1"></el-option> <el-option label="天" value="2"></el-option> </el-select> @@ -55,11 +55,12 @@ <div class="tx_item"> <div class="tx_item_head"> <span>ææè¯è®¾ç½®</span> <el-switch active-value="1" inactive-value="0" v-model="form.riskSensitiveWordsOpen"></el-switch> <el-switch :active-value="'1'" :inactive-value="'0'" v-model="form.riskSensitiveWordsOpen"></el-switch> </div> <div class="tx_item_content"> <span>è§å设置ï¼</span> <el-input :disabled="form.riskSensitiveWordsOpen === '0'" type="textarea" :rows="5" placeholder="æ¯ä¸ªææè¯è¯·ç¨â;âåéï¼å¦éª¨æ;é«ç©º;å¤é´;交éäºæ ;æ¬è¿çå ¶ä»å符" @@ -76,7 +77,7 @@ <script> import { updRiskConfig, getRiskConfig } from '@/api/business/settleRisk' export default { name: "riskReminder", name: 'riskReminder', data() { return { form: { @@ -101,10 +102,11 @@ }, methods: { async getRiskConfigs() { let res = await getRiskConfig() const res = await getRiskConfig() for (const key in this.form) { this.form[key] = res[key] } console.log(this.form) }, submit() { this.loading = true @@ -138,6 +140,7 @@ } .tx_item { width: 49%; //min-width: 500px; padding: 30px 20px; box-sizing: border-box; background-color: #ffffff; company/src/views/business/settleClaims.vue
@@ -3,13 +3,13 @@ <!-- æç´¢è¡¨å --> <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline> <el-form-item label="åå·¥å§å" prop="memberName"> <el-input v-model="searchForm.memberName" placeholder="请è¾å ¥" @keypress.enter.native="search"></el-input> <el-input v-model="searchForm.memberName" clearable placeholder="请è¾å ¥" @keypress.enter.native="search"></el-input> </el-form-item> <el-form-item label="身份è¯" prop="memberIdcardNo"> <el-input v-model="searchForm.memberIdcardNo" placeholder="请è¾å ¥" @keypress.enter.native="search"></el-input> <el-input v-model="searchForm.memberIdcardNo" clearable placeholder="请è¾å ¥" @keypress.enter.native="search"></el-input> </el-form-item> <el-form-item label="æ¥æ¡åä½" prop="companyId" v-if="userInfo.type === 0"> <el-select v-model="searchForm.companyId" filterable placeholder="è¯·éæ©" @change="search"> <el-select v-model="searchForm.companyId" clearable filterable placeholder="è¯·éæ©" @change="search"> <el-option v-for="item in companyList" :key="item.id" @@ -19,7 +19,7 @@ </el-select> </el-form-item> <el-form-item label="ä¿é©æ¹æ¡" prop="baseSolutionId"> <el-select v-model="searchForm.baseSolutionId" filterable placeholder="è¯·éæ©" @change="search"> <el-select v-model="searchForm.baseSolutionId" clearable filterable placeholder="è¯·éæ©" @change="search"> <el-option v-for="item in solutionList" :key="item.baseId" @@ -29,7 +29,7 @@ </el-select> </el-form-item> <el-form-item label="æ¡ä»¶ç¶æ" prop="status"> <el-select v-model="searchForm.status" placeholder="è¯·éæ©" @change="search"> <el-select v-model="searchForm.status" clearable placeholder="è¯·éæ©" @change="search"> <el-option label="æåä¸" value="0"></el-option> <el-option label="å·²æ¥æ¡" value="1"></el-option> <el-option label="å¾ ç«æ¡" value="2"></el-option> @@ -48,7 +48,7 @@ </el-select> </el-form-item> <el-form-item label="æ´¾é£åä½" prop="duName"> <el-input v-model="searchForm.duName" placeholder="请è¾å ¥" @keypress.enter.native="search"></el-input> <el-input v-model="searchForm.duName" placeholder="请è¾å ¥" clearable @keypress.enter.native="search"></el-input> </el-form-item> <section> <el-button type="primary" @click="search">æç´¢</el-button> @@ -79,6 +79,9 @@ <el-table-column prop="duName" label="æ´¾é£åä½" min-width="100px"></el-table-column> <el-table-column prop="worktypeName" label="æå±å·¥ç§" min-width="100px"></el-table-column> <el-table-column prop="baoxianStartTime" label="ä¿é©çæèµ·æ" min-width="100px"></el-table-column> <el-table-column prop="isRisk" label="æ¯å¦é£é©æ¡ä»¶" min-width="100px"> <template slot-scope="{row}"> <span style="color: red" v-if="row.isRisk === 1">é£é©æ¡ä»¶</span></template> </el-table-column> <el-table-column prop="createDate" label="æ¥æ¡æ¶é´" min-width="100px"></el-table-column> <el-table-column v-if="containPermissions(['business:settleclaims:update', 'business:settleclaims:delete'])" log/web/error.2025-05-27.0.log
log/web/info.2025-05-27.0.log
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,37 @@ 2025-05-27 10:04:22.659 [main] INFO com.doumee.CompanyApplication - Starting CompanyApplication on DESKTOP-77EHGKJ with PID 31268 (D:\code\idea2023\git\yunyibao\server\company\target\classes started by T14 in D:\code\idea2023\git\yunyibao) 2025-05-27 10:04:22.668 [main] INFO com.doumee.CompanyApplication - The following profiles are active: dev 2025-05-27 10:04:26.676 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode! 2025-05-27 10:04:26.683 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Bootstrapping Spring Data Redis repositories in DEFAULT mode. 2025-05-27 10:04:27.098 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 355ms. Found 0 Redis repository interfaces. 2025-05-27 10:04:29.000 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'shiroCredentialsMatcher' of type [com.doumee.config.shiro.ShiroCredentialsMatcher] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 2025-05-27 10:04:29.066 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'spring.redis-org.springframework.boot.autoconfigure.data.redis.RedisProperties' of type [org.springframework.boot.autoconfigure.data.redis.RedisProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 2025-05-27 10:04:29.073 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.boot.autoconfigure.data.redis.LettuceConnectionConfiguration' of type [org.springframework.boot.autoconfigure.data.redis.LettuceConnectionConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 2025-05-27 10:04:29.453 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'lettuceClientResources' of type [io.lettuce.core.resource.DefaultClientResources] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 2025-05-27 10:04:29.667 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'redisConnectionFactory' of type [org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 2025-05-27 10:04:29.802 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'sessionRedisTemplate' of type [org.springframework.data.redis.core.RedisTemplate] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 2025-05-27 10:04:29.802 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'shiroCache' of type [com.doumee.config.shiro.ShiroCache] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 2025-05-27 10:04:29.805 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'shiroTokenManager' of type [com.doumee.config.shiro.ShiroTokenManager] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 2025-05-27 10:04:29.806 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'shiroSessionDAO' of type [com.doumee.config.shiro.ShiroSessionDAO] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 2025-05-27 10:04:29.816 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'shiroCacheManager' of type [com.doumee.config.shiro.ShiroCacheManager] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 2025-05-27 10:04:29.884 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'shiroRealm' of type [com.doumee.config.shiro.ShiroRealm] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 2025-05-27 10:04:29.886 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'shiroConfig' of type [com.doumee.config.shiro.ShiroConfig$$EnhancerBySpringCGLIB$$49ba0da8] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 2025-05-27 10:04:31.470 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'sessionManager' of type [com.doumee.config.shiro.ShiroSessionManager] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 2025-05-27 10:04:31.474 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'shiroCache' of type [com.doumee.config.shiro.ShiroCache] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 2025-05-27 10:04:31.475 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'securityManager' of type [org.apache.shiro.web.mgt.DefaultWebSecurityManager] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 2025-05-27 10:04:31.633 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'authorizationAttributeSourceAdvisor' of type [org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 2025-05-27 10:04:32.705 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 10031 (http) 2025-05-27 10:04:32.736 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-10031"] 2025-05-27 10:04:32.737 [main] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat] 2025-05-27 10:04:32.738 [main] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.31] 2025-05-27 10:04:33.139 [main] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext 2025-05-27 10:04:33.139 [main] INFO org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 10281 ms 2025-05-27 10:04:40.541 [main] INFO com.alibaba.druid.pool.DruidDataSource - {dataSource-1} inited 2025-05-27 10:04:58.579 [main] INFO o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Initializing ExecutorService 'applicationTaskExecutor' 2025-05-27 10:05:05.599 [main] WARN s.d.s.r.operation.OperationImplicitParameterReader - Unable to interpret the implicit parameter configuration with dataType: Integer, dataTypeClass: class java.lang.Void 2025-05-27 10:05:07.134 [main] WARN s.d.s.r.operation.OperationImplicitParameterReader - Unable to interpret the implicit parameter configuration with dataType: Integer, dataTypeClass: class java.lang.Void 2025-05-27 10:05:09.344 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-10031"] 2025-05-27 10:05:09.488 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port(s): 10031 (http) with context path '' 2025-05-27 10:05:09.518 [main] INFO com.doumee.CompanyApplication - Started CompanyApplication in 49.121 seconds (JVM running for 56.066) 2025-05-27 10:06:37.703 [SpringContextShutdownHook] INFO o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Shutting down ExecutorService 'applicationTaskExecutor' 2025-05-27 10:06:37.730 [SpringContextShutdownHook] INFO com.alibaba.druid.pool.DruidDataSource - {dataSource-1} closing ... 2025-05-27 10:06:37.737 [SpringContextShutdownHook] INFO com.alibaba.druid.pool.DruidDataSource - {dataSource-1} closed server/service/src/main/java/com/doumee/service/business/impl/LabelsServiceImpl.java
@@ -34,7 +34,6 @@ @Autowired private LabelsMapper labelsMapper; @Override public Integer create(Labels labels) { LoginUserInfo user= (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();