export interface ConsultPreset { /** 预填需求内容(如产品名),便于后台识别客户意向 */ need?: string /** 来源标记,便于后台统计转化来源 */ source?: string } /** * 全站咨询弹窗状态 * * 任意页面/组件调用 openConsult() 即可弹出咨询表单弹窗, * 弹窗内提交到 useCms().submitForm()(POST /api/form/submit)。 * 用 useState 保证 SSR 与客户端共享同一份状态。 */ export function useConsult() { const isOpen = useState('consult-open', () => false) const presetNeed = useState('consult-preset-need', () => '') const source = useState('consult-source', () => '') function openConsult(preset?: ConsultPreset) { presetNeed.value = preset?.need || '' source.value = preset?.source || '' isOpen.value = true } function closeConsult() { isOpen.value = false } return { isOpen, presetNeed, source, openConsult, closeConsult } }