chore: 抢单端UI回退前备份当前完整工作区

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
XingQue
2026-06-29 17:59:23 +08:00
parent 6e2f7bc39f
commit e8fb32c1fe
53 changed files with 3410 additions and 1065 deletions

View File

@@ -1,6 +1,7 @@
// pages/dashouzhongxin/dashouzhongxin.js
import { createPage, request, isRoleStatusActive, isCenterPageActive, syncRoleStatuses, syncProfileFields, syncGroupFields, ensureRoleOnCenterPage, clearCacheAndEnterNormal, lockPrimaryRole, migrateLegacyCenterRole, enterLockedRole, parseSceneOptions } from '../../utils/base-page.js'
import { resolveAvatarUrl } from '../../utils/avatar.js'
import { resolveAvatarUrl, getDefaultAvatarUrl } from '../../utils/avatar.js'
import { fetchMyZhidingOrders, processZhidingList, filterZhidingBannerList } from '../../utils/zhiding-order.js'
import { openPrivateChat, buildInviterPeerId } from '../../utils/im-user.js'
import { isStaffMode, getStaffContext } from '../../utils/staff-api.js'
import { ensurePhoneAuth } from '../../utils/phone-auth.js'
@@ -92,6 +93,20 @@ Page(createPage({
scrollViewRefreshing: false,
showRechargeBanners: false,
showPindaoEntry: true,
myZhidingList: [],
myZhidingCount: 0,
showBadgeZone: false,
},
_syncBadgeZoneFlags(patch = {}) {
const d = { ...this.data, ...patch };
const showBadgeZone = !!(
(d.chenghaoList && d.chenghaoList.length > 0)
|| (d.isGuanshi && d.guanshiChenghaoList && d.guanshiChenghaoList.length > 0)
|| (d.identityTagList && d.identityTagList.length > 0)
);
return { ...patch, showBadgeZone };
},
_buildImgUrls(ossImageUrl) {
@@ -246,6 +261,7 @@ Page(createPage({
if (!this.data.isDashou) this.setData({ isDashou: true });
ensureRoleOnCenterPage(this, 'dashou');
this.loadExamStatus();
this.loadMyZhidingOrders();
} else if (isRoleStatusActive(wx.getStorageSync('guanshistatus')) ||
isRoleStatusActive(wx.getStorageSync('zuzhangstatus')) ||
isRoleStatusActive(wx.getStorageSync('kaoheguanstatus'))) {
@@ -266,6 +282,7 @@ Page(createPage({
}, 300);
}
}
if (app.startImWhenReady) app.startImWhenReady();
},
checkRoleStatuses() {
@@ -283,6 +300,7 @@ Page(createPage({
}, () => {
this._updateTotalAssets();
this._updatePendingAuth();
this.setData(this._syncBadgeZoneFlags());
});
if (isDashou) {
const uid = wx.getStorageSync('uid') || '';
@@ -361,6 +379,7 @@ Page(createPage({
this._fetchZuzhangInfoSilent(),
this._fetchKaoheguanInfoSilent(),
this.loadIdentityTags(),
this.loadMyZhidingOrders(),
]);
this.checkRoleStatuses();
const dashouOk = results[0].status === 'fulfilled';
@@ -410,7 +429,7 @@ Page(createPage({
...(d.zuzhang || []),
...(d.guanshi || []),
];
this.setData({ identityTagList: merged });
this.setData(this._syncBadgeZoneFlags({ identityTagList: merged }));
}
} catch (e) {
/* 静默 */
@@ -548,7 +567,7 @@ Page(createPage({
data: { role: 'guanshi' },
});
if (res && res.data.code === 0 && res.data.data) {
this.setData({ guanshiChenghaoList: res.data.data.chenghao_list || [] });
this.setData(this._syncBadgeZoneFlags({ guanshiChenghaoList: res.data.data.chenghao_list || [] }));
}
} catch (e) {}
},
@@ -752,11 +771,11 @@ Page(createPage({
});
if (res && res.data.code === 0 && res.data.data) {
const list = res.data.data.chenghao_list || [];
this.setData({ chenghaoList: list });
this.setData(this._syncBadgeZoneFlags({ chenghaoList: list }));
const app = getApp();
app.globalData.chenghaoList = list;
} else {
this.setData({ chenghaoList: [] });
this.setData(this._syncBadgeZoneFlags({ chenghaoList: [] }));
}
} catch (e) {
}
@@ -1130,7 +1149,44 @@ Page(createPage({
}
wx.navigateTo({ url: '/pages/verify/verify?type=shangjia' });
},
goToReceiveOrder() { wx.navigateTo({ url: '/pages/accept-order/accept-order' }) },
goToReceiveOrder() {
wx.switchTab({ url: '/pages/accept-order/accept-order' });
},
async loadMyZhidingOrders() {
if (!isCenterPageActive(this, 'isDashou', 'dashoustatus')) return;
try {
const raw = await fetchMyZhidingOrders();
const uid = this.data.uid || wx.getStorageSync('uid');
const list = filterZhidingBannerList(processZhidingList(raw, getApp(), uid));
this.setData({ myZhidingList: list, myZhidingCount: list.length });
} catch (e) {
console.warn('fighter loadMyZhidingOrders', e);
}
},
goToZhidingFromMine() {
const app = getApp();
const first = (this.data.myZhidingList || [])[0];
if (first && first.dingdan_id) {
app.globalData._acceptOrderHighlight = first.dingdan_id;
}
wx.switchTab({
url: '/pages/accept-order/accept-order',
fail: () => wx.showToast({ title: '跳转失败', icon: 'none' }),
});
},
openZhidingDetailFromMine(e) {
const item = e.currentTarget.dataset.item;
const id = item?.dingdan_id || e.currentTarget.dataset.id;
if (!id) return;
getApp().globalData._acceptOrderHighlight = id;
wx.switchTab({
url: '/pages/accept-order/accept-order',
fail: () => wx.showToast({ title: '跳转失败', icon: 'none' }),
});
},
goToDashouExam() { wx.navigateTo({ url: '/pages/dashou-exam/dashou-exam' }) },
async loadExamStatus() {