@qynpm/ui 1.0.4 → 1.0.5

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 (82) hide show
  1. package/README.md +228 -59
  2. package/dist/index.cjs +1 -1
  3. package/dist/index.mjs +19 -15
  4. package/dist/lib/dialog/index.vue.cjs +1 -1
  5. package/dist/lib/dialog/index.vue.mjs +24 -25
  6. package/dist/lib/dialog/index.vue3.cjs +1 -0
  7. package/dist/lib/dialog/index.vue3.mjs +5 -0
  8. package/dist/lib/index.cjs +1 -1
  9. package/dist/lib/index.mjs +43 -30
  10. package/dist/lib/qy-action-bar/index.vue.cjs +1 -1
  11. package/dist/lib/qy-action-bar/index.vue.mjs +4 -53
  12. package/dist/lib/qy-action-bar/index.vue2.cjs +1 -0
  13. package/dist/lib/qy-action-bar/index.vue2.mjs +55 -0
  14. package/dist/lib/qy-form-section/index.vue.cjs +1 -1
  15. package/dist/lib/qy-form-section/index.vue.mjs +4 -86
  16. package/dist/lib/qy-form-section/index.vue2.cjs +1 -0
  17. package/dist/lib/qy-form-section/index.vue2.mjs +87 -0
  18. package/dist/lib/qy-input/index.vue.mjs +2 -1
  19. package/dist/lib/qy-input/index.vue2.cjs +1 -0
  20. package/dist/lib/qy-input/index.vue2.mjs +4 -0
  21. package/dist/lib/qy-money-input/index.vue.cjs +1 -0
  22. package/dist/lib/qy-money-input/index.vue.mjs +171 -0
  23. package/dist/lib/qy-money-input/index.vue2.cjs +1 -0
  24. package/dist/lib/qy-money-input/index.vue2.mjs +4 -0
  25. package/dist/lib/qy-radio-group/index.vue.cjs +1 -0
  26. package/dist/lib/qy-radio-group/index.vue.mjs +90 -0
  27. package/dist/lib/qy-radio-group/index.vue2.cjs +1 -0
  28. package/dist/lib/qy-radio-group/index.vue2.mjs +4 -0
  29. package/dist/lib/qy-record-quote-search/index.vue.cjs +1 -1
  30. package/dist/lib/qy-record-quote-search/index.vue.mjs +4 -203
  31. package/dist/lib/qy-record-quote-search/index.vue2.cjs +1 -0
  32. package/dist/lib/qy-record-quote-search/index.vue2.mjs +204 -0
  33. package/dist/lib/qy-remote-select/index.vue.cjs +1 -0
  34. package/dist/lib/qy-remote-select/index.vue.mjs +214 -0
  35. package/dist/lib/qy-remote-select/index.vue2.cjs +1 -0
  36. package/dist/lib/qy-remote-select/index.vue2.mjs +4 -0
  37. package/dist/lib/qy-search-input/index.vue.cjs +1 -1
  38. package/dist/lib/qy-search-input/index.vue.mjs +4 -274
  39. package/dist/lib/qy-search-input/index.vue2.cjs +1 -0
  40. package/dist/lib/qy-search-input/index.vue2.mjs +276 -0
  41. package/dist/lib/qy-select/index.vue.cjs +1 -1
  42. package/dist/lib/qy-select/index.vue.mjs +80 -55
  43. package/dist/lib/qy-select/index.vue2.cjs +1 -0
  44. package/dist/lib/qy-select/index.vue2.mjs +4 -0
  45. package/dist/lib/qy-voucher-upload/index.vue.cjs +1 -0
  46. package/dist/lib/qy-voucher-upload/index.vue.mjs +123 -0
  47. package/dist/lib/remark-image/index.vue.cjs +1 -1
  48. package/dist/lib/remark-image/index.vue.mjs +4 -195
  49. package/dist/lib/remark-image/index.vue2.cjs +1 -0
  50. package/dist/lib/remark-image/index.vue2.mjs +197 -0
  51. package/dist/lib/upload/index.vue.cjs +1 -1
  52. package/dist/lib/upload/index.vue.mjs +317 -217
  53. package/dist/lib/utils/auth.cjs +1 -1
  54. package/dist/lib/utils/auth.mjs +1 -1
  55. package/dist/node_modules/.pnpm/{js-cookie@3.0.1 → js-cookie@3.0.5}/node_modules/js-cookie/dist/js.cookie.cjs +1 -1
  56. package/dist/node_modules/.pnpm/{js-cookie@3.0.1 → js-cookie@3.0.5}/node_modules/js-cookie/dist/js.cookie.mjs +6 -6
  57. package/dist/qy-dialog/index.cjs +1 -1
  58. package/dist/qy-dialog/index.mjs +3 -2
  59. package/dist/qy-input/index.cjs +1 -1
  60. package/dist/qy-money-input/index.cjs +1 -0
  61. package/dist/qy-money-input/index.mjs +6 -0
  62. package/dist/qy-radio-group/index.cjs +1 -0
  63. package/dist/qy-radio-group/index.mjs +6 -0
  64. package/dist/qy-remark-image/index.cjs +1 -1
  65. package/dist/qy-remark-image/index.mjs +1 -1
  66. package/dist/qy-remote-select/index.cjs +1 -0
  67. package/dist/qy-remote-select/index.mjs +6 -0
  68. package/dist/qy-select/index.cjs +1 -1
  69. package/dist/qy-voucher-upload/index.cjs +1 -0
  70. package/dist/qy-voucher-upload/index.mjs +6 -0
  71. package/index.d.ts +20 -11
  72. package/package.json +25 -1
  73. package/qy-money-input/index.d.ts +12 -0
  74. package/qy-money-input/index.js +15 -0
  75. package/qy-radio-group/index.d.ts +12 -0
  76. package/qy-radio-group/index.js +15 -0
  77. package/qy-remote-select/index.d.ts +12 -0
  78. package/qy-remote-select/index.js +15 -0
  79. package/qy-voucher-upload/index.d.ts +12 -0
  80. package/qy-voucher-upload/index.js +15 -0
  81. /package/dist/_virtual/{plugin-vue_export-helper.cjs → _plugin-vue_export-helper.cjs} +0 -0
  82. /package/dist/_virtual/{plugin-vue_export-helper.mjs → _plugin-vue_export-helper.mjs} +0 -0
@@ -1,198 +1,7 @@
1
- import { defineComponent as N, useAttrs as j, ref as f, computed as B, watch as I, onMounted as K, nextTick as M, onUnmounted as O, createElementBlock as p, openBlock as v, normalizeStyle as W, createElementVNode as u, createVNode as g, unref as n, mergeProps as $, withCtx as h, createTextVNode as Q } from "vue";
2
- import { ElMessage as w, ElInput as G, ElPopover as H, ElButton as J, ElUpload as X } from "element-plus";
3
- import Y from "../../node_modules/.pnpm/js-cookie@3.0.1/node_modules/js-cookie/dist/js.cookie.mjs";
4
- import { parseRemarkText as T, parseRemarkWithImage as q, formatRemarkText as Z } from "./utils.mjs";
1
+ import a from "./index.vue2.mjs";
5
2
  /* empty css */
