update:暂存金币相关

This commit is contained in:
2026-08-19 10:14:17 +08:00
parent d60c32506f
commit 63f3cada0f
36 changed files with 1303 additions and 2 deletions
+91
View File
@@ -0,0 +1,91 @@
<script setup>
import Container from "@/components/Container.vue";
import CoinHeader from "./components/CoinHeader.vue";
import CoinBalancePanel from "./components/CoinBalancePanel.vue";
import CoinQuickMenu from "./components/CoinQuickMenu.vue";
import OfflineExchangeNotice from "./components/OfflineExchangeNotice.vue";
import RewardProductCard from "./components/RewardProductCard.vue";
import { coinSummary, quickMenus, rewardProducts } from "./data";
const menuRoutes = {
rules: "/pages/coin/rules",
earningRecords: "/pages/coin/earning-records",
exchangeRecords: "/pages/coin/exchange-records",
nearbyStores: "/pages/coin/nearby-stores",
};
const onMenuSelect = (menu) => {
const url = menuRoutes[menu.key];
if (!url) {
uni.showToast({
title: "功能开发中",
icon: "none",
});
return;
}
uni.navigateTo({ url });
};
const toProductDetail = () => {
uni.navigateTo({
url: "/pages/coin/product-detail",
});
};
</script>
<template>
<Container :bgType="6" :isHome="true">
<template #header>
<CoinHeader title="我的金币" :subtitle="coinSummary.storeName" />
</template>
<view class="coin-page">
<CoinBalancePanel
:cumulative="coinSummary.cumulative"
:available="coinSummary.available"
/>
<CoinQuickMenu :menus="quickMenus" @select="onMenuSelect" />
<OfflineExchangeNotice />
<view class="reward-section">
<view class="reward-grid">
<view
v-for="product in rewardProducts"
:key="product.id"
class="reward-grid__item"
@click="toProductDetail"
>
<RewardProductCard :product="product" />
</view>
</view>
</view>
</view>
</Container>
</template>
<style scoped>
.coin-page {
width: 100%;
min-height: 100%;
padding-bottom: 40rpx;
box-sizing: border-box;
}
.reward-section {
padding: 20rpx 28rpx 40rpx;
box-sizing: border-box;
}
.reward-grid {
display: flex;
flex-wrap: wrap;
}
.reward-grid__item {
width: 336rpx;
margin-right: 22rpx;
margin-bottom: 20rpx;
}
.reward-grid__item:nth-child(2n) {
margin-right: 0;
}
</style>