feat: done

This commit is contained in:
ex_zhangwenlei@exiot.cmcc
2024-01-13 00:27:44 +08:00
parent eaba58f91f
commit 6e8340c300
28 changed files with 397 additions and 147 deletions

File diff suppressed because one or more lines are too long

View File

@@ -2,6 +2,8 @@ import { defineStore } from 'pinia';
import { IPersonConfig } from '@/types/storeType';
import { IPrizeConfig } from '@/types/storeType';
import { defaultPersonList } from './data'
import { usePrizeConfig } from './prizeConfig';
import dayjs from 'dayjs'
export const usePersonConfig = defineStore('person', {
state() {
return {
@@ -18,7 +20,18 @@ export const usePersonConfig = defineStore('person', {
},
// 获取全部人员名单
getAllPersonList(state) {
return state.personConfig.allPersonList;
return state.personConfig.allPersonList.filter((item: IPersonConfig) => {
return item
});
},
// 获取未获此奖的人员名单
getNotThisPrizePersonList(state: any) {
const currentPrize = usePrizeConfig().prizeConfig.currentPrize;
const data = state.personConfig.allPersonList.filter((item: IPersonConfig) => {
return !item.prizeId.includes(currentPrize.id as string);
});
return data
},
// 获取已中奖人员名单
getAlreadyPersonList(state) {
@@ -28,7 +41,7 @@ export const usePersonConfig = defineStore('person', {
},
// 获取中奖人员详情
getAlreadyPersonDetail(state) {
return state.personConfig.alreadyPersonList
return state.personConfig.alreadyPersonList
},
// 获取未中奖人员名单
getNotPersonList(state) {
@@ -57,11 +70,14 @@ export const usePersonConfig = defineStore('person', {
if (item.id === person.id && prize != null) {
item.isWin = true
// person.isWin = true
item.prizeName += prize.name
item.prizeName.push(prize.name)
// person.prizeName += prize.name
item.prizeTime = new Date().toString()
item.prizeTime.push(dayjs(new Date()).format('YYYY-MM-DD HH:mm:ss'))
// person.prizeTime = new Date().toString()
item.prizeId.push(prize.id as string)
}
return item
});
this.personConfig.alreadyPersonList.push(person);
});
@@ -71,27 +87,28 @@ export const usePersonConfig = defineStore('person', {
if (person.id == undefined || person.id == null) {
return
}
const alreadyPersonListLength= this.personConfig.alreadyPersonList.length
const alreadyPersonListLength = this.personConfig.alreadyPersonList.length
for (let i = 0; i < this.personConfig.allPersonList.length; i++) {
if (person.id === this.personConfig.allPersonList[i].id) {
this.personConfig.allPersonList[i].isWin = false
this.personConfig.allPersonList[i].prizeName = ''
this.personConfig.allPersonList[i].prizeTime = ''
this.personConfig.allPersonList[i].prizeName = []
this.personConfig.allPersonList[i].prizeTime = []
this.personConfig.allPersonList[i].prizeId = []
return
break
}
}
for(let i=0;i<alreadyPersonListLength;i++){
this.personConfig.alreadyPersonList=this.personConfig.alreadyPersonList.filter((item:IPersonConfig)=>{
return item.id!==person.id
})
for (let i = 0; i < alreadyPersonListLength; i++) {
this.personConfig.alreadyPersonList = this.personConfig.alreadyPersonList.filter((item: IPersonConfig) =>
item.id !== person.id
)
}
},
// 删除指定人员
deletePerson(person: IPersonConfig) {
if (person.id != undefined || person.id != null) {
this.personConfig.allPersonList = this.personConfig.allPersonList.filter((item: IPersonConfig) => item.id !== person.id);
this.personConfig.alreadyPersonList = this.personConfig.alreadyPersonList.filter((item: IPersonConfig) => item.id!== person.id);
this.personConfig.alreadyPersonList = this.personConfig.alreadyPersonList.filter((item: IPersonConfig) => item.id !== person.id);
}
},
// 删除所有人员
@@ -110,14 +127,15 @@ export const usePersonConfig = defineStore('person', {
// 把已中奖人员合并到未中奖人员,要验证是否已存在
this.personConfig.allPersonList.forEach((item: IPersonConfig) => {
item.isWin = false;
item.prizeName = '';
item.prizeTime = '';
item.prizeName = [];
item.prizeTime = [];
item.prizeId = []
});
this.personConfig.alreadyPersonList=[];
this.personConfig.alreadyPersonList = [];
},
setDefaultPersonList() {
this.personConfig.allPersonList = defaultPersonList;
this.personConfig.alreadyPersonList=[];
this.personConfig.alreadyPersonList = [];
},
// 重置所有配置
reset() {

View File

@@ -22,6 +22,23 @@ export const usePrizeConfig = defineStore('prize', {
isShow: true,
isUsed: false,
frequency: 1,
} as IPrizeConfig,
temporaryPrize:{
id: '',
name: '',
sort: 0,
isAll: false,
count: 1,
isUsedCount:0,
picture: {
id: '-1',
name: '',
url: ''
},
desc: '',
isShow: false,
isUsed: false,
frequency: 1,
} as IPrizeConfig
}
};
@@ -45,6 +62,10 @@ return state.prizeConfig.prizeList;
getCurrentPrize(state) {
return state.prizeConfig.currentPrize;
},
// 获取临时的奖项
getTemporaryPrize(state){
return state.prizeConfig.temporaryPrize;
},
},
actions: {
@@ -62,12 +83,25 @@ return state.prizeConfig.prizeList;
},
// 更新奖项数据
updatePrizeConfig(prizeConfigItem: IPrizeConfig) {
const index = this.prizeConfig.prizeList.findIndex(item => item.id === prizeConfigItem.id);
this.prizeConfig.prizeList[index] = prizeConfigItem;
if(prizeConfigItem.isUsed&&index+1<this.prizeConfig.prizeList.length){
// const index = this.prizeConfig.prizeList.findIndex(item => item.id === prizeConfigItem.id);
// this.prizeConfig.prizeList[index] = prizeConfigItem;
// if(prizeConfigItem.isUsed&&index+1<this.prizeConfig.prizeList.length){
// // 设置下一个为currentPrize
// this.setCurrentPrize(this.prizeConfig.prizeList[index+1]);
// }
if(prizeConfigItem.isUsed&&this.prizeConfig.prizeList.length){
// 设置下一个为currentPrize
this.setCurrentPrize(this.prizeConfig.prizeList[index+1]);
for(let i=0;i<this.prizeConfig.prizeList.length;i++){
if(!this.prizeConfig.prizeList[i].isUsed){
this.setCurrentPrize(this.prizeConfig.prizeList[i]);
break;
}
}
}
else{
return
}
this.resetTemporaryPrize()
},
// 删除全部奖项
deleteAllPrizeConfig() {
@@ -77,6 +111,43 @@ return state.prizeConfig.prizeList;
setCurrentPrize(prizeConfigItem: IPrizeConfig) {
this.prizeConfig.currentPrize = prizeConfigItem
},
// 设置临时奖项
setTemporaryPrize(prizeItem: IPrizeConfig) {
if(prizeItem.isShow==false){
for(let i=0;i<this.prizeConfig.prizeList.length;i++){
if(this.prizeConfig.prizeList[i].isUsed==false){
this.setCurrentPrize(this.prizeConfig.prizeList[i]);
break
}
}
this.resetTemporaryPrize()
return
}
this.prizeConfig.temporaryPrize = prizeItem
},
// 重置临时奖项
resetTemporaryPrize() {
this.prizeConfig.temporaryPrize = {
id: '',
name: '',
sort: 0,
isAll: false,
count: 1,
isUsedCount:0,
picture: {
id: '-1',
name: '',
url: ''
},
desc: '',
isShow: false,
isUsed: false,
frequency: 1,
} as IPrizeConfig;
},
// 重置所有配置
resetDefault() {
this.prizeConfig = {
@@ -97,7 +168,8 @@ return state.prizeConfig.prizeList;
isShow: true,
isUsed: false,
frequency: 1,
} as IPrizeConfig
} as IPrizeConfig,
temporaryPrize:{} as IPrizeConfig
}
}
},