1
0
mirror of https://gitee.com/koogua/course-tencent-cloud.git synced 2025-06-28 21:31:37 +08:00

后台模板改成继承模式

This commit is contained in:
xiaochong0302 2020-08-07 20:19:07 +08:00
parent f589c5011a
commit 7b39e6d224
117 changed files with 5235 additions and 5038 deletions

View File

@ -1,4 +1,8 @@
<div class="kg-nav">
{% extends 'templates/main.volt' %}
{% block content %}
<div class="kg-nav">
<div class="kg-nav-left">
<span class="layui-breadcrumb">
<a><cite>操作记录</cite></a>
@ -9,9 +13,9 @@
<i class="layui-icon layui-icon-add-1"></i>搜索记录
</a>
</div>
</div>
</div>
<table class="kg-table layui-table layui-form">
<table class="layui-table kg-table">
<colgroup>
<col>
<col>
@ -47,12 +51,21 @@
</tr>
{% endfor %}
</tbody>
</table>
</table>
{{ partial('partials/pager') }}
{{ partial('partials/ip2region') }}
{{ partial('partials/pager') }}
<script>
{% endblock %}
{% block include_js %}
{{ js_include('admin/js/ip2region.js') }}
{% endblock %}
{% block inline_js %}
<script>
layui.use(['jquery', 'layer'], function () {
@ -69,7 +82,8 @@
content: [url]
});
});
});
</script>
</script>
{% endblock %}

View File

@ -1,37 +1,35 @@
<form class="layui-form kg-form" method="GET" action="{{ url({'for':'admin.audit.list'}) }}">
{% extends 'templates/main.volt' %}
{% block content %}
<form class="layui-form kg-form" method="GET" action="{{ url({'for':'admin.audit.list'}) }}">
<fieldset class="layui-elem-field layui-field-title">
<legend>搜索记录</legend>
</fieldset>
<div class="layui-form-item">
<label class="layui-form-label">用户编号</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="user_id" placeholder="用户编号精确匹配">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">用户名称</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="user_name" placeholder="用户名称精确匹配">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">请求路由</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="req_route" placeholder="请求路由精确匹配">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">请求路径</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="req_path" placeholder="请求路径精确匹配">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">请求时间</label>
<div class="layui-input-inline">
@ -42,7 +40,6 @@
<input class="layui-input time-range" type="text" name="end_time" autocomplete="off">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<div class="layui-input-block">
@ -50,10 +47,13 @@
<button type="button" class="kg-back layui-btn layui-btn-primary">返回</button>
</div>
</div>
</form>
</form>
{% endblock %}
<script>
{% block inline_js %}
<script>
layui.use(['laydate'], function () {
@ -66,7 +66,8 @@
trigger: 'click'
});
});
});
</script>
</script>
{% endblock %}

View File

@ -1,6 +1,14 @@
<pre class="layui-code" id="kg-code"></pre>
{% extends 'templates/main.volt' %}
<script>
{% block content %}
<pre class="layui-code" id="kg-code"></pre>
{% endblock %}
{% block inline_js %}
<script>
layui.use(['jquery'], function () {
var $ = layui.jquery;
@ -9,4 +17,6 @@
$('#kg-code').html(str);
});
</script>
</script>
{% endblock %}

View File

@ -1,9 +1,11 @@
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.category.create'}) }}">
{% extends 'templates/main.volt' %}
{% block content %}
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.category.create'}) }}">
<fieldset class="layui-elem-field layui-field-title">
<legend>添加分类</legend>
</fieldset>
{% if parent_id > 0 %}
<div class="layui-form-item">
<label class="layui-form-label">父级</label>
@ -17,21 +19,18 @@
</div>
</div>
{% endif %}
<div class="layui-form-item">
<label class="layui-form-label">名称</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="name" lay-verify="required">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">排序</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="priority" value="10" lay-verify="number">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">发布</label>
<div class="layui-input-block">
@ -39,7 +38,6 @@
<input type="radio" name="published" value="0" title="否">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<div class="layui-input-block">
@ -48,5 +46,6 @@
<input type="hidden" name="parent_id" value="{{ parent_id }}">
</div>
</div>
</form>
</form>
{% endblock %}

View File

@ -1,23 +1,23 @@
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.category.update','id':category.id}) }}">
{% extends 'templates/main.volt' %}
{% block content %}
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.category.update','id':category.id}) }}">
<fieldset class="layui-elem-field layui-field-title">
<legend>编辑分类</legend>
</fieldset>
<div class="layui-form-item">
<label class="layui-form-label">名称</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="name" value="{{ category.name }}" lay-verify="required">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">排序</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="priority" value="{{ category.priority }}" lay-verify="number">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">发布</label>
<div class="layui-input-block">
@ -25,7 +25,6 @@
<input type="radio" name="published" value="0" title="否" {% if category.published == 0 %}checked{% endif %}>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<div class="layui-input-block">
@ -33,5 +32,6 @@
<button type="button" class="kg-back layui-btn layui-btn-primary">返回</button>
</div>
</div>
</form>
</form>
{% endblock %}

View File

@ -1,4 +1,8 @@
<div class="kg-nav">
{% extends 'templates/main.volt' %}
{% block content %}
<div class="kg-nav">
<div class="kg-nav-left">
<span class="layui-breadcrumb">
{% if parent.id > 0 %}
@ -15,9 +19,9 @@
<i class="layui-icon layui-icon-add-1"></i>添加分类
</a>
</div>
</div>
</div>
<table class="kg-table layui-table layui-form">
<table class="layui-table kg-table layui-form">
<colgroup>
<col>
<col>
@ -70,4 +74,6 @@
</tr>
{% endfor %}
</tbody>
</table>
</table>
{% endblock %}

View File

@ -1,23 +1,23 @@
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.chapter.create'}) }}">
{% extends 'templates/main.volt' %}
{% block content %}
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.chapter.create'}) }}">
<fieldset class="layui-elem-field layui-field-title">
<legend>添加章节</legend>
</fieldset>
<div class="layui-form-item">
<label class="layui-form-label">标题</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="title" lay-verify="required">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">简介</label>
<div class="layui-input-block">
<textarea class="layui-textarea" name="summary"></textarea>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<div class="layui-input-block">
@ -26,5 +26,6 @@
<input type="hidden" name="course_id" value="{{ course.id }}">
</div>
</div>
</form>
</form>
{% endblock %}

View File

@ -1,9 +1,11 @@
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.chapter.create'}) }}">
{% extends 'templates/main.volt' %}
{% block content %}
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.chapter.create'}) }}">
<fieldset class="layui-elem-field layui-field-title">
<legend>添加课时</legend>
</fieldset>
<div class="layui-form-item">
<label class="layui-form-label">章节</label>
<div class="layui-input-block">
@ -15,21 +17,18 @@
</select>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">标题</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="title" lay-verify="required">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">简介</label>
<div class="layui-input-block">
<textarea class="layui-textarea" name="summary"></textarea>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">免费</label>
<div class="layui-input-block">
@ -37,7 +36,6 @@
<input type="radio" name="free" value="0" title="否" checked="checked">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<div class="layui-input-block">
@ -46,5 +44,6 @@
<input type="hidden" name="course_id" value="{{ course.id }}">
</div>
</div>
</form>
</form>
{% endblock %}

View File

@ -1,30 +1,29 @@
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.chapter.update','id':chapter.id}) }}">
{% extends 'templates/main.volt' %}
{% block content %}
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.chapter.update','id':chapter.id}) }}">
<fieldset class="layui-elem-field layui-field-title">
<legend>编辑章节</legend>
</fieldset>
<div class="layui-form-item">
<label class="layui-form-label">标题</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="title" value="{{ chapter.title }}" lay-verify="required">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">简介</label>
<div class="layui-input-block">
<textarea class="layui-textarea" name="summary">{{ chapter.summary }}</textarea>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">排序</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="priority" value="{{ chapter.priority }}" lay-verify="number">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<div class="layui-input-block">
@ -32,5 +31,6 @@
<button type="button" class="kg-back layui-btn layui-btn-primary">返回</button>
</div>
</div>
</form>
</form>
{% endblock %}

View File

@ -1,4 +1,8 @@
{%- macro content_title(model) %}
{% extends 'templates/main.volt' %}
{% block content %}
{%- macro content_title(model) %}
{% if model == 'vod' %}
点播信息
{% elseif model == 'live' %}
@ -6,19 +10,17 @@
{% elseif model == 'read' %}
文章信息
{% endif %}
{%- endmacro %}
{%- endmacro %}
<fieldset class="layui-elem-field layui-field-title">
<fieldset class="layui-elem-field layui-field-title">
<legend>编辑课时</legend>
</fieldset>
<div class="layui-tab layui-tab-brief">
</fieldset>
<div class="layui-tab layui-tab-brief">
<ul class="layui-tab-title kg-tab-title">
<li class="layui-this">基本信息</li>
<li>{{ content_title(course.model) }}</li>
</ul>
<div class="layui-tab-content">
<div class="layui-tab-item layui-show">
{{ partial('chapter/edit_lesson_basic') }}
@ -33,5 +35,57 @@
{% endif %}
</div>
</div>
</div>
</div>
{% endblock %}
{% block link_css %}
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/vditor/dist/index.css"/>
{% endblock %}
{% block include_js %}
<script src="https://cdn.jsdelivr.net/npm/vditor/dist/index.min.js" defer></script>
{{ js_include('admin/js/vditor.js') }}
{% endblock %}
{% block inline_js %}
<script>
layui.use(['jquery', 'layer', 'laydate'], function () {
var $ = layui.jquery;
var layer = layui.layer;
var laydate = layui.laydate;
laydate.render({
elem: 'input[name=start_time]',
type: 'datetime'
});
laydate.render({
elem: 'input[name=end_time]',
type: 'datetime'
});
$('#show-push-test').on('click', function () {
var streamName = $('input[name=stream_name]').val();
var url = '/admin/test/live/push?stream=' + streamName;
layer.open({
type: 2,
title: '推流测试',
area: ['680px', '450px'],
content: [url, 'no']
});
});
});
</script>
{% endblock %}

View File

@ -1,26 +1,22 @@
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.chapter.update','id':chapter.id}) }}">
<div class="layui-form-item">
<label class="layui-form-label">标题</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="title" value="{{ chapter.title }}" lay-verify="required">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">简介</label>
<div class="layui-input-block">
<textarea class="layui-textarea" name="summary">{{ chapter.summary }}</textarea>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">排序</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="priority" value="{{ chapter.priority }}" lay-verify="number">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">免费</label>
<div class="layui-input-block">
@ -28,7 +24,6 @@
<input type="radio" name="free" value="0" title="否" {% if chapter.free == 0 %}checked="checked"{% endif %}>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<div class="layui-input-block">
@ -36,5 +31,4 @@
<button type="button" class="kg-back layui-btn layui-btn-primary">返回</button>
</div>
</div>
</form>

View File

@ -1,27 +1,28 @@
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.chapter.content','id':chapter.id}) }}">
{% extends 'templates/main.volt' %}
{% block content %}
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.chapter.content','id':chapter.id}) }}">
<div class="layui-form-item">
<label class="layui-form-label">开始时间</label>
<div class="layui-input-block">
{% if live.start_time > 0 %}
<input class="layui-input" type="text" name="start_time" autocomplete="off" value="{{ date('Y-m-d H:i:s',live.start_time) }}" {% if live.start_time < time() %}readonly="true"{% endif %} lay-verify="required">
<input class="layui-input" type="text" name="start_time" autocomplete="off" value="{{ date('Y-m-d H:i:s',live.start_time) }}" {% if live.start_time < time() %}readonly{% endif %} lay-verify="required">
{% else %}
<input class="layui-input" type="text" name="start_time" autocomplete="off" lay-verify="required">
{% endif %}
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">结束时间</label>
<div class="layui-input-block">
{% if live.end_time > 0 %}
<input class="layui-input" type="text" name="end_time" autocomplete="off" value="{{ date('Y-m-d H:i:s',live.end_time) }}" {% if live.end_time < time() %}readonly="true"{% endif %} lay-verify="required">
<input class="layui-input" type="text" name="end_time" autocomplete="off" value="{{ date('Y-m-d H:i:s',live.end_time) }}" {% if live.end_time < time() %}readonly{% endif %} lay-verify="required">
{% else %}
<input class="layui-input" type="text" name="end_time" autocomplete="off" lay-verify="required">
{% endif %}
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<div class="layui-input-block">
@ -29,22 +30,18 @@
<button type="button" class="kg-back layui-btn layui-btn-primary">返回</button>
</div>
</div>
</form>
</form>
<form class="layui-form kg-form">
<form class="layui-form kg-form">
<fieldset class="layui-elem-field layui-field-title">
<legend>推流测试</legend>
</fieldset>
<div class="layui-form-item">
<label class="layui-form-label">Stream Name</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="stream_name" value="chapter_{{ chapter.id }}" readonly="readonly">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<div class="layui-input-block">
@ -52,10 +49,13 @@
<button type="button" class="kg-back layui-btn layui-btn-primary">返回</button>
</div>
</div>
</form>
</form>
{% endblock %}
<script>
{% block inline_js %}
<script>
layui.use(['jquery', 'layer', 'laydate'], function () {
@ -86,4 +86,6 @@
});
</script>
</script>
{% endblock %}

View File

@ -1,70 +1,14 @@
<div id="editor"></div>
<div id="vditor"></div>
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.chapter.content','id':chapter.id}) }}">
<div class="layui-form-item">
<textarea class="layui-hide" name="content">{{ read.content }}</textarea>
<textarea id="vditor-textarea" class="layui-hide" name="content">{{ read.content }}</textarea>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<div class="layui-input-block">
<button class="kg-submit layui-btn" lay-submit="true" lay-filter="go">提交</button>
<button type="button" class="kg-back layui-btn layui-btn-primary">返回</button>
<input type="hidden" name="chapter_id" value="{{ chapter.id }}">
</div>
</div>
</form>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/vditor/dist/index.css"/>
<script src="https://cdn.jsdelivr.net/npm/vditor/dist/index.min.js" defer></script>
<script>
layui.use(['jquery'], function () {
var $ = layui.jquery;
var $content = $('textarea[name=content]');
var vditor = new Vditor('editor', {
minHeight: 420,
outline: true,
tab: " ",
resize: {
enable: true
},
cache: {
enable: false
},
preview: {
markdown: {
chinesePunct: true
}
},
counter: {
enable: true,
max: 60000
},
upload: {
url: '/admin/upload/img/editor',
max: 10 * 1024 * 1024,
accept: 'image/*',
headers: {
'X-Csrf-Token': $('meta[name="csrf-token"]').attr('content'),
'X-Requested-With': 'XMLHttpRequest'
},
success: function (editor, responseText) {
console.log(editor, responseText);
var json = JSON.parse(responseText);
var img = '![](' + json.data.src + ')';
vditor.insertValue(img);
}
},
value: $content.val()
});
$('.kg-submit').on('click', function () {
$content.val(vditor.getValue());
});
});
</script>

View File

@ -1,17 +0,0 @@
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.chapter.content','id':chapter.id}) }}">
<div class="layui-form-item">
<textarea name="content" class="layui-hide" id="kg-layedit">{{ read.content }}</textarea>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<div class="layui-input-block">
<button class="kg-submit layui-btn" lay-submit="true" lay-filter="go">提交</button>
<button type="button" class="kg-back layui-btn layui-btn-primary">返回</button>
</div>
</div>
</form>
{{ partial('partials/layedit') }}

