@qilitt-mickey/vue3-temp-skill 1.1.18 → 1.1.19
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/SKILL.md +22 -9
- package/package.json +1 -1
- package/references/api-check.md +1 -1
- package/references/code-quality.md +4 -4
- package/references/core-kernel.md +4 -4
- package/references/crud-pages.md +3 -3
- package/references/data-writeback.md +1 -1
- package/references/design-handoff.md +6 -6
- package/references/design-system.md +8 -8
- package/references/detail-page.md +2 -2
- package/references/download-export.md +1 -1
- package/references/feedback-loading.md +1 -1
- package/references/form-advanced.md +2 -2
- package/references/http-api.md +1 -1
- package/references/icons.md +2 -2
- package/references/permission-auth.md +1 -1
package/SKILL.md
CHANGED
|
@@ -9,6 +9,19 @@ tags: [vue3, typescript, element-plus, vant, pinia, vite, unocss, crud, componen
|
|
|
9
9
|
|
|
10
10
|
执行顺序:命中模块 → 读 `core-kernel` → 读命中 `references/<模块>.md` → 生成 → 执行 `code-quality` → 回复含审查结果块。
|
|
11
11
|
|
|
12
|
+
## 术语约定
|
|
13
|
+
|
|
14
|
+
全文统一使用下表术语;不得使用「黄金样板 / 强制完整样板 / 抗略读 / 默记 / 真相源」等表述。
|
|
15
|
+
|
|
16
|
+
| 统一术语 | 含义 | 禁止使用 |
|
|
17
|
+
|----------|------|----------|
|
|
18
|
+
| 标准样板 | 模块内完整代码样板,命中即整段落盘 | 黄金样板、强制完整样板 |
|
|
19
|
+
| 完整性守则 | 全模块通用的防浅读规则 | 抗略读 |
|
|
20
|
+
| 速查约定 | 高频写法的快速指引 | 默记 |
|
|
21
|
+
| 权威性优先级 | 实现方式选取顺序:仓库封装 > 本 Skill 示例 > 通用 Vue 习惯 | 真相源 |
|
|
22
|
+
| 回退至 | 缺档取值动作(如「缺档 → 回退至 default」) | 缺档场景的「落到」 |
|
|
23
|
+
| 未命中模块 | 需求无对应专项模块时的路由结果 | 「兜底」指代路由结果 |
|
|
24
|
+
|
|
12
25
|
## 模版约定
|
|
13
26
|
|
|
14
27
|
- 面向由 **vue3-web-temp** 脚手架搭出的业务项目(目录名/安装路径因人而异,以当前工作区为准)
|
|
@@ -25,19 +38,19 @@ tags: [vue3, typescript, element-plus, vant, pinia, vite, unocss, crud, componen
|
|
|
25
38
|
|
|
26
39
|
1. 先读 `references/core-kernel.md`
|
|
27
40
|
2. 复用仓库已有 `Re*` / Hook / utils;选型表指定库勿擅自替换
|
|
28
|
-
3.
|
|
41
|
+
3. 按命中模块内**标准样板**整段编写(禁止只抄 API 签名、丢掉 meta/配套段落)
|
|
29
42
|
4. 无对应能力 → 标注「待确认」,未经同意不引入新依赖
|
|
30
|
-
5.
|
|
43
|
+
5. 权威性优先级:`仓库已有封装` > `本 Skill 示例` > 通用 Vue 习惯
|
|
31
44
|
6. 命中 addon / 缺依赖时再读 `project-inventory.md` 第九节;精确版本安装,禁止 `@latest`
|
|
32
45
|
|
|
33
|
-
##
|
|
46
|
+
## 完整性守则(全模块强制)
|
|
34
47
|
|
|
35
|
-
按需模块 ≠
|
|
48
|
+
按需模块 ≠ 可浅读。命中即须落到该文件的**标准样板 / Must-do**,生成后靠 `code-quality` 硬失败表兜底。
|
|
36
49
|
|
|
37
50
|
1. **样板字段默认写出**:示例里写明的 `activePath` / `keepAlive` / `roles` / `responseType: "blob"` 等不得改成 `//` 注释再当可选项;仅业务明确不需要时才删除
|
|
38
51
|
2. **关联能力同批落盘**:列表→详情 = `crud-pages` + `detail-page` 三件套;有 API = 同步 `http-api`;有删除 = 确认框;有编辑回显 = `Object.assign`
|
|
39
52
|
3. **Hook ≠ 壳层自动**:`toDetail` 写 tag;侧栏高亮 / keepAlive 靠路由 meta;`http` 加解密靠环境开关,不靠单请求配置
|
|
40
|
-
4.
|
|
53
|
+
4. **大范围交付仍须逐模块核对硬失败表**,禁止以 lint 通过代替硬失败表逐项核对
|
|
41
54
|
|
|
42
55
|
## 模块路由表
|
|
43
56
|
|
|
@@ -97,13 +110,13 @@ tags: [vue3, typescript, element-plus, vant, pinia, vite, unocss, crud, componen
|
|
|
97
110
|
| **feedback-ui** | 通知栏、水印、时间轴、打字机 |
|
|
98
111
|
| **seamless-scroll** | 无缝滚动、跑马灯 |
|
|
99
112
|
| **particles** | 粒子、tsparticles、登录背景粒子 |
|
|
100
|
-
| **directives-advanced** |
|
|
113
|
+
| **directives-advanced** | 一键复制、标题字号自适应 → `v-copy` / `v-auto-font` |
|
|
101
114
|
|
|
102
115
|
### 匹配规则
|
|
103
116
|
|
|
104
117
|
1. 单模块 → 该模块 + `core-kernel`;结束后执行 `code-quality`
|
|
105
118
|
2. 多模块 → 同时加载(例:客户列表 = `crud-pages` + `permission-auth` + `http-api`)
|
|
106
|
-
3.
|
|
119
|
+
3. 未命中模块 → 仅 `core-kernel`,向用户确认是否专项
|
|
107
120
|
4. 默认不改 `vite.config.ts` / `build/**`
|
|
108
121
|
5. 效果匹配:
|
|
109
122
|
- 弹窗 → `form-advanced`
|
|
@@ -118,10 +131,10 @@ tags: [vue3, typescript, element-plus, vant, pinia, vite, unocss, crud, componen
|
|
|
118
131
|
- 列表→独立详情/编辑页 → `crud-pages` + `detail-page`
|
|
119
132
|
6. 独立详情路由:跳转与 meta 见 `detail-page`(`toDetail` / `showLink` / `activePath` / `initToDetail`)
|
|
120
133
|
|
|
121
|
-
##
|
|
134
|
+
## 速查约定(细则见对应模块)
|
|
122
135
|
|
|
123
136
|
- HTTP:`import { http } from '@/utils/http'`;方法跟后端(允许 GET/POST);`Result<T>`;`VITE_API_BASE_URL` → `http-api`
|
|
124
|
-
- 列表:`onSearch` / `reset` +
|
|
137
|
+
- 列表:`onSearch` / `reset` + 标准样板 → `crud-pages`
|
|
125
138
|
- 独立详情:`toDetail` **不能替代** `activePath` / `keepAlive` / `moreTags`;三件套 → `detail-page`
|
|
126
139
|
- 权限:`meta.roles` + `v-auth`/`ReAuth` → `permission-auth`
|
|
127
140
|
- 不二次挂 Layout;`script setup` + `defineOptions({ name })`;`$t('中文')`;样式契约 → `core-kernel`
|
package/package.json
CHANGED
package/references/api-check.md
CHANGED
|
@@ -9,7 +9,7 @@ tags: [api, backend, integration, contract, http, checklist, mock]
|
|
|
9
9
|
|
|
10
10
|
写法与示例 → **`http-api`**。本文件只做联调核对。权威源:`types/global.d.ts`、`src/utils/http.ts`、`src/api/**`、`mock/**`、`useTableSearch`。
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
**完整性守则**:联调阶段仍须核对「下载是否带 blob」「分页字段是否 content/totalCount」;契约不过 = API 未完成,禁止只靠 lint 放行。
|
|
13
13
|
|
|
14
14
|
## 基本信息
|
|
15
15
|
|
|
@@ -30,7 +30,7 @@ tags: [code-review, quality, checklist, lint, typescript, vue3, security, perfor
|
|
|
30
30
|
|
|
31
31
|
## 硬失败(对照落盘文件;命中即未通过)
|
|
32
32
|
|
|
33
|
-
lint / type-check
|
|
33
|
+
lint / type-check **过了也不能放过**下列项。发现即改代码,禁止搁置已知问题。
|
|
34
34
|
|
|
35
35
|
| 触发条件(改动里出现) | 未通过条件 | 正确做法 |
|
|
36
36
|
|------------------------|------------|----------|
|
|
@@ -54,7 +54,7 @@ lint / type-check **过了也不能放过**下列项。发现即改代码,禁
|
|
|
54
54
|
- [ ] 列表方法名 `onSearch` / `reset`;HTTP 用 `@/utils/http` + `Result<T>`
|
|
55
55
|
- [ ] 业务路由未二次挂 Layout
|
|
56
56
|
- [ ] 独立详情:对照路由文件确认 `showLink:false` + `activePath` + `keepAlive`/`moreTags`(默认)+ `toDetail` + `initToDetail`
|
|
57
|
-
- [ ] 列表布局按 `crud-pages`
|
|
57
|
+
- [ ] 列表布局按 `crud-pages` 标准样板(`el-card.vts-page-card`+`content`、无 `100vh` 减顶栏、`tableHeight`、`otherRef`、分页在 ReTableBar 内;内容区无外层滚动条)
|
|
58
58
|
- [ ] 顶栏高度仅 `--header-height` 等 CSS 令牌;禁止 JS 测顶栏 / `platform-config` 顶栏像素字段 / `useApp` 导出顶栏高度
|
|
59
59
|
|
|
60
60
|
## TypeScript
|
|
@@ -105,14 +105,14 @@ lint / type-check **过了也不能放过**下列项。发现即改代码,禁
|
|
|
105
105
|
- [ ] 冲突清单已逐条处理(见 `design-system`)
|
|
106
106
|
- [ ] 有上游设计产出时已读 `design-handoff`:JSON 优先;**原子步骤**含 `Theme=default`(深色侧栏)+ `--sidebar-*` + **`Version++`** + 主色阶;禁止只改 EpThemeColor;错误色 `#F5222D`
|
|
107
107
|
- [ ] **无**设计落地时未改出厂主色 / ShowModel / 壳层 / 弹窗几何默认
|
|
108
|
-
- [ ] 组件尺寸三档已落地并桥接 `--el-component-size
|
|
108
|
+
- [ ] 组件尺寸三档已落地并桥接 `--el-component-size*`;缺档回退至 default;未全局强制 `size="small"`;**查询区不写 size**(三档对照表 ≠ 查询区要用 small)
|
|
109
109
|
|
|
110
110
|
## 业务
|
|
111
111
|
|
|
112
112
|
- [ ] 提交前 `validate()`;删除有确认;提交有 loading;列表有 `v-loading`
|
|
113
113
|
- [ ] 编辑回显正确(`Object.assign`);分页切换会拉数
|
|
114
114
|
|
|
115
|
-
### 列表→详情(改动含 toDetail / *Detail
|
|
115
|
+
### 列表→详情(改动含 toDetail / *Detail 路由时强制,禁止以 N/A 跳过)
|
|
116
116
|
|
|
117
117
|
- [ ] **打开落盘路由文件**核对:兄弟绝对 path;`showLink:false`;`activePath`=列表 path;非空 `title`;默认 `keepAlive`+`moreTags`
|
|
118
118
|
- [ ] 仅 `toDetail`;详情 `initToDetail`;`name` 对齐;`toDetail` 第 3 参 title 可辨识
|
|
@@ -24,7 +24,7 @@ tags: [vue3, kernel, conventions, layout, router, http, crud, inventory]
|
|
|
24
24
|
| 9 | i18n:`$t('中文key')` |
|
|
25
25
|
| 10 | 禁止用 `v-html` 渲染不可信内容 |
|
|
26
26
|
| 11 | 新依赖须用户确认;已有封装须复用;选型表指定库勿擅自替换 |
|
|
27
|
-
| 12 | 列表布局按 **`crud-pages`
|
|
27
|
+
| 12 | 列表布局按 **`crud-pages` 标准样板**(`el-card.vts-page-card`+`content`、无 `100vh` 减顶栏定高、`tableHeight`、`otherRef`、分页在 ReTableBar 内;仅表格体内滚动) |
|
|
28
28
|
| 13 | addon 按 `project-inventory` 第九节精确版本安装;禁止 `@latest` |
|
|
29
29
|
| 14 | 样式契约见下文「样式契约」 |
|
|
30
30
|
|
|
@@ -49,9 +49,9 @@ export default {
|
|
|
49
49
|
} satisfies RouteConfigsTable;
|
|
50
50
|
```
|
|
51
51
|
|
|
52
|
-
###
|
|
52
|
+
### 完整性守则
|
|
53
53
|
|
|
54
|
-
|
|
54
|
+
命中模块须照其**标准样板**整段落盘;样板中的字段默认写出。壳层行为(tag / 侧栏 / keep-alive)以路由 meta + 项目已有实现为准,不假设 Hook 会「全自动」。
|
|
55
55
|
|
|
56
56
|
### 权限
|
|
57
57
|
|
|
@@ -78,7 +78,7 @@ export function getCustomerList(data: CustomerQuery, url: string) {
|
|
|
78
78
|
|
|
79
79
|
细则:`http-api`。字典:`base-code-dict`。提示:`import { message } from '@/utils/message'`。
|
|
80
80
|
|
|
81
|
-
## 四、CRUD
|
|
81
|
+
## 四、CRUD 能力清单
|
|
82
82
|
|
|
83
83
|
| Hook | 用途 | 详例 |
|
|
84
84
|
|------|------|------|
|
package/references/crud-pages.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
skill: crud-pages
|
|
3
|
-
description: 查询列表页、表单页、标准 CRUD。含 useTableSearch
|
|
3
|
+
description: 查询列表页、表单页、标准 CRUD。含 useTableSearch、列表标准样板、表单约定。
|
|
4
4
|
scope: project
|
|
5
5
|
tags: [vue3, crud, list, form, detail, table, useTableSearch, page, layout]
|
|
6
6
|
---
|
|
@@ -9,7 +9,7 @@ tags: [vue3, crud, list, form, detail, table, useTableSearch, page, layout]
|
|
|
9
9
|
|
|
10
10
|
遵守 `core-kernel` / `http-api`。独立详情路由 → 同时加载 `detail-page`。回显 → `data-writeback`。
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
**完整性守则**:列表页必须整段照抄「列表标准样板」;有独立详情时 **同批** 落 `detail-page` 三件套(禁止只写 `toDetail`)。方法名固定 `onSearch` / `reset`。
|
|
13
13
|
|
|
14
14
|
## useTableSearch
|
|
15
15
|
|
|
@@ -37,7 +37,7 @@ useTableSearch(formQuery, searchFn, url)
|
|
|
37
37
|
|
|
38
38
|
> **壳层原理**(`lay-content`):`.main-content` 用 `padding: var(--vts-margin)`(不用 margin);定高页 `.main-content:has(.vts-page-card)` / `.vts-page-fill` 为 `height: 100%`;`.vts-page-card` 填满。`html/body/#app/.app-wrapper/.main-container/.app-main` 均为 `height:100%; overflow:hidden`。禁止业务页 `100vh` 减顶栏定高。
|
|
39
39
|
|
|
40
|
-
##
|
|
40
|
+
## 列表标准样板(唯一完整示例)
|
|
41
41
|
|
|
42
42
|
| # | 必须 |
|
|
43
43
|
|---|------|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
> 按本文件示例编写,复用项目已有回显/回填约定与选择器回写方式,勿另起一套表单赋值实现。
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
**完整性守则**:编辑回显**必须** `Object.assign(formData, res.data)`,禁止 `formData = res.data` 破坏响应式。提交按钮默认带 `loading`。
|
|
6
6
|
|
|
7
7
|
## 强制样板(编辑回显)
|
|
8
8
|
|
|
@@ -11,13 +11,13 @@ tags: [handoff, design-tokens, upstream, artifacts, json]
|
|
|
11
11
|
|
|
12
12
|
| 场景 | 行为 |
|
|
13
13
|
|------|------|
|
|
14
|
-
| **未调用设计 / 无 handoff** | 保持模版出厂(主色 `#409EFF`、`Theme: light`=**白侧栏**、`ShowModel: chrome`、margin 8
|
|
14
|
+
| **未调用设计 / 无 handoff** | 保持模版出厂(主色 `#409EFF`、`Theme: light`=**白侧栏**、`ShowModel: chrome`、margin 8 等)。**禁止**为贴合视觉印象而擅自修改出厂值 |
|
|
15
15
|
| **有 design-handoff/v1 或用户要求按设计落地** | 按下文「落地原子步骤」**整组**回填;只改主色/令牌、不改 `Theme`/`Version` = **落地失败** |
|
|
16
16
|
|
|
17
17
|
跨编辑器一致:设计侧 `handoff-output.md`(JSON 形状)+ 本文件(→ 模版映射)+ 模版令牌。
|
|
18
18
|
**分工**:设计师改视觉正文;本文件规定 Agent 如何落到模版。禁止只改文档不改令牌。
|
|
19
19
|
|
|
20
|
-
### 出厂 vs
|
|
20
|
+
### 出厂 vs 设计:侧栏两套开关(高频错误)
|
|
21
21
|
|
|
22
22
|
| 概念 | 出厂 | 设计 page-templates「浅色模式」 |
|
|
23
23
|
|------|------|--------------------------------|
|
|
@@ -66,7 +66,7 @@ tags: [handoff, design-tokens, upstream, artifacts, json]
|
|
|
66
66
|
有 JSON 时:**以 JSON 为准**;交接块 / 零散 CSS 仅补 JSON 未覆盖字段。
|
|
67
67
|
无 JSON 时:回退优先 2~5(旧协议),并在回执中注明「建议补齐 design-handoff/v1」。
|
|
68
68
|
|
|
69
|
-
缺主色阶 →「待确认」;有 `brandPrimary`
|
|
69
|
+
缺主色阶 →「待确认」;有 `brandPrimary` 则可先落主色与壳桥接,禁止虚构 `primaryScale`。
|
|
70
70
|
|
|
71
71
|
---
|
|
72
72
|
|
|
@@ -135,7 +135,7 @@ tags: [handoff, design-tokens, upstream, artifacts, json]
|
|
|
135
135
|
| `layoutBg` | `--layout-bg` |
|
|
136
136
|
| `componentBg` | `--component-bg` |
|
|
137
137
|
|
|
138
|
-
校验:`primaryScale.length === 10` 且 `primaryScale[5] === brandPrimary`;否则回执「待确认」并先写 brand
|
|
138
|
+
校验:`primaryScale.length === 10` 且 `primaryScale[5] === brandPrimary`;否则回执「待确认」并先写 brand,禁止补造色阶。
|
|
139
139
|
|
|
140
140
|
### `componentSize` → 控件高度
|
|
141
141
|
|
|
@@ -145,7 +145,7 @@ tags: [handoff, design-tokens, upstream, artifacts, json]
|
|
|
145
145
|
| `base` | `--control-height` / `--component-size-base` / `--el-component-size` |
|
|
146
146
|
| `lg` | `--control-height-lg` / `--component-size-lg` / `--el-component-size-large` |
|
|
147
147
|
|
|
148
|
-
细则见 `design-system` 7.5.8。缺档 →
|
|
148
|
+
细则见 `design-system` 7.5.8。缺档 → 回退至 default(base),回执注明。
|
|
149
149
|
|
|
150
150
|
### 卡片页签关闭色(设计约束)
|
|
151
151
|
|
|
@@ -228,7 +228,7 @@ tags: [handoff, design-tokens, upstream, artifacts, json]
|
|
|
228
228
|
4. 核对表 A~E;硬失败项见下
|
|
229
229
|
5. 回执「已覆盖 / 保留出厂」;提醒用户**硬刷新**一次(Version 会清 layout 缓存)
|
|
230
230
|
|
|
231
|
-
**反例(禁止)**:只改 `EpThemeColor` / `:root` 主色 →
|
|
231
|
+
**反例(禁止)**:只改 `EpThemeColor` / `:root` 主色 → 侧栏仍白、未达完整落地效果。
|
|
232
232
|
|
|
233
233
|
## 规范识别回执(动手前必出)
|
|
234
234
|
|
|
@@ -13,7 +13,7 @@ tags: [design-system, design-tokens, antd, semi, arco, vuetify, findesign, eleme
|
|
|
13
13
|
|
|
14
14
|
| 轨 | 含义 | Agent 行为 |
|
|
15
15
|
|----|------|------------|
|
|
16
|
-
| **出厂** | `design-tokens.scss` / `platform-config.json` 已有默认(如壳 64/208/40、主色 `#409EFF`、`ShowModel: chrome`、`--layout-content-padding: 8`) |
|
|
16
|
+
| **出厂** | `design-tokens.scss` / `platform-config.json` 已有默认(如壳 64/208/40、主色 `#409EFF`、`ShowModel: chrome`、`--layout-content-padding: 8`) | **勿擅自改掉**以贴合设计;系统未调用设计技能时保持出厂 |
|
|
17
17
|
| **设计落地** | 会话/仓库存在 `design-handoff/v1` 或用户要求按设计规范适配 | **必须**按设计规范与 JSON **全量回填**令牌;设计未提及的字段保留出厂;壳层/ReDialog/EP 几何须已是 `var(--token)`,改令牌即生效 |
|
|
18
18
|
|
|
19
19
|
视觉关键尺寸(顶栏/侧栏/页签/内容边距/控件高/弹窗/卡片页签等)在模版中**一律为 CSS 变量**;文档里的 64/208 等是默认值说明,不是允许写死在组件里的常量。
|
|
@@ -58,7 +58,7 @@ tags: [design-system, design-tokens, antd, semi, arco, vuetify, findesign, eleme
|
|
|
58
58
|
1. **令牌驱动优先**:能从上游产出 / 官方文档 / 用户提供的 `:root` 取到令牌 → 直接采用,跳过预设表。
|
|
59
59
|
2. **缺项就近推导**:缺失的令牌取**风格最接近的预设**同位值补齐(如某企业内部规范缺圆角 → 参考视觉最接近的预设)。
|
|
60
60
|
3. **回执标注推导项**:识别回执的「目标规范」写实际名称并标 `custom`,推导补齐的令牌逐项列出,请用户确认。
|
|
61
|
-
4.
|
|
61
|
+
4. 禁止将无法对应的规范强行归入预设,也不得以未收录为由拒绝适配。
|
|
62
62
|
|
|
63
63
|
### 1.4 识别回执(强制 · 适配类任务第一步)
|
|
64
64
|
|
|
@@ -233,7 +233,7 @@ tags: [design-system, design-tokens, antd, semi, arco, vuetify, findesign, eleme
|
|
|
233
233
|
2. 每段追加规范注释:`/* —— <规范名> 几何:<组件> —— */`,让后续开发者一眼看出取值来源。
|
|
234
234
|
3. 模版里同一选择器已有裸值规则(如 `.el-card__body { padding: 5px }`)→ **就地改为令牌引用**,禁止另起一条规则去压盖,避免“同属性两处定义”。
|
|
235
235
|
|
|
236
|
-
|
|
236
|
+
标准样板(按需追加/修改,只改数据值,结构不变):
|
|
237
237
|
|
|
238
238
|
```scss
|
|
239
239
|
/**
|
|
@@ -410,9 +410,9 @@ tags: [design-system, design-tokens, antd, semi, arco, vuetify, findesign, eleme
|
|
|
410
410
|
|
|
411
411
|
4. 暗黑模式:在 `dark.scss` 内为新增令牌补暗色覆盖(`--vts-table-header-bg`、`--vts-message-bg`、`--vts-dialog-bg` 等),遵守 `layout-theme` 第三节规则。
|
|
412
412
|
|
|
413
|
-
### Step 7
|
|
413
|
+
### Step 7 存量代码回归扫描(存量页面与令牌层同步校验)
|
|
414
414
|
|
|
415
|
-
适配/切换完成后,对 `src/views/` 与 `src/components/`
|
|
415
|
+
适配/切换完成后,对 `src/views/` 与 `src/components/` 执行存量裸值扫描:
|
|
416
416
|
|
|
417
417
|
```
|
|
418
418
|
grep 目标(*.vue 的 <style> 与行内 style):
|
|
@@ -636,7 +636,7 @@ height: \d+px、padding: \d+px、font-size: \d+px、行内 style="...颜色 hex"
|
|
|
636
636
|
|
|
637
637
|
`.sidebar-container .el-menu` 上写 `--el-menu-item-height: <与 design-tokens 一致>`,**禁止** `--el-menu-item-height: var(--el-menu-item-height, …)` 自引用(EP 回退默认 56px)。
|
|
638
638
|
|
|
639
|
-
#### 7.5.5 查询区尺寸(core-kernel
|
|
639
|
+
#### 7.5.5 查询区尺寸(core-kernel 标准样板)
|
|
640
640
|
|
|
641
641
|
列表页查询区 **`el-form` 不写 size**(default 中号 = `--control-height` / 设计 `--component-size-base`,默认 32px),查询/工具栏按钮随表单继承;**禁止**查询区单独写 `size="small"` 导致输入框与按钮变成 24px 档。
|
|
642
642
|
|
|
@@ -667,7 +667,7 @@ height: \d+px、padding: \d+px、font-size: \d+px、行内 style="...颜色 hex"
|
|
|
667
667
|
**缺档规则**(与设计规范「一点九」一致):
|
|
668
668
|
|
|
669
669
|
1. 上游给出完整三档 → 三档都写入 `design-tokens.scss`「用户可自定义」,并确认 `--el-component-size*` 桥接仍指向 `--control-height*`。
|
|
670
|
-
2. 上游**只给一个高度**(如「控件 32」)→ 写入 `--control-height`(default);`--control-height-sm` / `--control-height-lg` 保留模版默认或按比例派生;回执注明「缺档 →
|
|
670
|
+
2. 上游**只给一个高度**(如「控件 32」)→ 写入 `--control-height`(default);`--control-height-sm` / `--control-height-lg` 保留模版默认或按比例派生;回执注明「缺档 → 回退至 default」。
|
|
671
671
|
3. **必须重设 default(未指定 size)**:`element-plus.scss` 中无 `--small`/`--large` 修饰的按钮/输入类选择器须引用 `var(--control-height)`,禁止依赖 EP 出厂像素且与令牌脱节。
|
|
672
672
|
4. **禁止**把设计 base(32) 映射成全局 `size="small"`;`App.vue` 的 `el-config-provider` 默认不传 `size`(或显式不设),避免全站变 24px。
|
|
673
673
|
5. 表格行内操作、紧凑工具条可用 `size="small"`;查询区/标准表单/弹窗表单用 default;登录主操作可用 `large`。
|
|
@@ -675,7 +675,7 @@ height: \d+px、padding: \d+px、font-size: \d+px、行内 style="...颜色 hex"
|
|
|
675
675
|
|
|
676
676
|
---
|
|
677
677
|
|
|
678
|
-
##
|
|
678
|
+
## 八、反例对照表
|
|
679
679
|
|
|
680
680
|
| 错误 | 正确 |
|
|
681
681
|
|------|------|
|
|
@@ -7,11 +7,11 @@ tags: [vue3, detail, toDetail, useDetail, activePath, showLink, multiTags, keepA
|
|
|
7
7
|
|
|
8
8
|
# 详情页 / 编辑页跳转
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
权威性优先级:模版 `useDetail.ts`、`multiTags`、侧栏 `NavVertical`。列表打开独立路由页时按本文件落地。
|
|
11
11
|
|
|
12
12
|
**反认知偏差(必读)**:`toDetail` 只负责写顶部 tag 并跳转;**侧栏高亮靠 `meta.activePath`,缓存/多开靠 `meta.keepAlive` / `moreTags`**。三者缺一不可,禁止只写 `toDetail`。
|
|
13
13
|
|
|
14
|
-
##
|
|
14
|
+
## 详情三件套(标准样板 · 整段照抄再改名)
|
|
15
15
|
|
|
16
16
|
缺任一段 = 未完成。样板内字段**默认全部写出**(勿改成 `//` 注释再「按需打开」)。仅当业务明确不要缓存/多开时,才删掉对应行。
|
|
17
17
|
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
规范文件下载、模板下载、文件流导出与附件预览。在需要下载文件、导出表格或预览附件时参照。
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
**完整性守则**:导出/下载 API **必须**带 `responseType: "blob"`(默认写出,勿当可选项注释掉);前端用 `blobDown` / 项目已有 `download*`,禁止手写 `URL.createObjectURL` 另起一套(除非仓库无封装)。
|
|
8
8
|
|
|
9
9
|
## 强制样板(导出)
|
|
10
10
|
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
规范系统 Loading、Message、MessageBox、NoticeBar 等反馈组件的使用。在需要提示用户或阻塞操作时参照。
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
**完整性守则**:删除/危险操作**默认写出** `ElMessageBox.confirm`;列表请求接 `v-loading`;提交默认 `loading` 防重复。提示文案一律 `$t()`。
|
|
8
8
|
|
|
9
9
|
## 强制样板(删除确认)
|
|
10
10
|
|
|
@@ -10,7 +10,7 @@ tags: [form, dialog, ReDialog, ReDialogResize, ReSelectQuery, ReCascader, iconPi
|
|
|
10
10
|
> 核心选择器与 CRUD 列表筛选项高频相关。
|
|
11
11
|
> **弹窗**:业务弹窗统一用 `ReDialog` / `ReDialogResize`,禁止业务页直接堆裸 `el-dialog`(除非用户明确要求)。
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
**完整性守则**:弹窗走项目 `ReDialog` 标准样板(含销毁/禁点遮罩等默认项),勿降级为裸 `el-dialog`。远程下拉用 `ReSelectQuery` 真实 props(`url`/`value`/`label`/`edit-data`),禁止虚构 `:api`。
|
|
14
14
|
|
|
15
15
|
## 依赖(缺则先装)
|
|
16
16
|
|
|
@@ -223,7 +223,7 @@ function parseAddress(text: string) {
|
|
|
223
223
|
|
|
224
224
|
内置行为:`lock-scroll`、`draggable`、`destroy-on-close`、`close-on-click-modal=false`、自定义关闭/全屏图标(非默认 `show-close`)。
|
|
225
225
|
|
|
226
|
-
###
|
|
226
|
+
### 列表页表单弹窗(标准样板)
|
|
227
227
|
|
|
228
228
|
```vue
|
|
229
229
|
<script setup lang="ts">
|
package/references/http-api.md
CHANGED
|
@@ -9,7 +9,7 @@ tags: [axios, http, api, encryption, rsa, aes, download, request]
|
|
|
9
9
|
|
|
10
10
|
> 实现落点:`src/utils/http.ts`、`src/api/**`、全局 `Result<T>`。
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
**完整性守则**:接口文件须整段按下方「强制样板」落盘;禁止组件内直接 `axios`/`fetch`。加解密靠 `VITE_ENCODE_SWITCH`,禁止虚构单请求 `crypto: true`。下载接口**默认写出** `responseType: "blob"`(勿注释掉)。
|
|
13
13
|
|
|
14
14
|
## 强制样板(新建 API 照抄)
|
|
15
15
|
|
package/references/icons.md
CHANGED
|
@@ -8,10 +8,10 @@ tags: [vue3, icon, svg-icon, ReSvgIcon, ReIconPicker, iconify, ep, ri, unocss, m
|
|
|
8
8
|
# 图标体系规范
|
|
9
9
|
|
|
10
10
|
> 页面/菜单/按钮里要用图标时加载本模块。
|
|
11
|
-
>
|
|
11
|
+
> **权威性优先级**:`src/components/ReSvgIcon`、`src/components/ReIconPicker`、`src/icons/svg`、`main.ts`、`uno.config.ts`、`build/plugins/SvgSpriteLoader.ts` / `SvgLoader.ts`。
|
|
12
12
|
> 选型表见 `project-inventory`「图标」节;勿另起 IconFont / 未约定的图标库。
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
**完整性守则**:新建菜单/父级路由时 **`meta.icon` 默认写出**(如 `ep:user`),禁止交无图标菜单。页面内优先 `<svg-icon name="..." />`,勿散落未约定图标库。
|
|
15
15
|
|
|
16
16
|
## 强制样板(菜单 icon)
|
|
17
17
|
|
|
@@ -7,7 +7,7 @@ tags: [vue3, permission, auth, directive, hooks, v-auth, role, access-control]
|
|
|
7
7
|
|
|
8
8
|
# 权限控制与自定义指令
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
**完整性守则**:有权限需求时,`meta.roles` 与 `v-auth`/`ReAuth` **默认写出**(勿注释成可选项)。禁止 `v-if="roles.includes(...)"` 手写角色判断。
|
|
11
11
|
|
|
12
12
|
## 强制样板(页面 + 按钮)
|
|
13
13
|
|