fantasy-ngzorro 2.1.62 → 2.1.64

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 (50) hide show
  1. package/README.md +80 -8
  2. package/bundles/fantasy-ngzorro.umd.js +1204 -199
  3. package/bundles/fantasy-ngzorro.umd.js.map +1 -1
  4. package/bundles/fantasy-ngzorro.umd.min.js +2 -2
  5. package/bundles/fantasy-ngzorro.umd.min.js.map +1 -1
  6. package/esm2015/fantasy-ngzorro.js +8 -8
  7. package/esm2015/hd-detail-form/hd-detail-form.component.js +18 -3
  8. package/esm2015/hd-detail-lines/hd-detail-lines.component.js +31 -4
  9. package/esm2015/hd-detail-lines-page/hd-detail-lines-page.component.js +20 -10
  10. package/esm2015/hd-form-lines/hd-form-lines.component.js +407 -10
  11. package/esm2015/hd-form-lines/hd-form-lines.module.js +4 -2
  12. package/esm2015/hd-form-lines/hd-form-lines.service.js +23 -1
  13. package/esm2015/hd-table/hd-table.component.js +235 -10
  14. package/esm2015/hd-table/hd-table.service.js +25 -3
  15. package/esm2015/hd-tip/hd-tip.component.js +69 -9
  16. package/esm2015/index.js +2 -2
  17. package/esm2015/model/colWidth.js +58 -19
  18. package/esm2015/model/common-type.js +11 -1
  19. package/esm2015/public-api.js +2 -2
  20. package/esm5/fantasy-ngzorro.js +8 -8
  21. package/esm5/hd-detail-form/hd-detail-form.component.js +25 -3
  22. package/esm5/hd-detail-lines/hd-detail-lines.component.js +41 -4
  23. package/esm5/hd-detail-lines-page/hd-detail-lines-page.component.js +31 -11
  24. package/esm5/hd-form-lines/hd-form-lines.component.js +465 -10
  25. package/esm5/hd-form-lines/hd-form-lines.module.js +4 -2
  26. package/esm5/hd-form-lines/hd-form-lines.service.js +31 -1
  27. package/esm5/hd-table/hd-table.component.js +309 -10
  28. package/esm5/hd-table/hd-table.service.js +25 -3
  29. package/esm5/hd-tip/hd-tip.component.js +86 -9
  30. package/esm5/index.js +2 -2
  31. package/esm5/model/colWidth.js +58 -19
  32. package/esm5/model/common-type.js +11 -1
  33. package/esm5/public-api.js +2 -2
  34. package/fantasy-ngzorro.d.ts +6 -6
  35. package/fantasy-ngzorro.metadata.json +1 -1
  36. package/fesm2015/fantasy-ngzorro.js +1044 -220
  37. package/fesm2015/fantasy-ngzorro.js.map +1 -1
  38. package/fesm5/fantasy-ngzorro.js +1193 -189
  39. package/fesm5/fantasy-ngzorro.js.map +1 -1
  40. package/hd-detail-form/hd-detail-form.component.d.ts +2 -0
  41. package/hd-detail-lines/hd-detail-lines.component.d.ts +5 -0
  42. package/hd-detail-lines-page/hd-detail-lines-page.component.d.ts +6 -1
  43. package/hd-form-lines/hd-form-lines.component.d.ts +42 -2
  44. package/hd-form-lines/hd-form-lines.service.d.ts +6 -0
  45. package/hd-table/hd-table.component.d.ts +36 -0
  46. package/hd-table/hd-table.service.d.ts +19 -1
  47. package/hd-tip/hd-tip.component.d.ts +14 -4
  48. package/model/colWidth.d.ts +38 -15
  49. package/model/common-type.d.ts +6 -0
  50. package/package.json +2 -2
package/README.md CHANGED
@@ -37,6 +37,14 @@
37
37
  | — | 2026-5-20 | 补充 hd-table、hd-detail-lines-page 等组件;完善公共子类型(SelectOption、FormItem 等)文档 |
