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

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

上级 dcca4e43
<template>
<div class='app-form-part'>
动态表单
<avue-form :option="formOption" v-model="formVal"></avue-form>
</div>
</template>
<script lang = 'ts'>
......@@ -82,6 +82,40 @@ export default class AppFormPart extends Vue {
*/
@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生命周期)
*
......@@ -89,7 +123,31 @@ export default class AppFormPart extends Vue {
* @memberof AppFormPart
*/
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 {
* @memberof AppFormPart
*/
public destroy(){
if(this.formStateEvent){
this.formStateEvent.unsubscribe();
}
}
}
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册