创新实训——010

本篇介绍页面的样式设计。

颜色

1、页面的整体我选用偏黑色的灰色(#1e1e1e),可以在每一页的style中添加
body{ background-color: #1e1e1e; }
2、字体颜色我选用和背景色对比鲜明的偏白色(#fff),可以在每一个有字显示的标签里添加style='color:#fff'
3、这里重点说明element-ui中的展开行里面的颜色如何更改
展开行的样式如下所示:
展开行
想要把表格和页面颜色统一需要做如下操作:

<el-table
   :data="tableData"
   :header-cell-style="{background:'#1e1e1e',color:'#fff'}"
   :header-row-style="{background:'#1e1e1e',color:'#fff'}"
   :row-style="{background:'#1e1e1e',color:'#fff'}"
   :cell-style="{background:'#1e1e1e',color:'#fff'}"
   style="width: 100%">
   <el-table-column type="expand">
     <template slot-scope="props">
       <el-form label-position="left" inline class="demo-table-expand" style="color:#fff">
         <el-form-item label="日志ID">
           <span>{{ props.row.id }}</span>
         </el-form-item>
         ……此处省略
       </el-form>
     </template>
   </el-table-column>
   <el-table-column
     label="日志ID"
     prop="id"
     width="100">
   </el-table-column>
   <el-table-column
     label="访问IP"
     prop="ip">
   </el-table-column>
   <el-table-column
     label="是否异常"
     prop="result"
     width="100">
   </el-table-column>
</el-table>
.el-table{
   background:#1e1e1e;
}
.el-table::before {
   height: 0px;
}
.el-table__expanded-cell{
   background: #1e1e1e;
}
.el-table th, .el-table tr {
   background-color: #1e1e1e;
}

效果如下所示:
展开行效果
表格以此类推。
另外展开表里的样式可以在<style>中如下设置:

.demo-table-expand {
   font-size: 0;
 }
 .demo-table-expand label {
   width: 90px;
   color: #99a9bf;
 }
 .demo-table-expand .el-form-item {
   margin-right: 0;
   margin-bottom: 0;
   width: 100%;
 }
布局设计

布局我这里采用了element-ui的布局方案,整体遵循左边显示图表数据,右边显示详细日志信息的原则,采用栅栏布局,示例如下图所示:

<el-row :gutter="15">
      <!--graphForFirst和logFlush均为自定义组件-->
      <el-col :span="12"><graphForFirst></graphForFirst></el-col>
      <el-col :span="12"><logFlush/></el-col>
</el-row>

效果如下图所示:
布局效果

滚动条

这里我需要重点强调以下滚动条的配置,因为这个困扰了我好长时间。
我们知道页面的原滚动条是这样的:
原滚动条
这与我们设计页面不搭,显得过于突兀,而像现在正在写博客的CSDN的markdown编辑器的滚动条样式就非常好看,而element-ui的样式也非常好,举例如下:

<el-col :span="14">
            <div style="height:630px">
                <el-scrollbar style="height:100%" ref="elScrollBar">
                    <div>
                        <自定义组件>
                    </div>
                </el-scrollbar>
            </div>
</el-col>
<style>
.el-scrollbar__wrap {
    overflow-x: hidden;/*隐藏横向滚动轴*/
 }
</style>

效果如下所示:
新滚动条

实时日志流前端实现

相比于其他组件的前端设计,实时日志流的显示比较棘手。
这里我的做法是在redis里存储最新的一次日志,然后前后端通过websocket不断返回该值,并且判断该值是否和上一值是否相等,如果相等则不添加到前端页面,不相等则添加到dom中,如下所示:

mounted(){
      var namespace = '/theLogFlush';
      //this.socket = io.connect(location.protocol + '//' + document.domain + ':5000'  + namespace);
      this.socket = io.connect(location.protocol + '//localhost:5000'  + namespace);
      var that=this
      this.socket.on('theLogFlush', function(res) {
        console.log(res.data);
        if(that.msg!=res.data){
          that.msg=res.data
          document.getElementById('log').innerText+=res.data
          document.getElementById('log').innerHTML+='<br/>'
          that.updateScroll()
        }
      });
 }

效果如下:
实时日志流
并且在日志流不断添加的过程中我们要保证滚动条是跟随滚动的,可以这样做:

<el-scrollbar style="height:100%" ref="elScrollBar">
        <div>
            <h5 id="log" style="color:green">实时访问日志……<br></h5>
        </div>
</el-scrollbar>
methods:{
      //使滚动条时时跟上
      updateScroll(){
          this.$refs['elScrollBar'].wrap.scrollTop = this.$refs['elScrollBar'].wrap.scrollHeight
      }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值