import Api from '~/service/Api';
import moment from 'moment';
export default {
  methods: {
    //入口查询
    async handleSearch() {
      if(this.activeTab === 'li'){
        if ((this.model.infcon.seaownref == '' || this.model.infcon.seaownref == null) && this.model.infcon.opndatfrom == null) {
        this.$notify.error({ title: '错误', message: '开始日期必输!' });
        return;
        }
        if ((this.model.infcon.seaownref == '' || this.model.infcon.seaownref == null) && this.model.infcon.opndatto == null) {
          this.$notify.error({ title: '错误', message: '截止日期必输!' });
          return;
        }
        if (this.model.infcon.opndatfrom != null && this.model.infcon.opndatto != null) {
          if (new Date(this.model.infcon.opndatfrom).getTime() > new Date(this.model.infcon.opndatto).getTime()) {
            this.$notify.error({ title: '错误', message: '开始日期应小于或等于截止日期!' });
            return
          }
        }
      }else{
        let ownref = this.model[this.activeTab + 'con'][this.activeTab + 'ownref']
        let opndatfrom = this.model[this.activeTab + 'con'].opndatfrom
        let opndatto = this.model[this.activeTab + 'con'].opndatto
        let matdatfrom = this.model[this.activeTab + 'con'].matdatfrom
        let matdatto = this.model[this.activeTab + 'con'].matdatto
         if ((ownref == '' || ownref == null) && opndatfrom == null) {
        this.$notify.error({ title: '错误', message: '开始日期必输!' });
        return;
        }
        if ((ownref == '' || ownref == null) && opndatto == null) {
          this.$notify.error({ title: '错误', message: '截止日期必输!' });
          return;
        }
        if (opndatfrom != null && opndatto != null) {
          if (new Date(opndatfrom).getTime() > new Date(opndatto).getTime()) {
            this.$notify.error({ title: '错误', message: '开始日期应小于或等于截止日期!' });
            return
          }
        }
        if (matdatfrom != null && matdatto != null) {
          if (new Date(matdatfrom).getTime() > new Date(matdatto).getTime()) {
            this.$notify.error({ title: '错误', message: '开始日期应小于或等于截止日期!' });
            return
          }
        }
      }
      this.load = true;
      let queryCon = this.activeTab === 'li' ? this.model.infcon : this.model[this.activeTab + 'con']
      let params = {
        ...queryCon,
        opndatfrom : queryCon.opndatfrom ? moment(queryCon.opndatfrom).format("YYYY-MM-DD") : '',
        opndatto : queryCon.opndatto ? moment(queryCon.opndatto).format("YYYY-MM-DD") : '',
        branch : JSON.parse(sessionStorage.getItem('currentOrg')).departmentNumber,
        pageNumber: this.pagination.pageIndex,
        pageSize:this.pagination.pageSize,
      };
      if( this.activeTab === 'tr' ||this.activeTab === 'df' ){
        params.pnttyp = 'BRD'
      }
      delete params.markSet
      delete params.modifySet
      let rtnmsg = await Api.post('/Lc/litsel/list' + this.activeTab, params);
      if (rtnmsg.respCode == SUCCESS) {
        if(this.activeTab === 'li'){
          this.stmData.data = [];
          this.stmData.data = rtnmsg.data.list;
        }else{
          this['stmData' + this.toTitleCase(this.activeTab)].data = [];
          this['stmData' + this.toTitleCase(this.activeTab)].data = rtnmsg.data.list;
        }
        this.pagination.total = rtnmsg.data.total;
      } else {
        this.$notify.error({ title: '错误', message: '服务请求失败!' });
      }
      this.load = false;
    },
    //首字母大写
    toTitleCase(str){
      return str.charAt(0).toUpperCase() + str.slice(1).toLowerCase()
    },
    //清空
    async handleReset() {
      if(this.activeTab === 'li'){
        this.model.infcon = {}
      }else{
        this.model[this.activeTab + 'con']  = {}
      }
    },
    // 处理
    async handler(row) {
      this.handleModel = row;
      if(this.activeTab === 'li' ||this.activeTab === 'br'||this.activeTab === 'sg'){
        this.trnUrl = 'Lc';
        this.inifrm = 'litsel';
      }else if (this.activeTab === 'tr'){
        this.trnUrl = 'Financing';
        this.inifrm = 'trtsel';
      }else if (this.activeTab === 'df'){
        this.trnUrl = 'Financing';
        this.inifrm = 'dftsel';
      }

      this.initdialog = true;
    },
    //双击表格数据
    async TableDblRow(row) {
      this.handler(row)
    },
    //单击表格数据
    TableRowClick(row) {
      this['selectedModel' + this.toTitleCase(this.activeTab)] = row
    },
    //点击页签
    async  handleClickTab(){
      switch (this.activeTab){
        case 'li':
          this.titleNam = "进口信用证交易列表"
              break;
        case 'br':
          this.titleNam = "进口信用证单据交易列表"
              break;
        case 'sg':
          this.titleNam = "提货担保交易列表"
              break;
        case 'tr':
          this.titleNam = "进口融资交易列表"
          break;
        case 'df':
          this.titleNam = "委托方代付交易列表"
          break;
        default:
          this.titleNam = "交易列表"
          break;
      }
      if(this.activeTab === 'br'){
        //从信用证跳转到单据页签
        if(this.selectedModelLi.inr){
          this.load = true;
          let params = {
            lidinr : this.selectedModelLi.inr,
            pageNumber: this.pagination.pageIndex,
            pageSize:this.pagination.pageSize,
          };
          let rtnmsg = await Api.post('/Lc/litsel/listbrByLid', params);
          if (rtnmsg.respCode == SUCCESS) {
            this.stmDataBr.data = [];
            this.stmDataBr.data = rtnmsg.data.list;
            this.pagination.total = rtnmsg.data.total;
          } else {
            this.$notify.error({ title: '错误', message: '服务请求失败!' });
          }
          this.load = false;
        }
      }else if(this.activeTab === 'sg'){
         //从信用证跳转到提货担保页签
         if(this.selectedModelLi.inr){
          this.load = true;
          let params = {
            lidinr : this.selectedModelLi.inr,
            pageNumber: this.pagination.pageIndex,
            pageSize:this.pagination.pageSize,
          };
          let rtnmsg = await Api.post('/Lc/litsel/listsgByLid', params);
          if (rtnmsg.respCode == SUCCESS) {
            this.stmDataSg.data = [];
            this.stmDataSg.data = rtnmsg.data.list;
            this.pagination.total = rtnmsg.data.total;
          } else {
            this.$notify.error({ title: '错误', message: '服务请求失败!' });
          }
          this.load = false;
        }
      }else if(this.activeTab !== 'li'){
        //从单据跳转到融资或代付页签
        if(this.selectedModelBr.inr) {
          this.load = true;
          let params = {
            pntinr: this.selectedModelBr.inr,
            pnttyp: 'BRD',
            pageNumber: this.pagination.pageIndex,
            pageSize: this.pagination.pageSize,
          };
          let rtnmsg = await Api.post('/Lc/litsel/list' + this.activeTab + 'ByBrd', params);
          if (rtnmsg.respCode == SUCCESS) {
            this['stmData' + this.toTitleCase(this.activeTab)].data = [];
            this['stmData' + this.toTitleCase(this.activeTab)].data = rtnmsg.data.list;
            this.stmDataTr.data
            this.pagination.total = rtnmsg.data.total;
          } else {
            this.$notify.error({title: '错误', message: '服务请求失败!'});
          }
          this.load = false;
        }
      }
    },
    changeOwnref(){
      if(this.activeTab === 'li'){
        if(this.model.infcon.seaownref){
          this.model.infcon.opndatfrom = null
        }
      }else{
        if(this.model[this.activeTab + 'con'][this.activeTab + 'ownref']){
          this.model[this.activeTab + 'con'].opndatfrom = null
        }
      }
    },
    async handleClick (btn,row) {
      this.routerPush({
        path: "/business/" + btn.code.toLowerCase(),
        query: { inr: row.inr,pntinr: row.pntinr }
      });
      this.initdialog = false;
    },
    // pageSize改变
    handleSizeChange(val) {
      console.log(`每页 ${val} 条`);
      this.pagination.pageIndex = 1;
      this.pagination.pageSize = val;
      this.handleSearch();
    },
    // 页码改变
    handleCurrentChange(val) {
      console.log(`当前页: ${val}`);
      this.pagination.pageIndex = val;
      this.handleSearch();
    },
    toLitpop() {
			this.routerPush({
				path: '/business/litpop',
			});
    },
   async toLitopn() {
      let params = {
        branch: JSON.parse(sessionStorage.getItem('currentOrg')).departmentNumber,
        frmtyp: 'LITOPN',
      }
      const res = await Api.post('/manager/atpbch/getInifrm', params);
      if (res.respCode === SUCCESS) {
				this.routerPush({
					path: '/business/' + res.data.inifrm.toLowerCase(),
				});
      }
    },
    toLetopn() {
			this.routerPush({
				path: '/business-new/letopn',
			});
    },
    // 详情
    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){
      console.log('activeTab:', this.activeTab.toLowerCase() == 'sg' ? 'br' : this.activeTab.toLowerCase() )
      this.routerPush({
        path: "/business/" + (this.activeTab.toLowerCase() == 'sg' ? 'br' : this.activeTab.toLowerCase()) + "dinf",
        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);
    },
    //点击交易列表按钮
    async handleClick (btn,row) {
      let objtyp = '';
      if (this.activeTab === 'li') {
        objtyp = 'LID';
      } else if (this.activeTab === 'br' || this.activeTab === 'sg') {
        objtyp = 'BRD';
      } else if (this.activeTab === 'tr') {
        objtyp = 'TRD';
      } else if (this.activeTab === 'df') {
        objtyp = 'DFD';
      } else {
        objtyp = '';
      }
     let obj = {
        objtyp:objtyp,
        objinr:row.inr,
        pntinr:row.pntinr,
        pnttyp:row.pnttyp,
        ledinr:row.ledinr,
        trnName:btn.code.toLowerCase(),
      }
     let isPush =  await this.$refs.lockAndPending.checkLockAndPending(obj)
      if(!isPush){
        return
      }
      this.routerPush({
        path: "/business/" + btn.code.toLowerCase(),
        query: { inr: row.inr,pntinr: row.pntinr }
      });
      this.initdialog = false;
    },
    //修改弹窗状态
    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
      }
    },
  },

};