Browse Source

新增画像匹配人员、不满意事项详细 页面

jw-featrue-zhanlibiao
战立标 2 years ago
parent
commit
2b9306d490
  1. 35
      components/Head/index.js
  2. 15
      components/Head/index.wxml
  3. 15
      components/Head/index.wxss
  4. BIN
      images/statistics/icon-back.png
  5. 2
      pages/statistics/statistics.js
  6. BIN
      subpages/statistics/images/down.png
  7. BIN
      subpages/statistics/images/down2.png
  8. BIN
      subpages/statistics/images/right.png
  9. 5
      subpages/statistics/pages/crowdPortrait/crowdPortrait.json
  10. 23
      subpages/statistics/pages/crowdPortrait/crowdPortrait.wxml
  11. 51
      subpages/statistics/pages/crowdPortrait/crowdPortrait.wxss
  12. 58
      subpages/statistics/pages/dissatisfied/detial/detail.js
  13. 5
      subpages/statistics/pages/dissatisfied/detial/detail.json
  14. 59
      subpages/statistics/pages/dissatisfied/detial/detail.wxml
  15. 165
      subpages/statistics/pages/dissatisfied/detial/detail.wxss
  16. 64
      subpages/statistics/pages/dissatisfied/list/list.js
  17. 3
      subpages/statistics/pages/dissatisfied/list/list.json
  18. 124
      subpages/statistics/pages/dissatisfied/list/list.wxml
  19. 177
      subpages/statistics/pages/dissatisfied/list/list.wxss

35
components/Head/index.js

@ -1,11 +1,22 @@
const App = getApp();
Component({
properties: {},
properties: {
isBack: {
type: Boolean,
default: false
},
text: {
type: String,
default: ""
}
},
data: {
statusHeight: 0,
navigationHeight: 0,
agencyName: '',
leftWidth: 0,
iconWidth: 0,
},
lifetimes: {
ready: function () {
@ -14,8 +25,28 @@ Component({
navigationHeight: App.globalData.deviceInfo.navigationHeight,
agencyName: App.globalData.user.agencyName,
})
const menuButton = wx.getMenuButtonBoundingClientRect();
console.log(menuButton)
this.setData({
leftWidth: menuButton.left,
iconWidth: menuButton.width,
})
},
},
methods: {}
methods: {
back() {
wx.navigateBack({
delta: 1
})
},
getNavigationInfo: function () {
var that = this;
wx.getSystemInfo({
success (res) {
}
})
}
}
});

15
components/Head/index.wxml

@ -2,9 +2,22 @@
<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="back-nav" wx-if="isBack">
<view class="con" style="width: {{leftWidth}}px">
<view style="width: {{iconWidth}}px">
<image class="icon" bind:tap="back" src="../../images/statistics/icon-back.png" mode="widthFix"/>
</view>
<view class="text">
{{text}}
</view>
</view>
</view>
<template wx-else>
<view class="con">
<image class="icon" src="../../images/statistics/icon-home.png" mode=""/> {{agencyName}}
<image class="icon" src="../../images/statistics/icon-home.png" mode="widthFix"/>
{{agencyName}}
</view>
</template>
</view>
</view>
<view style="height: {{navigationHeight + statusHeight}}px"></view>

15
components/Head/index.wxss

@ -23,6 +23,21 @@
height: 34rpx;
margin-right: 17rpx;
}
.header .navigation .back-nav {
width: 100%;
}
.header .navigation .back-nav .con {
display: flex;
align-items: center;
}
.header .navigation .back-nav .con view {
height: 100%;
}
.header .navigation .back-nav .con view.text {
text-align: center;
width: 100%;
}
.header .navigation .con {
position: relative;
z-index: 2;

BIN
images/statistics/icon-back.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 752 B

2
pages/statistics/statistics.js

@ -34,7 +34,7 @@ Page({
},
gotopage() {
wx.navigateTo({
url: '/pages/login/login',
url: '/subpages/statistics/pages/dissatisfied/list/list',
})
}
})

BIN
subpages/statistics/images/down.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 418 B

BIN
subpages/statistics/images/down2.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 447 B

BIN
subpages/statistics/images/right.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 622 B

5
subpages/statistics/pages/crowdPortrait/crowdPortrait.json

@ -1,4 +1,7 @@
{
"navigationBarTitleText": "画像匹配人员",
"usingComponents": {}
"navigationStyle": "custom",
"usingComponents": {
"Head": "../../../../../components/Head"
}
}

23
subpages/statistics/pages/crowdPortrait/crowdPortrait.wxml

