1 line
19 KiB
Plaintext
1 line
19 KiB
Plaintext
{"version":3,"sources":["pages/mall/consumer/points/signin.uvue","pages/main/index.uvue","uni_modules/ak-req/ak-req.uts"],"sourcesContent":["<template>\n <view class=\"signin-page\">\n <view class=\"header\">\n <view class=\"header-content\">\n <text class=\"title\">每日签到</text>\n <text class=\"subtitle\">连续签到可获得额外奖励</text>\n </view>\n <view class=\"points-display\">\n <text class=\"points-label\">当前积分</text>\n <text class=\"points-value\">{{ totalPoints }}</text>\n </view>\n </view>\n\n <view class=\"calendar-section\">\n <view class=\"calendar-header\">\n <view class=\"month-nav\">\n <text class=\"nav-btn\" @click=\"prevMonth\"><</text>\n <text class=\"current-month\">{{ currentYear }}年{{ currentMonth }}月</text>\n <text class=\"nav-btn\" @click=\"nextMonth\">></text>\n </view>\n <view class=\"continuous-info\">\n <text class=\"continuous-label\">已连续签到</text>\n <text class=\"continuous-value\">{{ continuousDays }}天</text>\n </view>\n </view>\n\n <view class=\"calendar-weekdays\">\n <text class=\"weekday\" v-for=\"day in weekdays\" :key=\"day\">{{ day }}</text>\n </view>\n\n <view class=\"calendar-days\">\n <view \n v-for=\"(day, index) in calendarDays\" \n :key=\"index\" \n class=\"day-cell\"\n :class=\"{ \n 'empty': day.day === 0,\n 'signed': day.signed,\n 'today': day.isToday\n }\"\n >\n <text v-if=\"day.day > 0\" class=\"day-number\">{{ day.day }}</text>\n <view v-if=\"day.signed\" class=\"signed-mark\">\n <text class=\"check-icon\">✓</text>\n </view>\n </view>\n </view>\n </view>\n\n <view class=\"signin-btn-section\">\n <button \n class=\"signin-btn\" \n :class=\"{ 'signed-today': signedToday }\"\n :disabled=\"signedToday\"\n @click=\"doSignin\"\n >\n {{ signedToday ? '今日已签到' : '立即签到' }}\n </button>\n </view>\n\n <view class=\"rules-section\">\n <text class=\"section-title\">签到规则</text>\n <view class=\"rule-list\">\n <view class=\"rule-item\">\n <text class=\"rule-icon\">📅</text>\n <text class=\"rule-text\">每日签到可获得5积分</text>\n </view>\n <view class=\"rule-item\">\n <text class=\"rule-icon\">🔥</text>\n <text class=\"rule-text\">连续签到7天额外奖励20积分</text>\n </view>\n <view class=\"rule-item\">\n <text class=\"rule-icon\">🏆</text>\n <text class=\"rule-text\">连续签到30天额外奖励100积分</text>\n </view>\n <view class=\"rule-item\">\n <text class=\"rule-icon\">⚠️</text>\n <text class=\"rule-text\">中断签到后连续天数将重置</text>\n </view>\n </view>\n </view>\n\n <view class=\"signin-popup\" v-if=\"showPopup\" @click=\"closePopup\">\n <view class=\"popup-content\" @click.stop>\n <view class=\"popup-icon\">🎉</view>\n <text class=\"popup-title\">签到成功</text>\n <view class=\"popup-points\">\n <text class=\"popup-points-label\">获得积分</text>\n <text class=\"popup-points-value\">+{{ popupPoints }}</text>\n </view>\n <view class=\"popup-bonus\" v-if=\"popupBonus > 0\">\n <text class=\"popup-bonus-label\">连续签到奖励</text>\n <text class=\"popup-bonus-value\">+{{ popupBonus }}</text>\n </view>\n <view class=\"popup-continuous\">\n <text>已连续签到 {{ popupContinuousDays }} 天</text>\n </view>\n <button class=\"popup-btn\" @click=\"closePopup\">确定</button>\n </view>\n </view>\n </view>\n</template>\n\n<script setup lang=\"uts\">\nimport { ref, onMounted, computed } from 'vue'\nimport { supabaseService } from '@/utils/supabaseService.uts'\n\ntype CalendarDay = {\n day: number\n signed: boolean\n isToday: boolean\n}\n\nconst totalPoints = ref<number>(0)\nconst continuousDays = ref<number>(0)\nconst signedToday = ref<boolean>(false)\nconst currentYear = ref<number>(new Date().getFullYear())\nconst currentMonth = ref<number>(new Date().getMonth() + 1)\nconst signinRecords = ref<string[]>([])\nconst showPopup = ref<boolean>(false)\nconst popupPoints = ref<number>(0)\nconst popupBonus = ref<number>(0)\nconst popupContinuousDays = ref<number>(0)\n\nconst weekdays: string[] = ['日', '一', '二', '三', '四', '五', '六']\n\nconst calendarDays = computed((): CalendarDay[] => {\n const days: CalendarDay[] = []\n const year = currentYear.value\n const month = currentMonth.value\n \n const firstDay = new Date(year, month - 1, 1).getDay()\n const daysInMonth = new Date(year, month, 0).getDate()\n \n const today = new Date()\n const todayStr = today.toISOString().split('T')[0]\n \n for (let i = 0; i < firstDay; i++) {\n days.push({ day: 0, signed: false, isToday: false })\n }\n \n for (let i = 1; i <= daysInMonth; i++) {\n const dateStr = `${year}-${month.toString().padStart(2, '0')}-${i.toString().padStart(2, '0')}`\n const isToday = dateStr === todayStr\n const signed = signinRecords.value.includes(dateStr)\n days.push({ day: i, signed, isToday })\n }\n \n return days\n})\n\nconst loadSigninData = async (): Promise<void> => {\n uni.showLoading({ title: '加载中...' })\n \n try {\n const points = await supabaseService.getUserPoints()\n totalPoints.value = points\n \n const status = await supabaseService.getTodaySigninStatus()\n signedToday.value = status.getBoolean('signed') ?? false\n continuousDays.value = status.getNumber('continuous_days') ?? 0\n \n const records = await supabaseService.getSigninRecords(currentYear.value, currentMonth.value)\n const dates: string[] = []\n for (let i = 0; i < records.length; i++) {\n const record = records[i]\n let dateStr = ''\n if (record instanceof UTSJSONObject) {\n dateStr = record.getString('signin_date') ?? ''\n } else {\n const rObj = JSON.parse(JSON.stringify(record)) as UTSJSONObject\n dateStr = rObj.getString('signin_date') ?? ''\n }\n if (dateStr !== '') {\n dates.push(dateStr)\n }\n }\n signinRecords.value = dates\n } catch (e) {\n console.error('加载签到数据失败:', e)\n } finally {\n uni.hideLoading()\n }\n}\n\nconst doSignin = async (): Promise<void> => {\n if (signedToday.value) return\n \n uni.showLoading({ title: '签到中...' })\n \n try {\n const result = await supabaseService.signin()\n \n if (result.getBoolean('success') === true) {\n popupPoints.value = result.getNumber('points') ?? 0\n popupBonus.value = result.getNumber('bonus_points') ?? 0\n popupContinuousDays.value = result.getNumber('continuous_days') ?? 0\n totalPoints.value = result.getNumber('total_points') ?? 0\n continuousDays.value = popupContinuousDays.value\n signedToday.value = true\n \n const today = new Date().toISOString().split('T')[0]\n signinRecords.value.push(today)\n \n showPopup.value = true\n } else {\n const message = result.getString('message') ?? '签到失败'\n uni.showToast({ title: message, icon: 'none' })\n }\n } catch (e) {\n console.error('签到异常:', e)\n uni.showToast({ title: '签到异常', icon: 'none' })\n } finally {\n uni.hideLoading()\n }\n}\n\nconst closePopup = (): void => {\n showPopup.value = false\n}\n\nconst prevMonth = (): void => {\n if (currentMonth.value === 1) {\n currentYear.value--\n currentMonth.value = 12\n } else {\n currentMonth.value--\n }\n loadSigninData()\n}\n\nconst nextMonth = (): void => {\n if (currentMonth.value === 12) {\n currentYear.value++\n currentMonth.value = 1\n } else {\n currentMonth.value++\n }\n loadSigninData()\n}\n\nonMounted(() => {\n loadSigninData()\n})\n</script>\n\n<style>\n.signin-page {\n flex: 1;\n background-color: #f5f5f5;\n}\n\n.header {\n background: linear-gradient(135deg, #ff6b35 0%, #ff8c42 100%);\n padding: 20px 16px;\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n}\n\n.header-content {\n display: flex;\n flex-direction: column;\n}\n\n.title {\n font-size: 24px;\n font-weight: bold;\n color: white;\n}\n\n.subtitle {\n font-size: 12px;\n color: rgba(255, 255, 255, 0.8);\n margin-top: 4px;\n}\n\n.points-display {\n background-color: rgba(255, 255, 255, 0.2);\n border-radius: 12px;\n padding: 10px 16px;\n display: flex;\n flex-direction: column;\n align-items: center;\n}\n\n.points-label {\n font-size: 12px;\n color: rgba(255, 255, 255, 0.8);\n}\n\n.points-value {\n font-size: 24px;\n font-weight: bold;\n color: white;\n}\n\n.calendar-section {\n background-color: white;\n margin: 12px;\n border-radius: 12px;\n padding: 16px;\n}\n\n.calendar-header {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 16px;\n}\n\n.month-nav {\n display: flex;\n flex-direction: row;\n align-items: center;\n}\n\n.nav-btn {\n font-size: 18px;\n color: #666;\n padding: 4px 12px;\n}\n\n.current-month {\n font-size: 16px;\n font-weight: bold;\n color: #333;\n margin: 0 8px;\n}\n\n.continuous-info {\n display: flex;\n flex-direction: row;\n align-items: center;\n background-color: #fff5f0;\n padding: 4px 12px;\n border-radius: 16px;\n}\n\n.continuous-label {\n font-size: 12px;\n color: #ff6b35;\n}\n\n.continuous-value {\n font-size: 14px;\n font-weight: bold;\n color: #ff6b35;\n margin-left: 4px;\n}\n\n.calendar-weekdays {\n display: flex;\n flex-direction: row;\n margin-bottom: 8px;\n}\n\n.weekday {\n flex: 1;\n text-align: center;\n font-size: 12px;\n color: #999;\n padding: 8px 0;\n}\n\n.calendar-days {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n}\n\n.day-cell {\n width: 14.28%;\n height: 45px;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n position: relative;\n}\n\n.day-cell.empty {\n background-color: transparent;\n}\n\n.day-number {\n font-size: 14px;\n color: #333;\n}\n\n.day-cell.today .day-number {\n color: #ff6b35;\n font-weight: bold;\n}\n\n.day-cell.signed {\n background-color: #fff5f0;\n border-radius: 8px;\n}\n\n.signed-mark {\n position: absolute;\n bottom: 2px;\n width: 16px;\n height: 16px;\n background-color: #ff6b35;\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.check-icon {\n font-size: 10px;\n color: white;\n}\n\n.signin-btn-section {\n padding: 16px;\n}\n\n.signin-btn {\n background: linear-gradient(135deg, #ff6b35 0%, #ff8c42 100%);\n color: white;\n font-size: 18px;\n font-weight: bold;\n border-radius: 24px;\n height: 48px;\n line-height: 48px;\n}\n\n.signin-btn.signed-today {\n background: #ccc;\n}\n\n.rules-section {\n background-color: white;\n margin: 12px;\n border-radius: 12px;\n padding: 16px;\n}\n\n.section-title {\n font-size: 16px;\n font-weight: bold;\n color: #333;\n margin-bottom: 12px;\n}\n\n.rule-list {\n display: flex;\n flex-direction: column;\n}\n\n.rule-item {\n display: flex;\n flex-direction: row;\n align-items: center;\n padding: 8px 0;\n}\n\n.rule-icon {\n font-size: 16px;\n margin-right: 8px;\n}\n\n.rule-text {\n font-size: 14px;\n color: #666;\n}\n\n.signin-popup {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: rgba(0, 0, 0, 0.5);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 1000;\n}\n\n.popup-content {\n background-color: white;\n border-radius: 16px;\n padding: 24px;\n width: 280px;\n display: flex;\n flex-direction: column;\n align-items: center;\n}\n\n.popup-icon {\n font-size: 48px;\n margin-bottom: 12px;\n}\n\n.popup-title {\n font-size: 20px;\n font-weight: bold;\n color: #333;\n margin-bottom: 16px;\n}\n\n.popup-points {\n display: flex;\n flex-direction: row;\n align-items: center;\n margin-bottom: 8px;\n}\n\n.popup-points-label {\n font-size: 14px;\n color: #666;\n}\n\n.popup-points-value {\n font-size: 24px;\n font-weight: bold;\n color: #ff6b35;\n margin-left: 8px;\n}\n\n.popup-bonus {\n display: flex;\n flex-direction: row;\n align-items: center;\n margin-bottom: 8px;\n}\n\n.popup-bonus-label {\n font-size: 14px;\n color: #666;\n}\n\n.popup-bonus-value {\n font-size: 20px;\n font-weight: bold;\n color: #ff6b35;\n margin-left: 8px;\n}\n\n.popup-continuous {\n font-size: 14px;\n color: #999;\n margin-bottom: 16px;\n}\n\n.popup-btn {\n background-color: #ff6b35;\n color: white;\n font-size: 16px;\n border-radius: 20px;\n width: 100%;\n height: 40px;\n line-height: 40px;\n}\n</style>\n",null,null],"names":[],"mappings":"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"} |