king
2020-11-02 880a41a2135d944169d94028f19344ca66b673a0
src/tabviews/zshare/normalTable/index.jsx
@@ -203,55 +203,82 @@
  // 字段透视
  triggerLink = (item, record) => {
    const { tabviews, MenuID } = this.props
    let tabmenu = item.linkThdMenu
    let iframes = ['Main/Index', 'bda/rdt', 'Home/rdt']
    const { tabviews, MenuID, setting } = this.props
    if (tabmenu.LinkUrl === 'CommonTable') {
      tabmenu.type = 'CommonTable'
    } else if (tabmenu.LinkUrl === 'DataManage') {
      tabmenu.type = 'DataManage'
    } else if (tabmenu.LinkUrl && iframes.includes(tabmenu.LinkUrl.split('?')[0])) {
      tabmenu.type = 'iframe'
    }
    if (tabmenu.type !== 'iframe') {
      try {
        tabmenu.PageParam = JSON.parse(tabmenu.PageParam)
      } catch (e) {
        tabmenu.PageParam = {}
    if (item.linkThdMenu) {
      let tabmenu = item.linkThdMenu
      let iframes = ['Main/Index', 'bda/rdt', 'Home/rdt']
      if (tabmenu.LinkUrl === 'CommonTable') {
        tabmenu.type = 'CommonTable'
      } else if (tabmenu.LinkUrl === 'DataManage') {
        tabmenu.type = 'DataManage'
      } else if (tabmenu.LinkUrl && iframes.includes(tabmenu.LinkUrl.split('?')[0])) {
        tabmenu.type = 'iframe'
      }
      tabmenu.type = tabmenu.PageParam.Template || tabmenu.type
    }
      if (tabmenu.type !== 'iframe') {
        try {
          tabmenu.PageParam = JSON.parse(tabmenu.PageParam)
        } catch (e) {
          tabmenu.PageParam = {}
        }
        tabmenu.type = tabmenu.PageParam.Template || tabmenu.type
      }
      tabmenu.param = {
        searchkey: item.field,
        searchval: record[item.field] || '',
        BID: record[setting.primaryKey]
      }
      tabmenu.selected = true
      let index = 0
      let isexit = false
      let tabs = tabviews.map((tab, i) => {
        tab.selected = false
        if (tab.MenuID === MenuID) {
          index = i
        } else if (tab.MenuID === tabmenu.MenuID) {
          tab.param = tabmenu.param
          tab.selected = true
          isexit = true
        }
        return tab
      })
      if (!isexit) {
        tabs.splice(index + 1, 0, tabmenu)
      }
      this.props.modifyTabview(tabs)
    } else {
      let src = item.linkurl
    tabmenu.param = {
      searchkey: item.field,
      searchval: record[item.field] || ''
    }
    tabmenu.selected = true
    let index = 0
    let isexit = false
    let tabs = tabviews.map((tab, i) => {
      tab.selected = false
      if (tab.MenuID === MenuID) {
        index = i
      } else if (tab.MenuID === tabmenu.MenuID) {
        tab.param = tabmenu.param
        tab.selected = true
        isexit = true
      if (item.linkurl.indexOf('paramsmain/') > -1) {
        try {
          let _url = item.linkurl.split('paramsmain/')[0] + 'paramsmain/'
          let _param = JSON.parse(window.decodeURIComponent(window.atob(item.linkurl.split('paramsmain/')[1])))
          let dataparam = {
            searchkey: item.field,
            searchval: record[item.field] || '',
            BID: record[setting.primaryKey]
          }
          _param.UserID = sessionStorage.getItem('UserID')
          _param.LoginUID = sessionStorage.getItem('LoginUID')
          _param.User_Name = sessionStorage.getItem('User_Name')
          _param.param = dataparam
          src = _url + window.btoa(window.encodeURIComponent(JSON.stringify(_param)))
        } catch {
          console.warn('菜单参数解析错误!')
        }
      }
      return tab
    })
    if (!isexit) {
      tabs.splice(index + 1, 0, tabmenu)
      window.open(src)
    }
    this.props.modifyTabview(tabs)
  }
  getMark = (record, marks) => {
@@ -368,7 +395,7 @@
        content = md5(content)
      }
      if (item.linkThdMenu) {
      if (item.linkThdMenu || item.linkurl) {
        if (item.rowspan === 'true') {
          return {
            children: (
@@ -465,7 +492,7 @@
        content = md5(content)
      }
      if (item.linkThdMenu) {
      if (item.linkThdMenu || item.linkurl) {
        return (
          <div className={className}>
            <div className="baseboard link-menu" onDoubleClick={() => this.triggerLink(item, record)}></div>