From 62e4bca5fde5a12494cc026510462a9ac91e01f2 Mon Sep 17 00:00:00 2001 From: mk <2403457699@qq.com> Date: Tue, 16 Apr 2024 16:20:00 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B5=B0=E8=AE=BF=E6=89=93=E5=8D=A1=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app.json | 1 + .../searchResult/pages/punchCard/punchCard.js | 188 ++++++++++++++++++ .../pages/punchCard/punchCard.json | 4 + .../pages/punchCard/punchCard.wxml | 46 +++++ .../pages/punchCard/punchCard.wxss | 104 ++++++++++ .../searchResult/pages/resiInfo/resiInfo.js | 9 +- .../searchResult/pages/resiInfo/resiInfo.wxml | 2 +- 7 files changed, 351 insertions(+), 3 deletions(-) create mode 100644 subpages/searchResult/pages/punchCard/punchCard.js create mode 100644 subpages/searchResult/pages/punchCard/punchCard.json create mode 100644 subpages/searchResult/pages/punchCard/punchCard.wxml create mode 100644 subpages/searchResult/pages/punchCard/punchCard.wxss diff --git a/app.json b/app.json index 811cd8c..5c8b499 100644 --- a/app.json +++ b/app.json @@ -52,6 +52,7 @@ "pages/searchResult/searchResult", "pages/searchRecords/searchRecords", "pages/resiInfo/resiInfo", + "pages/punchCard/punchCard", "pages/checkLog/checkLog" ] }, diff --git a/subpages/searchResult/pages/punchCard/punchCard.js b/subpages/searchResult/pages/punchCard/punchCard.js new file mode 100644 index 0000000..01609a9 --- /dev/null +++ b/subpages/searchResult/pages/punchCard/punchCard.js @@ -0,0 +1,188 @@ +// subpages/searchResult/pages/punchCard/punchCard.js +import api from "../../../../utils/api" +const QQMapWX = require('../../../../utils/qqmap-wx-jssdk') +const app = getApp() +var timerId= null; +Page({ + + /** + * 页面的初始数据 + */ + data: { + form:{ + name:"", + birthday:"", + mobile:"", + homeName:"", + genderName:"", + }, + resiId:"", + punchFlag:null, + currentTime:'', + address:'', + longitude:'', + latitude:'', + }, + + /** + * 生命周期函数--监听页面加载 + */ + onLoad(options) { + this.updateTime(); + timerId = setInterval(this.updateTime, 1000); + if(options.resiId){ + this.setData({ + resiId:options.resiId + }) + this.getResiDetail() + } + this.data.qqMapWX = new QQMapWX({ + key: 'CMJBZ-4DECI-JXGGN-5B4WU-QLV2H-B5BEJ' + }) + this.reverseLocation() + }, + updateTime() { + let date = new Date(); + let hours = date.getHours().toString().padStart(2, '0'); + let minutes = date.getMinutes().toString().padStart(2, '0'); + let seconds = date.getSeconds().toString().padStart(2, '0'); + this.setData({ + currentTime: `${hours}:${minutes}:${seconds}` + }); + }, + getResiDetail: async function() { + try { + let res = await api.getResiDetail(this.data.resiId); + const {birthday,mobile,name,genderName,resideInfos} = res.data; + this.setData({ + 'form.name':name, + 'form.genderName':genderName, + 'form.birthday':birthday, + 'form.mobile':mobile, + 'form.homeName' :resideInfos[0].agencyName + resideInfos[0].homeName, + }); + console.log(this.data.form); + } catch(err) { + console.log(err); + } + }, + handlePunch(){ + this.setData({ + punchFlag:!this.data.punchFlag, + animationClass:'animate' + }) + setTimeout(() => { + this.setData({ animationClass: '' }); + this.clockRecords() + + }, 1500); + }, + clockRecords(){ + let currentDate = new Date().toISOString().split('T')[0]; // 会得到形如 "2023-09-27" 的日期 + let obj = { + resiId:this.data.resiId, + clockTime: currentDate + " " + this.data.currentTime, + clockAddress: this.data.address, + longitude:this.data.longitude , + latitude:this.data.latitude + } + api.clockRecords(obj).then(res=>{ + wx.showToast({ + title: this.data.punchFlag?'打卡成功':'更新成功', + icon:'none' + }) + }).catch(err=>{ + console.log(err); + }) + }, + toAddResi(){ + wx.navigateTo({ + url: `/subpages/addResi/pages/addResi/addResi?type=edit&resiId=${this.data.resiId}`, + }) + }, + toWebView(){ + console.log(app.globalData); + wx.navigateTo({ + url: '/pages/webView/webView?url=' + app.globalData.questionnaireUrl, + }) + }, + toEvent(){ + let obj ={ + resiId : this.data.resiId, + resiMobile : this.data.form.mobile, + resiName:this.data.form.name + } + wx.setStorageSync('resiDetail',obj) + wx.navigateTo({ + url: '/subpages/demandCheck/pages/dissatisfied/demandCheck/demandCheck', + }) + }, + reverseLocation() { + const _this = this + this.data.qqMapWX.reverseGeocoder({ + success(res) { + console.log(res); + _this.setData({ + addressContent:res.result.address, + address: res.result.address, + longitude:res.result.location.lng, + latitude:res.result.location.lat, + }) + }, + fail(err) { + console.debug(err) + } + }) + }, + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady() { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow() { + + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide() { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload() { + if (timerId) { + clearInterval(timerId); + timerId = null; + } + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh() { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom() { + + }, + + /** + * 用户点击右上角分享 + */ + onShareAppMessage() { + + } +}) \ No newline at end of file diff --git a/subpages/searchResult/pages/punchCard/punchCard.json b/subpages/searchResult/pages/punchCard/punchCard.json new file mode 100644 index 0000000..aa6e978 --- /dev/null +++ b/subpages/searchResult/pages/punchCard/punchCard.json @@ -0,0 +1,4 @@ +{ + "usingComponents": {}, + "navigationBarTitleText": "详情" +} \ No newline at end of file diff --git a/subpages/searchResult/pages/punchCard/punchCard.wxml b/subpages/searchResult/pages/punchCard/punchCard.wxml new file mode 100644 index 0000000..0472187 --- /dev/null +++ b/subpages/searchResult/pages/punchCard/punchCard.wxml @@ -0,0 +1,46 @@ + + + + 基础信息 + + + 姓名: + {{form.name}} + + + 性别: + {{form.genderName}} + + + 出生日期: + {{form.birthday}} + + + 住宅: + {{form.homeName}} + + + 电话: + {{form.mobile}} + + + + + + + + + 走访打卡 + + {{!punchFlag ? '开始打卡' : '更新打卡'}} + {{currentTime}} + + 当前位置:{{addressContent}} + + + + 相关操作 + 修改居民信息 + 满意度调查 + 上报居民诉求 + \ No newline at end of file diff --git a/subpages/searchResult/pages/punchCard/punchCard.wxss b/subpages/searchResult/pages/punchCard/punchCard.wxss new file mode 100644 index 0000000..2117003 --- /dev/null +++ b/subpages/searchResult/pages/punchCard/punchCard.wxss @@ -0,0 +1,104 @@ +/* subpages/searchResult/pages/punchCard/punchCard.wxss */ +/**index.wxss**/ +page { + width: 100%; + min-height: 100vh; + overflow: hidden; + overflow-y: scroll; + background-color: #f7f7f7; + padding: 0 20rpx; + box-sizing: border-box; + } +.card{ + background-color: #fff; + border-radius: 20rpx; + display: flex; + flex-direction: column; + min-height: 350rpx; + margin-top: 20rpx; + padding: 30rpx 30rpx 40rpx; +} + +.card .title{ + position: relative; + font-size: 34rpx; +} +.card .title::after{ + position: absolute; + left: -30rpx; + top: 8rpx; + content: " "; + width: 10rpx; + height: 28rpx; + background-color: #3A80E7; +} +.info{ + margin-top: 6rpx; +} +.info .item{ + display: flex; + margin-top: 28rpx; +} +.info .item .label{ + width: fit-content; +} +.punch{ + width: 260rpx; + height: 260rpx; + background: linear-gradient(180deg,#5E9FFF, #3A80E7); + box-shadow: 0rpx 4rpx 35rpx 0rpx rgba(61,139,248,0.48); + color: #fff; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + border-radius: 50%; + margin: 50rpx auto 0; +} + +.address{ + color: #666666; + font-size: 28rpx ; + margin: 0 auto; + margin: 40rpx auto 30rpx; +} + +@keyframes rotateAnimation { + 0% { + transform: rotateY(0deg); + } + 100% { + transform: rotateY(180deg); + } + } + +.animate { + animation: rotateAnimation 2s forwards; + } + .btn{ + padding: 0 85rpx; + box-sizing: border-box; + min-width: 364rpx; + text-align: center; + height: 76rpx; + border-radius: 38rpx; + margin: 30rpx auto 0; + line-height: 76rpx; + border-radius: 76rpx; + } + + .blue{ + color:#3A80E7 ; + border: 2rpx solid #3A80E7; + + } + .yellow{ + color: #FF783C; + border: 2rpx solid #FF783C; + } + .green{ + color: #13C8BD; + border: 2rpx solid #13C8BD; + } + + \ No newline at end of file diff --git a/subpages/searchResult/pages/resiInfo/resiInfo.js b/subpages/searchResult/pages/resiInfo/resiInfo.js index c24d12b..a854f38 100644 --- a/subpages/searchResult/pages/resiInfo/resiInfo.js +++ b/subpages/searchResult/pages/resiInfo/resiInfo.js @@ -828,8 +828,8 @@ Page({ toEvent() { let obj = { resiId: this.data.resiId, - resiMobile: this.data.form.mobile, - resiName: this.data.form.name + resiMobile: this.data.form.baseInfoDto.mobile, + resiName: this.data.form.baseInfoDto.name } wx.setStorageSync('resiDetail', obj) wx.navigateTo({ @@ -921,6 +921,11 @@ Page({ url: '/subpages/statistics/pages/residentPortrait2/residentPortrait?id=' + this.data.resiId, }) }, + handelTopunchCard(){ + wx.navigateTo({ + url: '/subpages/searchResult/pages/punchCard/punchCard?resiId=' + this.data.resiId, + }) + }, handelClickTab(e) { wx.pageScrollTo({ selector: `#${e.currentTarget.dataset.item.id}`, diff --git a/subpages/searchResult/pages/resiInfo/resiInfo.wxml b/subpages/searchResult/pages/resiInfo/resiInfo.wxml index 7c6058d..e6bdb89 100644 --- a/subpages/searchResult/pages/resiInfo/resiInfo.wxml +++ b/subpages/searchResult/pages/resiInfo/resiInfo.wxml @@ -334,7 +334,7 @@ 满意度调查 - 走访打卡 + 走访打卡