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