@gct-paas/render 6.0.0-dev.6 → 6.0.0-dev.60
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/dist/loader.esm.min.js +2 -2
- package/es/Event/Dependency/controller.d.ts +2 -1
- package/es/Event/Dependency/controller.mjs +7 -5
- package/es/Event/Dependency/displayRule.mjs +3 -1
- package/es/Event/Dependency/useDependency.mjs +30 -8
- package/es/Event/Dependency/useDependencyToShow.mjs +14 -8
- package/es/Event/baseEvent.mjs +3 -0
- package/es/Event/context-extension-registry.d.ts +43 -0
- package/es/Event/context-extension-registry.mjs +67 -0
- package/es/Event/index.d.ts +1 -0
- package/es/Event/index.mjs +1 -0
- package/es/Event/utils/runGlobalByPage.d.ts +2 -0
- package/es/index.mjs +3 -2
- package/es/register/render-register/render-register.d.ts +1 -1
- package/es/register/render-register/render-register.mjs +4 -2
- package/es/setup-app.mjs +6 -0
- package/es/utils/expression/index.d.ts +12 -0
- package/es/utils/expression/index.mjs +34 -6
- package/es/utils/expression/regularExpression/methods.d.ts +11 -3
- package/es/utils/expression/regularExpression/methods.mjs +90 -2
- package/es/utils/search/listhook.d.ts +8 -0
- package/es/utils/search/listhook.mjs +12 -1
- package/es/utils/search/search-hooks.d.ts +1 -0
- package/es/utils/search/search-hooks.mjs +16 -9
- package/package.json +11 -11
|
@@ -13,13 +13,17 @@ var methods_exports = /* @__PURE__ */ __exportAll({
|
|
|
13
13
|
ADD: () => ADD,
|
|
14
14
|
AND: () => AND,
|
|
15
15
|
AVERAGE: () => AVERAGE,
|
|
16
|
+
BANKROUND: () => BANKROUND,
|
|
16
17
|
CONCAT: () => CONCAT,
|
|
17
18
|
COUNT: () => COUNT,
|
|
18
19
|
DATE2TIMESTAMP: () => DATE2TIMESTAMP,
|
|
19
20
|
DATEFORMAT: () => DATEFORMAT,
|
|
20
21
|
DAY: () => DAY,
|
|
21
22
|
DIVISION: () => DIVISION,
|
|
23
|
+
DateAdd: () => DateAdd,
|
|
24
|
+
DateSubtract: () => DateSubtract,
|
|
22
25
|
EQ: () => EQ,
|
|
26
|
+
EXP: () => EXP,
|
|
23
27
|
FINDSTR: () => FINDSTR,
|
|
24
28
|
FIXED: () => FIXED,
|
|
25
29
|
GE: () => GE,
|
|
@@ -40,10 +44,12 @@ var methods_exports = /* @__PURE__ */ __exportAll({
|
|
|
40
44
|
LASTYEARRANGE: () => LASTYEARRANGE,
|
|
41
45
|
LE: () => LE,
|
|
42
46
|
LEN: () => LEN,
|
|
47
|
+
LN: () => LN,
|
|
43
48
|
LOWER: () => LOWER,
|
|
44
49
|
LT: () => LT,
|
|
45
50
|
LTRIM: () => LTRIM,
|
|
46
51
|
MAX: () => MAX,
|
|
52
|
+
MAXABS: () => MAXABS,
|
|
47
53
|
MIN: () => MIN,
|
|
48
54
|
MINUTE: () => MINUTE,
|
|
49
55
|
MOD: () => MOD,
|
|
@@ -63,6 +69,7 @@ var methods_exports = /* @__PURE__ */ __exportAll({
|
|
|
63
69
|
REPLACE: () => REPLACE,
|
|
64
70
|
ROUND: () => ROUND,
|
|
65
71
|
ROUNDUP: () => ROUNDUP,
|
|
72
|
+
RSQ: () => RSQ,
|
|
66
73
|
RTRIM: () => RTRIM,
|
|
67
74
|
SEARCHSTR: () => SEARCHSTR,
|
|
68
75
|
SEQMAP: () => SEQMAP,
|
|
@@ -324,6 +331,18 @@ function ABS(v) {
|
|
|
324
331
|
const fn = () => Math.abs.call(null, v);
|
|
325
332
|
return fn();
|
|
326
333
|
}
|
|
334
|
+
function MAXABS(...args) {
|
|
335
|
+
const v = args.flat().filter((i) => i !== null && i !== void 0);
|
|
336
|
+
if (!v.length) return "";
|
|
337
|
+
const fn = () => v.reduce((prev, current) => Math.abs(Number(current)) > Math.abs(Number(prev)) ? current : prev);
|
|
338
|
+
return fn();
|
|
339
|
+
}
|
|
340
|
+
function BANKROUND(v, n) {
|
|
341
|
+
if (v === null || v === "" || v === void 0) return "";
|
|
342
|
+
if (n < 0) throw new Error("Decimal places should be non-negative.");
|
|
343
|
+
n = n ? parseInt(n + "") : 0;
|
|
344
|
+
return new BigNumberJS(v).decimalPlaces(n, BigNumberJS.ROUND_HALF_EVEN).toNumber();
|
|
345
|
+
}
|
|
327
346
|
function MOD(v, n) {
|
|
328
347
|
const fn = () => {
|
|
329
348
|
if (v === 0) throw new Error("The second value should not be zero.");
|
|
@@ -365,6 +384,22 @@ function SQRT(v) {
|
|
|
365
384
|
};
|
|
366
385
|
return fn();
|
|
367
386
|
}
|
|
387
|
+
function EXP(v) {
|
|
388
|
+
const fn = () => {
|
|
389
|
+
const n = toSafeNumber(v);
|
|
390
|
+
if (n === null) return NaN;
|
|
391
|
+
return Math.exp(n);
|
|
392
|
+
};
|
|
393
|
+
return fn();
|
|
394
|
+
}
|
|
395
|
+
function LN(v) {
|
|
396
|
+
const fn = () => {
|
|
397
|
+
const n = toSafeNumber(v);
|
|
398
|
+
if (n === null || n <= 0) throw new Error("The value must be greater than zero.");
|
|
399
|
+
return Math.log(n);
|
|
400
|
+
};
|
|
401
|
+
return fn();
|
|
402
|
+
}
|
|
368
403
|
function GET(v, p) {
|
|
369
404
|
const fn = () => {
|
|
370
405
|
if (Array.isArray(v)) if (typeof p === "number") return v[p];
|
|
@@ -421,6 +456,35 @@ function DATEFORMAT(v, f) {
|
|
|
421
456
|
const fn = () => dayjs(v).format(f);
|
|
422
457
|
return fn();
|
|
423
458
|
}
|
|
459
|
+
function _detectDateType(v) {
|
|
460
|
+
if (/^\d{2}:\d{2}(:\d{2})?$/.test(v.trim())) return "time";
|
|
461
|
+
if (/^\d{4}-\d{2}-\d{2}$/.test(v.trim())) return "date";
|
|
462
|
+
return "datetime";
|
|
463
|
+
}
|
|
464
|
+
function _getDefaultFormat(type) {
|
|
465
|
+
if (type === "date") return "YYYY-MM-DD";
|
|
466
|
+
if (type === "time") return "HH:mm:ss";
|
|
467
|
+
return "YYYY-MM-DD HH:mm:ss";
|
|
468
|
+
}
|
|
469
|
+
var TIME_BASE_DATE = "2000-01-01 ";
|
|
470
|
+
function DateAdd(v, num, unit, format) {
|
|
471
|
+
if (!v) return;
|
|
472
|
+
const fn = () => {
|
|
473
|
+
const type = _detectDateType(v);
|
|
474
|
+
const fmt = format ?? _getDefaultFormat(type);
|
|
475
|
+
return dayjs(type === "time" ? TIME_BASE_DATE + v.trim() : v).add(num, unit).format(fmt);
|
|
476
|
+
};
|
|
477
|
+
return fn();
|
|
478
|
+
}
|
|
479
|
+
function DateSubtract(v, num, unit, format) {
|
|
480
|
+
if (!v) return;
|
|
481
|
+
const fn = () => {
|
|
482
|
+
const type = _detectDateType(v);
|
|
483
|
+
const fmt = format ?? _getDefaultFormat(type);
|
|
484
|
+
return dayjs(type === "time" ? TIME_BASE_DATE + v.trim() : v).subtract(num, unit).format(fmt);
|
|
485
|
+
};
|
|
486
|
+
return fn();
|
|
487
|
+
}
|
|
424
488
|
function NOW() {
|
|
425
489
|
return dayjs().format("YYYY-MM-DD HH:MM:ss");
|
|
426
490
|
}
|
|
@@ -553,9 +617,9 @@ function COUNT(v) {
|
|
|
553
617
|
if (!Array.isArray(v)) return "";
|
|
554
618
|
return v.length;
|
|
555
619
|
}
|
|
556
|
-
|
|
620
|
+
/**标准差函数,支持任意个参数,参数可为数组或非数组,空值不参与计算 */
|
|
557
621
|
function STDEV(...args) {
|
|
558
|
-
const data = args.flat().map((v) => Number(v)).filter((v) => Number.isFinite(v));
|
|
622
|
+
const data = args.flat().filter((i) => i !== "" && i !== null && i !== void 0).map((v) => Number(v)).filter((v) => Number.isFinite(v));
|
|
559
623
|
if (data.length < 2) return "";
|
|
560
624
|
const mean = data.reduce((sum, val) => sum + val, 0) / data.length;
|
|
561
625
|
const variance = data.reduce((sum, val) => {
|
|
@@ -564,6 +628,30 @@ function STDEV(...args) {
|
|
|
564
628
|
}, 0) / (data.length - 1);
|
|
565
629
|
return Math.sqrt(variance);
|
|
566
630
|
}
|
|
631
|
+
/** RSQ函数 */
|
|
632
|
+
function RSQ(arr1, arr2) {
|
|
633
|
+
if (!Array.isArray(arr1) || !Array.isArray(arr2)) return "";
|
|
634
|
+
const y = arr1.map((v) => Number(v)).filter((v) => Number.isFinite(v));
|
|
635
|
+
const x = arr2.map((v) => Number(v)).filter((v) => Number.isFinite(v));
|
|
636
|
+
if (y.length <= 1 || x.length <= 1 || y.length !== x.length) return "";
|
|
637
|
+
const n = y.length;
|
|
638
|
+
const meanY = y.reduce((sum, val) => sum + val, 0) / n;
|
|
639
|
+
const meanX = x.reduce((sum, val) => sum + val, 0) / n;
|
|
640
|
+
let numerator = 0;
|
|
641
|
+
let denomY = 0;
|
|
642
|
+
let denomX = 0;
|
|
643
|
+
for (let i = 0; i < n; i++) {
|
|
644
|
+
const diffY = y[i] - meanY;
|
|
645
|
+
const diffX = x[i] - meanX;
|
|
646
|
+
numerator += diffX * diffY;
|
|
647
|
+
denomY += diffY * diffY;
|
|
648
|
+
denomX += diffX * diffX;
|
|
649
|
+
}
|
|
650
|
+
if (denomY === 0 || denomX === 0) return "";
|
|
651
|
+
const r = numerator / Math.sqrt(denomX * denomY);
|
|
652
|
+
const rsq = r * r;
|
|
653
|
+
return Math.min(Math.max(rsq, 0), 1);
|
|
654
|
+
}
|
|
567
655
|
function plus(a, b) {
|
|
568
656
|
const result = new BigNumberJS(a).plus(new BigNumberJS(b)).toNumber();
|
|
569
657
|
if (isNaN(result)) return "";
|
|
@@ -21,3 +21,11 @@ export declare const useQueryfilter: (datafilter: IObject[] | IObject) => {
|
|
|
21
21
|
* @returns
|
|
22
22
|
*/
|
|
23
23
|
export declare const getQuerySort: ({ collation, collationSort, collationField, }: IObject) => any;
|
|
24
|
+
/**
|
|
25
|
+
* 关键字搜索时,取配置的搜索字段的第一段作为 similarField 交给后端做匹配度排序
|
|
26
|
+
* 使用方:下拉/对象选择的关键字搜索、搜索选择组件(select-search)
|
|
27
|
+
* 注意:与「查询组件」的 similarField(取第一个有值字段)来源不同,勿混用
|
|
28
|
+
* @param searchField 配置的搜索字段
|
|
29
|
+
* @param keyword 搜索的关键字
|
|
30
|
+
*/
|
|
31
|
+
export declare function getSimilarFieldBySearchField(searchField?: string[], keyword?: string): string | undefined;
|
|
@@ -87,5 +87,16 @@ var getQuerySort = ({ collation, collationSort, collationField }) => {
|
|
|
87
87
|
sortType: collationSort
|
|
88
88
|
}] : [];
|
|
89
89
|
};
|
|
90
|
+
/**
|
|
91
|
+
* 关键字搜索时,取配置的搜索字段的第一段作为 similarField 交给后端做匹配度排序
|
|
92
|
+
* 使用方:下拉/对象选择的关键字搜索、搜索选择组件(select-search)
|
|
93
|
+
* 注意:与「查询组件」的 similarField(取第一个有值字段)来源不同,勿混用
|
|
94
|
+
* @param searchField 配置的搜索字段
|
|
95
|
+
* @param keyword 搜索的关键字
|
|
96
|
+
*/
|
|
97
|
+
function getSimilarFieldBySearchField(searchField, keyword) {
|
|
98
|
+
if (!keyword?.trim() || !searchField?.length) return void 0;
|
|
99
|
+
return searchField[0]?.split(".")[0] || void 0;
|
|
100
|
+
}
|
|
90
101
|
//#endregion
|
|
91
|
-
export { getIExp, getIKeywordFieldKeys, getQueryDateByKeyWord, getQuerySort, useQueryfilter };
|
|
102
|
+
export { getIExp, getIKeywordFieldKeys, getQueryDateByKeyWord, getQuerySort, getSimilarFieldBySearchField, useQueryfilter };
|
|
@@ -22,20 +22,26 @@ function useGetBodyBySearch(formState, cacheColumns, expStr) {
|
|
|
22
22
|
function transformToBody(state) {
|
|
23
23
|
const body = {};
|
|
24
24
|
let exp = expStr || "";
|
|
25
|
+
/** 按查询组件顺序取第一个有值字段,供后端 similarField(搜索时按匹配度排序) */
|
|
26
|
+
let similarField;
|
|
25
27
|
cacheColumns.forEach((i) => {
|
|
26
28
|
const field = i.props.fieldSearchKey || i.props.field;
|
|
27
29
|
const ope = i.props.ope || [];
|
|
28
30
|
let value = state[i.id];
|
|
29
|
-
if (!isEmptySearchValue(value) || i.props.useMore)
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
31
|
+
if (!isEmptySearchValue(value) || i.props.useMore) {
|
|
32
|
+
if (!similarField && field) similarField = field;
|
|
33
|
+
ope.forEach((o) => {
|
|
34
|
+
value = getMultipleChoiceToArray(value, o);
|
|
35
|
+
const key = `${field}.${o}:${i.id}`, expkey = `${i.id}.${o}`;
|
|
36
|
+
body[key] = i.props.useMore ? null : value;
|
|
37
|
+
exp = exp.replace(expkey, key);
|
|
38
|
+
});
|
|
39
|
+
}
|
|
35
40
|
});
|
|
36
41
|
return {
|
|
37
42
|
body,
|
|
38
|
-
exp
|
|
43
|
+
exp,
|
|
44
|
+
similarField
|
|
39
45
|
};
|
|
40
46
|
}
|
|
41
47
|
/** rdo版本关联查询数据单独处理 */
|
|
@@ -59,10 +65,11 @@ function useGetBodyBySearch(formState, cacheColumns, expStr) {
|
|
|
59
65
|
});
|
|
60
66
|
return state;
|
|
61
67
|
}
|
|
62
|
-
const { body, exp } = transformToBody(transformRdo(formState, cacheColumns));
|
|
68
|
+
const { body, exp, similarField } = transformToBody(transformRdo(formState, cacheColumns));
|
|
63
69
|
return {
|
|
64
70
|
query: body,
|
|
65
|
-
exp
|
|
71
|
+
exp,
|
|
72
|
+
similarField
|
|
66
73
|
};
|
|
67
74
|
}
|
|
68
75
|
function getMultipleChoiceToArray(value, ope) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gct-paas/render",
|
|
3
|
-
"version": "6.0.0-dev.
|
|
3
|
+
"version": "6.0.0-dev.60",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "paas 平台网页端底包",
|
|
6
6
|
"loader": "dist/loader.esm.min.js",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"license": "MIT",
|
|
32
32
|
"author": "gct",
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@gct-paas/api": "^6.0.0-dev.
|
|
34
|
+
"@gct-paas/api": "^6.0.0-dev.17",
|
|
35
35
|
"@vueuse/core": "^14.1.0",
|
|
36
36
|
"axios": "^1.13.2",
|
|
37
37
|
"bignumber.js": "^10.0.2",
|
|
@@ -44,10 +44,10 @@
|
|
|
44
44
|
"qx-util": "^0.4.8",
|
|
45
45
|
"vue": "^3.5.30",
|
|
46
46
|
"vue3-dnd": "^2.1.0",
|
|
47
|
-
"@gct-paas/core": "6.0.0-dev.
|
|
48
|
-
"@gct-paas/
|
|
49
|
-
"@gct-paas/
|
|
50
|
-
"@gct-paas/
|
|
47
|
+
"@gct-paas/core": "6.0.0-dev.60",
|
|
48
|
+
"@gct-paas/schema": "6.0.0-dev.60",
|
|
49
|
+
"@gct-paas/core-web": "6.0.0-dev.60",
|
|
50
|
+
"@gct-paas/scss": "6.0.0-dev.60"
|
|
51
51
|
},
|
|
52
52
|
"devDependencies": {
|
|
53
53
|
"@types/escodegen": "^0.0.10",
|
|
@@ -55,12 +55,12 @@
|
|
|
55
55
|
"@types/estree": "^1.0.8"
|
|
56
56
|
},
|
|
57
57
|
"peerDependencies": {
|
|
58
|
-
"@gct-paas/api": "^6.0.0-dev.
|
|
58
|
+
"@gct-paas/api": "^6.0.0-dev.17",
|
|
59
59
|
"vue": ">=3",
|
|
60
|
-
"@gct-paas/core": "6.0.0-dev.
|
|
61
|
-
"@gct-paas/
|
|
62
|
-
"@gct-paas/
|
|
63
|
-
"@gct-paas/
|
|
60
|
+
"@gct-paas/core": "6.0.0-dev.60",
|
|
61
|
+
"@gct-paas/scss": "6.0.0-dev.60",
|
|
62
|
+
"@gct-paas/core-web": "6.0.0-dev.60",
|
|
63
|
+
"@gct-paas/schema": "6.0.0-dev.60"
|
|
64
64
|
},
|
|
65
65
|
"scripts": {
|
|
66
66
|
"dev": "cross-env NODE_ENV=development vite build --watch --config vite.dev.config.ts",
|