Browse Source

成绩查询存储顶部筛选数据

liurongli 1 month ago
parent
commit
5063feb0a6
2 changed files with 20 additions and 5 deletions
  1. 13 2
      src/store/analysis.ts
  2. 7 3
      src/views/analysis/index.vue

+ 13 - 2
src/store/analysis.ts

@@ -1,5 +1,5 @@
 import { defineStore } from "pinia";
-import { ref, computed } from "vue";
+import { ref } from "vue";
 // 分析相关 状态存储
 export interface FilterObject {
   subjectCode: string;
@@ -34,7 +34,16 @@ export const useAnalysisStore = defineStore("analysis", () => {
   const analysisExamInfo = ref<any>(
     JSON.parse(localStorage.getItem("analysisExamInfo") || "{}"),
   );
-  // 新增:设置公共参数
+  const filtersData = ref<any>(
+    JSON.parse(localStorage.getItem("filtersData") || "[]"),
+  );
+  // 设置筛选数据
+  const setFiltersData = (info: any) => {
+    filtersData.value = info;
+    // 同步存储到 localStorage,确保持久化
+    localStorage.setItem("filtersData", JSON.stringify(info));
+  }
+  // 设置公共参数
   const setFilterObject = (info: FilterObject) => {
     filterObject.value = info;
     // 同步存储到 localStorage,确保持久化
@@ -46,8 +55,10 @@ export const useAnalysisStore = defineStore("analysis", () => {
     localStorage.setItem("analysisExamInfo", JSON.stringify(info));
   }
   return {
+    filtersData,
     filterObject,
     analysisExamInfo,
+    setFiltersData,
     setFilterObject,
     setAnalysisExamInfo
   };

+ 7 - 3
src/views/analysis/index.vue

@@ -327,7 +327,7 @@ const getCommonSelectList = async () => {
     if (schoolList[0]) {
       updateBySchool(schoolList[0]);
     }
-
+    analysisStore.setFiltersData(filtersData.value);
     buildAndSaveFilterParams();
   } catch (err) {
     console.error("获取筛选数据失败:", err);
@@ -402,7 +402,7 @@ const handleSelectChange = (index: number, value: string) => {
   } else if (type === "classType") {
     updateByClassType(selectedItem);
   }
-
+  analysisStore.setFiltersData(filtersData.value);
   buildAndSaveFilterParams();
 };
 
@@ -412,7 +412,11 @@ const goToPageTop = () => {
 };
 
 onMounted(() => {
-  getCommonSelectList();
+  if(analysisStore?.filtersData?.length){
+    filtersData.value = analysisStore.filtersData;
+  }else{
+    getCommonSelectList();
+  }
   loadAnalysisExamInfo();
 });
 </script>