From 0bd9e1222d867893b66044b04754d9cc967d472e Mon Sep 17 00:00:00 2001
From: liuwh <hugeinfo123>
Date: Mon, 06 Apr 2020 16:49:45 +0800
Subject: [PATCH] 新建文档

---
 src/components/common/MenuView/index.jsx          |    2 
 src/index.js                                      |    2 
 src/api/request.js                                |    7 
 src/pages/index/workbench.jsx                     |    6 
 src/components/common/TopListTableView/index.jsx  |   26 +-
 src/components/common/TopListTableView/index.scss |   15 +
 src/components/common/HotListTableView/index.jsx  |  135 +++++++++++-
 src/index.css                                     |    8 
 src/components/common/TopListTableView/tagList.js |   83 ++++++++
 src/pages/menu/menu.jsx                           |   17 +
 src/components/common/HeadView/index.jsx          |   34 +++
 src/menu/menu.data.js                             |  117 +++++++----
 src/style/reset.scss                              |   48 ++++
 package.json                                      |    1 
 src/pages/login/login.jsx                         |   38 ++-
 src/pages/Index.jsx                               |    9 
 src/components/common/HotListTableView/index.scss |   10 
 src/api/httpurl.js                                |    3 
 18 files changed, 436 insertions(+), 125 deletions(-)

diff --git a/package.json b/package.json
index 7762c24..013ae08 100644
--- a/package.json
+++ b/package.json
@@ -51,6 +51,7 @@
     "less": "^3.11.1",
     "less-loader": "^5.0.0",
     "mockjs": "^1.0.1-beta3",
+    "moment": "^2.24.0",
     "react-app-rewired": "^2.1.5"
   }
 }
diff --git a/src/api/httpurl.js b/src/api/httpurl.js
index 1255dfd..4969b26 100644
--- a/src/api/httpurl.js
+++ b/src/api/httpurl.js
@@ -1,6 +1,5 @@
 //内网测试地址
-// let StagingUrl = 'http://192.168.0.107:8902';
-// let StagingUrl = "http://g185t82524.51mypc.cn";
+// let StagingUrl = 'http://192.168.0.103:9072';
 let StagingUrl = "http://oa.hugeinfo.com.cn";
 
 
diff --git a/src/api/request.js b/src/api/request.js
index 106447f..2228239 100644
--- a/src/api/request.js
+++ b/src/api/request.js
@@ -5,11 +5,7 @@
 
 const CODE_SUCCESS = '200';
 