38
38
  | — | 2026-9-18 | `hd-form-lines` 选中回显(nzHide)认 `showLabelAndValue`,与下拉 `[value]label` 一致(对齐 `hd-form`) |
39
39
  | — | 2026-9-18 | `hd-detail-lines-page` 对齐 `hd-table` 支持虚拟滚动(`virtualScroll` / `virtualItemSize`);千行勾选时减少 DOM 卡顿 |
40
+ | — | 2026-9-21 | hd-table 列支持 `rowNo`:字段值后竖线展示行号,前面字段仍可超链接 |
41
+ | — | 2026-9-22 | `hd-form-lines` 支持列设置(`showColSettings` 默认开):仅非 hide 的 ViewDom 可显隐,禁止调序;可选 `uuid` 缓存 |
42
+ | — | 2026-9-22 | `hd-tip` 支持右侧展开/收起(`showCollapse` / `[(expanded)]`),暴露 `expand` / `collapse` / `toggle` 供父组件控制其它区块 |
43
+ | — | 2026-9-22 | `hd-form-lines` 勾选提示改为 `tableTotal` 插槽(同 hd-table),组件内不再默认渲染已选中块 |
44
+ | — | 2026-9-22 | `hd-table` / `hd-detail-form` 字段值后支持编辑笔图标(`editable` + `edit` 回调,图标对齐 Figma) |
45
+ | — | 2026-9-24 | `hd-detail-lines` / `hd-detail-lines-page`:自动或仅传 `scroll.x` 时补 `scroll.y`,修复窄屏下无法纵向滚动 |
46
+ | — | 2026-9-22 | `hd-table` 支持 `pagination` / `frontPagination`:全量 `content` 可「不分页展示」或「前端切片分页」,列表默认仍为服务端分页 |
47
+ | — | 2026-9-21 | hd-table 列 `color` 支持函数,按行给某一个字段标红 |
40
48
  | — | 2026-9-20 | hd-detail-form 附件图片:最多展示 4 张,超出末张蒙版 `+n`;弹窗预览支持左右翻页 |
41
49
  | — | 2026-9-20 | hd-detail-form 附件图片点击弹窗预览大图(不再 `window.open`) |
42
50
  | — | 2026-9-20 | hd-detail-form 支持附件图片字段(`HdDetailFormFieldType.Accessory`,Figma 48×48 缩略图横排,不复用 hd-accessory-list) |
@@ -149,6 +157,13 @@
149
157
  ```html
150
158
  <hd-tip title="基本信息" [fontSize]="14"></hd-tip>
151
159
  <hd-tip title="新增" [showIcon]="false" [fontSize]="16"></hd-tip>
160
+
161
+ <!-- 右侧展开/收起:父组件控制其它区块显隐 -->
162
+ <hd-tip #basicTip title="基本信息" showCollapse [(expanded)]="showBasicBlock"></hd-tip>
163
+ <div *ngIf="showBasicBlock">…其它内容…</div>
164
+
165
+ <!-- 或 ViewChild 调用 -->
166
+ <!-- this.basicTip.expand() / collapse() / toggle() -->
152
167
  ```
153
168
 
154
169
  | 参数 | 类型 | 默认值 | 说明 |
@@ -156,6 +171,19 @@
156
171
  | title | string | — | 标题文案 |
157
172
  | showIcon | boolean | true | 是否显示左侧竖线 |
158
173
  | fontSize | number | — | 字体大小 |
174
+ | showCollapse | boolean | false | 是否在右侧显示展开/收起 |
175
+ | expanded | boolean | true | 当前是否展开;可 `[(expanded)]` 双向绑定 |
176
+ | expandedChange | EventEmitter\<boolean\> | — | 展开状态变化 |
177
+
178
+ #### 暴露方法(ViewChild)
179
+
180
+ | 方法 | 说明 |
181
+ | ---- | ---- |
182
+ | expand() | 展开,并触发 `expandedChange` |
183
+ | collapse() | 收起,并触发 `expandedChange` |
184
+ | toggle() | 切换,并触发 `expandedChange` |
185
+
186
+ `hd-tip` 本身不包裹内容块,由父组件根据 `expanded` / 方法结果自行控制其它区域的 `*ngIf` 等显隐。
159
187
 
