cloud-web-corejs 1.0.54-dev.740 → 1.0.54-dev.742
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/package.json +1 -1
- package/src/components/xform/docs//345/257/271/346/257/224/345/212/237/350/203/275/350/220/275/345/234/260/346/226/271/346/241/210.md +383 -224
- package/src/components/xform/form-designer/widget-panel/widgetsConfig.js +3 -4
- package/src/components/xform/form-render/indexMixin.js +258 -2
|
@@ -4297,8 +4297,7 @@ export const compareFields = [
|
|
|
4297
4297
|
customClass: "",
|
|
4298
4298
|
onCreated: "",
|
|
4299
4299
|
onMounted: "",
|
|
4300
|
-
onClick:
|
|
4301
|
-
"this.getFormRef().getGlobalConfig().enableCompareBySource(this)",
|
|
4300
|
+
onClick: "this.getFormRef().enableCompareBySource()",
|
|
4302
4301
|
accessType: "1",
|
|
4303
4302
|
clickBindEvent: null,
|
|
4304
4303
|
onBeforeClickButton: null,
|
|
@@ -4342,7 +4341,7 @@ export const compareFields = [
|
|
|
4342
4341
|
customClass: "",
|
|
4343
4342
|
onCreated: "",
|
|
4344
4343
|
onMounted: "",
|
|
4345
|
-
onClick: "this.getFormRef().
|
|
4344
|
+
onClick: "this.getFormRef().disableCompare()",
|
|
4346
4345
|
accessType: "1",
|
|
4347
4346
|
clickBindEvent: null,
|
|
4348
4347
|
onBeforeClickButton: null,
|
|
@@ -4386,7 +4385,7 @@ export const compareFields = [
|
|
|
4386
4385
|
customClass: "",
|
|
4387
4386
|
onCreated: "",
|
|
4388
4387
|
onMounted: "",
|
|
4389
|
-
onClick: "this.getFormRef().openCompareDelList(
|
|
4388
|
+
onClick: "this.getFormRef().openCompareDelList()",
|
|
4390
4389
|
accessType: "1",
|
|
4391
4390
|
clickBindEvent: null,
|
|
4392
4391
|
onBeforeClickButton: null,
|
|
@@ -275,6 +275,8 @@ modules = {
|
|
|
275
275
|
// sanitize 阶段由 subSourceFields 回填出来的字段(如 f_source_item_id)。
|
|
276
276
|
// 这些字段原单行里没有,参与对比会被误判为"变更",故自动排除。
|
|
277
277
|
compareAutoExcludeFields: [],
|
|
278
|
+
// setupChangeCompare(cfg) 配置后缓存的控制器,供 getChangeCompare() 取用
|
|
279
|
+
changeCompareCtl: null,
|
|
278
280
|
showCompareDelList: false,
|
|
279
281
|
compareDelListOption: {},
|
|
280
282
|
};
|
|
@@ -2246,10 +2248,23 @@ modules = {
|
|
|
2246
2248
|
this.$set(row, "hData", old ? deepClone(old) : {});
|
|
2247
2249
|
});
|
|
2248
2250
|
},
|
|
2251
|
+
/**
|
|
2252
|
+
* 行匹配。a=原单行、b=当前(变更)行。rowKey 支持:
|
|
2253
|
+
* 'f_uuid' 两边同名字段:a.f_uuid === b.f_uuid
|
|
2254
|
+
* { from:'id', to:'f_source_item_id' } 跨字段名:a.id === b.f_source_item_id
|
|
2255
|
+
* ['f_a','f_b'] 或 [{from,to},...] 多字段联合,全部满足才算同一行
|
|
2256
|
+
* 每个键的原单侧取值必须非空。
|
|
2257
|
+
*/
|
|
2249
2258
|
matchCompareRowKey: function (a, b, rowKey) {
|
|
2250
2259
|
rowKey = rowKey || this.compareRowKey;
|
|
2251
|
-
if (!a || !b) return false;
|
|
2252
|
-
|
|
2260
|
+
if (!a || !b || !rowKey) return false;
|
|
2261
|
+
let list = Array.isArray(rowKey) ? rowKey : [rowKey];
|
|
2262
|
+
if (!list.length) return false;
|
|
2263
|
+
return list.every((k) => {
|
|
2264
|
+
let from = k && typeof k === "object" ? k.from : k;
|
|
2265
|
+
let to = k && typeof k === "object" ? k.to || k.from : k;
|
|
2266
|
+
return a[from] != null && a[from] === b[to];
|
|
2267
|
+
});
|
|
2253
2268
|
},
|
|
2254
2269
|
/** 关闭对比,复位状态并移除各行 hData */
|
|
2255
2270
|
disableCompare: function () {
|
|
@@ -2272,6 +2287,11 @@ modules = {
|
|
|
2272
2287
|
this.compareAutoExcludeFields = [];
|
|
2273
2288
|
this.showCompareDelList = false;
|
|
2274
2289
|
this.compareDelListOption = {};
|
|
2290
|
+
// 若配置了 setupChangeCompare:联动按钮显隐 + 触发对比开关钩子
|
|
2291
|
+
if (this._compareToggle) {
|
|
2292
|
+
this._compareToggle(false);
|
|
2293
|
+
if (this._compareFire) this._compareFire("onCompareToggle", false);
|
|
2294
|
+
}
|
|
2275
2295
|
},
|
|
2276
2296
|
/**
|
|
2277
2297
|
* 按「数据属性名称(keyName)」拿到 data-table 实例的实时行数据。
|
|
@@ -2553,6 +2573,10 @@ modules = {
|
|
|
2553
2573
|
},
|
|
2554
2574
|
/** 打开"查看删除数据"弹窗。columns 不传时默认取当前数据表格的列。 */
|
|
2555
2575
|
openCompareDelList: function (subFormName, columns) {
|
|
2576
|
+
// 无参 + 已配置控制器 → 用 cfg.detailName(单明细便捷)
|
|
2577
|
+
if (!subFormName && this._compareDetailName) {
|
|
2578
|
+
subFormName = this._compareDetailName;
|
|
2579
|
+
}
|
|
2556
2580
|
this.compareDelListOption = {
|
|
2557
2581
|
subFormName: subFormName,
|
|
2558
2582
|
columns:
|
|
@@ -2563,6 +2587,233 @@ modules = {
|
|
|
2563
2587
|
};
|
|
2564
2588
|
this.showCompareDelList = true;
|
|
2565
2589
|
},
|
|
2590
|
+
/**
|
|
2591
|
+
* 「订单→变更单」对比场景的通用编排。业务侧在 getGlobalConfig 里一行接入:
|
|
2592
|
+
* return this.getFormRef().setupChangeCompare({ ...cfg });
|
|
2593
|
+
* 返回的控制器方法直接作为按钮 onClick / 入口脚本调用(内部操作 form-render 自身,
|
|
2594
|
+
* 无需再传 that)。把「按钮显隐联动、原单加载、预置字段、名单派生、提示语」全收进框架,
|
|
2595
|
+
* 业务只需给一份 cfg。
|
|
2596
|
+
*
|
|
2597
|
+
* cfg 字段:
|
|
2598
|
+
* sourceIdField 变更单里存「原单ID」的字段(必填;自动纳入不覆盖+不对比)
|
|
2599
|
+
* presetFields 新建时预置的固定字段 { 字段: 值 }(可多个,自动纳入不覆盖+不对比)
|
|
2600
|
+
* compareRowKey 明细行匹配键。原单行(a)与变更行(b)按它配对。一个字段两用:
|
|
2601
|
+
* 全局键(对所有明细生效):
|
|
2602
|
+
* '字段' 两边同名:a[字段]===b[字段]
|
|
2603
|
+
* { from, to } 两边字段名不同:a[from]===b[to]
|
|
2604
|
+
* [ ... ] 多字段联合(元素可为字符串或 {from,to}),全部满足
|
|
2605
|
+
* 按明细 map(键为明细keyName、无 from/to 键时判定为此形态):
|
|
2606
|
+
* { 明细A: {from,to}, 明细B: 'f_uuid', ... } 每张明细各用各的键
|
|
2607
|
+
* excludeFields 表头「不对比」的额外字段名数组(与自动派生的合并去重)
|
|
2608
|
+
* defaultFields 表头「不覆盖」的额外字段名数组(保住新单自身值;与自动派生的合并去重)
|
|
2609
|
+
* subExcludeFields 明细「不对比」:{ 明细keyName: [字段名] }
|
|
2610
|
+
* subDefaultFields 明细「不覆盖取列默认值」:{ 明细keyName: [列prop] }
|
|
2611
|
+
* detailName 【单明细便捷】主明细表属性名(keyName)——openCompareDelList() 默认弹它
|
|
2612
|
+
* sourceItemIdField 【单明细便捷】该明细里回填「原明细ID」的字段(配合 detailName)
|
|
2613
|
+
* subSourceFields 【多明细/自定义】完整 { 明细keyName: 回填配置 },与 detailName 派生的合并
|
|
2614
|
+
* (多明细回填用它;openCompareDelList('明细keyName') 传表名弹指定明细)
|
|
2615
|
+
* compareBtnName / closeBtnName / delBtnNames 三个按钮的唯一名(delBtnNames 数组)
|
|
2616
|
+
* sourceFormCode 原单≠变更单模板时填原单 formCode
|
|
2617
|
+
* sourceLabel 原单业务称呼,用于提示语(默认「原单」)
|
|
2618
|
+
* autoLoadFromParam true=配置后顺带执行 loadSourceFromParam()(合二为一,一行接入;
|
|
2619
|
+
* 仅在 onMounted/入口脚本调用 setup 时用,勿在 getGlobalConfig 里开)
|
|
2620
|
+
* extraOptions 透传给 initChangeFromSource/enableCompareBySource 的额外 options(高级)
|
|
2621
|
+
* 业务钩子(可选,this=form-render 实例)。加载前钩子按模式分开,各自独立、无需判 mode:
|
|
2622
|
+
* onBeforeLoadFromParam(sourceId) 模式A(变更跳转)加载前。在此命令式预置字段(如
|
|
2623
|
+
* this.formModel.f_type=1)——比声明式 presetFields 更灵活;但被预置
|
|
2624
|
+
* 字段仍需在 defaultFields/excludeFields 声明「不覆盖/不对比」。
|
|
2625
|
+
* onBeforeLoadOnPick(sourceId) 模式B(搜索框选原单)加载前。
|
|
2626
|
+
* onLoaded(oldData, ctx) 原单加载完成后。ctx={ mode:'param'|'pick'|'compare', sourceId }
|
|
2627
|
+
* onCompareToggle(isCompare) 对比开/关后(加载即开、点关闭即关)
|
|
2628
|
+
* onClearSource() 搜索框清空触发 clearCompareSource 时(在此清掉已填数据)
|
|
2629
|
+
*/
|
|
2630
|
+
setupChangeCompare: function (cfg) {
|
|
2631
|
+
cfg = cfg || {};
|
|
2632
|
+
let self = this;
|
|
2633
|
+
let presetFields = cfg.presetFields || {};
|
|
2634
|
+
let presetKeys = Object.keys(presetFields);
|
|
2635
|
+
let uniq = function (arr) {
|
|
2636
|
+
return arr.filter(function (v, i) {
|
|
2637
|
+
return v && arr.indexOf(v) === i;
|
|
2638
|
+
});
|
|
2639
|
+
};
|
|
2640
|
+
// 表头「不覆盖」= 原单ID + 预置字段(自动,保住新单自身值)+ 业务额外 defaultFields
|
|
2641
|
+
// 表头「不对比」= 同上基础 + 业务额外 excludeFields
|
|
2642
|
+
let baseNames = (cfg.sourceIdField ? [cfg.sourceIdField] : []).concat(
|
|
2643
|
+
presetKeys
|
|
2644
|
+
);
|
|
2645
|
+
let defaultFields = uniq(baseNames.concat(cfg.defaultFields || []));
|
|
2646
|
+
let excludeFields = uniq(baseNames.concat(cfg.excludeFields || []));
|
|
2647
|
+
// 明细「原明细ID回填」:detailName+sourceItemIdField 是单明细便捷写法;
|
|
2648
|
+
// 多明细直接给 cfg.subSourceFields(完整 { 明细keyName: 配置 } 形态),后者可覆盖前者。
|
|
2649
|
+
let subSourceFields = {};
|
|
2650
|
+
if (cfg.detailName && cfg.sourceItemIdField) {
|
|
2651
|
+
subSourceFields[cfg.detailName] = function (row) {
|
|
2652
|
+
row[cfg.sourceItemIdField] = row.id;
|
|
2653
|
+
};
|
|
2654
|
+
}
|
|
2655
|
+
Object.assign(subSourceFields, cfg.subSourceFields || {});
|
|
2656
|
+
// compareRowKey 一个字段两用:
|
|
2657
|
+
// 全局键 'f_uuid' | {from,to} | [...] → 底层 compareRowKey
|
|
2658
|
+
// 按明细map { 明细keyName: 键, ... }(无 from/to键) → 底层 subRowKeys
|
|
2659
|
+
// 判定:普通对象且不含 from/to 键 = 按明细 map;其余都是全局键。
|
|
2660
|
+
let crk = cfg.compareRowKey;
|
|
2661
|
+
let isDetailMap =
|
|
2662
|
+
crk &&
|
|
2663
|
+
typeof crk === "object" &&
|
|
2664
|
+
!Array.isArray(crk) &&
|
|
2665
|
+
crk.from === undefined &&
|
|
2666
|
+
crk.to === undefined;
|
|
2667
|
+
let buildOptions = function (extra) {
|
|
2668
|
+
let o = {
|
|
2669
|
+
excludeFields: excludeFields, // 表头不对比
|
|
2670
|
+
defaultFields: defaultFields, // 表头不覆盖
|
|
2671
|
+
subSourceFields: subSourceFields,
|
|
2672
|
+
};
|
|
2673
|
+
if (isDetailMap) {
|
|
2674
|
+
o.subRowKeys = crk; // 按明细 map
|
|
2675
|
+
} else if (crk != null) {
|
|
2676
|
+
o.compareRowKey = crk; // 全局键
|
|
2677
|
+
}
|
|
2678
|
+
// 明细的不对比 / 不覆盖:按「明细keyName」分组,原样透传
|
|
2679
|
+
if (cfg.subExcludeFields) o.subExcludeFields = cfg.subExcludeFields;
|
|
2680
|
+
if (cfg.subDefaultFields) o.subDefaultFields = cfg.subDefaultFields;
|
|
2681
|
+
if (cfg.sourceFormCode) o.sourceFormCode = cfg.sourceFormCode;
|
|
2682
|
+
Object.assign(o, cfg.extraOptions || {});
|
|
2683
|
+
return Object.assign(o, extra || {});
|
|
2684
|
+
};
|
|
2685
|
+
let toggle = function (isCompare) {
|
|
2686
|
+
let hide = function (name, hidden) {
|
|
2687
|
+
if (!name) return;
|
|
2688
|
+
let w = self.getWidgetRef(name);
|
|
2689
|
+
if (w && typeof w.setHidden === "function") w.setHidden(hidden);
|
|
2690
|
+
};
|
|
2691
|
+
hide(cfg.compareBtnName, isCompare); // 对比中→隐藏「对比」
|
|
2692
|
+
hide(cfg.closeBtnName, !isCompare); // 对比中→放出「关闭对比」
|
|
2693
|
+
(cfg.delBtnNames || []).forEach(function (n) {
|
|
2694
|
+
hide(n, !isCompare); // 对比中→放出「查看删除明细」
|
|
2695
|
+
});
|
|
2696
|
+
};
|
|
2697
|
+
// 触发业务钩子:this=form-render 实例,业务钩子里可直接用 form 能力
|
|
2698
|
+
let fire = function (name) {
|
|
2699
|
+
let fn = cfg[name];
|
|
2700
|
+
if (typeof fn !== "function") return;
|
|
2701
|
+
return fn.apply(self, Array.prototype.slice.call(arguments, 1));
|
|
2702
|
+
};
|
|
2703
|
+
// initChangeFromSource/enableCompareBySource 返回 Promise(原单数据);兼容非 Promise
|
|
2704
|
+
let after = function (ret, cb) {
|
|
2705
|
+
if (ret && typeof ret.then === "function") {
|
|
2706
|
+
return ret.then(function (oldData) {
|
|
2707
|
+
cb(oldData);
|
|
2708
|
+
return oldData;
|
|
2709
|
+
});
|
|
2710
|
+
}
|
|
2711
|
+
cb(ret);
|
|
2712
|
+
return ret;
|
|
2713
|
+
};
|
|
2714
|
+
let controller = {
|
|
2715
|
+
// 模式A:变更跳转,原单ID 来自路由参数,新建页自动加载并开启对比
|
|
2716
|
+
loadSourceFromParam: function () {
|
|
2717
|
+
if (self.dataId) return; // 编辑态跳过
|
|
2718
|
+
let p = self.getFormParam();
|
|
2719
|
+
let sourceId = p && p.sourceId != null && p.sourceId !== ""
|
|
2720
|
+
? p.sourceId
|
|
2721
|
+
: null;
|
|
2722
|
+
if (sourceId == null) return;
|
|
2723
|
+
self.$set(self.formDataModel, cfg.sourceIdField, sourceId);
|
|
2724
|
+
presetKeys.forEach(function (k) {
|
|
2725
|
+
self.$set(self.formDataModel, k, presetFields[k]);
|
|
2726
|
+
});
|
|
2727
|
+
// 模式A 加载前钩子:业务在此预置字段(如 f_type=1)。被预置字段的“不覆盖/不对比”
|
|
2728
|
+
// 仍需在 defaultFields/excludeFields 声明,否则会被原单值覆盖或误判为变更。
|
|
2729
|
+
fire("onBeforeLoadFromParam", sourceId);
|
|
2730
|
+
let ret = self.initChangeFromSource(sourceId, buildOptions());
|
|
2731
|
+
toggle(true);
|
|
2732
|
+
fire("onCompareToggle", true);
|
|
2733
|
+
return after(ret, function (oldData) {
|
|
2734
|
+
fire("onLoaded", oldData, { mode: "param", sourceId: sourceId });
|
|
2735
|
+
});
|
|
2736
|
+
},
|
|
2737
|
+
// 模式B变体:搜索框选原单,只加载不对比
|
|
2738
|
+
loadSourceOnPick: function (sourceId) {
|
|
2739
|
+
if (sourceId == null || sourceId === "") return;
|
|
2740
|
+
// 模式B 加载前钩子(与模式A 分开,各自独立处理,不用判 mode)
|
|
2741
|
+
fire("onBeforeLoadOnPick", sourceId);
|
|
2742
|
+
let ret = self.initChangeFromSource(sourceId, buildOptions({ compare: false }));
|
|
2743
|
+
toggle(false);
|
|
2744
|
+
return after(ret, function (oldData) {
|
|
2745
|
+
fire("onLoaded", oldData, { mode: "pick", sourceId: sourceId });
|
|
2746
|
+
});
|
|
2747
|
+
},
|
|
2748
|
+
// 点「对比」:重拉原单作基准并开启对比
|
|
2749
|
+
enableCompareBySource: function () {
|
|
2750
|
+
let sourceId = self.formDataModel[cfg.sourceIdField];
|
|
2751
|
+
if (sourceId == null || sourceId === "") {
|
|
2752
|
+
if (self.$message) {
|
|
2753
|
+
self.$message.error("请先选择" + (cfg.sourceLabel || "原单"));
|
|
2754
|
+
}
|
|
2755
|
+
return;
|
|
2756
|
+
}
|
|
2757
|
+
let ret = self.enableCompareBySource(sourceId, buildOptions());
|
|
2758
|
+
toggle(true);
|
|
2759
|
+
fire("onCompareToggle", true);
|
|
2760
|
+
return after(ret, function (oldData) {
|
|
2761
|
+
fire("onLoaded", oldData, { mode: "compare", sourceId: sourceId });
|
|
2762
|
+
});
|
|
2763
|
+
},
|
|
2764
|
+
// 关闭对比(self.disableCompare 内部已联动按钮 + 触发 onCompareToggle)
|
|
2765
|
+
disableCompare: function () {
|
|
2766
|
+
self.disableCompare();
|
|
2767
|
+
},
|
|
2768
|
+
// 搜索框清空 → 关闭对比 + 触发清理钩子(业务可在此清掉已填数据)
|
|
2769
|
+
clearCompareSource: function () {
|
|
2770
|
+
self.disableCompare();
|
|
2771
|
+
fire("onClearSource");
|
|
2772
|
+
},
|
|
2773
|
+
// 「查看删除明细」按钮:不传取 cfg.detailName(单明细);多明细各按钮传各自表名
|
|
2774
|
+
openCompareDelList: function (detailName) {
|
|
2775
|
+
self.openCompareDelList(detailName || cfg.detailName);
|
|
2776
|
+
},
|
|
2777
|
+
// 需要时手动联动按钮显隐
|
|
2778
|
+
toggleButtons: toggle,
|
|
2779
|
+
};
|
|
2780
|
+
// 缓存到实例:供 getChangeCompare()、以及 form-render 同名方法「控制器感知」用
|
|
2781
|
+
this._compareToggle = toggle;
|
|
2782
|
+
this._compareFire = fire;
|
|
2783
|
+
this._compareDetailName = cfg.detailName;
|
|
2784
|
+
this.changeCompareCtl = controller;
|
|
2785
|
+
// autoLoadFromParam=true:配置后顺带执行模式A加载(内部 if(dataId)return 自守卫,编辑态跳过)。
|
|
2786
|
+
// 注意:仅当 setup 放在 onMounted/入口脚本(formModel/路由参数已就绪)时用;放 getGlobalConfig
|
|
2787
|
+
// (表单初始化即执行)里不要开,否则加载时机过早。
|
|
2788
|
+
if (cfg.autoLoadFromParam) controller.loadSourceFromParam();
|
|
2789
|
+
return controller;
|
|
2790
|
+
},
|
|
2791
|
+
/**
|
|
2792
|
+
* 已配置的对比控制器(setupChangeCompare 缓存的)。配置后,控制器的方法可**直接**在
|
|
2793
|
+
* form-render 上调用(无需经 getGlobalConfig / getChangeCompare):
|
|
2794
|
+
* enableCompareBySource() / disableCompare() / openCompareDelList() —— 同名方法已「控制器感知」
|
|
2795
|
+
* loadSourceFromParam() / loadSourceOnPick(id) / clearCompareSource() —— 下面的代理
|
|
2796
|
+
* 即 onClick 写 this.getFormRef().enableCompareBySource() 即可。
|
|
2797
|
+
*/
|
|
2798
|
+
getChangeCompare: function () {
|
|
2799
|
+
return this.changeCompareCtl || null;
|
|
2800
|
+
},
|
|
2801
|
+
// 以下三个是控制器新名方法在 form-render 上的代理(未配置控制器时返回 undefined)
|
|
2802
|
+
loadSourceFromParam: function () {
|
|
2803
|
+
return this.changeCompareCtl
|
|
2804
|
+
? this.changeCompareCtl.loadSourceFromParam()
|
|
2805
|
+
: undefined;
|
|
2806
|
+
},
|
|
2807
|
+
loadSourceOnPick: function (sourceId) {
|
|
2808
|
+
return this.changeCompareCtl
|
|
2809
|
+
? this.changeCompareCtl.loadSourceOnPick(sourceId)
|
|
2810
|
+
: undefined;
|
|
2811
|
+
},
|
|
2812
|
+
clearCompareSource: function () {
|
|
2813
|
+
return this.changeCompareCtl
|
|
2814
|
+
? this.changeCompareCtl.clearCompareSource()
|
|
2815
|
+
: undefined;
|
|
2816
|
+
},
|
|
2566
2817
|
/**
|
|
2567
2818
|
* 枚举需要独立发包获取的子表(data-table 容器)。sub-form/table2 的数组随主表
|
|
2568
2819
|
* objx 一并返回,无需单独发包。返回 [{ name, scriptCode }]。
|
|
@@ -2889,6 +3140,11 @@ modules = {
|
|
|
2889
3140
|
* @returns {Promise<Object>} 归一化后的旧数据(对比基准)
|
|
2890
3141
|
*/
|
|
2891
3142
|
enableCompareBySource: function (sourceId, options) {
|
|
3143
|
+
// 无参 + 已配置控制器 → 走控制器(读 cfg.sourceIdField、联动按钮、触发钩子)。
|
|
3144
|
+
// 控制器内部再调本方法时会带真实 sourceId,走下面的底层分支,不会递归。
|
|
3145
|
+
if ((sourceId == null || sourceId === "") && this.changeCompareCtl) {
|
|
3146
|
+
return this.changeCompareCtl.enableCompareBySource();
|
|
3147
|
+
}
|
|
2892
3148
|
options = options || {};
|
|
2893
3149
|
return this.loadOldData(sourceId, options).then((srcData) => {
|
|
2894
3150
|
let oldData = this.applyCompareSourceTransform(srcData, options);
|