@byteluck-fe/model-driven-engine 2.22.4-beta.8 → 2.22.4-beta.9
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/README.md +30 -30
- package/dist/esm/common/ActionManager.js +4 -4
- package/dist/esm/common/Engine.js +52 -52
- package/dist/esm/common/Runtime.js +2 -2
- package/dist/esm/common/Store.js +4 -4
- package/dist/esm/common/proxyState.js +18 -18
- package/dist/esm/plugins/CalcPlugin.js +43 -43
- package/dist/esm/plugins/StylePlugin.js +14 -13
- package/dist/index.umd.js +38 -6
- package/dist/types/common/ActionManager.d.ts +14 -14
- package/dist/types/common/DataManager.d.ts +10 -10
- package/dist/types/common/Engine.d.ts +201 -201
- package/dist/types/common/OkWorker.d.ts +13 -13
- package/dist/types/common/Plugin.d.ts +6 -6
- package/dist/types/common/Runtime.d.ts +31 -31
- package/dist/types/common/Store.d.ts +54 -54
- package/dist/types/common/checkerValue.d.ts +3 -3
- package/dist/types/common/index.d.ts +2 -2
- package/dist/types/common/proxyState.d.ts +30 -30
- package/dist/types/index.d.ts +3 -3
- package/dist/types/plugins/CalcPlugin.d.ts +121 -121
- package/dist/types/plugins/ControlsEventPlugin.d.ts +17 -17
- package/dist/types/plugins/ES6ModulePlugin.d.ts +27 -27
- package/dist/types/plugins/LifecycleEventPlugin.d.ts +15 -15
- package/dist/types/plugins/StylePlugin.d.ts +13 -13
- package/dist/types/plugins/index.d.ts +5 -5
- package/dist/types/utils/index.d.ts +1 -1
- package/dist/types/utils/runtimeUtils.d.ts +5 -5
- package/package.json +7 -4
package/README.md
CHANGED
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
# Engine
|
|
2
|
-
运行态引擎
|
|
3
|
-
|
|
4
|
-
```
|
|
5
|
-
│ index.ts // 入口文件
|
|
6
|
-
│
|
|
7
|
-
├─common // 引擎相关
|
|
8
|
-
│ ActionManager.ts // utils操作管理
|
|
9
|
-
│ checkerValue.ts // 表单值校验器
|
|
10
|
-
│ DataManager.ts // 数据源容器
|
|
11
|
-
│ Engine.ts // 引擎
|
|
12
|
-
│ index.ts // 入口
|
|
13
|
-
│ OkWorker.ts // 无用
|
|
14
|
-
│ Plugin.ts // 插件
|
|
15
|
-
│ proxyState.ts // 劫持引擎表单数据
|
|
16
|
-
│ Runtime.ts // 控件注册和创建
|
|
17
|
-
│ Store.ts // 数据管理
|
|
18
|
-
│
|
|
19
|
-
├─plugins
|
|
20
|
-
│ CalcPlugin.ts // 计算公式插件
|
|
21
|
-
│ ControlsEventPlugin.ts // 控件二开事件插件
|
|
22
|
-
│ ES6ModulePlugin.ts //
|
|
23
|
-
│ index.ts
|
|
24
|
-
│ LifecycleEventPlugin.ts // 页面生命周期事件
|
|
25
|
-
│ StylePlugin.ts // css二开
|
|
26
|
-
│
|
|
27
|
-
└─utils
|
|
28
|
-
index.ts
|
|
29
|
-
runtimeUtils.ts // 工具函数
|
|
30
|
-
```
|
|
1
|
+
# Engine
|
|
2
|
+
运行态引擎
|
|
3
|
+
|
|
4
|
+
```
|
|
5
|
+
│ index.ts // 入口文件
|
|
6
|
+
│
|
|
7
|
+
├─common // 引擎相关
|
|
8
|
+
│ ActionManager.ts // utils操作管理
|
|
9
|
+
│ checkerValue.ts // 表单值校验器
|
|
10
|
+
│ DataManager.ts // 数据源容器
|
|
11
|
+
│ Engine.ts // 引擎
|
|
12
|
+
│ index.ts // 入口
|
|
13
|
+
│ OkWorker.ts // 无用
|
|
14
|
+
│ Plugin.ts // 插件
|
|
15
|
+
│ proxyState.ts // 劫持引擎表单数据
|
|
16
|
+
│ Runtime.ts // 控件注册和创建
|
|
17
|
+
│ Store.ts // 数据管理
|
|
18
|
+
│
|
|
19
|
+
├─plugins
|
|
20
|
+
│ CalcPlugin.ts // 计算公式插件
|
|
21
|
+
│ ControlsEventPlugin.ts // 控件二开事件插件
|
|
22
|
+
│ ES6ModulePlugin.ts //
|
|
23
|
+
│ index.ts
|
|
24
|
+
│ LifecycleEventPlugin.ts // 页面生命周期事件
|
|
25
|
+
│ StylePlugin.ts // css二开
|
|
26
|
+
│
|
|
27
|
+
└─utils
|
|
28
|
+
index.ts
|
|
29
|
+
runtimeUtils.ts // 工具函数
|
|
30
|
+
```
|
|
@@ -182,11 +182,11 @@ export var ActionManager = /*#__PURE__*/ function() {
|
|
|
182
182
|
_class_call_check(this, ActionManager);
|
|
183
183
|
_define_property(this, "actionMap", new Map());
|
|
184
184
|
_define_property(this, "buildinActions", {});
|
|
185
|
-
/**
|
|
186
|
-
* 执行action的时候,作为第二个参数传递给方法,可以通过外部挂载
|
|
185
|
+
/**
|
|
186
|
+
* 执行action的时候,作为第二个参数传递给方法,可以通过外部挂载
|
|
187
187
|
*/ _define_property(this, "actionUtils", {});
|
|
188
|
-
/**
|
|
189
|
-
* 用于存储es module解析出来的源码,CustomVueControlPlugin
|
|
188
|
+
/**
|
|
189
|
+
* 用于存储es module解析出来的源码,CustomVueControlPlugin
|
|
190
190
|
*/ _define_property(this, "sources", {});
|
|
191
191
|
}
|
|
192
192
|
_create_class(ActionManager, [
|
|
@@ -948,9 +948,9 @@ var Engine = /*#__PURE__*/ function(Watcher) {
|
|
|
948
948
|
}
|
|
949
949
|
},
|
|
950
950
|
{
|
|
951
|
-
/**
|
|
952
|
-
* 设置payload的options,提供在不是使用标准api修改state的时候可以传递options,会在本次任务执行完成之后清空
|
|
953
|
-
* @param options 需要携带的options
|
|
951
|
+
/**
|
|
952
|
+
* 设置payload的options,提供在不是使用标准api修改state的时候可以传递options,会在本次任务执行完成之后清空
|
|
953
|
+
* @param options 需要携带的options
|
|
954
954
|
* */ key: "setPayloadOptions",
|
|
955
955
|
value: function setPayloadOptions(options) {
|
|
956
956
|
eventOptionsTemp = options;
|
|
@@ -969,9 +969,9 @@ var Engine = /*#__PURE__*/ function(Watcher) {
|
|
|
969
969
|
}
|
|
970
970
|
},
|
|
971
971
|
{
|
|
972
|
-
/**
|
|
973
|
-
* 向Store设置一组值,明细表必须全量赋值,并触发事件(触发事件是根据组件在页面中的顺序逐个触发)
|
|
974
|
-
* @param states
|
|
972
|
+
/**
|
|
973
|
+
* 向Store设置一组值,明细表必须全量赋值,并触发事件(触发事件是根据组件在页面中的顺序逐个触发)
|
|
974
|
+
* @param states
|
|
975
975
|
*/ key: "setStates",
|
|
976
976
|
value: function setStates(states, rowIndex, options) {
|
|
977
977
|
var _this = this;
|
|
@@ -998,11 +998,11 @@ var Engine = /*#__PURE__*/ function(Watcher) {
|
|
|
998
998
|
}
|
|
999
999
|
},
|
|
1000
1000
|
{
|
|
1001
|
-
/**
|
|
1002
|
-
* 通过dataCode和fieldCode来获取控件的值
|
|
1003
|
-
* @param dataCode 模型编码 - 如果是主表的话就是主表的模型编码,明细子表的话就是子表的模型编码
|
|
1004
|
-
* @param fieldCode 字段编码 - 控件绑定的数据项的编码
|
|
1005
|
-
* @param rowIndex 行下标 - 如果是明细子表中的控件需要提供
|
|
1001
|
+
/**
|
|
1002
|
+
* 通过dataCode和fieldCode来获取控件的值
|
|
1003
|
+
* @param dataCode 模型编码 - 如果是主表的话就是主表的模型编码,明细子表的话就是子表的模型编码
|
|
1004
|
+
* @param fieldCode 字段编码 - 控件绑定的数据项的编码
|
|
1005
|
+
* @param rowIndex 行下标 - 如果是明细子表中的控件需要提供
|
|
1006
1006
|
* */ key: "getField",
|
|
1007
1007
|
value: function getField(dataCode, fieldCode, rowIndex) {
|
|
1008
1008
|
if (!fieldCode) {
|
|
@@ -1117,13 +1117,13 @@ var Engine = /*#__PURE__*/ function(Watcher) {
|
|
|
1117
1117
|
}
|
|
1118
1118
|
},
|
|
1119
1119
|
{
|
|
1120
|
-
/**
|
|
1121
|
-
* 通过dataCode和fieldCode来设置控件的值
|
|
1122
|
-
* @param dataCode 模型编码 - 如果是主表的话就是主表的模型编码,明细子表的话就是子表的模型编码
|
|
1123
|
-
* @param fieldCode 字段编码 - 控件绑定的数据项的编码
|
|
1124
|
-
* @param value 修改的值
|
|
1125
|
-
* @param rowIndex 行下标 - 如果是明细子表中的控件需要提供
|
|
1126
|
-
* @param options 触发事件携带的参数
|
|
1120
|
+
/**
|
|
1121
|
+
* 通过dataCode和fieldCode来设置控件的值
|
|
1122
|
+
* @param dataCode 模型编码 - 如果是主表的话就是主表的模型编码,明细子表的话就是子表的模型编码
|
|
1123
|
+
* @param fieldCode 字段编码 - 控件绑定的数据项的编码
|
|
1124
|
+
* @param value 修改的值
|
|
1125
|
+
* @param rowIndex 行下标 - 如果是明细子表中的控件需要提供
|
|
1126
|
+
* @param options 触发事件携带的参数
|
|
1127
1127
|
* */ key: "setField",
|
|
1128
1128
|
value: function setField(dataCode, fieldCode, value, rowIndex, options) {
|
|
1129
1129
|
var dataBindMapping = this.getDataBindMapping(dataCode, fieldCode);
|
|
@@ -1151,12 +1151,12 @@ var Engine = /*#__PURE__*/ function(Watcher) {
|
|
|
1151
1151
|
}
|
|
1152
1152
|
},
|
|
1153
1153
|
{
|
|
1154
|
-
/**
|
|
1155
|
-
* 通过dataCode和 state来给一组控件赋值,并触发事件携带options
|
|
1156
|
-
* @param dataCode 需要赋值的目标模型
|
|
1157
|
-
* @param state 赋值对象,以fieldCode为key组成的对象
|
|
1158
|
-
* @param rowIndex 行下标,给明细子表赋值时指定赋值某行
|
|
1159
|
-
* @param options 触发事件携带的参数
|
|
1154
|
+
/**
|
|
1155
|
+
* 通过dataCode和 state来给一组控件赋值,并触发事件携带options
|
|
1156
|
+
* @param dataCode 需要赋值的目标模型
|
|
1157
|
+
* @param state 赋值对象,以fieldCode为key组成的对象
|
|
1158
|
+
* @param rowIndex 行下标,给明细子表赋值时指定赋值某行
|
|
1159
|
+
* @param options 触发事件携带的参数
|
|
1160
1160
|
* */ key: "setFields",
|
|
1161
1161
|
value: function setFields(dataCode, state, rowIndex, options) {
|
|
1162
1162
|
var _this = this;
|
|
@@ -1197,10 +1197,10 @@ var Engine = /*#__PURE__*/ function(Watcher) {
|
|
|
1197
1197
|
}
|
|
1198
1198
|
},
|
|
1199
1199
|
{
|
|
1200
|
-
/**
|
|
1201
|
-
* 通过dataCode来将state转化为标准的state结构
|
|
1202
|
-
* @param dataCode 需要转换的目标模型code
|
|
1203
|
-
* @param state 值对象,以fieldCode为key组成的对象
|
|
1200
|
+
/**
|
|
1201
|
+
* 通过dataCode来将state转化为标准的state结构
|
|
1202
|
+
* @param dataCode 需要转换的目标模型code
|
|
1203
|
+
* @param state 值对象,以fieldCode为key组成的对象
|
|
1204
1204
|
* */ key: "buildFields",
|
|
1205
1205
|
value: function buildFields(dataCode, state) {
|
|
1206
1206
|
var _this = this;
|
|
@@ -1241,10 +1241,10 @@ var Engine = /*#__PURE__*/ function(Watcher) {
|
|
|
1241
1241
|
}
|
|
1242
1242
|
},
|
|
1243
1243
|
{
|
|
1244
|
-
/**
|
|
1245
|
-
* 向Store设置一组值,并触发事件携带options
|
|
1246
|
-
* @param dataSet
|
|
1247
|
-
* @options 传递给关联事件中 EventPayload中的options,一般在plugin中监听使用
|
|
1244
|
+
/**
|
|
1245
|
+
* 向Store设置一组值,并触发事件携带options
|
|
1246
|
+
* @param dataSet
|
|
1247
|
+
* @options 传递给关联事件中 EventPayload中的options,一般在plugin中监听使用
|
|
1248
1248
|
*/ key: "setData",
|
|
1249
1249
|
value: function setData(dataSet, options) {
|
|
1250
1250
|
var _this = this;
|
|
@@ -1386,19 +1386,19 @@ var Engine = /*#__PURE__*/ function(Watcher) {
|
|
|
1386
1386
|
}
|
|
1387
1387
|
},
|
|
1388
1388
|
{
|
|
1389
|
-
/**
|
|
1390
|
-
* 获取控件的dataBind
|
|
1391
|
-
* @param controlId
|
|
1389
|
+
/**
|
|
1390
|
+
* 获取控件的dataBind
|
|
1391
|
+
* @param controlId
|
|
1392
1392
|
* */ key: "getDataBind",
|
|
1393
1393
|
value: function getDataBind(controlId) {
|
|
1394
1394
|
return this.store.getDataBind(controlId);
|
|
1395
1395
|
}
|
|
1396
1396
|
},
|
|
1397
1397
|
{
|
|
1398
|
-
/**
|
|
1399
|
-
* 获取组件实例,传入rowIndex代表获取明细表内的控件实例,rowIndex传入-1代表获取表头内的实例
|
|
1400
|
-
* @param controlId
|
|
1401
|
-
* @param rowIndex
|
|
1398
|
+
/**
|
|
1399
|
+
* 获取组件实例,传入rowIndex代表获取明细表内的控件实例,rowIndex传入-1代表获取表头内的实例
|
|
1400
|
+
* @param controlId
|
|
1401
|
+
* @param rowIndex
|
|
1402
1402
|
*/ key: "getInstance",
|
|
1403
1403
|
value: function getInstance(controlId, rowIndex) {
|
|
1404
1404
|
var instances = this.getInstances(controlId, rowIndex === -1);
|
|
@@ -1417,10 +1417,10 @@ var Engine = /*#__PURE__*/ function(Watcher) {
|
|
|
1417
1417
|
}
|
|
1418
1418
|
},
|
|
1419
1419
|
{
|
|
1420
|
-
/**
|
|
1421
|
-
* 获取组件实例,明细表中的组件将会得到数组, 第二个参数为(false/不传入)则获取到的是明细表内不包含表头内实例的所有控件实例,传入true则获取到包含表头内实例的所有控件实例,表头内实例永远在下标0的位置
|
|
1422
|
-
* @param controlId
|
|
1423
|
-
* @param header 明细表内是否获取表头的控件
|
|
1420
|
+
/**
|
|
1421
|
+
* 获取组件实例,明细表中的组件将会得到数组, 第二个参数为(false/不传入)则获取到的是明细表内不包含表头内实例的所有控件实例,传入true则获取到包含表头内实例的所有控件实例,表头内实例永远在下标0的位置
|
|
1422
|
+
* @param controlId
|
|
1423
|
+
* @param header 明细表内是否获取表头的控件
|
|
1424
1424
|
*/ // getInstances(
|
|
1425
1425
|
// controlId?: string,
|
|
1426
1426
|
// header: boolean = false
|
|
@@ -1598,27 +1598,27 @@ var Engine = /*#__PURE__*/ function(Watcher) {
|
|
|
1598
1598
|
},
|
|
1599
1599
|
{
|
|
1600
1600
|
key: "assertInstance",
|
|
1601
|
-
value: /**
|
|
1602
|
-
* 判断控件的类型,返回当前控件的正确类型
|
|
1601
|
+
value: /**
|
|
1602
|
+
* 判断控件的类型,返回当前控件的正确类型
|
|
1603
1603
|
* */ function assertInstance(instance, types) {
|
|
1604
1604
|
return isString(types) ? instance.type === types : types.includes(instance.type);
|
|
1605
1605
|
}
|
|
1606
1606
|
},
|
|
1607
1607
|
{
|
|
1608
1608
|
key: "assertInstanceIsCustomControl",
|
|
1609
|
-
value: /**
|
|
1610
|
-
* 判断控件或控件类型是一个自定义控件
|
|
1609
|
+
value: /**
|
|
1610
|
+
* 判断控件或控件类型是一个自定义控件
|
|
1611
1611
|
* */ function assertInstanceIsCustomControl(instance) {
|
|
1612
1612
|
return !isBuiltInControls(isString(instance) ? instance : instance.type);
|
|
1613
1613
|
}
|
|
1614
1614
|
},
|
|
1615
1615
|
{
|
|
1616
1616
|
key: "getInstanceRowIndex",
|
|
1617
|
-
value: /**
|
|
1618
|
-
* 获取控件在明细子表中的行下标,
|
|
1619
|
-
* 如果控件在表头内,则返回-1
|
|
1620
|
-
* 如果控件在表内,则返回行下标
|
|
1621
|
-
* 如果控件不在明细表内,则返回undefined
|
|
1617
|
+
value: /**
|
|
1618
|
+
* 获取控件在明细子表中的行下标,
|
|
1619
|
+
* 如果控件在表头内,则返回-1
|
|
1620
|
+
* 如果控件在表内,则返回行下标
|
|
1621
|
+
* 如果控件不在明细表内,则返回undefined
|
|
1622
1622
|
* */ // public getInstanceRowIndex(
|
|
1623
1623
|
// instance: ControlRuntimeInstance<ControlsKeys> | RuntimeControl
|
|
1624
1624
|
// ) {
|
|
@@ -289,8 +289,8 @@ function loop(control, parentId, callback) {
|
|
|
289
289
|
function hasHeaderOrFooterControl(control, checkType) {
|
|
290
290
|
return checkType in control.props && isArray(control.props[checkType]);
|
|
291
291
|
}
|
|
292
|
-
/**
|
|
293
|
-
* 控件是否在视图中隐藏,遍历查找所有parent
|
|
292
|
+
/**
|
|
293
|
+
* 控件是否在视图中隐藏,遍历查找所有parent
|
|
294
294
|
* */ function getControlIsHide(control) {
|
|
295
295
|
if (control.props.isHide) {
|
|
296
296
|
return true;
|
package/dist/esm/common/Store.js
CHANGED
|
@@ -68,10 +68,10 @@ var Store = /*#__PURE__*/ function() {
|
|
|
68
68
|
}
|
|
69
69
|
_create_class(Store, [
|
|
70
70
|
{
|
|
71
|
-
/**
|
|
72
|
-
* 使用该方法仅改变数据,不会表单触发事件。明细表可全量赋值也可根据rowIndex进行单独设置
|
|
73
|
-
* @param controlId 组件ID
|
|
74
|
-
* @param value
|
|
71
|
+
/**
|
|
72
|
+
* 使用该方法仅改变数据,不会表单触发事件。明细表可全量赋值也可根据rowIndex进行单独设置
|
|
73
|
+
* @param controlId 组件ID
|
|
74
|
+
* @param value
|
|
75
75
|
*/ key: "setState",
|
|
76
76
|
value: function setState(controlId, value, rowIndex) {
|
|
77
77
|
var _this = this;
|
|
@@ -105,11 +105,11 @@ function ArrayHandler(target, propertyKey, value, thisKey, callback) {
|
|
|
105
105
|
}
|
|
106
106
|
}
|
|
107
107
|
}
|
|
108
|
-
/**
|
|
109
|
-
* 返回proxy操作对象
|
|
110
|
-
* @param thisKey 当前对象在上级中的key
|
|
111
|
-
* @param callback 需要在修改的时候,触发的回调函数
|
|
112
|
-
* @param beforeSetCallback 需要在修改之前触发的回调函数,可以进行校验和对值的修改等等,最终的返回值不为undefined就会使用
|
|
108
|
+
/**
|
|
109
|
+
* 返回proxy操作对象
|
|
110
|
+
* @param thisKey 当前对象在上级中的key
|
|
111
|
+
* @param callback 需要在修改的时候,触发的回调函数
|
|
112
|
+
* @param beforeSetCallback 需要在修改之前触发的回调函数,可以进行校验和对值的修改等等,最终的返回值不为undefined就会使用
|
|
113
113
|
* */ function handler(thisKey, callback, beforeSetCallback) {
|
|
114
114
|
return {
|
|
115
115
|
__engineProxy__: true,
|
|
@@ -183,12 +183,12 @@ function ArrayHandler(target, propertyKey, value, thisKey, callback) {
|
|
|
183
183
|
}
|
|
184
184
|
};
|
|
185
185
|
}
|
|
186
|
-
/**
|
|
187
|
-
* 代理state数据
|
|
188
|
-
* @param state 数据对象
|
|
189
|
-
* @param callback 触发set时候的回调函数
|
|
190
|
-
* @param beforeSetCallback
|
|
191
|
-
* @param prevKey 递归对象的key
|
|
186
|
+
/**
|
|
187
|
+
* 代理state数据
|
|
188
|
+
* @param state 数据对象
|
|
189
|
+
* @param callback 触发set时候的回调函数
|
|
190
|
+
* @param beforeSetCallback
|
|
191
|
+
* @param prevKey 递归对象的key
|
|
192
192
|
* */ export function proxyState(state, callback, beforeSetCallback) {
|
|
193
193
|
var prevKey = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : '';
|
|
194
194
|
// 冻结的对象不需要再执行proxy,否则会报错
|
|
@@ -216,10 +216,10 @@ function flatInstanceForChildren(controls) {
|
|
|
216
216
|
});
|
|
217
217
|
return result;
|
|
218
218
|
}
|
|
219
|
-
/**
|
|
220
|
-
* 在flatInstance中通过key查找出对应的instance
|
|
221
|
-
* @param flatInstance 拍平的instance数组
|
|
222
|
-
* @param key 操作的数据在state的key - 可以是深层次的 subtable.0.input等
|
|
219
|
+
/**
|
|
220
|
+
* 在flatInstance中通过key查找出对应的instance
|
|
221
|
+
* @param flatInstance 拍平的instance数组
|
|
222
|
+
* @param key 操作的数据在state的key - 可以是深层次的 subtable.0.input等
|
|
223
223
|
* */ export function findItem(flatInstance, key, instanceMap) {
|
|
224
224
|
if (key === '') return undefined;
|
|
225
225
|
var keys = key.split('.');
|
|
@@ -276,9 +276,9 @@ function getArrayNewArgs(type, args, value) {
|
|
|
276
276
|
return args.slice(0, 2).concat(value);
|
|
277
277
|
}
|
|
278
278
|
}
|
|
279
|
-
/**
|
|
280
|
-
* TODO 数组劫持操作需要模仿vue3进行重构,不再直接劫持原生property
|
|
281
|
-
* 劫持数组api,达到操作数组api的时候,可以同步操作instance
|
|
279
|
+
/**
|
|
280
|
+
* TODO 数组劫持操作需要模仿vue3进行重构,不再直接劫持原生property
|
|
281
|
+
* 劫持数组api,达到操作数组api的时候,可以同步操作instance
|
|
282
282
|
* */ function hijackArrayProperty() {
|
|
283
283
|
proxyArrayApi.forEach(function(key) {
|
|
284
284
|
var oldApiHandler = Array.prototype[key];
|
|
@@ -62,11 +62,11 @@ function _unsupported_iterable_to_array(o, minLen) {
|
|
|
62
62
|
import { CONTROL_TYPE, CALC_TOKEN_TYPE, CALC_AGGREGATE_TYPE } from '@byteluck-fe/model-driven-shared';
|
|
63
63
|
import { format } from 'mathjs';
|
|
64
64
|
var DisplayType = /*#__PURE__*/ function(DisplayType) {
|
|
65
|
-
/**
|
|
66
|
-
* 完全等于
|
|
65
|
+
/**
|
|
66
|
+
* 完全等于
|
|
67
67
|
*/ DisplayType["EQ"] = "EQ";
|
|
68
|
-
/**
|
|
69
|
-
* 包含
|
|
68
|
+
/**
|
|
69
|
+
* 包含
|
|
70
70
|
* */ DisplayType["IN"] = "IN";
|
|
71
71
|
return DisplayType;
|
|
72
72
|
}(DisplayType || {});
|
|
@@ -76,16 +76,16 @@ export var CalcPlugin = /*#__PURE__*/ function() {
|
|
|
76
76
|
_class_call_check(this, CalcPlugin);
|
|
77
77
|
_define_property(this, "engine", void 0);
|
|
78
78
|
_define_property(this, "options", void 0);
|
|
79
|
-
/**
|
|
80
|
-
* 所有的计算公式控件
|
|
79
|
+
/**
|
|
80
|
+
* 所有的计算公式控件
|
|
81
81
|
* */ // @ts-ignore
|
|
82
82
|
_define_property(this, "calcControls", []);
|
|
83
|
-
/**
|
|
84
|
-
* key=控件id value=控件修改后需要触发重新计算的计算公式控件组成的数组
|
|
85
|
-
* 存储为一个Map,用于在控件change的时候,重新计算依赖的calc
|
|
83
|
+
/**
|
|
84
|
+
* key=控件id value=控件修改后需要触发重新计算的计算公式控件组成的数组
|
|
85
|
+
* 存储为一个Map,用于在控件change的时候,重新计算依赖的calc
|
|
86
86
|
* */ _define_property(this, "dependenciesTriggerMap", new Map());
|
|
87
|
-
/**
|
|
88
|
-
* 隐藏以后需要被计算的控件
|
|
87
|
+
/**
|
|
88
|
+
* 隐藏以后需要被计算的控件
|
|
89
89
|
* */ _define_property(this, "hideNotRememberControlIds", []);
|
|
90
90
|
_define_property(this, "dontHasPermissionControlIds", []);
|
|
91
91
|
_define_property(this, "cacheComputedResult", {});
|
|
@@ -96,8 +96,8 @@ export var CalcPlugin = /*#__PURE__*/ function() {
|
|
|
96
96
|
_create_class(CalcPlugin, [
|
|
97
97
|
{
|
|
98
98
|
key: "getNeedHideRememberControlIds",
|
|
99
|
-
value: /**
|
|
100
|
-
* @description 获取显隐控制的需要被记住值的控件id
|
|
99
|
+
value: /**
|
|
100
|
+
* @description 获取显隐控制的需要被记住值的控件id
|
|
101
101
|
* */ function getNeedHideRememberControlIds() {
|
|
102
102
|
var _this_options;
|
|
103
103
|
if (!((_this_options = this.options) === null || _this_options === void 0 ? void 0 : _this_options.displayBoList)) {
|
|
@@ -114,8 +114,8 @@ export var CalcPlugin = /*#__PURE__*/ function() {
|
|
|
114
114
|
},
|
|
115
115
|
{
|
|
116
116
|
key: "getDontHasPermissionControlIds",
|
|
117
|
-
value: /**
|
|
118
|
-
* @description 获取权限控制的隐藏的字段,不需要参与计算
|
|
117
|
+
value: /**
|
|
118
|
+
* @description 获取权限控制的隐藏的字段,不需要参与计算
|
|
119
119
|
* */ function getDontHasPermissionControlIds() {
|
|
120
120
|
var _this_options;
|
|
121
121
|
if (!((_this_options = this.options) === null || _this_options === void 0 ? void 0 : _this_options.behavior)) {
|
|
@@ -131,9 +131,9 @@ export var CalcPlugin = /*#__PURE__*/ function() {
|
|
|
131
131
|
},
|
|
132
132
|
{
|
|
133
133
|
key: "controlNeedComputedValue",
|
|
134
|
-
value: /**
|
|
135
|
-
* @description 判断控件是否需要被计算
|
|
136
|
-
* @param control 控件
|
|
134
|
+
value: /**
|
|
135
|
+
* @description 判断控件是否需要被计算
|
|
136
|
+
* @param control 控件
|
|
137
137
|
* */ function controlNeedComputedValue(control) {
|
|
138
138
|
if (!control) {
|
|
139
139
|
return false;
|
|
@@ -153,9 +153,9 @@ export var CalcPlugin = /*#__PURE__*/ function() {
|
|
|
153
153
|
},
|
|
154
154
|
{
|
|
155
155
|
key: "getControlIsHide",
|
|
156
|
-
value: /**
|
|
157
|
-
* @description 获取控件是否被隐藏
|
|
158
|
-
* @param control 控件
|
|
156
|
+
value: /**
|
|
157
|
+
* @description 获取控件是否被隐藏
|
|
158
|
+
* @param control 控件
|
|
159
159
|
* */ function getControlIsHide(control) {
|
|
160
160
|
if (control.props.isHide) {
|
|
161
161
|
return true;
|
|
@@ -184,8 +184,8 @@ export var CalcPlugin = /*#__PURE__*/ function() {
|
|
|
184
184
|
},
|
|
185
185
|
{
|
|
186
186
|
key: "resetDependencies",
|
|
187
|
-
value: /**
|
|
188
|
-
* @description 重置依赖,获取所有的计算公式控件,并根据计算公式获取控件依赖关系
|
|
187
|
+
value: /**
|
|
188
|
+
* @description 重置依赖,获取所有的计算公式控件,并根据计算公式获取控件依赖关系
|
|
189
189
|
* */ function resetDependencies() {
|
|
190
190
|
this.calcControls = [];
|
|
191
191
|
this.dependenciesTriggerMap.clear();
|
|
@@ -195,8 +195,8 @@ export var CalcPlugin = /*#__PURE__*/ function() {
|
|
|
195
195
|
},
|
|
196
196
|
{
|
|
197
197
|
key: "allCalcControlComputed",
|
|
198
|
-
value: /**
|
|
199
|
-
* @description 执行所有计算公式控件的计算
|
|
198
|
+
value: /**
|
|
199
|
+
* @description 执行所有计算公式控件的计算
|
|
200
200
|
* */ function allCalcControlComputed() {
|
|
201
201
|
var _this = this;
|
|
202
202
|
this.calcControls.forEach(function(item) {
|
|
@@ -210,8 +210,8 @@ export var CalcPlugin = /*#__PURE__*/ function() {
|
|
|
210
210
|
},
|
|
211
211
|
{
|
|
212
212
|
key: "getAllCalcControl",
|
|
213
|
-
value: /**
|
|
214
|
-
* @description 获取所有的计算公式控件
|
|
213
|
+
value: /**
|
|
214
|
+
* @description 获取所有的计算公式控件
|
|
215
215
|
* */ function getAllCalcControl() {
|
|
216
216
|
this.calcControls = this.engine.runtime.flatInstances.filter(// @ts-ignore
|
|
217
217
|
function(item) {
|
|
@@ -221,8 +221,8 @@ export var CalcPlugin = /*#__PURE__*/ function() {
|
|
|
221
221
|
},
|
|
222
222
|
{
|
|
223
223
|
key: "getCalcDependencies",
|
|
224
|
-
value: /**
|
|
225
|
-
* @description 获取计算公式控件依赖,组成 依赖=>[计算公式] 的Map结构
|
|
224
|
+
value: /**
|
|
225
|
+
* @description 获取计算公式控件依赖,组成 依赖=>[计算公式] 的Map结构
|
|
226
226
|
* */ function getCalcDependencies() {
|
|
227
227
|
var _this = this;
|
|
228
228
|
this.calcControls.forEach(function(item) {
|
|
@@ -274,8 +274,8 @@ export var CalcPlugin = /*#__PURE__*/ function() {
|
|
|
274
274
|
},
|
|
275
275
|
{
|
|
276
276
|
key: "watchSchemaHideChange",
|
|
277
|
-
value: /**
|
|
278
|
-
* @description 监听控件的显隐事件,把显隐会影响的控件触发一遍计算
|
|
277
|
+
value: /**
|
|
278
|
+
* @description 监听控件的显隐事件,把显隐会影响的控件触发一遍计算
|
|
279
279
|
* */ function watchSchemaHideChange() {
|
|
280
280
|
var _this = this;
|
|
281
281
|
this.engine.on('schema-change', function(payload) {
|
|
@@ -291,8 +291,8 @@ export var CalcPlugin = /*#__PURE__*/ function() {
|
|
|
291
291
|
},
|
|
292
292
|
{
|
|
293
293
|
key: "watchSubtableChange",
|
|
294
|
-
value: /**
|
|
295
|
-
* @description 监听明细子表的change事件,把明细表会影响的控件触发一遍计算
|
|
294
|
+
value: /**
|
|
295
|
+
* @description 监听明细子表的change事件,把明细表会影响的控件触发一遍计算
|
|
296
296
|
* */ function watchSubtableChange() {
|
|
297
297
|
var _this = this;
|
|
298
298
|
this.engine.on('list-change', function(payload) {
|
|
@@ -319,8 +319,8 @@ export var CalcPlugin = /*#__PURE__*/ function() {
|
|
|
319
319
|
},
|
|
320
320
|
{
|
|
321
321
|
key: "watchControlChange",
|
|
322
|
-
value: /**
|
|
323
|
-
* @description 监听控件的change事件,当控件change的时候,取到控件会影响的计算公式,然后执行对应的计算
|
|
322
|
+
value: /**
|
|
323
|
+
* @description 监听控件的change事件,当控件change的时候,取到控件会影响的计算公式,然后执行对应的计算
|
|
324
324
|
* */ function watchControlChange() {
|
|
325
325
|
var _this = this;
|
|
326
326
|
this.engine.on('change', function(payload) {
|
|
@@ -355,8 +355,8 @@ export var CalcPlugin = /*#__PURE__*/ function() {
|
|
|
355
355
|
},
|
|
356
356
|
{
|
|
357
357
|
key: "controlInSubtable",
|
|
358
|
-
value: /**
|
|
359
|
-
* @description 控件在明细子表内
|
|
358
|
+
value: /**
|
|
359
|
+
* @description 控件在明细子表内
|
|
360
360
|
* */ function controlInSubtable(control) {
|
|
361
361
|
var _control_parent;
|
|
362
362
|
return ((_control_parent = control.parent) === null || _control_parent === void 0 ? void 0 : _control_parent.type) === CONTROL_TYPE.SUBTABLE_COLUMN;
|
|
@@ -364,8 +364,8 @@ export var CalcPlugin = /*#__PURE__*/ function() {
|
|
|
364
364
|
},
|
|
365
365
|
{
|
|
366
366
|
key: "computedCalcValue",
|
|
367
|
-
value: /**
|
|
368
|
-
* @description 执行计算公式的计算
|
|
367
|
+
value: /**
|
|
368
|
+
* @description 执行计算公式的计算
|
|
369
369
|
* */ // @ts-ignore
|
|
370
370
|
function computedCalcValue(control) {
|
|
371
371
|
var _this = this;
|
|
@@ -455,8 +455,8 @@ export var CalcPlugin = /*#__PURE__*/ function() {
|
|
|
455
455
|
},
|
|
456
456
|
{
|
|
457
457
|
key: "getNumberValue",
|
|
458
|
-
value: /**
|
|
459
|
-
* @description 获取数字值,因为计算公式可以依赖计算公式和金额,所以需要从value中取到对应的值
|
|
458
|
+
value: /**
|
|
459
|
+
* @description 获取数字值,因为计算公式可以依赖计算公式和金额,所以需要从value中取到对应的值
|
|
460
460
|
* */ function getNumberValue(value) {
|
|
461
461
|
if ((typeof value === "undefined" ? "undefined" : _type_of(value)) === 'object' && value) {
|
|
462
462
|
if ('result' in value) {
|
|
@@ -473,8 +473,8 @@ export var CalcPlugin = /*#__PURE__*/ function() {
|
|
|
473
473
|
},
|
|
474
474
|
{
|
|
475
475
|
key: "getAggregateTypeValue",
|
|
476
|
-
value: /**
|
|
477
|
-
* 计算明细子表最大值最小值平均值总和
|
|
476
|
+
value: /**
|
|
477
|
+
* 计算明细子表最大值最小值平均值总和
|
|
478
478
|
* */ function getAggregateTypeValue(values, type) {
|
|
479
479
|
if (!type || !values || !values.length) return 0;
|
|
480
480
|
switch(type){
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* @Author: zhaoxiaoyang zhaoxiaoyang@byteluck.com
|
|
3
|
-
* @Date: 2022-04-15 14:06:03
|
|
4
|
-
* @LastEditors: SuperLuckyqi
|
|
5
|
-
* @LastEditTime: 2025-04-10 10:23:07
|
|
6
|
-
* @FilePath: /model-driven/packages/engine/src/plugins/StylePlugin.ts
|
|
1
|
+
/*
|
|
2
|
+
* @Author: zhaoxiaoyang zhaoxiaoyang@byteluck.com
|
|
3
|
+
* @Date: 2022-04-15 14:06:03
|
|
4
|
+
* @LastEditors: SuperLuckyqi
|
|
5
|
+
* @LastEditTime: 2025-04-10 10:23:07
|
|
6
|
+
* @FilePath: /model-driven/packages/engine/src/plugins/StylePlugin.ts
|
|
7
7
|
*/ function _class_call_check(instance, Constructor) {
|
|
8
8
|
if (!(instance instanceof Constructor)) {
|
|
9
9
|
throw new TypeError("Cannot call a class as a function");
|
|
@@ -36,6 +36,8 @@ function _define_property(obj, key, value) {
|
|
|
36
36
|
}
|
|
37
37
|
return obj;
|
|
38
38
|
}
|
|
39
|
+
import postcss from 'postcss';
|
|
40
|
+
import prefixSelector from 'postcss-prefix-selector';
|
|
39
41
|
export var StylePlugin = /*#__PURE__*/ function() {
|
|
40
42
|
"use strict";
|
|
41
43
|
function StylePlugin(config) {
|
|
@@ -51,7 +53,7 @@ export var StylePlugin = /*#__PURE__*/ function() {
|
|
|
51
53
|
{
|
|
52
54
|
key: "apply",
|
|
53
55
|
value: function apply(engine) {
|
|
54
|
-
var _this_config;
|
|
56
|
+
var _this_config, _this_engine;
|
|
55
57
|
this.engine = engine;
|
|
56
58
|
var _this_config_source;
|
|
57
59
|
var compiledStyle = (_this_config_source = (_this_config = this.config) === null || _this_config === void 0 ? void 0 : _this_config.source) !== null && _this_config_source !== void 0 ? _this_config_source : '';
|
|
@@ -59,12 +61,11 @@ export var StylePlugin = /*#__PURE__*/ function() {
|
|
|
59
61
|
style.className = 'edit-css-' + engine.id;
|
|
60
62
|
var dom = document.querySelector('head');
|
|
61
63
|
dom === null || dom === void 0 ? void 0 : dom.appendChild(style);
|
|
62
|
-
var cssStyleText
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
}
|
|
64
|
+
var cssStyleText = postcss([
|
|
65
|
+
prefixSelector({
|
|
66
|
+
prefix: ".render-engine-".concat((_this_engine = this.engine) === null || _this_engine === void 0 ? void 0 : _this_engine.id)
|
|
67
|
+
})
|
|
68
|
+
]).process(compiledStyle).css;
|
|
68
69
|
style.appendChild(document.createTextNode(cssStyleText));
|
|
69
70
|
}
|
|
70
71
|
}
|