['现金红包部分页面添加及发现更多微调app端样式']

This commit is contained in:
2021-10-14 09:44:55 +08:00
parent 50fb945707
commit 01a9d8eb40
139 changed files with 62907 additions and 1049 deletions

View File

@@ -200,6 +200,16 @@
"navigationBarBackgroundColor":"#976dff" "navigationBarBackgroundColor":"#976dff"
} }
}, { }, {
"path": "pages/wallet/redProperty",
"name": "walletRedProperty",
"style": {
"navigationBarTitleText": "现金红包",
"enablePullDownRefresh": false,
"navigationBarTextStyle": "white",
"navigationBarBackgroundColor":"#976dff"
}
},
{
"path": "pages/wallet/extract", "path": "pages/wallet/extract",
"name": "Extract", "name": "Extract",
"style": { "style": {
@@ -208,6 +218,16 @@
"navigationBarBackgroundColor": "#976dff", "navigationBarBackgroundColor": "#976dff",
"navigationBarTextStyle": "white" "navigationBarTextStyle": "white"
} }
},
{
"path": "pages/wallet/extractRed",
"name": "ExtractRed",
"style": {
"navigationBarTitleText": "提现红包",
"enablePullDownRefresh": false,
"navigationBarBackgroundColor": "#976dff",
"navigationBarTextStyle": "white"
}
}, { }, {
"path": "pages/verification/index", "path": "pages/verification/index",
"name": "verificationIndex", "name": "verificationIndex",

View File

@@ -19,15 +19,20 @@
<view class="content-title">发现更多</view> <view class="content-title">发现更多</view>
<view class="content-sumite">海量能量碎片等你解锁</view> <view class="content-sumite">海量能量碎片等你解锁</view>
<view class="sign"> <view class="sign">
<view class="sign-list" :class="{ active: item.sign }" v-for="(item, index) in sign.signArr" :key="index"> <view class="sign-list" :class="{ active: item.sign }" v-for="(item, index) in sign.signArr"
:key="index">
<view class="sign-tips" v-if="item.sign"> <view class="sign-tips" v-if="item.sign">
<view class="sign-tips-text">已签</view> <view class="sign-tips-text">已签</view>
</view> </view>
<block v-if="index == 7"> <block v-if="index == 7">
<image class="sign-list-img" :src="item.sign ? '../../static/user/sign_icon_last_active.png' : '../../static/user/sign_icon_last.png'" mode="aspectFill"></image> <image class="sign-list-img"
:src="item.sign ? '../../static/user/sign_icon_last_active.png' : '../../static/user/sign_icon_last.png'"
mode="aspectFill"></image>
</block> </block>
<block v-else> <block v-else>
<image class="sign-list-img" :src="item.sign ? '../../static/user/sign_icon_active.png' : '../../static/user/sign_icon.png'" mode="aspectFill"></image> <image class="sign-list-img"
:src="item.sign ? '../../static/user/sign_icon_active.png' : '../../static/user/sign_icon.png'"
mode="aspectFill"></image>
</block> </block>
<view class="sign-list-day"> <view class="sign-list-day">
{{ item.text }} {{ item.text }}
@@ -39,6 +44,7 @@
<view class="signBtn"> <view class="signBtn">
<block v-if="sign.signCan"> <block v-if="sign.signCan">
<view class="signBtn-go" @click="signClick" style="cursor:pointer"> <view class="signBtn-go" @click="signClick" style="cursor:pointer">
<u-icon name="calendar-fill" color="#333" size="40" />
签到领取能量碎片 签到领取能量碎片
</view> </view>
</block> </block>
@@ -54,19 +60,29 @@
能量碎片任务 能量碎片任务
</view> </view>
<block v-for="(item, index) in task" :key="index"> <block v-for="(item, index) in task" :key="index">
<view class="task-item" v-if="item.rule.name != 'sign_crystal'" @click="JumpUrl(item.url, item.title, item.is_finish)"> <view class="task-item" v-if="item.rule.name != 'sign_crystal'"
@click="JumpUrl(item.url, item.title, item.is_finish)">
<image class="task-icon" :src="item.ico" mode="aspectFill"></image> <image class="task-icon" :src="item.ico" mode="aspectFill"></image>
<view class="task-title">{{item.title}}</view> <view class="task-title">{{item.title}}</view>
<view class="task-subtitle">{{item.remark}}</view> <view class="task-subtitle">{{item.remark}}</view>
<view class="task-label" :class="{'active' : item.is_finish}">{{item.is_finish ? '已完成' : item.tips}}<image @click.stop="showHelp" class="task-label-icon" src="@/static/imgs/user-crystalMark-grey.png"></image></view> <view class="task-label" :class="{'active' : item.is_finish}">{{item.is_finish ? '已完成' : item.tips}}
<image @click.stop="showHelp" class="task-label-icon"
src="@/static/imgs/user-crystalMark-grey.png"></image>
</view>
</view> </view>
</block> </block>
</view> </view>
</view> </view>
</template> </template>
<script> <script>
import { task, sign, operateSign } from '@/apis/interfaces/crystal' import {
import { userIndex } from '@/apis/interfaces/user' task,
sign,
operateSign
} from '@/apis/interfaces/crystal'
import {
userIndex
} from '@/apis/interfaces/user'
export default { export default {
data() { data() {
return { return {
@@ -165,13 +181,17 @@
var type = open.openType; var type = open.openType;
switch (type) { switch (type) {
case 'switchTab': case 'switchTab':
this.$Router.pushTab({name: open.path}) this.$Router.pushTab({
name: open.path
})
break; break;
case 'web': case 'web':
window.location.href = open.path window.location.href = open.path
break; break;
case 'navigateTo': case 'navigateTo':
this.$Router.push({name: open.path}) this.$Router.push({
name: open.path
})
break; break;
} }
} }
@@ -196,6 +216,7 @@
top: 0; top: 0;
animation: cssAnimation 0s ease-in 4s forwards; animation: cssAnimation 0s ease-in 4s forwards;
} }
.signPop { .signPop {
width: 60%; width: 60%;
position: fixed; position: fixed;
@@ -204,6 +225,7 @@
top: 30%; top: 30%;
height: 160px; height: 160px;
animation: cssAnimation 0s ease-in 4s forwards; animation: cssAnimation 0s ease-in 4s forwards;
.signPop-tips, .signPop-tips,
.signPop-cont { .signPop-cont {
position: absolute; position: absolute;
@@ -211,16 +233,20 @@
top: 0; top: 0;
width: 100%; width: 100%;
} }
.signPop-cont { .signPop-cont {
color: #FFFFFF; color: #FFFFFF;
text-align: center; text-align: center;
padding-top: 90px; padding-top: 90px;
.signPop-cont-name { .signPop-cont-name {
font-size: 34rpx; font-size: 34rpx;
margin-bottom: 10rpx; margin-bottom: 10rpx;
} }
.signPop-cont-text { .signPop-cont-text {
text-align: center; text-align: center;
.signPop-cont-number { .signPop-cont-number {
display: inline-block; display: inline-block;
color: #ffee4d; color: #ffee4d;
@@ -247,27 +273,33 @@
background: #7c52fc; background: #7c52fc;
color: #FFFFFF; color: #FFFFFF;
padding-bottom: 80rpx; padding-bottom: 80rpx;
.content-title { .content-title {
margin-top: 30rpx;
font-size: 40rpx; font-size: 40rpx;
padding: ($padding/2) 45rpx 0; padding: ($padding/2) 45rpx 0;
box-sizing: border-box; box-sizing: border-box;
display: flex; display: flex;
font-weight: bold; font-weight: bold;
.content-title-img { .content-title-img {
width: 32rpx; width: 32rpx;
height: 32rpx; height: 32rpx;
margin: 12rpx 20rpx; margin: 12rpx 20rpx;
} }
} }
.content-sumite { .content-sumite {
padding: 0 45rpx 50rpx 45rpx; padding: 0 45rpx 50rpx 45rpx;
font-size: $title-size-sm; font-size: $title-size-sm;
color: rgba($color: white, $alpha: .6); color: rgba($color: white, $alpha: .6);
} }
.sign { .sign {
margin: 0 0 30rpx; margin: 0 0 30rpx;
padding: 0 30rpx; padding: 0 30rpx;
box-sizing: border-box; box-sizing: border-box;
.sign-list { .sign-list {
width: calc(14.28% - 20rpx); width: calc(14.28% - 20rpx);
position: relative; position: relative;
@@ -278,6 +310,7 @@
border-radius: 10rpx; border-radius: 10rpx;
padding: 20rpx 0; padding: 20rpx 0;
box-sizing: border-box; box-sizing: border-box;
.sign-tips { .sign-tips {
position: absolute; position: absolute;
top: -20rpx; top: -20rpx;
@@ -290,9 +323,11 @@
width: 60rpx; width: 60rpx;
text-align: center; text-align: center;
border-radius: 6rpx; border-radius: 6rpx;
.sign-tips-text { .sign-tips-text {
transform: scale(0.85); transform: scale(0.85);
} }
&::after { &::after {
position: absolute; position: absolute;
content: ''; content: '';
@@ -305,21 +340,26 @@
border-top: 8rpx solid #ef4034; border-top: 8rpx solid #ef4034;
} }
} }
.sign-list-img { .sign-list-img {
width: 38rpx; width: 38rpx;
height: 38rpx; height: 38rpx;
margin-bottom: 5rpx; margin-bottom: 5rpx;
} }
.sign-list-day { .sign-list-day {
font-size: 24rpx; font-size: 24rpx;
} }
&.active { &.active {
background-color: #ffdb00; // background-color: #ffdb00;
background-image: linear-gradient(to right, #ffff7f, #ffdb00, #ffff7f);
color: #413e30; color: #413e30;
box-shadow: 0 0 20rpx rgba(76,43,177,.3); box-shadow: 0 0 20rpx 10rpx rgba(0, 0, 0, .2);
} }
} }
} }
.sign-record { .sign-record {
opacity: .8; opacity: .8;
padding: 0 40rpx; padding: 0 40rpx;
@@ -337,15 +377,21 @@
width: 100%; width: 100%;
text-align: center; text-align: center;
margin-top: -50rpx; margin-top: -50rpx;
.signBtn-go { .signBtn-go {
width: 100%; width: 100%;
height: 100rpx; height: 100rpx;
line-height: 100rpx; line-height: 100rpx;
border-radius: 80rpx; border-radius: 80rpx;
background-color: #f9dc4a; // background-color: #f9dc4a;
background-image: linear-gradient(to right, #ffff7f, #f9dc4a, #ffff7f);
box-shadow: 0 0 20rpx 10rpx rgba(0, 0, 0, .2);
color: #333333; color: #333333;
font-size: 32rpx; font-size: 32rpx;
font-weight: 600; font-weight: 600;
.u-icon{
margin-right: 20rpx;
}
.signBtn-go-icon { .signBtn-go-icon {
width: 36rpx; width: 36rpx;
height: 36rpx; height: 36rpx;
@@ -360,6 +406,7 @@
padding: 110rpx 30rpx 0; padding: 110rpx 30rpx 0;
box-sizing: border-box; box-sizing: border-box;
background: white; background: white;
.task-liest { .task-liest {
font-weight: bold; font-weight: bold;
font-size: 34rpx; font-size: 34rpx;
@@ -370,9 +417,11 @@
position: relative; position: relative;
border-bottom: solid 2rpx #F5F5F5; border-bottom: solid 2rpx #F5F5F5;
padding: 30rpx 200rpx 40rpx 90rpx; padding: 30rpx 200rpx 40rpx 90rpx;
&:last-child { &:last-child {
border: none; border: none;
} }
.task-icon { .task-icon {
position: absolute; position: absolute;
top: 50rpx; top: 50rpx;
@@ -380,21 +429,25 @@
width: 58rpx; width: 58rpx;
height: 58rpx height: 58rpx
} }
.task-title { .task-title {
font-size: 32rpx; font-size: 32rpx;
color: #333; color: #333;
line-height: 50rpx; line-height: 50rpx;
margin-bottom: 10rpx; margin-bottom: 10rpx;
} }
.task-subtitle { .task-subtitle {
color: #999; color: #999;
font-size: 26rpx; font-size: 26rpx;
line-height: 30rpx; line-height: 30rpx;
text { text {
font-size: $title-size-sm - 6; font-size: $title-size-sm - 6;
margin-left: $margin/2; margin-left: $margin/2;
} }
} }
.task-label { .task-label {
position: absolute; position: absolute;
right: 0; right: 0;
@@ -405,9 +458,11 @@
display: -webkit-box; display: -webkit-box;
display: -webkit-flex; display: -webkit-flex;
display: flex; display: flex;
&.active { &.active {
color: $text-gray-m; color: $text-gray-m;
} }
.task-label-icon { .task-label-icon {
width: 34rpx; width: 34rpx;
height: 34rpx; height: 34rpx;

View File

@@ -57,7 +57,7 @@
</view> </view>
</view> </view>
<!-- 关于我们 --> <!-- 关于我们 -->
<view @click="$router.push({name:'aboutUs'})" class="list-item"> <view @click="$Router.push({name:'aboutUs'})" class="list-item">
<view class="list-item-left"> <view class="list-item-left">
<image src="/static/imgs/mine-about.png" mode="widthFix" /> <image src="/static/imgs/mine-about.png" mode="widthFix" />
<span>关于链商星球</span> <span>关于链商星球</span>

View File

@@ -7,7 +7,8 @@
<view class="customerCont-text"> <view class="customerCont-text">
扫描上方微信二维码添加您的专属VIP客服 扫描上方微信二维码添加您的专属VIP客服
</view> </view>
<image class="customerClose" src="/static/user/user-customer-close.png" mode="aspectFill" @click="custEject"></image> <image class="customerClose" src="/static/user/user-customer-close.png" mode="aspectFill"
@click="custEject"></image>
</view> </view>
<!-- 专属客服弹出 end --> <!-- 专属客服弹出 end -->
<!-- 消息列表弹出 start --> <!-- 消息列表弹出 start -->
@@ -22,7 +23,8 @@
<view class="newCont-btn" v-if="!newnextShow" @click="newNext()"> <view class="newCont-btn" v-if="!newnextShow" @click="newNext()">
下一条 下一条
</view> </view>
<image class="newCont-close" src="/static/user/order-cancelPay.png" mode="aspectFill" @click="newEject()"></image> <image class="newCont-close" src="/static/user/order-cancelPay.png" mode="aspectFill" @click="newEject()">
</image>
</view> </view>
<!-- 消息列表弹出 end --> <!-- 消息列表弹出 end -->
<!-- ios安全区 --> <!-- ios安全区 -->
@@ -31,18 +33,23 @@
<view class="header"> <view class="header">
<!-- 工具 --> <!-- 工具 -->
<view class="user-tool"> <view class="user-tool">
<image class="user-tool-icon" src="/static/user/user-top-00.png" mode="aspectFill" @click="$Router.push({name: 'setting'})"></image> <image class="user-tool-icon" src="/static/user/user-top-00.png" mode="aspectFill"
<image class="user-tool-icon" src="/static/user/user-top-01.png" mode="aspectFill" @click="$Router.push({name: 'news'})"></image> @click="$Router.push({name: 'setting'})"></image>
<image class="user-tool-icon" src="/static/user/user-top-01.png" mode="aspectFill"
@click="$Router.push({name: 'news'})"></image>
</view> </view>
<!-- 用户信息 --> <!-- 用户信息 -->
<view class="user-info"> <view class="user-info">
<view class="user-portrait"> <view class="user-portrait">
<image class="user-portrait-head" :src="userData.avatar ? userData.avatar : '/static/user/user-portrait.png'" mode="aspectFill"></image> <image class="user-portrait-head"
:src="userData.avatar ? userData.avatar : '/static/user/user-portrait.png'" mode="aspectFill">
</image>
</view> </view>
<view class="user-head"> <view class="user-head">
<view class="user-name"> <view class="user-name">
{{userData.nickname}} {{userData.nickname}}
<image v-if="userData.identity" class="user-name-identity" :src="userData.identity.cover"></image> <image v-if="userData.identity" class="user-name-identity" :src="userData.identity.cover">
</image>
</view> </view>
<view class="user-status"> <view class="user-status">
邀请码{{userData.invite}} 邀请码{{userData.invite}}
@@ -58,8 +65,10 @@
<view class="userVip-top-name" v-if="userIdentity.right"> <view class="userVip-top-name" v-if="userIdentity.right">
{{ userData.identity.id == 1 ? '开通' + userIdentity.right.name : '到期时间' + userIdentity.times.ended_at}} {{ userData.identity.id == 1 ? '开通' + userIdentity.right.name : '到期时间' + userIdentity.times.ended_at}}
</view> </view>
<view class="userVip-top-btn" v-if="userData.identity.id != 5" @click="openVip(userIdentity.right.identity_id)"> <view class="userVip-top-btn" v-if="userData.identity.id != 5"
{{ userData.identity.id == 1 ? '去开通' : '去升级'}}<image class="userVip-top-arrow" src="/static/user/userVip_arrow.png"></image> @click="openVip(userIdentity.right.identity_id)">
{{ userData.identity.id == 1 ? '去开通' : '去升级'}}
<image class="userVip-top-arrow" src="/static/user/userVip_arrow.png"></image>
</view> </view>
<view class="userVip-top-btn" v-else> <view class="userVip-top-btn" v-else>
已达成满级 已达成满级
@@ -69,10 +78,15 @@
<view class="userVip-rights"> <view class="userVip-rights">
<view class="userVip-rightst-title"> <view class="userVip-rightst-title">
<view class="userVip-rightst-title-name">查看会员专属权益</view> <view class="userVip-rightst-title-name">查看会员专属权益</view>
<view class="userVip-rightst-more" @click="$Router.push({name: 'vipIndex', params:{identity_id: userIdentity.right.identity_id}})">全部更多 <image class="userVip-rightst-more-img" src="/static/user/userVip_more_arrow.png"></image></view> <view class="userVip-rightst-more"
@click="$Router.push({name: 'vipIndex', params:{identity_id: userIdentity.right.identity_id}})">
全部更多 <image class="userVip-rightst-more-img" src="/static/user/userVip_more_arrow.png">
</image>
</view>
</view> </view>
<view class="userVip-rightst-list" v-if="userIdentity.right"> <view class="userVip-rightst-list" v-if="userIdentity.right">
<view v-for="(item, index) in userIdentity.right.rights" :key="index" class="userVip-rightst-label"> <view v-for="(item, index) in userIdentity.right.rights" :key="index"
class="userVip-rightst-label">
<block v-if="index <= 3"> <block v-if="index <= 3">
<image class="userVip-rightst-img" :src="item.cover"></image> <image class="userVip-rightst-img" :src="item.cover"></image>
<view class="nowrap userVip-rightst-name">{{item.name}}</view> <view class="nowrap userVip-rightst-name">{{item.name}}</view>
@@ -92,7 +106,8 @@
<view class="userNew"> <view class="userNew">
<image class="userNew-icon" src="/static/user/userNew_icon.png"></image> <image class="userNew-icon" src="/static/user/userNew_icon.png"></image>
<swiper class="userNew-banner" disable-touch circular autoplay interval="3000" vertical> <swiper class="userNew-banner" disable-touch circular autoplay interval="3000" vertical>
<swiper-item class="ellipsis" v-for="(item, index) in newList" :key="index" @click="newEject(index)"> <swiper-item class="ellipsis" v-for="(item, index) in newList" :key="index"
@click="newEject(index)">
{{item.title}} {{item.title}}
</swiper-item> </swiper-item>
</swiper> </swiper>
@@ -113,11 +128,24 @@
</view> </view>
<view class="assets-list" v-if="userData.account"> <view class="assets-list" v-if="userData.account">
<view class="assets-label" @click="$Router.push({name:'walletProperty'})"> <view class="assets-label" @click="$Router.push({name:'walletProperty'})">
<view class="assets-label-name">能量球钱包<image @click.stop="showHelp('wallet')" class="assets-label-icon" src="/static/user/userAssets_tips.png"></image></view> <view class="assets-label-name">能量球钱包
<image @click.stop="showHelp('wallet')" class="assets-label-icon"
src="/static/user/userAssets_tips.png" />
</view>
<view class="assets-label-number">{{userData.account.stone || 0}}</view>
</view>
<view class="assets-label" @click="$Router.push({name:'walletRedProperty'})">
<view class="assets-label-name">现金红包
<image @click.stop="showHelp('wallet')" class="assets-label-icon"
src="/static/user/userAssets_tips.png" />
</view>
<view class="assets-label-number">{{userData.account.stone || 0}}</view> <view class="assets-label-number">{{userData.account.stone || 0}}</view>
</view> </view>
<view class="assets-label" @click="$Router.push({name:'Fragment'})"> <view class="assets-label" @click="$Router.push({name:'Fragment'})">
<view class="assets-label-name">能量碎片<image @click.stop="showHelp('chip')" class="assets-label-icon" src="/static/user/userAssets_tips.png"></image></view> <view class="assets-label-name">能量碎片
<image @click.stop="showHelp('chip')" class="assets-label-icon"
src="/static/user/userAssets_tips.png" />
</view>
<view class="assets-label-number">{{userData.account.score || 0}}</view> <view class="assets-label-number">{{userData.account.score || 0}}</view>
</view> </view>
</view> </view>
@@ -208,7 +236,11 @@
</template> </template>
<script> <script>
import { userIndex, userNotice, userCustomer } from '@/apis/interfaces/user' import {
userIndex,
userNotice,
userCustomer
} from '@/apis/interfaces/user'
import h5Copy from '@/js_sdk/junyi-h5-copy/junyi-h5-copy/junyi-h5-copy' import h5Copy from '@/js_sdk/junyi-h5-copy/junyi-h5-copy/junyi-h5-copy'
export default { export default {
data() { data() {
@@ -269,13 +301,20 @@ export default {
confirmText: '去认证', confirmText: '去认证',
success: res => { success: res => {
if (res.confirm) { if (res.confirm) {
this.$Router.push({name: 'Personal'}) this.$Router.push({
name: 'Personal'
})
} }
} }
}) })
return return
} }
this.$Router.push({name: 'vipIndex', params:{identity_id: identityId}}) this.$Router.push({
name: 'vipIndex',
params: {
identity_id: identityId
}
})
}, },
// 用户信息 // 用户信息
userInfo() { userInfo() {
@@ -389,6 +428,7 @@ export default {
.content-scroll { .content-scroll {
height: calc(100vh - 60px); height: calc(100vh - 60px);
} }
// 专属客服 // 专属客服
.customerBack { .customerBack {
position: fixed; position: fixed;
@@ -399,6 +439,7 @@ export default {
z-index: 1001; z-index: 1001;
background: rgba($color: #000000, $alpha: .5); background: rgba($color: #000000, $alpha: .5);
} }
.customerCont { .customerCont {
position: fixed; position: fixed;
padding: $padding 0; padding: $padding 0;
@@ -412,18 +453,22 @@ export default {
font-size: $uni-font-size-sm; font-size: $uni-font-size-sm;
text-align: center; text-align: center;
color: $text-gray; color: $text-gray;
&.active { &.active {
opacity: 0; opacity: 0;
} }
.customerCont-code { .customerCont-code {
margin: $margin 0 $margin; margin: $margin 0 $margin;
width: 300rpx; width: 300rpx;
height: 300rpx; height: 300rpx;
} }
.customerCont-text { .customerCont-text {
width: 80%; width: 80%;
margin: 0 auto; margin: 0 auto;
} }
.customerClose { .customerClose {
width: $uni-img-size-base; width: $uni-img-size-base;
height: $uni-img-size-base; height: $uni-img-size-base;
@@ -436,6 +481,7 @@ export default {
.btns { .btns {
padding: 30rpx 0; padding: 30rpx 0;
.item { .item {
background: white; background: white;
margin: $margin; margin: $margin;
@@ -468,6 +514,7 @@ export default {
font-size: $uni-font-size-sm; font-size: $uni-font-size-sm;
text-align: center; text-align: center;
color: $text-gray; color: $text-gray;
.newCont-title { .newCont-title {
padding: 25rpx 40rpx; padding: 25rpx 40rpx;
border-bottom: 1rpx solid #eaeaea; border-bottom: 1rpx solid #eaeaea;
@@ -475,11 +522,13 @@ export default {
font-size: 30rpx; font-size: 30rpx;
font-weight: 600; font-weight: 600;
text-align: center; text-align: center;
.newCont-title-text { .newCont-title-text {
padding: 0 50rpx; padding: 0 50rpx;
box-sizing: border-box; box-sizing: border-box;
} }
} }
.newCont-text { .newCont-text {
padding: 20rpx 40rpx 40rpx; padding: 20rpx 40rpx 40rpx;
box-sizing: border-box; box-sizing: border-box;
@@ -489,12 +538,14 @@ export default {
overflow: hidden; overflow: hidden;
overflow-y: scroll; overflow-y: scroll;
} }
.newCont-btn { .newCont-btn {
color: #7e54fe; color: #7e54fe;
font-size: 30rpx; font-size: 30rpx;
line-height: 90rpx; line-height: 90rpx;
border-top: 2rpx solid #eaeaea; border-top: 2rpx solid #eaeaea;
} }
.newCont-close { .newCont-close {
position: absolute; position: absolute;
top: 28rpx; top: 28rpx;
@@ -503,6 +554,7 @@ export default {
height: 32rpx; height: 32rpx;
} }
} }
// 会员卡 // 会员卡
.userVip { .userVip {
background-image: linear-gradient(to right, #4721bd, #885efe, #5d39b9); background-image: linear-gradient(to right, #4721bd, #885efe, #5d39b9);
@@ -512,14 +564,17 @@ export default {
color: #f6e9fa; color: #f6e9fa;
box-sizing: border-box; box-sizing: border-box;
padding-bottom: 40rpx; padding-bottom: 40rpx;
.userVip-top { .userVip-top {
display: flex; display: flex;
padding: 15px 30rpx; padding: 15px 30rpx;
.userVip-top-name { .userVip-top-name {
font-size: 30rpx; font-size: 30rpx;
flex: 1; flex: 1;
line-height: 24px; line-height: 24px;
} }
.userVip-top-btn { .userVip-top-btn {
font-size: 26rpx; font-size: 26rpx;
background-color: #977ae8; background-color: #977ae8;
@@ -528,6 +583,7 @@ export default {
height: 24px; height: 24px;
line-height: 24px; line-height: 24px;
display: flex; display: flex;
.userVip-top-arrow { .userVip-top-arrow {
width: 20rpx; width: 20rpx;
height: 20rpx; height: 20rpx;
@@ -535,17 +591,21 @@ export default {
} }
} }
} }
.userVip-tips { .userVip-tips {
margin-top: 40rpx; margin-top: 40rpx;
font-size: 28rpx; font-size: 28rpx;
.userVip-tips-title { .userVip-tips-title {
margin-bottom: 20rpx; margin-bottom: 20rpx;
font-weight: 600; font-weight: 600;
} }
.userVip-tips-text { .userVip-tips-text {
line-height: 48rpx; line-height: 48rpx;
} }
} }
.userVip-rights { .userVip-rights {
border-radius: 10rpx; border-radius: 10rpx;
margin: 0 30rpx; margin: 0 30rpx;
@@ -553,34 +613,41 @@ export default {
box-sizing: border-box; box-sizing: border-box;
background-image: linear-gradient(to bottom, #dbceff, #bb9fff); background-image: linear-gradient(to bottom, #dbceff, #bb9fff);
color: #5723af; color: #5723af;
.userVip-rightst-title { .userVip-rightst-title {
padding: 0 20rpx; padding: 0 20rpx;
box-sizing: border-box; box-sizing: border-box;
font-size: 30rpx; font-size: 30rpx;
display: flex; display: flex;
line-height: 40rpx; line-height: 40rpx;
.userVip-rightst-title-name { .userVip-rightst-title-name {
font-weight: 600; font-weight: 600;
flex: 1; flex: 1;
} }
.userVip-rightst-more { .userVip-rightst-more {
font-size: 28rpx; font-size: 28rpx;
display: flex; display: flex;
.userVip-rightst-more-img { .userVip-rightst-more-img {
width: 40rpx; width: 40rpx;
height: 40rpx; height: 40rpx;
} }
} }
} }
.userVip-rightst-list { .userVip-rightst-list {
margin-top: 30rpx; margin-top: 30rpx;
display: flex; display: flex;
.userVip-rightst-label { .userVip-rightst-label {
display: inline-block; display: inline-block;
width: 25%; width: 25%;
text-align: center; text-align: center;
font-size: 26rpx; font-size: 26rpx;
line-height: 40rpx; line-height: 40rpx;
.userVip-rightst-img { .userVip-rightst-img {
width: 90rpx; width: 90rpx;
height: 90rpx; height: 90rpx;
@@ -591,6 +658,7 @@ export default {
} }
} }
} }
// 会员信息 // 会员信息
.header { .header {
position: fixed; position: fixed;
@@ -598,11 +666,13 @@ export default {
left: 0; left: 0;
width: 100%; width: 100%;
background-image: linear-gradient(to right, #7c52fc, #976dff); background-image: linear-gradient(to right, #7c52fc, #976dff);
// user工具 // user工具
.user-tool { .user-tool {
text-align: right; text-align: right;
line-height: 40px; line-height: 40px;
@extend .ios-top; @extend .ios-top;
.user-tool-name { .user-tool-name {
flex: 1; flex: 1;
line-height: 40px; line-height: 40px;
@@ -610,6 +680,7 @@ export default {
color: #fff; color: #fff;
font-size: 28rpx; font-size: 28rpx;
} }
.user-tool-icon { .user-tool-icon {
padding-right: $padding; padding-right: $padding;
margin-top: 10px; margin-top: 10px;
@@ -618,6 +689,7 @@ export default {
vertical-align: top; vertical-align: top;
} }
} }
// 用户信息 // 用户信息
.user-info { .user-info {
position: relative; position: relative;
@@ -627,11 +699,13 @@ export default {
padding-left: $padding; padding-left: $padding;
padding-right: $padding; padding-right: $padding;
color: $uni-text-color-inverse; color: $uni-text-color-inverse;
.user-portrait { .user-portrait {
width: 70px; width: 70px;
height: 70px; height: 70px;
border-radius: $uni-border-radius-circle; border-radius: $uni-border-radius-circle;
position: relative; position: relative;
.user-portrait-head { .user-portrait-head {
border-radius: $uni-border-radius-circle; border-radius: $uni-border-radius-circle;
border: 4rpx solid #bfaaff; border: 4rpx solid #bfaaff;
@@ -641,12 +715,14 @@ export default {
width: calc(100% - 12px); width: calc(100% - 12px);
height: calc(100% - 12px); height: calc(100% - 12px);
} }
.user-portrait-tips { .user-portrait-tips {
position: absolute; position: absolute;
width: 100%; width: 100%;
height: 100%; height: 100%;
z-index: 1; z-index: 1;
} }
.user-portrait-name { .user-portrait-name {
position: absolute; position: absolute;
z-index: 2; z-index: 2;
@@ -662,6 +738,7 @@ export default {
line-height: 15px; line-height: 15px;
width: 64rpx; width: 64rpx;
text-align: center; text-align: center;
text { text {
display: block; display: block;
transform: scale(.8); transform: scale(.8);
@@ -672,6 +749,7 @@ export default {
} }
} }
} }
.user-head { .user-head {
position: absolute; position: absolute;
left: 0; left: 0;
@@ -680,10 +758,12 @@ export default {
height: 100%; height: 100%;
padding: 0 0 0 calc(#{$uni-img-size-lg + 20} + 35px); padding: 0 0 0 calc(#{$uni-img-size-lg + 20} + 35px);
box-sizing: border-box; box-sizing: border-box;
.user-name { .user-name {
display: flex; display: flex;
margin: 15px 0 2.5px; margin: 15px 0 2.5px;
font-size: 36rpx; font-size: 36rpx;
.user-name-identity { .user-name-identity {
vertical-align: top; vertical-align: top;
width: 90rpx; width: 90rpx;
@@ -691,11 +771,13 @@ export default {
margin: 5px 0 0 5px; margin: 5px 0 0 5px;
} }
} }
.user-status { .user-status {
opacity: .7; opacity: .7;
font-size: $title-size-sm; font-size: $title-size-sm;
display: flex; display: flex;
line-height: 23px; line-height: 23px;
.user-status-copy { .user-status-copy {
font-size: $title-size !important; font-size: $title-size !important;
border: 1rpx solid #FFFFFF; border: 1rpx solid #FFFFFF;
@@ -708,6 +790,7 @@ export default {
} }
} }
} }
// 会员卡 // 会员卡
.card { .card {
height: 100px; height: 100px;
@@ -715,6 +798,7 @@ export default {
background: #555555; background: #555555;
} }
} }
// 按钮内容 // 按钮内容
.mian { .mian {
position: relative; position: relative;
@@ -723,15 +807,18 @@ export default {
padding: 15px 30rpx 5px; padding: 15px 30rpx 5px;
background: #F5F5F5; background: #F5F5F5;
transition: margin .6s; transition: margin .6s;
&.shoeCard { &.shoeCard {
margin-top: 320px; margin-top: 320px;
} }
// 我的资产模块 // 我的资产模块
.userAssets { .userAssets {
margin-bottom: 15px; margin-bottom: 15px;
background-color: #FFFFFF; background-color: #FFFFFF;
overflow: hidden; overflow: hidden;
border-radius: 15rpx; border-radius: 15rpx;
.userAssets-top { .userAssets-top {
background-color: #fff3dc; background-color: #fff3dc;
color: #654c2d; color: #654c2d;
@@ -740,16 +827,19 @@ export default {
box-sizing: border-box; box-sizing: border-box;
height: 94rpx; height: 94rpx;
position: relative; position: relative;
.withdraw-name { .withdraw-name {
display: flex; display: flex;
width: calc(100% - 160rpx); width: calc(100% - 160rpx);
line-height: 54rpx; line-height: 54rpx;
.withdraw-number { .withdraw-number {
font-size: 32rpx; font-size: 32rpx;
font-weight: 600; font-weight: 600;
padding-left: 10rpx; padding-left: 10rpx;
} }
} }
.withdraw-btn { .withdraw-btn {
position: absolute; position: absolute;
right: 10px; right: 10px;
@@ -763,15 +853,18 @@ export default {
font-size: 26rpx; font-size: 26rpx;
} }
} }
.userAssets-show { .userAssets-show {
padding: 30rpx; padding: 30rpx;
box-sizing: border-box; box-sizing: border-box;
.assets-title { .assets-title {
position: relative; position: relative;
padding-bottom: 30rpx; padding-bottom: 30rpx;
margin-bottom: 40rpx; margin-bottom: 40rpx;
font-weight: 600; font-weight: 600;
font-size: 32rpx; font-size: 32rpx;
&::after { &::after {
position: absolute; position: absolute;
content: ''; content: '';
@@ -782,15 +875,19 @@ export default {
background-color: #f2f2f2; background-color: #f2f2f2;
} }
} }
.assets-list { .assets-list {
display: flex; display: flex;
.assets-label { .assets-label {
flex: 2; flex: 2;
text-align: center; text-align: center;
.assets-label-name { .assets-label-name {
color: #9c9c9c; color: #9c9c9c;
font-size: 28rpx; font-size: 28rpx;
position: relative; position: relative;
.assets-label-icon { .assets-label-icon {
position: absolute; position: absolute;
width: 26rpx; width: 26rpx;
@@ -798,6 +895,7 @@ export default {
margin-left: 6rpx; margin-left: 6rpx;
} }
} }
.assets-label-number { .assets-label-number {
font-size: 32rpx; font-size: 32rpx;
color: #ee4c47; color: #ee4c47;
@@ -808,6 +906,7 @@ export default {
} }
} }
} }
// 我的伙伴 // 我的伙伴
.userPartner { .userPartner {
margin-bottom: 30rpx; margin-bottom: 30rpx;
@@ -816,12 +915,14 @@ export default {
padding: 30rpx 0; padding: 30rpx 0;
box-sizing: border-box; box-sizing: border-box;
border-radius: 15rpx; border-radius: 15rpx;
.partner-title { .partner-title {
font-size: 32rpx; font-size: 32rpx;
position: relative; position: relative;
padding: 0 30rpx 30rpx; padding: 0 30rpx 30rpx;
margin-bottom: 30rpx; margin-bottom: 30rpx;
font-weight: 600; font-weight: 600;
&::after { &::after {
position: absolute; position: absolute;
content: ''; content: '';
@@ -836,13 +937,16 @@ export default {
.partner-list { .partner-list {
display: flex; display: flex;
margin-top: 40rpx; margin-top: 40rpx;
.partner-label { .partner-label {
flex: 2; flex: 2;
text-align: center; text-align: center;
.partner-label-name { .partner-label-name {
color: #9c9c9c; color: #9c9c9c;
font-size: 28rpx; font-size: 28rpx;
} }
.partner-label-number { .partner-label-number {
font-size: 32rpx; font-size: 32rpx;
font-weight: 600; font-weight: 600;
@@ -857,6 +961,7 @@ export default {
.partner-title { .partner-title {
margin-bottom: 0; margin-bottom: 0;
} }
.tool-list { .tool-list {
.tool-label { .tool-label {
display: inline-block; display: inline-block;
@@ -864,17 +969,20 @@ export default {
text-align: center; text-align: center;
font-size: 28rpx; font-size: 28rpx;
margin: 40rpx 0 20rpx; margin: 40rpx 0 20rpx;
.tool-label-img { .tool-label-img {
width: 44rpx; width: 44rpx;
height: 44rpx; height: 44rpx;
margin-bottom: 10rpx; margin-bottom: 10rpx;
} }
.tool-label-name { .tool-label-name {
color: #5e5e5e; color: #5e5e5e;
} }
} }
} }
} }
// 消息模块 // 消息模块
.userNew { .userNew {
background-color: #FFFFFF; background-color: #FFFFFF;
@@ -885,6 +993,7 @@ export default {
padding: 0 30rpx; padding: 0 30rpx;
box-sizing: border-box; box-sizing: border-box;
display: flex; display: flex;
.userNew-banner { .userNew-banner {
width: calc(100% - 70rpx); width: calc(100% - 70rpx);
height: 90rpx; height: 90rpx;
@@ -892,6 +1001,7 @@ export default {
font-size: 28rpx; font-size: 28rpx;
color: #5e5e5e; color: #5e5e5e;
} }
.userNew-icon { .userNew-icon {
width: 40rpx; width: 40rpx;
height: 40rpx; height: 40rpx;
@@ -902,29 +1012,38 @@ export default {
} }
.animated { .animated {
animation-duration: 1s; /*动画时间*/ animation-duration: 1s;
animation-fill-mode: both; /*播放后的状态*/ /*动画时间*/
animation-name:container; /*动画的名称*/ animation-fill-mode: both;
/*播放后的状态*/
animation-name: container;
/*动画的名称*/
} }
@keyframes container { @keyframes container {
0%, 0%,
100%, 100%,
20%, 20%,
50%, 50%,
80% { 80% {
transition-timing-function: cubic-bezier(0.215,.61,.355,1); /*贝塞尔曲线 X1 Y1 X2 Y2*/ transition-timing-function: cubic-bezier(0.215, .61, .355, 1);
transform: translate3d(0,0,0); /*设置只在Z轴上移动*/ /*贝塞尔曲线 X1 Y1 X2 Y2*/
transform: translate3d(0, 0, 0);
/*设置只在Z轴上移动*/
} }
40%, 40%,
43% { 43% {
transition-timing-function: cubic-bezier(0.755, 0.50, 0.855, 0.060); transition-timing-function: cubic-bezier(0.755, 0.50, 0.855, 0.060);
transform: translate3d(0, -30rpx, 0); transform: translate3d(0, -30rpx, 0);
} }
70% { 70% {
transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
transform: translate3d(0, -15rpx, 0); transform: translate3d(0, -15rpx, 0);
} }
90% { 90% {
transform: translate3d(0, -4rpx, 0); transform: translate3d(0, -4rpx, 0);
} }

View File

@@ -11,16 +11,6 @@
</view> </view>
</view> </view>
<view class="item-name">
提现至银行卡
<view class="right">
<view class="cardName" v-if="bank_accounts === 0" @click="addBanks">添加银行卡</view>
<view class="cardName" v-if='bank_accounts>0' @click="bankLists">{{bankInfo.name?bankInfo.name:'选择银行卡'}}
</view>
<uni-icons type="arrowright" size="12" color="#fff" />
</view>
</view>
<view class="withdrawing-content"> <view class="withdrawing-content">
<view class="item"> <view class="item">
<view style="flex: 1;"> <view style="flex: 1;">
@@ -33,8 +23,8 @@
</view> </view>
</view> </view>
<view class="total" v-if="total"> {{total.toFixed(2)}} </view> <view class="total" v-if="total"> {{total.toFixed(2)}} </view>
<view class="btn" @click="actions">提现至银行卡</view> <view class="btn" @click="actions">提现至红包</view>
<view class="des">预计5- 10个工作日到账 手续费: {{tax === '0'?'免手续费':tax+'%'}}</view> <view class="des">提现到红包可在红包中提现到银行卡 手续费: </view>
</view> </view>
</template> </template>
@@ -133,13 +123,13 @@
bank_account_id: this.bankInfo.bank_account_id, bank_account_id: this.bankInfo.bank_account_id,
amount: Number(this.withdraw_input) amount: Number(this.withdraw_input)
} }
if (data.bank_account_id === undefined || data.bank_account_id === null || data.bank_account_id === '') { // if (data.bank_account_id === undefined || data.bank_account_id === null || data.bank_account_id === '') {
uni.showToast({ // uni.showToast({
title: this.bank_accounts > 0 ? '请选择银行卡' : '请添加银行卡', // title: this.bank_accounts > 0 ? '请选择银行卡' : '请添加银行卡',
icon: 'none' // icon: 'none'
}) // })
return; // return;
} // }
if (data.amount === 0) { if (data.amount === 0) {
uni.showToast({ uni.showToast({
title: '请输入能量球数量', title: '请输入能量球数量',
@@ -149,7 +139,7 @@
} }
uni.showModal({ uni.showModal({
title: '温馨提示', title: '温馨提示',
content:this.tax === '0'?'您是否确认提现交易将免手续费':'您是否确认提现将会扣除' + this.tax + '%手续费', content:'您是否确认提现到红包,交易将免手续费',
confirmColor: '#7c52fc', confirmColor: '#7c52fc',
cancelColor: '#cacaca', cancelColor: '#cacaca',
cancelText: '我再想想', cancelText: '我再想想',
@@ -182,18 +172,6 @@
}) })
}, },
// 添加银行卡
addBanks() {
this.$Router.push({
name: 'addBank'
})
},
// 选择银行卡
bankLists() {
this.$Router.push({
name: 'bankList'
})
},
// 提现记录 // 提现记录
withdrawDetail() { withdrawDetail() {
this.$Router.push({ this.$Router.push({

403
pages/wallet/extractRed.vue Normal file
View File

@@ -0,0 +1,403 @@
<template>
<view class="WithdrawingCoin ">
<view class="propery">
<image src="/static/imgs/account-bg.png" mode="aspectFill" class="record-bg" />
<view class="propery-content">
<view class="currency">可提现额度</view>
<view class="balance">{{ balance || '0.00' }}</view>
<view class="frozen" @click="withdrawDetail">提现记录</view>
</view>
</view>
<view class="item-name">
提现至银行卡
<view class="right">
<view class="cardName" v-if="bank_accounts === 0" @click="addBanks">添加银行卡</view>
<view class="cardName" v-if='bank_accounts>0' @click="bankLists">{{bankInfo.name?bankInfo.name:'选择银行卡'}}
</view>
<uni-icons type="arrowright" size="12" color="#fff" />
</view>
</view>
<view class="withdrawing-content">
<view class="item">
<view style="flex: 1;">
<view class="inputTxt">提现金额</view>
<input class="input_num" v-model="withdraw_input" @input='inputNum' type="number"
placeholder-style="color:#999;font-weight:normal; font-size:34rpx;"
placeholder="请输入提现金额" :disabled="balance===0" />
</view>
<view class="all" @click="all">全部提现</view>
</view>
</view>
<view class="total" v-if="total">≈ ¥{{total.toFixed(2)}} </view>
<view class="btn" @click="actions">提现至银行卡</view>
<view class="des">预计5- 10个工作日到账 手续费: {{tax === '0'?'免手续费':tax+'%'}}</view>
</view>
</template>
<script>
import {
withdrawsIndexCreate,
withdrawsIndex
} from '@/apis/interfaces/withdraws';
export default {
data() {
return {
balance: 0, // 钱包能量球金额
tax: 0, // 当前手续费
cost: 1, // 每个能量球的价格
total: 0, // 约合人民币
card: '', // 银行卡号
withdraw_input: '', // 提现能量球金额
bank_accounts: 0,
bankInfo: {}
};
},
onLoad() {
this.getInfo()
},
onShow() {
if (uni.getStorageSync('refresh')) {
this.bankInfo = {}
this.getInfo()
}
},
methods: {
// 提现基本信息
getInfo() {
withdrawsIndexCreate().then(res => {
this.balance = res.balance
this.tax = res.tax
this.cost = res.cost
this.bank_accounts = res.bank_accounts.length
this.withdraw_input = Number(res.balance)
this.total = Number(res.balance) * Number(res.cost)
uni.setStorageSync('refresh', false)
}).catch(err => {
uni.showToast({
title: err.message,
icon: 'none'
})
})
},
// 输入提现能量球金额
inputNum(e) {
let number = Number(e.detail.value)
console.log(number, this.balance)
if (number <= Number(this.balance)) {
this.total = Number(e.detail.value) * this.cost
} else {
this.total = 0
if (Number(this.balance) === 0) {
uni.showToast({
title: '当前不能提现',
icon: 'none',
duration: 2000
});
this.withdraw_input = 0
this.total = 0
} else {
uni.showToast({
title: '最大值能超过' + this.balance + '',
icon: 'none',
duration: 2000
});
this.withdraw_input = this.balance
this.total = this.balance * this.cost
}
}
},
// 点击全部
all() {
if (this.balance > 0) {
this.withdraw_input = this.balance
this.total = this.balance * this.cost
} else {
uni.showToast({
title: '啥也没有我也做不到~',
icon: 'none',
duration: 2000
})
this.withdraw_input = 0
}
},
// 提现
actions() {
let data = {
bank_account_id: this.bankInfo.bank_account_id,
amount: Number(this.withdraw_input)
}
if (data.bank_account_id === undefined || data.bank_account_id === null || data.bank_account_id === '') {
uni.showToast({
title: this.bank_accounts > 0 ? '请选择银行卡' : '请添加银行卡',
icon: 'none'
})
return;
}
if (data.amount === 0) {
uni.showToast({
title: '请输入能量球金额',
icon: 'none'
})
return;
}
uni.showModal({
title: '温馨提示',
content:this.tax === '0'?'您是否确认提现交易将免手续费':'您是否确认提现将会扣除' + this.tax + '%手续费',
confirmColor: '#7c52fc',
cancelColor: '#cacaca',
cancelText: '我再想想',
confirmText: '确认提现',
success: (res) => {
if (res.confirm) {
uni.showLoading({
title: '提交中'
})
withdrawsIndex(data).then(res => {
uni.showToast({
title: res,
icon: 'none',
duration: 3000
})
this.withdraw_input = ''
this.total = ''
setTimeout(res => {
this.getInfo()
uni.hideLoading()
}, 3000)
}).catch(err => {
uni.showToast({
title: err.message,
icon: 'none'
})
})
}
}
})
},
// 添加银行卡
addBanks() {
this.$Router.push({
name: 'addBank'
})
},
// 选择银行卡
bankLists() {
this.$Router.push({
name: 'bankList'
})
},
// 提现记录
withdrawDetail() {
this.$Router.push({
name: 'withdrawList'
})
}
}
}
</script>
<style lang="scss">
page {
width: 100%;
min-height: 100vh;
background-color: #f7f7f7;
}
.receiptCode {
color: #808080;
text-align: left;
// margin: $margin 0;
font-size: $title-size-m;
}
.WithdrawingCoin {
background-color: #f7f7f7;
width: 100%;
min-height: 100vh;
padding-bottom: 100rpx;
// 账户
.propery {
position: relative;
padding-top: var(--status-bar-height);
background-image: linear-gradient(to top, #7c52fc, #976dff);
position: relative;
overflow: hidden;
.record-bg {
position: absolute;
width: 120%;
height: 300rpx;
bottom: -50rpx;
right: -20rpx;
z-index: 1;
opacity: .5;
transform: rotate(-7deg);
}
.propery-content {
position: relative;
z-index: 1;
padding: $padding/2 $padding $padding*3;
text-align: center;
.currency {
font-size: $title-size-m;
color: rgba($color: white, $alpha: .8);
}
.balance {
font-size: $title-size * 2.5;
padding: $padding 0;
color: white;
}
.frozen {
background: rgba($color: #000000, $alpha: .1);
color: rgba($color: white, $alpha: .7);
display: inline-block;
font-size: 24rpx;
padding: 6rpx $padding;
border-radius: $radius-m;
border: solid 1rpx rgba($color: white, $alpha: .4)
}
}
}
}
.all {
color: $text-price;
width: 160rpx;
text-align: center;
}
.item-name {
text-align: center;
color: #303030;
font-weight: bold;
margin-bottom: $margin;
font-size: 30rpx;
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
box-sizing: border-box;
background-image: linear-gradient(to right, #aaaaff, #aaaaff);
color: #fff;
margin: 30rpx;
padding: 30rpx;
.right {
flex: 1;
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
font-size: 34rpx;
.cardName {
flex: 1;
}
}
}
.withdrawing-content {
background-color: #fff;
padding: $padding $padding $padding $padding * 2;
font-size: $title-size-m;
/* 绑定银行卡 */
.bank-card {
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
box-sizing: border-box;
padding: 0 45rpx 0 35rpx;
}
.item {
display: flex;
flex-direction: row;
align-items: center;
justify-content: flex-start;
box-sizing: border-box;
padding: 20rpx 0;
span:nth-child(1) {
color: #666;
margin-right: 20rpx;
}
.inputTxt {
color: #999;
padding-bottom: 20rpx;
}
.input_num {
font-size: 60rpx;
color: #3a3a3a;
font-weight: bolder;
flex: 1;
}
}
.item-total {
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
padding: $padding*1 0 0 0;
color: #3a3a3a;
.total {
display: flex;
flex-direction: column;
align-items: flex-start;
justify-content: center;
box-sizing: border-box;
.money {
padding-top: $padding *0.5;
}
}
.lists {
color: $text-price;
}
}
}
.btn {
background-image: linear-gradient(to right, #7c52fc, #976dff);
color: #fff;
border-radius: 10rpx;
text-align: center;
padding: $padding * .9;
margin: $margin * 3 $margin *2 $margin $margin*2;
font-size: $title-size;
font-weight: bold;
}
.des {
text-align: center;
color: #cacaca;
font-size: 26rpx;
}
.total {
color: $mian-color;
margin-top: 20rpx;
margin-left: 50rpx;
font-size: 36rpx;
}
</style>

View File

@@ -0,0 +1,396 @@
<template>
<view class="propertyIndex">
<view class="propery">
<image src="/static/imgs/account-bg.png" mode="aspectFill" class="record-bg" />
<view class="propery-content">
<view class="currency">能量球钱包
<span>( {{ price || '0.00' }} CNY)</span>
</view>
<view class="balance">{{ balance.balance || '0.00' }}</view>
<!-- <view class="frozen">{{ balance.frozen || '0.00' }} 冻结中</view> -->
<view class="balance-flex">
<view class="balance-flex-item" @click="showAddress">区块链地址</view>
<!-- <view class="balance-flex-item" @click="showPrivatekey('privatekey')">我的私钥</view> -->
<view class="balance-flex-item" @click="$Router.push({name: 'Extract'})">能量球提现</view>
</view>
</view>
</view>
<!-- 账户记录 -->
<view class="record">
<view class="record-tabs">
<view class="tabs-item" :class="logsType === 0 ? 'show': ''" @click="onLogsType(0)">全部</view>
<view class="tabs-item" :class="logsType === 2 ? 'show': ''" @click="onLogsType(2)">收入</view>
<view class="tabs-item" :class="logsType === 1 ? 'show': ''" @click="onLogsType(1)">支出</view>
</view>
<record :list="logs" :logsType="logsType" />
<!-- ios安全距离 -->
<view class="ios-bottom"></view>
</view>
<!-- 支付密码 -->
<uni-popup ref="showPassword">
<view class="validationPassword">
<view class="from">
<view class="title">验证密码</view>
<input class="input" v-model="password" password placeholder="请验证安全密码" />
</view>
<view class="buttons">
<view class="button cancel" @click="payPassword('cancel', passwordPages)">取消</view>
<view class="button confirm" @click="payPassword('confirm', passwordPages)">验证</view>
</view>
</view>
</uni-popup>
<!-- 原密码弹窗 -->
<!-- <number-jpan :length="6" @closeChange="closeChange($event)" ref="numberPad"></number-jpan> -->
</view>
</template>
<script>
import record from '@/components/property/record'
import h5Copy from '@/js_sdk/junyi-h5-copy/junyi-h5-copy/junyi-h5-copy'
import {
sum,
price,
logs,
code,
securityCheck // 输入旧密码是否正确
} from '@/apis/interfaces/wallet'
import numberJpan from "@/components/numberJpan/numberJpan.vue";
export default {
components: {
record
},
data() {
return {
balance: {},
price: '0.00',
logs: [],
logsType: 0,
password: '',
passwordPages: ''
};
},
onShow() {
this.getsum()
this.getlog()
},
methods: {
getsum() {
sum().then(res => {
this.balance = res
this.price = res.price
}).catch(err => {
uni.showToast({
icon: 'none',
title: err.message
})
})
},
getlog() {
logs().then(res => {
this.logs = res
}).catch(err => {
uni.showToast({
icon: 'none',
title: err.message
})
})
},
// 弹出私钥
showPrivatekey(pages) {
this.passwordPages = pages
this.$refs.showPassword.open('center')
},
// 验证私钥
payPassword(type) {
if (type === 'confirm') {
if (this.password === '') {
uni.showToast({
title: '请输入安全密码',
icon: 'none'
})
return
}
securityCheck(this.password).then(res => {
this.$refs.showPassword.close()
switch (this.passwordPages) {
case 'privatekey':
this.$Router.push({
name: 'Privatekey',
params: {
password: this.password
}
})
break;
case 'resetPassword':
this.$Router.push({
name: 'ResetPassword',
params: {
password: this.password
}
})
break;
}
this.password = ''
}).catch(err => {
uni.showToast({
title: err.message,
icon: 'none',
})
})
return
}
this.$refs.showPassword.close()
},
// 交易记录
onLogsType(index) {
if (this.logsType === index) return
this.logsType = index
this.logs = []
logs({
flag: this.logsType
}).then(res => {
this.logs = res
})
},
// 区块地址
showAddress() {
uni.showModal({
title: '我的区块链地址',
content: '\n地址可以理解为银行卡卡号与他人转账时是区块链上的两个地址间的交易行为\n\n' + this.balance.address,
confirmText: '复制',
confirmColor: '#b11eff',
showCancel:false,
success: (res) => {
if (res.confirm) {
uni.setClipboardData({
data: this.balance.address,
success() {
uni.showToast({
title: '区块链地址已复制',
icon : 'none'
})
}
})
}
}
})
}
},
onNavigationBarButtonTap(e) {
if (e.index === 0) {
uni.showActionSheet({
// itemList: ['转账', '收款', '提币', '修改密码'],
itemList: ['提现', '修改密码'],
success: (res) => {
switch (res.tapIndex) {
case 0:
console.log('提现了,')
this.$Router.push({
name: 'Extract'
})
break;
case 1:
this.showPrivatekey('resetPassword')
break;
}
uni.hideLoading()
}
})
}
}
}
</script>
<style lang="scss" scoped>
.propertyIndex {
width: 100%;
min-height: 100vh;
background-color: #FFFFFF;
}
// 验证密码弹出层
.validationPassword {
background-color: white;
border-radius: $radius-m;
width: 70vw;
.from {
padding: $padding*2;
.title {
text-align: center;
font-size: $title-size;
padding-bottom: $padding*2;
font-weight: bold;
color: $text-price;
}
.input {
text-align: center;
height: 90rpx;
font-size: $title-size;
border-radius: $radius-m;
background: $border-color-lg;
padding: 0 ($padding*2);
}
}
.buttons {
display: flex;
border-top: solid 1rpx $border-color;
.button {
width: 50%;
font-size: $title-size;
line-height: 90rpx;
height: 90rpx;
text-align: center;
box-sizing: border-box;
&.cancel {
border-right: solid 1rpx $border-color;
color: $text-gray;
}
&.confirm {
color: $text-price;
}
}
}
// .button{
// background-color: $text-price;
// color: white;
// border-radius: $radius-m;
// border: none;
// margin-top: $margin*2;
// font-size: $title-size;
// height: 90rpx;
// line-height: 90rpx;
// }
// .close{
// @extend .button;
// text-align: center;
// color: $text-gray;
// margin-top: $margin;
// background-color: transparent;
// }
}
// 账户
.propery {
position: relative;
padding-top: var(--status-bar-height);
background-image: linear-gradient(to top, #7c52fc, #976dff);
position: relative;
overflow: hidden;
.record-bg {
position: absolute;
width: 100%;
height: 300rpx;
bottom: 0;
right: 0;
z-index: 1;
opacity: .5;
transform: rotate(0);
}
// &::before {
// position: absolute;
// left: 0;
// top: 0;
// width: 100%;
// height: 100%;
// content: " ";
// background-image: url(@/static/imgs/account-bg.png);
// background-size: 100%;
// background-repeat: no-repeat;
// opacity: .5;
// transform:rotate(0deg);
// }
.propery-content {
position: relative;
z-index: 1;
padding: $padding/2 $padding $padding*3;
text-align: center;
.currency {
font-size: $title-size-m;
color: rgba($color: white, $alpha: .8);
}
.balance {
font-size: $title-size * 2.5;
padding: $padding 0;
color: white;
}
.frozen {
background: rgba($color: #000000, $alpha: .1);
color: rgba($color: white, $alpha: .7);
display: inline-block;
font-size: 24rpx;
padding: 6rpx $padding;
border-radius: $radius-m;
border: solid 1rpx rgba($color: white, $alpha: .4)
}
.balance-flex {
display: flex;
justify-content: center;
margin-top: $margin * 2;
.balance-flex-item {
background-color: white;
width: 200rpx;
height: 75rpx;
line-height: 75rpx;
color: $text-price;
margin: 0 $margin;
border-radius: $radius-m;
font-size: 28rpx;
}
}
}
}
// 记录
.record {
background-color: white;
border-radius: $radius $radius 0 0;
padding: $padding ($padding * 2);
margin-top: -$margin;
position: relative;
z-index: 2;
.record-tabs {
display: flex;
justify-content: space-around;
font-weight: bold;
font-size: $title-size;
color: $text-gray;
line-height: 70rpx;
margin-bottom: $margin;
.tabs-item {
position: relative;
padding: 0 $padding;
&.show {
color: $text-price;
&::before {
position: absolute;
bottom: 0;
left: $padding;
right: $padding;
height: 4rpx;
content: " ";
background-color: $text-price;
}
}
}
}
}
</style>

View File

@@ -9,7 +9,7 @@
<view class="balance">{{ balance.balance || '0.00' }}</view> <view class="balance">{{ balance.balance || '0.00' }}</view>
<!-- <view class="frozen">{{ balance.frozen || '0.00' }} 冻结中</view> --> <!-- <view class="frozen">{{ balance.frozen || '0.00' }} 冻结中</view> -->
<view class="balance-flex"> <view class="balance-flex">
<view class="balance-flex-item" @click="showAddress">区块链地址</view> <!-- <view class="balance-flex-item" @click="showAddress">区块链地址</view> -->
<!-- <view class="balance-flex-item" @click="showPrivatekey('privatekey')">我的私钥</view> --> <!-- <view class="balance-flex-item" @click="showPrivatekey('privatekey')">我的私钥</view> -->
<view class="balance-flex-item" @click="$Router.push({name: 'Extract'})">能量球提现</view> <view class="balance-flex-item" @click="$Router.push({name: 'Extract'})">能量球提现</view>
</view> </view>
@@ -17,30 +17,16 @@
</view> </view>
<!-- 账户记录 --> <!-- 账户记录 -->
<view class="record"> <view class="record">
<view class="record-tabs"> <!-- <view class="record-tabs">
<view class="tabs-item" :class="logsType === 0 ? 'show': ''" @click="onLogsType(0)">全部</view> <view class="tabs-item" :class="logsType === 0 ? 'show': ''" @click="onLogsType(0)">全部</view>
<view class="tabs-item" :class="logsType === 2 ? 'show': ''" @click="onLogsType(2)">收入</view> <view class="tabs-item" :class="logsType === 2 ? 'show': ''" @click="onLogsType(2)">收入</view>
<view class="tabs-item" :class="logsType === 1 ? 'show': ''" @click="onLogsType(1)">支出</view> <view class="tabs-item" :class="logsType === 1 ? 'show': ''" @click="onLogsType(1)">支出</view>
</view> </view> -->
<record :list="logs" :logsType="logsType" /> <record :list="logs" :logsType="0" />
<!-- ios安全距离 --> <!-- ios安全距离 -->
<view class="ios-bottom"></view> <view class="ios-bottom"></view>
</view> </view>
<!-- 支付密码 -->
<uni-popup ref="showPassword">
<view class="validationPassword">
<view class="from">
<view class="title">验证密码</view>
<input class="input" v-model="password" password placeholder="请验证安全密码" />
</view>
<view class="buttons">
<view class="button cancel" @click="payPassword('cancel', passwordPages)">取消</view>
<view class="button confirm" @click="payPassword('confirm', passwordPages)">验证</view>
</view>
</view>
</uni-popup>
<!-- 原密码弹窗 -->
<!-- <number-jpan :length="6" @closeChange="closeChange($event)" ref="numberPad"></number-jpan> -->
</view> </view>
</template> </template>

View File

@@ -0,0 +1,396 @@
<template>
<view class="propertyIndex">
<view class="propery">
<image src="/static/imgs/account-bg.png" mode="aspectFill" class="record-bg" />
<view class="propery-content">
<view class="currency">可提现额度
<!-- <span>( {{ price || '0.00' }} CNY)</span> -->
</view>
<view class="balance">{{ balance.balance || '0.00' }}</view>
<!-- <view class="frozen">{{ balance.frozen || '0.00' }} 冻结中</view> -->
<view class="balance-flex">
<view class="balance-flex-item" @click="showAddress">区块链地址</view>
<!-- <view class="balance-flex-item" @click="showPrivatekey('privatekey')">我的私钥</view> -->
<view class="balance-flex-item" @click="$Router.push({name: 'ExtractRed'})">红包提现</view>
</view>
</view>
</view>
<!-- 账户记录 -->
<view class="record">
<view class="record-tabs">
<view class="tabs-item" :class="logsType === 0 ? 'show': ''" @click="onLogsType(0)">全部</view>
<view class="tabs-item" :class="logsType === 2 ? 'show': ''" @click="onLogsType(2)">收入</view>
<view class="tabs-item" :class="logsType === 1 ? 'show': ''" @click="onLogsType(1)">支出</view>
</view>
<record :list="logs" :logsType="logsType" />
<!-- ios安全距离 -->
<view class="ios-bottom"></view>
</view>
<!-- 支付密码 -->
<uni-popup ref="showPassword">
<view class="validationPassword">
<view class="from">
<view class="title">验证密码</view>
<input class="input" v-model="password" password placeholder="请验证安全密码" />
</view>
<view class="buttons">
<view class="button cancel" @click="payPassword('cancel', passwordPages)">取消</view>
<view class="button confirm" @click="payPassword('confirm', passwordPages)">验证</view>
</view>
</view>
</uni-popup>
<!-- 原密码弹窗 -->
<!-- <number-jpan :length="6" @closeChange="closeChange($event)" ref="numberPad"></number-jpan> -->
</view>
</template>
<script>
import record from '@/components/property/record'
import h5Copy from '@/js_sdk/junyi-h5-copy/junyi-h5-copy/junyi-h5-copy'
import {
sum,
price,
logs,
code,
securityCheck // 输入旧密码是否正确
} from '@/apis/interfaces/wallet'
import numberJpan from "@/components/numberJpan/numberJpan.vue";
export default {
components: {
record
},
data() {
return {
balance: {},
price: '0.00',
logs: [],
logsType: 0,
password: '',
passwordPages: ''
};
},
onShow() {
this.getsum()
this.getlog()
},
methods: {
getsum() {
sum().then(res => {
this.balance = res
this.price = res.price
}).catch(err => {
uni.showToast({
icon: 'none',
title: err.message
})
})
},
getlog() {
logs().then(res => {
this.logs = res
}).catch(err => {
uni.showToast({
icon: 'none',
title: err.message
})
})
},
// 弹出私钥
showPrivatekey(pages) {
this.passwordPages = pages
this.$refs.showPassword.open('center')
},
// 验证私钥
payPassword(type) {
if (type === 'confirm') {
if (this.password === '') {
uni.showToast({
title: '请输入安全密码',
icon: 'none'
})
return
}
securityCheck(this.password).then(res => {
this.$refs.showPassword.close()
switch (this.passwordPages) {
case 'privatekey':
this.$Router.push({
name: 'Privatekey',
params: {
password: this.password
}
})
break;
case 'resetPassword':
this.$Router.push({
name: 'ResetPassword',
params: {
password: this.password
}
})
break;
}
this.password = ''
}).catch(err => {
uni.showToast({
title: err.message,
icon: 'none',
})
})
return
}
this.$refs.showPassword.close()
},
// 交易记录
onLogsType(index) {
if (this.logsType === index) return
this.logsType = index
this.logs = []
logs({
flag: this.logsType
}).then(res => {
this.logs = res
})
},
// 区块地址
showAddress() {
uni.showModal({
title: '我的区块链地址',
content: '\n地址可以理解为银行卡卡号与他人转账时是区块链上的两个地址间的交易行为\n\n' + this.balance.address,
confirmText: '复制',
confirmColor: '#b11eff',
showCancel:false,
success: (res) => {
if (res.confirm) {
uni.setClipboardData({
data: this.balance.address,
success() {
uni.showToast({
title: '区块链地址已复制',
icon : 'none'
})
}
})
}
}
})
}
},
onNavigationBarButtonTap(e) {
if (e.index === 0) {
uni.showActionSheet({
// itemList: ['转账', '收款', '提币', '修改密码'],
itemList: ['提现', '修改密码'],
success: (res) => {
switch (res.tapIndex) {
case 0:
console.log('提现了,')
this.$Router.push({
name: 'Extract'
})
break;
case 1:
this.showPrivatekey('resetPassword')
break;
}
uni.hideLoading()
}
})
}
}
}
</script>
<style lang="scss" scoped>
.propertyIndex {
width: 100%;
min-height: 100vh;
background-color: #FFFFFF;
}
// 验证密码弹出层
.validationPassword {
background-color: white;
border-radius: $radius-m;
width: 70vw;
.from {
padding: $padding*2;
.title {
text-align: center;
font-size: $title-size;
padding-bottom: $padding*2;
font-weight: bold;
color: $text-price;
}
.input {
text-align: center;
height: 90rpx;
font-size: $title-size;
border-radius: $radius-m;
background: $border-color-lg;
padding: 0 ($padding*2);
}
}
.buttons {
display: flex;
border-top: solid 1rpx $border-color;
.button {
width: 50%;
font-size: $title-size;
line-height: 90rpx;
height: 90rpx;
text-align: center;
box-sizing: border-box;
&.cancel {
border-right: solid 1rpx $border-color;
color: $text-gray;
}
&.confirm {
color: $text-price;
}
}
}
// .button{
// background-color: $text-price;
// color: white;
// border-radius: $radius-m;
// border: none;
// margin-top: $margin*2;
// font-size: $title-size;
// height: 90rpx;
// line-height: 90rpx;
// }
// .close{
// @extend .button;
// text-align: center;
// color: $text-gray;
// margin-top: $margin;
// background-color: transparent;
// }
}
// 账户
.propery {
position: relative;
padding-top: var(--status-bar-height);
background-image: linear-gradient(to top, #7c52fc, #976dff);
position: relative;
overflow: hidden;
.record-bg {
position: absolute;
width: 100%;
height: 300rpx;
bottom: 0;
right: 0;
z-index: 1;
opacity: .5;
transform: rotate(0);
}
// &::before {
// position: absolute;
// left: 0;
// top: 0;
// width: 100%;
// height: 100%;
// content: " ";
// background-image: url(@/static/imgs/account-bg.png);
// background-size: 100%;
// background-repeat: no-repeat;
// opacity: .5;
// transform:rotate(0deg);
// }
.propery-content {
position: relative;
z-index: 1;
padding: $padding/2 $padding $padding*3;
text-align: center;
.currency {
font-size: $title-size-m;
color: rgba($color: white, $alpha: .8);
}
.balance {
font-size: $title-size * 2.5;
padding: $padding 0;
color: white;
}
.frozen {
background: rgba($color: #000000, $alpha: .1);
color: rgba($color: white, $alpha: .7);
display: inline-block;
font-size: 24rpx;
padding: 6rpx $padding;
border-radius: $radius-m;
border: solid 1rpx rgba($color: white, $alpha: .4)
}
.balance-flex {
display: flex;
justify-content: center;
margin-top: $margin * 2;
.balance-flex-item {
background-color: white;
width: 200rpx;
height: 75rpx;
line-height: 75rpx;
color: $text-price;
margin: 0 $margin;
border-radius: $radius-m;
font-size: 28rpx;
}
}
}
}
// 记录
.record {
background-color: white;
border-radius: $radius $radius 0 0;
padding: $padding ($padding * 2);
margin-top: -$margin;
position: relative;
z-index: 2;
.record-tabs {
display: flex;
justify-content: space-around;
font-weight: bold;
font-size: $title-size;
color: $text-gray;
line-height: 70rpx;
margin-bottom: $margin;
.tabs-item {
position: relative;
padding: 0 $padding;
&.show {
color: $text-price;
&::before {
position: absolute;
bottom: 0;
left: $padding;
right: $padding;
height: 4rpx;
content: " ";
background-color: $text-price;
}
}
}
}
}
</style>

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

@@ -0,0 +1,25 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8" />
<script>
var __UniViewStartTime__ = Date.now();
var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') ||
CSS.supports('top: constant(a)'))
document.write(
'<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' +
(coverSupport ? ', viewport-fit=cover' : '') + '" />')
</script>
<title>View</title>
<link rel="stylesheet" href="view.css" />
</head>
<body>
<div id="app"></div>
<script src="__uniappes6.js"></script>
<script src="view.umd.min.js"></script>
<script src="app-view.js"></script>
</body>
</html>

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,154 @@
/******/ (function(modules) { // webpackBootstrap
/******/ // install a JSONP callback for chunk loading
/******/ function webpackJsonpCallback(data) {
/******/ var chunkIds = data[0];
/******/ var moreModules = data[1];
/******/ var executeModules = data[2];
/******/
/******/ // add "moreModules" to the modules object,
/******/ // then flag all "chunkIds" as loaded and fire callback
/******/ var moduleId, chunkId, i = 0, resolves = [];
/******/ for(;i < chunkIds.length; i++) {
/******/ chunkId = chunkIds[i];
/******/ if(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {
/******/ resolves.push(installedChunks[chunkId][0]);
/******/ }
/******/ installedChunks[chunkId] = 0;
/******/ }
/******/ for(moduleId in moreModules) {
/******/ if(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {
/******/ modules[moduleId] = moreModules[moduleId];
/******/ }
/******/ }
/******/ if(parentJsonpFunction) parentJsonpFunction(data);
/******/
/******/ while(resolves.length) {
/******/ resolves.shift()();
/******/ }
/******/
/******/ // add entry modules from loaded chunk to deferred list
/******/ deferredModules.push.apply(deferredModules, executeModules || []);
/******/
/******/ // run deferred modules when all chunks ready
/******/ return checkDeferredModules();
/******/ };
/******/ function checkDeferredModules() {
/******/ var result;
/******/ for(var i = 0; i < deferredModules.length; i++) {
/******/ var deferredModule = deferredModules[i];
/******/ var fulfilled = true;
/******/ for(var j = 1; j < deferredModule.length; j++) {
/******/ var depId = deferredModule[j];
/******/ if(installedChunks[depId] !== 0) fulfilled = false;
/******/ }
/******/ if(fulfilled) {
/******/ deferredModules.splice(i--, 1);
/******/ result = __webpack_require__(__webpack_require__.s = deferredModule[0]);
/******/ }
/******/ }
/******/
/******/ return result;
/******/ }
/******/
/******/ // The module cache
/******/ var installedModules = {};
/******/
/******/ // object to store loaded and loading chunks
/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched
/******/ // Promise = chunk loading, 0 = chunk loaded
/******/ var installedChunks = {
/******/ "app-config": 0
/******/ };
/******/
/******/ var deferredModules = [];
/******/
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/
/******/ // Check if module is in cache
/******/ if(installedModules[moduleId]) {
/******/ return installedModules[moduleId].exports;
/******/ }
/******/ // Create a new module (and put it into the cache)
/******/ var module = installedModules[moduleId] = {
/******/ i: moduleId,
/******/ l: false,
/******/ exports: {}
/******/ };
/******/
/******/ // Execute the module function
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ // Flag the module as loaded
/******/ module.l = true;
/******/
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/
/******/
/******/ // expose the modules object (__webpack_modules__)
/******/ __webpack_require__.m = modules;
/******/
/******/ // expose the module cache
/******/ __webpack_require__.c = installedModules;
/******/
/******/ // define getter function for harmony exports
/******/ __webpack_require__.d = function(exports, name, getter) {
/******/ if(!__webpack_require__.o(exports, name)) {
/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
/******/ }
/******/ };
/******/
/******/ // define __esModule on exports
/******/ __webpack_require__.r = function(exports) {
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ }
/******/ Object.defineProperty(exports, '__esModule', { value: true });
/******/ };
/******/
/******/ // create a fake namespace object
/******/ // mode & 1: value is a module id, require it
/******/ // mode & 2: merge all properties of value into the ns
/******/ // mode & 4: return value when already ns object
/******/ // mode & 8|1: behave like require
/******/ __webpack_require__.t = function(value, mode) {
/******/ if(mode & 1) value = __webpack_require__(value);
/******/ if(mode & 8) return value;
/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
/******/ var ns = Object.create(null);
/******/ __webpack_require__.r(ns);
/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
/******/ return ns;
/******/ };
/******/
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ __webpack_require__.n = function(module) {
/******/ var getter = module && module.__esModule ?
/******/ function getDefault() { return module['default']; } :
/******/ function getModuleExports() { return module; };
/******/ __webpack_require__.d(getter, 'a', getter);
/******/ return getter;
/******/ };
/******/
/******/ // Object.prototype.hasOwnProperty.call
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ // __webpack_public_path__
/******/ __webpack_require__.p = "/";
/******/
/******/ var jsonpArray = this["webpackJsonp"] = this["webpackJsonp"] || [];
/******/ var oldJsonpFunction = jsonpArray.push.bind(jsonpArray);
/******/ jsonpArray.push = webpackJsonpCallback;
/******/ jsonpArray = jsonpArray.slice();
/******/ for(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);
/******/ var parentJsonpFunction = oldJsonpFunction;
/******/
/******/
/******/ // run deferred modules from other chunks
/******/ checkDeferredModules();
/******/ })
/************************************************************************/
/******/ ([]);

32249
unpackage/dist/dev/app-plus/app-service.js vendored Normal file

File diff suppressed because one or more lines are too long

28047
unpackage/dist/dev/app-plus/app-view.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
{"@platforms":["android","iPhone","iPad"],"id":"__UNI__1F65101","name":"BlockChainH5","version":{"name":"1.0.0","code":"100"},"description":"","launch_path":"__uniappview.html","developer":{"name":"","email":"","url":""},"permissions":{"UniNView":{"description":"UniNView原生渲染"}},"plus":{"useragent":{"value":"uni-app","concatenate":true},"splashscreen":{"target":"id:1","autoclose":true,"waiting":true,"delay":0},"popGesture":"close","launchwebview":{"id":"1","kernel":"WKWebview"},"statusbar":{"immersed":"supportedDevice","style":"dark","background":"#FFFFFF"},"usingComponents":true,"nvueStyleCompiler":"uni-app","compilerVersion":3,"safearea":{"bottom":{"offset":"none"}},"distribute":{"google":{"permissions":["<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>","<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>","<uses-permission android:name=\"android.permission.VIBRATE\"/>","<uses-permission android:name=\"android.permission.READ_LOGS\"/>","<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>","<uses-feature android:name=\"android.hardware.camera.autofocus\"/>","<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>","<uses-permission android:name=\"android.permission.CAMERA\"/>","<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>","<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>","<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>","<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>","<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>","<uses-feature android:name=\"android.hardware.camera\"/>","<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"]},"apple":{},"plugins":{"ad":{},"audio":{"mp3":{"description":"Android平台录音支持MP3格式文件"}}}},"allowsInlineMediaPlayback":true,"uni-app":{"compilerVersion":"3.2.9","control":"uni-v3","nvueCompiler":"uni-app","renderer":"auto","nvue":{"flex-direction":"column"},"nvueLaunchMode":"normal"},"tabBar":{"borderStyle":"rgba(255,255,255,0.4)","backgroundColor":"#FFFFFF","selectedColor":"#774ffd","iconWidth":"26px","spacing":"0","height":"60px","list":[{"text":"发现能量","iconPath":"static/tabBar/tabBar_icon_00.png","selectedIconPath":"static/tabBar/tabBar_show_00.png","pagePath":"pages/index/index"},{"text":"发现更多","iconPath":"static/tabBar/tabBar_icon_01.png","selectedIconPath":"static/tabBar/tabBar_show_01.png","pagePath":"pages/found/index"},{"text":"节点中心","iconPath":"static/tabBar/tabBar_icon_02.png","selectedIconPath":"static/tabBar/tabBar_show_02.png","pagePath":"pages/user/index"}],"child":["lauchwebview"],"selected":0},"launch_path":"__uniappview.html"}}

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 274 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 152 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 212 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 160 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 268 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 433 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 639 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 216 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 285 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 411 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 552 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 472 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 354 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 227 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 240 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 215 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 937 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1015 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 303 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 599 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 491 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 376 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 509 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 401 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 880 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 306 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 682 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 607 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 730 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 590 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 338 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 904 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 614 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 619 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 643 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 386 B

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 929 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 857 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 771 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Some files were not shown because too many files have changed in this diff Show More