@qynpm/ui 1.0.34 → 1.0.36

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/README.md +91 -56
  2. package/dist/index.cjs +7 -6
  3. package/dist/index.mjs +63 -61
  4. package/dist/qy-action-bar/index.cjs +1 -1
  5. package/dist/qy-action-bar/index.mjs +1 -1
  6. package/dist/qy-dialog/index.cjs +1 -1
  7. package/dist/qy-dialog/index.mjs +1 -1
  8. package/dist/qy-drawer/index.cjs +1 -1
  9. package/dist/qy-drawer/index.mjs +1 -1
  10. package/dist/qy-file-picker/index.cjs +1 -1
  11. package/dist/qy-file-picker/index.mjs +1 -1
  12. package/dist/qy-form-section/index.cjs +1 -1
  13. package/dist/qy-form-section/index.mjs +1 -1
  14. package/dist/qy-iframe/index.cjs +1 -1
  15. package/dist/qy-iframe/index.mjs +1 -1
  16. package/dist/qy-image/index.cjs +1 -1
  17. package/dist/qy-image/index.mjs +1 -1
  18. package/dist/qy-image-preview/index.cjs +1 -1
  19. package/dist/qy-image-preview/index.mjs +2 -2
  20. package/dist/qy-image-upload/index.cjs +1 -1
  21. package/dist/qy-image-upload/index.mjs +1 -1
  22. package/dist/qy-input-number/index.cjs +1 -1
  23. package/dist/qy-input-number/index.mjs +1 -1
  24. package/dist/qy-input-tag/index.cjs +1 -0
  25. package/dist/qy-input-tag/index.mjs +7 -0
  26. package/dist/qy-legacy-selection-dialog/index.cjs +1 -1
  27. package/dist/qy-legacy-selection-dialog/index.mjs +1 -1
  28. package/dist/qy-menu-actions/index.cjs +1 -1
  29. package/dist/qy-menu-actions/index.mjs +1 -1
  30. package/dist/qy-money-input/index.cjs +1 -1
  31. package/dist/qy-money-input/index.mjs +5 -2
  32. package/dist/qy-popover/index.cjs +1 -1
  33. package/dist/qy-popover/index.mjs +1 -1
  34. package/dist/qy-record-quote-search/index.cjs +1 -1
  35. package/dist/qy-record-quote-search/index.mjs +1 -1
  36. package/dist/qy-remark-image/index.cjs +1 -1
  37. package/dist/qy-remark-image/index.mjs +1 -1
  38. package/dist/qy-remote-select/index.cjs +1 -1
  39. package/dist/qy-remote-select/index.mjs +1 -1
  40. package/dist/qy-search-input/index.cjs +1 -1
  41. package/dist/qy-search-input/index.mjs +1 -1
  42. package/dist/qy-selection-dialog/index.cjs +1 -1
  43. package/dist/qy-selection-dialog/index.mjs +1 -1
  44. package/dist/qy-tree-select/index.cjs +1 -1
  45. package/dist/qy-tree-select/index.mjs +1 -1
  46. package/dist/qy-upload/index.cjs +1 -1
  47. package/dist/qy-upload/index.mjs +5 -2
  48. package/dist/shared/{index-IXbvJ9d7.mjs → index-4SkLDBra.mjs} +1 -1
  49. package/dist/shared/index-BYX0biqw.mjs +766 -0
  50. package/dist/shared/{index-n04hARNG.cjs → index-Bli6Gx5d.cjs} +1 -1
  51. package/dist/shared/{index-BBZQowyp.mjs → index-BuUtJrIy.mjs} +9 -9
  52. package/dist/shared/index-BxxwEr52.mjs +107 -0
  53. package/dist/shared/index-C1i-hd-W.cjs +1 -0
  54. package/dist/shared/{index-Dyyp1ix9.cjs → index-C7lRQtzs.cjs} +1 -1
  55. package/dist/shared/{index-C_adKysL.mjs → index-CdnHMuo3.mjs} +1 -1
  56. package/dist/shared/index-D654b42n.mjs +2754 -0
  57. package/dist/shared/{index-D6-K5xSD.cjs → index-DlGwHshu.cjs} +1 -1
  58. package/dist/shared/{index-BeubtXXl.cjs → index-DnHfk7NM.cjs} +1 -1
  59. package/dist/shared/index-DnNIseRJ.cjs +1 -0
  60. package/dist/shared/{index-ccugL1Ie.mjs → index-Dr-Q5krU.mjs} +4 -4
  61. package/dist/shared/index-aIqtIYsu.cjs +1 -0
  62. package/dist/shared/index.vue_vue_type_script_setup_true_lang-BiIgNax-.cjs +1 -0
  63. package/dist/shared/index.vue_vue_type_script_setup_true_lang-CqSJ_8hG.cjs +1 -0
  64. package/dist/shared/index.vue_vue_type_script_setup_true_lang-DIWWHODS.mjs +197 -0
  65. package/dist/shared/index.vue_vue_type_script_setup_true_lang-DwFGEW4B.mjs +143 -0
  66. package/dist/shared/{index.vue_vue_type_script_setup_true_lang-DoL8xnpo.mjs → index.vue_vue_type_script_setup_true_lang-IyZesuKm.mjs} +9 -9
  67. package/dist/shared/index.vue_vue_type_script_setup_true_lang-ccFLNRry.cjs +1 -0
  68. package/dist/shared/index.vue_vue_type_style_index_0_lang-B1FgJZbw.mjs +148 -0
  69. package/dist/shared/index.vue_vue_type_style_index_0_lang-DHK86rdP.cjs +1 -0
  70. package/dist/shared/index.vue_vue_type_style_index_0_lang-DVXf-yUs.cjs +1 -0
  71. package/dist/shared/{index.vue_vue_type_style_index_0_lang-BJXS2dVf.mjs → index.vue_vue_type_style_index_0_lang-DsOg_Rum.mjs} +19 -17
  72. package/dist/shared/utils-BjEXwY3L.cjs +1 -0
  73. package/dist/shared/utils-DoyI5oM8.mjs +148 -0
  74. package/index.d.ts +113 -56
  75. package/package.json +489 -483
  76. package/qy-alert/index.d.ts +64 -64
  77. package/qy-autocomplete/index.d.ts +5 -5
  78. package/qy-avatar/index.d.ts +67 -67
  79. package/qy-badge/index.d.ts +63 -63
  80. package/qy-card/index.d.ts +64 -64
  81. package/qy-cascader/index.d.ts +198 -198
  82. package/qy-collapse/index.d.ts +59 -59
  83. package/qy-collapse-item/index.d.ts +45 -45
  84. package/qy-descriptions/index.d.ts +47 -47
  85. package/qy-descriptions-item/index.d.ts +46 -46
  86. package/qy-dialog/index.d.ts +63 -63
  87. package/qy-divider/index.d.ts +53 -53
  88. package/qy-drawer/index.d.ts +55 -55
  89. package/qy-empty/index.d.ts +51 -51
  90. package/qy-file-picker/index.d.ts +4 -1
  91. package/qy-iframe/index.d.ts +66 -66
  92. package/qy-image/index.d.ts +28 -28
  93. package/qy-image-preview/index.d.ts +20 -20
  94. package/qy-image-upload/index.d.ts +69 -12
  95. package/qy-input/index.d.ts +76 -18
  96. package/qy-input-number/index.d.ts +64 -30
  97. package/qy-input-tag/index.d.ts +69 -0
  98. package/qy-link/index.d.ts +69 -69
  99. package/qy-loading/index.d.ts +25 -25
  100. package/qy-menu-actions/index.d.ts +29 -29
  101. package/qy-money-input/index.d.ts +87 -12
  102. package/qy-progress/index.d.ts +74 -74
  103. package/qy-result/index.d.ts +64 -64
  104. package/qy-scrollbar/index.d.ts +85 -85
  105. package/qy-skeleton/index.d.ts +54 -54
  106. package/qy-skeleton-item/index.d.ts +48 -48
  107. package/qy-step/index.d.ts +55 -55
  108. package/qy-steps/index.d.ts +62 -62
  109. package/qy-tab-pane/index.d.ts +40 -40
  110. package/qy-table-column-settings/index.d.ts +18 -18
  111. package/qy-tabs/index.d.ts +84 -84
  112. package/qy-tree/index.d.ts +132 -132
  113. package/qy-tree-select/index.d.ts +123 -123
  114. package/qy-upload/index.d.ts +99 -5
  115. package/dist/shared/index-BkX9xlbI.cjs +0 -1
  116. package/dist/shared/index-C_1KP3l9.mjs +0 -129
  117. package/dist/shared/index-Dw5upK-A.cjs +0 -1
  118. package/dist/shared/index-fh9l84rU.mjs +0 -3541
  119. package/dist/shared/index.vue_vue_type_script_setup_true_lang-5gku7Zwv.cjs +0 -1
  120. package/dist/shared/index.vue_vue_type_style_index_0_lang-B0CXLnL1.mjs +0 -132
  121. package/dist/shared/index.vue_vue_type_style_index_0_lang-DccRGtZE.cjs +0 -1
  122. package/dist/shared/index.vue_vue_type_style_index_0_lang-M0qKRXd2.cjs +0 -1
  123. package/dist/shared/utils-D2KAQCCB.cjs +0 -1
  124. package/dist/shared/utils-DUntDntI.mjs +0 -112
  125. /package/dist/shared/{index.vue_vue_type_script_setup_true_lang-q37rBg6Z.mjs → index.vue_vue_type_script_setup_true_lang-CGsXVhJy.mjs} +0 -0
  126. /package/dist/shared/{index.vue_vue_type_script_setup_true_lang-CglCPcj-.cjs → index.vue_vue_type_script_setup_true_lang-Dk83TGiU.cjs} +0 -0
