fix: 活动管理,费用明细逻辑修改。
This commit is contained in:
@@ -448,19 +448,46 @@ function confirmSummary() {
|
|||||||
const totalAmount = parseFloat(calculateTotalAmount())
|
const totalAmount = parseFloat(calculateTotalAmount())
|
||||||
const currentTotal = parseFloat(activity.totalCost) || 0
|
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
|
let detailsWithDate = ''
|
||||||
.map((item) => {
|
|
||||||
|
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 || ''
|
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 = {
|
const updateData = {
|
||||||
...activity,
|
...activity,
|
||||||
totalCost: (currentTotal + totalAmount).toFixed(2),
|
totalCost: (currentTotal + totalAmount).toFixed(2),
|
||||||
costDetail: activity.costDetail ? `${activity.costDetail};${details}` : details
|
costDetail: activity.costDetail ? `${activity.costDetail};${detailsWithDate}` : detailsWithDate
|
||||||
}
|
}
|
||||||
|
|
||||||
updateActivity(updateData).then(() => {
|
updateActivity(updateData).then(() => {
|
||||||
|
|||||||
Reference in New Issue
Block a user