king
2020-11-06 0bff15b120b3e3ff1f1c3d2ce4d9aa8d3ad3917e
src/tabviews/custom/index.jsx
@@ -106,37 +106,42 @@
        return
      }
      // 权限过滤
      if (this.props.menuType !== 'HS') {
        config.components = this.filterComponent(config.components)
      }
      // 获取主搜索条件
      let mainSearch = []
      config.components.forEach(component => {
        if (component.type === 'search') {
          component.search = component.search.map(item => {
            item.oriInitval = item.initval
            if (['text', 'select', 'link'].includes(item.type) && param) {
              if (param.searchkey === item.field) {
                item.initval = param.searchval
              } else if (param.BID && item.field.toLowerCase() === 'bid') {
                item.initval = param.BID
              } else if (param.data && param.data[item.field]) {
                item.initval = param.data[item.field]
              }
        if (component.type !== 'search') return
        component.search = component.search.map(item => {
          item.oriInitval = item.initval
          if (['text', 'select', 'link'].includes(item.type) && param) {
            if (param.searchkey === item.field) {
              item.initval = param.searchval
            } else if (param.BID && item.field.toLowerCase() === 'bid') {
              item.initval = param.BID
            } else if (param.data && param.data[item.field]) {
              item.initval = param.data[item.field]
            }
          }
            if (!item.blacklist || item.blacklist.length === 0) return item
          if (!item.blacklist || item.blacklist.length === 0) return item
            let _black = item.blacklist.filter(v => {
              return this.props.permRoles.indexOf(v) !== -1
            })
            if (_black.length > 0) {
              item.Hide = 'true'
            }
            return item
          let _black = item.blacklist.filter(v => {
            return this.props.permRoles.indexOf(v) !== -1
          })
          mainSearch = Utils.initMainSearch(component.search)
        }
          if (_black.length > 0) {
            item.Hide = 'true'
          }
          return item
        })
        mainSearch = Utils.initMainSearch(component.search)
      })
      let params = []
@@ -162,6 +167,42 @@
        duration: 5
      })
    }
  }
  filterComponent = (components) => {
    return components.filter(item => {
      if (item.type === 'tabs') {
        if (item.setting.blacklist && item.setting.blacklist.length > 0) {
          let _black = item.setting.blacklist.filter(v => {
            return this.props.permRoles.indexOf(v) !== -1
          })
          if (_black.length > 0) return false
        }
        item.subtabs = item.subtabs.map(tab => {
          tab.components = this.filterComponent(tab.components)
          return tab
        })
      } else if (item.type === 'pie' || item.type === 'bar' || item.type === 'line') {
        if (item.plot.blacklist && item.plot.blacklist.length > 0) {
          let _black = item.plot.blacklist.filter(v => {
            return this.props.permRoles.indexOf(v) !== -1
          })
          if (_black.length > 0) return false
        }
      } else {
        if (item.wrap.blacklist && item.wrap.blacklist.length > 0) {
          let _black = item.wrap.blacklist.filter(v => {
            return this.props.permRoles.indexOf(v) !== -1
          })
          if (_black.length > 0) return false
        }
      }
      return true
    })
  }
  // 格式化默认设置
@@ -443,22 +484,18 @@
            <AntvTabs config={item} BID={BID} mainSearch={mainSearch} />
          </Col>
        )
      } else if (item.type === 'card') {
        if (item.subtype === 'datacard') {
          return (
            <Col span={item.width} key={item.uuid}>
              <DataCard config={item} data={data} BID={BID} mainSearch={mainSearch} menuType={menuType} dataManager={dataManager} />
            </Col>
          )
        } else if (item.subtype === 'propcard') {
          return (
            <Col span={item.width} key={item.uuid}>
              <PropCard config={item} data={data} BID={BID} mainSearch={mainSearch} menuType={menuType} dataManager={dataManager} />
            </Col>
          )
        } else {
          return null
        }
      } else if (item.type === 'card' && item.subtype === 'datacard') {
        return (
          <Col span={item.width} key={item.uuid}>
            <DataCard config={item} data={data} BID={BID} mainSearch={mainSearch} menuType={menuType} dataManager={dataManager} />
          </Col>
        )
      } else if (item.type === 'card' && item.subtype === 'propcard') {
        return (
          <Col span={item.width} key={item.uuid}>
            <PropCard config={item} data={data} BID={BID} mainSearch={mainSearch} menuType={menuType} dataManager={dataManager} />
          </Col>
        )
      } else {
        return null
      }