其余文件
This commit is contained in:
884
app/admin/view/goods/goods/add.html
Normal file
884
app/admin/view/goods/goods/add.html
Normal file
@ -0,0 +1,884 @@
|
||||
{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', 'likeedit'], function() {
|
||||
var form = layui.form
|
||||
,$ = layui.$
|
||||
, element = layui.element
|
||||
, layEditor = layui.layEditor;
|
||||
//---------------------------------------平台分类联动 begin ----------------------------------
|
||||
var categorys = {$category_lists | raw};
|
||||
setSelectFirst();
|
||||
|
||||
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: 5,
|
||||
// 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'
|
||||
// });
|
||||
// })
|
||||
// // 监听编辑时多规格图片删除按钮
|
||||
// $(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('<div class="like-upload-image goods-spec-img-div"><div class="upload-image-elem"><a class="add-upload-image more_spec_image"> + 添加图片</a></div></div>');
|
||||
// spec_table_data[key] = '';
|
||||
//
|
||||
// });
|
||||
// 放大图片
|
||||
$(document).on('click', 'img',function(){
|
||||
like.showImg($(this).attr('src'),600);
|
||||
});
|
||||
// 查看视频
|
||||
$(document).on('click', 'video',function(){
|
||||
var src = $(this).attr('src');
|
||||
layer.open({
|
||||
type: 1,
|
||||
title: '查看视频',
|
||||
content: '<div style="text-align:center;"><video style="width:60%;margin:15px auto;" src="'+ src +'" autoplay controls></video></div>',
|
||||
area: ['60%', '60%']
|
||||
});
|
||||
});
|
||||
// ----------------------------------------图片/视频上传 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 --------------------------------
|
||||
// 切换商品类型
|
||||
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) {
|
||||
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) {
|
||||
console.log('delivery_type是空的');
|
||||
return initDeliveryType(goods_type);
|
||||
}
|
||||
for (var i = 0; i < delivery_type.length; i++) {
|
||||
console.log("input[name=delivery_type][value=" + delivery_type[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][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="image"> + 添加图片</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();
|
||||
|
||||
// 页面所有元素设置为只读
|
||||
setTimeout(function(){
|
||||
$("input").attr('readonly', true);
|
||||
$("textarea").attr('readonly', true);
|
||||
$(':radio').attr('disabled', true);
|
||||
$(':checkbox').attr('disabled', true);
|
||||
$(':button').attr('disabled', true);
|
||||
$('a').removeAttr('onclick');
|
||||
}, 1500);
|
||||
{/notempty}
|
||||
//-----------------------------------------编辑页面 end --------------------------------
|
||||
});
|
||||
</script>
|
||||
31
app/admin/view/goods/goods/audit.html
Normal file
31
app/admin/view/goods/goods/audit.html
Normal file
@ -0,0 +1,31 @@
|
||||
{layout name="layout1" /}
|
||||
<style>
|
||||
.redReq::before {
|
||||
content: '*';
|
||||
color: red;
|
||||
margin-right: 5px;
|
||||
}
|
||||
</style>
|
||||
<div class="layui-form">
|
||||
<input type="hidden" name="goods_id" value="{$goods_id}" />
|
||||
<div class="layui-form-item" style="margin-top: 15px;">
|
||||
<label class="layui-form-label redReq">审核状态</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="audit_status" value="1" title="审核通过">
|
||||
<input type="radio" name="audit_status" value="2" title="审核不通过" checked>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label redReq">审核说明</label>
|
||||
<div class="layui-input-block" style="width: 500px;">
|
||||
<textarea name="audit_remark" class="layui-textarea" style="height: 150px;"></textarea>
|
||||
</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 layui-hide">
|
||||
<input type="button" lay-submit lay-filter="audit-submit" id="audit-submit" value="确认">
|
||||
</div>
|
||||
</div>
|
||||
151
app/admin/view/goods/goods/goods_base.html
Normal file
151
app/admin/view/goods/goods/goods_base.html
Normal file
@ -0,0 +1,151 @@
|
||||
<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="实物商品" class="layui-input"/>
|
||||
<input type="radio" name="type" value="1" title="虚拟商品" 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" 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 disabled 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 disabled name="second_cate_id" lay-filter="second_category" switch-tab="0" verify-msg="请选择分类">
|
||||
<option value="">请选择分类</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="layui-input-inline">
|
||||
<select disabled 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"><span class="form-label-asterisk">*</span>商家分类:</label>
|
||||
<div class="layui-input-inline">
|
||||
<select disabled name="shop_cate_id" lay-filter="shop_cate_id" lay-verify="custom_required"
|
||||
lay-verType="tips" 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 disabled 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 disabled 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 disabled 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像素,最多上传5张</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">商品视频,在商品详情页面播放</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
8
app/admin/view/goods/goods/goods_content.html
Normal file
8
app/admin/view/goods/goods/goods_content.html
Normal 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>
|
||||
45
app/admin/view/goods/goods/goods_distribution.html
Normal file
45
app/admin/view/goods/goods/goods_distribution.html
Normal 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>
|
||||
131
app/admin/view/goods/goods/goods_sale_setting.html
Normal file
131
app/admin/view/goods/goods/goods_sale_setting.html
Normal 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="快递发货"/>
|
||||
<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 disabled 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="">
|
||||
</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>
|
||||
191
app/admin/view/goods/goods/goods_spec.html
Normal file
191
app/admin/view/goods/goods/goods_spec.html
Normal file
@ -0,0 +1,191 @@
|
||||
<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><span class="form-label-asterisk">*</span>市场价(元)</th>
|
||||
<th><span class="form-label-asterisk">*</span>价格(元)</th>
|
||||
<th><span class="form-label-asterisk">*</span>成本价(元)</th>
|
||||
<th><span class="form-label-asterisk">*</span>库存</th>
|
||||
<th><span class="form-label-asterisk">*</span>重量(kg)</th>
|
||||
<th><span class="form-label-asterisk">*</span>体积(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="one_spec_required|one_market_price"
|
||||
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="one_spec_required|one_chengben_price"
|
||||
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="one_spec_required|one_weight" name="one_weight"
|
||||
lay-verType="tips" autocomplete="off" switch-tab="1" verify-msg="请输入重量"></td>
|
||||
<td><input type="number" class="layui-input" lay-verify="one_spec_required|one_volume" 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><span class="form-label-asterisk">*</span>市场价(元)</th>
|
||||
<th><span class="form-label-asterisk">*</span>价格(元)</th>
|
||||
<th><span class="form-label-asterisk">*</span>成本价(元)</th>
|
||||
<th><span class="form-label-asterisk">*</span>库存</th>
|
||||
<th><span class="form-label-asterisk">*</span>重量(kg)</th>
|
||||
<th><span class="form-label-asterisk">*</span>体积(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">
|
||||
<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="more_spec_required|more_market_price" lay-verType="tips"
|
||||
autocomplete="off" switch-tab="1" verify-msg="请输入市场价" 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="more_spec_required|more_chengben_price" 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="more_spec_required|more_weight" lay-verType="tips"
|
||||
name="weight[]" autocomplete="off" switch-tab="1" verify-msg="请输入重量"></td>
|
||||
<td><input type="number" class="layui-input" lay-verify="more_spec_required|more_volume" 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>
|
||||
529
app/admin/view/goods/goods/lists.html
Normal file
529
app/admin/view/goods/goods/lists.html
Normal file
@ -0,0 +1,529 @@
|
||||
{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>
|
||||
</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="shop_name" id="shop_name" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<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="goods_column_id" id="goods_column_id" placeholder="请选择商品栏目" >
|
||||
<option value="">全部</option>
|
||||
{foreach $column_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.warehouse})</li>
|
||||
<li data-type='3' >回收站商品({$statistics.recycle})</li>
|
||||
<li data-type='4' >待审核商品({$statistics.audit_stay})</li>
|
||||
<li data-type='5' >审核未通过商品({$statistics.audit_refuse})</li>
|
||||
</ul>
|
||||
|
||||
<div class="layui-tab-content" style="padding: 0 15px;">
|
||||
<div class="layui-btn-container" style="margin-top: 10px">
|
||||
<button class="layui-btn layui-btn-sm layEvent layui-btn-primary" lay-event="more_audit" id="more_audit" style="display: none">批量审核</button>
|
||||
<button class="layui-btn layui-btn-sm layEvent layui-btn-primary" lay-event="more_lower" id="more_lower">批量下架</button>
|
||||
</div>
|
||||
|
||||
<table id="goods-lists" lay-filter="goods-lists"></table>
|
||||
|
||||
<script type="text/html" id="shop-info">
|
||||
<img src="{{d.shop_logo}}" style="height:60px;width: 60px" class="image-show">
|
||||
<div class="layui-input-inline" style="text-align: left;">
|
||||
<p>商家编号:{{d.shop_id}}</p>
|
||||
<p style="width: 180px;text-overflow:ellipsis;overflow: hidden">商家名称:{{d.shop_name}}</p>
|
||||
<p>商家类型:{{d.shop_type_desc}}</p>
|
||||
</div>
|
||||
</script>
|
||||
|
||||
<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">
|
||||
<a class="layui-btn layui-btn-normal layui-btn-sm" lay-event="view">查看</a>
|
||||
<a class="layui-btn layui-btn-normal layui-btn-sm" lay-event="set">设置</a>
|
||||
{{# if( (d.audit_status == 1) ){ }}
|
||||
<a class="layui-btn layui-btn-normal layui-btn-sm" lay-event="re_audit">违规重审</a>
|
||||
{{# } }}
|
||||
{{# if( (d.audit_status == 0) ){ }}
|
||||
<a class="layui-btn layui-btn-normal layui-btn-sm" lay-event="audit">审核</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}
|
||||
});
|
||||
updateTabNumber();
|
||||
});
|
||||
|
||||
//清空查询
|
||||
form.on('submit(clear-search)', function(){
|
||||
$('#shop_name').val('');
|
||||
$('#goods_name').val('');
|
||||
$('#goods_type').val('');
|
||||
$('#platform_cate_id').val('');
|
||||
$('#shop_cate_id').val('');
|
||||
$('#goods_column_id').val('');
|
||||
form.render('select');
|
||||
//刷新列表
|
||||
table.reload('goods-lists', {
|
||||
where: [], page: {curr: 1}
|
||||
});
|
||||
updateTabNumber();
|
||||
});
|
||||
|
||||
|
||||
$('.layui-btn.layuiadmin-btn-goods').on('click', function(){
|
||||
var type = $(this).data('type');
|
||||
active[type] ? active[type].call(this) : '';
|
||||
});
|
||||
|
||||
//获取列表
|
||||
getList(1); // 初始加载获取销售中的商品
|
||||
//切换列表
|
||||
element.on('tab(like-tabs)', function (data) {
|
||||
var type = $(this).attr('data-type');
|
||||
// 重置搜索模块
|
||||
$('#shop_name').val('');
|
||||
$('#goods_name').val('');
|
||||
$('#platform_cate_id').val('');
|
||||
$('#shop_cate_id').val('');
|
||||
$('#goods_column_id').val('');
|
||||
form.render('select');
|
||||
|
||||
if (type == 4) {
|
||||
$("#more_audit").show();
|
||||
}else {
|
||||
$("#more_audit").hide();
|
||||
}
|
||||
if (type == 1 || type == 2 || type == 3) {
|
||||
$("#more_lower").show();
|
||||
}else {
|
||||
$("#more_lower").hide();
|
||||
}
|
||||
// 重新获取商品列表
|
||||
getList(type);
|
||||
});
|
||||
|
||||
//监听工具条
|
||||
table.on('tool(goods-lists)', function(obj){
|
||||
var id = obj.data.id;
|
||||
var name = obj.data.name;
|
||||
|
||||
if(obj.event === 'view') {
|
||||
var id = obj.data.id;
|
||||
layer.open({
|
||||
type: 2
|
||||
,title: '查看'
|
||||
,content: '{:url("goods.goods/view")}?goods_id='+id
|
||||
,area: ['90%', '90%']
|
||||
,btn: ['确定', '返回']
|
||||
,maxmin: true
|
||||
,yes: function(index, layero){
|
||||
layer.close(index);
|
||||
}
|
||||
,cancel: function(index, layero){
|
||||
layer.close(index);
|
||||
}
|
||||
});
|
||||
}
|
||||
if(obj.event === 're_audit') {
|
||||
var id = obj.data.id;
|
||||
layer.open({
|
||||
type: 2
|
||||
,title: '违规重审'
|
||||
,content: '{:url("goods.goods/reAudit")}?goods_id='+id
|
||||
,area: ['60%', '60%']
|
||||
,btn: ['确定', '返回']
|
||||
,scrollbar: false
|
||||
,maxmin: true
|
||||
,yes: function(index, layero){
|
||||
var iframeWindow = window['layui-layer-iframe'+ index]
|
||||
,submitID = 'reaudit-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/reAudit")}',
|
||||
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;
|
||||
updateTabNumber();
|
||||
table.reload('goods-lists');
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
submit.trigger('click');
|
||||
layer.close(index);
|
||||
}
|
||||
,cancel: function(index, layero){
|
||||
layer.close(index);
|
||||
}
|
||||
});
|
||||
}
|
||||
if(obj.event === 'set') {
|
||||
var id = obj.data.id;
|
||||
layer.open({
|
||||
type: 2
|
||||
,title: '设置'
|
||||
,content: '{:url("goods.goods/setInfo")}?goods_id='+id
|
||||
,area: ['60%', '60%']
|
||||
,btn: ['确定', '返回']
|
||||
,scrollbar: false
|
||||
,maxmin: true
|
||||
,yes: function(index, layero){
|
||||
var iframeWindow = window['layui-layer-iframe'+ index]
|
||||
,submitID = 'setinfo-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/setInfo")}',
|
||||
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){
|
||||
layer.close(index);
|
||||
}
|
||||
});
|
||||
}
|
||||
if(obj.event === 'audit') {
|
||||
var id = obj.data.id;
|
||||
layer.open({
|
||||
type: 2
|
||||
,title: '审核'
|
||||
,content: '{:url("goods.goods/audit")}?goods_id='+id
|
||||
,area: ['60%', '60%']
|
||||
,btn: ['确定', '返回']
|
||||
,scrollbar: false
|
||||
,maxmin: true
|
||||
,yes: function(index, layero){
|
||||
var iframeWindow = window['layui-layer-iframe'+ index]
|
||||
,submitID = 'audit-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/audit")}',
|
||||
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){
|
||||
layer.close(index);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
//图片放大
|
||||
$(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', fixed: 'left'}
|
||||
,{title: '商家信息',width:280, templet: '#shop-info'}
|
||||
,{title: '商品信息',width:280, templet: '#goods-info'}
|
||||
,{field: 'columnStr', title: '商品栏目',width:220}
|
||||
,{field: 'price',title: '价格区间(元)', width: 180, align: 'center'}
|
||||
,{field: 'sales_actual',width: 80,title: '总销售', align: 'center'}
|
||||
,{field: 'stock',width: 80,title: '总库存', align: 'center'}
|
||||
// ,{field: 'is_distribution_desc',width: 120,title: '分销商品', align: 'center'}
|
||||
// ,{width: 220,title: '分销比例', templet: '#ratio', align: 'center'}
|
||||
,{field: 'sort_weight',width: 120, title:'排序权重', align: 'center'}
|
||||
,{field: 'audit_remark', width: 220, title: '审核说明', align: 'center'}
|
||||
,{field: 'create_time', width: 220, title:'发布日期', align: 'center'}
|
||||
,{fixed: 'right', title: '操作', width: 280, align: 'center', toolbar: '#goods-operation'}
|
||||
]);
|
||||
// if(type == 5) { // 审核未通过,显示审核说明列(注意计时器时间控制,先让动态表格渲染完成,再去移除layui-hide)
|
||||
// setTimeout(function() {
|
||||
// $('.layui-table .layui-hide').removeClass('layui-hide');
|
||||
// }, 1500);
|
||||
// }
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新选项卡 统计数据
|
||||
*/
|
||||
function updateTabNumber() {
|
||||
var goods_column = $('#goods_column_id[name=goods_column_id]').val();
|
||||
like.ajax({
|
||||
url: '{:url("goods.goods/totalCount")}',
|
||||
data: {"goods_column_id" : goods_column},
|
||||
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.warehouse + ")");
|
||||
$(".layui-tab-title li[data-type=3]").html("回收站商品(" + res.data.recycle + ")");
|
||||
$(".layui-tab-title li[data-type=4]").html("待审核商品(" + res.data.audit_stay + ")");
|
||||
$(".layui-tab-title li[data-type=5]").html("审核未通过商品(" + res.data.audit_refuse + ")");
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
//事件
|
||||
var active = {
|
||||
more_audit: function(){
|
||||
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;
|
||||
}
|
||||
layer.open({
|
||||
type: 2
|
||||
,title: '批量审核'
|
||||
,content: '{:url("goods.goods/moreAudit")}?ids='+ids
|
||||
,area: ['60%', '60%']
|
||||
,btn: ['确定', '返回']
|
||||
,scrollbar: false
|
||||
,maxmin: true
|
||||
,yes: function(index, layero){
|
||||
var iframeWindow = window['layui-layer-iframe'+ index]
|
||||
,submitID = 'audit-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/moreAudit")}',
|
||||
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);
|
||||
updateTabNumber();
|
||||
table.reload('goods-lists');
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
submit.trigger('click');
|
||||
}
|
||||
,cancel: function(index, layero){
|
||||
layer.close(index);
|
||||
}
|
||||
});
|
||||
},
|
||||
more_lower: function() {
|
||||
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;
|
||||
}
|
||||
layer.open({
|
||||
type: 2
|
||||
,title: '批量下架'
|
||||
,content: '{:url("goods.goods/moreLower")}?ids='+ids
|
||||
,area: ['60%', '60%']
|
||||
,btn: ['确定', '返回']
|
||||
,scrollbar: false
|
||||
,maxmin: true
|
||||
,yes: function(index, layero){
|
||||
var iframeWindow = window['layui-layer-iframe'+ index]
|
||||
,submitID = 'reaudit-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/moreLower")}',
|
||||
data:field,
|
||||
type:"post",
|
||||
success:function(res)
|
||||
{
|
||||
if(res.code == 1)
|
||||
{
|
||||
layui.layer.msg(res.msg, {
|
||||
offset: '15px'
|
||||
, icon: 1
|
||||
, time: 1000
|
||||
},function () {
|
||||
updateTabNumber();
|
||||
table.reload('goods-lists');
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
submit.trigger('click');
|
||||
layer.close(index);
|
||||
}
|
||||
,cancel: function(index, layero){
|
||||
layer.close(index);
|
||||
}
|
||||
});
|
||||
},
|
||||
};
|
||||
like.eventClick(active);
|
||||
|
||||
});
|
||||
</script>
|
||||
31
app/admin/view/goods/goods/more_audit.html
Normal file
31
app/admin/view/goods/goods/more_audit.html
Normal file
@ -0,0 +1,31 @@
|
||||
{layout name="layout1" /}
|
||||
<style>
|
||||
.redReq::before {
|
||||
content: '*';
|
||||
color: red;
|
||||
margin-right: 5px;
|
||||
}
|
||||
</style>
|
||||
<div class="layui-form">
|
||||
<input type="hidden" name="ids" value="{$ids}" />
|
||||
<div class="layui-form-item" style="margin-top: 15px;">
|
||||
<label class="layui-form-label redReq">审核状态</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="audit_status" value="1" title="审核通过">
|
||||
<input type="radio" name="audit_status" value="2" title="审核不通过" checked>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label redReq">审核说明</label>
|
||||
<div class="layui-input-block" style="width: 500px;">
|
||||
<textarea name="audit_remark" class="layui-textarea" style="height: 150px;"></textarea>
|
||||
</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 layui-hide">
|
||||
<input type="button" lay-submit lay-filter="audit-submit" id="audit-submit" value="确认">
|
||||
</div>
|
||||
</div>
|
||||
24
app/admin/view/goods/goods/more_lower.html
Normal file
24
app/admin/view/goods/goods/more_lower.html
Normal file
@ -0,0 +1,24 @@
|
||||
{layout name="layout1" /}
|
||||
<style>
|
||||
.redReq::before {
|
||||
content: '*';
|
||||
color: red;
|
||||
margin-right: 5px;
|
||||
}
|
||||
</style>
|
||||
<div class="layui-form">
|
||||
<input type="hidden" name="ids" value="{$ids}" />
|
||||
<div class="layui-form-item" style="margin-top: 15px;">
|
||||
<label class="layui-form-label redReq">违规原因</label>
|
||||
<div class="layui-input-block" style="width: 800px;">
|
||||
<textarea name="reason" class="layui-textarea" style="height: 150px;"></textarea>
|
||||
</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 layui-hide">
|
||||
<input type="button" lay-submit lay-filter="reaudit-submit" id="reaudit-submit" value="确认">
|
||||
</div>
|
||||
</div>
|
||||
24
app/admin/view/goods/goods/re_audit.html
Normal file
24
app/admin/view/goods/goods/re_audit.html
Normal file
@ -0,0 +1,24 @@
|
||||
{layout name="layout1" /}
|
||||
<style>
|
||||
.redReq::before {
|
||||
content: '*';
|
||||
color: red;
|
||||
margin-right: 5px;
|
||||
}
|
||||
</style>
|
||||
<div class="layui-form">
|
||||
<input type="hidden" name="goods_id" value="{$goods_id}" />
|
||||
<div class="layui-form-item" style="margin-top: 15px;">
|
||||
<label class="layui-form-label redReq">违规原因</label>
|
||||
<div class="layui-input-block" style="width: 800px;">
|
||||
<textarea name="reason" class="layui-textarea" style="height: 150px;"></textarea>
|
||||
</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 layui-hide">
|
||||
<input type="button" lay-submit lay-filter="reaudit-submit" id="reaudit-submit" value="确认">
|
||||
</div>
|
||||
</div>
|
||||
61
app/admin/view/goods/goods/set_info.html
Normal file
61
app/admin/view/goods/goods/set_info.html
Normal file
@ -0,0 +1,61 @@
|
||||
{layout name="layout1" /}
|
||||
<div class="layui-form">
|
||||
<input type="hidden" name="goods_id" value="{$goods_id}" />
|
||||
<div class="layui-form-item" style="margin-top: 15px;">
|
||||
<label class="layui-form-label">商品栏目</label>
|
||||
<div class="layui-input-block" style="width: 380px;">
|
||||
<div id="clomunList"></div>
|
||||
</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" style="width: 380px;">
|
||||
<input type="number" name="sales_virtual" value="{$goods_detail.sales_virtual}" min="0" class="layui-input" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">虚拟浏览量</label>
|
||||
<div class="layui-input-block" style="width: 380px;">
|
||||
<input type="number" name="clicks_virtual" value="{$goods_detail.clicks_virtual}" min="0" class="layui-input" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">排序权重</label>
|
||||
<div class="layui-input-block" style="width: 380px;">
|
||||
<input type="number" name="sort_weight" value="{$goods_detail.sort_weight}" min="0" 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 layui-hide">
|
||||
<input type="button" lay-submit lay-filter="setinfo-submit" id="setinfo-submit" value="确认">
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
layui.config({
|
||||
base: '/static/lib/'
|
||||
}).extend({
|
||||
xmSelect: 'xmSelect/xm-select'
|
||||
}).use(['xmSelect', 'jquery'], function (){
|
||||
var xmSelect = layui.xmSelect;
|
||||
var $ = layui.jquery;
|
||||
var column_list = '{$column_list|raw}';
|
||||
var initValue = '{$goods_detail.column_ids | raw}';
|
||||
|
||||
var xmIns = xmSelect.render({
|
||||
el: '#clomunList',
|
||||
language: 'zn',
|
||||
data: JSON.parse(column_list),
|
||||
prop: {
|
||||
value: 'id'
|
||||
},
|
||||
initValue: JSON.parse(initValue)
|
||||
})
|
||||
});
|
||||
</script>
|
||||
Reference in New Issue
Block a user