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

1 line
35 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/order-detail.uvue","pages/user/change-password.uvue","pages/user/login.uvue","pages/mall/consumer/index.uvue","pages/mall/consumer/settings.uvue","pages/user/center.uvue","uni_modules/ak-req/ak-req.uts"],"sourcesContent":["<!-- 消费者端 - 订单详情页 -->\r\n<template>\r\n <view class=\"order-detail-page\">\r\n <scroll-view scroll-y=\"true\" class=\"scroll-content\">\r\n <!-- 订单状态 -->\r\n <view class=\"order-status\" :class=\"getStatusClass()\">\r\n <view class=\"status-icon\">\r\n <text class=\"status-emoji\">{{ getStatusIcon() }}</text>\r\n </view>\r\n <view class=\"status-info\">\r\n <text class=\"status-text\">{{ getStatusText() }}</text>\r\n <text class=\"status-desc\">{{ getStatusDesc() }}</text>\r\n </view>\r\n </view>\r\n\r\n <!-- 配送信息 -->\r\n <view v-if=\"order != null && (order?.order_status ?? 0) >= 2\" class=\"delivery-info card\">\r\n <view class=\"delivery-header\">\r\n <text class=\"section-title\">配送信息</text>\r\n </view>\r\n <view class=\"delivery-address\">\r\n <view class=\"address-icon\">📍</view>\r\n <view class=\"address-content\">\r\n <view class=\"address-user\">\r\n <text class=\"recipient\">{{ deliveryAddress?.name ?? '' }}</text>\r\n <text class=\"phone\">{{ deliveryAddress?.phone ?? '' }}</text>\r\n </view>\r\n <text class=\"address-detail\">{{ getFullAddress(deliveryAddress as any) }}</text>\r\n </view>\r\n </view>\r\n <!-- 如果有物流信息显示 -->\r\n <view v-if=\"deliveryInfo != null && deliveryInfo?.tracking_no != ''\" class=\"courier-info\">\r\n <text class=\"courier-label\">物流单号:</text>\r\n <text class=\"courier-value\">{{ deliveryInfo?.tracking_no ?? '' }}</text>\r\n <text class=\"copy-btn\" @click=\"copyText(deliveryInfo?.tracking_no ?? '')\">复制</text>\r\n </view>\r\n </view>\r\n\r\n <!-- 商品信息 -->\r\n <view class=\"order-products card\">\r\n <view class=\"shop-header\" @click=\"goToShop\">\r\n <text class=\"shop-icon\">🏪</text>\r\n <text class=\"shop-name\">{{ shopName }}</text>\r\n <text class=\"arrow-right\">></text>\r\n </view>\r\n <view v-for=\"item in orderItems\" :key=\"item.id\" class=\"product-item\" @click=\"goToProduct(item.product_id)\">\r\n <image :src=\"item.image_url != null && item.image_url != '' ? item.image_url : '/static/default-product.png'\" class=\"product-image\" mode=\"aspectFill\"/>\r\n <view class=\"product-info\">\r\n <text class=\"product-name\">{{ item.product_name }}</text>\r\n <text v-if=\"item.specifications\" class=\"product-spec\">{{ getSpecText(item.specifications) }}</text>\r\n <view class=\"price-quantity\">\r\n <text class=\"product-price\">¥{{ item.price }}</text>\r\n <text class=\"product-quantity\">×{{ item.quantity }}</text>\r\n </view>\r\n </view>\r\n </view>\r\n </view>\r\n\r\n <!-- 订单信息 -->\r\n <view class=\"order-info card\" v-if=\"order != null\">\r\n <view class=\"info-row\">\r\n <text class=\"info-label\">订单编号</text>\r\n <text class=\"info-value copyable\" @click=\"copyText(order?.order_no ?? '')\">{{ order?.order_no ?? '' }} <text class=\"copy-icon\">📄</text></text>\r\n </view>\r\n <view class=\"info-row\">\r\n <text class=\"info-label\">下单时间</text>\r\n <text class=\"info-value\">{{ formatTime(order?.created_at ?? '') }}</text>\r\n </view>\r\n <view class=\"info-row\" v-if=\"order?.payment_method != null && order?.payment_method != ''\">\r\n <text class=\"info-label\">支付方式</text>\r\n <text class=\"info-value\">{{ getPaymentMethodText(order?.payment_method as any) }}</text>\r\n </view>\r\n <view class=\"info-row\" v-if=\"order?.paid_at != null && order?.paid_at != ''\">\r\n <text class=\"info-label\">支付时间</text>\r\n <text class=\"info-value\">{{ formatTime(order?.paid_at ?? '') }}</text>\r\n </view>\r\n <view class=\"info-row\" v-if=\"order?.shipped_at != null && order?.shipped_at != ''\">\r\n <text class=\"info-label\">发货时间</text>\r\n <text class=\"info-value\">{{ formatTime(order?.shipped_at ?? '') }}</text>\r\n </view>\r\n <view class=\"info-row\" v-if=\"order?.completed_at != null && order?.completed_at != ''\">\r\n <text class=\"info-label\">完成时间</text>\r\n <text class=\"info-value\">{{ formatTime(order?.completed_at ?? '') }}</text>\r\n </view>\r\n </view>\r\n\r\n <!-- 费用明细 -->\r\n <view class=\"cost-detail card\" v-if=\"order != null\">\r\n <view class=\"cost-row\">\r\n <text class=\"cost-label\">商品总额</text>\r\n <text class=\"cost-value\">¥{{ order?.product_amount ?? 0 }}</text>\r\n </view>\r\n <view class=\"cost-row\">\r\n <text class=\"cost-label\">运费</text>\r\n <text class=\"cost-value\">+¥{{ order?.shipping_fee != null ? order?.shipping_fee : 0 }}</text>\r\n </view>\r\n <view class=\"cost-row\" v-if=\"(order?.discount_amount ?? 0) > 0\">\r\n <text class=\"cost-label\">优惠金额</text>\r\n <text class=\"cost-value\">-¥{{ order?.discount_amount ?? 0 }}</text>\r\n </view>\r\n <view class=\"cost-row total\">\r\n <text class=\"cost-label\">实付金额</text>\r\n <text class=\"cost-value price\">¥{{ order?.total_amount ?? 0 }}</text>\r\n </view>\r\n </view>\r\n </scroll-view>\r\n\r\n <!-- 底部操作 -->\r\n <view class=\"bottom-actions\" v-if=\"order != null\">\r\n <view class=\"action-left\">\r\n <view class=\"service-btn\" @click=\"contactService\">\r\n <text class=\"service-icon\">🎧</text>\r\n <text>客服</text>\r\n </view>\r\n </view>\r\n <view class=\"action-right\">\r\n <button v-if=\"order?.order_status === 1\" class=\"btn primary\" @click=\"payOrder\">立即支付</button>\r\n <button v-if=\"order?.order_status === 1\" class=\"btn\" @click=\"cancelOrder\">取消订单</button>\r\n \r\n <button v-if=\"order?.order_status === 2\" class=\"btn\" @click=\"remindDelivery\">提醒发货</button>\r\n <button v-if=\"order?.order_status === 2\" class=\"btn\" @click=\"applyRefund\">申请退款</button>\r\n \r\n <button v-if=\"order?.order_status === 3\" class=\"btn primary\" @click=\"confirmReceive\">确认收货</button>\r\n <button v-if=\"order?.order_status === 3\" class=\"btn\" @click=\"viewLogistics\">查看物流</button>\r\n \r\n <button v-if=\"order?.order_status === 4\" class=\"btn primary\" @click=\"goToReview\">评价</button>\r\n <button v-if=\"order?.order_status === 4\" class=\"btn\" @click=\"rePurchase\">再次购买</button>\r\n <button v-if=\"order?.order_status === 4\" class=\"btn\" @click=\"applyAfterSales\">申请售后</button>\r\n \r\n <button v-if=\"order?.order_status === 5\" class=\"btn\" @click=\"rePurchase\">重新购买</button>\r\n </view>\r\n </view>\r\n </view>\r\n</template>\r\n\r\n<script setup lang=\"uts\">\r\nimport { ref, onMounted, computed } from 'vue'\r\nimport { onLoad } from '@dcloudio/uni-app'\r\nimport { supabaseService } from '@/utils/supabaseService.uts'\r\nimport supa from '@/components/supadb/aksupainstance.uts'\r\n\r\n// 定义订单类型\r\ntype OrderType = {\r\n\torder_no: string,\r\n\torder_status: number,\r\n\ttotal_amount: number,\r\n\tproduct_amount: number,\r\n\tshipping_fee: number,\r\n\tdiscount_amount: number,\r\n\tpayment_method: string,\r\n\tcreated_at: string,\r\n\tpaid_at: string,\r\n\tshipped_at: string,\r\n\tcompleted_at: string,\r\n\tmerchant_id: string,\r\n\tshipping_address: any\r\n}\r\n\r\ntype OrderItemType = {\r\n\tid: string,\r\n\tproduct_id: string,\r\n\tproduct_name: string,\r\n\timage_url: string,\r\n\tprice: number,\r\n\tquantity: number,\r\n\tspecifications: any\r\n}\r\n\r\ntype AddressType = {\r\n\tname: string,\r\n\tphone: string,\r\n\tprovince: string,\r\n\tcity: string,\r\n\tdistrict: string,\r\n\tdetail: string,\r\n\taddress: string\r\n}\r\n\r\ntype DeliveryInfoType = {\r\n\ttracking_no: string\r\n}\r\n\r\nconst orderId = ref('')\r\nconst order = ref<OrderType | null>(null)\r\nconst orderItems = ref<OrderItemType[]>([])\r\nconst shopName = ref('店铺名称')\r\nconst deliveryAddress = ref<AddressType | null>(null)\r\nconst deliveryInfo = ref<DeliveryInfoType | null>(null)\r\n\r\n// 辅助函数 - 必须在调用前定义\r\nconst getStatusText = (): string => {\r\n const status = order.value?.order_status ?? 0\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 if (status == 6) return '退款中'\r\n if (status == 7) return '已退款'\r\n return '未知状态'\r\n}\r\n\r\nconst getStatusDesc = (): string => {\r\n const status = order.value?.order_status ?? 0\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 if (status == 6) return '售后处理中'\r\n if (status == 7) return '钱款已退回'\r\n return ''\r\n}\r\n\r\nconst getStatusIcon = (): string => {\r\n const status = order.value?.order_status ?? 0\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 return '📝'\r\n}\r\n\r\nconst getStatusClass = (): string => {\r\n const status = order.value?.order_status ?? 0\r\n return `status-${status}`\r\n}\r\n\r\nconst getFullAddress = (addr: any): string => {\r\n if (addr == null) return ''\r\n // 兼容简单的字符串地址和对象地址\r\n if (typeof addr === 'string') return addr\r\n const addrObj = addr as Record<string, any>\r\n if (addrObj['address'] != null) return addrObj['address'] as string\r\n return ((addrObj['province'] as string) ?? '') + ((addrObj['city'] as string) ?? '') + ((addrObj['district'] as string) ?? '') + ((addrObj['detail'] as string) ?? (addrObj['address_detail'] as string) ?? '')\r\n}\r\n\r\nconst getSpecText = (specs: any): string => {\r\n if (specs == null) return ''\r\n if (typeof specs === 'string') return specs\r\n // 简化处理:直接返回字符串形式\r\n return JSON.stringify(specs)\r\n}\r\n\r\nconst formatTime = (iso: string): string => {\r\n if (iso == '') return ''\r\n const d = new Date(iso)\r\n return `${d.getFullYear()}-${d.getMonth()+1}-${d.getDate()} ${d.getHours()}:${d.getMinutes()}`\r\n}\r\n\r\nconst getPaymentMethodText = (method: any): string => {\r\n return '在线支付'\r\n}\r\n\r\nconst copyText = (text: string) => {\r\n if(text == '') return\r\n uni.setClipboardData({\r\n data: text,\r\n success: () => uni.showToast({ title: '已复制' })\r\n })\r\n}\r\n\r\nconst loadShopInfo = async (merchantId: string) => {\r\n const result = await supa\r\n .from('ml_shops')\r\n .select('shop_name')\r\n .eq('merchant_id', merchantId)\r\n .single()\r\n const resultObj = result as Record<string, any>\r\n const resultData = resultObj['data']\r\n if (resultData != null) {\r\n const dataObj = resultData as Record<string, any>\r\n shopName.value = dataObj['shop_name'] as string\r\n }\r\n}\r\n\r\nconst loadOrderDetail = async () => {\r\n uni.showLoading({ title: '加载中' })\r\n try {\r\n const data = await supabaseService.getOrderDetail(orderId.value)\r\n if (data != null) {\r\n const dataObj = data as Record<string, any>\r\n order.value = data as OrderType\r\n const items = dataObj['ml_order_items']\r\n orderItems.value = items != null ? (items as OrderItemType[]) : []\r\n deliveryAddress.value = dataObj['shipping_address'] as AddressType\r\n \r\n // 获取店铺信息\r\n const merchantId = dataObj['merchant_id'] as string\r\n if (merchantId != null && merchantId != '') {\r\n loadShopInfo(merchantId)\r\n }\r\n } else {\r\n uni.showToast({ title: '订单不存在', icon: 'none' })\r\n }\r\n } catch (e) {\r\n uni.showToast({ title: '加载失败', icon: 'none' })\r\n } finally {\r\n uni.hideLoading()\r\n }\r\n}\r\n\r\n// 动作函数\r\nconst contactService = () => {\r\n uni.showActionSheet({\r\n itemList: ['在线客服', '拨打电话'],\r\n success: (res) => {\r\n if (res.tapIndex === 1) {\r\n // 模拟拨打电话\r\n uni.makePhoneCall({ phoneNumber: '400-123-4567' })\r\n } else {\r\n uni.showToast({ title: '连接到了商家客服' })\r\n // 这里可以跳转到聊天页面\r\n }\r\n }\r\n })\r\n}\r\n\r\nconst payOrder = () => {\r\n const totalAmount = order.value?.total_amount ?? 0\r\n uni.navigateTo({\r\n url: `/pages/mall/consumer/payment?orderId=${orderId.value}&amount=${totalAmount}`\r\n })\r\n}\r\n\r\nconst doCancelOrder = async () => {\r\n const result = await supa.from('ml_orders').update({ order_status: 5 }).eq('id', orderId.value)\r\n const resultObj = result as Record<string, any>\r\n const resultError = resultObj['error']\r\n if(resultError == null) {\r\n if (order.value != null) {\r\n order.value.order_status = 5\r\n }\r\n uni.showToast({ title: '订单已取消' })\r\n }\r\n}\r\n\r\nconst cancelOrder = () => {\r\n uni.showModal({\r\n title: '提示',\r\n content: '确定要取消订单吗?',\r\n success: (res) => {\r\n if (res.confirm) {\r\n doCancelOrder()\r\n }\r\n }\r\n })\r\n}\r\n\r\nconst remindDelivery = () => {\r\n uni.showToast({ title: '已提醒商家尽快发货' })\r\n}\r\n\r\nconst viewLogistics = () => {\r\n uni.navigateTo({ url: `/pages/mall/consumer/logistics?orderId=${orderId.value}` })\r\n}\r\n\r\nconst goToReview = () => {\r\n uni.navigateTo({ url: `/pages/mall/consumer/review?orderId=${orderId.value}` })\r\n}\r\n\r\nconst doConfirmReceive = async () => {\r\n const result = await supabaseService.confirmReceipt(orderId.value)\r\n if (result.success) {\r\n if (order.value != null) {\r\n order.value.order_status = 4\r\n }\r\n uni.showToast({ title: '收货成功' })\r\n setTimeout(() => goToReview(), 1500)\r\n } else {\r\n uni.showToast({ title: result.error ?? '失败', icon: 'none' })\r\n }\r\n}\r\n\r\nconst confirmReceive = () => {\r\n uni.showModal({\r\n title: '确认收货',\r\n content: '确保您已收到货物',\r\n success: (res) => {\r\n if (res.confirm) {\r\n doConfirmReceive()\r\n }\r\n }\r\n })\r\n}\r\n\r\nconst rePurchase = async () => {\r\n uni.showLoading({ title: '处理中' })\r\n const orderData = order.value as any\r\n const success = await supabaseService.rePurchase(orderData)\r\n uni.hideLoading()\r\n if (success) {\r\n uni.showToast({ title: '已加入购物车' })\r\n setTimeout(() => {\r\n uni.switchTab({ url: '/pages/mall/consumer/cart' })\r\n }, 1000)\r\n } else {\r\n uni.showToast({ title: '操作失败', icon: 'none' })\r\n }\r\n}\r\n\r\nconst doApplyRefund = async (reason: string) => {\r\n const success = await supabaseService.applyRefund(orderId.value, reason)\r\n if (success) {\r\n if (order.value != null) {\r\n order.value.order_status = 6\r\n }\r\n uni.showToast({ title: '申请已提交' })\r\n } else {\r\n uni.showToast({ title: '提交失败', icon: 'none' })\r\n }\r\n}\r\n\r\nconst applyRefund = () => {\r\n uni.showModal({\r\n title: '申请退款',\r\n editable: true,\r\n placeholderText: '请输入退款原因',\r\n success: (res) => {\r\n if (res.confirm) {\r\n const reason = res.content ?? '用户主动申请'\r\n doApplyRefund(reason)\r\n }\r\n }\r\n })\r\n}\r\n\r\nconst applyAfterSales = () => {\r\n // 售后逻辑类似退款,或者是跳转到专门的售后单页面\r\n applyRefund()\r\n}\r\n\r\nconst goToShop = () => {\r\n // 跳转到店铺详情\r\n // uni.navigateTo({ url: `/pages/mall/shop/index?id=${order.value.merchant_id}` })\r\n uni.showToast({ title: '进入店铺: ' + shopName.value })\r\n}\r\n\r\nconst goToProduct = (pid: string) => {\r\n uni.navigateTo({ url: `/pages/mall/consumer/product-detail?id=${pid}` })\r\n}\r\n\r\n// 生命周期 - 在所有函数定义之后\r\nonLoad((options) => {\r\n const id = options['id']\r\n const orderIdParam = options['orderId']\r\n if (id != null && id != '') {\r\n orderId.value = id as string\r\n loadOrderDetail()\r\n } else if (orderIdParam != null && orderIdParam != '') {\r\n orderId.value = orderIdParam as string\r\n loadOrderDetail()\r\n }\r\n})\r\n\r\n</script>\r\n\r\n<style scoped>\r\n.order-detail-page {\r\n display: flex;\r\n flex-direction: column;\r\n flex: 1;\r\n background-color: #f5f5f5;\r\n}\r\n\r\n.scroll-content {\r\n flex: 1;\r\n padding-bottom: 20px;\r\n}\r\n\r\n.card {\r\n background-color: #ffffff;\r\n margin: 10px;\r\n padding: 15px;\r\n border-radius: 10px;\r\n}\r\n\r\n/* 状态栏 */\r\n.order-status {\r\n background: linear-gradient(to right, #ff9000, #ff5000);\r\n padding: 20px 25px;\r\n color: white;\r\n display: flex;\r\n align-items: center;\r\n}\r\n\r\n.status-emoji {\r\n font-size: 32px;\r\n margin-right: 15px;\r\n}\r\n\r\n.status-text {\r\n font-size: 18px;\r\n font-weight: bold;\r\n}\r\n\r\n.status-desc {\r\n font-size: 12px;\r\n opacity: 0.9;\r\n margin-top: 5px;\r\n}\r\n\r\n/* 配送信息 */\r\n.section-title {\r\n font-weight: bold;\r\n font-size: 16px;\r\n margin-bottom: 10px;\r\n}\r\n\r\n.delivery-address {\r\n display: flex;\r\n align-items: flex-start;\r\n}\r\n\r\n.address-icon {\r\n font-size: 20px;\r\n margin-right: 10px;\r\n color: #666;\r\n}\r\n\r\n.address-user {\r\n margin-bottom: 5px;\r\n font-weight: bold;\r\n font-size: 14px;\r\n}\r\n\r\n.phone {\r\n margin-left: 10px;\r\n color: #666;\r\n font-weight: normal;\r\n}\r\n\r\n.address-detail {\r\n font-size: 13px;\r\n color: #333;\r\n line-height: 1.4;\r\n}\r\n\r\n.courier-info {\r\n margin-top: 10px;\r\n padding-top: 10px;\r\n border-top: 1px solid #eee;\r\n font-size: 13px;\r\n display: flex;\r\n align-items: center;\r\n}\r\n\r\n.copy-btn {\r\n margin-left: 10px;\r\n color: #ff5000;\r\n font-size: 12px;\r\n border: 1px solid #ff5000;\r\n padding: 1px 6px;\r\n border-radius: 10px;\r\n}\r\n\r\n/* 店铺与商品 */\r\n.shop-header {\r\n display: flex;\r\n align-items: center;\r\n margin-bottom: 15px;\r\n padding-bottom: 10px;\r\n border-bottom: 1px solid #f5f5f5;\r\n}\r\n\r\n.shop-icon {\r\n margin-right: 5px;\r\n}\r\n\r\n.shop-name {\r\n font-size: 14px;\r\n font-weight: bold;\r\n flex: 1;\r\n}\r\n\r\n.arrow-right {\r\n color: #999;\r\n}\r\n\r\n.product-item {\r\n display: flex;\r\n margin-bottom: 15px;\r\n}\r\n\r\n.product-item: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: 6px;\r\n margin-right: 10px;\r\n background-color: #f9f9f9;\r\n}\r\n\r\n.product-info {\r\n flex: 1;\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: space-between;\r\n}\r\n\r\n.product-name {\r\n font-size: 14px;\r\n line-height: 1.4;\r\n color: #333;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n lines: 2; /* uvue specific */\r\n}\r\n\r\n.product-spec {\r\n font-size: 12px;\r\n color: #999;\r\n background-color: #f5f5f5;\r\n padding: 2px 5px;\r\n border-radius: 4px;\r\n align-self: flex-start;\r\n margin-top: 5px;\r\n}\r\n\r\n.price-quantity {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n margin-top: 5px;\r\n}\r\n\r\n.product-price {\r\n font-size: 16px;\r\n font-weight: bold;\r\n color: #333;\r\n}\r\n\r\n.product-quantity {\r\n color: #999;\r\n font-size: 12px;\r\n}\r\n\r\n/* 订单详情 */\r\n.info-row {\r\n display: flex;\r\n justify-content: space-between;\r\n margin-bottom: 10px;\r\n font-size: 13px;\r\n}\r\n\r\n.info-label {\r\n color: #999;\r\n}\r\n\r\n.info-value {\r\n color: #333;\r\n}\r\n\r\n.copy-icon {\r\n font-size: 12px;\r\n}\r\n\r\n/* 费用明细 */\r\n.cost-row {\r\n display: flex;\r\n justify-content: space-between;\r\n margin-bottom: 8px;\r\n font-size: 13px;\r\n}\r\n\r\n.cost-row.total {\r\n margin-top: 15px;\r\n padding-top: 15px;\r\n border-top: 1px solid #f5f5f5;\r\n align-items: center;\r\n}\r\n\r\n.cost-value.price {\r\n color: #ff5000;\r\n font-size: 18px;\r\n font-weight: bold;\r\n}\r\n\r\n/* 底部按钮 */\r\n.bottom-actions {\r\n background-color: #ffffff;\r\n padding: 10px 15px;\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n box-shadow: 0 -2px 10px rgba(0,0,0,0.05);\r\n padding-bottom: 30px;\r\n}\r\n\r\n.action-left {\r\n display: flex;\r\n}\r\n\r\n.service-btn {\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n font-size: 10px;\r\n color: #666;\r\n background-color: transparent;\r\n line-height: 1.2;\r\n}\r\n\r\n.service-icon {\r\n font-size: 18px;\r\n margin-bottom: 2px;\r\n}\r\n\r\n.action-right {\r\n display: flex;\r\n}\r\n\r\n/* Add margin to buttons inside action-right for spacing */\r\n.action-right .btn {\r\n margin-left: 10px;\r\n}\r\n\r\n.btn {\r\n margin: 0;\r\n padding: 0 15px;\r\n height: 32px;\r\n line-height: 30px;\r\n font-size: 13px;\r\n border-radius: 16px;\r\n background: #ffffff;\r\n border: 1px solid #cccccc;\r\n color: #666;\r\n}\r\n\r\n.btn.primary {\r\n border-color: #ff5000;\r\n color: #ff5000;\r\n background-color: #fff0ec;\r\n}\r\n\r\n/* 状态样式 */\r\n.status-4 .status-text { /* Completed */ }\r\n</style>",null,null,null,null,null,null],"names":[],"mappings":"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"}