Files
medical-mall/unpackage/cache/.app-android/sourcemap/pages/mall/consumer/orders.kt.map

1 line
51 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{"version":3,"sources":["pages/mall/consumer/orders.uvue","pages/user/change-password.uvue","pages/user/login.uvue","pages/mall/consumer/settings.uvue","pages/mall/consumer/index.uvue","pages/user/center.uvue","uni_modules/ak-req/ak-req.uts"],"sourcesContent":["<!-- pages/mall/consumer/orders.uvue -->\r\n<template>\r\n <view class=\"orders-page\">\r\n <!-- 顶部标题栏 -->\r\n <view class=\"orders-header\">\r\n <view class=\"header-search full-width\">\r\n <input \r\n class=\"search-input\" \r\n type=\"text\" \r\n placeholder=\"搜索订单号或商品名称\"\r\n :value=\"searchKeyword\"\r\n @input=\"onSearchInput\"\r\n @confirm=\"onSearchConfirm\"\r\n />\r\n <text v-if=\"searchKeyword\" class=\"search-clear\" @click=\"clearSearch\">×</text>\r\n <text v-else class=\"search-icon\">🔍</text>\r\n </view>\r\n </view>\r\n \r\n <!-- 订单状态筛选 -->\r\n <view class=\"order-tabs\">\r\n <scroll-view scroll-x class=\"tab-scroll\" :show-scrollbar=\"false\">\r\n <view class=\"tab-container\">\r\n <view \r\n v-for=\"tab in orderTabs\" \r\n :key=\"tab.id\"\r\n :class=\"['tab-item', { active: activeTab === tab.id }]\"\r\n @click=\"switchTab(tab.id)\"\r\n >\r\n <text class=\"tab-name\">{{ tab.name }}</text>\r\n <text v-if=\"tab.count > 0\" class=\"tab-count\">{{ tab.count }}</text>\r\n <view v-if=\"activeTab === tab.id\" class=\"active-indicator\"></view>\r\n </view>\r\n </view>\r\n </scroll-view>\r\n </view>\r\n \r\n <!-- 订单列表 -->\r\n <scroll-view \r\n scroll-y \r\n class=\"orders-content\"\r\n refresher-enabled\r\n :refresher-triggered=\"refreshing\"\r\n @refresherrefresh=\"onRefresh\"\r\n @scrolltolower=\"loadMore\"\r\n >\r\n <!-- 空状态 -->\r\n <view v-if=\"!loading && orders.length === 0\" class=\"empty-orders\">\r\n <text class=\"empty-icon\">📦</text>\r\n <text class=\"empty-title\">暂无订单</text>\r\n <text class=\"empty-desc\">去逛逛,发现心仪的商品</text>\r\n <button class=\"go-shopping-btn\" @click=\"goShopping\">去逛逛</button>\r\n </view>\r\n \r\n <!-- 订单列表 -->\r\n <view v-else class=\"order-list\">\r\n <view \r\n v-for=\"order in orders\" \r\n :key=\"order.id\"\r\n class=\"order-card\"\r\n >\r\n <!-- 订单头部 -->\r\n <view class=\"order-header\">\r\n <text class=\"order-no\">订单号:{{ order.order_no }}</text>\r\n <text :class=\"['order-status', getStatusClass(order.status)]\">\r\n {{ getStatusText(order.status) }}\r\n </text>\r\n </view>\r\n \r\n <!-- 订单商品 -->\r\n <view class=\"order-products\">\r\n <view \r\n v-for=\"product in order.products\" \r\n :key=\"product.id\"\r\n class=\"order-product\"\r\n @click=\"navigateToProduct(product)\"\r\n >\r\n <image \r\n class=\"product-image\" \r\n :src=\"product.image\" \r\n mode=\"aspectFill\"\r\n />\r\n <view class=\"product-info\">\r\n <text class=\"product-name\">{{ product.name }}</text>\r\n <text class=\"product-spec\">{{ product.spec }}</text>\r\n <view class=\"product-footer\">\r\n <text class=\"product-price\">¥{{ product.price }}</text>\r\n <text class=\"product-quantity\">×{{ product.quantity }}</text>\r\n </view>\r\n </view>\r\n </view>\r\n </view>\r\n \r\n <!-- 订单信息 -->\r\n <view class=\"order-info\">\r\n <view class=\"info-row\">\r\n <text class=\"info-label\">商品合计</text>\r\n <text class=\"info-value\">¥{{ order.product_amount }}</text>\r\n </view>\r\n <view class=\"info-row\">\r\n <text class=\"info-label\">运费</text>\r\n <text class=\"info-value\">¥{{ order.shipping_fee }}</text>\r\n </view>\r\n <view class=\"info-row total\">\r\n <text class=\"info-label\">实付款</text>\r\n <text class=\"info-value total-price\">¥{{ order.total_amount }}</text>\r\n </view>\r\n </view>\r\n \r\n <!-- 订单操作 -->\r\n <view class=\"order-actions\">\r\n <view v-if=\"order.status === 1\" class=\"action-buttons\">\r\n <button class=\"action-btn cancel\" @click=\"cancelOrder(order.id)\">取消订单</button>\r\n <button class=\"action-btn pay\" @click=\"payOrder(order.id)\">立即支付</button>\r\n </view>\r\n \r\n <view v-if=\"order.status === 2\" class=\"action-buttons\">\r\n <button class=\"action-btn remind\" @click=\"remindShipping(order.id)\">提醒发货</button>\r\n <button class=\"action-btn refund\" @click.stop=\"onApplyRefund(order)\">申请售后</button>\r\n </view>\r\n \r\n <view v-if=\"order.status === 3\" class=\"action-buttons\">\r\n <button class=\"action-btn view\" @click=\"viewLogistics(order.id)\">查看物流</button>\r\n <button class=\"action-btn confirm\" @click=\"confirmReceipt(order.id)\">确认收货</button>\r\n <button class=\"action-btn refund\" @click.stop=\"onApplyRefund(order)\">申请售后</button>\r\n </view>\r\n \r\n <view v-if=\"order.status === 4\" class=\"action-buttons\">\r\n <button class=\"action-btn review\" @click=\"goReview(order)\">评价</button>\r\n <button class=\"action-btn refund\" @click.stop=\"onApplyRefund(order)\">申请售后</button>\r\n <button class=\"action-btn repurchase\" @click=\"repurchase(order)\">再次购买</button>\r\n </view>\r\n \r\n <view v-if=\"order.status === 5\" class=\"action-buttons\">\r\n <button class=\"action-btn view\" @click=\"viewOrderDetail(order.id)\">查看详情</button>\r\n </view>\r\n </view>\r\n </view>\r\n </view>\r\n \r\n <!-- 加载更多 -->\r\n <view v-if=\"loadingMore\" class=\"loading-more\">\r\n <view class=\"loading-spinner\"></view>\r\n <text>加载中...</text>\r\n </view>\r\n \r\n <view v-if=\"!hasMore && orders.length > 0\" class=\"no-more\">\r\n <text>没有更多订单了</text>\r\n </view>\r\n \r\n <!-- 安全区域 -->\r\n <view class=\"safe-area\"></view>\r\n </scroll-view>\r\n \r\n <!-- 底部导航 -->\r\n <view class=\"tabbar-placeholder\"></view>\r\n </view>\r\n</template>\r\n\r\n<script setup lang=\"uts\">\r\nimport { ref, reactive, onMounted, computed } from 'vue'\r\nimport { onShow, onLoad, onBackPress } from '@dcloudio/uni-app'\r\nimport { supabaseService } from '@/utils/supabaseService.uts'\r\n\r\n// 拦截返回事件,避免跳回登录页\r\nonBackPress((options) => {\r\n if (options.from === 'navigateBack') {\r\n const pages = getCurrentPages()\r\n if (pages.length > 1) {\r\n const prevPage = pages[pages.length - 2]\r\n // 如果上一页是登录页,则重定向到个人中心\r\n if (prevPage.route.includes('login')) {\r\n uni.redirectTo({\r\n url: '/pages/mall/consumer/profile'\r\n })\r\n return true\r\n }\r\n }\r\n }\r\n return false\r\n})\r\n\r\n// 定义标签页类型\r\ntype OrderTabItem = {\r\n id: string,\r\n name: string,\r\n count: number\r\n}\r\n\r\n// 定义订单产品类型\r\ntype OrderProduct = {\r\n id: string,\r\n name: string,\r\n price: number,\r\n image: string,\r\n spec: string,\r\n quantity: number\r\n}\r\n\r\n// 定义订单类型\r\ntype OrderItem = {\r\n id: string,\r\n order_no: string,\r\n status: number,\r\n create_time: string,\r\n product_amount: number,\r\n shipping_fee: number,\r\n total_amount: number,\r\n products: OrderProduct[]\r\n}\r\n\r\n// 响应式数据\r\nconst orders = ref<OrderItem[]>([])\r\nconst allOrdersList = ref<OrderItem[]>([]) // Store all fetched orders for client-side filtering\r\nconst loading = ref<boolean>(false)\r\nconst loadingMore = ref<boolean>(false)\r\nconst hasMore = ref<boolean>(true)\r\nconst refreshing = ref<boolean>(false)\r\nconst page = ref<number>(1)\r\nconst activeTab = ref<string>('all')\r\nconst searchKeyword = ref<string>('')\r\n\r\n// 订单标签页 - 使用 ref 以便整体替换\r\nconst orderTabs = ref<OrderTabItem[]>([\r\n { id: 'all', name: '全部', count: 0 },\r\n { id: 'pending', name: '待付款', count: 0 },\r\n { id: 'shipping', name: '待发货', count: 0 },\r\n { id: 'delivering', name: '待收货', count: 0 },\r\n { id: 'completed', name: '已完成', count: 0 },\r\n { id: 'cancelled', name: '已取消', count: 0 }\r\n])\r\n\r\n// Removed Mock Data\r\n\r\n\r\n// 辅助函数:获取状态码\r\nconst getStatusByTab = (tabId: string): number => {\r\n if (tabId == 'pending') return 1\r\n if (tabId == 'shipping') return 2\r\n if (tabId == 'delivering') return 3\r\n if (tabId == 'completed') return 4\r\n if (tabId == 'cancelled') return 5\r\n return 0\r\n}\r\n\r\n// 辅助函数:解析规格文本\r\nconst parseSpecText = (specs: any): string => {\r\n if (specs == null) return ''\r\n if (typeof specs === 'string') return specs\r\n // 对于对象类型尝试转为JSON字符串或简单处理\r\n try {\r\n return JSON.stringify(specs)\r\n } catch (e) {\r\n return ''\r\n }\r\n}\r\n\r\n// 辅助函数:更新标签计数\r\nconst updateTabsCounts = (allOrders: any[]) => {\r\n // 直接重新赋值整个数组\r\n const tabsData = orderTabs.value\r\n // 计算各状态数量\r\n const countAll = allOrders.length\r\n const countPending = allOrders.filter((o: any) => {\r\n const obj = o as Record<string, any>\r\n return obj['status'] === 1\r\n }).length\r\n const countShipping = allOrders.filter((o: any) => {\r\n const obj = o as Record<string, any>\r\n return obj['status'] === 2\r\n }).length\r\n const countDelivering = allOrders.filter((o: any) => {\r\n const obj = o as Record<string, any>\r\n return obj['status'] === 3\r\n }).length\r\n const countCompleted = allOrders.filter((o: any) => {\r\n const obj = o as Record<string, any>\r\n return obj['status'] === 4\r\n }).length\r\n const countCancelled = allOrders.filter((o: any) => {\r\n const obj = o as Record<string, any>\r\n return obj['status'] === 5\r\n }).length\r\n \r\n // 更新数组元素\r\n const tabsArr = tabsData as any[]\r\n const tab0 = tabsArr[0] as Record<string, any>\r\n tab0['count'] = countAll\r\n const tab1 = tabsArr[1] as Record<string, any>\r\n tab1['count'] = countPending\r\n const tab2 = tabsArr[2] as Record<string, any>\r\n tab2['count'] = countShipping\r\n const tab3 = tabsArr[3] as Record<string, any>\r\n tab3['count'] = countDelivering\r\n const tab4 = tabsArr[4] as Record<string, any>\r\n tab4['count'] = countCompleted\r\n const tab5 = tabsArr[5] as Record<string, any>\r\n tab5['count'] = countCancelled\r\n}\r\n\r\n// 辅助函数:按标签筛选订单\r\nconst filterOrdersByTab = () => {\r\n if (activeTab.value === 'all') {\r\n orders.value = allOrdersList.value\r\n } else {\r\n const targetStatus = getStatusByTab(activeTab.value)\r\n orders.value = allOrdersList.value.filter((o: OrderItem) => {\r\n return o.status === targetStatus\r\n })\r\n }\r\n}\r\n\r\n// 加载订单数据\r\nconst loadOrders = async () => {\r\n loading.value = true\r\n \r\n try {\r\n // Fetch all orders from Supabase (status=0)\r\n const fetchedOrders = await supabaseService.getOrders(0)\r\n \r\n // Map to View Model\r\n const mappedOrders: any[] = []\r\n for (let i = 0; i < fetchedOrders.length; i++) {\r\n const order = fetchedOrders[i]\r\n const orderObj = order as Record<string, any>\r\n const items = orderObj['ml_order_items'] as any[]\r\n const productsList: any[] = []\r\n \r\n if (items != null) {\r\n for (let j = 0; j < items.length; j++) {\r\n const item = items[j]\r\n const itemObj = item as Record<string, any>\r\n const specRaw = itemObj['specifications']\r\n const specText = specRaw != null ? parseSpecText(specRaw) : ''\r\n productsList.push({\r\n id: itemObj['product_id'],\r\n name: itemObj['product_name'],\r\n price: itemObj['price'],\r\n image: itemObj['image_url'] ?? '/static/default-product.png',\r\n spec: specText,\r\n quantity: itemObj['quantity']\r\n })\r\n }\r\n }\r\n \r\n mappedOrders.push({\r\n id: orderObj['id'],\r\n order_no: orderObj['order_no'],\r\n status: orderObj['order_status'],\r\n create_time: orderObj['created_at'],\r\n product_amount: orderObj['product_amount'] ?? 0,\r\n shipping_fee: orderObj['shipping_fee'] ?? 0,\r\n total_amount: orderObj['total_amount'] ?? orderObj['paid_amount'] ?? 0,\r\n products: productsList\r\n })\r\n }\r\n\r\n // Sort by created_at desc\r\n mappedOrders.sort((a: any, b: any) => {\r\n const aObj = a as Record<string, any>\r\n const bObj = b as Record<string, any>\r\n const timeA = new Date(aObj['create_time'] as string).getTime()\r\n const timeB = new Date(bObj['create_time'] as string).getTime()\r\n return timeB - timeA\r\n })\r\n\r\n // 将 mappedOrders 转换为 OrderItem[] 类型\r\n const typedOrders: OrderItem[] = []\r\n for (let i = 0; i < mappedOrders.length; i++) {\r\n const mo = mappedOrders[i] as Record<string, any>\r\n typedOrders.push({\r\n id: mo['id'] as string,\r\n order_no: mo['order_no'] as string,\r\n status: mo['status'] as number,\r\n create_time: mo['create_time'] as string,\r\n product_amount: mo['product_amount'] as number,\r\n shipping_fee: mo['shipping_fee'] as number,\r\n total_amount: mo['total_amount'] as number,\r\n products: mo['products'] as OrderProduct[]\r\n })\r\n }\r\n allOrdersList.value = typedOrders\r\n \r\n // Update tab counts\r\n updateTabsCounts(mappedOrders)\r\n \r\n // Apply current tab filter\r\n filterOrdersByTab()\r\n \r\n } catch (err) {\r\n console.error('加载订单异常:', err)\r\n uni.showToast({ title: '加载订单失败', icon: 'none' })\r\n } finally {\r\n loading.value = false\r\n }\r\n}\r\n\r\n// 生命周期\r\nonLoad((options) => {\r\n if (options['status'] != null) {\r\n const status = options['status'] as string\r\n if (['all', 'pending', 'shipping', 'delivering', 'completed', 'cancelled'].includes(status)) {\r\n activeTab.value = status\r\n }\r\n }\r\n if (options['type'] != null) {\r\n const type = options['type'] as string\r\n if (type === 'pending') activeTab.value = 'pending'\r\n else if (type === 'shipped') activeTab.value = 'delivering' // 映射到待收货\r\n else if (type === 'review') activeTab.value = 'completed' // 映射到已完成\r\n else if (type === 'refund') activeTab.value = 'all' // 申请售后默认显示全部\r\n }\r\n})\r\n\r\nonShow(() => {\r\n loadOrders()\r\n})\r\n\r\nconst formatDate = (isoString: string): string => {\r\n if (isoString == '') return ''\r\n const date = new Date(isoString)\r\n return `${date.getFullYear()}-${(date.getMonth()+1).toString().padStart(2, '0')}-${date.getDate().toString().padStart(2, '0')} ${date.getHours().toString().padStart(2, '0')}:${date.getMinutes().toString().padStart(2, '0')}`\r\n}\r\n\r\n// 辅助函数:获取当前订单数据(必须在 performSearch 之前定义)\r\nfunction getCurrentOrderData(): OrderItem[] {\r\n return allOrdersList.value\r\n}\r\n\r\n// 搜索执行函数(必须在 onSearchInput 等之前定义)\r\nconst performSearch = () => {\r\n const keyword = searchKeyword.value.trim().toLowerCase()\r\n if (keyword == '') {\r\n loadOrders()\r\n return\r\n }\r\n \r\n // 在当前订单数据中搜索\r\n const allOrders = getCurrentOrderData()\r\n const filtered = allOrders.filter((order: any) => {\r\n const orderObj = order as Record<string, any>\r\n // 搜索订单号\r\n const orderNo = orderObj['order_no'] as string\r\n if (orderNo != null && orderNo.toLowerCase().includes(keyword)) {\r\n return true\r\n }\r\n \r\n // 搜索商品名称\r\n const products = orderObj['products']\r\n if (products != null && Array.isArray(products)) {\r\n return products.some((product: any) => {\r\n const productObj = product as Record<string, any>\r\n const name = productObj['name'] as string\r\n return name != null && name.toLowerCase().includes(keyword)\r\n })\r\n }\r\n \r\n return false\r\n })\r\n \r\n orders.value = filtered\r\n}\r\n\r\n// 搜索相关函数\r\nconst onSearchInput = (e: any) => {\r\n const eObj = e as Record<string, any>\r\n const detail = eObj['detail'] as Record<string, any>\r\n searchKeyword.value = detail['value'] as string\r\n performSearch()\r\n}\r\n\r\nconst onSearchConfirm = () => {\r\n performSearch()\r\n}\r\n\r\nconst clearSearch = () => {\r\n searchKeyword.value = ''\r\n performSearch()\r\n}\r\n\r\nconst formatSpec = (specs: any): string => {\r\n if (specs == null) return ''\r\n if (typeof specs === 'string') return specs\r\n if (typeof specs === 'object') {\r\n return JSON.stringify(specs)\r\n }\r\n return ''\r\n}\r\n\r\n// 切换标签\r\nconst switchTab = (tabId: string) => {\r\n activeTab.value = tabId\r\n filterOrdersByTab()\r\n}\r\n\r\n// 获取状态文本\r\nconst getStatusText = (status: number): string => {\r\n if (status == 1) return '待付款'\r\n if (status == 2) return '待发货'\r\n if (status == 3) return '待收货'\r\n if (status == 4) return '已完成'\r\n if (status == 5) return '已取消'\r\n return '未知状态'\r\n}\r\n\r\n// 获取状态类名\r\nconst getStatusClass = (status: number): string => {\r\n if (status == 1) return 'status-pending'\r\n if (status == 2) return 'status-shipping'\r\n if (status == 3) return 'status-delivering'\r\n if (status == 4) return 'status-completed'\r\n if (status == 5) return 'status-cancelled'\r\n return 'status-unknown'\r\n}\r\n\r\n// 下拉刷新\r\nconst onRefresh = () => {\r\n refreshing.value = true\r\n setTimeout(() => {\r\n loadOrders()\r\n refreshing.value = false\r\n uni.showToast({\r\n title: '刷新成功',\r\n icon: 'success'\r\n })\r\n }, 1000)\r\n}\r\n\r\n// 上拉加载更多\r\nconst loadMore = () => {\r\n if (loadingMore.value || !hasMore.value) return\r\n \r\n // 暂未实现分页,直接返回\r\n hasMore.value = false\r\n}\r\n\r\n// 订单操作函数\r\nconst cancelOrder = (orderId: string) => {\r\n uni.showModal({\r\n title: '确认取消',\r\n content: '确定要取消此订单吗?',\r\n success: (res) => {\r\n if (res.confirm) {\r\n // 这里应该是实际的API调用\r\n uni.showToast({\r\n title: '订单已取消',\r\n icon: 'success'\r\n })\r\n \r\n // 更新订单状态\r\n const index = orders.value.findIndex((o: any) => {\r\n const obj = o as Record<string, any>\r\n return obj['id'] === orderId\r\n })\r\n if (index !== -1) {\r\n const orderObj = orders.value[index] as Record<string, any>\r\n orderObj['status'] = 5\r\n orders.value = [...orders.value]\r\n }\r\n }\r\n }\r\n })\r\n}\r\n\r\nconst payOrder = (orderId: string) => {\r\n uni.navigateTo({\r\n url: `/pages/mall/consumer/payment?orderId=${orderId}`\r\n })\r\n}\r\n\r\nconst remindShipping = (orderId: string) => {\r\n uni.showToast({\r\n title: '已提醒卖家发货',\r\n icon: 'success'\r\n })\r\n}\r\n\r\nconst viewLogistics = (orderId: string) => {\r\n uni.navigateTo({\r\n url: `/pages/mall/consumer/logistics?orderId=${orderId}`\r\n })\r\n}\r\n\r\n// goReview 必须在 doConfirmReceipt 之前定义,因为 doConfirmReceipt 会调用它\r\nconst goReview = (order: any) => {\r\n const orderObj = order as Record<string, any>\r\n const products = orderObj['products'] as any[]\r\n const productIds = products.map((p: any) => {\r\n const pObj = p as Record<string, any>\r\n const pid = pObj['id']\r\n return pid != null ? pid as string : ''\r\n }).join(',')\r\n const orderId = orderObj['id'] as string\r\n uni.navigateTo({\r\n url: `/pages/mall/consumer/review?orderId=${orderId}&productIds=${productIds}`\r\n })\r\n}\r\n\r\nconst doConfirmReceipt = async (orderId: string) => {\r\n uni.showLoading({ title: '处理中...' })\r\n try {\r\n const result = await supabaseService.confirmReceipt(orderId)\r\n uni.hideLoading()\r\n \r\n if (result.success) {\r\n uni.showToast({\r\n title: '收货成功',\r\n icon: 'success'\r\n })\r\n \r\n // 更新本地状态\r\n const index = orders.value.findIndex((o: any) => {\r\n const obj = o as Record<string, any>\r\n return obj['id'] === orderId\r\n })\r\n if (index !== -1) {\r\n const orderObj = orders.value[index] as Record<string, any>\r\n orderObj['status'] = 4\r\n orders.value = [...orders.value]\r\n }\r\n\r\n // 跳转到评价页面\r\n setTimeout(() => {\r\n const order = orders.value.find((o: any) => {\r\n const obj = o as Record<string, any>\r\n return obj['id'] === orderId\r\n })\r\n if (order != null) {\r\n goReview(order)\r\n }\r\n }, 1000)\r\n } else {\r\n uni.showToast({\r\n title: result.error ?? '确认收货失败',\r\n icon: 'none'\r\n })\r\n }\r\n } catch (e) {\r\n uni.hideLoading()\r\n uni.showToast({\r\n title: '系统异常',\r\n icon: 'none'\r\n })\r\n }\r\n}\r\n\r\nconst confirmReceipt = (orderId: string) => {\r\n uni.showModal({\r\n title: '确认收货',\r\n content: '请确认您已收到商品,且商品无误',\r\n success: (res) => {\r\n if (res.confirm) {\r\n doConfirmReceipt(orderId)\r\n }\r\n }\r\n })\r\n}\r\n\r\nconst repurchase = (order: any) => {\r\n uni.showModal({\r\n title: '再次购买',\r\n content: '确定要将这些商品加入购物车吗?',\r\n success: (res) => {\r\n if (res.confirm) {\r\n // 这里应该是实际的API调用\r\n uni.showToast({\r\n title: '已加入购物车',\r\n icon: 'success'\r\n })\r\n }\r\n }\r\n })\r\n}\r\n\r\nconst viewOrderDetail = (orderId: string) => {\r\n uni.navigateTo({\r\n url: `/pages/mall/consumer/order-detail?id=${orderId}`\r\n })\r\n}\r\n\r\nconst onApplyRefund = (order: any) => {\r\n const orderObj = order as Record<string, any>\r\n const orderId = orderObj['id']\r\n uni.navigateTo({\r\n url: `/pages/mall/consumer/apply-refund?orderId=${orderId}`\r\n })\r\n}\r\n\r\n// 导航函数\r\nconst navigateToSearch = () => {\r\n uni.navigateTo({ url: '/pages/mall/consumer/search' })\r\n}\r\n\r\nconst navigateToProduct = (product: any) => {\r\n const productObj = product as Record<string, any>\r\n const productId = productObj['id']\r\n uni.navigateTo({ url: `/pages/mall/consumer/product-detail?id=${productId}` })\r\n}\r\n\r\nconst goShopping = () => {\r\n uni.switchTab({ url: '/pages/mall/consumer/index' })\r\n}\r\n</script>\r\n\r\n<style>\r\n.orders-page {\r\n width: 100%;\r\n flex: 1;\r\n display: flex;\r\n flex-direction: column;\r\n background-color: #f5f5f5;\r\n}\r\n\r\n/* 头部 */\r\n.orders-header {\r\n background-color: white;\r\n padding: 15px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n border-bottom: 1px solid #eee;\r\n /* position: sticky; removed */\r\n /* top: 0; removed */\r\n z-index: 10;\r\n}\r\n\r\n.header-search.full-width {\r\n display: flex;\r\n align-items: center;\r\n position: relative;\r\n width: 100%;\r\n}\r\n\r\n.search-input {\r\n flex: 1;\r\n height: 36px;\r\n border: 1px solid #ddd;\r\n border-radius: 18px;\r\n padding: 0 40px 0 16px;\r\n font-size: 14px;\r\n background-color: #f5f5f5;\r\n color: #333;\r\n width: 100%;\r\n}\r\n\r\n.search-input::placeholder {\r\n color: #999;\r\n font-size: 12px;\r\n}\r\n.search-input:focus {\r\n border-color: #ff5000;\r\n background-color: white;\r\n}\r\n\r\n.search-icon {\r\n position: absolute;\r\n right: 12px;\r\n font-size: 18px;\r\n color: #999;\r\n}\r\n\r\n.search-clear {\r\n position: absolute;\r\n right: 12px;\r\n font-size: 20px;\r\n color: #999;\r\n width: 20px;\r\n height: 20px;\r\n line-height: 18px;\r\n text-align: center;\r\n border-radius: 10px; /* fixed 50% */\r\n background-color: #ddd;\r\n /* cursor: pointer; removed */\r\n}\r\n\r\n/* 标签页 */\r\n.order-tabs {\r\n background-color: #ffffff;\r\n border-bottom: 1px solid #e5e5e5;\r\n /* position: sticky; removed */\r\n /* top: 50px; removed */\r\n z-index: 10;\r\n}\r\n\r\n.tab-scroll {\r\n width: 100%;\r\n white-space: nowrap;\r\n}\r\n\r\n.tab-container {\r\n display: flex;\r\n flex-direction: row;\r\n padding: 0 10px;\r\n /* width: max-content; removed */\r\n /* min-width: 100%; removed */\r\n}\r\n\r\n.tab-item {\r\n /* 移除 flex: 1改为自适应宽度或固定最小宽度 */\r\n padding: 15px 15px; /* 增加水平内边距 */\r\n text-align: center;\r\n position: relative;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n white-space: nowrap; /* 防止文字换行 */\r\n flex-shrink: 0; /* 防止被压缩 */\r\n}\r\n\r\n.tab-item.active {\r\n color: #ff5000;\r\n font-weight: bold;\r\n}\r\n\r\n.tab-item.active::after {\r\n /* content: ''; removed */\r\n/* content: '';\r\n position: absolute;\r\n bottom: 0;\r\n left: 0;\r\n right: 0;\r\n height: 2px;\r\n background-color: #ff5000; */\r\n}\r\n\r\n.active-indicator {\r\n position: absolute;\r\n bottom: 0;\r\n left: 0;\r\n right: 0;\r\n height: 2px;\r\n background-color: #ff5000;\r\n}\r\n\r\n.tab-name {\r\n font-size: 14px;\r\n}\r\n\r\n.tab-count {\r\n margin-left: 4px;\r\n background-color: #ff5000;\r\n color: white;\r\n font-size: 10px;\r\n padding: 1px 4px;\r\n border-radius: 8px;\r\n min-width: 12px;\r\n text-align: center;\r\n}\r\n\r\n/* 内容区 */\r\n.orders-content {\r\n flex: 1;\r\n}\r\n\r\n/* 空状态 */\r\n.empty-orders {\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n justify-content: center;\r\n padding: 80px 20px;\r\n text-align: center;\r\n}\r\n\r\n.empty-icon {\r\n font-size: 80px;\r\n color: #ddd;\r\n margin-bottom: 20px;\r\n}\r\n\r\n.empty-title {\r\n font-size: 18px;\r\n color: #666;\r\n margin-bottom: 10px;\r\n}\r\n\r\n.empty-desc {\r\n font-size: 14px;\r\n color: #999;\r\n margin-bottom: 30px;\r\n}\r\n\r\n.go-shopping-btn {\r\n background-color: #ff5000;\r\n color: white;\r\n border: none;\r\n border-radius: 25px;\r\n padding: 10px 40px;\r\n font-size: 16px;\r\n}\r\n\r\n/* 订单列表 */\r\n.order-list {\r\n padding: 10px;\r\n}\r\n\r\n.order-card {\r\n background-color: white;\r\n border-radius: 10px;\r\n margin-bottom: 10px;\r\n overflow: hidden;\r\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);\r\n}\r\n\r\n/* 订单头部 */\r\n.order-header {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n padding: 15px;\r\n border-bottom: 1px solid #f5f5f5;\r\n}\r\n\r\n.order-no {\r\n font-size: 14px;\r\n color: #666;\r\n}\r\n\r\n.order-status {\r\n font-size: 14px;\r\n font-weight: bold;\r\n}\r\n\r\n.status-pending {\r\n color: #ff5000;\r\n}\r\n\r\n.status-shipping {\r\n color: #ff9500;\r\n}\r\n\r\n.status-delivering {\r\n color: #007aff;\r\n}\r\n\r\n.status-completed {\r\n color: #34c759;\r\n}\r\n\r\n.status-cancelled {\r\n color: #999;\r\n}\r\n\r\n/* 订单商品 */\r\n.order-products {\r\n padding: 15px;\r\n}\r\n\r\n.order-product {\r\n display: flex;\r\n margin-bottom: 15px;\r\n}\r\n\r\n.order-product:last-child {\r\n margin-bottom: 0;\r\n}\r\n\r\n.product-image {\r\n width: 80px;\r\n height: 80px;\r\n border-radius: 8px;\r\n margin-right: 15px;\r\n}\r\n\r\n.product-info {\r\n flex: 1;\r\n}\r\n\r\n.product-name {\r\n font-size: 15px;\r\n color: #333;\r\n margin-bottom: 5px;\r\n line-height: 1.4;\r\n}\r\n\r\n.product-spec {\r\n font-size: 13px;\r\n color: #999;\r\n margin-bottom: 10px;\r\n}\r\n\r\n.product-footer {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n}\r\n\r\n.product-price {\r\n font-size: 16px;\r\n color: #ff5000;\r\n font-weight: bold;\r\n}\r\n\r\n.product-quantity {\r\n font-size: 14px;\r\n color: #666;\r\n}\r\n\r\n/* 订单信息 */\r\n.order-info {\r\n padding: 15px;\r\n border-top: 1px solid #f5f5f5;\r\n border-bottom: 1px solid #f5f5f5;\r\n}\r\n\r\n.info-row {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n margin-bottom: 8px;\r\n}\r\n\r\n.info-row:last-child {\r\n margin-bottom: 0;\r\n}\r\n\r\n.info-row.total {\r\n margin-top: 8px;\r\n padding-top: 8px;\r\n border-top: 1px solid #f5f5f5;\r\n}\r\n\r\n.info-label {\r\n font-size: 14px;\r\n color: #666;\r\n}\r\n\r\n.info-value {\r\n font-size: 14px;\r\n color: #333;\r\n}\r\n\r\n.total-price {\r\n font-size: 18px;\r\n color: #ff5000;\r\n font-weight: bold;\r\n}\r\n\r\n/* 订单操作 */\r\n.order-actions {\r\n padding: 15px;\r\n}\r\n\r\n.action-buttons {\r\n display: flex;\r\n justify-content: flex-end;\r\n /* gap: 10px; removed */\r\n}\r\n\r\n.action-btn {\r\n padding: 6px 15px;\r\n border-radius: 15px;\r\n font-size: 13px;\r\n border: 1px solid;\r\n background-color: transparent; /* fixed background: none */\r\n margin-left: 10px; /* alternative to gap */\r\n}\r\n\r\n.action-btn.cancel {\r\n color: #666;\r\n border-color: #ccc;\r\n}\r\n\r\n.action-btn.pay {\r\n color: #ff5000;\r\n border-color: #ff5000;\r\n}\r\n\r\n.action-btn.remind {\r\n color: #666;\r\n border-color: #ccc;\r\n}\r\n\r\n.action-btn.view {\r\n color: #666;\r\n border-color: #ccc;\r\n}\r\n\r\n.action-btn.confirm {\r\n color: #34c759;\r\n border-color: #34c759;\r\n}\r\n\r\n.action-btn.review {\r\n color: #ff9500;\r\n border-color: #ff9500;\r\n}\r\n\r\n.action-btn.repurchase {\r\n color: #ff5000;\r\n border-color: #ff5000;\r\n}\r\n\r\n/* 加载更多 */\r\n.loading-more {\r\n padding: 20px;\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n justify-content: center;\r\n}\r\n\r\n.loading-spinner {\r\n width: 24px;\r\n height: 24px;\r\n border: 2px solid #f0f5ff;\r\n border-top-color: #ff5000;\r\n border-radius: 12px;\r\n margin-bottom: 10px;\r\n}\r\n\r\n.no-more {\r\n text-align: center;\r\n color: #999;\r\n font-size: 13px;\r\n padding: 20px 0;\r\n}\r\n\r\n/* 安全区域 */\r\n.safe-area {\r\n height: 20px;\r\n}\r\n\r\n/* 底部导航占位 */\r\n.tabbar-placeholder {\r\n height: 50px;\r\n background-color: #f5f5f5;\r\n}\r\n\r\n/* 响应式适配 */\r\n@media screen and (max-width: 320px) {\r\n .tab-item {\r\n padding: 0 10px;\r\n margin-right: 5px;\r\n }\r\n \r\n .action-btn {\r\n padding: 6px 10px;\r\n font-size: 12px;\r\n }\r\n}\r\n\r\n@media screen and (min-width: 415px) {\r\n .order-card {\r\n margin-bottom: 15px;\r\n }\r\n}\r\n</style>\r\n",null,null,null,null,null,null],"names":[],"mappings":"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"}