MEditView9Base.tsx 1.6 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
import { Prop } from 'vue-property-decorator';
import { ViewBase } from './ViewBase';

/**
 * 实体多表单编辑视图基类
 *
 * @export
 * @class MEditView9Base
 * @extends {ViewBase}
 */
export class MEditView9Base extends ViewBase {

    /**
     * 刷新数据参数
     *
     * @type {number}
     * @memberof MEditView9Base
     */
    @Prop()
    public saveRefView?: number;

    /**
     * 关系数据变化
     *
     * @param {*} $event
     * @memberof MEditView9Base
     */
    public onViewDataDirty($event: any) {
        this.$emit('drdatachange', $event);
    }

    /**
     * 关系数据保存执行完成
     *
     * @param {*} $event
     * @memberof MEditView9Base
     */
    public onDRDataSaved($event: any) {
        this.$emit('drdatasaved', $event);
    }

    /**
     * 视图挂载完毕
     *
     * @protected
     * @memberof MEditView9Base
     */
    protected viewMounted(): void {
        if(this.formDruipart){
            this.formDruipart.subscribe((res: any) =>{
                if(Object.is(res.action,'save')){
                    let opt ={data:res.data};
                    Object.assign(opt,this.context);
                    this.viewState.next({ tag:'meditviewpanel', action: 'save', data: opt });
                }
                if(Object.is(res.action,'remove')){
                    let opt ={data:res.data};
                    Object.assign(opt,this.context);
                    this.viewState.next({ tag:'meditviewpanel', action: 'remove', data: opt });
                }
            });
        }
        this.viewState.next({ tag: 'meditviewpanel', action: 'load', data: this.context });   
    }

}