批量操作

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

1.1. 批量状态 1.1. 批量状态

平台支持批量状态设置,界面仅仅是个按钮效果,点击后根据配置的内容进行变化,例如设置状态前入库单状态是未入库,点击设置状态按钮后,变成已入库。
效果1
效果2

1.2. 批量更新 1.2. 批量更新

平台支持批量更新配置,与批量状态不同的是它有单独的更新维护界面。
QQ图片20191031141721
QQ图片20191031141748

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

云平台版本需要更新到5.5.0.0+,包括前端BaseController.js文件。

2.1. 批量状态 2.1. 批量状态

配置

  1. 对象建模–业务对象–业务对象管理:编辑要配置设置状态的业务对象,进入方法定义tab页。
    QQ截图20191031152434
  2. 新增方法定义,输入【调用方法名称】、【调用方法描述】、【方法类型】处选择批量状态,【URL地址】处输入业务对象名称(首字母小写)/调用方法名称,新增一个设置状态的方法。
    QQ截图20191031152625
  3. 进入下方批量状态tab页,左侧为属性列表,右侧为更新列表,在左侧属性列表中勾选要设置状态的属性,点击右移箭头,把要设置状态的属性移入更新列表。
    QQ截图20191031152823
  4. 在右侧更新列表处,设置默认值类型(变量、表达式、固定值),默认值(设置状态后的值)。
    (1)默认值类型:
    变量:数字、字符串
    表达式:方法、运算
    固定值:平台默认值,如当前用户、当前日期等
    (2)如果选择的属性控件类型是下拉框或者联想控件,需要在搜索帮助名、字典处填入相应的数据字典和搜索帮助名,还需注意如果是下拉控件,在默认值处填入的是数据字典中对应的代码值。
    配置5
    12122
  5. 编辑业务对象,点击【可视化布局】按钮进入可视化编辑,配置设置状态按钮。
    QQ截图20191031155614
  6. 设置完后点击保存,并提交业务对象。

代码

在业务对象+BsCtrl.js文件中生成批量状态方法。

/**
         * GLPaaS生成
         * 批量状态 
         */
        $scope.batchStausTestDengpp3201S = function(){
            var checkRows = $scope.testDengpp3201SCheckedRows;
            if (checkRows.length == 0){
                $scope.baseAlert("提示", "暂无选中的记录");
                return;
            }
            var modifiedData = _.filter($scope.testDengpp3201Ss, function (item) {return item.rowStatus == 4 || item.rowStatus == 16 })
            if (modifiedData && modifiedData.length>0) {
                $scope.baseShow({
                    title: '提示',
                    msg: '存在未保存的记录,请先保存!',
                    buttons: [{
                        text: '确定',
                        type: 'sure',
                        handler: function () {
                            $scope.testDengpp3201SGrid.select($scope.testDengpp3201SGrid.getPhysicalRow($scope.testDengpp3201S), $scope.testDengpp3201SGrid.__selectedColumnIndex);
                        }
                    }]
                });
                return;
            }
            $http.post($config.ctx + '/testDengpp3201S/batchStaus', checkRows).success(function (data) {
                $scope.baseAlert("提示", data.msg);
                $scope.refreshCurrentPage("TestDengpp3201S");
            })
        }

2.2. 批量更新 2.2. 批量更新

平台版本必须是5.5.0.0+。

