需求是用户可以在页面管理展示的字段,并且对字段的展示顺序自定义排序,控制所有字段显示隐藏,表中有默认基础字段是不可以删除的
这边全部都是后端实现:
思路:
伪代码:
字段管理
public class StaffManager implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@Column(name = "name", length = 32)
private String name;
@ApiParam(value = "排序")
private Integer sorts;
@ApiParam(value = "代表字段")
private String code;
@ApiParam(value = "是否展示")
private Boolean isShow;
}
@ApiParam(value = "自定义字段")
private String customFields;
/**
* 定义字段
*
* @param content [{"name":"xx", "sorts":"", "code":"name", "isShow":"true"}...]
*/
public void update(String content) {
//清空数据表
dao.truncate();
JSONArray array = JSONObject.parseArray(content);
for (int i = 0; i < array.size(); i++) {
StaffManager staffManager = JSONObject.toJavaObject((JSONObject)array.get(i), StaffManager.class);
if (StringUtil.isEmpty(staffManager.getCode())) {
//设置扩展字段的名称
staffManager.setCode("extend_" + UUIDUtil.getCode());
}
staffManager.setSorts(i);
//保存对象。。。
}
}
/**
* 新增用户
*
* @param content 扩展字段 [{"code":"xx", "value":""}]
* extend
*/
public void insert(Integer id, String name, String tel, Integer classId,
Integer deptId, String tagCode, String content) {
if (StringUtil.isNotEmpty(content)){
JSONArray array = JSONObject.parseArray(content);
List
最后查询排序结果
public Map pageVagueStaff2(Integer num, Integer size, String content) {
//分页获取到列表对象。。。
Page = ...
List