浏览代码

grid getEditRow / setEditRow

luoyifan 3 年之前
父节点
当前提交
97a6e453bb
共有 1 个文件被更改,包括 30 次插入0 次删除
  1. 30 0
      src/controls/grid.js

+ 30 - 0
src/controls/grid.js

@@ -236,6 +236,36 @@ export default function () {
             return this.getStore().data.items.map(r => r.data)
         },
 
+        getEditRecord() {
+            const me = this
+            const editingPlugin = me.editingPlugin || me.ownerGrid.editingPlugin
+            const rowIdx = editingPlugin?.activeEditor?.context?.rowIdx
+
+            let record;
+            if (!rowIdx) {
+                record = me.getSelectionModel().getLastSelected()
+            } else {
+                record = me.store.getAt(rowIdx)
+            }
+
+            return record
+        },
+
+        getEditRow() {
+            const me = this
+            return me.getEditRecord()?.data
+        },
+
+        setEditRow(rowValues) {
+            const me = this
+            const record = me.getEditRecord()
+            if (record) {
+                _.forOwn(rowValues, (v, k) => {
+                    record.set(k, v)
+                })
+            }
+        },
+
         _transform(data) {
             // 无论是 grid._setDataReal 还是 stores.gridInvokeBuild 都会走这个函数,设值前都可以改变表格值
             _.forEach(data, row => {