@hzab/list-render 1.10.12-beta5 → 1.10.12-beta6
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 +1 -0
- package/README.md +15 -11
- package/package.json +1 -1
- package/src/list-render.jsx +27 -18
- package/src/query-render/index.jsx +2 -2
package/CHANGELOG.md
CHANGED
package/README.md
CHANGED
|
@@ -104,7 +104,7 @@ const listDM = useMemo(
|
|
|
104
104
|
| editMode | modal/line/line-cell/cell | 否 | modal | 编辑模式: modal 弹窗/抽屉编辑; line 编辑整行,编辑按钮在操作列; line-cell 编辑整行,操作按钮在单元格; cell 编辑指定单元格 |
|
|
105
105
|
| appendUrlQuery | boolean | 否 | true | 筛选条件改变时是否将参数(对象形式)设置到 url query 中 |
|
|
106
106
|
| appendUrlQueryKey | string | 否 | URL_PARAM_NAME = "defaultSearchParams" | 自定义设置 url query 对象参数的 key |
|
|
107
|
-
| onEditReqVerify | Function | 否 | - | 编辑态保存时额外的规则校验函数,返回Promise的resolve或reject用于继续执行或停止执行
|
|
107
|
+
| onEditReqVerify | Function | 否 | - | 编辑态保存时额外的规则校验函数,返回 Promise 的 resolve 或 reject 用于继续执行或停止执行 |
|
|
108
108
|
|
|
109
109
|
- fetchOnEdit 展示编辑弹框时,是否会调用一次详情接口进行回填(某些场景下,列表接口只返回部分部分字段,只有详情接口会返回全部字段);若为 false,则会使用表格列表接口返回的 row 数据进行回填
|
|
110
110
|
|
|
@@ -269,16 +269,20 @@ const Slots = {
|
|
|
269
269
|
|
|
270
270
|
- 可使用 ref 获取并触发执行
|
|
271
271
|
|
|
272
|
-
| 函数名 | 参数
|
|
273
|
-
| ------------ |
|
|
274
|
-
| onSearch | query | 重置页码至 1,并刷新列表 |
|
|
275
|
-
| getList | query
|
|
276
|
-
| forceUpdate | -
|
|
277
|
-
| formModalRef | -
|
|
278
|
-
| queryRef | -
|
|
279
|
-
| onCreate | -
|
|
280
|
-
| onEdit | row
|
|
281
|
-
| onDel | row
|
|
272
|
+
| 函数名 | 参数 | 说明 |
|
|
273
|
+
| ------------ | ------------ | -------------------------------------------- |
|
|
274
|
+
| onSearch | (query, opt) | 重置页码至 1,并刷新列表 |
|
|
275
|
+
| getList | query | 获取当前页列表数据 |
|
|
276
|
+
| forceUpdate | - | 强制重渲染列表,解决枚举数据渲染不正常的问题 |
|
|
277
|
+
| formModalRef | - | 新增、编辑 弹窗 form-modal 的 ref |
|
|
278
|
+
| queryRef | - | 筛选条件 query-render 的 ref |
|
|
279
|
+
| onCreate | - | 手动触发新增按钮相关操作 |
|
|
280
|
+
| onEdit | row | 手动触发编辑按钮相关操作 |
|
|
281
|
+
| onDel | row | 手动触发删除按钮相关操作 |
|
|
282
|
+
|
|
283
|
+
- onSearch opt
|
|
284
|
+
- isSaveQuery 是否保存传入的 query 值
|
|
285
|
+
- isMergeQuery 是否合并上一次保存的 query 值
|
|
282
286
|
|
|
283
287
|
# Schema
|
|
284
288
|
|
package/package.json
CHANGED
package/src/list-render.jsx
CHANGED
|
@@ -222,39 +222,48 @@ const ListRender = forwardRef(function (props, parentRef) {
|
|
|
222
222
|
getList();
|
|
223
223
|
}
|
|
224
224
|
|
|
225
|
-
function onSearch(query,
|
|
225
|
+
function onSearch(query, opt = {}) {
|
|
226
|
+
const {
|
|
227
|
+
/**
|
|
228
|
+
* 是否保存传入的 query 值
|
|
229
|
+
*/
|
|
230
|
+
isSaveQuery = true,
|
|
231
|
+
/**
|
|
232
|
+
* 是否合并上一次保存的 query 值
|
|
233
|
+
*/
|
|
234
|
+
isMergeQuery = true,
|
|
235
|
+
} = opt || {};
|
|
226
236
|
if (model && !model.query) {
|
|
227
237
|
model.query = {};
|
|
228
238
|
}
|
|
229
|
-
// model.query.pageNum = 1;
|
|
230
239
|
paginationQueryRef.current = { ...paginationQueryRef.current, pageNum: 1 };
|
|
231
240
|
|
|
232
241
|
if (model && model.query && !model.query.pageSize) {
|
|
233
242
|
model.query.pageSize = pageSizeOptions[0];
|
|
234
243
|
}
|
|
235
|
-
|
|
236
|
-
|
|
244
|
+
if (isSaveQuery) {
|
|
245
|
+
formQueryRef.current = { ...(isMergeQuery ? formQueryRef.current : {}), ...query };
|
|
246
|
+
}
|
|
247
|
+
return getList(query);
|
|
237
248
|
}
|
|
238
249
|
|
|
239
250
|
/**
|
|
240
251
|
* query 表单提交回调
|
|
241
|
-
* @param {
|
|
252
|
+
* @param {Object} values
|
|
242
253
|
* @returns
|
|
243
254
|
*/
|
|
244
|
-
function onQueryFormSubmit(
|
|
245
|
-
|
|
246
|
-
// 重置操作时不赋值
|
|
255
|
+
function onQueryFormSubmit(query, isReset) {
|
|
256
|
+
// 是否开启 url query
|
|
247
257
|
if (appendUrlQuery) {
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
if (appendUrlQuery) {
|
|
255
|
-
removeURLObjectQueryParam(appendUrlQueryKey, "", true);
|
|
258
|
+
if (isReset) {
|
|
259
|
+
// 重置操作时不赋值
|
|
260
|
+
removeURLObjectQueryParam(appendUrlQueryKey, "", true);
|
|
261
|
+
} else {
|
|
262
|
+
setURLObjectQueryParam(query, appendUrlQueryKey);
|
|
263
|
+
}
|
|
256
264
|
}
|
|
257
|
-
|
|
265
|
+
formQueryRef.current = query;
|
|
266
|
+
return onSearch(query);
|
|
258
267
|
}
|
|
259
268
|
|
|
260
269
|
function handleFieldValueChange(filed, form) {
|
|
@@ -447,7 +456,7 @@ const ListRender = forwardRef(function (props, parentRef) {
|
|
|
447
456
|
...(queryFormIsExtendModelQuery ? model.query : {}),
|
|
448
457
|
}}
|
|
449
458
|
onSearch={onQueryFormSubmit}
|
|
450
|
-
onReset={
|
|
459
|
+
onReset={onQueryFormSubmit}
|
|
451
460
|
schemaScope={props.schemaScope}
|
|
452
461
|
components={props.components}
|
|
453
462
|
onFieldValueChange={handleFieldValueChange}
|
|
@@ -50,12 +50,12 @@ function QueryRender(props, parentRef) {
|
|
|
50
50
|
|
|
51
51
|
if (!beforeQuerySearchResult) return;
|
|
52
52
|
}
|
|
53
|
-
return props.onSearch && props.onSearch(query
|
|
53
|
+
return props.onSearch && props.onSearch(query);
|
|
54
54
|
}
|
|
55
55
|
|
|
56
56
|
function onReset() {
|
|
57
57
|
formRef.current?.formRender?.reset();
|
|
58
|
-
props.
|
|
58
|
+
props.onSearch && props.onSearch(_.cloneDeep(formRef?.current?.formRender?.values), true);
|
|
59
59
|
}
|
|
60
60
|
|
|
61
61
|
return (
|