Skip to content

Latest commit

 

History

History
64 lines (64 loc) · 2.58 KB

7-27 2017 T2 01.md

File metadata and controls

64 lines (64 loc) · 2.58 KB

动态显示模型控制

实现过程:

  1. 前端在通过后端获取显示模型。
  2. 后端按具体情况给前端全查,或按目标查出对应的模型返回前端。
  3. 前端会根据对应的字段名控制数据在页面上布局和各种情况下对应的渲染。

实施细节:

  1. 模型以去格式化的 JSON String 形式存在数据库的一个字段中。
  2. 根据模型刷新实时性的需求,可页面初始化时获取并缓存或实时获取。

相关代码:

  • 显示模型:
    {
        "Type": "ROLL",     //指定类型,用于前端匹配
        "Nofification": null,
        "HeaderCount": 1,   //表示头部有多少行
        "Render": [
            [ //第1行结构
                "MPO",  //第1列结构
                "Batch",  //第2列结构
                "RollNo"  //第3列结构
            ], 
            [ //第2行结构 
                "Color",    //第1行结构
                "Supplier"  //第2列结构
            ], 
            [ //第3行结构
                "MRP Owner", //第1列结构
                "Length", //第2列结构
                "Width"  //第3列结构
            ]
        ]
    }
  • 数据库模型
    create table display_model (
        id bigint not null auto_increment comment 'ID',
        modelType varchar(64) comment '类型',
        display_script text comment '卡片模型',
        line_display_script text comment 'portal Table 显示模型',
        create_by bigint comment '创建者',
        create_time bigint comment '创建时间',
        update_by bigint comment '上次更新者',
        update_time bigint comment '上次更新时间',
        primary key (id)
    );
  • 后端模型组积
    @Override
    public void getCardDisplayModel(ResultJSON resultJSON) throws InvocationTargetException, IllegalAccessException {
        List<DisplayModel> displayModelList = displayModelService.getDisplayScript(); // 数据库模型表查询
        List<Map<String, Object>> modelList = new ArrayList<>();
        for (DisplayModel displayModel : displayModelList) {
            Map<String, Object> modelMap = new HashMap<>();
            String displayModelBody = displayModel.getDisplayScript();
            if (null != displayModel && StringUtils.isNotBlank(displayModelBody))
                modelMap.put("displayScript", JSON.parseObject(displayModelBody));
            else throw new BusinessException("System Configuration Exception");
            modelMap.add(modelMap);
        }
        resultJSON.dataSet(0, "Success!", modelList);
    }