1. 商品规格参数
1.1. 什么是商品规格参数
1.2. 分析
同一个商品类目下的商品的规格参数的格式(内容)一样,只是具体的数据不同。
不同的类目的商品规格参数的格式是不同的。
1.3. 如何实现?
方案一:
针对每一个商品类目都创建一张表,来存储规格参数数据。
可行性: 不推荐。 维护的表太多了。
方案二:
使用模板的思想实现。
方案二具体实现:
1、 模板如何存储?
a) 存储到数据库
b) 字段不能固定
i. Map
ii. Json
2、 存储的json结构
a) 模板结构
b) 最终数据结构
1.4. 数据库表结构
需要有2张表:
1、 模板表,需要和商品类目关联
2、 规格参数数据表,需要和商品关联
1.4.1. 模板表
1.4.2. 最终数据表
1.1. 页面功能
1.1.1. 选择类目
根据选择的类目进行判断,如果该类目所对应的模板存在,提醒用户已经存在,如果模板不存在,可以创建模板。
1.1.2. 后台开发根据类目id查找模板的接口
1.2. 点击提交事件
$("#itemParamAddTable .submit").click(function(){
var params = [];
var groups = $("#itemParamAddTable [name=group]");
groups.each(function(i,e){
var p = $(e).parentsUntil("ul").parent().find("[name=param]");
var _ps = [];
p.each(function(_i,_e){
var _val = $(_e).siblings("input").val();
if($.trim(_val).length>0){
_ps.push(_val);
}
});
var _val = $(e).siblings("input").val();
if($.trim(_val).length>0 && _ps.length > 0){
params.push({
"group":_val,
"params":_ps
});
}
});
var url = "/rest/item/param/"+$("#itemParamAddTable [name=cid]").val();
//JSON.stringify将js的对象序列化为json字符串
$.post(url,{"paramData":JSON.stringify(params)},function(data){
$.messager.alert('提示','新增商品规格成功!',undefined,function(){
$(".panel-tool-close").click();
$("#itemParamList").datagrid("reload");
});
});
});
提交的数据结构:
1.3. 后端实现
效果:
1.4. 查询规格参数模板列表
TODO.
1.5. 新增商品时套用模板输入数据
1.5.2. 点击提交按钮,将用户的输入,生成json数据
1.5.3. 后台实现
Service:
效果: