From 8df527f0c0a6d69aaabf76fa315381cbbfea0039 Mon Sep 17 00:00:00 2001 From: hebo Date: Fri, 26 Sep 2025 18:08:35 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8E=A5=E9=BE=99=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/base/server.ts | 7 ++++++- src/pages/base/jl/detail.vue | 38 +++++++++++++++++++++++++++++------- src/pages/base/jl/index.vue | 19 +++++++++++++++--- 3 files changed, 53 insertions(+), 11 deletions(-) diff --git a/src/api/base/server.ts b/src/api/base/server.ts index 667e1ef..a23d7d0 100644 --- a/src/api/base/server.ts +++ b/src/api/base/server.ts @@ -89,7 +89,12 @@ export const getByJlIdApi = async (params: any) => { // 推送清单相关API // 根据接龙ID获取学生信息 -export const jlzxFindByJlParamsApi = async (params: { jlId: string }) => { +export const jlzxFindByJlParamsApi = async (params: { + jlId: string; + njId?: string; + njmcId?: string; + bjId?: string; +}) => { return await get("/api/jlzx/findByJlParams", params); }; diff --git a/src/pages/base/jl/detail.vue b/src/pages/base/jl/detail.vue index b48e3dc..a22cc2c 100644 --- a/src/pages/base/jl/detail.vue +++ b/src/pages/base/jl/detail.vue @@ -90,6 +90,11 @@ const isLoading = ref(false); const studentList = ref([]); const descExpanded = ref(false); +// 新增参数 +const njId = ref(""); +const njmcId = ref(""); +const bjId = ref(""); + // 签名相关 const signCompRef = ref(null); const signTitle = ref("签名"); @@ -157,11 +162,11 @@ async function onRelayClick() { // 提交接龙 async function submitRelay() { const params: any = { - jl_id: noticeId.value, + jlId: noticeId.value, xsId: currentStudent.value?.id, }; if (sign_file.value) { - params.qm_file = sign_file.value; + params.qmFile = sign_file.value; } showLoading('提交中...'); try { @@ -182,7 +187,14 @@ async function submitRelay() { // 刷新学生完成状态 async function refreshStudentList() { try { - const stuRes = await jlzxFindByJlParamsApi({ jlId: noticeId.value }); + const params: any = { jlId: noticeId.value }; + + // 添加筛选参数 + if (njId.value) params.njId = njId.value; + if (njmcId.value) params.njmcId = njmcId.value; + if (bjId.value) params.bjId = bjId.value; + + const stuRes = await jlzxFindByJlParamsApi(params); studentList.value = stuRes?.rows || stuRes?.result || []; } catch (e) { uni.showToast({ title: "刷新学生状态失败", icon: "none" }); @@ -190,14 +202,19 @@ async function refreshStudentList() { } onLoad(async (options) => { - if (options && options.id) { - noticeId.value = options.id; + if (options && options.jlId) { + noticeId.value = options.jlId; + + // 接收新的参数 + if (options.njId) njId.value = options.njId; + if (options.njmcId) njmcId.value = options.njmcId; + if (options.bjId) bjId.value = options.bjId; + isLoading.value = true; if (options.openId) { // 检查登录状态 const isLoggedIn = await userStore.loginByOpenId(options.openId); if (!isLoggedIn) { - console.log("用户未登录,跳过处理"); return; } } @@ -210,7 +227,14 @@ onLoad(async (options) => { } // 2. 获取学生完成状态 try { - const stuRes = await jlzxFindByJlParamsApi({ jlId: noticeId.value }); + const params: any = { jlId: noticeId.value }; + + // 添加筛选参数 + if (njId.value) params.njId = njId.value; + if (njmcId.value) params.njmcId = njmcId.value; + if (bjId.value) params.bjId = bjId.value; + + const stuRes = await jlzxFindByJlParamsApi(params); studentList.value = stuRes?.rows || stuRes?.result || []; } catch (e) { uni.showToast({ title: "加载学生状态失败", icon: "none" }); diff --git a/src/pages/base/jl/index.vue b/src/pages/base/jl/index.vue index 6109b08..632dd70 100644 --- a/src/pages/base/jl/index.vue +++ b/src/pages/base/jl/index.vue @@ -155,10 +155,23 @@ watch(dataList, (val) => { // 跳转到接龙反馈(detail)页 const goToFeedback = (data: any) => { - // 优先使用 jlId,如果没有则使用 id - const jlId = data.jlId || data.id; + + // 传递所有必要的参数 + const params = { + jlId: data.jlId, + njId: data.njId, + njmcId: data.njmcId, + bjId: data.bjId + }; + + // 构建查询字符串 + const queryString = Object.keys(params) + .filter(key => params[key as keyof typeof params]) + .map(key => `${key}=${encodeURIComponent(params[key as keyof typeof params])}`) + .join('&'); + uni.navigateTo({ - url: `/pages/base/jl/detail?id=${jlId}`, + url: `/pages/base/jl/detail?${queryString}`, }); };