Browse Source

统计页面新增->不满意事项趋势分析、不满意事项类型分析、潜在不满意人员及事项预测 模块

jw-featrue-zhanlibiao
战立标 2 years ago
parent
commit
980c1c87af
  1. 21
      components/Head/index.js
  2. 5
      components/Head/index.json
  3. 10
      components/Head/index.wxml
  4. 44
      components/Head/index.wxss
  5. 18
      components/Tabs/index.js
  6. 5
      components/Tabs/index.json
  7. 11
      components/Tabs/index.wxml
  8. 40
      components/Tabs/index.wxss
  9. BIN
      images/statistics/icon-home.png
  10. BIN
      images/statistics/nav_bg.jpg
  11. BIN
      images/statistics/sel.png
  12. BIN
      images/statistics/sub-tit.png
  13. 20
      pages/statistics/modules/CrowdPortrait/CrowdPortrait.js
  14. 6
      pages/statistics/modules/CrowdPortrait/CrowdPortrait.json
  15. 5
      pages/statistics/modules/CrowdPortrait/CrowdPortrait.wxml
  16. 14
      pages/statistics/modules/CrowdPortrait/CrowdPortrait.wxss
  17. 5
      pages/statistics/modules/EventPrediction/EventPrediction.js
  18. 5
      pages/statistics/modules/EventPrediction/EventPrediction.json
  19. 23
      pages/statistics/modules/EventPrediction/EventPrediction.wxml
  20. 41
      pages/statistics/modules/EventPrediction/EventPrediction.wxss
  21. 95
      pages/statistics/modules/HotlineComplaints/HotlineComplaints.js
  22. 7
      pages/statistics/modules/HotlineComplaints/HotlineComplaints.json
  23. 5
      pages/statistics/modules/HotlineComplaints/HotlineComplaints.wxml
  24. 8
      pages/statistics/modules/HotlineComplaints/HotlineComplaints.wxss
  25. 141
      pages/statistics/modules/SmyddcSqmydzc/SmyddcSqmydzc.js
  26. 6
      pages/statistics/modules/SmyddcSqmydzc/SmyddcSqmydzc.json
  27. 3
      pages/statistics/modules/SmyddcSqmydzc/SmyddcSqmydzc.wxml
  28. 8
      pages/statistics/modules/SmyddcSqmydzc/SmyddcSqmydzc.wxss
  29. 176
      pages/statistics/modules/Trend/Trend.js
  30. 6
      pages/statistics/modules/Trend/Trend.json
  31. 3
      pages/statistics/modules/Trend/Trend.wxml
  32. 8
      pages/statistics/modules/Trend/Trend.wxss
  33. 23
      pages/statistics/statistics.js
  34. 9
      pages/statistics/statistics.json
  35. 54
      pages/statistics/statistics.wxml
  36. 98
      pages/statistics/statistics.wxss

21
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: {}
});

5
components/Head/index.json

@ -0,0 +1,5 @@
{
"component": true,
"usingComponents": {
}
}

10
components/Head/index.wxml

@ -0,0 +1,10 @@
<view class="header">
<image class="header-bg" src="../../images/statistics/nav_bg.jpg"/>
<view class="navigation" mode="widthFix" style="height: {{navigationHeight}}px; padding-top: {{statusHeight}}px;">
<image class="nav-bg" mode="widthFix" src="../../images/statistics/nav_bg.jpg"/>
<view class="con">
<image class="icon" src="../../images/statistics/icon-home.png" mode=""/> {{agencyName}}
</view>
</view>
</view>
<view style="height: {{navigationHeight + statusHeight}}px"></view>

44
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;
}

18
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)
}
}
});

5
components/Tabs/index.json

@ -0,0 +1,5 @@
{
"component": true,
"usingComponents": {
}
}

11
components/Tabs/index.wxml

@ -0,0 +1,11 @@
<view class="tab">
<view class="tab-item {{cur - 0 === index - 0?'cur':''}}"
wx:for="{{tabList}}"
data-index="{{index}}"
wx:key="{{index}}"
bind:tap="tabChange"
>
<text>{{item.label}}</text>
<image mode="widthFix" src="../../images/statistics/sel.png" style="width: 12rpx;height: 8rpx" class="cur-img"/>
</view>
</view>

40
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);
}

BIN
images/statistics/icon-home.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 793 B

BIN
images/statistics/nav_bg.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

BIN
images/statistics/sel.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

BIN
images/statistics/sub-tit.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 565 B

20
pages/statistics/modules/CrowdPortrait/CrowdPortrait.js

@ -0,0 +1,20 @@
Component({
properties: {},
data: {
tabList: [{
label: "按省及社区满意度\n调查结果",
value: 1
},{
label: '按12345热线\n投诉结果',
value: 2
}],
tabValue: ''
},
methods: {
tabChange(index) {
this.setData({
tabValue: this.tabList[index].value
})
}
}
});

6
pages/statistics/modules/CrowdPortrait/CrowdPortrait.json

@ -0,0 +1,6 @@
{
"component": true,
"usingComponents": {
"Tabs": "../../../../components/Tabs"
}
}

5
pages/statistics/modules/CrowdPortrait/CrowdPortrait.wxml

