impr:文章、留言、帖子列表

master
bobi 2019-11-03 20:50:58 +08:00
parent 569e0076a5
commit b172bb28aa
8 changed files with 653 additions and 775 deletions

View File

@ -7,6 +7,9 @@ layui.define([], function (exprots) {
datatables: "http://rap2api.taobao.org/app/mock/233041/datatables", datatables: "http://rap2api.taobao.org/app/mock/233041/datatables",
listUser: "http://rap2api.taobao.org/app/mock/233041/user/listUser", listUser: "http://rap2api.taobao.org/app/mock/233041/user/listUser",
listRole: "http://rap2api.taobao.org/app/mock/233041/role/listRole", 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: { menu: {

View File

@ -48,7 +48,7 @@ layui.define(["layer"], function (exprots) {
dataType: "json", dataType: "json",
beforeSend: function () { beforeSend: function () {
if (load) { if (load) {
loadIndex = layer.load(0, {shade: false}); loadIndex = layer.load(0, {shade: 0.3});
} }
}, },
success: function (data) { success: function (data) {

View File

@ -57,8 +57,9 @@
{field: "province", title: "省份", width: 120}, {field: "province", title: "省份", width: 120},
{field: "city", title: "城市", width: 100}, {field: "city", title: "城市", width: 100},
{field: "county", title: "区县", width: 120}, {field: "county", title: "区县", width: 120},
{field: "createTime", title: "创建时间", width: 150},
{field: "logins", title: "登陆次数", width: 100}, {field: "logins", title: "登陆次数", width: 100},
{field: "createTime", title: "创建时间", width: 150},
{field: "updateTime", title: "更新时间", width: 150},
{title: "操作", width: 100, align: "center", fixed: "right", templet: "#operationTpl"} {title: "操作", width: 100, align: "center", fixed: "right", templet: "#operationTpl"}
]], ]],
done: function (res, curr, count) { done: function (res, curr, count) {

View File

@ -1,32 +1,19 @@
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<title>添加文章</title> <title>添加文章</title>
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<link rel="stylesheet" href="../../css/oksub.css"> <link rel="stylesheet" href="../../css/oksub.css">
</head> </head>
<body> <body>
<div class="ok-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>
</div>
<!--form表单--> <!--form表单-->
<form class="layui-form layui-form-pane ok-form"> <form class="layui-form layui-form-pane ok-form">
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label">标题</label> <label class="layui-form-label">标题</label>
<div class="layui-input-block"> <div class="layui-input-block">
<input type="text" name="title" placeholder="请输入文章标题" autocomplete="off" class="layui-input" <input type="text" name="title" placeholder="请输入文章标题" autocomplete="off" class="layui-input" lay-verify="required">
lay-verify="required">
</div> </div>
</div> </div>
<div class="layui-form-item"> <div class="layui-form-item">
@ -66,7 +53,7 @@
</div> </div>
<div class="layui-form-item"> <div class="layui-form-item">
<div class="layui-input-block"> <div class="layui-input-block">
<button class="layui-btn" lay-submit lay-filter="add">立即提交</button> <button class="layui-btn" lay-submit lay-filter="addArticle">立即提交</button>
<button type="reset" class="layui-btn layui-btn-primary">重置</button> <button type="reset" class="layui-btn layui-btn-primary">重置</button>
</div> </div>
</div> </div>
@ -75,30 +62,22 @@
<!--js逻辑--> <!--js逻辑-->
<script src="../../lib/layui/layui.js"></script> <script src="../../lib/layui/layui.js"></script>
<script> <script>
layui.use(['element', 'form', 'jquery', 'laydate'], function () { layui.use(["form", "okUtils", "okLayer"], function () {
var element = layui.element; let form = layui.form;
var table = layui.table; let okUtils = layui.okUtils;
var form = layui.form; let okLayer = layui.okLayer;
var $ = layui.jquery;
var laydate = layui.laydate;
laydate.render({ form.on("submit(addArticle)", function (data) {
elem: '#birthday', okUtils.ajax("/article/addArticle", "post", data.field, true).done(function (response) {
type: "datetime" okLayer.greenTickMsg(response.msg, function () {
});
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 () {
parent.layer.close(parent.layer.getFrameIndex(window.name)); parent.layer.close(parent.layer.getFrameIndex(window.name));
}); });
}).fail(function (error) {
console.log(error)
});
return false; return false;
}); });
}) });
</script> </script>
</body> </body>
</html> </html>

View File

@ -1,25 +1,13 @@
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<title>编辑文章</title> <title>编辑文章</title>
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<link rel="stylesheet" href="../../css/oksub.css"> <link rel="stylesheet" href="../../css/oksub.css">
</head> </head>
<body> <body>
<div class="ok-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>
</div>
<!--form表单--> <!--form表单-->
<form class="layui-form ok-form"> <form class="layui-form ok-form">
<div class="layui-form-item"> <div class="layui-form-item">
@ -65,7 +53,7 @@
</div> </div>
<div class="layui-form-item"> <div class="layui-form-item">
<div class="layui-input-block"> <div class="layui-input-block">
<button class="layui-btn" lay-submit lay-filter="edit">立即提交</button> <button class="layui-btn" lay-submit lay-filter="updateArticle">立即提交</button>
<button type="reset" class="layui-btn layui-btn-primary">重置</button> <button type="reset" class="layui-btn layui-btn-primary">重置</button>
</div> </div>
</div> </div>
@ -74,30 +62,22 @@
<!--js逻辑--> <!--js逻辑-->
<script src="../../lib/layui/layui.js"></script> <script src="../../lib/layui/layui.js"></script>
<script> <script>
layui.use(['element', 'form', 'jquery', 'laydate'], function () { layui.use(["form", "okUtils", "okLayer"], function () {
var element = layui.element; let form = layui.form;
var table = layui.table; let okUtils = layui.okUtils;
var form = layui.form; let okLayer = layui.okLayer;
var $ = layui.jquery;
var laydate = layui.laydate;
laydate.render({ form.on("submit(updateArticle)", function (data) {
elem: '#birthday', okUtils.ajax("/article/updateArticle", "put", data.field, true).done(function (response) {
type: "datetime" okLayer.greenTickMsg(response.msg, function () {
});
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 () {
parent.layer.close(parent.layer.getFrameIndex(window.name)); parent.layer.close(parent.layer.getFrameIndex(window.name));
}); });
}).fail(function (error) {
console.log(error)
});
return false; return false;
}); });
}) });
</script> </script>
</body> </body>
</html> </html>

