添加网站文件

This commit is contained in:
2025-12-22 13:59:40 +08:00
commit 117aaf83d1
19468 changed files with 2111999 additions and 0 deletions

View File

@@ -0,0 +1,168 @@
{layout name="layout2" /}
<style>
.layui-form-label {
color: #6a6f6c;
}
.goods-li {
float: left;
opacity: 1;
position: relative;
}
.goods-img {
width: 80px;
height: 80px;
padding: 4px;
}
.goods-img-del-x {
position: absolute;
z-index: 100;
top: -4px;
right: -2px;
width: 20px;
height: 20px;
font-size: 16px;
line-height: 16px;
color: #fff;
text-align: center;
cursor: pointer;
background: hsla(0, 0%, 60%, .6);
border-radius: 10px;
}
#image{
left:110px;
}
#notice{ left:110px;}
</style>
<div class="layui-form" lay-filter="layuiadmin-form-category" id="layuiadmin-form-category" style="padding: 20px 30px 0 0;">
<input type="hidden" value="0" name="id">
<div class="layui-form-item">
<label class="layui-form-label"><font color="red">*</font>文章标题</label>
<div class="layui-input-block">
<input type="text" name="title" lay-verify="required" lay-verType="tips" placeholder="请输入标题" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"><font color="red">*</font>文章分类</label>
<div class="layui-input-block">
<select name="cid" placeholder="请选择文章分类" >
<option value="0">请选择分类</option>
{foreach $category_list as $val}
<option value="{$val['id']}">{$val['name']}</option>
{/foreach}
</select>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">文章简介</label>
<div class="layui-input-block">
<input type="text" name="synopsis" placeholder="请输入文章简介" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">文章封面图</label>
<div class="layui-input-inline">
<div class="" style="height:80px;line-height:80px">
<input name="image" type="hidden" value="">
<div class="goods-img-add"></div>
</div>
</div>
<div class="layui-form-item">
<label class=" layui-form-mid layui-word-aux" id="image">建议尺寸500*500像素</label>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">商品公告</label>
<div class="layui-input-inline" id="" >
<input type="radio" name="is_notice" lay-filter="is_notice" style="width: 500px" value=1 title="是" checked >
<input type="radio" name="is_notice" lay-filter="is_notice" style="width: 500px" value=0 title="否">
</div>
<div class="layui-form-item">
<label class=" layui-form-mid layui-word-aux" id="notice">商城公告会在商城首页的新闻速递显示</label>
</div>
</div>
<!-- <div class="layui-form-item">-->
<!-- <label class="layui-form-label">文章简介</label>-->
<!-- <div class="layui-input-block">-->
<!-- <textarea name="synopsis" required lay-verify="required" lay-verType="tips" placeholder="请输入文章简介" class="layui-textarea"></textarea>-->
<!-- </div>-->
<!-- </div>-->
<div class="layui-form-item">
<label class="layui-form-label">文章排序</label>
<div class="layui-input-block">
<input type="number" name="sort" placeholder="请输入排序" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">文章状态</label>
<div class="layui-input-inline" >
<input type="radio" name="is_show" lay-filter="is_show" style="width: 500px" value=1 title="显示" checked >
<input type="radio" name="is_show" lay-filter="is_show" style="width: 500px" value=0 title="隐藏">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">文章内容</label>
<div class="layui-input-block">
<textarea name="content" id="content" lay-verify="content" class="field-content"></textarea>
</div>
</div>
<div class="layui-form-item layui-hide">
<input type="button" lay-submit lay-filter="add-article-submit" id="add-article-submit" value="确认">
</div>
</div>
<script>
layui.config({
version:"{$front_version}",
base: '/static/plug/layui-admin/dist/layuiadmin/' //静态资源所在路径
}).extend({
index: 'lib/index' //主入口模块
}).use(['index', 'form','likeedit','like'], function(){
var $ = layui.$
,form = layui.form
,like = layui.like
,likeedit = layui.likeedit;
//富文本上传图片
likeedit.set({
uploadImage: {
url: "{:url('file/image')}",
type: 'post'
}
})
var content = likeedit.build('content'); //建立编辑器
form.verify({
content: function() {
likeedit.sync(content)
}
})
//上传图片
like.imageUpload('.goods-img-add', function (uri, element) {
if(uri.length>1){
layer.msg('最多最能选中1张图片');
return;
}
var html = '<div class="goods-li">\n' +
'<img class="goods-img" ' +
'src="' + uri[0] + '">' +
'<a class="goods-img-del-x">x</a>' +
'</div>';
element.prev().val(like.getUrlFileName(uri[0], '{$storageUrl}'));
element.parent().append(html);
element.css('display','none');
}, true);
//删除图片
$(document).on('click', '.goods-img-del-x', function () {
$(this).parent().siblings('input').val('');
$(this).parent().prev().css('display','block');
$(this).parent().remove();
});
//显示图片
$(document).on('click', '.goods-img', function () {
var image = $(this).attr('src');
like.showImg(image,600);
});
});
</script>

