为v-form-render的form-json属性增加默认值。

master
vdpAdmin 2022-04-26 11:27:10 +08:00
parent 7cd25b0a68
commit 66c0a696ad
5 changed files with 40 additions and 25 deletions

View File

@ -6,28 +6,12 @@
* remark: 如果要分发VForm源码需在本文件顶部保留此文件头信息 * 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 {containers, advancedFields, basicFields, customFields} from "@/components/form-designer/widget-panel/widgetsConfig.js"
import {VARIANT_FORM_VERSION} from "@/utils/config" import {VARIANT_FORM_VERSION} from "@/utils/config"
export function createDesigner(vueInstance) { export function createDesigner(vueInstance) {
let defaultFormConfig = { let defaultFormConfig = deepClone( getDefaultFormConfig() )
modelName: 'formData',
refName: 'vForm',
rulesName: 'rules',
labelWidth: 80,
labelPosition: 'left',
size: '',
labelAlign: 'label-left-align',
cssCode: '',
customClass: '',
functions: '',
layoutType: 'PC',
onFormCreated: '',
onFormMounted: '',
onFormDataChange: '',
}
return { return {
widgetList: [], widgetList: [],

View File

@ -29,9 +29,10 @@
data() { data() {
return { return {
uploadPictureTypes: [ uploadPictureTypes: [
{value: 'jpeg', label: 'JPG'}, {value: 'jpg', label: 'jpg'},
{value: 'png', label: 'PNG'}, {value: 'jpeg', label: 'jpeg'},
{value: 'gif', label: 'GIF'}, {value: 'png', label: 'png'},
{value: 'gif', label: 'gif'},
], ],
} }
} }

View File

@ -764,7 +764,7 @@ export const advancedFields = [
showFileList: true, showFileList: true,
limit: 3, limit: 3,
fileMaxSize: 5, //MB fileMaxSize: 5, //MB
fileTypes: ['jpeg', 'png'], fileTypes: ['jpg', 'jpeg', 'png'],
//headers: [], //headers: [],
//------------------- //-------------------
customClass: '', //自定义css类名 customClass: '', //自定义css类名

View File

@ -45,7 +45,7 @@
generateId, deepClone, getAllContainerWidgets, getAllFieldWidgets, generateId, deepClone, getAllContainerWidgets, getAllFieldWidgets,
insertCustomCssToHead, insertCustomCssToHead,
insertGlobalFunctionsToHtml, insertGlobalFunctionsToHtml,
traverseFieldWidgets traverseFieldWidgets, buildDefaultFormJson
} from "@/utils/util" } from "@/utils/util"
import i18n, { changeLocale } from "../../utils/i18n" import i18n, { changeLocale } from "../../utils/i18n"
@ -59,9 +59,12 @@
...FieldComponents, ...FieldComponents,
}, },
props: { props: {
formJson: Object, //propJSON formJson: { //propJSON
type: Object,
default: () => buildDefaultFormJson()
},
formData: { //prop formData: { //prop
Object, type: Object,
default: () => {} default: () => {}
}, },
optionData: { //prop optionData: { //prop

View File

@ -321,3 +321,30 @@ export function getQueryParam(variable) {
return undefined; 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() )
}
}