日期

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

1.1.日期控件 1.1.日期控件

  • 日期在数据库中存储年月日,也支持数据库存储到年月
  • 如果存储到年月日,平台支持配置数据库存储date类型的,还可以存储varchar类型。
  • 如果存储到年月,平台支持配置数据库存储varchar类型。
  • 日期控件可以直接输入亦可选择,当焦点落在输入框内时,输入框边框变为蓝色,提示用户当前为待选状态。
  • 日期varchar-效果2
    QQ截图20190923152440

    1.2.日期控件的默认值1.2.日期控件的默认值

  • 日期控件用作查询条件时,通常是用区间查询类型,比如月初到月末时间等。
  • QQ截图20190923165125

  • 如果有特殊需求,比如需要查询当前日期前后半年时间的数据,此时区间查询的时间范围可以自定义设置,使用【初始值类型】和【默认值】2个字段组合配置。
  • 初始值类型支持当前日期、当前时间
  • 2.配置方法 2.配置方法

    2.1.日期控件 2.1.日期控件

  • 数据建模–数据结构–数据元素:编辑数据元素,如果数据库存储是date类型,此处数据类型必须为【日期型】;
  • QQ截图20190928115214

  • 如果数据库存储的是varchar类型,此处的数据类型为【日期(字符串)】或【日期-年月(字符串)】。
  • QQ截图20190928115149

    配置

    1. 对象建模–业务对象–业务对象管理:编辑业务对象,点击【可视化布局】按钮进入页面布局;
    2. 在可视化布局中,找到要配置日期控件的字段,如果数据库存储到【年月日】,那么将其控件类型修改为【日期】类型,无论数据库存储的是date或者是varchar,这里的控件类型都是【日期】;如果是存储到【年月】,那么将其控件类型修改为【日期-年月】,这种情况下目前只支持数据库存储的是varchar类型
      QQ截图20190923135415
      QQ截图20190923155524
    3. 提交业务对象,生成代码。

    代码

    数据库字段类型为date:在实体类中,需要看到@DateType的注解以及Date类型

        @Column(name="CANCEL_TIME",nullable = true,length=0)
        @DateType
        private Date cancelTime;
    

    在前端界面,则要看到日期控件标签g-date以及格式化标签format

    <g-date g-focus-select name="testCaseNew103.cancelTime" ng-model="testCaseNew103.cancelTime" format="yyyy-MM-dd " ></g-date>
    

    数据库字段类型为varch:在实体类中,需要看到@DateString的注解以及String类型

        @Column(name="CANCEL_TIME",nullable = true,length=50)
        @DateString
        private String cancelTime;
    

    在前端界面,则要看到日期控件标签g-date以及格式化标签format

    <g-date g-focus-select name="testCaseNew103.cancelTime" ng-model="testCaseNew103.cancelTime" format="yyyy-MM-dd " ></g-date>
    

    2.2.日期控件的默认值2.2.日期控件的默认值

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

    配置

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

    优化

  • SecurityController中优化,默认值前台取数日期时间等优化逻辑