<template>
    <div class="eibs-tab">
        <br style="margin-top: 20px"/>
        <c-row :gutter="80" v-if="showSelect('cfaeca')">
            <c-col :span="8">
                <el-form-item label="外汇贷款" :rules="[{ required: cfaecaVisflg, message: '必输项', trigger: ['blur', 'change']}]" prop="cfabop.cfaeca.cfaflg">
                    <c-select  :disabled="!cfaecaVisflg" 
                     dbCode="cfaflg" :filterKey="filterCfaflg('eca')" @change="onCfaflgeca" placeholder="请选择数据采集标志"
                              style="width: 100%" v-model="model.cfaeca.cfaflg">
                    </c-select>
                </el-form-item>
            </c-col>
            <c-col :span="4">
                <el-form-item class="checkbox-left" prop="cfabop.cfaeca.basflg">
                    <c-checkbox true-label="X" :disabled="true" v-model="model.cfaeca.basflg">签约信息</c-checkbox>
                </el-form-item>
            </c-col>
            <c-col :span="4">
                <el-form-item class="checkbox-left" label="" prop="cfabop.cfaeca.dclflg">
                    <c-checkbox true-label="X" :disabled="true" v-model="model.cfaeca.dclflg">变动信息</c-checkbox>
                </el-form-item>
            </c-col>
        </c-row>
        <c-row :gutter="80" v-if="showSelect('cfaeca')">
            <c-col :span="8">
                <el-form-item label="地区机构号" prop="cfabop.cfaeca.ownextkey">
                    <c-select :disabled="model.cfaeca.cfaflg !='1' " placeholder="请选择地区机构号" v-model="model.cfaeca.ownextkey">
                        <el-option :key="item.inr" :label="item.branch + ' ' + item.bchname" :value="item.branch"
                                   v-for="item in ownExtkeyList"></el-option>
                    </c-select>
                </el-form-item>
            </c-col>
             <c-col :span="4">
                <el-form-item class="checkbox-left" label="" prop="cfabop.cfaeca.cdaflg">
                    <c-checkbox true-label="X" :disabled="!cfaecaVisflg || !disableCda"  @change="onCfaflgcda" v-model="model.cfaeca.cdaflg">外保内贷</c-checkbox>
                </el-form-item>
            </c-col>
        </c-row>

        <c-row :gutter="80" v-if="showSelect('cfaead')">
            <c-col :span="8">
                <el-form-item  label="海外代付" :rules="[{ required: cfaeadVisflg, message: '必输项', trigger: ['blur', 'change']}]" 
                              prop="cfabop.cfaead.cfaflg">
                    <c-select :disabled="!cfaeadVisflg"  dbCode="cfaflg" :filterKey="filterCfaflg('ead')"  @change="onCfaflgead"  placeholder="请选择数据采集标志"
                              v-model="model.cfaead.cfaflg">
                    </c-select>
                </el-form-item>
            </c-col>
            <c-col :span="4">
                <el-form-item class="checkbox-left" prop="cfabop.cfaead.basflg">
                    <c-checkbox true-label="X" :disabled="true" v-model="model.cfaead.basflg">签约信息</c-checkbox>
                </el-form-item>
            </c-col>
            <c-col :span="4">
                <el-form-item class="checkbox-left" prop="cfabop.cfaead.dclflg">
                    <c-checkbox true-label="X" :disabled="true"  v-model="model.cfaead.dclflg">变动信息</c-checkbox>
                </el-form-item>
            </c-col>
        </c-row>
        <c-row :gutter="80" v-if="showSelect('cfaead')">
            <c-col :span="8">
                <el-form-item :rules="[{required:model.cfaead.cfaflg==='1',message:'必填项',trigger:'change'}]"
                              label="地区机构号" prop="cfabop.cfaead.ownextkey">
                    <c-select :disabled="model.cfaead.cfaflg !='1' " placeholder="请选择地区机构号" v-model="model.cfaead.ownextkey">
                        <el-option :key="item.inr" :label="item.branch + ' ' + item.bchname" :value="item.branch"
                                   v-for="item in ownExtkeyList"></el-option>
                    </c-select>
                </el-form-item>
            </c-col>
        </c-row>

        <c-row :gutter="80" v-if="showSelect('cfaeaf')">
            <c-col :span="8">
                <el-form-item  label="远期信用证" :rules="[{ required: cfaeafVisflg, message: '必输项', trigger: ['blur', 'change']}]" 
                              prop="cfabop.cfaeaf.cfaflg">
                    <c-select :disabled="!cfaeafVisflg" dbCode="cfaflg" :filterKey="filterCfaflg('eaf')" @change="onCfaflgeaf"  placeholder="请选择数据采集标志"
                              v-model="model.cfaeaf.cfaflg"></c-select>
                </el-form-item>
            </c-col>
            <c-col :span="4">
                <el-form-item class="checkbox-left" prop="cfabop.cfaeaf.basflg">
                    <c-checkbox true-label="X" :disabled="true" v-model="model.cfaeaf.basflg">签约信息</c-checkbox>
                </el-form-item>
            </c-col>
            <c-col :span="4">
                <el-form-item class="checkbox-left" prop="cfabop.cfaeaf.dclflg">
                    <c-checkbox true-label="X" :disabled="true" v-model="model.cfaeaf.dclflg">变动信息</c-checkbox>
                </el-form-item>
            </c-col>
        </c-row>
        <c-row :gutter="80" v-if="showSelect('cfaeaf')">
            <c-col :span="8">
                <el-form-item :rules="[{required:model.cfaeaf.cfaflg==='1',message:'必填项',trigger:'change'}]"
                              label="地区机构号" prop="cfabop.cfaeaf.ownextkey">
                    <c-select :disabled="model.cfaeaf.cfaflg !='1'" placeholder="请选择地区机构号" v-model="model.cfaeaf.ownextkey">
                        <el-option :key="item.inr" :label="item.branch + ' ' + item.bchname" :value="item.branch"
                                   v-for="item in ownExtkeyList"></el-option>
                    </c-select>
                </el-form-item>
            </c-col>

            <c-col :span="8" v-if="this.root.trnName.slice(0,6) === 'brtudp'">
                <el-form-item :rules="[{required:model.cfaeaf.cfaflg==='4',message:'必填项',trigger:'change'}]"
                              label="不报送原因" prop="cfabop.cfaeaf.cfabrttxt">
                    <c-select :disabled="model.cfaeaf.cfaflg !='4'" :allow-create="true"  :filterable="true"  
                              placeholder="请选择不申报原因" v-model="model.cfaeaf.cfabrttxt"> 
                               <el-option :key="item.code" :label="item.label" :value="item.label" v-for="item in brttxtcode"></el-option>
                    </c-select>
                </el-form-item>
            </c-col>
        </c-row>

        <c-row :gutter="80" v-if="showSelect('cfaeca')">
            <c-col :span="8">
                <el-form-item label="资金用途" prop="cfabop.cfaeca.cda.useofunds">
                    <c-select :disabled="model.cfaeca.cdaflg!=='X'" dbCode="dofuse" placeholder="请选择资金用途"
                              v-model="model.cfaeca.cda.useofunds">
                    </c-select>
                </el-form-item>
            </c-col>
        </c-row>

        <c-row :gutter="80" v-if="showSelect('cfaeca')">
            <c-col :span="12">
                <el-form-item label="中资企业境外担保项下境内贷款额度币种" label-width="300px" prop="cfabop.cfaeca.cda.cfeogudcurr">
                    <c-select :disabled="model.cfaeca.cdaflg!=='X'" dbCode="curtxt" placeholder="请选择中资企业境外担保项下境内贷款额度币种"
                              sort="SRT" style="width:100%" v-model="model.cfaeca.cda.cfeogudcurr"></c-select>
                </el-form-item>
            </c-col>
        </c-row>

        <c-row :gutter="80" v-if="showSelect('cfaeca')">
            <c-col :span="12">
                <el-form-item label="中资企业境外担保项下境内贷款额度金额" label-width="300px" prop="cfabop.cfaeca.cda.cfeogudamount">
                    <c-input-currency :disabled="model.cfaeca.cdaflg!=='X'" placeholder="请选择中资企业境外担保项下境内贷款额度金额"
                                      v-model="model.cfaeca.cda.cfeogudamount"></c-input-currency>
                </el-form-item>
            </c-col>
        </c-row>

        <c-row :gutter="80" v-if="showSelect('cfaeca')">
            <c-col :span="12">
                <el-form-item label="中资企业境外担保项下贷款业务批准文件号" label-width="300px" prop="cfabop.cfaeca.cda.cfeogudad">
                    <c-input :disabled="model.cfaeca.cdaflg!=='X'" maxlength="128" placeholder="请输入" show-word-limit
                             type="textarea" v-model="model.cfaeca.cda.cfeogudad"></c-input>
                </el-form-item>
            </c-col>
        </c-row>
    </div>
