fantasy-ngzorro 1.2.20 → 1.3.1

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.
@@ -1486,14 +1486,144 @@
1486
1486
  return HdSpaceModule;
1487
1487
  }());
1488
1488
 
1489
+ /**
1490
+ * @fileoverview added by tsickle
1491
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
1492
+ */
1493
+ // 控件列表
1494
+ var
1495
+ // 控件列表
1496
+ FormLine = /** @class */ (function () {
1497
+ function FormLine() {
1498
+ // 输入框的提示文件
1499
+ this.require = false; // 是否必填
1500
+ // 是否必填
1501
+ this.hide = false; // 是否为隐藏字段,仅用于填充表单的字段,不显示在页面上
1502
+ // 列对齐方式
1503
+ this.value = null; // 值 不传默认为null
1504
+ // 需要保留小数的列的位数
1505
+ this.inputNumber = new InputNumber(); // number组件的min、max、step
1506
+ // 不可输入状态
1507
+ this.showTime = false; // 日期选择器是否包含时间
1508
+ this.canSearch = false; // 指明hide 情况下的控件是否可以被搜索,默认false
1509
+ }
1510
+ return FormLine;
1511
+ }());
1512
+ if (false) {
1513
+ /** @type {?} */
1514
+ FormLine.prototype.type;
1515
+ /** @type {?} */
1516
+ FormLine.prototype.label;
1517
+ /** @type {?} */
1518
+ FormLine.prototype.name;
1519
+ /** @type {?} */
1520
+ FormLine.prototype.placeholder;
1521
+ /** @type {?} */
1522
+ FormLine.prototype.require;
1523
+ /** @type {?} */
1524
+ FormLine.prototype.hide;
1525
+ /** @type {?} */
1526
+ FormLine.prototype.align;
1527
+ /** @type {?} */
1528
+ FormLine.prototype.value;
1529
+ /** @type {?} */
1530
+ FormLine.prototype.isSelect;
1531
+ /** @type {?} */
1532
+ FormLine.prototype.selectOption;
1533
+ /** @type {?} */
1534
+ FormLine.prototype.explainOptionRight;
1535
+ /** @type {?} */
1536
+ FormLine.prototype.explainOption;
1537
+ /** @type {?} */
1538
+ FormLine.prototype.colorOption;
1539
+ /** @type {?} */
1540
+ FormLine.prototype.maxLength;
1541
+ /** @type {?} */
1542
+ FormLine.prototype.preserveNumber;
1543
+ /** @type {?} */
1544
+ FormLine.prototype.inputNumber;
1545
+ /** @type {?} */
1546
+ FormLine.prototype.onChangeEvent;
1547
+ /** @type {?} */
1548
+ FormLine.prototype.onSearchEvent;
1549
+ /** @type {?} */
1550
+ FormLine.prototype.defaultLabel;
1551
+ /** @type {?} */
1552
+ FormLine.prototype.hdDisabledDate;
1553
+ /** @type {?} */
1554
+ FormLine.prototype.disabled;
1555
+ /** @type {?} */
1556
+ FormLine.prototype.showTime;
1557
+ /** @type {?} */
1558
+ FormLine.prototype.style;
1559
+ /** @type {?} */
1560
+ FormLine.prototype.canSearch;
1561
+ /** @type {?} */
1562
+ FormLine.prototype.onChangeEventDebounceTime;
1563
+ /** @type {?} */
1564
+ FormLine.prototype.onSearchEventEventDebounceTime;
1565
+ }
1566
+ var ColorOption = /** @class */ (function () {
1567
+ function ColorOption() {
1568
+ }
1569
+ return ColorOption;
1570
+ }());
1571
+ if (false) {
1572
+ /** @type {?} */
1573
+ ColorOption.prototype.name;
1574
+ /** @type {?} */
1575
+ ColorOption.prototype.color;
1576
+ }
1577
+ var ExplainOption = /** @class */ (function () {
1578
+ function ExplainOption() {
1579
+ }
1580
+ return ExplainOption;
1581
+ }());
1582
+ if (false) {
1583
+ /** @type {?} */
1584
+ ExplainOption.prototype.show;
1585
+ /** @type {?} */
1586
+ ExplainOption.prototype.name;
1587
+ /** @type {?} */
1588
+ ExplainOption.prototype.color;
1589
+ }
1590
+ /** @enum {string} */
1591
+ var FormLineType = {
1592
+ Input: 'Input',
1593
+ Select: 'Select',
1594
+ Date: 'Date',
1595
+ DateRange: 'DateRange',
1596
+ TextArea: 'TextArea',
1597
+ InputNumber: 'InputNumber',
1598
+ MultipleSelect: 'MultipleSelect',
1599
+ ViewDom: 'ViewDom',
1600
+ Switch: 'Switch',
1601
+ Time: 'Time' // 时间选择器
1602
+ ,
1603
+ };
1604
+ var HdFormLinesService = /** @class */ (function () {
1605
+ function HdFormLinesService() {
1606
+ }
1607
+ HdFormLinesService.decorators = [
1608
+ { type: core.Injectable, args: [{
1609
+ providedIn: 'root'
1610
+ },] }
1611
+ ];
1612
+ /** @nocollapse */
1613
+ HdFormLinesService.ctorParameters = function () { return []; };
1614
+ /** @nocollapse */ HdFormLinesService.ngInjectableDef = core.ɵɵdefineInjectable({ factory: function HdFormLinesService_Factory() { return new HdFormLinesService(); }, token: HdFormLinesService, providedIn: "root" });
1615
+ return HdFormLinesService;
1616
+ }());
1617
+
1489
1618
  /**
1490
1619
  * @fileoverview added by tsickle
1491
1620
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
1492
1621
  */
