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.
Files changed (126) hide show
  1. package/dist/index.cjs +1377 -6
  2. package/dist/index.d.cts +100 -2
  3. package/dist/index.d.ts +98 -3
  4. package/dist/index.js +1339 -3
  5. package/package.json +1 -109
  6. package/dist/MyButton-BKoM8kgm.js +0 -28
  7. package/dist/MyButton-M0qFm0tC.cjs +0 -36
  8. package/dist/_plugin-vue_export-helper-BNbkB8Xs.js +0 -8
  9. package/dist/_plugin-vue_export-helper-BeRLrMO0.cjs +0 -13
  10. package/dist/affix-CcyujHVt.cjs +0 -71
  11. package/dist/affix-DxvcnaOs.js +0 -66
  12. package/dist/button-BvURAia1.js +0 -126
  13. package/dist/button-N5uA6OhT.cjs +0 -132
  14. package/dist/chunk-CZWwpsFl.cjs +0 -43
  15. package/dist/config.cjs +0 -1
  16. package/dist/config.js +0 -1
  17. package/dist/constants/json.cjs +0 -4
  18. package/dist/constants/json.d.cts +0 -2
  19. package/dist/constants/json.d.ts +0 -2
  20. package/dist/constants/json.js +0 -2
  21. package/dist/constants.cjs +0 -14
  22. package/dist/constants.d.cts +0 -3
  23. package/dist/constants.d.ts +0 -3
  24. package/dist/constants.js +0 -3
  25. package/dist/controls/MyButton.cjs +0 -3
  26. package/dist/controls/MyButton.d.cts +0 -2
  27. package/dist/controls/MyButton.d.ts +0 -2
  28. package/dist/controls/MyButton.js +0 -2
  29. package/dist/controls/affix.cjs +0 -8
  30. package/dist/controls/affix.d.cts +0 -2
  31. package/dist/controls/affix.d.ts +0 -2
  32. package/dist/controls/affix.js +0 -2
  33. package/dist/controls/button.cjs +0 -8
  34. package/dist/controls/button.js +0 -2
  35. package/dist/controls.cjs +0 -18
  36. package/dist/controls.d.cts +0 -10
  37. package/dist/controls.d.ts +0 -10
  38. package/dist/controls.js +0 -5
  39. package/dist/dom-D2nYnips.cjs +0 -580
  40. package/dist/dom-nS1GG8mY.js +0 -346
  41. package/dist/index-4GSgYYkp.d.cts +0 -80
  42. package/dist/index-6D-sPGr4.d.cts +0 -74
  43. package/dist/index-AZ35Wm9Z.d.ts +0 -15
  44. package/dist/index-B7SNJjo4.d.cts +0 -15
  45. package/dist/index-BD5WbpdB.d.ts +0 -23
  46. package/dist/index-BFjOpjp1.d.ts +0 -51
  47. package/dist/index-BOxpEe3I.d.cts +0 -1397
  48. package/dist/index-BPLbgP7R.d.ts +0 -80
  49. package/dist/index-BQs1A1gt.d.ts +0 -10
  50. package/dist/index-C9X16Bbq.d.ts +0 -157
  51. package/dist/index-CRUYJdEH.d.cts +0 -332
  52. package/dist/index-CvAIHuOB.d.cts +0 -157
  53. package/dist/index-D3zjcLyv.d.cts +0 -23
  54. package/dist/index-DLZzHVQW.d.ts +0 -1397
  55. package/dist/index-DOjU3ihE.d.ts +0 -332
  56. package/dist/index-DZqsyETv.d.cts +0 -51
  57. package/dist/index-DkCpTJW1.d.ts +0 -74
  58. package/dist/index-JBvsQ_SO.d.cts +0 -10
  59. package/dist/install-D4AzpdLB.js +0 -49
  60. package/dist/install-DPjdUPun.cjs +0 -58
  61. package/dist/json-B4qsksk7.js +0 -31023
  62. package/dist/json-DxoloFzc.cjs +0 -31034
  63. package/dist/locale-BscyDzS3.js +0 -597
  64. package/dist/locale-Cw_94Q7K.cjs +0 -676
  65. package/dist/locale.cjs +0 -12
  66. package/dist/locale.js +0 -2
  67. package/dist/objects-CtyuC3Yr.js +0 -134
  68. package/dist/objects-D1h_O0fs.cjs +0 -272
  69. package/dist/packages/config.cjs +0 -10
  70. package/dist/packages/config.d.cts +0 -2
  71. package/dist/packages/config.d.ts +0 -2
  72. package/dist/packages/config.js +0 -5
  73. package/dist/packages/constants/json.cjs +0 -4
  74. package/dist/packages/constants/json.js +0 -2
  75. package/dist/packages/constants.cjs +0 -78
  76. package/dist/packages/constants.js +0 -67
  77. package/dist/packages/controls/MyButton.cjs +0 -3
  78. package/dist/packages/controls/MyButton.js +0 -2
  79. package/dist/packages/controls/affix.cjs +0 -8
  80. package/dist/packages/controls/affix.js +0 -2
  81. package/dist/packages/controls/button.cjs +0 -8
  82. package/dist/packages/controls/button.d.cts +0 -2
  83. package/dist/packages/controls/button.d.ts +0 -2
  84. package/dist/packages/controls/button.js +0 -2
  85. package/dist/packages/controls.cjs +0 -31
  86. package/dist/packages/controls.js +0 -12
  87. package/dist/packages/locale.cjs +0 -12
  88. package/dist/packages/locale.d.cts +0 -39
  89. package/dist/packages/locale.d.ts +0 -39
  90. package/dist/packages/locale.js +0 -2
  91. package/dist/packages/stores.cjs +0 -337
  92. package/dist/packages/stores.js +0 -320
  93. package/dist/packages/utils/dom.cjs +0 -32
  94. package/dist/packages/utils/dom.d.cts +0 -2
  95. package/dist/packages/utils/dom.d.ts +0 -2
  96. package/dist/packages/utils/dom.js +0 -2
  97. package/dist/packages/utils/vue/props.cjs +0 -63
  98. package/dist/packages/utils/vue/props.d.cts +0 -2
  99. package/dist/packages/utils/vue/props.d.ts +0 -2
  100. package/dist/packages/utils/vue/props.js +0 -56
  101. package/dist/packages/utils/vue.cjs +0 -32
  102. package/dist/packages/utils/vue.d.cts +0 -3
  103. package/dist/packages/utils/vue.d.ts +0 -3
  104. package/dist/packages/utils/vue.js +0 -24
  105. package/dist/packages/utils.cjs +0 -190
  106. package/dist/packages/utils.js +0 -6
  107. package/dist/packages.cjs +0 -20
  108. package/dist/packages.d.cts +0 -8
  109. package/dist/packages.d.ts +0 -8
  110. package/dist/packages.js +0 -7
  111. package/dist/stores.cjs +0 -17
  112. package/dist/stores.d.cts +0 -805
  113. package/dist/stores.d.ts +0 -805
  114. package/dist/stores.js +0 -4
  115. package/dist/utils/dom.cjs +0 -32
  116. package/dist/utils/dom.js +0 -2
  117. package/dist/utils/vue/props.cjs +0 -7
  118. package/dist/utils/vue/props.js +0 -2
  119. package/dist/utils/vue.cjs +0 -11
  120. package/dist/utils/vue.js +0 -3
  121. package/dist/utils-B0DnBDiU.js +0 -696
  122. package/dist/utils-CYsUKcs1.cjs +0 -850
  123. package/dist/utils.cjs +0 -190
  124. package/dist/utils.d.cts +0 -5
  125. package/dist/utils.d.ts +0 -5
  126. 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
- const require_install = require("./install-DPjdUPun.cjs");
6
- const require_packages_config = require("./packages/config.cjs");
7
- const require_packages_controls = require("./packages/controls.cjs");
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
- var src_default = { install: require_install.install_default.install };
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 require_packages_config.config_exports;
1386
+ return config_exports;
16
1387
  }
17
1388
  });
18
1389
  Object.defineProperty(exports, "controls", {
19
1390
  enumerable: true,
20
1391
  get: function() {
21
- return require_packages_controls.controls_exports;
1392
+ return controls_exports;
22
1393
  }
23
1394
  });
24
1395
  exports.default = src_default;