m8-codex-mcp 1.0.4 → 1.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (110) hide show
  1. package/dist/index.js +1 -1
  2. package/dist/knowledge/index.js +1 -1
  3. package/dist/knowledge/standards-summary.js +1 -0
  4. package/dist/templates/vue2.js +1 -1
  5. package/dist/templates/vue3.js +1 -1
  6. package/dist/tools/generate_module_structure.js +1 -1
  7. package/package.json +3 -4
  8. package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/000-/347/273/204/344/273/266/345/272/223/344/270/213/350/275/275/344/275/277/347/224/250.md +0 -188
  9. package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/001-actionsheet/345/212/250/344/275/234/351/235/242/346/235/277.md +0 -460
  10. package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/004-amap/345/234/260/345/233/276.md +0 -285
  11. package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/005-button/346/214/211/351/222/256.md +0 -211
  12. package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/008-cell/345/215/225/345/205/203/346/240/274.md +0 -213
  13. package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/009-checkbox/345/244/215/351/200/211/346/241/206.md +0 -501
  14. package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/010-circle/347/216/257/345/275/242/350/277/233/345/272/246/346/235/241.md +0 -168
  15. package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/011-datepicker/346/227/245/346/234/237/351/200/211/346/213/251.md +0 -617
  16. package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/013-field/350/276/223/345/205/245/346/241/206.md +0 -539
  17. package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/015-form/350/241/250/345/215/225.md +0 -999
  18. package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/018-header/345/244/264/351/203/250/345/257/274/350/210/252/346/240/217.md +0 -150
  19. package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/019-icon/345/233/276/346/240/207.md +0 -133
  20. package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/020-loading/345/212/240/350/275/275.md +0 -117
  21. package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/021-noticebar/351/200/232/347/237/245/346/240/217.md +0 -152
  22. package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/022-numberkeyboard/346/225/260/345/255/227/351/224/256/347/233/230.md +0 -427
  23. package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/023-pagination/345/210/206/351/241/265.md +0 -212
  24. package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/024-panel/351/235/242/346/235/277.md +0 -85
  25. package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/025-passwordinput/345/257/206/347/240/201/350/276/223/345/205/245/346/241/206.md +0 -175
  26. package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/026-picker/351/200/211/346/213/251/345/231/250.md +0 -519
  27. package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/027-popup/345/274/271/345/207/272/345/261/202.md +0 -152
  28. package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/028-progress/350/277/233/345/272/246/346/235/241.md +0 -103
  29. package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/029-radio/345/215/225/351/200/211/346/241/206.md +0 -285
  30. package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/030-rate/350/257/204/345/210/206.md +0 -189
  31. package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/031-search/346/220/234/347/264/242.md +0 -217
  32. package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/032-slider/346/273/221/345/235/227.md +0 -166
  33. package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/033-stepper/346/255/245/350/277/233/345/231/250.md +0 -340
  34. package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/035-swipecell/346/273/221/345/212/250/345/215/225/345/205/203/346/240/274.md +0 -265
  35. package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/036-switch/345/274/200/345/205/263.md +0 -196
  36. package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/037-switchcell/345/274/200/345/205/263/345/215/225/345/205/203/346/240/274.md +0 -115
  37. package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/038-tag/346/240/207/350/256/260.md +0 -232
  38. package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/039-treeselect/345/210/206/347/261/273/351/200/211/346/213/251.md +0 -631
  39. package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/040-uploader/346/226/207/344/273/266/344/270/212/344/274/240.md +0 -531
  40. package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/041-verifycode/351/252/214/350/257/201/347/240/201.md +0 -111
  41. package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/042-minirefresh/344/270/213/346/213/211/345/210/267/346/226/260.md +0 -337
  42. package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/043-layout/345/270/203/345/261/200.md +0 -150
  43. package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/044-image/345/233/276/347/211/207.md +0 -144
  44. package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/045-toast/350/275/273/346/217/220/347/244/272.md +0 -429
  45. package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/046-calendar/346/227/245/345/216/206.md +0 -467
  46. package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/047-area/347/234/201/345/270/202/345/214/272/351/200/211/346/213/251.md +0 -295
  47. package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/048-tab/346/240/207/347/255/276/351/241/265.md +0 -577
  48. package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/049-dialog/345/274/271/345/207/272/346/241/206.md +0 -491
  49. package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/050-dropdownmenu/344/270/213/346/213/211/350/217/234/345/215/225.md +0 -265
  50. package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/051-notify/346/266/210/346/201/257/351/200/232/347/237/245.md +0 -203
  51. package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/052-overlay/351/201/256/347/275/251/345/261/202.md +0 -139
  52. package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/053-collapse/346/212/230/345/217/240/351/235/242/346/235/277.md +0 -199
  53. package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/054-grid/345/256/253/346/240/274.md +0 -183
  54. package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/055-countdown/345/200/222/350/256/241/346/227/266.md +0 -289
  55. package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/056-divider/345/210/206/345/211/262/347/272/277.md +0 -97
  56. package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/057-empty/347/251/272/347/212/266/346/200/201.md +0 -146
  57. package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/058-imagepreview/345/233/276/347/211/207/351/242/204/350/247/210.md +0 -292
  58. package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/059-lazyload/346/207/222/345/212/240/350/275/275.md +0 -120
  59. package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/060-skeleton/351/252/250/346/236/266/345/261/217.md +0 -114
  60. package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/061-steps/346/255/245/351/252/244/346/235/241.md +0 -119
  61. package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/062-sticky/347/262/230/346/200/247/345/270/203/345/261/200.md +0 -208
  62. package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/063-indexbar/347/264/242/345/274/225/346/240/217.md +0 -161
  63. package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/064-sidebar/344/276/247/350/276/271/345/257/274/350/210/252.md +0 -248
  64. package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/065-tabbar/346/240/207/347/255/276/346/240/217.md +0 -314
  65. package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/066-badge/345/276/275/346/240/207.md +0 -162
  66. package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/067-popover/346/260/224/346/263/241/345/274/271/345/207/272/346/241/206.md +0 -325
  67. package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/068-cascader/347/272/247/350/201/224/351/200/211/346/213/251.md +0 -360
  68. package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/069-selectperson/351/200/211/344/272/272/347/273/204/344/273/266.md +0 -595
  69. package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/070-swipe/350/275/256/346/222/255.md +0 -262
  70. package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/071-/345/233/275/351/231/205/345/214/226.md +0 -51
  71. package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/072-easycalendar/346/227/245/345/216/206.md +0 -132
  72. package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/073-qrcode/344/272/214/347/273/264/347/240/201.md +0 -1538
  73. package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/074-imagescale/345/233/276/347/211/207/350/243/201/345/211/252.md +0 -261
  74. package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/075-dragsort/346/213/226/346/213/275/346/216/222/345/272/217.md +0 -161
  75. package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/076-chart/345/233/276/350/241/250.md +0 -381
  76. package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/077-rtc/351/237/263/350/247/206/351/242/221.md +0 -531
  77. package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/078-table/350/241/250/346/240/274.md +0 -849
  78. package/data/m8mpdoc//345/205/270/345/236/213/346/241/210/344/276/213/003-/345/210/227/350/241/250/350/257/246/346/203/205.md +0 -247
  79. package/data/m8mpdoc//345/205/270/345/236/213/346/241/210/344/276/213/003-/345/210/227/350/241/250/350/257/246/346/203/205vue3.md +0 -276
  80. package/data/m8mpdoc//345/205/270/345/236/213/346/241/210/344/276/213/003-/350/241/250/345/215/225/346/217/220/344/272/244.md +0 -130
  81. package/data/m8mpdoc//345/205/270/345/236/213/346/241/210/344/276/213/003-/350/241/250/345/215/225/346/217/220/344/272/244vue3.md +0 -115
  82. package/data/m8mpdoc//346/240/270/345/277/203/351/200/232/347/224/250Util/345/267/245/345/205/267/345/272/223/Ajax/344/270/216/346/226/207/344/273/266/344/270/212/344/274/240.md +0 -456
  83. package/data/m8mpdoc//346/240/270/345/277/203/351/200/232/347/224/250Util/345/267/245/345/205/267/345/272/223//345/267/245/345/205/267/345/207/275/346/225/260/345/272/223.md +0 -398
  84. package/data/standards/01-project/naming.md +0 -158
  85. package/data/standards/01-project/structure.md +0 -106
  86. package/data/standards/01-project/version-detection.md +0 -195
  87. package/data/standards/02-vue/basic.md +0 -242
  88. package/data/standards/02-vue/component.md +0 -299
  89. package/data/standards/02-vue/examples.md +0 -240
  90. package/data/standards/02-vue/performance.md +0 -74
  91. package/data/standards/02-vue/state-management.md +0 -293
  92. package/data/standards/03-css/index.md +0 -165
  93. package/data/standards/04-api/ajax.md +0 -178
  94. package/data/standards/04-api/ejs-api.md +0 -192
  95. package/data/standards/04-api/util.md +0 -166
  96. package/data/standards/05-typescript/index.md +0 -166
  97. package/data/standards/06-mock/index.md +0 -154
  98. package/data/standards/07-router/index.md +0 -141
  99. package/data/standards/README.md +0 -82
  100. package/data/standards/_index.md +0 -215
  101. package/dist/index.d.ts +0 -10
  102. package/dist/index.d.ts.map +0 -1
  103. package/dist/knowledge/index.d.ts +0 -47
  104. package/dist/knowledge/index.d.ts.map +0 -1
  105. package/dist/templates/vue2.d.ts +0 -41
  106. package/dist/templates/vue2.d.ts.map +0 -1
  107. package/dist/templates/vue3.d.ts +0 -41
  108. package/dist/templates/vue3.d.ts.map +0 -1
  109. package/dist/tools/generate_module_structure.d.ts +0 -22
  110. package/dist/tools/generate_module_structure.d.ts.map +0 -1
