事件配置

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

1.1.表格双击行事件 1.1.表格双击行事件

平台支持表格配置双击事件,可用于跳转页面,也可扩展实现特定业务逻辑。新表格和旧表格的配置是一样的

1.2.新表格选中后事件 1.2.新表格选中后事件

平台支持配置新表格选中后事件,通过选中后事件从而实现键盘上下移动效果

1.3.表格自动查询配置 1.3.表格自动查询配置

平台支持配置点击菜单的时候直接进行数据的查询,而不是等页面加载后再次点击查询加载数据。如果是主子对象,子业务对象保存方式为统一保存,子对象是默认自动加载的,也可以在可视化布局上配置取消自动查询。新表格和旧表格的配置是一样的

  • 点击菜单,不配置自动查询的界面。此时是表格内无数据。
  • 表格自动查询-效果1

  • 点击菜单,配置自动查询的界面。此时是数据是自动加载的。
  • 表格自动查询-效果2

    1.4.表格焦点移开事件 1.4.表格焦点移开事件

    平台支持配置表格焦点移开事件,常见的场景是计算数据,例如输入A字段和B字段数据后,焦点移开,将自动计算所得的值赋值给C字段,新表格和旧表格的配置是一样的
    焦点移开1

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

    2.1.表格双击行事件 2.1.表格双击行事件

    表格编辑类型是新页面编辑默认不会有操作列,此时的表格支持双击进入编辑界面的功能,如果希望既可以双击进入,又可以通过勾选一行点编辑按钮进行,可以参考表格操作列配置

    配置

    1. 常见的表格双击事件一般是用于跳转页面,此处以双击进入编辑页为例。有两种实现方式,第一种直接平台配置;第二种需要平台配置双击事件,并且编写双击事件方法。如果只是简单的跳转至编辑页面,推荐使用第一种方式;如果是有复杂的业务逻辑,请参考方式二。

    方式一

    1. 该方式支持整个项目级的配置,也支持单独的表格配置。整个项目级配置后,则该视图下所有的表格都会生成对应的表格双击事件;如果是单个表格配置则只针对配置的业务对象。如果两者都有配置,优先取业务对象配置
    2. 项目级配置方法为:打开菜单项目管理-项目初始化-视图级配置,新增一笔记录,配置项类型【新页面编辑类型双击表格到编辑页面】,配置内容可不管(或也填N值)。接着保存提交数据。
      QQ截图20190919165003
    3. 如需单独配置业务对象的表格双击行事件,打开菜单对象建模–业务对象–业务对象管理,编辑业务对象,点击【可视化布局】按钮进入到业务对象可视化界面,选中表格,在右侧菜单栏找到表格双击跳转到编辑页字段并勾选,然后点击保存。
      QQ截图20190919182012

    方法二

    1. 对象建模–业务对象–业务对象管理:编辑业务对象,点击【可视化布局】按钮进入到业务对象可视化界面。
    2. 选中表格,选择事件页签,事件类型为【表格双击行事件】,执行类型【Angular表达式】,执行内容为【方法名】且后面的参数是默认的为(record,grid),即格式为【方法名(record,grid)】,然后点击保存。
      QQ截图20190919181442
    3. 编辑业务对象–方法定义:新增一个自定义js函数。(此步骤可以参考自定义js(单个类配置)
      具体代码可以参考常用扩展3.1. 表格双击事件
      QQ截图20190919170532

    代码

    前端html文件的表格部分生成 on-row-dbclick="dbclickCsScoreTempRowToEdit(record,grid,$event)"

     <g-hot-table  ng-cloak
                 data-source-name="CsScoreTempSource" 
                 lazy-render-layout="false"
                 lazy="false"
                 col-settings-key="CsScoreTempGrid"
    
                 on-row-click="gridRowClickCsScoreTemp($event,grid,record,colIndex,rowIndex,field,physicalRow)"
                 on-load-success="loadSuccessCsScoreTempGrid(grid,$event,source,physicalSource)"
                 on-render="initCsScoreTempGrid(grid,source)"
                 stretch="last"
                 on-before-column-sort="onBeforeColumnSortEvent(grid,col,sortName,sortDirection)"
                 validate-on-change-editing-cell
                 filters="true"
                    on-row-dbclick="dbclickCsScoreTempRowToEdit(record,grid,$event)"
                 selected-row="csScoreTempSelectedRow"
                 drag-check="true"
                 checked-rows="csScoreTempCheckedRows">
     <g-hot-index-column width="20px"></g-hot-index-column>
    <g-hot-checkbox-column width="30px"></g-hot-checkbox-column>
    

    业务对象名+BsCtrl.js文件上的方法:dbclickCsScoreTempRowToEdit

                /**
                * GLPaaS生成
                * 双击跳转到编辑页面
                */
                $scope.dbclickCsScoreTempRowToEdit = function(record,grid,$event){
                    $scope.editCsScoreTemp(record.csScoreTempId,record);
                };
    

    2.2.新表格选中后事件 2.2.新表格选中后事件

    配置

    1. 对象建模–业务对象–业务对象管理:编辑业务对象,点击【可视化布局】按钮进入到业务对象可视化界面。
    2. 选中表格,选择事件页签
      表格上下移动事件配置1
    3. 选择新表格选中事件,输入执行类型【Angular表达式】,执行内容为【方法名】及参数,例如gridRowSelected(grid,record,row,col);
      表格上下移动事件配置2
    4. 编辑业务对象–方法定义:新增一个自定义js函数,此步骤可以参考自定义js(单个类配置))。代码可参考常用扩展3.2. 新表格选中后事件

    代码

    前端html文件的表格部分生成on-row-click="gridRowClickTestCaseNewHot105($event,grid,record,colIndex,rowIndex,field,physicalRow);gridRowSelected(grid,record,row,col);"

    <g-hot-table  ng-cloak
                             data-source-name="TestCaseNewHot105Source" height="200px"                        
                             lazy-render-layout="false"
                             lazy="false"
                             on-row-click="gridRowClickTestCaseNewHot105($event,grid,record,colIndex,rowIndex,field,physicalRow);gridRowSelected(grid,record,row,col);"
                             on-load-success="loadSuccessTestCaseNewHot105Grid(grid,$event,source,physicalSource)"
                             on-render="initTestCaseNewHot105Grid(grid,source)"
                             stretch="last"
                             on-before-column-sort="onBeforeColumnSortEvent(grid,col,sortName,sortDirection)"
                             validate-on-change-editing-cell
                             selected-row="testCaseNewHot105SelectedRow"
                             drag-check="true"
                             checked-rows="testCaseNewHot105CheckedRows">
    <g-hot-index-column width="20px"></g-hot-index-column>
    <g-hot-checkbox-column width="30px"></g-hot-checkbo
    

    2.3.表格自动查询配置 2.3.表格自动查询配置

    配置

    1. 对象建模–业务对象–业务对象管理:编辑业务对象–基本信息,勾选自动查询字段。
      QQ截图20190919175959
      也可以进入可视化布局,选中表格,在右侧菜单栏找到自动查询字段,选择
      QQ截图20190919180455

    代码

    前端html文件的表格部分生成allow-auto-load值为true

    <g-data-source data-source-name="CsScoreTempSource"
                                 page="true"
                                    url="{{$config.ctx}}/csScoreTemp/query?gridKey=9812a23e-adb5-469b-8c72-925ec5d21b73_HT"
                                 params="queryCsScoreTempParams"
                                 page-size-param="pageSize"
                                 page-size="20"
                                 current-page-param="currentPage"
                                 total-record-prop="total"
                                 records-prop="csScoreTemps"
                   allow-auto-load="true"
                   before-load="dataSourceBeforeLoad"
                   after-load="dataSourceAfterLoad">
        </g-data-source>
    

    2.4.表格焦点移开事件 2.4.表格焦点移开事件

    配置

    目前配置方式可从多个入口配置,建议直接在可视化布局界面配置,方便快捷。
    1. 对象建模–业务对象–业务对象管理:编辑业务对象,点击【可视化布局】按钮,进入到可视化界面。
    2. 选择表格上的字段,勾选焦点移开事件,填写【执行类型】为【Angular公式】,填写【执行内容】,例如testExam3201Detail.openQty=(testExam3201Detail.planQty||0)-(testExam3201Detail.receiveQty||0)
    QQ截图20190920211633

    代码

    前端html文件配置事件的字段生成Angular公式testExam3201Detail.openQty=(testExam3201Detail.planQty||0)-(testExam3201Detail.receiveQty||0)
    执行内容:

    testExam3201Detail.openQty=(testExam3201Detail.planQty||0)-(testExam3201Detail.receiveQty||0)
    

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

    3.1. 表格双击事件 3.1. 表格双击事件

    表格双击进去编辑页的自定义JS方法

    $scope.fnDbclick = function(record, grid, $event) {
        var url = "/html/sample/test/testghx302Edit.html";
        var openType = "1";
        url = url + "?testCase302Id=" + record.testCase302Id;
        if (url.indexOf("?") >= 0) {
            url = url + "&openType=" + openType;
        } else {
            url = url + "?openType=" + openType;
        }
        var resource = {
            sysResourceId: 'testghx302_edit',
            urlTitle: '编辑数据',
            url: url
        };
        var indexScope = top.angular.element("body").scope();
        indexScope.addTab(resource)
        indexScope.$apply();
    }
    ;
    

    3.2. 新表格选中后事件 3.2. 新表格选中后事件

    表格实现键盘上下移动效果的自定义JS方法

    $scope.gridRowSelected = function(grid,record,row,col){ 
    grid.__selectedColumnIndex = grid.getSelectedColumnIndex(); 
            $scope.generalOrderQuerySpace = record; 
            grid.$$currentSelKey = record.mfOrderId; 
            $scope.$evalAsync(); 
    };
    

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

    5.4.0,2019.02.28

    新特性

  • 新表格支持键盘上下移动事件
  • 可视化支持事件配置
  • 3.18.0,2018.07.16

    优化

  • 平台支持配置新表格选中后事件,通过选中后事件从而达到键盘上下移动事件