From 2b4b1ecca5b6170bcbf3364b7ea81a248d0d6593 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期二, 12 十月 2021 18:02:09 +0800 Subject: [PATCH] 2021-10-12 --- src/components/tabview/index.scss | 3 - src/mob/components/tabs/antv-tabs/options.jsx | 38 ------------ src/tabviews/custom/components/tabs/antv-tabs/index.jsx | 35 +++++++++++ src/tabviews/custom/components/tabs/antv-tabs/index.scss | 4 + src/menu/components/tabs/antv-tabs/options.jsx | 38 ++++++++++-- src/assets/css/main.scss | 4 + 6 files changed, 73 insertions(+), 49 deletions(-) diff --git a/src/assets/css/main.scss b/src/assets/css/main.scss index 53b3fd9..68f19ed 100644 --- a/src/assets/css/main.scss +++ b/src/assets/css/main.scss @@ -408,6 +408,10 @@ } } +.ant-tabs .ant-tabs-top-content.ant-tabs-content-animated { // 鍘婚櫎鍒囨崲鏃剁殑鍔ㄧ敾鏁堟灉 + transition: margin-left 0s cubic-bezier(0.645, 0.045, 0.355, 1)!important; +} + // .ant-table.ant-table-mini .ant-table-thead > tr > th { // padding: 8px 4px; // } diff --git a/src/components/tabview/index.scss b/src/components/tabview/index.scss index 09130ce..332f6ad 100644 --- a/src/components/tabview/index.scss +++ b/src/components/tabview/index.scss @@ -66,9 +66,6 @@ } } } - .ant-tabs .ant-tabs-top-content.ant-tabs-content-animated { - transition: margin-left 0s cubic-bezier(0.645, 0.045, 0.355, 1); - } iframe { width: 100%; height: calc(100vh - 115px); diff --git a/src/menu/components/tabs/antv-tabs/options.jsx b/src/menu/components/tabs/antv-tabs/options.jsx index 11ca9a3..23f7108 100644 --- a/src/menu/components/tabs/antv-tabs/options.jsx +++ b/src/menu/components/tabs/antv-tabs/options.jsx @@ -126,19 +126,43 @@ {value: 'line', label: 'line'}, {value: 'card', label: 'card'}, ], - forbid: appType === 'mob' }, { type: 'radio', - field: 'display', - label: '鏍囩鏄剧ず', - initval: setting.display || 'flex', + field: 'autoSwitch', + label: '鑷姩鍒囨崲', + initval: setting.autoSwitch || 'false', + tooltip: '瀛樺湪涓や釜鍙婁互涓婃爣绛炬椂鏈夋晥銆�', required: false, options: [ - {value: 'flex', label: '寮规�у竷灞�'}, - {value: 'inline-block', label: '瀹氬'}, + {value: 'true', label: '鏄�'}, + {value: 'false', label: '鍚�'}, ], - forbid: appType !== 'mob' + controlFields: [ + {field: 'interval', values: ['true']}, + {field: 'tabLabel', values: ['true']}, + ] + }, + { + type: 'number', + field: 'interval', + label: '闂撮殧锛坰锛�', + initval: setting.interval || 5, + min: 1, + max: 1000, + precision: 0, + required: true + }, + { + type: 'radio', + field: 'tabLabel', + label: '鏍囩鏍�', + initval: setting.tabLabel || 'show', + required: false, + options: [ + {value: 'show', label: '鏄剧ず'}, + {value: 'hide', label: '闅愯棌'}, + ] }, { type: 'multiselect', diff --git a/src/mob/components/tabs/antv-tabs/options.jsx b/src/mob/components/tabs/antv-tabs/options.jsx index 5d4291a..37bc0c5 100644 --- a/src/mob/components/tabs/antv-tabs/options.jsx +++ b/src/mob/components/tabs/antv-tabs/options.jsx @@ -66,19 +66,6 @@ * @description tabs琛ㄥ崟閰嶇疆淇℃伅 */ export function getTabsSetForm(setting) { - let appType = sessionStorage.getItem('appType') - let roleList = sessionStorage.getItem('sysRoles') - - if (roleList) { - try { - roleList = JSON.parse(roleList) - } catch (e) { - roleList = [] - } - } else { - roleList = [] - } - const tabForm = [ { type: 'text', @@ -117,19 +104,6 @@ }, { type: 'radio', - field: 'tabStyle', - label: '椤电鏍峰紡', - initval: setting.tabStyle || 'line', - tooltip: '鏍囩浣嶇疆涓簍op鏃舵湁鏁堬紝榛樿鍊间负line銆�', - required: true, - options: [ - {value: 'line', label: 'line'}, - {value: 'card', label: 'card'}, - ], - forbid: appType === 'mob' - }, - { - type: 'radio', field: 'display', label: '鏍囩鏄剧ず', initval: setting.display || 'flex', @@ -138,17 +112,7 @@ {value: 'flex', label: '寮规�у竷灞�'}, {value: 'inline-block', label: '瀹氬'}, ], - forbid: appType !== 'mob' - }, - { - type: 'multiselect', - field: 'blacklist', - label: '榛戝悕鍗�', - initval: setting.blacklist || [], - required: false, - options: roleList, - forbid: !!appType - }, + } ] return tabForm diff --git a/src/tabviews/custom/components/tabs/antv-tabs/index.jsx b/src/tabviews/custom/components/tabs/antv-tabs/index.jsx index 23aa817..6ad66b0 100644 --- a/src/tabviews/custom/components/tabs/antv-tabs/index.jsx +++ b/src/tabviews/custom/components/tabs/antv-tabs/index.jsx @@ -22,7 +22,8 @@ state = { tabs: null, parentIds: [], - bids: {} + bids: {}, + activeIndex: 1 } UNSAFE_componentWillMount () { @@ -39,7 +40,13 @@ } componentDidMount () { + const { config } = this.props + + if (config.setting.autoSwitch === 'true' && config.subtabs.length > 1 && config.setting.interval) { + this.autoSwitch(config.setting.interval) + } MKEmitter.addListener('resetSelectLine', this.resetParentParam) + } /** @@ -62,12 +69,36 @@ }) } + autoSwitch = (interval) => { + const { tabs, activeIndex } = this.state + + if (!tabs) return + + let index = activeIndex + + if (!tabs.subtabs[index]) { + index = 0 + } + + let id = 'tab' + tabs.subtabs[index].uuid + + this.setState({activeIndex: ++index}) + + setTimeout(() => { + let node = document.getElementById(id) + if (node) { + node.click() + this.autoSwitch(interval) + } + }, interval * 1000) + } + render() { const { mainSearch, BID } = this.props const { tabs, bids } = this.state return ( - <div className="menu-antv-tabs-wrap" style={tabs.style}> + <div className={'menu-antv-tabs-wrap ' + tabs.setting.tabLabel} style={tabs.style}> <Tabs defaultActiveKey="1" tabPosition={tabs.setting.position} type={tabs.setting.tabStyle}> {tabs.subtabs.map(tab => ( <TabPane tab={<span id={'tab' + tab.uuid}>{tab.icon ? <Icon type={tab.icon} /> : null}{tab.label}</span>} key={tab.uuid}> diff --git a/src/tabviews/custom/components/tabs/antv-tabs/index.scss b/src/tabviews/custom/components/tabs/antv-tabs/index.scss index c9f78da..dc4e400 100644 --- a/src/tabviews/custom/components/tabs/antv-tabs/index.scss +++ b/src/tabviews/custom/components/tabs/antv-tabs/index.scss @@ -6,3 +6,7 @@ background-repeat: no-repeat; background-size: cover; } + +.menu-antv-tabs-wrap.hide >.ant-tabs >.ant-tabs-bar{ + display: none; +} -- Gitblit v1.8.0