Browse Source

退出登录,身份证认证页面,诉求摸排完成

jw-featrue-zhanlibiao
mk 2 years ago
parent
commit
2dcdd57e64
  1. 10
      app.json
  2. BIN
      images/card.png
  3. BIN
      images/message/header_bg.jpg
  4. 5
      pages/mine/mine.js
  5. 10
      pages/mine/mine.wxml
  6. 3
      pages/resetPassword/resetPassword.json
  7. 2
      pages/resetPassword/resetPassword.wxml
  8. 1
      pages/resetPassword/resetPassword.wxss
  9. 11
      pages/work/work.js
  10. 4
      pages/work/work.wxml
  11. 7
      project.private.config.json
  12. 4
      subpages/communitySelfInsp/pages/historyQuery/historyQuery.js
  13. 6
      subpages/communitySelfInsp/pages/synthesis/synthesis.js
  14. 461
      subpages/demandCheck/pages/dissatisfied/demandCheck/demandCheck.js
  15. 116
      subpages/demandCheck/pages/dissatisfied/demandCheck/demandCheck.wxml
  16. 15
      subpages/demandCheck/pages/dissatisfied/searchResi/searchResi.js
  17. 10
      subpages/demandCheck/pages/dissatisfied/searchResi/searchResi.wxml
  18. 8
      subpages/demandCheck/pages/dissatisfied/searchResi/searchResi.wxss
  19. 25
      subpages/settings/pages/index/index.js
  20. 4
      subpages/settings/pages/index/index.json
  21. 23
      subpages/settings/pages/index/index.wxml
  22. 42
      subpages/settings/pages/index/index.wxss
  23. 14
      utils/api.js
  24. 3
      utils/config.js

10
app.json

@ -8,8 +8,7 @@
"pages/mine/mine",
"pages/webView/webView",
"pages/statistics/statistics",
"pages/setup/setup",
"pages/resetPassword/resetPassword"
"pages/setup/setup"
],
"subPackages": [
{
@ -74,6 +73,13 @@
"pages/dissatisfied/searchResi/searchResi"
]
},
{
"root": "subpages/settings",
"name": "settings",
"pages": [
"pages/index/index"
]
}
],
"window": {

BIN
images/card.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

BIN
images/message/header_bg.jpg

Binary file not shown.

Before

Width:  |  Height:  |  Size: 78 KiB

After

Width:  |  Height:  |  Size: 29 KiB

5
pages/mine/mine.js

@ -86,5 +86,10 @@ Page({
wx.navigateTo({
url: '/subpages/communitySelfInsp/pages/followUpList/followUpList',
})
},
toSettings(){
wx.navigateTo({
url: '/subpages/settings/pages/index/index',
})
}
})

10
pages/mine/mine.wxml

@ -45,12 +45,12 @@
</view>
<view class="right"> <image src="../../images/right.png" mode=""/></view>
</view>
<view class="item">
<view class="item" bind:tap="toSettings">
<view class="left">
<image src="../../images/mine/sz.png" mode=""/>
<view>设置</view>
</view>
<view class="right"> <image src="../../images/right.png" mode=""/></view>
<image src="../../images/mine/sz.png" mode=""/>
<view>设置</view>
</view>
<view class="right"> <image src="../../images/right.png" mode=""/></view>
</view>
</view>
</view>

3
pages/resetPassword/resetPassword.json

@ -1,3 +0,0 @@
{
"usingComponents": {}
}

2
pages/resetPassword/resetPassword.wxml

@ -1,2 +0,0 @@
<!--pages/resetPassword/resetPassword.wxml-->
<text>pages/resetPassword/resetPassword.wxml</text>

1
pages/resetPassword/resetPassword.wxss

@ -1 +0,0 @@
/* pages/resetPassword/resetPassword.wxss */

11
pages/work/work.js

