From e9c48bd7356462ba9257540b130a47a65ad1861d Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期四, 26 八月 2021 17:17:11 +0800 Subject: [PATCH] 2021-08-26 --- src/menu/components/tabs/antv-tabs/index.jsx | 153 +++++++++++++++++++++++--------------------------- 1 files changed, 70 insertions(+), 83 deletions(-) diff --git a/src/menu/components/tabs/antv-tabs/index.jsx b/src/menu/components/tabs/antv-tabs/index.jsx index 0cb7d7d..41e0b3d 100644 --- a/src/menu/components/tabs/antv-tabs/index.jsx +++ b/src/menu/components/tabs/antv-tabs/index.jsx @@ -10,14 +10,15 @@ import { resetStyle } from '@/utils/utils-custom.js' import MenuUtils from '@/utils/utils-custom.js' import Utils from '@/utils/utils.js' +import getTabForm from './options' import zhCN from '@/locales/zh-CN/model.js' import enUS from '@/locales/en-US/model.js' import './index.scss' const SettingComponent = asyncIconComponent(() => import('../tabsetting')) +const NormalForm = asyncIconComponent(() => import('@/components/normalform')) const CopyComponent = asyncIconComponent(() => import('@/menu/components/share/copycomponent')) const PasteController = asyncIconComponent(() => import('@/menu/pastecontroller')) -const TabLabelComponent = asyncComponent(() => import('../tablabelform')) const TabComponents = asyncComponent(() => import('../tabcomponents')) const { TabPane } = Tabs @@ -35,7 +36,7 @@ appType: sessionStorage.getItem('appType'), tabs: null, editab: null, - labelvisible: false + defaultActiveKey: '' } UNSAFE_componentWillMount () { @@ -60,11 +61,13 @@ ] } this.setState({ + defaultActiveKey: _tabs.subtabs[0].uuid, tabs: _tabs }) this.props.updateConfig(_tabs) } else { this.setState({ + defaultActiveKey: window.GLOB.TabsMap.get(tabs.uuid) || '', tabs: fromJS(tabs).toJS() }) } @@ -130,7 +133,7 @@ changeStyle = () => { const { tabs } = this.state - MKEmitter.emit('changeStyle', [tabs.uuid], ['background', 'border', 'padding', 'margin'], tabs.style) + MKEmitter.emit('changeStyle', [tabs.uuid], ['background', 'border', 'padding', 'margin', 'shadow'], tabs.style) } getStyle = (comIds, style) => { @@ -185,63 +188,6 @@ this.setState({tabs}) this.props.updateConfig(tabs) - } - - tabAdd = (e) => { - const { tabs } = this.state - - e.stopPropagation() - - this.setState({ - editab: { - uuid: '', - parentId: tabs.uuid, - floor: tabs.floor, - label: '', - icon: '', - components: [] - }, - labelvisible: true - }) - } - - editTab = (tab) => { - this.setState({ - editab: tab, - labelvisible: true - }) - } - - tabLabelSubmit = () => { - let tabs = fromJS(this.state.tabs).toJS() - let editab = fromJS(this.state.editab).toJS() - - this.tabLabelRef.handleConfirm().then(res => { - editab.label = res.label - editab.icon = res.icon - editab.hasSearch = res.hasSearch || '' - editab.blacklist = res.blacklist - - if (editab.uuid) { - tabs.subtabs = tabs.subtabs.map(t => { - if (t.uuid === editab.uuid) { - return editab - } else { - return t - } - }) - } else { - editab.uuid = Utils.getuuid() - tabs.subtabs.push(editab) - } - - this.setState({ - editab: null, - labelvisible: false, - tabs - }) - this.props.updateConfig(tabs) - }) } delTab = (tab) => { @@ -345,18 +291,76 @@ } } + getTabForms = (tab) => { + const { tabs } = this.state + + if (!tab) { + tab = { + uuid: '', + parentId: tabs.uuid, + floor: tabs.floor, + label: '', + icon: '', + components: [] + } + } + + this.setState({ + editab: tab + }) + + return getTabForm(tab, tabs.setting) + } + + updateTab = (res) => { + let tabs = fromJS(this.state.tabs).toJS() + let editab = fromJS(this.state.editab).toJS() + + editab.label = res.label + editab.icon = res.icon + editab.hasSearch = res.hasSearch || '' + editab.blacklist = res.blacklist + + if (editab.uuid) { + tabs.subtabs = tabs.subtabs.map(t => { + if (t.uuid === editab.uuid) { + return editab + } else { + return t + } + }) + } else { + editab.uuid = Utils.getuuid() + tabs.subtabs.push(editab) + } + + this.setState({ + editab: null, + tabs + }) + + this.props.updateConfig(tabs) + } + + onChange = (key) => { + const { tabs } = this.state + window.GLOB.TabsMap.set(tabs.uuid, key) + } + render() { - const { tabs, dict, labelvisible, editab, appType } = this.state + const { tabs, appType, defaultActiveKey } = this.state let _style = resetStyle(tabs.style) return ( <div className={'menu-tabs-edit-box ' + tabs.setting.display} style={_style} onClick={this.clickComponent} id={tabs.uuid}> - <DraggableTabs tabPosition={tabs.setting.position} type={tabs.setting.tabStyle} tabsMove={this.moveSwitch}> + <DraggableTabs defaultActiveKey={defaultActiveKey} tabPosition={tabs.setting.position} type={tabs.setting.tabStyle} tabsMove={this.moveSwitch} onChange={this.onChange}> {tabs.subtabs.map(tab => ( <TabPane tab={ <Popover overlayClassName="mk-popover-control-wrap" mouseLeaveDelay={0.2} mouseEnterDelay={0.2} content={ <div className="mk-popover-control"> - <Icon className="edit" title="edit" type="edit" onClick={() => this.editTab(tab)} /> + <NormalForm title="鏍囩缂栬緫" width={600} update={this.updateTab} getForms={() => this.getTabForms(tab)}> + <Icon type="edit" style={{color: '#1890ff'}} title="缂栬緫"/> + </NormalForm> <PasteController type="tab" Tab={tab} insert={this.insert} /> <Icon className="close" title="delete" type="close" onClick={() => this.delTab(tab)} /> </div> @@ -372,7 +376,9 @@ </DraggableTabs> <Popover overlayClassName="mk-popover-control-wrap" mouseLeaveDelay={0.2} mouseEnterDelay={0.2} content={ <div className="mk-popover-control"> - <Icon className="plus" title="娣诲姞鏍囩" type="plus" onClick={this.tabAdd} /> + <NormalForm title="娣诲姞鏍囩" width={600} update={this.updateTab} getForms={() => this.getTabForms()}> + <Icon type="plus" className="plus" title="娣诲姞鏍囩"/> + </NormalForm> <SettingComponent config={tabs} updateConfig={this.updateComponent} /> <CopyComponent type="tabs" card={tabs}/> <Icon className="style" title="璋冩暣鏍峰紡" onClick={this.changeStyle} type="font-colors" /> @@ -381,25 +387,6 @@ } trigger="hover"> <Icon type="tool" /> </Popover> - <Modal - wrapClassName="popview-modal" - title={'鏍囩缂栬緫'} - visible={labelvisible} - width={600} - maskClosable={false} - okText={dict['model.submit']} - onOk={this.tabLabelSubmit} - onCancel={() => { this.setState({ labelvisible: false }) }} - destroyOnClose - > - <TabLabelComponent - dict={dict} - tab={editab} - setting={tabs.setting} - inputSubmit={this.tabLabelSubmit} - wrappedComponentRef={(inst) => this.tabLabelRef = inst} - /> - </Modal> </div> ) } -- Gitblit v1.8.0