1493
1622
  var HdFormLinesComponent = /** @class */ (function () {
1494
- function HdFormLinesComponent(fb) {
1623
+ function HdFormLinesComponent(fb, cdr) {
1495
1624
  var _this = this;
1496
1625
  this.fb = fb;
1626
+ this.cdr = cdr;
1497
1627
  this.tableLoading = false;
1498
1628
  this.showSearch = false;
1499
1629
  this.operateButtons = ['add', 'delete'];
@@ -1520,6 +1650,13 @@
1520
1650
  // 表单当前的状态
1521
1651
  this.searchSubject = new rxjs.Subject();
1522
1652
  this.debounceTimeout = 0; // 默认防抖时间
1653
+ // 当前页的dom二维数组
1654
+ this.collectDomList = [];
1655
+ // 当前聚焦的dom元素坐标
1656
+ this.activeDomX = null;
1657
+ this.activeDomY = null;
1658
+ this.activeDom = null;
1659
+ this.activeSelectedComponentOpen = false;
1523
1660
  this.textWidthCache = {};
1524
1661
  this.searchSubscription = this.searchSubject.pipe(operators.debounceTime(this.debounceTimeout)).subscribe((/**
1525
1662
  * @param {?} __0
@@ -1533,13 +1670,520 @@
1533
1670
  /**
1534
1671
  * @return {?}
1535
1672
  */
1536
- HdFormLinesComponent.prototype.ngOnInit = /**
1673
+ HdFormLinesComponent.prototype.ngOnInit = /**
1674
+ * @return {?}
1675
+ */
1676
+ function () {
1677
+ // 缓存一下总的表单数据
1678
+ this.storeFormLinesData = this.formLinesData;
1679
+ this.init();
1680
+ };
1681
+ /**
1682
+ * @return {?}
1683
+ */
1684
+ HdFormLinesComponent.prototype.ngAfterViewInit = /**
1685
+ * @return {?}
1686
+ */
1687
+ function () {
1688
+ this.collectDomData();
1689
+ };
1690
+ Object.defineProperty(HdFormLinesComponent.prototype, "formLinesLength", {
1691
+ get: /**
1692
+ * @return {?}
1693
+ */
1694
+ function () {
1695
+ return this.linesFormArray.controls.length;
1696
+ },
1697
+ enumerable: true,
1698
+ configurable: true
1699
+ });
1700
+ /**
1701
+ * @return {?}
1702
+ */
1703
+ HdFormLinesComponent.prototype.collectDomData = /**
1704
+ * @return {?}
1705
+ */
1706
+ function () {
1707
+ this.collectDomList = [];
1708
+ /** @type {?} */
1709
+ var pageDomList = this.formInputDomList.toArray();
1710
+ // Step 1: 获取当前页的数据量
1711
+ /** @type {?} */
1712
+ var startIndex = (this.paginationPageIndex - 1) * this.paginationPageSize;
1713
+ /** @type {?} */
1714
+ var endIndex = this.paginationPageIndex * this.paginationPageSize;
1715
+ /** @type {?} */
1716
+ var adjustedEndIndex = endIndex > this.formLinesLength ? this.formLinesLength : endIndex;
1717
+ /** @type {?} */
1718
+ var pageLinesLength = adjustedEndIndex - startIndex;
1719
+ /** @type {?} */
1720
+ var interval = pageDomList.length / pageLinesLength;
1721
+ // Step 2: 拆分formInputDomList
1722
+ for (var i = 0; i < pageLinesLength; i++) {
1723
+ this.collectDomList.push(pageDomList.splice(0, interval));
1724
+ }
1725
+ // 关闭所有NzInputNumberComponent的键盘上下箭头触发+-的功能
1726
+ for (var i = 0; i < this.collectDomList.length; i++) {
1727
+ for (var j = 0; j < this.collectDomList[i].length; j++) {
1728
+ /** @type {?} */
1729
+ var dom = this.collectDomList[i][j];
1730
+ if (dom instanceof ngZorroAntd.NzInputNumberComponent) {
1731
+ dom.down = (/**
1732
+ * @return {?}
1733
+ */
1734
+ function () { });
1735
+ dom.up = (/**
1736
+ * @return {?}
1737
+ */
1738
+ function () { });
1739
+ }
1740
+ }
1741
+ }
1742
+ };
1743
+ // 聚焦下一个dom
1744
+ // 聚焦下一个dom
1745
+ /**
1746
+ * @param {?} x
1747
+ * @param {?} y
1748
+ * @return {?}
1749
+ */
1750
+ HdFormLinesComponent.prototype.jumpToNextInput =
1751
+ // 聚焦下一个dom
1752
+ /**
1753
+ * @param {?} x
1754
+ * @param {?} y
1755
+ * @return {?}
1756
+ */
1757
+ function (x, y) {
1758
+ if (x === null || y === null || !this.collectDomList || this.collectDomList.length === 0) {
1759
+ return;
1760
+ }
1761
+ // 如果是最后一个可输入元素,新增行
1762
+ if (x === this.collectDomList.length - 1 && y === this.collectDomList[0].length - 1) {
1763
+ this.addNewLineAndFocus();
1764
+ }
1765
+ else {
1766
+ if (y === this.collectDomList[0].length - 1) {
1767
+ // 如果是最后一列,则跳转到下一行第一个输入框
1768
+ this.focusDom(x + 1, 0, 'right');
1769
+ }
1770
+ else {
1771
+ // 如果不是最后一列,则跳转到当前行下一个输入框
1772
+ this.focusDom(x, y + 1, 'right');
1773
+ }
1774
+ }
1775
+ };
1776
+ /**
1777
+ * 增加新行并且聚焦到第一个元素,
1778
+ * 这里要注意,如果存在翻页情况,需要处理
1779
+ */
1780
+ /**
1781
+ * 增加新行并且聚焦到第一个元素,
1782
+ * 这里要注意,如果存在翻页情况,需要处理
1783
+ * @return {?}
1784
+ */
1785
+ HdFormLinesComponent.prototype.addNewLineAndFocus = /**
1786
+ * 增加新行并且聚焦到第一个元素,
1787
+ * 这里要注意,如果存在翻页情况,需要处理
1788
+ * @return {?}
1789
+ */
1790
+ function () {
1791
+ var _this = this;
1792
+ // 当前行为当前页最后一行的时候,判断下一页是否有数据
1793
+ // 1、如果有:翻页+聚焦第一行第一个元素
1794
+ // 2、如果没有:新增行+翻页+聚焦第一行第一个元素
1795
+ if (this.activeDomX === this.paginationPageSize - 1) {
1796
+ // 判断下一页是否有数据
1797
+ if (this.paginationPageIndex < Math.ceil(this.formLinesLength / this.paginationPageSize)) {
1798
+ // 翻页+聚焦第一行第一个元素
1799
+ this.paginationPageIndex++;
1800
+ setTimeout((/**
1801
+ * @return {?}
1802
+ */
1803
+ function () {
1804
+ _this.collectDomData();
1805
+ _this.focusDom(0, 0, 'right');
1806
+ }), 0);
1807
+ }
1808
+ else {
1809
+ // 新增行+翻页+聚焦第一行第一个元素
1810
+ this.addFormLine();
1811
+ this.paginationPageIndex++;
1812
+ setTimeout((/**
1813
+ * @return {?}
1814
+ */
1815
+ function () {
1816
+ _this.collectDomData();
1817
+ _this.focusDom(0, 0);
1818
+ }), 0);
1819
+ }
1820
+ }
1821
+ else {
1822
+ this.addFormLine();
1823
+ }
1824
+ };
1825
+ // 聚焦到上一个dom
1826
+ // 聚焦到上一个dom
1827
+ /**
1828
+ * @param {?} x
1829
+ * @param {?} y
1830
+ * @return {?}
1831
+ */
1832
+ HdFormLinesComponent.prototype.jumpToPrevInput =
1833
+ // 聚焦到上一个dom
1834
+ /**
1835
+ * @param {?} x
1836
+ * @param {?} y
1837
+ * @return {?}
1838
+ */
1839
+ function (x, y) {
1840
+ var _this = this;
1841
+ if (x === null || y === null || !this.collectDomList || this.collectDomList.length === 0) {
1842
+ return;
1843
+ }
1844
+ if (x === 0 && y === 0) {
1845
+ // 如果是第一个可输入元素, 判断是否有上一页, 如果有,则翻页+聚焦到上一页最后一个元素
1846
+ if (this.paginationPageIndex > 1) {
1847
+ // 翻页+聚焦到上一页最后一个元素
1848
+ this.paginationPageIndex--;
1849
+ setTimeout((/**
1850
+ * @return {?}
1851
+ */
1852
+ function () {
1853
+ _this.collectDomData();
1854
+ _this.focusDom(_this.collectDomList.length - 1, _this.collectDomList[0].length - 1);
1855
+ }), 0);
1856
+ }
1857
+ return;
1858
+ }
1859
+ else {
1860
+ if (y === 0) {
1861
+ // 如果是第一列,则跳转到上一行最后一个输入框
1862
+ this.focusDom(x - 1, this.collectDomList[0].length - 1, 'left');
1863
+ }
1864
+ else {
1865
+ // 如果不是第一列,则跳转到当前行上一个输入框
1866
+ this.focusDom(x, y - 1, 'left');
1867
+ }
1868
+ }
1869
+ };
1870
+ /**
1871
+ * 聚焦到某个dom
1872
+ * @param x 坐标x
1873
+ * @param y 坐标y
1874
+ * @param jumpDirection 跳转方向
1875
+ */
1876
+ /**
1877
+ * 聚焦到某个dom
1878
+ * @param {?} x 坐标x
1879
+ * @param {?} y 坐标y
1880
+ * @param {?=} jumpDirection 跳转方向
1881
+ * @return {?}
1882
+ */
1883
+ HdFormLinesComponent.prototype.focusDom = /**
1884
+ * 聚焦到某个dom
1885
+ * @param {?} x 坐标x
1886
+ * @param {?} y 坐标y
1887
+ * @param {?=} jumpDirection 跳转方向
1888
+ * @return {?}
1889
+ */
1890
+ function (x, y, jumpDirection) {
1891
+ if (jumpDirection === void 0) { jumpDirection = 'right'; }
1892
+ if (x === null || y === null || !this.collectDomList || this.collectDomList.length === 0) {
1893
+ return;
1894
+ }
1895
+ // 先清除一下当前的焦点
1896
+ this.cleanFocusDom(this.activeDomX, this.activeDomY);
1897
+ if (this.collectDomList[x] && this.collectDomList[x][y]) {
1898
+ /** @type {?} */
1899
+ var dom_1 = this.collectDomList[x][y];
1900
+ // 需要判断下一个focus的dom是否是禁用状态,如果是禁用状态需要跳过
1901
+ if (dom_1 instanceof ngZorroAntd.NzSelectComponent) {
1902
+ if (dom_1.nzDisabled) {
1903
+ if (jumpDirection === 'right') {
1904
+ this.jumpToNextInput(x, y);
1905
+ }
1906
+ else if (jumpDirection === 'left') {
1907
+ this.jumpToPrevInput(x, y);
1908
+ }
1909
+ return;
1910
+ }
1911
+ dom_1.nzSelectTopControlComponent.inputElement.nativeElement.scrollIntoView({ behavior: 'smooth', block: 'center', inline: 'center' });
1912
+ // 这里多选框需要额外处理下,因为向下的时候会触发内部Input的聚焦,把下一个dom的focus放到宏任务中,延迟处理。
1913
+ if (dom_1.nzSelectService.mode === 'multiple') {
1914
+ setTimeout((/**
1915
+ * @return {?}
1916
+ */
1917
+ function () {
1918
+ dom_1.focus();
1919
+ }), 0);
1920
+ }
1921
+ else {
1922
+ dom_1.focus();
1923
+ }
1924
+ }
1925
+ else if (dom_1 instanceof ngZorroAntd.NzInputNumberComponent) {
1926
+ if (dom_1.nzDisabled) {
1927
+ if (jumpDirection === 'right') {
1928
+ this.jumpToNextInput(x, y);
1929
+ }
1930
+ else if (jumpDirection === 'left') {
1931
+ this.jumpToPrevInput(x, y);
1932
+ }
1933
+ return;
1934
+ }
1935
+ /** @type {?} */
1936
+ var inputDom_1 = document.getElementById(dom_1.nzId);
1937
+ inputDom_1.focus();
1938
+ inputDom_1.scrollIntoView({ behavior: 'smooth', block: 'center', inline: 'center' });
1939
+ setTimeout((/**
1940
+ * @return {?}
1941
+ */
1942
+ function () {
1943
+ inputDom_1.select();
1944
+ }), 0);
1945
+ }
1946
+ else if (dom_1 instanceof core.ElementRef) {
1947
+ if (dom_1.nativeElement.disabled) {
1948
+ if (jumpDirection === 'right') {
1949
+ this.jumpToNextInput(x, y);
1950
+ }
1951
+ else if (jumpDirection === 'left') {
1952
+ this.jumpToPrevInput(x, y);
1953
+ }
1954
+ return;
1955
+ }
1956
+ dom_1.nativeElement.focus();
1957
+ dom_1.nativeElement.scrollIntoView({ behavior: 'smooth', block: 'center', inline: 'center' });
1958
+ setTimeout((/**
1959
+ * @return {?}
1960
+ */
1961
+ function () {
1962
+ dom_1.nativeElement.select();
1963
+ }), 0);
1964
+ }
1965
+ else if (dom_1 instanceof ngZorroAntd.NzDatePickerComponent || dom_1 instanceof ngZorroAntd.NzRangePickerComponent || dom_1 instanceof ngZorroAntd.NzTimePickerComponent) {
1966
+ // TODO:在ngzorro8.5.x版本,时间相关的选择器没有暴露出open方法,暂时先不处理。(10.x及以上版本提供了open方法)
1967
+ if (jumpDirection === 'right') {
1968
+ this.jumpToNextInput(x, y);
1969
+ }
1970
+ else if (jumpDirection === 'left') {
1971
+ this.jumpToPrevInput(x, y);
1972
+ }
1973
+ return;
1974
+ }
1975
+ this.setActiveDom(x, y);
1976
+ }
1977
+ else {
1978
+ // 没有dom的场景下,需要判断是左还是右,
1979
+ }
1980
+ };
1981
+ /**
1982
+ * @param {?} x
1983
+ * @param {?} y
1984
+ * @return {?}
1985
+ */
1986
+ HdFormLinesComponent.prototype.cleanFocusDom = /**
1987
+ * @param {?} x
1988
+ * @param {?} y
1989
+ * @return {?}
1990
+ */
1991
+ function (x, y) {
1992
+ if (x === null || y === null || !this.collectDomList || this.collectDomList.length === 0) {
1993
+ return;
1994
+ }
1995
+ if (this.collectDomList[x] && this.collectDomList[x][y]) {
1996
+ /** @type {?} */
1997
+ var dom = this.collectDomList[x][y];
1998
+ if (dom instanceof ngZorroAntd.NzSelectComponent) {
1999
+ dom.blur();
2000
+ dom.nzOpen = false;
2001
+ }
2002
+ else if (dom instanceof ngZorroAntd.NzInputNumberComponent) {
2003
+ dom.nzOpen = false;
2004
+ dom.blur();
2005
+ }
2006
+ else if (dom instanceof core.ElementRef) {
2007
+ dom.nativeElement.blur();
2008
+ }
2009
+ else { }
2010
+ }
2011
+ };
2012
+ /**
2013
+ * @param {?} x
2014
+ * @param {?} y
2015
+ * @return {?}
2016
+ */
2017
+ HdFormLinesComponent.prototype.setActiveDom = /**
2018
+ * @param {?} x
2019
+ * @param {?} y
1537
2020
  * @return {?}
1538
2021
  */
1539
- function () {
1540
- // 缓存一下总的表单数据
1541
- this.storeFormLinesData = this.formLinesData;
1542
- this.init();
2022
+ function (x, y) {
2023
+ this.activeDomX = x;
2024
+ this.activeDomY = y;
2025
+ this.activeDom = this.collectDomList[this.activeDomX][this.activeDomY];
2026
+ if (this.activeDom instanceof ngZorroAntd.NzSelectComponent) {
2027
+ this.activeSelectedComponentOpen = this.activeDom.open;
2028
+ }
2029
+ };
2030
+ /**
2031
+ * 根据行号和列号名称获取当前聚焦的dom位置
2032
+ * @param rowNumber 行号
2033
+ * @param colNumber 列号
2034
+ */
2035
+ /**
2036
+ * 根据行号和列号名称获取当前聚焦的dom位置
2037
+ * @param {?} rowNumber 行号
2038
+ * @param {?} colNumber 列号
2039
+ * @return {?}
2040
+ */
2041
+ HdFormLinesComponent.prototype.setActiveDomInFormLines = /**
2042
+ * 根据行号和列号名称获取当前聚焦的dom位置
2043
+ * @param {?} rowNumber 行号
2044
+ * @param {?} colNumber 列号
2045
+ * @return {?}
2046
+ */
2047
+ function (rowNumber, colNumber) {
2048
+ this.activeDomX = rowNumber;
2049
+ this.activeDomY = this.getDomIndex(colNumber, this.formLines);
2050
+ this.setActiveDom(this.activeDomX, this.activeDomY);
2051
+ };
2052
+ /**
2053
+ * 键盘点击事件
2054
+ * @param event 键盘事件
2055
+ * @returns
2056
+ */
2057
+ /**
2058
+ * 键盘点击事件
2059
+ * @param {?} event 键盘事件
2060
+ * @return {?}
2061
+ */
2062
+ HdFormLinesComponent.prototype.onKeyDown = /**
2063
+ * 键盘点击事件
2064
+ * @param {?} event 键盘事件
2065
+ * @return {?}
2066
+ */
2067
+ function (event) {
2068
+ var _this = this;
2069
+ if (this.activeDomX === null || this.activeDomY === null) {
2070
+ return;
2071
+ }
2072
+ switch (event.key) {
2073
+ case 'ArrowUp':
2074
+ if (this.activeDom instanceof ngZorroAntd.NzSelectComponent && this.activeSelectedComponentOpen) {
2075
+ return;
2076
+ }
2077
+ if (this.activeDomX !== 0) {
2078
+ this.focusDom(this.activeDomX - 1, this.activeDomY);
2079
+ }
2080
+ break;
2081
+ case 'ArrowDown':
2082
+ // 判断是否在最后一行,如果在最后一行,直接+行翻页
2083
+ if (this.activeDom instanceof ngZorroAntd.NzSelectComponent && this.activeSelectedComponentOpen) {
2084
+ return;
2085
+ }
2086
+ if (this.activeDomX !== this.collectDomList.length - 1) {
2087
+ this.focusDom(this.activeDomX + 1, this.activeDomY);
2088
+ }
2089
+ break;
2090
+ case 'ArrowLeft':
2091
+ this.jumpToPrevInput(this.activeDomX, this.activeDomY);
2092
+ break;
2093
+ case 'ArrowRight':
2094
+ this.jumpToNextInput(this.activeDomX, this.activeDomY);
2095
+ break;
2096
+ case 'Enter':
2097
+ if (this.activeDom instanceof ngZorroAntd.NzSelectComponent) {
2098
+ this.activeSelectedComponentOpen = this.activeDom.open;
2099
+ if (this.activeSelectedComponentOpen === false) {
2100
+ this.focusDom(this.activeDomX, this.activeDomY);
2101
+ }
2102
+ break;
2103
+ }
2104
+ if (this.activeDomX === this.collectDomList.length - 1) {
2105
+ this.addNewLineAndFocus();
2106
+ }
2107
+ break;
2108
+ case 'Escape':
2109
+ if (this.activeDom instanceof ngZorroAntd.NzSelectComponent) {
2110
+ /** @type {?} */
2111
+ var nowActiveDom_1 = (/** @type {?} */ (this.activeDom));
2112
+ setTimeout((/**
2113
+ * @return {?}
2114
+ */
2115
+ function () {
2116
+ _this.activeSelectedComponentOpen = nowActiveDom_1.open;
2117
+ if (_this.activeSelectedComponentOpen === false) {
2118
+ if (nowActiveDom_1.nzSelectService.mode === 'multiple') {
2119
+ setTimeout((/**
2120
+ * @return {?}
2121
+ */
2122
+ function () {
2123
+ _this.focusDom(_this.activeDomX, _this.activeDomY);
2124
+ }), 0);
2125
+ }
2126
+ else {
2127
+ _this.focusDom(_this.activeDomX, _this.activeDomY);
2128
+ }
2129
+ }
2130
+ }), 0);
2131
+ }
2132
+ break;
2133
+ default:
2134
+ // 如果当前聚焦的是选择框,且键入0-9a-zA-Z,则弹出
2135
+ if (this.activeDom instanceof ngZorroAntd.NzSelectComponent && this.activeSelectedComponentOpen === false && /^[0-9a-zA-Z]$/.test(event.key)) {
2136
+ /** @type {?} */
2137
+ var dom = this.activeDom;
2138
+ dom.nzOpen = true;
2139
+ this.activeSelectedComponentOpen = true;
2140
+ // // TODO:这里暂时注释,不能直接带入键入值,这样会导致输入中文的时候带入英文字符,不符合预期
2141
+ // dom.nzSelectTopControlComponent.inputValue = event.key;
2142
+ // // 获取 input 元素
2143
+ // const inputElement = dom.nzSelectTopControlComponent.inputElement.nativeElement;
2144
+ // setTimeout(() => {
2145
+ // // 触发输入事件,以确保 Angular 检测到值的变化
2146
+ // const eventInput = new Event('input', { bubbles: true });
2147
+ // inputElement.dispatchEvent(eventInput);
2148
+ // }, 0);
2149
+ }
2150
+ break;
2151
+ }
2152
+ };
2153
+ /**
2154
+ * 根据在初始dom下标和数据集 获取在collectDomList中的下标
2155
+ * @param index 初始下标
2156
+ * @param list 数据集
2157
+ * @returns
2158
+ */
2159
+ /**
2160
+ * 根据在初始dom下标和数据集 获取在collectDomList中的下标
2161
+ * @private
2162
+ * @param {?} index 初始下标
2163
+ * @param {?} list 数据集
2164
+ * @return {?}
2165
+ */
2166
+ HdFormLinesComponent.prototype.getDomIndex = /**
2167
+ * 根据在初始dom下标和数据集 获取在collectDomList中的下标
2168
+ * @private
2169
+ * @param {?} index 初始下标
2170
+ * @param {?} list 数据集
2171
+ * @return {?}
2172
+ */
2173
+ function (index, list) {
2174
+ /** @type {?} */
2175
+ var typeList = ['Input', 'Select', 'Date', 'DateRange', 'TextArea', 'InputNumber', 'MultipleSelect'];
2176
+ /** @type {?} */
2177
+ var filterList = [];
2178
+ for (var i = 0; i < list.length; i++) {
2179
+ if (i === index) {
2180
+ return filterList.length;
2181
+ }
2182
+ if (typeList.includes(list[i].type)) {
2183
+ filterList.push(list[i]);
2184
+ }
2185
+ }
2186
+ return null;
1543
2187
  };
1544
2188
  Object.defineProperty(HdFormLinesComponent.prototype, "linesFormArray", {
1545
2189
  get: /**
@@ -1682,14 +2326,18 @@
1682
2326
  * @param {?} value
1683
2327
  * @return {?}
1684
2328
  */
1685
- function (value) { return _this.triggerEvent(item.onChangeEvent, value, formGroupTmp); }));
2329
+ function (value) {
2330
+ _this.triggerEvent(item.onChangeEvent, value, formGroupTmp);
2331
+ }));
1686
2332
  }
1687
2333
  else {
1688
2334
  formGroupTmp.get(item.name).valueChanges.subscribe((/**
1689
2335
  * @param {?} value
1690
2336
  * @return {?}
1691
2337
  */
1692
- function (value) { return _this.triggerEvent(item.onChangeEvent, value, formGroupTmp); }));
2338
+ function (value) {
2339
+ _this.triggerEvent(item.onChangeEvent, value, formGroupTmp);
2340
+ }));
1693
2341
  }
1694
2342
  }
1695
2343
  }));
