176 lines
5.5 KiB
TypeScript
176 lines
5.5 KiB
TypeScript
import { defineStore } from 'pinia';
|
||
import { defaultMusicList,defaultImageList } from './data'
|
||
// import { IPrizeConfig } from '@/types/prizeConfig';
|
||
export const useGlobalConfig = defineStore('global', {
|
||
state() {
|
||
return {
|
||
globalConfig: {
|
||
rowCount: 12,
|
||
theme: {
|
||
name: 'dark',
|
||
detail: { primary: '#0f5fd3' },
|
||
cardColor: 'rgba(0, 255, 255)',
|
||
cardWidth: 140,
|
||
cardHeight: 200,
|
||
textColor: '#ffffff',
|
||
textSize: 30
|
||
},
|
||
musicList: defaultMusicList,
|
||
imageList:defaultImageList,
|
||
}
|
||
};
|
||
},
|
||
getters: {
|
||
// 获取全部配置
|
||
getGlobalConfig(state) {
|
||
return state.globalConfig;
|
||
},
|
||
// 获取行数
|
||
getRowCount(state) {
|
||
return state.globalConfig.rowCount;
|
||
},
|
||
// 获取主题
|
||
getTheme(state) {
|
||
return state.globalConfig.theme;
|
||
},
|
||
// 获取卡片颜色
|
||
getCardColor(state) {
|
||
return state.globalConfig.theme.cardColor;
|
||
},
|
||
// 获取文字颜色
|
||
getTextColor(state) {
|
||
return state.globalConfig.theme.textColor;
|
||
},
|
||
// 获取卡片宽高
|
||
getCardSize(state) {
|
||
return {
|
||
width: state.globalConfig.theme.cardWidth,
|
||
height: state.globalConfig.theme.cardHeight
|
||
}
|
||
},
|
||
// 获取文字大小
|
||
getTextSize(state) {
|
||
return state.globalConfig.theme.textSize;
|
||
},
|
||
// 获取音乐列表
|
||
getMusicList(state) {
|
||
return state.globalConfig.musicList;
|
||
},
|
||
// 获取图片列表
|
||
getImageList(state) {
|
||
return state.globalConfig.imageList;
|
||
}
|
||
|
||
},
|
||
actions: {
|
||
// 设置rowCount
|
||
setRowCount(rowCount: number) {
|
||
this.globalConfig.rowCount = rowCount;
|
||
},
|
||
// 设置主题
|
||
setTheme(theme: any) {
|
||
const { name, detail } = theme;
|
||
this.globalConfig.theme.name = name;
|
||
this.globalConfig.theme.detail = detail;
|
||
},
|
||
// 设置卡片颜色
|
||
setCardColor(cardColor: string) {
|
||
this.globalConfig.theme.cardColor = cardColor;
|
||
},
|
||
// 设置文字颜色
|
||
setTextColor(textColor: string) {
|
||
this.globalConfig.theme.textColor = textColor;
|
||
},
|
||
// 设置卡片宽高
|
||
setCardSize(cardSize: { width: number, height: number }) {
|
||
this.globalConfig.theme.cardWidth = cardSize.width;
|
||
this.globalConfig.theme.cardHeight = cardSize.height;
|
||
},
|
||
// 设置文字大小
|
||
setTextSize(textSize: number) {
|
||
this.globalConfig.theme.textSize = textSize;
|
||
},
|
||
// 添加音乐
|
||
addMusic(music: any) {
|
||
// 验证音乐是否已存在,看name字段
|
||
for (let i = 0; i < this.globalConfig.musicList.length; i++) {
|
||
if (this.globalConfig.musicList[i].name === music.name) {
|
||
return;
|
||
}
|
||
}
|
||
this.globalConfig.musicList.push(music);
|
||
},
|
||
// 删除音乐
|
||
removeMusic(musicId: string) {
|
||
for (let i = 0; i < this.globalConfig.musicList.length; i++) {
|
||
if (this.globalConfig.musicList[i].id === musicId) {
|
||
this.globalConfig.musicList.splice(i, 1);
|
||
break;
|
||
}
|
||
}
|
||
},
|
||
// 重置音乐列表
|
||
resetMusicList() {
|
||
this.globalConfig.musicList = defaultMusicList;
|
||
},
|
||
// 清空音乐列表
|
||
clearMusicList() {
|
||
this.globalConfig.musicList = [];
|
||
},
|
||
// 添加图片
|
||
addImage(image:any){
|
||
for (let i = 0; i < this.globalConfig.imageList.length; i++) {
|
||
if (this.globalConfig.imageList[i].name === image.name) {
|
||
return;
|
||
}
|
||
}
|
||
this.globalConfig.imageList.push(image);
|
||
},
|
||
// 删除图片
|
||
removeImage(imageId: string) {
|
||
for (let i = 0; i < this.globalConfig.imageList.length; i++) {
|
||
if (this.globalConfig.imageList[i].id === imageId) {
|
||
this.globalConfig.imageList.splice(i, 1);
|
||
break;
|
||
}
|
||
}
|
||
},
|
||
// 重置图片列表
|
||
resetImageList() {
|
||
this.globalConfig.imageList = defaultImageList;
|
||
},
|
||
// 清空图片列表
|
||
clearImageList() {
|
||
this.globalConfig.imageList = [];
|
||
},
|
||
// 重置所有配置
|
||
reset() {
|
||
this.globalConfig = {
|
||
rowCount: 12,
|
||
theme: {
|
||
name: 'dark',
|
||
detail: { primary: '#0f5fd3' },
|
||
cardColor: 'rgba(0, 255, 255)',
|
||
cardWidth: 200,
|
||
cardHeight: 140,
|
||
textColor: '#ffffff',
|
||
textSize: 30
|
||
|
||
},
|
||
musicList: defaultMusicList,
|
||
imageList:defaultImageList,
|
||
}
|
||
}
|
||
},
|
||
persist: {
|
||
enabled: true,
|
||
strategies: [
|
||
{
|
||
// 如果要存储在localStorage中
|
||
storage: localStorage,
|
||
key: 'globalConfig',
|
||
},
|
||
],
|
||
},
|
||
})
|