160
188
  ---
161
189
 
@@ -271,8 +299,10 @@ search(reset = false) {
271
299
 
272
300
  | 参数 | 类型 | 默认值 | 说明 |
273
301
  | ---- | ---- | ------ | ---- |
274
- | tableData | Page\<any\> | — | 分页数据 |
275
- | tablePageIndex | number | 1 | 当前页(双向绑定) |
302
+ | tableData | Page\<any\> | — | 分页数据;非分页时 `content` 放全量,`totalElements` 建议等于 `content.length` |
303
+ | pagination | boolean | true | 是否显示分页;`false` 时一次展示全部 `content` |
304
+ | frontPagination | boolean | false | 前端分页:对 `content` 全量切片,翻页不触发 `tableSearchEvent`。详情全量数据时与 `pagination` 搭配:`pagination=false` 全展示,`pagination=true` + `frontPagination` 前端分页。列表服务端分页保持默认即可(`frontPagination` 不传) |
305
+ | tablePageIndex | number | 1 | 当前页(双向绑定);`pagination=false` 时无意义 |
276
306
  | tablePageSize | number | 10 | 每页条数(双向绑定) |
277
307
  | tableLoading | boolean | false | 加载状态 |
278
308
  | tableSearchEvent | EventEmitter | — | 翻页 / 改 pageSize 触发,参数 reset 表示是否重置到第一页 |
@@ -354,9 +384,11 @@ tableCols: HdTableColumn[] = [{
354
384
  | 参数 | 类型 | 默认值 | 说明 |
355
385
  | ---- | ---- | ------ | ---- |
356
386
  | tableCols | HdTableColumn[] | [] | 列配置 |
357
- | tableData | Page\<any\> | — | 分页数据 |
358
- | tablePageIndex | number | 1 | 当前页(双向绑定) |
359
- | tablePageSize | number | 100 | 每页条数(双向绑定);外面传入会覆盖默认值 |
387
+ | tableData | Page\<any\> | — | 数据;服务端分页时为当前页;全量场景 `content` 放全部行 |
388
+ | pagination | boolean | true | 是否显示分页;`false` 一次展示全部 `content` |
389
+ | frontPagination | boolean | false | 前端分页:对 `content` 切片,翻页不触发 `tableSearchEvent`。详情全量数据:`[pagination]="x" frontPagination`,切 `x` 即可在「全展示 / 前端分页」间切换。列表保持默认(不传)即为服务端分页 |
390
+ | tablePageIndex | number | 1 | 当前页(双向绑定);`pagination=false` 时可忽略 |
391
+ | tablePageSize | number | 100 | 每页条数(双向绑定);外面传入会覆盖默认值;非分页时可忽略 |
360
392
  | tableLoading | boolean | false | 加载状态 |
361
393
  | tableSearchEvent | EventEmitter | — | 翻页查询 |
362
394
  | tablePageSizeChange | EventEmitter | — | pageSize 双向绑定同步 |
@@ -377,7 +409,24 @@ tableCols: HdTableColumn[] = [{
377
409
  | uuid | string | — | 列缓存唯一标识(必填,用于 IndexedDB 缓存) |
378
410
  | tableLeftButton / tableRightButton / tableTotal | TemplateRef | — | 工具栏插槽 |
379
411
 
380
- 分页可选条数:`10 / 50 / 100 / 200 / 500 / 1000`。若本地缓存过该表 `pageSize` 且 `> 10`,初始化会优先使用缓存值并回写父组件。
412
+ 分页可选条数:`10 / 50 / 100 / 200 / 500 / 1000`。若本地缓存过该表 `pageSize` 且 `> 10`,初始化会优先使用缓存值并回写父组件(仅 `pagination=true`)。
413
+
414
+ 非分页示例:
415
+
416
+ ```html
417
+ <!-- 不分页:一次展示全部 -->
418
+ <hd-table [pagination]="false" frontPagination
419
+ [tableCols]="cols" [tableData]="linesPage" uuid="detail-lines-uuid"></hd-table>
420
+
421
+ <!-- 前端分页:对全量 content 切片 -->
422
+ <hd-table [pagination]="true" frontPagination [tablePageSize]="10"
423
+ [tableCols]="cols" [tableData]="linesPage" uuid="detail-lines-uuid"></hd-table>
424
+ ```
425
+
426
+ ```typescript
427
+ // content 放全量;totalElements 建议与 content.length 一致
428
+ linesPage = { content: lines, totalElements: lines.length };
429
+ ```
381
430
 
382
431
  #### HdTableColumn 配置
383
432
 
@@ -482,6 +531,7 @@ formChangeEvent(validateForm: FormGroup) {
482
531
 
483
532
  ```html
484
533
  <hd-form-lines #hdFormLines showSearch showCheckbox showKeyboardOperateTip
534
+ uuid="demo-form-lines-col-settings"
485
535
  [formLines]="formLines" [formLinesData]="formLinesData"
486
536
  [operateButtons]="['add', 'copy', 'delete']" [allowEmpty]="false"
487
537
  (changeEvent)="formLinesChangeEvent($event)"
@@ -493,6 +543,17 @@ formChangeEvent(validateForm: FormGroup) {
493
543
  <ng-template #formLinesRightButton>
494
544
  <hd-button type="default">右侧操作</hd-button>
495
545
  </ng-template>
546
+ <!-- 勾选提示等同 hd-table 的 tableTotal,放在表格上方 -->
547
+ <ng-template #tableTotal>
548
+ <nz-alert *ngIf="hdFormLines.getSelectedCount() > 0" nzType="info"
549
+ [nzMessage]="formLinesAlertTpl" nzShowIcon></nz-alert>
550
+ <ng-template #formLinesAlertTpl>
551
+ <span>已选择{{ hdFormLines.getSelectedCount() }}条数据</span>&nbsp;&nbsp;
552
+ <span class="common-btn-group">
553
+ <a (click)="hdFormLines.clearSelection()">清空</a>
554
+ </span>
555
+ </ng-template>
556
+ </ng-template>
496
557
  <ng-template #ViewDomRightTemplate let-formItem="formItem" let-formLine="formLine">
497
558
  <!-- ViewDom 列右侧自定义内容 -->
498
559
  </ng-template>
@@ -507,6 +568,8 @@ formChangeEvent(validateForm: FormGroup) {
507
568
  | showDeleteConfirm | boolean | false | 删除前确认 |
508
569
  | showSearch | boolean | false | 行内搜索 |
509
570
  | showCheckbox | boolean | false | 行勾选列(用于批量操作) |
571
+ | showColSettings | boolean | true | 是否展示列设置(齿轮,位置同 hd-table);仅 **非 hide 的 ViewDom** 可配置显示/隐藏,**不可拖拽调序** |
572
+ | uuid | string | — | 列设置缓存标识;有值时按用户+路由持久化到 IndexedDB |
510
573
  | showKeyboardOperateTip | boolean | false | 键盘操作提示 |
511
574
  | showLineNumber | boolean | true | 序号列 |
512
575
  | tableLoading | boolean | false | 加载状态 |
@@ -525,6 +588,7 @@ formChangeEvent(validateForm: FormGroup) {
525
588
  | ---- | ---- |
526
589
  | formLinesLeftButton | 工具栏左侧自定义按钮(同 hd-table 的 tableLeftButton) |
527
590
  | formLinesRightButton | 工具栏右侧自定义按钮 |
591
+ | tableTotal | 表格上方自定义区域(同 hd-table);勾选提示等由业务自行放入,组件内不再默认渲染 |
528
592
  | ViewDomRightTemplate | ViewDom 列右侧自定义模板,上下文:`formItem`、`formLine` |
529
593
 
530
594
  ### allowEmpty 行为
@@ -646,7 +710,7 @@ formCols: HdOption[] = [
646
710
  | 参数 | 类型 | 默认值 | 说明 |
647
711
  | ---- | ---- | ------ | ---- |
648
712
  | lines | any[] | — | 明细数据 |
649
- | scroll | object | { x: '1px' } | 横向滚动 |
713
+ | scroll | object | 自动 | 不传则按列宽自动算横向滚动;有 `x` 时自动补 `y`(`calc(100vh - …)`),避免窄屏无法纵向滚动 |
650
714
  | showSearch | boolean | false | 行内搜索 |
651
715
  | searchFields | string[] | [] | 搜索字段,空则搜全部字段 |
652
716
  | hdFrontPagination | boolean | false | 前端分页 |
@@ -937,6 +1001,8 @@ selectOption: {
937
1001
  | hide | boolean | 是否隐藏 |
938
1002
  | clickText | string | 可点击文案 |
939
1003
  | click | (value) => void | 点击回调 |
1004
+ | editable | boolean | 值后显示编辑笔图标(Figma 14px) |
1005
+ | edit | (col) => void | 点击编辑笔回调,供父组件处理 |
940
1006
 
941
1007
  ### Filter(筛选项)
942
1008
 
@@ -1023,6 +1089,7 @@ selectOption: {
1023
1089
  | type | FormLineType | — | 控件类型 |
1024
1090
  | align | string | — | 列对齐 left \| right \| center |
1025
1091
  | hideViewDomValue | boolean | false | ViewDom 隐藏 value(如只显示图片) |
1092
+ | isShow | boolean | true | 列设置可见性(仅非 hide 的 ViewDom 可由设置列切换) |
1026
1093
  | isSelect | boolean | — | 聚焦后全选内容 |
1027
1094
  | preserveNumber | number | — | ViewDom 小数位 |
1028
1095
  | maxLength | number | — | Input 最大长度 |
@@ -1071,7 +1138,7 @@ onOpenChangeEvent: (open: boolean, line: FormGroup) => void
1071
1138
  | title / name | string | — | 列标题 / 字段名 |
1072
1139
  | width / minWidth | number | — | 列宽 / 最小列宽 |
1073
1140
  | align | string | left | 对齐方式 |
1074
- | color | string | — | 文字颜色 |
1141
+ | color | string \| (line) => string | — | 文字颜色。字符串为整列同色;函数按行返回颜色,标红可返回 `#F5222D`,不标色返回空 |
1075
1142
  | fixed / fixedWidth | — | — | 固定列 |
1076
1143
  | isShow | boolean | true | 设置列可见性 |
1077
1144
  | canSort / canWarp | boolean | false | 排序 / 换行 |
@@ -1079,6 +1146,9 @@ onOpenChangeEvent: (open: boolean, line: FormGroup) => void
1079
1146
  | stateField | string | — | 状态列取值字段(`name` 为 `state` 且未设置 `isState` 时生效,默认 `state`) |
1080
1147
  | render / click | Function | — | 渲染 / 点击 |
1081
1148
  | canClick | (line) => boolean | — | 按行控制是否可点 |
1149
+ | rowNo | boolean \| string | — | 字段值后竖线 + 行号。`true` 为分页连续序号(从 1 起);字符串为行数据字段名。前面的字段仍可用 `click` 做成超链接,行号不可点 |
1150
+ | editable | boolean \| (line) => boolean | — | 值后显示编辑笔图标(Figma 14px);函数按行控制 |
1151
+ | edit | (line) => void | — | 点击编辑笔回调,供父组件处理(如弹窗改值) |
1082
1152
  | btnList | OperateBtn[] | — | `title` 为「操作」时整列按钮;其他列时显示在单元格文案后的操作按钮 |
1083
1153
 
1084
1154
  #### OperateBtn(操作列按钮)
@@ -1124,6 +1194,8 @@ onOpenChangeEvent: (open: boolean, line: FormGroup) => void
1124
1194
 
1125
1195
  ## 附录:ColWidth 列宽常量
1126
1196
 
1197
+ 发布后的 `.d.ts` 带字面量类型(`as const`),业务仓 IDE 悬停 `ColWidth.xxx` 可直接看到数值与说明。
1198
+
1127
1199
  ```typescript
1128
1200
  import { ColWidth } from 'fantasy-ngzorro';
1129
1201