@pnt-team/pnt-component-frontend 0.0.137 → 0.0.138

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 (68) hide show
  1. package/lib/cjs/components/PntRegionSelect/index.scss +2 -2
  2. package/package.json +1 -1
  3. package/lib/cjs/api/cos.d.ts +0 -103
  4. package/lib/cjs/api/cos.js +0 -146
  5. package/lib/cjs/api/index.d.ts +0 -23
  6. package/lib/cjs/api/index.js +0 -38
  7. package/lib/cjs/api/types/index.d.ts +0 -117
  8. package/lib/cjs/api/types/index.js +0 -17
  9. package/lib/cjs/assets/css/tdesign-theme.css +0 -584
  10. package/lib/cjs/assets/images/uploadImg.png +0 -0
  11. package/lib/cjs/assets/svg/inputSearch.svg +0 -4
  12. package/lib/cjs/assets/svg/inputTip.svg +0 -5
  13. package/lib/esm/api/cos.d.ts +0 -103
  14. package/lib/esm/api/cos.js +0 -189
  15. package/lib/esm/api/index.d.ts +0 -23
  16. package/lib/esm/api/index.js +0 -23
  17. package/lib/esm/api/types/index.d.ts +0 -117
  18. package/lib/esm/api/types/index.js +0 -1
  19. package/lib/esm/assets/css/tdesign-theme.css +0 -584
  20. package/lib/esm/assets/images/uploadImg.png +0 -0
  21. package/lib/esm/assets/svg/inputSearch.svg +0 -4
  22. package/lib/esm/assets/svg/inputTip.svg +0 -5
  23. package/lib/esm/assets/svg/inputWarnTip.svg +0 -5
  24. package/lib/esm/components/PntBusinessSelect/index.d.ts +0 -192
  25. package/lib/esm/components/PntBusinessSelect/index.js +0 -513
  26. package/lib/esm/components/PntBusinessSelect/index.scss +0 -27
  27. package/lib/esm/components/PntCosUploader/index.d.ts +0 -134
  28. package/lib/esm/components/PntCosUploader/index.js +0 -300
  29. package/lib/esm/components/PntGeneralLayout/index.d.ts +0 -114
  30. package/lib/esm/components/PntGeneralLayout/index.js +0 -103
  31. package/lib/esm/components/PntGeneralLayout/index.scss +0 -121
  32. package/lib/esm/components/PntImage/index.d.ts +0 -93
  33. package/lib/esm/components/PntImage/index.js +0 -200
  34. package/lib/esm/components/PntImage/index.scss +0 -61
  35. package/lib/esm/components/PntRegionSelect/ImportDialog.d.ts +0 -29
  36. package/lib/esm/components/PntRegionSelect/ImportDialog.js +0 -244
  37. package/lib/esm/components/PntRegionSelect/index.d.ts +0 -39
  38. package/lib/esm/components/PntRegionSelect/index.js +0 -471
  39. package/lib/esm/components/PntRegionSelect/index.scss +0 -174
  40. package/lib/esm/components/PntRegionSelect/types.d.ts +0 -181
  41. package/lib/esm/components/PntRegionSelect/types.js +0 -77
  42. package/lib/esm/components/PntSecureBox/index.d.ts +0 -122
  43. package/lib/esm/components/PntSecureBox/index.js +0 -166
  44. package/lib/esm/components/PntSecureBox/index.scss +0 -23
  45. package/lib/esm/components/PntTable/index.d.ts +0 -14
  46. package/lib/esm/components/PntTable/index.js +0 -404
  47. package/lib/esm/components/PntTable/index.scss +0 -290
  48. package/lib/esm/components/PntTable/types.d.ts +0 -250
  49. package/lib/esm/components/PntTable/types.js +0 -81
  50. package/lib/esm/components/PntTable/useTableCore.d.ts +0 -38
  51. package/lib/esm/components/PntTable/useTableCore.js +0 -499
  52. package/lib/esm/components/PntUpload/index.d.ts +0 -149
  53. package/lib/esm/components/PntUpload/index.js +0 -276
  54. package/lib/esm/components/PntUpload/index.scss +0 -101
  55. package/lib/esm/config.d.ts +0 -97
  56. package/lib/esm/config.js +0 -60
  57. package/lib/esm/global.css +0 -2
  58. package/lib/esm/global.d.ts +0 -39
  59. package/lib/esm/hooks/useHighSecurity.d.ts +0 -88
  60. package/lib/esm/hooks/useHighSecurity.js +0 -250
  61. package/lib/esm/index.d.ts +0 -16
  62. package/lib/esm/index.js +0 -33
  63. package/lib/esm/utils/const.d.ts +0 -13
  64. package/lib/esm/utils/const.js +0 -23
  65. package/lib/esm/utils/index.d.ts +0 -6
  66. package/lib/esm/utils/index.js +0 -22
  67. package/lib/umd/pnt-component-frontend.min.css +0 -1
  68. package/lib/umd/pnt-component-frontend.min.js +0 -1
