- Spring Boot 后端服务 (hss-home-service) - delivery-miniapp 配送小程序 - website 官网 (Nuxt) - docs 架构设计文档 - Docker 容器化部署配置 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
1 line
3.6 KiB
JSON
1 line
3.6 KiB
JSON
{"file":"useLeadForm-hNHTDEhY.js","mappings":";;AAyBA,SAAS,UAAU,MAAgC;AACjD,SAAO,SAAS,OAAO,SAAS,SAAS,SAAS;AACpD;AAEA,SAAS,cAAc,OAAwB;AAC7C,SAAO,gBAAgB,KAAK,KAAK;AACnC;AAEO,SAAS,YAAY,MAAgB;AAC1C,QAAM,SAAS,iBAAA;AAEf,QAAM,UAAU,IAAI,KAAK;AACzB,QAAM,UAAU,IAAI,KAAK;AACzB,QAAM,QAAQ,IAAI,EAAE;AAEpB,QAAM,OAAO,IAAc;AAAA,IACzB,MAAM;AAAA,IACN,SAAS;AAAA,IACT,OAAO;AAAA,IACP;AAAA,EAAA,CACD;AAED,iBAAe,SAAS;AACtB,UAAM,QAAQ;AAEd,QAAI,CAAC,KAAK,MAAM,KAAK,QAAQ;AAC3B,YAAM,QAAQ;AACd;AAAA,IACF;AACA,QAAI,CAAC,KAAK,MAAM,QAAQ,QAAQ;AAC9B,YAAM,QAAQ;AACd;AAAA,IACF;AACA,QAAI,CAAC,cAAc,KAAK,MAAM,KAAK,GAAG;AACpC,YAAM,QAAQ;AACd;AAAA,IACF;AAEA,YAAQ,QAAQ;AAEhB,QAAI;AACF,UAAI,OAAO,OAAO,aAAa;AAC7B,cAAM,IAAI,QAAQ,CAAA,YAAW,WAAW,SAAS,GAAG,CAAC;AACrD,gBAAQ,QAAQ;AAChB,gBAAQ,QAAQ;AAChB;AAAA,MACF;AAEA,YAAM,MAAM,MAAM,OAAoB,GAAG,OAAO,OAAO,SAAS,UAAU;AAAA,QACxE,QAAQ;AAAA,QACR,MAAM;AAAA,UACJ,GAAG,KAAK;AAAA,UACR,QAAQ;AAAA,UACR,cAAa,oBAAI,KAAA,GAAO,YAAA;AAAA,QAAY;AAAA,MACtC,CACD;AAED,UAAI,UAAU,IAAI,IAAI,GAAG;AACvB,gBAAQ,QAAQ;AAAA,MAClB,OAAO;AACL,cAAM,QAAQ,IAAI,WAAW;AAAA,MAC/B;AAAA,IACF,SAAS,GAAQ;AACf,YAAM,QAAQ,GAAG,MAAM,WAAW,GAAG,WAAW;AAAA,IAClD,UAAA;AACE,cAAQ,QAAQ;AAAA,IAClB;AAAA,EACF;AAEA,WAAS,QAAQ;AACf,YAAQ,QAAQ;AAChB,UAAM,QAAQ;AAAA,EAChB;AAEA,SAAO,EAAE,MAAM,SAAS,SAAS,OAAO,QAAQ,MAAA;AAClD;","names":[],"sources":["../../../../composables/useLeadForm.ts"],"sourcesContent":["import { ref } from 'vue'\n\ntype LeadType = 'demo' | 'download' | 'contact'\n\ntype ApiResponse<T = unknown> = {\n code: number | string\n message: string\n data?: T\n requestId?: string\n timestamp?: string | number\n}\n\nexport type LeadForm = {\n name: string\n orgName: string\n phone: string\n city?: string\n position?: string\n focusArea?: string\n contact?: string\n message?: string\n type: LeadType\n extra?: Record<string, string>\n}\n\nfunction isSuccess(code: number | string): boolean {\n return code === 200 || code === '200' || code === 'SUCCESS'\n}\n\nfunction validatePhone(phone: string): boolean {\n return /^1[3-9]\\d{9}$/.test(phone)\n}\n\nexport function useLeadForm(type: LeadType) {\n const config = useRuntimeConfig()\n\n const loading = ref(false)\n const success = ref(false)\n const error = ref('')\n\n const form = ref<LeadForm>({\n name: '',\n orgName: '',\n phone: '',\n type\n })\n\n async function submit() {\n error.value = ''\n\n if (!form.value.name.trim()) {\n error.value = '请填写姓名'\n return\n }\n if (!form.value.orgName.trim()) {\n error.value = '请填写单位名称'\n return\n }\n if (!validatePhone(form.value.phone)) {\n error.value = '请填写正确的手机号'\n return\n }\n\n loading.value = true\n\n try {\n if (config.public.useMockLead) {\n await new Promise(resolve => setTimeout(resolve, 600))\n success.value = true\n loading.value = false\n return\n }\n\n const res = await $fetch<ApiResponse>(`${config.public.apiPrefix}/leads`, {\n method: 'POST',\n body: {\n ...form.value,\n source: 'official_website',\n submittedAt: new Date().toISOString()\n }\n })\n\n if (isSuccess(res.code)) {\n success.value = true\n } else {\n error.value = res.message || '提交失败,请稍后重试'\n }\n } catch (e: any) {\n error.value = e?.data?.message || e?.message || '网络异常,请稍后重试'\n } finally {\n loading.value = false\n }\n }\n\n function reset() {\n success.value = false\n error.value = ''\n }\n\n return { form, loading, success, error, submit, reset }\n}\n"],"version":3} |