Files
2025-11-08 10:38:36 +08:00

124 lines
2.8 KiB
Vue
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!--
* @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>