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 @@
满意度调查
- 走访打卡
+ 走访打卡