fantasy-ngzorro 1.2.19 → 1.3.0

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.
@@ -1,7 +1,7 @@
1
- import { Component, ContentChild, NgModule, Injectable, ɵɵdefineInjectable, EventEmitter, Input, Output, NO_ERRORS_SCHEMA, ɵɵinject, ChangeDetectorRef } from '@angular/core';
1
+ import { Component, ContentChild, NgModule, Injectable, ɵɵdefineInjectable, EventEmitter, Input, Output, NO_ERRORS_SCHEMA, ElementRef, ChangeDetectorRef, ViewChildren, ɵɵinject } from '@angular/core';
2
2
  import { CommonModule } from '@angular/common';
3
3
  import { FormsModule, FormBuilder, ReactiveFormsModule, Validators } from '@angular/forms';
4
- import { NgZorroAntdModule, InputBoolean, NzModalService } from 'ng-zorro-antd';
4
+ import { NgZorroAntdModule, InputBoolean, NzInputNumberComponent, NzSelectComponent, NzDatePickerComponent, NzRangePickerComponent, NzTimePickerComponent, NzModalService } from 'ng-zorro-antd';
5
5
  import { __decorate, __metadata, __spread, __values, __assign, __read } from 'tslib';
6
6
  import { moveItemInArray, DragDropModule } from '@angular/cdk/drag-drop';
7
7
  import { round } from 'lodash';
@@ -1281,14 +1281,144 @@ var HdSpaceModule = /** @class */ (function () {
1281
1281
  return HdSpaceModule;
1282
1282
  }());
1283
1283
 
1284
+ /**
1285
+ * @fileoverview added by tsickle
1286
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
1287
+ */
1288
+ // 控件列表
1289
+ var
1290
+ // 控件列表
1291
+ FormLine = /** @class */ (function () {
1292
+ function FormLine() {
1293
+ // 输入框的提示文件
1294
+ this.require = false; // 是否必填
1295
+ // 是否必填
1296
+ this.hide = false; // 是否为隐藏字段,仅用于填充表单的字段,不显示在页面上
1297
+ // 列对齐方式
1298
+ this.value = null; // 值 不传默认为null
1299
+ // 需要保留小数的列的位数
1300
+ this.inputNumber = new InputNumber(); // number组件的min、max、step
1301
+ // 不可输入状态
1302
+ this.showTime = false; // 日期选择器是否包含时间
1303
+ this.canSearch = false; // 指明hide 情况下的控件是否可以被搜索,默认false
1304
+ }
1305
+ return FormLine;
1306
+ }());
1307
+ if (false) {
1308
+ /** @type {?} */
1309
+ FormLine.prototype.type;
1310
+ /** @type {?} */
1311
+ FormLine.prototype.label;
1312
+ /** @type {?} */
1313
+ FormLine.prototype.name;
1314
+ /** @type {?} */
1315
+ FormLine.prototype.placeholder;
1316
+ /** @type {?} */
1317
+ FormLine.prototype.require;
1318
+ /** @type {?} */
1319
+ FormLine.prototype.hide;
1320
+ /** @type {?} */
1321
+ FormLine.prototype.align;
1322
+ /** @type {?} */
1323
+ FormLine.prototype.value;
1324
+ /** @type {?} */
1325
+ FormLine.prototype.isSelect;
1326
+ /** @type {?} */
1327
+ FormLine.prototype.selectOption;
1328
+ /** @type {?} */
1329
+ FormLine.prototype.explainOptionRight;
1330
+ /** @type {?} */
1331
+ FormLine.prototype.explainOption;
1332
+ /** @type {?} */
1333
+ FormLine.prototype.colorOption;
1334
+ /** @type {?} */
1335
+ FormLine.prototype.maxLength;
1336
+ /** @type {?} */
1337
+ FormLine.prototype.preserveNumber;
1338
+ /** @type {?} */
1339
+ FormLine.prototype.inputNumber;
1340
+ /** @type {?} */
1341
+ FormLine.prototype.onChangeEvent;
1342
+ /** @type {?} */
1343
+ FormLine.prototype.onSearchEvent;
1344
+ /** @type {?} */
1345
+ FormLine.prototype.defaultLabel;
1346
+ /** @type {?} */
1347
+ FormLine.prototype.hdDisabledDate;
1348
+ /** @type {?} */
1349
+ FormLine.prototype.disabled;
1350
+ /** @type {?} */
1351
+ FormLine.prototype.showTime;
1352
+ /** @type {?} */
1353
+ FormLine.prototype.style;
1354
+ /** @type {?} */
1355
+ FormLine.prototype.canSearch;
1356
+ /** @type {?} */
1357
+ FormLine.prototype.onChangeEventDebounceTime;
1358
+ /** @type {?} */
1359
+ FormLine.prototype.onSearchEventEventDebounceTime;
1360
+ }
1361
+ var ColorOption = /** @class */ (function () {
1362
+ function ColorOption() {
1363
+ }
1364
+ return ColorOption;
1365
+ }());
1366
+ if (false) {
1367
+ /** @type {?} */
1368
+ ColorOption.prototype.name;
1369
+ /** @type {?} */
1370
+ ColorOption.prototype.color;
1371
+ }
1372
+ var ExplainOption = /** @class */ (function () {
1373
+ function ExplainOption() {
1374
+ }
1375
+ return ExplainOption;
1376
+ }());
1377
+ if (false) {
1378
+ /** @type {?} */
1379
+ ExplainOption.prototype.show;
1380
+ /** @type {?} */
1381
+ ExplainOption.prototype.name;
1382
+ /** @type {?} */
1383
+ ExplainOption.prototype.color;
1384
+ }
1385
+ /** @enum {string} */
1386
+ var FormLineType = {
1387
+ Input: 'Input',
1388
+ Select: 'Select',
1389
+ Date: 'Date',
1390
+ DateRange: 'DateRange',
1391
+ TextArea: 'TextArea',
1392
+ InputNumber: 'InputNumber',
1393
+ MultipleSelect: 'MultipleSelect',
1394
+ ViewDom: 'ViewDom',
1395
+ Switch: 'Switch',
1396
+ Time: 'Time' // 时间选择器
1397
+ ,
1398
+ };
1399
+ var HdFormLinesService = /** @class */ (function () {
1400
+ function HdFormLinesService() {
1401
+ }
1402
+ HdFormLinesService.decorators = [
1403
+ { type: Injectable, args: [{
1404
+ providedIn: 'root'
1405
+ },] }
1406
+ ];
1407
+ /** @nocollapse */
1408
+ HdFormLinesService.ctorParameters = function () { return []; };
1409
+ /** @nocollapse */ HdFormLinesService.ngInjectableDef = ɵɵdefineInjectable({ factory: function HdFormLinesService_Factory() { return new HdFormLinesService(); }, token: HdFormLinesService, providedIn: "root" });
1410
+ return HdFormLinesService;
1411
+ }());
1412
+
1284
1413
  /**
1285
1414
  * @fileoverview added by tsickle
1286
1415
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
1287
1416
  */
