diff --git a/.gitignore b/.gitignore index 3d379e0..057e908 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ node_modules/ dist/ apps/*/dist/ +.pnpm-store .env .env.local **/.venv/ diff --git a/WonderQ-Admin-UI/src/api.ts b/WonderQ-Admin-UI/src/api.ts index d8e88fc..93273e8 100644 --- a/WonderQ-Admin-UI/src/api.ts +++ b/WonderQ-Admin-UI/src/api.ts @@ -133,6 +133,7 @@ export type DetailRecord = { excluded: string[]; notes: string[]; gallery: string[]; + conciergeAdvisorId: string | null; isActive: boolean; sortOrder: number; createdAt?: string; diff --git a/WonderQ-Admin-UI/src/components/admin/WanfaRouteDetailFields.tsx b/WonderQ-Admin-UI/src/components/admin/WanfaRouteDetailFields.tsx index a947239..d311369 100644 --- a/WonderQ-Admin-UI/src/components/admin/WanfaRouteDetailFields.tsx +++ b/WonderQ-Admin-UI/src/components/admin/WanfaRouteDetailFields.tsx @@ -1,6 +1,13 @@ -import type { DetailCreate } from "@/api"; +import type { ConciergeAdvisor, DetailCreate } from "@/api"; import { ImageGalleryUploader } from "@/components/admin/ImageGalleryUploader"; import { Input } from "@/components/ui/input"; +import { + Select, + SelectContent, + SelectItem, + SelectTrigger, + SelectValue, +} from "@/components/ui/select"; import { Switch } from "@/components/ui/switch"; import { Textarea } from "@/components/ui/textarea"; @@ -15,9 +22,11 @@ type DetailArrayField = (typeof detailArrayFields)[number][0]; export function WanfaRouteDetailFields({ detail, + conciergeAdvisors, onChange, }: { detail: DetailCreate; + conciergeAdvisors: ConciergeAdvisor[]; onChange: (key: K, value: DetailCreate[K]) => void; }) { const updateLines = (key: DetailArrayField, value: string) => { @@ -107,6 +116,28 @@ export function WanfaRouteDetailFields({ /> ))} +
+ 联系管家 +

+ 详情页只保存顾问 ID,前台会读取管家领域的最新头像、二维码和服务详情。 +

+ +
({ excluded: [], notes: [], gallery: [], + conciergeAdvisorId: null, isActive: true, }); @@ -56,6 +57,7 @@ const detailDraft = (detail?: DetailRecord): DetailCreate => excluded: detail.excluded ?? [], notes: detail.notes ?? [], gallery: detail.gallery ?? [], + conciergeAdvisorId: detail.conciergeAdvisorId ?? null, isActive: detail.isActive, sortOrder: detail.sortOrder, } @@ -71,6 +73,7 @@ export function WanfaRouteEditor({ categoryLabel, initialRoute, initialDetail, + conciergeAdvisors, saving, onSave, onClose, @@ -79,6 +82,7 @@ export function WanfaRouteEditor({ categoryLabel: string; initialRoute?: WanfaRoute; initialDetail?: DetailRecord; + conciergeAdvisors: ConciergeAdvisor[]; saving: boolean; onSave: (input: WanfaRouteEditorValue) => void; onClose: () => void; @@ -221,7 +225,11 @@ export function WanfaRouteEditor({ group="wanfa" />
- + {error ?

{error}

: null}