View File

@ -1,4 +1,8 @@
{% if play_urls %}
{% extends 'templates/main.volt' %}
{% block content %}
{% if play_urls %}
<fieldset class="layui-elem-field layui-field-title">
<legend>视频信息</legend>
</fieldset>
@ -26,14 +30,13 @@
{% endfor %}
</table>
<br>
{% endif %}
{% endif %}
<fieldset class="layui-elem-field layui-field-title">
<fieldset class="layui-elem-field layui-field-title">
<legend>上传视频</legend>
</fieldset>
<form class="layui-form kg-form" id="vod-form" method="POST" action="{{ url({'for':'admin.chapter.content','id':chapter.id}) }}">
</fieldset>
<form class="layui-form kg-form" id="vod-form" method="POST" action="{{ url({'for':'admin.chapter.content','id':chapter.id}) }}">
<div class="layui-form-item" id="upload-block">
<label class="layui-form-label">视频文件</label>
<div class="layui-input-block">
@ -41,7 +44,6 @@
<input class="layui-hide" type="file" name="file" accept="video/*,audio/*">
</div>
</div>
<div class="layui-form-item layui-hide" id="upload-progress-block">
<label class="layui-form-label">上传进度</label>
<div class="layui-input-block">
@ -50,14 +52,12 @@
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">文件编号</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="file_id" value="{{ vod.file_id }}" readonly="readonly" lay-verify="required">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<div class="layui-input-block">
@ -66,9 +66,16 @@
<input type="hidden" name="chapter_id" value="{{ chapter.id }}">
</div>
</div>
</form>
</form>
{% endblock %}
{{ partial('partials/media_uploader') }}
{{ partial('partials/media_preview') }}
{{ partial('partials/clipboard_tips') }}
{% block include_js %}
{{ js_include('lib/vod-js-sdk-v6.min.js') }}
{{ js_include('lib/clipboard.min.js') }}
{{ js_include('admin/js/media.upload.js') }}
{{ js_include('admin/js/media.preview.js') }}
{{ js_include('admin/js/copy.js') }}
{% endblock %}

View File

@ -1,4 +1,8 @@
<div class="kg-nav">
{% extends 'templates/main.volt' %}
{% block content %}
<div class="kg-nav">
<div class="kg-nav-left">
<span class="layui-breadcrumb">
<a class="kg-back" href="{{ url({'for':'admin.course.chapters','id':course.id}) }}">
@ -17,17 +21,21 @@
<i class="layui-icon layui-icon-add-1"></i>添加课
</a>
</div>
</div>
</div>
{% if course.model == 'vod' %}
{% if course.model == 'vod' %}
{{ partial('chapter/lessons_vod') }}
{% elseif course.model == 'live' %}
{% elseif course.model == 'live' %}
{{ partial('chapter/lessons_live') }}
{% elseif course.model == 'read' %}
{% elseif course.model == 'read' %}
{{ partial('chapter/lessons_read') }}
{% endif %}
{% endif %}
<script>
{% endblock %}
{% block inline_js %}
<script>
layui.use(['jquery', 'layer', 'form'], function () {
@ -57,4 +65,6 @@
});
</script>
</script>
{% endblock %}

View File

