鸿宇研学生前端代码
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.
 
 
 

119 lines
2.5 KiB

<template>
<view class="page__view highlight">
<!-- 导航栏 -->
<navbar title="我的成就" leftClick @leftClick="$utils.navigateBack" />
<view class="main">
<view class="flex summary">
<view class="info">
<view class="flex title">共获得<view class="highlight">{{ total }}</view>枚成就</view>
<view class="tag">新获得</view>
</view>
<view class="icon">
<image class="img" src="@/pages_order/static/temp-49.png" mode="widthFix"></image>
</view>
</view>
<view class="list">
<recordsView :list="list" @lighted="getData"></recordsView>
</view>
</view>
</view>
</template>
<script>
import mixinsList from '@/mixins/list.js'
import recordsView from './recordsView.vue'
export default {
mixins: [mixinsList],
components: {
recordsView,
},
data() {
return {
keyword: '',
mixinsListApi: 'queryMedalList',
}
},
onLoad({ search }) {
if (search) {
this.keyword = search
this.queryParams.title = search
}
this.getData()
},
methods: {
getDataThen(records) {
this.list = records.map(item => {
const { id, activityId_dictText, medalId, medal, createTime, isLight: _isLight } = item
const { title, icon1, icon2 } = medal
const isLight = _isLight == '1'
return {
id,
name: activityId_dictText,
children: [
{
medalId,
icon: isLight ? icon1 : icon2,
label: title,
createTime,
isLight,
},
]
}
})
},
},
}
</script>
<style scoped lang="scss">
.summary {
padding: 16rpx 72rpx 32rpx 64rpx;
justify-content: space-between;
font-family: PingFang SC;
font-weight: 400;
line-height: 1.4;
.info {
.title {
font-size: 32rpx;
font-weight: 600;
color: #000000;
.highlight {
margin: 0 8rpx;
color: $uni-color;
}
}
.tag {
margin-top: 4rpx;
display: inline-block;
padding: 4rpx 16rpx;
font-size: 26rpx;
color: #21607D;
background: #DBF4FF;
border-radius: 22rpx;
}
}
.icon {
width: 160rpx;
height: auto;
.img {
width: 100%;
height: auto;
}
}
}
</style>