impr:文章、留言、帖子列表
parent
569e0076a5
commit
b172bb28aa
|
|
@ -7,6 +7,9 @@ layui.define([], function (exprots) {
|
|||
datatables: "http://rap2api.taobao.org/app/mock/233041/datatables",
|
||||
listUser: "http://rap2api.taobao.org/app/mock/233041/user/listUser",
|
||||
listRole: "http://rap2api.taobao.org/app/mock/233041/role/listRole",
|
||||
listArticle: "http://rap2api.taobao.org/app/mock/233041/article/listArticle",
|
||||
listMessage: "http://rap2api.taobao.org/app/mock/233041/message/listMessage",
|
||||
listBbs: "http://rap2api.taobao.org/app/mock/233041/bbs/listBbs",
|
||||
|
||||
|
||||
menu: {
|
||||
|
|
|
|||
|
|
@ -48,7 +48,7 @@ layui.define(["layer"], function (exprots) {
|
|||
dataType: "json",
|
||||
beforeSend: function () {
|
||||
if (load) {
|
||||
loadIndex = layer.load(0, {shade: false});
|
||||
loadIndex = layer.load(0, {shade: 0.3});
|
||||
}
|
||||
},
|
||||
success: function (data) {
|
||||
|
|
|
|||
|
|
@ -57,8 +57,9 @@
|
|||
{field: "province", title: "省份", width: 120},
|
||||
{field: "city", title: "城市", width: 100},
|
||||
{field: "county", title: "区县", width: 120},
|
||||
{field: "createTime", title: "创建时间", width: 150},
|
||||
{field: "logins", title: "登陆次数", width: 100},
|
||||
{field: "createTime", title: "创建时间", width: 150},
|
||||
{field: "updateTime", title: "更新时间", width: 150},
|
||||
{title: "操作", width: 100, align: "center", fixed: "right", templet: "#operationTpl"}
|
||||
]],
|
||||
done: function (res, curr, count) {
|
||||
|
|
|
|||
|
|
@ -1,104 +1,83 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>添加文章</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<link rel="stylesheet" href="../../css/oksub.css">
|
||||
</head>
|
||||
<body>
|
||||
<div class="ok-body">
|
||||
<!--面包屑导航区域-->
|
||||
<div class="ok-body-breadcrumb">
|
||||
<span class="layui-breadcrumb">
|
||||
<a><cite>首页</cite></a>
|
||||
<a><cite>常用页面</cite></a>
|
||||
<a><cite>用户列表</cite></a>
|
||||
<a><cite>添加文章</cite></a>
|
||||
</span>
|
||||
<a class="layui-btn layui-btn-sm" href="javascript:location.replace(location.href);" title="刷新">
|
||||
<i class="layui-icon layui-icon-refresh"></i>
|
||||
</a>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>添加文章</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<link rel="stylesheet" href="../../css/oksub.css">
|
||||
</head>
|
||||
<body>
|
||||
<div class="ok-body">
|
||||
<!--form表单-->
|
||||
<form class="layui-form layui-form-pane ok-form">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">标题</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="title" placeholder="请输入文章标题" autocomplete="off" class="layui-input" lay-verify="required">
|
||||
</div>
|
||||
</div>
|
||||
<!--form表单-->
|
||||
<form class="layui-form layui-form-pane ok-form">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">标题</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="title" placeholder="请输入文章标题" autocomplete="off" class="layui-input"
|
||||
lay-verify="required">
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">分类</label>
|
||||
<div class="layui-input-block">
|
||||
<select name="classify">
|
||||
<option value="0">公告</option>
|
||||
<option value="1">言情</option>
|
||||
<option value="2">都市</option>
|
||||
<option value="3">修仙</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">分类</label>
|
||||
<div class="layui-input-block">
|
||||
<select name="classify">
|
||||
<option value="0">公告</option>
|
||||
<option value="1">言情</option>
|
||||
<option value="2">都市</option>
|
||||
<option value="3">修仙</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">标签</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="label" placeholder="请输入文章标签" autocomplete="off" class="layui-input" lay-verify="required">
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">标签</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="label" placeholder="请输入文章标签" autocomplete="off" class="layui-input" lay-verify="required">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">状态</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="checkbox" name="status" lay-skin="switch" lay-text="启用|停用" checked value="0">
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">状态</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="checkbox" name="status" lay-skin="switch" lay-text="启用|停用" checked value="0">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">置顶</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="checkbox" name="isTop" lay-skin="switch" lay-text="是|否" value="0">
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">置顶</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="checkbox" name="isTop" lay-skin="switch" lay-text="是|否" value="0">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-form-text">
|
||||
<label class="layui-form-label">内容</label>
|
||||
<div class="layui-input-block">
|
||||
<textarea name="content" placeholder="请输入文章内容" class="layui-textarea" lay-verify="required"></textarea>
|
||||
</div>
|
||||
<div class="layui-form-item layui-form-text">
|
||||
<label class="layui-form-label">内容</label>
|
||||
<div class="layui-input-block">
|
||||
<textarea name="content" placeholder="请输入文章内容" class="layui-textarea" lay-verify="required"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-input-block">
|
||||
<button class="layui-btn" lay-submit lay-filter="addArticle">立即提交</button>
|
||||
<button type="reset" class="layui-btn layui-btn-primary">重置</button>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-input-block">
|
||||
<button class="layui-btn" lay-submit lay-filter="add">立即提交</button>
|
||||
<button type="reset" class="layui-btn layui-btn-primary">重置</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<!--js逻辑-->
|
||||
<script src="../../lib/layui/layui.js"></script>
|
||||
<script>
|
||||
layui.use(['element', 'form', 'jquery', 'laydate'], function () {
|
||||
var element = layui.element;
|
||||
var table = layui.table;
|
||||
var form = layui.form;
|
||||
var $ = layui.jquery;
|
||||
var laydate = layui.laydate;
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<!--js逻辑-->
|
||||
<script src="../../lib/layui/layui.js"></script>
|
||||
<script>
|
||||
layui.use(["form", "okUtils", "okLayer"], function () {
|
||||
let form = layui.form;
|
||||
let okUtils = layui.okUtils;
|
||||
let okLayer = layui.okLayer;
|
||||
|
||||
laydate.render({
|
||||
elem: '#birthday',
|
||||
type: "datetime"
|
||||
});
|
||||
|
||||
form.verify({
|
||||
birthdayVerify: [/^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))(\s(([01]\d{1})|(2[0123])):([0-5]\d):([0-5]\d))?$/, '日期格式不正确']
|
||||
});
|
||||
|
||||
form.on('submit(add)', function (data) {
|
||||
console.log(data.field);
|
||||
layer.msg("添加成功!", {icon: 6, time: 1000, anim: 4}, function () {
|
||||
form.on("submit(addArticle)", function (data) {
|
||||
okUtils.ajax("/article/addArticle", "post", data.field, true).done(function (response) {
|
||||
okLayer.greenTickMsg(response.msg, function () {
|
||||
parent.layer.close(parent.layer.getFrameIndex(window.name));
|
||||
});
|
||||
return false;
|
||||
}).fail(function (error) {
|
||||
console.log(error)
|
||||
});
|
||||
})
|
||||
</script>
|
||||
</body>
|
||||
return false;
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
|||
|
|
@ -1,103 +1,83 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>编辑文章</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<link rel="stylesheet" href="../../css/oksub.css">
|
||||
</head>
|
||||
<body>
|
||||
<div class="ok-body">
|
||||
<!--面包屑导航区域-->
|
||||
<div class="ok-body-breadcrumb">
|
||||
<span class="layui-breadcrumb">
|
||||
<a><cite>首页</cite></a>
|
||||
<a><cite>常用页面</cite></a>
|
||||
<a><cite>用户列表</cite></a>
|
||||
<a><cite>编辑文章</cite></a>
|
||||
</span>
|
||||
<a class="layui-btn layui-btn-sm" href="javascript:location.replace(location.href);" title="刷新">
|
||||
<i class="layui-icon layui-icon-refresh"></i>
|
||||
</a>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>编辑文章</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<link rel="stylesheet" href="../../css/oksub.css">
|
||||
</head>
|
||||
<body>
|
||||
<div class="ok-body">
|
||||
<!--form表单-->
|
||||
<form class="layui-form ok-form">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">标题</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="title" placeholder="请输入文章标题" autocomplete="off" class="layui-input" lay-verify="required">
|
||||
</div>
|
||||
</div>
|
||||
<!--form表单-->
|
||||
<form class="layui-form ok-form">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">标题</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="title" placeholder="请输入文章标题" autocomplete="off" class="layui-input" lay-verify="required">
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">分类</label>
|
||||
<div class="layui-input-block">
|
||||
<select name="classify">
|
||||
<option value="0">公告</option>
|
||||
<option value="1">言情</option>
|
||||
<option value="2">都市</option>
|
||||
<option value="3">修仙</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">分类</label>
|
||||
<div class="layui-input-block">
|
||||
<select name="classify">
|
||||
<option value="0">公告</option>
|
||||
<option value="1">言情</option>
|
||||
<option value="2">都市</option>
|
||||
<option value="3">修仙</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">标签</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="label" placeholder="请输入文章标签" autocomplete="off" class="layui-input" lay-verify="required">
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">标签</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="label" placeholder="请输入文章标签" autocomplete="off" class="layui-input" lay-verify="required">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">状态</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="checkbox" name="status" lay-skin="switch" lay-text="启用|停用" checked value="0">
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">状态</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="checkbox" name="status" lay-skin="switch" lay-text="启用|停用" checked value="0">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">置顶</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="checkbox" name="isTop" lay-skin="switch" lay-text="是|否" value="0">
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">置顶</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="checkbox" name="isTop" lay-skin="switch" lay-text="是|否" value="0">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-form-text">
|
||||
<label class="layui-form-label">内容</label>
|
||||
<div class="layui-input-block">
|
||||
<textarea name="content" placeholder="请输入文章内容" class="layui-textarea" lay-verify="required"></textarea>
|
||||
</div>
|
||||
<div class="layui-form-item layui-form-text">
|
||||
<label class="layui-form-label">内容</label>
|
||||
<div class="layui-input-block">
|
||||
<textarea name="content" placeholder="请输入文章内容" class="layui-textarea" lay-verify="required"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-input-block">
|
||||
<button class="layui-btn" lay-submit lay-filter="updateArticle">立即提交</button>
|
||||
<button type="reset" class="layui-btn layui-btn-primary">重置</button>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-input-block">
|
||||
<button class="layui-btn" lay-submit lay-filter="edit">立即提交</button>
|
||||
<button type="reset" class="layui-btn layui-btn-primary">重置</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<!--js逻辑-->
|
||||
<script src="../../lib/layui/layui.js"></script>
|
||||
<script>
|
||||
layui.use(['element', 'form', 'jquery', 'laydate'], function () {
|
||||
var element = layui.element;
|
||||
var table = layui.table;
|
||||
var form = layui.form;
|
||||
var $ = layui.jquery;
|
||||
var laydate = layui.laydate;
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<!--js逻辑-->
|
||||
<script src="../../lib/layui/layui.js"></script>
|
||||
<script>
|
||||
layui.use(["form", "okUtils", "okLayer"], function () {
|
||||
let form = layui.form;
|
||||
let okUtils = layui.okUtils;
|
||||
let okLayer = layui.okLayer;
|
||||
|
||||
laydate.render({
|
||||
elem: '#birthday',
|
||||
type: "datetime"
|
||||
});
|
||||
|
||||
form.verify({
|
||||
birthdayVerify: [/^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))(\s(([01]\d{1})|(2[0123])):([0-5]\d):([0-5]\d))?$/, '日期格式不正确']
|
||||
});
|
||||
|
||||
form.on('submit(edit)', function (data) {
|
||||
console.log(data.field);
|
||||
layer.msg("编辑成功!", {icon: 6, time: 1000, anim: 4}, function () {
|
||||
form.on("submit(updateArticle)", function (data) {
|
||||
okUtils.ajax("/article/updateArticle", "put", data.field, true).done(function (response) {
|
||||
okLayer.greenTickMsg(response.msg, function () {
|
||||
parent.layer.close(parent.layer.getFrameIndex(window.name));
|
||||
});
|
||||
return false;
|
||||
}).fail(function (error) {
|
||||
console.log(error)
|
||||
});
|
||||
})
|
||||
</script>
|
||||
</body>
|
||||
return false;
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
|||
|
|
@ -1,222 +1,213 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>文章列表</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<link rel="stylesheet" href="../../css/oksub.css">
|
||||
</head>
|
||||
<body>
|
||||
<div class="ok-body">
|
||||
<!--面包屑导航区域-->
|
||||
<div class="ok-body-breadcrumb">
|
||||
<span class="layui-breadcrumb">
|
||||
<a><cite>首页</cite></a>
|
||||
<a><cite>常用页面</cite></a>
|
||||
<a><cite>文章列表</cite></a>
|
||||
</span>
|
||||
<a class="layui-btn layui-btn-sm" href="javascript:location.replace(location.href);" title="刷新">
|
||||
<i class="layui-icon layui-icon-refresh"></i>
|
||||
</a>
|
||||
</div>
|
||||
<!--模糊搜索区域-->
|
||||
<div class="layui-row">
|
||||
<form class="layui-form layui-col-md12 ok-search">
|
||||
<input class="layui-input" placeholder="开始日期" autocomplete="off" id="startTime" name="startTime">
|
||||
<input class="layui-input" placeholder="截止日期" autocomplete="off" id="endTime" name="endTime">
|
||||
<input class="layui-input" placeholder="请输入标题" autocomplete="off" name="title">
|
||||
<button class="layui-btn" lay-submit="" lay-filter="search">
|
||||
<i class="layui-icon layui-icon-search"></i>
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
<!--数据表格-->
|
||||
<table class="layui-hide" id="tableId" lay-filter="tableFilter"></table>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>文章列表</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<link rel="stylesheet" href="../../css/oksub.css">
|
||||
</head>
|
||||
<body>
|
||||
<div class="ok-body">
|
||||
<!--模糊搜索区域-->
|
||||
<div class="layui-row">
|
||||
<form class="layui-form layui-col-md12 ok-search">
|
||||
<input class="layui-input" placeholder="开始日期" autocomplete="off" id="startTime" name="startTime">
|
||||
<input class="layui-input" placeholder="截止日期" autocomplete="off" id="endTime" name="endTime">
|
||||
<input class="layui-input" placeholder="请输入标题" autocomplete="off" name="title">
|
||||
<button class="layui-btn" lay-submit="" lay-filter="search">
|
||||
<i class="layui-icon layui-icon-search"></i>
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
<!--js逻辑-->
|
||||
<script src="../../lib/layui/layui.js"></script>
|
||||
<script>
|
||||
layui.use(["element", "table", "form", "laydate", "okLayer", "okUtils", "okMock"], function () {
|
||||
var table = layui.table;
|
||||
var form = layui.form;
|
||||
var util = layui.util;
|
||||
var laydate = layui.laydate;
|
||||
var okLayer = layui.okLayer;
|
||||
var okUtils = layui.okUtils;
|
||||
var okMock = layui.okMock;
|
||||
<!--数据表格-->
|
||||
<table class="layui-hide" id="tableId" lay-filter="tableFilter"></table>
|
||||
</div>
|
||||
<!--js逻辑-->
|
||||
<script src="../../lib/layui/layui.js"></script>
|
||||
<script>
|
||||
layui.use(["element", "table", "form", "laydate", "okLayer", "okUtils", "okMock"], function () {
|
||||
let table = layui.table;
|
||||
let form = layui.form;
|
||||
let util = layui.util;
|
||||
let laydate = layui.laydate;
|
||||
let okLayer = layui.okLayer;
|
||||
let okUtils = layui.okUtils;
|
||||
let okMock = layui.okMock;
|
||||
|
||||
util.fixbar({});
|
||||
util.fixbar({});
|
||||
|
||||
laydate.render({elem: "#startTime", type: "datetime"});
|
||||
laydate.render({elem: "#endTime", type: "datetime"});
|
||||
laydate.render({elem: "#startTime", type: "datetime"});
|
||||
laydate.render({elem: "#endTime", type: "datetime"});
|
||||
|
||||
var articleTable = table.render({
|
||||
elem: "#tableId",
|
||||
url: okMock.api.article.list,
|
||||
limit: 20,
|
||||
page: true,
|
||||
even: true,
|
||||
toolbar: "#toolbarTpl",
|
||||
size: "sm",
|
||||
cols: [[
|
||||
{type: "checkbox", fixed: "left"},
|
||||
{field: "id", title: "ID", width: 170, sort: true},
|
||||
{field: "title", title: "标题", width: 350},
|
||||
{field: "url", title: "链接", width: 250, templet: "#urlTpl"},
|
||||
{field: "publisher", title: "发布者", width: 100},
|
||||
{field: "readSize", title: "阅读量", width: 80},
|
||||
{field: "isTop", title: "是否置顶", width: 100, align: "center", templet: "#topTpl"},
|
||||
{field: "status", title: "发布状态", width: 110, align: "center", templet: "#statusTpl"},
|
||||
{title: "操作", width: 100, align: "center", fixed: "right", templet: "#operationTpl"}
|
||||
]],
|
||||
done: function (res, curr, count) {
|
||||
console.log(res, curr, count)
|
||||
}
|
||||
let articleTable = table.render({
|
||||
elem: "#tableId",
|
||||
url: okMock.api.listArticle,
|
||||
limit: 20,
|
||||
page: true,
|
||||
even: true,
|
||||
toolbar: "#toolbarTpl",
|
||||
size: "sm",
|
||||
cols: [[
|
||||
{type: "checkbox", fixed: "left"},
|
||||
{field: "id", title: "ID", width: 170, sort: true},
|
||||
{field: "title", title: "标题", width: 150},
|
||||
{field: "url", title: "链接", width: 250, templet: "#urlTpl"},
|
||||
{field: "publisher", title: "发布者", width: 100},
|
||||
{field: "readSize", title: "阅读量", width: 80},
|
||||
{field: "isTop", title: "是否置顶", width: 100, align: "center", templet: "#topTpl"},
|
||||
{field: "status", title: "发布状态", width: 110, align: "center", templet: "#statusTpl"},
|
||||
{field: "createTime", title: "创建时间", width: 150},
|
||||
{field: "updateTime", title: "更新时间", width: 150},
|
||||
{title: "操作", width: 100, align: "center", fixed: "right", templet: "#operationTpl"}
|
||||
]],
|
||||
done: function (res, curr, count) {
|
||||
console.log(res, curr, count)
|
||||
}
|
||||
});
|
||||
|
||||
form.on("submit(search)", function (data) {
|
||||
articleTable.reload({
|
||||
where: data.field,
|
||||
page: {curr: 1}
|
||||
});
|
||||
return false;
|
||||
});
|
||||
|
||||
form.on("submit(search)", function () {
|
||||
articleTable.reload({
|
||||
where: data.field,
|
||||
page: {curr: 1}
|
||||
});
|
||||
return false;
|
||||
});
|
||||
|
||||
table.on("toolbar(tableFilter)", function (obj) {
|
||||
switch (obj.event) {
|
||||
case "batchEnabled":
|
||||
batchEnabled();
|
||||
break;
|
||||
case "batchDisabled":
|
||||
batchDisabled();
|
||||
break;
|
||||
case "batchDel":
|
||||
batchDel();
|
||||
break;
|
||||
case "add":
|
||||
add();
|
||||
break;
|
||||
}
|
||||
});
|
||||
|
||||
table.on("tool(tableFilter)", function (obj) {
|
||||
var data = obj.data;
|
||||
switch (obj.event) {
|
||||
case "edit":
|
||||
edit(data.id);
|
||||
break;
|
||||
case "del":
|
||||
del(data.id);
|
||||
break;
|
||||
}
|
||||
});
|
||||
|
||||
function batchEnabled() {
|
||||
okLayer.confirm("确定要批量上架吗?", function (index) {
|
||||
layer.close(index);
|
||||
var idsStr = okUtils.table.batchCheck(table);
|
||||
if (idsStr) {
|
||||
okUtils.ajax("/article/batchNormal", "post", {idsStr: idsStr}).done(function (response) {
|
||||
console.log(response);
|
||||
okUtils.table.successMsg("批量上架成功");
|
||||
}).fail(function (error) {
|
||||
console.log(error)
|
||||
});
|
||||
}
|
||||
});
|
||||
table.on("toolbar(tableFilter)", function (obj) {
|
||||
switch (obj.event) {
|
||||
case "batchEnabled":
|
||||
batchEnabled();
|
||||
break;
|
||||
case "batchDisabled":
|
||||
batchDisabled();
|
||||
break;
|
||||
case "batchDel":
|
||||
batchDel();
|
||||
break;
|
||||
case "add":
|
||||
add();
|
||||
break;
|
||||
}
|
||||
});
|
||||
|
||||
function batchDisabled() {
|
||||
okLayer.confirm("确定要批量下架吗?", function (index) {
|
||||
layer.close(index);
|
||||
var idsStr = okUtils.table.batchCheck(table);
|
||||
if (idsStr) {
|
||||
okUtils.ajax("/article/batchStop", "post", {idsStr: idsStr}).done(function (response) {
|
||||
console.log(response);
|
||||
okUtils.table.successMsg("批量下架成功");
|
||||
}).fail(function (error) {
|
||||
console.log(error)
|
||||
});
|
||||
}
|
||||
});
|
||||
table.on("tool(tableFilter)", function (obj) {
|
||||
let data = obj.data;
|
||||
switch (obj.event) {
|
||||
case "edit":
|
||||
edit(data.id);
|
||||
break;
|
||||
case "del":
|
||||
del(data.id);
|
||||
break;
|
||||
}
|
||||
});
|
||||
|
||||
function batchDel() {
|
||||
okLayer.confirm("确定要批量删除吗?", function (index) {
|
||||
layer.close(index);
|
||||
var idsStr = okUtils.table.batchCheck(table);
|
||||
if (idsStr) {
|
||||
okUtils.ajax("/article/batchDel", "post", {idsStr: idsStr}).done(function (response) {
|
||||
console.log(response);
|
||||
okUtils.table.successMsg("批量删除成功");
|
||||
}).fail(function (error) {
|
||||
console.log(error)
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function add() {
|
||||
okLayer.open("添加文章", "article-add.html", "90%", "90%", null, function () {
|
||||
articleTable.reload();
|
||||
})
|
||||
}
|
||||
|
||||
function edit(id) {
|
||||
okLayer.open("编辑文章", "article-edit.html?id=" + id, "90%", "90%", null, function () {
|
||||
articleTable.reload();
|
||||
})
|
||||
}
|
||||
|
||||
function del(id) {
|
||||
okLayer.confirm("确定要删除吗?", function () {
|
||||
okUtils.ajax("/article/batchDel", "post", {idsStr: id}).done(function (response) {
|
||||
function batchEnabled() {
|
||||
okLayer.confirm("确定要批量上架吗?", function (index) {
|
||||
layer.close(index);
|
||||
let idsStr = okUtils.tableBatchCheck(table);
|
||||
if (idsStr) {
|
||||
okUtils.ajax("/article/batchNormal", "put", {idsStr: idsStr}, true).done(function (response) {
|
||||
console.log(response);
|
||||
okUtils.table.successMsg("删除成功");
|
||||
okUtils.tableSuccessMsg(response.msg);
|
||||
}).fail(function (error) {
|
||||
console.log(error)
|
||||
});
|
||||
})
|
||||
}
|
||||
})
|
||||
</script>
|
||||
<!-- 头工具栏模板 -->
|
||||
<script type="text/html" id="toolbarTpl">
|
||||
<div class="layui-btn-container">
|
||||
<button class="layui-btn layui-btn-sm layui-btn-normal" lay-event="batchEnabled">批量上架</button>
|
||||
<button class="layui-btn layui-btn-sm layui-btn-warm" lay-event="batchDisabled">批量下架</button>
|
||||
<button class="layui-btn layui-btn-sm layui-btn-danger" lay-event="batchDel">批量删除</button>
|
||||
<button class="layui-btn layui-btn-sm" lay-event="add">添加文章</button>
|
||||
</div>
|
||||
</script>
|
||||
<!-- 链接模板 -->
|
||||
<script type="text/html" id="urlTpl">
|
||||
<a href="{{d.url}}" target="_blank">{{d.url}}</a>
|
||||
</script>
|
||||
<!-- 是否指顶模板
|
||||
<input type="checkbox" name="isTop" value="{{d.isTop}}" lay-skin="switch" lay-text="是|否" {{ d.isTop== true ? 'checked' : ''}}>
|
||||
-->
|
||||
<script type="text/html" id="topTpl">
|
||||
{{# if(d.isTop == true){ }}
|
||||
<span class="layui-btn layui-btn-normal layui-btn-xs">已置顶</span>
|
||||
{{# } else if(d.isTop == false) { }}
|
||||
<span class="layui-btn layui-btn-warm layui-btn-xs">未置顶</span>
|
||||
{{# } }}
|
||||
</script>
|
||||
<!-- 发布状态模板
|
||||
<input type="checkbox" name="top" value="{{d.status}}" lay-skin="switch" lay-text="已发布|未发布" {{ d.status== true ? 'checked' : ''}}>
|
||||
-->
|
||||
<script type="text/html" id="statusTpl">
|
||||
{{# if(d.status == true){ }}
|
||||
<span class="layui-btn layui-btn-normal layui-btn-xs">已发布</span>
|
||||
{{# } else if(d.status == false) { }}
|
||||
<span class="layui-btn layui-btn-warm layui-btn-xs">未发布</span>
|
||||
{{# } }}
|
||||
</script>
|
||||
<!-- 行工具栏模板 -->
|
||||
<script type="text/html" id="operationTpl">
|
||||
<a href="javascript:" title="编辑" lay-event="edit"><i class="layui-icon"></i></a>
|
||||
<a href="javascript:" title="删除" lay-event="del"><i class="layui-icon"></i></a>
|
||||
</script>
|
||||
</body>
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function batchDisabled() {
|
||||
okLayer.confirm("确定要批量下架吗?", function (index) {
|
||||
layer.close(index);
|
||||
var idsStr = okUtils.tableBatchCheck(table);
|
||||
if (idsStr) {
|
||||
okUtils.ajax("/article/batchStop", "put", {idsStr: idsStr}, true).done(function (response) {
|
||||
console.log(response);
|
||||
okUtils.tableSuccessMsg(response.msg);
|
||||
}).fail(function (error) {
|
||||
console.log(error)
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function batchDel() {
|
||||
okLayer.confirm("确定要批量删除吗?", function (index) {
|
||||
layer.close(index);
|
||||
var idsStr = okUtils.tableBatchCheck(table);
|
||||
if (idsStr) {
|
||||
okUtils.ajax("/article/batchDel", "put", {idsStr: idsStr}, true).done(function (response) {
|
||||
console.log(response);
|
||||
okUtils.tableSuccessMsg(response.msg);
|
||||
}).fail(function (error) {
|
||||
console.log(error)
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function add() {
|
||||
okLayer.open("添加文章", "article-add.html", "90%", "90%", null, function () {
|
||||
articleTable.reload();
|
||||
})
|
||||
}
|
||||
|
||||
function edit(id) {
|
||||
okLayer.open("编辑文章", "article-edit.html?id=" + id, "90%", "90%", null, function () {
|
||||
articleTable.reload();
|
||||
})
|
||||
}
|
||||
|
||||
function del(id) {
|
||||
okLayer.confirm("确定要删除吗?", function () {
|
||||
okUtils.ajax("/article/batchDel", "delete", {idsStr: id}, true).done(function (response) {
|
||||
console.log(response);
|
||||
okUtils.tableSuccessMsg(response.msg);
|
||||
}).fail(function (error) {
|
||||
console.log(error)
|
||||
});
|
||||
})
|
||||
}
|
||||
})
|
||||
</script>
|
||||
<!-- 头工具栏模板 -->
|
||||
<script type="text/html" id="toolbarTpl">
|
||||
<div class="layui-btn-container">
|
||||
<button class="layui-btn layui-btn-sm layui-btn-normal" lay-event="batchEnabled">批量上架</button>
|
||||
<button class="layui-btn layui-btn-sm layui-btn-warm" lay-event="batchDisabled">批量下架</button>
|
||||
<button class="layui-btn layui-btn-sm layui-btn-danger" lay-event="batchDel">批量删除</button>
|
||||
<button class="layui-btn layui-btn-sm" lay-event="add">添加文章</button>
|
||||
</div>
|
||||
</script>
|
||||
<!-- 链接模板 -->
|
||||
<script type="text/html" id="urlTpl">
|
||||
<a href="{{d.url}}" target="_blank">{{d.url}}</a>
|
||||
</script>
|
||||
<!-- 是否指顶模板
|
||||
<input type="checkbox" name="isTop" value="{{d.isTop}}" lay-skin="switch" lay-text="是|否" {{ d.isTop== true ? 'checked' : ''}}>
|
||||
-->
|
||||
<script type="text/html" id="topTpl">
|
||||
{{# if(d.isTop == true){ }}
|
||||
<span class="layui-btn layui-btn-normal layui-btn-xs">已置顶</span>
|
||||
{{# } else if(d.isTop == false) { }}
|
||||
<span class="layui-btn layui-btn-warm layui-btn-xs">未置顶</span>
|
||||
{{# } }}
|
||||
</script>
|
||||
<!-- 发布状态模板
|
||||
<input type="checkbox" name="top" value="{{d.status}}" lay-skin="switch" lay-text="已发布|未发布" {{ d.status== true ? 'checked' : ''}}>
|
||||
-->
|
||||
<script type="text/html" id="statusTpl">
|
||||
{{# if(d.status == true){ }}
|
||||
<span class="layui-btn layui-btn-normal layui-btn-xs">已发布</span>
|
||||
{{# } else if(d.status == false) { }}
|
||||
<span class="layui-btn layui-btn-warm layui-btn-xs">未发布</span>
|
||||
{{# } }}
|
||||
</script>
|
||||
<!-- 行工具栏模板 -->
|
||||
<script type="text/html" id="operationTpl">
|
||||
<a href="javascript:" title="编辑" lay-event="edit"><i class="layui-icon"></i></a>
|
||||
<a href="javascript:" title="删除" lay-event="del"><i class="layui-icon"></i></a>
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
|||
|
|
@ -1,210 +1,196 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>帖子列表</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<link rel="stylesheet" href="../../css/oksub.css">
|
||||
</head>
|
||||
<body>
|
||||
<div class="ok-body">
|
||||
<!--面包屑导航区域-->
|
||||
<div class="ok-body-breadcrumb">
|
||||
<span class="layui-breadcrumb">
|
||||
<a><cite>首页</cite></a>
|
||||
<a><cite>常用页面</cite></a>
|
||||
<a><cite>帖子列表</cite></a>
|
||||
</span>
|
||||
<a class="layui-btn layui-btn-sm" href="javascript:location.replace(location.href);" title="刷新">
|
||||
<i class="layui-icon layui-icon-refresh"></i>
|
||||
</a>
|
||||
</div>
|
||||
<!--模糊搜索区域-->
|
||||
<div class="layui-row">
|
||||
<form class="layui-form layui-col-md12 ok-search">
|
||||
<input class="layui-input" placeholder="开始日期" autocomplete="off" id="startTime" name="startTime">
|
||||
<input class="layui-input" placeholder="截止日期" autocomplete="off" id="endTime" name="endTime">
|
||||
<input class="layui-input" placeholder="请输入标题" autocomplete="off" name="title">
|
||||
<button class="layui-btn" lay-submit="" lay-filter="search">
|
||||
<i class="layui-icon layui-icon-search"></i>
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
<!--数据表格-->
|
||||
<table class="layui-hide" id="tableId" lay-filter="tableFilter"></table>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>帖子列表</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<link rel="stylesheet" href="../../css/oksub.css">
|
||||
</head>
|
||||
<body>
|
||||
<div class="ok-body">
|
||||
<!--模糊搜索区域-->
|
||||
<div class="layui-row">
|
||||
<form class="layui-form layui-col-md12 ok-search">
|
||||
<input class="layui-input" placeholder="开始日期" autocomplete="off" id="startTime" name="startTime">
|
||||
<input class="layui-input" placeholder="截止日期" autocomplete="off" id="endTime" name="endTime">
|
||||
<input class="layui-input" placeholder="请输入标题" autocomplete="off" name="title">
|
||||
<button class="layui-btn" lay-submit="" lay-filter="search">
|
||||
<i class="layui-icon layui-icon-search"></i>
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
<!--js逻辑-->
|
||||
<script src="../../lib/layui/layui.js"></script>
|
||||
<script>
|
||||
layui.use(["element", "table", "form", "laydate", "okLayer", "okUtils", "okMock"], function () {
|
||||
var element = layui.element;
|
||||
var table = layui.table;
|
||||
var form = layui.form;
|
||||
var util = layui.util;
|
||||
var laydate = layui.laydate;
|
||||
var okLayer = layui.okLayer;
|
||||
var okUtils = layui.okUtils;
|
||||
var okMock = layui.okMock;
|
||||
<!--数据表格-->
|
||||
<table class="layui-hide" id="tableId" lay-filter="tableFilter"></table>
|
||||
</div>
|
||||
<!--js逻辑-->
|
||||
<script src="../../lib/layui/layui.js"></script>
|
||||
<script>
|
||||
layui.use(["element", "table", "form", "laydate", "okLayer", "okUtils", "okMock"], function () {
|
||||
let element = layui.element;
|
||||
let table = layui.table;
|
||||
let form = layui.form;
|
||||
let util = layui.util;
|
||||
let laydate = layui.laydate;
|
||||
let okLayer = layui.okLayer;
|
||||
let okUtils = layui.okUtils;
|
||||
let okMock = layui.okMock;
|
||||
|
||||
util.fixbar({});
|
||||
util.fixbar({});
|
||||
|
||||
laydate.render({elem: "#startTime", type: "datetime"});
|
||||
laydate.render({elem: "#endTime", type: "datetime"});
|
||||
laydate.render({elem: "#startTime", type: "datetime"});
|
||||
laydate.render({elem: "#endTime", type: "datetime"});
|
||||
|
||||
var articleTable = table.render({
|
||||
elem: "#tableId",
|
||||
url: okMock.api.bbs.list,
|
||||
limit: 20,
|
||||
page: true,
|
||||
even: true,
|
||||
toolbar: "#toolbarTpl",
|
||||
size: "sm",
|
||||
cols: [[
|
||||
{type: "checkbox", fixed: "left"},
|
||||
{field: "id", title: "ID", width: 170, sort: true},
|
||||
{field: "username", title: "发帖人", width: 100},
|
||||
{field: "title", title: "标题", width: 250},
|
||||
{field: "summary", title: "摘要", width: 300},
|
||||
{field: "content", title: "内容", width: 350},
|
||||
{field: "createTime", title: "发帖时间", width: 150},
|
||||
{field: "status", title: "状态", width: 110, align: "center", templet: "#statusTpl"},
|
||||
{title: "操作", width: 100, align: "center", fixed: "right", templet: "#operationTpl"}
|
||||
]],
|
||||
done: function (res, curr, count) {
|
||||
console.log(res, curr, count);
|
||||
element.init();
|
||||
}
|
||||
let articleTable = table.render({
|
||||
elem: "#tableId",
|
||||
url: okMock.api.listBbs,
|
||||
limit: 20,
|
||||
page: true,
|
||||
even: true,
|
||||
toolbar: "#toolbarTpl",
|
||||
size: "sm",
|
||||
cols: [[
|
||||
{type: "checkbox", fixed: "left"},
|
||||
{field: "id", title: "ID", width: 170, sort: true},
|
||||
{field: "poster", title: "发帖人", width: 100},
|
||||
{field: "title", title: "标题", width: 150},
|
||||
{field: "summary", title: "摘要", width: 250},
|
||||
{field: "content", title: "内容", width: 350},
|
||||
{field: "status", title: "状态", width: 110, align: "center", templet: "#statusTpl"},
|
||||
{field: "createTime", title: "发帖时间", width: 150},
|
||||
{field: "updateTime", title: "更新时间", width: 150},
|
||||
{title: "操作", width: 100, align: "center", fixed: "right", templet: "#operationTpl"}
|
||||
]],
|
||||
done: function (res, curr, count) {
|
||||
console.log(res, curr, count);
|
||||
element.init();
|
||||
}
|
||||
});
|
||||
|
||||
form.on("submit(search)", function (data) {
|
||||
articleTable.reload({
|
||||
where: data.field,
|
||||
page: {curr: 1}
|
||||
});
|
||||
return false;
|
||||
});
|
||||
|
||||
form.on("submit(search)", function () {
|
||||
articleTable.reload({
|
||||
where: data.field,
|
||||
page: {curr: 1}
|
||||
});
|
||||
return false;
|
||||
});
|
||||
|
||||
table.on("toolbar(tableFilter)", function (obj) {
|
||||
switch (obj.event) {
|
||||
case "batchEnabled":
|
||||
batchEnabled();
|
||||
break;
|
||||
case "batchDisabled":
|
||||
batchDisabled();
|
||||
break;
|
||||
case "batchDel":
|
||||
batchDel();
|
||||
break;
|
||||
case "add":
|
||||
add();
|
||||
break;
|
||||
}
|
||||
});
|
||||
|
||||
table.on("tool(tableFilter)", function (obj) {
|
||||
var data = obj.data;
|
||||
switch (obj.event) {
|
||||
case "edit":
|
||||
edit(data.id);
|
||||
break;
|
||||
case "del":
|
||||
del(data.id);
|
||||
break;
|
||||
}
|
||||
});
|
||||
|
||||
function batchEnabled() {
|
||||
okLayer.confirm("确定要批量上架吗?", function (index) {
|
||||
layer.close(index);
|
||||
var idsStr = okUtils.table.batchCheck(table);
|
||||
if (idsStr) {
|
||||
okUtils.ajax("/article/batchNormal", "post", {idsStr: idsStr}).done(function (response) {
|
||||
console.log(response);
|
||||
okUtils.table.successMsg("批量上架成功");
|
||||
}).fail(function (error) {
|
||||
console.log(error)
|
||||
});
|
||||
}
|
||||
});
|
||||
table.on("toolbar(tableFilter)", function (obj) {
|
||||
switch (obj.event) {
|
||||
case "batchEnabled":
|
||||
batchEnabled();
|
||||
break;
|
||||
case "batchDisabled":
|
||||
batchDisabled();
|
||||
break;
|
||||
case "batchDel":
|
||||
batchDel();
|
||||
break;
|
||||
case "add":
|
||||
add();
|
||||
break;
|
||||
}
|
||||
});
|
||||
|
||||
function batchDisabled() {
|
||||
okLayer.confirm("确定要批量下架吗?", function (index) {
|
||||
layer.close(index);
|
||||
var idsStr = okUtils.table.batchCheck(table);
|
||||
if (idsStr) {
|
||||
okUtils.ajax("/article/batchStop", "post", {idsStr: idsStr}).done(function (response) {
|
||||
console.log(response);
|
||||
okUtils.table.successMsg("批量下架成功");
|
||||
}).fail(function (error) {
|
||||
console.log(error)
|
||||
});
|
||||
}
|
||||
});
|
||||
table.on("tool(tableFilter)", function (obj) {
|
||||
let data = obj.data;
|
||||
switch (obj.event) {
|
||||
case "edit":
|
||||
edit(data.id);
|
||||
break;
|
||||
case "del":
|
||||
del(data.id);
|
||||
break;
|
||||
}
|
||||
});
|
||||
|
||||
function batchDel() {
|
||||
okLayer.confirm("确定要批量删除吗?", function (index) {
|
||||
layer.close(index);
|
||||
var idsStr = okUtils.table.batchCheck(table);
|
||||
if (idsStr) {
|
||||
okUtils.ajax("/article/batchDel", "post", {idsStr: idsStr}).done(function (response) {
|
||||
console.log(response);
|
||||
okUtils.table.successMsg("批量删除成功");
|
||||
}).fail(function (error) {
|
||||
console.log(error)
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function add() {
|
||||
okLayer.open("添加文章", "article-add.html", "90%", "90%", null, function () {
|
||||
articleTable.reload();
|
||||
})
|
||||
}
|
||||
|
||||
function edit(id) {
|
||||
okLayer.open("编辑文章", "article-edit.html?id=" + id, "90%", "90%", null, function () {
|
||||
articleTable.reload();
|
||||
})
|
||||
}
|
||||
|
||||
function del(id) {
|
||||
okLayer.confirm("确定要删除吗?", function () {
|
||||
okUtils.ajax("/article/batchDel", "post", {idsStr: id}).done(function (response) {
|
||||
console.log(response);
|
||||
okUtils.table.successMsg("删除成功");
|
||||
function batchEnabled() {
|
||||
okLayer.confirm("确定要批量上架吗?", function (index) {
|
||||
layer.close(index);
|
||||
let idsStr = okUtils.tableBatchCheck(table);
|
||||
if (idsStr) {
|
||||
okUtils.ajax("/bbs/update-bbs-status", "put", {idsStr: idsStr}, true).done(function (response) {
|
||||
okUtils.tableSuccessMsg(response.msg);
|
||||
}).fail(function (error) {
|
||||
console.log(error)
|
||||
});
|
||||
})
|
||||
}
|
||||
})
|
||||
</script>
|
||||
<!-- 头工具栏模板 -->
|
||||
<script type="text/html" id="toolbarTpl">
|
||||
<div class="layui-btn-container">
|
||||
<button class="layui-btn layui-btn-sm layui-btn-normal" lay-event="batchEnabled">批量上架</button>
|
||||
<button class="layui-btn layui-btn-sm layui-btn-warm" lay-event="batchDisabled">批量下架</button>
|
||||
<button class="layui-btn layui-btn-sm layui-btn-danger" lay-event="batchDel">批量删除</button>
|
||||
<button class="layui-btn layui-btn-sm" lay-event="add">添加文章</button>
|
||||
</div>
|
||||
</script>
|
||||
<!-- 行工具栏模板 -->
|
||||
<script type="text/html" id="operationTpl">
|
||||
<a href="javascript:" title="编辑" lay-event="edit"><i class="layui-icon"></i></a>
|
||||
<a href="javascript:" title="删除" lay-event="del"><i class="layui-icon"></i></a>
|
||||
</script>
|
||||
|
||||
<script type="text/html" id="statusTpl">
|
||||
{{# if(d.status == 0){ }}
|
||||
<span class="layui-btn layui-btn-normal layui-btn-xs">已置顶</span>
|
||||
{{# } else if(d.status == 1) { }}
|
||||
<span class="layui-btn layui-btn-warm layui-btn-xs">已加密</span>
|
||||
{{# } else if(d.status == 2) { }}
|
||||
<span class="layui-btn layui-btn-danger layui-btn-xs">已删除</span>
|
||||
{{# } }}
|
||||
</script>
|
||||
</body>
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function batchDisabled() {
|
||||
okLayer.confirm("确定要批量下架吗?", function (index) {
|
||||
layer.close(index);
|
||||
let idsStr = okUtils.tableBatchCheck(table);
|
||||
if (idsStr) {
|
||||
okUtils.ajax("/bbs/update-bbs-status", "put", {idsStr: idsStr}, true).done(function (response) {
|
||||
okUtils.tableSuccessMsg(response.msg);
|
||||
}).fail(function (error) {
|
||||
console.log(error)
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function batchDel() {
|
||||
okLayer.confirm("确定要批量删除吗?", function (index) {
|
||||
layer.close(index);
|
||||
let idsStr = okUtils.tableBatchCheck(table);
|
||||
if (idsStr) {
|
||||
okUtils.ajax("/bbs/deleteBbs", "delete", {idsStr: idsStr}, true).done(function (response) {
|
||||
okUtils.tableSuccessMsg(response.msg);
|
||||
}).fail(function (error) {
|
||||
console.log(error);
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function add() {
|
||||
okLayer.open("添加帖子", "bbs-add.html", "90%", "90%", null, function () {
|
||||
articleTable.reload();
|
||||
})
|
||||
}
|
||||
|
||||
function edit(id) {
|
||||
okLayer.open("编辑帖子", "bbs-edit.html?id=" + id, "90%", "90%", null, function () {
|
||||
articleTable.reload();
|
||||
})
|
||||
}
|
||||
|
||||
function del(id) {
|
||||
okLayer.confirm("确定要删除吗?", function () {
|
||||
okUtils.ajax("/bbs/deleteBbs", "delete", {idsStr: id}, true).done(function (response) {
|
||||
okUtils.tableSuccessMsg(response.msg);
|
||||
}).fail(function (error) {
|
||||
console.log(error);
|
||||
});
|
||||
})
|
||||
}
|
||||
})
|
||||
</script>
|
||||
<!-- 头工具栏模板 -->
|
||||
<script type="text/html" id="toolbarTpl">
|
||||
<div class="layui-btn-container">
|
||||
<button class="layui-btn layui-btn-sm layui-btn-normal" lay-event="batchEnabled">批量上架</button>
|
||||
<button class="layui-btn layui-btn-sm layui-btn-warm" lay-event="batchDisabled">批量下架</button>
|
||||
<button class="layui-btn layui-btn-sm layui-btn-danger" lay-event="batchDel">批量删除</button>
|
||||
<button class="layui-btn layui-btn-sm" lay-event="add">添加帖子</button>
|
||||
</div>
|
||||
</script>
|
||||
<!-- 行工具栏模板 -->
|
||||
<script type="text/html" id="operationTpl">
|
||||
<a href="javascript:" title="编辑" lay-event="edit"><i class="layui-icon"></i></a>
|
||||
<a href="javascript:" title="删除" lay-event="del"><i class="layui-icon"></i></a>
|
||||
</script>
|
||||
|
||||
<script type="text/html" id="statusTpl">
|
||||
{{# if(d.status == 0){ }}
|
||||
<span class="layui-btn layui-btn-normal layui-btn-xs">已置顶</span>
|
||||
{{# } else if(d.status == 1) { }}
|
||||
<span class="layui-btn layui-btn-warm layui-btn-xs">已加密</span>
|
||||
{{# } else if(d.status == 2) { }}
|
||||
<span class="layui-btn layui-btn-danger layui-btn-xs">已删除</span>
|
||||
{{# } }}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
|||
|
|
@ -1,210 +1,148 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>留言列表</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<link rel="stylesheet" href="../../css/oksub.css">
|
||||
</head>
|
||||
<body>
|
||||
<div class="ok-body">
|
||||
<!--面包屑导航区域-->
|
||||
<div class="ok-body-breadcrumb">
|
||||
<span class="layui-breadcrumb">
|
||||
<a><cite>首页</cite></a>
|
||||
<a><cite>常用页面</cite></a>
|
||||
<a><cite>留言列表</cite></a>
|
||||
</span>
|
||||
<a class="layui-btn layui-btn-sm" href="javascript:location.replace(location.href);" title="刷新">
|
||||
<i class="layui-icon layui-icon-refresh"></i>
|
||||
</a>
|
||||
</div>
|
||||
<!--模糊搜索区域-->
|
||||
<div class="layui-row">
|
||||
<form class="layui-form layui-col-md12 ok-search">
|
||||
<input class="layui-input" placeholder="开始日期" autocomplete="off" id="startTime" name="startTime">
|
||||
<input class="layui-input" placeholder="截止日期" autocomplete="off" id="endTime" name="endTime">
|
||||
<input class="layui-input" placeholder="请输入标题" autocomplete="off" name="title">
|
||||
<button class="layui-btn" lay-submit="" lay-filter="search">
|
||||
<i class="layui-icon layui-icon-search"></i>
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
<!--数据表格-->
|
||||
<table class="layui-hide" id="tableId" lay-filter="tableFilter"></table>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>留言列表</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<link rel="stylesheet" href="../../css/oksub.css">
|
||||
</head>
|
||||
<body>
|
||||
<div class="ok-body">
|
||||
<!--模糊搜索区域-->
|
||||
<div class="layui-row">
|
||||
<form class="layui-form layui-col-md12 ok-search">
|
||||
<input class="layui-input" placeholder="开始日期" autocomplete="off" id="startTime" name="startTime">
|
||||
<input class="layui-input" placeholder="截止日期" autocomplete="off" id="endTime" name="endTime">
|
||||
<input class="layui-input" placeholder="请输入标题" autocomplete="off" name="title">
|
||||
<button class="layui-btn" lay-submit="" lay-filter="search">
|
||||
<i class="layui-icon layui-icon-search"></i>
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
<!--js逻辑-->
|
||||
<script src="../../lib/layui/layui.js"></script>
|
||||
<script>
|
||||
layui.use(["element", "table", "form", "laydate", "okLayer", "okUtils", "okMock"], function () {
|
||||
var table = layui.table;
|
||||
var form = layui.form;
|
||||
var util = layui.util;
|
||||
var laydate = layui.laydate;
|
||||
var okLayer = layui.okLayer;
|
||||
var okUtils = layui.okUtils;
|
||||
var okMock = layui.okMock;
|
||||
<!--数据表格-->
|
||||
<table class="layui-hide" id="tableId" lay-filter="tableFilter"></table>
|
||||
</div>
|
||||
<!--js逻辑-->
|
||||
<script src="../../lib/layui/layui.js"></script>
|
||||
<script>
|
||||
layui.use(["table", "form", "laydate", "okLayer", "okUtils", "okMock"], function () {
|
||||
let table = layui.table;
|
||||
let form = layui.form;
|
||||
let util = layui.util;
|
||||
let laydate = layui.laydate;
|
||||
let okLayer = layui.okLayer;
|
||||
let okUtils = layui.okUtils;
|
||||
let okMock = layui.okMock;
|
||||
|
||||
util.fixbar({});
|
||||
util.fixbar({});
|
||||
|
||||
laydate.render({elem: "#startTime", type: "datetime"});
|
||||
laydate.render({elem: "#endTime", type: "datetime"});
|
||||
laydate.render({elem: "#startTime", type: "datetime"});
|
||||
laydate.render({elem: "#endTime", type: "datetime"});
|
||||
|
||||
var articleTable = table.render({
|
||||
elem: "#tableId",
|
||||
url: okMock.api.message.list,
|
||||
limit: 20,
|
||||
page: true,
|
||||
even: true,
|
||||
toolbar: "#toolbarTpl",
|
||||
size: "sm",
|
||||
cols: [[
|
||||
{type: "checkbox", fixed: "left"},
|
||||
{field: "id", title: "ID", width: 170, sort: true},
|
||||
{field: "username", title: "留言者", width: 100},
|
||||
{field: "content", title: "留言内容", width: 300},
|
||||
{field: "url", title: "文章链接", width: 250, templet: "#urlTpl"},
|
||||
{field: "createTime", title: "留言时间", width: 150},
|
||||
{field: "status", title: "状态", width: 110, align: "center", templet: "#statusTpl"},
|
||||
{title: "操作", width: 100, align: "center", fixed: "right", templet: "#operationTpl"}
|
||||
]],
|
||||
done: function (res, curr, count) {
|
||||
console.log(res, curr, count)
|
||||
}
|
||||
let articleTable = table.render({
|
||||
elem: "#tableId",
|
||||
url: okMock.api.listMessage,
|
||||
limit: 20,
|
||||
page: true,
|
||||
even: true,
|
||||
toolbar: "#toolbarTpl",
|
||||
size: "sm",
|
||||
cols: [[
|
||||
{type: "checkbox", fixed: "left"},
|
||||
{field: "id", title: "ID", width: 170, sort: true},
|
||||
{field: "commenter", title: "留言者", width: 100},
|
||||
{field: "content", title: "留言内容", width: 300},
|
||||
{field: "url", title: "文章链接", width: 250, templet: "#urlTpl"},
|
||||
{field: "status", title: "状态", width: 110, align: "center", templet: "#statusTpl"},
|
||||
{field: "createTime", title: "留言时间", width: 150},
|
||||
{title: "操作", width: 100, align: "center", fixed: "right", templet: "#operationTpl"}
|
||||
]],
|
||||
done: function (res, curr, count) {
|
||||
console.log(res, curr, count)
|
||||
}
|
||||
});
|
||||
|
||||
form.on("submit(search)", function (data) {
|
||||
articleTable.reload({
|
||||
where: data.field,
|
||||
page: {curr: 1}
|
||||
});
|
||||
return false;
|
||||
});
|
||||
|
||||
form.on("submit(search)", function () {
|
||||
articleTable.reload({
|
||||
where: data.field,
|
||||
page: {curr: 1}
|
||||
});
|
||||
return false;
|
||||
});
|
||||
|
||||
table.on("toolbar(tableFilter)", function (obj) {
|
||||
switch (obj.event) {
|
||||
case "batchEnabled":
|
||||
batchEnabled();
|
||||
break;
|
||||
case "batchDisabled":
|
||||
batchDisabled();
|
||||
break;
|
||||
case "batchDel":
|
||||
batchDel();
|
||||
break;
|
||||
case "add":
|
||||
add();
|
||||
break;
|
||||
}
|
||||
});
|
||||
|
||||
table.on("tool(tableFilter)", function (obj) {
|
||||
var data = obj.data;
|
||||
switch (obj.event) {
|
||||
case "edit":
|
||||
edit(data.id);
|
||||
break;
|
||||
case "del":
|
||||
del(data.id);
|
||||
break;
|
||||
}
|
||||
});
|
||||
|
||||
function batchEnabled() {
|
||||
okLayer.confirm("确定要批量上架吗?", function (index) {
|
||||
layer.close(index);
|
||||
var idsStr = okUtils.table.batchCheck(table);
|
||||
if (idsStr) {
|
||||
okUtils.ajax("/article/batchNormal", "post", {idsStr: idsStr}).done(function (response) {
|
||||
console.log(response);
|
||||
okUtils.table.successMsg("批量上架成功");
|
||||
}).fail(function (error) {
|
||||
console.log(error)
|
||||
});
|
||||
}
|
||||
});
|
||||
table.on("toolbar(tableFilter)", function (obj) {
|
||||
switch (obj.event) {
|
||||
case "batchDelete":
|
||||
batchDelete();
|
||||
break;
|
||||
}
|
||||
});
|
||||
|
||||
function batchDisabled() {
|
||||
okLayer.confirm("确定要批量下架吗?", function (index) {
|
||||
layer.close(index);
|
||||
var idsStr = okUtils.table.batchCheck(table);
|
||||
if (idsStr) {
|
||||
okUtils.ajax("/article/batchStop", "post", {idsStr: idsStr}).done(function (response) {
|
||||
console.log(response);
|
||||
okUtils.table.successMsg("批量下架成功");
|
||||
}).fail(function (error) {
|
||||
console.log(error)
|
||||
});
|
||||
}
|
||||
});
|
||||
table.on("tool(tableFilter)", function (obj) {
|
||||
let data = obj.data;
|
||||
switch (obj.event) {
|
||||
case "updateById":
|
||||
updateById(data.id);
|
||||
break;
|
||||
case "deleteById":
|
||||
deleteById(data.id);
|
||||
break;
|
||||
}
|
||||
});
|
||||
|
||||
function batchDel() {
|
||||
okLayer.confirm("确定要批量删除吗?", function (index) {
|
||||
layer.close(index);
|
||||
var idsStr = okUtils.table.batchCheck(table);
|
||||
if (idsStr) {
|
||||
okUtils.ajax("/article/batchDel", "post", {idsStr: idsStr}).done(function (response) {
|
||||
console.log(response);
|
||||
okUtils.table.successMsg("批量删除成功");
|
||||
}).fail(function (error) {
|
||||
console.log(error)
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function add() {
|
||||
okLayer.open("添加文章", "article-add.html", "90%", "90%", null, function () {
|
||||
articleTable.reload();
|
||||
})
|
||||
}
|
||||
|
||||
function edit(id) {
|
||||
okLayer.open("编辑文章", "article-edit.html?id=" + id, "90%", "90%", null, function () {
|
||||
articleTable.reload();
|
||||
})
|
||||
}
|
||||
|
||||
function del(id) {
|
||||
okLayer.confirm("确定要删除吗?", function () {
|
||||
okUtils.ajax("/article/batchDel", "post", {idsStr: id}).done(function (response) {
|
||||
console.log(response);
|
||||
okUtils.table.successMsg("删除成功");
|
||||
function batchDelete() {
|
||||
okLayer.confirm("确定要批量删除吗?", function (index) {
|
||||
layer.close(index);
|
||||
let idsStr = okUtils.tableBatchCheck(table);
|
||||
if (idsStr) {
|
||||
okUtils.ajax("/message/deleteMessage", "delete", {idsStr: idsStr}, true).done(function (response) {
|
||||
okUtils.tableSuccessMsg(response.msg);
|
||||
}).fail(function (error) {
|
||||
console.log(error)
|
||||
console.log(error);
|
||||
});
|
||||
})
|
||||
}
|
||||
})
|
||||
</script>
|
||||
<!-- 头工具栏模板 -->
|
||||
<script type="text/html" id="toolbarTpl">
|
||||
<div class="layui-btn-container">
|
||||
<button class="layui-btn layui-btn-sm layui-btn-normal" lay-event="batchEnabled">批量上架</button>
|
||||
<button class="layui-btn layui-btn-sm layui-btn-warm" lay-event="batchDisabled">批量下架</button>
|
||||
<button class="layui-btn layui-btn-sm layui-btn-danger" lay-event="batchDel">批量删除</button>
|
||||
<button class="layui-btn layui-btn-sm" lay-event="add">添加文章</button>
|
||||
</div>
|
||||
</script>
|
||||
<!-- 行工具栏模板 -->
|
||||
<script type="text/html" id="operationTpl">
|
||||
<a href="javascript:" title="编辑" lay-event="edit"><i class="layui-icon"></i></a>
|
||||
<a href="javascript:" title="删除" lay-event="del"><i class="layui-icon"></i></a>
|
||||
</script>
|
||||
<!-- 链接 -->
|
||||
<script type="text/html" id="urlTpl">
|
||||
<a href="{{d.url}}" target="_blank">{{d.url}}</a>
|
||||
</script>
|
||||
<!-- 状态-->
|
||||
<script type="text/html" id="statusTpl">
|
||||
{{# if(d.status == 0){ }}
|
||||
<span class="layui-btn layui-btn-normal layui-btn-xs">已读</span>
|
||||
{{# } else if(d.status == 1) { }}
|
||||
<span class="layui-btn layui-btn-warm layui-btn-xs">未读</span>
|
||||
{{# } }}
|
||||
</script>
|
||||
|
||||
</body>
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function updateById(id) {
|
||||
okLayer.open("编辑留言", "message-edit.html?id=" + id, "90%", "90%", null, function () {
|
||||
articleTable.reload();
|
||||
})
|
||||
}
|
||||
|
||||
function deleteById(id) {
|
||||
okLayer.confirm("确定要删除吗?", function () {
|
||||
okUtils.ajax("/message/deleteMessage", "delete", {idsStr: id}, true).done(function (response) {
|
||||
okUtils.tableSuccessMsg(response.msg);
|
||||
}).fail(function (error) {
|
||||
console.log(error);
|
||||
});
|
||||
})
|
||||
}
|
||||
});
|
||||
</script>
|
||||
<!-- 头工具栏模板 -->
|
||||
<script type="text/html" id="toolbarTpl">
|
||||
<div class="layui-btn-container">
|
||||
<div class="layui-inline" lay-event="batchDelete"><i class="layui-icon"></i></div>
|
||||
</div>
|
||||
</script>
|
||||
<!-- 行工具栏模板 -->
|
||||
<script type="text/html" id="operationTpl">
|
||||
<a href="javascript:" title="编辑" lay-event="updateById"><i class="layui-icon"></i></a>
|
||||
<a href="javascript:" title="删除" lay-event="deleteById"><i class="layui-icon"></i></a>
|
||||
</script>
|
||||
<!-- 链接 -->
|
||||
<script type="text/html" id="urlTpl">
|
||||
<a href="{{d.url}}" target="_blank">{{d.url}}</a>
|
||||
</script>
|
||||
<!-- 状态-->
|
||||
<script type="text/html" id="statusTpl">
|
||||
{{# if(d.status == 0){ }}
|
||||
<span class="layui-btn layui-btn-normal layui-btn-xs">已读</span>
|
||||
{{# } else if(d.status == 1) { }}
|
||||
<span class="layui-btn layui-btn-warm layui-btn-xs">未读</span>
|
||||
{{# } }}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
|||
Loading…
Reference in New Issue