View File

@@ -0,0 +1,190 @@
{layout name="layout2" /}
<style>
.layui-form-label {
color: #6a6f6c;
}
.goods-li {
float: left;
opacity: 1;
position: relative;
}
.goods-img {
width: 80px;
height: 80px;
padding: 4px;
}
.goods-img-del-x {
position: absolute;
z-index: 100;
top: -4px;
right: -2px;
width: 20px;
height: 20px;
font-size: 16px;
line-height: 16px;
color: #fff;
text-align: center;
cursor: pointer;
background: hsla(0, 0%, 60%, .6);
border-radius: 10px;
}
#image{
left:110px;
}
#notice{ left:110px;}
</style>
<div class="layui-form" lay-filter="layuiadmin-form-category" id="layuiadmin-form-category" style="padding: 20px 30px 0 0;">
<input type="hidden" value="{$article.id}" name="id">
<div class="layui-form-item">
<label class="layui-form-label"><font color="red">*</font>文章标题</label>
<div class="layui-input-block">
<input type="text" name="title" value="{$article.title}" lay-verify="required" lay-verType="tips" placeholder="请输入标题" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"><font color="red">*</font>文章分类</label>
<div class="layui-input-block">
<select name="cid" placeholder="请选择文章分类" >
{foreach $category_list as $item => $val}
<option value="{$item}" {if condition="$item eq $article.cid "}selected="selected"{/if} >{$val.name}</option>
{/foreach}
</select>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">文章简介</label>
<div class="layui-input-block">
<input type="text" name="synopsis" value="{$article.synopsis}" placeholder="请输入文章简介" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">文章封面图</label>
<div class="layui-input-inline">
<div style="height:80px;line-height:80px">
<input name="image" type="hidden" value="{$article.image}">
{if !empty($article.image)}
<div class="goods-img-add" style="display: none" ></div>
<div class="goods-li">
<img class="goods-img" src="{$article.abs_image}">
<a class="goods-img-del-x" style="display: none">x</a>
</div>
{else}
<div class="goods-img-add" ></div>
{/if}
</div>
</div>
<div class="layui-form-item">
<label class=" layui-form-mid layui-word-aux" id="image">建议尺寸500*500像素</label>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">商品公告</label>
<div class="layui-input-inline" id="" >
<input type="radio" name="is_notice" lay-filter="is_notice" style="width: 500px" value=1 title="是" {if condition="$article.is_notice eq 1" }checked{/if}>
<input type="radio" name="is_notice" lay-filter="is_notice" style="width: 500px" value=0 title="否"{if condition="$article.is_notice eq 0" }checked{/if}>
</div>
<div class="layui-form-item">
<label class=" layui-form-mid layui-word-aux" id="notice">商城公告会在商城首页的新闻速递显示</label>
</div>
</div>
<!-- <div class="layui-form-item">-->
<!-- <label class="layui-form-label">文章简介</label>-->
<!-- <div class="layui-input-block">-->
<!-- <textarea name="synopsis" lay-verify="required" lay-verType="tips" placeholder="请输入文章简介" class="layui-textarea">{$article['synopsis']}</textarea>-->
<!-- </div>-->
<!-- </div>-->
<div class="layui-form-item">
<label class="layui-form-label">文章排序</label>
<div class="layui-input-block">
<input type="number" value="{$article.sort}" name="sort" placeholder="请输入排序" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">文章状态</label>
<div class="layui-input-inline" >
<input type="radio" name="is_show" lay-filter="is_show" style="width: 500px" value=1 title="显示" {if condition="$article.is_show eq 1" }checked{/if}>
<input type="radio" name="is_show" lay-filter="is_show" style="width: 500px" value=0 title="隐藏"{if condition="$article.is_show eq 0" }checked{/if}>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">文章内容</label>
<div class="layui-input-block">
<textarea name="content" id="content" lay-verify="content" class="field-content">{$article.content}</textarea>
</div>
</div>
<div class="layui-form-item layui-hide">
<input type="button" lay-submit lay-filter="edit-article-submit" id="edit-article-submit" value="确认">
</div>
</div>
<script>
layui.config({
version:"{$front_version}",
base: '/static/plug/layui-admin/dist/layuiadmin/' //静态资源所在路径
}).extend({
index: 'lib/index' //主入口模块
}).use(['index', 'form','likeedit','like'], function(){
var $ = layui.$
,form = layui.form
,like = layui.like
,likeedit = layui.likeedit;
//富文本上传图片
likeedit.set({
uploadImage: {
url: "{:url('file/image')}",
type: 'post'
}
})
var content = likeedit.build('content'); //建立编辑器
form.verify({
content: function() {
likeedit.sync(content)
}
})
//上传图片
like.imageUpload('.goods-img-add', function (uri, element) {
if(uri.length>1){
layer.msg('最多最能选中1张图片');
return;
}
var html = '<div class="goods-li">\n' +
'<img class="goods-img" ' +
'src="' + uri[0] + '">' +
'<a class="goods-img-del-x">x</a>' +
'</div>';
element.prev().val(like.getUrlFileName(uri[0], '{$storageUrl}'));
element.parent().append(html);
element.css('display','none');
}, true);
//删除图片
$(document).on('click', '.goods-img-del-x', function () {
$(this).parent().siblings('input').val('');
$(this).parent().prev().css('display','block');
$(this).parent().remove();
});
//显示图片
$(document).on('click', '.goods-img', function () {
var image = $(this).attr('src');
like.showImg(image,600);
});
// 删除按钮的显示与隐藏
$(document).on('mouseover', '.goods-img', function () {
$(this).next().show();
});
$(document).on('mouseout', '.goods-img', function () {
$(this).next().hide();
});
$(document).on('mouseover', '.goods-img-del-x', function () {
$(this).show();
});
$(document).on('mouseout', '.goods-img-del-x', function () {
$(this).hide();
});
});
</script>

