1 line
21 KiB
Plaintext
1 line
21 KiB
Plaintext
{"version":3,"sources":["pages/mall/consumer/share/detail.uvue","pages/main/index.uvue","pages/mall/consumer/product-detail.uvue","uni_modules/ak-req/ak-req.uts"],"sourcesContent":["<template>\n <scroll-view class=\"share-detail-page\" direction=\"vertical\">\n <view class=\"product-section\">\n <image class=\"product-image\" :src=\"shareRecord.product_image != null && shareRecord.product_image.length > 0 ? shareRecord.product_image : defaultImage\" mode=\"aspectFill\" />\n <view class=\"product-info\">\n <text class=\"product-name\">{{ shareRecord.product_name }}</text>\n <text class=\"product-price\">¥{{ shareRecord.product_price }}</text>\n </view>\n </view>\n\n <view class=\"progress-section\">\n <view class=\"progress-header\">\n <text class=\"progress-title\">免单进度</text>\n <text class=\"progress-status\" :class=\"getStatusClass(shareRecord.status)\">{{ getStatusText(shareRecord.status) }}</text>\n </view>\n \n <view class=\"progress-content\">\n <view class=\"progress-bar\">\n <view class=\"progress-fill\" :style=\"{ width: getProgressPercent() + '%' }\"></view>\n </view>\n <view class=\"progress-numbers\">\n <text class=\"current-count\">{{ shareRecord.current_count }}</text>\n <text class=\"divider\">/</text>\n <text class=\"required-count\">{{ shareRecord.required_count }}</text>\n </view>\n </view>\n\n <view class=\"progress-tip\" v-if=\"shareRecord.status === 0\">\n <text class=\"tip-text\">还需 {{ shareRecord.required_count - shareRecord.current_count }} 人购买即可免单</text>\n </view>\n\n <view class=\"reward-info\" v-if=\"shareRecord.status === 1\">\n <text class=\"reward-label\">已获得免单奖励</text>\n <text class=\"reward-amount\">¥{{ shareRecord.reward_amount }}</text>\n </view>\n </view>\n\n <view class=\"share-code-section\">\n <view class=\"code-header\">\n <text class=\"code-title\">分享码</text>\n <text class=\"copy-btn\" @click=\"copyShareCode\">复制</text>\n </view>\n <view class=\"code-content\">\n <text class=\"code-value\">{{ shareRecord.share_code }}</text>\n </view>\n <view class=\"code-tip\">\n <text class=\"tip-text\">将分享码告诉好友,好友下单时填写即可</text>\n </view>\n </view>\n\n <view class=\"buyers-section\">\n <view class=\"section-header\">\n <text class=\"section-title\">购买记录</text>\n <text class=\"section-count\">({{ buyers.length }}人)</text>\n </view>\n\n <view v-if=\"buyersLoading\" class=\"loading-state\">\n <text class=\"loading-text\">加载中...</text>\n </view>\n\n <view v-else-if=\"buyers.length === 0\" class=\"empty-state\">\n <text class=\"empty-text\">暂无购买记录</text>\n </view>\n\n <view v-else class=\"buyer-list\">\n <view class=\"buyer-item\" v-for=\"buyer in buyers\" :key=\"buyer.id\">\n <view class=\"buyer-avatar\">\n <text class=\"avatar-text\">{{ getBuyerInitial(buyer.buyer_name) }}</text>\n </view>\n <view class=\"buyer-info\">\n <text class=\"buyer-name\">{{ maskName(buyer.buyer_name) }}</text>\n <text class=\"buyer-time\">{{ formatTime(buyer.created_at) }}</text>\n </view>\n <view class=\"buyer-count\">\n <text class=\"count-text\">购买 {{ buyer.quantity }} 件</text>\n </view>\n </view>\n </view>\n </view>\n\n <view class=\"time-section\">\n <view class=\"time-item\">\n <text class=\"time-label\">创建时间</text>\n <text class=\"time-value\">{{ formatTime(shareRecord.created_at) }}</text>\n </view>\n <view class=\"time-item\" v-if=\"shareRecord.completed_at\">\n <text class=\"time-label\">完成时间</text>\n <text class=\"time-value\">{{ formatTime(shareRecord.completed_at) }}</text>\n </view>\n </view>\n </scroll-view>\n</template>\n\n<script setup lang=\"uts\">\nimport { ref, onMounted } from 'vue'\nimport { onLoad } from '@dcloudio/uni-app'\nimport { supabaseService } from '@/utils/supabaseService.uts'\n\ntype ShareRecordType = {\n id: string\n product_name: string\n product_image: string | null\n product_price: number\n share_code: string\n required_count: number\n current_count: number\n status: number\n reward_amount: number | null\n created_at: string\n completed_at: string | null\n}\n\ntype BuyerType = {\n id: string\n buyer_id: string\n buyer_name: string\n quantity: number\n created_at: string\n}\n\nconst shareId = ref<string>('')\nconst shareRecord = ref<ShareRecordType>({\n id: '',\n product_name: '',\n product_image: null,\n product_price: 0,\n share_code: '',\n required_count: 4,\n current_count: 0,\n status: 0,\n reward_amount: null,\n created_at: '',\n completed_at: null\n})\n\nconst buyers = ref<BuyerType[]>([])\nconst buyersLoading = ref<boolean>(false)\nconst defaultImage: string = '/static/images/default-product.png'\n\nconst loadShareDetail = async (): Promise<void> => {\n if (shareId.value === '') return\n\n try {\n const result = await supabaseService.getShareDetail(shareId.value)\n \n const recordRaw = result.get('share_record')\n if (recordRaw != null) {\n let recordObj: UTSJSONObject | null = null\n if (recordRaw instanceof UTSJSONObject) {\n recordObj = recordRaw\n } else {\n recordObj = JSON.parse(JSON.stringify(recordRaw)) as UTSJSONObject\n }\n \n const record: ShareRecordType = {\n id: recordObj.getString('id') ?? '',\n product_name: recordObj.getString('product_name') ?? '',\n product_image: recordObj.getString('product_image'),\n product_price: recordObj.getNumber('product_price') ?? 0,\n share_code: recordObj.getString('share_code') ?? '',\n required_count: recordObj.getNumber('required_count') ?? 4,\n current_count: recordObj.getNumber('current_count') ?? 0,\n status: recordObj.getNumber('status') ?? 0,\n reward_amount: recordObj.getNumber('reward_amount'),\n created_at: recordObj.getString('created_at') ?? '',\n completed_at: recordObj.getString('completed_at')\n }\n shareRecord.value = record\n }\n\n const purchasesRaw = result.get('secondary_purchases')\n if (purchasesRaw != null && Array.isArray(purchasesRaw)) {\n const parsed: BuyerType[] = []\n const arr = purchasesRaw as any[]\n \n for (let i = 0; i < arr.length; i++) {\n const item = arr[i]\n let itemObj: UTSJSONObject | null = null\n if (item instanceof UTSJSONObject) {\n itemObj = item\n } else {\n itemObj = JSON.parse(JSON.stringify(item)) as UTSJSONObject\n }\n \n parsed.push({\n id: itemObj.getString('id') ?? '',\n buyer_id: itemObj.getString('buyer_id') ?? '',\n buyer_name: '用户' + (i + 1),\n quantity: itemObj.getNumber('quantity') ?? 1,\n created_at: itemObj.getString('created_at') ?? ''\n })\n }\n \n buyers.value = parsed\n }\n } catch (e) {\n console.error('加载分享详情失败:', e)\n }\n}\n\nconst getProgressPercent = (): number => {\n if (shareRecord.value.required_count <= 0) return 0\n return Math.min(100, Math.round((shareRecord.value.current_count / shareRecord.value.required_count) * 100))\n}\n\nconst getStatusText = (status: number): string => {\n if (status === 0) return '进行中'\n if (status === 1) return '已免单'\n if (status === 2) return '已失效'\n if (status === 3) return '已过期'\n return '未知'\n}\n\nconst getStatusClass = (status: number): string => {\n if (status === 0) return 'status-progress'\n if (status === 1) return 'status-completed'\n if (status === 2) return 'status-invalid'\n if (status === 3) return 'status-expired'\n return ''\n}\n\nconst copyShareCode = (): void => {\n uni.setClipboardData({\n data: shareRecord.value.share_code,\n success: () => {\n uni.showToast({ title: '已复制分享码', icon: 'success' })\n }\n })\n}\n\nconst getBuyerInitial = (name: string): string => {\n if (name.length > 0) {\n return name.charAt(0)\n }\n return '用'\n}\n\nconst maskName = (name: string): string => {\n if (name.length <= 2) {\n return name.charAt(0) + '*'\n }\n return name.charAt(0) + '***' + name.charAt(name.length - 1)\n}\n\nconst formatTime = (timeStr: string | null): string => {\n if (timeStr == null || timeStr === '') return ''\n const date = new Date(timeStr)\n const y = date.getFullYear()\n const m = (date.getMonth() + 1).toString().padStart(2, '0')\n const d = date.getDate().toString().padStart(2, '0')\n const hh = date.getHours().toString().padStart(2, '0')\n const mm = date.getMinutes().toString().padStart(2, '0')\n return `${y}-${m}-${d} ${hh}:${mm}`\n}\n\nonLoad((options) => {\n if (options != null) {\n const idVal = options['id']\n if (idVal != null) {\n shareId.value = idVal as string\n loadShareDetail()\n }\n }\n})\n</script>\n\n<style>\n.share-detail-page {\n flex: 1;\n height: 100%;\n background-color: #f5f5f5;\n}\n\n.product-section {\n display: flex;\n flex-direction: row;\n background-color: white;\n padding: 16px;\n margin-bottom: 8px;\n}\n\n.product-image {\n width: 100px;\n height: 100px;\n border-radius: 8px;\n}\n\n.product-info {\n flex: 1;\n margin-left: 12px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n}\n\n.product-name {\n font-size: 15px;\n color: #333;\n lines: 2;\n margin-bottom: 8px;\n}\n\n.product-price {\n font-size: 18px;\n font-weight: bold;\n color: #ff6b35;\n}\n\n.progress-section {\n background-color: white;\n padding: 16px;\n margin-bottom: 8px;\n}\n\n.progress-header {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 16px;\n}\n\n.progress-title {\n font-size: 16px;\n font-weight: bold;\n color: #333;\n}\n\n.progress-status {\n font-size: 14px;\n padding: 4px 12px;\n border-radius: 12px;\n}\n\n.status-progress {\n background-color: #fff5f0;\n color: #ff6b35;\n}\n\n.status-completed {\n background-color: #f6ffed;\n color: #52c41a;\n}\n\n.status-invalid {\n background-color: #f5f5f5;\n color: #999;\n}\n\n.status-expired {\n background-color: #fff1f0;\n color: #ff4d4f;\n}\n\n.progress-content {\n display: flex;\n flex-direction: row;\n align-items: center;\n}\n\n.progress-bar {\n flex: 1;\n height: 12px;\n background-color: #f0f0f0;\n border-radius: 6px;\n overflow: hidden;\n}\n\n.progress-fill {\n height: 100%;\n background: linear-gradient(90deg, #ff6b35 0%, #ff8c42 100%);\n border-radius: 6px;\n}\n\n.progress-numbers {\n display: flex;\n flex-direction: row;\n align-items: center;\n margin-left: 12px;\n}\n\n.current-count {\n font-size: 24px;\n font-weight: bold;\n color: #ff6b35;\n}\n\n.divider {\n font-size: 16px;\n color: #999;\n margin: 0 4px;\n}\n\n.required-count {\n font-size: 16px;\n color: #999;\n}\n\n.progress-tip {\n margin-top: 12px;\n padding: 10px;\n background-color: #fff5f0;\n border-radius: 8px;\n}\n\n.tip-text {\n font-size: 13px;\n color: #ff6b35;\n}\n\n.reward-info {\n margin-top: 12px;\n padding: 16px;\n background: linear-gradient(135deg, #f6ffed 0%, #e6fffb 100%);\n border-radius: 8px;\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n}\n\n.reward-label {\n font-size: 15px;\n color: #52c41a;\n}\n\n.reward-amount {\n font-size: 24px;\n font-weight: bold;\n color: #52c41a;\n}\n\n.share-code-section {\n background-color: white;\n padding: 16px;\n margin-bottom: 8px;\n}\n\n.code-header {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 12px;\n}\n\n.code-title {\n font-size: 16px;\n font-weight: bold;\n color: #333;\n}\n\n.copy-btn {\n font-size: 14px;\n color: #ff6b35;\n padding: 4px 12px;\n border: 1px solid #ff6b35;\n border-radius: 12px;\n}\n\n.code-content {\n background-color: #f9f9f9;\n padding: 16px;\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.code-value {\n font-size: 28px;\n font-weight: bold;\n color: #333;\n letter-spacing: 8px;\n}\n\n.code-tip {\n margin-top: 12px;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.buyers-section {\n background-color: white;\n margin-bottom: 8px;\n}\n\n.section-header {\n display: flex;\n flex-direction: row;\n align-items: center;\n padding: 16px;\n border-bottom: 1px solid #f0f0f0;\n}\n\n.section-title {\n font-size: 16px;\n font-weight: bold;\n color: #333;\n}\n\n.section-count {\n font-size: 14px;\n color: #999;\n margin-left: 4px;\n}\n\n.loading-state {\n padding: 30px 0;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.loading-text {\n font-size: 14px;\n color: #999;\n}\n\n.empty-state {\n padding: 30px 0;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.empty-text {\n font-size: 14px;\n color: #999;\n}\n\n.buyer-list {\n display: flex;\n flex-direction: column;\n}\n\n.buyer-item {\n display: flex;\n flex-direction: row;\n align-items: center;\n padding: 12px 16px;\n border-bottom: 1px solid #f9f9f9;\n}\n\n.buyer-avatar {\n width: 40px;\n height: 40px;\n border-radius: 20px;\n background-color: #f0f0f0;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.avatar-text {\n font-size: 16px;\n color: #999;\n}\n\n.buyer-info {\n flex: 1;\n margin-left: 12px;\n display: flex;\n flex-direction: column;\n}\n\n.buyer-name {\n font-size: 14px;\n color: #333;\n}\n\n.buyer-time {\n font-size: 12px;\n color: #999;\n margin-top: 2px;\n}\n\n.buyer-count {\n display: flex;\n align-items: center;\n}\n\n.count-text {\n font-size: 13px;\n color: #666;\n}\n\n.time-section {\n background-color: white;\n padding: 16px;\n}\n\n.time-item {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n padding: 8px 0;\n}\n\n.time-label {\n font-size: 14px;\n color: #999;\n}\n\n.time-value {\n font-size: 14px;\n color: #333;\n}\n</style>\n",null,null,null],"names":[],"mappings":"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"} |