import { WX_API, H5_API, httpPrefix } from '@/config/site.config.js'; var _url = H5_API+ WX_API + httpPrefix import store from '@/store/index.js' export function checkToken(vm) { let expiresTime = vm.$store.state.user.vuex_loginInfo.expiresTime let nowTime = new Date() * 1 console.log('超时了') console.log(expiresTime) if (nowTime > expiresTime * 1) { vm.$store.commit('goLogin') // 如果小于20分钟就刷新一下token && } else if ((expiresTime * 1 - nowTime) / 60000 < 10) { vm.$store.dispatch('refreshToken') } } function dateRangeFn(dateRange) { let tmp = [] let dateArr = [] dateRange.forEach((date) => { let dateStr = date.toISOString().split('T')[0] let dd = dateStr.split('-')[2] const daysOfWeek = ['日', '一', '二', '三', '四', '五', '六']; const dayOfWeek = date.getDay(); const weekName = daysOfWeek[dayOfWeek]; // console.log(dateStr) // console.log(weekName) if (tmp.length == 0) { dateArr.push(tmp) } let obj = { week: weekName, num: dd, date: dateStr } tmp.push(obj) if (tmp.length == 5) { tmp = [] } }); console.log(dateArr) return dateArr } // 获取两个时间段的所有日期 export function getDates(startDate, endDate) { const dates = []; let currentDate = new Date(startDate); while (currentDate <= endDate) { dates.push(new Date(currentDate)); currentDate.setDate(currentDate.getDate() + 1); } return dateRangeFn(dates) } // 获取两个时间段的所有月份 export function getMonthsBetweenDates(startDate, endDate) { let months = []; let currentDate = new Date(startDate); while (currentDate <= endDate) { const year = currentDate.getFullYear(); const month = currentDate.getMonth() + 1; // 月份从0开始,所以要加1 months.push(`${year}-${month.toString().padStart(2, '0')}`); // 将当前日期设置为下一个月的第一天 currentDate.setMonth(currentDate.getMonth() + 1); currentDate.setDate(1); } return months; } //选择图片 export function chooseImages(num=0) { let imgNum = 3 - num let tempArr = [] return new Promise((reslove, reject)=>{ uni.chooseImage({ count: imgNum, //允许选择的数量 sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有 sourceType: ['album', 'camera'], //从相册选择 success: res => { uni.showLoading({ title: '图片上传中...' }); console.log(res) res.tempFiles.forEach( async (item,index)=>{ let dataImg = await uploadImgApi(item.path, index) if(dataImg) tempArr.push(dataImg) if(index==res.tempFiles.length-1) { reslove(tempArr) } }) } }) }) } export function uploadImgApi(filePath, imgName) { console.log(filePath) let token = 'Bearer '+ store.state.user.vuex_loginInfo.accessToken let timer = new Date() * 1 return new Promise((reslove, reject)=>{ // 上传图片到服务器 uni.uploadFile({ url: _url + 'infra/file/upload',//接口 filePath: filePath,//要上传的图片的本地路径 name: 'file', formData: { path: 'complain/'+ uni.$u.date(timer, 'yyyy-mm-dd')+'/'+timer + '-'+ imgName, type: 1, fileSuffix: "png" }, header: { Authorization: token, // 'tenant-id': '1704459882232553474' }, success(res) { console.log('上传成功') let res2 = JSON.parse(res.data) reslove(res2.data) }, fail() { reject(0) }, complete: (err)=> { uni.hideLoading(); } }) }) } let apiOk =true let refreshTokenFn = null export function refreshToken() { return new Promise(async(resolve, reject)=>{ if(!apiOk) { return refreshTokenFn } apiOk = false refreshTokenFn = null const http = uni.$u.http let config = { header: {'content-type': 'application/x-www-form-urlencoded; charset=UTF-8'}, custom: { noToken: true } } let refreshToken = store.state.user.vuex_loginInfo.refreshToken refreshTokenFn = await http.post('member/auth/refresh-token',{refreshToken}, config) if( refreshTokenFn.data|| refreshTokenFn.data.accessToken) { apiOk = true store.commit('update_vuex_loginInfo', refreshTokenFn.data) uni.$u.http.setConfig((config) => { config.header.Authorization = 'Bearer ' + refreshTokenFn.data.accessToken return config }) resolve(refreshTokenFn) }else { apiOk = true store.commit('goLogin') reject('刷新token失败了') } }) } export function scanCodeFn(_this) { uni.scanCode({ scanType: ['qrCode'], success: function(res) { console.log('条码类型:' + res.scanType); console.log('条码内容:' + res.result); let obj = JSON.parse(res.result) console.log(obj) // 扫教练码去报名的 if(obj.QrType) { let item = { schoolName: obj.schoolName, schoolId: obj.schoolId, name: obj.coachName, id: obj.coachId, teachCarType: obj.teachCarType, key: obj.key, QrType: obj.QrType } console.log('***********') console.log(item) _this.$store.commit('upDateSchoolClass', {}) _this.$store.commit('upDateSchoolCoach', item) if(obj.QrType==1) { _this.$u.utils.clickSignUp() }else { // 签到的 _this.$goPage('/pages/indexEntry/signIn/signAndOut/signAndOut') } }else { _this.$store.commit('updateWebVeiwUrl', res.result) uni.navigateTo({ url: '/pages/other/webView/webView' }) } } }); }