diff --git a/frontend/manifest.json b/frontend/manifest.json
index 0e56f52..52903b1 100644
--- a/frontend/manifest.json
+++ b/frontend/manifest.json
@@ -2,7 +2,7 @@
"name" : "TopFans",
"appid" : "__UNI__F199FF4",
"description" : "",
- "versionName" : "1.0.2",
+ "versionName" : "1.0.3",
"versionCode" : 100,
"transformPx" : false,
/* 5+App特有相关 */
@@ -69,6 +69,12 @@
"apikey" : "l2FgEjJBl96gUsAEQ6nf0asA",
"secretkey" : "1i5Aj8FwL3i11LYPeXMRwRWycictWq2X"
}
+ },
+ "push" : {
+ "unipush" : {
+ "version" : "2",
+ "offline" : false
+ }
}
},
"icons" : {
diff --git a/frontend/pages/components/AssetSelector.vue b/frontend/pages/components/AssetSelector.vue
index 21b47fb..6ad2b49 100644
--- a/frontend/pages/components/AssetSelector.vue
+++ b/frontend/pages/components/AssetSelector.vue
@@ -61,9 +61,12 @@
:src="item.coverUrl || '/static/nft/collection.png'"
mode="aspectFill"
/>
-
- {{ item.display_status === 1 ? '已展示' : '待展示' }}
-
+
+ 已展示
+
+
+ 待展示
+
{{ item.name }}
@@ -89,9 +92,12 @@
:src="item.coverUrl || '/static/nft/collection.png'"
mode="aspectFill"
/>
-
- {{ item.display_status === 1 ? '已展示' : '待展示' }}
-
+
+ 已展示
+
+
+ 待展示
+
{{ item.name }}
@@ -514,25 +520,49 @@ const handleTouchEnd = (e) => {
display: block;
}
-.status-badge {
+.status-overlay {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 192rpx;
+ height: 224rpx;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ border-radius: 16rpx;
+ z-index: 1;
+}
+
+.status-text-center {
+ font-size: 24rpx;
+ color: #fff;
+ font-weight: bold;
+ text-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.8);
+ background: linear-gradient(to bottom right,
+ #F0E4B1 0%,
+ #F08399 50%,
+ #B94E73 100%
+ );
+ border-radius: 24rpx;
+ box-shadow:
+ 0 4rpx 12rpx rgba(255, 143, 158, 0.2),
+ 0 2rpx 6rpx rgba(255, 143, 158, 0.15),
+ inset 0 2rpx 4rpx rgba(255, 255, 255, 0.4),
+ inset 0 -2rpx 4rpx rgba(0, 0, 0, 0.05);
+ padding: 16rpx;
+}
+
+.status-overlay-pending {
position: absolute;
top: 8rpx;
right: 8rpx;
+ background: rgba(0, 0, 0, 0.6);
border-radius: 8rpx;
padding: 4rpx 8rpx;
z-index: 1;
}
-.badge-active {
- background: linear-gradient(135deg, #FFD700, #FFA500);
- box-shadow: 0 0 12rpx rgba(255, 215, 0, 0.6);
-}
-
-.badge-pending {
- background: rgba(0, 0, 0, 0.6);
-}
-
-.status-text {
+.status-text-pending {
font-size: 18rpx;
color: #fff;
font-weight: bold;
diff --git a/frontend/pages/components/CastloveContent.vue b/frontend/pages/components/CastloveContent.vue
index 56ebdbf..3daba73 100644
--- a/frontend/pages/components/CastloveContent.vue
+++ b/frontend/pages/components/CastloveContent.vue
@@ -19,7 +19,7 @@
-
+
{{ banner.title }}
@@ -101,13 +101,13 @@ const backButtonTop = computed(() => {
// 轮播图数据
const bannerList = ref([
{
- image_url: '/static/sucai/image-01.png',
+ image_url: '/static/sucai/image-05.png',
title: '这河非遇美学宇宙联名',
link_type: 'activity',
link_value: '1'
},
{
- image_url: '/static/sucai/image-02.png',
+ image_url: '/static/sucai/image-06.png',
title: '限时创作活动',
link_type: 'activity',
link_value: '2'
@@ -125,7 +125,7 @@ const mainTabs = ref([
{
name: '星卡',
type: 'star_card',
- icon: '/static/sucai/image-04.png'
+ icon: '/static/sucai/image-03.png'
},
{
name: '吧唧',
diff --git a/frontend/pages/components/Header.vue b/frontend/pages/components/Header.vue
index f1898b4..f4a2068 100644
--- a/frontend/pages/components/Header.vue
+++ b/frontend/pages/components/Header.vue
@@ -412,7 +412,7 @@ defineExpose({
left: 0;
right: 0;
width: 100%;
- height: 80rpx;
+ height: 144rpx;
display: flex;
align-items: center;
justify-content: space-between;
@@ -505,7 +505,7 @@ defineExpose({
.task-text-label {
font-size: 16rpx;
color: #fff;
- text-shadow: 1rpx 1rpx 2rpx rgba(255, 255, 255, 0.5);
+ text-shadow: 1rpx 1rpx 2rpx rgba(0, 0, 0, 0.9);
margin-top: 32rpx;
}
@@ -588,7 +588,7 @@ defineExpose({
color: #FFFFFF;
margin-bottom: 2rpx;
margin-left: 28rpx;
- text-shadow: 0 2rpx 4rpx rgba(0, 0, 0, 0.5);
+ text-shadow: 0 2rpx 4rpx rgba(0, 0, 0, 0.9);
}
/* --- 下层:渐变背景 --- */
diff --git a/frontend/pages/components/StarCityContent.vue b/frontend/pages/components/StarCityContent.vue
index d4ae7a5..7296c50 100644
--- a/frontend/pages/components/StarCityContent.vue
+++ b/frontend/pages/components/StarCityContent.vue
@@ -113,8 +113,8 @@ const isSharedBgTab = computed(() => [0, 1, 2, 3].includes(activeSubTab.value));
flex-direction: row;
justify-content: space-around;
align-items: center;
- padding-top: 160rpx;
- padding-bottom: 0;
+ padding-top: 256rpx;
+ padding-bottom: 48rpx;
padding-left: 20rpx;
padding-right: 20rpx;
height: 240rpx;
diff --git a/frontend/pages/components/StarbookContent.vue b/frontend/pages/components/StarbookContent.vue
index b0e28ae..4b7ec62 100644
--- a/frontend/pages/components/StarbookContent.vue
+++ b/frontend/pages/components/StarbookContent.vue
@@ -12,7 +12,7 @@
:class="{ active: currentType === 'regular' }"
@click="switchType('regular')"
>
- 原创
+ 自创
-
+
diff --git a/frontend/pages/profile/myWorks.vue b/frontend/pages/profile/myWorks.vue
index e0bb400..b447fa5 100644
--- a/frontend/pages/profile/myWorks.vue
+++ b/frontend/pages/profile/myWorks.vue
@@ -415,6 +415,7 @@ onShow(() => {
.nav-settings-text {
font-size: 24rpx;
color: #fff;
+ text-shadow: 0 2rpx 4rpx rgba(0, 0, 0, 0.8);
font-weight: 400;
}
@@ -463,6 +464,7 @@ onShow(() => {
z-index: 1;
font-size: 26rpx;
color: #fff;
+ text-shadow: 0 2rpx 4rpx rgba(0, 0, 0, 0.9);
font-weight: 600;
padding: 0 28rpx;
}
@@ -625,7 +627,7 @@ onShow(() => {
display: flex;
align-items: center;
justify-content: center;
- padding: 80rpx 0;
+ /* padding: 80rpx 0; */
gap: 24rpx;
}
@@ -790,9 +792,10 @@ onShow(() => {
.liked-status {
font-size: 28rpx;
color: #fff;
+ text-shadow: 0 2rpx 4rpx rgba(0, 0, 0, 0.7);
font-weight: 600;
white-space: nowrap;
- overflow: hidden;
+ /* overflow: hidden; */
text-overflow: ellipsis;
margin-bottom: 16rpx;
}
@@ -806,6 +809,7 @@ onShow(() => {
.liked-score {
font-size: 26rpx;
color: #fff;
+ text-shadow: 0 2rpx 4rpx rgba(0, 0, 0, 0.7);
font-weight: 700;
margin-right: 8rpx;
}
diff --git a/frontend/pages/profile/profile.vue b/frontend/pages/profile/profile.vue
index add0537..06bbce1 100644
--- a/frontend/pages/profile/profile.vue
+++ b/frontend/pages/profile/profile.vue
@@ -55,7 +55,7 @@
我的资产
-
+
我的展馆
@@ -294,7 +294,7 @@ const showOldPassword = ref(false);
// 新手引导
const showGuideListModal = ref(false);
-const guideClaimableCount = computed(() => getClaimableRewardCount());
+// const guideClaimableCount = computed(() => getClaimableRewardCount());
const showNewPassword = ref(false);
// 添加身份弹窗
@@ -450,10 +450,10 @@ const copyAddress = () => {
// 处理资产按钮点击
const handleAssetClick = (type) => {
- if (type === 'exhibition') {
+ if (type === 'myWorks') {
// 跳转到展馆页面
uni.navigateTo({
- url: '/pages/exhibition/exhibition'
+ url: '/pages/profile/myWorks'
});
} else if (type === 'starbook') {
// 跳转到星册页面
diff --git a/frontend/pages/square/components/ContentTabs.vue b/frontend/pages/square/components/ContentTabs.vue
index 4abeafa..be1ffe2 100644
--- a/frontend/pages/square/components/ContentTabs.vue
+++ b/frontend/pages/square/components/ContentTabs.vue
@@ -15,7 +15,7 @@
mode="scaleToFill"
/>
-
+
{{ tab.emoji }}
defineProps({
- modelValue: { type: String, default: 'new' }
+ modelValue: { type: String, default: 'random' }
})
defineEmits(['update:modelValue'])
const tabs = [
- { key: 'hot', label: '人气王者', emoji: null, icon: '/static/square/rementubiao.png', iconWidth: 104, iconHeight: 104 },
- { key: 'new', label: '新鲜上架', emoji: null, icon: '/static/square/baji.png', iconWidth: 80, iconHeight: 80 },
- { key: 'potential', label: '潜力之星', emoji: null, icon: '/static/square/xingka.png', iconWidth: 80, iconHeight: 80 },
- { key: 'random', label: '随机寻宝', emoji: null, icon: '/static/square/haibao.png', iconWidth: 96, iconHeight: 96 },
+ { key: 'hot', label: '人气王者', emoji: null, icon: '/static/square/3.png',iconWidth: 80, iconHeight: 80 },
+ { key: 'new', label: '新鲜上架', emoji: null, icon: '/static/square/2.png',iconWidth: 80, iconHeight: 80 },
+ { key: 'potential', label: '潜力之星', emoji: null, icon: '/static/square/1.png',iconWidth: 96, iconHeight: 96 },
+ { key: 'random', label: '随机寻宝', emoji: null, icon: '/static/square/4.png',iconWidth: 80, iconHeight: 80 },
]
@@ -97,9 +97,9 @@ const tabs = [
.tab-left {
position: absolute;
z-index: 1;
- left: -10rpx;
- top: 50%;
- transform: translateY(-50%);
+ left: -16rpx;
+ top: 35%;
+ transform: translateY(-50%) rotateZ(8deg);
width: 80rpx;
height: 80rpx;
display: flex;
@@ -110,8 +110,7 @@ const tabs = [
/* 第一个 tab 图标单独样式 */
.tab-left-first {
- top: 40%;
- transform: translateY(-70%);
+ top: 23%;
}
@@ -133,11 +132,13 @@ const tabs = [
.tab-label {
position: relative;
z-index: 1;
- font-size: 20rpx;
+ font-size: 18rpx;
font-weight: 600;
- color: rgba(255, 255, 255, 0.65);
+ color: rgba(255, 255, 255, 0.95);
+ /* color: #ffffff; */
+ text-shadow: 0 2rpx 4rpx rgba(0, 0, 0, 0.8);
white-space: nowrap;
- margin-left: 60rpx;
+ margin-left: 48rpx;
}
.tab-item.active .tab-label {
diff --git a/frontend/pages/square/config/mockData.js b/frontend/pages/square/config/mockData.js
index 4fb1747..3987663 100644
--- a/frontend/pages/square/config/mockData.js
+++ b/frontend/pages/square/config/mockData.js
@@ -37,36 +37,36 @@ export const SPAN_CONFIG = {
// 人气王者:高点赞为主,大卡片多
hot: {
thresholds: [
- { max: 30000, span: 1 }, // 3w 以下 → span 1
- { max: 60000, span: 2 }, // 3w-6w → span 2
- { max: 100000, span: 3 }, // 6w-10w → span 3
- { max: Infinity, span: 4 }, // 10w+ → span 4
+ { max: 300, span: 1 }, // 300 以下 → span 1
+ { max: 600, span: 2 }, // 300-600 → span 2
+ { max: 1000, span: 3 }, // 600-1000 → span 3
+ { max: Infinity, span: 4 }, // 1000+ → span 4
]
},
// 新鲜上架:低点赞,小卡片为主
new: {
thresholds: [
- { max: 200, span: 1 }, // 200 以下 → span 1
- { max: 500, span: 2 }, // 200-500 → span 2
- { max: Infinity, span: 3 },// 500+ → span 3
+ { max: 2, span: 1 }, // 2 以下 → span 1
+ { max: 5, span: 2 }, // 2-5 → span 2
+ { max: Infinity, span: 3 },// 5+ → span 3
]
},
// 潜力之星:中等点赞,中小卡片
potential: {
thresholds: [
- { max: 5000, span: 1 }, // 5k 以下 → span 1
- { max: 10000, span: 2 }, // 5k-1w → span 2
- { max: 15000, span: 3 }, // 1w-1.5w → span 3
- { max: Infinity, span: 4 },// 1.5w+ → span 4
+ { max: 50, span: 1 }, // 50 以下 → span 1
+ { max: 100, span: 2 }, // 50-100 → span 2
+ { max: 150, span: 3 }, // 100-150 → span 3
+ { max: Infinity, span: 4 },// 150+ → span 4
]
},
// 随机寻宝:混合
random: {
thresholds: [
- { max: 10000, span: 1 }, // 1w 以下 → span 1
- { max: 30000, span: 2 }, // 1w-3w → span 2
- { max: 60000, span: 3 }, // 3w-6w → span 3
- { max: Infinity, span: 4 },// 6w+ → span 4
+ { max: 100, span: 1 }, // 100 以下 → span 1
+ { max: 300, span: 2 }, // 100-300 → span 2
+ { max: 600, span: 3 }, // 300-600 → span 3
+ { max: Infinity, span: 4 },// 600+ → span 4
]
},
}
@@ -84,17 +84,17 @@ export function calcSpan(category, likes) {
// span 由 WaterfallGrid._span() 根据 like_count 计算
export const MOCK_RENQIWANG = {
items: [
- { asset_id: 10001, name: '星光璀璨', cover_url: MOCK_IMAGES[0], like_count: 125800, owner_nickname: '小甜心' },
- { asset_id: 10002, name: '爱的绽放', cover_url: MOCK_IMAGES[1], like_count: 98600, owner_nickname: '爱豆粉' },
- { asset_id: 10003, name: '温暖守护', cover_url: MOCK_IMAGES[2], like_count: 87200, owner_nickname: '星星控' },
- { asset_id: 10004, name: '甜蜜暴击', cover_url: MOCK_IMAGES[3], like_count: 76800, owner_nickname: '追星族' },
- { asset_id: 10005, name: '闪耀舞台', cover_url: MOCK_IMAGES[4], like_count: 65400, owner_nickname: '小太阳' },
- { asset_id: 10006, name: '为你疯狂', cover_url: MOCK_IMAGES[5], like_count: 58900, owner_nickname: '小可爱' },
- { asset_id: 10007, name: '心动时刻', cover_url: MOCK_IMAGES[6], like_count: 52100, owner_nickname: '小天使' },
- { asset_id: 10008, name: '永相随', cover_url: MOCK_IMAGES[7], like_count: 48700, owner_nickname: '小甜豆' },
- { asset_id: 10009, name: '粉红泡泡', cover_url: MOCK_IMAGES[8], like_count: 45600, owner_nickname: '小迷糊' },
- { asset_id: 10010, name: '爱的力量', cover_url: MOCK_IMAGES[9], like_count: 42300, owner_nickname: '小幸运' },
- { asset_id: 10011, name: '璀璨星河', cover_url: MOCK_IMAGES[10], like_count: 39800, owner_nickname: '小浪漫' },
+ { asset_id: 10001, name: '星光璀璨', cover_url: MOCK_IMAGES[0], like_count: 1258, owner_nickname: '小甜心' },
+ { asset_id: 10002, name: '爱的绽放', cover_url: MOCK_IMAGES[1], like_count: 986, owner_nickname: '爱豆粉' },
+ { asset_id: 10003, name: '温暖守护', cover_url: MOCK_IMAGES[2], like_count: 872, owner_nickname: '星星控' },
+ { asset_id: 10004, name: '甜蜜暴击', cover_url: MOCK_IMAGES[3], like_count: 768, owner_nickname: '追星族' },
+ { asset_id: 10005, name: '闪耀舞台', cover_url: MOCK_IMAGES[4], like_count: 654, owner_nickname: '小太阳' },
+ { asset_id: 10006, name: '为你疯狂', cover_url: MOCK_IMAGES[5], like_count: 589, owner_nickname: '小可爱' },
+ { asset_id: 10007, name: '心动时刻', cover_url: MOCK_IMAGES[6], like_count: 521, owner_nickname: '小天使' },
+ { asset_id: 10008, name: '永相随', cover_url: MOCK_IMAGES[7], like_count: 487, owner_nickname: '小甜豆' },
+ { asset_id: 10009, name: '粉红泡泡', cover_url: MOCK_IMAGES[8], like_count: 456, owner_nickname: '小迷糊' },
+ { asset_id: 10010, name: '爱的力量', cover_url: MOCK_IMAGES[9], like_count: 423, owner_nickname: '小幸运' },
+ { asset_id: 10011, name: '璀璨星河', cover_url: MOCK_IMAGES[10], like_count: 398, owner_nickname: '小浪漫' },
],
cursor: 'renqiwang_cursor_001',
has_more: true,
@@ -104,17 +104,17 @@ export const MOCK_RENQIWANG = {
// ========== 新鲜上架 - 新发布作品,点赞较低 ==========
export const MOCK_XINXIANSHANG = {
items: [
- { asset_id: 30001, name: '刚刚发布', cover_url: MOCK_IMAGES[0], like_count: 128, owner_nickname: '新手小白' },
- { asset_id: 30002, name: '今日新鲜', cover_url: MOCK_IMAGES[1], like_count: 256, owner_nickname: '小萌新' },
- { asset_id: 30003, name: '刚出锅', cover_url: MOCK_IMAGES[2], like_count: 89, owner_nickname: '新来的' },
- { asset_id: 30004, name: '热乎的', cover_url: MOCK_IMAGES[3], like_count: 167, owner_nickname: '小试牛刀' },
- { asset_id: 30005, name: '新品上市', cover_url: MOCK_IMAGES[4], like_count: 234, owner_nickname: '初来乍到' },
- { asset_id: 30006, name: '今日首发', cover_url: MOCK_IMAGES[5], like_count: 178, owner_nickname: '小透明' },
- { asset_id: 30007, name: '刚出炉', cover_url: MOCK_IMAGES[6], like_count: 145, owner_nickname: '新手村' },
- { asset_id: 30008, name: '最新创作', cover_url: MOCK_IMAGES[7], like_count: 312, owner_nickname: '小画师' },
- { asset_id: 30009, name: '新鲜出炉', cover_url: MOCK_IMAGES[8], like_count: 98, owner_nickname: '小创作者' },
- { asset_id: 30010, name: '首发作品', cover_url: MOCK_IMAGES[9], like_count: 267, owner_nickname: '小练手' },
- { asset_id: 30011, name: '全新上线', cover_url: MOCK_IMAGES[10], like_count: 189, owner_nickname: '新起步' },
+ { asset_id: 30001, name: '刚刚发布', cover_url: MOCK_IMAGES[0], like_count: 1, owner_nickname: '新手小白' },
+ { asset_id: 30002, name: '今日新鲜', cover_url: MOCK_IMAGES[1], like_count: 2, owner_nickname: '小萌新' },
+ { asset_id: 30003, name: '刚出锅', cover_url: MOCK_IMAGES[2], like_count: 0, owner_nickname: '新来的' },
+ { asset_id: 30004, name: '热乎的', cover_url: MOCK_IMAGES[3], like_count: 1, owner_nickname: '小试牛刀' },
+ { asset_id: 30005, name: '新品上市', cover_url: MOCK_IMAGES[4], like_count: 2, owner_nickname: '初来乍到' },
+ { asset_id: 30006, name: '今日首发', cover_url: MOCK_IMAGES[5], like_count: 1, owner_nickname: '小透明' },
+ { asset_id: 30007, name: '刚出炉', cover_url: MOCK_IMAGES[6], like_count: 1, owner_nickname: '新手村' },
+ { asset_id: 30008, name: '最新创作', cover_url: MOCK_IMAGES[7], like_count: 3, owner_nickname: '小画师' },
+ { asset_id: 30009, name: '新鲜出炉', cover_url: MOCK_IMAGES[8], like_count: 0, owner_nickname: '小创作者' },
+ { asset_id: 30010, name: '首发作品', cover_url: MOCK_IMAGES[9], like_count: 2, owner_nickname: '小练手' },
+ { asset_id: 30011, name: '全新上线', cover_url: MOCK_IMAGES[10], like_count: 1, owner_nickname: '新起步' },
],
cursor: 'xinxianshang_cursor_001',
has_more: true,
@@ -124,17 +124,17 @@ export const MOCK_XINXIANSHANG = {
// ========== 潜力之星 - 中等点赞有潜力的作品 ==========
export const MOCK_QIANLIXING = {
items: [
- { asset_id: 20001, name: '初露锋芒', cover_url: MOCK_IMAGES[0], like_count: 12800, owner_nickname: '小新芽' },
- { asset_id: 20002, name: '蓄势待发', cover_url: MOCK_IMAGES[1], like_count: 11500, owner_nickname: '小嫩草' },
- { asset_id: 20003, name: '冉冉升起', cover_url: MOCK_IMAGES[2], like_count: 10200, owner_nickname: '小泡泡' },
- { asset_id: 20004, name: '明日之星', cover_url: MOCK_IMAGES[3], like_count: 9800, owner_nickname: '小火苗' },
- { asset_id: 20005, name: '潜力无限', cover_url: MOCK_IMAGES[4], like_count: 8900, owner_nickname: '小萌芽' },
- { asset_id: 20006, name: '闪耀新星', cover_url: MOCK_IMAGES[5], like_count: 8200, owner_nickname: '小水滴' },
- { asset_id: 20007, name: '小荷才露', cover_url: MOCK_IMAGES[6], like_count: 7600, owner_nickname: '小竹笋' },
- { asset_id: 20008, name: '锋芒初现', cover_url: MOCK_IMAGES[7], like_count: 7100, owner_nickname: '小鸽子' },
- { asset_id: 20009, name: '闪闪发光', cover_url: MOCK_IMAGES[8], like_count: 6500, owner_nickname: '小萤火' },
- { asset_id: 20010, name: '未来可期', cover_url: MOCK_IMAGES[9], like_count: 5900, owner_nickname: '小芽芽' },
- { asset_id: 20011, name: '新秀登场', cover_url: MOCK_IMAGES[10], like_count: 5400, owner_nickname: '小藤蔓' },
+ { asset_id: 20001, name: '初露锋芒', cover_url: MOCK_IMAGES[0], like_count: 128, owner_nickname: '小新芽' },
+ { asset_id: 20002, name: '蓄势待发', cover_url: MOCK_IMAGES[1], like_count: 115, owner_nickname: '小嫩草' },
+ { asset_id: 20003, name: '冉冉升起', cover_url: MOCK_IMAGES[2], like_count: 102, owner_nickname: '小泡泡' },
+ { asset_id: 20004, name: '明日之星', cover_url: MOCK_IMAGES[3], like_count: 98, owner_nickname: '小火苗' },
+ { asset_id: 20005, name: '潜力无限', cover_url: MOCK_IMAGES[4], like_count: 89, owner_nickname: '小萌芽' },
+ { asset_id: 20006, name: '闪耀新星', cover_url: MOCK_IMAGES[5], like_count: 82, owner_nickname: '小水滴' },
+ { asset_id: 20007, name: '小荷才露', cover_url: MOCK_IMAGES[6], like_count: 76, owner_nickname: '小竹笋' },
+ { asset_id: 20008, name: '锋芒初现', cover_url: MOCK_IMAGES[7], like_count: 71, owner_nickname: '小鸽子' },
+ { asset_id: 20009, name: '闪闪发光', cover_url: MOCK_IMAGES[8], like_count: 65, owner_nickname: '小萤火' },
+ { asset_id: 20010, name: '未来可期', cover_url: MOCK_IMAGES[9], like_count: 59, owner_nickname: '小芽芽' },
+ { asset_id: 20011, name: '新秀登场', cover_url: MOCK_IMAGES[10], like_count: 54, owner_nickname: '小藤蔓' },
],
cursor: 'qianlixing_cursor_001',
has_more: true,
@@ -144,17 +144,17 @@ export const MOCK_QIANLIXING = {
// ========== 随机寻宝 - 随机混合数据 ==========
export const MOCK_SUIJIXUNBAO = {
items: [
- { asset_id: 40001, name: '神秘宝藏1', cover_url: MOCK_IMAGES[0], like_count: 45000, owner_nickname: '寻宝达人' },
- { asset_id: 40002, name: '神秘宝藏2', cover_url: MOCK_IMAGES[1], like_count: 32000, owner_nickname: '探险家' },
- { asset_id: 40003, name: '神秘宝藏3', cover_url: MOCK_IMAGES[2], like_count: 78000, owner_nickname: '淘宝高手' },
- { asset_id: 40004, name: '神秘宝藏4', cover_url: MOCK_IMAGES[3], like_count: 1500, owner_nickname: '捡漏王' },
- { asset_id: 40005, name: '神秘宝藏5', cover_url: MOCK_IMAGES[4], like_count: 8500, owner_nickname: '挖宝专家' },
- { asset_id: 40006, name: '神秘宝藏6', cover_url: MOCK_IMAGES[5], like_count: 55000, owner_nickname: '收藏家' },
- { asset_id: 40007, name: '神秘宝藏7', cover_url: MOCK_IMAGES[6], like_count: 200, owner_nickname: '淘宝达人' },
- { asset_id: 40008, name: '神秘宝藏8', cover_url: MOCK_IMAGES[7], like_count: 12000, owner_nickname: '猎奇者' },
- { asset_id: 40009, name: '神秘宝藏9', cover_url: MOCK_IMAGES[8], like_count: 62000, owner_nickname: '寻宝奇兵' },
- { asset_id: 40010, name: '神秘宝藏10', cover_url: MOCK_IMAGES[9], like_count: 800, owner_nickname: '淘宝猎人' },
- { asset_id: 40011, name: '神秘宝藏11', cover_url: MOCK_IMAGES[10], like_count: 9500, owner_nickname: '挖宝小分队' },
+ { asset_id: 40001, name: '神秘宝藏1', cover_url: MOCK_IMAGES[0], like_count: 450, owner_nickname: '寻宝达人' },
+ { asset_id: 40002, name: '神秘宝藏2', cover_url: MOCK_IMAGES[1], like_count: 320, owner_nickname: '探险家' },
+ { asset_id: 40003, name: '神秘宝藏3', cover_url: MOCK_IMAGES[2], like_count: 780, owner_nickname: '淘宝高手' },
+ { asset_id: 40004, name: '神秘宝藏4', cover_url: MOCK_IMAGES[3], like_count: 15, owner_nickname: '捡漏王' },
+ { asset_id: 40005, name: '神秘宝藏5', cover_url: MOCK_IMAGES[4], like_count: 85, owner_nickname: '挖宝专家' },
+ { asset_id: 40006, name: '神秘宝藏6', cover_url: MOCK_IMAGES[5], like_count: 550, owner_nickname: '收藏家' },
+ { asset_id: 40007, name: '神秘宝藏7', cover_url: MOCK_IMAGES[6], like_count: 2, owner_nickname: '淘宝达人' },
+ { asset_id: 40008, name: '神秘宝藏8', cover_url: MOCK_IMAGES[7], like_count: 120, owner_nickname: '猎奇者' },
+ { asset_id: 40009, name: '神秘宝藏9', cover_url: MOCK_IMAGES[8], like_count: 620, owner_nickname: '寻宝奇兵' },
+ { asset_id: 40010, name: '神秘宝藏10', cover_url: MOCK_IMAGES[9], like_count: 8, owner_nickname: '淘宝猎人' },
+ { asset_id: 40011, name: '神秘宝藏11', cover_url: MOCK_IMAGES[10], like_count: 95, owner_nickname: '挖宝小分队' },
],
cursor: 'suijixunbao_cursor_001',
has_more: true,
@@ -185,19 +185,19 @@ export function generateMockItems(category = 'hot', count = 20, startId = 50000)
// 根据分类生成不同的点赞数范围
switch (category) {
case 'hot':
- like_count = 20000 + Math.floor(Math.random() * 100000) // 2w-12w
+ like_count = 200 + Math.floor(Math.random() * 1000) // 200-1200
break
case 'new':
- like_count = 50 + Math.floor(Math.random() * 500) // 50-550
+ like_count = Math.floor(Math.random() * 5) // 0-5
break
case 'potential':
- like_count = 3000 + Math.floor(Math.random() * 15000) // 3k-18k
+ like_count = 30 + Math.floor(Math.random() * 150) // 30-180
break
case 'random':
- like_count = Math.floor(Math.random() * 80000) // 0-8w
+ like_count = Math.floor(Math.random() * 800) // 0-800
break
default:
- like_count = Math.floor(Math.random() * 50000)
+ like_count = Math.floor(Math.random() * 500)
}
items.push({
diff --git a/frontend/pages/square/square.vue b/frontend/pages/square/square.vue
index 0d107ac..eec3b97 100644
--- a/frontend/pages/square/square.vue
+++ b/frontend/pages/square/square.vue
@@ -234,7 +234,7 @@ onUnmounted(() => {
.banner-tabs-wrapper {
position: fixed;
- top: 216rpx;
+ top: 248rpx;
left: 0;
right: 0;
z-index: 100;
diff --git a/frontend/pages/support-activity/components/ThemeBanner.vue b/frontend/pages/support-activity/components/ThemeBanner.vue
index 16028fd..2226cf3 100644
--- a/frontend/pages/support-activity/components/ThemeBanner.vue
+++ b/frontend/pages/support-activity/components/ThemeBanner.vue
@@ -85,7 +85,7 @@ const progressPercent = computed(() => {
width: 98%;
height: 328rpx;
position: relative;
- margin-top: 176rpx;
+ top: 240rpx;
overflow: hidden;
/* 性能优化:启用硬件加速 */
transform: translateZ(0);
diff --git a/frontend/pages/tasks/daily-tasks.vue b/frontend/pages/tasks/daily-tasks.vue
index b1656c4..615f318 100644
--- a/frontend/pages/tasks/daily-tasks.vue
+++ b/frontend/pages/tasks/daily-tasks.vue
@@ -323,7 +323,7 @@ function getStatusClass(status) {
function getStatusText(status) {
switch (status) {
- case 'pending': return '前往'
+ case 'pending': return '未完成'
case 'completed': return '可领取'
case 'claimed': return '已完成'
default: return status
diff --git a/frontend/static/square/1.png b/frontend/static/square/1.png
new file mode 100644
index 0000000..5fd55e4
Binary files /dev/null and b/frontend/static/square/1.png differ
diff --git a/frontend/static/square/2.png b/frontend/static/square/2.png
new file mode 100644
index 0000000..2863ddf
Binary files /dev/null and b/frontend/static/square/2.png differ
diff --git a/frontend/static/square/3.png b/frontend/static/square/3.png
new file mode 100644
index 0000000..d846355
Binary files /dev/null and b/frontend/static/square/3.png differ
diff --git a/frontend/static/square/4.png b/frontend/static/square/4.png
new file mode 100644
index 0000000..93a836f
Binary files /dev/null and b/frontend/static/square/4.png differ
diff --git a/frontend/utils/likeHelper.js b/frontend/utils/likeHelper.js
index 0f262f2..53986e4 100644
--- a/frontend/utils/likeHelper.js
+++ b/frontend/utils/likeHelper.js
@@ -79,10 +79,7 @@ export function doubleTapLike(assetId, callback) {
if (callback) callback(true);
}).catch(err => {
console.error('点赞失败:', err);
- // 如果是"已点赞"错误,也更新本地记录
- if (err.message && err.message.includes('already liked')) {
- markLikedToday(assetId);
- }
+ uni.showToast({ title: '今日已点赞', icon: 'none' });
if (callback) callback(false);
});
}