@tianyr/schema-antd 0.1.1 → 0.2.0

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.
Files changed (73) hide show
  1. package/README.md +17 -2
  2. package/dist/biz-select/BizMultiSelect.d.ts +3 -0
  3. package/dist/biz-select/BizMultiSelect.d.ts.map +1 -0
  4. package/dist/biz-select/BizMultiSelect.js +120 -0
  5. package/dist/biz-select/BizMultiSelect.js.map +1 -0
  6. package/dist/biz-select/BizMultiSelectDisplay.d.ts +3 -0
  7. package/dist/biz-select/BizMultiSelectDisplay.d.ts.map +1 -0
  8. package/dist/biz-select/BizMultiSelectDisplay.js +59 -0
  9. package/dist/biz-select/BizMultiSelectDisplay.js.map +1 -0
  10. package/dist/biz-select/BizSelect.d.ts.map +1 -1
  11. package/dist/biz-select/BizSelect.js +5 -5
  12. package/dist/biz-select/BizSelect.js.map +1 -1
  13. package/dist/biz-select/BizSelectDisplay.js +6 -6
  14. package/dist/biz-select/BizSelectDisplay.js.map +1 -1
  15. package/dist/biz-select/cache.d.ts +7 -0
  16. package/dist/biz-select/cache.d.ts.map +1 -1
  17. package/dist/biz-select/cache.js +11 -0
  18. package/dist/biz-select/cache.js.map +1 -1
  19. package/dist/biz-select/compile.d.ts +13 -2
  20. package/dist/biz-select/compile.d.ts.map +1 -1
  21. package/dist/biz-select/compile.js +24 -3
  22. package/dist/biz-select/compile.js.map +1 -1
  23. package/dist/biz-select/factories.d.ts +22 -13
  24. package/dist/biz-select/factories.d.ts.map +1 -1
  25. package/dist/biz-select/factories.js +57 -7
  26. package/dist/biz-select/factories.js.map +1 -1
  27. package/dist/biz-select/format.d.ts +29 -11
  28. package/dist/biz-select/format.d.ts.map +1 -1
  29. package/dist/biz-select/format.js +100 -35
  30. package/dist/biz-select/format.js.map +1 -1
  31. package/dist/biz-select/index.d.ts +7 -2
  32. package/dist/biz-select/index.d.ts.map +1 -1
  33. package/dist/biz-select/index.js +4 -0
  34. package/dist/biz-select/index.js.map +1 -1
  35. package/dist/biz-select/key.d.ts +12 -2
  36. package/dist/biz-select/key.d.ts.map +1 -1
  37. package/dist/biz-select/key.js +14 -0
  38. package/dist/biz-select/key.js.map +1 -1
  39. package/dist/biz-select/normalize.d.ts +3 -0
  40. package/dist/biz-select/normalize.d.ts.map +1 -1
  41. package/dist/biz-select/normalize.js +4 -1
  42. package/dist/biz-select/normalize.js.map +1 -1
  43. package/dist/biz-select/resolveBatch.d.ts +34 -0
  44. package/dist/biz-select/resolveBatch.d.ts.map +1 -0
  45. package/dist/biz-select/resolveBatch.js +124 -0
  46. package/dist/biz-select/resolveBatch.js.map +1 -0
  47. package/dist/biz-select/schema.d.ts +1 -1
  48. package/dist/biz-select/schema.d.ts.map +1 -1
  49. package/dist/biz-select/schema.js +8 -1
  50. package/dist/biz-select/schema.js.map +1 -1
  51. package/dist/biz-select/types.d.ts +74 -18
  52. package/dist/biz-select/types.d.ts.map +1 -1
  53. package/dist/biz-select/useResolvedLabels.d.ts +28 -0
  54. package/dist/biz-select/useResolvedLabels.d.ts.map +1 -0
  55. package/dist/biz-select/useResolvedLabels.js +151 -0
  56. package/dist/biz-select/useResolvedLabels.js.map +1 -0
  57. package/dist/biz-select/useSelectedLabel.d.ts +2 -2
  58. package/dist/biz-select/useSelectedLabel.d.ts.map +1 -1
  59. package/dist/biz-select/useSelectedLabel.js +14 -16
  60. package/dist/biz-select/useSelectedLabel.js.map +1 -1
  61. package/dist/biz-select/useSelectedLabels.d.ts +26 -0
  62. package/dist/biz-select/useSelectedLabels.d.ts.map +1 -0
  63. package/dist/biz-select/useSelectedLabels.js +88 -0
  64. package/dist/biz-select/useSelectedLabels.js.map +1 -0
  65. package/dist/flat.d.ts +43 -0
  66. package/dist/flat.d.ts.map +1 -0
  67. package/dist/flat.js +91 -0
  68. package/dist/flat.js.map +1 -0
  69. package/dist/index.d.ts +2 -0
  70. package/dist/index.d.ts.map +1 -1
  71. package/dist/index.js +2 -0
  72. package/dist/index.js.map +1 -1
  73. package/package.json +1 -1
