<template>
  <div class="eContainer">
    <c-page title="备案表服务独立交易">
      <el-form :model="model" ref="modelForm" label-width="120px" label-position="right" size="small">
        <c-tabs v-model="tabVal" ref="elment" type="card" @tab-click="tabClick">
          <el-tab-pane label="税务备案表查询" name="inflst">
            <c-content>
              <m-inflst :model="model" :codes="codes" @updateActiveName="changeTabVal" />
            </c-content>
          </el-tab-pane>
          <el-tab-pane label="备案表核验" name="addchk" v-if="addChkIsShow">
            <c-content>
              <m-addchk :model="model" :codes="codes" />
            </c-content>
          </el-tab-pane>
          <el-tab-pane label="税务备案表详情" name="infchk" v-if="infChkIsShow">
            <c-content>
              <m-infchk :model="model" :codes="codes" :reqInfo="reqInfo" @updateActiveName="changeTabVal" ref="infPane"/>
            </c-content>
          </el-tab-pane>
          <el-tab-pane label="税务备案表详情" name="updchk" v-if="updChkIsShow">
            <c-content>
              <m-updchk :model="model" :codes="codes" :reqUpd="reqUpd" @updateActiveName="changeTabVal" ref="updPane"/>
            </c-content>
          </el-tab-pane>
          <el-tab-pane label="税务备案表详情" name="mgechk" v-if="mgeChkIsShow">
            <c-content>
              <m-mgechk :model="model" :codes="codes" :reqMge="reqMge" @updateActiveName="changeTabVal" ref="mgePane"/>
            </c-content>
          </el-tab-pane>
        </c-tabs>
      </el-form>
    </c-page>
  </div>
</template>
<script>
  import Api from "~/service/Api";
  import CodeTable from "~/config/CodeTable";
  import Dbwtxf from "../model";
  import operationFunc from "~/mixin/operationFunc";
  import commonDepend from "~/mixin/commonDepend";
  import Check from "../model/check";
  import Default from "../model/default";
  import event from "../event";

  import Inflst from "./inflst";
  import Addchk from "./addchk";
  import Infchk from "./infchk";
  import Updchk from "./updchk";
  import Mgechk from "./mgechk";

  export default {
    name: "Dbwtxf",
    components: {
      "m-inflst": Inflst,
      "m-addchk": Addchk,
      "m-infchk": Infchk,
      "m-updchk": Updchk,
      "m-mgechk": Mgechk,
    },
    provide() {
      return {
        root: this
      };
    },
    mixins: [Check, Default, event, operationFunc, commonDepend],
    data() {
      return {
        tabVal: "inflst",
        trnName: "dbwtxf",
        trnType: "",
        model: new Dbwtxf().data,
        codes: {
          ...CodeTable
        },
        addChkIsShow: false,

        // 查看相关控制
        infChkIsShow: false,
        infChkIsCreate: "N",
        oldInfChkBsnsrlno:"",
        reqInfo: {
          bsnsrlno: "",
          paymentstate: "",
          bizstate: "",
        },
        // 修改相关控制
        updChkIsShow: false,
        updChkIsCreate: "N",
        oldUpdChkBsnsrlno:"",
        reqUpd: {
          bsnsrlno: "",
          paymentstate: "",
          bizstate: "",
        },
        // 处理相关控制
        mgeChkIsShow: false,
        mgeChkIsCreate: "N",
        oldMgeChkBsnsrlno:"",
        reqMge: {
          bsnsrlno: "",
          paymentstate: "",
          bizstate: "",
        },
      };
    },
    methods: {
      changeTabVal(reqData) {
        this.tabVal = reqData.tabVal;
        if (this.tabVal == 'addchk') {
          this.addChkIsShow = true;
        } else {
          this.addChkIsShow = false;
        }
        if (this.tabVal == 'infchk') {
          this.infChkIsShow = true;
          this.reqInfo.bsnsrlno = reqData.bsnsrlno;
          this.reqInfo.paymentstate = reqData.paymentstate;
          this.reqInfo.bizstate = reqData.bizstate;
          if(this.infChkIsCreate == 'Y' && this.oldInfChkBsnsrlno != reqData.bsnsrlno){
            this.$refs.infPane.provideMethodInfo();
          }
          this.infChkIsCreate = 'Y';
          this.oldInfChkBsnsrlno = reqData.bsnsrlno;
        } else {
          this.infChkIsShow = false;
          this.infChkIsCreate = reqData.infChkIsCreate;
          this.oldInfChkBsnsrlno = reqData.oldInfChkBsnsrlno;
        }
        if (this.tabVal == 'updchk') {
          this.updChkIsShow = true;
          this.reqUpd.bsnsrlno = reqData.bsnsrlno;
          this.reqUpd.paymentstate = reqData.paymentstate;
          this.reqUpd.bizstate = reqData.bizstate;
          if(this.updChkIsCreate == 'Y' && this.oldUpdChkBsnsrlno != reqData.bsnsrlno){
            this.$refs.updPane.provideMethodUpd();
          }
          this.updChkIsCreate = 'Y';
          this.oldUpdChkBsnsrlno = reqData.bsnsrlno
        } else {
          this.updChkIsShow = false;
          this.updChkIsCreate = reqData.updChkIsCreate;
          this.oldUpdChkBsnsrlno = reqData.oldUpdChkBsnsrlno;
        }
        if (this.tabVal == 'mgechk') {
          this.mgeChkIsShow = true;
          this.reqMge.bsnsrlno = reqData.bsnsrlno;
          this.reqMge.paymentstate = reqData.paymentstate;
          this.reqMge.bizstate = reqData.bizstate;
          if(this.mgeChkIsCreate == 'Y' && this.oldMgeChkBsnsrlno != reqData.bsnsrlno){
            this.$refs.mgePane.provideMethodMge();
          }
          this.mgeChkIsCreate = 'Y';
          this.oldMgeChkBsnsrlno = reqData.bsnsrlno
        } else {
          this.mgeChkIsShow = false;
          this.mgeChkIsCreate = reqData.mgeChkIsCreate;
          this.oldMgeChkBsnsrlno = reqData.oldMgeChkBsnsrlno;
        }
      },
      tabClick() {
        if (this.tabVal == 'addchk') {
          this.addChkIsShow = true;
        } else {
          this.addChkIsShow = false;
        }
      },
    },
    created: {}
  };
</script>
<style>
</style>