初始上传

This commit is contained in:
2026-04-04 17:27:12 +08:00
parent 4d80d28eb4
commit b7e11774ee
11191 changed files with 1588469 additions and 0 deletions

View File

@@ -0,0 +1,236 @@
<!-- 搜索框 -->
<div class="single-filter-box">
<button class="layui-btn" onclick="addAttr()">添加商品参数模板</button>
<div class="layui-form">
<div class="layui-input-inline">
<input type="text" name="search_keys" placeholder="请输入商品参数模板名称" autocomplete="off" class="layui-input">
<button type="button" class="layui-btn layui-btn-primary" lay-filter="search" lay-submit>
<i class="layui-icon">&#xe615;</i>
</button>
</div>
</div>
</div>
<!-- 列表 -->
<table id="attr_class_list" lay-filter="attr_class_list"></table>
<!-- 操作 -->
<script type="text/html" id="operation">
<div class="table-btn">
<a class="layui-btn" lay-event="edit">管理</a>
<a class="layui-btn" lay-event="delete">删除</a>
</div>
</script>
<script type="text/html" id="addAttr">
<div class="layui-form">
<div class="layui-form-item">
<label class="layui-form-label mid"><span class="required">*</span></label>
<div class="layui-input-block">
<input name="class_name" type="text" placeholder="请输入商品参数名称" lay-verify="required" class="layui-input len-mid" maxlength="20">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label mid">排序</label>
<div class="layui-input-block">
<input name="sort" type="number" value="0" placeholder="请输入排序" lay-verify="num" class="layui-input len-short">
</div>
<p class="word-aux mid">排序值必须为整数</p>
</div>
<div class="form-row mid">
<button class="layui-btn" lay-submit lay-filter="save">保存</button>
<button class="layui-btn layui-btn-primary" onclick="closeAttrLayer()">返回</button>
</div>
</div>
</script>
<script type="text/html" id="editSort">
<input name="sort" type="number" onchange="editSort({{d.class_id}},this)" value="{{d.sort}}" placeholder="请输入排序" class="layui-input edit-sort len-short">
</script>
<script>
var laytpl, add_attr_index = -1,
form, table;
layui.use(['form', 'laytpl'], function() {
var repeat_flag = false; //防重复标识
laytpl = layui.laytpl;
form = layui.form;
form.render();
table = new Table({
elem: '#attr_class_list',
url: ns.url("shop/goodsattr/lists"),
cols: [
[ {
field: 'class_name',
title: '模板名称',
width: '50%',
unresize: 'false'
}, {
field: 'sort',
unresize: 'false',
title: '排序',
width: '30%',
sort : true,
templet: '#editSort'
}, {
title: '操作',
toolbar: '#operation',
unresize: 'false',
align : 'right'
}]
]
});
/**
* 监听工具栏操作
*/
table.tool(function(obj) {
var data = obj.data;
switch (obj.event) {
case 'edit':
location.hash = ns.hash("shop/goodsattr/editattr?class_id=" + data.class_id);
break;
case 'delete':
deleteAttr(data.class_id);
break;
}
});
/**
* 删除
*/
function deleteAttr(class_id) {
layer.confirm('删除商品参数后将会删除对应关联关系,移除后数据会发生不可逆转的行为,请谨慎操作', function(index) {
layer.close(index);
$.ajax({
url: ns.url("shop/goodsattr/deleteAttr"),
data: {
class_id
},
dataType: 'JSON',
type: 'POST',
success: function(res) {
layer.msg(res.message);
if (res.code == 0) {
table.reload();
}
}
});
});
}
table.on("sort",function (obj) {
table.reload({
page: {
curr: 1
},
where: {
order:obj.field,
sort:obj.type
}
});
});
/**
* 搜索功能
*/
form.on('submit(search)', function(data) {
table.reload({
page: {
curr: 1
},
where: data.field
});
});
form.on('submit(save)', function(data) {
if (repeat_flag) return false;
repeat_flag = true;
$.ajax({
url: '{:addon_url("shop/goodsattr/addAttr")}',
data: data.field,
dataType: 'JSON',
type: 'POST',
success: function(data) {
layer.msg(data.message);
if (data.code == 0) {
table.reload();
layer.close(add_attr_index);
}
repeat_flag = false;
}
});
return false;
});
/**
* 表单验证
*/
form.verify({
num: function(value) {
if (value == '') {
return;
}
if (value % 1 != 0) {
return '排序数值必须为整数';
}
if (value < 0) {
return '排序数值必须为大于0';
}
}
});
});
// 监听单元格编辑
function editSort(id, event) {
var data = $(event).val();
if (!new RegExp("^-?[1-9]\\d*$").test(data)) {
layer.msg("排序号只能是整数");
return;
}
if(data<0){
layer.msg("排序号必须大于0");
return ;
}
$.ajax({
type: 'POST',
url: ns.url("shop/goodsattr/modifySort"),
data: {
sort: data,
class_id: id
},
dataType: 'JSON',
success: function(res) {
layer.msg(res.message);
if (res.code == 0) {
table.reload();
}
}
});
}
function addAttr() {
var add_attr = $("#addAttr").html();
laytpl(add_attr).render({}, function(html) {
add_attr_index = layer.open({
title: '添加商品参数',
skin: 'layer-tips-class',
type: 1,
area: ['500px', '250px'],
content: html
});
});
}
function closeAttrLayer() {
layer.close(add_attr_index);
}
</script>