- Spring Boot 后端服务 (hss-home-service) - delivery-miniapp 配送小程序 - website 官网 (Nuxt) - docs 架构设计文档 - Docker 容器化部署配置 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
72 lines
2.1 KiB
JavaScript
72 lines
2.1 KiB
JavaScript
import { ref } from 'file:///home/akoo/%E5%B1%85%E5%AE%B6%E6%9C%8D%E5%8A%A1/hss-home-service/website/node_modules/vue/index.mjs';
|
|
import { u as useRuntimeConfig } from './server.mjs';
|
|
|
|
function isSuccess(code) {
|
|
return code === 200 || code === "200" || code === "SUCCESS";
|
|
}
|
|
function validatePhone(phone) {
|
|
return /^1[3-9]\d{9}$/.test(phone);
|
|
}
|
|
function useLeadForm(type) {
|
|
const config = useRuntimeConfig();
|
|
const loading = ref(false);
|
|
const success = ref(false);
|
|
const error = ref("");
|
|
const form = ref({
|
|
name: "",
|
|
orgName: "",
|
|
phone: "",
|
|
type
|
|
});
|
|
async function submit() {
|
|
var _a;
|
|
error.value = "";
|
|
if (!form.value.name.trim()) {
|
|
error.value = "\u8BF7\u586B\u5199\u59D3\u540D";
|
|
return;
|
|
}
|
|
if (!form.value.orgName.trim()) {
|
|
error.value = "\u8BF7\u586B\u5199\u5355\u4F4D\u540D\u79F0";
|
|
return;
|
|
}
|
|
if (!validatePhone(form.value.phone)) {
|
|
error.value = "\u8BF7\u586B\u5199\u6B63\u786E\u7684\u624B\u673A\u53F7";
|
|
return;
|
|
}
|
|
loading.value = true;
|
|
try {
|
|
if (config.public.useMockLead) {
|
|
await new Promise((resolve) => setTimeout(resolve, 600));
|
|
success.value = true;
|
|
loading.value = false;
|
|
return;
|
|
}
|
|
const res = await $fetch(`${config.public.apiPrefix}/leads`, {
|
|
method: "POST",
|
|
body: {
|
|
...form.value,
|
|
source: "official_website",
|
|
submittedAt: (/* @__PURE__ */ new Date()).toISOString()
|
|
}
|
|
});
|
|
if (isSuccess(res.code)) {
|
|
success.value = true;
|
|
} else {
|
|
error.value = res.message || "\u63D0\u4EA4\u5931\u8D25\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5";
|
|
}
|
|
} catch (e) {
|
|
error.value = ((_a = e == null ? void 0 : e.data) == null ? void 0 : _a.message) || (e == null ? void 0 : e.message) || "\u7F51\u7EDC\u5F02\u5E38\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5";
|
|
} finally {
|
|
loading.value = false;
|
|
}
|
|
}
|
|
function reset() {
|
|
success.value = false;
|
|
error.value = "";
|
|
}
|
|
return { form, loading, success, error, submit, reset };
|
|
}
|
|
|
|
export { useLeadForm as u };
|
|
//# sourceMappingURL=useLeadForm-hNHTDEhY.mjs.map
|