1
0
mirror of https://gitee.com/koogua/course-tencent-cloud.git synced 2025-06-24 20:06:09 +08:00

整理分享功能

This commit is contained in:
xiaochong0302 2020-07-17 20:35:47 +08:00
parent d5559ec49c
commit 949a94ace9
26 changed files with 328 additions and 372 deletions

View File

@ -35,22 +35,22 @@ class ChapterController extends Controller
$service = new CourseChapterListService();
$chapters = $service->handle($chapter['course']['id']);
$contents = $service->handle($chapter['course']['id']);
$this->siteSeo->prependTitle([$chapter['title'], $chapter['course']['title']]);
$this->siteSeo->setKeywords($chapter['title']);
$this->siteSeo->setDescription($chapter['summary']);
if ($chapter['model'] == 'vod') {
$this->view->pick('chapter/show_vod');
$this->view->pick('chapter/vod');
} elseif ($chapter['model'] == 'live') {
$this->view->pick('chapter/show_live');
$this->view->pick('chapter/live');
} elseif ($chapter['model'] == 'read') {
$this->view->pick('chapter/show_read');
$this->view->pick('chapter/read');
}
$this->view->setVar('chapter', $chapter);
$this->view->setVar('chapters', $chapters);
$this->view->setVar('contents', $contents);
}
/**

View File

@ -0,0 +1,23 @@
<div class="layui-card sidebar-card sidebar-chapter">
<div class="layui-card-header">课程目录</div>
<div class="layui-card-body">
<div class="sidebar-chapter-list">
{% for item in contents %}
<div class="chapter-title layui-elip">{{ item.title }}</div>
<ul class="sidebar-lesson-list">
{% for lesson in item.children %}
{% set url = url({'for':'web.chapter.show','id':lesson.id}) %}
{% set active = (chapter.id == lesson.id) ? 'active' : 'normal' %}
<li class="lesson-title layui-elip">
{% if lesson.me.owned == 1 %}
<a class="{{ active }}" href="{{ url }}" title="{{ lesson.title|e }}">{{ lesson.title }}</a>
{% else %}
<span class="deny" title="{{ lesson.title|e }}">{{ lesson.title }}</span>
{% endif %}
</li>
{% endfor %}
</ul>
{% endfor %}
</div>
</div>
</div>

View File

@ -0,0 +1,77 @@
{% extends 'templates/full.volt' %}
{% block content %}
{% set chapter_full_url = full_url({'for':'web.chapter.show','id':chapter.id}) %}
{% set learning_url = url({'for':'web.chapter.learning','id':chapter.id}) %}
{% set live_chats_url = url({'for':'web.live.chats','id':chapter.id}) %}
{% set live_stats_url = url({'for':'web.live.stats','id':chapter.id}) %}
{% set send_msg_url = url({'for':'web.live.send_msg','id':chapter.id}) %}
{% set bind_user_url = url({'for':'web.live.bind_user','id':chapter.id}) %}
{% set like_url = url({'for':'web.chapter.like','id':chapter.id}) %}
{% set qrcode_url = url({'for':'web.qrcode_img'},{'text':chapter_full_url}) %}
<div class="breadcrumb">
<span class="layui-breadcrumb">
<a><cite>{{ chapter.course.title }}</cite></a>
<a><cite>{{ chapter.title }}</cite></a>
</span>
<span class="share">
<a href="javascript:" title="点赞" data-url="{{ like_url }}"><i class="layui-icon layui-icon-praise icon-praise"></i><em class="like-count">{{ chapter.like_count }}</em></a>
<a href="javascript:" title="在线人数"><i class="layui-icon layui-icon-user"></i><em>15</em></a>
<a href="javascript:" title="分享到微信" data-url=""><i class="layui-icon layui-icon-login-wechat icon-wechat"></i></a>
<a href="javascript:" title="分享到QQ空间"><i class="layui-icon layui-icon-login-qq icon-qq"></i></a>
<a href="javascript:" title="分享到微博"><i class="layui-icon layui-icon-login-weibo icon-weibo"></i></a>
</span>
</div>
<div class="layout-main">
<div class="layout-content">
<div class="player-wrap wrap">
<div id="player"></div>
</div>
</div>
<div class="layout-sidebar">
<div class="layui-card chat-wrap">
<div class="layui-card-header">直播讨论</div>
<div class="layui-card-body">
<div class="chat-msg-list" id="chat-msg-list" data-url="{{ live_chats_url }}"></div>
<form class="layui-form chat-msg-form" method="post" action="{{ send_msg_url }}">
{% if auth_user.id > 0 %}
<input class="layui-input" type="text" name="content" maxlength="50" placeholder="快来一起互动吧" lay-verType="tips" lay-verify="required">
{% else %}
<input class="layui-input" type="text" placeholder="登录后才可以发言哦" readonly="readonly">
{% endif %}
<button class="layui-hide" type="submit" lay-submit="true" lay-filter="chat">发送</button>
</form>
</div>
</div>
</div>
</div>
<div class="layui-hide">
<input type="hidden" name="chapter.id" value="{{ chapter.id }}">
<input type="hidden" name="chapter.plan_id" value="{{ chapter.me.plan_id }}">
<input type="hidden" name="chapter.learning_url" value="{{ learning_url }}">
<input type="hidden" name="chapter.play_urls" value='{{ chapter.play_urls|json_encode }}'>
<input type="hidden" name="bind_user_url" value='{{ bind_user_url }}'>
</div>
<div class="layui-hide">
<input type="hidden" name="share.title" value="{{ chapter.course.title }}">
<input type="hidden" name="share.pic" value="{{ chapter.course.cover }}">
<input type="hidden" name="share.url" value="{{ chapter_full_url }}">
<input type="hidden" name="share.qrcode" value="{{ qrcode_url }}">
</div>
{% endblock %}
{% block include_js %}
<script src="//imgcache.qq.com/open/qcloud/video/vcplayer/TcPlayer-2.3.2.js"></script>
{{ js_include('web/js/chapter.live.player.js') }}
{{ js_include('web/js/chapter.live.im.js') }}
{{ js_include('web/js/course.share.js') }}
{% endblock %}

View File

@ -1,7 +1,7 @@
{% for chat in chats %}
<div class="chat">
{% if chat.user.vip == 1 %}
<span class="vip-icon layui-icon layui-icon-diamond"></span>
<span class="layui-icon layui-icon-diamond icon-vip"></span>
{% endif %}
<span class="user">{{ chat.user.name }}</span>
<span class="content">{{ chat.content }}</span>

View File

@ -1,6 +0,0 @@
<div class="live-stats">
<div class="stats">
登录:<span class="count">{{ stats.user_count }} 人</span>
游客:<span class="count">{{ stats.guest_count }} 人</span>
</div>
</div>

View File

@ -1,25 +0,0 @@
<div class="sidebar-chapter wrap">
<fieldset class="layui-elem-field layui-field-title">
<legend>课程目录</legend>
<div class="layui-field-box">
<div class="sidebar-chapter-list">
{% for item in chapters %}
<div class="chapter-title layui-elip">{{ item.title }}</div>
<ul class="sidebar-lesson-list">
{% for lesson in item.children %}
{% set url = url({'for':'web.chapter.show','id':lesson.id}) %}
{% set active = (chapter.id == lesson.id) ? 'active' : 'normal' %}
<li class="lesson-title layui-elip">
{% if lesson.me.owned == 1 %}
<a class="{{ active }}" href="{{ url }}" title="{{ lesson.title|e }}">{{ lesson.title }}</a>
{% else %}
<span class="deny" title="{{ lesson.title|e }}">{{ lesson.title }}</span>
{% endif %}
</li>
{% endfor %}
</ul>
{% endfor %}
</div>
</div>
</fieldset>
</div>

View File

@ -0,0 +1,53 @@
{% extends 'templates/full.volt' %}
{% block content %}
{% set chapter_full_url = full_url({'for':'web.chapter.show','id':chapter.id}) %}
{% set learning_url = url({'for':'web.chapter.learning','id':chapter.id}) %}
{% set like_url = url({'for':'web.chapter.like','id':chapter.id}) %}
{% set qrcode_url = url({'for':'web.qrcode_img'},{'text':chapter_full_url}) %}
<div class="breadcrumb">
<span class="layui-breadcrumb">
<a><cite>{{ chapter.course.title }}</cite></a>
<a><cite>{{ chapter.title }}</cite></a>
</span>
<span class="share">
<a href="javascript:" title="点赞" data-url="{{ like_url }}"><i class="layui-icon layui-icon-praise icon-praise"></i><em class="like-count">{{ chapter.like_count }}</em></a>
<a href="javascript:" title="学习人次"><i class="layui-icon layui-icon-user"></i><em>{{ chapter.user_count }}</em></a>
<a href="javascript:" title="分享到微信" data-url=""><i class="layui-icon layui-icon-login-wechat icon-wechat"></i></a>
<a href="javascript:" title="分享到QQ空间"><i class="layui-icon layui-icon-login-qq icon-qq"></i></a>
<a href="javascript:" title="分享到微博"><i class="layui-icon layui-icon-login-weibo icon-weibo"></i></a>
</span>
</div>
<div class="layout-main clearfix">
<div class="layout-content">
<div class="read-info wrap">{{ chapter.content }}</div>
</div>
<div class="layout-sidebar">
{{ partial('chapter/contents') }}
</div>
</div>
<div class="layui-hide">
<input type="hidden" name="chapter.id" value="{{ chapter.id }}">
<input type="hidden" name="chapter.plan_id" value="{{ chapter.me.plan_id }}">
<input type="hidden" name="chapter.learning_url" value="{{ learning_url }}">
</div>
<div class="layui-hide">
<input type="hidden" name="share.title" value="{{ chapter.course.title }}">
<input type="hidden" name="share.pic" value="{{ chapter.course.cover }}">
<input type="hidden" name="share.url" value="{{ chapter_full_url }}">
<input type="hidden" name="share.qrcode" value="{{ qrcode_url }}">
</div>
{% endblock %}
{% block include_js %}
{{ js_include('web/js/chapter.read.js') }}
{{ js_include('web/js/course.share.js') }}
{% endblock %}

View File

@ -1,12 +0,0 @@
{% extends 'templates/full.volt' %}
{% block content %}
<div class="layout-main clearfix">
<div class="layout-content"></div>
<div class="layout-sidebar">
{{ partial('chapter/menu') }}
</div>
</div>
{% endblock %}

View File

@ -1,69 +0,0 @@
{% extends 'templates/full.volt' %}
{% block content %}
{% set learning_url = url({'for':'web.chapter.learning','id':chapter.id}) %}
{% set live_chats_url = url({'for':'web.live.chats','id':chapter.id}) %}
{% set live_stats_url = url({'for':'web.live.stats','id':chapter.id}) %}
{% set send_msg_url = url({'for':'web.live.send_msg','id':chapter.id}) %}
{% set bind_user_url = url({'for':'web.live.bind_user','id':chapter.id}) %}
<div class="breadcrumb">
<span class="layui-breadcrumb">
<a><cite>{{ chapter.course.title }}</cite></a>
<a><cite>{{ chapter.title }}</cite></a>
</span>
</div>
<div class="layout-main">
<div class="layout-content">
<div class="player-wrap wrap">
<div id=player"></div>
</div>
</div>
<div class="layout-sidebar">
<div class="chat-wrap">
<div class="layui-tab layui-tab-brief user-tab">
<ul class="layui-tab-title">
<li class="layui-this">讨论</li>
<li>统计</li>
</ul>
<div class="layui-tab-content">
<div class="layui-tab-item layui-show">
<div class="chat-msg-list" id="chat-msg-list" data-url="{{ live_chats_url }}"></div>
{% if auth_user.id > 0 %}
<div class="chat-msg-form">
<form class="layui-form" method="post" action="{{ send_msg_url }}">
<input class="layui-input" type="text" name="content" maxlength="50" placeholder="快来一起互动吧" lay-verType="tips" lay-verify="required">
<button class="layui-hide" type="submit" lay-submit="true" lay-filter="chat">发送</button>
</form>
</div>
{% else %}
<div class="chat-login-tips">登录后才可以发言哦</div>
{% endif %}
</div>
<div class="layui-tab-item" id="tab-stats" data-url="{{ live_stats_url }}"></div>
</div>
</div>
</div>
</div>
</div>
<div class="layui-hide">
<input type="hidden" name="chapter.id" value="{{ chapter.id }}">
<input type="hidden" name="chapter.plan_id" value="{{ chapter.me.plan_id }}">
<input type="hidden" name="chapter.learning_url" value="{{ learning_url }}">
<input type="hidden" name="chapter.play_urls" value='{{ chapter.play_urls|json_encode }}'>
<input type="hidden" name="bind_user_url" value='{{ bind_user_url }}'>
</div>
{% endblock %}
{% block include_js %}
<script src="//imgcache.qq.com/open/qcloud/video/vcplayer/TcPlayer-2.3.2.js"></script>
{{ js_include('web/js/live.player.js') }}
{{ js_include('web/js/live.im.js') }}
{% endblock %}

View File

@ -1,35 +0,0 @@
{% extends 'templates/full.volt' %}
{% block content %}
{% set learning_url = url({'for':'web.chapter.learning','id':chapter.id}) %}
<div class="breadcrumb">
<span class="layui-breadcrumb">
<a><cite>{{ chapter.course.title }}</cite></a>
<a><cite>{{ chapter.title }}</cite></a>
</span>
</div>
<div class="layout-main clearfix">
<div class="layout-content">
<div class="read-info wrap">{{ chapter.content }}</div>
</div>
<div class="layout-sidebar">
{{ partial('chapter/menu') }}
</div>
</div>
<div class="layui-hide">
<input type="hidden" name="chapter.id" value="{{ chapter.id }}">
<input type="hidden" name="chapter.plan_id" value="{{ chapter.me.plan_id }}">
<input type="hidden" name="chapter.learning_url" value="{{ learning_url }}">
</div>
{% endblock %}
{% block include_js %}
{{ js_include('web/js/read.js') }}
{% endblock %}

View File

@ -2,17 +2,24 @@
{% block content %}
{% set chapter_url = url({'for':'web.chapter.show','id':chapter.id}) %}
{% set danmu_url = url({'for':'web.chapter.danmu','id':chapter.id}) %}
{% set chapter_full_url = full_url({'for':'web.chapter.show','id':chapter.id}) %}
{% set learning_url = url({'for':'web.chapter.learning','id':chapter.id}) %}
{% set danmu_url = url({'for':'web.chapter.danmu','id':chapter.id}) %}
{% set like_url = url({'for':'web.chapter.like','id':chapter.id}) %}
{% set qrcode_url = url({'for':'web.qrcode_img'},{'text':'http://baidu.com','size':5}) %}
{% set qrcode_url = url({'for':'web.qrcode_img'},{'text':chapter_full_url}) %}
<div class="breadcrumb">
<span class="layui-breadcrumb">
<a><cite>{{ chapter.course.title }}</cite></a>
<a><cite>{{ chapter.title }}</cite></a>
</span>
<span class="share">
<a href="javascript:" title="点赞" data-url="{{ like_url }}"><i class="layui-icon layui-icon-praise icon-praise"></i><em class="like-count">{{ chapter.like_count }}</em></a>
<a href="javascript:" title="学习人次"><i class="layui-icon layui-icon-user"></i><em>{{ chapter.user_count }}</em></a>
<a href="javascript:" title="分享到微信" data-url=""><i class="layui-icon layui-icon-login-wechat icon-wechat"></i></a>
<a href="javascript:" title="分享到QQ空间"><i class="layui-icon layui-icon-login-qq icon-qq"></i></a>
<a href="javascript:" title="分享到微博"><i class="layui-icon layui-icon-login-weibo icon-weibo"></i></a>
</span>
</div>
<div class="layout-main clearfix">
@ -20,19 +27,10 @@
<div class="player-wrap wrap">
<div id="player"></div>
<div id="danmu"></div>
</div>
<div class="chapter-action wrap clearfix">
<div class="share">
<a href="javascript:" title="点赞" data-url="{{ like_url }}"><i class="layui-icon layui-icon-praise icon-praise"></i><em class="like-count">{{ chapter.like_count }}</em></a>
<a href="javascript:" title="学习人次"><i class="layui-icon layui-icon-user"></i><em>{{ chapter.user_count }}</em></a>
<a href="javascript:" title="分享到微信" data-url=""><i class="layui-icon layui-icon-login-wechat icon-wechat"></i></a>
<a href="javascript:" title="分享到QQ空间"><i class="layui-icon layui-icon-login-qq icon-qq"></i></a>
<a href="javascript:" title="分享到微博"><i class="layui-icon layui-icon-login-weibo icon-weibo"></i></a>
</div>
<form class="layui-form danmu-form" lay-filter="danmu.form" action="{{ url({'for':'web.danmu.create'}) }}">
<a href="javascript:" title="弹幕设置"><i class="layui-icon layui-icon-set icon-danmu-set"></i></a>
{% if auth_user.id > 0 %}
<input class="layui-input" type="text" name="danmu.text" maxlength="50" placeholder="快来发个弹幕吧" lay-verType="tips" lay-verify="required">
<a href="javascript:" title="弹幕设置"><i class="layui-icon layui-icon-set icon-danmu-set"></i></a>
<input class="layui-input" type="text" name="danmu.text" autocomplete="off" maxlength="50" placeholder="快来发个弹幕吧" lay-verType="tips" lay-verify="required">
{% else %}
<input class="layui-input" type="text" name="danmu.text" placeholder="登录后才可以发送弹幕哦" readonly="readonly">
{% endif %}
@ -41,7 +39,7 @@
</div>
</div>
<div class="layout-sidebar">
{{ partial('chapter/menu') }}
{{ partial('chapter/contents') }}
</div>
</div>
@ -103,7 +101,7 @@
<div class="layui-hide">
<input type="hidden" name="share.title" value="{{ chapter.course.title }}">
<input type="hidden" name="share.pic" value="{{ chapter.course.cover }}">
<input type="hidden" name="share.url" value="{{ chapter_url }}">
<input type="hidden" name="share.url" value="{{ chapter_full_url }}">
<input type="hidden" name="share.qrcode" value="{{ qrcode_url }}">
</div>
@ -115,8 +113,7 @@
{{ js_include('lib/jquery.min.js') }}
{{ js_include('lib/jquery.danmu.min.js') }}
{{ js_include('web/js/share.js') }}
{{ js_include('web/js/vod.player.js') }}
{{ js_include('web/js/chapter.action.js') }}
{{ js_include('web/js/course.share.js') }}
{{ js_include('web/js/chapter.vod.player.js') }}
{% endblock %}

View File

@ -92,7 +92,7 @@
{% block include_js %}
{{ js_include('web/js/share.js') }}
{{ js_include('web/js/course.show.js') }}
{{ js_include('web/js/course.share.js') }}
{% endblock %}

View File

@ -14,10 +14,10 @@
<div class="content">{{ item.answer }}</div>
<div class="footer">
<span class="time">{{ date('Y-m-d H:i',item.create_time) }}</span>
<span class="like">
<i class="layui-icon layui-icon-praise icon-praise" data-url="{{ like_url }}"></i>
<a href="javascript:" class="like" title="点赞" data-url="{{ like_url }}">
<i class="layui-icon layui-icon-praise icon-praise"></i>
<em class="like-count">{{ item.like_count }}</em>
</span>
</a>
</div>
</div>
</div>

View File

@ -22,10 +22,10 @@
<div class="content">{{ item.content }}</div>
<div class="footer">
<span class="time">{{ date('Y-m-d H:i',item.create_time) }}</span>
<span class="like">
<i class="layui-icon layui-icon-praise icon-praise" title="点赞" data-url="{{ like_url }}"></i>
<a href="javascript:" class="like" title="点赞" data-url="{{ like_url }}">
<i class="layui-icon layui-icon-praise icon-praise"></i>
<em class="like-count">{{ item.like_count }}</em>
</span>
</a>
</div>
</div>
</div>

View File

@ -4,7 +4,7 @@
{{ partial('partials/macro_course') }}
{% set vip_flag = user.vip ? '<i class="layui-icon layui-icon-diamond vip-icon"></i>' : '' %}
{% set vip_flag = user.vip ? '<i class="layui-icon layui-icon-diamond icon-vip"></i>' : '' %}
<div class="user-profile wrap clearfix">
<div class="avatar">

View File

@ -15,6 +15,24 @@ layui.use(['jquery', 'form', 'element', 'layer', 'dropdown'], function () {
$.ajaxSetup({
beforeSend: function (xhr) {
xhr.setRequestHeader('X-Csrf-Token', $token.attr('content'));
},
statusCode: {
400: function (xhr) {
var res = JSON.parse(xhr.responseText);
layer.msg(res.msg, {icon: 2, anim: 6});
},
401: function () {
layer.msg('操作之前请先登录', {icon: 2, anim: 6});
},
403: function () {
layer.msg('操作受限', {icon: 2, anim: 6});
},
404: function () {
layer.msg('资源不存在', {icon: 2, anim: 6});
},
500: function () {
layer.msg('服务器内部错误', {icon: 2, anim: 6});
}
}
});
@ -92,10 +110,6 @@ layui.use(['jquery', 'form', 'element', 'layer', 'dropdown'], function () {
data: {priority: priority},
success: function (res) {
layer.msg(res.msg, {icon: 1});
},
error: function (xhr) {
var json = JSON.parse(xhr.responseText);
layer.msg(json.msg, {icon: 2});
}
});
});
@ -116,10 +130,6 @@ layui.use(['jquery', 'form', 'element', 'layer', 'dropdown'], function () {
} else {
window.location.reload();
}
},
error: function (xhr) {
var json = JSON.parse(xhr.responseText);
layer.msg(json.msg, {icon: 2});
}
});
});

View File

@ -45,6 +45,7 @@
}
.breadcrumb {
position: relative;
margin-bottom: 20px;
}
@ -419,6 +420,12 @@ body {
margin-right: 20px;
}
.breadcrumb .share {
position: absolute;
top: 2px;
right: -5px;
}
.course-meta .cover {
float: left;
margin-right: 10px;
@ -498,7 +505,7 @@ body {
}
.course-details {
font-size: 12px;
line-height: 1.8em;
color: #666;
}
@ -709,6 +716,10 @@ body {
font-style: normal;
}
.sidebar-card .layui-card-header {
text-align: center;
}
.sidebar-order .order {
margin-bottom: 10px;
}
@ -792,19 +803,6 @@ body {
margin-right: 10px;
}
.sidebar-chapter {
padding: 20px 15px;
}
.sidebar-chapter .layui-field-title {
margin-top: 0;
margin-bottom: 0;
}
.sidebar-chapter .layui-field-title legend {
text-align: center;
}
.sidebar-chapter-list {
height: 405px;
overflow-y: auto;
@ -822,7 +820,6 @@ body {
.sidebar-lesson-list .lesson-title {
line-height: 30px;
font-size: 12px;
}
.lesson-title .active {
@ -838,24 +835,10 @@ body {
}
.read-info {
min-height: 454px;
min-height: 428px;
margin-bottom: 0;
}
.chapter-action {
height: 32px;
line-height: 32px;
margin-bottom: 0;
}
.chapter-action .share {
float: left;
}
.chapter-action .danmu-form {
float: right;
}
.share .layui-icon {
margin-right: 5px;
cursor: pointer;
@ -878,35 +861,46 @@ body {
color: #666;
}
.danmu-form .icon-danmu-set {
margin-right: 5px;
}
.danmu-form .layui-input {
width: 500px;
height: 32px;
display: inline;
line-height: 32px;
font-size: 12px;
}
.player-wrap {
position: relative;
width: 760px;
height: 428px;
margin-bottom: 0;
}
.chat-wrap {
padding: 10px 20px 20px 20px;
background-color: white;
.danmu-form {
position: relative;
left: 180px;
bottom: 38px;
width: 420px;
display: none;
}
.vip-icon {
color: orange;
.danmu-form .icon-danmu-set {
margin-right: 5px;
color: white;
}
.danmu-form .layui-input {
width: 380px;
height: 28px;
display: inline;
line-height: 28px;
font-size: 12px;
color: white;
background-color: rgba(255, 255, 255, 0.1);
}
.chat-wrap .layui-card-header {
text-align: center;
}
.chat-wrap .layui-card-body {
padding-bottom: 20px;
}
.chat-msg-list {
height: 380px;
height: 354px;
margin-bottom: 10px;
overflow-y: auto;
}
@ -929,37 +923,21 @@ body {
color: orange;
}
.chat .icon-vip {
color: orange;
}
.chat .content {
color: #666;
}
.chat-login-tips {
border-top: 1px solid #f2f2f2;
padding-top: 10px;
text-align: center;
font-size: 12px;
color: #999;
}
.chat-msg-form .layui-input {
height: 32px;
line-height: 32px;
font-size: 12px;
color: #666;
}
.live-stats {
height: 420px;
color: #666;
}
.live-stats .stats {
margin-bottom: 15px;
}
.live-stats .count {
margin-right: 10px;
}
.vip-header {
font-size: 18px;
text-align: center;
@ -1213,7 +1191,7 @@ body {
border-radius: 100px;
}
.user-profile .vip-icon {
.user-profile .icon-vip {
color: orange;
}

View File

@ -66,7 +66,7 @@ layui.use(['jquery', 'form', 'helper'], function () {
function showNewMessage(res) {
var html = '<div class="chat">';
if (res.user.vip === 1) {
html += '<span class="vip-icon layui-icon layui-icon-diamond"></span>';
html += '<span class="layui-icon layui-icon-diamond icon-vip"></span>';
}
html += '<span class="user">' + res.user.name + ':</span>';
html += '<span class="content">' + res.content + '</span>';

View File

@ -56,10 +56,34 @@ layui.use(['jquery', 'form', 'layer', 'helper'], function () {
player.currentTime(position);
}
$('.icon-danmu-set').on('click', function () {
layer.open({
type: 1,
title: '弹幕设置',
area: '600px',
shadeClose: true,
content: $('#my-danmu-set')
});
});
var dt = null;
/**
* 控制弹幕表单的可见性
*/
$('#player').hover(function () {
clearTimeout(dt);
$('.danmu-form').show();
}, function () {
dt = setTimeout(function () {
$('.danmu-form').hide();
}, 2500);
});
$('#danmu').danmu({
left: 20,
top: 20,
width: 750,
width: 760,
height: 380
});
@ -101,10 +125,6 @@ layui.use(['jquery', 'form', 'layer', 'helper'], function () {
isnew: 1
});
$danmuText.val('');
},
error: function (xhr) {
var res = JSON.parse(xhr.responseText);
layer.msg(res.msg, {icon: 2});
}
});
return false;

