fantasy-ngzorro 2.2.36 → 2.2.38
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/README.md +2 -1
- package/bundles/fantasy-ngzorro.umd.js +347 -233
- package/bundles/fantasy-ngzorro.umd.js.map +1 -1
- package/bundles/fantasy-ngzorro.umd.min.js +1 -1
- package/bundles/fantasy-ngzorro.umd.min.js.map +1 -1
- package/esm2015/hd-filter/hd-filter.component.js +15 -6
- package/esm2015/hd-table/hd-table.component.js +248 -200
- package/esm2015/utils/hd-table-scroll.util.js +3 -2
- package/esm5/hd-filter/hd-filter.component.js +21 -8
- package/esm5/hd-table/hd-table.component.js +326 -226
- package/esm5/utils/hd-table-scroll.util.js +3 -2
- package/fantasy-ngzorro.metadata.json +1 -1
- package/fesm2015/fantasy-ngzorro.js +263 -205
- package/fesm2015/fantasy-ngzorro.js.map +1 -1
- package/fesm5/fantasy-ngzorro.js +347 -233
- package/fesm5/fantasy-ngzorro.js.map +1 -1
- package/hd-filter/hd-filter.component.d.ts +3 -1
- package/hd-table/hd-table.component.d.ts +25 -22
- package/package.json +2 -2
- package/utils/hd-table-scroll.util.d.ts +4 -1
|
@@ -1502,7 +1502,8 @@
|
|
|
1502
1502
|
return getTableViewportWidth(nzTable, hostClass);
|
|
1503
1503
|
}
|
|
1504
1504
|
/**
|
|
1505
|
-
* 无数据或列宽未超出容器时不启用横向 scroll
|
|
1505
|
+
* 无数据或列宽未超出容器时不启用横向 scroll(表宽 100%、table-layout: auto)。
|
|
1506
|
+
* auto 布局下单元格 max-width 不生效,固定宽列会被均摊撑开;需要锁宽的场景见 hd-table 的横向布局。
|
|
1506
1507
|
* @param {?} nzTable
|
|
1507
1508
|
* @param {?} hasData
|
|
1508
1509
|
* @param {?=} colWidth
|
|
@@ -5144,29 +5145,39 @@
|
|
|
5144
5145
|
this.validateFilterForm.patchValue(patch);
|
|
5145
5146
|
};
|
|
5146
5147
|
/**
|
|
5147
|
-
*
|
|
5148
|
+
* 多选空态用 [],避免 FormControl 为 null 时 nz-select multiple 不显示 placeholder。
|
|
5149
|
+
* DateRange 必须保持 null(或把历史空数组归一为 null):业务侧大量用 !value 判断,
|
|
5150
|
+
* 若规范成 [] 会因 truthy 走进 moment(value[0]),被解析成「今天」。
|
|
5148
5151
|
*/
|
|
5149
5152
|
/**
|
|
5150
|
-
*
|
|
5153
|
+
* 多选空态用 [],避免 FormControl 为 null 时 nz-select multiple 不显示 placeholder。
|
|
5154
|
+
* DateRange 必须保持 null(或把历史空数组归一为 null):业务侧大量用 !value 判断,
|
|
5155
|
+
* 若规范成 [] 会因 truthy 走进 moment(value[0]),被解析成「今天」。
|
|
5151
5156
|
* @private
|
|
5152
5157
|
* @param {?} filter
|
|
5153
5158
|
* @param {?} value
|
|
5154
5159
|
* @return {?}
|
|
5155
5160
|
*/
|
|
5156
5161
|
HdFilterComponent.prototype.normalizeFilterControlValue = /**
|
|
5157
|
-
*
|
|
5162
|
+
* 多选空态用 [],避免 FormControl 为 null 时 nz-select multiple 不显示 placeholder。
|
|
5163
|
+
* DateRange 必须保持 null(或把历史空数组归一为 null):业务侧大量用 !value 判断,
|
|
5164
|
+
* 若规范成 [] 会因 truthy 走进 moment(value[0]),被解析成「今天」。
|
|
5158
5165
|
* @private
|
|
5159
5166
|
* @param {?} filter
|
|
5160
5167
|
* @param {?} value
|
|
5161
5168
|
* @return {?}
|
|
5162
5169
|
*/
|
|
5163
5170
|
function (filter, value) {
|
|
5164
|
-
if (filter
|
|
5165
|
-
|
|
5166
|
-
|
|
5167
|
-
|
|
5171
|
+
if (!filter) {
|
|
5172
|
+
return value;
|
|
5173
|
+
}
|
|
5174
|
+
if (filter.type === FilterListType.MultipleSelect && value == null) {
|
|
5168
5175
|
return [];
|
|
5169
5176
|
}
|
|
5177
|
+
if (filter.type === FilterListType.DateRange &&
|
|
5178
|
+
(value == null || (Array.isArray(value) && value.length === 0))) {
|
|
5179
|
+
return null;
|
|
5180
|
+
}
|
|
5170
5181
|
return value;
|
|
5171
5182
|
};
|
|
5172
5183
|
/**
|
|
@@ -5188,6 +5199,9 @@
|
|
|
5188
5199
|
}
|
|
5189
5200
|
if (filter.type === FilterListType.DateRange) {
|
|
5190
5201
|
if (Array.isArray(value)) {
|
|
5202
|
+
if (value.length === 0) {
|
|
5203
|
+
return null;
|
|
5204
|
+
}
|
|
5191
5205
|
return value.map((/**
|
|
5192
5206
|
* @param {?} v
|
|
5193
5207
|
* @return {?}
|
|
@@ -10938,6 +10952,67 @@
|
|
|
10938
10952
|
* @fileoverview added by tsickle
|
|
10939
10953
|
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
10940
10954
|
*/
|
|
10955
|
+
/**
|
|
10956
|
+
* 勾选列宽(px),与模板 nzWidth、less 兜底保持一致
|
|
10957
|
+
* @type {?}
|
|
10958
|
+
*/
|
|
10959
|
+
var SELECT_COL_WIDTH = 40;
|
|
10960
|
+
/**
|
|
10961
|
+
* 横向布局计算结果
|
|
10962
|
+
* @record
|
|
10963
|
+
*/
|
|
10964
|
+
function HdTableHorizontalLayout() { }
|
|
10965
|
+
if (false) {
|
|
10966
|
+
/**
|
|
10967
|
+
* 传给 nzScroll.x;只有列宽总和 <= 0 时为 null
|
|
10968
|
+
* @type {?}
|
|
10969
|
+
*/
|
|
10970
|
+
HdTableHorizontalLayout.prototype.scrollX;
|
|
10971
|
+
/**
|
|
10972
|
+
* 补到最后一列业务列上的宽度,列多时为 0
|
|
10973
|
+
* @type {?}
|
|
10974
|
+
*/
|
|
10975
|
+
HdTableHorizontalLayout.prototype.fluidExtra;
|
|
10976
|
+
/**
|
|
10977
|
+
* 实际渲染总宽 = 声明总宽 + fluidExtra
|
|
10978
|
+
* @type {?}
|
|
10979
|
+
*/
|
|
10980
|
+
HdTableHorizontalLayout.prototype.displayTotal;
|
|
10981
|
+
/**
|
|
10982
|
+
* 列少、靠补宽吃满容器,不需要真正横滚
|
|
10983
|
+
* @type {?}
|
|
10984
|
+
*/
|
|
10985
|
+
HdTableHorizontalLayout.prototype.isFluid;
|
|
10986
|
+
}
|
|
10987
|
+
/**
|
|
10988
|
+
* 列多(或量不到容器宽):scroll.x = 声明总宽,正常横滚
|
|
10989
|
+
* @param {?} declaredWidth
|
|
10990
|
+
* @return {?}
|
|
10991
|
+
*/
|
|
10992
|
+
function fixedLayout(declaredWidth) {
|
|
10993
|
+
return {
|
|
10994
|
+
scrollX: Math.ceil(declaredWidth) + "px",
|
|
10995
|
+
fluidExtra: 0,
|
|
10996
|
+
displayTotal: declaredWidth,
|
|
10997
|
+
isFluid: false,
|
|
10998
|
+
};
|
|
10999
|
+
}
|
|
11000
|
+
/**
|
|
11001
|
+
* 列少:scroll.x = 容器宽,差额补到最后一列业务列
|
|
11002
|
+
* @param {?} containerWidth
|
|
11003
|
+
* @param {?} declaredWidth
|
|
11004
|
+
* @return {?}
|
|
11005
|
+
*/
|
|
11006
|
+
function fluidLayout(containerWidth, declaredWidth) {
|
|
11007
|
+
/** @type {?} */
|
|
11008
|
+
var fluidExtra = Math.max(0, containerWidth - declaredWidth);
|
|
11009
|
+
return {
|
|
11010
|
+
scrollX: containerWidth + "px",
|
|
11011
|
+
fluidExtra: fluidExtra,
|
|
11012
|
+
displayTotal: declaredWidth + fluidExtra,
|
|
11013
|
+
isFluid: true,
|
|
11014
|
+
};
|
|
11015
|
+
}
|
|
10941
11016
|
var HdTableComponent = /** @class */ (function () {
|
|
10942
11017
|
function HdTableComponent(hostEl, cdr, commonSessionService) {
|
|
10943
11018
|
var _this = this;
|
|
@@ -11023,21 +11098,19 @@
|
|
|
11023
11098
|
*/
|
|
11024
11099
|
this.virtualScrollActive = null;
|
|
11025
11100
|
/**
|
|
11026
|
-
*
|
|
11101
|
+
* 实际渲染列宽合计(含勾选/序号 + 补宽),合计 footer 表宽用
|
|
11027
11102
|
*/
|
|
11028
11103
|
this.tableColWidthTotal = 0;
|
|
11029
11104
|
/**
|
|
11030
|
-
*
|
|
11031
|
-
* 并设 scroll.x = 容器宽,避免表宽 100% 均摊撑开勾选列;拖拽改宽仍写 col.width。
|
|
11105
|
+
* 补到 fluidExtraTargetCol 上的宽度;只影响展示,不写回 col.width(列宽缓存、拖拽仍用声明宽)
|
|
11032
11106
|
*/
|
|
11033
11107
|
this.fluidExtraWidth = 0;
|
|
11034
11108
|
/**
|
|
11035
|
-
*
|
|
11036
|
-
* 用于关掉 ng-zorro fixed-header 带来的常驻 X 轴滚动条。
|
|
11109
|
+
* 列少、靠补宽吃满容器:模板据此加 hd-table--fluid-x,隐藏 fixed-header 常驻的横滚槽
|
|
11037
11110
|
*/
|
|
11038
11111
|
this.fluidHorizontal = false;
|
|
11039
11112
|
/**
|
|
11040
|
-
*
|
|
11113
|
+
* 接收补宽的列,缓存起来避免模板每个单元格都扫一遍 tableCols
|
|
11041
11114
|
*/
|
|
11042
11115
|
this.fluidExtraTargetCol = null;
|
|
11043
11116
|
/**
|
|
@@ -11261,10 +11334,8 @@
|
|
|
11261
11334
|
changes["tableData"]["currentValue"]["pageNumber"] !==
|
|
11262
11335
|
changes["tableData"]["previousValue"]["pageNumber"]) {
|
|
11263
11336
|
this.pendingResetScrollTop = true;
|
|
11264
|
-
// pageSize
|
|
11265
|
-
//
|
|
11266
|
-
// virtualScroll=false 时若这里跳过,空表初始化后的 fluid 不会补上,勾选列被撑开。
|
|
11267
|
-
// applyTableScrollMode(false) 在模式未变时只 dealScroll,不会强制重建清排序态。
|
|
11337
|
+
// 业务可能把 Page.pageSize 写成 content.length,换数据时就会走到这里,
|
|
11338
|
+
// 必须重算横向布局。滚动模式不变时不会重建,排序态不会被清掉。
|
|
11268
11339
|
this.applyTableScrollMode(false);
|
|
11269
11340
|
// 翻页/改 pageSize:主动多次复位,覆盖 CDK 异步渲染时序
|
|
11270
11341
|
this.scheduleResetTableBodyScrollTop();
|
|
@@ -11276,9 +11347,7 @@
|
|
|
11276
11347
|
}
|
|
11277
11348
|
if (changes["tableData"]) {
|
|
11278
11349
|
this.pendingResetScrollTop = true;
|
|
11279
|
-
//
|
|
11280
|
-
// 收款/付款编辑等页 [virtualScroll]=false + 异步灌数据:原先跳过会导致
|
|
11281
|
-
// 空表初始化后不再补宽,勾选列被均摊撑开。
|
|
11350
|
+
// 不论是否虚拟滚动,数据变化后都要重算横向布局
|
|
11282
11351
|
this.applyTableScrollMode(false);
|
|
11283
11352
|
// 数据更新后复位纵向滚动(含虚拟滚动场景)
|
|
11284
11353
|
this.scheduleResetTableBodyScrollTop();
|
|
@@ -11519,13 +11588,13 @@
|
|
|
11519
11588
|
return col.fixed === "left" ? (col.fixedWidth || 0) + "px" : null;
|
|
11520
11589
|
};
|
|
11521
11590
|
Object.defineProperty(HdTableComponent.prototype, "lineNumberLeft", {
|
|
11522
|
-
/** 开启合计时序号列的 left
|
|
11591
|
+
/** 开启合计时序号列的 left(跟在勾选列后面) */
|
|
11523
11592
|
get: /**
|
|
11524
|
-
* 开启合计时序号列的 left
|
|
11593
|
+
* 开启合计时序号列的 left(跟在勾选列后面)
|
|
11525
11594
|
* @return {?}
|
|
11526
11595
|
*/
|
|
11527
11596
|
function () {
|
|
11528
|
-
return this.showSelected ?
|
|
11597
|
+
return (this.showSelected ? SELECT_COL_WIDTH : 0) + "px";
|
|
11529
11598
|
},
|
|
11530
11599
|
enumerable: true,
|
|
11531
11600
|
configurable: true
|
|
@@ -11556,62 +11625,141 @@
|
|
|
11556
11625
|
enumerable: true,
|
|
11557
11626
|
configurable: true
|
|
11558
11627
|
});
|
|
11559
|
-
/** 展示用列宽:fluid 时最后一列业务列 = 声明宽 + fluidExtraWidth */
|
|
11560
11628
|
/**
|
|
11561
|
-
*
|
|
11629
|
+
* @private
|
|
11630
|
+
* @param {?} col
|
|
11631
|
+
* @return {?}
|
|
11632
|
+
*/
|
|
11633
|
+
HdTableComponent.prototype.isColVisible = /**
|
|
11634
|
+
* @private
|
|
11635
|
+
* @param {?} col
|
|
11636
|
+
* @return {?}
|
|
11637
|
+
*/
|
|
11638
|
+
function (col) {
|
|
11639
|
+
return !!col && col.isShow !== false;
|
|
11640
|
+
};
|
|
11641
|
+
/** 业务列声明宽:未配置时按 fixColWidth */
|
|
11642
|
+
/**
|
|
11643
|
+
* 业务列声明宽:未配置时按 fixColWidth
|
|
11644
|
+
* @private
|
|
11645
|
+
* @param {?} col
|
|
11646
|
+
* @return {?}
|
|
11647
|
+
*/
|
|
11648
|
+
HdTableComponent.prototype.getColDeclaredWidth = /**
|
|
11649
|
+
* 业务列声明宽:未配置时按 fixColWidth
|
|
11650
|
+
* @private
|
|
11651
|
+
* @param {?} col
|
|
11652
|
+
* @return {?}
|
|
11653
|
+
*/
|
|
11654
|
+
function (col) {
|
|
11655
|
+
return col && col.width > 0 ? col.width : ColWidth.fixColWidth;
|
|
11656
|
+
};
|
|
11657
|
+
/** 声明列宽合计:勾选列 + 序号列 + 可见业务列,不含补宽 */
|
|
11658
|
+
/**
|
|
11659
|
+
* 声明列宽合计:勾选列 + 序号列 + 可见业务列,不含补宽
|
|
11660
|
+
* @private
|
|
11661
|
+
* @return {?}
|
|
11662
|
+
*/
|
|
11663
|
+
HdTableComponent.prototype.getDeclaredColWidthTotal = /**
|
|
11664
|
+
* 声明列宽合计:勾选列 + 序号列 + 可见业务列,不含补宽
|
|
11665
|
+
* @private
|
|
11666
|
+
* @return {?}
|
|
11667
|
+
*/
|
|
11668
|
+
function () {
|
|
11669
|
+
var _this = this;
|
|
11670
|
+
/** @type {?} */
|
|
11671
|
+
var total = 0;
|
|
11672
|
+
if (this.showSelected) {
|
|
11673
|
+
total += SELECT_COL_WIDTH;
|
|
11674
|
+
}
|
|
11675
|
+
if (this.showTableTotal) {
|
|
11676
|
+
total += this.lineNumberColWidth;
|
|
11677
|
+
}
|
|
11678
|
+
(this.tableCols || []).forEach((/**
|
|
11679
|
+
* @param {?} col
|
|
11680
|
+
* @return {?}
|
|
11681
|
+
*/
|
|
11682
|
+
function (col) {
|
|
11683
|
+
if (_this.isColVisible(col)) {
|
|
11684
|
+
total += _this.getColDeclaredWidth(col);
|
|
11685
|
+
}
|
|
11686
|
+
}));
|
|
11687
|
+
return total;
|
|
11688
|
+
};
|
|
11689
|
+
/** 模板里 th / td / 合计 col 用的列宽:补宽目标列 = 声明宽 + fluidExtraWidth */
|
|
11690
|
+
/**
|
|
11691
|
+
* 模板里 th / td / 合计 col 用的列宽:补宽目标列 = 声明宽 + fluidExtraWidth
|
|
11562
11692
|
* @param {?} col
|
|
11563
11693
|
* @return {?}
|
|
11564
11694
|
*/
|
|
11565
11695
|
HdTableComponent.prototype.getColDisplayWidth = /**
|
|
11566
|
-
*
|
|
11696
|
+
* 模板里 th / td / 合计 col 用的列宽:补宽目标列 = 声明宽 + fluidExtraWidth
|
|
11567
11697
|
* @param {?} col
|
|
11568
11698
|
* @return {?}
|
|
11569
11699
|
*/
|
|
11570
11700
|
function (col) {
|
|
11571
11701
|
/** @type {?} */
|
|
11572
|
-
var
|
|
11573
|
-
|
|
11574
|
-
|
|
11575
|
-
if (this.fluidExtraWidth <= 0 ||
|
|
11576
|
-
!col ||
|
|
11577
|
-
!this.fluidExtraTargetCol ||
|
|
11578
|
-
col !== this.fluidExtraTargetCol) {
|
|
11579
|
-
return base;
|
|
11702
|
+
var declared = this.getColDeclaredWidth(col);
|
|
11703
|
+
if (this.fluidExtraWidth > 0 && col && col === this.fluidExtraTargetCol) {
|
|
11704
|
+
return declared + this.fluidExtraWidth;
|
|
11580
11705
|
}
|
|
11581
|
-
return
|
|
11706
|
+
return declared;
|
|
11582
11707
|
};
|
|
11583
|
-
/** 按当前 layout 刷新 fluid 补宽目标列(仅 dealScroll / sync 时调用) */
|
|
11584
11708
|
/**
|
|
11585
|
-
*
|
|
11709
|
+
* 选出接收补宽的列:优先最后一列「非右侧固定」的可见列,
|
|
11710
|
+
* 避免把操作列等右固定列拉宽;全是右固定列时退回最后一列可见列。
|
|
11711
|
+
*/
|
|
11712
|
+
/**
|
|
11713
|
+
* 选出接收补宽的列:优先最后一列「非右侧固定」的可见列,
|
|
11714
|
+
* 避免把操作列等右固定列拉宽;全是右固定列时退回最后一列可见列。
|
|
11586
11715
|
* @private
|
|
11587
11716
|
* @return {?}
|
|
11588
11717
|
*/
|
|
11589
|
-
HdTableComponent.prototype.
|
|
11590
|
-
*
|
|
11718
|
+
HdTableComponent.prototype.findFluidExtraTargetCol = /**
|
|
11719
|
+
* 选出接收补宽的列:优先最后一列「非右侧固定」的可见列,
|
|
11720
|
+
* 避免把操作列等右固定列拉宽;全是右固定列时退回最后一列可见列。
|
|
11591
11721
|
* @private
|
|
11592
11722
|
* @return {?}
|
|
11593
11723
|
*/
|
|
11594
11724
|
function () {
|
|
11595
|
-
|
|
11596
|
-
|
|
11597
|
-
|
|
11598
|
-
|
|
11599
|
-
for (var i =
|
|
11725
|
+
/** @type {?} */
|
|
11726
|
+
var cols = this.tableCols || [];
|
|
11727
|
+
/** @type {?} */
|
|
11728
|
+
var lastVisible = null;
|
|
11729
|
+
for (var i = cols.length - 1; i >= 0; i--) {
|
|
11600
11730
|
/** @type {?} */
|
|
11601
|
-
var
|
|
11602
|
-
if (
|
|
11603
|
-
|
|
11604
|
-
return;
|
|
11731
|
+
var col = cols[i];
|
|
11732
|
+
if (!this.isColVisible(col)) {
|
|
11733
|
+
continue;
|
|
11605
11734
|
}
|
|
11606
|
-
|
|
11607
|
-
|
|
11608
|
-
|
|
11609
|
-
|
|
11610
|
-
|
|
11611
|
-
this.fluidExtraTargetCol = c;
|
|
11612
|
-
return;
|
|
11735
|
+
if (col.fixed !== "right") {
|
|
11736
|
+
return col;
|
|
11737
|
+
}
|
|
11738
|
+
if (!lastVisible) {
|
|
11739
|
+
lastVisible = col;
|
|
11613
11740
|
}
|
|
11614
11741
|
}
|
|
11742
|
+
return lastVisible;
|
|
11743
|
+
};
|
|
11744
|
+
/** 把横向布局结果写回组件状态(dealScroll / syncHorizontalScroll 共用) */
|
|
11745
|
+
/**
|
|
11746
|
+
* 把横向布局结果写回组件状态(dealScroll / syncHorizontalScroll 共用)
|
|
11747
|
+
* @private
|
|
11748
|
+
* @param {?} layout
|
|
11749
|
+
* @return {?}
|
|
11750
|
+
*/
|
|
11751
|
+
HdTableComponent.prototype.applyHorizontalLayout = /**
|
|
11752
|
+
* 把横向布局结果写回组件状态(dealScroll / syncHorizontalScroll 共用)
|
|
11753
|
+
* @private
|
|
11754
|
+
* @param {?} layout
|
|
11755
|
+
* @return {?}
|
|
11756
|
+
*/
|
|
11757
|
+
function (layout) {
|
|
11758
|
+
this.fluidExtraWidth = layout.fluidExtra;
|
|
11759
|
+
this.fluidHorizontal = layout.isFluid;
|
|
11760
|
+
this.fluidExtraTargetCol =
|
|
11761
|
+
layout.fluidExtra > 0 ? this.findFluidExtraTargetCol() : null;
|
|
11762
|
+
this.tableColWidthTotal = layout.displayTotal;
|
|
11615
11763
|
};
|
|
11616
11764
|
Object.defineProperty(HdTableComponent.prototype, "totalFooterTableWidth", {
|
|
11617
11765
|
/** fluid → 100%;固定 → scroll.x(与表体同一套横向宽度) */
|
|
@@ -11739,7 +11887,6 @@
|
|
|
11739
11887
|
* @return {?}
|
|
11740
11888
|
*/
|
|
11741
11889
|
function (forceRemount) {
|
|
11742
|
-
var _this = this;
|
|
11743
11890
|
if (forceRemount === void 0) { forceRemount = false; }
|
|
11744
11891
|
/** @type {?} */
|
|
11745
11892
|
var useVirtual = this.useVirtualScroll;
|
|
@@ -11752,23 +11899,7 @@
|
|
|
11752
11899
|
// ng-zorro 只在 AfterViewInit 绑一次 header/body 的 scroll 同步;
|
|
11753
11900
|
// 若先以 y=null 创建再改成有 y,表头监听会丢,表现为列头不跟着横滚。
|
|
11754
11901
|
this.presetScrollBeforeRemount(useVirtual);
|
|
11755
|
-
this.
|
|
11756
|
-
this.cdr.markForCheck();
|
|
11757
|
-
setTimeout((/**
|
|
11758
|
-
* @return {?}
|
|
11759
|
-
*/
|
|
11760
|
-
function () {
|
|
11761
|
-
_this.showTable = true;
|
|
11762
|
-
_this.cdr.markForCheck();
|
|
11763
|
-
setTimeout((/**
|
|
11764
|
-
* @return {?}
|
|
11765
|
-
*/
|
|
11766
|
-
function () {
|
|
11767
|
-
_this.dealScroll();
|
|
11768
|
-
_this.cdr.markForCheck();
|
|
11769
|
-
_this.afterTableRender(useVirtual);
|
|
11770
|
-
}));
|
|
11771
|
-
}));
|
|
11902
|
+
this.remountTable(useVirtual);
|
|
11772
11903
|
return;
|
|
11773
11904
|
}
|
|
11774
11905
|
/** @type {?} */
|
|
@@ -11780,32 +11911,48 @@
|
|
|
11780
11911
|
var nextHasX = !!(this.scroll && this.scroll.x);
|
|
11781
11912
|
/** @type {?} */
|
|
11782
11913
|
var nextHasY = !!(this.scroll && this.scroll.y);
|
|
11783
|
-
//
|
|
11784
|
-
// - y:ng-zorro 只在 AfterViewInit
|
|
11785
|
-
// - x
|
|
11786
|
-
// 不重建时勾选列仍按 auto 均摊撑开(收款编辑等异步灌数页)
|
|
11914
|
+
// scroll.x / scroll.y 从无到有(或反过来)时必须重建,原地改值不生效:
|
|
11915
|
+
// - y:ng-zorro 8 只在 AfterViewInit 绑一次表头/表体滚动同步,且决定表头是否拆成独立 table
|
|
11916
|
+
// - x:决定是否带 ant-table-fixed(table-layout: fixed),勾选列锁宽依赖它
|
|
11787
11917
|
if (prevHasY !== nextHasY || prevHasX !== nextHasX) {
|
|
11788
|
-
this.
|
|
11789
|
-
|
|
11918
|
+
this.remountTable(useVirtual);
|
|
11919
|
+
return;
|
|
11920
|
+
}
|
|
11921
|
+
this.cdr.markForCheck();
|
|
11922
|
+
this.afterTableRender(useVirtual);
|
|
11923
|
+
};
|
|
11924
|
+
/** 销毁并重建 nz-table:等 DOM 出来后再按真实容器宽重算一次横向布局 */
|
|
11925
|
+
/**
|
|
11926
|
+
* 销毁并重建 nz-table:等 DOM 出来后再按真实容器宽重算一次横向布局
|
|
11927
|
+
* @private
|
|
11928
|
+
* @param {?} useVirtual
|
|
11929
|
+
* @return {?}
|
|
11930
|
+
*/
|
|
11931
|
+
HdTableComponent.prototype.remountTable = /**
|
|
11932
|
+
* 销毁并重建 nz-table:等 DOM 出来后再按真实容器宽重算一次横向布局
|
|
11933
|
+
* @private
|
|
11934
|
+
* @param {?} useVirtual
|
|
11935
|
+
* @return {?}
|
|
11936
|
+
*/
|
|
11937
|
+
function (useVirtual) {
|
|
11938
|
+
var _this = this;
|
|
11939
|
+
this.showTable = false;
|
|
11940
|
+
this.cdr.markForCheck();
|
|
11941
|
+
setTimeout((/**
|
|
11942
|
+
* @return {?}
|
|
11943
|
+
*/
|
|
11944
|
+
function () {
|
|
11945
|
+
_this.showTable = true;
|
|
11946
|
+
_this.cdr.markForCheck();
|
|
11790
11947
|
setTimeout((/**
|
|
11791
11948
|
* @return {?}
|
|
11792
11949
|
*/
|
|
11793
11950
|
function () {
|
|
11794
|
-
_this.
|
|
11951
|
+
_this.dealScroll();
|
|
11795
11952
|
_this.cdr.markForCheck();
|
|
11796
|
-
|
|
11797
|
-
* @return {?}
|
|
11798
|
-
*/
|
|
11799
|
-
function () {
|
|
11800
|
-
_this.dealScroll();
|
|
11801
|
-
_this.cdr.markForCheck();
|
|
11802
|
-
_this.afterTableRender(useVirtual);
|
|
11803
|
-
}));
|
|
11953
|
+
_this.afterTableRender(useVirtual);
|
|
11804
11954
|
}));
|
|
11805
|
-
|
|
11806
|
-
}
|
|
11807
|
-
this.cdr.markForCheck();
|
|
11808
|
-
this.afterTableRender(useVirtual);
|
|
11955
|
+
}));
|
|
11809
11956
|
};
|
|
11810
11957
|
/** 重建前预设 scroll,保证 AfterViewInit 时 header/body 结构已正确 */
|
|
11811
11958
|
/**
|
|
@@ -12670,48 +12817,62 @@
|
|
|
12670
12817
|
function (maxOffset) {
|
|
12671
12818
|
return "calc(100vh - " + maxOffset + "px)";
|
|
12672
12819
|
};
|
|
12673
|
-
|
|
12674
|
-
*
|
|
12675
|
-
*
|
|
12676
|
-
|
|
12677
|
-
|
|
12678
|
-
*
|
|
12679
|
-
*
|
|
12680
|
-
|
|
12681
|
-
|
|
12682
|
-
|
|
12683
|
-
|
|
12684
|
-
|
|
12685
|
-
|
|
12686
|
-
|
|
12687
|
-
*
|
|
12688
|
-
|
|
12689
|
-
|
|
12690
|
-
|
|
12691
|
-
|
|
12692
|
-
|
|
12693
|
-
|
|
12694
|
-
|
|
12695
|
-
|
|
12696
|
-
|
|
12697
|
-
|
|
12698
|
-
|
|
12820
|
+
/*
|
|
12821
|
+
* 横向布局(勾选列锁 40px 的关键)
|
|
12822
|
+
*
|
|
12823
|
+
* 勾选列只有在 table-layout: fixed 下才锁得住:ng-zorro 8 仅在 nzScroll.x 有值时
|
|
12824
|
+
* 给 table 加 ant-table-fixed;auto 布局下 table 宽 100%、每列都有 nzWidth,
|
|
12825
|
+
* 剩余空间会按比例摊到所有列(含勾选列),单元格上的 max-width 也不生效。
|
|
12826
|
+
* 所以只要有列(无论有没有数据)就一定设置 scroll.x:
|
|
12827
|
+
* - 列少:scroll.x = 容器宽,差额补到最后一列业务列(fluid,不出真横滚)
|
|
12828
|
+
* - 列多:scroll.x = 声明总宽,正常横滚
|
|
12829
|
+
* less 里勾选列的 40px 只是 fixed 布局下的兜底。
|
|
12830
|
+
*/
|
|
12831
|
+
/**
|
|
12832
|
+
* 按声明列宽合计 + 容器宽算出横向布局。
|
|
12833
|
+
* 判断「是否超宽」用 offsetWidth(含竖滚条槽),避免只因竖滚条就误开横滚;
|
|
12834
|
+
* 补宽目标用 clientWidth 并向下取整,避免表宽多 1px 逼出横滚条。
|
|
12835
|
+
*/
|
|
12836
|
+
/*
|
|
12837
|
+
* 横向布局(勾选列锁 40px 的关键)
|
|
12838
|
+
*
|
|
12839
|
+
* 勾选列只有在 table-layout: fixed 下才锁得住:ng-zorro 8 仅在 nzScroll.x 有值时
|
|
12840
|
+
* 给 table 加 ant-table-fixed;auto 布局下 table 宽 100%、每列都有 nzWidth,
|
|
12841
|
+
* 剩余空间会按比例摊到所有列(含勾选列),单元格上的 max-width 也不生效。
|
|
12842
|
+
* 所以只要有列(无论有没有数据)就一定设置 scroll.x:
|
|
12843
|
+
* - 列少:scroll.x = 容器宽,差额补到最后一列业务列(fluid,不出真横滚)
|
|
12844
|
+
* - 列多:scroll.x = 声明总宽,正常横滚
|
|
12845
|
+
* less 里勾选列的 40px 只是 fixed 布局下的兜底。
|
|
12846
|
+
*/
|
|
12847
|
+
/**
|
|
12848
|
+
* 按声明列宽合计 + 容器宽算出横向布局。
|
|
12849
|
+
* 判断「是否超宽」用 offsetWidth(含竖滚条槽),避免只因竖滚条就误开横滚;
|
|
12850
|
+
* 补宽目标用 clientWidth 并向下取整,避免表宽多 1px 逼出横滚条。
|
|
12699
12851
|
* @private
|
|
12700
12852
|
* @param {?} declaredColWidth
|
|
12701
12853
|
* @return {?}
|
|
12702
12854
|
*/
|
|
12703
|
-
HdTableComponent.prototype.resolveHorizontalLayout =
|
|
12704
|
-
|
|
12705
|
-
|
|
12706
|
-
|
|
12707
|
-
|
|
12708
|
-
|
|
12855
|
+
HdTableComponent.prototype.resolveHorizontalLayout = /*
|
|
12856
|
+
* 横向布局(勾选列锁 40px 的关键)
|
|
12857
|
+
*
|
|
12858
|
+
* 勾选列只有在 table-layout: fixed 下才锁得住:ng-zorro 8 仅在 nzScroll.x 有值时
|
|
12859
|
+
* 给 table 加 ant-table-fixed;auto 布局下 table 宽 100%、每列都有 nzWidth,
|
|
12860
|
+
* 剩余空间会按比例摊到所有列(含勾选列),单元格上的 max-width 也不生效。
|
|
12861
|
+
* 所以只要有列(无论有没有数据)就一定设置 scroll.x:
|
|
12862
|
+
* - 列少:scroll.x = 容器宽,差额补到最后一列业务列(fluid,不出真横滚)
|
|
12863
|
+
* - 列多:scroll.x = 声明总宽,正常横滚
|
|
12864
|
+
* less 里勾选列的 40px 只是 fixed 布局下的兜底。
|
|
12865
|
+
*/
|
|
12866
|
+
/**
|
|
12867
|
+
* 按声明列宽合计 + 容器宽算出横向布局。
|
|
12868
|
+
* 判断「是否超宽」用 offsetWidth(含竖滚条槽),避免只因竖滚条就误开横滚;
|
|
12869
|
+
* 补宽目标用 clientWidth 并向下取整,避免表宽多 1px 逼出横滚条。
|
|
12709
12870
|
* @private
|
|
12710
12871
|
* @param {?} declaredColWidth
|
|
12711
12872
|
* @return {?}
|
|
12712
12873
|
*/
|
|
12713
12874
|
function (declaredColWidth) {
|
|
12714
|
-
if (
|
|
12875
|
+
if (declaredColWidth <= 0) {
|
|
12715
12876
|
return {
|
|
12716
12877
|
scrollX: null,
|
|
12717
12878
|
fluidExtra: 0,
|
|
@@ -12720,115 +12881,63 @@
|
|
|
12720
12881
|
};
|
|
12721
12882
|
}
|
|
12722
12883
|
/** @type {?} */
|
|
12723
|
-
var
|
|
12884
|
+
var compareWidth = this.nzTableComponent
|
|
12724
12885
|
? getTableScrollXViewportWidth(this.nzTableComponent)
|
|
12725
12886
|
: 0;
|
|
12726
|
-
//
|
|
12727
|
-
if (
|
|
12728
|
-
/** @type {?} */
|
|
12729
|
-
var hostW = ((/** @type {?} */ (this.hostEl.nativeElement))).offsetWidth;
|
|
12730
|
-
if (hostW > 0) {
|
|
12731
|
-
viewportCompare = hostW;
|
|
12732
|
-
}
|
|
12887
|
+
// 表体还没渲染出来(刚重建 / 在 spin 里)时用宿主宽兜底
|
|
12888
|
+
if (compareWidth <= 0 && this.hostEl && this.hostEl.nativeElement) {
|
|
12889
|
+
compareWidth = ((/** @type {?} */ (this.hostEl.nativeElement))).offsetWidth;
|
|
12733
12890
|
}
|
|
12734
|
-
|
|
12735
|
-
|
|
12736
|
-
|
|
12737
|
-
scrollX: Math.ceil(declaredColWidth) + "px",
|
|
12738
|
-
fluidExtra: 0,
|
|
12739
|
-
displayTotal: declaredColWidth,
|
|
12740
|
-
isFluid: false,
|
|
12741
|
-
};
|
|
12742
|
-
}
|
|
12743
|
-
/** @type {?} */
|
|
12744
|
-
var fillWidth = this.nzTableComponent
|
|
12745
|
-
? getTableViewportWidth(this.nzTableComponent)
|
|
12746
|
-
: 0;
|
|
12747
|
-
/** @type {?} */
|
|
12748
|
-
var target = Math.floor(fillWidth > 0 ? fillWidth : viewportCompare);
|
|
12749
|
-
/** @type {?} */
|
|
12750
|
-
var fluidExtra = Math.max(0, target - declaredColWidth);
|
|
12751
|
-
return {
|
|
12752
|
-
scrollX: target + "px",
|
|
12753
|
-
fluidExtra: fluidExtra,
|
|
12754
|
-
displayTotal: declaredColWidth + fluidExtra,
|
|
12755
|
-
isFluid: true,
|
|
12756
|
-
};
|
|
12891
|
+
// 仍量不到(如宿主在 display:none 里):先按声明宽走 fixed,等 ResizeObserver 触发再转 fluid
|
|
12892
|
+
if (compareWidth <= 0) {
|
|
12893
|
+
return fixedLayout(declaredColWidth);
|
|
12757
12894
|
}
|
|
12758
|
-
//
|
|
12759
|
-
|
|
12760
|
-
|
|
12761
|
-
|
|
12762
|
-
|
|
12763
|
-
|
|
12764
|
-
|
|
12765
|
-
|
|
12895
|
+
// 1px 容差,避免亚像素误判
|
|
12896
|
+
if (declaredColWidth > compareWidth + 1) {
|
|
12897
|
+
return fixedLayout(declaredColWidth);
|
|
12898
|
+
}
|
|
12899
|
+
/** @type {?} */
|
|
12900
|
+
var fillWidth = this.nzTableComponent
|
|
12901
|
+
? getTableViewportWidth(this.nzTableComponent)
|
|
12902
|
+
: 0;
|
|
12903
|
+
/** @type {?} */
|
|
12904
|
+
var containerWidth = Math.floor(fillWidth > 0 ? fillWidth : compareWidth);
|
|
12905
|
+
return fluidLayout(containerWidth, declaredColWidth);
|
|
12766
12906
|
};
|
|
12767
|
-
/**
|
|
12907
|
+
/** 表格渲染后按真实容器宽校正横向布局;只改 x,y 保持不变 */
|
|
12768
12908
|
/**
|
|
12769
|
-
*
|
|
12909
|
+
* 表格渲染后按真实容器宽校正横向布局;只改 x,y 保持不变
|
|
12770
12910
|
* @private
|
|
12771
12911
|
* @return {?}
|
|
12772
12912
|
*/
|
|
12773
12913
|
HdTableComponent.prototype.syncHorizontalScroll = /**
|
|
12774
|
-
*
|
|
12914
|
+
* 表格渲染后按真实容器宽校正横向布局;只改 x,y 保持不变
|
|
12775
12915
|
* @private
|
|
12776
12916
|
* @return {?}
|
|
12777
12917
|
*/
|
|
12778
12918
|
function () {
|
|
12779
12919
|
var _this = this;
|
|
12780
12920
|
/** @type {?} */
|
|
12781
|
-
var declared = 0;
|
|
12782
|
-
if (this.showSelected) {
|
|
12783
|
-
declared += 40;
|
|
12784
|
-
}
|
|
12785
|
-
if (this.showTableTotal) {
|
|
12786
|
-
declared += this.lineNumberColWidth;
|
|
12787
|
-
}
|
|
12788
|
-
if (this.tableCols) {
|
|
12789
|
-
this.tableCols.forEach((/**
|
|
12790
|
-
* @param {?} item
|
|
12791
|
-
* @return {?}
|
|
12792
|
-
*/
|
|
12793
|
-
function (item) {
|
|
12794
|
-
if (item && item.isShow !== false) {
|
|
12795
|
-
declared += item.width > 0 ? item.width : ColWidth.fixColWidth;
|
|
12796
|
-
}
|
|
12797
|
-
}));
|
|
12798
|
-
}
|
|
12799
|
-
/** @type {?} */
|
|
12800
12921
|
var prevHasX = !!(this.scroll && this.scroll.x);
|
|
12801
12922
|
/** @type {?} */
|
|
12802
|
-
var layout = this.resolveHorizontalLayout(
|
|
12923
|
+
var layout = this.resolveHorizontalLayout(this.getDeclaredColWidthTotal());
|
|
12803
12924
|
/** @type {?} */
|
|
12804
|
-
var
|
|
12805
|
-
|
|
12806
|
-
|
|
12807
|
-
|
|
12808
|
-
|
|
12809
|
-
/** @type {?} */
|
|
12810
|
-
var sameExtra = this.fluidExtraWidth === layout.fluidExtra;
|
|
12811
|
-
/** @type {?} */
|
|
12812
|
-
var sameFluid = this.fluidHorizontal === layout.isFluid;
|
|
12813
|
-
if (sameX &&
|
|
12814
|
-
sameExtra &&
|
|
12815
|
-
sameFluid &&
|
|
12816
|
-
this.scroll &&
|
|
12817
|
-
this.scroll.y === currentY) {
|
|
12925
|
+
var unchanged = this.scroll &&
|
|
12926
|
+
this.scroll.x === layout.scrollX &&
|
|
12927
|
+
this.fluidExtraWidth === layout.fluidExtra &&
|
|
12928
|
+
this.fluidHorizontal === layout.isFluid;
|
|
12929
|
+
if (unchanged) {
|
|
12818
12930
|
setTimeout((/**
|
|
12819
12931
|
* @return {?}
|
|
12820
12932
|
*/
|
|
12821
12933
|
function () { return _this.syncTotalFooterWithBody(); }));
|
|
12822
12934
|
return;
|
|
12823
12935
|
}
|
|
12824
|
-
this.
|
|
12825
|
-
this.
|
|
12826
|
-
this.refreshFluidExtraTargetCol();
|
|
12827
|
-
this.tableColWidthTotal = layout.displayTotal;
|
|
12828
|
-
this.scroll = { x: layout.scrollX, y: currentY };
|
|
12936
|
+
this.applyHorizontalLayout(layout);
|
|
12937
|
+
this.scroll = { x: layout.scrollX, y: this.scroll ? this.scroll.y : null };
|
|
12829
12938
|
this.cdr.markForCheck();
|
|
12830
|
-
//
|
|
12831
|
-
if (prevHasX !==
|
|
12939
|
+
// x 从无到有(或反过来)要重建才能切换 table-layout
|
|
12940
|
+
if (prevHasX !== !!layout.scrollX) {
|
|
12832
12941
|
this.applyTableScrollMode(true);
|
|
12833
12942
|
return;
|
|
12834
12943
|
}
|
|
@@ -12853,7 +12962,8 @@
|
|
|
12853
12962
|
return;
|
|
12854
12963
|
}
|
|
12855
12964
|
/** @type {?} */
|
|
12856
|
-
var header = (/** @type {?} */ (((/** @type {?} */ (this.nzTableComponent)))
|
|
12965
|
+
var header = (/** @type {?} */ (((/** @type {?} */ (this.nzTableComponent)))
|
|
12966
|
+
.tableHeaderNativeElement));
|
|
12857
12967
|
/** @type {?} */
|
|
12858
12968
|
var body = this.getTableBodyScrollEl();
|
|
12859
12969
|
if (this.scroll && this.scroll.x && header && body) {
|
|
@@ -12879,7 +12989,8 @@
|
|
|
12879
12989
|
return null;
|
|
12880
12990
|
}
|
|
12881
12991
|
/** @type {?} */
|
|
12882
|
-
var mix = (/** @type {?} */ (((/** @type {?} */ (this.nzTableComponent)))
|
|
12992
|
+
var mix = (/** @type {?} */ (((/** @type {?} */ (this.nzTableComponent)))
|
|
12993
|
+
.mixTableBodyNativeElement));
|
|
12883
12994
|
if (mix) {
|
|
12884
12995
|
return mix;
|
|
12885
12996
|
}
|
|
@@ -13146,13 +13257,15 @@
|
|
|
13146
13257
|
* @return {?}
|
|
13147
13258
|
*/
|
|
13148
13259
|
function () {
|
|
13260
|
+
var _this = this;
|
|
13261
|
+
// 左侧固定列:从左往右累计偏移(勾选列、序号列在最前面)
|
|
13149
13262
|
/** @type {?} */
|
|
13150
|
-
var
|
|
13263
|
+
var leftOffset = 0;
|
|
13151
13264
|
if (this.showSelected) {
|
|
13152
|
-
|
|
13265
|
+
leftOffset += SELECT_COL_WIDTH;
|
|
13153
13266
|
}
|
|
13154
13267
|
if (this.showTableTotal) {
|
|
13155
|
-
|
|
13268
|
+
leftOffset += this.lineNumberColWidth;
|
|
13156
13269
|
}
|
|
13157
13270
|
this.tableCols.forEach((/**
|
|
13158
13271
|
* @param {?} item
|
|
@@ -13162,9 +13275,9 @@
|
|
|
13162
13275
|
if (!item.width) {
|
|
13163
13276
|
item.width = ColWidth.fixColWidth;
|
|
13164
13277
|
}
|
|
13165
|
-
if (item
|
|
13166
|
-
item.fixedWidth =
|
|
13167
|
-
|
|
13278
|
+
if (_this.isColVisible(item)) {
|
|
13279
|
+
item.fixedWidth = leftOffset;
|
|
13280
|
+
leftOffset += item.width;
|
|
13168
13281
|
}
|
|
13169
13282
|
}));
|
|
13170
13283
|
// 右侧固定列:从右往左累计偏移,避免多列都 right:0 互相遮挡
|
|
@@ -13173,7 +13286,7 @@
|
|
|
13173
13286
|
for (var i = this.tableCols.length - 1; i >= 0; i--) {
|
|
13174
13287
|
/** @type {?} */
|
|
13175
13288
|
var item = this.tableCols[i];
|
|
13176
|
-
if (item
|
|
13289
|
+
if (!this.isColVisible(item)) {
|
|
13177
13290
|
continue;
|
|
13178
13291
|
}
|
|
13179
13292
|
if (item.fixed === "right") {
|
|
@@ -13185,11 +13298,8 @@
|
|
|
13185
13298
|
}
|
|
13186
13299
|
}
|
|
13187
13300
|
/** @type {?} */
|
|
13188
|
-
var layout = this.resolveHorizontalLayout(
|
|
13189
|
-
this.
|
|
13190
|
-
this.fluidHorizontal = layout.isFluid;
|
|
13191
|
-
this.refreshFluidExtraTargetCol();
|
|
13192
|
-
this.tableColWidthTotal = layout.displayTotal;
|
|
13301
|
+
var layout = this.resolveHorizontalLayout(this.getDeclaredColWidthTotal());
|
|
13302
|
+
this.applyHorizontalLayout(layout);
|
|
13193
13303
|
/** @type {?} */
|
|
13194
13304
|
var maxOffset = this.getScrollYMaxOffset();
|
|
13195
13305
|
/** @type {?} */
|
|
@@ -13393,7 +13503,9 @@
|
|
|
13393
13503
|
* @return {?}
|
|
13394
13504
|
*/
|
|
13395
13505
|
function (col, colIndex) {
|
|
13396
|
-
if (!col ||
|
|
13506
|
+
if (!col ||
|
|
13507
|
+
!this.tableTotalOptionList ||
|
|
13508
|
+
!this.tableTotalOptionList.length) {
|
|
13397
13509
|
return null;
|
|
13398
13510
|
}
|
|
13399
13511
|
/** @type {?} */
|
|
@@ -13795,7 +13907,8 @@
|
|
|
13795
13907
|
* @return {?}
|
|
13796
13908
|
*/
|
|
13797
13909
|
function (col) {
|
|
13798
|
-
return !!(col &&
|
|
13910
|
+
return !!(col &&
|
|
13911
|
+
(col.rowNo === true || (typeof col.rowNo === "string" && col.rowNo)));
|
|
13799
13912
|
};
|
|
13800
13913
|
/**
|
|
13801
13914
|
* 行号文案。rowNo 为字段名时取行数据;为 true 时按当前页序号(跨页连续,从 1 开始)。
|
|
@@ -13846,7 +13959,10 @@
|
|
|
13846
13959
|
* @return {?}
|
|
13847
13960
|
*/
|
|
13848
13961
|
function (col) {
|
|
13849
|
-
if (!this.hasRowNo(col) ||
|
|
13962
|
+
if (!this.hasRowNo(col) ||
|
|
13963
|
+
!col ||
|
|
13964
|
+
!col.title ||
|
|
13965
|
+
String(col.title).indexOf("|") < 0) {
|
|
13850
13966
|
return null;
|
|
13851
13967
|
}
|
|
13852
13968
|
/** @type {?} */
|
|
@@ -14420,7 +14536,7 @@
|
|
|
14420
14536
|
HdTableComponent.decorators = [
|
|
14421
14537
|
{ type: core.Component, args: [{
|
|
14422
14538
|
selector: "hd-table",
|
|
14423
|
-
template: "<ng-container>\n <hd-button-group>\n <ng-template #buttonGroupLeft>\n <ng-container *ngTemplateOutlet=\"tableLeftButton\"></ng-container>\n <hd-button *ngIf=\"showOperateColWarpButton\" type=\"default\" (click)=\"toggleShowDetail()\">{{showDetail ?\n '\u7F29\u7565\u663E\u793A': '\u5C55\u5F00\u663E\u793A'}}</hd-button>\n </ng-template> \n <ng-template #buttonGroupRight>\n <ng-container *ngTemplateOutlet=\"tableRightButton\"></ng-container>\n <ng-container *ngIf=\"showColSettings\">\n <span class=\"hd-table-col-settings\" nz-dropdown nzTrigger=\"click\" [nzDropdownMenu]=\"menu\"\n [nzVisible]=\"isDropdownVisible\" (click)=\"confirmDropdown()\" title=\"\u5217\u8BBE\u7F6E\">\n <svg class=\"hd-table-col-settings-icon\" width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\">\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n d=\"M4.92031 1.80756C5.02551 1.42884 5.37033 1.16675 5.76339 1.16675H8.23667C8.62973 1.16675 8.97455 1.42884 9.07975 1.80756L9.37802 2.88133L10.4571 2.60273C10.8377 2.50448 11.2371 2.67206 11.4336 3.01245L12.6703 5.15438C12.8668 5.49478 12.8122 5.92445 12.5369 6.20491L11.7561 7.00008L12.5369 7.79525C12.8122 8.07572 12.8668 8.50539 12.6703 8.84579L11.4336 10.9877C11.2371 11.3281 10.8377 11.4957 10.4571 11.3974L9.37802 11.1188L9.07975 12.1926C8.97455 12.5713 8.62973 12.8334 8.23667 12.8334H5.76339C5.37033 12.8334 5.02551 12.5713 4.92031 12.1926L4.62206 11.1189L3.54315 11.3974C3.16258 11.4957 2.76318 11.3281 2.56666 10.9877L1.33001 8.84579C1.13349 8.50539 1.18806 8.07572 1.46343 7.79525L2.24419 7.00008L1.46344 6.20491C1.18806 5.92445 1.13349 5.49478 1.33002 5.15438L2.56666 3.01245C2.76319 2.67206 3.16258 2.50448 3.54316 2.60273L4.62206 2.88127L4.92031 1.80756ZM4.54541 10.843L4.54552 10.8433L4.54541 10.843ZM5.98508 2.33341L5.66952 3.46945C5.54185 3.92906 5.06958 4.20173 4.60771 4.08249L3.46618 3.78778L2.45122 5.54572L3.2773 6.38705C3.6115 6.72742 3.6115 7.27275 3.2773 7.61312L2.45122 8.45444L3.46617 10.2124L4.60771 9.91768C5.06958 9.79844 5.54185 10.0711 5.66952 10.5307L5.98508 11.6667H8.01498L8.33056 10.5307C8.45823 10.071 8.9305 9.79838 9.39237 9.91762L10.5341 10.2124L11.5491 8.45444L10.723 7.61312C10.3888 7.27275 10.3888 6.72742 10.723 6.38705L11.5491 5.54572L10.5341 3.78778L9.39237 4.08254C8.9305 4.20178 8.45823 3.92912 8.33056 3.46951L8.01498 2.33341H5.98508ZM7.00003 5.83342C6.3557 5.83342 5.83337 6.35575 5.83337 7.00008C5.83337 7.64441 6.3557 8.16675 7.00003 8.16675C7.64436 8.16675 8.1667 7.64441 8.1667 7.00008C8.1667 6.35575 7.64436 5.83342 7.00003 5.83342ZM4.6667 7.00008C4.6667 5.71142 5.71137 4.66675 7.00003 4.66675C8.2887 4.66675 9.33337 5.71142 9.33337 7.00008C9.33337 8.28875 8.2887 9.33342 7.00003 9.33342C5.71137 9.33342 4.6667 8.28875 4.6667 7.00008Z\"\n fill=\"currentColor\" />\n </svg>\n </span>\n <nz-dropdown-menu #menu=\"nzDropdownMenu\">\n <div class=\"hd-table-col-settings-dropdown\">\n <div class=\"hd-table-col-settings-list\">\n <div *ngIf=\"showListNodes && nowListNodes.length > 0\" nz-menu style=\"padding: 5px 10px;\">\n <nz-tree *ngIf=\"showListNodes\" [nzData]=\"nowListNodes\" nzCheckable nzDraggable nzBlockNode\n nzShowExpand=\"false\" (nzCheckBoxChange)=\"checkAction($event)\" [nzBeforeDrop]=\"beforeDrop\"\n [nzTreeTemplate]=\"nzTreeTemplate\">\n </nz-tree>\n <ng-template #nzTreeTemplate let-node>\n <span\n class=\"ng-tns-c31-110 draggable ng-star-inserted ant-tree-node-content-wrapper ant-tree-node-content-wrapper-close\"\n [title]=\"node.key\" draggable=\"true\" aria-grabbed=\"true\">\n <span class=\"ant-tree-title\">\n <div class=\"hd-table-tree-node\">\n <span>{{node.key}}</span>\n <div *ngIf=\"!node.origin.disabled\" class=\"hd-table-tree-node-img\">\n <i nz-icon nzType=\"caret-up\" nzTheme=\"outline\"></i>\n <i nz-icon nzType=\"caret-down\" nzTheme=\"outline\"></i>\n </div>\n </div>\n </span>\n </span>\n </ng-template>\n </div>\n <div *ngIf=\"showListNodes && hideListNodes.length > 0\" nz-menu style=\"padding: 5px 10px;\">\n <nz-tree *ngIf=\"showListNodes\" [nzData]=\"hideListNodes\" nzCheckable nzShowExpand=\"false\"\n (nzCheckBoxChange)=\"checkAction($event)\">\n </nz-tree>\n </div>\n </div>\n <div class=\"hd-table-col-settings-footer\">\n <hd-button style=\"margin-right: 4px;\" type=\"default\" size=\"small\" (clickAction)=\"cancelDropdown()\">\u53D6\u6D88\n </hd-button>\n <hd-button type=\"primary\" size=\"small\" (clickAction)=\"submitGrids()\">\u5B8C\u6210</hd-button>\n </div>\n </div>\n </nz-dropdown-menu>\n </ng-container>\n </ng-template>\n </hd-button-group>\n <hd-space type=\"row\" size=\"12\"></hd-space>\n <ng-container *ngTemplateOutlet=\"tableTotal\"></ng-container>\n <hd-space *ngIf=\"tableTotal\" type=\"row\" size=\"12\"></hd-space>\n <nz-table *ngIf=\"showTable\" #hdTable class=\"hd-table-container\" [class.hd-table--virtual]=\"useVirtualScroll\"\n [class.hd-table--scroll-y]=\"!!(scroll && scroll.y)\" [class.hd-table--scroll-x]=\"!!(scroll && scroll.x)\"\n [class.hd-table--fluid-x]=\"fluidHorizontal\"\n [class.hd-table--has-select]=\"showSelected\"\n [class.hd-table--has-total]=\"showTableTotal\"\n [nzScroll]=\"scroll\"\n [nzShowPagination]=\"pagination\" [nzShowSizeChanger]=\"pagination\" [nzShowQuickJumper]=\"pagination\"\n [nzFrontPagination]=\"useFrontPagination\" nzSize=\"middle\" [nzData]=\"tableData.content\"\n [nzTotal]=\"getTableTotalCount()\" [(nzPageIndex)]=\"tablePageIndex\" [nzLoading]=\"tableLoading\"\n [nzPageSizeOptions]=\"[ 10, 50, 100, 200, 500, 1000 ]\" [(nzPageSize)]=\"tablePageSize\"\n (nzPageSizeChange)=\"pagination ? search(true) : null\"\n (nzPageIndexChange)=\"pagination ? search(false) : null\"\n (nzCurrentPageDataChange)=\"showSelected ? currentPageDataChange($event) : null\"\n [nzShowTotal]=\"tableTotalTemplate\" [nzFooter]=\"showTableTotal ? tableTotalFooter : null\"\n [nzVirtualScroll]=\"useVirtualScroll\" [nzVirtualItemSize]=\"useVirtualScroll ? effectiveVirtualItemSize : 0\"\n [nzVirtualForTrackBy]=\"virtualTrackByRow\">\n <thead (nzSortChange)=\"sort($event)\" nzSingleSort>\n <tr>\n <th nzWidth=\"40px\" nzLeft=\"0px\" *ngIf=\"showSelected && selectType !== 'radio'\" nzShowCheckbox\n [(nzChecked)]=\"isAllDisplayDataChecked\" [nzIndeterminate]=\"isIndeterminate\"\n (nzCheckedChange)=\"checkAll($event)\"></th>\n <th nzWidth=\"40px\" nzLeft=\"0px\" *ngIf=\"showSelected && selectType === 'radio'\"></th>\n <th class=\"hd-table-line-no-col\" [nzWidth]=\"lineNumberColWidthPx\" [nzLeft]=\"lineNumberLeft\"\n *ngIf=\"showTableTotal\">\u5E8F\u53F7</th>\n <ng-container *ngFor=\"let col of tableCols\">\n <th *ngIf=\"col.isShow\" [nzWidth]=\"getColDisplayWidth(col) + 'px'\" [nzAlign]=\"col.align\"\n [nzLeft]=\"getLeftSticky(col)\"\n [nzRight]=\"getRightSticky(col)\" nz-resizable nzBounds=\"window\" nzPreview\n (nzResizeEnd)=\"onResize($event, col)\" [nzShowSort]=\"col.canSort\" [nzSortKey]=\"col.name\"\n [nzSort]=\"getColSort(col)\">\n <span class=\"hd-table-col-title\">\n <span class=\"hd-table-col-require\" *ngIf=\"col.require && col.editType\">*</span>\n <ng-container *ngIf=\"getTitleParts(col) as titleParts; else plainTitle\">\n <span class=\"hd-table-title-with-bar\">{{ titleParts[0] }}<i class=\"hd-table-row-no-bar\"></i>{{ titleParts[1] }}</span>\n </ng-container>\n <ng-template #plainTitle>{{ col.title }}</ng-template>\n </span>\n <nz-resize-handle nzDirection=\"right\">\n <div class=\"resize-trigger\"></div>\n </nz-resize-handle>\n </th>\n </ng-container>\n </tr>\n </thead>\n <tbody>\n <ng-template *ngIf=\"useVirtualScroll\" nz-virtual-scroll let-data let-index=\"index\">\n <tr class=\"hd-table-virtual-row\" [class.hd-table-row-invalid]=\"isInvalidRow(data)\">\n <ng-container *ngTemplateOutlet=\"tableCells; context: { $implicit: data, index: index }\"></ng-container>\n </tr>\n </ng-template>\n <ng-container *ngIf=\"!useVirtualScroll\">\n <tr *ngFor=\"let data of hdTable.data; trackBy: trackByRow; index as i\"\n [class.hd-table-row-invalid]=\"isInvalidRow(data)\">\n <ng-container *ngTemplateOutlet=\"tableCells; context: { $implicit: data, index: i }\"></ng-container>\n </tr>\n </ng-container>\n </tbody>\n <ng-template #tableTotalTemplate>\n \u5171 {{ getTableTotalCount() }} \u6761\u6570\u636E\n </ng-template>\n <ng-template #tableTotalFooter>\n <!--\n \u5217\u603B\u5BBD < \u5BB9\u5668\uFF1Ascroll.x=\u5BB9\u5668\u5BBD\uFF0C\u5DEE\u989D\u8865\u5230\u6700\u540E\u4E1A\u52A1\u5217\uFF08\u52FE\u9009\u4FDD\u6301 40\uFF09\uFF1B\u53EF\u62D6\u62FD\u3002\n \u5217\u603B\u5BBD > \u5BB9\u5668\uFF1Ascroll.x=\u58F0\u660E\u603B\u5BBD\uFF0C\u6A2A\u6EDA\u540C\u6B65\u3002\n -->\n <div class=\"hd-table-total-footer\"\n [class.hd-table-total-footer--fluid]=\"isTotalFooterFluid\"\n [class.hd-table-total-footer--y-gutter]=\"totalFooterNeedYGutter\">\n <table class=\"hd-table-total-footer-table\" [style.width]=\"totalFooterTableWidth\">\n <colgroup>\n <!-- \u52FE\u9009/\u5E8F\u53F7\u9501\u5BBD\uFF0C\u4E0D\u53C2\u4E0E\u5747\u644A -->\n <col *ngIf=\"showSelected\" style=\"width: 40px; min-width: 40px; max-width: 40px;\" />\n <col *ngIf=\"showTableTotal\"\n [style.width.px]=\"lineNumberColWidth\"\n [style.min-width.px]=\"lineNumberColWidth\"\n [style.max-width.px]=\"lineNumberColWidth\" />\n <ng-container *ngFor=\"let col of tableCols; trackBy: trackByCol\">\n <col *ngIf=\"col.isShow\" [style.width.px]=\"getColDisplayWidth(col)\" />\n </ng-container>\n </colgroup>\n <tr class=\"hd-table-total\">\n <td *ngIf=\"showSelected\" class=\"hd-table-total-footer-cell hd-table-total-footer-select\"\n [class.hd-table-total-footer-sticky-left]=\"!isTotalFooterFluid\"\n style=\"left: 0;\"> </td>\n <td class=\"hd-table-total-footer-cell hd-table-total-footer-line-no\"\n [class.hd-table-total-footer-sticky-left]=\"!isTotalFooterFluid\"\n [style.left]=\"!isTotalFooterFluid ? lineNumberLeft : null\">\u5408\u8BA1</td>\n <ng-container *ngFor=\"let col of tableCols; let colIndex = index; trackBy: trackByCol\">\n <td *ngIf=\"col.isShow\" class=\"hd-table-total-footer-cell\"\n [class.hd-table-total-footer-sticky-left]=\"!isTotalFooterFluid && col.fixed === 'left'\"\n [class.hd-table-total-footer-sticky-right]=\"!isTotalFooterFluid && col.fixed === 'right'\"\n [class.hd-table-total-align-left]=\"getTableTotalCellAlign(col, colIndex) === 'left'\"\n [class.hd-table-total-align-center]=\"getTableTotalCellAlign(col, colIndex) === 'center'\"\n [class.hd-table-total-align-right]=\"getTableTotalCellAlign(col, colIndex) === 'right'\"\n [style.left]=\"!isTotalFooterFluid && col.fixed === 'left' ? (col.fixedWidth || 0) + 'px' : null\"\n [style.right]=\"!isTotalFooterFluid && col.fixed === 'right' ? (col.fixedRightWidth || 0) + 'px' : null\"\n [ngStyle]=\"{'text-align': getTableTotalCellAlign(col, colIndex)}\">\n {{ getTableTotalCellValue(col, colIndex) }}\n </td>\n </ng-container>\n </tr>\n </table>\n </div>\n </ng-template>\n </nz-table>\n</ng-container>\n\n<ng-template #tableCells let-data let-index=\"index\">\n <td nzWidth=\"40px\" nzLeft=\"0px\" *ngIf=\"showSelected && selectType !== 'radio'\" nzShowCheckbox\n [nzChecked]=\"mapOfCheckedId[data[selectField]]\" [nzDisabled]=\"isSelectDisabled(data)\"\n (nzCheckedChange)=\"refreshStatus($event, data)\"></td>\n <td nzWidth=\"40px\" nzLeft=\"0px\" class=\"hd-table-select-radio\" *ngIf=\"showSelected && selectType === 'radio'\">\n <label nz-radio [nzDisabled]=\"isSelectDisabled(data)\" [ngModel]=\"!!mapOfCheckedId[data[selectField]]\"\n (ngModelChange)=\"onRadioSelect($event, data)\"></label>\n </td>\n <td class=\"hd-table-line-no-col\" [nzWidth]=\"lineNumberColWidthPx\" [nzLeft]=\"lineNumberLeft\"\n *ngIf=\"showTableTotal\">{{ getLineNumber(index) }}</td>\n <ng-container *ngFor=\"let col of tableCols; trackBy: trackByCol\">\n <td *ngIf=\"col.isShow\" [style.max-width.px]=\"getColDisplayWidth(col)\" [nzAlign]=\"col.align\"\n [nzLeft]=\"getLeftSticky(col)\"\n [nzRight]=\"getRightSticky(col)\"\n [ngClass]=\"(col.canWarp && showDetail) ? 'common-td-wrap' : ''\">\n <ng-container *ngIf=\"col.title === '\u64CD\u4F5C';else notOperateTemplate\">\n <div class=\"common-btn-group\">\n <ng-container *ngFor=\"let btn of col.btnList\">\n <ng-container *ngIf=\"!needShowConfirm(btn, data);else showConfirmTemplate\">\n <a *ngIf=\"btn.permission ? btn.permission(data) : true\"\n [class]=\"isDangerBtn(btn, data) ? 'common-danger-btn': ''\"\n (click)=\"triggerEvent(btn.click || null, data)\">{{ getBtnName(btn, data) }}</a>\n </ng-container>\n <ng-template #showConfirmTemplate>\n <a *ngIf=\"btn.permission ? btn.permission(data) : true\"\n [class]=\"isDangerBtn(btn, data) ? 'common-danger-btn': ''\" nz-popconfirm\n [nzPopconfirmTitle]=\"'\u786E\u8BA4\u8981' + getBtnName(btn, data) + '\u5417?'\"\n (nzOnConfirm)=\"triggerEvent(btn.click || null, data)\">{{\n getBtnName(btn, data) }}</a>\n </ng-template>\n </ng-container>\n </div>\n </ng-container>\n <ng-template #notOperateTemplate>\n <ng-container *ngIf=\"hasInlineEdit(col); else displayCellTpl\">\n <div class=\"hd-table-cell-edit\">\n <ng-container [ngSwitch]=\"col.editType\">\n <input *ngSwitchCase=\"'input'\" nz-input class=\"hd-table-cell-edit-control\"\n [placeholder]=\"col.placeholder || ''\"\n [disabled]=\"isEditDisabled(col, data)\"\n [ngModel]=\"data[col.name]\"\n (ngModelChange)=\"onCellChange(col, data, $event)\" />\n <nz-input-number *ngSwitchCase=\"'inputNumber'\" class=\"hd-table-cell-edit-control\"\n [nzPlaceHolder]=\"col.placeholder || ''\"\n [nzDisabled]=\"isEditDisabled(col, data)\"\n [nzMin]=\"getInputNumberProp(col, 'min', 0)\"\n [nzMax]=\"getInputNumberProp(col, 'max', 99999999)\"\n [nzStep]=\"getInputNumberProp(col, 'step', 1)\"\n [nzPrecision]=\"getInputNumberProp(col, 'precision', 4)\"\n [ngModel]=\"data[col.name]\"\n (ngModelChange)=\"onCellChange(col, data, $event)\">\n </nz-input-number>\n <nz-select *ngSwitchCase=\"'select'\" class=\"hd-table-cell-edit-control\"\n [nzPlaceHolder]=\"col.placeholder || '\u8BF7\u9009\u62E9'\"\n [nzDisabled]=\"isEditDisabled(col, data)\"\n [nzAllowClear]=\"col.selectOption && col.selectOption.hdAllowClear !== false\"\n [nzShowSearch]=\"!col.selectOption || col.selectOption.hdShowSearch !== false\"\n [nzServerSearch]=\"!!(col.selectOption && col.selectOption.hdServerSearch)\"\n [ngModel]=\"data[col.name]\"\n (ngModelChange)=\"onSelectChange(col, data, $event)\"\n (nzOpenChange)=\"onSelectOpenChange(col, data, $event)\"\n (nzOnSearch)=\"onSelectSearch(col, data, $event)\">\n <nz-option *ngFor=\"let selectItem of getSelectList(col, data)\"\n [nzValue]=\"selectItem[col.selectOption.value]\"\n [nzLabel]=\"getSelectOptionLabel(col, selectItem)\">\n </nz-option>\n </nz-select>\n <nz-date-picker *ngSwitchCase=\"'date'\" class=\"hd-table-cell-edit-control\"\n [nzPlaceHolder]=\"col.placeholder || '\u8BF7\u9009\u62E9\u65E5\u671F'\"\n [nzDisabled]=\"isEditDisabled(col, data)\"\n [nzDisabledDate]=\"getDisabledDate(col)\"\n [nzShowToday]=\"isDateShowToday(col)\"\n [nzShowTime]=\"isDateShowTime(col)\"\n [nzFormat]=\"getDateFormat(col, false)\"\n [ngModel]=\"data[col.name]\"\n (ngModelChange)=\"onCellChange(col, data, $event)\">\n </nz-date-picker>\n <nz-range-picker *ngSwitchCase=\"'dateRange'\" class=\"hd-table-cell-edit-control\"\n [nzPlaceHolder]=\"getRangePlaceholder(col)\"\n [nzDisabled]=\"isEditDisabled(col, data)\"\n [nzDisabledDate]=\"getDisabledDate(col)\"\n [nzFormat]=\"getDateFormat(col, true)\"\n [ngModel]=\"data[col.name]\"\n (ngModelChange)=\"onCellChange(col, data, $event)\">\n </nz-range-picker>\n </ng-container>\n </div>\n </ng-container>\n <ng-template #displayCellTpl>\n <div [class.hd-table-cell-with-actions]=\"col.btnList && col.btnList.length\">\n <div class=\"hd-table-cell-value\"\n [class.hd-table-cell-value--rowno]=\"hasRowNo(col)\"\n [class.hd-table-cell-value--edit]=\"isEditable(col, data)\">\n <ng-container *ngIf=\"col.name === 'state' || col.isState;else otherTemplate\">\n <hd-status [status]=\"data[getStateField(col)]\">\n <ng-container *ngIf=\"(data | hdTableCell:col) as cell\">\n <span *ngIf=\"cell.overflow && !(col.canWarp && showDetail)\" class=\"hd-table-cell-ellipsis\" nz-tooltip\n [nzTooltipTitle]=\"cell.title\">{{ cell.display }}</span>\n <span *ngIf=\"!cell.overflow || (col.canWarp && showDetail)\">{{ cell.display }}</span>\n </ng-container>\n </hd-status>\n </ng-container>\n <ng-template #otherTemplate>\n <ng-container *ngIf=\"col.click && (!col.canClick || col.canClick(data));else noClickTemplate\">\n <ng-container *ngIf=\"(data | hdTableCell:col) as cell\">\n <a *ngIf=\"cell.overflow && !(col.canWarp && showDetail)\" class=\"hd-table-cell-ellipsis\" nz-tooltip\n [nzTooltipTitle]=\"cell.title\"\n [ngStyle]=\"{'color': getLinkCellColor(col, data, cell.isEmpty)}\"\n (click)=\"triggerEvent(col.click || null, data)\">{{ cell.display }}</a>\n <a *ngIf=\"!cell.overflow || (col.canWarp && showDetail)\"\n [ngStyle]=\"{'color': getLinkCellColor(col, data, cell.isEmpty)}\"\n (click)=\"triggerEvent(col.click || null, data)\">{{ cell.display }}</a>\n </ng-container>\n </ng-container>\n <ng-template #noClickTemplate>\n <ng-container *ngIf=\"(data | hdTableCell:col) as cell\">\n <span *ngIf=\"cell.overflow && !(col.canWarp && showDetail)\" class=\"hd-table-cell-ellipsis\" nz-tooltip\n [nzTooltipTitle]=\"cell.title\"\n [ngStyle]=\"{'color': getPlainCellColor(col, data)}\">{{ cell.display }}</span>\n <span *ngIf=\"!cell.overflow || (col.canWarp && showDetail)\"\n [ngStyle]=\"{'color': getPlainCellColor(col, data)}\">{{ cell.display }}</span>\n </ng-container>\n </ng-template>\n </ng-template>\n <span class=\"hd-table-row-no\" *ngIf=\"hasRowNo(col) && getRowNoText(col, data, index)\">\n <i class=\"hd-table-row-no-bar\"></i>{{ getRowNoText(col, data, index) }}\n </span>\n <a *ngIf=\"isEditable(col, data)\" class=\"hd-table-edit-icon\" href=\"javascript:;\" title=\"\u7F16\u8F91\"\n (click)=\"onEditClick($event, col, data)\">\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\">\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n d=\"M8.10797 1.42626C8.44968 1.08456 9.0037 1.08456 9.34541 1.42626L10.9746 3.05542C11.3163 3.39713 11.3163 3.95115 10.9746 4.29286L5.01002 10.2574C4.87077 10.3967 4.68863 10.4849 4.49305 10.5078L2.72936 10.7142C2.18281 10.7782 1.71357 10.3278 1.7551 9.77914L1.89441 7.93871C1.9102 7.73007 2.00024 7.53399 2.14819 7.38604L8.10797 1.42626ZM7.67304 3.51111L8.88972 4.72779L9.94337 3.67414L8.72669 2.45746L7.67304 3.51111ZM8.06477 5.55274L6.84808 4.33606L3.04959 8.13456L2.94515 9.51434L4.25672 9.36079L8.06477 5.55274ZM12.25 12.8333L1.75 12.8333V11.6666L12.25 11.6666V12.8333Z\"\n fill=\"currentColor\" />\n </svg>\n </a>\n </div>\n <div class=\"common-btn-group hd-table-cell-actions\" *ngIf=\"col.btnList && col.btnList.length\">\n <ng-container *ngFor=\"let btn of col.btnList\">\n <ng-container *ngIf=\"!needShowConfirm(btn, data);else cellActionConfirmTpl\">\n <a *ngIf=\"btn.permission ? btn.permission(data) : true\"\n [class]=\"isDangerBtn(btn, data) ? 'common-danger-btn': ''\"\n (click)=\"triggerEvent(btn.click || null, data)\">{{ getBtnName(btn, data) }}</a>\n </ng-container>\n <ng-template #cellActionConfirmTpl>\n <a *ngIf=\"btn.permission ? btn.permission(data) : true\"\n [class]=\"isDangerBtn(btn, data) ? 'common-danger-btn': ''\" nz-popconfirm\n [nzPopconfirmTitle]=\"'\u786E\u8BA4\u8981' + getBtnName(btn, data) + '\u5417?'\"\n (nzOnConfirm)=\"triggerEvent(btn.click || null, data)\">{{\n getBtnName(btn, data) }}</a>\n </ng-template>\n </ng-container>\n </div>\n </div>\n </ng-template>\n </ng-template>\n </td>\n </ng-container>\n</ng-template>\n",
|
|
14539
|
+
template: "<ng-container>\n <hd-button-group>\n <ng-template #buttonGroupLeft>\n <ng-container *ngTemplateOutlet=\"tableLeftButton\"></ng-container>\n <hd-button *ngIf=\"showOperateColWarpButton\" type=\"default\" (click)=\"toggleShowDetail()\">{{showDetail ?\n '\u7F29\u7565\u663E\u793A': '\u5C55\u5F00\u663E\u793A'}}</hd-button>\n </ng-template>\n <ng-template #buttonGroupRight>\n <ng-container *ngTemplateOutlet=\"tableRightButton\"></ng-container>\n <ng-container *ngIf=\"showColSettings\">\n <span class=\"hd-table-col-settings\" nz-dropdown nzTrigger=\"click\" [nzDropdownMenu]=\"menu\"\n [nzVisible]=\"isDropdownVisible\" (click)=\"confirmDropdown()\" title=\"\u5217\u8BBE\u7F6E\">\n <svg class=\"hd-table-col-settings-icon\" width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\">\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n d=\"M4.92031 1.80756C5.02551 1.42884 5.37033 1.16675 5.76339 1.16675H8.23667C8.62973 1.16675 8.97455 1.42884 9.07975 1.80756L9.37802 2.88133L10.4571 2.60273C10.8377 2.50448 11.2371 2.67206 11.4336 3.01245L12.6703 5.15438C12.8668 5.49478 12.8122 5.92445 12.5369 6.20491L11.7561 7.00008L12.5369 7.79525C12.8122 8.07572 12.8668 8.50539 12.6703 8.84579L11.4336 10.9877C11.2371 11.3281 10.8377 11.4957 10.4571 11.3974L9.37802 11.1188L9.07975 12.1926C8.97455 12.5713 8.62973 12.8334 8.23667 12.8334H5.76339C5.37033 12.8334 5.02551 12.5713 4.92031 12.1926L4.62206 11.1189L3.54315 11.3974C3.16258 11.4957 2.76318 11.3281 2.56666 10.9877L1.33001 8.84579C1.13349 8.50539 1.18806 8.07572 1.46343 7.79525L2.24419 7.00008L1.46344 6.20491C1.18806 5.92445 1.13349 5.49478 1.33002 5.15438L2.56666 3.01245C2.76319 2.67206 3.16258 2.50448 3.54316 2.60273L4.62206 2.88127L4.92031 1.80756ZM4.54541 10.843L4.54552 10.8433L4.54541 10.843ZM5.98508 2.33341L5.66952 3.46945C5.54185 3.92906 5.06958 4.20173 4.60771 4.08249L3.46618 3.78778L2.45122 5.54572L3.2773 6.38705C3.6115 6.72742 3.6115 7.27275 3.2773 7.61312L2.45122 8.45444L3.46617 10.2124L4.60771 9.91768C5.06958 9.79844 5.54185 10.0711 5.66952 10.5307L5.98508 11.6667H8.01498L8.33056 10.5307C8.45823 10.071 8.9305 9.79838 9.39237 9.91762L10.5341 10.2124L11.5491 8.45444L10.723 7.61312C10.3888 7.27275 10.3888 6.72742 10.723 6.38705L11.5491 5.54572L10.5341 3.78778L9.39237 4.08254C8.9305 4.20178 8.45823 3.92912 8.33056 3.46951L8.01498 2.33341H5.98508ZM7.00003 5.83342C6.3557 5.83342 5.83337 6.35575 5.83337 7.00008C5.83337 7.64441 6.3557 8.16675 7.00003 8.16675C7.64436 8.16675 8.1667 7.64441 8.1667 7.00008C8.1667 6.35575 7.64436 5.83342 7.00003 5.83342ZM4.6667 7.00008C4.6667 5.71142 5.71137 4.66675 7.00003 4.66675C8.2887 4.66675 9.33337 5.71142 9.33337 7.00008C9.33337 8.28875 8.2887 9.33342 7.00003 9.33342C5.71137 9.33342 4.6667 8.28875 4.6667 7.00008Z\"\n fill=\"currentColor\" />\n </svg>\n </span>\n <nz-dropdown-menu #menu=\"nzDropdownMenu\">\n <div class=\"hd-table-col-settings-dropdown\">\n <div class=\"hd-table-col-settings-list\">\n <div *ngIf=\"showListNodes && nowListNodes.length > 0\" nz-menu style=\"padding: 5px 10px;\">\n <nz-tree *ngIf=\"showListNodes\" [nzData]=\"nowListNodes\" nzCheckable nzDraggable nzBlockNode\n nzShowExpand=\"false\" (nzCheckBoxChange)=\"checkAction($event)\" [nzBeforeDrop]=\"beforeDrop\"\n [nzTreeTemplate]=\"nzTreeTemplate\">\n </nz-tree>\n <ng-template #nzTreeTemplate let-node>\n <span\n class=\"ng-tns-c31-110 draggable ng-star-inserted ant-tree-node-content-wrapper ant-tree-node-content-wrapper-close\"\n [title]=\"node.key\" draggable=\"true\" aria-grabbed=\"true\">\n <span class=\"ant-tree-title\">\n <div class=\"hd-table-tree-node\">\n <span>{{node.key}}</span>\n <div *ngIf=\"!node.origin.disabled\" class=\"hd-table-tree-node-img\">\n <i nz-icon nzType=\"caret-up\" nzTheme=\"outline\"></i>\n <i nz-icon nzType=\"caret-down\" nzTheme=\"outline\"></i>\n </div>\n </div>\n </span>\n </span>\n </ng-template>\n </div>\n <div *ngIf=\"showListNodes && hideListNodes.length > 0\" nz-menu style=\"padding: 5px 10px;\">\n <nz-tree *ngIf=\"showListNodes\" [nzData]=\"hideListNodes\" nzCheckable nzShowExpand=\"false\"\n (nzCheckBoxChange)=\"checkAction($event)\">\n </nz-tree>\n </div>\n </div>\n <div class=\"hd-table-col-settings-footer\">\n <hd-button style=\"margin-right: 4px;\" type=\"default\" size=\"small\" (clickAction)=\"cancelDropdown()\">\u53D6\u6D88\n </hd-button>\n <hd-button type=\"primary\" size=\"small\" (clickAction)=\"submitGrids()\">\u5B8C\u6210</hd-button>\n </div>\n </div>\n </nz-dropdown-menu>\n </ng-container>\n </ng-template>\n </hd-button-group>\n <hd-space type=\"row\" size=\"12\"></hd-space>\n <ng-container *ngTemplateOutlet=\"tableTotal\"></ng-container>\n <hd-space *ngIf=\"tableTotal\" type=\"row\" size=\"12\"></hd-space>\n <nz-table *ngIf=\"showTable\" #hdTable class=\"hd-table-container\" [class.hd-table--virtual]=\"useVirtualScroll\"\n [class.hd-table--scroll-y]=\"!!(scroll && scroll.y)\" [class.hd-table--scroll-x]=\"!!(scroll && scroll.x)\"\n [class.hd-table--fluid-x]=\"fluidHorizontal\" [class.hd-table--has-select]=\"showSelected\"\n [class.hd-table--has-total]=\"showTableTotal\" [nzScroll]=\"scroll\" [nzShowPagination]=\"pagination\"\n [nzShowSizeChanger]=\"pagination\" [nzShowQuickJumper]=\"pagination\" [nzFrontPagination]=\"useFrontPagination\"\n nzSize=\"middle\" [nzData]=\"tableData.content\" [nzTotal]=\"getTableTotalCount()\" [(nzPageIndex)]=\"tablePageIndex\"\n [nzLoading]=\"tableLoading\" [nzPageSizeOptions]=\"[ 10, 50, 100, 200, 500, 1000 ]\" [(nzPageSize)]=\"tablePageSize\"\n (nzPageSizeChange)=\"pagination ? search(true) : null\" (nzPageIndexChange)=\"pagination ? search(false) : null\"\n (nzCurrentPageDataChange)=\"showSelected ? currentPageDataChange($event) : null\" [nzShowTotal]=\"tableTotalTemplate\"\n [nzFooter]=\"showTableTotal ? tableTotalFooter : null\" [nzVirtualScroll]=\"useVirtualScroll\"\n [nzVirtualItemSize]=\"useVirtualScroll ? effectiveVirtualItemSize : 0\" [nzVirtualForTrackBy]=\"virtualTrackByRow\">\n <thead (nzSortChange)=\"sort($event)\" nzSingleSort>\n <tr>\n <th nzWidth=\"40px\" nzLeft=\"0px\" *ngIf=\"showSelected && selectType !== 'radio'\" nzShowCheckbox\n [(nzChecked)]=\"isAllDisplayDataChecked\" [nzIndeterminate]=\"isIndeterminate\"\n (nzCheckedChange)=\"checkAll($event)\"></th>\n <th nzWidth=\"40px\" nzLeft=\"0px\" *ngIf=\"showSelected && selectType === 'radio'\"></th>\n <th class=\"hd-table-line-no-col\" [nzWidth]=\"lineNumberColWidthPx\" [nzLeft]=\"lineNumberLeft\"\n *ngIf=\"showTableTotal\">\u5E8F\u53F7</th>\n <ng-container *ngFor=\"let col of tableCols\">\n <th *ngIf=\"col.isShow\" [nzWidth]=\"getColDisplayWidth(col) + 'px'\" [nzAlign]=\"col.align\"\n [nzLeft]=\"getLeftSticky(col)\" [nzRight]=\"getRightSticky(col)\" nz-resizable nzBounds=\"window\" nzPreview\n (nzResizeEnd)=\"onResize($event, col)\" [nzShowSort]=\"col.canSort\" [nzSortKey]=\"col.name\"\n [nzSort]=\"getColSort(col)\">\n <span class=\"hd-table-col-title\">\n <span class=\"hd-table-col-require\" *ngIf=\"col.require && col.editType\">*</span>\n <ng-container *ngIf=\"getTitleParts(col) as titleParts; else plainTitle\">\n <span class=\"hd-table-title-with-bar\">{{ titleParts[0] }}<i class=\"hd-table-row-no-bar\"></i>{{\n titleParts[1] }}</span>\n </ng-container>\n <ng-template #plainTitle>{{ col.title }}</ng-template>\n </span>\n <nz-resize-handle nzDirection=\"right\">\n <div class=\"resize-trigger\"></div>\n </nz-resize-handle>\n </th>\n </ng-container>\n </tr>\n </thead>\n <tbody>\n <ng-template *ngIf=\"useVirtualScroll\" nz-virtual-scroll let-data let-index=\"index\">\n <tr class=\"hd-table-virtual-row\" [class.hd-table-row-invalid]=\"isInvalidRow(data)\">\n <ng-container *ngTemplateOutlet=\"tableCells; context: { $implicit: data, index: index }\"></ng-container>\n </tr>\n </ng-template>\n <ng-container *ngIf=\"!useVirtualScroll\">\n <tr *ngFor=\"let data of hdTable.data; trackBy: trackByRow; index as i\"\n [class.hd-table-row-invalid]=\"isInvalidRow(data)\">\n <ng-container *ngTemplateOutlet=\"tableCells; context: { $implicit: data, index: i }\"></ng-container>\n </tr>\n </ng-container>\n </tbody>\n <ng-template #tableTotalTemplate>\n \u5171 {{ getTableTotalCount() }} \u6761\u6570\u636E\n </ng-template>\n <ng-template #tableTotalFooter>\n <!--\n \u5217\u603B\u5BBD < \u5BB9\u5668\uFF1Ascroll.x=\u5BB9\u5668\u5BBD\uFF0C\u5DEE\u989D\u8865\u5230\u6700\u540E\u4E1A\u52A1\u5217\uFF08\u52FE\u9009\u4FDD\u6301 40\uFF09\uFF1B\u53EF\u62D6\u62FD\u3002\n \u5217\u603B\u5BBD > \u5BB9\u5668\uFF1Ascroll.x=\u58F0\u660E\u603B\u5BBD\uFF0C\u6A2A\u6EDA\u540C\u6B65\u3002\n -->\n <div class=\"hd-table-total-footer\" [class.hd-table-total-footer--fluid]=\"isTotalFooterFluid\"\n [class.hd-table-total-footer--y-gutter]=\"totalFooterNeedYGutter\">\n <table class=\"hd-table-total-footer-table\" [style.width]=\"totalFooterTableWidth\">\n <colgroup>\n <!-- \u52FE\u9009/\u5E8F\u53F7\u9501\u5BBD\uFF0C\u4E0D\u53C2\u4E0E\u5747\u644A -->\n <col *ngIf=\"showSelected\" style=\"width: 40px; min-width: 40px; max-width: 40px;\" />\n <col *ngIf=\"showTableTotal\" [style.width.px]=\"lineNumberColWidth\" [style.min-width.px]=\"lineNumberColWidth\"\n [style.max-width.px]=\"lineNumberColWidth\" />\n <ng-container *ngFor=\"let col of tableCols; trackBy: trackByCol\">\n <col *ngIf=\"col.isShow\" [style.width.px]=\"getColDisplayWidth(col)\" />\n </ng-container>\n </colgroup>\n <tr class=\"hd-table-total\">\n <td *ngIf=\"showSelected\" class=\"hd-table-total-footer-cell hd-table-total-footer-select\"\n [class.hd-table-total-footer-sticky-left]=\"!isTotalFooterFluid\" style=\"left: 0;\"> </td>\n <td class=\"hd-table-total-footer-cell hd-table-total-footer-line-no\"\n [class.hd-table-total-footer-sticky-left]=\"!isTotalFooterFluid\"\n [style.left]=\"!isTotalFooterFluid ? lineNumberLeft : null\">\u5408\u8BA1</td>\n <ng-container *ngFor=\"let col of tableCols; let colIndex = index; trackBy: trackByCol\">\n <td *ngIf=\"col.isShow\" class=\"hd-table-total-footer-cell\"\n [class.hd-table-total-footer-sticky-left]=\"!isTotalFooterFluid && col.fixed === 'left'\"\n [class.hd-table-total-footer-sticky-right]=\"!isTotalFooterFluid && col.fixed === 'right'\"\n [class.hd-table-total-align-left]=\"getTableTotalCellAlign(col, colIndex) === 'left'\"\n [class.hd-table-total-align-center]=\"getTableTotalCellAlign(col, colIndex) === 'center'\"\n [class.hd-table-total-align-right]=\"getTableTotalCellAlign(col, colIndex) === 'right'\"\n [style.left]=\"!isTotalFooterFluid && col.fixed === 'left' ? (col.fixedWidth || 0) + 'px' : null\"\n [style.right]=\"!isTotalFooterFluid && col.fixed === 'right' ? (col.fixedRightWidth || 0) + 'px' : null\"\n [ngStyle]=\"{'text-align': getTableTotalCellAlign(col, colIndex)}\">\n {{ getTableTotalCellValue(col, colIndex) }}\n </td>\n </ng-container>\n </tr>\n </table>\n </div>\n </ng-template>\n </nz-table>\n</ng-container>\n\n<ng-template #tableCells let-data let-index=\"index\">\n <td nzWidth=\"40px\" nzLeft=\"0px\" *ngIf=\"showSelected && selectType !== 'radio'\" nzShowCheckbox\n [nzChecked]=\"mapOfCheckedId[data[selectField]]\" [nzDisabled]=\"isSelectDisabled(data)\"\n (nzCheckedChange)=\"refreshStatus($event, data)\"></td>\n <td nzWidth=\"40px\" nzLeft=\"0px\" class=\"hd-table-select-radio\" *ngIf=\"showSelected && selectType === 'radio'\">\n <label nz-radio [nzDisabled]=\"isSelectDisabled(data)\" [ngModel]=\"!!mapOfCheckedId[data[selectField]]\"\n (ngModelChange)=\"onRadioSelect($event, data)\"></label>\n </td>\n <td class=\"hd-table-line-no-col\" [nzWidth]=\"lineNumberColWidthPx\" [nzLeft]=\"lineNumberLeft\" *ngIf=\"showTableTotal\">{{\n getLineNumber(index) }}</td>\n <ng-container *ngFor=\"let col of tableCols; trackBy: trackByCol\">\n <td *ngIf=\"col.isShow\" [style.max-width.px]=\"getColDisplayWidth(col)\" [nzAlign]=\"col.align\"\n [nzLeft]=\"getLeftSticky(col)\" [nzRight]=\"getRightSticky(col)\"\n [ngClass]=\"(col.canWarp && showDetail) ? 'common-td-wrap' : ''\">\n <ng-container *ngIf=\"col.title === '\u64CD\u4F5C';else notOperateTemplate\">\n <div class=\"common-btn-group\">\n <ng-container *ngFor=\"let btn of col.btnList\">\n <ng-container *ngIf=\"!needShowConfirm(btn, data);else showConfirmTemplate\">\n <a *ngIf=\"btn.permission ? btn.permission(data) : true\"\n [class]=\"isDangerBtn(btn, data) ? 'common-danger-btn': ''\"\n (click)=\"triggerEvent(btn.click || null, data)\">{{ getBtnName(btn, data) }}</a>\n </ng-container>\n <ng-template #showConfirmTemplate>\n <a *ngIf=\"btn.permission ? btn.permission(data) : true\"\n [class]=\"isDangerBtn(btn, data) ? 'common-danger-btn': ''\" nz-popconfirm\n [nzPopconfirmTitle]=\"'\u786E\u8BA4\u8981' + getBtnName(btn, data) + '\u5417?'\"\n (nzOnConfirm)=\"triggerEvent(btn.click || null, data)\">{{\n getBtnName(btn, data) }}</a>\n </ng-template>\n </ng-container>\n </div>\n </ng-container>\n <ng-template #notOperateTemplate>\n <ng-container *ngIf=\"hasInlineEdit(col); else displayCellTpl\">\n <div class=\"hd-table-cell-edit\">\n <ng-container [ngSwitch]=\"col.editType\">\n <input *ngSwitchCase=\"'input'\" nz-input class=\"hd-table-cell-edit-control\"\n [placeholder]=\"col.placeholder || ''\" [disabled]=\"isEditDisabled(col, data)\" [ngModel]=\"data[col.name]\"\n (ngModelChange)=\"onCellChange(col, data, $event)\" />\n <nz-input-number *ngSwitchCase=\"'inputNumber'\" class=\"hd-table-cell-edit-control\"\n [nzPlaceHolder]=\"col.placeholder || ''\" [nzDisabled]=\"isEditDisabled(col, data)\"\n [nzMin]=\"getInputNumberProp(col, 'min', 0)\" [nzMax]=\"getInputNumberProp(col, 'max', 99999999)\"\n [nzStep]=\"getInputNumberProp(col, 'step', 1)\" [nzPrecision]=\"getInputNumberProp(col, 'precision', 4)\"\n [ngModel]=\"data[col.name]\" (ngModelChange)=\"onCellChange(col, data, $event)\">\n </nz-input-number>\n <nz-select *ngSwitchCase=\"'select'\" class=\"hd-table-cell-edit-control\"\n [nzPlaceHolder]=\"col.placeholder || '\u8BF7\u9009\u62E9'\" [nzDisabled]=\"isEditDisabled(col, data)\"\n [nzAllowClear]=\"col.selectOption && col.selectOption.hdAllowClear !== false\"\n [nzShowSearch]=\"!col.selectOption || col.selectOption.hdShowSearch !== false\"\n [nzServerSearch]=\"!!(col.selectOption && col.selectOption.hdServerSearch)\" [ngModel]=\"data[col.name]\"\n (ngModelChange)=\"onSelectChange(col, data, $event)\"\n (nzOpenChange)=\"onSelectOpenChange(col, data, $event)\" (nzOnSearch)=\"onSelectSearch(col, data, $event)\">\n <nz-option *ngFor=\"let selectItem of getSelectList(col, data)\"\n [nzValue]=\"selectItem[col.selectOption.value]\" [nzLabel]=\"getSelectOptionLabel(col, selectItem)\">\n </nz-option>\n </nz-select>\n <nz-date-picker *ngSwitchCase=\"'date'\" class=\"hd-table-cell-edit-control\"\n [nzPlaceHolder]=\"col.placeholder || '\u8BF7\u9009\u62E9\u65E5\u671F'\" [nzDisabled]=\"isEditDisabled(col, data)\"\n [nzDisabledDate]=\"getDisabledDate(col)\" [nzShowToday]=\"isDateShowToday(col)\"\n [nzShowTime]=\"isDateShowTime(col)\" [nzFormat]=\"getDateFormat(col, false)\" [ngModel]=\"data[col.name]\"\n (ngModelChange)=\"onCellChange(col, data, $event)\">\n </nz-date-picker>\n <nz-range-picker *ngSwitchCase=\"'dateRange'\" class=\"hd-table-cell-edit-control\"\n [nzPlaceHolder]=\"getRangePlaceholder(col)\" [nzDisabled]=\"isEditDisabled(col, data)\"\n [nzDisabledDate]=\"getDisabledDate(col)\" [nzFormat]=\"getDateFormat(col, true)\" [ngModel]=\"data[col.name]\"\n (ngModelChange)=\"onCellChange(col, data, $event)\">\n </nz-range-picker>\n </ng-container>\n </div>\n </ng-container>\n <ng-template #displayCellTpl>\n <div [class.hd-table-cell-with-actions]=\"col.btnList && col.btnList.length\">\n <div class=\"hd-table-cell-value\" [class.hd-table-cell-value--rowno]=\"hasRowNo(col)\"\n [class.hd-table-cell-value--edit]=\"isEditable(col, data)\">\n <ng-container *ngIf=\"col.name === 'state' || col.isState;else otherTemplate\">\n <hd-status [status]=\"data[getStateField(col)]\">\n <ng-container *ngIf=\"(data | hdTableCell:col) as cell\">\n <span *ngIf=\"cell.overflow && !(col.canWarp && showDetail)\" class=\"hd-table-cell-ellipsis\"\n nz-tooltip [nzTooltipTitle]=\"cell.title\">{{ cell.display }}</span>\n <span *ngIf=\"!cell.overflow || (col.canWarp && showDetail)\">{{ cell.display }}</span>\n </ng-container>\n </hd-status>\n </ng-container>\n <ng-template #otherTemplate>\n <ng-container *ngIf=\"col.click && (!col.canClick || col.canClick(data));else noClickTemplate\">\n <ng-container *ngIf=\"(data | hdTableCell:col) as cell\">\n <a *ngIf=\"cell.overflow && !(col.canWarp && showDetail)\" class=\"hd-table-cell-ellipsis\" nz-tooltip\n [nzTooltipTitle]=\"cell.title\" [ngStyle]=\"{'color': getLinkCellColor(col, data, cell.isEmpty)}\"\n (click)=\"triggerEvent(col.click || null, data)\">{{ cell.display }}</a>\n <a *ngIf=\"!cell.overflow || (col.canWarp && showDetail)\"\n [ngStyle]=\"{'color': getLinkCellColor(col, data, cell.isEmpty)}\"\n (click)=\"triggerEvent(col.click || null, data)\">{{ cell.display }}</a>\n </ng-container>\n </ng-container>\n <ng-template #noClickTemplate>\n <ng-container *ngIf=\"(data | hdTableCell:col) as cell\">\n <span *ngIf=\"cell.overflow && !(col.canWarp && showDetail)\" class=\"hd-table-cell-ellipsis\"\n nz-tooltip [nzTooltipTitle]=\"cell.title\" [ngStyle]=\"{'color': getPlainCellColor(col, data)}\">{{\n cell.display }}</span>\n <span *ngIf=\"!cell.overflow || (col.canWarp && showDetail)\"\n [ngStyle]=\"{'color': getPlainCellColor(col, data)}\">{{ cell.display }}</span>\n </ng-container>\n </ng-template>\n </ng-template>\n <span class=\"hd-table-row-no\" *ngIf=\"hasRowNo(col) && getRowNoText(col, data, index)\">\n <i class=\"hd-table-row-no-bar\"></i>{{ getRowNoText(col, data, index) }}\n </span>\n <a *ngIf=\"isEditable(col, data)\" class=\"hd-table-edit-icon\" href=\"javascript:;\" title=\"\u7F16\u8F91\"\n (click)=\"onEditClick($event, col, data)\">\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\">\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n d=\"M8.10797 1.42626C8.44968 1.08456 9.0037 1.08456 9.34541 1.42626L10.9746 3.05542C11.3163 3.39713 11.3163 3.95115 10.9746 4.29286L5.01002 10.2574C4.87077 10.3967 4.68863 10.4849 4.49305 10.5078L2.72936 10.7142C2.18281 10.7782 1.71357 10.3278 1.7551 9.77914L1.89441 7.93871C1.9102 7.73007 2.00024 7.53399 2.14819 7.38604L8.10797 1.42626ZM7.67304 3.51111L8.88972 4.72779L9.94337 3.67414L8.72669 2.45746L7.67304 3.51111ZM8.06477 5.55274L6.84808 4.33606L3.04959 8.13456L2.94515 9.51434L4.25672 9.36079L8.06477 5.55274ZM12.25 12.8333L1.75 12.8333V11.6666L12.25 11.6666V12.8333Z\"\n fill=\"currentColor\" />\n </svg>\n </a>\n </div>\n <div class=\"common-btn-group hd-table-cell-actions\" *ngIf=\"col.btnList && col.btnList.length\">\n <ng-container *ngFor=\"let btn of col.btnList\">\n <ng-container *ngIf=\"!needShowConfirm(btn, data);else cellActionConfirmTpl\">\n <a *ngIf=\"btn.permission ? btn.permission(data) : true\"\n [class]=\"isDangerBtn(btn, data) ? 'common-danger-btn': ''\"\n (click)=\"triggerEvent(btn.click || null, data)\">{{ getBtnName(btn, data) }}</a>\n </ng-container>\n <ng-template #cellActionConfirmTpl>\n <a *ngIf=\"btn.permission ? btn.permission(data) : true\"\n [class]=\"isDangerBtn(btn, data) ? 'common-danger-btn': ''\" nz-popconfirm\n [nzPopconfirmTitle]=\"'\u786E\u8BA4\u8981' + getBtnName(btn, data) + '\u5417?'\"\n (nzOnConfirm)=\"triggerEvent(btn.click || null, data)\">{{\n getBtnName(btn, data) }}</a>\n </ng-template>\n </ng-container>\n </div>\n </div>\n </ng-template>\n </ng-template>\n </td>\n </ng-container>\n</ng-template>",
|
|
14424
14540
|
changeDetection: core.ChangeDetectionStrategy.OnPush,
|
|
14425
14541
|
styles: ["::ng-deep .common-btn-group>a{font-size:14px;font-weight:400;color:#20b95d!important;white-space:nowrap}::ng-deep .common-btn-group .common-danger-btn:hover{color:#f05b24!important}::ng-deep .common-btn-group>a:hover{color:#20bd62!important}::ng-deep .common-btn-group>a:not(:last-child)::after{content:'';margin:0 2px}::ng-deep .common-billNumber>a{color:#3b77e3}button{box-shadow:unset;text-shadow:unset;padding:0 6px!important}::ng-deep .ant-form-item-label>label{color:#4b504e;font-size:14px}::ng-deep .ant-input-number-input{height:32px}::ng-deep .ant-input-number{height:32px}textarea.ant-input{height:auto;min-height:32px}::ng-deep .ant-select-selection--multiple{min-height:32px}::ng-deep .ant-select-selection--multiple .ant-select-selection__rendered>ul>li.ant-select-search--inline:only-child{margin-left:4px}::ng-deep .ant-select-selection__rendered>ul>li{height:26px!important;margin-top:3px!important;line-height:26px!important}::ng-deep .ant-advanced-search-form .ant-form-item{margin-bottom:0!important}::ng-deep .ant-select-selection--single{height:32px!important}::ng-deep .ant-input{height:32px}::ng-deep .ant-input[disabled]:hover{border-color:#d9d9d9!important}::ng-deep .ant-select-selection__rendered{line-height:32px!important}::ng-deep .ant-calendar-range-picker-input{text-align:left!important}::ng-deep .ant-calendar-picker{width:100%!important}::ng-deep .ant-row{margin-right:0!important;margin-left:0!important}::ng-deep .ant-col-6{padding-left:12px;padding-right:12px}::ng-deep .ant-col-12{padding-left:12px;padding-right:12px}::ng-deep .ant-col-18{padding-left:12px;padding-right:12px}::ng-deep .ant-col-24{padding-left:12px;padding-right:12px}::ng-deep .ant-alert-info{background-color:#f5f8f6;border:1px solid #cfe3d4}::ng-deep .hd-table-container .ant-table-td-left-sticky,::ng-deep .hd-table-container .ant-table-td-right-sticky,::ng-deep .hd-table-container .ant-table-th-left-sticky,::ng-deep .hd-table-container .ant-table-th-right-sticky{z-index:2;transform:translateZ(0)}::ng-deep .hd-table-container .ant-table-thead>tr>th.ant-table-th-left-sticky,::ng-deep .hd-table-container .ant-table-thead>tr>th.ant-table-th-right-sticky{background:#f5f8f6!important}::ng-deep .hd-table-container .ant-table-tbody>tr>td.ant-table-td-left-sticky,::ng-deep .hd-table-container .ant-table-tbody>tr>td.ant-table-td-right-sticky{background:#fff}::ng-deep .hd-table-container .ant-table-tbody>tr.ant-table-row-hover>td.ant-table-td-left-sticky,::ng-deep .hd-table-container .ant-table-tbody>tr.ant-table-row-hover>td.ant-table-td-right-sticky,::ng-deep .hd-table-container .ant-table-tbody>tr:hover>td.ant-table-td-left-sticky,::ng-deep .hd-table-container .ant-table-tbody>tr:hover>td.ant-table-td-right-sticky{background:#ecf8f1!important}::ng-deep .hd-table-container .ant-table-scroll-position-left .ant-table-td-right-sticky,::ng-deep .hd-table-container .ant-table-scroll-position-left .ant-table-th-right-sticky,::ng-deep .hd-table-container .ant-table-scroll-position-middle .ant-table-td-right-sticky,::ng-deep .hd-table-container .ant-table-scroll-position-middle .ant-table-th-right-sticky,::ng-deep .hd-table-container .ant-table-scroll-position-right .ant-table-td-right-sticky,::ng-deep .hd-table-container .ant-table-scroll-position-right .ant-table-th-right-sticky{box-shadow:none!important}::ng-deep .hd-table-container .ant-table-fixed-right{right:0!important}:host ::ng-deep th{background:#f5f8f6!important;font-weight:700!important;white-space:nowrap;font-size:14px;font-family:PingFangSC-Medium,PingFang SC;color:#2a3634;padding:8px!important;box-sizing:border-box}:host ::ng-deep td{font-weight:400;font-style:normal;font-size:14px;color:#2a3634;text-align:left;white-space:nowrap;padding:8px!important;box-sizing:border-box}::ng-deep .ant-pagination-options{display:inline-flex;align-items:center}::ng-deep .ant-pagination-options .ant-select,::ng-deep .ant-pagination-options .ant-select-selection--single{min-width:100px}::ng-deep .ant-pagination-options-size-changer.ant-select{min-width:100px}::ng-deep .ant-time-picker{width:100%}::ng-deep .cdk-overlay-pane .hd-cascader-menus.ant-cascader-menus>.ant-cascader-menu:only-child{width:-webkit-max-content!important;width:-moz-max-content!important;width:max-content!important;min-width:var(--hd-cascader-menu-min-width,auto);max-width:560px}::ng-deep .cdk-overlay-pane .hd-cascader-menus.ant-cascader-menus>.ant-cascader-menu:only-child .ant-cascader-menu-item{white-space:nowrap}.ant-input-number-disabled,.ant-input[disabled],.ant-select-disabled{color:#4b504e}.nz-resizable-preview{position:absolute;top:0;left:0;z-index:8;border:1px dashed #d1d1d1}.nz-resizable-handle{position:absolute;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:9}.nz-resizable-handle-top{width:100%;height:10px;top:-5px;left:0}.nz-resizable-handle-right{height:100%}.nz-resizable-handle-bottom{width:100%;height:10px;bottom:-5px;left:0}.nz-resizable-handle-left{width:10px;height:100%;top:0;left:-5px}.nz-resizable-handle-topRight{width:20px;height:20px;top:-5px;right:-5px;z-index:10}.nz-resizable-handle-bottomRight{width:20px;height:20px;right:-5px;bottom:-5px;z-index:10}.nz-resizable-handle-bottomLeft{width:20px;height:20px;bottom:-5px;left:-5px;z-index:10}.nz-resizable-handle-topLeft{width:20px;height:20px;top:-5px;left:-5px;z-index:10}.nz-resizable:not(.nz-resizable-resizing) .nz-resizable-handle-bottom,.nz-resizable:not(.nz-resizable-resizing) .nz-resizable-handle-top{cursor:row-resize}.nz-resizable:not(.nz-resizable-resizing) .nz-resizable-handle-left,.nz-resizable:not(.nz-resizable-resizing) .nz-resizable-handle-right{cursor:col-resize}.nz-resizable:not(.nz-resizable-resizing) .nz-resizable-handle-bottomRight,.nz-resizable:not(.nz-resizable-resizing) .nz-resizable-handle-topLeft{cursor:nwse-resize}.nz-resizable:not(.nz-resizable-resizing) .nz-resizable-handle-bottomLeft,.nz-resizable:not(.nz-resizable-resizing) .nz-resizable-handle-topRight{cursor:nesw-resize}.hd-table-col-settings{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;width:32px;height:32px;padding:0;margin-left:12px;cursor:pointer;color:#2a3634;background:0 0;border:1px solid #e5e6eb;border-radius:4px;vertical-align:middle;flex-shrink:0}.hd-table-col-settings:hover{color:#20b95d;background:#f5f8f6;border-color:#20b95d}.hd-table-col-settings .hd-table-col-settings-icon{display:block;width:14px;height:14px;flex-shrink:0}.hd-table-cell-with-actions{display:inline-flex;flex-wrap:wrap;align-items:center;-moz-column-gap:12px;column-gap:12px;row-gap:6px;max-width:100%}.hd-table-cell-with-actions .hd-table-cell-value{min-width:0}.hd-table-cell-with-actions .hd-table-cell-actions{flex-shrink:0}.hd-table-col-settings-dropdown{background:#fff;border:1px solid #e5e6eb;border-radius:4px;box-shadow:0 6px 16px rgba(0,0,0,.08),0 3px 6px rgba(0,0,0,.06);overflow:hidden}.hd-table-col-settings-list{max-height:400px;overflow-y:auto}.hd-table-col-settings-footer{text-align:right;background:#fff;padding:4px;border-top:1px solid #f0f0f0}.hd-table-container ::ng-deep .ant-pagination-options-quick-jumper input{border-radius:2px;border:1px solid #d9d9d9}.hd-table-container ::ng-deep .ant-pagination-options .ant-select-selection{border-radius:2px}.hd-table-container ::ng-deep .ant-table-thead>tr>th{border-bottom:1px solid #ecf1ed;white-space:nowrap;text-overflow:ellipsis}.hd-table-container ::ng-deep .ant-table-tbody>tr>td{border-bottom:1px solid #ecf1ed;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.hd-table-container ::ng-deep .ant-table-tbody>tr>td.hd-table-line-no-col,.hd-table-container ::ng-deep .ant-table-thead>tr>th.hd-table-line-no-col{width:72px!important;min-width:72px!important;max-width:72px!important;box-sizing:border-box}.hd-table-container ::ng-deep .ant-table-tbody>tr>td.ant-table-selection-column,.hd-table-container ::ng-deep .ant-table-thead>tr>th.ant-table-selection-column{width:40px!important;min-width:40px!important;max-width:40px!important;box-sizing:border-box;padding-left:8px!important;padding-right:8px!important}.hd-table-container .hd-table-cell-value--edit,.hd-table-container .hd-table-cell-value--rowno{display:inline-flex;align-items:center;min-width:0}.hd-table-container .hd-table-cell-value--edit>a:not(.hd-table-edit-icon),.hd-table-container .hd-table-cell-value--edit>hd-status,.hd-table-container .hd-table-cell-value--edit>span:not(.hd-table-row-no),.hd-table-container .hd-table-cell-value--rowno>a:not(.hd-table-edit-icon),.hd-table-container .hd-table-cell-value--rowno>hd-status,.hd-table-container .hd-table-cell-value--rowno>span:not(.hd-table-row-no){min-width:0}.hd-table-container .hd-table-row-no{display:inline-flex;flex-shrink:0;align-items:center;margin-left:4px;color:#1d1f29;font-size:14px;line-height:22px}.hd-table-container .hd-table-row-no-bar{display:inline-block;flex:0 0 auto;align-self:center;width:1px;height:14px;margin-right:4px;background:#1d1f29;vertical-align:middle}.hd-table-container .hd-table-edit-icon{display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;margin-left:2px;width:14px;height:14px;color:#20b95d;line-height:1;cursor:pointer}.hd-table-container .hd-table-edit-icon:hover{color:#20bd62}.hd-table-container .hd-table-edit-icon svg{display:block;width:14px;height:14px}.hd-table-container .hd-table-col-title{display:inline-flex;align-items:center}.hd-table-container .hd-table-col-require{margin-right:4px;color:#f5222d;font-family:SimSun,sans-serif}.hd-table-container .hd-table-title-with-bar{display:inline-flex;align-items:center}.hd-table-container .hd-table-title-with-bar .hd-table-row-no-bar{width:1px;height:14px;margin:0 4px;align-self:center}.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid.ant-table-row-hover>td,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid.ant-table-row-hover>td.ant-table-td-left-sticky,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid.ant-table-row-hover>td.ant-table-td-right-sticky,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid:hover>td,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid:hover>td.ant-table-td-left-sticky,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid:hover>td.ant-table-td-right-sticky,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid>td,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid>td.ant-table-td-left-sticky,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid>td.ant-table-td-right-sticky{background:#f7f8fa!important;color:#868a9c!important}.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid .common-btn-group>a{color:#20b95d!important}.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid .common-btn-group>a:hover{color:#20bd62!important}.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid .common-btn-group .common-danger-btn:hover{color:#f05b24!important}.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid .hd-table-cell-value>a{color:#20b95d}.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid .common-billNumber>a{color:#3b77e3}.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid .hd-status-text{color:#868a9c!important}.hd-table-container ::ng-deep cdk-virtual-scroll-viewport.ant-table-body .hd-table-virtual-row>td{box-sizing:border-box}.hd-table-container.hd-table--scroll-x ::ng-deep .ant-table-body>table,.hd-table-container.hd-table--scroll-x ::ng-deep .ant-table-header>table,.hd-table-container.hd-table--scroll-x ::ng-deep .cdk-virtual-scroll-content-wrapper>table{table-layout:fixed}.hd-table-container:not(.hd-table--scroll-y):not(.hd-table--scroll-x) ::ng-deep .ant-table-body{max-height:none!important;overflow-y:visible!important}.hd-table-container.hd-table--scroll-x:not(.hd-table--scroll-y) ::ng-deep .ant-table-body{overflow-y:hidden!important}.hd-table-container.hd-table--fluid-x ::ng-deep .ant-table-body{overflow-x:hidden!important}.hd-table-container.hd-table--fluid-x.hd-table--scroll-y ::ng-deep .ant-table-header{margin-bottom:0!important;padding-bottom:0!important;overflow-x:hidden!important}.hd-table-container.hd-table--has-total ::ng-deep .ant-table-footer{padding:0;overflow:hidden;background:#fafafa;border-top:1px solid #e8e8e8}.hd-table-total-footer{width:100%;box-sizing:border-box;overflow-x:auto;overflow-y:hidden;background:#fafafa;scrollbar-width:thin;scrollbar-color:transparent transparent}.hd-table-total-footer::-webkit-scrollbar{width:12px;height:0}.hd-table-total-footer::-webkit-scrollbar-track{background:0 0}.hd-table-total-footer::-webkit-scrollbar-thumb{background:padding-box;border:4px solid transparent}.hd-table-total-footer::-webkit-scrollbar-corner{background:0 0}.hd-table-total-footer.hd-table-total-footer--y-gutter{overflow-y:scroll}.hd-table-total-footer.hd-table-total-footer--fluid{overflow-x:hidden}.hd-table-total-footer-table{table-layout:fixed;border-collapse:separate;border-spacing:0}.hd-table-total-footer-cell{padding:12px 8px;font-weight:500;background:#fafafa;box-sizing:border-box;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-bottom:0}.hd-table-total-footer-cell.hd-table-total-align-left{text-align:left!important}.hd-table-total-footer-cell.hd-table-total-align-center{text-align:center!important}.hd-table-total-footer-cell.hd-table-total-align-right{text-align:right!important}.hd-table-select-radio{text-align:center}.hd-table-select-radio ::ng-deep .ant-radio-wrapper{margin-right:0}.hd-table-total-footer-select{width:40px;min-width:40px;max-width:40px;padding-left:8px;padding-right:8px;text-align:center}.hd-table-total-footer-line-no{width:72px;min-width:72px;max-width:72px}.hd-table-total-footer-sticky-left,.hd-table-total-footer-sticky-right{position:-webkit-sticky;position:sticky;z-index:2;background:#fafafa}::ng-deep .ant-dropdown-menu{border-radius:0}::ng-deep .ant-dropdown{margin-top:8px!important}.common-td-wrap{white-space:normal!important;word-break:break-all}.hd-table-cell-ellipsis{display:block;max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.nz-resizable-preview{border-width:0 1px 0 0}.resize-trigger{width:10px;height:15px;position:relative;top:calc((100% - 15px)/ 2)}.resize-trigger::after{position:absolute;top:calc((100% - 15px)/ 2);left:0;background:#d5d5d5;content:'';width:1px;height:15px;z-index:1}.nz-resizable-handle-right{position:absolute;width:10px;top:0;right:-5px;z-index:inherit}::ng-deep .ant-table-th-right-sticky .nz-resizable-handle-right{right:0}.hd-table-tree-node{display:inline-flex;align-items:center;padding-right:10px}.hd-table-tree-node .hd-table-tree-node-img{display:flex;flex-direction:column;position:absolute;right:0;margin-top:-2.5px}.hd-table-tree-node .hd-table-tree-node-img i{opacity:.3}.hd-table-tree-node .hd-table-tree-node-img i:last-child{margin-top:-5px}img{width:20px;height:20px}.ant-table-th-left-sticky{z-index:2}::ng-deep .ant-table-thead>tr>th .ant-table-header-column .ant-table-column-sorters>:not(.ant-table-column-sorter){position:unset}.hd-table-cell-edit{width:100%;min-width:0}.hd-table-cell-edit-control{width:100%!important}::ng-deep .hd-table-cell-edit .ant-calendar-picker,::ng-deep .hd-table-cell-edit .ant-input,::ng-deep .hd-table-cell-edit .ant-input-number,::ng-deep .hd-table-cell-edit .ant-select{width:100%}::ng-deep .hd-table-cell-edit .ant-input,::ng-deep .hd-table-cell-edit .ant-input-number,::ng-deep .hd-table-cell-edit .ant-select-selection{height:32px}::ng-deep .hd-table-cell-edit .ant-input-number-input{height:30px}::ng-deep .hd-table-cell-edit .ant-select-selection__rendered{line-height:30px}"]
|
|
14426
14542
|
}] }
|
|
@@ -14658,24 +14774,22 @@
|
|
|
14658
14774
|
*/
|
|
14659
14775
|
HdTableComponent.prototype.virtualScrollActive;
|
|
14660
14776
|
/**
|
|
14661
|
-
*
|
|
14777
|
+
* 实际渲染列宽合计(含勾选/序号 + 补宽),合计 footer 表宽用
|
|
14662
14778
|
* @type {?}
|
|
14663
14779
|
*/
|
|
14664
14780
|
HdTableComponent.prototype.tableColWidthTotal;
|
|
14665
14781
|
/**
|
|
14666
|
-
*
|
|
14667
|
-
* 并设 scroll.x = 容器宽,避免表宽 100% 均摊撑开勾选列;拖拽改宽仍写 col.width。
|
|
14782
|
+
* 补到 fluidExtraTargetCol 上的宽度;只影响展示,不写回 col.width(列宽缓存、拖拽仍用声明宽)
|
|
14668
14783
|
* @type {?}
|
|
14669
14784
|
*/
|
|
14670
14785
|
HdTableComponent.prototype.fluidExtraWidth;
|
|
14671
14786
|
/**
|
|
14672
|
-
*
|
|
14673
|
-
* 用于关掉 ng-zorro fixed-header 带来的常驻 X 轴滚动条。
|
|
14787
|
+
* 列少、靠补宽吃满容器:模板据此加 hd-table--fluid-x,隐藏 fixed-header 常驻的横滚槽
|
|
14674
14788
|
* @type {?}
|
|
14675
14789
|
*/
|
|
14676
14790
|
HdTableComponent.prototype.fluidHorizontal;
|
|
14677
14791
|
/**
|
|
14678
|
-
*
|
|
14792
|
+
* 接收补宽的列,缓存起来避免模板每个单元格都扫一遍 tableCols
|
|
14679
14793
|
* @type {?}
|
|
14680
14794
|
* @private
|
|
14681
14795
|
*/
|