@zeyue0329/xiaoma-cli 1.21.0 → 1.22.0
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/package.json +1 -1
- package/src/zqyl-skills/backend/components/xiaoma-zqyl-bar-chart-backend/SKILL.md +142 -0
- package/src/zqyl-skills/backend/components/xiaoma-zqyl-button-backend/SKILL.md +108 -0
- package/src/zqyl-skills/backend/components/xiaoma-zqyl-collapse-backend/SKILL.md +142 -0
- package/src/zqyl-skills/backend/components/xiaoma-zqyl-container-foot-backend/SKILL.md +192 -0
- package/src/zqyl-skills/backend/components/xiaoma-zqyl-data-census-backend/SKILL.md +104 -0
- package/src/zqyl-skills/backend/components/xiaoma-zqyl-dialog-backend/SKILL.md +205 -0
- package/src/zqyl-skills/backend/components/xiaoma-zqyl-drawer-backend/SKILL.md +100 -0
- package/src/zqyl-skills/backend/components/xiaoma-zqyl-empty-page-backend/SKILL.md +131 -0
- package/src/zqyl-skills/backend/components/xiaoma-zqyl-file-upload-backend/SKILL.md +291 -0
- package/src/zqyl-skills/backend/components/xiaoma-zqyl-flow-chart-backend/SKILL.md +118 -0
- package/src/zqyl-skills/backend/components/xiaoma-zqyl-form-editor-backend/SKILL.md +315 -0
- package/src/zqyl-skills/backend/components/xiaoma-zqyl-form-view-backend/SKILL.md +165 -0
- package/src/zqyl-skills/backend/components/xiaoma-zqyl-funnel-chart-backend/SKILL.md +102 -0
- package/src/zqyl-skills/backend/components/xiaoma-zqyl-gauge-chart-backend/SKILL.md +103 -0
- package/src/zqyl-skills/backend/components/xiaoma-zqyl-heatmap-chart-backend/SKILL.md +125 -0
- package/src/zqyl-skills/backend/components/xiaoma-zqyl-line-chart-backend/SKILL.md +136 -0
- package/src/zqyl-skills/backend/components/xiaoma-zqyl-map-chart-backend/SKILL.md +130 -0
- package/src/zqyl-skills/backend/components/xiaoma-zqyl-message-feedback-backend/SKILL.md +63 -0
- package/src/zqyl-skills/backend/components/xiaoma-zqyl-module-backend/SKILL.md +180 -0
- package/src/zqyl-skills/backend/components/xiaoma-zqyl-pie-chart-backend/SKILL.md +132 -0
- package/src/zqyl-skills/backend/components/xiaoma-zqyl-popover-backend/SKILL.md +61 -0
- package/src/zqyl-skills/backend/components/xiaoma-zqyl-preview-backend/SKILL.md +117 -0
- package/src/zqyl-skills/backend/components/xiaoma-zqyl-search-form-backend/SKILL.md +239 -0
- package/src/zqyl-skills/backend/components/xiaoma-zqyl-select-tree-backend/SKILL.md +161 -0
- package/src/zqyl-skills/backend/components/xiaoma-zqyl-table-simple-backend/SKILL.md +341 -0
- package/src/zqyl-skills/backend/components/xiaoma-zqyl-tips-backend/SKILL.md +257 -0
- package/src/zqyl-skills/backend/components/xiaoma-zqyl-title-backend/SKILL.md +145 -0
- package/src/zqyl-skills/backend/xiaoma-zqyl-feedback-page-backend/SKILL.md +30 -0
- package/src/zqyl-skills/backend/xiaoma-zqyl-feedback-page-backend/pages/feedbackPage.md +124 -0
- package/src/zqyl-skills/backend/xiaoma-zqyl-form-detail-page-backend/SKILL.md +39 -0
- package/src/zqyl-skills/backend/xiaoma-zqyl-form-detail-page-backend/pages/formDetailPage.md +354 -0
- package/src/zqyl-skills/backend/xiaoma-zqyl-import-dialog-page-backend/SKILL.md +27 -0
- package/src/zqyl-skills/backend/xiaoma-zqyl-import-dialog-page-backend/pages/importDialogPage.md +101 -0
- package/src/zqyl-skills/backend/xiaoma-zqyl-list-page-backend/SKILL.md +31 -0
- package/src/zqyl-skills/backend/xiaoma-zqyl-list-page-backend/pages/listPage.md +306 -0
- package/src/zqyl-skills/front/components/xiaoma-zqyl-bar-chart-front/SKILL.md +142 -0
- package/src/zqyl-skills/front/components/xiaoma-zqyl-button-front/SKILL.md +108 -0
- package/src/zqyl-skills/front/components/xiaoma-zqyl-collapse-front/SKILL.md +142 -0
- package/src/zqyl-skills/front/components/xiaoma-zqyl-container-foot-front/SKILL.md +192 -0
- package/src/zqyl-skills/front/components/xiaoma-zqyl-data-census-front/SKILL.md +104 -0
- package/src/zqyl-skills/front/components/xiaoma-zqyl-dialog-front/SKILL.md +205 -0
- package/src/zqyl-skills/front/components/xiaoma-zqyl-drawer-front/SKILL.md +100 -0
- package/src/zqyl-skills/front/components/xiaoma-zqyl-empty-page-front/SKILL.md +131 -0
- package/src/zqyl-skills/front/components/xiaoma-zqyl-file-upload-front/SKILL.md +291 -0
- package/src/zqyl-skills/front/components/xiaoma-zqyl-flow-chart-front/SKILL.md +118 -0
- package/src/zqyl-skills/front/components/xiaoma-zqyl-form-editor-front/SKILL.md +315 -0
- package/src/zqyl-skills/front/components/xiaoma-zqyl-form-view-front/SKILL.md +165 -0
- package/src/zqyl-skills/front/components/xiaoma-zqyl-funnel-chart-front/SKILL.md +102 -0
- package/src/zqyl-skills/front/components/xiaoma-zqyl-gauge-chart-front/SKILL.md +103 -0
- package/src/zqyl-skills/front/components/xiaoma-zqyl-heatmap-chart-front/SKILL.md +125 -0
- package/src/zqyl-skills/front/components/xiaoma-zqyl-line-chart-front/SKILL.md +136 -0
- package/src/zqyl-skills/front/components/xiaoma-zqyl-map-chart-front/SKILL.md +130 -0
- package/src/zqyl-skills/front/components/xiaoma-zqyl-message-feedback-front/SKILL.md +63 -0
- package/src/zqyl-skills/front/components/xiaoma-zqyl-module-front/SKILL.md +180 -0
- package/src/zqyl-skills/front/components/xiaoma-zqyl-pie-chart-front/SKILL.md +132 -0
- package/src/zqyl-skills/front/components/xiaoma-zqyl-popover-front/SKILL.md +61 -0
- package/src/zqyl-skills/front/components/xiaoma-zqyl-preview-front/SKILL.md +117 -0
- package/src/zqyl-skills/front/components/xiaoma-zqyl-search-form-front/SKILL.md +239 -0
- package/src/zqyl-skills/front/components/xiaoma-zqyl-select-tree-front/SKILL.md +161 -0
- package/src/zqyl-skills/front/components/xiaoma-zqyl-table-simple-front/SKILL.md +341 -0
- package/src/zqyl-skills/front/components/xiaoma-zqyl-tips-front/SKILL.md +257 -0
- package/src/zqyl-skills/front/components/xiaoma-zqyl-title-front/SKILL.md +145 -0
- package/src/zqyl-skills/front/xiaoma-zqyl-feedback-page-front/SKILL.md +30 -0
- package/src/zqyl-skills/front/xiaoma-zqyl-feedback-page-front/pages/feedbackPage.md +124 -0
- package/src/zqyl-skills/front/xiaoma-zqyl-form-detail-page-front/SKILL.md +39 -0
- package/src/zqyl-skills/front/xiaoma-zqyl-form-detail-page-front/pages/formDetailPage.md +351 -0
- package/src/zqyl-skills/front/xiaoma-zqyl-import-dialog-page-front/SKILL.md +27 -0
- package/src/zqyl-skills/front/xiaoma-zqyl-import-dialog-page-front/pages/importDialogPage.md +101 -0
- package/src/zqyl-skills/front/xiaoma-zqyl-list-page-front/SKILL.md +31 -0
- package/src/zqyl-skills/front/xiaoma-zqyl-list-page-front/pages/listPage.md +380 -0
- package/src/zqyl-skills/mid/components/xiaoma-zqyl-bar-chart-mid/SKILL.md +142 -0
- package/src/zqyl-skills/mid/components/xiaoma-zqyl-button-mid/SKILL.md +108 -0
- package/src/zqyl-skills/mid/components/xiaoma-zqyl-collapse-mid/SKILL.md +142 -0
- package/src/zqyl-skills/mid/components/xiaoma-zqyl-container-foot-mid/SKILL.md +192 -0
- package/src/zqyl-skills/mid/components/xiaoma-zqyl-data-census-mid/SKILL.md +104 -0
- package/src/zqyl-skills/mid/components/xiaoma-zqyl-dialog-mid/SKILL.md +205 -0
- package/src/zqyl-skills/mid/components/xiaoma-zqyl-drawer-mid/SKILL.md +100 -0
- package/src/zqyl-skills/mid/components/xiaoma-zqyl-empty-page-mid/SKILL.md +131 -0
- package/src/zqyl-skills/mid/components/xiaoma-zqyl-file-upload-mid/SKILL.md +291 -0
- package/src/zqyl-skills/mid/components/xiaoma-zqyl-flow-chart-mid/SKILL.md +118 -0
- package/src/zqyl-skills/mid/components/xiaoma-zqyl-form-editor-mid/SKILL.md +315 -0
- package/src/zqyl-skills/mid/components/xiaoma-zqyl-form-view-mid/SKILL.md +165 -0
- package/src/zqyl-skills/mid/components/xiaoma-zqyl-funnel-chart-mid/SKILL.md +102 -0
- package/src/zqyl-skills/mid/components/xiaoma-zqyl-gauge-chart-mid/SKILL.md +103 -0
- package/src/zqyl-skills/mid/components/xiaoma-zqyl-heatmap-chart-mid/SKILL.md +125 -0
- package/src/zqyl-skills/mid/components/xiaoma-zqyl-line-chart-mid/SKILL.md +136 -0
- package/src/zqyl-skills/mid/components/xiaoma-zqyl-manager-title-mid/SKILL.md +132 -0
- package/src/zqyl-skills/mid/components/xiaoma-zqyl-map-chart-mid/SKILL.md +130 -0
- package/src/zqyl-skills/mid/components/xiaoma-zqyl-message-feedback-mid/SKILL.md +63 -0
- package/src/zqyl-skills/mid/components/xiaoma-zqyl-module-mid/SKILL.md +180 -0
- package/src/zqyl-skills/mid/components/xiaoma-zqyl-mps-table-mid/SKILL.md +179 -0
- package/src/zqyl-skills/mid/components/xiaoma-zqyl-pie-chart-mid/SKILL.md +132 -0
- package/src/zqyl-skills/mid/components/xiaoma-zqyl-popover-mid/SKILL.md +61 -0
- package/src/zqyl-skills/mid/components/xiaoma-zqyl-preview-mid/SKILL.md +117 -0
- package/src/zqyl-skills/mid/components/xiaoma-zqyl-search-form-mid/SKILL.md +239 -0
- package/src/zqyl-skills/mid/components/xiaoma-zqyl-select-tree-mid/SKILL.md +161 -0
- package/src/zqyl-skills/mid/components/xiaoma-zqyl-table-simple-mid/SKILL.md +341 -0
- package/src/zqyl-skills/mid/components/xiaoma-zqyl-tips-mid/SKILL.md +257 -0
- package/src/zqyl-skills/mid/components/xiaoma-zqyl-title-mid/SKILL.md +145 -0
- package/src/zqyl-skills/mid/xiaoma-zqyl-feedback-page-mid/SKILL.md +30 -0
- package/src/zqyl-skills/mid/xiaoma-zqyl-feedback-page-mid/pages/feedbackPage.md +125 -0
- package/src/zqyl-skills/mid/xiaoma-zqyl-form-detail-page-mid/SKILL.md +39 -0
- package/src/zqyl-skills/mid/xiaoma-zqyl-form-detail-page-mid/pages/formDetailPage.md +357 -0
- package/src/zqyl-skills/mid/xiaoma-zqyl-import-dialog-page-mid/SKILL.md +27 -0
- package/src/zqyl-skills/mid/xiaoma-zqyl-import-dialog-page-mid/pages/importDialogPage.md +102 -0
- package/src/zqyl-skills/mid/xiaoma-zqyl-list-page-mid/SKILL.md +30 -0
- package/src/zqyl-skills/mid/xiaoma-zqyl-list-page-mid/pages/listPage.md +389 -0
- package/src/zqyl-skills/module-help.csv +15 -0
- package/src/zqyl-skills/module.yaml +38 -0
- package/src/zqyl-skills/xiaoma-zqyl-ui-spec/SKILL.md +478 -0
- package/src/zqyl-skills/xiaoma-zqyl-ui-spec/VERSION.md +30 -0
- package/src/zqyl-skills/xiaoma-zqyl-ui-spec/components-index.md +55 -0
- package/src/zqyl-skills/xiaoma-zqyl-ui-spec/design-tokens.md +167 -0
- package/src/zqyl-skills/xiaoma-zqyl-ui-spec/reference.md +385 -0
- package/tools/installer/core/manifest.js +4 -3
- package/tools/installer/list-options.js +2 -2
- package/tools/installer/modules/official-modules.js +15 -47
- package/tools/installer/modules/version-resolver.js +2 -2
- package/tools/installer/project-root.js +12 -9
- package/tools/installer/ui.js +2 -1
- package/tools/validate-zqyl-pack.js +171 -0
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: xiaoma-zqyl-data-census-backend
|
|
3
|
+
description: 后台指标摘要卡片(描述 + 数值)的 Vue2 实现规范(ylDataCensus)。在用户提及 ylDataCensus、yl-data-census、数据统计、指标摘要、仪表盘统计区,或需要在后台实现该组件时使用。适用于后台管理端仓库(如 zqyl-manager,platformType `yxManager`;页头/表格用 ylTitle + ylTableSimple)。 Use when implementing or reviewing the data-census (ylDataCensus) component on a ZQYL backend page.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 数据统计(后台)
|
|
7
|
+
|
|
8
|
+
你是一个前端组件实现与改造助手。你必须严格按本技能的规则输出。
|
|
9
|
+
|
|
10
|
+
## 适用范围
|
|
11
|
+
- 平台:后台
|
|
12
|
+
- platformType:`yxManager`
|
|
13
|
+
- 组件条目:`dataCensus`
|
|
14
|
+
|
|
15
|
+
## 目标
|
|
16
|
+
- 当用户提到该组件/场景时,给出可落地的 Vue2 + Element UI + zqyl-component-base 代码片段与参数建议。
|
|
17
|
+
- 不改变业务行为,仅替换/补齐结构与交互规范。
|
|
18
|
+
|
|
19
|
+
## 组件注册(必读)
|
|
20
|
+
|
|
21
|
+
- `zqyl-component-base` 公共组件在**项目入口**按组件名逐个 `import 'zqyl-component-base/lib/<ComponentName>'` + `Vue.component` 注册;样式在入口引入 `component.css`。
|
|
22
|
+
- **禁止** `import zqylComponentBase from 'zqyl-component-base'` + `Vue.use(zqylComponentBase)`;页面模板直接使用 `<yl-*>`,**勿**单页重复 import。
|
|
23
|
+
- 生成前先检查入口是否已注册本页用到的组件;缺失则仅在入口补注册。
|
|
24
|
+
|
|
25
|
+
## 输出要求
|
|
26
|
+
- 回答用户时:根据用户输入与页面场景,只输出**一段**最符合需求的 Vue 代码(可直接粘贴),并简要说明关键 props/注意事项。
|
|
27
|
+
- 不要在一次回答中罗列多种候选实现;不要输出“变体 A/B/C/D”或“方案一/方案二”等对比式内容。
|
|
28
|
+
- 本技能文档「示例」章节含多种参考写法,仅供你内部分析选型;**不得**把多个示例原样全部贴给用户。
|
|
29
|
+
- 示例代码必须可直接粘贴使用(Vue2 单文件组件片段)。
|
|
30
|
+
|
|
31
|
+
## 数据与接口(禁止 mock)
|
|
32
|
+
|
|
33
|
+
- **禁止**在生成业务页面中填充 mock、演示、假数据或静态业务行(如手写 `loadData: [{ companyName: 'xxx' }]`、`reqData` 示例值、`mounted` 里写死 `total` 等)。
|
|
34
|
+
- 列表/表格:`tableData.loadData` 保持 `[]`,数据由 `ylTableSimple` / `ylMpsTable` 通过 `searchParmas.request` / `queryListUrl` **调接口**获取;`request.url` / `queryListUrl` 写项目已有 `INTERFACE.xxx`,未知时留 `''` 并注释 `// TODO: 补充接口常量`。
|
|
35
|
+
- 查询区:`searchParmas.request` 配置 `url`、`type`、`method`、`options`;有 `url` 时 `:load="true"`(或省略,默认加载),由组件触发查询。
|
|
36
|
+
- 表单详情:`reqData` / 表单 model 初始 `{}` 或字段空值;在 `created` / `mounted` 调详情接口赋值;**禁止**预填示例姓名、金额等。
|
|
37
|
+
- 下拉/枚举:`select` 的 `data` 从字典或接口加载,无数据时 `data: []`;**禁止**写死 `{ name: '待审核', code: '1' }` 类占位项(除非需求明确给定静态枚举)。
|
|
38
|
+
- 统计区 `ylDataCensus`:`:list` 由接口或 `computed` 赋值,**禁止**手写示例金额/数量。
|
|
39
|
+
- 动态行表格:`detailRows` 等初始 `[]`,由接口回显或用户操作增删。
|
|
40
|
+
- 本 skill「示例」章节的静态数据**仅供理解组件 API**;生成业务页面时**不得**照搬进 `data()`。
|
|
41
|
+
|
|
42
|
+
## 何时使用(智能体选择规则)
|
|
43
|
+
|
|
44
|
+
当需求/页面出现以下任一信号时,必须优先调用本 skills 并按规则产出代码:
|
|
45
|
+
- 列表页/详情页顶部需要展示若干**指标摘要**(描述 + 数值),无复杂交互。
|
|
46
|
+
- 数据面板、仪表盘统计区、待办/状态数量概览。
|
|
47
|
+
- 用户提到「yl-data-census」、「ylDataCensus」、「数据统计」卡片时。
|
|
48
|
+
|
|
49
|
+
不适用:趋势图、对比图、可钻取分析 → 使用 ECharts 或业务定制模块。
|
|
50
|
+
|
|
51
|
+
## API(ylDataCensus)
|
|
52
|
+
|
|
53
|
+
> 标签:`<yl-data-census>` / `ylDataCensus`;须在入口 `import ylDataCensus from 'zqyl-component-base/lib/ylDataCensus'` + `Vue.component('ylDataCensus', ylDataCensus)` 注册;页面模板直接使用,**勿**单页 import;**禁止**全量 `Vue.use(zqylComponentBase)`。
|
|
54
|
+
|
|
55
|
+
### Props
|
|
56
|
+
|
|
57
|
+
| 属性名 | 类型 | 默认值 | 说明 |
|
|
58
|
+
| --- | --- | --- | --- |
|
|
59
|
+
| `list` | Array | `null` | 指标列表(**必填**,勿传空数组) |
|
|
60
|
+
| `title` | Boolean | `false` | 是否显示标题区(为 `true` 时顶部展示「数据统计」) |
|
|
61
|
+
|
|
62
|
+
### `list[]` 项字段
|
|
63
|
+
|
|
64
|
+
| 字段 | 类型 | 说明 |
|
|
65
|
+
| --- | --- | --- |
|
|
66
|
+
| `describe` | String | 指标描述文案 |
|
|
67
|
+
| `data` | String \| Number | 指标值;金额等建议在业务层格式化后传入 |
|
|
68
|
+
|
|
69
|
+
### Events / Slots / Methods
|
|
70
|
+
|
|
71
|
+
无对外事件、插槽与方法(以组件库为准)。
|
|
72
|
+
|
|
73
|
+
### 样式与布局(以组件库为准)
|
|
74
|
+
|
|
75
|
+
- 容器:`el-card` + Element 栅格;列宽约 `24 / list.length`。
|
|
76
|
+
- 数据项之间使用左边框分隔;`title` 为 true 时标题约 14px bold,下边框 `1px solid #F2F2F2`。
|
|
77
|
+
- 描述约 14px / `#909399`;数值约 24px bold / `#303133`。
|
|
78
|
+
|
|
79
|
+
## 示例(参考写法,回答用户时只选用其中一种)
|
|
80
|
+
|
|
81
|
+
### 基础用法(无标题)
|
|
82
|
+
```vue
|
|
83
|
+
<yl-data-census :list="dataList" />
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
// dataList: 由接口赋值,项为 { describe, data }
|
|
87
|
+
|
|
88
|
+
### 带标题
|
|
89
|
+
```vue
|
|
90
|
+
<yl-data-census :list="dataList" :title="true" />
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
### 金额类指标(字符串格式化)
|
|
94
|
+
```vue
|
|
95
|
+
<yl-data-census :list="censusList" />
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
// censusList: 由接口赋值,金额类 data 可为格式化字符串
|
|
99
|
+
|
|
100
|
+
## 注意事项
|
|
101
|
+
- `list` 由接口或 `computed` 赋值;**禁止**手写示例指标;接口未就绪时 `list: []`,待 `created`/`mounted` 请求后更新。
|
|
102
|
+
- 同一页面多处统计卡时,保持 `list` 长度一致,避免栅格列宽跳动。
|
|
103
|
+
- `title` 为 `true` 时展示内置标题「数据统计」;列表页概览常用无标题或带标题两种。
|
|
104
|
+
- 金额、百分比等在业务层格式化为字符串再传入;组件仅负责展示,无点击事件。
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: xiaoma-zqyl-dialog-backend
|
|
3
|
+
description: 后台弹窗(确认/取消、表格选择、表单编辑、关闭前确认)的 Vue2 实现规范(ylDialog)。在用户提及 ylDialog、yl-dialog、弹窗、对话框、表格选择弹窗,或需要在后台实现该组件时使用。适用于后台管理端仓库(如 zqyl-manager,platformType `yxManager`;页头/表格用 ylTitle + ylTableSimple)。 Use when implementing or reviewing the dialog (ylDialog) component on a ZQYL backend page.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 弹窗(后台)
|
|
7
|
+
|
|
8
|
+
你是一个前端组件实现与改造助手。你必须严格按本技能的规则输出。
|
|
9
|
+
|
|
10
|
+
## 适用范围
|
|
11
|
+
- 平台:后台
|
|
12
|
+
- platformType:`yxManager`
|
|
13
|
+
- 组件条目:`dialog`
|
|
14
|
+
|
|
15
|
+
## 目标
|
|
16
|
+
- 当用户提到该组件/场景时,给出可落地的 Vue2 + Element UI + zqyl-component-base 代码片段与参数建议。
|
|
17
|
+
- 不改变业务行为,仅替换/补齐结构与交互规范。
|
|
18
|
+
|
|
19
|
+
## 组件注册(必读)
|
|
20
|
+
|
|
21
|
+
- `zqyl-component-base` 公共组件在**项目入口**按组件名逐个 `import 'zqyl-component-base/lib/<ComponentName>'` + `Vue.component` 注册;样式在入口引入 `component.css`。
|
|
22
|
+
- **禁止** `import zqylComponentBase from 'zqyl-component-base'` + `Vue.use(zqylComponentBase)`;页面模板直接使用 `<yl-*>`,**勿**单页重复 import。
|
|
23
|
+
- 生成前先检查入口是否已注册本页用到的组件;缺失则仅在入口补注册。
|
|
24
|
+
|
|
25
|
+
## 输出要求
|
|
26
|
+
- 回答用户时:根据用户输入与页面场景,只输出**一段**最符合需求的 Vue 代码(可直接粘贴),并简要说明关键 props/注意事项。
|
|
27
|
+
- 不要在一次回答中罗列多种候选实现;不要输出“变体 A/B/C/D”或“方案一/方案二”等对比式内容。
|
|
28
|
+
- 本技能文档「示例」章节含多种参考写法,仅供你内部分析选型;**不得**把多个示例原样全部贴给用户。
|
|
29
|
+
- 示例代码必须可直接粘贴使用(Vue2 单文件组件片段)。
|
|
30
|
+
|
|
31
|
+
## 数据与接口(禁止 mock)
|
|
32
|
+
|
|
33
|
+
- **禁止**在生成业务页面中填充 mock、演示、假数据或静态业务行(如手写 `loadData: [{ companyName: 'xxx' }]`、`reqData` 示例值、`mounted` 里写死 `total` 等)。
|
|
34
|
+
- 列表/表格:`tableData.loadData` 保持 `[]`,数据由 `ylTableSimple` / `ylMpsTable` 通过 `searchParmas.request` / `queryListUrl` **调接口**获取;`request.url` / `queryListUrl` 写项目已有 `INTERFACE.xxx`,未知时留 `''` 并注释 `// TODO: 补充接口常量`。
|
|
35
|
+
- 查询区:`searchParmas.request` 配置 `url`、`type`、`method`、`options`;有 `url` 时 `:load="true"`(或省略,默认加载),由组件触发查询。
|
|
36
|
+
- 表单详情:`reqData` / 表单 model 初始 `{}` 或字段空值;在 `created` / `mounted` 调详情接口赋值;**禁止**预填示例姓名、金额等。
|
|
37
|
+
- 下拉/枚举:`select` 的 `data` 从字典或接口加载,无数据时 `data: []`;**禁止**写死 `{ name: '待审核', code: '1' }` 类占位项(除非需求明确给定静态枚举)。
|
|
38
|
+
- 统计区 `ylDataCensus`:`:list` 由接口或 `computed` 赋值,**禁止**手写示例金额/数量。
|
|
39
|
+
- 动态行表格:`detailRows` 等初始 `[]`,由接口回显或用户操作增删。
|
|
40
|
+
- 本 skill「示例」章节的静态数据**仅供理解组件 API**;生成业务页面时**不得**照搬进 `data()`。
|
|
41
|
+
|
|
42
|
+
## 示例(参考写法,回答用户时只选用其中一种)
|
|
43
|
+
|
|
44
|
+
## 何时使用(智能体选择规则)
|
|
45
|
+
|
|
46
|
+
当需求/页面出现以下任一信号时,必须优先调用本 skills 并按规则产出代码:
|
|
47
|
+
- 需要弹窗承载内容区 + 底部按钮(确认/取消/关闭)。
|
|
48
|
+
- 表格选择(单选/多选),且未选中时底部主操作需置灰。
|
|
49
|
+
- 弹窗内表单编辑(建议两列以内)、或需在关闭前二次确认。
|
|
50
|
+
- 弹窗内需要放查询条件、标签切换、合计等组合内容。
|
|
51
|
+
- 弹窗内表格展示(含附件列表、选择列表、只读明细等)。
|
|
52
|
+
|
|
53
|
+
约束:只要是弹窗场景,一律使用 `ylDialog` / `<yl-dialog>`(不要直接使用 Element `el-dialog`)。
|
|
54
|
+
约束:弹窗内表格遵循 **`xiaoma-zqyl-table-simple-backend`** 全页表格优先级:优先 `ylTableSimple`,勿用 `el-table`;行内操作用 `attr.type: 'handle'`。
|
|
55
|
+
|
|
56
|
+
## API(ylDialog)
|
|
57
|
+
|
|
58
|
+
> 标签:`<yl-dialog>` / `ylDialog`;须在入口 `import ylDialog from 'zqyl-component-base/lib/ylDialog'` + `Vue.component('ylDialog', ylDialog)` 注册;页面模板直接使用,**勿**单页 import;**禁止**全量 `Vue.use(zqylComponentBase)`。
|
|
59
|
+
|
|
60
|
+
### Props
|
|
61
|
+
- `visible: boolean` 是否显示;建议使用 `:visible.sync`
|
|
62
|
+
- `attributes: object` 透传给 `el-dialog`(与 `$attrs` 合并),如 `width` / `title` / `closeOnClickModal` 等
|
|
63
|
+
- `dialogTitleDate: object|null` 自定义标题区;常用字段:`type` / `title` / `icon` / `color`
|
|
64
|
+
- `showClose: boolean` 是否显示关闭按钮,默认 `true`
|
|
65
|
+
- `beforeClose: Function` 关闭回调;若传入,关闭时仅调用该函数,不会自动同步 `visible`
|
|
66
|
+
- `appendToBody: boolean` 同 `el-dialog`
|
|
67
|
+
- `botSpace: boolean` 是否保留底部间距,默认 `true`
|
|
68
|
+
|
|
69
|
+
### Events
|
|
70
|
+
- `update:visible`(`.sync` 用于可见性同步)
|
|
71
|
+
- `open` / `opened` / `close` / `closed`(透传自 `el-dialog`)
|
|
72
|
+
|
|
73
|
+
### Slots
|
|
74
|
+
- `default` 主体内容
|
|
75
|
+
- `subTitle` 标题行内副标题(`#subTitle` 插槽,内容用公共 class `sub-title` 包裹)
|
|
76
|
+
- `footer` 底部操作区
|
|
77
|
+
|
|
78
|
+
### 基础对话框
|
|
79
|
+
```vue
|
|
80
|
+
<yl-dialog
|
|
81
|
+
:visible.sync="dialogVisible"
|
|
82
|
+
:attributes="{ width: '600px', title: '标题', closeOnClickModal: false }"
|
|
83
|
+
>
|
|
84
|
+
<div>内容</div>
|
|
85
|
+
<div slot="footer" class="text-right">
|
|
86
|
+
<el-button size="small" @click="dialogVisible = false">取消</el-button>
|
|
87
|
+
<el-button size="small" type="primary" @click="dialogVisible = false">确定</el-button>
|
|
88
|
+
</div>
|
|
89
|
+
</yl-dialog>
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
### 状态标题 / 隐藏标题
|
|
93
|
+
```vue
|
|
94
|
+
<!-- success / warning / error -->
|
|
95
|
+
<yl-dialog
|
|
96
|
+
:visible.sync="visible"
|
|
97
|
+
:dialog-title-date="{ type: 'success', title: '操作成功' }"
|
|
98
|
+
:attributes="{ width: '600px' }"
|
|
99
|
+
/>
|
|
100
|
+
|
|
101
|
+
<!-- type: hidden 隐藏原生标题栏 -->
|
|
102
|
+
<yl-dialog :dialog-title-date="{ type: 'hidden' }" :attributes="{ width: '600px' }" />
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
### 副标题(subTitle 插槽)
|
|
106
|
+
```vue
|
|
107
|
+
<yl-dialog
|
|
108
|
+
:visible.sync="visible"
|
|
109
|
+
:attributes="{ title: '标题', width: '600px' }"
|
|
110
|
+
>
|
|
111
|
+
<template slot="subTitle">
|
|
112
|
+
<div class="sub-title">这是对话框的副标题</div>
|
|
113
|
+
</template>
|
|
114
|
+
<div>内容</div>
|
|
115
|
+
</yl-dialog>
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
- 副标题须用 `#subTitle` 插槽 + 公共 class `sub-title`(组件库已定义样式,勿自定义 class)。
|
|
119
|
+
|
|
120
|
+
### 只读表格弹窗(无底部操作按钮)
|
|
121
|
+
```vue
|
|
122
|
+
<yl-dialog :visible.sync="visible" :attributes="{ title: '查看明细', width: '900px' }">
|
|
123
|
+
<yl-table-simple :data="tableData" :page="true" />
|
|
124
|
+
</yl-dialog>
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
- 只读查看时不使用 `#footer` 插槽;关闭依赖标题栏 × 或 `visible.sync`;此时 `el-dialog__body` 保留 **24px** 底边距。
|
|
128
|
+
|
|
129
|
+
### 表格选择弹窗(单选 / 多选,未选时按钮置灰)
|
|
130
|
+
```vue
|
|
131
|
+
<yl-dialog :visible.sync="visible" :attributes="{ title: '选择企业', width: '900px' }">
|
|
132
|
+
<yl-table-simple :data="tableData" :page="true" @changeRadioData="onRadio" />
|
|
133
|
+
<div slot="footer" class="text-right">
|
|
134
|
+
<el-button size="small" @click="visible = false">取消</el-button>
|
|
135
|
+
<el-button size="small" type="primary" :disabled="!selectedRow" @click="confirm">确定</el-button>
|
|
136
|
+
</div>
|
|
137
|
+
</yl-dialog>
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
### 关闭前确认(beforeClose)
|
|
141
|
+
```vue
|
|
142
|
+
<yl-dialog
|
|
143
|
+
:visible.sync="visible"
|
|
144
|
+
:attributes="{ title: '编辑', width: '600px' }"
|
|
145
|
+
:before-close="handleBeforeClose"
|
|
146
|
+
/>
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
```js
|
|
150
|
+
// handleBeforeClose 内需自行 visible = false;不会自动 sync
|
|
151
|
+
handleBeforeClose() {
|
|
152
|
+
this.$confirm('确认关闭?').then(() => { this.visible = false });
|
|
153
|
+
},
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
### 附件列表弹窗(ylTableSimple + handle)
|
|
157
|
+
```vue
|
|
158
|
+
<yl-dialog :visible.sync="visible" :attributes="{ title: '附件标题', width: '900px' }">
|
|
159
|
+
<yl-table-simple :data="attachTableData" :page="false" />
|
|
160
|
+
</yl-dialog>
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
```js
|
|
164
|
+
attachTableData: {
|
|
165
|
+
loadData: [],
|
|
166
|
+
attributes: { height: '360px' },
|
|
167
|
+
header: [
|
|
168
|
+
{ prop: 'name', label: '文件名称', minWidth: 240, tooltip: true },
|
|
169
|
+
{
|
|
170
|
+
label: '操作',
|
|
171
|
+
width: 200,
|
|
172
|
+
attr: {
|
|
173
|
+
fixed: 'right',
|
|
174
|
+
type: 'handle',
|
|
175
|
+
handle: [
|
|
176
|
+
{ text: '下载', type: 'primary', callback: (scope) => this.onDownload(scope.row) },
|
|
177
|
+
{ text: '删除', callback: (scope) => this.onRemove(scope.row) },
|
|
178
|
+
],
|
|
179
|
+
},
|
|
180
|
+
},
|
|
181
|
+
],
|
|
182
|
+
},
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
### 多层级弹窗
|
|
186
|
+
```vue
|
|
187
|
+
<yl-dialog :visible.sync="layer1" :attributes="{ title: '一级', width: '600px' }">
|
|
188
|
+
<el-button @click="layer2 = true">打开二级</el-button>
|
|
189
|
+
</yl-dialog>
|
|
190
|
+
<yl-dialog :visible.sync="layer2" :append-to-body="true" :attributes="{ title: '二级', width: '520px' }" />
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
## 注意事项
|
|
194
|
+
- 高度:内容区 **200px ~ 550px**(`dialogMinHeight` / `dialogMaxHeight`);非 `ylDialog` 内置限制,须在内容区或表格 `attributes.height` 中自行约束。
|
|
195
|
+
- 宽度优先 **600px / 900px / 1200px**;`attributes` 与标签属性合并透传给 `el-dialog`。
|
|
196
|
+
- `beforeClose` 传入后关闭不会自动 `update:visible`,须在回调或业务逻辑中手动置 `visible` 为 false。
|
|
197
|
+
- `dialogTitleDate.type`:`success` / `warning` / `error` / `none` / `hidden`(隐藏原生标题栏)。
|
|
198
|
+
- 弹窗内表格:遵循全页 **`ylTableSimple` 优先**规则;须设置 `data.attributes.height` 使表格体在内容区(200px ~ 550px)内滚动。
|
|
199
|
+
- 表格弹窗:只读查看时不附带行内操作、**不展示底部操作按钮**(无 `#footer`);无 footer 时 `el-dialog__body` 须保留 **24px** 底边距;单选/多选未选中时底部主操作置灰;分页与列表页 `ylTableSimple` 一致(`:page="true"`,总数由接口返回)。
|
|
200
|
+
- 说明信息:标题右侧用 `subTitle` 插槽 + `<div class="sub-title">`;表格相关信息放表格上方;次要提示放弹窗底部。
|
|
201
|
+
- 底部次要信息布局:当需要在弹窗底部展示次要提示时,放在 `footer` 区域**按钮左侧**(左文右按钮)。可用 `el-row` + 两列 `el-col(:span="12")`,左列 `text-left textMinor`,右列 `text-right` 放操作按钮。
|
|
202
|
+
- 弹窗表单:不建议三列;内容区高度 200px ~ 550px,超出滚动。
|
|
203
|
+
- 滚动:一行查询时条件/表头固定,仅表格区域滚动;多行查询时条件与表格同滚;弹窗内表格分页展示与列表页一致。
|
|
204
|
+
- 组合能力:弹窗内可放 `ylSearchForm`、合计行、多 `el-tabs`。
|
|
205
|
+
- 多层级:二级弹窗建议 `appendToBody`。
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: xiaoma-zqyl-drawer-backend
|
|
3
|
+
description: 后台抽屉浮层(详情、表格选择、较大操作区)的 Element UI 实现规范(el-drawer)。在用户提及抽屉、Drawer、el-drawer、侧滑详情、表格选择抽屉,或需要在后台实现该组件时使用。适用于后台管理端仓库(如 zqyl-manager,platformType `yxManager`;页头/表格用 ylTitle + ylTableSimple)。 Use when implementing or reviewing the drawer (el-drawer) component on a ZQYL backend page.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 抽屉(后台)
|
|
7
|
+
|
|
8
|
+
你是一个前端组件实现与改造助手。你必须严格按本技能的规则输出。
|
|
9
|
+
|
|
10
|
+
## 适用范围
|
|
11
|
+
- 平台:后台
|
|
12
|
+
- platformType:`yxManager`
|
|
13
|
+
- 组件条目:`drawer`
|
|
14
|
+
|
|
15
|
+
## 目标
|
|
16
|
+
- 当用户提到该组件/场景时,给出可落地的 Vue2 + Element UI + zqyl-component-base 代码片段与参数建议。
|
|
17
|
+
- 不改变业务行为,仅替换/补齐结构与交互规范。
|
|
18
|
+
|
|
19
|
+
## 组件注册(必读)
|
|
20
|
+
|
|
21
|
+
- `zqyl-component-base` 公共组件在**项目入口**按组件名逐个 `import 'zqyl-component-base/lib/<ComponentName>'` + `Vue.component` 注册;样式在入口引入 `component.css`。
|
|
22
|
+
- **禁止** `import zqylComponentBase from 'zqyl-component-base'` + `Vue.use(zqylComponentBase)`;页面模板直接使用 `<yl-*>`,**勿**单页重复 import。
|
|
23
|
+
- 生成前先检查入口是否已注册本页用到的组件;缺失则仅在入口补注册。
|
|
24
|
+
|
|
25
|
+
## 输出要求
|
|
26
|
+
- 回答用户时:根据用户输入与页面场景,只输出**一段**最符合需求的 Vue 代码(可直接粘贴),并简要说明关键 props/注意事项。
|
|
27
|
+
- 不要在一次回答中罗列多种候选实现;不要输出“变体 A/B/C/D”或“方案一/方案二”等对比式内容。
|
|
28
|
+
- 本技能文档「示例」章节含多种参考写法,仅供你内部分析选型;**不得**把多个示例原样全部贴给用户。
|
|
29
|
+
- 示例代码必须可直接粘贴使用(Vue2 单文件组件片段)。
|
|
30
|
+
|
|
31
|
+
## 数据与接口(禁止 mock)
|
|
32
|
+
|
|
33
|
+
- **禁止**在生成业务页面中填充 mock、演示、假数据或静态业务行(如手写 `loadData: [{ companyName: 'xxx' }]`、`reqData` 示例值、`mounted` 里写死 `total` 等)。
|
|
34
|
+
- 列表/表格:`tableData.loadData` 保持 `[]`,数据由 `ylTableSimple` / `ylMpsTable` 通过 `searchParmas.request` / `queryListUrl` **调接口**获取;`request.url` / `queryListUrl` 写项目已有 `INTERFACE.xxx`,未知时留 `''` 并注释 `// TODO: 补充接口常量`。
|
|
35
|
+
- 查询区:`searchParmas.request` 配置 `url`、`type`、`method`、`options`;有 `url` 时 `:load="true"`(或省略,默认加载),由组件触发查询。
|
|
36
|
+
- 表单详情:`reqData` / 表单 model 初始 `{}` 或字段空值;在 `created` / `mounted` 调详情接口赋值;**禁止**预填示例姓名、金额等。
|
|
37
|
+
- 下拉/枚举:`select` 的 `data` 从字典或接口加载,无数据时 `data: []`;**禁止**写死 `{ name: '待审核', code: '1' }` 类占位项(除非需求明确给定静态枚举)。
|
|
38
|
+
- 统计区 `ylDataCensus`:`:list` 由接口或 `computed` 赋值,**禁止**手写示例金额/数量。
|
|
39
|
+
- 动态行表格:`detailRows` 等初始 `[]`,由接口回显或用户操作增删。
|
|
40
|
+
- 本 skill「示例」章节的静态数据**仅供理解组件 API**;生成业务页面时**不得**照搬进 `data()`。
|
|
41
|
+
|
|
42
|
+
## 示例(参考写法,回答用户时只选用其中一种)
|
|
43
|
+
|
|
44
|
+
## 何时使用
|
|
45
|
+
|
|
46
|
+
- 详情展示、中等复杂度表单/表格选择,需保留主页面上下文。
|
|
47
|
+
- 比弹窗需要更大纵向空间,但不必整页跳转。
|
|
48
|
+
|
|
49
|
+
不适用:简单确认 → `MessageBox`;标准弹窗表单 → `ylDialog`。
|
|
50
|
+
|
|
51
|
+
## 代码示例
|
|
52
|
+
|
|
53
|
+
### 详情抽屉
|
|
54
|
+
```vue
|
|
55
|
+
<el-drawer title="合同详情" :visible.sync="visible" direction="rtl" size="640px" :append-to-body="true">
|
|
56
|
+
<div class="drawer-panel">
|
|
57
|
+
<div class="drawer-body">
|
|
58
|
+
<yl-form-view :form-data="formData" :req-data="reqData" layout="doubleRow" />
|
|
59
|
+
</div>
|
|
60
|
+
<div class="drawer-footer text-right">
|
|
61
|
+
<el-button size="small" @click="visible = false">关闭</el-button>
|
|
62
|
+
<el-button size="small" type="primary">保存</el-button>
|
|
63
|
+
</div>
|
|
64
|
+
</div>
|
|
65
|
+
</el-drawer>
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
### 表格选择抽屉
|
|
69
|
+
```vue
|
|
70
|
+
<el-drawer title="选择合同" :visible.sync="visible" direction="rtl" size="900px" :append-to-body="true">
|
|
71
|
+
<div class="drawer-panel">
|
|
72
|
+
<div class="drawer-body">
|
|
73
|
+
<yl-search-form :search-parmas="searchParmas" :load="false" :is-card="false" />
|
|
74
|
+
<yl-table-simple :data="tableData" :page="true" @changeRadioData="onRadio" />
|
|
75
|
+
</div>
|
|
76
|
+
<div class="drawer-footer text-right">
|
|
77
|
+
<el-button size="small" @click="visible = false">取消</el-button>
|
|
78
|
+
<el-button size="small" type="primary" :disabled="!selectedRow" @click="confirm">确定选择</el-button>
|
|
79
|
+
</div>
|
|
80
|
+
</div>
|
|
81
|
+
</el-drawer>
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
```js
|
|
85
|
+
// tableData 须设置 attributes.height,仅表格体滚动
|
|
86
|
+
tableData: {
|
|
87
|
+
loadData: [],
|
|
88
|
+
attributes: { height: '420px' },
|
|
89
|
+
header: [
|
|
90
|
+
{ type: 'radio', width: 48 },
|
|
91
|
+
{ prop: 'companyName', label: '企业名称', tooltip: true },
|
|
92
|
+
],
|
|
93
|
+
},
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
## 注意事项
|
|
97
|
+
- 标题:`#303133`、**加粗**(`font-weight: 700`),标题区距下方内容 **24px**(`.el-drawer__header { margin-bottom: 24px }`;默认 `title` 属性对应 `header > span[role="heading"]`)。
|
|
98
|
+
- 布局:`drawer-panel` 纵向 flex;`drawer-body` 滚动、`drawer-footer` 固定底栏。
|
|
99
|
+
- 常用宽度 640px / 900px;`append-to-body` 避免被 fixed 底栏遮挡。
|
|
100
|
+
- 抽屉内表格优先 **`ylTableSimple`**,须设置 `data.attributes.height`;单选未选中时底部主操作置灰。
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: xiaoma-zqyl-empty-page-backend
|
|
3
|
+
description: 后台空状态/异常页插画与文案(无数据、404、网络异常、权限不足等 type 预设)的 Vue2 实现规范(ylEmptyPage)。在用户提及 ylEmptyPage、yl-empty-page、空页面、空状态、暂无数据、404、网络异常、无权限、异常页,或需要在后台实现该组件时使用。适用于后台管理端仓库(如 zqyl-manager,platformType `yxManager`;页头/表格用 ylTitle + ylTableSimple)。 Use when implementing or reviewing the empty-page (ylEmptyPage) component on a ZQYL backend page.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 空页面(后台)
|
|
7
|
+
|
|
8
|
+
你是一个前端组件实现与改造助手。你必须严格按本技能的规则输出。
|
|
9
|
+
|
|
10
|
+
## 适用范围
|
|
11
|
+
- 平台:后台
|
|
12
|
+
- platformType:`yxManager`
|
|
13
|
+
- 组件条目:`emptyPage`
|
|
14
|
+
|
|
15
|
+
## 目标
|
|
16
|
+
- 当用户提到该组件/场景时,给出可落地的 Vue2 + Element UI + zqyl-component-base 代码片段与参数建议。
|
|
17
|
+
- 不改变业务行为,仅替换/补齐结构与交互规范。
|
|
18
|
+
|
|
19
|
+
## 组件注册(必读)
|
|
20
|
+
|
|
21
|
+
- `zqyl-component-base` 公共组件在**项目入口**按组件名逐个 `import 'zqyl-component-base/lib/<ComponentName>'` + `Vue.component` 注册;样式在入口引入 `component.css`。
|
|
22
|
+
- **禁止** `import zqylComponentBase from 'zqyl-component-base'` + `Vue.use(zqylComponentBase)`;页面模板直接使用 `<yl-*>`,**勿**单页重复 import。
|
|
23
|
+
- 生成前先检查入口是否已注册本页用到的组件;缺失则仅在入口补注册。
|
|
24
|
+
|
|
25
|
+
## 输出要求
|
|
26
|
+
- 回答用户时:根据用户输入与页面场景,只输出**一段**最符合需求的 Vue 代码(可直接粘贴),并简要说明关键 props/注意事项。
|
|
27
|
+
- 不要在一次回答中罗列多种候选实现;不要输出“变体 A/B/C/D”或“方案一/方案二”等对比式内容。
|
|
28
|
+
- 本技能文档「示例」章节含多种参考写法,仅供你内部分析选型;**不得**把多个示例原样全部贴给用户。
|
|
29
|
+
- 示例代码必须可直接粘贴使用(Vue2 单文件组件片段)。
|
|
30
|
+
|
|
31
|
+
## 数据与接口(禁止 mock)
|
|
32
|
+
|
|
33
|
+
- **禁止**在生成业务页面中填充 mock、演示、假数据或静态业务行(如手写 `loadData: [{ companyName: 'xxx' }]`、`reqData` 示例值、`mounted` 里写死 `total` 等)。
|
|
34
|
+
- 列表/表格:`tableData.loadData` 保持 `[]`,数据由 `ylTableSimple` / `ylMpsTable` 通过 `searchParmas.request` / `queryListUrl` **调接口**获取;`request.url` / `queryListUrl` 写项目已有 `INTERFACE.xxx`,未知时留 `''` 并注释 `// TODO: 补充接口常量`。
|
|
35
|
+
- 查询区:`searchParmas.request` 配置 `url`、`type`、`method`、`options`;有 `url` 时 `:load="true"`(或省略,默认加载),由组件触发查询。
|
|
36
|
+
- 表单详情:`reqData` / 表单 model 初始 `{}` 或字段空值;在 `created` / `mounted` 调详情接口赋值;**禁止**预填示例姓名、金额等。
|
|
37
|
+
- 下拉/枚举:`select` 的 `data` 从字典或接口加载,无数据时 `data: []`;**禁止**写死 `{ name: '待审核', code: '1' }` 类占位项(除非需求明确给定静态枚举)。
|
|
38
|
+
- 统计区 `ylDataCensus`:`:list` 由接口或 `computed` 赋值,**禁止**手写示例金额/数量。
|
|
39
|
+
- 动态行表格:`detailRows` 等初始 `[]`,由接口回显或用户操作增删。
|
|
40
|
+
- 本 skill「示例」章节的静态数据**仅供理解组件 API**;生成业务页面时**不得**照搬进 `data()`。
|
|
41
|
+
|
|
42
|
+
## 何时使用(智能体选择规则)
|
|
43
|
+
|
|
44
|
+
当需求/页面出现以下任一信号时,必须优先调用本 skills 并按规则产出代码:
|
|
45
|
+
- 整页或内容区需展示**无数据、404、网络异常、登录异常、无权限**等空状态/异常态。
|
|
46
|
+
- 列表/搜索无结果、弹窗外层整页异常、反馈页数据异常等需插画 + 文案的场景。
|
|
47
|
+
- 用户提到「yl-empty-page」、「ylEmptyPage」、「空页面」、「暂无数据页」、「404 页」时。
|
|
48
|
+
|
|
49
|
+
不适用:
|
|
50
|
+
- 表格内无数据占位 → 使用 `ylTableSimple` 空数据默认态(保留表头)。
|
|
51
|
+
- 轻量 Toast 反馈 → 使用 `Message`;可关闭的说明条 → 使用 `ylTips`。
|
|
52
|
+
- 操作成功/失败结果页(居中图标 + 按钮)→ 自定义布局或反馈页模板,非本组件。
|
|
53
|
+
|
|
54
|
+
### 方案选择(内部分析用,勿在回答中罗列)
|
|
55
|
+
- 通用无数据:`type: noData`;404:`notFoundRequet`;网络断开/超时:`networkBreak` / `networkTimeout`。
|
|
56
|
+
- 云租业务:使用 `yz` 前缀类型(如 `yzNodata`、`yzNoAccessPower`)。
|
|
57
|
+
- 覆盖默认文案:传 `text`;云租部分类型需 `:is-position-img="false"`。
|
|
58
|
+
|
|
59
|
+
## API(ylEmptyPage)
|
|
60
|
+
|
|
61
|
+
> 标签:`<yl-empty-page>` / `ylEmptyPage`;须在入口 `import ylEmptyPage from 'zqyl-component-base/lib/ylEmptyPage'` + `Vue.component('ylEmptyPage', ylEmptyPage)` 注册;页面模板直接使用,**勿**单页 import;**禁止**全量 `Vue.use(zqylComponentBase)`。
|
|
62
|
+
|
|
63
|
+
### Props
|
|
64
|
+
|
|
65
|
+
| 属性名 | 类型 | 默认值 | 说明 |
|
|
66
|
+
| --- | --- | --- | --- |
|
|
67
|
+
| `type` | String | `notFoundRequet` | 空状态类型,见下表 |
|
|
68
|
+
| `text` | String | `''` | 自定义提示文案;为空时使用该 type 内置文案 |
|
|
69
|
+
| `isPositionImg` / `is-position-img` | Boolean | `true` | `true` 文案在插画内;`false` 文案在插画下方 |
|
|
70
|
+
| `width` | Number | `null` | 图片宽度(组件内暂不启用) |
|
|
71
|
+
|
|
72
|
+
### type 预设值
|
|
73
|
+
|
|
74
|
+
| type | 场景 |
|
|
75
|
+
| --- | --- |
|
|
76
|
+
| `noData` | 无数据 |
|
|
77
|
+
| `notFoundRequet` | 404 页面 |
|
|
78
|
+
| `networkBreak` | 网络断开 |
|
|
79
|
+
| `networkTimeout` | 网络超时 |
|
|
80
|
+
| `loginException` | 登录异常 |
|
|
81
|
+
| `searchNone` | 搜索无结果 |
|
|
82
|
+
| `noBusinessCard` / `noMessage` / `noPoints` / `noShopping` | 其他业务空态 |
|
|
83
|
+
| `yzNotFoundRequet` / `yzNodata` / `yzNoAccessPower` / `yzNoOperationPower` / `yzSigningFailed` | 云租专用 |
|
|
84
|
+
|
|
85
|
+
### Slots / Events
|
|
86
|
+
|
|
87
|
+
无插槽、无事件;操作按钮由外层页面自行布局。
|
|
88
|
+
|
|
89
|
+
## 示例(参考写法,回答用户时只选用其中一种)
|
|
90
|
+
|
|
91
|
+
### 基础用法
|
|
92
|
+
```vue
|
|
93
|
+
<yl-empty-page type="noData" />
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### 常用类型
|
|
97
|
+
```vue
|
|
98
|
+
<yl-empty-page type="noData" />
|
|
99
|
+
<yl-empty-page type="notFoundRequet" />
|
|
100
|
+
<yl-empty-page type="networkBreak" />
|
|
101
|
+
<yl-empty-page type="loginException" />
|
|
102
|
+
<yl-empty-page type="networkTimeout" />
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
### 自定义文案
|
|
106
|
+
```vue
|
|
107
|
+
<yl-empty-page
|
|
108
|
+
type="noData"
|
|
109
|
+
text="当前列表暂无数据,请稍后再试"
|
|
110
|
+
/>
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
### 文字位置
|
|
114
|
+
```vue
|
|
115
|
+
<!-- 文案在插画下方 -->
|
|
116
|
+
<yl-empty-page type="noData" :is-position-img="false" />
|
|
117
|
+
<!-- 文案在插画内部(默认) -->
|
|
118
|
+
<yl-empty-page type="noData" :is-position-img="true" />
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
### 云租类型示例
|
|
122
|
+
```vue
|
|
123
|
+
<yl-empty-page type="yzNodata" :is-position-img="false" />
|
|
124
|
+
<yl-empty-page type="yzNoAccessPower" :is-position-img="false" />
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
## 注意事项
|
|
128
|
+
- 通过 **`type`** 选择预设插画与默认文案;需覆盖文案时传 **`text`**。
|
|
129
|
+
- **`isPositionImg: false`** 时文案在插画下方;云租部分类型(如 `yzNodata`)常用 `false`。
|
|
130
|
+
- 404 类型键名为 **`notFoundRequet`**(历史拼写,勿写成 `notFoundRequest`)。
|
|
131
|
+
- 组件无插槽/事件;返回首页等操作按钮放在组件**外层**,与本组件并列布局。
|