<template>
  <div class="eContainer">
    <c-page title="汇出汇款">
      <el-form
        :model="model"
        :rules="rules"
        ref="modelForm"
        label-width="120px"
        size="small"
        :validate-on-rule-change="false"
      >
        <c-tabs
          :value="tabVal"
          ref="elment"
          type="card"
          @tab-click="mimeTabClick"
        >
          <el-tab-pane label="业务信息" name="ovwp">
            <c-content>
              <m-ovwp :model="model" :codes="codes" />
            </c-content>
          </el-tab-pane>

          <el-tab-pane label="费用/账务" name="setpan,glepan">
            <c-content>
              <div class="eibs-tab">
                <el-collapse v-model="activeNames">
                  <el-collapse-item title="结算" name="setpan">
                    <!-- 结算 -->
                    <m-setpan :model="model" :codes="codes" />
                  </el-collapse-item>
                  <el-collapse-item title="会计分录" name="glepan">
                    <!-- 会计分录 -->
                    <m-glepan :model="model" :codes="codes" />
                  </el-collapse-item>
                </el-collapse>
              </div>
            </c-content>
          </el-tab-pane>

          <el-tab-pane label="备查/附言" name="addbcb">
            <c-content>
              <m-addbcb :model="model" :codes="codes" />
            </c-content>
          </el-tab-pane>

          
          <el-tab-pane label="申报信息" name="cnyp">
            <c-content>
              <m-cnyp :model="model" :codes="codes" />
            </c-content>
          </el-tab-pane>

          <!-- <el-tab-pane
            label="境内汇款申请书-基础信息"
            name="dbe"
            v-if="model.bopmod.szflg === '2' && model.bopmod.basflg"
          >
            <m-dbe :model="model" :codes="codes"></m-dbe>
          </el-tab-pane> -->
          <!-- <el-tab-pane
            label="境外汇款申请书-基础信息"
            name="dbb"
            v-if="model.bopmod.szflg === '1' && model.bopmod.basflg"
          >
            <m-dbb :model="model" :codes="codes"></m-dbb>
          </el-tab-pane> -->

          <!-- <el-tab-pane
            label="2111跨境支出信息"
            name="outp"
            v-if="model.cnybop.outflg === '1'"
          >
            <m-outp :model="model" :codes="codes"></m-outp>
          </el-tab-pane> -->



          <el-tab-pane label="报文/面函" name="docpan">
            <!--PD000529 -->
            <m-docpan :model="model" :codes="codes" />
          </el-tab-pane>

          <el-tab-pane label="附件信息" name="doctre">
            <!--PD000546 -->
            <m-doctre :model="model" :codes="codes" />
          </el-tab-pane>

        </c-tabs>
      </el-form>
      <c-grid-ety-prompt-dialog
        ref="doxpDialog"
        :isPty="false"
        :promptData="promptData"
        @select-ety="selectMsg"
      >
      </c-grid-ety-prompt-dialog>

      <c-grid-ety-prompt-dialog
        ref="etyDialog"
        :promptData="promptData"
        v-on:select-ety="selectEty"
      >
      </c-grid-ety-prompt-dialog>
      <!-- <c-bus-button :$pntvm="this"></c-bus-button> -->
      <c-function-btn
        :handleSubmit="handleSubmit"
        :handleCheck="handleCheck"
        :handleStash="handleStash"
      >
      </c-function-btn>
    </c-page>
  </div>
</template>
<script>
import Api from "~/service/Api";
import Utils from "~/utils/index";
import CodeTable from "~/config/CodeTable";
import Cptopn from "~/model/Cptopn";
import commonProcess from "~/mixin/commonProcess";
import commonFuncs from "~/mixin/commonFuncs";
import Pattern from "~/model/Cptopn/Pattern";
import Default from "~/model/Cptopn/Default";
import Check from "~/model/Cptopn/Check";

import Ovwp from "./Ovwp";
import Addbcb from "./Addbcb.vue";
import Cnyp from "./Cnyp.vue"

import Doctre from "~/views/Public/Doctre";
import Glepan from "~/views/Public/Glepan";
import Setpan from "~/views/Public/Setpan";
import Docpan from "~/views/Public/Docpan";

export default {
  name: "Cptopn",
  components: {
    "m-ovwp": Ovwp,
    "m-setpan": Setpan,
    "m-glepan": Glepan,
    "m-addbcb": Addbcb,
    "m-docpan": Docpan,
    "m-doctre": Doctre,
    "m-cnyp": Cnyp,

  },
  provide() {
    return {
      root: this,
    };
  },
  mixins: [commonProcess, commonFuncs], // 里面包含了Default、Check等的公共处理
  data() {
    return {
      tabVal: "ovwp",
      trnName: "cptopn",
      model: new Cptopn().data,
      checkRules: Check,
      defaultRules: Default,
      pattern: Pattern,
      rules: null,
      activeNames: ["setpan"],
      codes: { ...CodeTable },
    };
  },
  methods: {
    mimeTabClick(tab) {
      this.tabClick(tab);
      const name = tab.name;
      let rulePath;
      if (name === "setpan") {
        rulePath = "pyenam";
      }
      if (name === "glepan") {
        rulePath = "glepan";
      }
      if (name === "coninfp") {
        rulePath = "coninfp";
      }
      if (name === "docpan") {
        rulePath = "oit.inftxt";
      }
      if (name === "doctre") {
        rulePath = "doctre";
      }
      if (name === "sbxx") {
        rulePath = "trd.ownref,cnyp";
      }
      if (!!rulePath) {
        this.executeRule(rulePath).then((res) => {
          if (res.respCode == SUCCESS) {
            this.updateModel(res.data);
          }
        });
      }
    },
  },
  created: async function () {
    console.log("进入cptopn交易");
    let rtnmsg = await this.init(this.$route.query);
    if (rtnmsg.respCode == SUCCESS) {
      Utils.copyValueFromVO(this.model, rtnmsg.data);
      if (this.isInDisplay) {
        this.restoreDisplay();
      }
    } else {
      this.$notify.error({ title: "错误", message: "服务请求失败!" });
    }
  },
  watch: {
    "model.cpdgrp.cbs.nom1.amt": {
      handler(val, oldVal) {
        this.changeFormItemRequired("cpdgrp.rec.swftyp", val != "0.000");
      },
      immediate: true,
    },
  },
};
</script>
<style>
.el-col .el-divider--horizontal {
  margin-top: 0;
}

.messageLabel .el-form-item__label {
  text-align: left;
  font-weight: bold;
  font-size: 12px;
}
</style>