diff --git a/project/dv/apps/AppPdDv.vue b/project/dv/apps/AppPdDv.vue index a6967086..b5e431cc 100644 --- a/project/dv/apps/AppPdDv.vue +++ b/project/dv/apps/AppPdDv.vue @@ -14,21 +14,20 @@

居民好友

- 9 - + {{ residentInfo.customerTotal || 0 }}

昨日新增

- 9 - + {{ residentInfo.addCustomerCount || 0 }} +

昨日流失

- 9 + {{ residentInfo.removeCustomerCount || 0 }}
@@ -101,11 +100,11 @@

单聊会话

-

279

+

{{ userChatNumber.chatCnt }}

-

单聊会话

-

279

+

单聊消息

+

{{ userChatNumber.messageCnt }}

@@ -115,16 +114,16 @@
群聊统计
-

单聊会话

-

279

+

活跃群聊

+

{{ groupChatNumber.chatHasMsg }}

-

单聊会话

-

279

+

活跃群成员

+

{{ groupChatNumber.memberHasMsg }}

-

单聊会话

-

279

+

群聊消息

+

{{ groupChatNumber.msgTotal }}

@@ -136,7 +135,7 @@
- +
@@ -157,23 +156,23 @@
网格信息
-
"星"网格
+
{{ girdInfo['网格名称'] }}
-

925

+

{{ girdInfo['微网格长'] || 0 }}

微网格长

-

925

-

微网格长

+

{{ girdInfo['居民群'] || 0 }}

+

居民群

-

925

-

微网格长

+

{{ girdInfo['群成员'] || 0 }}

+

群成员

-

925

-

微网格长

+

{{ girdInfo['居民好友'] || 0 }}

+

居民好友

