|
|
@@ -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, () => {
|