@gct-paas/render 0.1.4-dev.10
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/CHANGELOG.md +14 -0
- package/LICENSE +21 -0
- package/README.md +1 -0
- package/dist/index.esm.min.mjs +7825 -0
- package/dist/index.min.cjs +17 -0
- package/dist/index.system.min.js +17 -0
- package/es/Event/Dependency/controller.d.ts +13 -0
- package/es/Event/Dependency/controller.mjs +97 -0
- package/es/Event/Dependency/displayRule.d.ts +19 -0
- package/es/Event/Dependency/displayRule.mjs +76 -0
- package/es/Event/Dependency/useDependency.d.ts +7 -0
- package/es/Event/Dependency/useDependencyToShow.d.ts +10 -0
- package/es/Event/Dependency/useDependencyToShow.mjs +109 -0
- package/es/Event/baseEvent.d.ts +155 -0
- package/es/Event/baseEvent.mjs +430 -0
- package/es/Event/bizServiceRequest.d.ts +26 -0
- package/es/Event/bizServiceRequest.mjs +47 -0
- package/es/Event/eventType.d.ts +20 -0
- package/es/Event/index.d.ts +4 -0
- package/es/Event/utils/appRedis.d.ts +29 -0
- package/es/Event/utils/appRedis.mjs +50 -0
- package/es/Event/utils/globalLoading.d.ts +13 -0
- package/es/Event/utils/globalLoading.mjs +103 -0
- package/es/Event/utils/processRovedInfo.d.ts +100 -0
- package/es/Event/utils/processRovedInfo.mjs +297 -0
- package/es/Event/utils/runGlobalByPage.d.ts +333 -0
- package/es/Event/utils/runGlobalByPage.mjs +306 -0
- package/es/Event/utils/verificationVar.d.ts +2 -0
- package/es/Event/utils/verificationVar.mjs +42 -0
- package/es/enums/index.d.ts +14 -0
- package/es/enums/index.mjs +6 -0
- package/es/hooks/useStorageRef.d.ts +9 -0
- package/es/hooks/useStorageRef.mjs +33 -0
- package/es/index.d.ts +3 -0
- package/es/index.mjs +23 -0
- package/es/register/index.d.ts +1 -0
- package/es/register/render-register/render-register.d.ts +54 -0
- package/es/register/render-register/render-register.mjs +59 -0
- package/es/types/index.d.ts +7 -0
- package/es/utils/cacheAdapter.d.ts +7 -0
- package/es/utils/cacheAdapter.mjs +57 -0
- package/es/utils/expression/index.d.ts +6 -0
- package/es/utils/expression/index.mjs +133 -0
- package/es/utils/expression/regularExpression/methods.d.ts +77 -0
- package/es/utils/expression/regularExpression/methods.mjs +729 -0
- package/es/utils/field-attrs/basicAttrs.d.ts +12 -0
- package/es/utils/field-attrs/basicAttrs.mjs +82 -0
- package/es/utils/field-attrs/index.d.ts +6 -0
- package/es/utils/field-attrs/index.mjs +15 -0
- package/es/utils/get-ref-data.d.ts +1 -0
- package/es/utils/get-ref-data.mjs +62 -0
- package/es/utils/getFieldSchema.d.ts +26 -0
- package/es/utils/getFieldSchema.mjs +83 -0
- package/es/utils/index.d.ts +6 -0
- package/es/utils/model-transformer.d.ts +46 -0
- package/es/utils/model-transformer.mjs +77 -0
- package/es/utils/useStyle.d.ts +21 -0
- package/es/utils/useStyle.mjs +17 -0
- package/package.json +72 -0
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { useLocalStorage } from '@vueuse/core';
|
|
2
|
+
import { GlobalParamEnum } from '../enums/index.mjs';
|
|
3
|
+
import { computed } from 'vue';
|
|
4
|
+
|
|
5
|
+
const GCT_SELECT_ID = useLocalStorage("GCT_APP_GlobalCache", {});
|
|
6
|
+
const useGctSelect = (key) => {
|
|
7
|
+
const cacheMap = computed({
|
|
8
|
+
get() {
|
|
9
|
+
return GCT_SELECT_ID.value[key] || {};
|
|
10
|
+
},
|
|
11
|
+
set(value) {
|
|
12
|
+
GCT_SELECT_ID.value[key] = value;
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
const selectID = computed({
|
|
16
|
+
get() {
|
|
17
|
+
return cacheMap.value[GlobalParamEnum.SELECT_ID];
|
|
18
|
+
},
|
|
19
|
+
set(value) {
|
|
20
|
+
if (cacheMap.value[GlobalParamEnum.SELECT_ID]) {
|
|
21
|
+
cacheMap.value[GlobalParamEnum.SELECT_ID] = value;
|
|
22
|
+
} else {
|
|
23
|
+
cacheMap.value = {
|
|
24
|
+
...cacheMap.value,
|
|
25
|
+
[GlobalParamEnum.SELECT_ID]: value
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
return { selectID, cacheMap };
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
export { useGctSelect };
|
package/es/index.d.ts
ADDED
package/es/index.mjs
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { RenderRegister } from './register/render-register/render-register.mjs';
|
|
2
|
+
export { transformPropsField } from './utils/field-attrs/index.mjs';
|
|
3
|
+
export { useStyle } from './utils/useStyle.mjs';
|
|
4
|
+
export { FieldSchema, initFieldWidgetRuntime } from './utils/getFieldSchema.mjs';
|
|
5
|
+
export { addDataByForm, setDataByForm, transSelectData, transformData, transformDataToDict, transformSourceData } from './utils/model-transformer.mjs';
|
|
6
|
+
export { calculate, identify } from './utils/expression/index.mjs';
|
|
7
|
+
export { getRefInfoId } from './utils/get-ref-data.mjs';
|
|
8
|
+
export { Globals, formMap, getPageTitle, getPremission, globalVarCaches, pageDataforJson, pageGlobaVariables, setFormData } from './Event/utils/runGlobalByPage.mjs';
|
|
9
|
+
export { Context, Events, GctComponent } from './Event/baseEvent.mjs';
|
|
10
|
+
import '@gct-paas/core';
|
|
11
|
+
export { dependencyToShow, dependencyToShowSync, tableWidgetByDept, tableWidgetToShow, useDependencyToShow, useDependencyToShowList } from './Event/Dependency/useDependencyToShow.mjs';
|
|
12
|
+
|
|
13
|
+
function onInit() {
|
|
14
|
+
if (!_gct.register.render) {
|
|
15
|
+
_gct.register.render = new RenderRegister();
|
|
16
|
+
} else {
|
|
17
|
+
console.warn(
|
|
18
|
+
"渲染注册已存在,可能存在重复注册问题,请检查是否有重复引入渲染包的情况"
|
|
19
|
+
);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export { onInit };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { RenderRegister } from './render-register/render-register';
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { Component } from 'vue';
|
|
2
|
+
/**
|
|
3
|
+
* 绘制组件注册
|
|
4
|
+
*
|
|
5
|
+
* @author zhanghanrui
|
|
6
|
+
* @date 2024-05-25 08:05:52
|
|
7
|
+
* @export
|
|
8
|
+
* @class RenderRegister
|
|
9
|
+
*/
|
|
10
|
+
export declare class RenderRegister {
|
|
11
|
+
/**
|
|
12
|
+
* 组件清单
|
|
13
|
+
*
|
|
14
|
+
* @author zhanghanrui
|
|
15
|
+
* @date 2024-05-25 08:05:03
|
|
16
|
+
* @protected
|
|
17
|
+
* @type {Map<string, Component>}
|
|
18
|
+
*/
|
|
19
|
+
protected map: Map<string, Component>;
|
|
20
|
+
/**
|
|
21
|
+
* 注册界面绘制组件
|
|
22
|
+
*
|
|
23
|
+
* @author zhanghanrui
|
|
24
|
+
* @date 2024-05-25 08:05:05
|
|
25
|
+
* @param {string} tag
|
|
26
|
+
* @param {Component} com
|
|
27
|
+
*/
|
|
28
|
+
register(tag: string, com: Component): void;
|
|
29
|
+
/**
|
|
30
|
+
* 取消组件注册
|
|
31
|
+
*
|
|
32
|
+
* @author zhanghanrui
|
|
33
|
+
* @date 2024-05-25 08:05:34
|
|
34
|
+
* @param {string} tag
|
|
35
|
+
*/
|
|
36
|
+
unregister(tag: string): void;
|
|
37
|
+
/**
|
|
38
|
+
* 获取注册的组件
|
|
39
|
+
*
|
|
40
|
+
* @author zhanghanrui
|
|
41
|
+
* @date 2024-05-25 08:05:59
|
|
42
|
+
* @param {string} tag
|
|
43
|
+
* @return {*} {(Component | undefined)}
|
|
44
|
+
*/
|
|
45
|
+
get(tag: string): Component | undefined;
|
|
46
|
+
/**
|
|
47
|
+
* 组件标识清单
|
|
48
|
+
*
|
|
49
|
+
* @author zhanghanrui
|
|
50
|
+
* @date 2024-05-25 08:05:19
|
|
51
|
+
* @return {*} {string[]}
|
|
52
|
+
*/
|
|
53
|
+
keys(): string[];
|
|
54
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
class RenderRegister {
|
|
2
|
+
/**
|
|
3
|
+
* 组件清单
|
|
4
|
+
*
|
|
5
|
+
* @author zhanghanrui
|
|
6
|
+
* @date 2024-05-25 08:05:03
|
|
7
|
+
* @protected
|
|
8
|
+
* @type {Map<string, Component>}
|
|
9
|
+
*/
|
|
10
|
+
map = /* @__PURE__ */ new Map();
|
|
11
|
+
// readonly hooks = {
|
|
12
|
+
// register: new SyncSeriesHook<[string, Component]>(),
|
|
13
|
+
// unregister: new SyncSeriesHook<string>(),
|
|
14
|
+
// };
|
|
15
|
+
/**
|
|
16
|
+
* 注册界面绘制组件
|
|
17
|
+
*
|
|
18
|
+
* @author zhanghanrui
|
|
19
|
+
* @date 2024-05-25 08:05:05
|
|
20
|
+
* @param {string} tag
|
|
21
|
+
* @param {Component} com
|
|
22
|
+
*/
|
|
23
|
+
register(tag, com) {
|
|
24
|
+
this.map.set(tag, com);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* 取消组件注册
|
|
28
|
+
*
|
|
29
|
+
* @author zhanghanrui
|
|
30
|
+
* @date 2024-05-25 08:05:34
|
|
31
|
+
* @param {string} tag
|
|
32
|
+
*/
|
|
33
|
+
unregister(tag) {
|
|
34
|
+
this.map.delete(tag);
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* 获取注册的组件
|
|
38
|
+
*
|
|
39
|
+
* @author zhanghanrui
|
|
40
|
+
* @date 2024-05-25 08:05:59
|
|
41
|
+
* @param {string} tag
|
|
42
|
+
* @return {*} {(Component | undefined)}
|
|
43
|
+
*/
|
|
44
|
+
get(tag) {
|
|
45
|
+
return this.map.get(tag);
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* 组件标识清单
|
|
49
|
+
*
|
|
50
|
+
* @author zhanghanrui
|
|
51
|
+
* @date 2024-05-25 08:05:19
|
|
52
|
+
* @return {*} {string[]}
|
|
53
|
+
*/
|
|
54
|
+
keys() {
|
|
55
|
+
return Array.from(this.map.keys());
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
export { RenderRegister };
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import qs from 'qs';
|
|
2
|
+
|
|
3
|
+
function cacheAdapter(args, adapter, noneCache = false) {
|
|
4
|
+
if (noneCache || args?.customApi?.value) return adapter(args);
|
|
5
|
+
const maxAge = 5e3;
|
|
6
|
+
const requestKey = typeof args === "object" ? qs.stringify({ ...args, customApi: null }) : args;
|
|
7
|
+
let responsePromise = MemoryCache.get(requestKey);
|
|
8
|
+
if (!responsePromise) {
|
|
9
|
+
responsePromise = (async () => {
|
|
10
|
+
try {
|
|
11
|
+
return await adapter(args);
|
|
12
|
+
} catch (reason) {
|
|
13
|
+
MemoryCache.delete(requestKey);
|
|
14
|
+
throw reason;
|
|
15
|
+
}
|
|
16
|
+
})();
|
|
17
|
+
MemoryCache.set(requestKey, responsePromise, maxAge);
|
|
18
|
+
return responsePromise;
|
|
19
|
+
}
|
|
20
|
+
return responsePromise;
|
|
21
|
+
}
|
|
22
|
+
class MemoryCache {
|
|
23
|
+
static cachedata = {};
|
|
24
|
+
static set(key, value, maxAge) {
|
|
25
|
+
this.cachedata[key] = {
|
|
26
|
+
maxAge: maxAge || 0,
|
|
27
|
+
value,
|
|
28
|
+
now: Date.now()
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
static get(key) {
|
|
32
|
+
this.reset();
|
|
33
|
+
const cachedItem = this.cachedata[key];
|
|
34
|
+
if (!cachedItem) return null;
|
|
35
|
+
return cachedItem.value;
|
|
36
|
+
}
|
|
37
|
+
static delete(key) {
|
|
38
|
+
return delete this.cachedata[key];
|
|
39
|
+
}
|
|
40
|
+
static clear() {
|
|
41
|
+
this.cachedata = {};
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
*清空过期的数据
|
|
45
|
+
*/
|
|
46
|
+
static reset() {
|
|
47
|
+
for (const key in this.cachedata) {
|
|
48
|
+
const cachedItem = this.cachedata[key];
|
|
49
|
+
if (cachedItem) {
|
|
50
|
+
const isExpired = Date.now() - cachedItem.now > cachedItem.maxAge;
|
|
51
|
+
if (isExpired) this.delete(key);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
export { cacheAdapter };
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import * as methods from './regularExpression/methods.mjs';
|
|
2
|
+
import * as esprima from 'esprima-next';
|
|
3
|
+
import estraverse from 'estraverse';
|
|
4
|
+
import { innerVarIds, SYSTEM_VAR_PREFIX, operator2FuncMap, functionMap } from '@gct-paas/core';
|
|
5
|
+
import { useMemoize } from '@vueuse/core';
|
|
6
|
+
|
|
7
|
+
window._METHOD_DEBUG_ = methods;
|
|
8
|
+
const identify = useMemoize(_identify);
|
|
9
|
+
const calculate = useMemoize(_calc);
|
|
10
|
+
function _deepCalcName(node) {
|
|
11
|
+
if (node.type === esprima.Syntax.MemberExpression) {
|
|
12
|
+
return `${node.object.type === esprima.Syntax.MemberExpression ? _deepCalcName(node.object) : node.object.name}.${node.property.name}`;
|
|
13
|
+
} else if (node.type === esprima.Syntax.Identifier) {
|
|
14
|
+
return node.name;
|
|
15
|
+
}
|
|
16
|
+
return "";
|
|
17
|
+
}
|
|
18
|
+
const AsyncFunction = Object.getPrototypeOf(async function() {
|
|
19
|
+
return;
|
|
20
|
+
}).constructor;
|
|
21
|
+
async function _getSystemVarValue(ids) {
|
|
22
|
+
let res = [];
|
|
23
|
+
if (ids.length > 0) {
|
|
24
|
+
res = await _gct.api.apaas.systemVar.getGetVarByKeys({
|
|
25
|
+
keys: ids.join(",")
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
return res;
|
|
29
|
+
}
|
|
30
|
+
const getSystemVarValue = useMemoize(_getSystemVarValue);
|
|
31
|
+
async function _calc(expr, values) {
|
|
32
|
+
const ids = identify(expr, true);
|
|
33
|
+
const innerIds = ids.filter((id) => innerVarIds.includes(id)).sort();
|
|
34
|
+
const systemIds = ids.filter((id) => id.startsWith(SYSTEM_VAR_PREFIX)).sort();
|
|
35
|
+
const systemValues = await getSystemVarValue([...innerIds, ...systemIds]);
|
|
36
|
+
const ast = esprima.parse(expr);
|
|
37
|
+
estraverse.replace(ast, {
|
|
38
|
+
enter(node) {
|
|
39
|
+
if (node.type === esprima.Syntax.BinaryExpression) {
|
|
40
|
+
const { operator } = node;
|
|
41
|
+
const fnName = operator2FuncMap[operator];
|
|
42
|
+
if (!fnName) {
|
|
43
|
+
return node;
|
|
44
|
+
}
|
|
45
|
+
return {
|
|
46
|
+
type: esprima.Syntax.CallExpression,
|
|
47
|
+
arguments: [node.left, node.right],
|
|
48
|
+
callee: {
|
|
49
|
+
type: esprima.Syntax.Identifier,
|
|
50
|
+
name: fnName
|
|
51
|
+
},
|
|
52
|
+
optional: false
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
return node;
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
estraverse.traverse(ast, {
|
|
59
|
+
enter: function(node) {
|
|
60
|
+
if (node.type === esprima.Syntax.CallExpression && node.callee.type === esprima.Syntax.Identifier) {
|
|
61
|
+
node.callee.name = `await Methods.${node.callee.name}`;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
const runjs = "";
|
|
66
|
+
const objNames = {};
|
|
67
|
+
const defs = [];
|
|
68
|
+
systemValues.forEach((item) => {
|
|
69
|
+
defs.push(`const ${item.key} = ${JSON.stringify(item.value)};`);
|
|
70
|
+
});
|
|
71
|
+
Object.keys(values).map((key) => {
|
|
72
|
+
if (key.includes(".")) {
|
|
73
|
+
const [obj = "", property] = key.split(".");
|
|
74
|
+
if (!objNames[obj]) {
|
|
75
|
+
defs.push(`const ${obj} = {};`);
|
|
76
|
+
objNames[obj] = true;
|
|
77
|
+
}
|
|
78
|
+
defs.push(`${obj}.${property} = ${JSON.stringify(values[key])};`);
|
|
79
|
+
} else {
|
|
80
|
+
defs.push(`const ${key} = ${JSON.stringify(values[key])};`);
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
const calcFunc = new AsyncFunction(
|
|
84
|
+
"Methods",
|
|
85
|
+
[
|
|
86
|
+
...defs,
|
|
87
|
+
`return new Promise(async(resolve)=>{`,
|
|
88
|
+
`const res = ${runjs};`,
|
|
89
|
+
"resolve(res);",
|
|
90
|
+
"})"
|
|
91
|
+
].join("\n")
|
|
92
|
+
);
|
|
93
|
+
const result = await calcFunc(methods);
|
|
94
|
+
console.info("【表达式】", expr);
|
|
95
|
+
console.info("【参数】", values);
|
|
96
|
+
console.info("【执行语句】", calcFunc.toString());
|
|
97
|
+
console.info("【执行结果】", result);
|
|
98
|
+
return result;
|
|
99
|
+
}
|
|
100
|
+
function _identify(expr, isAll = false) {
|
|
101
|
+
const ast = esprima.parse(expr);
|
|
102
|
+
let identifiers = [];
|
|
103
|
+
estraverse.traverse(ast, {
|
|
104
|
+
enter: function(node) {
|
|
105
|
+
if (node.type === esprima.Syntax.MemberExpression) {
|
|
106
|
+
const name = _deepCalcName(node);
|
|
107
|
+
identifiers.push(name);
|
|
108
|
+
Object.assign(node, {
|
|
109
|
+
name,
|
|
110
|
+
type: esprima.Syntax.Identifier
|
|
111
|
+
});
|
|
112
|
+
} else if (node.type === esprima.Syntax.Identifier) {
|
|
113
|
+
identifiers.push(node.name);
|
|
114
|
+
}
|
|
115
|
+
if (isAll) {
|
|
116
|
+
identifiers = identifiers.filter(
|
|
117
|
+
(item) => !functionMap[item] && item !== "undefined"
|
|
118
|
+
);
|
|
119
|
+
} else {
|
|
120
|
+
identifiers = identifiers.filter(
|
|
121
|
+
(item) => !functionMap[item] && item !== "undefined" && !innerVarIds.includes(item) && !item.startsWith(SYSTEM_VAR_PREFIX) && !item.startsWith("undefined.")
|
|
122
|
+
);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
return [...new Set(identifiers)];
|
|
127
|
+
}
|
|
128
|
+
window.gct_expression = {
|
|
129
|
+
execute: calculate,
|
|
130
|
+
identify
|
|
131
|
+
};
|
|
132
|
+
|
|
133
|
+
export { calculate, identify };
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { default as dayjs } from 'dayjs';
|
|
2
|
+
declare function IF<T>(expr: boolean, v: T, l: T): T;
|
|
3
|
+
declare function ISEMPTY<T>(v: T): boolean;
|
|
4
|
+
declare function ISNULL<T>(v: T): boolean;
|
|
5
|
+
declare function ISUNDEFINED<T>(v: T): boolean;
|
|
6
|
+
declare function AND<T>(...e: T[]): boolean;
|
|
7
|
+
declare function OR<T>(...e: T[]): boolean;
|
|
8
|
+
declare function EQ<T, K>(v: T, o: K): boolean;
|
|
9
|
+
declare function NE<T>(v: T, o: T): boolean;
|
|
10
|
+
declare function LE<T>(v: T, o: T): boolean;
|
|
11
|
+
declare function LT<T>(v: T, o: T): boolean;
|
|
12
|
+
declare function GE<T>(v: T, o: T): boolean;
|
|
13
|
+
declare function GT<T>(v: T, o: T): boolean;
|
|
14
|
+
declare function LEN(v?: string): number;
|
|
15
|
+
declare function CONCAT(...args: string[]): string;
|
|
16
|
+
declare function SUBSTRING(v: string | undefined, s: number, e: number): string;
|
|
17
|
+
declare function SUBSTR(v: string | undefined, s: number, l: number): string;
|
|
18
|
+
declare function UPPER(v?: string): string;
|
|
19
|
+
declare function LOWER(v?: string): string;
|
|
20
|
+
declare function TRIM(v?: string): string;
|
|
21
|
+
declare function LTRIM(v?: string): string;
|
|
22
|
+
declare function RTRIM(v?: string): string;
|
|
23
|
+
declare function REPEAT(v?: string, c?: string): number | null;
|
|
24
|
+
declare function REPLACE(v?: string, o?: string, t?: string): string;
|
|
25
|
+
declare function FINDSTR(v?: string, c?: string): boolean;
|
|
26
|
+
declare function SEARCHSTR(v?: string, c?: string): number;
|
|
27
|
+
declare function PARSENUMBER(v?: string): number | null;
|
|
28
|
+
declare function SPLIT(v?: string, c?: string): string[];
|
|
29
|
+
declare function SUM(...args: (number | string)[]): number | string;
|
|
30
|
+
declare function ADD(...args: number[]): number | string;
|
|
31
|
+
declare function REDUCE(v: number, ...args: number[]): number | string;
|
|
32
|
+
declare function MULTIPLICATION(val: number | string, ...args: (number | string)[]): number | string;
|
|
33
|
+
declare function DIVISION(v: number | string, ...args: (number | string)[]): number | string;
|
|
34
|
+
declare function FIXED(v: number, n: number): string | undefined;
|
|
35
|
+
declare function ROUND(v: number | string, n: number): number | string;
|
|
36
|
+
declare function ROUNDUP(v: number | string, n: number): number | '';
|
|
37
|
+
declare function MAX(...args: (number | '')[]): number | string;
|
|
38
|
+
declare function LARGE(v: number[], n: number): number | undefined;
|
|
39
|
+
declare function MIN(...args: (number | '')[]): number | '';
|
|
40
|
+
declare function SMALL(v: number[], n: number): number | undefined;
|
|
41
|
+
declare function AVERAGE(...args: (number | '')[]): number | '';
|
|
42
|
+
declare function ABS(v: number): number;
|
|
43
|
+
declare function MOD(v: number, n: number): number | string;
|
|
44
|
+
declare function POWER(v: number, n: number): number;
|
|
45
|
+
declare function SQRT(v: number): number;
|
|
46
|
+
declare function GET<T extends object | IObject[]>(v: T, p: number | keyof T): T[keyof T];
|
|
47
|
+
declare function PUT<T extends object>(a: T, b: keyof T, c: unknown): T;
|
|
48
|
+
declare function PUSH<T>(v: T[], n: T): T[];
|
|
49
|
+
declare function HEADPUSH<T>(v: T[], n: T): T[];
|
|
50
|
+
declare function TIMESTAMP2DATE(v: number): string | undefined;
|
|
51
|
+
declare function DATE2TIMESTAMP(v: string): number | undefined;
|
|
52
|
+
declare function DATEFORMAT(v: Date, f: string): string | undefined;
|
|
53
|
+
declare function NOW(): string;
|
|
54
|
+
declare function TODAY(): string;
|
|
55
|
+
declare function YEAR(v: dayjs.ConfigType): number;
|
|
56
|
+
declare function MONTH(v: dayjs.ConfigType): number;
|
|
57
|
+
declare function DAY(v: dayjs.ConfigType): number;
|
|
58
|
+
declare function HOUR(v: dayjs.ConfigType): number;
|
|
59
|
+
declare function MINUTE(v: dayjs.ConfigType): number;
|
|
60
|
+
declare function WEEKRANGE(): [string, string];
|
|
61
|
+
declare function LASTWEEKRANGE(): [string, string];
|
|
62
|
+
declare function MONTHRANGE(): [string, string];
|
|
63
|
+
declare function LASTMONTHRANGE(): [string, string];
|
|
64
|
+
declare function YEARRANGE(): [string, string];
|
|
65
|
+
declare function LASTYEARRANGE(): [string, string];
|
|
66
|
+
declare function QUARTER(): [string, string];
|
|
67
|
+
declare function LASTQUARTER(): [string, string];
|
|
68
|
+
declare function ISDATERANGE(v: Date, r: [Date, Date]): boolean;
|
|
69
|
+
declare function ISTIMERANGE(v: string, r: [string, string]): boolean;
|
|
70
|
+
declare function TUPLE(...args: unknown[]): unknown[];
|
|
71
|
+
declare function SEQMAP<K extends string | number | symbol, V>(...args: (K | V)[]): Record<K, V>;
|
|
72
|
+
declare function SUMSQ(...args: (string | '')[]): number | string;
|
|
73
|
+
/**数组计数 */
|
|
74
|
+
declare function COUNT(v: number[]): number | '';
|
|
75
|
+
/**标准差函数 */
|
|
76
|
+
declare function STDEV(...args: number[]): number | '';
|
|
77
|
+
export { IF, ISEMPTY, ISNULL, ISUNDEFINED, AND, OR, EQ, NE, LE, LT, GE, GT, LEN, CONCAT, SUBSTRING, SUBSTR, UPPER, LOWER, TRIM, LTRIM, RTRIM, REPEAT, REPLACE, FINDSTR, SEARCHSTR, PARSENUMBER, SPLIT, SUM, ADD, REDUCE, MULTIPLICATION, DIVISION, FIXED, ROUND, ROUNDUP, MAX, LARGE, MIN, SMALL, AVERAGE, ABS, MOD, POWER, SQRT, GET, PUT, PUSH, HEADPUSH, TIMESTAMP2DATE, DATE2TIMESTAMP, DATEFORMAT, NOW, TODAY, YEAR, MONTH, DAY, HOUR, MINUTE, WEEKRANGE, LASTWEEKRANGE, MONTHRANGE, LASTMONTHRANGE, YEARRANGE, LASTYEARRANGE, QUARTER, LASTQUARTER, ISDATERANGE, ISTIMERANGE, TUPLE, SEQMAP, SUMSQ, COUNT, STDEV, };
|