@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.
Files changed (122) hide show
  1. package/package.json +1 -1
  2. package/src/zqyl-skills/backend/components/xiaoma-zqyl-bar-chart-backend/SKILL.md +142 -0
  3. package/src/zqyl-skills/backend/components/xiaoma-zqyl-button-backend/SKILL.md +108 -0
  4. package/src/zqyl-skills/backend/components/xiaoma-zqyl-collapse-backend/SKILL.md +142 -0
  5. package/src/zqyl-skills/backend/components/xiaoma-zqyl-container-foot-backend/SKILL.md +192 -0
  6. package/src/zqyl-skills/backend/components/xiaoma-zqyl-data-census-backend/SKILL.md +104 -0
  7. package/src/zqyl-skills/backend/components/xiaoma-zqyl-dialog-backend/SKILL.md +205 -0
  8. package/src/zqyl-skills/backend/components/xiaoma-zqyl-drawer-backend/SKILL.md +100 -0
  9. package/src/zqyl-skills/backend/components/xiaoma-zqyl-empty-page-backend/SKILL.md +131 -0
  10. package/src/zqyl-skills/backend/components/xiaoma-zqyl-file-upload-backend/SKILL.md +291 -0
  11. package/src/zqyl-skills/backend/components/xiaoma-zqyl-flow-chart-backend/SKILL.md +118 -0
  12. package/src/zqyl-skills/backend/components/xiaoma-zqyl-form-editor-backend/SKILL.md +315 -0
  13. package/src/zqyl-skills/backend/components/xiaoma-zqyl-form-view-backend/SKILL.md +165 -0
  14. package/src/zqyl-skills/backend/components/xiaoma-zqyl-funnel-chart-backend/SKILL.md +102 -0
  15. package/src/zqyl-skills/backend/components/xiaoma-zqyl-gauge-chart-backend/SKILL.md +103 -0
  16. package/src/zqyl-skills/backend/components/xiaoma-zqyl-heatmap-chart-backend/SKILL.md +125 -0
  17. package/src/zqyl-skills/backend/components/xiaoma-zqyl-line-chart-backend/SKILL.md +136 -0
  18. package/src/zqyl-skills/backend/components/xiaoma-zqyl-map-chart-backend/SKILL.md +130 -0
  19. package/src/zqyl-skills/backend/components/xiaoma-zqyl-message-feedback-backend/SKILL.md +63 -0
  20. package/src/zqyl-skills/backend/components/xiaoma-zqyl-module-backend/SKILL.md +180 -0
  21. package/src/zqyl-skills/backend/components/xiaoma-zqyl-pie-chart-backend/SKILL.md +132 -0
  22. package/src/zqyl-skills/backend/components/xiaoma-zqyl-popover-backend/SKILL.md +61 -0
  23. package/src/zqyl-skills/backend/components/xiaoma-zqyl-preview-backend/SKILL.md +117 -0
  24. package/src/zqyl-skills/backend/components/xiaoma-zqyl-search-form-backend/SKILL.md +239 -0
  25. package/src/zqyl-skills/backend/components/xiaoma-zqyl-select-tree-backend/SKILL.md +161 -0
  26. package/src/zqyl-skills/backend/components/xiaoma-zqyl-table-simple-backend/SKILL.md +341 -0
  27. package/src/zqyl-skills/backend/components/xiaoma-zqyl-tips-backend/SKILL.md +257 -0
  28. package/src/zqyl-skills/backend/components/xiaoma-zqyl-title-backend/SKILL.md +145 -0
  29. package/src/zqyl-skills/backend/xiaoma-zqyl-feedback-page-backend/SKILL.md +30 -0
  30. package/src/zqyl-skills/backend/xiaoma-zqyl-feedback-page-backend/pages/feedbackPage.md +124 -0
  31. package/src/zqyl-skills/backend/xiaoma-zqyl-form-detail-page-backend/SKILL.md +39 -0
  32. package/src/zqyl-skills/backend/xiaoma-zqyl-form-detail-page-backend/pages/formDetailPage.md +354 -0
  33. package/src/zqyl-skills/backend/xiaoma-zqyl-import-dialog-page-backend/SKILL.md +27 -0
  34. package/src/zqyl-skills/backend/xiaoma-zqyl-import-dialog-page-backend/pages/importDialogPage.md +101 -0
  35. package/src/zqyl-skills/backend/xiaoma-zqyl-list-page-backend/SKILL.md +31 -0
  36. package/src/zqyl-skills/backend/xiaoma-zqyl-list-page-backend/pages/listPage.md +306 -0
  37. package/src/zqyl-skills/front/components/xiaoma-zqyl-bar-chart-front/SKILL.md +142 -0
  38. package/src/zqyl-skills/front/components/xiaoma-zqyl-button-front/SKILL.md +108 -0
  39. package/src/zqyl-skills/front/components/xiaoma-zqyl-collapse-front/SKILL.md +142 -0
  40. package/src/zqyl-skills/front/components/xiaoma-zqyl-container-foot-front/SKILL.md +192 -0
  41. package/src/zqyl-skills/front/components/xiaoma-zqyl-data-census-front/SKILL.md +104 -0
  42. package/src/zqyl-skills/front/components/xiaoma-zqyl-dialog-front/SKILL.md +205 -0
  43. package/src/zqyl-skills/front/components/xiaoma-zqyl-drawer-front/SKILL.md +100 -0
  44. package/src/zqyl-skills/front/components/xiaoma-zqyl-empty-page-front/SKILL.md +131 -0
  45. package/src/zqyl-skills/front/components/xiaoma-zqyl-file-upload-front/SKILL.md +291 -0
  46. package/src/zqyl-skills/front/components/xiaoma-zqyl-flow-chart-front/SKILL.md +118 -0
  47. package/src/zqyl-skills/front/components/xiaoma-zqyl-form-editor-front/SKILL.md +315 -0
  48. package/src/zqyl-skills/front/components/xiaoma-zqyl-form-view-front/SKILL.md +165 -0
  49. package/src/zqyl-skills/front/components/xiaoma-zqyl-funnel-chart-front/SKILL.md +102 -0
  50. package/src/zqyl-skills/front/components/xiaoma-zqyl-gauge-chart-front/SKILL.md +103 -0
  51. package/src/zqyl-skills/front/components/xiaoma-zqyl-heatmap-chart-front/SKILL.md +125 -0
  52. package/src/zqyl-skills/front/components/xiaoma-zqyl-line-chart-front/SKILL.md +136 -0
  53. package/src/zqyl-skills/front/components/xiaoma-zqyl-map-chart-front/SKILL.md +130 -0
  54. package/src/zqyl-skills/front/components/xiaoma-zqyl-message-feedback-front/SKILL.md +63 -0
  55. package/src/zqyl-skills/front/components/xiaoma-zqyl-module-front/SKILL.md +180 -0
  56. package/src/zqyl-skills/front/components/xiaoma-zqyl-pie-chart-front/SKILL.md +132 -0
  57. package/src/zqyl-skills/front/components/xiaoma-zqyl-popover-front/SKILL.md +61 -0
  58. package/src/zqyl-skills/front/components/xiaoma-zqyl-preview-front/SKILL.md +117 -0
  59. package/src/zqyl-skills/front/components/xiaoma-zqyl-search-form-front/SKILL.md +239 -0
  60. package/src/zqyl-skills/front/components/xiaoma-zqyl-select-tree-front/SKILL.md +161 -0
  61. package/src/zqyl-skills/front/components/xiaoma-zqyl-table-simple-front/SKILL.md +341 -0
  62. package/src/zqyl-skills/front/components/xiaoma-zqyl-tips-front/SKILL.md +257 -0
  63. package/src/zqyl-skills/front/components/xiaoma-zqyl-title-front/SKILL.md +145 -0
  64. package/src/zqyl-skills/front/xiaoma-zqyl-feedback-page-front/SKILL.md +30 -0
  65. package/src/zqyl-skills/front/xiaoma-zqyl-feedback-page-front/pages/feedbackPage.md +124 -0
  66. package/src/zqyl-skills/front/xiaoma-zqyl-form-detail-page-front/SKILL.md +39 -0
  67. package/src/zqyl-skills/front/xiaoma-zqyl-form-detail-page-front/pages/formDetailPage.md +351 -0
  68. package/src/zqyl-skills/front/xiaoma-zqyl-import-dialog-page-front/SKILL.md +27 -0
  69. package/src/zqyl-skills/front/xiaoma-zqyl-import-dialog-page-front/pages/importDialogPage.md +101 -0
  70. package/src/zqyl-skills/front/xiaoma-zqyl-list-page-front/SKILL.md +31 -0
  71. package/src/zqyl-skills/front/xiaoma-zqyl-list-page-front/pages/listPage.md +380 -0
  72. package/src/zqyl-skills/mid/components/xiaoma-zqyl-bar-chart-mid/SKILL.md +142 -0
  73. package/src/zqyl-skills/mid/components/xiaoma-zqyl-button-mid/SKILL.md +108 -0
  74. package/src/zqyl-skills/mid/components/xiaoma-zqyl-collapse-mid/SKILL.md +142 -0
  75. package/src/zqyl-skills/mid/components/xiaoma-zqyl-container-foot-mid/SKILL.md +192 -0
  76. package/src/zqyl-skills/mid/components/xiaoma-zqyl-data-census-mid/SKILL.md +104 -0
  77. package/src/zqyl-skills/mid/components/xiaoma-zqyl-dialog-mid/SKILL.md +205 -0
  78. package/src/zqyl-skills/mid/components/xiaoma-zqyl-drawer-mid/SKILL.md +100 -0
  79. package/src/zqyl-skills/mid/components/xiaoma-zqyl-empty-page-mid/SKILL.md +131 -0
  80. package/src/zqyl-skills/mid/components/xiaoma-zqyl-file-upload-mid/SKILL.md +291 -0
  81. package/src/zqyl-skills/mid/components/xiaoma-zqyl-flow-chart-mid/SKILL.md +118 -0
  82. package/src/zqyl-skills/mid/components/xiaoma-zqyl-form-editor-mid/SKILL.md +315 -0
  83. package/src/zqyl-skills/mid/components/xiaoma-zqyl-form-view-mid/SKILL.md +165 -0
  84. package/src/zqyl-skills/mid/components/xiaoma-zqyl-funnel-chart-mid/SKILL.md +102 -0
  85. package/src/zqyl-skills/mid/components/xiaoma-zqyl-gauge-chart-mid/SKILL.md +103 -0
  86. package/src/zqyl-skills/mid/components/xiaoma-zqyl-heatmap-chart-mid/SKILL.md +125 -0
  87. package/src/zqyl-skills/mid/components/xiaoma-zqyl-line-chart-mid/SKILL.md +136 -0
  88. package/src/zqyl-skills/mid/components/xiaoma-zqyl-manager-title-mid/SKILL.md +132 -0
  89. package/src/zqyl-skills/mid/components/xiaoma-zqyl-map-chart-mid/SKILL.md +130 -0
  90. package/src/zqyl-skills/mid/components/xiaoma-zqyl-message-feedback-mid/SKILL.md +63 -0
  91. package/src/zqyl-skills/mid/components/xiaoma-zqyl-module-mid/SKILL.md +180 -0
  92. package/src/zqyl-skills/mid/components/xiaoma-zqyl-mps-table-mid/SKILL.md +179 -0
  93. package/src/zqyl-skills/mid/components/xiaoma-zqyl-pie-chart-mid/SKILL.md +132 -0
  94. package/src/zqyl-skills/mid/components/xiaoma-zqyl-popover-mid/SKILL.md +61 -0
  95. package/src/zqyl-skills/mid/components/xiaoma-zqyl-preview-mid/SKILL.md +117 -0
  96. package/src/zqyl-skills/mid/components/xiaoma-zqyl-search-form-mid/SKILL.md +239 -0
  97. package/src/zqyl-skills/mid/components/xiaoma-zqyl-select-tree-mid/SKILL.md +161 -0
  98. package/src/zqyl-skills/mid/components/xiaoma-zqyl-table-simple-mid/SKILL.md +341 -0
  99. package/src/zqyl-skills/mid/components/xiaoma-zqyl-tips-mid/SKILL.md +257 -0
  100. package/src/zqyl-skills/mid/components/xiaoma-zqyl-title-mid/SKILL.md +145 -0
  101. package/src/zqyl-skills/mid/xiaoma-zqyl-feedback-page-mid/SKILL.md +30 -0
  102. package/src/zqyl-skills/mid/xiaoma-zqyl-feedback-page-mid/pages/feedbackPage.md +125 -0
  103. package/src/zqyl-skills/mid/xiaoma-zqyl-form-detail-page-mid/SKILL.md +39 -0
  104. package/src/zqyl-skills/mid/xiaoma-zqyl-form-detail-page-mid/pages/formDetailPage.md +357 -0
  105. package/src/zqyl-skills/mid/xiaoma-zqyl-import-dialog-page-mid/SKILL.md +27 -0
  106. package/src/zqyl-skills/mid/xiaoma-zqyl-import-dialog-page-mid/pages/importDialogPage.md +102 -0
  107. package/src/zqyl-skills/mid/xiaoma-zqyl-list-page-mid/SKILL.md +30 -0
  108. package/src/zqyl-skills/mid/xiaoma-zqyl-list-page-mid/pages/listPage.md +389 -0
  109. package/src/zqyl-skills/module-help.csv +15 -0
  110. package/src/zqyl-skills/module.yaml +38 -0
  111. package/src/zqyl-skills/xiaoma-zqyl-ui-spec/SKILL.md +478 -0
  112. package/src/zqyl-skills/xiaoma-zqyl-ui-spec/VERSION.md +30 -0
  113. package/src/zqyl-skills/xiaoma-zqyl-ui-spec/components-index.md +55 -0
  114. package/src/zqyl-skills/xiaoma-zqyl-ui-spec/design-tokens.md +167 -0
  115. package/src/zqyl-skills/xiaoma-zqyl-ui-spec/reference.md +385 -0
  116. package/tools/installer/core/manifest.js +4 -3
  117. package/tools/installer/list-options.js +2 -2
  118. package/tools/installer/modules/official-modules.js +15 -47
  119. package/tools/installer/modules/version-resolver.js +2 -2
  120. package/tools/installer/project-root.js +12 -9
  121. package/tools/installer/ui.js +2 -1
  122. package/tools/validate-zqyl-pack.js +171 -0
