duck-vue-components 0.0.6 → 0.0.8
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/dist/index.cjs +1377 -6
- package/dist/index.d.cts +100 -2
- package/dist/index.d.ts +98 -3
- package/dist/index.js +1339 -3
- package/package.json +1 -109
- package/dist/MyButton-BKoM8kgm.js +0 -28
- package/dist/MyButton-M0qFm0tC.cjs +0 -36
- package/dist/_plugin-vue_export-helper-BNbkB8Xs.js +0 -8
- package/dist/_plugin-vue_export-helper-BeRLrMO0.cjs +0 -13
- package/dist/affix-CcyujHVt.cjs +0 -71
- package/dist/affix-DxvcnaOs.js +0 -66
- package/dist/button-BvURAia1.js +0 -126
- package/dist/button-N5uA6OhT.cjs +0 -132
- package/dist/chunk-CZWwpsFl.cjs +0 -43
- package/dist/config.cjs +0 -1
- package/dist/config.js +0 -1
- package/dist/constants/json.cjs +0 -4
- package/dist/constants/json.d.cts +0 -2
- package/dist/constants/json.d.ts +0 -2
- package/dist/constants/json.js +0 -2
- package/dist/constants.cjs +0 -14
- package/dist/constants.d.cts +0 -3
- package/dist/constants.d.ts +0 -3
- package/dist/constants.js +0 -3
- package/dist/controls/MyButton.cjs +0 -3
- package/dist/controls/MyButton.d.cts +0 -2
- package/dist/controls/MyButton.d.ts +0 -2
- package/dist/controls/MyButton.js +0 -2
- package/dist/controls/affix.cjs +0 -8
- package/dist/controls/affix.d.cts +0 -2
- package/dist/controls/affix.d.ts +0 -2
- package/dist/controls/affix.js +0 -2
- package/dist/controls/button.cjs +0 -8
- package/dist/controls/button.js +0 -2
- package/dist/controls.cjs +0 -18
- package/dist/controls.d.cts +0 -10
- package/dist/controls.d.ts +0 -10
- package/dist/controls.js +0 -5
- package/dist/dom-D2nYnips.cjs +0 -580
- package/dist/dom-nS1GG8mY.js +0 -346
- package/dist/index-4GSgYYkp.d.cts +0 -80
- package/dist/index-6D-sPGr4.d.cts +0 -74
- package/dist/index-AZ35Wm9Z.d.ts +0 -15
- package/dist/index-B7SNJjo4.d.cts +0 -15
- package/dist/index-BD5WbpdB.d.ts +0 -23
- package/dist/index-BFjOpjp1.d.ts +0 -51
- package/dist/index-BOxpEe3I.d.cts +0 -1397
- package/dist/index-BPLbgP7R.d.ts +0 -80
- package/dist/index-BQs1A1gt.d.ts +0 -10
- package/dist/index-C9X16Bbq.d.ts +0 -157
- package/dist/index-CRUYJdEH.d.cts +0 -332
- package/dist/index-CvAIHuOB.d.cts +0 -157
- package/dist/index-D3zjcLyv.d.cts +0 -23
- package/dist/index-DLZzHVQW.d.ts +0 -1397
- package/dist/index-DOjU3ihE.d.ts +0 -332
- package/dist/index-DZqsyETv.d.cts +0 -51
- package/dist/index-DkCpTJW1.d.ts +0 -74
- package/dist/index-JBvsQ_SO.d.cts +0 -10
- package/dist/install-D4AzpdLB.js +0 -49
- package/dist/install-DPjdUPun.cjs +0 -58
- package/dist/json-B4qsksk7.js +0 -31023
- package/dist/json-DxoloFzc.cjs +0 -31034
- package/dist/locale-BscyDzS3.js +0 -597
- package/dist/locale-Cw_94Q7K.cjs +0 -676
- package/dist/locale.cjs +0 -12
- package/dist/locale.js +0 -2
- package/dist/objects-CtyuC3Yr.js +0 -134
- package/dist/objects-D1h_O0fs.cjs +0 -272
- package/dist/packages/config.cjs +0 -10
- package/dist/packages/config.d.cts +0 -2
- package/dist/packages/config.d.ts +0 -2
- package/dist/packages/config.js +0 -5
- package/dist/packages/constants/json.cjs +0 -4
- package/dist/packages/constants/json.js +0 -2
- package/dist/packages/constants.cjs +0 -78
- package/dist/packages/constants.js +0 -67
- package/dist/packages/controls/MyButton.cjs +0 -3
- package/dist/packages/controls/MyButton.js +0 -2
- package/dist/packages/controls/affix.cjs +0 -8
- package/dist/packages/controls/affix.js +0 -2
- package/dist/packages/controls/button.cjs +0 -8
- package/dist/packages/controls/button.d.cts +0 -2
- package/dist/packages/controls/button.d.ts +0 -2
- package/dist/packages/controls/button.js +0 -2
- package/dist/packages/controls.cjs +0 -31
- package/dist/packages/controls.js +0 -12
- package/dist/packages/locale.cjs +0 -12
- package/dist/packages/locale.d.cts +0 -39
- package/dist/packages/locale.d.ts +0 -39
- package/dist/packages/locale.js +0 -2
- package/dist/packages/stores.cjs +0 -337
- package/dist/packages/stores.js +0 -320
- package/dist/packages/utils/dom.cjs +0 -32
- package/dist/packages/utils/dom.d.cts +0 -2
- package/dist/packages/utils/dom.d.ts +0 -2
- package/dist/packages/utils/dom.js +0 -2
- package/dist/packages/utils/vue/props.cjs +0 -63
- package/dist/packages/utils/vue/props.d.cts +0 -2
- package/dist/packages/utils/vue/props.d.ts +0 -2
- package/dist/packages/utils/vue/props.js +0 -56
- package/dist/packages/utils/vue.cjs +0 -32
- package/dist/packages/utils/vue.d.cts +0 -3
- package/dist/packages/utils/vue.d.ts +0 -3
- package/dist/packages/utils/vue.js +0 -24
- package/dist/packages/utils.cjs +0 -190
- package/dist/packages/utils.js +0 -6
- package/dist/packages.cjs +0 -20
- package/dist/packages.d.cts +0 -8
- package/dist/packages.d.ts +0 -8
- package/dist/packages.js +0 -7
- package/dist/stores.cjs +0 -17
- package/dist/stores.d.cts +0 -805
- package/dist/stores.d.ts +0 -805
- package/dist/stores.js +0 -4
- package/dist/utils/dom.cjs +0 -32
- package/dist/utils/dom.js +0 -2
- package/dist/utils/vue/props.cjs +0 -7
- package/dist/utils/vue/props.js +0 -2
- package/dist/utils/vue.cjs +0 -11
- package/dist/utils/vue.js +0 -3
- package/dist/utils-B0DnBDiU.js +0 -696
- package/dist/utils-CYsUKcs1.cjs +0 -850
- package/dist/utils.cjs +0 -190
- package/dist/utils.d.cts +0 -5
- package/dist/utils.d.ts +0 -5
- package/dist/utils.js +0 -6
package/dist/index.cjs
CHANGED
|
@@ -2,23 +2,1394 @@ Object.defineProperties(exports, {
|
|
|
2
2
|
__esModule: { value: true },
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
//#region \0rolldown/runtime.js
|
|
6
|
+
var __create = Object.create;
|
|
7
|
+
var __defProp = Object.defineProperty;
|
|
8
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
9
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
10
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
11
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
12
|
+
var __exportAll = (all, no_symbols) => {
|
|
13
|
+
let target = {};
|
|
14
|
+
for (var name in all) __defProp(target, name, {
|
|
15
|
+
get: all[name],
|
|
16
|
+
enumerable: true
|
|
17
|
+
});
|
|
18
|
+
if (!no_symbols) __defProp(target, Symbol.toStringTag, { value: "Module" });
|
|
19
|
+
return target;
|
|
20
|
+
};
|
|
21
|
+
var __copyProps = (to, from, except, desc) => {
|
|
22
|
+
if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
|
|
23
|
+
key = keys[i];
|
|
24
|
+
if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
25
|
+
get: ((k) => from[k]).bind(null, key),
|
|
26
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
return to;
|
|
30
|
+
};
|
|
31
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
|
32
|
+
value: mod,
|
|
33
|
+
enumerable: true
|
|
34
|
+
}) : target, mod));
|
|
35
|
+
//#endregion
|
|
8
36
|
require("element-plus/dist/index.css");
|
|
9
37
|
require("element-plus/theme-chalk/dark/css-vars.css");
|
|
10
|
-
|
|
38
|
+
let element_plus = require("element-plus");
|
|
39
|
+
element_plus = __toESM(element_plus);
|
|
40
|
+
let pinia_plugin_persistedstate = require("pinia-plugin-persistedstate");
|
|
41
|
+
pinia_plugin_persistedstate = __toESM(pinia_plugin_persistedstate);
|
|
42
|
+
let pinia = require("pinia");
|
|
43
|
+
let vue_i18n = require("vue-i18n");
|
|
44
|
+
let vue = require("vue");
|
|
45
|
+
require("@vueuse/core");
|
|
46
|
+
let _vue_shared = require("@vue/shared");
|
|
47
|
+
require("lodash-unified");
|
|
48
|
+
require("lodash-es");
|
|
49
|
+
let axios = require("axios");
|
|
50
|
+
axios = __toESM(axios);
|
|
51
|
+
let crypto_js = require("crypto-js");
|
|
52
|
+
crypto_js = __toESM(crypto_js);
|
|
53
|
+
require("xlsx");
|
|
54
|
+
require("file-saver");
|
|
55
|
+
require("dayjs");
|
|
56
|
+
require("js-cookie");
|
|
57
|
+
//#region src/packages/install/make-installer.ts
|
|
58
|
+
const makeInstaller = (components = []) => {
|
|
59
|
+
const install = (app, options) => {
|
|
60
|
+
components.forEach((component) => {
|
|
61
|
+
if (options) component = {
|
|
62
|
+
...component,
|
|
63
|
+
...options
|
|
64
|
+
};
|
|
65
|
+
app.use(component);
|
|
66
|
+
});
|
|
67
|
+
};
|
|
68
|
+
return { install };
|
|
69
|
+
};
|
|
70
|
+
//#endregion
|
|
71
|
+
//#region src/packages/locale/langs/cn.ts
|
|
72
|
+
var cn_default = {
|
|
73
|
+
name: "cn",
|
|
74
|
+
langs: {
|
|
75
|
+
mutilans: "多语言",
|
|
76
|
+
cn: "简体中文",
|
|
77
|
+
en: "英文",
|
|
78
|
+
tw: "繁体中文"
|
|
79
|
+
},
|
|
80
|
+
common: {
|
|
81
|
+
loading: "加载中...",
|
|
82
|
+
confirm: "确认",
|
|
83
|
+
cancel: "取消",
|
|
84
|
+
ok: "确定",
|
|
85
|
+
search: "搜索",
|
|
86
|
+
reset: "重置",
|
|
87
|
+
submit: "提交",
|
|
88
|
+
delete: "删除",
|
|
89
|
+
edit: "编辑",
|
|
90
|
+
add: "添加",
|
|
91
|
+
save: "保存",
|
|
92
|
+
others: "其他",
|
|
93
|
+
all: "全部",
|
|
94
|
+
none: "无",
|
|
95
|
+
yes: "是",
|
|
96
|
+
no: "否",
|
|
97
|
+
total: "总计",
|
|
98
|
+
totalAmount: "总金额",
|
|
99
|
+
totalCount: "总数量",
|
|
100
|
+
totalPage: "总页数",
|
|
101
|
+
currentPage: "当前页",
|
|
102
|
+
pageSize: "每页条数",
|
|
103
|
+
formCloseTips: "内容已发生改变,您确定离开吗?",
|
|
104
|
+
tips: "温馨提示",
|
|
105
|
+
tipsSuccess: "操作成功"
|
|
106
|
+
},
|
|
107
|
+
table: {
|
|
108
|
+
loading: "表格数据加载中...",
|
|
109
|
+
showColumns: "显示列",
|
|
110
|
+
operate: "操作"
|
|
111
|
+
},
|
|
112
|
+
buttons: {
|
|
113
|
+
resetDefault: "恢复为默认值",
|
|
114
|
+
search: "搜索",
|
|
115
|
+
reset: "重置",
|
|
116
|
+
submit: "提交",
|
|
117
|
+
confirm: "确认",
|
|
118
|
+
confirmDelete: "确认删除",
|
|
119
|
+
cancel: "取消",
|
|
120
|
+
close: "关闭",
|
|
121
|
+
save: "保存",
|
|
122
|
+
saveAndReturn: "保存修改并返回",
|
|
123
|
+
saveAndContinue: "保存并继续修改",
|
|
124
|
+
selectAll: "全选",
|
|
125
|
+
selectInvert: "反选",
|
|
126
|
+
refresh: "刷新",
|
|
127
|
+
append: "添加",
|
|
128
|
+
appendAndContinue: "保存并继续添加",
|
|
129
|
+
appendAndReturn: "保存并返回",
|
|
130
|
+
downloadTemplage: "下载模板",
|
|
131
|
+
edit: "编辑",
|
|
132
|
+
fullScreen: "全屏",
|
|
133
|
+
delete: "删除",
|
|
134
|
+
deleteSelected: "删除所选",
|
|
135
|
+
editTable: "编辑表格",
|
|
136
|
+
import: "导入",
|
|
137
|
+
importing: "导入...",
|
|
138
|
+
downloadTemplate: "下载模板",
|
|
139
|
+
export: "导出",
|
|
140
|
+
exportSelected: "导出选中",
|
|
141
|
+
exportCurrentPage: "导出本页",
|
|
142
|
+
exportTotalPage: "导出全部",
|
|
143
|
+
exportAllPage: "导出全部页",
|
|
144
|
+
darkMode: "暗黑模式",
|
|
145
|
+
default: "默认",
|
|
146
|
+
large: "大",
|
|
147
|
+
small: "小",
|
|
148
|
+
uploadFile: "上传文件",
|
|
149
|
+
uploadImage: "上传图片",
|
|
150
|
+
more: "更多",
|
|
151
|
+
saveToRemote: "保存至远端",
|
|
152
|
+
getFromRemote: "从远端获取",
|
|
153
|
+
localSetting: "个性化设置",
|
|
154
|
+
logout: "退出登录",
|
|
155
|
+
modifyPass: "修改密码",
|
|
156
|
+
tempSave: "临时保存",
|
|
157
|
+
batchDrag: "批量排序",
|
|
158
|
+
saveDrag: "保存排序",
|
|
159
|
+
cancelDrag: "取消排序",
|
|
160
|
+
drag: "排序保存",
|
|
161
|
+
add: "添加",
|
|
162
|
+
getDownloadURL: "获取下载地址"
|
|
163
|
+
},
|
|
164
|
+
echarts: {
|
|
165
|
+
timeBetween: "时间范围",
|
|
166
|
+
selectType: "样式",
|
|
167
|
+
timeFrame: "时间",
|
|
168
|
+
typeOption: {
|
|
169
|
+
line: "折线图",
|
|
170
|
+
bar: "柱状图",
|
|
171
|
+
pie: "饼图"
|
|
172
|
+
},
|
|
173
|
+
timeFrameOption: {
|
|
174
|
+
day: "日",
|
|
175
|
+
month: "月",
|
|
176
|
+
year: "年"
|
|
177
|
+
}
|
|
178
|
+
},
|
|
179
|
+
upload: {
|
|
180
|
+
title: "上传控件",
|
|
181
|
+
success: "上传成功",
|
|
182
|
+
failed: "上传失败"
|
|
183
|
+
},
|
|
184
|
+
prompt: {
|
|
185
|
+
inputKeyword: "请输入关键词",
|
|
186
|
+
selectOptions: "请选择搜索项",
|
|
187
|
+
mustSelectOne: "☚至少选一个搜索项"
|
|
188
|
+
},
|
|
189
|
+
apiError: { title: "接口出错" },
|
|
190
|
+
messages: {
|
|
191
|
+
mustSelectLines: "你没有选中任何行",
|
|
192
|
+
confirmDeleteLines: "你是否确认删除所选行",
|
|
193
|
+
confirmDeleteCurrentLine: "你是否确认删除当前行",
|
|
194
|
+
nullTitle: " ",
|
|
195
|
+
notNull: "不能为空"
|
|
196
|
+
},
|
|
197
|
+
controls: {
|
|
198
|
+
pleaseInput: "请输入",
|
|
199
|
+
pleaseSelect: "请选择",
|
|
200
|
+
startDate: "开始日期",
|
|
201
|
+
endDate: "结束日期"
|
|
202
|
+
},
|
|
203
|
+
units: {
|
|
204
|
+
quantity: { people: "人" },
|
|
205
|
+
currency: {
|
|
206
|
+
CNY: "元",
|
|
207
|
+
USD: "美元"
|
|
208
|
+
}
|
|
209
|
+
},
|
|
210
|
+
createTemplate: {
|
|
211
|
+
submit: "提交",
|
|
212
|
+
tempSave: "临时保存",
|
|
213
|
+
reset: "重置"
|
|
214
|
+
},
|
|
215
|
+
LOADING: "加载中...",
|
|
216
|
+
Refresh: "重试",
|
|
217
|
+
SUBMITTING: "正在提交...",
|
|
218
|
+
RESETTING: "正在重置...",
|
|
219
|
+
ErrorFormat: "格式错误",
|
|
220
|
+
MinimumSelection: "至少选择",
|
|
221
|
+
MaximumSelection: "最多选择",
|
|
222
|
+
LimitMin: "最少输入",
|
|
223
|
+
LimitMax: "最多输入",
|
|
224
|
+
CanNotLessThan: "不能小于",
|
|
225
|
+
CanNotMoreThan: "不能大于",
|
|
226
|
+
CanNotEqualTo: "不能等于",
|
|
227
|
+
CanNotBeEmpty: "不能为空",
|
|
228
|
+
Items: "项",
|
|
229
|
+
Character: "字符",
|
|
230
|
+
Pieces: "件",
|
|
231
|
+
Unit: "个",
|
|
232
|
+
AreYouSure: "您确定",
|
|
233
|
+
Doubt: "吗?",
|
|
234
|
+
Yes: "确定",
|
|
235
|
+
No: "取消"
|
|
236
|
+
};
|
|
237
|
+
//#endregion
|
|
238
|
+
//#region src/packages/locale/langs/en.ts
|
|
239
|
+
var en_default = {
|
|
240
|
+
name: "en",
|
|
241
|
+
langs: {
|
|
242
|
+
mutilans: "Multilingual",
|
|
243
|
+
cn: "Simplified Chinese",
|
|
244
|
+
en: "English",
|
|
245
|
+
tw: "Traditional Chinese"
|
|
246
|
+
},
|
|
247
|
+
common: {
|
|
248
|
+
loading: "Loading...",
|
|
249
|
+
confirm: "Confirm",
|
|
250
|
+
cancel: "Cancel",
|
|
251
|
+
ok: "OK",
|
|
252
|
+
search: "Search",
|
|
253
|
+
reset: "Reset",
|
|
254
|
+
submit: "Submit",
|
|
255
|
+
delete: "Delete",
|
|
256
|
+
edit: "Edit",
|
|
257
|
+
add: "Add",
|
|
258
|
+
save: "Save",
|
|
259
|
+
others: "Others",
|
|
260
|
+
all: "All",
|
|
261
|
+
none: "None",
|
|
262
|
+
yes: "Yes",
|
|
263
|
+
no: "No",
|
|
264
|
+
total: "Total",
|
|
265
|
+
totalAmount: "Total Amount",
|
|
266
|
+
totalCount: "Total Count",
|
|
267
|
+
totalPage: "Total Pages",
|
|
268
|
+
currentPage: "Current Page",
|
|
269
|
+
pageSize: "Items per Page",
|
|
270
|
+
formCloseTips: "The content has changed. Are you sure you want to leave?",
|
|
271
|
+
tips: "Tips",
|
|
272
|
+
tipsSuccess: "Operation Successful"
|
|
273
|
+
},
|
|
274
|
+
table: {
|
|
275
|
+
loading: "Loading table data...",
|
|
276
|
+
showColumns: "Show Columns",
|
|
277
|
+
operate: "Operate"
|
|
278
|
+
},
|
|
279
|
+
buttons: {
|
|
280
|
+
resetDefault: "Reset to Default",
|
|
281
|
+
search: "Search",
|
|
282
|
+
reset: "Reset",
|
|
283
|
+
submit: "Submit",
|
|
284
|
+
confirm: "Confirm",
|
|
285
|
+
confirmDelete: "Confirm Delete",
|
|
286
|
+
cancel: "Cancel",
|
|
287
|
+
close: "Close",
|
|
288
|
+
save: "Save",
|
|
289
|
+
saveAndReturn: "Save and Return",
|
|
290
|
+
saveAndContinue: "Save and Continue",
|
|
291
|
+
selectAll: "Select All",
|
|
292
|
+
selectInvert: "Invert Selection",
|
|
293
|
+
refresh: "Refresh",
|
|
294
|
+
append: "Append",
|
|
295
|
+
appendAndContinue: "Append and Continue",
|
|
296
|
+
appendAndReturn: "Append and Return",
|
|
297
|
+
downloadTemplage: "Download Template",
|
|
298
|
+
edit: "Edit",
|
|
299
|
+
fullScreen: "Full Screen",
|
|
300
|
+
delete: "Delete",
|
|
301
|
+
deleteSelected: "Delete Selected",
|
|
302
|
+
editTable: "Edit Table",
|
|
303
|
+
import: "Import",
|
|
304
|
+
importing: "Importing...",
|
|
305
|
+
downloadTemplate: "Download Template",
|
|
306
|
+
export: "Export",
|
|
307
|
+
exportSelected: "Export Selected",
|
|
308
|
+
exportCurrentPage: "Export Current Page",
|
|
309
|
+
exportTotalPage: "Export All Pages",
|
|
310
|
+
exportAllPage: "Export All Pages",
|
|
311
|
+
darkMode: "Dark Mode",
|
|
312
|
+
default: "Default",
|
|
313
|
+
large: "Large",
|
|
314
|
+
small: "Small",
|
|
315
|
+
uploadFile: "Upload File",
|
|
316
|
+
uploadImage: "Upload Image",
|
|
317
|
+
more: "More",
|
|
318
|
+
saveToRemote: "Save to Remote",
|
|
319
|
+
getFromRemote: "Get from Remote",
|
|
320
|
+
localSetting: "Personal Settings",
|
|
321
|
+
logout: "Log Out",
|
|
322
|
+
modifyPass: "Change Password",
|
|
323
|
+
tempSave: "Temporary Save",
|
|
324
|
+
batchDrag: "Batch Sorting",
|
|
325
|
+
saveDrag: "Save Sorting",
|
|
326
|
+
cancelDrag: "Cancel Sorting"
|
|
327
|
+
},
|
|
328
|
+
echarts: {
|
|
329
|
+
timeBetween: "Time Range",
|
|
330
|
+
selectType: "Type",
|
|
331
|
+
timeFrame: "Time Frame",
|
|
332
|
+
typeOption: {
|
|
333
|
+
line: "Line Chart",
|
|
334
|
+
bar: "Bar Chart",
|
|
335
|
+
pie: "Pie Chart"
|
|
336
|
+
},
|
|
337
|
+
timeFrameOption: {
|
|
338
|
+
day: "Day",
|
|
339
|
+
month: "Month",
|
|
340
|
+
year: "Year"
|
|
341
|
+
}
|
|
342
|
+
},
|
|
343
|
+
upload: {
|
|
344
|
+
title: "Upload Control",
|
|
345
|
+
success: "Upload Success",
|
|
346
|
+
failed: "Upload Failed"
|
|
347
|
+
},
|
|
348
|
+
prompt: {
|
|
349
|
+
inputKeyword: "Please enter a keyword",
|
|
350
|
+
selectOptions: "Please select an option",
|
|
351
|
+
mustSelectOne: "Please select at least one option"
|
|
352
|
+
},
|
|
353
|
+
apiError: { title: "API Error" },
|
|
354
|
+
messages: {
|
|
355
|
+
mustSelectLines: "You have not selected any rows",
|
|
356
|
+
confirmDeleteLines: "Are you sure you want to delete the selected rows?",
|
|
357
|
+
confirmDeleteCurrentLine: "Are you sure you want to delete the current row?",
|
|
358
|
+
nullTitle: " ",
|
|
359
|
+
notNull: "Cannot be empty"
|
|
360
|
+
},
|
|
361
|
+
controls: {
|
|
362
|
+
pleaseInput: "Please enter",
|
|
363
|
+
pleaseSelect: "Please select",
|
|
364
|
+
startDate: "Start Date",
|
|
365
|
+
endDate: "End Date"
|
|
366
|
+
},
|
|
367
|
+
units: {
|
|
368
|
+
quantity: { people: "people" },
|
|
369
|
+
currency: {
|
|
370
|
+
CNY: "CNY",
|
|
371
|
+
USD: "USD"
|
|
372
|
+
}
|
|
373
|
+
},
|
|
374
|
+
createTemplate: {
|
|
375
|
+
submit: "submit",
|
|
376
|
+
tempSave: "Temporary Save",
|
|
377
|
+
reset: "Reset"
|
|
378
|
+
},
|
|
379
|
+
LOADING: "Loading...",
|
|
380
|
+
Refresh: "Refresh",
|
|
381
|
+
SUBMITTING: "Submitting...",
|
|
382
|
+
RESETTING: "Resetting...",
|
|
383
|
+
ErrorFormat: "Format error",
|
|
384
|
+
MinimumSelection: "Minimum selection",
|
|
385
|
+
MaximumSelection: "Maximum selection",
|
|
386
|
+
LimitMin: "Minimum input",
|
|
387
|
+
LimitMax: "Maximum input",
|
|
388
|
+
CanNotLessThan: "Cannot be less than",
|
|
389
|
+
CanNotMoreThan: "Cannot be greater than",
|
|
390
|
+
CanNotEqualTo: "Cannot be equal to",
|
|
391
|
+
CanNotBeEmpty: "Cannot be empty",
|
|
392
|
+
Items: "items",
|
|
393
|
+
Character: "characters",
|
|
394
|
+
Pieces: "pieces",
|
|
395
|
+
Unit: "unit",
|
|
396
|
+
AreYouSure: "Are you sure",
|
|
397
|
+
Doubt: "?",
|
|
398
|
+
Yes: "Yes",
|
|
399
|
+
No: "No"
|
|
400
|
+
};
|
|
401
|
+
//#endregion
|
|
402
|
+
//#region src/packages/locale/langs/tw.ts
|
|
403
|
+
var tw_default = {
|
|
404
|
+
name: "tw",
|
|
405
|
+
langs: {
|
|
406
|
+
mutilans: "多語言",
|
|
407
|
+
cn: "簡體中文",
|
|
408
|
+
en: "英文",
|
|
409
|
+
tw: "繁體中文"
|
|
410
|
+
},
|
|
411
|
+
common: {
|
|
412
|
+
loading: "加載中...",
|
|
413
|
+
confirm: "確認",
|
|
414
|
+
cancel: "取消",
|
|
415
|
+
ok: "確定",
|
|
416
|
+
search: "搜索",
|
|
417
|
+
reset: "重置",
|
|
418
|
+
submit: "提交",
|
|
419
|
+
delete: "刪除",
|
|
420
|
+
edit: "編輯",
|
|
421
|
+
add: "添加",
|
|
422
|
+
save: "保存",
|
|
423
|
+
others: "其他",
|
|
424
|
+
all: "全部",
|
|
425
|
+
none: "無",
|
|
426
|
+
yes: "是",
|
|
427
|
+
no: "否",
|
|
428
|
+
total: "總計",
|
|
429
|
+
totalAmount: "總金額",
|
|
430
|
+
totalCount: "總數量",
|
|
431
|
+
totalPage: "總頁數",
|
|
432
|
+
currentPage: "當前頁",
|
|
433
|
+
pageSize: "每頁條數",
|
|
434
|
+
formCloseTips: "內容已發生改變,您確定離開嗎?",
|
|
435
|
+
tips: "溫馨提示",
|
|
436
|
+
tipsSuccess: "操作成功"
|
|
437
|
+
},
|
|
438
|
+
table: {
|
|
439
|
+
loading: "表格數據加載中...",
|
|
440
|
+
showColumns: "顯示列",
|
|
441
|
+
operate: "操作"
|
|
442
|
+
},
|
|
443
|
+
buttons: {
|
|
444
|
+
resetDefault: "恢復為默認值",
|
|
445
|
+
search: "搜索",
|
|
446
|
+
reset: "重置",
|
|
447
|
+
submit: "提交",
|
|
448
|
+
confirm: "確認",
|
|
449
|
+
confirmDelete: "確認刪除",
|
|
450
|
+
cancel: "取消",
|
|
451
|
+
close: "關閉",
|
|
452
|
+
save: "保存",
|
|
453
|
+
saveAndReturn: "保存修改並返回",
|
|
454
|
+
saveAndContinue: "保存並繼續修改",
|
|
455
|
+
selectAll: "全選",
|
|
456
|
+
selectInvert: "反選",
|
|
457
|
+
refresh: "刷新",
|
|
458
|
+
append: "添加",
|
|
459
|
+
appendAndContinue: "保存並繼續添加",
|
|
460
|
+
appendAndReturn: "保存並返回",
|
|
461
|
+
downloadTemplage: "下載模板",
|
|
462
|
+
edit: "編輯",
|
|
463
|
+
fullScreen: "全屏",
|
|
464
|
+
delete: "刪除",
|
|
465
|
+
deleteSelected: "刪除所選",
|
|
466
|
+
editTable: "編輯表格",
|
|
467
|
+
import: "導入",
|
|
468
|
+
importing: "導入...",
|
|
469
|
+
downloadTemplate: "下載模板",
|
|
470
|
+
export: "導出",
|
|
471
|
+
exportSelected: "導出選中",
|
|
472
|
+
exportCurrentPage: "導出本頁",
|
|
473
|
+
exportTotalPage: "導出全部",
|
|
474
|
+
exportAllPage: "導出全部頁",
|
|
475
|
+
darkMode: "暗黑模式",
|
|
476
|
+
default: "默認",
|
|
477
|
+
large: "大",
|
|
478
|
+
small: "小",
|
|
479
|
+
uploadFile: "上傳文件",
|
|
480
|
+
uploadImage: "上傳圖片",
|
|
481
|
+
more: "更多",
|
|
482
|
+
saveToRemote: "保存至遠端",
|
|
483
|
+
getFromRemote: "從遠端獲取",
|
|
484
|
+
localSetting: "個性化設置",
|
|
485
|
+
logout: "退出登錄",
|
|
486
|
+
modifyPass: "修改密碼",
|
|
487
|
+
tempSave: "臨時保存",
|
|
488
|
+
batchDrag: "批量排序",
|
|
489
|
+
saveDrag: "保存排序",
|
|
490
|
+
cancelDrag: "取消排序"
|
|
491
|
+
},
|
|
492
|
+
echarts: {
|
|
493
|
+
timeBetween: "時間範圍",
|
|
494
|
+
selectType: "樣式",
|
|
495
|
+
timeFrame: "時間",
|
|
496
|
+
typeOption: {
|
|
497
|
+
line: "折線圖",
|
|
498
|
+
bar: "柱狀圖",
|
|
499
|
+
pie: "餅圖"
|
|
500
|
+
},
|
|
501
|
+
timeFrameOption: {
|
|
502
|
+
day: "日",
|
|
503
|
+
month: "月",
|
|
504
|
+
year: "年"
|
|
505
|
+
}
|
|
506
|
+
},
|
|
507
|
+
upload: {
|
|
508
|
+
title: "上傳控件",
|
|
509
|
+
success: "上傳成功",
|
|
510
|
+
failed: "上傳失敗"
|
|
511
|
+
},
|
|
512
|
+
prompt: {
|
|
513
|
+
inputKeyword: "請輸入關鍵詞",
|
|
514
|
+
selectOptions: "請選擇搜索項",
|
|
515
|
+
mustSelectOne: "☚至少選一個搜索項"
|
|
516
|
+
},
|
|
517
|
+
apiError: { title: "接口出錯" },
|
|
518
|
+
messages: {
|
|
519
|
+
mustSelectLines: "您沒有選中任何行",
|
|
520
|
+
confirmDeleteLines: "您是否確認刪除所選行",
|
|
521
|
+
confirmDeleteCurrentLine: "您是否確認刪除當前行",
|
|
522
|
+
nullTitle: " ",
|
|
523
|
+
notNull: "不能為空"
|
|
524
|
+
},
|
|
525
|
+
controls: {
|
|
526
|
+
pleaseInput: "請輸入",
|
|
527
|
+
pleaseSelect: "請選擇",
|
|
528
|
+
startDate: "開始日期",
|
|
529
|
+
endDate: "結束日期"
|
|
530
|
+
},
|
|
531
|
+
units: {
|
|
532
|
+
quantity: { people: "人" },
|
|
533
|
+
currency: {
|
|
534
|
+
CNY: "元",
|
|
535
|
+
USD: "美元"
|
|
536
|
+
}
|
|
537
|
+
},
|
|
538
|
+
createTemplate: {
|
|
539
|
+
submit: "提交",
|
|
540
|
+
tempSave: "臨時保存",
|
|
541
|
+
reset: "重置"
|
|
542
|
+
},
|
|
543
|
+
LOADING: "加載中...",
|
|
544
|
+
Refresh: "重试",
|
|
545
|
+
SUBMITTING: "正在提交...",
|
|
546
|
+
RESETTING: "正在重置...",
|
|
547
|
+
ErrorFormat: "格式錯誤",
|
|
548
|
+
MinimumSelection: "至少選擇",
|
|
549
|
+
MaximumSelection: "最多選擇",
|
|
550
|
+
LimitMin: "最少輸入",
|
|
551
|
+
LimitMax: "最多輸入",
|
|
552
|
+
CanNotLessThan: "不能小於",
|
|
553
|
+
CanNotMoreThan: "不能大於",
|
|
554
|
+
CanNotEqualTo: "不能等於",
|
|
555
|
+
CanNotBeEmpty: "不能為空",
|
|
556
|
+
Items: "項",
|
|
557
|
+
Character: "字符",
|
|
558
|
+
Pieces: "件",
|
|
559
|
+
Unit: "個",
|
|
560
|
+
AreYouSure: "您確定",
|
|
561
|
+
Doubt: "嗎?",
|
|
562
|
+
Yes: "確定",
|
|
563
|
+
No: "取消"
|
|
564
|
+
};
|
|
565
|
+
//#endregion
|
|
566
|
+
//#region src/packages/install/component.ts
|
|
567
|
+
const store = (0, pinia.createPinia)().use(pinia_plugin_persistedstate.default);
|
|
568
|
+
const initLangOptions$1 = (0, vue.reactive)({
|
|
569
|
+
ClientLang: "cn",
|
|
570
|
+
fallbackLocale: "cn",
|
|
571
|
+
appLangs: [
|
|
572
|
+
"cn",
|
|
573
|
+
"en",
|
|
574
|
+
"tw"
|
|
575
|
+
]
|
|
576
|
+
});
|
|
577
|
+
const messages$1 = {
|
|
578
|
+
cn: cn_default,
|
|
579
|
+
en: en_default,
|
|
580
|
+
tw: tw_default
|
|
581
|
+
};
|
|
582
|
+
const i18n$1 = (0, vue_i18n.createI18n)({
|
|
583
|
+
locale: initLangOptions$1.ClientLang,
|
|
584
|
+
allowComposition: true,
|
|
585
|
+
messages: messages$1,
|
|
586
|
+
globalInjection: true,
|
|
587
|
+
legacy: false,
|
|
588
|
+
fallbackLocale: initLangOptions$1.fallbackLocale,
|
|
589
|
+
missing: (locale, key) => {
|
|
590
|
+
return key;
|
|
591
|
+
}
|
|
592
|
+
});
|
|
593
|
+
//#endregion
|
|
594
|
+
//#region src/packages/install/index.ts
|
|
595
|
+
var install_default = makeInstaller([...[
|
|
596
|
+
element_plus.default,
|
|
597
|
+
store,
|
|
598
|
+
i18n$1
|
|
599
|
+
]]);
|
|
600
|
+
//#endregion
|
|
601
|
+
//#region src/packages/config/index.ts
|
|
602
|
+
var config_exports = /* @__PURE__ */ __exportAll({});
|
|
603
|
+
//#endregion
|
|
604
|
+
//#region src/packages/controls/MyButton/MyButton.vue?vue&type=script&setup=true&lang.ts
|
|
605
|
+
var MyButton_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({
|
|
606
|
+
__name: "MyButton",
|
|
607
|
+
props: { type: {
|
|
608
|
+
type: String,
|
|
609
|
+
required: false
|
|
610
|
+
} },
|
|
611
|
+
setup(__props) {
|
|
612
|
+
const count = (0, vue.ref)(0);
|
|
613
|
+
return (_ctx, _cache) => {
|
|
614
|
+
return (0, vue.openBlock)(), (0, vue.createElementBlock)("button", {
|
|
615
|
+
class: "my-button",
|
|
616
|
+
onClick: _cache[0] || (_cache[0] = ($event) => count.value++)
|
|
617
|
+
}, [
|
|
618
|
+
_cache[1] || (_cache[1] = (0, vue.createTextVNode)(" my button", -1)),
|
|
619
|
+
_cache[2] || (_cache[2] = (0, vue.createElementVNode)("br", null, null, -1)),
|
|
620
|
+
(0, vue.createTextVNode)(" type: " + (0, vue.toDisplayString)(__props.type), 1),
|
|
621
|
+
_cache[3] || (_cache[3] = (0, vue.createElementVNode)("br", null, null, -1)),
|
|
622
|
+
(0, vue.createTextVNode)(" count: " + (0, vue.toDisplayString)(count.value), 1)
|
|
623
|
+
]);
|
|
624
|
+
};
|
|
625
|
+
}
|
|
626
|
+
});
|
|
627
|
+
//#endregion
|
|
628
|
+
//#region \0plugin-vue:export-helper
|
|
629
|
+
var _plugin_vue_export_helper_default = (sfc, props) => {
|
|
630
|
+
const target = sfc.__vccOpts || sfc;
|
|
631
|
+
for (const [key, val] of props) target[key] = val;
|
|
632
|
+
return target;
|
|
633
|
+
};
|
|
634
|
+
//#endregion
|
|
635
|
+
//#region src/packages/controls/MyButton/MyButton.vue
|
|
636
|
+
var MyButton_default = /* @__PURE__ */ _plugin_vue_export_helper_default(MyButton_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-8d6f1d45"]]);
|
|
637
|
+
//#endregion
|
|
638
|
+
//#region src/packages/utils/types.ts
|
|
639
|
+
/** 增加 */
|
|
640
|
+
const isHTML = (val) => {
|
|
641
|
+
return /^<[a-z]+(\s[^>]+)?>[\s\S]*<\/[a-z]+>$/.test(val);
|
|
642
|
+
};
|
|
643
|
+
const isComponent = (val) => {
|
|
644
|
+
if ((0, _vue_shared.isString)(val) || (0, _vue_shared.isObject)(val)) return true;
|
|
645
|
+
if (typeof val === "function") return true;
|
|
646
|
+
if (val === null || val === void 0) return true;
|
|
647
|
+
return false;
|
|
648
|
+
};
|
|
649
|
+
//#endregion
|
|
650
|
+
//#region src/packages/utils/vue/install.ts
|
|
651
|
+
const withInstall = (main, extra) => {
|
|
652
|
+
main.install = (app) => {
|
|
653
|
+
for (const comp of [main, ...Object.values(extra ?? {})]) app.component(comp.name, comp);
|
|
654
|
+
};
|
|
655
|
+
if (extra) for (const [key, comp] of Object.entries(extra)) main[key] = comp;
|
|
656
|
+
return main;
|
|
657
|
+
};
|
|
658
|
+
//#endregion
|
|
659
|
+
//#region src/packages/utils/http.ts
|
|
660
|
+
/**
|
|
661
|
+
* HTTP 请求类 - 单例模式实现
|
|
662
|
+
*/
|
|
663
|
+
var Http = class Http {
|
|
664
|
+
static {
|
|
665
|
+
this.domainInstances = /* @__PURE__ */ new Map();
|
|
666
|
+
}
|
|
667
|
+
/**
|
|
668
|
+
* 私有构造函数,防止外部直接实例化
|
|
669
|
+
*/
|
|
670
|
+
constructor(config = {}) {
|
|
671
|
+
this.plugins = [];
|
|
672
|
+
this.config = {
|
|
673
|
+
init: false,
|
|
674
|
+
baseURL: "",
|
|
675
|
+
timeout: 1e4,
|
|
676
|
+
headers: { "Content-Type": "application/x-www-form-urlencoded" },
|
|
677
|
+
repeatPost: false,
|
|
678
|
+
repeatPostTime: 3,
|
|
679
|
+
showError: true,
|
|
680
|
+
autoRelogin: true,
|
|
681
|
+
isDebug: false,
|
|
682
|
+
...config
|
|
683
|
+
};
|
|
684
|
+
this.axiosInstance = axios.default.create({
|
|
685
|
+
baseURL: this.config.baseURL,
|
|
686
|
+
timeout: this.config.timeout,
|
|
687
|
+
headers: this.config.headers
|
|
688
|
+
});
|
|
689
|
+
this.registerBuiltinPlugins();
|
|
690
|
+
if (this.config.plugins && this.config.plugins.length) this.use(...this.config.plugins);
|
|
691
|
+
this.setupInterceptors();
|
|
692
|
+
}
|
|
693
|
+
/**
|
|
694
|
+
* 获取单例实例
|
|
695
|
+
*/
|
|
696
|
+
static getInstance(config) {
|
|
697
|
+
if (!Http.instance || config?.init) Http.instance = new Http(config);
|
|
698
|
+
return Http.instance;
|
|
699
|
+
}
|
|
700
|
+
/**
|
|
701
|
+
* 获取指定域名的实例
|
|
702
|
+
* @param domain 域名
|
|
703
|
+
* @param config 配置
|
|
704
|
+
*/
|
|
705
|
+
static getDomainInstance(domain, config = {}) {
|
|
706
|
+
if (!Http.domainInstances.has(domain)) {
|
|
707
|
+
const domainConfig = {
|
|
708
|
+
...config,
|
|
709
|
+
baseURL: domain
|
|
710
|
+
};
|
|
711
|
+
Http.domainInstances.set(domain, new Http(domainConfig));
|
|
712
|
+
}
|
|
713
|
+
return Http.domainInstances.get(domain);
|
|
714
|
+
}
|
|
715
|
+
/**
|
|
716
|
+
* 创建新的 HTTP 实例(用于特殊需求)
|
|
717
|
+
*/
|
|
718
|
+
static createInstance(config = {}) {
|
|
719
|
+
return new Http(config);
|
|
720
|
+
}
|
|
721
|
+
/**
|
|
722
|
+
* 重新配置实例
|
|
723
|
+
*/
|
|
724
|
+
reconfigure(config) {
|
|
725
|
+
this.config = {
|
|
726
|
+
...this.config,
|
|
727
|
+
...config
|
|
728
|
+
};
|
|
729
|
+
this.axiosInstance = axios.default.create({
|
|
730
|
+
baseURL: this.config.baseURL,
|
|
731
|
+
timeout: this.config.timeout,
|
|
732
|
+
headers: this.config.headers
|
|
733
|
+
});
|
|
734
|
+
this.plugins = [];
|
|
735
|
+
this.registerBuiltinPlugins();
|
|
736
|
+
if (this.config.plugins && this.config.plugins.length) this.use(...this.config.plugins);
|
|
737
|
+
this.setupInterceptors();
|
|
738
|
+
}
|
|
739
|
+
/**
|
|
740
|
+
* 注册内置插件
|
|
741
|
+
*/
|
|
742
|
+
registerBuiltinPlugins() {
|
|
743
|
+
if (this.config.responseHandler) this.use(this.createResponseHandlerPlugin(this.config.responseHandler));
|
|
744
|
+
if (this.config.repeatPost) this.use(this.createRepeatPostPlugin(this.config.repeatPostTime));
|
|
745
|
+
if (this.config.showError) this.use(this.createErrorHandlerPlugin(this.config.errorHandler));
|
|
746
|
+
if (this.config.autoRelogin) this.use(this.createReloginPlugin(this.config.reloginHandler));
|
|
747
|
+
if (this.config.isDebug) this.use(this.createDebugPlugin());
|
|
748
|
+
}
|
|
749
|
+
/**
|
|
750
|
+
* 注册插件
|
|
751
|
+
*/
|
|
752
|
+
use(...plugins) {
|
|
753
|
+
plugins.forEach((plugin) => {
|
|
754
|
+
if (!this.plugins.some((p) => p.name === plugin.name)) this.plugins.push(plugin);
|
|
755
|
+
});
|
|
756
|
+
return this;
|
|
757
|
+
}
|
|
758
|
+
/**
|
|
759
|
+
* 设置拦截器
|
|
760
|
+
*/
|
|
761
|
+
setupInterceptors() {
|
|
762
|
+
this.axiosInstance.interceptors.request.use(async (config) => {
|
|
763
|
+
if (this.config.defaultParams) config.data = {
|
|
764
|
+
...Object.entries(this.config.defaultParams).reduce((acc, [key, value]) => {
|
|
765
|
+
acc[key] = typeof value === "function" ? value() : value;
|
|
766
|
+
return acc;
|
|
767
|
+
}, {}),
|
|
768
|
+
...config.data
|
|
769
|
+
};
|
|
770
|
+
if (this.config.encrypt && this.config.encryptOptions?.encryptFunc) config.data = this.config.encryptOptions.encryptFunc(config.data, this.config.encryptOptions.encryptKey || "");
|
|
771
|
+
let processedConfig = config;
|
|
772
|
+
for (const plugin of this.plugins) if (plugin.onRequest) processedConfig = await plugin.onRequest(processedConfig);
|
|
773
|
+
return processedConfig;
|
|
774
|
+
}, (error) => Promise.reject(error));
|
|
775
|
+
this.axiosInstance.interceptors.response.use(async (response) => {
|
|
776
|
+
if (this.config.encrypt && this.config.encryptOptions?.decryptFunc) response.data = this.config.encryptOptions.decryptFunc(response.data, this.config.encryptOptions.encryptKey || "");
|
|
777
|
+
let processedResponse = response;
|
|
778
|
+
for (const plugin of this.plugins) if (plugin.onResponse) processedResponse = await plugin.onResponse(processedResponse);
|
|
779
|
+
return processedResponse.data;
|
|
780
|
+
}, async (error) => {
|
|
781
|
+
let processedError = error;
|
|
782
|
+
for (const plugin of this.plugins) if (plugin.onError) processedError = await plugin.onError(processedError);
|
|
783
|
+
return Promise.reject(processedError);
|
|
784
|
+
});
|
|
785
|
+
}
|
|
786
|
+
/**
|
|
787
|
+
* 创建防重复提交插件
|
|
788
|
+
*/
|
|
789
|
+
createRepeatPostPlugin(time = 3) {
|
|
790
|
+
return {
|
|
791
|
+
name: "repeatPost",
|
|
792
|
+
onRequest: (config) => {
|
|
793
|
+
const url = config.url || "";
|
|
794
|
+
const data = config.data || {};
|
|
795
|
+
if (this.isRepeatPost(url, data, time)) config.cancelToken = new axios.default.CancelToken((cancel) => {
|
|
796
|
+
cancel("重复提交,已取消请求");
|
|
797
|
+
});
|
|
798
|
+
return config;
|
|
799
|
+
}
|
|
800
|
+
};
|
|
801
|
+
}
|
|
802
|
+
/**
|
|
803
|
+
* 创建错误处理插件
|
|
804
|
+
*/
|
|
805
|
+
createErrorHandlerPlugin(customHandler) {
|
|
806
|
+
return {
|
|
807
|
+
name: "errorHandler",
|
|
808
|
+
onError: (error) => {
|
|
809
|
+
const message = error.message || "请求失败";
|
|
810
|
+
if (customHandler) customHandler();
|
|
811
|
+
else console.error(`请求错误: ${message}`);
|
|
812
|
+
return error;
|
|
813
|
+
}
|
|
814
|
+
};
|
|
815
|
+
}
|
|
816
|
+
/**
|
|
817
|
+
* 创建重新登录插件
|
|
818
|
+
*/
|
|
819
|
+
createReloginPlugin(reloginHandler) {
|
|
820
|
+
return {
|
|
821
|
+
name: "autoRelogin",
|
|
822
|
+
onResponse: async (response) => {
|
|
823
|
+
const data = response.data;
|
|
824
|
+
if (data && data.status === 99) {
|
|
825
|
+
if (reloginHandler) {
|
|
826
|
+
if (await reloginHandler()) {
|
|
827
|
+
const result = await this.axiosInstance(response.config);
|
|
828
|
+
return {
|
|
829
|
+
...response,
|
|
830
|
+
data: result
|
|
831
|
+
};
|
|
832
|
+
}
|
|
833
|
+
}
|
|
834
|
+
}
|
|
835
|
+
return response;
|
|
836
|
+
}
|
|
837
|
+
};
|
|
838
|
+
}
|
|
839
|
+
/**
|
|
840
|
+
* 创建调试插件
|
|
841
|
+
*/
|
|
842
|
+
createDebugPlugin() {
|
|
843
|
+
return {
|
|
844
|
+
name: "debug",
|
|
845
|
+
onRequest: (config) => {
|
|
846
|
+
console.log("请求配置:", config);
|
|
847
|
+
return config;
|
|
848
|
+
},
|
|
849
|
+
onResponse: (response) => {
|
|
850
|
+
console.log("响应数据:", response.data);
|
|
851
|
+
return response;
|
|
852
|
+
},
|
|
853
|
+
onError: (error) => {
|
|
854
|
+
console.error("请求错误:", error);
|
|
855
|
+
return error;
|
|
856
|
+
}
|
|
857
|
+
};
|
|
858
|
+
}
|
|
859
|
+
/**
|
|
860
|
+
* 创建统一响应处理插件
|
|
861
|
+
*/
|
|
862
|
+
createResponseHandlerPlugin(config) {
|
|
863
|
+
const { successCodes = [200, 0], reloginCodes = [
|
|
864
|
+
401,
|
|
865
|
+
403,
|
|
866
|
+
99
|
|
867
|
+
], loginPath = "/login", redirectCodes = {}, customHandlers = {}, reLogin, routerPush, showMessage } = config;
|
|
868
|
+
return {
|
|
869
|
+
name: "responseHandler",
|
|
870
|
+
onResponse: async (response) => {
|
|
871
|
+
const data = response.data;
|
|
872
|
+
const status = data?.status ?? data?.code ?? response.status;
|
|
873
|
+
if (customHandlers[status]) return {
|
|
874
|
+
...response,
|
|
875
|
+
data: customHandlers[status](data, response)
|
|
876
|
+
};
|
|
877
|
+
if (reloginCodes.includes(status)) {
|
|
878
|
+
const message = data?.message || data?.msg || "登录已过期,请重新登录";
|
|
879
|
+
if (showMessage) showMessage(message, "warning");
|
|
880
|
+
if (reLogin) reLogin();
|
|
881
|
+
else if (routerPush) routerPush(typeof loginPath === "function" ? loginPath() : loginPath);
|
|
882
|
+
return Promise.reject(new Error(message));
|
|
883
|
+
}
|
|
884
|
+
if (redirectCodes[status]) {
|
|
885
|
+
const message = data?.message || data?.msg || "页面跳转中...";
|
|
886
|
+
if (showMessage) showMessage(message, "info");
|
|
887
|
+
if (routerPush) routerPush(redirectCodes[status]);
|
|
888
|
+
}
|
|
889
|
+
if (successCodes.includes(status)) return response;
|
|
890
|
+
const errorMessage = data?.message || data?.msg || "请求失败";
|
|
891
|
+
if (showMessage) showMessage(errorMessage, "error");
|
|
892
|
+
return Promise.reject(new Error(errorMessage));
|
|
893
|
+
},
|
|
894
|
+
onError: (error) => {
|
|
895
|
+
const message = error.message || "网络请求失败";
|
|
896
|
+
if (showMessage) showMessage(message, "error");
|
|
897
|
+
return Promise.reject(error);
|
|
898
|
+
}
|
|
899
|
+
};
|
|
900
|
+
}
|
|
901
|
+
/**
|
|
902
|
+
* 检查是否重复提交
|
|
903
|
+
*/
|
|
904
|
+
isRepeatPost(url, data, time) {
|
|
905
|
+
return false;
|
|
906
|
+
}
|
|
907
|
+
/**
|
|
908
|
+
* GET 请求
|
|
909
|
+
* @param url 请求路径
|
|
910
|
+
* @param params 请求参数
|
|
911
|
+
* @param config 请求配置
|
|
912
|
+
* @param domain 可选的域名,如果提供则使用该域名发送请求
|
|
913
|
+
*/
|
|
914
|
+
get(url, params = {}, config = {}, domain) {
|
|
915
|
+
if (domain) return Http.getDomainInstance(domain).get(url, params, config);
|
|
916
|
+
return this.axiosInstance.get(url, {
|
|
917
|
+
params,
|
|
918
|
+
...config
|
|
919
|
+
});
|
|
920
|
+
}
|
|
921
|
+
/**
|
|
922
|
+
* POST 请求
|
|
923
|
+
* @param url 请求路径
|
|
924
|
+
* @param data 请求数据
|
|
925
|
+
* @param config 请求配置
|
|
926
|
+
* @param domain 可选的域名,如果提供则使用该域名发送请求
|
|
927
|
+
*/
|
|
928
|
+
post(url, data = {}, config = {}, domain) {
|
|
929
|
+
if (domain) return Http.getDomainInstance(domain).post(url, data, config);
|
|
930
|
+
return this.axiosInstance.post(url, data, config);
|
|
931
|
+
}
|
|
932
|
+
/**
|
|
933
|
+
* PUT 请求
|
|
934
|
+
* @param url 请求路径
|
|
935
|
+
* @param data 请求数据
|
|
936
|
+
* @param config 请求配置
|
|
937
|
+
* @param domain 可选的域名,如果提供则使用该域名发送请求
|
|
938
|
+
*/
|
|
939
|
+
put(url, data = {}, config = {}, domain) {
|
|
940
|
+
if (domain) return Http.getDomainInstance(domain).put(url, data, config);
|
|
941
|
+
return this.axiosInstance.put(url, data, config);
|
|
942
|
+
}
|
|
943
|
+
/**
|
|
944
|
+
* DELETE 请求
|
|
945
|
+
* @param url 请求路径
|
|
946
|
+
* @param config 请求配置
|
|
947
|
+
* @param domain 可选的域名,如果提供则使用该域名发送请求
|
|
948
|
+
*/
|
|
949
|
+
delete(url, config = {}, domain) {
|
|
950
|
+
if (domain) return Http.getDomainInstance(domain).delete(url, config);
|
|
951
|
+
return this.axiosInstance.delete(url, config);
|
|
952
|
+
}
|
|
953
|
+
/**
|
|
954
|
+
* 直接请求特定域名
|
|
955
|
+
* @param domain 域名
|
|
956
|
+
*/
|
|
957
|
+
domain(domain) {
|
|
958
|
+
return Http.getDomainInstance(domain);
|
|
959
|
+
}
|
|
960
|
+
/**
|
|
961
|
+
* 添加请求取消功能
|
|
962
|
+
*/
|
|
963
|
+
/**
|
|
964
|
+
* 文件上传请求
|
|
965
|
+
*/
|
|
966
|
+
upload(url, file, config = {}, domain) {
|
|
967
|
+
const formData = file instanceof File ? new FormData() : file;
|
|
968
|
+
if (file instanceof File) formData.append("file", file);
|
|
969
|
+
const uploadConfig = {
|
|
970
|
+
headers: { "Content-Type": "multipart/form-data" },
|
|
971
|
+
...config
|
|
972
|
+
};
|
|
973
|
+
if (domain) return Http.getDomainInstance(domain).post(url, formData, uploadConfig);
|
|
974
|
+
return this.axiosInstance.post(url, formData, uploadConfig);
|
|
975
|
+
}
|
|
976
|
+
/**
|
|
977
|
+
* 文件下载请求
|
|
978
|
+
*/
|
|
979
|
+
download(url, params = {}, config = {}, domain) {
|
|
980
|
+
const downloadConfig = {
|
|
981
|
+
responseType: "blob",
|
|
982
|
+
...config
|
|
983
|
+
};
|
|
984
|
+
if (domain) return Http.getDomainInstance(domain).get(url, params, downloadConfig);
|
|
985
|
+
return this.axiosInstance.get(url, {
|
|
986
|
+
params,
|
|
987
|
+
...downloadConfig
|
|
988
|
+
});
|
|
989
|
+
}
|
|
990
|
+
};
|
|
991
|
+
const http = new Proxy({}, { get(target, prop) {
|
|
992
|
+
const instance = Http.getInstance();
|
|
993
|
+
const value = instance[prop];
|
|
994
|
+
if (typeof value === "function") return value.bind(instance);
|
|
995
|
+
return value;
|
|
996
|
+
} });
|
|
997
|
+
//#endregion
|
|
998
|
+
//#region src/packages/utils/encrypt.ts
|
|
999
|
+
function rwEncode(data, privateKey = {}.env.VITE_PRIVATE_KEY) {
|
|
1000
|
+
const dataString = JSON.stringify(data);
|
|
1001
|
+
const keyHex = crypto_js.default.enc.Utf8.parse(privateKey);
|
|
1002
|
+
const options = {
|
|
1003
|
+
mode: crypto_js.default.mode.ECB,
|
|
1004
|
+
padding: crypto_js.default.pad.Pkcs7
|
|
1005
|
+
};
|
|
1006
|
+
const Result = crypto_js.default.DES.encrypt(dataString, keyHex, options);
|
|
1007
|
+
return crypto_js.default.enc.Base64.stringify(Result.ciphertext);
|
|
1008
|
+
}
|
|
1009
|
+
function rwDecode(data, privateKey = {}.env.VITE_PRIVATE_KEY, showError = true) {
|
|
1010
|
+
const keyHex = crypto_js.default.enc.Utf8.parse(privateKey);
|
|
1011
|
+
const options = {
|
|
1012
|
+
mode: crypto_js.default.mode.ECB,
|
|
1013
|
+
padding: crypto_js.default.pad.Pkcs7
|
|
1014
|
+
};
|
|
1015
|
+
try {
|
|
1016
|
+
const Result = crypto_js.default.DES.decrypt(data, keyHex, options);
|
|
1017
|
+
const ResultString = crypto_js.default.enc.Utf8.stringify(Result);
|
|
1018
|
+
return JSON.parse(ResultString);
|
|
1019
|
+
} catch {
|
|
1020
|
+
if (process?.env?.NODE_ENV != "production" && showError) element_plus.ElMessageBox.alert(data, "返回数据解决出错,原文如下", { dangerouslyUseHTMLString: true });
|
|
1021
|
+
if (!showError) return data;
|
|
1022
|
+
return false;
|
|
1023
|
+
}
|
|
1024
|
+
}
|
|
1025
|
+
(0, pinia.defineStore)("appConfig", {
|
|
1026
|
+
state: () => ({
|
|
1027
|
+
title: "",
|
|
1028
|
+
logo: "",
|
|
1029
|
+
bgImg: "",
|
|
1030
|
+
showWater: true,
|
|
1031
|
+
showChoiceSites: false,
|
|
1032
|
+
support: "广州召隆信息技术有限公司",
|
|
1033
|
+
coopyRight: "Copyright 2025",
|
|
1034
|
+
developerMode: true,
|
|
1035
|
+
layout: {
|
|
1036
|
+
layout: "ltb",
|
|
1037
|
+
userCanChange: false,
|
|
1038
|
+
paleTheme: false,
|
|
1039
|
+
chalk: "blue"
|
|
1040
|
+
},
|
|
1041
|
+
login: {
|
|
1042
|
+
saveLoginDate: 14,
|
|
1043
|
+
checkLoginStatus: 5,
|
|
1044
|
+
ShowLoginAuthCode: true
|
|
1045
|
+
},
|
|
1046
|
+
expires: {
|
|
1047
|
+
postTime: 10,
|
|
1048
|
+
keyword: 5,
|
|
1049
|
+
options: 60
|
|
1050
|
+
},
|
|
1051
|
+
map: {
|
|
1052
|
+
type: "",
|
|
1053
|
+
key: ""
|
|
1054
|
+
}
|
|
1055
|
+
}),
|
|
1056
|
+
getters: {},
|
|
1057
|
+
actions: {
|
|
1058
|
+
async getFromRemote(url) {
|
|
1059
|
+
return await http.post(url, {}).then((res) => {
|
|
1060
|
+
if (res.status == 0) {
|
|
1061
|
+
this.$patch({ ...res.data });
|
|
1062
|
+
return true;
|
|
1063
|
+
} else return false;
|
|
1064
|
+
});
|
|
1065
|
+
},
|
|
1066
|
+
saveToRemote(url) {
|
|
1067
|
+
http.post(url, this.$state).then((res) => {
|
|
1068
|
+
if (res.status == 0) return true;
|
|
1069
|
+
else return false;
|
|
1070
|
+
});
|
|
1071
|
+
},
|
|
1072
|
+
reset() {
|
|
1073
|
+
this.$reset();
|
|
1074
|
+
}
|
|
1075
|
+
},
|
|
1076
|
+
persist: {
|
|
1077
|
+
key: "appConfig",
|
|
1078
|
+
serializer: {
|
|
1079
|
+
serialize: (state) => rwEncode(state),
|
|
1080
|
+
deserialize: (data) => rwDecode(data)
|
|
1081
|
+
},
|
|
1082
|
+
storage: localStorage
|
|
1083
|
+
}
|
|
1084
|
+
});
|
|
1085
|
+
//#endregion
|
|
1086
|
+
//#region src/packages/locale/index.ts
|
|
1087
|
+
const initLangOptions = (0, vue.reactive)({
|
|
1088
|
+
ClientLang: "cn",
|
|
1089
|
+
fallbackLocale: "cn",
|
|
1090
|
+
appLangs: [
|
|
1091
|
+
"cn",
|
|
1092
|
+
"en",
|
|
1093
|
+
"tw"
|
|
1094
|
+
]
|
|
1095
|
+
});
|
|
1096
|
+
const messages = {
|
|
1097
|
+
cn: cn_default,
|
|
1098
|
+
en: en_default,
|
|
1099
|
+
tw: tw_default
|
|
1100
|
+
};
|
|
1101
|
+
[
|
|
1102
|
+
{
|
|
1103
|
+
label: messages.cn.langs?.cn || "CN",
|
|
1104
|
+
value: "cn",
|
|
1105
|
+
image: ""
|
|
1106
|
+
},
|
|
1107
|
+
{
|
|
1108
|
+
label: messages.en.langs?.en || "EN",
|
|
1109
|
+
value: "en",
|
|
1110
|
+
image: ""
|
|
1111
|
+
},
|
|
1112
|
+
{
|
|
1113
|
+
label: messages.tw.langs?.tw || "TW",
|
|
1114
|
+
value: "tw",
|
|
1115
|
+
image: ""
|
|
1116
|
+
}
|
|
1117
|
+
].sort((a, b) => {
|
|
1118
|
+
const aIndex = initLangOptions.appLangs.indexOf(a.value);
|
|
1119
|
+
const bIndex = initLangOptions.appLangs.indexOf(b.value);
|
|
1120
|
+
if (aIndex !== -1 && bIndex !== -1) return aIndex - bIndex;
|
|
1121
|
+
if (aIndex !== -1) return -1;
|
|
1122
|
+
if (bIndex !== -1) return 1;
|
|
1123
|
+
return a.value.localeCompare(b.value);
|
|
1124
|
+
});
|
|
1125
|
+
const i18n = (0, vue_i18n.createI18n)({
|
|
1126
|
+
locale: initLangOptions.ClientLang,
|
|
1127
|
+
allowComposition: true,
|
|
1128
|
+
messages,
|
|
1129
|
+
globalInjection: true,
|
|
1130
|
+
legacy: false,
|
|
1131
|
+
fallbackLocale: initLangOptions.fallbackLocale,
|
|
1132
|
+
missing: (locale, key) => {
|
|
1133
|
+
return key;
|
|
1134
|
+
}
|
|
1135
|
+
});
|
|
1136
|
+
(0, vue.watch)(() => initLangOptions.ClientLang, (newVal) => {
|
|
1137
|
+
i18n.global.locale.value = newVal;
|
|
1138
|
+
});
|
|
1139
|
+
const { locale } = i18n.global;
|
|
1140
|
+
const t = (key, values) => {
|
|
1141
|
+
return i18n.global.t(key, values);
|
|
1142
|
+
};
|
|
1143
|
+
(class {
|
|
1144
|
+
static {
|
|
1145
|
+
this.cache = /* @__PURE__ */ new Map();
|
|
1146
|
+
}
|
|
1147
|
+
static parsePath(path) {
|
|
1148
|
+
if (this.cache.has(path)) return this.cache.get(path);
|
|
1149
|
+
const keys = path.replace(/\[(\d+)\]/g, ".$1").split(".").filter((key) => key !== "");
|
|
1150
|
+
this.cache.set(path, keys);
|
|
1151
|
+
return keys;
|
|
1152
|
+
}
|
|
1153
|
+
static getValue(obj, path) {
|
|
1154
|
+
const keys = this.parsePath(path);
|
|
1155
|
+
let current = obj;
|
|
1156
|
+
for (const key of keys) {
|
|
1157
|
+
if (current === null || current === void 0) return;
|
|
1158
|
+
current = current[key];
|
|
1159
|
+
}
|
|
1160
|
+
return current;
|
|
1161
|
+
}
|
|
1162
|
+
static setValue(obj, path, value) {
|
|
1163
|
+
const keys = this.parsePath(path);
|
|
1164
|
+
let current = obj;
|
|
1165
|
+
for (let i = 0; i < keys.length - 1; i++) {
|
|
1166
|
+
const key = keys[i];
|
|
1167
|
+
const nextKey = keys[i + 1];
|
|
1168
|
+
if (current[key] === null || current[key] === void 0) current[key] = /^\d+$/.test(nextKey) ? [] : {};
|
|
1169
|
+
current = current[key];
|
|
1170
|
+
}
|
|
1171
|
+
current[keys[keys.length - 1]] = value;
|
|
1172
|
+
}
|
|
1173
|
+
static deleteValue(obj, path) {
|
|
1174
|
+
const keys = this.parsePath(path);
|
|
1175
|
+
let current = obj;
|
|
1176
|
+
for (let i = 0; i < keys.length - 1; i++) {
|
|
1177
|
+
if (current === null || current === void 0) return false;
|
|
1178
|
+
current = current[keys[i]];
|
|
1179
|
+
}
|
|
1180
|
+
if (current && keys.length > 0) {
|
|
1181
|
+
const lastKey = keys[keys.length - 1];
|
|
1182
|
+
if (Array.isArray(current)) current.splice(parseInt(lastKey), 1);
|
|
1183
|
+
else delete current[lastKey];
|
|
1184
|
+
return true;
|
|
1185
|
+
}
|
|
1186
|
+
return false;
|
|
1187
|
+
}
|
|
1188
|
+
static hasValue(obj, path) {
|
|
1189
|
+
const keys = this.parsePath(path);
|
|
1190
|
+
let current = obj;
|
|
1191
|
+
for (const key of keys) {
|
|
1192
|
+
if (current === null || current === void 0 || !(key in current)) return false;
|
|
1193
|
+
current = current[key];
|
|
1194
|
+
}
|
|
1195
|
+
return true;
|
|
1196
|
+
}
|
|
1197
|
+
});
|
|
1198
|
+
//#endregion
|
|
1199
|
+
//#region src/packages/controls/button/button.vue?vue&type=script&setup=true&lang.ts
|
|
1200
|
+
const _hoisted_1$1 = ["innerHTML"];
|
|
1201
|
+
const _hoisted_2$1 = { key: 2 };
|
|
1202
|
+
const _hoisted_3 = ["innerHTML"];
|
|
1203
|
+
const _hoisted_4 = { key: 2 };
|
|
1204
|
+
const _hoisted_5 = ["innerHTML"];
|
|
1205
|
+
const _hoisted_6 = { key: 2 };
|
|
1206
|
+
//#endregion
|
|
1207
|
+
//#region src/packages/controls/button/button.vue
|
|
1208
|
+
var button_default = /* @__PURE__ */ _plugin_vue_export_helper_default(/* @__PURE__ */ (0, vue.defineComponent)({
|
|
1209
|
+
__name: "button",
|
|
1210
|
+
props: { control: {
|
|
1211
|
+
type: Object,
|
|
1212
|
+
required: true
|
|
1213
|
+
} },
|
|
1214
|
+
emits: ["click"],
|
|
1215
|
+
setup(__props, { emit: __emit }) {
|
|
1216
|
+
const props = __props;
|
|
1217
|
+
const buttonProps = (0, vue.computed)(() => {
|
|
1218
|
+
const { default: _default, iconSlot, loadingSlot, suffixIcon, ...rest } = props.control;
|
|
1219
|
+
return { ...rest };
|
|
1220
|
+
});
|
|
1221
|
+
const label = (0, vue.computed)(() => {
|
|
1222
|
+
const { moduleName, name, label } = props.control;
|
|
1223
|
+
return label ? t(label) : t(`${moduleName}.${name}`);
|
|
1224
|
+
});
|
|
1225
|
+
const emits = __emit;
|
|
1226
|
+
function onClick(evt) {
|
|
1227
|
+
emits("click", props.control);
|
|
1228
|
+
}
|
|
1229
|
+
return (_ctx, _cache) => {
|
|
1230
|
+
const _component_ElIcon = (0, vue.resolveComponent)("ElIcon");
|
|
1231
|
+
return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(element_plus.ElButton), (0, vue.mergeProps)(buttonProps.value, {
|
|
1232
|
+
class: { "separator-class": __props.control.separator },
|
|
1233
|
+
onClick: (0, vue.withModifiers)(onClick, ["stop"])
|
|
1234
|
+
}), (0, vue.createSlots)({ _: 2 }, [
|
|
1235
|
+
_ctx.$slots.default ? {
|
|
1236
|
+
name: "default",
|
|
1237
|
+
fn: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "default", {}, void 0, true)]),
|
|
1238
|
+
key: "0"
|
|
1239
|
+
} : __props.control.default ? {
|
|
1240
|
+
name: "default",
|
|
1241
|
+
fn: (0, vue.withCtx)(() => [(0, vue.unref)(isComponent)(__props.control.default) && !(0, vue.unref)(isHTML)(__props.control.default) ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)((0, vue.markRaw)(__props.control.default)), { key: 0 })) : typeof __props.control.default === "string" && (0, vue.unref)(isHTML)(__props.control.default) ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", {
|
|
1242
|
+
key: 1,
|
|
1243
|
+
innerHTML: __props.control.default
|
|
1244
|
+
}, null, 8, _hoisted_1$1)) : ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", _hoisted_2$1, (0, vue.toDisplayString)(__props.control.default), 1))]),
|
|
1245
|
+
key: "1"
|
|
1246
|
+
} : __props.control.separator ? {
|
|
1247
|
+
name: "default",
|
|
1248
|
+
fn: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(element_plus.ElDivider), {
|
|
1249
|
+
direction: "vertical",
|
|
1250
|
+
"content-position": "center"
|
|
1251
|
+
})]),
|
|
1252
|
+
key: "2"
|
|
1253
|
+
} : {
|
|
1254
|
+
name: "default",
|
|
1255
|
+
fn: (0, vue.withCtx)(() => [
|
|
1256
|
+
(0, vue.createTextVNode)((0, vue.toDisplayString)(label.value) + " ", 1),
|
|
1257
|
+
(0, vue.createCommentVNode)(" 后缀图标 "),
|
|
1258
|
+
__props.control.suffixIcon ? ((0, vue.openBlock)(), (0, vue.createBlock)(_component_ElIcon, {
|
|
1259
|
+
key: 0,
|
|
1260
|
+
class: "el-icon--right"
|
|
1261
|
+
}, {
|
|
1262
|
+
default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)((0, vue.markRaw)(__props.control.suffixIcon))))]),
|
|
1263
|
+
_: 1
|
|
1264
|
+
})) : (0, vue.createCommentVNode)("v-if", true)
|
|
1265
|
+
]),
|
|
1266
|
+
key: "3"
|
|
1267
|
+
},
|
|
1268
|
+
_ctx.$slots.loading ? {
|
|
1269
|
+
name: "loading",
|
|
1270
|
+
fn: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "loading", {}, void 0, true)]),
|
|
1271
|
+
key: "4"
|
|
1272
|
+
} : __props.control.loadingSlot ? {
|
|
1273
|
+
name: "loading",
|
|
1274
|
+
fn: (0, vue.withCtx)(() => [(0, vue.unref)(isComponent)(__props.control.loadingSlot) && !(0, vue.unref)(isHTML)(__props.control.loadingSlot) ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)((0, vue.markRaw)(__props.control.loadingSlot)), { key: 0 })) : typeof __props.control.loadingSlot === "string" && (0, vue.unref)(isHTML)(__props.control.loadingSlot) ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", {
|
|
1275
|
+
key: 1,
|
|
1276
|
+
innerHTML: __props.control.loadingSlot
|
|
1277
|
+
}, null, 8, _hoisted_3)) : ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", _hoisted_4, (0, vue.toDisplayString)(__props.control.loadingSlot), 1))]),
|
|
1278
|
+
key: "5"
|
|
1279
|
+
} : void 0,
|
|
1280
|
+
_ctx.$slots.icon ? {
|
|
1281
|
+
name: "icon",
|
|
1282
|
+
fn: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "icon", {}, void 0, true)]),
|
|
1283
|
+
key: "6"
|
|
1284
|
+
} : __props.control.iconSlot ? {
|
|
1285
|
+
name: "icon",
|
|
1286
|
+
fn: (0, vue.withCtx)(() => [(0, vue.unref)(isComponent)(__props.control.iconSlot) && !(0, vue.unref)(isHTML)(__props.control.iconSlot) ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)((0, vue.markRaw)(__props.control.iconSlot)), { key: 0 })) : typeof __props.control.iconSlot === "string" && (0, vue.unref)(isHTML)(__props.control.iconSlot) ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", {
|
|
1287
|
+
key: 1,
|
|
1288
|
+
innerHTML: __props.control.iconSlot
|
|
1289
|
+
}, null, 8, _hoisted_5)) : ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", _hoisted_6, (0, vue.toDisplayString)(__props.control.iconSlot), 1))]),
|
|
1290
|
+
key: "7"
|
|
1291
|
+
} : void 0
|
|
1292
|
+
]), 1040, ["class"]);
|
|
1293
|
+
};
|
|
1294
|
+
}
|
|
1295
|
+
}), [["__scopeId", "data-v-2741bf9a"]]);
|
|
1296
|
+
//#endregion
|
|
1297
|
+
//#region src/packages/controls/button/button.ts
|
|
1298
|
+
var button_exports = /* @__PURE__ */ __exportAll({
|
|
1299
|
+
Template: () => Template$1,
|
|
1300
|
+
init: () => init$1
|
|
1301
|
+
});
|
|
1302
|
+
const Template$1 = withInstall(button_default);
|
|
1303
|
+
function init$1(moduleName, name, options) {
|
|
1304
|
+
return {
|
|
1305
|
+
moduleName,
|
|
1306
|
+
name,
|
|
1307
|
+
customized: false,
|
|
1308
|
+
separator: false,
|
|
1309
|
+
...options,
|
|
1310
|
+
controlType: "button",
|
|
1311
|
+
text: options?.separator ?? options?.text,
|
|
1312
|
+
disabled: options?.separator ?? options?.disabled
|
|
1313
|
+
};
|
|
1314
|
+
}
|
|
1315
|
+
//#endregion
|
|
1316
|
+
//#region src/packages/controls/affix/affix.vue?vue&type=script&setup=true&lang.ts
|
|
1317
|
+
const _hoisted_1 = ["innerHTML"];
|
|
1318
|
+
const _hoisted_2 = { key: 2 };
|
|
1319
|
+
//#endregion
|
|
1320
|
+
//#region src/packages/controls/affix/affix.vue
|
|
1321
|
+
var affix_default = /* @__PURE__ */ (0, vue.defineComponent)({
|
|
1322
|
+
__name: "affix",
|
|
1323
|
+
props: { control: {
|
|
1324
|
+
type: Object,
|
|
1325
|
+
required: true
|
|
1326
|
+
} },
|
|
1327
|
+
setup(__props) {
|
|
1328
|
+
const props = __props;
|
|
1329
|
+
const affixProps = (0, vue.computed)(() => {
|
|
1330
|
+
const { ...rest } = props.control;
|
|
1331
|
+
return rest;
|
|
1332
|
+
});
|
|
1333
|
+
const handleChange = (fixed) => {
|
|
1334
|
+
props.control.change?.(fixed);
|
|
1335
|
+
};
|
|
1336
|
+
const handleScroll = (val) => {
|
|
1337
|
+
props.control.scroll?.(val);
|
|
1338
|
+
};
|
|
1339
|
+
return (_ctx, _cache) => {
|
|
1340
|
+
return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(element_plus.ElAffix), (0, vue.mergeProps)(affixProps.value, {
|
|
1341
|
+
onChange: handleChange,
|
|
1342
|
+
onScroll: handleScroll
|
|
1343
|
+
}), (0, vue.createSlots)({
|
|
1344
|
+
default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(element_plus.ElButton), { type: "primary" }, {
|
|
1345
|
+
default: (0, vue.withCtx)(() => [(0, vue.createTextVNode)((0, vue.toDisplayString)(__props.control.name), 1)]),
|
|
1346
|
+
_: 1
|
|
1347
|
+
})]),
|
|
1348
|
+
_: 2
|
|
1349
|
+
}, [__props.control.default ? {
|
|
1350
|
+
name: "default",
|
|
1351
|
+
fn: (0, vue.withCtx)(() => [(0, vue.unref)(isComponent)(__props.control.default) && (0, vue.unref)(isHTML)(__props.control.default) ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(__props.control.default), { key: 0 })) : typeof __props.control.default === "string" && (0, vue.unref)(isHTML)(__props.control.default) ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", {
|
|
1352
|
+
key: 1,
|
|
1353
|
+
innerHTML: __props.control.default
|
|
1354
|
+
}, null, 8, _hoisted_1)) : ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", _hoisted_2, (0, vue.toDisplayString)(__props.control.default), 1))]),
|
|
1355
|
+
key: "0"
|
|
1356
|
+
} : void 0]), 1040);
|
|
1357
|
+
};
|
|
1358
|
+
}
|
|
1359
|
+
});
|
|
1360
|
+
//#endregion
|
|
1361
|
+
//#region src/packages/controls/affix/affix.ts
|
|
1362
|
+
var affix_exports = /* @__PURE__ */ __exportAll({
|
|
1363
|
+
Template: () => Template,
|
|
1364
|
+
init: () => init
|
|
1365
|
+
});
|
|
1366
|
+
const Template = withInstall(affix_default);
|
|
1367
|
+
function init(moduleName, name, options = {}) {
|
|
1368
|
+
return {
|
|
1369
|
+
moduleName,
|
|
1370
|
+
name,
|
|
1371
|
+
...options
|
|
1372
|
+
};
|
|
1373
|
+
}
|
|
1374
|
+
//#endregion
|
|
1375
|
+
//#region src/packages/controls/index.ts
|
|
1376
|
+
var controls_exports = /* @__PURE__ */ __exportAll({
|
|
1377
|
+
MyButton: () => MyButton_default,
|
|
1378
|
+
RwAffix: () => affix_exports,
|
|
1379
|
+
RwButton: () => button_exports
|
|
1380
|
+
});
|
|
1381
|
+
var src_default = { install: install_default.install };
|
|
11
1382
|
//#endregion
|
|
12
1383
|
Object.defineProperty(exports, "config", {
|
|
13
1384
|
enumerable: true,
|
|
14
1385
|
get: function() {
|
|
15
|
-
return
|
|
1386
|
+
return config_exports;
|
|
16
1387
|
}
|
|
17
1388
|
});
|
|
18
1389
|
Object.defineProperty(exports, "controls", {
|
|
19
1390
|
enumerable: true,
|
|
20
1391
|
get: function() {
|
|
21
|
-
return
|
|
1392
|
+
return controls_exports;
|
|
22
1393
|
}
|
|
23
1394
|
});
|
|
24
1395
|
exports.default = src_default;
|