You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

349 lines
8.5 KiB

5 months ago
<template>
<view class="user-distribution-income rel" v-if="isLoad">
<view class="bg abs" :style="{background: `linear-gradient(180deg, ${primaryColor} 0%, ${subColor} 100%)`}"></view>
<view class="flex-center pd-lg rel">
<image mode="aspectFill" class="avatar radius"
:src="detail.avatarUrl || `https://lbqny.migugu.com/admin/anmo/mine/default_user.png`">
</image>
<view class="flex-1 ml-lg f-md-title c-base ellipsis">{{detail.nickName}}</view>
</view>
<view class="mine-menu-list fill-base radius-16 rel" style="margin-top: 0;">
<view @tap.stop="$refs.show_rule_item.open()" class="abs close-info flex-center">
<i class="iconfont iconwentifankui1" :style="{color:primaryColor}"></i>
</view>
<view class="flex-warp pt-md">
<view class="item-child flex-center flex-column"
:class="[{'b-1px-b':index<2},{'b-1px-r':index>1&&index<4}]"
:style="{width:index<2?'50%':'33.33%',padding:index<2?'20rpx 0 30rpx 0':'10rpx 0'}"
v-for="(item, index) in countList" :key="index">
<view class="f-sm-title c-title text-bold">{{detail[item.key]}}</view>
<view class="f-icontext c-caption">{{ item.text }}</view>
</view>
</view>
<view class="flex-center pt-md" style="padding-bottom: 35rpx;">
<view @tap.stop="$util.goUrl({url:`/user/pages/cash-out?type=distribution`})"
class="cash-btn flex-center f-mini-title c-base radius" :style="{background: `linear-gradient(68deg, ${primaryColor}, ${subColor})`}">
我要提现
</view>
</view>
</view>
<view class="mine-menu-list fill-base mt-md radius-16">
<view class="flex-warp pt-md">
<view @tap.stop="toJump('toolList', index)" class="item-child flex-center flex-column f-caption c-title"
style="margin:10rpx 0 20rpx 0" v-for="(item, index) in toolList" :key="index">
<i class="iconfont c-title" :class="item.icon" :style="{color:primaryColor}"></i>
<view class="mt-sm">{{ item.text }}</view>
</view>
</view>
</view>
<view class="mine-menu-list fill-base mt-md radius-16">
<view class="flex-warp pt-md">
<view class="item-child f-caption c-title" style="width:50%;margin:10rpx 0 20rpx 0"
:style="{paddingLeft:index%2==0?'70rpx':'120rpx'}" v-for="(item, index) in dataList" :key="index">
<view class="f-icontext" style="color: #777D8D;">{{ item.text }}</view>
<view class="f-sm-title c-title text-bold">{{detail[item.key]}}</view>
</view>
</view>
</view>
<view @tap.stop="$util.goUrl({url:`/user/pages/distribution/bind-technician?type=1`})"
class="mine-menu-list fill-base mt-md radius-16" style="
background: linear-gradient(90deg, #FFE9E9 0%, #FFFFFF 100%);">
<view class="flex-center pd-lg">
<image mode="aspectFill" class="avatar radius"
src="https://lbqny.migugu.com/admin/anmo/mine/income.png">
</image>
<view class="flex-1 flex-between ml-lg">
<view>
<view class="f-mini-title c-title text-bold">推荐收入</view>
<view class="f-caption" style="color: #777D8D;">
推荐{{$t('action.attendantName')}}享佣金
</view>
</view>
<view class="share-btn flex-center f-desc c-base radius">前往邀请</view>
</view>
</view>
</view>
<view @tap.stop="$util.goUrl({url:`/user/pages/distribution/poster`})"
class="mine-menu-list fill-base mt-md radius-16" style="
background: linear-gradient(90deg, #FFE9E9 0%, #FFFFFF 100%);">
<view class="flex-center pd-lg">
<image mode="aspectFill" class="avatar radius"
src="https://lbqny.migugu.com/admin/anmo/mine/income.png">
</image>
<view class="flex-1 flex-between ml-lg">
<view>
<view class="f-mini-title c-title text-bold">推荐收入</view>
<view class="f-caption" style="color: #777D8D;">
推荐新用户享佣金
</view>
</view>
<view class="share-btn flex-center f-desc c-base radius">前往邀请</view>
</view>
</view>
</view>
<view class="space-footer"></view>
<uni-popup ref="show_rule_item" type="center" :maskClick="false">
<view class="common-popup-content fill-base pd-lg radius-34">
<view class="title">规则说明</view>
<view class="f-desc c-title mt-lg">
可提现金额为已完成订单后的结算金额未入账金额为未完成的订单待提现佣金
</view>
<view class="button">
<view @tap.stop="$refs.show_rule_item.close()" class="item-child c-base"
:style="{background: primaryColor,color:'#fff'}">知道了</view>
</view>
</view>
</uni-popup>
</view>
</template>
<script>
import {
mapState,
mapMutations
} from "vuex"
import tabbar from "@/components/tabbar.vue"
export default {
components: {
tabbar
},
data() {
return {
countList: [{
key: 'new_cash',
text: '可提现(元)'
}, {
key: 'not_recorded',
text: '未入账(元)'
}, {
key: 'cash',
text: '累计佣金(元)'
}, {
key: 'wallet_cash',
text: '已提现(元)'
}, {
key: 'order_cash',
text: '总成交金额(元)'
}],
toolList: [{
icon: 'iconyongjinliushui',
text: '佣金流水',
url: '/user/pages/stored/commission'
}, {
icon: 'iconwodeyaoqing',
text: '我的邀请',
url: '/user/pages/distribution/team'
}, {
icon: 'icontixianjilu',
text: '提现记录',
url: '/user/pages/distribution/record?type=1'
}],
dataList: [{
key: 'today_order_count',
text: '今日成交订单'
}, {
key: 'total_order_count',
text: '累计成交订单'
}, {
key: 'today_coach_count',
text: '今日新增' + this.$t('action.attendantName')
}, {
key: 'total_coach_count',
text: '累计入驻' + this.$t('action.attendantName')
}, {
key: 'today_user_count',
text: '今日邀请粉丝'
}, {
key: 'total_user_count',
text: '累计邀请粉丝'
}],
detail: {},
isLoad: false
}
},
computed: mapState({
primaryColor: state => state.config.configInfo.primaryColor,
subColor: state => state.config.configInfo.subColor,
configInfo: state => state.config.configInfo,
commonOptions: state => state.user.commonOptions,
userInfo: state => state.user.userInfo,
mineInfo: state => state.user.mineInfo,
}),
onLoad() {
this.initIndex()
},
onUnload() {
this.$util.back()
},
onPullDownRefresh() {
// #ifndef APP-PLUS
uni.showNavigationBarLoading()
// #endif
this.initRefresh();
uni.stopPullDownRefresh()
},
methods: {
...mapMutations([]),
async initIndex(refresh = false) {
// #ifdef H5
if (!refresh && this.$jweixin.isWechat()) {
await this.$jweixin.initJssdk();
this.$jweixin.wxReady(() => {
this.$jweixin.hideOptionMenu()
})
}
// #endif
this.$util.showLoading()
this.detail = await this.$api.mine.partnerIndex()
this.$util.setNavigationBarColor({
bg: this.primaryColor
})
this.isLoad = true
this.$util.hideAll()
},
initRefresh() {
this.initIndex(true)
},
toJump(key, index) {
let {
url,
text
} = this[key][index]
this.$util.log(url)
this.$util.toCheckLogin({
url
})
},
}
}
</script>
<style lang="scss">
.user-distribution-income {
.bg {
width: 100%;
height: 388rpx;
}
.mine-list {
.money-info {
font-size: 50rpx;
.money {
font-size: 70rpx;
}
}
.cash-out-btn {
width: 169rpx;
height: 56rpx;
margin: 0 auto;
}
.menu-title {
height: 90rpx;
.iconfont {
font-size: 24rpx;
}
}
.item-child {
width: 25%;
margin: 10rpx 0;
.iconfont {
font-size: 46rpx;
}
}
}
.money-count {
.item-child {
width: 50%;
}
}
// 我的订单/其他
.mine-menu-list {
margin: 20rpx 25rpx 0 25rpx;
.close-info {
width: 80rpx;
height: 80rpx;
top: 0;
right: 0;
z-index: 1;
.iconwentifankui1 {
font-size: 32rpx;
}
}
.cash-btn {
width: 580rpx;
height: 70rpx;
}
.avatar {
width: 105rpx;
height: 105rpx;
}
.share-btn {
width: 154rpx;
height: 56rpx;
background: #FF6124;
}
.item-child {
width: 33.33%;
margin: 10rpx 0;
.iconfont {
font-size: 86rpx;
}
.item-img {
width: 88rpx;
height: 88rpx;
.iconfont {
font-size: 44rpx;
}
.item-img {
top: 0;
left: 0;
opacity: 0.1;
}
}
}
.item-child:nth-child(1).b-1px-b::after {
left: 33rpx;
}
.item-child:nth-child(2).b-1px-b::after {
right: 33rpx;
}
.item-child.b-1px-r::after {
top: 38rpx;
bottom: 38rpx;
}
}
}
</style>