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.
249 lines
5.7 KiB
249 lines
5.7 KiB
<template>
|
|
<view class="wanlgroups-user-container">
|
|
<view class="wanlgroups-user-container__head" :style="{height: headHeight + 'px'}">
|
|
<view class="background" v-if="headerOpacity > 0"
|
|
:style="{height: headHeight + 'px', opacity: headerOpacity, backgroundColor: themeData.color}">
|
|
<view class="bgcolor"></view>
|
|
</view>
|
|
<view class="navigater text-white" :style="{
|
|
height: headHeight + 'px',
|
|
paddingTop: headTop + 'px'
|
|
}">
|
|
<view class="text-xl">
|
|
<view class="margin-right">
|
|
<text class="wlIcon-fanhui1 text-bold" @tap="handleBack"></text>
|
|
</view>
|
|
<view class="text-cut" style="width: 100rpx;">
|
|
<text class="text-lg" v-if="headerOpacity > 0" :style="{opacity: headerOpacity}">
|
|
{{user.nickname}}
|
|
</text>
|
|
</view>
|
|
</view>
|
|
<view v-if="isChoice" class="text-xxl" @tap="changeTheme">
|
|
<text class="text-30 text-bold">保存</text>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<!-- 主体 -->
|
|
<view class="wanlgroups-user-container__main"
|
|
:style="{backgroundColor: themeData.color, backgroundImage: `url(${$wanlshop.oss(themeData.image, 0, 50, 1, 'transparent', 'png')})`}">
|
|
<view class="head text-white" :style="{paddingTop: headHeight + 'px'}">
|
|
<view class="userinfo">
|
|
<view class="cu-avatar margin-right-bj round"
|
|
:style="{backgroundImage: `url(${$wanlshop.oss(user.avatar, 62, 62, 2, 'avatar')})`}"></view>
|
|
<view>
|
|
<view class="text-xl margin-bottom-xs">{{user.nickname}}</view>
|
|
<view class="text-min text-white-agba">
|
|
<text>账户号:</text>
|
|
<text>{{themeData.user_no}}</text>
|
|
<text class="wlIcon-fuzhi margin-left-sm" @click.stop="$wanlshop.copy(themeData.user_no)"></text>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<scroll-view class="wanlgroups-user-container__list bg-white padding-bj" scroll-y
|
|
:style="{height: windowHeight - headHeight - 150 + 'px'}">
|
|
<view class="content">
|
|
<view
|
|
class="item"
|
|
v-for="(item, index) in themeData.list"
|
|
:key="item.id"
|
|
@tap="choiceTheme(item.image,item.color)"
|
|
>
|
|
<image :src="$wanlshop.oss(item.image, 0, 50)" mode=""></image>
|
|
<view class="background"></view>
|
|
<view class="tag text-white round">
|
|
<view class="colour round margin-xs" :style="{backgroundColor: item.color}"></view>
|
|
<view class="name text-min margin-right-sm"> {{item.name}} </view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</scroll-view>
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
import { mapState } from 'vuex';
|
|
export default {
|
|
data() {
|
|
return {
|
|
isChoice: false,
|
|
headHeight: 0,
|
|
headerOpacity: 0,
|
|
windowHeight: 0,
|
|
headTop: 0,
|
|
isMyfind: false,
|
|
themeData: {
|
|
user_no: '',
|
|
user: {
|
|
avatar: '',
|
|
nickname: '加载中..',
|
|
},
|
|
color: '#e9dacd',
|
|
image: '',
|
|
list: []
|
|
}
|
|
};
|
|
},
|
|
computed: {
|
|
...mapState(['user'])
|
|
},
|
|
onLoad() {
|
|
// 计算页面尺寸
|
|
let sys = this.$wanlshop.wanlsys();
|
|
this.headTop = sys.top;
|
|
this.headHeight = sys.height;
|
|
this.windowHeight = sys.windowHeight;
|
|
// 加载 Api
|
|
this.loadData();
|
|
},
|
|
onPageScroll(e) {
|
|
let tmpY = 123;
|
|
e.scrollTop = e.scrollTop > tmpY ? 123 : e.scrollTop;
|
|
this.headerOpacity = e.scrollTop * (1 / tmpY);
|
|
},
|
|
methods: {
|
|
async loadData() {
|
|
await uni.request({
|
|
url: '/wanlshop/find/user/getTheme',
|
|
method: 'POST',
|
|
success: res => {
|
|
this.themeData = res.data;
|
|
}
|
|
});
|
|
},
|
|
handleBack() {
|
|
this.$wanlshop.back(1);
|
|
},
|
|
choiceTheme(image, color){
|
|
this.isChoice = true;
|
|
this.themeData.image = image;
|
|
this.themeData.color = color;
|
|
},
|
|
changeTheme(){
|
|
this.$wanlshop.prePage().editTheme({
|
|
url: this.themeData.image,
|
|
color: this.themeData.color
|
|
});
|
|
this.handleBack();
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
|
|
|
|
<style lang="scss">
|
|
.wanlgroups-user-container {
|
|
&__head {
|
|
position: fixed;
|
|
top: 0;
|
|
left: 0;
|
|
right: 0;
|
|
z-index: 999;
|
|
|
|
.background {
|
|
position: absolute;
|
|
left: 0;
|
|
right: 0;
|
|
z-index: 1;
|
|
|
|
.bgcolor {
|
|
width: 100%;
|
|
height: 100%;
|
|
background-color: rgba(0, 0, 0, .4);
|
|
}
|
|
}
|
|
|
|
.navigater {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
position: absolute;
|
|
left: 0;
|
|
right: 0;
|
|
z-index: 999;
|
|
padding-left: 25rpx;
|
|
padding-right: 25rpx;
|
|
/* #ifdef MP */
|
|
padding-right: 200rpx;
|
|
/* #endif */
|
|
&>view {
|
|
display: flex;
|
|
align-items: center;
|
|
}
|
|
}
|
|
}
|
|
|
|
&__main {
|
|
background-size: 100% auto;
|
|
background-repeat: no-repeat;
|
|
background-position-y: center;
|
|
.text-white-agba{
|
|
color: rgba(255,255,255,.9);
|
|
}
|
|
.head {
|
|
padding: 40rpx 30rpx;
|
|
background-color: rgba(0, 0, 0, .4);
|
|
|
|
.userinfo {
|
|
height: 140px;
|
|
display: flex;
|
|
align-items: center;
|
|
.cu-avatar {
|
|
width: 160rpx;
|
|
height: 160rpx;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
&__list {
|
|
margin-top: -24rpx;
|
|
border-radius: 24rpx 24rpx 0 0;
|
|
.content{
|
|
display: flex;
|
|
flex-direction: row;
|
|
flex-wrap: wrap;
|
|
justify-content: space-between;
|
|
|
|
.item{
|
|
position: relative;
|
|
width: calc(50% - 14rpx);
|
|
height: 250rpx;
|
|
overflow: hidden;
|
|
margin-bottom: 28rpx;
|
|
border-radius: 12rpx;
|
|
image{
|
|
position: absolute;
|
|
height: 250rpx;
|
|
z-index: 97;
|
|
}
|
|
.background{
|
|
position: absolute;
|
|
background-color: rgba(0,0,0,.1);
|
|
width: 100%;
|
|
height: 100%;
|
|
z-index: 98;
|
|
}
|
|
.tag{
|
|
position: absolute;
|
|
top: 20rpx;
|
|
left: 20rpx;
|
|
background-color: rgba(0,0,0,.2);
|
|
display: flex;
|
|
align-items: center;
|
|
z-index: 99;
|
|
.colour{
|
|
width: 30rpx;
|
|
height: 30rpx;
|
|
}
|
|
.name{
|
|
line-height: 30rpx;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|
|
</style> |