|
@ -1,7 +1,6 @@ |
|
|
<template> |
|
|
<template> |
|
|
<!-- 灵动岛占位区域 - 始终存在但控制可见性 --> |
|
|
<!-- 灵动岛占位区域 - 始终存在但控制可见性 --> |
|
|
<view class="dynamic-island-placeholder" :class="{ visible: isScrolled }" |
|
|
<view class="dynamic-island-placeholder" :class="{ visible: isScrolled }" :style="{ height: 216 + 'rpx' }"> |
|
|
:style="{ height: 216 + 'rpx' }"> |
|
|
|
|
|
<view class="dynamic-island" :class="{ |
|
|
<view class="dynamic-island" :class="{ |
|
|
compact: actualCompactState, |
|
|
compact: actualCompactState, |
|
|
fixed: isFixed, |
|
|
fixed: isFixed, |
|
@ -18,19 +17,16 @@ |
|
|
<image class="avatar" |
|
|
<image class="avatar" |
|
|
src="https://epic.js-dyyj.com/uploads/20250826/92b0a21e9125fc21ca294a408bf3508f.png" |
|
|
src="https://epic.js-dyyj.com/uploads/20250826/92b0a21e9125fc21ca294a408bf3508f.png" |
|
|
mode="aspectFill"></image> |
|
|
mode="aspectFill"></image> |
|
|
<view |
|
|
<view class="ai-label">智能体</view> |
|
|
class="ai-label" |
|
|
|
|
|
|
|
|
|
|
|
>智能体</view |
|
|
|
|
|
> |
|
|
|
|
|
</view> |
|
|
</view> |
|
|
<view class="" style="display: flex;flex-direction: column;justify-content: space-between;height: 100%;"> |
|
|
<view class="" |
|
|
|
|
|
style="display: flex;flex-direction: column;justify-content: space-between;height: 100%;"> |
|
|
<view class="profile-info"> |
|
|
<view class="profile-info"> |
|
|
<text class="profile-title">数字领航员</text> |
|
|
<text class="profile-title">数字领航员</text> |
|
|
<text class="profile-name">EVITA</text> |
|
|
<text class="profile-name">EVITA</text> |
|
|
</view> |
|
|
</view> |
|
|
<view class="platform-link"> |
|
|
<view class="platform-link"> |
|
|
<view class="link-text" @click="toDesInfo" >交响介绍 >> |
|
|
<view class="link-text" @click="toDesInfo">交响介绍 >> |
|
|
</view> |
|
|
</view> |
|
|
<!-- <view class="link-text">DES广播 >></view> --> |
|
|
<!-- <view class="link-text">DES广播 >></view> --> |
|
|
</view> |
|
|
</view> |
|
@ -48,26 +44,28 @@ |
|
|
<view class="" style="font-size: 24rpx;font-weight: bold;color: #000000;"> |
|
|
<view class="" style="font-size: 24rpx;font-weight: bold;color: #000000;"> |
|
|
查看您的交响数据文化资产行 |
|
|
查看您的交响数据文化资产行 |
|
|
</view> |
|
|
</view> |
|
|
<view class="" style="display: flex;align-items: flex-end;justify-content: space-between;"> |
|
|
<view class="" |
|
|
<view class="" @click="toOrder"> |
|
|
style="display: flex;align-items: flex-end;justify-content: space-between;"> |
|
|
|
|
|
<view class="" @click="toOrder"> |
|
|
<view class="stats-info"> |
|
|
<view class="stats-info"> |
|
|
<text class="stats-number">{{userInfo&&userInfo.unUseOrderQuantity||0}}</text> |
|
|
<text |
|
|
|
|
|
class="stats-number">{{userInfo&&userInfo.unUseOrderQuantity||0}}</text> |
|
|
<text class="stats-unit">个</text> |
|
|
<text class="stats-unit">个</text> |
|
|
</view> |
|
|
</view> |
|
|
<view class="stats-label">交响权益行</view> |
|
|
<view class="stats-label">交响权益行</view> |
|
|
</view> |
|
|
</view> |
|
|
<div @click="toTime"> |
|
|
<div @click="toTime"> |
|
|
<view class="stats-info" > |
|
|
<view class="stats-info"> |
|
|
<text class="stats-number">{{userInfo&&userInfo.ipQuantity||0}}</text> |
|
|
<text class="stats-number">{{userInfo&&userInfo.ipQuantity||0}}</text> |
|
|
<text class="stats-unit">个</text> |
|
|
<text class="stats-unit">个</text> |
|
|
</view> |
|
|
</view> |
|
|
<view class="stats-label">交响资产行</view> |
|
|
<view class="stats-label">交响资产行</view> |
|
|
</div> |
|
|
</div> |
|
|
<view class="middle-section"> |
|
|
<view class="middle-section"> |
|
|
<view class="time-reward-container"> |
|
|
<view class="time-reward-container" @click="toPoint"> |
|
|
<text class="time-reward-title" style="margin-bottom: 5rpx;">时间奖励</text> |
|
|
<text class="time-reward-title" style="margin-bottom: 5rpx;">时间奖励</text> |
|
|
<view class="time-reward-stats"> |
|
|
<view class="time-reward-stats"> |
|
|
<text class="time-reward-number">0</text> |
|
|
<text class="time-reward-number">{{ userInfo && userInfo.token ? userInfo.hourValue||0:0}}</text> |
|
|
<text class="time-reward-unit">点</text> |
|
|
<text class="time-reward-unit">点</text> |
|
|
</view> |
|
|
</view> |
|
|
<text class="time-reward-label" style="font-weight: bold;">交响时间行</text> |
|
|
<text class="time-reward-label" style="font-weight: bold;">交响时间行</text> |
|
@ -86,10 +84,12 @@ |
|
|
<view class="bottom-section"> |
|
|
<view class="bottom-section"> |
|
|
<view class="" style="flex:1;"> |
|
|
<view class="" style="flex:1;"> |
|
|
<view class="" style="display: flex;"> |
|
|
<view class="" style="display: flex;"> |
|
|
<view class="time-reward-container" style="width: 200rpx;"> |
|
|
<view class="time-reward-container" style="width: 200rpx;" @click="toPoint"> |
|
|
<text class="time-reward-title">时间奖励</text> |
|
|
<text class="time-reward-title">时间奖励</text> |
|
|
<view class="time-reward-stats"> |
|
|
<view class="time-reward-stats"> |
|
|
<text class="time-reward-number">0</text> |
|
|
<text class="time-reward-number">{{ |
|
|
|
|
|
userInfo && userInfo.token ? userInfo.hourValue||0:0 |
|
|
|
|
|
}}</text> |
|
|
<text class="time-reward-unit">点</text> |
|
|
<text class="time-reward-unit">点</text> |
|
|
</view> |
|
|
</view> |
|
|
<text class="time-reward-label" |
|
|
<text class="time-reward-label" |
|
@ -101,9 +101,9 @@ |
|
|
userInfo && userInfo.token ? userInfo.nickname : "用户" |
|
|
userInfo && userInfo.token ? userInfo.nickname : "用户" |
|
|
}} |
|
|
}} |
|
|
</view> |
|
|
</view> |
|
|
<view class="time-reward-label" |
|
|
<view class="time-reward-label" @click="toPoint" |
|
|
style="margin-top: 15rpx;font-weight: bold;font-size: 26rpx;"> |
|
|
style="margin-top: 15rpx;font-weight: bold;font-size: 26rpx;"> |
|
|
积分:0<text |
|
|
积分:{{totalPoints||0}}<text |
|
|
style="color: #999999;font-size: 22rpx;margin-left: 10rpx;">积分获取规则</text> |
|
|
style="color: #999999;font-size: 22rpx;margin-left: 10rpx;">积分获取规则</text> |
|
|
</view> |
|
|
</view> |
|
|
</view> |
|
|
</view> |
|
@ -129,8 +129,7 @@ |
|
|
</view> |
|
|
</view> |
|
|
</view> |
|
|
</view> |
|
|
</view> |
|
|
</view> |
|
|
<image class="avatar" |
|
|
<image class="avatar" @click="toWebView" |
|
|
@click="toWebView" |
|
|
|
|
|
src="https://epic.js-dyyj.com/uploads/20250826/92b0a21e9125fc21ca294a408bf3508f.png" |
|
|
src="https://epic.js-dyyj.com/uploads/20250826/92b0a21e9125fc21ca294a408bf3508f.png" |
|
|
mode="aspectFill"></image> |
|
|
mode="aspectFill"></image> |
|
|
</view> |
|
|
</view> |
|
@ -196,6 +195,7 @@ |
|
|
currentAvatar: "https://picsum.photos/80/80", |
|
|
currentAvatar: "https://picsum.photos/80/80", |
|
|
currentAction: "激活你的Agent", |
|
|
currentAction: "激活你的Agent", |
|
|
userInfo: {}, |
|
|
userInfo: {}, |
|
|
|
|
|
totalPoints: 0 |
|
|
}; |
|
|
}; |
|
|
}, |
|
|
}, |
|
|
computed: { |
|
|
computed: { |
|
@ -321,6 +321,11 @@ |
|
|
} |
|
|
} |
|
|
return "用户"; |
|
|
return "用户"; |
|
|
}, |
|
|
}, |
|
|
|
|
|
toPoint() { |
|
|
|
|
|
uni.navigateTo({ |
|
|
|
|
|
url: '/subPackages/points/index' |
|
|
|
|
|
}) |
|
|
|
|
|
}, |
|
|
getStatNumber(type) { |
|
|
getStatNumber(type) { |
|
|
// 从副标题中解析统计数据 |
|
|
// 从副标题中解析统计数据 |
|
|
if (this.subtitle) { |
|
|
if (this.subtitle) { |
|
@ -356,6 +361,11 @@ |
|
|
if (this.userInfo && this.userInfo.nickname) { |
|
|
if (this.userInfo && this.userInfo.nickname) { |
|
|
this.currentTitle = `Hi!${this.userInfo.nickname},欢迎回来~`; |
|
|
this.currentTitle = `Hi!${this.userInfo.nickname},欢迎回来~`; |
|
|
} |
|
|
} |
|
|
|
|
|
this.Post({}, '/framework/points/getLastBalance', 'DES').then(res => { |
|
|
|
|
|
if (res.code === 200) { |
|
|
|
|
|
this.totalPoints = res.data.balance || 0; |
|
|
|
|
|
} |
|
|
|
|
|
}) |
|
|
} catch (e) { |
|
|
} catch (e) { |
|
|
console.warn("获取用户信息失败:", e); |
|
|
console.warn("获取用户信息失败:", e); |
|
|
this.userInfo = {}; |
|
|
this.userInfo = {}; |
|
@ -367,13 +377,13 @@ |
|
|
// "https://des.js-dyyj.com/dist/#/", |
|
|
// "https://des.js-dyyj.com/dist/#/", |
|
|
// }); |
|
|
// }); |
|
|
uni.navigateTo({ |
|
|
uni.navigateTo({ |
|
|
url:'/subPackages/other/evita?id=0' |
|
|
url: '/subPackages/other/evita?id=0' |
|
|
}) |
|
|
}) |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
toDesInfo(){ |
|
|
toDesInfo() { |
|
|
uni.navigateTo({ |
|
|
uni.navigateTo({ |
|
|
url:'/subPackages/other/introduction' |
|
|
url: '/subPackages/other/introduction' |
|
|
}) |
|
|
}) |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
@ -802,24 +812,25 @@ |
|
|
margin-right: 10rpx; |
|
|
margin-right: 10rpx; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.ai-label { |
|
|
.ai-label { |
|
|
border: 1rpx solid; |
|
|
border: 1rpx solid; |
|
|
padding: 0rpx 15rpx; |
|
|
padding: 0rpx 15rpx; |
|
|
height: 40rpx; |
|
|
height: 40rpx; |
|
|
line-height: 38rpx; |
|
|
line-height: 38rpx; |
|
|
font-weight: bold; |
|
|
font-weight: bold; |
|
|
font-size: 20rpx; |
|
|
font-size: 20rpx; |
|
|
border-radius: 4rpx; |
|
|
border-radius: 4rpx; |
|
|
border-color: #333333; |
|
|
border-color: #333333; |
|
|
color: #333333; |
|
|
color: #333333; |
|
|
display: inline; |
|
|
display: inline; |
|
|
margin-top: 10rpx; |
|
|
margin-top: 10rpx; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.ai-name { |
|
|
.ai-name { |
|
|
font-size: 27rpx; |
|
|
font-size: 27rpx; |
|
|
font-weight: bold; |
|
|
font-weight: bold; |
|
|
color: #ffffff; |
|
|
color: #ffffff; |
|
|
margin-left: 10rpx; |
|
|
margin-left: 10rpx; |
|
|
} |
|
|
} |
|
|
</style> |
|
|
</style> |