projectInfo.ts
1.29 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import { useChartEditStore } from "@/store/modules/chartEditStore/chartEditStore";
import { ProjectInfoEnum, ProjectInfoStoreType } from './projectInfo.d'
import { defineStore } from "pinia";
import { SyncEnum } from "@/enums/external/editPageEnum";
export const useProjectInfoStore = defineStore({
id: 'useProjectInfoStore',
state: (): ProjectInfoStoreType => ({
info: {
projectId: '',
projectName: '',
remarks: '',
thumbnail: '',
release: false,
organizationId: '',
state: 0,
},
saveStatus: SyncEnum.FAILURE
}),
getters: {
getProjectInfo(): ProjectInfoStoreType[ProjectInfoEnum.INFO] {
return Reflect.get(this, ProjectInfoEnum.INFO)
},
getSaveStatus(): ProjectInfoStoreType[ProjectInfoEnum.SAVE_STATUS] {
return Reflect.get(this, ProjectInfoEnum.SAVE_STATUS)
}
},
actions: {
setProjectInfo<T extends ProjectInfoStoreType[ProjectInfoEnum.INFO]>(value: T) {
this[ProjectInfoEnum.INFO] = value
},
setProjectInfoByKey<T extends keyof ProjectInfoStoreType[ProjectInfoEnum.INFO], K extends ProjectInfoStoreType[ProjectInfoEnum.INFO][T]>(key: T, value: K) {
this[ProjectInfoEnum.INFO][key] = value
},
setSaveStatus(status: SyncEnum) {
this[ProjectInfoEnum.SAVE_STATUS] = status
}
}
})