import Api from '~/service/Api';
import commonFunctions from '~/mixin/commonFunctions.js';
import moment from 'moment';
import { cloneDeep } from "lodash";
import Utils from "~/utils"

export default {
	mixins: [commonFunctions],
	methods: {
     buildDftcre() {
        let params = {
          ...this.model.dftcre.buildParams,
          dftcre: this.model.dftcre
        }
        
        return params;
     },
     onChangeAmt() {
        this.model.dftcre.dfdgrp.cbs.opn1.amt = this.model.dftcre.dfdgrp.cbs.max.amt;
        this.calcName();
     },
     calcTenday(){
      let fromDate = this.model.dftcre.dfdgrp.rec.stttendat;
			let toDate = this.model.dftcre.dfdgrp.rec.matdat;
			if(fromDate == "" || fromDate == null || toDate == "" || toDate == null ){
				this.model.dftcre.dfdgrp.rec.tenday = 0;
				return;
			}
			let day1 = moment(toDate).format('YYYY-MM-DD');
			let day2 = moment(fromDate).format('YYYY-MM-DD');
			this.model.dftcre.dfdgrp.rec.tenday = moment(day1).diff(day2, 'days');
     },
     onChangeFlttyp(){
        let flttyp = this.model.dftcre.dfdgrp.rec.flttyp;
        if (flttyp === '0' || flttyp === '3') {
          this.model.dftcre.dfdgrp.rec.fltval = 0;
          if (this.model.dftcre.dfdgrp.rec.modifySet) {
              this.model.dftcre.dfdgrp.rec.modifySet = this.model.dftcre.dfdgrp.rec.modifySet.filter(key=>key!='fltval')
          }
        }
     },
     onChangeDff(){
        this.getDfuflg();
        this.getTrntyp();
     },
     onChangeDfuflg(){
      this.getTrntyp();
     },
     getTrntyp(){
        let fintyp = this.model.dftcre.dfdgrp.rec.fintyp;
        let dfuflg = this.model.dftcre.dfdgrp.rec.dfuflg;
        if (fintyp === 'A' && dfuflg === '1') {
          //我行融资+境内代付
          this.model.dftcre.trntyp = 'A';
        }
        if (fintyp === 'A' && dfuflg === '2') {
          //我行融资+境外代付
          this.model.dftcre.trntyp = 'B';
          
        }
        if (fintyp === 'B' && dfuflg === '1') {
          //我行风险参与+境内代付
          this.model.dftcre.trntyp = 'C';
        }
        if (fintyp === 'B' && dfuflg === '2') {
          //我行风险参与+境外代付
          this.model.dftcre.trntyp = 'D';
        }
     },
     async processDftcre(requestParams) {
        if(requestParams){
          this.model.dftcre.buildParams = cloneDeep(requestParams)
          delete this.model.dftcre.buildParams.rec.dftcreVo
          if (this.model.dftcre.buildParams.rec.trtcreVo){
            delete this.model.dftcre.buildParams.rec.trtcreVo.buildParams
          }
        }
        const loading = this.loading('正在计算委托方代付数据')
        let dftcreRequest = this.buildDftcre()
        let objtyp = dftcreRequest.rec.objtyp;
        let rtnmsg = await Api.post(`/${this.moduleRouter()}/${objtyp.toLowerCase()}/dftcre/assertDftcre`, dftcreRequest);
        if (rtnmsg.respCode == SUCCESS) {
          this.model.dftcre.oricur = rtnmsg.data.dftcre.oricur;
          this.model.dftcre.oriamt = rtnmsg.data.dftcre.oriamt;
          this.model.dftcre.dfflag = rtnmsg.data.dftcre.dfflag;
          Utils.copyValueFromVoData( this.model.dftcre.dfdgrp, rtnmsg.data.dftcre.dfdgrp);
          Utils.copyValueFromVoData( this.model.dftcre.dftp, rtnmsg.data.dftcre.dftp);
          this.getTrntyp();
        }
        loading.close();
        return rtnmsg;
     },
     async queryOwnref() {
      let data = {
        ownref: this.model.dftcre.dfdgrp.rec.ownref,
        ptainr: this.model.dftcre.dfdgrp.apl.pts.ptainr,
        trntyp: this.model.dftcre.dfdgrp.rec.trntyp
      }
      let objtyp = this.model.dftcre.buildParams.rec.objtyp;
      const loading = this.loading("正在获取委托方代付业务编号");
      let res = await Api.post(`/${this.moduleRouter()}/${objtyp.toLowerCase()}/dftcre/getRef`, data);
      loading.close();
      if (res.respCode === SUCCESS) {
        this.model.dftcre.dfdgrp.rec.ownref = res.data;
			} else {
        this.$message.error(res.respMsg);
      }
     },
     async calcName(){
        let objtyp = this.model.dftcre.buildParams.rec.objtyp;
        const loading = this.loading();
        let res = await Api.post(`/${this.moduleRouter()}/${objtyp.toLowerCase()}/dftcre/getRecNam`, this.model.dftcre);
        loading.close();
        if (res.respCode === SUCCESS) {
          this.model.dftcre.dfdgrp.rec.nam = res.data;
        }
     },
     async getDfuflg(){
      let objtyp = this.model.dftcre.buildParams.rec.objtyp;
      const loading = this.loading();
      let res = await Api.post(`/${this.moduleRouter()}/${objtyp.toLowerCase()}/dftcre/getDfuflg`, this.model.dftcre.dfdgrp);
      loading.close();
      if (res.respCode === SUCCESS) {
        this.model.dftcre.dfdgrp.rec.dfuflg = res.data;
      }
    },

    //修改代付金额币种,代付利息币种随之改变
    changeMaxcur() {
      this.model.dftcre.dfdgrp.rec.rescur = this.model.dftcre.dfdgrp.cbs.max.cur
    },
    async getEcifName(){
      let extkey = this.model.dftcre.dfdgrp.rec.bankno;
      if (extkey !== '') {
        const loading = this.loading("正在请求ECIF0905获取客户信息");
        let request = {
          ecifno: extkey
        }
        let objtyp = this.model.dftcre.buildParams.rec.objtyp;
        let res = await Api.post(`/${this.moduleRouter()}/${objtyp.toLowerCase()}/dftcre/getEcifName`, request);
        if (res.respCode === SUCCESS) {
          this.model.dftcre.dfdgrp.rec.bankcn = res.data;
        }
        loading.close();
      }
    }
  }
}