@@ -0,0 +1,124 @@
1
+ /**
2
+ * 批量按值解析:把「一屏几十个编码各发一次」收成一次请求。
3
+ *
4
+ * 只在源声明了 `resolveMany` 时才批量;没声明就退回逐条,和以前完全一样。
5
+ * 所以这块是**加速**,不是新的解析体系:批量结果按编码拆开写进同一条
6
+ * `resolveCache`,之后任何单条 resolve 都直接命中。
7
+ *
8
+ * 为什么不放进组件:逐行 resolve 是表格列的需求,单个下拉只有一个值。
9
+ * 由页面显式调一次、把结果当 `seedOptions` 传下去,比在组件里攒时间窗更可预测
10
+ * ——批窗口对详情页是纯延迟,一次批量失败又会同时打掉整列的错误态。
11
+ */
12
+ import { dropResolvedCache, peekResolved, resolveCodeWithCache } from './cache.js';
13
+ import { isEmptyValue } from './format.js';
14
+ import { lookupKeyOf, paramsKeyOf, resolveCacheKey } from './key.js';
15
+ import { hasRequiredParams } from './normalize.js';
16
+ /** 每批最多多少个编码。接口有更小的上限时由调用方传 batchSize */
17
+ export const DEFAULT_BATCH_SIZE = 100;
18
+ /**
19
+ * 单条解析:源只声明了批量接口时,批量一条等价于单条,
20
+ * 不必逼调用方再写一个一模一样的 `resolve`。
21
+ */
22
+ export function resolveOne(source, value, params) {
23
+ if (source?.resolve)
24
+ return source.resolve(value, params);
25
+ if (!source?.resolveMany)
26
+ return Promise.resolve(null);
27
+ return source.resolveMany([value], params).then((list) => {
28
+ const hit = (list ?? []).find((item) => lookupKeyOf(item.value) === lookupKeyOf(value));
29
+ // 编码归一到调用方的类型:否则选项 value 与 Select 的 value 对不上,标签等于白解析
30
+ return hit ? { ...hit, value } : null;
31
+ });
32
+ }
33
+ /** 去掉空值、按 `lookupKeyOf` 去重,保持出现顺序 */
34
+ function uniqueCodes(codes) {
35
+ const seen = new Set();
36
+ const out = [];
37
+ for (const code of codes) {
38
+ if (isEmptyValue(code))
39
+ continue;
40
+ const key = lookupKeyOf(code);
41
+ if (seen.has(key))
42
+ continue;
43
+ seen.add(key);
44
+ out.push(code);
45
+ }
46
+ return out;
47
+ }
48
+ function chunkOf(list, size) {
49
+ const chunks = [];
50
+ for (let index = 0; index < list.length; index += size) {
51
+ chunks.push(list.slice(index, index + size));
52
+ }
53
+ return chunks;
54
+ }
55
+ function indexByCode(list) {
56
+ const map = new Map();
57
+ for (const option of list ?? []) {
58
+ if (!option || isEmptyValue(option.value))
59
+ continue;
60
+ map.set(lookupKeyOf(option.value), option);
61
+ }
62
+ return map;
63
+ }
64
+ export async function resolveCodes(options) {
65
+ const { source, sourceKey, batchSize = DEFAULT_BATCH_SIZE } = options;
66
+ const params = options.params ?? {};
67
+ const paramsKey = paramsKeyOf(options.params);
68
+ const scope = options.scope ?? source?.namespace?.() ?? '';
69
+ const byCode = new Map();
70
+ const missing = [];
71
+ const unique = uniqueCodes(options.codes);
72
+ if (!unique.length)
73
+ return { byCode, missing, blocked: false, requests: 0 };
74
+ // 缺参数时不查:用空条件查可能拿到别家数据,批量只会放大这个问题
75
+ if (!hasRequiredParams(source?.requiredParams, params)) {
76
+ return { byCode, missing: unique.map(lookupKeyOf), blocked: true, requests: 0 };
77
+ }
78
+ const collect = (code, option) => {
79
+ if (!option) {
80
+ missing.push(lookupKeyOf(code));
81
+ return;
82
+ }
83
+ // 接口可能把 1 回成 '1':值类型归到调用方给的那个,展示与回显才对得上
84
+ byCode.set(lookupKeyOf(code), option.value === code ? option : { ...option, value: code });
85
+ };
86
+ const waits = [];
87
+ const misses = [];
88
+ for (const code of unique) {
89
+ const key = resolveCacheKey(scope, sourceKey, code, paramsKey);
90
+ if (options.force)
91
+ dropResolvedCache(key);
92
+ const hit = peekResolved(key);
93
+ if (hit) {
94
+ // 已解析过的不占批量请求的位置
95
+ waits.push(hit.then((option) => collect(code, option)));
96
+ continue;
97
+ }
98
+ misses.push(code);
99
+ }
100
+ let requests = 0;
101
+ for (const codes of chunkOf(misses, Math.max(1, batchSize))) {
102
+ if (source?.resolveMany) {
103
+ requests += 1;
104
+ const index = source.resolveMany(codes, params).then(indexByCode);
105
+ for (const code of codes) {
106
+ const key = resolveCacheKey(scope, sourceKey, code, paramsKey);
107
+ // 逐条登记:同键的单条请求能和这批共享同一份 promise,批量不会绕开在途去重
108
+ const pending = resolveCodeWithCache(key, () => index.then((map) => map.get(lookupKeyOf(code)) ?? null));
109
+ waits.push(pending.then((option) => collect(code, option)));
110
+ }
111
+ continue;
112
+ }
113
+ // 没有批量接口就是逐条,和以前一样;调用方据 requests 判断该不该加接口
114
+ for (const code of codes) {
115
+ requests += 1;
116
+ const key = resolveCacheKey(scope, sourceKey, code, paramsKey);
117
+ waits.push(resolveCodeWithCache(key, () => resolveOne(source, code, params)).then((option) => collect(code, option)));
118
+ }
119
+ }
120
+ // 批量失败时这一片全部落空:不自动降级成逐条重试,否则一次故障会放大成 N 个请求
121
+ await Promise.all(waits);
122
+ return { byCode, missing, blocked: false, requests };
123
+ }
124
+ //# sourceMappingURL=resolveBatch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveBatch.js","sourceRoot":"","sources":["../../src/biz-select/resolveBatch.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { normalizeBizSelectSchema } from './compile.js';
2
2
  export { normalizeBizSelectSchema };
