完善了搜索功能
This commit is contained in:
parent
d92732dfe6
commit
cc404e0ec4
@ -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">
|
||||
|
||||
Loading…
Reference in New Issue
Block a user