6
- import ee from "../../_virtual/plugin-vue_export-helper.mjs";
7
- const ae = { class: "qy-remark-image__field" }, te = { class: "qy-remark-image__upload-anchor" }, re = {
8
- key: 0,
9
- class: "icon-[line-md--loading-twotone-loop]",
10
- role: "img",
11
- "aria-hidden": "true"
12
- }, le = {
13
- key: 1,
14
- class: "icon-[ion--cloud-upload-outline]",
15
- role: "img",
16
- "aria-hidden": "true"
17
- }, oe = {
18
- key: 2,
19
- class: "icon-[ph--images-thin]",
20
- role: "img",
21
- "aria-hidden": "true"
22
- }, ue = { class: "qy-remark-image__popover" }, ie = ["src"], se = { class: "qy-remark-image__popover-footer" }, ne = N({
23
- __name: "index",
24
- props: {
25
- defaultValue: { default: "" },
26
- defaultImage: { default: "" },
27
- rows: { default: 6 },
28
- width: { default: "" },
29
- autosize: { type: [Boolean, Object], default: !1 },
30
- disabled: { type: Boolean, default: !1 },
31
- placeholder: { default: "粘贴图片上传" },
32
- type: { default: "textarea" },
33
- api: { default: "/permission-api/common/uploads" },
34
- tokenKey: { default: "Admin-Token" }
35
- },
36
- emits: ["change"],
37
- setup(z, { expose: V, emit: C }) {
38
- const r = z, D = C, U = j(), y = f(null), o = f(""), l = f(""), d = f(!1), P = B(
39
- () => r.type === "text" ? "text" : "textarea"
40
- ), R = B(() => {
41
- if (r.width)
42
- return {
43
- width: typeof r.width == "number" ? `${r.width}px` : r.width
44
- };
45
- });
46
- I(
47
- () => r.defaultValue,
48
- (e) => {
49
- const a = T(e || "");
50
- o.value = a.text, l.value = a.imageUrl || r.defaultImage || "";
51
- },
52
- { immediate: !0 }
53
- ), I(
54
- () => r.defaultImage,
55
- (e) => {
56
- e !== void 0 && !T(r.defaultValue || "").imageUrl && (l.value = e || "");
57
- },
58
- { immediate: !0 }
59
- ), K(() => {
60
- M(S);
61
- }), O(() => {
62
- const e = b();
63
- e && e.removeEventListener("paste", _);
64
- });
65
- function b() {
66
- var e, a;
67
- return ((e = y.value) == null ? void 0 : e.textarea) || ((a = y.value) == null ? void 0 : a.input) || null;
68
- }
69
- function S() {
70
- const e = b();
71
- e && (e.removeEventListener("paste", _), e.addEventListener("paste", _));
72
- }
73
- function L(e) {
74
- o.value = Z(e || "");
75
- }
76
- function x() {
77
- l.value = "", k();
78
- }
79
- async function _(e) {
80
- var s;
81
- const i = Array.from(((s = e.clipboardData) == null ? void 0 : s.files) || []).find((m) => m.type.startsWith("image/"));
82
- i && (e.preventDefault(), await F({
83
- file: i,
84
- onError: () => {
85
- },
86
- onProgress: () => {
87
- },
88
- onSuccess: () => {
89
- }
90
- }));
91
- }
92
- async function F(e) {
93
- var a, i, s, m;
94
- if (e.file.size > 51200 * 1e3)
95
- return w.error("图片过大"), !1;
96
- d.value = !0;
97
- try {
98
- const c = new FormData();
99
- c.append("files", e.file);
100
- const A = Y.get(r.tokenKey), t = await (await fetch(r.api, {
101
- method: "POST",
102
- body: c,
103
- credentials: "include",
104
- headers: A ? { Authorization: `Bearer ${A}` } : void 0
105
- })).json(), E = (t == null ? void 0 : t.urls) ?? ((a = t == null ? void 0 : t.data) == null ? void 0 : a.urls) ?? ((i = t == null ? void 0 : t.data) == null ? void 0 : i.url) ?? (t == null ? void 0 : t.url) ?? "";
106
- return l.value = Array.isArray(E) ? E[0] : E, k(), w.success("上传图片成功"), (s = e.onSuccess) == null || s.call(e, t), !0;
107
- } catch (c) {
108
- return (m = e.onError) == null || m.call(e, c), w.error("上传失败"), !1;
109
- } finally {
110
- d.value = !1;
111
- }
112
- }
113
- function k() {
114
- D(
115
- "change",
116
- q(o.value || "", l.value || ""),
117
- l.value || ""
118
- );
119
- }
120
- return V({
121
- deleteImage: x,
122
- getValue: () => ({
123
- text: o.value || "",
124
- imageUrl: l.value || "",
125
- value: q(o.value || "", l.value || "")
126
- })
127
- }), (e, a) => (v(), p("div", {
128
- class: "qy-remark-image",
129
- style: W(R.value)
130
- }, [
131
- u("div", ae, [
132
- g(n(G), $({
133
- ref_key: "inputRef",
134
- ref: y,
135
- "model-value": o.value,
136
- type: P.value,
137
- rows: e.rows,
138
- autosize: e.autosize,
139
- disabled: e.disabled,
140
- placeholder: e.placeholder
141
- }, n(U), {
142
- "onUpdate:modelValue": L,
143
- onBlur: k
144
- }), null, 16, ["model-value", "type", "rows", "autosize", "disabled", "placeholder"]),
145
- g(n(H), {
146
- placement: "top-start",
147
- width: 400,
148
- trigger: "hover",
149
- disabled: !l.value
150
- }, {
151
- reference: h(() => [
152
- u("div", te, [
153
- g(n(X), {
154
- disabled: d.value || e.disabled,
155
- class: "qy-remark-image__upload",
156
- "show-file-list": !1,
157
- "http-request": F
158
- }, {
159
- default: h(() => [
160
- d.value ? (v(), p("span", re)) : l.value ? (v(), p("span", oe)) : (v(), p("span", le))
161
- ]),
162
- _: 1
163
- }, 8, ["disabled"])
164
- ])
165
- ]),
166
- default: h(() => [
167
- u("div", ue, [
168
- u("img", {
169
- src: l.value,
170
- class: "qy-remark-image__preview-img"
171
- }, null, 8, ie),
172
- u("div", se, [
173
- a[1] || (a[1] = u("span", { class: "qy-remark-image__popover-tip" }, "再次点击按钮可更换图片", -1)),
174
- g(n(J), {
175
- link: "",
176
- size: "small",
177
- type: "danger",
178
- disabled: e.disabled,
179
- onClick: x
180
- }, {
181
- default: h(() => a[0] || (a[0] = [
182
- Q(" 删除图片 ", -1)
183
- ])),
184
- _: 1,
185
- __: [0]
186
- }, 8, ["disabled"])
187
- ])
188
- ])
189
- ]),
190
- _: 1
191
- }, 8, ["disabled"])
192
- ])
193
- ], 4));
194
- }
195
- }), he = /* @__PURE__ */ ee(ne, [["__scopeId", "data-v-3b943ab8"]]);
3
+ import o from "../../_virtual/_plugin-vue_export-helper.mjs";
4
+ const e = /* @__PURE__ */ o(a, [["__scopeId", "data-v-dd0a0a37"]]);
196
5
  export {
197
- he as default
6
+ e as default
198
7
  };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),n=require("element-plus"),z=require("../../node_modules/.pnpm/js-cookie@3.0.5/node_modules/js-cookie/dist/js.cookie.cjs"),u=require("./utils.cjs"),C={class:"qy-remark-image__field"},P={class:"qy-remark-image__upload-anchor"},R={key:0,class:"icon-[line-md--loading-twotone-loop]",role:"img","aria-hidden":"true"},S={key:1,class:"icon-[ion--cloud-upload-outline]",role:"img","aria-hidden":"true"},U={key:2,class:"icon-[ph--images-thin]",role:"img","aria-hidden":"true"},A={class:"qy-remark-image__popover"},M=["src"],j={class:"qy-remark-image__popover-footer"},D=e.defineComponent({__name:"index",props:{defaultValue:{default:""},defaultImage:{default:""},rows:{default:6},width:{default:""},autosize:{type:[Boolean,Object],default:!1},disabled:{type:Boolean,default:!1},placeholder:{default:"粘贴图片上传"},type:{default:"textarea"},api:{default:"/permission-api/common/uploads"},tokenKey:{default:"Admin-Token"}},emits:["change"],setup(E,{expose:b,emit:x}){const l=E,V=x,q=e.useAttrs(),p=e.ref(null),s=e.ref(""),o=e.ref(""),c=e.ref(!1),B=e.computed(()=>l.type==="text"?"text":"textarea"),T=e.computed(()=>{if(l.width)return{width:typeof l.width=="number"?`${l.width}px`:l.width}});e.watch(()=>l.defaultValue,a=>{const t=u.parseRemarkText(a||"");s.value=t.text,o.value=t.imageUrl||l.defaultImage||""},{immediate:!0}),e.watch(()=>l.defaultImage,a=>{a!==void 0&&!u.parseRemarkText(l.defaultValue||"").imageUrl&&(o.value=a||"")},{immediate:!0}),e.onMounted(()=>{e.nextTick(N)}),e.onUnmounted(()=>{const a=y();a&&a.removeEventListener("paste",v)});function y(){var a,t;return((a=p.value)==null?void 0:a.textarea)||((t=p.value)==null?void 0:t.input)||null}function N(){const a=y();a&&(a.removeEventListener("paste",v),a.addEventListener("paste",v))}function I(a){s.value=u.formatRemarkText(a||"")}function k(){o.value="",g()}async function v(a){var d;const i=Array.from(((d=a.clipboardData)==null?void 0:d.files)||[]).find(m=>m.type.startsWith("image/"));i&&(a.preventDefault(),await _({file:i,onError:()=>{},onProgress:()=>{},onSuccess:()=>{}}))}async function _(a){var t,i,d,m;if(a.file.size>51200*1e3)return n.ElMessage.error("图片过大"),!1;c.value=!0;try{const f=new FormData;f.append("files",a.file);const w=z.default.get(l.tokenKey),r=await(await fetch(l.api,{method:"POST",body:f,credentials:"include",headers:w?{Authorization:`Bearer ${w}`}:void 0})).json(),h=(r==null?void 0:r.urls)??((t=r==null?void 0:r.data)==null?void 0:t.urls)??((i=r==null?void 0:r.data)==null?void 0:i.url)??(r==null?void 0:r.url)??"";return o.value=Array.isArray(h)?h[0]:h,g(),n.ElMessage.success("上传图片成功"),(d=a.onSuccess)==null||d.call(a,r),!0}catch(f){return(m=a.onError)==null||m.call(a,f),n.ElMessage.error("上传失败"),!1}finally{c.value=!1}}function g(){V("change",u.parseRemarkWithImage(s.value||"",o.value||""),o.value||"")}return b({deleteImage:k,getValue:()=>({text:s.value||"",imageUrl:o.value||"",value:u.parseRemarkWithImage(s.value||"",o.value||"")})}),(a,t)=>(e.openBlock(),e.createElementBlock("div",{class:"qy-remark-image",style:e.normalizeStyle(T.value)},[e.createElementVNode("div",C,[e.createVNode(e.unref(n.ElInput),e.mergeProps({ref_key:"inputRef",ref:p,"model-value":s.value,type:B.value,rows:a.rows,autosize:a.autosize,disabled:a.disabled,placeholder:a.placeholder},e.unref(q),{"onUpdate:modelValue":I,onBlur:g}),null,16,["model-value","type","rows","autosize","disabled","placeholder"]),e.createVNode(e.unref(n.ElPopover),{placement:"top-start",width:400,trigger:"hover",disabled:!o.value},{reference:e.withCtx(()=>[e.createElementVNode("div",P,[e.createVNode(e.unref(n.ElUpload),{disabled:c.value||a.disabled,class:"qy-remark-image__upload","show-file-list":!1,"http-request":_},{default:e.withCtx(()=>[c.value?(e.openBlock(),e.createElementBlock("span",R)):o.value?(e.openBlock(),e.createElementBlock("span",U)):(e.openBlock(),e.createElementBlock("span",S))]),_:1},8,["disabled"])])]),default:e.withCtx(()=>[e.createElementVNode("div",A,[e.createElementVNode("img",{src:o.value,class:"qy-remark-image__preview-img"},null,8,M),e.createElementVNode("div",j,[t[1]||(t[1]=e.createElementVNode("span",{class:"qy-remark-image__popover-tip"},"再次点击按钮可更换图片",-1)),e.createVNode(e.unref(n.ElButton),{link:"",size:"small",type:"danger",disabled:a.disabled,onClick:k},{default:e.withCtx(()=>t[0]||(t[0]=[e.createTextVNode(" 删除图片 ",-1)])),_:1,__:[0]},8,["disabled"])])])]),_:1},8,["disabled"])])],4))}});exports.default=D;
