|
@ -1,10 +1,13 @@ |
|
|
<template> |
|
|
<template> |
|
|
<view class="profile-container"> |
|
|
<view class="profile-container"> |
|
|
<view class="user-top" :style="{ |
|
|
<view |
|
|
|
|
|
class="user-top" |
|
|
|
|
|
:style="{ |
|
|
backgroundImage: `url(${showImg( |
|
|
backgroundImage: `url(${showImg( |
|
|
'/uploads/20250728/4ad18fba010760a527d0cf5e24bcf467.png' |
|
|
'/uploads/20250728/4ad18fba010760a527d0cf5e24bcf467.png' |
|
|
)})`, |
|
|
)})`, |
|
|
}"> |
|
|
}" |
|
|
|
|
|
> |
|
|
<!-- 状态栏占位 --> |
|
|
<!-- 状态栏占位 --> |
|
|
<view class="status-bar-placeholder"></view> |
|
|
<view class="status-bar-placeholder"></view> |
|
|
<!-- 顶部导航 --> |
|
|
<!-- 顶部导航 --> |
|
@ -19,12 +22,24 @@ |
|
|
<!-- 用户信息区域 --> |
|
|
<!-- 用户信息区域 --> |
|
|
<view class="user-section" @click="gotoProfile"> |
|
|
<view class="user-section" @click="gotoProfile"> |
|
|
<view class="user-avatar"> |
|
|
<view class="user-avatar"> |
|
|
<image :src="userInfo.avatar ? showImg(userInfo.avatar) : defaultAvatar" mode="aspectFill" |
|
|
<image |
|
|
class="avatar-img"></image> |
|
|
:src="userInfo.avatar ? showImg(userInfo.avatar) : defaultAvatar" |
|
|
|
|
|
mode="aspectFill" |
|
|
|
|
|
class="avatar-img" |
|
|
|
|
|
></image> |
|
|
</view> |
|
|
</view> |
|
|
<view class="user-info"> |
|
|
<view class="user-info"> |
|
|
<view class="username">{{ userInfo.nickname || "去登录" }}<uni-icons type="right" size="16" style="margin-left: 10rpx;" color="#ffffff" /></view> |
|
|
<view class="username" |
|
|
<view class="user-id" v-if="userInfo.redBookId">ID:{{ userInfo.redBookId || "123456" }}</view> |
|
|
>{{ userInfo.nickname || "去登录" |
|
|
|
|
|
}}<uni-icons |
|
|
|
|
|
type="right" |
|
|
|
|
|
size="16" |
|
|
|
|
|
style="margin-left: 10rpx" |
|
|
|
|
|
color="#ffffff" |
|
|
|
|
|
/></view> |
|
|
|
|
|
<view class="user-id" v-if="userInfo.redBookId" |
|
|
|
|
|
>ID:{{ userInfo.redBookId || "123456" }}</view |
|
|
|
|
|
> |
|
|
<!-- <view class="location"> |
|
|
<!-- <view class="location"> |
|
|
<text class="location-icon">📍</text> |
|
|
<text class="location-icon">📍</text> |
|
|
<text>IP属地:{{ userInfo.location || "上海" }}</text> |
|
|
<text>IP属地:{{ userInfo.location || "上海" }}</text> |
|
@ -72,10 +87,23 @@ |
|
|
<view class="agent-title">待激活的Agent</view> |
|
|
<view class="agent-title">待激活的Agent</view> |
|
|
</view> |
|
|
</view> |
|
|
<view class="agent-content"> |
|
|
<view class="agent-content"> |
|
|
<scroll-view class="agent-scroll" scroll-x="true" :show-scrollbar="false" :enhanced="true"> |
|
|
<scroll-view |
|
|
|
|
|
class="agent-scroll" |
|
|
|
|
|
scroll-x="true" |
|
|
|
|
|
:show-scrollbar="false" |
|
|
|
|
|
:enhanced="true" |
|
|
|
|
|
> |
|
|
<view class="agent-avatars"> |
|
|
<view class="agent-avatars"> |
|
|
<view class="agent-avatar" v-for="(agent, index) in agentList" :key="index"> |
|
|
<view |
|
|
<image :src="agent.avatar" mode="aspectFill" class="agent-img"></image> |
|
|
class="agent-avatar" |
|
|
|
|
|
v-for="(agent, index) in agentList" |
|
|
|
|
|
:key="index" |
|
|
|
|
|
> |
|
|
|
|
|
<image |
|
|
|
|
|
:src="agent.avatar" |
|
|
|
|
|
mode="aspectFill" |
|
|
|
|
|
class="agent-img" |
|
|
|
|
|
></image> |
|
|
</view> |
|
|
</view> |
|
|
</view> |
|
|
</view> |
|
|
</scroll-view> |
|
|
</scroll-view> |
|
@ -93,11 +121,58 @@ |
|
|
|
|
|
|
|
|
<!-- 数字资产权益 --> |
|
|
<!-- 数字资产权益 --> |
|
|
<view class="digital-assets"> |
|
|
<view class="digital-assets"> |
|
|
<view class="asset-card"> |
|
|
<!-- 有数据时显示滑动卡片 --> |
|
|
<image @click="handleAssetAction()" :src=" |
|
|
<view v-if="assetList.length > 0" class="asset-scroll-container"> |
|
|
|
|
|
<scroll-view |
|
|
|
|
|
class="asset-scroll" |
|
|
|
|
|
scroll-x="true" |
|
|
|
|
|
:show-scrollbar="false" |
|
|
|
|
|
:enhanced="true" |
|
|
|
|
|
> |
|
|
|
|
|
<view class="asset-cards"> |
|
|
|
|
|
<view |
|
|
|
|
|
class="asset-card" |
|
|
|
|
|
v-for="(asset, index) in assetList" |
|
|
|
|
|
:key="index" |
|
|
|
|
|
@click="handleAction(asset)" |
|
|
|
|
|
> |
|
|
|
|
|
<view class="asset-card-wrapper"> |
|
|
|
|
|
<image |
|
|
|
|
|
:src="showImgJdsz(asset.image)" |
|
|
|
|
|
mode="aspectFill" |
|
|
|
|
|
class="asset-img" |
|
|
|
|
|
></image> |
|
|
|
|
|
<view class="asset-overlay"> |
|
|
|
|
|
<view class="asset-badge">{{ asset.badge }}</view> |
|
|
|
|
|
<view class="asset-name">{{ asset.name }}</view> |
|
|
|
|
|
<view class="asset-desc">{{ asset.desc }}</view> |
|
|
|
|
|
<view |
|
|
|
|
|
class="asset-action" |
|
|
|
|
|
style="flex-direction: row; padding: 20rpx" |
|
|
|
|
|
> |
|
|
|
|
|
<text class="action-text">{{ asset.actionText }}</text> |
|
|
|
|
|
<text class="action-arrow">→</text> |
|
|
|
|
|
</view> |
|
|
|
|
|
</view> |
|
|
|
|
|
</view> |
|
|
|
|
|
</view> |
|
|
|
|
|
</view> |
|
|
|
|
|
</scroll-view> |
|
|
|
|
|
</view> |
|
|
|
|
|
|
|
|
|
|
|
<!-- 无数据时显示原来的图片风格 --> |
|
|
|
|
|
<view v-else class="asset-card-old"> |
|
|
|
|
|
<image |
|
|
|
|
|
@click="handleAssetAction('待使用')" |
|
|
|
|
|
:src=" |
|
|
showImg('/uploads/20250729/42598a2dcf4c9a6f8c6e122e54b65c4f.png') |
|
|
showImg('/uploads/20250729/42598a2dcf4c9a6f8c6e122e54b65c4f.png') |
|
|
" mode="aspectFill" class="digital-img"></image> |
|
|
" |
|
|
|
|
|
mode="aspectFill" |
|
|
|
|
|
class="digital-img" |
|
|
|
|
|
></image> |
|
|
|
|
|
</view> |
|
|
|
|
|
|
|
|
|
|
|
<!-- 底部操作按钮 --> |
|
|
<view class="asset-actions"> |
|
|
<view class="asset-actions"> |
|
|
<view class="asset-action active" @click="handleAssetAction('待使用')"> |
|
|
<view class="asset-action active" @click="handleAssetAction('待使用')"> |
|
|
<view class="action-icon red"></view> |
|
|
<view class="action-icon red"></view> |
|
@ -117,16 +192,22 @@ |
|
|
</view> |
|
|
</view> |
|
|
</view> |
|
|
</view> |
|
|
</view> |
|
|
</view> |
|
|
</view> |
|
|
|
|
|
|
|
|
|
|
|
<!-- 有感商品 --> |
|
|
<!-- 有感商品 --> |
|
|
<view class="feeling-goods"> |
|
|
<view class="feeling-goods"> |
|
|
<view class="goods-card"> |
|
|
<view class="goods-card"> |
|
|
<image :src=" |
|
|
<image |
|
|
|
|
|
:src=" |
|
|
showImg('/uploads/20250729/a010feb51e3f195563fb440f9235cc8b.png') |
|
|
showImg('/uploads/20250729/a010feb51e3f195563fb440f9235cc8b.png') |
|
|
" mode="aspectFill" class="digital-img"></image> |
|
|
" |
|
|
|
|
|
mode="aspectFill" |
|
|
|
|
|
class="digital-img" |
|
|
|
|
|
></image> |
|
|
<view class="goods-actions"> |
|
|
<view class="goods-actions"> |
|
|
<view class="goods-action active" @click="handleGoodsAction('购物车')"> |
|
|
<view |
|
|
|
|
|
class="goods-action active" |
|
|
|
|
|
@click="handleGoodsAction('购物车')" |
|
|
|
|
|
> |
|
|
<view class="action-icon red"></view> |
|
|
<view class="action-icon red"></view> |
|
|
<text>购物车</text> |
|
|
<text>购物车</text> |
|
|
</view> |
|
|
</view> |
|
@ -154,15 +235,25 @@ |
|
|
<view class="divider-line"></view> |
|
|
<view class="divider-line"></view> |
|
|
</view> |
|
|
</view> |
|
|
<!-- 有数据时显示 --> |
|
|
<!-- 有数据时显示 --> |
|
|
<view class="memorial-cards" v-if="memorialItems.length > 0" :class="{'single-item': memorialItems.length === 1}"> |
|
|
<view |
|
|
|
|
|
class="memorial-cards" |
|
|
|
|
|
v-if="memorialItems.length > 0" |
|
|
|
|
|
:class="{ 'single-item': memorialItems.length === 1 }" |
|
|
|
|
|
> |
|
|
<!-- 单条数据特殊展示 --> |
|
|
<!-- 单条数据特殊展示 --> |
|
|
<template v-if="memorialItems.length === 1"> |
|
|
<template v-if="memorialItems.length === 1"> |
|
|
<view class="memorial-card-single" @click="handleMemorialClick(0)"> |
|
|
<view class="memorial-card-single" @click="handleMemorialClick(0)"> |
|
|
<view class="single-card-wrapper"> |
|
|
<view class="single-card-wrapper"> |
|
|
<image :src="showImg(memorialItems[0].goodsImg )" mode="aspectFill" class="memorial-img-single"></image> |
|
|
<image |
|
|
|
|
|
:src="showImg(memorialItems[0].goodsImg)" |
|
|
|
|
|
mode="aspectFill" |
|
|
|
|
|
class="memorial-img-single" |
|
|
|
|
|
></image> |
|
|
<view class="single-overlay"> |
|
|
<view class="single-overlay"> |
|
|
<view class="single-badge">专属纪念册</view> |
|
|
<view class="single-badge">专属纪念册</view> |
|
|
<view class="single-title">{{ memorialItems[0].goodsTitle || '数字资产纪念册' }}</view> |
|
|
<view class="single-title">{{ |
|
|
|
|
|
memorialItems[0].goodsTitle || "数字资产纪念册" |
|
|
|
|
|
}}</view> |
|
|
<view class="single-desc">{{ memorialItems[0].code }}</view> |
|
|
<view class="single-desc">{{ memorialItems[0].code }}</view> |
|
|
<view class="single-action"> |
|
|
<view class="single-action"> |
|
|
<text class="action-text">立即查看</text> |
|
|
<text class="action-text">立即查看</text> |
|
@ -174,10 +265,21 @@ |
|
|
</template> |
|
|
</template> |
|
|
<!-- 多条数据正常展示 --> |
|
|
<!-- 多条数据正常展示 --> |
|
|
<template v-else> |
|
|
<template v-else> |
|
|
<view class="memorial-card" v-for="(item, index) in memorialItems" :key="index" @click="handleMemorialClick(index)"> |
|
|
<view |
|
|
<image :src="showImg(item.goodsImg )" mode="aspectFill" class="memorial-img"></image> |
|
|
class="memorial-card" |
|
|
|
|
|
v-for="(item, index) in memorialItems" |
|
|
|
|
|
:key="index" |
|
|
|
|
|
@click="handleMemorialClick(index)" |
|
|
|
|
|
> |
|
|
|
|
|
<image |
|
|
|
|
|
:src="showImg(item.goodsImg)" |
|
|
|
|
|
mode="aspectFill" |
|
|
|
|
|
class="memorial-img" |
|
|
|
|
|
></image> |
|
|
<view class="memorial-info"> |
|
|
<view class="memorial-info"> |
|
|
<text class="memorial-title">{{ item.goodsTitle || '数字资产纪念册' }}</text> |
|
|
<text class="memorial-title">{{ |
|
|
|
|
|
item.goodsTitle || "数字资产纪念册" |
|
|
|
|
|
}}</text> |
|
|
<text class="memorial-more">MORE</text> |
|
|
<text class="memorial-more">MORE</text> |
|
|
</view> |
|
|
</view> |
|
|
</view> |
|
|
</view> |
|
@ -196,7 +298,12 @@ |
|
|
|
|
|
|
|
|
<!-- 底部菜单 --> |
|
|
<!-- 底部菜单 --> |
|
|
<view class="bottom-menu"> |
|
|
<view class="bottom-menu"> |
|
|
<view class="menu-item" v-for="(item, index) in menuItems" :key="index" @click="handleMenuClick(item)"> |
|
|
<view |
|
|
|
|
|
class="menu-item" |
|
|
|
|
|
v-for="(item, index) in menuItems" |
|
|
|
|
|
:key="index" |
|
|
|
|
|
@click="handleMenuClick(item)" |
|
|
|
|
|
> |
|
|
<text>{{ item.title }}</text> |
|
|
<text>{{ item.title }}</text> |
|
|
</view> |
|
|
</view> |
|
|
</view> |
|
|
</view> |
|
@ -214,7 +321,11 @@ |
|
|
<view class="popup-content"> |
|
|
<view class="popup-content"> |
|
|
<view class="input-section"> |
|
|
<view class="input-section"> |
|
|
<text class="input-label">请输入兑换码</text> |
|
|
<text class="input-label">请输入兑换码</text> |
|
|
<input class="exchange-input" v-model="exchangeCode" placeholder="请输入兑换码" /> |
|
|
<input |
|
|
|
|
|
class="exchange-input" |
|
|
|
|
|
v-model="exchangeCode" |
|
|
|
|
|
placeholder="请输入兑换码" |
|
|
|
|
|
/> |
|
|
</view> |
|
|
</view> |
|
|
<view class="popup-actions"> |
|
|
<view class="popup-actions"> |
|
|
<button class="cancel-btn" @click="closeExchangePopup">取消</button> |
|
|
<button class="cancel-btn" @click="closeExchangePopup">取消</button> |
|
@ -240,26 +351,33 @@ |
|
|
data() { |
|
|
data() { |
|
|
return { |
|
|
return { |
|
|
userInfo: {}, |
|
|
userInfo: {}, |
|
|
defaultAvatar: "https://changshu.js-dyyj.com/uploads/20250326/516242619f0772bee371a60684618c01.png", |
|
|
defaultAvatar: |
|
|
|
|
|
"https://changshu.js-dyyj.com/uploads/20250326/516242619f0772bee371a60684618c01.png", |
|
|
userStats: { |
|
|
userStats: { |
|
|
following: "140", |
|
|
following: "140", |
|
|
followers: "2462", |
|
|
followers: "2462", |
|
|
likes: "5.4万", |
|
|
likes: "5.4万", |
|
|
}, |
|
|
}, |
|
|
agentList: [{ |
|
|
agentList: [ |
|
|
avatar: "https://epic.js-dyyj.com/uploads/20250728/d27ef6e6c26877da7775664fed376c6f.png", |
|
|
{ |
|
|
|
|
|
avatar: |
|
|
|
|
|
"https://epic.js-dyyj.com/uploads/20250728/d27ef6e6c26877da7775664fed376c6f.png", |
|
|
}, |
|
|
}, |
|
|
{ |
|
|
{ |
|
|
avatar: "https://epic.js-dyyj.com/uploads/20250728/d7bf0dd2f3f272afba687b525a7c575c.png", |
|
|
avatar: |
|
|
|
|
|
"https://epic.js-dyyj.com/uploads/20250728/d7bf0dd2f3f272afba687b525a7c575c.png", |
|
|
}, |
|
|
}, |
|
|
{ |
|
|
{ |
|
|
avatar: "https://epic.js-dyyj.com/uploads/20250728/d27ef6e6c26877da7775664fed376c6f.png", |
|
|
avatar: |
|
|
|
|
|
"https://epic.js-dyyj.com/uploads/20250728/d27ef6e6c26877da7775664fed376c6f.png", |
|
|
}, |
|
|
}, |
|
|
{ |
|
|
{ |
|
|
avatar: "https://epic.js-dyyj.com/uploads/20250728/d7bf0dd2f3f272afba687b525a7c575c.png", |
|
|
avatar: |
|
|
|
|
|
"https://epic.js-dyyj.com/uploads/20250728/d7bf0dd2f3f272afba687b525a7c575c.png", |
|
|
}, |
|
|
}, |
|
|
], |
|
|
], |
|
|
menuItems: [{ |
|
|
menuItems: [ |
|
|
|
|
|
{ |
|
|
title: "账号与安全", |
|
|
title: "账号与安全", |
|
|
icon: "🔒", |
|
|
icon: "🔒", |
|
|
}, |
|
|
}, |
|
@ -283,10 +401,12 @@ |
|
|
title: "帮助与客服", |
|
|
title: "帮助与客服", |
|
|
icon: "💬", |
|
|
icon: "💬", |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
], |
|
|
], |
|
|
exchangeCode: "", // 兑换码 |
|
|
exchangeCode: "", // 兑换码 |
|
|
memorialItems:[] |
|
|
memorialItems: [], |
|
|
|
|
|
assetList: [ |
|
|
|
|
|
|
|
|
|
|
|
], |
|
|
}; |
|
|
}; |
|
|
}, |
|
|
}, |
|
|
onLoad() { |
|
|
onLoad() { |
|
@ -297,21 +417,20 @@ |
|
|
this.userInfo = |
|
|
this.userInfo = |
|
|
(uni.getStorageSync("userInfo") && |
|
|
(uni.getStorageSync("userInfo") && |
|
|
JSON.parse(uni.getStorageSync("userInfo"))) || |
|
|
JSON.parse(uni.getStorageSync("userInfo"))) || |
|
|
this.$store.state.user.userInfo || {}; |
|
|
this.$store.state.user.userInfo || |
|
|
|
|
|
{}; |
|
|
console.log(this.userInfo); |
|
|
console.log(this.userInfo); |
|
|
if (this.userInfo && this.userInfo.token) { |
|
|
if (this.userInfo && this.userInfo.token) { |
|
|
this.getListIp() |
|
|
this.getListIp(); |
|
|
|
|
|
this.getOrderChildList(); |
|
|
} |
|
|
} |
|
|
}, |
|
|
}, |
|
|
methods: { |
|
|
methods: { |
|
|
getListIp() { |
|
|
getListIp() { |
|
|
this.Post({}, |
|
|
this.Post({}, "/framework/order/ipOrderList", "DES").then((res) => { |
|
|
"/framework/order/ipOrderList", |
|
|
|
|
|
"DES" |
|
|
|
|
|
).then((res) => { |
|
|
|
|
|
if (res.code == 200) { |
|
|
if (res.code == 200) { |
|
|
if (res.data) { |
|
|
if (res.data) { |
|
|
this.memorialItems = res.data.slice(0,2) |
|
|
this.memorialItems = res.data.slice(0, 2); |
|
|
} |
|
|
} |
|
|
} else { |
|
|
} else { |
|
|
uni.showToast({ |
|
|
uni.showToast({ |
|
@ -321,6 +440,47 @@ |
|
|
} |
|
|
} |
|
|
}); |
|
|
}); |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
// 获取可使用的商品列表 |
|
|
|
|
|
getOrderChildList() { |
|
|
|
|
|
this.Post({}, "/framework/order/orderChildList", "DES") |
|
|
|
|
|
.then((res) => { |
|
|
|
|
|
if (res.code == 200) { |
|
|
|
|
|
if (res.data && res.data.length > 0) { |
|
|
|
|
|
// 将接口返回的数据转换为assetList格式 |
|
|
|
|
|
this.assetList = res.data.map((item) => ({ |
|
|
|
|
|
image: |
|
|
|
|
|
item.goodsImg || |
|
|
|
|
|
"/uploads/20250729/42598a2dcf4c9a6f8c6e122e54b65c4f.png", |
|
|
|
|
|
badge: "待使用", |
|
|
|
|
|
name: item.goodsTitle || "数字资产权益", |
|
|
|
|
|
desc: item.type==1?'您的专属数字资产':item.type==2?'IP资源商品': item.skuName, |
|
|
|
|
|
actionText:item.type==1?'去查看':item.type==2?'去预约': "去核销", |
|
|
|
|
|
status: "待使用", |
|
|
|
|
|
...item, // 保留原始数据 |
|
|
|
|
|
})); |
|
|
|
|
|
} else { |
|
|
|
|
|
// 如果没有数据,清空assetList,这样会显示原来的图片风格 |
|
|
|
|
|
this.assetList = []; |
|
|
|
|
|
} |
|
|
|
|
|
} else { |
|
|
|
|
|
uni.showToast({ |
|
|
|
|
|
title: res.msg || "获取商品列表失败", |
|
|
|
|
|
icon: "none", |
|
|
|
|
|
}); |
|
|
|
|
|
// 接口失败时也清空数据,显示原来的图片风格 |
|
|
|
|
|
this.assetList = []; |
|
|
|
|
|
} |
|
|
|
|
|
}) |
|
|
|
|
|
.catch((error) => { |
|
|
|
|
|
console.error("获取商品列表失败:", error); |
|
|
|
|
|
uni.showToast({ |
|
|
|
|
|
title: "获取商品列表失败", |
|
|
|
|
|
icon: "none", |
|
|
|
|
|
}); |
|
|
|
|
|
this.assetList = []; |
|
|
|
|
|
}); |
|
|
|
|
|
}, |
|
|
// 返回上一页 |
|
|
// 返回上一页 |
|
|
goBack() { |
|
|
goBack() { |
|
|
uni.navigateBack(); |
|
|
uni.navigateBack(); |
|
@ -369,7 +529,8 @@ |
|
|
case "帮助与客服": |
|
|
case "帮助与客服": |
|
|
uni.showModal({ |
|
|
uni.showModal({ |
|
|
title: "客服电话", |
|
|
title: "客服电话", |
|
|
content: "0515-69186109\n服务时间:周一至周五\n9:00-12:00,13:00-18:00", |
|
|
content: |
|
|
|
|
|
"0515-69186109\n服务时间:周一至周五\n9:00-12:00,13:00-18:00", |
|
|
confirmText: "拨打", |
|
|
confirmText: "拨打", |
|
|
success: (res) => { |
|
|
success: (res) => { |
|
|
if (res.confirm) { |
|
|
if (res.confirm) { |
|
@ -400,9 +561,36 @@ |
|
|
}); |
|
|
}); |
|
|
} |
|
|
} |
|
|
}, |
|
|
}, |
|
|
|
|
|
handleAction(item){ |
|
|
|
|
|
if(item.type==1){ |
|
|
|
|
|
uni.navigateTo({ |
|
|
|
|
|
url: "/subPackages/memorialAlbum/detail?id=" + item.childId, |
|
|
|
|
|
}); |
|
|
|
|
|
}else if(item.type==2){ |
|
|
|
|
|
uni.navigateTo({ |
|
|
|
|
|
url: `/subPackages/orderQy/confrim?goodsId=${item.goodsId}&orderChildId=${item.childId}`, |
|
|
|
|
|
}); |
|
|
|
|
|
}else{ |
|
|
|
|
|
uni.showToast({ |
|
|
|
|
|
title: "使用门票", |
|
|
|
|
|
icon: "none", |
|
|
|
|
|
}); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
|
// 数字资产权益点击 |
|
|
// 数字资产权益点击 |
|
|
handleAssetAction(action) { |
|
|
handleAssetAction(action, asset = null) { |
|
|
|
|
|
// 如果传入了具体的asset对象,说明是点击了滑动卡片中的某个商品 |
|
|
|
|
|
if (asset && asset.orderId) { |
|
|
|
|
|
// 这里可以根据需要跳转到具体的商品详情页面 |
|
|
|
|
|
uni.navigateTo({ |
|
|
|
|
|
url: `/subPackages/orderQy/detail?id=${asset.orderId}`, |
|
|
|
|
|
}); |
|
|
|
|
|
return; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 否则是点击底部操作按钮 |
|
|
switch (action) { |
|
|
switch (action) { |
|
|
case "待使用": |
|
|
case "待使用": |
|
|
uni.navigateTo({ |
|
|
uni.navigateTo({ |
|
@ -429,7 +617,14 @@ |
|
|
url: "/subPackages/orderQy/list", |
|
|
url: "/subPackages/orderQy/list", |
|
|
}); |
|
|
}); |
|
|
break; |
|
|
break; |
|
|
|
|
|
} |
|
|
|
|
|
}, |
|
|
|
|
|
showImgJdsz(img) { |
|
|
|
|
|
if (!img) return; |
|
|
|
|
|
if (img.indexOf("https://") != -1 || img.indexOf("http://") != -1) { |
|
|
|
|
|
return img; |
|
|
|
|
|
} else { |
|
|
|
|
|
return this.JDSU_IMG_URL + img; |
|
|
} |
|
|
} |
|
|
}, |
|
|
}, |
|
|
// 有感商品点击 |
|
|
// 有感商品点击 |
|
@ -486,9 +681,8 @@ |
|
|
return; |
|
|
return; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
this.Post( |
|
|
|
|
|
{ |
|
|
this.Post({ |
|
|
|
|
|
activeCode: this.exchangeCode.trim(), |
|
|
activeCode: this.exchangeCode.trim(), |
|
|
}, |
|
|
}, |
|
|
"/framework/order/active", |
|
|
"/framework/order/active", |
|
@ -498,15 +692,13 @@ |
|
|
uni.showToast({ |
|
|
uni.showToast({ |
|
|
title: "兑换成功,为您跳转订单页~", |
|
|
title: "兑换成功,为您跳转订单页~", |
|
|
icon: "none", |
|
|
icon: "none", |
|
|
|
|
|
|
|
|
}); |
|
|
}); |
|
|
this.closeExchangePopup() |
|
|
this.closeExchangePopup(); |
|
|
setTimeout(() => { |
|
|
setTimeout(() => { |
|
|
uni.navigateTo({ |
|
|
uni.navigateTo({ |
|
|
url: "/subPackages/orderQy/list" |
|
|
url: "/subPackages/orderQy/list", |
|
|
}) |
|
|
}); |
|
|
}, 2000) |
|
|
}, 2000); |
|
|
|
|
|
|
|
|
} else { |
|
|
} else { |
|
|
uni.showToast({ |
|
|
uni.showToast({ |
|
|
title: res.msg, |
|
|
title: res.msg, |
|
@ -514,7 +706,6 @@ |
|
|
}); |
|
|
}); |
|
|
} |
|
|
} |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
}, |
|
|
}, |
|
|
}, |
|
|
}, |
|
|
}; |
|
|
}; |
|
@ -740,7 +931,7 @@ |
|
|
.agent-section { |
|
|
.agent-section { |
|
|
margin: 0 47rpx; |
|
|
margin: 0 47rpx; |
|
|
border-radius: 20rpx; |
|
|
border-radius: 20rpx; |
|
|
margin-bottom: 30rpx; |
|
|
margin-bottom: 0rpx; |
|
|
overflow: hidden; |
|
|
overflow: hidden; |
|
|
display: flex; |
|
|
display: flex; |
|
|
align-items: center; |
|
|
align-items: center; |
|
@ -800,45 +991,164 @@ |
|
|
|
|
|
|
|
|
/* 数字资产权益 */ |
|
|
/* 数字资产权益 */ |
|
|
.digital-assets { |
|
|
.digital-assets { |
|
|
margin: 0 30rpx 0rpx; |
|
|
margin: 0 30rpx 30rpx; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.asset-header { |
|
|
|
|
|
margin-bottom: 20rpx; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.asset-title { |
|
|
|
|
|
font-size: 28rpx; |
|
|
|
|
|
color: #000000; |
|
|
|
|
|
font-weight: 500; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.asset-scroll-container { |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.asset-scroll { |
|
|
|
|
|
width: 100%; |
|
|
|
|
|
white-space: nowrap; |
|
|
|
|
|
overflow: hidden; |
|
|
|
|
|
|
|
|
|
|
|
/* 微信小程序隐藏横向滚动条 */ |
|
|
|
|
|
&::-webkit-scrollbar { |
|
|
|
|
|
display: none !important; |
|
|
|
|
|
width: 0 !important; |
|
|
|
|
|
height: 0 !important; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/* Firefox */ |
|
|
|
|
|
scrollbar-width: none; |
|
|
|
|
|
/* IE和Edge */ |
|
|
|
|
|
-ms-overflow-style: none; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.asset-cards { |
|
|
|
|
|
display: inline-flex; |
|
|
|
|
|
gap: 20rpx; |
|
|
|
|
|
padding: 30rpx 10rpx; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.asset-card { |
|
|
.asset-card { |
|
|
|
|
|
width: 500rpx; |
|
|
border-radius: 20rpx; |
|
|
border-radius: 20rpx; |
|
|
overflow: hidden; |
|
|
overflow: hidden; |
|
|
|
|
|
box-shadow: 0 15rpx 12rpx rgba(0, 0, 0, 0.15); |
|
|
|
|
|
transition: all 0.3s ease; |
|
|
|
|
|
position: relative; |
|
|
|
|
|
flex-shrink: 0; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.asset-bg { |
|
|
.asset-card:active { |
|
|
padding: 40rpx 30rpx 30rpx; |
|
|
transform: scale(0.98); |
|
|
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); |
|
|
box-shadow: 0 8rpx 30rpx rgba(0, 0, 0, 0.2); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.asset-card-wrapper { |
|
|
position: relative; |
|
|
position: relative; |
|
|
|
|
|
width: 100%; |
|
|
|
|
|
height: 300rpx; |
|
|
overflow: hidden; |
|
|
overflow: hidden; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.asset-bg::before { |
|
|
.asset-img { |
|
|
content: ""; |
|
|
width: 100%; |
|
|
|
|
|
height: 100%; |
|
|
|
|
|
transition: transform 0.3s ease; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.asset-card:active .asset-img { |
|
|
|
|
|
transform: scale(1.05); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.asset-overlay { |
|
|
position: absolute; |
|
|
position: absolute; |
|
|
top: 0; |
|
|
bottom: 0; |
|
|
left: 0; |
|
|
left: 0; |
|
|
right: 0; |
|
|
right: 0; |
|
|
bottom: 0; |
|
|
background: linear-gradient(transparent, rgba(0, 0, 0, 0.7)); |
|
|
background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><circle cx="85" cy="15" r="8" fill="rgba(255,255,255,0.1)"/><circle cx="15" cy="85" r="6" fill="rgba(255,255,255,0.08)"/><circle cx="70" cy="70" r="4" fill="rgba(255,255,255,0.06)"/></svg>'); |
|
|
padding: 40rpx 30rpx 30rpx; |
|
|
pointer-events: none; |
|
|
color: white; |
|
|
|
|
|
backdrop-filter: blur(10rpx); |
|
|
|
|
|
border: 1rpx solid rgba(255, 255, 255, 0.1); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.asset-title { |
|
|
.asset-badge { |
|
|
font-size: 32rpx; |
|
|
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); |
|
|
color: white; |
|
|
color: white; |
|
|
font-weight: 600; |
|
|
font-size: 20rpx; |
|
|
position: relative; |
|
|
padding: 6rpx 12rpx; |
|
|
z-index: 1; |
|
|
border-radius: 16rpx; |
|
|
|
|
|
display: inline-block; |
|
|
|
|
|
margin-bottom: 12rpx; |
|
|
|
|
|
font-weight: 500; |
|
|
|
|
|
box-shadow: 0 4rpx 12rpx rgba(102, 126, 234, 0.3); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.asset-name { |
|
|
|
|
|
font-size: 28rpx; |
|
|
|
|
|
font-weight: bold; |
|
|
|
|
|
margin-bottom: 6rpx; |
|
|
|
|
|
line-height: 1.3; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.asset-desc { |
|
|
|
|
|
font-size: 22rpx; |
|
|
|
|
|
color: rgba(255, 255, 255, 0.8); |
|
|
|
|
|
margin-bottom: 16rpx; |
|
|
|
|
|
line-height: 1.4; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.asset-action { |
|
|
|
|
|
display: flex; |
|
|
|
|
|
align-items: center; |
|
|
|
|
|
justify-content: space-between; |
|
|
|
|
|
background: rgba(255, 255, 255, 0.1); |
|
|
|
|
|
border-radius: 20rpx; |
|
|
|
|
|
padding: 10rpx 16rpx; |
|
|
|
|
|
backdrop-filter: blur(10rpx); |
|
|
|
|
|
border: 1rpx solid rgba(255, 255, 255, 0.2); |
|
|
|
|
|
white-space: nowrap; |
|
|
|
|
|
min-width: 0; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.action-text { |
|
|
|
|
|
font-size: 24rpx; |
|
|
|
|
|
font-weight: 500; |
|
|
|
|
|
color: white; |
|
|
|
|
|
flex-shrink: 0; |
|
|
|
|
|
overflow: hidden; |
|
|
|
|
|
text-overflow: ellipsis; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.action-arrow { |
|
|
|
|
|
font-size: 26rpx; |
|
|
|
|
|
font-weight: bold; |
|
|
|
|
|
color: white; |
|
|
|
|
|
transition: transform 0.3s ease; |
|
|
|
|
|
flex-shrink: 0; |
|
|
|
|
|
margin-left: 8rpx; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.asset-card:active .action-arrow { |
|
|
|
|
|
transform: translateX(6rpx); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/* 原来的图片风格 */ |
|
|
|
|
|
.asset-card-old { |
|
|
|
|
|
border-radius: 20rpx; |
|
|
|
|
|
overflow: hidden; |
|
|
|
|
|
margin-bottom: 20rpx; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/* 底部操作按钮 */ |
|
|
.asset-actions { |
|
|
.asset-actions { |
|
|
display: flex; |
|
|
display: flex; |
|
|
padding: 20rpx 0; |
|
|
padding: 20rpx 0; |
|
|
|
|
|
|
|
|
background: white; |
|
|
background: white; |
|
|
|
|
|
border-radius: 20rpx; |
|
|
font-size: 25rpx; |
|
|
font-size: 25rpx; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|