diff --git a/packages/bigscreen/dv/AppQxnDv.vue b/packages/bigscreen/dv/AppQxnDv.vue index fb961835..0f095ccf 100644 --- a/packages/bigscreen/dv/AppQxnDv.vue +++ b/packages/bigscreen/dv/AppQxnDv.vue @@ -13,7 +13,7 @@ {{ index + 1 }}

{{ item.gridName }}

- +
-
+

全部人员数

- 726,079 + {{ wjwqgkInfo['群人数'] ? wjwqgkInfo['群人数'] + wjwqgkInfo['添加好友数'] : 0 }} + +
+
+
+

群人数

+
+ {{ wjwqgkInfo['群人数'] }} + +
+
+
+

添加好友数

+
+ {{ wjwqgkInfo['添加好友数'] }} + +
+
+
+

昨日新增

+
+ {{ wjwqgkInfo['昨日新增'] }}
@@ -48,7 +69,7 @@
@@ -58,13 +79,13 @@

覆盖率

- +

群标签化率

- +
@@ -77,7 +98,7 @@
@@ -90,9 +111,9 @@

单位成员关系人数

@@ -103,7 +124,7 @@ @@ -113,31 +134,59 @@
-
+

分局数量

- 726,079 + {{ middleTotalInfo['分局数量'] }} + +
+
+
+

派出所

+
+ {{ middleTotalInfo['派出所数量'] }} + +
+
+
+

成员总数

+
+ {{ middleTotalInfo['成员总数'] }} + +
+
+
+

已激活

+
+ {{ middleTotalInfo['已激活'] }} + +
+
+
+

末激活

+
+ {{ middleTotalInfo['未激活'] }}
- +
民警人数 - 214 + {{ middleTotalInfo['民警'] }}
辅警人数 - 214 + {{ middleTotalInfo['辅警'] }}
其他 - 214 + {{ middleTotalInfo['成员总数'] ? middleTotalInfo['成员总数'] - middleTotalInfo['民警'] - middleTotalInfo['辅警'] : 0 }}
@@ -146,13 +195,19 @@

成员激活

- + +

日均活跃率

- + +
@@ -169,28 +224,55 @@
- +
-
-

群动态概况

+
+

群总数

- 726,079 + {{ wxGroupOverview['群数量'] }} + +
+
+
+

群主人数

+
+ {{ wxGroupOverview['群主人数'] }}
+
+

群人员活跃数(30天)

+
+ {{ wxGroupOverview['群人员活跃度(30天)'] }} + +
+
+
+

群消息数(30天)

+
+ {{ wxGroupOverview['群消息数(30天)'] }} + +
+

群活跃率(7日)

- + +
-

人员活跃(7日)

+

成员活跃(7日)

- + +
@@ -198,27 +280,30 @@

各单位群主及群分布

