UNPKG

vxe-design

Version:

A PC-based visual designer based on Vxe UI, used for building zero-code and low-code platforms

104 lines (103 loc) 3.47 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.WidgetVxeUploadImageFormComponent = void 0; var _vue = require("vue"); var _comp = require("../../ui/src/comp"); var _core = require("@vxe-ui/core"); var _vxeUploadFileData = require("../widget-vxe-upload-file/vxe-upload-file-data"); var _use = require("../../form-design/src/use"); const WidgetVxeUploadImageFormComponent = exports.WidgetVxeUploadImageFormComponent = (0, _comp.defineVxeComponent)({ props: { renderOpts: { type: Object, default: () => ({}) }, renderParams: { type: Object, default: () => ({}) } }, emits: [], setup(props) { const VxeUIFormComponent = _core.VxeUI.getComponent('vxe-form'); const VxeUIFormItemComponent = _core.VxeUI.getComponent('vxe-form-item'); const VxeUIInputComponent = _core.VxeUI.getComponent('vxe-input'); const VxeUISwitchComponent = _core.VxeUI.getComponent('vxe-switch'); const { computeKebabCaseName } = (0, _use.useWidgetName)(props); const limitSizeOptions = (0, _vue.ref)((0, _vxeUploadFileData.getLimitSizeOptions)()); return () => { const { renderParams } = props; const { widget } = renderParams; const { options } = widget; const kebabCaseName = computeKebabCaseName.value; return (0, _vue.h)(VxeUIFormComponent, { class: ['vxe-form-design--widget-render-form-wrapper', `widget-${kebabCaseName}`], vertical: true, span: 24, titleBold: true, titleOverflow: true, data: options }, { default() { return [(0, _vue.h)(VxeUIFormItemComponent, { title: (0, _core.getI18n)('vxe.formDesign.widgetProp.name') }, { default() { return (0, _vue.h)(VxeUIInputComponent, { modelValue: widget.title, 'onUpdate:modelValue'(val) { widget.title = val; } }); } }), (0, _vue.h)(VxeUIFormItemComponent, { title: (0, _core.getI18n)('vxe.formDesign.widgetProp.uploadProp.multiImg'), field: 'multiple', itemRender: { name: 'VxeSwitch' } }), options.multiple ? (0, _vue.h)(VxeUIFormItemComponent, { title: (0, _core.getI18n)('vxe.formDesign.widgetProp.uploadProp.limitImgCount'), field: 'limitCount', itemRender: { name: 'VxeInput', props: { type: 'integer', min: 1, clearable: true } } }) : (0, _vue.createCommentVNode)(), (0, _vue.h)(VxeUIFormItemComponent, { title: (0, _core.getI18n)('vxe.formDesign.widgetProp.uploadProp.limitImgSize'), field: 'limitSize', itemRender: { name: 'VxeSelect', options: limitSizeOptions.value } }), (0, _vue.h)(VxeUIFormItemComponent, { title: (0, _core.getI18n)('vxe.formDesign.widgetProp.required') }, { default() { return (0, _vue.h)(VxeUISwitchComponent, { modelValue: widget.required, 'onUpdate:modelValue'(val) { widget.required = val; } }); } })]; } }); }; } });