From b636a3f64219455ee680bd626c65282c636cfcef Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期三, 07 七月 2021 19:06:13 +0800
Subject: [PATCH] 2021-07-07

---
 src/menu/components/tabs/antv-tabs/index.jsx |   50 ++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 48 insertions(+), 2 deletions(-)

diff --git a/src/menu/components/tabs/antv-tabs/index.jsx b/src/menu/components/tabs/antv-tabs/index.jsx
index 34c546b..8f64880 100644
--- a/src/menu/components/tabs/antv-tabs/index.jsx
+++ b/src/menu/components/tabs/antv-tabs/index.jsx
@@ -31,6 +31,7 @@
 
   state = {
     dict: sessionStorage.getItem('lang') !== 'en-US' ? zhCN : enUS,
+    appType: sessionStorage.getItem('appType'),
     tabs: null,
     editab: null,
     labelvisible: false
@@ -74,6 +75,7 @@
 
   componentDidMount () {
     MKEmitter.addListener('submitStyle', this.getStyle)
+    MKEmitter.addListener('submitSearch', this.getSearch)
     MKEmitter.addListener('tabsChange', this.handleTabsChange)
     MKEmitter.addListener('submitComponentStyle', this.updateComponentStyle)
   }
@@ -86,6 +88,7 @@
       return
     }
     MKEmitter.removeListener('submitStyle', this.getStyle)
+    MKEmitter.removeListener('submitSearch', this.getSearch)
     MKEmitter.removeListener('tabsChange', this.handleTabsChange)
     MKEmitter.removeListener('submitComponentStyle', this.updateComponentStyle)
   }
@@ -215,6 +218,7 @@
     this.tabLabelRef.handleConfirm().then(res => {
       editab.label = res.label
       editab.icon = res.icon
+      editab.hasSearch = res.hasSearch || ''
       editab.blacklist = res.blacklist
 
       if (editab.uuid) {
@@ -288,6 +292,45 @@
     this.props.updateConfig(tabs)
   }
 
+  getSearch = (config) => {
+    const { tabs } = this.state
+
+    if (tabs.uuid !== config.uuid) return
+
+    let _tabs = fromJS(tabs).toJS()
+
+    _tabs.subtabs = _tabs.subtabs.map(t => {
+      if (t.uuid === config.tabId) {
+        t.search = config.search
+      }
+      return t
+    })
+
+    this.setState({
+      tabs: _tabs
+    })
+    this.props.updateConfig(_tabs)
+  }
+
+  setSearch = (tab) => {
+    const { tabs } = this.state
+    let card = {
+      uuid: tabs.uuid,
+      tabId: tab.uuid,
+      search: tab.search
+    }
+
+    if (!card.search) {
+      card.search = {
+        floor: 1,
+        setting: { type: 'title', field: '', title: '', focus: 'true', btn: 'hidden' },
+        groups: [],
+        fields: []
+      }
+    }
+    MKEmitter.emit('changeSearch', card)
+  }
+
   clickComponent = (e) => {
     if (sessionStorage.getItem('style-control') === 'true' || sessionStorage.getItem('style-control') === 'component') {
       e.stopPropagation()
@@ -296,11 +339,11 @@
   }
 
   render() {
-    const { tabs, dict, labelvisible, editab } = this.state
+    const { tabs, dict, labelvisible, editab, appType } = this.state
     let _style = resetStyle(tabs.style)
 
     return (
-      <div className="menu-tabs-edit-box" style={_style} onClick={this.clickComponent} id={tabs.uuid}>
+      <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}>
           {tabs.subtabs.map(tab => (
             <TabPane tab={
@@ -314,6 +357,8 @@
                 <span>{tab.icon ? <Icon type={tab.icon} /> : null}{tab.label}</span>
               </Popover>
             } key={tab.uuid}>
+              {appType === 'mob' && tabs.setting.position === 'top' && tabs.setting.display === 'inline-block' && tab.hasSearch === 'icon' ?
+                <Icon className="search-icon" onDoubleClick={() => this.setSearch(tab)} type="search" /> : null}
               <TabComponents config={tab} handleList={this.updateTabComponent} deleteCard={this.deleteCard} />
             </TabPane>
           ))}
@@ -343,6 +388,7 @@
           <TabLabelComponent
             dict={dict}
             tab={editab}
+            setting={tabs.setting}
             inputSubmit={this.tabLabelSubmit}
             wrappedComponentRef={(inst) => this.tabLabelRef = inst}
           />

--
Gitblit v1.8.0