鼠笼管理系统
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

331 lines
13 KiB

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>新闻动态</title>
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<link rel="stylesheet" href="/layui/css/layui.css" media="all">
<link rel="stylesheet" href="/style/edit.css" media="all">
<!-- 注意:如果你直接复制所有代码到本地,上述css路径需要改成你本地的 -->
</head>
<body>
<style>
#editorwrapper {
border: 1px solid #ccc;
z-index: 100; /* 按需定义 */
}
#toolbar-container { border-bottom: 1px solid #ccc; }
#editor-container { height: 400px; }
</style>
<div class="layui-tab layui-tab-brief" lay-filter="docDemoTabBrief">
<ul class="layui-tab-title">
<li class="layui-this">新闻列表</li>
<li>新闻添加</li>
</ul>
<div class="layui-tab-content" style="height: 100px;">
<div class="layui-tab-item layui-show"><table class="layui-hide" id="classClass" style="padding:25px;" lay-filter="classClass"></table></div>
<div class="layui-tab-item">
<blockquote class="layui-elem-quote layui-text">
温馨提示: 1. <font style="color:#01aaed;">带有红色”*“的为必填项;</font>
</blockquote>
<fieldset class="layui-elem-field layui-field-title" style="margin-top: 20px;">
<legend>新闻动态</legend>
</fieldset>
<form class="layui-form" action="">
<div class="layui-form-item">
<label class="layui-form-label">新闻标题</label>
<div class="layui-input-block">
<input type="text" name="title" lay-verify="title" autocomplete="off" placeholder="请输入标题" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">新闻图片</label>
<div class="layui-input-block">
<button type="button" class="layui-btn" id="test1">上传图片</button>
<div class="layui-upload-list">
<img class="layui-upload-img" id="demo1">
<p id="demoText"></p>
</div>
<div style="width: 95px;">
<div class="layui-progress layui-progress-big" lay-showpercent="yes" lay-filter="demo">
<div class="layui-progress-bar" lay-percent=""></div>
</div>
</div>
</div>
</div>
<input type="hidden" name="img" id="img">
<div class="layui-form-item layui-form-text">
<label class="layui-form-label">新闻介绍</label>
<div class="layui-input-block">
<div id="editor—wrapper">
<div id="toolbar-container"><!-- 工具栏 --></div>
<div id="editor-container"><!-- 编辑器 --></div>
</div>
</div>
</div>
<div class="layui-form-item">
<div class="layui-input-block">
<button type="submit" class="layui-btn" lay-submit="" lay-filter="subdata">立即提交</button>
<button type="reset" class="layui-btn layui-btn-primary">重置</button>
</div>
</div>
</form>
</div>
</div>
</div>
<script src="/layui/layui.js" charset="utf-8"></script>
<script src="/style/edit.js" charset="utf-8"></script>
<!-- 注意:如果你直接复制所有代码到本地,上述 JS 路径需要改成你本地的 -->
<script type="text/html" id="imgshow">
<!-- 这里的 checked 的状态只是演示 -->
<img src="/{{d.log}}">
</script>
<script type="text/html" id="tool">
<!-- 这里的 checked 的状态只是演示 -->
<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
</script>
<script>
const { createEditor, createToolbar } = window.wangEditor
const editorConfig = {
placeholder: '请编辑新闻介绍',
MENU_CONF: {},
onChange(editor) {
const html = editor.getHtml()
console.log('editor content', html)
// 也可以同步到 <textarea>
}
}
editorConfig.MENU_CONF['uploadImage'] = {
server: '/admin_index/upload', // 上传图片地址
// server: 'http://106.12.198.214:3000/api/upload-img-10s', // 用于测试 timeout
// server: 'http://106.12.198.214:3000/api/upload-img-failed', // 用于测试 failed
// server: 'http://106.12.198.214:3000/api/xxx', // 用于测试 404
timeout: 5 * 1000, // 5s
fieldName: 'file',
meta: { type: 1 },
metaWithUrl: true, // 参数拼接到 url 上
headers: { Accept: 'text/x-json' },
maxFileSize: 10 * 1024 * 1024, // 10M
base64LimitSize: 5 * 1024, // 5kb 以下插入 base64
onBeforeUpload(files) {
console.log('onBeforeUpload', files)
return files // 返回哪些文件可以上传
// return false 会阻止上传
},
onProgress(progress) {
console.log('onProgress', progress)
},
onSuccess(file, res) {
console.log('onSuccess', file, res)
},
onFailed(file, res) {
alert(res.message)
console.log('onFailed', file, res)
},
onError(file, err, res) {
alert(err.message)
console.error('onError', file, err, res)
},
// // 用户自定义插入图片
// customInsert(res, insertFn) {
// console.log('customInsert', res)
// const imgInfo = res.data[0] || {}
// const { url, alt, href } = imgInfo
// if (!url) throw new Error(`Image url is empty`)
// // 自己插入图片
// console.log('自己插入图片', url)
// insertFn(url, alt, href)
// },
// // 用户自定义上传图片
// customUpload(file, insertFn) {
// console.log('customUpload', file)
// return new Promise((resolve) => {
// // 插入一张图片,模拟异步
// setTimeout(() => {
// const src = `https://www.baidu.com/img/flexible/logo/pc/result@2.png?r=${Math.random()}`
// insertFn(src, '百度 logo', src)
// resolve('ok')
// }, 500)
// })
// },
// // 自定义选择图片(如图床)
// customBrowseAndUpload(insertFn) {
// alert('自定义选择图片,如弹出图床')
// // 插入一张图片,模拟异步
// setTimeout(() => {
// const src = 'https://www.baidu.com/img/flexible/logo/pc/result@2.png'
// insertFn(src, '百度 logo', src) // 插入图片
// }, 500)
// },
}
const editor = createEditor({
selector: '#editor-container',
html: '',
config: editorConfig,
mode: 'default', // or 'simple'
})
const toolbarConfig = {}
const toolbar = createToolbar({
editor,
selector: '#toolbar-container',
config: toolbarConfig,
mode: 'default', // or 'simple'
})
layui.use(['layedit','table','upload','element','form','layer'], function(){
var layedit = layui.layedit
,table = layui.table
,form = layui.form
,layer = layui.layer
,upload = layui.upload
,element = layui.element
,$ = layui.jquery;
table.render({
elem: '#classClass'
,url: '/admin_new/list'
,toolbar: '#toolbarDemo'
,cellMinWidth: 80 //全局定义常规单元格的最小宽度,layui 2.2.1 新增
,defaultToolbar: ['filter', 'exports', 'print', { //自定义头部工具栏右侧图标。如无需自定义,去除该参数即可
title: '提示'
,layEvent: 'LAYTABLE_TIPS'
,icon: 'layui-icon-tips'
}]
,where: {type: 2}
,page: true
,cols: [[
{field:'id', width:80, title: '序号'}
,{field:'title',width:180, title: '新闻标题'}
,{templet: '#imgshow',width:180, title: '新闻图片'}
,{field:'content', title: '新闻简介',minWidth:'500'}
,{field:'created',width:180, title: '修改时间'}
,{templet: '#tool',width:200, title: '操作'}
]]
});
table.on('tool(classClass)', function(obj){
console.log(obj)
var data = obj.data;
if(obj.event === 'del'){
layer.confirm('确定要删除数据嘛', function(index){
$.post('/admin_index/delete',{tablename:'active',id:data.id},function(obj){
if(obj.status != 1){
return layer.msg(obj.msg);
}else{
//示范一个公告层
layer.open({
type: 1
,title: false //不显示标题栏
,closeBtn: false
,area: '300px;'
,shade: 0.8
,id: 'LAY_layuipro' //设定一个id,防止重复弹出
,btn: '返回列表'
,btnAlign: 'c'
,moveType: 1 //拖拽模式,0或者1
,content: '<div style="padding: 50px; line-height: 22px; background-color: #393D49; color: #fff; font-weight: bold;font-size: 20px;text-align: center;">删除成功</div>'
,yes: function(){
history.go(0)
}
});
}
});
});
}
});
$('.site-demo-layedit').on('click', function(){
var type = $(this).data('type');
active[type] ? active[type].call(this) : '';
});
//监听提交
form.on('submit(subdata)', function(data){
var datas = data.field
datas.content = editor.getHtml();
datas.type = 2;
$.post('/admin_new/save',data.field,function(obj){
if(obj.status != 1){
return layer.msg(obj.msg);
}else{
//示范一个公告层
layer.open({
type: 1
,title: false //不显示标题栏
,closeBtn: false
,area: '300px;'
,shade: 0.8
,id: 'LAY_layuipro' //设定一个id,防止重复弹出
,btn: '返回列表'
,btnAlign: 'c'
,moveType: 1 //拖拽模式,0或者1
,content: '<div style="padding: 50px; line-height: 22px; background-color: #393D49; color: #fff; font-weight: bold;font-size: 20px;text-align: center;">添加成功</div>'
,yes: function(){
history.go(0)
}
});
}
});
return false;
});
//常规使用 - 普通图片上传
var uploadInst = upload.render({
elem: '#test1'
,url: '/admin_index/upload' //此处用的是第三方的 http 请求演示,实际使用时改成您自己的上传接口即可。
,before: function(obj){
//预读本地文件示例,不支持ie8
obj.preview(function(index, file, result){
$('#demo1').attr('src', result); //图片链接(base64)
});
element.progress('demo', '0%'); //进度条复位
layer.msg('上传中', {icon: 16, time: 0});
}
,done: function(res){
//如果上传失败
if(res.status != 1){
return layer.msg('上传失败');
}
$('#img').val(res.data); //置空上传失败的状态
//上传成功的一些操作
//……
$('#demoText').html(''); //置空上传失败的状态
}
,error: function(){
//演示失败状态,并实现重传
var demoText = $('#demoText');
demoText.html('<span style="color: #FF5722;">上传失败</span> <a class="layui-btn layui-btn-xs demo-reload">重试</a>');
demoText.find('.demo-reload').on('click', function(){
uploadInst.upload();
});
}
//进度条
,progress: function(n, elem, e){
element.progress('demo', n + '%'); //可配合 layui 进度条元素使用
if(n == 100){
layer.msg('上传完毕', {icon: 1});
}
}
});
});
</script>
</body>
</html>