Files
log-lottery/src/store/globalConfig.ts
ex_zhangwenlei@exiot.cmcc 18c5429b58 feat: 粒子背景+动起来了
2024-01-07 00:05:55 +08:00

176 lines
5.5 KiB
TypeScript
Raw 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.
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',
},
],
},
})