@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
package/package.json
CHANGED
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: xiaoma-zqyl-bar-chart-backend
|
|
3
|
+
description: 后台柱状图(横向/竖向、单柱/多柱/堆叠、数据标签)的 Vue2 + zqyl-component-base 实现规范(ylBarChart)。在用户提及 ylBarChart、yl-bar-chart、柱状图、条形图、堆叠柱状图、多柱状图,或需要在后台实现该组件时使用。适用于后台管理端仓库(如 zqyl-manager,platformType `yxManager`;页头/表格用 ylTitle + ylTableSimple)。 Use when implementing or reviewing the bar-chart (ylBarChart) component on a ZQYL backend page.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 柱状图(后台)
|
|
7
|
+
|
|
8
|
+
你是一个前端组件实现与改造助手。你必须严格按本技能的规则输出。
|
|
9
|
+
|
|
10
|
+
## 适用范围
|
|
11
|
+
- 平台:后台
|
|
12
|
+
- platformType:`yxManager`
|
|
13
|
+
- 组件条目:`barChart`
|
|
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
|
+
- 需要**横向柱状图**(类目名称较长、排名展示)。
|
|
48
|
+
- 用户提到「yl-bar-chart」、「ylBarChart」、「柱状图」、「条形图」、「堆叠柱状图」时。
|
|
49
|
+
|
|
50
|
+
不适用:趋势变化展示 → 使用 `ylLineChart`;仅展示若干静态指标摘要 → 使用 `ylDataCensus`。
|
|
51
|
+
|
|
52
|
+
## API(ylBarChart)
|
|
53
|
+
|
|
54
|
+
> 标签:`<yl-bar-chart>` / `ylBarChart`;须在入口 `import ylBarChart from 'zqyl-component-base/lib/ylBarChart'` + `Vue.component('ylBarChart', ylBarChart)` 注册;页面模板直接使用,**勿**单页 import;**禁止**全量 `Vue.use(zqylComponentBase)`。
|
|
55
|
+
|
|
56
|
+
### Props
|
|
57
|
+
|
|
58
|
+
| 属性名 | 类型 | 默认值 | 是否必填 | 说明 |
|
|
59
|
+
| --- | --- | --- | --- | --- |
|
|
60
|
+
| `chartData` | Object | `{}` | 是 | 图表配置数据对象 |
|
|
61
|
+
| `id` | String | `'BarChart'` | 否 | 图表容器 DOM id,同页多图须唯一 |
|
|
62
|
+
| `height` | String | `'400px'` | 否 | 图表高度 |
|
|
63
|
+
|
|
64
|
+
### `chartData` 配置项
|
|
65
|
+
|
|
66
|
+
| 属性名 | 类型 | 默认值 | 说明 |
|
|
67
|
+
| --- | --- | --- | --- |
|
|
68
|
+
| `titleText` | String | `''` | 图表标题 |
|
|
69
|
+
| `xAxis` | Object | - | X 轴配置,参考 ECharts `xAxis` |
|
|
70
|
+
| `yAxis` | Object \| Array | - | Y 轴配置,参考 ECharts `yAxis` |
|
|
71
|
+
| `grid` | Object | `{}` | 网格边距,参考 ECharts `grid` |
|
|
72
|
+
| `seriesData` | Array | `[]` | **单柱状图**数据数组 |
|
|
73
|
+
| `seriesJson` | Array | `[]` | **多系列**配置(多柱/堆叠/横向) |
|
|
74
|
+
| `seriesColor` | String | - | 单柱状图颜色 |
|
|
75
|
+
| `showBackground` | Boolean | `false` | 是否显示柱条背景色 |
|
|
76
|
+
| `colorList` | Array | - | 按 dataIndex 循环使用的颜色列表 |
|
|
77
|
+
| `tooltip` | Object | - | 自定义 tooltip,覆盖默认配置 |
|
|
78
|
+
| `dataset` | Object | - | ECharts dataset 数据源 |
|
|
79
|
+
| `setEchartsData` | Object | - | 字段映射:`setSeriesName` / `setSeriesData` |
|
|
80
|
+
|
|
81
|
+
### `seriesJson[]` 项字段
|
|
82
|
+
|
|
83
|
+
| 字段 | 类型 | 说明 |
|
|
84
|
+
| --- | --- | --- |
|
|
85
|
+
| `name` | String | 系列名称(图例) |
|
|
86
|
+
| `type` | String | 默认 `'bar'` |
|
|
87
|
+
| `data` | Array | 数据数组 |
|
|
88
|
+
| `color` | String | 系列颜色 |
|
|
89
|
+
| `colorList` | Array | 按柱索引循环着色 |
|
|
90
|
+
| `stack` | String | 堆叠标识,相同值系列堆叠相加 |
|
|
91
|
+
| `barWidth` | String \| Number | 柱宽(绝对值或百分比如 `'60%'`) |
|
|
92
|
+
| `seriesLable` | Object | 数据标签配置(含 show、position、formatter 等) |
|
|
93
|
+
| `emphasisFocus` | String | 高亮聚焦:`none` \| `self` \| `series` |
|
|
94
|
+
| `xAxisIndex` / `yAxisIndex` | Number | 使用的坐标轴索引 |
|
|
95
|
+
|
|
96
|
+
### Events / Slots
|
|
97
|
+
|
|
98
|
+
无对外事件与插槽。
|
|
99
|
+
|
|
100
|
+
### Methods
|
|
101
|
+
|
|
102
|
+
| 方法名 | 说明 |
|
|
103
|
+
| --- | --- |
|
|
104
|
+
| `setEchartOption()` | 父组件数据变化后通过 `ref` 调用,更新并重新渲染图表 |
|
|
105
|
+
|
|
106
|
+
## 示例(参考写法,回答用户时只选用其中一种)
|
|
107
|
+
|
|
108
|
+
### 竖向柱状图(单系列)
|
|
109
|
+
```vue
|
|
110
|
+
<yl-bar-chart :chartData="chartData" id="verticalBarChart" height="400px" />
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
// chartData: xAxis.type='category', yAxis.type='value', seriesJson: [{ type: 'bar', data }] 或 seriesData
|
|
114
|
+
|
|
115
|
+
### 横向柱状图
|
|
116
|
+
```vue
|
|
117
|
+
<yl-bar-chart :chartData="horizontalData" id="horizontalBarChart" height="400px" />
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
// horizontalData: xAxis.type='value', yAxis.type='category' + yAxis.data 类目
|
|
121
|
+
|
|
122
|
+
### 多柱状图 / 堆叠柱状图
|
|
123
|
+
```vue
|
|
124
|
+
<yl-bar-chart :chartData="multiBarData" id="multiBarChart" height="400px" />
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
// multiBarData.seriesJson: [{ name, type: 'bar', data, color }, ...]
|
|
128
|
+
// 堆叠:各系列设置相同 stack 值,如 stack: 'total'
|
|
129
|
+
|
|
130
|
+
### 数据更新后刷新
|
|
131
|
+
```js
|
|
132
|
+
// this.chartData = await fetchChartData();
|
|
133
|
+
// this.$refs.barChart.setEchartOption();
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
## 注意事项
|
|
137
|
+
- `chartData` 由接口或 `computed` 赋值;**禁止**在规范页手写长期静态假数据,接口未就绪时先空结构,请求后再更新。
|
|
138
|
+
- 单柱状图用 `seriesData`;多系列(多柱、堆叠、横向标签)用 `seriesJson`,避免配置冲突。
|
|
139
|
+
- 横向柱状图:`xAxis.type: 'value'`、`yAxis.type: 'category'`;竖向则相反。
|
|
140
|
+
- 同页多个 `<yl-bar-chart>` 时 `id` 必须唯一,否则 ECharts 容器冲突。
|
|
141
|
+
- 数据标签字段为组件库约定的 `seriesLable`(非 `seriesLabel`)。
|
|
142
|
+
- 组件基于 ECharts 5.x(随 `zqyl-component-base` 依赖);`xAxis` / `yAxis` / `grid` 可直接透传 ECharts 配置。
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: xiaoma-zqyl-button-backend
|
|
3
|
+
description: 后台导入/导出/下载模板/下载文件/上传且左侧带图标按钮,以及虚线边框按钮的 Vue2 实现规范(ylButton)。在用户提及 ylButton、yl-button、导入左侧图标、导出左侧图标、下载模板左侧图标、下载文件左侧图标、上传左侧图标、虚线边框按钮、outline 按钮,或需要在后台实现该组件时使用。适用于后台管理端仓库(如 zqyl-manager,platformType `yxManager`;页头/表格用 ylTitle + ylTableSimple)。 Use when implementing or reviewing the button (ylButton) component on a ZQYL backend page.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 按钮(后台)
|
|
7
|
+
|
|
8
|
+
你是一个前端组件实现与改造助手。你必须严格按本技能的规则输出。
|
|
9
|
+
|
|
10
|
+
## 适用范围
|
|
11
|
+
- 平台:后台
|
|
12
|
+
- platformType:`yxManager`
|
|
13
|
+
- 组件条目:`button`
|
|
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
|
+
- **同时满足**:① 动作为「导入 / 导出 / 下载模板 / 下载文件 / 上传」之一;② 按钮**文字左侧需要显示图标**(使用组件内置 svg)。
|
|
46
|
+
- 需要「新增/添加」一类**整行虚线边框按钮**入口(`btnType="outline"`)。
|
|
47
|
+
|
|
48
|
+
不适用:
|
|
49
|
+
- 仅提到「导入/导出/下载/上传」等动作,但**未要求左侧图标** → 使用 `el-button`(`plain` / `text` / `type="primary"` 等)。
|
|
50
|
+
- 普通主按钮/次按钮(保存、取消、提交、新增等无内置图标要求)→ 使用 `el-button`。
|
|
51
|
+
- 图标在右侧、或需自定义图标 → 不要滥用 `ylButton` 内置 svg。
|
|
52
|
+
|
|
53
|
+
### 方案选择(内部分析用,勿在回答中罗列)
|
|
54
|
+
- 左侧图标文字按钮(上述 5 类动作):`btnType: 'text'`(默认),`type` 取 `template` / `export` / `import` / `upload` / `download`。
|
|
55
|
+
- 同类动作但需要 `el-button` 外观且仍要左侧图标:`btnType: 'button'`。
|
|
56
|
+
- 虚线整行按钮:`btnType: 'outline'`。
|
|
57
|
+
- 禁用态:`disabled`,建议外层配 `el-tooltip` 说明禁用原因。
|
|
58
|
+
|
|
59
|
+
## API(ylButton)
|
|
60
|
+
|
|
61
|
+
> 标签:`<yl-button>` / `ylButton`;须在入口 `import ylButton from 'zqyl-component-base/lib/ylButton'` + `Vue.component('ylButton', ylButton)` 注册;页面模板直接使用,**勿**单页 import;**禁止**全量 `Vue.use(zqylComponentBase)`。
|
|
62
|
+
|
|
63
|
+
### Props
|
|
64
|
+
|
|
65
|
+
| 属性名 | 类型 | 默认值 | 说明 |
|
|
66
|
+
| --- | --- | --- | --- |
|
|
67
|
+
| `type` | String | `template` | 内置图标类型:`template`(下载模板)/ `export` / `import` / `upload` / `download` |
|
|
68
|
+
| `content` | String | `下载模板` | 按钮文案 |
|
|
69
|
+
| `btnType` | String | `text` | `text`(文字+左侧图标)/ `button`(el-button)/ `custom` / `outline`(虚线整行) |
|
|
70
|
+
| `disabled` | Boolean | `false` | 禁用态 |
|
|
71
|
+
| `plain` | Boolean | `true` | 仅 `btnType=button` 生效:朴素/实心 |
|
|
72
|
+
| `primary` | Boolean | `false` | 仅 `btnType=custom` 生效:主色实心风格 |
|
|
73
|
+
| `cursorType` | String | `text` | 仅 `btnType=custom` 生效:控制 cursor 样式 |
|
|
74
|
+
|
|
75
|
+
### Events
|
|
76
|
+
|
|
77
|
+
| 事件名 | 说明 |
|
|
78
|
+
| --- | --- |
|
|
79
|
+
| `click` | 点击触发;`disabled=true` 时不触发 |
|
|
80
|
+
|
|
81
|
+
## 示例(参考写法,回答用户时只选用其中一种)
|
|
82
|
+
|
|
83
|
+
### 左侧图标文字按钮(导入/导出/下载/上传)
|
|
84
|
+
```vue
|
|
85
|
+
<yl-button type="template" content="下载模板" @click="onDownloadTemplate" />
|
|
86
|
+
<yl-button type="export" content="导出文件" @click="onExport" />
|
|
87
|
+
<yl-button type="import" content="导入文件" @click="onImport" />
|
|
88
|
+
<yl-button type="upload" content="上传文件" @click="onUpload" />
|
|
89
|
+
<yl-button type="download" content="下载文件" @click="onDownload" />
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
### 虚线整行按钮(新增入口)
|
|
93
|
+
```vue
|
|
94
|
+
<yl-button btnType="outline" content="新增一条记录" @click="onAdd" />
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
### `el-button` 样式(btnType=button)
|
|
98
|
+
```vue
|
|
99
|
+
<yl-button type="export" content="导出文件" btnType="button" @click="onExport" />
|
|
100
|
+
<yl-button type="export" content="导出文件(实心)" btnType="button" :plain="false" @click="onExport" />
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
## 注意事项
|
|
104
|
+
- **仅当**动作为导入/导出/下载模板/下载文件/上传,且**文字左侧需要图标**时,使用 `ylButton`;否则用 `el-button`。
|
|
105
|
+
- `type` 与动作对应:`template`(下载模板)/ `export` / `import` / `upload` / `download`(下载文件)。
|
|
106
|
+
- 虚线边框整行入口使用 `btnType="outline"`;常用于“新增/添加”。
|
|
107
|
+
- `btnType="button"` 内部是 `el-button`,仍保留左侧内置图标;无图标需求勿用。
|
|
108
|
+
- 禁用态建议外层包 `el-tooltip` 说明原因;`disabled=true` 时组件不会触发 `click`。
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: xiaoma-zqyl-collapse-backend
|
|
3
|
+
description: 后台可折叠内容区块(标题行展开/收起、header 右侧操作区、content 内容区)的 Vue2 实现规范(ylCollapse)。在用户提及 ylCollapse、yl-collapse、折叠、折叠面板、可收起区块、展开收起,或需要在后台实现该组件时使用。适用于后台管理端仓库(如 zqyl-manager,platformType `yxManager`;页头/表格用 ylTitle + ylTableSimple)。 Use when implementing or reviewing the collapse (ylCollapse) component on a ZQYL backend page.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 折叠(后台)
|
|
7
|
+
|
|
8
|
+
你是一个前端组件实现与改造助手。你必须严格按本技能的规则输出。
|
|
9
|
+
|
|
10
|
+
## 适用范围
|
|
11
|
+
- 平台:后台
|
|
12
|
+
- platformType:`yxManager`
|
|
13
|
+
- 组件条目:`collapse`
|
|
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
|
+
- 次要信息默认折叠、关键信息默认展开(通过 `isCollapse` 控制)。
|
|
48
|
+
- 用户提到「yl-collapse」、「ylCollapse」、「折叠组件」、「展开收起」时。
|
|
49
|
+
|
|
50
|
+
不适用:
|
|
51
|
+
- 需模块卡片、副标题、底部 `footer`、扩展区过渡动画 → 使用 **`ylModule`**。
|
|
52
|
+
- Element 多面板手风琴 → 使用 `el-collapse` / `el-collapse-item`。
|
|
53
|
+
|
|
54
|
+
### 方案选择(内部分析用,勿在回答中罗列)
|
|
55
|
+
- 默认折叠展示:`isCollapse: true`(默认),仅传 `title` + `#content`。
|
|
56
|
+
- 默认展开:`:is-collapse="false"`。
|
|
57
|
+
- 标题行右侧操作:`#header` 放按钮/链接,与标题同一行右对齐。
|
|
58
|
+
- 父级受控:`:is-collapse` + `@update:collapse` 同步状态。
|
|
59
|
+
|
|
60
|
+
## API(ylCollapse)
|
|
61
|
+
|
|
62
|
+
> 标签:`<yl-collapse>` / `ylCollapse`;须在入口 `import ylCollapse from 'zqyl-component-base/lib/ylCollapse'` + `Vue.component('ylCollapse', ylCollapse)` 注册;页面模板直接使用,**勿**单页 import;**禁止**全量 `Vue.use(zqylComponentBase)`。
|
|
63
|
+
|
|
64
|
+
### Props
|
|
65
|
+
|
|
66
|
+
| 属性名 | 类型 | 默认值 | 说明 |
|
|
67
|
+
| --- | --- | --- | --- |
|
|
68
|
+
| `title` | String | `''` | 折叠区标题(左侧,可点击切换) |
|
|
69
|
+
| `isCollapse` / `is-collapse` | Boolean | `true` | 是否处于折叠(收起)状态 |
|
|
70
|
+
|
|
71
|
+
### Events
|
|
72
|
+
|
|
73
|
+
| 事件名 | 说明 | 回调参数 |
|
|
74
|
+
| --- | --- | --- |
|
|
75
|
+
| `update:collapse` | 展开/收起状态变化时触发 | `Boolean`(当前是否折叠) |
|
|
76
|
+
|
|
77
|
+
### Slots
|
|
78
|
+
|
|
79
|
+
| 插槽名 | 说明 |
|
|
80
|
+
| --- | --- |
|
|
81
|
+
| `header` | 标题行右侧自定义内容(右对齐) |
|
|
82
|
+
| `content` | 折叠内容区;无此插槽时不渲染内容区 |
|
|
83
|
+
|
|
84
|
+
### 样式与布局(以组件库为准)
|
|
85
|
+
|
|
86
|
+
- 标题:14px bold / `#303133`;图标与标题间距 6px,点击可切换。
|
|
87
|
+
- `header` 插槽:14px / `#606266`,标题行右侧右对齐。
|
|
88
|
+
- 内容区:`margin-top: 24px`;展开时箭头旋转 180°。
|
|
89
|
+
|
|
90
|
+
## 示例(参考写法,回答用户时只选用其中一种)
|
|
91
|
+
|
|
92
|
+
### 基础用法(默认折叠)
|
|
93
|
+
```vue
|
|
94
|
+
<yl-collapse title="折叠标题">
|
|
95
|
+
<template #content>
|
|
96
|
+
<div>折叠组件的内容区域,可以包含任意业务内容。</div>
|
|
97
|
+
</template>
|
|
98
|
+
</yl-collapse>
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
### 卡片内默认展开
|
|
102
|
+
```vue
|
|
103
|
+
<el-card shadow="never">
|
|
104
|
+
<yl-collapse title="默认展开的折叠区域" :is-collapse="false">
|
|
105
|
+
<template #content>
|
|
106
|
+
<div>该折叠区域初始为展开状态。</div>
|
|
107
|
+
</template>
|
|
108
|
+
</yl-collapse>
|
|
109
|
+
</el-card>
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
### 自定义头部右侧(header 插槽)
|
|
113
|
+
```vue
|
|
114
|
+
<yl-collapse title="自定义头部内容">
|
|
115
|
+
<template #header>
|
|
116
|
+
<el-button type="primary" size="small">提交</el-button>
|
|
117
|
+
</template>
|
|
118
|
+
<template #content>
|
|
119
|
+
<div>折叠组件的内容区域。</div>
|
|
120
|
+
</template>
|
|
121
|
+
</yl-collapse>
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
### 受控折叠状态
|
|
125
|
+
```vue
|
|
126
|
+
<yl-collapse
|
|
127
|
+
title="受控折叠"
|
|
128
|
+
:is-collapse="panelCollapsed"
|
|
129
|
+
@update:collapse="panelCollapsed = $event"
|
|
130
|
+
>
|
|
131
|
+
<template #content>
|
|
132
|
+
<div>内容区</div>
|
|
133
|
+
</template>
|
|
134
|
+
</yl-collapse>
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
## 注意事项
|
|
138
|
+
- 内容必须放在 **`#content`** 插槽;无插槽时仅展示标题行。
|
|
139
|
+
- 默认 **`isCollapse: true`**(折叠);需首屏展示正文时设 **`:is-collapse="false"`**。
|
|
140
|
+
- 标题行右侧操作用 **`#header`**;勿与标题文案混写在 `title` 中。
|
|
141
|
+
- 父级需同步状态时监听 **`@update:collapse`**;与 `ylModule` 的扩展区区分使用场景。
|
|
142
|
+
- **`el-card` 内顶层为 `yl-collapse` 时**:**不要**给 `el-card` 加 `el-card-padding-bottom0`(该 class 仅用于卡片内**直接**放置 `ylFormEditor` / `ylFormView`)。
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: xiaoma-zqyl-container-foot-backend
|
|
3
|
+
description: 后台固定在页面底部的操作区(title/left/center 插槽、keepBlank 占位)的 Vue2 实现规范(ylContainerFoot)。在用户提及 ylContainerFoot、yl-container-foot、页面底部、底栏、页脚、提交栏、保存取消,或需要在后台实现该组件时使用。适用于后台管理端仓库(如 zqyl-manager,platformType `yxManager`;页头/表格用 ylTitle + ylTableSimple)。 Use when implementing or reviewing the container-foot (ylContainerFoot) component on a ZQYL backend page.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 页面底部(后台)
|
|
7
|
+
|
|
8
|
+
你是一个前端组件实现与改造助手。你必须严格按本技能的规则输出。
|
|
9
|
+
|
|
10
|
+
## 适用范围
|
|
11
|
+
- 平台:后台
|
|
12
|
+
- platformType:`yxManager`
|
|
13
|
+
- 组件条目:`containerFoot`
|
|
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
|
+
- 底部需同时展示辅助说明(如 Ukey 提示)与主操作按钮。
|
|
47
|
+
- 底部需展示协议勾选、说明文案与操作按钮。
|
|
48
|
+
- 用户提到「yl-container-foot」、「ylContainerFoot」、「页面底部」、「底栏」、「页脚」时。
|
|
49
|
+
|
|
50
|
+
不适用:
|
|
51
|
+
- 弹窗内底部按钮 → 使用 `ylDialog` 默认 footer 或 `#footer` 插槽。
|
|
52
|
+
- 卡片内局部操作区(非全页固定底栏)→ 使用 `el-card` 内按钮组或表单行内按钮。
|
|
53
|
+
- **表单详情页默认操作** → 使用 **`ylTitle` 右侧插槽**(需求未说明按钮位置时**不要**用本组件)。
|
|
54
|
+
|
|
55
|
+
### 操作按钮居中(强制)
|
|
56
|
+
|
|
57
|
+
`ylContainerFoot` 底栏**主操作按钮默认居中**,须通过 **`#center` 插槽**渲染(组件内 `.foot-content-center { text-align: center }`)。
|
|
58
|
+
|
|
59
|
+
| 规则 | 说明 |
|
|
60
|
+
| --- | --- |
|
|
61
|
+
| **必须** | 保存/取消/提交/暂存等操作按钮 → **`#center` 插槽** |
|
|
62
|
+
| **必须** | 协议勾选、Ukey 提示等辅助文案 → **`#left` 插槽**(或两行场景用 `#title`) |
|
|
63
|
+
| **禁止** | 默认插槽 + `display:flex; justify-content:space-between` 将按钮顶到右侧(会破坏居中) |
|
|
64
|
+
| **禁止** | 在 `#left` 内放主操作按钮(除非原型明确要求且与规范方确认) |
|
|
65
|
+
|
|
66
|
+
仅按钮、无左侧文案时:只用 **`#center`**,不要包一层自定义 flex。
|
|
67
|
+
|
|
68
|
+
### 选型优先级(强制)
|
|
69
|
+
|
|
70
|
+
1. **有具体说明或原型图/截图** → 以需求/原型为准:按底栏**实际行数、文案位置**选用插槽;**按钮仍默认放 `#center` 居中**(除非原型明确写「按钮右对齐」)。
|
|
71
|
+
2. **无具体说明、无原型** → 按本 skill 下方「默认插槽选型」与「方案选择」执行,**不得**自行臆造 `#title` 或默认插槽 flex。
|
|
72
|
+
|
|
73
|
+
判据示例:原型底栏**同一行**左勾选 + 按钮 → **`#left` + `#center`**(按钮居中),**勿**用 `#title`、**勿**用默认插槽 flex;原型**明确两行**(上行协议、下行 Ukey + 按钮)→ 才用 `#title` + `#left` + `#center`。
|
|
74
|
+
|
|
75
|
+
### 默认插槽选型(无原型/无具体说明时)
|
|
76
|
+
|
|
77
|
+
| 场景 | 插槽组合 | 说明 |
|
|
78
|
+
| --- | --- | --- |
|
|
79
|
+
| **单行**:左侧协议勾选 + 操作按钮(常见签约底栏) | **`#left` + `#center`** | 勾选/协议放 `#left`,**按钮放 `#center` 居中**;**禁止** `#title`、**禁止**默认插槽 flex |
|
|
80
|
+
| 上行协议/说明 + 下行 Ukey 提示 + 按钮 | `#title` + `#left` + `#center` | 仅原型明确两行时才用 `#title`;按钮仍放 `#center` |
|
|
81
|
+
| 左侧 Ukey/说明 + 操作按钮 | `#left` + `#center` | 无协议顶栏 |
|
|
82
|
+
| 仅按钮 | **`#center`** | 取消/保存/提交等居中展示 |
|
|
83
|
+
|
|
84
|
+
> 上表为**默认**;有原型/需求具体描述时**以原型为准**,但**按钮默认仍居中**(`#center`),仅原型明确「按钮右对齐」时才改布局。
|
|
85
|
+
|
|
86
|
+
> **`#title` 为独立顶栏**:组件内渲染在 `foot-content` **上方**(`keepBlank-title` 占位约 94px),与 `#center` **不在同一行**。单行底栏(左勾选 + 按钮)**勿用 `#title`**;仅原型明确两行时才用。
|
|
87
|
+
|
|
88
|
+
### 方案选择(内部分析用,勿在回答中罗列;无原型时按此默认)
|
|
89
|
+
- 仅主操作:**`#center`** 放按钮组(保存/取消、提交等),按钮居中。
|
|
90
|
+
- 辅助说明 + 主操作:**`#left`** 放 Ukey/协议/提示文案,**`#center`** 放主按钮(居中)。
|
|
91
|
+
- **单行**协议勾选 + 按钮:**`#left`** 放勾选 + 协议链接,**`#center`** 放按钮(**勿用 `#title`**,**勿用**默认插槽 flex)。
|
|
92
|
+
- **两行**(上行协议 + 下行 Ukey + 按钮):**`#title`** 放 checkbox + 协议链接,再配 **`#left`** / **`#center`**。
|
|
93
|
+
- 旧版默认插槽:仅兼容存量页;**新建页禁止**用默认插槽包 flex 布局替代 `#center`。
|
|
94
|
+
|
|
95
|
+
## API(ylContainerFoot)
|
|
96
|
+
|
|
97
|
+
> 标签:`<yl-container-foot>` / `ylContainerFoot`;须在入口 `import ylContainerFoot from 'zqyl-component-base/lib/ylContainerFoot'` + `Vue.component('ylContainerFoot', ylContainerFoot)` 注册;页面模板直接使用,**勿**单页 import;**禁止**全量 `Vue.use(zqylComponentBase)`。
|
|
98
|
+
|
|
99
|
+
### Props
|
|
100
|
+
|
|
101
|
+
无。
|
|
102
|
+
|
|
103
|
+
### Events
|
|
104
|
+
|
|
105
|
+
无。
|
|
106
|
+
|
|
107
|
+
### Slots
|
|
108
|
+
|
|
109
|
+
| 插槽名 | 说明 |
|
|
110
|
+
| --- | --- |
|
|
111
|
+
| `title` | **独立顶栏**(协议勾选、说明等);渲染在 `foot-content` **上方**;有内容时占位约 94px;**与按钮不在同一行** |
|
|
112
|
+
| `left` | 左侧辅助说明或次要操作(约 40% 宽,左对齐) |
|
|
113
|
+
| `center` | **主操作按钮区(居中)**;组件 `.foot-content-center { text-align: center }` |
|
|
114
|
+
| `right` | 预留,当前未实现 |
|
|
115
|
+
| default | 兼容旧版;**新建页勿用**自定义 flex 替代 `#center` |
|
|
116
|
+
|
|
117
|
+
### 布局与样式
|
|
118
|
+
|
|
119
|
+
- 固定于视口底部(`position: fixed`),`z-index: 3`,`el-card` 阴影 `0 0 5px rgba(0,0,0,.09)`。
|
|
120
|
+
- 无 `title`:底栏 `min-height: 56px`,内置 `keepBlank` 占位 56px。
|
|
121
|
+
- 有 `title`:`keepBlank-title` 占位约 94px。
|
|
122
|
+
- 使用 `#left` / `#center` 时:三栏 table 布局,**`#center` 内按钮水平居中**。
|
|
123
|
+
- 业务基座内默认 `padding-left: 180px` 让出侧栏;子应用/iframe 场景组件会自动调整宽度。
|
|
124
|
+
- 文案高亮可用工具类 `defaultTextColor`(主题色)。
|
|
125
|
+
|
|
126
|
+
## 示例(参考写法,回答用户时只选用其中一种)
|
|
127
|
+
|
|
128
|
+
### 基础用法(left + center)
|
|
129
|
+
```vue
|
|
130
|
+
<yl-container-foot>
|
|
131
|
+
<template #left>
|
|
132
|
+
请插入尾号为<span class="defaultTextColor">【Ukey后四位】</span>的 Ukey 操作
|
|
133
|
+
</template>
|
|
134
|
+
<template #center>
|
|
135
|
+
<el-button type="primary">提交</el-button>
|
|
136
|
+
</template>
|
|
137
|
+
</yl-container-foot>
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
### 表单详情(取消 + 保存)
|
|
141
|
+
```vue
|
|
142
|
+
<yl-container-foot>
|
|
143
|
+
<template #center>
|
|
144
|
+
<el-button>取 消</el-button>
|
|
145
|
+
<el-button type="primary">保 存</el-button>
|
|
146
|
+
</template>
|
|
147
|
+
</yl-container-foot>
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
### 单行:协议勾选 + 按钮(**默认;按钮居中**)
|
|
151
|
+
```vue
|
|
152
|
+
<yl-container-foot>
|
|
153
|
+
<template #left>
|
|
154
|
+
<el-checkbox v-model="agreed">我已阅读并确认</el-checkbox>
|
|
155
|
+
<el-button type="text">《用户协议》</el-button>
|
|
156
|
+
</template>
|
|
157
|
+
<template #center>
|
|
158
|
+
<el-button type="primary" plain>暂存</el-button>
|
|
159
|
+
<el-button type="primary" :disabled="!agreed">提交</el-button>
|
|
160
|
+
</template>
|
|
161
|
+
</yl-container-foot>
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
### 两行:title 顶栏协议 + 下行 Ukey + 按钮(**原型明确两行时**)
|
|
165
|
+
```vue
|
|
166
|
+
<yl-container-foot>
|
|
167
|
+
<div slot="title">
|
|
168
|
+
<el-checkbox v-model="agreed">我已阅读并确认</el-checkbox>
|
|
169
|
+
<el-button type="text">《用户协议》</el-button>
|
|
170
|
+
</div>
|
|
171
|
+
<template #left>
|
|
172
|
+
请插入尾号为<span class="defaultTextColor">【Ukey后四位】</span>的 Ukey 操作
|
|
173
|
+
</template>
|
|
174
|
+
<template #center>
|
|
175
|
+
<el-button type="primary" :disabled="!agreed">提交</el-button>
|
|
176
|
+
</template>
|
|
177
|
+
</yl-container-foot>
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
### 默认插槽(兼容旧版,新建页勿用)
|
|
181
|
+
```vue
|
|
182
|
+
<yl-container-foot>
|
|
183
|
+
<el-button>取 消</el-button>
|
|
184
|
+
<el-button type="primary">确 定</el-button>
|
|
185
|
+
</yl-container-foot>
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
## 注意事项
|
|
189
|
+
- **操作按钮默认居中**:主操作**必须**放 **`#center`**;**禁止**默认插槽 + `justify-content: space-between` 把按钮顶到右侧。
|
|
190
|
+
- **有原型/具体说明 → 以原型为准**;**无说明 → 按本 skill 默认插槽选型**,勿臆造结构。
|
|
191
|
+
- **`#title` 与 `#center` 不在同一行**:`#title` 为独立顶栏;单行底栏(左勾选 + 按钮)→ **`#left` + `#center`**,**禁止** `#title` + `#center`、**禁止**默认插槽 flex。
|
|
192
|
+
- 有 `#title` 时页面需 `keepBlank-title`(约 94px)占位;单行底栏无 `#title` 时占位 56px。
|