import Api from '~/service/Api';
import Utils from "../../../../utils";
import commonFunctions from '~/mixin/commonFunctions.js';
export default {
	mixins: [commonFunctions],
	methods: {
        // 获取地区机构号
		async getOwnExtkeyCondition() {
			console.log("进入getOwnExtkeyCondition");
			const loading = this.loading();
			let body = { ownExtKey: "" };
			if (
				this.root.model.trnInfo &&
				this.root.model.trnInfo.sdhflg == "X" &&
				this.model.boppay.ownextkey
			) {
				body.ownExtKey = this.model.boppay.ownextkey;
			}
			let res = await Api.post(
				`/${this.root.moduleRouter()}/bch/getBranchListByownExtKey`,
				body
			);
			loading.close();
			if (res.respCode === SUCCESS) {
				this.ownExtkeyList = res.data;
			}
		},
		//获取交易编码列列表
		async getBopcodItems(){
			console.log("进入getBopcodList");
			const loading = this.loading();
			let body = {iotyp:"O"};
			console.log(this.root.moduleRouter());
			let res = await Api.post(
				`/${this.root.moduleRouter()}/bopcod/getBopcodList`,
				body
			);
			loading.close();
			if (res.respCode === SUCCESS) {
				this.bopcodList = res.data;
			}

		},
		getSubTyp1(){
			let transName =this.root ? this.root.trnName : this.trnName;
			let preName = transName.toUpperCase().substring(0, 2);
			let subTyp = "";
			switch(preName){
			  case "GI":
				subTyp = "gcd";
				break;
			  case "NI":
				subTyp = "ncd";
				break;
			  case "BC":
				subTyp = "bcd";
				break;
			  case "BR":
				subTyp = "brd";
				break;
			}
			return subTyp;
		  },
		// boppay试算
	async boppayMapping(){
		if(this.root.model.boppay.aloneflg == ""){
			this.$notify.error({ title: '错误', message: '请选择是否随业务申报!' });
			return;
		  }
		if(this.root.model.boppay.ownextkey == ""){
		  this.$notify.error({ title: '错误', message: '请先选择地区机构号!' });
		  return;
		}
		if(this.root.model.boppay.szflg == "1"){
			if(this.root.model.boppay.acttyp == ""){
			  this.$notify.error({ title: '错误', message: '请先选择款项去向!' });
			  return;
			} 
		}
		this.queryBoppay();
			// let trnName = this.root ? this.root.trnName : this.trnName;
			// let commonData = this.root.buildCommonData(this.root.model,trnName);
			// let param = this.buildBoppay(commonData);
			// const busTyp = "boppay";
			// let subTyp = this.getSubTyp1();
			// const rtnmsg = await Api.post(
			//   `/${this.root.moduleRouter()}/${busTyp}/${subTyp}/bopPayMapping`,
			//   param
			// );
			// if (rtnmsg.respCode === SUCCESS) {
			//   Utils.copyValueFromVoData(this.model.boppay, rtnmsg.data);
			// }
		},
		async queryBoppay(){
			let trnName = this.root ? this.root.trnName : this.trnName;
			let commonData = this.root.buildCommonData(this.root.model,trnName);
			let param = this.buildBoppay(commonData);
			const busTyp = "boppay";
			let subTyp = this.getSubTyp1();
			const rtnmsg = await Api.post(
			  `/${this.root.moduleRouter()}/${busTyp}/${subTyp}/bopPayMapping`,
			  param
			);
			if (rtnmsg.respCode === SUCCESS) {
			  Utils.copyValueFromVoData(this.model.boppay, rtnmsg.data);
			}
		},
		buildBoppay(commonData) {
		  let transName =this.root ? this.root.trnName : this.trnName;
		  let commetItems = null;
		  if(transName.toUpperCase() == "CPTADV"){
			 commetItems = {
			  v72: this.root.model.swiadd.contag72,
			  contag72: this.model.cpdgrp.blk.contag72,
			  commet: this.model.cptp.commet,
			  fuynh2: this.model.cipmod.fuynh2,
			  fuynh3: this.model.cipmod.fuynh3,
			  fuynh4: this.model.cipmod.fuynh4,
			  fuyns1: this.model.cipmod.fuyns1,
			  fuyns2: this.model.cipmod.fuyns2,
			  fuyns3: this.model.cipmod.fuyns3,
			  fuyns4: this.model.cipmod.fuyns4,
			  covfuy1: this.model.cipmod.covfuy,
			  covfuy2: this.model.cipmod.covfy2,
			  covfuy3: this.model.cipmod.covfy3,
			  covfuy4: this.model.cipmod.covfy4,
			  fecomm: this.model.hvpmod.fecomm,
			  attcommet: this.model.attp.commet,
			  attcommet72: this.model.attp.com102,
			}
		  }
		  let params = {
			...commonData,
			userId: window.sessionStorage.userId,
			ownextkey: this.model.boppay.ownextkey,
			dclflg: this.model.boppay.dclflg,
			szflg: this.model.boppay.szflg,
			basflg: this.model.boppay.basflg,
			vrfflg: this.model.boppay.vrfflg,
			aloneflg: this.model.boppay.aloneflg,
			zbxmszh: this.model.boppay.zbxmszh,
			acttyp: this.model.boppay.acttyp,
			boptxcode: this.model.boppay.boptxcode,
			dbcgrp: this.model.boppay.dbcgrp,
			dbfgrp: this.model.boppay.dbfgrp,
			setFelList: this.model.setmod.setfeg.setfel,
			setFolList: this.model.setmod.setfog.setfol,
			setgll: this.model.setmod.setglg.setgll,
			doccur: this.model.setmod.doccur,
			ptydet: this.model.setmod.ptydet,
			feecorrol: this.model.setmod.feecorrol,
			commetItems: commetItems,
		  };
		  return params;
		},
	
		async initBoppay(commonData) {
			const params = this.buildBoppay(commonData);
			const busTyp = "boppay";
			let subTyp = this.getSubTyp1();
			let rtnmsg = await Api.post(`/${this.moduleRouter()}/${busTyp}/${subTyp}/bopPayMapping`, params);
			if (rtnmsg.respCode === SUCCESS) {
				Utils.copyValueFromVoData(this.model.boppay, rtnmsg.data);
			}
			return rtnmsg;
			
		},
		

		//依据是否随业务申报 设置 basflg dclflg  vrfflg 以及操作类型
		setBopflg(){
			//随业务申报 需要将 基础信息  申报信息  管理信息填写完整
			if (this.model.boppay.aloneflg === "1") {
			  if(this.model.boppay.szflg == "1"){
				this.model.boppay.basflg = "X"
				this.model.boppay.dclflg = "X"
				this.model.boppay.vrfflg = "X"
				this.model.boppay.dbcgrp.bas.actiontype = "A";
				this.model.boppay.dbcgrp.dcl.actiontype = "A";
				this.model.boppay.dbcgrp.vrf.actiontype = "A";
			  }else if(this.model.boppay.szflg == "2"){
				this.model.boppay.basflg = "X"
				this.model.boppay.dclflg = ""
				this.model.boppay.vrfflg = "X"
				this.model.boppay.dbfgrp.bas.actiontype = "A";
				this.model.boppay.dbfgrp.vrf.actiontype = "A";
			  }else{
				this.model.boppay.basflg = ""
				this.model.boppay.dclflg = ""
				this.model.boppay.vrfflg = ""
			  }
			}else if(this.model.boppay.aloneflg === "2" || this.model.boppay.aloneflg === "3"){
			   //不随业务申报或客户自行申报 只需要出 基础信息  
			  if(this.model.boppay.szflg == "1"){
				this.model.boppay.basflg = "X"
				this.model.boppay.dclflg = ""
				this.model.boppay.vrfflg = ""
				this.model.boppay.dbcgrp.bas.actiontype = "A";
				this.model.boppay.dbcgrp.dcl.actiontype = "";
				this.model.boppay.dbcgrp.vrf.actiontype = "";
			  }else if(this.model.boppay.szflg == "2"){
				this.model.boppay.basflg = "X"
				this.model.boppay.dclflg = ""
				this.model.boppay.vrfflg = ""
				this.model.boppay.dbfgrp.bas.actiontype = "A";
				this.model.boppay.dbfgrp.vrf.actiontype = "";
			  }else{
				this.model.boppay.basflg = ""
				this.model.boppay.dclflg = ""
				this.model.boppay.vrfflg = ""
			  }
			}else if(this.model.boppay.aloneflg === "5"){
        //境外可以选择 只申报基础信息和申报信息
        if(this.model.boppay.szflg == "1"){
          this.model.boppay.basflg = "X"
          this.model.boppay.dclflg = "X"
          this.model.boppay.vrfflg = ""
          this.model.boppay.dbcgrp.bas.actiontype = "A";
          this.model.boppay.dbcgrp.dcl.actiontype = "A";
          this.model.boppay.dbcgrp.vrf.actiontype = "";
          }else{
          this.model.boppay.basflg = ""
          this.model.boppay.dclflg = ""
          this.model.boppay.vrfflg = ""
          }
      }else{
			  //若清空则勾选全清空
				this.model.boppay.basflg = ""
				this.model.boppay.dclflg = ""
				this.model.boppay.vrfflg = ""
			}
		  },

		// 01 选择是否申报  若申报进行初步试算
		handleChangeSzflg(){

      //是否随业务申报选择 只申报基础和申报信息时,若选择了境内需要清空
      if (this.model.boppay.szflg == "2" && this.model.boppay.aloneflg == "5") {
        this.model.boppay.aloneflg = "";
        this.model.boppay.basflg = "";
			  this.model.boppay.dclflg = "";
			  this.model.boppay.vrfflg = "";
      }

			if(this.model.boppay.szflg == "1" || this.model.boppay.szflg == "2"){
				
				if (this.model.boppay.szflg === "2") {
					this.model.boppay.acttyp = "";
				}
				
				//设置勾选
				this.setBopflg();
				//触发试算
				this.queryBoppay();
			  }
			if(this.model.boppay.szflg == "" || this.model.boppay.szflg == "3"){
			this.model.boppay.acttyp = "";
			this.model.boppay.basflg = "";
			this.model.boppay.dclflg = "";
			this.model.boppay.vrfflg = "";
			this.model.boppay.ownextkey = "";
			this.model.boppay.aloneflg = "";
			//触发试算
			this.queryBoppay();
      }
      
      

		  },

		//02 选择是否随业务申报  设置勾选,触发试算
		handleChangeBopflw() {

			//设置勾选
			this.setBopflg();

			//触发试算
			if (this.model.boppay.aloneflg === "1" || this.model.boppay.aloneflg === "2" || this.model.boppay.aloneflg === "3"  || this.model.boppay.aloneflg == "5") {
				this.boppayMapping();
			}
		},

		//03 境外需要选择款项来源  并触发试算
		handleChangeActtyp(){
			if(this.model.boppay.szflg == "1" ){
				this.model.boppay.dbcgrp.bas.jwjn = this.model.boppay.acttyp;
				this.boppayMapping();
			}
		},

			// async handleChangeBasflg() {
			//   if (this.model.boppay.basflg === "X") {
			// 	if (this.model.boppay.szflg === "1") {
			// 	  this.model.boppay.dbcgrp.bas.actiontype = "A";
			// 	  this.model.boppay.dbcgrp.dcl.actiontype = "A";
			// 	  this.model.boppay.dbcgrp.vrf.actiontype = "A";
			// 	}
			// 	if (this.model.boppay.szflg === "2") {
			// 	  this.model.boppay.dbfgrp.bas.actiontype = "A";
			// 	  this.model.boppay.dbfgrp.vrf.actiontype = "A";
			// 	}
			// 	this.boppayMapping();
			//   }
			// },
			// async handleChangeDclflg() {
			//   if(this.model.boppay.dclflg === "X"){
			// 	this.model.boppay.dbcgrp.dcl.actiontype = "A";
			//   }
			//   if(this.model.boppay.basflg == "X"){
			// 	this.boppayMapping();
			//   }
			// },
			// async handleChangeVrfflg() {
			//   if(this.model.boppay.vrfflg === "X"){
			// 	if(this.model.boppay.szflg == "1"){
			// 		this.model.boppay.dbcgrp.vrf.actiontype = "A";
			// 	}
			// 	if(this.model.boppay.szflg == "2"){
			// 		this.model.boppay.dbfgrp.vrf.actiontype = "A";
			// 	}
			//   }
			//   if(this.model.boppay.basflg == "X"){
			// 	this.boppayMapping();
			//   }
			// },
		setDbcbasOwnextkey(){
			this.model.boppay.dbcgrp.bas.ownextkey = this.model.boppay.ownextkey;
		},
		setDbfbasOwnextkey(){
			this.model.boppay.dbfgrp.bas.ownextkey = this.model.boppay.ownextkey;
		},

		//获取试点行标志 N-非试点  Y-试点
		async initPilotBchBop() {
			let params = {
			  ownextkey: "",
			};
			let rtnmsg = await Api.post(`/${this.moduleRouter()}/bopcalcom/pilotbopbch`, params);
			if (rtnmsg.respCode == SUCCESS) {
			  this.model.boppay.enableflg = rtnmsg.data;
			}
		  },
    }
}