@openli1115/lowcode-edit-pro-table 1.0.71 → 1.0.73
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/build/docs/404.html +3 -3
- package/build/docs/_demos/:uuid +3 -3
- package/build/docs/colorful-button.html +3 -3
- package/build/docs/colorful-input.html +3 -3
- package/build/docs/index.html +3 -3
- package/build/docs/{umi.8af64e25.js → umi.4c0f778d.js} +1 -1
- package/build/docs/~demos/:uuid.html +3 -3
- package/build/docs/~demos/colorful-button-demo.html +3 -3
- package/build/docs/~demos/colorful-input-demo.html +3 -3
- package/build/lowcode/assets-daily.json +13 -13
- package/build/lowcode/assets-dev.json +2 -2
- package/build/lowcode/assets-prod.json +13 -13
- package/build/lowcode/meta.design.js +1 -1
- package/build/lowcode/meta.js +1 -1
- package/build/lowcode/render/default/view.js +2 -2
- package/build/lowcode/view.js +2 -2
- package/dist/BizComps.js +2 -2
- package/dist/BizComps.js.map +1 -1
- package/es/components/ProCascaderSelect/index.js +21 -5
- package/es/context/FormProvider.js +17 -8
- package/lib/components/ProCascaderSelect/index.js +21 -5
- package/lib/context/FormProvider.js +17 -8
- package/lowcode_es/meta.js +1 -1
- package/lowcode_lib/meta.js +1 -1
- package/package.json +3 -3
|
@@ -8,7 +8,8 @@ import { useProBoundValue } from "../../context/useProBoundValue";
|
|
|
8
8
|
import { FORM_EMPTY_ARRAY } from "../../context/useComponentContext";
|
|
9
9
|
var _window$React = window.React,
|
|
10
10
|
createElement = _window$React.createElement,
|
|
11
|
-
useCallback = _window$React.useCallback
|
|
11
|
+
useCallback = _window$React.useCallback,
|
|
12
|
+
useMemo = _window$React.useMemo;
|
|
12
13
|
|
|
13
14
|
/**
|
|
14
15
|
* 按路径在树形 dataSource 上逐级匹配,取出每一层的 label(2 级、3 级…任意多级,长度由 pathValues 决定)。
|
|
@@ -96,7 +97,8 @@ var ProCascaderSelect = function ProCascaderSelect(props) {
|
|
|
96
97
|
disabledProp = props.disabled,
|
|
97
98
|
_schemaValue = props.value,
|
|
98
99
|
schemaOnChange = props.onChange,
|
|
99
|
-
defaultValue = props.defaultValue
|
|
100
|
+
defaultValue = props.defaultValue,
|
|
101
|
+
multiple = props.multiple;
|
|
100
102
|
var _resolveProScreenBind = resolveProScreenBinding({
|
|
101
103
|
screen_structure: screen_structure,
|
|
102
104
|
screen_structure_field: screen_structure_field,
|
|
@@ -114,12 +116,26 @@ var ProCascaderSelect = function ProCascaderSelect(props) {
|
|
|
114
116
|
commit(next);
|
|
115
117
|
schemaOnChange === null || schemaOnChange === void 0 ? void 0 : schemaOnChange(next, structureName, structureField);
|
|
116
118
|
};
|
|
119
|
+
|
|
120
|
+
/** 表单/接口:完整路径 string[],如 ['2974','2975'] */
|
|
117
121
|
var displayValue = normalizeCascaderPath(value);
|
|
118
122
|
|
|
119
123
|
/**
|
|
120
|
-
* Fusion
|
|
121
|
-
*
|
|
124
|
+
* Fusion 单选:官方约定受控 value 为 string[] | number[],且实现里只对数组取 value[0] 再查节点。
|
|
125
|
+
* 若传入完整路径 [父,子],会把「父」当成选中项,文案只有一级。
|
|
126
|
+
* 组件展示应传「叶子」单元素数组 [leaf],内部 getLabelPath(叶子节点) 会生成多级展示。
|
|
127
|
+
* 多选仍传 Fusion 所需的多个 value(与表单存值一致)。
|
|
122
128
|
*/
|
|
129
|
+
var valueForFusion = useMemo(function () {
|
|
130
|
+
var path = displayValue;
|
|
131
|
+
if (multiple) {
|
|
132
|
+
return path;
|
|
133
|
+
}
|
|
134
|
+
if (path.length === 0) return [];
|
|
135
|
+
return [path[path.length - 1]];
|
|
136
|
+
}, [displayValue, multiple]);
|
|
137
|
+
|
|
138
|
+
/** dataSource 未就绪或异步时,仍用自定义文案兜底 */
|
|
123
139
|
var schemaDisplayRender = props.displayRender;
|
|
124
140
|
var pathDisplayRender = useCallback(function (labels, data) {
|
|
125
141
|
var fullLabels = resolvePathLabels(dataSource, normalizeCascaderPath(value));
|
|
@@ -137,7 +153,7 @@ var ProCascaderSelect = function ProCascaderSelect(props) {
|
|
|
137
153
|
readOnly: disableEdit ? true : readOnlyProp,
|
|
138
154
|
disabled: disabledProp,
|
|
139
155
|
dataSource: dataSource,
|
|
140
|
-
value:
|
|
156
|
+
value: valueForFusion,
|
|
141
157
|
onChange: handleChange,
|
|
142
158
|
displayRender: pathDisplayRender
|
|
143
159
|
})));
|
|
@@ -42,15 +42,24 @@ export var FormProvider = function FormProvider(_ref) {
|
|
|
42
42
|
values = _useState[0],
|
|
43
43
|
setValues = _useState[1];
|
|
44
44
|
|
|
45
|
-
|
|
45
|
+
/**
|
|
46
|
+
* 不能只用 !isEqual:store 对同引用 clone 回灌时,initialValues 是新引用,但与 initialValuesRef 旧对象深比较相等,
|
|
47
|
+
* 会误判「无变化」而不 merge;若表单 values 已是用户 cloneDeep 的副本,不会随原地修改更新 → 逻辑流不回填。
|
|
48
|
+
* 用「引用是否变化」决定是否同步;再用 merged 深比较避免无谓 setState(减轻 Fusion #185)。
|
|
49
|
+
*/
|
|
46
50
|
useEffect(function () {
|
|
47
|
-
if (
|
|
48
|
-
|
|
49
|
-
initialValuesRef.current = initialValues;
|
|
50
|
-
setValues(function (prev) {
|
|
51
|
-
return _extends({}, prev, initialValues);
|
|
52
|
-
});
|
|
51
|
+
if (initialValues === initialValuesRef.current) {
|
|
52
|
+
return;
|
|
53
53
|
}
|
|
54
|
+
console.log('[FormProvider] 🔄 useEffect triggered - initialValues:', initialValues);
|
|
55
|
+
initialValuesRef.current = initialValues;
|
|
56
|
+
setValues(function (prev) {
|
|
57
|
+
var merged = _extends({}, prev, initialValues);
|
|
58
|
+
if (isEqual(prev, merged)) {
|
|
59
|
+
return prev;
|
|
60
|
+
}
|
|
61
|
+
return merged;
|
|
62
|
+
});
|
|
54
63
|
}, [initialValues]);
|
|
55
64
|
|
|
56
65
|
// 优化 setFieldValue
|
|
@@ -73,7 +82,7 @@ export var FormProvider = function FormProvider(_ref) {
|
|
|
73
82
|
}
|
|
74
83
|
return newValues;
|
|
75
84
|
});
|
|
76
|
-
}, []);
|
|
85
|
+
}, [onChange]);
|
|
77
86
|
|
|
78
87
|
// 使用 useMemo 缓存 context 值
|
|
79
88
|
var contextValue = useMemo(function () {
|
|
@@ -13,7 +13,8 @@ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r)
|
|
|
13
13
|
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
14
14
|
var _window$React = window.React,
|
|
15
15
|
createElement = _window$React.createElement,
|
|
16
|
-
useCallback = _window$React.useCallback
|
|
16
|
+
useCallback = _window$React.useCallback,
|
|
17
|
+
useMemo = _window$React.useMemo;
|
|
17
18
|
|
|
18
19
|
/**
|
|
19
20
|
* 按路径在树形 dataSource 上逐级匹配,取出每一层的 label(2 级、3 级…任意多级,长度由 pathValues 决定)。
|
|
@@ -101,7 +102,8 @@ var ProCascaderSelect = function ProCascaderSelect(props) {
|
|
|
101
102
|
disabledProp = props.disabled,
|
|
102
103
|
_schemaValue = props.value,
|
|
103
104
|
schemaOnChange = props.onChange,
|
|
104
|
-
defaultValue = props.defaultValue
|
|
105
|
+
defaultValue = props.defaultValue,
|
|
106
|
+
multiple = props.multiple;
|
|
105
107
|
var _resolveProScreenBind = (0, _utils.resolveProScreenBinding)({
|
|
106
108
|
screen_structure: screen_structure,
|
|
107
109
|
screen_structure_field: screen_structure_field,
|
|
@@ -119,12 +121,26 @@ var ProCascaderSelect = function ProCascaderSelect(props) {
|
|
|
119
121
|
commit(next);
|
|
120
122
|
schemaOnChange === null || schemaOnChange === void 0 ? void 0 : schemaOnChange(next, structureName, structureField);
|
|
121
123
|
};
|
|
124
|
+
|
|
125
|
+
/** 表单/接口:完整路径 string[],如 ['2974','2975'] */
|
|
122
126
|
var displayValue = normalizeCascaderPath(value);
|
|
123
127
|
|
|
124
128
|
/**
|
|
125
|
-
* Fusion
|
|
126
|
-
*
|
|
129
|
+
* Fusion 单选:官方约定受控 value 为 string[] | number[],且实现里只对数组取 value[0] 再查节点。
|
|
130
|
+
* 若传入完整路径 [父,子],会把「父」当成选中项,文案只有一级。
|
|
131
|
+
* 组件展示应传「叶子」单元素数组 [leaf],内部 getLabelPath(叶子节点) 会生成多级展示。
|
|
132
|
+
* 多选仍传 Fusion 所需的多个 value(与表单存值一致)。
|
|
127
133
|
*/
|
|
134
|
+
var valueForFusion = useMemo(function () {
|
|
135
|
+
var path = displayValue;
|
|
136
|
+
if (multiple) {
|
|
137
|
+
return path;
|
|
138
|
+
}
|
|
139
|
+
if (path.length === 0) return [];
|
|
140
|
+
return [path[path.length - 1]];
|
|
141
|
+
}, [displayValue, multiple]);
|
|
142
|
+
|
|
143
|
+
/** dataSource 未就绪或异步时,仍用自定义文案兜底 */
|
|
128
144
|
var schemaDisplayRender = props.displayRender;
|
|
129
145
|
var pathDisplayRender = useCallback(function (labels, data) {
|
|
130
146
|
var fullLabels = resolvePathLabels(dataSource, normalizeCascaderPath(value));
|
|
@@ -142,7 +158,7 @@ var ProCascaderSelect = function ProCascaderSelect(props) {
|
|
|
142
158
|
readOnly: disableEdit ? true : readOnlyProp,
|
|
143
159
|
disabled: disabledProp,
|
|
144
160
|
dataSource: dataSource,
|
|
145
|
-
value:
|
|
161
|
+
value: valueForFusion,
|
|
146
162
|
onChange: handleChange,
|
|
147
163
|
displayRender: pathDisplayRender
|
|
148
164
|
})));
|
|
@@ -48,15 +48,24 @@ var FormProvider = exports.FormProvider = function FormProvider(_ref) {
|
|
|
48
48
|
values = _useState[0],
|
|
49
49
|
setValues = _useState[1];
|
|
50
50
|
|
|
51
|
-
|
|
51
|
+
/**
|
|
52
|
+
* 不能只用 !isEqual:store 对同引用 clone 回灌时,initialValues 是新引用,但与 initialValuesRef 旧对象深比较相等,
|
|
53
|
+
* 会误判「无变化」而不 merge;若表单 values 已是用户 cloneDeep 的副本,不会随原地修改更新 → 逻辑流不回填。
|
|
54
|
+
* 用「引用是否变化」决定是否同步;再用 merged 深比较避免无谓 setState(减轻 Fusion #185)。
|
|
55
|
+
*/
|
|
52
56
|
useEffect(function () {
|
|
53
|
-
if (
|
|
54
|
-
|
|
55
|
-
initialValuesRef.current = initialValues;
|
|
56
|
-
setValues(function (prev) {
|
|
57
|
-
return (0, _extends2["default"])({}, prev, initialValues);
|
|
58
|
-
});
|
|
57
|
+
if (initialValues === initialValuesRef.current) {
|
|
58
|
+
return;
|
|
59
59
|
}
|
|
60
|
+
console.log('[FormProvider] 🔄 useEffect triggered - initialValues:', initialValues);
|
|
61
|
+
initialValuesRef.current = initialValues;
|
|
62
|
+
setValues(function (prev) {
|
|
63
|
+
var merged = (0, _extends2["default"])({}, prev, initialValues);
|
|
64
|
+
if ((0, _lodash.isEqual)(prev, merged)) {
|
|
65
|
+
return prev;
|
|
66
|
+
}
|
|
67
|
+
return merged;
|
|
68
|
+
});
|
|
60
69
|
}, [initialValues]);
|
|
61
70
|
|
|
62
71
|
// 优化 setFieldValue
|
|
@@ -79,7 +88,7 @@ var FormProvider = exports.FormProvider = function FormProvider(_ref) {
|
|
|
79
88
|
}
|
|
80
89
|
return newValues;
|
|
81
90
|
});
|
|
82
|
-
}, []);
|
|
91
|
+
}, [onChange]);
|
|
83
92
|
|
|
84
93
|
// 使用 useMemo 缓存 context 值
|
|
85
94
|
var contextValue = useMemo(function () {
|
package/lowcode_es/meta.js
CHANGED
|
@@ -101,7 +101,7 @@ function fillRealVersion(meta, packageName, version, basicLibraryVersion) {
|
|
|
101
101
|
packageName = '@openli1115/lowcode-edit-pro-table';
|
|
102
102
|
}
|
|
103
103
|
if (version === void 0) {
|
|
104
|
-
version = '1.0.
|
|
104
|
+
version = '1.0.73';
|
|
105
105
|
}
|
|
106
106
|
if (basicLibraryVersion === void 0) {
|
|
107
107
|
basicLibraryVersion = {
|
package/lowcode_lib/meta.js
CHANGED
|
@@ -106,7 +106,7 @@ function fillRealVersion(meta, packageName, version, basicLibraryVersion) {
|
|
|
106
106
|
packageName = '@openli1115/lowcode-edit-pro-table';
|
|
107
107
|
}
|
|
108
108
|
if (version === void 0) {
|
|
109
|
-
version = '1.0.
|
|
109
|
+
version = '1.0.73';
|
|
110
110
|
}
|
|
111
111
|
if (basicLibraryVersion === void 0) {
|
|
112
112
|
basicLibraryVersion = {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openli1115/lowcode-edit-pro-table",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.73",
|
|
4
4
|
"description": "@openli1115/lowcode-edit-pro-table",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "es/index.js",
|
|
@@ -101,10 +101,10 @@
|
|
|
101
101
|
},
|
|
102
102
|
"componentConfig": {
|
|
103
103
|
"isComponentLibrary": true,
|
|
104
|
-
"materialSchema": "https://unpkg.com/@openli1115/lowcode-edit-pro-table@1.0.
|
|
104
|
+
"materialSchema": "https://unpkg.com/@openli1115/lowcode-edit-pro-table@1.0.73/build/lowcode/assets-prod.json"
|
|
105
105
|
},
|
|
106
106
|
"lcMeta": {
|
|
107
107
|
"type": "component"
|
|
108
108
|
},
|
|
109
|
-
"homepage": "https://unpkg.com/@openli1115/lowcode-edit-pro-table@1.0.
|
|
109
|
+
"homepage": "https://unpkg.com/@openli1115/lowcode-edit-pro-table@1.0.73/build/index.html"
|
|
110
110
|
}
|