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.
- package/dist/index.js +1 -1
- package/dist/knowledge/index.js +1 -1
- package/dist/knowledge/standards-summary.js +1 -0
- package/dist/templates/vue2.js +1 -1
- package/dist/templates/vue3.js +1 -1
- package/dist/tools/generate_module_structure.js +1 -1
- package/package.json +3 -4
- 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
- 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
- package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/004-amap/345/234/260/345/233/276.md +0 -285
- package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/005-button/346/214/211/351/222/256.md +0 -211
- 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
- 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
- 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
- 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
- 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
- package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/015-form/350/241/250/345/215/225.md +0 -999
- 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
- package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/019-icon/345/233/276/346/240/207.md +0 -133
- package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/020-loading/345/212/240/350/275/275.md +0 -117
- 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
- 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
- package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/023-pagination/345/210/206/351/241/265.md +0 -212
- package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/024-panel/351/235/242/346/235/277.md +0 -85
- 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
- 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
- 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
- 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
- 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
- package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/030-rate/350/257/204/345/210/206.md +0 -189
- package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/031-search/346/220/234/347/264/242.md +0 -217
- package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/032-slider/346/273/221/345/235/227.md +0 -166
- 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
- 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
- package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/036-switch/345/274/200/345/205/263.md +0 -196
- 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
- package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/038-tag/346/240/207/350/256/260.md +0 -232
- 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
- 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
- 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
- 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
- package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/043-layout/345/270/203/345/261/200.md +0 -150
- package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/044-image/345/233/276/347/211/207.md +0 -144
- 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
- package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/046-calendar/346/227/245/345/216/206.md +0 -467
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/054-grid/345/256/253/346/240/274.md +0 -183
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/066-badge/345/276/275/346/240/207.md +0 -162
- 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
- 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
- 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
- package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/070-swipe/350/275/256/346/222/255.md +0 -262
- 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
- package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/072-easycalendar/346/227/245/345/216/206.md +0 -132
- 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
- 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
- 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
- package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/076-chart/345/233/276/350/241/250.md +0 -381
- 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
- package/data/m8mpdoc/UI/347/273/204/344/273/266/345/272/223/078-table/350/241/250/346/240/274.md +0 -849
- 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
- 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
- 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
- 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
- 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
- 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
- package/data/standards/01-project/naming.md +0 -158
- package/data/standards/01-project/structure.md +0 -106
- package/data/standards/01-project/version-detection.md +0 -195
- package/data/standards/02-vue/basic.md +0 -242
- package/data/standards/02-vue/component.md +0 -299
- package/data/standards/02-vue/examples.md +0 -240
- package/data/standards/02-vue/performance.md +0 -74
- package/data/standards/02-vue/state-management.md +0 -293
- package/data/standards/03-css/index.md +0 -165
- package/data/standards/04-api/ajax.md +0 -178
- package/data/standards/04-api/ejs-api.md +0 -192
- package/data/standards/04-api/util.md +0 -166
- package/data/standards/05-typescript/index.md +0 -166
- package/data/standards/06-mock/index.md +0 -154
- package/data/standards/07-router/index.md +0 -141
- package/data/standards/README.md +0 -82
- package/data/standards/_index.md +0 -215
- package/dist/index.d.ts +0 -10
- package/dist/index.d.ts.map +0 -1
- package/dist/knowledge/index.d.ts +0 -47
- package/dist/knowledge/index.d.ts.map +0 -1
- package/dist/templates/vue2.d.ts +0 -41
- package/dist/templates/vue2.d.ts.map +0 -1
- package/dist/templates/vue3.d.ts +0 -41
- package/dist/templates/vue3.d.ts.map +0 -1
- package/dist/tools/generate_module_structure.d.ts +0 -22
- package/dist/tools/generate_module_structure.d.ts.map +0 -1
|
@@ -1,195 +0,0 @@
|
|
|
1
|
-
# 版本检测规范
|
|
2
|
-
|
|
3
|
-
> 定义 Vue 版本检测规则与版本特定的代码规范。
|
|
4
|
-
|
|
5
|
-
## 🔍 版本检测方法
|
|
6
|
-
|
|
7
|
-
在开始开发前,**必须**确定项目使用的 Vue 版本。
|
|
8
|
-
|
|
9
|
-
### 检测步骤
|
|
10
|
-
|
|
11
|
-
1. 打开 `package.json` 文件
|
|
12
|
-
2. 查找 `dependencies` 或 `devDependencies` 中的 `vue` 依赖
|
|
13
|
-
3. 根据版本号确定使用的规范
|
|
14
|
-
|
|
15
|
-
### 版本判断规则
|
|
16
|
-
|
|
17
|
-
| 版本号格式 | Vue 版本 | 适用规范 |
|
|
18
|
-
| ----------------- | -------- | ---------------------------------- |
|
|
19
|
-
| `"vue": "^2.x.x"` | Vue2 | Options API |
|
|
20
|
-
| `"vue": "^3.x.x"` | Vue3 | Composition API + `<script setup>` |
|
|
21
|
-
|
|
22
|
-
```json
|
|
23
|
-
// Vue2 项目
|
|
24
|
-
{
|
|
25
|
-
"dependencies": {
|
|
26
|
-
"vue": "^2.6.14"
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
// Vue3 项目
|
|
31
|
-
{
|
|
32
|
-
"dependencies": {
|
|
33
|
-
"vue": "^3.4.21"
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
## ⚠️ 重要原则
|
|
39
|
-
|
|
40
|
-
> **在输出最终代码前,必须验证所有语法与检测到的 Vue 版本完全兼容**
|
|
41
|
-
|
|
42
|
-
## 📊 版本差异对照表
|
|
43
|
-
|
|
44
|
-
### 组件语法
|
|
45
|
-
|
|
46
|
-
| 特性 | Vue2 | Vue3 |
|
|
47
|
-
| ---------- | -------------------- | --------------------------- |
|
|
48
|
-
| 脚本语法 | Options API | `<script setup>` |
|
|
49
|
-
| 响应式数据 | `data()` 返回对象 | `ref()` / `reactive()` |
|
|
50
|
-
| 计算属性 | `computed: {}` | `computed()` |
|
|
51
|
-
| 侦听器 | `watch: {}` | `watch()` / `watchEffect()` |
|
|
52
|
-
| 生命周期 | `created`, `mounted` | `onMounted`, `onLoad` |
|
|
53
|
-
| 组件引用 | `$refs` | `ref` |
|
|
54
|
-
|
|
55
|
-
### 样式穿透
|
|
56
|
-
|
|
57
|
-
| Vue 版本 | 推荐写法 | 废弃写法 |
|
|
58
|
-
| -------- | ---------- | -------------------- |
|
|
59
|
-
| Vue2 | `::v-deep` | `/deep/`, `:deep` |
|
|
60
|
-
| Vue3 | `:deep()` | `::v-deep`, `/deep/` |
|
|
61
|
-
|
|
62
|
-
```scss
|
|
63
|
-
// Vue2
|
|
64
|
-
::v-deep .em-cell {
|
|
65
|
-
color: red;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
// Vue3
|
|
69
|
-
:deep(.em-cell) {
|
|
70
|
-
color: red;
|
|
71
|
-
}
|
|
72
|
-
```
|
|
73
|
-
|
|
74
|
-
### 状态管理
|
|
75
|
-
|
|
76
|
-
| Vue 版本 | 状态管理库 | Store 文件 |
|
|
77
|
-
| -------- | ---------- | ---------- |
|
|
78
|
-
| Vue2 | Vuex | `store.js` |
|
|
79
|
-
| Vue3 | Pinia | `store.ts` |
|
|
80
|
-
|
|
81
|
-
### 路由传参获取
|
|
82
|
-
|
|
83
|
-
**Vue2**:
|
|
84
|
-
|
|
85
|
-
```javascript
|
|
86
|
-
created() {
|
|
87
|
-
const id = Util.getExtraDataByKey("id") || "";
|
|
88
|
-
this.getDetail(id);
|
|
89
|
-
}
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
**Vue3**:
|
|
93
|
-
|
|
94
|
-
```typescript
|
|
95
|
-
import { onLoad } from "@dcloudio/uni-app";
|
|
96
|
-
|
|
97
|
-
onLoad((options) => {
|
|
98
|
-
const id = options.id || "";
|
|
99
|
-
});
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
## 📝 代码模板
|
|
103
|
-
|
|
104
|
-
### Vue2 基础模板
|
|
105
|
-
|
|
106
|
-
```vue
|
|
107
|
-
<template>
|
|
108
|
-
<view class="container">
|
|
109
|
-
<!-- 页面内容 -->
|
|
110
|
-
</view>
|
|
111
|
-
</template>
|
|
112
|
-
|
|
113
|
-
<script>
|
|
114
|
-
export default {
|
|
115
|
-
data() {
|
|
116
|
-
return {
|
|
117
|
-
// 响应式数据
|
|
118
|
-
};
|
|
119
|
-
},
|
|
120
|
-
computed: {
|
|
121
|
-
// 计算属性
|
|
122
|
-
},
|
|
123
|
-
watch: {
|
|
124
|
-
// 侦听器
|
|
125
|
-
},
|
|
126
|
-
created() {
|
|
127
|
-
// 数据初始化
|
|
128
|
-
},
|
|
129
|
-
mounted() {
|
|
130
|
-
// DOM 挂载后
|
|
131
|
-
},
|
|
132
|
-
methods: {
|
|
133
|
-
// 方法定义
|
|
134
|
-
},
|
|
135
|
-
};
|
|
136
|
-
</script>
|
|
137
|
-
|
|
138
|
-
<style lang="scss" scoped>
|
|
139
|
-
@import "./css/[module_name].scss";
|
|
140
|
-
</style>
|
|
141
|
-
```
|
|
142
|
-
|
|
143
|
-
### Vue3 基础模板
|
|
144
|
-
|
|
145
|
-
```vue
|
|
146
|
-
<template>
|
|
147
|
-
<view class="container">
|
|
148
|
-
<!-- 页面内容 -->
|
|
149
|
-
</view>
|
|
150
|
-
</template>
|
|
151
|
-
|
|
152
|
-
<script lang="ts" setup>
|
|
153
|
-
import { ref, reactive, computed, watch, onMounted } from "vue";
|
|
154
|
-
import { onLoad } from "@dcloudio/uni-app";
|
|
155
|
-
|
|
156
|
-
// 响应式数据
|
|
157
|
-
const data = ref("");
|
|
158
|
-
|
|
159
|
-
// 计算属性
|
|
160
|
-
const computedData = computed(() => data.value);
|
|
161
|
-
|
|
162
|
-
// 侦听器
|
|
163
|
-
watch(data, (newVal, oldVal) => {
|
|
164
|
-
// 处理变化
|
|
165
|
-
});
|
|
166
|
-
|
|
167
|
-
// 页面加载
|
|
168
|
-
onLoad((options) => {
|
|
169
|
-
// 获取路由参数
|
|
170
|
-
});
|
|
171
|
-
|
|
172
|
-
// DOM 挂载
|
|
173
|
-
onMounted(() => {
|
|
174
|
-
// 初始化操作
|
|
175
|
-
});
|
|
176
|
-
|
|
177
|
-
// 方法定义
|
|
178
|
-
const handleClick = () => {
|
|
179
|
-
// 事件处理
|
|
180
|
-
};
|
|
181
|
-
</script>
|
|
182
|
-
|
|
183
|
-
<style lang="scss" scoped>
|
|
184
|
-
@import "./css/[module_name].scss";
|
|
185
|
-
</style>
|
|
186
|
-
```
|
|
187
|
-
|
|
188
|
-
## ✅ 版本检查清单
|
|
189
|
-
|
|
190
|
-
- [ ] 已确认项目 Vue 版本
|
|
191
|
-
- [ ] 使用对应版本的语法规范
|
|
192
|
-
- [ ] 样式穿透使用正确的语法
|
|
193
|
-
- [ ] 状态管理使用对应的库
|
|
194
|
-
- [ ] 生命周期钩子使用正确
|
|
195
|
-
- [ ] 路由传参获取方式正确
|
|
@@ -1,242 +0,0 @@
|
|
|
1
|
-
# Vue 基础规范
|
|
2
|
-
|
|
3
|
-
> 定义 Vue 开发的基础编码规范,适用于 Vue2 和 Vue3。
|
|
4
|
-
|
|
5
|
-
## 📋 通用编码规范
|
|
6
|
-
|
|
7
|
-
### 代码格式
|
|
8
|
-
|
|
9
|
-
| 规则 | 说明 |
|
|
10
|
-
| ---- | ------------------------------------ |
|
|
11
|
-
| 缩进 | 采用 4 个空格,避免 tab |
|
|
12
|
-
| 行宽 | 每行不超过 120 个字符 |
|
|
13
|
-
| 空行 | `console` 代码与其他逻辑之间需有空行 |
|
|
14
|
-
|
|
15
|
-
### Console 使用规范
|
|
16
|
-
|
|
17
|
-
```javascript
|
|
18
|
-
// ❌ 错误:禁止使用空 console.log
|
|
19
|
-
console.log();
|
|
20
|
-
|
|
21
|
-
// ✅ 正确:必须包含描述信息
|
|
22
|
-
console.log("用户信息:", userInfo);
|
|
23
|
-
|
|
24
|
-
// ⚠️ 注意:console 代码前后需有空行
|
|
25
|
-
const data = fetchData();
|
|
26
|
-
|
|
27
|
-
console.log("获取的数据:", data);
|
|
28
|
-
|
|
29
|
-
processData(data);
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
### 变量声明
|
|
33
|
-
|
|
34
|
-
```javascript
|
|
35
|
-
// ✅ 优先使用 const
|
|
36
|
-
const MAX_COUNT = 100;
|
|
37
|
-
const userList = [];
|
|
38
|
-
|
|
39
|
-
// ⚠️ 仅在需要重新赋值时使用 let
|
|
40
|
-
let currentPage = 1;
|
|
41
|
-
|
|
42
|
-
// ❌ 禁止使用 var
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
## 🚫 禁止使用的元素
|
|
46
|
-
|
|
47
|
-
### 废弃的 HTML 标签
|
|
48
|
-
|
|
49
|
-
| 禁止使用 | 替代方案 |
|
|
50
|
-
| ---------- | ------------------------ |
|
|
51
|
-
| `<font>` | CSS `font-family` |
|
|
52
|
-
| `<center>` | CSS `text-align: center` |
|
|
53
|
-
| `<b>` | `<strong>` |
|
|
54
|
-
| `<i>` | `<em>` 或 CSS |
|
|
55
|
-
|
|
56
|
-
### 废弃的 HTML 属性
|
|
57
|
-
|
|
58
|
-
| 禁止使用 | 替代方案 |
|
|
59
|
-
| ------------------------ | ---------------------- |
|
|
60
|
-
| `align` | CSS `text-align` |
|
|
61
|
-
| `valign` | CSS `vertical-align` |
|
|
62
|
-
| `bgcolor` | CSS `background-color` |
|
|
63
|
-
| `width/height`(非 img) | CSS |
|
|
64
|
-
|
|
65
|
-
## 📝 注释规范
|
|
66
|
-
|
|
67
|
-
### 文件头部注释
|
|
68
|
-
|
|
69
|
-
**每个 Vue 文件必须包含头部注释**,位于文件最顶部,`<template>` 标签之前。
|
|
70
|
-
|
|
71
|
-
#### 完整格式
|
|
72
|
-
|
|
73
|
-
```vue
|
|
74
|
-
<!--
|
|
75
|
-
* @作者: 张三
|
|
76
|
-
* @创建时间: 2024-11-11 14:20:03
|
|
77
|
-
* @修改时间: 2024-11-11 14:20:03
|
|
78
|
-
* @版本: [1.0]
|
|
79
|
-
* @版权: 国泰新点软件股份有限公司
|
|
80
|
-
* @描述: 用户登录页面,支持账号密码登录和短信验证码登录
|
|
81
|
-
-->
|
|
82
|
-
<template>
|
|
83
|
-
<view class="login-container">
|
|
84
|
-
<!-- 页面内容 -->
|
|
85
|
-
</view>
|
|
86
|
-
</template>
|
|
87
|
-
|
|
88
|
-
<script>
|
|
89
|
-
// ...
|
|
90
|
-
</script>
|
|
91
|
-
|
|
92
|
-
<style lang="scss" scoped>
|
|
93
|
-
@import "./css/login.scss";
|
|
94
|
-
</style>
|
|
95
|
-
```
|
|
96
|
-
|
|
97
|
-
#### 字段说明
|
|
98
|
-
|
|
99
|
-
| 字段 | 必填 | 说明 |
|
|
100
|
-
| ----------- | ---- | ----------------------------------------- |
|
|
101
|
-
| `@作者` | ✅ | 开发者姓名 |
|
|
102
|
-
| `@创建时间` | ✅ | 文件创建时间,格式:`YYYY-MM-DD HH:mm:ss` |
|
|
103
|
-
| `@修改时间` | ✅ | 最后修改时间,每次修改后需更新 |
|
|
104
|
-
| `@版本` | ✅ | 当前版本号,如 `[1.0]`、`[1.1]` |
|
|
105
|
-
| `@版权` | ✅ | 固定为 `国泰新点软件股份有限公司` |
|
|
106
|
-
| `@描述` | ✅ | 页面功能的简要描述 |
|
|
107
|
-
|
|
108
|
-
#### 示例
|
|
109
|
-
|
|
110
|
-
**用户列表页**:
|
|
111
|
-
|
|
112
|
-
```vue
|
|
113
|
-
<!--
|
|
114
|
-
* @作者: 李四
|
|
115
|
-
* @创建时间: 2024-12-01 09:30:00
|
|
116
|
-
* @修改时间: 2024-12-15 16:45:22
|
|
117
|
-
* @版本: [1.2]
|
|
118
|
-
* @版权: 国泰新点软件股份有限公司
|
|
119
|
-
* @描述: 用户列表页面,支持分页加载、关键字搜索和下拉刷新
|
|
120
|
-
-->
|
|
121
|
-
```
|
|
122
|
-
|
|
123
|
-
**表单提交页**:
|
|
124
|
-
|
|
125
|
-
```vue
|
|
126
|
-
<!--
|
|
127
|
-
* @作者: 王五
|
|
128
|
-
* @创建时间: 2024-11-20 10:00:00
|
|
129
|
-
* @修改时间: 2024-11-25 14:30:00
|
|
130
|
-
* @版本: [1.0]
|
|
131
|
-
* @版权: 国泰新点软件股份有限公司
|
|
132
|
-
* @描述: 信息登记表单页面,包含基本信息填写和附件上传功能
|
|
133
|
-
-->
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
### 代码注释要求
|
|
137
|
-
|
|
138
|
-
| 注释类型 | 格式 | 说明 |
|
|
139
|
-
| -------- | ----------------------------------- | -------------- |
|
|
140
|
-
| 变量注释 | `// 用户名` | 必须使用中文 |
|
|
141
|
-
| 函数注释 | 函数上方 | 说明功能和参数 |
|
|
142
|
-
| TODO | `// TODO: 待办内容(标记人,时间)` | 标记待完成事项 |
|
|
143
|
-
| 删除原因 | `// 已删除:原因说明` | 解释删除的代码 |
|
|
144
|
-
|
|
145
|
-
```javascript
|
|
146
|
-
// Vue2 示例
|
|
147
|
-
export default {
|
|
148
|
-
data() {
|
|
149
|
-
return {
|
|
150
|
-
userName: '', // 用户名
|
|
151
|
-
userAge: 0, // 用户年龄
|
|
152
|
-
isLogin: false // 登录状态
|
|
153
|
-
};
|
|
154
|
-
},
|
|
155
|
-
methods: {
|
|
156
|
-
/**
|
|
157
|
-
* 获取用户信息
|
|
158
|
-
* @param {string} userId - 用户ID
|
|
159
|
-
* @returns {Promise} 用户信息
|
|
160
|
-
*/
|
|
161
|
-
getUserInfo(userId) {
|
|
162
|
-
// TODO: 添加错误处理(张三,2024-11-11)
|
|
163
|
-
return Util.ajax({...});
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
};
|
|
167
|
-
```
|
|
168
|
-
|
|
169
|
-
### 冗余代码处理
|
|
170
|
-
|
|
171
|
-
```javascript
|
|
172
|
-
// ❌ 禁止保留无说明的注释代码
|
|
173
|
-
// const oldData = fetchOldData();
|
|
174
|
-
|
|
175
|
-
// ✅ 如需保留,必须说明原因
|
|
176
|
-
// 已废弃:接口已更新为 v2 版本(2024-11-11)
|
|
177
|
-
// const oldData = fetchOldData();
|
|
178
|
-
```
|
|
179
|
-
|
|
180
|
-
## 🔧 全局变量使用
|
|
181
|
-
|
|
182
|
-
**以下变量已全局注入,禁止通过 import 导入**:
|
|
183
|
-
|
|
184
|
-
### Config
|
|
185
|
-
|
|
186
|
-
```javascript
|
|
187
|
-
// ❌ 错误用法
|
|
188
|
-
import { Config } from "@shared";
|
|
189
|
-
|
|
190
|
-
// ✅ 正确用法(直接使用)
|
|
191
|
-
const url = Config.serverUrl + "/api/users";
|
|
192
|
-
```
|
|
193
|
-
|
|
194
|
-
### Util
|
|
195
|
-
|
|
196
|
-
```javascript
|
|
197
|
-
// ❌ 错误用法
|
|
198
|
-
import { Util } from "@shared";
|
|
199
|
-
|
|
200
|
-
// ✅ 正确用法(直接使用)
|
|
201
|
-
Util.string.isMobile("18888888888");
|
|
202
|
-
Util.ajax({ url: "..." });
|
|
203
|
-
Util.uuid();
|
|
204
|
-
```
|
|
205
|
-
|
|
206
|
-
### ejs
|
|
207
|
-
|
|
208
|
-
```javascript
|
|
209
|
-
// ✅ 直接使用 ejs 对象
|
|
210
|
-
ejs.page.open("./detail");
|
|
211
|
-
ejs.ui.toast("操作成功");
|
|
212
|
-
ejs.ui.showWaiting("加载中...");
|
|
213
|
-
```
|
|
214
|
-
|
|
215
|
-
## 📂 目录结构
|
|
216
|
-
|
|
217
|
-
```
|
|
218
|
-
src/
|
|
219
|
-
├── components/ # 通用组件
|
|
220
|
-
├── pages/ # 页面视图
|
|
221
|
-
│ └── [module]/
|
|
222
|
-
│ ├── css/
|
|
223
|
-
│ ├── images/
|
|
224
|
-
│ ├── [page].vue
|
|
225
|
-
│ ├── router.js
|
|
226
|
-
│ ├── store.js
|
|
227
|
-
│ └── mock.js
|
|
228
|
-
├── shared/ # 配置文件
|
|
229
|
-
├── common/ # 通用文件
|
|
230
|
-
└── static/ # 静态资源
|
|
231
|
-
```
|
|
232
|
-
|
|
233
|
-
## ✅ 基础检查清单
|
|
234
|
-
|
|
235
|
-
- [ ] 使用 4 空格缩进
|
|
236
|
-
- [ ] 每行不超过 120 字符
|
|
237
|
-
- [ ] console 包含描述信息
|
|
238
|
-
- [ ] 优先使用 const
|
|
239
|
-
- [ ] 未使用废弃的标签/属性
|
|
240
|
-
- [ ] 文件包含头部注释
|
|
241
|
-
- [ ] 变量有中文注释
|
|
242
|
-
- [ ] 全局变量未通过 import 导入
|