@ -1,2 +1,21 @@
<!--subpages/statistics/pages/crowdPortrait/crowdPortrait.wxml-->
<text>subpages/statistics/pages/crowdPortrait/crowdPortrait.wxml</text>
<Head isBack text="画像匹配人员"/>
<view class="statistics-container">
<view class="card">
<view class="title">
<text class="bold">“基础教育” </text>潜在不满意人员: <text class="blue">378</text> 人
</view>
<view class="log-list">
<view class="log-item" wx:for="{{2}}">
<view>
<view class="user">
<view class="name">刘萍 13362021000</view>
</view>
<view class="address">地址:阳光城小区3号楼2单元202户</view>
</view>
<image src="../../../images/right.png" mode="widthFix" class="icon"/>
</view>
</view>
</view>
</view>

51
subpages/statistics/pages/crowdPortrait/crowdPortrait.wxss

@ -1 +1,50 @@
/* subpages/statistics/pages/crowdPortrait/crowdPortrait.wxss */
.statistics-container {
padding: 20rpx;
}
.card {
background: #fff;
border-radius: 20rpx;
padding: 30rpx;
margin-top: 20rpx;
}
.title {
font-size: 30rpx;
color: #333333;
margin-bottom: 60rpx;
}
.bold {
font-weight: bold;
}
.blue {
color: #3A80E7;
}
.log-item {
border-bottom: 1px solid #EAEAEA;
padding: 30rpx 0;
}
.log-item .user {
display: flex;
align-items: center;
}
.log-item .icon {
width: 48rpx;
height: 48rpx;
}
.log-item .name {
font-size: 32rpx;
font-weight: 500;
color: #333333;
}
.log-item .address {
font-size: 28rpx;
font-weight: 500;
color: #999999;
}
.log-item {
display: flex;
justify-content: space-between;
align-items: center;
}
page {
background: #f7f7f7;
}

58
subpages/statistics/pages/dissatisfied/detial/detail.js

@ -1,66 +1,8 @@
// subpages/statistics/pages/dissatisfied/detial/detail.js
Page({
/**
* 页面的初始数据
*/
data: {
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {
},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage() {
}
})

5
subpages/statistics/pages/dissatisfied/detial/detail.json

@ -1,4 +1,7 @@
{
"navigationBarTitleText": "详情",
"usingComponents": {}
"navigationStyle": "custom",
"usingComponents": {
"Head": "../../../../../components/Head"
}
}

59
subpages/statistics/pages/dissatisfied/detial/detail.wxml

@ -1,2 +1,57 @@
<!--subpages/statistics/pages/dissatisfied/detial/detail.wxml-->
<text>subpages/statistics/pages/dissatisfied/detial/detail.wxml</text>
<Head isBack text="详情"/>
<view class="statistics-container">
<view class="user-info">
<view class="name">
<text>王阳 15620233333</text>
<view class="tag red">风险</view>
</view>
<view class="address">亿星社区第一网格 金色海岸小区1号楼2单元201</view>
<view class="describe">
<view class="text">
不满意原因:附近适龄入学儿童多,幼儿园一共就 有2-3个,一个班要有40多个孩子,报名困难。
</view>
<view class="time">2023-08-20 17:40:23</view>
</view>
</view>
<view class="card">
<view class="title">历史及潜在不满意事项</view>
<view class="num-list">
<view class="num-item">
<view class="txt">
<text>12345投诉</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>
</view>
<view class="card">
<view class="title">回访记录</view>
<view class="log-list">
<view class="log-item" wx:for="{{2}}">
<view>
<view class="user">
<view class="tag blue">电话回访</view>
<view class="name">杨平(网格长)</view>
</view>
<view class="date">2023-08-23</view>
</view>
<image src="../../../images/right.png" mode="widthFix" class="icon"/>
</view>
</view>
</view>
</view>

165
subpages/statistics/pages/dissatisfied/detial/detail.wxss

@ -1 +1,164 @@
/* subpages/statistics/pages/dissatisfied/detial/detail.wxss */
page {
background: #f7f7f7;
}
.statistics-container {
padding: 20rpx;
}
.user-info {
background: #FFFFFF;
border-radius: 20rpx;
padding: 30rpx;
}
.user-info .name {
font-size: 32rpx;
font-weight: bold;
color: #333333;
margin-bottom: 30rpx;
}
.user-info .address {
font-size: 28rpx;
font-weight: 400;
color: #666666;
padding-bottom: 30rpx;
margin-bottom: 30rpx;
border-bottom: 1px solid #EAEAEA;
}
.user-info .text {
font-size: 30rpx;
font-weight: 500;
color: #333333;
line-height: 46rpx;
}
.user-info .time {
font-size: 26rpx;
font-weight: 400;
color: #C1C1C1;
}
.card {
background: #fff;
border-radius: 20rpx;
padding: 30rpx;
margin-top: 20rpx;
}
.card .title {
font-size: 34rpx;
font-weight: bold;
color: #333333;
display: flex;
align-items: center;
margin-left: -30rpx;
margin-bottom: 39rpx;
position: relative;
}
.card .title:before {
content: '';
display: block;
width: 10rpx;
height: 28rpx;
background: #3A80E7;
border-radius: 4rpx;
margin-right: 20rpx;
}
.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: 27%;
}
.num-list .num-item:nth-of-type(2):after {
left: 64%;
}
.num-list .num-item:last-child:after {
display: none;
}
.num-list .num-item .txt {
font-size: 28rpx;
font-weight: 500;
color: #999999;
margin-bottom: 30rpx;
}
.num-list .num-item .num {
font-size: 42rpx;
font-weight: bold;
color: #333333;
}
.tag {
display: inline-block;
line-height: 40rpx;
height: 40rpx;
border-radius: 20rpx;
font-size: 26rpx;
font-weight: 500;
padding: 0 20rpx;
margin-right: 30rpx;
}
.blue {
background: rgba(79, 148, 255, 0.14);
color: #4F94FF;
}
.orange {
background: rgba(255, 120, 60, 0.14);
color: #FF783C;
}
.green {
background: rgba(4, 184, 173, 0.14);
color: #04B8AD;
}
.red {
color: #FA1919;
background: rgba(255, 48, 27, 0.14);
}
.log-item {
border-bottom: 1px solid #EAEAEA;
padding: 30rpx 0;
}
.log-item .user {
display: flex;
align-items: center;
}
.log-item .tag {
margin-right: 17px;
}
.log-item .icon {
width: 48rpx;
height: 48rpx;
}
.log-item .name {
font-size: 32rpx;
font-weight: 500;
color: #333333;
}
.log-item .date {
font-size: 28rpx;
font-weight: 500;
color: #C1C1C1;
margin-top: 17rpx;
}
.log-item {
display: flex;
justify-content: space-between;
align-items: center;
}

