重构(学习页): 前端仅展示并修复运行稳定性问题

This commit is contained in:
2026-04-12 10:36:59 +08:00
parent 4c73991d64
commit 0f2f0460df
3 changed files with 60 additions and 45 deletions
+28 -13
View File
@@ -15,8 +15,9 @@ const fetchTasks = () => {
tasks.splice(0, tasks.length, ...res.data.records.map((record: any) => ({
title: record.taskName,
description: record.taskDescription || '',
materialURL: record.materialURL || record.materialUrl || "",
lastLearningStatus: record.lastLearningStatus || '未开始',
priority: Math.round(record.taskPriority),
priority: Number.isFinite(record.taskPriority) ? Math.round(record.taskPriority) : "-",
taskNum: record.taskNum,
taskId: record.id,
})));
@@ -25,8 +26,11 @@ const fetchTasks = () => {
};
const startTask = () => {
if (!selectedTask.value) {
ElMessage.warning("请先选择一个任务");
return;
}
router.push({name:'start-task',params:{taskNum:selectedTask.value.taskNum}});
console.log('任务已开始:', selectedTask.value);
};
const addTask = () => {
@@ -34,21 +38,28 @@ const addTask = () => {
};
const changeTask = () =>{
if (!selectedTask.value) {
ElMessage.warning("请先选择一个任务");
return;
}
router.push({name:"update-task",params:{"taskId":selectedTask.value.taskId}})
};
const removeTask = () => {
if (!selectedTask.value) {
ElMessage.warning("请先选择一个任务");
return;
}
request.del(`/tasks/${selectedTask.value.taskId}`,{}).then(res=>{
if (res.code == '200'){
if (res.code === 200){
ElMessage.success(`任务${selectedTask.value.title}删除成功`)
const index = tasks.indexOf(selectedTask.value);
if (index > -1) {
tasks.splice(index, 1);
selectedTask.value = tasks[0] || null;
}
}
});
const index = tasks.indexOf(selectedTask.value);
if (index > -1) {
tasks.splice(index, 1);
selectedTask.value = tasks[0] || null;
}
};
const selectTask = (task: any) => {
@@ -84,12 +95,16 @@ onMounted(() => {
<el-card class="task-card">
<div v-if="selectedTask">
<h3>任务描述</h3>
<el-input type="textarea" v-model="selectedTask.description" :rows="4" />
<el-input type="textarea" :model-value="selectedTask.description" :rows="4" readonly />
<h3 class="section-title">学习材料</h3>
<el-link v-if="selectedTask.materialURL" :href="selectedTask.materialURL" type="primary" target="_blank">
{{ selectedTask.materialURL }}
</el-link>
<span v-else>未填写材料地址</span>
<h3 class="section-title">任务优先级</h3>
<el-radio-group v-model="selectedTask.priority">
<el-radio-button v-for="i in 6" :label="i - 1" :key="i">{{ i - 1 }}</el-radio-button>
</el-radio-group>
<el-tag type="info">综合优先级{{ selectedTask.priority }}</el-tag>
<h3 class="section-title">上次该任务学习情况</h3>
<el-descriptions border column="1">