Files
dtx_store/pages/life/capacity.vue

401 lines
15 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<view class="capacity">
<view class="capacity-title">共力分总产率/小时<text>{{baseHour}}GLF/h</text></view>
<view class="capacity-sbutitle">总产率=角色产率+团队产率+共建产率+共力值产率</view>
<view class="capacity-block">
<view class="capacity-block-title">
<view class="title">平台数据</view>
</view>
<view class="capacity-block-text">平台注册人数<text>{{userData.login}}</text>活跃人数<text>{{userData.online}}</text></view>
</view>
<view class="capacity-block">
<view class="capacity-block-title">
<view class="title">我的角色</view>
<view class="nickname">{{nickname}}</view>
</view>
<view class="capacity-block-glf ">{{identityText}}:{{base}}GLF/h</view>
</view>
<view class="capacity-block">
<view class="capacity-block-title">
<view class="title">成员产率({{group.effect}}/{{group.count}})</view>
<view class="capacity-block-glf">{{group.capacity}}GLF/h</view>
<!-- <view class="more" @click="onInvitation">邀请更多好友</view> -->
</view>
<view class="capacity-block-table">
<view class="header">
<view class="flex-item">家族成员产率</view>
</view>
<view class="flex">
<view class="flex-item">{{recommend.vip}}人在线(会员)</view>
<view class="flex-item">{{recommend.vip_text}}</view>
</view>
<view class="flex">
<view class="flex-item">{{recommend.novip}}人在线(普通用户)</view>
<view class="flex-item">{{recommend.novip_text}}</view>
</view>
</view>
<view class="capacity-block-table">
<view class="header">
<view class="flex-item">伙伴成员</view>
</view>
<view class="flex">
<view class="flex-item">{{partner.vip}}人在线(会员)</view>
<view class="flex-item">{{partner.vip_text}}</view>
</view>
<view class="flex">
<view class="flex-item">{{partner.novip}}人在线(普通用户)</view>
<view class="flex-item">{{partner.novip_text}}</view>
</view>
</view>
</view>
<view class="capacity-block">
<view class="capacity-block-title">
<view class="title">共建产率<text>{{build.capacity}}GLF/h</text></view>
<view class="subtitle">{{build.current}}/{{build.max}}</view>
</view>
<view class="capacity-block-text ">产品当前设置共建者每日可以通过看广告获得共建值暂未开放敬请期待</view>
</view>
<view class="capacity-block">
<view class="capacity-block-title">
<view class="title">共力值产率<text>{{together.capacity}}GLF/h</text></view>
<view class="subtitle">{{together.current}}/{{together.max}}</view>
</view>
<view class="capacity-block-text ">根据正常用户的使用在平台的使用习惯购物等行为产生对应共力值暂未开放敬请期待</view>
</view>
<view class="capacity-block" v-for="(item,index) in other" :keys='index'>
<view class="capacity-block-title">
<view class="title">{{item.title}}</view>
<view class="capacity-block-glf">{{item.capacity}}GLF/h</view>
</view>
<view class="capacity-block-text " v-if="item.remark">{{item.remark}}</view>
</view>
<view class="capacity-hint"> 用户须知用户所产生共力分在每日结算时平台会扣除30%的共力分用于平台运营使用 </view>
</view>
</template>
<script>
import {
glz,sign
} from '@/apis/interfaces/life.js'
import AD from '@/utils/ad.js'
export default {
data() {
return {
identityText: '普通用户',
baseHour: 0,
base: 0,
group: {
count: 0,
effect: 0,
capacity: 0,
},
nickname: '',
recommend: {
vip: '-',
vip_count: '-',
novip: '-',
novip_count: '-',
vip_text: '-',
novip_text: '-',
},
partner: {
vip: '-',
vip_count: '-',
novip: '-',
novip_count: '-',
vip_text: '-',
novip_text: '-',
},
build: {},
together: {},
other: {},
can_repeat_sign: false,
userData: {
login : '-',
online : '-'
}
};
},
created() {
uni.showLoading({})
this.glz();
},
onNavigationBarButtonTap() {
if (!this.can_repeat_sign) {
uni.showModal({
title: '温馨提示',
content: '今日重置签到机会已使用过了,明日再来试试吧~',
confirmColor: '#34CE98',
confirmText: '知道了',
showCancel: false,
})
} else {
uni.showModal({
title: '温馨提示',
content: '重置签到只重新计算24小时时间所迭代加成的比例不变',
confirmColor: '#34CE98',
confirmText: '立即重置',
cancelColor: '#999',
cancelText: '再想想',
success: (res1) => {
this.Sign()
return
if (res1.confirm) {
this.checkIMEI().then(res => {
switch (res) {
case 'Permanent':
uni.showModal({
title: '提示',
content: '签到功能需使用您的电话状态和网络信息,请在手机设置中权限开启您的权限',
showCancel: false,
})
break;
case 'Temporary':
uni.showModal({
title: '提示',
content: '签到功能需使用您的电话状态和网络信息,请点击设置开启应用权限',
cancelText: '获取权限',
confirmText: '稍后再说',
success: e => {
if (e.cancel) {
this.checkIMEI().then(IMEI => {
if (IMEI ===
'Success') {
this.showAd()
}
})
}
}
})
break;
case 'Success':
this.showAd()
break;
}
}).catch(err => {
console.log(err)
})
}
}
})
}
},
methods: {
glz(){
glz().then(res => {
this.userData = res.userData
this.nickname = res.nickname
this.identityText = res.identity_text
this.baseHour = res.base_hour
this.base = res.base
this.group = res.group
this.recommend = res.recommend
this.partner = res.partner
this.build = res.build
this.together = res.together
this.other = res.other
this.can_repeat_sign = res.can_repeat_sign
uni.setNavigationBarTitle({
title: res.glz + 'GLF'
})
uni.hideLoading()
}).catch(err => {
uni.showToast({
title: err.message,
icon: 'none'
})
})
},
showAd() {
AD.show({
adpid: 1428308887,
adType: 'RewardedVideo'
}, detail => {
if (detail && detail.isEnded) {
this.Sign()
}
}, err => {
this.Sign()
})
},
// 签到
Sign(){
uni.showLoading({
title: '签到中..'
})
sign().then(res => {
uni.showToast({
title: '签到成功',
icon: 'none'
})
this.glz()
}).catch(err => {
uni.showToast({
title: err.message,
icon: 'none'
})
})
},
onInvitation() {
this.$Router.push({
name: 'Invitation'
})
},
// imei权限
checkIMEI() {
// 检查imei权限
return new Promise((resolve, reject) => {
if (plus.os.name == "Android") {
plus.android.requestPermissions(['android.permission.READ_PHONE_STATE'], (e) => {
if (e.deniedAlways.length > 0) {
resolve('Permanent');
}
if (e.deniedPresent.length > 0) {
resolve('Temporary');
}
if (e.granted.length > 0) {
resolve('Success');
}
}, (e) => {
uni.showToast({
title: JSON.stringify(e),
icon: 'none'
})
})
return
}
reject('非安卓设备');
})
}
}
}
</script>
<style lang="scss">
.capacity {
background: $window-color;
min-height: 100vh;
padding: $padding;
box-sizing: border-box;
&-hint {
font-size: 26rpx;
color: gray;
line-height: 40rpx;
padding: $padding 0;
}
&-title {
font-size: 38rpx;
font-weight: bold;
line-height: 60rpx;
text {
margin-left: 10rpx;
color: $main-color;
}
}
&-sbutitle {
font-size: 26rpx;
line-height: 40rpx;
}
&-block {
background: white;
margin-top: $margin;
border-radius: $radius;
padding: $padding;
&-glf {
color: $main-color;
font-size: 30rpx;
// padding-top: 30rpx;
}
&-title {
font-weight: bold;
font-size: 34rpx;
line-height: 60rpx;
display: flex;
justify-content: space-between;
.title {
text {
color: $main-color;
font-weight: normal;
padding-left: 10rpx;
}
}
.more {
background: $main-color;
color: white;
font-weight: bold;
font-size: 28rpx;
border-radius: 25rpx;
line-height: 60rpx;
width: 230rpx;
text-align: center;
}
.subtitle {
font-weight: normal;
font-size: 24rpx;
color: $main-color;
}
.nickname {
color: gray;
font-size: 30rpx;
}
}
&-text {
font-size: 28rpx;
color: gray;
line-height: 40rpx;
padding-top: 10rpx;
text{
color: $main-color;
font-weight: bold;
padding: 0 10rpx;
}
}
&-table {
border: solid 1px $border-color;
margin-top: 20rpx;
.header {
background: $border-color;
line-height: 50rpx;
padding: 0 15rpx;
font-size: 26rpx;
color: gray;
}
.flex {
display: flex;
border-top: solid 1rpx $border-color;
color: gray;
.flex-item {
width: 50%;
box-sizing: border-box;
line-height: 50rpx;
padding: 0 15rpx;
font-size: 24rpx;
&:first-child {
border-right: solid 1rpx $border-color;
}
}
}
}
}
.pt30 {
padding-top: 30rpx;
}
}
</style>