diff --git a/pages/project/list/index.vue b/pages/project/list/index.vue index 571721b..b55beb0 100644 --- a/pages/project/list/index.vue +++ b/pages/project/list/index.vue @@ -605,8 +605,7 @@ const handleCardMenu = (project) => { } else if (res.tapIndex === 1) { handleDeleteProject(project); } else if (res.tapIndex === 2) { - // 新增任务 - uni.showToast({ title: '新增任务功能开发中', icon: 'none' }); + goToAddTask(project); } else if (res.tapIndex === 3) { handleStartDevelopment(project); } @@ -751,6 +750,21 @@ const goToEditProject = (project) => { }); }; +const goToAddTask = (project) => { + if (!project?.id) { + uni.showToast({ + title: '缺少项目ID', + icon: 'none' + }); + return; + } + const projectName = project.name || project.projectName || ''; + const encodedName = encodeURIComponent(projectName); + uni.navigateTo({ + url: `/pages/task/add/index?projectId=${project.id}&projectName=${encodedName}` + }); +}; + // 处理状态标签点击 const handleStatusTabClick = (value) => { activeStatusTab.value = value; diff --git a/pages/task/add/index.vue b/pages/task/add/index.vue index 7be9fc8..3acf14e 100644 --- a/pages/task/add/index.vue +++ b/pages/task/add/index.vue @@ -459,7 +459,16 @@ const handleSubmit = async () => { onLoad(async (options) => { if (options?.projectId) { - presetProjectId.value = String(options.projectId); + const projectId = String(options.projectId); + presetProjectId.value = projectId; + formData.value.projectId = projectId; + if (options?.projectName) { + try { + formData.value.projectName = decodeURIComponent(options.projectName); + } catch (err) { + formData.value.projectName = options.projectName; + } + } } loading.value = true; try {