Browse Source
# Conflicts: # pages/statistics/statistics.json # pages/statistics/statistics.wxmljw-featrue-zhanlibiao
44 changed files with 1482 additions and 126 deletions
@ -0,0 +1,50 @@ |
|||
const app = getApp() |
|||
Component({ |
|||
data: { |
|||
selected: 0, |
|||
color: "#999", |
|||
selectedColor: "#3A80E7", |
|||
"list": [ |
|||
{ |
|||
"pagePath": "/pages/index/index", |
|||
"text": "消息", |
|||
"iconPath": "/images/home/message.png", |
|||
"selectedIconPath": "/images/home/messageSelected.png" |
|||
}, |
|||
{ |
|||
"pagePath": "/pages/work/work", |
|||
"text": "工作", |
|||
"iconPath": "/images/home/work.png", |
|||
"selectedIconPath": "/images/home/workSelected.png" |
|||
}, |
|||
{ |
|||
"pagePath": "/pages/statistics/statistics", |
|||
"text": "统计", |
|||
"iconPath": "/images/home/information.png", |
|||
"selectedIconPath": "/images/home/informationSelected.png" |
|||
}, |
|||
{ |
|||
"pagePath": "/pages/mine/mine", |
|||
"text": "我的", |
|||
"iconPath": "/images/home/mine.png", |
|||
"selectedIconPath": "/images/home/mineSelected.png" |
|||
} |
|||
] |
|||
}, |
|||
attached() { |
|||
}, |
|||
ready: function() { |
|||
this.setData({ |
|||
selected: app.globalData.selected |
|||
}) |
|||
}, |
|||
methods: { |
|||
switchTab(e) { |
|||
console.log(e); |
|||
const data = e.currentTarget.dataset; |
|||
const url = data.path; |
|||
app.globalData.selected = data.index; |
|||
wx.switchTab({url}) |
|||
} |
|||
} |
|||
}) |
|||
@ -0,0 +1,4 @@ |
|||
{ |
|||
"component": true, |
|||
"usingComponents": {} |
|||
} |
|||
@ -0,0 +1,17 @@ |
|||
<view class="tab-bar"> |
|||
|
|||
<view wx:for="{{list}}" wx:key="index" class="tab-bar-item" data-path="{{item.pagePath}}" data-index="{{index}}" bindtap="switchTab"> |
|||
<!-- <image src="{{selected === index ? item.selectedIconPath : item.iconPath}}"></image> --> |
|||
<!-- <view style="color: {{selected === index ? selectedColor : color}}">{{item.text}}</view> --> |
|||
<!-- <view > |
|||
<image wx:if="{{index!=selected}}" src="{{item.iconPath}}"></image> |
|||
<image wx:else class="bigicon" src="{{item.selectedIconPath}}"></image> |
|||
<view wx:if="{{index!=selected}}" style="color: {{selected === index ? selectedColor : color}}">{{item.text}}</view> |
|||
</view> --> |
|||
<view > |
|||
<image src="{{selected === index ? item.selectedIconPath : item.iconPath}}"></image> |
|||
<view style="color: {{selected === index ? selectedColor : color}}">{{item.text}}</view> |
|||
</view> |
|||
<view class="isIPhoneXRegexBottom"></view> |
|||
</view> |
|||
</view> |
|||
@ -0,0 +1,38 @@ |
|||
.tab-bar { |
|||
position: fixed; |
|||
bottom: 0; |
|||
left: 0; |
|||
right: 0; |
|||
height: auto; |
|||
background: white; |
|||
display: flex; |
|||
box-shadow: 0px 6rpx 18rpx 0px rgba(216,216,216,0.66); |
|||
} |
|||
.isIPhoneXRegexBottom { |
|||
padding-bottom: constant(safe-area-inset-bottom); /*兼容 IOS<11.2*/ |
|||
padding-bottom: env(safe-area-inset-bottom); /*兼容 IOS>11.2*/ |
|||
} |
|||
|
|||
.tab-bar-item { |
|||
flex: 1; |
|||
text-align: center; |
|||
display: flex; |
|||
justify-content: center; |
|||
align-items: center; |
|||
flex-direction: column; |
|||
padding-top: 10rpx; |
|||
} |
|||
|
|||
.tab-bar-item image { |
|||
width: 54rpx; |
|||
height: 54rpx; |
|||
} |
|||
/* .tab-bar-item image.bigicon{ |
|||
width: 70rpx; |
|||
height: 70rpx; |
|||
} */ |
|||
.tab-bar-item view { |
|||
font-size: 22rpx; |
|||
color:#999999 |
|||
} |
|||
|
|||
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 144 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 1.5 KiB |
@ -1,4 +1,6 @@ |
|||
{ |
|||
"usingComponents": {}, |
|||
"usingComponents": { |
|||
"custom-tab-bar":"../../components/custom-tab-bar" |
|||
}, |
|||
"navigationStyle": "custom" |
|||
} |
|||
@ -1,3 +1,6 @@ |
|||
{ |
|||
"navigationStyle": "custom" |
|||
"navigationStyle": "custom", |
|||
"usingComponents": { |
|||
"custom-tab-bar":"../../components/custom-tab-bar" |
|||
} |
|||
} |
|||
@ -0,0 +1,129 @@ |
|||
// subpages/communitySelfInsp/pages/dissatisfactionDetails/dissatisfactionDetails.js
|
|||
import {getInspResult} from "../../../../utils/api" |
|||
Page({ |
|||
|
|||
/** |
|||
* 页面的初始数据 |
|||
*/ |
|||
data: { |
|||
tableData:[], |
|||
pageNo:1, |
|||
pageSize:20, |
|||
lowerThreshold:'10', |
|||
loadMoreVisible:false, |
|||
loadMoreType: "none", |
|||
nodata:false |
|||
}, |
|||
|
|||
/** |
|||
* 生命周期函数--监听页面加载 |
|||
*/ |
|||
onLoad(options) { |
|||
console.log(options); |
|||
this.setData({ |
|||
satisfactionCategory:options.category, |
|||
inspRecordId:options.inspRecordId |
|||
}) |
|||
this.getInspResult() |
|||
}, |
|||
|
|||
/** |
|||
* 生命周期函数--监听页面初次渲染完成 |
|||
*/ |
|||
onReady() { |
|||
|
|||
}, |
|||
|
|||
/** |
|||
* 生命周期函数--监听页面显示 |
|||
*/ |
|||
onShow() { |
|||
|
|||
}, |
|||
|
|||
/** |
|||
* 生命周期函数--监听页面隐藏 |
|||
*/ |
|||
onHide() { |
|||
|
|||
}, |
|||
|
|||
/** |
|||
* 生命周期函数--监听页面卸载 |
|||
*/ |
|||
onUnload() { |
|||
|
|||
}, |
|||
|
|||
/** |
|||
* 页面相关事件处理函数--监听用户下拉动作 |
|||
*/ |
|||
onPullDownRefresh() { |
|||
|
|||
}, |
|||
|
|||
/** |
|||
* 页面上拉触底事件的处理函数 |
|||
*/ |
|||
onReachBottom() { |
|||
|
|||
}, |
|||
onScrollToLower(e){ |
|||
if (this.data.loadMoreType === 'more') { |
|||
this.setData({ |
|||
loadMoreVisible: true, |
|||
}) |
|||
this.data.pageNo += 1 |
|||
this.getInspResult() |
|||
} |
|||
}, |
|||
getInspResult(){ |
|||
this.setData({ |
|||
loadMoreVisible: true, |
|||
nodata: false, |
|||
loadMoreType: "more", |
|||
}) |
|||
let parm = { |
|||
inspRecordId:this.data.inspRecordId, |
|||
satisfactionCategory:this.data.satisfactionCategory, |
|||
satisfactionLevel:'bad', |
|||
pageNo:this.data.pageNo, |
|||
pageSize:this.data.pageSize |
|||
} |
|||
if(!parm.type) delete parm.type |
|||
getInspResult(parm).then(res=>{ |
|||
this.setData({ |
|||
loadMoreType: res.data.list.length === this.data.pageSize ? 'more' : 'none', |
|||
tableData: this.data.tableData.concat(res.data.list), |
|||
}) |
|||
if (this.data.tableData.length == 0) { |
|||
this.setData({ |
|||
loadMoreVisible: false, |
|||
nodata: true |
|||
}) |
|||
} |
|||
}).catch(err=>{ |
|||
console.log(err); |
|||
this.setData({ |
|||
loadMoreVisible: false, |
|||
nodata: true, |
|||
}) |
|||
}) |
|||
}, |
|||
handleClickPhone(e){ |
|||
wx.makePhoneCall({ |
|||
phoneNumber: e.currentTarget.dataset.mobile, |
|||
}) |
|||
}, |
|||
toFollowUpDetails(e){ |
|||
wx.navigateTo({ |
|||
url: `/subpages/communitySelfInsp/pages/followUpDetail/followUpDetail?resiInfo=${JSON.stringify(e.currentTarget.dataset.item)}&type=add`, |
|||
}) |
|||
}, |
|||
/** |
|||
* 用户点击右上角分享 |
|||
*/ |
|||
onShareAppMessage() { |
|||
|
|||
} |
|||
}) |
|||
@ -0,0 +1,7 @@ |
|||
{ |
|||
"usingComponents": { |
|||
"load-more": "../../../../components/loadMore/loadMore", |
|||
"no-data": "../../../../components/noData/nodata" |
|||
}, |
|||
"navigationBarTitleText": "不满意结果明细" |
|||
} |
|||
@ -0,0 +1,19 @@ |
|||
<!--subpages/communitySelfInsp/pages/dissatisfactionDetails/dissatisfactionDetails.wxml--> |
|||
<view class="content"> |
|||
<scroll-view class="scroll" scroll-y="{{true}}" lower-threshold="{{ lowerThreshold }}" bindscrolltolower="onScrollToLower"> |
|||
<view class="card" wx:for="{{tableData}}" wx:key="index" > |
|||
<view class="title" > |
|||
<view>{{item.reporterName}} {{item.reporterMobile}}</view> |
|||
<view><text class="red" bind:tap="handleClickPhone" data-mobile="{{item.reporterMobile}}">打电话</text> <text class="blue" bind:tap="toFollowUpDetails" data-item="{{item}}">回访记录</text> </view> |
|||
</view> |
|||
<view class="{{item.followUpStatus == 1?'blue_small':'red_small'}}"> {{ item.followUpStatus!= null?item.followUpStatus == -1 ?'不接受回访':item.followUpStatus == 1 ?'已回访':'接受回访/未回访':'--' }} |
|||
</view> |
|||
<view class="bottom"> |
|||
不满意原因:{{item.reason}} |
|||
</view> |
|||
</view> |
|||
<load-more loadVisible="{{loadMoreVisible}}" loadType="{{loadMoreType}}" ></load-more> |
|||
<no-data isShow="{{nodata}}" wx:if="{{nodata}}"></no-data> |
|||
</scroll-view> |
|||
|
|||
</view> |
|||
@ -0,0 +1,80 @@ |
|||
/* subpages/communitySelfInsp/pages/dissatisfactionDetails/dissatisfactionDetails.wxss */ |
|||
page { |
|||
width: 100%; |
|||
min-height: 100vh; |
|||
overflow-y: scroll; |
|||
background-color: #f7f7f7; |
|||
} |
|||
.red, |
|||
.blue{ |
|||
font-size: 28rpx; |
|||
color: #fff; |
|||
padding: 8rpx 20rpx ; |
|||
border-radius: 40rpx; |
|||
box-sizing: border-box; |
|||
margin-right: 16rpx; |
|||
} |
|||
.red{ |
|||
background-color: #ff783c; |
|||
} |
|||
.blue{ |
|||
background-color: #4f94ff; |
|||
} |
|||
.blue_small, |
|||
.red_small{ |
|||
font-size: 26rpx; |
|||
width: fit-content; |
|||
padding: 8rpx 16rpx; |
|||
border-radius: 40rpx; |
|||
box-sizing: border-box; |
|||
height: 40rpx; |
|||
line-height: 20rpx; |
|||
margin: 24rpx 0 ; |
|||
|
|||
} |
|||
.blue_small{ |
|||
background-color: #eef4fd; |
|||
color: #5693EE; |
|||
} |
|||
.red_small{ |
|||
background-color: #fff1eb; |
|||
color: #FF783C; |
|||
} |
|||
.content{ |
|||
width: 100%; |
|||
padding:0 20rpx ; |
|||
box-sizing: border-box; |
|||
margin-top: 20rpx; |
|||
} |
|||
.content .scroll { |
|||
height: calc(100vh - 50rpx); |
|||
overflow-y: scroll; |
|||
} |
|||
.content .card{ |
|||
width: 100%; |
|||
background-color: #fff; |
|||
display: flex; |
|||
height: 236rpx; |
|||
flex-direction: column; |
|||
border-radius: 20rpx; |
|||
padding: 30rpx 30rpx; |
|||
box-sizing: border-box; |
|||
overflow: hidden; |
|||
color: #333; |
|||
|
|||
} |
|||
.content .card .title{ |
|||
display: flex; |
|||
justify-content: space-between; |
|||
} |
|||
/* */ |
|||
.content .card .bottom{ |
|||
border-bottom: 2rpx #EAEAEA solid; |
|||
padding-bottom: 20rpx; |
|||
display: -webkit-box; |
|||
-webkit-box-orient: vertical; |
|||
-webkit-line-clamp: 2; |
|||
width: 100%; /* 根据实际情况调整 */ |
|||
max-height: 100rpx; /* 根据字体大小和行高调整 */ |
|||
min-height:50rpx ; |
|||
} |
|||
@ -0,0 +1,185 @@ |
|||
const app = getApp() |
|||
import api from "../../../../utils/api"; |
|||
Page({ |
|||
|
|||
/** |
|||
* 页面的初始数据 |
|||
*/ |
|||
data: { |
|||
resiInfo:{}, |
|||
followUpWayName:"", |
|||
title:'回访记录', |
|||
formType:'add', |
|||
followUpWayList:[ |
|||
{ |
|||
label:'电话回访', |
|||
value:'1' |
|||
}, |
|||
{ |
|||
label:'上门回访', |
|||
value:'2' |
|||
} |
|||
], |
|||
inspResultId:'', |
|||
form:{ |
|||
riskFlag:null,//风险标识 0无风险 1有风险
|
|||
description:'',//回访记录详情
|
|||
followUpWay:'',//1电话回访 2上门回访
|
|||
}, |
|||
}, |
|||
|
|||
/** |
|||
* 生命周期函数--监听页面加载 |
|||
*/ |
|||
onLoad(options) { |
|||
console.log(options); |
|||
let temp = JSON.parse(options.resiInfo); |
|||
console.log(temp); |
|||
this.setData({ |
|||
statusHeight: app.globalData.deviceInfo.statusHeight, |
|||
navigationHeight: app.globalData.deviceInfo.navigationHeight, |
|||
formType:options.type |
|||
}) |
|||
if(options.type == 'add'){ |
|||
this.setData({ |
|||
resiInfo:temp, |
|||
inspResultId:temp.id, |
|||
}) |
|||
}else{ |
|||
this.setData({ |
|||
resiInfo:temp, |
|||
'resiInfo.reason':temp.reason, |
|||
inspResultId:temp.inspResultId, |
|||
"form.followUpWay":temp.followUpWay, |
|||
"form.description":temp.description, |
|||
"form.riskFlag":temp.riskFlag, |
|||
followUpWayName:temp.followUpWayName |
|||
}) |
|||
|
|||
} |
|||
}, |
|||
|
|||
/** |
|||
* 生命周期函数--监听页面初次渲染完成 |
|||
*/ |
|||
onReady() { |
|||
|
|||
}, |
|||
|
|||
/** |
|||
* 生命周期函数--监听页面显示 |
|||
*/ |
|||
onShow() { |
|||
|
|||
}, |
|||
|
|||
/** |
|||
* 生命周期函数--监听页面隐藏 |
|||
*/ |
|||
onHide() { |
|||
|
|||
}, |
|||
|
|||
/** |
|||
* 生命周期函数--监听页面卸载 |
|||
*/ |
|||
onUnload() { |
|||
|
|||
}, |
|||
|
|||
/** |
|||
* 页面相关事件处理函数--监听用户下拉动作 |
|||
*/ |
|||
onPullDownRefresh() { |
|||
|
|||
}, |
|||
|
|||
/** |
|||
* 页面上拉触底事件的处理函数 |
|||
*/ |
|||
onReachBottom() { |
|||
|
|||
}, |
|||
|
|||
/** |
|||
* 用户点击右上角分享 |
|||
*/ |
|||
onShareAppMessage() { |
|||
|
|||
}, |
|||
bindPickerChangefollowUpWay(e){ |
|||
const selectedIndex = e.detail.value; |
|||
const selectedVillage = this.data.followUpWayList[selectedIndex]; |
|||
this.setData({ |
|||
'form.followUpWay': selectedVillage.value, |
|||
followUpWayName:selectedVillage.label |
|||
}); |
|||
}, |
|||
handleBlurDescription(e){ |
|||
this.setData({ |
|||
'form.description': e.detail.value |
|||
}) |
|||
}, |
|||
handleChangeRisk(e){ |
|||
console.log(e); |
|||
this.setData({ |
|||
'form.riskFlag': Number(e.detail.value) |
|||
}) |
|||
}, |
|||
|
|||
submit(){ |
|||
let parm ={ |
|||
...this.data.form, |
|||
inspResultId:this.data.inspResultId, |
|||
id:this.data.formType == 'add'?'':this.data.resiInfo.id |
|||
} |
|||
console.log(parm); |
|||
wx.showLoading({ |
|||
title: '加载中', |
|||
}) |
|||
api.followUpSave(parm).then(res=>{ |
|||
console.log(res); |
|||
if(res.code == 0){ |
|||
wx.hideLoading() |
|||
wx.showToast({ |
|||
title: this.data.formType == 'add'?'新增成功':'修改成功', |
|||
duration:3000, |
|||
success:function(){ |
|||
setTimeout(()=>{ |
|||
wx.navigateBack({ |
|||
delta: 1 |
|||
}) |
|||
},3000) |
|||
} |
|||
}) |
|||
} |
|||
}).catch(err=>{ |
|||
console.log(err); |
|||
}) |
|||
}, |
|||
del(){ |
|||
api.followUpDelete(this.data.resiInfo.id).then(res=>{ |
|||
if(res.code == 0){ |
|||
wx.hideLoading() |
|||
wx.showToast({ |
|||
title: '删除成功', |
|||
duration:3000, |
|||
success:function(){ |
|||
setTimeout(()=>{ |
|||
wx.navigateBack({ |
|||
delta: 1 |
|||
}) |
|||
},3000) |
|||
} |
|||
}) |
|||
} |
|||
}).catch(err=>{ |
|||
console.log(err); |
|||
}) |
|||
}, |
|||
back(){ |
|||
wx.navigateBack({ |
|||
delta: 1 |
|||
}) |
|||
} |
|||
}) |
|||
@ -0,0 +1,4 @@ |
|||
{ |
|||
"navigationStyle": "custom", |
|||
"usingComponents": {} |
|||
} |
|||
@ -0,0 +1,51 @@ |
|||
<view class="header"> |
|||
<image src="../../../../images/back.png" class="back" style=" top: {{statusHeight}}px;width: 30rpx;height: 30rpx;" bindtap="back" mode="" /> |
|||
<view class="navigation" style="height: {{navigationHeight}}px; top: {{statusHeight}}px;"> |
|||
{{title}} |
|||
</view> |
|||
</view> |
|||
<view class="content"> |
|||
<view class="content_header"> |
|||
<view class="{{formType == 'add'?'bto_bor':''}}"> |
|||
<view> {{resiInfo.reporterName}} {{resiInfo.reporterMobile}}</view> |
|||
<view class="gray font28" style="margin: 20rpx 0;">{{resiInfo.addressDetail?resiInfo.addressDetail:'--'}}</view> |
|||
</view> |
|||
<view style="margin-top: 20rpx;" wx:if="{{formType == 'add'}}"> |
|||
不满意原因:{{resiInfo.reason}} |
|||
</view> |
|||
</view> |
|||
<view class="content_form"> |
|||
<view class="bto_bor form_item" style="color:#333;font-weight: bold;">填写回访记录</view> |
|||
<view class="form_item bto_bor"> |
|||
<view class="label"> |
|||
<view class="title" style="color: #333333">回访方式</view> |
|||
</view> |
|||
<view class="input"> |
|||
<picker bindchange="bindPickerChangefollowUpWay" range-key="label" value="{{index}}" range="{{followUpWayList}}"> |
|||
<view class="{{form.followUpWay?'':'gray'}}"> |
|||
{{followUpWayName?followUpWayName:'请选择'}} |
|||
</view> |
|||
</picker> |
|||
<image src="../../../../images/right.png" mode=""/> |
|||
</view> |
|||
</view> |
|||
<view > |
|||
<view style="margin-top: 20rpx; color: #333333">回访情况记录</view> |
|||
<view> |
|||
<textarea style="background-color: #f7f7f7; border-radius: 10rpx; padding: 30rpx;margin-top: 20rpx;" value="{{form.description}}" bindinput="handleBlurDescription" bindblur="handleBlurDescription" placeholder="请详细填写回访情况(不超过500字)"/> |
|||
</view> |
|||
</view> |
|||
<view style="margin-bottom: 80rpx;"> |
|||
<view style="margin-top: 20rpx; color: #333333">是否还为不满意风险人员</view> |
|||
<view> |
|||
<radio-group bindchange="handleChangeRisk" value="{{form.riskFlag}}" style="margin-top: 20rpx;"> |
|||
<radio color="#70acfc" checked="{{form.riskFlag === 0}}" value="0"/>否 |
|||
<radio color="#70acfc" checked="{{form.riskFlag === 1}}" style="margin-left: 20rpx;" value="1"/>是 |
|||
</radio-group> |
|||
|
|||
</view> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
<view class="fixed_btn" wx:if="{{formType == 'add'}}"><button bind:tap="submit" >提交</button></view> |
|||
<view class="flex" wx:else> <button class="edit_button" bind:tap="submit" >修改</button> <button class="del_button" bind:tap="del">删除</button> </view> |
|||
@ -0,0 +1,179 @@ |
|||
page { |
|||
width: 100%; |
|||
min-height: 100vh; |
|||
overflow-y: auto; |
|||
background-color: #f7f7f7; |
|||
} |
|||
.header { |
|||
width: 100%; |
|||
height: 532rpx; |
|||
background: linear-gradient(180deg, #7DB5FF 0%, #E8F2FF 66%, #F7F7F7 100%); |
|||
} |
|||
|
|||
.header .header-bg { |
|||
width: 100%; |
|||
height: 100%; |
|||
/* position: absolute; |
|||
z-index: 10; |
|||
left: 0; |
|||
top: 0; */ |
|||
position: absolute; |
|||
height: 100%; |
|||
z-index: -999; |
|||
} |
|||
|
|||
.gray{ |
|||
color: #666666; |
|||
|
|||
} |
|||
|
|||
.font28{ |
|||
font-size: 28rpx; |
|||
} |
|||
|
|||
.bto_bor{ |
|||
border-bottom: 2rpx #EAEAEA solid; |
|||
} |
|||
.header .navigation { |
|||
width: 100%; |
|||
display: flex; |
|||
align-items: center; |
|||
justify-content: center; |
|||
font-size: 32rpx; |
|||
position: relative; |
|||
z-index: 1; |
|||
} |
|||
.back { |
|||
width: 30rpx; |
|||
height: 30rpx; |
|||
margin-left: 20rpx; |
|||
position: absolute; |
|||
margin-top: 25rpx; |
|||
border-radius: 0rpx; |
|||
z-index: 2; |
|||
} |
|||
.content{ |
|||
height: auto; |
|||
width: 100%; |
|||
overflow: hidden; |
|||
position: relative; |
|||
top: -380rpx; |
|||
padding: 0 20rpx; |
|||
box-sizing: border-box; |
|||
} |
|||
.content .content_header{ |
|||
display: flex; |
|||
flex-direction: column; |
|||
background: linear-gradient(to bottom right, #d1e7f7 0%, #E8F2FF 20%, #F7F7F7 100%); |
|||
border-radius:20rpx; |
|||
padding: 30rpx; |
|||
box-sizing: border-box; |
|||
} |
|||
.content .content_form{ |
|||
height: auto; |
|||
width: 100%; |
|||
overflow: hidden; |
|||
padding: 0 20rpx; |
|||
box-sizing: border-box; |
|||
background-color: #FFFFFF; |
|||
margin-top: 17rpx; |
|||
border-radius: 20rpx; |
|||
} |
|||
.form_item{ |
|||
display: flex; |
|||
align-items: center; |
|||
height: 100rpx; |
|||
} |
|||
|
|||
.form_item .label{ |
|||
width: 130rpx; |
|||
height: 100%; |
|||
line-height: 100rpx; |
|||
font-size: 32rpx; |
|||
font-family: PingFang SC; |
|||
font-weight: 500; |
|||
color: #666666; |
|||
position: relative; |
|||
} |
|||
.form_item .label .must{ |
|||
font-size: 32rpx; |
|||
font-weight: 500; |
|||
color: #FF2A00; |
|||
position: absolute; |
|||
left: -18rpx; |
|||
top: 50%; |
|||
transform: translateY(-50rpx); |
|||
} |
|||
.form_item .input{ |
|||
flex: 1; |
|||
display: flex; |
|||
justify-content: space-around; |
|||
align-items: center; |
|||
margin-left: 51rpx; |
|||
overflow: hidden; |
|||
|
|||
} |
|||
.form_item .input .residentCategorySty{ |
|||
flex: 1; |
|||
overflow: hidden; |
|||
text-overflow: ellipsis; |
|||
white-space: nowrap; |
|||
} |
|||
.form_item .input picker, |
|||
.form_item .input input{ |
|||
flex: 1; |
|||
} |
|||
.form_item image{ |
|||
height: 22rpx; |
|||
width: 22rpx; |
|||
} |
|||
|
|||
.fixed_btn{ |
|||
display: flex; |
|||
justify-content: center; |
|||
position: fixed; |
|||
bottom: 30rpx; |
|||
left: 50%; |
|||
transform: translateX(-184rpx); |
|||
} |
|||
.fixed_btn button{ |
|||
width: 360rpx; |
|||
height: 76rpx; |
|||
background: linear-gradient(87deg, #81B5FB 0%, #3E92FF 100%); |
|||
border-radius: 76rpx !important; |
|||
font-size: 32rpx; |
|||
font-weight: 400 !important; |
|||
font-family: PingFang SC; |
|||
color: #FFFFFF; |
|||
|
|||
} |
|||
.flex{ |
|||
display: flex; |
|||
justify-content: space-between; |
|||
width: 100%; |
|||
position: fixed; |
|||
bottom: 30rpx; |
|||
left: 50%; |
|||
transform: translateX(-360rpx); |
|||
} |
|||
.flex .edit_button{ |
|||
width: 280rpx; |
|||
height: 76rpx; |
|||
background: linear-gradient(87deg, #81B5FB 0%, #3E92FF 100%); |
|||
border-radius: 76rpx !important; |
|||
font-size: 32rpx; |
|||
font-weight: 400 !important; |
|||
font-family: PingFang SC; |
|||
color: #FFFFFF; |
|||
} |
|||
.flex .del_button{ |
|||
width: 280rpx; |
|||
height: 76rpx; |
|||
background: linear-gradient(87deg, #fb9c5a 0%, #ff7a3d 100%); |
|||
border-radius: 76rpx !important; |
|||
font-size: 32rpx; |
|||
font-weight: 400 !important; |
|||
font-family: PingFang SC; |
|||
color: #FFFFFF; |
|||
} |
|||
|
|||
@ -0,0 +1,131 @@ |
|||
import {getFollowUpList} from "../../../../utils/api" |
|||
const app = getApp() |
|||
Page({ |
|||
/** |
|||
* 页面的初始数据 |
|||
*/ |
|||
data: { |
|||
tableData:[], |
|||
pageNo:1, |
|||
pageSize:7, |
|||
lowerThreshold:'10', |
|||
loadMoreVisible:false, |
|||
loadMoreType: "none", |
|||
nodata:false |
|||
}, |
|||
|
|||
/** |
|||
* 生命周期函数--监听页面加载 |
|||
*/ |
|||
onLoad(options) { |
|||
this.setData({ |
|||
satisfactionCategory:options.category, |
|||
inspRecordId:options.inspRecordId, |
|||
createdBy:app.globalData.user.id |
|||
}) |
|||
}, |
|||
|
|||
/** |
|||
* 生命周期函数--监听页面初次渲染完成 |
|||
*/ |
|||
onReady() { |
|||
|
|||
}, |
|||
|
|||
/** |
|||
* 生命周期函数--监听页面显示 |
|||
*/ |
|||
onShow() { |
|||
this.setData({ |
|||
pageNo:1, |
|||
tableData:[] |
|||
}) |
|||
this.getFollowUpList() |
|||
}, |
|||
|
|||
/** |
|||
* 生命周期函数--监听页面隐藏 |
|||
*/ |
|||
onHide() { |
|||
|
|||
}, |
|||
|
|||
/** |
|||
* 生命周期函数--监听页面卸载 |
|||
*/ |
|||
onUnload() { |
|||
|
|||
}, |
|||
|
|||
/** |
|||
* 页面相关事件处理函数--监听用户下拉动作 |
|||
*/ |
|||
onPullDownRefresh() { |
|||
|
|||
}, |
|||
|
|||
/** |
|||
* 页面上拉触底事件的处理函数 |
|||
*/ |
|||
onReachBottom() { |
|||
|
|||
}, |
|||
onScrollToLower(e){ |
|||
if (this.data.loadMoreType === 'more') { |
|||
this.setData({ |
|||
loadMoreVisible: true, |
|||
}) |
|||
this.data.pageNo += 1 |
|||
this.getFollowUpList() |
|||
} |
|||
}, |
|||
getFollowUpList(){ |
|||
this.setData({ |
|||
loadMoreVisible: true, |
|||
nodata: false, |
|||
loadMoreType: "more", |
|||
}) |
|||
let parm = { |
|||
inspRecordId:'', |
|||
createdBy:this.data.createdBy, |
|||
pageNo:this.data.pageNo, |
|||
pageSize:this.data.pageSize |
|||
} |
|||
if(!parm.type) delete parm.type |
|||
getFollowUpList(parm).then(res=>{ |
|||
this.setData({ |
|||
loadMoreType: res.data.list.length === this.data.pageSize ? 'more' : 'none', |
|||
tableData: this.data.tableData.concat(res.data.list), |
|||
}) |
|||
if (this.data.tableData.length == 0) { |
|||
this.setData({ |
|||
loadMoreVisible: false, |
|||
nodata: true |
|||
}) |
|||
} |
|||
}).catch(err=>{ |
|||
console.log(err); |
|||
this.setData({ |
|||
loadMoreVisible: false, |
|||
nodata: true, |
|||
}) |
|||
}) |
|||
}, |
|||
handleClickPhone(e){ |
|||
wx.makePhoneCall({ |
|||
phoneNumber: e.currentTarget.dataset.mobile, |
|||
}) |
|||
}, |
|||
toFollowUpDetail(e){ |
|||
wx.navigateTo({ |
|||
url: `/subpages/communitySelfInsp/pages/followUpDetail/followUpDetail?resiInfo=${JSON.stringify(e.currentTarget.dataset.item)}&type=edit`, |
|||
}) |
|||
|
|||
}, |
|||
/** |
|||
* 用户点击右上角分享 |
|||
*/ |
|||
onShareAppMessage() { |
|||
|
|||
} |
|||
}) |
|||
@ -0,0 +1,7 @@ |
|||
{ |
|||
"usingComponents": { |
|||
"load-more": "../../../../components/loadMore/loadMore", |
|||
"no-data": "../../../../components/noData/nodata" |
|||
}, |
|||
"navigationBarTitleText": "我的回访记录" |
|||
} |
|||
@ -0,0 +1,19 @@ |
|||
<!--subpages/communitySelfInsp/pages/dissatisfactionDetails/dissatisfactionDetails.wxml--> |
|||
<view class="content"> |
|||
<scroll-view class="scroll" scroll-y="{{true}}" lower-threshold="{{ lowerThreshold }}" bindscrolltolower="onScrollToLower"> |
|||
<view class="card" wx:for="{{tableData}}" wx:key="index" data-item="{{item}}" bind:tap="toFollowUpDetail"> |
|||
<view class="title" > |
|||
<view> |
|||
<text class="{{item.followUpWay == '1'?'blue_small':'red_small'}}">{{item.followUpWayName}}</text> |
|||
{{item.reporterName}} {{item.reporterMobile}} |
|||
</view> |
|||
</view> |
|||
<view class="bottom"> |
|||
<view style="color: #999999 ;">{{item.addressDetail != null?item.addressDetail:'--'}}</view> |
|||
<view style="color: #C1C1C1;">{{item.followUpTime}}</view> |
|||
</view> |
|||
</view> |
|||
<load-more loadVisible="{{loadMoreVisible}}" loadType="{{loadMoreType}}" ></load-more> |
|||
<no-data isShow="{{nodata}}" wx:if="{{nodata}}"></no-data> |
|||
</scroll-view> |
|||
</view> |
|||
@ -0,0 +1,75 @@ |
|||
page { |
|||
width: 100%; |
|||
min-height: 100vh; |
|||
overflow-y: scroll; |
|||
background-color: #f7f7f7; |
|||
} |
|||
.red, |
|||
.blue{ |
|||
font-size: 28rpx; |
|||
color: #fff; |
|||
padding: 8rpx 20rpx ; |
|||
border-radius: 40rpx; |
|||
box-sizing: border-box; |
|||
margin-right: 16rpx; |
|||
} |
|||
.red{ |
|||
background-color: #ff783c; |
|||
} |
|||
.blue{ |
|||
background-color: #4f94ff; |
|||
} |
|||
.blue_small, |
|||
.red_small{ |
|||
font-size: 26rpx; |
|||
width: fit-content; |
|||
padding: 8rpx 16rpx; |
|||
border-radius: 40rpx; |
|||
box-sizing: border-box; |
|||
height: 40rpx; |
|||
line-height: 20rpx; |
|||
margin: 24rpx 0 ; |
|||
|
|||
} |
|||
.blue_small{ |
|||
background-color: #eef4fd; |
|||
color: #5693EE; |
|||
} |
|||
.red_small{ |
|||
background-color: #fff1eb; |
|||
color: #FF783C; |
|||
} |
|||
.content{ |
|||
width: 100%; |
|||
padding:0 20rpx ; |
|||
margin-top: 20rpx; |
|||
box-sizing: border-box; |
|||
} |
|||
.content .scroll { |
|||
height: calc(100vh - 50rpx); |
|||
overflow-y: scroll; |
|||
} |
|||
.content .card{ |
|||
width: 100%; |
|||
background-color: #fff; |
|||
display: flex; |
|||
height: 180rpx; |
|||
flex-direction: column; |
|||
border-radius: 20rpx; |
|||
padding: 30rpx 30rpx; |
|||
box-sizing: border-box; |
|||
overflow: hidden; |
|||
color: #333; |
|||
} |
|||
.content .card .title{ |
|||
display: flex; |
|||
justify-content: space-between; |
|||
} |
|||
.content .card .bottom{ |
|||
display: flex; |
|||
justify-content: space-between; |
|||
align-items: center; |
|||
margin-top: 30rpx; |
|||
border-bottom: 2rpx #EAEAEA solid; |
|||
padding-bottom: 20rpx; |
|||
} |
|||
@ -0,0 +1,116 @@ |
|||
// subpages/communitySelfInsp/pages/synthesis/synthesis.js
|
|||
const app = getApp() |
|||
import {getSynthesis} from '../../../../utils/api' |
|||
Page({ |
|||
|
|||
/** |
|||
* 页面的初始数据 |
|||
*/ |
|||
data: { |
|||
agencyName:'',//组织名称
|
|||
tableData:[], |
|||
monthName:'',//月份
|
|||
personQty:'',//提交人数
|
|||
synthesisScore:'',//综合得分
|
|||
inspRecordId:'',//自查表Id
|
|||
fontSize:'' |
|||
}, |
|||
|
|||
/** |
|||
* 生命周期函数--监听页面加载 |
|||
*/ |
|||
onLoad(options) { |
|||
this.setData({ |
|||
statusHeight: app.globalData.deviceInfo.statusHeight, |
|||
navigationHeight: app.globalData.deviceInfo.navigationHeight, |
|||
}) |
|||
|
|||
this.getSynthesis() |
|||
}, |
|||
|
|||
getSynthesis(){ |
|||
let parm = { |
|||
period:'2023-09', |
|||
inspRecordId:'' |
|||
} |
|||
getSynthesis(parm).then(res=>{ |
|||
this.setData({ |
|||
tableData:res.data.categoryDatas, |
|||
monthName:res.data.monthName, |
|||
synthesisScore:res.data.synthesisScore, |
|||
personQty:res.data.personQty, |
|||
agencyName:res.data.agencyName, |
|||
inspRecordId:res.data.inspRecordId |
|||
}) |
|||
const textContent = res.data.agencyName; // 替换为你实际的内容
|
|||
if (textContent.length > 5) { // 选择一个合适的长度作为调整字体大小的标准
|
|||
this.setData({ |
|||
fontSize: '38rpx' // 选择一个适当的较小字体大小
|
|||
}); |
|||
} |
|||
}).catch((err)=>{ |
|||
console.log(err); |
|||
}) |
|||
}, |
|||
|
|||
/** |
|||
* 生命周期函数--监听页面初次渲染完成 |
|||
*/ |
|||
onReady() { |
|||
|
|||
}, |
|||
|
|||
/** |
|||
* 生命周期函数--监听页面显示 |
|||
*/ |
|||
onShow() { |
|||
|
|||
}, |
|||
|
|||
/** |
|||
* 生命周期函数--监听页面隐藏 |
|||
*/ |
|||
onHide() { |
|||
|
|||
}, |
|||
|
|||
/** |
|||
* 生命周期函数--监听页面卸载 |
|||
*/ |
|||
onUnload() { |
|||
|
|||
}, |
|||
|
|||
/** |
|||
* 页面相关事件处理函数--监听用户下拉动作 |
|||
*/ |
|||
onPullDownRefresh() { |
|||
|
|||
}, |
|||
|
|||
/** |
|||
* 页面上拉触底事件的处理函数 |
|||
*/ |
|||
onReachBottom() { |
|||
|
|||
}, |
|||
|
|||
/** |
|||
* 用户点击右上角分享 |
|||
*/ |
|||
onShareAppMessage() { |
|||
|
|||
}, |
|||
toDissatisfactionDetails(e){ |
|||
console.log(e); |
|||
let category = e.currentTarget.dataset.item.satisfactionCategory |
|||
wx.navigateTo({ |
|||
url: `/subpages/communitySelfInsp/pages/dissatisfactionDetails/dissatisfactionDetails?inspRecordId=${this.data.inspRecordId}&category=${category}`, |
|||
}) |
|||
}, |
|||
back(){ |
|||
wx.navigateBack({ |
|||
delta: 1 |
|||
}) |
|||
}, |
|||
}) |
|||
@ -0,0 +1,4 @@ |
|||
{ |
|||
"navigationStyle": "custom", |
|||
"usingComponents": {} |
|||
} |
|||
@ -0,0 +1,63 @@ |
|||
<view class="header"> |
|||
<image class="header-bg" src="../../../../images/work/bg.png" mode="widthFix" /> |
|||
<image src="../../../../images/back.png" class="back" bind:tap="back" style=" top: {{statusHeight}}px;width: 30rpx;height: 30rpx;" bindtap="back" mode=""/> |
|||
<view class="navigation" style="height: {{navigationHeight}}px; top: {{statusHeight}}px;"> |
|||
社区满意度自查 |
|||
</view> |
|||
<view class="content"> |
|||
<view class="h2" style="font-size: {{fontSize}};">{{agencyName}}{{monthName}}月份满意度自查</view> |
|||
<view class="tag"> <image src="../../../../images/tag.png" mode=""/> 进行中</view> |
|||
</view> |
|||
</view> |
|||
|
|||
<view class="body"> |
|||
<view class="top"> |
|||
<image src="../../../../images/work/messageBg.png" class="bg" mode=""/> |
|||
<view class="top_box"> |
|||
<view class="cnm"> |
|||
<view class="tagB">提交人数</view> |
|||
<view class="blue"> <b>{{personQty}}</b>人 </view> |
|||
</view> |
|||
<view> |
|||
<view class="tagR">目前得分</view> |
|||
<view class="red"> <b>{{synthesisScore}}</b>分 </view> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
<view class="bto"> |
|||
<view class="th"> |
|||
<view class="tr"> |
|||
<view class="td"> |
|||
类型 |
|||
</view> |
|||
<view class="td"> |
|||
满意 |
|||
</view> |
|||
<view class="td"> |
|||
基本满意 |
|||
</view> |
|||
<view class="td"> |
|||
不满意 |
|||
</view> |
|||
</view> |
|||
</view> |
|||
<view class="tr {{index%2 == 0?'tr_bg':''}}" wx:for="{{tableData}}" wx:key="index"> |
|||
<view class="td"> |
|||
{{item.satisfactionCategoryName}} |
|||
</view> |
|||
<view class="td"> |
|||
{{item.veryGoodQty}} |
|||
</view> |
|||
<view class="td"> |
|||
{{item.goodQty}} |
|||
</view> |
|||
<view class="td" style="color:#FF502E " data-item="{{item}}" bind:tap="toDissatisfactionDetails"> |
|||
{{item.badQty}} <image src="../../../../images/work/rightCri.png" mode=""/> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
<!-- |
|||
<view class="bto_btn"> |
|||
<view>分享给好友参与测评</view> |
|||
</view> --> |
|||
@ -0,0 +1,162 @@ |
|||
/* subpages/communitySelfInsp/pages/synthesis/synthesis.wxss */ |
|||
page { |
|||
width: 100%; |
|||
min-height: 100vh; |
|||
overflow-y: scroll; |
|||
background-color: #f7f7f7; |
|||
} |
|||
.header { |
|||
width: 100%; |
|||
height: 464rpx; |
|||
/* position: fixed; |
|||
top: 0; |
|||
left: 0; |
|||
z-index: 1000; */ |
|||
overflow: hidden; |
|||
} |
|||
.blue{ |
|||
color: #3A80E7 ; |
|||
} |
|||
.red{ |
|||
color: #FF502E; |
|||
} |
|||
.header .header-bg { |
|||
width: 100%; |
|||
height: 444rpx; |
|||
position: absolute; |
|||
height: 100%; |
|||
z-index: -997; |
|||
} |
|||
.header .navigation { |
|||
width: 100%; |
|||
display: flex; |
|||
align-items: center; |
|||
justify-content: center; |
|||
color: #333333; |
|||
font-size: 32rpx; |
|||
position: relative; |
|||
z-index: 100; |
|||
} |
|||
.back{ |
|||
width: 30rpx; |
|||
height: 30rpx; |
|||
margin-left: 20rpx; |
|||
position: absolute; |
|||
margin-top: 25rpx; |
|||
border-radius: 0rpx; |
|||
z-index: 101; |
|||
} |
|||
.header .content{ |
|||
margin: 140rpx 0 0 69rpx; |
|||
} |
|||
.header .content .h2{ |
|||
font-size: 44rpx; |
|||
font-family: PingFang SC; |
|||
font-weight: 800; |
|||
color: #333333; |
|||
margin-bottom: 40rpx; |
|||
width: 330rpx; |
|||
} |
|||
.header .content .tag{ |
|||
width: 170rpx; |
|||
height: 50rpx; |
|||
position: relative; |
|||
line-height: 48rpx; |
|||
font-size: 28rpx; |
|||
font-family: PingFang SC; |
|||
font-weight: 500; |
|||
color: #FFFFFF; |
|||
padding-left: 35rpx; |
|||
} |
|||
.header .content .tag image { |
|||
width: 170rpx; |
|||
height: 50rpx; |
|||
position: absolute; |
|||
top: 0; |
|||
left: 0; |
|||
z-index: -888; |
|||
} |
|||
.body{ |
|||
padding: 0 20rpx; |
|||
box-sizing: border-box; |
|||
position: relative; |
|||
top: -30rpx; |
|||
overflow: hidden; |
|||
} |
|||
.body .top .bg{ |
|||
position: absolute; |
|||
top: 0; |
|||
width: 100%; |
|||
height: 200rpx; |
|||
z-index: -996; |
|||
} |
|||
.body .top .top_box{ |
|||
display: flex; |
|||
justify-content: space-around; |
|||
} |
|||
.body .top .top_box>view{ |
|||
width: 50%; |
|||
height: 200rpx; |
|||
display: flex; |
|||
flex-direction: column; |
|||
justify-content: center; |
|||
align-items: center; |
|||
position: relative; |
|||
top: 20rpx; |
|||
color: #666666; |
|||
} |
|||
.body .top .top_box>view b{ |
|||
font-size: 50rpx; |
|||
} |
|||
.body .top .top_box>view .tagB, |
|||
.body .top .top_box>view .tagR |
|||
{ |
|||
position: relative; |
|||
} |
|||
.body .top .top_box>view .tagB::after{ |
|||
display: inline-block; |
|||
content: ''; |
|||
width:18rpx; |
|||
height: 18rpx; |
|||
background-color: #3A80E7; |
|||
position: absolute; |
|||
left: -30rpx; |
|||
top: 10rpx; |
|||
} |
|||
.body .top .top_box>view .tagR::after{ |
|||
display: inline-block; |
|||
content: ''; |
|||
width:18rpx; |
|||
height: 18rpx; |
|||
background-color: #FF502E ; |
|||
position: absolute; |
|||
left: -30rpx; |
|||
top: 10rpx; |
|||
} |
|||
.body .bto{ |
|||
border-radius: 10rpx; |
|||
background-color: #fff; |
|||
padding: 30rpx; |
|||
margin-top: 20rpx; |
|||
} |
|||
.body .bto .th .tr{ |
|||
color: #333333; |
|||
} |
|||
.body .bto .tr{ |
|||
display: flex; |
|||
justify-content: space-around; |
|||
align-items: center; |
|||
height: 90rpx; |
|||
color: #666666; |
|||
} |
|||
.body .bto .tr_bg{ |
|||
background-color: #f0f5fd; |
|||
} |
|||
.body .bto .tr .td{ |
|||
width: 25%; |
|||
text-align: center; |
|||
} |
|||
.body .bto .tr .td image{ |
|||
width: 24rpx; |
|||
height: 24rpx; |
|||
} |
|||
Loading…
Reference in new issue