@@ -1,141 +0,0 @@
1
- # 路由规范
2
-
3
- > 定义 M8 项目的路由配置规范。
4
-
5
- ## 📁 文件位置
6
-
7
- ```
8
- src/pages/[module_name]/
9
- ├── [module_name].vue
10
- └── router.js # 路由配置
11
- ```
12
-
13
- 构建时会自动将模块下的路由配置合并到 `pages.json`。
14
-
15
- ## 📝 路由配置格式
16
-
17
- ```javascript
18
- /**
19
- * router.js 无需 import 组件
20
- * path 路径与 vue 组件名称保持匹配
21
- * 有效参数只有 path 与 style
22
- */
23
- const routes = [
24
- {
25
- path: "pages/user_center/index",
26
- style: {
27
- navigationBarTitleText: "用户中心",
28
- navigationStyle: "custom",
29
- navigationBarTextStyle: "white",
30
- },
31
- },
32
- {
33
- path: "pages/user_center/profile",
34
- style: {
35
- navigationBarTitleText: "个人资料",
36
- },
37
- },
38
- ];
39
-
40
- const options = {
41
- // 是否自动分包
42
- autoSubPackages: true,
43
- // 是否为首页模块(autoSubPackages 为 true 时无效)
44
- isFirstModule: false,
45
- };
46
-
47
- export default { routes, options };
48
- ```
49
-
50
- ## 📋 style 配置项
51
-
52
- | 属性 | 类型 | 说明 |
53
- | ------------------------------ | ------- | ------------------------------ |
54
- | `navigationBarTitleText` | string | 导航栏标题 |
55
- | `navigationStyle` | string | 导航栏样式:`default`/`custom` |
56
- | `navigationBarTextStyle` | string | 标题颜色:`black`/`white` |
57
- | `navigationBarBackgroundColor` | string | 导航栏背景色 |
58
- | `enablePullDownRefresh` | boolean | 开启下拉刷新 |
59
- | `disableScroll` | boolean | 禁止页面滚动 |
60
-
61
- ## 🚀 页面跳转
62
-
63
- ### ejs.page.open
64
-
65
- ```javascript
66
- // 同模块跳转
67
- ejs.page.open("./profile");
68
-
69
- // 跨模块跳转
70
- ejs.page.open("../order/list");
71
-
72
- // 带参数跳转
73
- ejs.page.open({
74
- pageUrl: "./detail",
75
- data: {
76
- id: "12345",
77
- },
78
- success: (result) => {
79
- // 页面关闭后回调
80
- },
81
- });
82
- ```
83
-
84
- ### 获取路由参数
85
-
86
- **Vue2**:
87
-
88
- ```javascript
89
- created() {
90
- const id = Util.getExtraDataByKey('id') || '';
91
- this.loadData(id);
92
- }
93
- ```
94
-
95
- **Vue3**:
96
-
97
- ```typescript
98
- import { onLoad } from "@dcloudio/uni-app";
99
-
100
- onLoad((options) => {
101
- const id = options?.id || "";
102
- loadData(id);
103
- });
104
- ```
105
-
106
- ## ⚠️ 注意事项
107
-
108
- 1. **无需 import**:router.js 中不需要导入组件
109
- 2. **路径匹配**:path 必须与 vue 文件名对应
110
- 3. **数组格式**:routes 必须是数组
111
- 4. **有效参数**:仅 `path` 和 `style` 有效
112
-
113
- ## 📦 分包配置
114
-
115
- ```javascript
116
- const options = {
117
- // 开启自动分包
118
- autoSubPackages: true,
119
- };
120
- ```
121
-
122
- 分包后路由会自动放入 `subPackages`,减小主包体积。
123
-
124
- ## 🏠 首页配置
125
-
126
- ```javascript
127
- const options = {
128
- autoSubPackages: false, // 必须关闭分包
129
- isFirstModule: true, // 设为首页模块
130
- };
131
- ```
132
-
133
- **注意**:所有模块仅支持一个首页模块。
134
-
135
- ## ✅ 检查清单
136
-
137
- - [ ] router.js 放在模块目录下
138
- - [ ] routes 为数组格式
139
- - [ ] path 与 vue 文件名匹配
140
- - [ ] 未在 router.js 中 import 组件
141
- - [ ] 新页面已添加路由配置
@@ -1,82 +0,0 @@
1
- # M8 前端开发规范文档
2
-
3
- > 📚 本规范文档为 M8 移动前端框架开发提供统一的编码标准与最佳实践指南。
4
-
5
- ## 📖 文档索引
6
-
7
- | 编号 | 模块 | 说明 | 快速链接 |
8
- | ---- | ------------------- | ---------------------------------- | ------------------------ |
9
- | 01 | **项目规范** | 项目结构、命名规范、版本检测 | [查看](./01-project/) |
10
- | 02 | **Vue 规范** | Vue2/Vue3 开发规范、组件、状态管理 | [查看](./02-vue/) |
11
- | 03 | **CSS 规范** | 样式规范、BEM 命名、性能优化 | [查看](./03-css/) |
12
- | 04 | **API 规范** | EJS API、Ajax 请求、Util 工具方法 | [查看](./04-api/) |
13
- | 05 | **TypeScript 规范** | 类型定义、接口规范 | [查看](./05-typescript/) |
14
- | 06 | **Mock 规范** | 模拟数据规范 | [查看](./06-mock/) |
15
- | 07 | **路由规范** | 路由配置与管理 | [查看](./07-router/) |
16
-
17
- ## 🎯 核心原则
18
-
19
- 1. **版本兼容** - 所有代码必须与检测到的 Vue 版本完全兼容
20
- 2. **样式分离** - Vue 文件中禁止直接编写 CSS,统一使用外部 SCSS 文件
21
- 3. **全局变量** - `Config`、`Util`、`ejs` 等全局变量直接使用,禁止 import 导入
22
-
23
- ## 🚀 快速开始
24
-
25
- ### 1. 确定 Vue 版本
26
-
27
- 通过 `package.json` 中的 vue 依赖确定版本:
28
-
29
- - Vue2: `"vue": "^2.x.x"`
30
- - Vue3: `"vue": "^3.x.x"`
31
-
32
- ### 2. 选择开发模式
33
-
34
- 根据需求选择对应的开发模式:
35
-
36
- - **列表详情页** → 参考 [列表页示例](./02-vue/examples.md#列表页面)
37
- - **表单提交页** → 参考 [表单页示例](./02-vue/examples.md#表单页面)
38
-
39
- ## 📁 标准项目结构
40
-
41
- ```
42
- ejs.m8.project/
43
- ├── src/
44
- │ ├── components/ # 通用组件
45
- │ ├── pages/ # 页面视图
46
- │ │ └── [module_name]/ # 模块目录
47
- │ │ ├── css/ # 样式文件
48
- │ │ │ └── [module_name].scss
49
- │ │ ├── images/ # 图片资源
50
- │ │ ├── [module_name].vue
51
- │ │ ├── router.js # 路由配置
52
- │ │ ├── store.js # 状态管理
53
- │ │ └── mock.js # Mock 数据
54
- │ ├── shared/ # 配置文件
55
- │ ├── common/ # 通用文件
56
- │ └── static/ # 静态资源
57
- └── package.json
58
- ```
59
-
60
- ## 📋 规范检查清单
61
-
62
- 开发完成后,请确保:
63
-
64
- - [ ] 代码与 Vue 版本兼容
65
- - [ ] CSS 代码已分离到独立 SCSS 文件
66
- - [ ] 全局变量(Config、Util)未使用 import 导入
67
- - [ ] 所有输入框已设置 placeholder
68
- - [ ] readonly 输入框已添加 `is-link` 和 `clickable` 属性
69
- - [ ] 组件 props、data、methods 已添加中文注释
70
- - [ ] 文件头部已添加标准注释
71
- - [ ] 路由已在 router.js 中正确配置
72
-
73
- ## 🔗 相关资源
74
-
75
- - [统一入口文件](./_index.md) - 便于 AI/工具批量读取
76
- - [epoint-mrc-mcp 服务](#) - 组件与 API 检索
77
-
78
- ---
79
-
80
- **版本**: 1.0.0
81
- **更新日期**: 2026-01-08
82
- **维护团队**: 国泰新点软件股份有限公司
@@ -1,215 +0,0 @@
1
- # M8 前端开发规范 - 统一入口
2
-
3
- > 本文件汇总所有规范要点,便于 AI/工具快速读取。
4
-
5
- ---
6
-
7
- ## 一、项目规范
8
-
9
- ### 1.1 版本检测
10
-
11
- - Vue2: `"vue": "^2.x.x"` → Options API
12
- - Vue3: `"vue": "^3.x.x"` → Composition API + `<script setup>`
13
- - **必须验证代码与 Vue 版本兼容**
14
-
15
- ### 1.2 目录结构
16
-
17
- ```
18
- src/pages/[module_name]/
19
- ├── css/[module_name].scss # 样式文件
20
- ├── images/ # 图片资源
21
- ├── [module_name].vue # 页面组件
22
- ├── router.js # 路由配置
23
- ├── store.js # 状态管理
24
- └── mock.js # Mock 数据
25
- ```
26
-
27
- ### 1.3 命名规范
28
-
29
- | 类型 | 规则 | 示例 |
30
- | --------- | ----------- | ------------------- |
31
- | 页面文件 | 小写+下划线 | `user_list.vue` |
32
- | 通用组件 | PascalCase | `UserCard.vue` |
33
- | 变量/函数 | camelCase | `userName` |
34
- | CSS 类名 | BEM + 小写 | `.user-card__title` |
35
- | 图片资源 | `img_` 前缀 | `img_logo.png` |
36
-
37
- ### 1.4 全局变量
38
-
39
- **禁止 import,直接使用**:`Config`、`Util`、`ejs`
40
-
41
- ---
42
-
43
- ## 二、Vue 规范
44
-
45
- ### 2.1 样式分离
46
-
47
- ```vue
48
- <!-- 禁止内联 CSS,使用外部引入 -->
49
- <style lang="scss" scoped>
50
- @import "./css/[module_name].scss";
51
- </style>
52
- ```
53
-
54
- ### 2.2 API 优先原则
55
-
56
- | 场景 | 使用方案 |
57
- | -------- | -------------------- |
58
- | 消息提示 | `ejs.ui.toast` |
59
- | 确认框 | `ejs.ui.confirm` |
60
- | 日期选择 | `ejs.ui.pickDate` |
61
- | 加载提示 | `ejs.ui.showWaiting` |
62
-
63
- ### 2.3 输入框规范
64
-
65
- - readonly 必须添加 `is-link` + `clickable`
66
- - 必须设置 `placeholder`
67
- - textarea 建议添加 `autosize`
68
-
69
- ### 2.4 注释规范
70
-
71
- **Vue 文件必须包含头部注释**(位于文件最顶部):
72
-
73
- ```vue
74
- <!--
75
- * @作者: author
76
- * @创建时间: 2025-01-08 14:20:03
77
- * @修改时间: 2025-01-08 14:20:03
78
- * @版本: [1.0]
79
- * @版权: 国泰新点软件股份有限公司
80
- * @描述: 页面功能描述
81
- -->
82
- ```
83
-
84
- | 字段 | 说明 |
85
- | ----------- | -------------------------------- |
86
- | `@作者` | 开发者姓名 |
87
- | `@创建时间` | 格式:`YYYY-MM-DD HH:mm:ss` |
88
- | `@修改时间` | 每次修改后需更新 |
89
- | `@版本` | 如 `[1.0]`、`[1.1]` |
90
- | `@版权` | 固定:`国泰新点软件股份有限公司` |
91
- | `@描述` | 页面功能简要描述 |
92
-
93
- ### 2.5 样式穿透
94
-
95
- - Vue2: `::v-deep`
96
- - Vue3: `:deep()`
97
-
98
- ### 2.6 状态管理
99
-
100
- - Vue2: Vuex (`store.js`)
101
- - Vue3: Pinia (`store.ts`)
102
-
103
- ---
104
-
105
- ## 三、CSS 规范
106
-
107
- ### 3.1 BEM 命名
108
-
109
- ```scss
110
- .block {
111
- }
112
- .block__element {
113
- }
114
- .block--modifier {
115
- }
116
- ```
117
-
118
- ### 3.2 书写顺序
119
-
120
- 1. 位置属性 (position, display)
121
- 2. 大小属性 (width, margin)
122
- 3. 文字属性 (font, color)
123
- 4. 背景边框 (background, border)
124
- 5. 其他 (animation)
125
-
126
- ### 3.3 避免
127
-
128
- - 深层嵌套 (>3 层)
129
- - !important
130
- - 标签选择器
131
-
132
- ---
133
-
134
- ## 四、API 规范
135
-
136
- ### 4.1 Ajax 请求
137
-
138
- ```javascript
139
- Util.ajax({
140
- url: Config.serverUrl + "/api/data",
141
- data: { params: JSON.stringify({ id: "123" }) },
142
- }).then((res) => {});
143
- ```
144
-
145
- ### 4.2 页面跳转
146
-
147
- ```javascript
148
- ejs.page.open("./detail", { id: "123" });
149
- ejs.page.close();
150
- ```
151
-
152
- ### 4.3 常用验证
153
-
154
- ```javascript
155
- Util.string.isMobile("18888888888"); // 手机号
156
- Util.string.isEmail("test@qq.com"); // 邮箱
157
- Util.string.isIdCard("..."); // 身份证
158
- ```
159
-
160
- ---
161
-
162
- ## 五、路由规范
163
-
164
- ```javascript
165
- // router.js - 无需 import 组件
166
- const routes = [
167
- {
168
- path: "pages/[module]/[page]",
169
- style: { navigationBarTitleText: "标题" },
170
- },
171
- ];
172
- export default { routes, options: { autoSubPackages: true } };
173
- ```
174
-
175
- ---
176
-
177
- ## 六、Mock 规范
178
-
179
- ```javascript
180
- // mock.js
181
- import Mock from "@mock";
182
- const resultData = [
183
- {
184
- methodUrl: "/rest/api/list",
185
- input: {},
186
- output: Mock.mock({
187
- "infolist|10": [{ title: () => Mock.Random.csentence() }],
188
- }),
189
- },
190
- ];
191
- export default resultData;
192
- ```
193
-
194
- ---
195
-
196
- ## 七、TypeScript 规范
197
-
198
- - 显式声明类型
199
- - 禁止使用 `any`
200
- - 接口用 `I` 前缀:`IUserInfo`
201
- - 类型用 `T` 前缀:`TStatus`
202
- - 用常量对象替代枚举
203
-
204
- ---
205
-
206
- ## 八、检查清单
207
-
208
- - [ ] 代码与 Vue 版本兼容
209
- - [ ] CSS 已分离到 scss 文件
210
- - [ ] 使用 scoped 样式
211
- - [ ] 全局变量未 import
212
- - [ ] readonly 输入框有 is-link
213
- - [ ] 文件有头部注释
214
- - [ ] 路由已配置
215
- - [ ] 变量有中文注释
package/dist/index.d.ts DELETED
@@ -1,10 +0,0 @@
1
- #!/usr/bin/env node
2
- /**
3
- * m8-generator-mcp - MCP Server 入口
4
- *
5
- * 提供 M8 框架开发辅助工具:
6
- * - get_component_usage: 获取 UI 组件用法
7
- * - generate_module_structure: 生成模块目录结构
8
- */
9
- export {};
10
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;GAMG"}
@@ -1,47 +0,0 @@
1
- /**
2
- * 知识库模块 - 索引管理
3
- *
4
- * 负责加载和管理 M8 框架的知识库文档
5
- */
6
- export interface ComponentDoc {
7
- name: string;
8
- filename: string;
9
- description: string;
10
- props: string;
11
- events: string;
12
- examples: string[];
13
- rawContent: string;
14
- }
15
- export interface KnowledgeBase {
16
- components: ComponentDoc[];
17
- standards: string;
18
- fullStandards: string;
19
- standardDocs: Map<string, string>;
20
- utilDocs: Map<string, string>;
21
- }
22
- /**
23
- * 加载知识库
24
- */
25
- export declare function loadKnowledgeBase(): KnowledgeBase;
26
- /**
27
- * 获取组件文档
28
- */
29
- export declare function getComponentDoc(kb: KnowledgeBase, componentName: string): ComponentDoc | undefined;
30
- /**
31
- * 获取完整规范文档
32
- * 返回 01-07 目录下所有规范文件的完整内容,确保生成代码时严格遵循
33
- */
34
- export declare function getStandardDocs(kb: KnowledgeBase): string;
35
- /**
36
- * 获取 Util 工具文档
37
- */
38
- export declare function getUtilDocs(kb: KnowledgeBase, keyword: string): string | undefined;
39
- /**
40
- * 获取规范文档(按关键词检索)
41
- */
42
- export declare function getStandardRules(kb: KnowledgeBase, category: string): string | undefined;
43
- /**
44
- * 获取所有规范类别
45
- */
46
- export declare function getStandardCategories(): string[];
47
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/knowledge/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAcH,MAAM,WAAW,YAAY;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC1B,UAAU,EAAE,YAAY,EAAE,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,aAAa,CAYjD;AAqLD;;GAEG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAQlG;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,aAAa,GAAG,MAAM,CAazD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,EAAE,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAWlF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAiBxF;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,EAAE,CAUhD"}
@@ -1,41 +0,0 @@
1
- /**
2
- * Vue 2 代码模板
3
- */
4
- interface TemplateOptions {
5
- moduleName: string;
6
- pageName: string;
7
- author: string;
8
- description: string;
9
- dateStr: string;
10
- }
11
- /**
12
- * 生成 Vue 2 页面模板
13
- */
14
- export declare function generateVue2Template(options: TemplateOptions): string;
15
- /**
16
- * 生成 Vue 2 SCSS 模板
17
- */
18
- export declare function generateVue2ScssTemplate(options: {
19
- moduleName: string;
20
- }): string;
21
- /**
22
- * 生成 Vue 2 路由模板
23
- */
24
- export declare function generateVue2RouterTemplate(options: {
25
- moduleName: string;
26
- pageName: string;
27
- }): string;
28
- /**
29
- * 生成 Vue 2 Store 模板
30
- */
31
- export declare function generateVue2StoreTemplate(options: {
32
- moduleName: string;
33
- }): string;
34
- /**
35
- * 生成 Vue 2 Mock 模板
36
- */
37
- export declare function generateVue2MockTemplate(options: {
38
- moduleName: string;
39
- }): string;
40
- export {};
41
- //# sourceMappingURL=vue2.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"vue2.d.ts","sourceRoot":"","sources":["../../src/templates/vue2.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,UAAU,eAAe;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,CA6ErE;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAmBhF;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAuBpG;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAsCjF;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAiChF"}
@@ -1,41 +0,0 @@
1
- /**
2
- * Vue 3 代码模板
3
- */
4
- interface TemplateOptions {
5
- moduleName: string;
6
- pageName: string;
7
- author: string;
8
- description: string;
9
- dateStr: string;
10
- }
11
- /**
12
- * 生成 Vue 3 页面模板
13
- */
14
- export declare function generateVue3Template(options: TemplateOptions): string;
15
- /**
16
- * 生成 Vue 3 SCSS 模板
17
- */
18
- export declare function generateVue3ScssTemplate(options: {
19
- moduleName: string;
20
- }): string;
21
- /**
22
- * 生成 Vue 3 路由模板
23
- */
24
- export declare function generateVue3RouterTemplate(options: {
25
- moduleName: string;
26
- pageName: string;
27
- }): string;
28
- /**
29
- * 生成 Vue 3 Store 模板 (Pinia)
30
- */
31
- export declare function generateVue3StoreTemplate(options: {
32
- moduleName: string;
33
- }): string;
34
- /**
35
- * 生成 Vue 3 Mock 模板
36
- */
37
- export declare function generateVue3MockTemplate(options: {
38
- moduleName: string;
39
- }): string;
40
- export {};
41
- //# sourceMappingURL=vue3.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"vue3.d.ts","sourceRoot":"","sources":["../../src/templates/vue3.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,UAAU,eAAe;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,CAuErE;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAmBhF;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAuBpG;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAkCjF;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAiChF"}
@@ -1,22 +0,0 @@
1
- /**
2
- * 模块结构生成工具
3
- *
4
- * 生成符合 M8 规范的目录结构和文件模板
5
- */
6
- export interface GenerateModuleOptions {
7
- moduleName: string;
8
- pageName: string;
9
- vueVersion: "2" | "3";
10
- author: string;
11
- description: string;
12
- skipMock?: boolean;
13
- }
14
- export interface GeneratedFile {
15
- path: string;
16
- content: string;
17
- }
18
- /**
19
- * 生成模块文件列表
20
- */
21
- export declare function generateModuleFiles(options: GenerateModuleOptions): GeneratedFile[];
22
- //# sourceMappingURL=generate_module_structure.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generate_module_structure.d.ts","sourceRoot":"","sources":["../../src/tools/generate_module_structure.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,MAAM,WAAW,qBAAqB;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,GAAG,GAAG,GAAG,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,qBAAqB,GAAG,aAAa,EAAE,CAkEnF"}