feat(v3.4.13): partner column, version release cascade, client UX fixes

- HQ stores: partner column uses companyName/name/phone via partnerOptionLabel

- Dev plan: version RELEASED auto-marks tasks RELEASED and tickets PUBLISHED with releasedVersionNo

- mini-user/h5-shop/h5-partner v3.4.13 UX fixes (store UI, iOS scan OAuth, partner login guard)

- Docs: v3.4.13 dev doc + status audit updates

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-08-06 01:02:07 +08:00
parent 3ef4432b2f
commit 4f363fa9e7
25 changed files with 658 additions and 421 deletions
+2 -2
View File
@@ -1,4 +1,4 @@
export { isWechatBrowser, isMiniProgram, getRuntimePlatform } from './env';
export { isWechatBrowser, isMiniProgram, getRuntimePlatform, isIosDevice, isWechatDevTools } from './env';
export { getRouterBasename, toAppPath, isOnAppPath } from './app-path';
export {
initWechatJssdk,
@@ -10,7 +10,7 @@ export {
resetJssdkConfig,
stripOAuthParamsFromLocation,
} from './jssdk';
export { formatScanFailMessage } from './scan';
export { formatScanFailMessage, isScanPermissionWarmupError } from './scan';
export {
getWechatLocation,
getWechatLocationDetailed,
+8 -9
View File
@@ -38,7 +38,7 @@ export function formatScanFailMessage(errMsg: string): string {
return msg;
}
function isScanPermissionWarmupError(msg: string): boolean {
export function isScanPermissionWarmupError(msg: string): boolean {
return /offline verifying|permission value is offline|权限验证中|接口未就绪|invalid signature|config:fail|signature/i.test(
msg,
);
@@ -134,15 +134,13 @@ export async function scanQrCode(
throw new Error('当前微信版本不支持扫码,请升级微信后重试');
}
// wx.ready ≠ 权限离线校验完成;授权回跳后更明显
const warmupMs = options.postAuthWarmup
? 1200
: isIosDevice() && !isWechatDevTools()
? 800
: 300;
const ios = isIosDevice() && !isWechatDevTools();
// wx.ready ≠ 权限离线校验完成;OAuth 回跳后 iOS 更明显
const warmupMs = options.postAuthWarmup ? (ios ? 1600 : 1000) : ios ? 800 : 300;
await delay(warmupMs);
const maxAttempts = options.postAuthWarmup ? 3 : 2;
const maxAttempts = options.postAuthWarmup ? (ios ? 4 : 3) : 2;
let lastError: Error | null = null;
for (let attempt = 0; attempt < maxAttempts; attempt++) {
if (attempt > 0) {
@@ -151,7 +149,8 @@ export async function scanQrCode(
await initWechatJssdk({ ...jssdkOptions, url: getJssdkSignUrl() });
await checkJsApi('scanQRCode');
}
await delay(700 + attempt * 500);
const retryDelay = options.postAuthWarmup && ios ? 900 + attempt * 700 : 700 + attempt * 500;
await delay(retryDelay);
}
try {
return await invokeScanQrCode();