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. 13
      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/mine/mine",
"pages/webView/webView", "pages/webView/webView",
"pages/statistics/statistics", "pages/statistics/statistics",
"pages/setup/setup", "pages/setup/setup"
"pages/resetPassword/resetPassword"
], ],
"subPackages": [ "subPackages": [
{ {
@ -74,6 +73,13 @@
"pages/dissatisfied/searchResi/searchResi" "pages/dissatisfied/searchResi/searchResi"
] ]
},
{
"root": "subpages/settings",
"name": "settings",
"pages": [
"pages/index/index"
]
} }
], ],
"window": { "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({ wx.navigateTo({
url: '/subpages/communitySelfInsp/pages/followUpList/followUpList', 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>
<view class="right"> <image src="../../images/right.png" mode=""/></view> <view class="right"> <image src="../../images/right.png" mode=""/></view>
</view> </view>
<view class="item"> <view class="item" bind:tap="toSettings">
<view class="left"> <view class="left">
<image src="../../images/mine/sz.png" mode=""/> <image src="../../images/mine/sz.png" mode=""/>
<view>设置</view> <view>设置</view>
</view> </view>
<view class="right"> <image src="../../images/right.png" mode=""/></view> <view class="right"> <image src="../../images/right.png" mode=""/></view>
</view> </view>
</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(){ toSynthesis(){
wx.navigateTo({ wx.navigateTo({
url: '/subpages/communitySelfInsp/pages/synthesis/synthesis', url: `/subpages/communitySelfInsp/pages/synthesis/synthesis?inspRecordId=${this.data.communitySelfInspTop.id}`,
}) })
}, },
toWebView(){ toWebView(){
wx.navigateTo({ 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) { handelClickShare(e) {

4
pages/work/work.wxml

@ -57,7 +57,7 @@
<image src="../../images/work/center.png" mode="" class="center_image"/> <image src="../../images/work/center.png" mode="" class="center_image"/>
</view> </view>
</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="bto">
<view class="title"> <view class="title">
<view>满意度自查</view> <view>满意度自查</view>
@ -80,7 +80,7 @@
</view> </view>
</view> </view>
<view class="list"> <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 class="left">
<view>{{item.agencyName}}{{item.monthName}}月份满意度自查</view> <view>{{item.agencyName}}{{item.monthName}}月份满意度自查</view>
<view class="submit">已提交:{{item.personQty}}人</view> <view class="submit">已提交:{{item.personQty}}人</view>

7
project.private.config.json

@ -8,6 +8,13 @@
"condition": { "condition": {
"miniprogram": { "miniprogram": {
"list": [ "list": [
{
"name": "设置",
"pathName": "subpages/settings/pages/index/index",
"query": "",
"launchMode": "default",
"scene": null
},
{ {
"name": "选择居民", "name": "选择居民",
"pathName": "subpages/demandCheck/pages/dissatisfied/searchResi/searchResi", "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}`, // 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() { back() {
//返回上一级,关闭当前页面 //返回上一级,关闭当前页面

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

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

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

@ -19,13 +19,16 @@ Page({
voiceList:[], voiceList:[],
latitude:"", latitude:"",
longitude:"", longitude:"",
resiId:"1698525635288653825", resiId:"",
happenTime:"", happenTime:"",
content:"",//内容 content:"",//内容
address:""//地址 address:"",//地址
wantServiceTime:"",
reportType:''
}, },
minDate: '2018-01-01 00:00:00', minDate: '2018-01-01 00:00:00',
timeLabel: '',
tabVal:"0",
uploadImageList: [],//图片上传的数组 uploadImageList: [],//图片上传的数组
streetList: [], // 街道 streetList: [], // 街道
@ -61,21 +64,25 @@ Page({
// defaultFieldNames: { label: 'agencyName', value: 'agencyId', children: 'subAgencyList' }, // defaultFieldNames: { label: 'agencyName', value: 'agencyId', children: 'subAgencyList' },
angencyVisible: false, angencyVisible: false,
angencyValue: [],
measureList:[],
measureValue:'',
measureVisible:false,
reportUserName:'',
reportUserMobile:'',
showWantServiceTimeTime:'',
reportTypeList:[],//上报类型
reportTypeVisible:false
}, },
/** /**
* 生命周期函数--监听页面加载 * 生命周期函数--监听页面加载
*/ */
onLoad(options) { 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({ this.data.qqMapWX = new QQMapWX({
key: 'CMJBZ-4DECI-JXGGN-5B4WU-QLV2H-B5BEJ' key: 'CMJBZ-4DECI-JXGGN-5B4WU-QLV2H-B5BEJ'
}) })
@ -84,9 +91,13 @@ Page({
}) })
this.setData({ this.setData({
'fmData.time': Date.now(), '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.getAgencygridtree()
this.getDemandoption()
this.getDictList()
}, },
// 组织树 // 组织树
getAgencygridtree() { getAgencygridtree() {
@ -103,15 +114,33 @@ Page({
console.log(err); 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() { onReachBottom() {
if (this.projectlist) { if (this.projectlist) {
this.projectlist.onReachBottom() this.projectlist.onReachBottom()
} }
}, },
//跳转地图选点
toughGetLocation() { toughGetLocation() {
this.getLocation(false); this.getLocation(false);
wx.chooseLocation({ wx.chooseLocation({
@ -180,20 +209,82 @@ Page({
} }
if (this.data.uploadImageList.length > 0) { if (this.data.uploadImageList.length > 0) {
this.data.uploadImageList.forEach(item => { 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({ this.setData({
'fmData.attachmentList': imagesList, 'fmData.attachmentList': imagesList,
}) })
console.log(this.data.fmData); console.log(this.data.tabVal);
this.submitItem() 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({ wx.showLoading({
title: '提交中...', title: '提交中...',
mask: true mask: true
@ -202,35 +293,44 @@ Page({
submitDisabled: true submitDisabled: true
}) })
const para = this.data.fmData const para = this.data.fmData
para.resiId = '1501821695344775169' console.log(para,'事件');
para.gridId = '9c55c566524a8b171df57a792d2933bd'
para.happenTime = '2023-04-05 03:07:00'
api.addEvent(para).then(res => { api.addEvent(para).then(res => {
wx.hideLoading() wx.hideLoading()
console.log(res); console.log(res);
if (res.data) { if (res.code === 0) {
wx.showModal({ wx.showModal({
title: '提示', title: '提示',
content: `您的诉求我们已经查收,正在快马加鞭办理,请您耐心等待\r\n诉求编号为:${res.data}`, content: `您的诉求我们已经查收,正在快马加鞭办理,请您耐心等待`,
confirmText: '确认', confirmText: '确认',
showCancel: false, showCancel: false,
success: res => { success: res => {
this.setData({ this.setData({
submitDisabled: false, submitDisabled: false,
'personalInfo.nickname': '',
'personalInfo.itemContent': '',
'personalInfo.itemVoice': '',
'personalInfo.duration': '',
'personalInfo.images': [],
uploadImageList: [], uploadImageList: [],
uploadRecord: { uploadRecord: {
uploaded: true, uploaded: true,
url: "" 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':''
}) })
this.projectlist = this.selectComponent('#projectlist')
} }
}) })
wx.removeStorageSync('resiDetail')
} else { } else {
wx.showToast({ wx.showToast({
title: "提交失败,请重试~", title: "提交失败,请重试~",
@ -249,8 +349,89 @@ Page({
}) })
}) })
}, },
// 个性服务提交
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: `您的需求我们已经查收,正在快马加鞭办理,请您耐心等待`,
confirmText: '确认',
showCancel: false,
success: res => {
this.setData({
submitDisabled: false,
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':''
})
}
})
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
})
})
},
// 双向绑定 内容输入框 // 双向绑定 内容输入框
bindTextareaInput(e) { bindTextareaInput(e) {
this.setData({ this.setData({
@ -266,8 +447,6 @@ Page({
}) })
}, },
// 录音end
// 选择图片 上传弹窗 - 上传图片方式 - 选择图片 - 上传图片 - 回调赋值 // 选择图片 上传弹窗 - 上传图片方式 - 选择图片 - 上传图片 - 回调赋值
chooseImage() { chooseImage() {
if (this.data.uploadImageList.length > 3) { if (this.data.uploadImageList.length > 3) {
@ -281,24 +460,28 @@ Page({
$wuxActionSheet().showSheet({ $wuxActionSheet().showSheet({
buttons: [ buttons: [
{ text: '拍照' }, { text: '拍照' },
{ text: '从相册中获取' }, { text: '从相册中获取',openType:null, },
], ],
className: 'dialog-class', className: 'dialog-class',
buttonClicked(index) { buttonClicked(index) {
if (index === 0) { if (index === 0) {
wx.chooseImage({ wx.chooseMedia({
count: 1, count: 1,
sizeType: ['original', 'compressed'], sizeType: ['original', 'compressed'],
sourceType: ['camera'], sourceType: ['camera'],
success(res) { success(res) {
console.log(res);
let deleteLength = _this.data.uploadImageList.length let deleteLength = _this.data.uploadImageList.length
const uploadImageList = [..._this.data.uploadImageList] const uploadImageList = [..._this.data.uploadImageList]
if (res.tempFiles[0].size <= 5 * 1024 * 1024) { if (res.tempFiles[0].size <= 5 * 1024 * 1024) {
uploadImageList.push({ uploadImageList.push({
uploaded: false, uploaded: false,
ossUrl: '', ossUrl: '',
imgUrl: res.tempFiles[0].path, imgUrl: res.tempFiles[0].tempFilePath,
imageId: ++_this.data.imageId imageId: ++_this.data.imageId,
type:res.tempFiles[0].tempFilePath.substr(res.tempFiles[0].tempFilePath.length -3,3),
format:"image",
name:'wximage'
}) })
} else { } else {
_this.showToast('图片上限5M,请压缩后重试~') _this.showToast('图片上限5M,请压缩后重试~')
@ -309,7 +492,7 @@ Page({
}) })
wx.uploadFile({ wx.uploadFile({
url: `${config.BASEURL()}oss/file/uploadvariedfile`, url: `${config.BASEURL()}oss/file/uploadvariedfile`,
filePath: res.tempFilePaths[0], filePath: res.tempFiles[0].tempFilePath,
name: 'file', name: 'file',
header: { header: {
'Content-type': 'application/json;charset=UTF-8', 'Content-type': 'application/json;charset=UTF-8',
@ -344,23 +527,25 @@ Page({
} }
}) })
} else if (index === 1) { } else if (index === 1) {
wx.chooseImage({ wx.chooseMedia({
count: 1, count: 1,
sizeType: ['original', 'compressed'], type:'image',
sourceType: ['album'], sourceType: ['album'],
success(res) { success(res) {
console.log(res,'图片上传的res'); console.log(res,'图片上传的res');
let deleteLength = _this.data.uploadImageList.length let deleteLength = _this.data.uploadImageList.length
const uploadImageList = [] const uploadImageList = []
const endIndex = _this.data.uploadImageList.length const endIndex = _this.data.uploadImageList.length
res.tempFiles.forEach(item => { res.tempFiles.forEach((item,index) => {
if (item.size <= 5 * 1024 * 1024) { if (item.size <= 5 * 1024 * 1024) {
uploadImageList.push({ uploadImageList.push({
uploaded: false, uploaded: false,
ossUrl: '', ossUrl: '',
imgUrl: item.path, imgUrl: item.tempFilePath,
imageId: ++_this.data.imageId imageId: ++_this.data.imageId,
format:"image",
type:item.tempFilePath.substr(item.tempFilePath.length -3,3),
originFileName:'image' + index + 1
}) })
} else { } else {
_this.showToast('图片上限5M,请压缩后重试~') _this.showToast('图片上限5M,请压缩后重试~')
@ -373,7 +558,7 @@ Page({
return (function (index) { return (function (index) {
wx.uploadFile({ wx.uploadFile({
url: `${config.BASEURL()}oss/file/uploadvariedfile`, url: `${config.BASEURL()}oss/file/uploadvariedfile`,
filePath: res.tempFilePaths[index], filePath: res.tempFiles[index].tempFilePath,
name: 'file', name: 'file',
header: { header: {
'Content-type': 'application/json;charset=UTF-8', 'Content-type': 'application/json;charset=UTF-8',
@ -394,7 +579,6 @@ Page({
uploadImageList: [..._this.data.uploadImageList, ...uploadImageList] uploadImageList: [..._this.data.uploadImageList, ...uploadImageList]
}) })
} }
console.log(_this.data.uploadImageList.length, '图片上传长度');
}, },
fail(fileRes) { fail(fileRes) {
_this.setData({ _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) { inputSyncPicker(e) {
let { let {
@ -518,8 +671,6 @@ Page({
if (this.data.personalInfo.communityId == element.value) { if (this.data.personalInfo.communityId == element.value) {
this.setData({ this.setData({
gridList: element.children gridList: element.children
// 'personalInfo.grid': element.children[0].label, // 网格默认选择第一个
// 'personalInfo.gridId': element.children[0].value // 网格
}) })
} }
}); });
@ -532,12 +683,10 @@ Page({
success(res) { success(res) {
console.log(res); console.log(res);
_this.setData({ _this.setData({
fmData: { addressContent:res.result.address,
addressContent: res.result.address, 'fmData.address': res.result.address,
address: res.result.address, 'fmData.longitude':res.result.location.lng,
longitude:res.result.location.lng, 'fmData.latitude':res.result.location.lat,
latitude:res.result.location.lat
},
}) })
}, },
fail(err) { fail(err) {
@ -547,32 +696,54 @@ Page({
}, },
onConfirmDate(e) { onConfirmDate(e) {
console.log(e);
this.setData({ this.setData({
'fmData.happenTime': e.detail.label + ':00', '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({ onCancel(e) {
// timeLabel: e.detail.displayValue.join(' '), this.setData({
}) visibleTime: false,
visibleTimeWantServiceTime:false
})
}, },
onCancel() { bindMobile(e){
this.setData({ 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({ this.setData({
visibleTime: true visibleTime: true,
maxDate:this.getCurrentDateTime(),
'fmData.happenTime':this.getCurrentDateTime(),
}) })
}, },
onPageScroll: function (e) { showTimePickerW(e) {
if (this.projectlist) { this.setData({
this.projectlist.onPageScroll(e) visibleTimeWantServiceTime: true,
} maxDate:this.getCurrentDateTime(),
'fmData.wantServiceTime':this.getCurrentDateTime(),
})
}, },
/** /**
@ -586,21 +757,28 @@ Page({
* 生命周期函数--监听页面显示 * 生命周期函数--监听页面显示
*/ */
onShow() { onShow() {
let resiDetail = wx.getStorageSync('resiDetail')
if(resiDetail){
this.setData({
"fmData.resiId":resiDetail.resiId,
resiName:resiDetail.resiName,
resiMobile:resiDetail.resiMobile
})
}
}, },
/** /**
* 生命周期函数--监听页面隐藏 * 生命周期函数--监听页面隐藏
*/ */
onHide() { onHide() {
wx.removeStorageSync('resiDetail')
}, },
/** /**
* 生命周期函数--监听页面卸载 * 生命周期函数--监听页面卸载
*/ */
onUnload() { onUnload() {
wx.removeStorageSync('resiDetail')
}, },
/** /**
@ -616,9 +794,7 @@ Page({
*/ */
// /page/user?id=123 // /page/user?id=123
onShareAppMessage() { onShareAppMessage() {
return {
path: 'pages/peopleLivelihood/peopleLivelihood',
}
}, },
handleRecordDel() { handleRecordDel() {
const { hasStop, isStart } = this.data const { hasStop, isStart } = this.data
@ -700,20 +876,21 @@ Page({
recordingTime: '00:00' recordingTime: '00:00'
}) })
} else { } else {
let { recordingLength } = this.data // let { recordingLength } = this.data
if (duration - (recordingLength * 1000) > 1000 ) duration = recordingLength * 1000 // 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({ this.setData({
"uploadRecord.uploaded": true, "uploadRecord.uploaded": true,
"uploadRecord.url": JSON.parse(fileRes.data).data, "uploadRecord.url": url,
'fmData.voiceList':[JSON.parse(fileRes.data).data], 'fmData.voiceList':[{url:url,format:null,type:'mp3',duration,originFileName:fileName.toString()}],
showRecord: false, showRecord: false,
hasStart: false, hasStart: false,
isStart: false, isStart: false,
recordingTime: '00:00', recordingTime: '00:00',
duration
}) })
this.downLoadAudio() this.downLoadAudio()
console.log(this.data.uploadRecord); console.log(this.data.fmData.voiceList);
} }
}, },
fail: (fileRes) => { fail: (fileRes) => {
@ -869,7 +1046,7 @@ Page({
showRecord: false showRecord: false
}) })
}, },
hidePicker() { hidePickerAngency() {
this.setData({ this.setData({
angencyVisible: false angencyVisible: false
}) })
@ -880,18 +1057,25 @@ Page({
}) })
}, },
onConfirmAngecy(e) { onConfirmAngecy(e) {
console.log(e);
this.setData({ this.setData({
agencyName: e.detail.label, agencyName: e.detail.label,
'fmData.gridId': e.detail.value[e.detail.value.length - 1], 'fmData.gridId': e.detail.value[e.detail.value.length - 1],
angencyVisible: false angencyVisible: false
}) })
console.log(this.data.fmData);
}, },
onValueChange(e) { onConfirmReportType(e){
console.log(e); console.log(e);
this.setData({
reportTypeName: e.detail.label,
'fmData.reportType': e.detail.value[0],
reportTypeVisible: false
})
},
hidePickerReportType(){
this.setData({
reportTypeVisible: false
})
}, },
// 播放逻辑 // 播放逻辑
initDuration() { initDuration() {
var _a = this.data, duration = _a.duration; var _a = this.data, duration = _a.duration;
@ -905,7 +1089,7 @@ Page({
downLoadAudio() { downLoadAudio() {
var _this = this; var _this = this;
wx.downloadFile({ wx.downloadFile({
url: this.data.uploadRecord.url.url, url: this.data.uploadRecord.url,
success(res) { success(res) {
console.log(res); console.log(res);
if (res.statusCode === 200) { if (res.statusCode === 200) {
@ -995,6 +1179,16 @@ Page({
}); });
console.log('innerAudioContext', innerAudioContext); 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) { slideChange(e) {
this.audioPause(); this.audioPause();
var value = e.detail.value; var value = e.detail.value;
@ -1017,6 +1211,27 @@ Page({
'fmData.voiceList':[] '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) { format(num) {
let min = parseInt(num / 1000 / 60) let min = parseInt(num / 1000 / 60)
let second = 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="content">
<view class="personal-info"> <view class="personal-info">
<view class="basic-info"> <view class="basic-info">
<view class="item"> <view class="item">
<view class="field"> <view class="field">
<text class="must">*</text> <text class="must">*</text>
<view class="field-text">所属组织</view> <view class="field-text">所属组织</view>
</view> </view>
<view class="value" bind:tap="showPicker"> <view class="value-dl" bind:tap="showPicker">
{{agencyName?agencyName:'请选择'}} <view class="di-name">{{agencyName?agencyName:'请选择'}}</view>
<image class="di-but" src="../../../../../images/right.png" mode="aspectFit" />
</view>
</view> </view>
</view>
<view class="item"> <view class="item">
<view class="field"> <view class="field">
<text class="must">*</text> <text class="must">*</text>
<view class="field-text">诉求类型</view> <view class="field-text">诉求类型</view>
</view> </view>
<view class="value-mobile"> <view class="value-mobile">
<radio-group class="radio-group" bindchange="bindFlagChange"> <radio-group class="radio-group" bind:change="handleChangeType">
<radio checked="{{personalInfo.showFlag === '0'}}" value="0" checked="true" color="#4193fe" class="radio">事件上报</radio> <radio checked="{{tabVal === '0'}}" value="0" checked="true" color="#4193fe" class="radio">事件上报</radio>
<radio checked="{{personalInfo.showFlag === '1'}}" value="1" color="#4193fe" class="radio">居民需求</radio> <radio checked="{{tabVal === '1'}}" value="1" color="#4193fe" class="radio">居民需求</radio>
</radio-group> </radio-group>
</view> </view>
</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>
</view> </view>
@ -34,10 +54,10 @@
<view class="item"> <view class="item">
<view class="field"> <view class="field">
<text class="must">*</text> <text class="must">*</text>
<view class="field-text">事件描述</view> <view class="field-text">{{tabVal==='1'?'需求描述':'事件描述'}}</view>
</view> </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> </textarea>
<!-- 语音播放 --> <!-- 语音播放 -->
<view class="audio-play" wx:if="{{fmData.voiceList.length>0}}"> <view class="audio-play" wx:if="{{fmData.voiceList.length>0}}">
@ -79,27 +99,37 @@
<view class="item"> <view class="item">
<view class="field"> <view class="field">
<text class="must">*</text> <text class="must">*</text>
<view class="field-text">发生时间</view> <view class="field-text">{{tabVal === '1'?'需求时间':'发生时间'}}</view>
</view> </view>
<view class="value-dl" bind:tap="showTimePicker"> <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" /> <image class="di-but" src="../../../../../images/right.png" mode="aspectFit" />
</view> </view>
</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"> <view class="field">
<text class="must">*</text> <text class="must">*</text>
<view class="field-text">发生地点</view> <view class="field-text">发生地点</view>
</view> </view>
<view class="value-dl" bind:tap="toughGetLocation"> <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" /> <image class="di-but" src="../../../../../images/right.png" mode="aspectFit" />
</view> </view>
</view> </view>
<view class="item"> <view class="item">
<view class="field"> <view class="field">
<text class="must">*</text> <text class="must">*</text>
<view class="field-text" >联系人</view> <view class="field-text" >{{tabVal === '1'?'需求人':'联系人'}}</view>
</view> </view>
<navigator hover-class="backC" class="value-dl" url="/subpages/demandCheck/pages/dissatisfied/searchResi/searchResi" > <navigator hover-class="backC" class="value-dl" url="/subpages/demandCheck/pages/dissatisfied/searchResi/searchResi" >
<view class="di-name" > <view class="di-name" >
@ -114,9 +144,10 @@
<view class="field-text">联系电话</view> <view class="field-text">联系电话</view>
</view> </view>
<view hover-class="backC" class="value-dl" > <view hover-class="backC" class="value-dl" >
<view class="di-name" > <!-- <view class="di-name" >
{{resiMobile?resiMobile:'请输入'}} {{resiMobile?resiMobile:'请输入'}}
</view> </view> -->
<input type="text" placeholder="请输入" value="{{resiMobile}}" bindblur="bindMobile"/>
</view> </view>
</view> </view>
</view> </view>
@ -160,25 +191,60 @@
</view> </view>
<wux-actionsheet id="wux-actionsheet" /> <wux-actionsheet id="wux-actionsheet" />
<!-- 需求时间/发生时间 -->
<wux-date-picker <wux-date-picker
visible="{{ visibleTime }}" visible="{{ visibleTime }}"
controlled controlled
mode="datetime" mode="datetime"
value="{{ fmData.time }}" value="{{ fmData.happenTime }}"
lang="zh_CN" lang="zh_CN"
minDate="{{minDate}}" minDate="{{minDate}}"
maxDate="{{maxDate}}"
bind:confirm="onConfirmDate" bind:confirm="onConfirmDate"
bind:visibleChange="onVisibleChange" bind:visibleChange="onVisibleChange"
bind:cancel="onCancel" 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 <wux-picker
options="{{ angencyList }}" options="{{ angencyList }}"
value="{{ angencyValue }}" value="{{ fmData.gridId }}"
visible="{{angencyVisible}}" visible="{{angencyVisible}}"
controlled controlled
cascade cascade
bind:cancel="hidePicker" bind:cancel="hidePickerAngency"
bind:confirm="onConfirmAngecy" 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> </wux-picker>

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

@ -285,8 +285,17 @@ Page({
}, },
toDemandCheck(){ toDemandCheck(){
console.log(111); console.log(111);
wx.navigateTo({ // wx.navigateTo({
url: '/subpages/demandCheck/pages/dissatisfied/demandCheck/demandCheck?resiId=' + this.data.resiId + '&mobile=' + this.data.resiMobile + "&resiName=" + this.data.resiName, // 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 class="address">地址:{{item.homeName}}</view>
</view> </view>
<view class="right"> <view class="right">
<image src="../../../../../../images/right.png" mode=""/> <image src="../../../../../images/right.png" mode=""/>
</view> </view>
</view> </view>
</view> </view>
@ -103,7 +103,9 @@
</view> </view>
<view wx:if="{{loadMoreVisible}}" class="loadVisible">{{loadMoreVisible?'如果找不到该居民的信息,您也可以先':'加载中...'}}<text wx:if="{{loadMoreVisible}}" style="color: #3A80E7;" bind:tap="toAddResi">新增居民</text></view> <view wx:if="{{loadMoreVisible}}" class="loadVisible">{{loadMoreVisible?'如果找不到该居民的信息,您也可以先':'加载中...'}}<text wx:if="{{loadMoreVisible}}" style="color: #3A80E7;" bind:tap="toAddResi">新增居民</text></view>
</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> </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; color: white;
} }
.header{ .header{
min-height: 90rpx; min-height: 70rpx;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
background-color: #ffff; background-color: #ffff;
@ -249,3 +249,9 @@ button{
height: 22rpx; height: 22rpx;
width: 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({ Page({
/** /**
@ -62,5 +63,27 @@ Page({
*/ */
onShareAppMessage() { 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, logout,
getAgencygridtree, getAgencygridtree,
addEvent, addEvent,
getResidentBaseInfoPage getResidentBaseInfoPage,
getDemandoption,
addMeasure
} }
// 消息列表 // 消息列表
function getIntelligentMessage(param){ function getIntelligentMessage(param){
@ -188,7 +190,15 @@ function getAgencygridtree () {
function addEvent (parm) { function addEvent (parm) {
return fly.post(`governance/icEvent/add-event-resi`,parm) return fly.post(`governance/icEvent/add-event-resi`,parm)
} }
// 上报诉求 // 上报诉求中选择居民
function getResidentBaseInfoPage (parm) { function getResidentBaseInfoPage (parm) {
return fly.post(`actual/base/residentBaseInfo/page`,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() { function BASEURL() {
// return 'https://epdc-shibei.elinkservice.cn/epdc-api/api/' // 正式环境 // return 'https://epdc-shibei.elinkservice.cn/epdc-api/api/' // 正式环境
// return 'https://epmet-preview.elinkservice.cn/api/' // 演示环境 return 'https://epmet-preview.elinkservice.cn/api/' // 演示环境
return 'http://localhost:8080/api/' // 演示环境
// return 'http://192.168.1.144/api/' //测试环境 // return 'http://192.168.1.144/api/' //测试环境
} }

Loading…
Cancel
Save