From 6ebe0b8b00042be8974ae3986f784070dde43a86 Mon Sep 17 00:00:00 2001 From: tianyongbao Date: Sat, 28 Feb 2026 01:02:02 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=B4=BB=E5=8A=A8=E7=AE=A1=E7=90=86?= =?UTF-8?q?=EF=BC=8C=E8=B4=B9=E7=94=A8=E6=98=8E=E7=BB=86=E9=80=BB=E8=BE=91?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/health/activity/index.vue | 37 +++++++++++++++++++++++++---- 1 file changed, 32 insertions(+), 5 deletions(-) diff --git a/src/views/health/activity/index.vue b/src/views/health/activity/index.vue index 5cc747d..48d962b 100644 --- a/src/views/health/activity/index.vue +++ b/src/views/health/activity/index.vue @@ -448,19 +448,46 @@ function confirmSummary() { const totalAmount = parseFloat(calculateTotalAmount()) const currentTotal = parseFloat(activity.totalCost) || 0 + // 判断活动是否跨天 + const startDate = activity.startTime ? dayjs(activity.startTime).format('YYYY-MM-DD') : '' + const endDate = activity.endTime ? dayjs(activity.endTime).format('YYYY-MM-DD') : '' + const isMultiDay = startDate !== endDate + // 构建费用明细 - const details = selectedExpenses.value - .map((item) => { + let detailsWithDate = '' + + if (isMultiDay) { + // 多天活动:按日期分组 + const groupedByDate = {} + selectedExpenses.value.forEach((item) => { + const date = dayjs(item.createTime).format('MM-DD') + if (!groupedByDate[date]) { + groupedByDate[date] = [] + } const category = item.childCategoryName || '' - return `${category} ${item.amount}元${item.remark ? '(' + item.remark + ')' : ''}` + groupedByDate[date].push(`${category} ${item.amount}元${item.remark ? '(' + item.remark + ')' : ''}`) }) - .join(';') + + // 按日期组装明细 + detailsWithDate = Object.keys(groupedByDate) + .sort() + .map((date) => `${date} ${groupedByDate[date].join('、')}`) + .join(';') + } else { + // 单天活动:不带日期 + detailsWithDate = selectedExpenses.value + .map((item) => { + const category = item.childCategoryName || '' + return `${category} ${item.amount}元${item.remark ? '(' + item.remark + ')' : ''}` + }) + .join(';') + } // 更新活动费用 const updateData = { ...activity, totalCost: (currentTotal + totalAmount).toFixed(2), - costDetail: activity.costDetail ? `${activity.costDetail};${details}` : details + costDetail: activity.costDetail ? `${activity.costDetail};${detailsWithDate}` : detailsWithDate } updateActivity(updateData).then(() => {