chenying 6 bulan lalu
induk
melakukan
1b6f82a721
22 mengubah file dengan 623 tambahan dan 47 penghapusan
  1. TEMPAT SAMPAH
      src/assets/home/YouSheBiaoTiHei-2.ttf
  2. TEMPAT SAMPAH
      src/assets/home/active.png
  3. TEMPAT SAMPAH
      src/assets/home/bg.jpg
  4. TEMPAT SAMPAH
      src/assets/home/bg_1.png
  5. TEMPAT SAMPAH
      src/assets/home/bg_2.png
  6. TEMPAT SAMPAH
      src/assets/home/bg_3.png
  7. TEMPAT SAMPAH
      src/assets/home/img_bg.png
  8. TEMPAT SAMPAH
      src/assets/home/menu.png
  9. TEMPAT SAMPAH
      src/assets/home/mes_title.png
  10. TEMPAT SAMPAH
      src/assets/home/messge.png
  11. TEMPAT SAMPAH
      src/assets/home/sp_1.png
  12. TEMPAT SAMPAH
      src/assets/home/sp_2.png
  13. TEMPAT SAMPAH
      src/assets/home/sp_3.png
  14. TEMPAT SAMPAH
      src/assets/home/sp_4.png
  15. TEMPAT SAMPAH
      src/assets/home/title.png
  16. TEMPAT SAMPAH
      src/assets/home/title1.png
  17. TEMPAT SAMPAH
      src/assets/home/top.png
  18. 2 1
      src/element-ui-theme/index.js
  19. 1 1
      src/router/index.js
  20. 438 7
      src/views/common/home.vue
  21. 48 38
      src/views/main-content.vue
  22. 134 0
      src/views/modules/files/list.vue

TEMPAT SAMPAH
src/assets/home/YouSheBiaoTiHei-2.ttf


TEMPAT SAMPAH
src/assets/home/active.png


TEMPAT SAMPAH
src/assets/home/bg.jpg


TEMPAT SAMPAH
src/assets/home/bg_1.png


TEMPAT SAMPAH
src/assets/home/bg_2.png


TEMPAT SAMPAH
src/assets/home/bg_3.png


TEMPAT SAMPAH
src/assets/home/img_bg.png


TEMPAT SAMPAH
src/assets/home/menu.png


TEMPAT SAMPAH
src/assets/home/mes_title.png


TEMPAT SAMPAH
src/assets/home/messge.png


TEMPAT SAMPAH
src/assets/home/sp_1.png


TEMPAT SAMPAH
src/assets/home/sp_2.png


TEMPAT SAMPAH
src/assets/home/sp_3.png


TEMPAT SAMPAH
src/assets/home/sp_4.png


TEMPAT SAMPAH
src/assets/home/title.png


TEMPAT SAMPAH
src/assets/home/title1.png


TEMPAT SAMPAH
src/assets/home/top.png


+ 2 - 1
src/element-ui-theme/index.js

@@ -5,7 +5,8 @@
  *  1. 此处只包含element-ui组件主题
  *  2. 要达到整站主题修改效果, 请确保[import './element-[#17B3A3]/index.css']当前主题色与[/src/assets/scss/_variables.scss]文件中[$--color-primary]属性值一致
  */