@ -1,13 +1,17 @@
{%- macro live_time_info(attrs) %}
{% 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>
<p>结束:{{ date('Y-m-d H:i',attrs['end_time']) }}</p>
{% else %}
N/A
{% endif %}
{%- endmacro %}
{%- endmacro %}
<table class="kg-table layui-table layui-form">
<table class="layui-table kg-table layui-form">
<colgroup>
<col>
<col>
@ -52,4 +56,6 @@
</tr>
{% endfor %}
</tbody>
</table>
</table>
{% endblock %}

View File

@ -1,4 +1,8 @@
<table class="kg-table layui-table layui-form">
{% extends 'templates/main.volt' %}
{% block content %}
<table class="layui-table kg-table layui-form">
<colgroup>
<col>
<col>
@ -43,4 +47,6 @@
</tr>
{% endfor %}
</tbody>
</table>
</table>
{% endblock %}

View File

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

View File

@ -1,9 +1,11 @@
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.course.create'}) }}">
{% extends 'templates/main.volt' %}
{% block content %}
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.course.create'}) }}">
<fieldset class="layui-elem-field layui-field-title">
<legend>添加课程</legend>
</fieldset>
<div class="layui-form-item">
<label class="layui-form-label">类型</label>
<div class="layui-input-block">
@ -12,21 +14,18 @@
<input type="radio" name="model" value="read" title="图文" lay-filter="model">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<div class="layui-input-block">
<div class="layui-form-mid layui-word-aux" id="model-tips"></div>
</div>
</div>
<div class="layui-form-item" style="margin:25px 0px 35px 0px;">
<label class="layui-form-label">标题</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="title" lay-verify="required">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<div class="layui-input-block">
@ -34,10 +33,13 @@
<button type="button" class="kg-back layui-btn layui-btn-primary">返回</button>
</div>
</div>
</form>
</form>
{% endblock %}
<script>
{% block inline_js %}
<script>
layui.use(['jquery', 'form'], function () {
@ -60,4 +62,6 @@
});
</script>
</script>
{% endblock %}

View File

@ -1,4 +1,8 @@
<div class="kg-nav">
{% extends 'templates/main.volt' %}
{% block content %}
<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>
@ -10,9 +14,9 @@
<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>
</div>
</div>
</div>
<table class="kg-table layui-table layui-form">
<table class="kg-table layui-table layui-form">
<colgroup>
<col>
<col>
@ -55,4 +59,6 @@
</tr>
{% endfor %}
</tbody>
</table>
</table>
{% endblock %}

View File

@ -1,16 +1,18 @@
<fieldset class="layui-elem-field layui-field-title">
{% extends 'templates/main.volt' %}
{% block content %}
<fieldset class="layui-elem-field layui-field-title">
<legend>编辑课程</legend>
</fieldset>
<div class="layui-tab layui-tab-brief">
</fieldset>
<div class="layui-tab layui-tab-brief">
<ul class="layui-tab-title kg-tab-title">
<li class="layui-this">基本信息</li>
<li>课程介绍</li>
<li>营销设置</li>
<li>相关课程</li>
</ul>
<div class="layui-tab-content">
<div class="layui-tab-item layui-show">
{{ partial('course/edit_basic') }}
@ -25,5 +27,84 @@
{{ partial('course/edit_related') }}
</div>
</div>
</div>
</div>
{% endblock %}
{% block include_js %}
{{ js_include('lib/xm-select.js') }}
{{ js_include('admin/js/xm-course.js') }}
{{ js_include('admin/js/cover.upload.js') }}
{% endblock %}
{% block inline_js %}
<script>
xmSelect.render({
el: '#xm-category-ids',
name: 'xm_category_ids',
max: 5,
prop: {
name: 'name',
value: 'id'
},
data: {{ xm_categories|json_encode }}
});
xmSelect.render({
el: '#xm-teacher-ids',
name: 'xm_teacher_ids',
paging: true,
max: 5,
prop: {
name: 'name',
value: 'id'
},
data: {{ xm_teachers|json_encode }}
});
xmCourse({{ xm_courses|json_encode }}, '/admin/xm/course/all');
</script>
<script>
layui.use(['jquery', 'form', 'layer'], function () {
var $ = layui.jquery;
var form = layui.form;
var layer = layui.layer;
form.on('radio(price_mode)', function (data) {
var priceBlock = $('#price-block');
if (data.value === 'free') {
priceBlock.hide();
} else {
priceBlock.show();
}
});
$('.kg-submit').on('click', function () {
var xm_category_ids = $('input[name=xm_category_ids]');
var xm_teacher_ids = $('input[name=xm_teacher_ids]');
if (xm_category_ids.val() === '') {
layer.msg('请选择分类', {icon: 2});
return false;
}
if (xm_teacher_ids.val() === '') {
layer.msg('请选择讲师', {icon: 2});
return false;
}
});
});
</script>
{% endblock %}

View File

@ -1,12 +1,10 @@
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.course.update','id':course.id}) }}">
<div class="layui-form-item">
<label class="layui-form-label">标题</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="title" value="{{ course.title }}" lay-verify="required">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">封面</label>
<div class="layui-input-inline">
@ -17,21 +15,18 @@
<button id="change-cover" class="layui-btn layui-btn-sm" type="button">更换</button>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">分类</label>
<div class="layui-input-block">
<div id="xm-category-ids"></div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">讲师</label>
<div class="layui-input-block">
<div id="xm-teacher-ids"></div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">难度</label>
<div class="layui-input-block">
@ -41,7 +36,6 @@
<input type="radio" name="level" value="senior" title="高级" {% if course.level == 'senior' %}checked{% endif %}>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<div class="layui-input-block">
@ -49,59 +43,4 @@
<button type="button" class="kg-back layui-btn layui-btn-primary">返回</button>
</div>
</div>
</form>
{{ partial('partials/cover_uploader') }}
{{ js_include('lib/xm-select.js') }}
<script>
xmSelect.render({
el: '#xm-category-ids',
name: 'xm_category_ids',
max: 5,
prop: {
name: 'name',
value: 'id'
},
data: {{ xm_categories|json_encode }}
});
xmSelect.render({
el: '#xm-teacher-ids',
name: 'xm_teacher_ids',
paging: true,
max: 5,
prop: {
name: 'name',
value: 'id'
},
data: {{ xm_teachers|json_encode }}
});
layui.use(['jquery', 'layer'], function () {
var $ = layui.jquery;
var layer = layui.layer;
$('.kg-submit').on('click', function () {
var xm_category_ids = $('input[name=xm_category_ids]');
var xm_teacher_ids = $('input[name=xm_teacher_ids]');
if (xm_category_ids.val() === '') {
layer.msg('请选择分类', {icon: 2});
return false;
}
if (xm_teacher_ids.val() === '') {
layer.msg('请选择讲师', {icon: 2});
return false;
}
});
})
</script>

View File

@ -1,26 +1,26 @@
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.course.update','id':course.id}) }}">
{% extends 'templates/main.volt' %}
{% block content %}
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.course.update','id':course.id}) }}">
<div class="layui-form-item">
<label class="layui-form-label">详情</label>
<div class="layui-input-block">
<textarea name="details" class="layui-hide" id="kg-layedit">{{ course.details }}</textarea>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">简介</label>
<div class="layui-input-block">
<textarea name="summary" class="layui-textarea">{{ course.summary }}</textarea>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">关键字</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="keywords" value="{{ course.keywords }}" placeholder="多个关键字逗号分隔">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<div class="layui-input-block">
@ -28,7 +28,6 @@
<button type="button" class="kg-back layui-btn layui-btn-primary">返回</button>
</div>
</div>
</form>
</form>
{{ partial('partials/layedit') }}
{% endblock %}

View File

@ -1,12 +1,10 @@
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.course.update','id':course.id}) }}">
<div class="layui-form-item">
<label class="layui-form-label">相关课程</label>
<div class="layui-input-block">
<div id="xm-course-ids"></div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<div class="layui-input-block">
@ -14,11 +12,5 @@
<button type="button" class="kg-back layui-btn layui-btn-primary">返回</button>
</div>
</div>
</form>
{{ js_include('admin/js/xm-course.js') }}
<script>
xmCourse({{ xm_courses|json_encode }}, '/admin/xm/course/all');
</script>

View File

@ -1,21 +1,19 @@
{% set free = course.market_price == 0 %}
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.course.update','id':course.id}) }}">
<div class="layui-form-item">
<label class="layui-form-label">模式</label>
<div class="layui-input-block">
<input type="radio" name="price_mode" value="free" title="免费" lay-filter="price-mode" {% if free %}checked="checked"{% endif %}>
<input type="radio" name="price_mode" value="charge" title="收费" lay-filter="price-mode" {% if not free %}checked="checked"{% endif %}>
<input type="radio" name="price_mode" value="free" title="免费" lay-filter="price_mode" {% if free %}checked="checked"{% endif %}>
<input type="radio" name="price_mode" value="charge" title="收费" lay-filter="price_mode" {% if not free %}checked="checked"{% endif %}>
</div>
</div>
<div id="price-block" {% if free %}style="display:none;"{% endif %}>
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">市场价格</label>
<div class="layui-input-inline">
<input class="layui-input" type="text" name="market_price" value="{{ course.market_price }}" lay-filter="number">
<input class="layui-input" type="text" name="market_price" value="{{ course.market_price }}" lay-verify="number">
</div>
<div class="layui-form-mid layui-word-aux">元</div>
</div>
@ -24,7 +22,7 @@
<div class="layui-inline">
<label class="layui-form-label">会员价格</label>
<div class="layui-input-inline">
<input class="layui-input" type="text" name="vip_price" value="{{ course.vip_price }}" lay-filter="number">
<input class="layui-input" type="text" name="vip_price" value="{{ course.vip_price }}" lay-verify="number">
</div>
<div class="layui-form-mid layui-word-aux">元</div>
</div>
@ -46,7 +44,6 @@
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<div class="layui-input-block">
@ -54,25 +51,4 @@
<button type="button" class="kg-back layui-btn layui-btn-primary">返回</button>
</div>
</div>
</form>
<script>
layui.use(['jquery', 'form'], function () {
var $ = layui.jquery;
var form = layui.form;
form.on('radio(price-mode)', function (data) {
var priceBlock = $('#price-block');
if (data.value === 'free') {
priceBlock.hide();
} else {
priceBlock.show();
}
});
});
</script>

View File

@ -1,4 +1,8 @@
{%- macro model_info(value) %}
{% extends 'templates/main.volt' %}
{% block content %}
{%- macro model_info(value) %}
{% if value == 'vod' %}
<span class="layui-badge layui-bg-green">点播</span>
{% elseif value == 'live' %}
@ -6,9 +10,9 @@
{% elseif value == 'read' %}
<span class="layui-badge layui-bg-black">图文</span>
{% endif %}
{%- endmacro %}
{%- endmacro %}
{%- macro level_info(value) %}
{%- macro level_info(value) %}
难度:<span class="layui-badge layui-bg-gray">
{% if value == 'entry' %}
入门
@ -20,21 +24,21 @@
高级
{% endif %}
</span>
{%- endmacro %}
{%- endmacro %}
{%- macro category_info(category) %}
{%- macro category_info(category) %}
{% if category %}
分类:<a class="layui-badge layui-bg-gray" href="{{ url({'for':'admin.course.list'},{'category_id':category.id}) }}">{{ category.name }}</a>
{% endif %}
{%- endmacro %}
{%- endmacro %}
{%- macro teacher_info(teacher) %}
{%- macro teacher_info(teacher) %}
{% if teacher %}
讲师:<a class="layui-badge layui-bg-gray" href="{{ url({'for':'admin.course.list'},{'teacher_id':teacher.id}) }}">{{ teacher.name }}</a>
{% endif %}
{%- endmacro %}
{%- endmacro %}
<div class="kg-nav">
<div class="kg-nav">
<div class="kg-nav-left">
<span class="layui-breadcrumb">
<a><cite>课程管理</cite></a>
@ -48,9 +52,9 @@
<i class="layui-icon layui-icon-add-1"></i>添加课程
</a>
</div>
</div>
</div>
<table class="kg-table layui-table layui-form">
<table class="layui-table kg-table layui-form">
<colgroup>
<col width="50%">
<col>
@ -113,6 +117,8 @@
</tr>
{% endfor %}
</tbody>
</table>
</table>
{{ partial('partials/pager') }}
{{ partial('partials/pager') }}
{% endblock %}

View File

@ -1,37 +1,35 @@
<form class="layui-form kg-form" method="GET" action="{{ url({'for':'admin.course.list'}) }}">
{% extends 'templates/main.volt' %}
{% block content %}
<form class="layui-form kg-form" method="GET" action="{{ url({'for':'admin.course.list'}) }}">
<fieldset class="layui-elem-field layui-field-title">
<legend>搜索课程</legend>
</fieldset>
<div class="layui-form-item">
<label class="layui-form-label">编号</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="id" placeholder="编号精确匹配">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">标题</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="title" placeholder="标题模糊匹配">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">分类</label>
<div class="layui-input-block">
<div id="xm-category-ids"></div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">讲师</label>
<div class="layui-input-block">
<div id="xm-teacher-ids"></div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">模型</label>
<div class="layui-input-block">
@ -40,7 +38,6 @@
<input type="radio" name="model" value="read" title="图文">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">难度</label>
<div class="layui-input-block">
@ -50,7 +47,6 @@
<input type="radio" name="level" value="senior" title="高级">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">免费</label>
<div class="layui-input-block">
@ -58,7 +54,6 @@
<input type="radio" name="free" value="0" title="否">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">发布</label>
<div class="layui-input-block">
@ -66,7 +61,6 @@
<input type="radio" name="published" value="0" title="否">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">删除</label>
<div class="layui-input-block">
@ -74,7 +68,6 @@
<input type="radio" name="deleted" value="0" title="否">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<div class="layui-input-block">
@ -82,12 +75,19 @@
<button type="button" class="kg-back layui-btn layui-btn-primary">返回</button>
</div>
</div>
</form>
</form>
{% endblock %}
{{ js_include('lib/xm-select.js') }}
{% block include_js %}
<script>
{{ js_include('lib/xm-select.js') }}
{% endblock %}
{% block inline_js %}
<script>
xmSelect.render({
el: '#xm-category-ids',
@ -111,4 +111,6 @@
data: {{ xm_teachers|json_encode }}
});
</script>
</script>
{% endblock %}

View File

@ -1,23 +1,23 @@
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.group.create'}) }}">
{% extends 'templates/main.volt' %}
{% block content %}
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.group.create'}) }}">
<fieldset class="layui-elem-field layui-field-title">
<legend>添加群组</legend>
</fieldset>
<div class="layui-form-item">
<label class="layui-form-label">名称</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="name" lay-verify="required">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">简介</label>
<div class="layui-input-block">
<textarea class="layui-textarea" name="about"></textarea>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">类型</label>
<div class="layui-input-block">
@ -25,7 +25,6 @@
<input type="radio" name="type" value="chat" title="聊天" checked="checked">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<div class="layui-input-block">
@ -33,5 +32,6 @@
<button type="button" class="kg-back layui-btn layui-btn-primary">返回</button>
</div>
</div>
</form>
</form>
{% endblock %}

View File

@ -1,9 +1,11 @@
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.group.update','id':group.id}) }}">
{% extends 'templates/main.volt' %}
{% block content %}
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.group.update','id':group.id}) }}">
<fieldset class="layui-elem-field layui-field-title">
<legend>编辑群组</legend>
</fieldset>
<div class="layui-form-item">
<label class="layui-form-label">头像</label>
<div class="layui-input-inline" style="width: 110px;">
@ -14,28 +16,24 @@
<button id="change-avatar" class="layui-btn layui-btn-sm" type="button">更换</button>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">名称</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="name" value="{{ group.name }}" lay-verify="required">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">简介</label>
<div class="layui-input-block">
<textarea class="layui-textarea" name="about">{{ group.about }}</textarea>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">群主编号</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="owner_id" value="{{ group.owner_id }}" lay-verify="number">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">发布</label>
<div class="layui-input-block">
@ -43,7 +41,6 @@
<input type="radio" name="published" value="0" title="否" {% if group.published == 0 %}checked{% endif %}>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<div class="layui-input-block">
@ -51,7 +48,12 @@
<button type="button" class="kg-back layui-btn layui-btn-primary">返回</button>
</div>
</div>
</form>
</form>
{% endblock %}
{{ partial('partials/avatar_uploader') }}
{% block include_js %}
{{ js_include('admin/js/avatar.upload.js') }}
{% endblock %}

View File

@ -1,20 +1,24 @@
{%- macro type_info(value) %}
{% extends 'templates/main.volt' %}
{% block content %}
{%- macro type_info(value) %}
{% if value == 'course' %}
<span class="layui-badge layui-bg-green">课</span>
{% elseif value == 'chat' %}
<span class="layui-badge layui-bg-blue">聊</span>
{% endif %}
{%- endmacro %}
{%- endmacro %}
{%- macro owner_info(owner) %}
{%- macro owner_info(owner) %}
{% if owner %}
{{ owner.name }}{{ owner.id }}
{% else %}
未设置
{% endif %}
{%- endmacro %}
{%- endmacro %}
<div class="kg-nav">
<div class="kg-nav">
<div class="kg-nav-left">
<span class="layui-breadcrumb">
<a><cite>群组管理</cite></a>
@ -25,9 +29,9 @@
<i class="layui-icon layui-icon-add-1"></i>添加群组
</a>
</div>
</div>
</div>
<table class="kg-table layui-table layui-form">
<table class="kg-table layui-table layui-form">
<colgroup>
<col>
<col>
@ -66,6 +70,8 @@
</tr>
{% endfor %}
</tbody>
</table>
</table>
{{ partial('partials/pager') }}
{{ partial('partials/pager') }}
{% endblock %}

View File

@ -1,37 +1,35 @@
<form class="layui-form kg-form" method="GET" action="{{ url({'for':'admin.group.list'}) }}">
{% extends 'templates/main.volt' %}
{% block content %}
<form class="layui-form kg-form" method="GET" action="{{ url({'for':'admin.group.list'}) }}">
<fieldset class="layui-elem-field layui-field-title">
<legend>搜索群组</legend>
</fieldset>
<div class="layui-form-item">
<label class="layui-form-label">群组编号</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="id" placeholder="群组编号精确匹配">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">群组名称</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="name" placeholder="群组名称模糊匹配">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">群主编号</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="user_id" placeholder="群主编号精确匹配">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">课程编号</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="course_id" placeholder="课程编号精确匹配">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">类型</label>
<div class="layui-input-block">
@ -39,7 +37,6 @@
<input type="radio" name="type" value="chat" title="聊天">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">发布</label>
<div class="layui-input-block">
@ -47,7 +44,6 @@
<input type="radio" name="published" value="0" title="否">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">删除</label>
<div class="layui-input-block">
@ -55,7 +51,6 @@
<input type="radio" name="deleted" value="0" title="否">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<div class="layui-input-block">
@ -63,5 +58,6 @@
<button type="button" class="kg-back layui-btn layui-btn-primary">返回</button>
</div>
</div>
</form>
</form>
{% endblock %}

View File

@ -1,30 +1,29 @@
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.help.create'}) }}">
{% extends 'templates/main.volt' %}
{% block content %}
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.help.create'}) }}">
<fieldset class="layui-elem-field layui-field-title">
<legend>添加帮助</legend>
</fieldset>
<div class="layui-form-item">
<label class="layui-form-label">标题</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="title" lay-verify="required">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">内容</label>
<div class="layui-input-block">
<textarea name="content" class="layui-hide" id="kg-layedit"></textarea>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">排序</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="priority" value="10" lay-verify="number">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">发布</label>
<div class="layui-input-block">
@ -32,7 +31,6 @@
<input type="radio" name="published" value="0" title="否">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<div class="layui-input-block">
@ -40,7 +38,6 @@
<button type="button" class="kg-back layui-btn layui-btn-primary">返回</button>
</div>
</div>
</form>
</form>
{{ partial('partials/layedit') }}
{% endblock %}

View File

@ -1,30 +1,29 @@
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.help.update','id':help.id}) }}">
{% extends 'templates/main.volt' %}
{% block content %}
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.help.update','id':help.id}) }}">
<fieldset class="layui-elem-field layui-field-title">
<legend>编辑帮助</legend>
</fieldset>
<div class="layui-form-item">
<label class="layui-form-label">标题</label>
<div class="layui-input-block">
<input type="text" name="title" value="{{ help.title }}" class="layui-input" lay-verify="required">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">内容</label>
<div class="layui-input-block">
<textarea name="content" class="layui-hide" id="kg-layedit">{{ help.content }}</textarea>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">排序</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="priority" value="{{ help.priority }}" lay-verify="number">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">发布</label>
<div class="layui-input-block">
@ -32,7 +31,6 @@
<input type="radio" name="published" value="0" title="否" {% if help.published == 0 %}checked{% endif %}>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<div class="layui-input-block">
@ -40,8 +38,7 @@
<button type="button" class="kg-back layui-btn layui-btn-primary">返回</button>
</div>
</div>
</form>
</form>
{{ partial('partials/layedit') }}
{% endblock %}

View File

@ -1,4 +1,8 @@
<div class="kg-nav">
{% extends 'templates/main.volt' %}
{% block content %}
<div class="kg-nav">
<div class="kg-nav-left">
<span class="layui-breadcrumb">
<a><cite>帮助管理</cite></a>
@ -9,9 +13,9 @@
<i class="layui-icon layui-icon-add-1"></i>添加帮助
</a>
</div>
</div>
</div>
<table class="kg-table layui-table layui-form">
<table class="kg-table layui-table layui-form">
<colgroup>
<col>
<col>
@ -54,4 +58,6 @@
</tr>
{% endfor %}
</tbody>
</table>
</table>
{% endblock %}

View File

@ -1,6 +1,5 @@
<!DOCTYPE html>
<html>
<html lang="zh-CN-Hans">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
@ -11,11 +10,8 @@
{{ js_include('lib/layui/layui.js') }}
{{ js_include('admin/js/index.js') }}
</head>
<body class="layui-layout-body">
<div class="layui-layout layui-layout-admin">
<div class="layui-header">
<div class="layui-logo">COURSE ADMIN</div>
<div class="kg-side-menu-bar">
@ -42,7 +38,6 @@
</li>
</ul>
</div>
<div class="layui-side layui-bg-black">
<div class="layui-side-scroll">
{% for key,level in left_menus %}
@ -61,16 +56,12 @@
{% endfor %}
</div>
</div>
<div class="layui-body">
<iframe name="content" style="width:100%;height:100%;border:0;" src="{{ url({'for':'admin.main'}) }}"></iframe>
</div>
<div class="layui-footer">
© 2020 <a href="http://koogua.com"><b>koogua.com</b></a> all rights reserved
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,5 @@
{% extends 'templates/main.volt' %}
{% block content %}
{% endblock %}

View File

@ -1,9 +1,11 @@
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.nav.create'}) }}">
{% extends 'templates/main.volt' %}
{% block content %}
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.nav.create'}) }}">
<fieldset class="layui-elem-field layui-field-title">
<legend>添加导航</legend>
</fieldset>
{% if parent_id > 0 %}
<div class="layui-form-item">
<label class="layui-form-label">父级</label>
@ -17,28 +19,24 @@
</div>
</div>
{% endif %}
<div class="layui-form-item">
<label class="layui-form-label">名称</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="name" lay-verify="required">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">地址</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="url" lay-verify="required">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">排序</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="priority" value="10" lay-verify="number">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">位置</label>
<div class="layui-input-block">
@ -46,7 +44,6 @@
<input type="radio" name="position" value="bottom" title="底部">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">目标</label>
<div class="layui-input-block">
@ -54,7 +51,6 @@
<input type="radio" name="target" value="_self" title="原窗口">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">发布</label>
<div class="layui-input-block">
@ -62,7 +58,6 @@
<input type="radio" name="published" value="0" title="否">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<div class="layui-input-block">
@ -71,5 +66,6 @@
<input type="hidden" name="parent_id" value="{{ parent_id }}">
</div>
</div>
</form>
</form>
{% endblock %}

View File

@ -1,30 +1,29 @@
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.nav.update','id':nav.id}) }}">
{% extends 'templates/main.volt' %}
{% block content %}
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.nav.update','id':nav.id}) }}">
<fieldset class="layui-elem-field layui-field-title">
<legend>编辑导航</legend>
</fieldset>
<div class="layui-form-item">
<label class="layui-form-label">名称</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="name" value="{{ nav.name }}" lay-verify="required">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">地址</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="url" value="{{ nav.url }}" lay-verify="required">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">排序</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="priority" value="{{ nav.priority }}" lay-verify="number">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">位置</label>
<div class="layui-input-block">
@ -32,7 +31,6 @@
<input type="radio" name="position" value="bottom" title="底部" {% if nav.position == 'bottom' %}checked{% endif %}>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">目标</label>
<div class="layui-input-block">
@ -40,7 +38,6 @@
<input type="radio" name="target" value="_self" title="原窗口" {% if nav.target == '_self' %}checked{% endif %}>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">发布</label>
<div class="layui-input-block">
@ -48,7 +45,6 @@
<input type="radio" name="published" value="0" title="否" {% if nav.published == 0 %}checked{% endif %}>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<div class="layui-input-block">
@ -56,5 +52,6 @@
<button type="button" class="kg-back layui-btn layui-btn-primary">返回</button>
</div>
</div>
</form>
</form>
{% endblock %}

View File

@ -1,20 +1,24 @@
{%- macro position_info(value) %}
{% extends 'templates/main.volt' %}
{% block content %}
{%- macro position_info(value) %}
{% if value == 'top' %}
<span class="layui-badge layui-bg-green">顶部</span>
{% elseif value == 'bottom' %}
<span class="layui-badge layui-bg-blue">底部</span>
{% endif %}
{%- endmacro %}
{%- endmacro %}
{%- macro target_info(value) %}
{%- macro target_info(value) %}
{% if value == '_blank' %}
<span class="layui-badge layui-bg-green">新窗口</span>
{% elseif value == '_self' %}
<span class="layui-badge layui-bg-blue">原窗口</span>
{% endif %}
{%- endmacro %}
{%- endmacro %}
<div class="kg-nav">
<div class="kg-nav">
<div class="kg-nav-left">
<span class="layui-breadcrumb">
{% if parent.id > 0 %}
@ -31,9 +35,9 @@
<i class="layui-icon layui-icon-add-1"></i>添加导航
</a>
</div>
</div>
</div>
<table class="kg-table layui-table layui-form">
<table class="layui-table kg-table layui-form">
<colgroup>
<col>
<col>
@ -89,4 +93,6 @@
</tr>
{% endfor %}
</tbody>
</table>
</table>
{% endblock %}

View File

@ -1,6 +1,10 @@
{{ partial('order/macro') }}
{% extends 'templates/main.volt' %}
<div class="kg-nav">
{% block content %}
{{ partial('order/macro') }}
<div class="kg-nav">
<div class="kg-nav-left">
<span class="layui-breadcrumb">
<a><cite>订单管理</cite></a>
@ -11,9 +15,9 @@
<i class="layui-icon layui-icon-search"></i>搜索订单
</a>
</div>
</div>
</div>
<table class="kg-table layui-table">
<table class="layui-table kg-table">
<colgroup>
<col>
<col>
@ -52,6 +56,8 @@
</tr>
{% endfor %}
</tbody>
</table>
</table>
{{ partial('partials/pager') }}
{{ partial('partials/pager') }}
{% endblock %}

View File

@ -1,23 +1,23 @@
<form class="layui-form kg-form" method="GET" action="{{ url({'for':'admin.order.list'}) }}">
{% extends 'templates/main.volt' %}
{% block content %}
<form class="layui-form kg-form" method="GET" action="{{ url({'for':'admin.order.list'}) }}">
<fieldset class="layui-elem-field layui-field-title">
<legend>搜索订单</legend>
</fieldset>
<div class="layui-form-item">
<label class="layui-form-label">用户编号</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="owner_id" placeholder="用户编号精确匹配">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">订单编号</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="sn" placeholder="订单编号精确匹配">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">订单类型</label>
<div class="layui-input-block">
@ -28,7 +28,6 @@
<input type="radio" name="item_type" value="test" title="测试">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">订单状态</label>
<div class="layui-input-block">
@ -38,18 +37,16 @@
<input type="radio" name="status" value="refunded" title="已退款">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">创建时间</label>
<div class="layui-input-inline">
<input class="layui-input time-range" type="text" name="start_time" autocomplete="off">
</div>
<div class="layui-form-mid"> - </div>
<div class="layui-form-mid"> -</div>
<div class="layui-input-inline">
<input class="layui-input time-range" type="text" name="end_time" autocomplete="off">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<div class="layui-input-block">
@ -57,10 +54,13 @@
<button type="button" class="kg-back layui-btn layui-btn-primary">返回</button>
</div>
</div>
</form>
</form>
{% endblock %}
<script>
{% block inline_js %}
<script>
layui.use(['form', 'laydate'], function () {
@ -76,4 +76,6 @@
});
</script>
</script>
{% endblock %}

View File

@ -1,20 +1,23 @@
{{ partial('order/macro') }}
{{ partial('trade/macro') }}
{{ partial('refund/macro') }}
{% extends 'templates/main.volt' %}
{{ partial('order/order_info') }}
{% block content %}
<br>
{{ partial('order/macro') }}
{{ partial('trade/macro') }}
{{ partial('refund/macro') }}
{{ partial('order/order_info') }}
<div class="kg-text-center">
<button class="kg-back layui-btn layui-bg-gray">返回上页</button>
</div>
<br>
{% if refunds.count() > 0 %}
<div class="kg-text-center">
<button class="layui-btn layui-bg-gray kg-back">返回上页</button>
</div>
{% if refunds.count() > 0 %}
<fieldset class="layui-elem-field layui-field-title">
<legend>退款信息</legend>
</fieldset>
<table class="kg-table layui-table">
<table class="layui-table kg-table">
<tr>
<th>退款序号</th>
<th>退款金额</th>
@ -37,13 +40,13 @@
{% endfor %}
</table>
<br>
{% endif %}
{% endif %}
{% if trades.count() > 0 %}
{% if trades.count() > 0 %}
<fieldset class="layui-elem-field layui-field-title">
<legend>交易信息</legend>
</fieldset>
<table class="kg-table layui-table">
<table class="layui-table kg-table">
<tr>
<th>交易序号</th>
<th>交易金额</th>
@ -66,8 +69,14 @@
{% endfor %}
</table>
<br>
{% endif %}
{% endif %}
{{ partial('order/user_info') }}
{{ partial('order/user_info') }}
{{ js_include('admin/js/status-history.js') }}
{% endblock %}
{% block include_js %}
{{ js_include('admin/js/status-history.js') }}
{% endblock %}

View File

@ -1,6 +1,10 @@
{{ partial('order/macro') }}
{% extends 'templates/main.volt' %}
<table class="kg-table layui-table">
{% block content %}
{{ partial('order/macro') }}
<table class="layui-table kg-table">
<tr>
<td>状态</td>
<td>时间</td>
@ -11,4 +15,6 @@
<td>{{ date('Y-m-d H:i:s',item.create_time) }}</td>
</tr>
{% endfor %}
</table>
</table>
{% endblock %}

View File

@ -1,23 +1,23 @@
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.package.create'}) }}">
{% extends 'templates/main.volt' %}
{% block content %}
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.package.create'}) }}">
<fieldset class="layui-elem-field layui-field-title">
<legend>添加套餐</legend>
</fieldset>
<div class="layui-form-item">
<label class="layui-form-label">标题</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="title" lay-verify="required">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">简介</label>
<div class="layui-input-block">
<textarea class="layui-textarea" name="summary"></textarea>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<div class="layui-input-block">
@ -25,5 +25,6 @@
<button type="button" class="kg-back layui-btn layui-btn-primary">返回</button>
</div>
</div>
</form>
</form>
{% endblock %}

View File

@ -1,35 +1,34 @@
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.package.update','id':package.id}) }}">
{% extends 'templates/main.volt' %}
{% block content %}
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.package.update','id':package.id}) }}">
<fieldset class="layui-elem-field layui-field-title">
<legend>编辑套餐</legend>
</fieldset>
<div class="layui-form-item">
<label class="layui-form-label">标题</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="title" value="{{ package.title }}" lay-verify="required">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">简介</label>
<div class="layui-input-block">
<textarea class="layui-textarea" name="summary">{{ package.summary }}</textarea>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">相关课程</label>
<div class="layui-input-block">
<div id="xm-course-ids"></div>
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">市场价格</label>
<div class="layui-input-inline">
<input class="layui-input" type="text" name="market_price" value="{{ package.market_price }}" lay-filter="number">
<input class="layui-input" type="text" name="market_price" value="{{ package.market_price }}" lay-verify="number">
</div>
<div class="layui-form-mid layui-word-aux">元</div>
<div class="layui-form-mid">
@ -37,12 +36,11 @@
</div>
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">会员价格</label>
<div class="layui-input-inline">
<input class="layui-input" type="text" name="vip_price" value="{{ package.vip_price }}" lay-filter="number">
<input class="layui-input" type="text" name="vip_price" value="{{ package.vip_price }}" lay-verify="number">
</div>
<div class="layui-form-mid layui-word-aux">元</div>
<div class="layui-form-mid">
@ -50,7 +48,6 @@
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<div class="layui-input-block">
@ -58,13 +55,20 @@
<button type="button" class="kg-back layui-btn layui-btn-primary">返回</button>
</div>
</div>
</form>
</form>
{% endblock %}
{{ js_include('lib/xm-select.js') }}
{{ js_include('admin/js/xm-course.js') }}
{% block include_js %}
<script>
{{ js_include('lib/xm-select.js') }}
{{ js_include('admin/js/xm-course.js') }}
{% endblock %}
{% block inline_js %}
<script>
xmCourse({{ xm_courses|json_encode }}, '/admin/xm/course/paid');
@ -75,7 +79,7 @@
$('.kg-guiding').on('click', function () {
var xmCourseIds = $('input[name=xm_course_ids]').val();
var url = '/admin/package/guiding?xm_course_ids='+xmCourseIds;
var url = '/admin/package/guiding?xm_course_ids=' + xmCourseIds;
layer.open({
id: 'xm-course',
type: 2,
@ -88,4 +92,6 @@
});
</script>
</script>
{% endblock %}

View File

@ -1,6 +1,10 @@
{{ partial('course/expiry_macro') }}
{% extends 'templates/main.volt' %}
<table class="kg-table layui-table">
{% block content %}
{{ partial('course/expiry_macro') }}
<table class="layui-table kg-table">
<colgroup>
<col>
<col>
@ -28,13 +32,16 @@
</tr>
{% endfor %}
</tbody>
</table>
</table>
<br>
<br>
<div class="kg-price-guiding">
<div class="kg-price-guiding">
建议市场价:<span class="layui-badge layui-bg-red">¥{{ guiding_price.market_price }}</span>
&nbsp;&nbsp;
建议会员价:<span class="layui-badge layui-bg-red">¥{{ guiding_price.vip_price }}</span>
</div>
<br>
</div>
<br>
{% endblock %}

View File

@ -1,6 +1,10 @@
<div class="kg-nav">
{% extends 'templates/main.volt' %}
{% block content %}
<div class="kg-nav">
<div class="kg-nav-left">
<span c.lass="layui-breadcrumb">
<span class="layui-breadcrumb">
<a><cite>套餐管理</cite></a>
</span>
</div>
@ -9,9 +13,9 @@
<i class="layui-icon layui-icon-add-1"></i>添加套餐
</a>
</div>
</div>
</div>
<table class="kg-table layui-table layui-form">
<table class="layui-table kg-table layui-form">
<colgroup>
<col>
<col>
@ -53,6 +57,8 @@
</tr>
{% endfor %}
</tbody>
</table>
</table>
{{ partial('partials/pager') }}
{{ partial('partials/pager') }}
{% endblock %}

View File

@ -1,23 +1,23 @@
<form class="layui-form kg-form" method="GET" action="{{ url({'for':'admin.package.list'}) }}">
{% extends 'templates/main.volt' %}
{% block content %}
<form class="layui-form kg-form" method="GET" action="{{ url({'for':'admin.package.list'}) }}">
<fieldset class="layui-elem-field layui-field-title">
<legend>搜索套餐</legend>
</fieldset>
<div class="layui-form-item">
<label class="layui-form-label">编号</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="id" placeholder="编号精确匹配">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">标题</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="title" placeholder="标题模糊匹配">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">发布</label>
<div class="layui-input-block">
@ -25,7 +25,6 @@
<input type="radio" name="published" value="0" title="否">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">删除</label>
<div class="layui-input-block">
@ -33,7 +32,6 @@
<input type="radio" name="deleted" value="0" title="否">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<div class="layui-input-block">
@ -41,5 +39,6 @@
<button type="button" class="kg-back layui-btn layui-btn-primary">返回</button>
</div>
</div>
</form>
</form>
{% endblock %}

View File

@ -1,23 +1,23 @@
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.page.create'}) }}">
{% extends 'templates/main.volt' %}
{% block content %}
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.page.create'}) }}">
<fieldset class="layui-elem-field layui-field-title">
<legend>添加单页</legend>
</fieldset>
<div class="layui-form-item">
<label class="layui-form-label">标题</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="title" lay-verify="required">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">内容</label>
<div class="layui-input-block">
<textarea name="content" class="layui-hide" id="kg-layedit"></textarea>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">发布</label>
<div class="layui-input-block">
@ -25,7 +25,6 @@
<input type="radio" name="published" value="0" title="否">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<div class="layui-input-block">
@ -33,7 +32,6 @@
<button type="button" class="kg-back layui-btn layui-btn-primary">返回</button>
</div>
</div>
</form>
{{ partial('partials/layedit') }}
{% endblock %}

View File

@ -1,23 +1,23 @@
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.page.update','id':page.id}) }}">
{% extends 'templates/main.volt' %}
{% block content %}
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.page.update','id':page.id}) }}">
<fieldset class="layui-elem-field layui-field-title">
<legend>编辑单页</legend>
</fieldset>
<div class="layui-form-item">
<label class="layui-form-label">标题</label>
<div class="layui-input-block">
<input type="text" name="title" value="{{ page.title }}" class="layui-input" lay-verify="required">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">内容</label>
<div class="layui-input-block">
<textarea name="content" class="layui-hide" id="kg-layedit">{{ page.content }}</textarea>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">发布</label>
<div class="layui-input-block">
@ -25,7 +25,6 @@
<input type="radio" name="published" value="0" title="否" {% if page.published == 0 %}checked{% endif %}>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<div class="layui-input-block">
@ -33,8 +32,6 @@
<button type="button" class="kg-back layui-btn layui-btn-primary">返回</button>
</div>
</div>
</form>
</form>
{{ partial('partials/layedit') }}
{% endblock %}

View File

@ -1,4 +1,8 @@
<div class="kg-nav">
{% extends 'templates/main.volt' %}
{% block content %}
<div class="kg-nav">
<div class="kg-nav-left">
<span class="layui-breadcrumb">
<a><cite>单页管理</cite></a>
@ -9,9 +13,9 @@
<i class="layui-icon layui-icon-add-1"></i>添加单页
</a>
</div>
</div>
</div>
<table class="kg-table layui-table layui-form">
<table class="layui-table kg-table layui-form">
<colgroup>
<col>
<col>
@ -51,6 +55,8 @@
</tr>
{% endfor %}
</tbody>
</table>
</table>
{{ partial('partials/pager') }}
{{ partial('partials/pager') }}
{% endblock %}

View File

@ -1,49 +0,0 @@
<script>
layui.use(['jquery', 'layer', 'upload'], function () {
var $ = layui.jquery;
var layer = layui.layer;
var upload = layui.upload;
upload.render({
elem: '#change-avatar',
url: '/admin/upload/img/avatar',
accept: 'images',
acceptMime: 'image/*',
size: 512,
auto: false,
before: function () {
layer.load();
},
choose: function (obj) {
var flag = true;
obj.preview(function (index, file, result) {
console.log(file);
var img = new Image();
img.src = result;
img.onload = function () {
if (img.width < 1000 && img.height < 1000) {
obj.upload(index, file);
} else {
flag = false;
layer.msg("图片尺寸必须小于 1000 * 1000");
return false;
}
};
return flag;
});
},
done: function (res, index, upload) {
$('#img-avatar').attr('src', res.data.src);
$('input[name=avatar]').val(res.data.src);
layer.closeAll('loading');
},
error: function (index, upload) {
layer.msg('上传文件失败', {icon: 2});
}
});
});
</script>

View File

@ -1,16 +0,0 @@
{{ js_include('lib/clipboard.min.js') }}
<script>
layui.use(['layer'], function () {
var layer = layui.layer;
var clipboard = new ClipboardJS('.kg-copy');
clipboard.on('success', function (e) {
layer.msg('内容已经复制到剪贴板');
});
});
</script>

View File

@ -1,29 +0,0 @@
<script>
layui.use(['jquery', 'layer', 'upload'], function () {
var $ = layui.jquery;
var layer = layui.layer;
var upload = layui.upload;
upload.render({
elem: '#change-cover',
url: '/admin/upload/img/cover',
accept: 'images',
acceptMime: 'image/*',
before: function () {
layer.load();
},
done: function (res, index, upload) {
$('#img-cover').attr('src', res.data.src);
$('input[name=cover]').val(res.data.src);
layer.closeAll('loading');
},
error: function (index, upload) {
layer.msg('上传文件失败', {icon: 2});
}
});
});
</script>

View File

@ -1,22 +0,0 @@
<script>
layui.use(['jquery', 'layer'], function () {
var $ = layui.jquery;
var layer = layui.layer;
$('.kg-ip2region').on('click', function () {
var ip = $(this).data('ip');
var url = '/admin/ip2region?ip=' + ip;
layer.open({
type: 2,
title: '地理位置',
resize: false,
area: ['640px', '180px'],
content: [url, 'no']
});
});
});
</script>

View File

@ -1,19 +0,0 @@
<script>
layui.use(['jquery', 'layedit'], function () {
var $ = layui.jquery;
var layedit = layui.layedit;
layedit.set({
uploadImage: {url: '/admin/upload/img/content'}
});
var index = layedit.build('kg-layedit');
$('.kg-submit').on('click', function () {
layedit.sync(index);
});
});
</script>

View File

@ -1,24 +0,0 @@
<script>
layui.use(['jquery', 'layer'], function () {
var $ = layui.jquery;
var layer = layui.layer;
$('.kg-preview').on('click', function () {
var chapterId = $(this).attr('chapter-id');
var playUrl = $(this).attr('play-url');
var frameUrl = '/admin/vod/player?chapter_id=' + chapterId + '&play_url=' + playUrl;
layer.open({
id: 'player',
type: 2,
title: '媒体播放器',
resize: false,
area: ['720px', '445px'],
content: [frameUrl, 'no']
});
});
});
</script>

View File

@ -1,64 +0,0 @@
{{ js_include('lib/vod-js-sdk-v6.min.js') }}
<script>
layui.use(['jquery', 'element'], function () {
var $ = layui.jquery;
var element = layui.element;
var getSignature = function () {
var result = '';
$.ajax({
type: 'POST',
url: '/admin/vod/upload/sign',
async: false,
success: function (res) {
result = res.sign;
}
});
return result;
};
$('#upload-btn').on('click', function () {
$('input[name=file]').trigger('click');
});
$('input[name=file]').on('change', function (e) {
var tcVod = new TcVod.default({
getSignature: getSignature
});
var uploader = tcVod.upload({
mediaFile: this.files[0]
});
$('#upload-block').addClass('layui-hide');
$('#upload-progress-block').removeClass('layui-hide');
uploader.on('media_progress', function (info) {
if (!isNaN(info.percent)) {
var percent = Math.ceil(100 * info.percent);
element.progress('upload-progress', percent + '%');
}
});
uploader.on('media_upload', function (info) {
});
uploader.done().then(function (result) {
$('input[name=file_id]').val(result.fileId);
$.ajax({
type: 'POST',
url: $('#vod-form').attr('action'),
data: {file_id: result.fileId}
});
});
});
});
</script>

View File

@ -1,4 +1,8 @@
<table class="kg-table layui-table">
{% extends 'templates/main.volt' %}
{% block content %}
<table class="kg-table layui-table">
<tr>
<th>国家</th>
<th>省份</th>
@ -11,4 +15,6 @@
<td>{{ region.city }}</td>
<td>{{ region.isp }}</td>
</tr>
</table>
</table>
{% endblock %}

View File

@ -1,17 +1,18 @@
<form class="kg-login-form layui-form" method="POST" action="{{ url({'for':'admin.login'}) }}">
{% extends 'templates/main.volt' %}
{% block content %}
<form class="kg-login-form layui-form" method="POST" action="{{ url({'for':'admin.login'}) }}">
<div class="layui-form-item">
<div class="layui-input-block">
<input class="layui-input" type="text" name="account" autocomplete="off" placeholder="手机 / 邮箱" lay-verify="required">
</div>
</div>
<div class="layui-form-item">
<div class="layui-input-block">
<input class="layui-input" type="password" name="password" autocomplete="off" placeholder="密码" lay-verify="required">
</div>
</div>
{% if captcha.enabled == 1 %}
<div id="captcha-block" class="layui-form-item">
<div class="layui-input-block">
@ -19,7 +20,6 @@
</div>
</div>
{% endif %}
<div class="layui-form-item">
<div class="layui-input-block">
{% set disabled = captcha.enabled ? 'disabled="disabled"' : '' %}
@ -28,16 +28,19 @@
<input type="hidden" name="rand">
</div>
</div>
</form>
</form>
{% endblock %}
<script>
{% block inline_js %}
<script>
if (window !== top) {
top.location.href = window.location.href;
}
</script>
</script>
{% if captcha.enabled == 1 %}
{% if captcha.enabled == 1 %}
<script src="https://ssl.captcha.qq.com/TCaptcha.js"></script>
@ -61,4 +64,6 @@
</script>
{% endif %}
{% endif %}
{% endblock %}

View File

@ -1,6 +1,10 @@
{{ partial('refund/macro') }}
{% extends 'templates/main.volt' %}
<div class="kg-nav">
{% block content %}
{{ partial('refund/macro') }}
<div class="kg-nav">
<div class="kg-nav-left">
<span class="layui-breadcrumb">
<a><cite>退款管理</cite></a>
@ -11,9 +15,9 @@
<i class="layui-icon layui-icon-search"></i>搜索退款
</a>
</div>
</div>
</div>
<table class="kg-table layui-table">
<table class="layui-table kg-table">
<colgroup>
<col>
<col>
@ -52,6 +56,8 @@
</tr>
{% endfor %}
</tbody>
</table>
</table>
{{ partial('partials/pager') }}
{{ partial('partials/pager') }}
{% endblock %}

View File

@ -1,23 +1,23 @@
<form class="layui-form kg-form" method="GET" action="{{ url({'for':'admin.refund.list'}) }}">
{% extends 'templates/main.volt' %}
{% block content %}
<form class="layui-form kg-form" method="GET" action="{{ url({'for':'admin.refund.list'}) }}">
<fieldset class="layui-elem-field layui-field-title">
<legend>搜索退款</legend>
</fieldset>
<div class="layui-form-item">
<label class="layui-form-label">订单编号</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="order_id" placeholder="订单编号精确匹配">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">用户编号</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="owner_id" placeholder="用户编号精确匹配">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">退款状态</label>
<div class="layui-input-block">
@ -28,18 +28,16 @@
<input type="radio" name="status" value="finished" title="已完成">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">创建时间</label>
<div class="layui-input-inline">
<input class="layui-input time-range" type="text" name="start_time" autocomplete="off">
</div>
<div class="layui-form-mid"> - </div>
<div class="layui-form-mid"> -</div>
<div class="layui-input-inline">
<input class="layui-input time-range" type="text" name="end_time" autocomplete="off">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<div class="layui-input-block">
@ -47,10 +45,13 @@
<button type="button" class="kg-back layui-btn layui-btn-primary">返回</button>
</div>
</div>
</form>
</form>
{% endblock %}
<script>
{% block inline_js %}
<script>
layui.use(['laydate'], function () {
@ -66,4 +67,6 @@
});
</script>
</script>
{% endblock %}

View File

@ -1,15 +1,19 @@
{{ partial('order/macro') }}
{{ partial('trade/macro') }}
{{ partial('refund/macro') }}
{% extends 'templates/main.volt' %}
{% set refund_sh_url = url({'for':'admin.refund.status_history','id':refund.id}) %}
{% set refund_review_url = url({'for':'admin.refund.review','id':refund.id}) %}
{% block content %}
<fieldset class="layui-elem-field layui-field-title">
{{ partial('order/macro') }}
{{ partial('trade/macro') }}
{{ partial('refund/macro') }}
{% set refund_sh_url = url({'for':'admin.refund.status_history','id':refund.id}) %}
{% set refund_review_url = url({'for':'admin.refund.review','id':refund.id}) %}
<fieldset class="layui-elem-field layui-field-title">
<legend>退款信息</legend>
</fieldset>
</fieldset>
<table class="kg-table layui-table">
<table class="layui-table kg-table">
<tr>
<th>退款序号</th>
<th>退款金额</th>
@ -31,11 +35,11 @@
<td><a class="kg-status-history" href="javascript:" title="查看历史状态" data-url="{{ refund_sh_url }}">{{ refund_status(refund.status) }}</a></td>
<td>{{ date('Y-m-d H:i:s',refund.create_time) }}</td>
</tr>
</table>
</table>
<br>
<br>
{% if refund.status == 'pending' %}
{% if refund.status == 'pending' %}
<form class="layui-form kg-form" method="POST" action="{{ refund_review_url }}">
<fieldset class="layui-elem-field layui-field-title">
<legend>审核退款</legend>
@ -61,22 +65,28 @@
</div>
</div>
</form>
{% else %}
{% else %}
<div class="kg-text-center">
<button class="layui-btn layui-bg-gray kg-back">返回上页</button>
</div>
{% endif %}
{% endif %}
<br>
<br>
{{ partial('trade/trade_info') }}
{{ partial('trade/trade_info') }}
<br>
<br>
{{ partial('order/order_info') }}
{{ partial('order/order_info') }}
<br>
<br>
{{ partial('order/user_info') }}
{{ partial('order/user_info') }}
{{ js_include('admin/js/status-history.js') }}
{% endblock %}
{% block include_js %}
{{ js_include('admin/js/status-history.js') }}
{% endblock %}

View File

@ -1,6 +1,10 @@
{{ partial('refund/macro') }}
{% extends 'templates/main.volt' %}
<table class="kg-table layui-table">
{% block content %}
{{ partial('refund/macro') }}
<table class="kg-table layui-table">
<tr>
<td>状态</td>
<td>时间</td>
@ -11,4 +15,6 @@
<td>{{ date('Y-m-d H:i:s',item.create_time) }}</td>
</tr>
{% endfor %}
</table>
</table>
{% endblock %}

View File

@ -1,9 +1,11 @@
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.review.update','id':review.id}) }}">
{% extends 'templates/main.volt' %}
{% block content %}
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.review.update','id':review.id}) }}">
<fieldset class="layui-elem-field layui-field-title">
<legend>编辑评价</legend>
</fieldset>
<div class="layui-form-item">
<label class="layui-form-label">评分</label>
<div class="layui-input-block">
@ -11,14 +13,12 @@
<input type="hidden" name="rating" value="{{ review.rating }}"/>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">评价</label>
<div class="layui-input-block">
<textarea name="content" class="layui-textarea" lay-verify="required">{{ review.content }}</textarea>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">发布</label>
<div class="layui-input-block">
@ -26,7 +26,6 @@
<input type="radio" name="published" value="0" title="否" {% if review.published == 0 %}checked="checked"{% endif %}>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<div class="layui-input-block">
@ -34,10 +33,13 @@
<button type="button" class="kg-back layui-btn layui-btn-primary">返回</button>
</div>
</div>
</form>
</form>
{% endblock %}
<script>
{% block inline_js %}
<script>
layui.use(['jquery', 'rate'], function () {
@ -54,4 +56,6 @@
});
</script>
</script>
{% endblock %}

View File

@ -1,4 +1,8 @@
<div class="kg-nav">
{% extends 'templates/main.volt' %}
{% block content %}
<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>
@ -13,9 +17,9 @@
<i class="layui-icon layui-icon-search"></i>搜索评价
</a>
</div>
</div>
</div>
<table class="kg-table layui-table layui-form">
<table class="layui-table kg-table layui-form">
<colgroup>
<col>
<col>
@ -62,6 +66,8 @@
</tr>
{% endfor %}
</tbody>
</table>
</table>
{{ partial('partials/pager') }}
{{ partial('partials/pager') }}
{% endblock %}

View File

@ -1,30 +1,29 @@
<form class="layui-form kg-form" method="GET" action="{{ url({'for':'admin.review.list'}) }}">
{% extends 'templates/main.volt' %}
{% block content %}
<form class="layui-form kg-form" method="GET" action="{{ url({'for':'admin.review.list'}) }}">
<fieldset class="layui-elem-field layui-field-title">
<legend>搜索评价</legend>
</fieldset>
<div class="layui-form-item">
<label class="layui-form-label">评价编号</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="id" placeholder="评价编号精确匹配">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">课程编号</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="course_id" placeholder="课程编号精确匹配">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">用户编号</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="owner_id" placeholder="用户编号精确匹配">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">发布</label>
<div class="layui-input-block">
@ -32,7 +31,6 @@
<input type="radio" name="published" value="0" title="否">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">删除</label>
<div class="layui-input-block">
@ -40,7 +38,6 @@
<input type="radio" name="deleted" value="0" title="否">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<div class="layui-input-block">
@ -48,5 +45,6 @@
<button type="button" class="kg-back layui-btn layui-btn-primary">返回</button>
</div>
</div>
</form>
</form>
{% endblock %}

View File

@ -1,23 +1,23 @@
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.role.create'}) }}">
{% extends 'templates/main.volt' %}
{% block content %}
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.role.create'}) }}">
<fieldset class="layui-elem-field layui-field-title">
<legend>添加角色</legend>
</fieldset>
<div class="layui-form-item">
<label class="layui-form-label">名称</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="name" {% if role.type == 'system' %}readonly{% endif %} lay-verify="required">
<input class="layui-input" type="text" name="name" lay-verify="required">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">描述</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="summary" {% if role.type == 'system' %}readonly{% endif %} lay-verify="required">
<input class="layui-input" type="text" name="summary" lay-verify="required">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<div class="layui-input-block">
@ -25,5 +25,6 @@
<button type="button" class="kg-back layui-btn layui-btn-primary">返回</button>
</div>
</div>
</form>
</form>
{% endblock %}

View File

@ -1,23 +1,23 @@
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.role.update','id':role.id}) }}">
{% extends 'templates/main.volt' %}
{% block content %}
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.role.update','id':role.id}) }}">
<fieldset class="layui-elem-field layui-field-title">
<legend>编辑角色</legend>
</fieldset>
<div class="layui-form-item">
<label class="layui-form-label">名称</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="name" value="{{ role.name }}" {% if role.type == 'system' %}readonly{% endif %} lay-verify="required">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">描述</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="summary" value="{{ role.summary }}" {% if role.type == 'system' %}readonly{% endif %} lay-verify="required">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">权限</label>
<div class="layui-input-block">
@ -40,7 +40,6 @@
{% endfor %}
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<div class="layui-input-block">
@ -48,5 +47,6 @@
<button type="button" class="kg-back layui-btn layui-btn-primary">返回</button>
</div>
</div>
</form>
</form>
{% endblock %}

View File

@ -1,12 +1,16 @@
{%- macro type_info(value) %}
{% extends 'templates/main.volt' %}
{% block content %}
{%- macro type_info(value) %}
{% if value == 'system' %}
<span class="layui-badge layui-bg-green">内置</span>
{% elseif value == 'custom' %}
<span class="layui-badge layui-bg-blue">自定</span>
{% endif %}
{%- endmacro %}
{%- endmacro %}
<div class="kg-nav">
<div class="kg-nav">
<div class="kg-nav-left">
<span class="layui-breadcrumb">
<a><cite>角色管理</cite></a>
@ -17,9 +21,9 @@
<i class="layui-icon layui-icon-add-1"></i>添加角色
</a>
</div>
</div>
</div>
<table class="kg-table layui-table layui-form">
<table class="layui-table kg-table">
<colgroup>
<col>
<col>
@ -59,4 +63,6 @@
</tr>
{% endfor %}
</tbody>
</table>
</table>
{% endblock %}

View File

@ -1,23 +1,23 @@
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.setting.captcha'}) }}">
{% extends 'templates/main.volt' %}
{% block content %}
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.setting.captcha'}) }}">
<fieldset class="layui-elem-field layui-field-title">
<legend>验证码配置</legend>
</fieldset>
<div class="layui-form-item">
<label class="layui-form-label">App Id</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="app_id" value="{{ captcha.app_id }}" layui-verify="required">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">Secret Key</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="secret_key" value="{{ captcha.secret_key }}" layui-verify="required">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<div class="layui-input-block">
@ -25,38 +25,37 @@
<button type="button" class="kg-back layui-btn layui-btn-primary">返回</button>
</div>
</div>
</form>
</form>
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.test.captcha'}) }}">
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.test.captcha'}) }}">
<fieldset class="layui-elem-field layui-field-title">
<legend>验证码测试</legend>
</fieldset>
<div class="layui-form-item">
<label class="layui-form-label"><i class="layui-icon layui-icon-vercode"></i></label>
<div class="layui-input-inline" style="width:200px;">
<span id="front-captcha-btn" class="layui-btn layui-btn-primary layui-btn-fluid" data-app-id="{{ captcha.app_id }}">前台验证</span>
<span id="front-verify-tips" class="kg-verify-btn layui-btn layui-btn-primary layui-btn-fluid layui-btn-disabled layui-hide"><i class="layui-icon layui-icon-ok"></i>前台验证成功</span>
<button type="button" id="front-captcha-btn" class="layui-btn layui-btn-primary layui-btn-fluid" data-app-id="{{ captcha.app_id }}">前台验证</button>
<button type="button" id="front-verify-tips" class="kg-verify-btn layui-btn layui-btn-primary layui-btn-fluid layui-btn-disabled layui-hide"><i class="layui-icon layui-icon-ok"></i>前台验证成功</button>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"><i class="layui-icon layui-icon-vercode"></i></label>
<div class="layui-input-inline" style="width:200px;">
<span id="back-verify-btn" class="layui-btn layui-btn-primary layui-btn-fluid" disabled="true" lay-submit="true" lay-filter="back-verify">后台验证</span>
<span id="back-verify-tips" class="kg-verify-btn layui-btn layui-btn-primary layui-btn-fluid layui-btn-disabled layui-hide"><i class="layui-icon layui-icon-ok"></i>后台验证成功</span>
<button type="button" id="back-verify-btn" class="layui-btn layui-btn-primary layui-btn-fluid" disabled="disabled" lay-submit="true" lay-filter="back_verify">后台验证</button>
<button type="button" id="back-verify-tips" class="kg-verify-btn layui-btn layui-btn-primary layui-btn-fluid layui-btn-disabled layui-hide"><i class="layui-icon layui-icon-ok"></i>后台验证成功</button>
<input type="hidden" name="ticket">
<input type="hidden" name="rand">
</div>
</div>
</form>
</form>
{% endblock %}
<script src="https://ssl.captcha.qq.com/TCaptcha.js"></script>
{% block inline_js %}
<script>
<script src="https://ssl.captcha.qq.com/TCaptcha.js"></script>
<script>
layui.use(['jquery', 'form', 'layer'], function () {
@ -78,7 +77,7 @@
}
);
form.on('submit(back-verify)', function (data) {
form.on('submit(back_verify)', function (data) {
$.ajax({
type: 'POST',
url: data.form.action,
@ -100,4 +99,6 @@
});
</script>
</script>
{% endblock %}

View File

@ -1,4 +1,8 @@
<div class="layui-tab layui-tab-brief">
{% extends 'templates/main.volt' %}
{% block content %}
<div class="layui-tab layui-tab-brief">
<ul class="layui-tab-title kg-tab-title">
<li class="layui-this">推流配置</li>
<li>拉流配置</li>
@ -11,4 +15,70 @@
{{ partial('setting/live_pull') }}
</div>
</div>
</div>
</div>
{% endblock %}
{% block inline_js %}
<script>
layui.use(['jquery', 'form', 'layer'], function () {
var $ = layui.jquery;
var form = layui.form;
var layer = layui.layer;
form.on('radio(push_auth_enabled)', function (data) {
var block = $('#push-auth-block');
if (data.value === '1') {
block.show();
} else {
block.hide();
}
});
form.on('radio(pull_auth_enabled)', function (data) {
var block = $('#pull-auth-block');
if (data.value === '1') {
block.show();
} else {
block.hide();
}
});
form.on('radio(pull_trans_enabled)', function (data) {
var block = $('#ptt-block');
if (data.value === '1') {
block.show();
} else {
block.hide();
}
});
$('#show-push-test').on('click', function () {
var url = '/admin/test/live/push?stream=test';
layer.open({
type: 2,
title: '推流测试',
area: ['680px', '450px'],
content: [url, 'no']
});
});
$('#show-pull-test').on('click', function () {
var url = '/admin/test/live/pull';
layer.open({
type: 2,
title: '拉流测试',
resize: false,
area: ['720px', '445px'],
content: [url, 'no']
});
});
});
</script>
{% endblock %}

View File

@ -1,9 +1,10 @@
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.setting.live'}) }}">
{% set pull_auth_display = live.pull_auth_enabled == 0 ? 'style="display:none;"' : '' %}
{% set ppt_display = live.pull_trans_enabled == 0 ? 'style="display:none;"' : '' %}
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.setting.live'}) }}">
<fieldset class="layui-elem-field layui-field-title">
<legend>基础配置</legend>
</fieldset>
<div class="layui-form-item">
<label class="layui-form-label">拉流协议</label>
<div class="layui-input-block">
@ -11,18 +12,15 @@
<input type="radio" name="pull_protocol" value="https" title="HTTPS" {% if live.pull_protocol == "https" %}checked{% endif %}>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">拉流域名</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="pull_domain" value="{{ live.pull_domain }}" layui-verify="required">
</div>
</div>
<fieldset class="layui-elem-field layui-field-title">
<legend>鉴权配置</legend>
</fieldset>
<div class="layui-form-item">
<label class="layui-form-label">开启鉴权</label>
<div class="layui-input-block">
@ -30,8 +28,7 @@
<input type="radio" name="pull_auth_enabled" value="0" title="否" lay-filter="pull_auth_enabled" {% if live.pull_auth_enabled == 0 %}checked{% endif %}>
</div>
</div>
<div id="pull-auth-block" {% if live.pull_auth_enabled == '0' %}style="display:none;"{% endif %}>
<div id="pull-auth-block" {{ pull_auth_display }}>
<div class="layui-form-item">
<label class="layui-form-label">鉴权密钥</label>
<div class="layui-input-block">
@ -45,11 +42,9 @@
</div>
</div>
</div>
<fieldset class="layui-elem-field layui-field-title">
<legend>转码配置</legend>
</fieldset>
<div class="layui-form-item">
<label class="layui-form-label">开启转码</label>
<div class="layui-input-block">
@ -57,8 +52,7 @@
<input type="radio" name="pull_trans_enabled" value="0" title="否" lay-filter="pull_trans_enabled" {% if live.pull_trans_enabled == 0 %}checked{% endif %}>
</div>
</div>
<table class="kg-table layui-table layui-form" id="ptt-block" {% if live.pull_trans_enabled == '0' %}style="display:none;"{% endif %}>
<table class="layui-table kg-table layui-form" id="ptt-block" {{ ppt_display }}>
<colgroup>
<col>
<col>
@ -94,7 +88,6 @@
</tr>
</tbody>
</table>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<div class="layui-input-block">
@ -102,22 +95,18 @@
<button type="button" class="kg-back layui-btn layui-btn-primary">返回</button>
</div>
</div>
</form>
<form class="layui-form kg-form">
<fieldset class="layui-elem-field layui-field-title">
<legend>拉流测试</legend>
</fieldset>
<div class="layui-form-item">
<label class="layui-form-label">Stream Name</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="stream_name" value="test" readonly="readonly">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<div class="layui-input-block">
@ -125,46 +114,4 @@
<button type="button" class="kg-back layui-btn layui-btn-primary">返回</button>
</div>
</div>
</form>
<script>
layui.use(['jquery', 'form', 'layer'], function () {
var $ = layui.jquery;
var form = layui.form;
var layer = layui.layer;
form.on('radio(pull_auth_enabled)', function (data) {
var block = $('#pull-auth-block');
if (data.value === '1') {
block.show();
} else {
block.hide();
}
});
form.on('radio(pull_trans_enabled)', function (data) {
var block = $('#ptt-block');
if (data.value === '1') {
block.show();
} else {
block.hide();
}
});
$('#show-pull-test').on('click', function () {
var url = '/admin/test/live/pull';
layer.open({
type: 2,
title: '拉流测试',
resize: false,
area: ['720px', '445px'],
content: [url, 'no']
});
});
});
</script>

View File

@ -1,20 +1,18 @@
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.setting.live'}) }}">
{% set push_auth_display = live.push_auth_enabled == 0 ? 'style="display:none;"' : '' %}
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.setting.live'}) }}">
<fieldset class="layui-elem-field layui-field-title">
<legend>基础配置</legend>
</fieldset>
<div class="layui-form-item">
<label class="layui-form-label">推流域名</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="push_domain" value="{{ live.push_domain }}" layui-verify="required">
</div>
</div>
<fieldset class="layui-elem-field layui-field-title">
<legend>鉴权配置</legend>
</fieldset>
<div class="layui-form-item">
<label class="layui-form-label">开启鉴权</label>
<div class="layui-input-block">
@ -22,8 +20,7 @@
<input type="radio" name="push_auth_enabled" value="0" title="否" lay-filter="push_auth_enabled" {% if live.push_auth_enabled == 0 %}checked{% endif %}>
</div>
</div>
<div id="push-auth-block" {% if live.push_auth_enabled == '0' %}style="display:none;"{% endif %}>
<div id="push-auth-block" {{ push_auth_display }}>
<div class="layui-form-item">
<label class="layui-form-label">鉴权密钥</label>
<div class="layui-input-block">
@ -37,7 +34,6 @@
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<div class="layui-input-block">
@ -45,22 +41,18 @@
<button type="button" class="kg-back layui-btn layui-btn-primary">返回</button>
</div>
</div>
</form>
<form class="layui-form kg-form">
<fieldset class="layui-elem-field layui-field-title">
<legend>推流测试</legend>
</fieldset>
<div class="layui-form-item">
<label class="layui-form-label">Stream Name</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="stream_name" value="test" readonly="readonly">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<div class="layui-input-block">
@ -68,36 +60,4 @@
<button type="button" class="kg-back layui-btn layui-btn-primary">返回</button>
</div>
</div>
</form>
<script>
layui.use(['jquery', 'form', 'layer'], function () {
var $ = layui.jquery;
var form = layui.form;
var layer = layui.layer;
form.on('radio(push_auth_enabled)', function (data) {
var block = $('#push-auth-block');
if (data.value === '1') {
block.show();
} else {
block.hide();
}
});
$('#show-push-test').on('click', function () {
var url = '/admin/test/live/push?stream=test';
layer.open({
type: 2,
title: '推流测试',
area: ['680px', '450px'],
content: [url, 'no']
});
});
});
</script>

View File

@ -1,19 +1,19 @@
<form class="layui-form kg-form">
{% extends 'templates/main.volt' %}
{% block content %}
<form class="layui-form kg-form">
<fieldset class="layui-elem-field layui-field-title">
<legend>手机推流</legend>
</fieldset>
<div class="layui-form-item">
<div class="kg-text-center">
<img class="kg-qrcode" src="{{ qrcode }}" alt="二维码图片">
</div>
</div>
<fieldset class="layui-elem-field layui-field-title">
<legend>OBS推流</legend>
</fieldset>
<div class="layui-form-item">
<label class="layui-form-label">推流地址</label>
<div class="layui-input-inline" style="width:350px;">
@ -23,7 +23,6 @@
<span class="kg-copy layui-btn" data-clipboard-target="#tc1">复制</span>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">推流名称</label>
<div class="layui-input-inline" style="width:350px;">
@ -33,7 +32,6 @@
<span class="kg-copy layui-btn" data-clipboard-target="#tc2">复制</span>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">相关文档</label>
<div class="layui-input-block">
@ -42,7 +40,13 @@
</div>
</div>
</div>
</form>
</form>
{% endblock %}
{{ partial('partials/clipboard_tips') }}
{% block include_js %}
{{ js_include('lib/clipboard.min.js') }}
{{ js_include('admin/js/copy.js') }}
{% endblock %}

View File

@ -1,37 +1,35 @@
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.setting.mailer'}) }}">
{% extends 'templates/main.volt' %}
{% block content %}
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.setting.mailer'}) }}">
<fieldset class="layui-elem-field layui-field-title">
<legend>邮件配置</legend>
</fieldset>
<div class="layui-form-item">
<label class="layui-form-label">发送邮箱</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="smtp_from_email" value="{{ mailer.smtp_from_email }}">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">发送人</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="smtp_from_name" value="{{ mailer.smtp_from_name }}">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">SMTP服务器</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="smtp_host" value="{{ mailer.smtp_host }}">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">SMTP端口号</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="smtp_port" value="{{ mailer.smtp_port }}">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">加密类型</label>
<div class="layui-input-block">
@ -40,15 +38,13 @@
<input type="radio" name="smtp_encryption" value="" title="不加密" {% if mailer.smtp_encryption == "" %}checked{% endif %}>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">账户验证</label>
<div class="layui-input-block">
<input type="radio" name="smtp_authentication" value="1" title="是" lay-filter="smtp-auth" {% if mailer.smtp_authentication == "1" %}checked{% endif %}>
<input type="radio" name="smtp_authentication" value="0" title="否" lay-filter="smtp-auth" {% if mailer.smtp_authentication == "0" %}checked{% endif %}>
<input type="radio" name="smtp_authentication" value="1" title="是" lay-filter="smtp_auth" {% if mailer.smtp_authentication == "1" %}checked{% endif %}>
<input type="radio" name="smtp_authentication" value="0" title="否" lay-filter="smtp_auth" {% if mailer.smtp_authentication == "0" %}checked{% endif %}>
</div>
</div>
<div id="smtp-auth-block">
<div class="layui-form-item">
<label class="layui-form-label">SMTP帐号</label>
@ -56,7 +52,6 @@
<input class="layui-input" type="text" name="smtp_username" value="{{ mailer.smtp_username }}">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">SMTP密码</label>
<div class="layui-input-block">
@ -64,7 +59,6 @@
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<div class="layui-input-block">
@ -72,22 +66,18 @@
<button type="button" class="kg-back layui-btn layui-btn-primary">返回</button>
</div>
</div>
</form>
</form>
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.test.mailer'}) }}">
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.test.mailer'}) }}">
<fieldset class="layui-elem-field layui-field-title">
<legend>邮件测试</legend>
</fieldset>
<div class="layui-form-item">
<label class="layui-form-label">收件邮箱</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="email" lay-verify="email" placeholder="请先提交相关配置,再进行邮件测试哦!">
<input class="layui-input" type="text" name="email" placeholder="请先提交相关配置,再进行邮件测试哦!" lay-verify="email">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<div class="layui-input-block">
@ -95,19 +85,22 @@
<button type="button" class="kg-back layui-btn layui-btn-primary">返回</button>
</div>
</div>
</form>
</form>
{% endblock %}
<script>
{% block inline_js %}
<script>
layui.use(['jquery', 'form'], function () {
var $ = layui.jquery;
var form = layui.form;
form.on('radio(smtp-auth)', function (data) {
form.on('radio(smtp_auth)', function (data) {
var block = $('#smtp-auth-block');
if (data.value == 1) {
if (data.value === '1') {
block.show();
} else {
block.hide();
@ -116,4 +109,6 @@
});
</script>
</script>
{% endblock %}

View File

@ -1,4 +1,8 @@
<div class="layui-tab layui-tab-brief">
{% extends 'templates/main.volt' %}
{% block content %}
<div class="layui-tab layui-tab-brief">
<ul class="layui-tab-title kg-tab-title">
<li class="layui-this">支付宝</li>
<li>微信支付</li>
@ -11,4 +15,43 @@
{{ partial('setting/pay_wxpay') }}
</div>
</div>
</div>
</div>
{% endblock %}
{% block inline_js %}
<script>
layui.use(['jquery', 'layer'], function () {
var $ = layui.jquery;
var layer = layui.layer;
$('#show-alipay-test').on('click', function () {
var url = '/admin/test/alipay';
layer.open({
type: 2,
title: '支付宝 - 支付测试',
resize: false,
area: ['640px', '300px'],
content: [url, 'no']
});
});
$('#show-wxpay-test').on('click', function () {
var url = '/admin/test/wxpay';
layer.open({
type: 2,
title: '微信 - 支付测试',
resize: false,
area: ['640px', '300px'],
content: [url, 'no']
});
});
});
</script>
{% endblock %}

View File

@ -1,5 +1,4 @@
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.setting.pay'}) }}">
<div class="layui-form-item">
<label class="layui-form-label">开启支付</label>
<div class="layui-input-block">
@ -7,14 +6,12 @@
<input type="radio" name="enabled" value="0" title="否" {% if alipay.enabled == "0" %}checked{% endif %}>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">App ID</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="app_id" value="{{ alipay.app_id }}" lay-verify="required">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">Public Key</label>
<div class="layui-input-block">
@ -28,14 +25,12 @@
<textarea class="layui-textarea" name="private_key" lay-verify="required">{{ alipay.private_key }}</textarea>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">Notify Url</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="notify_url" value="{{ alipay.notify_url }}" lay-verify="required">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<div class="layui-input-block">
@ -44,29 +39,24 @@
<input type="hidden" name="section" value="pay.alipay">
</div>
</div>
</form>
<form class="layui-form kg-form">
<fieldset class="layui-elem-field layui-field-title">
<legend>支付测试</legend>
</fieldset>
<div class="layui-form-item">
<label class="layui-form-label">支付项目</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="subject" value="支付测试0.01元" readonly="true">
<input class="layui-input" type="text" name="subject" value="支付测试0.01元" readonly="readonly">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">支付金额</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="total_amount" value="0.01" readonly="true">
<input class="layui-input" type="text" name="total_amount" value="0.01" readonly="readonly">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<div class="layui-input-block">
@ -74,27 +64,4 @@
<button type="button" class="kg-back layui-btn layui-btn-primary">返回</button>
</div>
</div>
</form>
<script>
layui.use(['jquery', 'layer'], function () {
var $ = layui.jquery;
var layer = layui.layer;
$('#show-alipay-test').on('click', function () {
var url = '/admin/test/alipay';
layer.open({
type: 2,
title: '支付宝 - 支付测试',
resize: false,
area: ['640px', '300px'],
content: [url, 'no']
});
});
});
</script>

View File

@ -1,33 +1,33 @@
<div class="kg-qrcode-block">
{% extends 'templates/main.volt' %}
{% block content %}
<div class="kg-qrcode-block">
{% if qrcode_url %}
<div id="qrcode">
<img class="kg-qrcode" src="{{ qrcode_url }}" alt="二维码图片">
</div>
<input type="hidden" name="sn" value="{{ sn }}">
<div id="success-tips" class="kg-success-tips layui-hide">
<span>支付成功</span>
</div>
<div id="error-tips" class="kg-error-tips layui-hide">
<span>支付失败</span>
</div>
{% else %}
<div class="kg-error-tips">
<span>生成二维码失败</span>
</div>
{% endif %}
</div>
</div>
{% if qrcode_url %}
{% endblock %}
{% block inline_js %}
{% if qrcode_url %}
<script>
layui.use(['jquery'], function () {
@ -57,5 +57,6 @@
});
</script>
{% endif %}
{% endif %}
{% endblock %}

View File

@ -1,5 +1,4 @@
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.setting.pay'}) }}">
<div class="layui-form-item">
<label class="layui-form-label">开启支付</label>
<div class="layui-input-block">
@ -7,35 +6,30 @@
<input type="radio" name="enabled" value="0" title="否" {% if wxpay.enabled == "0" %}checked{% endif %}>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">App ID</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="app_id" value="{{ wxpay.app_id }}" lay-verify="required">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">Mch ID</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="mch_id" value="{{ wxpay.mch_id }}" lay-verify="required">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">Private Key</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="key" value="{{ wxpay.key }}" lay-verify="required">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">Notify Url</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="notify_url" value="{{ wxpay.notify_url }}" lay-verify="required">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<div class="layui-input-block">
@ -44,29 +38,24 @@
<input type="hidden" name="section" value="pay.wxpay">
</div>
</div>
</form>
<form class="layui-form kg-form">
<fieldset class="layui-elem-field layui-field-title">
<legend>支付测试</legend>
</fieldset>
<div class="layui-form-item">
<label class="layui-form-label">支付项目</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="subject" value="支付测试0.01元" readonly="true">
<input class="layui-input" type="text" name="subject" value="支付测试0.01元" readonly="readonly">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">支付金额</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="total_amount" value="0.01" readonly="true">
<input class="layui-input" type="text" name="total_amount" value="0.01" readonly="readonly">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<div class="layui-input-block">
@ -74,27 +63,4 @@
<button type="button" class="kg-back layui-btn layui-btn-primary">返回</button>
</div>
</div>
</form>
<script>
layui.use(['jquery', 'layer'], function () {
var $ = layui.jquery;
var layer = layui.layer;
$('#show-wxpay-test').on('click', function () {
var url = '/admin/test/wxpay';
layer.open({
type: 2,
title: '微信 - 支付测试',
resize: false,
area: ['640px', '300px'],
content: [url, 'no']
});
});
});
</script>

View File

@ -1,33 +1,31 @@
<div class="kg-qrcode-block">
{% extends 'templates/main.volt' %}
{% block contnet %}
<div class="kg-qrcode-block">
{% if qrcode_url %}
<div id="qrcode">
<img class="kg-qrcode" src="{{ qrcode_url }}" alt="二维码图片">
</div>
<input type="hidden" name="sn" value="{{ sn }}">
<div id="success-tips" class="kg-success-tips layui-hide">
<span>支付成功</span>
</div>
<div id="error-tips" class="kg-error-tips layui-hide">
<span>支付失败</span>
</div>
{% else %}
<div class="kg-error-tips">
<span>生成二维码失败</span>
</div>
{% endif %}
</div>
</div>
{% endblock %}
{% if qrcode_url %}
{% block inline_js %}
{% if qrcode_url %}
<script>
layui.use(['jquery'], function () {
@ -57,5 +55,6 @@
});
</script>
{% endif %}
{% endif %}
{% endblock %}

View File

@ -1,30 +1,29 @@
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.setting.secret'}) }}">
{% extends 'templates/main.volt' %}
{% block content %}
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.setting.secret'}) }}">
<fieldset class="layui-elem-field layui-field-title">
<legend>密钥配置</legend>
</fieldset>
<div class="layui-form-item">
<label class="layui-form-label">App Id</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="app_id" value="{{ secret.app_id }}" layui-verify="required">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">Secret Id</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="secret_id" value="{{ secret.secret_id }}" layui-verify="required">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">Secret Key</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="secret_key" value="{{ secret.secret_key }}" layui-verify="required">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<div class="layui-input-block">
@ -32,5 +31,6 @@
<button type="button" class="kg-back layui-btn layui-btn-primary">返回</button>
</div>
</div>
</form>
</form>
{% endblock %}

View File

@ -1,37 +1,35 @@
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.setting.site'}) }}">
{% extends 'templates/main.volt' %}
{% block content %}
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.setting.site'}) }}">
<fieldset class="layui-elem-field layui-field-title">
<legend>站点配置</legend>
</fieldset>
<div class="layui-form-item">
<label class="layui-form-label">网站名称</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="title" value="{{ site.title }}">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">关键字</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="keywords" value="{{ site.keywords }}">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">网站描述</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="description" value="{{ site.description }}">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">版权信息</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="copyright" value="{{ site.copyright }}">
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">ICP备案号</label>
@ -46,7 +44,6 @@
</div>
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">公安备案号</label>
@ -61,14 +58,12 @@
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">站点统计</label>
<div class="layui-input-block">
<textarea name="analytics" class="layui-textarea" placeholder="使用百度统计CNZZ,腾讯分析等第三方统计分析站点流量">{{ site.analytics }}</textarea>
<textarea name="analytics" class="layui-textarea" placeholder="使用百度统计,腾讯分析等第三方统计分析站点流量">{{ site.analytics }}</textarea>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<div class="layui-input-block">
@ -76,5 +71,6 @@
<button type="button" class="kg-back layui-btn layui-btn-primary">返回</button>
</div>
</div>
</form>
</form>
{% endblock %}

View File

@ -1,35 +1,33 @@
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.setting.smser'}) }}">
{% extends 'templates/main.volt' %}
{% block content %}
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.setting.smser'}) }}">
<fieldset class="layui-elem-field layui-field-title">
<legend>基础配置</legend>
</fieldset>
<div class="layui-form-item">
<label class="layui-form-label">App ID</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="app_id" value="{{ smser.app_id }}" layui-verify="required">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">App Key</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="app_key" value="{{ smser.app_key }}" layui-verify="required">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">内容签名</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="signature" value="{{ smser.signature }}" placeholder="注意使用的是签名内容而非签名ID" layui-verify="required">
<input class="layui-input" type="text" name="signature" placeholder="注意使用的是签名内容而非签名ID" value="{{ smser.signature }}" layui-verify="required">
</div>
</div>
<fieldset class="layui-elem-field layui-field-title">
<legend>模板配置</legend>
</fieldset>
<table class="kg-table layui-table layui-form">
<table class="layui-table kg-table layui-form">
<colgroup>
<col width="12%">
<col width="15%">
@ -71,7 +69,6 @@
</tr>
</tbody>
</table>
<div class="layui-form-item" style="margin-top:20px;">
<label class="layui-form-label"></label>
<div class="layui-input-block">
@ -79,22 +76,18 @@
<button type="button" class="kg-back layui-btn layui-btn-primary">返回</button>
</div>
</div>
</form>
</form>
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.test.smser'}) }}">
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.test.smser'}) }}">
<fieldset class="layui-elem-field layui-field-title">
<legend>短信测试</legend>
</fieldset>
<div class="layui-form-item">
<label class="layui-form-label">手机号码</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="phone" lay-verify="phone" placeholder="请先提交相关配置,再进行短信测试哦!">
<input class="layui-input" type="text" name="phone" placeholder="请先提交相关配置,再进行短信测试哦!" lay-verify="phone">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<div class="layui-input-block">
@ -102,7 +95,13 @@
<button type="button" class="kg-back layui-btn layui-btn-primary">返回</button>
</div>
</div>
</form>
</form>
{% endblock %}
{{ partial('partials/clipboard_tips') }}
{% block include_js %}
{{ js_include('lib/clipboard.min.js') }}
{{ js_include('admin/js/copy.js') }}
{% endblock %}

View File

@ -1,23 +1,23 @@
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.setting.storage'}) }}">
{% extends 'templates/main.volt' %}
{% block content %}
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.setting.storage'}) }}">
<fieldset class="layui-elem-field layui-field-title">
<legend>存储桶配置</legend>
</fieldset>
<div class="layui-form-item">
<label class="layui-form-label">空间名称</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="bucket_name" value="{{ storage.bucket_name }}" layui-verify="required">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">所在区域</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="bucket_region" value="{{ storage.bucket_region }}" layui-verify="required">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">访问协议</label>
<div class="layui-input-block">
@ -25,18 +25,15 @@
<input type="radio" name="bucket_protocol" value="https" title="HTTPS" {% if storage.bucket_protocol == "https" %}checked{% endif %}>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">访问域名</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="bucket_domain" value="{{ storage.bucket_domain }}" lay-verify="required">
</div>
</div>
<fieldset class="layui-elem-field layui-field-title">
<legend>数据万象</legend>
</fieldset>
<div class="layui-form-item">
<label class="layui-form-label">访问协议</label>
<div class="layui-input-block">
@ -44,14 +41,12 @@
<input type="radio" name="ci_protocol" value="https" title="HTTPS" {% if storage.ci_protocol == "https" %}checked{% endif %}>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">访问域名</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="ci_domain" value="{{ storage.ci_domain }}" lay-verify="required">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<div class="layui-input-block">
@ -59,22 +54,18 @@
<button type="button" class="kg-back layui-btn layui-btn-primary">返回</button>
</div>
</div>
</form>
</form>
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.test.storage'}) }}">
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.test.storage'}) }}">
<fieldset class="layui-elem-field layui-field-title">
<legend>上传测试</legend>
</fieldset>
<div class="layui-form-item">
<label class="layui-form-label">测试文件</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="file" value="hello_world.txt" readonly="true">
<input class="layui-input" type="text" name="file" value="hello_world.txt" readonly="readonly">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<div class="layui-input-block">
@ -82,5 +73,6 @@
<button type="button" class="kg-back layui-btn layui-btn-primary">返回</button>
</div>
</div>
</form>
</form>
{% endblock %}

View File

@ -1,9 +1,11 @@
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.setting.vip'}) }}">
{% extends 'templates/main.volt' %}
{% block content %}
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.setting.vip'}) }}">
<fieldset class="layui-elem-field layui-field-title">
<legend>会员设置</legend>
</fieldset>
{% for item in vips %}
<div class="layui-form-item">
<label class="layui-form-label">{{ item.title }}</label>
@ -13,7 +15,6 @@
<div class="layui-form-mid layui-word-aux">元</div>
</div>
{% endfor %}
<div class="layui-form-item">
<label class="layui-form-label"></label>
<div class="layui-input-block">
@ -21,5 +22,6 @@
<button type="button" class="kg-back layui-btn layui-btn-primary">返回</button>
</div>
</div>
</form>
</form>
{% endblock %}

View File

@ -1,9 +1,15 @@
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.setting.vod'}) }}">
{% extends 'templates/main.volt' %}
{% block content %}
{% set storage_region_display = vod.storage_type == 'nearby' ? 'style="display:none;"' : '' %}
{% set watermark_tpl_display = vod.watermark_enabled == 0 ? 'style="display:none;"' : '' %}
{% set key_anti_display = vod.key_anti_enabled == 0 ? 'style="display:none;"' : '' %}
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.setting.vod'}) }}">
<fieldset class="layui-elem-field layui-field-title">
<legend>存储配置</legend>
</fieldset>
<div class="layui-form-item">
<label class="layui-form-label">存储方式</label>
<div class="layui-input-block">
@ -11,8 +17,7 @@
<input type="radio" name="storage_type" value="fixed" title="固定区域" lay-filter="storage_type" {% if vod.storage_type == "fixed" %}checked{% endif %}>
</div>
</div>
<div id="storage-region-block" {% if vod.storage_type == 'nearby' %}style="display:none;"{% endif %}>
<div id="storage-region-block" {{ storage_region_display }}>
<div class="layui-form-item">
<label class="layui-form-label">所在区域</label>
<div class="layui-input-block">
@ -20,11 +25,9 @@
</div>
</div>
</div>
<fieldset class="layui-elem-field layui-field-title">
<legend>转码配置</legend>
</fieldset>
<div class="layui-form-item">
<label class="layui-form-label">视频格式</label>
<div class="layui-input-block">
@ -32,14 +35,12 @@
<input type="radio" name="video_format" value="mp4" title="MP4" lay-filter="video_format" {% if vod.video_format == "mp4" %}checked{% endif %}>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">视频模板ID</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="video_template" readonly="readonly" layui-verify="required">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">音频格式</label>
<div class="layui-input-block">
@ -47,14 +48,12 @@
<input type="radio" name="audio_format" value="mp3" title="MP3" lay-filter="audio_format" {% if vod.audio_format == "mp3" %}checked{% endif %}>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">音频模板ID</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="audio_template" readonly="readonly" layui-verify="required">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">开启水印</label>
<div class="layui-input-block">
@ -62,8 +61,7 @@
<input type="radio" name="watermark_enabled" value="0" title="否" lay-filter="watermark_enabled" {% if vod.watermark_enabled == 0 %}checked{% endif %}>
</div>
</div>
<div id="watermark-template-block" {% if vod.watermark_enabled == '0' %}style="display:none;"{% endif %}>
<div id="watermark-template-block" {{ watermark_tpl_display }}>
<div class="layui-form-item">
<label class="layui-form-label">水印模板ID</label>
<div class="layui-input-block">
@ -71,11 +69,9 @@
</div>
</div>
</div>
<fieldset class="layui-elem-field layui-field-title">
<legend>主分发配置</legend>
</fieldset>
<div class="layui-form-item">
<label class="layui-form-label">分发协议</label>
<div class="layui-input-block">
@ -83,18 +79,15 @@
<input type="radio" name="dist_protocol" value="http" title="HTTP" {% if vod.dist_protocol == "http" %}checked{% endif %}>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">分发域名</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="dist_domain" value="{{ vod.dist_domain }}" lay-verify="required">
</div>
</div>
<fieldset class="layui-elem-field layui-field-title">
<legend>Key防盗链</legend>
</fieldset>
<div class="layui-form-item">
<label class="layui-form-label">开启防盗链</label>
<div class="layui-input-block">
@ -102,8 +95,7 @@
<input type="radio" name="key_anti_enabled" value="0" title="否" lay-filter="key_anti_enabled" {% if vod.key_anti_enabled == 0 %}checked{% endif %}>
</div>
</div>
<div id="key-anti-block" {% if vod.key_anti_enabled == '0' %}style="display:none;"{% endif %}>
<div id="key-anti-block" {{ key_anti_display }}>
<div class="layui-form-item">
<label class="layui-form-label">防盗链Key</label>
<div class="layui-input-block">
@ -117,7 +109,6 @@
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<div class="layui-input-block">
@ -125,22 +116,18 @@
<button type="button" class="kg-back layui-btn layui-btn-primary">返回</button>
</div>
</div>
</form>
</form>
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.test.vod'}) }}">
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.test.vod'}) }}">
<fieldset class="layui-elem-field layui-field-title">
<legend>接口测试</legend>
</fieldset>
<div class="layui-form-item">
<label class="layui-form-label">请求方法</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="file" value="DescribeAudioTrackTemplates" readonly="readonly">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<div class="layui-input-block">
@ -148,10 +135,13 @@
<button type="button" class="kg-back layui-btn layui-btn-primary">返回</button>
</div>
</div>
</form>
</form>
{% endblock %}
<script>
{% block inline_js %}
<script>
layui.use(['jquery', 'form'], function () {
@ -219,4 +209,6 @@
});
</script>
</script>
{% endblock %}

View File

@ -1,16 +1,17 @@
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.slide.create'}) }}">
{% extends 'templates/main.volt' %}
{% block content %}
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.slide.create'}) }}">
<fieldset class="layui-elem-field layui-field-title">
<legend>添加轮播</legend>
</fieldset>
<div class="layui-form-item">
<label class="layui-form-label">标题</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="title" lay-verify="required">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">目标类型</label>
<div class="layui-input-block">
@ -19,14 +20,12 @@
<input type="radio" name="target" value="link" title="链接" lay-filter="target">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label" id="target-label">课程编号</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="content" lay-verify="required">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<div class="layui-input-block">
@ -34,10 +33,13 @@
<button type="button" class="kg-back layui-btn layui-btn-primary">返回</button>
</div>
</div>
</form>
</form>
{% endblock %}
<script>
{% block inline_js %}
<script>
layui.use(['jquery', 'form'], function () {
@ -61,4 +63,6 @@
});
</script>
</script>
{% endblock %}

View File

@ -1,4 +1,8 @@
{%- macro content_label(target) %}
{% extends 'templates/main.volt' %}
{% block content %}
{%- macro content_label(target) %}
{% if target == 'course' %}
课程编号
{% elseif target == 'page' %}
@ -6,14 +10,12 @@
{% elseif target == 'link' %}
链接地址
{% endif %}
{%- endmacro %}
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.slide.update','id':slide.id}) }}">
{%- endmacro %}
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.slide.update','id':slide.id}) }}">
<fieldset class="layui-elem-field layui-field-title">
<legend>编辑轮播</legend>
</fieldset>
<div class="layui-form-item">
<label class="layui-form-label">封面</label>
<div class="layui-input-inline">
@ -24,7 +26,6 @@
<button id="change-cover" class="layui-btn layui-btn-sm" type="button">更换</button>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">背景色</label>
<div class="layui-input-inline">
@ -34,35 +35,30 @@
<div id="style-bg-color"></div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">标题</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="title" value="{{ slide.title }}" lay-verify="required">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">概要</label>
<div class="layui-input-block">
<textarea class="layui-textarea" name="summary">{{ slide.summary }}</textarea>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">{{ content_label(slide.target) }}</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="content" value="{{ slide.content }}" lay-verify="required">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">排序</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="priority" value="{{ slide.priority }}" lay-verify="number">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">发布</label>
<div class="layui-input-block">
@ -70,7 +66,6 @@
<input type="radio" name="published" value="0" title="否" {% if slide.published == 0 %}checked{% endif %}>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<div class="layui-input-block">
@ -78,15 +73,25 @@
<button type="button" class="kg-back layui-btn layui-btn-primary">返回</button>
</div>
</div>
</form>
</form>
{% endblock %}
{{ partial('partials/cover_uploader') }}
{% block include_js %}
{{ js_include('admin/js/cover.upload.js') }}
{% endblock %}
{% block inline_js %}
<script>
<script>
layui.use(['jquery', 'colorpicker'], function () {
var $ = layui.jquery;
var colorPicker = layui.colorpicker;
colorPicker.render({
elem: '#style-bg-color',
color: '{{ slide.style['bg_color'] }}',
@ -95,5 +100,9 @@
$('input[name="style[bg_color]"]').val(color);
}
});
});
</script>
</script>
{% endblock %}

View File

@ -1,4 +1,8 @@
{%- macro target_info(value) %}
{% extends 'templates/main.volt' %}
{% block content %}
{%- macro target_info(value) %}
{% if value == 'course' %}
<span class="layui-badge layui-bg-green">课程</span>
{% elseif value == 'page' %}
@ -6,9 +10,9 @@
{% elseif value == 'link' %}
<span class="layui-badge layui-bg-orange">链接</span>
{% endif %}
{%- endmacro %}
{%- endmacro %}
<div class="kg-nav">
<div class="kg-nav">
<div class="kg-nav-left">
<span class="layui-breadcrumb">
<a><cite>轮播管理</cite></a>
@ -19,9 +23,9 @@
<i class="layui-icon layui-icon-add-1"></i>添加轮播
</a>
</div>
</div>
</div>
<table class="kg-table layui-table layui-form">
<table class="layui-table kg-table layui-form">
<colgroup>
<col>
<col>
@ -60,6 +64,8 @@
</tr>
{% endfor %}
</tbody>
</table>
</table>
{{ partial('partials/pager') }}
{{ partial('partials/pager') }}
{% endblock %}

View File

@ -1,32 +1,31 @@
{% set course_id = course ? course.id : '' %}
{% extends 'templates/main.volt' %}
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.student.create'}) }}">
{% block content %}
{% set course_id = course ? course.id : '' %}
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.student.create'}) }}">
<fieldset class="layui-elem-field layui-field-title">
<legend>添加学员</legend>
</fieldset>
<div class="layui-form-item">
<label class="layui-form-label">课程编号</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="course_id" value="{{ course_id }}" lay-verify="required">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">用户编号</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="user_id" lay-verify="required">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">过期时间</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="expiry_time" autocomplete="off" lay-verify="required">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<div class="layui-input-block">
@ -34,10 +33,13 @@
<button type="button" class="kg-back layui-btn layui-btn-primary">返回</button>
</div>
</div>
</form>
</form>
{% endblock %}
<script>
{% block inline_js %}
<script>
layui.use(['laydate'], function () {
@ -50,4 +52,6 @@
});
</script>
</script>
{% endblock %}

View File

@ -1,30 +1,29 @@
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.student.update'}) }}">
{% extends 'templates/main.volt' %}
{% block content %}
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.student.update'}) }}">
<fieldset class="layui-elem-field layui-field-title">
<legend>编辑学员</legend>
</fieldset>
<div class="layui-form-item">
<label class="layui-form-label">课程名称</label>
<div class="layui-input-block">
<div class="layui-form-mid layui-word-aux">{{ course.title }}</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">学员名称</label>
<div class="layui-input-block">
<div class="layui-form-mid layui-word-aux">{{ student.name }}</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">过期时间</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="expiry_time" autocomplete="off" value="{{ date('Y-m-d H:i:s',relation.expiry_time) }}" lay-verify="required">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<div class="layui-input-block">
@ -33,10 +32,13 @@
<input type="hidden" name="relation_id" value="{{ relation.id }}"/>
</div>
</div>
</form>
</form>
{% endblock %}
<script>
{% block inline_js %}
<script>
layui.use(['laydate'], function () {
@ -49,4 +51,6 @@
});
</script>
</script>
{% endblock %}

View File

@ -1,4 +1,8 @@
<table class="kg-table layui-table">
{% extends 'templates/main.volt' %}
{% block content %}
<table class="layui-table kg-table">
<colgroup>
<col>
<col>
@ -30,7 +34,14 @@
</tr>
{% endfor %}
</tbody>
</table>
</table>
{{ partial('partials/pager') }}
{{ partial('partials/ip2region') }}
{{ partial('partials/pager') }}
{% endblock %}
{% block include_js %}
{{ js_include('admin/js/ip2region.js') }}
{% endblock %}

View File

@ -1,4 +1,8 @@
{%- macro source_type_info(value) %}
{% extends 'templates/main.volt' %}
{% block content %}
{%- macro source_type_info(value) %}
{% if value == 1 %}
<span class="layui-badge layui-bg-green">免费</span>
{% elseif value == 2 %}
@ -6,9 +10,9 @@
{% elseif value == 3 %}
<span class="layui-badge layui-bg-blue">导入</span>
{% endif %}
{%- endmacro %}
{%- endmacro %}
<div class="kg-nav">
<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>
@ -32,9 +36,9 @@
</a>
{% endif %}
</div>
</div>
</div>
<table class="kg-table layui-table">
<table class="layui-table kg-table">
<colgroup>
<col>
<col>
@ -80,11 +84,15 @@
</tr>
{% endfor %}
</tbody>
</table>
</table>
{{ partial('partials/pager') }}
{{ partial('partials/pager') }}
<script>
{% endblock %}
{% block inline_js %}
<script>
layui.use(['jquery', 'form'], function () {
@ -104,4 +112,6 @@
});
</script>
</script>
{% endblock %}

View File

@ -1,25 +1,25 @@
{% set course_id = request.get('course_id', 'int', '') %}
{% extends 'templates/main.volt' %}
<form class="layui-form kg-form" method="GET" action="{{ url({'for':'admin.student.list'}) }}">
{% block content %}
{% set course_id = request.get('course_id', 'int', '') %}
<form class="layui-form kg-form" method="GET" action="{{ url({'for':'admin.student.list'}) }}">
<fieldset class="layui-elem-field layui-field-title">
<legend>搜索学员</legend>
</fieldset>
<div class="layui-form-item">
<label class="layui-form-label">课程编号</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="course_id" value="{{ course_id }}" placeholder="课程编号精确匹配">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">用户编号</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="user_id" placeholder="用户编号精确匹配">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">加入方式</label>
<div class="layui-input-block">
@ -28,7 +28,6 @@
<input type="radio" name="source_type" value="3" title="后台导入">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<div class="layui-input-block">
@ -36,5 +35,6 @@
<button type="button" class="kg-back layui-btn layui-btn-primary">返回</button>
</div>
</div>
</form>
</form>
{% endblock %}

View File

@ -0,0 +1,24 @@
<!DOCTYPE html>
<html lang="zh-CN-Hans">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<meta name="csrf-token" content="{{ csrfToken.getToken() }}">
<title>管理后台</title>
{{ icon_link('favicon.ico') }}
{{ css_link('lib/layui/css/layui.css') }}
{{ css_link('admin/css/common.css') }}
{% block link_css %}{% endblock %}
{% block inline_css %}{% endblock %}
</head>
<body class="kg-body">
{% block content %}{% endblock %}
{{ js_include('lib/layui/layui.js') }}
{{ js_include('admin/js/common.js') }}
{% block include_js %}{% endblock %}
{% block inline_js %}{% endblock %}
</body>
</html>

View File

@ -1,18 +1,26 @@
<!DOCTYPE html>
<html lang="zh-Hans-CN">
<html lang="zh-CN-Hans">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<meta name="csrf-token" content="{{ csrfToken.getToken() }}">
<title>管理后台</title>
{{ icon_link("favicon.ico") }}
{{ icon_link('favicon.ico') }}
{{ css_link('lib/layui/css/layui.css') }}
{{ css_link('lib/layui/extends/dropdown.css') }}
{{ css_link('admin/css/common.css') }}
{{ js_include('lib/layui/layui.js') }}
{{ js_include('admin/js/common.js') }}
{% block link_css %}{% endblock %}
{% block inline_css %}{% endblock %}
</head>
<body class="kg-body">
{{ content() }}
{% block content %}{% endblock %}
{{ js_include('lib/layui/layui.js') }}
{{ js_include('admin/js/common.js') }}
{% block include_js %}{% endblock %}
{% block inline_js %}{% endblock %}
</body>
</html>

View File

@ -1,23 +1,23 @@
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.topic.create'}) }}">
{% extends 'templates/main.volt' %}
{% block content %}
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.topic.create'}) }}">
<fieldset class="layui-elem-field layui-field-title">
<legend>添加话题</legend>
</fieldset>
<div class="layui-form-item">
<label class="layui-form-label">标题</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="title" lay-verify="required">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">简介</label>
<div class="layui-input-block">
<textarea class="layui-textarea" name="summary"></textarea>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<div class="layui-input-block">
@ -25,5 +25,6 @@
<button type="button" class="kg-back layui-btn layui-btn-primary">返回</button>
</div>
</div>
</form>
</form>
{% endblock %}

View File

@ -1,4 +1,8 @@
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.topic.update','id':topic.id}) }}">
{% extends 'templates/main.volt' %}
{% block content %}
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.topic.update','id':topic.id}) }}">
<fieldset class="layui-elem-field layui-field-title">
<legend>编辑话题</legend>
@ -33,13 +37,22 @@
</div>
</div>
</form>
</form>
{{ js_include('lib/xm-select.js') }}
{{ js_include('admin/js/xm-course.js') }}
{% endblock %}
<script>
{% block include_js %}
{{ js_include('lib/xm-select.js') }}
{{ js_include('admin/js/xm-course.js') }}
{% endblock %}
{% block inline_js %}
<script>
xmCourse({{ xm_courses|json_encode }}, '/admin/xm/course/all');
</script>
{% endblock %}
</script>

Some files were not shown because too many files have changed in this diff Show More