商品分类自定义表单的设计与实现

进销存系统物资分类事件繁琐的事情;简单分类无法实现个性商品定制录入数据的问题; 亦不可能对不同种类商品建立不同的数据表类型,虽然可行,但维护成本极高;

下面提供一种表单解决思路,既能满足定制表单,又能支持无限拓展。

import java.io.Serializable;

/**
 * @author Cheng.Wei
 * @ClassName DefaultData
 * @Description 属性默认值
 * @date 2017-09-04 11:51
 */
public class DefaultData implements Serializable {
    private String value;//表单填充值
    private Boolean defaultVal;//是否默认

}
---------------------------------------------------------------------------------------------------------------------------------

import java.io.Serializable;
import java.util.List;

/**
 * @author Cheng.Wei
 * @ClassName PropertyInfo
 * @Description 属性信息
 * @date 2017-09-04 10:50
 */
public class PropertyInfo implements Serializable{
    private String name;//名称
    private String formName;//表单字段
    private String style;// 样式  input、 select
    private Integer width;//列宽
    private String align;//对齐方式
    private Boolean required;//是否必须
    private List defaultData;//默认值

}

-----------------------------------------------------------------------

import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * @author Cheng.Wei
 * @ClassName Categories
 * @Description 物品分类
 * @date 2017-09-04 09:01
 */
@Document(collection="categories")
public class Categories implements Serializable{
    @Id
    private String id;
    private String name;
    private List property;
    private Boolean enable;                 // 是否可用
    private Boolean deleted;                // 是否删除
    private Date createTime;                // 创建时间
    private Date modifiedTime;              // 修改时间

}

其实已经相当明了,Categories是物品的分类,PropertyInfo作为定制表单的参数信息,DefaultData类进一步对每一个属性的默认值进行归类,解决根据物品种类的不同,定制化表单提交参数的问题。

数据样式:

​{
"_id": ObjectId('59ad061b8c39ba13ec9d592f'),
"_class": "com.xxxxCategories",
"name": "电脑",
"property": [
{
"name": "品牌",
"formName": "band",
"style": "select",
"width": 50,
"align": "left",
"required": true,
"defaultData": [
{
"value": "联想",
"defaultVal": false
},
{
"value": "戴尔",
"defaultVal": true
}
]
},
{
"name": "内存",
"formName": "ram",
"style": "select",
"width": 50,
"align": "left",
"required": true,
"defaultData": [
{
"value": "4GB",
"defaultVal": false
},
{
"value": "8GB",
"defaultVal": true
},
{
"value": "16GB",
"defaultVal": true
}
]
},
{
"name": "显卡",
"formName": "gpu",
"style": "input",
"width": 50,
"align": "left",
"required": true,
"defaultData": []
}
],
"enable": true,
"deleted": false
}



你可能感兴趣的:(物品分类,表单,设计,数据,工作记录)