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.
 
 
 
 

322 lines
8.9 KiB

<template>
<view class="wrap">
<view class="stabar"></view>
<!-- <view class="secbar"> <label class="back" @click="back()"></label>
<view class="title">我的勋章</view>
</view> -->
<navigation title="我的勋章"></navigation>
<view class="mainwrap2" style="top: 73rpx;">
<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'
import navigation from "@/components/navigation/navigation.vue";
export default {
components: {navigation},
data() {
return {
prefix:"",
name:"",
avatarUrl:"",
medalNum:0,
showMedal: true,
medalList: null,
};
},
computed: {
...mapState('m_user', ['userinfo','userId'])
},
onLoad(options) {
this.medalNum = options.medalNum
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>