import Api from "~/service/Api";
import moment from "moment";

export default {
  methods: {
    async handleSearch() {
      let opndatfrom = this.model.infcon.opndatfrom;
      if (!opndatfrom || opndatfrom == "") {
        this.$notify.error({
          title: this.$t("financing.错误"),
          message: this.$t("financing.查询开始日期必输!"),
        });
        return;
      }
      let opndatto = this.model.infcon.opndatto;
      if (!opndatto || opndatto == "") {
        this.$notify.error({
          title: this.$t("financing.错误"),
          message: this.$t("financing.查询结束日期必输!"),
        });
        return;
      }

      this.load = true;
      let rtnmsg = await Api.post("/funds/fxtsel/list" + this.activeTab, {
        ...this.model.infcon,
        pageNumber: this.pagination.pageNumber <= 0 ? 1 : this.pagination.pageNumber,
        pageSize: this.pagination.pageSize <= 0 ? 10 : this.pagination.pageSize,
        opndatfrom: moment(opndatfrom).format("YYYY-MM-DD"),
        opndatto: moment(opndatto).format("YYYY-MM-DD"),
      });
      if (rtnmsg.respCode == SUCCESS) {
        this.load = false;
        this.stmData.data = [];
        if (this.activeTab === "jsh") {
          this.stmData.data = rtnmsg.data.list;
        } else if (this.activeTab === "dhpp") {
          this.stmDataDh.data = rtnmsg.data.list;
        } else if (this.activeTab === "jshpp") {
          this.stmDatajshpp.data = rtnmsg.data.list;
        }

        this.pagination.total = rtnmsg.data.total;
      } else {
        this.$notify.error({
          title: this.$t("financing.错误"),
          message: this.$t("financing.服务请求失败!"),
        });
      }
      this.load = false;
    },
    async handleReset() {
      this.model.infcon.seaownref = "";
      this.model.infcon.opndatfrom = new Date();
      this.model.infcon.opndatto = new Date();
      this.model.infcon.nam = "";
      this.model.infcon.seacur = "";
      this.model.infcon.eaamtfr = "";
      this.model.infcon.eaamtto = "";

      this.model.infcon.ownusr = "";
      this.model.infcon.usr = "";
      this.model.infcon.acc = "";
      this.model.infcon.acc2 = "";

      this.model.infcon.searef = "";
      this.model.infcon.ptyextkey = "";
      this.model.infcon.ptynam = "";
      this.model.infcon.seapty = "";
      this.model.infcon.searol = "";
      this.model.infcon.usrextkey = "";
      this.model.infcon.seasta = "";
      this.model.infcon.accmng = "";
      this.model.infcon.fxtyp = "";
    },

    //首字母大写
    toTitleCase(str) {
      return str.charAt(0).toUpperCase() + str.slice(1).toLowerCase();
    },

    // 处理
    async handler(row) {
      this.handleModel = row;
      this.trnUrl = "funds";
      this.inifrm = "fxtsel";
      this.initdialog = true;
    },

    //双击表格数据
    async TableDblRow(row) {
      this.handler(row);
    },

    //点击页签
    async handleClickTab() {
      switch (this.activeTab) {
        case "jsh":
          this.titleNam = "结售汇交易列表";
          break;
        case "dhpp":
          this.titleNam = "外币兑换平盘交易列表";
          break;
        default:
          this.titleNam = "交易列表";
          break;
      }
    },

    //单击表格数据
    TableRowClick(row) {
      this["selectedModel" + this.toTitleCase(this.activeTab)] = row;
    },

    changeOwnref() {},

    async handleClick(btn, row) {
      this.routerPush({
        path: "/business/" + btn.code.toLowerCase(),
        query: { inr: row.inr, pntinr: row.pntinr },
      });
      this.initdialog = false;
    },

    // pageSize改变
    handleSizeChange(val) {
      this.pagination.pageNumber = 1;
      this.pagination.pageSize = val;
      this.handleSearch();
    },
    // 页码改变
    handleCurrentChange(val) {
      this.pagination.pageNumber = val;
      this.handleSearch();
    },

    //进入即期结汇交易
    toFxtssb() {
      this.routerPush({
        path: "/business/fxtssb",
      });
    },
    //进入即期售汇交易
    toFxtsss() {
      this.routerPush({
        path: "/business/fxtsss",
      });
    },
    //进入结售汇平盘登记交易
    toFxtlop() {
      this.routerPush({
        path: "/business/fxtlop",
      });
    },
    //进入外币兑换平盘登记交易
    toFxtfop() {
      this.routerPush({
        path: "/business/fxtfop",
      });
    },

    // 详情
    async details(row) {
      const params = {
        ownref: row.ownref,
        shgref: row.shgref ? row.shgref.trim() : "",
      };
      const res = await Api.post("/manager/trn/getTrnListByOwnref", params);
      if (res.respCode === SUCCESS) {
        if (res.data.length === 1) {
          if (this.oldRefId && this.$refs[this.oldRefId]) {
            this.$refs[this.oldRefId].showPopper = false;
          }
          this.display(res.data[0]);
        } else {
          this.trnData.data = res.data;
          this.oldRefId = "popover_" + row.inr;
          this.$refs[this.oldRefId].showPopper = true;
        }
      }
    },

    closeDisplayDialog() {
      if (this.oldRefId && this.$refs[this.oldRefId]) {
        this.$refs[this.oldRefId].showPopper = false;
      }
    },

    //Info
    toInfo(row, objtyp, subobjtyp) {
      this.routerPush({
        path: "/business/fxdinf",
        query: {
          inr: row.inr,
          objtyp: objtyp,
          pntinr: row.pntinr,
          subobjtyp: subobjtyp,
        },
      });
    },
    // 关闭详情弹框
    closeDetailsDialog(refId) {
      if (refId && this.$refs[refId]) {
        this.$refs[refId].showPopper = false;
      }
    },

    // 关闭处理弹框
    closeHandlerDialog() {
      this.initdialog = false;
    },

    /**
     * 打开详情页面
     * @param row
     */
    display(row) {
      if (this.oldRefId && this.$refs[this.oldRefId]) {
        this.$refs[this.oldRefId].showPopper = false;
      }
      // 历史快照
      if (row.inr.length == 8) {
        this.routerPush({
          path: "/business/HistoryRecord",
          query: {
            businessInr: row.inr,
            businessType: "TRN",
            type: "view",
          },
        });
      } else if (row.inr.length == 16) {
        this.routerPush({
          path: `/display/${row.inifrm.toLowerCase()}`,
          query: {
            businessInr: row.inr,
            businessType: "TRN",
          },
        });
      }
    },
    checkData(row) {
      this.routerPush({
        path: "/business-new/litdck",
        query: {
          inr: this.handleModel.inr,
          brdinr: row.inr,
        },
      });
      this.litdckdialog = false;
      this.$options.methods.closeHandlerDialog.call(this);
    },

    //修改弹窗状态
    changeBtn(isVisible) {
      this.initdialog = isVisible;
    },
    //获取码表数据
    getCodeTable(tbl, uil, value) {
      if (uil) {
        uil = "EN";
      }
      let localCodes = localStorage.getItem("localCodes");
      if (localCodes) {
        let codeobj = JSON.parse(localCodes)[tbl + "_" + uil + "_COD"];
        if (codeobj) {
          let codeobj = codeobj.filter((m) => m.value === value);
          return codeobj ? codeobj.label : value;
        } else {
          return value;
        }
      } else {
        return value;
      }
    },
    //获取码表数据
    getCodelabel(value, codenam) {
      const codeobj = this.model.dbCodes[codenam].find(
        (obj) => obj.value === value
      );
      return codeobj ? codeobj.label : value;
    },
    async getdbCode(codeType, uil, codeNam) {
      let params = {
        codeType: codeType,
        uil: uil ? uil : "EN",
      };
      let rtnmsg = await Api.post("/manager/dic/listDicInfo", params);
      if (rtnmsg.respCode === SUCCESS) {
        let curList = rtnmsg.data.map((item) => ({
          value: item.codeValue,
          label: item.codeName,
        }));
        this.model.dbCodes[codeNam] = curList;
      }
    },
  },
};