<template>
  <div class="eibs-tab">
    <c-list-search @form-reset="handleReset('paramsForm')" @form-search="handleSearch()">
      <!-- 持续展示区 -->
      <template v-slot="searchSlot">
        <el-form class="m-table-search-form" ref="paramsForm" label-position="right" label-width="110px" size="small" :model="model">
          <el-row>
            <c-col :span="8">
              <el-form-item label="关联业务编号" prop="relref">
                <c-input v-model="model.relref" maxlength="16" placeholder="请输入关联业务编号"></c-input>
              </el-form-item>
            </c-col>

            <c-col :span="8">
              <el-form-item label="经办机构号" prop="bchcod">
                <c-select v-model="model.bchcod" :isShowKeyAndLabel="true" :disabled="model.bchcod!='ALL'" @change="getWrkBchlist(model.bchcod)" style="width:100%" placeholder="请输入经办机构号">
                  <el-option v-for="item in bchlist" :key="item.branch" :label="item.branch + ' ' + item.bchname" :value="item.branch">
                    <span style="float: left">{{ item.branch }} - {{ item.bchname }}</span>
                  </el-option>
                </c-select>
              </el-form-item>
            </c-col>

            <c-col :span="8">
              <el-form-item label="银行请求状态" prop="bnkaplsta">
                <c-select v-model="model.bnkaplsta" dbCode="bnkapl" :filterKey="['ALL','WAI','BRK','APL','CHK','RFU','REG','RCV','UND','ABA','DEL','CHG']" style="width:100%" placeholder="请输入银行请求状态">
                </c-select>
              </el-form-item>
            </c-col>
          </el-row>

          <!-- 可控展示区 -->
          <el-row v-show="searchSlot.searchToggle">
            <el-row>
              <c-col :span="8">
                <el-form-item label="本行融资申请编号" prop="ownref">
                  <c-input v-model="model.ownref" maxlength="16" placeholder="请输入本行融资申请编号"></c-input>
                </el-form-item>
              </c-col>

              <c-col :span="8">
                <el-form-item label="归属机构号" prop="ownbchcod">
                  <c-select v-model="model.ownbchcod" :disabled="model.bchcod == 'ALL'" style="width:100%" placeholder="请选择归属机构号">
                    <el-option v-for="item in wrkbchlist" :key="item.branch" :label="item.branch + ' ' + item.bchname" :value="item.branch">
                      <span style="float: left">{{ item.branch }} - {{ item.bchname }}</span>
                    </el-option>
                  </c-select>
                </el-form-item>
              </c-col>

              <c-col :span="8">
                <el-form-item label="请求结果" prop="aplret">
                  <c-select v-model="model.aplret" dbCode="aplret" style="width:100%" placeholder="请选择请求结果">
                  </c-select>
                </el-form-item>
              </c-col>
            </el-row>

            <el-row>
              <c-col :span="8">
                <el-form-item label="客户号" prop="cliextkey">
                  <c-input v-model="model.cliextkey" maxlength="12" placeholder="请输入客户号"></c-input>
                </el-form-item>
              </c-col>

              <c-col :span="8">
                <el-form-item label="资产状态" prop="blcsta">
                  <c-select v-model="model.blcsta" dbCode="blcsta" :filterKey="['APPLY','CHECK','PAY','REC','ACCEPT_AGREE','ACCEPT_REFUSE','AUDIT_AGREE','AUDIT_REFUSE','CANCEL_PAY','CLEAR','GIVE_UP_BY_BAN','CORRECT','GIVE_UP']" style="width:100%" placeholder="请选择资产状态">
                  </c-select>
                </el-form-item>
              </c-col>
            </el-row>

            <el-row>
              <c-col :span="8">
                <el-form-item label="创建日期" style="width: 100%">
                  <c-col :span="11">
                    <c-date-picker type="date" v-model="model.credatsta" style="width: 100%" placeholder="请选择起始日期" value-format="yyyy-MM-dd"></c-date-picker>
                  </c-col>
                  <c-col :span="2" style="text-align: center">
                    <label style="display: inline-block; width: 100%">-</label>
                  </c-col>
                  <c-col :span="11">
                    <c-date-picker type="date" v-model="model.credatend" style="width: 100%" placeholder="请选择截止日期" value-format="yyyy-MM-dd"></c-date-picker>
                  </c-col>
                </el-form-item>
              </c-col>

              <c-col :span="8">
                <el-form-item label="上链结果" prop="sta">
                  <c-select v-model="model.sta" dbCode="sta" :filterKey="['PENDING','SUCCESS','FAIL','ERROR']" style="width:100%" placeholder="请选择上链结果">
                  </c-select>
                </el-form-item>
              </c-col>
            </el-row>
          </el-row>

        </el-form>
      </template>
    </c-list-search>

    <el-col :span="24" style="margin-top: 10px;margin-bottom: 10px;">
      <c-button class="medium_bcs" size="medium" type="primary" @click="toDbablc" style="margin-left: 0px">
        出口应收账款融资新增
      </c-button>
      <c-button class="medium_bcs" size="medium" type="primary" @click="toCicsel" style="margin-left: 30px">
        企业跨境信用信息授权查证
      </c-button>
      <c-button class="medium_bcs" size="medium" type="primary" @click="toEntatr" style="margin-left: 30px">
        企业授权情况查询
      </c-button>
    </el-col>

    <el-col :span="24" style="margin-top: 10px">
      <el-tabs v-model="activeTab" class="y-tabs">
        <el-tab-pane label="信息" name="bs">
          <c-col :span="24">
            <el-table v-loading="load" :data="tableData" style="width:100%" size="small" :border="true" :highlight-current-row="true">

              <el-table-column label="本行融资申请编号" prop="ownref" min-width="180px" align="left" fixed="left"></el-table-column>
              <el-table-column label="关联业务编号" prop="relref" min-width="180px" align="left"></el-table-column>
              <el-table-column label="客户号" prop="cliextkey" min-width="180px" align="left"></el-table-column>
              <el-table-column label="客户名称" prop="clinam" min-width="180px" align="left"></el-table-column>
              <el-table-column label="归属机构" prop="ownbchcod" min-width="180px" align="left"></el-table-column>
              <el-table-column label="申请日期" prop="finappdat" min-width="180px" align="left"></el-table-column>
              <el-table-column label="关单核验币种" prop="cur" min-width="80px" align="left"></el-table-column>
              <el-table-column label="申请融资金额" prop="amt" min-width="180px" align="left"></el-table-column>
              <el-table-column label="银行请求状态" prop="bnkaplsta" min-width="180px" align="left">
                <template slot-scope="scope">
                  <span> {{getCodelabel(scope.row.bnkaplsta,'bnkapl') }}
                  </span>
                </template>
              </el-table-column>
              <el-table-column label="请求结果" prop="aplret" min-width="180px" align="left">
                <template slot-scope="scope">
                  <span> {{getCodelabel(scope.row.aplret,'aplret') }}
                  </span>
                </template>
              </el-table-column>
              <el-table-column label="资产状态" prop="blcsta" min-width="180px" align="left">
                <template slot-scope="scope">
                  <span> {{getCodelabel(scope.row.blcsta,'blcsta') }}
                  </span>
                </template>
              </el-table-column>
              <el-table-column label="上链结果" prop="sta" min-width="180px" align="left">
                <template slot-scope="scope">
                  <span> {{getCodelabel(scope.row.sta,'sta') }}
                  </span>
                </template>
              </el-table-column>
              <el-table-column label="应收账款总金额" prop="rcvtotamt" min-width="180px" align="left"></el-table-column>
              <el-table-column label="报关单使用金额" prop="useamt" min-width="180px" align="left"></el-table-column>
              <el-table-column label="报关单使用情况" prop="usecon" min-width="180px" align="left">
                <template slot-scope="scope">
                  <span> {{getCodelabel(scope.row.usecon,'usecon') }}
                  </span>
                </template>
              </el-table-column>
              <el-table-column label="报关单核验情况" prop="chkcon" min-width="180px" align="left">
                <template slot-scope="scope">
                  <span> {{getCodelabel(scope.row.chkcon,'usecon') }}
                  </span>
                </template>
              </el-table-column>
              <el-table-column label="放款币种" prop="finloacur" align="left"></el-table-column>
              <el-table-column label="放款金额" prop="finloaamt" min-width="180px" align="left"></el-table-column>
              <el-table-column label="放款日期" prop="loadat" min-width="180px" align="left"></el-table-column>
              <el-table-column label="回款合同日期" prop="conenddat" min-width="180px" align="left"></el-table-column>
              <el-table-column label="还款币种" prop="rcvcur" min-width="180px" align="left"></el-table-column>
              <el-table-column label="还款金额" prop="rcvamt" min-width="180px" align="left"></el-table-column>
              <el-table-column label="预计还款日期" prop="prcrepdat" min-width="180px" align="left"></el-table-column>
              <el-table-column label="实际还款日期" prop="facrcvdat" min-width="180px" align="left"></el-table-column>
              <el-table-column label="外管局融资编号" prop="wgrref" min-width="180px" align="left"></el-table-column>
              <el-table-column label="经办机构号" prop="bchcod" min-width="180px" align="left"></el-table-column>
              <el-table-column label="是否已被废弃" prop="delflg" min-width="180px" align="left">
                <template slot-scope="scope">
                  <span> {{getCodelabel(scope.row.delflg,'fsadel') }}
                  </span>
                </template>
              </el-table-column>
              <el-table-column label="更新时间" prop="updtim" min-width="180px" align="left"></el-table-column>
              <el-table-column fixed="right" prop="op" label="操作" width="160px">
                <template slot-scope="scope">
                  <c-button style="margin-right: 7px" size="small" type="text" @click="handler(scope.row)">处理
                  </c-button>
                  <c-button style="margin-right: 7px" size="small" type="text" @click="toDbiblc(scope.row)">明细展示
                  </c-button>
                </template>
              </el-table-column>
            </el-table>
            <el-pagination layout="total, sizes, prev, pager, next, jumper" @size-change="handleSizeChange" @current-change="handleCurrentChange" :total="pagination.total" :page-size="pagination.pageSize" :current-page.sync="pagination.pageIndex">
            </el-pagination>
          </c-col>
        </el-tab-pane>
      </el-tabs>
    </el-col>
    <!-- 点击处理ba弹框 -->
    <el-dialog v-if="initdialog" v-dialogDrag :visible.sync="initdialog" title="交易列表" append-to-body width="60%">
      <m-busbtn ref="childs" :trnUrl="trnUrl" :inifrm="inifrm" :activeTab="activeTab" :codes="dbCodes" :model="handleModel" @onChoose="handleClick"></m-busbtn>
    </el-dialog>

    <!-- 废弃弹框 -->
    <el-dialog v-if="deldialogfig" v-dialogDrag :visible.sync="deldialogfig" title="数据删除原因">
      <el-form ref="deldialogForm" :model="model" :rules="rules" label-width="100px">
        <el-form-item label="数据删除原因" prop="recgrp.rec.delrea">
          <c-input type="textarea" :row="10" v-model="model.recgrp.rec.delrea" maxlength="49" show-word-limit placeholder="请输入数据删除原因"></c-input>
        </el-form-item>
      </el-form>
      <span slot="footer" class="dialog-footer">
        <c-button type="primary" @click="finDelete()">确 定</c-button>
        <c-button @click="deldialogfig = false">取 消</c-button>
      </span>
    </el-dialog>

    <!-- 放款登记冲正弹框 -->
    <el-dialog v-if="unddialog" v-dialogDrag :visible.sync="unddialog" title="放款登记冲正">
      <el-form ref="unddialogForm" :model="model" :rules="rules" label-width="100px">
        <el-form-item label="放款登记冲正原因" prop="recgrp.rec.rfurea">
          <c-input type="textarea" :row="10" v-model="model.recgrp.rec.rfurea" placeholder="请输入放款登记冲正原因"></c-input>
        </el-form-item>
      </el-form>
      <span slot="footer" class="dialog-footer">
        <c-button type="primary" @click="correct()">确 定</c-button>
        <c-button @click="unddialog = false">取 消</c-button>
      </span>
    </el-dialog>

    <!-- 拒绝受理弹框 -->
    <el-dialog v-if="rfudialog" v-dialogDrag :visible.sync="rfudialog" title="融资受理拒绝理由">
      <el-form ref="rfudialogForm" :model="model" :rules="rules" label-width="100px">
        <el-form-item label="融资受理拒绝理由" prop="recgrp.rec.rfurea">
          <c-input type="textarea" :row="10" v-model="model.recgrp.rec.rfurea" placeholder="请输入融资受理拒绝理由"></c-input>
        </el-form-item>
      </el-form>
      <span slot="footer" class="dialog-footer">
        <c-button type="primary" @click="accept()">确 定</c-button>
        <c-button @click="rfudialog = false">取 消</c-button>
      </span>
    </el-dialog>

    <!-- 日志查询弹框 -->
    <el-dialog title="日志查询结果界面" v-dialogDrag v-if="logdialogfig" :visible.sync="logdialogfig" append-to-body width="80%">
      <div style="width: 100%;height: 100%;">
        <el-table :data="logresLst" height="calc(100% - 32px)" style="width: 100%;">
          <el-table-column label="操作类型" prop="hndtyp" width="auto">
            <template slot-scope="scope">
              <span> {{getCodelabel(scope.row.hndtyp,'fsaopt') }}
              </span>
            </template>
          </el-table-column>
          <el-table-column label="操作柜员" prop="hndusr" width="auto">
          </el-table-column>
          <el-table-column label="请求状态" prop="bnkaplsta" width="auto">
            <template slot-scope="scope">
              <span> {{getCodelabel(scope.row.bnkaplsta,'bnkapl') }}
              </span>
            </template>
          </el-table-column>
          <el-table-column label="请求结果" prop="aplret" width="auto">
            <template slot-scope="scope">
              <span> {{getCodelabel(scope.row.aplret,'aplret') }}
              </span>
            </template>
          </el-table-column>
          <el-table-column label="上链状态" prop="blcsta" width="auto">
            <template slot-scope="scope">
              <span> {{getCodelabel(scope.row.blcsta,'blcsta') }}
              </span>
            </template>
          </el-table-column>
          <el-table-column label="业务处理状态" prop="sta" width="auto">
            <template slot-scope="scope">
              <span> {{getCodelabel(scope.row.sta,'sta') }}
              </span>
            </template>
          </el-table-column>
          <el-table-column label="操作时间" prop="updtim" width="auto">
          </el-table-column>
          <el-table-column label="提示信息" prop="hinmsg" width="auto">
          </el-table-column>
          <el-table-column label="融资申请编号" prop="ownref" width="auto">
          </el-table-column>
          <el-table-column label="唯一标识" prop="fsainr" width="auto">
          </el-table-column>
        </el-table>

      </div>
    </el-dialog>
  </div>
