feat(app): 添加多模板关于我们页面及相关路由和404页面
- 新增404页面,优化未找到页面体验,避免被搜索引擎索引 - 增加文件代理接口,隐藏真实文件服务器地址,支持文件请求代理 - 实现/article、/case、/product及/page动态路由兼容列表与详情展示 - 添加动态CMS页面兼容入口处理旧式路径,统一路由与SEO设置 - 新增模板1、模板7、模板2、模板3关于我们页面,实现多模板支持 - 模板增强支持CMS单页内容加载及SEO信息动态设置 - 配置环境变量及Git忽略文件规则辅助开发和构建环境管理
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
export interface ConsultPreset {
|
||||
/** 预填需求内容(如产品名),便于后台识别客户意向 */
|
||||
need?: string
|
||||
/** 来源标记,便于后台统计转化来源 */
|
||||
source?: string
|
||||
}
|
||||
|
||||
/**
|
||||
* 全站咨询弹窗状态
|
||||
*
|
||||
* 任意页面/组件调用 openConsult() 即可弹出咨询表单弹窗,
|
||||
* 弹窗内提交到 useCms().submitForm()(POST /api/form/submit)。
|
||||
* 用 useState 保证 SSR 与客户端共享同一份状态。
|
||||
*/
|
||||
export function useConsult() {
|
||||
const isOpen = useState<boolean>('consult-open', () => false)
|
||||
const presetNeed = useState<string>('consult-preset-need', () => '')
|
||||
const source = useState<string>('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 }
|
||||
}
|
||||
Reference in New Issue
Block a user