epic-designer-gold
Version:
基于vue3的设计器,可视化开发页面表单
82 lines (81 loc) • 2.13 kB
JavaScript
import { defineComponent as x, ref as U, watch as s, inject as b, computed as V, h as n, nextTick as y } from "vue";
import { ElUpload as C, ElButton as L, ElMessage as r } from "element-plus";
import { u as P } from "./index-B1s67XDZ.js";
const { t: d } = P(), k = x({
props: {
modelValue: {
type: Array,
default: () => []
}
},
emits: ["update:modelValue"],
setup(i, { emit: c, attrs: t }) {
const l = U([]);
s(l, (e) => {
c("update:modelValue", e);
});
const p = b("disabled", { value: !1 });
s(
() => i.modelValue,
(e) => {
if (e != null && e.length > 0 && l.value != null) {
if (l.value === e) return;
l.value.length = 0, l.value.push(...e);
}
},
{ deep: !0, immediate: !0 }
);
const f = (e, a) => {
y(() => {
l.value = a;
});
}, m = (e) => {
var o, u;
let a = e.url || ((u = (o = e == null ? void 0 : e.response) == null ? void 0 : o.data) == null ? void 0 : u.url);
window.open(a);
}, h = (e) => {
}, v = (e, a, o) => {
console.log(o);
}, g = (e, a, o) => {
r.error(d("uploadFailed")), console.error(e);
}, w = (e, a) => {
let { limit: o } = t;
r.warning(`最多只能上传 ${o} 个文件`);
}, E = V(() => ({
...t,
"file-list": l.value,
onBeforeUpload: h,
onChange: f,
onSuccess: v,
onError: g,
onPreview: m,
onExceed: w
}));
return () => n("div", null, {
default: () => [
n(C, E.value, {
default: () => [
n(
L,
{
disabled: p.value
},
{
default: () => [
n("span", {
class: "icon--epic icon--epic--cloud-upload-outlined text-lg",
style: { "margin-right": "2px" }
}),
n("span", null, { default: () => d("fileUpload") })
]
}
)
]
})
]
});
}
});
export {
k as default
};