video_app/pages/task/index.vue

242 lines
6.5 KiB
Vue

<!-- 任务中心 -->
<template>
<view class="container">
<u-navbar :background="background" :is-back="false" :title="title" :border-bottom="false"></u-navbar>
<view class="task_bg u-absolute">
<u-image class="task_bg" src="../../static/images/me/task_bg.png" ></u-image>
</view>
<view class="icon u-relative padding">
<u-image class="task_icon1 u-relative" src="../../static/images/me/task_icon1.png"></u-image>
<view class="icon_title u-font-32 text-bold u-relative">新人好礼送不停</view>
<u-image class="task_icon2 u-relative" src="../../static/images/me/task_icon2.png"></u-image>
</view>
<view class="content margin-lr padding bg-white u-relative" v-if="cellList.length>0">
<view class="cell flex justify-between" v-for="(item,index) in cellList" :key="index">
<view class="cell_left flex">
<view class="cell_title flex">
<view class="u-font-28 text-bold title" :style="{alignSelf: item.rewardImg?'center':'flex-start'}">{{ item.title}}</view>
<u-image v-if="item.rewardImg" class="cell_icon" :src="item.rewardImg "></u-image>
<view class="u-font-24 tip">{{ item.rewardDetail }}</view>
</view>
<view class="subhead u-font-24">{{ item.detail }}</view>
</view>
<view class="cell_right flex">
<view v-if=" item.disabled " class="btn u-font-24 text-bold" :style="{backgroundColor: item.buttonBgColor,color: item.buttonFontColor }" @click="goNav(item)">{{ item.buttonTitle }}</view>
<view v-else class="btn u-font-24 text-bold disabled">{{ item.buttonTitle }}</view>
<!-- <view v-else class="btn u-font-24 text-bold" @click="goNav(item)">{{ item.buttonTitle }}</view> -->
<!-- <view v-if=" item.type ==4 " class="u-font-20 tip" @click="goNav('/me/gift/gift', item.type)">查看奖品列表</view> -->
</view>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
title: '',
page: 1,
limit: 999,
background: {
backgroundImage: 'linear-gradient(to right, #FFE5EA 0%, #E4F5FB 49%, #FFF0EE 100%)'
},
cellList: [
// {
// title: '分享奖励', type: 1, url: '/me/invite/index', rewardImg: '../../static/images/me/task_icon3.png', rewardDetail: '奖励888金币', detail: '分享好友即可获得', buttonTitle:'立即分享'
// },
// {
// title: '每日签到奖励', type: 2, url: '/pages/index/index', rewardImg: '../../static/images/me/task_icon3.png', rewardDetail: '奖励8898金币', detail: '每日付款满3笔即可获得', buttonTitle:'立即看剧'
// },
// {
// title: '每周打卡奖励', type: 3, url: '/me/invite/index', rewardImg: '', rewardDetail: '', detail: '签到满7天即可获得丰富好礼', buttonTitle:'剩余23次'
// },
// {
// title: '每月打卡奖励1', type: 4, url: '/me/invite/index', rewardImg: '', rewardDetail: '', detail: '当月签到满21天获得丰富好礼', buttonTitle:'剩余233次'
// },
// {
// title: '每月打卡奖励2', type: 5, url: '/me/invite/index', rewardImg: '../../static/images/me/task_icon4.png', rewardDetail: '奖励金币', detail: '当月签到满21天即可免费领取', buttonTitle:'立即领取'
// },
// {
// title: '观看视频奖励', type: 6, url: '/me/invite/index', rewardImg: '../../static/images/me/task_icon3.png', rewardDetail: '奖励金币', detail: '观看完整视频即可获得奖励', buttonTitle:'观看视频'
// },
]
}
},
onShow() {
this.getTaskdata()
},
methods: {
/**
* 跳转
* @param {Object} item
*/
goNav( item ) {
// jumpType (integer, optional): 跳转类型 1 内部路径 2 外部路径 ,
// type (integer, optional): 任务类型 1 普通任务 2 打卡任务 9 其它 ,
// buttonUrl
if ( item.type == 1) {
if ( item.jumpType == 1) {
console.log(item.buttonUrl)
uni.navigateTo({
url: item.buttonUrl
})
} else if( item.jumpType == 3) {
uni.switchTab({
url: item.buttonUrl
})
} else {
plus.runtime.openURL(item.buttonUrl)
}
} else {
this.taskReceive(item.id)
}
},
/**
* 领取
*/
taskReceive(id) {
let data = {
id: id
}
this.$Request.getT('app/taskCenter/taskReceive', data).then(res => {
if (res.code == 0 ) {
uni.showToast({
title: '领取成功',
icon: 'none'
})
this.getTaskdata()
}
})
},
/**
* 获取任务列表
*/
getTaskdata() {
let data = {
page: this.page,
limit: this.limit
}
this.$Request.getT('app/taskCenter/selectTaskCenter', data).then(res => {
if (res.code == 0 ) {
this.cellList = res.data.records
}
uni.stopPullDownRefresh();
})
},
/**
* 下拉加载
*/
onPullDownRefresh: function() {
console.log(2)
this.getTaskdata();
},
}
}
</script>
<style lang="scss">
.container{
width: 100%;
.task_bg{
width: 100%!important;
height: 494rpx!important;
}
.icon{
.icon_title{
color: #000000;
margin-left: 28rpx;
top: -20rpx;
}
.task_icon1{
width: 74rpx!important;
height: 78rpx!important;
margin-left: 235rpx;
}
.task_icon2{
width: 126rpx!important;
height: 120rpx!important;
top: -40rpx;
}
}
.content{
border-radius: 16rpx;
top: -115rpx;
padding: 28rpx;
.cell{
align-items: center;
padding: 32rpx 0;
border-bottom: 2rpx solid #EBEBEB;
.cell_left{
flex-direction: column;
.cell_title{
align-items: center;
margin-bottom: 12rpx;
color: #333;
.title{
flex-shrink: 0;
}
.cell_icon{
width: 34rpx!important;
height: 34rpx!important;
margin-left: 16rpx;
}
.tip{
margin-left: 22rpx;
color: #FC5B67;
}
}
.subhead{
color: #999;
}
}
.cell_right{
flex-direction: column;
align-items: center;
flex-shrink: 0;
margin-left: 20rpx;
.btn{
width: 148rpx;
height: 56rpx;
line-height: 56rpx;
text-align: center;
background-color: #EC6F48;
color: #FFFFFF;
border-radius: 12rpx 12rpx 12rpx 12rpx;
}
.tip{
color: #666;
height: 44rpx;
line-height: 44rpx;
}
.opt{
color: #D39B7E;
background-color: #FBF3EB;
}
.disabled{
color: #999999;
background-color: #E2E2E2;
}
}
}
.cell:last-child{
border-bottom: none;
}
}
}
</style>