</template>
<script>
import Api from "~/service/Api";
import event from "../event";
import BusNavbar from "~/components/business/BusNavbar1";
import CodeTable from "~/config/CodeTable";
import commonFunctions from "~/mixin/commonFunctions.js";
import commonDepend from "~/mixin/commonDepend.js";

export default {
  inject: ["root"],
  props: ["model", "codes"],
  mixins: [event, commonFunctions, commonDepend],
  components: { "m-busbtn": BusNavbar },

  data() {
    return {
      activeTab: "bs", // tabs当前展示的tab
      showDig: false, // 弹框的展示/隐藏
      bchlist: [],
      wrkbchlist: [],
      tableData: [],
      logresLst: [],
      load: false,
      initdialog: false,
      deldialogfig: false,
      logdialogfig: false,
      rfudialog: false, //拒绝受理弹窗
      unddialog: false,
      pagination: {
        pageIndex: 1,
        pageSize: 10,
        total: 0
      },
      dbCodes: {
        bnkapl: [],
        aplret: [],
        blcsta: [],
        sta: [],
        fsadel: [],
        fsaopt: [],
        usecon: []
      },

      rules: {
        "recgrp.rec.delrea": [{ required: true, message: "必输项" }],
        "recgrp.rec.rfurea": [{ required: true, message: "必输项" }]
      }
    };
  },

  methods: {
    //数据删除
    async finDelete() {
      this.$refs.deldialogForm.validate(async valid => {
        if (valid) {
          let params = {
            fininr: this.handleModel.inr,
            fsainr: this.handleModel.fsainr,
            delrea: this.model.recgrp.rec.delrea
          };
          const loading = this.loading("正在删除数据");
          let rtnmsg = await Api.post("/Financing/wgbsel/delete", params);
          if (rtnmsg.respCode == SUCCESS) {
            loading.close();
            this.$notify({
              title: "废弃成功",
              message: "该记录" + this.handleModel.ownref + "废弃成功!",
              type: "success"
            });
          } else {
            this.$notify.error({ title: "错误", message: "服务请求失败!" });
          }
          loading.close();
          this.closeDialog();
        }
      });
    },

    // 关闭删除弹窗
    async closeDialog() {
      this.model.recgrp.rec.delrea = "";
      this.deldialogfig = false;
    },

    //拒绝受理
    async accept() {
      this.$refs.rfudialogForm.validate(async valid => {
        if (valid) {
          let params = {
            fininr: this.handleModel.inr,
            fsainr: this.handleModel.fsainr,
            rfurea: this.model.recgrp.rec.rfurea
          };
          const loading = this.loading("正在调用拒绝受理接口");
          let rtnmsg = await Api.post("/Financing/wgbsel/accept", params);
          if (rtnmsg.respCode == SUCCESS) {
            loading.close();
            if (rtnmsg.data.result) {
              this.model.recgrp.rec = rtnmsg.data.fin;
              this.model.recgrp.fsa = rtnmsg.data.fsa;
              this.$alert("接口调用成功!", "提示", {
                confirmButtonText: "确认",
                callback: action => {
                  if (action == "confirm") {
                    (this.initdialog = false),
											this.routerPush({
												path: "/business/wgbsel",
											});
                      this.queryDetail();
                  }
                }
              });
            } else {
              this.$notify.error({
                title: "错误",
                message: rtnmsg.data.fsa.hinmsg
              });
            }
          } else {
            this.$notify.error({ title: "错误", message: "服务请求失败!" });
          }
          loading.close();
          this.model.recgrp.rec.rfurea = "";
          this.rfudialog = false;
        }
      });
    },

    //放款登记冲正
    async correct() {
      this.$refs.unddialogForm.validate(async valid => {
        if (valid) {
          let params = {
            fininr: this.handleModel.inr,
            fsainr: this.handleModel.fsainr,
            rfurea: this.model.recgrp.rec.rfurea
          };
          const loading = this.loading("正在调用放款登记冲正接口");
          let rtnmsg = await Api.post("/Financing/wgbsel/correct", params);
          if (rtnmsg.respCode == SUCCESS) {
            loading.close();
            if (rtnmsg.data.result) {
              this.model.recgrp.rec = rtnmsg.data.fin;
              this.model.recgrp.fsa = rtnmsg.data.fsa;
              this.$alert("接口调用成功!", "提示", {
                confirmButtonText: "确认",
                callback: action => {
                  if (action == "confirm") {
										(this.initdialog = false),
											this.routerPush({
												path: '/business/wgbsel',
											});
                      this.queryDetail();
                  }
                }
              });
            } else {
              this.$notify.error({
                title: "错误",
                message: rtnmsg.data.fsa.hinmsg
              });
            }
          } else {
            this.$notify.error({ title: "错误", message: "服务请求失败!" });
          }
          loading.close();
          this.model.recgrp.rec.rfurea = "";
          this.unddialog = false;
        }
      });
    },

    getCodelabel(value, codenam) {
      const codeobj = this.dbCodes[codenam].find(obj => obj.value === value);
      return codeobj ? codeobj.label : value;
    },

    getBchlist(branch) {
      this.getBchcodlist({ branch: branch }).then(res => {
        if (res.respCode == "AAAAAA") {
          const list = res.data;
          this.bchlist = list;
        }
      });
    },
    getWrkBchlist(branch) {
      this.model.ownbchcod = "";
      if (branch == "") {
        this.wrkbchlist = [];
      } else if (branch == "ALL") {
        this.wrkbchlist = [{ branch: "ALL", bchname: "ALL" }];
        this.model.ownbchcod = "ALL";
      } else {
        this.getBchcodlist({ branch: branch }).then(res => {
          if (res.respCode == "AAAAAA") {
            const list = res.data;
            this.wrkbchlist = list;
            if (this.wrkbchlist.length == 1) {
              this.model.ownbchcod = JSON.parse(
                JSON.stringify(this.wrkbchlist[0])
              ).branch;
            } else {
              let all = { branch: "ALL", bchname: "ALL" };
              list.unshift(all);
            }
          }
        });
      }
    }
  },
  computed: {},
  mounted() {
    this.init();
    this.getdbCode("bnkapl", "CN", "bnkapl");
    this.getdbCode("aplret", "CN", "aplret");
    this.getdbCode("blcsta", "CN", "blcsta");
    this.getdbCode("sta", "CN", "sta");
    this.getdbCode("fsadel", "CN", "fsadel");
    this.getdbCode("fsaopt", "CN", "fsaopt");
    this.getdbCode("usecon", "CN", "usecon");
  }
};
</script>
<style scoped lang="less">
</style>