mirror of
https://gitee.com/koogua/course-tencent-cloud.git
synced 2025-06-26 04:21:27 +08:00
精简后台模板
This commit is contained in:
parent
343c8d49d4
commit
1e2398388a
@ -39,7 +39,10 @@ class AuditController extends Controller
|
||||
|
||||
$audit = $auditService->getAudit($id);
|
||||
|
||||
$region = kg_ip2region($audit->user_ip);
|
||||
|
||||
$this->view->setVar('audit', $audit);
|
||||
$this->view->setVar('region', $region);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -5,13 +5,13 @@ namespace App\Http\Admin\Controllers;
|
||||
use App\Http\Admin\Services\ImGroup as ImGroupService;
|
||||
|
||||
/**
|
||||
* @RoutePrefix("/admin/group")
|
||||
* @RoutePrefix("/admin/im/group")
|
||||
*/
|
||||
class GroupController extends Controller
|
||||
class ImGroupController extends Controller
|
||||
{
|
||||
|
||||
/**
|
||||
* @Get("/list", name="admin.group.list")
|
||||
* @Get("/list", name="admin.im_group.list")
|
||||
*/
|
||||
public function listAction()
|
||||
{
|
||||
@ -23,7 +23,7 @@ class GroupController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Get("/search", name="admin.group.search")
|
||||
* @Get("/search", name="admin.im_group.search")
|
||||
*/
|
||||
public function searchAction()
|
||||
{
|
||||
@ -31,7 +31,7 @@ class GroupController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Get("/add", name="admin.group.add")
|
||||
* @Get("/add", name="admin.im_group.add")
|
||||
*/
|
||||
public function addAction()
|
||||
{
|
||||
@ -39,7 +39,7 @@ class GroupController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Post("/create", name="admin.group.create")
|
||||
* @Post("/create", name="admin.im_group.create")
|
||||
*/
|
||||
public function createAction()
|
||||
{
|
||||
@ -48,7 +48,7 @@ class GroupController extends Controller
|
||||
$group = $groupService->createGroup();
|
||||
|
||||
$location = $this->url->get([
|
||||
'for' => 'admin.group.edit',
|
||||
'for' => 'admin.im_group.edit',
|
||||
'id' => $group->id,
|
||||
]);
|
||||
|
||||
@ -61,7 +61,7 @@ class GroupController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Get("/{id:[0-9]+}/edit", name="admin.group.edit")
|
||||
* @Get("/{id:[0-9]+}/edit", name="admin.im_group.edit")
|
||||
*/
|
||||
public function editAction($id)
|
||||
{
|
||||
@ -73,7 +73,7 @@ class GroupController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Post("/{id:[0-9]+}/update", name="admin.group.update")
|
||||
* @Post("/{id:[0-9]+}/update", name="admin.im_group.update")
|
||||
*/
|
||||
public function updateAction($id)
|
||||
{
|
||||
@ -81,7 +81,7 @@ class GroupController extends Controller
|
||||
|
||||
$groupService->updateGroup($id);
|
||||
|
||||
$location = $this->url->get(['for' => 'admin.group.list']);
|
||||
$location = $this->url->get(['for' => 'admin.im_group.list']);
|
||||
|
||||
$content = [
|
||||
'location' => $location,
|
||||
@ -92,7 +92,7 @@ class GroupController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Post("/{id:[0-9]+}/delete", name="admin.group.delete")
|
||||
* @Post("/{id:[0-9]+}/delete", name="admin.im_group.delete")
|
||||
*/
|
||||
public function deleteAction($id)
|
||||
{
|
||||
@ -111,7 +111,7 @@ class GroupController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Post("/{id:[0-9]+}/restore", name="admin.group.restore")
|
||||
* @Post("/{id:[0-9]+}/restore", name="admin.im_group.restore")
|
||||
*/
|
||||
public function restoreAction($id)
|
||||
{
|
@ -24,17 +24,44 @@ class AuthNode extends Service
|
||||
'id' => '1',
|
||||
'title' => '内容管理',
|
||||
'children' => [
|
||||
[
|
||||
'id' => '1-2',
|
||||
'title' => '分类管理',
|
||||
'type' => 'button',
|
||||
'children' => [
|
||||
[
|
||||
'id' => '1-2-1',
|
||||
'title' => '分类列表',
|
||||
'type' => 'button',
|
||||
'route' => 'admin.category.list',
|
||||
'params' => ['type' => 'course'],
|
||||
],
|
||||
[
|
||||
'id' => '1-2-2',
|
||||
'title' => '添加分类',
|
||||
'type' => 'button',
|
||||
'route' => 'admin.category.add',
|
||||
'params' => ['type' => 'course'],
|
||||
],
|
||||
[
|
||||
'id' => '1-2-3',
|
||||
'title' => '编辑分类',
|
||||
'type' => 'button',
|
||||
'route' => 'admin.category.edit',
|
||||
],
|
||||
[
|
||||
'id' => '1-2-4',
|
||||
'title' => '删除分类',
|
||||
'type' => 'button',
|
||||
'route' => 'admin.category.delete',
|
||||
],
|
||||
],
|
||||
],
|
||||
[
|
||||
'id' => '1-1',
|
||||
'title' => '课程管理',
|
||||
'type' => 'menu',
|
||||
'children' => [
|
||||
[
|
||||
'id' => '1-1-0',
|
||||
'title' => '课程分类',
|
||||
'type' => 'menu',
|
||||
'route' => 'admin.course.category',
|
||||
],
|
||||
[
|
||||
'id' => '1-1-1',
|
||||
'title' => '课程列表',
|
||||
@ -65,38 +92,11 @@ class AuthNode extends Service
|
||||
'type' => 'button',
|
||||
'route' => 'admin.course.edit',
|
||||
],
|
||||
],
|
||||
],
|
||||
[
|
||||
'id' => '1-2',
|
||||
'title' => '分类管理',
|
||||
'id' => '1-1-6',
|
||||
'title' => '课程分类',
|
||||
'type' => 'menu',
|
||||
'children' => [
|
||||
[
|
||||
'id' => '1-2-1',
|
||||
'title' => '分类列表',
|
||||
'type' => 'menu',
|
||||
'route' => 'admin.category.list',
|
||||
'params' => ['type' => 'course'],
|
||||
],
|
||||
[
|
||||
'id' => '1-2-2',
|
||||
'title' => '添加分类',
|
||||
'type' => 'menu',
|
||||
'route' => 'admin.category.add',
|
||||
'params' => ['type' => 'course'],
|
||||
],
|
||||
[
|
||||
'id' => '1-2-3',
|
||||
'title' => '编辑分类',
|
||||
'type' => 'button',
|
||||
'route' => 'admin.category.edit',
|
||||
],
|
||||
[
|
||||
'id' => '1-2-4',
|
||||
'title' => '删除分类',
|
||||
'type' => 'button',
|
||||
'route' => 'admin.category.delete',
|
||||
'route' => 'admin.course.category',
|
||||
],
|
||||
],
|
||||
],
|
||||
@ -204,12 +204,6 @@ class AuthNode extends Service
|
||||
'title' => '帮助管理',
|
||||
'type' => 'menu',
|
||||
'children' => [
|
||||
[
|
||||
'id' => '1-6-0',
|
||||
'title' => '帮助分类',
|
||||
'type' => 'menu',
|
||||
'route' => 'admin.help.category',
|
||||
],
|
||||
[
|
||||
'id' => '1-6-1',
|
||||
'title' => '帮助列表',
|
||||
@ -234,6 +228,12 @@ class AuthNode extends Service
|
||||
'type' => 'button',
|
||||
'route' => 'admin.help.delete',
|
||||
],
|
||||
[
|
||||
'id' => '1-6-5',
|
||||
'title' => '帮助分类',
|
||||
'type' => 'menu',
|
||||
'route' => 'admin.help.category',
|
||||
],
|
||||
],
|
||||
],
|
||||
],
|
||||
@ -348,31 +348,31 @@ class AuthNode extends Service
|
||||
'id' => '2-4-1',
|
||||
'title' => '群组列表',
|
||||
'type' => 'menu',
|
||||
'route' => 'admin.group.list',
|
||||
'route' => 'admin.im_group.list',
|
||||
],
|
||||
[
|
||||
'id' => '2-4-2',
|
||||
'title' => '搜索群组',
|
||||
'type' => 'menu',
|
||||
'route' => 'admin.group.search',
|
||||
'route' => 'admin.im_group.search',
|
||||
],
|
||||
[
|
||||
'id' => '2-4-3',
|
||||
'title' => '添加群组',
|
||||
'type' => 'menu',
|
||||
'route' => 'admin.group.add',
|
||||
'route' => 'admin.im_group.add',
|
||||
],
|
||||
[
|
||||
'id' => '2-4-4',
|
||||
'title' => '编辑群组',
|
||||
'type' => 'button',
|
||||
'route' => 'admin.group.edit',
|
||||
'route' => 'admin.im_group.edit',
|
||||
],
|
||||
[
|
||||
'id' => '2-4-5',
|
||||
'title' => '删除群组',
|
||||
'type' => 'button',
|
||||
'route' => 'admin.group.delete',
|
||||
'route' => 'admin.im_group.delete',
|
||||
],
|
||||
],
|
||||
],
|
||||
|
@ -89,6 +89,7 @@ class Nav extends Service
|
||||
$nav->update();
|
||||
|
||||
$this->updateNavStats($nav);
|
||||
|
||||
$this->rebuildNavCache();
|
||||
|
||||
return $nav;
|
||||
@ -138,6 +139,7 @@ class Nav extends Service
|
||||
$nav->update($data);
|
||||
|
||||
$this->updateNavStats($nav);
|
||||
|
||||
$this->rebuildNavCache();
|
||||
|
||||
return $nav;
|
||||
@ -156,6 +158,7 @@ class Nav extends Service
|
||||
$nav->update();
|
||||
|
||||
$this->updateNavStats($nav);
|
||||
|
||||
$this->rebuildNavCache();
|
||||
|
||||
return $nav;
|
||||
@ -170,6 +173,7 @@ class Nav extends Service
|
||||
$nav->update();
|
||||
|
||||
$this->updateNavStats($nav);
|
||||
|
||||
$this->rebuildNavCache();
|
||||
|
||||
return $nav;
|
||||
|
@ -8,11 +8,6 @@
|
||||
<a><cite>操作记录</cite></a>
|
||||
</span>
|
||||
</div>
|
||||
<div class="kg-nav-right">
|
||||
<a class="layui-btn layui-btn-sm" href="{{ url({'for':'admin.audit.search'}) }}">
|
||||
<i class="layui-icon layui-icon-add-1"></i>搜索记录
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<table class="layui-table kg-table">
|
||||
@ -38,16 +33,23 @@
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for item in pager.items %}
|
||||
{% set list_by_id_url = url({'for':'admin.audit.list'},{'user_id':item.user_id}) %}
|
||||
{% set list_by_ip_url = url({'for':'admin.audit.list'},{'user_ip':item.user_ip}) %}
|
||||
{% set list_by_route_url = url({'for':'admin.audit.list'},{'req_route':item.req_route}) %}
|
||||
{% set list_by_path_url = url({'for':'admin.audit.list'},{'req_path':item.req_path}) %}
|
||||
{% set show_url = url({'for':'admin.audit.show','id':item.id}) %}
|
||||
<tr>
|
||||
<td>{{ item.user_id }}</td>
|
||||
<td>{{ item.user_name }}</td>
|
||||
<td><a class="kg-ip2region" href="javascript:" title="查看位置" data-ip="{{ item.user_ip }}">{{ item.user_ip }}</a></td>
|
||||
<td>{{ item.req_route }}</td>
|
||||
<td>{{ item.req_path }}</td>
|
||||
<td><a href="{{ list_by_id_url }}">{{ item.user_name }}</a></td>
|
||||
<td>
|
||||
<a href="{{ list_by_ip_url }}">{{ item.user_ip }}</a>
|
||||
<span class="layui-btn layui-btn-xs kg-ip2region" data-ip="{{ item.user_ip }}">位置</span>
|
||||
</td>
|
||||
<td><a href="{{ list_by_route_url }}">{{ item.req_route }}</a></td>
|
||||
<td><a href="{{ list_by_path_url }}">{{ item.req_path }}</a></td>
|
||||
<td>{{ date('Y-m-d H:i:s',item.create_time) }}</td>
|
||||
<td align="center">
|
||||
<button class="kg-view layui-btn layui-btn-sm" data-url="{{ show_url }}">浏览</button>
|
||||
<td class="center">
|
||||
<button class="kg-view layui-btn layui-btn-sm" data-url="{{ show_url }}">详情</button>
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
@ -77,12 +79,12 @@
|
||||
var url = $(this).data('url');
|
||||
layer.open({
|
||||
type: 2,
|
||||
title: '请求内容',
|
||||
resize: false,
|
||||
title: '数据内容',
|
||||
area: ['640px', '360px'],
|
||||
content: [url]
|
||||
content: url
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
</script>
|
||||
|
@ -2,7 +2,9 @@
|
||||
|
||||
{% block content %}
|
||||
|
||||
<pre class="layui-code" id="kg-code"></pre>
|
||||
{% set audit.req_data = audit.req_data ? audit.req_data : '{}' %}
|
||||
|
||||
<pre class="layui-code" id="kg-code">{{ audit.req_data }}</pre>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
@ -11,10 +13,13 @@
|
||||
<script>
|
||||
|
||||
layui.use(['jquery'], function () {
|
||||
|
||||
var $ = layui.jquery;
|
||||
var obj = JSON.parse('{{ audit.req_data }}');
|
||||
var $code = $('#kg-code');
|
||||
var obj = JSON.parse($code.html());
|
||||
var str = JSON.stringify(obj, undefined, 2);
|
||||
$('#kg-code').html(str);
|
||||
|
||||
$code.html(str);
|
||||
});
|
||||
|
||||
</script>
|
||||
|
@ -12,17 +12,14 @@
|
||||
{% endif %}
|
||||
{%- endmacro %}
|
||||
|
||||
{% set add_url = url({'for':'admin.carousel.add'}) %}
|
||||
|
||||
<div class="kg-nav">
|
||||
<div class="kg-nav-left">
|
||||
<span class="layui-breadcrumb">
|
||||
<a><cite>轮播管理</cite></a>
|
||||
</span>
|
||||
</div>
|
||||
<div class="kg-nav-right">
|
||||
<a class="layui-btn layui-btn-sm" href="{{ url({'for':'admin.carousel.add'}) }}">
|
||||
<i class="layui-icon layui-icon-add-1"></i>添加轮播
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<table class="layui-table kg-table layui-form">
|
||||
@ -49,18 +46,23 @@
|
||||
{% set edit_url = url({'for':'admin.carousel.edit','id':item.id}) %}
|
||||
{% set update_url = url({'for':'admin.carousel.update','id':item.id}) %}
|
||||
{% set delete_url = url({'for':'admin.carousel.delete','id':item.id}) %}
|
||||
{% set restore_url = url({'for':'admin.carousel.restore','id':item.id}) %}
|
||||
<tr>
|
||||
<td>{{ item.id }}</td>
|
||||
<td>{{ item.title }}</td>
|
||||
<td>{{ target_info(item.target) }}</td>
|
||||
<td><input class="layui-input kg-priority" type="text" name="priority" title="数值越小排序越靠前" value="{{ item.priority }}" data-url="{{ update_url }}"></td>
|
||||
<td><input type="checkbox" name="published" value="1" lay-filter="published" lay-skin="switch" lay-text="是|否" data-url="{{ update_url }}" {% if item.published == 1 %}checked{% endif %}></td>
|
||||
<td align="center">
|
||||
<td class="center">
|
||||
<div class="layui-dropdown">
|
||||
<button class="layui-btn layui-btn-sm">操作 <span class="layui-icon layui-icon-triangle-d"></span></button>
|
||||
<button class="layui-btn layui-btn-sm"> 操作 <i class="layui-icon layui-icon-triangle-d"></i></button>
|
||||
<ul>
|
||||
<li><a href="{{ edit_url }}">编辑</a></li>
|
||||
{% if item.deleted == 0 %}
|
||||
<li><a href="javascript:" class="kg-delete" data-url="{{ delete_url }}">删除</a></li>
|
||||
{% else %}
|
||||
<li><a href="javascript:" class="kg-restore" data-url="{{ restore_url }}">还原</a></li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
</div>
|
||||
</td>
|
||||
|
@ -2,26 +2,23 @@
|
||||
|
||||
{% block content %}
|
||||
|
||||
{% set add_category_url = url({'for':'admin.category.add'},{'type':type,'parent_id':parent.id}) %}
|
||||
{% set allow_add_category = (type == 'course' and parent.level < 2) or (type == 'help' and parent.level < 1) %}
|
||||
{% set back_url = url({'for':'admin.category.list'}) %}
|
||||
{% set add_url = url({'for':'admin.category.add'},{'type':type,'parent_id':parent.id}) %}
|
||||
{% set allow_add = (type == 'course' and parent.level < 2) or (type == 'help' and parent.level < 1) %}
|
||||
|
||||
<div class="kg-nav">
|
||||
<div class="kg-nav-left">
|
||||
<span class="layui-breadcrumb">
|
||||
{% if parent.id > 0 %}
|
||||
<a class="kg-back" href="{{ url({'for':'admin.category.list'}) }}">
|
||||
<i class="layui-icon layui-icon-return"></i> 返回
|
||||
</a>
|
||||
<a class="kg-back" href="{{ back_url }}"><i class="layui-icon layui-icon-return"></i>返回</a>
|
||||
<a><cite>{{ parent.name }}</cite></a>
|
||||
{% endif %}
|
||||
<a><cite>分类管理</cite></a>
|
||||
</span>
|
||||
</div>
|
||||
<div class="kg-nav-right">
|
||||
{% if allow_add_category %}
|
||||
<a class="layui-btn layui-btn-sm" href="{{ add_category_url }}">
|
||||
<i class="layui-icon layui-icon-add-1"></i>添加分类
|
||||
</a>
|
||||
{% if allow_add %}
|
||||
<a class="layui-btn layui-btn-sm" href="{{ add_url }}"><i class="layui-icon layui-icon-add-1"></i>添加分类</a>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
@ -66,9 +63,9 @@
|
||||
<td><span class="layui-badge layui-bg-gray">{{ item.child_count }}</span></td>
|
||||
<td><input class="layui-input kg-priority" type="text" name="priority" title="数值越小排序越靠前" value="{{ item.priority }}" data-url="{{ update_url }}"></td>
|
||||
<td><input type="checkbox" name="published" value="1" lay-skin="switch" lay-text="是|否" lay-filter="published" data-url="{{ update_url }}" {% if item.published == 1 %}checked{% endif %}></td>
|
||||
<td align="center">
|
||||
<td class="center">
|
||||
<div class="layui-dropdown">
|
||||
<button class="layui-btn layui-btn-sm">操作 <span class="layui-icon layui-icon-triangle-d"></span></button>
|
||||
<button class="layui-btn layui-btn-sm">操作 <i class="layui-icon layui-icon-triangle-d"></i></button>
|
||||
<ul>
|
||||
<li><a href="{{ edit_url }}">编辑</a></li>
|
||||
{% if item.deleted == 0 %}
|
||||
|
@ -9,21 +9,15 @@
|
||||
<div class="kg-nav">
|
||||
<div class="kg-nav-left">
|
||||
<span class="layui-breadcrumb">
|
||||
<a class="kg-back" href="{{ back_url }}">
|
||||
<i class="layui-icon layui-icon-return"></i> 返回
|
||||
</a>
|
||||
<a class="kg-back" href="{{ back_url }}"><i class="layui-icon layui-icon-return"></i>返回</a>
|
||||
<a><cite>{{ course.title }}</cite></a>
|
||||
<a><cite>{{ chapter.title }}</cite></a>
|
||||
<a><cite>课时管理</cite></a>
|
||||
</span>
|
||||
</div>
|
||||
<div class="kg-nav-right">
|
||||
<a class="layui-btn layui-btn-sm" href="{{ add_chapter_url }}">
|
||||
<i class="layui-icon layui-icon-add-1"></i>添加章
|
||||
</a>
|
||||
<a class="layui-btn layui-btn-sm" href="{{ add_lesson_url }}">
|
||||
<i class="layui-icon layui-icon-add-1"></i>添加课
|
||||
</a>
|
||||
<a class="layui-btn layui-btn-sm" href="{{ add_chapter_url }}"><i class="layui-icon layui-icon-add-1"></i>添加章</a>
|
||||
<a class="layui-btn layui-btn-sm" href="{{ add_lesson_url }}"><i class="layui-icon layui-icon-add-1"></i>添加课</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -1,7 +1,3 @@
|
||||
{% extends 'templates/main.volt' %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
{%- macro live_time_info(attrs) %}
|
||||
{% if attrs['start_time'] > 0 %}
|
||||
<p>开始:{{ date('Y-m-d H:i',attrs['start_time']) }}</p>
|
||||
@ -34,22 +30,30 @@
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for item in lessons %}
|
||||
{% set edit_url = url({'for':'admin.chapter.edit','id':item.id}) %}
|
||||
{% set update_url = url({'for':'admin.chapter.update','id':item.id}) %}
|
||||
{% set delete_url = url({'for':'admin.chapter.delete','id':item.id}) %}
|
||||
{% set restore_url = url({'for':'admin.chapter.restore','id':item.id}) %}
|
||||
<tr>
|
||||
<td>{{ item.id }}</td>
|
||||
<td>
|
||||
<span>{{ item.title }}</span>
|
||||
<span><a href="{{ edit_url }}">{{ item.title }}</a></span>
|
||||
<span class="layui-badge layui-bg-green">课</span>
|
||||
</td>
|
||||
<td>{{ live_time_info(item.attrs) }}</td>
|
||||
<td><input class="layui-input kg-priority" type="text" name="priority" title="数值越小排序越靠前" value="{{ item.priority }}" data-url="{{ url({'for':'admin.chapter.update','id':item.id}) }}"></td>
|
||||
<td><input type="checkbox" name="free" value="1" lay-skin="switch" lay-text="是|否" lay-filter="free" data-url="{{ url({'for':'admin.chapter.update','id':item.id}) }}" {% if item.free == 1 %}checked{% endif %}></td>
|
||||
<td><input type="checkbox" name="published" value="1" lay-skin="switch" lay-text="是|否" lay-filter="published" data-url="{{ url({'for':'admin.chapter.update','id':item.id}) }}" {% if item.published == 1 %}checked{% endif %}></td>
|
||||
<td align="center">
|
||||
<td><input class="layui-input kg-priority" type="text" name="priority" title="数值越小排序越靠前" value="{{ item.priority }}" data-url="{{ update_url }}"></td>
|
||||
<td><input type="checkbox" name="free" value="1" lay-skin="switch" lay-text="是|否" lay-filter="free" data-url="{{ update_url }}" {% if item.free == 1 %}checked{% endif %}></td>
|
||||
<td><input type="checkbox" name="published" value="1" lay-skin="switch" lay-text="是|否" lay-filter="published" data-url="{{ update_url }}" {% if item.published == 1 %}checked{% endif %}></td>
|
||||
<td class="center">
|
||||
<div class="layui-dropdown">
|
||||
<button class="layui-btn layui-btn-sm">操作 <span class="layui-icon layui-icon-triangle-d"></span></button>
|
||||
<button class="layui-btn layui-btn-sm">操作 <i class="layui-icon layui-icon-triangle-d"></i></button>
|
||||
<ul>
|
||||
<li><a href="{{ url({'for':'admin.chapter.edit','id':item.id}) }}">编辑</a></li>
|
||||
<li><a href="javascript:" class="kg-delete" data-url="{{ url({'for':'admin.chapter.delete','id':item.id}) }}">删除</a></li>
|
||||
<li><a href="{{ edit_url }}">编辑</a></li>
|
||||
{% if item.deleted == 0 %}
|
||||
<li><a href="javascript:" class="kg-delete" data-url="{{ delete_url }}">删除</a></li>
|
||||
{% else %}
|
||||
<li><a href="javascript:" class="kg-restore" data-url="{{ delete_url }}">还原</a></li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
</div>
|
||||
</td>
|
||||
@ -57,5 +61,3 @@
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
{% endblock %}
|
@ -1,7 +1,3 @@
|
||||
{% extends 'templates/main.volt' %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<table class="layui-table kg-table layui-form">
|
||||
<colgroup>
|
||||
<col>
|
||||
@ -25,22 +21,30 @@
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for item in lessons %}
|
||||
{% set edit_url = url({'for':'admin.chapter.edit','id':item.id}) %}
|
||||
{% set update_url = url({'for':'admin.chapter.update','id':item.id}) %}
|
||||
{% set delete_url = url({'for':'admin.chapter.delete','id':item.id}) %}
|
||||
{% set restore_url = url({'for':'admin.chapter.restore','id':item.id}) %}
|
||||
<tr>
|
||||
<td>{{ item.id }}</td>
|
||||
<td>
|
||||
<span><a href="{{ url({'for':'admin.chapter.edit','id':item.id}) }}">{{ item.title }}</a></span>
|
||||
<span><a href="{{ edit_url }}">{{ item.title }}</a></span>
|
||||
<span class="layui-badge layui-bg-green">课</span>
|
||||
</td>
|
||||
<td><span class="layui-badge layui-bg-gray">{{ item.attrs['word_count'] }}</span></td>
|
||||
<td><input class="layui-input kg-priority" type="text" name="priority" title="数值越小排序越靠前" value="{{ item.priority }}" data-url="{{ url({'for':'admin.chapter.update','id':item.id}) }}"></td>
|
||||
<td><input type="checkbox" name="free" value="1" lay-skin="switch" lay-text="是|否" lay-filter="free" data-url="{{ url({'for':'admin.chapter.update','id':item.id}) }}" {% if item.free == 1 %}checked{% endif %}></td>
|
||||
<td><input type="checkbox" name="published" value="1" lay-skin="switch" lay-text="是|否" lay-filter="published" data-url="{{ url({'for':'admin.chapter.update','id':item.id}) }}" {% if item.published == 1 %}checked{% endif %}></td>
|
||||
<td align="center">
|
||||
<td><input class="layui-input kg-priority" type="text" name="priority" title="数值越小排序越靠前" value="{{ item.priority }}" data-url="{{ update_url }}"></td>
|
||||
<td><input type="checkbox" name="free" value="1" lay-skin="switch" lay-text="是|否" lay-filter="free" data-url="{{ update_url }}" {% if item.free == 1 %}checked{% endif %}></td>
|
||||
<td><input type="checkbox" name="published" value="1" lay-skin="switch" lay-text="是|否" lay-filter="published" data-url="{{ update_url }}" {% if item.published == 1 %}checked{% endif %}></td>
|
||||
<td class="center">
|
||||
<div class="layui-dropdown">
|
||||
<button class="layui-btn layui-btn-sm">操作 <span class="layui-icon layui-icon-triangle-d"></span></button>
|
||||
<button class="layui-btn layui-btn-sm">操作 <i class="layui-icon layui-icon-triangle-d"></i></button>
|
||||
<ul>
|
||||
<li><a href="{{ url({'for':'admin.chapter.edit','id':item.id}) }}">编辑</a></li>
|
||||
<li><a href="javascript:" class="kg-delete" data-url="{{ url({'for':'admin.chapter.delete','id':item.id}) }}">删除</a></li>
|
||||
<li><a href="{{ edit_url }}">编辑</a></li>
|
||||
{% if item.deleted == 0 %}
|
||||
<li><a href="javascript:" class="kg-delete" data-url="{{ delete_url }}">删除</a></li>
|
||||
{% else %}
|
||||
<li><a href="javascript:" class="kg-restore" data-url="{{ restore_url }}">还原</a></li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
</div>
|
||||
</td>
|
||||
@ -48,5 +52,3 @@
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
{% endblock %}
|
@ -1,7 +1,3 @@
|
||||
{% extends 'templates/main.volt' %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
{%- macro file_status(value) %}
|
||||
{% if value == 'pending' %}
|
||||
<span class="layui-badge layui-bg-gray">待上传</span>
|
||||
@ -41,23 +37,31 @@
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for item in lessons %}
|
||||
{% set edit_url = url({'for':'admin.chapter.edit','id':item.id}) %}
|
||||
{% set update_url = url({'for':'admin.chapter.update','id':item.id}) %}
|
||||
{% set delete_url = url({'for':'admin.chapter.delete','id':item.id}) %}
|
||||
{% set restore_url = url({'for':'admin.chapter.restore','id':item.id}) %}
|
||||
<tr>
|
||||
<td>{{ item.id }}</td>
|
||||
<td>
|
||||
<span><a href="{{ url({'for':'admin.chapter.edit','id':item.id}) }}">{{ item.title }}</a></span>
|
||||
<span><a href="{{ edit_url }}">{{ item.title }}</a></span>
|
||||
<span class="layui-badge layui-bg-green">课</span>
|
||||
</td>
|
||||
<td>{{ file_status(item.attrs['file_status']) }}</td>
|
||||
<td>{{ item.attrs['duration']|duration }}</td>
|
||||
<td><input class="layui-input kg-priority" type="text" name="priority" title="数值越小排序越靠前" value="{{ item.priority }}" data-url="{{ url({'for':'admin.chapter.update','id':item.id}) }}"></td>
|
||||
<td><input type="checkbox" name="free" value="1" lay-skin="switch" lay-text="是|否" lay-filter="free" data-url="{{ url({'for':'admin.chapter.update','id':item.id}) }}" {% if item.free == 1 %}checked{% endif %}></td>
|
||||
<td><input type="checkbox" name="published" value="1" lay-skin="switch" lay-text="是|否" lay-filter="published" data-url="{{ url({'for':'admin.chapter.update','id':item.id}) }}" {% if item.published == 1 %}checked{% endif %}></td>
|
||||
<td align="center">
|
||||
<td><input class="layui-input kg-priority" type="text" name="priority" title="数值越小排序越靠前" value="{{ item.priority }}" data-url="{{ update_url }}"></td>
|
||||
<td><input type="checkbox" name="free" value="1" lay-skin="switch" lay-text="是|否" lay-filter="free" data-url="{{ update_url }}" {% if item.free == 1 %}checked{% endif %}></td>
|
||||
<td><input type="checkbox" name="published" value="1" lay-skin="switch" lay-text="是|否" lay-filter="published" data-url="{{ update_url }}" {% if item.published == 1 %}checked{% endif %}></td>
|
||||
<td class="center">
|
||||
<div class="layui-dropdown">
|
||||
<button class="layui-btn layui-btn-sm">操作 <span class="layui-icon layui-icon-triangle-d"></span></button>
|
||||
<button class="layui-btn layui-btn-sm">操作 <i class="layui-icon layui-icon-triangle-d"></i></button>
|
||||
<ul>
|
||||
<li><a href="{{ url({'for':'admin.chapter.edit','id':item.id}) }}">编辑</a></li>
|
||||
<li><a href="javascript:" class="kg-delete" data-url="{{ url({'for':'admin.chapter.delete','id':item.id}) }}">删除</a></li>
|
||||
<li><a href="{{ edit_url }}">编辑</a></li>
|
||||
{% if item.deleted == 0 %}
|
||||
<li><a href="javascript:" class="kg-delete" data-url="{{ delete_url }}">删除</a></li>
|
||||
{% else %}
|
||||
<li><a href="javascript:" class="kg-restore" data-url="{{ restore_url }}">还原</a></li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
</div>
|
||||
</td>
|
||||
@ -65,5 +69,3 @@
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
{% endblock %}
|
@ -18,11 +18,6 @@
|
||||
<a><cite>咨询管理</cite></a>
|
||||
</span>
|
||||
</div>
|
||||
<div class="kg-nav-right">
|
||||
<a class="layui-btn layui-btn-sm" href="{{ url({'for':'admin.consult.search'}) }}">
|
||||
<i class="layui-icon layui-icon-search"></i>搜索咨询
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<table class="layui-table kg-table layui-form">
|
||||
@ -63,9 +58,9 @@
|
||||
</td>
|
||||
<td>{{ date('Y-m-d H:i:s',item.create_time) }}</td>
|
||||
<td><input type="checkbox" name="published" value="1" lay-skin="switch" lay-text="是|否" lay-filter="published" data-url="{{ update_url }}" {% if item.published == 1 %}checked{% endif %}></td>
|
||||
<td align="center">
|
||||
<td class="center">
|
||||
<div class="layui-dropdown">
|
||||
<button class="layui-btn layui-btn-sm">操作 <span class="layui-icon layui-icon-triangle-d"></span>
|
||||
<button class="layui-btn layui-btn-sm">操作 <i class="layui-icon layui-icon-triangle-d"></i>
|
||||
</button>
|
||||
<ul>
|
||||
<li><a href="{{ edit_url }}">编辑</a></li>
|
||||
|
@ -2,17 +2,21 @@
|
||||
|
||||
{% block content %}
|
||||
|
||||
{% set back_url = url({'for':'admin.course.list'}) %}
|
||||
{% set add_chapter_url = url({'for':'admin.chapter.add'},{'course_id':course.id,'type':'chapter'}) %}
|
||||
{% set add_lesson_url = url({'for':'admin.chapter.add'},{'course_id':course.id,'type':'lesson'}) %}
|
||||
|
||||
<div class="kg-nav">
|
||||
<div class="kg-nav-left">
|
||||
<span class="layui-breadcrumb">
|
||||
<a class="kg-back" href="{{ url({'for':'admin.course.list'}) }}"><i class="layui-icon layui-icon-return"></i> 返回</a>
|
||||
<a class="kg-back" href="{{ back_url }}"><i class="layui-icon layui-icon-return"></i>返回</a>
|
||||
<a><cite>{{ course.title }}</cite></a>
|
||||
<a><cite>章节管理</cite></a>
|
||||
</span>
|
||||
</div>
|
||||
<div class="kg-nav-right">
|
||||
<a class="layui-btn layui-btn-sm" href="{{ url({'for':'admin.chapter.add'},{'course_id':course.id,'type':'chapter'}) }}"><i class="layui-icon layui-icon-add-1"></i>添加章</a>
|
||||
<a class="layui-btn layui-btn-sm" href="{{ url({'for':'admin.chapter.add'},{'course_id':course.id,'type':'lesson'}) }}"><i class="layui-icon layui-icon-add-1"></i>添加课</a>
|
||||
<a class="layui-btn layui-btn-sm" href="{{ add_chapter_url }}"><i class="layui-icon layui-icon-add-1"></i>添加章</a>
|
||||
<a class="layui-btn layui-btn-sm" href="{{ add_lesson_url }}"><i class="layui-icon layui-icon-add-1"></i>添加课</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -35,24 +39,33 @@
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for item in chapters %}
|
||||
{% set child_url = url({'for':'admin.chapter.lessons','id':item.id}) %}
|
||||
{% set edit_url = url({'for':'admin.chapter.edit','id':item.id}) %}
|
||||
{% set update_url = url({'for':'admin.chapter.update','id':item.id}) %}
|
||||
{% set delete_url = url({'for':'admin.chapter.delete','id':item.id}) %}
|
||||
{% set restore_url = url({'for':'admin.chapter.restore','id':item.id}) %}
|
||||
<tr>
|
||||
<td>{{ item.id }}</td>
|
||||
<td>
|
||||
<span><a href="{{ url({'for':'admin.chapter.lessons','id':item.id}) }}">{{ item.title }}</a></span>
|
||||
<a href="{{ child_url }}">{{ item.title }}</a>
|
||||
<span class="layui-badge layui-bg-green">章</span>
|
||||
</td>
|
||||
<td>
|
||||
<a href="{{ url({'for':'admin.chapter.lessons','id':item.id}) }}">
|
||||
<a href="{{ child_url }}">
|
||||
<span class="layui-badge layui-bg-green">{{ item.lesson_count }}</span>
|
||||
</a>
|
||||
</td>
|
||||
<td><input class="layui-input kg-priority" type="text" name="priority" value="{{ item.priority }}" data-url="{{ url({'for':'admin.chapter.update','id':item.id}) }}"></td>
|
||||
<td align="center">
|
||||
<td><input class="layui-input kg-priority" type="text" name="priority" value="{{ item.priority }}" data-url="{{ update_url }}"></td>
|
||||
<td class="center">
|
||||
<div class="layui-dropdown">
|
||||
<button class="layui-btn layui-btn-sm">操作 <span class="layui-icon layui-icon-triangle-d"></span></button>
|
||||
<button class="layui-btn layui-btn-sm">操作 <i class="layui-icon layui-icon-triangle-d"></i></button>
|
||||
<ul>
|
||||
<li><a href="{{ url({'for':'admin.chapter.edit','id':item.id}) }}">编辑</a></li>
|
||||
<li><a href="javascript:" class="kg-delete" data-url="{{ url({'for':'admin.chapter.delete','id':item.id}) }}">删除</a></li>
|
||||
<li><a href="{{ edit_url }}">编辑</a></li>
|
||||
{% if item.deleted == 0 %}
|
||||
<li><a href="javascript:" class="kg-delete" data-url="{{ delete_url }}">删除</a></li>
|
||||
{% else %}
|
||||
<li><a href="javascript:" class="kg-restore" data-url="{{ restore_url }}">还原</a></li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
</div>
|
||||
</td>
|
||||
|
@ -46,14 +46,6 @@
|
||||
<a><cite>课程管理</cite></a>
|
||||
</span>
|
||||
</div>
|
||||
<div class="kg-nav-right">
|
||||
<a class="layui-btn layui-btn-sm" href="{{ url({'for':'admin.course.search'}) }}">
|
||||
<i class="layui-icon layui-icon-search"></i>搜索课程
|
||||
</a>
|
||||
<a class="layui-btn layui-btn-sm" href="{{ url({'for':'admin.course.add'}) }}">
|
||||
<i class="layui-icon layui-icon-add-1"></i>添加课程
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<table class="layui-table kg-table layui-form">
|
||||
@ -105,9 +97,9 @@
|
||||
<p>会员:{{ '¥%0.2f'|format(item.vip_price) }}</p>
|
||||
</td>
|
||||
<td><input type="checkbox" name="published" value="1" lay-skin="switch" lay-text="是|否" lay-filter="published" data-url="{{ update_url }}" {% if item.published == 1 %}checked{% endif %}></td>
|
||||
<td align="center">
|
||||
<td class="center">
|
||||
<div class="layui-dropdown">
|
||||
<button class="layui-btn layui-btn-sm">操作 <span class="layui-icon layui-icon-triangle-d"></span></button>
|
||||
<button class="layui-btn layui-btn-sm">操作 <i class="layui-icon layui-icon-triangle-d"></i></button>
|
||||
<ul>
|
||||
<li><a href="{{ edit_url }}">编辑课程</a></li>
|
||||
{% if item.deleted == 0 %}
|
||||
|
@ -8,11 +8,6 @@
|
||||
<a><cite>帮助管理</cite></a>
|
||||
</span>
|
||||
</div>
|
||||
<div class="kg-nav-right">
|
||||
<a class="layui-btn layui-btn-sm" href="{{ url({'for':'admin.help.add'}) }}">
|
||||
<i class="layui-icon layui-icon-add-1"></i>添加帮助
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<table class="kg-table layui-table layui-form">
|
||||
@ -45,14 +40,18 @@
|
||||
<td>{{ item.id }}</td>
|
||||
<td>{{ item.title }}</td>
|
||||
<td><a href="{{ list_url }}">{{ item.category.name }}</a></td>
|
||||
<td align="center"><input class="layui-input kg-priority" type="text" name="priority" title="数值越小排序越靠前" value="{{ item.priority }}" data-url="{{ update_url }}"></td>
|
||||
<td align="center"><input type="checkbox" name="published" value="1" lay-skin="switch" lay-text="是|否" lay-filter="published" data-url="{{ update_url }}" {% if item.published == 1 %}checked{% endif %}></td>
|
||||
<td align="center">
|
||||
<td class="center"><input class="layui-input kg-priority" type="text" name="priority" title="数值越小排序越靠前" value="{{ item.priority }}" data-url="{{ update_url }}"></td>
|
||||
<td class="center"><input type="checkbox" name="published" value="1" lay-skin="switch" lay-text="是|否" lay-filter="published" data-url="{{ update_url }}" {% if item.published == 1 %}checked{% endif %}></td>
|
||||
<td class="center">
|
||||
<div class="layui-dropdown">
|
||||
<button class="layui-btn layui-btn-sm">操作 <span class="layui-icon layui-icon-triangle-d"></span></button>
|
||||
<button class="layui-btn layui-btn-sm">操作 <i class="layui-icon layui-icon-triangle-d"></i></button>
|
||||
<ul>
|
||||
<li><a href="{{ edit_url }}">编辑</a></li>
|
||||
{% if item.deleted == 0 %}
|
||||
<li><a href="javascript:" class="kg-delete" data-url="{{ delete_url }}">删除</a></li>
|
||||
{% else %}
|
||||
<li><a href="javascript:" class="kg-restore" data-url="{{ restore_url }}">还原</a></li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
</div>
|
||||
</td>
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
{% block content %}
|
||||
|
||||
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.group.create'}) }}">
|
||||
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.im_group.create'}) }}">
|
||||
<fieldset class="layui-elem-field layui-field-title">
|
||||
<legend>添加群组</legend>
|
||||
</fieldset>
|
@ -2,7 +2,7 @@
|
||||
|
||||
{% block content %}
|
||||
|
||||
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.group.update','id':group.id}) }}">
|
||||
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.im_group.update','id':group.id}) }}">
|
||||
<fieldset class="layui-elem-field layui-field-title">
|
||||
<legend>编辑群组</legend>
|
||||
</fieldset>
|
@ -24,11 +24,6 @@
|
||||
<a><cite>群组管理</cite></a>
|
||||
</span>
|
||||
</div>
|
||||
<div class="kg-nav-right">
|
||||
<a class="layui-btn layui-btn-sm" href="{{ url({'for':'admin.group.add'}) }}">
|
||||
<i class="layui-icon layui-icon-add-1"></i>添加群组
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<table class="kg-table layui-table layui-form">
|
||||
@ -52,21 +47,26 @@
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for item in pager.items %}
|
||||
{% set edit_url = url({'for':'admin.group.edit','id':item.id}) %}
|
||||
{% set update_url = url({'for':'admin.group.update','id':item.id}) %}
|
||||
{% set delete_url = url({'for':'admin.group.delete','id':item.id}) %}
|
||||
{% set edit_url = url({'for':'admin.im_group.edit','id':item.id}) %}
|
||||
{% set update_url = url({'for':'admin.im_group.update','id':item.id}) %}
|
||||
{% set delete_url = url({'for':'admin.im_group.delete','id':item.id}) %}
|
||||
{% set restore_url = url({'for':'admin.im_group.restore','id':item.id}) %}
|
||||
<tr>
|
||||
<td>{{ item.id }}</td>
|
||||
<td>{{ item.name }} {{ type_info(item.type) }}</td>
|
||||
<td>{{ owner_info(item.owner) }}</td>
|
||||
<td><span class="layui-badge layui-bg-gray">{{ item.user_count }}</span></td>
|
||||
<td><input type="checkbox" name="published" value="1" lay-filter="published" lay-skin="switch" lay-text="是|否" data-url="{{ update_url }}" {% if item.published == 1 %}checked{% endif %}></td>
|
||||
<td align="center">
|
||||
<td class="center">
|
||||
<div class="layui-dropdown">
|
||||
<button class="layui-btn layui-btn-sm">操作 <span class="layui-icon layui-icon-triangle-d"></span></button>
|
||||
<button class="layui-btn layui-btn-sm">操作 <i class="layui-icon layui-icon-triangle-d"></i></button>
|
||||
<ul>
|
||||
<li><a href="{{ edit_url }}">编辑</a></li>
|
||||
{% if item.deleted == 0 %}
|
||||
<li><a href="javascript:" class="kg-delete" data-url="{{ delete_url }}">删除</a></li>
|
||||
{% else %}
|
||||
<li><a href="javascript:" class="kg-restore" data-url="{{ restore_url }}">还原</a></li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
</div>
|
||||
</td>
|
@ -2,7 +2,7 @@
|
||||
|
||||
{% block content %}
|
||||
|
||||
<form class="layui-form kg-form" method="GET" action="{{ url({'for':'admin.group.list'}) }}">
|
||||
<form class="layui-form kg-form" method="GET" action="{{ url({'for':'admin.im_group.list'}) }}">
|
||||
<fieldset class="layui-elem-field layui-field-title">
|
||||
<legend>搜索群组</legend>
|
||||
</fieldset>
|
@ -19,7 +19,7 @@
|
||||
{%- endmacro %}
|
||||
|
||||
{% set back_url = url({'for':'admin.nav.list'}) %}
|
||||
{% set add_nav_url = url({'for':'admin.nav.add'},{'parent_id':parent.id}) %}
|
||||
{% set add_url = url({'for':'admin.nav.add'},{'parent_id':parent.id}) %}
|
||||
|
||||
<div class="kg-nav">
|
||||
<div class="kg-nav-left">
|
||||
@ -34,9 +34,7 @@
|
||||
</span>
|
||||
</div>
|
||||
<div class="kg-nav-right">
|
||||
<a class="layui-btn layui-btn-sm" href="{{ add_nav_url }}">
|
||||
<i class="layui-icon layui-icon-add-1"></i>添加导航
|
||||
</a>
|
||||
<a class="layui-btn layui-btn-sm" href="{{ add_url }}"><i class="layui-icon layui-icon-add-1"></i>添加导航</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -85,7 +83,7 @@
|
||||
<td>{{ target_info(item.target) }}</td>
|
||||
<td><input class="layui-input kg-priority" type="text" name="priority" title="数值越小排序越靠前" value="{{ item.priority }}" data-url="{{ update_url }}"></td>
|
||||
<td><input type="checkbox" name="published" value="1" lay-skin="switch" lay-text="是|否" lay-filter="published" data-url="{{ update_url }}" {% if item.published == 1 %}checked{% endif %}></td>
|
||||
<td align="center">
|
||||
<td class="center">
|
||||
<div class="layui-dropdown">
|
||||
<button class="layui-btn layui-btn-sm">操作 <span class="layui-icon layui-icon-triangle-d"></span></button>
|
||||
<ul>
|
||||
|
@ -4,19 +4,12 @@
|
||||
|
||||
{{ partial('order/macro') }}
|
||||
|
||||
{% set search_url = url({'for':'admin.order.search'}) %}
|
||||
|
||||
<div class="kg-nav">
|
||||
<div class="kg-nav-left">
|
||||
<span class="layui-breadcrumb">
|
||||
<a><cite>订单管理</cite></a>
|
||||
</span>
|
||||
</div>
|
||||
<div class="kg-nav-right">
|
||||
<a class="layui-btn layui-btn-sm" href="{{ search_url }}">
|
||||
<i class="layui-icon layui-icon-search"></i>搜索订单
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<table class="layui-table kg-table">
|
||||
@ -53,8 +46,8 @@
|
||||
<td>{{ '¥%0.2f'|format(item.amount) }}</td>
|
||||
<td>{{ order_status(item.status) }}</td>
|
||||
<td>{{ date('Y-m-d H:i:s',item.create_time) }}</td>
|
||||
<td align="center">
|
||||
<a class="layui-btn layui-btn-sm layui-bg-green" href="{{ show_url }}">详情</a>
|
||||
<td class="center">
|
||||
<a class="layui-btn layui-btn-sm" href="{{ show_url }}">详情</a>
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
|
@ -2,19 +2,12 @@
|
||||
|
||||
{% block content %}
|
||||
|
||||
{% set add_pkg_url = url({'for':'admin.package.add'}) %}
|
||||
|
||||
<div class="kg-nav">
|
||||
<div class="kg-nav-left">
|
||||
<span class="layui-breadcrumb">
|
||||
<a><cite>套餐管理</cite></a>
|
||||
</span>
|
||||
</div>
|
||||
<div class="kg-nav-right">
|
||||
<a class="layui-btn layui-btn-sm" href="{{ add_pkg_url }}">
|
||||
<i class="layui-icon layui-icon-add-1"></i>添加套餐
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<table class="layui-table kg-table layui-form">
|
||||
@ -43,6 +36,7 @@
|
||||
{% set edit_url = url({'for':'admin.package.edit','id':item.id}) %}
|
||||
{% set update_url = url({'for':'admin.package.update','id':item.id}) %}
|
||||
{% set delete_url = url({'for':'admin.package.delete','id':item.id}) %}
|
||||
{% set restore_url = url({'for':'admin.package.restore','id':item.id}) %}
|
||||
<tr>
|
||||
<td>{{ item.id }}</td>
|
||||
<td><a href="{{ edit_url }}">{{ item.title }}</a></td>
|
||||
@ -50,12 +44,16 @@
|
||||
<td>{{ '¥%0.2f'|format(item.market_price) }}</td>
|
||||
<td>{{ '¥%0.2f'|format(item.vip_price) }}</td>
|
||||
<td><input type="checkbox" name="published" value="1" lay-skin="switch" lay-text="是|否" lay-filter="published" data-url="{{ update_url }}" {% if item.published == 1 %}checked{% endif %}></td>
|
||||
<td align="center">
|
||||
<td class="center">
|
||||
<div class="layui-dropdown">
|
||||
<button class="layui-btn layui-btn-sm">操作 <span class="layui-icon layui-icon-triangle-d"></span></button>
|
||||
<button class="layui-btn layui-btn-sm">操作 <i class="layui-icon layui-icon-triangle-d"></i></button>
|
||||
<ul>
|
||||
<li><a href="{{ edit_url }}">编辑</a></li>
|
||||
{% if item.deleted == 0 %}
|
||||
<li><a href="javascript:" class="kg-delete" data-url="{{ delete_url }}">删除</a></li>
|
||||
{% else %}
|
||||
<li><a href="javascript:" class="kg-restore" data-url="{{ restore_url }}">还原</a></li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
</div>
|
||||
</td>
|
||||
|
@ -2,19 +2,12 @@
|
||||
|
||||
{% block content %}
|
||||
|
||||
{% set add_page_url = url({'for':'admin.page.add'}) %}
|
||||
|
||||
<div class="kg-nav">
|
||||
<div class="kg-nav-left">
|
||||
<span class="layui-breadcrumb">
|
||||
<a><cite>单页管理</cite></a>
|
||||
</span>
|
||||
</div>
|
||||
<div class="kg-nav-right">
|
||||
<a class="layui-btn layui-btn-sm" href="{{ add_page_url }}">
|
||||
<i class="layui-icon layui-icon-add-1"></i>添加单页
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<table class="layui-table kg-table layui-form">
|
||||
@ -49,12 +42,16 @@
|
||||
<td>{{ date('Y-m-d H:i',item.update_time) }}</td>
|
||||
<td><input type="checkbox" name="published" value="1" lay-skin="switch" lay-text="是|否" lay-filter="published" data-url="{{ update_url }}" {% if item.published == 1 %}checked{% endif %}>
|
||||
</td>
|
||||
<td align="center">
|
||||
<td class="center">
|
||||
<div class="layui-dropdown">
|
||||
<button class="layui-btn layui-btn-sm">操作 <span class="layui-icon layui-icon-triangle-d"></span></button>
|
||||
<button class="layui-btn layui-btn-sm">操作 <i class="layui-icon layui-icon-triangle-d"></i></button>
|
||||
<ul>
|
||||
<li><a href="{{ edit_url }}">编辑</a></li>
|
||||
{% if item.deleted == 0 %}
|
||||
<li><a href="javascript:" class="kg-delete" data-url="{{ delete_url }}">删除</a></li>
|
||||
{% else %}
|
||||
<li><a href="javascript:" class="kg-restore" data-url="{{ restore_url }}">还原</a></li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
</div>
|
||||
</td>
|
||||
|
@ -19,6 +19,6 @@
|
||||
|
||||
{% block link_css %}
|
||||
|
||||
{{ css_link("admin/css/error.css") }}
|
||||
{{ css_link("web/css/error.css") }}
|
||||
|
||||
{% endblock %}
|
@ -4,19 +4,12 @@
|
||||
|
||||
{{ partial('refund/macro') }}
|
||||
|
||||
{% set search_refund_url = url({'for':'admin.refund.search'}) %}
|
||||
|
||||
<div class="kg-nav">
|
||||
<div class="kg-nav-left">
|
||||
<span class="layui-breadcrumb">
|
||||
<a><cite>退款管理</cite></a>
|
||||
</span>
|
||||
</div>
|
||||
<div class="kg-nav-right">
|
||||
<a class="layui-btn layui-btn-sm" href="{{ search_refund_url }}">
|
||||
<i class="layui-icon layui-icon-search"></i>搜索退款
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<table class="layui-table kg-table">
|
||||
@ -53,8 +46,8 @@
|
||||
<td>{{ '¥%0.2f'|format(item.amount) }}</td>
|
||||
<td>{{ refund_status(item.status) }}</td>
|
||||
<td>{{ date('Y-m-d H:i:s',item.create_time) }}</td>
|
||||
<td align="center">
|
||||
<a class="layui-btn layui-btn-sm layui-bg-green" href="{{ show_url }}">详情</a>
|
||||
<td class="center">
|
||||
<a class="layui-btn layui-btn-sm" href="{{ show_url }}">详情</a>
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
|
@ -2,8 +2,6 @@
|
||||
|
||||
{% block content %}
|
||||
|
||||
{% set search_review_url = url({'for':'admin.review.search'}) %}
|
||||
|
||||
<div class="kg-nav">
|
||||
<div class="kg-nav-left">
|
||||
<span class="layui-breadcrumb">
|
||||
@ -14,11 +12,6 @@
|
||||
<a><cite>评价管理</cite></a>
|
||||
</span>
|
||||
</div>
|
||||
<div class="kg-nav-right">
|
||||
<a class="layui-btn layui-btn-sm" href="{{ search_review_url }}">
|
||||
<i class="layui-icon layui-icon-search"></i>搜索评价
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<table class="layui-table kg-table layui-form">
|
||||
@ -62,9 +55,9 @@
|
||||
<p>编号:{{ item.owner.id }}</p>
|
||||
</td>
|
||||
<td><input type="checkbox" name="published" value="1" lay-skin="switch" lay-text="是|否" lay-filter="published" data-url="{{ update_url }}" {% if item.published == 1 %}checked{% endif %}></td>
|
||||
<td align="center">
|
||||
<td class="center">
|
||||
<div class="layui-dropdown">
|
||||
<button class="layui-btn layui-btn-sm">操作 <span class="layui-icon layui-icon-triangle-d"></span></button>
|
||||
<button class="layui-btn layui-btn-sm">操作 <i class="layui-icon layui-icon-triangle-d"></i></button>
|
||||
<ul>
|
||||
<li><a href="{{ edit_url }}">编辑</a></li>
|
||||
{% if item.deleted == 0 %}
|
||||
|
@ -10,19 +10,12 @@
|
||||
{% endif %}
|
||||
{%- endmacro %}
|
||||
|
||||
{% set add_role_url = url({'for':'admin.role.add'}) %}
|
||||
|
||||
<div class="kg-nav">
|
||||
<div class="kg-nav-left">
|
||||
<span class="layui-breadcrumb">
|
||||
<a><cite>角色管理</cite></a>
|
||||
</span>
|
||||
</div>
|
||||
<div class="kg-nav-right">
|
||||
<a class="layui-btn layui-btn-sm" href="{{ add_role_url }}">
|
||||
<i class="layui-icon layui-icon-add-1"></i>添加角色
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<table class="layui-table kg-table">
|
||||
@ -47,6 +40,7 @@
|
||||
{% set user_list_url = url({'for':'admin.user.list'},{'admin_role':item.id}) %}
|
||||
{% set edit_url = url({'for':'admin.role.edit','id':item.id}) %}
|
||||
{% set delete_url = url({'for':'admin.role.delete','id':item.id}) %}
|
||||
{% set restore_url = url({'for':'admin.role.restore','id':item.id}) %}
|
||||
<tr>
|
||||
<td>{{ item.id }}</td>
|
||||
<td><a href="javascript:" title="{{ item.summary }}">{{ item.name }}</a></td>
|
||||
@ -56,12 +50,16 @@
|
||||
<span class="layui-badge layui-bg-green">{{ item.user_count }}</span>
|
||||
</a>
|
||||
</td>
|
||||
<td align="center">
|
||||
<td class="center">
|
||||
<div class="layui-dropdown">
|
||||
<button class="layui-btn layui-btn-sm">操作 <span class="layui-icon layui-icon-triangle-d"></span></button>
|
||||
<button class="layui-btn layui-btn-sm">操作 <i class="layui-icon layui-icon-triangle-d"></i></button>
|
||||
<ul>
|
||||
<li><a href="{{ edit_url }}">编辑</a></li>
|
||||
{% if item.deleted == 0 %}
|
||||
<li><a href="javascript:" class="kg-delete" data-url="{{ delete_url }}">删除</a></li>
|
||||
{% else %}
|
||||
<li><a href="javascript:" class="kg-restore" data-url="{{ restore_url }}">还原</a></li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
</div>
|
||||
</td>
|
||||
|
@ -22,20 +22,6 @@
|
||||
<a><cite>学员管理</cite></a>
|
||||
</span>
|
||||
</div>
|
||||
<div class="kg-nav-right">
|
||||
<a class="layui-btn layui-btn-sm" href="{{ url({'for':'admin.student.search'}) }}">
|
||||
<i class="layui-icon layui-icon-search"></i>搜索学员
|
||||
</a>
|
||||
{% if course %}
|
||||
<a class="layui-btn layui-btn-sm" href="{{ url({'for':'admin.student.add'},{'course_id':course.id}) }}">
|
||||
<i class="layui-icon layui-icon-add-1"></i>添加学员
|
||||
</a>
|
||||
{% else %}
|
||||
<a class="layui-btn layui-btn-sm" href="{{ url({'for':'admin.student.add'}) }}">
|
||||
<i class="layui-icon layui-icon-add-1"></i>添加学员
|
||||
</a>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<table class="layui-table kg-table">
|
||||
@ -58,13 +44,16 @@
|
||||
<tbody>
|
||||
{% for item in pager.items %}
|
||||
{% set learning_url = url({'for':'admin.student.learning'},{'course_id':item.course_id,'user_id':item.user_id,'plan_id':item.plan_id}) %}
|
||||
{% set list_by_course_url = url({'for':'admin.student.list'},{'course_id':item.course.id}) %}
|
||||
{% set list_by_user_url = url({'for':'admin.student.list'},{'user_id':item.user_id}) %}
|
||||
{% set edit_url = url({'for':'admin.student.edit'},{'relation_id':item.id}) %}
|
||||
<tr>
|
||||
<td>
|
||||
<p>课程:<a href="{{ url({'for':'admin.student.list'},{'course_id':item.course.id}) }}">{{ item.course.title }}({{ item.course.id }})</a></p>
|
||||
<p>学员:<a href="{{ url({'for':'admin.student.list'},{'user_id':item.user_id}) }}">{{ item.user.name }}({{ item.user.id }})</a></p>
|
||||
<p>课程:<a href="{{ list_by_course_url }}">{{ item.course.title }}({{ item.course.id }})</a></p>
|
||||
<p>学员:<a href="{{ list_by_user_url }}">{{ item.user.name }}({{ item.user.id }})</a></p>
|
||||
</td>
|
||||
<td>
|
||||
<p>进度:{{ item.progress }}%</p>
|
||||
<p>进度:<a href="javascript:" class="kg-learning" title="学习记录" data-url="{{ learning_url }}">{{ item.progress }}%</a></p>
|
||||
<p>时长:{{ item.duration|duration }}</p>
|
||||
</td>
|
||||
<td>{{ source_type_info(item.source_type) }}</td>
|
||||
@ -72,11 +61,11 @@
|
||||
<p>开始:{{ date('Y-m-d H:i:s',item.create_time) }}</p>
|
||||
<p>结束:{{ date('Y-m-d H:i:s',item.expiry_time) }}</p>
|
||||
</td>
|
||||
<td align="center">
|
||||
<td class="center">
|
||||
<div class="layui-dropdown">
|
||||
<button class="layui-btn layui-btn-sm">操作 <span class="layui-icon layui-icon-triangle-d"></span></button>
|
||||
<button class="layui-btn layui-btn-sm">操作 <i class="layui-icon layui-icon-triangle-d"></i></button>
|
||||
<ul>
|
||||
<li><a href="{{ url({'for':'admin.student.edit'},{'relation_id':item.id}) }}">编辑学员</a></li>
|
||||
<li><a href="{{ edit_url }}">编辑学员</a></li>
|
||||
<li><a href="javascript:" class="kg-learning" data-url="{{ learning_url }}">学习记录</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
@ -8,11 +8,6 @@
|
||||
<a><cite>话题管理</cite></a>
|
||||
</span>
|
||||
</div>
|
||||
<div class="kg-nav-right">
|
||||
<a class="layui-btn layui-btn-sm" href="{{ url({'for':'admin.topic.add'}) }}">
|
||||
<i class="layui-icon layui-icon-add-1"></i>添加话题
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<table class="layui-table kg-table layui-form">
|
||||
@ -38,19 +33,27 @@
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for item in pager.items %}
|
||||
{% set edit_url = url({'for':'admin.topic.edit','id':item.id}) %}
|
||||
{% set update_url = url({'for':'admin.topic.update','id':item.id}) %}
|
||||
{% set delete_url = url({'for':'admin.topic.delete','id':item.id}) %}
|
||||
{% set restore_url = url({'for':'admin.topic.restore','id':item.id}) %}
|
||||
<tr>
|
||||
<td>{{ item.id }}</td>
|
||||
<td><a href="{{ url({'for':'admin.topic.edit','id':item.id}) }}">{{ item.title }}</a></td>
|
||||
<td><a href="{{ edit_url }}">{{ item.title }}</a></td>
|
||||
<td><span class="layui-badge layui-bg-gray">{{ item.course_count }}</span></td>
|
||||
<td>{{ date('Y-m-d H:i',item.create_time) }}</td>
|
||||
<td>{{ date('Y-m-d H:i',item.update_time) }}</td>
|
||||
<td><input type="checkbox" name="published" value="1" lay-skin="switch" lay-text="是|否" lay-filter="published" data-url="{{ url({'for':'admin.topic.update','id':item.id}) }}" {% if item.published == 1 %}checked{% endif %}></td>
|
||||
<td align="center">
|
||||
<td><input type="checkbox" name="published" value="1" lay-skin="switch" lay-text="是|否" lay-filter="published" data-url="{{ update_url }}" {% if item.published == 1 %}checked{% endif %}></td>
|
||||
<td class="center">
|
||||
<div class="layui-dropdown">
|
||||
<button class="layui-btn layui-btn-sm">操作 <span class="layui-icon layui-icon-triangle-d"></span></button>
|
||||
<button class="layui-btn layui-btn-sm">操作 <i class="layui-icon layui-icon-triangle-d"></i></button>
|
||||
<ul>
|
||||
<li><a href="{{ url({'for':'admin.topic.edit','id':item.id}) }}">编辑</a></li>
|
||||
<li><a href="javascript:" class="kg-delete" data-url="{{ url({'for':'admin.topic.delete','id':item.id}) }}">删除</a></li>
|
||||
<li><a href="{{ edit_url }}">编辑</a></li>
|
||||
{% if item.deleted == 0 %}
|
||||
<li><a href="javascript:" class="kg-delete" data-url="{{ delete_url }}">删除</a></li>
|
||||
{% else %}
|
||||
<li><a href="javascript:" class="kg-restore" data-url="{{ restore_url }}">还原</a></li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
</div>
|
||||
</td>
|
||||
|
@ -10,11 +10,6 @@
|
||||
<a><cite>交易管理</cite></a>
|
||||
</span>
|
||||
</div>
|
||||
<div class="kg-nav-right">
|
||||
<a class="layui-btn layui-btn-sm" href="{{ url({'for':'admin.trade.search'}) }}">
|
||||
<i class="layui-icon layui-icon-search"></i>搜索交易
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<table class="layui-table kg-table">
|
||||
@ -40,6 +35,7 @@
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for item in pager.items %}
|
||||
{% set show_url = url({'for':'admin.trade.show','id':item.id}) %}
|
||||
<tr>
|
||||
<td>
|
||||
<p>商品:{{ item.order.subject }}</p>
|
||||
@ -53,8 +49,8 @@
|
||||
<td>{{ channel_type(item.channel) }}</td>
|
||||
<td>{{ trade_status(item.status) }}</td>
|
||||
<td>{{ date('Y-m-d H:i:s',item.create_time) }}</td>
|
||||
<td align="center">
|
||||
<a class="layui-btn layui-btn-sm layui-bg-green" href="{{ url({'for':'admin.trade.show','id':item.id}) }}">详情</a>
|
||||
<td class="center">
|
||||
<a class="layui-btn layui-btn-sm" href="{{ show_url }}">详情</a>
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
|
@ -41,14 +41,6 @@
|
||||
<a><cite>用户管理</cite></a>
|
||||
</span>
|
||||
</div>
|
||||
<div class="kg-nav-right">
|
||||
<a class="layui-btn layui-btn-sm" href="{{ url({'for':'admin.user.search'}) }}">
|
||||
<i class="layui-icon layui-icon-search"></i>搜索用户
|
||||
</a>
|
||||
<a class="layui-btn layui-btn-sm" href="{{ url({'for':'admin.user.add'}) }}">
|
||||
<i class="layui-icon layui-icon-add-1"></i>添加用户
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<table class="layui-table kg-table">
|
||||
@ -76,6 +68,7 @@
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for item in pager.items %}
|
||||
{% set edit_url = url({'for':'admin.user.edit','id':item.id}) %}
|
||||
<tr>
|
||||
<td>{{ item.id }}</td>
|
||||
<td><span title="{{ item.about }}">{{ item.name }}</span>{{ status_info(item) }}</td>
|
||||
@ -84,11 +77,11 @@
|
||||
<td>{{ admin_role_info(item) }}</td>
|
||||
<td>{{ date('Y-m-d H:i:s',item.active_time) }}</td>
|
||||
<td>{{ date('Y-m-d H:i:s',item.create_time) }}</td>
|
||||
<td align="center">
|
||||
<td class="center">
|
||||
<div class="layui-dropdown">
|
||||
<button class="layui-btn layui-btn-sm">操作 <span class="layui-icon layui-icon-triangle-d"></span></button>
|
||||
<button class="layui-btn layui-btn-sm">操作 <i class="layui-icon layui-icon-triangle-d"></i></button>
|
||||
<ul>
|
||||
<li><a href="{{ url({'for':'admin.user.edit','id':item.id}) }}">编辑</a></li>
|
||||
<li><a href="{{ edit_url }}">编辑</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</td>
|
||||
|
@ -55,7 +55,7 @@ class CourseController extends Controller
|
||||
$service = new CourseListService();
|
||||
|
||||
$pager = $service->handle();
|
||||
$pager->items = kg_array_object($pager->items);
|
||||
|
||||
$pager->target = 'course-list';
|
||||
|
||||
$this->view->setRenderLevel(View::LEVEL_ACTION_VIEW);
|
||||
@ -111,7 +111,7 @@ class CourseController extends Controller
|
||||
$service = new CourseConsultListService();
|
||||
|
||||
$pager = $service->handle($id);
|
||||
$pager->items = kg_array_object($pager->items);
|
||||
|
||||
$pager->target = 'tab-consults';
|
||||
|
||||
$this->view->setRenderLevel(View::LEVEL_ACTION_VIEW);
|
||||
@ -127,7 +127,7 @@ class CourseController extends Controller
|
||||
$service = new CourseReviewListService();
|
||||
|
||||
$pager = $service->handle($id);
|
||||
$pager->items = kg_array_object($pager->items);
|
||||
|
||||
$pager->target = 'tab-reviews';
|
||||
|
||||
$this->view->setRenderLevel(View::LEVEL_ACTION_VIEW);
|
||||
|
@ -3,7 +3,6 @@
|
||||
namespace App\Http\Web\Controllers;
|
||||
|
||||
use App\Traits\Response as ResponseTrait;
|
||||
use Phalcon\Mvc\View;
|
||||
|
||||
/**
|
||||
* @RoutePrefix("/error")
|
||||
@ -13,11 +12,6 @@ class ErrorController extends \Phalcon\Mvc\Controller
|
||||
|
||||
use ResponseTrait;
|
||||
|
||||
public function initialize()
|
||||
{
|
||||
$this->view->setRenderLevel(View::LEVEL_LAYOUT);
|
||||
}
|
||||
|
||||
/**
|
||||
* @Get("/400", name="web.error.400")
|
||||
*/
|
||||
@ -49,8 +43,8 @@ class ErrorController extends \Phalcon\Mvc\Controller
|
||||
{
|
||||
$this->response->setStatusCode(404);
|
||||
|
||||
$isApiRequest = $this->request->isAjax();
|
||||
$isAjaxRequest = $this->request->isApi();
|
||||
$isAjaxRequest = $this->request->isAjax();
|
||||
$isApiRequest = $this->request->isApi();
|
||||
|
||||
if ($isAjaxRequest || $isApiRequest) {
|
||||
return $this->jsonError(['code' => 'sys.not_found']);
|
||||
|
@ -188,7 +188,6 @@ class ImController extends LayerController
|
||||
$pager = $service->searchGroups($query);
|
||||
}
|
||||
|
||||
$pager->items = kg_array_object($pager->items);
|
||||
$pager->target = $target;
|
||||
|
||||
$this->view->setVar('pager', $pager);
|
||||
|
@ -27,7 +27,7 @@ class ImGroupController extends Controller
|
||||
$service = new ImGroupService();
|
||||
|
||||
$pager = $service->getGroups();
|
||||
$pager->items = kg_array_object($pager->items);
|
||||
|
||||
$pager->target = 'group-list';
|
||||
|
||||
$this->view->setRenderLevel(View::LEVEL_ACTION_VIEW);
|
||||
@ -55,7 +55,7 @@ class ImGroupController extends Controller
|
||||
$service = new ImGroupService();
|
||||
|
||||
$pager = $service->getGroupUsers($id);
|
||||
$pager->items = kg_array_object($pager->items);
|
||||
|
||||
$pager->target = 'user-list';
|
||||
|
||||
$this->view->setRenderLevel(View::LEVEL_ACTION_VIEW);
|
||||
|
@ -43,7 +43,7 @@ class ImSummaryController extends Controller
|
||||
$service = new ImGroupService();
|
||||
|
||||
$pager = $service->getGroups();
|
||||
$pager->items = kg_array_object($pager->items);
|
||||
|
||||
$pager->target = 'group-list';
|
||||
|
||||
$this->view->setRenderLevel(View::LEVEL_ACTION_VIEW);
|
||||
|
@ -146,9 +146,9 @@ class MyController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Get("/friends", name="web.my.friends")
|
||||
* @Get("/im/friends", name="web.my.im_friends")
|
||||
*/
|
||||
public function friendsAction()
|
||||
public function imFriendsAction()
|
||||
{
|
||||
$service = new MyFriendListService();
|
||||
|
||||
@ -156,13 +156,14 @@ class MyController extends Controller
|
||||
|
||||
$pager->items = kg_array_object($pager->items);
|
||||
|
||||
$this->view->pick('my/im_friends');
|
||||
$this->view->setVar('pager', $pager);
|
||||
}
|
||||
|
||||
/**
|
||||
* @Get("/groups", name="web.my.groups")
|
||||
* @Get("/im/groups", name="web.my.im_groups")
|
||||
*/
|
||||
public function groupsAction()
|
||||
public function imGroupsAction()
|
||||
{
|
||||
$type = $this->request->getQuery('type', 'trim', 'joined');
|
||||
|
||||
@ -172,6 +173,7 @@ class MyController extends Controller
|
||||
|
||||
$pager->items = kg_array_object($pager->items);
|
||||
|
||||
$this->view->pick('my/im_groups');
|
||||
$this->view->setVar('type', $type);
|
||||
$this->view->setVar('pager', $pager);
|
||||
}
|
||||
|
@ -16,9 +16,9 @@ class SearchController extends Controller
|
||||
use ResponseTrait;
|
||||
|
||||
/**
|
||||
* @Get("/", name="web.search.list")
|
||||
* @Get("/", name="web.search.index")
|
||||
*/
|
||||
public function listAction()
|
||||
public function indexAction()
|
||||
{
|
||||
$query = $this->request->get('query', ['trim']);
|
||||
|
||||
@ -40,37 +40,9 @@ class SearchController extends Controller
|
||||
|
||||
$pager = $service->handle();
|
||||
|
||||
$pager->items = kg_array_object($pager->items);
|
||||
|
||||
$this->view->setVar('hot_queries', $hotQueries);
|
||||
$this->view->setVar('related_queries', $relatedQueries);
|
||||
$this->view->setVar('pager', $pager);
|
||||
}
|
||||
|
||||
/**
|
||||
* @Get("/queries/hot", name="web.search.hot_queries")
|
||||
*/
|
||||
public function hotQueriesAction()
|
||||
{
|
||||
$service = new CourseHotQueryService();
|
||||
|
||||
$queries = $service->handle();
|
||||
|
||||
return $this->jsonSuccess(['queries' => $queries]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @Get("/queries/related", name="web.search.related_queries")
|
||||
*/
|
||||
public function relatedQueriesAction()
|
||||
{
|
||||
$query = $this->request->get('query', ['trim']);
|
||||
|
||||
$service = new CourseRelatedQueryService();
|
||||
|
||||
$queries = $service->handle($query);
|
||||
|
||||
return $this->jsonSuccess(['queries' => $queries]);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -27,7 +27,7 @@ class TeacherController extends Controller
|
||||
$service = new TeacherListService();
|
||||
|
||||
$pager = $service->handle();
|
||||
$pager->items = kg_array_object($pager->items);
|
||||
|
||||
$pager->target = 'teacher-list';
|
||||
|
||||
$this->view->setRenderLevel(View::LEVEL_ACTION_VIEW);
|
||||
|
@ -35,7 +35,7 @@ class TopicController extends Controller
|
||||
$service = new TopicCourseListService();
|
||||
|
||||
$pager = $service->handle($id);
|
||||
$pager->items = kg_array_object($pager->items);
|
||||
|
||||
$pager->target = 'course-list';
|
||||
|
||||
$this->view->setRenderLevel(View::LEVEL_ACTION_VIEW);
|
||||
|
@ -37,7 +37,7 @@ class UserController extends Controller
|
||||
$service = new UserCourseListService();
|
||||
|
||||
$pager = $service->handle($id);
|
||||
$pager->items = kg_array_object($pager->items);
|
||||
|
||||
$pager->target = 'tab-courses';
|
||||
|
||||
$this->view->setRenderLevel(View::LEVEL_ACTION_VIEW);
|
||||
@ -53,7 +53,7 @@ class UserController extends Controller
|
||||
$service = new UserFavoriteListService();
|
||||
|
||||
$pager = $service->handle($id);
|
||||
$pager->items = kg_array_object($pager->items);
|
||||
|
||||
$pager->target = 'tab-favorites';
|
||||
|
||||
$this->view->setRenderLevel(View::LEVEL_ACTION_VIEW);
|
||||
@ -69,7 +69,7 @@ class UserController extends Controller
|
||||
$service = new UserFriendListService();
|
||||
|
||||
$pager = $service->handle($id);
|
||||
$pager->items = kg_array_object($pager->items);
|
||||
|
||||
$pager->target = 'tab-friends';
|
||||
|
||||
$this->view->setRenderLevel(View::LEVEL_ACTION_VIEW);
|
||||
@ -85,7 +85,7 @@ class UserController extends Controller
|
||||
$service = new UserGroupListService();
|
||||
|
||||
$pager = $service->handle($id);
|
||||
$pager->items = kg_array_object($pager->items);
|
||||
|
||||
$pager->target = 'tab-groups';
|
||||
|
||||
$this->view->setRenderLevel(View::LEVEL_ACTION_VIEW);
|
||||
|
@ -37,7 +37,7 @@ class VipController extends Controller
|
||||
$service = new VipCourseListService();
|
||||
|
||||
$pager = $service->handle($type);
|
||||
$pager->items = kg_array_object($pager->items);
|
||||
|
||||
$pager->target = "tab-{$type}-courses";
|
||||
|
||||
$this->view->setRenderLevel(View::LEVEL_ACTION_VIEW);
|
||||
@ -52,7 +52,7 @@ class VipController extends Controller
|
||||
$service = new VipUserListService();
|
||||
|
||||
$pager = $service->handle();
|
||||
$pager->items = kg_array_object($pager->items);
|
||||
|
||||
$pager->target = 'tab-users';
|
||||
|
||||
$this->view->setRenderLevel(View::LEVEL_ACTION_VIEW);
|
||||
|
@ -1,3 +1,6 @@
|
||||
{% extends 'templates/error.volt' %}
|
||||
|
||||
{% block content %}
|
||||
<div class="layui-fluid">
|
||||
<div class="kg-tips">
|
||||
<i class="layui-icon layui-icon-face-surprised"></i>
|
||||
@ -11,3 +14,4 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
@ -1,3 +1,6 @@
|
||||
{% extends 'templates/error.volt' %}
|
||||
|
||||
{% block content %}
|
||||
<div class="layui-fluid">
|
||||
<div class="kg-tips">
|
||||
<i class="layui-icon layui-icon-face-surprised"></i>
|
||||
@ -10,3 +13,4 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
@ -1,3 +1,6 @@
|
||||
{% extends 'templates/error.volt' %}
|
||||
|
||||
{% block content %}
|
||||
<div class="layui-fluid">
|
||||
<div class="kg-tips">
|
||||
<i class="layui-icon layui-icon-face-surprised"></i>
|
||||
@ -10,3 +13,4 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
@ -1,3 +1,6 @@
|
||||
{% extends 'templates/error.volt' %}
|
||||
|
||||
{% block content %}
|
||||
<div class="layui-fluid">
|
||||
<div class="kg-tips">
|
||||
<i class="layui-icon layui-icon-face-surprised"></i>
|
||||
@ -10,3 +13,4 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
@ -1,3 +1,6 @@
|
||||
{% extends 'templates/error.volt' %}
|
||||
|
||||
{% block content %}
|
||||
<div class="layui-fluid">
|
||||
<div class="kg-tips">
|
||||
<i class="layui-icon layui-icon-face-surprised"></i>
|
||||
@ -10,3 +13,4 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
@ -1,3 +1,6 @@
|
||||
{% extends 'templates/error.volt' %}
|
||||
|
||||
{% block content %}
|
||||
<div class="layui-fluid">
|
||||
<div class="kg-tips">
|
||||
<i class="layui-icon layui-icon-face-surprised"></i>
|
||||
@ -10,3 +13,4 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
@ -39,7 +39,7 @@
|
||||
<p>用时:{{ item.duration|duration }}</p>
|
||||
<p>进度:{{ item.progress }}%</p>
|
||||
</td>
|
||||
<td align="center">
|
||||
<td class="center">
|
||||
{% if allow_review %}
|
||||
<button class="layui-btn layui-btn-sm btn-add-review" data-url="{{ review_url }}">评价</button>
|
||||
{% else %}
|
||||
|
@ -38,7 +38,7 @@
|
||||
<td>{{ item.user_count }}</td>
|
||||
<td>{{ item.favorite_count }}</td>
|
||||
<td>{{ item.rating }}</td>
|
||||
<td align="center">
|
||||
<td class="center">
|
||||
<button class="layui-btn layui-btn-sm kg-delete" data-tips="确定要取消收藏吗?" data-url="{{ favorite_url }}">取消</button>
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -25,9 +25,9 @@
|
||||
</div>
|
||||
<div class="my-group-wrap wrap">
|
||||
{% if type == 'owned' %}
|
||||
{{ partial('my/groups_owned') }}
|
||||
{{ partial('my/im_groups_owned') }}
|
||||
{% else %}
|
||||
{{ partial('my/groups_joined') }}
|
||||
{{ partial('my/im_groups_joined') }}
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
@ -40,8 +40,8 @@
|
||||
<div class="layui-card-header">聊天设置</div>
|
||||
<div class="layui-card-body">
|
||||
<ul class="my-menu">
|
||||
<li><a href="{{ url({'for':'web.my.friends'}) }}">我的好友</a></li>
|
||||
<li><a href="{{ url({'for':'web.my.groups'}) }}">我的群组</a></li>
|
||||
<li><a href="{{ url({'for':'web.my.im_friends'}) }}">我的好友</a></li>
|
||||
<li><a href="{{ url({'for':'web.my.im_groups'}) }}">我的群组</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -10,8 +10,8 @@
|
||||
</div>
|
||||
|
||||
<div class="page-info wrap">
|
||||
<div class="title">{{ page.title }}</div>
|
||||
<div class="content" id="preview">{{ page.content }}</div>
|
||||
<div class="page-title">{{ page.title }}</div>
|
||||
<div class="page-content" id="preview">{{ page.content }}</div>
|
||||
</div>
|
||||
|
||||
{% endblock %}
|
||||
|
@ -17,9 +17,11 @@
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
{% set query = request.get('query','striptags','') %}
|
||||
|
||||
<div class="search">
|
||||
<form class="layui-form" action="{{ url({'for':'web.search.list'}) }}">
|
||||
<input class="layui-input" type="text" name="query" maxlength="30" autocomplete="off" placeholder="请输入课程关键字..." value="{{ request.get('query')|striptags }}">
|
||||
<form class="layui-form" action="{{ url({'for':'web.search.index'}) }}">
|
||||
<input class="layui-input" type="text" name="query" maxlength="30" autocomplete="off" placeholder="请输入课程关键字..." value="{{ query }}">
|
||||
</form>
|
||||
</div>
|
||||
|
||||
|
@ -24,9 +24,9 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">评价内容</label>
|
||||
<label class="layui-form-label" for="content">评价内容</label>
|
||||
<div class="layui-input-block">
|
||||
<textarea name="content" class="layui-textarea" placeholder="请描述你的学习经历,例如学习成果、课程内容、讲师风格、教学服务等。"></textarea>
|
||||
<textarea name="content" id="content" class="layui-textarea" placeholder="请描述你的学习经历,例如学习成果、课程内容、讲师风格、教学服务等。"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
|
@ -18,9 +18,9 @@
|
||||
{% if pager.total_pages > 0 %}
|
||||
<div class="wrap">
|
||||
{% if type == 'course' %}
|
||||
{{ partial('search/content_course') }}
|
||||
{{ partial('search/course') }}
|
||||
{% elseif type == 'other' %}
|
||||
{{ partial('search/content_other') }}
|
||||
{{ partial('search/other') }}
|
||||
{% endif %}
|
||||
</div>
|
||||
{{ partial('partials/pager') }}
|
@ -3,7 +3,7 @@
|
||||
<div class="layui-card-header">热门搜索</div>
|
||||
<div class="layui-card-body">
|
||||
{% for query in hot_queries %}
|
||||
<a class="layui-badge-rim query-badge" href="{{ url({'for':'web.search.list'},{'query':query}) }}">{{ query }}</a>
|
||||
<a class="layui-badge-rim query-badge" href="{{ url({'for':'web.search.index'},{'query':query}) }}">{{ query }}</a>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
@ -14,7 +14,7 @@
|
||||
<div class="layui-card-header">相关搜索</div>
|
||||
<div class="layui-card-body">
|
||||
{% for query in related_queries %}
|
||||
<a class="layui-badge-rim query-badge" href="{{ url({'for':'web.search.list'},{'query':query}) }}">{{ query }}</a>
|
||||
<a class="layui-badge-rim query-badge" href="{{ url({'for':'web.search.index'},{'query':query}) }}">{{ query }}</a>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
|
@ -37,7 +37,7 @@
|
||||
<p>章节:<a href="{{ chapter_url }}" target="_blank">{{ item.chapter.title }}</a></p>
|
||||
</td>
|
||||
<td>{{ date('m-d',item.start_time) }} {{ date('H:i',item.start_time) }} ~ {{ date('H:i',item.end_time) }}</td>
|
||||
<td align="center">
|
||||
<td class="center">
|
||||
{% if allow_push %}
|
||||
<button class="layui-btn layui-btn-sm btn-live-push" data-url="{{ live_push_url }}">推流</button>
|
||||
{% else %}
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-Hans-CN">
|
||||
<html lang="zh-CN-Hans">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
@ -9,6 +9,6 @@
|
||||
{{ css_link("web/css/error.css") }}
|
||||
</head>
|
||||
<body>
|
||||
{{ content() }}
|
||||
{% block content %}{% endblock %}
|
||||
</body>
|
||||
</html>
|
@ -5,9 +5,7 @@
|
||||
{% set courses_url = url({'for':'web.topic.courses','id':topic.id}) %}
|
||||
|
||||
<div class="topic-info">
|
||||
<fieldset class="layui-elem-field layui-field-title">
|
||||
<legend>{{ topic.title }}</legend>
|
||||
</fieldset>
|
||||
<div class="topic-title">{{ topic.title }}</div>
|
||||
</div>
|
||||
|
||||
<div id="course-list" data-url="{{ courses_url }}"></div>
|
||||
|
@ -7,24 +7,34 @@ use Phalcon\Mvc\View as PhView;
|
||||
class View extends PhView
|
||||
{
|
||||
|
||||
public function setVars(array $params, bool $merge = true): PhView
|
||||
public function setVars(array $params, $merge = true): PhView
|
||||
{
|
||||
foreach ($params as $key => $param) {
|
||||
if (is_array($param)) {
|
||||
$params[$key] = kg_array_object($param);
|
||||
}
|
||||
$params[$key] = $this->handleVar($param);
|
||||
}
|
||||
|
||||
return parent::setVars($params, $merge);
|
||||
}
|
||||
|
||||
public function setVar(string $key, $value): PhView
|
||||
public function setVar($key, $value): PhView
|
||||
{
|
||||
if (is_array($value)) {
|
||||
$value = kg_array_object($value);
|
||||
}
|
||||
$value = $this->handleVar($value);
|
||||
|
||||
return parent::setVar($key, $value);
|
||||
}
|
||||
|
||||
protected function handleVar($var)
|
||||
{
|
||||
/**
|
||||
* 分页数据
|
||||
*/
|
||||
if (isset($var->total_items)) {
|
||||
$var->items = kg_array_object($var->items);
|
||||
} elseif (is_array($var)) {
|
||||
$var = kg_array_object($var);
|
||||
}
|
||||
|
||||
return $var;
|
||||
}
|
||||
|
||||
}
|
@ -23,6 +23,10 @@ class Audit extends Repository
|
||||
$builder->andWhere('user_id = :user_id:', ['user_id' => $where['user_id']]);
|
||||
}
|
||||
|
||||
if (!empty($where['user_ip'])) {
|
||||
$builder->andWhere('user_ip = :user_ip:', ['user_ip' => $where['user_ip']]);
|
||||
}
|
||||
|
||||
if (!empty($where['user_name'])) {
|
||||
$builder->andWhere('user_name = :user_name:', ['user_name' => $where['user_name']]);
|
||||
}
|
||||
|
@ -21,7 +21,7 @@ class OrderList extends FrontendService
|
||||
|
||||
$params = $pagerQuery->getParams();
|
||||
|
||||
$params['user_id'] = $user->id;
|
||||
$params['owner_id'] = $user->id;
|
||||
$params['deleted'] = 0;
|
||||
|
||||
$sort = $pagerQuery->getSort();
|
||||
|
@ -21,7 +21,7 @@ class RefundList extends FrontendService
|
||||
|
||||
$params = $pagerQuery->getParams();
|
||||
|
||||
$params['user_id'] = $user->id;
|
||||
$params['owner_id'] = $user->id;
|
||||
$params['deleted'] = 0;
|
||||
|
||||
$sort = $pagerQuery->getSort();
|
||||
|
@ -18,7 +18,7 @@ class ReviewList extends FrontendService
|
||||
|
||||
$params = $pagerQuery->getParams();
|
||||
|
||||
$params['user_id'] = $user->id;
|
||||
$params['owner_id'] = $user->id;
|
||||
$params['published'] = 1;
|
||||
|
||||
$sort = $pagerQuery->getSort();
|
||||
|
@ -70,9 +70,10 @@ class Nav extends Validator
|
||||
$value = $this->filter->sanitize($url, ['trim']);
|
||||
|
||||
$stageA = Text::startsWith($value, '/');
|
||||
$stageB = CommonValidator::url($value);
|
||||
$stageB = Text::startsWith($value, '#');
|
||||
$stageC = CommonValidator::url($value);
|
||||
|
||||
if (!$stageA && !$stageB) {
|
||||
if (!$stageA && !$stageB && !$stageC) {
|
||||
throw new BadRequestException('nav.invalid_url');
|
||||
}
|
||||
|
||||
|
@ -112,6 +112,10 @@
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.kg-table .center {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
input.kg-priority {
|
||||
width: 60px;
|
||||
}
|
||||
|
@ -1,31 +0,0 @@
|
||||
.kg-tips {
|
||||
margin-top: 30px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.kg-tips .layui-icon-face-surprised {
|
||||
display: inline-block;
|
||||
font-size: 200px;
|
||||
color: #393D49;
|
||||
}
|
||||
|
||||
.kg-tips .message {
|
||||
margin-top: 30px;
|
||||
}
|
||||
|
||||
.kg-tips .layui-text {
|
||||
width: 500px;
|
||||
margin: 30px auto;
|
||||
padding-top: 20px;
|
||||
border-top: 5px solid #009688;
|
||||
}
|
||||
|
||||
.kg-tips h1 {
|
||||
font-size: 100px;
|
||||
line-height: 100px;
|
||||
color: #009688;
|
||||
}
|
||||
|
||||
.kg-tips .layui-text span {
|
||||
display: inline-block;
|
||||
}
|
@ -307,12 +307,20 @@ body {
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
.topic-title {
|
||||
margin-bottom: 30px;
|
||||
padding-bottom: 15px;
|
||||
border-bottom: 2px solid #e6e6e6;
|
||||
text-align: center;
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
.page-info {
|
||||
padding: 20px 50px;
|
||||
min-height: 500px;
|
||||
}
|
||||
|
||||
.page-info .title {
|
||||
.page-title {
|
||||
margin-bottom: 30px;
|
||||
padding-bottom: 15px;
|
||||
border-bottom: 1px solid #e6e6e6;
|
||||
@ -1414,9 +1422,8 @@ body {
|
||||
line-height: 1.8em;
|
||||
}
|
||||
|
||||
.layui-table .layui-icon {
|
||||
color: orange;
|
||||
font-size: 14px;
|
||||
.layui-table .center {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.consult-table .question {
|
||||
|
@ -1,31 +1,31 @@
|
||||
.error-tips {
|
||||
.kg-tips {
|
||||
margin-top: 30px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.error-tips .layui-icon-face-surprised {
|
||||
.kg-tips .layui-icon-face-surprised {
|
||||
display: inline-block;
|
||||
font-size: 200px;
|
||||
color: #393D49;
|
||||
}
|
||||
|
||||
.error-tips .message {
|
||||
.kg-tips .message {
|
||||
margin-top: 30px;
|
||||
}
|
||||
|
||||
.error-tips .layui-text {
|
||||
.kg-tips .layui-text {
|
||||
width: 500px;
|
||||
margin: 30px auto;
|
||||
padding-top: 20px;
|
||||
border-top: 5px solid #009688;
|
||||
}
|
||||
|
||||
.error-tips h1 {
|
||||
.kg-tips h1 {
|
||||
font-size: 100px;
|
||||
line-height: 100px;
|
||||
color: #009688;
|
||||
}
|
||||
|
||||
.error-tips .layui-text span {
|
||||
.kg-tips .layui-text span {
|
||||
display: inline-block;
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user