修正了 pages 名为拼音的问题
This commit is contained in:
1184
pages/fighter/fighter.js
Normal file
1184
pages/fighter/fighter.js
Normal file
File diff suppressed because it is too large
Load Diff
14
pages/fighter/fighter.json
Normal file
14
pages/fighter/fighter.json
Normal file
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"usingComponents": {
|
||||
"global-notification": "/components/global-notification/global-notification",
|
||||
"chenghao-tag": "/components/chenghao-tag/chenghao-tag",
|
||||
"custom-tab-bar": "/custom-tab-bar/index"
|
||||
},
|
||||
"navigationBarBackgroundColor": "#e8ecf4",
|
||||
"navigationBarTextStyle": "black",
|
||||
"navigationBarTitleText": "我的",
|
||||
"backgroundColor": "#e8ecf4",
|
||||
"backgroundTextStyle": "light",
|
||||
"enablePullDownRefresh": false,
|
||||
"onReachBottomDistance": 50
|
||||
}
|
||||
384
pages/fighter/fighter.wxml
Normal file
384
pages/fighter/fighter.wxml
Normal file
@@ -0,0 +1,384 @@
|
||||
<image class="page-bg" src="{{imgUrls.pageBg}}" mode="aspectFill" />
|
||||
|
||||
<!-- 未注册打手(无任何服务身份时显示) -->
|
||||
<block wx:if="{{!isDashou && !isGuanshi && !isZuzhang && !isKaoheguan}}">
|
||||
<view class="unreg-area">
|
||||
<view class="unreg-card">
|
||||
<text class="unreg-title">打手认证</text>
|
||||
<input class="unreg-input" type="text" placeholder="输入邀请码" maxlength="100" value="{{inviteCode}}" bindinput="onInviteCodeInput" placeholder-class="ph" />
|
||||
<view class="unreg-btn" bindtap="onRegister">
|
||||
<text class="unreg-btn-text">立即注册</text>
|
||||
</view>
|
||||
<view class="unreg-btn unreg-btn-secondary" bindtap="quickRegisterAsPlatform">
|
||||
<text class="unreg-btn-text">平台直签注册</text>
|
||||
</view>
|
||||
<view class="unreg-clear" bindtap="clearCache">
|
||||
<image class="unreg-clear-icon" src="{{imgUrls.iconClear}}" mode="aspectFit" />
|
||||
<text class="unreg-clear-text">清除缓存,回到点单端</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</block>
|
||||
|
||||
<!-- 已注册 -->
|
||||
<block wx:else>
|
||||
<view class="main-body {{layoutSparse ? 'layout-sparse-padding' : ''}}">
|
||||
<view class="refresh-btn" bindtap="onTapRefresh">
|
||||
<image class="refresh-icon" src="{{imgUrls.iconRefresh}}" mode="aspectFit" />
|
||||
</view>
|
||||
|
||||
<view class="user-card">
|
||||
<image class="user-card-bg" src="{{imgUrls.userCardBg}}" mode="aspectFill" />
|
||||
<view class="user-card-inner">
|
||||
<image class="user-avatar" src="{{avatarUrl || imgUrls.avatarDefault}}" mode="aspectFill" bindtap="previewAvatar" />
|
||||
<view class="user-info">
|
||||
<view class="name-row">
|
||||
<text class="user-name">{{dashouNicheng || '打手'}}</text>
|
||||
<view class="role-tags">
|
||||
<view class="role-tag role-tag-dashou">打手</view>
|
||||
<view class="role-tag role-tag-guanshi" wx:if="{{isGuanshi}}">管事</view>
|
||||
<view class="role-tag role-tag-zuzhang" wx:if="{{isZuzhang}}">组长</view>
|
||||
<view class="role-tag role-tag-kaohe" wx:if="{{isKaoheguan}}">考核</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="uid-row" bindtap="copyUid">
|
||||
<text class="uid-text">UID: {{uid || '--'}}</text>
|
||||
<image class="copy-icon" src="{{imgUrls.iconCopy}}" mode="aspectFit" />
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- 联系客服(企业微信) -->
|
||||
<view class="kefu-banner" bindtap="goToKefu">
|
||||
<image class="kefu-banner-bg" src="{{imgUrls.kefuBannerBg}}" mode="aspectFill" />
|
||||
<view class="kefu-banner-overlay"></view>
|
||||
<view class="kefu-banner-content">
|
||||
<view class="kefu-banner-left">
|
||||
<image class="kefu-banner-icon" src="{{imgUrls.iconKefu}}" mode="aspectFit" />
|
||||
<view class="kefu-banner-text">
|
||||
<text class="kefu-banner-title">在线客服</text>
|
||||
<text class="kefu-banner-sub">企业微信 · 即时响应</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="kefu-banner-btn">联系</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="badge-zone" wx:if="{{chenghaoList.length > 0 || (isGuanshi && guanshiChenghaoList.length > 0)}}">
|
||||
<scroll-view scroll-x class="badge-scroll" wx:if="{{chenghaoList.length > 0}}">
|
||||
<view class="badge-tag-wrap" wx:for="{{chenghaoList}}" wx:key="index">
|
||||
<chenghao-tag mingcheng="{{item.mingcheng}}" texiaoJson="{{item.texiao_json}}" />
|
||||
</view>
|
||||
</scroll-view>
|
||||
<scroll-view scroll-x class="badge-scroll badge-scroll-sub" wx:if="{{isGuanshi && guanshiChenghaoList.length > 0}}">
|
||||
<view class="badge-tag-wrap" wx:for="{{guanshiChenghaoList}}" wx:key="index">
|
||||
<chenghao-tag mingcheng="{{item.mingcheng}}" texiaoJson="{{item.texiao_json}}" />
|
||||
</view>
|
||||
</scroll-view>
|
||||
</view>
|
||||
|
||||
<!-- 我的资产 -->
|
||||
<view class="section-card section-asset">
|
||||
<!-- 黑卡 VIP -->
|
||||
<view class="vip-black-card" bindtap="goToRecharge">
|
||||
<image class="vip-black-bg" src="{{imgUrls.vipCardBg}}" mode="aspectFill" />
|
||||
<view class="vip-black-overlay"></view>
|
||||
<view class="vip-black-body">
|
||||
<view class="vip-black-text">
|
||||
<text class="vip-black-title">会员充值</text>
|
||||
<text class="vip-black-sub">VIP 专属权益 · 尊享服务</text>
|
||||
</view>
|
||||
<view class="vip-black-action">
|
||||
<text class="vip-black-go">去充值</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="asset-panel">
|
||||
<view class="asset-panel-fallback"></view>
|
||||
<image class="asset-panel-bg" src="{{imgUrls.assetPanelBg}}" mode="aspectFill" />
|
||||
<view class="asset-panel-inner">
|
||||
<view class="asset-panel-head">
|
||||
<image class="asset-panel-head-icon" src="{{imgUrls.iconSectionAsset}}" mode="aspectFit" />
|
||||
<text class="asset-panel-head-title">我的资产</text>
|
||||
</view>
|
||||
<view class="total-asset-row">
|
||||
<view class="total-asset-fallback"></view>
|
||||
<image class="total-asset-bg" src="{{imgUrls.totalAssetBg}}" mode="aspectFill" />
|
||||
<view class="total-asset-inner">
|
||||
<view class="total-asset-left">
|
||||
<text class="total-asset-label">总资产(可提现)</text>
|
||||
<text class="total-asset-val">¥{{totalAssets}}</text>
|
||||
<view class="asset-breakdown-list">
|
||||
<view class="asset-breakdown-line" wx:for="{{assetBreakdown}}" wx:key="label">
|
||||
<text class="breakdown-name">{{item.label}}</text>
|
||||
<text class="breakdown-amt">¥{{item.amount}}</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="withdraw-btn" catchtap="goToTotalWithdraw">提现</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="stats-grid">
|
||||
<view class="mini-stat">
|
||||
<text class="mini-val">{{jinfen || '0'}}</text>
|
||||
<text class="mini-lbl">积分</text>
|
||||
</view>
|
||||
<view class="mini-stat">
|
||||
<text class="mini-val">{{yajin || '0.00'}}</text>
|
||||
<text class="mini-lbl">保证金</text>
|
||||
</view>
|
||||
<view class="mini-stat" wx:if="{{isGuanshi}}">
|
||||
<text class="mini-val">{{yaoqingzongshu || 0}}</text>
|
||||
<text class="mini-lbl">邀请总数</text>
|
||||
</view>
|
||||
<view class="mini-stat" wx:if="{{isGuanshi}}">
|
||||
<text class="mini-val">{{yichongzhiDashou || 0}}</text>
|
||||
<text class="mini-lbl">已充值</text>
|
||||
</view>
|
||||
<view class="mini-stat" wx:if="{{isGuanshi}}">
|
||||
<text class="mini-val">{{fenyongzonge || '0.00'}}</text>
|
||||
<text class="mini-lbl">分成总额</text>
|
||||
</view>
|
||||
<view class="mini-stat" wx:if="{{isGuanshi}}">
|
||||
<text class="mini-val">{{zhuanhualv || 0}}%</text>
|
||||
<text class="mini-lbl">有效率</text>
|
||||
</view>
|
||||
<view class="mini-stat" wx:if="{{isZuzhang}}">
|
||||
<text class="mini-val">{{guanshiCount || 0}}</text>
|
||||
<text class="mini-lbl">邀请管事</text>
|
||||
</view>
|
||||
<view class="mini-stat" wx:if="{{isZuzhang}}">
|
||||
<text class="mini-val">{{fenhongZonge || '0.00'}}</text>
|
||||
<text class="mini-lbl">分红总额</text>
|
||||
</view>
|
||||
<view class="mini-stat" wx:if="{{isKaoheguan}}">
|
||||
<text class="mini-val">{{shenheZongshu || 0}}</text>
|
||||
<text class="mini-lbl">审核总数</text>
|
||||
</view>
|
||||
<view class="mini-stat" wx:if="{{isKaoheguan}}">
|
||||
<text class="mini-val">{{tongguoZongshu || 0}}</text>
|
||||
<text class="mini-lbl">通过总数</text>
|
||||
</view>
|
||||
<view class="mini-stat" wx:if="{{isKaoheguan}}">
|
||||
<text class="mini-val">{{pendingShenheCount || 0}}</text>
|
||||
<text class="mini-lbl">待审核</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- 荣耀排行榜(无外层大框,梯形榜格) -->
|
||||
<view class="rank-section">
|
||||
<view class="rank-hub-head">
|
||||
<image class="rank-hub-head-icon" src="{{imgUrls.iconSectionRank}}" mode="aspectFit" />
|
||||
<view class="rank-hub-head-text">
|
||||
<text class="rank-hub-title">荣耀排行榜</text>
|
||||
<text class="rank-hub-sub">四榜实时更新</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="rank-grid">
|
||||
<view
|
||||
class="rank-cell {{item.shapeClass}} {{item.themeClass}}"
|
||||
wx:for="{{rankBoardList}}"
|
||||
wx:key="type"
|
||||
bindtap="goToRanking"
|
||||
data-type="{{item.type}}"
|
||||
>
|
||||
<view class="rank-cell-inner">
|
||||
<image class="rank-bg-icon" src="{{item.icon}}" mode="aspectFit" />
|
||||
<view class="rank-content">
|
||||
<image class="rank-main-icon" src="{{item.icon}}" mode="aspectFit" />
|
||||
<text class="rank-cell-name">{{item.name}}</text>
|
||||
<text class="rank-cell-sub">{{item.sub}}</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- 打手功能 -->
|
||||
<view class="section-card">
|
||||
<view class="section-head-line">
|
||||
<image class="section-head-icon" src="{{imgUrls.iconSectionFunc}}" mode="aspectFit" />
|
||||
<text class="section-title section-title-sm">打手功能</text>
|
||||
</view>
|
||||
<view class="func-panel">
|
||||
<image class="func-panel-bg" src="{{imgUrls.funcPanelBg}}" mode="aspectFill" />
|
||||
<view class="func-grid {{layoutSparse ? 'func-grid-sparse' : ''}}">
|
||||
<view class="func-cell" bindtap="goToReceiveOrder">
|
||||
<image class="func-icon" src="{{imgUrls.iconGame}}" mode="aspectFit" />
|
||||
<text class="func-label">抢单大厅</text>
|
||||
</view>
|
||||
<view class="func-cell" bindtap="goToMyOrders">
|
||||
<image class="func-icon" src="{{imgUrls.iconOrders}}" mode="aspectFit" />
|
||||
<text class="func-label">我的订单</text>
|
||||
</view>
|
||||
<view class="func-cell" bindtap="goToMyPunishment">
|
||||
<image class="func-icon" src="{{imgUrls.iconPunish}}" mode="aspectFit" />
|
||||
<text class="func-label">我的处罚</text>
|
||||
</view>
|
||||
<view class="func-cell" bindtap="goToKaohe">
|
||||
<image class="func-icon" src="{{imgUrls.iconMedal}}" mode="aspectFit" />
|
||||
<text class="func-label">考核金牌</text>
|
||||
</view>
|
||||
<view class="func-cell" bindtap="goToGuanzhuKs">
|
||||
<image class="func-icon" src="{{imgUrls.iconKuaishou}}" mode="aspectFit" />
|
||||
<text class="func-label">关注快手</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- 管事功能 -->
|
||||
<view class="section-card" wx:if="{{isGuanshi}}">
|
||||
<view class="section-head-line">
|
||||
<image class="section-head-icon" src="{{imgUrls.iconSectionGuanshi}}" mode="aspectFit" />
|
||||
<text class="section-title section-title-sm">管事功能</text>
|
||||
</view>
|
||||
<view class="func-panel">
|
||||
<image class="func-panel-bg" src="{{imgUrls.funcPanelBg}}" mode="aspectFill" />
|
||||
<view class="func-grid">
|
||||
<view class="func-cell" bindtap="goToInviteUser">
|
||||
<image class="func-icon" src="{{imgUrls.iconInvite}}" mode="aspectFit" />
|
||||
<text class="func-label">邀请用户</text>
|
||||
</view>
|
||||
<view class="func-cell" bindtap="goToMySubordinate">
|
||||
<image class="func-icon" src="{{imgUrls.iconSub}}" mode="aspectFit" />
|
||||
<text class="func-label">我的下级</text>
|
||||
</view>
|
||||
<view class="func-cell" bindtap="goToRechargeRecord">
|
||||
<image class="func-icon" src="{{imgUrls.iconRecord}}" mode="aspectFit" />
|
||||
<text class="func-label">会员记录</text>
|
||||
</view>
|
||||
<view class="func-cell" bindtap="goToPromoPoster">
|
||||
<image class="func-icon" src="{{imgUrls.iconPoster}}" mode="aspectFit" />
|
||||
<text class="func-label">推广海报</text>
|
||||
</view>
|
||||
<view class="func-cell" bindtap="contactZuzhang">
|
||||
<image class="func-icon" src="{{imgUrls.iconContact}}" mode="aspectFit" />
|
||||
<text class="func-label">联系组长</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- 组长功能 -->
|
||||
<view class="section-card" wx:if="{{isZuzhang}}">
|
||||
<view class="section-head-line">
|
||||
<image class="section-head-icon" src="{{imgUrls.iconSectionZuzhang}}" mode="aspectFit" />
|
||||
<text class="section-title section-title-sm">组长功能</text>
|
||||
</view>
|
||||
<view class="func-panel">
|
||||
<image class="func-panel-bg" src="{{imgUrls.funcPanelBg}}" mode="aspectFill" />
|
||||
<view class="func-grid">
|
||||
<view class="func-cell" bindtap="goToFenhongJilu">
|
||||
<image class="func-icon" src="{{imgUrls.iconRecord}}" mode="aspectFit" />
|
||||
<text class="func-label">分红记录</text>
|
||||
</view>
|
||||
<view class="func-cell" bindtap="goToYaoqingGuanshi">
|
||||
<image class="func-icon" src="{{imgUrls.iconInvite}}" mode="aspectFit" />
|
||||
<text class="func-label">邀请管事</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- 考核官功能 -->
|
||||
<view class="section-card" wx:if="{{isKaoheguan}}">
|
||||
<view class="section-head-line">
|
||||
<image class="section-head-icon" src="{{imgUrls.iconSectionKaohe}}" mode="aspectFit" />
|
||||
<text class="section-title section-title-sm">考核官功能</text>
|
||||
</view>
|
||||
<view class="func-panel">
|
||||
<image class="func-panel-bg" src="{{imgUrls.funcPanelBg}}" mode="aspectFill" />
|
||||
<view class="func-grid">
|
||||
<view class="func-cell" bindtap="goToKaoheDafen">
|
||||
<image class="func-icon" src="{{imgUrls.iconKaoheDafen}}" mode="aspectFit" />
|
||||
<text class="func-label">考核打分</text>
|
||||
</view>
|
||||
<view class="func-cell" bindtap="goToKaoheJilu">
|
||||
<image class="func-icon" src="{{imgUrls.iconKaoheJilu}}" mode="aspectFit" />
|
||||
<text class="func-label">考核记录</text>
|
||||
</view>
|
||||
<view class="func-cell" bindtap="goToKaoheZhongxin">
|
||||
<image class="func-icon" src="{{imgUrls.iconKaoheZhongxin}}" mode="aspectFit" />
|
||||
<text class="func-label">考核中心</text>
|
||||
</view>
|
||||
<view class="func-cell" bindtap="goToKaoheWithdraw">
|
||||
<image class="func-icon" src="{{imgUrls.iconWithdraw}}" mode="aspectFit" />
|
||||
<text class="func-label">考核提现</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- 身份认证:仅未认证身份 + 商家(已认证可进商家端) -->
|
||||
<view class="section-card" wx:if="{{showAuthSection}}">
|
||||
<view class="section-head-line">
|
||||
<image class="section-head-icon" src="{{imgUrls.iconSectionMore}}" mode="aspectFit" />
|
||||
<text class="section-title section-title-sm">身份认证</text>
|
||||
</view>
|
||||
<view class="func-panel">
|
||||
<image class="func-panel-bg" src="{{imgUrls.authPanelBg}}" mode="aspectFill" />
|
||||
<view class="auth-grid auth-grid-dynamic">
|
||||
<view
|
||||
class="auth-cell"
|
||||
wx:for="{{pendingAuthList}}"
|
||||
wx:key="type"
|
||||
bindtap="onTapAuthItem"
|
||||
data-type="{{item.type}}"
|
||||
>
|
||||
<image class="auth-cell-icon" src="{{item.icon}}" mode="aspectFit" />
|
||||
<text class="auth-cell-name">{{item.name}}</text>
|
||||
<text class="auth-cell-tag {{item.done ? 'auth-cell-tag-done' : ''}}">{{item.tag}}</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- 更多 -->
|
||||
<view class="section-card section-last">
|
||||
<view class="section-head-line">
|
||||
<image class="section-head-icon" src="{{imgUrls.iconSectionMore}}" mode="aspectFit" />
|
||||
<text class="section-title section-title-sm">更多</text>
|
||||
</view>
|
||||
<view class="list-card">
|
||||
<image class="list-card-bg" src="{{imgUrls.listBg}}" mode="aspectFill" />
|
||||
<view class="list-card-inner">
|
||||
<view class="list-item" bindtap="contactInviter">
|
||||
<image class="list-icon" src="{{imgUrls.iconInvite}}" mode="aspectFit" />
|
||||
<text class="list-text">联系邀请人</text>
|
||||
<image class="list-arrow" src="{{imgUrls.iconArrow}}" mode="aspectFit" />
|
||||
</view>
|
||||
<view class="list-item" bindtap="goToModifyInfo">
|
||||
<image class="list-icon" src="{{imgUrls.iconEdit}}" mode="aspectFit" />
|
||||
<text class="list-text">修改个人信息</text>
|
||||
<image class="list-arrow" src="{{imgUrls.iconArrow}}" mode="aspectFit" />
|
||||
</view>
|
||||
<view class="list-item" bindtap="goToRules">
|
||||
<image class="list-icon" src="{{imgUrls.iconBook}}" mode="aspectFit" />
|
||||
<text class="list-text">用户规则</text>
|
||||
<image class="list-arrow" src="{{imgUrls.iconArrow}}" mode="aspectFit" />
|
||||
</view>
|
||||
<view class="list-item" bindtap="clearCache">
|
||||
<image class="list-icon" src="{{imgUrls.iconClear}}" mode="aspectFit" />
|
||||
<text class="list-text">清除缓存</text>
|
||||
<text class="list-sub">回点单端</text>
|
||||
<image class="list-arrow" src="{{imgUrls.iconArrow}}" mode="aspectFit" />
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</block>
|
||||
|
||||
<view class="loading-mask" wx:if="{{isLoading}}">
|
||||
<view class="loading-spinner"></view>
|
||||
</view>
|
||||
|
||||
<global-notification id="global-notification" />
|
||||
<custom-tab-bar />
|
||||
<popup-notice id="popupNotice" />
|
||||
982
pages/fighter/fighter.wxss
Normal file
982
pages/fighter/fighter.wxss
Normal file
@@ -0,0 +1,982 @@
|
||||
page {
|
||||
background: #F8FAFE;
|
||||
font-family: -apple-system, BlinkMacSystemFont, 'PingFang SC', sans-serif;
|
||||
color: #1A1A1A;
|
||||
}
|
||||
|
||||
/* .page-bg 与全局相同,仅保留差异 */
|
||||
.page-bg {
|
||||
opacity: 0.42;
|
||||
}
|
||||
|
||||
.unreg-area {
|
||||
position: relative;
|
||||
z-index: 2;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
min-height: 100vh;
|
||||
padding: 0 40rpx;
|
||||
}
|
||||
|
||||
.unreg-card {
|
||||
width: 100%;
|
||||
background: rgba(255, 255, 255, 0.78);
|
||||
backdrop-filter: blur(25rpx);
|
||||
border-radius: 32rpx;
|
||||
padding: 40rpx 32rpx;
|
||||
box-shadow: 0 12rpx 40rpx rgba(0, 0, 0, 0.05);
|
||||
border: 1rpx solid rgba(255, 255, 255, 0.6);
|
||||
}
|
||||
|
||||
.unreg-title,
|
||||
.section-title {
|
||||
font-size: 30rpx;
|
||||
font-weight: 700;
|
||||
color: #1A1A1A;
|
||||
display: block;
|
||||
margin-bottom: 16rpx;
|
||||
}
|
||||
|
||||
.section-title-sm {
|
||||
font-size: 26rpx;
|
||||
margin-bottom: 12rpx;
|
||||
color: #444;
|
||||
}
|
||||
|
||||
/* .unreg-input 与 .input-rounded 类似,仅保留差异 */
|
||||
.unreg-input {
|
||||
height: 80rpx;
|
||||
border-radius: 40rpx;
|
||||
margin-bottom: 16rpx;
|
||||
}
|
||||
|
||||
.ph { color: #999; }
|
||||
|
||||
/* .unreg-btn 与 .btn .btn-secondary 类似,仅保留差异 */
|
||||
.unreg-btn {
|
||||
width: 100%;
|
||||
height: 80rpx;
|
||||
background: rgba(255, 255, 255, 0.65);
|
||||
border-radius: 40rpx;
|
||||
border: 1rpx solid rgba(0, 0, 0, 0.06);
|
||||
margin-bottom: 16rpx;
|
||||
}
|
||||
|
||||
/* .unreg-btn-secondary 与 .btn-secondary 类似,仅保留差异 */
|
||||
.unreg-btn-secondary {
|
||||
margin-bottom: 0;
|
||||
background: rgba(255, 255, 255, 0.45);
|
||||
}
|
||||
|
||||
.unreg-btn-text {
|
||||
font-size: 28rpx;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.unreg-clear {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
margin-top: 28rpx;
|
||||
padding-top: 20rpx;
|
||||
border-top: 1rpx solid rgba(0, 0, 0, 0.05);
|
||||
}
|
||||
|
||||
.unreg-clear-icon {
|
||||
width: 28rpx;
|
||||
height: 28rpx;
|
||||
margin-right: 10rpx;
|
||||
opacity: 0.65;
|
||||
}
|
||||
|
||||
.unreg-clear-text {
|
||||
font-size: 22rpx;
|
||||
color: #888;
|
||||
}
|
||||
|
||||
.main-body {
|
||||
position: relative;
|
||||
z-index: 2;
|
||||
padding: 0 24rpx 150rpx;
|
||||
}
|
||||
|
||||
/* .refresh-btn 与全局 .refresh-btn .refresh-btn--light 完全相同,删除 */
|
||||
|
||||
/* .refresh-icon 与全局 .refresh-icon 完全相同,删除 */
|
||||
|
||||
.user-card {
|
||||
position: relative;
|
||||
margin-top: 48rpx;
|
||||
margin-bottom: 20rpx;
|
||||
border-radius: 28rpx;
|
||||
overflow: hidden;
|
||||
min-height: 120rpx;
|
||||
box-shadow: 0 8rpx 28rpx rgba(0, 0, 0, 0.06);
|
||||
}
|
||||
|
||||
.user-card-bg {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
z-index: 0;
|
||||
}
|
||||
|
||||
.user-card-inner {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding: 20rpx 24rpx;
|
||||
background: rgba(255, 255, 255, 0.72);
|
||||
backdrop-filter: blur(12rpx);
|
||||
}
|
||||
|
||||
/* .user-avatar 与 .avatar-circle .avatar-md 类似,仅保留差异 */
|
||||
.user-avatar {
|
||||
margin-right: 20rpx;
|
||||
}
|
||||
|
||||
.user-info { flex: 1; min-width: 0; }
|
||||
|
||||
.name-row {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
flex-wrap: wrap;
|
||||
margin-bottom: 8rpx;
|
||||
}
|
||||
|
||||
.user-name {
|
||||
font-size: 30rpx;
|
||||
font-weight: 700;
|
||||
margin-right: 6rpx;
|
||||
}
|
||||
|
||||
.role-tags {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 2rpx;
|
||||
align-items: center;
|
||||
margin-left: 2rpx;
|
||||
}
|
||||
|
||||
.role-tag {
|
||||
font-size: 18rpx;
|
||||
padding: 4rpx 12rpx;
|
||||
border-radius: 12rpx;
|
||||
font-weight: 600;
|
||||
line-height: 1.35;
|
||||
border: 1rpx solid transparent;
|
||||
}
|
||||
|
||||
.role-tag-dashou { background: #e8edf3; color: #2c3e50; border-color: #b8c4d0; }
|
||||
.role-tag-guanshi { background: #edf0ea; color: #3d5238; border-color: #c2d0bc; }
|
||||
.role-tag-zuzhang { background: #f0ece8; color: #5c4a38; border-color: #d4c8b8; }
|
||||
.role-tag-kaohe { background: #eceef3; color: #3a4460; border-color: #c0c8d8; }
|
||||
|
||||
.uid-row {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
background: rgba(0, 0, 0, 0.03);
|
||||
border-radius: 20rpx;
|
||||
padding: 4rpx 14rpx;
|
||||
}
|
||||
|
||||
.uid-text { font-size: 22rpx; margin-right: 8rpx; }
|
||||
.copy-icon { width: 22rpx; height: 22rpx; }
|
||||
|
||||
.badge-zone { margin-bottom: 12rpx; }
|
||||
.badge-scroll { white-space: nowrap; }
|
||||
.badge-scroll-sub { margin-top: 6rpx; }
|
||||
|
||||
.badge-tag-wrap {
|
||||
display: inline-block;
|
||||
transform: scale(0.68);
|
||||
transform-origin: left center;
|
||||
margin-right: -12rpx;
|
||||
}
|
||||
|
||||
.section-card { margin-bottom: 22rpx; }
|
||||
.section-last { margin-bottom: 32rpx; }
|
||||
|
||||
.section-head-line {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-bottom: 12rpx;
|
||||
}
|
||||
|
||||
.section-head-icon {
|
||||
width: 32rpx;
|
||||
height: 32rpx;
|
||||
margin-right: 8rpx;
|
||||
opacity: 0.88;
|
||||
}
|
||||
|
||||
.section-title-sm {
|
||||
font-size: 22rpx;
|
||||
margin-bottom: 0;
|
||||
color: #555;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
/* 黑卡 VIP */
|
||||
.vip-black-card {
|
||||
position: relative;
|
||||
height: 152rpx;
|
||||
border-radius: 28rpx;
|
||||
overflow: hidden;
|
||||
margin-bottom: 16rpx;
|
||||
box-shadow: 0 12rpx 40rpx rgba(20, 20, 24, 0.18);
|
||||
}
|
||||
|
||||
.vip-black-bg {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
z-index: 0;
|
||||
}
|
||||
|
||||
.vip-black-overlay {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
z-index: 1;
|
||||
background: linear-gradient(135deg, rgba(18, 18, 22, 0.72) 0%, rgba(38, 38, 44, 0.55) 100%);
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.vip-black-body {
|
||||
position: relative;
|
||||
z-index: 2;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
padding: 0 28rpx;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.vip-black-text {
|
||||
flex: 1;
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
.vip-black-title {
|
||||
display: block;
|
||||
font-size: 30rpx;
|
||||
font-weight: 700;
|
||||
color: #f3ead8;
|
||||
letter-spacing: 1rpx;
|
||||
}
|
||||
|
||||
.vip-black-sub {
|
||||
display: block;
|
||||
font-size: 20rpx;
|
||||
color: rgba(243, 234, 216, 0.62);
|
||||
margin-top: 6rpx;
|
||||
}
|
||||
|
||||
.vip-black-action {
|
||||
flex-shrink: 0;
|
||||
padding: 14rpx 28rpx;
|
||||
background: linear-gradient(135deg, rgba(243, 234, 216, 0.22) 0%, rgba(243, 234, 216, 0.1) 100%);
|
||||
border: 1rpx solid rgba(243, 234, 216, 0.35);
|
||||
border-radius: 999rpx;
|
||||
}
|
||||
|
||||
.vip-black-go {
|
||||
font-size: 24rpx;
|
||||
font-weight: 600;
|
||||
color: #f3ead8;
|
||||
}
|
||||
|
||||
/* 资产面板 */
|
||||
.asset-panel {
|
||||
position: relative;
|
||||
border-radius: 28rpx;
|
||||
overflow: hidden;
|
||||
box-shadow: 0 12rpx 40rpx rgba(26, 43, 80, 0.1);
|
||||
border: 1rpx solid rgba(212, 175, 110, 0.28);
|
||||
}
|
||||
|
||||
.asset-panel-fallback {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
z-index: 0;
|
||||
background: linear-gradient(145deg, #faf6ee 0%, #ece4d4 45%, #e6edf8 100%);
|
||||
}
|
||||
|
||||
.asset-panel-bg {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.asset-panel-inner {
|
||||
position: relative;
|
||||
z-index: 2;
|
||||
padding: 20rpx 18rpx 14rpx;
|
||||
background: rgba(255, 255, 255, 0.62);
|
||||
backdrop-filter: blur(20rpx);
|
||||
}
|
||||
|
||||
.asset-panel-head {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-bottom: 14rpx;
|
||||
}
|
||||
|
||||
.asset-panel-head-icon {
|
||||
width: 30rpx;
|
||||
height: 30rpx;
|
||||
margin-right: 8rpx;
|
||||
}
|
||||
|
||||
.asset-panel-head-title {
|
||||
font-size: 28rpx;
|
||||
font-weight: 700;
|
||||
color: #222;
|
||||
}
|
||||
|
||||
.money-strip {
|
||||
display: flex;
|
||||
gap: 12rpx;
|
||||
margin-bottom: 14rpx;
|
||||
overflow-x: auto;
|
||||
}
|
||||
|
||||
.money-block {
|
||||
flex: 1;
|
||||
min-width: 200rpx;
|
||||
border-radius: 20rpx;
|
||||
padding: 16rpx 14rpx;
|
||||
background: rgba(0, 0, 0, 0.025);
|
||||
border: 1rpx solid rgba(0, 0, 0, 0.05);
|
||||
}
|
||||
|
||||
.money-label {
|
||||
font-size: 20rpx;
|
||||
color: #888;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.money-val {
|
||||
font-size: 34rpx;
|
||||
font-weight: 800;
|
||||
display: block;
|
||||
margin: 6rpx 0 4rpx;
|
||||
line-height: 1.15;
|
||||
color: #1A1A1A;
|
||||
}
|
||||
|
||||
.money-tip {
|
||||
font-size: 18rpx;
|
||||
color: #AAA;
|
||||
}
|
||||
|
||||
.stats-grid {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
border-top: 1rpx solid rgba(0, 0, 0, 0.05);
|
||||
padding-top: 12rpx;
|
||||
}
|
||||
|
||||
.mini-stat {
|
||||
width: 20%;
|
||||
text-align: center;
|
||||
padding: 8rpx 0;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.mini-val {
|
||||
font-size: 24rpx;
|
||||
font-weight: 700;
|
||||
color: #333;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.mini-lbl {
|
||||
font-size: 18rpx;
|
||||
color: #999;
|
||||
display: block;
|
||||
margin-top: 4rpx;
|
||||
}
|
||||
|
||||
/* 排行榜 */
|
||||
.rank-section {
|
||||
margin-bottom: 22rpx;
|
||||
padding: 0 2rpx;
|
||||
}
|
||||
|
||||
.rank-hub-head {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-bottom: 18rpx;
|
||||
}
|
||||
|
||||
.rank-hub-head-icon {
|
||||
width: 32rpx;
|
||||
height: 32rpx;
|
||||
margin-right: 10rpx;
|
||||
}
|
||||
|
||||
.rank-hub-title {
|
||||
font-size: 28rpx;
|
||||
font-weight: 700;
|
||||
color: #222;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.rank-hub-sub {
|
||||
font-size: 20rpx;
|
||||
color: #999;
|
||||
margin-top: 2rpx;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.rank-grid {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
justify-content: space-between;
|
||||
row-gap: 18rpx;
|
||||
}
|
||||
|
||||
.rank-cell {
|
||||
width: 48.5%;
|
||||
height: 156rpx;
|
||||
position: relative;
|
||||
border-radius: 24rpx;
|
||||
overflow: hidden;
|
||||
filter: drop-shadow(0 8rpx 18rpx rgba(0, 0, 0, 0.08));
|
||||
}
|
||||
|
||||
.rank-shape-left {
|
||||
clip-path: polygon(
|
||||
0 8%,
|
||||
5% 0,
|
||||
95% 0,
|
||||
100% 5%,
|
||||
87% 95%,
|
||||
5% 100%,
|
||||
0 92%
|
||||
);
|
||||
}
|
||||
|
||||
.rank-shape-right {
|
||||
clip-path: polygon(
|
||||
14% 5%,
|
||||
5% 0,
|
||||
95% 0,
|
||||
100% 5%,
|
||||
100% 95%,
|
||||
95% 100%,
|
||||
5% 100%,
|
||||
0 95%,
|
||||
14% 8%
|
||||
);
|
||||
}
|
||||
|
||||
.rank-cell-inner {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: relative;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: flex-start;
|
||||
padding: 0 22rpx 0 20rpx;
|
||||
box-sizing: border-box;
|
||||
border-radius: 24rpx;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.rank-bg-icon {
|
||||
position: absolute;
|
||||
width: 148rpx;
|
||||
height: 148rpx;
|
||||
right: -18rpx;
|
||||
top: 50%;
|
||||
transform: translateY(-50%) rotate(-10deg);
|
||||
opacity: 0.2;
|
||||
z-index: 0;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.rank-content {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: flex-start;
|
||||
}
|
||||
|
||||
.rank-main-icon {
|
||||
width: 76rpx;
|
||||
height: 76rpx;
|
||||
margin-bottom: 8rpx;
|
||||
filter: drop-shadow(0 6rpx 16rpx rgba(0, 0, 0, 0.22));
|
||||
}
|
||||
|
||||
.rank-shape-right .rank-cell-inner {
|
||||
padding: 0 20rpx 0 28rpx;
|
||||
align-items: flex-end;
|
||||
}
|
||||
|
||||
.rank-shape-right .rank-bg-icon {
|
||||
right: auto;
|
||||
left: -18rpx;
|
||||
transform: translateY(-50%) rotate(10deg);
|
||||
}
|
||||
|
||||
.rank-shape-right .rank-content {
|
||||
align-items: flex-end;
|
||||
}
|
||||
|
||||
.rank-theme-blue .rank-cell-inner {
|
||||
background: linear-gradient(135deg, #7ec4ff 0%, #4d9ef5 55%, #3b82e8 100%);
|
||||
}
|
||||
|
||||
.rank-theme-gold .rank-cell-inner {
|
||||
background: linear-gradient(135deg, #ffe28a 0%, #ffc94d 55%, #f5a623 100%);
|
||||
}
|
||||
|
||||
.rank-theme-purple .rank-cell-inner {
|
||||
background: linear-gradient(135deg, #c4b5fd 0%, #9b87f5 55%, #7c6be8 100%);
|
||||
}
|
||||
|
||||
.rank-theme-orange .rank-cell-inner {
|
||||
background: linear-gradient(135deg, #ffb896 0%, #ff8f6b 55%, #f56a4a 100%);
|
||||
}
|
||||
|
||||
.rank-cell-name {
|
||||
font-size: 26rpx;
|
||||
font-weight: 700;
|
||||
color: #fff;
|
||||
text-shadow: 0 1rpx 4rpx rgba(0, 0, 0, 0.15);
|
||||
line-height: 1.2;
|
||||
}
|
||||
|
||||
.rank-cell-sub {
|
||||
font-size: 18rpx;
|
||||
color: rgba(255, 255, 255, 0.88);
|
||||
margin-top: 2rpx;
|
||||
}
|
||||
|
||||
.rank-shape-right .rank-cell-name,
|
||||
.rank-shape-right .rank-cell-sub {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
/* 功能面板 */
|
||||
.func-panel {
|
||||
position: relative;
|
||||
border-radius: 28rpx;
|
||||
overflow: hidden;
|
||||
box-shadow: 0 6rpx 24rpx rgba(0, 0, 0, 0.04);
|
||||
}
|
||||
|
||||
.func-panel-bg {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
z-index: 0;
|
||||
}
|
||||
|
||||
.func-grid {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
padding: 10rpx 4rpx;
|
||||
background: rgba(255, 255, 255, 0.85);
|
||||
backdrop-filter: blur(12rpx);
|
||||
}
|
||||
|
||||
.func-cell {
|
||||
width: 25%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
padding: 16rpx 0;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.func-icon {
|
||||
width: 52rpx;
|
||||
height: 52rpx;
|
||||
margin-bottom: 10rpx;
|
||||
}
|
||||
|
||||
.func-label {
|
||||
font-size: 20rpx;
|
||||
color: #444;
|
||||
text-align: center;
|
||||
line-height: 1.25;
|
||||
padding: 0 4rpx;
|
||||
}
|
||||
|
||||
.func-grid-sparse .func-cell {
|
||||
width: 25%;
|
||||
padding: 22rpx 0;
|
||||
}
|
||||
|
||||
.func-grid-sparse .func-icon {
|
||||
width: 58rpx;
|
||||
height: 58rpx;
|
||||
margin-bottom: 12rpx;
|
||||
}
|
||||
|
||||
.func-grid-sparse .func-label {
|
||||
font-size: 24rpx;
|
||||
}
|
||||
|
||||
.layout-sparse-padding {
|
||||
padding-bottom: 80rpx;
|
||||
}
|
||||
|
||||
.money-strip-single .money-block {
|
||||
min-width: 100%;
|
||||
}
|
||||
|
||||
.money-strip-single .money-val {
|
||||
font-size: 44rpx;
|
||||
}
|
||||
|
||||
.auth-inline {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 12rpx;
|
||||
background: rgba(255, 255, 255, 0.72);
|
||||
border-radius: 24rpx;
|
||||
padding: 12rpx 16rpx;
|
||||
border: 1rpx solid rgba(255, 255, 255, 0.5);
|
||||
}
|
||||
|
||||
.auth-input {
|
||||
flex: 1;
|
||||
height: 64rpx;
|
||||
background: #fff;
|
||||
border-radius: 32rpx;
|
||||
padding: 0 24rpx;
|
||||
font-size: 26rpx;
|
||||
}
|
||||
|
||||
.auth-btn {
|
||||
flex-shrink: 0;
|
||||
height: 64rpx;
|
||||
line-height: 64rpx;
|
||||
padding: 0 28rpx;
|
||||
background: rgba(0, 0, 0, 0.06);
|
||||
border-radius: 32rpx;
|
||||
font-size: 26rpx;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
/* .list-card 与 .card 类似,仅保留差异 */
|
||||
.list-card {
|
||||
position: relative;
|
||||
border-radius: 28rpx;
|
||||
box-shadow: 0 6rpx 24rpx rgba(0, 0, 0, 0.04);
|
||||
}
|
||||
|
||||
.list-card-bg {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
z-index: 0;
|
||||
}
|
||||
|
||||
.list-card-inner {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
background: rgba(255, 255, 255, 0.88);
|
||||
backdrop-filter: blur(12rpx);
|
||||
}
|
||||
|
||||
/* .list-item 与全局 .list-item 类似,仅保留差异 */
|
||||
.list-item {
|
||||
padding: 22rpx 20rpx;
|
||||
}
|
||||
|
||||
.list-item:last-child { border-bottom: none; }
|
||||
|
||||
/* .list-icon 与全局 .list-icon 类似,仅保留差异(缺少 flex-shrink:0) */
|
||||
.list-icon {
|
||||
width: 36rpx;
|
||||
height: 36rpx;
|
||||
margin-right: 16rpx;
|
||||
}
|
||||
|
||||
/* .list-text 与全局 .list-text 类似,仅保留差异 */
|
||||
.list-text {
|
||||
font-size: 26rpx;
|
||||
}
|
||||
|
||||
.list-sub {
|
||||
font-size: 20rpx;
|
||||
color: #999;
|
||||
margin-right: 8rpx;
|
||||
}
|
||||
|
||||
/* .list-arrow 与全局 .list-arrow 类似,仅保留差异 */
|
||||
.list-arrow {
|
||||
opacity: 0.45;
|
||||
}
|
||||
|
||||
/* 客服入口 */
|
||||
.kefu-banner {
|
||||
position: relative;
|
||||
margin-bottom: 18rpx;
|
||||
border-radius: 28rpx;
|
||||
overflow: hidden;
|
||||
box-shadow: 0 10rpx 32rpx rgba(44, 62, 80, 0.14);
|
||||
}
|
||||
|
||||
.kefu-banner-bg {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
z-index: 0;
|
||||
}
|
||||
|
||||
.kefu-banner-overlay {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
z-index: 1;
|
||||
background: linear-gradient(135deg, rgba(36, 48, 62, 0.82) 0%, rgba(52, 68, 88, 0.68) 100%);
|
||||
}
|
||||
|
||||
.kefu-banner-content {
|
||||
position: relative;
|
||||
z-index: 2;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
padding: 22rpx 24rpx;
|
||||
}
|
||||
|
||||
.kefu-banner-left {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
flex: 1;
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
.kefu-banner-icon {
|
||||
width: 44rpx;
|
||||
height: 44rpx;
|
||||
margin-right: 16rpx;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.kefu-banner-title {
|
||||
display: block;
|
||||
font-size: 28rpx;
|
||||
font-weight: 700;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.kefu-banner-sub {
|
||||
display: block;
|
||||
font-size: 20rpx;
|
||||
color: rgba(255, 255, 255, 0.72);
|
||||
margin-top: 4rpx;
|
||||
}
|
||||
|
||||
.kefu-banner-btn {
|
||||
flex-shrink: 0;
|
||||
padding: 12rpx 26rpx;
|
||||
font-size: 24rpx;
|
||||
color: #2c3e50;
|
||||
font-weight: 600;
|
||||
background: rgba(255, 255, 255, 0.92);
|
||||
border-radius: 999rpx;
|
||||
margin-left: 16rpx;
|
||||
}
|
||||
|
||||
/* 总资产 */
|
||||
.total-asset-row {
|
||||
position: relative;
|
||||
border-radius: 24rpx;
|
||||
overflow: hidden;
|
||||
margin-bottom: 14rpx;
|
||||
border: 1rpx solid rgba(212, 175, 110, 0.38);
|
||||
box-shadow: inset 0 1rpx 0 rgba(255, 255, 255, 0.85), 0 4rpx 16rpx rgba(0, 0, 0, 0.05);
|
||||
}
|
||||
|
||||
.total-asset-fallback {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
z-index: 0;
|
||||
background: linear-gradient(135deg, #faf6ee 0%, #f0e8d8 50%, #ebeef5 100%);
|
||||
}
|
||||
|
||||
.total-asset-bg {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.total-asset-inner {
|
||||
position: relative;
|
||||
z-index: 2;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
padding: 22rpx 20rpx;
|
||||
background: rgba(255, 255, 255, 0.52);
|
||||
backdrop-filter: blur(14rpx);
|
||||
}
|
||||
|
||||
.total-asset-left {
|
||||
flex: 1;
|
||||
min-width: 0;
|
||||
padding-right: 16rpx;
|
||||
}
|
||||
|
||||
.total-asset-label {
|
||||
display: block;
|
||||
font-size: 22rpx;
|
||||
color: #777;
|
||||
}
|
||||
|
||||
.total-asset-val {
|
||||
display: block;
|
||||
font-size: 46rpx;
|
||||
font-weight: 800;
|
||||
color: #3d3420;
|
||||
margin: 6rpx 0 10rpx;
|
||||
line-height: 1.1;
|
||||
letter-spacing: -0.5rpx;
|
||||
}
|
||||
|
||||
.asset-breakdown-list {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 4rpx;
|
||||
}
|
||||
|
||||
.asset-breakdown-line {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
padding-right: 8rpx;
|
||||
}
|
||||
|
||||
.breakdown-name {
|
||||
font-size: 20rpx;
|
||||
color: #888;
|
||||
}
|
||||
|
||||
.breakdown-amt {
|
||||
font-size: 20rpx;
|
||||
color: #666;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
/* .withdraw-btn 与 .btn-sm--dark 类似,仅保留差异 */
|
||||
.withdraw-btn {
|
||||
flex-shrink: 0;
|
||||
min-width: 120rpx;
|
||||
height: 72rpx;
|
||||
line-height: 72rpx;
|
||||
text-align: center;
|
||||
padding: 0 28rpx;
|
||||
font-weight: 700;
|
||||
border-radius: 999rpx;
|
||||
box-shadow: 0 6rpx 20rpx rgba(44, 62, 80, 0.22);
|
||||
}
|
||||
|
||||
.auth-grid-dynamic {
|
||||
flex-wrap: wrap;
|
||||
justify-content: flex-start;
|
||||
gap: 0 24rpx;
|
||||
}
|
||||
|
||||
.auth-grid-dynamic .auth-cell {
|
||||
width: auto;
|
||||
flex: 0 0 auto;
|
||||
min-width: 140rpx;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
/* 身份认证 */
|
||||
.auth-grid {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
display: flex;
|
||||
padding: 12rpx 8rpx;
|
||||
background: rgba(255, 255, 255, 0.88);
|
||||
backdrop-filter: blur(12rpx);
|
||||
}
|
||||
|
||||
.auth-cell {
|
||||
flex: 1;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
padding: 14rpx 6rpx;
|
||||
}
|
||||
|
||||
.auth-cell-icon {
|
||||
width: 48rpx;
|
||||
height: 48rpx;
|
||||
margin-bottom: 8rpx;
|
||||
}
|
||||
|
||||
.auth-cell-name {
|
||||
font-size: 22rpx;
|
||||
color: #444;
|
||||
margin-bottom: 6rpx;
|
||||
}
|
||||
|
||||
.auth-cell-tag {
|
||||
font-size: 18rpx;
|
||||
color: #888;
|
||||
padding: 2rpx 10rpx;
|
||||
border-radius: 999rpx;
|
||||
background: rgba(0, 0, 0, 0.04);
|
||||
}
|
||||
|
||||
.auth-cell-tag-done {
|
||||
color: #5a6b57;
|
||||
background: rgba(90, 107, 87, 0.1);
|
||||
}
|
||||
|
||||
/* .loading-mask 与全局 .loading-mask .loading-mask--light 完全相同,删除 */
|
||||
|
||||
/* .loading-spinner 与 .spinner--md 类似,仅保留差异 */
|
||||
.loading-spinner {
|
||||
width: 52rpx;
|
||||
height: 52rpx;
|
||||
border: 3rpx solid rgba(0, 0, 0, 0.08);
|
||||
border-top-color: #1A1A1A;
|
||||
}
|
||||
Reference in New Issue
Block a user