From 0bff15b120b3e3ff1f1c3d2ce4d9aa8d3ad3917e Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期五, 06 十一月 2020 13:49:44 +0800 Subject: [PATCH] 2020-11-06 --- src/tabviews/custom/index.jsx | 115 ++++++++++++++++++++++++++++++++++++++------------------- 1 files changed, 76 insertions(+), 39 deletions(-) diff --git a/src/tabviews/custom/index.jsx b/src/tabviews/custom/index.jsx index 73a4d2b..0cc3646 100644 --- a/src/tabviews/custom/index.jsx +++ b/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 } -- Gitblit v1.8.0