123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- export class HistoryService {
- constructor() {
- this.history = {
- records: [],
- currentRecordIndex: -1,
- state: {
- pre: 0,
- next: 0,
- },
- }
- }
- getCurrentRecordIndex() {
- return this.history.currentRecordIndex
- }
- getHistoryRecord() {
- if (this.history.currentRecordIndex == null || this.history.records.length == 0) {
- return null
- } else {
- return this.history.records[this.history.currentRecordIndex]
- }
- }
- getHistoryRecords() {
- return this.history.records
- }
- getHistoryState() {
- return this.history.state
- }
- addHistoryRecord(item) {
- const len = this.history.records.length
- if (len == 0) {
- this.history.records.push(item)
- this.history.currentRecordIndex = 0
- } else if (this.history.currentRecordIndex + 1 == len) {
- this.history.records.push(item)
- ++this.history.currentRecordIndex
- }
- // 覆盖
- else {
- const records = this.history.records.slice(0, this.history.currentRecordIndex + 1)
- records.push(item)
- this.history.records = records
- ++this.history.currentRecordIndex
- }
- }
- setHistoryState(pre, next) {
- this.history.state.pre = pre
- this.history.state.next = next
- }
- undoHistoryRecord() {
- --this.history.currentRecordIndex
- }
- redoHistoryRecord() {
- ++this.history.currentRecordIndex
- }
- clearHistoryRecord() {
- this.history.records = []
- this.setHistoryState(0, 0)
- }
- hasRecords() {
- return this.history.records.length > 0
- }
- }
- const historyService = new HistoryService()
- window.historyService = historyService
- export { historyService }
|