配置

  1. 对象建模–业务对象–业务对象管理:编辑要配置批量更新的业务对象,进入方法定义tab页。
    QQ截图20191031160931
  2. 新增方法定义,输入【调用方法名称】、【调用方法描述】、【方法类型】处选择批量更新,【URL地址】处输入业务对象名称(首字母小写)/调用方法名称,【简易标题】可以设置批量更新的弹框标题,【国际化标题】则是将支持弹框标题国际化,宽、高分别定义弹框的宽跟高。
    QQ截图20190525140453
  3. 进入下方批量更新tab页,左侧为属性列表,右侧为更新列表,在左侧属性列表中勾选要设置批量更新的属性,点击右移箭头,把要设置批量更新的属性移入更新列表。
    (1)如果批量更新的维护界面即弹框是云平台提供的默认维护界面的话,则需要在批量更新tab页维护需要的字段
    (2)如果批量更新的维护界面是用户自定义界面,则需要配置一个页面类型为自定义页面的界面,并在跳转地址输入配置的自定义页面的路径(eg:/html/platform/implement/metadata/xxx.html),此时不需要在批量更新tab页维护字段,因为要维护的字段已经在自定义页面维护好。
    QQ截图20190525141040
  4. 在右侧更新列表处,设置默认值类型(变量、表达式、固定值),默认值(设置状态后的值)。
    (1)默认值类型:
    变量:数字、字符串
    表达式:方法、运算
    固定值:平台默认值,如当前用户、当前日期等
    (2)如果选择的属性控件类型是下拉框或者联想控件,需要在搜索帮助名、字典处填入相应的数据字典和搜索帮助名,还需注意如果是下拉控件,在默认值处填入的是数据字典中对应的代码值。
  5. 编辑业务对象,点击【可视化布局】按钮进入可视化编辑,配置批量更新按钮。
    QQ截图20191031161904
  6. 设置完后点击保存,并提交业务对象,然后重新生成代码。

代码

在业务对象+BsCtrl.js文件中生成批量更新方法,如果批量更新的维护界面是用户自定义界面,参考如下:

        /**
     * GLPaaS生成
     * 批量更新 常用案例NewHot103
     */
        $scope.batchUpdateTestCaseNewHot103 = function() {
            var url = "/html/sample/test/testCaseNewHot103batchUpdate.html";
            var openType = "2";
            var checkRows = $scope.testCaseNewHot103CheckedRows;
            if (checkRows.length == 0) {
                $scope.baseAlert("提示", "暂无选中的记录");
                return;
            }
            if (url.indexOf("?") >= 0) {
                url = url + "&openType=" + openType;
            } else {
                url = url + "?openType=" + openType;
            }
            url = url + "&boName=TestCaseNewHot103&methodType=BATCH_UPDATE&methodName=batchUpdate";
            var batchUpdateUrl = '/testCaseNewHot103/batchUpdate';
            url = url + '&batchUpdateUrl=' + batchUpdateUrl;
            var options = {
                title: '自定义批量更新',
                closable: true,
                modal: true,
                url: url,
                width: 900,
                height: 700,
                data: checkRows
            };
            $scope.showUrl(options);
        }
        ;

批量更新的维护界面即弹框是云平台提供的默认维护界面,参考如下:

        /**
     * GLPaaS生成
     * 动态批量更新 常用案例NewHot103
     */
        $scope.dynamicUpdateTestCaseNewHot103 = function() {
            var url = "/html/platform/implement/metadata/ipfCommonBatchUpdateManage.html";
            var openType = "2";
            var checkRows = $scope.testCaseNewHot103CheckedRows;
            if (checkRows.length == 0) {
                $scope.baseAlert("提示", "暂无选中的记录");
                return;
            }
            if (url.indexOf("?") >= 0) {
                url = url + "&openType=" + openType;
            } else {
                url = url + "?openType=" + openType;
            }
            url = url + "&boName=TestCaseNewHot103&methodType=BATCH_UPDATE&methodName=dynamicUpdate";
            var batchUpdateUrl = '/testCaseNewHot103/dynamicUpdate';
            url = url + '&batchUpdateUrl=' + batchUpdateUrl;
            var options = {
                title: '批量更新',
                closable: true,
                modal: true,
                url: url,
                width: 900,
                height: 700,
                data: checkRows
            };
            $scope.showUrl(options);
        }
        ;

        $scope.testCaseNewHot103 = {};
        $scope.testCaseNewHot103s = [];
        $scope.perTestCaseNewHot103s = [];
        $scope.testCaseNewHot103Deleteds = [];

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

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

5.5.0,2019.05.10

新特性

  • 平台支持更新状态配置
  • 平台支持批量更新功能