@@ -1962,9 +2610,10 @@
1962
2610
  var formGroupSubmit = this.fb.group(formGroupObj);
1963
2611
  this.formLines.forEach((/**
1964
2612
  * @param {?} item
2613
+ * @param {?} innerIndex
1965
2614
  * @return {?}
1966
2615
  */
1967
- function (item) {
2616
+ function (item, innerIndex) {
1968
2617
  if (item.onChangeEvent) {
1969
2618
  if (item.onChangeEvent) {
1970
2619
  if (item.onChangeEventDebounceTime) {
@@ -1972,14 +2621,24 @@
1972
2621
  * @param {?} value
1973
2622
  * @return {?}
1974
2623
  */
1975
- function (value) { return _this.triggerEvent(item.onChangeEvent, value, formGroupSubmit); }));
2624
+ function (value) {
2625
+ if (item.type === FormLineType.Select && value !== null) {
2626
+ _this.jumpToNextInput(_this.activeDomX, _this.activeDomY);
2627
+ }
2628
+ _this.triggerEvent(item.onChangeEvent, value, formGroupSubmit);
2629
+ }));
1976
2630
  }
1977
2631
  else {
1978
2632
  formGroupSubmit.get(item.name).valueChanges.subscribe((/**
1979
2633
  * @param {?} value
1980
2634
  * @return {?}
1981
2635
  */
1982
- function (value) { return _this.triggerEvent(item.onChangeEvent, value, formGroupSubmit); }));
2636
+ function (value) {
2637
+ if (item.type === FormLineType.Select && value !== null) {
2638
+ _this.jumpToNextInput(_this.activeDomX, _this.activeDomY);
2639
+ }
2640
+ _this.triggerEvent(item.onChangeEvent, value, formGroupSubmit);
2641
+ }));
1983
2642
  }
