From 1b89aa4493d1c9768447f2f480d594cdb8077fdc Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期一, 26 十月 2020 09:24:19 +0800
Subject: [PATCH] 2020-10-26

---
 src/tabviews/home/index.jsx |  338 +++++++------------------------------------------------
 1 files changed, 46 insertions(+), 292 deletions(-)

diff --git a/src/tabviews/home/index.jsx b/src/tabviews/home/index.jsx
index b1ef4b1..b53c5bd 100644
--- a/src/tabviews/home/index.jsx
+++ b/src/tabviews/home/index.jsx
@@ -1,312 +1,66 @@
 import React, {Component} from 'react'
 import PropTypes from 'prop-types'
-import echarts from 'echarts/lib/echarts'
-import 'echarts/lib/chart/bar'
-import 'echarts/lib/component/tooltip'
-// import 'echarts/lib/chart/line'
-// import 'echarts/lib/component/title'
-// import 'echarts/lib/component/legend'
-// import 'echarts/lib/component/toolbox'
-// import 'echarts/lib/component/markPoint'
-// import 'echarts/lib/component/markLine'
-import { Icon, Tabs, Slider } from 'antd'
+import { notification, Spin } from 'antd'
+
+import Api from '@/api'
+import asyncComponent from '@/utils/asyncComponent'
 import './index.scss'
 
