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.
318 lines
8.6 KiB
318 lines
8.6 KiB
<template>
|
|
<view class="wrap">
|
|
<view class="stabar"></view>
|
|
<view class="secbar"> <label class="back" @click="back()"></label>
|
|
<view class="title">我的勋章</view>
|
|
</view>
|
|
<view class="mainwrap2">
|
|
<view class="perinfo"> <span class="type-name"><img :src="avatarUrl"></img></span>
|
|
<view class="dycd"> <span class="myname">{{name}}</span>
|
|
的勋章墙
|
|
</view>
|
|
<view class="medtop">已获得<label>{{medalNum}}</label>枚勋章</view>
|
|
</view>
|
|
<view class="subwrap">
|
|
|
|
<view class="ctRow date_navbar" v-if="medalList != null">
|
|
<block v-for="(item,index) in medalList" :key="index">
|
|
<view class="medtit">{{item[0].type}}
|
|
<!-- <label class="actcount">已点亮2次</label> -->
|
|
</view>
|
|
<span v-for="data in item">
|
|
<view class="meditem">
|
|
<label class="medicon-img active-img">
|
|
<image :src="data.gain == true ? prefix + data.achieveIconPath : prefix + data.iconPath"></image>
|
|
</label>
|
|
{{data.name}}
|
|
</view>
|
|
</span>
|
|
</block>
|
|
</view>
|
|
|
|
<!-- <view class="medbox">
|
|
<view class="medtit">成就勋章<label class="actcount">已点亮2次</label></view>
|
|
<view class="medlist">
|
|
<view class="meditem"><label class="medicon-img active-img"><image src="../../static/images/medal_1.png"></image></label>2023.10.22获得</view>
|
|
<view class="meditem"><label class="medicon-img active-img"><image src="../../static/images/medal_1.png"></image></label>2023.10.22获得</view>
|
|
<view class="meditem"><label class="medicon-img"><image src="../../static/images/medal_1g.png"></image></label>成就勋章</view>
|
|
</view>
|
|
</view>
|
|
|
|
<view class="medbox">
|
|
<view class="medtit">等级勋章<label class="actcount"></label></view>
|
|
<view class="medlist">
|
|
<view class="meditem"><label class="medicon-img"><image src="../../static/images/medal_lv1g.png"></image></label>LV1(青铜)</view>
|
|
<view class="meditem"><label class="medicon-img"><image src="../../static/images/medal_lv2g.png"></image></label>LV2(白银)</view>
|
|
<view class="meditem"><label class="medicon-img"><image src="../../static/images/medal_lv3g.png"></image></label>LV3(黄金)</view>
|
|
<view class="meditem"><label class="medicon-img"><image src="../../static/images/medal_lv4g.png"></image></label>LV4(铂金)</view>
|
|
<view class="meditem"><label class="medicon-img"><image src="../../static/images/medal_lv5g.png"></image></label>LV5(紫金)</view>
|
|
<view class="meditem"><label class="medicon-img"><image src="../../static/images/medal_lv6g.png"></image></label>LV6(钻石)</view>
|
|
<view class="meditem"><label class="medicon-img"><image src="../../static/images/medal_lv7g.png"></image></label>LV7(星钻)</view>
|
|
</view>
|
|
</view>
|
|
|
|
<view class="medbox">
|
|
<view class="medtit">活动勋章<label class="actcount"></label></view>
|
|
<view class="medlist">
|
|
<view class="meditem"><label class="medicon-img"><image src="../../static/images/medal_act1g.png"></image></label>勋章名称</view>
|
|
<view class="meditem"><label class="medicon-img"><image src="../../static/images/medal_act2g.png"></image></label>勋章名称</view>
|
|
<view class="meditem"><label class="medicon-img"><image src="../../static/images/medal_act3g.png"></image></label>勋章名称</view>
|
|
<view class="meditem"><label class="medicon-img"><image src="../../static/images/medal_act4g.png"></image></label>勋章名称</view>
|
|
<view class="meditem"><label class="medicon-img"><image src="../../static/images/medal_act5g.png"></image></label>勋章名称</view>
|
|
<view class="meditem"><label class="medicon-img"><image src="../../static/images/medal_act6g.png"></image></label>勋章名称</view>
|
|
</view>
|
|
</view> -->
|
|
|
|
<!-- <view class="medbox">
|
|
<view class="medtit">活动勋章2<label class="actcount"></label></view>
|
|
<view class="medlist">
|
|
<view class="meditem"><label class="medicon-img"><image src="../../static/images/medal_un1g.png"></image></label>勋章名称</view>
|
|
<view class="meditem"><label class="medicon-img"><image src="../../static/images/medal_un2g.png"></image></label>勋章名称</view>
|
|
<view class="meditem"><label class="medicon-img"><image src="../../static/images/medal_un3g.png"></image></label>勋章名称</view>
|
|
<view class="meditem"><label class="medicon-img"><image src="../../static/images/medal_un4g.png"></image></label>勋章名称</view>
|
|
<view class="meditem"><label class="medicon-img"><image src="../../static/images/medal_un5g.png"></image></label>勋章名称</view>
|
|
<view class="meditem"><label class="medicon-img"><image src="../../static/images/medal_un6g.png"></image></label>勋章名称</view>
|
|
<view class="meditem"><label class="medicon-img"><image src="../../static/images/medal_un7g.png"></image></label>勋章名称</view>
|
|
<view class="meditem"><label class="medicon-img"><image src="../../static/images/medal_un8g.png"></image></label>勋章名称</view>
|
|
<view class="meditem"><label class="medicon-img"><image src="../../static/images/medal_un9g.png"></image></label>勋章名称</view>
|
|
</view>
|
|
</view> -->
|
|
|
|
|
|
</view>
|
|
|
|
</view>
|
|
</view>
|
|
|
|
</template>
|
|
|
|
<script>
|
|
import {
|
|
mapState,
|
|
mapMutations,
|
|
mapGetters
|
|
} from 'vuex'
|
|
export default {
|
|
data() {
|
|
return {
|
|
prefix:"",
|
|
name:"",
|
|
avatarUrl:"",
|
|
medalNum:0,
|
|
showMedal: true,
|
|
medalList: null,
|
|
};
|
|
},
|
|
computed: {
|
|
...mapState('m_user', ['userinfo','userId'])
|
|
},
|
|
onLoad() {
|
|
this.prefix = uni.$http.baseUrl
|
|
this.name = this.userinfo.nickName;
|
|
this.avatarUrl = this.userinfo.avatarUrl;
|
|
this.getMedalList();
|
|
},
|
|
methods: {
|
|
|
|
async getMedalList() {
|
|
|
|
const {
|
|
data: res
|
|
} = await uni.$http.post('/small/project/medal/medalInfo',this.userId)
|
|
if (!res.success) return uni.$showMsg()
|
|
if (res.data == null ) return
|
|
this.medalList = res.data
|
|
|
|
// uni.$showMsg('数据请求成功!')
|
|
},
|
|
taskMedal() {
|
|
this.showMedal = true
|
|
},
|
|
myMedal() {
|
|
this.showMedal = false
|
|
},
|
|
back() {
|
|
uni.navigateBack({
|
|
delta: 1, //返回层数,2则上上页
|
|
})
|
|
},
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style lang="scss">
|
|
@import url("@/static/base_css.css");
|
|
|
|
.mainwrap2 {
|
|
top: 0;
|
|
height: calc(100% - 90rpx);
|
|
background: #fff url("/static/images/bg_medal.jpg") no-repeat left top;
|
|
background-size: 110% auto;
|
|
}
|
|
|
|
.perinfo {
|
|
top: 30rpx;
|
|
height: 450rpx;
|
|
}
|
|
|
|
.perinfo .type-name,
|
|
.perinfo .dycd {
|
|
float: none;
|
|
}
|
|
|
|
.perinfo .dycd {
|
|
margin: 0 5.5%;
|
|
color: #999;
|
|
font-size: 0.8rem;
|
|
}
|
|
|
|
.myname {
|
|
margin: 0 0 3.5% 0;
|
|
font-size: 1.5rem;
|
|
font-weight: 500;
|
|
}
|
|
|
|
.medtop {
|
|
position: relative;
|
|
z-index: 1;
|
|
margin: 1% 0 0 5.5%;
|
|
width: 90%;
|
|
color: #666;
|
|
|
|
label {
|
|
color: #333;
|
|
font-size: 1.5rem;
|
|
margin: 0 10rpx;
|
|
}
|
|
}
|
|
|
|
.medtop::after {
|
|
content: "";
|
|
position: absolute;
|
|
left: -6rpx;
|
|
bottom: -2rpx;
|
|
z-index: -1;
|
|
width: 42%;
|
|
height: 20rpx;
|
|
border-radius: 10rpx;
|
|
background-color: #fbc678;
|
|
border-top-left-radius: 5px;
|
|
border-top-right-radius: 5px;
|
|
border-bottom-right-radius: 5px;
|
|
border-bottom-left-radius: 5px;
|
|
}
|
|
|
|
.headpic {
|
|
display: block;
|
|
margin: 0 5%;
|
|
width: 150rpx;
|
|
height: 150rpx;
|
|
background-color: #d9e9f9;
|
|
border-radius: 50%;
|
|
border: 4rpx solid #fff;
|
|
}
|
|
|
|
.subwrap {
|
|
height: calc(90% - 450rpx);
|
|
}
|
|
|
|
.medbox {
|
|
width: 100%;
|
|
height: auto;
|
|
}
|
|
|
|
.medtit {
|
|
position: relative;
|
|
margin: 5% 2% 0;
|
|
color: #333;
|
|
font-size: 32rpx;
|
|
font-weight: bold;
|
|
.actcount {
|
|
position: absolute;
|
|
top: 8rpx;
|
|
right: 0;
|
|
font-size: 0.8rem;
|
|
font-weight: 500;
|
|
}
|
|
}
|
|
|
|
.meditem {
|
|
display: inline-block;
|
|
margin: 2% 0;
|
|
width: 33%;
|
|
color: #999;
|
|
text-align: center;
|
|
}
|
|
|
|
.medicon-img {
|
|
display: block;
|
|
margin: 0 auto;
|
|
width: 150rpx;
|
|
height: 150rpx;
|
|
image {
|
|
width: 100%;
|
|
height: 100%;
|
|
}
|
|
}
|
|
|
|
|
|
/*
|
|
|
|
.nav-list {
|
|
display: flex;
|
|
justify-content: left;
|
|
margin: 5px 0;
|
|
|
|
}
|
|
|
|
.nav-img {
|
|
margin: 10px;
|
|
width: 208rpx;
|
|
height: 200rpx;
|
|
border-radius: 8px;
|
|
}
|
|
.index-background {
|
|
image {
|
|
height: 300rpx;
|
|
width: 100%;
|
|
}
|
|
}
|
|
|
|
.panel-list {
|
|
padding: 0 10px;
|
|
position: relative;
|
|
top: -10px;
|
|
|
|
.panel {
|
|
background-color: white;
|
|
border-radius: 3px;
|
|
margin-bottom: 8px;
|
|
|
|
.panel-title {
|
|
line-height: 45px;
|
|
padding-left: 10px;
|
|
font-size: 15px;
|
|
border-bottom: 1px solid #F4F4F4;
|
|
}
|
|
|
|
.panel-body {
|
|
display: flex;
|
|
justify-content: space-around;
|
|
|
|
.panel-item {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-around;
|
|
padding: 10px 0;
|
|
font-size: 13px;
|
|
|
|
.icon {
|
|
width: 35px;
|
|
height: 35px;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
*/
|
|
</style>
|