You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

269 lines
7.4 KiB

import constant from "../../utils/constant"
import orderAPI from '../../api/orderApi/orderApi'
import userApi from "../../api/userApi/userApi"
import {dateChange,formatDate} from "../../utils/util"
const app = getApp()
Page({
data: {
user:{}
},
onLoad:function () {
// TODO 报备历史获取 by userinfo
// 会设置this.data.role = 2 | 6 | 10 => 门卫 | 老师 | 管理
let clearTime = wx.getStorageSync(constant.CLEAR_TIME);
// 判断clearTime是否存在
let cleartimeNew = dateChange(7)
if (clearTime) {
if (formatDate() > clearTime) {
// 已过期,清除缓存
wx.clearStorageSync();
// 清除后执行更新数据及新的过期时间
wx.setStorageSync(constant.CLEAR_TIME, cleartimeNew);
}
}else{
wx.setStorageSync(constant.CLEAR_TIME, cleartimeNew);
}
let wechatID = wx.getStorageSync(constant.WECHATID)
if(wechatID&&wechatID!=null){
let userinfo = wx.getStorageSync(constant.USER_INFO)
if(!userinfo){
this.getuser(wechatID)
this.setData({user:userinfo})
}else{
this.setData({user:userinfo})
}
}else{
app.userInfoReadyCallback = (wcID:string) => {
if (wcID != '') {
this.getuser(wcID)
wx.setStorageSync(constant.WECHATID, wcID);
}
}
}
},
getuser(wechatID:string){
let that = this
userApi.getCurrentUser(wechatID).then(res=>{
let userInfo = JSON.parse(res.data.return_val)
wx.setStorageSync(constant.USER_INFO,userInfo)
that.setData({user:userInfo})
}).catch(err=>{
wx.showModal({
title:"获取信息错误",
content:JSON.stringify(err),
showCancel:false
})
})
},
async onScanValid() {
wx.showLoading({ title: '扫描场所码开始~' });
let that = this
wx.scanCode({
success(qrCode) {
//TODO get orderInfo by qrID
const qr_code = qrCode.result;
orderAPI.scanLocationCode({VenueCode:qr_code}).then(res=>{
let val = JSON.parse(res.data.return_val)
that.setData({user:val})
wx.setStorageSync(constant.USER_INFO,val)
wx.hideLoading()
if(res&&res.data.success){
wx.showToast({title:"场所码扫描成功~",icon:"success"})
}else{
let message = res.data.message
wx.showModal({
title:"扫描场所码失败",
content:message,icon:'error',
showCancel:false})
}
})
},
fail:err=>{
wx.hideLoading()
if(err.errMsg&&err.errMsg.indexOf('cancel')<0){
wx.showToast({title:JSON.stringify(err),icon:"error"})
}
}
})
},
uploadHealthCard(){
let that = this
wx.showLoading({ title: '健康码上传中' });
this.chooseBase64Image().then(suc=>{
orderAPI.uploadHealthCode({ImageBase64:suc.base64File,ext:'.'+suc.imgType}).then(res=>{
let val = JSON.parse(res.data.return_val)
that.setData({user:val})
wx.setStorageSync(constant.USER_INFO,val)
wx.hideLoading()
if(res&&res.data.success){
wx.showToast({title:"健康码上传成功~",icon:"success"})
}else{
let message=res.data.message
wx.showModal({
title:"健康码上传错误",
content:message,
showCancel:false})
}
}).catch(err=>{
wx.hideLoading()
wx.showModal({
title:"健康码上传错误",
content:"uploadHealthCode==="+JSON.stringify(err),
showCancel:false})
})
}).catch(err=>{
wx.hideLoading()
if(err&&err!=""){
wx.showModal({
title:"健康码上传错误",
content:"chooseBase64Image==="+JSON.stringify(err),
showCancel:false})
}
})
},
uploadTravelCard(){
let that = this
wx.showLoading({ title: '行程卡上传中' });
this.chooseBase64Image().then(suc=>{
orderAPI.uploadTripCode({ImageBase64:suc.base64File,ext:'.'+suc.imgType}).then(res=>{
let val = JSON.parse(res.data.return_val)
that.setData({user:val})
wx.setStorageSync(constant.USER_INFO,val)
wx.hideLoading()
if(res&&res.data&&res.data.success){
wx.showToast({title:"行程卡上传成功~",icon:"success"})
}else{
let message=res.data.message
wx.showModal({
title:"行程卡上传错误",
content:message,
showCancel:false})
}
}).catch(err=>{
wx.hideLoading()
wx.showModal({
title:"行程卡上传错误",
content:"uploadTripCode==="+JSON.stringify(err),
showCancel:false})
})
}).catch(err=>{
wx.hideLoading()
if(err&&err!=""){
wx.showModal({
title:"行程卡上传错误",
content:"chooseBase64Image==="+JSON.stringify(err),
showCancel:false})
}
})
},
chooseBase64Image() {
return new Promise((resolve, reject) => {
wx.chooseImage({
sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
count:1,
sourceType: ['album'], // 可以指定来源是相册还是相机,默认二者都有
success: (res)=> {
let tempFile = res.tempFiles[0];
this.getImageBase64_readFile(tempFile.path).then(suc=>{
resolve(suc)
}).catch(err=>{
reject(err)
});
},
fail: (err) => {
if(err.errMsg&&err.errMsg.indexOf('cancel')<0){
reject(err)
}
reject("")
}
},);
})
},
async getImageBase64_readFile(tempFilePath:string) {
return new Promise((resolve, reject) => {
wx.getImageInfo({
src:tempFilePath,
success:(imageInfo)=>{
var imgType = imageInfo.type
wx.compressImage({
src: tempFilePath, // 图片路径
quality: 1, // 压缩质量
compressedWidth:200,
success:file_path=>{
wx.getFileSystemManager().readFile({
filePath: file_path.tempFilePath, //选择图片返回的相对路径
encoding: "base64", //这个是很重要的
success: res => { //成功的回调
//返回base64格式
var base64Str = '' + res.data
let result:{base64File:string,imgType:string} ={base64File:base64Str,imgType:imgType}
resolve(result)
},
fail: err => {
reject(err)
}
})
}
})
}
})
})
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {
},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage() {
}
})