@@ -1,250 +0,0 @@
1
- /**
2
- * PntTable 类型定义
3
- *
4
- * 统一表格组件的类型契约。设计目标:
5
- * 1. 对齐产品规范 12 章 47 条规则(管理端组件规范)
6
- * 2. 兼容 tdesign-react 1.3.0–1.18.2 跨版本
7
- * 3. 零业务侵入:业务项目通过 fetcher 注入数据源,不依赖组件库内部 API
8
- */
9
- import type { CSSProperties, ReactNode } from 'react';
10
- /** 主题 */
11
- export type PntTableTheme = 'business' | 'internal';
12
- /** 语言(组件内置文案语言) */
13
- export type PntTableLocale = 'zh' | 'en';
14
- /** 组件内部展示文案(多语言场景可整体传 locale,也可逐字段覆盖) */
15
- export interface PntTableTexts {
16
- /** 加载中 */
17
- loading?: string;
18
- /** 加载失败 */
19
- loadFailed?: string;
20
- /** 空态:暂无数据 */
21
- empty?: string;
22
- /** 空态:有条件时的提示 */
23
- emptyWithFilter?: string;
24
- /** 无权限查看 */
25
- noPermission?: string;
26
- }
27
- /** 中文默认文案 */
28
- export declare const PNT_TABLE_DEFAULT_TEXTS: Required<PntTableTexts>;
29
- /** 英文文案(locale='en' 时使用) */
30
- export declare const PNT_TABLE_EN_TEXTS: Required<PntTableTexts>;
31
- /** 根据 locale 获取默认文案 */
32
- export declare const getPntTableTextsByLocale: (locale: PntTableLocale) => Required<PntTableTexts>;
33
- /** 数据模式 */
34
- export type PntTableDataMode = 'server' | 'client';
35
- /** 表格状态 */
36
- export type PntTableStatus = 'normal' | 'empty' | 'empty-with-filter' | 'loading' | 'refreshing' | 'error' | 'no-permission';
37
- /** 排序方向 */
38
- export type PntSortDirection = 'asc' | 'desc';
39
- /** 排序字段(单列,TBL-04.02 禁止多列排序) */
40
- export interface PntSortInfo {
41
- field: string;
42
- direction: PntSortDirection;
43
- }
44
- /** 筛选值 */
45
- export type PntFilterValue = string | number | (string | number)[];
46
- /** 表头筛选选项 */
47
- export interface PntFilterOption {
48
- label: string;
49
- /** 选项值;checkAll 项可不传(tdesign 会自动处理为空值) */
50
- value?: string | number;
51
- /** 标记为「全部」选项(选中后清空筛选值,对应 tdesign filter.list 的 checkAll:true) */
52
- checkAll?: boolean;
53
- }
54
- /** 表头筛选配置 */
55
- export interface PntTableFilterConfig {
56
- /** 筛选模式:单选 Radio / 多选 Checkbox;传 'custom' 时走自定义 component */
57
- mode: 'single' | 'multiple' | 'custom';
58
- /** 静态选项(single/multiple 模式必填),支持 checkAll 项 */
59
- options?: PntFilterOption[];
60
- /** 异步加载选项(选项 > 8 项时建议用) */
61
- fetcher?: () => Promise<PntFilterOption[]>;
62
- /** 是否支持关键词搜索(选项 > 8 项时自动开启) */
63
- searchable?: boolean;
64
- /** 自定义筛选组件(mode='custom' 时必填),会透传给 tdesign filter.component */
65
- component?: (props: any) => ReactNode;
66
- /** 透传给 tdesign Table.filter 的额外属性(showConfirmAndReset / popupProps / resetValue / classNames 等) */
67
- extra?: Record<string, any>;
68
- }
69
- /** 受控多选配置 */
70
- export interface PntTableSelectConfig {
71
- /** 受控初始选中(client 模式常用) */
72
- selectedRowKeys?: (string | number)[];
73
- /** 判断某行是否禁用勾选(禁用行不参与全选) */
74
- disabledRowKeysFn?: (row: any) => boolean;
75
- /** 仅当前页(默认 true;翻页自动清空勾选) */
76
- currentPageOnly?: boolean;
77
- }
78
- export interface PntTableColumn {
79
- /** 字段 key(必填) */
80
- key: string;
81
- /** 列标题(必填) */
82
- title: ReactNode;
83
- /** 列宽(必填,TBL-02.06 建议档位) */
84
- width: number;
85
- /** 固定 */
86
- fixed?: 'left' | 'right';
87
- /** 数据类型:影响对齐和比较口径 */
88
- type?: 'text' | 'number' | 'money' | 'percent' | 'date' | 'datetime' | 'enum';
89
- /** 对齐(默认按 type 推断) */
90
- align?: 'left' | 'right' | 'center';
91
- /** 单行截断(默认 true);2 = 最多 2 行 */
92
- ellipsis?: boolean | 2;
93
- /** 表头说明文案(TBL-03.04,点击打开 tooltip) */
94
- help?: string;
95
- /** 可排序 */
96
- sort?: boolean;
97
- /** 表头筛选 */
98
- headerFilter?: PntTableFilterConfig;
99
- /** 外置筛选(同字段需排序又需筛选时用,独立查询区) */
100
- externalFilter?: boolean;
101
- /** 列宽允许拖拽调整(扩展变体,二期实现) */
102
- resizable?: boolean;
103
- /** 列可隐藏(列设置功能) */
104
- hidable?: boolean;
105
- /** 是否系统必需列(列设置中不可隐藏) */
106
- required?: boolean;
107
- /** 自定义单元格渲染 */
108
- cell?: (row: any, index: number) => ReactNode;
109
- /** 列级权限策略 */
110
- permission?: {
111
- required?: string;
112
- fallback?: 'hide' | 'disabled';
113
- };
114
- }
115
- export interface PntTableQuery {
116
- /** 外置查询条件(独立查询区草稿模式) */
117
- query: Record<string, unknown>;
118
- /** 表头筛选已生效条件 */
119
- filters: Record<string, unknown>;
120
- /** 排序:单列 { field, direction } 或 null */
121
- sort: PntSortInfo | null;
122
- /** 当前页(从 1 开始) */
123
- page: number;
124
- /** 每页条数 */
125
- pageSize: number;
126
- /** 业务 ID(必传) */
127
- businessId?: string | number;
128
- /** 环境(必传) */
129
- env?: number;
130
- /** 时区(必传) */
131
- timezone?: string;
132
- }
133
- export interface PntTableResponse {
134
- /** 数据行 */
135
- rows: any[];
136
- /** 筛选后的总记录数 */
137
- total: number;
138
- /** 错误码(0 或未传 = 成功) */
139
- code?: number;
140
- /** 错误信息 */
141
- msg?: string;
142
- /** 无权限时标记 */
143
- noPermission?: boolean;
144
- }
145
- export type PntTableFetcher = (query: PntTableQuery) => Promise<PntTableResponse>;
146
- export type PntTableQueryTrigger = 'sort' | 'filter' | 'pagination' | 'page-size' | 'external-query' | 'reset' | 'initial';
147
- export interface PntTableQueryMeta {
148
- tableId: string;
149
- trigger: PntTableQueryTrigger;
150
- /** 请求序号,用于请求顺序控制 */
151
- requestId: number;
152
- }
153
- export interface PntTableSelectionMeta {
154
- tableId: string;
155
- /** 当前页所有 rowKey */
156
- pageKeys: string[];
157
- /** 当前页禁用行 rowKey */
158
- disabledKeys: string[];
159
- trigger: 'select' | 'select-all' | 'page-change' | 'reset' | 'refresh';
160
- }
161
- /** 业务代码通过 ref 获取的 PntTable 句柄 */
162
- export interface PntTableRef {
163
- /** 强制刷新(服务端重拉、客户端重新应用排序/筛选) */
164
- refresh: () => void;
165
- /** 清空所有表头筛选 + 重置排序 + page=1 */
166
- reset: () => void;
167
- /** 获取当前表格查询快照(调试/埋点用) */
168
- getQuerySnapshot: () => {
169
- sort: PntSortInfo | null;
170
- filters: Record<string, unknown>;
171
- page: number;
172
- pageSize: number;
173
- total: number;
174
- };
175
- }
176
- export interface PntTableProps {
177
- /** 表格唯一 ID(契约要求) */
178
- tableId: string;
179
- /** 主题:业务侧蓝 / 内部平台紫 */
180
- theme: PntTableTheme;
181
- /** 业务唯一字段,用作 rowKey(禁止用行号) */
182
- rowKey: string;
183
- /** 列定义 */
184
- columns: PntTableColumn[];
185
- /** 数据模式:server(后端分页)/ client(前端全量) */
186
- dataMode: PntTableDataMode;
187
- /** 数据源:server 模式传 fetcher */
188
- fetcher?: PntTableFetcher;
189
- /** client 模式直接传 data */
190
- data?: any[];
191
- /** client 模式下的总数(可选,不传则用 data.length) */
192
- total?: number;
193
- /** 固定操作栏:操作列固定最右(默认 false,显式列需加 fixed: 'right') */
194
- fixedAction?: boolean;
195
- /** 固定左侧识别列(默认 false) */
196
- fixedLeft?: boolean;
197
- /** 排序(默认 true;也可按列单独 col.sort: false 禁用) */
198
- sortable?: boolean;
199
- /** 表头筛选(默认 true;也可按列单独 col.headerFilter 配置) */
200
- filterable?: boolean;
201
- /** 多选行(默认 false;传对象可配置禁用行/受控初始选中) */
202
- selectable?: boolean | PntTableSelectConfig;
203
- /** 多选仅当前页(默认 true;翻页自动清空勾选,TBL-06.03)—— selectable 为对象时以 PntTableSelectConfig.currentPageOnly 为准 */
204
- currentPageOnly?: boolean;
205
- /** 分页(默认 true) */
206
- pageable?: boolean;
207
- /** 初始页码(默认 1,用于恢复路由/会话态) */
208
- initialPage?: number;
209
- /** 默认每页条数(默认 10) */
210
- pageSize?: number;
211
- /** 可选每页条数档位(默认 [10, 20, 50]) */
212
- pageSizeOptions?: number[];
213
- /** 组件内置文案语言(默认 'zh') */
214
- locale?: PntTableLocale;
215
- /** 逐字段覆盖内置文案(优先级高于 locale) */
216
- texts?: PntTableTexts;
217
- /** 自定义空态内容(优先级最高) */
218
- empty?: ReactNode;
219
- /** 空态文案(优先级高于 texts.empty / locale 默认) */
220
- emptyText?: string;
221
- /** 有条件空态提示(优先级高于 texts.emptyWithFilter / locale 默认) */
222
- emptyWithFilterHint?: string;
223
- /** 是否显示边框(默认 false) */
224
- bordered?: boolean;
225
- /** 表格尺寸 */
226
- size?: 'small' | 'medium' | 'large';
227
- /** 表体最大高度(超则内部滚动,表头吸顶) */
228
- bodyMaxHeight?: number;
229
- /** 受控加载态(组件内部自动管理首次加载/刷新/骨架) */
230
- loading?: boolean;
231
- /** 受控错误态 */
232
- error?: string | null;
233
- /** 业务 ID(fetcher 自动透传) */
234
- businessId?: string | number;
235
- /** 环境 */
236
- env?: number;
237
- /** 时区 */
238
- timezone?: string;
239
- onQueryChange?: (query: PntTableQuery, meta: PntTableQueryMeta) => void;
240
- onSelectionChange?: (selection: any[], meta: PntTableSelectionMeta) => void;
241
- onRowAction?: (action: string, row: any, meta: {
242
- tableId: string;
243
- rowKey: string;
244
- }) => void;
245
- attach?: HTMLElement;
246
- className?: string;
247
- style?: CSSProperties;
248
- /** 行样式类名(透传 TDesign rowClassName) */
249
- rowClassName?: (row: any, index: number) => string;
250
- }
@@ -1,81 +0,0 @@
1
- /**
2
- * PntTable 类型定义
3
- *
4
- * 统一表格组件的类型契约。设计目标:
5
- * 1. 对齐产品规范 12 章 47 条规则(管理端组件规范)
6
- * 2. 兼容 tdesign-react 1.3.0–1.18.2 跨版本
7
- * 3. 零业务侵入:业务项目通过 fetcher 注入数据源,不依赖组件库内部 API
8
- */
9
-
10
- // ============================================================
11
- // 核心枚举
12
- // ============================================================
13
-
14
- /** 主题 */
15
-
16
- /** 语言(组件内置文案语言) */
17
-
18
- // ============================================================
19
- // 多语言文案
20
- // ============================================================
21
-
22
- /** 组件内部展示文案(多语言场景可整体传 locale,也可逐字段覆盖) */
23
-
24
- /** 中文默认文案 */
25
- export const PNT_TABLE_DEFAULT_TEXTS = {
26
- loading: '加载中…',
27
- loadFailed: '加载失败',
28
- empty: '暂无数据',
29
- emptyWithFilter: '调整条件或重置查询',
30
- noPermission: '无权限查看'
31
- };
32
-
33
- /** 英文文案(locale='en' 时使用) */
34
- export const PNT_TABLE_EN_TEXTS = {
35
- loading: 'Loading...',
36
- loadFailed: 'Failed to load',
37
- empty: 'No data',
38
- emptyWithFilter: 'Adjust filters or reset query',
39
- noPermission: 'No permission to view'
40
- };
41
-
42
- /** 根据 locale 获取默认文案 */
43
- export const getPntTableTextsByLocale = locale => locale === 'en' ? PNT_TABLE_EN_TEXTS : PNT_TABLE_DEFAULT_TEXTS;
44
-
45
- /** 数据模式 */
46
-
47
- /** 表格状态 */
48
-
49
- /** 排序方向 */
50
-
51
- /** 排序字段(单列,TBL-04.02 禁止多列排序) */
52
-
53
- /** 筛选值 */
54
-
55
- /** 表头筛选选项 */
56
-
57
- /** 表头筛选配置 */
58
-
59
- /** 受控多选配置 */
60
-
61
- // ============================================================
62
- // 列定义
63
- // ============================================================
64
-
65
- // ============================================================
66
- // Fetcher 契约
67
- // ============================================================
68
-
69
- // ============================================================
70
- // 事件契约
71
- // ============================================================
72
-
73
- // ============================================================
74
- // Imperative Handle(业务侧手动控制 PntTable)
75
- // ============================================================
76
-
77
- /** 业务代码通过 ref 获取的 PntTable 句柄 */
78
-
79
- // ============================================================
80
- // Props
81
- // ============================================================
@@ -1,38 +0,0 @@
1
- /**
2
- * useTableCore — PntTable 核心逻辑
3
- *
4
- * 负责:请求顺序控制、排序三态、筛选草稿/生效分离、多选三态、分页越界校验、7 种状态管理。
5
- * 纯 React Hook,不依赖 TDesign DOM,方便单测和版本降级。
6
- */
7
- import type { PntSortDirection, PntSortInfo, PntTableColumn, PntTableProps, PntTableStatus } from './types';
8
- export declare function cycleSort(currentField: string | null, currentDir: PntSortDirection | undefined, targetField: string): {
9
- field: string;
10
- direction: PntSortDirection;
11
- } | null;
12
- export declare function clampPage(page: number, total: number, pageSize: number): number;
13
- export declare function validateJumpPage(page: number, total: number, pageSize: number): string | null;
14
- export declare function validateColumnConflicts(columns: PntTableColumn[]): string[];
15
- export interface UseTableCoreResult {
16
- data: any[];
17
- total: number;
18
- status: PntTableStatus;
19
- error: string | null;
20
- sort: PntSortInfo | null;
21
- appliedFilters: Record<string, any>;
22
- page: number;
23
- pageSize: number;
24
- selection: string[];
25
- requestId: number;
26
- toggleSort: (field: string) => void;
27
- applyFilters: (filters: Record<string, any>) => void;
28
- resetFilters: () => void;
29
- setPage: (page: number) => void;
30
- setPageSize: (size: number) => void;
31
- toggleRow: (rowKey: string, selected: boolean) => void;
32
- selectAllOnPage: (rowKeys: string[], disabledKeys: string[]) => void;
33
- clearSelection: () => void;
34
- refresh: () => void;
35
- isAllSelectedOnPage: (rowKeys: string[], disabledKeys: string[]) => boolean;
36
- isIndeterminateOnPage: (rowKeys: string[], disabledKeys: string[]) => boolean;
37
- }
38
- export declare function useTableCore(props: Pick<PntTableProps, 'tableId' | 'rowKey' | 'columns' | 'dataMode' | 'fetcher' | 'data' | 'initialPage' | 'pageSize' | 'pageSizeOptions' | 'businessId' | 'env' | 'timezone' | 'onQueryChange' | 'onSelectionChange' | 'selectable' | 'currentPageOnly' | 'total'>): UseTableCoreResult;