Bläddra i källkod

🎨 修改细节问题

快乐的梦鱼 1 månad sedan
förälder
incheckning
39f712b509
3 ändrade filer med 30 tillägg och 11 borttagningar
  1. 27 7
      src/components/content/CommonListBlock.vue
  2. 3 1
      src/composeable/MemorizeVar.ts
  3. 0 3
      src/router/index.ts

+ 27 - 7
src/components/content/CommonListBlock.vue

@@ -332,12 +332,14 @@ const selectedTag = ref(props.defaultSelectTag);
 const pageSize = ref(props.pageSize);
 const route = useRoute();
 
-const newsLoader = useSimplePagerDataLoader(pageSize, (page, size) => props.load(
-  page, size, 
-  selectedTag.value, 
-  searchText.value,
-  dropDownValues.value,
-));
+const newsLoader = useSimplePagerDataLoader(pageSize, (page, size) => {
+  return props.load(
+    page, size, 
+    selectedTag.value, 
+    searchText.value,
+    dropDownValues.value,
+  )
+});
 
 watch(() => props.defaultSelectTag, (v) => {
   selectedTag.value = v;
@@ -355,15 +357,33 @@ watch(tableListShow, (v) => {
 
 function loadDropValues() {
   dropDownValues.value = [];
+  const oldDropDownValues = dropDownValues.value;
   if (props.dropDownNames)
     for (const element of props.dropDownNames)
       dropDownValues.value.push(element.defaultSelectedValue);
-  newsLoader.loadData(undefined, true);
+  if(isEqual(oldDropDownValues, dropDownValues.value))
+    return;
+  newsLoader.loadData();
+}
+function isEqual(arr1 : Array<unknown>, arr2 : Array<unknown>) : boolean {
+  if(!arr1 && !arr2)
+    return true;
+  if(!arr1 || !arr2)
+    return false;
+  if(arr1.length !== arr2.length)
+    return false;
+  for (let i = arr1.length - 1; i >= 0; i--) {
+    if(arr1[i] !== arr2[i]) {
+      return false;
+    }
+  }
+  return true;
 }
 
 onMounted(() => {
   setTimeout(() => {
     loadDropValues();
+    newsLoader.loadData(undefined, true);
   }, 600);
 })
 watch(route, () => {

+ 3 - 1
src/composeable/MemorizeVar.ts

@@ -4,7 +4,9 @@ export function memorizeVar<T>(key: string, defaultValue: T) {
   const variable = ref<T>(defaultValue);
 
   onMounted(() => {
-    variable.value = JSON.parse(localStorage.getItem(key) || '{}');
+    const v = localStorage.getItem(key);
+    if (v)
+      variable.value = JSON.parse(v);
   });
   watch(variable, (newValue) => {
     localStorage.setItem(key, JSON.stringify(newValue));

+ 0 - 3
src/router/index.ts

@@ -9,9 +9,6 @@ const router = createRouter({
       path: '/',
       name: 'Index',
       component: Index,
-      meta: {
-        keepAlive: true,
-      },
     },
     {
       path: '/forms/ich',