# CodingRule-module **Repository Path**: ruovea-component/codingrule-module ## Basic Information - **Project Name**: CodingRule-module - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-22 - **Last Updated**: 2026-07-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # @ruovea/codingrule KeGie.Admin 编码规则模块,以 **pnpm 源码包** 形式提供给各宿主项目复用。 - **不打 dist、不发 npm**——exports 直指 `./src/*`,由宿主 Vite 编译 - **依赖注入解耦**——request / auth / i18n 由宿主装配时注入 - **零侵入**——包内不含 `/@/` 等宿主别名引用,可脱离 KeGie.Admin 运行 --- ## 一、目录结构 ``` src/ ├─ index.ts # 入口:导出 CodingRulePlugin + API + 类型 ├─ plugin.ts # Vue install(校验必填项 / provide / mergeLocaleMessage) ├─ context.ts # InjectionKey + useCodingRuleContext() ├─ types.ts # CodingRulePluginOptions ├─ routes.ts # 1 条静态路由(可选使用) ├─ api/ │ ├─ index.ts # 8 个 API 函数 │ ├─ http.ts # request 注入点 │ ├─ endpoints.ts # URL 前缀(可覆盖) │ └─ codingRule.ts # 编码规则 CRUD + 生成流水号 ├─ i18n/locales/ # 6 语言(en / fr-fr / ja-jp / vi-vn / zh-cn / zh-tw) └─ views/codingRule/ ├─ index.vue # 编码规则列表页 └─ component/editCodingRule.vue # 新增/编辑弹窗(含规则明细内联编辑) ``` --- ## 二、宿主接入 ### 2.1 安装 宿主 `package.json` 用 `link:` 协议指向本仓库: ```json { "dependencies": { "@ruovea/codingrule": "link:../../codingrule-module/packages/codingrule" } } ``` ```bash cd && pnpm install # 包内依赖 cd <宿主> && pnpm install # 建立 link ``` ### 2.2 装配插件 ```ts // plugins/codingrule.ts import type { App } from 'vue'; import { CodingRulePlugin } from '@ruovea/codingrule'; import request from '/@/utils/request'; import { auth } from '/@/utils/authFunction'; import { i18n } from '/@/i18n/index'; export function setupCodingRule(app: App) { app.use(CodingRulePlugin, { request: request as any, auth, i18n: i18n as any, }); } ``` ```ts // main.ts import { setupCodingRule } from '/@/plugins/codingrule'; // ... app.use(pinia) 之后 setupCodingRule(app); ``` --- ## 三、CodingRulePluginOptions 说明 | 字段 | 必填 | 说明 | |---|---|---| | `request` | ✅ | 宿主 axios 实例(已配 baseURL / token / 拦截器) | | `auth` | ➖ | `(code: string) => boolean`,按钮权限校验,缺省 `() => true` | | `i18n` | ➖ | 宿主 vue-i18n 实例(用于 mergeLocaleMessage) | | `endpoints` | ➖ | 覆盖 API URL 前缀(见下方 Endpoints 章节) | | `registerI18n` | ➖ | 是否自动 merge i18n,默认 `true` | > 与 article 模块不同,codingrule **无需注入宿主组件**,所有 UI 均使用 element-plus 自包含。 ### i18n 注入约定 包内视图使用 `message.codingrule.xxx` / `message.router.codingRule` 格式的 key。插件 merge 时同时注册到顶层和 `message` 层,兼容宿主两级结构。 --- ## 四、Endpoints 说明 ```ts interface CodingRuleEndpoints { basCodingRulePages: '/BasCodingRule/Pages' basCodingRuleData: '/BasCodingRule/Data' basCodingRuleList: '/BasCodingRule/List' basCodingRuleAdd: '/BasCodingRule/AddData' basCodingRuleUpdate: '/BasCodingRule/UpdateData' basCodingRuleDelete: '/BasCodingRule/DeleteData' basCodingRuleDeleteBatch: '/BasCodingRule/DeleteBatch' basCodingRuleSN: '/BasCodingRule/SN' } ``` ## 五、权限编码清单 | 编码 | 位置 | 说明 | |---|---|---| | `codingrule:pages` | 编码规则列表 | 查询按钮 | | `codingrule:add` | 编码规则列表 | 新增按钮 | | `codingrule:edit` | 编码规则列表 | 编辑按钮 | | `codingrule:delete` | 编码规则列表 | 删除按钮 | --- ## 六、路由 | path | name | keepAlive | 说明 | |---|---|---|---| | `/business/codingRule` | codingRule | ✅ | 编码规则列表 | > 路由 `meta.title` 使用硬编码中文 `'编码规则'`,菜单国际化通过包内 locale 文件的 `router.codingRule` 键实现(插件 merge 后 `t('router.codingRule')` 可命中)。 --- ## 七、License MIT