diff --git a/.cursor/rules/Code-Standards.mdc b/.cursor/rules/Code-Standards.mdc index 0a922108..ce1a0e75 100644 --- a/.cursor/rules/Code-Standards.mdc +++ b/.cursor/rules/Code-Standards.mdc @@ -187,3 +187,8 @@ alwaysApply: true - schema 中字段名(`fieldName`)必须与后端字段 snake_case 对齐,禁止前端 camelCase - 业务表单密码字段用适配器组件名 `InputPassword`;禁止 `Input` + `type="password"`(框架自带页可用 `VbenInputPassword`) - 单选/多选选项来自接口时,必须在弹窗/页面 `onMounted` 或 `onOpenChange` 里拉取后通过 `updateSchema` 注入,禁止写死常量 + +## 代码生成与 uniapp + +- PC「代码生成」下载的 zip **同时包含** `view/`(本仓库 my-gen)与 `uniapp/`(移动端 `pages-sub/my-gen`) +- PC 侧只维护 Vben 模板与粘贴路径;uniapp 的 **C 端 UI / 三端兼容** 以 uniapp 与后端代码生成规则为准,禁止要求移动端照搬本仓库表格形态 diff --git a/apps/web-antd/src/views/code-generation/index.vue b/apps/web-antd/src/views/code-generation/index.vue index 90fbf50a..c4aae859 100644 --- a/apps/web-antd/src/views/code-generation/index.vue +++ b/apps/web-antd/src/views/code-generation/index.vue @@ -95,7 +95,9 @@ const handleGenerate = async (data: CodeGenData | CodeGenData[]) => { `已成功生成 ${res.length} 个模块!\r\n` + '后端代码已经自动生成:\r\n' + '(Controller、Service、Model、Route、Mysql数据表),无需您操作。\r\n' + - '您只需要把代码黏贴至 "您的根目录/apps/web-antd/src/views/my-gen"文件夹下即可使用', + '每个 zip 含 PC(view/) + uniapp/ 两套前端:\r\n' + + 'PC 粘贴到 apps/web-antd/src/views/my-gen;\r\n' + + 'uniapp 粘贴到 nl-admin-uniapp/src/pages-sub/my-gen(三端 C 端风格,见包内说明)', icon: 'success', title: '批量代码生成成功!', }).then(() => { @@ -118,7 +120,10 @@ const handleGenerate = async (data: CodeGenData | CodeGenData[]) => { '您的模块已经生成成功,是否立即下载?\r\n' + '后端代码已经自动生成:\r\n' + '(Controller、Service、Model、Route、Mysql数据表),无需您操作。\r\n' + - '您只需要把代码黏贴至 "您的根目录/apps/web-antd/src/views/my-gen"文件夹下即可使用', + 'zip 内同时包含两套前端:\r\n' + + '1) view/ → 粘贴到 apps/web-antd/src/views/my-gen(PC Vben)\r\n' + + '2) uniapp/ → 粘贴到 nl-admin-uniapp/src/pages-sub/my-gen/<模块>(微信小程序+App+H5,C 端风格)\r\n' + + 'uniapp 粘贴后请按包内 PAGES_JSON_SNIPPET.md 登记 pages.json 与 features.ts', icon: 'success', title: '代码生成成功!', }).then(() => {