layui整体升级到2.68版本
@ -202,7 +202,7 @@ composer install
|
||||
### 截图预览
|
||||

|
||||

|
||||

|
||||

|
||||
|
||||
|
||||
### 开源协议
|
||||
|
@ -189,6 +189,21 @@ function get_article_cate()
|
||||
return $cate;
|
||||
}
|
||||
|
||||
//访问按小时归档统计
|
||||
function hour_document($arrData)
|
||||
{
|
||||
$documents = array();
|
||||
$hour = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23];
|
||||
foreach ($hour as $val) {
|
||||
$documents[$val] = 0;
|
||||
}
|
||||
foreach ($arrData as $index => $value) {
|
||||
$archivesTime = intval(date("H", $value['create_time']));
|
||||
$documents[$archivesTime] += 1;
|
||||
}
|
||||
return $documents;
|
||||
}
|
||||
|
||||
/**
|
||||
* 管理员操作日志
|
||||
* @param string $type 操作类型 login add edit view delete
|
||||
|
@ -298,5 +298,20 @@ class Api extends BaseController
|
||||
$content = $log->get_log_list($param);
|
||||
return table_assign(1, '', $content);
|
||||
}
|
||||
|
||||
//获取访问记录
|
||||
public function get_view_data()
|
||||
{
|
||||
$param = get_params();
|
||||
$first_time = time();
|
||||
$second_time = time() - 86400;
|
||||
$begin_first = strtotime(date('Y-m-d', $first_time) . " 00:00:00");
|
||||
$end_first = strtotime(date('Y-m-d', $first_time) . " 23:59:59");
|
||||
$begin_second = strtotime(date('Y-m-d', $second_time) . " 00:00:00");
|
||||
$end_second = strtotime(date('Y-m-d', $second_time) . " 23:59:59");
|
||||
$data_first = Db::name('UserLog')->field('create_time')->whereBetween('create_time', "$begin_first,$end_first")->select();
|
||||
$data_second = Db::name('UserLog')->field('create_time')->whereBetween('create_time', "$begin_second,$end_second")->select();
|
||||
return to_assign(1, '', ['data_first' => hour_document($data_first), 'data_second' => hour_document($data_second)]);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -210,6 +210,6 @@
|
||||
}
|
||||
|
||||
</script>
|
||||
{include file="common/layui" base='base' extend="[]" use="['upload','form']" callback="init" /}
|
||||
{include file="common/layui" base='base' extend="[]" callback="init" /}
|
||||
{/block}
|
||||
<!-- /脚本 -->
|
@ -61,6 +61,6 @@
|
||||
}
|
||||
|
||||
</script>
|
||||
{include file="common/layui" base='base' extend="[]" use="['form']" callback="init" /}
|
||||
{include file="common/layui" base='base' extend="[]" callback="init" /}
|
||||
{/block}
|
||||
<!-- /脚本 -->
|
@ -85,6 +85,6 @@
|
||||
}
|
||||
|
||||
</script>
|
||||
{include file="common/layui" base='base' extend="[]" use="['upload','form']" callback="init" /}
|
||||
{include file="common/layui" base='base' extend="[]" callback="init" /}
|
||||
{/block}
|
||||
<!-- /脚本 -->
|
@ -40,7 +40,10 @@
|
||||
elem: '#test',
|
||||
title: '管理员列表',
|
||||
toolbar: '#toolbarDemo',
|
||||
url: '/admin/admin/index', //数据接口
|
||||
url: '/admin/admin/index', //数据接口
|
||||
response: {
|
||||
statusCode: 1 //规定成功的状态码,默认:0
|
||||
},
|
||||
page: true, //开启分页
|
||||
limit: 20,
|
||||
cols: [
|
||||
@ -143,6 +146,6 @@
|
||||
});
|
||||
}
|
||||
</script>
|
||||
{include file="common/layui" base='base' extend="[]" use="['table','form']" callback="init" /}
|
||||
{include file="common/layui" base='base' extend="[]" callback="init" /}
|
||||
{/block}
|
||||
<!-- /脚本 -->
|
@ -37,6 +37,9 @@
|
||||
url: '/admin/admin/log', //数据接口
|
||||
page: true, //开启分页
|
||||
limit: 20,
|
||||
response: {
|
||||
statusCode: 1 //规定成功的状态码,默认:0
|
||||
},
|
||||
cols: [
|
||||
[ //表头
|
||||
{
|
||||
@ -96,6 +99,6 @@
|
||||
});
|
||||
}
|
||||
</script>
|
||||
{include file="common/layui" base='base' extend="[]" use="['table','form']" callback="init" /}
|
||||
{include file="common/layui" base='base' extend="[]" callback="init" /}
|
||||
{/block}
|
||||
<!-- /脚本 -->
|
@ -28,33 +28,33 @@
|
||||
<script>
|
||||
var page=1,limit=20;
|
||||
function getLogs() {
|
||||
$.ajax({
|
||||
url: "/admin/api/get_log_list",
|
||||
type: 'post',
|
||||
data: {
|
||||
page:page,
|
||||
limit: limit
|
||||
},
|
||||
success: function(e) {
|
||||
if (e.code == 1) {
|
||||
var html = '';
|
||||
if(e.data.length>0){
|
||||
page++;
|
||||
$.each(e.data, function(key, value) {
|
||||
html += '<li class="layui-timeline-item">\
|
||||
<i class="layui-icon layui-timeline-axis"></i>\
|
||||
<div class="layui-timeline-content layui-text">\
|
||||
<div class="layui-timeline-title"><span title="'+value.id+'">'+value.times+'</span>,'+value.content+'</div>\
|
||||
</div>\
|
||||
</li>';
|
||||
});
|
||||
$('#logs').append(html);
|
||||
}else{
|
||||
$('.panel-more').remove();
|
||||
}
|
||||
$.ajax({
|
||||
url: "/admin/api/get_log_list",
|
||||
type: 'post',
|
||||
data: {
|
||||
page:page,
|
||||
limit: limit
|
||||
},
|
||||
success: function(e) {
|
||||
if (e.code == 1) {
|
||||
var html = '';
|
||||
if(e.data.length>0){
|
||||
page++;
|
||||
$.each(e.data, function(key, value) {
|
||||
html += '<li class="layui-timeline-item">\
|
||||
<i class="layui-icon layui-timeline-axis"></i>\
|
||||
<div class="layui-timeline-content layui-text">\
|
||||
<div class="layui-timeline-title"><span title="'+value.id+'">'+value.times+'</span>,'+value.content+'</div>\
|
||||
</div>\
|
||||
</li>';
|
||||
});
|
||||
$('#logs').append(html);
|
||||
}else{
|
||||
$('.panel-more').remove();
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
getLogs();
|
||||
</script>
|
||||
|
@ -81,6 +81,6 @@
|
||||
});
|
||||
}
|
||||
</script>
|
||||
{include file="common/layui" base='base' extend="[]" use="['form']" callback="init" /}
|
||||
{include file="common/layui" base='base' extend="[]" callback="init" /}
|
||||
{/block}
|
||||
<!-- /脚本 -->
|
@ -159,7 +159,7 @@
|
||||
}
|
||||
|
||||
</script>
|
||||
{include file="common/layui" base='base' extend="['tagpicker']" use="['upload','form','tagpicker']" callback="init" /}
|
||||
{include file="common/layui" base='base' extend="['tagpicker']" callback="init" /}
|
||||
{include file="common/ueditor" id="container" name="content" width="776" height="500" toolbar="[]" /}
|
||||
{/block}
|
||||
<!-- /脚本 -->
|
@ -99,6 +99,6 @@
|
||||
});
|
||||
}
|
||||
</script>
|
||||
{include file="common/layui" base='base' extend="['treeGrid']" use="['treeGrid','layer','table']" callback="init" /}
|
||||
{include file="common/layui" base='base' extend="['treeGrid']" callback="init" /}
|
||||
{/block}
|
||||
<!-- /脚本 -->
|
@ -76,6 +76,6 @@
|
||||
|
||||
}
|
||||
</script>
|
||||
{include file="common/layui" base='base' extend="[]" use="['form']" callback="init" /}
|
||||
{include file="common/layui" base='base' extend="[]" callback="init" /}
|
||||
{/block}
|
||||
<!-- /脚本 -->
|
@ -165,7 +165,7 @@
|
||||
}
|
||||
|
||||
</script>
|
||||
{include file="common/layui" base='base' extend="['tagpicker']" use="['upload','form','tagpicker']" callback="init" /}
|
||||
{include file="common/layui" base='base' extend="['tagpicker']" callback="init" /}
|
||||
{include file="common/ueditor" id="container" name="content" width="776" height="500" toolbar="[]" /}
|
||||
{/block}
|
||||
<!-- /脚本 -->
|
@ -43,11 +43,14 @@
|
||||
|
||||
var tableIns = table.render({
|
||||
elem: '#test',
|
||||
title: '文章分类列表',
|
||||
title: '文章列表',
|
||||
toolbar: '#toolbarDemo',
|
||||
url: '/admin/article/index', //数据接口
|
||||
page: true, //开启分页
|
||||
limit: 20,
|
||||
response: {
|
||||
statusCode: 1 //规定成功的状态码,默认:0
|
||||
},
|
||||
cols: [
|
||||
[ //表头
|
||||
{
|
||||
@ -132,6 +135,6 @@
|
||||
});
|
||||
}
|
||||
</script>
|
||||
{include file="common/layui" base='base' extend="[]" use="['table','form']" callback="init" /}
|
||||
{include file="common/layui" base="base" extend="[]" callback="init" /}
|
||||
{/block}
|
||||
<!-- /脚本 -->
|
||||
|
@ -4,7 +4,6 @@
|
||||
{if condition=" '[base]'!=='base' "}
|
||||
base=[base];
|
||||
{/if}
|
||||
var moduleArray=[use];
|
||||
var extendArray=[extend];
|
||||
var callback=[callback];
|
||||
var extend={};
|
||||
@ -18,7 +17,7 @@
|
||||
layui.config({
|
||||
base: base,
|
||||
version:'{:get_system_config('web','version')}'
|
||||
}).extend(extend).use(moduleArray, function(){
|
||||
}).extend(extend).use(extendArray, function(){
|
||||
callback(layui);
|
||||
});
|
||||
</script>
|
@ -77,6 +77,6 @@
|
||||
}
|
||||
|
||||
</script>
|
||||
{include file="common/layui" base='base' extend="[]" use="['form']" callback="init" /}
|
||||
{include file="common/layui" base="base" extend="[]" callback="init" /}
|
||||
{/block}
|
||||
<!-- /脚本 -->
|
@ -140,7 +140,7 @@
|
||||
}
|
||||
|
||||
</script>
|
||||
{include file="common/layui" base='base' extend="[]" use="['upload','form']" callback="init" /}
|
||||
{include file="common/layui" base="base" extend="[]" callback="init" /}
|
||||
{include file="common/ueditor" id="container" name="content" width="100%" height="100%" toolbar="[]" /}
|
||||
{/block}
|
||||
<!-- /脚本 -->
|
@ -28,7 +28,10 @@
|
||||
title: '配置列表',
|
||||
toolbar: '#toolbarDemo',
|
||||
url: '/admin/conf/index',
|
||||
page: true, //开启分页
|
||||
page: true, //开启分页
|
||||
response: {
|
||||
statusCode: 1 //规定成功的状态码,默认:0
|
||||
},
|
||||
limit: 20,
|
||||
cols: [
|
||||
[{
|
||||
@ -103,6 +106,6 @@
|
||||
});
|
||||
}
|
||||
</script>
|
||||
{include file="common/layui" base='base' extend="[]" use="['table','form']" callback="init" /}
|
||||
{include file="common/layui" base="base" extend="[]" callback="init" /}
|
||||
{/block}
|
||||
<!-- /脚本 -->
|
@ -65,6 +65,6 @@
|
||||
});
|
||||
}
|
||||
</script>
|
||||
{include file="common/layui" base='base' extend="[]" use="['form']" callback="init" /}
|
||||
{include file="common/layui" base="base" extend="[]" callback="init" /}
|
||||
{/block}
|
||||
<!-- /脚本 -->
|
@ -197,6 +197,6 @@
|
||||
})
|
||||
}
|
||||
</script>
|
||||
{include file="common/layui" base='base' extend="[]" use="['form']" callback="init" /}
|
||||
{include file="common/layui" base="base" extend="[]" callback="init" /}
|
||||
{/block}
|
||||
<!-- /脚本 -->
|
@ -148,6 +148,6 @@
|
||||
});
|
||||
}
|
||||
</script>
|
||||
{include file="common/layui" base='base' extend="[]" use="['upload','form']" callback="init" /}
|
||||
{include file="common/layui" base="base" extend="[]" callback="init" /}
|
||||
{/block}
|
||||
<!-- /脚本 -->
|
@ -103,6 +103,6 @@
|
||||
});
|
||||
}
|
||||
</script>
|
||||
{include file="common/layui" base='base' extend="[]" use="['upload','form']" callback="init" /}
|
||||
{include file="common/layui" base="base" extend="[]" callback="init" /}
|
||||
{/block}
|
||||
<!-- /脚本 -->
|
||||
|
@ -86,6 +86,6 @@
|
||||
})
|
||||
}
|
||||
</script>
|
||||
{include file="common/layui" base='base' extend="[]" use="['table','form']" callback="init" /}
|
||||
{include file="common/layui" base="base" extend="[]" callback="init" /}
|
||||
{/block}
|
||||
<!-- /脚本 -->
|
||||
|
@ -27,6 +27,9 @@
|
||||
toolbar: '#toolbarDemo',
|
||||
url: '/admin/database/database', //数据接口
|
||||
page: false,
|
||||
response: {
|
||||
statusCode: 1 //规定成功的状态码,默认:0
|
||||
},
|
||||
cols: [
|
||||
[ //表头
|
||||
{type: 'checkbox'},
|
||||
@ -147,6 +150,6 @@
|
||||
});
|
||||
}
|
||||
</script>
|
||||
{include file="common/layui" base='base' extend="[]" use="['table','form']" callback="init" /}
|
||||
{include file="common/layui" base="base" extend="[]" callback="init" /}
|
||||
{/block}
|
||||
<!-- /脚本 -->
|
||||
|
@ -129,6 +129,6 @@
|
||||
});
|
||||
};
|
||||
</script>
|
||||
{include file="common/layui" base='base' extend="[]" use="['layer','gougucms']" callback="init" /}
|
||||
{include file="common/layui" base='base' extend="['gougucms']" callback="init" /}
|
||||
{/block}
|
||||
<!-- /脚本 -->
|
@ -196,14 +196,35 @@
|
||||
</div>
|
||||
<div class="panel">
|
||||
<div class="table-title">注册用户</div>
|
||||
<table id="UserList" lay-filter="UserList" class="layui-hide"></table>
|
||||
<table id="UserList" class="layui-table layui-table-view">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>用户名</th>
|
||||
<th>头像</th>
|
||||
<th>登录次数</th>
|
||||
<th>最后登录时间</th>
|
||||
</tr>
|
||||
</thead>
|
||||
</table>
|
||||
<div style="clear: left;"></div>
|
||||
</div>
|
||||
<div class="panel">
|
||||
<div class="table-title">文章列表</div>
|
||||
<table id="Article" lay-filter="Article" class="layui-hide"></table>
|
||||
<table id="Article" class="layui-table layui-table-view">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>文章标题</th>
|
||||
<th>文章分类</th>
|
||||
<th>发布时间</th>
|
||||
</tr>
|
||||
</thead>
|
||||
</table>
|
||||
<div style="clear: left;"></div>
|
||||
</div>
|
||||
<div class="panel">
|
||||
<div class="table-title">访问统计</div>
|
||||
<div id="chartView" style="width: 100%;height:396px;"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div style="clear: right;"></div>
|
||||
</div>
|
||||
@ -212,6 +233,7 @@
|
||||
|
||||
<!-- 脚本 -->
|
||||
{block name="script"}
|
||||
<script src="https://cdn.bootcdn.net/ajax/libs/echarts/5.1.2/echarts.min.js"></script>
|
||||
<script>
|
||||
function getLogs() {
|
||||
$.ajax({
|
||||
@ -237,40 +259,164 @@
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
function getUsers() {
|
||||
$.ajax({
|
||||
url: "/admin/api/get_user_list",
|
||||
type: 'post',
|
||||
success: function (e) {
|
||||
if (e.code == 1) {
|
||||
var html = '';
|
||||
$.each(e.data, function (key, value) {
|
||||
html += '<tr>\
|
||||
<td>'+value.username+'</td>\
|
||||
<td>\
|
||||
<img src="' + value.headimgurl + '" width="20" height="20" />\
|
||||
</td>\
|
||||
<td>'+value.login_num+'</td>\
|
||||
<td>'+value.last_login_time+'</td>\
|
||||
</tr>';
|
||||
});
|
||||
console.log(html);
|
||||
$('#UserList').append(html);
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
function getArticles() {
|
||||
$.ajax({
|
||||
url: "/admin/api/get_article_list",
|
||||
type: 'post',
|
||||
success: function (e) {
|
||||
if (e.code == 1) {
|
||||
var html = '';
|
||||
$.each(e.data, function (key, value) {
|
||||
html += '<tr>\
|
||||
<td>'+value.title+'</td>\
|
||||
<td>' + value.cate_title + '</td>\
|
||||
<td>'+value.create_time+'</td>\
|
||||
</tr>';
|
||||
});
|
||||
$('#Article').append(html);
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
var echartsTheme={color:["#1AAD19","#1890FF","#5FB878","#FFB980","#D87A80","#8d98b3","#e5cf0d","#97b552","#95706d","#dc69aa","#07a2a4","#9a7fd1","#588dd5","#f5994e","#c05050","#59678c","#c9ab00","#7eb00a","#6f5553","#c14089"],title:{textStyle:{fontWeight:"normal",color:"#666"}},dataRange:{itemWidth:15,color:["#009688","#e0ffff"]},toolbox:{color:["#1e90ff","#1e90ff","#1e90ff","#1e90ff"],effectiveColor:"#ff4500"},tooltip:{axisPointer:{type:"line",lineStyle:{color:"#999"},crossStyle:{color:"#008acd"},shadowStyle:{color:"rgba(200,200,200,0.2)"}}},dataZoom:{dataBackgroundColor:"#efefff",fillerColor:"rgba(182,162,222,0.2)",handleColor:"#008acd"},grid:{borderColor:"#eee"},categoryAxis:{axisLine:{lineStyle:{color:"#555555"}},axisTick:{show:!1},splitLine:{lineStyle:{color:["#eee"]}}},valueAxis:{axisLine:{lineStyle:{color:"#555555"}},splitArea:{show:!0,areaStyle:{color:["rgba(250,250,250,0.1)","rgba(200,200,200,0.1)"]}},splitLine:{lineStyle:{color:["#eee"]}}},polar:{axisLine:{lineStyle:{color:"#ddd"}},splitArea:{show:!0,areaStyle:{color:["rgba(250,250,250,0.2)","rgba(200,200,200,0.2)"]}},splitLine:{lineStyle:{color:"#ddd"}}},timeline:{lineStyle:{color:"#009688"},controlStyle:{normal:{color:"#009688"},emphasis:{color:"#009688"}},symbol:"emptyCircle",symbolSize:3},bar:{itemStyle:{normal:{barBorderRadius:2},emphasis:{barBorderRadius:2}}},line:{smooth:!0,symbol:"emptyCircle",symbolSize:8},k:{itemStyle:{normal:{color:"#d87a80",color0:"#2ec7c9",lineStyle:{color:"#d87a80",color0:"#2ec7c9"}}}},scatter:{symbol:"circle",symbolSize:4},radar:{symbol:"emptyCircle",symbolSize:3},map:{itemStyle:{normal:{areaStyle:{color:"#ddd"},label:{textStyle:{color:"#d87a80"}}},emphasis:{areaStyle:{color:"#fe994e"}}}},force:{itemStyle:{normal:{linkStyle:{color:"#1e90ff"}}}},chord:{itemStyle:{normal:{borderWidth:1,borderColor:"rgba(128, 128, 128, 0.5)",chordStyle:{lineStyle:{color:"rgba(128, 128, 128, 0.5)"}}},emphasis:{borderWidth:1,borderColor:"rgba(128, 128, 128, 0.5)",chordStyle:{lineStyle:{color:"rgba(128, 128, 128, 0.5)"}}}}},gauge:{axisLine:{lineStyle:{color:[[.2,"#2ec7c9"],[.8,"#5ab1ef"],[1,"#d87a80"]],width:10}},axisTick:{splitNumber:10,length:15,lineStyle:{color:"auto"}},splitLine:{length:22,lineStyle:{color:"auto"}},pointer:{width:5}},textStyle:{fontFamily:"微软雅黑, Arial, Verdana, sans-serif"}};
|
||||
function setHour(num){
|
||||
var str= num+':00';
|
||||
if(num<10){
|
||||
str='0'+num+':00';
|
||||
}
|
||||
return str;
|
||||
}
|
||||
var chartView = echarts.init(document.getElementById('chartView'),echartsTheme);
|
||||
function get_view_data() {
|
||||
$.ajax({
|
||||
url: "/admin/api/get_view_data",
|
||||
type: 'post',
|
||||
data: {},
|
||||
success: function (e) {
|
||||
if (e.code == 1) {
|
||||
var data_first = e.data.data_first;
|
||||
var data_second = e.data.data_second;
|
||||
var myDate = new Date();
|
||||
var nowHour = myDate.getHours(); //获取当前小时数(0-23)
|
||||
var xData=[];
|
||||
var yData1=[];
|
||||
var yData2=[];
|
||||
$.each(data_first, function (key, value) {
|
||||
if(key<=nowHour){
|
||||
yData1.push(value);
|
||||
}
|
||||
});
|
||||
$.each(data_second, function (key, value) {
|
||||
xData.push(setHour(key));
|
||||
yData2.push(value);
|
||||
});
|
||||
var ops= {
|
||||
color:["#1AAD19","#1890FF"],
|
||||
grid: {
|
||||
left: '10px',
|
||||
right: '20px',
|
||||
bottom: '20px',
|
||||
top: '60px',
|
||||
containLabel: true
|
||||
},
|
||||
tooltip: {
|
||||
trigger: 'axis',
|
||||
axisPointer: {
|
||||
type: 'cross',
|
||||
crossStyle: {
|
||||
color: '#999'
|
||||
}
|
||||
}
|
||||
},
|
||||
toolbox: {
|
||||
show: true,
|
||||
},
|
||||
legend: {
|
||||
data: ["今日", "昨日"]
|
||||
},
|
||||
xAxis: [{
|
||||
type: "category",
|
||||
boundaryGap: !1,
|
||||
data: xData
|
||||
}],
|
||||
yAxis: [{
|
||||
type: "value"
|
||||
}],
|
||||
series: [{
|
||||
name: "今日",
|
||||
type: "line",
|
||||
smooth: !0,
|
||||
itemStyle: {
|
||||
normal: {
|
||||
areaStyle: {
|
||||
type: "default",
|
||||
opacity:0.2
|
||||
}
|
||||
}
|
||||
},
|
||||
data: yData1
|
||||
}, {
|
||||
name: "昨日",
|
||||
type: "line",
|
||||
smooth: !0,
|
||||
itemStyle: {
|
||||
normal: {
|
||||
areaStyle: {
|
||||
type: "default",
|
||||
opacity:0.2
|
||||
}
|
||||
}
|
||||
},
|
||||
data: yData2
|
||||
}]
|
||||
}
|
||||
chartView.setOption(ops);
|
||||
setTimeout(function() {
|
||||
window.onresize = function() {
|
||||
chartView.resize();
|
||||
}
|
||||
})
|
||||
console.log(e.data);
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
function init(layui) {
|
||||
var layer = layui.layer, table = layui.table;
|
||||
getLogs();
|
||||
//注册用户
|
||||
table.render({
|
||||
elem: '#UserList'
|
||||
, url: '/admin/api/get_user_list' //数据接口
|
||||
, page: false //开启分页
|
||||
, cols: [[ //表头
|
||||
{ field: 'username', title: '用户名' }
|
||||
, {
|
||||
field: 'headimgurl', title: '头像', align: 'center', templet: function (d) {
|
||||
return '<img src="' + d.headimgurl + '" width="20" height="20" />';
|
||||
}
|
||||
}
|
||||
, { field: 'login_num', title: '登录次数', align: 'center' }
|
||||
, { field: 'last_login_time', title: '最后登录时间', align: 'center' }
|
||||
]]
|
||||
});
|
||||
|
||||
//文章
|
||||
table.render({
|
||||
elem: '#Article'
|
||||
, url: '/admin/api/get_article_list' //数据接口
|
||||
, page: false //开启分页
|
||||
, cols: [[ //表头
|
||||
{ field: 'title', title: '标题' }
|
||||
, { field: 'cate_title', title: '分类', align: 'center' }
|
||||
, { field: 'create_time', title: '发布时间', align: 'center' }
|
||||
]]
|
||||
});
|
||||
getUsers();
|
||||
getArticles();
|
||||
get_view_data();
|
||||
}
|
||||
</script>
|
||||
{include file="common/layui" base='base' extend="[]" use="['table','layer']" callback="init" /}
|
||||
{include file="common/layui" base="base" extend="[]" callback="init" /}
|
||||
{/block}
|
||||
<!-- /脚本 -->
|
@ -76,6 +76,6 @@
|
||||
}
|
||||
|
||||
</script>
|
||||
{include file="common/layui" base='base' extend="[]" use="['form']" callback="init" /}
|
||||
{include file="common/layui" base="base" extend="[]" callback="init" /}
|
||||
{/block}
|
||||
<!-- /脚本 -->
|
@ -35,6 +35,9 @@
|
||||
url: '/admin/keywords/index',
|
||||
page: true, //开启分页
|
||||
limit: 20,
|
||||
response: {
|
||||
statusCode: 1 //规定成功的状态码,默认:0
|
||||
},
|
||||
cols: [
|
||||
[{
|
||||
field: 'id',
|
||||
@ -112,6 +115,6 @@
|
||||
});
|
||||
}
|
||||
</script>
|
||||
{include file="common/layui" base='base' extend="[]" use="['table','form']" callback="init" /}
|
||||
{include file="common/layui" base="base" extend="[]" callback="init" /}
|
||||
{/block}
|
||||
<!-- /脚本 -->
|
@ -84,6 +84,6 @@
|
||||
});
|
||||
}
|
||||
</script>
|
||||
{include file="common/layui" base='base' extend="[]" use="['form']" callback="init" /}
|
||||
{include file="common/layui" base="base" extend="[]" callback="init" /}
|
||||
{/block}
|
||||
<!-- /脚本 -->
|
||||
|
@ -95,19 +95,7 @@
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
function openorclose() {
|
||||
var map = treeGrid.getDataMap(tableId);
|
||||
var o = map['1'];
|
||||
treeGrid.treeNodeOpen(o, !o[treeGrid.config.cols.isOpen]);
|
||||
}
|
||||
|
||||
function getCheckData() {
|
||||
var checkStatus = treeGrid.checkStatus(tableId)
|
||||
, data = checkStatus.data;
|
||||
layer.alert(JSON.stringify(data));
|
||||
}
|
||||
</script>
|
||||
{include file="common/layui" base='base' extend="['treeGrid']" use="['jquery','treeGrid','layer']" callback="init" /}
|
||||
{include file="common/layui" base="base" extend="['treeGrid']" callback="init" /}
|
||||
{/block}
|
||||
<!-- /脚本 -->
|
@ -83,6 +83,6 @@
|
||||
});
|
||||
}
|
||||
</script>
|
||||
{include file="common/layui" base='base' extend="[]" use="['form']" callback="init" /}
|
||||
{include file="common/layui" base="base" extend="[]" callback="init" /}
|
||||
{/block}
|
||||
<!-- /脚本 -->
|
@ -37,6 +37,9 @@
|
||||
url: '/admin/nav/index', //数据接口
|
||||
page: true, //开启分页
|
||||
limit: 20,
|
||||
response: {
|
||||
statusCode: 1 //规定成功的状态码,默认:0
|
||||
},
|
||||
cols: [
|
||||
[ //表头
|
||||
{
|
||||
@ -115,6 +118,6 @@
|
||||
});
|
||||
}
|
||||
</script>
|
||||
{include file="common/layui" base='base' extend="[]" use="['table','form']" callback="init" /}
|
||||
{include file="common/layui" base="base" extend="[]" callback="init" /}
|
||||
{/block}
|
||||
<!-- /脚本 -->
|
@ -132,7 +132,6 @@
|
||||
});
|
||||
}
|
||||
</script>
|
||||
{include file="common/layui" base='base' extend="['treeGrid']" use="['treeGrid','layer','table']"
|
||||
callback="init" /}
|
||||
{include file="common/layui" base="base" extend="['treeGrid']" callback="init" /}
|
||||
{/block}
|
||||
<!-- /脚本 -->
|
@ -107,6 +107,6 @@
|
||||
});
|
||||
}
|
||||
</script>
|
||||
{include file="common/layui" base='base' extend="[]" use="['form']" callback="init" /}
|
||||
{include file="common/layui" base="base" extend="[]" callback="init" /}
|
||||
{/block}
|
||||
<!-- /脚本 -->
|
||||
|
@ -118,8 +118,6 @@
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
|
||||
//监听提交
|
||||
form.on('submit(webform)', function (obj) {
|
||||
var checkRule = tree.getChecked('demoId1');
|
||||
@ -155,6 +153,6 @@
|
||||
}
|
||||
|
||||
</script>
|
||||
{include file="common/layui" base='base' extend="[]" use="['tree', 'form', 'layer']" callback="init" /}
|
||||
{include file="common/layui" base="base" extend="[]" callback="init" /}
|
||||
{/block}
|
||||
<!-- /脚本 -->
|
@ -34,12 +34,15 @@
|
||||
, form = layui.form;
|
||||
|
||||
var tableIns = table.render({
|
||||
elem: '#test'
|
||||
, toolbar: '#toolbarDemo'
|
||||
, url: '/admin/role/index' //数据接口
|
||||
, page: true //开启分页
|
||||
, limit: 20
|
||||
, cols: [[ //表头
|
||||
elem: '#test',
|
||||
toolbar: '#toolbarDemo',
|
||||
url: '/admin/role/index', //数据接口
|
||||
page: true, //开启分页
|
||||
limit: 20,
|
||||
response: {
|
||||
statusCode: 1 //规定成功的状态码,默认:0
|
||||
},
|
||||
cols: [[ //表头
|
||||
{ field: 'id', title: 'ID号', align: 'center', width: 80 }
|
||||
, { field: 'title', title: '名称', width: 300 }
|
||||
, { field: 'desc', title: '备注' }
|
||||
@ -97,6 +100,6 @@
|
||||
}
|
||||
|
||||
</script>
|
||||
{include file="common/layui" base='base' extend="[]" use="['table','form']" callback="init" /}
|
||||
{include file="common/layui" base="base" extend="[]" callback="init" /}
|
||||
{/block}
|
||||
<!-- /脚本 -->
|
@ -78,6 +78,6 @@
|
||||
});
|
||||
}
|
||||
</script>
|
||||
{include file="common/layui" base='base' extend="[]" use="['form']" callback="init" /}
|
||||
{include file="common/layui" base="base" extend="[]" callback="init" /}
|
||||
{/block}
|
||||
<!-- /脚本 -->
|
@ -95,20 +95,7 @@
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
function openorclose() {
|
||||
var map = treeGrid.getDataMap(tableId);
|
||||
var o = map['1'];
|
||||
treeGrid.treeNodeOpen(o, !o[treeGrid.config.cols.isOpen]);
|
||||
}
|
||||
|
||||
function getCheckData() {
|
||||
var checkStatus = treeGrid.checkStatus(tableId)
|
||||
, data = checkStatus.data;
|
||||
layer.alert(JSON.stringify(data));
|
||||
}
|
||||
</script>
|
||||
{include file="common/layui" base='base' extend="['treeGrid']" use="['jquery','treeGrid','layer','table']"
|
||||
callback="init" /}
|
||||
{include file="common/layui" base="base" extend="['treeGrid']" callback="init" /}
|
||||
{/block}
|
||||
<!-- /脚本 -->
|
@ -27,6 +27,9 @@
|
||||
url: '/admin/search/index',
|
||||
page: true, //开启分页
|
||||
limit: 20,
|
||||
response: {
|
||||
statusCode: 1 //规定成功的状态码,默认:0
|
||||
},
|
||||
cols: [
|
||||
[{
|
||||
field: 'id',
|
||||
@ -94,6 +97,6 @@
|
||||
});
|
||||
}
|
||||
</script>
|
||||
{include file="common/layui" base='base' extend="[]" use="['table','form']" callback="init" /}
|
||||
{include file="common/layui" base="base" extend="[]" callback="init" /}
|
||||
{/block}
|
||||
<!-- /脚本 -->
|
@ -65,6 +65,6 @@
|
||||
});
|
||||
}
|
||||
</script>
|
||||
{include file="common/layui" base='base' extend="[]" use="['upload','form']" callback="init" /}
|
||||
{include file="common/layui" base="base" extend="[]" callback="init" /}
|
||||
{/block}
|
||||
<!-- /脚本 -->
|
@ -37,6 +37,9 @@
|
||||
url: '/admin/sitemap/index', //数据接口
|
||||
page: true, //开启分页
|
||||
limit: 20,
|
||||
response: {
|
||||
statusCode: 1 //规定成功的状态码,默认:0
|
||||
},
|
||||
cols: [
|
||||
[ //表头
|
||||
{
|
||||
@ -103,6 +106,6 @@
|
||||
});
|
||||
}
|
||||
</script>
|
||||
{include file="common/layui" base='base' extend="[]" use="['table','form']" callback="init" /}
|
||||
{include file="common/layui" base="base" extend="[]" callback="init" /}
|
||||
{/block}
|
||||
<!-- /脚本 -->
|
@ -105,6 +105,6 @@
|
||||
});
|
||||
}
|
||||
</script>
|
||||
{include file="common/layui" base='base' extend="[]" use="['table','form']" callback="init" /}
|
||||
{include file="common/layui" base="base" extend="[]" callback="init" /}
|
||||
{/block}
|
||||
<!-- /脚本 -->
|
@ -143,6 +143,6 @@
|
||||
});
|
||||
}
|
||||
</script>
|
||||
{include file="common/layui" base='base' extend="[]" use="['upload','form']" callback="init" /}
|
||||
{include file="common/layui" base="base" extend="[]" callback="init" /}
|
||||
{/block}
|
||||
<!-- /脚本 -->
|
@ -82,6 +82,6 @@
|
||||
}
|
||||
|
||||
</script>
|
||||
{include file="common/layui" base='base' extend="[]" use="['upload','form']" callback="init" /}
|
||||
{include file="common/layui" base="base" extend="[]" callback="init" /}
|
||||
{/block}
|
||||
<!-- /脚本 -->
|
@ -38,6 +38,9 @@
|
||||
url: '/admin/slide/index', //数据接口
|
||||
page: true, //开启分页
|
||||
limit: 20,
|
||||
response: {
|
||||
statusCode: 1 //规定成功的状态码,默认:0
|
||||
},
|
||||
cols: [
|
||||
[
|
||||
{
|
||||
@ -114,6 +117,6 @@
|
||||
});
|
||||
}
|
||||
</script>
|
||||
{include file="common/layui" base='base' extend="[]" use="['table','form']" callback="init" /}
|
||||
{include file="common/layui" base="base" extend="[]" callback="init" /}
|
||||
{/block}
|
||||
<!-- /脚本 -->
|
@ -39,6 +39,9 @@
|
||||
where: {
|
||||
id: slide_id
|
||||
},
|
||||
response: {
|
||||
statusCode: 1 //规定成功的状态码,默认:0
|
||||
},
|
||||
page: false, //开启分页
|
||||
cols: [
|
||||
[
|
||||
@ -117,6 +120,6 @@
|
||||
});
|
||||
}
|
||||
</script>
|
||||
{include file="common/layui" base='base' extend="[]" use="['table','form']" callback="init" /}
|
||||
{include file="common/layui" base="base" extend="[]" callback="init" /}
|
||||
{/block}
|
||||
<!-- /脚本 -->
|
||||
|
@ -114,6 +114,6 @@
|
||||
}
|
||||
|
||||
</script>
|
||||
{include file="common/layui" base='base' extend="[]" use="['upload','form']" callback="init" /}
|
||||
{include file="common/layui" base="base" extend="[]" callback="init" /}
|
||||
{/block}
|
||||
<!-- /脚本 -->
|
@ -135,6 +135,6 @@
|
||||
}
|
||||
|
||||
</script>
|
||||
{include file="common/layui" base='base' extend="[]" use="['upload','form']" callback="init" /}
|
||||
{include file="common/layui" base="base" extend="[]" callback="init" /}
|
||||
{/block}
|
||||
<!-- /脚本 -->
|
@ -47,6 +47,9 @@
|
||||
url: '/admin/user/index', //数据接口
|
||||
page: true, //开启分页
|
||||
limit: 20,
|
||||
response: {
|
||||
statusCode: 1 //规定成功的状态码,默认:0
|
||||
},
|
||||
cols: [
|
||||
[ //表头
|
||||
{
|
||||
@ -186,6 +189,6 @@
|
||||
});
|
||||
}
|
||||
</script>
|
||||
{include file="common/layui" base='base' extend="[]" use="['table','form','laydate']" callback="init" /}
|
||||
{include file="common/layui" base="base" extend="[]" callback="init" /}
|
||||
{/block}
|
||||
<!-- /脚本 -->
|
||||
|
@ -26,6 +26,9 @@
|
||||
url: '/admin/user/log', //数据接口
|
||||
page: true, //开启分页
|
||||
limit: 20,
|
||||
response: {
|
||||
statusCode: 1 //规定成功的状态码,默认:0
|
||||
},
|
||||
cols: [
|
||||
[
|
||||
{
|
||||
@ -80,6 +83,6 @@
|
||||
});
|
||||
}
|
||||
</script>
|
||||
{include file="common/layui" base='base' extend="[]" use="['table','form']" callback="init" /}
|
||||
{include file="common/layui" base="base" extend="[]" callback="init" /}
|
||||
{/block}
|
||||
<!-- /脚本 -->
|
@ -126,6 +126,6 @@
|
||||
});
|
||||
}
|
||||
</script>
|
||||
{include file="common/layui" base='base' extend="[]" use="[]" callback="init" /}
|
||||
{include file="common/layui" base="base" extend="[]" callback="init" /}
|
||||
{/block}
|
||||
<!-- /脚本 -->
|
@ -10,7 +10,7 @@
|
||||
<div class="intro-box">
|
||||
<div class="intro-info">
|
||||
<div class="intro-title">勾股CMS,让WEB开发更简单!</div>
|
||||
<div class="intro-text">勾股CMS是一套基于ThinkPHP6 + Layui + MySql打造的轻量级、高性能极速后台开发框架。<br/>系统后台各管理模块,一目了然,操作简单;通用型的后台权限管理框架,紧随潮流、极低门槛、开箱即用。<br/>系统易于功能扩展,代码维护,方便二次开发,帮助开发者简单高效降低二次开发成本,满足专注业务深度开发的需求。</div>
|
||||
<div class="intro-text">勾股CMS是一套基于ThinkPHP6 + Layui + MySql打造的轻量级、高性能极速后台开发框架。<br/>系统后台各管理模块,一目了然,操作简单;通用型的后台权限管理框架,干净不臃肿、极易上手、开箱即用。<br/>系统易于功能扩展,代码维护,方便二次开发,帮助开发者简单高效降低二次开发成本,从而满足开发者更专注于业务深度的需求开发。</div>
|
||||
</div>
|
||||
<div class="intro-ops">
|
||||
<div class="cms-download">
|
||||
|
@ -12,7 +12,6 @@
|
||||
<h1 style="height:60px; font-size:24px">更新日志</h1>
|
||||
<ul class="layui-timeline">
|
||||
<li class="layui-timeline-item">
|
||||
<a name="2-4-x"> </a>
|
||||
<i class="layui-icon layui-timeline-axis"></i>
|
||||
<div class="layui-timeline-content layui-text">
|
||||
<div class="layui-timeline-title">
|
||||
@ -23,8 +22,8 @@
|
||||
</blockquote>
|
||||
<ul>
|
||||
<li>
|
||||
<a name="1.0.8"> </a>
|
||||
<h3>v1.2021.09.01 <span class="layui-badge-rim">2021-09-01</span></h3>
|
||||
<a name="1.0.9"> </a>
|
||||
<h3>v1.0.9 <span class="layui-badge-rim">2021-09-01</span></h3>
|
||||
<ul>
|
||||
<li>顶部导航新增当前高亮状态</li>
|
||||
<li>新增后台账号规范:必须是以字母开头,只能包含字母数字下划线和减号,5到20位</li>
|
||||
@ -39,7 +38,6 @@
|
||||
</div>
|
||||
</li>
|
||||
<li class="layui-timeline-item">
|
||||
<a name="2-4-x"> </a>
|
||||
<i class="layui-icon layui-timeline-axis"></i>
|
||||
<div class="layui-timeline-content layui-text">
|
||||
<div class="layui-timeline-title">
|
||||
@ -51,7 +49,7 @@
|
||||
<ul>
|
||||
<li>
|
||||
<a name="1.0.8"> </a>
|
||||
<h3>v1.2021.07.28 <span class="layui-badge-rim">2021-07-28</span></h3>
|
||||
<h3>v1.0.8 <span class="layui-badge-rim">2021-07-28</span></h3>
|
||||
<ul>
|
||||
<li>引入jwt包,新增API接口模块</li>
|
||||
<li>系统配置中新增公安备案字段配置</li>
|
||||
@ -65,7 +63,6 @@
|
||||
</div>
|
||||
</li>
|
||||
<li class="layui-timeline-item">
|
||||
<a name="2-4-x"> </a>
|
||||
<i class="layui-icon layui-timeline-axis"></i>
|
||||
<div class="layui-timeline-content layui-text">
|
||||
<div class="layui-timeline-title">
|
||||
@ -77,7 +74,7 @@
|
||||
<ul>
|
||||
<li>
|
||||
<a name="1.0.5"> </a>
|
||||
<h3>v1.2021.06.15 <span class="layui-badge-rim">2021-06-15</span></h3>
|
||||
<h3>v1.0.5 <span class="layui-badge-rim">2021-06-15</span></h3>
|
||||
<ul>
|
||||
<li>修改自动生成头像在php严格模式下的bug</li>
|
||||
<li>修改新增节点时字段错误的bug</li>
|
||||
@ -91,7 +88,6 @@
|
||||
</div>
|
||||
</li>
|
||||
<li class="layui-timeline-item">
|
||||
<a name="2-4-x"> </a>
|
||||
<i class="layui-icon layui-timeline-axis"></i>
|
||||
<div class="layui-timeline-content layui-text">
|
||||
<div class="layui-timeline-title">
|
||||
@ -103,7 +99,7 @@
|
||||
<ul>
|
||||
<li>
|
||||
<a name="1.0.2"> </a>
|
||||
<h3>v1.2021.02.22 <span class="layui-badge-rim">2021-02-22</span></h3>
|
||||
<h3>v1.0.2 <span class="layui-badge-rim">2021-02-22</span></h3>
|
||||
<ul>
|
||||
<li>增加跳转函数</li>
|
||||
<li>完善邮箱模块</li>
|
||||
@ -116,7 +112,6 @@
|
||||
</div>
|
||||
</li>
|
||||
<li class="layui-timeline-item">
|
||||
<a name="2-4-x"> </a>
|
||||
<i class="layui-icon layui-timeline-axis"></i>
|
||||
<div class="layui-timeline-content layui-text">
|
||||
<div class="layui-timeline-title">
|
||||
@ -130,7 +125,7 @@
|
||||
<ul>
|
||||
<li>
|
||||
<a name="1.0.0"> </a>
|
||||
<h3>v1.2021.01.30 <span class="layui-badge-rim">2021-01-30</span></h3>
|
||||
<h3>v1.0.0 <span class="layui-badge-rim">2021-01-30</span></h3>
|
||||
<ul>
|
||||
<li>系统第一个版本,主要有以下功能模块:</li>
|
||||
<li>系统管理</li>
|
||||
|
@ -1,2 +1 @@
|
||||
/** layui-v2.5.7 MIT License */
|
||||
html #layuicss-skincodecss{display:none;position:absolute;width:1989px}.layui-code-h3,.layui-code-view{position:relative;font-size:12px}.layui-code-view{display:block;margin:10px 0;padding:0;border:1px solid #e2e2e2;border-left-width:6px;background-color:#F2F2F2;color:#333;font-family:Courier New}.layui-code-h3{padding:0 10px;height:32px;line-height:32px;border-bottom:1px solid #e2e2e2}.layui-code-h3 a{position:absolute;right:10px;top:0;color:#999}.layui-code-view .layui-code-ol{position:relative;overflow:auto}.layui-code-view .layui-code-ol li{position:relative;margin-left:45px;line-height:20px;padding:0 5px;border-left:1px solid #e2e2e2;list-style-type:decimal-leading-zero;*list-style-type:decimal;background-color:#fff}.layui-code-view pre{margin:0}.layui-code-notepad{border:1px solid #0C0C0C;border-left-color:#3F3F3F;background-color:#0C0C0C;color:#C2BE9E}.layui-code-notepad .layui-code-h3{border-bottom:none}.layui-code-notepad .layui-code-ol li{background-color:#3F3F3F;border-left:none}
|
||||
html #layuicss-skincodecss{display:none;position:absolute;width:1989px}.layui-code-h3,.layui-code-view{position:relative;font-size:12px}.layui-code-view{display:block;margin:10px 0;padding:0;border:1px solid #eee;border-left-width:6px;background-color:#FAFAFA;color:#333;font-family:Courier New}.layui-code-h3{padding:0 10px;height:40px;line-height:40px;border-bottom:1px solid #eee}.layui-code-h3 a{position:absolute;right:10px;top:0;color:#999}.layui-code-view .layui-code-ol{position:relative;overflow:auto}.layui-code-view .layui-code-ol li{position:relative;margin-left:45px;line-height:20px;padding:0 10px;border-left:1px solid #e2e2e2;list-style-type:decimal-leading-zero;*list-style-type:decimal;background-color:#fff}.layui-code-view .layui-code-ol li:first-child{padding-top:10px}.layui-code-view .layui-code-ol li:last-child{padding-bottom:10px}.layui-code-view pre{margin:0}.layui-code-notepad{border:1px solid #0C0C0C;border-left-color:#3F3F3F;background-color:#0C0C0C;color:#C2BE9E}.layui-code-notepad .layui-code-h3{border-bottom:none}.layui-code-notepad .layui-code-ol li{background-color:#3F3F3F;border-left:none}.layui-code-demo .layui-code{visibility:visible!important;margin:-15px;border-top:none;border-right:none;border-bottom:none}.layui-code-demo .layui-tab-content{padding:15px;border-top:none}
|
Before Width: | Height: | Size: 2.6 KiB |
Before Width: | Height: | Size: 5.4 KiB |
Before Width: | Height: | Size: 2.7 KiB |
Before Width: | Height: | Size: 4.0 KiB |
Before Width: | Height: | Size: 3.3 KiB |
Before Width: | Height: | Size: 7.3 KiB |
Before Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 1.8 KiB |
Before Width: | Height: | Size: 6.6 KiB |
Before Width: | Height: | Size: 4.3 KiB |
Before Width: | Height: | Size: 2.9 KiB |
Before Width: | Height: | Size: 3.0 KiB |
Before Width: | Height: | Size: 3.1 KiB |
Before Width: | Height: | Size: 5.0 KiB |
Before Width: | Height: | Size: 5.1 KiB |
Before Width: | Height: | Size: 9.6 KiB |
Before Width: | Height: | Size: 3.7 KiB |
Before Width: | Height: | Size: 7.9 KiB |
Before Width: | Height: | Size: 3.1 KiB |
Before Width: | Height: | Size: 3.2 KiB |
Before Width: | Height: | Size: 4.3 KiB |
Before Width: | Height: | Size: 2.7 KiB |
Before Width: | Height: | Size: 4.7 KiB |
Before Width: | Height: | Size: 3.9 KiB |
Before Width: | Height: | Size: 2.5 KiB |
Before Width: | Height: | Size: 2.0 KiB |
Before Width: | Height: | Size: 3.4 KiB |
Before Width: | Height: | Size: 2.4 KiB |
Before Width: | Height: | Size: 3.6 KiB |
Before Width: | Height: | Size: 1.8 KiB |
Before Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 3.5 KiB |
Before Width: | Height: | Size: 6.3 KiB |
Before Width: | Height: | Size: 5.6 KiB |
Before Width: | Height: | Size: 3.1 KiB |
Before Width: | Height: | Size: 3.6 KiB |
Before Width: | Height: | Size: 5.2 KiB |
Before Width: | Height: | Size: 2.6 KiB |
Before Width: | Height: | Size: 4.0 KiB |
Before Width: | Height: | Size: 3.3 KiB |
Before Width: | Height: | Size: 2.9 KiB |