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

1 line
10 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/message-detail.uvue","pages/user/login.uvue","pages/main/index.uvue","pages/mall/consumer/product-detail.uvue","uni_modules/ak-req/ak-req.uts"],"sourcesContent":["<template>\n <scroll-view class=\"message-detail-page\" scroll-y>\n <view class=\"message-header\">\n <text class=\"message-title\">{{ message.title }}</text>\n <text class=\"message-time\">{{ formatTime(message.created_at) }}</text>\n </view>\n\n <view class=\"message-content\">\n <text class=\"content-text\">{{ message.content }}</text>\n </view>\n\n <view v-if=\"message.link_url\" class=\"message-action\" @click=\"goToLink\">\n <text class=\"action-text\">查看详情</text>\n <text class=\"action-arrow\"></text>\n </view>\n\n <view v-if=\"message.icon_url\" class=\"message-image\">\n <image :src=\"message.icon_url\" mode=\"widthFix\" class=\"icon-image\" />\n </view>\n\n <view v-if=\"extraInfo.length > 0\" class=\"extra-info\">\n <view v-for=\"(item, index) in extraInfo\" :key=\"index\" class=\"extra-item\">\n <text class=\"extra-label\">{{ item.label }}</text>\n <text class=\"extra-value\">{{ item.value }}</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 MessageType = {\n id: string\n type: string\n title: string\n content: string\n icon_url: string | null\n link_url: string | null\n extra_data: any | null\n created_at: string\n}\n\ntype ExtraInfoItem = {\n label: string\n value: string\n}\n\nconst message = ref<MessageType>({\n id: '',\n type: '',\n title: '',\n content: '',\n icon_url: null,\n link_url: null,\n extra_data: null,\n created_at: ''\n})\n\nconst extraInfo = ref<ExtraInfoItem[]>([])\n\nconst formatLabel = (key: string): string => {\n if (key === 'share_code') return '分享码'\n if (key === 'product_name') return '商品名称'\n if (key === 'reward_amount') return '奖励金额'\n if (key === 'order_no') return '订单号'\n if (key === 'buyer_name') return '购买者'\n if (key === 'quantity') return '数量'\n return key\n}\n\nconst parseExtraData = (data: any) => {\n extraInfo.value = []\n \n if (data == null) return\n \n try {\n let dataObj: UTSJSONObject | null = null\n if (typeof data === 'string') {\n const parsed = JSON.parse(data as string)\n if (parsed != null) {\n dataObj = parsed as UTSJSONObject\n }\n } else if (data instanceof UTSJSONObject) {\n dataObj = data\n } else {\n dataObj = JSON.parse(JSON.stringify(data)) as UTSJSONObject\n }\n \n if (dataObj != null) {\n const keys = UTSJSONObject.keys(dataObj)\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i] as string\n const value = dataObj.get(key)\n if (value != null) {\n const item: ExtraInfoItem = {\n label: formatLabel(key),\n value: `${value}`\n }\n extraInfo.value.push(item)\n }\n }\n }\n } catch (e) {\n console.error('解析extra_data失败:', e)\n }\n}\n\nconst loadMessage = async (id: string) => {\n try {\n const notifications = await supabaseService.getUserNotifications(null)\n const found = notifications.find(n => n.id === id)\n \n if (found != null) {\n const extraData = found.extra_data\n const msg: MessageType = {\n id: found.id,\n type: found.type,\n title: found.title,\n content: found.content,\n icon_url: found.icon_url,\n link_url: found.link_url,\n extra_data: extraData,\n created_at: found.created_at ?? ''\n }\n message.value = msg\n\n if (extraData != null) {\n parseExtraData(extraData)\n }\n }\n } catch (e) {\n console.error('加载消息失败:', e)\n }\n}\n\nconst formatTime = (timeStr: string): 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\nconst goToLink = () => {\n const url = message.value.link_url\n if (url != null && url !== '') {\n if (url.startsWith('/pages/')) {\n uni.navigateTo({ url: url })\n } else {\n uni.setClipboardData({\n data: url,\n success: () => {\n uni.showToast({ title: '链接已复制', icon: 'success' })\n }\n })\n }\n }\n}\n\nonLoad((options) => {\n if (options != null) {\n const idVal = options['id']\n if (idVal != null) {\n loadMessage(idVal as string)\n }\n }\n})\n</script>\n\n<style>\n.message-detail-page {\n flex: 1;\n height: 100%;\n background-color: #f5f5f5;\n}\n\n.message-header {\n background-color: white;\n padding: 20px 16px;\n margin-bottom: 8px;\n}\n\n.message-title {\n font-size: 18px;\n font-weight: bold;\n color: #333;\n display: flex;\n margin-bottom: 10px;\n}\n\n.message-time {\n font-size: 13px;\n color: #999;\n}\n\n.message-content {\n background-color: white;\n padding: 16px;\n margin-bottom: 8px;\n}\n\n.content-text {\n font-size: 15px;\n color: #333;\n line-height: 1.8;\n}\n\n.message-action {\n background-color: white;\n padding: 16px;\n margin-bottom: 8px;\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n}\n\n.action-text {\n font-size: 15px;\n color: #ff6b35;\n}\n\n.action-arrow {\n font-size: 18px;\n color: #ccc;\n}\n\n.message-image {\n background-color: white;\n padding: 16px;\n margin-bottom: 8px;\n}\n\n.icon-image {\n width: 100%;\n border-radius: 8px;\n}\n\n.extra-info {\n background-color: white;\n padding: 16px;\n}\n\n.extra-item {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n padding: 10px 0;\n border-bottom: 1px solid #f5f5f5;\n}\n\n.extra-item:last-child {\n border-bottom: none;\n}\n\n.extra-label {\n font-size: 14px;\n color: #666;\n}\n\n.extra-value {\n font-size: 14px;\n color: #333;\n}\n</style>\n",null,null,null,null],"names":[],"mappings":"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"}