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.
185 lines
5.9 KiB
185 lines
5.9 KiB
<template> |
|
<view class="app-wallpaper" :style="{ |
|
backgroundImage:'url('+staticImage.wallpaperBgImage+')' |
|
}"> |
|
<view class="index-banner"> |
|
<view class="index-banner-container" > |
|
<view class="" style="border:4rpx solid #3F3F3F;border-radius: 25rpx;overflow: hidden;"> |
|
<u-swiper height="600" :list="indexBanner"></u-swiper> |
|
</view> |
|
<!-- <image class="img" v-for="(item, index) in indexBanner" mode="widthFix" wx:key="index" :src="item.image" alt=""/>--> |
|
</view> |
|
</view> |
|
<view class="index-user-detail" v-if="(userInfo.name)"> |
|
<view class="user-detail-container row"> |
|
<view class="user-avatar"> |
|
<img mode="widthFix" class="img" :src="user.avatar" alt=""> |
|
</view> |
|
<view class="user-content"> |
|
<view class="user-title-top row"> |
|
<image class="img" mode="widthFix" |
|
:src="staticImage.hiImage" alt=""/> |
|
<view class="user-title-text"> |
|
<u-text :text="user.nickname" color="#131313" size="30" custom-style="display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 1;overflow: hidden;max-width:200rpx;"></u-text> |
|
</view> |
|
</view> |
|
<view class="user-title-bottom"> |
|
<image class="img" mode="aspectFit" |
|
:src="staticImage.dogImage" alt=""/> |
|
<text class="user-title-idcard"> |
|
会员编号:{{ user.id }} |
|
</text> |
|
</view> |
|
</view> |
|
<view class="user-coupons" :style="{backgroundImage:'url('+staticImage.couponsImage+')'}"> |
|
<view class="user-coupons-number" @click="userCouponsPage()"> |
|
<view class="user-coupons-number-container"> |
|
{{ userExtends.coupon_count }} |
|
</view> |
|
</view> |
|
</view> |
|
</view> |
|
</view> |
|
<view class="index-button-group row"> |
|
<view class="index-button-detail col-6" v-for="(item, index) in staticImage.indexButtonGroup" wx:key="index"> |
|
<view class="index-button-detail-container row" :style="{ |
|
backgroundImage:'url('+item.backgroundImage+')' |
|
}" @click="navTo(item.url)"> |
|
<view class="col-12"> |
|
<image mode="widthFix" class="img" |
|
:src="item.serviceImage"/> |
|
</view> |
|
<view class="col-12"> |
|
<image mode="widthFix" class="img" |
|
:src="item.buttonImage"/> |
|
</view> |
|
</view> |
|
</view> |
|
</view> |
|
</view> |
|
</template> |
|
|
|
<script> |
|
import { |
|
imghost |
|
} from '@/config/host.js' |
|
import api from '@/utils/functions.js'; |
|
import log from "@/utils/log"; |
|
import {userExtends} from "@/api/user"; |
|
import {getConfig} from "@/api/other"; |
|
|
|
export default { |
|
data: { |
|
title: 'Hello', |
|
loading: true, |
|
staticImage: { |
|
hiImage: imghost + '/static/image/index-user-title-hi.png', |
|
dogImage: imghost + '/static/image/index-user-title-dog.png', |
|
couponsImage: imghost + '/static/image/index-user-coupons-background.png', |
|
indexButtonGroup: [ |
|
{ |
|
backgroundImage: imghost + '/static/image/index-button-one.png', |
|
serviceImage: imghost + '/static/image/index-button-bg-one.png', |
|
buttonImage: imghost + '/static/image/index-button-bg-btn-one.png', |
|
url: '/pages/OrderPage/index' |
|
}, { |
|
backgroundImage: imghost + '/static/image/index-button-two.png', |
|
serviceImage: imghost + '/static/image/index-button-bg-two.png', |
|
buttonImage: imghost + '/static/image/index-button-bg-btn-two.png', |
|
url: '/pages/Card/index' |
|
}, { |
|
backgroundImage: imghost + '/static/image/index-button-three.png', |
|
serviceImage: imghost + '/static/image/index-button-bg-three.png', |
|
buttonImage: imghost + '/static/image/index-button-bg-btn-three.png', |
|
url: '/pages/UserCoupons/index' |
|
}, { |
|
backgroundImage: imghost + '/static/image/index-button-four.png', |
|
serviceImage: imghost + '/static/image/index-button-bg-four.png', |
|
buttonImage: imghost + '/static/image/index-button-bg-btn-four.png', |
|
url: '/pages/Draw/index' |
|
}, |
|
], |
|
wallpaperBgImage: imghost + '/static/image/background.png' |
|
}, |
|
indexBanner: [], |
|
user: { |
|
avatar: imghost + '/static/image/banner.png', |
|
nickname: '清晨的风', |
|
coupon_count: 221, |
|
id: 88685 |
|
}, |
|
isTop: false, |
|
pagePadding: 100, |
|
userInfo: {}, |
|
userExtends: {}, |
|
}, |
|
onLoad() { |
|
|
|
}, |
|
methods: { |
|
getHomeConfig(){ |
|
getConfig('banner').then(res => { |
|
this.indexBanner = res.data.banner; |
|
}) |
|
}, |
|
userCouponsPage() { |
|
uni.navigateTo({ |
|
url: '/pages/UserCoupons/index' |
|
}) |
|
}, |
|
navTo(url) { |
|
uni.navigateTo({ |
|
url: url |
|
}) |
|
}, |
|
updateUserInfo() { |
|
if (this.userInfo) { |
|
this.user.id = this.userInfo.id |
|
this.user.nickname = this.userInfo.name |
|
this.user.avatar = this.userInfo.avatar |
|
this.user.coupon_count = this.userExtends.coupon_count |
|
} |
|
} |
|
}, |
|
onPageScroll(res) { |
|
if (res.scrollTop <= 20) { |
|
uni.$emit('isTop', true); |
|
} else { |
|
uni.$emit('isTop', false); |
|
} |
|
|
|
}, |
|
created() { |
|
this.pagePadding = (api.navHeight().navPaddingTop + |
|
api.navHeight().navHeight + (api.navHeight().headerPadding * 2)) |
|
}, |
|
mounted() { |
|
console.log('userInfo',this.$store.state.userInfo) |
|
this.userInfo = this.$store.state.userInfo; |
|
this.userExtends = this.$store.state.userExtends; |
|
this.getHomeConfig(); |
|
}, |
|
updated() { |
|
|
|
}, |
|
watch: { |
|
"$store.state.userInfo": { |
|
handler(newVal, oldVal) { |
|
this.userInfo = newVal; |
|
console.log('vuexUserInfo',this.userInfo); |
|
this.updateUserInfo(); |
|
} |
|
}, |
|
"$store.state.userExtends": { |
|
handler(newVal, oldVal) { |
|
this.userExtends = newVal; |
|
this.updateUserInfo(); |
|
} |
|
} |
|
} |
|
} |
|
</script> |
|
|
|
<style lang="scss"> |
|
@import './components/index.scss'; |
|
</style> |