3
- export type { BizSelectSchemaProps } from './compile.js';
3
+ export type { BizSelectSchemaProps, ParamsFromEntry } from './compile.js';
4
4
  export declare function registerBizSelectField(): void;
5
5
  //# sourceMappingURL=schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/biz-select/schema.tsx"],"names":[],"mappings":"AASA,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAGrD,OAAO,EAAE,wBAAwB,EAAE,CAAC;AACpC,YAAY,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAEtD,wBAAgB,sBAAsB,IAAI,IAAI,CAgB7C"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/biz-select/schema.tsx"],"names":[],"mappings":"AAWA,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAGrD,OAAO,EAAE,wBAAwB,EAAE,CAAC;AACpC,YAAY,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAEvE,wBAAgB,sBAAsB,IAAI,IAAI,CA+B7C"}
@@ -3,9 +3,11 @@ import { jsx as _jsx } from "react/jsx-runtime";
3
3
  * BizSelect 的字段类型注册。
4
4
  *
5
5
  * 刻意不自动执行:包默认只提供标准 antd 控件,使用方需要时调一次
6
- * `registerBizSelectField()`。
6
+ * `registerBizSelectField()`。单选和多选一起注册,不然使用方要记住调两次。
7
7
  */
8
8
  import { registerField } from '../registry.js';
9
+ import { BizMultiSelect } from './BizMultiSelect.js';
10
+ import { BizMultiSelectDisplay } from './BizMultiSelectDisplay.js';
9
11
  import { BizSelect } from './BizSelect.js';
10
12
  import { BizSelectDisplay } from './BizSelectDisplay.js';
11
13
  import { normalizeBizSelectSchema } from './compile.js';
@@ -17,5 +19,10 @@ export function registerBizSelectField() {
17
19
  // 只读态复用同一套解析,不挂载交互组件
18
20
  renderRead: (value, props) => (_jsx(BizSelectDisplay, { value: value, ...props })),
19
21
  }, { override: true });
