From cc404e0ec445abbe2bb5deb560fb035e13d7c83a Mon Sep 17 00:00:00 2001
From: "Chester.X" <2931709855@qq.com>
Date: Fri, 5 Jul 2024 14:02:48 +0800
Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84=E4=BA=86=E6=90=9C=E7=B4=A2?=
=?UTF-8?q?=E5=8A=9F=E8=83=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/views/course-management/CourseList.vue | 54 +++++++++++++++-------
1 file changed, 37 insertions(+), 17 deletions(-)
diff --git a/src/views/course-management/CourseList.vue b/src/views/course-management/CourseList.vue
index af4728a..7c2e91d 100644
--- a/src/views/course-management/CourseList.vue
+++ b/src/views/course-management/CourseList.vue
@@ -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);
}
};
@@ -140,7 +161,6 @@ const handleDeleteInTable = async (index) => {
新增
修改
删除
- 导出