import CPXHService from '@/service/cpxh/cpxh-service';
import { Verify } from '@/utils/verify/verify';


/**
 * 获取厂牌信息
 *
 * @export
 * @class GetCPXHXXBase
 */
export default class GetCPXHXXBase {

    /**
     * 名称
     * 
     * @memberof  GetCPXHXXBase
     */
    private name:string ="GetCPXHXX";

    /**
     * 唯一标识
     * 
     * @memberof  GetCPXHXXBase
     */
    private id:string = "e39b195ccb2e3493268379a4fe8e5d62";

    /**
     * 默认参数名称
     * 
     * @memberof  GetCPXHXXBase
     */
    private defaultParamName:string = "Default";

    /**
     * Creates an instance of  GetCPXHXXBase.
     * 
     * @param {*} [opts={}]
     * @memberof  GetCPXHXXBase
     */
    constructor(opts: any = {}) {
        
    }


    /**
     * 计算0节点结果
     * 
     * @param params 传入参数
     */
    public compute0Cond(params:any):boolean{
        return true;
    }

    /**
     * 计算1节点结果
     * 
     * @param params 传入参数
     */
    public compute1Cond(params:any):boolean{
        return true;
    }

    /**
     * 计算2节点结果
     * 
     * @param params 传入参数
     */
    public compute2Cond(params:any):boolean{
        return true;
    }

    /**
     * 执行逻辑
     * 
     * @param context 应用上下文
     * @param params 传入参数
     */
    public onExecute(context:any,params:any,isloading:boolean){
        return this.executeBegin(context,params,isloading);
    }


    /**
    * 获取选中的厂牌型号ID
    * 
    * @param context 应用上下文
    * @param params 传入参数
    */
    private async executePrepareparam1(context:any,params:any,isloading:boolean){
        // 准备参数节点
        Object.assign(params,{cpxhid:params.cpxhid});
        Object.assign(context,{cpxh:params.cpxhid});
        if(this.compute1Cond(params)){
            return this.executeDeaction1(context,params,isloading);   
        }
    }

    /**
    * 回填厂牌型号信息至保险单
    * 
    * @param context 应用上下文
    * @param params 传入参数
    */
    private async executePrepareparam2(context:any,params:any,isloading:boolean){
        // 准备参数节点
        Object.assign(params,{abl:params.abl});
        Object.assign(params,{cllxms:params.cllxms});
        Object.assign(params,{clsjjz:params.clsjjz});
        Object.assign(params,{dycpxh:params.dycpxh});
        Object.assign(params,{gl:params.gl});
        Object.assign(params,{hdzk:params.hdzk});
        Object.assign(params,{hdzzl:params.hdzzl});
        Object.assign(params,{hpds:params.hpds});
        Object.assign(params,{pl:params.pl});
        Object.assign(params,{xcgzj:params.xcgzj});
        Object.assign(params,{zbzl:params.zbzl});
        return params;
    }

    /**
    * 获取厂牌型号完整信息
    * 
    * @param context 应用上下文
    * @param params 传入参数
    */
    private async executeDeaction1(context:any,params:any,isloading:boolean){
        // 行为处理节点
        let result: any;
        const targetService:CPXHService = new CPXHService();
        if (targetService['Get'] && targetService['Get'] instanceof Function) {
            result = await targetService['Get'](context,params, false);
        }
        if(result && result.status == 200){
            Object.assign(params,result.data);
        if(this.compute0Cond(params)){
            return this.executePrepareparam2(context,params,isloading);   
        }
        }
    }

    /**
    * 开始
    * 
    * @param params 传入参数
    */
    private async executeBegin(context:any,params:any,isloading:boolean){
        //开始节点
        if(this.compute2Cond(params)){
            return this.executePrepareparam1(context,params,isloading);   
        }
    }


}