first commit

This commit is contained in:
云泽网
2025-07-27 21:42:34 +08:00
commit c1cce5ccb4
2779 changed files with 340042 additions and 0 deletions
@@ -0,0 +1,226 @@
{layout name="layout2" /}
<style>
.layui-form-label {
color: #6a6f6c;
width: 100px;
}
</style>
<link rel="stylesheet" href="/static/admin/css/goods.css" media="all">
<div class="layui-form" lay-filter="layuiadmin-form-comment" id="layuiadmin-form-comment" style="padding: 20px 30px 0 0;">
<input type="hidden" name="goods_id" value="{$goods_id}">
<!--会员头像-->
<div class="layui-form-item">
<label class="layui-form-label"><span class="form-label-asterisk">*</span>会员头像:</label>
<div style="height:80px;line-height:80px">
<div class="master-image"></div>
<div class="goods-img-add goods-image" lay-verify="image" lay-verType="tips" switch-tab="0"
verify-msg="选择图片"></div>
</div>
</div>
<!--会员昵称-->
<div class="layui-form-item">
<label class="layui-form-label"><span class="form-label-asterisk">*</span>会员昵称:</label>
<div class="layui-input-inline">
<input type="text" name="nickname" lay-verify="required" lay-verType="tips" placeholder="请输入会员昵称"
autocomplete="off" class="layui-input">
</div>
</div>
<!--会员等级-->
<div class="layui-form-item">
<label class="layui-form-label"><span class="form-label-asterisk">*</span>会员等级:</label>
<div class="layui-inline">
<div class="layui-input-inline">
<select id="level" name="level" style="height:80px;width: 80px">
<option value=" ">请选择会员等级</option>
{foreach $user_level as $item}
<option value="{$item.id}">{$item.name}</option>
{/foreach}
</select>
</div>
</div>
</div>
<!--评价时间-->
<div class="layui-form-item">
<label class="layui-form-label"><span class="form-label-asterisk">*</span>评价时间:</label>
<div class="layui-input-inline">
<input type="text" name="comment_time" class="layui-input time" autocomplete="off">
</div>
</div>
<!--评价等级-->
<div class="layui-form-item">
<label class="layui-form-label"><span class="form-label-asterisk">*</span>评价等级:</label>
<div class="layui-input-block">
<legend type="text" id="star"></legend>
<input type="hidden" name="score" id="score">
</div>
</div>
<!--评价图片-->
<div class="layui-form-item">
<label class="layui-form-label">评价图片:</label>
<div class="" style="height:80px;line-height:80px">
<ul></ul>
<div class="goods-img-add" lay-verify="goods_image" lay-verType="tips" switch-tab="0"
verify-msg="至少选择一张图片"></div>
<br><br>
</div>
</div>
<!--评价内容-->
<div class="layui-form-item">
<label class="layui-form-label"><span class="form-label-asterisk">*</span>评价内容:</label>
<div class="layui-input-inline" style="width: 350px">
<textarea name="comment" placeholder="请输入评价内容" class="layui-textarea"></textarea>
</div>
</div>
<div class="layui-form-item layui-hide">
<input type="button" lay-submit lay-filter="add-submit" id="add-submit" value="确认">
</div>
</div>
<script type="text/html" id="template-goods-image">
<li class="goods-li">
<input name="comment_image[]" type="hidden" value="{image-src}">
<img class="goods-img goods_image" src="{image-src}">
<a class="goods-img-del-x" style="display: none;">x</a></li>
</script>
<script>
layui.config({
version: "{$front_version}",
base: '/static/plug/layui-admin/dist/layuiadmin/'
}).extend({
index: 'lib/index'
}).use(['index', 'form', 'like', 'laydate', 'rate'], function () {
var $ = layui.$
, form = layui.form
, rate = layui.rate
, like = layui.like
, laydate = layui.laydate;
// 星级评分
rate.render({
elem: '#star',
choose: function (value) {
$('#score').val(value);
},
text: true,
setText: function (value) {
if (value < 3 && value > 0) {
this.span.text("差评")
} else if (value === 3) {
this.span.text("中评")
} else if (value > 3) {
this.span.text("好评")
} else {
this.span.text("")
}
}
});
// 日期选择
lay('.time').each(function () {
laydate.render({
elem: this,
type: 'datetime',
trigger: 'click',
format: 'yyyy-MM-dd HH:mm:ss',
max : getCurrentDate()
});
});
// 主图显示删除按钮
$(document).on('mouseenter', '.master-image', function () {
$(this).children('.goods-image-del').show();
})
$(document).on('mouseleave', '.master-image', function () {
$(this).children('.goods-image-del').hide();
});
$(document).on('click', '.master-image', function () {
var src = $(this).children('img').attr('src');
like.showImg(src, 400);
});
// 多图显示删除按钮
$(document).on('mouseenter', '.goods-li', function () {
$(this).children().last().show();
});
$(document).on('mouseleave', '.goods-li', function () {
$(this).children().last().hide();
});
$(document).on('click', '.goods-li', function () {
var src = $(this).children('img').attr('src');
like.showImg(src, 400);
});
// 删除图片
$(document).on('click', '.goods-img-del-x', function () {
if ($(this).hasClass('goods-image-del')) {
$(this).parent().next().show();
$(this).parent().children().remove();
}
$(this).parent().remove();
return false;
});
// 上传图片
like.imageUpload('.goods-img-add', function (uris, element) {
if (element.hasClass('goods-image')) {
if (uris.length > 1) {
layer.msg('最多最能选中1张图片');
return;
}
var html = '' +
'<input name="avatar" type="hidden" value="' + like.getUrlFileName(uris[0], '{$storageUrl}') + '">' +
' <img class="goods-img" src="' + uris[0] + '">\n' +
'<a class="goods-img-del-x goods-image-del">x</a>';
element.prev().append(html);
element.css('display', 'none');
return 0;
}
var count = element.prev().children().length;
count = !count ? 0 : count;
if (count + uris.length > 8) {
layer.msg('最多最能选中8张图片');
return;
}
uris = uris.reverse();
for (var i in uris) {
var uri = uris[i];
var template_goods_image = $('#template-goods-image').html();
element.prev().append(template_goods_image.replace('{image-src}', like.getUrlFileName(uri, '{$storageUrl}')).replace('{image-src}', uri));
}
}, true);
function getCurrentDate() {
var date = new Date();
var seperator1 = "-";
var seperator2 = ":";
var month = date.getMonth() + 1;
var nowDate = date.getDate();
if (month >= 1 && month <= 9) {
month = "0" + month;
}
if (nowDate >= 0 && nowDate <= 9) {
nowDate = "0" + nowDate;
}
var strDate = date.getFullYear() + seperator1 + month + seperator1 + nowDate;
var strTime = date.getHours() + seperator2 + date.getMinutes() + seperator2 + date.getSeconds();
var currentDate = strDate + " " + strTime;
return currentDate;
}
});
</script>
@@ -0,0 +1,213 @@
{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>
</div>
</div>
</div>
</div>
<div class="layui-tab layui-tab-card" lay-filter="tab-all">
<div class="layui-tab-item layui-show">
<div class="layui-card">
<div class="layui-form layui-card-header layuiadmin-card-header-auto">
<div class="layui-form-item type">
<div class="layui-inline">
<label class="layui-form-label">商品名称:</label>
<div class="layui-input-block">
<input type="text" name="keyword" id="keyword" 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="category_id" id="category_id" placeholder="请选择商品分类">
<option value="">全部</option>
{foreach $category_list as $val }
<option value="{$val.id}">{$val.html}{$val.name}</option>
{/foreach}
</select>
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">商品状态:</label>
<div class="layui-input-block">
<select name="status" id="status" placeholder="请选择商品状态">
<option value="">全部</option>
{foreach $status_list as $key => $val}
<option value="{$key}">{$val}</option>
{/foreach}
</select>
</div>
</div>
<div class="layui-inline">
<button class="layui-btn layui-btn-sm layuiadmin-btn-goods {$view_theme_color}"
lay-submit lay-filter="goods-search">查询
</button>
<button class="layui-btn layui-btn-sm layuiadmin-btn-goods layui-btn-primary "
lay-submit lay-filter="goods-clear-search">清空查询
</button>
</div>
</div>
</div>
<div class="layui-card-body">
<table id="goods-lists" lay-filter="goods-lists"></table>
<script type="text/html" id="goods-info">
<img src="{{d.image}}" style="height:60px;width: 60px;margin-right: 5px;"
class="image-show"> {{d.name}}
</script>
<script type="text/html" id="like-operation">
<a class="layui-btn layui-btn-normal layui-btn-sm" lay-event="add-comment">添加评论</a>
</script>
</div>
</div>
</div>
</div>
</div>
</div>
<script>
layui.config({
version: "{$front_version}",
base: '/static/plug/layui-admin/dist/layuiadmin/' //静态资源所在路径
}).extend({
index: 'lib/index' //主入口模块
}).use(['index', 'table', 'like', 'form'], function () {
var $ = layui.$
, form = layui.form
, table = layui.table
, like = layui.like
, element = layui.element;
//监听搜索
form.on('submit(goods-search)', function (data) {
var field = data.field;
//执行重载
table.reload('goods-lists', {
where: field,
page: {curr: 1}
});
});
//清空查询
form.on('submit(goods-clear-search)', function () {
$('#keyword').val(''); //清空输入框
$('#category_id').val(''); //清空输入框
$('#status').val(''); //清空输入框
form.render('select');
//刷新列表
table.reload('goods-lists', {
where: [],
page: {curr: 1}
});
});
$('.layui-btn.layuiadmin-btn-goods').on('click', function () {
var type = $(this).data('type');
active[type] ? active[type].call(this) : '';
});
//监听工具条
table.on('tool(goods-lists)', function (obj) {
var id = obj.data.id;
if (obj.event === 'add-comment') {
layer.open({
type: 2
, title: '添加评论'
, content: '{:url("CommentHelper/add")}?id=' + id
, area: ['90%', '90%']
, btn: ['确定', '取消']
, yes: function (index, layero) {
var iframeWindow = window['layui-layer-iframe' + index]
, submitID = 'add-submit'
, submit = layero.find('iframe').contents().find('#' + submitID);
//监听提交
iframeWindow.layui.form.on('submit(' + submitID + ')', function (data) {
var field = data.field;
like.ajax({
url: '{:url("CommentHelper/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('goods-lists');
}
}
});
});
submit.trigger('click');
}
});
}
});
//图片放大
$(document).on('click', '.image-show', function () {
var src = $(this).attr('src');
like.showImg(src, 600);
});
var cols = [
{field: 'name', title: '商品名称', width: 320, toolbar: '#goods-info'}
, {field: 'cate_name', width: 160, title: '商品分类'}
, {field: 'price', width: 180, title: '价格'}
, {field: 'stock', width: 100, title: '总库存'}
, {field: 'total_sales_sum', width: 100, title: '总销量'}
, {field: 'status_desc', width: 100, align: 'center', title: '状态'}
, {field: 'comment_count', width: 100, title: '评论数'}
, {field: 'create_time_desc', width: 160, title: '发布时间'}
, {fixed: 'right', title: '操作', align: 'center', width: 100, toolbar: '#like-operation'}
];
table.render({
id: 'goods-lists'
, elem: '#goods-lists'
, url: '{:url("CommentHelper/lists")}'
, cols: [cols]
, title: '商品表'
, page: true
, text: {none: '暂无数据!'}
, parseData: function (res) {
return {
"code": res.code,
"msg": res.msg,
"count": res.data.count, //解析数据长度
"data": res.data.list, //解析数据列表
};
}
, 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) {
$($(".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)
}
});
});
</script>