默认值配置

1.基本功能 1.基本功能

1.1.一般控件默认值 1.1.一般控件默认值

  • 平台支持配置默认值,在查询或者新增的时候对字段赋值。
  • 平台支持配置的初始值类型包括:当前用户名称、当前用户代码、当前组织名称、当前组织代码、当前角色名称、当前角色代码、当前组织所属结算公司名称、当前组织所属结算公司代码、当前登录部门名称、当前登录部门代码等类型
  • 默认值(getDefaultValue请求)支持从前端获取,需要云平台版本需要更新到5.4.F.0+,并且更新至最新的BaseController.js。
  • 表格默认值-效果1
    QQ截图20190920141758

    1.2.联想控件默认值 1.2.联想控件默认值

    1.3.日期控件默认值 1.3.日期控件默认值

  • 日期控件用作查询条件时,通常是用区间查询类型,比如开始从月初到月末时间等。
  • 如果初始值类型不满足要求,区间查询的时间范围可以自定义配置。比如初始值类型为当前时间+默认值 :(3:M)表式当前时间向后推迟三个月,(-3:M)表当前时间向前提前三个月
  • 初始值类型支持当前日期、当前时间等
  • QQ截图20190923165125

    2.配置方法 2.配置方法

  • 一般控件默认值的配置方式都一样,除了联想控件比较特殊,配置请参考2.2.联想控件默认值;如果是下拉控件的默认值,在配置的时候要填代码值,不能填显示值;如果是日期控件,在初始值类型不符合要求时,可以自定义日期时间,配置请参考2.3.日期控件默认值。
  • 新表格和旧表格的配置方式是一样的。
  • 如果此元素不需要在界面上显示,则修改【控件类型】为【隐藏】,【显示标签】不要勾选。
  • 如果是当前表单编辑的默认值,需要配置在表格上,而不是配置在维护界面的数据元素上面。
  • 如果是分布式项目(Spring Boot模式),改造后默认值的相关信息都在获取权限时一并获取,所以需要将(gurs或认证中心里的)SecurityController.java 里面的getSessionAttrsAndNoPermits2方法进行改造,版本更新至5.4.F.0+即可。
  • 2.1.一般控件默认值 2.1.一般控件默认值

    配置

    1. 项目管理-项目初始化-视图级配置:新增一笔数据,配置项类型为从前端获取默认值(Y/N),配置内容为Y,保存后并提交。
      QQ截图20190918150705
    2. 对象建模–业务对象–业务对象管理:编辑业务对象,点击【可视化布局】按钮进入页面布局,如果是表格,那么就选择表格中的字段,在右侧菜单中找到默认值,输入数据;如果是表单,那么就选择当前表单字段,在右侧菜单中找到默认值,输入数据。此默认值一般是固定值。
      QQ截图20190918143847
      QQ截图20190920143132
    3. 对象建模–业务对象–业务对象管理:编辑业务对象,点击【可视化布局】按钮进入页面布局,如果是表格,那么就选择表格中的字段,在右侧菜单中找到初始值类型,选择对应的类型数据;如果是表单,那么就选择当前表单字段,在右侧菜单中找到初始值类型,选择对应的类型数据。
      QQ截图20190918151322
      QQ截图20190920143228

    代码

    固定值类型的默认值的代码,直接是在新增方法上。
    表格

    $scope._finishEditGridWrap($scope.testLixq201TableFormGrid,$scope.testLixq201TableForms,$scope);
            //0  TestLixq201TableForm 
                var newRow = options.newRow || {
                typeId:'S',
                            creator:$scope.$$gridDefaultValue.testLixq201TableForm_creator,
                    testCase201Id : $scope.newTestLixq201TableFormGridId++,
                    rowStatus : 4
                };
    

    表单

    $scope.testSample201 = {
                    rowStatus : 4,
                    testCase201Id : Params.testCase201Id || -9999999,
    
                    codeName:'CODE01',
                };
    

    初始值类型的默认值生成的代码,在initGridDefaultValue这个方法上。

    $scope.initGridDefaultValue = function() {
        var defaultParams = [];
        defaultParams.push({
            ut: '01',
            ivt: '0',
            dv: '',
            field: 'TestLixq201TableForm_creator',
            boName: 'TestLixq201TableForm'
        });
    
        if (defaultParams.length > 0) {
            var data = $scope.getDefaultValue(defaultParams);
            if (data) {
                if (data.defaultValueInfos != undefined && data.defaultValueInfos != null) {
                    angular.forEach(defaultParams, function(defaultParam, index) {
                        var fieldProperty = defaultParam.field.charAt(0).toLocaleLowerCase() + defaultParam.field.substring(1);
                        if (defaultParam.ut == '11') {
                            $scope.$$gridDefaultValue[fieldProperty] = data.defaultValueInfos[defaultParam.field].split(":")[0];
                        } else if (defaultParam.ut == '04' || defaultParam.ut == '05' || defaultParam.ut == '31' || defaultParam.ut == '37') {
                            $scope.$$gridDefaultValue[fieldProperty] = new Date(data.defaultValueInfos[defaultParam.field]);
                        } else {
                            $scope.$$gridDefaultValue[fieldProperty] = data.defaultValueInfos[defaultParam.field];
                        }
                    });
                    if ($scope._pageState) {
                        $scope._pageState.resetDataState();
                    }
                }
            }
        }
    }
    

    如果不配置从前端获取默认值(Y/N),那么走旧的模式,生成的代码有差异。

    $scope.initGridDefaultValue = function() {
        var defaultParams = [];
        defaultParams.push({
            ut: '01',
            ivt: '0',
            dv: '',
            field: 'TestLixq201TableForm_creator',
            boName: 'TestLixq201TableForm'
        });
    
        if (defaultParams.length > 0) {
            $http.post($config.ctx + '/defaultValue/getDefaultValue', defaultParams).success(function(data) {
                if (data.success != undefined && data.success == true) {
                    if (data.defaultValueInfos != undefined && data.defaultValueInfos != null) {
                        angular.forEach(defaultParams, function(defaultParam, index) {
                            var fieldProperty = defaultParam.field.charAt(0).toLocaleLowerCase() + defaultParam.field.substring(1);
                            if (defaultParam.ut == '11') {
                                $scope.$$gridDefaultValue[fieldProperty] = data.defaultValueInfos[defaultParam.field].split(":")[0];
                            } else if (defaultParam.ut == '04' || defaultParam.ut == '05' || defaultParam.ut == '31' || defaultParam.ut == '37') {
                                $scope.$$gridDefaultValue[fieldProperty] = new Date(data.defaultValueInfos[defaultParam.field]);
                            } else {
                                $scope.$$gridDefaultValue[fieldProperty] = data.defaultValueInfos[defaultParam.field];
                            }
                        });
                        if ($scope._pageState) {
                            $scope._pageState.resetDataState();
                        }
                    }
                }
            });
        }
    }
    ;
    
    

    2.2.联想控件默认值 2.2.联想控件默认值

    **

  • 联想控件一般配置初始值类型,值字段和文本字段都要配置。
  • 配置

    1. 对象建模–业务对象–业务对象管理:编辑业务对象,点击【可视化布局】按钮进入页面布局;
    2. 在可视化布局中,对查询字段中的联想控件配置初始值。点击需要配置默认值的字段,在右侧的菜单栏找到【初始值类型】字段,选择当前登录事业部名称
      QQ截图20200521095729
    3. 然后界面要多加值字段即code字段,将【控件类型】改成隐藏,【初始值类型】选择当前登录事业部代码
      QQ截图20200521100133

    代码

    生成的代码在initQueryDefaultValue方法上

    2.3.日期控件默认值 2.3.日期控件默认值

  • 默认值内容加入了表达式的支持,格式:(年/月/日/时/分/秒):[y|M|d|H|m|s]
  • 1:y       代表当前年加一年
    1:M      代表当前月加一月
    1:d      代表当前日加一日
    1:H      代表当前时加一时
    1:m      代表当前分加一分
    1:s       代表当前秒加一秒

    配置

    1. 对象建模–业务对象–业务对象管理:编辑业务对象,点击【可视化布局】按钮进入页面布局;
    2. 在可视化布局中,点击区间查询开始的字段,在右侧的菜单栏找到【初始值类型】字段,选择当前日期,在【默认值】字段,输入-3:M,点击区间查询结束字段,在右侧的菜单栏找到【初始值类型】字段,选择当前日期,在【默认值】字段,输入3:M,即查询当前时间前后3个月的数据。
      QQ截图20190923164252
      QQ截图20190923164232

    代码

    生成的代码在initDefaultValue方法上。

    $scope.initDefaultValue = function() {
        var defaultParams = [];
        $scope.$$defaultValue = {};
        if (defaultParams.length > 0) {
            var data = $scope.getDefaultValue(defaultParams);
            if (data) {
                if (data.defaultValueInfos != undefined && data.defaultValueInfos != null) {
                    angular.forEach(defaultParams, function(defaultParam, index) {
                        var fieldProperty = defaultParam.field.charAt(0).toLocaleLowerCase() + defaultParam.field.substring(1);
                        if (defaultParam.ut == '11') {
                            $scope.$$defaultValue[fieldProperty] = data.defaultValueInfos[defaultParam.field].split(":")[0];
                        } else if (defaultParam.ut == '04' || defaultParam.ut == '05' || defaultParam.ut == '31' || defaultParam.ut == '37') {
                            $scope.$$defaultValue[fieldProperty] = new Date(data.defaultValueInfos[defaultParam.field]);
                        } else {
                            $scope.$$defaultValue[fieldProperty] = data.defaultValueInfos[defaultParam.field];
                        }
                    });
    
                    if ($scope._pageState) {
                        $scope._pageState.resetDataState();
                    }
                }
            }
        }
    }
    

    3.常用扩展 3.常用扩展

    4.版本更新 4.版本更新

    5.4.F,2019.05.10

    优化

  • 平台getDefaultValue请求支持从前端获取。