Ai
376 Star 3.6K Fork 2.7K

唛盟开源/低代码开发平台-唛盟lcode

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
FormExpand.vue 3.18 KB
一键复制 编辑 原始数据 按行查看 历史
Admin 提交于 2024-05-18 04:35 +08:00 . 优化
<template>
<form-data :visible="visible" :label-width="labelWidth" :label-position="labelPosition" v-if="formFields&&formFields.length>0" ref="formDataRef" v-model="editForm" :formFields="formFields" :form-def="formDef" @change="onChange"><div></div></form-data>
</template>
<script>
import FormData from './FormData.vue';
/**
* 自能表单表单扩展
*/
export default {
name:'FieldExpand',
components: {
FormData,
},
computed: {
},
props:{
visible:{
type:Boolean,
default:false,
},
expandId:{
type:String,
default:null,
},
value:{
type:[String,Object],
default:null,
},
labelWidth:{type:String,default:null},
labelPosition:{type:String,default:null}
},
watch: {
expandId(){
this.getFormFields();
},
value(){
this.initCurrData();
},
},
data() {
return {
load:{list:false},
editForm: {
},
formDef:{},
formFields:[],
formDataVisible:false,
}
},
methods: {
//由组件扩展添加其它的初始页面的逻辑(mounted+onOpen都会调用此函数,建议只添加公共逻辑)
initCurrData(){
if(this.value){
if(this.value instanceof Object ){
Object.assign(this.editForm,this.value)
}else if(this.value instanceof String && this.value.startsWith('{')){
Object.assign(this.editForm,JSON.parse(this.value))
}
}
},
//获取列表 FormField 表单字段定义
getFormFields() {
if(!this.expandId){
return;
}
let params = {
formId:this.expandId
};
this.load.list=true;
this.$mdp.listFormDefCacheFirst(params).then((res) => {
var tips=res.tips;
if(tips.isOk){
this.formFields = res.data.formFields;
this.formDef=res.data.formDef
}else{
//this.$message({true,message: tips.msg, type: 'error' });
}
this.load.list=false;
}).catch(() => {
this.load.list=false;
});
},
onChange(val){
if(this.value==null || this.value==''){
this.$emit('input',JSON.stringify(this.editForm))
this.$emit('change',this.editForm)
return;
}
if(this.value instanceof Object ){
this.$emit('input',this.editForm)
this.$emit('change',this.editForm)
}else if(this.value instanceof String && this.value.startsWith('{')){
this.$emit('input',JSON.stringify(this.editForm))
this.$emit('change',this.editForm)
}
}
},
mounted() {
this.initCurrData();
this.getFormFields();
}
}
</script>
<style scoped>
</style>
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
JavaScript
1
https://gitee.com/maimengcloud/mdp-lcode-ui-web.git
git@gitee.com:maimengcloud/mdp-lcode-ui-web.git
maimengcloud
mdp-lcode-ui-web
低代码开发平台-唛盟lcode
master

搜索帮助