From da796521cf6efd974c3d6d965cba99a0d099fa86 Mon Sep 17 00:00:00 2001 From: mengxiaolong Date: Fri, 30 Oct 2020 17:40:43 +0800 Subject: [PATCH 01/23] =?UTF-8?q?=E4=B8=AA=E9=99=A9=E4=B8=9A=E7=BB=A9?= =?UTF-8?q?=E6=8E=92=E8=A1=8C=E4=BC=98=E5=8C=96=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../institutionalPerform/Organization.vue | 146 ++++ .../ebiz/institutionalPerform/Summarizing.vue | 146 ++++ .../ebiz/institutionalPerform/UnderOffice.vue | 635 +++++------------- 3 files changed, 463 insertions(+), 464 deletions(-) create mode 100644 src/views/ebiz/institutionalPerform/Organization.vue create mode 100644 src/views/ebiz/institutionalPerform/Summarizing.vue diff --git a/src/views/ebiz/institutionalPerform/Organization.vue b/src/views/ebiz/institutionalPerform/Organization.vue new file mode 100644 index 000000000..05b5d7986 --- /dev/null +++ b/src/views/ebiz/institutionalPerform/Organization.vue @@ -0,0 +1,146 @@ + + + + + diff --git a/src/views/ebiz/institutionalPerform/Summarizing.vue b/src/views/ebiz/institutionalPerform/Summarizing.vue new file mode 100644 index 000000000..6e3950974 --- /dev/null +++ b/src/views/ebiz/institutionalPerform/Summarizing.vue @@ -0,0 +1,146 @@ + + + + + diff --git a/src/views/ebiz/institutionalPerform/UnderOffice.vue b/src/views/ebiz/institutionalPerform/UnderOffice.vue index 78c0dee94..02673b0c4 100644 --- a/src/views/ebiz/institutionalPerform/UnderOffice.vue +++ b/src/views/ebiz/institutionalPerform/UnderOffice.vue @@ -1,495 +1,202 @@ - From 9a50b569552d0fe8bc3c018f1f3a7fcb63644aac Mon Sep 17 00:00:00 2001 From: mengxiaolong Date: Mon, 2 Nov 2020 10:55:41 +0800 Subject: [PATCH 02/23] =?UTF-8?q?=E7=AD=9B=E9=80=89=E6=9D=A1=E4=BB=B6?= =?UTF-8?q?=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ebiz/institutionalPerform/UnderOffice.vue | 115 +++++++++++++++--- 1 file changed, 97 insertions(+), 18 deletions(-) diff --git a/src/views/ebiz/institutionalPerform/UnderOffice.vue b/src/views/ebiz/institutionalPerform/UnderOffice.vue index 02673b0c4..0a0a14918 100644 --- a/src/views/ebiz/institutionalPerform/UnderOffice.vue +++ b/src/views/ebiz/institutionalPerform/UnderOffice.vue @@ -15,7 +15,7 @@
- 10-30 18:16 + {{ timeCondition }}
@@ -23,18 +23,20 @@
机构名称: - - 全国 - - - - 全部 - - - - 全部 + + {{ provinceName }} +
@@ -53,13 +55,21 @@ type }} - + - + - - - + + + + + + + + + + +
@@ -69,7 +79,9 @@ import point from '@/assets/images/ebiz/point.png' import { Popup, Tab, Tabs, DatetimePicker, Picker } from 'vant' import Summarizing from './Summarizing.vue' import Organization from './Organization.vue' +import dateUtil from '@/assets/js/utils/date-utils.js' export default { + name: 'UnderOffice', components: { [Popup.name]: Popup, [Tab.name]: Tab, @@ -81,23 +93,90 @@ export default { }, data() { return { + timeCondition: dateUtil.formatDate(new Date(), 'MM-dd HH:mm'), currentDate: new Date(), typeIndex: 0, dataTypes: ['标保', '活动人力', '产品'], active: 0, isSideBarShow: false, isTimeBarShow: false, - isOrganizationShow: false, + isProvinceConditionShow: false, + isCityConditionShow: false, + isAreaConditionShow: false, point, - columns: ['全国'] + provinceName: '全国', + cityName: '全部', + areaName: '全部', + provinceCode: 0, + provinceObjs: [ + { id: 1, name: '全国' }, + { id: 2, name: '北京' }, + { id: 3, name: '天津' } + ], + cityCode: 0, + cityObjs: [ + { + pid: 2, + name: '朝阳区' + }, + { + pid: 3, + name: '和平区' + } + ] } }, computed: { + isMoreConditionShow() { + return this.provinceName !== '全国' + }, + province() { + const name = [] + this.provinceObjs.forEach(item => { + name.push(item.name) + }) + return name + }, + city() { + const city = ['全部'] + this.cityObjs.forEach(item => { + if (item.pid === this.provinceCode) { + city.push(item.name) + } + }) + return city + }, typeName() { return this.dataTypes[this.typeIndex] } }, + created() { + this.initData() + }, methods: { + initData() {}, + // 筛选省份确认事件 + onProvinceConditionConfirm(data) { + this.isProvinceConditionShow = false + let province = this.provinceObjs.find(item => item.name === data) + this.provinceCode = province.id + this.provinceName = data + }, + // 筛选城市确认事件 + onCityConditionConfirm(data) { + this.isCityConditionShow = false + this.cityName = data + }, + // 筛选地区确认事件 + onAreaConditionConfirm(data) { + console.log(data) + }, + // 筛选时间确认事件 + onTimeConditionConfirm(time) { + this.isTimeBarShow = false + this.timeCondition = dateUtil.formatDate(time, 'MM-dd HH:mm') + }, + // 切换数据类型事件 changeDataType(index) { this.typeIndex = index this.isSideBarShow = false From 9c30062752f933b33b503e65169b579b63167af1 Mon Sep 17 00:00:00 2001 From: mengxiaolong Date: Wed, 4 Nov 2020 18:35:05 +0800 Subject: [PATCH 03/23] =?UTF-8?q?=E4=B8=AA=E9=99=A9=E4=B8=9A=E7=BB=A9?= =?UTF-8?q?=E6=8E=92=E8=A1=8C=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/ebiz/branchOffice/branchOffice.js | 18 + src/assets/js/utils/request.js | 6 +- .../institutionalPerform/Organization.vue | 221 ++++++--- .../ebiz/institutionalPerform/Summarizing.vue | 109 ++++- .../ebiz/institutionalPerform/UnderOffice.vue | 419 ++++++++++++++++-- 5 files changed, 637 insertions(+), 136 deletions(-) diff --git a/src/api/ebiz/branchOffice/branchOffice.js b/src/api/ebiz/branchOffice/branchOffice.js index 4df4c7fb2..4e77288b9 100644 --- a/src/api/ebiz/branchOffice/branchOffice.js +++ b/src/api/ebiz/branchOffice/branchOffice.js @@ -9,3 +9,21 @@ export function branchOfficeApi(data) { data }) } + +// 个险业绩排行优化: 机构查询 +export function getComList(data) { + return request({ + url: getUrl('/data/performance/getComList', 1), + method: 'post', + data + }) +} + +// 个险业绩排行优化: 业绩查询 +export function getComPerformance(data) { + return request({ + url: getUrl('/data/performance/getComPerformance', 1), + method: 'post', + data + }) +} diff --git a/src/assets/js/utils/request.js b/src/assets/js/utils/request.js index 5949232a7..fdb1d3290 100644 --- a/src/assets/js/utils/request.js +++ b/src/assets/js/utils/request.js @@ -87,6 +87,9 @@ let renewalManage = [ '/renewal/getRenewalList' //续期列表查询 ] +// 个险业绩排行优化 +let performanceRanking = ['/data/performance/getComList', '/data/performance/getComPerformance'] + let whiteList = [ '/customer/agent/getCustomersList', ...proposal, @@ -97,7 +100,8 @@ let whiteList = [ ...manpower, ...productStore, ...preserve, - ...renewalManage + ...renewalManage, + ...performanceRanking ] // 创建axios实例 diff --git a/src/views/ebiz/institutionalPerform/Organization.vue b/src/views/ebiz/institutionalPerform/Organization.vue index 05b5d7986..7b2a5977a 100644 --- a/src/views/ebiz/institutionalPerform/Organization.vue +++ b/src/views/ebiz/institutionalPerform/Organization.vue @@ -1,75 +1,27 @@ @@ -81,8 +33,137 @@ export default { [Tab.name]: Tab, [Tabs.name]: Tabs }, + props: { + dataType: { + // 0: 业绩, 1: 人力, 2: 产品 + type: Number, + default: 0 + }, + timeType: { + type: Number, + default: 0 + } + }, + computed: { + dataTypeName() { + switch (this.dataType) { + case 0: + case 1: + return '机构' + case 2: + return '产品' + default: + return '-' + } + }, + // 获取需要显示的列名称 + columns() { + if (this.dataType === 0) { + switch (this.timeType) { + case 0: + return this.tableColumns[this.dataType][0] + case 1: + return this.tableColumns[this.dataType][1] + case 2: + if (this.active <= 1) { + return this.tableColumns[this.dataType][2] + } else { + return this.tableColumns[this.dataType][3] + } + default: + return [] + } + } else { + return this.tableColumns[this.dataType] + } + }, + needGettingKey() { + let keys = [] + this.columns.forEach(element => { + keys.push(element.key) + }) + return keys + } + }, data() { - return { active: 0 } + return { + active: 0, + tableColumns: [ + [ + [ + { name: '机构', key: 'name' }, + { name: '预收标保', key: 'ysbb' }, + { name: '预收件数', key: 'ysjs' }, + { name: '承保标保', key: 'bzbf' }, + { name: '承保件数', key: 'cbjs' } + ], + [ + { name: '机构', key: 'name' }, + { name: '预收标保', key: 'ysbb' }, + { name: '预收件数', key: 'ysjs' }, + { name: '承保标保', key: 'bzbf' }, + { name: '承保件数', key: 'cbjs' }, + { name: '承保同比', key: 'cbtb' }, + { name: '承保环比', key: 'cbhb' } + ], + [ + { name: '机构', key: 'name' }, + { name: '承保标保', key: 'bzbf' }, + { name: '标保目标', key: 'bbmb' }, + { name: '标保目标达成率', key: 'bbmbdcl' }, + { name: '差距', key: 'cj' } + ], + [ + { name: '机构', key: 'name' }, + { name: '承保标保', key: 'bzbf' } + ] + ], + [ + { name: '机构', key: 'name' }, + { name: '合格人力', key: 'hgrl' }, + { name: '桂冠人力', key: 'ggrl' }, + { name: '桂冠正式会员', key: 'gghy' }, + { name: '双冠人力', key: 'sgrl' }, + { name: '新增人力', key: 'xzrl' } + ], + [ + { name: '机构', key: 'name' }, + { name: '总保费', key: 'zbf' }, + { name: '承保标保', key: 'bzbf' }, + { name: '承保件数', key: 'cbjs' }, + { name: '保费占比', key: 'bfzb' } + ] + ], + values: [] + } + }, + methods: { + setTableData(data, type) { + switch (type) { + case 'prem': + this.values = data.list ? data.list : [] + break + case 'active': + this.values = data.listRL ? data.listRL : [] + break + case 'product': + this.values = data.productDTO ? data.productDTO : [] + break + } + } + }, + watch: { + active: { + handler(nv) { + this.$emit('updateQueryCom', nv) + }, + immediate: true + } + }, + filters: { + blankFilter(val) { + return val ? val : '-' + } } } @@ -118,7 +199,7 @@ $white: #fff; .myTable { text-align: center; - min-width: 160vw; + min-width: 180vw; border-top: $border; border-left: $border; border-right: $border; diff --git a/src/views/ebiz/institutionalPerform/Summarizing.vue b/src/views/ebiz/institutionalPerform/Summarizing.vue index 6e3950974..f4fa0d4bd 100644 --- a/src/views/ebiz/institutionalPerform/Summarizing.vue +++ b/src/views/ebiz/institutionalPerform/Summarizing.vue @@ -1,7 +1,7 @@ diff --git a/src/views/ebiz/institutionalPerform/Summarizing.vue b/src/views/ebiz/institutionalPerform/Summarizing.vue index 17c45f8c2..82bf30a8d 100644 --- a/src/views/ebiz/institutionalPerform/Summarizing.vue +++ b/src/views/ebiz/institutionalPerform/Summarizing.vue @@ -7,24 +7,24 @@
- + - - + + - - + + - - + + - - + +
机构业绩机构业绩 达成
预收标保{{ performance.ysbb | unitFilter(1) | blankFilter }}预收标保{{ performance.ysbb | unitFilter(1) | blankFilter }}
预收件数{{ performance.ysjs | unitFilter(2) | blankFilter }}预收件数{{ performance.ysjs | unitFilter(2) | blankFilter }}
承保标保{{ performance.bzbf | unitFilter(1) | blankFilter }}承保标保{{ performance.bzbf | unitFilter(1) | blankFilter }}
承保件数{{ performance.cbjs | unitFilter(2) | blankFilter }}承保件数{{ performance.cbjs | unitFilter(2) | blankFilter }}
@@ -36,28 +36,28 @@
- + - - + + - - + + - - + + - - + + - - + +
活动人力活动人力 达成(人)
合格人力{{ manpower.hgrl | blankFilter }}合格人力{{ manpower.hgrl | blankFilter }}
桂冠人力{{ manpower.ggrl | blankFilter }}桂冠人力{{ manpower.ggrl | blankFilter }}
桂冠正式会员{{ manpower.ggrl | blankFilter }}桂冠正式会员{{ manpower.ggrl | blankFilter }}
双冠人力{{ manpower.sgrl | blankFilter }}双冠人力{{ manpower.sgrl | blankFilter }}
新增人力{{ manpower.xzrl | blankFilter }}新增人力{{ manpower.xzrl | blankFilter }}
@@ -75,13 +75,13 @@ 保费占比(%) - {{ product.productName }} - {{ product.cbbb | blankFilter }} - {{ product.cbItems | blankFilter }} - {{ product.percent | blankFilter }} + {{ product.productName }} + {{ product.cbbb | blankFilter }} + {{ product.cbItems | blankFilter }} + {{ product.percent | blankFilter }} - 暂无数据 + 暂无数据 @@ -96,10 +96,6 @@ export default { typeIndex: { type: Number, default: 0 - }, - reset: { - type: Boolean, - default: false } }, data() { @@ -129,22 +125,20 @@ export default { }, watch: { typeIndex(nv) { - if (!this.reset) { - const scroll = { - behavior: 'smooth', - block: 'start' - } - switch (nv) { - case 0: - this.$refs.performance.scrollIntoView(scroll) - break - case 1: - this.$refs.manpower.scrollIntoView(scroll) - break - case 2: - this.$refs.production.scrollIntoView(scroll) - break - } + const scroll = { + behavior: 'smooth', + block: 'start' + } + switch (nv) { + case 0: + this.$refs.performance.scrollIntoView(scroll) + break + case 1: + this.$refs.manpower.scrollIntoView(scroll) + break + case 2: + this.$refs.production.scrollIntoView(scroll) + break } } }, @@ -169,7 +163,7 @@ export default { diff --git a/src/views/ebiz/institutionalPerform/UnderOffice.vue b/src/views/ebiz/institutionalPerform/UnderOffice.vue index b4c5cfff0..5286c4a7a 100644 --- a/src/views/ebiz/institutionalPerform/UnderOffice.vue +++ b/src/views/ebiz/institutionalPerform/UnderOffice.vue @@ -1,7 +1,7 @@