2023-09-08 18:54:12 +08:00

174 lines
4.4 KiB
JavaScript

import {
getUserInfo
} from "../../api/user.js";
import {
LOGIN_STATUS,
UID
} from '../../config/cache';
import Cache from '../../utils/cache';
import {
USER_INFO
} from '../../config/cache';
// #ifdef APP-PLUS
import Updater from '@/uni_modules/guyue-updater/index';
// #endif
const state = {
location: Cache.get('LOCATION_DATA', true) || {},
token: Cache.get(LOGIN_STATUS) || null,
backgroundColor: "#fff",
userInfo: null,
uid: Cache.get(UID) || null,
globalData: uni.getStorageSync('GLOBAL_DATA') || {},
homeActive: false,
copyPwd: null,
pageFooter: uni.getStorageSync('pageFoot') || {},
keyColor: Cache.get('KEY_COLOR') || '_default',
viewColor: Cache.get('VIEW_COLOR') ||
'--view-theme: #E93323;--view-assist:#FF7612;--view-priceColor:#E93323;--view-bgColor:rgba(255, 118, 18,.1);--view-minorColor:rgba(233, 51, 35,.1);--view-bntColor11:#FDA923;--view-bntColor12:#FD6523;--view-bntColor21:#F11B09;--view-bntColor22:#F67A38;',
};
const mutations = {
setLocation(state, data) {
state.location = data
Cache.set('LOCATION_DATA', data);
},
LOGIN(state, opt) {
state.token = opt.token;
Cache.set(LOGIN_STATUS, opt.token, opt.time);
uni.removeStorageSync('auth_token');
},
SETUID(state, val) {
state.uid = val;
Cache.set(UID, val);
},
UPDATE_LOGIN(state, token) {
state.token = token;
},
LOGOUT(state) {
state.token = null;
state.uid = null
Cache.clear(LOGIN_STATUS);
Cache.clear(UID);
},
BACKGROUND_COLOR(state, color) {
state.color = color;
document.body.style.backgroundColor = color;
},
UPDATE_USERINFO(state, userInfo, time) {
userInfo.isNew && Cache.set('is_new_user', '1')
state.userInfo = userInfo;
},
OPEN_HOME(state) {
state.homeActive = true;
},
CLOSE_HOME(state) {
state.homeActive = false;
},
PARSE_PWD(state, pwd) {
state.copyPwd = pwd;
},
VIEW_COLOR(state, color) {
Cache.set('VIEW_COLOR', color)
state.viewColor = color;
},
KEY_COLOR(state, key) {
Cache.set('KEY_COLOR', key)
state.keyColor = key;
},
GLOBAL_DATA(state, key) {
uni.setStorageSync('GLOBAL_DATA', key);
state.globalData = key;
},
FOOT_UPLOAD(state, data) {
state.pageFooter = data
}
};
const actions = {
USERINFO({
state,
commit
}, force) {
if (state.userInfo !== null && !force)
return Promise.resolve(state.userInfo);
else
return new Promise(reslove => {
getUserInfo().then(res => {
commit("UPDATE_USERINFO", res.data);
Cache.set(USER_INFO, res.data);
reslove(res.data);
});
}).catch(() => {
});
},
async INIT_CONFIG({ state, commit }, data = false) {
// let res = await getConfig();
let res = {
data: {
version: '1.2.1',
version_info: {
"id": 4,
"title": "正式IOS测试",
"content": "IOS正式",
"type": 1,
"version": "1.2.1",
"dow_url": "https://worker-task.lihaink.cn/uploads/files/20230908/20230908174409996e65763.wgt",
"force": 0,
"quiet": 0,
"create_time": "2023-09-04 15:28:29",
"update_time": "2023-09-04 15:28:29",
"delete_time": null
}
}
}
const wgt_v = uni.getStorageSync('wgt_version')||'1.0.0';
// #ifdef APP-PLUS
let os = uni.getSystemInfoSync();
if(data) uni.showLoading({
title: '检查更新中'
})
// 版本更新
if(compareVersions(res.data.version, os.appVersion||wgt_v)==1&&compareVersions(res.data.version, wgt_v)==1){
try{
let info = res.data.version_info||{};
let version = {
title: info.title||'发现新版本',
content: info.content||'修复了部分BUG',
versionName: info.version||'1.0.1',
downUrl: info.dow_url||'',
force: info.force==1?true:false, // 是否强制更新
quiet: info.quiet==1?true:false // 是否静默更新
}
Updater.update(version);
}catch(e){
console.log(e);
}
if(data) uni.hideLoading();
}
// #endif
}
};
function compareVersions(version1, version2) {
const arr1 = version1.split('.').map(Number);
const arr2 = version2.split('.').map(Number);
for (let i = 0; i < Math.max(arr1.length, arr2.length); i++) {
const num1 = i < arr1.length ? arr1[i] : 0;
const num2 = i < arr2.length ? arr2[i] : 0;
if (num1 > num2) {
return 1;
} else if (num1 < num2) {
return -1;
}
}
return 0;
}
export default {
state,
mutations,
actions
};