1984
2643
  }
1985
2644
  }
@@ -2019,9 +2678,10 @@
2019
2678
  var _this = this;
2020
2679
  this.formLinesData.forEach((/**
2021
2680
  * @param {?} formLinesDataItem
2681
+ * @param {?} index
2022
2682
  * @return {?}
2023
2683
  */
2024
- function (formLinesDataItem) {
2684
+ function (formLinesDataItem, index) {
2025
2685
  /** @type {?} */
2026
2686
  var formGroupObj = {};
2027
2687
  _this.formLines.forEach((/**
@@ -2040,9 +2700,10 @@
2040
2700
  var formGroupTmp = _this.fb.group(formGroupObj);
2041
2701
  _this.formLines.forEach((/**
2042
2702
  * @param {?} item
2703
+ * @param {?} innerIndex
2043
2704
  * @return {?}
2044
2705
  */
2045
- function (item) {
2706
+ function (item, innerIndex) {
2046
2707
  if (item.onChangeEvent) {
2047
2708
  if (item.onChangeEventDebounceTime) {
2048
2709
  formGroupTmp.get(item.name).valueChanges.pipe(operators.debounceTime(item.onChangeEventDebounceTime)).subscribe((/**
@@ -2050,6 +2711,9 @@
2050
2711
  * @return {?}
2051
2712
  */
2052
2713
  function (value) {
2714
+ if (item.type === FormLineType.Select && value !== null) {
2715
+ _this.jumpToNextInput(_this.activeDomX, _this.activeDomY);
2716
+ }
2053
2717
  _this.triggerEvent(item.onChangeEvent, value, formGroupTmp);
2054
2718
  }));
2055
2719
  }
@@ -2059,6 +2723,9 @@
2059
2723
  * @return {?}
2060
2724
  */
2061
2725
  function (value) {
2726
+ if (item.type === FormLineType.Select && value !== null) {
2727
+ _this.jumpToNextInput(_this.activeDomX, _this.activeDomY);
2728
+ }
2062
2729
  _this.triggerEvent(item.onChangeEvent, value, formGroupTmp);
2063
2730
  }));
2064
2731
  }
@@ -2078,8 +2745,23 @@
2078
2745
  * @return {?}
2079
2746
  */
2080
2747
  function (index) {
2748
+ var _this = this;
2081
2749
  this.linesFormArray.insert(index || this.linesFormArray.controls.length, this.newLineItem());
2082
2750
  this.calculateLineNumber();
2751
+ setTimeout((/**
2752
+ * @return {?}
2753
+ */
2754
+ function () {
2755
+ _this.collectDomData();
2756
+ if (index !== null && index !== undefined) {
2757
+ _this.activeDomX = index;
2758
+ }
2759
+ else {
2760
+ _this.activeDomX = _this.collectDomList.length - 1;
2761
+ }
2762
+ _this.activeDomY = 0;
2763
+ _this.focusDom(_this.activeDomX, _this.activeDomY);
2764
+ }), 0);
2083
2765
  };
2084
2766
  /**
2085
2767
  * @param {?} index
@@ -2090,6 +2772,7 @@
2090
2772
  * @return {?}
2091
2773
  */
2092
2774
  function (index) {
2775
+ var _this = this;
2093
2776
  this.linesFormArray.removeAt(index - 1);
2094
2777
  if (!this.isFilterData && this.linesFormArray.controls && this.linesFormArray.controls.length === 0) {
2095
2778
  this.addFormLine();
@@ -2101,6 +2784,12 @@
2101
2784
  }
2102
2785
  this.calculateLineNumber();
2103
2786
  }
2787
+ setTimeout((/**
2788
+ * @return {?}
2789
+ */
2790
+ function () {
2791
+ _this.collectDomData();
2792
+ }), 0);
2104
2793
  };
2105
2794
  /**
2106
2795
  * @param {?} event
@@ -2111,7 +2800,14 @@
2111
2800
  * @return {?}
2112
2801
  */
2113
2802
  function (event) {
2803
+ var _this = this;
2114
2804
  this.paginationPageIndex = event;
2805
+ setTimeout((/**
2806
+ * @return {?}
2807
+ */
2808
+ function () {
2809
+ _this.collectDomData();
2810
+ }), 0);
2115
2811
  };
2116
2812
  /**
2117
2813
  * @param {?} event
@@ -2122,7 +2818,14 @@
2122
2818
  * @return {?}
2123
2819
  */
2124
2820
  function (event) {
2821
+ var _this = this;
2125
2822
  this.paginationPageSize = event;
2823
+ setTimeout((/**
2824
+ * @return {?}
2825
+ */
2826
+ function () {
2827
+ _this.collectDomData();
2828
+ }), 0);
2126
2829
  };
2127
2830
  /**
2128
2831
  * @private
@@ -2342,16 +3045,21 @@
2342
3045
  };
2343
3046
  /**
2344
3047
  * @param {?} id
3048
+ * @param {?} rowNumber
3049
+ * @param {?} colNumber
2345
3050
  * @return {?}
2346
3051
  */
2347
3052
  HdFormLinesComponent.prototype.selectValue = /**
2348
3053
  * @param {?} id
3054
+ * @param {?} rowNumber
3055
+ * @param {?} colNumber
2349
3056
  * @return {?}
2350
3057
  */
2351
- function (id) {
3058
+ function (id, rowNumber, colNumber) {
2352
3059
  /** @type {?} */
2353
3060
  var inputDom = document.querySelector(id);
2354
3061
  inputDom.select();
3062
+ this.setActiveDomInFormLines(rowNumber, colNumber);
2355
3063
  };
2356
3064
  /**
2357
3065
  * @param {?} text
@@ -2404,15 +3112,17 @@
2404
3112
  HdFormLinesComponent.decorators = [
2405
3113
  { type: core.Component, args: [{
2406
3114
  selector: 'hd-form-lines',
2407
- 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>",
3115
+ 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\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>",
2408
3116
  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}"]
2409
3117
  }] }
2410
3118
  ];
2411
3119
  /** @nocollapse */
2412
3120
  HdFormLinesComponent.ctorParameters = function () { return [
2413
- { type: forms.FormBuilder }
3121
+ { type: forms.FormBuilder },
3122
+ { type: core.ChangeDetectorRef }
2414
3123
  ]; };
2415
3124
  HdFormLinesComponent.propDecorators = {
3125
+ formInputDomList: [{ type: core.ViewChildren, args: ['formInputDom',] }],
2416
3126
  tableLoading: [{ type: core.Input }],
2417
3127
  showSearch: [{ type: core.Input }],
2418
3128
  formLines: [{ type: core.Input }],
@@ -2444,6 +3154,8 @@
2444
3154
  return HdFormLinesComponent;
2445
3155
  }());
2446
3156
  if (false) {
3157
+ /** @type {?} */
3158
+ HdFormLinesComponent.prototype.formInputDomList;
2447
3159
  /** @type {?} */
2448
3160
  HdFormLinesComponent.prototype.tableLoading;
2449
3161
  /** @type {?} */
@@ -2507,6 +3219,16 @@
2507
3219
  * @private
2508
3220
  */
2509
3221
  HdFormLinesComponent.prototype.searchSubscription;
3222
+ /** @type {?} */
3223
+ HdFormLinesComponent.prototype.collectDomList;
3224
+ /** @type {?} */
3225
+ HdFormLinesComponent.prototype.activeDomX;
3226
+ /** @type {?} */
3227
+ HdFormLinesComponent.prototype.activeDomY;
3228
+ /** @type {?} */
3229
+ HdFormLinesComponent.prototype.activeDom;
3230
+ /** @type {?} */
3231
+ HdFormLinesComponent.prototype.activeSelectedComponentOpen;
2510
3232
  /**
2511
3233
  * @type {?}
2512
3234
  * @private
@@ -2517,6 +3239,11 @@
2517
3239
  * @private
2518
3240
  */
2519
3241
  HdFormLinesComponent.prototype.fb;
3242
+ /**
3243
+ * @type {?}
3244
+ * @private
3245
+ */
3246
+ HdFormLinesComponent.prototype.cdr;
2520
3247
  }
2521
3248
 
2522
3249
  /**
@@ -3867,8 +4594,6 @@
3867
4594
  */
3868
4595
  function () {
3869
4596
  var _this = this;
3870
- console.log('local', location);
3871
- console.log('window', window);
3872
4597
  this.localtionTmp = location.pathname;
3873
4598
  if (this.localtionTmp) {
3874
4599
  this.localtionTmp = this.localtionTmp.replace(/\//g, "_");
@@ -5149,145 +5874,6 @@
5149
5874
  return HdFilterService;
5150
5875
  }());
5151
5876
 
5152
- /**
5153
- * @fileoverview added by tsickle
5154
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5155
- */
5156
- // 控件列表
5157
- var
5158
- // 控件列表
5159
- FormLine = /** @class */ (function () {
5160
- function FormLine() {
5161
- // 输入框的提示文件
5162
- this.require = false; // 是否必填
5163
- // 是否必填
5164
- this.hide = false; // 是否为隐藏字段,仅用于填充表单的字段,不显示在页面上
5165
- // 列对齐方式
5166
- this.value = null; // 值 不传默认为null
5167
- // 需要保留小数的列的位数
5168
- this.inputNumber = new InputNumber(); // number组件的min、max、step
5169
- // 不可输入状态
5170
- this.showTime = false; // 日期选择器是否包含时间
5171
- this.canSearch = false; // 指明hide 情况下的控件是否可以被搜索,默认false
5172
- }
5173
- return FormLine;
5174
- }());
5175
- if (false) {
5176
- /** @type {?} */
5177
- FormLine.prototype.type;
5178
- /** @type {?} */
5179
- FormLine.prototype.label;
5180
- /** @type {?} */
5181
- FormLine.prototype.name;
5182
- /** @type {?} */
5183
- FormLine.prototype.placeholder;
5184
- /** @type {?} */
5185
- FormLine.prototype.require;
5186
- /** @type {?} */
5187
- FormLine.prototype.hide;
5188
- /** @type {?} */
5189
- FormLine.prototype.align;
5190
- /** @type {?} */
5191
- FormLine.prototype.value;
5192
- /** @type {?} */
5193
- FormLine.prototype.isSelect;
5194
- /** @type {?} */
5195
- FormLine.prototype.selectOption;
5196
- /** @type {?} */
5197
- FormLine.prototype.explainOptionRight;
5198
- /** @type {?} */
5199
- FormLine.prototype.explainOption;
5200
- /** @type {?} */
5201
- FormLine.prototype.colorOption;
5202
- /** @type {?} */
5203
- FormLine.prototype.maxLength;
5204
- /** @type {?} */
5205
- FormLine.prototype.preserveNumber;
5206
- /** @type {?} */
5207
- FormLine.prototype.inputNumber;
5208
- /** @type {?} */
5209
- FormLine.prototype.onChangeEvent;
5210
- /** @type {?} */
5211
- FormLine.prototype.onSearchEvent;
5212
- /** @type {?} */
5213
- FormLine.prototype.defaultLabel;
5214
- /** @type {?} */
5215
- FormLine.prototype.hdDisabledDate;
5216
- /** @type {?} */
5217
- FormLine.prototype.disabled;
5218
- /** @type {?} */
5219
- FormLine.prototype.showTime;
5220
- /** @type {?} */
5221
- FormLine.prototype.style;
5222
- /** @type {?} */
5223
- FormLine.prototype.canSearch;
5224
- /** @type {?} */
5225
- FormLine.prototype.onChangeEventDebounceTime;
5226
- /** @type {?} */
5227
- FormLine.prototype.onSearchEventEventDebounceTime;
5228
- }
5229
- var ColorOption = /** @class */ (function () {
5230
- function ColorOption() {
5231
- }
5232
- return ColorOption;
5233
- }());
5234
- if (false) {
5235
- /** @type {?} */
5236
- ColorOption.prototype.name;
5237
- /** @type {?} */
5238
- ColorOption.prototype.color;
5239
- }
5240
- var ExplainOption = /** @class */ (function () {
5241
- function ExplainOption() {
5242
- }
5243
- return ExplainOption;
5244
- }());
5245
- if (false) {
5246
- /** @type {?} */
5247
- ExplainOption.prototype.show;
5248
- /** @type {?} */
5249
- ExplainOption.prototype.name;
5250
- /** @type {?} */
5251
- ExplainOption.prototype.color;
5252
- }
5253
- /** @enum {number} */
5254
- var FormLineType = {
5255
- Input: 0,
5256
- Select: 1,
5257
- Date: 2,
5258
- DateRange: 3,
5259
- TextArea: 4,
5260
- InputNumber: 5,
5261
- MultipleSelect: 6,
5262
- ViewDom: 7,
5263
- Switch: 8,
5264
- Time: 9 // 时间选择器
5265
- ,
5266
- };
5267
- FormLineType[FormLineType.Input] = 'Input';
5268
- FormLineType[FormLineType.Select] = 'Select';
5269
- FormLineType[FormLineType.Date] = 'Date';
5270
- FormLineType[FormLineType.DateRange] = 'DateRange';
5271
- FormLineType[FormLineType.TextArea] = 'TextArea';
5272
- FormLineType[FormLineType.InputNumber] = 'InputNumber';
5273
- FormLineType[FormLineType.MultipleSelect] = 'MultipleSelect';
5274
- FormLineType[FormLineType.ViewDom] = 'ViewDom';
5275
- FormLineType[FormLineType.Switch] = 'Switch';
5276
- FormLineType[FormLineType.Time] = 'Time';
5277
- var HdFormLinesService = /** @class */ (function () {
5278
- function HdFormLinesService() {
5279
- }
5280
- HdFormLinesService.decorators = [
5281
- { type: core.Injectable, args: [{
5282
- providedIn: 'root'
5283
- },] }
5284
- ];
5285
- /** @nocollapse */
5286
- HdFormLinesService.ctorParameters = function () { return []; };
5287
- /** @nocollapse */ HdFormLinesService.ngInjectableDef = core.ɵɵdefineInjectable({ factory: function HdFormLinesService_Factory() { return new HdFormLinesService(); }, token: HdFormLinesService, providedIn: "root" });
5288
- return HdFormLinesService;
5289
- }());
5290
-
5291
5877
  /**
5292
5878
  * @fileoverview added by tsickle
5293
5879
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc