👔 完成历史记录功能优化多语言
This commit is contained in:
@@ -1,14 +1,78 @@
|
||||
import { defineStore } from 'pinia'
|
||||
|
||||
interface HistoryRecord {
|
||||
id: number;
|
||||
type: string;
|
||||
domain: string;
|
||||
path: string;
|
||||
date: string;
|
||||
}
|
||||
|
||||
export const useStyleStore = defineStore('style', {
|
||||
state: () => {
|
||||
return {
|
||||
isPage: true,
|
||||
history: [] as HistoryRecord[],
|
||||
}
|
||||
},
|
||||
actions: {
|
||||
setIsPage(isPage: boolean) {
|
||||
this.isPage = isPage
|
||||
},
|
||||
setHistory(history: any) {
|
||||
this.history = history
|
||||
},
|
||||
addOrUpdateHistory(newHistory: {
|
||||
date: string;
|
||||
path: any;
|
||||
domain: any;
|
||||
id: any;
|
||||
type: string
|
||||
}) {
|
||||
const existingIndex = this.history.findIndex(history => history.domain === newHistory.domain && history.type === newHistory.type);
|
||||
|
||||
if (existingIndex !== -1) {
|
||||
// 更新存在的记录的时间戳
|
||||
this.history[existingIndex].date = new Date().toISOString();
|
||||
} else {
|
||||
// 添加新记录之前,检查是否已达到保存记录的最大数量
|
||||
if (this.history.length >= 30) {
|
||||
// 确保历史记录按时间降序排列
|
||||
this.history.sort((a, b) => new Date(b.date).getTime() - new Date(a.date).getTime());
|
||||
// 移除最旧的记录
|
||||
this.history.pop();
|
||||
}
|
||||
|
||||
// 添加新的记录
|
||||
const record: HistoryRecord = {
|
||||
...newHistory,
|
||||
id: Date.now(),
|
||||
date: new Date().toISOString(),
|
||||
};
|
||||
this.history.unshift(record); // 添加到数组的开头
|
||||
}
|
||||
|
||||
// 再次确保历史记录按时间降序排列
|
||||
this.history.sort((a, b) => new Date(b.date).getTime() - new Date(a.date).getTime());
|
||||
},
|
||||
deleteHistory(id: number) {
|
||||
const index = this.history.findIndex(history => history.id === id);
|
||||
if (index !== -1) {
|
||||
this.history.splice(index, 1);
|
||||
}
|
||||
}
|
||||
},
|
||||
getters: {
|
||||
getIsPage(state) {
|
||||
return state.isPage
|
||||
},
|
||||
getHistory(state) {
|
||||
return state.history
|
||||
}
|
||||
},
|
||||
persist: {
|
||||
storage: persistedState.cookiesWithOptions({
|
||||
sameSite: 'strict',
|
||||
}),
|
||||
},
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user