fantasy-ngzorro 2.1.65 → 2.1.66
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 +1 -0
- package/bundles/fantasy-ngzorro.umd.js +192 -59
- package/bundles/fantasy-ngzorro.umd.js.map +1 -1
- package/bundles/fantasy-ngzorro.umd.min.js +2 -2
- package/bundles/fantasy-ngzorro.umd.min.js.map +1 -1
- package/esm2015/hd-detail-lines/hd-detail-lines.component.js +32 -51
- package/esm2015/hd-detail-lines-page/hd-detail-lines-page.component.js +62 -9
- package/esm2015/utils/hd-table-scroll.util.js +82 -1
- package/esm5/hd-detail-lines/hd-detail-lines.component.js +37 -54
- package/esm5/hd-detail-lines-page/hd-detail-lines-page.component.js +78 -9
- package/esm5/utils/hd-table-scroll.util.js +82 -1
- package/fantasy-ngzorro.metadata.json +1 -1
- package/fesm2015/fantasy-ngzorro.js +171 -56
- package/fesm2015/fantasy-ngzorro.js.map +1 -1
- package/fesm5/fantasy-ngzorro.js +192 -59
- package/fesm5/fantasy-ngzorro.js.map +1 -1
- package/hd-detail-lines/hd-detail-lines.component.d.ts +2 -2
- package/hd-detail-lines-page/hd-detail-lines-page.component.d.ts +7 -2
- package/package.json +2 -2
- package/utils/hd-table-scroll.util.d.ts +12 -0
package/README.md
CHANGED
|
@@ -42,6 +42,7 @@
|
|
|
42
42
|
| — | 2026-9-22 | `hd-tip` 支持右侧展开/收起(`showCollapse` / `[(expanded)]`),暴露 `expand` / `collapse` / `toggle` 供父组件控制其它区块 |
|
|
43
43
|
| — | 2026-9-22 | `hd-form-lines` 勾选提示改为 `tableTotal` 插槽(同 hd-table),组件内不再默认渲染已选中块 |
|
|
44
44
|
| — | 2026-9-22 | `hd-table` / `hd-detail-form` 字段值后支持编辑笔图标(`editable` + `edit` 回调,图标对齐 Figma) |
|
|
45
|
+
| — | 2026-9-24 | `hd-detail-lines` / `hd-detail-lines-page`:横滚时加固表头/表体 `scrollLeft` 同步与 `table-layout: fixed`,修复列名与列值不对齐 |
|
|
45
46
|
| — | 2026-9-24 | `hd-detail-lines`:补 `scroll.y` 后重建表格并同步表头横滚,修复列头不跟随左右滚动 |
|
|
46
47
|
| — | 2026-9-24 | `hd-detail-lines` / `hd-detail-lines-page`:自动或仅传 `scroll.x` 时补 `scroll.y`,修复窄屏下无法纵向滚动 |
|
|
47
48
|
| — | 2026-9-22 | `hd-table` 支持 `pagination` / `frontPagination`:全量 `content` 可「不分页展示」或「前端切片分页」,列表默认仍为服务端分页 |
|
|
@@ -1505,6 +1505,87 @@
|
|
|
1505
1505
|
return { x: Math.ceil(width) + "px" };
|
|
1506
1506
|
}
|
|
1507
1507
|
return null;
|
|
1508
|
+
}
|
|
1509
|
+
/**
|
|
1510
|
+
* 取 ng-zorro 分体表头 / 表体滚动容器(含虚拟滚动)
|
|
1511
|
+
* @param {?} nzTable
|
|
1512
|
+
* @return {?}
|
|
1513
|
+
*/
|
|
1514
|
+
function getNzTableScrollElements(nzTable) {
|
|
1515
|
+
if (!nzTable) {
|
|
1516
|
+
return { header: null, body: null };
|
|
1517
|
+
}
|
|
1518
|
+
/** @type {?} */
|
|
1519
|
+
var nz = (/** @type {?} */ (nzTable));
|
|
1520
|
+
/** @type {?} */
|
|
1521
|
+
var header = ((/** @type {?} */ (nz.tableHeaderNativeElement))) || null;
|
|
1522
|
+
/** @type {?} */
|
|
1523
|
+
var body = ((/** @type {?} */ (nz.mixTableBodyNativeElement))) ||
|
|
1524
|
+
((/** @type {?} */ (nz.tableBodyNativeElement))) ||
|
|
1525
|
+
null;
|
|
1526
|
+
/** @type {?} */
|
|
1527
|
+
var main = nz.tableMainElement &&
|
|
1528
|
+
((/** @type {?} */ (nz.tableMainElement.nativeElement)));
|
|
1529
|
+
if (main) {
|
|
1530
|
+
if (!header) {
|
|
1531
|
+
header = (/** @type {?} */ (main.querySelector(".ant-table-header")));
|
|
1532
|
+
}
|
|
1533
|
+
if (!body) {
|
|
1534
|
+
body =
|
|
1535
|
+
((/** @type {?} */ (main.querySelector("cdk-virtual-scroll-viewport.ant-table-body")))) ||
|
|
1536
|
+
((/** @type {?} */ (main.querySelector(".ant-table-body"))));
|
|
1537
|
+
}
|
|
1538
|
+
}
|
|
1539
|
+
return { header: header, body: body };
|
|
1540
|
+
}
|
|
1541
|
+
/**
|
|
1542
|
+
* 一次性把表体 scrollLeft 同步到表头
|
|
1543
|
+
* @param {?} nzTable
|
|
1544
|
+
* @return {?}
|
|
1545
|
+
*/
|
|
1546
|
+
function syncNzTableHeaderBodyScrollLeft(nzTable) {
|
|
1547
|
+
/** @type {?} */
|
|
1548
|
+
var els = getNzTableScrollElements(nzTable);
|
|
1549
|
+
if (!els.header || !els.body) {
|
|
1550
|
+
return;
|
|
1551
|
+
}
|
|
1552
|
+
if (els.header.scrollLeft !== els.body.scrollLeft) {
|
|
1553
|
+
els.header.scrollLeft = els.body.scrollLeft;
|
|
1554
|
+
}
|
|
1555
|
+
}
|
|
1556
|
+
/**
|
|
1557
|
+
* 监听表体横向滚动并同步表头。
|
|
1558
|
+
* 返回 unbind;DOM 未就绪时返回 null(调用方可重试)。
|
|
1559
|
+
* @param {?} nzTable
|
|
1560
|
+
* @return {?}
|
|
1561
|
+
*/
|
|
1562
|
+
function bindNzTableHeaderBodyScrollSync(nzTable) {
|
|
1563
|
+
/** @type {?} */
|
|
1564
|
+
var els = getNzTableScrollElements(nzTable);
|
|
1565
|
+
if (!els.header || !els.body) {
|
|
1566
|
+
return null;
|
|
1567
|
+
}
|
|
1568
|
+
/** @type {?} */
|
|
1569
|
+
var header = els.header;
|
|
1570
|
+
/** @type {?} */
|
|
1571
|
+
var body = els.body;
|
|
1572
|
+
/** @type {?} */
|
|
1573
|
+
var onScroll = (/**
|
|
1574
|
+
* @return {?}
|
|
1575
|
+
*/
|
|
1576
|
+
function () {
|
|
1577
|
+
if (header.scrollLeft !== body.scrollLeft) {
|
|
1578
|
+
header.scrollLeft = body.scrollLeft;
|
|
1579
|
+
}
|
|
1580
|
+
});
|
|
1581
|
+
body.addEventListener("scroll", onScroll);
|
|
1582
|
+
onScroll();
|
|
1583
|
+
return (/**
|
|
1584
|
+
* @return {?}
|
|
1585
|
+
*/
|
|
1586
|
+
function () {
|
|
1587
|
+
body.removeEventListener("scroll", onScroll);
|
|
1588
|
+
});
|
|
1508
1589
|
}
|
|
1509
1590
|
|
|
1510
1591
|
/**
|
|
@@ -1558,7 +1639,7 @@
|
|
|
1558
1639
|
* 控制 nz-table 重建:scroll.y 从无到有时必须重建,否则表头不跟横滚
|
|
1559
1640
|
*/
|
|
1560
1641
|
this.showTable = true;
|
|
1561
|
-
this.
|
|
1642
|
+
this.unbindBodyScroll = null;
|
|
1562
1643
|
}
|
|
1563
1644
|
Object.defineProperty(HdDetailLinesComponent.prototype, "effectiveScroll", {
|
|
1564
1645
|
get: /**
|
|
@@ -1647,24 +1728,21 @@
|
|
|
1647
1728
|
function (retry) {
|
|
1648
1729
|
var _this = this;
|
|
1649
1730
|
if (retry === void 0) { retry = 0; }
|
|
1650
|
-
if (this.scroll != null) {
|
|
1651
|
-
// 外部传了 scroll:首屏就带 y 时仍需绑一次兜底同步
|
|
1652
|
-
setTimeout((/**
|
|
1653
|
-
* @return {?}
|
|
1654
|
-
*/
|
|
1655
|
-
function () { return _this.bindHeaderBodyScrollSync(); }));
|
|
1656
|
-
return;
|
|
1657
|
-
}
|
|
1658
1731
|
/** @type {?} */
|
|
1659
1732
|
var delay = retry === 0 ? 0 : 50;
|
|
1660
1733
|
setTimeout((/**
|
|
1661
1734
|
* @return {?}
|
|
1662
1735
|
*/
|
|
1663
1736
|
function () {
|
|
1664
|
-
_this.
|
|
1737
|
+
if (_this.scroll == null) {
|
|
1738
|
+
_this.syncHorizontalScroll();
|
|
1739
|
+
}
|
|
1740
|
+
_this.bindHeaderBodyScrollSync(0);
|
|
1665
1741
|
/** @type {?} */
|
|
1666
|
-
var afterX = _this.
|
|
1667
|
-
|
|
1742
|
+
var afterX = (_this.effectiveScroll && _this.effectiveScroll.x) ||
|
|
1743
|
+
(_this.tableScroll && _this.tableScroll.x);
|
|
1744
|
+
if (_this.scroll == null &&
|
|
1745
|
+
retry < 5 &&
|
|
1668
1746
|
_this.displayLines &&
|
|
1669
1747
|
_this.displayLines.length > 0 &&
|
|
1670
1748
|
!afterX &&
|
|
@@ -1703,7 +1781,6 @@
|
|
|
1703
1781
|
* @return {?}
|
|
1704
1782
|
*/
|
|
1705
1783
|
function () {
|
|
1706
|
-
var _this = this;
|
|
1707
1784
|
if (this.scroll != null) {
|
|
1708
1785
|
return;
|
|
1709
1786
|
}
|
|
@@ -1735,10 +1812,7 @@
|
|
|
1735
1812
|
return;
|
|
1736
1813
|
}
|
|
1737
1814
|
this.cdr.markForCheck();
|
|
1738
|
-
|
|
1739
|
-
* @return {?}
|
|
1740
|
-
*/
|
|
1741
|
-
function () { return _this.bindHeaderBodyScrollSync(); }));
|
|
1815
|
+
this.bindHeaderBodyScrollSync(0);
|
|
1742
1816
|
};
|
|
1743
1817
|
/** 重建 nz-table,让 header/body 滚动同步在 AfterViewInit 重新绑定 */
|
|
1744
1818
|
/**
|
|
@@ -1769,45 +1843,42 @@
|
|
|
1769
1843
|
setTimeout((/**
|
|
1770
1844
|
* @return {?}
|
|
1771
1845
|
*/
|
|
1772
|
-
function () { return _this.bindHeaderBodyScrollSync(); }));
|
|
1846
|
+
function () { return _this.bindHeaderBodyScrollSync(0); }));
|
|
1773
1847
|
}));
|
|
1774
1848
|
}));
|
|
1775
1849
|
};
|
|
1776
|
-
/** 表体横滚时同步表头(兜底 ng-zorro
|
|
1850
|
+
/** 表体横滚时同步表头(兜底 ng-zorro 监听丢失);DOM 未就绪时重试 */
|
|
1777
1851
|
/**
|
|
1778
|
-
* 表体横滚时同步表头(兜底 ng-zorro
|
|
1852
|
+
* 表体横滚时同步表头(兜底 ng-zorro 监听丢失);DOM 未就绪时重试
|
|
1779
1853
|
* @private
|
|
1854
|
+
* @param {?=} retry
|
|
1780
1855
|
* @return {?}
|
|
1781
1856
|
*/
|
|
1782
1857
|
HdDetailLinesComponent.prototype.bindHeaderBodyScrollSync = /**
|
|
1783
|
-
* 表体横滚时同步表头(兜底 ng-zorro
|
|
1858
|
+
* 表体横滚时同步表头(兜底 ng-zorro 监听丢失);DOM 未就绪时重试
|
|
1784
1859
|
* @private
|
|
1860
|
+
* @param {?=} retry
|
|
1785
1861
|
* @return {?}
|
|
1786
1862
|
*/
|
|
1787
|
-
function () {
|
|
1863
|
+
function (retry) {
|
|
1864
|
+
var _this = this;
|
|
1865
|
+
if (retry === void 0) { retry = 0; }
|
|
1788
1866
|
this.unbindHeaderBodyScrollSync();
|
|
1789
|
-
if (!this.nzTableComponent) {
|
|
1867
|
+
if (!this.nzTableComponent || !(this.effectiveScroll && this.effectiveScroll.x)) {
|
|
1790
1868
|
return;
|
|
1791
1869
|
}
|
|
1792
1870
|
/** @type {?} */
|
|
1793
|
-
var
|
|
1794
|
-
|
|
1795
|
-
|
|
1796
|
-
/** @type {?} */
|
|
1797
|
-
var body = (/** @type {?} */ (nzTable.mixTableBodyNativeElement));
|
|
1798
|
-
if (!header || !body) {
|
|
1871
|
+
var unbind = bindNzTableHeaderBodyScrollSync(this.nzTableComponent);
|
|
1872
|
+
if (unbind) {
|
|
1873
|
+
this.unbindBodyScroll = unbind;
|
|
1799
1874
|
return;
|
|
1800
1875
|
}
|
|
1801
|
-
|
|
1802
|
-
|
|
1803
|
-
|
|
1804
|
-
|
|
1805
|
-
|
|
1806
|
-
|
|
1807
|
-
}
|
|
1808
|
-
});
|
|
1809
|
-
body.addEventListener("scroll", this.bodyScrollListener);
|
|
1810
|
-
this.bodyScrollListener();
|
|
1876
|
+
if (retry < 8) {
|
|
1877
|
+
setTimeout((/**
|
|
1878
|
+
* @return {?}
|
|
1879
|
+
*/
|
|
1880
|
+
function () { return _this.bindHeaderBodyScrollSync(retry + 1); }), 50);
|
|
1881
|
+
}
|
|
1811
1882
|
};
|
|
1812
1883
|
/**
|
|
1813
1884
|
* @private
|
|
@@ -1818,17 +1889,10 @@
|
|
|
1818
1889
|
* @return {?}
|
|
1819
1890
|
*/
|
|
1820
1891
|
function () {
|
|
1821
|
-
if (
|
|
1822
|
-
this.
|
|
1823
|
-
|
|
1824
|
-
}
|
|
1825
|
-
/** @type {?} */
|
|
1826
|
-
var body = (/** @type {?} */ (((/** @type {?} */ (this.nzTableComponent)))
|
|
1827
|
-
.mixTableBodyNativeElement));
|
|
1828
|
-
if (body) {
|
|
1829
|
-
body.removeEventListener("scroll", this.bodyScrollListener);
|
|
1892
|
+
if (this.unbindBodyScroll) {
|
|
1893
|
+
this.unbindBodyScroll();
|
|
1894
|
+
this.unbindBodyScroll = null;
|
|
1830
1895
|
}
|
|
1831
|
-
this.bodyScrollListener = null;
|
|
1832
1896
|
};
|
|
1833
1897
|
/**
|
|
1834
1898
|
* @private
|
|
@@ -2189,8 +2253,8 @@
|
|
|
2189
2253
|
HdDetailLinesComponent.decorators = [
|
|
2190
2254
|
{ type: core.Component, args: [{
|
|
2191
2255
|
selector: "hd-detail-lines",
|
|
2192
|
-
template: "<ng-container>\n <hd-button-group *ngIf=\"showSearch\">\n <ng-template #buttonGroupLeft>\n <nz-input-group [nzSuffix]=\"suffixIconSearch\">\n <input type=\"text\" nz-input (keyup.enter)=\"searchLines()\" placeholder=\"\u8BF7\u8F93\u5165\u5185\u5BB9\u641C\u7D22\" style=\"width: 300px;\"\n [(ngModel)]=\"filterStr\" />\n </nz-input-group>\n <ng-template #suffixIconSearch>\n <i nz-icon nzType=\"search\" (click)=\"searchLines()\"></i>\n </ng-template>\n </ng-template>\n </hd-button-group>\n\n <hd-space *ngIf=\"showSearch\" background=\"transparent\" type=\"row\" size=\"16\"></hd-space>\n\n <nz-table *ngIf=\"showTable\" #hdTable [
|
|
2193
|
-
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}::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__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}.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}.hd-table-container ::ng-deep .ant-table-tbody>tr>td{border-bottom:1px solid #ecf1ed}.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,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid>td>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 .hd-table-total>td{border:0!important}"]
|
|
2256
|
+
template: "<ng-container>\n <hd-button-group *ngIf=\"showSearch\">\n <ng-template #buttonGroupLeft>\n <nz-input-group [nzSuffix]=\"suffixIconSearch\">\n <input type=\"text\" nz-input (keyup.enter)=\"searchLines()\" placeholder=\"\u8BF7\u8F93\u5165\u5185\u5BB9\u641C\u7D22\" style=\"width: 300px;\"\n [(ngModel)]=\"filterStr\" />\n </nz-input-group>\n <ng-template #suffixIconSearch>\n <i nz-icon nzType=\"search\" (click)=\"searchLines()\"></i>\n </ng-template>\n </ng-template>\n </hd-button-group>\n\n <hd-space *ngIf=\"showSearch\" background=\"transparent\" type=\"row\" size=\"16\"></hd-space>\n\n <nz-table *ngIf=\"showTable\" #hdTable class=\"hd-table-container\"\n [class.hd-detail-lines--scroll-y]=\"!!(effectiveScroll && effectiveScroll.y)\"\n [class.hd-detail-lines--scroll-x]=\"!!(effectiveScroll && effectiveScroll.x)\"\n [nzScroll]=\"effectiveScroll\" nzShowSizeChanger\n [nzFrontPagination]=\"hdFrontPagination\" [nzShowQuickJumper]=\"hdFrontPagination\" [nzShowTotal]=\"tableTotalTemplate\"\n nzSize=\"middle\" [nzData]=\"displayLines\" [nzLoading]=\"tableLoading\" [(nzPageSize)]=\"tablePageSize\"\n [nzPageSizeOptions]=\"[ 10, 50, 100, 200, 500, 1000 ]\"\n (nzCurrentPageDataChange)=\"showSelected ? currentPageDataChange($event) : null\">\n <thead>\n <tr>\n <th *ngIf=\"showSelected\" nzWidth=\"40px\" nzLeft=\"0px\" nzShowCheckbox [(nzChecked)]=\"isAllDisplayDataChecked\"\n [nzIndeterminate]=\"isIndeterminate\" (nzCheckedChange)=\"checkAll($event)\"></th>\n <ng-container *ngTemplateOutlet=\"detailLineHead\"></ng-container>\n </tr>\n </thead>\n <tbody *ngIf=\"!allowDrop;else allowDropTemplate\">\n <tr *ngFor=\"let data of hdTable.data;index as i\" [class.hd-table-row-invalid]=\"isInvalidRow(data)\">\n <td *ngIf=\"showSelected\" nzWidth=\"40px\" nzLeft=\"0px\" nzShowCheckbox\n [nzChecked]=\"mapOfCheckedId[data[selectField]]\" [nzDisabled]=\"isSelectDisabled(data)\"\n (nzCheckedChange)=\"refreshStatus($event, data)\"></td>\n <ng-container *ngTemplateOutlet=\"detailLineBody;context:{$implicit: data, index: i}\"></ng-container>\n </tr>\n <!-- \u5408\u8BA1\u533A\u57DF -->\n <tr *ngIf=\"showTotal\" class=\"hd-table-total\">\n <td *ngIf=\"showSelected\"></td>\n <td>\u5408\u8BA1</td>\n <ng-container *ngFor=\"let totalOption of totalOptionList\">\n <td *ngIf=\"!totalOption.isHide\" [nzAlign]=\"totalOption.align ? totalOption.align : 'left'\">{{\n (totalOption.value || totalOption.value ===\n 0) ? (((totalOption.value % 1 === 0) && !totalOption.showDecimal ) ? totalOption.value :\n LodashRound(totalOption.value, totalOption.preserveNumber).toFixed(totalOption.preserveNumber)) : '' }} </td>\n </ng-container>\n </tr>\n </tbody>\n <ng-template #allowDropTemplate>\n <tbody cdkDropList (cdkDropListDropped)=\"drop($event)\">\n <tr *ngFor=\"let data of hdTable.data;index as i\" cdkDrag [class.hd-table-row-invalid]=\"isInvalidRow(data)\">\n <td *ngIf=\"showSelected\" nzWidth=\"40px\" nzLeft=\"0px\" nzShowCheckbox\n [nzChecked]=\"mapOfCheckedId[data[selectField]]\" [nzDisabled]=\"isSelectDisabled(data)\"\n (nzCheckedChange)=\"refreshStatus($event, data)\"></td>\n <ng-container *ngTemplateOutlet=\"detailLineBody;context:{$implicit: data, index: i}\"></ng-container>\n </tr>\n <!-- \u5408\u8BA1\u533A\u57DF -->\n <tr *ngIf=\"showTotal\" class=\"hd-table-total\">\n <td *ngIf=\"showSelected\"></td>\n <td>\u5408\u8BA1</td>\n <ng-container *ngFor=\"let totalOption of totalOptionList\">\n <td *ngIf=\"!totalOption.isHide\" [nzAlign]=\"totalOption.align ? totalOption.align : 'left'\">{{\n (totalOption.value || totalOption.value\n === 0) ? (((totalOption.value % 1 === 0) && !totalOption.showDecimal ) ? totalOption.value :\n LodashRound(totalOption.value, totalOption.preserveNumber).toFixed(totalOption.preserveNumber)) : '' }} </td>\n </ng-container>\n </tr>\n </tbody>\n </ng-template>\n <ng-template #tableTotalTemplate>\n \u5171 {{displayLines.length}} \u6761\u6570\u636E\n </ng-template>\n </nz-table>\n</ng-container>\n",
|
|
2257
|
+
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}::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__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}.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}.hd-table-container ::ng-deep .ant-table-tbody>tr>td{border-bottom:1px solid #ecf1ed}.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,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid>td>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 .hd-table-total>td{border:0!important}.hd-table-container.hd-detail-lines--scroll-x ::ng-deep .ant-table-body table,.hd-table-container.hd-detail-lines--scroll-x ::ng-deep .ant-table-header table{table-layout:fixed}.hd-table-container.hd-detail-lines--scroll-x ::ng-deep .ant-table-tbody>tr>td,.hd-table-container.hd-detail-lines--scroll-x ::ng-deep .ant-table-thead>tr>th{box-sizing:border-box}.hd-table-container:not(.hd-detail-lines--scroll-y):not(.hd-detail-lines--scroll-x) ::ng-deep .ant-table-body{max-height:none!important;overflow-y:visible!important}"]
|
|
2194
2258
|
}] }
|
|
2195
2259
|
];
|
|
2196
2260
|
/** @nocollapse */
|
|
@@ -2333,7 +2397,7 @@
|
|
|
2333
2397
|
* @type {?}
|
|
2334
2398
|
* @private
|
|
2335
2399
|
*/
|
|
2336
|
-
HdDetailLinesComponent.prototype.
|
|
2400
|
+
HdDetailLinesComponent.prototype.unbindBodyScroll;
|
|
2337
2401
|
/**
|
|
2338
2402
|
* @type {?}
|
|
2339
2403
|
* @private
|
|
@@ -2415,6 +2479,7 @@
|
|
|
2415
2479
|
*/
|
|
2416
2480
|
this.measuredVirtualItemSize = 47;
|
|
2417
2481
|
this.virtualScrollActive = null;
|
|
2482
|
+
this.unbindBodyScroll = null;
|
|
2418
2483
|
/**
|
|
2419
2484
|
* 虚拟滚动按数组下标追踪,避免业务主键 trackBy 导致 CDK 行复用错位
|
|
2420
2485
|
*/
|
|
@@ -2530,6 +2595,15 @@
|
|
|
2530
2595
|
this.scheduleSyncHorizontalScroll();
|
|
2531
2596
|
this.applyTableScrollMode(true);
|
|
2532
2597
|
};
|
|
2598
|
+
/**
|
|
2599
|
+
* @return {?}
|
|
2600
|
+
*/
|
|
2601
|
+
HdDetailLinesPageComponent.prototype.ngOnDestroy = /**
|
|
2602
|
+
* @return {?}
|
|
2603
|
+
*/
|
|
2604
|
+
function () {
|
|
2605
|
+
this.unbindHeaderBodyScrollSync();
|
|
2606
|
+
};
|
|
2533
2607
|
/**
|
|
2534
2608
|
* @param {?} changes
|
|
2535
2609
|
* @return {?}
|
|
@@ -2589,6 +2663,7 @@
|
|
|
2589
2663
|
this.virtualScrollActive !== useVirtual;
|
|
2590
2664
|
this.virtualScrollActive = useVirtual;
|
|
2591
2665
|
if (forceRemount || modeChanged) {
|
|
2666
|
+
this.unbindHeaderBodyScrollSync();
|
|
2592
2667
|
// 延后销毁/重建,避免当前 CD 周期内 ngIf 变更触发 ExpressionChanged
|
|
2593
2668
|
setTimeout((/**
|
|
2594
2669
|
* @return {?}
|
|
@@ -2627,6 +2702,7 @@
|
|
|
2627
2702
|
*/
|
|
2628
2703
|
function (useVirtual) {
|
|
2629
2704
|
this.scheduleSyncHorizontalScroll();
|
|
2705
|
+
this.bindHeaderBodyScrollSync(0);
|
|
2630
2706
|
if (useVirtual) {
|
|
2631
2707
|
this.refreshVirtualScrollViewport(true);
|
|
2632
2708
|
}
|
|
@@ -2643,6 +2719,7 @@
|
|
|
2643
2719
|
var _this = this;
|
|
2644
2720
|
if (forceMeasure === void 0) { forceMeasure = false; }
|
|
2645
2721
|
if (!this.useVirtualScroll) {
|
|
2722
|
+
this.bindHeaderBodyScrollSync(0);
|
|
2646
2723
|
return;
|
|
2647
2724
|
}
|
|
2648
2725
|
setTimeout((/**
|
|
@@ -2655,6 +2732,7 @@
|
|
|
2655
2732
|
if (viewport) {
|
|
2656
2733
|
viewport.checkViewportSize();
|
|
2657
2734
|
}
|
|
2735
|
+
_this.bindHeaderBodyScrollSync(0);
|
|
2658
2736
|
_this.cdr.markForCheck();
|
|
2659
2737
|
}));
|
|
2660
2738
|
};
|
|
@@ -2697,19 +2775,21 @@
|
|
|
2697
2775
|
function (retry) {
|
|
2698
2776
|
var _this = this;
|
|
2699
2777
|
if (retry === void 0) { retry = 0; }
|
|
2700
|
-
if (this.scroll != null) {
|
|
2701
|
-
return;
|
|
2702
|
-
}
|
|
2703
2778
|
/** @type {?} */
|
|
2704
2779
|
var delay = retry === 0 ? 0 : 50;
|
|
2705
2780
|
setTimeout((/**
|
|
2706
2781
|
* @return {?}
|
|
2707
2782
|
*/
|
|
2708
2783
|
function () {
|
|
2709
|
-
_this.
|
|
2784
|
+
if (_this.scroll == null) {
|
|
2785
|
+
_this.syncHorizontalScroll();
|
|
2786
|
+
}
|
|
2787
|
+
_this.bindHeaderBodyScrollSync(0);
|
|
2710
2788
|
/** @type {?} */
|
|
2711
|
-
var afterX = _this.
|
|
2712
|
-
|
|
2789
|
+
var afterX = (_this.resolvedScroll && _this.resolvedScroll.x) ||
|
|
2790
|
+
(_this.tableScroll && _this.tableScroll.x);
|
|
2791
|
+
if (_this.scroll == null &&
|
|
2792
|
+
retry < 5 &&
|
|
2713
2793
|
_this.displayLines &&
|
|
2714
2794
|
_this.displayLines.length > 0 &&
|
|
2715
2795
|
!afterX &&
|
|
@@ -2778,6 +2858,54 @@
|
|
|
2778
2858
|
return;
|
|
2779
2859
|
}
|
|
2780
2860
|
this.cdr.markForCheck();
|
|
2861
|
+
this.bindHeaderBodyScrollSync(0);
|
|
2862
|
+
};
|
|
2863
|
+
/** 表体横滚时同步表头;DOM 未就绪时重试 */
|
|
2864
|
+
/**
|
|
2865
|
+
* 表体横滚时同步表头;DOM 未就绪时重试
|
|
2866
|
+
* @private
|
|
2867
|
+
* @param {?=} retry
|
|
2868
|
+
* @return {?}
|
|
2869
|
+
*/
|
|
2870
|
+
HdDetailLinesPageComponent.prototype.bindHeaderBodyScrollSync = /**
|
|
2871
|
+
* 表体横滚时同步表头;DOM 未就绪时重试
|
|
2872
|
+
* @private
|
|
2873
|
+
* @param {?=} retry
|
|
2874
|
+
* @return {?}
|
|
2875
|
+
*/
|
|
2876
|
+
function (retry) {
|
|
2877
|
+
var _this = this;
|
|
2878
|
+
if (retry === void 0) { retry = 0; }
|
|
2879
|
+
this.unbindHeaderBodyScrollSync();
|
|
2880
|
+
if (!this.nzTableComponent || !(this.resolvedScroll && this.resolvedScroll.x)) {
|
|
2881
|
+
return;
|
|
2882
|
+
}
|
|
2883
|
+
/** @type {?} */
|
|
2884
|
+
var unbind = bindNzTableHeaderBodyScrollSync(this.nzTableComponent);
|
|
2885
|
+
if (unbind) {
|
|
2886
|
+
this.unbindBodyScroll = unbind;
|
|
2887
|
+
return;
|
|
2888
|
+
}
|
|
2889
|
+
if (retry < 8) {
|
|
2890
|
+
setTimeout((/**
|
|
2891
|
+
* @return {?}
|
|
2892
|
+
*/
|
|
2893
|
+
function () { return _this.bindHeaderBodyScrollSync(retry + 1); }), 50);
|
|
2894
|
+
}
|
|
2895
|
+
};
|
|
2896
|
+
/**
|
|
2897
|
+
* @private
|
|
2898
|
+
* @return {?}
|
|
2899
|
+
*/
|
|
2900
|
+
HdDetailLinesPageComponent.prototype.unbindHeaderBodyScrollSync = /**
|
|
2901
|
+
* @private
|
|
2902
|
+
* @return {?}
|
|
2903
|
+
*/
|
|
2904
|
+
function () {
|
|
2905
|
+
if (this.unbindBodyScroll) {
|
|
2906
|
+
this.unbindBodyScroll();
|
|
2907
|
+
this.unbindBodyScroll = null;
|
|
2908
|
+
}
|
|
2781
2909
|
};
|
|
2782
2910
|
Object.defineProperty(HdDetailLinesPageComponent.prototype, "displayLines", {
|
|
2783
2911
|
get: /**
|
|
@@ -3083,7 +3211,7 @@
|
|
|
3083
3211
|
{ type: core.Component, args: [{
|
|
3084
3212
|
selector: "hd-detail-lines-page",
|
|
3085
3213
|
template: "<ng-container>\n <nz-table\n *ngIf=\"showTable\"\n #hdTable\n class=\"hd-table-container\"\n [class.hd-detail-lines-page--virtual]=\"useVirtualScroll\"\n [class.hd-detail-lines-page--scroll-y]=\"!!(resolvedScroll && resolvedScroll.y)\"\n [class.hd-detail-lines-page--scroll-x]=\"!!(resolvedScroll && resolvedScroll.x)\"\n [nzScroll]=\"resolvedScroll\"\n nzShowSizeChanger\n nzShowQuickJumper\n nzFrontPagination=\"false\"\n nzSize=\"middle\"\n [nzData]=\"displayLines\"\n [nzTotal]=\"totalCount\"\n [(nzPageIndex)]=\"tablePageIndex\"\n [(nzPageSize)]=\"tablePageSize\"\n [nzLoading]=\"tableLoading\"\n [nzPageSizeOptions]=\"[ 10, 50, 100, 200, 500, 1000 ]\"\n (nzPageIndexChange)=\"onPageIndexChange($event)\"\n (nzPageSizeChange)=\"onPageSizeChange($event)\"\n [nzShowTotal]=\"tableTotalTemplate\"\n (nzCurrentPageDataChange)=\"showSelected ? currentPageDataChange($event) : null\"\n [nzVirtualScroll]=\"useVirtualScroll\"\n [nzVirtualItemSize]=\"useVirtualScroll ? effectiveVirtualItemSize : 0\"\n [nzVirtualForTrackBy]=\"virtualTrackByRow\"\n >\n <thead>\n <tr>\n <th *ngIf=\"showSelected\" nzWidth=\"40px\" nzLeft=\"0px\" nzShowCheckbox [(nzChecked)]=\"isAllDisplayDataChecked\"\n [nzIndeterminate]=\"isIndeterminate\" (nzCheckedChange)=\"checkAll($event)\"></th>\n <ng-container *ngTemplateOutlet=\"detailLineHead\"></ng-container>\n </tr>\n </thead>\n <tbody *ngIf=\"!allowDrop;else allowDropTemplate\">\n <ng-template *ngIf=\"useVirtualScroll\" nz-virtual-scroll let-data let-index=\"index\">\n <tr class=\"hd-detail-lines-page-virtual-row\" [class.hd-table-row-invalid]=\"isInvalidRow(data)\">\n <td *ngIf=\"showSelected\" nzWidth=\"40px\" nzLeft=\"0px\" nzShowCheckbox\n [nzChecked]=\"mapOfCheckedId[data[selectField]]\" [nzDisabled]=\"isSelectDisabled(data)\"\n (nzCheckedChange)=\"refreshStatus($event, data)\"></td>\n <ng-container\n *ngTemplateOutlet=\"detailLineBody;context:{$implicit: data, index: getRowIndex(index)}\"></ng-container>\n </tr>\n </ng-template>\n <ng-container *ngIf=\"!useVirtualScroll\">\n <tr *ngFor=\"let data of hdTable.data;index as i\" [class.hd-table-row-invalid]=\"isInvalidRow(data)\">\n <td *ngIf=\"showSelected\" nzWidth=\"40px\" nzLeft=\"0px\" nzShowCheckbox\n [nzChecked]=\"mapOfCheckedId[data[selectField]]\" [nzDisabled]=\"isSelectDisabled(data)\"\n (nzCheckedChange)=\"refreshStatus($event, data)\"></td>\n <ng-container\n *ngTemplateOutlet=\"detailLineBody;context:{$implicit: data, index: getRowIndex(i)}\"></ng-container>\n </tr>\n <tr *ngIf=\"showTotal\" class=\"hd-table-total\">\n <td *ngIf=\"showSelected\"></td>\n <td>\u5408\u8BA1</td>\n <ng-container *ngFor=\"let totalOption of totalOptionList\">\n <td *ngIf=\"!totalOption.isHide\" [nzAlign]=\"totalOption.align ? totalOption.align : 'left'\">{{\n (totalOption.value || totalOption.value ===\n 0) ? (((totalOption.value % 1 === 0) && !totalOption.showDecimal ) ? totalOption.value :\n LodashRound(totalOption.value, totalOption.preserveNumber).toFixed(totalOption.preserveNumber)) : '' }} </td>\n </ng-container>\n </tr>\n </ng-container>\n </tbody>\n <tfoot *ngIf=\"useVirtualScroll && showTotal\">\n <tr class=\"hd-table-total\">\n <td *ngIf=\"showSelected\"></td>\n <td>\u5408\u8BA1</td>\n <ng-container *ngFor=\"let totalOption of totalOptionList\">\n <td *ngIf=\"!totalOption.isHide\" [nzAlign]=\"totalOption.align ? totalOption.align : 'left'\">{{\n (totalOption.value || totalOption.value ===\n 0) ? (((totalOption.value % 1 === 0) && !totalOption.showDecimal ) ? totalOption.value :\n LodashRound(totalOption.value, totalOption.preserveNumber).toFixed(totalOption.preserveNumber)) : '' }} </td>\n </ng-container>\n </tr>\n </tfoot>\n <ng-template #allowDropTemplate>\n <tbody cdkDropList (cdkDropListDropped)=\"drop($event)\">\n <tr *ngFor=\"let data of hdTable.data;index as i\" cdkDrag [class.hd-table-row-invalid]=\"isInvalidRow(data)\">\n <td *ngIf=\"showSelected\" nzWidth=\"40px\" nzLeft=\"0px\" nzShowCheckbox\n [nzChecked]=\"mapOfCheckedId[data[selectField]]\" [nzDisabled]=\"isSelectDisabled(data)\"\n (nzCheckedChange)=\"refreshStatus($event, data)\"></td>\n <ng-container\n *ngTemplateOutlet=\"detailLineBody;context:{$implicit: data, index: getRowIndex(i)}\"></ng-container>\n </tr>\n <tr *ngIf=\"showTotal\" class=\"hd-table-total\">\n <td *ngIf=\"showSelected\"></td>\n <td>\u5408\u8BA1</td>\n <ng-container *ngFor=\"let totalOption of totalOptionList\">\n <td *ngIf=\"!totalOption.isHide\" [nzAlign]=\"totalOption.align ? totalOption.align : 'left'\">{{\n (totalOption.value || totalOption.value\n === 0) ? (((totalOption.value % 1 === 0) && !totalOption.showDecimal ) ? totalOption.value :\n LodashRound(totalOption.value, totalOption.preserveNumber).toFixed(totalOption.preserveNumber)) : '' }} </td>\n </ng-container>\n </tr>\n </tbody>\n </ng-template>\n <ng-template #tableTotalTemplate>\n \u5171 {{totalCount}} \u6761\u6570\u636E\n </ng-template>\n </nz-table>\n</ng-container>\n",
|
|
3086
|
-
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}::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__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}.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}.hd-table-container ::ng-deep .ant-table-tbody>tr>td{border-bottom:1px solid #ecf1ed}.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,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid>td>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 .hd-table-total>td{border:0!important}.hd-table-container ::ng-deep cdk-virtual-scroll-viewport.ant-table-body .hd-detail-lines-page-virtual-row>td{box-sizing:border-box}.hd-table-container:not(.hd-detail-lines-page--scroll-y):not(.hd-detail-lines-page--scroll-x) ::ng-deep .ant-table-body{max-height:none!important;overflow-y:visible!important}"]
|
|
3214
|
+
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}::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__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}.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}.hd-table-container ::ng-deep .ant-table-tbody>tr>td{border-bottom:1px solid #ecf1ed}.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,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid>td>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 .hd-table-total>td{border:0!important}.hd-table-container ::ng-deep cdk-virtual-scroll-viewport.ant-table-body .hd-detail-lines-page-virtual-row>td{box-sizing:border-box}.hd-table-container.hd-detail-lines-page--scroll-x ::ng-deep .ant-table-body table,.hd-table-container.hd-detail-lines-page--scroll-x ::ng-deep .ant-table-header table,.hd-table-container.hd-detail-lines-page--scroll-x ::ng-deep cdk-virtual-scroll-viewport.ant-table-body table{table-layout:fixed}.hd-table-container.hd-detail-lines-page--scroll-x ::ng-deep .ant-table-tbody>tr>td,.hd-table-container.hd-detail-lines-page--scroll-x ::ng-deep .ant-table-thead>tr>th{box-sizing:border-box}.hd-table-container:not(.hd-detail-lines-page--scroll-y):not(.hd-detail-lines-page--scroll-x) ::ng-deep .ant-table-body{max-height:none!important;overflow-y:visible!important}"]
|
|
3087
3215
|
}] }
|
|
3088
3216
|
];
|
|
3089
3217
|
/** @nocollapse */
|
|
@@ -3234,6 +3362,11 @@
|
|
|
3234
3362
|
* @private
|
|
3235
3363
|
*/
|
|
3236
3364
|
HdDetailLinesPageComponent.prototype.virtualScrollActive;
|
|
3365
|
+
/**
|
|
3366
|
+
* @type {?}
|
|
3367
|
+
* @private
|
|
3368
|
+
*/
|
|
3369
|
+
HdDetailLinesPageComponent.prototype.unbindBodyScroll;
|
|
3237
3370
|
/**
|
|
3238
3371
|
* 虚拟滚动按数组下标追踪,避免业务主键 trackBy 导致 CDK 行复用错位
|
|
3239
3372
|
* @type {?}
|