@ -0,0 +1,5 @@
<Tabs tabList="{{tabList}}" bind:tabChange="tabChange" />
<view class="sub-tit">
<image src="../../../../images/statistics/sub-tit.png" mode="widthFix" />
<text>不满意人员画像</text>
</view>

14
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;
}

5
pages/statistics/modules/EventPrediction/EventPrediction.js

@ -0,0 +1,5 @@
Component({
properties: {},
data: {},
methods: {}
});

5
pages/statistics/modules/EventPrediction/EventPrediction.json

@ -0,0 +1,5 @@
{
"component": true,
"usingComponents": {
}
}

23
pages/statistics/modules/EventPrediction/EventPrediction.wxml

@ -0,0 +1,23 @@
<view class="num-list">
<view class="num-item">
<view class="txt">
<text>事件未解决
的人数</text>
</view>
<view class="num">76</view>
</view>
<view class="num-item">
<view class="txt">
<text>需求未满足
的人数</text>
</view>
<view class="num">24</view>
</view>
<view class="num-item">
<view class="txt">
<text>应享未享服务
的人数</text>
</view>
<view class="num">13</view>
</view>
</view>

41
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;
}

95
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
})
}
}
});

7
pages/statistics/modules/HotlineComplaints/HotlineComplaints.json

@ -0,0 +1,7 @@
{
"component": true,
"usingComponents": {
"Tabs": "../../../../components/Tabs",
"ec-canvas": "../../../../ec-canvas/ec-canvas"
}
}

5
pages/statistics/modules/HotlineComplaints/HotlineComplaints.wxml

@ -0,0 +1,5 @@
<Tabs tabList="{{tabList}}" bind:tabChange="tabChange" />
<view class="hotlineComplaints">
<ec-canvas id="hotlineComplaints" canvas-id="hotlineComplaints" ec="{{ ec }}"></ec-canvas>
</view>

8
pages/statistics/modules/HotlineComplaints/HotlineComplaints.wxss

@ -0,0 +1,8 @@
ec-canvas {
width: 100%;
height: 100%;
}
.hotlineComplaints {
width: 100%;
height: 318rpx;
}

141
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: {
}
});

6
pages/statistics/modules/SmyddcSqmydzc/SmyddcSqmydzc.json

@ -0,0 +1,6 @@
{
"component": true,
"usingComponents": {
"ec-canvas": "../../../../ec-canvas/ec-canvas"
}
}

3
pages/statistics/modules/SmyddcSqmydzc/SmyddcSqmydzc.wxml

@ -0,0 +1,3 @@
<view class="smyddcSqmydzc">
<ec-canvas id="smyddcSqmydzc" canvas-id="smyddcSqmydzc" ec="{{ ec }}"></ec-canvas>
</view>

8
pages/statistics/modules/SmyddcSqmydzc/SmyddcSqmydzc.wxss

@ -0,0 +1,8 @@
ec-canvas {
width: 100%;
height: 100%;
}
.smyddcSqmydzc {
width: 100%;
height: 558rpx;
}

176
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: {
}
});

6
pages/statistics/modules/Trend/Trend.json

@ -0,0 +1,6 @@
{
"component": true,
"usingComponents": {
"ec-canvas": "../../../../ec-canvas/ec-canvas"
}
}

3
pages/statistics/modules/Trend/Trend.wxml

@ -0,0 +1,3 @@
<view class="trend">
<ec-canvas id="Trend" canvas-id="Trend" ec="{{ ec }}"></ec-canvas>
</view>

8
pages/statistics/modules/Trend/Trend.wxss

@ -0,0 +1,8 @@
ec-canvas {
width: 100%;
height: 100%;
}
.trend {
width: 100%;
height: 338rpx;
}

23
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
})
}
})

9
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"
}
}

54
pages/statistics/statistics.wxml

@ -1,7 +1,53 @@
<view class="header">
<view class="navigation" style="height: {{navigationHeight}}px; top: {{statusHeight}}px;">
<image src="../../images/work/header_left.png" mode=""/> {{agencyName}}
<Head/>
<view class="statistics-container">
<view class="card">
<view class="title">不满意事项趋势分析</view>
<Trend/>
</view>
<view class="card">
<view class="title">
<text>不满意事项类型分析</text>
<view class="view">查看
<image mode="widthFix" src="../../images/right.png"></image>
</view>
</view>
<view class="tag-list">
<view wx:for="{{monthOptions}}"
class="tag {{index === monthIndex?'cur':''}}"
wx:key="index"
bind:tap="monthChange"
data-index="{{index}}">
{{item.label}}
</view>
</view>
<view class="sub-tit">
<image src="../../images/statistics/sub-tit.png" mode="widthFix" />
<text>省满意度调查&社区满意度自查</text>
</view>
<SmyddcSqmydzc/>
<view class="sub-tit">
<image src="../../images/statistics/sub-tit.png" mode="widthFix" />
<text>12345热线投诉</text>
</view>
<HotlineComplaints />
</view>
<view class="card">
<view class="title">潜在不满意人员及事项预测</view>
<EventPrediction/>
</view>
</view>
<view class="card">
<view class="title">不满意人群画像</view>
<CrowdPortrait/>
</view>
</view>

98
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;
}
Loading…
Cancel
Save