a7399e062495a684af8c66b84079da890357bca4
hjc-web 此前**没有收银台**——支付步骤内嵌在购标流程(BuyDocument 的 step='pay')里, 买家一旦离开就再也回不到未完成的支付。本提交补上按订单号付款的独立页面。 - 新建 /tender/pay 收银台:只认订单号,金额取自**订单本身**(by-no)而非支付响应 (支付一失败页面就会停在 0.00);进入先判状态,已支付/已取消/已退款**不发**统一下单, 就地显示结论——既无意义,也会多撞一次跨端 OUT_TRADE_NO_USED - 订单列表:待支付卡片加两个按钮 + 手搓 Tailwind 二次确认弹窗(照 ConsultDialog 的风格, 不用 antd 的 Modal:买家页无先例,视觉与站点自建风格不一致) - 状态口径改读 orderStatus(原先只看 payStatus,取消后会把已取消显示成「待支付」 并带上「去支付」),抽 app/utils/orderStatus.ts,与 hjc-h5 刻意保持同一套优先级 - 新增两个 Nitro 代理 order-by-no.get.ts / cancel.post.ts,照既有 my-orders / pay-status 的范式原样透传 ApiResult - 标书详情「购买人数」改读 buyerCount(后端实时统计的已付款订单数) - 跨端 OUT_TRADE_NO_USED:识别后端回带的 data.wechatCode 并给可行动提示, 不匹配 message 字符串(包装方式一改就会静默失效)
通用企业官网程序
基于 Nuxt 4 + Vue 3 + TypeScript 的企业官网纯前端展示系统。
项目定位
- 本项目仅包含官网前台展示代码
- 不含后端管理端,所有数据通过调用 SaaS 后端 API 获取
- 支持多模板切换、多租户、独立域名绑定、订阅过期校验
目录结构
website/
├── app/ # 应用代码
│ ├── components/ # 公共组件
│ ├── composables/ # 组合式函数
│ ├── layouts/ # 布局
│ ├── pages/ # 页面路由
│ ├── templates/ # 模板集合
│ ├── types/ # TS 类型
│ ├── utils/ # 工具函数
│ └── assets/ # 样式资源
├── server/ # Nuxt Server
│ ├── api/ # API 代理
│ ├── middleware/ # 中间件
│ └── utils/ # 服务端工具
├── scripts/ # 脚本
└── templates/cloud-website # 模板预览图
安装依赖
npm install
本地开发
npm run dev
模板系统
模板存放在 app/templates/ 目录下,每个模板独立目录,包含:
config.ts:模板配置components/:模板私有组件(Header、Footer 等)pages/:模板页面组件theme.css:模板主题变量
当前已实现:
template-01:科技蓝企业模板(完整)template-02~template-04:占位模板,后续根据设计稿实现
环境变量
复制 .env.example 为 .env,按需修改:
NUXT_PUBLIC_TENANT_ID=10398
NUXT_PUBLIC_APP_ID=website
NUXT_PUBLIC_TEMPLATE_ID=template-01
NUXT_PUBLIC_SERVER_API_BASE=https://server.websoft.top/api
NUXT_PUBLIC_MODULES_API_BASE=https://cms-api.websoft.top/api
NUXT_PUBLIC_APP_API_BASE=https://cms-api.websoft.top
NUXT_PUBLIC_BASE_DOMAIN=shoplnk.cn
接口说明
本项目通过 server/api/ 代理转发 SaaS 后端接口,前端不直接调用后端地址。
核心接口:
GET /api/site/info:站点信息GET /api/page/all:页面列表GET /api/page/detail?slug=xxx:页面详情GET /api/article/list:文章列表GET /api/product/list:产品列表GET /api/case/list:案例列表GET /api/subscription/status:订阅状态GET /api/sitemap.xml:动态站点地图GET /api/robots.txt:robots 文件POST /api/form/submit:表单提交
部署
npm run build
npm run preview
生产环境建议使用 Nginx 反向代理,配置泛域名 *.shoplnk.cn 指向 Nuxt 服务。
注意事项
- 模板组件为动态导入,新增模板后需在
app/templates/index.ts注册 - 域名绑定查询接口
/cms/cms-website/resolveDomain需 SaaS 后端实现 - 订阅状态接口
/api/app/subscription/check需 SaaS 后端实现
Description
Languages
Vue
73.3%
TypeScript
18.6%
HTML
5.6%
CSS
1.2%
JavaScript
0.9%
Other
0.4%