22
+ registerField('BizMultiSelect', {
23
+ component: BizMultiSelect,
24
+ normalize: normalizeBizSelectSchema,
25
+ renderRead: (value, props) => (_jsx(BizMultiSelectDisplay, { value: value, ...props })),
26
+ }, { override: true });
20
27
  }
21
28
  //# sourceMappingURL=schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/biz-select/schema.tsx"],"names":[],"mappings":";AAAA;;;;;GAKG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAGrD,OAAO,EAAE,wBAAwB,EAAE,CAAC;AAGpC,MAAM,UAAU,sBAAsB;IACpC,aAAa,CACX,WAAW,EACX;QACE,SAAS,EAAE,SAAS;QACpB,SAAS,EAAE,wBAAwB;QACnC,qBAAqB;QACrB,UAAU,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAC5B,KAAC,gBAAgB,IACf,KAAK,EAAE,KAAc,KAChB,KAA0C,GAC/C,CACH;KACF,EACD,EAAE,QAAQ,EAAE,IAAI,EAAE,CACnB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/biz-select/schema.tsx"],"names":[],"mappings":";AAAA;;;;;GAKG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAGrD,OAAO,EAAE,wBAAwB,EAAE,CAAC;AAGpC,MAAM,UAAU,sBAAsB;IACpC,aAAa,CACX,WAAW,EACX;QACE,SAAS,EAAE,SAAS;QACpB,SAAS,EAAE,wBAAwB;QACnC,qBAAqB;QACrB,UAAU,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAC5B,KAAC,gBAAgB,IACf,KAAK,EAAE,KAAc,KAChB,KAA0C,GAC/C,CACH;KACF,EACD,EAAE,QAAQ,EAAE,IAAI,EAAE,CACnB,CAAC;IAEF,aAAa,CACX,gBAAgB,EAChB;QACE,SAAS,EAAE,cAAc;QACzB,SAAS,EAAE,wBAAwB;QACnC,UAAU,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAC5B,KAAC,qBAAqB,IACpB,KAAK,EAAE,KAAc,KAChB,KAA+C,GACpD,CACH;KACF,EACD,EAAE,QAAQ,EAAE,IAAI,EAAE,CACnB,CAAC;AACJ,CAAC"}
@@ -1,38 +1,63 @@
1
1
  /**
2
2
  * BizSelect 的类型契约。
3
3
  *
4
- * 对外只有一个「数据源」概念:能给出候选、能按编码解析名称。
4
+ * 对外只有一个「数据源」概念:能给出候选、能按值解析名称。
5
5
  * 具体是前端常量、一次拉全量还是关键词翻页,由源**提供了哪些能力**决定,
6
6
  * 不再用 kind 之类的标签分类。
7
+ *
8
+ * 选项统一用 `value` / `label`:组件是渲染层,和 antd 同词汇,存量字典可以直接用。
9
+ * 后端记录叫 `code` / `name`、`userId` / `userName` 都不影响契约——
10
+ * 那是数据入口的方言,由源的 `recordFields` 映射一次,运行时只有一种形状。
7
11
  */
8
12
  import type { ReactNode } from 'react';
9
13
  import type { SelectProps } from 'antd';
10
- export type SelectCode = string | number;
11
- /** 契约层的标准选项;后端字段换名在 adapter 层做,不污染组件 */
14
+ export type SelectValue = string | number;
15
+ /**
16
+ * 契约层的标准选项。
17
+ *
18
+ * `label` 刻意限定为字符串:它要参与前端过滤匹配、要回写进对象值。
19
+ * 富文本标签不在范围内,需要时走 `renderRead` 或注册自定义字段类型。
20
+ */
12
21
  export interface BizOption<T = unknown> {
13
- code: SelectCode;
14
- name?: string;
22
+ value: SelectValue;
23
+ label?: string;
15
24
  disabled?: boolean;
16
25
  /** 原始接口记录,原样带回给业务回调 */
17
26
  raw?: T;
18
27
  }
19
- /** 展示模式:编码 / 编码-名称 / 名称 */
28
+ /** 展示模式:值 / 值-名称 / 名称 */
20
29
  export type DisplayMode = 'V' | 'V-L' | 'L';
21
30
  /** 前端过滤时匹配哪些字段 */
22
- export type SearchFields = 'code' | 'name' | 'both';
23
- /** 值形态:标量编码,或自带名称的对象 */
31
+ export type SearchFields = 'value' | 'label' | 'both';
32
+ /** 值形态:标量值,或自带名称的对象 */
24
33
  export type ValueMode = 'primitive' | 'object';
