diff --git a/components/ActivateAgentPopup.vue b/components/ActivateAgentPopup.vue
index 8458434..35a3236 100644
--- a/components/ActivateAgentPopup.vue
+++ b/components/ActivateAgentPopup.vue
@@ -1,5 +1,5 @@
-
+
@@ -75,35 +75,15 @@ export default {
handleAgentClick(agent) {
console.log("点击了AGENT:", agent);
- if (agent.status === "待激活") {
+ if (agent.status ==1) {
// 激活逻辑
- uni.showToast({
- title: `正在激活${agent.name}...`,
- icon: "loading",
- });
-
- // 模拟激活过程
- setTimeout(() => {
- agent.status = "去使用";
- uni.showToast({
- title: `${agent.name}激活成功!`,
- icon: "success",
- });
- }, 2000);
+ uni.navigateTo({
+ url:"/subPackages/equityGoods/detail?id="+agent.vos[0].benefitPackageId
+ })
} else {
- // 使用逻辑
- uni.showToast({
- title: `正在启动${agent.name}...`,
- icon: "loading",
- });
-
- // 这里可以添加跳转到具体AGENT页面的逻辑
- setTimeout(() => {
- uni.showToast({
- title: `${agent.name}启动成功!`,
- icon: "success",
- });
- }, 1500);
+ uni.navigateTo({
+ url:"/subPackages/equityGoods/detail?id="+agent.vos[0].benefitPackageId
+ })
}
},
},
@@ -111,6 +91,7 @@ export default {
\ No newline at end of file
diff --git a/components/DynamicIsland.vue b/components/DynamicIsland.vue
index 84a8267..7231fc2 100644
--- a/components/DynamicIsland.vue
+++ b/components/DynamicIsland.vue
@@ -1,790 +1,807 @@
-
-
-
+
-
-
-
-
-
-
-
-
-
- Hi!{{
- userInfo && userInfo.token ? userInfo.nickname : "用户"
- }}
- 欢迎回来~
-
-
- 2
- 个
-
- 文旅权益
-
-
-
-
-
-
-
-
- 时间奖励
-
- 120
- 点
-
- 文旅时间银行
-
-
-
-
-
-
-
-
-
-
-
-
-
- 文化工厂主理人
- EVITA
-
-
- 平台简介 >>
-
-
-
-
-
-
-
-
-
-
- 时间奖励
-
- 120
- 点
-
- 文旅时间银行
-
-
-
- {{
- userInfo && userInfo.token ? userInfo.nickname : "用户"
- }}
+ }" :style="{ top: isFixed ? fixedTopPosition + 'px' : 0 }" @click="handleToggle">
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 数字领航员
+ EVITA
+
+
+ DES介绍 >>
+
+ DES广播 >>
+
+
-
- 积分:999积分获取规则
+
+
+
+
+
+ Hi!{{
+ userInfo && userInfo.token ? userInfo.nickname : "用户"
+ }}欢迎回来~
+
+
+ 查看您的DES数据资产行
+
+
+
+
+ 2
+ 个
+
+ 数字权益行
+
+
+
+ 2
+ 个
+
+ 数字资产行
+
+
+
+ 时间奖励
+
+ 120
+ 点
+
+ 旅行时间行
+
+
+
+
+
+
+
+
-
-
-
- 时长:{{
+
+
+
+
+
+
+ 时间奖励
+
+ 120
+ 点
+
+ 旅行时间行
+
+
+
+ {{
+ userInfo && userInfo.token ? userInfo.nickname : "用户"
+ }}
+
+
+ 积分:999积分获取规则
+
+
+
+
+
+ 时长:{{
userInfo && userInfo.token ? userInfo.hour+'h' : "-"
}}
+
+
+
+
+ 点赞:120
+
+
+
+
+ 留言:120
+
+
+
+
-
-
- 点赞:120
-
-
-
- 留言:120
-
-
-
-
-
-
-
-
-
-
-
- {{ getCompactName() }}
-
-
-
-
+
+
+
+
+
+
+ {{ getCompactName() }}
+
+
+
+
+ /* 灵动岛占位区域样式 - 始终存在但控制可见性 */
+ .dynamic-island-placeholder {
+ width: 100%;
+ background: transparent;
+ position: relative;
+ opacity: 1;
+ transition: opacity 0.3s ease;
+ // padding: 24rpx 0;
+ margin-top: 24rpx;
+ }
+
+ .dynamic-island-placeholder.visible {
+ opacity: 1;
+ }
+
+ /* 当灵动岛不是固定状态时,确保它在占位符内正常显示 */
+ .dynamic-island-placeholder .dynamic-island:not(.fixed) {
+ position: relative;
+ z-index: 100;
+ }
+
+ .dynamic-island {
+ // margin: 24rpx auto 24rpx;
+ margin: 0 auto;
+ z-index: 100;
+
+ background: linear-gradient(180deg, #fffdb7 0%, #97fffa 100%);
+ backdrop-filter: blur(20rpx);
+ -webkit-backdrop-filter: blur(20rpx);
+ border-radius: 40rpx;
+ box-shadow: 0 8rpx 32rpx rgba(0, 0, 0, 0.1),
+ 0 0 0 1rpx rgba(255, 255, 255, 0.2) inset;
+
+ transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
+ overflow: hidden;
+
+ // 展开状态
+ width: 710rpx;
+ height: 216rpx;
+
+ // 紧凑状态
+ &.compact {
+ width: 300rpx;
+ height: 80rpx;
+ border-radius: 40rpx;
+
+ .expanded-content {
+ opacity: 0;
+ visibility: hidden;
+ transition: opacity 0.15s ease-out, visibility 0s linear 0.15s;
+ }
+ }
+
+ &:not(.compact) {
+ .compact-content {
+ opacity: 0;
+ visibility: hidden;
+ transition: opacity 0.15s ease-out, visibility 0s linear 0.15s;
+ }
+ }
+
+ // 固定定位状态
+ &.fixed {
+ position: fixed;
+ left: 50%;
+ transform: translateX(-50%);
+ z-index: 998;
+ margin: 0;
+ transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
+ animation: slideInFromTop 0.4s cubic-bezier(0.4, 0, 0.2, 1) forwards;
+ }
+ }
+
+ .expanded-content {
+ display: flex;
+ flex-direction: column;
+ height: 100%;
+ padding: 24rpx 25rpx;
+ opacity: 1;
+ visibility: visible;
+ transition: opacity 0.2s ease-in 0.1s, visibility 0s linear 0s;
+ }
+
+ /* 三栏布局样式 */
+ .three-column-layout {
+ display: flex;
+ align-items: flex-end;
+ height: 100%;
+ width: 100%;
+ }
+
+ /* 列分隔线 */
+ .column-divider {
+ width: 2rpx;
+ height: 160rpx;
+ background: rgba(0, 0, 0, 0.1);
+ margin: 0rpx 25rpx;
+ flex-shrink: 0;
+ }
+
+ /* 左侧区域 */
+ .left-section {
+ color: #333;
+ display: flex;
+ flex-direction: column;
+ justify-content: space-between;
+ flex: 1;
+ height: 100%;
+ }
+
+ .welcome-message {
+ display: flex;
+ flex-direction: column;
+ }
+
+ .welcome-text {
+ font-size: 22rpx;
+ color: #000000;
+ line-height: 1.2;
+ text-overflow: ellipsis;
+ overflow: hidden;
+ white-space: nowrap;
+ }
+
+ .welcome-subtitle {
+ font-size: 24rpx;
+ color: #000000;
+ margin-top: 4rpx;
+ font-weight: bold;
+ }
+
+ .stats-info {
+ display: flex;
+ align-items: baseline;
+ margin-bottom: 8rpx;
+ }
+
+ .stats-number {
+ font-size: 40rpx;
+ color: #333;
+ font-weight: bold;
+ line-height: 1;
+ }
+
+ .stats-unit {
+ font-size: 24rpx;
+ color: #000000;
+ margin-left: 4rpx;
+ }
+
+ .stats-label {
+ font-size: 22rpx;
+ color: #000000;
+ font-weight: bold;
+ }
+
+ /* 中间区域 */
+ .middle-section {
+ display: flex;
+ justify-content: flex-start;
+ align-items: center;
+ }
+
+ .time-reward-container {
+ display: flex;
+ flex-direction: column;
+ justify-content: flex-end;
+ align-items: flex-start;
+ }
+
+ .time-reward-title {
+ font-size: 20rpx;
+ color: #000000;
+ font-weight: 500;
+ margin-bottom: 12rpx;
+ }
+
+ .time-reward-stats {
+ display: flex;
+ align-items: baseline;
+ margin-bottom: 8rpx;
+ }
+
+ .time-reward-number {
+ font-size: 40rpx;
+ color: #000000;
+ font-weight: bold;
+ line-height: 1;
+ }
+
+ .time-reward-unit {
+ font-size: 24rpx;
+ color: #000000;
+ margin-left: 4rpx;
+ }
+
+ .time-reward-label {
+ font-size: 22rpx;
+ color: #000000;
+ }
+
+ /* 右侧区域 */
+ .right-section {
+ display: flex;
+ align-items: flex-end;
+ height: 100%;
+ }
+
+ .avatar-container {
+ position: relative;
+ margin-right: 10rpx;
+ width: 140rpx;
+ height: 140rpx;
+ }
+
+ .avatar {
+ width: 140rpx;
+ height: 140rpx;
+ border-radius: 50%;
+ }
+
+ .profile-info {
+ display: flex;
+ flex-direction: column;
+ align-items: flex-start;
+ justify-content: flex-start;
+ }
+
+ .profile-title {
+ font-size: 26rpx;
+ color: #000000;
+ margin-bottom: 4rpx;
+ font-weight: bold;
+ }
+
+ .profile-name {
+ font-size: 26rpx;
+ color: #000000;
+ font-weight: bold;
+ }
+
+ .platform-link {
+ cursor: pointer;
+ }
+
+ .link-text {
+ font-size: 22rpx;
+ color: #000000;
+ text-decoration: underline;
+ font-weight: 500;
+ }
+
+ /* 保留原有的底部区域样式用于timeShop模式 */
+ .bottom-section {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ flex: 1;
+ color: #000000;
+ }
+
+ .stats-section {
+ display: flex;
+ gap: 32rpx;
+ }
+
+ .stat-item {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ font-size: 28rpx;
+ font-weight: bold;
+ }
+
+ .stat-number {
+ font-size: 32rpx;
+ color: #000000;
+ font-weight: bold;
+ line-height: 1;
+ margin-bottom: 4rpx;
+ }
+
+ .stat-label {
+ font-size: 28rpx;
+ color: #000000;
+ line-height: 1;
+ font-weight: bold;
+ margin-top: 20rpx;
+ }
+
+ .divider {
+ width: 2rpx;
+ height: 60rpx;
+ background: rgba(255, 255, 255, 0.3);
+ margin: 0 24rpx;
+ }
+
+ .action-section {
+ display: flex;
+ align-items: center;
+ flex: 1;
+ justify-content: space-between;
+ }
+
+ .action-text {
+ font-size: 26rpx;
+ color: #ffffff;
+ font-weight: bold;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ max-width: 200rpx;
+ }
+
+ // 添加点击反馈动画
+ .dynamic-island:active {
+ transform: scale(0.98);
+
+ &.fixed {
+ transform: translateX(-50%) scale(0.98);
+ }
+ }
+
+ // 从顶部滑入动画
+ @keyframes slideInFromTop {
+ 0% {
+ transform: translateX(-50%) translateY(-100%);
+ opacity: 0;
+ }
+
+ 100% {
+ transform: translateX(-50%) translateY(0);
+ opacity: 1;
+ }
+ }
+
+ .compact-content {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ height: 100%;
+ padding: 0 24rpx;
+ opacity: 1;
+ visibility: visible;
+ transition: opacity 0.2s ease-in 0.1s, visibility 0s linear 0s;
+ }
+
+ .compact-name {
+ font-size: 27rpx;
+ color: #333;
+ font-weight: bold;
+ flex: 1;
+ text-align: left;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ max-width: 200rpx;
+ }
+
+ .compact-avatar {
+ width: 48rpx;
+ height: 48rpx;
+ border-radius: 50%;
+ border: 2rpx solid rgba(0, 0, 0, 0.2);
+ flex-shrink: 0;
+ }
+
+ // 动画定义
+ @keyframes pulse {
+ 0% {
+ opacity: 1;
+ transform: scale(1);
+ }
+
+ 50% {
+ opacity: 0.6;
+ transform: scale(1.1);
+ }
+
+ 100% {
+ opacity: 1;
+ transform: scale(1);
+ }
+ }
+
+ // 响应式适配
+ // @media (max-width: 750rpx) {
+ // .dynamic-island {
+ // &.is-expanded {
+ // width: 100vw;
+ // max-width: 750rpx;
+ // }
+
+ // &.is-compact {
+ // width: 280rpx;
+ // }
+ // }
+ // }
+ .action-text-box {
+ color: #000000;
+
+ .action-text-box-des {
+ font-size: 20rpx;
+ }
+
+ .action-text-box-msg {
+ font-size: 24rpx;
+ display: flex;
+ align-items: center;
+ margin-top: 20rpx;
+ }
+
+ .action-text-box-img {
+ width: 57rpx;
+ height: 46rpx;
+ margin-right: 10rpx;
+ }
+ }
+
\ No newline at end of file
diff --git a/components/MusicControl.vue b/components/MusicControl.vue
index dd174b9..deeaa34 100644
--- a/components/MusicControl.vue
+++ b/components/MusicControl.vue
@@ -72,7 +72,7 @@ export default {
display: flex;
align-items: center;
justify-content: center;
- z-index: 999;
+ z-index: 998;
}
.music-text {
diff --git a/components/header.vue b/components/header.vue
index 25f79fa..7e51b01 100644
--- a/components/header.vue
+++ b/components/header.vue
@@ -49,11 +49,13 @@
-
+
+
+
@@ -252,10 +254,18 @@ export default {
}
.logo {
- height: 36.16rpx;
position: absolute;
left: 50%;
transform: translateX(-50%);
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ color: #000000;
+ font-weight: bold;
+ font-size: 35rpx;
+ image{
+ height: 29.16rpx;
+ }
}
.right-section {
@@ -264,7 +274,7 @@ export default {
.location-selector {
display: flex;
align-items: center;
- padding: 8rpx 16rpx;
+ padding: 8rpx 0rpx;
// border: 2rpx solid #e0e0e0;
border-radius: 20rpx;
background-color: #fff;
diff --git a/pages.json b/pages.json
index 7553167..d790cc5 100644
--- a/pages.json
+++ b/pages.json
@@ -279,7 +279,22 @@
"navigationBarBackgroundColor": "#ffffff",
"navigationBarTextStyle": "black"
}
- }
+ },
+ {
+ "path": "other/introduction",
+ "style": {
+ "navigationBarTextStyle": "white",
+ "navigationStyle": "custom"
+ }
+ },
+ {
+ "path": "other/evita",
+ "style": {
+ "navigationBarTextStyle": "white",
+ "navigationStyle": "custom"
+ }
+ }
+
]
},
{
diff --git a/pages/index/iSoul.vue b/pages/index/iSoul.vue
index 0b3d371..c7744bb 100644
--- a/pages/index/iSoul.vue
+++ b/pages/index/iSoul.vue
@@ -340,18 +340,7 @@
},
getAgentList() {
this.Post({}, "/framework/agent/purchaseList", "DES").then((res) => {
- this.agentList = [{
- headImage: "https://epic.js-dyyj.com/uploads/20250728/d27ef6e6c26877da7775664fed376c6f.png",
- name: '文徵明',
- status: 0
- },
- {
- headImage: "https://epic.js-dyyj.com/uploads/20250728/d7bf0dd2f3f272afba687b525a7c575c.png",
- name: '颜真卿',
- status: 1
- },
-
- ]
+ this.agentList =res.data
});
},
getUserInfo() {
@@ -656,6 +645,9 @@
\ No newline at end of file
diff --git a/subPackages/other/introduction.vue b/subPackages/other/introduction.vue
new file mode 100644
index 0000000..622a86e
--- /dev/null
+++ b/subPackages/other/introduction.vue
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/subPackages/techan/detail.vue b/subPackages/techan/detail.vue
index b74f7a1..3b22f28 100644
--- a/subPackages/techan/detail.vue
+++ b/subPackages/techan/detail.vue
@@ -526,12 +526,12 @@
z-index: 9999;
bottom: 0;
width: 750rpx;
- height: 180rpx;
background: #FFFFFF;
box-shadow: 0rpx 0rpx 16rpx 0rpx rgba(6, 0, 1, 0.1);
display: flex;
justify-content: space-between;
- padding: 30rpx 25rpx 0 50rpx;
+ padding: 30rpx 25rpx 30rpx;
+ // padding-bottom: calc(30rpx + env(safe-area-inset-bottom));
.left-box {
display: flex;
@@ -744,6 +744,7 @@
line-height: 77rpx;
text-align: center;
display: flex;
+ margin-bottom: env(safe-area-inset-bottom);
.left-btn-buy{
width: 186rpx;