import { unwrapApiPayload, usAppApiRequest } from '../utils/usAppApiRequest' function parseOptionValuesJson(raw: unknown): string[] { if (raw == null) return [] if (Array.isArray(raw)) return raw.map((x) => String(x)) if (typeof raw === 'string') { const t = raw.trim() if (!t) return [] try { const p = JSON.parse(t) as unknown if (Array.isArray(p)) return p.map((x) => String(x)) } catch { return [] } } return [] } export type LabelMultipleOptionDetail = { id: string optionName: string optionCode: string optionValuesJson: string[] } /** * GET /api/app/label-multiple-option/{id}(与 Web 管理端一致) */ export async function fetchLabelMultipleOptionById(id: string): Promise { const tid = String(id ?? '').trim() if (!tid) return null const raw = await usAppApiRequest({ path: `/api/app/label-multiple-option/${encodeURIComponent(tid)}`, method: 'GET', auth: true, }) const d = unwrapApiPayload(raw) as Record if (!d || typeof d !== 'object') return null const oid = String(d.id ?? d.Id ?? tid) const optionValuesJson = parseOptionValuesJson(d.optionValuesJson ?? d.OptionValuesJson) return { id: oid, optionName: String(d.optionName ?? d.OptionName ?? '').trim() || oid, optionCode: String(d.optionCode ?? d.OptionCode ?? '').trim(), optionValuesJson, } }