From 66c0a696ad2a0b364f3972c30615be00230208d5 Mon Sep 17 00:00:00 2001 From: vdpAdmin Date: Tue, 26 Apr 2022 11:27:10 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=BAv-form-render=E7=9A=84form-json?= =?UTF-8?q?=E5=B1=9E=E6=80=A7=E5=A2=9E=E5=8A=A0=E9=BB=98=E8=AE=A4=E5=80=BC?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/form-designer/designer.js | 20 ++------------ .../picture-upload-fileTypes-editor.vue | 7 ++--- .../widget-panel/widgetsConfig.js | 2 +- src/components/form-render/index.vue | 9 ++++--- src/utils/util.js | 27 +++++++++++++++++++ 5 files changed, 40 insertions(+), 25 deletions(-) diff --git a/src/components/form-designer/designer.js b/src/components/form-designer/designer.js index d901a86..998a198 100644 --- a/src/components/form-designer/designer.js +++ b/src/components/form-designer/designer.js @@ -6,28 +6,12 @@ * remark: 如果要分发VForm源码,需在本文件顶部保留此文件头信息!! */ -import {deepClone, generateId, overwriteObj} from "@/utils/util" +import {deepClone, generateId, getDefaultFormConfig, overwriteObj} from "@/utils/util" import {containers, advancedFields, basicFields, customFields} from "@/components/form-designer/widget-panel/widgetsConfig.js" import {VARIANT_FORM_VERSION} from "@/utils/config" export function createDesigner(vueInstance) { - let defaultFormConfig = { - modelName: 'formData', - refName: 'vForm', - rulesName: 'rules', - labelWidth: 80, - labelPosition: 'left', - size: '', - labelAlign: 'label-left-align', - cssCode: '', - customClass: '', - functions: '', - layoutType: 'PC', - - onFormCreated: '', - onFormMounted: '', - onFormDataChange: '', - } + let defaultFormConfig = deepClone( getDefaultFormConfig() ) return { widgetList: [], diff --git a/src/components/form-designer/setting-panel/property-editor/field-picture-upload/picture-upload-fileTypes-editor.vue b/src/components/form-designer/setting-panel/property-editor/field-picture-upload/picture-upload-fileTypes-editor.vue index 12457ee..34d5744 100644 --- a/src/components/form-designer/setting-panel/property-editor/field-picture-upload/picture-upload-fileTypes-editor.vue +++ b/src/components/form-designer/setting-panel/property-editor/field-picture-upload/picture-upload-fileTypes-editor.vue @@ -29,9 +29,10 @@ data() { return { uploadPictureTypes: [ - {value: 'jpeg', label: 'JPG'}, - {value: 'png', label: 'PNG'}, - {value: 'gif', label: 'GIF'}, + {value: 'jpg', label: 'jpg'}, + {value: 'jpeg', label: 'jpeg'}, + {value: 'png', label: 'png'}, + {value: 'gif', label: 'gif'}, ], } } diff --git a/src/components/form-designer/widget-panel/widgetsConfig.js b/src/components/form-designer/widget-panel/widgetsConfig.js index 88a2c30..a2955d1 100644 --- a/src/components/form-designer/widget-panel/widgetsConfig.js +++ b/src/components/form-designer/widget-panel/widgetsConfig.js @@ -764,7 +764,7 @@ export const advancedFields = [ showFileList: true, limit: 3, fileMaxSize: 5, //MB - fileTypes: ['jpeg', 'png'], + fileTypes: ['jpg', 'jpeg', 'png'], //headers: [], //------------------- customClass: '', //自定义css类名 diff --git a/src/components/form-render/index.vue b/src/components/form-render/index.vue index 4ab6404..e69ba05 100644 --- a/src/components/form-render/index.vue +++ b/src/components/form-render/index.vue @@ -45,7 +45,7 @@ generateId, deepClone, getAllContainerWidgets, getAllFieldWidgets, insertCustomCssToHead, insertGlobalFunctionsToHtml, - traverseFieldWidgets + traverseFieldWidgets, buildDefaultFormJson } from "@/utils/util" import i18n, { changeLocale } from "../../utils/i18n" @@ -59,9 +59,12 @@ ...FieldComponents, }, props: { - formJson: Object, //prop传入的表单JSON配置 + formJson: { //prop传入的表单JSON配置 + type: Object, + default: () => buildDefaultFormJson() + }, formData: { //prop传入的表单数据 - Object, + type: Object, default: () => {} }, optionData: { //prop传入的选项数据 diff --git a/src/utils/util.js b/src/utils/util.js index f66211c..cf305ce 100644 --- a/src/utils/util.js +++ b/src/utils/util.js @@ -321,3 +321,30 @@ export function getQueryParam(variable) { return undefined; } + +export function getDefaultFormConfig() { + return { + modelName: 'formData', + refName: 'vForm', + rulesName: 'rules', + labelWidth: 80, + labelPosition: 'left', + size: '', + labelAlign: 'label-left-align', + cssCode: '', + customClass: '', + functions: '', + layoutType: 'PC', + + onFormCreated: '', + onFormMounted: '', + onFormDataChange: '', + } +} + +export function buildDefaultFormJson() { + return { + widgetList: [], + formConfig: deepClone( getDefaultFormConfig() ) + } +}