@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,180 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: xiaoma-zqyl-module-front
|
|
3
|
+
description: 前台折叠模块卡片(主副标题、operation 操作区、expand 扩展区、footer 底栏)的 Vue2 实现规范(ylModule)。在用户提及 ylModule、yl-module、折叠模块、模块卡片、分块展示、扩展区、operation 操作区,或需要在前台实现该组件时使用。适用于前台门户仓库(如 zqyl-crclopen,platformType `yx`;页头/表格用 ylTitle + ylTableSimple)。 Use when implementing or reviewing the module (ylModule) component on a ZQYL front page.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 折叠模块(前台)
|
|
7
|
+
|
|
8
|
+
你是一个前端组件实现与改造助手。你必须严格按本技能的规则输出。
|
|
9
|
+
|
|
10
|
+
## 适用范围
|
|
11
|
+
- 平台:前台
|
|
12
|
+
- platformType:`yx`
|
|
13
|
+
- 组件条目:`module`
|
|
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-module」、「ylModule」、「折叠模块」、「模块卡片」时。
|
|
49
|
+
|
|
50
|
+
不适用:
|
|
51
|
+
- 仅需单行标题 + 简单折叠正文、无卡片结构 → 使用 **`ylCollapse`**。
|
|
52
|
+
- 全页固定底部操作栏 → 使用 **`ylContainerFoot`**。
|
|
53
|
+
- 无标题白底容器 → 直接使用 `el-card`。
|
|
54
|
+
|
|
55
|
+
### 方案选择(内部分析用,勿在回答中罗列)
|
|
56
|
+
- 静态分块:仅 `title` + 默认插槽。
|
|
57
|
+
- 带副标题/操作:`sub-title` + `#operation`。
|
|
58
|
+
- 可折叠扩展:`:expand="true"` + `#expand`;默认展开用 `:default-expand-all="true"`。
|
|
59
|
+
- 模块内底栏:`#footer`;需底部留白时 `:bot-space="true"`。
|
|
60
|
+
- 外部控制展开:`ref` + `setExpandAll(true/false)`。
|
|
61
|
+
|
|
62
|
+
## API(ylModule)
|
|
63
|
+
|
|
64
|
+
> 标签:`<yl-module>` / `ylModule`;须在入口 `import ylModule from 'zqyl-component-base/lib/ylModule'` + `Vue.component('ylModule', ylModule)` 注册;页面模板直接使用,**勿**单页 import;**禁止**全量 `Vue.use(zqylComponentBase)`。
|
|
65
|
+
|
|
66
|
+
### Props
|
|
67
|
+
|
|
68
|
+
| 属性名 | 类型 | 默认值 | 说明 |
|
|
69
|
+
| --- | --- | --- | --- |
|
|
70
|
+
| `title` | String | `''` | 主标题 |
|
|
71
|
+
| `subTitle` / `sub-title` | String | `''` | 副标题(主标题右侧,灰色) |
|
|
72
|
+
| `expand` | Boolean | `false` | 是否启用展开箭头与 `#expand` 插槽 |
|
|
73
|
+
| `defaultExpandAll` / `default-expand-all` | Boolean | `false` | 初始是否展开扩展区(仅初始化生效) |
|
|
74
|
+
| `botSpace` / `bot-space` | Boolean | `false` | 是否保留卡片 body 底部 padding |
|
|
75
|
+
| `bodyClassName` / `body-class-name` | String | `''` | 内容区额外 class |
|
|
76
|
+
| `titleSpan` / `title-span` | Number | `12` | 标题列栅格宽度 |
|
|
77
|
+
| `operationSpan` / `operation-span` | Number | `12` | 操作列栅格宽度 |
|
|
78
|
+
| `bodyStyle` / `body-style` | Object | `null` | 自定义 `el-card` body 样式 |
|
|
79
|
+
|
|
80
|
+
> 其余 `el-card` 属性可通过 `$attrs` 透传(如 `shadow`)。
|
|
81
|
+
|
|
82
|
+
### Events
|
|
83
|
+
|
|
84
|
+
无对外事件。
|
|
85
|
+
|
|
86
|
+
### Slots
|
|
87
|
+
|
|
88
|
+
| 插槽名 | 说明 |
|
|
89
|
+
| --- | --- |
|
|
90
|
+
| default | 主体内容 |
|
|
91
|
+
| `operation` | 标题行右侧操作区(右对齐) |
|
|
92
|
+
| `expand` | 可折叠扩展内容(需 `expand: true`) |
|
|
93
|
+
| `footer` | 模块内底部区域 |
|
|
94
|
+
|
|
95
|
+
### Methods(ref)
|
|
96
|
+
|
|
97
|
+
| 方法 | 说明 |
|
|
98
|
+
| --- | --- |
|
|
99
|
+
| `setExpandAll(val)` | `true` 展开扩展区,`false` 收起 |
|
|
100
|
+
|
|
101
|
+
### 样式与布局(以组件库为准)
|
|
102
|
+
|
|
103
|
+
- 容器:`el-card`;标题行左右两列栅格(默认各 12)。
|
|
104
|
+
- 副标题:14px / `#909399`,距主标题 8px。
|
|
105
|
+
- 展开箭头:14px / `#303133`,右侧 margin 16px;收起 `arrow-down`,展开 `arrow-up`。
|
|
106
|
+
- 扩展区:`el-collapse-transition` 过渡动画。
|
|
107
|
+
- `botSpace: false` 时 body `padding-bottom: 0`。
|
|
108
|
+
|
|
109
|
+
## 示例(参考写法,回答用户时只选用其中一种)
|
|
110
|
+
|
|
111
|
+
### 基础模块
|
|
112
|
+
```vue
|
|
113
|
+
<yl-module title="基础模块" sub-title="这是副标题">
|
|
114
|
+
<div>这是模块的主要内容区域</div>
|
|
115
|
+
</yl-module>
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
### 可展开模块
|
|
119
|
+
```vue
|
|
120
|
+
<yl-module title="可展开模块" :expand="true" :default-expand-all="false">
|
|
121
|
+
<div>这是主要内容区域</div>
|
|
122
|
+
<template #expand>
|
|
123
|
+
<div>扩展内容,可通过标题旁箭头展开或收起。</div>
|
|
124
|
+
</template>
|
|
125
|
+
</yl-module>
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
### 标题操作区
|
|
129
|
+
```vue
|
|
130
|
+
<yl-module title="带操作按钮" sub-title="副标题信息">
|
|
131
|
+
<template #operation>
|
|
132
|
+
<div class="text-right w100">
|
|
133
|
+
<el-button size="small">导出</el-button>
|
|
134
|
+
<el-button type="primary" size="small">新增</el-button>
|
|
135
|
+
</div>
|
|
136
|
+
</template>
|
|
137
|
+
<div>模块主体内容</div>
|
|
138
|
+
</yl-module>
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
### 完整功能(expand + footer + botSpace)
|
|
142
|
+
```vue
|
|
143
|
+
<yl-module
|
|
144
|
+
title="完整功能模块"
|
|
145
|
+
sub-title="包含所有功能"
|
|
146
|
+
:expand="true"
|
|
147
|
+
:default-expand-all="true"
|
|
148
|
+
:bot-space="true"
|
|
149
|
+
body-class-name="custom-body"
|
|
150
|
+
>
|
|
151
|
+
<template #operation>
|
|
152
|
+
<el-button type="primary" size="small">查看</el-button>
|
|
153
|
+
</template>
|
|
154
|
+
<!-- 主体字段 -->
|
|
155
|
+
<template #expand>
|
|
156
|
+
<!-- 扩展字段 -->
|
|
157
|
+
</template>
|
|
158
|
+
<template #footer>
|
|
159
|
+
<el-button type="primary" size="small">提交</el-button>
|
|
160
|
+
</template>
|
|
161
|
+
</yl-module>
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
### ref 控制展开/收起
|
|
165
|
+
```vue
|
|
166
|
+
<yl-module ref="moduleRef" title="通过方法控制" :expand="true">
|
|
167
|
+
<div>主要内容</div>
|
|
168
|
+
<template #expand><div>扩展内容</div></template>
|
|
169
|
+
</yl-module>
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
// this.$refs.moduleRef.setExpandAll(true) // 展开
|
|
173
|
+
// this.$refs.moduleRef.setExpandAll(false) // 收起
|
|
174
|
+
|
|
175
|
+
## 注意事项
|
|
176
|
+
- **`expand: true`** 才渲染箭头与 `#expand`;`expand: false` 时不要依赖扩展区展示关键数据。
|
|
177
|
+
- **`defaultExpandAll`** 仅影响初始化;之后用 **`setExpandAll`** 或点击箭头控制。
|
|
178
|
+
- 标题右侧操作用 **`#operation`**;模块内底栏用 **`#footer`**(非全页 `ylContainerFoot`)。
|
|
179
|
+
- 有 `footer` 或底部易被遮挡时设 **`:bot-space="true"`**;内容区样式用 **`body-class-name`**。
|
|
180
|
+
- 与 **`ylCollapse`** 区分:需 `el-card` 模块结构、副标题、扩展过渡、模块内 footer 时用本组件。
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: xiaoma-zqyl-pie-chart-front
|
|
3
|
+
description: 前台饼图/环形图(占比构成、图例、中心总计、自定义标签)的 Vue2 + zqyl-component-base 实现规范(ylPieChart)。在用户提及 ylPieChart、yl-pie-chart、饼图、环形图、占比图、扇形图,或需要在前台实现该组件时使用。适用于前台门户仓库(如 zqyl-crclopen,platformType `yx`;页头/表格用 ylTitle + ylTableSimple)。 Use when implementing or reviewing the pie-chart (ylPieChart) component on a ZQYL front page.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 饼图(前台)
|
|
7
|
+
|
|
8
|
+
你是一个前端组件实现与改造助手。你必须严格按本技能的规则输出。
|
|
9
|
+
|
|
10
|
+
## 适用范围
|
|
11
|
+
- 平台:前台
|
|
12
|
+
- platformType:`yx`
|
|
13
|
+
- 组件条目:`pieChart`
|
|
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-pie-chart」、「ylPieChart」、「饼图」、「环形图」、「占比图」时。
|
|
49
|
+
|
|
50
|
+
不适用:趋势变化 → 使用 `ylLineChart`;类目并列对比 → 使用 `ylBarChart`;静态指标摘要 → 使用 `ylDataCensus`。
|
|
51
|
+
|
|
52
|
+
## API(ylPieChart)
|
|
53
|
+
|
|
54
|
+
> 标签:`<yl-pie-chart>` / `ylPieChart`;须在入口 `import ylPieChart from 'zqyl-component-base/lib/ylPieChart'` + `Vue.component('ylPieChart', ylPieChart)` 注册;页面模板直接使用,**勿**单页 import;**禁止**全量 `Vue.use(zqylComponentBase)`。
|
|
55
|
+
|
|
56
|
+
### Props
|
|
57
|
+
|
|
58
|
+
| 属性名 | 类型 | 默认值 | 是否必填 | 说明 |
|
|
59
|
+
| --- | --- | --- | --- | --- |
|
|
60
|
+
| `chartData` | Object | `{}` | 是 | 图表配置数据对象 |
|
|
61
|
+
| `id` | String | `'PieChart'` | 否 | 图表容器 DOM id,同页多图须唯一 |
|
|
62
|
+
| `height` | String | `'400px'` | 否 | 图表高度 |
|
|
63
|
+
|
|
64
|
+
### `chartData` 配置项
|
|
65
|
+
|
|
66
|
+
| 属性名 | 类型 | 默认值 | 说明 |
|
|
67
|
+
| --- | --- | --- | --- |
|
|
68
|
+
| `titleText` | String | `''` | 图表标题文本 |
|
|
69
|
+
| `title` | Object | `{}` | 标题配置,透传 ECharts `title` |
|
|
70
|
+
| `seriesName` | String | `''` | 系列名称(tooltip 中显示) |
|
|
71
|
+
| `seriesData` | Array | `[]` | 饼图数据,每项 `{ name, value }` |
|
|
72
|
+
| `seriesRadius` | Array \| String | `['0%', '70%']` | 半径;两值时为环形 `[内, 外]` |
|
|
73
|
+
| `seriesCenter` | Array | `['50%', '50%']` | 圆心坐标 `[横, 纵]` |
|
|
74
|
+
| `serieslabelData` | Object | `{}` | 扇区标签配置(组件库字段名) |
|
|
75
|
+
| `colorList` | Array | `[]` | 按 dataIndex 自定义颜色 |
|
|
76
|
+
| `legend` | Object | - | 图例配置;见下方 `legend` 项 |
|
|
77
|
+
| `graphic` | Object | - | ECharts 原生 graphic 自定义图形 |
|
|
78
|
+
|
|
79
|
+
### `legend` 配置项
|
|
80
|
+
|
|
81
|
+
| 字段 | 类型 | 说明 |
|
|
82
|
+
| --- | --- | --- |
|
|
83
|
+
| `orient` | String | `'horizontal'` \| `'vertical'` |
|
|
84
|
+
| `left` / `right` / `top` / `bottom` | String \| Number | 图例位置 |
|
|
85
|
+
| `formatter` | Function | 自定义图例文本 |
|
|
86
|
+
| `formatterAtter` | Array | 如 `['name','num','percentage']` 组合显示 |
|
|
87
|
+
|
|
88
|
+
### Events / Slots
|
|
89
|
+
|
|
90
|
+
无对外事件与插槽。
|
|
91
|
+
|
|
92
|
+
### Methods
|
|
93
|
+
|
|
94
|
+
| 方法名 | 说明 |
|
|
95
|
+
| --- | --- |
|
|
96
|
+
| `setEchartOption()` | 父组件数据变化后通过 `ref` 调用,更新并重新渲染图表 |
|
|
97
|
+
|
|
98
|
+
## 示例(参考写法,回答用户时只选用其中一种)
|
|
99
|
+
|
|
100
|
+
### 基础饼图
|
|
101
|
+
```vue
|
|
102
|
+
<yl-pie-chart :chartData="pieData" id="basicPieChart" height="400px" />
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
// pieData: { titleText, seriesData: [{ name, value }, ...] }
|
|
106
|
+
|
|
107
|
+
### 环形图(中心总计)
|
|
108
|
+
```vue
|
|
109
|
+
<yl-pie-chart :chartData="donutData" id="donutChart" height="400px" />
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
// donutData: seriesRadius: ['40%','70%'], serieslabelData: { position: 'center', formatter, rich }
|
|
113
|
+
|
|
114
|
+
### 带图例 + 自定义颜色
|
|
115
|
+
```vue
|
|
116
|
+
<yl-pie-chart :chartData="legendData" id="legendPieChart" height="400px" />
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
// legend: { orient, left, formatterAtter: ['name','num','percentage'] }, colorList: [...]
|
|
120
|
+
|
|
121
|
+
### 数据更新后刷新
|
|
122
|
+
```js
|
|
123
|
+
// this.chartData = await fetchChartData();
|
|
124
|
+
// this.$refs.pieChart.setEchartOption();
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
## 注意事项
|
|
128
|
+
- `chartData` 由接口或 `computed` 赋值;**禁止**在规范页手写长期静态假数据,接口未就绪时先空结构,请求后再更新。
|
|
129
|
+
- `seriesData` 每项必须包含 `name` 与 `value`;`colorList` 长度建议与数据项数一致。
|
|
130
|
+
- 标签字段为组件库约定的 `serieslabelData`(非 `seriesLabel`);图例百分比计算依赖 `$function.AMOUNT.fixedNumber`。
|
|
131
|
+
- 同页多个 `<yl-pie-chart>` 时 `id` 必须唯一,否则 ECharts 容器冲突。
|
|
132
|
+
- 组件基于 ECharts 5.x(随 `zqyl-component-base` 依赖);`title` / `graphic` / `legend` 可直接透传 ECharts 配置。
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: xiaoma-zqyl-popover-front
|
|
3
|
+
description: 前台局部气泡提示(操作强调、首次引导、知道了关闭)的 Element UI 实现规范(el-popover)。在用户提及 Popover、el-popover、气泡提示、知道了、功能引导,或需要在前台实现该组件时使用。适用于前台门户仓库(如 zqyl-crclopen,platformType `yx`;页头/表格用 ylTitle + ylTableSimple)。 Use when implementing or reviewing the popover (el-popover) component on a ZQYL front page.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 气泡提示(前台)
|
|
7
|
+
|
|
8
|
+
你是一个前端组件实现与改造助手。你必须严格按本技能的规则输出。
|
|
9
|
+
|
|
10
|
+
## 适用范围
|
|
11
|
+
- 平台:前台
|
|
12
|
+
- platformType:`yx`
|
|
13
|
+
- 组件条目:`popover`
|
|
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
|
+
- 首次功能引导(可配合 localStorage 只展示一次)。
|
|
48
|
+
|
|
49
|
+
不适用:整页/卡片级说明 → `ylTips`;表单项释义 → `tooltip`。
|
|
50
|
+
|
|
51
|
+
## 代码示例
|
|
52
|
+
```vue
|
|
53
|
+
<el-popover v-model="visible" placement="bottom-start" width="280" trigger="manual">
|
|
54
|
+
<p>请先完成 XX 操作</p>
|
|
55
|
+
<el-button size="mini" type="primary" @click="visible = false">知道了</el-button>
|
|
56
|
+
<i slot="reference" class="el-icon-warning-outline" @click="visible = !visible"></i>
|
|
57
|
+
</el-popover>
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## 注意事项
|
|
61
|
+
- 文案简短;复杂说明用 `ylTips`。
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: xiaoma-zqyl-preview-front
|
|
3
|
+
description: 前台PDF/图片附件在线预览(切换、缩放、旋转、拖拽)的 Vue2 实现规范(ylPreview)。在用户提及 ylPreview、yl-preview、文件预览、PDF预览、图片预览、审核右侧预览、附件预览,或需要在前台实现该组件时使用。适用于前台门户仓库(如 zqyl-crclopen,platformType `yx`;页头/表格用 ylTitle + ylTableSimple)。 Use when implementing or reviewing the preview (ylPreview) component on a ZQYL front page.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 文件预览(前台)
|
|
7
|
+
|
|
8
|
+
你是一个前端组件实现与改造助手。你必须严格按本技能的规则输出。
|
|
9
|
+
|
|
10
|
+
## 适用范围
|
|
11
|
+
- 平台:前台
|
|
12
|
+
- platformType:`yx`
|
|
13
|
+
- 组件条目:`preview`
|
|
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
|
+
- 详情/审核页右侧需**大块预览** PDF 或图片(证照、授权书、合同等)。
|
|
46
|
+
- 多个附件需**左右切换**预览,PDF 与图片混排。
|
|
47
|
+
- 图片预览需**缩放、旋转、拖拽**(非弹窗小图预览)。
|
|
48
|
+
- 用户提到「yl-preview」、「ylPreview」、「文件预览区」、「审核预览」时。
|
|
49
|
+
|
|
50
|
+
不适用:
|
|
51
|
+
- 上传入口、删除、重新上传 → 使用 **`ylFileUpload`**。
|
|
52
|
+
- 上传组件内小窗预览 → `ylFileUpload` 的 `previewType` / `viewFile`。
|
|
53
|
+
|
|
54
|
+
## API(ylPreview)
|
|
55
|
+
|
|
56
|
+
> 标签:`<yl-preview>` / `ylPreview`;须在入口 `import ylPreview from 'zqyl-component-base/lib/ylPreview'` + `Vue.component('ylPreview', ylPreview)` 注册;页面模板直接使用,**勿**单页 import;**禁止**全量 `Vue.use(zqylComponentBase)`。
|
|
57
|
+
|
|
58
|
+
### Props
|
|
59
|
+
|
|
60
|
+
| 参数 | 类型 | 默认值 | 说明 |
|
|
61
|
+
| --- | --- | --- | --- |
|
|
62
|
+
| `fileList` | Array | `[]` | 文件列表(必填) |
|
|
63
|
+
|
|
64
|
+
### `fileList[]` 项字段
|
|
65
|
+
|
|
66
|
+
| 字段 | 说明 |
|
|
67
|
+
| --- | --- |
|
|
68
|
+
| `name` | 文件名(用于识别后缀) |
|
|
69
|
+
| `url` | 预览地址 |
|
|
70
|
+
| `previewUrl` | 预览地址(与 `url` 二选一) |
|
|
71
|
+
| `showName` / `fileName` | 显示名/文件名(可选,参与后缀识别) |
|
|
72
|
+
| `suffix` | 文件后缀(可选,如 `pdf`) |
|
|
73
|
+
|
|
74
|
+
### 功能
|
|
75
|
+
|
|
76
|
+
- **PDF**:iframe 嵌入;左右箭头切换附件。
|
|
77
|
+
- **图片**:放大/缩小(0.1~3 倍)、旋转(90° 递增)、拖拽;切换文件时重置变换。
|
|
78
|
+
- 组件根类名 `yl-preview zqyl-component-base`,样式来自 `component.css`。
|
|
79
|
+
|
|
80
|
+
### 注意事项
|
|
81
|
+
|
|
82
|
+
- PDF 预览 URL 须可访问(含跨域/鉴权由业务接口保证)。
|
|
83
|
+
- `fileList` 为空时组件可能报错;业务应至少保留 `{ url: '' }` 占位。
|
|
84
|
+
- 切换 Tab/证件类型重建预览时,给组件加 **`:key`** 以重置内部状态。
|
|
85
|
+
|
|
86
|
+
## 示例(参考写法,回答用户时只选用其中一种)
|
|
87
|
+
|
|
88
|
+
### 基础用法(PDF + 图片)
|
|
89
|
+
```vue
|
|
90
|
+
<yl-preview :file-list="fileList" />
|
|
91
|
+
```
|
|
92
|
+
```js
|
|
93
|
+
fileList: [
|
|
94
|
+
{ name: '示例文档.pdf', url: 'https://.../file.pdf' },
|
|
95
|
+
{ name: '示例图片.jpg', url: 'https://.../image.jpg' },
|
|
96
|
+
],
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
### 审核详情 · 右侧预览区
|
|
100
|
+
```vue
|
|
101
|
+
<el-row>
|
|
102
|
+
<el-col :span="10"><!-- 审核项 / 表单 --></el-col>
|
|
103
|
+
<el-col :span="14">
|
|
104
|
+
<yl-preview :key="activeTab" :file-list="previewList" />
|
|
105
|
+
</el-col>
|
|
106
|
+
</el-row>
|
|
107
|
+
```
|
|
108
|
+
```js
|
|
109
|
+
// 切换 Tab 后同步 previewList;空列表时占位
|
|
110
|
+
if (!previewList.length) previewList = [{ url: '' }];
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
## 注意事项
|
|
114
|
+
- 与 **`ylFileUpload`** 配合:上传在上传区,已上传文件在详情页用 `fileList` 驱动本组件。
|
|
115
|
+
- 后缀识别顺序:`suffix` → 文件名后缀 → 默认按图片处理(非 pdf)。
|
|
116
|
+
- 切换 `fileList` 或 Tab 时建议 **`:key`**,避免旋转/缩放状态残留。
|
|
117
|
+
- 列表为空时传 `[{ url: '' }]` 占位,避免 `fileList[fileIndex]` 报错。
|