mirror of
https://github.com/vform666/variant-form3-vite.git
synced 2025-05-11 10:44:36 +08:00
142 lines
3.7 KiB
JavaScript
142 lines
3.7 KiB
JavaScript
import {generateId} from "@/utils/util";
|
|
|
|
export default {
|
|
computed: {
|
|
customClass() {
|
|
return this.widget.options.customClass || ''
|
|
},
|
|
|
|
formModel: {
|
|
cache: false,
|
|
get() {
|
|
return this.globalModel.formModel
|
|
}
|
|
},
|
|
|
|
},
|
|
|
|
methods: {
|
|
unregisterFromRefList() { //销毁容器组件时注销组件ref
|
|
if ((this.refList !== null) && !!this.widget.options.name) {
|
|
let oldRefName = this.widget.options.name
|
|
delete this.refList[oldRefName]
|
|
}
|
|
},
|
|
|
|
//--------------------- 以下为组件支持外部调用的API方法 begin ------------------//
|
|
/* 提示:用户可自行扩充这些方法!!! */
|
|
|
|
setHidden(flag) {
|
|
this.widget.options.hidden = flag
|
|
},
|
|
|
|
activeTab(tabIndex) { //tabIndex从0计数
|
|
if ((tabIndex >= 0) && (tabIndex < this.widget.tabs.length)) {
|
|
this.widget.tabs.forEach((tp, idx) => {
|
|
tp.options.active = idx === tabIndex
|
|
if (idx === tabIndex) {
|
|
this.activeTabName = tp.options.name
|
|
}
|
|
})
|
|
}
|
|
},
|
|
|
|
disableTab(tabIndex) {
|
|
if ((tabIndex >= 0) && (tabIndex < this.widget.tabs.length)) {
|
|
this.widget.tabs[tabIndex].options.disabled = true
|
|
}
|
|
},
|
|
|
|
enableTab(tabIndex) {
|
|
if ((tabIndex >= 0) && (tabIndex < this.widget.tabs.length)) {
|
|
this.widget.tabs[tabIndex].options.disabled = false
|
|
}
|
|
},
|
|
|
|
hideTab(tabIndex) {
|
|
if ((tabIndex >= 0) && (tabIndex < this.widget.tabs.length)) {
|
|
this.widget.tabs[tabIndex].options.hidden = true
|
|
}
|
|
},
|
|
|
|
showTab(tabIndex) {
|
|
if ((tabIndex >= 0) && (tabIndex < this.widget.tabs.length)) {
|
|
this.widget.tabs[tabIndex].options.hidden = false
|
|
}
|
|
},
|
|
|
|
disableSubFormRow(rowIndex) {
|
|
this.widget.widgetList.forEach(subWidget => {
|
|
let swRefName = subWidget.options.name + '@row' + this.rowIdData[rowIndex]
|
|
let foundSW = this.getWidgetRef(swRefName)
|
|
if (!!foundSW) {
|
|
foundSW.setDisabled(true)
|
|
}
|
|
})
|
|
},
|
|
|
|
enableSubFormRow(rowIndex) {
|
|
this.widget.widgetList.forEach(subWidget => {
|
|
let swRefName = subWidget.options.name + '@row' + this.rowIdData[rowIndex]
|
|
let foundSW = this.getWidgetRef(swRefName)
|
|
if (!!foundSW) {
|
|
foundSW.setDisabled(false)
|
|
}
|
|
})
|
|
},
|
|
|
|
disableSubForm() {
|
|
if (this.rowIdData.length > 0) {
|
|
this.rowIdData.forEach((dataRow, rIdx) => {
|
|
this.disableSubFormRow(rIdx)
|
|
})
|
|
}
|
|
|
|
//禁用3个操作按钮
|
|
this.actionDisabled = true
|
|
},
|
|
|
|
enableSubForm() {
|
|
if (this.rowIdData.length > 0) {
|
|
this.rowIdData.forEach((dataRow, rIdx) => {
|
|
this.enableSubFormRow(rIdx)
|
|
})
|
|
}
|
|
|
|
//启用3个操作按钮
|
|
this.actionDisabled = false
|
|
},
|
|
|
|
resetSubForm() { //重置subForm数据为空
|
|
if (this.widget.type === 'sub-form') {
|
|
let subFormModel = this.formModel[this.widget.options.name]
|
|
if (!!subFormModel) {
|
|
subFormModel.splice(0, subFormModel.length)
|
|
this.rowIdData.splice(0, this.rowIdData.length)
|
|
}
|
|
}
|
|
},
|
|
|
|
getSubFormValues(needValidation = true) {
|
|
if (this.widget.type === 'sub-form') {
|
|
//TODO: 逐行校验子表单!!
|
|
return this.formModel[this.widget.options.name]
|
|
} else {
|
|
this.$message.error(this.i18nt('render.hint.nonSubFormType'))
|
|
}
|
|
},
|
|
|
|
// validateField(fieldName) { //逐行校验子表单字段
|
|
// //TODO:
|
|
// },
|
|
//
|
|
// validateSubForm() { //逐行校验子表单全部字段
|
|
// //TODO:
|
|
// },
|
|
|
|
//--------------------- 以上为组件支持外部调用的API方法 end ------------------//
|
|
|
|
},
|
|
|
|
}
|