GSExamProj/pages/myPoints/myPoints.vue

391 lines
8.8 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<view class="hole-page">
<view class="nav-bar"></view>
<view class="upper-card">
<view class="card-tit">
<span>当前积分</span>
<view>
<view @click="showHelp">积分说明</view>
<image src="../../static/alert.png" mode=""></image>
</view>
</view>
<view class="score">{{ score }}</view>
<view class="sub-tit">今日积分</view>
<view class="sub-cont">
<h4>
<span>学习项目</span>
<span>0</span>
</h4>
<h4>
<span>考试</span>
<span>0</span>
</h4>
<h4>
<span>自测练习</span>
<span>0</span>
</h4>
</view>
</view>
<view class="to-mall">
<view class="mall-lef">
<image src="../../static/mallSelected.png" mode=""></image>
<span style="padding-left: 10rpx;">前往积分商城兑换商品</span>
</view>
<view class="mall-rig" @click="toggleMall">立即兑换</view>
</view>
<view class="lower-switch">
<view
class="recieve"
:class="[{ active: switchCount == 0 }]"
@click="midSwitch(0)"
>
奖惩记录
</view>
<view
class="exchange"
:class="[{ active: switchCount == 1 }]"
@click="midSwitch(1)"
>
兑换记录
</view>
</view>
<view
class="fetch-record"
v-show="switchCount == 0"
>
</view>
<view
class="exchange-record"
v-show="switchCount == 1"
>
<view
class="single-record"
v-for="(gift, index) in exchangeRecord"
:key="index"
>
<view class="gift-upper">
<h3>{{ gift.shopName }}*{{ gift.shopSum }}</h3>
<span>-{{ gift.changePoint }}</span>
</view>
<view class="gift-lower">
{{ gift.shopTime }}
</view>
<!-- <view>{{ gift.shopName }}</view>
<view>{{ gift.shopSum }}</view>
<view>-{{ gift.changePoint }}</view>
<view>{{ gift.shopTime }}</view> -->
</view>
</view>
<view
class="exchange-record"
v-show="switchCount == 0"
>
<view
class="single-record"
v-for="(gift, index) in awardPunishRecord"
:key="index"
>
<view class="gift-upper">
<h3 style="font-size: 16px;">{{ gift.pointResource }}</h3>
<span>{{ gift.changePoint }}</span>
</view>
<view class="gift-lower">
{{ gift.shopTime }}
</view>
<!-- <view>{{ gift.shopName }}</view>
<view>{{ gift.shopSum }}</view>
<view>-{{ gift.changePoint }}</view>
<view>{{ gift.shopTime }}</view> -->
</view>
</view>
<uni-popup ref="popup" type="center" :mask-click="false">
<view
style="
width: 75%;
height: 100%;
margin: 2% auto;
background-color: #fff;
box-sizing: border-box;
padding: 20rpx 40rpx;
font-size: 14px;
line-height: 30px;
display: flex;
flex-direction: column;
justify-content: space-around;
"
>
根据现场施工人员实名制花名册统一录入至“安全管控平台”并设施每人初始安全积分初始积分为60分。
<br>
施工人员可以通过参加安全质量培训,安全知识自学,举报违章操作,及时发现安全隐患,完成隐患排查及整改,发现他人违章,个人违章自查自改,安全竞赛取得成效或名次等方式获取相应的安全积分。
<br>
当施工人员被举报违章,发生不符合安全文明施工的行为,安全问题整改通知单整改不及时,不参加站班会及各类安全会议等情况将扣除相应积分。
<br>
个人积分设置两个档位一是当个人积分下降至40分时系统会发出预警提醒作业人员尽快完成积分的补充二是当个人积分下降至30分时后台及个人手机端将会“亮红灯”禁止相关施工人员进入现场作业。“亮红灯”后施工人员只有参加项目部组织的安全考试合格后积分恢复至30分以上方可重新进场作业。
<!-- <button
style="width: 100%; background-color: #04367a; color: #fff;"
@click="closeHelp"
>
关闭说明
</button> -->
<view
style="
width: 100%;
margin-top: 5vh;
display: flex;
justify-content: center;
align-items: center;
box-sizing: border-box;
padding: 10rpx 0;
font-size: 14px;
background-color: #219ef8;
color: #fff;
border-radius: 15rpx;
"
@click="closeHelp"
>
关闭说明
</view>
</view>
</uni-popup>
</view>
</template>
<script>
import { publicPath } from '../../public'
export default {
data() {
return {
score: uni.getStorageSync('point'),
switchCount: 0,
exchangeRecord: [],
awardPunishRecord: []
}
},
methods: {
midSwitch (count) {
this.switchCount = count
},
toggleMall () {
uni.navigateTo({
url: '/pages/pointsMall/pointsMall'
})
},
showHelp () {
this.$refs.popup.open()
},
closeHelp () {
this.$refs.popup.close()
}
},
onShow() {
let that = this
that.exchangeRecord = []
// 获取奖品兑换记录
uni.request({
url: publicPath + '/backstage/appshoping/getchangehistory',
method: 'POST',
header: {
'content-type':'application/x-www-form-urlencoded; charset=UTF-8'
},
data: {
userId: uni.getStorageSync('id'),
shopId: '0'
},
success: (res) => {
console.log(res);
if (res.data.length != 0) {
that.exchangeRecord = res.data
}
}
})
// 获取奖惩记录
uni.request({
url: publicPath + '/backstage/appshoping/getchangehistory',
method: 'POST',
header: {
'content-type':'application/x-www-form-urlencoded; charset=UTF-8'
},
data: {
userId: uni.getStorageSync('id'),
shopId: ''
},
success: (res) => {
console.log(res);
if (res.data.length != 0) {
that.awardPunishRecord = res.data
}
}
})
}
}
</script>
<style lang="scss">
.hole-page{
width: 100%;
height: 100vh;
background-color: #f7fbfe;
.nav-bar{
width: 100%;
height: var(--status-bar-height);
padding-top: var(--status-bar-height);
}
.upper-card{
width: 95%;
margin: 20rpx auto;
border-radius: 25rpx;
/* background-image: url('/static/pointsBgd.png');
background-repeat: no-repeat;
background-size: 100% 100%; */
background: linear-gradient(90deg, #036acf, #1b8aec, #3fa7fe);
box-sizing: border-box;
padding: 25rpx;
color: #fff;
.card-tit{
width: 100%;
height: 40rpx;
display: flex;
justify-content: space-between;
align-items: center;
font-size: 14px;
view{
width: 25%;
height: 100%;
display: flex;
align-items: center;
justify-content: space-around;
image{
width: 20%;
height: 80%;
}
view{
flex: 1;
font-weight: bold;
}
}
}
.score{
width: 100%;
font-size: 40px;
font-weight: bold;
margin: 15rpx auto;
}
.sub-tit{
font-size: 14px;
margin: 15rpx auto;
}
.sub-cont{
width: 100%;
display: flex;
h4{
margin-right: 6vw;
box-sizing: border-box;
display: flex;
align-items: center;
font-size: 14px;
font-weight: normal;
border-radius: 15rpx;
span:first-child{
padding-right: 10rpx;
}
}
h4:last-child{
margin-right: 0;
}
}
}
.to-mall{
width: 95%;
margin: 20rpx auto;
display: flex;
justify-content: space-between;
align-items: center;
font-size: 14px;
box-sizing: border-box;
padding: 0 10rpx;
.mall-lef{
width: 50%;
height: 40rpx;
display: flex;
align-items: center;
image{
width: 10%;
height: 100%;
}
}
.mall-rig{
color: #219ef8;
}
}
.lower-switch{
width: 95%;
margin: 20rpx auto;
margin-bottom: 0;
display: flex;
align-items: center;
background-color: #fff;
box-sizing: border-box;
padding: 20rpx;
border-radius: 20rpx;
view{
display: flex;
justify-content: center;
align-items: center;
box-sizing: border-box;
padding: 15rpx;
font-size: 16px;
margin-right: 15rpx;
}
.active{
color: #219ef8;
border-bottom: 2px solid #219ef8;
}
}
.fetch-record, .exchange-record{
width: 95%;
box-sizing: border-box;
border-radius: 15rpx;
padding: 10rpx;
margin: 0 auto;
background-color: #fff;
}
.fetch-record{
// background-color: #0053FD;
}
.exchange-record{
display: flex;
flex-direction: column;
.single-record{
width: 100%;
margin: 20rpx auto;
box-sizing: border-box;
padding: 20rpx;
display: flex;
flex-direction: column;
border-bottom: 1px solid #dbdbdb;
.gift-upper{
width: 100%;
margin-bottom: 10rpx;
display: flex;
justify-content: space-between;
align-items: center;
h3{
font-size: 20px;
}
span{
font-size: 20px;
font-weight: bold;
color: red;
}
}
.gift-lower{
width: 100%;
font-size: 14px;
color: #7f7f7f;
}
}
}
}
</style>