@@ -0,0 +1,2754 @@
1
+ import { U as je, a as $a } from "./index-BYX0biqw.mjs";
2
+ import { I as Ca } from "./index-BuUtJrIy.mjs";
3
+ import { _ as xa } from "./index.vue_vue_type_script_setup_true_lang-IyZesuKm.mjs";
4
+ import { useAttrs as ke, ref as T, computed as V, openBlock as g, createBlock as oe, mergeProps as be, unref as S, defineComponent as we, useSlots as He, createVNode as P, watchEffect as Ba, watch as re, h as Le, onMounted as Ze, nextTick as Ie, onUnmounted as We, createElementBlock as I, normalizeClass as ye, createSlots as Te, withCtx as b, createElementVNode as q, normalizeStyle as qe, createCommentVNode as A, renderSlot as x, toDisplayString as pe, withModifiers as de, withDirectives as Fe, vShow as Ge, Fragment as Ve, renderList as De, createTextVNode as fe, onBeforeUnmount as qa, normalizeProps as Je, guardReactiveProps as Xe, withKeys as Re, getCurrentInstance as Ia, reactive as Oe } from "vue";
5
+ import { ElDialog as Va, ElIcon as Aa, ElLoadingDirective as Ta } from "element-plus/es";
6
+ import za from "clsx";
7
+ import { ElButton as me, ElMessage as Be, ElSelect as Ye, ElOption as et, ElInput as Ae, ElPopover as Oa, ElUpload as _a, ElAutocomplete as Pa, ElForm as tt, ElFormItem as Se, ElTable as Fa, ElTableColumn as Da, ElPagination as Ra, ElTreeSelect as Ma } from "element-plus";
8
+ import { Close as Ea } from "@element-plus/icons-vue";
9
+ import { useBreakpoints as La, useDraggable as Ka } from "@vueuse/core";
10
+ import { _ as $e } from "./_plugin-vue_export-helper-CHgC5LLL.mjs";
11
+ import { B as Ua } from "./index-Od6HC8Un.mjs";
12
+ import { D as Na } from "./index-D5S48q1B.mjs";
13
+ import { _ as ja } from "./index-JjHutKmT.mjs";
14
+ import { _ as Ha } from "./index.vue_vue_type_script_setup_true_lang-DwFGEW4B.mjs";
15
+ import { _ as Za } from "./index.vue_vue_type_style_index_0_lang-B1FgJZbw.mjs";
16
+ import { _ as Wa } from "./index.vue_vue_type_script_setup_true_lang-DIWWHODS.mjs";
17
+ import { _ as Ga } from "./index.vue_vue_type_style_index_0_lang-CcVf5MXE.mjs";
18
+ import { C as Ja } from "./index-B1b3BksF.mjs";
19
+ import { _ as Xa } from "./index.vue_vue_type_script_setup_true_lang-C6-hVGUO.mjs";
20
+ import { R as Ya } from "./index-DK0hjfWr.mjs";
21
+ import { _ as eo } from "./index.vue_vue_type_script_setup_true_lang-EiHoQBXt.mjs";
22
+ import { M as to } from "./index-CdnHMuo3.mjs";
23
+ import { T as ao } from "./index-Dwf-JfXM.mjs";
24
+ import { _ as oo } from "./index.vue_vue_type_script_setup_true_lang-S-rQ0p3E.mjs";
25
+ import { S as Me } from "./index-DZRFSGxO.mjs";
26
+ import { T as at } from "./index-4SkLDBra.mjs";
27
+ import { T as _e } from "./index-D8E_xu0N.mjs";
28
+ import { F as lo } from "./index-BxxwEr52.mjs";
29
+ import { S as no } from "./index-DcohgM8A.mjs";
30
+ import { _ as ro } from "./index.vue_vue_type_script_lang-DIKHRo0o.mjs";
31
+ import { _ as so } from "./index.vue_vue_type_style_index_0_lang-CPxbKjvY.mjs";
32
+ import { _ as io } from "./index.vue_vue_type_style_index_0_lang-DSur831A.mjs";
33
+ import { _ as uo } from "./index.vue_vue_type_style_index_0_lang-DsOg_Rum.mjs";
34
+ import { _ as co } from "./index.vue_vue_type_style_index_0_lang-b0y8p1p1.mjs";
35
+ import { _ as fo } from "./index.vue_vue_type_script_setup_true_lang-BJe7Uo6S.mjs";
36
+ import { _ as mo } from "./index.vue_vue_type_script_setup_true_lang-Dd_nKJvH.mjs";
37
+ import { _ as yo } from "./index.vue_vue_type_style_index_0_lang-gs0YJI91.mjs";
38
+ import { _ as po } from "./index.vue_vue_type_script_lang-Dfq7D3mJ.mjs";
39
+ import { _ as go } from "./index.vue_vue_type_script_lang-CZK0hDYa.mjs";
40
+ import { _ as ho } from "./index.vue_vue_type_script_lang-69zSOotQ.mjs";
41
+ import { F as vo } from "./index-S8HW36Mc.mjs";
42
+ import { Q as ot } from "./index-DY-CA7Vr.mjs";
43
+ import { _ as bo } from "./index.vue_vue_type_style_index_0_lang-CIcZet5j.mjs";
44
+ import { _ as wo } from "./index.vue_vue_type_style_index_0_lang-C4Yk-UdJ.mjs";
45
+ import { _ as Qo } from "./index.vue_vue_type_script_lang-Bk0kLg5l.mjs";
46
+ import { _ as So } from "./index.vue_vue_type_script_lang-BaIOvoQn.mjs";
47
+ import { _ as ko } from "./index.vue_vue_type_script_lang-DRvk4-_O.mjs";
48
+ import { _ as $o } from "./index.vue_vue_type_script_lang-ChS-3_vl.mjs";
49
+ import { _ as Co } from "./index.vue_vue_type_script_lang-CWnNQBPN.mjs";
50
+ import { _ as xo } from "./index.vue_vue_type_script_lang-D7b9ABei.mjs";
51
+ import { _ as Bo } from "./index.vue_vue_type_script_lang-chBiq2cG.mjs";
52
+ import { _ as qo } from "./index.vue_vue_type_style_index_0_lang-C1n-zAZh.mjs";
53
+ import { _ as Io } from "./index.vue_vue_type_script_setup_true_lang-Bdz9oDDW.mjs";
54
+ import { _ as Vo } from "./index.vue_vue_type_script_setup_true_lang-BXnZt9UT.mjs";
55
+ import { I as Ao } from "./index-Dr-Q5krU.mjs";
56
+ import { _ as To } from "./index.vue_vue_type_script_setup_true_lang-B4JrNUDc.mjs";
57
+ import { _ as zo } from "./index.vue_vue_type_script_lang-D7nzeBUR.mjs";
58
+ import { _ as Oo } from "./index.vue_vue_type_script_lang-C9X0V5AK.mjs";
59
+ import { _ as _o } from "./index.vue_vue_type_script_lang-C4JHCuXz.mjs";
60
+ import { _ as Po } from "./index.vue_vue_type_style_index_0_lang-Tzo8o6M8.mjs";
61
+ import { _ as Fo } from "./index.vue_vue_type_script_setup_true_lang-COAUEujY.mjs";
62
+ import { _ as Do } from "./index.vue_vue_type_style_index_0_lang-CVdFZeHK.mjs";
63
+ import { _ as Ro } from "./index.vue_vue_type_script_lang-BGAdXWIL.mjs";
64
+ import { _ as Mo } from "./index.vue_vue_type_script_lang-BnmY1ndj.mjs";
65
+ import { _ as Eo } from "./index.vue_vue_type_script_lang-DOOT2grg.mjs";
66
+ import { _ as Lo } from "./index.vue_vue_type_style_index_0_lang-KHk9wRYT.mjs";
67
+ import { w as m } from "./install-CxBnxbuN.mjs";
68
+ import { v as Ko, Q as lt } from "./index-B1zDCCqy.mjs";
69
+ import { _ as Uo } from "./index.vue_vue_type_script_setup_true_lang-CGsXVhJy.mjs";
70
+ import { o as No } from "./utils-DoyI5oM8.mjs";
71
+ import { openQyLoading as jo } from "@qynpm/hooks";
72
+ const Ho = /* @__PURE__ */ Object.assign({
73
+ name: "QyImageUpload",
74
+ inheritAttrs: !1
75
+ }, {
76
+ __name: "index",
77
+ props: {
78
+ /** 单图/单文件 URL;multiple=true 时为 URL 数组。 */
79
+ modelValue: { type: [String, Array], default: "" },
80
+ /** 上传接口路径。 */
81
+ api: { type: String, default: "/permission-api/common/uploads" },
82
+ /** FormData 中文件字段名。 */
83
+ name: { type: String, default: "files" },
84
+ /** 是否禁用。 */
85
+ disabled: { type: Boolean, default: !1 },
86
+ /** 是否多选;开启后 v-model 输出 string[]。 */
87
+ multiple: { type: Boolean, default: !1 },
88
+ /** 上传模式。voucher 用于承接旧 CopyImgUpload 的凭证图片场景。 */
89
+ mode: { type: String, default: "default" },
90
+ /** 是否启用凭证图片模式。 */
91
+ voucher: { type: Boolean, default: !1 },
92
+ /** 允许的文件类型后缀。 */
93
+ fileType: { type: Array, default: () => [] },
94
+ /** 单个文件大小限制(MB)。 */
95
+ fileSize: { type: Number, default: 10 },
96
+ /** 是否显示格式/大小提示。 */
97
+ isShowTip: { type: Boolean, default: !1 },
98
+ /** 文件数量限制;不传时单图为 1,多图为 9。 */
99
+ limit: { type: Number, default: void 0 },
100
+ /** token 读取 key。 */
101
+ tokenKey: { type: String, default: "Admin-Token" },
102
+ /** 是否为视频上传。 */
103
+ supportVideo: { type: Boolean, default: !1 },
104
+ /** 上传卡片尺寸。 */
105
+ size: { type: String, default: "128px" },
106
+ /** 禁用拖拽。 */
107
+ disableDrag: { type: Boolean, default: !1 },
108
+ /** 是否显示纯粘贴入口。 */
109
+ showPasteInput: { type: Boolean, default: !0 },
110
+ /** 粘贴入口提示文案。 */
111
+ pastePlaceholder: { type: String, default: "粘贴图片上传" },
112
+ /** 成功回调。 */
113
+ callBack: { type: Function, default: null },
114
+ /** 上传时附加的额外 FormData 字段。 */
115
+ extraData: { type: Object, default: () => ({}) },
116
+ /** 自定义上传请求,用于接入宿主项目 request / 鉴权 / baseURL。 */
117
+ uploadRequest: { type: Function, default: null }
118
+ },
119
+ emits: [
120
+ "update:modelValue",
121
+ "change",
122
+ "success",
123
+ "error",
124
+ "remove",
125
+ "updateImg"
126
+ ],
127
+ setup(e, { expose: R, emit: Y }) {
128
+ const t = e, o = Y, ae = ke(), B = T(null), y = ["jpg", "jpeg", "png", "gif", "bmp", "webp"], d = V(
129
+ () => t.voucher || t.mode === "voucher"
130
+ ), M = V(() => Array.isArray(t.modelValue) ? t.modelValue.filter(Boolean) : t.modelValue ? String(t.modelValue).split(",").filter(Boolean) : []), k = V(() => t.supportVideo ? 1 : d.value ? t.limit ?? 30 : t.limit ?? (t.multiple ? 9 : 1)), H = V(() => {
131
+ var a;
132
+ return (a = t.fileType) != null && a.length ? t.fileType : d.value && !t.supportVideo ? y : [];
133
+ });
134
+ function F(a) {
135
+ return Array.isArray(a) ? a.filter(Boolean) : [];
136
+ }
137
+ function z(a) {
138
+ const c = F(a);
139
+ return t.multiple ? c : c[0] || "";
140
+ }
141
+ function G(a) {
142
+ o("update:modelValue", z(a));
143
+ }
144
+ function U(a) {
145
+ o("change", z(a == null ? void 0 : a.files));
146
+ }
147
+ function C(a) {
148
+ var te, r;
149
+ if (typeof a == "string") return a;
150
+ const c = a || {}, N = c.url ?? c.urls ?? ((te = c.data) == null ? void 0 : te.url) ?? ((r = c.data) == null ? void 0 : r.urls) ?? "";
151
+ return Array.isArray(N) ? N[0] || "" : N || "";
152
+ }
153
+ function D(a) {
154
+ const c = C(a);
155
+ c && o("updateImg", c), o("success", Q(), a);
156
+ }
157
+ function Z(a) {
158
+ o("error", a);
159
+ }
160
+ function le(a, c) {
161
+ o("remove", a, c);
162
+ }
163
+ function E() {
164
+ var a, c;
165
+ (c = (a = B.value) == null ? void 0 : a.openFileDialog) == null || c.call(a);
166
+ }
167
+ function ee() {
168
+ var a, c;
169
+ (c = (a = B.value) == null ? void 0 : a.clearFiles) == null || c.call(a);
170
+ }
171
+ function K() {
172
+ var a, c;
173
+ return ((c = (a = B.value) == null ? void 0 : a.getPathList) == null ? void 0 : c.call(a)) || [];
174
+ }
175
+ const J = V(() => K()), W = V(() => K());
176
+ function h() {
177
+ return K();
178
+ }
179
+ function Q() {
180
+ const a = K();
181
+ return t.multiple ? a : a[0] || "";
182
+ }
183
+ return R({
184
+ openFileDialog: E,
185
+ clearFiles: ee,
186
+ getPathList: K,
187
+ getFullPathList: h,
188
+ fullPathList: J,
189
+ pathList: W,
190
+ getValue: Q
191
+ }), (a, c) => (g(), oe(je, be({
192
+ ref_key: "uploadRef",
193
+ ref: B
194
+ }, S(ae), {
195
+ "model-value": M.value,
196
+ "value-format": "array",
197
+ api: e.api,
198
+ name: e.name,
199
+ multiple: e.multiple,
200
+ disabled: e.disabled,
201
+ "file-type": H.value,
202
+ "file-size": e.fileSize,
203
+ limit: k.value,
204
+ "is-show-tip": e.isShowTip,
205
+ "token-key": e.tokenKey,
206
+ "support-video": e.supportVideo,
207
+ size: e.size,
208
+ "disable-drag": e.disableDrag,
209
+ "call-back": e.callBack,
210
+ "extra-data": e.extraData,
211
+ "upload-request": e.uploadRequest,
212
+ "show-text": !1,
213
+ "show-paste-input": e.showPasteInput,
214
+ "paste-placeholder": e.pastePlaceholder,
215
+ "onUpdate:modelValue": G,
216
+ onChange: U,
217
+ onSuccess: D,
218
+ onError: Z,
219
+ onRemove: le
220
+ }), null, 16, ["model-value", "api", "name", "multiple", "disabled", "file-type", "file-size", "limit", "is-show-tip", "token-key", "support-video", "size", "disable-drag", "call-back", "extra-data", "upload-request", "show-paste-input", "paste-placeholder"]));
221
+ }
222
+ }), Zo = { class: "text-lg flex items-center pt-2 pl-[var(--content-padding)]" }, Wo = { key: 0 }, Go = { key: 1 }, Jo = {
223
+ key: 0,
224
+ class: "icon-[material-symbols--square-outline-rounded]",
225
+ role: "img",
226
+ "aria-hidden": "true"
227
+ }, Xo = {
228
+ key: 1,
229
+ class: "icon-[tdesign--fullscreen-exit-1]",
230
+ role: "img",
231
+ "aria-hidden": "true"
232
+ }, Yo = {
233
+ key: 0,
234
+ class: "fixed -right-12 top-2 h-9 w-9 hover:bg-gray-600/80 transition-all"
235
+ }, el = { class: "flex justify-between h-[var(--footer-height)] px-[var(--content-padding)] items-center" }, tl = { class: "flex items-center justify-between w-full pl-1 pr-4 h-full ml-2" }, al = { class: "flex items-center gap-2" }, ol = { class: "text-sm text-gray-700 truncate max-w-[200px]" }, ll = { class: "flex items-center gap-2" }, Ke = 5, ze = 2e3, Pe = /* @__PURE__ */ we({
236
+ inheritAttrs: !1,
237
+ __name: "index",
238
+ props: {
239
+ open: { type: Boolean, default: !1 },
240
+ title: { default: "" },
241
+ width: { default: "50%" },
242
+ showFooter: { type: Boolean, default: !0 },
243
+ showConfirm: { type: Boolean, default: !0 },
244
+ showCancel: { type: Boolean, default: !0 },
245
+ confirmText: { default: "确 认" },
246
+ cancelText: { default: "取 消" },
247
+ confirmLoading: { type: Boolean, default: !1 },
248
+ confirmDisabled: { type: Boolean, default: !1 },
249
+ closeOnConfirm: { type: Boolean, default: !1 },
250
+ closeOnEscape: { type: Boolean, default: !0 },
251
+ closeOnOverlay: { type: Boolean, default: !1 },
252
+ minimizable: { type: Boolean, default: !0 },
253
+ destroyOnClose: { type: Boolean, default: !1 },
254
+ draggable: { type: Boolean, default: !0 },
255
+ lockScroll: { type: Boolean, default: !0 },
256
+ top: { default: "15vh" },
257
+ fullscreen: { type: Boolean, default: !1 },
258
+ showFullscreen: { type: Boolean, default: !1 },
259
+ size: { default: "default" },
260
+ zIndex: { default: 2e3 }
261
+ },
262
+ emits: ["update:open", "open-change", "confirm", "cancel", "close", "opened", "closed"],
263
+ setup(e, { expose: R, emit: Y }) {
264
+ let t = 0;
265
+ const o = e, ae = He(), B = T(!0), y = T(!1), d = T(ze), M = T(null), H = La({
266
+ mobile: 0,
267
+ tablet: 640,
268
+ laptop: 1024,
269
+ desktop: 1280
270
+ }).isSmaller("tablet"), F = V(() => {
271
+ const i = [];
272
+ return o.showCancel && i.push("cancel"), o.showConfirm && i.push("confirm"), i;
273
+ }), z = V(() => ({
274
+ CancelButton: P(ie),
275
+ ConfirmButton: P(ne)
276
+ })), G = V(() => !!(ae.footer || o.showFooter)), U = T(!1), C = T(!1);
277
+ let D = !1, Z = document.activeElement instanceof HTMLElement ? document.activeElement : null;
278
+ const le = T(
279
+ o.showFullscreen && H ? !0 : o.fullscreen
280
+ ), E = Y, ee = V(() => o.open);
281
+ Ba(() => {
282
+ ee.value && (U.value = !1);
283
+ }), re(
284
+ () => o.open,
285
+ (i, v) => {
286
+ if (i) {
287
+ U.value = !1, C.value = !1, Z = document.activeElement instanceof HTMLElement ? document.activeElement : Z, v === !1 && E("open-change", !0);
288
+ return;
289
+ }
290
+ v && !U.value && (U.value = !0, E("open-change", !1), E("close", "external"));
291
+ }
292
+ ), re(
293
+ () => o.confirmLoading,
294
+ (i) => {
295
+ i ? D = !0 : D && (D = !1, C.value = !1);
296
+ }
297
+ ), R({
298
+ handleMinimize: p
299
+ });
300
+ const K = `qy-dialog-${Math.random().toString(36).slice(2, 11)}`, J = T(!1);
301
+ let W = !1;
302
+ const h = T(null), { x: Q, y: a } = Ka(h, {
303
+ initialValue: {
304
+ x: 5,
305
+ y: window.innerHeight - 100 - t * 60
306
+ },
307
+ onMove(i) {
308
+ var v;
309
+ (v = h.value) == null || v.classList.add("dragging"), document.body.classList.add("qy-dialog--dragging"), Q.value = Math.max(
310
+ 0,
311
+ Math.min(window.innerWidth - 300, i.x)
312
+ ), a.value = Math.max(
313
+ 0,
314
+ Math.min(window.innerHeight - 50, i.y)
315
+ );
316
+ },
317
+ onEnd() {
318
+ var i;
319
+ (i = h.value) == null || i.classList.remove("dragging"), document.body.classList.remove("qy-dialog--dragging");
320
+ }
321
+ }), c = V(() => ({
322
+ transform: `translate(${Q.value}px, ${a.value}px)`,
323
+ willChange: "transform"
324
+ }));
325
+ function N(i) {
326
+ const v = i.target, { scrollTop: X, scrollHeight: j, clientHeight: ue } = v;
327
+ B.value = X <= Ke, y.value = j - (X + ue) <= Ke;
328
+ }
329
+ function te() {
330
+ const i = document.querySelector(`.${K}.el-dialog`);
331
+ i && (M.value = i, i.addEventListener("scroll", N)), L(), E("opened");
332
+ }
333
+ function r() {
334
+ le.value = !le.value, L();
335
+ }
336
+ function f(i) {
337
+ o.confirmLoading && i !== "external" || U.value || (U.value = !0, l(), E("update:open", !1), E("open-change", !1), (i === "cancel" || i === "header") && E("cancel"), E("close", i));
338
+ }
339
+ function $() {
340
+ E("closed"), Ie(() => {
341
+ Z != null && Z.isConnected && Z.focus();
342
+ });
343
+ }
344
+ function _(i) {
345
+ o.showFullscreen && i.detail >= 2 && r();
346
+ }
347
+ function ne() {
348
+ return Le(
349
+ me,
350
+ {
351
+ type: "primary",
352
+ class: "dialog__footerBtn",
353
+ loading: o.confirmLoading,
354
+ disabled: o.confirmDisabled || o.confirmLoading || C.value,
355
+ onClick: ge
356
+ },
357
+ () => o.confirmText
358
+ );
359
+ }
360
+ function ge() {
361
+ C.value || o.confirmLoading || o.confirmDisabled || (C.value = !0, E("confirm"), o.closeOnConfirm && f("confirm"));
362
+ }
363
+ function ie() {
364
+ return Le(
365
+ me,
366
+ { class: "dialog__footerBtn", onClick: () => f("cancel") },
367
+ () => o.cancelText
368
+ );
369
+ }
370
+ Ze(() => {
371
+ typeof window.qyDialogMaxZIndex > "u" && (window.qyDialogMaxZIndex = ze), L(), document.addEventListener("keydown", Qe), document.addEventListener("mousedown", u);
372
+ });
373
+ function he() {
374
+ var j, ue;
375
+ const i = (j = document.querySelector(`.${K}`)) == null ? void 0 : j.closest(".el-overlay");
376
+ if (!i) return !1;
377
+ const X = Array.from(
378
+ document.querySelectorAll(".el-overlay")
379
+ ).filter((se) => window.getComputedStyle(se).display !== "none").map((se, ce) => ({
380
+ overlay: se,
381
+ order: ce,
382
+ zIndex: Number.parseInt(
383
+ window.getComputedStyle(se).zIndex || "0",
384
+ 10
385
+ )
386
+ }));
387
+ return X.sort(
388
+ (se, ce) => se.zIndex - ce.zIndex || se.order - ce.order
389
+ ), ((ue = X.at(-1)) == null ? void 0 : ue.overlay) === i;
390
+ }
391
+ function Qe(i) {
392
+ i.key !== "Escape" || !o.open || !o.closeOnEscape || o.confirmLoading || !he() || (i.preventDefault(), f("escape"));
393
+ }
394
+ function u(i) {
395
+ if (!o.open || !o.closeOnOverlay || o.confirmLoading || !he() || !(i.target instanceof Node))
396
+ return;
397
+ const v = document.querySelector(`.${K}.el-dialog`), X = v == null ? void 0 : v.closest(".el-overlay");
398
+ !v || !X || !X.contains(i.target) || v.contains(i.target) || f("overlay");
399
+ }
400
+ function L() {
401
+ var ce;
402
+ const i = Array.from(
403
+ document.querySelectorAll(".el-overlay")
404
+ ).filter((Ce) => window.getComputedStyle(Ce).display !== "none" && !Ce.classList.contains("is-message")), v = (ce = document.querySelector(`.${K}`)) == null ? void 0 : ce.closest(".el-overlay"), X = document.querySelector(
405
+ `.${K}.el-dialog`
406
+ );
407
+ if (!v || !X) return;
408
+ const j = ze;
409
+ window.qyDialogMaxZIndex = window.qyDialogMaxZIndex || j;
410
+ const se = Math.max(
411
+ window.qyDialogMaxZIndex,
412
+ ...i.map(
413
+ (Ce) => parseInt(window.getComputedStyle(Ce).zIndex || j.toString())
414
+ )
415
+ ) + 2;
416
+ window.qyDialogMaxZIndex = se, Ie(() => {
417
+ v.style.zIndex = se.toString(), X.style.zIndex = (se + 1).toString(), d.value = se + 1;
418
+ });
419
+ }
420
+ We(() => {
421
+ var i;
422
+ document.removeEventListener("keydown", Qe), document.removeEventListener("mousedown", u), (i = M.value) == null || i.removeEventListener("scroll", N), l();
423
+ });
424
+ function l() {
425
+ if (!W) {
426
+ J.value = !1;
427
+ return;
428
+ }
429
+ W = !1, t = Math.max(0, t - 1), J.value = !1;
430
+ }
431
+ function p() {
432
+ var v;
433
+ const i = (v = document.querySelector(`.${K}`)) == null ? void 0 : v.closest(".el-overlay");
434
+ !i || !o.open || (J.value ? (J.value = !1, i.style.display = "block", W && (W = !1, t = Math.max(0, t - 1)), L()) : (J.value = !0, i.style.display = "none", W = !0, t += 1, a.value = window.innerHeight - 50 - t * 60));
435
+ }
436
+ return (i, v) => {
437
+ const X = Aa, j = Va;
438
+ return g(), I("div", null, [
439
+ P(j, {
440
+ ref: "dialogRef",
441
+ class: ye(["qy-dialog", [
442
+ o.size === "small" && "[&_.el-dialog__header]:!hidden",
443
+ K
444
+ ]]),
445
+ "model-value": ee.value,
446
+ title: o.title,
447
+ width: o.width,
448
+ top: o.top,
449
+ "align-center": "",
450
+ "append-to-body": "",
451
+ "destroy-on-close": o.destroyOnClose,
452
+ "lock-scroll": o.lockScroll,
453
+ style: {
454
+ "--el-dialog-padding-primary": 0
455
+ },
456
+ "show-close": !1,
457
+ "close-on-press-escape": !1,
458
+ fullscreen: le.value,
459
+ "z-index": d.value,
460
+ onClosed: $,
461
+ onOpened: te,
462
+ draggable: o.draggable
463
+ }, Te({
464
+ header: b(() => [
465
+ o.size === "default" ? (g(), I("div", {
466
+ key: 0,
467
+ style: qe({
468
+ borderBottom: "1px solid",
469
+ borderColor: B.value ? "transparent" : "var(--block-outline-color)",
470
+ transition: "border-color .2s linear"
471
+ }),
472
+ class: "flex justify-between h-[var(--header-height)]",
473
+ onDblclick: _
474
+ }, [
475
+ q("div", Zo, [
476
+ S(ae).header ? S(ae).header ? (g(), I("div", Go, [
477
+ x(i.$slots, "header")
478
+ ])) : A("", !0) : (g(), I("span", Wo, pe(o.title), 1))
479
+ ]),
480
+ q("div", {
481
+ class: "flex",
482
+ onMousedown: v[4] || (v[4] = de(() => {
483
+ }, ["stop"]))
484
+ }, [
485
+ o.size === "default" && o.minimizable ? (g(), I("div", {
486
+ key: 0,
487
+ class: "qy-dialog__btn qy-dialog__btn--default",
488
+ onClick: de(p, ["stop"]),
489
+ onMousedown: v[0] || (v[0] = de(() => {
490
+ }, ["stop"]))
491
+ }, [...v[7] || (v[7] = [
492
+ q("span", {
493
+ class: "icon-[material-symbols--minimize] text-xl mb-3",
494
+ role: "img",
495
+ "aria-hidden": "true"
496
+ }, null, -1)
497
+ ])], 32)) : A("", !0),
498
+ o.showFullscreen ? (g(), I("div", {
499
+ key: 1,
500
+ class: "qy-dialog__btn qy-dialog__btn--default",
501
+ onClick: de(r, ["stop"]),
502
+ onMousedown: v[1] || (v[1] = de(() => {
503
+ }, ["stop"]))
504
+ }, [
505
+ le.value ? (g(), I("span", Xo)) : (g(), I("span", Jo))
506
+ ], 32)) : A("", !0),
507
+ q("div", {
508
+ class: "qy-dialog__btn qy-dialog__btn--danger",
509
+ onClick: v[2] || (v[2] = de((ue) => f("header"), ["stop"])),
510
+ onMousedown: v[3] || (v[3] = de(() => {
511
+ }, ["stop"]))
512
+ }, [...v[8] || (v[8] = [
513
+ q("span", {
514
+ class: "icon-[ri--close-line] text-xl",
515
+ role: "img",
516
+ "aria-hidden": "true"
517
+ }, null, -1)
518
+ ])], 32)
519
+ ], 32)
520
+ ], 36)) : A("", !0)
521
+ ]),
522
+ default: b(() => [
523
+ q("div", {
524
+ class: ye(["qy-dialog__wrapper", S(za)(le.value && "qy-dialog__wrapper--fullscreen")]),
525
+ style: qe({
526
+ maxHeight: G.value ? "calc(100vh - var(--header-height) - var(--footer-height) - var(--sides-gap))" : "calc(100vh - var(--header-height) - var(--sides-gap))",
527
+ padding: o.size === "small" ? "var(--small-content-padding)" : "var(--content-padding)"
528
+ })
529
+ }, [
530
+ o.size === "small" ? (g(), I("div", Yo, [
531
+ P(X, {
532
+ size: 36,
533
+ class: "cursor-pointer text-gray-100 active:scale-75 rounded-sm transition-all",
534
+ onClick: v[5] || (v[5] = (ue) => f("header"))
535
+ }, {
536
+ default: b(() => [
537
+ P(S(Ea))
538
+ ]),
539
+ _: 1
540
+ })
541
+ ])) : A("", !0),
542
+ x(i.$slots, "default")
543
+ ], 6)
544
+ ]),
545
+ _: 2
546
+ }, [
547
+ o.showFooter && !i.$slots.footer && Array.isArray(F.value) ? {
548
+ name: "footer",
549
+ fn: b(() => [
550
+ q("div", el, [
551
+ q("div", null, [
552
+ x(i.$slots, "footer-left")
553
+ ]),
554
+ q("div", {
555
+ class: ye([{
556
+ "qy-dialog__footer--outline": y.value
557
+ }, "qy-dialog__footer flex items-center justify-end"])
558
+ }, [
559
+ F.value.includes("cancel") ? (g(), oe(ie, { key: 0 })) : A("", !0),
560
+ F.value.includes("confirm") ? (g(), oe(ne, { key: 1 })) : A("", !0),
561
+ x(i.$slots, "footer-append")
562
+ ], 2)
563
+ ])
564
+ ]),
565
+ key: "0"
566
+ } : G.value ? {
567
+ name: "footer",
568
+ fn: b(() => [
569
+ q("div", {
570
+ class: ye([{
571
+ "qy-dialog__footer--outline": y.value
572
+ }, "qy-dialog__footer px-[var(--content-padding)] min-h-[var(--footer-height)] flex items-center justify-end"])
573
+ }, [
574
+ x(i.$slots, "footer", {
575
+ layouts: z.value,
576
+ layoutsNode: Object.values(z.value)
577
+ })
578
+ ], 2)
579
+ ]),
580
+ key: "1"
581
+ } : void 0
582
+ ]), 1032, ["class", "model-value", "title", "width", "top", "destroy-on-close", "lock-scroll", "fullscreen", "z-index", "draggable"]),
583
+ Fe(q("div", {
584
+ ref_key: "minimizedRef",
585
+ ref: h,
586
+ class: "fixed left-0 top-0 bg-white rounded shadow-lg cursor-pointer z-[9999] hover:bg-gray-50",
587
+ style: qe([c.value, { width: "300px", height: "50px", "will-change": "transform" }])
588
+ }, [
589
+ q("div", tl, [
590
+ q("div", al, [
591
+ v[9] || (v[9] = q("div", { class: "icon-[mdi--window-restore] text-gray-600" }, null, -1)),
592
+ q("span", ol, pe(o.title), 1)
593
+ ]),
594
+ q("div", ll, [
595
+ q("div", {
596
+ class: "p-1 hover:bg-gray-200 rounded",
597
+ onClick: de(p, ["stop"])
598
+ }, [...v[10] || (v[10] = [
599
+ q("div", { class: "icon-[mdi--window-maximize] text-gray-600" }, null, -1)
600
+ ])]),
601
+ q("div", {
602
+ class: "p-1 hover:bg-red-100 rounded",
603
+ onClick: v[6] || (v[6] = de((ue) => f("header"), ["stop"]))
604
+ }, [...v[11] || (v[11] = [
605
+ q("div", { class: "icon-[mdi--close] text-red-600" }, null, -1)
606
+ ])])
607
+ ])
608
+ ])
609
+ ], 4), [
610
+ [Ge, J.value]
611
+ ])
612
+ ]);
613
+ };
614
+ }
615
+ });
616
+ function Ue(e) {
617
+ const R = e == null ? void 0 : e.match(/(\[url\:(.*?)\])(.*)/);
618
+ return R ? {
619
+ imageUrl: R[2],
620
+ text: R[3]
621
+ } : {
622
+ imageUrl: "",
623
+ text: e || ""
624
+ };
625
+ }
626
+ function nl(e) {
627
+ const R = String(e || "").match(/(\[url\:.*?\])([\s\S]*)/);
628
+ return R ? R[2] : e;
629
+ }
630
+ function Ne(e, R) {
631
+ return R ? `[url:${R}]${e}` : e;
632
+ }
633
+ const rl = { class: "qy-remark-image__field" }, sl = {
634
+ key: 1,
635
+ class: "qy-remark-image__divider"
636
+ }, il = { class: "qy-remark-image__upload-anchor" }, ul = {
637
+ key: 0,
638
+ class: "icon-[line-md--loading-twotone-loop]",
639
+ role: "img",
640
+ "aria-hidden": "true"
641
+ }, cl = {
642
+ key: 1,
643
+ class: "icon-[ion--cloud-upload-outline]",
644
+ role: "img",
645
+ "aria-hidden": "true"
646
+ }, dl = {
647
+ key: 2,
648
+ class: "icon-[ph--images-thin]",
649
+ role: "img",
650
+ "aria-hidden": "true"
651
+ }, fl = { class: "qy-remark-image__popover" }, ml = ["src"], yl = { class: "qy-remark-image__popover-footer" }, pl = /* @__PURE__ */ we({
652
+ __name: "index",
653
+ props: {
654
+ defaultValue: { default: "" },
655
+ defaultImage: { default: "" },
656
+ rows: { default: 6 },
657
+ width: { default: "" },
658
+ autosize: { type: [Boolean, Object], default: !1 },
659
+ disabled: { type: Boolean, default: !1 },
660
+ placeholder: { default: "粘贴图片上传" },
661
+ type: { default: "textarea" },
662
+ layout: { default: "default" },
663
+ selectValue: { type: [String, Number, Boolean], default: "" },
664
+ selectOptions: { default: () => [] },
665
+ selectDisabled: { type: Boolean, default: !1 },
666
+ api: { default: "/permission-api/common/uploads" },
667
+ tokenKey: { default: "Admin-Token" },
668
+ uploadName: { default: "files" },
669
+ uploadRequest: {}
670
+ },
671
+ emits: ["change", "update:selectValue", "select-change"],
672
+ setup(e, { expose: R, emit: Y }) {
673
+ const t = e, o = Y, ae = ke(), B = T(null), y = T(""), d = T(""), M = T(!1), k = V(
674
+ () => t.layout === "select-prefix"
675
+ ), H = V(() => ({
676
+ "qy-remark-image--select-prefix": k.value
677
+ })), F = V(
678
+ () => k.value || t.type === "text" ? "text" : "textarea"
679
+ ), z = V(() => {
680
+ if (t.width)
681
+ return {
682
+ width: typeof t.width == "number" ? `${t.width}px` : t.width
683
+ };
684
+ });
685
+ re(
686
+ () => t.defaultValue,
687
+ (h) => {
688
+ const Q = Ue(h || "");
689
+ y.value = Q.text, d.value = Q.imageUrl || t.defaultImage || "";
690
+ },
691
+ { immediate: !0 }
692
+ ), re(
693
+ () => t.defaultImage,
694
+ (h) => {
695
+ h !== void 0 && !Ue(t.defaultValue || "").imageUrl && (d.value = h || "");
696
+ },
697
+ { immediate: !0 }
698
+ ), Ze(() => {
699
+ Ie(U);
700
+ }), We(() => {
701
+ const h = G();
702
+ h && h.removeEventListener("paste", E);
703
+ });
704
+ function G() {
705
+ var h, Q;
706
+ return ((h = B.value) == null ? void 0 : h.textarea) || ((Q = B.value) == null ? void 0 : Q.input) || null;
707
+ }
708
+ function U() {
709
+ const h = G();
710
+ h && (h.removeEventListener("paste", E), h.addEventListener("paste", E));
711
+ }
712
+ function C(h) {
713
+ y.value = nl(h || "");
714
+ }
715
+ function D(h) {
716
+ o("update:selectValue", h), o("select-change", h);
717
+ }
718
+ function Z() {
719
+ d.value = "", W();
720
+ }
721
+ function le() {
722
+ y.value = "", d.value = "", W();
723
+ }
724
+ async function E(h) {
725
+ var c;
726
+ const a = Array.from(((c = h.clipboardData) == null ? void 0 : c.files) || []).find((N) => N.type.startsWith("image/"));
727
+ a && (h.preventDefault(), await ee({
728
+ file: a,
729
+ onError: () => {
730
+ },
731
+ onProgress: () => {
732
+ },
733
+ onSuccess: () => {
734
+ }
735
+ }));
736
+ }
737
+ async function ee(h) {
738
+ var Q, a;
739
+ if (h.file.size > 51200 * 1e3)
740
+ return Be.error("图片过大"), !1;
741
+ M.value = !0;
742
+ try {
743
+ const c = await K(h);
744
+ return d.value = J(c), W(), Be.success("上传图片成功"), (Q = h.onSuccess) == null || Q.call(h, c), !0;
745
+ } catch (c) {
746
+ return (a = h.onError) == null || a.call(h, c), Be.error("上传失败"), !1;
747
+ } finally {
748
+ M.value = !1;
749
+ }
750
+ }
751
+ async function K(h) {
752
+ const Q = new FormData();
753
+ if (Q.append(t.uploadName, h.file), t.uploadRequest)
754
+ return t.uploadRequest({
755
+ file: h.file,
756
+ formData: Q,
757
+ options: h,
758
+ api: t.api,
759
+ tokenKey: t.tokenKey
760
+ });
761
+ const a = $a.get(t.tokenKey);
762
+ return (await fetch(t.api, {
763
+ method: "POST",
764
+ body: Q,
765
+ credentials: "include",
766
+ headers: a ? { Authorization: `Bearer ${a}` } : void 0
767
+ })).json();
768
+ }
769
+ function J(h) {
770
+ var c, N;
771
+ if (typeof h == "string") return h;
772
+ const Q = h, a = (Q == null ? void 0 : Q.urls) ?? ((c = Q == null ? void 0 : Q.data) == null ? void 0 : c.urls) ?? ((N = Q == null ? void 0 : Q.data) == null ? void 0 : N.url) ?? (Q == null ? void 0 : Q.url) ?? "";
773
+ return Array.isArray(a) ? a[0] || "" : a || "";
774
+ }
775
+ function W() {
776
+ o(
777
+ "change",
778
+ Ne(y.value || "", d.value || ""),
779
+ d.value || ""
780
+ );
781
+ }
782
+ return R({
783
+ deleteImage: Z,
784
+ // 兼容旧 remarkImage,在表单 reset/clearFrom 时清空文字和图片。
785
+ clearContent: le,
786
+ // 给表单保存或外部调试读取当前拆分值。
787
+ getValue: () => ({
788
+ text: y.value || "",
789
+ imageUrl: d.value || "",
790
+ value: Ne(y.value || "", d.value || "")
791
+ })
792
+ }), (h, Q) => (g(), I("div", {
793
+ class: ye(["qy-remark-image", H.value]),
794
+ style: qe(z.value)
795
+ }, [
796
+ q("div", rl, [
797
+ k.value ? (g(), oe(S(Ye), {
798
+ key: 0,
799
+ class: "qy-remark-image__prefix-select",
800
+ "model-value": e.selectValue,
801
+ options: e.selectOptions,
802
+ disabled: e.disabled || e.selectDisabled,
803
+ size: "small",
804
+ "onUpdate:modelValue": D
805
+ }, {
806
+ default: b(() => [
807
+ (g(!0), I(Ve, null, De(e.selectOptions, (a) => (g(), oe(S(et), {
808
+ key: String(a.value),
809
+ label: a.label,
810
+ value: a.value,
811
+ disabled: a.disabled
812
+ }, null, 8, ["label", "value", "disabled"]))), 128))
813
+ ]),
814
+ _: 1
815
+ }, 8, ["model-value", "options", "disabled"])) : A("", !0),
816
+ k.value ? (g(), I("span", sl)) : A("", !0),
817
+ P(S(Ae), be({
818
+ ref_key: "inputRef",
819
+ ref: B,
820
+ "model-value": y.value,
821
+ type: F.value,
822
+ rows: e.rows,
823
+ autosize: e.autosize,
824
+ disabled: e.disabled,
825
+ placeholder: e.placeholder
826
+ }, S(ae), {
827
+ "onUpdate:modelValue": C,
828
+ onBlur: W
829
+ }), null, 16, ["model-value", "type", "rows", "autosize", "disabled", "placeholder"]),
830
+ P(S(Oa), {
831
+ placement: "top-start",
832
+ width: 400,
833
+ trigger: "hover",
834
+ disabled: !d.value
835
+ }, {
836
+ reference: b(() => [
837
+ q("div", il, [
838
+ P(S(_a), {
839
+ disabled: M.value || e.disabled,
840
+ class: "qy-remark-image__upload",
841
+ "show-file-list": !1,
842
+ "http-request": ee
843
+ }, {
844
+ default: b(() => [
845
+ M.value ? (g(), I("span", ul)) : d.value ? (g(), I("span", dl)) : (g(), I("span", cl))
846
+ ]),
847
+ _: 1
848
+ }, 8, ["disabled"])
849
+ ])
850
+ ]),
851
+ default: b(() => [
852
+ q("div", fl, [
853
+ q("img", {
854
+ src: d.value,
855
+ class: "qy-remark-image__preview-img"
856
+ }, null, 8, ml),
857
+ q("div", yl, [
858
+ Q[1] || (Q[1] = q("span", { class: "qy-remark-image__popover-tip" }, "再次点击按钮可更换图片", -1)),
859
+ P(S(me), {
860
+ link: "",
861
+ size: "small",
862
+ type: "danger",
863
+ disabled: e.disabled,
864
+ onClick: Z
865
+ }, {
866
+ default: b(() => [...Q[0] || (Q[0] = [
867
+ fe(" 删除图片 ", -1)
868
+ ])]),
869
+ _: 1
870
+ }, 8, ["disabled"])
871
+ ])
872
+ ])
873
+ ]),
874
+ _: 1
875
+ }, 8, ["disabled"])
876
+ ])
877
+ ], 6));
878
+ }
879
+ }), gl = /* @__PURE__ */ $e(pl, [["__scopeId", "data-v-3158c066"]]), hl = /* @__PURE__ */ we({
880
+ name: "QyRemoteSelect",
881
+ inheritAttrs: !1,
882
+ __name: "index",
883
+ props: {
884
+ modelValue: { type: [String, Number, Boolean, Array, null], default: void 0 },
885
+ fetchMethod: {},
886
+ defaultOptions: { default: () => [] },
887
+ labelKey: { default: "label" },
888
+ valueKey: { default: "value" },
889
+ disabledKey: { default: "disabled" },
890
+ placeholder: { default: "请选择" },
891
+ disabled: { type: Boolean, default: !1 },
892
+ clearable: { type: Boolean, default: !0 },
893
+ multiple: { type: Boolean, default: !1 },
894
+ collapseTags: { type: Boolean, default: !1 },
895
+ collapseTagsTooltip: { type: Boolean, default: !1 },
896
+ autoSelectSingle: { type: Boolean, default: !1 },
897
+ size: { default: void 0 },
898
+ teleported: { type: Boolean, default: !0 },
899
+ appendTo: { default: "body" },
900
+ fitInputWidth: { type: Boolean, default: !0 },
901
+ popperClass: { default: "" },
902
+ debounce: { default: 300 },
903
+ minLength: { default: 1 },
904
+ remoteOnFocus: { type: Boolean, default: !1 },
905
+ remoteShowSuffix: { type: Boolean, default: !0 },
906
+ loading: { type: Boolean, default: !1 },
907
+ reserveSelectedOption: { type: Boolean, default: !0 },
908
+ allowCreate: { type: Boolean, default: !1 },
909
+ commitOnBlur: { type: Boolean, default: !1 }
910
+ },
911
+ emits: ["update:modelValue", "change", "clear", "visible-change", "focus", "blur", "options-change", "loading-change", "error"],
912
+ setup(e, { expose: R, emit: Y }) {
913
+ const t = e, o = Y, ae = ke(), B = T(null), y = T([]), d = T(/* @__PURE__ */ new Map()), M = T(!1), k = T(""), H = T("");
914
+ let F = 0, z = null;
915
+ const G = V(() => t.loading || M.value), U = T(!1), C = V(() => k.value !== ""), D = V(() => {
916
+ if (C.value) return y.value;
917
+ const u = /* @__PURE__ */ new Map(), L = (l) => {
918
+ u.set(Z(l), l);
919
+ };
920
+ return t.defaultOptions.forEach(L), t.reserveSelectedOption && d.value.forEach((l) => L(l)), y.value.forEach(L), Array.from(u.values());
921
+ });
922
+ re(
923
+ () => t.defaultOptions,
924
+ (u) => {
925
+ u.forEach(E);
926
+ },
927
+ { immediate: !0 }
928
+ ), re(
929
+ () => t.modelValue,
930
+ () => {
931
+ D.value.forEach(E);
932
+ },
933
+ { immediate: !0 }
934
+ );
935
+ function Z(u) {
936
+ return (u == null ? void 0 : u[t.valueKey]) ?? (u == null ? void 0 : u.value) ?? (u == null ? void 0 : u.label);
937
+ }
938
+ function le(u) {
939
+ return Array.isArray(t.modelValue) ? t.modelValue.includes(u) : t.modelValue === u;
940
+ }
941
+ function E(u) {
942
+ if (!t.reserveSelectedOption) return;
943
+ const L = Z(u);
944
+ le(L) && d.value.set(L, u);
945
+ }
946
+ function ee(u) {
947
+ return t.disabled ? !1 : u ? u.length >= t.minLength : t.remoteOnFocus;
948
+ }
949
+ function K(u) {
950
+ M.value !== u && (M.value = u, o("loading-change", u));
951
+ }
952
+ async function J(u) {
953
+ const L = ne(u), l = ++F;
954
+ if (ge(L), !ee(L)) {
955
+ y.value = [], K(!1), o("options-change", D.value);
956
+ return;
957
+ }
958
+ K(!0);
959
+ try {
960
+ const p = await t.fetchMethod(L);
961
+ if (l !== F) return;
962
+ y.value = Array.isArray(p) ? p : [], y.value.forEach(E), o("options-change", D.value);
963
+ } catch (p) {
964
+ if (l !== F) return;
965
+ y.value = [], o("error", p), o("options-change", D.value);
966
+ } finally {
967
+ l === F && K(!1);
968
+ }
969
+ }
970
+ function W() {
971
+ U.value || (U.value = !0, J(""));
972
+ }
973
+ function h(u) {
974
+ const L = ne(u);
975
+ H.value = L, F += 1, ge(L), z && (clearTimeout(z), z = null), z = setTimeout(() => {
976
+ J(L);
977
+ }, t.debounce);
978
+ }
979
+ function Q() {
980
+ U.value = !0, J("");
981
+ }
982
+ function a() {
983
+ J(k.value);
984
+ }
985
+ function c(u) {
986
+ H.value = "", o("update:modelValue", u);
987
+ }
988
+ function N(u) {
989
+ H.value = "", D.value.forEach(E), o("change", u);
990
+ }
991
+ function te() {
992
+ H.value = "", o("clear");
993
+ }
994
+ function r(u) {
995
+ u && t.remoteOnFocus && !k.value && W(), o("visible-change", u);
996
+ }
997
+ function f(u) {
998
+ t.remoteOnFocus && !k.value && W(), o("focus", u);
999
+ }
1000
+ function $(u) {
1001
+ _(), o("blur", u);
1002
+ }
1003
+ function _() {
1004
+ if (!t.allowCreate || !t.commitOnBlur || t.disabled) return;
1005
+ const u = H.value;
1006
+ u.trim() && (H.value = "", o("update:modelValue", u), o("change", u));
1007
+ }
1008
+ function ne(u) {
1009
+ return String(u ?? "");
1010
+ }
1011
+ function ge(u) {
1012
+ k.value = u, y.value = [], o("options-change", D.value);
1013
+ }
1014
+ function ie() {
1015
+ var u, L;
1016
+ (L = (u = B.value) == null ? void 0 : u.focus) == null || L.call(u);
1017
+ }
1018
+ function he() {
1019
+ var u, L;
1020
+ (L = (u = B.value) == null ? void 0 : u.blur) == null || L.call(u);
1021
+ }
1022
+ function Qe() {
1023
+ o("update:modelValue", t.multiple ? [] : ""), o("clear");
1024
+ }
1025
+ return qa(() => {
1026
+ z && clearTimeout(z);
1027
+ }), R({
1028
+ // 暴露远程选择常用控制方法,供弹窗打开后聚焦或请求失败后重试。
1029
+ focus: ie,
1030
+ blur: he,
1031
+ clear: Qe,
1032
+ retryFetch: a,
1033
+ fetchDefaultOptions: Q
1034
+ }), (u, L) => (g(), oe(Me, be({
1035
+ ref_key: "selectRef",
1036
+ ref: B
1037
+ }, S(ae), {
1038
+ "model-value": e.modelValue,
1039
+ options: D.value,
1040
+ "label-key": e.labelKey,
1041
+ "value-key": e.valueKey,
1042
+ "disabled-key": e.disabledKey,
1043
+ placeholder: e.placeholder,
1044
+ disabled: e.disabled,
1045
+ clearable: e.clearable,
1046
+ filterable: !0,
1047
+ multiple: e.multiple,
1048
+ "collapse-tags": e.collapseTags,
1049
+ "collapse-tags-tooltip": e.collapseTagsTooltip,
1050
+ "auto-select-single": e.autoSelectSingle,
1051
+ size: e.size,
1052
+ teleported: e.teleported,
1053
+ "append-to": e.appendTo,
1054
+ "fit-input-width": e.fitInputWidth,
1055
+ "popper-class": e.popperClass,
1056
+ remote: "",
1057
+ debounce: 0,
1058
+ "remote-show-suffix": e.remoteShowSuffix,
1059
+ "remote-method": h,
1060
+ loading: G.value,
1061
+ "onUpdate:modelValue": c,
1062
+ onChange: N,
1063
+ onClear: te,
1064
+ onVisibleChange: r,
1065
+ onFocus: f,
1066
+ onBlur: $
1067
+ }), Te({
1068
+ default: b(() => [
1069
+ u.$slots.default ? x(u.$slots, "default", {}, void 0, void 0, 0) : A("", !0)
1070
+ ]),
1071
+ _: 2
1072
+ }, [
1073
+ u.$slots.prefix ? {
1074
+ name: "prefix",
1075
+ fn: b(() => [
1076
+ x(u.$slots, "prefix")
1077
+ ]),
1078
+ key: "0"
1079
+ } : void 0,
1080
+ u.$slots.empty ? {
1081
+ name: "empty",
1082
+ fn: b(() => [
1083
+ x(u.$slots, "empty")
1084
+ ]),
1085
+ key: "1"
1086
+ } : void 0,
1087
+ u.$slots.loading ? {
1088
+ name: "loading",
1089
+ fn: b(() => [
1090
+ x(u.$slots, "loading")
1091
+ ]),
1092
+ key: "2"
1093
+ } : void 0,
1094
+ u.$slots.tag ? {
1095
+ name: "tag",
1096
+ fn: b((l) => [
1097
+ x(u.$slots, "tag", Je(Xe(l)))
1098
+ ]),
1099
+ key: "3"
1100
+ } : void 0
1101
+ ]), 1040, ["model-value", "options", "label-key", "value-key", "disabled-key", "placeholder", "disabled", "clearable", "multiple", "collapse-tags", "collapse-tags-tooltip", "auto-select-single", "size", "teleported", "append-to", "fit-input-width", "popper-class", "remote-show-suffix", "loading"]));
1102
+ }
1103
+ }), vl = { class: "qy-search-input__item" }, bl = ["innerHTML"], wl = {
1104
+ key: 0,
1105
+ class: "qy-search-input__item-description"
1106
+ }, Ql = /* @__PURE__ */ we({
1107
+ name: "QySearchInput",
1108
+ inheritAttrs: !1,
1109
+ __name: "index",
1110
+ props: {
1111
+ modelValue: { default: "" },
1112
+ loading: { type: Boolean, default: !1 },
1113
+ disabled: { type: Boolean, default: !1 },
1114
+ placeholder: { default: "请输入搜索内容" },
1115
+ removeSpace: { type: Boolean, default: !1 },
1116
+ trimMode: { default: "none" },
1117
+ clearable: { type: Boolean, default: !0 },
1118
+ showButton: { type: Boolean, default: !0 },
1119
+ buttonText: { default: "搜索" },
1120
+ buttonProps: { default: () => ({}) },
1121
+ suggestions: { default: () => [] },
1122
+ fetchSuggestions: { type: [Function, null], default: null },
1123
+ fetchSuggestionsMethod: { type: [Function, null], default: null },
1124
+ debounce: { default: 300 },
1125
+ minLength: { default: 1 },
1126
+ triggerOnFocus: { type: Boolean, default: !1 },
1127
+ searchOnEnter: { type: Boolean, default: !0 },
1128
+ searchOnSelect: { type: Boolean, default: !1 },
1129
+ highlightKeyword: { type: Boolean, default: !0 },
1130
+ teleported: { type: Boolean, default: !0 },
1131
+ appendTo: { default: "body" },
1132
+ popperClass: { default: "" },
1133
+ fitInputWidth: { type: Boolean, default: !0 }
1134
+ },
1135
+ emits: ["update:modelValue", "search", "clear", "input", "change", "focus", "blur", "enter", "select", "visible-change", "suggestions-change", "error"],
1136
+ setup(e, { expose: R, emit: Y }) {
1137
+ const t = e, o = Y, ae = ke(), B = T(null), y = T(F(t.modelValue)), d = V(() => F(t.modelValue)), M = V(
1138
+ () => ["qy-search-input__popper", t.popperClass].filter(Boolean).join(" ")
1139
+ ), k = V(() => F(t.modelValue)), H = T("");
1140
+ re(
1141
+ () => t.modelValue,
1142
+ (l) => {
1143
+ y.value = F(l);
1144
+ }
1145
+ );
1146
+ function F(l) {
1147
+ return l == null ? "" : String(l);
1148
+ }
1149
+ function z(l) {
1150
+ return t.removeSpace ? l.replace(/\s+/g, "") : l;
1151
+ }
1152
+ function G(l, p) {
1153
+ return t.trimMode !== p ? l : l.trim();
1154
+ }
1155
+ function U(l) {
1156
+ return z(F(l));
1157
+ }
1158
+ function C(l) {
1159
+ y.value = l, o("update:modelValue", l);
1160
+ }
1161
+ function D(l, p = "") {
1162
+ return {
1163
+ ...l,
1164
+ label: l.label || l.value,
1165
+ value: l.value || l.label,
1166
+ description: l.description || p
1167
+ };
1168
+ }
1169
+ function Z(l = []) {
1170
+ return l.flatMap((p) => {
1171
+ if (Array.isArray(p.items)) {
1172
+ const i = p;
1173
+ return i.items.map((v) => D(v, i.groupLabel));
1174
+ }
1175
+ return D(p);
1176
+ });
1177
+ }
1178
+ function le(l) {
1179
+ const p = l.toLowerCase();
1180
+ return (i) => [i.label, i.value, i.description].filter(Boolean).some((v) => String(v).toLowerCase().includes(p));
1181
+ }
1182
+ function E(l) {
1183
+ return l ? l.length >= t.minLength : t.triggerOnFocus;
1184
+ }
1185
+ function ee(l) {
1186
+ o("suggestions-change", l), o("visible-change", l.length > 0);
1187
+ }
1188
+ async function K(l) {
1189
+ if (!E(l))
1190
+ return ee([]), [];
1191
+ if (t.fetchSuggestionsMethod) {
1192
+ const v = await new Promise((X) => {
1193
+ var j;
1194
+ (j = t.fetchSuggestionsMethod) == null || j.call(t, l, (ue) => {
1195
+ X(Z(ue));
1196
+ });
1197
+ });
1198
+ return ee(v), v;
1199
+ }
1200
+ if (t.fetchSuggestions) {
1201
+ const v = await t.fetchSuggestions(l), X = Z(Array.isArray(v) ? v : []);
1202
+ return ee(X), X;
1203
+ }
1204
+ const p = Z(t.suggestions), i = l ? p.filter(le(l)) : p;
1205
+ return ee(i), i;
1206
+ }
1207
+ async function J(l, p) {
1208
+ H.value = l;
1209
+ try {
1210
+ const i = await K(l);
1211
+ p(i);
1212
+ } catch (i) {
1213
+ o("error", i), ee([]), p([]);
1214
+ }
1215
+ }
1216
+ function W() {
1217
+ var l, p;
1218
+ H.value && ((p = (l = B.value) == null ? void 0 : l.getData) == null || p.call(l, H.value));
1219
+ }
1220
+ function h(l) {
1221
+ const p = U(l);
1222
+ C(p);
1223
+ }
1224
+ function Q(l) {
1225
+ const p = U(l);
1226
+ y.value = p, o("input", p);
1227
+ }
1228
+ function a(l) {
1229
+ const p = G(U(l), "change");
1230
+ p !== F(t.modelValue) && C(p), o("change", p);
1231
+ }
1232
+ function c(l) {
1233
+ o("focus", l);
1234
+ }
1235
+ function N(l) {
1236
+ const p = G(y.value, "blur");
1237
+ p !== F(t.modelValue) && C(p), o("blur", l), o("visible-change", !1);
1238
+ }
1239
+ function te() {
1240
+ y.value = "", o("update:modelValue", ""), o("clear"), ee([]);
1241
+ }
1242
+ function r(l) {
1243
+ o("enter", l), t.searchOnEnter && f();
1244
+ }
1245
+ function f() {
1246
+ o("search", F(t.modelValue));
1247
+ }
1248
+ function $(l) {
1249
+ o("select", l), t.searchOnSelect && o("search", l.value);
1250
+ }
1251
+ function _(l) {
1252
+ return l.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&#39;");
1253
+ }
1254
+ function ne(l) {
1255
+ return l.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
1256
+ }
1257
+ function ge(l) {
1258
+ const p = _(l || "");
1259
+ if (!t.highlightKeyword || !d.value) return p;
1260
+ const i = ne(_(d.value));
1261
+ return i ? p.replace(
1262
+ new RegExp(`(${i})`, "ig"),
1263
+ '<mark class="qy-search-input__mark">$1</mark>'
1264
+ ) : p;
1265
+ }
1266
+ function ie() {
1267
+ var l, p;
1268
+ (p = (l = B.value) == null ? void 0 : l.focus) == null || p.call(l);
1269
+ }
1270
+ function he() {
1271
+ var l, p;
1272
+ (p = (l = B.value) == null ? void 0 : l.blur) == null || p.call(l);
1273
+ }
1274
+ function Qe() {
1275
+ var l, p, i;
1276
+ (i = (p = (l = B.value) == null ? void 0 : l.inputRef) == null ? void 0 : p.select) == null || i.call(p);
1277
+ }
1278
+ function u() {
1279
+ var l, p;
1280
+ (p = (l = B.value) == null ? void 0 : l.clear) == null || p.call(l);
1281
+ }
1282
+ function L() {
1283
+ var l, p;
1284
+ (p = (l = B.value) == null ? void 0 : l.close) == null || p.call(l);
1285
+ }
1286
+ return R({
1287
+ // 暴露搜索框常用控制方法,供弹窗打开后聚焦或失败后重试建议项。
1288
+ focus: ie,
1289
+ blur: he,
1290
+ select: Qe,
1291
+ clear: u,
1292
+ closePanel: L,
1293
+ retryFetch: W
1294
+ }), (l, p) => (g(), I("div", {
1295
+ class: ye(["qy-search-input", { "is-disabled": e.disabled }])
1296
+ }, [
1297
+ P(S(Pa), be({
1298
+ ref_key: "autocompleteRef",
1299
+ ref: B
1300
+ }, S(ae), {
1301
+ "model-value": k.value,
1302
+ disabled: e.disabled,
1303
+ placeholder: e.placeholder,
1304
+ clearable: e.clearable,
1305
+ debounce: e.debounce,
1306
+ "fetch-suggestions": J,
1307
+ "trigger-on-focus": e.triggerOnFocus,
1308
+ teleported: e.teleported,
1309
+ "fit-input-width": e.fitInputWidth,
1310
+ "popper-class": M.value,
1311
+ "append-to": e.appendTo,
1312
+ "value-key": "value",
1313
+ "onUpdate:modelValue": h,
1314
+ onInput: Q,
1315
+ onChange: a,
1316
+ onFocus: c,
1317
+ onBlur: N,
1318
+ onClear: te,
1319
+ onSelect: $,
1320
+ onKeydown: Re(r, ["enter"])
1321
+ }), Te({
1322
+ default: b(({ item: i }) => [
1323
+ x(l.$slots, "item", {
1324
+ item: i,
1325
+ keyword: d.value
1326
+ }, () => [
1327
+ q("div", vl, [
1328
+ q("div", {
1329
+ class: "qy-search-input__item-label",
1330
+ innerHTML: ge(i.label || i.value || "")
1331
+ }, null, 8, bl),
1332
+ i.description ? (g(), I("div", wl, pe(i.description), 1)) : A("", !0)
1333
+ ])
1334
+ ], !0)
1335
+ ]),
1336
+ _: 2
1337
+ }, [
1338
+ l.$slots.prefix ? {
1339
+ name: "prefix",
1340
+ fn: b(() => [
1341
+ x(l.$slots, "prefix", {}, void 0, !0)
1342
+ ]),
1343
+ key: "0"
1344
+ } : void 0,
1345
+ l.$slots.suffix ? {
1346
+ name: "suffix",
1347
+ fn: b(() => [
1348
+ x(l.$slots, "suffix", {}, void 0, !0)
1349
+ ]),
1350
+ key: "1"
1351
+ } : void 0,
1352
+ l.$slots.prepend ? {
1353
+ name: "prepend",
1354
+ fn: b(() => [
1355
+ x(l.$slots, "prepend", {}, void 0, !0)
1356
+ ]),
1357
+ key: "2"
1358
+ } : void 0,
1359
+ l.$slots.append || e.showButton ? {
1360
+ name: "append",
1361
+ fn: b(() => [
1362
+ l.$slots.append ? x(l.$slots, "append", {}, void 0, !0, 0) : (g(), oe(S(me), be({ key: 1 }, e.buttonProps, {
1363
+ loading: e.loading,
1364
+ disabled: e.disabled,
1365
+ onClick: f
1366
+ }), {
1367
+ default: b(() => [
1368
+ fe(pe(e.buttonText), 1)
1369
+ ]),
1370
+ _: 1
1371
+ }, 16, ["loading", "disabled"]))
1372
+ ]),
1373
+ key: "3"
1374
+ } : void 0
1375
+ ]), 1040, ["model-value", "disabled", "placeholder", "clearable", "debounce", "trigger-on-focus", "teleported", "fit-input-width", "popper-class", "append-to"])
1376
+ ], 2));
1377
+ }
1378
+ }), nt = /* @__PURE__ */ $e(Ql, [["__scopeId", "data-v-cd7f5dfc"]]), Sl = { class: "qy-record-quote-search" }, kl = {
1379
+ key: 0,
1380
+ class: "qy-record-quote-search__header"
1381
+ }, $l = {
1382
+ key: 0,
1383
+ class: "qy-record-quote-search__label"
1384
+ }, Cl = {
1385
+ key: 1,
1386
+ class: "qy-record-quote-search__description"
1387
+ }, xl = /* @__PURE__ */ we({
1388
+ name: "QyRecordQuoteSearch",
1389
+ inheritAttrs: !1,
1390
+ __name: "index",
1391
+ props: {
1392
+ modelValue: { default: "" },
1393
+ loading: { type: Boolean, default: !1 },
1394
+ disabled: { type: Boolean, default: !1 },
1395
+ placeholder: { default: "请输入报价单号" },
1396
+ buttonText: { default: "查询报价单" },
1397
+ autoNormalize: { type: Boolean, default: !0 },
1398
+ showStatus: { type: Boolean, default: !0 },
1399
+ status: { default: "default" },
1400
+ statusText: { default: "" },
1401
+ suggestions: { default: () => [] },
1402
+ fetchSuggestions: { type: [Function, null], default: null },
1403
+ fetchSuggestionsMethod: { type: [Function, null], default: null },
1404
+ debounce: { default: 300 },
1405
+ minLength: { default: 1 },
1406
+ searchOnSelect: { type: Boolean, default: !0 },
1407
+ searchMethod: { type: [Function, null], default: null },
1408
+ extractMethod: { type: [Function, null], default: null },
1409
+ normalizeMethod: { type: [Function, null], default: null },
1410
+ label: { default: "报价单号" },
1411
+ description: { default: "" },
1412
+ trimMode: { default: "blur" }
1413
+ },
1414
+ emits: ["update:modelValue", "search", "clear", "normalize", "enter", "select", "error", "success"],
1415
+ setup(e, { expose: R, emit: Y }) {
1416
+ const t = e, o = Y, ae = ke(), B = T(null), y = T(!1), d = V(() => t.statusText || ""), M = V(() => t.loading || y.value);
1417
+ function k(a) {
1418
+ return a == null ? "" : String(a);
1419
+ }
1420
+ function H(a) {
1421
+ const c = k(a).trim(), N = F(c), te = N.match(/BJ\d{8}[A-Z0-9]{4}/i);
1422
+ return te ? te[0] : N;
1423
+ }
1424
+ function F(a) {
1425
+ return k(a).replace(/\s+/g, "").trim().toUpperCase();
1426
+ }
1427
+ function z(a) {
1428
+ return t.extractMethod ? t.extractMethod(a) : H(a);
1429
+ }
1430
+ function G(a) {
1431
+ return t.normalizeMethod ? t.normalizeMethod(a) : F(a);
1432
+ }
1433
+ function U(a, c) {
1434
+ const N = k(a), te = z(N), r = t.autoNormalize ? G(te) : te;
1435
+ return o("normalize", { rawValue: N, code: r }), {
1436
+ rawValue: N,
1437
+ code: r,
1438
+ item: c
1439
+ };
1440
+ }
1441
+ function C(a) {
1442
+ o("update:modelValue", a);
1443
+ }
1444
+ async function D(a) {
1445
+ if (o("search", a), !!t.searchMethod) {
1446
+ y.value = !0;
1447
+ try {
1448
+ const c = await t.searchMethod(a);
1449
+ o("success", c);
1450
+ } catch (c) {
1451
+ o("error", c);
1452
+ } finally {
1453
+ y.value = !1;
1454
+ }
1455
+ }
1456
+ }
1457
+ function Z(a) {
1458
+ const c = U(a);
1459
+ c.code !== k(t.modelValue) && o("update:modelValue", c.code), D(c);
1460
+ }
1461
+ function le() {
1462
+ o("clear");
1463
+ }
1464
+ function E(a) {
1465
+ o("enter", a);
1466
+ }
1467
+ function ee(a) {
1468
+ if (o("select", a), !t.searchOnSelect) return;
1469
+ const c = U(a.value, a);
1470
+ c.code !== k(t.modelValue) && o("update:modelValue", c.code), D(c);
1471
+ }
1472
+ function K(a) {
1473
+ o("error", a);
1474
+ }
1475
+ function J() {
1476
+ var a, c;
1477
+ (c = (a = B.value) == null ? void 0 : a.focus) == null || c.call(a);
1478
+ }
1479
+ function W() {
1480
+ var a, c;
1481
+ (c = (a = B.value) == null ? void 0 : a.blur) == null || c.call(a);
1482
+ }
1483
+ function h() {
1484
+ var a, c;
1485
+ (c = (a = B.value) == null ? void 0 : a.select) == null || c.call(a);
1486
+ }
1487
+ function Q() {
1488
+ var a, c;
1489
+ (c = (a = B.value) == null ? void 0 : a.clear) == null || c.call(a);
1490
+ }
1491
+ return R({
1492
+ focus: J,
1493
+ blur: W,
1494
+ select: h,
1495
+ clear: Q,
1496
+ extractQuoteOrderCode: z,
1497
+ normalizeQuoteOrderCode: G
1498
+ }), (a, c) => (g(), I("div", Sl, [
1499
+ x(a.$slots, "label", {}, () => [
1500
+ e.label || e.description ? (g(), I("div", kl, [
1501
+ e.label ? (g(), I("div", $l, pe(e.label), 1)) : A("", !0),
1502
+ e.description ? (g(), I("div", Cl, pe(e.description), 1)) : A("", !0)
1503
+ ])) : A("", !0)
1504
+ ], !0),
1505
+ P(nt, be({
1506
+ ref_key: "searchRef",
1507
+ ref: B
1508
+ }, S(ae), {
1509
+ "model-value": e.modelValue,
1510
+ loading: M.value,
1511
+ disabled: e.disabled,
1512
+ placeholder: e.placeholder,
1513
+ "remove-space": !0,
1514
+ "trim-mode": e.trimMode,
1515
+ "button-text": e.buttonText,
1516
+ suggestions: e.suggestions,
1517
+ "fetch-suggestions": e.fetchSuggestions,
1518
+ "fetch-suggestions-method": e.fetchSuggestionsMethod,
1519
+ debounce: e.debounce,
1520
+ "min-length": e.minLength,
1521
+ "search-on-select": !1,
1522
+ "onUpdate:modelValue": C,
1523
+ onSearch: Z,
1524
+ onClear: le,
1525
+ onEnter: E,
1526
+ onSelect: ee,
1527
+ onError: K
1528
+ }), Te({ _: 2 }, [
1529
+ a.$slots.prefix ? {
1530
+ name: "prefix",
1531
+ fn: b(() => [
1532
+ x(a.$slots, "prefix", {}, void 0, !0)
1533
+ ]),
1534
+ key: "0"
1535
+ } : void 0,
1536
+ a.$slots.suffix ? {
1537
+ name: "suffix",
1538
+ fn: b(() => [
1539
+ x(a.$slots, "suffix", {}, void 0, !0)
1540
+ ]),
1541
+ key: "1"
1542
+ } : void 0,
1543
+ a.$slots.item ? {
1544
+ name: "item",
1545
+ fn: b((N) => [
1546
+ x(a.$slots, "item", Je(Xe(N)), void 0, !0)
1547
+ ]),
1548
+ key: "2"
1549
+ } : void 0,
1550
+ a.$slots.empty ? {
1551
+ name: "empty",
1552
+ fn: b(() => [
1553
+ x(a.$slots, "empty", {}, void 0, !0)
1554
+ ]),
1555
+ key: "3"
1556
+ } : void 0,
1557
+ a.$slots.loading ? {
1558
+ name: "loading",
1559
+ fn: b(() => [
1560
+ x(a.$slots, "loading", {}, void 0, !0)
1561
+ ]),
1562
+ key: "4"
1563
+ } : void 0
1564
+ ]), 1040, ["model-value", "loading", "disabled", "placeholder", "trim-mode", "button-text", "suggestions", "fetch-suggestions", "fetch-suggestions-method", "debounce", "min-length"]),
1565
+ e.showStatus && d.value ? x(a.$slots, "status", {
1566
+ status: e.status,
1567
+ statusText: d.value
1568
+ }, () => [
1569
+ q("div", {
1570
+ class: ye(["qy-record-quote-search__status", `is-${e.status}`])
1571
+ }, pe(d.value), 3)
1572
+ ], !0, 0) : A("", !0)
1573
+ ]));
1574
+ }
1575
+ }), Bl = /* @__PURE__ */ $e(xl, [["__scopeId", "data-v-3a314f64"]]), ql = { class: "qy-selection-dialog" }, Il = { class: "qy-selection-dialog__main" }, Vl = {
1576
+ key: 0,
1577
+ class: "qy-selection-dialog__selected"
1578
+ }, Al = { class: "qy-selection-dialog__selected-tags" }, Tl = {
1579
+ key: 0,
1580
+ class: "qy-selection-dialog__selected-actions"
1581
+ }, zl = {
1582
+ key: 1,
1583
+ class: "qy-selection-dialog__search-row"
1584
+ }, Ol = {
1585
+ key: 0,
1586
+ class: "qy-selection-dialog__toolbar"
1587
+ }, _l = {
1588
+ key: 2,
1589
+ class: "qy-selection-dialog__pagination"
1590
+ }, Pl = { class: "qy-selection-dialog__paste-actions" }, Fl = /* @__PURE__ */ we({
1591
+ name: "QySelectionDialog",
1592
+ inheritAttrs: !1,
1593
+ __name: "index",
1594
+ props: {
1595
+ modelValue: { default: () => [] },
1596
+ open: { type: Boolean, default: !0 },
1597
+ title: { default: "选择数据" },
1598
+ width: { default: "1200px" },
1599
+ fetchMethod: { type: Function, default: void 0 },
1600
+ query: { type: Function, default: void 0 },
1601
+ responseFormatter: { type: Function, default: void 0 },
1602
+ selectionMode: { default: void 0 },
1603
+ selection: { default: "single" },
1604
+ selected: { default: () => [] },
1605
+ rowKey: { default: "id" },
1606
+ mainKey: { default: void 0 },
1607
+ labelKey: { default: "name" },
1608
+ tagName: { default: void 0 },
1609
+ searchKey: { default: "conditions" },
1610
+ queryParams: { default: () => ({}) },
1611
+ category: { type: [Array, Function, Boolean], default: !1 },
1612
+ categoryFormatter: { type: [Function, Array], default: void 0 },
1613
+ categoryOptions: { default: () => [] },
1614
+ categoryFetchMethod: { type: [Function, null], default: null },
1615
+ type: { type: [Array, Boolean], default: !1 },
1616
+ typeOptions: { default: () => [] },
1617
+ typeSelectionProps: { default: () => ({}) },
1618
+ typeSelectProps: { default: () => ({}) },
1619
+ tableProps: { default: () => ({}) },
1620
+ showSelected: { type: Boolean, default: !0 },
1621
+ showSearch: { type: Boolean, default: !0 },
1622
+ showPagination: { type: Boolean, default: !0 },
1623
+ showCopyPaste: { type: Boolean, default: !1 },
1624
+ append: { type: Boolean, default: !1 },
1625
+ showAppend: { type: Boolean, default: !1 },
1626
+ pageSizes: { default: () => [10, 20, 50, 100] }
1627
+ },
1628
+ emits: ["update:modelValue", "selection-change", "confirm", "submit", "cancel", "close", "append", "loaded"],
1629
+ setup(e, { expose: R, emit: Y }) {
1630
+ const t = e, o = Y, ae = ke(), B = He(), y = Ia(), d = T(null), M = T([]), k = T([]), H = T([]), F = T(!1), z = T(0), G = T(!1), U = T(""), C = Oe({
1631
+ category: [],
1632
+ type: "",
1633
+ page: 1,
1634
+ pageSize: 10,
1635
+ ...t.searchKey ? { [t.searchKey]: "" } : {},
1636
+ ...t.queryParams
1637
+ }), D = V(() => t.selectionMode ? t.selectionMode : t.selection === "multi" ? "multiple" : t.selection), Z = V(() => t.mainKey || t.rowKey), le = V(() => t.tagName || t.labelKey), E = V(() => t.typeOptions.length ? t.typeOptions : t.type || []), ee = V(() => ({
1638
+ ...t.typeSelectionProps,
1639
+ ...t.typeSelectProps
1640
+ })), K = V(() => t.tableProps || {}), J = V(
1641
+ () => t.showSearch || !!ae["search-visible"]
1642
+ ), W = V(() => t.showAppend || t.append), h = V(
1643
+ () => W.value || !!B.toolbar || !!B.bar
1644
+ ), Q = V(() => t.fetchMethod || t.query), a = V(() => c() ? t.modelValue : t.selected);
1645
+ function c() {
1646
+ const n = (y == null ? void 0 : y.vnode.props) || {};
1647
+ return Object.prototype.hasOwnProperty.call(n, "modelValue") || Object.prototype.hasOwnProperty.call(n, "model-value") || Object.prototype.hasOwnProperty.call(n, "onUpdate:modelValue");
1648
+ }
1649
+ re(
1650
+ [() => t.modelValue, () => t.selected, () => t.open],
1651
+ () => {
1652
+ t.open && (k.value = xe(a.value), i());
1653
+ },
1654
+ { immediate: !0, deep: !0 }
1655
+ ), re(
1656
+ [() => t.categoryOptions, () => t.category],
1657
+ (n) => {
1658
+ if (Array.isArray(t.category) && t.category.length) {
1659
+ H.value = t.category;
1660
+ return;
1661
+ }
1662
+ H.value = t.categoryOptions || [];
1663
+ },
1664
+ { immediate: !0 }
1665
+ ), re(G, (n) => {
1666
+ n || (U.value = "");
1667
+ });
1668
+ async function N() {
1669
+ k.value = xe(a.value), await te(), await r(), i();
1670
+ }
1671
+ async function te() {
1672
+ const n = t.categoryFetchMethod || (typeof t.category == "function" ? t.category : null);
1673
+ if (!n) return;
1674
+ const s = await n();
1675
+ H.value = ie(s);
1676
+ }
1677
+ async function r() {
1678
+ if (Q.value) {
1679
+ F.value = !0;
1680
+ try {
1681
+ const n = await Q.value(Qe()), s = t.responseFormatter ? await t.responseFormatter(n) : n, { rows: O, total: w } = ge(s);
1682
+ return M.value = O, z.value = w, o("loaded", O), i(), s;
1683
+ } finally {
1684
+ F.value = !1;
1685
+ }
1686
+ }
1687
+ }
1688
+ function f() {
1689
+ return C.page = 1, r();
1690
+ }
1691
+ function $() {
1692
+ return C.page = 1, r();
1693
+ }
1694
+ function _() {
1695
+ return Object.assign(C, {
1696
+ category: [],
1697
+ type: "",
1698
+ page: 1,
1699
+ pageSize: C.pageSize,
1700
+ ...t.searchKey ? { [t.searchKey]: "" } : {},
1701
+ ...t.queryParams
1702
+ }), r();
1703
+ }
1704
+ function ne() {
1705
+ o("append");
1706
+ }
1707
+ function ge(n) {
1708
+ if (Array.isArray(n))
1709
+ return { rows: n, total: n.length };
1710
+ const s = n == null ? void 0 : n.data;
1711
+ if (Array.isArray(s))
1712
+ return { rows: s, total: (n == null ? void 0 : n.total) ?? s.length };
1713
+ const O = (n == null ? void 0 : n.records) || (n == null ? void 0 : n.rows) || (s == null ? void 0 : s.records) || [], w = (n == null ? void 0 : n.total) ?? (s == null ? void 0 : s.total) ?? O.length;
1714
+ return { rows: O, total: w };
1715
+ }
1716
+ function ie(n) {
1717
+ const s = (n == null ? void 0 : n.data) ?? n;
1718
+ if (!Array.isArray(s)) return [];
1719
+ if (typeof t.categoryFormatter == "function")
1720
+ return t.categoryFormatter(s);
1721
+ if (Array.isArray(t.categoryFormatter)) {
1722
+ const [O, w] = t.categoryFormatter;
1723
+ return s.map((ve) => ({
1724
+ ...ve,
1725
+ label: ve[O],
1726
+ value: ve[w],
1727
+ children: Array.isArray(ve.children) ? he(ve.children, O, w) : ve.children
1728
+ }));
1729
+ }
1730
+ return s;
1731
+ }
1732
+ function he(n, s, O) {
1733
+ return n.map((w) => ({
1734
+ ...w,
1735
+ label: w[s],
1736
+ value: w[O],
1737
+ children: Array.isArray(w.children) ? he(w.children, s, O) : w.children
1738
+ }));
1739
+ }
1740
+ function Qe() {
1741
+ const n = { ...t.queryParams, ...C };
1742
+ return t.searchKey && (n[t.searchKey] = String(n[t.searchKey] || "").trim()), n.category = u(), n;
1743
+ }
1744
+ function u() {
1745
+ if (Object.prototype.hasOwnProperty.call(t.queryParams, "category"))
1746
+ return t.queryParams.category;
1747
+ const n = C.category;
1748
+ return Array.isArray(n) ? n : n ? [n] : [];
1749
+ }
1750
+ function L(n) {
1751
+ var s, O;
1752
+ if (D.value !== "none") {
1753
+ if (D.value === "single") {
1754
+ k.value = [n], (s = d.value) == null || s.setCurrentRow(n), ce();
1755
+ return;
1756
+ }
1757
+ v(n) && ((O = d.value) == null || O.toggleRowSelection(n, !X(n)));
1758
+ }
1759
+ }
1760
+ function l(n) {
1761
+ if (D.value !== "multiple") return;
1762
+ const s = new Set(M.value.map(j)), O = new Set(n.map(j));
1763
+ k.value = k.value.filter(
1764
+ (w) => !s.has(j(w)) || O.has(j(w))
1765
+ ), n.forEach((w) => {
1766
+ X(w) || k.value.push(w);
1767
+ }), ce();
1768
+ }
1769
+ function p(n) {
1770
+ var O, w;
1771
+ k.value = k.value.filter(
1772
+ (ve) => j(ve) !== j(n)
1773
+ );
1774
+ const s = M.value.find((ve) => j(ve) === j(n));
1775
+ s && (D.value === "multiple" ? (O = d.value) == null || O.toggleRowSelection(s, !1) : (w = d.value) == null || w.setCurrentRow()), ce();
1776
+ }
1777
+ function i() {
1778
+ Ie(() => {
1779
+ var n;
1780
+ if (d.value) {
1781
+ if (D.value === "single") {
1782
+ const [s] = k.value, O = M.value.find(
1783
+ (w) => s && j(w) === j(s)
1784
+ );
1785
+ (n = d.value) == null || n.setCurrentRow(O);
1786
+ return;
1787
+ }
1788
+ D.value === "multiple" && M.value.forEach((s) => {
1789
+ var O;
1790
+ (O = d.value) == null || O.toggleRowSelection(s, X(s));
1791
+ });
1792
+ }
1793
+ });
1794
+ }
1795
+ function v(n) {
1796
+ var O;
1797
+ const s = (O = K.value) == null ? void 0 : O.selectable;
1798
+ return typeof s == "function" ? s(n) !== !1 : !0;
1799
+ }
1800
+ function X(n) {
1801
+ return k.value.some((s) => j(s) === j(n));
1802
+ }
1803
+ function j(n) {
1804
+ return se(n, Z.value);
1805
+ }
1806
+ function ue(n) {
1807
+ return se(n, le.value) ?? j(n);
1808
+ }
1809
+ function se(n, s) {
1810
+ if (!(!n || !s))
1811
+ return s.split(".").reduce((O, w) => O == null ? void 0 : O[w], n);
1812
+ }
1813
+ function ce() {
1814
+ const n = xe(k.value);
1815
+ o("selection-change", n);
1816
+ }
1817
+ function Ce() {
1818
+ const n = xe(k.value);
1819
+ o("update:modelValue", n), o("confirm", n), o("submit", { selection: n, rows: n, query: { ...C } });
1820
+ }
1821
+ function Ee() {
1822
+ k.value = xe(a.value), o("cancel"), o("close");
1823
+ }
1824
+ async function Sa() {
1825
+ var s;
1826
+ const n = JSON.stringify(k.value);
1827
+ await ((s = navigator.clipboard) == null ? void 0 : s.writeText(n)), Be.success("复制成功");
1828
+ }
1829
+ function ka() {
1830
+ try {
1831
+ const n = JSON.parse(U.value);
1832
+ if (!Array.isArray(n)) {
1833
+ Be.error("粘贴内容需要是数组");
1834
+ return;
1835
+ }
1836
+ n.forEach((s) => {
1837
+ X(s) || k.value.push(s);
1838
+ }), G.value = !1, ce(), i();
1839
+ } catch (n) {
1840
+ Be.error(`粘贴错误: ${(n == null ? void 0 : n.message) || "内容格式错误"}`);
1841
+ }
1842
+ }
1843
+ function xe(n = []) {
1844
+ return n.map((s) => ({ ...s }));
1845
+ }
1846
+ return R({
1847
+ search: f,
1848
+ handleSearch: r,
1849
+ handleQuerySearch: f,
1850
+ resetSearch: _,
1851
+ getTableRef: () => d.value,
1852
+ getTableData: () => M.value,
1853
+ getSelection: () => xe(k.value)
1854
+ }), (n, s) => {
1855
+ const O = Ta;
1856
+ return g(), oe(Pe, {
1857
+ open: e.open,
1858
+ title: e.title,
1859
+ width: e.width,
1860
+ onOpened: N,
1861
+ onConfirm: Ce,
1862
+ onCancel: Ee
1863
+ }, {
1864
+ default: b(() => [
1865
+ q("div", ql, [
1866
+ x(n.$slots, "side", {}, void 0, !0),
1867
+ q("div", Il, [
1868
+ e.showSelected ? (g(), I("div", Vl, [
1869
+ s[12] || (s[12] = q("span", { class: "qy-selection-dialog__selected-label" }, "已选项", -1)),
1870
+ q("div", Al, [
1871
+ (g(!0), I(Ve, null, De(k.value, (w) => (g(), oe(_e, {
1872
+ key: j(w),
1873
+ closable: "",
1874
+ class: "qy-selection-dialog__selected-tag",
1875
+ onClose: (ve) => p(w)
1876
+ }, {
1877
+ default: b(() => [
1878
+ fe(pe(ue(w)), 1)
1879
+ ]),
1880
+ _: 2
1881
+ }, 1032, ["onClose"]))), 128)),
1882
+ k.value.length ? A("", !0) : (g(), oe(_e, {
1883
+ key: 0,
1884
+ tone: "info"
1885
+ }, {
1886
+ default: b(() => [...s[9] || (s[9] = [
1887
+ fe("无", -1)
1888
+ ])]),
1889
+ _: 1
1890
+ }))
1891
+ ]),
1892
+ e.showCopyPaste ? (g(), I("div", Tl, [
1893
+ P(S(me), {
1894
+ size: "small",
1895
+ onClick: Sa
1896
+ }, {
1897
+ default: b(() => [...s[10] || (s[10] = [
1898
+ fe("复制", -1)
1899
+ ])]),
1900
+ _: 1
1901
+ }),
1902
+ P(S(me), {
1903
+ size: "small",
1904
+ onClick: s[0] || (s[0] = (w) => G.value = !0)
1905
+ }, {
1906
+ default: b(() => [...s[11] || (s[11] = [
1907
+ fe("粘贴", -1)
1908
+ ])]),
1909
+ _: 1
1910
+ })
1911
+ ])) : A("", !0)
1912
+ ])) : A("", !0),
1913
+ J.value ? (g(), I("div", zl, [
1914
+ P(S(tt), {
1915
+ class: "qy-selection-dialog__search",
1916
+ inline: "",
1917
+ model: C
1918
+ }, {
1919
+ default: b(() => [
1920
+ x(n.$slots, "search", {
1921
+ query: C,
1922
+ search: f,
1923
+ reset: _
1924
+ }, () => [
1925
+ H.value.length ? (g(), oe(S(Se), {
1926
+ key: 0,
1927
+ label: "分类"
1928
+ }, {
1929
+ default: b(() => [
1930
+ P(at, {
1931
+ modelValue: C.category,
1932
+ "onUpdate:modelValue": s[1] || (s[1] = (w) => C.category = w),
1933
+ class: "qy-selection-dialog__category",
1934
+ options: H.value,
1935
+ clearable: "",
1936
+ filterable: "",
1937
+ "check-strictly": "",
1938
+ "render-after-expand": !1,
1939
+ onChange: f
1940
+ }, null, 8, ["modelValue", "options"])
1941
+ ]),
1942
+ _: 1
1943
+ })) : A("", !0),
1944
+ E.value.length ? (g(), oe(S(Se), {
1945
+ key: 1,
1946
+ label: "类型"
1947
+ }, {
1948
+ default: b(() => [
1949
+ P(Me, be({
1950
+ modelValue: C.type,
1951
+ "onUpdate:modelValue": s[2] || (s[2] = (w) => C.type = w),
1952
+ class: "qy-selection-dialog__type",
1953
+ options: E.value,
1954
+ placeholder: "请选择类型",
1955
+ clearable: ""
1956
+ }, ee.value, { onChange: f }), null, 16, ["modelValue", "options"])
1957
+ ]),
1958
+ _: 1
1959
+ })) : A("", !0),
1960
+ e.searchKey ? (g(), oe(S(Se), {
1961
+ key: 2,
1962
+ label: "搜索"
1963
+ }, {
1964
+ default: b(() => [
1965
+ P(S(Ae), {
1966
+ modelValue: C[e.searchKey],
1967
+ "onUpdate:modelValue": s[3] || (s[3] = (w) => C[e.searchKey] = w),
1968
+ clearable: "",
1969
+ placeholder: "请输入",
1970
+ class: "qy-selection-dialog__search-input",
1971
+ onKeydown: Re(de(f, ["prevent"]), ["enter"])
1972
+ }, null, 8, ["modelValue", "onKeydown"])
1973
+ ]),
1974
+ _: 1
1975
+ })) : A("", !0),
1976
+ P(S(Se), null, {
1977
+ default: b(() => [
1978
+ P(S(me), {
1979
+ type: "primary",
1980
+ onClick: f
1981
+ }, {
1982
+ default: b(() => [...s[13] || (s[13] = [
1983
+ fe("查询", -1)
1984
+ ])]),
1985
+ _: 1
1986
+ }),
1987
+ P(S(me), { onClick: _ }, {
1988
+ default: b(() => [...s[14] || (s[14] = [
1989
+ fe("重置", -1)
1990
+ ])]),
1991
+ _: 1
1992
+ })
1993
+ ]),
1994
+ _: 1
1995
+ })
1996
+ ], !0)
1997
+ ]),
1998
+ _: 3
1999
+ }, 8, ["model"]),
2000
+ h.value ? (g(), I("div", Ol, [
2001
+ W.value ? (g(), oe(S(me), {
2002
+ key: 0,
2003
+ type: "primary",
2004
+ onClick: ne
2005
+ }, {
2006
+ default: b(() => [...s[15] || (s[15] = [
2007
+ fe(" 新增 ", -1)
2008
+ ])]),
2009
+ _: 1
2010
+ })) : A("", !0),
2011
+ x(n.$slots, "toolbar", {
2012
+ query: C,
2013
+ search: f
2014
+ }, void 0, !0),
2015
+ x(n.$slots, "bar", {
2016
+ query: C,
2017
+ search: f
2018
+ }, void 0, !0)
2019
+ ])) : A("", !0)
2020
+ ])) : A("", !0),
2021
+ Fe((g(), oe(S(Fa), be({
2022
+ ref_key: "tableRef",
2023
+ ref: d,
2024
+ data: M.value,
2025
+ "row-key": Z.value,
2026
+ border: "",
2027
+ "highlight-current-row": "",
2028
+ "max-height": "550px"
2029
+ }, K.value, {
2030
+ onSelectionChange: l,
2031
+ onRowClick: L
2032
+ }), {
2033
+ default: b(() => {
2034
+ var w;
2035
+ return [
2036
+ D.value === "multiple" ? (g(), oe(S(Da), {
2037
+ key: 0,
2038
+ type: "selection",
2039
+ "reserve-selection": "",
2040
+ width: "42",
2041
+ selectable: (w = K.value) == null ? void 0 : w.selectable
2042
+ }, null, 8, ["selectable"])) : A("", !0),
2043
+ x(n.$slots, "columns", {}, void 0, !0),
2044
+ x(n.$slots, "cols", {}, void 0, !0)
2045
+ ];
2046
+ }),
2047
+ _: 3
2048
+ }, 16, ["data", "row-key"])), [
2049
+ [O, F.value]
2050
+ ]),
2051
+ e.showPagination && z.value > 0 ? (g(), I("div", _l, [
2052
+ P(S(Ra), {
2053
+ "current-page": C.page,
2054
+ "onUpdate:currentPage": s[4] || (s[4] = (w) => C.page = w),
2055
+ "page-size": C.pageSize,
2056
+ "onUpdate:pageSize": s[5] || (s[5] = (w) => C.pageSize = w),
2057
+ total: z.value,
2058
+ "page-sizes": e.pageSizes,
2059
+ layout: "total, sizes, prev, pager, next, jumper",
2060
+ onSizeChange: $,
2061
+ onCurrentChange: r
2062
+ }, null, 8, ["current-page", "page-size", "total", "page-sizes"])
2063
+ ])) : A("", !0)
2064
+ ])
2065
+ ]),
2066
+ P(Pe, {
2067
+ open: G.value,
2068
+ title: "粘贴数据",
2069
+ "show-footer": !1,
2070
+ width: "560px",
2071
+ "onUpdate:open": s[8] || (s[8] = (w) => G.value = w)
2072
+ }, {
2073
+ default: b(() => [
2074
+ P(S(Ae), {
2075
+ modelValue: U.value,
2076
+ "onUpdate:modelValue": s[6] || (s[6] = (w) => U.value = w),
2077
+ type: "textarea",
2078
+ rows: 8
2079
+ }, null, 8, ["modelValue"]),
2080
+ q("div", Pl, [
2081
+ P(S(me), {
2082
+ onClick: s[7] || (s[7] = (w) => G.value = !1)
2083
+ }, {
2084
+ default: b(() => [...s[16] || (s[16] = [
2085
+ fe("取消", -1)
2086
+ ])]),
2087
+ _: 1
2088
+ }),
2089
+ P(S(me), {
2090
+ type: "primary",
2091
+ onClick: ka
2092
+ }, {
2093
+ default: b(() => [...s[17] || (s[17] = [
2094
+ fe("确认", -1)
2095
+ ])]),
2096
+ _: 1
2097
+ })
2098
+ ])
2099
+ ]),
2100
+ _: 1
2101
+ }, 8, ["open"])
2102
+ ]),
2103
+ _: 3
2104
+ }, 8, ["open", "title", "width"]);
2105
+ };
2106
+ }
2107
+ }), rt = /* @__PURE__ */ $e(Fl, [["__scopeId", "data-v-cf39627e"]]), Dl = /* @__PURE__ */ we({
2108
+ name: "QyLegacySelectionDialog",
2109
+ inheritAttrs: !1,
2110
+ __name: "index",
2111
+ props: {
2112
+ open: { type: Boolean, default: !0 },
2113
+ title: { default: "选择数据" },
2114
+ width: { default: "1200px" },
2115
+ query: { type: Function, default: void 0 },
2116
+ responseFormatter: { type: Function, default: void 0 },
2117
+ selection: { default: "single" },
2118
+ selected: { default: () => [] },
2119
+ mainKey: { default: "" },
2120
+ tagName: { default: "" },
2121
+ searchKey: { default: "conditions" },
2122
+ queryParams: { default: () => ({}) },
2123
+ category: { type: [Array, Function, Boolean], default: !1 },
2124
+ categoryFormatter: { type: [Function, Array], default: void 0 },
2125
+ type: { type: [Array, Boolean], default: !1 },
2126
+ typeSelectionProps: { default: () => ({}) },
2127
+ tableProps: { default: () => ({}) },
2128
+ append: { type: Boolean, default: !1 },
2129
+ delete: { type: Boolean, default: !1 },
2130
+ select: { default: null }
2131
+ },
2132
+ emits: ["close", "submit", "openDialog", "changeIndexShow"],
2133
+ setup(e, { expose: R, emit: Y }) {
2134
+ const t = e, o = Y, ae = ke(), B = T(null), y = Oe({
2135
+ category: [],
2136
+ code: "",
2137
+ ...t.searchKey ? { [t.searchKey]: "" } : {},
2138
+ page: 1,
2139
+ pageSize: 10,
2140
+ type: "",
2141
+ ...t.queryParams
2142
+ }), d = Oe({
2143
+ total: 0,
2144
+ tableData: [],
2145
+ open: !1,
2146
+ selection: [],
2147
+ categories: [],
2148
+ types: [],
2149
+ tableRef: null,
2150
+ drag: !1,
2151
+ dialogOpen: !1,
2152
+ pasteData: "",
2153
+ pasteDataDialog: !1
2154
+ }), M = V(() => t.type || []), k = V(() => d.categories), H = async (r) => {
2155
+ if (!t.query) return { data: { records: [], total: 0 } };
2156
+ const f = await t.query(ee(r)), $ = t.responseFormatter ? await t.responseFormatter(f) : f;
2157
+ return d.total = N($), $;
2158
+ };
2159
+ re(
2160
+ () => t.open,
2161
+ (r) => {
2162
+ d.open = r;
2163
+ },
2164
+ { immediate: !0 }
2165
+ ), re(
2166
+ M,
2167
+ (r) => {
2168
+ d.types = [...r];
2169
+ },
2170
+ { immediate: !0, deep: !0 }
2171
+ ), re(
2172
+ [() => t.selected, () => t.open],
2173
+ () => {
2174
+ t.open && (d.selection = te(t.selected));
2175
+ },
2176
+ { immediate: !0, deep: !0 }
2177
+ ), re(
2178
+ () => t.queryParams,
2179
+ () => {
2180
+ Object.assign(y, t.queryParams);
2181
+ },
2182
+ { deep: !0 }
2183
+ ), re(
2184
+ () => d.pasteDataDialog,
2185
+ (r) => {
2186
+ r || (d.pasteData = "");
2187
+ }
2188
+ ), re(
2189
+ () => t.select,
2190
+ async () => {
2191
+ t.select && await E(t.select);
2192
+ },
2193
+ { deep: !0 }
2194
+ ), re(
2195
+ () => t.open,
2196
+ async (r) => {
2197
+ r && (d.dialogOpen = !1, await F());
2198
+ },
2199
+ { immediate: !0 }
2200
+ );
2201
+ async function F() {
2202
+ if (!t.category) {
2203
+ d.categories = [];
2204
+ return;
2205
+ }
2206
+ const r = typeof t.category == "function" ? await t.category() : t.category;
2207
+ d.categories = h(r);
2208
+ }
2209
+ async function z() {
2210
+ var r;
2211
+ return await Ie(), (r = B.value) == null ? void 0 : r.handleQuerySearch();
2212
+ }
2213
+ function G(r) {
2214
+ d.selection = te(r);
2215
+ }
2216
+ function U(r) {
2217
+ var f;
2218
+ d.tableData = r, d.tableRef = (f = B.value) == null ? void 0 : f.getTableRef();
2219
+ }
2220
+ function C(r) {
2221
+ d.selection = te(r), o("submit", d);
2222
+ }
2223
+ function D() {
2224
+ o("close");
2225
+ }
2226
+ function Z() {
2227
+ d.dialogOpen = !0, o("openDialog");
2228
+ }
2229
+ function le(r) {
2230
+ o("changeIndexShow", r);
2231
+ }
2232
+ async function E(r) {
2233
+ if (!t.query || !t.searchKey || !t.mainKey) return;
2234
+ const f = await t.query({
2235
+ ...y,
2236
+ [t.searchKey]: r[t.mainKey],
2237
+ category: []
2238
+ }), $ = t.responseFormatter ? await t.responseFormatter(f) : f, [_] = c($);
2239
+ _ && (t.selection === "multi" ? (d.selection = d.selection.filter(
2240
+ (ne) => ne[t.mainKey] !== _[t.mainKey]
2241
+ ), d.selection.push(_)) : d.selection = [_]);
2242
+ }
2243
+ function ee(r = {}) {
2244
+ y.page = r.page ?? y.page, y.pageSize = r.pageSize ?? y.pageSize;
2245
+ const f = {
2246
+ ...y,
2247
+ category: K()
2248
+ };
2249
+ return t.searchKey && (f[t.searchKey] = String(f[t.searchKey] || "").trim()), f;
2250
+ }
2251
+ function K() {
2252
+ if (t.queryParams.category)
2253
+ return t.queryParams.category;
2254
+ const r = y.category;
2255
+ if (Array.isArray(r)) return r;
2256
+ if (!r) return [];
2257
+ const f = J(d.categories, r);
2258
+ return f ? W(f) : [r];
2259
+ }
2260
+ function J(r, f) {
2261
+ for (const $ of r || []) {
2262
+ if ($.value === f) return $;
2263
+ const _ = J($.children || [], f);
2264
+ if (_) return _;
2265
+ }
2266
+ }
2267
+ function W(r) {
2268
+ return [r.value, ...(r.children || []).flatMap(W)];
2269
+ }
2270
+ function h(r) {
2271
+ const f = (r == null ? void 0 : r.data) ?? r;
2272
+ if (!Array.isArray(f)) return [];
2273
+ if (typeof t.categoryFormatter == "function")
2274
+ return t.categoryFormatter(f);
2275
+ if (Array.isArray(t.categoryFormatter)) {
2276
+ const [$, _] = t.categoryFormatter;
2277
+ return a(Q(f, _), $, _);
2278
+ }
2279
+ return f;
2280
+ }
2281
+ function Q(r, f) {
2282
+ const $ = r.map((ne) => ({ ...ne })), _ = [];
2283
+ return $.forEach((ne) => {
2284
+ const ge = ne.parentCateCode;
2285
+ if (!ge) {
2286
+ _.push(ne);
2287
+ return;
2288
+ }
2289
+ const ie = $.find((he) => he[f] === ge);
2290
+ ie ? (ie.children || (ie.children = [])).push(ne) : _.push(ne);
2291
+ }), _;
2292
+ }
2293
+ function a(r, f, $) {
2294
+ return r.map((_) => ({
2295
+ ..._,
2296
+ label: _[f],
2297
+ value: _[$],
2298
+ children: Array.isArray(_.children) ? a(_.children, f, $) : _.children
2299
+ }));
2300
+ }
2301
+ function c(r) {
2302
+ if (Array.isArray(r)) return r;
2303
+ const f = r == null ? void 0 : r.data;
2304
+ return Array.isArray(f) ? f : (r == null ? void 0 : r.records) || (r == null ? void 0 : r.rows) || (f == null ? void 0 : f.records) || [];
2305
+ }
2306
+ function N(r) {
2307
+ if (Array.isArray(r)) return r.length;
2308
+ const f = c(r), $ = r == null ? void 0 : r.data;
2309
+ return (r == null ? void 0 : r.total) ?? (Array.isArray($) ? $.length : $ == null ? void 0 : $.total) ?? f.length;
2310
+ }
2311
+ function te(r = []) {
2312
+ return r.map((f) => ({ ...f }));
2313
+ }
2314
+ return R({
2315
+ search: z,
2316
+ handleSearch: z,
2317
+ handleConditionChange: z,
2318
+ getTableRef: () => d.tableRef,
2319
+ getTableData: () => d.tableData,
2320
+ getSelection: () => te(d.selection)
2321
+ }), (r, f) => (g(), I(Ve, null, [
2322
+ P(rt, be({
2323
+ ref_key: "selectionDialogRef",
2324
+ ref: B
2325
+ }, S(ae), {
2326
+ modelValue: d.selection,
2327
+ "onUpdate:modelValue": f[3] || (f[3] = ($) => d.selection = $),
2328
+ open: e.open,
2329
+ title: e.title,
2330
+ width: e.width,
2331
+ query: H,
2332
+ "response-formatter": e.responseFormatter,
2333
+ selection: e.selection,
2334
+ "row-key": e.mainKey,
2335
+ "label-key": e.tagName,
2336
+ "search-key": e.searchKey,
2337
+ "query-params": {},
2338
+ "category-options": k.value,
2339
+ "type-options": M.value,
2340
+ "type-select-props": e.typeSelectionProps,
2341
+ "table-props": e.tableProps,
2342
+ "show-copy-paste": !0,
2343
+ "show-append": e.append,
2344
+ onSelectionChange: G,
2345
+ onConfirm: C,
2346
+ onCancel: D,
2347
+ onAppend: Z,
2348
+ onLoaded: U
2349
+ }), {
2350
+ side: b(() => [
2351
+ x(r.$slots, "side", {
2352
+ state: d,
2353
+ cate: d.categories,
2354
+ form: y,
2355
+ query: y,
2356
+ getData: z,
2357
+ search: z,
2358
+ changeIndexShow: le
2359
+ }, void 0, !0)
2360
+ ]),
2361
+ search: b(() => [
2362
+ P(S(tt), {
2363
+ inline: "",
2364
+ model: y
2365
+ }, {
2366
+ default: b(() => [
2367
+ d.categories.length ? (g(), oe(S(Se), {
2368
+ key: 0,
2369
+ label: "分类"
2370
+ }, {
2371
+ default: b(() => [
2372
+ P(S(Ma), {
2373
+ modelValue: y.category,
2374
+ "onUpdate:modelValue": f[0] || (f[0] = ($) => y.category = $),
2375
+ class: "qy-legacy-selection-dialog__category",
2376
+ data: d.categories,
2377
+ clearable: "",
2378
+ filterable: "",
2379
+ "check-strictly": "",
2380
+ "render-after-expand": !1,
2381
+ onChange: z
2382
+ }, null, 8, ["modelValue", "data"])
2383
+ ]),
2384
+ _: 1
2385
+ })) : A("", !0),
2386
+ M.value.length ? (g(), oe(S(Se), {
2387
+ key: 1,
2388
+ label: "类型"
2389
+ }, {
2390
+ default: b(() => [
2391
+ P(S(Ye), be({
2392
+ modelValue: y.type,
2393
+ "onUpdate:modelValue": f[1] || (f[1] = ($) => y.type = $),
2394
+ clearable: ""
2395
+ }, e.typeSelectionProps, { onChange: z }), {
2396
+ default: b(() => [
2397
+ (g(!0), I(Ve, null, De(M.value, ($) => (g(), oe(S(et), {
2398
+ key: $.value,
2399
+ label: $.label,
2400
+ value: $.value
2401
+ }, null, 8, ["label", "value"]))), 128))
2402
+ ]),
2403
+ _: 1
2404
+ }, 16, ["modelValue"])
2405
+ ]),
2406
+ _: 1
2407
+ })) : A("", !0),
2408
+ e.searchKey ? (g(), oe(S(Se), {
2409
+ key: 2,
2410
+ label: "搜索"
2411
+ }, {
2412
+ default: b(() => [
2413
+ P(S(Ae), {
2414
+ modelValue: y[e.searchKey],
2415
+ "onUpdate:modelValue": f[2] || (f[2] = ($) => y[e.searchKey] = $),
2416
+ clearable: "",
2417
+ class: "qy-legacy-selection-dialog__search-input",
2418
+ onKeydown: Re(de(z, ["prevent"]), ["enter"])
2419
+ }, null, 8, ["modelValue", "onKeydown"])
2420
+ ]),
2421
+ _: 1
2422
+ })) : A("", !0),
2423
+ P(S(Se), null, {
2424
+ default: b(() => [
2425
+ P(S(me), {
2426
+ type: "primary",
2427
+ onClick: z
2428
+ }, {
2429
+ default: b(() => [...f[4] || (f[4] = [
2430
+ fe("查询", -1)
2431
+ ])]),
2432
+ _: 1
2433
+ })
2434
+ ]),
2435
+ _: 1
2436
+ })
2437
+ ]),
2438
+ _: 1
2439
+ }, 8, ["model"])
2440
+ ]),
2441
+ toolbar: b(() => [
2442
+ x(r.$slots, "bar", {
2443
+ query: y,
2444
+ search: z
2445
+ }, void 0, !0)
2446
+ ]),
2447
+ columns: b(() => [
2448
+ x(r.$slots, "cols", {}, void 0, !0),
2449
+ x(r.$slots, "columns", {}, void 0, !0)
2450
+ ]),
2451
+ _: 3
2452
+ }, 16, ["modelValue", "open", "title", "width", "response-formatter", "selection", "row-key", "label-key", "search-key", "category-options", "type-options", "type-select-props", "table-props", "show-append"]),
2453
+ x(r.$slots, "dialog", {
2454
+ state: d,
2455
+ form: y,
2456
+ getData: z
2457
+ }, void 0, !0)
2458
+ ], 64));
2459
+ }
2460
+ }), Rl = /* @__PURE__ */ $e(Dl, [["__scopeId", "data-v-b54ca11b"]]), Ml = { class: "qy-form-section__heading" }, El = {
2461
+ key: 0,
2462
+ class: "qy-form-section__title"
2463
+ }, Ll = {
2464
+ key: 0,
2465
+ class: "qy-form-section__description"
2466
+ }, Kl = { class: "qy-form-section__actions" }, Ul = /* @__PURE__ */ we({
2467
+ name: "QyFormSection",
2468
+ __name: "index",
2469
+ props: {
2470
+ title: { default: "" },
2471
+ description: { default: "" },
2472
+ tip: { default: "" },
2473
+ tipType: { default: "info" },
2474
+ collapsible: { type: Boolean, default: !1 },
2475
+ defaultExpanded: { type: Boolean, default: !0 },
2476
+ bordered: { type: Boolean, default: !0 },
2477
+ background: { default: "white" },
2478
+ bodyClass: { default: "" },
2479
+ headerClass: { default: "" }
2480
+ },
2481
+ emits: ["toggle"],
2482
+ setup(e, { emit: R }) {
2483
+ const Y = e, t = R, o = T(Y.defaultExpanded);
2484
+ re(
2485
+ () => Y.defaultExpanded,
2486
+ (y) => {
2487
+ o.value = y;
2488
+ }
2489
+ );
2490
+ function ae() {
2491
+ Y.collapsible && (o.value = !o.value, t("toggle", o.value));
2492
+ }
2493
+ function B() {
2494
+ Y.collapsible && ae();
2495
+ }
2496
+ return (y, d) => (g(), I("section", {
2497
+ class: ye(["qy-form-section", [
2498
+ `is-bg-${e.background}`,
2499
+ {
2500
+ "is-bordered": e.bordered,
2501
+ "is-collapsible": e.collapsible
2502
+ }
2503
+ ]])
2504
+ }, [
2505
+ q("header", {
2506
+ class: ye(["qy-form-section__header", e.headerClass]),
2507
+ onClick: B
2508
+ }, [
2509
+ q("div", Ml, [
2510
+ x(y.$slots, "title", {}, () => [
2511
+ e.title ? (g(), I("div", El, pe(e.title), 1)) : A("", !0)
2512
+ ], !0),
2513
+ x(y.$slots, "description", {}, () => [
2514
+ e.description ? (g(), I("div", Ll, pe(e.description), 1)) : A("", !0)
2515
+ ], !0)
2516
+ ]),
2517
+ q("div", Kl, [
2518
+ x(y.$slots, "actions", {}, void 0, !0),
2519
+ e.collapsible ? (g(), I("button", {
2520
+ key: 0,
2521
+ type: "button",
2522
+ class: "qy-form-section__toggle",
2523
+ onClick: de(ae, ["stop"])
2524
+ }, pe(o.value ? "收起" : "展开"), 1)) : A("", !0)
2525
+ ])
2526
+ ], 2),
2527
+ Fe(q("div", {
2528
+ class: ye(["qy-form-section__body", e.bodyClass])
2529
+ }, [
2530
+ x(y.$slots, "tip", {}, () => [
2531
+ e.tip ? (g(), I("div", {
2532
+ key: 0,
2533
+ class: ye(["qy-form-section__tip", `is-${e.tipType}`])
2534
+ }, pe(e.tip), 3)) : A("", !0)
2535
+ ], !0),
2536
+ x(y.$slots, "default", {}, void 0, !0)
2537
+ ], 2), [
2538
+ [Ge, o.value]
2539
+ ])
2540
+ ], 2));
2541
+ }
2542
+ }), Nl = /* @__PURE__ */ $e(Ul, [["__scopeId", "data-v-8149aa01"]]), jl = {
2543
+ key: 0,
2544
+ class: "qy-action-bar__left"
2545
+ }, Hl = {
2546
+ key: 1,
2547
+ class: "qy-action-bar__center"
2548
+ }, Zl = {
2549
+ key: 2,
2550
+ class: "qy-action-bar__right"
2551
+ }, Wl = /* @__PURE__ */ we({
2552
+ name: "QyActionBar",
2553
+ __name: "index",
2554
+ props: {
2555
+ sticky: { type: Boolean, default: !0 },
2556
+ offsetBottom: { default: 0 },
2557
+ bordered: { type: Boolean, default: !0 },
2558
+ shadow: { type: Boolean, default: !1 },
2559
+ wrap: { type: Boolean, default: !0 },
2560
+ justify: { default: "between" },
2561
+ background: { default: "#fff" }
2562
+ },
2563
+ setup(e) {
2564
+ const R = e, Y = V(() => ({
2565
+ // offsetBottom 只负责业务偏移,安全区补偿由 CSS padding 处理。
2566
+ bottom: `${R.offsetBottom}px`,
2567
+ background: R.background
2568
+ }));
2569
+ return (t, o) => (g(), I("div", {
2570
+ class: ye(["qy-action-bar", [
2571
+ `is-justify-${e.justify}`,
2572
+ {
2573
+ "is-sticky": e.sticky,
2574
+ "is-bordered": e.bordered,
2575
+ "is-shadow": e.shadow,
2576
+ "is-wrap": e.wrap
2577
+ }
2578
+ ]]),
2579
+ style: qe(Y.value)
2580
+ }, [
2581
+ t.$slots.left ? (g(), I("div", jl, [
2582
+ x(t.$slots, "left", {}, void 0, !0)
2583
+ ])) : A("", !0),
2584
+ t.$slots.default ? (g(), I("div", Hl, [
2585
+ x(t.$slots, "default", {}, void 0, !0)
2586
+ ])) : A("", !0),
2587
+ t.$slots.right ? (g(), I("div", Zl, [
2588
+ x(t.$slots, "right", {}, void 0, !0)
2589
+ ])) : A("", !0)
2590
+ ], 6));
2591
+ }
2592
+ }), Gl = /* @__PURE__ */ $e(Wl, [["__scopeId", "data-v-ecba8f49"]]), st = m(je, "QyUpload"), it = m(Ca, "QyImage"), ut = m(xa, "QyImagePreview"), ct = m(Ho, "QyImageUpload"), dt = m(Pe, "QyDialog"), ft = m(gl, "QyRemarkImage"), mt = m(Ua, "QyButton"), yt = m(Na, "QyDropdown"), pt = m(ja, "QyInput"), gt = m(Ha, "QyInputTag"), ht = m(Za, "QyInputNumber"), vt = m(Wa, "QyMoneyInput"), bt = m(Ga, "QyDatePicker"), wt = m(Ja, "QyCheckbox"), Qt = m(Xa, "QyCheckboxGroup"), St = m(Ya, "QyRadio"), kt = m(eo, "QyAutocomplete"), $t = m(to, "QyMenuActions"), Ct = m(
2593
+ ao,
2594
+ "QyTableColumnSettings"
2595
+ ), xt = m(oo, "QyRadioGroup"), Bt = m(hl, "QyRemoteSelect"), qt = m(nt, "QySearchInput"), It = m(
2596
+ Bl,
2597
+ "QyRecordQuoteSearch"
2598
+ ), Vt = m(Me, "QySelect"), At = m(at, "QyTreeSelect"), Tt = m(rt, "QySelectionDialog"), zt = m(
2599
+ Rl,
2600
+ "QyLegacySelectionDialog"
2601
+ ), Ot = m(Nl, "QyFormSection"), _t = m(Gl, "QyActionBar"), Pt = m(lo, "QyFilePicker"), Ft = m(no, "QySwitch"), Dt = m(_e, "QyTag"), Rt = m(ro, "QyBadge"), Mt = m(so, "QyCascader"), Et = m(io, "QyTooltip"), Lt = m(uo, "QyPopover"), Kt = m(co, "QyPopconfirm"), Ut = m(fo, "QySkeleton"), Nt = m(mo, "QySkeletonItem"), jt = m(yo, "QyTabs"), Ht = m(po, "QyTabPane"), Zt = m(go, "QySteps"), Wt = m(ho, "QyStep"), Gt = m(vo, "QyFullscreen"), Jt = m(Qo, "QyRow"), Xt = m(So, "QyCol"), Yt = m(ko, "QyContainer"), ea = m($o, "QyAside"), ta = m(Co, "QyMain"), aa = m(xo, "QyDescriptions"), oa = m(Bo, "QyDescriptionsItem"), la = m(qo, "QyCollapse"), na = m(Io, "QyCollapseItem"), ra = m(Vo, "QyLink"), sa = m(Ao, "QyIframe"), ia = m(To, "QyDivider"), ua = m(zo, "QyEmpty"), ca = m(Oo, "QyAlert"), da = m(_o, "QyCard"), fa = m(Po, "QyResult"), ma = m(Fo, "QyWatermark"), ya = m(Do, "QyScrollbar"), pa = m(Ro, "QyProgress"), ga = m(Mo, "QyStatistic"), ha = m(Eo, "QyAvatar"), va = m(Lo, "QyTree"), ba = m(bo, "QyIconPicker"), wa = m(wo, "QyColorPicker"), Qa = m(Uo, "QyDrawer"), Jl = (e) => {
2602
+ lt.install(e), e.component("QyDialog", dt), e.component("QyDrawer", Qa), e.component("QyUpload", st), e.component("QyImage", it), e.component("QyImagePreview", ut), e.component("QyImageUpload", ct), e.component("QyRemarkImage", ft), e.component("QyButton", mt), e.component("QyDropdown", yt), e.component("QyInput", pt), e.component("QyInputTag", gt), e.component("QyInputNumber", ht), e.component("QyMoneyInput", vt), e.component("QyDatePicker", bt), e.component("QyCheckbox", wt), e.component("QyCheckboxGroup", Qt), e.component("QyRadio", St), e.component("QyAutocomplete", kt), e.component("QyMenuActions", $t), e.component("QyTableColumnSettings", Ct), e.component("QyRadioGroup", xt), e.component("QyRemoteSelect", Bt), e.component("QySearchInput", qt), e.component("QyRecordQuoteSearch", It), e.component("QySelect", Vt), e.component("QyTreeSelect", At), e.component("QySelectionDialog", Tt), e.component("QyLegacySelectionDialog", zt), e.component("QyFormSection", Ot), e.component("QyActionBar", _t), e.component("QyFilePicker", Pt), e.component("QySwitch", Ft), e.component("QyTag", Dt), e.component("QyBadge", Rt), e.component("QyCascader", Mt), e.component("QyTooltip", Et), e.component("QyPopover", Lt), e.component("QyPopconfirm", Kt), e.component("QySkeleton", Ut), e.component("QySkeletonItem", Nt), e.component("QyTabs", jt), e.component("QyTabPane", Ht), e.component("QySteps", Zt), e.component("QyStep", Wt), e.component("QyFullscreen", Gt), e.component("QyIcon", ot), e.component("QyIconPicker", ba), e.component("QyColorPicker", wa), e.component("QyRow", Jt), e.component("QyCol", Xt), e.component("QyContainer", Yt), e.component("QyAside", ea), e.component("QyMain", ta), e.component("QyDescriptions", aa), e.component("QyDescriptionsItem", oa), e.component("QyCollapse", la), e.component("QyCollapseItem", na), e.component("QyLink", ra), e.component("QyIframe", sa), e.component("QyDivider", ia), e.component("QyEmpty", ua), e.component("QyAlert", ca), e.component("QyCard", da), e.component("QyResult", fa), e.component("QyWatermark", ma), e.component("QyScrollbar", ya), e.component("QyProgress", pa), e.component("QyStatistic", ga), e.component("QyAvatar", ha), e.component("QyTree", va);
2603
+ }, gr = {
2604
+ install: Jl,
2605
+ QyUpload: st,
2606
+ QyImage: it,
2607
+ QyImagePreview: ut,
2608
+ openQyImagePreview: No,
2609
+ QyImageUpload: ct,
2610
+ QyDialog: dt,
2611
+ QyButton: mt,
2612
+ QyDropdown: yt,
2613
+ QyInput: pt,
2614
+ QyInputTag: gt,
2615
+ QyInputNumber: ht,
2616
+ QyMoneyInput: vt,
2617
+ QyDatePicker: bt,
2618
+ QyCheckbox: wt,
2619
+ QyCheckboxGroup: Qt,
2620
+ QyRadio: St,
2621
+ QyAutocomplete: kt,
2622
+ QyMenuActions: $t,
2623
+ QyTableColumnSettings: Ct,
2624
+ QyRadioGroup: xt,
2625
+ QyRemoteSelect: Bt,
2626
+ QySearchInput: qt,
2627
+ QyRecordQuoteSearch: It,
2628
+ QySelect: Vt,
2629
+ QyTreeSelect: At,
2630
+ QySelectionDialog: Tt,
2631
+ QyLegacySelectionDialog: zt,
2632
+ QyFormSection: Ot,
2633
+ QyActionBar: _t,
2634
+ QyFilePicker: Pt,
2635
+ QySwitch: Ft,
2636
+ QyTag: Dt,
2637
+ QyBadge: Rt,
2638
+ QyCascader: Mt,
2639
+ QyTooltip: Et,
2640
+ QyPopover: Lt,
2641
+ QyPopconfirm: Kt,
2642
+ QySkeleton: Ut,
2643
+ QySkeletonItem: Nt,
2644
+ QyTabs: jt,
2645
+ QyTabPane: Ht,
2646
+ QySteps: Zt,
2647
+ QyStep: Wt,
2648
+ QyFullscreen: Gt,
2649
+ QyDrawer: Qa,
2650
+ QyIcon: ot,
2651
+ QyIconPicker: ba,
2652
+ QyColorPicker: wa,
2653
+ QyRow: Jt,
2654
+ QyCol: Xt,
2655
+ QyContainer: Yt,
2656
+ QyAside: ea,
2657
+ QyMain: ta,
2658
+ QyDescriptions: aa,
2659
+ QyDescriptionsItem: oa,
2660
+ QyCollapse: la,
2661
+ QyCollapseItem: na,
2662
+ QyLink: ra,
2663
+ QyIframe: sa,
2664
+ QyDivider: ia,
2665
+ QyEmpty: ua,
2666
+ QyAlert: ca,
2667
+ QyCard: da,
2668
+ QyResult: fa,
2669
+ QyWatermark: ma,
2670
+ QyScrollbar: ya,
2671
+ QyProgress: pa,
2672
+ QyStatistic: ga,
2673
+ QyAvatar: ha,
2674
+ QyTree: va,
2675
+ QyRemarkImage: ft,
2676
+ QyLoading: lt,
2677
+ vQyLoading: Ko,
2678
+ openQyLoading: jo
2679
+ };
2680
+ export {
2681
+ Tt as $,
2682
+ ba as A,
2683
+ sa as B,
2684
+ it as C,
2685
+ ut as D,
2686
+ ct as E,
2687
+ pt as F,
2688
+ ht as G,
2689
+ gt as H,
2690
+ zt as I,
2691
+ ra as J,
2692
+ ta as K,
2693
+ $t as L,
2694
+ vt as M,
2695
+ Kt as N,
2696
+ Lt as O,
2697
+ pa as P,
2698
+ _t as Q,
2699
+ St as R,
2700
+ xt as S,
2701
+ It as T,
2702
+ ft as U,
2703
+ Bt as V,
2704
+ fa as W,
2705
+ Jt as X,
2706
+ ya as Y,
2707
+ qt as Z,
2708
+ Vt as _,
2709
+ ca as a,
2710
+ Ut as a0,
2711
+ Nt as a1,
2712
+ ga as a2,
2713
+ Wt as a3,
2714
+ Zt as a4,
2715
+ Ft as a5,
2716
+ Ht as a6,
2717
+ Ct as a7,
2718
+ jt as a8,
2719
+ Dt as a9,
2720
+ Et as aa,
2721
+ va as ab,
2722
+ At as ac,
2723
+ st as ad,
2724
+ ma as ae,
2725
+ gr as af,
2726
+ nl as ag,
2727
+ Ue as ah,
2728
+ Ne as ai,
2729
+ ea as b,
2730
+ kt as c,
2731
+ ha as d,
2732
+ Rt as e,
2733
+ mt as f,
2734
+ da as g,
2735
+ Mt as h,
2736
+ wt as i,
2737
+ Qt as j,
2738
+ Xt as k,
2739
+ la as l,
2740
+ na as m,
2741
+ wa as n,
2742
+ Yt as o,
2743
+ bt as p,
2744
+ aa as q,
2745
+ oa as r,
2746
+ dt as s,
2747
+ ia as t,
2748
+ Qa as u,
2749
+ yt as v,
2750
+ ua as w,
2751
+ Pt as x,
2752
+ Ot as y,
2753
+ Gt as z
2754
+ };