analysis.ts 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. import { defineStore } from "pinia";
  2. import { ref, computed } from "vue";
  3. // 分析相关 状态存储
  4. export interface FilterObject {
  5. subjectCode: string;
  6. subjectName: string;
  7. subjectId: string;
  8. subjectGroupType: number;
  9. isTotal: boolean;
  10. subjectGroupCodes: string;
  11. schoolId: string;
  12. schoolLevel: string;
  13. schoolGroupId: string;
  14. schoolGroupName: string | null;
  15. schoolName: string | null;
  16. schoolGroupNames: string;
  17. registrationType: string;
  18. registrationName: string | null;
  19. registrationGroupId: string;
  20. statusGroupNames: string;
  21. scoreType: string;
  22. classType: string;
  23. classIdCode: string;
  24. classLevel: string | number;
  25. classGroupId: string;
  26. classGroupName: string;
  27. classGroupNames: string[];
  28. }
  29. //用户相关的状态管理
  30. export const useAnalysisStore = defineStore("analysis", () => {
  31. const filterObject = ref<FilterObject>(
  32. JSON.parse(localStorage.getItem("filterObject") || "{}"),
  33. );
  34. const analysisExamInfo = ref<any>(
  35. JSON.parse(localStorage.getItem("analysisExamInfo") || "{}"),
  36. );
  37. // 新增:设置公共参数
  38. const setFilterObject = (info: FilterObject) => {
  39. filterObject.value = info;
  40. // 同步存储到 localStorage,确保持久化
  41. localStorage.setItem("filterObject", JSON.stringify(info));
  42. }
  43. const setAnalysisExamInfo = (info: any) => {
  44. analysisExamInfo.value = info;
  45. // 同步存储到 localStorage,确保持久化
  46. localStorage.setItem("analysisExamInfo", JSON.stringify(info));
  47. }
  48. return {
  49. filterObject,
  50. analysisExamInfo,
  51. setFilterObject,
  52. setAnalysisExamInfo
  53. };
  54. });