其余文件

This commit is contained in:
2026-04-14 17:46:22 +08:00
parent 294b68fe37
commit 3691f4db22
1343 changed files with 189847 additions and 0 deletions

View File

@ -0,0 +1,80 @@
{layout name="layout2" /}
<style>
.layui-form-label {
color: #6a6f6c;
width: 140px;
}
.layui-input-block{
margin-left:170px;
}
.reqRed::before {
content: '*';
color: red;
}
</style>
<div class="layui-form" lay-filter="layuiadmin-form-category" id="layuiadmin-form-category" style="padding: 20px 30px 0 0;">
<div class="layui-form-item">
<label class="layui-form-label reqRed">分类名称:</label>
<div class="layui-input-inline">
<input type="text" name="name" lay-verify="required" lay-verType="tips" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">分类图标:</label>
<div class="layui-input-inline">
<div class="like-upload-image">
<div class="upload-image-elem"><a class="add-upload-image"> + 添加图片</a></div>
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<span style="color: #a3a3a3;font-size: 9px">建议尺寸宽200像素*高200像素的jpgjpegpng图片</span>
</div>
<div class="layui-form-item">
<label class="layui-form-label">排序:</label>
<div class="layui-input-inline">
<input type="number" name="sort" value="255" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<span style="color: #a3a3a3;font-size: 9px">排序值必须为整数;数值越小,越靠前</span>
</div>
<div class="layui-form-item">
<label class="layui-form-label">显示状态:</label>
<div class="layui-input-inline">
<input type="radio" name="is_show" value="1" title="显示" checked>
<input type="radio" name="is_show" value="0" title="不显示">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">分类描述:</label>
<div class="layui-input-inline">
<textarea name="remark" autocomplete="off" class="layui-textarea"></textarea>
</div>
</div>
<div class="layui-form-item layui-hide">
<input type="button" lay-submit lay-filter="add-goods_category-submit" id="add-goods_category-submit" value="确认">
</div>
</div>
<script>
layui.config({
version:"{$front_version}",
base: '/static/lib' //静态资源所在路径
}).use(['form'], function(){
var $ = layui.$
,form = layui.form;
//上传图片
like.delUpload();
$(document).on("click", ".add-upload-image", function () {
like.imageUpload({
limit: 1,
field: "image",
that: $(this),
content: '/shop/file/lists?type=10'
});
})
})
</script>

View File

@ -0,0 +1,88 @@
{layout name="layout2" /}
<style>
.layui-form-label {
color: #6a6f6c;
width: 140px;
}
.layui-input-block{
margin-left:170px;
}
.reqRed::before {
content: '*';
color: red;
}
</style>
<div class="layui-form" lay-filter="layuiadmin-form-category" id="layuiadmin-form-category" style="padding: 20px 30px 0 0;">
<input type="hidden" name="id" value="{$detail.id}" />
<div class="layui-form-item">
<label class="layui-form-label reqRed">分类名称:</label>
<div class="layui-input-inline">
<input type="text" name="name" value="{$detail.name}" lay-verify="required" lay-verType="tips" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">分类图标:</label>
<div class="layui-input-inline">
{if $detail.image}
<div class="upload-image-div">
<img src="{$detail.image}" alt="img">
<input type="hidden" name="image" value="{$detail.image}">
<div class="del-upload-btn">x</div>
</div>
<div class="upload-image-elem" style="display:none;"><a class="add-upload-image"> + 添加图片</a></div>
{else}
<div class="upload-image-elem"><a class="add-upload-image"> + 添加图片</a></div>
{/if}
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<span style="color: #a3a3a3;font-size: 9px">建议尺寸宽200像素*高200像素的jpgjpegpng图片</span>
</div>
<div class="layui-form-item">
<label class="layui-form-label">排序:</label>
<div class="layui-input-inline">
<input type="number" name="sort" value="{$detail.sort}" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<span style="color: #a3a3a3;font-size: 9px">排序值必须为整数;数值越小,越靠前</span>
</div>
<div class="layui-form-item">
<label class="layui-form-label">显示状态:</label>
<div class="layui-input-inline">
<input type="radio" name="is_show" value="1" {if $detail.is_show == 1}checked{/if} title="显示">
<input type="radio" name="is_show" value="0" {if $detail.is_show == 0}checked{/if} title="不显示">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">分类描述:</label>
<div class="layui-input-inline">
<textarea name="remark" autocomplete="off" class="layui-textarea">{$detail.remark}</textarea>
</div>
</div>
<div class="layui-form-item layui-hide">
<input type="button" lay-submit lay-filter="edit-goods_category-submit" id="edit-goods_category-submit" value="确认">
</div>
</div>
<script>
layui.config({
version:"{$front_version}",
base: '/static/lib' //静态资源所在路径
}).use(['form'], function(){
var $ = layui.$
,form = layui.form;
// 图片上传
like.delUpload();
$(document).on("click", ".add-upload-image", function () {
like.imageUpload({
limit: 1,
field: "image",
that: $(this),
content: '/shop/file/lists?type=10'
});
})
})
</script>

View File

@ -0,0 +1,226 @@
{layout name="layout1" /}
<!-- 样式 -->
<style>
.layui-table-cell {
height: auto;
}
</style>
<!-- 操作提示 -->
<div class="layui-fluid">
<div class="layui-card" style="margin-top: 15px;">
<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-card-body">
<div class="add">
<button class="layui-btn layui-btn-sm layui-btn-goods_category {$view_theme_color}"
id="goods_category-add">新增商品分类
</button>
</div>
<!-- 数据表格 -->
<table id="shop_goods_category_lists" lay-filter="shop_goods_category_lists"></table>
<!-- 分类图标 -->
<script type="text/html" id="image">
<img src="{{d.image}}" style="height:80px;width:80px" class="image-show">
</script>
<!-- 是否显示 -->
<script type="text/html" id="is_show">
<input type="checkbox" lay-filter="switch-is_show" data-id={{d.id}} data-field='is_show'
lay-skin="switch" lay-text="显示|隐藏" {{# if(d.is_show){ }} checked {{# } }}/>
</script>
<!-- 操作列 -->
<script type="text/html" id="operate">
<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="del">删除</a>
</script>
</div>
</div>
</div>
</div>
<script>
layui.config({
version: "{$front_version}",
base: '/static/lib/'
}).use(['layer', 'table', 'form', 'element'], function () {
var $ = layui.jquery;
var layer = layui.layer;
var form = layui.form;
var table = layui.table;
table.render({
id: 'shop_goods_category_lists'
, elem: '#shop_goods_category_lists'
, url: "{:url('goods.category/lists')}"
, parseData: function (res) { // res 原始返回数据
return {
'code': res.code // 0 代表正常返回
, 'msg': res.msg // 提示消息
, 'count': res.data.count // 数据长度
, 'data': res.data.lists // 数据列表
}
}
, response: { // 重新设定返回的数据格式
statusCode: 1, // 成功的状态码默认0
}
, page: true // 开启分页
, limit: 10
, limits: [10, 20, 30, 40, 50]
, text: {
none: '暂无数据'
}
, cols: [[ // 设置表头,二维数组,方法渲染必填
{field: 'name', title: '分类名称', width: 120, align: 'center'},
{title: '分类图标', width: 250, templet: '#image', align: 'center'},
{title: '状态', templet: '#is_show', width: 120, align: 'center'},
{field: 'sort', title: '排序', width: 120, align: 'center'},
{fixed: 'right', title: '操作', align: 'center', toolbar: '#operate'}
]]
});
// 新增商品分类
$('#goods_category-add').click(function () {
layer.open({
type: 2
, title: '新增店铺商品分类'
, content: '/shop/goods.category/add'
, area: ['90%', '90%']
, btn: ['确认', '返回']
, btnAlign: 'c'
, yes: function (index, layero) {
var iframeWindow = window['layui-layer-iframe' + index]
, submitID = 'add-goods_category-submit'
, submit = layero.find('iframe').contents().find('#' + submitID);
//监听提交
iframeWindow.layui.form.on('submit(' + submitID + ')', function (data) {
var field = data.field;
console.log(data.field);
like.ajax({
url: '/shop/goods.category/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); //关闭弹层
location.reload();//刷新
}
}
});
});
// 触发子窗口表单提交事件
submit.trigger('click');
}
})
});
// 监听行工具条事件
table.on('tool(shop_goods_category_lists)', function (obj) {
var event = obj.event;
if (event === 'del') {
layer.confirm('确定删除商品分类:' + '<span style="color: red">' + obj.data.name + '</span>', function (index) {
like.ajax({
url: '/shop/goods.category/del',
data: {id: obj.data.id},
type: 'post',
dataType: 'json',
success: function (res) {
if (res.code === 1) {
layui.layer.msg(res.msg, {
offset: '15px'
, icon: 1
, time: 1000
}, function () {
layer.close(index); //关闭弹层
location.reload();//刷新
});
}
}
})
})
}
if (event === 'edit') {
layer.open({
type: 2
, title: '编辑店铺商品分类'
, content: '{:url("shop/goods.category/edit")}?id=' + obj.data.id
, area: ['90%', '90%']
, btn: ['确定', '取消']
, btnAlign: 'c'
, yes: function (index, layero) {
var iframeWindow = window['layui-layer-iframe' + index]
, submitID = 'edit-goods_category-submit'
, submit = layero.find('iframe').contents().find('#' + submitID);
//监听提交
iframeWindow.layui.form.on('submit(' + submitID + ')', function (data) {
var field = data.field; //获取提交的字段
like.ajax({
url: '{:url("shop/goods.category/edit")}',
data: field,
type: "post",
success: function (res) {
if (res.code == 1) {
layui.layer.msg(res.msg, {
offset: '15px'
, icon: 1
, time: 1000
}, function () {
layer.close(index); //关闭弹层
location.reload();//刷新
});
}
}
});
});
submit.trigger('click');
}
})
}
});
// 显示与隐藏
form.on('switch(switch-is_show)', function (obj) {
var id = obj.elem.attributes['data-id'].nodeValue
var status = 0;
if (this.checked) {
status = 1;
}
like.ajax({
url: '{:url("shop/goods.category/switchStatus")}',
data: {id: id, status: status},
type: 'post',
success: function (res) {
if (res.code == 1) {
layui.layer.msg(res.msg, {
offset: '15px'
, icon: 1
, time: 1000
});
} else {
layui.layer.msg(res.msg, {
offset: '15px'
, icon: 2
, time: 1000
}, function () {
location.reload();//刷新
});
}
}
})
})
});
</script>

View File