@@ -186,10 +185,10 @@ 群人数
-
- XX网格居民群 - 王磊 - 150 +
+ {{ item.name }} + {{ item.ownerName }} + {{ item.personCount }}
@@ -244,35 +243,25 @@ leftIndex: 0, rightIndex: 0, dlIndex: 0, - qlIndex: 0 + qlIndex: 0, + currGirdName: '', + girdInfo: {}, + gridList: [], + userChatNumber: {}, + residentInfo: {}, + groupChatNumber: {} } }, + created () { + this.getInfo() + this.getGridInfo() + }, + mounted () { this.$nextTick(() => { setTimeout(() => { - this.initLineChart('.chart1') - this.initLineChart('.chart2') - this.initBarChart('.chart4', [ - {offset: 0, color: 'rgba(66, 255, 254, 1)'}, - {offset: 1, color: 'rgba(37, 255, 246, 0.2)'} - ]) - this.initBarChart('.chart3', [ - {offset: 0, color: 'rgba(66, 187, 255, 1)'}, - {offset: 1, color: 'rgba(37, 143, 255, 0.2)'} - ]) - this.initBarChart('.chart5', [ - {offset: 0, color: 'rgba(66, 255, 254, 1)'}, - {offset: 1, color: 'rgba(66, 255, 254, 0.2)'} - ]) - this.initBarChart('.chart6', [ - {offset: 0, color: 'rgba(255, 190, 66, 1)'}, - {offset: 1, color: 'rgba(255, 190, 66, 0.2)'} - ]) - this.initBarChart('.chart7', [ - {offset: 0, color: 'rgba(66, 187, 255, 1)'}, - {offset: 1, color: 'rgba(37, 143, 255, 0.2)'} - ]) + // this.initLineChart('.chart2') }, 500) if (document.querySelector('.AiDvWrapper .viewPanel')) { @@ -282,15 +271,103 @@ }, methods: { - initLineChart (el) { + onNodeClick (e) { + this.getGridInfo(e.id) + }, + + getInfo () { + this.instance.post(`/app/wxgroupstatistic/getCustommerNumber`).then(res => { + if (res.code === 0) { + this.residentInfo = res.data['居民统计'] + this.initLineChart('.chart1', { + x: res.data['居民好友数'].map(v => v.month), + value: res.data['居民好友数'].map(v => v.totalNumber), + name: '居民好友' + }) + } + }) + this.instance.post(`/app/wxgroupstatistic/getGroupNumber`).then(res => { + if (res.code === 0) { + + } + }) + this.instance.post(`/app/wxgroupstatistic/getTagNumber`).then(res => { + if (res.code === 0) { + + } + }) + this.instance.post(`/app/wxgroupstatistic/getUserChatNumber`).then(res => { + if (res.code === 0) { + this.userChatNumber = res.data['单聊总和'] + this.initBarChart('.chart4', { + x: res.data['条形统计'].map(v => v.dateDay), + value: res.data['条形统计'].map(v => v.messageCnt), + name: '单聊消息' + }, [ + {offset: 0, color: 'rgba(66, 255, 254, 1)'}, + {offset: 1, color: 'rgba(37, 255, 246, 0.2)'} + ]) + this.initBarChart('.chart3', { + x: res.data['条形统计'].map(v => v.dateDay), + value: res.data['条形统计'].map(v => v.chatCnt), + name: '单聊会话' + }, [ + {offset: 0, color: 'rgba(66, 187, 255, 1)'}, + {offset: 1, color: 'rgba(37, 143, 255, 0.2)'} + ]) + } + }) + this.instance.post(`/app/wxgroupstatistic/getgroupChatNumber`).then(res => { + this.groupChatNumber = res.data['群聊总和'] + if (res.code === 0) { + this.initBarChart('.chart5', { + x: res.data['条形统计'].map(v => v.dateDay), + value: res.data['条形统计'].map(v => v.chatHasMsg), + name: '活跃群聊' + }, [ + {offset: 0, color: 'rgba(66, 255, 254, 1)'}, + {offset: 1, color: 'rgba(66, 255, 254, 0.2)'} + ]) + this.initBarChart('.chart6', { + x: res.data['条形统计'].map(v => v.dateDay), + value: res.data['条形统计'].map(v => v.memberHasMsg), + name: '活跃群成员' + }, [ + {offset: 0, color: 'rgba(255, 190, 66, 1)'}, + {offset: 1, color: 'rgba(255, 190, 66, 0.2)'} + ]) + this.initBarChart('.chart7', { + x: res.data['条形统计'].map(v => v.dateDay), + value: res.data['条形统计'].map(v => v.msgTotal), + name: '群聊消息' + }, [ + {offset: 0, color: 'rgba(66, 187, 255, 1)'}, + {offset: 1, color: 'rgba(37, 143, 255, 0.2)'} + ]) + } + }) + }, + + getGridInfo (id) { + this.instance.post(`/app/appgirdinfo/piduGirdCount?girdId=${id || ''}`).then(res => { + if (res.code === 0) { + this.girdInfo = res.data + } + }) + this.instance.post(`/app/wxcp/wxgroup/listBtGridId?size=1000&girdId=${id || ''}`).then(res => { + if (res.code === 0) { + this.gridList = res.data.records + } + }) + }, + + initLineChart (el, data) { var chartDom = document.querySelector(el) var myChart = echarts.init(chartDom) - var option - - option = { + var option = { xAxis: { type: 'category', - data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'], + data: data.x, axisTick: { show: false }, @@ -346,13 +423,14 @@ }, series: [ { - data: [820, 932, 901, 934, 1290, 1330, 1320], + data: data.value, type: 'line', label: { show: false, position: 'top', color: '#fff' }, + name: data.name, areaStyle: {}, barWidth: 16, barCategoryGap: 40, @@ -364,7 +442,7 @@ option && myChart.setOption(option) }, - initBarChart (el, color) { + initBarChart (el, data, color) { var chartDom = document.querySelector(el) var myChart = echarts.init(chartDom) var option @@ -372,7 +450,7 @@ option = { xAxis: { type: 'category', - data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'], + data: data.x, axisTick: { show: false }, @@ -425,7 +503,8 @@ }, series: [ { - data: [820, 932, 901, 934, 1290, 1330, 1320], + data: data.value, + name: data.name, type: 'bar', label: { show: false, @@ -453,6 +532,20 @@ background: url(https://cdn.cunwuyun.cn/dvcp/dv/pddv/bg.png); background-size: 100% 100%; + ::-webkit-scrollbar { + width: 6px; + } + + ::-webkit-scrollbar-track { + border-radius: 5px; + background: rgba(93, 163, 255, 0.1); + } + + ::-webkit-scrollbar-thumb { + border-radius: 5px; + background: rgba(173, 208, 255, 0.5); + } + * { box-sizing: border-box; } @@ -630,6 +723,9 @@ padding: 4px 0 0 34px; color: #fff; font-size: 16px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; background: url(https://cdn.cunwuyun.cn/dvcp/dv/pddv/title.png); background-size: 100% 100%; } @@ -955,6 +1051,9 @@ } .item-table__body { + height: 280px; + overflow-y: overlay; + .item-table__item { display: flex; align-items: center; @@ -968,6 +1067,12 @@ &:nth-of-type(2n - 1) { background: transparent; } + + span { + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + } } } } diff --git a/project/dv/apps/components/AiGrid.vue b/project/dv/apps/components/AiGrid.vue index d8488028..d66dd3ad 100644 --- a/project/dv/apps/components/AiGrid.vue +++ b/project/dv/apps/components/AiGrid.vue @@ -9,9 +9,11 @@ :props="props" node-key="id" show-collapsable - default-expand-all show-node-num + current-lable-class-name="aigrid-active" + :default-expanded-keys="defaultExpandedKeys" ref="VueOkrTree" + @node-click="onNodeClick" :data="treeData">
@@ -36,9 +38,10 @@ scale: 1, x: '50%', y: '50%', + defaultExpandedKeys: [], treeData: [], props: { - label: 'name', + label: 'girdName', children: 'children' } } @@ -101,19 +104,34 @@ this.isMove = false }, + onNodeClick (e) { + this.$emit('nodeClick', e) + }, + getPartyOrg () { - this.instance.post('/app/partyOrganization/queryPartyOrganizationServiceList').then(res => { + this.instance.post('/app/appgirdinfo/listAll3').then(res => { if (res.code === 0) { - this.treeData = res.data.filter(e => !e.parentId) - this.treeData.map(p => this.addChild(p, res.data.map(v => { + this.treeData = res.data.filter(e => !e.parentGirdId) + const parentGirdId = this.treeData[0].id + const arr = res.data.filter(v => { + return v.parentGirdId === parentGirdId || !v.parentGirdId + }) + this.treeData.map(p => this.addChild(p, arr.map(v => { + if (v.id === parentGirdId) { + this.defaultExpandedKeys.push(v.id) + } + return { ...v, - name: v.name.substr(0, 12) + girdName: v.girdName.substr(0, 8) } - }), {parent: 'parentId'})) + }), { + parent: 'parentGirdId' + })) this.$nextTick(() => { this.autoScale() + this.$refs.VueOkrTree.setCurrentKey(parentGirdId) }) } }) @@ -150,6 +168,10 @@ height: 300%; } + .aigrid-active { + background: linear-gradient(180deg, #42C6CE 0%, #307598 100%); + } + ::v-deep .org-chart-container { color: #FFFFFF; font-size: 16px; @@ -187,19 +209,51 @@ .org-chart-node-label { width: 40px; - height: 330px; + height: 230px; margin-right: 15px; padding: 0 0; - border: 1px solid; - background: linear-gradient(180deg, rgba(69,210,218,0.2500) 0%, rgba(69,210,218,0.1000) 100%)!important; - border-image: linear-gradient(180deg, rgba(5, 185, 203, 1), rgba(73, 214, 207, 1)) 1 1!important; .org-chart-node-label-inner { + width: 40px!important; + height: 230px!important; + border: 1px solid; + background: linear-gradient(180deg, rgba(69,210,218,0.2500) 0%, rgba(69,210,218,0.1000) 100%)!important; + border-image: linear-gradient(180deg, rgba(5, 185, 203, 1), rgba(73, 214, 207, 1)) 1 1!important; line-height: 1.3; padding: 10px 4px; text-align: center; font-size: 18px; color: rgba(255, 255, 255, 0.8); + + &.aigrid-active { + background: linear-gradient(180deg, #42C6CE 0%, #307598 100%)!important; + } + } + + &.is-root-label { + width: auto!important; + min-width: 240px; + height: 40px!important; + line-height: 40px!important; + min-height: 40px!important; + text-align: center; + + .org-chart-node-label-inner { + padding: 0 30px!important; + color: #fff!important; + width: auto!important; + min-width: 240px; + height: 40px!important; + line-height: 40px!important; + min-height: 40px!important; + text-align: center; + background: linear-gradient(180deg, rgba(69,210,218,0.2500) 0%, rgba(69,210,218,0.1000) 100%)!important; + border-image: linear-gradient(180deg, rgba(5, 185, 203, 1), rgba(73, 214, 207, 1)) 1 1!important; + + &.aigrid-active { + background: linear-gradient(180deg, #42C6CE 0%, #307598 100%)!important; + } + } } } @@ -210,21 +264,6 @@ } } - .is-root-label { - width: auto!important; - height: 40px!important; - line-height: 40px!important; - min-height: 40px!important; - text-align: center; - background: linear-gradient(180deg, rgba(69,210,218,0.2500) 0%, rgba(69,210,218,0.1000) 100%)!important; - border-image: linear-gradient(180deg, rgba(5, 185, 203, 1), rgba(73, 214, 207, 1)) 1 1!important; - - .org-chart-node-label-inner { - padding: 0 30px!important; - color: #fff!important; - } - } - .org-chart-node-children:before, .org-chart-node:after, .org-chart-node:last-child:before, .org-chart-node.is-leaf:before { border-radius: 0;