<template>
|
|
<view class="container" >
|
|
<!-- 顶部banner -->
|
|
<view class="banner">
|
|
<swiper
|
|
:indicator-dots="false"
|
|
:autoplay="true"
|
|
:interval="3000"
|
|
:duration="500"
|
|
circular
|
|
style="width: 100%; height: 400rpx;"
|
|
>
|
|
<swiper-item v-for="(item, index) in bannerList" :key="item.id || index">
|
|
<image :src="item.image" mode="aspectFill" style="width: 100%; height: 100%;" />
|
|
</swiper-item>
|
|
</swiper>
|
|
</view>
|
|
<view class="user-cards" v-if="!login_status">
|
|
<view class="user-info">
|
|
<image class="avatars" src="/static/暂未登录 请先登录.png" mode="aspectFill"></image>
|
|
<view class="info">
|
|
<text class="names">暂未登录请先登录</text>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
|
|
<view class="btns" v-if="!login_status">
|
|
<uv-button
|
|
class="btn"
|
|
type="primary"
|
|
text="立即登录"
|
|
:custom-style="customStyle"
|
|
color="linear-gradient(to right, rgb(255, 190, 61), rgb(255, 171, 2))"
|
|
shape="circle"
|
|
@click="logout"
|
|
></uv-button>
|
|
<text>暂未登录请先登录</text>
|
|
</view>
|
|
|
|
<!-- 用户信息卡片 -->
|
|
<view class="user-card" v-if="login_status">
|
|
<view class="user-info">
|
|
<image class="avatar" :src="userInfo.headImage" mode="aspectFill"></image>
|
|
<view class="info">
|
|
<text class="name">{{userInfo.nickName}}</text>
|
|
<text class="id">{{userInfo.id}}</text>
|
|
</view>
|
|
</view>
|
|
<view class="wallet-info">
|
|
<view class="balance">
|
|
<text class="label">我的余额</text>
|
|
<view class="amount">
|
|
<text class="symbol">¥</text>
|
|
<text class="value">{{userInfo.money}}</text>
|
|
</view>
|
|
<view class="withdraw-btn" @tap="goWithdraw">
|
|
<text>去提现</text>
|
|
<uni-icons type="right" size="10" color="#df8155" class="arrow"></uni-icons>
|
|
</view>
|
|
</view>
|
|
<view class="recycle-count">
|
|
<text class="label">累计回收</text>
|
|
<view class="count">
|
|
<text class="value">341</text>
|
|
<text class="unit">单</text>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
|
|
<!-- 分享赚佣金模块 -->
|
|
<view class="share-commission-card" @tap="onShareCommission" v-if="login_status">
|
|
<text class="share-commission-text">分享赚佣金</text>
|
|
</view>
|
|
|
|
<!-- 订单区域 -->
|
|
<view class="order-section" v-if="login_status">
|
|
<view class="section-header">
|
|
<text class="title">我的订单</text>
|
|
<view class="view-all" @tap="viewAllOrders">
|
|
<text>查看全部</text>
|
|
<text class="arrow">></text>
|
|
</view>
|
|
</view>
|
|
<view class="order-tabs">
|
|
<view
|
|
v-for="(tab, index) in orderTabs"
|
|
:key="index"
|
|
class="tab-item"
|
|
:class="{ active: currentTab === index }"
|
|
@tap="switchTab(index)"
|
|
>
|
|
<text>{{tab.name}}</text>
|
|
<text class="badge" v-if="tab.badge">{{tab.badge}}</text>
|
|
</view>
|
|
</view>
|
|
<!-- 订单列表 -->
|
|
<view class="order-list">
|
|
<view class="order-item" v-for="order in orderList" :key="order.id">
|
|
<view class="order-header">
|
|
<text class="order-id">订单编号 {{order.ordeNo}}</text>
|
|
</view>
|
|
<view class="order-content">
|
|
<image class="goods-image" :src="order.image || '/static/回收/衣物.png'" mode="aspectFill"></image>
|
|
<view class="order-info-opt">
|
|
<view class="order-info-top">
|
|
<text class="order-info-count">{{order.num || 1}} 件</text>
|
|
<text class="order-info-price">¥{{order.onePrice || 0}} /件</text>
|
|
</view>
|
|
<view class="order-info-estimate">
|
|
预估 ¥ {{order.price}}
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<view class="order-footer">
|
|
<view class="delivery-info">
|
|
<text class="status">{{order.status === 0 ? '【在线预约】' : order.status === 1 ? '【快递上门】' : order.status === 2 ? '【透明质检】' : order.status === 3 ? '【现金打款】' : ''}}</text>
|
|
<text class="time">{{order.goTime}}</text>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
|
|
<!-- 管理中心列表型卡片 -->
|
|
<view
|
|
class="function-list manage-list"
|
|
v-if="login_status && (userInfo.isOrderRole==='Y' || userInfo.isAppletUserRole==='Y' || userInfo.isUserRole==='Y' || userInfo.isTuiRole==='Y')"
|
|
>
|
|
<view
|
|
class="function-item"
|
|
v-if="userInfo.isOrderRole==='Y'"
|
|
@tap="goOrderManage"
|
|
>
|
|
<view class="item-left">
|
|
<image class="icon" src="/static/my/订单管理.png" mode="aspectFit"></image>
|
|
<text>订单管理</text>
|
|
</view>
|
|
<uni-icons type="right" size="15"></uni-icons>
|
|
</view>
|
|
<view
|
|
class="function-item"
|
|
v-if="userInfo.isAppletUserRole==='Y'"
|
|
@tap="goAppletUserManage"
|
|
>
|
|
<view class="item-left">
|
|
<image class="icon" src="/static/my/用户管理.png" mode="aspectFit"></image>
|
|
<text>用户管理</text>
|
|
</view>
|
|
<uni-icons type="right" size="15"></uni-icons>
|
|
</view>
|
|
<view
|
|
class="function-item"
|
|
v-if="userInfo.isUserRole==='Y'"
|
|
@tap="goStaffManage"
|
|
>
|
|
<view class="item-left">
|
|
<image class="icon" src="/static/my/员工管理.png" mode="aspectFit"></image>
|
|
<text>员工管理</text>
|
|
</view>
|
|
<uni-icons type="right" size="15"></uni-icons>
|
|
</view>
|
|
<view
|
|
class="function-item"
|
|
v-if="userInfo.isTuiRole==='Y'"
|
|
@tap="goTuiManage"
|
|
>
|
|
<view class="item-left">
|
|
<image class="icon" src="/static/my/推广官管理.png" mode="aspectFit"></image>
|
|
<text>推广官管理</text>
|
|
</view>
|
|
<uni-icons type="right" size="15"></uni-icons>
|
|
</view>
|
|
</view>
|
|
|
|
<!-- 功能列表 -->
|
|
<view class="function-list" v-if="login_status">
|
|
<view class="function-item" v-for="(item, index) in functionList" :key="index" @tap="handleFunction(index)">
|
|
<view class="item-left">
|
|
<image class="icon" :src="item.icon" mode="aspectFit"></image>
|
|
<text>{{item.name}}</text>
|
|
</view>
|
|
<uni-icons type="right" size="15"></uni-icons>
|
|
</view>
|
|
</view>
|
|
<!-- 根据角色显示不同的导航栏 -->
|
|
<uv-tabbar
|
|
:value="value"
|
|
:fixed="true"
|
|
@change="changeTo"
|
|
>
|
|
<uv-tabbar-item text="首页" >
|
|
<template v-slot:active-icon>
|
|
<image class="icon" src="/static/home/首页-点击.png"></image>
|
|
</template>
|
|
<template v-slot:inactive-icon>
|
|
<image class="icon" src="/static/home/首页-未点击.png"></image>
|
|
</template>
|
|
</uv-tabbar-item>
|
|
<uv-tabbar-item text="回收" >
|
|
<template v-slot:active-icon>
|
|
<image class="icon" src="/static/home/回收-点击.png"></image>
|
|
</template>
|
|
<template v-slot:inactive-icon>
|
|
<image class="icon" src="/static/home/回收-未点击.png"></image>
|
|
</template>
|
|
</uv-tabbar-item>
|
|
<uv-tabbar-item text="我的" >
|
|
<template v-slot:active-icon>
|
|
<image class="icon" src="/static/home/我的-点击.png"></image>
|
|
</template>
|
|
<template v-slot:inactive-icon>
|
|
<image class="icon" src="/static/home/我的-未点击.png"></image>
|
|
</template>
|
|
</uv-tabbar-item>
|
|
</uv-tabbar>
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
import pullRefreshMixin from '@/pages/mixins/pullRefreshMixin.js'
|
|
|
|
export default {
|
|
mixins: [pullRefreshMixin],
|
|
data() {
|
|
return {
|
|
value:2,
|
|
currentTab: 1,
|
|
login_status:false,
|
|
userInfo:{},
|
|
orderTabs: [
|
|
{ name: '全部' },
|
|
{ name: '进行中', badge: '2' },
|
|
{ name: '已完成' }
|
|
],
|
|
functionList: [
|
|
// { name: '推广官', icon: '/static/my/promote.png' },
|
|
{ name: '我的地址', icon: '/static/my/地址.png' },
|
|
{ name: '联系客服', icon: '/static/my/客服.png' },
|
|
{ name: '修改信息', icon: '/static/my/修改信息.png' },
|
|
{ name: '退出登录', icon: '/static/my/退出登录.png' }
|
|
],
|
|
orderList: []
|
|
}
|
|
},
|
|
methods: {
|
|
async onRefresh() {
|
|
console.log('开始刷新')
|
|
try {
|
|
await this.fetchUserInfo()
|
|
console.log('刷新完成')
|
|
return true // 返回 true 表示刷新成功
|
|
} catch (error) {
|
|
console.error('刷新失败', error)
|
|
throw error // 抛出错误表示刷新失败
|
|
}
|
|
},
|
|
changeTo(e){
|
|
this.value = e
|
|
console.log(e,'111')
|
|
if(e==0){
|
|
uni.reLaunch({
|
|
url: '/pages/component/home'
|
|
});
|
|
}else if(e == 1){
|
|
uni.reLaunch({
|
|
url: '/pages/component/recycle'
|
|
});
|
|
}
|
|
},
|
|
goWithdraw() {
|
|
uni.navigateTo({
|
|
url: '/pages/subcomponent/wallet'
|
|
})
|
|
},
|
|
viewAllOrders() {
|
|
uni.navigateTo({
|
|
url: '/pages/subcomponent/order'
|
|
})
|
|
},
|
|
switchTab(index) {
|
|
this.currentTab = index
|
|
this.fetchOrderList()
|
|
},
|
|
handleFunction(index) {
|
|
const pages = [
|
|
// '/pages/subcomponent/promotion',
|
|
'/pages/subcomponent/select',
|
|
'/pages/subcomponent/customer',
|
|
'/pages/subcomponent/edit_profile',
|
|
'logout'
|
|
]
|
|
if (pages[index] === 'logout') {
|
|
uni.showModal({
|
|
title: '提示',
|
|
content: '确定要退出登录吗?',
|
|
success: (res) => {
|
|
if (res.confirm) {
|
|
// 执行退出登录逻辑
|
|
getApp().globalData.login_status = false;
|
|
console.log(getApp().globalData.login_status);
|
|
this.login_status = false;
|
|
uni.removeStorageSync('token');
|
|
}
|
|
}
|
|
})
|
|
return
|
|
}
|
|
uni.navigateTo({
|
|
url: pages[index]
|
|
})
|
|
},
|
|
logout(){
|
|
uni.reLaunch({
|
|
url: '/pages/index/index'
|
|
});
|
|
},
|
|
onShareCommission() {
|
|
uni.showToast({ title: '分享赚佣金', icon: 'none' });
|
|
uni.navigateTo({ url: '/pages/subcomponent/promotion' })
|
|
},
|
|
goOrderManage() {
|
|
uni.navigateTo({ url: '/pages/manager/order' })
|
|
},
|
|
goAppletUserManage() {
|
|
uni.navigateTo({ url: '/pages/manager/user' })
|
|
},
|
|
goStaffManage() {
|
|
uni.navigateTo({ url: '/pages/manager/staff' })
|
|
},
|
|
goTuiManage() {
|
|
uni.navigateTo({ url: '/pages/manager/tui' })
|
|
},
|
|
fetchUserInfo() {
|
|
if(uni.getStorageSync('token')){
|
|
this.login_status = getApp().globalData.login_status;
|
|
this.$api("getUserByToken",{},(res)=>{
|
|
if(res.code == 200){
|
|
this.userInfo = res.result
|
|
}
|
|
})
|
|
} else {
|
|
this.login_status = false;
|
|
}
|
|
},
|
|
fetchOrderList() {
|
|
let status = ''
|
|
if (this.currentTab === 1) status = 0 // 进行中
|
|
if (this.currentTab === 2) status = 3 // 已完成
|
|
const params = { pageSize: 1, current: 1 }
|
|
if (status !== '') params.status = status
|
|
this.$api && this.$api('getOrderListPage', params, res => {
|
|
if (res && res.code === 200 && res.result && Array.isArray(res.result.records)) {
|
|
this.orderList = res.result.records
|
|
} else {
|
|
this.orderList = []
|
|
}
|
|
})
|
|
},
|
|
},
|
|
computed: {
|
|
customStyle() {
|
|
return {
|
|
// height: '80rpx',
|
|
width: '70%',
|
|
}
|
|
},
|
|
bannerList() {
|
|
return getApp().globalData.bannerList || []
|
|
}
|
|
},
|
|
onLoad() {
|
|
// 移除自动下拉刷新
|
|
// uni.startPullDownRefresh()
|
|
uni.$on('refreshUserInfo', () => {
|
|
this.fetchUserInfo()
|
|
})
|
|
this.fetchUserInfo()
|
|
this.fetchOrderList()
|
|
uni.$on('bannerListUpdated', () => {
|
|
this.$forceUpdate && this.$forceUpdate()
|
|
})
|
|
if (getApp().globalData.bannerList && getApp().globalData.bannerList.length > 0) {
|
|
this.$forceUpdate && this.$forceUpdate()
|
|
}
|
|
},
|
|
onShow() {
|
|
this.fetchUserInfo()
|
|
},
|
|
onPullDownRefresh() {
|
|
this.fetchUserInfo()
|
|
setTimeout(() => {
|
|
uni.stopPullDownRefresh()
|
|
uni.showToast({
|
|
title: '刷新成功',
|
|
icon: 'success',
|
|
duration: 2000
|
|
})
|
|
}, 1000)
|
|
},
|
|
onUnload() {
|
|
uni.$off('bannerListUpdated')
|
|
},
|
|
}
|
|
</script>
|
|
|
|
<style lang="scss" scoped>
|
|
.container {
|
|
min-height: 100vh;
|
|
background: #f8f8f8;
|
|
padding-bottom: 120rpx;
|
|
}
|
|
|
|
.banner {
|
|
height: 400rpx;
|
|
background: #ff6b35;
|
|
position: relative;
|
|
overflow: hidden;
|
|
border-radius:0 0 30rpx 30rpx;
|
|
.banner-title {
|
|
position: absolute;
|
|
top: 30%;
|
|
left: 20%;
|
|
color: #fff;
|
|
font-family: DingTalk JinBuTi;
|
|
font-weight: 400;
|
|
font-style: italic;
|
|
font-size: 30px;
|
|
line-height: 100%;
|
|
letter-spacing: 0%;
|
|
vertical-align: bottom;
|
|
z-index: 2;
|
|
}
|
|
|
|
.banner-bg {
|
|
position: absolute;
|
|
width: 100%;
|
|
height: 100%;
|
|
object-fit: cover;
|
|
}
|
|
}
|
|
|
|
.user-card {
|
|
margin: -50rpx 30rpx 0;
|
|
background: #fff;
|
|
border-radius: 24rpx;
|
|
padding: 30rpx;
|
|
position: relative;
|
|
z-index: 2;
|
|
// box-shadow: 0 4rpx 12rpx rgba(0, 0, 0, 0.05);
|
|
.user-info {
|
|
display: flex;
|
|
align-items: center;
|
|
margin-bottom: 40rpx;
|
|
|
|
.avatar {
|
|
width: 110rpx;
|
|
height: 110rpx;
|
|
border-radius: 12rpx;
|
|
margin-right: 24rpx;
|
|
}
|
|
|
|
.info {
|
|
.name {
|
|
font-size: 34rpx;
|
|
font-weight: 600;
|
|
color: #222;
|
|
margin-bottom: 12rpx;
|
|
display: block;
|
|
}
|
|
|
|
.id {
|
|
font-size: 26rpx;
|
|
color: #999;
|
|
display: flex;
|
|
align-items: center;
|
|
|
|
&::before {
|
|
// content: 'ID: ';
|
|
color: #999;
|
|
margin-right: 4rpx;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
.wallet-info {
|
|
display: flex;
|
|
padding: 30rpx;
|
|
background: #fff8ea;
|
|
border-radius: 16rpx;
|
|
position: relative;
|
|
|
|
&::after {
|
|
content: '';
|
|
position: absolute;
|
|
top: 50%;
|
|
left: 50%;
|
|
transform: translate(-50%, -50%);
|
|
width: 1rpx;
|
|
height: 50%;
|
|
background: #FFE4D9;
|
|
}
|
|
|
|
.balance {
|
|
flex: 1;
|
|
padding-right: 30rpx;
|
|
|
|
.label {
|
|
font-size: 26rpx;
|
|
color: #999;
|
|
margin-bottom: 12rpx;
|
|
display: block;
|
|
}
|
|
|
|
.amount {
|
|
display: flex;
|
|
align-items: baseline;
|
|
margin-bottom: 20rpx;
|
|
|
|
.symbol {
|
|
font-size: 30rpx;
|
|
color: #FF5B05;
|
|
font-weight: normal;
|
|
margin-right: 4rpx;
|
|
}
|
|
|
|
.value {
|
|
font-size: 46rpx;
|
|
font-weight: 600;
|
|
color: #FF5B05;
|
|
line-height: 1;
|
|
}
|
|
}
|
|
|
|
.withdraw-btn {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
padding: 8rpx 16rpx;
|
|
background:#fff0d2;
|
|
border: 1rpx solid rgba(255, 91, 5, 0.2);
|
|
border-radius: 13rpx;
|
|
color: #FF5B05;
|
|
font-size: 24rpx;
|
|
|
|
.arrow {
|
|
margin-left: 6rpx;
|
|
font-family: "PingFang SC";
|
|
}
|
|
}
|
|
}
|
|
|
|
.recycle-count {
|
|
flex: 1;
|
|
padding-left: 30rpx;
|
|
|
|
.label {
|
|
font-size: 26rpx;
|
|
color: #999;
|
|
margin-bottom: 12rpx;
|
|
display: block;
|
|
}
|
|
|
|
.count {
|
|
display: flex;
|
|
align-items: baseline;
|
|
|
|
.value {
|
|
font-size: 46rpx;
|
|
font-weight: 600;
|
|
color: #222;
|
|
line-height: 1;
|
|
}
|
|
|
|
.unit {
|
|
font-size: 26rpx;
|
|
color: #999;
|
|
margin-left: 8rpx;
|
|
font-weight: normal;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
.order-section {
|
|
margin: 20rpx 30rpx;
|
|
background: linear-gradient(to bottom, #fff4e0 0%, #fff 10%);
|
|
border-radius: 20rpx;
|
|
padding: 20rpx 30rpx;
|
|
.section-header {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
margin-bottom: 30rpx;
|
|
|
|
.title {
|
|
font-size: 34rpx;
|
|
font-weight: bold;
|
|
color: #333;
|
|
}
|
|
|
|
.view-all {
|
|
font-size: 26rpx;
|
|
color: #999;
|
|
display: flex;
|
|
align-items: center;
|
|
|
|
.arrow {
|
|
margin-left: 4rpx;
|
|
}
|
|
}
|
|
}
|
|
|
|
.order-tabs {
|
|
display: flex;
|
|
margin-bottom: 30rpx;
|
|
background: #f8f8f8;
|
|
border-radius: 8rpx;
|
|
padding: 4rpx;
|
|
|
|
.tab-item {
|
|
flex: 1;
|
|
text-align: center;
|
|
padding: 16rpx 0;
|
|
position: relative;
|
|
color: #666;
|
|
font-size: 28rpx;
|
|
border-radius: 6rpx;
|
|
|
|
&.active {
|
|
color: #333;
|
|
font-weight: bold;
|
|
background: #fff;
|
|
box-shadow: 0 2rpx 4rpx rgba(0, 0, 0, 0.05);
|
|
}
|
|
|
|
.badge {
|
|
position: absolute;
|
|
top: 4rpx;
|
|
right: 50%;
|
|
transform: translateX(24rpx);
|
|
background: #ff6b35;
|
|
color: #fff;
|
|
font-size: 20rpx;
|
|
padding: 0 8rpx;
|
|
border-radius: 20rpx;
|
|
min-width: 28rpx;
|
|
height: 28rpx;
|
|
line-height: 28rpx;
|
|
}
|
|
}
|
|
}
|
|
|
|
.order-item {
|
|
background: #fff;
|
|
border-radius: 16rpx;
|
|
padding: 24rpx;
|
|
border: none;
|
|
box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.02);
|
|
|
|
.order-header {
|
|
margin-bottom: 24rpx;
|
|
|
|
.order-id {
|
|
font-size: 26rpx;
|
|
color: #666;
|
|
}
|
|
}
|
|
|
|
.order-content {
|
|
display: flex;
|
|
margin-bottom: 24rpx;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
position: relative;
|
|
|
|
&::after {
|
|
content: '';
|
|
position: absolute;
|
|
left: 50%;
|
|
top: 50%;
|
|
transform: translate(-50%, -50%);
|
|
width: 60rpx;
|
|
height: 60rpx;
|
|
background: #f8f8f8;
|
|
border-radius: 50%;
|
|
z-index: 1;
|
|
}
|
|
|
|
&::before {
|
|
content: '⇌';
|
|
position: absolute;
|
|
left: 50%;
|
|
top: 50%;
|
|
transform: translate(-50%, -50%);
|
|
color: #999;
|
|
font-size: 32rpx;
|
|
z-index: 2;
|
|
}
|
|
|
|
.goods-image {
|
|
width: 200rpx;
|
|
height: 200rpx;
|
|
border-radius: 16rpx;
|
|
background: #fffbe6;
|
|
padding: 20rpx;
|
|
box-sizing: border-box;
|
|
display: block;
|
|
}
|
|
|
|
.order-info-opt {
|
|
width: 200rpx;
|
|
min-height: 110rpx;
|
|
background: linear-gradient(180deg, #fffbe6 0%, #fff 100%);
|
|
border-radius: 16rpx;
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
padding: 24rpx 0 16rpx 0;
|
|
box-sizing: border-box;
|
|
margin-left: 16rpx;
|
|
}
|
|
.order-info-top {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
margin-bottom: 8rpx;
|
|
}
|
|
.order-info-count {
|
|
font-size: 32rpx;
|
|
color: #222;
|
|
font-weight: bold;
|
|
margin-bottom: 4rpx;
|
|
}
|
|
.order-info-price {
|
|
font-size: 22rpx;
|
|
color: #999;
|
|
}
|
|
.order-info-estimate {
|
|
background: linear-gradient(90deg, #ffd01e 0%, #ff8917 100%);
|
|
color: #fff;
|
|
font-size: 24rpx;
|
|
font-weight: bold;
|
|
border-radius: 0 0 16rpx 16rpx;
|
|
padding: 12rpx 0;
|
|
width: 100%;
|
|
text-align: center;
|
|
margin-top: 8rpx;
|
|
box-shadow: 0 2rpx 8rpx rgba(255, 156, 0, 0.08);
|
|
}
|
|
}
|
|
|
|
.order-footer {
|
|
display: flex;
|
|
align-items: center;
|
|
padding: 24rpx;
|
|
border-top: 1rpx solid #f5f5f5;
|
|
background: #fafafa;
|
|
border-radius: 12rpx;
|
|
margin: 0 -24rpx -24rpx;
|
|
|
|
.courier-avatar {
|
|
width: 80rpx;
|
|
height: 80rpx;
|
|
border-radius: 12rpx;
|
|
margin-right: 20rpx;
|
|
background: #fff;
|
|
}
|
|
|
|
.delivery-info {
|
|
flex: 1;
|
|
display: flex;
|
|
flex-direction: column;
|
|
.status {
|
|
font-size: 28rpx;
|
|
color: #333;
|
|
margin-bottom: 8rpx;
|
|
font-weight: bold;
|
|
}
|
|
|
|
.time {
|
|
font-size: 26rpx;
|
|
color: #999;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
.function-list {
|
|
margin: 20rpx 30rpx;
|
|
background: #fff;
|
|
border-radius: 20rpx;
|
|
padding: 0 30rpx;
|
|
|
|
.function-item {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
padding: 30rpx 0;
|
|
border-bottom: 1rpx solid #f5f5f5;
|
|
|
|
&:last-child {
|
|
border-bottom: none;
|
|
}
|
|
|
|
.item-left {
|
|
display: flex;
|
|
align-items: center;
|
|
|
|
.icon {
|
|
width: 40rpx;
|
|
height: 40rpx;
|
|
margin-right: 16rpx;
|
|
}
|
|
|
|
text {
|
|
font-size: 28rpx;
|
|
color: #333;
|
|
}
|
|
}
|
|
|
|
.arrow {
|
|
color: #999;
|
|
font-size: 24rpx;
|
|
}
|
|
}
|
|
}
|
|
|
|
.tab-bar {
|
|
position: fixed;
|
|
bottom: 0;
|
|
left: 0;
|
|
right: 0;
|
|
height: 100rpx;
|
|
background: #fff;
|
|
display: flex;
|
|
padding-bottom: env(safe-area-inset-bottom);
|
|
border-top: 1rpx solid #f5f5f5;
|
|
|
|
.tab-item {
|
|
flex: 1;
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
justify-content: center;
|
|
padding: 10rpx 0;
|
|
|
|
image {
|
|
width: 48rpx;
|
|
height: 48rpx;
|
|
margin-bottom: 6rpx;
|
|
}
|
|
|
|
text {
|
|
font-size: 20rpx;
|
|
color: #999;
|
|
}
|
|
|
|
&.active {
|
|
text {
|
|
color: #ff6b35;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
.user-cards {
|
|
margin: -50rpx 30rpx 0;
|
|
background: #fff;
|
|
border-radius: 24rpx;
|
|
padding: 30rpx;
|
|
position: relative;
|
|
z-index: 2;
|
|
box-shadow: 0 4rpx 12rpx rgba(0, 0, 0, 0.05);
|
|
.user-info {
|
|
display: flex;
|
|
align-items: center;
|
|
margin-bottom: 40rpx;
|
|
.avatars {
|
|
width: 110rpx;
|
|
height: 110rpx;
|
|
border-radius: 50%;
|
|
margin-right: 24rpx;
|
|
}
|
|
}
|
|
.info {
|
|
.name {
|
|
font-size: 34rpx;
|
|
font-weight: 600;
|
|
color: #222;
|
|
margin-bottom: 12rpx;
|
|
display: block;
|
|
}
|
|
}
|
|
}
|
|
.btns{
|
|
width: 100%;
|
|
margin: 0 auto;
|
|
margin-top: 30%;
|
|
display: flex;
|
|
flex-direction: column;
|
|
justify-content: center;
|
|
align-items: center;
|
|
|
|
.uv-button, .btn{
|
|
width: 100%;
|
|
height: 100rpx;
|
|
background: linear-gradient(90deg, #FFD36D 0%, #FFA800 100%);
|
|
color: #fff;
|
|
font-size: 36rpx;
|
|
border-radius: 50rpx;
|
|
font-weight: bold;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
box-shadow: 0 4rpx 16rpx rgba(255, 168, 0, 0.08);
|
|
border: none;
|
|
margin: 0 auto;
|
|
}
|
|
text{
|
|
margin-top: 20rpx;
|
|
font-family: PingFang SC;
|
|
font-weight: 400;
|
|
font-size: 13px;
|
|
line-height: 100%;
|
|
letter-spacing: 0%;
|
|
text-align: center;
|
|
color: #a3a3a3;
|
|
}
|
|
}
|
|
.share-commission-card {
|
|
width: 90%;
|
|
margin: 32rpx auto 24rpx auto;
|
|
height: 90rpx;
|
|
background: linear-gradient(90deg, #ffd01e 0%, #ff8917 100%);
|
|
border-radius: 24rpx;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
box-shadow: 0 4rpx 16rpx rgba(255, 156, 0, 0.08);
|
|
cursor: pointer;
|
|
}
|
|
.share-commission-text {
|
|
color: #fff;
|
|
font-size: 32rpx;
|
|
font-weight: bold;
|
|
letter-spacing: 2rpx;
|
|
}
|
|
.manage-list {
|
|
margin-bottom: 20rpx;
|
|
}
|
|
</style>
|