View File

@ -1,24 +1,13 @@
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<title>文章列表</title> <title>文章列表</title>
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<link rel="stylesheet" href="../../css/oksub.css"> <link rel="stylesheet" href="../../css/oksub.css">
</head> </head>
<body> <body>
<div class="ok-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"> <div class="layui-row">
<form class="layui-form layui-col-md12 ok-search"> <form class="layui-form layui-col-md12 ok-search">
@ -37,22 +26,22 @@
<script src="../../lib/layui/layui.js"></script> <script src="../../lib/layui/layui.js"></script>
<script> <script>
layui.use(["element", "table", "form", "laydate", "okLayer", "okUtils", "okMock"], function () { layui.use(["element", "table", "form", "laydate", "okLayer", "okUtils", "okMock"], function () {
var table = layui.table; let table = layui.table;
var form = layui.form; let form = layui.form;
var util = layui.util; let util = layui.util;
var laydate = layui.laydate; let laydate = layui.laydate;
var okLayer = layui.okLayer; let okLayer = layui.okLayer;
var okUtils = layui.okUtils; let okUtils = layui.okUtils;
var okMock = layui.okMock; let okMock = layui.okMock;
util.fixbar({}); util.fixbar({});
laydate.render({elem: "#startTime", type: "datetime"}); laydate.render({elem: "#startTime", type: "datetime"});
laydate.render({elem: "#endTime", type: "datetime"}); laydate.render({elem: "#endTime", type: "datetime"});
var articleTable = table.render({ let articleTable = table.render({
elem: "#tableId", elem: "#tableId",
url: okMock.api.article.list, url: okMock.api.listArticle,
limit: 20, limit: 20,
page: true, page: true,
even: true, even: true,
@ -61,12 +50,14 @@
cols: [[ cols: [[
{type: "checkbox", fixed: "left"}, {type: "checkbox", fixed: "left"},
{field: "id", title: "ID", width: 170, sort: true}, {field: "id", title: "ID", width: 170, sort: true},
{field: "title", title: "标题", width: 350}, {field: "title", title: "标题", width: 150},
{field: "url", title: "链接", width: 250, templet: "#urlTpl"}, {field: "url", title: "链接", width: 250, templet: "#urlTpl"},
{field: "publisher", title: "发布者", width: 100}, {field: "publisher", title: "发布者", width: 100},
{field: "readSize", title: "阅读量", width: 80}, {field: "readSize", title: "阅读量", width: 80},
{field: "isTop", title: "是否置顶", width: 100, align: "center", templet: "#topTpl"}, {field: "isTop", title: "是否置顶", width: 100, align: "center", templet: "#topTpl"},
{field: "status", title: "发布状态", width: 110, align: "center", templet: "#statusTpl"}, {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"} {title: "操作", width: 100, align: "center", fixed: "right", templet: "#operationTpl"}
]], ]],
done: function (res, curr, count) { done: function (res, curr, count) {
@ -74,7 +65,7 @@
} }
}); });
form.on("submit(search)", function () { form.on("submit(search)", function (data) {
articleTable.reload({ articleTable.reload({
where: data.field, where: data.field,
page: {curr: 1} page: {curr: 1}
@ -100,7 +91,7 @@
}); });
table.on("tool(tableFilter)", function (obj) { table.on("tool(tableFilter)", function (obj) {
var data = obj.data; let data = obj.data;
switch (obj.event) { switch (obj.event) {
case "edit": case "edit":
edit(data.id); edit(data.id);
@ -114,11 +105,11 @@
function batchEnabled() { function batchEnabled() {
okLayer.confirm("确定要批量上架吗?", function (index) { okLayer.confirm("确定要批量上架吗?", function (index) {
layer.close(index); layer.close(index);
var idsStr = okUtils.table.batchCheck(table); let idsStr = okUtils.tableBatchCheck(table);
if (idsStr) { if (idsStr) {
okUtils.ajax("/article/batchNormal", "post", {idsStr: idsStr}).done(function (response) { okUtils.ajax("/article/batchNormal", "put", {idsStr: idsStr}, true).done(function (response) {
console.log(response); console.log(response);
okUtils.table.successMsg("批量上架成功"); okUtils.tableSuccessMsg(response.msg);
}).fail(function (error) { }).fail(function (error) {
console.log(error) console.log(error)
}); });
@ -129,11 +120,11 @@
function batchDisabled() { function batchDisabled() {
okLayer.confirm("确定要批量下架吗?", function (index) { okLayer.confirm("确定要批量下架吗?", function (index) {
layer.close(index); layer.close(index);
var idsStr = okUtils.table.batchCheck(table); var idsStr = okUtils.tableBatchCheck(table);
if (idsStr) { if (idsStr) {
okUtils.ajax("/article/batchStop", "post", {idsStr: idsStr}).done(function (response) { okUtils.ajax("/article/batchStop", "put", {idsStr: idsStr}, true).done(function (response) {
console.log(response); console.log(response);
okUtils.table.successMsg("批量下架成功"); okUtils.tableSuccessMsg(response.msg);
}).fail(function (error) { }).fail(function (error) {
console.log(error) console.log(error)
}); });
@ -144,11 +135,11 @@
function batchDel() { function batchDel() {
okLayer.confirm("确定要批量删除吗?", function (index) { okLayer.confirm("确定要批量删除吗?", function (index) {
layer.close(index); layer.close(index);
var idsStr = okUtils.table.batchCheck(table); var idsStr = okUtils.tableBatchCheck(table);
if (idsStr) { if (idsStr) {
okUtils.ajax("/article/batchDel", "post", {idsStr: idsStr}).done(function (response) { okUtils.ajax("/article/batchDel", "put", {idsStr: idsStr}, true).done(function (response) {
console.log(response); console.log(response);
okUtils.table.successMsg("批量删除成功"); okUtils.tableSuccessMsg(response.msg);
}).fail(function (error) { }).fail(function (error) {
console.log(error) console.log(error)
}); });
@ -170,9 +161,9 @@
function del(id) { function del(id) {
okLayer.confirm("确定要删除吗?", function () { okLayer.confirm("确定要删除吗?", function () {
okUtils.ajax("/article/batchDel", "post", {idsStr: id}).done(function (response) { okUtils.ajax("/article/batchDel", "delete", {idsStr: id}, true).done(function (response) {
console.log(response); console.log(response);
okUtils.table.successMsg("删除成功"); okUtils.tableSuccessMsg(response.msg);
}).fail(function (error) { }).fail(function (error) {
console.log(error) console.log(error)
}); });
@ -218,5 +209,5 @@
<a href="javascript:" title="编辑" lay-event="edit"><i class="layui-icon">&#xe642;</i></a> <a href="javascript:" title="编辑" lay-event="edit"><i class="layui-icon">&#xe642;</i></a>
<a href="javascript:" title="删除" lay-event="del"><i class="layui-icon">&#xe640;</i></a> <a href="javascript:" title="删除" lay-event="del"><i class="layui-icon">&#xe640;</i></a>
</script> </script>
</body> </body>
</html> </html>

View File

@ -1,24 +1,13 @@
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<title>帖子列表</title> <title>帖子列表</title>
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<link rel="stylesheet" href="../../css/oksub.css"> <link rel="stylesheet" href="../../css/oksub.css">
</head> </head>
<body> <body>
<div class="ok-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"> <div class="layui-row">
<form class="layui-form layui-col-md12 ok-search"> <form class="layui-form layui-col-md12 ok-search">
@ -37,23 +26,23 @@
<script src="../../lib/layui/layui.js"></script> <script src="../../lib/layui/layui.js"></script>
<script> <script>
layui.use(["element", "table", "form", "laydate", "okLayer", "okUtils", "okMock"], function () { layui.use(["element", "table", "form", "laydate", "okLayer", "okUtils", "okMock"], function () {
var element = layui.element; let element = layui.element;
var table = layui.table; let table = layui.table;
var form = layui.form; let form = layui.form;
var util = layui.util; let util = layui.util;
var laydate = layui.laydate; let laydate = layui.laydate;
var okLayer = layui.okLayer; let okLayer = layui.okLayer;
var okUtils = layui.okUtils; let okUtils = layui.okUtils;
var okMock = layui.okMock; let okMock = layui.okMock;
util.fixbar({}); util.fixbar({});
laydate.render({elem: "#startTime", type: "datetime"}); laydate.render({elem: "#startTime", type: "datetime"});
laydate.render({elem: "#endTime", type: "datetime"}); laydate.render({elem: "#endTime", type: "datetime"});
var articleTable = table.render({ let articleTable = table.render({
elem: "#tableId", elem: "#tableId",
url: okMock.api.bbs.list, url: okMock.api.listBbs,
limit: 20, limit: 20,
page: true, page: true,
even: true, even: true,
@ -62,12 +51,13 @@
cols: [[ cols: [[
{type: "checkbox", fixed: "left"}, {type: "checkbox", fixed: "left"},
{field: "id", title: "ID", width: 170, sort: true}, {field: "id", title: "ID", width: 170, sort: true},
{field: "username", title: "发帖人", width: 100}, {field: "poster", title: "发帖人", width: 100},
{field: "title", title: "标题", width: 250}, {field: "title", title: "标题", width: 150},
{field: "summary", title: "摘要", width: 300}, {field: "summary", title: "摘要", width: 250},
{field: "content", title: "内容", width: 350}, {field: "content", title: "内容", width: 350},
{field: "createTime", title: "发帖时间", width: 150},
{field: "status", title: "状态", width: 110, align: "center", templet: "#statusTpl"}, {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"} {title: "操作", width: 100, align: "center", fixed: "right", templet: "#operationTpl"}
]], ]],
done: function (res, curr, count) { done: function (res, curr, count) {
@ -76,7 +66,7 @@
} }
}); });
form.on("submit(search)", function () { form.on("submit(search)", function (data) {
articleTable.reload({ articleTable.reload({
where: data.field, where: data.field,
page: {curr: 1} page: {curr: 1}
@ -102,7 +92,7 @@
}); });
table.on("tool(tableFilter)", function (obj) { table.on("tool(tableFilter)", function (obj) {
var data = obj.data; let data = obj.data;
switch (obj.event) { switch (obj.event) {
case "edit": case "edit":
edit(data.id); edit(data.id);
@ -116,11 +106,10 @@
function batchEnabled() { function batchEnabled() {
okLayer.confirm("确定要批量上架吗?", function (index) { okLayer.confirm("确定要批量上架吗?", function (index) {
layer.close(index); layer.close(index);
var idsStr = okUtils.table.batchCheck(table); let idsStr = okUtils.tableBatchCheck(table);
if (idsStr) { if (idsStr) {
okUtils.ajax("/article/batchNormal", "post", {idsStr: idsStr}).done(function (response) { okUtils.ajax("/bbs/update-bbs-status", "put", {idsStr: idsStr}, true).done(function (response) {
console.log(response); okUtils.tableSuccessMsg(response.msg);
okUtils.table.successMsg("批量上架成功");
}).fail(function (error) { }).fail(function (error) {
console.log(error) console.log(error)
}); });
@ -131,11 +120,10 @@
function batchDisabled() { function batchDisabled() {
okLayer.confirm("确定要批量下架吗?", function (index) { okLayer.confirm("确定要批量下架吗?", function (index) {
layer.close(index); layer.close(index);
var idsStr = okUtils.table.batchCheck(table); let idsStr = okUtils.tableBatchCheck(table);
if (idsStr) { if (idsStr) {
okUtils.ajax("/article/batchStop", "post", {idsStr: idsStr}).done(function (response) { okUtils.ajax("/bbs/update-bbs-status", "put", {idsStr: idsStr}, true).done(function (response) {
console.log(response); okUtils.tableSuccessMsg(response.msg);
okUtils.table.successMsg("批量下架成功");
}).fail(function (error) { }).fail(function (error) {
console.log(error) console.log(error)
}); });
@ -146,37 +134,35 @@
function batchDel() { function batchDel() {
okLayer.confirm("确定要批量删除吗?", function (index) { okLayer.confirm("确定要批量删除吗?", function (index) {
layer.close(index); layer.close(index);
var idsStr = okUtils.table.batchCheck(table); let idsStr = okUtils.tableBatchCheck(table);
if (idsStr) { if (idsStr) {
okUtils.ajax("/article/batchDel", "post", {idsStr: idsStr}).done(function (response) { okUtils.ajax("/bbs/deleteBbs", "delete", {idsStr: idsStr}, true).done(function (response) {
console.log(response); okUtils.tableSuccessMsg(response.msg);
okUtils.table.successMsg("批量删除成功");
}).fail(function (error) { }).fail(function (error) {
console.log(error) console.log(error);
}); });
} }
}); });
} }
function add() { function add() {
okLayer.open("添加文章", "article-add.html", "90%", "90%", null, function () { okLayer.open("添加帖子", "bbs-add.html", "90%", "90%", null, function () {
articleTable.reload(); articleTable.reload();
}) })
} }
function edit(id) { function edit(id) {
okLayer.open("编辑文章", "article-edit.html?id=" + id, "90%", "90%", null, function () { okLayer.open("编辑帖子", "bbs-edit.html?id=" + id, "90%", "90%", null, function () {
articleTable.reload(); articleTable.reload();
}) })
} }
function del(id) { function del(id) {
okLayer.confirm("确定要删除吗?", function () { okLayer.confirm("确定要删除吗?", function () {
okUtils.ajax("/article/batchDel", "post", {idsStr: id}).done(function (response) { okUtils.ajax("/bbs/deleteBbs", "delete", {idsStr: id}, true).done(function (response) {
console.log(response); okUtils.tableSuccessMsg(response.msg);
okUtils.table.successMsg("删除成功");
}).fail(function (error) { }).fail(function (error) {
console.log(error) console.log(error);
}); });
}) })
} }
@ -188,7 +174,7 @@
<button class="layui-btn layui-btn-sm layui-btn-normal" lay-event="batchEnabled">批量上架</button> <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-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 layui-btn-danger" lay-event="batchDel">批量删除</button>
<button class="layui-btn layui-btn-sm" lay-event="add">添加文章</button> <button class="layui-btn layui-btn-sm" lay-event="add">添加帖子</button>
</div> </div>
</script> </script>
<!-- 行工具栏模板 --> <!-- 行工具栏模板 -->
@ -206,5 +192,5 @@
<span class="layui-btn layui-btn-danger layui-btn-xs">已删除</span> <span class="layui-btn layui-btn-danger layui-btn-xs">已删除</span>
{{# } }} {{# } }}
</script> </script>
</body> </body>
</html> </html>

View File

@ -1,24 +1,13 @@
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<title>留言列表</title> <title>留言列表</title>
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<link rel="stylesheet" href="../../css/oksub.css"> <link rel="stylesheet" href="../../css/oksub.css">
</head> </head>
<body> <body>
<div class="ok-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"> <div class="layui-row">
<form class="layui-form layui-col-md12 ok-search"> <form class="layui-form layui-col-md12 ok-search">
@ -36,23 +25,23 @@
<!--js逻辑--> <!--js逻辑-->
<script src="../../lib/layui/layui.js"></script> <script src="../../lib/layui/layui.js"></script>
<script> <script>
layui.use(["element", "table", "form", "laydate", "okLayer", "okUtils", "okMock"], function () { layui.use(["table", "form", "laydate", "okLayer", "okUtils", "okMock"], function () {
var table = layui.table; let table = layui.table;
var form = layui.form; let form = layui.form;
var util = layui.util; let util = layui.util;
var laydate = layui.laydate; let laydate = layui.laydate;
var okLayer = layui.okLayer; let okLayer = layui.okLayer;
var okUtils = layui.okUtils; let okUtils = layui.okUtils;
var okMock = layui.okMock; let okMock = layui.okMock;
util.fixbar({}); util.fixbar({});
laydate.render({elem: "#startTime", type: "datetime"}); laydate.render({elem: "#startTime", type: "datetime"});
laydate.render({elem: "#endTime", type: "datetime"}); laydate.render({elem: "#endTime", type: "datetime"});
var articleTable = table.render({ let articleTable = table.render({
elem: "#tableId", elem: "#tableId",
url: okMock.api.message.list, url: okMock.api.listMessage,
limit: 20, limit: 20,
page: true, page: true,
even: true, even: true,
@ -61,11 +50,11 @@
cols: [[ cols: [[
{type: "checkbox", fixed: "left"}, {type: "checkbox", fixed: "left"},
{field: "id", title: "ID", width: 170, sort: true}, {field: "id", title: "ID", width: 170, sort: true},
{field: "username", title: "留言者", width: 100}, {field: "commenter", title: "留言者", width: 100},
{field: "content", title: "留言内容", width: 300}, {field: "content", title: "留言内容", width: 300},
{field: "url", title: "文章链接", width: 250, templet: "#urlTpl"}, {field: "url", title: "文章链接", width: 250, templet: "#urlTpl"},
{field: "createTime", title: "留言时间", width: 150},
{field: "status", title: "状态", width: 110, align: "center", templet: "#statusTpl"}, {field: "status", title: "状态", width: 110, align: "center", templet: "#statusTpl"},
{field: "createTime", title: "留言时间", width: 150},
{title: "操作", width: 100, align: "center", fixed: "right", templet: "#operationTpl"} {title: "操作", width: 100, align: "center", fixed: "right", templet: "#operationTpl"}
]], ]],
done: function (res, curr, count) { done: function (res, curr, count) {
@ -73,7 +62,7 @@
} }
}); });
form.on("submit(search)", function () { form.on("submit(search)", function (data) {
articleTable.reload({ articleTable.reload({
where: data.field, where: data.field,
page: {curr: 1} page: {curr: 1}
@ -83,115 +72,65 @@
table.on("toolbar(tableFilter)", function (obj) { table.on("toolbar(tableFilter)", function (obj) {
switch (obj.event) { switch (obj.event) {
case "batchEnabled": case "batchDelete":
batchEnabled(); batchDelete();
break;
case "batchDisabled":
batchDisabled();
break;
case "batchDel":
batchDel();
break;
case "add":
add();
break; break;
} }
}); });
table.on("tool(tableFilter)", function (obj) { table.on("tool(tableFilter)", function (obj) {
var data = obj.data; let data = obj.data;
switch (obj.event) { switch (obj.event) {
case "edit": case "updateById":
edit(data.id); updateById(data.id);
break; break;
case "del": case "deleteById":
del(data.id); deleteById(data.id);
break; break;
} }
}); });
function batchEnabled() { function batchDelete() {
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)
});
}
});
}
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)
});
}
});
}
function batchDel() {
okLayer.confirm("确定要批量删除吗?", function (index) { okLayer.confirm("确定要批量删除吗?", function (index) {
layer.close(index); layer.close(index);
var idsStr = okUtils.table.batchCheck(table); let idsStr = okUtils.tableBatchCheck(table);
if (idsStr) { if (idsStr) {
okUtils.ajax("/article/batchDel", "post", {idsStr: idsStr}).done(function (response) { okUtils.ajax("/message/deleteMessage", "delete", {idsStr: idsStr}, true).done(function (response) {
console.log(response); okUtils.tableSuccessMsg(response.msg);
okUtils.table.successMsg("批量删除成功");
}).fail(function (error) { }).fail(function (error) {
console.log(error) console.log(error);
}); });
} }
}); });
} }
function add() { function updateById(id) {
okLayer.open("添加文章", "article-add.html", "90%", "90%", null, function () { okLayer.open("编辑留言", "message-edit.html?id=" + id, "90%", "90%", null, function () {
articleTable.reload(); articleTable.reload();
}) })
} }
function edit(id) { function deleteById(id) {
okLayer.open("编辑文章", "article-edit.html?id=" + id, "90%", "90%", null, function () {
articleTable.reload();
})
}
function del(id) {
okLayer.confirm("确定要删除吗?", function () { okLayer.confirm("确定要删除吗?", function () {
okUtils.ajax("/article/batchDel", "post", {idsStr: id}).done(function (response) { okUtils.ajax("/message/deleteMessage", "delete", {idsStr: id}, true).done(function (response) {
console.log(response); okUtils.tableSuccessMsg(response.msg);
okUtils.table.successMsg("删除成功");
}).fail(function (error) { }).fail(function (error) {
console.log(error) console.log(error);
}); });
}) })
} }
}) });
</script> </script>
<!-- 头工具栏模板 --> <!-- 头工具栏模板 -->
<script type="text/html" id="toolbarTpl"> <script type="text/html" id="toolbarTpl">
<div class="layui-btn-container"> <div class="layui-btn-container">
<button class="layui-btn layui-btn-sm layui-btn-normal" lay-event="batchEnabled">批量上架</button> <div class="layui-inline" lay-event="batchDelete"><i class="layui-icon">&#xe640;</i></div>
<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> </div>
</script> </script>
<!-- 行工具栏模板 --> <!-- 行工具栏模板 -->
<script type="text/html" id="operationTpl"> <script type="text/html" id="operationTpl">
<a href="javascript:" title="编辑" lay-event="edit"><i class="layui-icon">&#xe642;</i></a> <a href="javascript:" title="编辑" lay-event="updateById"><i class="layui-icon">&#xe642;</i></a>
<a href="javascript:" title="删除" lay-event="del"><i class="layui-icon">&#xe640;</i></a> <a href="javascript:" title="删除" lay-event="deleteById"><i class="layui-icon">&#xe640;</i></a>
</script> </script>
<!-- 链接 --> <!-- 链接 -->
<script type="text/html" id="urlTpl"> <script type="text/html" id="urlTpl">
@ -205,6 +144,5 @@
<span class="layui-btn layui-btn-warm layui-btn-xs">未读</span> <span class="layui-btn layui-btn-warm layui-btn-xs">未读</span>
{{# } }} {{# } }}
</script> </script>
</body>
</body>
</html> </html>