-let token = window.localStorage.getItem('token') || undefined;
-let loginUser = window.localStorage.getItem('loginUser') || undefined;
-let posId = loginUser ? JSON.parse(loginUser).posId : undefined;
-
-let recognitionParams = ['posId'].reduce((p, n) => {
+let recognitionParams = [].reduce((p, n) => {
   if (eval(n)) {
     p[n] = eval(n);
     return p;
@@ -38,6 +34,7 @@
     autoLogin = true,
     headers = {}
   } = options;
+  let token = window.localStorage.getItem('token') || undefined;
 
   headers['Content-type'] = 'application/json';
   headers['Accept'] = 'application/json';
diff --git a/src/components/common/HeadView/index.jsx b/src/components/common/HeadView/index.jsx
index 96ed163..f133c44 100644
--- a/src/components/common/HeadView/index.jsx
+++ b/src/components/common/HeadView/index.jsx
@@ -7,14 +7,40 @@
 /** 头部组件 */
 
 import React from 'react';
-import { Layout } from 'antd';
+import { Layout, Menu, Dropdown, Icon, Row, Col, message } from 'antd';
 const { Header } = Layout;
 import './index.scss';
 
+const menu = (
+  <Menu>
+    <Menu.Item>
+      <a onClick={() => {
+        // 清空用户相关信息
+        window.localStorage.setItem('menu', '');
+        window.localStorage.setItem('token', '');
+        message.success('退出成功!');
+        window.location.href = window.location.origin + '/#/login';
+      }}>
+        退出
+      </a>
+    </Menu.Item>
+
+  </Menu>
+);
 
 export default function MenuView({ }) {
 
-    return (
-        <Header style={{ background: '#fff', padding: 0, boxShadow: 'inset 0 -1px 0 0 #E5E5E5' }} />
-    );
+  return (
+    <Header style={{ background: '#fff', padding: 0, boxShadow: 'inset 0 -1px 0 0 #E5E5E5' }}>
+      <Row type="flex" align="middle" justify="end" >
+        <Col style={{ marginRight: 40 }}>
+          <Dropdown overlay={menu}>
+            <a className="ant-dropdown-link" onClick={e => e.preventDefault()}>
+              登陆人<Icon type="down" />
+            </a>
+          </Dropdown>
+        </Col>
+      </Row>
+    </Header>
+  );
 }
diff --git a/src/components/common/HotListTableView/index.jsx b/src/components/common/HotListTableView/index.jsx
index 0e30d9d..8469970 100644
--- a/src/components/common/HotListTableView/index.jsx
+++ b/src/components/common/HotListTableView/index.jsx
@@ -8,8 +8,10 @@
 import React, { ReactNode, ReactEventHandler, Component } from 'react';
 import BreadcrumbView from '../BreadcrumbView';
 import TableView from '../TableView';
+import fetch from '../../../api/request';
+import moment from 'moment';
 
-import { Tabs } from 'antd';
+import { Tabs, Skeleton } from 'antd';
 
 const { TabPane } = Tabs;
 
@@ -21,30 +23,131 @@
     this.config = {
     };
     this.state = {
+      keywordlist: ['全部'],
+      formData: {
+        __key: Date.now(),
+        keyword: '',
+        page: 1,
+        size: 10,
+      },
+      loading: false
     };
   }
 
   componentWillMount() { }
 
-  componentDidMount() { }
+  componentDidMount() {
+    let { keywordlist } = this.state;
+    // 设置骨架屏
+    this.setState({
+      loading: true
+    })
+    fetch({
+      url: `api/news/keywordlist`
+    }).then(res => {
+      console.log('res', res);
+      this.setState({
+        loading: false
+      })
+      if (res) {
+        this.setState({
+          keywordlist: keywordlist.concat(res)
+        })
+      }
+    })
+  }
+
+  setFormData = data => {
+    console.log('form', data);
+    this.setState({
+      formData: data,
+    });
+  }
+
+  renderColumns = () => {
+    return [
+      {
+        title: '标题',
+        dataIndex: 'title',
+        key: 'title',
+        render: (cur, item) => {
+          return <a dangerouslySetInnerHTML={{ __html: cur }} onClick={() => {
+            window.open(item.url)
+          }}>
+          </a>
+        }
+      },
+      {
+        title: '发布时间',
+        key: 'create_time',
+        dataIndex: 'create_time',
+
+        render: (cur) => {
+          return (
+            <React.Fragment>
+              {cur && moment(cur).format("YYYY-MM-DD HH:mm")}
+            </React.Fragment>
+          );
+        },
+      },
+      {
+        title: '来源',
+        dataIndex: 'keyword',
+        key: 'keyword',
+      },
+    ];
+  }
+
+  tabChange = (tab) => {
+    console.log('tab', tab);
+    let { formData } = this.state
+    if (tab == '全部') {
+      tab = '';
+    }
+    this.setState({
+      formData: {
+        __key: Date.now(),
+        keyword: tab,
+        page: 1,
+        size: 10,
+      }
+    })
+  }
 
   render() {
+    let { keywordlist, formData, loading } = this.state;
+    let tableParams = {
+      url: `api/news/newslist`,
+      formData,
+      key: formData.__key,
+      columns: this.renderColumns(),
+      extraFromData: {
+      },
+      setFormData: this.setFormData
+    }
     return (
       <div className="hot-list-table-view-main">
-        <BreadcrumbView data={[{ name: '行业热点知识库' }]} />
-        <div className="hot-list-table-view-main-content">
-          <Tabs defaultActiveKey="1" >
-            <TabPane tab="Tab 1" key="1">
-              Content of Tab Pane 1
-            </TabPane>
-            <TabPane tab="Tab 2" key="2">
-              Content of Tab Pane 2
-            </TabPane>
-            <TabPane tab="Tab 3" key="3">
-              Content of Tab Pane 3
-            </TabPane>
-          </Tabs>
-        </div>
+        {
+          loading ? <div style={{ padding: 10 }}>
+            <Skeleton />
+          </div>
+            :
+            <React.Fragment>
+              <BreadcrumbView data={[{ name: '行业热点知识库' }]} />
+              <div className="hot-list-table-view-main-content">
+                <Tabs defaultActiveKey={'全部'} onChange={this.tabChange}>
+                  {
+                    keywordlist.length &&
+                    keywordlist.map((key) => (
+                      <TabPane tab={key} key={key}>
+                      </TabPane>
+                    ))
+                  }
+                </Tabs>
+                <TableView {...tableParams} />
+              </div>
+            </React.Fragment>
+        }
       </div>
     )
   }
diff --git a/src/components/common/HotListTableView/index.scss b/src/components/common/HotListTableView/index.scss
index a3c6610..27b7399 100644
--- a/src/components/common/HotListTableView/index.scss
+++ b/src/components/common/HotListTableView/index.scss
@@ -8,10 +8,18 @@
 .hot-list-table-view {
   &-main {
     margin: 24px 0;
+    padding-bottom: 24px;
     background: #fff;
     &-content {
-      margin: 0 24px 24px 24px;
+      margin: 0 24px;
       border: 1px solid #e6e6e6;
     }
+    & .ant-tabs-nav .ant-tabs-tab {
+      padding: 10px !important;
+      font-size: 12px;
+    }
+    & .ant-tabs-bar {
+      margin-bottom: 0 !important;
+    }
   }
 }
diff --git a/src/components/common/MenuView/index.jsx b/src/components/common/MenuView/index.jsx
index 7b9e76b..378fbb7 100644
--- a/src/components/common/MenuView/index.jsx
+++ b/src/components/common/MenuView/index.jsx
@@ -71,7 +71,7 @@
                     title={name.length > 10 ? name : undefined}
                     onClick={() => {
                         if (type == 'open') {
-                            window.open('/#' + path);
+                            window.open(path);
                         } else {
                             history.replace(path);
                         }
diff --git a/src/components/common/TopListTableView/index.jsx b/src/components/common/TopListTableView/index.jsx
index 6adcb29..0b8423b 100644
--- a/src/components/common/TopListTableView/index.jsx
+++ b/src/components/common/TopListTableView/index.jsx
@@ -7,6 +7,7 @@
 /** 榜单table列表 */
 import React, { ReactNode, ReactEventHandler, Component } from 'react';
 import { Table, Row, Col } from 'antd';
+import { tagList } from './tagList';
 import './index.scss';
 
 
@@ -16,23 +17,26 @@
     this.config = {
     };
     this.state = {
+      topList: []
     };
   }
 
-  componentWillMount() { }
+  componentWillMount() {
+    this.setState({
+      topList: tagList
+    })
+  }
 
   componentDidMount() { }
 
-  renderDom = () => {
+  renderDom = ({ name, columns }) => {
     return <div className="top-list-table-view-main-table">
-      <div className="top-list-table-view-main-table-title">主题</div>
+      <div className="top-list-table-view-main-table-title">{name}
+        <span className="top-list-table-view-main-table-title-fuc">查看</span>
+      </div>
       <Table
         dataSource={[{ age: 1 }]}
-        columns={[{
-          title: '年龄',
-          dataIndex: 'age',
-          key: 'age'
-        }]}
+        columns={columns}
         size="small"
         bordered={false}
         pagination={false}
@@ -41,13 +45,13 @@
   }
 
   render() {
-
+    let { topList } = this.state;
     return (
       <div className="top-list-table-view-main">
         <Row type="flex" gutter={12}>
           {
-            [1, 2, 3].map((item, idx) => {
-              return <Col span={24 / 3} key={idx}>{this.renderDom()}</Col>;
+            topList.map((item, idx) => {
+              return <Col span={24 / 3} key={idx}>{this.renderDom(item)}</Col>;
             })
           }
         </Row>
diff --git a/src/components/common/TopListTableView/index.scss b/src/components/common/TopListTableView/index.scss
index 369fd80..979a821 100644
--- a/src/components/common/TopListTableView/index.scss
+++ b/src/components/common/TopListTableView/index.scss
@@ -167,8 +167,21 @@
         color: #323232;
         text-align: center;
         line-height: 22px;
-        padding-bottom: 15px;
+        margin-bottom: 15px;
         font-weight: bold;
+        position: relative;
+        &-fuc {
+          position: absolute;
+          right: 0;
+          bottom: 0;
+          font-family: PingFangSC-Medium;
+          font-size: 12px;
+          color: #559de6;
+          text-align: center;
+          line-height: 20px;
+          margin-right: 20px;
+          cursor: pointer;
+        }
       }
     }
   }
diff --git a/src/components/common/TopListTableView/tagList.js b/src/components/common/TopListTableView/tagList.js
new file mode 100644
index 0000000..646b9e4
--- /dev/null
+++ b/src/components/common/TopListTableView/tagList.js
@@ -0,0 +1,83 @@
+/* eslint-disable */
+export const tagList = [
+  {
+    name: '考勤榜单',
+    columns: [
+      {
+        title: '名词',
+        dataIndex: 'index',
+        key: 'index'
+      },
+      {
+        title: '姓名',
+        dataIndex: 'name',
+        key: 'name'
+      },
+      {
+        title: '部门',
+        dataIndex: 'part',
+        key: 'part'
+      },
+      {
+        title: '次数',
+        dataIndex: 'count',
+        key: 'count'
+      },
+      {
+        title: '时长(分)',
+        dataIndex: 'time',
+        key: 'timer'
+      }
+    ]
+  },
+  {
+    name: '绩效榜单',
+    columns: [
+      {
+        title: '名词',
+        dataIndex: 'index',
+        key: 'index'
+      },
+      {
+        title: '姓名',
+        dataIndex: 'name',
+        key: 'name'
+      },
+      {
+        title: '部门',
+        dataIndex: 'part',
+        key: 'part'
+      },
+      {
+        title: '绩效得分',
+        dataIndex: 'score',
+        key: 'score'
+      }
+    ]
+  },
+  {
+    name: '缺陷榜单',
+    columns: [
+      {
+        title: '名词',
+        dataIndex: 'index',
+        key: 'index'
+      },
+      {
+        title: '姓名',
+        dataIndex: 'name',
+        key: 'name'
+      },
+      {
+        title: '部门',
+        dataIndex: 'part',
+        key: 'part'
+      },
+      {
+        title: '缺陷数',
+        dataIndex: 'quexianshu',
+        key: 'quexianshu'
+      }
+    ]
+  }
+];
diff --git a/src/index.css b/src/index.css
index 83b8ff5..355764e 100644
--- a/src/index.css
+++ b/src/index.css
@@ -22,6 +22,8 @@
   height: 100%;
 }
 
-/* .ant-layout-sider-trigger {
-  background: #58bc58;
-} */
+* {
+  -ms-overflow-style: none;
+  scrollbar-width: none;
+}
+
diff --git a/src/index.js b/src/index.js
index 84a362c..12fcbee 100644
--- a/src/index.js
+++ b/src/index.js
@@ -49,7 +49,7 @@
           <Content>
             <Switch>
               {/* 新建文档 */}
-              <Route path="/document/documentEdit" component={DocumentEdit} />
+              <Route path="/document/create" component={DocumentEdit} />
 
 
               {/* 全部通知 */}
diff --git a/src/menu/menu.data.js b/src/menu/menu.data.js
index 6666fee..ebd45cf 100644
--- a/src/menu/menu.data.js
+++ b/src/menu/menu.data.js
@@ -9,58 +9,81 @@
     name: '首页',
     path: '/app',
     icon: 'home',
-    permKey: 'menu.home',
-    children: [{
-      key: 'index_workbench',
-      name: '工作台',
-      path: '/index/workbench',
-      permKey: '/index/workbench',
-      children: []
-    }, {
-      key: 'index_system',
-      name: '规章制度',
-      path: '/index/system',
-      permKey: '/index/system',
-      children: []
-    }],
+    permKey: 'index',
+    children: [
+      {
+        key: 'index',
+        name: '工作台',
+        path: '/index',
+        permKey: '/index',
+        children: []
+      },
+      {
+        key: '/index/rules',
+        name: '规章制度',
+        path: '/index/rules',
+        permKey: '/index/rules',
+        children: []
+      }
+    ]
   },
   {
-    key: 'index',
+    key: 'workOffice',
+    name: '办公',
+    path: 'http://120.79.193.119:9090/',
+    icon: 'desktop',
+    permKey: 'workOffice',
+    children: [
+      {
+        key: 'workOffice',
+        name: 'GitBilt',
+        path: 'http://120.79.193.119:9090/',
+        permKey: 'http://120.79.193.119:9090/',
+        children: [],
+        type: 'open'
+      },
+      {
+        key: 'workOffice',
+        name: 'Teambition',
+        path: 'https://account.teambition.com/login/password',
+        permKey: 'https://account.teambition.com/login/password',
+        children: [],
+        type: 'open'
+      }
+    ]
+  },
+  {
+    key: 'document',
     name: '文档管理',
     path: '/document',
-    icon: 'FolderOutlined ',
-    permKey: 'menu.document',
-    children: [{
-      key: 'document',
-      name: '新建文档',
-      path: '/document/documentEdit',
-      permKey: '/document/documentEdit',
-      children: []
-    }],
+    icon: 'file',
+    permKey: 'document',
+    children: [
+      {
+        key: '/document/create',
+        name: '新建文档',
+        path: '/document/create',
+        permKey: '/document/create',
+        children: []
+      }
+    ]
   },
-  // {
-  //   key: 'collect',
-  //   name: '信息采集',
-  //   path: '/collect',
-  //   icon: 'user',
-  //   permKey: 'menu.users',
-  //   children: [
-  //     {
-  //       key: 'collect_jurisdictionPersonMgt',
-  //       name: '辖区人口管理',
-  //       path: '/collect/jurisdictionPersonMgt',
-  //       permKey: 'collect_jurisdictionPersonMgt',
-  //       children: [],
-  //     },
-  //     {
-  //       key: 'collect_personhouseMgt',
-  //       name: '查人查房管理',
-  //       path: '/collect/personhouseMgt',
-  //       permKey: 'collect_personhouseMgt',
-  //       children: [],
-  //     }
-  //   ],
-  // },
+  {
+    key: 'logManage',
+    name: '系统管理',
+    path: '/logManage',
+    icon: 'setting',
+    permKey: 'logManage',
+    children: [
+      {
+        key: '/logManage/browseLog',
+        name: '浏览日志',
+        path: '/logManage/browseLog',
+        permKey: '/logManage/browseLog',
+        children: []
+      }
+    ]
+  }
 ];
 
 export default menus;
diff --git a/src/pages/Index.jsx b/src/pages/Index.jsx
index dc5b9da..9cbd063 100644
--- a/src/pages/Index.jsx
+++ b/src/pages/Index.jsx
@@ -20,15 +20,6 @@
 
   componentDidMount() {
     document.title = 'Index';
-    fetch({
-      url: 'hik-common/api/opus/user/loginTest',
-      params: {
-        loginName: 'lilinl',
-        passWord: 'qweqw',
-      }
-    }).then(res => {
-      console.log('res', res);
-    })
   }
 
   render() {
diff --git a/src/pages/index/workbench.jsx b/src/pages/index/workbench.jsx
index 569a806..52203d1 100644
--- a/src/pages/index/workbench.jsx
+++ b/src/pages/index/workbench.jsx
@@ -26,9 +26,11 @@
 
   render() {
     return (
-      <div className="workbench-page-main">
+      <div className="workbench-page-main flex-box-column">
         <BreadcrumbView data={[{ name: '工作台' }]} />
-        <WorkbenchPage />
+        <div className="flex-1">
+          <WorkbenchPage />
+        </div>
       </div>
     )
   }
diff --git a/src/pages/login/login.jsx b/src/pages/login/login.jsx
index c967383..8d6150e 100644
--- a/src/pages/login/login.jsx
+++ b/src/pages/login/login.jsx
@@ -36,8 +36,9 @@
                     btnLoading: true
                 });
                 fetch({
-                    url: `hik-common/api/opus/user/loginTest`,
-                    params: {
+                    url: `api/account/login`,
+                    method: 'POST',
+                    data: {
                         ...values
                     }
                 }).then(res => {
@@ -53,18 +54,21 @@
     };
 
     handleRes = (res) => {
-        let loginUser = {};
-        let curPosIndex = window.localStorage.getItem('curPosIndex');
-        curPosIndex = (curPosIndex || curPosIndex == {}) || 0;
-        loginUser = res.user[curPosIndex];
 
-        window.localStorage.setItem('user', res);
+        // 将token放入缓存
         window.localStorage.setItem('token', res.token);
-        window.localStorage.setItem('curPosIndex', curPosIndex);
-        window.localStorage.setItem('loginUser', JSON.stringify(loginUser));
-        message.success('登录成功', () => {
-            this.props.history.push({ pathname: "/index" });
+
+        fetch({
+            url: `api/resource/getResource`,
+        }).then(res => {
+            console.log('res', res);
+            if (res) {
+                window.localStorage.setItem('menu', JSON.stringify(res));
+                message.success('登录成功');
+                this.props.history.push({ pathname: "/index" });
+            }
         })
+
 
     }
 
@@ -82,24 +86,24 @@
                             <div className="login-div-content-div-title">登录OA云平台</div>
                             <Form onSubmit={this.handleSubmit} className="login-form">
                                 <Form.Item className="login-div-content-form-flex" >
-                                    {getFieldDecorator('loginName', {
+                                    {getFieldDecorator('account', {
                                         rules: [{ required: true, message: '请输入账号!' }],
                                     })(
                                         <Input
-                                            style={{ width: '32vh',height: '5vh',margin:'12px' }}
+                                            style={{ width: '32vh', height: '5vh', margin: '12px' }}
                                             prefix={<Icon type="user" style={{ color: 'rgba(0,0,0,.25)' }} />}
                                             placeholder="请输入账号"
                                         />,
                                     )}
                                 </Form.Item>
                                 <Form.Item className="login-div-content-form-flex">
-                                    {getFieldDecorator('passWord', {
+                                    {getFieldDecorator('credential', {
                                         rules: [{ required: true, message: '请输入密码!' }],
-                                        initialValue: 'psw'
+                                        initialValue: 'admin'
                                     })(
                                         <Input
-                                            style={{ width: '32vh',height: '5vh',margin:'12px' }}
-                                            prefix={<Icon type="lock" style={{ color: 'rgba(0,0,0,.25)'}} />}
+                                            style={{ width: '32vh', height: '5vh', margin: '12px' }}
+                                            prefix={<Icon type="lock" style={{ color: 'rgba(0,0,0,.25)' }} />}
                                             type="password"
                                             placeholder="请输入密码"
                                         />,
diff --git a/src/pages/menu/menu.jsx b/src/pages/menu/menu.jsx
index 70b99ce..83d581b 100644
--- a/src/pages/menu/menu.jsx
+++ b/src/pages/menu/menu.jsx
@@ -10,8 +10,8 @@
 import { Spin, Layout, Menu, Icon } from 'antd';
 import MenView from '../../components/common/MenuView';
 import { menus, getMenuListByPermission } from '../../menu';
+import fetch from '../../api/request';
 
-// import Fetch from '../fetch';
 const { Sider } = Layout;
 
 function find(data, pathname) {
@@ -39,9 +39,20 @@
     };
   }
 
-  componentDidMount() {
-    this.setState({ data: menus });
+  componentWillMount() {
+    // 获取从登录页面记录在缓存里的菜单数据
+    let menu = window.localStorage.getItem('menu') ? JSON.parse(window.localStorage.getItem('menu')) : [];
+    let permList = menu && menu.map(({ symbol }) => (symbol)).concat(menu.map(({ moduleSymbol }) => (moduleSymbol))).reduce((p, n) => {
+      if (p.indexOf(n) == -1) {
+        return p.concat(n)
+      } else {
+        return p
+      }
+    }, []);
+    console.log(getMenuListByPermission(menus, permList) )
+    this.setState({ data: getMenuListByPermission(menus, permList) });
   }
+  componentDidMount() { }
 
   onCollapse = collapsed => {
     this.setState({ collapsed });
diff --git a/src/style/reset.scss b/src/style/reset.scss
index 791988d..802dc2e 100644
--- a/src/style/reset.scss
+++ b/src/style/reset.scss
@@ -2,7 +2,51 @@
   margin-bottom: 20px;
 }
 
-.ant-layout-sider-trigger{
-  background: #CC4E45;
+.ant-layout-sider-trigger {
+  background: #cc4e45;
 }
 
+.ant-layout-sider {
+  background-color: #fff !important;
+}
+
+*::-webkit-scrollbar {
+  /*滚动条整体样式*/
+  width: 5px; /*高宽分别对应横竖滚动条的尺寸*/
+  height: 1px;
+}
+*::-webkit-scrollbar-thumb {
+  /*滚动条里面小方块*/
+  border-radius: 2.5px;
+  box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
+  background: #848484;
+}
+*::-webkit-scrollbar-track {
+  /*滚动条里面轨道*/
+  box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
+  border-radius: 2.5px;
+  background: #ededed;
+}
+
+.ant-layout {
+  height: 100%;
+  display: flex;
+  flex-direction: column;
+}
+
+.ant-layout-content {
+  flex: 1;
+  display: flex;
+  flex-direction: column;
+}
+
+.flex-box-column {
+  display: flex;
+  flex-direction: column;
+  height: 100%;
+}
+
+.flex-1 {
+  flex: 1;
+  overflow-y: auto;
+}

--
Gitblit v1.8.0