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 @@ + + + + + + {{agencyName}} + + + + \ 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 @@ - - - {{agencyName}} + + + + 不满意事项趋势分析 + + + + + + + 不满意事项类型分析 + 查看 + + + + + + + {{item.label}} + + + + + + 省满意度调查&社区满意度自查 + + + + + + + 12345热线投诉 + + + + + + + 潜在不满意人员及事项预测 + + - \ No newline at end of file + + 不满意人群画像 + + + 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