View File

@ -16,6 +16,24 @@ layui.use(['jquery', 'form', 'element', 'layer', 'helper'], function () {
$.ajaxSetup({
beforeSend: function (xhr) {
xhr.setRequestHeader('X-Csrf-Token', $token.attr('content'));
},
statusCode: {
400: function (xhr) {
var res = JSON.parse(xhr.responseText);
layer.msg(res.msg, {icon: 2, anim: 6});
},
401: function () {
layer.msg('操作之前请先登录', {icon: 2, anim: 6});
},
403: function () {
layer.msg('操作受限', {icon: 2, anim: 6});
},
404: function () {
layer.msg('资源不存在', {icon: 2, anim: 6});
},
500: function () {
layer.msg('服务器内部错误', {icon: 2, anim: 6});
}
}
});
@ -74,10 +92,6 @@ layui.use(['jquery', 'form', 'element', 'layer', 'helper'], function () {
} else {
window.location.reload();
}
},
error: function (xhr) {
var json = JSON.parse(xhr.responseText);
layer.msg(json.msg, {icon: 2});
}
});
});

View File

@ -1,8 +1,7 @@
layui.use(['jquery', 'layer', 'helper'], function () {
layui.use(['jquery', 'layer'], function () {
var $ = layui.jquery;
var layer = layui.layer;
var helper = layui.helper;
var myShare = {
title: $('input[name="share.title"]').val(),
@ -11,16 +10,28 @@ layui.use(['jquery', 'layer', 'helper'], function () {
qrcode: $('input[name="share.qrcode"]').val()
};
$('.icon-heart').on('click', function () {
var $this = $(this);
$.ajax({
type: 'POST',
url: $this.parent().data('url'),
success: function () {
if ($this.hasClass('active')) {
$this.removeClass('active');
} else {
$this.addClass('active');
}
}
});
});
$('.icon-praise').on('click', function () {
var $this = $(this);
var $likeCount = $this.next();
var likeCount = parseInt($likeCount.text());
$.ajax({
type: 'POST',
url: $this.data('url'),
beforeSend: function () {
return helper.checkLogin();
},
url: $this.parent().data('url'),
success: function () {
if ($this.hasClass('active')) {
$this.removeClass('active');
@ -31,10 +42,6 @@ layui.use(['jquery', 'layer', 'helper'], function () {
$likeCount.text(likeCount + 1);
likeCount += 1;
}
},
error: function (xhr) {
var res = JSON.parse(xhr.responseText);
layer.msg(res.msg, {icon: 2});
}
});
});
@ -52,22 +59,28 @@ layui.use(['jquery', 'layer', 'helper'], function () {
$('.icon-qq').on('click', function () {
var title = '推荐一门好课:' + myShare.title + ',快来和我一起学习吧!';
Share.qq(title, myShare.url, myShare.pic);
qqShare(title, myShare.url, myShare.pic);
});
$('.icon-weibo').on('click', function () {
var title = '推荐一门好课:' + myShare.title + ',快来和我一起学习吧!';
Share.weibo(title, myShare.url, myShare.pic);
weiboShare(title, myShare.url, myShare.pic);
});
$('.icon-danmu-set').on('click', function () {
layer.open({
type: 1,
title: '弹幕设置',
area: '600px',
shadeClose: true,
content: $('#my-danmu-set')
});
});
function qqShare(title, url, pic) {
var shareUrl = 'http://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?';
shareUrl += 'title=' + encodeURIComponent(title || document.title);
shareUrl += '&url=' + encodeURIComponent(url || document.location);
shareUrl += '&pics=' + pic;
window.open(shareUrl, '_blank');
}
function weiboShare(title, url, pic) {
var shareUrl = 'http://v.t.sina.com.cn/share/share.php?';
shareUrl += 'title=' + encodeURIComponent(title || document.title);
shareUrl += '&url=' + encodeURIComponent(url || document.location);
shareUrl += '&pic=' + encodeURIComponent(pic || '');
window.open(shareUrl, '_blank');
}
});

View File

@ -4,13 +4,6 @@ layui.use(['jquery', 'layer', 'helper'], function () {
var layer = layui.layer;
var helper = layui.helper;
var myShare = {
title: $('input[name="share.title"]').val(),
pic: $('input[name="share.cover"]').val(),
url: $('input[name="share.url"]').val(),
qrcode: $('input[name="share.qrcode"]').val()
};
$('.rating-btn').on('click', function () {
var url = $(this).data('url');
layer.open({
@ -21,59 +14,13 @@ layui.use(['jquery', 'layer', 'helper'], function () {
});
});
$('.icon-heart').on('click', function () {
var $this = $(this);
$.ajax({
type: 'POST',
url: $this.parent().data('url'),
beforeSend: function () {
return helper.checkLogin();
},
success: function () {
if ($this.hasClass('active')) {
$this.removeClass('active');
} else {
$this.addClass('active');
}
},
error: function (xhr) {
var res = JSON.parse(xhr.responseText);
layer.msg(res.msg, {icon: 2});
}
});
});
$('.icon-wechat').on('click', function () {
var content = '<div class="qrcode"><img src="' + myShare.qrcode + '" alt="分享到微信"></div>';
layer.open({
type: 1,
title: false,
closeBtn: 0,
shadeClose: true,
content: content
});
});
$('.icon-qq').on('click', function () {
var title = '推荐一门好课:' + myShare.title + ',快来和我一起学习吧!';
Share.qq(title, myShare.url, myShare.pic);
});
$('.icon-weibo').on('click', function () {
var title = '推荐一门好课:' + myShare.title + ',快来和我一起学习吧!';
Share.weibo(title, myShare.url, myShare.pic);
});
$('body').on('click', '.icon-praise', function () {
var $this = $(this);
var $likeCount = $this.next();
var likeCount = parseInt($likeCount.text());
$.ajax({
type: 'POST',
url: $this.data('url'),
beforeSend: function () {
return helper.checkLogin();
},
url: $this.parent().data('url'),
success: function () {
if ($this.hasClass('active')) {
$this.removeClass('active');
@ -84,10 +31,6 @@ layui.use(['jquery', 'layer', 'helper'], function () {
$likeCount.text(likeCount + 1);
likeCount += 1;
}
},
error: function (xhr) {
var res = JSON.parse(xhr.responseText);
layer.msg(res.msg, {icon: 2});
}
});
});

View File

@ -34,10 +34,6 @@ layui.use(['jquery', 'form', 'layer', 'layim', 'helper'], function () {
success: function (res) {
layer.msg(res.msg, {icon: 1});
layer.close(index);
},
error: function (xhr) {
var res = JSON.parse(xhr.responseText);
layer.msg(res.msg, {icon: 2});
}
});
}
@ -63,10 +59,6 @@ layui.use(['jquery', 'form', 'layer', 'layim', 'helper'], function () {
success: function (res) {
layer.msg(res.msg, {icon: 1});
layer.close(index);
},
error: function (xhr) {
var res = JSON.parse(xhr.responseText);
layer.msg(res.msg, {icon: 2});
}
});
}

View File

@ -1,17 +0,0 @@
var Share = {};
Share.qq = function (title, url, pic) {
var shareUrl = 'http://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?';
shareUrl += 'title=' + encodeURIComponent(title || document.title);
shareUrl += '&url=' + encodeURIComponent(url || document.location);
shareUrl += '&pics=' + pic;
window.open(shareUrl, '_blank');
};
Share.weibo = function (title, url, pic) {
var shareUrl = 'http://v.t.sina.com.cn/share/share.php?';
shareUrl += 'title=' + encodeURIComponent(title || document.title);
shareUrl += '&url=' + encodeURIComponent(url || document.location);
shareUrl += '&pic=' + encodeURIComponent(pic || '');
window.open(shareUrl, '_blank');
};