View File

@@ -0,0 +1,360 @@
{layout name="layout1" /}
<style>
.layui-table-cell {
height: auto;
}
</style>
<div class="layui-fluid">
<div class="layui-card">
<div class="layui-card-body">
<div class="layui-collapse like-layui-collapse" lay-accordion="" style="border:1px dashed #c4c4c4">
<div class="layui-colla-item">
<h2 class="layui-colla-title like-layui-colla-title" style="background-color: #fff">操作提示</h2>
<div class="layui-colla-content layui-show">
<p>*平台发布文章,可在商城新闻资讯栏目查看。</p>
<p>*设置文章为商城公告后,文章标题会在商城首页的新闻公告轮播显示。</p>
</div>
</div>
</div>
</div>
<div class="layui-form layui-card-header layuiadmin-card-header-auto">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">文章标题</label>
<div class="layui-input-block">
<input type="text" name="title" id="title" placeholder="请输入" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">文章分类</label>
<div class="layui-input-block">
<select name="cid" id="cid" >
<option value="">全部</option>
{foreach $category_list as $item => $val }
<option value="{$item}">{$val['name']}</option>
{/foreach}
</select>
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">商城公告</label>
<div class="layui-input-block">
<select name="is_notice" id="is_notice" >
<option value="">全部</option>
<option value="1"></option>
<option value="0"></option>
</select>
</div>
</div>
<div class="layui-inline">
<button class="layui-btn layui-btn-sm layuiadmin-btn-article {$view_theme_color}" lay-submit lay-filter="article-search">
<i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>
</button>
<button class="layui-btn layui-btn-sm layui-btn-primary layuiadmin-btn-article }" lay-submit lay-filter="article-clear-search">重置</button>
</div>
</div>
</div>
<div class="layui-card-body">
<div style="padding-bottom: 10px;">
<button class="layui-btn layui-btn-sm layuiadmin-btn-article {$view_theme_color}" data-type="add">新增文章</button>
<!-- <button class="layui-btn layui-btn-sm layuiadmin-btn-article layui-btn-danger" data-type="batchdel">删除所选</button>-->
</div>
<table id="article-lists" lay-filter="article-lists"></table>
<script type="text/html" id="image">
<img src="{{d.image}}" style="height:auto;width: auto" class="image-show">
</script>
<script type="text/html" id="article-operation">
<a class="layui-btn layui-btn-normal layui-btn-sm" lay-event="edit">编辑</a>
<a class="layui-btn layui-btn-danger layui-btn-sm" lay-event="status_switch">
{{# if(d.is_show == 1){ }}
隐藏
{{# } else { }}
显示
{{# } }}
</a>
<a class="layui-btn layui-btn-danger layui-btn-sm" lay-event="del">删除</a>
</script>
</div>
</div>
</div>
<script>
layui.config({
version:"{$front_version}",
base: '/static/plug/layui-admin/dist/layuiadmin/' //静态资源所在路径
}).extend({
index: 'lib/index' //主入口模块
}).use(['index','table','like'], function(){
var $ = layui.$
,form = layui.form
,table = layui.table
,like = layui.like;
//图片放大
$(document).on('click', '.image-show', function () {
var src = $(this).attr('src');
like.showImg(src,600);
});
//监听搜索
form.on('submit(article-search)', function(data){
var field = data.field;
//执行重载
table.reload('article-lists', {
where: field,
page: {
curr: 1 //重新从第 1 页开始
},
});
});
//监听重置
form.on('submit(article-clear-search)', function(){
$('#title').val('');
$('#cid').val('');
$('#is_notice').val('');
form.render('select');
//刷新列表
table.reload('article-lists', {
where: [],
page: {
curr: 1 //重新从第 1 页开始
}
});
});
//事件
var active = {
add: function(){
layer.open({
type: 2
,title: '添加文章'
,content: '{:url("article/add")}'
,area: ['90%','90%']
,btn: ['确定', '取消']
,yes: function(index, layero){
var iframeWindow = window['layui-layer-iframe'+ index]
,submitID = 'add-article-submit'
,submit = layero.find('iframe').contents().find('#'+ submitID);
//监听提交
iframeWindow.layui.form.on('submit('+ submitID +')', function(data){
var field = data.field;
like.ajax({
url:'{:url("article/add")}',
data:field,
type:"post",
success:function(res)
{
if(res.code == 1)
{
layui.layer.msg(res.msg, {
offset: '15px'
, icon: 1
, time: 1000
});
layer.close(index); //关闭弹层
table.reload('article-lists'); //数据刷新
}
}
});
});
submit.trigger('click');
}
});
}
,batchdel:function(){ //删除所选
var checkStatus = table.checkStatus('article-lists')
,checkData = checkStatus.data; //得到选中的数据
//是否已选数据
if(checkData.length === 0){
return layer.msg('请选择数据');
}else {
//获取所选id
ids = [];
for (var i in checkData){
ids.push(checkData[i]['id']);
}
layer.confirm('确定删除所选文章信息?', function(index){
like.ajax({
url:'{:url("article/del")}',
data:{id:ids},
type:"post",
success:function(res)
{
if(res.code == 1)
{
layui.layer.msg(res.msg, {
offset: '15px'
, icon: 1
, time: 1000
});
layer.close(index); //关闭弹层
table.reload('article-lists'); //数据刷新
}
}
});
layer.close(index);
});
}
}
};
$('.layui-btn.layuiadmin-btn-article').on('click', function(){
var type = $(this).data('type');
active[type] ? active[type].call(this) : '';
});
table.render({
elem: '#article-lists'
,url: '{:url("Article/lists")}'
,cols: [[
{type: 'checkbox',title: '当页全选'}
,{field: 'title', title: '文章标题',width:150}
,{field: 'image', title: '文章封面图',toolbar: '#image',width:150}
,{field: 'cat_name', title: '文章分类',width:150}
,{field: 'is_notice', title:'商城公告', align: 'center',width:100}
,{field: 'is_show_text', title:'文章状态',align: 'center',width:100}
,{field: 'visit', title: '浏览量',width:100}
,{field: 'likes', title: '点赞量',width:100}
,{field: 'sort', title: '排序',sort:true,width:100}
,{field: 'create_time', title: '创建时间',width:160}
,{fixed: 'right', title: '操作', align: 'center', toolbar: '#article-operation',width:230}
]]
,page:true
,text: {none: '暂无数据!'}
,parseData: function(res){ //将原始数据解析成 table 组件所规定的数据
return {
"code":res.code,
"msg":res.msg,
"count": res.data.count, //解析数据长度
"data": res.data.lists, //解析数据列表
};
}
,done: function(res, curr, count){
setTimeout(function () {
// 解决操作栏因为内容过多换行问题
$(".layui-table-fixed-l .layui-table-body").removeAttr("style");
$(".layui-table-fixed-r .layui-table-body").removeAttr("style");
$(".layui-table-main tr").each(function (index, val) {
console.log($(val).height());
$($(".layui-table-fixed-l .layui-table-body tbody tr")[index]).height($(val).height());
$($(".layui-table-fixed-r .layui-table-body tbody tr")[index]).height($(val).height());
});
}, 100)
}
});
//监听工具条
table.on('tool(article-lists)', function(obj){
if(obj.event === 'del'){
var id = obj.data.id;
var title = obj.data.title;
layer.confirm('确定要删除文章:'+'<span style="color: red">'+title+'</span>', function(index){
like.ajax({
url:'{:url("article/del")}',
data:{'id':id},
type:"post",
success:function(res)
{
if(res.code == 1)
{
layui.layer.msg(res.msg, {
offset: '15px'
, icon: 1
, time: 1000
});
layer.close(index);
table.reload('article-lists');
}
}
});
});
}
if(obj.event === 'edit'){
var id = obj.data.id;
layer.open({
type: 2
,title: '编辑文章'
,content: '{:url("article/edit")}?id='+id
,area: ['90%','90%']
,btn: ['确定', '取消']
,yes: function(index, layero){
var iframeWindow = window['layui-layer-iframe'+ index]
,submitID = 'edit-article-submit'
,submit = layero.find('iframe').contents().find('#'+ submitID);
//监听提交
iframeWindow.layui.form.on('submit('+ submitID +')', function(data){
var field = data.field;
like.ajax({
url:'{:url("article/edit")}',
data:field,
type:"post",
success:function(res)
{
if(res.code == 1)
{
layui.layer.msg(res.msg, {
offset: '15px'
, icon: 1
, time: 1000
});
layer.close(index);
table.reload('article-lists');
}
}
});
});
submit.trigger('click');
}
})
}else if(obj.event === 'status_switch'){
var id = obj.data.id;
var status = obj.data.is_show;
var title = obj.data.title;
var confirm_text = '';
if (status == 1){
confirm_text = '确定隐藏文章:';
status = 0;
} else {
status = 1;
confirm_text = '确定显示文章:';
}
layer.confirm(confirm_text+'<span style="color: red">'+title+'</span>', function(index){
like.ajax({
url:'{:url("article/switchStatus")}',
data:{id:id,is_show:status},
type:"post",
success:function(res)
{
if(res.code == 1)
{
layui.layer.msg(res.msg, {
offset: '15px'
, icon: 1
, time: 1000
});
layer.close(index); //关闭弹层
table.reload('article-lists');
}
}
});
layer.close(index);
});
}
});
});
</script>