完善了搜索功能

This commit is contained in:
Chester.X 2024-07-05 14:02:48 +08:00
parent d92732dfe6
commit cc404e0ec4

View File

@ -8,7 +8,7 @@ import Course from "@views/course-management/Course.vue";
const router = useRouter();
const store = useStore();
const token = store.getters['authentication/token']
const token = store.getters['authentication/token'];
const searchTitle = ref('');
const searchAuthor = ref('');
@ -24,6 +24,7 @@ const coursesCount = ref(0);
const firstTimeLoad = ref(true);
const selections = ref([]);
const loadCourses = async (forceReload = false) => {
if (forceReload) {
firstTimeLoad.value = true;
@ -35,26 +36,46 @@ const loadCourses = async (forceReload = false) => {
token: token,
start: allCoursesData.value.length,
end: allCoursesData.value.length + pageSize.value * 2
}
};
try {
const response = await axios.get('/api/courses', { params })
const data = response.data
const response = await axios.get('/api/courses', { params });
const data = response.data;
coursesCount.value = data.courseCount;
allCoursesData.value.push(...data.courseList);
} catch (e) {
console.log(e)
console.log(e);
}
firstTimeLoad.value = false;
}
coursesData.value = allCoursesData.value.slice((currentPage.value - 1) * pageSize.value, currentPage.value * pageSize.value)
coursesData.value = allCoursesData.value.slice((currentPage.value - 1) * pageSize.value, currentPage.value * pageSize.value);
};
onMounted(() => {
loadCourses();
})
});
const handleSearch = () => {
//
const handleSearch = async () => {
try {
const response = await axios.get('/api/courses/search', {
params: {
token: token,
title: searchTitle.value || '', //
author: searchAuthor.value || '',
description: searchDescription.value || '',
sortOrder: sortOrder.value || '',
start: 0,
end: pageSize.value
}
});
const data = response.data;
coursesCount.value = data.courseCount;
allCoursesData.value = data.courseList;
coursesData.value = allCoursesData.value.slice(0, pageSize.value);
currentPage.value = 1;
firstTimeLoad.value = false;
} catch (e) {
console.error(e);
}
};
const handleReset = () => {
@ -66,8 +87,8 @@ const handleReset = () => {
const handleEditButton = () => {
selections.value.forEach(selection => {
router.push({ name: 'Course', params: { id: selection.id } })
})
router.push({ name: 'Course', params: { id: selection.id } });
});
};
const handleDeleteButton = async () => {
@ -90,8 +111,8 @@ const handleDeleteButton = async () => {
};
const handleSelectionChange = (newSelections) => {
selections.value = newSelections
}
selections.value = newSelections;
};
const handleEditInTable = (index) => {
router.push({ name: 'Course', query: { mode: 'edit', id: coursesData.value[index].id } });
@ -99,14 +120,14 @@ const handleEditInTable = (index) => {
const handleDeleteInTable = async (index) => {
try {
await axios.delete(`/api/courses/${coursesData.value[index].id}`, { params: { token: token } })
await axios.delete(`/api/courses/${coursesData.value[index].id}`, { params: { token: token } });
coursesData.value.splice(index, 1);
allCoursesData.value.splice(index, 1);
coursesCount.value--;
await loadCourses(true); //
} catch (e) {
ElMessage.error('删除失败')
console.error(e)
ElMessage.error('删除失败');
console.error(e);
}
};
</script>
@ -140,7 +161,6 @@ const handleDeleteInTable = async (index) => {
<el-button type="success" @click="router.push('/course?mode=create')">新增</el-button>
<el-button type="warning" @click="handleEditButton">修改</el-button>
<el-button type="danger" @click="handleDeleteButton">删除</el-button>
<el-button type="info">导出</el-button>
</div>
<el-table :data="coursesData" style="width: 100%;" @selection-change="handleSelectionChange">