1
0
Code Issues Pull Requests Packages Projects Releases Wiki Activity GitHub Gitee

392 lines
9.3 KiB
JavaScript
Raw Normal View History

// pages/residents/report.js
import utils from '../../utils/util'
const toggleCustomTabBar = require('../../custom-tab-bar/toggleCustomTabBar')
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,
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
toggleCustomTabBar.toggle(this)
console.log("residents/report onLoad")
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {
console.log("residents/report onReady")
},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
toggleCustomTabBar.toggle(this)
console.log("residents/report onShow")
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() {
console.log("residents/report onHide")
clearInterval(this.data.timeInterval)
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {
console.log("residents/report onUnload")
clearInterval(this.data.timeInterval)
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
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({
"formData.timestamp": timestamp,
"formData.time": utils.formatTime(new Date(timestamp))
})
},
chooseLocation: async function () {
wx.showLoading({
title: '正在获取权限'
})
await new Promise((resolve, reject) => {
wx.getSetting({
success(res) {
wx.hideLoading()
if (!res.authSetting['scope.userLocation']) {
wx.authorize({
scope: 'scope.userLocation',
// scope: 'scope.userLocationBackground',
success() {
resolve();
},
fail(err) {
wx.showModal({
title: '定位失败',
content: '您已拒绝定位授权,小程序无法获取您的位置,请在微信首页长按删除小程序,重新打开再试',
showCancel: false,
complete: (res) => {
reject();
}
})
}
})
} 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,
})
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,
})
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")
}
})
}
})