1288
1417
  var HdFormLinesComponent = /** @class */ (function () {
1289
- function HdFormLinesComponent(fb) {
1418
+ function HdFormLinesComponent(fb, cdr) {
1290
1419
  var _this = this;
1291
1420
  this.fb = fb;
1421
+ this.cdr = cdr;
1292
1422
  this.tableLoading = false;
1293
1423
  this.showSearch = false;
1294
1424
  this.operateButtons = ['add', 'delete'];
@@ -1296,7 +1426,8 @@ var HdFormLinesComponent = /** @class */ (function () {
1296
1426
  this.changeEvent = new EventEmitter();
1297
1427
  this.showDeleteConfirm = false;
1298
1428
  this.paginationPageIndex = 1;
1299
- this.paginationPageSize = 10;
1429
+ // TODO:这里暂时变成2条去处理,做完之后需要改成10
1430
+ this.paginationPageSize = 3;
1300
1431
  // 合计区域
1301
1432
  this.showTotal = false;
1302
1433
  this.totalOption = [];
@@ -1315,6 +1446,13 @@ var HdFormLinesComponent = /** @class */ (function () {
1315
1446
  // 表单当前的状态
1316
1447
  this.searchSubject = new Subject();
1317
1448
  this.debounceTimeout = 0; // 默认防抖时间
1449
+ // 当前页的dom二维数组
1450
+ this.collectDomList = [];
1451
+ // 当前聚焦的dom元素坐标
1452
+ this.activeDomX = null;
1453
+ this.activeDomY = null;
1454
+ this.activeDom = null;
1455
+ this.activeSelectedComponentOpen = false;
1318
1456
  this.textWidthCache = {};
1319
1457
  this.searchSubscription = this.searchSubject.pipe(debounceTime(this.debounceTimeout)).subscribe((/**
1320
1458
  * @param {?} __0
@@ -1328,13 +1466,533 @@ var HdFormLinesComponent = /** @class */ (function () {
1328
1466
  /**
1329
1467
  * @return {?}
1330
1468
  */
1331
- HdFormLinesComponent.prototype.ngOnInit = /**
1469
+ HdFormLinesComponent.prototype.ngOnInit = /**
1470
+ * @return {?}
1471
+ */
1472
+ function () {
1473
+ // 缓存一下总的表单数据
1474
+ this.storeFormLinesData = this.formLinesData;
1475
+ this.init();
1476
+ };
1477
+ /**
1478
+ * @return {?}
1479
+ */
1480
+ HdFormLinesComponent.prototype.ngAfterViewInit = /**
1481
+ * @return {?}
1482
+ */
1483
+ function () {
1484
+ this.collectDomData();
1485
+ };
1486
+ Object.defineProperty(HdFormLinesComponent.prototype, "formLinesLength", {
1487
+ get: /**
1488
+ * @return {?}
1489
+ */
1490
+ function () {
1491
+ return this.linesFormArray.controls.length;
1492
+ },
1493
+ enumerable: true,
1494
+ configurable: true
1495
+ });
1496
+ /**
1497
+ * @return {?}
1498
+ */
1499
+ HdFormLinesComponent.prototype.collectDomData = /**
1500
+ * @return {?}
1501
+ */
1502
+ function () {
1503
+ this.collectDomList = [];
1504
+ /** @type {?} */
1505
+ var pageDomList = this.formInputDomList.toArray();
1506
+ // Step 1: 获取当前页的数据量
1507
+ /** @type {?} */
1508
+ var startIndex = (this.paginationPageIndex - 1) * this.paginationPageSize;
1509
+ /** @type {?} */
1510
+ var endIndex = this.paginationPageIndex * this.paginationPageSize;
1511
+ /** @type {?} */
1512
+ var adjustedEndIndex = endIndex > this.formLinesLength ? this.formLinesLength : endIndex;
1513
+ /** @type {?} */
1514
+ var pageLinesLength = adjustedEndIndex - startIndex;
1515
+ /** @type {?} */
1516
+ var interval = pageDomList.length / pageLinesLength;
1517
+ // Step 2: 拆分formInputDomList
1518
+ for (var i = 0; i < pageLinesLength; i++) {
1519
+ this.collectDomList.push(pageDomList.splice(0, interval));
1520
+ }
1521
+ // 关闭所有NzInputNumberComponent的键盘上下箭头触发+-的功能
1522
+ for (var i = 0; i < this.collectDomList.length; i++) {
1523
+ for (var j = 0; j < this.collectDomList[i].length; j++) {
1524
+ /** @type {?} */
1525
+ var dom = this.collectDomList[i][j];
1526
+ if (dom instanceof NzInputNumberComponent) {
1527
+ dom.down = (/**
1528
+ * @return {?}
1529
+ */
1530
+ function () { });
1531
+ dom.up = (/**
1532
+ * @return {?}
1533
+ */
1534
+ function () { });
1535
+ }
1536
+ }
1537
+ }
1538
+ };
1539
+ // 聚焦下一个dom
1540
+ // 聚焦下一个dom
1541
+ /**
1542
+ * @param {?} x
1543
+ * @param {?} y
1544
+ * @return {?}
1545
+ */
1546
+ HdFormLinesComponent.prototype.jumpToNextInput =
1547
+ // 聚焦下一个dom
1548
+ /**
1549
+ * @param {?} x
1550
+ * @param {?} y
1551
+ * @return {?}
1552
+ */
1553
+ function (x, y) {
1554
+ if (x === null || y === null || !this.collectDomList || this.collectDomList.length === 0) {
1555
+ return;
1556
+ }
1557
+ // 如果是最后一个可输入元素,新增行
1558
+ if (x === this.collectDomList.length - 1 && y === this.collectDomList[0].length - 1) {
1559
+ this.addNewLineAndFocus();
1560
+ }
1561
+ else {
1562
+ if (y === this.collectDomList[0].length - 1) {
1563
+ // 如果是最后一列,则跳转到下一行第一个输入框
1564
+ this.focusDom(x + 1, 0, 'right');
1565
+ }
1566
+ else {
1567
+ // 如果不是最后一列,则跳转到当前行下一个输入框
1568
+ this.focusDom(x, y + 1, 'right');
1569
+ }
1570
+ }
1571
+ };
1572
+ /**
1573
+ * 增加新行并且聚焦到第一个元素,
1574
+ * 这里要注意,如果存在翻页情况,需要处理
1575
+ */
1576
+ /**
1577
+ * 增加新行并且聚焦到第一个元素,
1578
+ * 这里要注意,如果存在翻页情况,需要处理
1579
+ * @return {?}
1580
+ */
1581
+ HdFormLinesComponent.prototype.addNewLineAndFocus = /**
1582
+ * 增加新行并且聚焦到第一个元素,
1583
+ * 这里要注意,如果存在翻页情况,需要处理
1584
+ * @return {?}
1585
+ */
1586
+ function () {
1587
+ var _this = this;
1588
+ // 当前行为当前页最后一行的时候,判断下一页是否有数据
1589
+ // 1、如果有:翻页+聚焦第一行第一个元素
1590
+ // 2、如果没有:新增行+翻页+聚焦第一行第一个元素
1591
+ if (this.activeDomX === this.paginationPageSize - 1) {
1592
+ // 判断下一页是否有数据
1593
+ if (this.paginationPageIndex < Math.ceil(this.formLinesLength / this.paginationPageSize)) {
1594
+ // 翻页+聚焦第一行第一个元素
1595
+ this.paginationPageIndex++;
1596
+ setTimeout((/**
1597
+ * @return {?}
1598
+ */
1599
+ function () {
1600
+ _this.collectDomData();
1601
+ _this.focusDom(0, 0, 'right');
1602
+ }), 0);
1603
+ }
1604
+ else {
1605
+ // 新增行+翻页+聚焦第一行第一个元素
1606
+ this.addFormLine();
1607
+ this.paginationPageIndex++;
1608
+ setTimeout((/**
1609
+ * @return {?}
1610
+ */
1611
+ function () {
1612
+ _this.collectDomData();
1613
+ _this.focusDom(0, 0);
1614
+ }), 0);
1615
+ }
1616
+ }
1617
+ else {
1618
+ this.addFormLine();
1619
+ }
1620
+ };
1621
+ // 聚焦到上一个dom
1622
+ // 聚焦到上一个dom
1623
+ /**
1624
+ * @param {?} x
1625
+ * @param {?} y
1626
+ * @return {?}
1627
+ */
1628
+ HdFormLinesComponent.prototype.jumpToPrevInput =
1629
+ // 聚焦到上一个dom
1630
+ /**
1631
+ * @param {?} x
1632
+ * @param {?} y
1633
+ * @return {?}
1634
+ */
1635
+ function (x, y) {
1636
+ var _this = this;
1637
+ if (x === null || y === null || !this.collectDomList || this.collectDomList.length === 0) {
1638
+ return;
1639
+ }
1640
+ if (x === 0 && y === 0) {
1641
+ // 如果是第一个可输入元素, 判断是否有上一页, 如果有,则翻页+聚焦到上一页最后一个元素
1642
+ if (this.paginationPageIndex > 1) {
1643
+ // 翻页+聚焦到上一页最后一个元素
1644
+ this.paginationPageIndex--;
1645
+ setTimeout((/**
1646
+ * @return {?}
1647
+ */
1648
+ function () {
1649
+ _this.collectDomData();
1650
+ _this.focusDom(_this.collectDomList.length - 1, _this.collectDomList[0].length - 1);
1651
+ }), 0);
1652
+ }
1653
+ return;
1654
+ }
1655
+ else {
1656
+ if (y === 0) {
1657
+ // 如果是第一列,则跳转到上一行最后一个输入框
1658
+ this.focusDom(x - 1, this.collectDomList[0].length - 1, 'left');
1659
+ }
1660
+ else {
1661
+ // 如果不是第一列,则跳转到当前行上一个输入框
1662
+ this.focusDom(x, y - 1, 'left');
1663
+ }
1664
+ }
1665
+ };
1666
+ /**
1667
+ * 聚焦到某个dom
1668
+ * @param x 坐标x
1669
+ * @param y 坐标y
1670
+ * @param jumpDirection 跳转方向
1671
+ */
1672
+ /**
1673
+ * 聚焦到某个dom
1674
+ * @param {?} x 坐标x
1675
+ * @param {?} y 坐标y
1676
+ * @param {?=} jumpDirection 跳转方向
1677
+ * @return {?}
1678
+ */
1679
+ HdFormLinesComponent.prototype.focusDom = /**
1680
+ * 聚焦到某个dom
1681
+ * @param {?} x 坐标x
1682
+ * @param {?} y 坐标y
1683
+ * @param {?=} jumpDirection 跳转方向
1684
+ * @return {?}
1685
+ */
1686
+ function (x, y, jumpDirection) {
1687
+ if (jumpDirection === void 0) { jumpDirection = 'right'; }
1688
+ if (x === null || y === null || !this.collectDomList || this.collectDomList.length === 0) {
1689
+ return;
1690
+ }
1691
+ // 先清除一下当前的焦点
1692
+ this.cleanFocusDom(this.activeDomX, this.activeDomY);
1693
+ if (this.collectDomList[x] && this.collectDomList[x][y]) {
1694
+ /** @type {?} */
1695
+ var dom_1 = this.collectDomList[x][y];
1696
+ // 需要判断下一个focus的dom是否是禁用状态,如果是禁用状态需要跳过
1697
+ if (dom_1 instanceof NzSelectComponent) {
1698
+ if (dom_1.nzDisabled) {
1699
+ if (jumpDirection === 'right') {
1700
+ this.jumpToNextInput(x, y);
1701
+ }
1702
+ else if (jumpDirection === 'left') {
1703
+ this.jumpToPrevInput(x, y);
1704
+ }
1705
+ return;
1706
+ }
1707
+ dom_1.nzSelectTopControlComponent.inputElement.nativeElement.scrollIntoView({ behavior: 'smooth', block: 'center', inline: 'center' });
1708
+ // 这里多选框需要额外处理下,因为向下的时候会触发内部Input的聚焦,把下一个dom的focus放到宏任务中,延迟处理。
1709
+ if (dom_1.nzSelectService.mode === 'multiple') {
1710
+ setTimeout((/**
1711
+ * @return {?}
1712
+ */
1713
+ function () {
1714
+ dom_1.focus();
1715
+ }), 0);
1716
+ }
1717
+ else {
1718
+ dom_1.focus();
1719
+ }
1720
+ }
1721
+ else if (dom_1 instanceof NzInputNumberComponent) {
1722
+ if (dom_1.nzDisabled) {
1723
+ if (jumpDirection === 'right') {
1724
+ this.jumpToNextInput(x, y);
1725
+ }
1726
+ else if (jumpDirection === 'left') {
1727
+ this.jumpToPrevInput(x, y);
1728
+ }
1729
+ return;
1730
+ }
1731
+ /** @type {?} */
1732
+ var inputDom_1 = document.getElementById(dom_1.nzId);
1733
+ inputDom_1.focus();
1734
+ inputDom_1.scrollIntoView({ behavior: 'smooth', block: 'center', inline: 'center' });
1735
+ setTimeout((/**
1736
+ * @return {?}
1737
+ */
1738
+ function () {
1739
+ inputDom_1.select();
1740
+ }), 0);
1741
+ }
1742
+ else if (dom_1 instanceof ElementRef) {
1743
+ if (dom_1.nativeElement.disabled) {
1744
+ if (jumpDirection === 'right') {
1745
+ this.jumpToNextInput(x, y);
1746
+ }
1747
+ else if (jumpDirection === 'left') {
1748
+ this.jumpToPrevInput(x, y);
1749
+ }
1750
+ return;
1751
+ }
1752
+ dom_1.nativeElement.focus();
1753
+ dom_1.nativeElement.scrollIntoView({ behavior: 'smooth', block: 'center', inline: 'center' });
1754
+ setTimeout((/**
1755
+ * @return {?}
1756
+ */
1757
+ function () {
1758
+ dom_1.nativeElement.select();
1759
+ }), 0);
1760
+ }
1761
+ else if (dom_1 instanceof NzDatePickerComponent || dom_1 instanceof NzRangePickerComponent || dom_1 instanceof NzTimePickerComponent) {
1762
+ // TODO:在ngzorro8.5.x版本,时间相关的选择器没有暴露出open方法,暂时先不处理。(10.x及以上版本提供了open方法)
1763
+ if (jumpDirection === 'right') {
1764
+ this.jumpToNextInput(x, y);
1765
+ }
1766
+ else if (jumpDirection === 'left') {
1767
+ this.jumpToPrevInput(x, y);
1768
+ }
1769
+ return;
1770
+ }
1771
+ this.setActiveDom(x, y);
1772
+ }
1773
+ else {
1774
+ // 没有dom的场景下,需要判断是左还是右,
1775
+ }
1776
+ };
1777
+ /**
1778
+ * @param {?} x
1779
+ * @param {?} y
1780
+ * @return {?}
1781
+ */
1782
+ HdFormLinesComponent.prototype.cleanFocusDom = /**
1783
+ * @param {?} x
1784
+ * @param {?} y
1785
+ * @return {?}
1786
+ */
1787
+ function (x, y) {
1788
+ if (x === null || y === null || !this.collectDomList || this.collectDomList.length === 0) {
1789
+ return;
1790
+ }
1791
+ if (this.collectDomList[x] && this.collectDomList[x][y]) {
1792
+ /** @type {?} */
1793
+ var dom = this.collectDomList[x][y];
1794
+ if (dom instanceof NzSelectComponent) {
1795
+ dom.blur();
1796
+ dom.nzOpen = false;
1797
+ }
1798
+ else if (dom instanceof NzInputNumberComponent) {
1799
+ dom.nzOpen = false;
1800
+ dom.blur();
1801
+ }
1802
+ else if (dom instanceof ElementRef) {
1803
+ dom.nativeElement.blur();
1804
+ }
1805
+ else { }
1806
+ }
1807
+ };
1808
+ /**
1809
+ * @param {?} x
1810
+ * @param {?} y
1811
+ * @return {?}
1812
+ */
1813
+ HdFormLinesComponent.prototype.setActiveDom = /**
1814
+ * @param {?} x
1815
+ * @param {?} y
1816
+ * @return {?}
1817
+ */
1818
+ function (x, y) {
1819
+ this.activeDomX = x;
1820
+ this.activeDomY = y;
1821
+ this.activeDom = this.collectDomList[this.activeDomX][this.activeDomY];
1822
+ if (this.activeDom instanceof NzSelectComponent) {
1823
+ this.activeSelectedComponentOpen = this.activeDom.open;
1824
+ }
1825
+ };
1826
+ /**
1827
+ * 根据行号和列号名称获取当前聚焦的dom位置
1828
+ * @param rowNumber 行号
1829
+ * @param colNumber 列号
1830
+ */
1831
+ /**
1832
+ * 根据行号和列号名称获取当前聚焦的dom位置
1833
+ * @param {?} rowNumber 行号
1834
+ * @param {?} colNumber 列号
1835
+ * @return {?}
1836
+ */
1837
+ HdFormLinesComponent.prototype.setActiveDomInFormLines = /**
1838
+ * 根据行号和列号名称获取当前聚焦的dom位置
1839
+ * @param {?} rowNumber 行号
1840
+ * @param {?} colNumber 列号
1841
+ * @return {?}
1842
+ */
1843
+ function (rowNumber, colNumber) {
1844
+ this.activeDomX = rowNumber;
1845
+ this.activeDomY = this.getDomIndex(colNumber, this.formLines);
1846
+ this.setActiveDom(this.activeDomX, this.activeDomY);
1847
+ };
1848
+ /**
1849
+ * 键盘点击事件
1850
+ * @param event 键盘事件
1851
+ * @returns
1852
+ */
1853
+ /**
1854
+ * 键盘点击事件
1855
+ * @param {?} event 键盘事件
1856
+ * @return {?}
1857
+ */
1858
+ HdFormLinesComponent.prototype.onKeyDown = /**
1859
+ * 键盘点击事件
1860
+ * @param {?} event 键盘事件
1861
+ * @return {?}
1862
+ */
1863
+ function (event) {
1864
+ var _this = this;
1865
+ if (this.activeDomX === null || this.activeDomY === null) {
1866
+ return;
1867
+ }
1868
+ switch (event.key) {
1869
+ case 'ArrowUp':
1870
+ if (this.activeDom instanceof NzSelectComponent && this.activeSelectedComponentOpen) {
1871
+ return;
1872
+ }
1873
+ if (this.activeDomX !== 0) {
1874
+ this.focusDom(this.activeDomX - 1, this.activeDomY);
1875
+ }
1876
+ break;
1877
+ case 'ArrowDown':
1878
+ // 判断是否在最后一行,如果在最后一行,直接+行翻页
1879
+ if (this.activeDom instanceof NzSelectComponent && this.activeSelectedComponentOpen) {
1880
+ return;
1881
+ }
1882
+ if (this.activeDomX !== this.collectDomList.length - 1) {
1883
+ this.focusDom(this.activeDomX + 1, this.activeDomY);
1884
+ }
1885
+ break;
1886
+ case 'ArrowLeft':
1887
+ this.jumpToPrevInput(this.activeDomX, this.activeDomY);
1888
+ break;
1889
+ case 'ArrowRight':
1890
+ this.jumpToNextInput(this.activeDomX, this.activeDomY);
1891
+ break;
1892
+ case 'Enter':
1893
+ if (this.activeDom instanceof NzSelectComponent) {
1894
+ this.activeSelectedComponentOpen = this.activeDom.open;
1895
+ if (this.activeSelectedComponentOpen === false) {
1896
+ this.focusDom(this.activeDomX, this.activeDomY);
1897
+ }
1898
+ break;
1899
+ }
1900
+ if (this.activeDomX === this.collectDomList.length - 1) {
1901
+ this.addNewLineAndFocus();
1902
+ }
1903
+ break;
1904
+ case 'Escape':
1905
+ if (this.activeDom instanceof NzSelectComponent) {
1906
+ /** @type {?} */
1907
+ var nowActiveDom_1 = (/** @type {?} */ (this.activeDom));
1908
+ setTimeout((/**
1909
+ * @return {?}
1910
+ */
1911
+ function () {
1912
+ _this.activeSelectedComponentOpen = nowActiveDom_1.open;
1913
+ if (_this.activeSelectedComponentOpen === false) {
1914
+ if (nowActiveDom_1.nzSelectService.mode === 'multiple') {
1915
+ setTimeout((/**
1916
+ * @return {?}
1917
+ */
1918
+ function () {
1919
+ _this.focusDom(_this.activeDomX, _this.activeDomY);
1920
+ }), 0);
1921
+ }
1922
+ else {
1923
+ _this.focusDom(_this.activeDomX, _this.activeDomY);
1924
+ }
1925
+ }
1926
+ }), 0);
1927
+ }
1928
+ break;
1929
+ default:
1930
+ // 如果当前聚焦的是选择框,且键入0-9a-zA-Z,则弹出
1931
+ if (this.activeDom instanceof NzSelectComponent && this.activeSelectedComponentOpen === false && /^[0-9a-zA-Z]$/.test(event.key)) {
1932
+ /** @type {?} */
1933
+ var dom = this.activeDom;
1934
+ dom.nzOpen = true;
1935
+ this.activeSelectedComponentOpen = true;
1936
+ // // TODO:这里暂时注释,不能直接带入键入值,这样会导致输入中文的时候带入英文字符,不符合预期
1937
+ // dom.nzSelectTopControlComponent.inputValue = event.key;
1938
+ // // 获取 input 元素
1939
+ // const inputElement = dom.nzSelectTopControlComponent.inputElement.nativeElement;
1940
+ // setTimeout(() => {
1941
+ // // 触发输入事件,以确保 Angular 检测到值的变化
1942
+ // const eventInput = new Event('input', { bubbles: true });
1943
+ // inputElement.dispatchEvent(eventInput);
1944
+ // }, 0);
1945
+ }
1946
+ break;
1947
+ }
1948
+ };
1949
+ /**
1950
+ * 根据在初始dom下标和数据集 获取在collectDomList中的下标
1951
+ * @param index 初始下标
1952
+ * @param list 数据集
1953
+ * @returns
1954
+ */
1955
+ /**
1956
+ * 根据在初始dom下标和数据集 获取在collectDomList中的下标
1957
+ * @private
1958
+ * @param {?} index 初始下标
1959
+ * @param {?} list 数据集
1960
+ * @return {?}
1961
+ */
1962
+ HdFormLinesComponent.prototype.getDomIndex = /**
1963
+ * 根据在初始dom下标和数据集 获取在collectDomList中的下标
1964
+ * @private
1965
+ * @param {?} index 初始下标
1966
+ * @param {?} list 数据集
1967
+ * @return {?}
1968
+ */
1969
+ function (index, list) {
1970
+ /** @type {?} */
1971
+ var typeList = ['Input', 'Select', 'Date', 'DateRange', 'TextArea', 'InputNumber', 'MultipleSelect'];
1972
+ /** @type {?} */
1973
+ var filterList = [];
1974
+ for (var i = 0; i < list.length; i++) {
1975
+ if (i === index) {
1976
+ return filterList.length;
1977
+ }
1978
+ if (typeList.includes(list[i].type)) {
1979
+ filterList.push(list[i]);
1980
+ }
1981
+ }
1982
+ return null;
1983
+ };
1984
+ // TODO:待删
1985
+ // TODO:待删
1986
+ /**
1987
+ * @return {?}
1988
+ */
1989
+ HdFormLinesComponent.prototype.testPage =
1990
+ // TODO:待删
1991
+ /**
1332
1992
  * @return {?}
1333
1993
  */
1334
1994
  function () {
1335
- // 缓存一下总的表单数据
1336
- this.storeFormLinesData = this.formLinesData;
1337
- this.init();
1995
+ this.paginationPageIndex++;
1338
1996
  };
1339
1997
  Object.defineProperty(HdFormLinesComponent.prototype, "linesFormArray", {
1340
1998
  get: /**
@@ -1477,14 +2135,18 @@ var HdFormLinesComponent = /** @class */ (function () {
1477
2135
  * @param {?} value
1478
2136
  * @return {?}
1479
2137
  */
1480
- function (value) { return _this.triggerEvent(item.onChangeEvent, value, formGroupTmp); }));
2138
+ function (value) {
2139
+ _this.triggerEvent(item.onChangeEvent, value, formGroupTmp);
2140
+ }));
1481
2141
  }
1482
2142
  else {
1483
2143
  formGroupTmp.get(item.name).valueChanges.subscribe((/**
1484
2144
  * @param {?} value
1485
2145
  * @return {?}
1486
2146
  */
1487
- function (value) { return _this.triggerEvent(item.onChangeEvent, value, formGroupTmp); }));
2147
+ function (value) {
2148
+ _this.triggerEvent(item.onChangeEvent, value, formGroupTmp);
2149
+ }));
1488
2150
  }
1489
2151
  }
1490
2152
  }));
@@ -1633,13 +2295,10 @@ var HdFormLinesComponent = /** @class */ (function () {
1633
2295
  * @return {?}
1634
2296
  */
1635
2297
  function (changes) {
1636
- console.log('changes', changes);
1637
2298
  if (changes['formLinesData'] && JSON.stringify(changes['formLinesData'].currentValue) !== JSON.stringify(changes['formLinesData'].previousValue)) {
1638
2299
  if (this.storeFormLinesData && this.storeFormLinesData.length === 0) {
1639
- console.log('1');
1640
2300
  this.storeFormLinesData = this.formLinesData;
1641
2301
  }
1642
- console.log('2');
1643
2302
  this.init();
1644
2303
  }
1645
2304
  if (changes['totalOption'] && JSON.stringify(changes['totalOption'].currentValue) !== JSON.stringify(changes['totalOption'].previousValue)) {
@@ -1760,9 +2419,10 @@ var HdFormLinesComponent = /** @class */ (function () {
1760
2419
  var formGroupSubmit = this.fb.group(formGroupObj);
1761
2420
  this.formLines.forEach((/**
1762
2421
  * @param {?} item
2422
+ * @param {?} innerIndex
1763
2423
  * @return {?}
1764
2424
  */
1765
- function (item) {
2425
+ function (item, innerIndex) {
1766
2426
  if (item.onChangeEvent) {
1767
2427
  if (item.onChangeEvent) {
1768
2428
  if (item.onChangeEventDebounceTime) {
@@ -1770,14 +2430,24 @@ var HdFormLinesComponent = /** @class */ (function () {
1770
2430
  * @param {?} value
1771
2431
  * @return {?}
1772
2432
  */
1773
- function (value) { return _this.triggerEvent(item.onChangeEvent, value, formGroupSubmit); }));
2433
+ function (value) {
2434
+ if (item.type === FormLineType.Select && value !== null) {
2435
+ _this.jumpToNextInput(_this.activeDomX, _this.activeDomY);
2436
+ }
2437
+ _this.triggerEvent(item.onChangeEvent, value, formGroupSubmit);
2438
+ }));
1774
2439
  }
1775
2440
  else {
1776
2441
  formGroupSubmit.get(item.name).valueChanges.subscribe((/**
1777
2442
  * @param {?} value
1778
2443
  * @return {?}
1779
2444
  */
1780
- function (value) { return _this.triggerEvent(item.onChangeEvent, value, formGroupSubmit); }));
2445
+ function (value) {
2446
+ if (item.type === FormLineType.Select && value !== null) {
2447
+ _this.jumpToNextInput(_this.activeDomX, _this.activeDomY);
2448
+ }
2449
+ _this.triggerEvent(item.onChangeEvent, value, formGroupSubmit);
2450
+ }));
1781
2451
  }
1782
2452
  }
1783
2453
  }
@@ -1817,9 +2487,10 @@ var HdFormLinesComponent = /** @class */ (function () {
1817
2487
  var _this = this;
1818
2488
  this.formLinesData.forEach((/**
1819
2489
  * @param {?} formLinesDataItem
2490
+ * @param {?} index
1820
2491
  * @return {?}
1821
2492
  */
1822
- function (formLinesDataItem) {
2493
+ function (formLinesDataItem, index) {
1823
2494
  /** @type {?} */
1824
2495
  var formGroupObj = {};
1825
2496
  _this.formLines.forEach((/**
@@ -1838,9 +2509,10 @@ var HdFormLinesComponent = /** @class */ (function () {
1838
2509
  var formGroupTmp = _this.fb.group(formGroupObj);
1839
2510
  _this.formLines.forEach((/**
1840
2511
  * @param {?} item
2512
+ * @param {?} innerIndex
1841
2513
  * @return {?}
1842
2514
  */
1843
- function (item) {
2515
+ function (item, innerIndex) {
1844
2516
  if (item.onChangeEvent) {
1845
2517
  if (item.onChangeEventDebounceTime) {
1846
2518
  formGroupTmp.get(item.name).valueChanges.pipe(debounceTime(item.onChangeEventDebounceTime)).subscribe((/**
@@ -1848,6 +2520,9 @@ var HdFormLinesComponent = /** @class */ (function () {
1848
2520
  * @return {?}
1849
2521
  */
1850
2522
  function (value) {
2523
+ if (item.type === FormLineType.Select && value !== null) {
2524
+ _this.jumpToNextInput(_this.activeDomX, _this.activeDomY);
2525
+ }
1851
2526
  _this.triggerEvent(item.onChangeEvent, value, formGroupTmp);
1852
2527
  }));
1853
2528
  }
@@ -1857,6 +2532,9 @@ var HdFormLinesComponent = /** @class */ (function () {
1857
2532
  * @return {?}
1858
2533
  */
1859
2534
  function (value) {
2535
+ if (item.type === FormLineType.Select && value !== null) {
2536
+ _this.jumpToNextInput(_this.activeDomX, _this.activeDomY);
2537
+ }
1860
2538
  _this.triggerEvent(item.onChangeEvent, value, formGroupTmp);
1861
2539
  }));
1862
2540
  }
@@ -1876,8 +2554,23 @@ var HdFormLinesComponent = /** @class */ (function () {
1876
2554
  * @return {?}
1877
2555
  */
1878
2556
  function (index) {
2557
+ var _this = this;
1879
2558
  this.linesFormArray.insert(index || this.linesFormArray.controls.length, this.newLineItem());
1880
2559
  this.calculateLineNumber();
2560
+ setTimeout((/**
2561
+ * @return {?}
2562
+ */
2563
+ function () {
2564
+ _this.collectDomData();
2565
+ if (index !== null && index !== undefined) {
2566
+ _this.activeDomX = index;
2567
+ }
2568
+ else {
2569
+ _this.activeDomX = _this.collectDomList.length - 1;
2570
+ }
2571
+ _this.activeDomY = 0;
2572
+ _this.focusDom(_this.activeDomX, _this.activeDomY);
2573
+ }), 0);
1881
2574
  };
1882
2575
  /**
1883
2576
  * @param {?} index
@@ -1888,6 +2581,7 @@ var HdFormLinesComponent = /** @class */ (function () {
1888
2581
  * @return {?}
1889
2582
  */
1890
2583
  function (index) {
2584
+ var _this = this;
1891
2585
  this.linesFormArray.removeAt(index - 1);
1892
2586
  if (!this.isFilterData && this.linesFormArray.controls && this.linesFormArray.controls.length === 0) {
1893
2587
  this.addFormLine();
@@ -1899,6 +2593,12 @@ var HdFormLinesComponent = /** @class */ (function () {
1899
2593
  }
1900
2594
  this.calculateLineNumber();
1901
2595
  }
2596
+ setTimeout((/**
2597
+ * @return {?}
2598
+ */
2599
+ function () {
2600
+ _this.collectDomData();
2601
+ }), 0);
1902
2602
  };
1903
2603
  /**
1904
2604
  * @param {?} event
@@ -1909,7 +2609,14 @@ var HdFormLinesComponent = /** @class */ (function () {
1909
2609
  * @return {?}
1910
2610
  */
1911
2611
  function (event) {
2612
+ var _this = this;
1912
2613
  this.paginationPageIndex = event;
2614
+ setTimeout((/**
2615
+ * @return {?}
2616
+ */
2617
+ function () {
2618
+ _this.collectDomData();
2619
+ }), 0);
1913
2620
  };
1914
2621
  /**
1915
2622
  * @param {?} event
@@ -1920,7 +2627,14 @@ var HdFormLinesComponent = /** @class */ (function () {
1920
2627
  * @return {?}
1921
2628
  */
1922
2629
  function (event) {
2630
+ var _this = this;
1923
2631
  this.paginationPageSize = event;
2632
+ setTimeout((/**
2633
+ * @return {?}
2634
+ */
2635
+ function () {
2636
+ _this.collectDomData();
2637
+ }), 0);
1924
2638
  };
1925
2639
  /**
1926
2640
  * @private
@@ -2140,16 +2854,21 @@ var HdFormLinesComponent = /** @class */ (function () {
2140
2854
  };
2141
2855
  /**
2142
2856
  * @param {?} id
2857
+ * @param {?} rowNumber
2858
+ * @param {?} colNumber
2143
2859
  * @return {?}
2144
2860
  */
2145
2861
  HdFormLinesComponent.prototype.selectValue = /**
2146
2862
  * @param {?} id
2863
+ * @param {?} rowNumber
2864
+ * @param {?} colNumber
2147
2865
  * @return {?}
2148
2866
  */
2149
- function (id) {
2867
+ function (id, rowNumber, colNumber) {
2150
2868
  /** @type {?} */
2151
2869
  var inputDom = document.querySelector(id);
2152
2870
  inputDom.select();
2871
+ this.setActiveDomInFormLines(rowNumber, colNumber);
2153
2872
  };
2154
2873
  /**
2155
2874
  * @param {?} text
@@ -2202,15 +2921,17 @@ var HdFormLinesComponent = /** @class */ (function () {
2202
2921
  HdFormLinesComponent.decorators = [
2203
2922
  { type: Component, args: [{
2204
2923
  selector: 'hd-form-lines',
2205
- template: "<hd-button-group *ngIf=\"showForm && 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<hd-space background=\"transparent\" type=\"row\" size=\"16\"></hd-space>\n<form *ngIf=\"showForm\" nz-form [formGroup]=\"validateHdFormLines\"\n class=\"ant-advanced-search-form hd-formLines-container\">\n <nz-table nzTemplateMode [nzFrontPagination]=\"false\" [nzLoading]=\"tableLoading\" [nzScroll]=\"scroll\">\n <thead>\n <tr>\n <th nzWidth=\"58px\" nzLeft=\"0px\">\u5E8F\u53F7</th>\n <ng-container *ngFor=\"let item of formLines\">\n <th *ngIf=\"!item.hide\" [nzAlign]=\"item.align ? item.align : 'left'\">\n <span *ngIf=\"item.require\" style=\"color: red;\">*</span>{{item.label}}\n </th>\n </ng-container>\n <th style=\"width: 80px\" nzRight=\"0\">\u64CD\u4F5C</th>\n </tr>\n </thead>\n <tbody>\n <ng-container\n *ngFor=\"let line of linesFormArray.controls.slice((paginationPageIndex - 1) * paginationPageSize, (paginationPageIndex - 1) * paginationPageSize + paginationPageSize);index as dataIndex\"\n formArrayName=\"lines\">\n <tr [formGroup]=\"line\">\n <td nzWidth=\"58px\" nzLeft=\"0px\">\n {{line.get('lineIndex').value}}\n </td>\n <ng-container *ngFor=\"let formItem of formLines\">\n <td *ngIf=\"!formItem.hide\" [nzAlign]=\"formItem.align ? formItem.align : 'left'\">\n <nz-form-item>\n <nz-form-control [nzErrorTip]=\"formItem.label + '\u4E0D\u80FD\u4E3A\u7A7A'\">\n <ng-container [ngSwitch]=\"formItem.type\">\n <ng-container *ngSwitchCase=\"0\">\n <nz-input-group [nzSuffix]=\"inputCleanTemplate\">\n <input [ngStyle]=\"getStyle(line, formItem, '100px')\" nz-input\n [ngStyle]=\"{'color': formItem?.colorOption?.name ? line.get(formItem.colorOption.name ).value : null}\"\n [id]=\"'input-' + formItem.name + line.get('lineIndex').value\"\n (click)=\"formItem.isSelect ? selectValue('#input-' + formItem.name + line.get('lineIndex').value) : null\"\n [maxlength]=\"formItem.maxLength || null\"\n [placeholder]=\"formItem.placeholder ? formItem.placeholder : '\u8BF7\u8F93\u5165' + formItem.label\"\n [formControlName]=\"formItem.name\" />\n </nz-input-group>\n <ng-template #inputCleanTemplate>\n <i nz-icon nz-tooltip class=\"ant-input-clear-icon\" nzTheme=\"fill\" nzType=\"close-circle\"\n *ngIf=\"line.get(formItem.name).value && !line.get(formItem.name).disabled\"\n (click)=\"inputClean(formItem ,line)\"></i>\n </ng-template>\n </ng-container>\n <ng-container *ngSwitchCase=\"1\">\n <nz-select nzDropdownClassName=\"hd-select-table\"\n *ngIf=\"formItem.selectOption.tableColumns;else nomarlSelectTemplate\"\n [nzShowSearch]=\"formItem.selectOption.hdShowSearch != null ? formItem.selectOption.hdShowSearch : true\"\n [nzAllowClear]=\"formItem.selectOption.hdAllowClear != null ? formItem.selectOption.hdAllowClear : true\"\n [nzServerSearch]=\"formItem.selectOption.hdServerSearch || false\"\n [nzDropdownMatchSelectWidth]=\"formItem.selectOption.hdDropdownMatchSelectWidth ? formItem.selectOption.hdDropdownMatchSelectWidth : false\"\n [nzPlaceHolder]=\"formItem.placeholder ? formItem.placeholder : '\u8BF7\u9009\u62E9' + formItem.label\"\n [formControlName]=\"formItem.name\"\n (nzOnSearch)=\"onSearchEvent(formItem.onSearchEvent || null, $event, line, formItem.onSearchEventEventDebounceTime)\"\n [ngStyle]=\"getStyle(line, formItem, '200px')\">\n <nz-option nzCustomContent nzDisabled>\n <div class=\"hd-option-header\"\n *ngIf=\"(formItem.selectOption?.selectList?.length > 0 || line.get(formItem.selectOption.selectListName)?.value?.length > 0);else emptyTemplate\">\n <div class=\"hd-option-header-column\"\n *ngFor=\"let selectOptionTableColumn of formItem.selectOption.tableColumns;index as index \"\n [ngStyle]=\"{'width': selectOptionTableColumn?.width ? (selectOptionTableColumn.width + ((index === 0 && !selectOptionTableColumn.label) ? 12 : 0) + 'px') : 'unset'}\">\n {{selectOptionTableColumn.label}}\n </div>\n </div>\n <ng-template #emptyTemplate>\n <div class=\"hd-select-empty\">\n <img\n src=\"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iNjRweCIgaGVpZ2h0PSI0MXB4IiB2aWV3Qm94PSIwIDAgNjQgNDEiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8IS0tIEdlbmVyYXRvcjogU2tldGNoIDUyLjUgKDY3NDY5KSAtIGh0dHA6Ly93d3cuYm9oZW1pYW5jb2RpbmcuY29tL3NrZXRjaCAtLT4KICAgIDxnIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKC00NzIuMDAwMDAwLCAtMTMzNS4wMDAwMDApIj4KICAgICAgICAgICAgPGcgIHRyYW5zZm9ybT0idHJhbnNsYXRlKDY0LjAwMDAwMCwgMTExNC4wMDAwMDApIj4KICAgICAgICAgICAgICAgIDxnICB0cmFuc2Zvcm09InRyYW5zbGF0ZSg0MC4wMDAwMDAsIDc4LjAwMDAwMCkiPgogICAgICAgICAgICAgICAgICAgIDxnICB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzNjguMDAwMDAwLCAxNDQuMDAwMDAwKSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxnID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbGxpcHNlICBmaWxsPSIjRjVGNUY1IiBjeD0iMzIiIGN5PSIzMyIgcng9IjMyIiByeT0iNyI+PC9lbGxpcHNlPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgICB0cmFuc2Zvcm09InRyYW5zbGF0ZSg5LjAwMDAwMCwgMC4wMDAwMDApIiBmaWxsLXJ1bGU9Im5vbnplcm8iIHN0cm9rZT0iI0Q5RDlEOSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTQ2LDEyLjc2MDU2MDQgTDM1Ljg1NDMwNDcsMS4yNTczOTYzMyBDMzUuMzY3NDQxNCwwLjQ3MzgyNjYwNSAzNC42NTU4Nzg5LDAgMzMuOTA2NzYxNywwIEwxMi4wOTMyMzgzLDAgQzExLjM0NDEyMTEsMCAxMC42MzI1NTg2LDAuNDczOTUwMjU1IDEwLjE0NTY5NTMsMS4yNTczOTYzMyBMMi42MTQ3OTcyN2UtMTIsMTIuNzYwNTYwNCBMMCwyMiBMNDYsMjIgTDQ2LDEyLjc2MDU2MDQgWiIgID48L3BhdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTMyLjYxMzI4MTMsMTUuOTMxNSBDMzIuNjEzMjgxMywxNC4zMjU4NTExIDMzLjYwNjk1MzEsMTMuMDAwMjM0IDM0LjgzOTY5OTIsMTMgTDQ2LDEzIEw0NiwzMS4xMzcxMjc3IEM0NiwzMy4yNTg5NTc0IDQ0LjY3OTM4NjcsMzUgNDMuMDUwNDI5NywzNSBMMi45NDk1NzAzMSwzNSBDMS4zMjA1MjM0NCwzNSAwLDMzLjI1ODg0MDQgMCwzMS4xMzcxMjc3IEwwLDEzIEwxMS4xNjAzMDA4LDEzIEMxMi4zOTMwNDY5LDEzIDEzLjM4NjcxODgsMTQuMzIyODA4NSAxMy4zODY3MTg4LDE1LjkyODQ1NzQgTDEzLjM4NjcxODgsMTUuOTQ5NjM4MyBDMTMuMzg2NzE4OCwxNy41NTUyODcyIDE0LjM5MTcxMDksMTguODUxMTgwOSAxNS42MjQ0NTcsMTguODUxMTgwOSBMMzAuMzc1NTQzLDE4Ljg1MTE4MDkgQzMxLjYwODI4OTEsMTguODUxMTgwOSAzMi42MTMyODEzLDE3LjU0MzM1MTEgMzIuNjEzMjgxMywxNS45Mzc3MDIxIEwzMi42MTMyODEzLDE1LjkzMTUgWiIgIGZpbGw9IiNGQUZBRkEiPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9nPgogICAgICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgPC9nPgogICAgICAgIDwvZz4KICAgIDwvZz4KPC9zdmc+\"\n alt=\"empty\">\n <p class=\"ant-empty-description\">\u6682\u65E0\u6570\u636E</p>\n </div>\n </ng-template>\n </nz-option>\n\n <nz-option nzCustomContent\n *ngFor=\"let selectItem of (formItem.selectOption.selectList || line.get(formItem.selectOption.selectListName).value)\"\n [nzValue]=\"selectItem[formItem.selectOption.value]\" [nzLabel]=\"formItem.selectOption.showLabelAndValue ? '['+ selectItem[formItem.selectOption.value] +']' +\n selectItem[formItem.selectOption.label] : selectItem[formItem.selectOption.label]\">\n <div class=\"hd-option-line\">\n <div *ngFor=\"let selectOptionTableColumn of formItem.selectOption.tableColumns\"\n [ngStyle]=\"{'width': selectOptionTableColumn?.width ? selectOptionTableColumn.width + 'px' : 'unset'}\">\n <ng-container *ngIf=\"selectOptionTableColumn.icons;else notPictureTemplate\">\n <ng-container *ngFor=\"let icon of selectOptionTableColumn.icons\">\n <img *ngIf=\"icon.iconName === 'hd-recommend-star' && selectItem[icon.fieldName]\"\n src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAVpJREFUOE+l07FLQkEcB/Dv7713Zg1GQ0SgW9AmTYVp1BRUokZBEI1u/QVBUBD1D0Rt0dQaPYmotXza1tKQzQ1Fk0iDHr5vPEOTUpO88e77+9zvjjtBh8HTOb8e0hu0eN8Xzz22ikonoGzHdgXcAVB16S75U/mbn/m2AK+mglqbBUAGvCIRuVCJ7HLXQCUTPQOxXi8Q4FolnYWuAH0+HaEpjrdxAyC3VSq33xKgPTWiYYUai8IjUCabw4Zw1XWNF2+OZrXoi+cLImBth4odfQAw0elCW6zdKvU2/wVkYs8ggzBlRqrcI/DrrK1wQ7DWAIToV8lsqGxHDwTY6qYbA1jpCVAux3oBSirhDPYCOL6kE/s/QB77UrnNJoDDVkCN6pI+BJH+6xINQdpKOCf1d/AEYBxgUUQC5PcLbPMDXy1lhGXx7r0G6ExklpBwI0xh2w7ID+UzL71iL/MJdzuZdDL/kXcAAAAASUVORK5CYII=\"\n style=\"width: 16px;height: 16px;\">\n <img *ngIf=\"icon.iconName === 'hd-img-star' && selectItem[icon.fieldName]\"\n src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAyhJREFUWEe1ll1o1XYYxp8nPUmUihdCV3bAirvYzUC80Xpy3KwTZNR2CdOhDkTBwe6G32XzwqpjE3Qt4pUKZQqDyQZNTp1uY8yCJG0F2d2+LlWOOkShovQkaV45lcJpTdOTHJubBPI+z/Pj//H+/0TGR66uf8sPoz8A/Kstkp38YORxFitmEVU1vm1cBPlp9ZuQXtX0jmfxygQgvxSWBRWlDECvhgrwQFuqLufG4TAtRCaAwCl+IcDXtWEi2KFb7pUFBxCBEpSMMsDWGWEiNzXLe2/BASp2cTuJH+KCRMJ3dGvsrzQQqafAtw0XpBEfIhc00/tswQD8QWM1FP45d4A8V9XJN9k5Nl4vRKoR8G3jMshdyebRPs0cOftaAaRUbAsRrRRRhuczFsF/lPATNQrL3Hr7/nz1lGvvtkwGUSEC8gLkWfMGkAfQMp9J0n8ByhS5J+QDVr+BshBlUu6q3d5v9G3jIcg3GgnJqp2C853iCIB1WU0a1F2iOO2tPnK3CLQ1aJZKLpCfddPrmtoF8uuqZn9iyfcEzVQumYtlQDO9vS8PsprHd4xvAR7I7FuHUIBvdNP9crr0lT7g24U+UNlfh1f6Esrn2ofeuVphbCPyneJuAN+lT0jokZCduum9cobM2Qn9krEGEa6+hi36jEC3aro34vASW3FoG9si8sdGRoKCY6rlnpjLIxGgYhunSPY0AiAiP+mW93EmAN8ujoJobwgAuKOb7orUAHKjY1EwHjwFkGsEoKpVJ6WVH3n/p1oDwVBhk0TK742GV/UKYOZMt5QKoGIbX5E8mgwg4wCbADQn1c1uPvP2gWqB7xjDADck7OwBVan0QFFyQaj2A9wxV60A13XT7Uw1Ar5TlDiBQP6hRHs0a3Ss9n8wuK4jYtN5Em/H6B5ppht7r4jvhEOFtYiUGQEAnhDoV033ZNJwB45xRAS9IBfX1qnhRD7uhhQLENiFQ0Ll9LSBCM7olnu43gUpTjEfiPSB3D6tUQRbcpZ7bbZHLEBYKnRFogxV505rmjzIrtG/6w2fMS0l430RHAVoULBZtdybdQFkCcuqSXUtzxqSpHsBfmUdgJhaiDQAAAAASUVORK5CYII=\"\n style=\"width: 16px;height: 16px;\">\n </ng-container>\n </ng-container>\n <ng-template #notPictureTemplate>\n <ng-container\n *ngIf=\"!isTextOverflow(selectOptionTableColumn.render ? selectOptionTableColumn.render(selectItem) : selectItem[selectOptionTableColumn.name], selectOptionTableColumn.width);else overflowTemplate\">\n <div>{{ judgeColEmpty(selectOptionTableColumn.render ?\n selectOptionTableColumn.render(selectItem) :\n selectItem[selectOptionTableColumn.name])}}</div>\n </ng-container>\n <ng-template #overflowTemplate>\n <div class=\"hd-option-overflow\" nz-tooltip\n [nzTooltipTitle]=\"selectOptionTableColumn.render ? selectOptionTableColumn.render(selectItem) : selectItem[selectOptionTableColumn.name]\">\n {{\n judgeColEmpty(selectOptionTableColumn.render ?\n selectOptionTableColumn.render(selectItem) :\n selectItem[selectOptionTableColumn.name])}}</div>\n </ng-template>\n </ng-template>\n </div>\n </div>\n </nz-option>\n <nz-option\n *ngIf=\"formItem.selectOption.label && line.get(formItem.name) && line.get(formItem.selectOption.label)?.value && line.get(formItem.selectOption.value)?.value\"\n [nzLabel]=\"(formItem.selectOption.value === 'code' || formItem.selectOption.value === 'productCode' || formItem.selectOption.hdShowItemCode) ? ('['+ line.get(formItem.selectOption.value).value + ']' + line.get(formItem.selectOption.label).value) : line.get(formItem.selectOption.label).value\"\n [nzValue]=\"line.get(formItem.selectOption.value).value\" nzHide></nz-option>\n </nz-select>\n <ng-template #nomarlSelectTemplate>\n <nz-select\n [nzShowSearch]=\"formItem.selectOption.hdShowSearch != null ? formItem.selectOption.hdShowSearch : true\"\n [nzAllowClear]=\"formItem.selectOption.hdAllowClear != null ? formItem.selectOption.hdAllowClear : true\"\n [nzServerSearch]=\"formItem.selectOption.hdServerSearch || false\"\n [nzDropdownMatchSelectWidth]=\"formItem.selectOption.hdDropdownMatchSelectWidth ? formItem.selectOption.hdDropdownMatchSelectWidth : false\"\n [nzPlaceHolder]=\"formItem.placeholder ? formItem.placeholder : '\u8BF7\u9009\u62E9' + formItem.label\"\n [formControlName]=\"formItem.name\"\n (nzOnSearch)=\"onSearchEvent(formItem.onSearchEvent || null, $event, line, formItem.onSearchEventEventDebounceTime)\"\n [ngStyle]=\"getStyle(line, formItem, '200px')\">\n <nz-option\n *ngFor=\"let selectItem of (formItem.selectOption.selectList || line.get(formItem.selectOption.selectListName).value)\"\n [nzValue]=\"selectItem[formItem.selectOption.value]\" [nzLabel]=\"formItem.selectOption.showLabelAndValue ? '['+ selectItem[formItem.selectOption.value] +']' +\n selectItem[formItem.selectOption.label] : selectItem[formItem.selectOption.label]\">\n </nz-option>\n <nz-option\n *ngIf=\"formItem.selectOption.label && line.get(formItem.name) && line.get(formItem.selectOption.label)?.value && line.get(formItem.selectOption.value)?.value\"\n [nzLabel]=\"(formItem.selectOption.value === 'code' || formItem.selectOption.value === 'productCode' || formItem.selectOption.hdShowItemCode) ? ('['+ line.get(formItem.selectOption.value).value + ']' + line.get(formItem.selectOption.label).value) : line.get(formItem.selectOption.label).value\"\n [nzValue]=\"line.get(formItem.selectOption.value).value\" nzHide></nz-option>\n </nz-select>\n </ng-template>\n\n </ng-container>\n <ng-container *ngSwitchCase=\"2\">\n <nz-date-picker *ngIf=\"formItem.showTime\"\n [nzPlaceHolder]=\"formItem.placeholder ? formItem.placeholder : '\u8BF7\u9009\u62E9' + formItem.label\"\n [formControlName]=\"formItem.name\" [nzDisabledDate]=\"formItem.hdDisabledDate\" nzShowTime\n nzFormat=\"yyyy-MM-dd HH:mm:ss\">\n </nz-date-picker>\n <nz-date-picker *ngIf=\"!formItem.showTime\"\n [nzPlaceHolder]=\"formItem.placeholder ? formItem.placeholder : '\u8BF7\u9009\u62E9' + formItem.label\"\n [formControlName]=\"formItem.name\" [nzDisabledDate]=\"formItem.hdDisabledDate\">\n </nz-date-picker>\n </ng-container>\n <ng-container *ngSwitchCase=\"3\">\n <nz-range-picker [nzPlaceHolder]=\"['\u5F00\u59CB\u65E5\u671F','\u7ED3\u675F\u65E5\u671F']\" [formControlName]=\"formItem.name\">\n </nz-range-picker>\n </ng-container>\n <ng-container *ngSwitchCase=\"4\">\n <textarea\n [ngStyle]=\"{'color': formItem?.colorOption?.name ? line.get(formItem.colorOption.name).value : null}\"\n [placeholder]=\"formItem.placeholder ? formItem.placeholder : '\u8BF7\u8F93\u5165' + formItem.label\"\n [maxlength]=\"formItem.maxLength || null\" rows=\"4\" nz-input\n [maxlength]=\"formItem.maxLength || null\" [formControlName]=\"formItem.name\"></textarea>\n </ng-container>\n <ng-container *ngSwitchCase=\"5\">\n <div style=\"display: flex;align-items: center;\">\n <nz-input-number [ngStyle]=\"getStyle(line, formItem, '100px')\"\n [maxlength]=\"formItem.maxLength || null\" [formControlName]=\"formItem.name\"\n [nzMin]=\"formItem?.inputNumber?.min || 0\" [nzMax]=\"formItem?.inputNumber?.max || 99999999\"\n [nzStep]=\"formItem?.inputNumber?.step || 1\"\n [nzPrecision]=\"formItem?.inputNumber?.precision || 2\"\n [nzPlaceHolder]=\"formItem.placeholder ? formItem.placeholder : '\u8BF7\u8F93\u5165' + formItem.label\"\n [nzId]=\"'inputNumber-' + formItem.name + line.get('lineIndex').value\"\n (click)=\"formItem.isSelect ? selectValue('#inputNumber-' + formItem.name + line.get('lineIndex').value) : null\">\n </nz-input-number>\n <div *ngIf=\"formItem?.explainOptionRight?.show\"\n [style.color]=\"formItem?.explainOptionRight?.color ? formItem.explainOptionRight.color : null\">\n &nbsp;&nbsp;{{line.get(formItem.explainOptionRight.name).value}}</div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"6\">\n <nz-select nzMode=\"multiple\" [nzServerSearch]=\"formItem.selectOption.hdServerSearch || false\"\n [nzDropdownMatchSelectWidth]=\"formItem.selectOption.hdDropdownMatchSelectWidth ? formItem.selectOption.hdDropdownMatchSelectWidth : false\"\n [nzShowSearch]=\"formItem.selectOption.hdShowSearch != null ? formItem.selectOption.hdShowSearch : true\"\n [nzAllowClear]=\"formItem.selectOption.hdAllowClear != null ? formItem.selectOption.hdAllowClear : true\"\n [nzPlaceHolder]=\"formItem.placeholder ? formItem.placeholder : '\u8BF7\u9009\u62E9' + formItem.label\"\n [formControlName]=\"formItem.name\" [ngStyle]=\"getStyle(line, formItem, '200px')\"\n (nzOnSearch)=\"onSearchEvent(formItem.onSearchEvent || null, $event, line, formItem.onSearchEventEventDebounceTime)\">\n <nz-option *ngFor=\"let selectItem of formItem.selectOption.selectList\"\n [nzValue]=\"selectItem[formItem.selectOption.value]\" [nzLabel]=\"formItem.selectOption.showLabelAndValue ? '['+ selectItem[formItem.selectOption.value] +']' +\n selectItem[formItem.selectOption.label] : selectItem[formItem.selectOption.label]\"></nz-option>\n <ng-container\n *ngIf=\"formItem.selectOption.label && line.get(formItem.name) && line.get(formItem.selectOption.label)?.value && line.get(formItem.selectOption.value)?.value\">\n <nz-option *ngFor=\"let option of line.get(formItem.selectOption.value).value;index as i\"\n [nzLabel]=\"line.get(formItem.selectOption.label).value[i]\" [nzValue]=\"option\" nzHide>\n </nz-option>\n </ng-container>\n </nz-select>\n </ng-container>\n <ng-container *ngSwitchCase=\"7\">\n {{(formItem.preserveNumber && line.get(formItem.name).value) ?\n LodashRound(line.get(formItem.name).value,formItem.preserveNumber).toFixed(formItem.preserveNumber)\n : line.get(formItem.name).value}}\n </ng-container>\n <ng-container *ngSwitchCase=\"8\">\n <nz-switch [formControlName]=\"formItem.name\"></nz-switch>\n </ng-container>\n <ng-container *ngSwitchCase=\"9\">\n <nz-time-picker [formControlName]=\"formItem.name\"></nz-time-picker>\n </ng-container>\n </ng-container>\n </nz-form-control>\n </nz-form-item>\n <div *ngIf=\"formItem?.explainOption?.show\"\n [style.color]=\"formItem?.explainOption?.color ? formItem.explainOption.color : null\">\n {{line.get(formItem.explainOption.name).value}}</div>\n </td>\n </ng-container>\n <td style=\"width: 80px\" nzRight=\"0\">\n <span class=\"common-btn-group\">\n <a *ngIf=\"operateButtons.includes('add')\" (click)=\"addFormLine(line.get('lineIndex').value)\">\u6DFB\u52A0</a>\n <a class=\"common-danger-btn\" *ngIf=\"operateButtons.includes('delete') && !showDeleteConfirm\"\n (click)=\"deleteFormLine(line.get('lineIndex').value)\">\u5220\u9664</a>\n <a class=\"common-danger-btn\" *ngIf=\"operateButtons.includes('delete') && showDeleteConfirm\" nz-popconfirm\n nzPopconfirmTitle=\"\u786E\u8BA4\u8981\u5220\u9664\u8BE5\u884C\u5417?\" nzPopconfirmPlacement=\"bottom\"\n (nzOnConfirm)=\"deleteFormLine(line.get('lineIndex').value)\">\u5220\u9664</a>\n </span>\n </td>\n </tr>\n </ng-container>\n <!-- \u5408\u8BA1\u533A\u57DF -->\n <tr *ngIf=\"showTotal\" class=\"hd-table-total\">\n <td>\u5408\u8BA1</td>\n <ng-container *ngFor=\"let totalOption of totalOptionList\">\n <td [nzAlign]=\"totalOption.align ? totalOption.align : 'left'\">{{ (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 </nz-table>\n <nz-list\n *ngIf=\"linesFormArray.controls.slice((paginationPageIndex - 1) * paginationPageSize, (paginationPageIndex - 1) * paginationPageSize + paginationPageSize).length === 0\"\n [nzDataSource]=\"[]\"></nz-list>\n <ng-container>\n <hd-space background=\"transparent\" type=\"row\" size=\"16\"></hd-space>\n <nz-pagination [nzSize]=\"'small'\" style=\"text-align: right;\" [nzPageIndex]=\"paginationPageIndex\"\n [nzPageSize]=\"paginationPageSize\" [nzPageSizeOptions]=\"[10, 20, 30, 40, 50]\"\n [nzTotal]=\"linesFormArray.controls.length\" nzShowSizeChanger (nzPageIndexChange)=\"pageIndexChange($event)\"\n (nzPageSizeChange)=\"pageSizeChange($event)\" [nzShowTotal]=\"totalTemplate\"></nz-pagination>\n <ng-template #totalTemplate let-total>\u5171 {{linesFormArray.controls.length}} \u6761\u6570\u636E</ng-template>\n </ng-container>\n</form>",
2924
+ template: "<hd-button-group *ngIf=\"showForm && 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<!-- TODO: \u6D4B\u8BD5\u6309\u94AE\u7EC4 -->\n<hd-button-group>\n <ng-template #buttonGroupLeft>\n <hd-button type=\"primary\" (clickAction)=\"testPage()\">\u6D4B\u8BD5\u7FFB\u9875\u6309\u94AE</hd-button>\n <hd-button type=\"primary\" (clickAction)=\"focusDom(0, 0)\">\u6D4B\u8BD5\u805A\u7126\u9009\u62E9\u6846</hd-button>\n <hd-button type=\"primary\" (clickAction)=\"focusDom(0, 2)\">\u6D4B\u8BD5\u805A\u7126\u666E\u901A\u9009\u62E9\u6846</hd-button>\n <hd-button type=\"primary\" (clickAction)=\"focusDom(0, 3)\">\u6D4B\u8BD5\u805A\u7126\u591A\u9879\u9009\u62E9\u6846</hd-button>\n <hd-button type=\"primary\" (clickAction)=\"focusDom(0, 4)\">\u6D4B\u8BD5\u805A\u7126\u7981\u7528\u8F93\u5165\u6846</hd-button>\n <hd-button type=\"primary\" (clickAction)=\"focusDom(0, 7)\">\u6D4B\u8BD5\u805A\u7126\u6570\u5B57\u8F93\u5165\u6846</hd-button>\n <hd-button type=\"primary\" (clickAction)=\"jumpToNextInput(0, 1)\">\u6D4B\u8BD5\u805A\u7126\u4E0B\u4E00\u4E2A</hd-button>\n </ng-template>\n</hd-button-group>\n\n<hd-space background=\"transparent\" type=\"row\" size=\"16\"></hd-space>\n<form *ngIf=\"showForm\" nz-form [formGroup]=\"validateHdFormLines\" class=\"ant-advanced-search-form hd-formLines-container\"\n (keydown)=\"onKeyDown($event)\">\n <nz-table nzTemplateMode [nzFrontPagination]=\"false\" [nzLoading]=\"tableLoading\" [nzScroll]=\"scroll\">\n <thead>\n <tr>\n <th nzWidth=\"58px\" nzLeft=\"0px\">\u5E8F\u53F7</th>\n <ng-container *ngFor=\"let item of formLines\">\n <th *ngIf=\"!item.hide\" [nzAlign]=\"item.align ? item.align : 'left'\">\n <span *ngIf=\"item.require\" style=\"color: red;\">*</span>{{item.label}}\n </th>\n </ng-container>\n <th style=\"width: 80px\" nzRight=\"0\">\u64CD\u4F5C</th>\n </tr>\n </thead>\n <tbody>\n <ng-container\n *ngFor=\"let line of linesFormArray.controls.slice((paginationPageIndex - 1) * paginationPageSize, (paginationPageIndex - 1) * paginationPageSize + paginationPageSize);index as dataIndex\"\n formArrayName=\"lines\">\n <tr [formGroup]=\"line\">\n <td nzWidth=\"58px\" nzLeft=\"0px\">\n {{line.get('lineIndex').value}}\n </td>\n <ng-container *ngFor=\"let formItem of formLines; index as innerIndex\">\n <td *ngIf=\"!formItem.hide\" [nzAlign]=\"formItem.align ? formItem.align : 'left'\">\n <nz-form-item>\n <nz-form-control [nzErrorTip]=\"formItem.label + '\u4E0D\u80FD\u4E3A\u7A7A'\">\n <ng-container [ngSwitch]=\"formItem.type\">\n <ng-container *ngSwitchCase=\"'Input'\">\n <nz-input-group [nzSuffix]=\"inputCleanTemplate\">\n <input #formInputDom (click)=\"setActiveDomInFormLines(dataIndex , innerIndex)\"\n [ngStyle]=\"getStyle(line, formItem, '100px')\" nz-input\n [ngStyle]=\"{'color': formItem?.colorOption?.name ? line.get(formItem.colorOption.name ).value : null}\"\n [id]=\"'input-' + formItem.name + line.get('lineIndex').value\"\n (click)=\"formItem.isSelect ? selectValue('#input-' + formItem.name + line.get('lineIndex').value, dataIndex , innerIndex) : null\"\n [maxlength]=\"formItem.maxLength || null\"\n [placeholder]=\"formItem.placeholder ? formItem.placeholder : '\u8BF7\u8F93\u5165' + formItem.label\"\n [formControlName]=\"formItem.name\" />\n </nz-input-group>\n <ng-template #inputCleanTemplate>\n <i nz-icon nz-tooltip class=\"ant-input-clear-icon\" nzTheme=\"fill\" nzType=\"close-circle\"\n *ngIf=\"line.get(formItem.name).value && !line.get(formItem.name).disabled\"\n (click)=\"inputClean(formItem ,line)\"></i>\n </ng-template>\n </ng-container>\n <ng-container *ngSwitchCase=\"'Select'\">\n <nz-select #formInputDom (click)=\"setActiveDomInFormLines(dataIndex , innerIndex)\"\n nzDropdownClassName=\"hd-select-table\"\n *ngIf=\"formItem.selectOption.tableColumns;else nomarlSelectTemplate\"\n [nzShowSearch]=\"formItem.selectOption.hdShowSearch != null ? formItem.selectOption.hdShowSearch : true\"\n [nzAllowClear]=\"formItem.selectOption.hdAllowClear != null ? formItem.selectOption.hdAllowClear : true\"\n [nzServerSearch]=\"formItem.selectOption.hdServerSearch || false\"\n [nzDropdownMatchSelectWidth]=\"formItem.selectOption.hdDropdownMatchSelectWidth ? formItem.selectOption.hdDropdownMatchSelectWidth : false\"\n [nzPlaceHolder]=\"formItem.placeholder ? formItem.placeholder : '\u8BF7\u9009\u62E9' + formItem.label\"\n [formControlName]=\"formItem.name\"\n (nzOnSearch)=\"onSearchEvent(formItem.onSearchEvent || null, $event, line, formItem.onSearchEventEventDebounceTime)\"\n [ngStyle]=\"getStyle(line, formItem, '200px')\">\n <nz-option nzCustomContent nzDisabled>\n <div class=\"hd-option-header\"\n *ngIf=\"(formItem.selectOption?.selectList?.length > 0 || line.get(formItem.selectOption.selectListName)?.value?.length > 0);else emptyTemplate\">\n <div class=\"hd-option-header-column\"\n *ngFor=\"let selectOptionTableColumn of formItem.selectOption.tableColumns;index as index \"\n [ngStyle]=\"{'width': selectOptionTableColumn?.width ? (selectOptionTableColumn.width + ((index === 0 && !selectOptionTableColumn.label) ? 12 : 0) + 'px') : 'unset'}\">\n {{selectOptionTableColumn.label}}\n </div>\n </div>\n <ng-template #emptyTemplate>\n <div class=\"hd-select-empty\">\n <img\n src=\"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iNjRweCIgaGVpZ2h0PSI0MXB4IiB2aWV3Qm94PSIwIDAgNjQgNDEiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8IS0tIEdlbmVyYXRvcjogU2tldGNoIDUyLjUgKDY3NDY5KSAtIGh0dHA6Ly93d3cuYm9oZW1pYW5jb2RpbmcuY29tL3NrZXRjaCAtLT4KICAgIDxnIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKC00NzIuMDAwMDAwLCAtMTMzNS4wMDAwMDApIj4KICAgICAgICAgICAgPGcgIHRyYW5zZm9ybT0idHJhbnNsYXRlKDY0LjAwMDAwMCwgMTExNC4wMDAwMDApIj4KICAgICAgICAgICAgICAgIDxnICB0cmFuc2Zvcm09InRyYW5zbGF0ZSg0MC4wMDAwMDAsIDc4LjAwMDAwMCkiPgogICAgICAgICAgICAgICAgICAgIDxnICB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzNjguMDAwMDAwLCAxNDQuMDAwMDAwKSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxnID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbGxpcHNlICBmaWxsPSIjRjVGNUY1IiBjeD0iMzIiIGN5PSIzMyIgcng9IjMyIiByeT0iNyI+PC9lbGxpcHNlPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgICB0cmFuc2Zvcm09InRyYW5zbGF0ZSg5LjAwMDAwMCwgMC4wMDAwMDApIiBmaWxsLXJ1bGU9Im5vbnplcm8iIHN0cm9rZT0iI0Q5RDlEOSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTQ2LDEyLjc2MDU2MDQgTDM1Ljg1NDMwNDcsMS4yNTczOTYzMyBDMzUuMzY3NDQxNCwwLjQ3MzgyNjYwNSAzNC42NTU4Nzg5LDAgMzMuOTA2NzYxNywwIEwxMi4wOTMyMzgzLDAgQzExLjM0NDEyMTEsMCAxMC42MzI1NTg2LDAuNDczOTUwMjU1IDEwLjE0NTY5NTMsMS4yNTczOTYzMyBMMi42MTQ3OTcyN2UtMTIsMTIuNzYwNTYwNCBMMCwyMiBMNDYsMjIgTDQ2LDEyLjc2MDU2MDQgWiIgID48L3BhdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTMyLjYxMzI4MTMsMTUuOTMxNSBDMzIuNjEzMjgxMywxNC4zMjU4NTExIDMzLjYwNjk1MzEsMTMuMDAwMjM0IDM0LjgzOTY5OTIsMTMgTDQ2LDEzIEw0NiwzMS4xMzcxMjc3IEM0NiwzMy4yNTg5NTc0IDQ0LjY3OTM4NjcsMzUgNDMuMDUwNDI5NywzNSBMMi45NDk1NzAzMSwzNSBDMS4zMjA1MjM0NCwzNSAwLDMzLjI1ODg0MDQgMCwzMS4xMzcxMjc3IEwwLDEzIEwxMS4xNjAzMDA4LDEzIEMxMi4zOTMwNDY5LDEzIDEzLjM4NjcxODgsMTQuMzIyODA4NSAxMy4zODY3MTg4LDE1LjkyODQ1NzQgTDEzLjM4NjcxODgsMTUuOTQ5NjM4MyBDMTMuMzg2NzE4OCwxNy41NTUyODcyIDE0LjM5MTcxMDksMTguODUxMTgwOSAxNS42MjQ0NTcsMTguODUxMTgwOSBMMzAuMzc1NTQzLDE4Ljg1MTE4MDkgQzMxLjYwODI4OTEsMTguODUxMTgwOSAzMi42MTMyODEzLDE3LjU0MzM1MTEgMzIuNjEzMjgxMywxNS45Mzc3MDIxIEwzMi42MTMyODEzLDE1LjkzMTUgWiIgIGZpbGw9IiNGQUZBRkEiPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9nPgogICAgICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgPC9nPgogICAgICAgIDwvZz4KICAgIDwvZz4KPC9zdmc+\"\n alt=\"empty\">\n <p class=\"ant-empty-description\">\u6682\u65E0\u6570\u636E</p>\n </div>\n </ng-template>\n </nz-option>\n\n <nz-option nzCustomContent\n *ngFor=\"let selectItem of (formItem.selectOption.selectList || line.get(formItem.selectOption.selectListName).value)\"\n [nzValue]=\"selectItem[formItem.selectOption.value]\" [nzLabel]=\"formItem.selectOption.showLabelAndValue ? '['+ selectItem[formItem.selectOption.value] +']' +\n selectItem[formItem.selectOption.label] : selectItem[formItem.selectOption.label]\">\n <div class=\"hd-option-line\">\n <div *ngFor=\"let selectOptionTableColumn of formItem.selectOption.tableColumns\"\n [ngStyle]=\"{'width': selectOptionTableColumn?.width ? selectOptionTableColumn.width + 'px' : 'unset'}\">\n <ng-container *ngIf=\"selectOptionTableColumn.icons;else notPictureTemplate\">\n <ng-container *ngFor=\"let icon of selectOptionTableColumn.icons\">\n <img *ngIf=\"icon.iconName === 'hd-recommend-star' && selectItem[icon.fieldName]\"\n src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAVpJREFUOE+l07FLQkEcB/Dv7713Zg1GQ0SgW9AmTYVp1BRUokZBEI1u/QVBUBD1D0Rt0dQaPYmotXza1tKQzQ1Fk0iDHr5vPEOTUpO88e77+9zvjjtBh8HTOb8e0hu0eN8Xzz22ikonoGzHdgXcAVB16S75U/mbn/m2AK+mglqbBUAGvCIRuVCJ7HLXQCUTPQOxXi8Q4FolnYWuAH0+HaEpjrdxAyC3VSq33xKgPTWiYYUai8IjUCabw4Zw1XWNF2+OZrXoi+cLImBth4odfQAw0elCW6zdKvU2/wVkYs8ggzBlRqrcI/DrrK1wQ7DWAIToV8lsqGxHDwTY6qYbA1jpCVAux3oBSirhDPYCOL6kE/s/QB77UrnNJoDDVkCN6pI+BJH+6xINQdpKOCf1d/AEYBxgUUQC5PcLbPMDXy1lhGXx7r0G6ExklpBwI0xh2w7ID+UzL71iL/MJdzuZdDL/kXcAAAAASUVORK5CYII=\"\n style=\"width: 16px;height: 16px;\">\n <img *ngIf=\"icon.iconName === 'hd-img-star' && selectItem[icon.fieldName]\"\n src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAyhJREFUWEe1ll1o1XYYxp8nPUmUihdCV3bAirvYzUC80Xpy3KwTZNR2CdOhDkTBwe6G32XzwqpjE3Qt4pUKZQqDyQZNTp1uY8yCJG0F2d2+LlWOOkShovQkaV45lcJpTdOTHJubBPI+z/Pj//H+/0TGR66uf8sPoz8A/Kstkp38YORxFitmEVU1vm1cBPlp9ZuQXtX0jmfxygQgvxSWBRWlDECvhgrwQFuqLufG4TAtRCaAwCl+IcDXtWEi2KFb7pUFBxCBEpSMMsDWGWEiNzXLe2/BASp2cTuJH+KCRMJ3dGvsrzQQqafAtw0XpBEfIhc00/tswQD8QWM1FP45d4A8V9XJN9k5Nl4vRKoR8G3jMshdyebRPs0cOftaAaRUbAsRrRRRhuczFsF/lPATNQrL3Hr7/nz1lGvvtkwGUSEC8gLkWfMGkAfQMp9J0n8ByhS5J+QDVr+BshBlUu6q3d5v9G3jIcg3GgnJqp2C853iCIB1WU0a1F2iOO2tPnK3CLQ1aJZKLpCfddPrmtoF8uuqZn9iyfcEzVQumYtlQDO9vS8PsprHd4xvAR7I7FuHUIBvdNP9crr0lT7g24U+UNlfh1f6Esrn2ofeuVphbCPyneJuAN+lT0jokZCduum9cobM2Qn9krEGEa6+hi36jEC3aro34vASW3FoG9si8sdGRoKCY6rlnpjLIxGgYhunSPY0AiAiP+mW93EmAN8ujoJobwgAuKOb7orUAHKjY1EwHjwFkGsEoKpVJ6WVH3n/p1oDwVBhk0TK742GV/UKYOZMt5QKoGIbX5E8mgwg4wCbADQn1c1uPvP2gWqB7xjDADck7OwBVan0QFFyQaj2A9wxV60A13XT7Uw1Ar5TlDiBQP6hRHs0a3Ss9n8wuK4jYtN5Em/H6B5ppht7r4jvhEOFtYiUGQEAnhDoV033ZNJwB45xRAS9IBfX1qnhRD7uhhQLENiFQ0Ll9LSBCM7olnu43gUpTjEfiPSB3D6tUQRbcpZ7bbZHLEBYKnRFogxV505rmjzIrtG/6w2fMS0l430RHAVoULBZtdybdQFkCcuqSXUtzxqSpHsBfmUdgJhaiDQAAAAASUVORK5CYII=\"\n style=\"width: 16px;height: 16px;\">\n </ng-container>\n </ng-container>\n <ng-template #notPictureTemplate>\n <ng-container\n *ngIf=\"!isTextOverflow(selectOptionTableColumn.render ? selectOptionTableColumn.render(selectItem) : selectItem[selectOptionTableColumn.name], selectOptionTableColumn.width);else overflowTemplate\">\n <div>{{ judgeColEmpty(selectOptionTableColumn.render ?\n selectOptionTableColumn.render(selectItem) :\n selectItem[selectOptionTableColumn.name])}}</div>\n </ng-container>\n <ng-template #overflowTemplate>\n <div class=\"hd-option-overflow\" nz-tooltip\n [nzTooltipTitle]=\"selectOptionTableColumn.render ? selectOptionTableColumn.render(selectItem) : selectItem[selectOptionTableColumn.name]\">\n {{\n judgeColEmpty(selectOptionTableColumn.render ?\n selectOptionTableColumn.render(selectItem) :\n selectItem[selectOptionTableColumn.name])}}</div>\n </ng-template>\n </ng-template>\n </div>\n </div>\n </nz-option>\n <nz-option\n *ngIf=\"formItem.selectOption.label && line.get(formItem.name) && line.get(formItem.selectOption.label)?.value && line.get(formItem.selectOption.value)?.value\"\n [nzLabel]=\"(formItem.selectOption.value === 'code' || formItem.selectOption.value === 'productCode' || formItem.selectOption.hdShowItemCode) ? ('['+ line.get(formItem.selectOption.value).value + ']' + line.get(formItem.selectOption.label).value) : line.get(formItem.selectOption.label).value\"\n [nzValue]=\"line.get(formItem.selectOption.value).value\" nzHide></nz-option>\n </nz-select>\n <ng-template #nomarlSelectTemplate>\n <nz-select #formInputDom (click)=\"setActiveDomInFormLines(dataIndex , innerIndex)\"\n [nzShowSearch]=\"formItem.selectOption.hdShowSearch != null ? formItem.selectOption.hdShowSearch : true\"\n [nzAllowClear]=\"formItem.selectOption.hdAllowClear != null ? formItem.selectOption.hdAllowClear : true\"\n [nzServerSearch]=\"formItem.selectOption.hdServerSearch || false\"\n [nzDropdownMatchSelectWidth]=\"formItem.selectOption.hdDropdownMatchSelectWidth ? formItem.selectOption.hdDropdownMatchSelectWidth : false\"\n [nzPlaceHolder]=\"formItem.placeholder ? formItem.placeholder : '\u8BF7\u9009\u62E9' + formItem.label\"\n [formControlName]=\"formItem.name\"\n (nzOnSearch)=\"onSearchEvent(formItem.onSearchEvent || null, $event, line, formItem.onSearchEventEventDebounceTime)\"\n [ngStyle]=\"getStyle(line, formItem, '200px')\">\n <nz-option\n *ngFor=\"let selectItem of (formItem.selectOption.selectList || line.get(formItem.selectOption.selectListName).value)\"\n [nzValue]=\"selectItem[formItem.selectOption.value]\" [nzLabel]=\"formItem.selectOption.showLabelAndValue ? '['+ selectItem[formItem.selectOption.value] +']' +\n selectItem[formItem.selectOption.label] : selectItem[formItem.selectOption.label]\">\n </nz-option>\n <nz-option\n *ngIf=\"formItem.selectOption.label && line.get(formItem.name) && line.get(formItem.selectOption.label)?.value && line.get(formItem.selectOption.value)?.value\"\n [nzLabel]=\"(formItem.selectOption.value === 'code' || formItem.selectOption.value === 'productCode' || formItem.selectOption.hdShowItemCode) ? ('['+ line.get(formItem.selectOption.value).value + ']' + line.get(formItem.selectOption.label).value) : line.get(formItem.selectOption.label).value\"\n [nzValue]=\"line.get(formItem.selectOption.value).value\" nzHide></nz-option>\n </nz-select>\n </ng-template>\n\n </ng-container>\n <ng-container *ngSwitchCase=\"'Date'\">\n <nz-date-picker #formInputDom (click)=\"setActiveDomInFormLines(dataIndex , innerIndex)\"\n *ngIf=\"formItem.showTime\" [ngStyle]=\"getStyle(line, formItem, '150px')\"\n [nzPlaceHolder]=\"formItem.placeholder ? formItem.placeholder : '\u8BF7\u9009\u62E9' + formItem.label\"\n [formControlName]=\"formItem.name\" [nzDisabledDate]=\"formItem.hdDisabledDate\" nzShowTime\n nzFormat=\"yyyy-MM-dd HH:mm:ss\">\n </nz-date-picker>\n <nz-date-picker #formInputDom *ngIf=\"!formItem.showTime\"\n [ngStyle]=\"getStyle(line, formItem, '150px')\"\n (click)=\"setActiveDomInFormLines(dataIndex , innerIndex)\"\n [nzPlaceHolder]=\"formItem.placeholder ? formItem.placeholder : '\u8BF7\u9009\u62E9' + formItem.label\"\n [formControlName]=\"formItem.name\" [nzDisabledDate]=\"formItem.hdDisabledDate\">\n </nz-date-picker>\n </ng-container>\n <ng-container *ngSwitchCase=\"'DateRange'\">\n <nz-range-picker #formInputDom [ngStyle]=\"getStyle(line, formItem, '200px')\"\n (click)=\"setActiveDomInFormLines(dataIndex , innerIndex)\" [nzPlaceHolder]=\"['\u5F00\u59CB\u65E5\u671F','\u7ED3\u675F\u65E5\u671F']\"\n [formControlName]=\"formItem.name\">\n </nz-range-picker>\n </ng-container>\n <ng-container *ngSwitchCase=\"'TextArea'\">\n <textarea #formInputDom (click)=\"setActiveDomInFormLines(dataIndex , innerIndex)\"\n [ngStyle]=\"{'color': formItem?.colorOption?.name ? line.get(formItem.colorOption.name).value : null}\"\n [placeholder]=\"formItem.placeholder ? formItem.placeholder : '\u8BF7\u8F93\u5165' + formItem.label\"\n [maxlength]=\"formItem.maxLength || null\" rows=\"4\" nz-input\n [maxlength]=\"formItem.maxLength || null\" [formControlName]=\"formItem.name\"></textarea>\n </ng-container>\n <ng-container *ngSwitchCase=\"'InputNumber'\">\n <div style=\"display: flex;align-items: center;\">\n <nz-input-number #formInputDom [ngStyle]=\"getStyle(line, formItem, '100px')\"\n [maxlength]=\"formItem.maxLength || null\" [formControlName]=\"formItem.name\"\n [nzMin]=\"formItem?.inputNumber?.min || 0\" [nzMax]=\"formItem?.inputNumber?.max || 99999999\"\n [nzStep]=\"formItem?.inputNumber?.step || 1\"\n [nzPrecision]=\"formItem?.inputNumber?.precision || 2\"\n [nzPlaceHolder]=\"formItem.placeholder ? formItem.placeholder : '\u8BF7\u8F93\u5165' + formItem.label\"\n [nzId]=\"'inputNumber-' + formItem.name + line.get('lineIndex').value\"\n (click)=\"formItem.isSelect ? selectValue('#inputNumber-' + formItem.name + line.get('lineIndex').value, dataIndex , innerIndex) : setActiveDomInFormLines(dataIndex , innerIndex)\">\n </nz-input-number>\n <div *ngIf=\"formItem?.explainOptionRight?.show\"\n [style.color]=\"formItem?.explainOptionRight?.color ? formItem.explainOptionRight.color : null\">\n &nbsp;&nbsp;{{line.get(formItem.explainOptionRight.name).value}}</div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'MultipleSelect'\">\n <nz-select #formInputDom (click)=\"setActiveDomInFormLines(dataIndex , innerIndex)\"\n nzMode=\"multiple\" [nzServerSearch]=\"formItem.selectOption.hdServerSearch || false\"\n [nzDropdownMatchSelectWidth]=\"formItem.selectOption.hdDropdownMatchSelectWidth ? formItem.selectOption.hdDropdownMatchSelectWidth : false\"\n [nzShowSearch]=\"formItem.selectOption.hdShowSearch != null ? formItem.selectOption.hdShowSearch : true\"\n [nzAllowClear]=\"formItem.selectOption.hdAllowClear != null ? formItem.selectOption.hdAllowClear : true\"\n [nzPlaceHolder]=\"formItem.placeholder ? formItem.placeholder : '\u8BF7\u9009\u62E9' + formItem.label\"\n [formControlName]=\"formItem.name\" [ngStyle]=\"getStyle(line, formItem, '200px')\"\n (nzOnSearch)=\"onSearchEvent(formItem.onSearchEvent || null, $event, line, formItem.onSearchEventEventDebounceTime)\">\n <nz-option *ngFor=\"let selectItem of formItem.selectOption.selectList\"\n [nzValue]=\"selectItem[formItem.selectOption.value]\" [nzLabel]=\"formItem.selectOption.showLabelAndValue ? '['+ selectItem[formItem.selectOption.value] +']' +\n selectItem[formItem.selectOption.label] : selectItem[formItem.selectOption.label]\"></nz-option>\n <ng-container\n *ngIf=\"formItem.selectOption.label && line.get(formItem.name) && line.get(formItem.selectOption.label)?.value && line.get(formItem.selectOption.value)?.value\">\n <nz-option *ngFor=\"let option of line.get(formItem.selectOption.value).value;index as i\"\n [nzLabel]=\"line.get(formItem.selectOption.label).value[i]\" [nzValue]=\"option\" nzHide>\n </nz-option>\n </ng-container>\n </nz-select>\n </ng-container>\n <ng-container *ngSwitchCase=\"'ViewDom'\">\n {{(formItem.preserveNumber && line.get(formItem.name).value) ?\n LodashRound(line.get(formItem.name).value,formItem.preserveNumber).toFixed(formItem.preserveNumber)\n : line.get(formItem.name).value}}\n </ng-container>\n <ng-container *ngSwitchCase=\"'Switch'\">\n <nz-switch (click)=\"setActiveDomInFormLines(dataIndex , innerIndex)\"\n [formControlName]=\"formItem.name\"></nz-switch>\n </ng-container>\n <ng-container *ngSwitchCase=\"'Time' \">\n <nz-time-picker #formInputDom [ngStyle]=\"getStyle(line, formItem, '200px')\"\n (click)=\"setActiveDomInFormLines(dataIndex , innerIndex)\"\n [formControlName]=\"formItem.name\"></nz-time-picker>\n </ng-container>\n </ng-container>\n </nz-form-control>\n </nz-form-item>\n <div *ngIf=\"formItem?.explainOption?.show\"\n [style.color]=\"formItem?.explainOption?.color ? formItem.explainOption.color : null\">\n {{line.get(formItem.explainOption.name).value}}</div>\n </td>\n </ng-container>\n <td style=\"width: 80px\" nzRight=\"0\">\n <span class=\"common-btn-group\">\n <a *ngIf=\"operateButtons.includes('add')\" (click)=\"addFormLine(line.get('lineIndex').value)\">\u6DFB\u52A0</a>\n <a class=\"common-danger-btn\" *ngIf=\"operateButtons.includes('delete') && !showDeleteConfirm\"\n (click)=\"deleteFormLine(line.get('lineIndex').value)\">\u5220\u9664</a>\n <a class=\"common-danger-btn\" *ngIf=\"operateButtons.includes('delete') && showDeleteConfirm\" nz-popconfirm\n nzPopconfirmTitle=\"\u786E\u8BA4\u8981\u5220\u9664\u8BE5\u884C\u5417?\" nzPopconfirmPlacement=\"bottom\"\n (nzOnConfirm)=\"deleteFormLine(line.get('lineIndex').value)\">\u5220\u9664</a>\n </span>\n </td>\n </tr>\n </ng-container>\n <!-- \u5408\u8BA1\u533A\u57DF -->\n <tr *ngIf=\"showTotal\" class=\"hd-table-total\">\n <td>\u5408\u8BA1</td>\n <ng-container *ngFor=\"let totalOption of totalOptionList\">\n <td [nzAlign]=\"totalOption.align ? totalOption.align : 'left'\">{{ (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 </nz-table>\n <nz-list\n *ngIf=\"linesFormArray.controls.slice((paginationPageIndex - 1) * paginationPageSize, (paginationPageIndex - 1) * paginationPageSize + paginationPageSize).length === 0\"\n [nzDataSource]=\"[]\"></nz-list>\n <ng-container>\n <hd-space background=\"transparent\" type=\"row\" size=\"16\"></hd-space>\n <nz-pagination [nzSize]=\"'small'\" style=\"text-align: right;\" [nzPageIndex]=\"paginationPageIndex\"\n [nzPageSize]=\"paginationPageSize\" [nzPageSizeOptions]=\"[2, 10, 20, 30, 40, 50]\"\n [nzTotal]=\"linesFormArray.controls.length\" nzShowSizeChanger (nzPageIndexChange)=\"pageIndexChange($event)\"\n (nzPageSizeChange)=\"pageSizeChange($event)\" [nzShowTotal]=\"totalTemplate\"></nz-pagination>\n <ng-template #totalTemplate let-total>\u5171 {{linesFormArray.controls.length}} \u6761\u6570\u636E</ng-template>\n </ng-container>\n</form>",
2206
2925
  styles: ["::ng-deep .common-btn-group>a{font-size:12px;font-weight:400;color:#12a34f!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}::ng-deep .ant-input-number-input{height:28px}::ng-deep .ant-input-number{height:28px}textarea.ant-input{height:auto;min-height:28px}::ng-deep .ant-select-selection--multiple{min-height:28px}::ng-deep .ant-select-selection__rendered>ul>li{height:22px!important;margin-top:3px!important;line-height:22px!important}::ng-deep .ant-advanced-search-form .ant-form-item{margin-bottom:0!important}::ng-deep .ant-select-selection--single{height:28px!important}::ng-deep .ant-input{height:28px}::ng-deep .ant-input[disabled]:hover{border-color:#d9d9d9!important}::ng-deep .ant-select-selection__rendered{line-height:28px!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:12px;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:12px;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-time-picker{width:100%}.hd-formLines-container ::ng-deep td{padding:1.5px 8px!important}.hd-formLines-container .ant-table-tbody>tr>td,.hd-formLines-container ::ng-deep .ant-table-thead>tr>th{padding:16px 8px}.hd-formLines-container ::ng-deep .hd-table-total>td{border:0!important}.hd-formLines-container .ant-input-number{width:100%}::ng-deep .hd-select-table .ant-select-dropdown-menu-item-disabled{background:#f5f8f6!important;border-bottom:1px solid #e8e8e8;position:-webkit-sticky;position:sticky;top:0;z-index:10;padding:0}::ng-deep .hd-select-table .ant-select-dropdown-menu-item-disabled:hover{background:#f5f8f6!important}.hd-option-header{display:flex;align-items:center;color:rgba(0,0,0,.85);background:#f5f8f6}.hd-option-header-column{padding:5px 0}.hd-option-line{display:flex;align-items:center}.hd-option-overflow{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.hd-select-empty{display:flex;align-items:center;flex-direction:column;padding:20px 0;background:#fff}::ng-deep .ant-empty-small{background:#fff!important;padding:8px 0;margin:0}"]
2207
2926
  }] }
2208
2927
  ];
2209
2928
  /** @nocollapse */
2210
2929
  HdFormLinesComponent.ctorParameters = function () { return [
2211
- { type: FormBuilder }
2930
+ { type: FormBuilder },
2931
+ { type: ChangeDetectorRef }
2212
2932
  ]; };
2213
2933
  HdFormLinesComponent.propDecorators = {
2934
+ formInputDomList: [{ type: ViewChildren, args: ['formInputDom',] }],
2214
2935
  tableLoading: [{ type: Input }],
2215
2936
  showSearch: [{ type: Input }],
2216
2937
  formLines: [{ type: Input }],
@@ -2242,6 +2963,8 @@ var HdFormLinesComponent = /** @class */ (function () {
2242
2963
  return HdFormLinesComponent;
2243
2964
  }());
2244
2965
  if (false) {
2966
+ /** @type {?} */
2967
+ HdFormLinesComponent.prototype.formInputDomList;
2245
2968
  /** @type {?} */
2246
2969
  HdFormLinesComponent.prototype.tableLoading;
2247
2970
  /** @type {?} */
@@ -2305,6 +3028,16 @@ if (false) {
2305
3028
  * @private
2306
3029
  */
2307
3030
  HdFormLinesComponent.prototype.searchSubscription;
3031
+ /** @type {?} */
3032
+ HdFormLinesComponent.prototype.collectDomList;
3033
+ /** @type {?} */
3034
+ HdFormLinesComponent.prototype.activeDomX;
3035
+ /** @type {?} */
3036
+ HdFormLinesComponent.prototype.activeDomY;
3037
+ /** @type {?} */
3038
+ HdFormLinesComponent.prototype.activeDom;
3039
+ /** @type {?} */
3040
+ HdFormLinesComponent.prototype.activeSelectedComponentOpen;
2308
3041
  /**
2309
3042
  * @type {?}
2310
3043
  * @private
@@ -2315,6 +3048,11 @@ if (false) {
2315
3048
  * @private
2316
3049
  */
2317
3050
  HdFormLinesComponent.prototype.fb;
3051
+ /**
3052
+ * @type {?}
3053
+ * @private
3054
+ */
3055
+ HdFormLinesComponent.prototype.cdr;
2318
3056
  }
2319
3057
 
2320
3058
  /**
@@ -3665,8 +4403,6 @@ var HdTableComponent = /** @class */ (function () {
3665
4403
  */
3666
4404
  function () {
3667
4405
  var _this = this;
3668
- console.log('local', location);
3669
- console.log('window', window);
3670
4406
  this.localtionTmp = location.pathname;
3671
4407
  if (this.localtionTmp) {
3672
4408
  this.localtionTmp = this.localtionTmp.replace(/\//g, "_");
@@ -4501,7 +5237,7 @@ var HdTableComponent = /** @class */ (function () {
4501
5237
  { type: Component, args: [{
4502
5238
  selector: 'hd-table',
4503
5239
  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)=\"showDetail = !showDetail\">{{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\" [nzScroll]=\"scroll\" nzShowSizeChanger\n nzShowSizeChanger nzShowQuickJumper nzFrontPagination=\"false\" nzSize=\"middle\" [nzData]=\"tableData.content\"\n [nzTotal]=\"tableData.totalElements\" [(nzPageIndex)]=\"tablePageIndex\" [nzLoading]=\"tableLoading\"\n [nzPageSizeOptions]=\"[ 10, 50, 100, 200 ]\" [(nzPageSize)]=\"tablePageSize\" (nzPageSizeChange)=\"search(true)\"\n (nzPageIndexChange)=\"search(false)\" (nzCurrentPageDataChange)=\"showSelected ? currentPageDataChange($event) : null\"\n [nzShowTotal]=\"tableTotalTemplate\">\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 <tr *ngFor=\"let data of hdTable.data;index as i\">\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\">\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=\"!btn.showConfirm;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';else otherTemplate\">\n <hd-status [status]=\"data['state']\">{{ judgeColEmpty(col.render ? col.render(data) : data['state'])}}\n </hd-status>\n </ng-container>\n <ng-template #otherTemplate>\n <ng-container *ngIf=\"col.click;else noClickTemplate\">\n <ng-container\n *ngIf=\"!isTextOverflow(col.render ? col.render(data) : data[col.name], col.width);else overflowTemplate\">\n <a [ngStyle]=\"{'color': col?.color ? col.color : null}\"\n (click)=\"triggerEvent(col.click || null, data)\">{{ judgeColEmpty(col.render ? col.render(data) :\n data[col.name])}}</a>\n </ng-container>\n <ng-template #overflowTemplate>\n <a [ngStyle]=\"{'color': col?.color ? col.color : null}\" nz-tooltip\n [nzTooltipTitle]=\"col.render ? col.render(data) : data[col.name]\"\n (click)=\"triggerEvent(col.click || null, data)\">{{ judgeColEmpty(col.render ? col.render(data) :\n data[col.name])}}</a>\n </ng-template>\n </ng-container>\n <ng-template #noClickTemplate>\n <ng-container\n *ngIf=\"!isTextOverflow(col.render ? col.render(data) : data[col.name], col.width);else overflowTemplate\">\n <span [ngStyle]=\"{'color': col?.color ? col.color : null}\">{{ judgeColEmpty(col.render ?\n col.render(data) :\n data[col.name])}}</span>\n </ng-container>\n <ng-template #overflowTemplate>\n <span [ngStyle]=\"{'color': col?.color ? col.color : null}\" nz-tooltip\n [nzTooltipTitle]=\"col.render ? col.render(data) : data[col.name]\">\n {{ judgeColEmpty(col.render ? col.render(data) : data[col.name])}}</span>\n </ng-template>\n </ng-template>\n </ng-template>\n </ng-template>\n </td>\n </ng-container>\n </tr>\n <!-- \u5408\u8BA1\u6240\u6709\u6570\u636E\u533A\u57DF \u9700\u8981\u540E\u7AEF\u63A5\u53E3\u914D\u5408 -->\n <tr *ngIf=\"showTableTotal\" 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 </tbody>\n <ng-template #tableTotalTemplate>\n \u5171 {{tableData.totalElements}} \u6761\u6570\u636E\n </ng-template>\n </nz-table>\n</ng-container>",
4504
- styles: ["::ng-deep .common-btn-group>a{font-size:12px;font-weight:400;color:#12a34f!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}::ng-deep .ant-input-number-input{height:28px}::ng-deep .ant-input-number{height:28px}textarea.ant-input{height:auto;min-height:28px}::ng-deep .ant-select-selection--multiple{min-height:28px}::ng-deep .ant-select-selection__rendered>ul>li{height:22px!important;margin-top:3px!important;line-height:22px!important}::ng-deep .ant-advanced-search-form .ant-form-item{margin-bottom:0!important}::ng-deep .ant-select-selection--single{height:28px!important}::ng-deep .ant-input{height:28px}::ng-deep .ant-input[disabled]:hover{border-color:#d9d9d9!important}::ng-deep .ant-select-selection__rendered{line-height:28px!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:12px;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:12px;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-time-picker{width:100%}.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}::ng-deep .ant-dropdown-menu{border-radius:0}::ng-deep .ant-dropdown{margin-top:8px!important}.common-td-wrap{white-space:normal!important}.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}"]
5240
+ styles: ["::ng-deep .common-btn-group>a{font-size:12px;font-weight:400;color:#12a34f!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}::ng-deep .ant-input-number-input{height:28px}::ng-deep .ant-input-number{height:28px}textarea.ant-input{height:auto;min-height:28px}::ng-deep .ant-select-selection--multiple{min-height:28px}::ng-deep .ant-select-selection__rendered>ul>li{height:22px!important;margin-top:3px!important;line-height:22px!important}::ng-deep .ant-advanced-search-form .ant-form-item{margin-bottom:0!important}::ng-deep .ant-select-selection--single{height:28px!important}::ng-deep .ant-input{height:28px}::ng-deep .ant-input[disabled]:hover{border-color:#d9d9d9!important}::ng-deep .ant-select-selection__rendered{line-height:28px!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:12px;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:12px;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-time-picker{width:100%}.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}::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}"]
4505
5241
  }] }
4506
5242
  ];
4507
5243
  /** @nocollapse */
@@ -4947,145 +5683,6 @@ var HdFilterService = /** @class */ (function () {
4947
5683
  return HdFilterService;
4948
5684
  }());
4949
5685
 
4950
- /**
4951
- * @fileoverview added by tsickle
4952
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4953
- */
4954
- // 控件列表
4955
- var
4956
- // 控件列表
4957
- FormLine = /** @class */ (function () {
4958
- function FormLine() {
4959
- // 输入框的提示文件
4960
- this.require = false; // 是否必填
4961
- // 是否必填
4962
- this.hide = false; // 是否为隐藏字段,仅用于填充表单的字段,不显示在页面上
4963
- // 列对齐方式
4964
- this.value = null; // 值 不传默认为null
4965
- // 需要保留小数的列的位数
4966
- this.inputNumber = new InputNumber(); // number组件的min、max、step
4967
- // 不可输入状态
4968
- this.showTime = false; // 日期选择器是否包含时间
4969
- this.canSearch = false; // 指明hide 情况下的控件是否可以被搜索,默认false
4970
- }
4971
- return FormLine;
4972
- }());
4973
- if (false) {
4974
- /** @type {?} */
4975
- FormLine.prototype.type;
4976
- /** @type {?} */
4977
- FormLine.prototype.label;
4978
- /** @type {?} */
4979
- FormLine.prototype.name;
4980
- /** @type {?} */
4981
- FormLine.prototype.placeholder;
4982
- /** @type {?} */
4983
- FormLine.prototype.require;
4984
- /** @type {?} */
4985
- FormLine.prototype.hide;
4986
- /** @type {?} */
4987
- FormLine.prototype.align;
4988
- /** @type {?} */
4989
- FormLine.prototype.value;
4990
- /** @type {?} */
4991
- FormLine.prototype.isSelect;
4992
- /** @type {?} */
4993
- FormLine.prototype.selectOption;
4994
- /** @type {?} */
4995
- FormLine.prototype.explainOptionRight;
4996
- /** @type {?} */
4997
- FormLine.prototype.explainOption;
4998
- /** @type {?} */
4999
- FormLine.prototype.colorOption;
5000
- /** @type {?} */
5001
- FormLine.prototype.maxLength;
5002
- /** @type {?} */
5003
- FormLine.prototype.preserveNumber;
5004
- /** @type {?} */
5005
- FormLine.prototype.inputNumber;
5006
- /** @type {?} */
5007
- FormLine.prototype.onChangeEvent;
5008
- /** @type {?} */
5009
- FormLine.prototype.onSearchEvent;
5010
- /** @type {?} */
5011
- FormLine.prototype.defaultLabel;
5012
- /** @type {?} */
5013
- FormLine.prototype.hdDisabledDate;
5014
- /** @type {?} */
5015
- FormLine.prototype.disabled;
5016
- /** @type {?} */
5017
- FormLine.prototype.showTime;
5018
- /** @type {?} */
5019
- FormLine.prototype.style;
5020
- /** @type {?} */
5021
- FormLine.prototype.canSearch;
5022
- /** @type {?} */
5023
- FormLine.prototype.onChangeEventDebounceTime;
5024
- /** @type {?} */
5025
- FormLine.prototype.onSearchEventEventDebounceTime;
5026
- }
5027
- var ColorOption = /** @class */ (function () {
5028
- function ColorOption() {
5029
- }
5030
- return ColorOption;
5031
- }());
5032
- if (false) {
5033
- /** @type {?} */
5034
- ColorOption.prototype.name;
5035
- /** @type {?} */
5036
- ColorOption.prototype.color;
5037
- }
5038
- var ExplainOption = /** @class */ (function () {
5039
- function ExplainOption() {
5040
- }
5041
- return ExplainOption;
5042
- }());
5043
- if (false) {
5044
- /** @type {?} */
5045
- ExplainOption.prototype.show;
5046
- /** @type {?} */
5047
- ExplainOption.prototype.name;
5048
- /** @type {?} */
5049
- ExplainOption.prototype.color;
5050
- }
5051
- /** @enum {number} */
5052
- var FormLineType = {
5053
- Input: 0,
5054
- Select: 1,
5055
- Date: 2,
5056
- DateRange: 3,
5057
- TextArea: 4,
5058
- InputNumber: 5,
5059
- MultipleSelect: 6,
5060
- ViewDom: 7,
5061
- Switch: 8,
5062
- Time: 9 // 时间选择器
5063
- ,
5064
- };
5065
- FormLineType[FormLineType.Input] = 'Input';
5066
- FormLineType[FormLineType.Select] = 'Select';
5067
- FormLineType[FormLineType.Date] = 'Date';
5068
- FormLineType[FormLineType.DateRange] = 'DateRange';
5069
- FormLineType[FormLineType.TextArea] = 'TextArea';
5070
- FormLineType[FormLineType.InputNumber] = 'InputNumber';
5071
- FormLineType[FormLineType.MultipleSelect] = 'MultipleSelect';
5072
- FormLineType[FormLineType.ViewDom] = 'ViewDom';
5073
- FormLineType[FormLineType.Switch] = 'Switch';
5074
- FormLineType[FormLineType.Time] = 'Time';
5075
- var HdFormLinesService = /** @class */ (function () {
5076
- function HdFormLinesService() {
5077
- }
5078
- HdFormLinesService.decorators = [
5079
- { type: Injectable, args: [{
5080
- providedIn: 'root'
5081
- },] }
5082
- ];
5083
- /** @nocollapse */
5084
- HdFormLinesService.ctorParameters = function () { return []; };
5085
- /** @nocollapse */ HdFormLinesService.ngInjectableDef = ɵɵdefineInjectable({ factory: function HdFormLinesService_Factory() { return new HdFormLinesService(); }, token: HdFormLinesService, providedIn: "root" });
5086
- return HdFormLinesService;
5087
- }());
5088
-
5089
5686
  /**
5090
5687
  * @fileoverview added by tsickle
5091
5688
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc