UNPKG

vue-admin-core

Version:
123 lines (118 loc) 3.44 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var vue = require('vue'); var vue$1 = require('@formily/vue'); var iconsVue = require('@element-plus/icons-vue'); var elementPlus = require('element-plus'); const UploadWrapper = vue.defineComponent({ name: "FUpload", props: { textContent: { type: String, default: "" }, errorAdaptor: { type: Function, default(error) { return (error == null ? void 0 : error.message) || ""; } }, fileList: { type: Array } }, emits: ["change"], setup(curProps, { slots, attrs, emit }) { return () => { const fieldRef = vue$1.useField(); const setFeedBack = (error) => { const message = curProps.errorAdaptor(error); fieldRef.value.setFeedback({ type: "error", code: "UploadError", messages: message ? [message] : [] }); }; const props = { ...attrs, onChange(file, fileList) { var _a; !((_a = attrs.onChange) == null ? void 0 : _a.call(attrs, file, fileList)); setFeedBack(); emit("change", fileList); }, onRemove(file, fileList) { var _a; !((_a = attrs.onRemove) == null ? void 0 : _a.call(attrs, file, fileList)); setFeedBack(); emit("change", fileList); }, onError(error, file, fileList) { var _a; !((_a = attrs.onError) == null ? void 0 : _a.call(attrs, error, file, fileList)); setTimeout(() => { setFeedBack(error); }, 0); } }; const children = { ...slots }; if (!slots.default) { children.default = () => { const listType = attrs.listType; const drag = attrs.drag; if (drag) { return vue.h( vue$1.FragmentComponent, {}, { default: () => [ vue.h( elementPlus.ElIcon, { style: { fontSize: "60px", margin: "40px 0 16px" } }, { default: () => vue.h(iconsVue.UploadFilled, { color: "gray" }, {}) } ), vue.h( "div", { staticClass: "el-upload__text" }, { default: () => [curProps.textContent] } ) ] } ); } if (listType === "picture-card") { return vue.h( iconsVue.Plus, { style: { width: "28px", height: "28px", marginTop: "60px", color: "gray" } }, {} ); } return vue.h( elementPlus.ElButton, {}, { default: () => [ vue.h(iconsVue.Upload, { style: { width: "12px", height: "12px" } }), curProps.textContent ] } ); }; } return vue.h(elementPlus.ElUpload, { ...props, ...attrs }, children); }; } }); const Upload = vue$1.connect(UploadWrapper, vue$1.mapProps({ readOnly: "readonly", value: "fileList" })); exports.Upload = Upload; exports.default = Upload; //# sourceMappingURL=index.js.map