@hzab/list-render 1.10.12-beta5 → 1.10.12

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 CHANGED
@@ -5,6 +5,7 @@ feat: schema title 支持传入 ReactNode,支持通过 schemaScope 传入
5
5
  fix: table 响应数据 去除 inTable == false 的字段
6
6
  fix: table 响应表单 FormilyField 环境变量 scenario: "tableReactionsForm"
7
7
  fix: 行内编辑 清除上一次的数据,解决切换表单数据未清除问题
8
+ feat: onSearch 支持配置是否保存 query
8
9
 
9
10
  # @hzab/list-render@1.10.11
10
11
 
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 | - | 新增、编辑 弹窗 form-modal 的 ref |
278
- | queryRef | - | 筛选条件 query-render 的 ref |
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hzab/list-render",
3
- "version": "1.10.12-beta5",
3
+ "version": "1.10.12",
4
4
  "description": "",
5
5
  "main": "src",
6
6
  "scripts": {
@@ -222,39 +222,48 @@ const ListRender = forwardRef(function (props, parentRef) {
222
222
  getList();
223
223
  }
224
224
 
225
- function onSearch(query, source, isReset = false) {
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
- // model.query = Object.assign(model.query, query);
236
- getList(query);
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 {*} values
252
+ * @param {Object} values
242
253
  * @returns
243
254
  */
244
- function onQueryFormSubmit(values) {
245
- formQueryRef.current = values;
246
- // 重置操作时不赋值
255
+ function onQueryFormSubmit(query, isReset) {
256
+ // 是否开启 url query
247
257
  if (appendUrlQuery) {
248
- setURLObjectQueryParam(values, appendUrlQueryKey);
249
- }
250
- return onSearch(values);
251
- }
252
-
253
- function onReset(values) {
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
- return onSearch(values);
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={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, "queryRender");
53
+ return props.onSearch && props.onSearch(query);
54
54
  }
55
55
 
56
56
  function onReset() {
57
57
  formRef.current?.formRender?.reset();
58
- props.onReset && props.onReset(_.cloneDeep(formRef?.current?.formRender?.values));
58
+ props.onSearch && props.onSearch(_.cloneDeep(formRef?.current?.formRender?.values), true);
59
59
  }
60
60
 
61
61
  return (