fix: 活动管理,费用明细逻辑修改。
This commit is contained in:
@@ -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(() => {
|
||||
|
||||
Reference in New Issue
Block a user