fix: 首页和我的应用排序按 seq 排列

This commit is contained in:
2026-07-29 20:27:36 +08:00
parent 8c9613044c
commit ec6a5dd956
35 changed files with 18361 additions and 17013 deletions

View File

@@ -28,6 +28,26 @@ import {
} from './../config/cache';
import Routine from '@/libs/routine';
/**
* 不依赖 atob 的 base64 解码(小程序环境不提供 atob)
*/
function base64Decode(str) {
var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
var output = '';
var i = 0;
str = String(str).replace(/[^A-Za-z0-9+/=]/g, '');
while (i < str.length) {
var b1 = chars.indexOf(str.charAt(i++));
var b2 = chars.indexOf(str.charAt(i++));
var b3 = chars.indexOf(str.charAt(i++));
var b4 = chars.indexOf(str.charAt(i++));
output += String.fromCharCode((b1 << 2) | (b2 >> 4));
if (b3 !== 64) output += String.fromCharCode(((b2 & 15) << 4) | (b3 >> 2));
if (b4 !== 64) output += String.fromCharCode(((b3 & 3) << 6) | b4);
}
return output;
}
function prePage() {
let pages = getCurrentPages();
let prePage = pages[pages.length - 1];
@@ -42,7 +62,6 @@ function prePage() {
export const toLogin = Debounce(_toLogin, 800)
function _toLogin(push, pathLogin) {
@@ -80,16 +99,6 @@ function _toLogin(push, pathLogin) {
uni.navigateTo({
url
})
// Routine.getCode()
// .then(code => {
// console.log(code)
// Routine.silenceAuth(code).then(res => {
// console.log(res)
// })
// })
// .catch(err => {
// uni.hideLoading();
// });
// #endif
// #ifdef APP-PLUS
@@ -114,11 +123,46 @@ export function checkLogin() {
return false;
} else {
store.commit('UPDATE_LOGIN', token);
// 从 JWT payload 中恢复 uid / unionid
try {
let parts = token.split('.');
if (parts.length === 3) {
let payload = parts[1]
.replace(/-/g, '+')
.replace(/_/g, '/');
while (payload.length % 4 !== 0) payload += '=';
let data = JSON.parse(base64Decode(payload));
if (data.uid) store.commit('SETUID', data.uid);
if (data.unionid) {
store.commit('SET_UNIONID', data.unionid);
Cache.set('UNIONID', data.unionid);
console.log('[checkLogin] unionid 已从 JWT 恢复:', data.unionid);
}
}
} catch (e) {}
// 恢复缓存的 openid
const cachedOpenid = Cache.get('OPENID');
if (cachedOpenid) {
store.commit('SET_OPENID', cachedOpenid);
console.log('[checkLogin] openid 已从缓存恢复:', cachedOpenid);
}
// 恢复缓存的 unionid
const cachedUnionid = Cache.get('UNIONID');
if (cachedUnionid) {
store.commit('SET_UNIONID', cachedUnionid);
console.log('[checkLogin] unionid 已从缓存恢复:', cachedUnionid);
} else {
console.log('[checkLogin] unionid 缓存为空');
}
// 从 userInfo 缓存恢复
let userInfo = Cache.get(USER_INFO, true);
if (userInfo) {
store.commit('UPDATE_USERINFO', userInfo);
if (!cachedUnionid && userInfo.unionid) {
console.log('[checkLogin] unionid 已从 userInfo 恢复:', userInfo.unionid);
}
}
return true;
}
}
}