- - - + + + + + +
@@ -245,7 +330,6 @@ data () { return { isShowInfo: false, - value: '', lineData: [ { "name": "阿斯达", @@ -286,114 +370,20 @@ "v1": 98 } ], - tableData: [ - { - name: '姓名', - v1: '宗梦瑞', - v2: '宗梦瑞', - v3: '宗梦瑞', - v4: '宗梦瑞', - v5: '宗梦瑞', - v6: '宗梦瑞', - v7: '宗梦瑞', - v8: '宗梦瑞', - v9: '宗梦瑞', - v10: '宗梦瑞' - }, - { - name: '单位', - v1: '宗梦瑞', - v2: '宗梦瑞', - v3: '宗梦瑞', - v4: '宗梦瑞', - v5: '宗梦瑞', - v6: '宗梦瑞', - v7: '宗梦瑞', - v8: '宗梦瑞', - v9: '宗梦瑞', - v10: '宗梦瑞' - }, - { - name: '群数量', - v1: '12', - v2: '12', - v3: '123', - v4: '123', - v5: '123', - v6: '123', - v7: '2', - v8: '123', - v9: '123', - v10: '1234' - }, - { - name: '群人员', - v1: '12', - v2: '12', - v3: '123', - v4: '123', - v5: '123', - v6: '123', - v7: '2', - v8: '123', - v9: '123', - v10: '1234' - }, - { - name: '新增群人员', - v1: '12', - v2: '12', - v3: '123', - v4: '123', - v5: '123', - v6: '123', - v7: '2', - v8: '123', - v9: '123', - v10: '1234' - }, - { - name: '有消息的群', - v1: '12', - v2: '12', - v3: '123', - v4: '123', - v5: '123', - v6: '123', - v7: '2', - v8: '123', - v9: '123', - v10: '1234' - }, - { - name: '群聊人数', - v1: '12', - v2: '12', - v3: '123', - v4: '123', - v5: '123', - v6: '123', - v7: '2', - v8: '123', - v9: '123', - v10: '1234' - }, - { - name: '群消息总数', - v1: '12', - v2: '12', - v3: '123', - v4: '123', - v5: '123', - v6: '123', - v7: '2', - v8: '123', - v9: '123', - v10: '1234' - } - ], lineChart1: { - legend: { show: false }, + legend: { + icon: 'roundRect', + textStyle: { + color: "#fff" + } + }, + grid: { + left: '0%', + right: '0%', + bottom: '0%', + top: '35px', + containLabel: true + }, tooltip: { trigger: 'axis', backgroundColor: 'rgba(0, 102, 154, 0.65)', @@ -439,7 +429,18 @@ }) }, barChart8: { - legend: {show: false}, + legend: { + textStyle: { + color: "#fff" + } + }, + grid: { + left: '0%', + right: '0%', + bottom: '0%', + top: '40px', + containLabel: true + }, tooltip: { trigger: 'axis', backgroundColor: 'rgba(0, 102, 154, 0.65)', @@ -449,36 +450,63 @@ }, yAxis: { type: 'category', + axisLine: { lineStyle: { color: 'rgba(179, 223, 255, 0.4)' } }, axisLabel: {color: '#8FABBF', fontSize: 12}, axisTick: {show: false}, - axisLine: {show: false}, }, xAxis: { nameGap: 23, minInterval: 1, splitLine: {lineStyle: {color: 'rgba(108, 128, 151, 0.3)', type: 'dashed'}}, - axisLabel: {color: '#8FABBF', fontSize: 12}, + axisLabel: {color: '#8FABBF', fontSize: 12} }, - daemon: { - type: 'bar', barWidth: 10, barGap: '40%', - label: {show: true, position: 'insideRight', color: '#fff', fontSize: 14}, - showBackground: true, - backgroundStyle: { - color: 'rgba(123, 165, 255, .2)' + color: ['#65E0DE', '#E7C074', '#7AA3CC'], + series: [ + { + name: '民警', + type: 'bar', + barWidth: '15', + stack: 'one' }, - itemStyle: { - color: { - type: 'linear', x: 0, x2: 1, y: 0, y2: 0, - colorStops: [{offset: 0, color: 'rgba(0, 89, 84, 0)'}, {offset: 1, color: '#66E1DF'}] - } + { + name: '辅警', + barWidth: '15', + type: 'bar', + stack: 'one' + }, + { + name: '其他', + barWidth: '15', + type: 'bar', + stack: 'one' } - } + ] }, barChart: { + legend: { + icon: 'roundRect', + textStyle: { + color: "#fff" + } + }, + grid: { + left: '0%', + right: '0%', + bottom: '0%', + top: '35px', + containLabel: true + }, xAxis: { type: "category", axisTick: {show: false}, axisLine: { lineStyle: { color: 'rgba(179, 223, 255, 0.4)' } }, - axisLabel: {color: '#8FABBF', fontSize: 12}, + axisLabel: {color: '#8FABBF', fontSize: 10, rotate: 30}, + }, + tooltip: { + trigger: 'axis', + backgroundColor: 'rgba(0, 102, 154, 0.65)', + borderColor: 'rgba(0, 102, 154, 0.65)', + textStyle: { color: '#fff' }, + axisPointer: { type: 'cross' } }, yAxis: { nameGap: 23, @@ -500,8 +528,8 @@ y: 0, y2: 1, colorStops: [ - { offset: 0, color: 'rgba(51, 204, 204, 1)' }, - { offset: 1, color: 'rgba(31, 89, 89, 0.25)' } + { offset: 1, color: 'rgba(51, 204, 204, 1)' }, + { offset: 0, color: 'rgba(31, 89, 89, 0.25)' } ] }, { @@ -516,44 +544,26 @@ ] } ], - daemon: { - type: 'bar', - barWidth: 14, - barCategoryGap: 40, - itemStyle: {} - } + series: [ + { + name: '群主数量', + type: 'bar', + barWidth: '15' + }, + { + name: '群数量', + barWidth: '15', + type: 'bar' + } + ] }, - barData: [ - { - "name": "兴仁公安局", - "v1": 223, - "v11": 23 - }, - { - "name": "兴仁公安局1", - "v1": 22, - "v11": 29 - }, - { - "name": "兴仁公安局2", - "v1": 67, - "v11": 23 - }, - { - "name": "兴仁公安局3", - "v1": 98, - "v11": 23 - } - ], - pieData: [ - { value: 1048, name: 'Search Engine' }, - { value: 735, name: 'Direct' }, - { value: 580, name: 'Email' }, - { value: 484, name: 'Union Ads' }, - { value: 300, name: 'Video Ads' }] , pieChart: { tooltip: { - trigger: 'item' + trigger: 'item', + backgroundColor: 'rgba(0, 102, 154, 0.65)', + borderColor: 'rgba(0, 102, 154, 0.65)', + textStyle: { color: '#fff' }, + axisPointer: { type: 'cross' } }, legend: { show: false @@ -598,19 +608,149 @@ policeStationList: [], areaList: [], gridId: '', - gridParentId: 'gr3AePMwAAFWlqlNvfJboAWkRNbnA14A' + gridParentId: 'gr3AePMwAAFWlqlNvfJboAWkRNbnA14A', + middleTotalInfo: {}, + cyActivityInfo: {}, + wxGroupOverview: {}, + wjwqgkGMFBInfo: {}, + wjwqgkInfo: {}, + colConfigs: [ + { slot: 'index' }, + { prop: 'ownerName', label: '姓名', align: 'left', width: 58 }, + { prop: 'deptName', label: '单位', align: 'left' }, + { prop: 'groupCount', label: '群数量', align: 'center', width: 56 }, + { prop: 'groupMemberCount', label: '群人员', align: 'center', width: 56 }, + { prop: 'newMemberCount', label: '新增群人员', align: 'center', width: 80 }, + // { prop: 'hasMsgGroupCount', label: '有消息的群', align: 'center', width: 80 }, + { prop: 'msgCount', label: '群聊人数', align: 'center', width: 80 }, + { prop: 'hasMsgMemberCount', label: '群消息总数', align: 'center', width: 80 } + ] } }, computed: { - tableConfig () { - return this.tableData.map((v, index) => { + qbqlData () { + return [{key: '活跃成员', value: 6006}, {key: '激活成员', value: 9789}] + }, + + qbqRate () { + return 61 + if (!this.cyActivityInfo['已激活']) { + return 0 + } + + return Number(((this.cyActivityInfo['已激活'] / (this.cyActivityInfo['已激活'] + this.cyActivityInfo['未激活'])) * 100).toFixed(2)) + }, + fglData () { + return [{key: '已激活成员', value: 9789}, {key: '未激活成员', value: 6}] + }, + + fglRate () { + return 99.93 + if (!this.cyActivityInfo['已激活']) { + return 0 + } + + return Number(((this.cyActivityInfo['已激活'] / (this.cyActivityInfo['已激活'] + this.cyActivityInfo['未激活'])) * 100).toFixed(2)) + }, + + cyjhData () { + return [{key: '已激活', value: this.cyActivityInfo['已激活']}, {key: '未激活', value: this.cyActivityInfo['未激活']}] + }, + + cyjhRate () { + if (!this.cyActivityInfo['已激活']) { + return 0 + } + + return Number(((this.cyActivityInfo['已激活'] / (this.cyActivityInfo['已激活'] + this.cyActivityInfo['未激活'])) * 100).toFixed(2)) + }, + + qhyData () { + return [{key: '活跃居民群', value: this.wxGroupOverview['活跃居民群数量(7天)']}, {key: '全部居民群', value: this.wxGroupOverview['群数量']}] + }, + + qhyRate () { + if (!this.wxGroupOverview['活跃居民群数量(7天)']) { + return 0 + } + + return Number(((this.wxGroupOverview['活跃居民群数量(7天)'] / (this.wxGroupOverview['群数量'] * 7)) * 100).toFixed(2)) + }, + + rhyData () { + return [{key: '活跃成员', value: (this.wxGroupOverview['活跃群成员数量(7天)'] / 7).toFixed(0)}, {key: '群成员 ', value: (this.wxGroupOverview['群成员数量'] / 7).toFixed(0)}] + }, + + rhyRate () { + if (!this.wxGroupOverview['群成员数量']) { + return 0 + } + + return Number(((this.wxGroupOverview['活跃群成员数量(7天)'] / (this.wxGroupOverview['群成员数量'])) * 100).toFixed(2)) + }, + + barChartData () { + if (!this.wxGroupOverview['各单位群主及群分布']) { + return [] + } + + return this.wxGroupOverview['各单位群主及群分布'].map(v => { return { - color: '#d0e1e8', - textAlign: '', - width: index === 0 ? '100' : '', - fontSize: '14px', - flex: '' + name: v['网格名称'], + '群主数量': v['群主数量'], + '群数量': v['群数量'] + } + }) + }, + + dwData () { + if (!this.wjwqgkGMFBInfo.length) { + return [] + } + + return this.wjwqgkGMFBInfo.map(v => { + return { + '规模': v['规模'], + '民警': v['民警'], + '辅警': v['辅警'], + '其他': v['其他'] + } + }) + }, + + qrsGmData () { + if (!this.wjwqgkGMFBInfo.length) { + return [] + } + + return this.wjwqgkGMFBInfo.map(v => { + return { + '群人数规模分布': v['规模'], + v: v['群数量'] + } + }) + }, + + tableList () { + const list = this.wxGroupOverview['群动态多维度排行'] + if (!list) { + return [] + } + + return list + }, + + zzData () { + if (!this.wjwqgkInfo['增长情况']) { + return [] + } + + return this.wjwqgkInfo['增长情况'].map(v => { + return { + '月份': v['月份'] + '月', + '居民人数': v['居民人数'], + '新增居民': v['新增居民'] } }) } @@ -621,10 +761,25 @@ }, methods: { + onChange () { + this.$nextTick(() => { + this.instance.post(`/api/wxgridinfo/tree`, null, { + params: { + gridParentId: this.gridId, + corpId: 'wpytYEDgAA5zwi8Ak2mwFh3PwBKwwlWA' + } + }).then(res => { + if (res.code === 0) { + this.getInfo() + } + }) + }) + }, + init (gridId) { this.gridId = '' - this.gridParentId = gridId - this.instance.post(`/wxgridinfo/tree`, null, { + this.gridParentId = gridId || 'gr3AePMwAAFWlqlNvfJboAWkRNbnA14A' + this.instance.post(`/api/wxgridinfo/tree`, null, { params: { gridParentId: gridId || '', corpId: 'wpytYEDgAA5zwi8Ak2mwFh3PwBKwwlWA' @@ -636,6 +791,64 @@ } else { this.areaList = res.data } + + this.getInfo() + } + }) + }, + + getInfo () { + this.instance.post(`/api/wxgridinfo/comprehensiveOverview`, null, { + params: { + corpId: 'wpytYEDgAA5zwi8Ak2mwFh3PwBKwwlWA' + } + }).then(res => { + if (res.code === 0) { + this.middleTotalInfo = res.data + } + }) + + this.instance.post(`/api/wxgridinfo/wxGroupOverview`, null, { + params: { + corpId: 'wpytYEDgAA5zwi8Ak2mwFh3PwBKwwlWA', + gridId: this.gridId || this.gridParentId + } + }).then(res => { + if (res.code === 0) { + this.wxGroupOverview = res.data + } + }) + + this.instance.post(`/api/wxgridinfo/wjwqgk`, null, { + params: { + corpId: 'wpytYEDgAA5zwi8Ak2mwFh3PwBKwwlWA', + gridId: this.gridId || this.gridParentId + } + }).then(res => { + if (res.code === 0) { + this.wjwqgkInfo = res.data + } + }) + + this.instance.post(`/api/wxgridinfo/wjwqgkGMFB`, null, { + params: { + corpId: 'wpytYEDgAA5zwi8Ak2mwFh3PwBKwwlWA', + gridId: this.gridId || this.gridParentId + } + }).then(res => { + if (res.code === 0) { + this.wjwqgkGMFBInfo = res.data + } + }) + + this.instance.post(`/api/wxgridinfo/cyActivity`, null, { + params: { + corpId: 'wpytYEDgAA5zwi8Ak2mwFh3PwBKwwlWA', + gridId: this.gridId || this.gridParentId + } + }).then(res => { + if (res.code === 0) { + this.cyActivityInfo = res.data } }) }, @@ -656,6 +869,7 @@ let b = hex & 0xFF; return `rgba(${r},${g},${b},${alpha})`; }, + RGBtoHex(r, g, b) { let hex = r << 16 | g << 8 | b; return "#" + hex.toString(16); @@ -667,13 +881,34 @@ diff --git a/project/pidu/app/AppKeywordManagement/AppKeywordManagement.vue b/project/pidu/app/AppKeywordManagement/AppKeywordManagement.vue new file mode 100644 index 00000000..14698d0d --- /dev/null +++ b/project/pidu/app/AppKeywordManagement/AppKeywordManagement.vue @@ -0,0 +1,309 @@ + + + + + diff --git a/project/pidu/app/AppSensitive/AppSensitive.vue b/project/pidu/app/AppSensitive/AppSensitive.vue new file mode 100644 index 00000000..9947c605 --- /dev/null +++ b/project/pidu/app/AppSensitive/AppSensitive.vue @@ -0,0 +1,329 @@ + + + + + diff --git a/project/pidu/app/AppSessionArchive/AppSessionArchive.vue b/project/pidu/app/AppSessionArchive/AppSessionArchive.vue new file mode 100644 index 00000000..c6a23516 --- /dev/null +++ b/project/pidu/app/AppSessionArchive/AppSessionArchive.vue @@ -0,0 +1,70 @@ + + + + + diff --git a/project/pidu/app/AppSessionArchive/components/Detail.vue b/project/pidu/app/AppSessionArchive/components/Detail.vue new file mode 100644 index 00000000..1cea19e2 --- /dev/null +++ b/project/pidu/app/AppSessionArchive/components/Detail.vue @@ -0,0 +1,412 @@ + + + + + diff --git a/project/pidu/app/AppSessionArchive/components/List.vue b/project/pidu/app/AppSessionArchive/components/List.vue new file mode 100644 index 00000000..a661e7c0 --- /dev/null +++ b/project/pidu/app/AppSessionArchive/components/List.vue @@ -0,0 +1,931 @@ + + + + +