@@ -0,0 +1,103 @@
1
+ ---
2
+ name: xiaoma-zqyl-gauge-chart-front
3
+ description: 前台仪表盘(进度/完成度、刻度区间、详情格式化)的 Vue2 + zqyl-component-base 实现规范(ylGaugeChart)。在用户提及 ylGaugeChart、yl-gauge-chart、仪表盘、进度仪表盘、完成度,或需要在前台实现该组件时使用。适用于前台门户仓库(如 zqyl-crclopen,platformType `yx`;页头/表格用 ylTitle + ylTableSimple)。 Use when implementing or reviewing the gauge-chart (ylGaugeChart) component on a ZQYL front page.
4
+ ---
5
+
6
+ # 仪表盘(前台)
7
+
8
+ 你是一个前端组件实现与改造助手。你必须严格按本技能的规则输出。
9
+
10
+ ## 适用范围
11
+ - 平台:前台
12
+ - platformType:`yx`
13
+ - 组件条目:`gaugeChart`
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-gauge-chart」、「ylGaugeChart」、「仪表盘」、「进度仪表盘」时。
48
+
49
+ 不适用:多指标对比 → 使用 `ylBarChart`;占比构成 → 使用 `ylPieChart`;简单静态摘要 → 使用 `ylDataCensus`。
50
+
51
+ ## API(ylGaugeChart)
52
+
53
+ > 标签:`<yl-gauge-chart>` / `ylGaugeChart`;须在入口 `import ylGaugeChart from 'zqyl-component-base/lib/ylGaugeChart'` + `Vue.component('ylGaugeChart', ylGaugeChart)` 注册;页面模板直接使用,**勿**单页 import;**禁止**全量 `Vue.use(zqylComponentBase)`。
54
+
55
+ ### Props
56
+
57
+ | 属性名 | 类型 | 默认值 | 是否必填 | 说明 |
58
+ | --- | --- | --- | --- | --- |
59
+ | `chartData` | Object | `{}` | 是 | 图表配置数据对象 |
60
+ | `id` | String | `'GaugeChart'` | 否 | 图表容器 DOM id,同页多图须唯一 |
61
+ | `height` | String | `'400px'` | 否 | 图表高度 |
62
+
63
+ ### `chartData` 配置项
64
+
65
+ | 属性名 | 类型 | 默认值 | 说明 |
66
+ | --- | --- | --- | --- |
67
+ | `titleText` | String | `''` | 图表标题文本 |
68
+ | `seriesData` | Object | - | 仪表盘数据 `{ name, value }` |
69
+ | `seriesSection` | Array | - | 数值范围 `[最小值, 最大值]` |
70
+ | `seriesDetailFormatter` | String \| Function | `'{value}'` | 中心详情格式化 |
71
+ | `colorList` | Array | `[]` | 自定义颜色数组 |
72
+
73
+ ### Events / Slots
74
+
75
+ 无对外事件与插槽。
76
+
77
+ ### Methods
78
+
79
+ | 方法名 | 说明 |
80
+ | --- | --- |
81
+ | `setEchartOption()` | 父组件数据变化后通过 `ref` 调用,更新并重新渲染图表 |
82
+
83
+ ## 示例(参考写法,回答用户时只选用其中一种)
84
+
85
+ ### 基础用法
86
+ ```vue
87
+ <yl-gauge-chart :chartData="gaugeData" id="basicGaugeChart" height="400px" />
88
+ ```
89
+
90
+ // gaugeData: { titleText, seriesSection: [0, 100], seriesDetailFormatter: '{value} km/h', seriesData: { name, value } }
91
+
92
+ ### 数据更新后刷新
93
+ ```js
94
+ // this.chartData = await fetchGaugeData();
95
+ // this.$refs.gaugeChart.setEchartOption();
96
+ ```
97
+
98
+ ## 注意事项
99
+ - `chartData` 由接口或 `computed` 赋值;**禁止**在规范页手写长期静态假数据,接口未就绪时先空结构,请求后再更新。
100
+ - `seriesData` 为**单个对象**(非数组),必须包含 `name` 与 `value`。
101
+ - 未设置 `seriesSection` 时默认刻度范围为 0–100;`seriesDetailFormatter` 支持 ECharts 字符串模板或函数。
102
+ - 同页多个 `<yl-gauge-chart>` 时 `id` 必须唯一,否则 ECharts 容器冲突。
103
+ - 组件基于 ECharts 5.x(随 `zqyl-component-base` 依赖);内置半圆进度样式,窗口 resize 时自动调整尺寸。
@@ -0,0 +1,125 @@
1
+ ---
2
+ name: xiaoma-zqyl-heatmap-chart-front
3
+ description: 前台ECharts 热力图(日历热力图、矩阵热力图、visualMap)的 Vue2 实现规范(ECharts Heatmap)。在用户提及热力图、heatmap、ECharts 热力图、日历热力图、渠道时序热力图、矩阵热力图,或需要在前台实现该组件时使用。适用于前台门户仓库(如 zqyl-crclopen,platformType `yx`;页头/表格用 ylTitle + ylTableSimple)。 Use when implementing or reviewing the heatmap-chart (ECharts Heatmap) component on a ZQYL front page.
4
+ ---
5
+
6
+ # 热力图(前台)
7
+
8
+ 你是一个前端组件实现与改造助手。你必须严格按本技能的规则输出。
9
+
10
+ ## 适用范围
11
+ - 平台:前台
12
+ - platformType:`yx`
13
+ - 组件条目:`heatmapChart`
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
+ - 用户提到「热力图」、「heatmap」、「日历热力图」、「ECharts 热力图」时。
48
+
49
+ 不适用:折线/柱状/饼图等标准图表 → 优先 `ylLineChart` / `ylBarChart` / `ylPieChart`;静态指标卡片 → `ylDataCensus`。
50
+
51
+ > **说明**:`zqyl-component-base` 暂无 `ylHeatmapChart` 封装,业务层直接使用 **ECharts 5.x**(项目内随依赖已安装)。可参考 `zqyl-manager` 的 `jointVentureYx/components/echart.vue`(`chartType: 'heatmap'`)。
52
+
53
+ ## API(ECharts 热力图)
54
+
55
+ ### 依赖引入
56
+
57
+ ```js
58
+ import * as echarts from 'echarts';
59
+ ```
60
+
61
+ ### 日历热力图(calendar + heatmap)
62
+
63
+ | 配置项 | 类型 | 说明 |
64
+ | --- | --- | --- |
65
+ | `calendar.range` | `[String, String]` | 日期范围,如 `['2024-06-13', '2025-06-13']` |
66
+ | `calendar.cellSize` | `Array` | 单元格 `[宽, 高]`,可按视口响应式调整 |
67
+ | `series.data` | `Array` | 每项 `[date, value, …]`,date 为 `YYYY-MM-DD` |
68
+ | `visualMap` | `Object` | 颜色映射;日历场景可 `show: false` |
69
+ | `tooltip` | `Object` | 建议 `trigger: 'item'`,formatter 展示日期与业务字段 |
70
+
71
+ ### 直角坐标热力图(category × category)
72
+
73
+ | 配置项 | 类型 | 说明 |
74
+ | --- | --- | --- |
75
+ | `xAxis.type` / `yAxis.type` | `String` | 均为 `'category'` |
76
+ | `xAxis.data` / `yAxis.data` | `Array` | 类目列表 |
77
+ | `series.data` | `Array` | 每项 `[xIndex, yIndex, value]` |
78
+ | `visualMap` | `Object` | 连续型颜色映射,建议 `calculable: true` |
79
+
80
+ ### Events / Slots
81
+
82
+ 无 Vue 组件封装;ECharts 实例可监听 `click` 等原生事件。
83
+
84
+ ### 生命周期
85
+
86
+ | 阶段 | 说明 |
87
+ | --- | --- |
88
+ | `mounted` | `echarts.init(dom)` + `setOption(option)` |
89
+ | 数据更新 | `chart.setOption(newOption, true)` 或 `clear` 后重设 |
90
+ | `resize` | 监听窗口变化调用 `chart.resize()`;日历热力图同步更新 `cellSize` |
91
+ | `beforeDestroy` | `chart.dispose()` 并移除 resize 监听 |
92
+
93
+ ## 示例(参考写法,回答用户时只选用其中一种)
94
+
95
+ ### 日历热力图
96
+ ```vue
97
+ <div ref="heatmap" style="height: 320px" />
98
+ ```
99
+
100
+ ```js
101
+ import * as echarts from 'echarts';
102
+
103
+ // chartData: { range: [start, end], series: [[date, amount, count], …], tooltip }
104
+ const option = {
105
+ visualMap: { show: false, min: 0, max: 1000, inRange: { color: ['#eff3f7', '#57b628'] } },
106
+ calendar: { range: chartData.range, cellSize: [20, 24] },
107
+ series: { type: 'heatmap', coordinateSystem: 'calendar', data: chartData.series },
108
+ tooltip: chartData.tooltip,
109
+ };
110
+ this.chart = echarts.init(this.$refs.heatmap);
111
+ this.chart.setOption(option);
112
+ ```
113
+
114
+ ### 直角坐标热力图
115
+ ```js
116
+ // series: [[xIndex, yIndex, value], …]
117
+ series: [{ type: 'heatmap', data: series, label: { show: true } }]
118
+ ```
119
+
120
+ ## 注意事项
121
+ - 热力图数据须由接口或 computed 赋值;接口返回后组装 `series`,**禁止**在业务页长期维护大段静态假数据。
122
+ - 日历热力图数据格式与 manager `channelTime.vue` 一致:`[[loanApplyTime, loanAmtSum, loanNumber], …]`,tooltip 按需格式化金额/笔数。
123
+ - 同页多个 ECharts 实例时容器 DOM 须独立,`dispose` 避免内存泄漏。
124
+ - 窄屏下缩小 `calendar.cellSize` 与外层高度,避免横向溢出;可参考 manager `responsiveConfig()`。
125
+ - ECharts 版本随项目依赖(当前 5.3.x);与 `yl*Chart` 组件共用同一 echarts 包。
@@ -0,0 +1,136 @@
1
+ ---
2
+ name: xiaoma-zqyl-line-chart-front
3
+ description: 前台趋势折线图(单折线/多折线/折柱组合、平滑曲线、面积阴影)的 Vue2 + zqyl-component-base 实现规范(ylLineChart)。在用户提及 ylLineChart、yl-line-chart、折线图、趋势图、多折线、折线柱状组合,或需要在前台实现该组件时使用。适用于前台门户仓库(如 zqyl-crclopen,platformType `yx`;页头/表格用 ylTitle + ylTableSimple)。 Use when implementing or reviewing the line-chart (ylLineChart) component on a ZQYL front page.
4
+ ---
5
+
6
+ # 折线图(前台)
7
+
8
+ 你是一个前端组件实现与改造助手。你必须严格按本技能的规则输出。
9
+
10
+ ## 适用范围
11
+ - 平台:前台
12
+ - platformType:`yx`
13
+ - 组件条目:`lineChart`
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-line-chart」、「ylLineChart」、「折线图」、「趋势图」时。
48
+
49
+ 不适用:仅展示若干静态指标摘要(描述 + 数值)→ 使用 `ylDataCensus`;复杂定制图表 → 业务层 ECharts。
50
+
51
+ ## API(ylLineChart)
52
+
53
+ > 标签:`<yl-line-chart>` / `ylLineChart`;须在入口 `import ylLineChart from 'zqyl-component-base/lib/ylLineChart'` + `Vue.component('ylLineChart', ylLineChart)` 注册;页面模板直接使用,**勿**单页 import;**禁止**全量 `Vue.use(zqylComponentBase)`。
54
+
55
+ ### Props
56
+
57
+ | 属性名 | 类型 | 默认值 | 是否必填 | 说明 |
58
+ | --- | --- | --- | --- | --- |
59
+ | `chartData` | Object | `{}` | 是 | 图表配置数据对象 |
60
+ | `id` | String | `'LineChart'` | 否 | 图表容器 DOM id,同页多图须唯一 |
61
+ | `height` | String | `'400px'` | 否 | 图表高度 |
62
+
63
+ ### `chartData` 配置项
64
+
65
+ | 属性名 | 类型 | 默认值 | 说明 |
66
+ | --- | --- | --- | --- |
67
+ | `titleText` | String | `''` | 图表标题 |
68
+ | `xAxis` | Object | - | X 轴配置,参考 ECharts `xAxis` |
69
+ | `yAxis` | Object \| Array | - | Y 轴配置,参考 ECharts `yAxis` |
70
+ | `grid` | Object | `{}` | 网格边距,参考 ECharts `grid` |
71
+ | `seriesData` | Array | `[]` | **单折线**数据数组 |
72
+ | `seriesJson` | Array | `[]` | **多系列**配置(多折线 / 折柱组合) |
73
+ | `smooth` | Boolean | `false` | 是否平滑曲线 |
74
+ | `seriesColor` | String | - | 单折线颜色 |
75
+ | `serieAareaStyle` | Boolean | `false` | 是否显示折线下方面积阴影(组件库字段名) |
76
+
77
+ ### `seriesJson[]` 项字段
78
+
79
+ | 字段 | 类型 | 说明 |
80
+ | --- | --- | --- |
81
+ | `name` | String | 系列名称(图例) |
82
+ | `type` | String | `'line'` \| `'bar'` 等 |
83
+ | `data` | Array | 数据数组 |
84
+ | `color` | String | 系列颜色 |
85
+ | `smooth` | Boolean | 是否平滑(可被 chartData.smooth 覆盖) |
86
+ | `labelShow` | Boolean | 是否显示数据标签 |
87
+ | `seriesLable` | Object | 数据标签配置(含 formatter 等) |
88
+ | `stack` | String | 堆叠标识 |
89
+ | `xAxisIndex` / `yAxisIndex` | Number | 使用的坐标轴索引 |
90
+
91
+ ### Events / Slots
92
+
93
+ 无对外事件与插槽。
94
+
95
+ ### Methods
96
+
97
+ | 方法名 | 说明 |
98
+ | --- | --- |
99
+ | `setEchartOption()` | 父组件数据变化后通过 `ref` 调用,更新并重新渲染图表 |
100
+
101
+ ## 示例(参考写法,回答用户时只选用其中一种)
102
+
103
+ ### 基础用法(单折线)
104
+ ```vue
105
+ <yl-line-chart :chartData="chartData" id="basicLineChart" height="400px" />
106
+ ```
107
+
108
+ // chartData 示例结构:
109
+ // { titleText, xAxis: { type, data }, yAxis: { type }, seriesData, smooth, seriesColor }
110
+
111
+ ### 多折线图
112
+ ```vue
113
+ <yl-line-chart :chartData="multiLineData" id="multiLineChart" height="400px" />
114
+ ```
115
+
116
+ // multiLineData 使用 seriesJson: [{ name, type: 'line', data, color }, ...]
117
+
118
+ ### 折线 + 柱状组合
119
+ ```vue
120
+ <yl-line-chart :chartData="comboData" id="barLineChart" height="400px" />
121
+ ```
122
+
123
+ // comboData.seriesJson 中 type 分别为 'bar' 与 'line'
124
+
125
+ ### 数据更新后刷新
126
+ ```js
127
+ // this.chartData = await fetchChartData();
128
+ // this.$refs.lineChart.setEchartOption();
129
+ ```
130
+
131
+ ## 注意事项
132
+ - `chartData` 由接口或 `computed` 赋值;**禁止**在规范页手写长期静态假数据,接口未就绪时先空结构,请求后再更新。
133
+ - 单折线用 `seriesData`;多系列(多折线、折柱组合)用 `seriesJson`,不要混用导致渲染异常。
134
+ - 同页多个 `<yl-line-chart>` 时 `id` 必须唯一,否则 ECharts 容器冲突。
135
+ - 面积阴影字段为组件库约定的 `serieAareaStyle`(非 `seriesAreaStyle`)。
136
+ - 组件基于 ECharts 5.x(随 `zqyl-component-base` 依赖);`xAxis` / `yAxis` / `grid` 可直接透传 ECharts 配置。
@@ -0,0 +1,130 @@
1
+ ---
2
+ name: xiaoma-zqyl-map-chart-front
3
+ description: 前台ECharts 中国地图(geo、visualMap、地域数据分布)的 Vue2 实现规范(ECharts Map)。在用户提及地图、中国地图、ECharts 地图、地域分布、用户来源地图、mapChart,或需要在前台实现该组件时使用。适用于前台门户仓库(如 zqyl-crclopen,platformType `yx`;页头/表格用 ylTitle + ylTableSimple)。 Use when implementing or reviewing the map-chart (ECharts Map) component on a ZQYL front page.
4
+ ---
5
+
6
+ # 地图(前台)
7
+
8
+ 你是一个前端组件实现与改造助手。你必须严格按本技能的规则输出。
9
+
10
+ ## 适用范围
11
+ - 平台:前台
12
+ - platformType:`yx`
13
+ - 组件条目:`mapChart`
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
+ - 用户提到「地图」、「中国地图」、「ECharts 地图」、「地域分布」、「用户来源地图」时。
48
+
49
+ 不适用:时间趋势 → `ylLineChart`;结构占比 → `ylPieChart`;矩阵/日历密度 → 热力图规范;流程图 → `ylFlowChart`。
50
+
51
+ > **说明**:`zqyl-component-base` 暂无 `ylMapChart` 封装,业务层直接使用 **ECharts 5.x**。可参考 `zqyl-manager` 的 `analysisData/components/Echart.vue`(`isAxisChart: 'map'`)与 `generalView.vue`。
52
+
53
+ ## API(ECharts 中国地图)
54
+
55
+ ### 依赖引入
56
+
57
+ ```js
58
+ import * as echarts from 'echarts';
59
+ import chinaGeo from '@/path/to/data.json'; // 与 manager analysisData/components/data.json 同源
60
+ echarts.registerMap('china', chinaGeo);
61
+ ```
62
+
63
+ ### chartData 结构
64
+
65
+ | 字段 | 类型 | 说明 |
66
+ | --- | --- | --- |
67
+ | `series` | `Array` | 地图数据,每项 `{ name, value, percentage? }`;`name` 须与 GeoJSON 区域名一致 |
68
+ | `visualMap` | `Object` | 分段 `piecewise` 或连续 `continuous`;无数据时可 `{ show: false }` |
69
+ | `tooltip` | `Object` | 建议 `trigger: 'item'`,formatter 过滤「南海诸岛」 |
70
+
71
+ ### geo / series 关键项
72
+
73
+ | 配置项 | 类型 | 说明 |
74
+ | --- | --- | --- |
75
+ | `geo.map` | `String` | 固定 `'china'`(与 registerMap 名称一致) |
76
+ | `geo.aspectScale` | `Number` | 长宽比,manager 默认 `0.8` |
77
+ | `geo.zoom` | `Number` | 视觉缩放,manager 默认 `1.2` |
78
+ | `geo.roam` | `Boolean` | 是否缩放/平移,默认 `false` |
79
+ | `series.type` | `String` | `'map'` |
80
+ | `series.geoIndex` | `Number` | 与 geo 关联,通常为 `0` |
81
+ | `series.selectedMode` | `Boolean` | 建议 `false`,取消区域选中交互 |
82
+
83
+ ### Events / Slots
84
+
85
+ 无 Vue 组件封装;ECharts 实例可监听 `click` 等原生事件。
86
+
87
+ ### 生命周期
88
+
89
+ | 阶段 | 说明 |
90
+ | --- | --- |
91
+ | 首次渲染 | `registerMap` 一次 + `echarts.init(dom)` + `setOption(option)` |
92
+ | 数据更新 | `chart.setOption(newOption, true)` 或 `clear` 后重设 |
93
+ | `resize` | 监听窗口变化调用 `chart.resize()` |
94
+ | `beforeDestroy` | `chart.dispose()` 并移除 resize 监听 |
95
+
96
+ ## 示例(参考写法,回答用户时只选用其中一种)
97
+
98
+ ### 中国地图(分段 visualMap)
99
+ ```vue
100
+ <div ref="mapChart" style="height: 520px" />
101
+ ```
102
+
103
+ ```js
104
+ import * as echarts from 'echarts';
105
+ import chinaGeo from './data.json';
106
+
107
+ echarts.registerMap('china', chinaGeo);
108
+ const option = {
109
+ tooltip: { trigger: 'item', formatter: (item) => item.data?.percentage ? `${item.name} ${item.data.percentage}%` : `${item.name} ${item.value}` },
110
+ visualMap: { show: true, type: 'piecewise', right: 50, bottom: 50, pieces: [...] },
111
+ geo: { map: 'china', aspectScale: 0.8, zoom: 1.2, roam: false, top: '10%' },
112
+ series: [{ type: 'map', geoIndex: 0, selectedMode: false, data: provinceList }],
113
+ };
114
+ this.chart = echarts.init(this.$refs.mapChart);
115
+ this.chart.setOption(option);
116
+ ```
117
+
118
+ ### 连续 visualMap + 漫游
119
+ ```js
120
+ visualMap: { type: 'continuous', min: 0, max: 100, calculable: true, inRange: { color: ['#eff3f7', '#57b628'] } },
121
+ geo: { map: 'china', roam: true, ... }
122
+ ```
123
+
124
+ ## 注意事项
125
+ - 地图数据须由接口赋值;接口返回后组装 `series`,**禁止**在业务页长期维护大段静态假数据。
126
+ - 省份名须与 GeoJSON 中 `properties.name` 一致(如「广东」而非「广东省」);不匹配则区域不着色。
127
+ - tooltip formatter 建议排除「南海诸岛」,与 manager `Echart.vue` 一致。
128
+ - `registerMap` 全局只需执行一次;同页多图共用同一 map 名称 `china`。
129
+ - 同页多个 ECharts 实例时容器 DOM 须独立,`dispose` 避免内存泄漏。
130
+ - ECharts 版本随项目依赖(当前 5.3.x);GeoJSON 文件随项目静态资源引入,勿依赖 CDN。
@@ -0,0 +1,63 @@
1
+ ---
2
+ name: xiaoma-zqyl-message-feedback-front
3
+ description: 前台轻量 Toast 与打断式对话框反馈(成功/警示/确认/引导下一步)的 Element UI 实现规范(Message / MessageBox)。在用户提及 Message、MessageBox、$message、$confirm、轻量提示、操作反馈,或需要在前台实现该组件时使用。适用于前台门户仓库(如 zqyl-crclopen,platformType `yx`;页头/表格用 ylTitle + ylTableSimple)。 Use when implementing or reviewing the message-feedback (Message / MessageBox) component on a ZQYL front page.
4
+ ---
5
+
6
+ # Message / MessageBox(前台)
7
+
8
+ 你是一个前端组件实现与改造助手。你必须严格按本技能的规则输出。
9
+
10
+ ## 适用范围
11
+ - 平台:前台
12
+ - platformType:`yx`
13
+ - 组件条目:`messageFeedback`
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
+ - **Message**:主动操作后简短反馈,约 3 秒消失;文案如「提交成功」。
47
+ - **MessageBox**:打断操作;成功引导下一步、失败说明、危险确认、多按钮选择。
48
+ - **MessageBox 不传 `type`**:不展示左侧 success/warning 等状态图标,仅保留标题 + 文案 + 按钮。
49
+ - **ylTips 常驻**:平台变更/权限类需持续可见的警示(可关闭)。
50
+
51
+ 勿用 Message:需用户记忆的信息、复杂引导、整页结果反馈。
52
+
53
+ ## 代码示例
54
+ ```js
55
+ this.$message.success('提交成功');
56
+ // 不传 type,避免左侧状态图标
57
+ this.$confirm('提交成功,是否查看进度?', '提示', { confirmButtonText: '去看看', cancelButtonText: '取消' }).then(...);
58
+ ```
59
+
60
+ ## 注意事项
61
+ - Message 文案宜短;需引导下一步用 MessageBox 或结果页。
62
+ - MessageBox 调用时**不要传 `type`**(success/warning/info/error),左侧不展示状态图标。
63
+ - 平台维护类通知用 `ylTips` + 可关闭,非 Message。