64
subpages/statistics/pages/dissatisfied/list/list.js

@ -1,66 +1,18 @@
// subpages/statistics/pages/dissatisfied/list/list.js
Page({
/**
* 页面的初始数据
*/
data: {
month:'',
typeIndex: -1,
typeList: []
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {
onConfirm() {
},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage() {
gotopage(e) {
wx.navigateTo({
url: 'subpages/statistics/pages/dissatisfied/detial/detail?id='+e.currentTarget.dataset.id
})
}
})

3
subpages/statistics/pages/dissatisfied/list/list.json

@ -1,4 +1,5 @@
{
"navigationBarTitleText": "不满意事项详细",
"usingComponents": {}
"usingComponents": {
}
}

124
subpages/statistics/pages/dissatisfied/list/list.wxml

@ -1,2 +1,122 @@
<!--subpages/statistics/pages/dissatisfied/list/list.wxml-->
<text>subpages/statistics/pages/dissatisfied/list/list.wxml</text>
<view class="screen">
<picker
mode="date"
model:value="{{ month }}"
fields="month"
bind:change="onConfirm"
>
<view class="picker">
<text>{{ month ? month : '按月度' }}</text>
<image src="../../../images/down.png" mode="widthFix"/>
</view>
</picker>
<picker
model:value="{{ typeIndex }}"
fields="month"
bind:change="onConfirm"
>
<view class="picker-type">
<text>{{ typeIndex >= 0 ? typeList[typeIndex].label : '按类型' }}</text>
<image src="../../../images/down2.png" mode="widthFix"/>
</view>
</picker>
<view class="btn">筛选</view>
</view>
<view class="statistics-container">
<view class="card-list">
<view class="head">
<view class="month">8<text>月</text>
</view>
<view class="head-right">
<view class="txt">不满意事项: 132项</view>
<view class="txt">不满意人数: 110人</view>
</view>
</view>
<view class="content">
<view class="item" bind:tap="gotopage" data-id="1">
<view class="user-info">
<view class="name">
杨萍 133****9000
</view>
<view class="tag blue">12345投诉</view>
</view>
<view class="date">
<view class="time">2023-08-12 15:30:20</view>
<view class="type">违章建筑</view>
</view>
<view class="describe">
村前的老宅有个饭店,想要扩建二层,周边村民都 不同意,该居民想自行加高,对此不满,要求停止
建设,希望责任部门尽快落实该信息·
</view>
</view>
<view class="item">
<view class="user-info">
<view class="name">
杨萍 133****9000
<view class="tag red">风险</view>
</view>
<view class="tag orange">省满意度调查</view>
</view>
<view class="date">
<view class="time">2023-08-12 15:30:20</view>
<view class="type">违章建筑</view>
</view>
<view class="describe">
村前的老宅有个饭店,想要扩建二层,周边村民都 不同意,该居民想自行加高,对此不满,要求停止
建设,希望责任部门尽快落实该信息·
</view>
</view>
</view>
</view>
<view class="card-list">
<view class="head">
<view class="month">7<text>月</text>
</view>
<view class="head-right">
<view class="txt">不满意事项: 132项</view>
<view class="txt">不满意人数: 110人</view>
</view>
</view>
<view class="content">
<view class="item">
<view class="user-info">
<view class="name">
杨萍 133****9000
</view>
<view class="tag blue">12345投诉</view>
</view>
<view class="date">
<view class="time">2023-08-12 15:30:20</view>
<view class="type">违章建筑</view>
</view>
<view class="describe">
村前的老宅有个饭店,想要扩建二层,周边村民都 不同意,该居民想自行加高,对此不满,要求停止
建设,希望责任部门尽快落实该信息·
</view>
</view>
<view class="item">
<view class="user-info">
<view class="name">
杨萍 133****9000
</view>
<view class="tag green">社区满意度自查</view>
</view>
<view class="date">
<view class="time">2023-08-12 15:30:20</view>
<view class="type">违章建筑</view>
</view>
<view class="describe">
村前的老宅有个饭店,想要扩建二层,周边村民都 不同意,该居民想自行加高,对此不满,要求停止
建设,希望责任部门尽快落实该信息·
</view>
</view>
</view>
</view>
</view>

177
subpages/statistics/pages/dissatisfied/list/list.wxss

@ -1 +1,176 @@
/* subpages/statistics/pages/dissatisfied/list/list.wxss */
page {
background: #f7f7f7;
}
.screen {
display: flex;
justify-content: space-between;
background: #fff;
padding: 18rpx 22rpx;
}
.picker {
width: 241rpx;
height: 56rpx;
background: rgba(58, 128, 231, 0.16);
border: 1px solid #3A80E7;
border-radius: 28rpx;
font-size: 30rpx;
font-weight: 500;
color: #3A80E7;
line-height: 56rpx;
display: flex;
align-items: center;
justify-content: space-between;
padding: 0 30rpx;
box-sizing: border-box;
}
.picker-type image,
.picker image {
width: 24rpx;
height: 24rpx;
}
.picker-type {
display: flex;
align-items: center;
justify-content: space-between;
padding: 0 30rpx;
box-sizing: border-box;
width: 301rpx;
height: 56rpx;
background: rgba(193, 193, 193, 0.16);
border: 1px solid #DBDBDB;
border-radius: 28rpx;
font-size: 30rpx;
font-weight: 500;
color: #C1C1C1;
line-height: 56rpx;
text-align: center;
}
.btn {
width: 120rpx;
height: 56rpx;
line-height: 56rpx;
background: #3A80E7;
border-radius: 28rpx;
font-size: 28rpx;
font-weight: 500;
color: #FFFFFF;
text-align: center;
}
.statistics-container {
padding: 0 20rpx 20rpx;
}
.card-list {
margin-top: 20rpx;
padding: 0 30rpx;
background: #fff;
}
.head {
border-bottom: 1px solid #EAEAEA;
display: flex;
align-items: center;
justify-content: space-between;
padding: 30rpx 0;
}
.month {
font-size: 54rpx;
font-weight: bold;
color: #3A80E7;
}
.month text {
font-size: 26rpx;
font-weight: 500;
}
.head-right {
display: flex;
font-size: 28rpx;
font-weight: 500;
color: #666666;
}
.head-right .txt {
margin-left: 30rpx;
}
.card-list .content .item {
padding: 30rpx 0;
border-bottom: 1px solid #EAEAEA;
}
.card-list .content .item .user-info {
display: flex;
align-items: center;
justify-content: space-between;
}
.card-list .content .item .user-info .name {
font-size: 32rpx;
font-weight: 500;
color: #333333;
}
.tag {
display: inline-block;
line-height: 40rpx;
height: 40rpx;
border-radius: 20rpx;
font-size: 26rpx;
font-weight: 500;
padding: 0 20rpx;
}
.blue {
background: rgba(79, 148, 255, 0.14);
color: #4F94FF;
}
.orange {
background: rgba(255, 120, 60, 0.14);
color: #FF783C;
}
.green {
background: rgba(4, 184, 173, 0.14);
color: #04B8AD;
}
.red {
color: #FA1919;
background: rgba(255, 48, 27, 0.14);
}
.date {
display: flex;
align-items: center;
justify-content: space-between;
margin: 15rpx 0 29rpx;
}
.date .time {
font-size: 26rpx;
font-weight: 500;
color: #C1C1C1;
}
.date .type {
font-size: 24rpx;
font-weight: 500;
color: #999999;
}
.describe {
font-size: 30rpx;
font-weight: 500;
color: #333333;
line-height: 46rpx;
}

Loading…
Cancel
Save