@qilitt-mickey/vue3-temp-skill 1.1.13 → 1.1.15
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 +16 -4
- package/package.json +1 -1
- package/references/api-check.md +2 -0
- package/references/code-quality.md +31 -10
- package/references/core-kernel.md +21 -18
- package/references/crud-pages.md +35 -13
- package/references/data-writeback.md +13 -0
- package/references/design-handoff.md +248 -30
- package/references/design-system.md +73 -29
- package/references/detail-page.md +43 -33
- package/references/download-export.md +20 -0
- package/references/feedback-loading.md +35 -0
- package/references/flowchart-g6.md +1 -2
- package/references/form-advanced.md +5 -2
- package/references/graph-relation.md +2 -2
- package/references/http-api.md +25 -0
- package/references/icons.md +12 -0
- package/references/layout-theme.md +88 -48
- package/references/permission-auth.md +16 -2
- package/references/project-inventory.md +48 -46
- package/references/ui-components.md +43 -141
|
@@ -163,51 +163,53 @@
|
|
|
163
163
|
|
|
164
164
|
## 二、Re* 自定义组件清单
|
|
165
165
|
|
|
166
|
-
> 所有自定义组件以 `Re`
|
|
167
|
-
>
|
|
168
|
-
|
|
169
|
-
| 组件 | 用途 |
|
|
170
|
-
|
|
171
|
-
| **ReAnchor** |
|
|
172
|
-
| **ReAttachment** | 附件上传/管理 | `
|
|
173
|
-
| **ReAuth** |
|
|
174
|
-
| **ReAvatars** |
|
|
175
|
-
| **ReBarcode** |
|
|
176
|
-
| **ReCascader** |
|
|
177
|
-
| **ReCheckCard** |
|
|
178
|
-
| **ReCollapsible** |
|
|
179
|
-
| **ReDatePicker** |
|
|
180
|
-
| **ReDateRangePicker** |
|
|
181
|
-
| **ReDialog** |
|
|
182
|
-
| **ReDialogResize** |
|
|
183
|
-
| **ReDragVerify** |
|
|
184
|
-
| **ReEchart** | ECharts
|
|
185
|
-
| **ReFileViewer** |
|
|
186
|
-
| **ReFlicker** |
|
|
187
|
-
| **ReGrid** |
|
|
188
|
-
| **ReGridItem** | 栅格子项 | `
|
|
189
|
-
| **ReHeaderPage** |
|
|
190
|
-
| **ReIconPicker** |
|
|
191
|
-
| **ReImageVerify** |
|
|
192
|
-
| **ReLanguageSwitch** | 语言切换 | `
|
|
193
|
-
| **ReNoticeBar** |
|
|
194
|
-
| **RePagination** |
|
|
195
|
-
| **RePopupPicker** |
|
|
196
|
-
| **ReQrcode** |
|
|
197
|
-
| **ReRichText** |
|
|
198
|
-
| **ReSeamlessScroll** |
|
|
199
|
-
| **ReSegmented** |
|
|
200
|
-
| **ReSelectQuery** |
|
|
201
|
-
| **ReSelectVant** |
|
|
202
|
-
| **ReSmsCode** |
|
|
203
|
-
| **ReSvgIcon** | SVG
|
|
204
|
-
| **ReTableBar** | 表格工具栏 | `
|
|
205
|
-
| **ReTableOperate** |
|
|
206
|
-
| **ReText** |
|
|
207
|
-
| **ReTimeLine** | 时间轴 | `
|
|
208
|
-
| **ReTreeLine** |
|
|
209
|
-
| **ReTypeit** |
|
|
210
|
-
| **ReVerify** |
|
|
166
|
+
> 所有自定义组件以 `Re` 为前缀。开发前先查本表,禁止重复造轮子。
|
|
167
|
+
> **用法**按功能模块写(见 `ui-components` 索引),本表只做名录 + 落点。
|
|
168
|
+
|
|
169
|
+
| 组件 | 用途 | 目录 | 用法模块 |
|
|
170
|
+
|---|---|---|---|
|
|
171
|
+
| **ReAnchor** | 锚点导航 | `ReAnchor/` | `form-advanced` |
|
|
172
|
+
| **ReAttachment** | 附件上传/管理 | `ReAttachment/` | `file-management` |
|
|
173
|
+
| **ReAuth** | 权限包裹 | `ReAuth/` | `permission-auth` |
|
|
174
|
+
| **ReAvatars** | 头像组 | `ReAvatars/` | 业务页 / `data-screen` |
|
|
175
|
+
| **ReBarcode** | 条形码 | `ReBarcode/` | `qrcode-barcode` |
|
|
176
|
+
| **ReCascader** | 级联选择 | `ReCascader/` | `form-advanced` |
|
|
177
|
+
| **ReCheckCard** | 卡片多选 | `ReCheckCard/` | `form-advanced` |
|
|
178
|
+
| **ReCollapsible** | 折叠 | `ReCollapsible/` | `form-advanced` |
|
|
179
|
+
| **ReDatePicker** | 日期 | `ReDatePicker/` | `form-advanced` |
|
|
180
|
+
| **ReDateRangePicker** | 日期范围 | `ReDateRangePicker/` | `form-advanced` |
|
|
181
|
+
| **ReDialog** | 弹窗(`fullscreen` 默认 false) | `ReDialog/` | `form-advanced` |
|
|
182
|
+
| **ReDialogResize** | 可缩放弹窗 | `ReDialogResize/` | `form-advanced` |
|
|
183
|
+
| **ReDragVerify** | 滑块拖拽验证 | `ReDragVerify/` | `verify-captcha` |
|
|
184
|
+
| **ReEchart** | ECharts 容器 | `ReEchart/` | `chart-echarts` |
|
|
185
|
+
| **ReFileViewer** | 文件预览 | `ReFileViewer/` | `file-management` |
|
|
186
|
+
| **ReFlicker** | 闪烁点 | `ReFlicker/` | `data-screen` |
|
|
187
|
+
| **ReGrid** | 响应式栅格 | `ReGrid/` | `crud-pages` |
|
|
188
|
+
| **ReGridItem** | 栅格子项 | `ReGridItem/` | `crud-pages` |
|
|
189
|
+
| **ReHeaderPage** | 页头 | `ReHeaderPage/` | `crud-pages` / `detail-page` |
|
|
190
|
+
| **ReIconPicker** | 图标选择 | `ReIconPicker/` | `icons` |
|
|
191
|
+
| **ReImageVerify** | 图形验证码 | `ReImageVerify/` | `verify-captcha` |
|
|
192
|
+
| **ReLanguageSwitch** | 语言切换 | `ReLanguageSwitch/` | `layout-theme` |
|
|
193
|
+
| **ReNoticeBar** | 通知栏 | `ReNoticeBar/` | `feedback-loading` |
|
|
194
|
+
| **RePagination** | 分页 | `RePagination/` | `crud-pages` |
|
|
195
|
+
| **RePopupPicker** | 移动端弹出选择 | `RePopupPicker/` | `mobile-h5` |
|
|
196
|
+
| **ReQrcode** | 二维码 | `ReQrcode/` | `qrcode-barcode` |
|
|
197
|
+
| **ReRichText** | 富文本 | `ReRichText/` | `rich-text` |
|
|
198
|
+
| **ReSeamlessScroll** | 无缝滚动 | `ReSeamlessScroll/` | `seamless-scroll` |
|
|
199
|
+
| **ReSegmented** | 分段控制 | `ReSegmented/` | `layout-theme` |
|
|
200
|
+
| **ReSelectQuery** | 远程分页选择 | `ReSelectQuery/` | `form-advanced` |
|
|
201
|
+
| **ReSelectVant** | 移动端选择 | `ReSelectVant/` | `mobile-h5` |
|
|
202
|
+
| **ReSmsCode** | 短信倒计时 | `ReSmsCode/` | `verify-captcha` |
|
|
203
|
+
| **ReSvgIcon** | SVG / Iconify | `ReSvgIcon/` | `icons` |
|
|
204
|
+
| **ReTableBar** | 表格工具栏 | `ReTableBar/` | `crud-pages` |
|
|
205
|
+
| **ReTableOperate** | 行操作 | `ReTableOperate/` | `crud-pages` |
|
|
206
|
+
| **ReText** | 文本省略 | `ReText/` | `layout-theme` |
|
|
207
|
+
| **ReTimeLine** | 时间轴 | `ReTimeLine/` | `detail-page` / 业务 |
|
|
208
|
+
| **ReTreeLine** | 树连线 | `ReTreeLine/` | `tree-table` |
|
|
209
|
+
| **ReTypeit** | 打字机 | `ReTypeit/` | `data-screen` |
|
|
210
|
+
| **ReVerify** | 拼图验证 | `ReVerify/` | `verify-captcha` |
|
|
211
|
+
|
|
212
|
+
路径前缀均为 `src/components/`。
|
|
211
213
|
|
|
212
214
|
---
|
|
213
215
|
|
|
@@ -217,7 +219,7 @@
|
|
|
217
219
|
|
|
218
220
|
| Hook | 用途 | 关键 API |
|
|
219
221
|
|---|---|---|
|
|
220
|
-
| **useApp** | 全局应用状态(布局、字典、登出等) | `baseCodeGet
|
|
222
|
+
| **useApp** | 全局应用状态(布局、字典、登出等) | `baseCodeGet`、`filterValue`、`svgLoading`、`layout`、`logout` 等;顶栏高度不由此导出 |
|
|
221
223
|
| **useDetail** | 列表→详情:写顶部 tag 并跳转 | `toDetail(name, params, title?, 'query'\|'params')`、`initToDetail(name)`、`getParameter`;路由配 `showLink:false`(不进侧栏)+`activePath`(见 `detail-page`) |
|
|
222
224
|
| **useFormCheck** | 多表单校验聚合 | 追踪各字段校验状态,emit `form-validate` 事件 |
|
|
223
225
|
| **useTableSearch** | 列表页搜索/分页/Loading/动态表高 | `content`(须绑 `el-card.vts-page-card`)、`multipleTableRef`(建议绑 `el-table`)、`otherRef`(表上方额外模块)、`tableHeight`(卡片底边 − 表格顶边 − 分页;空数据仍有占位高)、`paginationRef`、`tableData`、`pagination`、`loading`、`onSearch()`、`reset()`、`formRef`、`gridRef`、`collapsed` / `showCollapse` / `collapsedToggle` |
|
|
@@ -1,165 +1,67 @@
|
|
|
1
1
|
---
|
|
2
2
|
skill: ui-components
|
|
3
|
-
description:
|
|
3
|
+
description: Re* 公共组件目录/导出/类型约定;用法按功能模块分散在各 references,本文件只做索引与新建规范。
|
|
4
4
|
scope: project
|
|
5
5
|
tags: [vue3, component, re-component, library, typescript]
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
-
# Re*
|
|
8
|
+
# Re* 自定义组件
|
|
9
9
|
|
|
10
|
-
>
|
|
11
|
-
>
|
|
10
|
+
> **新建/改公共组件**时读本文件(目录与导出)。
|
|
11
|
+
> **业务用法与样板**不在此堆砌——按功能进对应模块(下表)。名录见 `project-inventory` 第二节。
|
|
12
12
|
|
|
13
|
-
##
|
|
13
|
+
## 用法按模块(禁止把示例全堆本文件)
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
| 功能 | 组件 | 读 |
|
|
16
|
+
|------|------|-----|
|
|
17
|
+
| 列表 / CRUD | ReTableBar、ReGrid、ReGridItem、RePagination、ReTableOperate、ReHeaderPage | `crud-pages` |
|
|
18
|
+
| 弹窗 / 高级表单 | ReDialog、ReDialogResize、ReSelectQuery、ReCascader、ReCheckCard、ReCollapsible、ReAnchor、ReDatePicker、ReDateRangePicker | `form-advanced` |
|
|
19
|
+
| 权限 | ReAuth | `permission-auth` |
|
|
20
|
+
| 图标 | ReSvgIcon、ReIconPicker | `icons` |
|
|
21
|
+
| 附件 / 预览 | ReAttachment、ReFileViewer | `file-management` |
|
|
22
|
+
| 富文本 | ReRichText | `rich-text` |
|
|
23
|
+
| 图表 | ReEchart | `chart-echarts` |
|
|
24
|
+
| 验证码 | ReVerify、ReDragVerify、ReImageVerify、ReSmsCode | `verify-captcha` |
|
|
25
|
+
| 码图 | ReQrcode、ReBarcode | `qrcode-barcode` |
|
|
26
|
+
| 无缝滚动 | ReSeamlessScroll | `seamless-scroll` |
|
|
27
|
+
| 树表 | ReTreeLine | `tree-table` |
|
|
28
|
+
| 布局壳辅助 | ReSegmented、ReLanguageSwitch、ReText、ReNoticeBar | `layout-theme`(展示类)+ 组件源码 |
|
|
29
|
+
| 移动端 | ReSelectVant、RePopupPicker | `mobile-h5` |
|
|
30
|
+
| 大屏点缀 | ReFlicker、ReTypeit、ReTimeLine、ReAvatars | `data-screen` / 对应业务页 |
|
|
16
31
|
|
|
17
|
-
|
|
18
|
-
src/components/RePagination/
|
|
19
|
-
├── src/
|
|
20
|
-
│ └── pagination.vue # 组件实现文件
|
|
21
|
-
├── index.ts # 统一导出入口
|
|
22
|
-
└── type.ts # 类型定义(Props / Emits / Slots)
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
### 规则说明
|
|
26
|
-
|
|
27
|
-
1. 组件目录使用大驼峰命名:`Re[ComponentName]`。
|
|
28
|
-
2. 组件实现文件放在 `src/` 子目录下,使用短横线命名:`pagination.vue`。
|
|
29
|
-
3. `index.ts` 是组件的唯一导出入口,外部通过 `import { RePagination } from "@/components/RePagination"` 引入。
|
|
30
|
-
4. `type.ts` 集中定义 Props、Emits、Slots 类型。
|
|
32
|
+
新建 Re* 后:在 `project-inventory` 第二节补一行,并在上表对应模块补用法(有则补强,无则新增小节)。
|
|
31
33
|
|
|
32
|
-
##
|
|
34
|
+
## 目录与导出
|
|
33
35
|
|
|
34
|
-
|
|
36
|
+
优先对齐仓库现有形态:
|
|
35
37
|
|
|
36
|
-
```typescript
|
|
37
|
-
// src/components/RePagination/index.ts
|
|
38
|
-
import pagination from "./src/pagination.vue";
|
|
39
|
-
|
|
40
|
-
export const RePagination = pagination;
|
|
41
|
-
export default RePagination;
|
|
42
38
|
```
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
```typescript
|
|
49
|
-
// src/components/ReDialog/index.ts
|
|
50
|
-
import dialog from "./src/dialog.vue";
|
|
51
|
-
import dialogHeader from "./src/dialog-header.vue";
|
|
52
|
-
|
|
53
|
-
export const ReDialog = dialog;
|
|
54
|
-
export const ReDialogHeader = dialogHeader;
|
|
55
|
-
export default ReDialog;
|
|
39
|
+
src/components/ReXxx/
|
|
40
|
+
├── src/index.vue # 或 src/xxx.vue(以该组件仓库为准)
|
|
41
|
+
├── index.ts # withInstall / 具名导出
|
|
42
|
+
├── type.ts # 可选;复杂 Props 必有
|
|
43
|
+
└── hook.ts # 可选
|
|
56
44
|
```
|
|
57
45
|
|
|
58
|
-
## 类型定义
|
|
59
|
-
|
|
60
|
-
### type.ts 标准写法
|
|
61
|
-
|
|
62
46
|
```typescript
|
|
63
|
-
//
|
|
64
|
-
import
|
|
47
|
+
// index.ts 常见写法
|
|
48
|
+
import { withInstall } from '@pureadmin/utils'
|
|
49
|
+
import comp from './src/index.vue'
|
|
65
50
|
|
|
66
|
-
export
|
|
67
|
-
|
|
68
|
-
currentPage: number;
|
|
69
|
-
/** 每页条数 */
|
|
70
|
-
pageSize: number;
|
|
71
|
-
/** 总条数 */
|
|
72
|
-
total: number;
|
|
73
|
-
/** 每页条数选项 */
|
|
74
|
-
pageSizes?: number[];
|
|
75
|
-
/** 是否显示总数 */
|
|
76
|
-
showTotal?: boolean;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
export interface RePaginationEmits {
|
|
80
|
-
(e: "update:currentPage", page: number): void;
|
|
81
|
-
(e: "update:pageSize", size: number): void;
|
|
82
|
-
(e: "change", page: number, size: number): void;
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
export type RePaginationInstance = ComponentPublicInstance<RePaginationProps>;
|
|
51
|
+
export const ReXxx = withInstall(comp)
|
|
52
|
+
export default ReXxx
|
|
86
53
|
```
|
|
87
54
|
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
1. Props 类型命名:`Re[ComponentName]Props`。
|
|
91
|
-
2. Emits 类型命名:`Re[ComponentName]Emits`,使用函数签名格式。
|
|
92
|
-
3. 如需在组件外部引用实例类型,导出 `Re[ComponentName]Instance`。
|
|
93
|
-
4. 每个 Props 字段必须写 JSDoc 注释说明用途。
|
|
94
|
-
|
|
95
|
-
## 组件实现模板
|
|
96
|
-
|
|
97
|
-
```vue
|
|
98
|
-
<script setup lang="ts">
|
|
99
|
-
import type { ReComponentNameProps, ReComponentNameEmits } from "../../type";
|
|
100
|
-
|
|
101
|
-
defineOptions({
|
|
102
|
-
name: "ReComponentName",
|
|
103
|
-
});
|
|
104
|
-
|
|
105
|
-
const props = withDefaults(defineProps<ReComponentNameProps>(), {
|
|
106
|
-
pageSizes: () => [10, 20, 50, 100],
|
|
107
|
-
showTotal: true,
|
|
108
|
-
});
|
|
109
|
-
|
|
110
|
-
const emit = defineEmits<ReComponentNameEmits>();
|
|
111
|
-
|
|
112
|
-
function handleChange(page: number, size: number) {
|
|
113
|
-
emit("update:currentPage", page);
|
|
114
|
-
emit("update:pageSize", size);
|
|
115
|
-
emit("change", page, size);
|
|
116
|
-
}
|
|
117
|
-
</script>
|
|
118
|
-
|
|
119
|
-
<template>
|
|
120
|
-
<div class="re-component-name">
|
|
121
|
-
<!-- 组件内容 -->
|
|
122
|
-
</div>
|
|
123
|
-
</template>
|
|
124
|
-
|
|
125
|
-
<style lang="scss" scoped>
|
|
126
|
-
.re-component-name {
|
|
127
|
-
/* 样式 */
|
|
128
|
-
}
|
|
129
|
-
</style>
|
|
130
|
-
```
|
|
55
|
+
规则:大驼峰目录名;外部只从 `@/components/ReXxx` 引入;`defineOptions({ name })`;样式默认 `scoped`。
|
|
131
56
|
|
|
132
|
-
##
|
|
57
|
+
## 类型
|
|
133
58
|
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
| ReDialog | 弹窗 | 拖拽、全屏、表单嵌套 |
|
|
137
|
-
| RePagination | 分页 | 配合 useTableSearch |
|
|
138
|
-
| ReTableBar | 表格工具栏 | 列配置、密度、全屏 |
|
|
139
|
-
| ReGrid | 数据表格 | 基于 el-table 封装 |
|
|
140
|
-
| ReTableOperate | 操作列 | 按钮组、权限控制 |
|
|
141
|
-
| ReSelectQuery | 查询选择器 | 下拉+搜索+分页 |
|
|
142
|
-
| ReCascader | 级联选择 | 支持异步加载 |
|
|
143
|
-
| ReRichText | 富文本编辑器 | 基于 wangEditor |
|
|
144
|
-
| ReQrcode | 二维码 | 支持 Logo 嵌入 |
|
|
145
|
-
| ReBarcode | 条形码 | 多种编码格式 |
|
|
146
|
-
| ReVerify | 验证码 | 图形/滑块/拖拽验证 |
|
|
147
|
-
| ReSeamlessScroll | 无缝滚动 | 支持多方向 |
|
|
148
|
-
| ReNoticeBar | 通知栏 | 滚动/关闭 |
|
|
149
|
-
| ReIconPicker | 图标选择器 | 完整规范见 `icons` 模块 |
|
|
150
|
-
| ReSvgIcon | 全局 svg-icon | 本地 + Iconify;见 `icons` |
|
|
151
|
-
| ReSegmented | 分段控制器 | 自定义选项 |
|
|
152
|
-
| ReCheckCard | 多选卡片 | 卡片式选择 |
|
|
153
|
-
| ReTreeLine | 树形连线 | 树结构可视化 |
|
|
154
|
-
| ReFlicker | 闪烁效果 | 数据大屏常用 |
|
|
155
|
-
| ReTypeit | 打字效果 | 逐字显示动画 |
|
|
156
|
-
| ReAuth | 权限组件 | 按钮级权限控制 |
|
|
59
|
+
- `ReXxxProps` / `ReXxxEmits`;字段 JSDoc
|
|
60
|
+
- 需要实例类型时导出 `ReXxxInstance`
|
|
157
61
|
|
|
158
|
-
##
|
|
62
|
+
## 反例
|
|
159
63
|
|
|
160
|
-
-
|
|
161
|
-
-
|
|
162
|
-
-
|
|
163
|
-
-
|
|
164
|
-
- 组件 class 名没有使用 `re-` 前缀。
|
|
165
|
-
- Props 字段没有 JSDoc 注释。
|
|
64
|
+
- 业务直接 `import …/src/index.vue`
|
|
65
|
+
- 无 `index.ts`
|
|
66
|
+
- 重复造已有 Re*(先查 inventory)
|
|
67
|
+
- 在本文件粘贴各模块完整业务样板(应写到对应功能模块)
|