mirror of
https://gitee.com/koogua/course-tencent-cloud.git
synced 2025-07-03 23:46:49 +08:00
前台学习资料部分完成
This commit is contained in:
parent
ebb2c36f9f
commit
6b8baae6b3
@ -8,6 +8,7 @@ use App\Services\Logic\Chapter\ChapterInfo as ChapterInfoService;
|
||||
use App\Services\Logic\Chapter\ChapterLike as ChapterLikeService;
|
||||
use App\Services\Logic\Chapter\DanmuList as ChapterDanmuListService;
|
||||
use App\Services\Logic\Chapter\Learning as ChapterLearningService;
|
||||
use App\Services\Logic\Chapter\ResourceList as ChapterResourceListService;
|
||||
use App\Services\Logic\Course\ChapterList as CourseChapterListService;
|
||||
|
||||
/**
|
||||
@ -16,6 +17,18 @@ use App\Services\Logic\Course\ChapterList as CourseChapterListService;
|
||||
class ChapterController extends Controller
|
||||
{
|
||||
|
||||
/**
|
||||
* @Get("/{id:[0-9]+}/resources", name="home.chapter.resources")
|
||||
*/
|
||||
public function resourcesAction($id)
|
||||
{
|
||||
$service = new ChapterResourceListService();
|
||||
|
||||
$items = $service->handle($id);
|
||||
|
||||
$this->view->setVar('items', $items);
|
||||
}
|
||||
|
||||
/**
|
||||
* @Get("/{id:[0-9]+}", name="home.chapter.show")
|
||||
*/
|
||||
|
@ -4,6 +4,7 @@
|
||||
|
||||
{% set full_chapter_url = full_url({'for':'home.chapter.show','id':chapter.id}) %}
|
||||
{% set course_url = url({'for':'home.course.show','id':chapter.course.id}) %}
|
||||
{% set resources_url = url({'for':'home.chapter.resources','id':chapter.id}) %}
|
||||
{% set learning_url = url({'for':'home.chapter.learning','id':chapter.id}) %}
|
||||
{% set live_chats_url = url({'for':'home.live.chats','id':chapter.id}) %}
|
||||
{% set live_stats_url = url({'for':'home.live.stats','id':chapter.id}) %}
|
||||
@ -19,8 +20,11 @@
|
||||
<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="我要点赞" 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>0</em></a>
|
||||
{% if chapter.resource_count > 0 and chapter.me.owned == 1 %}
|
||||
<a href="javascript:" title="资料下载" data-url="{{ resources_url }}"><i class="layui-icon layui-icon-download-circle icon-resource"></i></a>
|
||||
{% endif %}
|
||||
<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>
|
||||
|
@ -4,6 +4,7 @@
|
||||
|
||||
{% set full_chapter_url = full_url({'for':'home.chapter.show','id':chapter.id}) %}
|
||||
{% set course_url = url({'for':'home.course.show','id':chapter.course.id}) %}
|
||||
{% set resources_url = url({'for':'home.chapter.resources','id':chapter.id}) %}
|
||||
{% set learning_url = url({'for':'home.chapter.learning','id':chapter.id}) %}
|
||||
{% set like_url = url({'for':'home.chapter.like','id':chapter.id}) %}
|
||||
{% set consult_url = url({'for':'home.consult.add'},{'chapter_id':chapter.id}) %}
|
||||
@ -16,9 +17,12 @@
|
||||
<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="我要点赞" 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="{{ consult_url }}"><i class="layui-icon layui-icon-help icon-help"></i></a>
|
||||
{% if chapter.resource_count > 0 and chapter.me.owned == 1 %}
|
||||
<a href="javascript:" title="资料下载" data-url="{{ resources_url }}"><i class="layui-icon layui-icon-download-circle icon-resource"></i></a>
|
||||
{% endif %}
|
||||
<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>
|
||||
|
32
app/Http/Home/Views/chapter/resources.volt
Normal file
32
app/Http/Home/Views/chapter/resources.volt
Normal file
@ -0,0 +1,32 @@
|
||||
{% extends 'templates/layer.volt' %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<table class="kg-table layui-table">
|
||||
<tr>
|
||||
<th>名称</th>
|
||||
<th>类型</th>
|
||||
<th>大小</th>
|
||||
<th width="15%">操作</th>
|
||||
</tr>
|
||||
{% for item in items %}
|
||||
{% set download_url = url({'for':'home.download','md5':item.md5}) %}
|
||||
<tr>
|
||||
<td>{{ item.name }}</td>
|
||||
<td>{{ item.mime }}</td>
|
||||
<td>{{ item.size|human_size }}</td>
|
||||
<td><a class="layui-btn layui-btn-sm" href="{{ download_url }}" target="_blank">下载</a></td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</table>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
{% block inline_js %}
|
||||
|
||||
<script>
|
||||
var index = parent.layer.getFrameIndex(window.name);
|
||||
parent.layer.iframeAuto(index);
|
||||
</script>
|
||||
|
||||
{% endblock %}
|
@ -4,6 +4,7 @@
|
||||
|
||||
{% set full_chapter_url = full_url({'for':'home.chapter.show','id':chapter.id}) %}
|
||||
{% set course_url = url({'for':'home.course.show','id':chapter.course.id}) %}
|
||||
{% set resources_url = url({'for':'home.chapter.resources','id':chapter.id}) %}
|
||||
{% set learning_url = url({'for':'home.chapter.learning','id':chapter.id}) %}
|
||||
{% set like_url = url({'for':'home.chapter.like','id':chapter.id}) %}
|
||||
{% set qrcode_url = url({'for':'home.qrcode'},{'text':full_chapter_url}) %}
|
||||
@ -17,9 +18,12 @@
|
||||
<a><cite>{{ chapter.title }}</cite></a>
|
||||
</span>
|
||||
<span class="share">
|
||||
<a href="javascript:" title="学习人次"><i class="layui-icon layui-icon-user"></i><em>{{ chapter.user_count }}</em></a>
|
||||
<a href="javascript:" title="我要点赞" data-url="{{ like_url }}"><i class="layui-icon layui-icon-praise icon-praise {{ liked_class }}"></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="{{ consult_url }}"><i class="layui-icon layui-icon-help icon-help"></i></a>
|
||||
{% if chapter.resource_count > 0 and chapter.me.owned == 1 %}
|
||||
<a href="javascript:" title="资料下载" data-url="{{ resources_url }}"><i class="layui-icon layui-icon-download-circle icon-resource"></i></a>
|
||||
{% endif %}
|
||||
<a href="javascript:" title="分享到微信"><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>
|
||||
|
@ -30,6 +30,7 @@
|
||||
<label class="layui-form-label"></label>
|
||||
<div class="layui-input-block">
|
||||
<button class="layui-btn" lay-submit="true" lay-filter="go">提交</button>
|
||||
<button type="reset" class="layui-btn layui-btn-primary">重置</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
@ -27,6 +27,7 @@
|
||||
<label class="layui-form-label"></label>
|
||||
<div class="layui-input-block">
|
||||
<button class="layui-btn" lay-submit="true" lay-filter="go">提交</button>
|
||||
<button type="reset" class="layui-btn layui-btn-primary">重置</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
@ -4,7 +4,7 @@
|
||||
|
||||
{% set consult.answer = consult.answer ? consult.answer : '请耐心等待回复吧' %}
|
||||
|
||||
<div class="consult-info">
|
||||
<div class="consult-info clearfix">
|
||||
{% if consult.course.id is defined %}
|
||||
<div class="item">
|
||||
<div class="label">课程:</div>
|
||||
|
@ -5,7 +5,7 @@
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<meta name="csrf-token" content="{{ csrfToken.getToken() }}">
|
||||
<title>即时通讯</title>
|
||||
<title>酷瓜云课堂</title>
|
||||
{{ icon_link('favicon.ico') }}
|
||||
{{ css_link('lib/layui/css/layui.css') }}
|
||||
{{ css_link('home/css/common.css') }}
|
||||
|
@ -71,6 +71,7 @@ class BasicInfo extends Service
|
||||
'summary' => $chapter->summary,
|
||||
'model' => $chapter->model,
|
||||
'play_urls' => $playUrls,
|
||||
'resource_count' => $chapter->resource_count,
|
||||
'user_count' => $chapter->user_count,
|
||||
'like_count' => $chapter->like_count,
|
||||
];
|
||||
@ -97,6 +98,7 @@ class BasicInfo extends Service
|
||||
'start_time' => $live->start_time,
|
||||
'end_time' => $live->end_time,
|
||||
'status' => $live->status,
|
||||
'resource_count' => $chapter->resource_count,
|
||||
'user_count' => $chapter->user_count,
|
||||
'like_count' => $chapter->like_count,
|
||||
];
|
||||
@ -114,6 +116,7 @@ class BasicInfo extends Service
|
||||
'summary' => $chapter->summary,
|
||||
'model' => $chapter->model,
|
||||
'content' => $read->content,
|
||||
'resource_count' => $chapter->resource_count,
|
||||
'user_count' => $chapter->user_count,
|
||||
'like_count' => $chapter->like_count,
|
||||
];
|
||||
|
34
app/Services/Logic/Chapter/ResourceList.php
Normal file
34
app/Services/Logic/Chapter/ResourceList.php
Normal file
@ -0,0 +1,34 @@
|
||||
<?php
|
||||
|
||||
namespace App\Services\Logic\Chapter;
|
||||
|
||||
use App\Builders\ResourceList as ResourceListBuilder;
|
||||
use App\Repos\Resource as ResourceRepo;
|
||||
use App\Services\Logic\ChapterTrait;
|
||||
use App\Services\Logic\Service;
|
||||
|
||||
class ResourceList extends Service
|
||||
{
|
||||
|
||||
use ChapterTrait;
|
||||
|
||||
public function handle($id)
|
||||
{
|
||||
$chapter = $this->checkChapter($id);
|
||||
|
||||
$resourceRepo = new ResourceRepo();
|
||||
|
||||
$resources = $resourceRepo->findByChapterId($chapter->id);
|
||||
|
||||
if ($resources->count() == 0) {
|
||||
return [];
|
||||
}
|
||||
|
||||
$builder = new ResourceListBuilder();
|
||||
|
||||
$relations = $resources->toArray();
|
||||
|
||||
return $builder->getUploads($relations);
|
||||
}
|
||||
|
||||
}
|
@ -71,13 +71,7 @@ class HttpErrorHandler extends Component
|
||||
*/
|
||||
protected function report($e)
|
||||
{
|
||||
$config = $this->getConfig();
|
||||
|
||||
if ($config->get('env') == ENV_DEV) {
|
||||
$content = $e->getTraceAsString();
|
||||
} else {
|
||||
$content = sprintf('%s(%d): %s', $e->getFile(), $e->getLine(), $e->getMessage());
|
||||
}
|
||||
$content = sprintf('%s(%d): %s', $e->getFile(), $e->getLine(), $e->getMessage());
|
||||
|
||||
$logger = $this->getLogger();
|
||||
|
||||
|
@ -1500,14 +1500,15 @@
|
||||
}
|
||||
|
||||
.consult-info .item {
|
||||
clear: both;
|
||||
margin-bottom: 15px;
|
||||
line-height: 1.5em;
|
||||
height: 1.5em;
|
||||
clear: both;
|
||||
}
|
||||
|
||||
.consult-info .item .label {
|
||||
float: left;
|
||||
width: 50px;
|
||||
height: 32px;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
|
@ -47,4 +47,19 @@ layui.use(['jquery', 'helper'], function () {
|
||||
});
|
||||
});
|
||||
|
||||
/**
|
||||
* 资料
|
||||
*/
|
||||
$('.icon-resource').on('click', function () {
|
||||
var url = $(this).parent().data('url');
|
||||
helper.checkLogin(function () {
|
||||
layer.open({
|
||||
type: 2,
|
||||
title: '资料下载',
|
||||
content: [url, 'no'],
|
||||
area: ['640px', '300px']
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
});
|
Loading…
x
Reference in New Issue
Block a user