devfab 1.0.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/devfab.js CHANGED
@@ -19,6 +19,31 @@
19
19
  if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
20
20
  return e;
21
21
  }
22
+ function asyncGeneratorStep(n, t, e, r, o, a, c) {
23
+ try {
24
+ var i = n[a](c),
25
+ u = i.value;
26
+ } catch (n) {
27
+ return void e(n);
28
+ }
29
+ i.done ? t(u) : Promise.resolve(u).then(r, o);
30
+ }
31
+ function _asyncToGenerator(n) {
32
+ return function () {
33
+ var t = this,
34
+ e = arguments;
35
+ return new Promise(function (r, o) {
36
+ var a = n.apply(t, e);
37
+ function _next(n) {
38
+ asyncGeneratorStep(a, r, o, _next, _throw, "next", n);
39
+ }
40
+ function _throw(n) {
41
+ asyncGeneratorStep(a, r, o, _next, _throw, "throw", n);
42
+ }
43
+ _next(void 0);
44
+ });
45
+ };
46
+ }
22
47
  function _callSuper(t, o, e) {
23
48
  return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e));
24
49
  }
@@ -151,6 +176,114 @@
151
176
  if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined");
152
177
  return _assertThisInitialized(t);
153
178
  }
179
+ function _regenerator() {
180
+ /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
181
+ var e,
182
+ t,
183
+ r = "function" == typeof Symbol ? Symbol : {},
184
+ n = r.iterator || "@@iterator",
185
+ o = r.toStringTag || "@@toStringTag";
186
+ function i(r, n, o, i) {
187
+ var c = n && n.prototype instanceof Generator ? n : Generator,
188
+ u = Object.create(c.prototype);
189
+ return _regeneratorDefine(u, "_invoke", function (r, n, o) {
190
+ var i,
191
+ c,
192
+ u,
193
+ f = 0,
194
+ p = o || [],
195
+ y = !1,
196
+ G = {
197
+ p: 0,
198
+ n: 0,
199
+ v: e,
200
+ a: d,
201
+ f: d.bind(e, 4),
202
+ d: function (t, r) {
203
+ return i = t, c = 0, u = e, G.n = r, a;
204
+ }
205
+ };
206
+ function d(r, n) {
207
+ for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) {
208
+ var o,
209
+ i = p[t],
210
+ d = G.p,
211
+ l = i[2];
212
+ r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0));
213
+ }
214
+ if (o || r > 1) return a;
215
+ throw y = !0, n;
216
+ }
217
+ return function (o, p, l) {
218
+ if (f > 1) throw TypeError("Generator is already running");
219
+ for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) {
220
+ i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u);
221
+ try {
222
+ if (f = 2, i) {
223
+ if (c || (o = "next"), t = i[o]) {
224
+ if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object");
225
+ if (!t.done) return t;
226
+ u = t.value, c < 2 && (c = 0);
227
+ } else 1 === c && (t = i.return) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1);
228
+ i = e;
229
+ } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break;
230
+ } catch (t) {
231
+ i = e, c = 1, u = t;
232
+ } finally {
233
+ f = 1;
234
+ }
235
+ }
236
+ return {
237
+ value: t,
238
+ done: y
239
+ };
240
+ };
241
+ }(r, o, i), !0), u;
242
+ }
243
+ var a = {};
244
+ function Generator() {}
245
+ function GeneratorFunction() {}
246
+ function GeneratorFunctionPrototype() {}
247
+ t = Object.getPrototypeOf;
248
+ var c = [][n] ? t(t([][n]())) : (_regeneratorDefine(t = {}, n, function () {
249
+ return this;
250
+ }), t),
251
+ u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c);
252
+ function f(e) {
253
+ return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e;
254
+ }
255
+ return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine(u), _regeneratorDefine(u, o, "Generator"), _regeneratorDefine(u, n, function () {
256
+ return this;
257
+ }), _regeneratorDefine(u, "toString", function () {
258
+ return "[object Generator]";
259
+ }), (_regenerator = function () {
260
+ return {
261
+ w: i,
262
+ m: f
263
+ };
264
+ })();
265
+ }
266
+ function _regeneratorDefine(e, r, n, t) {
267
+ var i = Object.defineProperty;
268
+ try {
269
+ i({}, "", {});
270
+ } catch (e) {
271
+ i = 0;
272
+ }
273
+ _regeneratorDefine = function (e, r, n, t) {
274
+ function o(r, n) {
275
+ _regeneratorDefine(e, r, function (e) {
276
+ return this._invoke(r, n, e);
277
+ });
278
+ }
279
+ r ? i ? i(e, r, {
280
+ value: n,
281
+ enumerable: !t,
282
+ configurable: !t,
283
+ writable: !t
284
+ }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2));
285
+ }, _regeneratorDefine(e, r, n, t);
286
+ }
154
287
  function _setPrototypeOf(t, e) {
155
288
  return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {
156
289
  return t.__proto__ = e, t;
@@ -348,13 +481,15 @@
348
481
  }();
349
482
 
350
483
  var EventUtil = /*#__PURE__*/function () {
351
- function EventUtil() {
484
+ function EventUtil(args) {
352
485
  _classCallCheck(this, EventUtil);
353
- this._init();
486
+ this._init(args);
354
487
  }
355
488
  return _createClass(EventUtil, [{
356
489
  key: "_init",
357
- value: function _init() {
490
+ value: function _init(args) {
491
+ var _args$__ASYNC_EXECUTE;
492
+ this.__ASYNC_EXECUTE__ = (_args$__ASYNC_EXECUTE = args === null || args === void 0 ? void 0 : args.__ASYNC_EXECUTE__) !== null && _args$__ASYNC_EXECUTE !== void 0 ? _args$__ASYNC_EXECUTE : true;
358
493
  this.events = new Map();
359
494
  this.firstevents = new Map();
360
495
  }
@@ -575,7 +710,8 @@
575
710
  return;
576
711
  }
577
712
  }
578
- if (window.__ASYNC_EXECUTE__) {
713
+ var __ASYNC_EXECUTE__ = this.__ASYNC_EXECUTE__;
714
+ if (__ASYNC_EXECUTE__) {
579
715
  return this._asyncPromiseExecute(name, function (args) {
580
716
  callback.apply(_this2, args);
581
717
  }, function () {
@@ -590,9 +726,9 @@
590
726
  var returnData = this.execute.apply(this, args);
591
727
  if (returnData instanceof Promise) {
592
728
  var self = this;
593
- /**
594
- * 背景参考下面的else注释,当第二次命中这里的时候,会在promise执行的时候直接then了,因为没有重新走一遍判定,这里直接执行了callback
595
- * 解决方案:想着是想办法把then里的代码作为callback传进去最后在执行,但是没想到方案
729
+ /**
730
+ * 背景参考下面的else注释,当第二次命中这里的时候,会在promise执行的时候直接then了,因为没有重新走一遍判定,这里直接执行了callback
731
+ * 解决方案:想着是想办法把then里的代码作为callback传进去最后在执行,但是没想到方案
596
732
  */
597
733
  returnData.then(function () {
598
734
  for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
@@ -605,9 +741,9 @@
605
741
  }
606
742
  });
607
743
  } else {
608
- /*
609
- 这里是因为历史代码没有考虑promise得情况 导致直接使用!returnData做结果判定,但是undefined也会命中false 导致后续执行阻断,不做callback了,所以会有问题,加了下面代码还是有问题,因为如果命中了promise得话没有返回值
610
- 导致命中不了returnData === false 导致阻断,所以上面execute里promise的时候将整个results返回,但是加了还有另外的问题,就是如果有两个分开的promise 会导致第一次好使,第二次命中了上面的if
744
+ /*
745
+ 这里是因为历史代码没有考虑promise得情况 导致直接使用!returnData做结果判定,但是undefined也会命中false 导致后续执行阻断,不做callback了,所以会有问题,加了下面代码还是有问题,因为如果命中了promise得话没有返回值
746
+ 导致命中不了returnData === false 导致阻断,所以上面execute里promise的时候将整个results返回,但是加了还有另外的问题,就是如果有两个分开的promise 会导致第一次好使,第二次命中了上面的if
611
747
  */
612
748
  // if (window.__ASYNC_EXECUTE__ ? returnData === false : !returnData) {
613
749
  if (!returnData) {
@@ -744,7 +880,6 @@
744
880
  this.init();
745
881
  }
746
882
  String.prototype['equalsIgnoreCase'] = function (str) {
747
- // eslint-disable-line
748
883
  if (str == null) {
749
884
  return false;
750
885
  }
@@ -1289,11 +1424,11 @@
1289
1424
  components.splice(index, 1);
1290
1425
  }
1291
1426
 
1292
- /**
1293
- * 统一的「写属性 + 通知组件」逻辑。
1294
- * 组件实现了 setXxx(如 setValue)就直接调;没实现则退回 setState({ [name]: value })。
1295
- * 原实现里只有 setVisible / setDisabled 有这层兜底,setValue 漏了,
1296
- * 导致模型改值永远传不到受控组件上。
1427
+ /**
1428
+ * 统一的「写属性 + 通知组件」逻辑。
1429
+ * 组件实现了 setXxx(如 setValue)就直接调;没实现则退回 setState({ [name]: value })。
1430
+ * 原实现里只有 setVisible / setDisabled 有这层兜底,setValue 漏了,
1431
+ * 导致模型改值永远传不到受控组件上。
1297
1432
  */
1298
1433
  }, {
1299
1434
  key: "_applyState",
@@ -1607,27 +1742,6 @@
1607
1742
  }]);
1608
1743
  }(BaseModel);
1609
1744
 
1610
- /**
1611
- * models - GridModel
1612
- *
1613
- * 参照中台 `mdf-cube/src/models/GridModel.js`(`cb.models.register('GridModel')`)重写,
1614
- * 把它的约定搬进我们这套 devfab 的 ui-model 体系:
1615
- *
1616
- * 1. 两层数据:`dataSource`(全量原始数据)+ `rows`(当前展示行,本地模式下是 dataSource 的分页切片);
1617
- * 2. 行状态与数据同序:`rowsDataState[i]` 对应 `dataSource[i]`,取值见 DataStates;
1618
- * 3. 内部字段由 `innerUsedAttrs` 统一定义:`_id` / `_selected` / `_status`;
1619
- * 4. 列是 **object map**(key = field),不是数组 —— 给 vxe-grid 渲染时用 `getColumnList()` 转数组;
1620
- * 5. 分页状态叫 `pageInfo`(pageIndex/pageSize/pageCount/recordCount),不叫 pager;
1621
- * 6. 行、单元格、列都可以挂状态:`rowState` / `cellState`;
1622
- * 7. 选中分「当前页 `_selected` 标记」与「跨页选中缓存(selectedKeysSet + selectedRowsMap)」两层。
1623
- *
1624
- * 与中台实现不同的地方(有意为之,都有注释说明):
1625
- * - 中台的取数配置走 `proxyConfig` + `setProxy`,我们直接保留 `proxyConfig.load`(函数或 url),
1626
- * 并兼容旧的 `dataSource: fn` / `cUrl` 写法;
1627
- * - 中台的 `setRows` 会把 `getShowRows()`(展示文案副本)推给组件,我们推**原始行对象**,
1628
- * 否则选中回灌、单元格编辑会落到副本上;
1629
- * - 中台的行模型(editRowModel / ReferModel / 特征 / 孙表)没有移植,这里只做行级与单元格级能力。
1630
- */
1631
1745
  var DataStates = {
1632
1746
  Unchanged: '',
1633
1747
  Insert: 'Insert',
@@ -1681,6 +1795,21 @@
1681
1795
  return map;
1682
1796
  }
1683
1797
 
1798
+ // ---------------- 响应体:从各种后端结构里取行与总数 ----------------
1799
+
1800
+ function resolveRowsData(res) {
1801
+ if (!res) return [];
1802
+ if (isArray(res)) return res;
1803
+ if (isArray(res.data)) return res.data;
1804
+ if (isArray(res.records)) return res.records;
1805
+ if (isArray(res.list)) return res.list;
1806
+ if (isArray(res.rows)) return res.rows;
1807
+ var nested = res.data && _typeof(res.data) === 'object' ? res.data : res.result;
1808
+ if (isArray(nested)) return nested;
1809
+ if (nested && _typeof(nested) === 'object') return nested.records || nested.list || nested.rows || nested.data || [];
1810
+ return [];
1811
+ }
1812
+
1684
1813
  /** 给行补内部 id(没有主键时用 rowId_ 前缀,与中台一致) */
1685
1814
  function setIds() {
1686
1815
  var rows = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
@@ -1755,12 +1884,13 @@
1755
1884
  if (!proxy.load && typeof props.url === 'string') proxy.load = props.url;
1756
1885
  return proxy;
1757
1886
  }
1758
-
1759
- /* code-link-enable */
1760
- var showPageInner = function showPageInner(proxyConfig, queryParams, callback, refresh, needLoadPageination, backQueryPageCount, extraProps) {
1887
+ function _getData(proxyConfig, queryParams, callback) {
1761
1888
  var _this = this;
1762
- this.promiseExecute('beforeBatchModifyPull', function () {
1763
- // this.rebuildProxyConfig(proxyConfig);
1889
+ this.promiseExecute('beforeQuery', {
1890
+ proxyConfig: proxyConfig,
1891
+ queryParams: queryParams
1892
+ }, function () {
1893
+ var self = _this;
1764
1894
  var proxy = _this.setProxy({
1765
1895
  queryData: proxyConfig
1766
1896
  });
@@ -1770,174 +1900,37 @@
1770
1900
  pageIndex: _this.getPageIndex()
1771
1901
  }
1772
1902
  };
1773
- if (!defaultParams.page.pageSize) {
1774
- _this.setPageSize(10);
1775
- defaultParams.page.pageSize = 10;
1776
- }
1777
- var bLoadPagination = _this._get_data('bLoadPagination');
1778
- if (!bLoadPagination && !needLoadPageination) defaultParams.page.totalCount = 1;
1779
- var delayLoadPageInfo = _this._get_data('delayLoadPageInfo');
1780
- if (bLoadPagination && delayLoadPageInfo) {
1781
- if (refresh) {
1782
- _this.setState('showDelayPagination', true);
1783
- }
1784
- defaultParams.page.totalCount = 1;
1785
- }
1786
1903
  var params = Object.assign(defaultParams, queryParams);
1787
1904
  _this.setCache('proxyCache', {
1788
1905
  proxyConfig: proxyConfig,
1789
1906
  params: params
1790
1907
  });
1791
- var queryCount = 0;
1792
- var responseData = {};
1793
- var viewModel = _this.getRootParent();
1794
- var self = _this;
1795
-
1796
- // 增加queryId解决 报表临时表锁问题
1797
- var queryId = new Date().valueOf();
1798
- params.queryId = queryId;
1908
+ _this.getRootParent();
1799
1909
  var queryDataCallback = function queryDataCallback(err, result, callBackMsg, errorDetail) {
1800
- var _this$getParent, _this$getParent$getPa;
1801
- setTimeout(function () {
1802
- self.clearCache('isGridInLoading');
1803
- }, 0);
1804
- viewModel === null || viewModel === void 0 || viewModel.clearCache('lazySearch');
1805
1910
  if (err) {
1806
- this.setState('showDelayPagination', false);
1807
- this.clearCache('setPageIndexFromBack');
1808
1911
  return;
1809
1912
  }
1810
- result = result || {}; // 容错处理null或者undefined情况
1811
1913
  this._set_data('dataSourceMode', 'remote'); // 处理请求过程中被修改
1812
- if (refresh && bLoadPagination && delayLoadPageInfo) {
1813
- queryCount++;
1814
- result = Object.assign(responseData, result);
1815
- }
1816
- var data = Array.isArray(result.recordList) ? result.recordList : [];
1817
- if ((!(bLoadPagination && delayLoadPageInfo) || queryCount === 2) && callback) {
1818
- callback.call(this, result, callBackMsg, errorDetail);
1819
- }
1820
- this.getCache('setPageIndexFromBack'); // 是否是从卡片页返回的
1821
- this.clearCache('setPageIndexFromBack');
1822
- if (!this.execute('beforeSetDataSource', data)) return;
1823
- var rowKeyField = this._get_data('rowKeyField');
1824
- var keyMap = {};
1825
- data.forEach(function (item) {
1826
- keyMap[item[rowKeyField]] = item;
1827
- });
1828
- this._set_data('keyMap', keyMap);
1829
- if (!refresh && this._get_data('override') === false) {
1830
- this._set_data('dataSource', this._get_data('dataSource').concat(data), true);
1831
- } else {
1832
- this._set_data('dataSource', data, true);
1833
- this.doPropertyChange('resetCellStatus');
1834
- this._set_data('cellState', {}, true);
1835
- this._set_data('rowState', {}, true);
1836
- }
1837
- // 存入当前model缓存便于client端搜索
1838
- this.setCache('currentGridData', data);
1839
- if (data.length) {
1840
- setIds.call(this, data);
1841
- }
1842
- this.initRowState();
1843
- // 修改缓存数据
1844
- setCachePaginationRowData.call(this, data);
1845
- this._get_data('sortParams');
1846
- var colFilterParams = this._get_data('colFilterParams');
1847
- this.showRows(null, !cb.utils.isEmptyObject(colFilterParams));
1848
- var pageInfo = this._get_data('pageInfo');
1849
- // bLoadPagination 优先级比 delayLoadPageInfo 高,bLoadPagination开启时值是false,所以第一项条件需要用 bLoadPagination = false 约束 delayLoadPageInfo = true 的情况
1850
- if (bLoadPagination && !delayLoadPageInfo && (this._get_data('bLoadPagination') || needLoadPageination)) {
1851
- pageInfo = {
1852
- pageSize: result.pageSize,
1853
- pageIndex: result.pageIndex,
1854
- pageCount: result.pageCount,
1855
- recordCount: result.recordCount
1856
- };
1857
- this.setPageInfo(pageInfo);
1858
- } else {
1859
- pageInfo.pageIndex = result.pageIndex;
1860
- pageInfo.from = 'showPageInner';
1861
- this.setPageInfo(pageInfo);
1862
- }
1863
- resetSelected.call(this);
1864
- if (!(((_this$getParent = this.getParent) === null || _this$getParent === void 0 || (_this$getParent = _this$getParent.call(this)) === null || _this$getParent === void 0 || (_this$getParent$getPa = _this$getParent.getParams) === null || _this$getParent$getPa === void 0 || (_this$getParent$getPa = _this$getParent$getPa.call(_this$getParent)) === null || _this$getParent$getPa === void 0 ? void 0 : _this$getParent$getPa.templateType) === 'splitview')) {
1865
- this._set_data('focusedRowIndex', -1); // 重置选中行
1866
- }
1867
- for (var _len = arguments.length, args = new Array(_len > 4 ? _len - 4 : 0), _key = 4; _key < _len; _key++) {
1868
- args[_key - 4] = arguments[_key];
1869
- }
1870
- this.execute('afterSetDataSource', data, result.viewmodel, args === null || args === void 0 ? void 0 : args[1]); // 社保缴交节点翻页的时候需要改columns
1914
+ result = Object.assign({}, result);
1915
+ var data = resolveRowsData(result);
1916
+ callback === null || callback === void 0 || callback.call(this, data);
1871
1917
  };
1872
- {
1873
- if (viewModel.execute('beforeQueryData', params) === false) return;
1874
- self.setCache('lastGridFilterCondition', JSON.stringify(params === null || params === void 0 ? void 0 : params.condition));
1875
- var queryDataParams = _.cloneDeep(params);
1876
- proxy.queryData(queryDataParams, queryDataCallback, _this);
1877
- }
1878
- if (refresh && bLoadPagination && delayLoadPageInfo) {
1879
- var queryPageProxyConfig = JSON.parse(JSON.stringify(proxyConfig));
1880
- if (!queryPageProxyConfig.options) {
1881
- queryPageProxyConfig.options = {};
1882
- }
1883
- queryPageProxyConfig.options.mask = false;
1884
- var _callback = function _callback(pageInfo) {
1885
- queryCount++;
1886
- Object.assign(responseData, pageInfo);
1887
- if (queryCount === 2 && callback) {
1888
- callback.call(_this, responseData);
1889
- }
1890
- };
1891
- queryPageCount.call(_this, queryPageProxyConfig, params, function (pageInfo) {
1892
- _callback(pageInfo);
1893
- });
1894
- }
1918
+ if (_this.execute('beforeQueryData', params) === false) return;
1919
+ var queryDataParams = _.cloneDeep(params);
1920
+ proxy.queryData(queryDataParams, queryDataCallback, self);
1895
1921
  });
1896
- };
1897
-
1898
- /* 查询分页 */
1899
- function queryPageCount(proxyConfig, queryParams, callback) {
1900
- this.setCache('queryPageCountLoading', true);
1901
- // this.rebuildProxyConfig(proxyConfig);
1902
- var proxy = this.setProxy({
1903
- queryPageCount: _objectSpread2({}, proxyConfig)
1922
+ }
1923
+ function _setData(data) {
1924
+ if (!this.execute('beforeSetDataSource', data)) return;
1925
+ var rowKeyField = this._get_data('rowKeyField');
1926
+ var keyMap = {};
1927
+ data.forEach(function (item) {
1928
+ keyMap[item[rowKeyField]] = item;
1904
1929
  });
1905
- var defaultParams = {
1906
- page: {
1907
- totalCount: -1
1908
- }
1909
- };
1910
- var params = Object.assign(true, queryParams, defaultParams);
1911
- if (!this.__queryPageCountRequestId) this.__queryPageCountRequestId = 0;
1912
- this.__queryPageCountRequestId++;
1913
- var queryPageCountCallback = function queryPageCountCallback(requestId, err, result) {
1914
- if (this.__queryPageCountRequestId !== requestId) return;
1915
- this.setCache('queryPageCountLoading', false);
1916
- this.setState('showDelayPagination', false);
1917
- if (err) {
1918
- var currentpageinfo = this._get_data('pageInfo');
1919
- if (currentpageinfo) {
1920
- // 接口报错时,分页组件信息保持原来的值
1921
- this.setPageInfo(currentpageinfo);
1922
- }
1923
- return;
1924
- }
1925
- result = result || {}; // 容错处理null或者undefined情况
1926
- var pageInfo = {
1927
- beginPageIndex: result.beginPageIndex,
1928
- endPageIndex: result.endPageIndex,
1929
- pageSize: result.pageSize,
1930
- pageIndex: result.pageIndex,
1931
- pageCount: result.pageCount,
1932
- recordCount: result.recordCount
1933
- };
1934
- if (callback) {
1935
- callback.call(this, pageInfo);
1936
- }
1937
- this.setPageInfo(pageInfo);
1938
- this.execute('afterQueryPageInfo', result);
1939
- };
1940
- proxy.queryPageCount(params, queryPageCountCallback.bind(this, this.__queryPageCountRequestId), this);
1930
+ this._set_data('keyMap', keyMap);
1931
+ this._set_data('dataSource', data, true);
1932
+ this.doPropertyChange('setDataSource');
1933
+ this.execute('afterSetDataSource', data);
1941
1934
  }
1942
1935
 
1943
1936
  // ============================================================
@@ -1958,6 +1951,7 @@
1958
1951
  // 静态数据:cData / data 数组
1959
1952
  var seed = props.cData || (isArray(props.data) ? props.data : null);
1960
1953
  _this2 = _callSuper(this, GridModel, [data]);
1954
+ _defineProperty(_this2, "modelType", 'GridModel');
1961
1955
  _this2.initPageInfo(props.cPage || props.page);
1962
1956
  _this2.initColumns(data.columns);
1963
1957
  _this2.initRowState();
@@ -2172,97 +2166,49 @@
2172
2166
 
2173
2167
  /* ============================ 取数 ============================ */
2174
2168
 
2175
- // 中台签名:load(proxyConfig, params, callback) = 设置取数配置并立刻取一次
2169
+ /* ======================= 数据写入 ======================= */
2176
2170
  }, {
2177
- key: "load",
2178
- value: function load(proxyConfig, params, callback) {
2179
- // if (proxyConfig) this.setProxy(proxyConfig)
2180
- // return this.fetch(params || {}).then((result) => {
2181
- // if (typeof callback === 'function') callback.call(this, null, result)
2182
- // return result
2183
- // })
2184
-
2185
- var proxy = this.setProxy({
2186
- load: proxyConfig
2187
- });
2188
- proxy.load(params, function (err, result) {
2189
- if (err) {
2190
- cb.utils.alert(err, 'error');
2191
- return;
2192
- }
2193
- if (result.schema) {
2194
- this._set_data('columnMode', 'remote');
2195
- this.setColumns(result.schema);
2196
- }
2197
- this.setDataSource(result.data);
2198
- if (callback) {
2199
- callback.call(this);
2200
- }
2201
- }, this);
2171
+ key: "setDataSource",
2172
+ value: function setDataSource(proxyConfig) {
2173
+ var _this4 = this;
2174
+ var queryParams = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
2175
+ var callback = arguments.length > 2 ? arguments[2] : undefined;
2176
+ if (this._get_data('dataSourceMode') === 'local') {
2177
+ var data = cb.utils.isArray(proxyConfig) ? proxyConfig : [];
2178
+ _setData(data);
2179
+ } else {
2180
+ if (!this.execute('beforeProxyLoad', queryParams)) return;
2181
+ var pageInfo = this._get_data('pageInfo');
2182
+ pageInfo.pageIndex = 1;
2183
+ this._set_data('proxyConfig', proxyConfig);
2184
+ this._set_data('queryParams', queryParams);
2185
+ this._set_data('loadDataCallback', callback);
2186
+ _getData.call(this, proxyConfig, queryParams, function (data) {
2187
+ _setData.call(_this4, data);
2188
+ callback === null || callback === void 0 || callback.call(_this4);
2189
+ });
2190
+ }
2202
2191
  }
2203
-
2204
- // 重新取数:优先驱动已挂载的表格(走表格自带的分页状态),没有视图时直接取数
2205
2192
  }, {
2206
- key: "refresh",
2207
- value: function refresh() {
2208
- var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
2209
- if (this.hasEvent('refresh')) return this.execute('refresh', params);
2210
- return this.fetch({
2211
- body: params
2193
+ key: "reload",
2194
+ value: function reload() {
2195
+ var _this5 = this;
2196
+ this.getProxy();
2197
+ var proxyConfig = this._get_data('proxyConfig');
2198
+ var queryParams = this._get_data('queryParams');
2199
+ var callback = this._get_data('loadDataCallback');
2200
+ _getData.call(this, proxyConfig, queryParams, function (data) {
2201
+ _setData.call(_this5, data);
2202
+ callback === null || callback === void 0 || callback.call(_this5);
2212
2203
  });
2213
2204
  }
2214
- }, {
2215
- key: "loadData",
2216
- value: function loadData() {
2217
- var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
2218
- return this.refresh(params);
2219
- }
2220
- }, {
2221
- key: "queryData",
2222
- value: function queryData() {
2223
- var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
2224
- return this.refresh(params);
2225
- }
2226
2205
 
2227
2206
  /* ======================== 数据(两层) ======================== */
2228
-
2229
- /** 全量数据源(中台 getRealData 的语义:不拷贝,剔除已删除行) */
2230
2207
  }, {
2231
2208
  key: "getDataSource",
2232
2209
  value: function getDataSource() {
2233
2210
  var source = this._get_data('dataSource') || [];
2234
- if (!this.hasDeletedRow()) return source;
2235
- var rowsDataState = this._get_data('rowsDataState') || [];
2236
- return source.filter(function (row, index) {
2237
- return rowsDataState[index] !== DataStates.Delete;
2238
- });
2239
- }
2240
- }, {
2241
- key: "getRealData",
2242
- value: function getRealData() {
2243
- return this.getDataSource();
2244
- }
2245
- }, {
2246
- key: "getRealRows",
2247
- value: function getRealRows() {
2248
- return this._get_data('rows') || [];
2249
- }
2250
- }, {
2251
- key: "getRowsCount",
2252
- value: function getRowsCount() {
2253
- return (this._get_data('rows') || []).length;
2254
- }
2255
- }, {
2256
- key: "getDataSourceCount",
2257
- value: function getDataSourceCount() {
2258
- return (this._get_data('dataSource') || []).length;
2259
- }
2260
- }, {
2261
- key: "hasDeletedRow",
2262
- value: function hasDeletedRow() {
2263
- return (this._get_data('rowsDataState') || []).some(function (state) {
2264
- return state === DataStates.Delete;
2265
- });
2211
+ return source;
2266
2212
  }
2267
2213
 
2268
2214
  /**
@@ -2361,18 +2307,18 @@
2361
2307
  }, {
2362
2308
  key: "getRowIndexByRowId",
2363
2309
  value: function getRowIndexByRowId(rowId) {
2364
- var _this4 = this;
2310
+ var _this6 = this;
2365
2311
  var rows = this._get_data('rows') || [];
2366
2312
  return rows.findIndex(function (row) {
2367
- return (row === null || row === void 0 ? void 0 : row[_this4.getIdFlag()]) === rowId;
2313
+ return (row === null || row === void 0 ? void 0 : row[_this6.getIdFlag()]) === rowId;
2368
2314
  });
2369
2315
  }
2370
2316
  }, {
2371
2317
  key: "getDataSourceIndexByRowId",
2372
2318
  value: function getDataSourceIndexByRowId(rowId) {
2373
- var _this5 = this;
2319
+ var _this7 = this;
2374
2320
  return (this._get_data('dataSource') || []).findIndex(function (row) {
2375
- return (row === null || row === void 0 ? void 0 : row[_this5.getIdFlag()]) === rowId;
2321
+ return (row === null || row === void 0 ? void 0 : row[_this7.getIdFlag()]) === rowId;
2376
2322
  });
2377
2323
  }
2378
2324
  }, {
@@ -2434,11 +2380,11 @@
2434
2380
  }, {
2435
2381
  key: "setCellValues",
2436
2382
  value: function setCellValues() {
2437
- var _this6 = this;
2383
+ var _this8 = this;
2438
2384
  var values = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
2439
2385
  if (!isArray(values)) return;
2440
2386
  values.forEach(function (item) {
2441
- return _this6.setCellValue(item.rowIndex, item.cellName || item.field, item.value);
2387
+ return _this8.setCellValue(item.rowIndex, item.cellName || item.field, item.value);
2442
2388
  });
2443
2389
  }
2444
2390
  }, {
@@ -2477,11 +2423,11 @@
2477
2423
  }, {
2478
2424
  key: "setCellStates",
2479
2425
  value: function setCellStates() {
2480
- var _this7 = this;
2426
+ var _this9 = this;
2481
2427
  var states = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
2482
2428
  if (!isArray(states)) return;
2483
2429
  states.forEach(function (item) {
2484
- return _this7.setCellState(item.rowIndex, item.cellName, item.propertyName || item.name, item.value);
2430
+ return _this9.setCellState(item.rowIndex, item.cellName, item.propertyName || item.name, item.value);
2485
2431
  });
2486
2432
  }
2487
2433
 
@@ -2498,7 +2444,7 @@
2498
2444
  }, {
2499
2445
  key: "getDataSourceIndexByRow",
2500
2446
  value: function getDataSourceIndexByRow(rowIndex) {
2501
- var _this8 = this;
2447
+ var _this0 = this;
2502
2448
  var rows = this._get_data('rows') || [];
2503
2449
  var row = rows[rowIndex];
2504
2450
  if (!row) return -1;
@@ -2507,7 +2453,7 @@
2507
2453
  if (index > -1) return index;
2508
2454
  // 本地分页时 rows 是切片,引用一致;远程模式下 rows 与 dataSource 同源
2509
2455
  return source.findIndex(function (item) {
2510
- return (item === null || item === void 0 ? void 0 : item[_this8.getIdFlag()]) === (row === null || row === void 0 ? void 0 : row[_this8.getIdFlag()]);
2456
+ return (item === null || item === void 0 ? void 0 : item[_this0.getIdFlag()]) === (row === null || row === void 0 ? void 0 : row[_this0.getIdFlag()]);
2511
2457
  });
2512
2458
  }
2513
2459
  }, {
@@ -2571,11 +2517,11 @@
2571
2517
  }, {
2572
2518
  key: "setRowStates",
2573
2519
  value: function setRowStates() {
2574
- var _this9 = this;
2520
+ var _this1 = this;
2575
2521
  var states = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
2576
2522
  if (!isArray(states)) return;
2577
2523
  states.forEach(function (item) {
2578
- return _this9.setRowState(item.rowIndex, item.propertyName || item.name, item.value);
2524
+ return _this1.setRowState(item.rowIndex, item.propertyName || item.name, item.value);
2579
2525
  });
2580
2526
  }
2581
2527
 
@@ -2583,7 +2529,7 @@
2583
2529
  }, {
2584
2530
  key: "getDirtyData",
2585
2531
  value: function getDirtyData(necessary) {
2586
- var _this0 = this;
2532
+ var _this10 = this;
2587
2533
  var source = this._get_data('dataSource') || [];
2588
2534
  var rowsDataState = this._get_data('rowsDataState') || [];
2589
2535
  var data = [];
@@ -2591,7 +2537,7 @@
2591
2537
  var dataState = rowsDataState[index];
2592
2538
  if (!dataState) return;
2593
2539
  var item = cloneDeep(row);
2594
- item[_this0.getStatusFlag()] = dataState;
2540
+ item[_this10.getStatusFlag()] = dataState;
2595
2541
  data.push(item);
2596
2542
  });
2597
2543
  return data.length ? data : undefined;
@@ -2599,12 +2545,12 @@
2599
2545
  }, {
2600
2546
  key: "getDirtyRowIndexes",
2601
2547
  value: function getDirtyRowIndexes() {
2602
- var _this1 = this;
2548
+ var _this11 = this;
2603
2549
  var rows = this._get_data('rows') || [];
2604
2550
  return rows.map(function (row, index) {
2605
2551
  return index;
2606
2552
  }).filter(function (index) {
2607
- return !!_this1.getRowDataState(index);
2553
+ return !!_this11.getRowDataState(index);
2608
2554
  });
2609
2555
  }
2610
2556
  }, {
@@ -2667,11 +2613,11 @@
2667
2613
  }, {
2668
2614
  key: "insertRows",
2669
2615
  value: function insertRows(rowIndex) {
2670
- var _this10 = this;
2616
+ var _this12 = this;
2671
2617
  var rowsData = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
2672
2618
  var result = [];
2673
2619
  (isArray(rowsData) ? rowsData : [rowsData]).forEach(function (rowData, offset) {
2674
- result.push(_this10.insertRow(rowIndex + offset, rowData));
2620
+ result.push(_this12.insertRow(rowIndex + offset, rowData));
2675
2621
  });
2676
2622
  return result;
2677
2623
  }
@@ -2703,11 +2649,11 @@
2703
2649
  }, {
2704
2650
  key: "updateRows",
2705
2651
  value: function updateRows() {
2706
- var _this11 = this;
2652
+ var _this13 = this;
2707
2653
  var rowsData = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
2708
2654
  rowsData.forEach(function (item) {
2709
2655
  var _item$rowIndex;
2710
- return _this11.updateRow((_item$rowIndex = item.rowIndex) !== null && _item$rowIndex !== void 0 ? _item$rowIndex : item.index, item.rowData || item.row);
2656
+ return _this13.updateRow((_item$rowIndex = item.rowIndex) !== null && _item$rowIndex !== void 0 ? _item$rowIndex : item.index, item.rowData || item.row);
2711
2657
  });
2712
2658
  }
2713
2659
 
@@ -2715,9 +2661,9 @@
2715
2661
  }, {
2716
2662
  key: "deleteRows",
2717
2663
  value: function deleteRows(rowIndexes) {
2718
- var _this12 = this;
2664
+ var _this14 = this;
2719
2665
  var indexes = (isArray(rowIndexes) ? rowIndexes : [rowIndexes]).filter(function (index) {
2720
- return index >= 0 && index < _this12.getRowsCount();
2666
+ return index >= 0 && index < _this14.getRowsCount();
2721
2667
  }).sort(function (a, b) {
2722
2668
  return a - b;
2723
2669
  });
@@ -2732,14 +2678,14 @@
2732
2678
  rowsToDelete.forEach(function (row) {
2733
2679
  var index = source.indexOf(row);
2734
2680
  if (index < 0) return;
2735
- var key = row[_this12.getIdFlag()];
2681
+ var key = row[_this14.getIdFlag()];
2736
2682
  deletedIds.add(key);
2737
2683
  if (rowsDataState[index] === DataStates.Insert) discardIds.add(key);
2738
2684
  });
2739
2685
  var keptSource = [];
2740
2686
  var keptState = [];
2741
2687
  source.forEach(function (row, index) {
2742
- var key = row[_this12.getIdFlag()];
2688
+ var key = row[_this14.getIdFlag()];
2743
2689
  if (!deletedIds.has(key)) {
2744
2690
  keptSource.push(row);
2745
2691
  keptState.push(rowsDataState[index]);
@@ -2789,7 +2735,7 @@
2789
2735
  }, {
2790
2736
  key: "select",
2791
2737
  value: function select(rowIndexes, all) {
2792
- var _this13 = this;
2738
+ var _this15 = this;
2793
2739
  if (rowIndexes == null && all !== true) return;
2794
2740
  if (all === true) this.unselectAll({
2795
2741
  silent: true
@@ -2798,7 +2744,7 @@
2798
2744
  return index;
2799
2745
  }) : isArray(rowIndexes) ? rowIndexes : [rowIndexes];
2800
2746
  indexes = indexes.filter(function (index) {
2801
- return index >= 0 && index < _this13.getRowsCount();
2747
+ return index >= 0 && index < _this15.getRowsCount();
2802
2748
  });
2803
2749
  var rows = this._get_data('rows') || [];
2804
2750
  var selectedFlag = this.getSelectedFlag();
@@ -2818,14 +2764,14 @@
2818
2764
  if (!this.execute('beforeSelect', data)) return;
2819
2765
  changed.forEach(function (index) {
2820
2766
  rows[index][selectedFlag] = true;
2821
- _this13.cacheSelectedRow(rows[index], true);
2767
+ _this15.cacheSelectedRow(rows[index], true);
2822
2768
  });
2823
2769
  this.flushSelection();
2824
2770
  }
2825
2771
  }, {
2826
2772
  key: "unselect",
2827
2773
  value: function unselect(rowIndexes) {
2828
- var _this14 = this;
2774
+ var _this16 = this;
2829
2775
  if (rowIndexes == null) return;
2830
2776
  var indexes = isArray(rowIndexes) ? rowIndexes : [rowIndexes];
2831
2777
  var rows = this._get_data('rows') || [];
@@ -2838,19 +2784,19 @@
2838
2784
  if (!this.execute('beforeUnselect', changed)) return;
2839
2785
  changed.forEach(function (index) {
2840
2786
  rows[index][selectedFlag] = false;
2841
- _this14.cacheSelectedRow(rows[index], false);
2787
+ _this16.cacheSelectedRow(rows[index], false);
2842
2788
  });
2843
2789
  this.flushSelection();
2844
2790
  }
2845
2791
  }, {
2846
2792
  key: "selectAll",
2847
2793
  value: function selectAll() {
2848
- var _this15 = this;
2794
+ var _this17 = this;
2849
2795
  var rows = this._get_data('rows') || [];
2850
2796
  var selectedFlag = this.getSelectedFlag();
2851
2797
  rows.forEach(function (row) {
2852
2798
  row[selectedFlag] = true;
2853
- _this15.cacheSelectedRow(row, true);
2799
+ _this17.cacheSelectedRow(row, true);
2854
2800
  });
2855
2801
  this.flushSelection();
2856
2802
  }
@@ -2865,7 +2811,7 @@
2865
2811
  }, {
2866
2812
  key: "unselectAll",
2867
2813
  value: function unselectAll() {
2868
- var _this16 = this;
2814
+ var _this18 = this;
2869
2815
  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
2870
2816
  var selectedFlag = this.getSelectedFlag();
2871
2817
  var targets = options.onlyPage ? this._get_data('rows') : this._get_data('dataSource');
@@ -2874,7 +2820,7 @@
2874
2820
  });
2875
2821
  if (options.onlyPage) {
2876
2822
  (this._get_data('rows') || []).forEach(function (row) {
2877
- return _this16.cacheSelectedRow(row, false);
2823
+ return _this18.cacheSelectedRow(row, false);
2878
2824
  });
2879
2825
  } else {
2880
2826
  this._set_data('selectedKeys', [], true);
@@ -2897,7 +2843,7 @@
2897
2843
  }, {
2898
2844
  key: "setSelectedRows",
2899
2845
  value: function setSelectedRows() {
2900
- var _this17 = this;
2846
+ var _this19 = this;
2901
2847
  var rows = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
2902
2848
  var list = isArray(rows) ? rows : [];
2903
2849
  var keyField = this.getRowKeyField();
@@ -2911,7 +2857,7 @@
2911
2857
  var selected = keys.has(String(row[keyField]));
2912
2858
  if (selected !== !!row[selectedFlag]) {
2913
2859
  row[selectedFlag] = selected;
2914
- _this17.cacheSelectedRow(row, selected);
2860
+ _this19.cacheSelectedRow(row, selected);
2915
2861
  }
2916
2862
  });
2917
2863
  this.flushSelection();
@@ -3136,54 +3082,6 @@
3136
3082
  this.setRows(source.slice(start, start + pageSize));
3137
3083
  }
3138
3084
 
3139
- /* ======================= 数据写入 ======================= */
3140
-
3141
- /** 全量赋值(中台 setDataSource):本地模式重新切片,远程模式等于当前页 */
3142
- }, {
3143
- key: "setDataSource",
3144
- value: function setDataSource(proxyConfig) {
3145
- var queryParams = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
3146
- var callback = arguments.length > 2 ? arguments[2] : undefined;
3147
- if (this._get_data('dataSourceMode') === 'local') {
3148
- var data = cb.utils.isArray(proxyConfig) ? proxyConfig : [];
3149
- if (!this.execute('beforeSetDataSource', data)) return;
3150
- var rowKeyField = this._get_data('rowKeyField');
3151
- var keyMap = {};
3152
- data.forEach(function (item) {
3153
- keyMap[item[rowKeyField]] = item;
3154
- });
3155
- this._set_data('keyMap', keyMap);
3156
- this._set_data('dataSource', data, true);
3157
- this.getCache('grandson');
3158
- if (data.length) {
3159
- setIds.call(this, data);
3160
- }
3161
- this.initRowState();
3162
- // 修改缓存数据
3163
- setCachePaginationRowData.call(this, data);
3164
- // 修改行号
3165
- this.doPropertyChange('resetCellStatus');
3166
- this._set_data('rowState', {}, true);
3167
- // this.showRows(null, true)
3168
- this.doPropertyChange('setDataSource', this.getShowRows());
3169
- this._set_data('delayInsertRows', []); // setDataSource方法会同步模型和组件数据,把延迟存的数据清掉
3170
- if (this._get_data('isSorting')) {
3171
- this._set_data('isSorting', false);
3172
- }
3173
- this.execute('afterSetDataSource', data);
3174
- } else {
3175
- if (!this.execute('beforeProxyLoad', queryParams)) return;
3176
- var pageInfo = this._get_data('pageInfo');
3177
- pageInfo.pageIndex = 1;
3178
- var needLoadPageination = true;
3179
- // this.rebuildProxyConfig(proxyConfig)
3180
- this._set_data('proxyConfig', proxyConfig);
3181
- this._set_data('queryParams', queryParams);
3182
- this._set_data('callback', callback);
3183
- showPageInner.call(this, proxyConfig, queryParams, callback, true, needLoadPageination);
3184
- }
3185
- }
3186
-
3187
3085
  /** 只换当前页 rows(中台 setRows) */
3188
3086
  }, {
3189
3087
  key: "setRows",
@@ -3203,10 +3101,10 @@
3203
3101
  }, {
3204
3102
  key: "setRowsIdMap",
3205
3103
  value: function setRowsIdMap() {
3206
- var _this18 = this;
3104
+ var _this20 = this;
3207
3105
  var map = {};
3208
3106
  (this._get_data('rows') || []).forEach(function (row) {
3209
- if ((row === null || row === void 0 ? void 0 : row[_this18.getIdFlag()]) !== undefined) map[row[_this18.getIdFlag()]] = row;
3107
+ if ((row === null || row === void 0 ? void 0 : row[_this20.getIdFlag()]) !== undefined) map[row[_this20.getIdFlag()]] = row;
3210
3108
  });
3211
3109
  this._set_data('rowsIdMap', map);
3212
3110
  }
@@ -3225,7 +3123,7 @@
3225
3123
  }, {
3226
3124
  key: "validate",
3227
3125
  value: function validate(cancel, paramsRowsIndex) {
3228
- var _this19 = this;
3126
+ var _this21 = this;
3229
3127
  if (cancel) {
3230
3128
  this.doPropertyChange('validate', {
3231
3129
  type: '',
@@ -3242,18 +3140,18 @@
3242
3140
  rows.forEach(function (row, index) {
3243
3141
  for (var field in columns) {
3244
3142
  var column = columns[field];
3245
- if (!_this19.isRequiredColumn(column)) continue;
3143
+ if (!_this21.isRequiredColumn(column)) continue;
3246
3144
  var value = row[field];
3247
3145
  var empty = isEmpty(value) || isArray(value) && !value.length || isEmptyObject(value);
3248
3146
  if (!empty) continue;
3249
3147
  var caption = column.cShowCaption || column.cCaption || column.cCaption || column.title || field;
3250
3148
  errors.push({
3251
3149
  rowIndex: index,
3252
- rowId: row[_this19.getIdFlag()],
3150
+ rowId: row[_this21.getIdFlag()],
3253
3151
  cellName: field,
3254
3152
  message: "".concat(caption, "\u4E0D\u80FD\u4E3A\u7A7A")
3255
3153
  });
3256
- _this19.setCellState(index, field, 'msg', '不能为空');
3154
+ _this21.setCellState(index, field, 'msg', '不能为空');
3257
3155
  }
3258
3156
  });
3259
3157
  this._set_data('validateErrors', errors);
@@ -3416,7 +3314,7 @@
3416
3314
  var propertyNames = this._get_data('propertyNames');
3417
3315
  for (var i = 0, len = propertyNames.length; i < len; i++) {
3418
3316
  gridModel = this.get(propertyNames[i]);
3419
- var isGridModel = gridModel instanceof GridModel;
3317
+ var isGridModel = gridModel instanceof GridModel || gridModel.modelType == 'GridModel';
3420
3318
  if (isGridModel) {
3421
3319
  this._set_data('gridModel', gridModel);
3422
3320
  return gridModel;
@@ -3430,7 +3328,8 @@
3430
3328
  var gridModels = [];
3431
3329
  for (var i = 0, len = propertyNames.length; i < len; i++) {
3432
3330
  var gridModel = this.get(propertyNames[i]);
3433
- if (gridModel instanceof GridModel) {
3331
+ var isGridModel = gridModel instanceof GridModel || gridModel.modelType == 'GridModel';
3332
+ if (isGridModel) {
3434
3333
  gridModels.push(gridModel);
3435
3334
  }
3436
3335
  }
@@ -3449,23 +3348,168 @@
3449
3348
  }
3450
3349
  return model;
3451
3350
  }
3452
- function createViewModel(meta, params) {
3453
- var _window$devfab;
3454
- var _require = (_window$devfab = window.devfab) === null || _window$devfab === void 0 ? void 0 : _window$devfab.require;
3455
- var _ref = params || {},
3456
- _ref$domainKeyField = _ref.domainKeyField,
3457
- domainKeyField = _ref$domainKeyField === void 0 ? 'domainKey' : _ref$domainKeyField,
3458
- _ref$billNoField = _ref.billNoField,
3459
- billNoField = _ref$billNoField === void 0 ? 'billNo' : _ref$billNoField,
3460
- _ref$modelNameField = _ref.modelNameField,
3461
- modelNameField = _ref$modelNameField === void 0 ? 'modelName' : _ref$modelNameField,
3462
- _ref$enableExtendjs = _ref.enableExtendjs,
3463
- enableExtendjs = _ref$enableExtendjs === void 0 ? true : _ref$enableExtendjs;
3464
- if (params !== null && params !== void 0 && params.require) {
3465
- _require = params === null || params === void 0 ? void 0 : params.require;
3351
+ function _initExtendJs(params) {
3352
+ var self = this;
3353
+ if (window && window.__debugger_initExtendJs) {
3354
+ // eslint-disable-next-line no-debugger
3355
+ debugger;
3356
+ }
3357
+ var requirejs = params.requirejs,
3358
+ extendFilePath = params.extendFilePath,
3359
+ pageKey = params.pageKey,
3360
+ _params$enableExtendJ = params.enableExtendJs,
3361
+ enableExtendJs = _params$enableExtendJ === void 0 ? true : _params$enableExtendJ,
3362
+ _params$extendJsPath = params.extendJsPath,
3363
+ extendJsPath = _params$extendJsPath === void 0 ? '_VM.Extend.js' : _params$extendJsPath;
3364
+ if (!enableExtendJs) {
3365
+ self.execute('extendReady', self);
3366
+ return;
3367
+ }
3368
+ var extendFile = "".concat(pageKey).concat(extendJsPath);
3369
+ var extendFiles = [extendFile];
3370
+ // if (self.getEnv && self.getEnv('everyCommonExtend')) {
3371
+ // extendFiles.push(self.getEnv('everyCommonExtend'))
3372
+ // }
3373
+ if (typeof requirejs.require !== 'function') {
3374
+ console.warn("requirejs.js \u672A\u52A0\u8F7D\uFF0C\u8DF3\u8FC7\u6269\u5C55\u811A\u672C\uFF1A".concat(extendFile));
3375
+ self.execute('extendReady', self);
3376
+ return;
3377
+ }
3378
+ requirejs.require(extendFilePath, extendFiles, function (extend, everyCommonExtend) {
3379
+ if (extend && extend.doAction) {
3380
+ // 处理扩展脚本异常导致渲染失败
3381
+ try {
3382
+ extend.doAction('init', self);
3383
+ if (everyCommonExtend) {
3384
+ everyCommonExtend.doAction('init', self);
3385
+ }
3386
+ } catch (err) {
3387
+ console.error('扩展脚本异常:', err);
3388
+ }
3389
+ } else {
3390
+ console.error("".concat(extendFile, "\u6269\u5C55\u6587\u4EF6extend.*.min.js\u6587\u4EF6\u52A0\u8F7D\u5931\u8D25 \u6216 \u672A\u6CE8\u518C\u6269\u5C55\u811A\u672C"));
3391
+ }
3392
+ self.execute('extendReady', self);
3393
+ }, function (err) {
3394
+ console.warn("\u672A\u627E\u5230\u6269\u5C55\u811A\u672C\uFF1A".concat(extendFile, "\u9519\u8BEF\u4FE1\u606F\uFF1A"), err);
3395
+ self.execute('extendReady', self);
3396
+ });
3397
+ }
3398
+ var _extscripturls = /*#__PURE__*/function () {
3399
+ var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(result, vm, params) {
3400
+ var _vm$getParams, _exturls;
3401
+ var _result$extscripturls, exturls;
3402
+ return _regenerator().w(function (_context2) {
3403
+ while (1) switch (_context2.n) {
3404
+ case 0:
3405
+ _result$extscripturls = result.extscripturls, exturls = _result$extscripturls === void 0 ? [] : _result$extscripturls; // 支持注入单据级本地化扩展脚本
3406
+ exturls = (vm.getCache('localDynamicScripts') || []).concat(exturls);
3407
+
3408
+ // 支持给全单据注入扩展脚本
3409
+ exturls = exturls.concat(window.__devfab__EXT_BILL_SCRIPTS__ || []);
3410
+
3411
+ // 支持参数注入扩展脚本
3412
+ if ((_vm$getParams = vm.getParams()) !== null && _vm$getParams !== void 0 && _vm$getParams.initVMExtUrls) {
3413
+ exturls = exturls.concat([vm.getParams().initVMExtUrls]);
3414
+ }
3415
+
3416
+ // 预处理扩展脚本
3417
+ if (!((_exturls = exturls) !== null && _exturls !== void 0 && _exturls.length)) {
3418
+ _context2.n = 2;
3419
+ break;
3420
+ }
3421
+ exturls = _toConsumableArray(new Set(exturls));
3422
+ _context2.n = 1;
3423
+ return Promise.all(exturls.map(/*#__PURE__*/function () {
3424
+ var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(url) {
3425
+ return _regenerator().w(function (_context) {
3426
+ while (1) switch (_context.n) {
3427
+ case 0:
3428
+ return _context.a(2, url);
3429
+ }
3430
+ }, _callee);
3431
+ }));
3432
+ return function (_x4) {
3433
+ return _ref2.apply(this, arguments);
3434
+ };
3435
+ }()));
3436
+ case 1:
3437
+ exturls = _context2.v;
3438
+ case 2:
3439
+ // 加载扩展脚本
3440
+ result.extscripturls = exturls;
3441
+ return _context2.a(2, new Promise(function (resolve, reject) {
3442
+ _requireExtscripturls(result, vm, params, function () {
3443
+ resolve(true);
3444
+ });
3445
+ }));
3446
+ }
3447
+ }, _callee2);
3448
+ }));
3449
+ return function _extscripturls(_x, _x2, _x3) {
3450
+ return _ref.apply(this, arguments);
3451
+ };
3452
+ }();
3453
+ function _requireExtscripturls(result, vm, params, callback) {
3454
+ // 二开、客开的扩展脚本
3455
+ var _result$extscripturls2 = result.extscripturls,
3456
+ exturls = _result$extscripturls2 === void 0 ? [] : _result$extscripturls2;
3457
+ if (exturls !== null && exturls !== void 0 && exturls.length) {
3458
+ try {
3459
+ var _params$requirejs;
3460
+ var requireInner = params === null || params === void 0 || (_params$requirejs = params.requirejs) === null || _params$requirejs === void 0 ? void 0 : _params$requirejs.requireInner;
3461
+ if (typeof requireInner !== 'function') {
3462
+ console.warn("requirejs.js \u672A\u52A0\u8F7D\uFF0C\u8DF3\u8FC7\u5BA2\u5F00\u6269\u5C55\u811A\u672C");
3463
+ callback === null || callback === void 0 || callback(result, vm);
3464
+ return;
3465
+ }
3466
+ requireInner(exturls,
3467
+ // eslint-disable-next-line prefer-arrow-callback
3468
+ function () {
3469
+ // cb.console.info('[exturls]: %c [extscript js] cb.requireInner success and doAction[init]', 'color:green')
3470
+ var correct = true;
3471
+ if (arguments.length) {
3472
+ for (var i = 0, len = arguments.length; i < len; i++) {
3473
+ var external = i < 0 || arguments.length <= i ? undefined : arguments[i];
3474
+ if (external) {
3475
+ external.doAction('init', vm);
3476
+ } else {
3477
+ correct = false;
3478
+ }
3479
+ }
3480
+ if (correct) {
3481
+ callback === null || callback === void 0 || callback(result, vm);
3482
+ }
3483
+ } else {
3484
+ correct = false;
3485
+ }
3486
+ if (!correct) {
3487
+ console.log('[error] [extendjs] 租户级扩展脚本有语法错误,请修改正确后刷新浏览器重试!');
3488
+ }
3489
+ },
3490
+ // eslint-disable-next-line prefer-arrow-callback
3491
+ function (_error) {
3492
+ // cb.console.info('[exturls]: %c [extscript js] cb.requireInner, but notFound', 'font-size:12pt;color:#860786')
3493
+ callback === null || callback === void 0 || callback(result, vm);
3494
+ });
3495
+ } catch (e) {
3496
+ // cb.console.log('[exturls]: %c [extscript js] cb.requireInner exception', 'font-size:12pt;color:#860786', e)
3497
+ callback === null || callback === void 0 || callback(result, vm);
3498
+ }
3499
+ } else {
3500
+ callback === null || callback === void 0 || callback(result, vm);
3466
3501
  }
3467
- var domainKey = meta[domainKeyField] || '';
3468
- var billno = meta[billNoField];
3502
+ }
3503
+ function _createViewModel(meta) {
3504
+ var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
3505
+ var _params$extendFilePat = params.extendFilePathField,
3506
+ extendFilePathField = _params$extendFilePat === void 0 ? 'domainKey' : _params$extendFilePat,
3507
+ _params$pageKeyField = params.pageKeyField,
3508
+ pageKeyField = _params$pageKeyField === void 0 ? 'billNo' : _params$pageKeyField,
3509
+ _params$modelNameFiel = params.modelNameField,
3510
+ modelNameField = _params$modelNameFiel === void 0 ? 'cName' : _params$modelNameFiel;
3511
+ var extendFilePath = meta[extendFilePathField] || '';
3512
+ var pageKey = meta[pageKeyField] || '';
3469
3513
  var VM = /*#__PURE__*/function (_ViewModel) {
3470
3514
  function VM() {
3471
3515
  _classCallCheck(this, VM);
@@ -3503,78 +3547,80 @@
3503
3547
  }, {
3504
3548
  key: "initData",
3505
3549
  value: function initData() {
3506
- this.initExtendJs();
3507
- }
3508
- }, {
3509
- key: "initExtendJs",
3510
- value: function initExtendJs() {
3511
- if (window && window.__debugger_initExtendJs) {
3512
- // eslint-disable-next-line no-debugger
3513
- debugger;
3514
- }
3515
- var self = this;
3516
- if (!enableExtendjs) {
3517
- self.execute('extendReady', self);
3518
- return;
3519
- }
3520
- var extendFile = "".concat(billno, "_VM.Extend.js");
3521
- var extendFiles = [extendFile];
3522
- // if (self.getEnv && self.getEnv('everyCommonExtend')) {
3523
- // extendFiles.push(self.getEnv('everyCommonExtend'))
3524
- // }
3525
- if (typeof _require !== 'function') {
3526
- console.warn("requirejs.js \u672A\u52A0\u8F7D\uFF0C\u8DF3\u8FC7\u6269\u5C55\u811A\u672C\uFF1A".concat(extendFile));
3527
- self.execute('extendReady', self);
3528
- return;
3529
- }
3530
- _require(domainKey, extendFiles, function (extend, everyCommonExtend) {
3531
- if (extend && extend.doAction) {
3532
- // 处理扩展脚本异常导致渲染失败
3533
- try {
3534
- extend.doAction('init', self);
3535
- if (everyCommonExtend) {
3536
- everyCommonExtend.doAction('init', self);
3537
- }
3538
- } catch (err) {
3539
- console.error('扩展脚本异常:', err);
3540
- }
3541
- } else {
3542
- console.error("".concat(extendFile, "\u6269\u5C55\u6587\u4EF6extend.*.min.js\u6587\u4EF6\u52A0\u8F7D\u5931\u8D25 \u6216 \u672A\u6CE8\u518C\u6269\u5C55\u811A\u672C"));
3543
- }
3544
- self.execute('extendReady', self);
3545
- }, function (err) {
3546
- console.warn("\u672A\u627E\u5230\u6269\u5C55\u811A\u672C\uFF1A".concat(extendFile, "\u9519\u8BEF\u4FE1\u606F\uFF1A"), err);
3547
- self.execute('extendReady', self);
3548
- });
3550
+ _initExtendJs.call(this, _objectSpread2(_objectSpread2({}, params), {}, {
3551
+ extendFilePath: extendFilePath,
3552
+ pageKey: pageKey
3553
+ }));
3549
3554
  }
3550
3555
  }]);
3551
3556
  }(ViewModel);
3552
3557
  VM.prototype.modelType = 'ViewModel';
3553
3558
  return VM;
3554
3559
  }
3555
- function initViewModel(meta, params) {
3556
- var ContainerModel = createViewModel(meta, params);
3557
- var vm = new ContainerModel();
3560
+ function _initViewModel(meta, params) {
3561
+ var VM = _createViewModel(meta, params);
3562
+ var vm = new VM();
3558
3563
  vm.init(meta.models, meta);
3559
3564
  return vm;
3560
3565
  }
3566
+ function initViewModel(meta) {
3567
+ var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
3568
+ var callback = arguments.length > 2 ? arguments[2] : undefined;
3569
+ if (!(params !== null && params !== void 0 && params.requirejs)) {
3570
+ params.requirejs = window.__devfab;
3571
+ }
3572
+ var vm = _initViewModel(meta, params);
3573
+ vm.on('destroyVM', function () {
3574
+ var _vm, _vm$destroyVM;
3575
+ (_vm = vm) === null || _vm === void 0 || (_vm$destroyVM = _vm.destroyVM) === null || _vm$destroyVM === void 0 || _vm$destroyVM.call(_vm);
3576
+ vm = null;
3577
+ });
3578
+ vm.on('extendReady', /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3() {
3579
+ var promises;
3580
+ return _regenerator().w(function (_context3) {
3581
+ while (1) switch (_context3.n) {
3582
+ case 0:
3583
+ promises = []; // 加载二开脚本
3584
+ promises.push(_extscripturls(meta, vm, params));
3585
+ _context3.n = 1;
3586
+ return Promise.all(promises);
3587
+ case 1:
3588
+ // console.info(`[initVM]: after vm init ${ moment().format('YYYY-MM-DD HH:mm:ss.SSS')}`)
3589
+ callback === null || callback === void 0 || callback(vm, meta);
3590
+ case 2:
3591
+ return _context3.a(2);
3592
+ }
3593
+ }, _callee3);
3594
+ })));
3595
+ vm.initData();
3596
+ return vm;
3597
+ }
3561
3598
  var models = {
3562
3599
  BaseModel: BaseModel,
3563
3600
  FilterModel: FilterModel,
3564
3601
  SimpleModel: SimpleModel,
3565
3602
  GridModel: GridModel,
3566
3603
  ViewModel: ViewModel,
3567
- createViewModel: createViewModel,
3568
3604
  initViewModel: initViewModel
3569
3605
  };
3570
3606
 
3571
- window.__ASYNC_EXECUTE__ = true;
3607
+ var utils = {
3608
+ Builder: Builder,
3609
+ CacheUtil: CacheUtil,
3610
+ EventUtil: EventUtil,
3611
+ DynamicProxy: DynamicProxy
3612
+ };
3613
+
3572
3614
  var devfab = {
3573
- builder: new Builder(),
3574
3615
  utils: {
3575
- cache: new CacheUtil(),
3576
- event: new EventUtil(),
3577
- models: models
3616
+ builder: new utils.Builder(),
3617
+ cache: new utils.CacheUtil(),
3618
+ event: new utils.EventUtil()
3619
+ },
3620
+ common: {
3621
+ Builder: Builder,
3622
+ models: models,
3623
+ utils: utils
3578
3624
  }
3579
3625
  };
3580
3626