-import './element-#17B3A3/index.css' // 当前主题色
+// import './element-#17B3A3/index.css' // 当前主题色
+import './element-#3E8EF7/index.css'
 export default {
   list: [
     '#0BB2D4', // 青色

+ 1 - 1
src/router/index.js

@@ -33,7 +33,7 @@ const mainRoutes = {
     // 1. isTab: 是否通过tab展示内容, true: 是, false: 否
     // 2. iframeUrl: 是否通过iframe嵌套展示内容, '以http[s]://开头': 是, '': 否
     // 提示: 如需要通过iframe嵌套展示内容, 但不通过tab打开, 请自行创建组件使用iframe处理!
-    { path: '/home', component: _import('common/home'), name: 'home', meta: { title: '首页' } },
+    { path: '/home', component: _import('common/home'), name: 'home', meta: { title: '首页', isHome: true } },
     { path: '/theme', component: _import('common/theme'), name: 'theme', meta: { title: '主题' } },
     { path: '/msg-center', component: _import('modules/msg-center/notice'), name: 'msgCenter', meta: { title: '我的消息中心' } },
     { path: '/msg-announcement', component: _import('modules/msg-center/announcement'), name: 'msgAnnouncement', meta: { title: '公告消息' } },

+ 438 - 7
src/views/common/home.vue

@@ -1,7 +1,91 @@
 <template>
-  <div class="mod-home">
-    <h3 v-if="orgName">{{orgName}}, 欢迎您!</h3>
-    <h3 v-else>木之云数字化平台,欢迎您!</h3>
+  <div class="home-main" id="my-home-main" :style="`transform: scale(${toScale}) !important;`">
+    <div class="top">
+      <div class="top-name">XXXX数字看板</div>
+    </div>
+    <div v-if="show" class="full-screen" @click="fullScreen">
+      <svg t="1732355752742" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4253" width="200" height="200"><path d="M368.896 192H224a32 32 0 0 0-32 32v137.888a32 32 0 0 0 64 0V256h112.896a32 32 0 0 0 0-64zM784.864 192H640a32 32 0 1 0 0 64h112.864v105.888a32 32 0 1 0 64 0V224a32 32 0 0 0-32-32zM368.896 777.92H256V672a32 32 0 1 0-64 0v137.92a32 32 0 0 0 32 32h144.896a32 32 0 1 0 0-64zM784.864 640a32 32 0 0 0-32 32v105.92H640a32 32 0 1 0 0 64h144.864a32 32 0 0 0 32-32V672a32 32 0 0 0-32-32z" fill="#273CFF" p-id="4254"></path><path d="M912 48h-800c-35.296 0-64 28.704-64 64v800c0 35.296 28.704 64 64 64h800c35.296 0 64-28.704 64-64v-800c0-35.296-28.704-64-64-64z m-800 864v-800h800l0.064 800H112z" fill="#273CFF" p-id="4255"></path></svg>
+    </div>
+    <div class="main-center">
+      <div class="center-1">
+        <div class="item-title">
+          <div class="item-title-name">企业荣誉</div>
+        </div>
+        <div class="msg-1">
+          <div v-for="i in 5" class="msg-item">
+            <div class="msg-title">国家高新<br>技术企业</div>
+            <div class="msg-center">我司于XXXX年被认定为国家高新技术企业,体现了我们在科技创新和自主研发方面的卓越能力。</div>
+          </div>
+        </div>
+        <div class="item-title">
+          <div class="item-title-name">企业资质</div>
+        </div>
+        <div class="msg-2">
+          <div v-for="i in 4" class="msg-item">
+            <img src="" />
+            <div class="img-name">荣誉证书</div>
+          </div>
+        </div>
+      </div>
+      <div class="center-2">
+        <div class="main-nav">
+          <div class="nav-item acitve">企业首页</div>
+          <div class="nav-item">业务看板</div>
+          <div class="nav-item">生产看板</div>
+          <div class="nav-item">质量看板</div>
+        </div>
+        <div class="item-title  titel-1">
+          <div class="item-title-name">公司信息</div>
+        </div>
+        <div class="msg-4">
+          <div class="img-b">
+            <img src="" />
+            <div class="img-b1" />
+          </div>
+          <div class="msg-des">
+            美的集团股份有限公司于2000年04月07日在佛山市顺德区市场监督管理局登记成立。法定代表人方洪波,公司经营范围包括生产经营家用电器、电机及其零部件;从事家用电器等。
+          </div>
+        </div>
+        <div class="msg-5">
+          <div class="msg-5-1">
+            <video class="video" autoplay muted>
+              <source src="http://vjs.zencdn.net/v/oceans.mp4" type="video/mp4">
+            </video>
+          </div>
+          <div class="msg-5-2">
+            <video class="video" autoplay muted>
+              <source src="http://vjs.zencdn.net/v/oceans.mp4" type="video/mp4">
+            </video>
+          </div>
+          <div class="msg-5-3">
+            <video class="video" autoplay muted>
+              <source src="http://vjs.zencdn.net/v/oceans.mp4" type="video/mp4">
+            </video>
+          </div>
+          <div class="msg-5-4">
+            <video class="video" autoplay muted>
+              <source src="http://vjs.zencdn.net/v/oceans.mp4" type="video/mp4">
+            </video>
+          </div>
+        </div>
+      </div>
+      <div class="center-3">
+        <div class="item-title">
+          <div class="item-title-name">企业风采</div>
+        </div>
+        <div class="msg-3">
+          <img src />
+          <div class="msg-des">
+            <p>为增强团队凝聚力,提升员工之间的沟通与协作,特举办年度团建活动。通过丰富多彩的活动,增进同事间的了解与信任,共同开启新的奋斗篇章。</p>
+            <p>活动的第一项内容是破冰游戏,虽然一开始大家有些拘谨但随着游戏的进行,大家逐渐放下了心防,露出了笑容。通过这些轻松有趣的活动,我认识了平时工作中没太多交集的同事感觉彼此之间的距离一下子拉近了。</p>
+          </div>
+          <img src />
+          <div class="msg-des">
+            <p>接下来的团队挑战赛更是让我印象深刻。我们被随机分成了不同的组,面对各种挑战,大家齐心协力,发挥各自的优势解决一个又一个难题。在比赛中,我深切感受到团队合作的重要性。每个人的参与和贡献都是不可或缺的,正是这种紧密的合作让我们取得了优异的成绩。在欢呼和掌声中,我体会到了团队成功的喜悦与骄傲。</p>
+          </div>
+        </div>
+      </div>
+    </div>
   </div>
 </template>
 
@@ -10,25 +94,372 @@ import {getOrgName} from '@/api/org'
 export default {
   data () {
     return {
-      orgName: ''
+      orgName: '',
+      toScale: 1.0,
+      show: true
     }
   },
   created () {
     this.init()
   },
+  mounted () {
+    this.$nextTick(() => {
+      let screen = document.getElementById('my-home-main')
+      if (screen.requestFullscreen) {
+        document.addEventListener('fullscreenchange', () => {
+          if (this.getFullscreenElement() == null) {
+            this.setScale()
+            this.show = true
+          }
+        })
+      }
+      setTimeout(() => {
+        this.setScale()
+      }, 500)
+    })
+  },
   methods: {
     async init () {
       await getOrgName().then(({data}) => {
         this.orgName = data.data
       })
+    },
+    getFullscreenElement () {
+      return (
+          document['fullscreenElement'] ||
+          document['mozFullScreenElement'] ||
+          document['msFullScreenElement'] ||
+          document['webkitFullscreenElement'] || null
+      )
+    },
+    setScale () {
+      const elements = document.getElementsByClassName('my-home')
+      const toWidth = elements[0].offsetWidth
+      this.toScale = toWidth / 1920
+      elements[0].style.height = (1080 * this.toScale) + 'px'
+    },
+    fullScreen () {
+      const element = document.getElementsByClassName('my-home')
+      element[0].requestFullscreen()
+      const toWidth = window.innerWidth
+      this.toScale = toWidth / 1920
+      this.show = false
     }
   }
 }
 </script>
 
-<style>
-  .mod-home {
-    line-height: 1.5;
+<style scoped lang="scss">
+  @font-face {
+    font-family: 'YouSheBiaoTiHei';
+    src: url('../../assets/home/YouSheBiaoTiHei-2.ttf') format('truetype'); /* 最后优先级 */
+  }
+  .home-main{
+    background: url(../../assets/home/bg.jpg) no-repeat;
+    background-size: 100% 100%;
+    height: 1080px !important;
+    width: 1920px !important;
+    overflow: auto;
+    font-family: YouSheBiaoTiHei;
+    position: relative;
+    transform-origin: left top;
+    .top{
+      height: 104px;
+      width: 1920px;
+      background: url(../../assets/home/top.png) no-repeat;
+      background-size: 100% 100%;
+      display: flex;
+      padding-top:12px;
+      justify-content: center;
+      position: absolute;
+      top: 0;
+      .top-name{
+        font-size: 39px;
+        color: #FFFFFF;
+        line-height: 51px;
+        letter-spacing: 11px;
+        text-shadow: 0px 2px 9px #001E8D;
+        font-style: normal;
+        text-transform: none;
+      }
+    }
+    .main-center{
+      display: flex;
+       width: 1920px;
+      .center-1{
+        width: 541px;
+        min-width: 541px;
+        padding-left: 16px;
+        padding-right: 8px;
+        padding-top: 63px;
+      }
+      .center-2{
+        flex: 1;
+        overflow: hidden;
+        padding-top: 88px;
+      }
+      .center-3{
+        width: 541px;
+        min-width: 541px;
+        padding-left: 16px;
+        padding-right: 8px;
+        padding-top: 63px;
+      }
+      .flex-1{
+        flex: 1;
+      }
+      .item-title{
+        height: 48px;
+        width: 100%;
+        display: flex;
+        background: url(../../assets/home/title.png) no-repeat;
+        background-size: 100% 100%;
+        align-items: center;
+        .item-title-name{
+          font-size: 24px;
+          color: #FFFFFF;
+          line-height: 31px;
+          letter-spacing: 2px;
+          text-shadow: 0px 1px 5px rgba(0,15,108,0.66);
+          font-style: normal;
+          text-transform: none;
+          padding-left: 32px;
+        }
+      }
+      .titel-1{
+        width: 830px;
+        background: url(../../assets/home/title1.png) no-repeat;
+        background-size: 100% 100%;
+      }
+      .msg-1{
+        width: 500px;
+        height: 458px;
+        background: url(../../assets/home/bg_1.png) no-repeat;
+        background-size: 100% 100%;
+        margin-left: 5px;
+        margin-top:5px;
+        padding-top:20px;
+        padding-left: 11px;
+        padding-right: 17px;
+        padding-bottom: 18px;
+        margin-bottom: 12px;
+        .msg-item{
+          display: flex;
+          background: url(../../assets/home/messge.png) no-repeat;
+          background-size: 100% 100%;
+          height: 69px;
+          margin-bottom: 15px;
+          align-items: center;
+          .msg-title{
+            width: 127px;
+            min-width: 127px;
+            height: 69px;
+            background: url(../../assets/home/mes_title.png) no-repeat;
+            background-size: 100% 100%;
+            font-size: 18px;
+            color: #FFFFFF;
+            line-height: 24px;
+            letter-spacing: 1px;
+            font-style: normal;
+            text-transform: none;
+            display: flex;
+            justify-content: center;
+            align-items: center;
+          }
+          .msg-center{
+            padding-left: 10px;
+            font-family: PingFangSC, PingFang SC;
+            font-weight: 400;
+            font-size: 14px;
+            color: #FFFFFF;
+            line-height: 20px;
+            text-align: left;
+            font-style: normal;
+          }
+        }
+      }
+      .msg-2{
+        display: flex;
+        width: 500px;
+        height: 429px;
+        background: url(../../assets/home/bg_2.png) no-repeat;
+        background-size: 100% 100%;
+        margin-left: 6px;
+        padding: 0px 14px;
+        padding-top: 23px;
+        flex-flow: wrap;
+        justify-content: space-between;
+        .msg-item{
+          margin-left: 6px;
+          width: 227px;
+          padding-bottom: 11px;
+          img{
+            width: 227px;
+            height: 160px;
+          }
+          .img-name{
+            font-family: PingFangSC, PingFang SC;
+            font-weight: 400;
+            font-size: 18px;
+            color: #FFFFFF;
+            line-height: 25px;
+            letter-spacing: 1px;
+            text-align: center;
+            font-style: normal;
+            padding-top: 7px;
+          }
+        }
+      }
+      .msg-3{
+        width: 500px;
+        height: 951px;
+        background: url(../../assets/home/bg_3.png) no-repeat;
+        background-size: 100% 100%;
+        padding: 24px 12px;
+        padding-right: 16px;
+        img{
+          width: 472px;
+          height: 276px;
+          background: #D8D8D8;
+          border: 1px solid #327FFF;
+        }
+        .msg-des{
+          padding-top: 12px;
+          padding-bottom: 10px;
+          font-family: PingFangSC, PingFang SC;
+          font-weight: 400;
+          font-size: 16px;
+          color: #FFFFFF;
+          line-height: 22px;
+          letter-spacing: 1px;
+          text-align: left;
+          font-style: normal;
+          p{
+            margin: 0;
+            text-indent: 2em;
+          }
+        }
+      }
+      .main-nav{
+        display: flex;
+        justify-content: space-between;
+        padding: 0 11px;
+        margin-bottom: 13px;
+        .nav-item{
+          width: 182px;
+          height: 57px;
+          background: url(../../assets/home/menu.png) no-repeat;
+          background-size: 100% 100%;
+          display: flex;
+          justify-content:center;
+          align-items: center;
+          font-size: 18px;
+          color: #FFFFFF;
+          line-height: 23px;
+          text-shadow: 0px 0px 7px rgba(255,177,30,0.8);
+          font-style: normal;
+          text-transform: none;
+        }
+        .acitve{
+          background: url(../../assets/home/active.png) no-repeat;
+          background-size: 100% 100%;
+        }
+      }
+      .msg-4{
+        width: 830px;
+        height: 373px;
+        background: url(../../assets/home/bg_2.png) no-repeat;
+        background-size: 100% 100%;
+        padding: 15px 12px;
+        padding-bottom: 0px;
+        .img-b{
+          width: 806px;
+          height: 285px;
+          position: relative;
+          .img-b1{
+            width: 806px;
+            height: 285px;
+            background: url(../../assets/home/img_bg.png) no-repeat;
+            background-size: 100% 100%;
+            position: absolute;
+            z-index: 2;
+            top: 0;
+          }
+          img{
+            width: 100%;
+            height: 100%;
+          }
+        }
+        .msg-des{
+          padding-top: 10px;
+          font-family: PingFangSC, PingFang SC;
+          font-weight: 400;
+          font-size: 16px;
+          color: #FFFFFF;
+          line-height: 24px;
+          letter-spacing: 1px;
+          text-align: left;
+          font-style: normal;
+          text-indent: 2em;
+        }
+      }
+      .msg-5{
+        display: flex;
+        width: 830px;
+        flex-flow: wrap;
+        justify-content: space-between;
+        .video{
+          width: 391px;
+          height: 190px;
+        }
+        .msg-5-1{
+          width: 410px;
+          height: 230px;
+          background: url(../../assets/home/sp_1.png) no-repeat;
+          background-size: 100% 100%;
+          margin-top: 11px;
+          text-align: center;
+          padding-top: 34px;
+        }
+        .msg-5-2{
+          width: 410px;
+          height: 230px;
+          background: url(../../assets/home/sp_2.png) no-repeat;
+          background-size: 100% 100%;
+          margin-top: 11px;
+           text-align: center;
+            padding-top: 34px;
+        }
+        .msg-5-3{
+          width: 410px;
+          height: 230px;
+          background: url(../../assets/home/sp_3.png) no-repeat;
+          background-size: 100% 100%;
+          margin-top: 11px;
+           text-align: center;
+            padding-top: 34px;
+        }
+        .msg-5-4{
+          width: 410px;
+          height: 230px;
+          background: url(../../assets/home/sp_4.png) no-repeat;
+          background-size: 100% 100%;
+          margin-top: 11px;
+           text-align: center;
+            padding-top: 34px;
+        }
+      }
+    }
+  }
+  .full-screen{
+    position: absolute;
+    right: 20px;
+    top: 20px;
+    cursor: pointer;
+    svg{
+      width: 20px;
+      height: 20px;
+    }
   }
 </style>
 

+ 48 - 38
src/views/main-content.vue

@@ -1,44 +1,49 @@
 <template>
   <main class="site-content" :class="{ 'site-content--tabs': $route.meta.isTab }">
     <!-- 主入口标签页 s -->
-    <el-tabs
-      v-if="$route.meta.isTab"
-      v-model="mainTabsActiveName"
-      :closable="true"
-      @tab-click="selectedTabHandle"
-      @tab-remove="removeTabHandle">
-      <el-dropdown class="site-tabs__tools" :show-timeout="0">
-        <i class="el-icon-arrow-down el-icon--right"></i>
-        <el-dropdown-menu slot="dropdown">
-          <el-dropdown-item @click.native="tabsCloseCurrentHandle">关闭当前标签页</el-dropdown-item>
-          <el-dropdown-item @click.native="tabsCloseOtherHandle">关闭其它标签页</el-dropdown-item>
-          <el-dropdown-item @click.native="tabsCloseAllHandle">关闭全部标签页</el-dropdown-item>
-          <el-dropdown-item @click.native="refresh()">刷新当前标签页</el-dropdown-item>
-        </el-dropdown-menu>
-      </el-dropdown>
-      <el-tab-pane
-        v-for="item in mainTabs"
-        :key="item.name"
-        :label="item.title"
-        :name="item.name">
-        <el-card :body-style="siteContentViewHeight">
-          <iframe
-            v-if="item.type === 'iframe'"
-            :src="item.iframeUrl"
-            width="100%" height="100%" frameborder="0" scrolling="yes">
-          </iframe>
-          <keep-alive v-else>
-            <router-view v-if="item.name === mainTabsActiveName" />
-          </keep-alive>
-        </el-card>
-      </el-tab-pane>
-    </el-tabs>
-    <!-- 主入口标签页 e -->
-    <el-card v-else :body-style="siteContentViewHeight">
-      <keep-alive>
-        <router-view />
-      </keep-alive>
-    </el-card>
+    <div v-if="$route.meta.isHome" class="my-home">
+      <router-view />
+    </div>
+    <template v-else>
+      <el-tabs
+        v-if="$route.meta.isTab"
+        v-model="mainTabsActiveName"
+        :closable="true"
+        @tab-click="selectedTabHandle"
+        @tab-remove="removeTabHandle">
+        <el-dropdown class="site-tabs__tools" :show-timeout="0">
+          <i class="el-icon-arrow-down el-icon--right"></i>
+          <el-dropdown-menu slot="dropdown">
+            <el-dropdown-item @click.native="tabsCloseCurrentHandle">关闭当前标签页</el-dropdown-item>
+            <el-dropdown-item @click.native="tabsCloseOtherHandle">关闭其它标签页</el-dropdown-item>
+            <el-dropdown-item @click.native="tabsCloseAllHandle">关闭全部标签页</el-dropdown-item>
+            <el-dropdown-item @click.native="refresh()">刷新当前标签页</el-dropdown-item>
+          </el-dropdown-menu>
+        </el-dropdown>
+        <el-tab-pane
+          v-for="item in mainTabs"
+          :key="item.name"
+          :label="item.title"
+          :name="item.name">
+          <el-card :body-style="siteContentViewHeight">
+            <iframe
+              v-if="item.type === 'iframe'"
+              :src="item.iframeUrl"
+              width="100%" height="100%" frameborder="0" scrolling="yes">
+            </iframe>
+            <keep-alive v-else>
+              <router-view v-if="item.name === mainTabsActiveName" />
+            </keep-alive>
+          </el-card>
+        </el-tab-pane>
+      </el-tabs>
+      <!-- 主入口标签页 e -->
+      <el-card v-else :body-style="siteContentViewHeight">
+        <keep-alive>
+          <router-view />
+        </keep-alive>
+      </el-card>
+    </template>
   </main>
 </template>
 
@@ -124,4 +129,9 @@
     }
   }
 </script>
+<style lang="scss">
+  .my-home{
+    width: 100%;
+  }
+</style>
 

+ 134 - 0
src/views/modules/files/list.vue

@@ -0,0 +1,134 @@
+<template>
+  <div class="mod-log">
+    <el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()">
+      <el-form-item>
+        <el-input v-model="dataForm.username" placeholder="文件名称" clearable></el-input>
+      </el-form-item>
+      <el-form-item>
+        <el-button @click="getDataList()">查询</el-button>
+        <el-button v-if="isAuth('sys:user:save')" type="primary" @click="addOrUpdateHandle()">上传文件</el-button>
+      </el-form-item>
+    </el-form>
+    <el-table
+      :data="dataList"
+      border
+      v-loading="dataListLoading"
+      style="width: 100%">
+      <el-table-column
+        prop="username"
+        header-align="center"
+        align="center"
+        label="用户名">
+      </el-table-column>
+      <el-table-column
+        prop="operation"
+        header-align="center"
+        align="center"
+        label="用户操作">
+      </el-table-column>
+      <el-table-column
+        prop="method"
+        header-align="center"
+        align="center"
+        width="150"
+        :show-overflow-tooltip="true"
+        label="请求方法">
+      </el-table-column>
+      <el-table-column
+        prop="params"
+        header-align="center"
+        align="center"
+        width="150"
+        :show-overflow-tooltip="true"
+        label="请求参数">
+      </el-table-column>
+      <el-table-column
+        prop="time"
+        header-align="center"
+        align="center"
+        label="执行时长(毫秒)">
+      </el-table-column>
+      <el-table-column
+        prop="ip"
+        header-align="center"
+        align="center"
+        width="150"
+        label="IP地址">
+      </el-table-column>
+      <el-table-column
+        prop="createDate"
+        header-align="center"
+        align="center"
+        width="180"
+        label="创建时间">
+      </el-table-column>
+    </el-table>
+    <el-pagination
+      @size-change="sizeChangeHandle"
+      @current-change="currentChangeHandle"
+      :current-page="pageIndex"
+      :page-sizes="[10, 20, 50, 100]"
+      :page-size="pageSize"
+      :total="totalPage"
+      layout="total, sizes, prev, pager, next, jumper">
+    </el-pagination>
+  </div>
+</template>
+
+<script>
+  export default {
+    data () {
+      return {
+        dataForm: {
+          username: '',
+          operation: ''
+        },
+        dataList: [],
+        pageIndex: 1,
+        pageSize: 10,
+        totalPage: 0,
+        dataListLoading: false,
+        selectionDataList: []
+      }
+    },
+    created () {
+      this.getDataList()
+    },
+    methods: {
+      // 获取数据列表
+      getDataList () {
+        this.dataListLoading = true
+        this.$http({
+          url: this.$http.adornUrl('/log-service/log/list'),
+          method: 'get',
+          params: this.$http.adornParams({
+            'current': this.pageIndex,
+            'size': this.pageSize,
+            'username': this.dataForm.username,
+            'operation': this.dataForm.operation
+          })
+        }).then(({data}) => {
+          if (data && data.code === '200') {
+            this.dataList = data.data.records
+            this.totalPage = Number(data.data.total)
+          } else {
+            this.dataList = []
+            this.totalPage = 0
+          }
+          this.dataListLoading = false
+        })
+      },
+      // 每页数
+      sizeChangeHandle (val) {
+        this.pageSize = val
+        this.pageIndex = 1
+        this.getDataList()
+      },
+      // 当前页
+      currentChangeHandle (val) {
+        this.pageIndex = val
+        this.getDataList()
+      }
+    }
+  }
+</script>