<template> <d2-container> <el-table :data="log" size="mini" style="width: 100%" empty-text="暂无日志信息" stripe> <!-- 时间 --> <el-table-column prop="time" label="Time" width="140"> </el-table-column> <!-- 信息 --> <el-table-column prop="message" label="Message"> </el-table-column> <!-- 触发页面 --> <el-table-column label="Url" align="center" min-width="200"> <template slot-scope="scope"> {{get(scope.row, 'meta.url')}} </template> </el-table-column> <!-- 触发组件 --> <el-table-column label="Tag" align="center" min-width="120"> <template slot-scope="scope"> <el-tag v-if="get(scope.row, 'meta.instance.$vnode.componentOptions.tag')" type="info" size="mini"> <{{get(scope.row, 'meta.instance.$vnode.componentOptions.tag')}}> </el-tag> </template> </el-table-column> <!-- 查看详情 --> <el-table-column fixed="right" align="center" label="More" width="100"> <template slot-scope="scope"> <el-button type="primary" size="mini" @click="handleShowMore(scope.row)"> <d2-icon name="eye"/> </el-button> </template> </el-table-column> </el-table> <el-button slot="footer" type="primary" size="mini" :loading="uploading" @click="handleUpload"> <d2-icon name="cloud-upload"/> Upload {{log.length}} log data </el-button> </d2-container> </template> <script> import { mapState } from 'vuex' import { get } from 'lodash' export default { data () { return { uploading: false } }, computed: { ...mapState('d2admin/log', [ 'log' ]) }, methods: { get, handleShowMore (log) { // 打印一条日志的所有信息到控制台 this.$notify({ type: 'info', title: '日志详情', message: '完整的日志内容已经打印到控制台' }) this.$log.capsule('D2Admin', 'handleShowMore', 'primary') console.group(log.message) console.log('time: ', log.time) console.log('type: ', log.type) console.log(log.meta) console.groupEnd() }, // 日志上传 handleUpload () { this.uploading = true this.$notify({ type: 'info', title: '日志上传', message: `开始上传${this.log.length}条日志` }) setTimeout(() => { this.uploading = false this.$notify({ type: 'success', title: '日志上传', message: '上传成功' }) }, 3000) } } } </script>