25
34
  /**
26
- * 对象值里哪个键装编码、哪个装名称。
27
- * 默认 `{ code: 'value', name: 'label' }`,兼容存量 `{ value, label }` 协议。
35
+ * 源返回的记录里,哪个字段是值、哪个字段是名称。
36
+ * 不给就按 `{ value, label }` 原样使用。
37
+ *
38
+ * 和 `ValueFieldMap` 是两条通道,只是形状相同:
39
+ * - 本类型在**源工厂**上声明,管「接口记录怎么读」(`tenantUserId` → `value`)
40
+ * - `ValueFieldMap` 在组件 / schema 上声明,管「值对象怎么存」(`userId` → 值)
41
+ */
42
+ export interface RecordFieldNames {
43
+ value?: string;
44
+ label?: string;
45
+ }
46
+ /**
47
+ * 对象值里哪个键装值、哪个键装名称。
48
+ * 默认 `{ value: 'value', label: 'label' }`;后端存 `{ code, name }` 时配成对应的键。
49
+ *
50
+ * 只管存储形状,不参与读接口记录,见 `RecordFieldNames`。
28
51
  */
29
52
  export interface ValueFieldMap {
30
- code?: string;
31
- name?: string;
53
+ value?: string;
54
+ label?: string;
32
55
  }
33
56
  export type SelectParams = Record<string, unknown>;
34
57
  /** 对象形态的值;具体键名由 valueFields 决定,所以只能约束到 Record */
35
58
  export type BizObjectValue = Record<string, unknown>;
59
+ /** 多选的值:标量数组或对象数组 */
60
+ export type SelectValues = SelectValue[] | BizObjectValue[];
36
61
  /**
37
62
  * 数据源契约。只有能力声明,不认识 URL、method、低代码控件配置。
38
63
  *
@@ -49,8 +74,16 @@ export interface SelectSource<P extends SelectParams = SelectParams> {
49
74
  load?: (params: P, signal?: AbortSignal) => Promise<BizOption[]>;
50
75
  /** 关键词搜索:分页接口固定取第一页 */
51
76
  search?: (keyword: string, params: P, signal?: AbortSignal) => Promise<BizOption[]>;
52
- /** 按编码精确查:远程回显,不能用模糊搜索冒充 */
53
- resolve?: (code: SelectCode, params: P, signal?: AbortSignal) => Promise<BizOption | null>;
77
+ /** 按值精确查:远程回显,不能用模糊搜索冒充 */
78
+ resolve?: (value: SelectValue, params: P, signal?: AbortSignal) => Promise<BizOption | null>;
79
+ /**
80
+ * 批量按值精确查:一屏几十个编码收成一次请求。
81
+ *
82
+ * 只有接口真的支持 IN 过滤时才声明——参数名对不上、或有返回条数上限都不算支持,
83
+ * 声明了却查不全,会把「接口没返回」当成「记录不存在」。
84
+ * 返回的记录和 `search` 用同一份 `recordFields`;形状不同就在函数里先归一化。
85
+ */
86
+ resolveMany?: (values: SelectValue[], params: P, signal?: AbortSignal) => Promise<BizOption[]>;
54
87
  /** 缺任一参数就不发请求:用空条件查可能拿到别家数据 */
55
88
  requiredParams?: string[];
56
89
  /** 租户/权限隔离,参与缓存键 */
