restore: 恢复橙色逍遥梦UI版本(2ea2860)到主分支

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
XingQue
2026-07-09 00:17:03 +08:00
parent 267de7c780
commit 566aeaa3b7
228 changed files with 22076 additions and 11864 deletions

View File

@@ -6,6 +6,7 @@ import {
isWechatLoginSuccess,
} from './role-tab-bar';
import { restoreStaffContextAfterAuth } from './staff-api.js';
import { CLUB_API, getClubId, setClubId, buildClubHeaders } from './club-context';
const app = getApp();
@@ -19,12 +20,10 @@ export function ensureLogin(options = {}) {
return Promise.resolve(true);
}
// 关键:如果已有登录流程正在执行,直接返回那个 Promise避免并发登录
if (app.globalData.loginPromise) {
return app.globalData.loginPromise;
}
// 开始新的登录流程
const loginPromise = new Promise(async (resolve, reject) => {
if (silent) {
wx.showLoading({ title: '自动登录中...', mask: true });
@@ -36,12 +35,15 @@ export function ensureLogin(options = {}) {
const apiBaseUrl = app.globalData.apiBaseUrl;
if (!apiBaseUrl) throw new Error('服务器配置错误');
const clubId = getClubId(app);
const appId = app.globalData.appId || '';
const res = await new Promise((resolve, reject) => {
wx.request({
url: apiBaseUrl + '/yonghu/wechatlogin',
url: apiBaseUrl + CLUB_API.wechatLogin,
method: 'POST',
data: { code: loginRes.code },
header: { 'content-type': 'application/json' },
data: { code: loginRes.code, club_id: clubId, app_id: appId },
header: buildClubHeaders({ 'content-type': 'application/json' }),
success: resolve,
fail: reject,
});
@@ -49,7 +51,11 @@ export function ensureLogin(options = {}) {
const userData = res.data && (res.data.data || res.data);
if (res.statusCode === 200 && isWechatLoginSuccess(res.data) && userData) {
if (userData.club_id) {
setClubId(userData.club_id, app);
}
applyWechatLoginData(userData, page);
restoreStaffContextAfterAuth();
resolve(true);
} else {
const msg = res.data?.msg || '登录失败';
@@ -64,12 +70,10 @@ export function ensureLogin(options = {}) {
}
});
// 存储全局登录 Promise供 request.js 感知
app.globalData.loginPromise = loginPromise;
// 无论成功或失败,完成后清空标记
loginPromise.finally(() => {
app.globalData.loginPromise = null;
});
return loginPromise;
}
}