@@ -0,0 +1,197 @@
1
+ import { defineComponent as j, useAttrs as F, ref as f, computed as z, watch as I, onMounted as K, nextTick as M, onUnmounted as O, createElementBlock as p, openBlock as v, normalizeStyle as W, createElementVNode as i, createVNode as g, unref as d, mergeProps as $, withCtx as h, createTextVNode as G } from "vue";
2
+ import { ElMessage as b, ElInput as H, ElPopover as J, ElButton as Q, ElUpload as X } from "element-plus";
3
+ import Y from "../../node_modules/.pnpm/js-cookie@3.0.5/node_modules/js-cookie/dist/js.cookie.mjs";
4
+ import { parseRemarkText as V, parseRemarkWithImage as B, formatRemarkText as Z } from "./utils.mjs";
5
+ const ee = { class: "qy-remark-image__field" }, ae = { class: "qy-remark-image__upload-anchor" }, te = {
6
+ key: 0,
7
+ class: "icon-[line-md--loading-twotone-loop]",
8
+ role: "img",
9
+ "aria-hidden": "true"
10
+ }, re = {
11
+ key: 1,
12
+ class: "icon-[ion--cloud-upload-outline]",
13
+ role: "img",
14
+ "aria-hidden": "true"
15
+ }, le = {
16
+ key: 2,
17
+ class: "icon-[ph--images-thin]",
18
+ role: "img",
19
+ "aria-hidden": "true"
20
+ }, oe = { class: "qy-remark-image__popover" }, ie = ["src"], se = { class: "qy-remark-image__popover-footer" }, fe = /* @__PURE__ */ j({
21
+ __name: "index",
22
+ props: {
23
+ defaultValue: { default: "" },
24
+ defaultImage: { default: "" },
25
+ rows: { default: 6 },
26
+ width: { default: "" },
27
+ autosize: { type: [Boolean, Object], default: !1 },
28
+ disabled: { type: Boolean, default: !1 },
29
+ placeholder: { default: "粘贴图片上传" },
30
+ type: { default: "textarea" },
31
+ api: { default: "/permission-api/common/uploads" },
32
+ tokenKey: { default: "Admin-Token" }
33
+ },
34
+ emits: ["change"],
35
+ setup(U, { expose: A, emit: P }) {
36
+ const r = U, C = P, R = F(), y = f(null), o = f(""), l = f(""), u = f(!1), S = z(
37
+ () => r.type === "text" ? "text" : "textarea"
38
+ ), D = z(() => {
39
+ if (r.width)
40
+ return {
41
+ width: typeof r.width == "number" ? `${r.width}px` : r.width
42
+ };
43
+ });
44
+ I(
45
+ () => r.defaultValue,
46
+ (e) => {
47
+ const a = V(e || "");
48
+ o.value = a.text, l.value = a.imageUrl || r.defaultImage || "";
49
+ },
50
+ { immediate: !0 }
51
+ ), I(
52
+ () => r.defaultImage,
53
+ (e) => {
54
+ e !== void 0 && !V(r.defaultValue || "").imageUrl && (l.value = e || "");
55
+ },
56
+ { immediate: !0 }
57
+ ), K(() => {
58
+ M(L);
59
+ }), O(() => {
60
+ const e = x();
61
+ e && e.removeEventListener("paste", _);
62
+ });
63
+ function x() {
64
+ var e, a;
65
+ return ((e = y.value) == null ? void 0 : e.textarea) || ((a = y.value) == null ? void 0 : a.input) || null;
66
+ }
67
+ function L() {
68
+ const e = x();
69
+ e && (e.removeEventListener("paste", _), e.addEventListener("paste", _));
70
+ }
71
+ function N(e) {
72
+ o.value = Z(e || "");
73
+ }
74
+ function E() {
75
+ l.value = "", k();
76
+ }
77
+ async function _(e) {
78
+ var n;
79
+ const s = Array.from(((n = e.clipboardData) == null ? void 0 : n.files) || []).find((m) => m.type.startsWith("image/"));
80
+ s && (e.preventDefault(), await T({
81
+ file: s,
82
+ onError: () => {
83
+ },
84
+ onProgress: () => {
85
+ },
86
+ onSuccess: () => {
87
+ }
88
+ }));
89
+ }
90
+ async function T(e) {
91
+ var a, s, n, m;
92
+ if (e.file.size > 51200 * 1e3)
93
+ return b.error("图片过大"), !1;
94
+ u.value = !0;
95
+ try {
96
+ const c = new FormData();
97
+ c.append("files", e.file);
98
+ const q = Y.get(r.tokenKey), t = await (await fetch(r.api, {
99
+ method: "POST",
100
+ body: c,
101
+ credentials: "include",
102
+ headers: q ? { Authorization: `Bearer ${q}` } : void 0
103
+ })).json(), w = (t == null ? void 0 : t.urls) ?? ((a = t == null ? void 0 : t.data) == null ? void 0 : a.urls) ?? ((s = t == null ? void 0 : t.data) == null ? void 0 : s.url) ?? (t == null ? void 0 : t.url) ?? "";
104
+ return l.value = Array.isArray(w) ? w[0] : w, k(), b.success("上传图片成功"), (n = e.onSuccess) == null || n.call(e, t), !0;
105
+ } catch (c) {
106
+ return (m = e.onError) == null || m.call(e, c), b.error("上传失败"), !1;
107
+ } finally {
108
+ u.value = !1;
109
+ }
110
+ }
111
+ function k() {
112
+ C(
113
+ "change",
114
+ B(o.value || "", l.value || ""),
115
+ l.value || ""
116
+ );
117
+ }
118
+ return A({
119
+ deleteImage: E,
120
+ // 给表单保存或外部调试读取当前拆分值。
121
+ getValue: () => ({
122
+ text: o.value || "",
123
+ imageUrl: l.value || "",
124
+ value: B(o.value || "", l.value || "")
125
+ })
126
+ }), (e, a) => (v(), p("div", {
127
+ class: "qy-remark-image",
128
+ style: W(D.value)
129
+ }, [
130
+ i("div", ee, [
131
+ g(d(H), $({
132
+ ref_key: "inputRef",
133
+ ref: y,
134
+ "model-value": o.value,
135
+ type: S.value,
136
+ rows: e.rows,
137
+ autosize: e.autosize,
138
+ disabled: e.disabled,
139
+ placeholder: e.placeholder
140
+ }, d(R), {
141
+ "onUpdate:modelValue": N,
142
+ onBlur: k
143
+ }), null, 16, ["model-value", "type", "rows", "autosize", "disabled", "placeholder"]),
144
+ g(d(J), {
145
+ placement: "top-start",
146
+ width: 400,
147
+ trigger: "hover",
148
+ disabled: !l.value
149
+ }, {
150
+ reference: h(() => [
151
+ i("div", ae, [
152
+ g(d(X), {
153
+ disabled: u.value || e.disabled,
154
+ class: "qy-remark-image__upload",
155
+ "show-file-list": !1,
156
+ "http-request": T
157
+ }, {
158
+ default: h(() => [
159
+ u.value ? (v(), p("span", te)) : l.value ? (v(), p("span", le)) : (v(), p("span", re))
160
+ ]),
161
+ _: 1
162
+ }, 8, ["disabled"])
163
+ ])
164
+ ]),
165
+ default: h(() => [
166
+ i("div", oe, [
167
+ i("img", {
168
+ src: l.value,
169
+ class: "qy-remark-image__preview-img"
170
+ }, null, 8, ie),
171
+ i("div", se, [
172
+ a[1] || (a[1] = i("span", { class: "qy-remark-image__popover-tip" }, "再次点击按钮可更换图片", -1)),
173
+ g(d(Q), {
174
+ link: "",
175
+ size: "small",
176
+ type: "danger",
177
+ disabled: e.disabled,
178
+ onClick: E
179
+ }, {
180
+ default: h(() => a[0] || (a[0] = [
181
+ G(" 删除图片 ", -1)
182
+ ])),
183
+ _: 1,
184
+ __: [0]
185
+ }, 8, ["disabled"])
186
+ ])
187
+ ])
188
+ ]),
189
+ _: 1
190
+ }, 8, ["disabled"])
191
+ ])
192
+ ], 4));
193
+ }
194
+ });
195
+ export {
196
+ fe as default
197
+ };
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const w=require("element-plus/es"),e=require("vue"),O=require("@element-plus/icons-vue"),v=require("element-plus"),oe=require("../utils/auth.cjs");;/* empty css */;/* empty css */const ie=require("../../_virtual/plugin-vue_export-helper.cjs"),se={class:"qy-upload__hint"},ne=["src"],re={key:1,class:"qy-upload__tip"},ue={class:"error"},de={class:"error"},ce=Object.assign({name:"QyUpload"},{__name:"index",props:{defaultValue:{type:Object,default:()=>({files:"",text:""})},multiple:{type:Boolean,default:!0},disabled:{type:Boolean,default:!1},fileType:{type:Array,default:()=>[]},fileSize:{type:Number,default:10},limit:{type:Number,default:9},isShowTip:{type:Boolean,default:!1},api:{type:String,default:"/permission-api/common/uploads"},name:{type:String,default:"file"},tokenKey:{type:String,default:"Admin-Token"},supportVideo:{type:Boolean,default:!1},size:{type:String,default:"default"},disableDrag:{type:Boolean,default:!1},callBack:{type:Function,default:null},extraData:{type:Object,default:()=>({})}},emits:["change","success","error","remove"],setup(p,{expose:A,emit:I}){const s=p,g=I,h=e.ref(null),u=e.ref([]),M=e.ref(null),x=[],C=e.ref(!1),S=e.ref([]),E=e.ref(0),V=e.ref(!1),L=e.ref(""),T=e.ref(""),k=new Set,B=e.ref(!1),f=e.ref(""),D=e.ref(!1);e.onMounted(()=>{const l=s.defaultValue;if(!l)return;f.value=l.text??"";const t=l.files??"",o=Array.isArray(t)?t.filter(Boolean):String(t).split(",").filter(Boolean);o.length&&(u.value=o.map((a,i)=>({name:a.split("/").pop()||`file-${i}`,url:a,status:"success",uid:Date.now()+i})))});const P=e.computed(()=>({large:"160px",default:"140px",small:"80px"})[s.size]??s.size),H=e.computed(()=>s.disabled),W=e.computed(()=>{var l;return s.isShowTip&&(s.fileSize||((l=m.value)==null?void 0:l.length))}),m=e.computed(()=>{var l;return(l=s.fileType)!=null&&l.length?s.fileType.map(t=>t.toLowerCase()):s.supportVideo?["mp4","mov","avi"]:["jpg","jpeg","png","gif","webp"]}),N=e.computed(()=>{const l=s.supportVideo?1:s.limit;return u.value.length>=l}),X=e.computed(()=>m.value.map(l=>`.${l}`).join(",")),K=e.computed(()=>({"qy-upload--reached-limit":N.value,"qy-upload--disabled":s.disabled,"qy-upload--video":s.supportVideo}));e.watch(f,()=>b());function Q(){var l;(l=M.value)==null||l.focus()}function b(l){const a={files:(l??u.value).filter(i=>i.status==="success"&&i.url).map(i=>i.url),text:f.value};g("change",a),s.callBack&&s.callBack(a)}function J(l,t){b(t)}function G(l){var a;if(!(l.size/1024/1024<s.fileSize))return v.ElMessage.warning(`文件大小不能超过${s.fileSize}M`),!1;const o=((a=l.name.split(".").pop())==null?void 0:a.toLowerCase())||"";return m.value.includes(o)?!0:(v.ElMessage.warning(`格式不支持,仅允许: ${m.value.join("/")}`),!1)}function z(l,t,o,a){var $,F;const i=s.api.startsWith("http")?s.api:window.location.origin+s.api.replace(/^([^/])/,"/$1"),d=new FormData;d.append(s.name,l),s.extraData&&Object.entries(s.extraData).forEach(([r,ae])=>d.append(r,ae));const n=new XMLHttpRequest;x.push(n);const y=(($=h.value)==null?void 0:$.$el.querySelector(".el-upload--picture-card"))||((F=h.value)==null?void 0:F.$el),q=v.ElLoading.service({target:y,text:"上传中",background:"rgba(255,255,255,0.7)"}),c=()=>{const r=x.indexOf(n);r!==-1&&x.splice(r,1),q.close()};n.open("POST",i);const _=oe.getToken(s.tokenKey);_&&n.setRequestHeader("Authorization",`Bearer ${_}`),n.upload.onprogress=r=>{r.total>0&&(t==null||t({percent:r.loaded/r.total*100}))},n.onload=()=>{if(c(),n.status<200||n.status>=300){const r=`上传失败 (HTTP ${n.status})`;v.ElMessage.error(r),g("error",{msg:r,status:n.status}),a==null||a(new Error(r));return}try{const r=JSON.parse(n.responseText);r.code===200&&r.urls?(v.ElMessage.success("上传成功"),o==null||o({...r,url:r.urls})):(v.ElMessage.error(r.msg||"上传失败"),g("error",r),a==null||a(r))}catch{v.ElMessage.error("上传失败,响应格式错误"),g("error",new Error("Response parse error")),a==null||a(new Error("Response parse error"))}},n.onerror=()=>{c(),v.ElMessage.error("上传失败,网络异常"),g("error",new Error("Network error")),a==null||a(new Error("Network error"))},n.send(d)}function R(l){return s.disabled?!1:G(l)}function Y(l){z(l.file,l.onProgress,t=>{l.onSuccess(t),b(),g("success",t)},t=>l.onError(t))}function Z(l){var a;if(!l.url)return;const t=((a=l.url.split(".").pop())==null?void 0:a.toLowerCase())||"";if(["mp4","mov","avi","webm"].includes(t)){L.value=l.url,T.value=l.name||"视频预览",V.value=!0;return}const o=u.value.filter(i=>{var d;return i.status==="success"&&i.url&&!["mp4","mov","avi","webm"].includes((d=i.url.split(".").pop())==null?void 0:d.toLowerCase())});S.value=o.map(i=>i.url),E.value=o.findIndex(i=>i.uid===l.uid)||0,C.value=!0}function ee(){C.value=!1,S.value=[]}function j(l){for(let t=0;t<l.length;t++){const o=l[t];if(!R(o))continue;const a=Date.now()+t,i=URL.createObjectURL(o);k.add(i),u.value.push({uid:a,name:o.name||`file-${a}`,status:"uploading",percentage:0,url:i}),z(o,d=>{const n=u.value.find(y=>y.uid===a);n&&(n.percentage=d.percent)},d=>{const n=u.value.find(y=>y.uid===a);n&&(n.status="success",n.url=d.url,b(),g("success",d))},()=>le(a))}}function U(l){var a;if(s.disabled)return;const t=(a=l.clipboardData)==null?void 0:a.items;if(!t)return;const o=[];for(let i=0;i<t.length;i++){const d=t[i];if(d.kind==="file"&&d.type.startsWith("image/")){const n=d.getAsFile();n&&o.push(n)}}o.length&&(l.preventDefault(),j(o))}function te(l){var o;if(B.value=!1,s.disabled||N.value)return;const t=Array.from(((o=l.dataTransfer)==null?void 0:o.files)||[]).filter(a=>{var i;return m.value.includes((i=a.name.split(".").pop())==null?void 0:i.toLowerCase())});t.length&&j(t)}function le(l){var o;const t=u.value.findIndex(a=>a.uid===l);t!==-1&&((o=u.value[t].url)!=null&&o.startsWith("blob:")&&(URL.revokeObjectURL(u.value[t].url),k.delete(u.value[t].url)),u.value.splice(t,1))}return e.onBeforeUnmount(()=>{x.forEach(l=>l.abort()),x.length=0,k.forEach(l=>URL.revokeObjectURL(l)),k.clear()}),A({openFileDialog:()=>{var l,t;s.disabled||N.value||(t=(l=h.value)==null?void 0:l.$el.querySelector('input[type="file"]'))==null||t.click()},getPathList:()=>u.value.filter(l=>l.status==="success").map(l=>l.url),clearFiles:()=>{u.value=[],f.value="",b()},getValue:()=>({files:u.value.filter(l=>l.status==="success"&&l.url).map(l=>l.url),text:f.value})}),(l,t)=>{var q;const o=w.ElIcon,a=w.ElInput,i=w.ElPopover,d=w.ElUpload,n=w.ElImageViewer,y=w.ElDialog;return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["qy-upload",K.value]),style:e.normalizeStyle({"--qy-upload-size":P.value})},[e.createVNode(d,{ref_key:"uploadRef",ref:h,"file-list":u.value,"onUpdate:fileList":t[6]||(t[6]=c=>u.value=c),action:"#",multiple:p.supportVideo?!1:p.multiple,limit:p.supportVideo?1:p.limit,"list-type":p.supportVideo?"text":"picture-card",accept:X.value,disabled:H.value,"http-request":Y,"before-upload":R,"on-preview":Z,"on-remove":J},{default:e.withCtx(()=>[N.value?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["qy-upload__trigger",{"is-dragover":B.value}]),onPaste:U,onDragover:t[4]||(t[4]=e.withModifiers(c=>B.value=!0,["prevent"])),onDragleave:t[5]||(t[5]=e.withModifiers(c=>B.value=!1,["prevent"])),onDrop:e.withModifiers(te,["prevent"])},[e.createVNode(o,{class:"qy-upload__icon"},{default:e.withCtx(()=>[e.createVNode(e.unref(O.Plus))]),_:1}),p.supportVideo?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[t[9]||(t[9]=e.createElementVNode("span",{class:"qy-upload__label"},"点击上传视频",-1)),e.createElementVNode("span",se,"支持 "+e.toDisplayString(m.value.join(" / "))+",不超过 "+e.toDisplayString(p.fileSize)+"MB",1)],64)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:"qy-upload__text",onClick:t[3]||(t[3]=e.withModifiers(()=>{},["stop"])),onPaste:e.withModifiers(U,["stop"])},[e.createVNode(i,{visible:D.value,"onUpdate:visible":t[2]||(t[2]=c=>D.value=c),placement:"bottom-start",width:220,trigger:"click","popper-class":"qy-upload__text-popover",onAfterEnter:Q},{reference:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(["qy-upload__text-preview",{"is-placeholder":!f.value}])},e.toDisplayString(f.value||"输入文字"),3)]),default:e.withCtx(()=>[e.createVNode(a,{ref_key:"inputRef",ref:M,modelValue:f.value,"onUpdate:modelValue":t[0]||(t[0]=c=>f.value=c),type:"textarea",autosize:{minRows:2,maxRows:5},placeholder:"输入文字或粘贴图片",disabled:p.disabled,onBlur:t[1]||(t[1]=c=>D.value=!1),onPaste:e.withModifiers(U,["stop"])},null,8,["modelValue","disabled"])]),_:1},8,["visible"])],32)],34))]),_:1},8,["file-list","multiple","limit","list-type","accept","disabled"]),C.value?(e.openBlock(),e.createBlock(n,{key:0,"url-list":S.value,"initial-index":E.value,onClose:ee},null,8,["url-list","initial-index"])):e.createCommentVNode("",!0),e.createVNode(y,{modelValue:V.value,"onUpdate:modelValue":t[7]||(t[7]=c=>V.value=c),title:T.value,width:"640px","append-to-body":"","destroy-on-close":"",onClose:t[8]||(t[8]=c=>V.value=!1)},{default:e.withCtx(()=>[V.value?(e.openBlock(),e.createElementBlock("video",{key:0,src:L.value,controls:"",autoplay:"",style:{width:"100%","max-height":"400px","border-radius":"4px"}},null,8,ne)):e.createCommentVNode("",!0)]),_:1},8,["modelValue","title"]),W.value?(e.openBlock(),e.createElementBlock("div",re,[e.createVNode(o,null,{default:e.withCtx(()=>[e.createVNode(e.unref(O.InfoFilled))]),_:1}),e.createElementVNode("span",null,[t[12]||(t[12]=e.createTextVNode(" 请上传 ",-1)),p.fileSize?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[t[10]||(t[10]=e.createTextVNode("大小不超过 ",-1)),e.createElementVNode("b",ue,e.toDisplayString(p.fileSize)+"MB",1)],64)):e.createCommentVNode("",!0),(q=m.value)!=null&&q.length?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[t[11]||(t[11]=e.createTextVNode(",格式为 ",-1)),e.createElementVNode("b",de,e.toDisplayString(m.value.join("/")),1)],64)):e.createCommentVNode("",!0),t[13]||(t[13]=e.createTextVNode(" 的文件。 ",-1))])])):e.createCommentVNode("",!0)],6)}}}),pe=ie.default(ce,[["__scopeId","data-v-c1472320"]]);exports.default=pe;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const x=require("element-plus/es"),t=require("vue"),H=require("@element-plus/icons-vue"),g=require("element-plus"),ge=require("../utils/auth.cjs");;/* empty css */;/* empty css */const ye=require("../../_virtual/_plugin-vue_export-helper.cjs"),xe={class:"qy-upload__hint"},he=["placeholder","disabled"],Ve=["src"],we={key:1,class:"qy-upload__tip"},be={class:"error"},ke={class:"error"},Be=Object.assign({name:"QyUpload"},{__name:"index",props:{modelValue:{type:[Object,Array,String],default:void 0},defaultValue:{type:Object,default:()=>({files:"",text:""})},valueFormat:{type:String,default:"object"},showText:{type:Boolean,default:!0},showPasteInput:{type:Boolean,default:!1},pastePlaceholder:{type:String,default:"输入文字"},multiple:{type:Boolean,default:!0},disabled:{type:Boolean,default:!1},fileType:{type:Array,default:()=>[]},fileSize:{type:Number,default:10},limit:{type:Number,default:9},isShowTip:{type:Boolean,default:!1},api:{type:String,default:"/permission-api/common/uploads"},name:{type:String,default:"file"},tokenKey:{type:String,default:"Admin-Token"},supportVideo:{type:Boolean,default:!1},size:{type:String,default:"default"},disableDrag:{type:Boolean,default:!1},callBack:{type:Function,default:null},extraData:{type:Object,default:()=>({})}},emits:["update:modelValue","change","success","error","remove"],setup(d,{expose:W,emit:X}){const o=d,m=X,k=t.ref(null),r=t.ref([]),U=t.ref(null),K=t.ref(null),h=[];let C=!1;const M=t.ref(!1),D=t.ref([]),E=t.ref(0),V=t.ref(!1),L=t.ref(""),R=t.ref(""),B=new Set,N=t.ref(!1),f=t.ref(""),T=t.ref(!1);t.onMounted(()=>{o.modelValue===void 0&&j(o.defaultValue)});const Q=t.computed(()=>({large:"160px",default:"140px",small:"80px"})[o.size]??o.size),J=t.computed(()=>o.disabled),G=t.computed(()=>{var e;return o.isShowTip&&(o.fileSize||((e=v.value)==null?void 0:e.length))}),v=t.computed(()=>{var e;return(e=o.fileType)!=null&&e.length?o.fileType.map(l=>l.toLowerCase()):o.supportVideo?["mp4","mov","avi"]:["jpg","jpeg","png","gif","webp"]}),S=t.computed(()=>{const e=o.supportVideo?1:o.limit;return r.value.length>=e}),Y=t.computed(()=>v.value.map(e=>`.${e}`).join(",")),Z=t.computed(()=>({"qy-upload--reached-limit":S.value,"qy-upload--disabled":o.disabled,"qy-upload--video":o.supportVideo,"qy-upload--without-text":!o.showText&&!o.showPasteInput}));t.watch(f,()=>{C||w()}),t.watch(()=>o.modelValue,e=>{e!==void 0&&j(e)},{immediate:!0,deep:!0});function P(e){return Array.isArray(e)?e.filter(Boolean):e?String(e).split(",").filter(Boolean):[]}function ee(e){return Array.isArray(e)?{files:e,text:""}:typeof e=="string"?{files:P(e),text:""}:e&&typeof e=="object"?{files:P(e.files),text:e.text??""}:{files:[],text:""}}function te(e=[]){return e.map((l,i)=>({name:String(l).split("/").pop()||`file-${i}`,url:l,status:"success",uid:Date.now()+i}))}function le(e){const l=new Set(e.map(a=>a.url)),i=r.value.filter(a=>a.status==="uploading"&&!l.has(a.url));return[...e,...i]}function j(e){const l=ee(e);C=!0,f.value=l.text,r.value=le(te(l.files)),t.nextTick(()=>{C=!1})}function z(e){return o.valueFormat==="array"?e.files:o.valueFormat==="string"?e.files.join(","):e}function ae(){var e;(e=U.value)==null||e.focus()}function oe(e){e.target.value=""}function w(e){const a={files:(e??r.value).filter(n=>n.status==="success"&&n.url).map(n=>n.url),text:f.value};m("update:modelValue",z(a)),m("change",a),o.callBack&&o.callBack(a)}function ie(e,l){w(l),m("remove",e,l)}function ne(e){var a;if(!(e.size/1024/1024<o.fileSize))return g.ElMessage.warning(`文件大小不能超过${o.fileSize}M`),!1;const i=((a=e.name.split(".").pop())==null?void 0:a.toLowerCase())||"";return v.value.includes(i)?!0:(g.ElMessage.warning(`格式不支持,仅允许: ${v.value.join("/")}`),!1)}function I(e,l,i,a){var F,_;const n=o.api.startsWith("http")?o.api:window.location.origin+o.api.replace(/^([^/])/,"/$1"),c=new FormData;c.append(o.name,e),o.extraData&&Object.entries(o.extraData).forEach(([u,ve])=>c.append(u,ve));const s=new XMLHttpRequest;h.push(s);const y=((F=k.value)==null?void 0:F.$el.querySelector(".el-upload--picture-card"))||((_=k.value)==null?void 0:_.$el),q=g.ElLoading.service({target:y,text:"上传中",background:"rgba(255,255,255,0.7)"}),p=()=>{const u=h.indexOf(s);u!==-1&&h.splice(u,1),q.close()};s.open("POST",n);const A=ge.getToken(o.tokenKey);A&&s.setRequestHeader("Authorization",`Bearer ${A}`),s.upload.onprogress=u=>{u.total>0&&(l==null||l({percent:u.loaded/u.total*100}))},s.onload=()=>{if(p(),s.status<200||s.status>=300){const u=`上传失败 (HTTP ${s.status})`;g.ElMessage.error(u),m("error",{msg:u,status:s.status}),a==null||a(new Error(u));return}try{const u=JSON.parse(s.responseText);u.code===200&&u.urls?(g.ElMessage.success("上传成功"),i==null||i({...u,url:u.urls})):(g.ElMessage.error(u.msg||"上传失败"),m("error",u),a==null||a(u))}catch{g.ElMessage.error("上传失败,响应格式错误"),m("error",new Error("Response parse error")),a==null||a(new Error("Response parse error"))}},s.onerror=()=>{p(),g.ElMessage.error("上传失败,网络异常"),m("error",new Error("Network error")),a==null||a(new Error("Network error"))},s.send(c)}function O(e){return o.disabled?!1:ne(e)}function se(e,l){const i=r.value.find(a=>{var n;return a.uid===(e==null?void 0:e.uid)||((n=a.raw)==null?void 0:n.uid)===(e==null?void 0:e.uid)});i&&(i.url=l,i.status="success")}function re(e){I(e.file,e.onProgress,l=>{se(e.file,l.url),e.onSuccess(l),w(),m("success",l)},l=>e.onError(l))}function ue(e){var a;if(!e.url)return;const l=((a=e.url.split(".").pop())==null?void 0:a.toLowerCase())||"";if(["mp4","mov","avi","webm"].includes(l)){L.value=e.url,R.value=e.name||"视频预览",V.value=!0;return}const i=r.value.filter(n=>{var c;return n.status==="success"&&n.url&&!["mp4","mov","avi","webm"].includes((c=n.url.split(".").pop())==null?void 0:c.toLowerCase())});D.value=i.map(n=>n.url),E.value=i.findIndex(n=>n.uid===e.uid)||0,M.value=!0}function de(){M.value=!1,D.value=[]}function $(e){for(let l=0;l<e.length;l++){const i=e[l];if(!O(i))continue;const a=Date.now()+l,n=URL.createObjectURL(i);B.add(n),r.value.push({uid:a,name:i.name||`file-${a}`,status:"uploading",percentage:0,url:n}),I(i,c=>{const s=r.value.find(y=>y.uid===a);s&&(s.percentage=c.percent)},c=>{const s=r.value.find(y=>y.uid===a);s&&(s.status="success",s.url=c.url,w(),m("success",c))},()=>me(a))}}function b(e){var a;if(o.disabled)return;const l=(a=e.clipboardData)==null?void 0:a.items;if(!l)return;const i=[];for(let n=0;n<l.length;n++){const c=l[n];if(c.kind==="file"&&c.type.startsWith("image/")){const s=c.getAsFile();s&&i.push(s)}}i.length&&(e.preventDefault(),$(i))}function ce(){o.disabled||o.disableDrag||(N.value=!0)}function pe(){N.value=!1}function fe(e){var i;if(N.value=!1,o.disabled||o.disableDrag||S.value)return;const l=Array.from(((i=e.dataTransfer)==null?void 0:i.files)||[]).filter(a=>{var n;return v.value.includes((n=a.name.split(".").pop())==null?void 0:n.toLowerCase())});l.length&&$(l)}function me(e){var i;const l=r.value.findIndex(a=>a.uid===e);l!==-1&&((i=r.value[l].url)!=null&&i.startsWith("blob:")&&(URL.revokeObjectURL(r.value[l].url),B.delete(r.value[l].url)),r.value.splice(l,1))}return t.onBeforeUnmount(()=>{h.forEach(e=>e.abort()),h.length=0,B.forEach(e=>URL.revokeObjectURL(e)),B.clear()}),W({openFileDialog:()=>{var e,l;o.disabled||S.value||(l=(e=k.value)==null?void 0:e.$el.querySelector('input[type="file"]'))==null||l.click()},getPathList:()=>r.value.filter(e=>e.status==="success").map(e=>e.url),clearFiles:()=>{r.value=[],f.value="",w()},getValue:()=>({files:r.value.filter(e=>e.status==="success"&&e.url).map(e=>e.url),text:f.value}),getModelValue:()=>z({files:r.value.filter(e=>e.status==="success"&&e.url).map(e=>e.url),text:f.value})}),(e,l)=>{var q;const i=x.ElIcon,a=x.ElInput,n=x.ElPopover,c=x.ElUpload,s=x.ElImageViewer,y=x.ElDialog;return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(["qy-upload",Z.value]),style:t.normalizeStyle({"--qy-upload-size":Q.value})},[t.createVNode(c,{ref_key:"uploadRef",ref:k,"file-list":r.value,"onUpdate:fileList":l[6]||(l[6]=p=>r.value=p),action:"#",multiple:d.supportVideo?!1:d.multiple,limit:d.supportVideo?1:d.limit,"list-type":d.supportVideo?"text":"picture-card",accept:Y.value,disabled:J.value,"http-request":re,"before-upload":O,"on-preview":ue,"on-remove":ie},{default:t.withCtx(()=>[S.value?t.createCommentVNode("",!0):(t.openBlock(),t.createElementBlock("div",{key:0,class:t.normalizeClass(["qy-upload__trigger",{"is-dragover":N.value}]),onPaste:b,onDragover:t.withModifiers(ce,["prevent"]),onDragleave:t.withModifiers(pe,["prevent"]),onDrop:t.withModifiers(fe,["prevent"])},[t.createVNode(i,{class:"qy-upload__icon"},{default:t.withCtx(()=>[t.createVNode(t.unref(H.Plus))]),_:1}),d.supportVideo?(t.openBlock(),t.createElementBlock(t.Fragment,{key:0},[l[9]||(l[9]=t.createElementVNode("span",{class:"qy-upload__label"},"点击上传视频",-1)),t.createElementVNode("span",xe,"支持 "+t.toDisplayString(v.value.join(" / "))+",不超过 "+t.toDisplayString(d.fileSize)+"MB",1)],64)):t.createCommentVNode("",!0),d.showText?(t.openBlock(),t.createElementBlock("div",{key:1,class:"qy-upload__text",onClick:l[3]||(l[3]=t.withModifiers(()=>{},["stop"])),onPaste:t.withModifiers(b,["stop"])},[t.createVNode(n,{visible:T.value,"onUpdate:visible":l[2]||(l[2]=p=>T.value=p),placement:"bottom-start",width:220,trigger:"click","popper-class":"qy-upload__text-popover",onAfterEnter:ae},{reference:t.withCtx(()=>[t.createElementVNode("div",{class:t.normalizeClass(["qy-upload__text-preview",{"is-placeholder":!f.value}])},t.toDisplayString(f.value||d.pastePlaceholder),3)]),default:t.withCtx(()=>[t.createVNode(a,{ref_key:"inputRef",ref:U,modelValue:f.value,"onUpdate:modelValue":l[0]||(l[0]=p=>f.value=p),type:"textarea",autosize:{minRows:2,maxRows:5},placeholder:d.pastePlaceholder,disabled:d.disabled,onBlur:l[1]||(l[1]=p=>T.value=!1),onPaste:t.withModifiers(b,["stop"])},null,8,["modelValue","placeholder","disabled"])]),_:1},8,["visible"])],32)):d.showPasteInput?(t.openBlock(),t.createElementBlock("div",{key:2,class:"qy-upload__text",onClick:l[5]||(l[5]=t.withModifiers(()=>{},["stop"])),onPaste:t.withModifiers(b,["stop"])},[t.createElementVNode("input",{ref_key:"pasteInputRef",ref:K,class:"qy-upload__paste-input",placeholder:d.pastePlaceholder,disabled:d.disabled,onPaste:t.withModifiers(b,["stop"]),onInput:oe,onClick:l[4]||(l[4]=t.withModifiers(()=>{},["stop"]))},null,40,he)],32)):t.createCommentVNode("",!0)],34))]),_:1},8,["file-list","multiple","limit","list-type","accept","disabled"]),M.value?(t.openBlock(),t.createBlock(s,{key:0,"url-list":D.value,"initial-index":E.value,onClose:de},null,8,["url-list","initial-index"])):t.createCommentVNode("",!0),t.createVNode(y,{modelValue:V.value,"onUpdate:modelValue":l[7]||(l[7]=p=>V.value=p),title:R.value,width:"640px","append-to-body":"","destroy-on-close":"",onClose:l[8]||(l[8]=p=>V.value=!1)},{default:t.withCtx(()=>[V.value?(t.openBlock(),t.createElementBlock("video",{key:0,src:L.value,controls:"",autoplay:"",style:{width:"100%","max-height":"400px","border-radius":"4px"}},null,8,Ve)):t.createCommentVNode("",!0)]),_:1},8,["modelValue","title"]),G.value?(t.openBlock(),t.createElementBlock("div",we,[t.createVNode(i,null,{default:t.withCtx(()=>[t.createVNode(t.unref(H.InfoFilled))]),_:1}),t.createElementVNode("span",null,[l[12]||(l[12]=t.createTextVNode(" 请上传 ",-1)),d.fileSize?(t.openBlock(),t.createElementBlock(t.Fragment,{key:0},[l[10]||(l[10]=t.createTextVNode("大小不超过 ",-1)),t.createElementVNode("b",be,t.toDisplayString(d.fileSize)+"MB",1)],64)):t.createCommentVNode("",!0),(q=v.value)!=null&&q.length?(t.openBlock(),t.createElementBlock(t.Fragment,{key:1},[l[11]||(l[11]=t.createTextVNode(",格式为 ",-1)),t.createElementVNode("b",ke,t.toDisplayString(v.value.join("/")),1)],64)):t.createCommentVNode("",!0),l[13]||(l[13]=t.createTextVNode(" 的文件。 ",-1))])])):t.createCommentVNode("",!0)],6)}}}),Ne=ye.default(Be,[["__scopeId","data-v-1d6de9b6"]]);exports.default=Ne;