From 980c1c87afc63c3e8888daaf9a0744823dfbf4a8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=88=98=E7=AB=8B=E6=A0=87?= <2658037827@qq.com>
Date: Thu, 14 Sep 2023 17:06:26 +0800
Subject: [PATCH] =?UTF-8?q?=E7=BB=9F=E8=AE=A1=E9=A1=B5=E9=9D=A2=E6=96=B0?=
=?UTF-8?q?=E5=A2=9E->=E4=B8=8D=E6=BB=A1=E6=84=8F=E4=BA=8B=E9=A1=B9?=
=?UTF-8?q?=E8=B6=8B=E5=8A=BF=E5=88=86=E6=9E=90=E3=80=81=E4=B8=8D=E6=BB=A1?=
=?UTF-8?q?=E6=84=8F=E4=BA=8B=E9=A1=B9=E7=B1=BB=E5=9E=8B=E5=88=86=E6=9E=90?=
=?UTF-8?q?=E3=80=81=E6=BD=9C=E5=9C=A8=E4=B8=8D=E6=BB=A1=E6=84=8F=E4=BA=BA?=
=?UTF-8?q?=E5=91=98=E5=8F=8A=E4=BA=8B=E9=A1=B9=E9=A2=84=E6=B5=8B=20?=
=?UTF-8?q?=E6=A8=A1=E5=9D=97?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
components/Head/index.js | 21 +++
components/Head/index.json | 5 +
components/Head/index.wxml | 10 +
components/Head/index.wxss | 44 +++++
components/Tabs/index.js | 18 ++
components/Tabs/index.json | 5 +
components/Tabs/index.wxml | 11 ++
components/Tabs/index.wxss | 40 ++++
images/statistics/icon-home.png | Bin 0 -> 793 bytes
images/statistics/nav_bg.jpg | Bin 0 -> 6893 bytes
images/statistics/sel.png | Bin 0 -> 1573 bytes
images/statistics/sub-tit.png | Bin 0 -> 565 bytes
.../modules/CrowdPortrait/CrowdPortrait.js | 20 ++
.../modules/CrowdPortrait/CrowdPortrait.json | 6 +
.../modules/CrowdPortrait/CrowdPortrait.wxml | 5 +
.../modules/CrowdPortrait/CrowdPortrait.wxss | 14 ++
.../EventPrediction/EventPrediction.js | 5 +
.../EventPrediction/EventPrediction.json | 5 +
.../EventPrediction/EventPrediction.wxml | 23 +++
.../EventPrediction/EventPrediction.wxss | 41 ++++
.../HotlineComplaints/HotlineComplaints.js | 95 ++++++++++
.../HotlineComplaints/HotlineComplaints.json | 7 +
.../HotlineComplaints/HotlineComplaints.wxml | 5 +
.../HotlineComplaints/HotlineComplaints.wxss | 8 +
.../modules/SmyddcSqmydzc/SmyddcSqmydzc.js | 141 ++++++++++++++
.../modules/SmyddcSqmydzc/SmyddcSqmydzc.json | 6 +
.../modules/SmyddcSqmydzc/SmyddcSqmydzc.wxml | 3 +
.../modules/SmyddcSqmydzc/SmyddcSqmydzc.wxss | 8 +
pages/statistics/modules/Trend/Trend.js | 176 ++++++++++++++++++
pages/statistics/modules/Trend/Trend.json | 6 +
pages/statistics/modules/Trend/Trend.wxml | 3 +
pages/statistics/modules/Trend/Trend.wxss | 8 +
pages/statistics/statistics.js | 23 +++
pages/statistics/statistics.json | 9 +-
pages/statistics/statistics.wxml | 54 +++++-
pages/statistics/statistics.wxss | 98 +++++++---
36 files changed, 890 insertions(+), 33 deletions(-)
create mode 100644 components/Head/index.js
create mode 100644 components/Head/index.json
create mode 100644 components/Head/index.wxml
create mode 100644 components/Head/index.wxss
create mode 100644 components/Tabs/index.js
create mode 100644 components/Tabs/index.json
create mode 100644 components/Tabs/index.wxml
create mode 100644 components/Tabs/index.wxss
create mode 100644 images/statistics/icon-home.png
create mode 100644 images/statistics/nav_bg.jpg
create mode 100644 images/statistics/sel.png
create mode 100644 images/statistics/sub-tit.png
create mode 100644 pages/statistics/modules/CrowdPortrait/CrowdPortrait.js
create mode 100644 pages/statistics/modules/CrowdPortrait/CrowdPortrait.json
create mode 100644 pages/statistics/modules/CrowdPortrait/CrowdPortrait.wxml
create mode 100644 pages/statistics/modules/CrowdPortrait/CrowdPortrait.wxss
create mode 100644 pages/statistics/modules/EventPrediction/EventPrediction.js
create mode 100644 pages/statistics/modules/EventPrediction/EventPrediction.json
create mode 100644 pages/statistics/modules/EventPrediction/EventPrediction.wxml
create mode 100644 pages/statistics/modules/EventPrediction/EventPrediction.wxss
create mode 100644 pages/statistics/modules/HotlineComplaints/HotlineComplaints.js
create mode 100644 pages/statistics/modules/HotlineComplaints/HotlineComplaints.json
create mode 100644 pages/statistics/modules/HotlineComplaints/HotlineComplaints.wxml
create mode 100644 pages/statistics/modules/HotlineComplaints/HotlineComplaints.wxss
create mode 100644 pages/statistics/modules/SmyddcSqmydzc/SmyddcSqmydzc.js
create mode 100644 pages/statistics/modules/SmyddcSqmydzc/SmyddcSqmydzc.json
create mode 100644 pages/statistics/modules/SmyddcSqmydzc/SmyddcSqmydzc.wxml
create mode 100644 pages/statistics/modules/SmyddcSqmydzc/SmyddcSqmydzc.wxss
create mode 100644 pages/statistics/modules/Trend/Trend.js
create mode 100644 pages/statistics/modules/Trend/Trend.json
create mode 100644 pages/statistics/modules/Trend/Trend.wxml
create mode 100644 pages/statistics/modules/Trend/Trend.wxss
diff --git a/components/Head/index.js b/components/Head/index.js
new file mode 100644
index 0000000..90d9c00
--- /dev/null
+++ b/components/Head/index.js
@@ -0,0 +1,21 @@
+const App = getApp();
+Component({
+ properties: {},
+
+ data: {
+ statusHeight: 0,
+ navigationHeight: 0,
+ agencyName: '',
+ },
+ lifetimes: {
+ ready: function () {
+ this.setData({
+ statusHeight: App.globalData.deviceInfo.statusHeight,
+ navigationHeight: App.globalData.deviceInfo.navigationHeight,
+ agencyName: App.globalData.user.agencyName,
+ })
+ },
+ },
+
+ methods: {}
+});
diff --git a/components/Head/index.json b/components/Head/index.json
new file mode 100644
index 0000000..78013bd
--- /dev/null
+++ b/components/Head/index.json
@@ -0,0 +1,5 @@
+{
+ "component": true,
+ "usingComponents": {
+ }
+}
\ No newline at end of file
diff --git a/components/Head/index.wxml b/components/Head/index.wxml
new file mode 100644
index 0000000..a1f4ed1
--- /dev/null
+++ b/components/Head/index.wxml
@@ -0,0 +1,10 @@
+
+
\ No newline at end of file
diff --git a/components/Head/index.wxss b/components/Head/index.wxss
new file mode 100644
index 0000000..63c4b37
--- /dev/null
+++ b/components/Head/index.wxss
@@ -0,0 +1,44 @@
+.header {
+
+}
+
+.header .navigation {
+ position: fixed;
+ top: 0;
+ left: 0;
+ width: 100%;
+ display: flex;
+ align-items: center;
+ justify-content: start;
+ font-size: 32rpx;
+ font-weight: 500;
+ color: #333333;
+ padding-left: 20rpx;
+ overflow: hidden;
+ z-index: 999999;
+}
+
+.header .navigation .icon {
+ width: 34rpx;
+ height: 34rpx;
+ margin-right: 17rpx;
+}
+.header .navigation .con {
+ position: relative;
+ z-index: 2;
+}
+.header .navigation .nav-bg {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: unset;
+}
+.header-bg {
+ width: 100%;
+ overflow: hidden;
+ position: absolute;
+ top: 0;
+ left: 0;
+ z-index: -1;
+}
diff --git a/components/Tabs/index.js b/components/Tabs/index.js
new file mode 100644
index 0000000..1fdb5be
--- /dev/null
+++ b/components/Tabs/index.js
@@ -0,0 +1,18 @@
+Component({
+ properties: {
+ tabList: {
+ type: Array
+ }
+ },
+ data: {
+ cur: 0
+ },
+ methods: {
+ tabChange(e) {
+ this.setData({
+ cur: e.currentTarget.dataset.index
+ })
+ this.triggerEvent("tabChange",e.currentTarget.dataset.index)
+ }
+ }
+});
diff --git a/components/Tabs/index.json b/components/Tabs/index.json
new file mode 100644
index 0000000..78013bd
--- /dev/null
+++ b/components/Tabs/index.json
@@ -0,0 +1,5 @@
+{
+ "component": true,
+ "usingComponents": {
+ }
+}
\ No newline at end of file
diff --git a/components/Tabs/index.wxml b/components/Tabs/index.wxml
new file mode 100644
index 0000000..1bfbae4
--- /dev/null
+++ b/components/Tabs/index.wxml
@@ -0,0 +1,11 @@
+
+
+ {{item.label}}
+
+
+
\ No newline at end of file
diff --git a/components/Tabs/index.wxss b/components/Tabs/index.wxss
new file mode 100644
index 0000000..0ecb90c
--- /dev/null
+++ b/components/Tabs/index.wxss
@@ -0,0 +1,40 @@
+.tab {
+ display: flex;
+}
+.tab .tab-item {
+ background: #F4F8FE;
+ border: 2px solid #D6E6FC;
+ border-radius: 6rpx;
+ flex: 1;
+ padding: 25rpx 0;
+ font-size: 30rpx;
+ font-weight: 500;
+ color: #999999;
+ margin: 0 15rpx 30rpx;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+.tab .tab-item.cur {
+ color: #3A80E7;
+ position: relative;
+}
+.cur-img {
+ display: none;
+}
+.tab .tab-item.cur:before {
+ content: '';
+ display: block;
+ height: 5rpx;
+ width: 100%;
+ background: #3A80E7;
+ position: absolute;
+ bottom: 0;
+ left: 0;
+}
+.tab .tab-item.cur .cur-img {
+ display: block;
+ position: absolute;
+ bottom: -8rpx;
+ left: calc(50% - 6rpx);
+}
\ No newline at end of file
diff --git a/images/statistics/icon-home.png b/images/statistics/icon-home.png
new file mode 100644
index 0000000000000000000000000000000000000000..e0b2a7899dc638e78d8ec541e7a47562883b4f03
GIT binary patch
literal 793
zcmV+!1LpjRP)Px%(@8`@R9Hvt*Gs6?RTRhZ&kc-%1{Op}5m-qht#DwGlOigDD9cPTF$qM%5G;FP
zrbPw4K%qfM7!rk9S!#*qtB4{B14lx$1|nfKF%qE%KUse{{PEs%&b{Ye3|f=>Kl|>z
z)_1SH_S$O=IZI?{j2!piK}^CYczd+^#sabl3tNT{;65Dd7icsfSKtH8EMp(x1Qyiq
zqqrYm^#ju{$Zd55=arFVc(cCeVoQhdrFg4Xn0`Rk;JH$K1dFhzWoSCy#f%!?fF-@a
z^a7GVd=J@inZ|$sEn;R0h_anF9Gn`wCp2RC>QZO9IOL)2?9`45X{Sb7_y$U;Ub&b7`2im&Y
zAm?K%ayue%WfmPDB}B6
z?ix=DBn>=Tv3EiK2IN8{F780wln74(8c)fy@CZJyZ2fEJt!V;jB0+ZH_Re6<_iC)2
zV2^x(TmJ{C(jhT2Fptc_ja4fCh}}I#coVDx0eKxOT88sHBwL>B0yHp?8}LmTJBUBa
zGa1Tz^3FtoG*3c`2IlG-)rDVJ^D9Og7FGX15Bt_XN>DFKk3ZSc=vj*f}
Xh-a?f%idl;00000NkvXXu0mjfWISw4
literal 0
HcmV?d00001
diff --git a/images/statistics/nav_bg.jpg b/images/statistics/nav_bg.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..1b9dda11e6bae36a64713224a7310a2e0797fbd0
GIT binary patch
literal 6893
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
+
+
+ 不满意人员画像
+
\ No newline at end of file
diff --git a/pages/statistics/modules/CrowdPortrait/CrowdPortrait.wxss b/pages/statistics/modules/CrowdPortrait/CrowdPortrait.wxss
new file mode 100644
index 0000000..6f1f139
--- /dev/null
+++ b/pages/statistics/modules/CrowdPortrait/CrowdPortrait.wxss
@@ -0,0 +1,14 @@
+
+.sub-tit {
+ font-size: 32rpx;
+ font-weight: 500;
+ color: #333333;
+ display: flex;
+ align-items: center;
+ margin: 30rpx 0;
+}
+.sub-tit image {
+ margin-right: 12rpx;
+ width: 20rpx;
+ height: 20rpx;
+}
\ No newline at end of file
diff --git a/pages/statistics/modules/EventPrediction/EventPrediction.js b/pages/statistics/modules/EventPrediction/EventPrediction.js
new file mode 100644
index 0000000..ee42eae
--- /dev/null
+++ b/pages/statistics/modules/EventPrediction/EventPrediction.js
@@ -0,0 +1,5 @@
+Component({
+ properties: {},
+ data: {},
+ methods: {}
+});
diff --git a/pages/statistics/modules/EventPrediction/EventPrediction.json b/pages/statistics/modules/EventPrediction/EventPrediction.json
new file mode 100644
index 0000000..78013bd
--- /dev/null
+++ b/pages/statistics/modules/EventPrediction/EventPrediction.json
@@ -0,0 +1,5 @@
+{
+ "component": true,
+ "usingComponents": {
+ }
+}
\ No newline at end of file
diff --git a/pages/statistics/modules/EventPrediction/EventPrediction.wxml b/pages/statistics/modules/EventPrediction/EventPrediction.wxml
new file mode 100644
index 0000000..0705d21
--- /dev/null
+++ b/pages/statistics/modules/EventPrediction/EventPrediction.wxml
@@ -0,0 +1,23 @@
+
+
+
+ 事件未解决
+ 的人数
+
+ 76
+
+
+
+ 需求未满足
+ 的人数
+
+ 24
+
+
+
+ 应享未享服务
+ 的人数
+
+ 13
+
+
\ No newline at end of file
diff --git a/pages/statistics/modules/EventPrediction/EventPrediction.wxss b/pages/statistics/modules/EventPrediction/EventPrediction.wxss
new file mode 100644
index 0000000..f2bae88
--- /dev/null
+++ b/pages/statistics/modules/EventPrediction/EventPrediction.wxss
@@ -0,0 +1,41 @@
+.num-list {
+ display: flex;
+ width: 100%;
+ justify-content: space-between;
+ position: relative;
+}
+.num-list .num-item {
+}
+.num-list .num-item:after {
+ content: '';
+ display: block;
+ position: absolute;
+ right: 0;
+ top: calc(50% - 45rpx);
+ width: 1rpx;
+ height: 90rpx;
+ background: #C1C1C1;
+ opacity: 0.66;
+}
+.num-list .num-item:nth-of-type(1):after {
+ left: 33.333333%;
+}
+.num-list .num-item:nth-of-type(2):after {
+ left: 66.666666%;
+}
+.num-list .num-item:last-child:after {
+ display: none;
+}
+.num-list .num-item .txt {
+ font-size: 28rpx;
+ font-weight: 500;
+ color: #999999;
+ line-height: 38rpx;
+ margin-bottom: 30rpx;
+}
+.num-list .num-item .num {
+ font-size: 42rpx;
+ font-weight: bold;
+ color: #333333;
+ line-height: 42rpx;
+}
\ No newline at end of file
diff --git a/pages/statistics/modules/HotlineComplaints/HotlineComplaints.js b/pages/statistics/modules/HotlineComplaints/HotlineComplaints.js
new file mode 100644
index 0000000..7f6353e
--- /dev/null
+++ b/pages/statistics/modules/HotlineComplaints/HotlineComplaints.js
@@ -0,0 +1,95 @@
+import * as echarts from '../../../../ec-canvas/echarts';
+function initChart(canvas, width, height, dpr) {
+ const chart = echarts.init(canvas, null, {
+ width: width,
+ height: height,
+ devicePixelRatio: dpr // 像素比
+ });
+ canvas.setChart(chart);
+
+ let data = [
+ {value: 120, name: '市容环境'},
+ {value: 150, name: '停车管理'},
+ {value: 210, name: '物业服务'},
+ {value: 177, name: '城市低保'},
+ {value: 194, name: '违章建房'},
+ ];
+ let color = ["#4F94FF","#A182FB","#27D1A7","#FCBF06","#FF7108"]
+ var option = {
+ color,
+ tooltip: {
+ show: true,
+ textStyle: {
+ color: '#fff',
+ fontSize: 14
+ },
+ backgroundColor: "#04229a",
+ // extraCssText: "box-shadow: 2px 2px 4px 0px rgba(0,0,0,0.3);",
+ formatter(params) {
+ // console.log(params)
+ if (params.name === '') {
+ return '';
+ }
+ return `${params.name} : ${params.percent}%`;
+ },
+ },
+ series: [
+ {
+ name: '',
+ type: 'pie',
+ radius: ['40%', '70%'],
+ center: ['50%', '50%'], // 修改为居中
+ avoidLabelOverlap: true,
+ label: {
+ color: '#333333',
+ alignTo: 'labelLine',
+ formatter: '{num|{c}}\n{name|{b}}',
+ minMargin: 5,
+ edgeDistance: 10,
+ lineHeight: 15,
+ rich: {
+ num: {
+ fontSize: 17,
+ color: '#333333'
+ },
+ zb: {
+ fontSize: 14,
+ color: '#333333'
+ }
+ }
+ },
+ labelLine: {
+ length: 15,
+ length2: 0,
+ maxSurfaceAngle: 80
+ },
+ data: data
+ }
+ ]
+ };
+ chart.setOption(option);
+ return chart;
+}
+Component({
+ properties: {},
+ data: {
+ ec: {
+ onInit: initChart
+ },
+ tabList: [{
+ label: "问题突出类别",
+ value: 1
+ },{
+ label: '行业领域分析',
+ value: 2
+ }],
+ tabValue: ''
+ },
+ methods: {
+ tabChange(index) {
+ this.setData({
+ tabValue: this.tabList[index].value
+ })
+ }
+ }
+});
diff --git a/pages/statistics/modules/HotlineComplaints/HotlineComplaints.json b/pages/statistics/modules/HotlineComplaints/HotlineComplaints.json
new file mode 100644
index 0000000..2b0583c
--- /dev/null
+++ b/pages/statistics/modules/HotlineComplaints/HotlineComplaints.json
@@ -0,0 +1,7 @@
+{
+ "component": true,
+ "usingComponents": {
+ "Tabs": "../../../../components/Tabs",
+ "ec-canvas": "../../../../ec-canvas/ec-canvas"
+ }
+}
\ No newline at end of file
diff --git a/pages/statistics/modules/HotlineComplaints/HotlineComplaints.wxml b/pages/statistics/modules/HotlineComplaints/HotlineComplaints.wxml
new file mode 100644
index 0000000..21b6e53
--- /dev/null
+++ b/pages/statistics/modules/HotlineComplaints/HotlineComplaints.wxml
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/pages/statistics/modules/HotlineComplaints/HotlineComplaints.wxss b/pages/statistics/modules/HotlineComplaints/HotlineComplaints.wxss
new file mode 100644
index 0000000..55fdd89
--- /dev/null
+++ b/pages/statistics/modules/HotlineComplaints/HotlineComplaints.wxss
@@ -0,0 +1,8 @@
+ec-canvas {
+ width: 100%;
+ height: 100%;
+}
+.hotlineComplaints {
+ width: 100%;
+ height: 318rpx;
+}
\ No newline at end of file
diff --git a/pages/statistics/modules/SmyddcSqmydzc/SmyddcSqmydzc.js b/pages/statistics/modules/SmyddcSqmydzc/SmyddcSqmydzc.js
new file mode 100644
index 0000000..7715b7c
--- /dev/null
+++ b/pages/statistics/modules/SmyddcSqmydzc/SmyddcSqmydzc.js
@@ -0,0 +1,141 @@
+import * as echarts from '../../../../ec-canvas/echarts';
+
+function initChart(canvas, width, height, dpr) {
+ const chart = echarts.init(canvas, null, {
+ width: width,
+ height: height,
+ devicePixelRatio: dpr // 像素比
+ });
+ canvas.setChart(chart);
+ var dataname = ['老有所养', '社会治安', '生态环境', '体育设施', '社会救助', '文化设施', '基础教育', '病有所医']
+ var datamax = [20, 20, 20, 20, 20, 20, 20, 20]
+ var datavaule = [10, 16, 18, 15, 12, 18, 18, 18]
+ var datavaule2 = [12, 17, 20, 16, 13, 19, 19, 19]
+ var indicator = []
+ for (var i = 0; i < dataname.length; i++) {
+ indicator.push({
+ name: dataname[i],
+ max: datamax[i],
+ })
+ }
+ var option = {
+ tooltip: {
+ show: false,
+ trigger: "item",
+ },
+ legend: {
+ show: true,
+ textStyle: {
+ color: '#999999',
+ rich: {
+ name: {
+ fontSize: 14,
+ lineHeight: 19,
+ padding: [20, 0, 0, 0]
+ },
+ }
+ },
+ itemWidth: 6,
+ itemHeight: 6,
+ y: 'bottom',
+ x: 'center',
+ formatter: name => {
+ return `{name|${name}}`
+ },
+ data: ['省满意度调查\n各项不满意人数', '社区满意度自查\n各项不满意人数'],
+ },
+ radar: {
+ center: ["50%", "40%"],
+ radius: "50%",
+ startAngle: 90,
+ splitNumber: 5,
+ splitArea: {
+ areaStyle: {
+ color: 'transparent'
+ }
+ },
+ axisLabel: {
+ show: false,
+ },
+ axisLine: {
+ show: true,
+ lineStyle: {
+ color: "rgba(226,226,226,0.28)"
+ }
+ },
+ splitLine: {
+ show: true,
+ lineStyle: {
+ color: "rgba(226,226,226,0.61)"
+ }
+ },
+ name: {
+ textStyle: {
+ color: '#333333',
+ fontSize: 14,
+ borderRadius: 3,
+ }
+ },
+ indicator: indicator
+ },
+
+ series: [{
+ name: "省满意度调查\n各项不满意人数",
+ type: "radar",
+ symbol: "circle",
+ symbolSize: 0,
+ areaStyle: {
+ normal: {
+ color: 'rgba(58,128,231,0.36)',
+ }
+ },
+ itemStyle: {
+ color: '#3A80E7',
+ borderColor: '#3AB7FF',
+ borderWidth: 1,
+ },
+ lineStyle: {
+ normal: {
+ color: "#3AB7FF",
+ width: 2
+ }
+ },
+ data: [datavaule]
+ }, {
+ name: "社区满意度自查\n各项不满意人数",
+ type: "radar",
+ symbol: "circle",
+ symbolSize: 0,
+ areaStyle: {
+ normal: {
+ color: 'rgba(170, 216, 255, 0)',
+ }
+ },
+ itemStyle: {
+ color: '#EB8E16',
+ borderColor: '#EF9700',
+ borderWidth: 1,
+ },
+ lineStyle: {
+ normal: {
+ color: "#EF9700",
+ width: 2
+ }
+ },
+ data: [datavaule2]
+ }]
+ };
+ chart.setOption(option);
+ return chart;
+}
+
+Component({
+ properties: {},
+ data: {
+ ec: {
+ onInit: initChart
+ }
+ },
+ methods: {
+ }
+});
diff --git a/pages/statistics/modules/SmyddcSqmydzc/SmyddcSqmydzc.json b/pages/statistics/modules/SmyddcSqmydzc/SmyddcSqmydzc.json
new file mode 100644
index 0000000..fd2b1bc
--- /dev/null
+++ b/pages/statistics/modules/SmyddcSqmydzc/SmyddcSqmydzc.json
@@ -0,0 +1,6 @@
+{
+ "component": true,
+ "usingComponents": {
+ "ec-canvas": "../../../../ec-canvas/ec-canvas"
+ }
+}
\ No newline at end of file
diff --git a/pages/statistics/modules/SmyddcSqmydzc/SmyddcSqmydzc.wxml b/pages/statistics/modules/SmyddcSqmydzc/SmyddcSqmydzc.wxml
new file mode 100644
index 0000000..18faa43
--- /dev/null
+++ b/pages/statistics/modules/SmyddcSqmydzc/SmyddcSqmydzc.wxml
@@ -0,0 +1,3 @@
+
+
+
diff --git a/pages/statistics/modules/SmyddcSqmydzc/SmyddcSqmydzc.wxss b/pages/statistics/modules/SmyddcSqmydzc/SmyddcSqmydzc.wxss
new file mode 100644
index 0000000..d034ecb
--- /dev/null
+++ b/pages/statistics/modules/SmyddcSqmydzc/SmyddcSqmydzc.wxss
@@ -0,0 +1,8 @@
+ec-canvas {
+ width: 100%;
+ height: 100%;
+}
+.smyddcSqmydzc {
+ width: 100%;
+ height: 558rpx;
+}
\ No newline at end of file
diff --git a/pages/statistics/modules/Trend/Trend.js b/pages/statistics/modules/Trend/Trend.js
new file mode 100644
index 0000000..8ac27a9
--- /dev/null
+++ b/pages/statistics/modules/Trend/Trend.js
@@ -0,0 +1,176 @@
+import * as echarts from '../../../../ec-canvas/echarts';
+
+function initChart(canvas, width, height, dpr) {
+ const chart = echarts.init(canvas, null, {
+ width: width,
+ height: height,
+ devicePixelRatio: dpr // 像素比
+ });
+ canvas.setChart(chart);
+ let xData = ['10月', '11月', '12月', '1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月'];
+ let tq1 = [12, 20, 30, 60, 49, 18, 90, 48, 39, 30, 27, 40, 48, 39, 27, 49];
+ let tq2 = [10, 50, 50, 27, 49, 58, 80, 80, 19, 60, 30, 30, 49, 18, 90, 20];
+ let tq3 = [300, 90, 48, 39, 30, 27, 49, 18, 90, 39, 27, 49, 30, 100, 49, 100];
+
+ var option = {
+ title: {
+ show: false,
+ text: '',
+ x: 'center',
+ top: '15px',
+ textStyle: {
+ color: '#333333',
+ fontWeight: 500,
+ fontSize: 18,
+ },
+ },
+
+ legend: {
+ // icon: 'circle',
+ data: ['12345投诉事件数', '省调查不满意数', '社区自查不满意数'],
+ itemGap: 12,
+ itemWidth: 12,
+ itemHeight: 5,
+ x: 'left',
+ top: '0%',
+ textStyle: {
+ color: '#999999',
+ fontSize: 10,
+ // padding:[0, 10, 0, 10],
+ }
+ },
+ grid: {
+ top: '18%',
+ left: '2%',
+ right: '4%',
+ bottom: '8%',
+ containLabel: true
+ },
+ xAxis: [
+ {
+ type: 'category',
+ axisTick: {
+ show: false,
+ },
+ splitLine: {
+ show: false,
+ },
+ axisLine: {
+ lineStyle: {
+ color: '#323c41'
+ }
+ },
+ axisLabel: {
+ interval: 0,
+ align: 'center',
+ textStyle: {
+ fontSize: 11,
+ color: '#C1C1C1'
+ }
+ },
+ boundaryGap: true,
+ data: xData,
+ },
+ ],
+
+ yAxis: [
+ {
+ type: 'value',
+ splitLine: {
+ show: false
+ },
+ axisLabel: {
+ show: true,
+ color: '#999999',
+ textStyle: {
+ fontSize: 11
+ }
+ },
+ axisTick: {
+ show: false
+ }
+ }
+
+ ],
+ series: [
+ {
+ name: '12345投诉事件数',
+ type: 'line',
+ showAllSymbol: true,
+ symbol: 'circle',
+ symbolSize: 0,
+ lineStyle: {
+ normal: {
+ color: '#3A80E7',
+ },
+ },
+ label: {
+ show: false,
+ },
+ itemStyle: {
+ show: false,
+ color: '#FFF',
+ borderColor: '#3A80E7',
+ borderWidth: 1,
+ },
+ data: tq1,
+ },
+ {
+ name: '省调查不满意数',
+ type: 'line',
+ showAllSymbol: true,
+ symbol: 'circle',
+ symbolSize: 0,
+ lineStyle: {
+ normal: {
+ color: '#EB8E16',
+ },
+ },
+ label: {
+ show: false,
+ },
+ itemStyle: {
+ color: '#fff',
+ borderColor: '#EB8E16',
+ borderWidth: 1,
+ },
+ data: tq2, //data.values
+ },
+ {
+ name: '社区自查不满意数',
+ type: 'line',
+ yIndex: 0,
+ showAllSymbol: true,
+ symbol: 'circle',
+ symbolSize: 0,
+ lineStyle: {
+ normal: {
+ color: '#10B2A5',
+ },
+ },
+ label: {
+ show: false,
+ },
+ itemStyle: {
+ color: '#fff',
+ borderColor: '#10B2A5',
+ borderWidth: 1,
+ },
+ data: tq3, //data.values
+ }
+ ],
+ };
+ chart.setOption(option);
+ return chart;
+}
+
+Component({
+ properties: {},
+ data: {
+ ec: {
+ onInit: initChart
+ }
+ },
+ methods: {
+ }
+});
diff --git a/pages/statistics/modules/Trend/Trend.json b/pages/statistics/modules/Trend/Trend.json
new file mode 100644
index 0000000..fd2b1bc
--- /dev/null
+++ b/pages/statistics/modules/Trend/Trend.json
@@ -0,0 +1,6 @@
+{
+ "component": true,
+ "usingComponents": {
+ "ec-canvas": "../../../../ec-canvas/ec-canvas"
+ }
+}
\ No newline at end of file
diff --git a/pages/statistics/modules/Trend/Trend.wxml b/pages/statistics/modules/Trend/Trend.wxml
new file mode 100644
index 0000000..2dc7f02
--- /dev/null
+++ b/pages/statistics/modules/Trend/Trend.wxml
@@ -0,0 +1,3 @@
+
+
+
diff --git a/pages/statistics/modules/Trend/Trend.wxss b/pages/statistics/modules/Trend/Trend.wxss
new file mode 100644
index 0000000..eebed58
--- /dev/null
+++ b/pages/statistics/modules/Trend/Trend.wxss
@@ -0,0 +1,8 @@
+ec-canvas {
+ width: 100%;
+ height: 100%;
+}
+.trend {
+ width: 100%;
+ height: 338rpx;
+}
\ No newline at end of file
diff --git a/pages/statistics/statistics.js b/pages/statistics/statistics.js
index 4108baf..1bd80a7 100644
--- a/pages/statistics/statistics.js
+++ b/pages/statistics/statistics.js
@@ -1,6 +1,24 @@
const app = getApp()
Page({
data: {
+ monthOptions: [{
+ value: 1,
+ label: '本月'
+ },{
+ value: 2,
+ label: '上月'
+ },{
+ value: 3,
+ label: '近3月'
+ },{
+ value: 4,
+ label: '近半年'
+ },{
+ value: 5,
+ label: '近1年'
+ }],
+ monthIndex: 0,
+
},
onLoad(options) {
this.setData({
@@ -8,5 +26,10 @@ Page({
navigationHeight: app.globalData.deviceInfo.navigationHeight,
agencyName:app.globalData.user.agencyName,
})
+ },
+ monthChange({currentTarget:{dataset:{index}}}) {
+ this.setData({
+ monthIndex: index
+ })
}
})
\ No newline at end of file
diff --git a/pages/statistics/statistics.json b/pages/statistics/statistics.json
index cf3facb..6fe2293 100644
--- a/pages/statistics/statistics.json
+++ b/pages/statistics/statistics.json
@@ -1,4 +1,11 @@
{
"navigationStyle": "custom",
- "usingComponents": {}
+ "usingComponents": {
+ "Head": "../../components/Head",
+ "Trend": "./modules/Trend/Trend",
+ "SmyddcSqmydzc": "./modules/SmyddcSqmydzc/SmyddcSqmydzc",
+ "HotlineComplaints": "./modules/HotlineComplaints/HotlineComplaints",
+ "EventPrediction": "./modules/EventPrediction/EventPrediction",
+ "CrowdPortrait": "./modules/CrowdPortrait/CrowdPortrait"
+ }
}
\ No newline at end of file
diff --git a/pages/statistics/statistics.wxml b/pages/statistics/statistics.wxml
index a5f3769..7ed2778 100644
--- a/pages/statistics/statistics.wxml
+++ b/pages/statistics/statistics.wxml
@@ -1,7 +1,53 @@
-
diff --git a/pages/statistics/statistics.wxss b/pages/statistics/statistics.wxss
index c3923ef..915a893 100644
--- a/pages/statistics/statistics.wxss
+++ b/pages/statistics/statistics.wxss
@@ -1,34 +1,76 @@
-
-.header {
- width: 100%;
- height: 470rpx;
- /* position: fixed;
- top: 0;
- left: 0;
- z-index: 1000; */
- background: linear-gradient(180deg, #116FED 0%, #66A6FD 63%, #F7F7F7 100%);
- overflow: hidden;
-}
-.header .header-bg {
- width: 100%;
- height: 444rpx;
- position: absolute;
- height: 100%;
- z-index: -999;
+.statistics-container {
+ padding: 20rpx;
}
-.header .navigation {
- width: 100%;
+.card {
+ background: #fff;
+ border-radius: 20rpx;
+ padding: 30rpx;
+ margin-bottom: 20rpx;
+}
+.card .title {
+ font-size: 34rpx;
+ font-weight: bold;
+ color: #333333;
display: flex;
align-items: center;
- justify-content: start;
- color: #fff;
- font-size: 32rpx;
+ margin-left: -30rpx;
+ margin-bottom: 39rpx;
position: relative;
- padding-left: 20rpx;
- z-index: 100;
}
-.header .navigation image{
- width: 34rpx;
- height: 34rpx;
- margin-right: 17rpx;
+.card .title:before {
+ content: '';
+ display: block;
+ width: 10rpx;
+ height: 28rpx;
+ background: #3A80E7;
+ border-radius: 4rpx;
+ margin-right: 20rpx;
+}
+.card .title .view {
+ font-size: 28rpx;
+ font-weight: 400;
+ color: #999999;
+ display: flex;
+ align-items: center;
+ position: absolute;
+ right: 0;
+ top: 0;
+}
+.card .title .view image {
+ width: 24rpx;
+}
+page {
+ background: #f7f7f7;
+}
+
+.tag-list {
+ display: flex;
+ margin: 0 -8rpx;
+ justify-content: space-between;
+}
+.tag-list .tag {
+ padding: 10rpx 20rpx;
+ font-size: 28rpx;
+ margin: 0 8rpx;
+ color: #3A80E7;
+ background: #F1F6FF;
+ border: 1px solid #3A80E7;
+ border-radius: 1000rpx;
+}
+.tag-list .tag.cur {
+ background: #3A80E7;
+ color: #ffff;
+}
+.sub-tit {
+ font-size: 32rpx;
+ font-weight: 500;
+ color: #333333;
+ display: flex;
+ align-items: center;
+ margin: 30rpx 0;
+}
+.sub-tit image {
+ margin-right: 12rpx;
+ width: 20rpx;
+ height: 20rpx;
}
\ No newline at end of file