king
2022-08-08 176c6e1da22e96a1110fa91f8fc8eb8ad2881e08
src/tabviews/custom/index.jsx
@@ -73,7 +73,7 @@
   * @description 获取页面配置信息
   */
  async loadconfig () {
    const { permAction, param } = this.props
    const { permAction } = this.props
    let _param = {
      func: 'sPC_Get_LongParam',
@@ -138,7 +138,9 @@
      let roleId = sessionStorage.getItem('role_id') || '' // 角色ID
      let balMap = new Map()
      let skip = config.permission === 'false' || window.GLOB.mkHS
      config.components = this.filterComponent(config.components, roleId, permAction, balMap, skip)
      let param = this.props.param || {} // url参数
      config.components = this.filterComponent(config.components, roleId, permAction, balMap, skip, param)
      
      // 获取主搜索条件
      let mainSearch = []
@@ -147,7 +149,7 @@
        component.search = component.search.map(item => {
          item.oriInitval = item.initval
          if (['text', 'select', 'link'].includes(item.type) && param && param.$searchkey === item.field) {
          if (['text', 'select', 'link'].includes(item.type) && param.$searchkey === item.field) {
            item.initval = param.$searchval
          }
@@ -158,7 +160,7 @@
      })
      let params = []
      let BID = param && param.$BID ? param.$BID : ''
      let BID = param.$BID || ''
      let inherit = {}
      if (config.cacheUseful === 'true') { // 缓存继承
@@ -188,7 +190,7 @@
      }
      if (config.urlFields) {
        config.urlFields.forEach(field => {
          let val = `'${param ? (param[field] || '') : ''}'`
          let val = `'${param[field] || ''}'`
          regs.push({
            reg: new RegExp('@' + field + '@', 'ig'),
            value: val
@@ -441,7 +443,7 @@
    })
  }
  filterComponent = (components, roleId, permAction, balMap, skip) => {
  filterComponent = (components, roleId, permAction, balMap, skip, urlparam) => {
    return components.filter(item => {
      
      if (item.style && item.style.boxShadow) {
@@ -473,8 +475,58 @@
          return true
        })
        if (item.setting.supModule) {
          let pid = item.setting.supModule.pop()
          item.setting.supModule = pid || ''
          if (item.setting.supModule) {
            item.setting.controlField = item.setting.controlField.toLowerCase()
            if (item.setting.supModule === 'preview') {
              item.setting.supModule = ''
              let val = ''
              Object.keys(urlparam).forEach(key => {
                if (key.toLowerCase() === item.setting.controlField) {
                  val = urlparam[key]
                }
              })
              item.subtabs = item.subtabs.filter(tab => {
                if (tab.controlVal === val) {
                  return false
                } else if (/,/ig.test(tab.controlVal)) {
                  return !tab.controlVal.split(',').includes(val)
                }
                return true
              })
            }
          }
        }
        if (item.setting.selectField) {
          item.setting.selectField = item.setting.selectField.toLowerCase()
          let val = ''
          Object.keys(urlparam).forEach(key => {
            if (key.toLowerCase() === item.setting.selectField) {
              val = urlparam[key]
            }
          })
          let activeKey = ''
          item.subtabs.forEach(tab => {
            if (!activeKey && tab.selectVal === val) {
              activeKey = tab.uuid
            }
          })
          item.activeKey = activeKey
        }
        item.subtabs = item.subtabs.map(tab => {
          tab.components = this.filterComponent(tab.components, roleId, permAction, balMap, skip)
          tab.components = this.filterComponent(tab.components, roleId, permAction, balMap, skip, urlparam)
          return tab
        })
@@ -489,6 +541,8 @@
          })
        })
        item.parentIds = supIds
        return true
      } else if (item.type === 'group') {
        if (
          item.setting.blacklist && item.setting.blacklist.length > 0 &&
@@ -497,7 +551,9 @@
          return false
        }
        item.components = this.filterComponent(item.components, roleId, permAction, balMap, skip)
        item.components = this.filterComponent(item.components, roleId, permAction, balMap, skip, urlparam)
        return true
      } else if (['pie', 'bar', 'line', 'dashboard', 'scatter', 'chart'].includes(item.type)) {
        if (
          item.plot.blacklist && item.plot.blacklist.length > 0 &&