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

@@ -4,8 +4,9 @@
export const ORDER_CARD_PREFIX = '[ORDER_CARD]';
const ZHUANGTAI_MAP = {
1: '已下单', 2: '进行中', 3: '已完成', 4: '退款中',
1: '待抢单', 2: '进行中', 3: '已完成', 4: '退款中',
5: '已退款', 6: '退款失败', 7: '指定中', 8: '结算中',
9: '未支付', 14: '支付失败', 25: '已废弃',
};
export function getZhuangtaiText(zhuangtai) {
@@ -38,6 +39,12 @@ export function resolveLocalGroupId(identityType, myUid, partnerUid, fadanPingta
}
return buildDashouBossGroupId(myUid, partnerUid);
}
if (identityType === 'boss' || identityType === 'normal') {
if (partnerUid && myUid) {
return buildDashouBossGroupId(partnerUid, myUid);
}
return orderId ? `group_${orderId}` : null;
}
return orderId ? `group_${orderId}` : null;
}
@@ -105,6 +112,32 @@ export function applyPairMetaToConversation(item, myGoEasyId, defaultAvatar, oss
return;
}
const parsed = parsePairGroupId(item.groupId);
if (parsed && myGoEasyId) {
const isDashou = myGoEasyId === parsed.dashouId;
const isPartner = myGoEasyId === parsed.partnerId;
if (isDashou) {
d.counterpartId = parsed.partnerId;
d.counterpartYonghuid = parsed.partnerId.replace(/^(Sj|Boss)/, '');
d.partnerRoleLabel = parsed.partnerRole === 'boss' ? '老板' : '商家';
if (!d.name || d.name === item.groupId) {
d.name = d.partnerNicheng || `${d.partnerRoleLabel}${d.counterpartYonghuid.slice(-6)}`;
}
if (!d.avatar || d.avatar === defaultAvatar) {
d.avatar = d.partnerAvatar || defaultAvatar;
}
} else if (isPartner) {
d.counterpartId = parsed.dashouId;
d.counterpartYonghuid = parsed.dashouId.replace(/^Ds/, '');
if (!d.name || d.name === item.groupId) {
d.name = d.dashouNicheng || `打手${d.counterpartYonghuid.slice(-6)}`;
}
if (!d.avatar || d.avatar === defaultAvatar) {
d.avatar = d.dashouAvatar || defaultAvatar;
}
}
}
const counterpartId = getCounterpartGoEasyId(item.groupId, myGoEasyId);
if (counterpartId) {
d.counterpartId = counterpartId;
@@ -215,6 +248,7 @@ export function getConversationSortTime(conversation, openTimes) {
const id = conversation.groupId || conversation.userId || '';
const msgTs = conversation.lastMessage?.timestamp || 0;
const openTs = (openTimes && id && openTimes[id]) ? openTimes[id] : 0;
// QQ/微信:取「最后消息时间」与「最近进入会话时间」较大值;新消息到达会更新 msgTs 并置顶
return Math.max(msgTs, openTs);
}
@@ -222,8 +256,6 @@ export function sortConversations(list, openTimes) {
return list.sort((a, b) => {
if (a.top && !b.top) return -1;
if (!a.top && b.top) return 1;
if (a.unread > 0 && b.unread <= 0) return -1;
if (a.unread <= 0 && b.unread > 0) return 1;
const ta = getConversationSortTime(a, openTimes);
const tb = getConversationSortTime(b, openTimes);
return tb - ta;