提交 cf6aeb27 编写于 作者: tony001's avatar tony001

新增动态表单组件 --- fix1

上级 dcca4e43
<template> <template>
<div class='app-form-part'> <div class='app-form-part'>
动态表单 <avue-form :option="formOption" v-model="formVal"></avue-form>
</div> </div>
</template> </template>
<script lang = 'ts'> <script lang = 'ts'>
...@@ -82,6 +82,40 @@ export default class AppFormPart extends Vue { ...@@ -82,6 +82,40 @@ export default class AppFormPart extends Vue {
*/ */
@Prop() public formState!: Subject<any>; @Prop() public formState!: Subject<any>;
/**
* 订阅对象
*
* @protected
* @type {(Subscription | undefined)}
* @memberof AppFormPart
*/
public formStateEvent: Subscription | undefined;
/**
* 远程地址
*
* @protected
* @type {(Subscription | undefined)}
* @memberof AppFormPart
*/
public remoteUrl:string ="";
/**
* 动态表单配置对象
*
* @type {*}
* @memberof AppFormPart
*/
public formOption:any;
/**
* 动态表单值对象
*
* @type {*}
* @memberof AppFormPart
*/
public formVal:any;
/** /**
* 初始化组件(vue生命周期) * 初始化组件(vue生命周期)
* *
...@@ -89,7 +123,31 @@ export default class AppFormPart extends Vue { ...@@ -89,7 +123,31 @@ export default class AppFormPart extends Vue {
* @memberof AppFormPart * @memberof AppFormPart
*/ */
public created(){ public created(){
if (this.formState) {
this.formStateEvent = this.formState.subscribe(({ type, data }) => {
if (Object.is("load", type)){
this.loadRemoteFormModel();
}
});
}
}
/**
* 加载动态表单数据模型
*
* @type {Subject<any>}
* @memberof AppFormPart
*/
public loadRemoteFormModel(){
this.$http.get(this.remoteUrl).then((res:any) =>{
if(res.status && res.status == 200){
this.formOption = res.data;
}else{
console.warn("加载动态表单模型数据异常");
}
}).catch((error:any) =>{
console.warn("加载动态表单模型数据异常");
})
} }
/** /**
...@@ -99,7 +157,9 @@ export default class AppFormPart extends Vue { ...@@ -99,7 +157,9 @@ export default class AppFormPart extends Vue {
* @memberof AppFormPart * @memberof AppFormPart
*/ */
public destroy(){ public destroy(){
if(this.formStateEvent){
this.formStateEvent.unsubscribe();
}
} }
} }
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册