@hbdlzy/ui-core 0.1.0 → 0.1.1
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/README.md +25 -2
- package/components.manifest.json +185 -2
- package/dist/index.cjs +1 -1
- package/dist/index.js +1140 -12
- package/dist/style.css +1 -0
- package/package.json +4 -3
- package/src/components/BaseCard/BaseCard.types.ts +38 -0
- package/src/components/BaseCard/BaseCard.vue +250 -0
- package/src/components/BaseCard/README.md +164 -0
- package/src/components/BaseCard/index.ts +5 -0
- package/src/components/BaseEChart/BaseEChart.types.ts +35 -0
- package/src/components/BaseEChart/BaseEChart.vue +327 -0
- package/src/components/BaseEChart/README.md +136 -0
- package/src/components/BaseEChart/index.ts +5 -0
- package/src/components/BaseExportButton/BaseExportButton.vue +1 -1
- package/src/components/BaseExportButton/README.md +104 -8
- package/src/components/BaseTable/BaseTable.types.ts +174 -0
- package/src/components/BaseTable/BaseTable.vue +809 -0
- package/src/components/BaseTable/README.md +398 -0
- package/src/components/BaseTable/index.ts +25 -0
- package/src/echarts/index.ts +12 -0
- package/src/excel/exportExcel.ts +36 -10
- package/src/index.ts +15 -0
package/README.md
CHANGED
|
@@ -4,17 +4,40 @@
|
|
|
4
4
|
|
|
5
5
|
## 当前内容
|
|
6
6
|
|
|
7
|
+
- `BaseTable`
|
|
8
|
+
- `BaseCard`
|
|
9
|
+
- `BaseEChart`
|
|
7
10
|
- `BaseExportButton`
|
|
11
|
+
- `echarts`
|
|
8
12
|
- `exportExcel`
|
|
9
13
|
|
|
10
14
|
## 使用方式
|
|
11
15
|
|
|
12
16
|
```ts
|
|
13
|
-
import { BaseExportButton, exportExcel } from '@hbdlzy/ui-core'
|
|
17
|
+
import { BaseTable, BaseCard, BaseEChart, BaseExportButton, echarts, exportExcel } from '@hbdlzy/ui-core'
|
|
14
18
|
```
|
|
15
19
|
|
|
20
|
+
## 详细文档
|
|
21
|
+
|
|
22
|
+
- `BaseTable`: [src/components/BaseTable/README.md](./src/components/BaseTable/README.md)
|
|
23
|
+
- `BaseCard`: [src/components/BaseCard/README.md](./src/components/BaseCard/README.md)
|
|
24
|
+
- `BaseEChart`: [src/components/BaseEChart/README.md](./src/components/BaseEChart/README.md)
|
|
25
|
+
- `BaseExportButton`: [src/components/BaseExportButton/README.md](./src/components/BaseExportButton/README.md)
|
|
26
|
+
- AI 清单: [components.manifest.json](./components.manifest.json)
|
|
27
|
+
|
|
28
|
+
## 当前导出能力
|
|
29
|
+
|
|
30
|
+
- 组件
|
|
31
|
+
- `BaseTable`
|
|
32
|
+
- `BaseCard`
|
|
33
|
+
- `BaseEChart`
|
|
34
|
+
- `BaseExportButton`
|
|
35
|
+
- 工具
|
|
36
|
+
- `echarts`
|
|
37
|
+
- `exportExcel`
|
|
38
|
+
|
|
16
39
|
## 设计原则
|
|
17
40
|
|
|
18
41
|
- 只做基础 UI 和交互
|
|
19
42
|
- 不直接依赖接口、路由、store
|
|
20
|
-
- 每个组件必须配套 README 和 AI manifest
|
|
43
|
+
- 每个组件必须配套 README 和 AI manifest
|
package/components.manifest.json
CHANGED
|
@@ -3,13 +3,191 @@
|
|
|
3
3
|
"version": 1,
|
|
4
4
|
"updatedAt": "2026-04-21",
|
|
5
5
|
"components": [
|
|
6
|
+
{
|
|
7
|
+
"name": "BaseTable",
|
|
8
|
+
"category": "ui-core",
|
|
9
|
+
"entry": "@hbdlzy/ui-core",
|
|
10
|
+
"importName": "BaseTable",
|
|
11
|
+
"docs": "packages/ui-core/src/components/BaseTable/README.md",
|
|
12
|
+
"description": "统一封装分页、远程请求、勾选列、索引列、操作列和常见表格列渲染能力的基础表格组件。",
|
|
13
|
+
"props": [
|
|
14
|
+
{
|
|
15
|
+
"name": "columns",
|
|
16
|
+
"type": "BaseTableColumn[]",
|
|
17
|
+
"required": true
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"name": "data",
|
|
21
|
+
"type": "Record<string, any>[]",
|
|
22
|
+
"required": false
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"name": "request",
|
|
26
|
+
"type": "BaseTableRequestHandler",
|
|
27
|
+
"required": false
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"name": "requestParams",
|
|
31
|
+
"type": "Record<string, unknown>",
|
|
32
|
+
"required": false
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"name": "resultAdapter",
|
|
36
|
+
"type": "(result: unknown, params: BaseTableRequestParams) => { rows?: Record<string, any>[]; total?: number }",
|
|
37
|
+
"required": false
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"name": "defaultSort",
|
|
41
|
+
"type": "BaseTableSortState",
|
|
42
|
+
"required": false
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"name": "sortFieldKey",
|
|
46
|
+
"type": "string",
|
|
47
|
+
"default": "sortField"
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"name": "sortOrderKey",
|
|
51
|
+
"type": "string",
|
|
52
|
+
"default": "sortOrder"
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
"name": "sortMapper",
|
|
56
|
+
"type": "(payload: BaseTableSortPayload) => Record<string, unknown> | void",
|
|
57
|
+
"required": false
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"name": "hasSelection",
|
|
61
|
+
"type": "boolean",
|
|
62
|
+
"default": false
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"name": "hasIndex",
|
|
66
|
+
"type": "boolean",
|
|
67
|
+
"default": false
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
"name": "showPagination",
|
|
71
|
+
"type": "boolean",
|
|
72
|
+
"default": true
|
|
73
|
+
}
|
|
74
|
+
],
|
|
75
|
+
"emits": ["row-action", "selection-change", "sort-change", "page-change", "size-change", "loaded"]
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
"name": "BaseCard",
|
|
79
|
+
"category": "ui-core",
|
|
80
|
+
"entry": "@hbdlzy/ui-core",
|
|
81
|
+
"importName": "BaseCard",
|
|
82
|
+
"docs": "packages/ui-core/src/components/BaseCard/README.md",
|
|
83
|
+
"description": "统一封装卡片标题区、右侧信息区、导出触发区和常用卡片视觉样式的基础容器组件。",
|
|
84
|
+
"props": [
|
|
85
|
+
{
|
|
86
|
+
"name": "title",
|
|
87
|
+
"type": "string",
|
|
88
|
+
"default": ""
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
"name": "metaText",
|
|
92
|
+
"type": "string",
|
|
93
|
+
"default": ""
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
"name": "showHeader",
|
|
97
|
+
"type": "boolean",
|
|
98
|
+
"default": true
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
"name": "showTitleMarker",
|
|
102
|
+
"type": "boolean",
|
|
103
|
+
"default": true
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
"name": "showExport",
|
|
107
|
+
"type": "boolean",
|
|
108
|
+
"default": false
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
"name": "exportPayload",
|
|
112
|
+
"type": "unknown",
|
|
113
|
+
"required": false
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
"name": "padding",
|
|
117
|
+
"type": "string | number",
|
|
118
|
+
"default": 20
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
"name": "borderColor",
|
|
122
|
+
"type": "string",
|
|
123
|
+
"default": "var(--border-color)"
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
"name": "backgroundColor",
|
|
127
|
+
"type": "string",
|
|
128
|
+
"default": "var(--border-bg-color)"
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
"name": "markerColor",
|
|
132
|
+
"type": "string",
|
|
133
|
+
"default": "var(--el-color-primary)"
|
|
134
|
+
}
|
|
135
|
+
],
|
|
136
|
+
"emits": ["export"]
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
"name": "BaseEChart",
|
|
140
|
+
"category": "ui-core",
|
|
141
|
+
"entry": "@hbdlzy/ui-core",
|
|
142
|
+
"importName": "BaseEChart",
|
|
143
|
+
"docs": "packages/ui-core/src/components/BaseEChart/README.md",
|
|
144
|
+
"description": "统一封装 ECharts 的初始化、setOption、自动 resize、实例销毁和常用实例方法暴露。",
|
|
145
|
+
"props": [
|
|
146
|
+
{
|
|
147
|
+
"name": "option",
|
|
148
|
+
"type": "EChartOption",
|
|
149
|
+
"required": false
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
"name": "theme",
|
|
153
|
+
"type": "string | object",
|
|
154
|
+
"required": false
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
"name": "initOptions",
|
|
158
|
+
"type": "EChartInitOptions",
|
|
159
|
+
"required": false
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
"name": "setOptionOptions",
|
|
163
|
+
"type": "boolean | EChartSetOptionOptions",
|
|
164
|
+
"required": false
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
"name": "loading",
|
|
168
|
+
"type": "boolean",
|
|
169
|
+
"default": false
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
"name": "autoResize",
|
|
173
|
+
"type": "boolean",
|
|
174
|
+
"default": true
|
|
175
|
+
},
|
|
176
|
+
{
|
|
177
|
+
"name": "useDefaultColors",
|
|
178
|
+
"type": "boolean",
|
|
179
|
+
"default": true
|
|
180
|
+
}
|
|
181
|
+
],
|
|
182
|
+
"emits": ["ready"]
|
|
183
|
+
},
|
|
6
184
|
{
|
|
7
185
|
"name": "BaseExportButton",
|
|
8
186
|
"category": "ui-core",
|
|
9
187
|
"entry": "@hbdlzy/ui-core",
|
|
10
188
|
"importName": "BaseExportButton",
|
|
11
189
|
"docs": "packages/ui-core/src/components/BaseExportButton/README.md",
|
|
12
|
-
"description": "统一处理前端 Excel
|
|
190
|
+
"description": "统一处理前端 Excel 导出和后端 blob 下载的基础导出按钮。",
|
|
13
191
|
"props": [
|
|
14
192
|
{
|
|
15
193
|
"name": "label",
|
|
@@ -41,10 +219,15 @@
|
|
|
41
219
|
}
|
|
42
220
|
],
|
|
43
221
|
"utilities": [
|
|
222
|
+
{
|
|
223
|
+
"name": "echarts",
|
|
224
|
+
"entry": "@hbdlzy/ui-core",
|
|
225
|
+
"description": "统一导出的 echarts 对象,可直接调用 graphic、format 等内置能力。"
|
|
226
|
+
},
|
|
44
227
|
{
|
|
45
228
|
"name": "exportExcel",
|
|
46
229
|
"entry": "@hbdlzy/ui-core",
|
|
47
|
-
"description": "
|
|
230
|
+
"description": "支持多级表头和自动列宽的纯前端 Excel 导出工具。"
|
|
48
231
|
}
|
|
49
232
|
]
|
|
50
233
|
}
|
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});var c=require("vue"),g=require("element-plus"),w=require("xlsx"),O=require("file-saver");function D(e){if(e&&e.__esModule)return e;var r=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});return e&&Object.keys(e).forEach(function(t){if(t!=="default"){var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:function(){return e[t]}})}}),r.default=e,Object.freeze(r)}var x=D(w);const S="Sheet1",A=16;function h(e){var r;return(r=e.children)!=null&&r.length?e.children.reduce((t,n)=>t+h(n),0):1}function y(e,r=1){return e.reduce((t,n)=>{var o;return(o=n.children)!=null&&o.length?Math.max(t,y(n.children,r+1)):Math.max(t,r)},r)}function b(e){const r=`${e!=null?e:""}`;return Array.from(r).reduce((t,n)=>t+(n.charCodeAt(0)>255?2:1),0)}function _(e,r){return r?r.split(".").reduce((t,n)=>{if(t!=null)return t[n]},e):""}function N(e,r,t){return typeof t.formatter=="function"?t.formatter(e,r,t):_(e,t.key)}function q(e){const r=y(e),t=e.reduce((u,s)=>u+h(s),0),n=Array.from({length:r},()=>Array.from({length:t}).fill("")),o=[],l=[];let f=0;const d=(u,s)=>{var p;const a=f,i=h(u);if(n[s][a]=u.label,(p=u.children)!=null&&p.length){u.children.forEach(m=>d(m,s+1)),i>1&&o.push({s:{r:s,c:a},e:{r:s,c:a+i-1}});return}l.push(u),f+=1,s<r-1&&o.push({s:{r:s,c:a},e:{r:r-1,c:a}})};return e.forEach(u=>d(u,0)),{headerRows:n,leafColumns:l,merges:o}}function H(e,r,t,n){return e.map((o,l)=>{var s;const f=b(o.label),d=r.reduce((a,i)=>Math.max(a,b(i[l])),0);return{wch:(s=o.width)!=null?s:n?Math.max(t,f,d):t}})}function k(e){return e.endsWith(".xlsx")?e:`${e}.xlsx`}function F(e){const{fileName:r,sheetName:t=S,data:n,autoWidth:o=!0,defaultColumnWidth:l=A}=e,f=e.columns.filter(m=>!!m);if(!f.length)throw new Error("Excel export columns can not be empty.");const{headerRows:d,leafColumns:u,merges:s}=q(f),a=n.map((m,B)=>u.map(M=>N(m,B,M))),i=x.utils.aoa_to_sheet([...d,...a]);i["!merges"]=s,i["!cols"]=H(u,a,l,o);const p=x.utils.book_new();x.utils.book_append_sheet(p,i,t),x.writeFile(p,k(r))}const L="export-file";function z(e,r){var o;if(!e)return"";const t=r.toLowerCase(),n=Object.keys(e).find(l=>l.toLowerCase()===t);return n&&(o=e[n])!=null?o:""}function C(e){if(!e)return"";const r=e.match(/filename\*=UTF-8''([^;]+)/i);if(r!=null&&r[1])return decodeURIComponent(r[1].replace(/["']/g,""));const t=e.match(/filename="?([^";]+)"?/i);return t!=null&&t[1]?decodeURIComponent(t[1].replace(/["']/g,"")):""}function E(e){return`${e!=null?e:""}`.trim()||L}function T(e){return e instanceof Blob?e:new Blob([e])}function v(e,r=""){const t=z(e.headers,"content-disposition"),n=E(C(t)||r);return O.saveAs(T(e.data),n),n}const j=c.defineComponent({__name:"BaseExportButton",props:{label:{type:String,default:"\u5BFC\u51FA"},type:{type:String,default:"primary"},size:{type:String,default:"default"},plain:{type:Boolean,default:!1},link:{type:Boolean,default:!1},text:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},fileName:{type:String,default:""},excelOptions:Object,requestHandler:Function,beforeExport:Function,successMessage:{type:String,default:"\u5BFC\u51FA\u6210\u529F"},errorMessage:{type:String,default:"\u5BFC\u51FA\u5931\u8D25\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5"},autoMessage:{type:Boolean,default:!0}},emits:["start","success","error"],setup(e,{emit:r}){const t=e,n=r,o=c.ref(!1),l=c.computed(()=>t.excelOptions&&t.requestHandler?"invalid":t.excelOptions?"excel":t.requestHandler?"request":"none"),f=c.computed(()=>t.disabled||o.value||l.value==="none");async function d(){return t.beforeExport?await t.beforeExport()!==!1:!0}async function u(){if(o.value||t.disabled)return;if(l.value==="none"){g.ElMessage.warning("\u8BF7\u5148\u914D\u7F6E\u5BFC\u51FA\u903B\u8F91");return}if(l.value==="invalid"){const a=new Error("BaseExportButton \u4E0D\u80FD\u540C\u65F6\u63A5\u6536 excelOptions \u548C requestHandler");n("error",a),g.ElMessage.error(a.message);return}if(!!await d()){o.value=!0,n("start");try{if(l.value==="excel"&&t.excelOptions){F(t.excelOptions),t.autoMessage&&g.ElMessage.success(t.successMessage),n("success",{mode:"excel",fileName:E(t.excelOptions.fileName)});return}if(l.value==="request"&&t.requestHandler){const a=await t.requestHandler(),i=v(a,t.fileName);t.autoMessage&&g.ElMessage.success(t.successMessage),n("success",{mode:"request",fileName:i})}}catch(a){console.error(a),t.autoMessage&&g.ElMessage.error(t.errorMessage),n("error",a)}finally{o.value=!1}}}return(s,a)=>{const i=c.resolveComponent("el-button");return c.openBlock(),c.createBlock(i,{class:"base-export-button",type:e.type,size:e.size,plain:e.plain,link:e.link,text:e.text,disabled:f.value,loading:o.value,onClick:u},{default:c.withCtx(()=>[c.renderSlot(s.$slots,"default",{},()=>[c.createTextVNode(c.toDisplayString(e.label),1)])]),_:3},8,["type","size","plain","link","text","disabled","loading"])}}});exports.BaseExportButton=j;exports.downloadExportResponse=v;exports.exportExcel=F;exports.extractFileNameFromDisposition=C;exports.normalizeExportFileName=E;
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});var Oe=require("echarts"),e=require("vue"),W=require("element-plus"),Ae=require("exceljs"),ge=require("file-saver");function De(a){return a&&typeof a=="object"&&"default"in a?a:{default:a}}function Re(a){if(a&&a.__esModule)return a;var i=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});return a&&Object.keys(a).forEach(function(o){if(o!=="default"){var r=Object.getOwnPropertyDescriptor(a,o);Object.defineProperty(i,o,r.get?r:{enumerable:!0,get:function(){return a[o]}})}}),i.default=a,Object.freeze(i)}var te=Re(Oe),$e=De(Ae);var oe=(a,i)=>{const o=a.__vccOpts||a;for(const[r,u]of i)o[r]=u;return o};const qe={key:0,class:"base-card__header"},Ve={class:"base-card__header-left"},Le={key:0,class:"base-card__title-wrap"},He={key:0,class:"base-card__title-marker"},We={key:2,class:"base-card__title"},Ie={key:0,class:"base-card__header-right"},Ke={key:0,class:"base-card__meta"},je=["disabled"],Ue={class:"base-card__body"},Ge={key:0,class:"base-card__tip"},Je={class:"base-card__content"},Xe=e.defineComponent({name:"BaseCard",__name:"BaseCard",props:{title:{default:""},metaText:{default:""},showHeader:{type:Boolean,default:!0},showRight:{type:Boolean,default:!0},showTitleMarker:{type:Boolean,default:!0},showExport:{type:Boolean,default:!1},exportText:{default:"\u5BFC\u51FA"},exportDisabled:{type:Boolean,default:!1},exportPayload:{},padding:{default:20},radius:{default:8},borderColor:{default:"var(--border-color)"},backgroundColor:{default:"var(--border-bg-color)"},shadowColor:{default:"var(--border-projection)"},headerGap:{default:16},headerMarginBottom:{default:20},leftGap:{default:16},rightGap:{default:16},titleColor:{default:"var(--el-text-color-primary)"},titleSize:{default:18},titleWeight:{default:500},markerColor:{default:"var(--el-color-primary)"},markerWidth:{default:4},markerHeight:{default:24},markerRadius:{default:"0 4px 4px 0"},markerGap:{default:10},metaColor:{default:"#808080"},metaSize:{default:16},exportColor:{default:"var(--el-color-primary)"}},emits:["export"],setup(a,{emit:i}){const o=a,r=i,u=e.useSlots(),b=e.computed(()=>Boolean(o.title)||Boolean(u["title-label"])),_=e.computed(()=>Boolean(u.title)),h=e.computed(()=>Boolean(u["header-right"])),p=e.computed(()=>o.showRight&&(h.value||Boolean(o.metaText)||o.showExport)),m=e.computed(()=>o.showHeader&&(b.value||_.value||p.value)),f=e.computed(()=>({title:o.title||void 0,metaText:o.metaText||void 0})),s=e.computed(()=>({"--base-card-padding":k(o.padding),"--base-card-radius":k(o.radius),"--base-card-border-color":o.borderColor,"--base-card-background-color":o.backgroundColor,"--base-card-shadow-color":o.shadowColor,"--base-card-header-gap":k(o.headerGap),"--base-card-header-margin-bottom":k(o.headerMarginBottom),"--base-card-left-gap":k(o.leftGap),"--base-card-right-gap":k(o.rightGap),"--base-card-title-color":o.titleColor,"--base-card-title-size":k(o.titleSize),"--base-card-title-weight":P(o.titleWeight),"--base-card-marker-color":o.markerColor,"--base-card-marker-width":k(o.markerWidth),"--base-card-marker-height":k(o.markerHeight),"--base-card-marker-radius":k(o.markerRadius),"--base-card-marker-gap":k(o.markerGap),"--base-card-meta-color":o.metaColor,"--base-card-meta-size":k(o.metaSize),"--base-card-export-color":o.exportColor})),T=()=>{r("export",o.exportPayload===void 0?f.value:o.exportPayload)};function k(y,v="px"){if(!(y==null||y===""))return typeof y=="number"?`${y}${v}`:y}function P(y){if(!(y==null||y===""))return String(y)}return(y,v)=>(e.openBlock(),e.createElementBlock("div",{class:"base-card",style:e.normalizeStyle(s.value)},[m.value?(e.openBlock(),e.createElementBlock("div",qe,[e.createElementVNode("div",Ve,[b.value?(e.openBlock(),e.createElementBlock("div",Le,[a.showTitleMarker?(e.openBlock(),e.createElementBlock("span",He)):e.createCommentVNode("",!0),y.$slots["title-label"]?e.renderSlot(y.$slots,"title-label",{key:1},void 0,!0):(e.openBlock(),e.createElementBlock("h4",We,e.toDisplayString(a.title),1))])):e.createCommentVNode("",!0),e.renderSlot(y.$slots,"title",{},void 0,!0)]),p.value?(e.openBlock(),e.createElementBlock("div",Ie,[e.renderSlot(y.$slots,"header-right",{},void 0,!0),a.metaText?(e.openBlock(),e.createElementBlock("span",Ke,e.toDisplayString(a.metaText),1)):e.createCommentVNode("",!0),a.showExport?(e.openBlock(),e.createElementBlock("button",{key:1,class:"base-card__export",type:"button",disabled:a.exportDisabled,onClick:T},e.toDisplayString(a.exportText),9,je)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.createElementVNode("div",Ue,[y.$slots.tip?(e.openBlock(),e.createElementBlock("div",Ge,[e.renderSlot(y.$slots,"tip",{},void 0,!0)])):e.createCommentVNode("",!0),e.createElementVNode("div",Je,[e.renderSlot(y.$slots,"default",{},void 0,!0)])])],4))}});var Ye=oe(Xe,[["__scopeId","data-v-6bfddf1c"]]);const Qe={class:"base-table"},Ze={key:0,class:"base-table__toolbar"},et={class:"base-table__toolbar-left"},tt={key:0,class:"base-table__toolbar-right"},rt={key:0,class:"base-table__actions"},ot={key:2,class:"base-table__tags"},at={key:1},nt=["innerHTML"],lt=["onClick"],it={key:6,class:"base-table__text"},st=e.defineComponent({name:"BaseTable",__name:"BaseTable",props:{columns:{},data:{default:()=>[]},request:{},requestParams:{default:()=>({})},resultAdapter:{},autoLoad:{type:Boolean,default:!0},reloadOnParamsChange:{type:Boolean,default:!0},reloadOnSortChange:{type:Boolean,default:!0},rowKey:{default:"id"},height:{default:"100%"},border:{type:Boolean,default:!1},stripe:{type:Boolean,default:!1},showToolbar:{type:Boolean,default:!0},showPagination:{type:Boolean,default:!0},hasSelection:{type:Boolean,default:!1},hasIndex:{type:Boolean,default:!1},indexLabel:{default:"\u5E8F\u53F7"},indexWidth:{default:60},selectionWidth:{default:50},rowSelectable:{},pagination:{default:()=>({})},currentPageKey:{default:"pageNum"},pageSizeKey:{default:"pageSize"},defaultSort:{default:()=>({prop:void 0,order:null})},sortFieldKey:{default:"sortField"},sortOrderKey:{default:"sortOrder"},sortOrderMap:{default:()=>({ascending:"asc",descending:"desc"})},sortMapper:{},emptyText:{default:"\u6682\u65E0\u6570\u636E"},loadingText:{default:"\u52A0\u8F7D\u4E2D..."}},emits:["selection-change","sort-change","row-action","cell-click","cell-input","page-change","size-change","update:pagination","loaded","request-error"],setup(a,{expose:i,emit:o}){var ue,fe;const r=a,u=o,b=e.useSlots(),_=e.ref(),h=e.ref(!1),p=e.ref(S(r.data)),m=e.ref([]),f=e.reactive({prop:(ue=r.defaultSort)==null?void 0:ue.prop,order:((fe=r.defaultSort)==null?void 0:fe.order)||null}),s=e.reactive({currentPage:1,pageSize:20,total:0,pageSizes:[10,20,50,100]});y(r.pagination);const T=e.computed(()=>H(r.height)),k=e.computed(()=>r.showToolbar&&(Boolean(b.toolbar)||r.showPagination)),P=e.computed(()=>{if(!(!f.prop||!f.order))return{prop:f.prop,order:f.order}});e.watch(()=>r.data,t=>{r.request||N(t||[])},{deep:!0}),e.watch(()=>r.pagination,t=>{y(t)},{deep:!0}),e.watch(()=>r.requestParams,()=>{r.request&&r.reloadOnParamsChange&&r.autoLoad&&(s.currentPage=1,x())},{deep:!0}),e.watch(()=>r.defaultSort,t=>{f.prop=t==null?void 0:t.prop,f.order=(t==null?void 0:t.order)||null},{deep:!0}),e.onMounted(()=>{var t;if(r.request&&r.autoLoad){x();return}r.request||(p.value=S(r.data),(t=r.pagination)!=null&&t.total||(s.total=p.value.length,v()))});function y(t){s.currentPage=Number((t==null?void 0:t.currentPage)||s.currentPage||1),s.pageSize=Number((t==null?void 0:t.pageSize)||s.pageSize||20),s.total=Number((t==null?void 0:t.total)||(t==null?void 0:t.total)===0?t.total:s.total||p.value.length),s.pageSizes=Array.isArray(t==null?void 0:t.pageSizes)&&t.pageSizes.length?[...t.pageSizes]:[...s.pageSizes.length?s.pageSizes:[10,20,50,100]]}function v(){u("update:pagination",{currentPage:s.currentPage,pageSize:s.pageSize,total:s.total,pageSizes:[...s.pageSizes]})}async function x(t){if(Array.isArray(t)){N(t);return}if(!r.request){N(r.data||[]);return}h.value=!0;const n=c();try{const l=await r.request(n),w=g(l,n);p.value=w.rows,s.total=w.total,v(),u("loaded",{rows:[...p.value],total:s.total,params:n})}catch(l){p.value=[],s.total=0,v(),u("request-error",l)}finally{h.value=!1}}async function D(){await x()}async function I(){s.currentPage=1,v(),await x()}function N(t){var n,l;p.value=S(t),r.request||(s.total=Number((l=(n=r.pagination)==null?void 0:n.total)!=null?l:p.value.length),v())}function M(){var t;(t=_.value)==null||t.clearSelection(),m.value=[]}function K(t,n){var l;(l=_.value)==null||l.toggleRowSelection(t,n)}function V(){return[...m.value]}function j(){return[...p.value]}function G(t){m.value=t,u("selection-change",t)}function L(t){const n=r.columns.find(w=>String(w.prop||"")===String(t.prop||""));f.prop=t.prop,f.order=t.order;const l=de(n,t.prop,t.order);u("sort-change",l),r.request&&r.reloadOnSortChange&&(s.currentPage=1,v(),x())}function J(t){s.currentPage=t,v(),u("page-change",t),r.request&&x()}function X(t){s.pageSize=t,s.currentPage=1,v(),u("size-change",t),r.request&&x()}function Y(t,n,l){u("row-action",{row:t,action:n,column:l})}function Q(t,n){var l;(l=n.clickHandler)==null||l.call(n,t,n),u("cell-click",{row:t,column:n,value:A(t,n)})}function U(t,n,l){var w;!l.prop||(n[l.prop]=t,(w=l.inputHandler)==null||w.call(l,t,n,l),u("cell-input",{row:n,column:l,value:t}))}function c(){const t={...r.requestParams,currentPage:s.currentPage,pageSize:s.pageSize,[r.currentPageKey]:s.currentPage,[r.pageSizeKey]:s.pageSize},n=r.columns.find(F=>String(F.prop||"")===String(f.prop||"")),l=de(n,f.prop,f.order),w=Fe(l);return{...t,...w}}function g(t,n){var $,z;if(r.resultAdapter){const E=r.resultAdapter(t,n),q=S(E==null?void 0:E.rows);return{rows:q,total:Number(($=E==null?void 0:E.total)!=null?$:q.length)}}if(Array.isArray(t))return{rows:S(t),total:t.length};const l=t||{},w=l.data&&typeof l.data=="object"?l.data:l,F=w.records||w.list||w.items||[],R=S(F);return{rows:R,total:Number((z=w.total)!=null?z:R.length)}}function S(t){return Array.isArray(t)?[...t]:[]}function O(t){return String(t.prop||t.label)}function ke(t){return t.prop?String(t.prop):void 0}function A(t,n){if(!!n.prop)return t[n.prop]}function ne(t,n){if(n.formatter){const l=n.formatter(t,n);return ee(l,Z(n))}return ee(A(t,n),Z(n))}function ve(t,n){if(n.html)return n.html(t,n);const l=A(t,n);return l==null?"":String(l)}function _e(t){var n;return t.kind==="actions"||Boolean((n=t.actions)==null?void 0:n.length)}function we(t){return t.kind==="link"||Boolean(t.clickable)}function Be(t,n){return(t.actions||[]).filter(l=>typeof l.visible=="function"?l.visible(n):l.visible!==!1)}function Ce(t,n){return typeof t.disabled=="function"?t.disabled(n):Boolean(t.disabled)}function le(t){return t.slotName||(t.prop?`cell-${String(t.prop)}`:"")}function ie(t){return t.headerSlotName||(t.prop?`header-${String(t.prop)}`:"")}function Se(t){const n=le(t);return Boolean(n&&b[n])}function xe(t){const n=ie(t);return Boolean(n&&b[n])}function se(t,n){const l=A(t,n),w=Array.isArray(l)?l:[l],F=n.optionValueKey||"value",R=n.optionLabelKey||"label",$=n.optionTagTypeKey||"tagType";return w.filter(z=>z!=null&&z!=="").map(z=>{const E=(n.options||[]).find(q=>q[F]===z);return E?{label:String(E[R]),value:E[F],tagType:E[$],color:E.color}:{label:String(z),value:z,tagType:"info"}})}function Ee(t){return{width:H(t.imageWidth||50),height:H(t.imageHeight||50)}}function ce(t){return typeof t=="string"?t:t&&typeof t=="object"&&"url"in t?String(t.url||""):""}function ze(t,n){const l=ce(A(t,n));return l?[l]:[]}function Z(t){return t.emptyText||"--"}function Te(t){return r.request&&t.sortable===!0?"custom":t.sortable||!1}function de(t,n,l=null){return{column:t,prop:n,order:l,field:Pe(t,n),direction:Ne(l)}}function Fe(t){var l;if(!t.field||!t.direction)return{};const n=(l=r.sortMapper)==null?void 0:l.call(r,t);return n&&typeof n=="object"?n:{[r.sortFieldKey]:t.field,[r.sortOrderKey]:t.direction}}function Pe(t,n){return(t==null?void 0:t.sortField)||n}function Ne(t){return t==="ascending"?r.sortOrderMap.ascending:t==="descending"?r.sortOrderMap.descending:null}function ee(t,n="--"){return t===0?"0":t==null||t===""?n:String(t)}function H(t){if(!(t==null||t===""))return typeof t=="number"?`${t}px`:t}return i({load:x,refresh:D,setData:N,resetPage:I,clearSelection:M,toggleRowSelection:K,getSelectionRows:V,getRows:j}),(t,n)=>{const l=e.resolveComponent("el-pagination"),w=e.resolveComponent("el-empty"),F=e.resolveComponent("el-table-column"),R=e.resolveComponent("el-button"),$=e.resolveComponent("el-image"),z=e.resolveComponent("el-tag"),E=e.resolveComponent("el-input"),q=e.resolveComponent("el-table"),Me=e.resolveDirective("loading");return e.openBlock(),e.createElementBlock("div",Qe,[k.value?(e.openBlock(),e.createElementBlock("div",Ze,[e.createElementVNode("div",et,[e.renderSlot(t.$slots,"toolbar",{},void 0,!0)]),a.showPagination?(e.openBlock(),e.createElementBlock("div",tt,[e.createVNode(l,{small:"",background:"",layout:"total, prev, pager, next, sizes, jumper",total:s.total,"current-page":s.currentPage,"page-size":s.pageSize,"page-sizes":s.pageSizes,"pager-count":5,"popper-append-to-body":!1,onSizeChange:X,onCurrentChange:J},null,8,["total","current-page","page-size","page-sizes"])])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.withDirectives((e.openBlock(),e.createBlock(q,{ref_key:"tableRef",ref:_,data:p.value,"row-key":a.rowKey,height:T.value,border:a.border,stripe:a.stripe,"default-sort":P.value,"highlight-current-row":"",onSelectionChange:G,onSortChange:L},{empty:e.withCtx(()=>[e.createVNode(w,{description:a.emptyText},null,8,["description"])]),default:e.withCtx(()=>[a.hasSelection?(e.openBlock(),e.createBlock(F,{key:0,type:"selection",width:a.selectionWidth,align:"center",selectable:a.rowSelectable},null,8,["width","selectable"])):e.createCommentVNode("",!0),a.hasIndex?(e.openBlock(),e.createBlock(F,{key:1,type:"index",label:a.indexLabel,width:a.indexWidth,fixed:"left",align:"center"},null,8,["label","width"])):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.columns,d=>(e.openBlock(),e.createBlock(F,{key:O(d),prop:ke(d),label:d.label,type:d.type||void 0,width:H(d.width),"min-width":H(d.minWidth),fixed:d.fixed,align:d.align||"left","header-align":d.headerAlign||d.align||"left",sortable:Te(d),"show-overflow-tooltip":d.showOverflowTooltip!==!1,"class-name":d.className,"label-class-name":d.headerClassName},e.createSlots({default:e.withCtx(B=>[Se(d)?e.renderSlot(t.$slots,le(d),{key:0,row:B.row,columnConfig:d,columnIndex:B.$index,value:A(B.row,d)},void 0,!0):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[_e(d)?(e.openBlock(),e.createElementBlock("div",rt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(Be(d,B.row),C=>(e.openBlock(),e.createBlock(R,{key:`${C.type}-${C.label}`,link:"",type:C.buttonType||(C.type==="delete"?"danger":"primary"),disabled:Ce(C,B.row),onClick:xt=>Y(B.row,C,d)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(C.label),1)]),_:2},1032,["type","disabled","onClick"]))),128))])):d.kind==="image"?(e.openBlock(),e.createBlock($,{key:1,class:"base-table__image",style:e.normalizeStyle(Ee(d)),src:ce(A(B.row,d)),"preview-src-list":ze(B.row,d),fit:d.imageFit||"cover"},null,8,["style","src","preview-src-list","fit"])):d.kind==="tag"?(e.openBlock(),e.createElementBlock("div",ot,[se(B.row,d).length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(se(B.row,d),C=>(e.openBlock(),e.createBlock(z,{key:String(C.value),type:C.tagType||"info",style:e.normalizeStyle(C.color?{color:C.color,borderColor:`${C.color}33`,backgroundColor:`${C.color}1a`}:void 0),size:"small"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(C.label),1)]),_:2},1032,["type","style"]))),128)):(e.openBlock(),e.createElementBlock("span",at,e.toDisplayString(Z(d)),1))])):d.kind==="html"?(e.openBlock(),e.createElementBlock("div",{key:3,innerHTML:ve(B.row,d)},null,8,nt)):d.kind==="input"?(e.openBlock(),e.createBlock(E,{key:4,"model-value":ee(A(B.row,d),""),type:d.inputType||"text","onUpdate:modelValue":C=>U(C,B.row,d)},null,8,["model-value","type","onUpdate:modelValue"])):we(d)?(e.openBlock(),e.createElementBlock("button",{key:5,class:"base-table__link",type:"button",onClick:C=>Q(B.row,d)},e.toDisplayString(ne(B.row,d)),9,lt)):(e.openBlock(),e.createElementBlock("div",it,e.toDisplayString(ne(B.row,d)),1))],64))]),_:2},[xe(d)?{name:"header",fn:e.withCtx(B=>[e.renderSlot(t.$slots,ie(d),e.mergeProps({ref_for:!0},B,{columnConfig:d}),void 0,!0)]),key:"0"}:void 0]),1032,["prop","label","type","width","min-width","fixed","align","header-align","sortable","show-overflow-tooltip","class-name","label-class-name"]))),128))]),_:3},8,["data","row-key","height","border","stripe","default-sort"])),[[Me,h.value]])])}}});var ct=oe(st,[["__scopeId","data-v-429ba785"]]);const dt=e.defineComponent({__name:"BaseEChart",props:{option:{default:()=>({})},theme:{},initOptions:{default:()=>({renderer:"canvas"})},setOptionOptions:{type:Boolean,default:()=>({notMerge:!1,lazyUpdate:!0})},loading:{type:Boolean,default:!1},loadingOptions:{},autoResize:{type:Boolean,default:!0},useDefaultColors:{type:Boolean,default:!0},colorStorageKey:{default:"echartsColor"},defaultColors:{default:()=>[]},group:{default:void 0}},emits:["ready"],setup(a,{expose:i,emit:o}){const r=a,u=o,b=e.ref(null),_=e.ref(null),h=e.shallowRef(null);let p=null,m=null,f;const s=()=>{m!==null&&(cancelAnimationFrame(m),m=null)},T=()=>{if(!r.useDefaultColors||typeof window=="undefined")return r.defaultColors;try{const c=window.sessionStorage.getItem(r.colorStorageKey),g=c?JSON.parse(c):[];return g.length>0?g:r.defaultColors}catch{return r.defaultColors}},k=(c={})=>{if(c.color)return c;const g=T();return!g||g.length===0?c:{...c,color:g}},P=()=>{if(!_.value)return null;const c=te.getInstanceByDom(_.value);c==null||c.dispose();const g=te.init(_.value,r.theme,r.initOptions);return r.group&&(g.group=r.group),h.value=g,u("ready",g),g},y=()=>h.value,v=()=>{var c;return(c=h.value)!=null?c:P()},x=(c,g=r.setOptionOptions)=>{const S=v();if(!S)return null;const O=k(c);return S.setOption(O,g),S},D=(c="default",g)=>{const S=v();!S||S.showLoading(c,g)},I=()=>{var c;(c=h.value)==null||c.hideLoading()},N=()=>{if(r.loading){D("default",r.loadingOptions);return}I()},M=c=>{f=c,s(),m=requestAnimationFrame(()=>{var g;(g=h.value)==null||g.resize(f),f=void 0,m=null})},K=()=>{M()},V=()=>{p==null||p.disconnect(),p=null,window.removeEventListener("resize",K)},j=()=>{V(),!(!r.autoResize||!b.value)&&(p=new ResizeObserver(()=>{M()}),p.observe(b.value),window.addEventListener("resize",K))},G=()=>{var c;(c=h.value)==null||c.clear()},L=()=>{var c;(c=h.value)==null||c.dispose(),h.value=null},J=()=>{L()},X=c=>{var g;(g=h.value)==null||g.dispatchAction(c)},Y=(c,g,S)=>{const O=v();O==null||O.on(c,g,S)},Q=(c,g)=>{if(!!h.value){if(!c){h.value.off();return}if(g){h.value.off(c,g);return}h.value.off(c)}},U=async()=>{L(),await e.nextTick(),P(),x(r.option),N(),M()};return e.watch(()=>r.option,c=>{x(c)},{deep:!0}),e.watch(()=>r.loading,()=>{N()}),e.watch(()=>r.loadingOptions,()=>{r.loading&&N()},{deep:!0}),e.watch(()=>r.group,c=>{!h.value||(h.value.group=c!=null?c:"")}),e.watch(()=>r.autoResize,async c=>{V(),c&&(await e.nextTick(),j(),M())}),e.watch(()=>r.theme,()=>{U()},{deep:!0}),e.watch(()=>r.initOptions,()=>{U()},{deep:!0}),e.onMounted(async()=>{await e.nextTick(),P(),x(r.option),N(),j(),M()}),e.onUnmounted(()=>{V(),s(),L()}),i({getInstance:y,setOption:x,resize:M,dispatchAction:X,showLoading:D,hideLoading:I,clear:G,dispose:J,on:Y,off:Q}),(c,g)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"containerRef",ref:b,class:"base-echart"},[e.createElementVNode("div",{ref_key:"chartRef",ref:_,class:"base-echart__inner"},null,512)],512))}});var ut=oe(dt,[["__scopeId","data-v-51bc4772"]]);const ft="Sheet1",pt=16,gt="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";function re(a){var i;return(i=a.children)!=null&&i.length?a.children.reduce((o,r)=>o+re(r),0):1}function he(a,i=1){return a.reduce((o,r)=>{var u;return(u=r.children)!=null&&u.length?Math.max(o,he(r.children,i+1)):Math.max(o,i)},i)}function pe(a){const i=`${a!=null?a:""}`;return Array.from(i).reduce((o,r)=>o+(r.charCodeAt(0)>255?2:1),0)}function ht(a,i){return i?i.split(".").reduce((o,r)=>{if(o!=null)return o[r]},a):""}function mt(a,i,o){return typeof o.formatter=="function"?o.formatter(a,i,o):ht(a,o.key)}function yt(a){const i=he(a),o=a.reduce((p,m)=>p+re(m),0),r=Array.from({length:i},()=>Array.from({length:o}).fill("")),u=[],b=[];let _=0;const h=(p,m)=>{var T;const f=_,s=re(p);if(r[m][f]=p.label,(T=p.children)!=null&&T.length){p.children.forEach(k=>h(k,m+1)),s>1&&u.push({s:{r:m,c:f},e:{r:m,c:f+s-1}});return}b.push(p),_+=1,m<i-1&&u.push({s:{r:m,c:f},e:{r:i-1,c:f}})};return a.forEach(p=>h(p,0)),{headerRows:r,leafColumns:b,merges:u}}function bt(a,i,o,r){return a.map((u,b)=>{var m;const _=pe(u.label),h=i.reduce((f,s)=>Math.max(f,pe(s[b])),0);return(m=u.width)!=null?m:r?Math.max(o,_,h):o})}function kt(a){return a.endsWith(".xlsx")?a:`${a}.xlsx`}function vt(a,i){i.forEach((o,r)=>{a.getColumn(r+1).width=o})}function _t(a,i){i.forEach(o=>{a.mergeCells(o.s.r+1,o.s.c+1,o.e.r+1,o.e.c+1)})}async function me(a){const{fileName:i,sheetName:o=ft,data:r,autoWidth:u=!0,defaultColumnWidth:b=pt}=a,_=a.columns.filter(v=>!!v);if(!_.length)throw new Error("Excel export columns can not be empty.");const{headerRows:h,leafColumns:p,merges:m}=yt(_),f=r.map((v,x)=>p.map(D=>mt(v,x,D))),s=bt(p,f,b,u),T=new $e.default.Workbook,k=T.addWorksheet(o);[...h,...f].forEach(v=>{k.addRow(v)}),_t(k,m),vt(k,s);const P=await T.xlsx.writeBuffer(),y=new Blob([P],{type:gt});ge.saveAs(y,kt(i))}const wt="export-file";function Bt(a,i){var u;if(!a)return"";const o=i.toLowerCase(),r=Object.keys(a).find(b=>b.toLowerCase()===o);return r&&(u=a[r])!=null?u:""}function ye(a){if(!a)return"";const i=a.match(/filename\*=UTF-8''([^;]+)/i);if(i!=null&&i[1])return decodeURIComponent(i[1].replace(/["']/g,""));const o=a.match(/filename="?([^";]+)"?/i);return o!=null&&o[1]?decodeURIComponent(o[1].replace(/["']/g,"")):""}function ae(a){return`${a!=null?a:""}`.trim()||wt}function Ct(a){return a instanceof Blob?a:new Blob([a])}function be(a,i=""){const o=Bt(a.headers,"content-disposition"),r=ae(ye(o)||i);return ge.saveAs(Ct(a.data),r),r}const St=e.defineComponent({__name:"BaseExportButton",props:{label:{type:String,default:"\u5BFC\u51FA"},type:{type:String,default:"primary"},size:{type:String,default:"default"},plain:{type:Boolean,default:!1},link:{type:Boolean,default:!1},text:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},fileName:{type:String,default:""},excelOptions:Object,requestHandler:Function,beforeExport:Function,successMessage:{type:String,default:"\u5BFC\u51FA\u6210\u529F"},errorMessage:{type:String,default:"\u5BFC\u51FA\u5931\u8D25\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5"},autoMessage:{type:Boolean,default:!0}},emits:["start","success","error"],setup(a,{emit:i}){const o=a,r=i,u=e.ref(!1),b=e.computed(()=>o.excelOptions&&o.requestHandler?"invalid":o.excelOptions?"excel":o.requestHandler?"request":"none"),_=e.computed(()=>o.disabled||u.value||b.value==="none");async function h(){return o.beforeExport?await o.beforeExport()!==!1:!0}async function p(){if(u.value||o.disabled)return;if(b.value==="none"){W.ElMessage.warning("\u8BF7\u5148\u914D\u7F6E\u5BFC\u51FA\u903B\u8F91");return}if(b.value==="invalid"){const f=new Error("BaseExportButton \u4E0D\u80FD\u540C\u65F6\u63A5\u6536 excelOptions \u548C requestHandler");r("error",f),W.ElMessage.error(f.message);return}if(!!await h()){u.value=!0,r("start");try{if(b.value==="excel"&&o.excelOptions){await me(o.excelOptions),o.autoMessage&&W.ElMessage.success(o.successMessage),r("success",{mode:"excel",fileName:ae(o.excelOptions.fileName)});return}if(b.value==="request"&&o.requestHandler){const f=await o.requestHandler(),s=be(f,o.fileName);o.autoMessage&&W.ElMessage.success(o.successMessage),r("success",{mode:"request",fileName:s})}}catch(f){console.error(f),o.autoMessage&&W.ElMessage.error(o.errorMessage),r("error",f)}finally{u.value=!1}}}return(m,f)=>{const s=e.resolveComponent("el-button");return e.openBlock(),e.createBlock(s,{class:"base-export-button",type:a.type,size:a.size,plain:a.plain,link:a.link,text:a.text,disabled:_.value,loading:u.value,onClick:p},{default:e.withCtx(()=>[e.renderSlot(m.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(a.label),1)])]),_:3},8,["type","size","plain","link","text","disabled","loading"])}}});exports.echarts=te;exports.BaseCard=Ye;exports.BaseEChart=ut;exports.BaseExportButton=St;exports.BaseTable=ct;exports.downloadExportResponse=be;exports.exportExcel=me;exports.extractFileNameFromDisposition=ye;exports.normalizeExportFileName=ae;
|