修复子表单禁用后操作按钮未同步禁用的问题。

master
vdpAdmin 2021-12-15 18:03:42 +08:00
parent fac7e43faf
commit 965af7aae2
5 changed files with 23 additions and 27 deletions

View File

@ -38,7 +38,7 @@
<el-container class="center-layout-container">
<el-header class="toolbar-header">
<toolbar-panel :designer="designer" ref="toolbarRef">
<template #toolButton><slot name="customToolButtons"></slot></template>
<template #toolButtons><slot name="customToolButtons"></slot></template>
</toolbar-panel>
</el-header>
<el-main class="form-widget-main">

View File

@ -36,7 +36,7 @@
{{i18nt('designer.toolbar.exportCode')}}</el-button>
<el-button v-if="showToolButton('generateSFCButton')" type="text" @click="generateSFC">
<svg-icon icon-class="vue-sfc" />{{i18nt('designer.toolbar.generateSFC')}}</el-button>
<slot name="toolButton"></slot>
<slot name="toolButtons"></slot>
</div>
<el-dialog :title="i18nt('designer.toolbar.preview')" :visible.sync="showPreviewDialogFlag" v-if="showPreviewDialogFlag"

View File

@ -38,7 +38,6 @@ export default {
this.activeTabName = tp.options.name
}
})
}
},
@ -92,6 +91,9 @@ export default {
this.disableSubFormRow(rIdx)
})
}
//禁用3个操作按钮
this.actionDisabled = true
},
enableSubForm() {
@ -100,6 +102,9 @@ export default {
this.enableSubFormRow(rIdx)
})
}
//启用3个操作按钮
this.actionDisabled = false
},
resetSubForm() { //重置subForm数据为空

View File

@ -6,7 +6,7 @@
<el-row class="header-row">
<div class="action-header-column">
<span class="action-label">{{i18nt('render.hint.subFormAction')}}</span>
<el-button round type="primary" size="mini" class="action-button" @click="addSubFormRow"
<el-button :disabled="actionDisabled" round type="primary" size="mini" class="action-button" @click="addSubFormRow"
:title="i18nt('render.hint.subFormAddActionHint')">
{{i18nt('render.hint.subFormAddAction')}}<i class="el-icon-plus el-icon-right"></i></el-button>
</div>
@ -38,9 +38,9 @@
<el-row v-for="(subFormRowId, sfrIdx) in rowIdData" class="sub-form-row" :key="subFormRowId">
<div class="sub-form-action-column hide-label">
<div class="action-button-column">
<el-button circle type="" icon="el-icon-circle-plus-outline" @click="insertSubFormRow(sfrIdx)"
<el-button :disabled="actionDisabled" circle type="" icon="el-icon-circle-plus-outline" @click="insertSubFormRow(sfrIdx)"
:title="i18nt('render.hint.insertSubFormRow')"></el-button>
<el-button circle type="" icon="el-icon-delete" @click="deleteSubFormRow(sfrIdx)"
<el-button :disabled="actionDisabled" circle type="" icon="el-icon-delete" @click="deleteSubFormRow(sfrIdx)"
:title="i18nt('render.hint.deleteSubFormRow')"></el-button>
<span v-if="widget.options.showRowNumber" class="row-number-span">#{{sfrIdx+1}}</span>
</div>
@ -88,6 +88,7 @@
return {
rowIdData: [],
fieldSchemaData: [],
actionDisabled: false,
}
},
created() {

View File

@ -255,7 +255,7 @@
addFieldChangeEventHandler() {
this.$off('fieldChange') //
this.$on('fieldChange', function (fieldName, newValue, oldValue, subFormName, subFormRowIndex) {
this.$on('fieldChange', (fieldName, newValue, oldValue, subFormName, subFormRowIndex) => {
this.handleFieldDataChange(fieldName, newValue, oldValue, subFormName, subFormRowIndex)
this.$emit('formChange', fieldName, newValue, oldValue, this.formDataModel, subFormName, subFormRowIndex)
})
@ -374,8 +374,6 @@
* @param widgetNames 指定重新加载的组件名称或组件名数组不传则重新加载所有选项字段
*/
reloadOptionData(widgetNames) {
//this._provided.globalOptionData = this.optionData
let eventParams = []
if (!!widgetNames && (typeof widgetNames === 'string')) {
eventParams = [widgetNames]
@ -409,24 +407,16 @@
},
setFormData(formData) { //
//this.formDataModel = formData //injectformModel
Object.keys(this.formDataModel).forEach(propName => {
if (!!formData && formData.hasOwnProperty(propName)) {
this.formDataModel[propName] = deepClone( formData[propName] )
}
})
//this.formDataModel = formData
//this._provided.globalModel.formModel = formData /* 使inject */
//
// SubForm
//this.broadcast('ContainerItem', 'setFormData', formData)
this.broadcast('ContainerItem', 'setFormData', this.formDataModel)
// FieldWidget
//this.broadcast('FieldWidget', 'setFormData', formData)
this.broadcast('FieldWidget', 'setFormData', this.formDataModel)
},
@ -457,11 +447,11 @@
wNameList.forEach(wName => {
let foundW = this.getWidgetRef(wName)
if (!!foundW) {
// if (!!foundW.setDisabled) {
// foundW.setDisabled(true)
// }
!!foundW.setDisabled && foundW.setDisabled(true)
if (!!foundW.widget && (foundW.widget.type === 'sub-form')) {
foundW.disableSubForm()
} else {
!!foundW.setDisabled && foundW.setDisabled(true)
}
}
})
},
@ -471,11 +461,11 @@
wNameList.forEach(wName => {
let foundW = this.getWidgetRef(wName)
if (!!foundW) {
// if (!!foundW.setDisabled) {
// foundW.setDisabled(false)
// }
!!foundW.setDisabled && foundW.setDisabled(false)
if (!!foundW.widget && (foundW.widget.type === 'sub-form')) {
foundW.enableSubForm()
} else {
!!foundW.setDisabled && foundW.setDisabled(false)
}
}
})
},