fantasy-ngzorro 2.1.23 → 2.1.25

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/bundles/fantasy-ngzorro.umd.js +291 -68
  2. package/bundles/fantasy-ngzorro.umd.js.map +1 -1
  3. package/bundles/fantasy-ngzorro.umd.min.js +1 -1
  4. package/bundles/fantasy-ngzorro.umd.min.js.map +1 -1
  5. package/esm2015/hd-detail-form/hd-detail-form.component.js +2 -2
  6. package/esm2015/hd-detail-lines/hd-detail-lines.component.js +83 -8
  7. package/esm2015/hd-detail-lines-page/hd-detail-lines-page.component.js +83 -8
  8. package/esm2015/hd-form-lines/hd-form-lines.component.js +2 -15
  9. package/esm2015/hd-status/hd-status.service.js +2 -2
  10. package/esm2015/hd-table/hd-table.component.js +16 -40
  11. package/esm2015/model/common-type.js +5 -1
  12. package/esm2015/utils/hd-table-scroll.util.js +85 -0
  13. package/esm5/hd-detail-form/hd-detail-form.component.js +2 -2
  14. package/esm5/hd-detail-lines/hd-detail-lines.component.js +96 -8
  15. package/esm5/hd-detail-lines-page/hd-detail-lines-page.component.js +96 -8
  16. package/esm5/hd-form-lines/hd-form-lines.component.js +2 -15
  17. package/esm5/hd-status/hd-status.service.js +2 -2
  18. package/esm5/hd-table/hd-table.component.js +16 -41
  19. package/esm5/model/common-type.js +5 -1
  20. package/esm5/utils/hd-table-scroll.util.js +86 -0
  21. package/fantasy-ngzorro.metadata.json +1 -1
  22. package/fesm2015/fantasy-ngzorro.js +265 -68
  23. package/fesm2015/fantasy-ngzorro.js.map +1 -1
  24. package/fesm5/fantasy-ngzorro.js +292 -69
  25. package/fesm5/fantasy-ngzorro.js.map +1 -1
  26. package/hd-detail-lines/hd-detail-lines.component.d.ts +18 -3
  27. package/hd-detail-lines-page/hd-detail-lines-page.component.d.ts +18 -3
  28. package/hd-form-lines/hd-form-lines.component.d.ts +0 -2
  29. package/hd-table/hd-table.component.d.ts +1 -1
  30. package/model/common-type.d.ts +2 -0
  31. package/package.json +1 -1
  32. package/utils/hd-table-scroll.util.d.ts +9 -0
@@ -497,7 +497,7 @@
497
497
  HdDetailFormComponent.decorators = [
498
498
  { type: core.Component, args: [{
499
499
  selector: 'hd-detail-form',
500
- template: "<nz-content class=\"hd-detail-form-container\">\n <nz-descriptions [nzColumn]=\"nzColumn\">\n <ng-container *ngFor=\"let col of formCols\">\n <nz-descriptions-item *ngIf=\"!col.click\" [nzTitle]=\"col.label\">\n <span [ngStyle]=\"{'color': col?.color ? col.color : null}\">{{(col.value === '0' || col.value === 0 || col.value\n )? col.value : '&lt;\u7A7A&gt;'}}</span>\n </nz-descriptions-item>\n <nz-descriptions-item *ngIf=\"col.click\" [nzTitle]=\"col.label\">\n <span [ngStyle]=\"{'color': col?.color ? col.color : null}\" *ngIf=\"col.clickText\">\n {{(col.value === '0' || col.value === 0 || col.value\n )? col.value : '&lt;\u7A7A&gt;'}}\n <a (click)=\"triggerEvent(col.click || null)\">&nbsp;&nbsp;&nbsp;&nbsp;{{ col.clickText }}</a>\n </span>\n <span [ngStyle]=\"{'color': col?.color ? col.color : null}\" *ngIf=\"!col.clickText\">\n <a (click)=\"triggerEvent(col.click || null)\">{{(col.value === '0' || col.value === 0 || col.value\n )? col.value : '&lt;\u7A7A&gt;'}}</a>\n </span>\n </nz-descriptions-item>\n </ng-container>\n </nz-descriptions>\n</nz-content>\n",
500
+ template: "<nz-content class=\"hd-detail-form-container\">\n <nz-descriptions [nzColumn]=\"nzColumn\">\n <ng-container *ngFor=\"let col of formCols\">\n <nz-descriptions-item *ngIf=\"!col.click\" [nzTitle]=\"col.label\">\n <span [ngStyle]=\"{'color': col?.color ? col.color : null}\">{{(col.value === '0' || col.value === 0 || col.value\n )? col.value : '&lt;\u7A7A&gt;'}}</span>\n </nz-descriptions-item>\n <nz-descriptions-item *ngIf=\"col.click\" [nzTitle]=\"col.label\">\n <span [ngStyle]=\"{'color': col?.color ? col.color : null}\" *ngIf=\"col.clickText\">\n {{(col.value === '0' || col.value === 0 || col.value\n )? col.value : '&lt;\u7A7A&gt;'}}\n <a (click)=\"triggerEvent(col.click || null)\">&nbsp;&nbsp;&nbsp;&nbsp;{{ col.clickText }}</a>\n <a *ngIf=\"col.clickText1\" (click)=\"triggerEvent(col.click1 || null)\">&nbsp;&nbsp;&nbsp;&nbsp;{{ col.clickText1 }}</a>\n </span>\n <span [ngStyle]=\"{'color': col?.color ? col.color : null}\" *ngIf=\"!col.clickText\">\n <a (click)=\"triggerEvent(col.click || null)\">{{(col.value === '0' || col.value === 0 || col.value\n )? col.value : '&lt;\u7A7A&gt;'}}</a>\n <a *ngIf=\"col.clickText1\" (click)=\"triggerEvent(col.click1 || null)\">&nbsp;&nbsp;&nbsp;&nbsp;{{ col.clickText1 }}</a>\n </span>\n </nz-descriptions-item>\n </ng-container>\n </nz-descriptions>\n</nz-content>\n",
501
501
  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}: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%}.ant-input-number-disabled,.ant-input[disabled],.ant-select-disabled{color:#4b504e}.hd-detail-form-container{font-size:14px}.hd-detail-form-container ::ng-deep td.ant-descriptions-item{vertical-align:top;padding-top:6px!important;padding-bottom:6px!important;padding-left:0!important;font-size:14px}.hd-detail-form-container ::ng-deep .ant-descriptions-item-label{color:#4b504e;font-size:14px}.hd-detail-form-container ::ng-deep .ant-descriptions-item-content{word-break:break-all;color:rgba(0,0,0,.85);font-weight:400;font-size:14px}.hd-detail-form-container ::ng-deep a{font-size:14px}.hd-detail-form-container ::ng-deep td{white-space:unset!important}"]
502
502
  }] }