@ -0,0 +1,273 @@
{layout name="layout1" /}
<!-- 样式 -->
<style>
.layui-table-cell {
height: auto;
}
</style>
<!-- 操作提示 -->
<div class="layui-fluid">
<div class="layui-card" style="margin-top: 15px;">
<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-card-body">
<div class="layui-tab layui-tab-card" lay-filter="tabContainer">
<ul class="layui-tab-title">
<li data-type="1" class="layui-this">已回复评价</li>
<li data-type="0">待回复评价</li>
</ul>
<div class="layui-tab-content">
<!-- 搜索 -->
<div class="layui-form">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">评价信息:</label>
<div class="layui-input-inline">
<select name="search_type">
<option value="name">商品名称</option>
<option value="sn">会员编号</option>
<option value="nickname">会员昵称</option>
</select>
</div>
<div class="layui-input-inline">
<input type="text" name="search_word" class="layui-input" />
</div>
<label class="layui-form-label">评价等级:</label>
<div class="layui-input-inline">
<select name="goods_comment">
<option value="">全部</option>
<option value="1">好评</option>
<option value="2">中评</option>
<option value="3">差评</option>
</select>
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">显示状态:</label>
<div class="layui-input-inline">
<select name="status">
<option value="">全部</option>
<option value="1">显示</option>
<option value="2">隐藏</option>
</select>
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">日期范围:</label>
<div class="layui-input-inline" style="width: 390px">
<input type="text" class="layui-input" name="start_end" id="start_end">
</div>
</div>
<div class="layui-inline" style="margin-left: 20px;">
<button class="layui-btn layui-btn-normal" lay-submit lay-filter="search">查询</button>
<button class="layui-btn layui-btn-primary" lay-submit lay-filter="clear-search">重置</button>
</div>
</div>
</div>
</div>
</div>
<!-- 数据表格 -->
<table id="comment-lists" lay-filter="comment-lists"></table>
</div>
</div>
</div>
</div>
<script type="text/html" id="user-info">
<img src="{{d.avatar}}" style="height:80px;width: 80px;margin-right: 10px;" class="image-show">
<div class="layui-input-inline" style="text-align:left;width: 240px">
<p>会员编号{{d.sn}}</p>
<p style="width: 180px;text-overflow:ellipsis;overflow: hidden">昵称{{d.nickname}}</p>
<p>会员等级{{d.levelName}}</p>
</div>
</script>
<script type="text/html" id="goods-info">
<img src="{{d.item_image}}" style="height:80px;width: 80px;margin-right: 10px;" class="image-show">
<div class="layui-input-inline" style="text-align:left;width: 240px">
<p>{{d.goods_name}}</p>
<p style="width: 180px;text-overflow:ellipsis;overflow: hidden">{{d.spec_value_str}}</p>
</div>
</script>
<script type="text/html" id="image-lists">
{{# layui.each(d.comment_image, function(index, item){ }}
<img src="{{item}}" style="height:80px;width: 80px;margin-right: 10px;" class="image-show">
{{# }); }}
</script>
<script type="text/html" id="operate">
{{# if( d.type == 1 ){ }}
<button class="layui-btn layui-btn-normal layui-btn-sm" lay-event="changeReply">修改回复</button>
{{# } }}
{{# if( d.type == 0 ){ }}
<button class="layui-btn layui-btn-normal layui-btn-sm" lay-event="reply">商家回复</button>
{{# } }}
</script>
<script>
layui.config({
version: "{$front_version}",
base: '/static/lib/'
}).use(['layer', 'table', 'form', 'element', 'laydate'], function () {
var $ = layui.jquery;
var layer = layui.layer;
var form = layui.form;
var laydate = layui.laydate;
var table = layui.table;
var element = layui.element;
// 日期范围选择器
laydate.render({
elem: '#start_end',
type: 'datetime',
range: '~'
});
// 监听选项卡切换
element.on('tab(tabContainer)', function(data) {
// 获取类型
var type = $(this).attr('data-type');
// 重置搜索
$('input[name=search_word]').val('');
$('input[name=start_end]').val('');
$('select[name=search_type]').val('name');
$('select[name=goods_comment]').val('');
$('select[name=status]').val('');
form.render('select');
// 重新加载数据表格
getList(type);
});
// 监听查询
form.on('submit(search)', function(data){
var field = data.field;
// 执行重载
table.reload('comment-lists', {
where: field,
page: {curr: 1}
});
});
// 重置查询
form.on('submit(clear-search)', function(data){
// 重置搜索
$('input[name=search_word]').val('');
$('input[name=start_end]').val('');
$('select[name=search_type]').val('name');
$('select[name=goods_comment]').val('');
$('select[name=status]').val('');
form.render('select');
// 重新加载数据表格
table.reload('comment-lists', {
where: {},
page: {curr: 1}
});
});
// 首次进入
getList(1); // 1 已回复列表
function getList(type) {
table.render({
id: 'comment-lists'
,elem: '#comment-lists'
,url: "{:url('goods.comment/lists')}?type=" + type
, parseData: function(res) { // res 原始返回数据
return {
'code' : res.code // 0 代表正常返回
, 'msg' : res.msg // 提示消息
, 'count' : res.data.count // 数据长度
, 'data' : res.data.lists // 数据列表
}
}
, response: { // 重新设定返回的数据格式
statusCode: 1, // 成功的状态码默认0
}
, page: true // 开启分页
, limit: 10
, limits: [10, 20, 30, 40, 50]
, text: {
none: '暂无数据'
}
, cols: [[ // 设置表头,二维数组,方法渲染必填
{ title: '会员信息', width: 250, align: 'center', templet: '#user-info' },
{ title: '商品信息', width: 250, align: 'center', templet: '#goods-info' },
{ field: 'goods_comment_desc', title: '评分等级', width: 100,align: 'center' },
{ field: 'comment', title: '买家评价', width: 200, align: 'center' },
{ title: '评论图片', width: 250, align: 'center',templet: '#image-lists' },
{ field: 'reply', title: '商家回复', width: 200, align: 'center' },
{ field: 'status_desc', title: '显示状态', width: 100, align: 'center' },
{ field: 'create_time', title: '评价时间', width: 180, align: 'center' },
{ fixed: 'right' ,title: '操作',width: 160, align: 'center', toolbar: '#operate' }
]], done: function () {
setTimeout(function () {
$(".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());
});
}, 200);
}
});
}
table.on('tool(comment-lists)', function(obj) {
if(obj.event == 'reply') { // 商家回复
layer.prompt({
formType: 2,
value: '',
title: '商家回复',
area: ['500px', '180px'] //自定义文本域宽高
}, function(value, index, elem){
if($.trim(value) == '') {return false;}
like.ajax({
url: '{:url("goods.comment/reply")}',
data: {'id': obj.data.id, 'reply': value},
type: "post",
success: function (res) {
if(res.code == 1) {
layer.msg(res.msg);
}
table.reload('comment-lists', {
where: {},
page: {curr: 1}
});
}
});
layer.close(index);
});
}
if(obj.event == 'changeReply') { // 修改回复
layer.prompt({
formType: 2,
value: obj.data.reply,
title: '修改回复',
area: ['500px', '180px'] //自定义文本域宽高
}, function(value, index, elem){
if($.trim(value) == '') {return false;}
like.ajax({
url: '{:url("goods.comment/reply")}',
data: {'id': obj.data.id, 'reply': value},
type: "post",
success: function (res) {
if(res.code == 1) {
layer.msg(res.msg);
}
table.reload('comment-lists', {
where: {},
page: {curr: 1}
});
}
});
layer.close(index);
});
}
});
});
</script>

View File

@ -0,0 +1,906 @@
{layout name="layout2" /}
<link rel="stylesheet" href="/static/admin/css/goods.css" media="all">
<link href="__PUBLIC__/static/lib/layui/layeditor/layedit.css" rel="stylesheet"/>
<script src="__PUBLIC__/static/lib/layui/layeditor/index.js"></script>
<script src="__PUBLIC__/static/lib/layui/layeditor/ace/ace.js"></script>
<div class="layui-tab layui-tab-card">
<!--顶部切换页-->
<ul class="layui-tab-title">
<li class="goods-tab layui-this" style="color: #6a6f6c">基础设置</li>
<li class="goods-tab" style="color: #6a6f6c">规格型号</li>
<li class="goods-tab" style="color: #6a6f6c">商品详情</li>
<li class="goods-tab" style="color: #6a6f6c">销售设置</li>
<!-- <li class="goods-tab" style="color: #6a6f6c">分销设置</li>-->
</ul>
<!--切换内容-->
<div class="layui-tab-content layui-form">
<!--基础信息-->
{include file="goods/goods/goods_base" /}
<!--规格型号-->
{include file="goods/goods/goods_spec" /}
<!--商品详情-->
{include file="goods/goods/goods_content" /}
<!--销售设置-->
{include file="goods/goods/goods_sale_setting" /}
<div class="layui-form-item layui-hide">
<input type="button" lay-submit lay-filter="goods-submit" id="goods-submit" value="确认">
</div>
</div>
</div>
<script src="__PUBLIC__/static/common/js/array.js"></script>
<script>
var dragstart = 0;
var swop_element_ed = -1;
var create_table_by_spec = null;
var spec_table_data = [];
var spec_value_temp_id_number = 0;
layui.config({
version:"{$front_version}",
base: '/static/lib/'
}).extend({
likeedit: 'likeedit/likeedit'
}).use(['table', 'form', 'element', 'layEditor'], function() {
var form = layui.form
,$ = layui.$
, element = layui.element
// , likeedit = layui.likeedit;
, layEditor = layui.layEditor;
//---------------------------------------平台分类联动 begin ----------------------------------
var categorys = {$category_lists | raw};
setSelectFirst();
// 轮播图拖拽
$(function (){
$(document).on('dragstart', '#goodsImageContainer .upload-image-div', function (e) {
dragstart = e.offsetX;
});
$(document).on('dragend', '.upload-image-div', function (e) {
swop_element_ed = -1;
});
$(document).on('mousedown', '.upload-image-div', function (e) {
swop_element_ed = -1;
});
$(document).on('dragover', '.upload-image-div', function (e) {
e.preventDefault();
let swop_element = parseInt((e.clientX - dragstart) / 100) - 1;
swop_element = swop_element <= 0 ? 0 : swop_element;
const my_element = $(this).prevAll().length;
if (swop_element == my_element) {
return;
}
if (swop_element == swop_element_ed) {
return;
}
swop_element_ed = swop_element;
let first = $(this);
let second = $(this).parent().children().eq(swop_element);
let html = first.html();
first.html(second.html());
second.html(html);
});
});
function setSelectFirst(default_id) {
var category_select_html = '<option value="">请选择分类</option>';
for (var i in categorys) {
if (categorys[i]['pid'] == 0) {
category_select_html += '<option value="' + categorys[i]['id'] + '">' + categorys[i]['name'] + '</option>';
}
}
$('select[name="first_cate_id"]').html(category_select_html);
$('select[name="first_cate_id"]').val(default_id);
form.render('select');
}
function setSelectSecond(default_id, pid) {
pid = pid === undefined ? $('select[name="first_cate_id"]').val() : pid;
$('select[name="second_cate_id"]').html('<option value="">请选择分类</option>');
$('select[name="third_cate_id"]').html('<option value="">请选择分类</option>');
var category_select_html = '<option value="">请选择分类</option>';
for (var i in categorys) {
if (categorys[i]['pid'] == pid) {
category_select_html += '<option value="' + categorys[i]['id'] + '">' + categorys[i]['name'] + '</option>';
}
}
$('select[name="second_cate_id"]').html(category_select_html);
$('select[name="second_cate_id"]').val(default_id);
form.render('select');
}
function setSelectThird(default_id, pid) {
pid = pid === undefined ? $('select[name="second_cate_id"]').val() : pid;
$('select[name="third_cate_id"]').html('<option value="">请选择分类</option>');
var first_cate_id = $('select[name="first_cate_id"]').val();
var category_select_html = '<option value="">请选择分类</option>';
for (var i in categorys) {
if (categorys[i]['pid'] == pid) {
category_select_html += '<option value="' + categorys[i]['id'] + '">' + categorys[i]['name'] + '</option>';
}
}
$('select[name="third_cate_id"]').html(category_select_html);
$('select[name="third_cate_id"]').val(default_id);
form.render('select');
}
// 监听一级分类选择
form.on('select(first_category)', function (data) {
setSelectSecond('', data.value);
});
// 监听二级分类选择
form.on('select(second_category)', function (data) {
setSelectThird('', data.value);
});
//---------------------------------------平台分类联动 end ----------------------------------
// -------------------------------------- 下拉菜单渲染 begin -------------------------------
var shop_category_lists = {$shop_category_lists | raw}; // 店铺商品分类
var unit = {$unit_lists | raw};
var brands = {$brand_lists | raw};
var supplier = {$supplier_lists | raw};
var freight = {$freight_lists | raw};
//渲染商家分类
like.setSelect('', shop_category_lists, "shop_cate_id", '分类');
//渲染单位
like.setSelect('', unit, "unit_id", '单位');
//渲染品牌
like.setSelect('', brands, "brand_id", '品牌');
//渲染供应商
like.setSelect('', supplier, "supplier_id", '供应商');
//渲染运费模板
like.setSelect('', freight, "express_template_id", '运费模板');
// -------------------------------------- 下拉菜单渲染 end ---------------------------------
// ----------------------------------------图片/视频上传 begin -----------------------------
// 监听图片删除
like.delUpload();
// 商品封面图
$(document).on("click", "#image", function () {
like.imageUpload({
limit: 1,
field: "image",
that: $(this),
content: '{:url("file/lists")}?type=10'
});
})
// 商品分享海报
$(document).on("click", "#poster", function () {
like.imageUpload({
limit: 1,
field: "poster",
that: $(this),
content: '{:url("file/lists")}?type=10'
});
})
// 商品轮播图
$(document).on("click", "#goodsimage", function () {
like.imageUpload({
limit: 10,
field: "goods_image[]",
that: $(this),
content: '/shop/file/lists?type=10'
});
})
// 商品视频
$(document).on("click", "#video", function () {
like.videoUpload({
limit: 1,
field: "video",
that: $(this),
content: '/shop/file/videoList'
});
})
// 统一规格-规格图片
$(document).on("click", "#one_spec_image", function () {
like.imageUpload({
limit: 1,
field: "one_spec_image",
that: $(this),
content: '/shop/file/lists?type=10'
});
})
// 多规格-规格图片
$(document).on("click", ".more_spec_image", function () {
like.imageUpload({
limit: 1,
field: "spec_image[]",
that: $(this),
content: '/shop/file/lists?type=10',
isSpecImage: true
});
})
// 监听编辑时多规格图片删除按钮
$(document).on('mouseenter', '.goods-spec-img-div', function () {
$(this).find('.goods-spec-img-del-x').show();
});
$(document).on('mouseleave', '.goods-spec-img-div', function () {
$(this).find('.goods-spec-img-del-x').hide();
});
$(document).on('click', '.goods-spec-img-del-x', function () {
var key = 'spec_image[]' + $(this).parent().parent().parent().attr('spec-value-temp-ids');
$(this).parent().html('<input class="upload-spec-image" type="hidden" name="spec_image[]">' +
'<div class="upload-image-elem">' +
'<a class="add-upload-image more_spec_image"> + 添加图片</a>' +
'</div>');
spec_table_data[key] = '';
});
// ----------------------------------------图片/视频上传 end -----------------------------
//------------------------------------------数据验证 begin -------------------------------
function switchTab(number) {
$('.goods-tab').removeClass('layui-this');
$('.goods-content').removeClass('layui-show');
$('.goods-tab').eq(number).addClass('layui-this');
$('.goods-content').eq(number).addClass('layui-show');
}
form.verify({
custom_required: function (value, item) {
if (!$.trim(value)) {
switchTab($(item).attr('switch-tab'));
return $(item).attr('verify-msg');
}
},
status:function(value,item){
if(!$('input[name="status"]:checked').val()){
return $(item).attr('verify-msg');
}
},
one_spec_required: function (value, item) {
if ($('input[name="spec_type"]:checked').val() == 1) {
if (!value) {
switchTab($(item).attr('switch-tab'));
return $(item).attr('verify-msg');
}
}
},
add_more_spec: function (value, item) {
if ($('input[name="spec_type"]:checked').val() == 2) {
if ($('#more-spec-lists-table tbody tr').length == 0) {
switchTab($(item).attr('switch-tab'));
return $(item).attr('verify-msg');
}
}
},
more_spec_required: function (value, item) {
if ($('input[name="spec_type"]:checked').val() == 2) {
if (!value) {
switchTab($(item).attr('switch-tab'));
return $(item).attr('verify-msg');
}
}
},
one_volume: function (value, item) {
if ($('input[name="spec_type"]:checked').val() == 1) {
if (value && value < 0) {
switchTab($(item).attr('switch-tab'));
return '体积必须大于0';
}
}
},
one_weight: function (value, item) {
if ($('input[name="spec_type"]:checked').val() == 1) {
if (value && value < 0) {
switchTab($(item).attr('switch-tab'));
return '重量必须大于0';
}
}
},
one_market_price: function (value, item) {
if ($('input[name="spec_type"]:checked').val() == 1) {
if (value && value <= 0) {
switchTab($(item).attr('switch-tab'));
return '市场价必须大于0';
}
}
},
one_price: function (value, item) {
if ($('input[name="spec_type"]:checked').val() == 2) {
if (value && value <= 0) {
switchTab($(item).attr('switch-tab'));
return '价格必须大于0';
}
}
},
one_chengben_price: function (value, item) {
if ($('input[name="spec_type"]:checked').val() == 2) {
if (value && value <= 0) {
switchTab($(item).attr('switch-tab'));
return '成本价必须大于0';
}
}
},
more_market_price:function (value, item) {
if ($('input[name="spec_type"]:checked').val() == 2) {
if (value && value <= 0) {
switchTab($(item).attr('switch-tab'));
return '市场价必须大于0';
}
}
},
more_price:function (value, item) {
if ($('input[name="spec_type"]:checked').val() == 2) {
if (value && value < 0.01) {
switchTab($(item).attr('switch-tab'));
return '价格必须大于或等于0.01';
}
}
},
more_chengben_price:function (value, item) {
if ($('input[name="spec_type"]:checked').val() == 2) {
if (value && value <= 0) {
switchTab($(item).attr('switch-tab'));
return '成本价格必须大于0';
}
}
},
more_stock: function (value, item) {
if ($('input[name="spec_type"]:checked').val() == 2) {
if (value && value < 0) {
switchTab($(item).attr('switch-tab'));
return '库存必须大于0';
}
}
},
more_weight: function (value, item) {
if ($('input[name="spec_type"]:checked').val() == 2) {
if (value && value < 0) {
switchTab($(item).attr('switch-tab'));
return '重量必须大于0';
}
}
},
more_volume: function (value, item) {
if ($('input[name="spec_type"]:checked').val() == 2) {
if (value && value < 0) {
switchTab($(item).attr('switch-tab'));
return '体积必须大于0';
}
}
},
repetition_spec_name: function (value, item) {
if ($('input[name="spec_type"]:checked').val() == 2) {
var spec_names = [];
$('.spec_name').each(function () {
spec_names.push($(this).val());
});
if ((new Set(spec_names)).size != spec_names.length) {
switchTab($(item).attr('switch-tab'));
return '规格名称重复';
}
}
},
repetition_spec_value: function (value, item) {
if ($('input[name="spec_type"]:checked').val() == 2) {
var spec_values = [];
$(item).find('.goods-spec-value-input').each(function () {
spec_values.push($(this).val());
});
if ((new Set(spec_values)).size != spec_values.length) {
switchTab($(item).attr('switch-tab'));
return '同一规格中,规格值不能重复';
}
}
},
distribution:function (value,item) {
var first_ratio = parseFloat($('.first_ratio').val());
var second_ratio = parseFloat($('.second_ratio').val());
var three_ratio = parseFloat(value);
if(first_ratio + second_ratio + three_ratio > 100){
return '分销比例不可超过100';
}
}
});
//------------------------------------------数据验证 end ----------------------------------
//------------------------------------------规格型号 begin --------------------------------
//监听多规格/单规格按钮
form.on('radio(spec-type)', function (data) {
switchSpecType(data.value);
});
// 统一规格与多规格切换事件
function switchSpecType(value) {
var goods_spec_project = $('#goods-spec-project'); // 规格项区域
if (value == 2) { // 多规格
$('#add-spec').parent().show(); // 显示添加规格项目按钮
if (goods_spec_project.children().length > 0) { // 判断规格项区域是否有子元素
goods_spec_project.parent().show(); // 显示规格项区域
$('#more-spec-lists').show(); // 显示多规格明细
}
$('#one-spec-lists').hide(); // 隐藏统一规格规格明细
} else {
$('#add-spec').parent().hide(); // 隐藏 添加规格项目 按钮
goods_spec_project.parent().hide(); // 隐藏规格项区域
$('#more-spec-lists').hide(); // 隐藏多规格明细
$('#one-spec-lists').show(); // 显示单规格明细
}
}
//监听添加规格项按钮
$(document).on('click', '#add-spec', function () {
addSpec();
});
//添加规格项
function addSpec(value) {
value = value === undefined ? ' ' : value;
var element_spec = $('#goods-spec-project'); // 规格项区域
var count = $('.goods-spec').length; // 规格项数量
if (count > 2) {
layer.msg('最多添加3个规格项目');
return;
}
var template_spec = $('#template-spec').html(); // 获取规格项目模板
// 使用value值替换规格项目模板中{value}占位符,并追加至规格项区域中
element_spec.append(template_spec.replace('{value}', value));
$('#goods-spec-project').parent().show();
form.render('checkbox');
}
// 鼠标移入显示删除规格项按钮
$(document).on('mouseenter', '.goods-spec', function () {
$(this).find('.goods-spec-del-x').show();
});
// 鼠标移出隐藏删除规格项按钮
$(document).on('mouseleave', '.goods-spec', function () {
$(this).find('.goods-spec-del-x').hide();
});
// 监听删除规格项目按钮
$(document).on('click', '.goods-spec-del-x', function () {
$(this).parent().remove(); // 移除当前规格项目
var goods_spec_project = $('#goods-spec-project');
if (goods_spec_project.children().length == 0) { // 规格项区域中若没有子元素则隐藏
goods_spec_project.parent().hide();
}
// 触发生成表格函数
triggerCreateTableBySepc();
});
// 监听规格项输入
$(document).on('input', '.goods-spec input', function () {
triggerCreateTableBySepc();
specValueLater();
});
// 触发生成规格明细表格
function triggerCreateTableBySepc() {
clearTimeout(create_table_by_spec);
create_table_by_spec = setTimeout(createTableBySepc, 1000);
}
// 生成规格明细表格
function createTableBySepc() {
if ($('.goods-spec').length <= 0) { // 没有规格项目,隐藏多规格明细
$('#more-spec-lists').hide();
return;
}
$('#more-spec-lists').show(); // 显示多规格明细
var table_title = []; // 用于保存 规格项的值
var table_data = []; // 规格项数据
var spec_value_temp_arr = []; // 规格值临时数组
var i = 0;
var table_html = '';
var th_html = $('#template-spec-table-th').html(); // 多规格表头模板
var tr_html = $('#template-spec-table-tr').html(); // 多规格行模板
//遍历规格项目
$('.goods-spec').each(function () {
var spec_name = $(this).find('.spec_name').first().val(); // 规格项的值 例:颜色
if (isEmptyString(spec_name)) {
return true;
}
table_title[i] = spec_name; // 保存 规格项的值 例:['颜色']
table_data[i] = []; // 例: [[]]
spec_value_temp_arr[i] = []; // 例:[[]]
var j = 0;
// 遍历 当前规格项目 下的所有 规格值
$(this).find('.goods-spec-value .goods-spec-value-input').each(function () {
var spec_value = $(this).val(); // 规格值 例:
var spec_value_temp_id = $(this).attr('spec-value-temp-id'); // 规格值临时id
if (isEmptyString(spec_value)) {
return true;
}
table_data[i][j] = spec_value; // 将 规格值 保存至 规格项 中
spec_value_temp_arr[i][j] = spec_value_temp_id; // 将 规格值临时id 保存至 规格值临时数组 中
j++;
});
i++;
});
//表格头部组装
spec_th_html = '';
for (var i in table_title) {
spec_th_html += '<th>' + table_title[i] + '</th>';
}
table_html = th_html.replace('{spec_th}', spec_th_html);
// 笛卡尔积, 组装SKU 例:[['颜色', 'S码'], ['颜色', 'M码']]
spec_value_temp_arr = cartesianProduct(spec_value_temp_arr);
table_data = cartesianProduct(table_data);
for (var i in table_data) {
var spec_tr_html = '';
var tr_name_arr = [];
var specs = '';
if (Array.isArray(table_data[i])) {
//根据规格创建tr
var spec_value_temp_ids = '';
for (var j in spec_value_temp_arr[i]) {
spec_value_temp_ids += spec_value_temp_arr[i][j] + ',';
}
spec_value_temp_ids = spec_value_temp_ids.substring(0, spec_value_temp_ids.lastIndexOf(','));
spec_tr_html += '<tr spec-value-temp-ids="' + spec_value_temp_ids + '">';
for (var j in table_data[i]) {
spec_tr_html += '<td>' + table_data[i][j] + '</td>';
tr_name_arr[j] = table_data[i][j];
specs += table_data[i][j].replace(',', '') + ',';
}
} else {
var spec_value_temp_ids = spec_value_temp_arr[i];
spec_tr_html = '<tr spec-value-temp-ids="' + spec_value_temp_ids + '">';
spec_tr_html += '<td>' + table_data[i] + '</td>';
specs += table_data[i].replace(',', '') + ',';
}
specs = specs.substring(0, specs.lastIndexOf(','));
spec_table_data["spec_value_str[]" + spec_value_temp_ids] = specs;
spec_tr_html += '<td style="display: none"><input type="hidden" name="spec_value_str[]" value="' + specs + '"><input type="hidden" name="item_id[]" value=""></td>';
table_html += tr_html.replace('{spec_td}', spec_tr_html);
}
$('#more-spec-lists-table').html(table_html);
setTableValue();
};
//动态渲染已保存的值
function setTableValue() {
$('#more-spec-lists-table').find('input').each(function () {
var key = $(this).attr('name') + $(this).parent().parent().attr('spec-value-temp-ids');
if (spec_table_data[key] !== undefined) {
$(this).val(spec_table_data[key]);
}
});
$('.goods-spec-img-div').each(function () {
var key = $(this).parent().parent().attr('spec-value-temp-ids');
if (spec_table_data["spec_image[]" + key]) {
$(this).html('<input name="spec_image[]" type="hidden" value="' + spec_table_data["spec_image[]" + key] + '"><a class="goods-spec-img-del-x">x</a><img class="goods-spec-img" src="' + spec_table_data["spec_image[]" + key] + '">');
}
});
}
// 监听添加规格值链接被点击: 弹出多行输出框处理输入的规格值数据遍历每个规格值并生成相应的html
$(document).on('click', '.add-spec-value', function () {
var add_spec_value = $(this);
layer.prompt({title: '输入规格值,多个请换行', formType: 2}, function (text, index) {
layer.close(index);
var specs = text.split('\n');
for (var i in specs) {
specs[i] = specs[i].trim();
}
specs = unique(specs);
var added_specs = [];
add_spec_value.parent().parent().find('.goods-spec-value-input').each(function () {
added_specs.push($(this).val().trim());
});
for (var i in specs) {
var spec = specs[i].trim();
if (spec == '' || in_array(spec, added_specs)) {
//已存或为空的不添加
continue;
}
addSpecvalue(add_spec_value, spec, 0);
}
specValueLater();
});
});
// 添加规格值: 将【数据】填充至【规格值模板】,并将【规格值模板】追加至【添加规格值】链接前
function addSpecvalue(add_spec_value, spec, spec_id) {
var template_spec_value = $('#template-spec-value').html();
var template_spec_value_html = template_spec_value.replace('{spec_value_temp_id}', spec_value_temp_id_number--);
template_spec_value_html = template_spec_value_html.replace('{spec_value_id}', spec_id);
template_spec_value_html = template_spec_value_html.replace('{spec_value}', spec)
add_spec_value.parent().before(template_spec_value_html);
}
//处理每项规格值
function specValueLater() {
$('.add-spec-value').each(function () {
add_spec_value = $(this);
var spec_values = '';
add_spec_value.parent().parent().find('.goods-spec-value-input').each(function () {
spec_values += $(this).val() + ',';
});
add_spec_value.parent().find('.spec_values').val(spec_values.substring(0, spec_values.lastIndexOf(',')));
var spec_value_ids = '';
add_spec_value.parent().parent().find('.goods-sepc-value-id-input').each(function () {
spec_value_ids += $(this).val() + ',';
});
add_spec_value.parent().find('.spec_value_ids').val(spec_value_ids.substring(0, spec_value_ids.lastIndexOf(',')));
triggerCreateTableBySepc();
});
}
// 显示或隐藏 规格值删除按钮
$(document).on('mouseenter', '.goods-spec-value', function () {
$(this).find('.goods-spec-value-del-x').show();
});
$(document).on('mouseleave', '.goods-spec-value', function () {
$(this).find('.goods-spec-value-del-x').hide();
});
//删除规格值
$(document).on('click', '.goods-spec-value-del-x', function () {
var add_spec_value = $(this).parent().parent().find('.add-spec-value').first();
$(this).parent().remove();
specValueLater();
triggerCreateTableBySepc();
});
// 监听规格明细输入,规格数据本地保存
$(document).on('input', '#more-spec-lists-table input', function () {
var key = $(this).attr('name') + $(this).parent().parent().attr('spec-value-temp-ids');
spec_table_data[key] = $(this).val();
});
//批量填充
$(document).on('click', '.batch-spec-content', function () {
var title = $(this).text();
var input_name = $(this).attr('input-name');
layer.prompt({
formType: 3
, title: '批量填写' + title
}, function (value, index, elem) {
$('input[name="' + input_name + '[]"]').val(value);
//保存值到本地
$('#more-spec-lists-table input').each(function () {
var key = $(this).attr('name') + $(this).parent().parent().attr('spec-value-temp-ids');
spec_table_data[key] = $(this).val();
});
layer.close(index);
});
});
//------------------------------------------规格型号 end ------------------------------------
//------------------------------------------富文本编辑器 begin --------------------------------
layEditor.set({
uploadImage: {
url: '{:url("file/lists")}?type=10'
},
})
var ieditor = layEditor.build('content')
form.verify({
content: function(value) {
return layEditor.sync(ieditor);
}
});
//------------------------------------------富文本编辑器 end --------------------------------
//------------------------------------------商品类型 begin --------------------------------
// 监听商品类型radio
form.on('radio(goods_type)', function (data) {
switchGoodsType(data.value);
initDeliveryType(data.value);
});
// 切换商品类型
function switchGoodsType(type) {
if(type == '1') {
// 虚拟商品
$('.virtual-goods-data').show();
$('.actual-goods-data').hide();
// 配送方式
$('.delivery_virtual').show();
$('.delivery_express').hide();
} else {
// 实物商品
$('.virtual-goods-data').hide();
$('.actual-goods-data').show();
// 配送方式
$('.delivery_virtual').hide();
$('.delivery_express').show();
}
}
// 初始选中配送方式
function initDeliveryType(type) {
// type 0-实物商品 1-虚拟商品
if(type == '1') {
$('input[name="delivery_type[]"][value=1]').prop("checked", false);
$('input[name="delivery_type[]"][value=2]').prop("checked", true);
} else {
$('input[name="delivery_type[]"][value=1]').prop("checked", true);
$('input[name="delivery_type[]"][value=2]').prop("checked", false);
}
form.render();
}
// 渲染
function renderDeliveryType(delivery_type, goods_type) {
delivery_type = delivery_type.split(',');
if (delivery_type == 'null' || delivery_type == '' || delivery_type.length <= 0) {
return initDeliveryType(goods_type);
}
$('input[name="delivery_type[]"]').prop("checked", false);
for (var i = 0; i < delivery_type.length; i++) {
$('input[name="delivery_type[]"][value=' + delivery_type[i] + ']').prop("checked", true);
}
form.render();
}
//------------------------------------------商品类型 end --------------------------------
//------------------------------------ -----编辑页面 begin --------------------------------
{notempty name='info'}
var goods_info= {$info|raw|default=''};
// 商品类型
$("input[name=type]").prop("disabled",true);
$("input[name=type][value="+goods_info['base']['type']+"]").prop("checked",true);
switchGoodsType(goods_info['base']['type']);
// 买家付款后 发货后 发货内容
$("input[name=after_pay][value="+goods_info['base']['after_pay']+"]").prop("checked",true);
$("input[name=after_delivery][value="+goods_info['base']['after_delivery']+"]").prop("checked",true);
$('textarea[name="delivery_content"]').val(goods_info['base']['delivery_content']);
// 配送方式
renderDeliveryType(goods_info['base']['delivery_type'], goods_info['base']['type']);
$('input[name="goods_id"]').val(goods_info['base']['id']);
$('input[name="name"]').val(goods_info['base']['name']);
$('input[name="code"]').val(goods_info['base']['code']);
setSelectFirst(goods_info['base']['first_cate_id']);
setSelectSecond(goods_info['base']['second_cate_id']);
setSelectThird(goods_info['base']['third_cate_id']);
like.setSelect(goods_info['base']['shop_cate_id'], shop_category_lists, "shop_cate_id", '分类');
$('input[name="remark"]').val(goods_info['base']['remark']);
like.setSelect(goods_info['base']['unit_id'], unit, "unit_id", '单位');
like.setSelect(goods_info['base']['brand_id'], brands, "brand_id", '品牌');
like.setSelect(goods_info['base']['supplier_id'], supplier, "supplier_id", '供应商');
//渲染商品主图
if(goods_info['base']['image']){
var html = '' +
'<div class="upload-image-div">' +
'<img src="' + goods_info['base']['image'] + '" alt="img" />' +
'<input type="hidden" name="image" value="' + goods_info['base']['image'] + '">' +
'<div class="del-upload-btn">x</div>' +
'</div>' +
'<div class="upload-image-elem" style="display:none;"><a class="add-upload-image" id="image"> + 添加图片</a></div>';
$('#imageContainer').html(html);
}
//渲染分享海报
if(goods_info['base']['poster']){
var html = '' +
'<div class="upload-image-div">' +
'<img src="' + goods_info['base']['poster'] + '" alt="img" />' +
'<input type="hidden" name="poster" value="' + goods_info['base']['poster'] + '">' +
'<div class="del-upload-btn">x</div>' +
'</div>' +
'<div class="upload-image-elem" style="display:none;"><a class="add-upload-image" id="poster"> + 添加图片</a></div>';
$('#posterContainer').html(html);
}
// 渲染视频
if(goods_info['base']['video']){
var html = '' +
'<div class="upload-video-div">' +
'<video src="' + goods_info['base']['video'] + '"></video>' +
'<input type="hidden" name="video" value="' + goods_info['base']['video'] + '">' +
'<div class="del-upload-btn">x</div>' +
'</div>' +
'<div class="upload-image-elem" style="display:none;"><a class="add-upload-video" id="video"> + 添加视频</a></div>';
$('#videoContainer').html(html);
}
//渲染商品轮播图
if(goods_info['base']['goods_image']){
var html = '';
for(j = 0; j < goods_info['base']['goods_image'].length; j++) {
html = html +
'<div class="upload-image-div">' +
'<img src="' + goods_info['base']['goods_image'][j]['abs_image'] + '" alt="img" />' +
'<input type="hidden" name="goods_image[]" value="' + goods_info['base']['goods_image'][j]['abs_image'] + '">' +
'<div class="del-upload-btn">x</div>' +
'</div>';
}
html = html + '<div class="upload-image-elem"><a class="add-upload-image" id="goodsimage"> + 添加图片</a></div>';
$('#goodsImageContainer').html(html);
}
// 规格类型
$("input[name=spec_type][value="+goods_info['base']['spec_type']+"]").prop('checked',"true");
$('input[name="stock_warn"]').val(goods_info['base']['stock_warn']);
$("input[name=is_show_stock][value="+goods_info['base']['is_show_stock']+"]").prop("checked",true); //是否显示库存
$("input[name=express_type][value="+goods_info['base']['express_type']+"]").prop("checked",true);
$('input[name="express_money"]').val(goods_info['base']['express_money']);
like.setSelect(goods_info['base']['express_template_id'], freight, "express_template_id", '运费模板');
$("input[name=is_member][value="+goods_info['base']['is_member']+"]").prop("checked",true); //会员价是否开启
$('input[name="sort"]').val(goods_info['base']['sort']); //商品排序
$("input[name=is_recommend][value="+goods_info['base']['is_recommend']+"]").prop("checked",true); // 是否推荐
$("input[name=status][value="+goods_info['base']['status']+"]").prop("checked",true); //销售状态
$("input[name=is_distribution][value="+goods_info['base']['is_distribution']+"]").prop("checked",true);
$('input[name="first_ratio"]').val(goods_info['base']['first_ratio']); //一级分销
$('input[name="second_ratio"]').val(goods_info['base']['second_ratio']); //二级分销
$('input[name="third_ratio"]').val(goods_info['base']['third_ratio']); //三级分销
form.render();
switchSpecType(goods_info['base']['spec_type']);
if(goods_info['base']['spec_type'] == 1){ // 单规格
var html = '' +
'<div class="upload-image-div">' +
'<img src="' + goods_info['item'][0]['image'] + '" alt="img" />' +
'<input type="hidden" name="one_spec_image" value="' + goods_info['item'][0]['image'] + '">' +
'<div class="del-upload-btn">x</div>' +
'</div>' +
'<div class="upload-image-elem" style="display:none;"><a class="add-upload-image" id="one_spec_image"> + 添加图片</a></div>';
if(goods_info['item'][0]['image']){
$('#one_spec_image').parent().parent().html(html);
}
$('input[name="one_market_price"]').val(goods_info['item'][0]['market_price']);
$('input[name="one_price"]').val(goods_info['item'][0]['price']);
$('input[name="one_chengben_price"]').val(goods_info['item'][0]['chengben_price']);
$('input[name="one_stock"]').val(goods_info['item'][0]['stock']);
$('input[name="one_volume"]').val(goods_info['item'][0]['volume']);
$('input[name="one_weight"]').val(goods_info['item'][0]['weight']);
$('input[name="one_bar_code"]').val(goods_info['item'][0]['bar_code']);
}
if(goods_info['base']['spec_type'] == 2) { // 多规格
for(var i in goods_info['spec']){
addSpec(goods_info['spec'][i]['name']);
var spes_values = goods_info['spec'][i]['values'];
for(var j in spes_values){
addSpecvalue($('.add-spec-value').eq(i),spes_values[j]['value'],spes_values[j]['id']);
}
}
for(var i in goods_info['spec']){
$('input[name="spec_id[]"]').eq(i).val(goods_info['spec'][i]['id']);
}
specValueLater();
createTableBySepc();
for(var i in goods_info['item']){
$('#more-spec-lists-table tbody tr').each(function() {
var spec_value_str = $(this).find('input[name="spec_value_str[]"]').first().val();
if(spec_value_str == goods_info['item'][i]['spec_value_str']){
spec_value_temp_ids = $(this).attr('spec-value-temp-ids');
spec_table_data["spec_image[]"+spec_value_temp_ids] = goods_info['item'][i]['abs_image'];
spec_table_data["price[]"+spec_value_temp_ids] = goods_info['item'][i]['price'];
spec_table_data["chengben_price[]"+spec_value_temp_ids] = goods_info['item'][i]['chengben_price'];
spec_table_data["market_price[]"+spec_value_temp_ids] = goods_info['item'][i]['market_price'];
spec_table_data["stock[]"+spec_value_temp_ids] = goods_info['item'][i]['stock'];
spec_table_data["volume[]"+spec_value_temp_ids] = goods_info['item'][i]['volume'];
spec_table_data["weight[]"+spec_value_temp_ids] = goods_info['item'][i]['weight'];
spec_table_data["bar_code[]"+spec_value_temp_ids] = goods_info['item'][i]['bar_code'];
spec_table_data["item_id[]"+spec_value_temp_ids] = goods_info['item'][i]['id'];
spec_table_data["spec_value_str[]"+spec_value_temp_ids] = goods_info['item'][i]['spec_value_str'];
return false;
}
});
}
setTableValue();
}
layEditor.setContent(ieditor,goods_info['base']['content']);
form.render();
{/notempty}
//-----------------------------------------编辑页面 end --------------------------------
});
</script>

View File

@ -0,0 +1,150 @@
<div class="layui-tab-item goods-content layui-show">
<div class="layui-card-body" pad15>
<div>
<!-- 商品类型 -->
<div class="layui-form-item">
<label class="layui-form-label"><span class="form-label-asterisk">*</span>商品类型:</label>
<div class="layui-input-block">
<input type="radio" name="type" value="0" title="实物商品" lay-filter="goods_type" class="layui-input" checked/>
<input type="radio" name="type" value="1" title="虚拟商品" lay-filter="goods_type" class="layui-input" />
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<span style="color: #a3a3a3;font-size: 9px">选择好商品类型之后,编辑时不能修改类型。请谨慎选择</span>
</div>
<!--商品名称-->
<div class="layui-form-item">
<label class="layui-form-label"><span class="form-label-asterisk">*</span>商品名称:</label>
<div class="layui-input-block">
<input name="goods_id" type="hidden">
<input type="text" name="name" lay-verify="custom_required" lay-verType="tips"
autocomplete="off" maxlength="64"
switch-tab="0" verify-msg="请输入商品名称最多64个字符" placeholder="请输入商品名称最少3个字符最多64个字符"
class="layui-input">
</div>
</div>
<!--商品编码-->
<div class="layui-form-item">
<label class="layui-form-label">商品编码:</label>
<div class="layui-input-block">
<input type="text" name="code" lay-verType="tips" placeholder="若不填系统随机8位数字" autocomplete="off" switch-tab="0" 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-input-inline">
<select name="first_cate_id" lay-filter="first_category" lay-verify="custom_required"
lay-verType="tips" switch-tab="0" verify-msg="请选择分类">
<option value="">请选择分类</option>
</select>
</div>
<div class="layui-input-inline">
<select name="second_cate_id" lay-filter="second_category" switch-tab="0" verify-msg="请选择分类">
<option value="">请选择分类</option>
</select>
</div>
<div class="layui-input-inline">
<select name="third_cate_id" lay-filter="third_category" switch-tab="0" verify-msg="请选择分类">
<option value="">请选择分类</option>
</select>
</div>
</div>
<!--商品分类-->
<div class="layui-form-item">
<label class="layui-form-label">商品分类:</label>
<div class="layui-input-inline">
<select name="shop_cate_id" lay-filter="shop_cate_id" switch-tab="0" verify-msg="请选择分类">
</select>
</div>
</div>
<!--商品卖点-->
<div class="layui-form-item">
<label class="layui-form-label">商品卖点:</label>
<div class="layui-input-block">
<input type="text" maxlength="60" name="remark" autocomplete="off" class="layui-input">
</div>
</div>
<!--商品单位-->
<div class="layui-form-item">
<label class="layui-form-label">商品单位:</label>
<div class="layui-input-inline">
<select name="unit_id" switch-tab="0" verify-msg="请选择分类">
<option value="">请选择单位</option>
</select>
</div>
</div>
<!--商品品牌-->
<div class="layui-form-item">
<label class="layui-form-label">商品品牌:</label>
<div class="layui-input-inline">
<select name="brand_id" lay-verType="tips" switch-tab="0" verify-msg="请选择商品品牌">
<option value="">请选择品牌</option>
</select>
</div>
</div>
<!--供货商-->
<div class="layui-form-item">
<label class="layui-form-label">供货商:</label>
<div class="layui-input-inline">
<select name="supplier_id" lay-verType="tips" switch-tab="0" verify-msg="请选择供货商">
<option value="">请选择供货商</option>
</select>
</div>
</div>
<!--商品主图-->
<div class="layui-form-item" style="margin-bottom: 0px">
<label class="layui-form-label"><span class="form-label-asterisk">*</span>商品封面图:</label>
<div class="layui-input-block" id="imageContainer">
<div class="like-upload-image">
<div class="upload-image-elem"><a class="add-upload-image" id="image"> + 添加图片</a></div>
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<span style="color: #a3a3a3;font-size: 9px">建议尺寸800*800像素</span>
</div>
<!--自定义分享海报-->
<div class="layui-form-item" style="margin-bottom: 0px">
<label class="layui-form-label">分享海报:</label>
<div class="layui-input-block" id="posterContainer">
<div class="like-upload-image">
<div class="upload-image-elem"><a class="add-upload-image" id="poster"> + 添加图片</a></div>
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<span style="color: #a3a3a3;font-size: 9px">建议尺寸800*800像素</span>
</div>
<!--商品轮播图-->
<div class="layui-form-item" style="margin-bottom: 0px">
<label class="layui-form-label"><span class="form-label-asterisk">*</span>商品轮播图:</label>
<div class="layui-input-block" id="goodsImageContainer">
<div class="like-upload-image">
<div class="upload-image-elem"><a class="add-upload-image" id="goodsimage"> + 添加图片</a></div>
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<span style="color: #a3a3a3;font-size: 9px">建议尺寸800*800像素最多上传10张</span>
</div>
<!--商品视频-->
<div class="layui-form-item">
<label class="layui-form-label">商品视频:</label>
<div class="layui-input-block" id="videoContainer">
<div class="like-upload-video">
<div class="upload-image-elem"><a class="add-upload-video" id="video"> + 添加视频</a></div>
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<span style="color: #a3a3a3;font-size: 9px">商品视频,在商品详情页面播放。(限制4m内)</span>
</div>
</div>
</div>
</div>

View File

@ -0,0 +1,8 @@
<div class="layui-tab-item goods-content">
<div class="layui-form-item">
<label class="layui-form-label">商品详情</label>
<div class="layui-input-block">
<textarea name="content" id="content" lay-verify="content"></textarea>
</div>
</div>
</div>

View File

@ -0,0 +1,45 @@
<div class="layui-tab-item">
<!-- 分销设置 -->
<div class="layui-form-item">
<label class="layui-form-label">分销推广</label>
<div class="layui-input-block">
<input type="radio" name="is_distribution" value="1" title="开启" class="layui-input" />
<input type="radio" name="is_distribution" value="0" title="不开启" class="layui-input" checked />
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<span style="color: #a3a3a3;font-size: 9px">开启后商品可以参与分销推广</span>
</div>
<!--分销比例-->
<div class="layui-form-item">
<label class="layui-form-label">一级分销比例:</label>
<div class="layui-input-inline">
<input type="number" name="first_ratio" autocomplete="off" class="layui-input" value="">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<span style="color: #a3a3a3;font-size: 9px">一级分销佣金=商品实付金额*一级分销比例</span>
</div>
<div class="layui-form-item">
<label class="layui-form-label">二级分销比例:</label>
<div class="layui-input-inline">
<input type="number" name="second_ratio" autocomplete="off" class="layui-input" value="">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<span style="color: #a3a3a3;font-size: 9px">二级分销佣金=商品实付金额*二级分销比例</span>
</div>
<div class="layui-form-item">
<label class="layui-form-label">三级分销比例:</label>
<div class="layui-input-inline">
<input type="number" name="third_ratio" autocomplete="off" class="layui-input" />
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<span style="color: #a3a3a3;font-size: 9px">三级分销佣金=商品实付金额*三级分销比例</span>
</div>
</div>

View File

@ -0,0 +1,131 @@
<div class="layui-tab-item">
<!--库存预警-->
<div class="layui-form-item">
<label class="layui-form-label">库存预警:</label>
<div class="layui-input-inline">
<input type="number" name="stock_warn" autocomplete="off" class="layui-input" value="">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<span style="color: #a3a3a3;font-size: 9px">设置最低库存预警值当库存低于预警值时会出现在库存预警商品列表页0为不预警</span>
</div>
<!-- 库存显示 -->
<div class="layui-form-item">
<label class="layui-form-label">库存显示:</label>
<div class="layui-input-block">
<input type="radio" name="is_show_stock" value="1" title="显示" class="layui-input" />
<input type="radio" name="is_show_stock" value="0" title="不显示" class="layui-input" checked />
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<span style="color: #a3a3a3;font-size: 9px">商品详情显示剩余库存数量</span>
</div>
<!--配送方式-->
<div class="layui-form-item">
<label class="layui-form-label">配送方式:</label>
<div class="layui-input-block">
<div class="delivery_express">
<input type="checkbox" name="delivery_type[]" value="1" lay-skin="primary" title="快递发货" checked/>
<input type="checkbox" name="delivery_type[]" value="3" lay-skin="primary" title="线下自提"/>
</div>
<div class="delivery_virtual" style="display: none">
<input type="checkbox" name="delivery_type[]" value="2" lay-skin="primary" title="虚拟发货"/>
</div>
</div>
</div>
<!--虚拟商品内容-->
<div class="layui-form-item virtual-goods-data" style="display: none">
<div class="layui-form-item">
<label class="layui-form-label"><span class="form-label-asterisk">*</span>买家付款后:</label>
<div class="layui-input-block">
<input type="radio" name="after_pay" value="1" title="自动发货" class="layui-input" checked/>
<input type="radio" name="after_pay" value="2" title="手动发货" 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-input-block">
<input type="radio" name="after_delivery" value="1" title="自动完成订单" class="layui-input" checked/>
<input type="radio" name="after_delivery" value="2" title="需要买家确认收货" 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-input-block" style="width: 50%">
<textarea name="delivery_content" autocomplete="off" class="layui-textarea" placeholder="多行输入"></textarea>
</div>
</div>
</div>
<!--快递运费-->
<div class="layui-form-item actual-goods-data">
<label class="layui-form-label"><span class="form-label-asterisk">*</span>快递运费:</label>
<div class="layui-input-inline">
<input type="radio" name="express_type" value="1" title="包邮" checked>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<div class="layui-input-inline" style="margin-right: 0px;width: auto">
<input type="radio" name="express_type" value="2" title="统一运费">
</div>
<div class="layui-input-inline" style="width: 180px">
<input type="number" name="express_money" class="layui-input">
</div>
<div class="unit-tips"></div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<div class="layui-input-inline" style="margin-right: 0px;width: auto">
<input type="radio" name="express_type" value="3" title="运费模板">
</div>
<div class="layui-input-inline" style="width: 180px">
<select name="express_template_id">
<option value=""></option>
</select>
</div>
</div>
</div>
<!-- 会员价 -->
<div class="layui-form-item">
<label class="layui-form-label">会员价:</label>
<div class="layui-input-block">
<input type="radio" name="is_member" value="0" title="不参与会员价" class="layui-input" />
<input type="radio" name="is_member" value="1" title="参与会员价" class="layui-input" checked />
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<span style="color: #a3a3a3;font-size: 9px">根据会员等级设置的会员折扣自动打折,拼团和秒杀等营销活动不参与会员折扣</span>
</div>
<!--商品排序-->
<div class="layui-form-item">
<label class="layui-form-label">商品排序:</label>
<div class="layui-input-inline">
<input type="number" name="sort" autocomplete="off" class="layui-input" value="255" min="0">
</div>
</div>
<!--店内推荐-->
<div class="layui-form-item">
<label class="layui-form-label">店内推荐:</label>
<div class="layui-input-block">
<input type="radio" name="is_recommend" value="1" title="推荐" lay-verify="is_recommend" >
<input type="radio" name="is_recommend" value="0" title="不推荐"lay-verify="is_recommend" checked>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<span style="color: #a3a3a3;font-size: 9px">勾选店内推荐后,推荐商品会在相关推荐位显示</span>
</div>
<!--销售状态-->
<div class="layui-form-item">
<label class="layui-form-label"><span class="form-label-asterisk">*</span>销售状态:</label>
<div class="layui-input-block">
<input type="radio" name="status" value="1" title="立即上架" verify-msg="选择销售状态" lay-verify="status" >
<input type="radio" name="status" value="0" title="放入仓库" verify-msg="选择销售状态" lay-verify="status" checked>
</div>
</div>
</div>

View File

@ -0,0 +1,192 @@
<div class="layui-tab-item goods-content">
<!--规格型号-->
<div class="layui-card-body" pad15>
<div lay-filter="">
<div class="layui-form-item">
<label class="layui-form-label"><span class="form-label-asterisk">*</span>商品规格:</label>
<div class="layui-input-block">
<input type="radio" name="spec_type" lay-filter="spec-type" value="1" title="统一规格" checked>
<input type="radio" name="spec_type" lay-filter="spec-type" value="2" title="多规格">
</div>
</div>
<!-- 规格项 -->
<div class="layui-form-item" style="display: none">
<label class="layui-form-label"></label>
<div class="layui-input-block goods-spec-div" id="goods-spec-project">
</div>
</div>
<!-- 添加规格项目按钮 -->
<div class="layui-form-item" style="display: none">
<label class="layui-form-label"></label>
<button class="layui-btn layui-btn-normal layui-btn-sm" id="add-spec" lay-verify="add_more_spec"
lay-verType="tips" autocomplete="off" switch-tab="1" verify-msg="至少添加一个规格">添加规格项目
</button>
<br>
<span style="color: #a3a3a3;font-size: 9px;margin-left:130px;">最多支持3个规格项</span>
</div>
<!-- 统一规格 -->
<div class="layui-form-item" id="one-spec-lists">
<label class="layui-form-label">规格明细:</label>
<div class="layui-input-block goods-spec-div">
<table id="one-spec-lists-table" class="layui-table spec-lists-table" lay-size="sm">
<colgroup>
<col width="60px">
</colgroup>
<thead>
<tr style="background-color: #f3f5f9">
<th>规格图片</th>
<th>市场价(元)</th>
<th><span class="form-label-asterisk">*</span>价格(元)</th>
<th>成本价(元)</th>
<th><span class="form-label-asterisk">*</span>库存</th>
<th>重量(kg)</th>
<th>体积(m3)</th>
<th>条码</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<div class="like-upload-image goods-spec-img-div">
<div class="upload-image-elem"><a class="add-upload-image" id="one_spec_image"> + 添加图片</a></div>
</div>
</td>
<td><input type="number" class="layui-input"
lay-verify=""
lay-verType="tips"
autocomplete="off" switch-tab="1" verify-msg="请输入市场价"
name="one_market_price"></td>
<td><input type="number" class="layui-input"
lay-verify="one_spec_required|one_price"
lay-verType="tips"
autocomplete="off" switch-tab="1" verify-msg="请输入价格"
name="one_price"></td>
<td><input type="number" class="layui-input"
lay-verify=""
lay-verType="tips"
autocomplete="off" switch-tab="1" verify-msg="请输入成本价"
name="one_chengben_price"></td>
<td><input type="number" class="layui-input" lay-verify="one_spec_required|one_stock"
lay-verType="tips"
autocomplete="off" switch-tab="1" verify-msg="请输入库存" name="one_stock">
</td>
<td><input type="number" class="layui-input"
lay-verify="" name="one_weight"
lay-verType="tips" autocomplete="off" switch-tab="1" verify-msg="请输入重量"></td>
<td><input type="number" class="layui-input" lay-verify="" lay-verType="tips"
name="one_volume" autocomplete="off" switch-tab="1" verify-msg="请输入体积"></td>
<td><input type="number" name="one_bar_code" class="layui-input"
lay-verType="tips" autocomplete="off" switch-tab="1" verify-msg="请输入条码"></td>
</tr>
</tbody>
</table>
</div>
</div>
<!-- 多规格 -->
<div class="layui-form-item" id="more-spec-lists" style="display: none">
<label class="layui-form-label">规格明细:</label>
<div class="layui-input-block goods-spec-div">
<div class="batch-div"><span class="batch-spec-title">批量设置:</span>
<div>
<span class="batch-spec-content click-a" input-name="market_price">市场价</span>
<span class="batch-spec-content click-a" input-name="price">价格</span>
<span class="batch-spec-content click-a" input-name="chengben_price">成本价</span>
<span class="batch-spec-content click-a" input-name="stock">库存</span>
<span class="batch-spec-content click-a" input-name="weight">重量</span>
<span class="batch-spec-content click-a" input-name="volume">体积</span>
<span class="batch-spec-content click-a" input-name="bar_code">条码</span>
</div>
</div>
<table id="more-spec-lists-table" class="layui-table spec-lists-table" lay-size="sm">
</table>
</div>
</div>
</div>
</div>
</div>
<!--规格项模板-->
<script type="text/html" id="template-spec">
<div class="goods-spec-div goods-spec" lay-verify="add_more_spec|repetition_spec_name" lay-verType="tips"
autocomplete="off"
switch-tab="1" verify-msg="至少添加一个规格,且规格需要规格值">
<a class="goods-spec-del-x" style="display: none;">x</a>
<div class="layui-form-item"><label class="layui-form-label">规格项</label>
<div class="layui-input-block" style="width: 500px">
<div class="layui-input-inline">
<input type="hidden" name="spec_id[]" value="0">
<input type="text" name="spec_name[]" lay-verify="more_spec_required" lay-verType="tips"
switch-tab="1"
verify-msg="规格项不能为空"
placeholder="请填写规格名" autocomplete="off" class="layui-input spec_name" value="{value}">
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<div class="layui-input-block goods-spec-value-dev" lay-verify="repetition_spec_value" lay-verType="tips"
switch-tab="1">
<div class="layui-input-inline">
<input type="hidden" class="spec_values" name="spec_values[]" value="">
<input type="hidden" class="spec_value_ids" name="spec_value_ids[]" value="">
<a href="#" class="add-spec-value">+ 添加规格值</a>
</div>
</div>
</div>
</div>
</script>
<!--规格值模板-->
<script type="text/html" id="template-spec-value">
<div class="layui-input-inline goods-spec-value" style="width: 90px">
<a class="goods-spec-value-del-x" style="display: none;">x</a>
<input value="{spec_value}" spec-value-temp-id="{spec_value_temp_id}" class="layui-input goods-spec-value-input"
placeholder="规格值"
lay-verify="more_spec_required" lay-verType="tips" switch-tab="1" verify-msg="规格值不能为空">
<input type="hidden" class="goods-sepc-value-id-input" value="{spec_value_id}">
</div>
</script>
<!-- 多规格表头模板 -->
<script type="text/html" id="template-spec-table-th">
<colgroup>
<col width="60px">
</colgroup>
<thead>
<tr style="background-color: #f3f5f9">
{spec_th}
<th>规格图片</th>
<th>市场价()</th>
<th><span class="form-label-asterisk">*</span>()</th>
<th>成本价()</th>
<th><span class="form-label-asterisk">*</span></th>
<th>重量(kg)</th>
<th>体积(m3)</th>
<th>条码</th>
</tr>
</thead>
</script>
<!--多规格行模板-->
<script type="text/html" id="template-spec-table-tr">
{spec_td}
<td>
<div class="like-upload-image goods-spec-img-div">
<input class="upload-spec-image" type="hidden" name="spec_image[]">
<div class="upload-image-elem"><a class="add-upload-image more_spec_image"> + 添加图片</a></div>
</div>
</td>
<td><input type="number" class="layui-input" lay-verify="" lay-verType="tips"
autocomplete="off" switch-tab="1" name="market_price[]"></td>
<td><input type="number" class="layui-input" lay-verify="more_spec_required|more_price" lay-verType="tips"
autocomplete="off" switch-tab="1" verify-msg="请输入价格" name="price[]"></td>
<td><input type="number" class="layui-input" lay-verify="" lay-verType="tips"
autocomplete="off" switch-tab="1" verify-msg="请输入成本价" name="chengben_price[]"></td>
<td><input type="number" class="layui-input" lay-verify="more_spec_required|more_stock" lay-verType="tips"
autocomplete="off" switch-tab="1" verify-msg="请输入库存" name="stock[]"></td>
<td><input type="number" class="layui-input" lay-verify="" lay-verType="tips"
name="weight[]" autocomplete="off" switch-tab="1" verify-msg="请输入重量"></td>
<td><input type="number" class="layui-input" lay-verify="" lay-verType="tips"
name="volume[]" autocomplete="off" switch-tab="1" verify-msg="请输入体积"></td>
<td><input type="number" name="bar_code[]" class="layui-input"
lay-verType="tips" autocomplete="off" switch-tab="1"></td>
</tr>
</script>

View File

@ -0,0 +1,508 @@
{layout name="layout1" /}
<style>
.layui-table-cell {
height: auto;
}
</style>
<div class="wrapper">
<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>
<p>*审核通过后,重新编辑商品无需再次审核。</p>
</div>
</div>
</div>
</div>
<!--搜索条件-->
<div class="layui-card-body layui-form">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">商品名称:</label>
<div class="layui-input-inline">
<input type="text" name="goods_name" id="goods_name" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">商品类型:</label>
<div class="layui-input-block">
<select name="goods_type" id="goods_type" >
<option value="">全部</option>
{foreach $goods_type as $key => $val }
<option value="{$key}">{$val}</option>
{/foreach}
</select>
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">平台分类:</label>
<div class="layui-input-block">
<select name="platform_cate_id" id="platform_cate_id" placeholder="请选择平台商品分类" >
<option value="0">全部</option>
{foreach $cate_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="shop_cate_id" id="shop_cate_id" placeholder="请选择商家商品分类" >
<option value="0">全部</option>
{foreach $shop_cate_list as $val }
<option value="{$val.id}">{$val.name}</option>
{/foreach}
</select>
</div>
</div>
<div class="layui-inline">
<button class="layui-btn layui-btn-sm layui-btn-normal" lay-submit lay-filter="search">查询</button>
<button class="layui-btn layui-btn-sm layui-btn-primary" lay-submit lay-filter="clear-search">重置</button>
</div>
</div>
</div>
<!-选项卡-->
<div class="layui-tab layui-tab-card" lay-filter="like-tabs">
<ul class="layui-tab-title">
<li data-type='1' class="layui-this">销售中商品({$statistics.sell})</li>
<li data-type='2' >库存预警商品({$statistics.warn})</li>
<li data-type='3' >仓库中商品({$statistics.warehouse})</li>
<li data-type='4' >回收站商品({$statistics.recycle})</li>
<li data-type='5' >待审核商品({$statistics.audit_stay})</li>
<li data-type='6' >审核未通过商品({$statistics.audit_refuse})</li>
</ul>
<div class="layui-tab-content" style="padding: 0 15px;">
<div style="margin-top: 10px" class="add">
<button class="layui-btn layui-btn-sm layEvent {$view_theme_color}" lay-event="add">发布商品</button>
<button id="upper" class="layui-btn layui-btn-sm layEvent layui-btn-primary" lay-event="upper" style="display: none;">上架</button>
<button id="lower" class="layui-btn layui-btn-sm layEvent layui-btn-primary" lay-event="lower">下架</button>
</div>
<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="price-info">
{{d.min_price}} ~ {{d.max_price}}
</script>
<script type="text/html" id="ratio">
一级分销比例: {{d.first_ratio}}% <br />
二级分销比例: {{d.second_ratio}}% <br />
三级分销比例: {{d.third_ratio}}% <br />
</script>
<script type="text/html" id="goods-operation">
{{# if( d.del != 2 ){ }}
<a class="layui-btn layui-btn-normal layui-btn-sm" lay-event="edit">编辑</a>
{{# } }}
{{# if( d.status == 1 && d.del == 0 && d.audit_status == 1 ){ }}
<a class="layui-btn layui-btn-danger layui-btn-sm" lay-event="status">下架</a>
{{# } }}
{{# if( d.status == 0 && d.del == 0 && d.audit_status == 1 ){ }}
<a class="layui-btn layui-btn-danger layui-btn-sm" lay-event="status">上架</a>
{{# } }}
{{# if( d.del != 2 && d.audit_status == 1 ){ }}
<a class="layui-btn layui-btn-danger layui-btn-sm" lay-event="recycle">移至回收站</a>
{{# } }}
{{# if( d.del == 2 && d.audit_status == 1 ){ }}
<a class="layui-btn layui-btn-danger layui-btn-sm" lay-event="back_to_warehouse">放回仓库</a>
{{# } }}
{{# if( (d.del == 2 && d.audit_status == 1) || ( d.del !=1 && d.audit_status == 0) || ( d.del != 1 && d.audit_status == 2) ){ }}
<a class="layui-btn layui-btn-danger layui-btn-sm" lay-event="del">删除</a>
{{# } }}
</script>
</div>
</div>
</div>
</div>
<script>
layui.use(['table', 'form', 'element'], function(){
var $ = layui.$
,form = layui.form
,table = layui.table
,element = layui.element;
//监听搜索
form.on('submit(search)', function(data){
var field = data.field;
//执行重载
table.reload('goods-lists', {
where: field,
page: {curr: 1}
});
});
//清空查询
form.on('submit(clear-search)', function(){
$('#goods_name').val('');
$('#platform_cate_id').val('');
$('#shop_cate_id').val('');
$('#goods_type').val('');
form.render('select');
//刷新列表
table.reload('goods-lists', {
where: [], page: {curr: 1}
});
});
//事件
var active = {
add: function(){
layer.open({
type: 2
,title: '添加商品'
,content: '{:url("goods.goods/add")}'
,area: ['90%', '90%']
,btn: ['保存', '取消']
,maxmin: true
,yes: function(index, layero){
var iframeWindow = window['layui-layer-iframe'+ index]
,submitID = 'goods-submit'
,submit = layero.find('iframe').contents().find('#'+ submitID);
//监听提交
iframeWindow.layui.form.on('submit('+ submitID +')', function(data){
var field = data.field;
like.ajax({
url:'{:url("goods.goods/add")}',
data:field,
type:"post",
success:function(res)
{
if(res.code == 1)
{
layui.layer.msg(res.msg, {
offset: '15px'
, icon: 1
, time: 1000
},function () {
window.location.href = window.location.href;
});
}
}
});
});
submit.trigger('click');
}
,cancel: function(index, layero){
var window_index = index;
layer.confirm('商品未保存,确定关闭吗?', {
time: 0, //不自动关闭
btn: ['确定', '取消'],
yes: function(index){
layer.close(index);
layer.close(window_index);
}
});
return false;
}
});
},
//批量下架
lower: function() {
updateStatus(0);
},
//批量上架
upper: function() {
updateStatus(1);
}
};
like.eventClick(active);
//获取列表
getList(1); // 初始加载获取销售中的商品
//切换列表
element.on('tab(like-tabs)', function (data) {
var type = $(this).attr('data-type');
// 重置搜索模块
$('#goods_name').val('');
$('#platform_cate_id').val('');
$('#shop_cate_id').val('');
form.render('select');
// 重新获取商品列表
getList(type);
if (type === '1' || type === '2') {
$("#lower").show();
$("#upper").hide();
} else if (type === '3') {
$("#lower").hide();
$("#upper").show();
} else{
$("#lower").hide();
$("#upper").hide();
}
});
//监听工具条
table.on('tool(goods-lists)', function(obj){
var id = obj.data.id;
var name = obj.data.name;
//上下架
if(obj.event === 'status'){
var tips = '确定上架当前商品:'+'<span style="color: red">'+name+'</span>';
var field_value = 1;
if(obj.data.status){
field_value = 0;
tips = '确定下架当前商品:'+'<span style="color: red">'+name+'</span>';
}
layer.confirm(tips, function(index){
var fields = 'status';
changeFields(id,fields,field_value);
})
}
//移至回收站
if(obj.event === 'recycle'){
var tips = '确定移至回收站:'+'<span style="color: red">'+name+'</span>';
var field_value = 2;
layer.confirm(tips, function(index){
var fields = 'del';
changeFields(id,fields,field_value);
})
}
if(obj.event === 'back_to_warehouse'){
var tips = '确定放回仓库:'+'<span style="color: red">'+name+'</span>';
layer.confirm(tips, function(index){
like.ajax({
url:'{:url("goods.goods/backToWarehouse")}',
data:{id:id},
type:'post',
dataType:'json',
success:function (res) {
if(res.code == 1) {
layui.layer.msg(res.msg, {
offset: '15px'
, icon: 1
, time: 1000
}, function () {
// window.location.href = window.location.href;
layer.close(index);
updateTabNumber();
table.reload('goods-lists');
});
// updateTabNumber();
}
}
})
})
}
if(obj.event === 'edit') {
var id = obj.data.id;
layer.open({
type: 2
,title: '编辑商品'
,content: '{:url("goods.goods/edit")}?goods_id='+id
,area: ['90%', '90%']
,btn: ['保存', '取消']
,maxmin: true
,yes: function(index, layero){
var iframeWindow = window['layui-layer-iframe'+ index]
,submitID = 'goods-submit'
,submit = layero.find('iframe').contents().find('#'+ submitID);
//监听提交
iframeWindow.layui.form.on('submit('+ submitID +')', function(data){
var field = data.field;
like.ajax({
url:'{:url("goods.goods/edit")}',
data:field,
type:"post",
success:function(res)
{
if(res.code == 1)
{
layui.layer.msg(res.msg, {
offset: '15px'
, icon: 1
, time: 1000
},function () {
// window.location.href = window.location.href;
layer.close(index);
updateTabNumber();
table.reload('goods-lists');
});
}
}
});
});
submit.trigger('click');
}
,cancel: function(index, layero){
var window_index = index;
layer.confirm('商品未保存,确定关闭吗?', {
time: 0, //不自动关闭
btn: ['确定', '取消'],
yes: function(index){
layer.close(index);
layer.close(window_index);
}
});
return false;
}
});
}
if(obj.event === 'del') {
var name = obj.data.name;
layer.confirm('确定删除商品:'+'<span style="color: red">'+name+'</span>', function(index){
like.ajax({
url:'{:url("goods.goods/del")}',
data:{id:id},
type:"post",
success:function(res)
{
if(res.code == 1)
{
layui.layer.msg(res.msg, {
offset: '15px'
, icon: 1
, time: 1000
}, function() {
// window.location.href = window.location.href;
layer.close(index);
updateTabNumber();
table.reload('goods-lists');
});
}
}
});
layer.close(index);
})
}
if(obj.event === 'tips'){
layer.tips('数字越大,越靠前', $(this), {tips: [1, '#FF5722'],time:1500});
}
});
//商品排序
table.on('edit(goods-lists)', function (obj) {
var id = obj.data.id;
var fields = 'sort';
var field_value = obj.value;
if(isNaN(field_value)){
var old_value=$(this).prev().text();
layer.tips('请输入数字', $(this), {tips: [1, '#FF5722']});
$(this).val(old_value);
return false;
}
changeFields(id,fields,field_value);
});
//图片放大
$(document).on('click', '.image-show', function () {
var src = $(this).attr('src');
like.showImg(src,600);
});
// 商品列表
function getList(type) {
like.tableLists('#goods-lists', '{:url("goods.goods/lists")}?type='+type, [
{type:'checkbox'}
,{title: '商品信息',width:250, templet: '#goods-info'}
,{field: 'price',title: '价格区间(元)', width: 200, align: 'center'}
,{field: 'stock',width: 100,title: '总库存', align: 'center'}
,{field: 'sales_actual',width: 100,title: '总销量', align: 'center'}
// ,{field: 'is_distribution_desc',width: 100,title: '分销商品', align: 'center'}
// ,{width: 220,title: '分销比例', align: 'center', templet: '#ratio'}
,{field: 'audit_remark', width: 180, title: '审核说明', align: 'center'}
,{field: 'sort',width: 80, title:'排序', align: 'center'}
,{field: 'create_time',width:160, title:'发布日期', align: 'center'}
,{fixed: 'right', title: '操作', width:250, align: 'center', toolbar: '#goods-operation'}
]);
// if(type == 6) { // 审核未通过,显示审核说明列(注意计时器时间控制先让动态表格渲染完成再去移除layui-hide)
// setTimeout(function() {
// $('.layui-table .layui-hide').removeClass('layui-hide');
// }, 1500);
// }
}
// 更新指定字段
function changeFields(id,fields,value){
like.ajax({
url:'{:url("goods.goods/changeFields")}',
data:{id:id,field:fields,value:value},
type:'post',
dataType:'json',
success:function (res) {
if(res.code == 1) {
layui.layer.msg(res.msg, {
offset: '15px'
, icon: 1
, time: 1000
}, function () {
updateTabNumber();
table.reload('goods-lists');
});
}
}
})
}
// 更新选项卡 统计数据
function updateTabNumber() {
like.ajax({
url: '{:url("goods.goods/totalCount")}',
data: {},
type: "GET",
success: function (res) {
if (res.code === 1) {
$(".layui-tab-title li[data-type=1]").html("销售中商品(" + res.data.sell + ")");
$(".layui-tab-title li[data-type=2]").html("库存预警商品(" + res.data.warn + ")");
$(".layui-tab-title li[data-type=3]").html("仓库中商品(" + res.data.warehouse + ")");
$(".layui-tab-title li[data-type=4]").html("回收站商品(" + res.data.recycle + ")");
$(".layui-tab-title li[data-type=5]").html("待审核商品(" + res.data.audit_stay + ")");
$(".layui-tab-title li[data-type=6]").html("审核未通过商品(" + res.data.audit_refuse + ")");
}
}
});
}
// 批量上下架
function updateStatus(status)
{
var checkStatus = table.checkStatus('goods-lists');
var checkData = checkStatus.data;
var ids = [];
// 取出选中的行ID
checkData.forEach(function (item) {
ids.push(parseInt(item['id']));
});
if (ids.length <= 0) {
layui.layer.msg('请选择商品', {time: 1000});
return false;
}
// 提交数据
like.ajax({
url:'{:url("goods.goods/setStatus")}',
data:{"ids":ids, 'status': status},
type:"post",
success:function(res) {
if(res.code === 1) {
layui.layer.msg(res.msg, {offset:'15px', icon:1 ,time: 1000});
updateTabNumber();
table.reload('goods-lists', { where: [] });
}
}
});
}
});
</script>

View File

@ -0,0 +1,62 @@
{layout name="layout2" /}
<style>
.layui-form-label{
width: 100px;
}
</style>
<div class="layui-form" lay-filter="layui-form-add" id="layui-form-add" style="padding: 20px 30px 0 0;">
<!--供货商名称-->
<div class="layui-form-item">
<label class="layui-form-label"><font color="red">*</font>供货商名称:</label>
<div class="layui-input-block">
<div class="layui-col-md4">
<input type="text" name="name" lay-verify="required" lay-vertype="tips" autocomplete="off" class="layui-input">
</div>
</div>
</div>
<!--联系人姓名-->
<div class="layui-form-item">
<label class="layui-form-label" ><font color="red">*</font>联系人姓名:</label>
<div class="layui-input-block">
<div class="layui-col-md4">
<input type="text" name="contact" lay-verify="required" lay-vertype="tips" autocomplete="off" class="layui-input">
</div>
</div>
</div>
<!--联系电话-->
<div class="layui-form-item">
<label class="layui-form-label" ><font color="red">*</font>联系电话:</label>
<div class="layui-input-block">
<div class="layui-col-md4">
<input type="text" name="mobile" lay-verify="required" lay-vertype="tips" autocomplete="off" class="layui-input">
</div>
</div>
</div>
<!--联系地址-->
<div class="layui-form-item">
<label class="layui-form-label" ><font color="red">*</font>联系地址:</label>
<div class="layui-input-block">
<div class="layui-col-md4">
<input type="text" name="address" lay-verify="required" lay-vertype="tips" autocomplete="off" class="layui-input">
</div>
</div>
</div>
<!--备注-->
<div class="layui-form-item">
<label class="layui-form-label">备注:</label>
<div class="layui-input-block">
<div class="layui-col-md4">
<textarea name="remark" class="layui-textarea"></textarea>
</div>
</div>
</div>
<div class="layui-form-item layui-hide">
<input type="button" lay-submit lay-filter="add-submit" id="add-submit" value="确认">
</div>
</div>

View File

@ -0,0 +1,65 @@
{layout name="layout2" /}
<style>
.layui-form-label{
width: 100px;
}
</style>
<div class="layui-form" lay-filter="layui-form-add" id="layui-form-add" style="padding: 20px 30px 0 0;">
<input type="hidden" value="{$detail.id}" name="id">
<!--供货商名称-->
<div class="layui-form-item">
<label class="layui-form-label"><font color="red">*</font>供货商名称:</label>
<div class="layui-input-block">
<div class="layui-col-md4">
<input type="text" name="name" value="{$detail.name}" lay-verify="required" lay-vertype="tips" autocomplete="off" class="layui-input">
</div>
</div>
</div>
<!--联系人姓名-->
<div class="layui-form-item">
<label class="layui-form-label" ><font color="red">*</font>联系人姓名:</label>
<div class="layui-input-block">
<div class="layui-col-md4">
<input type="text" name="contact" value="{$detail.contact}" lay-verify="required" lay-vertype="tips" autocomplete="off" class="layui-input">
</div>
</div>
</div>
<!--联系电话-->
<div class="layui-form-item">
<label class="layui-form-label" ><font color="red">*</font>联系电话:</label>
<div class="layui-input-block">
<div class="layui-col-md4">
<input type="text" name="mobile" value="{$detail.mobile}" lay-verify="required" lay-vertype="tips" autocomplete="off" class="layui-input">
</div>
</div>
</div>
<!--联系地址-->
<div class="layui-form-item">
<label class="layui-form-label" ><font color="red">*</font>联系地址:</label>
<div class="layui-input-block">
<div class="layui-col-md4">
<input type="text" name="address" value="{$detail.address}" lay-verify="required" lay-vertype="tips" autocomplete="off" class="layui-input">
</div>
</div>
</div>
<!--备注-->
<div class="layui-form-item">
<label class="layui-form-label">备注:</label>
<div class="layui-input-block">
<div class="layui-col-md4">
<textarea name="remark" class="layui-textarea">{$detail.remark}</textarea>
</div>
</div>
</div>
<div class="layui-form-item layui-hide">
<input type="button" lay-submit lay-filter="edit-submit" id="edit-submit" value="确认">
</div>
</div>

View File

@ -0,0 +1,201 @@
{layout name="layout1" /}
<div class="wrapper">
<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-card-body">
<!--搜索条件-->
<div class="layui-form">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label" style="white-space: nowrap;">供货商名称:</label>
<div class="layui-input-inline">
<input type="text" name="keyword" id="keyword" placeholder="" autocomplete="off"
class="layui-input">
</div>
</div>
<div class="layui-inline">
<button class="layui-btn layui-btn-sm layuiadmin-btn-unit {$view_theme_color}" lay-submit
lay-filter="supplier-search">查询
</button>
<button class="layui-btn layui-btn-sm layui-btn-primary layuiadmin-btn-unit }" lay-submit
lay-filter="supplier-clear-search">清空查询
</button>
</div>
</div>
</div>
<div style="padding-bottom: 10px;">
<button class="layui-btn layui-btn-sm layuiadmin-btn-unit {$view_theme_color}" data-type="add">新增供货商
</button>
</div>
<table id="supplier_lists" lay-filter="supplier_lists"></table>
<script type="text/html" id="supplier-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="del">删除</a>
</script>
</div>
</div>
</div>
<script>
layui.use(['table', 'form'], function () {
var $ = layui.$
, form = layui.form
, table = layui.table;
// 列表
like.tableLists('#supplier_lists', '{:url("goods.supplier/lists")}', [
{type: 'numbers', title: '序号'}
, {field: 'name', width: 150, title: '供货商名称'}
, {field: 'contact', width: 150, title: '联系人'}
, {field: 'mobile', width: 150, title: '联系电话'}
, {field: 'address', width: 250, title: '联系地址'}
, {field: 'remark', width: 250, title: '备注'}
, {fixed: 'right', title: '操作', width: 200, align: 'center', toolbar: '#supplier-operation'}
]);
//监听搜索
form.on('submit(supplier-search)', function (data) {
var field = data.field;
//执行重载
table.reload('supplier_lists', {
where: field,
page: {curr: 1},
});
});
//清空查询
form.on('submit(supplier-clear-search)', function () {
$('#keyword').val('');//清空输入框
//刷新列表
table.reload('supplier_lists', {
where: [],
page: {curr: 1},
});
});
//事件
var active = {
add: function () {
layer.open({
type: 2
, title: '新增供货商'
, content: '{:url("goods.supplier/add")}'
, area: ['90%', '90%']
, btn: ['确定', '取消']
, yes: function (index, layero) {
var iframeWindow = window['layui-layer-iframe' + index]
, submitID = 'add-submit'
, submit = layero.find('iframe').contents().find("#add-submit");
//监听提交
iframeWindow.layui.form.on('submit('+ submitID +')', function (data) {
var field = data.field;
like.ajax({
url: '{:url("goods.supplier/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('supplier_lists');
}
}
});
});
submit.trigger('click');
},
})
}
};
$('.layui-btn.layuiadmin-btn-unit').on('click', function () {
var type = $(this).data('type');
active[type] ? active[type].call(this) : '';
});
table.on('tool(supplier_lists)', function (obj) {
if (obj.event === 'del') {
var id = obj.data.id;
var name = obj.data.name;
layer.confirm('确定删除供货商:<span style="color: red">' + name + "</span>", function (index) {
like.ajax({
url: '{:url("goods.supplier/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('supplier_lists');
obj.del();
}
}
});
layer.close(index);
});
}
if (obj.event === 'edit') {
var id = obj.data.id;
layer.open({
type: 2
, title: '修改供货商信息'
, content: '{:url("goods.supplier/edit")}?id=' + id
, area: ['90%', '90%']
, btn: ['确定', '取消']
, yes: function (index, layero) {
var iframeWindow = window['layui-layer-iframe' + index]
, submitID = 'edit-submit'
, submit = layero.find('iframe').contents().find('#edit-submit');
//监听提交
iframeWindow.layui.form.on('submit('+ submitID +')', function (data) {
var field = data.field;
like.ajax({
url: '{:url("goods.supplier/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('supplier_lists');
}
}
});
});
submit.trigger('click');
}
})
}
});
});
</script>