合并远端前端修复

This commit is contained in:
yml
2026-05-21 18:09:39 +08:00
10 changed files with 23 additions and 29 deletions
@@ -22,7 +22,6 @@ import { notifyTencentActionError } from './tencent/session-errors'
import {
useSessionPolling,
useSessionQrDisplay,
useSessionRoleFacts,
useSessionResultFacts,
buildRedeemBlockedReason,
resolveTaskStatusLabel,
@@ -92,7 +91,7 @@ export function useAdminManualRedeemPage() {
} = useSessionPolling({
hasSession: computed(() => Boolean(task.value?.taskId && hasSession.value)),
shouldKeepPolling: computed(() => shouldKeepPolling(detail.value)),
onPollTick: () => refreshSessionSummary({ silent: true }),
onPollTick: async () => { await refreshSessionSummary({ silent: true }) },
pollWarningPrefix: '人工兑换状态刷新失败',
})
@@ -122,12 +121,6 @@ export function useAdminManualRedeemPage() {
() => `请让客户使用${loginTypeLabel.value}扫码,并在手机上确认登录`,
)
useSessionRoleFacts({
activityInfo,
statusLabel,
roleFactDefaults: { nickname: '等待客户登录' },
})
const proofValue = computed(() => manualRequest.value?.proofValue || order.value?.platformOrderId || '-')
const { resultFacts } = useSessionResultFacts({
@@ -17,7 +17,6 @@ import { notifyTencentActionError } from './tencent/session-errors'
import {
useSessionPolling,
useSessionQrDisplay,
useSessionRoleFacts,
useSessionResultFacts,
buildRedeemBlockedReason,
resolveTaskStatusLabel,
@@ -59,7 +58,7 @@ export function useClaimPage(token: string) {
} = useSessionPolling({
hasSession,
shouldKeepPolling: computed(() => shouldKeepPolling(detail.value)),
onPollTick: () => refreshSessionSummary({ silent: true }),
onPollTick: async () => { await refreshSessionSummary({ silent: true }) },
pollWarningPrefix: '领取状态刷新失败',
})
@@ -88,12 +87,6 @@ export function useClaimPage(token: string) {
() => `请使用${loginTypeLabel.value}扫描二维码,并在手机上确认登录`,
)
useSessionRoleFacts({
activityInfo,
statusLabel,
roleFactDefaults: { nickname: '等待扫码登录' },
})
// Claim pages show 4 role facts, but original only had 3 (no area).
// Override roleFacts to match original exactly:
const claimRoleFacts = computed(() => [
@@ -39,7 +39,9 @@ export function useKuaishouCloudNinetyone(
function createItemFromNinetyoneOrder(item: AdminNinetyoneOrderItem): EditableItem {
const productNo = String(item.productNo || '').trim()
const productName = String(item.productName || productNo).trim()
const shop = config.getDefaultKuaishouConsumeShop()
const defaultShop = config.getDefaultKuaishouConsumeShop()
const shopOpts = config.getKuaishouConsumeShopOptions()
const shop = defaultShop || (shopOpts.length > 0 ? shopOpts[0] : null)
return {
localId: crypto.randomUUID(),
id: '',
@@ -48,6 +48,7 @@ const {
getSkuNamingHint,
formatInventoryStatus,
getGroupSuggestion,
// utils
formatAdminDateTime,
} = useAdminInventory()
</script>
+1 -1
View File
@@ -1,6 +1,6 @@
# Dev Dockerfile — single-stage, root, VNC/X11 + Playwright
# For production, see backend.Dockerfile (multi-stage build)
FROM node:22-bookworm
FROM docker.m.daocloud.io/library/node:22-bookworm
ARG DEBIAN_MIRROR=mirrors.cloud.tencent.com
ARG NPM_REGISTRY=https://registry.npmmirror.com
+2 -2
View File
@@ -7,7 +7,7 @@
# ============================================================================
# --------------------------- Builder Stage -----------------------------------
FROM node:22-bookworm AS builder
FROM docker.m.daocloud.io/library/node:22-bookworm AS builder
ARG DEBIAN_MIRROR=mirrors.cloud.tencent.com
ARG NPM_REGISTRY=https://registry.npmmirror.com
@@ -49,7 +49,7 @@ RUN npm run build \
&& npm prune --omit=dev
# --------------------------- Runtime Stage -----------------------------------
FROM node:22-bookworm-slim AS runtime
FROM docker.m.daocloud.io/library/node:22-bookworm-slim AS runtime
# HTTP mirrors — see builder note about OrbStack TLS
ENV DEBIAN_FRONTEND=noninteractive
+1 -1
View File
@@ -1,4 +1,4 @@
FROM caddy:2-alpine
FROM docker.m.daocloud.io/library/caddy:2-alpine
ENV TZ=Asia/Shanghai
+2 -2
View File
@@ -1,4 +1,4 @@
FROM node:22-bookworm AS builder
FROM docker.m.daocloud.io/library/node:22-bookworm AS builder
ARG NPM_REGISTRY=https://registry.npmmirror.com
@@ -14,7 +14,7 @@ RUN --mount=type=cache,target=/root/.npm,sharing=locked \
COPY apps/frontend/ ./
RUN npm run build
FROM caddy:2-alpine
FROM docker.m.daocloud.io/library/caddy:2-alpine
ENV TZ=Asia/Shanghai
+3 -3
View File
@@ -1,6 +1,6 @@
services:
postgres:
image: postgres:16-bookworm
image: docker.m.daocloud.io/library/postgres:16-bookworm
restart: unless-stopped
environment:
TZ: ${TZ:-Asia/Shanghai}
@@ -88,7 +88,7 @@ services:
- "${TENCENT_BROWSER_NOVNC_PORT:-6080}:6080"
frontend:
image: node:22-bookworm-slim
image: docker.m.daocloud.io/library/node:22-bookworm-slim
working_dir: /app
restart: unless-stopped
command: >-
@@ -105,7 +105,7 @@ services:
- frontend_node_modules:/app/node_modules
web:
image: caddy:2-alpine
image: docker.m.daocloud.io/library/caddy:2-alpine
restart: unless-stopped
depends_on:
backend:
+8 -3
View File
@@ -1,6 +1,6 @@
services:
postgres:
image: postgres:16-bookworm
image: docker.m.daocloud.io/library/postgres:16-bookworm
restart: unless-stopped
environment:
TZ: ${TZ:-Asia/Shanghai}
@@ -8,7 +8,11 @@ services:
POSTGRES_USER: ${POSTGRES_USER:-postgres}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-postgres}
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-postgres} -d ${POSTGRES_DB:-order_site}"]
test:
[
"CMD-SHELL",
"pg_isready -U ${POSTGRES_USER:-postgres} -d ${POSTGRES_DB:-order_site}",
]
interval: 5s
timeout: 5s
retries: 20
@@ -40,7 +44,8 @@ services:
ocr-worker:
condition: service_healthy
healthcheck:
test: ["CMD-SHELL", "curl -fsS http://127.0.0.1:3000/health/ready || exit 1"]
test:
["CMD-SHELL", "curl -fsS http://127.0.0.1:3000/health/ready || exit 1"]
interval: 5s
timeout: 5s
retries: 20