@@ -73,7 +106,7 @@ interface CoreProps {
73
106
  displayMode?: DisplayMode;
74
107
  /** 前端过滤匹配的字段,缺省随 displayMode 推导 */
75
108
  searchFields?: SearchFields;
76
- /** 详情已带回的名称,省掉一次 resolve */
109
+ /** 详情已带回的候选,省掉一次 resolve */
77
110
  seedOptions?: BizOption[];
78
111
  /** 远程搜索防抖,默认 300ms */
79
112
  debounceMs?: number;
@@ -82,12 +115,13 @@ interface CoreProps {
82
115
  /** 门禁提示文案 */
83
116
  blockedText?: ReactNode;
84
117
  valueMode?: ValueMode;
118
+ /** 对象值里哪个键装值/名称,默认 `{ value, label }` */
85
119
  valueFields?: ValueFieldMap;
86
120
  }
87
121
  interface PrimitiveModeProps {
88
122
  valueMode?: 'primitive';
89
- value?: SelectCode | null;
90
- onChange?: (value: SelectCode | undefined, option?: BizOption) => void;
123
+ value?: SelectValue | null;
124
+ onChange?: (value: SelectValue | undefined, option?: BizOption) => void;
91
125
  }
92
126
  interface ObjectModeProps {
93
127
  valueMode: 'object';
@@ -96,9 +130,31 @@ interface ObjectModeProps {
96
130
  }
97
131
  export type BizSelectProps = CoreProps & BaseAntProps & (PrimitiveModeProps | ObjectModeProps);
98
132
  export interface BizSelectDisplayProps extends CoreProps {
99
- value?: SelectCode | BizObjectValue | null;
133
+ value?: SelectValue | BizObjectValue | null;
134
+ /** 只读占位 */
135
+ emptyText?: ReactNode;
136
+ }
137
+ interface MultiPrimitiveModeProps {
138
+ valueMode?: 'primitive';
139
+ value?: SelectValue[] | SelectValue | null;
140
+ /**
141
+ * 清空时给 `undefined` 而不是 `[]`:与 `ctx.clear()` 一致,
142
+ * 也让 antd 的 `required` 规则天然生效(它拿空数组没辙)。
143
+ */
144
+ onChange?: (value: SelectValue[] | undefined, options: BizOption[]) => void;
145
+ }
146
+ interface MultiObjectModeProps {
147
+ valueMode: 'object';
148
+ value?: BizObjectValue[] | BizObjectValue | null;
149
+ onChange?: (value: BizObjectValue[] | undefined, options: BizOption[]) => void;
150
+ }
151
+ export type BizMultiSelectProps = CoreProps & BaseAntProps & (MultiPrimitiveModeProps | MultiObjectModeProps);
152
+ export interface BizMultiSelectDisplayProps extends CoreProps {
153
+ value?: SelectValues | SelectValue | BizObjectValue | null;
100
154
  /** 只读占位 */
101
155
  emptyText?: ReactNode;
156
+ /** 多值分隔符,默认 `、`(与 read.tsx 保持一致) */
157
+ separator?: string;
102
158
  }
103
159
  export {};
104
160
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/biz-select/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/biz-select/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import type { BizOption, SelectParams, SelectSource, SelectValue } from './types.js';
2
+ export interface UseResolvedLabelsOptions {
3
+ /** 注册名或内联源;解析与来源键都在 Hook 内完成,调用方别自己拼 */
4
+ source?: string | SelectSource;
5
+ /** 这一屏出现的编码,重复的、空值的会被去掉 */
6
+ values?: ReadonlyArray<SelectValue | null | undefined>;
7
+ /** 传给源的查询条件,参与缓存键;缺 requiredParams 就不查 */
8
+ params?: SelectParams;
9
+ /** 内联源需要跨实例共享缓存时显式指定;注册名自带稳定键 */
10
+ cacheKey?: string;
11
+ /** 每批最多多少个编码,按接口上限配,默认 100 */
12
+ batchSize?: number;
13
+ }
14
+ export interface UseResolvedLabelsResult {
15
+ /** 编码 → 选项,键不带类型前缀,列表行里的原始值能直接查 */
16
+ byCode: Map<string, BizOption>;
17
+ /** 解析到的全部选项,可直接当 `seedOptions` 传给表格单元格 */
18
+ options: BizOption[];
19
+ loading: boolean;
20
+ error: boolean;
21
+ /** 缺 requiredParams,一个请求都没发 */
22
+ blocked: boolean;
23
+ /** 这次实际发起的请求数;没声明 `resolveMany` 时等于不同编码的个数 */
24
+ requests: number;
25
+ reload(): void;
26
+ }
27
+ export declare function useResolvedLabels({ source: sourceProp, values, params, cacheKey, batchSize, }: UseResolvedLabelsOptions): UseResolvedLabelsResult;
28
+ //# sourceMappingURL=useResolvedLabels.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useResolvedLabels.d.ts","sourceRoot":"","sources":["../../src/biz-select/useResolvedLabels.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAElF,MAAM,WAAW,wBAAwB;IACvC,wCAAwC;IACxC,MAAM,CAAC,EAAE,MAAM,GAAG,YAAY,CAAC;IAC/B,2BAA2B;IAC3B,MAAM,CAAC,EAAE,aAAa,CAAC,WAAW,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;IACvD,0CAA0C;IAC1C,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,iCAAiC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8BAA8B;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,uBAAuB;IACtC,mCAAmC;IACnC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAC/B,0CAA0C;IAC1C,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;IACf,+BAA+B;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,8CAA8C;IAC9C,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,IAAI,IAAI,CAAC;CAChB;AA8BD,wBAAgB,iBAAiB,CAAC,EAChC,MAAM,EAAE,UAAU,EAClB,MAAM,EACN,MAAM,EACN,QAAQ,EACR,SAA8B,GAC/B,EAAE,wBAAwB,GAAG,uBAAuB,CA6HpD"}
@@ -0,0 +1,151 @@
1
+ /**
2
+ * 一屏编码 → 名称:表格列这类「只有 id、没有名称」的批量回显。
3
+ *
4
+ * 和 `useCandidates` 对称:那边拿候选全集,这边只拿已解析的这几条。
5
+ * 页面调一次,结果既能直接当 `seedOptions` 传给单元格,也能按编码查表渲染文本。
6
+ *
7
+ * 依赖里同样只放字符串(sourceKey / paramsKey / codesKey),源从 ref 读——
8
+ * 否则父组件每渲染一次就会重发一轮批量请求。
9
+ */
10
+ import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
11
+ import { IS_DEV } from '../env.js';
12
+ import { lookupKeyOf, paramsKeyOf } from './key.js';
13
+ import { normalizeSource } from './normalize.js';
14
+ import { resolveSelectSource } from './registry.js';
15
+ import { DEFAULT_BATCH_SIZE, resolveCodes } from './resolveBatch.js';
16
+ import { useStableSourceKey } from './useStableSourceKey.js';
17
+ const EMPTY_MAP = new Map();
18
+ const EMPTY_OPTIONS = [];
19
+ /** 编码集合的稳定身份:排序后拼接,行顺序变了不算变化 */
20
+ function codesKeyOf(values) {
21
+ const keys = [];
22
+ const seen = new Set();
23
+ for (const value of values) {
24
+ if (value === undefined || value === null || value === '')
25
+ continue;
26
+ const key = lookupKeyOf(value);
27
+ if (seen.has(key))
28
+ continue;
29
+ seen.add(key);
30
+ keys.push(key);
31
+ }
32
+ return keys.sort().join('|');
33
+ }
34
+ export function useResolvedLabels({ source: sourceProp, values, params, cacheKey, batchSize = DEFAULT_BATCH_SIZE, }) {
35
+ const source = resolveSelectSource(sourceProp);
36
+ const sourceKey = useStableSourceKey(sourceProp, cacheKey);
37
+ const scope = source?.namespace?.() ?? '';
38
+ const paramsKey = paramsKeyOf(params);
39
+ const codesKey = codesKeyOf(values ?? []);
40
+ const sourceRef = useRef(source);
41
+ sourceRef.current = source;
42
+ const paramsRef = useRef(params);
43
+ paramsRef.current = params;
44
+ const valuesRef = useRef(values);
45
+ valuesRef.current = values;
46
+ const [state, setState] = useState(null);
47
+ const [loading, setLoading] = useState(false);
48
+ const [error, setError] = useState(false);
49
+ const [nonce, setNonce] = useState(0);
50
+ const warnedRef = useRef(new Set());
51
+ /** reload 是一次性的:用完就清,否则之后换页也会一直绕开缓存 */
52
+ const forceRef = useRef(false);
53
+ useEffect(() => {
54
+ if (!codesKey) {
55
+ setState(null);
56
+ setLoading(false);
57
+ setError(false);
58
+ return;
59
+ }
60
+ const current = sourceRef.current;
61
+ // 没有按值查询能力:不发请求,展示层会退回编码
62
+ if (!normalizeSource(current).canResolve) {
63
+ setState(null);
64
+ setLoading(false);
65
+ return;
66
+ }
67
+ let cancelled = false;
68
+ setLoading(true);
69
+ setError(false);
70
+ const force = forceRef.current;
71
+ forceRef.current = false;
72
+ resolveCodes({
73
+ source: current,
74
+ sourceKey,
75
+ scope,
76
+ params: paramsRef.current,
77
+ codes: valuesRef.current ?? [],
78
+ batchSize,
79
+ force,
80
+ })
81
+ .then((result) => {
82
+ if (cancelled)
83
+ return;
84
+ // 没声明批量接口时,这一屏就是 N 个请求——开发态提示一次,
85
+ // 用来收集「哪个页面真的需要后端批量接口」,而不是靠感觉判断
86
+ if (IS_DEV && !current?.resolveMany && result.requests > 1 && !warnedRef.current.has(sourceKey)) {
87
+ warnedRef.current.add(sourceKey);
88
+ console.warn(`[schema] 本次为 ${result.requests} 个不同编码各发了一次请求。` +
89
+ '源支持 IN 过滤时请声明 resolveMany;不支持的话,表格列应改用 load 型源一次拉全量');
90
+ }
91
+ setState({
92
+ sourceKey,
93
+ scope,
94
+ paramsKey,
95
+ codesKey,
96
+ byCode: result.byCode,
97
+ options: [...result.byCode.values()],
98
+ blocked: result.blocked,
99
+ requests: result.requests,
100
+ });
101
+ })
102
+ .catch(() => {
103
+ if (cancelled)
104
+ return;
105
+ // 批量失败就是整片失败:不自动降级成逐条重试,否则一次故障放大成 N 个请求
106
+ setState(null);
107
+ setError(true);
108
+ })
109
+ .finally(() => {
110
+ if (!cancelled)
111
+ setLoading(false);
112
+ });
113
+ return () => {
114
+ cancelled = true;
115
+ };
116
+ // sourceKey / scope / paramsKey / codesKey 都是字符串,源与参数从 ref 读
117
+ // eslint-disable-next-line react-hooks/exhaustive-deps
118
+ }, [sourceKey, scope, paramsKey, codesKey, batchSize, nonce]);
119
+ const reload = useCallback(() => {
120
+ forceRef.current = true;
121
+ setNonce((value) => value + 1);
122
+ }, []);
123
+ return useMemo(() => {
124
+ const matched = state &&
125
+ state.sourceKey === sourceKey &&
126
+ state.scope === scope &&
127
+ state.paramsKey === paramsKey &&
128
+ state.codesKey === codesKey;
129
+ if (!matched || !state) {
130
+ return {
131
+ byCode: EMPTY_MAP,
132
+ options: EMPTY_OPTIONS,
133
+ loading,
134
+ error,
135
+ blocked: false,
136
+ requests: 0,
137
+ reload,
138
+ };
139
+ }
140
+ return {
141
+ byCode: state.byCode,
142
+ options: state.options,
143
+ loading,
144
+ error,
145
+ blocked: state.blocked,
146
+ requests: state.requests,
147
+ reload,
148
+ };
149
+ }, [state, sourceKey, scope, paramsKey, codesKey, loading, error, reload]);
150
+ }
151
+ //# sourceMappingURL=useResolvedLabels.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useResolvedLabels.js","sourceRoot":"","sources":["../../src/biz-select/useResolvedLabels.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
- import type { BizOption, SelectCode, SelectParams, SelectSource } from './types.js';
1
+ import type { BizOption, SelectParams, SelectSource, SelectValue } from './types.js';
2
2
  export type SelectedStatus = 'empty' | 'loading' | 'resolved' | 'missing' | 'blocked' | 'error';
3
3
  export interface UseSelectedLabelOptions {
4
4
  source?: SelectSource;
5
5
  sourceKey: string;
6
- code?: SelectCode;
6
+ code?: SelectValue;
7
7
  /** 对象值里自带的名称 */
8
8
  valueName?: string;
9
9
  seedOptions?: BizOption[];
@@ -1 +1 @@
1
- {"version":3,"file":"useSelectedLabel.d.ts","sourceRoot":"","sources":["../../src/biz-select/useSelectedLabel.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEjF,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;AAEhG,MAAM,WAAW,uBAAuB;IACtC,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,gBAAgB;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,SAAS,EAAE,CAAC;IAC1B,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC;IACzB,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,SAAS,GAAG,IAAI,CAAC;IACzB,MAAM,EAAE,cAAc,CAAC;CACxB;AAyBD,wBAAgB,gBAAgB,CAAC,EAC/B,MAAM,EACN,SAAS,EACT,IAAI,EACJ,SAAS,EACT,WAAW,EACX,UAAU,EACV,MAAM,GACP,EAAE,uBAAuB,GAAG,sBAAsB,CAgJlD"}
1
+ {"version":3,"file":"useSelectedLabel.d.ts","sourceRoot":"","sources":["../../src/biz-select/useSelectedLabel.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAElF,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;AAEhG,MAAM,WAAW,uBAAuB;IACtC,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,gBAAgB;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,SAAS,EAAE,CAAC;IAC1B,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC;IACzB,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,SAAS,GAAG,IAAI,CAAC;IACzB,MAAM,EAAE,cAAc,CAAC;CACxB;AAqBD,wBAAgB,gBAAgB,CAAC,EAC/B,MAAM,EACN,SAAS,EACT,IAAI,EACJ,SAAS,EACT,WAAW,EACX,UAAU,EACV,MAAM,GACP,EAAE,uBAAuB,GAAG,sBAAsB,CAkJlD"}