You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

124 lines
2.8 KiB
Vue

<!--
* @description: 时间线
-->
<template>
<el-dialog
title="历史操作"
:visible.sync="dialogVisible"
width="50%"
:modal="true"
:modal-append-to-body="false"
:appen-to-body="true"
class="bs-dialog-wrap bs-el-dialog"
>
<div class="layer-list-wrap">
<!-- el-table 三列动作时间操作操作栏中是回退 -->
<el-table
:data="chartList"
border
style="width: 100%"
class="bs-el-table"
:row-class-name="tableRowClassName"
>
<el-table-column
prop="timelineTitle"
label="动作"
class-name="bs-el-table-column"
/>
<el-table-column
prop="updateTime"
label="时间"
width="180"
class-name="bs-el-table-column"
/>
<el-table-column
prop="operation"
label="操作"
width="100"
class-name="bs-el-table-column"
>
<template slot-scope="scope">
<el-button
type="text"
size="small"
@click="rollback(scope.$index)"
>
回退
</el-button>
</template>
</el-table-column>
</el-table>
</div>
<span
slot="footer"
class="dialog-footer"
>
<el-button
class="bs-el-button-default"
@click="dialogVisible = false"
>
取消
</el-button>
<el-button
type="primary"
@click="clearTimeline"
>
清除历史
</el-button>
</span>
</el-dialog>
</template>
<script>
import { mapState, mapMutations } from 'vuex'
export default {
name: 'HistoryList',
props: {},
data () {
return {
dialogVisible: false
}
},
computed: {
...mapState({
chartList: state => state.bigScreen.timelineStore,
currentTimeLine: state => state.bigScreen.currentTimeLine
})
},
mounted () {},
methods: {
...mapMutations({
clearTimeline: 'bigScreen/clearTimeline',
rollbackTimeline: 'bigScreen/rollbackTimeline'
}),
init () {
this.dialogVisible = true
},
rollback (index) {
this.rollbackTimeline(index)
this.dialogVisible = false
},
tableRowClassName ({ row, rowIndex }) {
if (rowIndex === this.currentTimeLine - 1) {
return 'choosed-row'
}
return ''
}
}
}
</script>
<style lang="scss" scoped>
@import '../../BigScreenDesign/fonts/iconfont.css';
@import '../../assets/style/bsTheme.scss';
.layer-list-wrap {
::v-deep .choosed-row {
.bs-el-table-column {
border-color: var(--bs-el-border) !important;
background: var(--bs-background-2) !important;
background-color: var(--bs-background-2) !important;
opacity: 0.7;
}
}
}
</style>