完成consumer端同步

This commit is contained in:
2026-05-14 15:28:09 +08:00
parent 612fb3d360
commit 0ffbc53902
197 changed files with 92657 additions and 7564 deletions

View File

@@ -102,6 +102,7 @@
<script setup lang="uts">
import { ref, onMounted, watch } from 'vue'
import { supabaseService } from '@/utils/supabaseService.uts'
import { goToLogin } from '@/utils/utils.uts'
type RefundStatusHistoryItem = {
status: number
@@ -177,9 +178,7 @@ const loadRefunds = async (loadMore: boolean): Promise<void> => {
try {
const userId = getCurrentUserId()
if (userId == '') {
uni.navigateTo({
url: '/pages/user/login'
})
goToLogin('/pages/mall/consumer/refund')
return
}
@@ -206,7 +205,7 @@ const loadRefunds = async (loadMore: boolean): Promise<void> => {
for (let j: number = 0; j < dbItems.length; j++) {
const di = dbItems[j] as UTSJSONObject
const imgRaw = di.get('image_url')
const imgUrl = (imgRaw != null) ? (imgRaw as string) : '/static/default-product.png'
const imgUrl = (imgRaw != null) ? (imgRaw as string) : '/static/images/default.png'
const productInfo: RefundProductInfo = {
images: [imgUrl]
} as RefundProductInfo
@@ -306,23 +305,26 @@ const getStatusClass = (status: number): string => {
// 获取商品图片
const getProductImage = (refund: RefundType): string => {
const firstItem = refund.order?.order_items?.[0]
if (firstItem?.product?.images == null || firstItem?.product?.images.length == 0) {
return '/static/default-product.png'
if (refund.order == null || refund.order.order_items == null || refund.order.order_items.length === 0) {
return '/static/images/default.png'
}
return firstItem.product!.images[0]
const firstItem = refund.order.order_items[0]
if (firstItem == null || firstItem.product == null || firstItem.product.images == null || firstItem.product.images.length === 0) {
return '/static/images/default.png'
}
return firstItem.product.images[0]
}
// 获取商品名称
const getProductName = (refund: RefundType): string => {
const items = refund.order?.order_items ?? []
if (items.length === 0) return '未知商品'
if (refund.order == null || refund.order.order_items == null || refund.order.order_items.length === 0) {
return '未知商品'
}
const items = refund.order.order_items
if (items.length === 1) {
return items[0].product_name
} else {
return `${items[0].product_name}等${items.length}件商品`
}
return `${items[0].product_name}等${items.length}件商品`
}
// 格式化时间
@@ -409,10 +411,10 @@ const viewOrder = (orderId: string) => {
const doCancelRefund = async (refund: RefundType) => {
try {
const result = await supabaseService.createRefund({
id: refund.id,
status: 4
} as any)
const refundObj = new UTSJSONObject()
refundObj.set('id', refund.id)
refundObj.set('status', 4)
const result = await supabaseService.createRefund(refundObj)
if (result.success) {
refund.status = 4
@@ -450,6 +452,11 @@ const cancelRefund = (refund: RefundType) => {
// 联系客服
const contactService = (refund: RefundType) => {
const userId = getCurrentUserId()
if (userId === '') {
goToLogin('/pages/mall/consumer/refund')
return
}
uni.navigateTo({
url: `/pages/mall/service/chat?refundId=${refund.id}`
})
@@ -508,6 +515,11 @@ const deleteRefund = (refund: RefundType) => {
// 申请售后
const applyRefund = () => {
const userId = getCurrentUserId()
if (userId === '') {
goToLogin('/pages/mall/consumer/refund')
return
}
uni.navigateTo({
url: '/pages/mall/consumer/apply-refund'
})