@ -195,12 +195,17 @@ Page({
},
toSynthesis(){
wx.navigateTo({
url: '/subpages/communitySelfInsp/pages/synthesis/synthesis',
})
url: `/subpages/communitySelfInsp/pages/synthesis/synthesis?inspRecordId=${this.data.communitySelfInspTop.id}`,
})
},
toWebView(){
wx.navigateTo({
url: '/subpages/communitySelfInsp/pages/synthesis/synthesis',
url: `/subpages/communitySelfInsp/pages/synthesis/synthesis?inspRecordId=${this.data.communitySelfInspTop.id}`,
})
},
toDetail(e){
wx.navigateTo({
url: `/subpages/communitySelfInsp/pages/synthesis/synthesis?inspRecordId=${e.currentTarget.dataset.item.id}`,
})
},
handelClickShare(e) {

4
pages/work/work.wxml

@ -57,7 +57,7 @@
<image src="../../images/work/center.png" mode="" class="center_image"/>
</view>
</view>
<!-- <image src="../../images/work/sqmp.png" bind:tap="toDemandCheck" class="center_img" mode=""/> -->
<image src="../../images/work/sqmp.png" bind:tap="toDemandCheck" class="center_img" mode=""/>
<view class="bto">
<view class="title">
<view>满意度自查</view>
@ -80,7 +80,7 @@
</view>
</view>
<view class="list">
<view class="list_card" wx:for="{{communitySelfInspList}}" wx:key="index">
<view class="list_card" wx:for="{{communitySelfInspList}}" wx:key="index" data-item="{{item}}" bind:tap="toDetail">
<view class="left">
<view>{{item.agencyName}}{{item.monthName}}月份满意度自查</view>
<view class="submit">已提交:{{item.personQty}}人</view>

7
project.private.config.json

@ -8,6 +8,13 @@
"condition": {
"miniprogram": {
"list": [
{
"name": "设置",
"pathName": "subpages/settings/pages/index/index",
"query": "",
"launchMode": "default",
"scene": null
},
{
"name": "选择居民",
"pathName": "subpages/demandCheck/pages/dissatisfied/searchResi/searchResi",

4
subpages/communitySelfInsp/pages/historyQuery/historyQuery.js

@ -150,7 +150,9 @@ Page({
// url: `/subpages/addhouse/pages/addhouse/addhouse?type=edit&houseId=${e.currentTarget.dataset.item.id}`,
// })
// }
wx.navigateTo({
url: `/subpages/communitySelfInsp/pages/synthesis/synthesis?inspRecordId=${e.currentTarget.dataset.item.id}`,
})
},
back() {
//返回上一级,关闭当前页面

6
subpages/communitySelfInsp/pages/synthesis/synthesis.js

@ -20,9 +20,11 @@ Page({
* 生命周期函数--监听页面加载
*/
onLoad(options) {
console.log(options);
this.setData({
statusHeight: app.globalData.deviceInfo.statusHeight,
navigationHeight: app.globalData.deviceInfo.navigationHeight,
inspRecordId:options.inspRecordId
})
this.getSynthesis()
@ -30,8 +32,8 @@ Page({
getSynthesis(){
let parm = {
period:'2023-09',
inspRecordId:''
period:'',
inspRecordId:this.data.inspRecordId
}
getSynthesis(parm).then(res=>{
this.setData({

461
subpages/demandCheck/pages/dissatisfied/demandCheck/demandCheck.js

@ -19,13 +19,16 @@ Page({
voiceList:[],
latitude:"",
longitude:"",
resiId:"1698525635288653825",
resiId:"",
happenTime:"",
content:"",//内容
address:""//地址
address:"",//地址
wantServiceTime:"",
reportType:''
},
minDate: '2018-01-01 00:00:00',
timeLabel: '',
tabVal:"0",
uploadImageList: [],//图片上传的数组
streetList: [], // 街道
@ -61,21 +64,25 @@ Page({
// defaultFieldNames: { label: 'agencyName', value: 'agencyId', children: 'subAgencyList' },
angencyVisible: false,
angencyValue: [],
measureList:[],
measureValue:'',
measureVisible:false,
reportUserName:'',
reportUserMobile:'',
showWantServiceTimeTime:'',
reportTypeList:[],//上报类型
reportTypeVisible:false
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
console.log(options);
if(options.resiId){
this.setData({
"fmData.resiId":options.resiId,
resiName:options.resiName,
resiMobile:options.mobile
})
}
this.data.qqMapWX = new QQMapWX({
key: 'CMJBZ-4DECI-JXGGN-5B4WU-QLV2H-B5BEJ'
})
@ -84,9 +91,13 @@ Page({
})
this.setData({
'fmData.time': Date.now(),
angencyId:app.globalData.user.agencyId
angencyId:app.globalData.user.agencyId,
reportUserName:app.globalData.user.realName,
reportUserMobile:app.globalData.user.phone,
})
this.getAgencygridtree()
this.getDemandoption()
this.getDictList()
},
// 组织树
getAgencygridtree() {
@ -103,15 +114,33 @@ Page({
console.log(err);
})
},
getDictList(){
api.getDictList('user_demand_report_type').then(res=>{
console.log(res);
this.setData({
reportTypeList:res.data
})
}).catch(err=>{
console.log(err);
})
},
getDemandoption(){
api.getDemandoption().then(res=>{
console.log(res);
this.setData({
measureList:res.data
})
}).catch(err=>{
console.log(err);
})
},
// 触底函数
onReachBottom() {
if (this.projectlist) {
this.projectlist.onReachBottom()
}
},
//跳转地图选点
toughGetLocation() {
this.getLocation(false);
wx.chooseLocation({
@ -180,20 +209,82 @@ Page({
}
if (this.data.uploadImageList.length > 0) {
this.data.uploadImageList.forEach(item => {
imagesList.push(item.ossUrl)
imagesList.push({format:item.format,originFileName:item.originFileName,url:item.ossUrl.url,type:item.type})
})
}
this.setData({
'fmData.attachmentList': imagesList,
})
console.log(this.data.fmData);
this.submitItem()
console.log(this.data.tabVal);
if(!this.data.fmData.gridId){
this.showToast('所属组织不能为空')
return
}
if(this.data.tabVal === '1'){
if(!this.data.fmData.content){
this.showToast('需求描述不能为空')
return
}
if(!this.data.fmData.content){
this.showToast('需求描述不能为空')
return
}
if(!this.data.fmData.categoryCode){
this.showToast('需求类型不能为空')
return
}
if(!this.data.fmData.reportType){
this.showToast('上报类型不能为空')
return
}
if(!this.data.fmData.happenTime){
this.showToast('需求时间不能为空')
return
}
if(!this.data.fmData.wantServiceTime){
this.showToast('服务时间不能为空')
return
}
if(!this.data.fmData.resiId){
this.showToast('需求人不能为空')
return
}
if(!this.data.resiMobile){
this.showToast('需求人电话不能为空')
return
}
}else{
if(!this.data.fmData.content){
this.showToast('事件描述不能为空')
return
}
if(!this.data.fmData.happenTime){
this.showToast('发生时间不能为空')
return
}
if(!this.data.fmData.address){
this.showToast('发生地点不能为空')
return
}
if(!this.data.fmData.resiId){
this.showToast('联系人不能为空')
return
}
if(!this.data.resiMobile){
this.showToast('联系人电话不能为空')
return
}
}
if(this.data.tabVal ==='1'){
this.submitMeasure()
}else{
this.submitEven()
}
},
// 提交接口
submitItem() {
// 事件提交接口
submitEven() {
wx.showLoading({
title: '提交中...',
mask: true
@ -202,35 +293,127 @@ Page({
submitDisabled: true
})
const para = this.data.fmData
para.resiId = '1501821695344775169'
para.gridId = '9c55c566524a8b171df57a792d2933bd'
para.happenTime = '2023-04-05 03:07:00'
console.log(para,'事件');
api.addEvent(para).then(res => {
wx.hideLoading()
console.log(res);
if (res.code === 0) {
wx.showModal({
title: '提示',
content: `您的诉求我们已经查收,正在快马加鞭办理,请您耐心等待`,
confirmText: '确认',
showCancel: false,
success: res => {
this.setData({
submitDisabled: false,
uploadImageList: [],
uploadRecord: {
uploaded: true,
url: ""
},
agencyName:'',
showTime:'',
resiName:'',
resiMobile:'',
'fmData.time':'',
'fmData.gridId':'',
'fmData.attachmentList':[],//图片
'fmData.voiceList':[],
'fmData.latitude':"",
'fmData.longitude':"",
'fmData.resiId':"",
'fmData.happenTime':"",
'fmData.content':"",//内容
'fmData.address':"",//地址
'fmData.wantServiceTime':"",
'fmData.reportType':''
})
}
})
wx.removeStorageSync('resiDetail')
} else {
wx.showToast({
title: "提交失败,请重试~",
icon: "none",
duration: 1500
})
this.setData({
submitDisabled: false
})
}
}).catch(err => {
console.log(err)
wx.hideLoading()
this.setData({
submitDisabled: false
})
})
},
// 个性服务提交
submitMeasure(){
wx.showLoading({
title: '提交中...',
mask: true
})
this.setData({
submitDisabled: true
})
let {categoryCode,content,happenTime,resiId,gridId,attachmentList,voiceList,wantServiceTime,parentCode,reportType} = this.data.fmData
const para ={
categoryCode,
content,
reportUserName:this.data.reportUserName,
reportTime:happenTime,
reportUserMobile:this.data.reportUserMobile,
demandUserId:resiId,
gridId,
reportType,
attachmentList:[...attachmentList,...voiceList],
wantServiceTime,
parentCode:parentCode
}
console.log(para,'服务');
api.addMeasure(para).then(res => {
wx.hideLoading()
console.log(res);
if (res.data) {
wx.showModal({
title: '提示',
content: `您的诉求我们已经查收,正在快马加鞭办理,请您耐心等待\r\n诉求编号为:${res.data}`,
content: `您的求我们已经查收,正在快马加鞭办理,请您耐心等待`,
confirmText: '确认',
showCancel: false,
success: res => {
this.setData({
submitDisabled: false,
'personalInfo.nickname': '',
'personalInfo.itemContent': '',
'personalInfo.itemVoice': '',
'personalInfo.duration': '',
'personalInfo.images': [],
uploadImageList: [],
uploadRecord: {
uploaded: true,
url: ""
},
agencyName:'',
showTime:'',
resiName:'',
resiMobile:'',
categoryName:'',
reportTypeName:'',
showWantServiceTimeTime:'',
'fmData.time':'',
'fmData.gridId':'',
'fmData.attachmentList':[],//图片
'fmData.voiceList':[],
'fmData.latitude':"",
'fmData.longitude':"",
'fmData.resiId':"",
'fmData.happenTime':"",
'fmData.content':"",//内容
'fmData.address':"",//地址
'fmData.wantServiceTime':"",
'fmData.reportType':''
})
this.projectlist = this.selectComponent('#projectlist')
}
})
wx.removeStorageSync('resiDetail')
} else {
wx.showToast({
title: "提交失败,请重试~",
@ -249,8 +432,6 @@ Page({
})
})
},
// 双向绑定 内容输入框
bindTextareaInput(e) {
this.setData({
@ -266,8 +447,6 @@ Page({
})
},
// 录音end
// 选择图片 上传弹窗 - 上传图片方式 - 选择图片 - 上传图片 - 回调赋值
chooseImage() {
if (this.data.uploadImageList.length > 3) {
@ -281,24 +460,28 @@ Page({
$wuxActionSheet().showSheet({
buttons: [
{ text: '拍照' },
{ text: '从相册中获取' },
{ text: '从相册中获取',openType:null, },
],
className: 'dialog-class',
buttonClicked(index) {
if (index === 0) {
wx.chooseImage({
wx.chooseMedia({
count: 1,
sizeType: ['original', 'compressed'],
sourceType: ['camera'],
success(res) {
console.log(res);
let deleteLength = _this.data.uploadImageList.length
const uploadImageList = [..._this.data.uploadImageList]
if (res.tempFiles[0].size <= 5 * 1024 * 1024) {
uploadImageList.push({
uploaded: false,
ossUrl: '',
imgUrl: res.tempFiles[0].path,
imageId: ++_this.data.imageId
imgUrl: res.tempFiles[0].tempFilePath,
imageId: ++_this.data.imageId,
type:res.tempFiles[0].tempFilePath.substr(res.tempFiles[0].tempFilePath.length -3,3),
format:"image",
name:'wximage'
})
} else {
_this.showToast('图片上限5M,请压缩后重试~')
@ -309,7 +492,7 @@ Page({
})
wx.uploadFile({
url: `${config.BASEURL()}oss/file/uploadvariedfile`,
filePath: res.tempFilePaths[0],
filePath: res.tempFiles[0].tempFilePath,
name: 'file',
header: {
'Content-type': 'application/json;charset=UTF-8',
@ -344,23 +527,25 @@ Page({
}
})
} else if (index === 1) {
wx.chooseImage({
wx.chooseMedia({
count: 1,
sizeType: ['original', 'compressed'],
type:'image',
sourceType: ['album'],
success(res) {
console.log(res,'图片上传的res');
console.log(res,'图片上传的res');
let deleteLength = _this.data.uploadImageList.length
const uploadImageList = []
const endIndex = _this.data.uploadImageList.length
res.tempFiles.forEach(item => {
res.tempFiles.forEach((item,index) => {
if (item.size <= 5 * 1024 * 1024) {
uploadImageList.push({
uploaded: false,
ossUrl: '',
imgUrl: item.path,
imageId: ++_this.data.imageId
imgUrl: item.tempFilePath,
imageId: ++_this.data.imageId,
format:"image",
type:item.tempFilePath.substr(item.tempFilePath.length -3,3),
originFileName:'image' + index + 1
})
} else {
_this.showToast('图片上限5M,请压缩后重试~')
@ -373,7 +558,7 @@ Page({
return (function (index) {
wx.uploadFile({
url: `${config.BASEURL()}oss/file/uploadvariedfile`,
filePath: res.tempFilePaths[index],
filePath: res.tempFiles[index].tempFilePath,
name: 'file',
header: {
'Content-type': 'application/json;charset=UTF-8',
@ -394,7 +579,6 @@ Page({
uploadImageList: [..._this.data.uploadImageList, ...uploadImageList]
})
}
console.log(_this.data.uploadImageList.length, '图片上传长度');
},
fail(fileRes) {
_this.setData({
@ -434,37 +618,6 @@ Page({
})
},
// 街道社区
getDeptTree() {
getDeptTree().then(res => {
this.setData({
streetList: res.data[0].children
})
if (this.data.personalInfo.streetId && this.data.personalInfo.communityId) {
this.data.streetList.forEach(element => {
if (element.value == this.data.personalInfo.streetId) {
this.setData({
'personalInfo.street': element.label,
communityList: element.children // 社区
})
// 循环社区
element.children.forEach(community => {
if (community.value == this.data.personalInfo.communityId) {
this.setData({
'personalInfo.community': community.label,
gridList: community.children
// 'personalInfo.grid': community.children[0].label, // 网格默认选择第一个
// 'personalInfo.gridId': community.children[0].value // 网格
})
}
});
}
});
}
}).catch(err => {
console.log(err)
})
},
// 单选点击事件
inputSyncPicker(e) {
let {
@ -518,8 +671,6 @@ Page({
if (this.data.personalInfo.communityId == element.value) {
this.setData({
gridList: element.children
// 'personalInfo.grid': element.children[0].label, // 网格默认选择第一个
// 'personalInfo.gridId': element.children[0].value // 网格
})
}
});
@ -532,12 +683,10 @@ Page({
success(res) {
console.log(res);
_this.setData({
fmData: {
addressContent: res.result.address,
address: res.result.address,
longitude:res.result.location.lng,
latitude:res.result.location.lat
},
addressContent:res.result.address,
'fmData.address': res.result.address,
'fmData.longitude':res.result.location.lng,
'fmData.latitude':res.result.location.lat,
})
},
fail(err) {
@ -547,32 +696,54 @@ Page({
},
onConfirmDate(e) {
console.log(e);
this.setData({
'fmData.happenTime': e.detail.label + ':00',
timeLabel: e.detail.displayValue.join(' '),
visibleTime: false
visibleTime: false,
showTime:e.detail.label + ':00'
})
},
onConfirmWantServiceTime(e){
this.setData({
'fmData.wantServiceTime': e.detail.label + ':00',
visibleTimeWantServiceTime: false,
showWantServiceTimeTime:e.detail.label + ':00'
})
},
onVisibleChange(e) {
this.setData({
// timeLabel: e.detail.displayValue.join(' '),
})
//时间组件隐藏
onCancel(e) {
this.setData({
visibleTime: false,
visibleTimeWantServiceTime:false
})
},
onCancel() {
bindMobile(e){
this.setData({
visibleTime: false
resiMobile:e.detail.value
})
},
showTimePicker() {
getCurrentDateTime() {
const date = new Date();
const year = date.getFullYear();
const month = (1 + date.getMonth()).toString().padStart(2, '0'); // Months are zero-based.
const day = date.getDate().toString().padStart(2, '0');
const hours = date.getHours().toString().padStart(2, '0');
const minutes = date.getMinutes().toString().padStart(2, '0');
const seconds = date.getSeconds().toString().padStart(2, '0');
return year + '-' + month + '-' + day + ' ' + hours + ':' + minutes + ':' + seconds;
},
showTimePicker(e) {
this.setData({
visibleTime: true
visibleTime: true,
maxDate:this.getCurrentDateTime(),
'fmData.happenTime':this.getCurrentDateTime(),
})
},
onPageScroll: function (e) {
if (this.projectlist) {
this.projectlist.onPageScroll(e)
}
showTimePickerW(e) {
this.setData({
visibleTimeWantServiceTime: true,
maxDate:this.getCurrentDateTime(),
'fmData.wantServiceTime':this.getCurrentDateTime(),
})
},
/**
@ -586,21 +757,28 @@ Page({
* 生命周期函数--监听页面显示
*/
onShow() {
let resiDetail = wx.getStorageSync('resiDetail')
if(resiDetail){
this.setData({
"fmData.resiId":resiDetail.resiId,
resiName:resiDetail.resiName,
resiMobile:resiDetail.resiMobile
})
}
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {
wx.removeStorageSync('resiDetail')
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {
wx.removeStorageSync('resiDetail')
},
/**
@ -616,9 +794,7 @@ Page({
*/
// /page/user?id=123
onShareAppMessage() {
return {
path: 'pages/peopleLivelihood/peopleLivelihood',
}
},
handleRecordDel() {
const { hasStop, isStart } = this.data
@ -700,20 +876,21 @@ Page({
recordingTime: '00:00'
})
} else {
let { recordingLength } = this.data
if (duration - (recordingLength * 1000) > 1000 ) duration = recordingLength * 1000
// let { recordingLength } = this.data
// if (duration - (recordingLength * 1000) > 1000 ) duration = recordingLength * 1000
let url = JSON.parse(fileRes.data).data.url
let fileName = Date.now()+ Math.floor(Math.random() * 1000)
this.setData({
"uploadRecord.uploaded": true,
"uploadRecord.url": JSON.parse(fileRes.data).data,
'fmData.voiceList':[JSON.parse(fileRes.data).data],
"uploadRecord.url": url,
'fmData.voiceList':[{url:url,format:null,type:'mp3',duration,originFileName:fileName.toString()}],
showRecord: false,
hasStart: false,
isStart: false,
recordingTime: '00:00',
duration
})
this.downLoadAudio()
console.log(this.data.uploadRecord);
console.log(this.data.fmData.voiceList);
}
},
fail: (fileRes) => {
@ -869,7 +1046,7 @@ Page({
showRecord: false
})
},
hidePicker() {
hidePickerAngency() {
this.setData({
angencyVisible: false
})
@ -880,18 +1057,25 @@ Page({
})
},
onConfirmAngecy(e) {
console.log(e);
this.setData({
agencyName: e.detail.label,
'fmData.gridId': e.detail.value[e.detail.value.length - 1],
angencyVisible: false
})
console.log(this.data.fmData);
},
onValueChange(e) {
onConfirmReportType(e){
console.log(e);
this.setData({
reportTypeName: e.detail.label,
'fmData.reportType': e.detail.value[0],
reportTypeVisible: false
})
},
hidePickerReportType(){
this.setData({
reportTypeVisible: false
})
},
// 播放逻辑
initDuration() {
var _a = this.data, duration = _a.duration;
@ -905,7 +1089,7 @@ Page({
downLoadAudio() {
var _this = this;
wx.downloadFile({
url: this.data.uploadRecord.url.url,
url: this.data.uploadRecord.url,
success(res) {
console.log(res);
if (res.statusCode === 200) {
@ -995,6 +1179,16 @@ Page({
});
console.log('innerAudioContext', innerAudioContext);
},
// 需求分类
onConfirmMeasure(e){
console.log(e);
this.setData({
'fmData.categoryCode':e.detail.selectedValue[1],
'fmData.parentCode':e.detail.selectedValue[0],
categoryName:e.detail.label,
measureVisible:false
})
},
slideChange(e) {
this.audioPause();
var value = e.detail.value;
@ -1017,6 +1211,27 @@ Page({
'fmData.voiceList':[]
})
},
showMeasurePicker(){
this.setData({
measureVisible:true
})
},
showReportTypePicker(){
this.setData({
reportTypeVisible:true
})
},
hidePickerMeasure(){
this.setData({
measureVisible:false
})
},
handleChangeType(e){
this.setData({
tabVal:e.detail.value
})
},
format(num) {
let min = parseInt(num / 1000 / 60)
let second = parseInt(num / 1000) % 60

116
subpages/demandCheck/pages/dissatisfied/demandCheck/demandCheck.wxml

@ -3,29 +3,49 @@
<view class="content">
<view class="personal-info">
<view class="basic-info">
<view class="item">
<view class="field">
<text class="must">*</text>
<view class="field-text">所属组织</view>
</view>
<view class="value" bind:tap="showPicker">
{{agencyName?agencyName:'请选择'}}
<view class="field">
<text class="must">*</text>
<view class="field-text">所属组织</view>
</view>
<view class="value-dl" bind:tap="showPicker">
<view class="di-name">{{agencyName?agencyName:'请选择'}}</view>
<image class="di-but" src="../../../../../images/right.png" mode="aspectFit" />
</view>
</view>
</view>
<view class="item">
<view class="field">
<text class="must">*</text>
<view class="field-text">诉求类型</view>
</view>
<view class="value-mobile">
<radio-group class="radio-group" bindchange="bindFlagChange">
<radio checked="{{personalInfo.showFlag === '0'}}" value="0" checked="true" color="#4193fe" class="radio">事件上报</radio>
<radio checked="{{personalInfo.showFlag === '1'}}" value="1" color="#4193fe" class="radio">居民需求</radio>
<radio-group class="radio-group" bind:change="handleChangeType">
<radio checked="{{tabVal === '0'}}" value="0" checked="true" color="#4193fe" class="radio">事件上报</radio>
<radio checked="{{tabVal === '1'}}" value="1" color="#4193fe" class="radio">居民需求</radio>
</radio-group>
</view>
</view>
<view class="item" wx:if="{{tabVal === '1'}}">
<view class="field" >
<text class="must">*</text>
<view class="field-text">需求类型</view>
</view>
<view class="value-dl" bind:tap="showMeasurePicker">
<view class="di-name">{{categoryName?categoryName:'请选择'}}</view>
<image class="di-but" src="../../../../../images/right.png" mode="aspectFit" />
</view>
</view>
<view class="item" wx:if="{{tabVal === '1'}}">
<view class="field" >
<text class="must">*</text>
<view class="field-text">上报类型</view>
</view>
<view class="value-dl" bind:tap="showReportTypePicker">
<view class="di-name">{{reportTypeName?reportTypeName:'请选择'}}</view>
<image class="di-but" src="../../../../../images/right.png" mode="aspectFit" />
</view>
</view>
</view>
</view>
@ -34,10 +54,10 @@
<view class="item">
<view class="field">
<text class="must">*</text>
<view class="field-text">事件描述</view>
<view class="field-text">{{tabVal==='1'?'需求描述':'事件描述'}}</view>
</view>
</view>
<textarea maxlength="500" value="{{fmData.itemContent}}" bindblur="bindTextareaInput" bindinput="bindTextareaInput" bindfocus="bindTextareaFocus" placeholder="请输入事件描述(不超过500字)">
<textarea maxlength="500" value="{{fmData.content}}" bindblur="bindTextareaInput" bindinput="bindTextareaInput" bindfocus="bindTextareaFocus" placeholder="请输入事件描述(不超过500字)">
</textarea>
<!-- 语音播放 -->
<view class="audio-play" wx:if="{{fmData.voiceList.length>0}}">
@ -79,27 +99,37 @@
<view class="item">
<view class="field">
<text class="must">*</text>
<view class="field-text">发生时间</view>
<view class="field-text">{{tabVal === '1'?'需求时间':'发生时间'}}</view>
</view>
<view class="value-dl" bind:tap="showTimePicker">
<view class="di-name">{{timeLabel?timeLabel:'请选择发生时间'}}</view>
<view class="di-name">{{showTime?showTime:'请选择'}}</view>
<image class="di-but" src="../../../../../images/right.png" mode="aspectFit" />
</view>
</view>
<view class="item">
<view class="item" wx:if="{{tabVal ==='1'}}">
<view class="field">
<text class="must">*</text>
<view class="field-text">服务时间 </view>
</view>
<view class="value-dl" bind:tap="showTimePickerW">
<view class="di-name">{{showWantServiceTimeTime?showWantServiceTimeTime:'请选择'}}</view>
<image class="di-but" src="../../../../../images/right.png" mode="aspectFit" />
</view>
</view>
<view class="item" wx:if="{{tabVal === '0'}}">
<view class="field">
<text class="must">*</text>
<view class="field-text">发生地点</view>
</view>
<view class="value-dl" bind:tap="toughGetLocation">
<view class="di-name">{{fmData.addressContent}}</view>
<view class="di-name">{{addressContent}}</view>
<image class="di-but" src="../../../../../images/right.png" mode="aspectFit" />
</view>
</view>
<view class="item">
<view class="field">
<text class="must">*</text>
<view class="field-text" >联系人</view>
<view class="field-text" >{{tabVal === '1'?'需求人':'联系人'}}</view>
</view>
<navigator hover-class="backC" class="value-dl" url="/subpages/demandCheck/pages/dissatisfied/searchResi/searchResi" >
<view class="di-name" >
@ -114,9 +144,10 @@
<view class="field-text">联系电话</view>
</view>
<view hover-class="backC" class="value-dl" >
<view class="di-name" >
<!-- <view class="di-name" >
{{resiMobile?resiMobile:'请输入'}}
</view>
</view> -->
<input type="text" placeholder="请输入" value="{{resiMobile}}" bindblur="bindMobile"/>
</view>
</view>
</view>
@ -160,25 +191,60 @@
</view>
<wux-actionsheet id="wux-actionsheet" />
<!-- 需求时间/发生时间 -->
<wux-date-picker
visible="{{ visibleTime }}"
controlled
mode="datetime"
value="{{ fmData.time }}"
value="{{ fmData.happenTime }}"
lang="zh_CN"
minDate="{{minDate}}"
maxDate="{{maxDate}}"
bind:confirm="onConfirmDate"
bind:visibleChange="onVisibleChange"
bind:cancel="onCancel"
/>
<!-- 服务时间 bind:visibleChange="onVisibleChange"-->
<wux-date-picker
visible="{{ visibleTimeWantServiceTime }}"
controlled
mode="datetime"
value="{{ fmData.wantServiceTime }}"
lang="zh_CN"
minDate="{{minDate}}"
maxDate="{{maxDate}}"
bind:confirm="onConfirmWantServiceTime"
bind:cancel="onCancel"
/>
<wux-picker
options="{{ angencyList }}"
value="{{ angencyValue }}"
value="{{ fmData.gridId }}"
visible="{{angencyVisible}}"
controlled
cascade
bind:cancel="hidePicker"
bind:cancel="hidePickerAngency"
bind:confirm="onConfirmAngecy"
bind:valueChange="onValueChange"
>
</wux-picker>
<wux-picker
options="{{ reportTypeList }}"
value="{{ form.reportType }}"
visible="{{reportTypeVisible}}"
controlled
cascade
bind:cancel="hidePickerReportType"
bind:confirm="onConfirmReportType"
>
</wux-picker>
<wux-picker
options="{{ measureList }}"
value="{{ measureValue }}"
visible="{{measureVisible}}"
cols="2"
controlled
cascade
bind:cancel="hidePickerMeasure"
bind:confirm="onConfirmMeasure"
>
</wux-picker>

15
subpages/demandCheck/pages/dissatisfied/searchResi/searchResi.js

@ -285,8 +285,17 @@ Page({
},
toDemandCheck(){
console.log(111);
wx.navigateTo({
url: '/subpages/demandCheck/pages/dissatisfied/demandCheck/demandCheck?resiId=' + this.data.resiId + '&mobile=' + this.data.resiMobile + "&resiName=" + this.data.resiName,
})
// wx.navigateTo({
// url: '/subpages/demandCheck/pages/dissatisfied/demandCheck/demandCheck?resiId=' + this.data.resiId + '&mobile=' + this.data.resiMobile + "&resiName=" + this.data.resiName,
// })
wx.navigateBack({
delta:1
})
let obj ={
resiId : this.data.resiId,
resiMobile : this.data.resiMobile,
resiName:this.data.resiName
}
wx.setStorageSync('resiDetail',obj)
}
})

10
subpages/demandCheck/pages/dissatisfied/searchResi/searchResi.wxml

@ -26,7 +26,7 @@
<view class="address">地址:{{item.homeName}}</view>
</view>
<view class="right">
<image src="../../../../../../images/right.png" mode=""/>
<image src="../../../../../images/right.png" mode=""/>
</view>
</view>
</view>
@ -103,7 +103,9 @@
</view>
<view wx:if="{{loadMoreVisible}}" class="loadVisible">{{loadMoreVisible?'如果找不到该居民的信息,您也可以先':'加载中...'}}<text wx:if="{{loadMoreVisible}}" style="color: #3A80E7;" bind:tap="toAddResi">新增居民</text></view>
</view>
<view wx:if="{{selectVal == 'card'}}">
身份证识别
<view wx:if="{{selectVal == 'card'}}" class="card">
<image src="../../../../../images/card.png" mode=""/>
<view> <b>身份识别:</b>是在居民出示身份证原件或图片得到场合下,通过OCR技术拍摄识别身份证信息</view>
<button>开始识别</button>
</view>
<button class="fixed_btn" bind:tap="toDemandCheck" hover-class="white">{{type=='card'?'开始识别':'确 定'}}</button>
<button class="fixed_btn" bind:tap="toDemandCheck" hover-class="white" wx:if="{{selectVal!='card'}}">确 定</button>

8
subpages/demandCheck/pages/dissatisfied/searchResi/searchResi.wxss

@ -9,7 +9,7 @@ page{
color: white;
}
.header{
min-height: 90rpx;
min-height: 70rpx;
display: flex;
flex-direction: column;
background-color: #ffff;
@ -248,4 +248,10 @@ button{
.form_card .form_item .input image{
height: 22rpx;
width: 22rpx;
}
.card{
padding: 100rpx 60rpx 0;
box-sizing: border-box;
display: flex;
flex-direction: column;
}

25
pages/resetPassword/resetPassword.js → subpages/settings/pages/index/index.js

@ -1,4 +1,5 @@
// pages/resetPassword/resetPassword.js
// subpages/settings/pages/index/index.js
import api from "../../../../utils/api"
Page({
/**
@ -62,5 +63,27 @@ Page({
*/
onShareAppMessage() {
},
handelLogout(){
wx.showModal({
title: '提示',
content: `确定退出?`,
confirmText: '确认',
showCancel: false,
success: res => {
api.logout().then(res=>{
wx.reLaunch({
url: '/pages/login/login',
})
wx.removeStorage({
key: 'token',
})
console.log(res);
}).catch(err=>{
console.log(err);
})
}
})
}
})

4
subpages/settings/pages/index/index.json

@ -0,0 +1,4 @@
{
"usingComponents": {},
"navigationBarTitleText": "设置"
}

23
subpages/settings/pages/index/index.wxml

@ -0,0 +1,23 @@
<!--subpages/settings/pages/index/index.wxml-->
<view class="card">
<view class="item">
<view class="left">
用户协议
</view>
<image src="../../../../images/right.png" mode=""/>
</view>
<view class="item">
<view class="left">
隐私协议
</view>
<image src="../../../../images/right.png" mode=""/>
</view>
<view class="item">
<view class="left">
修改密码
</view>
<image src="../../../../images/right.png" mode=""/>
</view>
</view>
<button hover-class="btn-hover" bind:tap="handelLogout">退出登录</button>

42
subpages/settings/pages/index/index.wxss

@ -0,0 +1,42 @@
/* subpages/settings/pages/index/index.wxss */
page{
background-color:#f7f7f7 ;
overflow: hidden;
padding:20rpx;
box-sizing: border-box;
}
.card{
border-radius: 20rpx;
background-color: #fff;
padding: 0 20rpx;
box-sizing: border-box;
}
.card .item{
display: flex;
justify-content: space-between;
height: 100rpx;
align-items: center;
font-size: 32rpx;
font-family: PingFang SC;
font-weight: 500;
color: #333333;
border-bottom: 2rpx solid #f7f7f7;
}
.card .item image{
width: 20rpx;
height: 20rpx;
}
button{
background: linear-gradient(to right, #82b4fd, #3e93fe);
font-size: 33rpx;
width: 600rpx !important;
height: 84rpx;
text-align: center;
color: #fff;
border-radius: 84rpx;
position: fixed;
bottom: 100rpx;
left: 50%;
transform: translateX(-300rpx);
}

14
utils/api.js

@ -37,7 +37,9 @@ module.exports = {
logout,
getAgencygridtree,
addEvent,
getResidentBaseInfoPage
getResidentBaseInfoPage,
getDemandoption,
addMeasure
}
// 消息列表
function getIntelligentMessage(param){
@ -188,7 +190,15 @@ function getAgencygridtree () {
function addEvent (parm) {
return fly.post(`governance/icEvent/add-event-resi`,parm)
}
// 上报诉求
// 上报诉求中选择居民
function getResidentBaseInfoPage (parm) {
return fly.post(`actual/base/residentBaseInfo/page`,parm)
}
// 获取需求分类树
function getDemandoption (parm) {
return fly.post(`governance/icresidemanddict/demandoption`,parm)
}
// 上报诉求
function addMeasure(parm) {
return fly.post(`governance/userdemand/add`,parm)
}

3
utils/config.js

@ -7,8 +7,7 @@ module.exports = {
function BASEURL() {
// return 'https://epdc-shibei.elinkservice.cn/epdc-api/api/' // 正式环境
// return 'https://epmet-preview.elinkservice.cn/api/' // 演示环境
return 'http://localhost:8080/api/' // 演示环境
return 'https://epmet-preview.elinkservice.cn/api/' // 演示环境
// return 'http://192.168.1.144/api/' //测试环境
}

Loading…
Cancel
Save