1
0
mirror of https://gitee.com/koogua/course-tencent-cloud.git synced 2025-06-26 04:21:27 +08:00

精简后台模板

This commit is contained in:
xiaochong0302 2020-08-12 20:35:25 +08:00
parent 343c8d49d4
commit 1e2398388a
76 changed files with 668 additions and 719 deletions

View File

@ -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);
}
}

View File

@ -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)
{

View File

@ -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',
],
],
],

View File

@ -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;

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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 %}

View File

@ -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>

View File

@ -1,17 +1,13 @@
{% extends 'templates/main.volt' %}
{% block content %}
{%- macro live_time_info(attrs) %}
{%- macro live_time_info(attrs) %}
{% if attrs['start_time'] > 0 %}
<p>开始:{{ date('Y-m-d H:i',attrs['start_time']) }}</p>
<p>结束:{{ date('Y-m-d H:i',attrs['end_time']) }}</p>
{% else %}
N/A
{% endif %}
{%- endmacro %}
{%- endmacro %}
<table class="layui-table kg-table layui-form">
<table class="layui-table kg-table layui-form">
<colgroup>
<col>
<col>
@ -34,28 +30,34 @@
</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>
</tr>
{% endfor %}
</tbody>
</table>
{% endblock %}
</table>

View File

@ -1,8 +1,4 @@
{% extends 'templates/main.volt' %}
{% block content %}
<table class="layui-table kg-table layui-form">
<table class="layui-table kg-table layui-form">
<colgroup>
<col>
<col>
@ -25,28 +21,34 @@
</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>
</tr>
{% endfor %}
</tbody>
</table>
{% endblock %}
</table>

View File

@ -1,8 +1,4 @@
{% extends 'templates/main.volt' %}
{% block content %}
{%- macro file_status(value) %}
{%- macro file_status(value) %}
{% if value == 'pending' %}
<span class="layui-badge layui-bg-gray">待上传</span>
{% elseif value == 'uploaded' %}
@ -14,9 +10,9 @@
{% elseif value == 'failed' %}
<span class="layui-badge layui-bg-red">已失败</span>
{% endif %}
{%- endmacro %}
{%- endmacro %}
<table class="layui-table kg-table layui-form">
<table class="layui-table kg-table layui-form">
<colgroup>
<col>
<col>
@ -41,29 +37,35 @@
</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>
</tr>
{% endfor %}
</tbody>
</table>
{% endblock %}
</table>

View File

@ -11,18 +11,13 @@
<div class="kg-nav">
<div class="kg-nav-left">
<span class="layui-breadcrumb">
<a class="kg-back"><i class="layui-icon layui-icon-return"></i> 返回</a>
<a class="kg-back"><i class="layui-icon layui-icon-return"></i>返回</a>
{% if course %}
<a><cite>{{ course.title }}</cite></a>
{% endif %}
<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>

View File

@ -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>

View File

@ -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 %}

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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 %}

View File

@ -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>

View File

@ -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>

View File

@ -19,6 +19,6 @@
{% block link_css %}
{{ css_link("admin/css/error.css") }}
{{ css_link("web/css/error.css") }}
{% endblock %}

View File

@ -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 %}

View File

@ -2,23 +2,16 @@
{% block content %}
{% set search_review_url = url({'for':'admin.review.search'}) %}
<div class="kg-nav">
<div class="kg-nav-left">
<span class="layui-breadcrumb">
<a class="kg-back"><i class="layui-icon layui-icon-return"></i> 返回</a>
<a class="kg-back"><i class="layui-icon layui-icon-return"></i>返回</a>
{% if course %}
<a><cite>{{ course.title }}</cite></a>
{% endif %}
<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 %}

View File

@ -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>

View File

@ -15,27 +15,13 @@
<div class="kg-nav">
<div class="kg-nav-left">
<span class="layui-breadcrumb">
<a class="kg-back"><i class="layui-icon layui-icon-return"></i> 返回</a>
<a class="kg-back"><i class="layui-icon layui-icon-return"></i>返回</a>
{% if course %}
<a><cite>{{ course.title }}</cite></a>
{% endif %}
<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>

View File

@ -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>

View File

@ -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 %}

View File

@ -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>

View File

@ -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);

View File

@ -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']);

View File

@ -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);

View File

@ -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);

View File

@ -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);

View File

@ -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);
}

View File

@ -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]);
}
}

View File

@ -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);

View File

@ -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);

View File

@ -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);

View File

@ -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);

View File

@ -1,4 +1,7 @@
<div class="layui-fluid">
{% extends 'templates/error.volt' %}
{% block content %}
<div class="layui-fluid">
<div class="kg-tips">
<i class="layui-icon layui-icon-face-surprised"></i>
<div class="message">{{ flashSession.output() }}</div>
@ -10,4 +13,5 @@
</h1>
</div>
</div>
</div>
</div>
{% endblock %}

View File

@ -1,4 +1,7 @@
<div class="layui-fluid">
{% extends 'templates/error.volt' %}
{% block content %}
<div class="layui-fluid">
<div class="kg-tips">
<i class="layui-icon layui-icon-face-surprised"></i>
<div class="layui-text">
@ -9,4 +12,5 @@
</h1>
</div>
</div>
</div>
</div>
{% endblock %}

View File

@ -1,4 +1,7 @@
<div class="layui-fluid">
{% extends 'templates/error.volt' %}
{% block content %}
<div class="layui-fluid">
<div class="kg-tips">
<i class="layui-icon layui-icon-face-surprised"></i>
<div class="layui-text">
@ -9,4 +12,5 @@
</h1>
</div>
</div>
</div>
</div>
{% endblock %}

View File

@ -1,4 +1,7 @@
<div class="layui-fluid">
{% extends 'templates/error.volt' %}
{% block content %}
<div class="layui-fluid">
<div class="kg-tips">
<i class="layui-icon layui-icon-face-surprised"></i>
<div class="layui-text">
@ -9,4 +12,5 @@
</h1>
</div>
</div>
</div>
</div>
{% endblock %}

View File

@ -1,4 +1,7 @@
<div class="layui-fluid">
{% extends 'templates/error.volt' %}
{% block content %}
<div class="layui-fluid">
<div class="kg-tips">
<i class="layui-icon layui-icon-face-surprised"></i>
<div class="layui-text">
@ -9,4 +12,5 @@
</h1>
</div>
</div>
</div>
</div>
{% endblock %}

View File

@ -1,4 +1,7 @@
<div class="layui-fluid">
{% extends 'templates/error.volt' %}
{% block content %}
<div class="layui-fluid">
<div class="kg-tips">
<i class="layui-icon layui-icon-face-surprised"></i>
<div class="layui-text">
@ -9,4 +12,5 @@
</h1>
</div>
</div>
</div>
</div>
{% endblock %}

View File

@ -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 %}

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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 %}

View File

@ -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>

View File

@ -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">

View File

@ -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') }}

View File

@ -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>

View File

@ -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 %}

View File

@ -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>

View File

@ -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>

View File

@ -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;
}
}

View File

@ -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']]);
}

View File

@ -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();

View File

@ -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();

View File

@ -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();

View File

@ -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');
}

View File

@ -112,6 +112,10 @@
margin: 0;
}
.kg-table .center {
text-align: center;
}
input.kg-priority {
width: 60px;
}

View File

@ -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;
}

View File

@ -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 {

View File

@ -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;
}