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.
 
 
 
 
 
 
zhishifufei_php/application/wap/view/first/special/grade_special.html

278 lines
11 KiB

<!-- +---------------------------------------------------------------------- -->
<!-- | 天诚科技 [ 刘海东 17600099397赋能开发者,助力企业发展 ] -->
<!-- +---------------------------------------------------------------------- -->
<!-- | Copyright (c) 2016~2022 https://www.crmeb.com All rights reserved. -->
<!-- +---------------------------------------------------------------------- -->
<!-- | Licensed 该系统并不是自由软件,未经许可不能去掉相关版权 -->
<!-- +---------------------------------------------------------------------- -->
<!-- | Author:甘肃天诚志信电子商务有限公司 刘海东 联系电话维系17600099397 -->
<!-- +---------------------------------------------------------------------- -->
{extend name="public/container"}
{block name="title"}我的课程{/block}
{block name='head_top'}
<style>
.mask .box {
position: relative;
}
.mask .box .iconfont {
color: #ffffff;
font-size: 0.4rem;
left: 50%;
margin-left: -0.2rem;
bottom: 0.3rem
}
.public_list .item .text {
-webkit-align-self: flex-start;
align-self: flex-start;
}
.loading {
font-size: .4rem;
text-align: center;
color: #999;
}
.loaded {
font-size: .28rem;
line-height: .72rem;
text-align: center;
color: #999;
}
.nothing {
position: absolute;
top: 50%;
left: 50%;
width: 4.14rem;
height: 3.36rem;
-webkit-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
}
.favorite {
padding-top: .9rem;
}
</style>
{/block}
{block name="content"}
<div v-cloak id="app">
<div class="favorite">
<div class="tabbar">
<div v-for="item in tabs" :key="item.value">{{ item.name }}</div>
</div>
<div v-if="gradeList.length" class="list">
<a v-for="item in gradeList" :key="item.id" :href="item.path">
<div>
<img :src="item.image">
<div>{{ item.typeName }}</div>
</div>
<div>
<div>{{ item.title }}</div>
<div v-if="item.label.length">
<template v-for="(label, index) in item.label">
<div v-if="index < 2" :key="index">{{ label }}</div>
</template>
</div>
<div>
<div :class="{ money: item.pay_type }">
<template v-if="item.pay_type">
<span>{{ item.is_pink ? item.pink_money : item.money }}</span>
</template>
<template v-else>
免费
</template>
</div>
<div v-if="!item.is_light && item.types !== 4">共{{ item.count }}节</div>
</div>
</div>
</a>
</div>
<div v-show="loading" class="loading">
<span class="fa fa-spinner"></span>
</div>
<div v-if="loadend && gradeList.length" class="loaded">已全部加载</div>
<div v-if="loadend && !gradeList.length" >
<!-- <img class="nothing" src="/wap/first/zsff/images/no_collection.png"> -->
<img class="nothing" src="/wap/first/zsff/images/no_data_available.png">
</div>
</div>
<div class="my-course" ref="app">
<base-login :login-show="loginShow" :site-name="site_name" @login-close="loginClose"></base-login>
<div class="mask" @touchmove.prevent style="z-index: 100;" v-show="isfollow">
<h4>立即绑定微信公众号用户</h4>
<div class="code">
<img :src="codeUrl" class="image" alt="">
</div>
<div class="button" @click="skip">跳过</div>
</div>
{if !$subscribe && !empty($userInfo) && $is_official_account_switch}
<div class="groupCode" v-if="is_code">
<div class="ewmCon">
<div class="code"><img :src="wechat_qrcode"></div>
<div class="codeTip">扫码关注公众号</div>
<div class="iconfont iconguanbi2" @click="clone"></div>
</div>
</div>
<div class="mask" style="align-items:center;display: flex;" v-if="is_code" @click="clone"></div>
<div style="height: 1.0rem"></div>
{/if}
</div>
<quick-menu></quick-menu>
</div>
{/block}
{block name="foot"}
<script>
var wechat_qrcode = '{$subscribeQrcode}', site_name = '{$Auth_site_name}';
require(['vue', 'helper', 'store', 'special-type', 'components/base-login/index','quick'], function (Vue, $h, storeApi, specialType, BaseLogin) {
new Vue({
el: '#app',
components: {
'base-login': BaseLogin
},
data: {
site_name:site_name,
navlist: [{title: '我的课程'}, {title: '我的收藏'}],
loadend: false,
loading: false,
active: 0,
// type: type,
gradeList: [],
min: 2,
page: 1,
limit: 10,
count: 0,
codeUrl: '',
loginShow: false,
isfollow: false,
url: $h.U({c: 'login', a: 'phone_check'}),
wechat_qrcode: wechat_qrcode,
is_code: $h.getCookie('QRCODE') ? false : true,
tabs: [
{
name: '我的课程',
value: 1
}
]
},
created: function () {
var that = this;
storeApi.baseGet($h.U({c: 'index', a: 'login_user'}), function () {
that.getGradeList();
}, function () {
that.loginShow = true;
});
},
methods: {
clone: function () {
this.is_code = false;
$h.setCookie('QRCODE', 1, 1576237948);
},
skip: function () {
this.isfollow = false;
this.loginShow = false;
setTimeout(function () {
window.location.reload();
}, 800);
},
loginClose: function (val) {
this.loginShow = false;
val && this.logComplete();
},
logComplete: function (data) {
var that = this;
if (!data.isfollow) {
this.codeUrl = data.url;
this.isfollow = true;
var qcode_id = data.qcode_id;
var interval = setInterval(function () {
app.baseGet($h.U({c: 'index', a: 'qcode_login', q: {qcode_id: qcode_id}}), function (res) {
clearInterval(interval);
that.isfollow = false;
setTimeout(function () {
window.location.reload();
}, 800);
}, null, true);
}, 1000);
} else {
that.loginShow = false;
window.location.reload();
}
},
//所有插件回调处理事件
changeVal: function (opt) {
if (typeof opt != 'object') opt = {};
var action = opt.action || '';
var value = opt.value || '';
this[action] && this[action](value);
},
getTashUrl: function (id) {
return $h.U({c: 'special', a: 'details', q: {id: id}}) + (this.active == 0 ? '#tash' : '');
},
EventUtil: function () {
var that = this;
that.$nextTick(function () {
$h.EventUtil.listenTouchDirection(document, function () {
that.loading == false && that.getGradeList();
}, false);
})
},
// 获取课程
getGradeList: function () {
var that = this;
if (that.loading) return;
if (that.loadend) return;
that.loading = true;
storeApi.baseGet($h.U({
c: 'special',
a: 'get_my_grade_list',
q: {
page: this.page,
limit: this.limit
}
}), function (res) {
var list = res.data.data.list;
list.forEach(function (item) {
var path = "{:url('special/details')}";
var typeName = '图文';
if (item.types === 2 || item.light_type === 2) {
typeName = '音频';
} else if (item.types === 3 || item.light_type === 3) {
typeName = '视频';
} else if (item.types === 4) {
typeName = '直播';
} else if (item.types === 5) {
typeName = '专栏';
}
if (item.light_type) {
path = "{:url('special/single_details')}";
}
item.path = path + '?id=' + item.s_id;
item.typeName = typeName;
});
that.gradeList = that.gradeList.concat(list);
that.loadend = that.limit > list.length;
that.page = res.data.data.page;
that.loading = false;
that.EventUtil();
}, function () {
that.loading = false;
});
},
// 切换
tab: function (value) {
if (this.loading) {
return;
}
this.active = value;
this.gradeList = [];
this.page = 1;
this.loadend = false;
this.getGradeList();
}
}
});
})
</script>
{/block}