2023-03-17 04:55:02 +08:00
|
|
|
|
// pages/residents/report.js
|
|
|
|
|
import utils from '../../utils/util'
|
|
|
|
|
|
2023-04-17 02:36:04 +08:00
|
|
|
|
const toggleCustomTabBar = require('../../custom-tab-bar/toggleCustomTabBar')
|
|
|
|
|
|
2023-03-17 04:55:02 +08:00
|
|
|
|
const app = getApp();
|
|
|
|
|
|
|
|
|
|
Page({
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 页面的初始数据
|
|
|
|
|
*/
|
|
|
|
|
data: {
|
|
|
|
|
isSkipOnShowFunc: false, // 是否跳过 onShow
|
|
|
|
|
userInfo: null,
|
|
|
|
|
timeInterval: null,
|
|
|
|
|
formData: {
|
|
|
|
|
userId: '',
|
|
|
|
|
userRealname: '',
|
|
|
|
|
address: '',
|
|
|
|
|
time: '',
|
|
|
|
|
timestamp: '',
|
|
|
|
|
temperature: 0,
|
|
|
|
|
},
|
|
|
|
|
// 是否填报过
|
|
|
|
|
isFilled: true,
|
|
|
|
|
filledMsg: "",
|
2023-04-14 00:53:02 +08:00
|
|
|
|
|
|
|
|
|
// 是否正在提交中,用于隐藏提交按钮,避免出现多次提交
|
|
|
|
|
isSubmitting: false,
|
2023-03-17 04:55:02 +08:00
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 生命周期函数--监听页面加载
|
|
|
|
|
*/
|
|
|
|
|
onLoad(options) {
|
2023-04-17 02:36:04 +08:00
|
|
|
|
toggleCustomTabBar.toggle(this)
|
2023-03-18 17:52:56 +08:00
|
|
|
|
console.log("residents/report onLoad")
|
2023-03-17 04:55:02 +08:00
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 生命周期函数--监听页面初次渲染完成
|
|
|
|
|
*/
|
|
|
|
|
onReady() {
|
2023-03-18 17:52:56 +08:00
|
|
|
|
console.log("residents/report onReady")
|
2023-03-17 04:55:02 +08:00
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 生命周期函数--监听页面显示
|
|
|
|
|
*/
|
|
|
|
|
onShow() {
|
2023-04-17 02:36:04 +08:00
|
|
|
|
toggleCustomTabBar.toggle(this)
|
2023-03-18 17:52:56 +08:00
|
|
|
|
console.log("residents/report onShow")
|
2023-03-17 04:55:02 +08:00
|
|
|
|
if (this.data.isSkipOnShowFunc) {
|
|
|
|
|
this.setData({
|
|
|
|
|
isSkipOnShowFunc: false,
|
|
|
|
|
})
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
let userInfo = wx.getStorageSync("userInfo")
|
|
|
|
|
console.log("userInfo", userInfo)
|
|
|
|
|
this.setData({
|
|
|
|
|
userInfo: userInfo,
|
|
|
|
|
"formData.userId": userInfo.id,
|
|
|
|
|
"formData.userRealname": userInfo.realname,
|
|
|
|
|
timeInterval: setInterval(this.updateTime, 1000)
|
|
|
|
|
})
|
|
|
|
|
console.log("formData", this.data.formData)
|
|
|
|
|
|
|
|
|
|
this.updateTime();
|
|
|
|
|
|
|
|
|
|
// 获取用户当日是否填报过
|
|
|
|
|
wx.showLoading({
|
|
|
|
|
title: '加载中'
|
|
|
|
|
})
|
|
|
|
|
var that = this;
|
|
|
|
|
wx.request({
|
|
|
|
|
url: `${app.globalData.baseUrl}/access/report/getLatestRecord`,
|
|
|
|
|
method: "POST",
|
|
|
|
|
header: {
|
|
|
|
|
"Content-Type": "application/x-www-form-urlencoded" //用于post
|
|
|
|
|
},
|
|
|
|
|
data: {
|
|
|
|
|
userId: this.data.userInfo.id
|
|
|
|
|
},
|
|
|
|
|
success: function (d) {
|
|
|
|
|
wx.hideLoading()
|
|
|
|
|
let result = d.data
|
|
|
|
|
console.log("result", result)
|
|
|
|
|
if (result.success) {
|
|
|
|
|
console.log("result.data", result.data);
|
|
|
|
|
if (result.data == null || new Date(result.data.time) < new Date(new Date().toISOString().substring(0, 10))) {
|
|
|
|
|
// 如果没有填报记录,或者填报记录不是今天,那么说明没有填报过
|
|
|
|
|
that.setData({
|
|
|
|
|
isFilled: false
|
|
|
|
|
})
|
|
|
|
|
} else {
|
|
|
|
|
// 有今日记录,说明已经填报过
|
|
|
|
|
that.setData({
|
|
|
|
|
isFilled: true,
|
|
|
|
|
filledMsg: "您已完成今日体温填报"
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
wx.showToast({
|
|
|
|
|
title: "加载填报信息失败",
|
|
|
|
|
icon: 'error',
|
|
|
|
|
duration: 2000
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
fail: function () {
|
|
|
|
|
wx.hideLoading()
|
|
|
|
|
wx.showToast({
|
|
|
|
|
title: "请求失败",
|
|
|
|
|
icon: 'error',
|
|
|
|
|
duration: 2000
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
complete: function () {
|
|
|
|
|
wx.hideNavigationBarLoading();
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 生命周期函数--监听页面隐藏
|
|
|
|
|
*/
|
|
|
|
|
onHide() {
|
2023-03-18 17:52:56 +08:00
|
|
|
|
console.log("residents/report onHide")
|
|
|
|
|
clearInterval(this.data.timeInterval)
|
2023-03-17 04:55:02 +08:00
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 生命周期函数--监听页面卸载
|
|
|
|
|
*/
|
|
|
|
|
onUnload() {
|
2023-03-18 17:52:56 +08:00
|
|
|
|
console.log("residents/report onUnload")
|
|
|
|
|
clearInterval(this.data.timeInterval)
|
2023-03-17 04:55:02 +08:00
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 页面相关事件处理函数--监听用户下拉动作
|
|
|
|
|
*/
|
|
|
|
|
onPullDownRefresh() {
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 页面上拉触底事件的处理函数
|
|
|
|
|
*/
|
|
|
|
|
onReachBottom() {
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 用户点击右上角分享
|
|
|
|
|
*/
|
|
|
|
|
onShareAppMessage() {
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
bindTemperatureChanged(e) {
|
|
|
|
|
this.setData({
|
|
|
|
|
"formData.temperature": e.detail.value
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
updateTime() {
|
|
|
|
|
let timestamp = Date.now()
|
2023-04-17 23:35:39 +08:00
|
|
|
|
this && this.setData({
|
2023-03-17 04:55:02 +08:00
|
|
|
|
"formData.timestamp": timestamp,
|
|
|
|
|
"formData.time": utils.formatTime(new Date(timestamp))
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
chooseLocation: async function () {
|
|
|
|
|
wx.showLoading({
|
|
|
|
|
title: '正在获取权限'
|
|
|
|
|
})
|
2023-03-18 17:52:56 +08:00
|
|
|
|
await new Promise((resolve, reject) => {
|
2023-03-17 04:55:02 +08:00
|
|
|
|
wx.getSetting({
|
|
|
|
|
success(res) {
|
|
|
|
|
wx.hideLoading()
|
|
|
|
|
if (!res.authSetting['scope.userLocation']) {
|
|
|
|
|
wx.authorize({
|
2023-03-18 17:52:56 +08:00
|
|
|
|
scope: 'scope.userLocation',
|
|
|
|
|
// scope: 'scope.userLocationBackground',
|
2023-03-17 04:55:02 +08:00
|
|
|
|
success() {
|
|
|
|
|
resolve();
|
2023-03-18 17:52:56 +08:00
|
|
|
|
},
|
|
|
|
|
fail(err) {
|
|
|
|
|
wx.showModal({
|
|
|
|
|
title: '定位失败',
|
|
|
|
|
content: '您已拒绝定位授权,小程序无法获取您的位置,请在微信首页长按删除小程序,重新打开再试',
|
|
|
|
|
showCancel: false,
|
|
|
|
|
complete: (res) => {
|
|
|
|
|
reject();
|
|
|
|
|
}
|
|
|
|
|
})
|
2023-03-17 04:55:02 +08:00
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
} else {
|
|
|
|
|
resolve();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
});
|
|
|
|
|
wx.showLoading({
|
|
|
|
|
title: '正在定位'
|
|
|
|
|
})
|
|
|
|
|
var that = this;
|
|
|
|
|
this.setData({
|
|
|
|
|
isSkipOnShowFunc: true, // 关闭位置选择器后,会触发 onShow,这里避免掉
|
|
|
|
|
})
|
|
|
|
|
wx.chooseLocation({
|
|
|
|
|
success: function (res) {
|
|
|
|
|
console.log("wx.chooseLocation success")
|
|
|
|
|
that.setData({
|
|
|
|
|
"formData.address": res.address
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
fail: function () {
|
|
|
|
|
console.log("wx.chooseLocation fail", that.data.formData)
|
|
|
|
|
if (!that.data.formData.address) {
|
|
|
|
|
wx.showToast({
|
|
|
|
|
title: "请获取当前位置",
|
|
|
|
|
icon: 'error'
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
})
|
|
|
|
|
wx.hideLoading()
|
|
|
|
|
},
|
|
|
|
|
// 体温上报 提交按钮
|
|
|
|
|
report() {
|
|
|
|
|
console.log("点击提交", "this.data.formData", this.data.formData)
|
|
|
|
|
if (!this.data.formData.address) {
|
|
|
|
|
wx.showToast({
|
|
|
|
|
title: "请获取当前位置",
|
|
|
|
|
icon: 'error'
|
|
|
|
|
})
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
wx.showLoading({
|
|
|
|
|
title: '加载中'
|
|
|
|
|
})
|
|
|
|
|
var that = this;
|
2023-04-14 00:53:02 +08:00
|
|
|
|
that.setData({
|
|
|
|
|
isSubmitting: true,
|
|
|
|
|
})
|
2023-03-17 04:55:02 +08:00
|
|
|
|
wx.request({
|
|
|
|
|
url: `${app.globalData.baseUrl}/access/report/submit`,
|
|
|
|
|
method: "POST",
|
|
|
|
|
header: {
|
|
|
|
|
"Content-Type": "application/x-www-form-urlencoded" //用于post
|
|
|
|
|
},
|
|
|
|
|
data: {
|
|
|
|
|
...this.data.formData,
|
|
|
|
|
},
|
|
|
|
|
success: function (d) {
|
|
|
|
|
console.log("begin success")
|
|
|
|
|
wx.hideLoading()
|
|
|
|
|
let result = d.data;
|
|
|
|
|
if (result.success) {
|
|
|
|
|
// 填报完成
|
|
|
|
|
that.setData({
|
|
|
|
|
isFilled: true,
|
|
|
|
|
filledMsg: "您已完成今日体温填报"
|
|
|
|
|
})
|
|
|
|
|
console.log("result.data", result.data);
|
|
|
|
|
wx.showToast({
|
|
|
|
|
title: "填报成功",
|
|
|
|
|
icon: 'success',
|
|
|
|
|
duration: 2000
|
|
|
|
|
})
|
|
|
|
|
} else {
|
|
|
|
|
wx.showToast({
|
|
|
|
|
title: result.msg || "出错啦",
|
|
|
|
|
icon: 'error',
|
|
|
|
|
duration: 2000
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
that.isShow = ''
|
|
|
|
|
console.log("end success")
|
|
|
|
|
},
|
|
|
|
|
fail: function () {
|
|
|
|
|
console.log("begin fail")
|
|
|
|
|
wx.hideLoading()
|
|
|
|
|
wx.showToast({
|
|
|
|
|
title: "请求失败",
|
|
|
|
|
icon: 'error',
|
|
|
|
|
duration: 2000
|
|
|
|
|
})
|
|
|
|
|
console.log("end fail")
|
|
|
|
|
},
|
|
|
|
|
complete: function () {
|
2023-04-14 00:53:02 +08:00
|
|
|
|
that.setData({
|
|
|
|
|
isSubmitting: false,
|
|
|
|
|
})
|
2023-03-17 04:55:02 +08:00
|
|
|
|
console.log("begin complete")
|
|
|
|
|
if (typeof (callback) === "function")
|
|
|
|
|
callback();
|
|
|
|
|
wx.hideNavigationBarLoading();
|
|
|
|
|
console.log("end complete")
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
// 历史填报
|
|
|
|
|
myreport() {
|
|
|
|
|
wx.navigateTo({
|
|
|
|
|
url: "/pages/residents/reportHistory"
|
|
|
|
|
})
|
2023-04-17 23:35:39 +08:00
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
// 删除今日填表
|
|
|
|
|
withdrawReport() {
|
|
|
|
|
wx.showLoading({
|
|
|
|
|
title: '加载中'
|
|
|
|
|
})
|
|
|
|
|
var that = this;
|
|
|
|
|
that.setData({
|
|
|
|
|
isSubmitting: true,
|
|
|
|
|
})
|
|
|
|
|
wx.request({
|
|
|
|
|
url: `${app.globalData.baseUrl}/access/report/withdraw`,
|
|
|
|
|
method: "POST",
|
|
|
|
|
header: {
|
|
|
|
|
"Content-Type": "application/x-www-form-urlencoded" //用于post
|
|
|
|
|
},
|
|
|
|
|
data: {
|
|
|
|
|
userId: this.data.userInfo.id
|
|
|
|
|
},
|
|
|
|
|
success: function (d) {
|
|
|
|
|
console.log("begin success")
|
|
|
|
|
wx.hideLoading()
|
|
|
|
|
let result = d.data;
|
|
|
|
|
if (result.success) {
|
|
|
|
|
// 填报完成
|
|
|
|
|
that.setData({
|
|
|
|
|
isFilled: false,
|
|
|
|
|
filledMsg: "",
|
|
|
|
|
"formData.address": '',
|
|
|
|
|
})
|
|
|
|
|
console.log("result.data", result.data);
|
|
|
|
|
wx.showToast({
|
|
|
|
|
title: "删除成功",
|
|
|
|
|
icon: 'success',
|
|
|
|
|
duration: 2000,
|
|
|
|
|
})
|
|
|
|
|
// wx.showModal({
|
|
|
|
|
// title: '删除成功',
|
|
|
|
|
// content: '',
|
|
|
|
|
// showCancel: false,
|
|
|
|
|
// complete: (res) => {
|
|
|
|
|
// }
|
|
|
|
|
// })
|
|
|
|
|
} else {
|
|
|
|
|
wx.showToast({
|
|
|
|
|
title: result.msg || "出错啦",
|
|
|
|
|
icon: 'error',
|
|
|
|
|
duration: 2000
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
that.isShow = ''
|
|
|
|
|
console.log("end success")
|
|
|
|
|
},
|
|
|
|
|
fail: function () {
|
|
|
|
|
console.log("begin fail")
|
|
|
|
|
wx.hideLoading()
|
|
|
|
|
wx.showToast({
|
|
|
|
|
title: "请求失败",
|
|
|
|
|
icon: 'error',
|
|
|
|
|
duration: 2000
|
|
|
|
|
})
|
|
|
|
|
console.log("end fail")
|
|
|
|
|
},
|
|
|
|
|
complete: function () {
|
|
|
|
|
that.setData({
|
|
|
|
|
isSubmitting: false,
|
|
|
|
|
})
|
|
|
|
|
console.log("begin complete")
|
|
|
|
|
if (typeof (callback) === "function")
|
|
|
|
|
callback();
|
|
|
|
|
wx.hideNavigationBarLoading();
|
|
|
|
|
console.log("end complete")
|
|
|
|
|
}
|
|
|
|
|
})
|
2023-03-17 04:55:02 +08:00
|
|
|
|
}
|
|
|
|
|
})
|