-const { TabPane } = Tabs
+const DefaultHome = asyncComponent(() => import('./defaulthome'))
+const CustomPage = asyncComponent(() => import('@/tabviews/custom'))
 
 class Home extends Component {
   static propTpyes = {
-    MenuNo: PropTypes.string, // 鑿滃崟鍙傛暟
     MenuID: PropTypes.string, // 鑿滃崟Id
-    param: PropTypes.object // 鑿滃崟鍙傛暟
   }
 
-  state = {}
+  state = {
+    loading: true,
+    view: ''
+  }
 
   componentDidMount () {
-    let myChart = echarts.init(document.getElementById('home'))
-    // 缁樺埗鍥捐〃
-    myChart.setOption({
-      color: ['#1890ff'],
-      tooltip : {
-        trigger: 'axis',
-        axisPointer : {    // 鍧愭爣杞存寚绀哄櫒锛屽潗鏍囪酱瑙﹀彂鏈夋晥
-          type : ''        // 榛樿涓虹洿绾匡紝鍙�変负锛�'line' | 'shadow'
+    let _param = {
+      func: 'sPC_Get_LongParam',
+      MenuID: this.props.MenuID
+    }
+    Api.getCacheConfig(_param).then(result => {
+      if (result.status) {
+        if (result.LongParam) {
+          this.setState({
+            loading: false,
+            view: 'custom'
+          })
+        } else {
+          this.setState({
+            loading: false,
+            view: 'default'
+          })
         }
-      },
-      grid: {
-        left: '3%',
-        right: '4%',
-        bottom: '3%',
-        containLabel: true
-      },
-      xAxis : [
-        {
-          type : 'category',
-          data : ['1鏈�', '2鏈�', '3鏈�', '4鏈�', '5鏈�', '6鏈�', '7鏈�', '8鏈�', '9鏈�', '10鏈�', '11鏈�', '12鏈�'],
-          axisTick: {
-            alignWithLabel: true
-          }
-        }
-      ],
-      yAxis : [
-        {
-          type : 'value',
-          splitLine: {
-            show: true,
-            lineStyle: {
-              color: '#d9d9d9',
-              type: 'dashed'
-            }
-          }
-        }
-      ],
-      series : [
-        {
-          name:'鏈堢淮淇暟',
-          type:'bar',
-          barWidth: '30',
-          data:[30, 52, 200, 334, 390, 330, 220, 170, 220, 290, 350, 410, 440, 530]
-        }
-      ]
+      } else {
+        this.setState({
+          loading: false,
+          view: 'default'
+        })
+        notification.warning({
+          top: 92,
+          message: result.message,
+          duration: 5
+        })
+      }
     })
   }
 
   render() {
-    return (
-      <div className="home-view">
-        <div className="ant-row-flex">
-          <div className="ant-col ant-col-sm-6">
-            <div className="ant-card">
-              <div className="ant-card-body">
-                <div className="antd-chart-card">
-                  <div className="antd-chart-top">
-                    <div className="antd-meta-wrap">
-                      <div className="antd-meta">
-                        <span>
-                          <span>缁翠慨鎬绘暟</span>
-                        </span>
-                        <span className="antd-action">
-                          <Icon type="info-circle-o" />
-                        </span>
-                      </div>
-                      <div className="antd-total">
-                        <span>100</span>
-                      </div>
-                    </div>
-                  </div>
-                  <div className="antd-chart-content">
-                    <div className="antd-content-fixed">
-                      <div className="antd-trend-item" style={{marginRight: '16px'}}>
-                        <span>
-                          <span>鍛ㄥ悓姣�</span>
-                          <span className="antd-trend-text">10%</span>
-                        </span>
-                        <span className="antd-trend-up">
-                          <Icon type="caret-up" />
-                        </span>
-                      </div>
-                      <div className="antd-trend-item">
-                        <span>
-                          <span>鏃ュ悓姣�</span>
-                          <span className="antd-trend-text">10%</span>
-                        </span>
-                        <span className="antd-trend-down">
-                          <Icon type="caret-down" />
-                        </span>
-                      </div>
-                    </div>
-                  </div>
-                  <div className="antd-chart-footer">
-                    <div className="antd-field">
-                      <span className="antd-label">
-                        <span>缁翠慨鎬绘暟</span>
-                      </span>
-                      <span className="antd-number">100</span>
-                    </div>
-                  </div>
-                </div>
-              </div>
-            </div>
-          </div>
-          <div className="ant-col ant-col-sm-6">
-            <div className="ant-card">
-              <div className="ant-card-body">
-                <div className="antd-chart-card">
-                  <div className="antd-chart-top">
-                    <div className="antd-meta-wrap">
-                      <div className="antd-meta">
-                        <span>
-                          <span>瓒呮椂宸ュ崟</span>
-                        </span>
-                        <span className="antd-action">
-                          <Icon type="info-circle-o" />
-                        </span>
-                      </div>
-                      <div className="antd-total">
-                        <span>100</span>
-                      </div>
-                    </div>
-                  </div>
-                  <div className="antd-chart-content">
-                    <div className="antd-content-fixed orange">
-                      <Slider defaultValue={67} tipFormatter={null} />
-                      <div className="mask"></div>
-                    </div>
-                  </div>
-                  <div className="antd-chart-footer">
-                    <div className="antd-field">
-                      <span className="antd-label">
-                        <span>瓒呮椂宸ュ崟</span>
-                      </span>
-                      <span className="antd-number">100</span>
-                    </div>
-                  </div>
-                </div>
-              </div>
-            </div>
-          </div>
-          <div className="ant-col ant-col-sm-6">
-            <div className="ant-card">
-              <div className="ant-card-body">
-                <div className="antd-chart-card">
-                  <div className="antd-chart-top">
-                    <div className="antd-meta-wrap">
-                      <div className="antd-meta">
-                        <span>
-                          <span>鍏冲崟</span>
-                        </span>
-                        <span className="antd-action">
-                          <Icon type="info-circle-o" />
-                        </span>
-                      </div>
-                      <div className="antd-total">
-                        <span>100</span>
-                      </div>
-                    </div>
-                  </div>
-                  <div className="antd-chart-content">
-                    <div className="antd-content-fixed primary">
-                      <Slider defaultValue={77} tipFormatter={null} />
-                      <div className="mask"></div>
-                    </div>
-                  </div>
-                  <div className="antd-chart-footer">
-                    <div className="antd-field">
-                      <span className="antd-label">
-                        <span>鍏冲崟</span>
-                      </span>
-                      <span className="antd-number">100</span>
-                    </div>
-                  </div>
-                </div>
-              </div>
-            </div>
-          </div>
-          <div className="ant-col ant-col-sm-6">
-            <div className="ant-card">
-              <div className="ant-card-body">
-                <div className="antd-chart-card">
-                  <div className="antd-chart-top">
-                    <div className="antd-meta-wrap">
-                      <div className="antd-meta">
-                        <span>
-                          <span>鍘熶欢閭瘎</span>
-                        </span>
-                        <span className="antd-action">
-                          <Icon type="info-circle-o" />
-                        </span>
-                      </div>
-                      <div className="antd-total">
-                        <span>100</span>
-                      </div>
-                    </div>
-                  </div>
-                  <div className="antd-chart-content">
-                    <div className="antd-content-fixed">
-                      <Slider defaultValue={87} tipFormatter={null} />
-                      <div className="mask"></div>
-                    </div>
-                  </div>
-                  <div className="antd-chart-footer">
-                    <div className="antd-trend-item" style={{marginRight: '16px'}}>
-                      <span>
-                        <span>鍛ㄥ悓姣�</span>
-                        <span className="antd-trend-text">10%</span>
-                      </span>
-                      <span className="antd-trend-up">
-                        <Icon type="caret-up" />
-                      </span>
-                    </div>
-                    <div className="antd-trend-item">
-                      <span>
-                        <span>鏃ュ悓姣�</span>
-                        <span className="antd-trend-text">10%</span>
-                      </span>
-                      <span className="antd-trend-down">
-                        <Icon type="caret-down" />
-                      </span>
-                    </div>
-                  </div>
-                </div>
-              </div>
-            </div>
-          </div>
-        </div>
-        <Tabs defaultActiveKey="1">
-          <TabPane tab="缁翠慨鎬绘暟" key="1">
-            <div id="home" className="sale-trend ant-col ant-col-xs-16"></div>
-            <div className="ant-col ant-col-xs-8">
-              <div className="antd-sales-rank">
-                <h4 className="antd-ranking-title">浜у搧鎺掑悕</h4>
-                <ul className="antd-ranking-list">
-                  <li>
-                    <span className="antd-ranking-active">1</span>
-                    <span className="antd-ranking-title">KU699</span>
-                    <span>723,234</span>
-                  </li>
-                  <li>
-                    <span className="antd-ranking-active">2</span>
-                    <span className="antd-ranking-title">KU110</span>
-                    <span>683,434</span>
-                  </li>
-                  <li>
-                    <span className="antd-ranking-active">3</span>
-                    <span className="antd-ranking-title">KU110K</span>
-                    <span>527,264</span>
-                  </li>
-                  <li>
-                    <span className="antd-ranking-number">4</span>
-                    <span className="antd-ranking-title">KU066.9</span>
-                    <span>493,233</span>
-                  </li>
-                  <li>
-                    <span className="antd-ranking-number">5</span>
-                    <span className="antd-ranking-title">KU079</span>
-                    <span>323,734</span>
-                  </li>
-                  <li>
-                    <span className="antd-ranking-number">6</span>
-                    <span className="antd-ranking-title">KU153</span>
-                    <span>303,934</span>
-                  </li>
-                  <li>
-                    <span className="antd-ranking-number">7</span>
-                    <span className="antd-ranking-title">KU151</span>
-                    <span>227,244</span>
-                  </li>
-                  <li>
-                    <span className="antd-ranking-number">8</span>
-                    <span className="antd-ranking-title">KU720</span>
-                    <span>223,734</span>
-                  </li>
-                </ul>
-              </div>
-            </div>
-          </TabPane>
-        </Tabs>
-      </div>
-    )
+    const { loading, view } = this.state
+
+    if (loading) {
+      return (<Spin className="home-box-spin" size="large" />)
+    } else if (view === 'custom') {
+      return (<CustomPage MenuID={this.props.MenuID}/>)
+    } else {
+      return (<DefaultHome />)
+    }
   }
 }
 

--
Gitblit v1.8.0