</template>
<script>
import event from "../event";
import Cfaeca from "../../cfaeca/model";
import Cfaead from "../../cfaead/model";
import Cfaeaf from "../../cfaeaf/model";
import commonDepend from "~/mixin/commonDepend";

export default {
  inject: ["root"],
  mixins: [event,commonDepend],
  components: {},
  props: ["model", "codes"],
  watch: {
    //试算国内外汇贷款
    "model.cfaeca.cfaflg"(newVal) {
        //快照模式不触发试算
        if (this.isInDisplay) {
                return
            }
      if (newVal === "1" || newVal === "2" || newVal === "3") {
        let buildCfabop = this.root.buildCommonData(
          this.root.model,
          this.root.trnName
        );
        this.initCfabop(buildCfabop);
      } 
      //不再清空模型,不好控制, 前手报送数据的 sta 需要用于试算逻辑判断
    //   else if (newVal === "4") {
        //this.$set(this.root.model.cfabop, "cfaeca", new Cfaeca().data);
        //this.root.model.cfabop.cfaeca.cfaflg = "4";
        //本来打算只清空 modifyset标记,但是没意义,有些栏位后端不会赋值,只有前端录入,如果不清空第二次报送还是会存在
        // let basModify = this.root.model.cfabop.cfaeca.recgrp.bas.modifySet;
        // if(basModify){
        //     this.root.model.cfabop.cfaeca.recgrp.bas.modifySet = [];
        // }
        // this.root.model.cfabop.cfaeca.recgrp.dcl = this.root.model.cfabop.cfaeca.recgrp.dcl.map(item =>{
        //     if(item.modifySet){
        //         item.modifySet = [];
        //     }
        //     return item;
        // });
        
    //   } 
      //空值不能清空模型,因为可能是初始化带入的
    //   else {
    //     this.$set(this.root.model.cfabop, "cfaeca", new Cfaeca().data);
    //   }
    },

    //试算海外代付
    "model.cfaead.cfaflg"(newVal) {
         //快照模式不触发试算
        if (this.isInDisplay) {
                return
            }
      if (newVal === "1" || newVal === "2" || newVal === "3") {
        let buildCfabop = this.root.buildCommonData(
          this.root.model,
          this.root.trnName
        );
        this.initCfabop(buildCfabop);
      }
    },
    //试算远期信用证
    "model.cfaeaf.cfaflg"(newVal) {
         //快照模式不触发试算
        if (this.isInDisplay) {
                return
            }
      if (newVal === "1" || newVal === "2" || newVal === "3") {
        let buildCfabop = this.root.buildCommonData(
          this.root.model,
          this.root.trnName
        );
        this.initCfabop(buildCfabop);
      } 
    },

    //采集标志访问控制 不满足报送条件时 灰色显示并清空数据
    cfaecaVisflg(newVal, oldVal) {
      if (!newVal) {
        this.$set(this.root.model.cfabop, "cfaeca", new Cfaeca().data);
        this.root.model.cfabop.cfaeca.cfaflg = '4';
      }
    },

    cfaeadVisflg(newVal, oldVal) {
      if (!newVal) {
        this.$set(this.root.model.cfabop, "cfaead", new Cfaead().data);
        this.root.model.cfabop.cfaead.cfaflg = '4';
      }
    },

    cfaeafVisflg(newVal, oldVal) {
      if (!newVal) {
        this.$set(this.root.model.cfabop, "cfaeaf", new Cfaeaf().data);
        this.root.model.cfabop.cfaeaf.cfaflg = '4';
      }
    },

    //代付还款自动设置为变动
    cfaeadDfaultTyp(newVal, oldVal) {
      if (newVal) {
        this.root.model.cfabop.cfaead.cfaflg = '3';
        this.onCfaflgead('3');
      }
    },

  },
  data() {
    return {
      cfaControl: false,
      ownExtkeyList: [],
      cfaConfig: {
        cfaeca: ["bptopn","bptame","bptset","botset","betset","trtopn","trtame","trtset","brtset","bctset","cptopn","cptato"],
        cfaead: ["trtopn","brtset","bctset","cptopn","cptato","dftame","dftset","bptopn"],
        cfaeaf: ["brtudp", "brteus", "brtset"]
      },
      cfaoprConfig: {
        ecaA: ["TRTOPN", "BRTSET", "BCTSET", "CPTOPN", "CPTATO", "BPTOPN"],
        ecaM: ["TRTAME", "BPTAME"],
        ecaS: ["TRTSET", "BPTSET", "BOTSET", "BETSET"],
        eadA: ["DFTOPN", "TRTOPN", "BRTSET", "BCTSET", "CPTOPN", "CPTATO", "BPTOPN"],
        eadM: ["DFTAME"],
        eadS: ["DFTSET"],
        eafA: ["BRTUDP"],
        eafM: ["BRTEUS"],
        eafS: ["BRTSET"]
      },
      brttxtcode: [
        {code:"转开国内信用证",label:"转开国内信用证"},
        {code:"他行代开信用证",label:"他行代开信用证"},
        //{code:"开至特殊监管区",label:"开至特殊监管区"},
        //{code:"境内居民客户信用证",label:"境内居民客户信用证"},
        {code:"开至特殊监管区境内居民客户信用证",label:"开至特殊监管区境内居民客户信用证"},
        {code:"其他",label:"其他"},
        ],
    };
  },
  mounted() {
    //初始化机构列表 todo 待设置客户所属机构
    this.getOwnExtkeyCondition();
  },

  computed: {
    //国内外汇贷款采集标志访问控制
    cfaecaVisflg() {
      let visflg = false;
      let transname = this.root.trnName.slice(0,6);
      if (transname == null || transname == "") {
        return visflg;
      }
      switch (transname.toUpperCase()) {
        //买方融资
        case "TRTOPN":
          if (this.root.model.trdgrp.cbs.max.cur !='' && this.root.model.trdgrp.cbs.max.cur !=null && this.root.model.trdgrp.cbs.max.cur != "CNY") {
            visflg = true;
          } else {
            visflg = false;
          }
          break;
        case "TRTAME":
        case "TRTSET":
          let ecasta = this.root.model.cfabop.cfaeca.recgrp.bas.sta;
          if (ecasta == "G" || ecasta == "D") {
            visflg = false;
          } else {
            let eblinr1 = this.root.model.cfabop.cfaeca.eblmod.wrkebl.inr;
            if (eblinr1 != null && eblinr1 != "") {
              visflg = true;
            } else {
              visflg = false;
            }
          }
          break;
        case "BRTSET":
        case "BCTSET":
        case "CPTOPN":
        case "CPTATO":
          let crefinflg = this.root.model.trtcre.crefinflg;
          if (crefinflg != null && crefinflg != "") {
            let amt1 = this.root.model.trtcre.trdgrp.cbs.max.amt;
            let cur1 = this.root.model.trtcre.trdgrp.cbs.max.cur;
            if (amt1 > 0 && cur1 != "CNY" && cur1 != "" && cur1 != null) {
              visflg = true;
            }
          }
          break;
        //卖方融资
        case "BPTOPN":
          if (this.root.model.bpdgrp.cbs.max.cur != "CNY" && this.root.model.bpdgrp.cbs.max.cur != "" && this.root.model.bpdgrp.cbs.max.cur != null) {
            visflg = true;
          } else {
            visflg = false;
          }
          break;
        case "BPTAME":
        case "BPTSET":
          let eblinr2 = this.root.model.cfabop.cfaeca.eblmod.wrkebl.inr;
          let amt2 = this.root.model.bpdgrp.cbs.max.amt;
          let cur2 = this.root.model.bpdgrp.cbs.max.cur;
          if (eblinr2 != null && eblinr2 != "" && amt2 > 0 && cur2 != "CNY"  && cur2 != "" && cur2 != null) {
            visflg = true;
          } else {
            visflg = false;
          }
          break;
        case "BOTSET":
        case "BETSET":
          let eblinr3 = this.root.model.cfabop.cfaeca.eblmod.wrkebl.inr;
          let amt3 = this.root.model.bptbck.wrkbpdgrp.cbs.max.amt;
          let cur3 = this.root.model.bptbck.wrkbpdgrp.cbs.max.cur;
          if (eblinr3 != null && eblinr3 != "" && amt3 > 0 && cur3 != "CNY" && cur3 != "" && cur3 != null) {
            visflg = true;
          } else {
            visflg = false;
          }
          break;
        default:
          visflg = false;
      }

      return visflg;
    },

    //海外代付采集标志访问控制
    cfaeadVisflg() {
      let visflg = false;
      let transname = this.root.trnName.slice(0,6);
      if (transname == null || transname == "") {
        return visflg;
      }
      switch (transname.toUpperCase()) {
        case "TRTOPN":
        case "BPTOPN":
        case "BRTSET":
        case "BCTSET":
        case "CPTOPN":
        case "CPTATO":
          let dfflag = this.root.model.dftcre.dfflag;
          let dfuflg =  this.root.model.dftcre.dfdgrp.rec.dfuflg;
          if (dfflag != null && dfflag != "" && dfuflg === '2') {
            visflg = true;
          } else {
            visflg = false;
          }
          break;
        case "DFTAME":
        case "DFTSET":
          let ecasta = this.root.model.cfabop.cfaead.recgrp.bas.sta;
          if (ecasta == "G" || ecasta == "D") {
            visflg = false;
          } else {
            let eblinr1 = this.root.model.cfabop.cfaead.eblmod.wrkebl.inr;
            if (eblinr1 != null && eblinr1 != "") {
              visflg = true;
            } else {
              visflg = false;
            }
          }
          break;
        default:
          visflg = false;
      }

      return visflg;
    },

    //代付还款自动设置为 变动
    cfaeadDfaultTyp(){
      let typflg = false;
      let transname = this.root.trnName.slice(0,6);
      if (transname == null || transname == "") {
        return typflg;
      }
      switch (transname.toUpperCase()) {
        case "DFTSET":
          let ecasta = this.root.model.cfabop.cfaead.recgrp.bas.sta;
          if (ecasta == "G" || ecasta == "D") {
            typflg = false;
          } else {
            let eblinr1 = this.root.model.cfabop.cfaead.eblmod.wrkebl.inr;
            if (eblinr1 != null && eblinr1 != "") {
              typflg = true;
            } else {
              typflg = false;
            }
          }
          break;
        default:
          typflg = false;
      }

      return typflg;
    },
    
    //远期信用证采集标志访问控制
    cfaeafVisflg() {
      let visflg = false;
      let transname = this.root.trnName.slice(0,6);
      if (transname == null || transname == "") {
        return visflg;
      }
      switch (transname.toUpperCase()) {
        case "BRTUDP":
            visflg = true;
          break;
        case "BRTEUS":
        case "BRTSET":
          let ecasta = this.root.model.cfabop.cfaeaf.recgrp.bas.sta;
          if (ecasta == "G" || ecasta == "D") {
            visflg = false;
          } else {
            let eblinr1 = this.root.model.cfabop.cfaeaf.eblmod.wrkebl.inr;
            if (eblinr1 != null && eblinr1 != "") {
              visflg = true;
            } else {
              visflg = false;
            }
          }
          break;
        default:
          visflg = false;
      }

      return visflg;
    },

  },

  methods: {
    //控制报送品种界面显示
    showSelect(select) {
      return this.cfaConfig[select].includes(this.root.trnName.slice(0,6).toLowerCase());
    },

    //控制采集标识选项
    filterCfaflg(select) {
      let filterKey = [];
      let transname = this.root.trnName.slice(0,6);
      if (transname == null || transname == "") {
        return filterKey;
      }

      if (this.cfaoprConfig[select + "A"].includes(transname.toUpperCase())) {
        filterKey = ["1", "4"];
      } else if (
        this.cfaoprConfig[select + "M"].includes(transname.toUpperCase())
      ) {
        filterKey = ["2", "4"];
      } else if (
        this.cfaoprConfig[select + "S"].includes(transname.toUpperCase())
      ) {
        filterKey = ["3", "4"];
      }

      return filterKey;
    },

    
        
    //控制cda 灰显
    disableCda(){

        let visflg = true;
        //前手数据加载了则不能编辑
        if(this.root.model.cfabop.cfaeca.cda.inr &&  this.root.model.cfabop.cfaeca.cda.inr != null && this.root.model.cfabop.cfaeca.cda.inr !=''){
            visflg = false;
        }

        return visflg;

    }

  }
};
</script>
<style scoped>
/deep/ .el-form-item__label {
  font-size: 14px;
  line-height: 36px;
}

/deep/ .el-checkbox__label {
  font-size: 14px;
  line-height: 36px;
}
</style>