503
503
  ];
@@ -707,6 +707,10 @@
707
707
  HdOption.prototype.clickText;
708
708
  /** @type {?} */
709
709
  HdOption.prototype.click;
710
+ /** @type {?} */
711
+ HdOption.prototype.clickText1;
712
+ /** @type {?} */
713
+ HdOption.prototype.click1;
710
714
  }
711
715
  var SelectOption = /** @class */ (function () {
712
716
  function SelectOption() {
@@ -836,18 +840,109 @@
836
840
  CascaderOption.prototype.options;
837
841
  }
838
842
 
843
+ /**
844
+ * @fileoverview added by tsickle
845
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
846
+ */
847
+ /**
848
+ * @record
849
+ */
850
+ function HdTableScrollConfig() { }
851
+ if (false) {
852
+ /** @type {?|undefined} */
853
+ HdTableScrollConfig.prototype.x;
854
+ /** @type {?|undefined} */
855
+ HdTableScrollConfig.prototype.y;
856
+ }
857
+ /**
858
+ * @param {?} nzTable
859
+ * @param {?=} hostClass
860
+ * @return {?}
861
+ */
862
+ function getTableViewportWidth(nzTable, hostClass) {
863
+ if (hostClass === void 0) { hostClass = "hd-table-container"; }
864
+ if (!nzTable || !nzTable.tableMainElement) {
865
+ return 0;
866
+ }
867
+ /** @type {?} */
868
+ var tableMain = (/** @type {?} */ (nzTable.tableMainElement.nativeElement));
869
+ /** @type {?} */
870
+ var wrapper = (/** @type {?} */ (tableMain.closest(".ant-table-wrapper")));
871
+ if (wrapper && wrapper.clientWidth > 0) {
872
+ return wrapper.clientWidth;
873
+ }
874
+ /** @type {?} */
875
+ var host = (/** @type {?} */ (tableMain.closest("." + hostClass)));
876
+ if (host && host.clientWidth > 0) {
877
+ return host.clientWidth;
878
+ }
879
+ return 0;
880
+ }
881
+ /**
882
+ * @param {?} nzTable
883
+ * @return {?}
884
+ */
885
+ function measureTableColWidth(nzTable) {
886
+ if (!nzTable || !nzTable.tableMainElement) {
887
+ return 0;
888
+ }
889
+ /** @type {?} */
890
+ var tableMain = (/** @type {?} */ (nzTable.tableMainElement.nativeElement));
891
+ /** @type {?} */
892
+ var headerTable = (/** @type {?} */ (tableMain.querySelector(".ant-table-header table")));
893
+ if (headerTable && headerTable.scrollWidth > 0) {
894
+ return headerTable.scrollWidth;
895
+ }
896
+ /** @type {?} */
897
+ var bodyTable = (/** @type {?} */ (tableMain.querySelector(".ant-table-body table")));
898
+ return bodyTable ? bodyTable.scrollWidth : 0;
899
+ }
900
+ /**
901
+ * 无数据或列宽未超出容器时不启用横向 scroll
902
+ * @param {?} nzTable
903
+ * @param {?} hasData
904
+ * @param {?=} colWidth
905
+ * @return {?}
906
+ */
907
+ function resolveAutoTableScroll(nzTable, hasData, colWidth) {
908
+ if (!hasData) {
909
+ return null;
910
+ }
911
+ /** @type {?} */
912
+ var width = colWidth != null && colWidth > 0
913
+ ? colWidth
914
+ : measureTableColWidth(nzTable);
915
+ if (width <= 0) {
916
+ return null;
917
+ }
918
+ /** @type {?} */
919
+ var viewportWidth = getTableViewportWidth(nzTable);
920
+ if (viewportWidth > 0) {
921
+ return width > viewportWidth ? { x: width + "px" } : null;
922
+ }
923
+ if (typeof window !== "undefined" && width > window.innerWidth - 32) {
924
+ return { x: width + "px" };
925
+ }
926
+ return null;
927
+ }
928
+
839
929
  /**
840
930
  * @fileoverview added by tsickle
841
931
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
842
932
  */
843
933
  var HdDetailLinesComponent = /** @class */ (function () {
844
- function HdDetailLinesComponent() {
934
+ function HdDetailLinesComponent(cdr) {
935
+ this.cdr = cdr;
845
936
  this.showSelected = false;
846
937
  this.allowDrop = false;
847
938
  this.showSearch = false;
848
939
  // 不传递这个字段时默认为查询所有字段是否有匹配的
849
940
  this.searchFields = [];
850
- this.scroll = { x: "1px" };
941
+ /**
942
+ * 不传则按列宽与容器宽度自动计算横向滚动
943
+ */
944
+ this.scroll = null;
945
+ this.tableScroll = null;
851
946
  this.selectField = "billNumber";
852
947
  this.selectEvent = new core.EventEmitter();
853
948
  // 合计区域
@@ -878,6 +973,16 @@
878
973
  this.isFilterData = false;
879
974
  this.storeFormLinesData = []; // 缓存的总的列表数据
880
975
  }
976
+ Object.defineProperty(HdDetailLinesComponent.prototype, "effectiveScroll", {
977
+ get: /**
978
+ * @return {?}
979
+ */
980
+ function () {
981
+ return this.scroll != null ? this.scroll : this.tableScroll;
982
+ },
983
+ enumerable: true,
984
+ configurable: true
985
+ });
881
986
  /**
882
987
  * @return {?}
883
988
  */
@@ -890,6 +995,15 @@
890
995
  this.countSelected();
891
996
  this.calculateTotal();
892
997
  };
998
+ /**
999
+ * @return {?}
1000
+ */
1001
+ HdDetailLinesComponent.prototype.ngAfterViewInit = /**
1002
+ * @return {?}
1003
+ */
1004
+ function () {
1005
+ this.scheduleSyncHorizontalScroll();
1006
+ };
893
1007
  /**
894
1008
  * @param {?} changes
895
1009
  * @return {?}
@@ -911,6 +1025,51 @@
911
1025
  }
912
1026
  this.countSelected();
913
1027
  this.calculateTotal();
1028
+ if (changes["lines"] || changes["showSelected"]) {
1029
+ this.scheduleSyncHorizontalScroll();
1030
+ }
1031
+ };
1032
+ /**
1033
+ * @private
1034
+ * @return {?}
1035
+ */
1036
+ HdDetailLinesComponent.prototype.scheduleSyncHorizontalScroll = /**
1037
+ * @private
1038
+ * @return {?}
1039
+ */
1040
+ function () {
1041
+ var _this = this;
1042
+ if (this.scroll != null) {
1043
+ return;
1044
+ }
1045
+ setTimeout((/**
1046
+ * @return {?}
1047
+ */
1048
+ function () { return _this.syncHorizontalScroll(); }));
1049
+ };
1050
+ /**
1051
+ * @private
1052
+ * @return {?}
1053
+ */
1054
+ HdDetailLinesComponent.prototype.syncHorizontalScroll = /**
1055
+ * @private
1056
+ * @return {?}
1057
+ */
1058
+ function () {
1059
+ if (this.scroll != null) {
1060
+ return;
1061
+ }
1062
+ /** @type {?} */
1063
+ var hasData = !!(this.displayLines && this.displayLines.length);
1064
+ /** @type {?} */
1065
+ var nextScroll = resolveAutoTableScroll(this.nzTableComponent, hasData);
1066
+ /** @type {?} */
1067
+ var nextX = nextScroll ? nextScroll.x : null;
1068
+ if (this.tableScroll && this.tableScroll.x === nextX) {
1069
+ return;
1070
+ }
1071
+ this.tableScroll = nextScroll;
1072
+ this.cdr.markForCheck();
914
1073
  };
915
1074
  /**
916
1075
  * @private
@@ -961,6 +1120,7 @@
961
1120
  this.tableLoading = false;
962
1121
  this.countSelected();
963
1122
  this.calculateTotal();
1123
+ this.scheduleSyncHorizontalScroll();
964
1124
  };
965
1125
  // 全局性的搜索(涵盖页面上所有的可视文字)
966
1126
  // 全局性的搜索(涵盖页面上所有的可视文字)
@@ -1038,6 +1198,7 @@
1038
1198
  this.tableLoading = false;
1039
1199
  this.countSelected();
1040
1200
  this.calculateTotal();
1201
+ this.scheduleSyncHorizontalScroll();
1041
1202
  };
1042
1203
  /**
1043
1204
  * @private
@@ -1218,13 +1379,16 @@
1218
1379
  HdDetailLinesComponent.decorators = [
1219
1380
  { type: core.Component, args: [{
1220
1381
  selector: "hd-detail-lines",
1221
- 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 #hdTable [nzScroll]=\"scroll\" class=\"hd-table-container\" 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\">\n <td *ngIf=\"showSelected\" nzWidth=\"40px\" nzLeft=\"0px\" nzShowCheckbox\n [(nzChecked)]=\"mapOfCheckedId[data[selectField]]\" (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,2).toFixed(2)) : '' }} </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>\n <td *ngIf=\"showSelected\" nzWidth=\"40px\" nzLeft=\"0px\" nzShowCheckbox\n [(nzChecked)]=\"mapOfCheckedId[data[selectField]]\" (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,2).toFixed(2)) : '' }} </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",
1222
- 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}: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%}.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 .hd-table-total>td{border:0!important}"]
1382
+ 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 #hdTable [nzScroll]=\"effectiveScroll\" class=\"hd-table-container\" 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\">\n <td *ngIf=\"showSelected\" nzWidth=\"40px\" nzLeft=\"0px\" nzShowCheckbox\n [(nzChecked)]=\"mapOfCheckedId[data[selectField]]\" (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,2).toFixed(2)) : '' }} </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>\n <td *ngIf=\"showSelected\" nzWidth=\"40px\" nzLeft=\"0px\" nzShowCheckbox\n [(nzChecked)]=\"mapOfCheckedId[data[selectField]]\" (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,2).toFixed(2)) : '' }} </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",
1383
+ 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}: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%}.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 .hd-table-total>td{border:0!important}.hd-table-container ::ng-deep .ant-table-fixed-right{right:0!important}.hd-table-container ::ng-deep .ant-table-fixed-right .ant-table-tbody>tr>td,.hd-table-container ::ng-deep .ant-table-fixed-right .ant-table-thead>tr>th{background:#f5f8f6}.hd-table-container ::ng-deep .ant-table-fixed-right .ant-table-tbody>tr:hover>td{background:#fff}"]
1223
1384
  }] }
1224
1385
  ];
1225
1386
  /** @nocollapse */
1226
- HdDetailLinesComponent.ctorParameters = function () { return []; };
1387
+ HdDetailLinesComponent.ctorParameters = function () { return [
1388
+ { type: core.ChangeDetectorRef }
1389
+ ]; };
1227
1390
  HdDetailLinesComponent.propDecorators = {
1391
+ nzTableComponent: [{ type: core.ViewChild, args: ["hdTable", { static: false },] }],
1228
1392
  lines: [{ type: core.Input }],
1229
1393
  showSelected: [{ type: core.Input }],
1230
1394
  allowDrop: [{ type: core.Input }],
@@ -1261,6 +1425,8 @@
1261
1425
  return HdDetailLinesComponent;
1262
1426
  }());
1263
1427
  if (false) {
1428
+ /** @type {?} */
1429
+ HdDetailLinesComponent.prototype.nzTableComponent;
1264
1430
  /** @type {?} */
1265
1431
  HdDetailLinesComponent.prototype.lines;
1266
1432
  /** @type {?} */
@@ -1271,9 +1437,14 @@
1271
1437
  HdDetailLinesComponent.prototype.showSearch;
1272
1438
  /** @type {?} */
1273
1439
  HdDetailLinesComponent.prototype.searchFields;
1274
- /** @type {?} */
1440
+ /**
1441
+ * 不传则按列宽与容器宽度自动计算横向滚动
1442
+ * @type {?}
1443
+ */
1275
1444
  HdDetailLinesComponent.prototype.scroll;
1276
1445
  /** @type {?} */
1446
+ HdDetailLinesComponent.prototype.tableScroll;
1447
+ /** @type {?} */
1277
1448
  HdDetailLinesComponent.prototype.selectField;
1278
1449
  /** @type {?} */
1279
1450
  HdDetailLinesComponent.prototype.selectedField;
@@ -1329,6 +1500,11 @@
1329
1500
  HdDetailLinesComponent.prototype.isFilterData;
1330
1501
  /** @type {?} */
1331
1502
  HdDetailLinesComponent.prototype.storeFormLinesData;
1503
+ /**
1504
+ * @type {?}
1505
+ * @private
1506
+ */
1507
+ HdDetailLinesComponent.prototype.cdr;
1332
1508
  }
1333
1509
 
1334
1510
  /**
@@ -1363,7 +1539,8 @@
1363
1539
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
1364
1540
  */
1365
1541
  var HdDetailLinesPageComponent = /** @class */ (function () {
1366
- function HdDetailLinesPageComponent() {
1542
+ function HdDetailLinesPageComponent(cdr) {
1543
+ this.cdr = cdr;
1367
1544
  this.lines = [];
1368
1545
  /**
1369
1546
  * 与 hd-table 一致,可传 Page 对象;未传 lines 时使用 tableData.content
@@ -1371,7 +1548,11 @@
1371
1548
  this.tableData = new Page();
1372
1549
  this.showSelected = false;
1373
1550
  this.allowDrop = false;
1374
- this.scroll = { x: "1px" };
1551
+ /**
1552
+ * 不传则按列宽与容器宽度自动计算横向滚动
1553
+ */
1554
+ this.scroll = null;
1555
+ this.tableScroll = null;
1375
1556
  this.selectField = "billNumber";
1376
1557
  this.selectEvent = new core.EventEmitter();
1377
1558
  this.showTotal = false;
@@ -1391,6 +1572,16 @@
1391
1572
  this.mapOfCheckList = {};
1392
1573
  this.isCrossPageSelectLocal = false;
1393
1574
  }
1575
+ Object.defineProperty(HdDetailLinesPageComponent.prototype, "effectiveScroll", {
1576
+ get: /**
1577
+ * @return {?}
1578
+ */
1579
+ function () {
1580
+ return this.scroll != null ? this.scroll : this.tableScroll;
1581
+ },
1582
+ enumerable: true,
1583
+ configurable: true
1584
+ });
1394
1585
  /**
1395
1586
  * @return {?}
1396
1587
  */
@@ -1404,6 +1595,15 @@
1404
1595
  this.countSelected();
1405
1596
  this.calculateTotal();
1406
1597
  };
1598
+ /**
1599
+ * @return {?}
1600
+ */
1601
+ HdDetailLinesPageComponent.prototype.ngAfterViewInit = /**
1602
+ * @return {?}
1603
+ */
1604
+ function () {
1605
+ this.scheduleSyncHorizontalScroll();
1606
+ };
1407
1607
  /**
1408
1608
  * @param {?} changes
1409
1609
  * @return {?}
@@ -1431,6 +1631,53 @@
1431
1631
  }
1432
1632
  this.countSelected();
1433
1633
  this.calculateTotal();
1634
+ if (changes["lines"] ||
1635
+ changes["tableData"] ||
1636
+ changes["showSelected"]) {
1637
+ this.scheduleSyncHorizontalScroll();
1638
+ }
1639
+ };
1640
+ /**
1641
+ * @private
1642
+ * @return {?}
1643
+ */
1644
+ HdDetailLinesPageComponent.prototype.scheduleSyncHorizontalScroll = /**
1645
+ * @private
1646
+ * @return {?}
1647
+ */
1648
+ function () {
1649
+ var _this = this;
1650
+ if (this.scroll != null) {
1651
+ return;
1652
+ }
1653
+ setTimeout((/**
1654
+ * @return {?}
1655
+ */
1656
+ function () { return _this.syncHorizontalScroll(); }));
1657
+ };
1658
+ /**
1659
+ * @private
1660
+ * @return {?}
1661
+ */
1662
+ HdDetailLinesPageComponent.prototype.syncHorizontalScroll = /**
1663
+ * @private
1664
+ * @return {?}
1665
+ */
1666
+ function () {
1667
+ if (this.scroll != null) {
1668
+ return;
1669
+ }
1670
+ /** @type {?} */
1671
+ var hasData = !!(this.displayLines && this.displayLines.length);
1672
+ /** @type {?} */
1673
+ var nextScroll = resolveAutoTableScroll(this.nzTableComponent, hasData);
1674
+ /** @type {?} */
1675
+ var nextX = nextScroll ? nextScroll.x : null;
1676
+ if (this.tableScroll && this.tableScroll.x === nextX) {
1677
+ return;
1678
+ }
1679
+ this.tableScroll = nextScroll;
1680
+ this.cdr.markForCheck();
1434
1681
  };
1435
1682
  Object.defineProperty(HdDetailLinesPageComponent.prototype, "displayLines", {
1436
1683
  get: /**
@@ -1672,13 +1919,16 @@
1672
1919
  HdDetailLinesPageComponent.decorators = [
1673
1920
  { type: core.Component, args: [{
1674
1921
  selector: "hd-detail-lines-page",
1675
- template: "<ng-container>\n <nz-table #hdTable [nzScroll]=\"scroll\" class=\"hd-table-container\" nzShowSizeChanger nzShowQuickJumper\n nzFrontPagination=\"false\" nzSize=\"middle\" [nzData]=\"displayLines\" [nzTotal]=\"totalCount\"\n [(nzPageIndex)]=\"tablePageIndex\" [(nzPageSize)]=\"tablePageSize\" [nzLoading]=\"tableLoading\"\n [nzPageSizeOptions]=\"[ 10, 50, 100, 200, 500, 1000 ]\" (nzPageIndexChange)=\"onPageIndexChange($event)\"\n (nzPageSizeChange)=\"onPageSizeChange($event)\" [nzShowTotal]=\"tableTotalTemplate\"\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\">\n <td *ngIf=\"showSelected\" nzWidth=\"40px\" nzLeft=\"0px\" nzShowCheckbox\n [(nzChecked)]=\"mapOfCheckedId[data[selectField]]\" (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,2).toFixed(2)) : '' }} </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>\n <td *ngIf=\"showSelected\" nzWidth=\"40px\" nzLeft=\"0px\" nzShowCheckbox\n [(nzChecked)]=\"mapOfCheckedId[data[selectField]]\" (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,2).toFixed(2)) : '' }} </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",
1676
- 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}: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%}.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 .hd-table-total>td{border:0!important}"]
1922
+ template: "<ng-container>\n <nz-table #hdTable [nzScroll]=\"effectiveScroll\" class=\"hd-table-container\" nzShowSizeChanger nzShowQuickJumper\n nzFrontPagination=\"false\" nzSize=\"middle\" [nzData]=\"displayLines\" [nzTotal]=\"totalCount\"\n [(nzPageIndex)]=\"tablePageIndex\" [(nzPageSize)]=\"tablePageSize\" [nzLoading]=\"tableLoading\"\n [nzPageSizeOptions]=\"[ 10, 50, 100, 200, 500, 1000 ]\" (nzPageIndexChange)=\"onPageIndexChange($event)\"\n (nzPageSizeChange)=\"onPageSizeChange($event)\" [nzShowTotal]=\"tableTotalTemplate\"\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\">\n <td *ngIf=\"showSelected\" nzWidth=\"40px\" nzLeft=\"0px\" nzShowCheckbox\n [(nzChecked)]=\"mapOfCheckedId[data[selectField]]\" (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,2).toFixed(2)) : '' }} </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>\n <td *ngIf=\"showSelected\" nzWidth=\"40px\" nzLeft=\"0px\" nzShowCheckbox\n [(nzChecked)]=\"mapOfCheckedId[data[selectField]]\" (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,2).toFixed(2)) : '' }} </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",
1923
+ 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}: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%}.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 .hd-table-total>td{border:0!important}.hd-table-container ::ng-deep .ant-table-fixed-right{right:0!important}.hd-table-container ::ng-deep .ant-table-fixed-right .ant-table-tbody>tr>td,.hd-table-container ::ng-deep .ant-table-fixed-right .ant-table-thead>tr>th{background:#f5f8f6}.hd-table-container ::ng-deep .ant-table-fixed-right .ant-table-tbody>tr:hover>td{background:#fff}"]
1677
1924
  }] }
1678
1925
  ];
1679
1926
  /** @nocollapse */
1680
- HdDetailLinesPageComponent.ctorParameters = function () { return []; };
1927
+ HdDetailLinesPageComponent.ctorParameters = function () { return [
1928
+ { type: core.ChangeDetectorRef }
1929
+ ]; };
1681
1930
  HdDetailLinesPageComponent.propDecorators = {
1931
+ nzTableComponent: [{ type: core.ViewChild, args: ["hdTable", { static: false },] }],
1682
1932
  lines: [{ type: core.Input }],
1683
1933
  tableData: [{ type: core.Input }],
1684
1934
  showSelected: [{ type: core.Input }],
@@ -1715,6 +1965,8 @@
1715
1965
  return HdDetailLinesPageComponent;
1716
1966
  }());
1717
1967
  if (false) {
1968
+ /** @type {?} */
1969
+ HdDetailLinesPageComponent.prototype.nzTableComponent;
1718
1970
  /** @type {?} */
1719
1971
  HdDetailLinesPageComponent.prototype.lines;
1720
1972
  /**
@@ -1726,9 +1978,14 @@
1726
1978
  HdDetailLinesPageComponent.prototype.showSelected;
1727
1979
  /** @type {?} */
1728
1980
  HdDetailLinesPageComponent.prototype.allowDrop;
1729
- /** @type {?} */
1981
+ /**
1982
+ * 不传则按列宽与容器宽度自动计算横向滚动
1983
+ * @type {?}
1984
+ */
1730
1985
  HdDetailLinesPageComponent.prototype.scroll;
1731
1986
  /** @type {?} */
1987
+ HdDetailLinesPageComponent.prototype.tableScroll;
1988
+ /** @type {?} */
1732
1989
  HdDetailLinesPageComponent.prototype.selectField;
1733
1990
  /** @type {?} */
1734
1991
  HdDetailLinesPageComponent.prototype.selectedField;
@@ -1772,6 +2029,11 @@
1772
2029
  HdDetailLinesPageComponent.prototype.mapOfCheckList;
1773
2030
  /** @type {?} */
1774
2031
  HdDetailLinesPageComponent.prototype.isCrossPageSelectLocal;
2032
+ /**
2033
+ * @type {?}
2034
+ * @private
2035
+ */
2036
+ HdDetailLinesPageComponent.prototype.cdr;
1775
2037
  }
1776
2038
 
1777
2039
  /**
@@ -1845,7 +2107,7 @@
1845
2107
  'published', 'PUBLISHED', 'AUDITED', '已收票', '付款完成', '收款完成', '已收款', 'accepted',
1846
2108
  'offered', 'confirmed', 'effective', 'EFFECTIVE', '已发布', 'paid', 'successful', 'READ',
1847
2109
  'signed', 'ON_SALE', 'enabled', 'entrucked', 'normal', 'statemented',
1848
- '已付款', '已核销', '已开票', '已完成', '已确认', '已红冲', '已结束', '已发货', '已收货',
2110
+ '已付款', '已核销', '已开票', '已完成', '已确认', '已红冲', '已结束', '已发货', '已收货', '生效中'
1849
2111
  ],
1850
2112
  // 橙色:部分完成 / 打印后修改 / 临期预警
1851
2113
  '#F05B24': [
@@ -2511,10 +2773,6 @@
2511
2773
  // 操作列按钮:add / delete / copy
2512
2774
  this.scroll = { x: "1px" };
2513
2775
  this.changeEvent = new core.EventEmitter();
2514
- /**
2515
- * 新增空行后抛出该行 FormGroup(手动添加、键盘跳行自动补行等)
2516
- */
2517
- this.addLineEvent = new core.EventEmitter();
2518
2776
  /**
2519
2777
  * 勾选变化时抛出当前勾选行 FormGroup 列表
2520
2778
  */
@@ -4562,10 +4820,7 @@
4562
4820
  if (isFocus === void 0) { isFocus = true; }
4563
4821
  /** @type {?} */
4564
4822
  var insertAt = this.getInsertIndexAfter(afterLine);
4565
- /** @type {?} */
4566
- var newLine = this.newLineItem();
4567
- this.linesFormArray.insert(insertAt, newLine);
4568
- this.addLineEvent.emit(newLine);
4823
+ this.linesFormArray.insert(insertAt, this.newLineItem());
4569
4824
  this.calculateLineNumber();
4570
4825
  // 跳到新增行所在页,避免页码异常时看不到数据
4571
4826
  this.paginationPageIndex =
@@ -5080,7 +5335,6 @@
5080
5335
  operateButtons: [{ type: core.Input }],
5081
5336
  scroll: [{ type: core.Input }],
5082
5337
  changeEvent: [{ type: core.Output }],
5083
- addLineEvent: [{ type: core.Output }],
5084
5338
  selectionChange: [{ type: core.Output }],
5085
5339
  showDeleteConfirm: [{ type: core.Input }],
5086
5340
  showTotal: [{ type: core.Input }],
@@ -5155,11 +5409,6 @@
5155
5409
  HdFormLinesComponent.prototype.scroll;
5156
5410
  /** @type {?} */
5157
5411
  HdFormLinesComponent.prototype.changeEvent;
5158
- /**
5159
- * 新增空行后抛出该行 FormGroup(手动添加、键盘跳行自动补行等)
5160
- * @type {?}
5161
- */
5162
- HdFormLinesComponent.prototype.addLineEvent;
5163
5412
  /**
5164
5413
  * 勾选变化时抛出当前勾选行 FormGroup 列表
5165
5414
  * @type {?}
@@ -8149,60 +8398,32 @@
8149
8398
  * @private
8150
8399
  * @return {?}
8151
8400
  */
8152
- HdTableComponent.prototype.getTableViewportWidth = /**
8401
+ HdTableComponent.prototype.hasTableData = /**
8153
8402
  * @private
8154
8403
  * @return {?}
8155
8404
  */
8156
8405
  function () {
8157
- if (!this.nzTableComponent || !this.nzTableComponent.tableMainElement) {
8158
- return 0;
8159
- }
8160
- /** @type {?} */
8161
- var tableMain = (/** @type {?} */ (this.nzTableComponent.tableMainElement
8162
- .nativeElement));
8163
- /** @type {?} */
8164
- var wrapper = (/** @type {?} */ (tableMain.closest(".ant-table-wrapper")));
8165
- if (wrapper && wrapper.clientWidth > 0) {
8166
- return wrapper.clientWidth;
8167
- }
8168
- /** @type {?} */
8169
- var host = (/** @type {?} */ (tableMain.closest(".hd-table-container")));
8170
- if (host && host.clientWidth > 0) {
8171
- return host.clientWidth;
8172
- }
8173
- return 0;
8406
+ return !!(this.tableData &&
8407
+ this.tableData.content &&
8408
+ this.tableData.content.length);
8174
8409
  };
8175
8410
  /** 列总宽超出外层容器才启用横向 scroll(不能用 table 自身宽度,会被 scroll.x 撑宽) */
8176
8411
  /**
8177
8412
  * 列总宽超出外层容器才启用横向 scroll(不能用 table 自身宽度,会被 scroll.x 撑宽)
8178
8413
  * @private
8179
8414
  * @param {?} colWidth
8180
- * @param {?} useVirtual
8181
8415
  * @return {?}
8182
8416
  */
8183
8417
  HdTableComponent.prototype.resolveScrollX = /**
8184
8418
  * 列总宽超出外层容器才启用横向 scroll(不能用 table 自身宽度,会被 scroll.x 撑宽)
8185
8419
  * @private
8186
8420
  * @param {?} colWidth
8187
- * @param {?} useVirtual
8188
8421
  * @return {?}
8189
8422
  */
8190
- function (colWidth, useVirtual) {
8191
- if (colWidth <= 0) {
8192
- return useVirtual ? "1px" : null;
8193
- }
8194
- if (useVirtual) {
8195
- return colWidth + "px";
8196
- }
8423
+ function (colWidth) {
8197
8424
  /** @type {?} */
8198
- var viewportWidth = this.getTableViewportWidth();
8199
- if (viewportWidth > 0) {
8200
- return colWidth > viewportWidth ? colWidth + "px" : null;
8201
- }
8202
- if (typeof window !== "undefined" && colWidth > window.innerWidth - 32) {
8203
- return colWidth + "px";
8204
- }
8205
- return null;
8425
+ var autoScroll = resolveAutoTableScroll(this.nzTableComponent, this.hasTableData(), colWidth);
8426
+ return autoScroll ? autoScroll.x : null;
8206
8427
  };
8207
8428
  /** 表格渲染后按实际容器宽度校正横向 scroll */
8208
8429
  /**
@@ -8220,7 +8441,7 @@
8220
8441
  return;
8221
8442
  }
8222
8443
  /** @type {?} */
8223
- var scrollX = this.resolveScrollX(this.tableColWidthTotal, false);
8444
+ var scrollX = this.resolveScrollX(this.tableColWidthTotal);
8224
8445
  if (this.scroll && this.scroll.x === scrollX && this.scroll.y === null) {
8225
8446
  return;
8226
8447
  }
@@ -8257,22 +8478,24 @@
8257
8478
  var maxOffset = this.tableTotal ? 180 : 140;
8258
8479
  /** @type {?} */
8259
8480
  var useVirtual = this.useVirtualScroll;
8481
+ /** @type {?} */
8482
+ var scrollX = this.resolveScrollX(colWidth);
8260
8483
  if (this.virtualScroll && !useVirtual) {
8261
8484
  this.scroll = {
8262
- x: this.resolveScrollX(colWidth, false),
8485
+ x: scrollX,
8263
8486
  y: null,
8264
8487
  };
8265
8488
  return;
8266
8489
  }
8267
8490
  if (!this.virtualScroll) {
8268
8491
  this.scroll = {
8269
- x: "1px",
8492
+ x: scrollX,
8270
8493
  y: "calc(100vh - " + maxOffset + "px)",
8271
8494
  };
8272
8495
  return;
8273
8496
  }
8274
8497
  this.scroll = {
8275
- x: this.resolveScrollX(colWidth, true),
8498
+ x: scrollX,
8276
8499
  y: this.getVirtualScrollY(maxOffset),
8277
8500
  };
8278
8501
  };
@@ -8439,7 +8662,7 @@
8439
8662
  selector: "hd-table",
8440
8663
  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 <hd-button type=\"primary\" nz-dropdown nzTrigger=\"click\" [nzDropdownMenu]=\"menu\" (clickAction)=\"confirmDropdown()\"\n [nzVisible]=\"isDropdownVisible\">\u8BBE\u7F6E\u5217</hd-button>\n <nz-dropdown-menu #menu=\"nzDropdownMenu\">\n <div style=\"max-height: 400px;overflow-y: scroll;\">\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 style=\"text-align: right;background: #fff;padding: 4px;\">\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 </nz-dropdown-menu>\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\" [nzScroll]=\"scroll\"\n nzShowSizeChanger nzShowQuickJumper nzFrontPagination=\"false\" nzSize=\"middle\" [nzData]=\"tableData.content\"\n [nzTotal]=\"tableData.totalElements\" [(nzPageIndex)]=\"tablePageIndex\" [nzLoading]=\"tableLoading\"\n [nzPageSizeOptions]=\"[ 10, 50, 100, 200, 500, 1000 ]\" [(nzPageSize)]=\"tablePageSize\" (nzPageSizeChange)=\"search(true)\"\n (nzPageIndexChange)=\"search(false)\" (nzCurrentPageDataChange)=\"showSelected ? currentPageDataChange($event) : null\"\n [nzShowTotal]=\"tableTotalTemplate\" [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\" nzShowCheckbox [(nzChecked)]=\"isAllDisplayDataChecked\"\n [nzIndeterminate]=\"isIndeterminate\" (nzCheckedChange)=\"checkAll($event)\"></th>\n <ng-container *ngFor=\"let col of tableCols\">\n <th *ngIf=\"col.isShow\" [nzWidth]=\"col.width + 'px'\" [nzAlign]=\"col.align\"\n [nzLeft]=\"col.fixed === 'left' ? col.fixedWidth + 'px' : null\"\n [nzRight]=\"col.fixed === 'right' ? 0 + 'px' : null\" nz-resizable nzBounds=\"window\" nzPreview\n (nzResizeEnd)=\"onResize($event, col)\" [nzShowSort]=\"col.canSort\" [nzSortKey]=\"col.name\">\n {{ col.title }}\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\">\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 <ng-container *ngTemplateOutlet=\"tableCells; context: { $implicit: data, index: i }\"></ng-container>\n </tr>\n </ng-container>\n </tbody>\n <tfoot *ngIf=\"showTableTotal\">\n <tr class=\"hd-table-total\">\n <td>\u5408\u8BA1</td>\n <ng-container *ngFor=\"let tableTotalOption of tableTotalOptionList\">\n <td>{{ tableTotalOption }}</td>\n </ng-container>\n </tr>\n </tfoot>\n <ng-template #tableTotalTemplate>\n \u5171 {{tableData.totalElements}} \u6761\u6570\u636E\n </ng-template>\n </nz-table>\n</ng-container>\n\n<ng-template #tableCells let-data let-index=\"index\">\n <td nzLeft=\"0px\" *ngIf=\"showSelected\" nzShowCheckbox [nzChecked]=\"mapOfCheckedId[data[selectField]]\"\n (nzCheckedChange)=\"refreshStatus($event, data)\"></td>\n <ng-container *ngFor=\"let col of tableCols; trackBy: trackByCol\">\n <td *ngIf=\"col.isShow\" [ngStyle]=\"{'max-width': col.width + 'px'}\" [nzAlign]=\"col.align\"\n [nzLeft]=\"col.fixed === 'left' ? col.fixedWidth + 'px' : null\"\n [nzRight]=\"col.fixed === 'right' ? 0 + 'px' : null\"\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]=\"btn.name === '\u5220\u9664' ? 'common-danger-btn': ''\"\n (click)=\"triggerEvent(btn.click || null, data)\">{{ btn.name }}</a>\n </ng-container>\n <ng-template #showConfirmTemplate>\n <a *ngIf=\"btn.permission ? btn.permission(data) : true\"\n [class]=\"btn.name === '\u5220\u9664' ? 'common-danger-btn': ''\" nz-popconfirm\n [nzPopconfirmTitle]=\"'\u786E\u8BA4\u8981' + btn.name + '\u5417?'\"\n (nzOnConfirm)=\"triggerEvent(btn.click || null, data)\">{{\n btn.name }}</a>\n </ng-template>\n </ng-container>\n </div>\n </ng-container>\n <ng-template #notOperateTemplate>\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)\" 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;else noClickTemplate\">\n <ng-container *ngIf=\"(data | hdTableCell:col) as cell\">\n <a *ngIf=\"cell.overflow && !(col.canWarp && showDetail)\" nz-tooltip [nzTooltipTitle]=\"cell.title\"\n [ngStyle]=\"{'color': cell.isEmpty ? '#2A3634' : (col?.color ? col.color : null)}\"\n (click)=\"triggerEvent(col.click || null, data)\">{{ cell.display }}</a>\n <a *ngIf=\"!cell.overflow || (col.canWarp && showDetail)\"\n [ngStyle]=\"{'color': cell.isEmpty ? '#2A3634' : (col?.color ? col.color : null)}\"\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)\" nz-tooltip [nzTooltipTitle]=\"cell.title\"\n [ngStyle]=\"{'color': col?.color ? col.color : null}\">{{ cell.display }}</span>\n <span *ngIf=\"!cell.overflow || (col.canWarp && showDetail)\"\n [ngStyle]=\"{'color': col?.color ? col.color : null}\">{{ cell.display }}</span>\n </ng-container>\n </ng-template>\n </ng-template>\n </ng-template>\n </td>\n </ng-container>\n</ng-template>\n",
8441
8664
  changeDetection: core.ChangeDetectionStrategy.OnPush,
8442
- 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__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}: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%}.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-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 .hd-table-total>td{border:0!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:not(.hd-table--virtual) ::ng-deep .ant-table-body{max-height:none!important;overflow-y:visible!important}::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}.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}.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}"]
8665
+ 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__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}: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%}.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-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 .hd-table-total>td{border:0!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:not(.hd-table--virtual) ::ng-deep .ant-table-body{max-height:none!important;overflow-y:visible!important}.hd-table-container ::ng-deep .ant-table-fixed-right{right:0!important}.hd-table-container ::ng-deep .ant-table-fixed-right .ant-table-tbody>tr>td,.hd-table-container ::ng-deep .ant-table-fixed-right .ant-table-thead>tr>th{background:#f5f8f6}.hd-table-container ::ng-deep .ant-table-fixed-right .ant-table-tbody>tr:hover>td{background:#fff}::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}.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}.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}"]
8443
8666
  }] }
8444
8667
  ];
8445
8668
  /** @nocollapse */