feat(groupbuying): 完善拼团订单全链路及错误处理

- 拼团订单发货校验:必须成团后才能发货
- 限购校验:跨团组统计用户参与次数,超限拒绝
- 成团/失败自动通知所有成员(Redis Pub/Sub)
- 拼团详情页区分"进行中"和"已成团"团组展示
- 订单类型支持三态(普通/秒杀/拼团)前后端联调
- 400错误只显示业务消息,不再重复弹出状态码
- 响应式导航栏适配及UI优化
- 新增历史数据修复SQL脚本
This commit is contained in:
2026-03-17 00:08:21 +08:00
parent 32c1113d4a
commit 28f41754d0
22 changed files with 571 additions and 58 deletions

View File

@@ -107,7 +107,10 @@ const reviewedItems = computed(() => items.value.filter(i => i.reviewed))
const canSubmit = computed(() => reviewableItems.value.some(i => i.content.trim()))
const loadReviewStatus = async () => {
if (!props.orderId || !props.orderItems.length) return
if (!props.orderId || !props.orderItems.length) {
items.value = []
return
}
checkLoading.value = true
try {
const list: ReviewableItem[] = props.orderItems.map(item => ({
@@ -177,5 +180,14 @@ const handleSubmit = async () => {
watch(() => props.visible, (val) => {
if (val) loadReviewStatus()
if (!val) items.value = []
})
watch(
() => [props.orderId, props.orderItems],
() => {
if (props.visible) loadReviewStatus()
},
{ immediate: true }
)
</script>