38 lines
835 B
TypeScript
38 lines
835 B
TypeScript
|
|
import { defineStore } from "pinia";
|
|||
|
|
import { jsFindByIdApi } from "@/api/base/jsApi";
|
|||
|
|
|
|||
|
|
interface CommonState {
|
|||
|
|
data: any;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
export const useCommonStore = defineStore({
|
|||
|
|
id: "app-common",
|
|||
|
|
state: (): CommonState => ({
|
|||
|
|
// 字典数据
|
|||
|
|
data: {}
|
|||
|
|
}),
|
|||
|
|
getters: {
|
|||
|
|
getData(): any {
|
|||
|
|
return this.data;
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
actions: {
|
|||
|
|
setData(data: any) {
|
|||
|
|
this.data = data;
|
|||
|
|
},
|
|||
|
|
// 根据教师ID获取教师信息(带缓存机制)
|
|||
|
|
async getJsById(params: any): Promise<any> {
|
|||
|
|
if (!this.data.js || !this.data.js[params.id]) {
|
|||
|
|
this.data.js = this.data.js || {};
|
|||
|
|
this.data.js[params.id] = await jsFindByIdApi(params);
|
|||
|
|
}
|
|||
|
|
return Promise.resolve(this.data.js[params.id]);
|
|||
|
|
},
|
|||
|
|
},
|
|||
|
|
persist: {
|
|||
|
|
enabled: true,
|
|||
|
|
detached: true,
|
|||
|
|
H5Storage: localStorage
|
|||
|
|
},
|
|||
|
|
});
|