fantasy-ngzorro 2.1.1 → 2.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/fantasy-ngzorro.umd.js +237 -139
- package/bundles/fantasy-ngzorro.umd.js.map +1 -1
- package/bundles/fantasy-ngzorro.umd.min.js +1 -1
- package/bundles/fantasy-ngzorro.umd.min.js.map +1 -1
- package/esm2015/hd-filter/hd-filter.component.js +1 -1
- package/esm2015/hd-form/hd-form.component.js +81 -37
- package/esm2015/hd-form/hd-form.service.js +5 -1
- package/esm2015/hd-form-lines/hd-form-lines.component.js +124 -97
- package/esm2015/hd-form-lines/hd-form-lines.service.js +5 -1
- package/esm5/hd-filter/hd-filter.component.js +1 -1
- package/esm5/hd-form/hd-form.component.js +93 -40
- package/esm5/hd-form/hd-form.service.js +5 -1
- package/esm5/hd-form-lines/hd-form-lines.component.js +137 -100
- package/esm5/hd-form-lines/hd-form-lines.service.js +5 -1
- package/fantasy-ngzorro.metadata.json +1 -1
- package/fesm2015/fantasy-ngzorro.js +212 -133
- package/fesm2015/fantasy-ngzorro.js.map +1 -1
- package/fesm5/fantasy-ngzorro.js +237 -139
- package/fesm5/fantasy-ngzorro.js.map +1 -1
- package/hd-form/hd-form.component.d.ts +4 -0
- package/hd-form/hd-form.service.d.ts +2 -0
- package/hd-form-lines/hd-form-lines.component.d.ts +4 -0
- package/hd-form-lines/hd-form-lines.service.d.ts +2 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fantasy-ngzorro.umd.js","sources":["../../../node_modules/tslib/tslib.es6.js","ng://fantasy-ngzorro/hd-button-group/hd-button-group.component.ts","ng://fantasy-ngzorro/hd-button-group/hd-button-group.module.ts","ng://fantasy-ngzorro/hd-button/hd-button.service.ts","ng://fantasy-ngzorro/hd-button/hd-button.component.ts","ng://fantasy-ngzorro/hd-button/hd-button.module.ts","ng://fantasy-ngzorro/hd-detail-form/hd-detail-form.component.ts","ng://fantasy-ngzorro/hd-detail-form/hd-detail-form.module.ts","ng://fantasy-ngzorro/hd-space/hd-space.service.ts","ng://fantasy-ngzorro/hd-space/hd-space.component.ts","ng://fantasy-ngzorro/hd-space/hd-space.module.ts","ng://fantasy-ngzorro/model/common-type.ts","ng://fantasy-ngzorro/hd-detail-lines/hd-detail-lines.component.ts","ng://fantasy-ngzorro/hd-detail-lines/hd-detail-lines.module.ts","ng://fantasy-ngzorro/hd-detail-lines-page/hd-detail-lines-page.component.ts","ng://fantasy-ngzorro/hd-detail-lines-page/hd-detail-lines-page.module.ts","ng://fantasy-ngzorro/hd-status/hd-status.service.ts","ng://fantasy-ngzorro/hd-detail-tip/hd-detail-tip.component.ts","ng://fantasy-ngzorro/hd-detail-tip/hd-detail-tip.module.ts","ng://fantasy-ngzorro/hd-filter/hd-filter.component.ts","ng://fantasy-ngzorro/hd-filter/hd-filter.module.ts","ng://fantasy-ngzorro/hd-form-lines/hd-form-lines.service.ts","ng://fantasy-ngzorro/hd-form-lines/hd-form-lines.component.ts","ng://fantasy-ngzorro/hd-form-lines/hd-form-lines.module.ts","ng://fantasy-ngzorro/hd-form/hd-form.service.ts","ng://fantasy-ngzorro/hd-form/hd-form.component.ts","ng://fantasy-ngzorro/hd-form/hd-form.module.ts","ng://fantasy-ngzorro/hd-current-table/hd-current-table.component.ts","ng://fantasy-ngzorro/hd-current-table/hd-current-table.module.ts","ng://fantasy-ngzorro/hd-log/hd-log.component.ts","ng://fantasy-ngzorro/hd-log/hd-log.service.ts","ng://fantasy-ngzorro/hd-log/hd-log.module.ts","ng://fantasy-ngzorro/hd-popconfirm/hd-popconfirm.component.ts","ng://fantasy-ngzorro/hd-popconfirm/hd-popconfirm.module.ts","ng://fantasy-ngzorro/hd-status/hd-status.component.ts","ng://fantasy-ngzorro/hd-status/hd-status.module.ts","ng://fantasy-ngzorro/service/common-session.service.ts","ng://fantasy-ngzorro/model/colWidth.ts","ng://fantasy-ngzorro/hd-table/hd-table.service.ts","ng://fantasy-ngzorro/hd-table/hd-table.component.ts","ng://fantasy-ngzorro/hd-table/hd-table.module.ts","ng://fantasy-ngzorro/hd-tip/hd-tip.component.ts","ng://fantasy-ngzorro/hd-tip/hd-tip.module.ts","ng://fantasy-ngzorro/hd-component.module.ts","ng://fantasy-ngzorro/fantasy-ngzorro.module.ts","ng://fantasy-ngzorro/hd-current-table/hd-current-table.service.ts","ng://fantasy-ngzorro/hd-detail-form/hd-detail-form.service.ts","ng://fantasy-ngzorro/hd-detail-lines/hd-detail-lines.service.ts","ng://fantasy-ngzorro/hd-filter/hd-filter.service.ts","ng://fantasy-ngzorro/model/staticConst.ts","ng://fantasy-ngzorro/utils.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { Component, ContentChild, Input, OnInit, TemplateRef } from '@angular/core';\n\n@Component({\n selector: 'hd-button-group',\n templateUrl: './hd-button-group.component.html',\n styleUrls: ['./hd-button-group.component.less']\n})\nexport class HdButtonGroupComponent implements OnInit {\n @ContentChild(\"buttonGroupLeft\", { static: false }) buttonGroupLeft: TemplateRef<any>;\n @ContentChild(\"buttonGroupRight\", { static: false }) buttonGroupRight: TemplateRef<any>;\n\n constructor() { }\n\n ngOnInit() {\n\n }\n}\n","import { HdButtonGroupComponent } from './hd-button-group.component';\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { NgZorroAntdModule } from 'ng-zorro-antd';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n NgZorroAntdModule\n ],\n declarations: [HdButtonGroupComponent],\n exports: [HdButtonGroupComponent]\n})\nexport class HdButtonGroupModule { }\n","import { Injectable } from '@angular/core';\n\nexport enum ButtonType {\n primary = 'primary',\n dashed = 'dashed',\n danger = 'danger',\n default = 'default',\n link = 'link',\n submit = 'submit',\n // 增加类型\n reset = 'reset',\n add = 'add'\n}\n\nexport enum ButtonSize {\n normal = 'normal',\n small = 'small'\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class HdButtonService {\n\n constructor() { }\n\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { InputBoolean } from 'ng-zorro-antd';\nimport { ButtonSize, ButtonType } from './hd-button.service';\n@Component({\n selector: 'hd-button',\n templateUrl: './hd-button.component.html',\n styleUrls: ['./hd-button.component.less']\n})\nexport class HdButtonComponent implements OnInit {\n\n // 默认default\n @Input() type: ButtonType = ButtonType.default;\n @Input() size: ButtonSize = ButtonSize.normal;\n @Input() @InputBoolean() loading: boolean;\n @Input() @InputBoolean() disabled: boolean = false;\n @Output() clickAction = new EventEmitter<any>();\n @Output() nzOnConfirm = new EventEmitter<any>();\n constructor() { }\n\n ngOnInit() {\n if ((this.loading === false || this.loading === true) && this.clickAction.observers.length === 0 && this.nzOnConfirm.observers.length === 0) {\n throw '存在loading效果的hd-button组件禁止使用click绑定点击事件,请使用clickAction绑定!';\n }\n if (this.type === 'submit') {\n throw '禁止使用submit类型的按钮,请使用普通按钮+click事件触发表单提交!';\n }\n }\n\n /** loading 时一并禁用,避免与外部 [disabled] 绑定互相翻转状态 */\n get isDisabled(): boolean {\n return this.disabled || this.loading;\n }\n\n innerClickAction(option: any) {\n // loading 状态下,不允许触发点击事件\n if (this.loading) {\n return;\n }\n this.clickAction.emit(option);\n }\n}\n","import { HdButtonComponent } from './hd-button.component';\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { NgZorroAntdModule } from 'ng-zorro-antd';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n NgZorroAntdModule\n ],\n declarations: [HdButtonComponent],\n exports: [HdButtonComponent]\n})\nexport class HdButtonModule { }\n","import { Component, Input, OnInit, SimpleChange } from '@angular/core';\nimport { HdOption } from '../model/common-type';\n\n@Component({\n selector: 'hd-detail-form',\n templateUrl: './hd-detail-form.component.html',\n styleUrls: ['./hd-detail-form.component.less']\n})\nexport class HdDetailFormComponent implements OnInit {\n @Input() formCols: Array<HdOption> = new Array();\n /** 列数,支持数字或响应式配置,默认按屏幕宽度自适应 */\n @Input() nzColumn: number | { xxl?: number; xl?: number; lg?: number; md?: number; sm?: number; xs?: number } =\n { xxl: 4, xl: 3, lg: 3, md: 3, sm: 2, xs: 1 };\n\n constructor() { }\n\n ngOnInit() {\n if (this.formCols && this.formCols.length > 0) {\n // 剔除掉formCols里面不需要显示的内容\n this.formCols = this.formCols.filter(item => !item.hide);\n }\n }\n\n ngOnChanges(changes: SimpleChange) {\n if (changes['formCols'] && JSON.stringify(changes['formCols'].currentValue) !== JSON.stringify(changes['formCols'].previousValue)) {\n if (this.formCols && this.formCols.length > 0) {\n // 剔除掉formCols里面不需要显示的内容\n this.formCols = this.formCols.filter(item => !item.hide);\n }\n }\n }\n\n triggerEvent(fn: any) {\n if (fn) {\n fn(event);\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { HdDetailFormComponent } from './hd-detail-form.component';\nimport { NgZorroAntdModule } from 'ng-zorro-antd';\n\n@NgModule({\n imports: [\n CommonModule,\n NgZorroAntdModule\n ],\n exports: [HdDetailFormComponent],\n declarations: [HdDetailFormComponent]\n})\nexport class HdDetailFormModule { }\n","import { Injectable } from '@angular/core';\n\nexport enum SpaceType {\n row = 'row',\n column = 'column'\n}\n\nexport class Style {\n background: string\n width: string\n height: string\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class HdSpaceService {\n\n constructor() { }\n\n}\n","import { Component, Input, OnInit, Output } from '@angular/core';\nimport { Style, SpaceType } from \"./hd-space.service\"; \n\n@Component({\n selector: 'hd-space',\n templateUrl: './hd-space.component.html',\n styleUrls: ['./hd-space.component.less']\n})\nexport class HdSpaceComponent implements OnInit {\n @Input() type: SpaceType = SpaceType.row; \n @Input() size: number; \n @Input() background: string = 'inherit'; \n\n style: Style = new Style();\n\n constructor() { }\n\n ngOnInit() {\n this.style['background'] = this.background;\n if(this.type === SpaceType.row){\n this.style['width'] = '100%';\n this.style['height'] = this.size + 'px';\n }else{\n this.style['height'] = '100%';\n this.style['width'] = this.size + 'px';\n }\n }\n\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { NgZorroAntdModule } from 'ng-zorro-antd';\nimport { HdSpaceComponent } from './hd-space.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n NgZorroAntdModule\n ],\n declarations: [HdSpaceComponent],\n exports: [HdSpaceComponent]\n})\nexport class HdSpaceModule { }\n","export class Page<T> {\n totalPages = 0;\n totalElements = 0;\n pageNumber = 0;\n pageSize = 10;\n hasContent = false;\n hasNext = false;\n content: Array<T> = [];\n}\n\nexport class HdOption {\n label: string;\n value: any;\n color?: string;\n hide?: boolean;\n clickText?: string;\n click?: (value: any) => void;\n}\n\nexport class SelectOption {\n label: string;\n value: string;\n selectList?: Array<any>;\n selectListName?: string;\n showLabelAndValue?: boolean = false;\n hdDropdownMatchSelectWidth?: boolean = false;\n hdServerSearch?: boolean = false;\n hdShowItemCode?: boolean = false; // 是否用[value]label显示选项列表\n tableColumns?: Array<SelectOptionTableColumn>;\n hdShowSearch?: boolean = true;\n hdAllowClear?: boolean = true;\n}\n\nexport class RadioOption {\n label: string;\n value: string;\n optionList?: Array<any>;\n showLabelAndValue?: boolean = false;\n}\n\nexport class CheckboxOption {\n label: string;\n value: string;\n optionList?: Array<any>;\n showLabelAndValue?: boolean = false;\n}\n\nexport class SelectOptionTableColumn {\n width: number;\n label: string; // 这里对应的是列名\n name: string; // 对应selectList里面的name值, 如果有render字段 则去render函数渲染\n icons?: Array<SelectOptionTableColumnIcon>; // 对应的图片名字\n render?: (value: any) => string;\n}\n\nexport class SelectOptionTableColumnIcon {\n iconName: string;\n fieldName: string;\n}\n\nexport class InputNumber {\n min?: number = 0;\n max?: number = 99999999;\n step?: number = 1;\n precision?: number = 4;\n nzFormatter?: Function;\n nzParser?: Function;\n}\n\nexport class CascaderOption {\n options: Array<any>;\n}\n","import { CdkDragDrop, moveItemInArray } from \"@angular/cdk/drag-drop\";\nimport {\n Component,\n ContentChild,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n TemplateRef,\n} from \"@angular/core\";\nimport { round } from \"lodash\";\nimport { InputBoolean } from \"ng-zorro-antd/core\";\nimport { Page } from \"../model/common-type\";\nimport { TotalOption } from \"./hd-detail-lines.service\";\n\n@Component({\n selector: \"hd-detail-lines\",\n templateUrl: \"./hd-detail-lines.component.html\",\n styleUrls: [\"./hd-detail-lines.component.less\"],\n})\nexport class HdDetailLinesComponent implements OnInit, OnChanges {\n @Input() lines: Array<any>;\n @Input() @InputBoolean() showSelected: boolean = false;\n @Input() @InputBoolean() allowDrop: boolean = false;\n @Input() @InputBoolean() showSearch: boolean = false;\n // 不传递这个字段时默认为查询所有字段是否有匹配的\n @Input() searchFields: string[] = [];\n @Input() scroll: { [key: string]: string } = { x: \"1px\" };\n @Input() selectField: string = \"billNumber\";\n @Input() selectedField: string;\n @Output() selectEvent = new EventEmitter();\n @ContentChild(\"detailLineHead\", { static: false })\n detailLineHead: TemplateRef<any>;\n @ContentChild(\"detailLineBody\", { static: false })\n detailLineBody: TemplateRef<any>;\n // 合计区域\n @Input() @InputBoolean() showTotal: boolean = false;\n @Input() totalOption: Array<TotalOption> = [];\n @Input() columnsNumber: number | string = 0;\n @Input() hdFrontPagination: boolean = false;\n totalOptionList = [];\n\n tableData: Page<any> = new Page();\n tableLoading: boolean = false;\n // 表格分页参数\n tablePageIndex: number = 1;\n tablePageSize: number = 10;\n // 表格勾选参数\n isAllDisplayDataChecked = false;\n isIndeterminate = false;\n listOfDisplayData = [];\n listOfAllData = [];\n listOfSelection: Array<any> | TemplateRef<void>;\n mapOfCheckedId: { [key: string]: boolean } = {};\n mapOfCheckList: { [key: string]: any } = {};\n filterStr: string;\n /** 表格实际展示的数据(筛选结果或全量) */\n displayLines: Array<any> = [];\n /** 是否处于筛选状态 */\n isFilterData = false;\n storeFormLinesData: any = []; // 缓存的总的列表数据\n\n constructor() {}\n\n ngOnInit(): void {\n this.syncStoreFromLinesInput();\n this.applyDisplayFromStore();\n this.countSelected();\n this.calculateTotal();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes[\"lines\"]) {\n if (!this.isFilterData) {\n this.syncStoreFromLinesInput();\n this.displayLines = this.lines || [];\n } else if (\n !this.storeFormLinesData ||\n this.storeFormLinesData.length === 0\n ) {\n this.syncStoreFromLinesInput();\n }\n }\n this.countSelected();\n this.calculateTotal();\n }\n\n private syncStoreFromLinesInput(source?: Array<any>): void {\n const data = source || this.lines;\n this.storeFormLinesData = data ? JSON.parse(JSON.stringify(data)) : [];\n }\n\n /** 未筛选时与父组件 lines 同源,避免模板内 ngModel 与父数据脱节 */\n private applyDisplayFromStore(): void {\n if (this.lines && this.lines.length > 0) {\n this.displayLines = this.lines;\n return;\n }\n this.displayLines = this.storeFormLinesData\n ? JSON.parse(JSON.stringify(this.storeFormLinesData))\n : [];\n }\n\n private restoreFromStore(): void {\n this.isFilterData = false;\n this.applyDisplayFromStore();\n this.tableLoading = false;\n this.countSelected();\n this.calculateTotal();\n }\n\n // 全局性的搜索(涵盖页面上所有的可视文字)\n searchLines() {\n // 清空搜索:即使当前展示为空也要能从缓存恢复(对齐 hd-form-lines)\n if (!this.filterStr || !this.filterStr.trim()) {\n if (!this.storeFormLinesData || this.storeFormLinesData.length < 1) {\n return;\n }\n this.tableLoading = true;\n this.restoreFromStore();\n return;\n }\n if (!this.storeFormLinesData || this.storeFormLinesData.length < 1) {\n return;\n }\n this.tableLoading = true;\n const filterValue = this.filterStr.trim().toLowerCase();\n this.isFilterData = true;\n\n const filteredData = this.storeFormLinesData.filter((data: any) => {\n if (!this.searchFields || this.searchFields.length === 0) {\n for (const item of Object.keys(data)) {\n if (\n data[item] &&\n data[item].toString().toLowerCase().includes(filterValue)\n ) {\n return true;\n }\n }\n return false;\n }\n for (const item of this.searchFields) {\n if (\n data[item] &&\n data[item].toString().toLowerCase().includes(filterValue)\n ) {\n return true;\n }\n }\n return false;\n });\n this.displayLines = JSON.parse(JSON.stringify(filteredData));\n this.tableLoading = false;\n this.countSelected();\n this.calculateTotal();\n }\n\n private countSelected(): void {\n if (\n this.showSelected &&\n this.selectedField &&\n this.displayLines &&\n this.displayLines.length\n ) {\n this.displayLines.forEach((item) => {\n if (item[this.selectedField] === true) {\n this.mapOfCheckedId[item[this.selectField]] = true;\n this.mapOfCheckList[item[this.selectField]] = item;\n }\n });\n if (\n this.displayLines.length === Object.keys(this.mapOfCheckList).length\n ) {\n this.isAllDisplayDataChecked = true;\n this.isIndeterminate = true;\n }\n }\n }\n\n get LodashRound() {\n return round;\n }\n\n drop(event: CdkDragDrop<string[]>): void {\n moveItemInArray(this.displayLines, event.previousIndex, event.currentIndex);\n this.displayLines = JSON.parse(JSON.stringify(this.displayLines));\n if (!this.isFilterData) {\n this.storeFormLinesData = JSON.parse(JSON.stringify(this.displayLines));\n }\n }\n\n calculateTotal() {\n // 这里处理合计数据\n if (this.showTotal && this.displayLines && this.displayLines.length) {\n this.totalOptionList = new Array(Number(this.columnsNumber) - 1).fill(\"\");\n this.totalOption.forEach((item) => {\n if (item.insertIndex && (item.insertValue || item.insertValue === 0)) {\n this.totalOptionList[item.insertIndex - 1] = {\n value: item.insertValue,\n align: item.align || \"right\",\n showDecimal: item.showDecimal || false,\n isHide: item.isHide || false,\n };\n }\n });\n }\n }\n\n // 表格勾选逻辑\n currentPageDataChange($event: any): void {\n this.listOfDisplayData = $event;\n this.refreshStatus();\n }\n\n resetStatus() {\n this.isAllDisplayDataChecked = false;\n this.isIndeterminate = false;\n this.mapOfCheckedId = {};\n this.mapOfCheckList = {};\n this.selectEvent.emit([]);\n }\n\n refreshStatus(event: boolean = false, data: any = null): void {\n if (event && data) {\n !this.mapOfCheckList[data[this.selectField]] &&\n (this.mapOfCheckList[data[this.selectField]] = data);\n } else if (!event && data) {\n this.mapOfCheckList[data[this.selectField]] &&\n delete this.mapOfCheckList[data[this.selectField]];\n }\n this.isAllDisplayDataChecked = this.listOfDisplayData.every(\n (item) => this.mapOfCheckedId[item[this.selectField]],\n );\n this.isIndeterminate =\n this.listOfDisplayData.some(\n (item) => this.mapOfCheckedId[item[this.selectField]],\n ) && !this.isAllDisplayDataChecked;\n // 触发select事件\n if (this.selectEvent) {\n this.selectEvent.emit(Object.values(this.mapOfCheckList));\n }\n }\n\n checkAll(value: boolean): void {\n this.listOfDisplayData.forEach((item) => {\n if (value) {\n !this.mapOfCheckList[item[this.selectField]] &&\n (this.mapOfCheckList[item[this.selectField]] = item);\n } else {\n this.mapOfCheckList[item[this.selectField]] &&\n delete this.mapOfCheckList[item[this.selectField]];\n }\n this.mapOfCheckedId[item[this.selectField]] = value;\n });\n this.refreshStatus();\n }\n}\n","import { DragDropModule } from \"@angular/cdk/drag-drop\";\nimport { CommonModule } from \"@angular/common\";\nimport { NgModule, NO_ERRORS_SCHEMA } from \"@angular/core\";\nimport { FormsModule } from \"@angular/forms\";\nimport { HdButtonGroupModule } from \"../hd-button-group/hd-button-group.module\";\nimport { NgZorroAntdModule } from \"ng-zorro-antd\";\nimport { NzTableModule } from \"ng-zorro-antd/table\";\nimport { HdButtonModule } from \"../hd-button/hd-button.module\";\nimport { HdSpaceModule } from \"../hd-space/hd-space.module\";\nimport { HdDetailLinesComponent } from \"./hd-detail-lines.component\";\n\n@NgModule({\n imports: [\n CommonModule,\n NzTableModule,\n DragDropModule,\n FormsModule,\n NgZorroAntdModule,\n HdSpaceModule,\n HdButtonModule,\n HdButtonGroupModule,\n ],\n declarations: [HdDetailLinesComponent],\n exports: [HdDetailLinesComponent],\n schemas: [NO_ERRORS_SCHEMA],\n})\nexport class HdDetailLinesModule {}\n","import { CdkDragDrop, moveItemInArray } from \"@angular/cdk/drag-drop\";\nimport {\n Component,\n ContentChild,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n TemplateRef,\n} from \"@angular/core\";\nimport { round } from \"lodash\";\nimport { InputBoolean } from \"ng-zorro-antd/core\";\nimport { Page } from \"../model/common-type\";\nimport { TotalOption } from \"../hd-detail-lines/hd-detail-lines.service\";\n\n@Component({\n selector: \"hd-detail-lines-page\",\n templateUrl: \"./hd-detail-lines-page.component.html\",\n styleUrls: [\"./hd-detail-lines-page.component.less\"],\n})\nexport class HdDetailLinesPageComponent implements OnInit, OnChanges {\n @Input() lines: Array<any> = [];\n /** 与 hd-table 一致,可传 Page 对象;未传 lines 时使用 tableData.content */\n @Input() tableData: Page<any> = new Page();\n @Input() @InputBoolean() showSelected: boolean = false;\n @Input() @InputBoolean() allowDrop: boolean = false;\n @Input() scroll: { [key: string]: string } = { x: \"1px\" };\n @Input() selectField: string = \"billNumber\";\n @Input() selectedField: string;\n @Input() isCrossPageSelect: boolean;\n @Output() selectEvent = new EventEmitter();\n @ContentChild(\"detailLineHead\", { static: false })\n detailLineHead: TemplateRef<any>;\n @ContentChild(\"detailLineBody\", { static: false })\n detailLineBody: TemplateRef<any>;\n @Input() @InputBoolean() showTotal: boolean = false;\n @Input() totalOption: Array<TotalOption> = [];\n @Input() columnsNumber: number | string = 0;\n @Input() tableLoading: boolean = false;\n @Input() tablePageIndex: number = 1;\n @Input() tablePageSize: number = 10;\n @Output() tablePageIndexChange = new EventEmitter<number>();\n @Output() tablePageSizeChange = new EventEmitter<number>();\n @Output() pageChange = new EventEmitter<void>();\n\n totalOptionList = [];\n isAllDisplayDataChecked = false;\n isIndeterminate = false;\n listOfDisplayData = [];\n mapOfCheckedId: { [key: string]: boolean } = {};\n mapOfCheckList: { [key: string]: any } = {};\n isCrossPageSelectLocal: boolean = false;\n\n constructor() {}\n\n ngOnInit(): void {\n if (this.isCrossPageSelect === true) {\n this.isCrossPageSelectLocal = this.isCrossPageSelect;\n }\n this.countSelected();\n this.calculateTotal();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (\n changes &&\n changes[\"tableData\"] &&\n changes[\"tableData\"][\"currentValue\"] &&\n changes[\"tableData\"][\"previousValue\"]\n ) {\n if (\n changes[\"tableData\"][\"currentValue\"][\"pageSize\"] !==\n changes[\"tableData\"][\"previousValue\"][\"pageSize\"] ||\n changes[\"tableData\"][\"currentValue\"][\"pageNumber\"] !==\n changes[\"tableData\"][\"previousValue\"][\"pageNumber\"]\n ) {\n this.countSelected();\n this.calculateTotal();\n return;\n }\n if (!this.isCrossPageSelectLocal) {\n this.resetStatus();\n }\n }\n this.countSelected();\n this.calculateTotal();\n }\n\n get displayLines(): Array<any> {\n if (this.lines && this.lines.length) {\n return this.lines;\n }\n return (this.tableData && this.tableData.content) || [];\n }\n\n get totalCount(): number {\n if (this.tableData && this.tableData.totalElements != null) {\n return this.tableData.totalElements;\n }\n return this.displayLines.length;\n }\n\n getRowIndex(localIndex: number): number {\n return (this.tablePageIndex - 1) * this.tablePageSize + localIndex;\n }\n\n onPageIndexChange(pageIndex: number): void {\n this.tablePageIndex = pageIndex;\n this.tablePageIndexChange.emit(this.tablePageIndex);\n this.pageChange.emit();\n }\n\n onPageSizeChange(pageSize: number): void {\n this.tablePageSize = pageSize;\n this.tablePageIndex = 1;\n this.tablePageSizeChange.emit(this.tablePageSize);\n this.tablePageIndexChange.emit(this.tablePageIndex);\n this.pageChange.emit();\n }\n\n private countSelected(): void {\n if (\n this.showSelected &&\n this.selectedField &&\n this.displayLines &&\n this.displayLines.length\n ) {\n this.displayLines.forEach((item) => {\n if (item[this.selectedField] === true) {\n this.mapOfCheckedId[item[this.selectField]] = true;\n this.mapOfCheckList[item[this.selectField]] = item;\n }\n });\n if (\n this.displayLines.length === Object.keys(this.mapOfCheckList).length\n ) {\n this.isAllDisplayDataChecked = true;\n this.isIndeterminate = true;\n }\n }\n }\n\n get LodashRound() {\n return round;\n }\n\n drop(event: CdkDragDrop<string[]>): void {\n const lines = [...this.displayLines];\n moveItemInArray(lines, event.previousIndex, event.currentIndex);\n this.lines = lines;\n }\n\n calculateTotal() {\n if (this.showTotal && this.displayLines && this.displayLines.length) {\n this.totalOptionList = new Array(Number(this.columnsNumber) - 1).fill(\"\");\n this.totalOption.forEach((item) => {\n if (item.insertIndex && (item.insertValue || item.insertValue === 0)) {\n this.totalOptionList[item.insertIndex - 1] = {\n value: item.insertValue,\n align: item.align || \"right\",\n showDecimal: item.showDecimal || false,\n isHide: item.isHide || false,\n };\n }\n });\n }\n }\n\n currentPageDataChange($event: any): void {\n this.listOfDisplayData = $event;\n this.refreshStatus();\n if (!this.isCrossPageSelectLocal) {\n this.resetStatus();\n }\n }\n\n resetStatus() {\n this.isAllDisplayDataChecked = false;\n this.isIndeterminate = false;\n this.mapOfCheckedId = {};\n this.mapOfCheckList = {};\n this.selectEvent.emit([]);\n }\n\n refreshStatus(event: boolean = false, data: any = null): void {\n if (event && data) {\n !this.mapOfCheckList[data[this.selectField]] &&\n (this.mapOfCheckList[data[this.selectField]] = data);\n } else if (!event && data) {\n this.mapOfCheckList[data[this.selectField]] &&\n delete this.mapOfCheckList[data[this.selectField]];\n }\n this.isAllDisplayDataChecked = this.listOfDisplayData.every(\n (item) => this.mapOfCheckedId[item[this.selectField]],\n );\n this.isIndeterminate =\n this.listOfDisplayData.some(\n (item) => this.mapOfCheckedId[item[this.selectField]],\n ) && !this.isAllDisplayDataChecked;\n if (this.selectEvent) {\n this.selectEvent.emit(Object.values(this.mapOfCheckList));\n }\n }\n\n checkAll(value: boolean): void {\n this.listOfDisplayData.forEach((item) => {\n if (value) {\n !this.mapOfCheckList[item[this.selectField]] &&\n (this.mapOfCheckList[item[this.selectField]] = item);\n } else {\n this.mapOfCheckList[item[this.selectField]] &&\n delete this.mapOfCheckList[item[this.selectField]];\n }\n this.mapOfCheckedId[item[this.selectField]] = value;\n });\n this.refreshStatus();\n }\n}\n","import { DragDropModule } from \"@angular/cdk/drag-drop\";\nimport { CommonModule } from \"@angular/common\";\nimport { NgModule, NO_ERRORS_SCHEMA } from \"@angular/core\";\nimport { NzTableModule } from \"ng-zorro-antd/table\";\nimport { HdDetailLinesPageComponent } from \"./hd-detail-lines-page.component\";\n\n@NgModule({\n imports: [CommonModule, NzTableModule, DragDropModule],\n declarations: [HdDetailLinesPageComponent],\n exports: [HdDetailLinesPageComponent],\n schemas: [NO_ERRORS_SCHEMA],\n})\nexport class HdDetailLinesPageModule {}\n","import { Injectable } from '@angular/core';\n\nexport const statusToColor = {\n // 黄色\n '#FAB13B': ['partshipped', 'committed', 'partValid', 'confirm', 'picking'],\n // 灰色\n '#9FA4A2': ['initial', 'uncommitted', 'OFF_LINE', 'UN_PRINTED', 'unpublish', 'pastpublish', 'TO_COMMIT', 'unpublished', '未审核', 'returned'],\n // 红色\n '#F5222D': ['delete', 'deleted', 'aborted', 'rejected', '停用', '禁用', 'unpicked', 'DELETED', 'AUDIT_REJECT', 'rejected', 'invalid', 'disabled', ''],\n // 蓝色\n '#3B77E3': ['audited', 'adjusted', 'invoiced', 'audit', 'submitted', 'TO_AUDIT', '已审核', '处理中', 'processing', 'firstReviewed', 'awaiting_effective'],\n // 绿色\n '#20B95D': ['shipped', 'received', 'checked', 'using', 'reverse', 'valid', 'approved', 'ON_LINE', 'finished', 'opened', 'PRINTED', '启用', 'picked', 'published', 'AUDITED', '已收票', '付款完成', '收款完成', '已收款', 'accepted',\n 'offered', 'confirmed', 'effective', '已发布'],\n // 橙色\n '#F05B24': ['partialReceived', 'partDelete', 'tender', 'MODIFIED_AFTER_PRINTED', '部分付款', '部分收款', 'partPublished']\n};\n\n@Injectable({\n providedIn: 'root'\n})\nexport class HdStatusService {\n constructor() {\n }\n}\n","import { Component, Input, OnInit, SimpleChange } from \"@angular/core\";\nimport { statusToColor } from \"../hd-status/hd-status.service\";\n\n@Component({\n selector: \"hd-detail-tip\",\n templateUrl: \"./hd-detail-tip.component.html\",\n styleUrls: [\"./hd-detail-tip.component.less\"],\n})\nexport class HdDetailTipComponent implements OnInit {\n constructor() {}\n @Input() state: string;\n @Input() stateText: string;\n @Input() billNumber: string;\n @Input() tip: string = \"详情\";\n statusColor: string;\n\n ngOnInit() {\n this.setStatusColor();\n }\n\n ngOnChanges() {\n this.setStatusColor();\n }\n\n setStatusColor() {\n let findKey = '';\n for (let key in statusToColor) {\n if (\n this.state &&\n (statusToColor[key].indexOf(this.state) !== -1 ||\n statusToColor[key].indexOf(this.state.toUpperCase()) !== -1 ||\n statusToColor[key].indexOf(this.state.toLowerCase()) !== -1)\n ) {\n findKey = key;\n }\n }\n if (findKey) {\n this.statusColor = findKey;\n } else {\n this.statusColor = '#9FA4A2';\n }\n }\n}\n","import { HdDetailTipComponent } from './hd-detail-tip.component';\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { NgZorroAntdModule } from 'ng-zorro-antd';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n NgZorroAntdModule\n ],\n declarations: [HdDetailTipComponent],\n exports: [HdDetailTipComponent]\n})\nexport class HdDetailTipModule { }\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { Filter } from './hd-filter.service';\nimport { Subject, Subscription } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\n\n@Component({\n selector: 'hd-filter',\n templateUrl: './hd-filter.component.html',\n styleUrls: ['./hd-filter.component.less']\n})\nexport class HdFilterComponent implements OnInit {\n\n @Input() filterList: Array<Filter>;\n @Output() searchEvent = new EventEmitter();\n @Output() resetEvent = new EventEmitter();\n\n validateFilterForm: FormGroup;\n isShowMore: boolean = true;\n // 对filterList取模运算\n filterListModular: number = 0;\n private searchSubject = new Subject<{ fn: any, event: any, selectOption?: any; }>();\n private debounceTimeout: number = 0; // 默认防抖时间\n\n private searchSubscription: Subscription | undefined;\n constructor(private fb: FormBuilder) {\n this.searchSubscription = this.searchSubject.pipe(\n debounceTime(this.debounceTimeout)\n ).subscribe(({ fn, event, selectOption }) => this.triggerEvent(fn, event, selectOption));\n }\n\n ngOnInit() {\n this.init();\n }\n\n ngOnChanges() {\n this.init();\n }\n\n private init(): void {\n this.isShowMore = true;\n // 异常捕获\n if (!this.checkList(this.filterList)) {\n throw 'filter组件数据格式不规范';\n }\n this.filterListModular = this.filterList.length % 4;\n // 首先根据定义的组件数组 去初始化表单\n let formGroupList = {};\n this.filterList.forEach((item, index) => {\n formGroupList[item.name] = this.fb.control(item.value, []);\n // 初始化控件显影\n item.show = index < 7;\n });\n this.validateFilterForm = this.fb.group(formGroupList);\n this.filterList.forEach((item) => {\n if (item.onChangeEvent) {\n if (item.onChangeEventDebounceTime) {\n this.validateFilterForm.get(item.name).valueChanges\n .pipe(\n debounceTime(item.onChangeEventDebounceTime)\n )\n .subscribe(value => this.triggerEvent(item.onChangeEvent, value));\n } else {\n this.validateFilterForm.get(item.name).valueChanges.subscribe(value => this.triggerEvent(item.onChangeEvent, value));\n }\n }\n });\n }\n\n onSearchEvent(fn: any, event: any, onSearchEventDebounceTime: any, selectOption?: any) {\n if (onSearchEventDebounceTime) {\n // 更新防抖时间\n this.debounceTimeout = onSearchEventDebounceTime;\n\n // 取消之前的订阅\n if (this.searchSubscription) {\n this.searchSubscription.unsubscribe();\n }\n\n // 创建新的订阅\n this.searchSubscription = this.searchSubject.pipe(\n debounceTime(this.debounceTimeout)\n ).subscribe(({ fn, event, selectOption }) => this.triggerEvent(fn, event, selectOption));\n\n // 发送事件\n this.searchSubject.next({ fn, event, selectOption });\n } else {\n this.triggerEvent(fn, event, selectOption);\n }\n }\n\n triggerEvent(fn: any, event: any, selectOption?: any) {\n if (fn && selectOption) {\n fn(event, selectOption);\n } else if (fn) {\n fn(event);\n } else {\n return;\n }\n }\n\n computeOffset() {\n // 特殊处理下等于4个选项的情况\n if (this.filterList.length === 4) {\n return 18;\n }\n return this.isShowMore ? ((this.filterListModular === 0 || this.filterList.length > 7) ? 0 : (3 - this.filterListModular) * 6) : (this.filterListModular === 0 ? 18 : (3 - this.filterListModular) * 6);\n }\n\n private checkList(list: Array<Filter>): boolean {\n if (!list || (list && list.length === 0)) {\n return true;\n }\n let nameList = [];\n list.forEach((item) => {\n // 校验单项选择器\n // if (item.type === FilterListType.Select && (!item.selectOption.selectList || (item.selectOption.selectList && item.selectOption.selectList.length === 0))) {\n // throw 'filter组件数据格式不规范,存在单项选择器没有传入选项!'\n // }\n nameList.push(item.name);\n });\n // 校验name是否重复\n if ([...new Set(nameList)].length !== list.length) {\n throw 'filter组件数据格式不规范,存在重复name值!';\n }\n // ...more check\n return true;\n }\n\n public submitForm(): void {\n this.searchEvent.emit(this.validateFilterForm.getRawValue());\n }\n\n public resetForm(): void {\n this.resetFilterFormWithValue();\n // this.validateFilterForm.reset();\n if (this.resetEvent.observers.length > 0) {\n // 如果有父组件绑定了 resetEvent 的处理器\n this.resetEvent.emit(this.validateFilterForm.getRawValue());\n } else {\n // 如果没有绑定处理器,则触发 searchEvent\n this.searchEvent.emit(this.validateFilterForm.getRawValue());\n }\n }\n\n /**\n * 带初始值重置表单\n */\n public resetFilterFormWithValue() {\n const resetValue: { [key: string]: any } = {};\n this.filterList.forEach((item) => {\n resetValue[item.name] = item.value;\n });\n // 重置表单值(会触发valueChanges事件)\n this.validateFilterForm.patchValue(resetValue);\n }\n\n public getFilterData() {\n return this.validateFilterForm.getRawValue();\n }\n\n public showMore(): void {\n this.isShowMore = !this.isShowMore;\n this.filterList.forEach((item, index) => {\n item.show = this.isShowMore ? index < 7 : true;\n });\n }\n\n public inputClean(filter: Filter): void {\n const patchObject = {};\n patchObject[filter.name] = null;\n\n this.validateFilterForm.patchValue(patchObject);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { HdFilterComponent } from './hd-filter.component';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { NgZorroAntdModule } from 'ng-zorro-antd';\nimport { HdButtonModule } from '../hd-button/hd-button.module';\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n NgZorroAntdModule,\n HdButtonModule\n ],\n declarations: [HdFilterComponent],\n exports: [HdFilterComponent]\n})\nexport class HdFilterModule { }\n","import { Injectable } from '@angular/core';\nimport { InputNumber, SelectOption } from '../model/common-type';\n// 控件列表\nexport class FormLine {\n type: FormLineType; // 控件类型\n label: string; // 文本\n name: string; // 字段名称\n placeholder?: string; // 输入框的提示文件\n require?: boolean = false; // 是否必填\n hide?: boolean = false; // 是否为隐藏字段,仅用于填充表单的字段,不显示在页面上\n hideViewDomValue?: boolean = false; // type为ViewDom时,是否隐藏value值, 用于特殊场景,譬如列表中图片的显示\n align?: 'left' | 'right' | 'center'; // 列对齐方式\n value?: string | boolean | number | Date | Array<string | Date> | null = null; // 值 不传默认为null\n isSelect?: boolean; // 输入框等是否允许点击之后全选内容\n selectOption?: SelectOption; // 控件为Select时,选项列表\n explainOptionRight?: ExplainOption; // 明细字段的说明(右侧)\n explainOption?: ExplainOption; // 明细字段的说明\n colorOption?: ColorOption; // 颜色字段的说明\n // 组件内部成员\n maxLength?: number; // input控件的输入长度\n preserveNumber?: number; // 需要保留小数的列的位数\n inputNumber?: InputNumber = new InputNumber(); // number组件的min、max、step\n onChangeEvent?: Function; // 控件的值改变事件 可用于控件间联动\n onSearchEvent?: Function; // select选择器搜索事件 可用于更新备选集合\n defaultLabel?: any; // select选择器不初始化的时候可以使用defaultLabel搭配value,设置默认值\n hdDisabledDate?: Function; // date-picker组件不可选择的日期\n hdShowToday?: boolean = true; // 对应 nzShowToday,是否显示「今天」按钮,默认 true\n disabled?: boolean; // 不可输入状态\n showTime?: boolean = false; // 日期选择器是否包含时间\n style?: object;\n canSearch?: boolean = false; // 指明hide 情况下的控件是否可以被搜索,默认false\n onChangeEventDebounceTime?: number; // change事件防抖\n onSearchEventEventDebounceTime?: number; // search事件防抖\n}\n\nexport class ColorOption {\n name: string;\n color?: string;\n}\n\nexport class ExplainOption {\n show: boolean;\n name: string;\n color?: string;\n}\n\n\n// 控件类型\nexport enum FormLineType {\n Input = 'Input', // 输入框\n Select = 'Select', // 单项选择器\n Date = 'Date', // 单个日期选择\n DateRange = 'DateRange', // 日期范围选择\n TextArea = 'TextArea', // 块级输入框\n InputNumber = 'InputNumber',// 数字输入\n MultipleSelect = 'MultipleSelect', // 多选\n ViewDom = 'ViewDom', // 单纯的显示控件\n Switch = 'Switch', // 开关\n Time = 'Time' // 时间选择器\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class HdFormLinesService {\n constructor() { }\n}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n QueryList,\n SimpleChanges,\n TemplateRef,\n ViewChildren,\n} from \"@angular/core\";\nimport { FormArray, FormBuilder, FormGroup, Validators } from \"@angular/forms\";\nimport { round } from \"lodash\";\nimport {\n InputBoolean,\n NzDatePickerComponent,\n NzInputNumberComponent,\n NzRangePickerComponent,\n NzSelectComponent,\n NzTimePickerComponent,\n} from \"ng-zorro-antd\";\nimport { Subject, Subscription } from \"rxjs\";\nimport { debounceTime } from \"rxjs/operators\";\nimport { TotalOption } from \"../hd-detail-lines/hd-detail-lines.service\";\nimport { SelectOptionTableColumn } from \"../model/common-type\";\nimport { FormLine, FormLineType } from \"./hd-form-lines.service\";\n\n/** 与 ant-select 选项项水平内边距一致,用于表头与选项行对齐 */\nconst SELECT_TABLE_OPTION_HORIZONTAL_PADDING = 12;\n\n@Component({\n selector: \"hd-form-lines\",\n templateUrl: \"./hd-form-lines.component.html\",\n styleUrls: [\"./hd-form-lines.component.less\"],\n})\nexport class HdFormLinesComponent implements OnInit, AfterViewInit, OnDestroy {\n @ViewChildren(\"formInputDom\") formInputDomList!: QueryList<ElementRef>;\n\n @Input() @InputBoolean() showLineNumber: boolean = true;\n @Input() @InputBoolean() allowEmpty: boolean = true;\n @Output() deleteLastLineEvent = new EventEmitter();\n @Input() @InputBoolean() showKeyboardOperateTip: boolean = false;\n @Input() @InputBoolean() tableLoading: boolean = false;\n @Input() @InputBoolean() showSearch: boolean = false;\n @Input() formLines: Array<FormLine>;\n // 针对formLines里面所有的name,\n @Input() formLinesData: any;\n @Input() operateButtons: Array<string> = [\"add\", \"delete\"];\n @Input() scroll: { [key: string]: string } = { x: \"1px\" };\n @Output() changeEvent = new EventEmitter();\n @Input() @InputBoolean() showDeleteConfirm: boolean = false;\n paginationPageIndex: number = 1;\n paginationPageSize: number = 10;\n validateHdFormLines: FormGroup;\n newLine: any;\n inputValue: string;\n\n // 合计区域\n @Input() @InputBoolean() showTotal: boolean = false;\n @Input() totalOption: Array<TotalOption> = [];\n @Input() columnsNumber: number | string = 0;\n totalOptionList = [];\n\n showForm: boolean = false;\n filterStr: string;\n storeFormLinesData: any = []; // 缓存的总的表单数据\n filterStoreFormLinesData: any = []; // 筛选出来的数据列表\n filterIndexStore: Array<number> = []; // 筛选出来的数据在原始列表中的下标\n isFilterData: boolean = false; // 是否是已经筛选过的数据\n formValid: boolean = false; // 表单当前的状态\n private searchSubject = new Subject<{ fn: any; event: any; line: any }>();\n private debounceTimeout: number = 0; // 默认防抖时间\n\n private searchSubscription: Subscription | undefined;\n private formInputDomListSub: Subscription | undefined;\n\n // 当前页的dom二维数组\n collectDomList: Array<\n Array<\n | ElementRef\n | NzSelectComponent\n | NzInputNumberComponent\n | NzDatePickerComponent\n | NzRangePickerComponent\n | NzTimePickerComponent\n >\n > = [];\n // 当前聚焦的dom元素坐标\n activeDomX: number = null;\n activeDomY: number = null;\n activeDom:\n | ElementRef\n | NzSelectComponent\n | NzInputNumberComponent\n | NzDatePickerComponent\n | NzRangePickerComponent\n | NzTimePickerComponent = null;\n activeSelectedComponentOpen: boolean = false;\n @ContentChild(\"ViewDomRightTemplate\", { static: false })\n ViewDomRightTemplate: TemplateRef<any>;\n\n constructor(\n private fb: FormBuilder,\n private cdr: ChangeDetectorRef,\n ) {\n this.searchSubscription = this.searchSubject\n .pipe(debounceTime(this.debounceTimeout))\n .subscribe(({ fn, event, line }) => this.triggerEvent(fn, event, line));\n }\n\n ngOnInit() {\n // 缓存一下总的表单数据\n this.storeFormLinesData = this.formLinesData;\n this.init();\n }\n\n ngAfterViewInit() {\n this.collectDomData();\n this.formInputDomListSub = this.formInputDomList.changes.subscribe(() => {\n this.collectDomData();\n });\n }\n\n ngOnDestroy() {\n if (this.searchSubscription) {\n this.searchSubscription.unsubscribe();\n }\n if (this.formInputDomListSub) {\n this.formInputDomListSub.unsubscribe();\n }\n }\n\n get formLinesLength() {\n return this.linesFormArray.controls.length;\n }\n\n setActiveSelectedComponentOpen(value: boolean) {\n this.activeSelectedComponentOpen = value;\n if (value === true) {\n setTimeout(() => {\n const domList = document.querySelectorAll(\n \".ant-select-dropdown.hd-select-table\",\n );\n if (domList.length > 0) {\n const dom = domList[0];\n dom\n .querySelectorAll(\".hd-option-header\")\n .forEach((header) => header.remove());\n const oldIndex = this.getOldDomIndex(this.activeDomY, this.formLines);\n dom.insertBefore(\n this.createDOMStructure(\n this.formLines[oldIndex],\n this.linesFormArray.controls.slice(\n (this.paginationPageIndex - 1) * this.paginationPageSize,\n (this.paginationPageIndex - 1) * this.paginationPageSize +\n this.paginationPageSize,\n )[this.activeDomX],\n ),\n dom.firstChild,\n );\n }\n }, 0);\n }\n }\n\n getSelectTableColumnStyle(column: SelectOptionTableColumn): {\n [key: string]: string;\n } {\n if (!column || !column.width) {\n return { width: \"unset\" };\n }\n return { width: `${column.width}px` };\n }\n\n createDOMStructure(formItem, line) {\n // 创建外部 div\n const hdOptionHeader = document.createElement(\"div\");\n hdOptionHeader.className = \"hd-option-header\";\n hdOptionHeader.style.paddingLeft = `${SELECT_TABLE_OPTION_HORIZONTAL_PADDING}px`;\n hdOptionHeader.style.paddingRight = `${SELECT_TABLE_OPTION_HORIZONTAL_PADDING}px`;\n\n // 检查条件,确定是否要创建子元素\n // const selectListLength = (formItem && formItem.selectOption && formItem.selectOption.selectList && formItem.selectOption.selectList.length) || 0;\n // if\n // const lineValueLength = (line.get(formItem.selectOption.selectListName) && line.get(formItem.selectOption.selectListName).value && line.get(formItem.selectOption.selectListName).value.length) || 0;\n\n // if (selectListLength > 0 || lineValueLength > 0) {\n // 遍历 tableColumns 创建内部列 div\n formItem.selectOption.tableColumns.forEach((selectOptionTableColumn) => {\n const columnDiv = document.createElement(\"div\");\n columnDiv.className = \"hd-option-header-column\";\n\n const widthStyle = this.getSelectTableColumnStyle(\n selectOptionTableColumn,\n );\n columnDiv.style.width = widthStyle.width;\n\n // 添加列标签内容\n if (selectOptionTableColumn.label) {\n const labelText = document.createTextNode(\n selectOptionTableColumn.label,\n );\n columnDiv.appendChild(labelText);\n }\n\n // 添加列 div 到外部 div\n hdOptionHeader.appendChild(columnDiv);\n });\n // }\n\n return hdOptionHeader;\n }\n\n collectDomData() {\n this.collectDomList = [];\n const pageDomList = this.formInputDomList.toArray();\n // Step 1: 获取当前页的数据量\n const startIndex = (this.paginationPageIndex - 1) * this.paginationPageSize;\n const endIndex = this.paginationPageIndex * this.paginationPageSize;\n const adjustedEndIndex =\n endIndex > this.formLinesLength ? this.formLinesLength : endIndex;\n const pageLinesLength = adjustedEndIndex - startIndex;\n\n const interval = pageDomList.length / pageLinesLength;\n // Step 2: 拆分formInputDomList\n for (let i = 0; i < pageLinesLength; i++) {\n this.collectDomList.push(pageDomList.splice(0, interval));\n }\n this.disableInputNumberKeyboardStep();\n }\n\n /**\n * ng-zorro 8 在 input 的 onKeyDown 里用上下键调 up()/down() 改 step。\n * 只覆盖 onKeyDown(不动 up/down),键盘方向键交给表单跳转,+/- 按钮仍可用。\n */\n private disableInputNumberKeyboardStep(): void {\n for (let i = 0; i < this.collectDomList.length; i++) {\n for (let j = 0; j < this.collectDomList[i].length; j++) {\n const dom = this.collectDomList[i][j];\n if (dom instanceof NzInputNumberComponent) {\n dom.onKeyDown = (e: KeyboardEvent) => {\n if (e.keyCode === 38 || e.keyCode === 40) {\n return;\n }\n if (e.keyCode === 13) {\n dom.setValidateValue();\n }\n };\n }\n }\n }\n }\n\n // 聚焦下一个dom\n jumpToNextInput(x: number, y: number) {\n if (\n x === null ||\n y === null ||\n !this.collectDomList ||\n this.collectDomList.length === 0\n ) {\n return;\n }\n // 如果是最后一个可输入元素,新增行\n if (\n !(this.activeDom instanceof NzSelectComponent) &&\n x === this.collectDomList.length - 1 &&\n y === this.collectDomList[0].length - 1\n ) {\n this.addNewLineAndFocus();\n } else {\n if (y === this.collectDomList[0].length - 1) {\n console.log(\"执行过程1\");\n // 如果是最后一列,则跳转到下一行第一个输入框\n this.focusDom(x + 1, 0, \"right\");\n } else {\n console.log(\"执行过程2\");\n // 如果不是最后一列,则跳转到当前行下一个输入框\n this.focusDom(x, y + 1, \"right\");\n }\n }\n }\n\n /**\n * 增加新行并且聚焦到第一个元素,\n * 这里要注意,如果存在翻页情况,需要处理\n */\n addNewLineAndFocus() {\n // 当前行为当前页最后一行的时候,判断下一页是否有数据\n // 1、如果有:翻页+聚焦第一行第一个元素\n // 2、如果没有:新增行+翻页+聚焦第一行第一个元素\n if (this.activeDomX === this.paginationPageSize - 1) {\n // 判断下一页是否有数据\n if (\n this.paginationPageIndex <\n Math.ceil(this.formLinesLength / this.paginationPageSize)\n ) {\n // 翻页+聚焦第一行第一个元素\n this.paginationPageIndex++;\n setTimeout(() => {\n this.collectDomData();\n console.log(\"执行过程3\");\n this.focusDom(0, 0, \"right\");\n }, 0);\n } else {\n // 新增行+翻页+聚焦第一行第一个元素\n this.addFormLine();\n this.paginationPageIndex++;\n setTimeout(() => {\n this.collectDomData();\n console.log(\"执行过程4\");\n this.focusDom(0, 0);\n }, 0);\n }\n } else {\n this.addFormLine();\n }\n }\n\n // 聚焦到上一个dom\n jumpToPrevInput(x: number, y: number) {\n if (\n x === null ||\n y === null ||\n !this.collectDomList ||\n this.collectDomList.length === 0\n ) {\n return;\n }\n if (x === 0 && y === 0) {\n // 如果是第一个可输入元素, 判断是否有上一页, 如果有,则翻页+聚焦到上一页最后一个元素\n if (this.paginationPageIndex > 1) {\n // 翻页+聚焦到上一页最后一个元素\n this.paginationPageIndex--;\n setTimeout(() => {\n this.collectDomData();\n console.log(\"执行过程5\");\n this.focusDom(\n this.collectDomList.length - 1,\n this.collectDomList[0].length - 1,\n );\n }, 0);\n }\n return;\n } else {\n if (y === 0) {\n console.log(\"执行过程6\");\n // 如果是第一列,则跳转到上一行最后一个输入框\n this.focusDom(x - 1, this.collectDomList[0].length - 1, \"left\");\n } else {\n console.log(\"执行过程7\");\n // 如果不是第一列,则跳转到当前行上一个输入框\n this.focusDom(x, y - 1, \"left\");\n }\n }\n }\n\n /**\n * 聚焦到某个dom\n * @param x 坐标x\n * @param y 坐标y\n * @param jumpDirection 跳转方向\n */\n focusDom(x: number, y: number, jumpDirection: string = \"right\") {\n if (\n x === null ||\n y === null ||\n !this.collectDomList ||\n this.collectDomList.length === 0\n ) {\n return;\n }\n // 先清除一下当前的焦点\n this.cleanFocusDom(this.activeDomX, this.activeDomY);\n if (this.collectDomList[x] && this.collectDomList[x][y]) {\n const dom = this.collectDomList[x][y];\n // 需要判断下一个focus的dom是否是禁用状态,如果是禁用状态需要跳过\n if (dom instanceof NzSelectComponent) {\n if (dom.nzDisabled) {\n if (jumpDirection === \"right\") {\n this.jumpToNextInput(x, y);\n } else if (jumpDirection === \"left\") {\n this.jumpToPrevInput(x, y);\n }\n return;\n }\n dom.nzSelectTopControlComponent.inputElement.nativeElement.scrollIntoView(\n { behavior: \"smooth\", block: \"center\", inline: \"center\" },\n );\n // 这里多选框需要额外处理下,因为向下的时候会触发内部Input的聚焦,把下一个dom的focus放到宏任务中,延迟处理。\n if (dom.nzSelectService.mode === \"multiple\") {\n setTimeout(() => {\n dom.focus();\n }, 0);\n } else {\n dom.focus();\n }\n } else if (dom instanceof NzInputNumberComponent) {\n if (dom.nzDisabled) {\n if (jumpDirection === \"right\") {\n this.jumpToNextInput(x, y);\n } else if (jumpDirection === \"left\") {\n this.jumpToPrevInput(x, y);\n }\n return;\n }\n const inputDom: any = document.getElementById(dom.nzId);\n inputDom.focus();\n inputDom.scrollIntoView({\n behavior: \"smooth\",\n block: \"center\",\n inline: \"center\",\n });\n setTimeout(() => {\n inputDom.select();\n }, 0);\n } else if (dom instanceof ElementRef) {\n if (dom.nativeElement.disabled) {\n if (jumpDirection === \"right\") {\n this.jumpToNextInput(x, y);\n } else if (jumpDirection === \"left\") {\n this.jumpToPrevInput(x, y);\n }\n return;\n }\n dom.nativeElement.focus();\n dom.nativeElement.scrollIntoView({\n behavior: \"smooth\",\n block: \"center\",\n inline: \"center\",\n });\n setTimeout(() => {\n dom.nativeElement.select();\n }, 0);\n } else if (\n dom instanceof NzDatePickerComponent ||\n dom instanceof NzRangePickerComponent ||\n dom instanceof NzTimePickerComponent\n ) {\n // TODO:在ngzorro8.5.x版本,时间相关的选择器没有暴露出open方法,暂时先不处理。(10.x及以上版本提供了open方法)\n if (jumpDirection === \"right\") {\n this.jumpToNextInput(x, y);\n } else if (jumpDirection === \"left\") {\n this.jumpToPrevInput(x, y);\n }\n return;\n }\n this.setActiveDom(x, y);\n } else {\n // 没有dom的场景下,需要判断是左还是右,\n }\n }\n\n cleanFocusDom(x: number, y: number) {\n if (\n x === null ||\n y === null ||\n !this.collectDomList ||\n this.collectDomList.length === 0\n ) {\n return;\n }\n if (this.collectDomList[x] && this.collectDomList[x][y]) {\n const dom = this.collectDomList[x][y];\n if (dom instanceof NzSelectComponent) {\n dom.blur();\n dom.nzOpen = false;\n } else if (dom instanceof NzInputNumberComponent) {\n dom.blur();\n } else if (dom instanceof ElementRef) {\n dom.nativeElement.blur();\n } else {\n }\n }\n }\n\n setActiveDom(x: number, y: number) {\n this.activeDomX = x;\n this.activeDomY = y;\n this.activeDom = this.collectDomList[this.activeDomX][this.activeDomY];\n if (this.activeDom instanceof NzSelectComponent) {\n this.setActiveSelectedComponentOpen(this.activeDom.open);\n }\n }\n\n /**\n * 根据行号和列号名称获取当前聚焦的dom位置\n * @param rowNumber 行号\n * @param colNumber 列号\n */\n setActiveDomInFormLines(rowNumber: number, colNumber: number) {\n this.activeDomX = rowNumber;\n this.activeDomY = this.getDomIndex(colNumber, this.formLines);\n this.setActiveDom(this.activeDomX, this.activeDomY);\n }\n\n /**\n * 键盘点击事件\n * @param event 键盘事件\n * @returns\n */\n onKeyDown(event: KeyboardEvent) {\n if (this.activeDomX === null || this.activeDomY === null) {\n return;\n }\n switch (event.key) {\n case \"ArrowUp\":\n if (\n this.activeDom instanceof NzSelectComponent &&\n this.activeSelectedComponentOpen\n ) {\n return;\n }\n if (this.activeDomX !== 0) {\n this.focusDom(this.activeDomX - 1, this.activeDomY);\n }\n break;\n case \"ArrowDown\":\n if (\n this.activeDom instanceof NzSelectComponent &&\n this.activeSelectedComponentOpen\n ) {\n return;\n }\n // 判断是否在最后一行,加行\n if (this.activeDomX === this.collectDomList.length - 1) {\n this.cleanFocusDom(this.activeDomX, this.activeDomY);\n this.addNewLineAndFocus();\n break;\n } else {\n this.focusDom(this.activeDomX + 1, this.activeDomY);\n }\n break;\n case \"ArrowLeft\":\n this.jumpToPrevInput(this.activeDomX, this.activeDomY);\n break;\n case \"ArrowRight\":\n this.jumpToNextInput(this.activeDomX, this.activeDomY);\n break;\n case \"Enter\":\n if (this.activeDom instanceof NzSelectComponent) {\n this.setActiveSelectedComponentOpen(this.activeDom.open);\n if (this.activeSelectedComponentOpen === false) {\n this.focusDom(this.activeDomX, this.activeDomY);\n }\n } else if (this.activeDomX === this.collectDomList.length - 1) {\n this.addNewLineAndFocus();\n }\n break;\n case \"Escape\":\n if (this.activeDom instanceof NzSelectComponent) {\n const nowActiveDom = this.activeDom as NzSelectComponent;\n setTimeout(() => {\n this.setActiveSelectedComponentOpen(nowActiveDom.open);\n if (this.activeSelectedComponentOpen === false) {\n if (nowActiveDom.nzSelectService.mode === \"multiple\") {\n setTimeout(() => {\n this.focusDom(this.activeDomX, this.activeDomY);\n }, 0);\n } else {\n this.focusDom(this.activeDomX, this.activeDomY);\n }\n }\n }, 0);\n }\n break;\n default:\n // 如果当前聚焦的是选择框,且键入0-9a-zA-Z,则弹出\n if (\n this.activeDom instanceof NzSelectComponent &&\n this.activeSelectedComponentOpen === false &&\n /^[0-9a-zA-Z]$/.test(event.key)\n ) {\n const dom = this.activeDom;\n dom.nzOpen = true;\n this.setActiveSelectedComponentOpen(true);\n // // TODO:这里暂时注释,不能直接带入键入值,这样会导致输入中文的时候带入英文字符,不符合预期\n // dom.nzSelectTopControlComponent.inputValue = event.key;\n // // 获取 input 元素\n // const inputElement = dom.nzSelectTopControlComponent.inputElement.nativeElement;\n // setTimeout(() => {\n // // 触发输入事件,以确保 Angular 检测到值的变化\n // const eventInput = new Event('input', { bubbles: true });\n // inputElement.dispatchEvent(eventInput);\n // }, 0);\n }\n break;\n }\n }\n\n /**\n * 根据在初始dom下标和数据集 获取在collectDomList中的下标\n * @param index 初始下标\n * @param list 老数据集\n * @returns\n */\n private getDomIndex(index: number, list: Array<FormLine>): number {\n const typeList = [\n \"Input\",\n \"Select\",\n \"Date\",\n \"DateRange\",\n \"TextArea\",\n \"InputNumber\",\n \"MultipleSelect\",\n ];\n let filterList = [];\n for (let i = 0; i < list.length; i++) {\n if (i === index) {\n return filterList.length;\n }\n // 与模板一致:hide 的列不渲染 #formInputDom,不计入 collectDomList 的列下标\n if (typeList.includes(list[i].type) && !list[i].hide) {\n filterList.push(list[i]);\n }\n }\n return null;\n }\n\n /**\n * 根据在collectDomList中的下标和数据集 获取初始dom下标\n * @param index 新下标\n * @param list 老数据集\n * @returns\n */\n private getOldDomIndex(index: number, list: Array<FormLine>): number {\n console.log(\"index\", index);\n console.log(\"list\", list);\n const typeList = [\n \"Input\",\n \"Select\",\n \"Date\",\n \"DateRange\",\n \"TextArea\",\n \"InputNumber\",\n \"MultipleSelect\",\n ];\n let filterList = [];\n for (let i = 0; i < list.length; i++) {\n if (typeList.includes(list[i].type) && !list[i].hide) {\n filterList.push(list[i]);\n if (filterList.length === index + 1) {\n return i;\n }\n }\n }\n return null;\n }\n\n get linesFormArray(): any {\n return this.validateHdFormLines.get(\"lines\") as FormArray;\n }\n\n get LodashRound() {\n return round;\n }\n\n // 暴露的方法,用于获取所有数据的valid状态\n public getValid() {\n return this.formValid;\n }\n\n onSearchEvent(\n fn: any,\n event: any,\n line: any,\n onSearchEventDebounceTime: any,\n ) {\n if (onSearchEventDebounceTime) {\n // 更新防抖时间\n this.debounceTimeout = onSearchEventDebounceTime;\n\n // 取消之前的订阅\n if (this.searchSubscription) {\n this.searchSubscription.unsubscribe();\n }\n\n // 创建新的订阅\n this.searchSubscription = this.searchSubject\n .pipe(debounceTime(this.debounceTimeout))\n .subscribe(({ fn, event, line }) => this.triggerEvent(fn, event, line));\n\n // 发送事件\n this.searchSubject.next({ fn, event, line });\n } else {\n this.triggerEvent(fn, event, line);\n }\n setTimeout(() => {\n this.setActiveSelectedComponentOpen(true);\n }, 0);\n }\n\n /**\n *\n * @param fn 父组件函数\n * @param event 事件值\n * @param line 触发的行\n */\n triggerEvent(fn: any, event: any, line: any) {\n if (fn) {\n fn(event, line);\n }\n }\n\n innerGetValid() {\n let tmpValidateHdFormLines = this.fb.group({\n lines: this.fb.array([]),\n });\n this.storeFormLinesData.forEach((formLinesDataItem) => {\n let formGroupObj: any = {};\n this.formLines.forEach((item) => {\n // 新增行 初始数据都为null\n formGroupObj[item.name] = this.fb.control(\n {\n value: this.judgeValueIsNotEmpty(formLinesDataItem[item.name])\n ? formLinesDataItem[item.name]\n : item.value || null,\n disabled: item.disabled,\n },\n item.require ? [Validators.required] : [],\n );\n if (item.selectOption && item.selectOption.label) {\n formGroupObj[item.selectOption.label] = this.fb.control(\n formLinesDataItem[item.selectOption.label] || null,\n [],\n );\n }\n });\n formGroupObj.lineIndex = this.fb.control(\n (tmpValidateHdFormLines.get(\"lines\") as FormArray).controls.length,\n [],\n );\n let formGroupTmp = this.fb.group(formGroupObj);\n this.formLines.forEach((item) => {\n if (item.onChangeEvent) {\n if (item.onChangeEventDebounceTime) {\n formGroupTmp\n .get(item.name)\n .valueChanges.pipe(debounceTime(item.onChangeEventDebounceTime))\n .subscribe((value) => {\n this.triggerEvent(item.onChangeEvent, value, formGroupTmp);\n });\n } else {\n formGroupTmp.get(item.name).valueChanges.subscribe((value) => {\n this.triggerEvent(item.onChangeEvent, value, formGroupTmp);\n });\n }\n }\n });\n (tmpValidateHdFormLines.get(\"lines\") as FormArray).insert(\n (tmpValidateHdFormLines.get(\"lines\") as FormArray).controls.length,\n formGroupTmp,\n );\n });\n return tmpValidateHdFormLines.valid;\n }\n\n // 暴露的方法,用于获取所有数据\n public getLines() {\n let allLines = [];\n this.storeFormLinesData.forEach((formLinesDataItem) => {\n let formGroupObj: any = {};\n this.formLines.forEach((item) => {\n // 新增行 初始数据都为null\n formGroupObj[item.name] = formLinesDataItem[item.name];\n });\n formGroupObj.lineIndex = formLinesDataItem.lineIndex;\n allLines.push(formGroupObj);\n });\n return allLines;\n }\n\n // 全局性的搜索(涵盖页面上所有的可视文字)\n searchLines() {\n if (this.storeFormLinesData.length < 1) {\n return;\n }\n this.tableLoading = true;\n // 如果没有输入搜索字符串,则显示缓存内的所有数据\n if (!this.filterStr) {\n this.isFilterData = false;\n this.setStoreData();\n return;\n }\n const filterValue = this.filterStr.trim().toLowerCase();\n this.isFilterData = true;\n this.filterIndexStore = [];\n\n // 根据搜索字符串过滤数据\n const filteredData = this.storeFormLinesData.filter(\n (data: any, index: number) => {\n for (const item of this.formLines) {\n if (\n (item.hide && item.canSearch) ||\n (!item.hide && item.name !== \"uuid\")\n ) {\n console.log(\"item\", item.name);\n const value = data[item.name]\n ? data[item.name].toString().toLowerCase()\n : \"\";\n if (value.includes(filterValue)) {\n this.filterIndexStore.push(index);\n return true;\n }\n }\n }\n return false;\n },\n );\n // 缓存一下筛选后的表单数据\n this.filterStoreFormLinesData = filteredData;\n // 处理筛选好的数据 然后重新渲染\n this.formLinesData = filteredData;\n this.init(true);\n }\n\n setStoreData() {\n this.formLinesData = this.storeFormLinesData;\n this.init(true);\n }\n\n getStyle(line: FormGroup, formItem: any, width: string) {\n let styleObj = {\n \"min-width\": width,\n };\n if (formItem.style) {\n styleObj = { ...styleObj, ...formItem.style };\n }\n if (\n formItem.colorOption &&\n formItem.colorOption.name &&\n line.get(formItem.colorOption.name).value\n ) {\n styleObj = {\n ...styleObj,\n ...{ color: line.get(formItem.colorOption.name).value },\n };\n }\n return styleObj;\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (\n changes[\"formLinesData\"] &&\n JSON.stringify(changes[\"formLinesData\"].currentValue) !==\n JSON.stringify(changes[\"formLinesData\"].previousValue)\n ) {\n if (this.storeFormLinesData && this.storeFormLinesData.length === 0) {\n this.storeFormLinesData = this.formLinesData;\n }\n this.init();\n }\n if (\n changes[\"totalOption\"] &&\n JSON.stringify(changes[\"totalOption\"].currentValue) !==\n JSON.stringify(changes[\"totalOption\"].previousValue)\n ) {\n this.calculateTotal();\n }\n }\n\n calculateTotal() {\n // 这里处理合计数据\n if (this.showTotal) {\n this.totalOptionList = new Array(Number(this.columnsNumber) - 1).fill(\"\");\n this.totalOption.forEach((item) => {\n if (item.insertIndex && (item.insertValue || item.insertValue === 0)) {\n this.totalOptionList[item.insertIndex - 1] = {\n value: item.insertValue,\n align: item.align || \"left\",\n showDecimal: item.showDecimal || false,\n };\n }\n });\n }\n }\n\n private init(isEdit: boolean = false): void {\n this.paginationPageIndex = 1;\n // 异常捕获\n if (!this.checkList(this.formLines)) {\n this.tableLoading = false;\n return;\n }\n this.createForm();\n // 如果没有formLinesData,则认为是新增\n if (\n !isEdit &&\n (!this.formLinesData ||\n (this.formLinesData && this.formLinesData.length === 0))\n ) {\n this.tableLoading = false;\n this.addFormLine(0, false);\n this.showForm = true;\n } else {\n // 编辑逻辑\n this.addFormLineWithData();\n }\n this.validateHdFormLines.valueChanges.subscribe((data) =>\n this.onHdFormValueChanged(data),\n );\n this.onHdFormValueChanged();\n }\n\n /**\n * 创建表单\n */\n private createForm() {\n this.validateHdFormLines = this.fb.group({\n lines: this.fb.array([]),\n });\n this.newLine = this.newLineItem();\n }\n\n delayJumpToNextInput() {\n setTimeout(() => {\n this.jumpToNextInput(this.activeDomX, this.activeDomY);\n }, 0);\n }\n\n /**\n * 定义空的newLineItem 结构\n */\n private newLineItem(): FormGroup {\n let formGroupObj: any = {};\n this.formLines.forEach((item) => {\n // 新增行 初始数据都为null\n formGroupObj[item.name] = this.fb.control(\n {\n value: item.value,\n disabled: item.disabled,\n } || null,\n item.require && !item.hide ? [Validators.required] : [],\n );\n });\n formGroupObj.lineIndex = this.fb.control(\n this.linesFormArray.controls.length,\n [],\n );\n // 用来标识是否是搜索状态下新增的行\n formGroupObj.isHdFormLineSearchAdd = this.fb.control(this.isFilterData, []);\n let formGroupSubmit = this.fb.group(formGroupObj);\n this.formLines.forEach((item, innerIndex) => {\n if (item.onChangeEvent) {\n if (item.onChangeEvent) {\n if (item.onChangeEventDebounceTime) {\n formGroupSubmit\n .get(item.name)\n .valueChanges.pipe(debounceTime(item.onChangeEventDebounceTime))\n .subscribe((value) => {\n if (item.type === FormLineType.Select && value !== null) {\n this.delayJumpToNextInput();\n }\n this.triggerEvent(item.onChangeEvent, value, formGroupSubmit);\n });\n } else {\n formGroupSubmit.get(item.name).valueChanges.subscribe((value) => {\n if (item.type === FormLineType.Select && value !== null) {\n this.delayJumpToNextInput();\n }\n this.triggerEvent(item.onChangeEvent, value, formGroupSubmit);\n });\n }\n }\n }\n });\n return formGroupSubmit;\n }\n\n private calculateLineNumber() {\n this.linesFormArray.controls.forEach((item, index) => {\n item.get(\"lineIndex\").setValue(index + 1, { emitEvent: false });\n });\n }\n\n /**\n * 编辑的时候数据处理\n */\n addFormLineWithData() {\n this.formLinesData.forEach((formLinesDataItem, index) => {\n let formGroupObj: any = {};\n this.formLines.forEach((item) => {\n // 新增行 初始数据都为null\n formGroupObj[item.name] = this.fb.control(\n {\n value: this.judgeValueIsNotEmpty(formLinesDataItem[item.name])\n ? formLinesDataItem[item.name]\n : item.value || null,\n disabled: item.disabled,\n },\n item.require ? [Validators.required] : [],\n );\n if (item.selectOption && item.selectOption.label) {\n formGroupObj[item.selectOption.label] = this.fb.control(\n formLinesDataItem[item.selectOption.label] || null,\n [],\n );\n }\n });\n formGroupObj.lineIndex = this.fb.control(\n this.linesFormArray.controls.length + 1,\n [],\n );\n let formGroupTmp = this.fb.group(formGroupObj);\n this.formLines.forEach((item, innerIndex) => {\n if (item.onChangeEvent) {\n if (item.onChangeEventDebounceTime) {\n formGroupTmp\n .get(item.name)\n .valueChanges.pipe(debounceTime(item.onChangeEventDebounceTime))\n .subscribe((value) => {\n if (item.type === FormLineType.Select && value !== null) {\n this.delayJumpToNextInput();\n }\n this.triggerEvent(item.onChangeEvent, value, formGroupTmp);\n });\n } else {\n formGroupTmp.get(item.name).valueChanges.subscribe((value) => {\n if (item.type === FormLineType.Select && value !== null) {\n this.delayJumpToNextInput();\n }\n this.triggerEvent(item.onChangeEvent, value, formGroupTmp);\n });\n }\n }\n });\n this.linesFormArray.insert(\n this.linesFormArray.controls.length,\n formGroupTmp,\n );\n });\n this.tableLoading = false;\n this.showForm = true;\n }\n\n addFormLine(index?: any, isFocus: boolean = true) {\n this.linesFormArray.insert(\n index || this.linesFormArray.controls.length,\n this.newLineItem(),\n );\n this.calculateLineNumber();\n setTimeout(() => {\n this.collectDomData();\n if (isFocus) {\n if (index !== null && index !== undefined) {\n this.activeDomX = index;\n } else {\n this.activeDomX = this.collectDomList.length - 1;\n }\n this.activeDomY = 0;\n console.log(\"执行过程13\");\n this.focusDom(this.activeDomX, this.activeDomY);\n }\n }, 0);\n }\n\n @Output() deleteLineEvent = new EventEmitter();\n\n deleteFormLine(index: any) {\n console.log(\"index\", index);\n // 最后一条数据的时候要判断一下\n if (this.linesFormArray.controls.length === 1 && !this.allowEmpty) {\n if (this.deleteLastLineEvent) {\n this.deleteLastLineEvent.emit();\n }\n return;\n }\n this.linesFormArray.removeAt(index - 1);\n if (\n !this.isFilterData &&\n this.linesFormArray.controls &&\n this.linesFormArray.controls.length === 0\n ) {\n this.addFormLine();\n } else {\n // 删除尾页的最后一个元素动作\n if (\n this.paginationPageIndex * this.paginationPageSize ===\n this.linesFormArray.controls.length + this.paginationPageSize\n ) {\n this.paginationPageIndex--;\n }\n this.calculateLineNumber();\n }\n setTimeout(() => {\n this.collectDomData();\n }, 0);\n }\n\n public pageIndexChange(event: number): void {\n this.paginationPageIndex = event;\n setTimeout(() => {\n this.collectDomData();\n }, 0);\n }\n\n public pageSizeChange(event: number): void {\n this.paginationPageSize = event;\n setTimeout(() => {\n this.collectDomData();\n }, 0);\n }\n\n private onHdFormValueChanged(data?: any) {\n if (this.isFilterData) {\n if (data && data.lines && this.filterIndexStore.length !== 0) {\n const lines = data.lines;\n if (lines.length === this.filterIndexStore.length) {\n this.filterIndexStore.forEach((item, index) => {\n this.storeFormLinesData[item] = {\n ...this.filterStoreFormLinesData[index],\n ...lines[index],\n };\n });\n } else if (lines.length > this.filterIndexStore.length) {\n // 有新增数据的情况\n // step 1: 先找新增的index下标\n const getNowLines = this.validateHdFormLines.getRawValue().lines;\n let addIndex = -1;\n for (let i = 0; i < getNowLines.length; i++) {\n if (getNowLines[i].isHdFormLineSearchAdd) {\n addIndex = i;\n break;\n }\n }\n if (addIndex !== -1) {\n this.storeFormLinesData.splice(\n this.filterIndexStore[addIndex - 1] + 1,\n 0,\n getNowLines[addIndex],\n );\n }\n this.filterIndexStore.push(this.filterIndexStore[addIndex - 1] + 1);\n } else {\n // 有删除数据的情况\n // step 1:先找到删除的index下标\n let deletedIndex = -1;\n let count = 0;\n if (lines.length === 0) {\n deletedIndex = 0;\n } else {\n for (let i = 0; i < lines.length; i++) {\n if (lines[i].lineIndex - count > 1) {\n deletedIndex = i;\n break;\n }\n count++;\n }\n }\n if (deletedIndex !== -1) {\n // step 2: 删除总数据中的对应数据, 把下标数组和lines长度对齐,同时把下标数组在deletedIndex后面的值全都-1\n this.storeFormLinesData = this.storeFormLinesData.filter(\n (item, index) => {\n return index !== this.filterIndexStore[deletedIndex];\n },\n );\n this.filterIndexStore.splice(deletedIndex, 1);\n for (let i = 0; i < this.filterIndexStore.length; i++) {\n if (i >= deletedIndex) {\n this.filterIndexStore[i]--;\n }\n }\n } else {\n // step 2: 没有找到deletedIndex说明删除操作在最后一行\n const filterIndex =\n this.filterIndexStore[this.filterIndexStore.length - 1];\n this.storeFormLinesData = this.storeFormLinesData.filter(\n (item, index) => {\n return index !== filterIndex;\n },\n );\n this.filterIndexStore.pop();\n }\n }\n } else {\n if (data && data.lines) {\n this.storeFormLinesData = data.lines;\n }\n }\n } else {\n if (data && data.lines) {\n this.storeFormLinesData = data.lines;\n }\n }\n\n // 总表单\n if (!this.isFilterData) {\n this.formValid = this.validateHdFormLines.valid;\n } else {\n if (this.formValid) {\n // 如果整体表单是true,不管子表单是什么,都变成子表单的状态\n this.formValid = this.validateHdFormLines.valid;\n } else {\n // 如果整体表单是false:1、子表单为true,需要重算;2、子表单为false,用子表单状态\n if (this.validateHdFormLines.valid) {\n this.formValid = this.innerGetValid();\n } else {\n this.formValid = this.validateHdFormLines.valid;\n }\n }\n }\n // this.calculateLineNumber();\n this.changeEvent.emit(this.validateHdFormLines);\n }\n\n private checkList(list: Array<FormLine>): boolean {\n if (!list || (list && list.length === 0)) {\n return false;\n }\n let nameList = [];\n let selectOptionCheckList = [];\n list.forEach((item) => {\n // 校验单项选择器\n // if (item.type === FormLineType.Select && (!item.selectList || (item.selectList && item.selectList.length === 0))) {\n // throw 'formLines组件数据格式不规范,存在单项选择器没有传入选项!'\n // }\n nameList.push(item.name);\n\n // 校验有onSearch的字段的selectOption的value、label是否在formLine里面都定义了\n if (item.onSearchEvent && item.selectOption) {\n selectOptionCheckList = [];\n list.forEach((innerItem) => {\n if (\n innerItem.name === item.selectOption.value ||\n innerItem.name === item.selectOption.label\n ) {\n selectOptionCheckList.push(innerItem.name);\n }\n });\n if (selectOptionCheckList.length < 2) {\n throw `formLines组件数据格式不规范,字段${item.name}的selectOption的value、label字段未能在formLines中找到对应字段!`;\n }\n }\n });\n // 校验name是否重复\n if ([...new Set(nameList)].length !== list.length) {\n throw \"formLines组件数据格式不规范,存在重复name值!\";\n }\n // ...more check\n return true;\n }\n\n public submitForm(): void {\n this.changeEvent.emit(this.validateHdFormLines.getRawValue());\n }\n\n public resetForm(): void {\n // 删除\n for (let i = this.linesFormArray.controls.length; i >= 0; i--) {\n this.deleteFormLine(i);\n }\n this.paginationPageIndex = 1;\n }\n\n public inputClean(formItem: any, line: any): void {\n line.get(formItem.name).setValue(null);\n }\n\n public selectValue(id: string, rowNumber: number, colNumber: number): void {\n const inputDom: any = document.querySelector(id);\n inputDom.select();\n this.setActiveDomInFormLines(rowNumber, colNumber);\n }\n\n private textWidthCache: { [key: string]: number } = {};\n\n isTextOverflow(text: string, maxWidth: number): boolean {\n const cachedWidth = this.textWidthCache[text];\n if (cachedWidth !== undefined) {\n return cachedWidth + 15 >= maxWidth;\n }\n\n const span = document.createElement(\"span\");\n span.style.visibility = \"hidden\";\n span.style.position = \"absolute\";\n span.style.whiteSpace = \"nowrap\";\n span.style.fontSize = \"14px\";\n span.style.display = \"inline-block\"; // 将样式修改为 inline-block\n span.innerText = text;\n document.body.appendChild(span);\n const isOverflow = span.offsetWidth + 15 >= maxWidth;\n this.textWidthCache[text] = span.offsetWidth;\n span.style.display = \"none\";\n document.body.removeChild(span);\n return isOverflow;\n }\n\n judgeColEmpty(str: any) {\n if (str || str === 0) {\n return str;\n } else {\n return \"<空>\";\n }\n }\n\n judgeValueIsNotEmpty(str: any) {\n if (str === null && str === undefined) {\n return false;\n } else {\n return true;\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { NgZorroAntdModule } from 'ng-zorro-antd';\nimport { HdButtonGroupModule } from '../hd-button-group/hd-button-group.module';\nimport { HdButtonModule } from '../hd-button/hd-button.module';\nimport { HdSpaceModule } from '../hd-space/hd-space.module';\nimport { HdFormLinesComponent } from './hd-form-lines.component';\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n NgZorroAntdModule,\n HdButtonModule,\n HdSpaceModule,\n HdButtonGroupModule\n ],\n declarations: [HdFormLinesComponent],\n exports: [HdFormLinesComponent]\n})\nexport class HdFormLinesModule { }\n","import { Injectable } from '@angular/core';\nimport { ValidatorFn } from '@angular/forms';\nimport { CascaderOption, CheckboxOption, InputNumber, RadioOption, SelectOption } from '../model/common-type';\n\n// 控件列表\nexport class FormItem {\n type: FormListType;\n label: string; // 文本\n name: string; // 字段名称\n require?: boolean = false; // 是否必填\n placeholder?: string; // 输入框提示文案\n width?: number = 1; // 占据的列数。默认1\n hide?: boolean = false; // 是否为隐藏字段,仅用于填充表单的字段,不显示在页面上\n totalWidth?: number = 0;\n isRowFirst?: number = 0; // 是否是一行的第一个元素\n columnItems?: Array<any>; // 当前行的所有列的items\n value?: string | boolean | number | Date | Array<string | number | boolean | Date> | null = null; // 值 不传默认为null\n disabled?: boolean;\n color?: string;\n // 组件内部成员\n maxLength?: number; // input控件的输入长度\n prefix?: string; // input前缀文字,对应 nz-input-group nzPrefix\n prefixIcon?: string; // input前缀图标,对应 nz-icon nzType\n selectOption?: SelectOption; // 控件为Select时,选项列表\n radioOption?: RadioOption; // 控件为Radio时,选项列表\n checkboxOption?: CheckboxOption; // 控件为Checkbox组时,选项列表\n inputNumber?: InputNumber = new InputNumber(); // number组件的min、max、step\n onChangeEvent?: Function; // 控件的值改变事件 可用于控件间联动\n onSearchEvent?: Function; // select选择器搜索事件 可用于更新备选集合\n defaultLabel?: string | Array<string>; // select选择器不初始化的时候可以使用defaultLabel搭配value,设置默认值\n hdDisabledDate?: Function; // date-picker组件不可选择的日期\n hdShowToday?: boolean = true; // 对应 nzShowToday,是否显示「今天」按钮,默认 true\n explain?: string; // label底部的介绍\n textAreaRows?: number; // textArea的行数\n showTime?: boolean = false; // 日期选择器是否包含时间\n labelColor?: string; // label的文字的颜色\n validatorKeys?: Array<ValidatorKey>;\n validator?: ValidatorFn;\n onChangeEventDebounceTime?: number; // change事件防抖\n onSearchEventEventDebounceTime?: number; // search事件防抖\n cascaderOption?: CascaderOption; // 级联选择器配置\n format?: string; // 时间的格式化规则\n}\n\nexport class ValidatorKey {\n key: string;\n label: string;\n}\n\n// 控件类型\nexport enum FormListType {\n Input, // 输入框\n Select, // 单项选择器\n Date, // 单个日期选择\n DateRange, // 日期范围选择\n TextArea, // 块级输入框\n InputNumber, // 数字输入\n MultipleSelect, // 多选\n ViewDom, // 单纯的显示控件\n Switch, // 开关\n Time, // 时间选择器\n Cascader, // 级联选择器\n Radio, // 单选\n Checkbox // 复选框\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class HdFormService {\n constructor() {\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { Subject, Subscription } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\nimport { FormItem, FormListType } from './hd-form.service';\n// import * as moment from 'moment';\n@Component({\n selector: 'hd-form',\n templateUrl: './hd-form.component.html',\n styleUrls: ['./hd-form.component.less']\n})\nexport class HdFormComponent implements OnInit {\n\n @Input() formList: Array<FormItem>;\n @Output() changeEvent = new EventEmitter();\n validateHdForm: FormGroup;\n inputValue: string;\n\n private searchSubject = new Subject<{ fn: any, event: any; }>();\n private debounceTimeout: number = 0; // 默认防抖时间\n\n private searchSubscription: Subscription | undefined;\n constructor(private fb: FormBuilder) {\n this.searchSubscription = this.searchSubject.pipe(\n debounceTime(this.debounceTimeout)\n ).subscribe(({ fn, event }) => this.triggerEvent(fn, event));\n }\n\n ngOnInit() {\n if (!this.formList || this.formList.length === 0) {\n return;\n }\n\n this.init();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['formList'] && JSON.stringify(changes['formList'].currentValue) !== JSON.stringify(changes['formList'].previousValue)) {\n if (!this.formList || this.formList.length === 0) {\n return;\n }\n this.init();\n }\n }\n\n onSearchEvent(fn: any, event: any, onSearchEventDebounceTime: any) {\n if (onSearchEventDebounceTime) {\n // 更新防抖时间\n this.debounceTimeout = onSearchEventDebounceTime;\n\n // 取消之前的订阅\n if (this.searchSubscription) {\n this.searchSubscription.unsubscribe();\n }\n\n // 创建新的订阅\n this.searchSubscription = this.searchSubject.pipe(\n debounceTime(this.debounceTimeout)\n ).subscribe(({ fn, event }) => this.triggerEvent(fn, event));\n\n // 发送事件\n this.searchSubject.next({ fn, event });\n } else {\n this.triggerEvent(fn, event);\n }\n }\n\n triggerEvent(fn: any, event: any) {\n if (fn) {\n fn(event);\n }\n }\n\n private init(): void {\n // 异常捕获\n if (!this.checkList(this.formList)) {\n throw 'form组件数据格式不规范';\n }\n // 对表单数据做初始化,用row隔离每行数据item\n this.dealRow();\n // 首先根据定义的组件数组 去初始化表单\n let formGroupList = {};\n this.formList.forEach((item, index) => {\n // 日期相关的控件做特殊处理\n if (item.type === 2 && item.value) {\n const [year, month, day] = item.value.toString().split('-').map(str => parseInt(str));\n const newDateStr = new Date(year, month - 1, day)\n .toLocaleDateString('zh-Hans-CN', { year: 'numeric', month: '2-digit', day: '2-digit' })\n .replace(/\\//g, '-');\n if (item.validator) {\n formGroupList[item.name] = this.fb.control({ value: new Date(newDateStr), disabled: item.disabled }, item.require && !item.hide ? [Validators.required, item.validator] : []);\n } else {\n formGroupList[item.name] = this.fb.control({ value: new Date(newDateStr), disabled: item.disabled }, item.require && !item.hide ? [Validators.required] : []);\n }\n } else if (item.type === 3 && item.value) {\n let formItemDate = JSON.parse(JSON.stringify(item.value));\n if (formItemDate && formItemDate instanceof Array) {\n formItemDate = formItemDate.map((item) => {\n const [year, month, day] = item.split('-').map(str => parseInt(str));\n const newDateStr = new Date(year, month - 1, day)\n .toLocaleDateString('zh-Hans-CN', { year: 'numeric', month: '2-digit', day: '2-digit' })\n .replace(/\\//g, '-');\n item = new Date(newDateStr);\n });\n if (item.validator) {\n formGroupList[item.name] = this.fb.control({ value: formItemDate, disabled: item.disabled }, item.require && !item.hide ? [Validators.required, item.validator] : []);\n } else {\n formGroupList[item.name] = this.fb.control({ value: formItemDate, disabled: item.disabled }, item.require && !item.hide ? [Validators.required] : []);\n }\n } else {\n throw 'form组件中DateRange控件value值格式不规范,正确示例[\\'2020-01-22\\', \\'2020-01-23\\']';\n }\n } else if (item.type === FormListType.Checkbox && item.checkboxOption) {\n const checkboxValue = Array.isArray(item.value) ? item.value : [];\n if (item.validator) {\n formGroupList[item.name] = this.fb.control({ value: checkboxValue, disabled: item.disabled }, item.require && !item.hide ? [Validators.required, item.validator] : []);\n } else {\n formGroupList[item.name] = this.fb.control({ value: checkboxValue, disabled: item.disabled }, item.require && !item.hide ? [Validators.required] : []);\n }\n } else if (item.type === FormListType.Checkbox) {\n const checkboxValue = item.value != null ? item.value : false;\n if (item.validator) {\n formGroupList[item.name] = this.fb.control({ value: checkboxValue, disabled: item.disabled }, item.require && !item.hide ? [Validators.required, item.validator] : []);\n } else {\n formGroupList[item.name] = this.fb.control({ value: checkboxValue, disabled: item.disabled }, item.require && !item.hide ? [Validators.required] : []);\n }\n } else {\n if (item.validator) {\n formGroupList[item.name] = this.fb.control({ value: item.value, disabled: item.disabled }, item.require && !item.hide ? [Validators.required, item.validator] : []);\n } else {\n formGroupList[item.name] = this.fb.control({ value: item.value, disabled: item.disabled }, item.require && !item.hide ? [Validators.required] : []);\n }\n }\n });\n\n this.validateHdForm = this.fb.group(formGroupList);\n\n this.formList.forEach((item) => {\n if (item.onChangeEvent) {\n if (item.onChangeEvent) {\n if (item.onChangeEventDebounceTime) {\n this.validateHdForm.get(item.name).valueChanges\n .pipe(\n debounceTime(item.onChangeEventDebounceTime)\n )\n .subscribe(value => this.triggerEvent(item.onChangeEvent, value));\n } else {\n this.validateHdForm.get(item.name).valueChanges.subscribe(value => this.triggerEvent(item.onChangeEvent, value));\n }\n }\n }\n });\n this.validateHdForm.valueChanges.subscribe(data => this.onHdFormValueChanged(data));\n this.onHdFormValueChanged();\n }\n\n private dealRow() {\n // 一阶段 遍历数据计算相关数据\n const formListLength = this.formList.length;\n let step = 0;\n for (let i = 0; i < formListLength; i++) {\n if (!this.formList[i].hide) {\n if (i === 0) {\n this.formList[i].totalWidth = this.formList[i].width || 1;\n this.formList[i].isRowFirst = 1;\n step = step + 4;\n } else {\n // 去找到前一个非hide的控件\n for (let j = i - 1; j >= 0; j--) {\n if (this.formList[j].totalWidth) {\n this.formList[i].totalWidth = this.formList[j].totalWidth + (this.formList[i].width || 1);\n if ((this.formList[j].totalWidth + (this.formList[i].width || 1)) > step && this.formList[j].totalWidth <= step) {\n step = step + 4;\n this.formList[i].isRowFirst = 1;\n } else {\n this.formList[i].isRowFirst = 0;\n }\n break;\n }\n }\n }\n }\n }\n\n // 二阶段 isRowFirst的数组项增加子节点\n for (let m = 0; m < formListLength; m++) {\n if (this.formList[m].isRowFirst === 1) {\n this.formList[m].columnItems = [];\n let space = 0;\n for (let n = 1; n < formListLength - m; n++) {\n if (space === 4 || this.formList[m + n].isRowFirst === 1) {\n break;\n }\n if (!this.formList[m + n].hide && this.formList[m + n] && this.formList[m + n].isRowFirst === 0) {\n this.formList[m].columnItems.push(this.formList[m + n]);\n space++;\n }\n }\n }\n }\n }\n\n private onHdFormValueChanged(data?: any) {\n this.changeEvent.emit(this.validateHdForm);\n }\n\n private checkList(list: Array<FormItem>): boolean {\n if (!list || (list && list.length === 0)) {\n return false;\n }\n let nameList = [];\n list.forEach((item) => {\n // 校验单项选择器\n // if (item.type === FormListType.Select && (!item.selectOption.selectList || (item.selectOption.selectList && item.selectOption.selectList.length === 0))) {\n // throw 'form组件数据格式不规范,存在单项选择器没有传入选项!'\n // }\n nameList.push(item.name);\n });\n // 校验name是否重复\n if ([...new Set(nameList)].length !== list.length) {\n throw 'form组件数据格式不规范,存在重复name值!';\n }\n // ...more check\n return true;\n }\n\n public submitForm(): void {\n Object.values(this.validateHdForm.controls).forEach(control => {\n control.markAsDirty();\n control.updateValueAndValidity();\n });\n this.changeEvent.emit(this.validateHdForm.getRawValue());\n }\n\n public resetForm(): void {\n this.validateHdForm.reset();\n Object.values(this.validateHdForm.controls).forEach(control => {\n control.markAsDirty();\n control.updateValueAndValidity();\n });\n this.changeEvent.emit(this.validateHdForm.getRawValue());\n }\n\n public inputClean(filter: FormItem): void {\n const patchObject = {};\n patchObject[filter.name] = null;\n this.validateHdForm.patchValue(patchObject);\n }\n\n isCheckboxChecked(name: string, value: any): boolean {\n const control = this.validateHdForm.get(name);\n const current = control ? control.value : null;\n return Array.isArray(current) && current.indexOf(value) !== -1;\n }\n\n onCheckboxItemChange(name: string, value: any, checked: boolean): void {\n const control = this.validateHdForm.get(name);\n if (!control) {\n return;\n }\n const current = Array.isArray(control.value) ? [...control.value] : [];\n const index = current.indexOf(value);\n if (checked && index === -1) {\n current.push(value);\n } else if (!checked && index !== -1) {\n current.splice(index, 1);\n }\n control.setValue(current);\n control.markAsDirty();\n control.updateValueAndValidity();\n }\n\n readonly inputNumberDefaultFormatter = (value: unknown) => value;\n readonly inputNumberDefaultParser = (value: string) => value;\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { HdFormComponent } from './hd-form.component';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { NgZorroAntdModule } from 'ng-zorro-antd';\nimport { HdButtonModule } from '../hd-button/hd-button.module';\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n NgZorroAntdModule,\n HdButtonModule\n ],\n declarations: [HdFormComponent],\n exports: [HdFormComponent]\n})\nexport class HdFormModule { }\n","import { Component, ContentChild, EventEmitter, Input, OnInit, Output, SimpleChange, SimpleChanges, TemplateRef } from '@angular/core';\nimport { TableTotalOption } from './hd-current-table.service';\nimport { InputBoolean } from 'ng-zorro-antd/core';\nimport { Page } from '../model/common-type';\n\n@Component({\n selector: 'hd-current-table',\n templateUrl: './hd-current-table.component.html',\n styleUrls: ['./hd-current-table.component.less']\n})\nexport class HdCurrentTableComponent implements OnInit {\n @Input() tableData: Page<any>;\n @Input() scroll: { [key: string]: string } = { x: '1px' };\n @Input() @InputBoolean() showSelected: boolean = false;\n @Input() selectField: string = 'billNumber';\n // 合计区域\n @Input() @InputBoolean() showTableTotal: boolean = false;\n @Input() tableTotalOption: Array<TableTotalOption>;\n @Output() selectEvent = new EventEmitter();\n @Output() tableSearchEvent = new EventEmitter();\n @ContentChild(\"tableHead\", { static: false }) tableHead: TemplateRef<any>;\n @ContentChild(\"tableBody\", { static: false }) tableBody: TemplateRef<any>;\n @ContentChild(\"tableTotal\", { static: false }) tableTotal: TemplateRef<any>;\n\n @Input() tableLoading: boolean = false;\n // 表格分页参数\n @Input() tablePageIndex: number = 1;\n @Input() tablePageSize: number = 10;\n @Output() tablePageIndexChange = new EventEmitter<any>();\n @Output() tablePageSizeChange = new EventEmitter<any>();\n // 表格勾选参数\n isAllDisplayDataChecked = false;\n isIndeterminate = false;\n listOfDisplayData = [];\n listOfAllData = [];\n listOfSelection: Array<any> | TemplateRef<void>;\n mapOfCheckedId: { [key: string]: boolean } = {};\n mapOfCheckList: { [key: string]: any } = {};\n\n tableTotalOptionList = [];\n\n constructor() { }\n\n ngOnInit(): void { }\n\n ngOnChanges(changes: SimpleChange) {\n // 数据改变时,重置勾选状态\n if (changes && changes['tableData'] && changes['tableData']['currentValue'] && changes['tableData']['previousValue']) {\n if(changes['tableData']['currentValue']['pageSize'] !== changes['tableData']['previousValue']['pageSize']\n || changes['tableData']['currentValue']['pageNumber'] !== changes['tableData']['previousValue']['pageNumber']){\n return;\n }\n this.resetStatus();\n }\n }\n\n // 表格勾选逻辑\n currentPageDataChange($event: any): void {\n this.listOfDisplayData = $event;\n this.refreshStatus();\n this.resetStatus();\n }\n\n search(reset: boolean) {\n if(reset){\n this.tablePageSizeChange.emit(this.tablePageSize);\n }else{\n this.tablePageIndexChange.emit(this.tablePageIndex);\n }\n // 触发父组件查询事件\n this.tableSearchEvent.emit(reset);\n }\n\n resetStatus() {\n this.isAllDisplayDataChecked = false;\n this.isIndeterminate = false;\n this.mapOfCheckedId = {};\n this.mapOfCheckList = {};\n this.selectEvent.emit([]);\n }\n\n refreshStatus(event: boolean = false, data: any = null): void {\n if (event && data) {\n !this.mapOfCheckList[data[this.selectField]] && (this.mapOfCheckList[data[this.selectField]] = data);\n } else if (!event && data) {\n this.mapOfCheckList[data[this.selectField]] && delete this.mapOfCheckList[data[this.selectField]];\n }\n this.isAllDisplayDataChecked = this.listOfDisplayData.every(item => this.mapOfCheckedId[item[this.selectField]]);\n this.isIndeterminate =\n this.listOfDisplayData.some(item => this.mapOfCheckedId[item[this.selectField]]) && !this.isAllDisplayDataChecked;\n // 触发select事件\n if (this.selectEvent) {\n const selectedList: Array<any> = Object.values(this.mapOfCheckList);\n this.selectEvent.emit(selectedList);\n }\n // 如果数据为空,则清空勾选标识\n if (this.tableData.content.length === 0) {\n this.isAllDisplayDataChecked = false;\n }\n }\n\n checkAll(value: boolean): void {\n this.listOfDisplayData.forEach(item => {\n if (value) {\n !this.mapOfCheckList[item[this.selectField]] && (this.mapOfCheckList[item[this.selectField]] = item);\n } else {\n this.mapOfCheckList[item[this.selectField]] && delete this.mapOfCheckList[item[this.selectField]];\n }\n\n this.mapOfCheckedId[item[this.selectField]] = value\n });\n this.refreshStatus();\n }\n}\n","import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { HdCurrentTableComponent } from './hd-current-table.component';\nimport { NzTableModule } from 'ng-zorro-antd/table';\nimport { HdSpaceModule } from '../hd-space/hd-space.module';\n\n@NgModule({\n imports: [\n CommonModule,\n NzTableModule,\n HdSpaceModule\n ],\n declarations: [HdCurrentTableComponent],\n exports: [HdCurrentTableComponent],\n schemas: [NO_ERRORS_SCHEMA]\n})\nexport class HdCurrentTableModule { }\n","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'hd-log',\n templateUrl: './hd-log.component.html',\n styleUrls: ['./hd-log.component.less']\n})\nexport class HdLogComponent implements OnInit {\n @Input() logs: any[];\n\n constructor() {\n }\n\n ngOnInit() {\n }\n}\n","import { Injectable, NgModule } from '@angular/core';\nimport { NzModalService } from 'ng-zorro-antd';\nimport { HdLogComponent } from './hd-log.component';\n\n@Injectable({\n providedIn: 'root',\n})\n\nexport class HdLogService {\n\n constructor(private modalService: NzModalService) { }\n\n showLogs(logs: any[]) {\n this.modalService.create({\n nzTitle: '操作日志',\n nzContent: HdLogComponent,\n nzComponentParams: { logs },\n nzFooter: null,\n nzWidth: 1000\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { HdLogComponent } from './hd-log.component';\nimport { NgZorroAntdModule } from 'ng-zorro-antd';\nimport { HdDetailLinesModule } from '../hd-detail-lines/hd-detail-lines.module';\nimport { HdLogService } from './hd-log.service';\n@NgModule({\n imports: [\n CommonModule,\n NgZorroAntdModule,\n HdDetailLinesModule\n ],\n entryComponents: [HdLogComponent],\n declarations: [HdLogComponent],\n exports: [HdLogComponent],\n providers: [HdLogService]\n})\nexport class HdLogModule { }\n","import { Component, OnInit, Output, Input, EventEmitter } from '@angular/core';\n\n@Component({\n selector: 'hd-popconfirm',\n templateUrl: './hd-popconfirm.component.html',\n styleUrls: ['./hd-popconfirm.component.less']\n})\nexport class HdPopconfirmComponent implements OnInit {\n @Input() message: string;\n @Output() confirmOption = new EventEmitter<any>();\n @Output() cancelOption = new EventEmitter<any>();\n\n constructor() { }\n\n ngOnInit() {\n }\n\n\n cancel(e: any): void{\n this.cancelOption.emit();\n }\n\n confirm(e: any): void{\n this.confirmOption.emit();\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { NgZorroAntdModule } from 'ng-zorro-antd';\nimport { HdPopconfirmComponent } from \"./hd-popconfirm.component\";\n\n@NgModule({\n declarations: [\n HdPopconfirmComponent\n ],\n imports: [\n FormsModule,\n ReactiveFormsModule,\n CommonModule,\n NgZorroAntdModule,\n ],\n exports: [HdPopconfirmComponent],\n providers: [],\n bootstrap: [HdPopconfirmComponent]\n})\nexport class HdPopconfirmModule {\n}\n","import { Component, OnInit, Input, SimpleChange } from \"@angular/core\";\nimport { statusToColor } from \"./hd-status.service\";\n\n@Component({\n selector: \"hd-status\",\n templateUrl: \"./hd-status.component.html\",\n styleUrls: [\"./hd-status.component.less\"],\n})\nexport class HdStatusComponent implements OnInit {\n @Input() status: string;\n statusColor: string;\n\n constructor() {}\n\n ngOnInit() {\n this.setStatusColor();\n }\n\n ngOnChanges() {\n this.setStatusColor();\n }\n\n setStatusColor() {\n let findKey = \"\";\n const statusLower = this.status && this.status.toLowerCase();\n for (const key in statusToColor) {\n if (\n statusLower &&\n statusToColor[key].some(\n (item) => item && item.toLowerCase() === statusLower,\n )\n ) {\n findKey = key; \n }\n }\n this.statusColor = findKey || \"#9FA4A2\";\n }\n}\n","import { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { NgZorroAntdModule } from 'ng-zorro-antd';\nimport { HdStatusComponent } from \"./hd-status.component\";\n\n@NgModule({\n declarations: [\n HdStatusComponent,\n ],\n imports: [\n FormsModule,\n ReactiveFormsModule,\n CommonModule,\n NgZorroAntdModule,\n ],\n exports: [HdStatusComponent],\n providers: [],\n bootstrap: [HdStatusComponent]\n})\nexport class HdStatusModule {\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class CommonSessionService {\n putSession(session_key: string, session: any) {\n if (session) {\n window.sessionStorage.setItem(session_key, JSON.stringify(session));\n } else {\n window.sessionStorage.removeItem(session_key);\n }\n }\n\n getSession(session_key: string): any {\n return JSON.parse(window.sessionStorage.getItem(session_key));\n }\n\n removeSession(session_key: string) {\n window.sessionStorage.removeItem(session_key);\n }\n}\n","export const ColWidth = {\n tableImageColWidth: 25, // 表格小图标宽度\n tableTwoImageColWidth: 40, // 表格小图标宽度\n billNumberColWidth: 150, // 单据单号列宽度\n nameColWidth: 150, // 基本资料名称列宽度\n codeColWidth: 100, // 基本资料代码列宽度\n codeNameColWidth: 200, // 用于门店、货主、供应商以“[code]name“格式展示时固定宽度\n enumColWidth: 100, // 枚举列宽度\n dateColWidth: 100, // 单个日期\n dateTimeColWidth: 150, // 单个日期带时间\n dateRangeWidth: 200, // 日期范围\n operateColWidth: 150, // 操作列宽度\n numberColWidth: 100, // 数字列\n remarkColWidth: 250, // 备注列\n fixColWidth: 150, // 不属于以上内容的列统一使用该宽度,增加超长省略\n maxColWidth: 350 // 用于展示订单内容,需要缩略、展开显示的列\n};\n","\n// 表格行\nexport class HdTableColumn {\n title: string; // 列名\n name: string | Function = null; // 字段名\n render?: (value: any) => string; // 渲染函数\n width?: number; // 列宽\n color?: string; // 颜色\n align?: 'right' | 'left' | 'center' = 'left';\n click?: (value: any) => void;\n fixed?: 'left' | 'right' = null;\n fixedWidth?: number; // 固定列宽度\n btnList?: Array<OperateBtn> = [];\n isShow?: boolean = true;\n canSort?: boolean = false; // 是否可以排序\n canWarp?: boolean = false; // 用于某一列需要个性化的场景,当为true时,且表格选项showOperateColWarpButton为true时,通过按钮控制对应的列是否换行\n minWidth?: number; // 最小宽度,保证列名能正常显示\n stateField?: string; // 状态列取值字段,默认取 state\n isState?: boolean; // 是否按状态列渲染,取值字段为 name\n}\n\nexport class OperateBtn {\n name: string;\n showConfirm?: boolean | ((line: any) => boolean) = false;\n isRepeat?: boolean = false; // 是否和别的按钮有显示冲突,譬如:开启,关闭需要再关闭按钮加一个这个属性\n click?: (value: any) => void;\n permission?: (value: any) => boolean;\n}\n\nexport class HdTableTotalOption {\n columnNumber: number; // 总列数\n insertIndex: number; // 插入下标\n insertName: string; // 插入字段\n}\n\nexport class TableCacheOption {\n pageSize: number;\n colWidths: Map<string, number> = new Map<string, number>(); // name -> width\n cols: Array<string>; // ['title']\n}\n\n// 设置列 树组件对象\nexport class TreeGrid {\n title: string = '';\n key: string = '';\n disabled?: boolean = false;\n checked?: boolean = false;\n selectable?: boolean = false;\n isLeaf?: boolean = true;\n expanded?: boolean = false;\n}","import {\n ChangeDetectorRef,\n Component,\n ContentChild,\n EventEmitter,\n Input,\n OnInit,\n Output,\n SimpleChange,\n TemplateRef,\n} from \"@angular/core\";\nimport * as localforage from \"localforage\";\nimport {\n InputBoolean,\n NzFormatBeforeDropEvent,\n NzFormatEmitEvent,\n} from \"ng-zorro-antd/core\";\nimport { NzResizeEvent } from \"ng-zorro-antd/resizable\";\nimport { Observable, of } from \"rxjs\";\nimport { delay } from \"rxjs/operators\";\nimport { ColWidth } from \"../model/colWidth\";\nimport { Page } from \"../model/common-type\";\nimport { CommonSessionService } from \"../service/common-session.service\";\nimport {\n HdTableColumn,\n HdTableTotalOption,\n OperateBtn,\n TableCacheOption,\n TreeGrid,\n} from \"./hd-table.service\";\n@Component({\n selector: \"hd-table\",\n templateUrl: \"./hd-table.component.html\",\n styleUrls: [\"./hd-table.component.less\"],\n})\nexport class HdTableComponent implements OnInit {\n @Input() uuid: string;\n @Input() tableCols: Array<HdTableColumn> = [];\n @Input() tableData: Page<any>;\n @Input() @InputBoolean() showSelected: boolean = false;\n @Input() @InputBoolean() showOperateColWarpButton: boolean = false;\n @Input() selectField: string = \"billNumber\";\n // 合计区域\n @Input() @InputBoolean() showTableTotal: boolean = false;\n @Input() tableTotalOption: Array<HdTableTotalOption>;\n @Output() sortEvent = new EventEmitter();\n @Output() selectEvent = new EventEmitter();\n @Output() tableSearchEvent = new EventEmitter();\n @Input() tableLoading: boolean = false;\n // 表格分页参数\n @Input() tablePageIndex: number = 1;\n @Input() tablePageSize: number = 10;\n @Input() isFirstEntrySearch: boolean;\n @Input() isCrossPageSelect: boolean;\n @Output() tablePageIndexChange = new EventEmitter<any>();\n @Output() tablePageSizeChange = new EventEmitter<any>();\n @Output() tablePageSizeChangeEvent = new EventEmitter<any>();\n @ContentChild(\"tableTotal\", { static: false }) tableTotal: TemplateRef<any>;\n @ContentChild(\"tableLeftButton\", { static: false })\n tableLeftButton: TemplateRef<any>;\n @ContentChild(\"tableRightButton\", { static: false })\n tableRightButton: TemplateRef<any>;\n scroll = null;\n\n // 表格勾选参数\n isAllDisplayDataChecked = false;\n isIndeterminate = false;\n listOfDisplayData = [];\n listOfAllData = [];\n listOfSelection: Array<any> | TemplateRef<void>;\n mapOfCheckedId: { [key: string]: boolean } = {};\n mapOfCheckList: { [key: string]: any } = {};\n // 合计参数\n tableTotalOptionList = [];\n private textWidthCache: { [key: string]: number } = {};\n // 缓存信息\n tableCacheOption: TableCacheOption = new TableCacheOption();\n userSession: any;\n\n tableColsCache: Array<HdTableColumn> = [];\n showTable: boolean = false;\n selectColListNodes: Array<TreeGrid> = [];\n selectColListNodesCache: Array<TreeGrid> = [];\n showListNodes: boolean = false;\n\n isDropdownVisible: boolean = false;\n // 设置列的可见操作数组\n nowListNodes: Array<TreeGrid> = [];\n // 设置列的不可见操作数组\n hideListNodes: Array<TreeGrid> = [];\n\n // 点击时需要有临时数组存放两个tree,用于取消时候恢复调整前的状态\n cancelNowListNodes: Array<TreeGrid> = [];\n cancelHideListNodes: Array<TreeGrid> = [];\n showDetail: boolean = false;\n localforage: any = null;\n localtionTmp: string = \"\";\n isFirstEntrySearchLocal: boolean = true;\n isCrossPageSelectLocal: boolean = false;\n\n constructor(\n private cdr: ChangeDetectorRef,\n private commonSessionService: CommonSessionService,\n ) {\n this.localforage = localforage.createInstance({\n driver: localforage.INDEXEDDB,\n name: \"hd-fscm\", // 设置存储库的名称\n version: 1.0, // 设置存储库的版本\n storeName: \"hd-fscm-store\", // 设置存储库的存储空间名称\n });\n }\n\n ngOnInit(): void {\n if (this.isFirstEntrySearch === false) {\n this.isFirstEntrySearchLocal = this.isFirstEntrySearch;\n }\n if (this.isCrossPageSelect === true) {\n this.isCrossPageSelectLocal = this.isCrossPageSelect;\n }\n this.localtionTmp = location.pathname;\n if (this.localtionTmp) {\n this.localtionTmp = this.localtionTmp.replace(/\\//g, \"_\");\n }\n this.userSession = this.commonSessionService.getSession(\n \"__jy_authorization_session__\",\n );\n // 用于开发环境调试\n if (!this.userSession) {\n this.userSession = {\n userCode: \"dev\",\n };\n }\n\n this.deleteHideItem();\n if (!this.tableCols || this.tableCols.length === 0) {\n return;\n }\n\n this.localforage\n .ready()\n .then(() => {\n this.getInitLocalforage();\n })\n .catch(function (e) {\n console.log(\"localforage加载异常step1\", e);\n throw \"localforage加载异常\";\n });\n }\n\n ngOnChanges(changes: SimpleChange) {\n // 数据改变时,重置勾选状态\n if (\n changes &&\n changes[\"tableData\"] &&\n changes[\"tableData\"][\"currentValue\"] &&\n changes[\"tableData\"][\"previousValue\"]\n ) {\n if (\n changes[\"tableData\"][\"currentValue\"][\"pageSize\"] !==\n changes[\"tableData\"][\"previousValue\"][\"pageSize\"] ||\n changes[\"tableData\"][\"currentValue\"][\"pageNumber\"] !==\n changes[\"tableData\"][\"previousValue\"][\"pageNumber\"]\n ) {\n return;\n }\n if (!this.isCrossPageSelectLocal) {\n this.resetStatus();\n }\n }\n\n if (\n changes[\"tableCols\"] &&\n JSON.stringify(changes[\"tableCols\"].currentValue) !==\n JSON.stringify(changes[\"tableCols\"].previousValue) &&\n changes[\"tableCols\"].previousValue !== undefined\n ) {\n this.deleteHideItem();\n if (!this.tableCols || this.tableCols.length === 0) {\n return;\n }\n this.localforage\n .ready()\n .then(() => {\n this.getInitLocalforage();\n })\n .catch(function (e) {\n console.log(\"localforage加载异常step2\", e);\n throw \"localforage加载异常\";\n });\n }\n }\n\n deleteHideItem() {\n // 首先把isShow为false数据剔除掉\n this.tableCols = this.tableCols.filter((item) => {\n // 如果对象没有 isShow 属性,则默认为 true,保留该对象\n if (!item.hasOwnProperty(\"isShow\")) {\n return true;\n }\n // 如果对象有 isShow 属性,则检查其值是否为 true\n return item.isShow === true;\n });\n }\n\n sort(sort: { key: string; value: string }) {\n this.sortEvent.emit(sort);\n }\n\n getInitLocalforage() {\n // 首先获取当前hd-table存储的数据 如果没有,则初始化下当前的数据\n this.localforage\n .getItem(\n \"hd-table_\" +\n this.userSession.userCode +\n \"_\" +\n this.localtionTmp +\n \"_\" +\n this.uuid,\n )\n .then((value: TableCacheOption) => {\n if (value) {\n this.tableCacheOption = value;\n this.normalizeTableCacheOption();\n if (\n this.tableCacheOption.pageSize &&\n this.tableCacheOption.pageSize > 10\n ) {\n this.tablePageSize = this.tableCacheOption.pageSize;\n this.tablePageSizeChange.emit(this.tablePageSize);\n }\n } else {\n this.tableCacheOption = new TableCacheOption();\n this.tableCacheOption.pageSize = this.tablePageSize;\n }\n if (this.isFirstEntrySearchLocal) {\n this.tablePageSizeChangeEvent.emit(this.tablePageSize);\n } else {\n this.isFirstEntrySearchLocal = true;\n }\n this.initTable();\n })\n .catch((err) => {\n this.tableCacheOption = new TableCacheOption();\n this.tableCacheOption.pageSize = this.tablePageSize;\n this.initTable();\n });\n }\n\n initTable() {\n this.showTable = false;\n if (!this.uuid) {\n throw \"hd-table缺失uuid参数,请使用编辑器插件生成并给hd-table赋予uuid属性\";\n }\n if (this.judgeRepeatCols()) {\n this.dealCols();\n this.setCols();\n this.dealScroll();\n this.dealOperateBtn();\n this.showTable = true;\n }\n }\n\n // 设置列点击取消\n cancelDropdown(): void {\n this.isDropdownVisible = false;\n this.hideListNodes = JSON.parse(JSON.stringify(this.cancelHideListNodes));\n this.nowListNodes = JSON.parse(JSON.stringify(this.cancelNowListNodes));\n }\n\n // 点击触发设置列\n confirmDropdown(): void {\n // 临时存放下,取消的时候恢复原来的状态 深拷贝下对象数组\n this.cancelHideListNodes = JSON.parse(JSON.stringify(this.hideListNodes));\n this.cancelNowListNodes = JSON.parse(JSON.stringify(this.nowListNodes));\n this.isDropdownVisible = true;\n }\n\n submitGrids() {\n this.tableCacheOption.cols = [];\n this.nowListNodes.forEach((item) => {\n this.tableCacheOption.cols.push(item.title);\n });\n this.saveTableCacheOption();\n this.initTable();\n this.isDropdownVisible = false;\n }\n\n // 从缓存设置列\n setCols() {\n this.showListNodes = false;\n this.nowListNodes = [];\n this.hideListNodes = [];\n if (this.hasColsCache()) {\n let { notIncols, incols } = this.tableColsCache.reduce(\n (acc, item) => {\n if (this.tableCacheOption.cols.includes(item.title)) {\n acc.incols.push(item);\n } else {\n acc.notIncols.push(item);\n }\n return acc;\n },\n { notIncols: [], incols: [] },\n );\n incols.sort((a, b) => {\n return (\n this.tableCacheOption.cols.indexOf(a.title) -\n this.tableCacheOption.cols.indexOf(b.title)\n );\n });\n this.tableCols = incols.concat(notIncols);\n }\n\n this.tableCols.forEach((element, index) => {\n if (this.hasColsCache()) {\n element.isShow = this.tableCacheOption.cols.includes(element.title)\n ? true\n : false;\n if (element.isShow) {\n this.nowListNodes.push({\n title: element.title,\n key: element.title,\n disabled: element.fixed ? true : false,\n // selectable: false,\n checked: this.tableCacheOption.cols.includes(element.title)\n ? true\n : false,\n });\n } else {\n this.hideListNodes.push({\n title: element.title,\n key: element.title,\n disabled: element.fixed ? true : false,\n // selectable: false,\n checked: this.tableCacheOption.cols.includes(element.title)\n ? true\n : false,\n });\n }\n } else {\n element.isShow = true;\n this.nowListNodes.push({\n title: element.title,\n key: element.title,\n checked: true,\n // selectable: false,\n disabled: element.fixed ? true : false,\n });\n }\n });\n\n // 调整列宽为缓存宽度\n if (\n this.tableCacheOption &&\n this.tableCacheOption.colWidths &&\n this.tableCacheOption.colWidths.size !== 0\n ) {\n this.tableCols.forEach((col) => {\n if (this.tableCacheOption.colWidths.has(col.title)) {\n col.width = this.tableCacheOption.colWidths.get(col.title);\n }\n });\n }\n\n this.dealCols();\n setTimeout(() => {\n this.showListNodes = true;\n }, 0);\n }\n\n // 拖拽操作\n beforeDrop = (arg: NzFormatBeforeDropEvent): Observable<boolean> => {\n if (\n arg.node.origin.disabled ||\n !arg.dragNode.origin.checked ||\n arg.pos === 0\n ) {\n return of(false);\n } else {\n let node: TreeGrid = new TreeGrid();\n node.checked = arg.dragNode.origin.checked;\n node.disabled = arg.dragNode.origin.disabled;\n node.expanded = arg.dragNode.origin.expanded;\n node.isLeaf = arg.dragNode.origin.isLeaf;\n node.key = arg.dragNode.origin.key;\n node.selectable = arg.dragNode.origin.selectable;\n node.title = arg.dragNode.origin.title;\n // 拖拽元素下标\n let dragNodeIndex = this.nowListNodes.findIndex((item) => {\n return item.title == arg.dragNode.origin.title;\n });\n // 目标位置的下标\n let nodeIndex =\n this.nowListNodes.findIndex((item) => {\n return item.title == arg.node.origin.title;\n }) + (arg.pos === -1 ? 0 : arg.pos);\n this.nowListNodes.splice(nodeIndex, 0, node);\n this.nowListNodes.splice(\n nodeIndex >= dragNodeIndex ? dragNodeIndex : dragNodeIndex + 1,\n 1,\n );\n return of(true).pipe(delay(100));\n }\n };\n\n moveElementNearby(arr, elementToMoveTitle, targetElementTitle, pos) {\n const tmpArray = JSON.parse(JSON.stringify(arr));\n const targetIndex = tmpArray.findIndex(\n (item) => item.title === targetElementTitle,\n );\n const elementIndex = tmpArray.findIndex(\n (item) => item.title === elementToMoveTitle,\n );\n const newIndex = pos < 0 ? targetIndex + pos : targetIndex;\n // 移除目标元素,并插入到新的位置\n const removedElement = tmpArray.splice(elementIndex, 1);\n tmpArray.splice(newIndex + 1, 0, removedElement[0]);\n return tmpArray;\n }\n\n // 勾选操作\n checkAction(event: NzFormatEmitEvent): void {\n // 勾选只有在hideListNodes,取消勾选只有在nowListNodes\n if (event.node.origin.checked) {\n let node: TreeGrid = new TreeGrid();\n node = this.hideListNodes.find((item) => {\n return item.title === event.node.origin.title;\n });\n node.checked = true;\n // 找到第一个fixed属性为right的title,找到插入元素的位置\n let title = null;\n for (let i = this.tableColsCache.length - 1; i >= 0; i--) {\n if (this.tableColsCache[i].fixed === \"right\") {\n title = this.tableColsCache[i].title;\n break;\n }\n }\n let temporaryNodeList = this.nowListNodes.slice(0);\n if (!title) {\n temporaryNodeList.push(node);\n } else {\n const index = this.nowListNodes.findIndex(\n (node) => node.title === title,\n );\n temporaryNodeList.splice(index, 0, node);\n }\n this.nowListNodes = temporaryNodeList;\n this.hideListNodes = this.hideListNodes.filter((item) => {\n return item.title !== event.node.origin.title;\n });\n } else {\n // if (this.hideListNodes.length === 0 && this.tableCacheOption && this.tableCacheOption.cols) {\n // this.hideListNodes = this.getHideListNodes();\n // }\n let temporaryNodeList = this.hideListNodes.slice(0);\n this.nowListNodes.forEach((item) => {\n if (item.title === event.node.origin.title) {\n const innerItem = JSON.parse(JSON.stringify(item));\n innerItem.checked = false;\n temporaryNodeList.push(innerItem);\n }\n });\n this.hideListNodes = temporaryNodeList;\n\n // 为了防止未选择的数组顺序因为push方法而改变,通过初始数据获取显示的字段列表\n this.nowListNodes = this.nowListNodes.filter((item) => {\n return item.title !== event.node.origin.title;\n });\n }\n }\n\n // 防止未选择的数组顺序因为push方法而改变,从初始数据获取隐藏未显示的字段列表\n getHideListNodes(): Array<TreeGrid> {\n let temporaryNodeList: Array<TreeGrid> = [];\n // 从tableColsCache里面找没有在storage里面出现的字段,组成hideList\n this.tableColsCache.forEach((item) => {\n if (!this.tableCacheOption.cols.includes(item.title)) {\n let nodeItem: TreeGrid = new TreeGrid();\n nodeItem.title = item.title;\n nodeItem.key = item.title;\n nodeItem.disabled = item.fixed ? true : false;\n nodeItem.checked = false;\n temporaryNodeList.push(nodeItem);\n }\n });\n return temporaryNodeList;\n }\n\n dealCols() {\n if (!this.tableCols[0].minWidth) {\n this.tableCols.forEach((item) => {\n const span = document.createElement(\"span\");\n span.style.visibility = \"hidden\";\n span.style.position = \"absolute\";\n span.style.whiteSpace = \"nowrap\";\n span.style.fontSize = \"14px\";\n span.style.display = \"inline-block\"; // 将样式修改为 inline-block\n span.innerText = item.title;\n document.body.appendChild(span);\n item.minWidth = span.offsetWidth + 16;\n span.style.display = \"none\";\n document.body.removeChild(span);\n });\n }\n // 处理左右吸附的数据在数组中的位置\n const leftFixedCols = this.tableCols.filter((col) => col.fixed === \"left\");\n const rightFixedCols = this.tableCols.filter(\n (col) => col.fixed === \"right\",\n );\n const normalCols = this.tableCols.filter((col) => !col.fixed);\n const resultCols = leftFixedCols.concat(normalCols).concat(rightFixedCols);\n this.tableCols = resultCols;\n if (!this.tableColsCache || this.tableColsCache.length === 0) {\n // 缓存一下表格的数据\n this.tableColsCache = [...this.tableCols];\n }\n }\n\n normalizeTableCacheOption() {\n if (!this.tableCacheOption.colWidths) {\n this.tableCacheOption.colWidths = new Map<string, number>();\n } else if (!(this.tableCacheOption.colWidths instanceof Map)) {\n const colWidths = new Map<string, number>();\n Object.keys(this.tableCacheOption.colWidths).forEach((key) => {\n colWidths.set(key, (this.tableCacheOption.colWidths as any)[key]);\n });\n this.tableCacheOption.colWidths = colWidths;\n }\n }\n\n private hasColsCache(): boolean {\n return !!(this.tableCacheOption && this.tableCacheOption.cols && this.tableCacheOption.cols.length > 0);\n }\n\n saveTableCacheOption() {\n this.localforage.setItem(\n \"hd-table_\" +\n this.userSession.userCode +\n \"_\" +\n this.localtionTmp +\n \"_\" +\n this.uuid,\n this.tableCacheOption,\n );\n }\n\n judgeRepeatCols() {\n for (let i = 0; i < this.tableCols.length; i++) {\n for (let j = i + 1; j < this.tableCols.length; j++) {\n if (this.tableCols[i].title === this.tableCols[j].title) {\n throw `hd-table组件中列名 ${this.tableCols[i].title} 重复`;\n }\n }\n }\n return true;\n }\n\n onResize({ width }: NzResizeEvent, col: HdTableColumn): void {\n this.normalizeTableCacheOption();\n let tempWidth = 0;\n if (width > col.minWidth) {\n tempWidth = width;\n } else {\n tempWidth = col.minWidth;\n }\n this.tableCacheOption.colWidths.set(col.title, tempWidth);\n this.saveTableCacheOption();\n this.tableCols = this.tableCols.map((e) =>\n e.title === col.title ? { ...e, width: tempWidth } : e,\n );\n this.dealScroll();\n }\n\n dealOperateBtn() {\n let operateCol = this.tableCols.find((col) => col.title === \"操作\") || null;\n if (operateCol) {\n let textStr = \"\";\n operateCol.btnList.forEach((btn) => {\n if (!btn.isRepeat) {\n textStr += btn.name;\n }\n });\n\n const span = document.createElement(\"a\");\n span.style.visibility = \"hidden\";\n span.style.position = \"absolute\";\n span.style.whiteSpace = \"nowrap\";\n span.style.fontSize = \"14px\";\n span.style.display = \"inline-block\"; // 将样式修改为 inline-block\n span.innerText = textStr;\n document.body.appendChild(span);\n operateCol.width =\n span.offsetWidth +\n (operateCol.btnList.filter((item) => !item.isRepeat).length - 1) * 4 +\n 16;\n span.style.display = \"none\";\n document.body.removeChild(span);\n }\n }\n\n triggerEvent(fn: any, event: any) {\n if (fn) {\n fn(event);\n }\n }\n\n needShowConfirm(btn: OperateBtn, data: any): boolean {\n if (typeof btn.showConfirm === \"function\") {\n return btn.showConfirm(data);\n }\n return !!btn.showConfirm;\n }\n\n dealScroll() {\n let colWidth = 0;\n if (this.showSelected) {\n colWidth += 40;\n }\n this.tableCols.forEach((item) => {\n if (!item.width) {\n item.width = ColWidth.fixColWidth;\n }\n if (item.isShow) {\n item.fixedWidth = colWidth;\n colWidth += item.width;\n }\n });\n\n if (this.tableTotal) {\n this.scroll = {\n x: \"1px\",\n y: \"calc(100vh - 180px)\",\n };\n } else {\n this.scroll = {\n x: \"1px\",\n y: \"calc(100vh - 140px)\",\n };\n }\n }\n\n isTextOverflow(text: string, maxWidth: number): boolean {\n const cachedWidth = this.textWidthCache[text];\n if (cachedWidth !== undefined) {\n return cachedWidth + 15 >= maxWidth;\n }\n\n const span = document.createElement(\"span\");\n span.style.visibility = \"hidden\";\n span.style.position = \"absolute\";\n span.style.whiteSpace = \"nowrap\";\n span.style.fontSize = \"14px\";\n span.style.display = \"inline-block\"; // 将样式修改为 inline-block\n span.innerText = text;\n document.body.appendChild(span);\n const isOverflow = span.offsetWidth + 15 >= maxWidth;\n this.textWidthCache[text] = span.offsetWidth;\n span.style.display = \"none\";\n document.body.removeChild(span);\n return isOverflow;\n }\n\n // 表格勾选逻辑\n currentPageDataChange($event: any): void {\n this.listOfDisplayData = $event;\n this.refreshStatus();\n if (!this.isCrossPageSelectLocal) {\n this.resetStatus();\n }\n }\n\n search(reset: boolean) {\n this.tableCacheOption.pageSize = this.tablePageSize;\n this.saveTableCacheOption();\n if (reset) {\n this.tablePageSizeChange.emit(this.tablePageSize);\n this.tablePageSizeChangeEvent.emit(this.tablePageSize);\n } else {\n this.tablePageIndexChange.emit(this.tablePageIndex);\n // 触发父组件查询事件\n this.tableSearchEvent.emit(reset);\n }\n }\n\n resetStatus() {\n this.isAllDisplayDataChecked = false;\n this.isIndeterminate = false;\n this.mapOfCheckedId = {};\n this.mapOfCheckList = {};\n this.selectEvent.emit([]);\n }\n\n refreshStatus(event: boolean = false, data: any = null): void {\n if (event && data) {\n !this.mapOfCheckList[data[this.selectField]] &&\n (this.mapOfCheckList[data[this.selectField]] = data);\n } else if (!event && data) {\n this.mapOfCheckList[data[this.selectField]] &&\n delete this.mapOfCheckList[data[this.selectField]];\n }\n this.isAllDisplayDataChecked = this.listOfDisplayData.every(\n (item) => this.mapOfCheckedId[item[this.selectField]],\n );\n this.isIndeterminate =\n this.listOfDisplayData.some(\n (item) => this.mapOfCheckedId[item[this.selectField]],\n ) && !this.isAllDisplayDataChecked;\n // 触发select事件\n if (this.selectEvent) {\n const selectedList: Array<any> = Object.values(this.mapOfCheckList);\n this.selectEvent.emit(selectedList);\n }\n // 如果数据为空,则清空勾选标识\n if (this.tableData.content.length === 0) {\n this.isAllDisplayDataChecked = false;\n }\n }\n\n checkAll(value: boolean): void {\n this.listOfDisplayData.forEach((item) => {\n if (value) {\n !this.mapOfCheckList[item[this.selectField]] &&\n (this.mapOfCheckList[item[this.selectField]] = item);\n } else {\n this.mapOfCheckList[item[this.selectField]] &&\n delete this.mapOfCheckList[item[this.selectField]];\n }\n\n this.mapOfCheckedId[item[this.selectField]] = value;\n });\n this.refreshStatus();\n }\n\n judgeColEmpty(str: any) {\n if (str || str === 0) {\n return str;\n } else {\n return \"<空>\";\n }\n }\n\n getStateField(col: HdTableColumn): string {\n if (col.isState) {\n return col.name as string;\n }\n return col.stateField || 'state';\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule, NO_ERRORS_SCHEMA } from '@angular/core';\nimport { NzDropDownModule } from 'ng-zorro-antd/dropdown';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { NzPopconfirmModule } from 'ng-zorro-antd/popconfirm';\nimport { NzResizableModule } from 'ng-zorro-antd/resizable';\nimport { NzTableModule } from 'ng-zorro-antd/table';\nimport { NzToolTipModule } from 'ng-zorro-antd/tooltip';\nimport { NzTreeModule } from 'ng-zorro-antd/tree';\nimport { HdButtonGroupModule } from '../hd-button-group/hd-button-group.module';\nimport { HdButtonModule } from '../hd-button/hd-button.module';\nimport { HdSpaceModule } from '../hd-space/hd-space.module';\nimport { HdStatusModule } from '../hd-status/hd-status.module';\nimport { CommonSessionService } from '../service/common-session.service';\nimport { HdTableComponent } from './hd-table.component';\n@NgModule({\n imports: [\n CommonModule,\n NzTableModule,\n HdSpaceModule,\n HdStatusModule,\n HdButtonModule,\n HdButtonGroupModule,\n NzToolTipModule,\n NzPopconfirmModule,\n NzResizableModule,\n NzDropDownModule,\n NzTreeModule,\n NzIconModule\n ],\n declarations: [HdTableComponent],\n providers: [CommonSessionService],\n exports: [HdTableComponent],\n schemas: [NO_ERRORS_SCHEMA]\n})\nexport class HdTableModule { }\n","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'hd-tip',\n templateUrl: './hd-tip.component.html',\n styleUrls: ['./hd-tip.component.less']\n})\nexport class HdTipComponent implements OnInit {\n @Input() showIcon: boolean = true;\n @Input() fontSize: number;\n @Input() title: string;\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { HdTipComponent } from './hd-tip.component';\nimport {NgZorroAntdModule} from 'ng-zorro-antd';\n\n@NgModule({\n imports: [\n CommonModule,\n NgZorroAntdModule\n ],\n exports: [HdTipComponent],\n declarations: [HdTipComponent]\n})\nexport class HdTipModule { }\n","import { HdButtonGroupModule } from './hd-button-group/hd-button-group.module';\nimport { HdButtonModule } from './hd-button/hd-button.module';\n\nimport { HdDetailFormModule } from './hd-detail-form/hd-detail-form.module';\nimport { HdDetailLinesModule } from './hd-detail-lines/hd-detail-lines.module';\nimport { HdDetailLinesPageModule } from './hd-detail-lines-page/hd-detail-lines-page.module';\nimport { HdDetailTipModule } from './hd-detail-tip/hd-detail-tip.module';\n\nimport { HdFilterModule } from './hd-filter/hd-filter.module';\nimport { HdFormLinesModule } from './hd-form-lines/hd-form-lines.module';\nimport { HdFormModule } from './hd-form/hd-form.module';\n\nimport { NgModule } from '@angular/core';\nimport { HdCurrentTableModule } from './hd-current-table/hd-current-table.module';\nimport { HdLogModule } from './hd-log/hd-log.module';\nimport { HdPopconfirmModule } from './hd-popconfirm/hd-popconfirm.module';\nimport { HdSpaceModule } from './hd-space/hd-space.module';\nimport { HdStatusModule } from './hd-status/hd-status.module';\nimport { HdTableModule } from './hd-table/hd-table.module';\nimport { HdTipModule } from './hd-tip/hd-tip.module';\n@NgModule({\n exports: [\n HdButtonModule,\n HdButtonGroupModule,\n\n HdDetailFormModule,\n HdDetailLinesModule,\n HdDetailLinesPageModule,\n HdDetailTipModule,\n\n HdFilterModule,\n HdFormModule,\n HdFormLinesModule,\n\n HdSpaceModule,\n HdStatusModule,\n HdCurrentTableModule,\n HdTableModule,\n HdTipModule,\n HdPopconfirmModule,\n HdLogModule\n ]\n})\n\nexport class HdComponentModule {\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { HdComponentModule } from \"./hd-component.module\";\nimport { HdLogComponent } from './hd-log/hd-log.component';\n@NgModule({\n imports: [CommonModule],\n exports: [HdComponentModule],\n providers: [],\n entryComponents: [HdLogComponent]\n})\nexport class FantasyNgzorroModule { }\n","import { HdOption } from \"../model/common-type\";\n\n// 表格行\nexport class TableColumn {\n label: string; // 文本\n name: string; // 字段名称\n value?: string | boolean | Array<string | Date> | null = null; // 值 不传默认为null\n selectList?: Array<HdOption>; // 控件为Select时,选项列表\n // 组件内部成员\n show?: boolean;\n}\n\n//\nexport class TableTotalOption {\n columnNumber: number; // 总列数\n insertIndex: number; // 插入下标\n insertName: string; // 插入字段\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class HdDetailFormService {\n\n constructor() { }\n\n}\n","export class TotalOption {\n insertIndex: number; // 插入下标\n insertValue: any; // 插入值\n align?: string; // 靠左还是靠右\n showDecimal?: boolean; // 是否显示小数位\n isHide?: boolean; // 是否隐藏, 这里只针对列会同步消失的场景\n}\n","import { Injectable } from '@angular/core';\nimport { SelectOption, CascaderOption, InputNumber } from '../model/common-type';\n\n// 控件列表\nexport class Filter {\n type: FilterListType;\n label: string; // 文本\n name: string; // 字段名称\n placeholder?: string; // 输入框提示文案\n value?: string | boolean | number | Array<string | Date> | null = null; // 值 不传默认为null\n // 组件内部成员\n show?: boolean;\n selectOption?: SelectOption; // 控件为Select时,选项列表\n inputNumber?: InputNumber = new InputNumber(); // number组件的min、max、step\n onSearchEvent?: Function; // select选择器搜索事件 可用于更新备选集合\n onChangeEvent?: Function; // 控件的值改变事件 可用于控件间联动\n onBlurEvent?: Function; // 控件失去焦点事件\n hdDisabledDate?: Function; // date-picker组件不可选择的日期\n showTime?: boolean = false; // 日期选择器是否包含时间\n require?: boolean = false; // 是否必填\n cascaderOption?: CascaderOption; // 级联选择器配置\n onChangeEventDebounceTime?: number; // change事件防抖\n onSearchEventEventDebounceTime?: number; // search事件防抖\n}\n\n\n// 控件类型\nexport enum FilterListType {\n Input, // 输入框\n Select, // 单项选择器\n Date, // 单个日期选择\n DateRange, // 日期范围选择\n MultipleSelect, // 多选\n Cascader, // 级联选择\n Month, // 月份选择\n InputNumber // 数字输入\n}\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class HdFilterService {\n\n constructor() {\n }\n\n}\n","export const StaticConst = {\n MaxPageSize: 99999999\n};\n","import { FormItem } from './hd-form/hd-form.service';\nimport { round } from 'lodash';\n// 工具类\nexport const Utils = {\n /**\n * 填充select控件选项\n * @param formList 入参数组 Array<any>\n * @param name 需要填充options的属性名称\n * @param options 选项列表\n */\n fillSelectOption(formList: Array<any>, name: string, options: Array<any>) {\n const returnData = formList;\n if (!returnData || !returnData.length) {\n return returnData;\n }\n const length = formList.length;\n for (let i = 0; i < length; i++) {\n if (returnData[i].name === name) {\n returnData[i].selectOption.selectList = options;\n }\n }\n return returnData;\n },\n\n /**\n * 填充FormItem数组:针对入参list的每一个FormItem,判断obj中是否有对应的name字段,如果有,则填充value。\n * @param list 入参数组 Array<FormItem>\n * @param obj 需要填充到list的属性\n */\n fillArrayFormItem(list: Array<FormItem>, obj: Object) {\n const returnData = [];\n if (!list || !list.length) {\n return returnData;\n }\n const length = list.length;\n for (let i = 0; i < length; i++) {\n if (obj[list[i].name]) {\n list[i].value = obj[list[i].name];\n }\n }\n return list;\n },\n\n /**\n * 数组转换成选择器的选项数组\n * @param list 入参数组 字符串数组或对象数组\n * @param option 转换选项\n * 注:list为字符串数组,option不需要传,按照标准的label、value转换\n */\n arrayToSelectOptionList(list: Array<any>, option?: {\n value: string,\n label: string,\n valueTip?: string,\n labelTip?: string\n }) {\n const returnData = [];\n if (!list || !list.length) {\n return returnData;\n }\n if (option) {\n if (option.labelTip && option.valueTip) {\n list.forEach((item) => {\n const returnItem: any = item;\n returnItem.label = item[option.label];\n returnItem.value = item[option.value];\n if (option.valueTip) {\n returnItem[option.valueTip] = item[option.value];\n }\n if (option.labelTip) {\n returnItem[option.labelTip] = item[option.label];\n }\n returnData.push(returnItem);\n });\n } else {\n list.forEach((item) => {\n const returnItem: any = item;\n returnItem.label = item[option.label];\n returnItem.value = item[option.value];\n returnData.push(returnItem);\n });\n }\n } else {\n list.forEach((item) => {\n const returnItem: any = {};\n returnItem.label = item;\n returnItem.value = item;\n returnData.push(returnItem);\n });\n }\n return returnData;\n },\n\n /**\n * 求和\n * @param nums 数组\n * @param precision 精度\n */\n add(nums: number[], precision: number = 2) {\n if (!Array.isArray(nums)) {\n throw new Error('参数必须是数组');\n }\n if (nums.some(num => typeof num !== 'number')) {\n throw new Error('数组元素必须是数字');\n }\n let result = 0;\n for (const num of nums) {\n result += num;\n }\n return round(result, precision);\n },\n\n /**\n * 减法\n * @param nums 数组\n * @param precision 精度\n */\n subtract(nums: number[], precision: number = 2) {\n if (!Array.isArray(nums)) {\n throw new Error('参数必须是数组');\n }\n if (nums.some(num => typeof num !== 'number')) {\n throw new Error('数组元素必须是数字');\n }\n if (nums.length < 2) {\n throw new Error('减法入参数量至少要2个!');\n }\n let result = nums.shift();\n for (const num of nums) {\n result -= num;\n }\n return round(result, precision);\n },\n\n /**\n * 乘法\n * @param nums 数组\n * @param precision 精度\n */\n multiply(nums: number[], precision: number = 2) {\n if (!Array.isArray(nums)) {\n throw new Error('参数必须是数组');\n }\n if (nums.some(num => typeof num !== 'number')) {\n throw new Error('数组元素必须是数字');\n }\n let result = 1;\n for (const num of nums) {\n result = result * num;\n }\n return round(result, precision);\n },\n\n /**\n * 除法\n * @param nums 数组\n * @param precision 精度\n */\n divide(nums: number[], precision: number = 2) {\n if (!Array.isArray(nums)) {\n throw new Error('参数必须是数组');\n }\n if (nums.some(num => typeof num !== 'number')) {\n throw new Error('数组元素必须是数字');\n }\n if (nums.length < 2) {\n throw new Error('除法入参数量至少要2个!');\n }\n let result = nums.shift();\n for (const num of nums) {\n if (num === 0) {\n throw new Error('除数不能为0!');\n }\n result = result / num;\n }\n return round(result, precision);\n }\n};\n"],"names":["Component","ContentChild","NgModule","CommonModule","FormsModule","NgZorroAntdModule","Injectable","EventEmitter","Input","Output","tslib_1.__decorate","InputBoolean","ReactiveFormsModule","tslib_1.__values","round","moveItemInArray","NzTableModule","DragDropModule","NO_ERRORS_SCHEMA","Subject","debounceTime","tslib_1.__spread","FormBuilder","NzInputNumberComponent","NzSelectComponent","ElementRef","NzDatePickerComponent","NzRangePickerComponent","NzTimePickerComponent","Validators","ChangeDetectorRef","ViewChildren","NzModalService","of","delay","localforage.createInstance","localforage.INDEXEDDB","NzToolTipModule","NzPopconfirmModule","NzResizableModule","NzDropDownModule","NzTreeModule","NzIconModule"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fantasy-ngzorro.umd.js","sources":["../../../node_modules/tslib/tslib.es6.js","ng://fantasy-ngzorro/hd-button-group/hd-button-group.component.ts","ng://fantasy-ngzorro/hd-button-group/hd-button-group.module.ts","ng://fantasy-ngzorro/hd-button/hd-button.service.ts","ng://fantasy-ngzorro/hd-button/hd-button.component.ts","ng://fantasy-ngzorro/hd-button/hd-button.module.ts","ng://fantasy-ngzorro/hd-detail-form/hd-detail-form.component.ts","ng://fantasy-ngzorro/hd-detail-form/hd-detail-form.module.ts","ng://fantasy-ngzorro/hd-space/hd-space.service.ts","ng://fantasy-ngzorro/hd-space/hd-space.component.ts","ng://fantasy-ngzorro/hd-space/hd-space.module.ts","ng://fantasy-ngzorro/model/common-type.ts","ng://fantasy-ngzorro/hd-detail-lines/hd-detail-lines.component.ts","ng://fantasy-ngzorro/hd-detail-lines/hd-detail-lines.module.ts","ng://fantasy-ngzorro/hd-detail-lines-page/hd-detail-lines-page.component.ts","ng://fantasy-ngzorro/hd-detail-lines-page/hd-detail-lines-page.module.ts","ng://fantasy-ngzorro/hd-status/hd-status.service.ts","ng://fantasy-ngzorro/hd-detail-tip/hd-detail-tip.component.ts","ng://fantasy-ngzorro/hd-detail-tip/hd-detail-tip.module.ts","ng://fantasy-ngzorro/hd-filter/hd-filter.component.ts","ng://fantasy-ngzorro/hd-filter/hd-filter.module.ts","ng://fantasy-ngzorro/hd-form-lines/hd-form-lines.service.ts","ng://fantasy-ngzorro/hd-form-lines/hd-form-lines.component.ts","ng://fantasy-ngzorro/hd-form-lines/hd-form-lines.module.ts","ng://fantasy-ngzorro/hd-form/hd-form.service.ts","ng://fantasy-ngzorro/hd-form/hd-form.component.ts","ng://fantasy-ngzorro/hd-form/hd-form.module.ts","ng://fantasy-ngzorro/hd-current-table/hd-current-table.component.ts","ng://fantasy-ngzorro/hd-current-table/hd-current-table.module.ts","ng://fantasy-ngzorro/hd-log/hd-log.component.ts","ng://fantasy-ngzorro/hd-log/hd-log.service.ts","ng://fantasy-ngzorro/hd-log/hd-log.module.ts","ng://fantasy-ngzorro/hd-popconfirm/hd-popconfirm.component.ts","ng://fantasy-ngzorro/hd-popconfirm/hd-popconfirm.module.ts","ng://fantasy-ngzorro/hd-status/hd-status.component.ts","ng://fantasy-ngzorro/hd-status/hd-status.module.ts","ng://fantasy-ngzorro/service/common-session.service.ts","ng://fantasy-ngzorro/model/colWidth.ts","ng://fantasy-ngzorro/hd-table/hd-table.service.ts","ng://fantasy-ngzorro/hd-table/hd-table.component.ts","ng://fantasy-ngzorro/hd-table/hd-table.module.ts","ng://fantasy-ngzorro/hd-tip/hd-tip.component.ts","ng://fantasy-ngzorro/hd-tip/hd-tip.module.ts","ng://fantasy-ngzorro/hd-component.module.ts","ng://fantasy-ngzorro/fantasy-ngzorro.module.ts","ng://fantasy-ngzorro/hd-current-table/hd-current-table.service.ts","ng://fantasy-ngzorro/hd-detail-form/hd-detail-form.service.ts","ng://fantasy-ngzorro/hd-detail-lines/hd-detail-lines.service.ts","ng://fantasy-ngzorro/hd-filter/hd-filter.service.ts","ng://fantasy-ngzorro/model/staticConst.ts","ng://fantasy-ngzorro/utils.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { Component, ContentChild, Input, OnInit, TemplateRef } from '@angular/core';\n\n@Component({\n selector: 'hd-button-group',\n templateUrl: './hd-button-group.component.html',\n styleUrls: ['./hd-button-group.component.less']\n})\nexport class HdButtonGroupComponent implements OnInit {\n @ContentChild(\"buttonGroupLeft\", { static: false }) buttonGroupLeft: TemplateRef<any>;\n @ContentChild(\"buttonGroupRight\", { static: false }) buttonGroupRight: TemplateRef<any>;\n\n constructor() { }\n\n ngOnInit() {\n\n }\n}\n","import { HdButtonGroupComponent } from './hd-button-group.component';\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { NgZorroAntdModule } from 'ng-zorro-antd';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n NgZorroAntdModule\n ],\n declarations: [HdButtonGroupComponent],\n exports: [HdButtonGroupComponent]\n})\nexport class HdButtonGroupModule { }\n","import { Injectable } from '@angular/core';\n\nexport enum ButtonType {\n primary = 'primary',\n dashed = 'dashed',\n danger = 'danger',\n default = 'default',\n link = 'link',\n submit = 'submit',\n // 增加类型\n reset = 'reset',\n add = 'add'\n}\n\nexport enum ButtonSize {\n normal = 'normal',\n small = 'small'\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class HdButtonService {\n\n constructor() { }\n\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { InputBoolean } from 'ng-zorro-antd';\nimport { ButtonSize, ButtonType } from './hd-button.service';\n@Component({\n selector: 'hd-button',\n templateUrl: './hd-button.component.html',\n styleUrls: ['./hd-button.component.less']\n})\nexport class HdButtonComponent implements OnInit {\n\n // 默认default\n @Input() type: ButtonType = ButtonType.default;\n @Input() size: ButtonSize = ButtonSize.normal;\n @Input() @InputBoolean() loading: boolean;\n @Input() @InputBoolean() disabled: boolean = false;\n @Output() clickAction = new EventEmitter<any>();\n @Output() nzOnConfirm = new EventEmitter<any>();\n constructor() { }\n\n ngOnInit() {\n if ((this.loading === false || this.loading === true) && this.clickAction.observers.length === 0 && this.nzOnConfirm.observers.length === 0) {\n throw '存在loading效果的hd-button组件禁止使用click绑定点击事件,请使用clickAction绑定!';\n }\n if (this.type === 'submit') {\n throw '禁止使用submit类型的按钮,请使用普通按钮+click事件触发表单提交!';\n }\n }\n\n /** loading 时一并禁用,避免与外部 [disabled] 绑定互相翻转状态 */\n get isDisabled(): boolean {\n return this.disabled || this.loading;\n }\n\n innerClickAction(option: any) {\n // loading 状态下,不允许触发点击事件\n if (this.loading) {\n return;\n }\n this.clickAction.emit(option);\n }\n}\n","import { HdButtonComponent } from './hd-button.component';\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { NgZorroAntdModule } from 'ng-zorro-antd';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n NgZorroAntdModule\n ],\n declarations: [HdButtonComponent],\n exports: [HdButtonComponent]\n})\nexport class HdButtonModule { }\n","import { Component, Input, OnInit, SimpleChange } from '@angular/core';\nimport { HdOption } from '../model/common-type';\n\n@Component({\n selector: 'hd-detail-form',\n templateUrl: './hd-detail-form.component.html',\n styleUrls: ['./hd-detail-form.component.less']\n})\nexport class HdDetailFormComponent implements OnInit {\n @Input() formCols: Array<HdOption> = new Array();\n /** 列数,支持数字或响应式配置,默认按屏幕宽度自适应 */\n @Input() nzColumn: number | { xxl?: number; xl?: number; lg?: number; md?: number; sm?: number; xs?: number } =\n { xxl: 4, xl: 3, lg: 3, md: 3, sm: 2, xs: 1 };\n\n constructor() { }\n\n ngOnInit() {\n if (this.formCols && this.formCols.length > 0) {\n // 剔除掉formCols里面不需要显示的内容\n this.formCols = this.formCols.filter(item => !item.hide);\n }\n }\n\n ngOnChanges(changes: SimpleChange) {\n if (changes['formCols'] && JSON.stringify(changes['formCols'].currentValue) !== JSON.stringify(changes['formCols'].previousValue)) {\n if (this.formCols && this.formCols.length > 0) {\n // 剔除掉formCols里面不需要显示的内容\n this.formCols = this.formCols.filter(item => !item.hide);\n }\n }\n }\n\n triggerEvent(fn: any) {\n if (fn) {\n fn(event);\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { HdDetailFormComponent } from './hd-detail-form.component';\nimport { NgZorroAntdModule } from 'ng-zorro-antd';\n\n@NgModule({\n imports: [\n CommonModule,\n NgZorroAntdModule\n ],\n exports: [HdDetailFormComponent],\n declarations: [HdDetailFormComponent]\n})\nexport class HdDetailFormModule { }\n","import { Injectable } from '@angular/core';\n\nexport enum SpaceType {\n row = 'row',\n column = 'column'\n}\n\nexport class Style {\n background: string\n width: string\n height: string\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class HdSpaceService {\n\n constructor() { }\n\n}\n","import { Component, Input, OnInit, Output } from '@angular/core';\nimport { Style, SpaceType } from \"./hd-space.service\"; \n\n@Component({\n selector: 'hd-space',\n templateUrl: './hd-space.component.html',\n styleUrls: ['./hd-space.component.less']\n})\nexport class HdSpaceComponent implements OnInit {\n @Input() type: SpaceType = SpaceType.row; \n @Input() size: number; \n @Input() background: string = 'inherit'; \n\n style: Style = new Style();\n\n constructor() { }\n\n ngOnInit() {\n this.style['background'] = this.background;\n if(this.type === SpaceType.row){\n this.style['width'] = '100%';\n this.style['height'] = this.size + 'px';\n }else{\n this.style['height'] = '100%';\n this.style['width'] = this.size + 'px';\n }\n }\n\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { NgZorroAntdModule } from 'ng-zorro-antd';\nimport { HdSpaceComponent } from './hd-space.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n NgZorroAntdModule\n ],\n declarations: [HdSpaceComponent],\n exports: [HdSpaceComponent]\n})\nexport class HdSpaceModule { }\n","export class Page<T> {\n totalPages = 0;\n totalElements = 0;\n pageNumber = 0;\n pageSize = 10;\n hasContent = false;\n hasNext = false;\n content: Array<T> = [];\n}\n\nexport class HdOption {\n label: string;\n value: any;\n color?: string;\n hide?: boolean;\n clickText?: string;\n click?: (value: any) => void;\n}\n\nexport class SelectOption {\n label: string;\n value: string;\n selectList?: Array<any>;\n selectListName?: string;\n showLabelAndValue?: boolean = false;\n hdDropdownMatchSelectWidth?: boolean = false;\n hdServerSearch?: boolean = false;\n hdShowItemCode?: boolean = false; // 是否用[value]label显示选项列表\n tableColumns?: Array<SelectOptionTableColumn>;\n hdShowSearch?: boolean = true;\n hdAllowClear?: boolean = true;\n}\n\nexport class RadioOption {\n label: string;\n value: string;\n optionList?: Array<any>;\n showLabelAndValue?: boolean = false;\n}\n\nexport class CheckboxOption {\n label: string;\n value: string;\n optionList?: Array<any>;\n showLabelAndValue?: boolean = false;\n}\n\nexport class SelectOptionTableColumn {\n width: number;\n label: string; // 这里对应的是列名\n name: string; // 对应selectList里面的name值, 如果有render字段 则去render函数渲染\n icons?: Array<SelectOptionTableColumnIcon>; // 对应的图片名字\n render?: (value: any) => string;\n}\n\nexport class SelectOptionTableColumnIcon {\n iconName: string;\n fieldName: string;\n}\n\nexport class InputNumber {\n min?: number = 0;\n max?: number = 99999999;\n step?: number = 1;\n precision?: number = 4;\n nzFormatter?: Function;\n nzParser?: Function;\n}\n\nexport class CascaderOption {\n options: Array<any>;\n}\n","import { CdkDragDrop, moveItemInArray } from \"@angular/cdk/drag-drop\";\nimport {\n Component,\n ContentChild,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n TemplateRef,\n} from \"@angular/core\";\nimport { round } from \"lodash\";\nimport { InputBoolean } from \"ng-zorro-antd/core\";\nimport { Page } from \"../model/common-type\";\nimport { TotalOption } from \"./hd-detail-lines.service\";\n\n@Component({\n selector: \"hd-detail-lines\",\n templateUrl: \"./hd-detail-lines.component.html\",\n styleUrls: [\"./hd-detail-lines.component.less\"],\n})\nexport class HdDetailLinesComponent implements OnInit, OnChanges {\n @Input() lines: Array<any>;\n @Input() @InputBoolean() showSelected: boolean = false;\n @Input() @InputBoolean() allowDrop: boolean = false;\n @Input() @InputBoolean() showSearch: boolean = false;\n // 不传递这个字段时默认为查询所有字段是否有匹配的\n @Input() searchFields: string[] = [];\n @Input() scroll: { [key: string]: string } = { x: \"1px\" };\n @Input() selectField: string = \"billNumber\";\n @Input() selectedField: string;\n @Output() selectEvent = new EventEmitter();\n @ContentChild(\"detailLineHead\", { static: false })\n detailLineHead: TemplateRef<any>;\n @ContentChild(\"detailLineBody\", { static: false })\n detailLineBody: TemplateRef<any>;\n // 合计区域\n @Input() @InputBoolean() showTotal: boolean = false;\n @Input() totalOption: Array<TotalOption> = [];\n @Input() columnsNumber: number | string = 0;\n @Input() hdFrontPagination: boolean = false;\n totalOptionList = [];\n\n tableData: Page<any> = new Page();\n tableLoading: boolean = false;\n // 表格分页参数\n tablePageIndex: number = 1;\n tablePageSize: number = 10;\n // 表格勾选参数\n isAllDisplayDataChecked = false;\n isIndeterminate = false;\n listOfDisplayData = [];\n listOfAllData = [];\n listOfSelection: Array<any> | TemplateRef<void>;\n mapOfCheckedId: { [key: string]: boolean } = {};\n mapOfCheckList: { [key: string]: any } = {};\n filterStr: string;\n /** 表格实际展示的数据(筛选结果或全量) */\n displayLines: Array<any> = [];\n /** 是否处于筛选状态 */\n isFilterData = false;\n storeFormLinesData: any = []; // 缓存的总的列表数据\n\n constructor() {}\n\n ngOnInit(): void {\n this.syncStoreFromLinesInput();\n this.applyDisplayFromStore();\n this.countSelected();\n this.calculateTotal();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes[\"lines\"]) {\n if (!this.isFilterData) {\n this.syncStoreFromLinesInput();\n this.displayLines = this.lines || [];\n } else if (\n !this.storeFormLinesData ||\n this.storeFormLinesData.length === 0\n ) {\n this.syncStoreFromLinesInput();\n }\n }\n this.countSelected();\n this.calculateTotal();\n }\n\n private syncStoreFromLinesInput(source?: Array<any>): void {\n const data = source || this.lines;\n this.storeFormLinesData = data ? JSON.parse(JSON.stringify(data)) : [];\n }\n\n /** 未筛选时与父组件 lines 同源,避免模板内 ngModel 与父数据脱节 */\n private applyDisplayFromStore(): void {\n if (this.lines && this.lines.length > 0) {\n this.displayLines = this.lines;\n return;\n }\n this.displayLines = this.storeFormLinesData\n ? JSON.parse(JSON.stringify(this.storeFormLinesData))\n : [];\n }\n\n private restoreFromStore(): void {\n this.isFilterData = false;\n this.applyDisplayFromStore();\n this.tableLoading = false;\n this.countSelected();\n this.calculateTotal();\n }\n\n // 全局性的搜索(涵盖页面上所有的可视文字)\n searchLines() {\n // 清空搜索:即使当前展示为空也要能从缓存恢复(对齐 hd-form-lines)\n if (!this.filterStr || !this.filterStr.trim()) {\n if (!this.storeFormLinesData || this.storeFormLinesData.length < 1) {\n return;\n }\n this.tableLoading = true;\n this.restoreFromStore();\n return;\n }\n if (!this.storeFormLinesData || this.storeFormLinesData.length < 1) {\n return;\n }\n this.tableLoading = true;\n const filterValue = this.filterStr.trim().toLowerCase();\n this.isFilterData = true;\n\n const filteredData = this.storeFormLinesData.filter((data: any) => {\n if (!this.searchFields || this.searchFields.length === 0) {\n for (const item of Object.keys(data)) {\n if (\n data[item] &&\n data[item].toString().toLowerCase().includes(filterValue)\n ) {\n return true;\n }\n }\n return false;\n }\n for (const item of this.searchFields) {\n if (\n data[item] &&\n data[item].toString().toLowerCase().includes(filterValue)\n ) {\n return true;\n }\n }\n return false;\n });\n this.displayLines = JSON.parse(JSON.stringify(filteredData));\n this.tableLoading = false;\n this.countSelected();\n this.calculateTotal();\n }\n\n private countSelected(): void {\n if (\n this.showSelected &&\n this.selectedField &&\n this.displayLines &&\n this.displayLines.length\n ) {\n this.displayLines.forEach((item) => {\n if (item[this.selectedField] === true) {\n this.mapOfCheckedId[item[this.selectField]] = true;\n this.mapOfCheckList[item[this.selectField]] = item;\n }\n });\n if (\n this.displayLines.length === Object.keys(this.mapOfCheckList).length\n ) {\n this.isAllDisplayDataChecked = true;\n this.isIndeterminate = true;\n }\n }\n }\n\n get LodashRound() {\n return round;\n }\n\n drop(event: CdkDragDrop<string[]>): void {\n moveItemInArray(this.displayLines, event.previousIndex, event.currentIndex);\n this.displayLines = JSON.parse(JSON.stringify(this.displayLines));\n if (!this.isFilterData) {\n this.storeFormLinesData = JSON.parse(JSON.stringify(this.displayLines));\n }\n }\n\n calculateTotal() {\n // 这里处理合计数据\n if (this.showTotal && this.displayLines && this.displayLines.length) {\n this.totalOptionList = new Array(Number(this.columnsNumber) - 1).fill(\"\");\n this.totalOption.forEach((item) => {\n if (item.insertIndex && (item.insertValue || item.insertValue === 0)) {\n this.totalOptionList[item.insertIndex - 1] = {\n value: item.insertValue,\n align: item.align || \"right\",\n showDecimal: item.showDecimal || false,\n isHide: item.isHide || false,\n };\n }\n });\n }\n }\n\n // 表格勾选逻辑\n currentPageDataChange($event: any): void {\n this.listOfDisplayData = $event;\n this.refreshStatus();\n }\n\n resetStatus() {\n this.isAllDisplayDataChecked = false;\n this.isIndeterminate = false;\n this.mapOfCheckedId = {};\n this.mapOfCheckList = {};\n this.selectEvent.emit([]);\n }\n\n refreshStatus(event: boolean = false, data: any = null): void {\n if (event && data) {\n !this.mapOfCheckList[data[this.selectField]] &&\n (this.mapOfCheckList[data[this.selectField]] = data);\n } else if (!event && data) {\n this.mapOfCheckList[data[this.selectField]] &&\n delete this.mapOfCheckList[data[this.selectField]];\n }\n this.isAllDisplayDataChecked = this.listOfDisplayData.every(\n (item) => this.mapOfCheckedId[item[this.selectField]],\n );\n this.isIndeterminate =\n this.listOfDisplayData.some(\n (item) => this.mapOfCheckedId[item[this.selectField]],\n ) && !this.isAllDisplayDataChecked;\n // 触发select事件\n if (this.selectEvent) {\n this.selectEvent.emit(Object.values(this.mapOfCheckList));\n }\n }\n\n checkAll(value: boolean): void {\n this.listOfDisplayData.forEach((item) => {\n if (value) {\n !this.mapOfCheckList[item[this.selectField]] &&\n (this.mapOfCheckList[item[this.selectField]] = item);\n } else {\n this.mapOfCheckList[item[this.selectField]] &&\n delete this.mapOfCheckList[item[this.selectField]];\n }\n this.mapOfCheckedId[item[this.selectField]] = value;\n });\n this.refreshStatus();\n }\n}\n","import { DragDropModule } from \"@angular/cdk/drag-drop\";\nimport { CommonModule } from \"@angular/common\";\nimport { NgModule, NO_ERRORS_SCHEMA } from \"@angular/core\";\nimport { FormsModule } from \"@angular/forms\";\nimport { HdButtonGroupModule } from \"../hd-button-group/hd-button-group.module\";\nimport { NgZorroAntdModule } from \"ng-zorro-antd\";\nimport { NzTableModule } from \"ng-zorro-antd/table\";\nimport { HdButtonModule } from \"../hd-button/hd-button.module\";\nimport { HdSpaceModule } from \"../hd-space/hd-space.module\";\nimport { HdDetailLinesComponent } from \"./hd-detail-lines.component\";\n\n@NgModule({\n imports: [\n CommonModule,\n NzTableModule,\n DragDropModule,\n FormsModule,\n NgZorroAntdModule,\n HdSpaceModule,\n HdButtonModule,\n HdButtonGroupModule,\n ],\n declarations: [HdDetailLinesComponent],\n exports: [HdDetailLinesComponent],\n schemas: [NO_ERRORS_SCHEMA],\n})\nexport class HdDetailLinesModule {}\n","import { CdkDragDrop, moveItemInArray } from \"@angular/cdk/drag-drop\";\nimport {\n Component,\n ContentChild,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n TemplateRef,\n} from \"@angular/core\";\nimport { round } from \"lodash\";\nimport { InputBoolean } from \"ng-zorro-antd/core\";\nimport { Page } from \"../model/common-type\";\nimport { TotalOption } from \"../hd-detail-lines/hd-detail-lines.service\";\n\n@Component({\n selector: \"hd-detail-lines-page\",\n templateUrl: \"./hd-detail-lines-page.component.html\",\n styleUrls: [\"./hd-detail-lines-page.component.less\"],\n})\nexport class HdDetailLinesPageComponent implements OnInit, OnChanges {\n @Input() lines: Array<any> = [];\n /** 与 hd-table 一致,可传 Page 对象;未传 lines 时使用 tableData.content */\n @Input() tableData: Page<any> = new Page();\n @Input() @InputBoolean() showSelected: boolean = false;\n @Input() @InputBoolean() allowDrop: boolean = false;\n @Input() scroll: { [key: string]: string } = { x: \"1px\" };\n @Input() selectField: string = \"billNumber\";\n @Input() selectedField: string;\n @Input() isCrossPageSelect: boolean;\n @Output() selectEvent = new EventEmitter();\n @ContentChild(\"detailLineHead\", { static: false })\n detailLineHead: TemplateRef<any>;\n @ContentChild(\"detailLineBody\", { static: false })\n detailLineBody: TemplateRef<any>;\n @Input() @InputBoolean() showTotal: boolean = false;\n @Input() totalOption: Array<TotalOption> = [];\n @Input() columnsNumber: number | string = 0;\n @Input() tableLoading: boolean = false;\n @Input() tablePageIndex: number = 1;\n @Input() tablePageSize: number = 10;\n @Output() tablePageIndexChange = new EventEmitter<number>();\n @Output() tablePageSizeChange = new EventEmitter<number>();\n @Output() pageChange = new EventEmitter<void>();\n\n totalOptionList = [];\n isAllDisplayDataChecked = false;\n isIndeterminate = false;\n listOfDisplayData = [];\n mapOfCheckedId: { [key: string]: boolean } = {};\n mapOfCheckList: { [key: string]: any } = {};\n isCrossPageSelectLocal: boolean = false;\n\n constructor() {}\n\n ngOnInit(): void {\n if (this.isCrossPageSelect === true) {\n this.isCrossPageSelectLocal = this.isCrossPageSelect;\n }\n this.countSelected();\n this.calculateTotal();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (\n changes &&\n changes[\"tableData\"] &&\n changes[\"tableData\"][\"currentValue\"] &&\n changes[\"tableData\"][\"previousValue\"]\n ) {\n if (\n changes[\"tableData\"][\"currentValue\"][\"pageSize\"] !==\n changes[\"tableData\"][\"previousValue\"][\"pageSize\"] ||\n changes[\"tableData\"][\"currentValue\"][\"pageNumber\"] !==\n changes[\"tableData\"][\"previousValue\"][\"pageNumber\"]\n ) {\n this.countSelected();\n this.calculateTotal();\n return;\n }\n if (!this.isCrossPageSelectLocal) {\n this.resetStatus();\n }\n }\n this.countSelected();\n this.calculateTotal();\n }\n\n get displayLines(): Array<any> {\n if (this.lines && this.lines.length) {\n return this.lines;\n }\n return (this.tableData && this.tableData.content) || [];\n }\n\n get totalCount(): number {\n if (this.tableData && this.tableData.totalElements != null) {\n return this.tableData.totalElements;\n }\n return this.displayLines.length;\n }\n\n getRowIndex(localIndex: number): number {\n return (this.tablePageIndex - 1) * this.tablePageSize + localIndex;\n }\n\n onPageIndexChange(pageIndex: number): void {\n this.tablePageIndex = pageIndex;\n this.tablePageIndexChange.emit(this.tablePageIndex);\n this.pageChange.emit();\n }\n\n onPageSizeChange(pageSize: number): void {\n this.tablePageSize = pageSize;\n this.tablePageIndex = 1;\n this.tablePageSizeChange.emit(this.tablePageSize);\n this.tablePageIndexChange.emit(this.tablePageIndex);\n this.pageChange.emit();\n }\n\n private countSelected(): void {\n if (\n this.showSelected &&\n this.selectedField &&\n this.displayLines &&\n this.displayLines.length\n ) {\n this.displayLines.forEach((item) => {\n if (item[this.selectedField] === true) {\n this.mapOfCheckedId[item[this.selectField]] = true;\n this.mapOfCheckList[item[this.selectField]] = item;\n }\n });\n if (\n this.displayLines.length === Object.keys(this.mapOfCheckList).length\n ) {\n this.isAllDisplayDataChecked = true;\n this.isIndeterminate = true;\n }\n }\n }\n\n get LodashRound() {\n return round;\n }\n\n drop(event: CdkDragDrop<string[]>): void {\n const lines = [...this.displayLines];\n moveItemInArray(lines, event.previousIndex, event.currentIndex);\n this.lines = lines;\n }\n\n calculateTotal() {\n if (this.showTotal && this.displayLines && this.displayLines.length) {\n this.totalOptionList = new Array(Number(this.columnsNumber) - 1).fill(\"\");\n this.totalOption.forEach((item) => {\n if (item.insertIndex && (item.insertValue || item.insertValue === 0)) {\n this.totalOptionList[item.insertIndex - 1] = {\n value: item.insertValue,\n align: item.align || \"right\",\n showDecimal: item.showDecimal || false,\n isHide: item.isHide || false,\n };\n }\n });\n }\n }\n\n currentPageDataChange($event: any): void {\n this.listOfDisplayData = $event;\n this.refreshStatus();\n if (!this.isCrossPageSelectLocal) {\n this.resetStatus();\n }\n }\n\n resetStatus() {\n this.isAllDisplayDataChecked = false;\n this.isIndeterminate = false;\n this.mapOfCheckedId = {};\n this.mapOfCheckList = {};\n this.selectEvent.emit([]);\n }\n\n refreshStatus(event: boolean = false, data: any = null): void {\n if (event && data) {\n !this.mapOfCheckList[data[this.selectField]] &&\n (this.mapOfCheckList[data[this.selectField]] = data);\n } else if (!event && data) {\n this.mapOfCheckList[data[this.selectField]] &&\n delete this.mapOfCheckList[data[this.selectField]];\n }\n this.isAllDisplayDataChecked = this.listOfDisplayData.every(\n (item) => this.mapOfCheckedId[item[this.selectField]],\n );\n this.isIndeterminate =\n this.listOfDisplayData.some(\n (item) => this.mapOfCheckedId[item[this.selectField]],\n ) && !this.isAllDisplayDataChecked;\n if (this.selectEvent) {\n this.selectEvent.emit(Object.values(this.mapOfCheckList));\n }\n }\n\n checkAll(value: boolean): void {\n this.listOfDisplayData.forEach((item) => {\n if (value) {\n !this.mapOfCheckList[item[this.selectField]] &&\n (this.mapOfCheckList[item[this.selectField]] = item);\n } else {\n this.mapOfCheckList[item[this.selectField]] &&\n delete this.mapOfCheckList[item[this.selectField]];\n }\n this.mapOfCheckedId[item[this.selectField]] = value;\n });\n this.refreshStatus();\n }\n}\n","import { DragDropModule } from \"@angular/cdk/drag-drop\";\nimport { CommonModule } from \"@angular/common\";\nimport { NgModule, NO_ERRORS_SCHEMA } from \"@angular/core\";\nimport { NzTableModule } from \"ng-zorro-antd/table\";\nimport { HdDetailLinesPageComponent } from \"./hd-detail-lines-page.component\";\n\n@NgModule({\n imports: [CommonModule, NzTableModule, DragDropModule],\n declarations: [HdDetailLinesPageComponent],\n exports: [HdDetailLinesPageComponent],\n schemas: [NO_ERRORS_SCHEMA],\n})\nexport class HdDetailLinesPageModule {}\n","import { Injectable } from '@angular/core';\n\nexport const statusToColor = {\n // 黄色\n '#FAB13B': ['partshipped', 'committed', 'partValid', 'confirm', 'picking'],\n // 灰色\n '#9FA4A2': ['initial', 'uncommitted', 'OFF_LINE', 'UN_PRINTED', 'unpublish', 'pastpublish', 'TO_COMMIT', 'unpublished', '未审核', 'returned'],\n // 红色\n '#F5222D': ['delete', 'deleted', 'aborted', 'rejected', '停用', '禁用', 'unpicked', 'DELETED', 'AUDIT_REJECT', 'rejected', 'invalid', 'disabled', ''],\n // 蓝色\n '#3B77E3': ['audited', 'adjusted', 'invoiced', 'audit', 'submitted', 'TO_AUDIT', '已审核', '处理中', 'processing', 'firstReviewed', 'awaiting_effective'],\n // 绿色\n '#20B95D': ['shipped', 'received', 'checked', 'using', 'reverse', 'valid', 'approved', 'ON_LINE', 'finished', 'opened', 'PRINTED', '启用', 'picked', 'published', 'AUDITED', '已收票', '付款完成', '收款完成', '已收款', 'accepted',\n 'offered', 'confirmed', 'effective', '已发布'],\n // 橙色\n '#F05B24': ['partialReceived', 'partDelete', 'tender', 'MODIFIED_AFTER_PRINTED', '部分付款', '部分收款', 'partPublished']\n};\n\n@Injectable({\n providedIn: 'root'\n})\nexport class HdStatusService {\n constructor() {\n }\n}\n","import { Component, Input, OnInit, SimpleChange } from \"@angular/core\";\nimport { statusToColor } from \"../hd-status/hd-status.service\";\n\n@Component({\n selector: \"hd-detail-tip\",\n templateUrl: \"./hd-detail-tip.component.html\",\n styleUrls: [\"./hd-detail-tip.component.less\"],\n})\nexport class HdDetailTipComponent implements OnInit {\n constructor() {}\n @Input() state: string;\n @Input() stateText: string;\n @Input() billNumber: string;\n @Input() tip: string = \"详情\";\n statusColor: string;\n\n ngOnInit() {\n this.setStatusColor();\n }\n\n ngOnChanges() {\n this.setStatusColor();\n }\n\n setStatusColor() {\n let findKey = '';\n for (let key in statusToColor) {\n if (\n this.state &&\n (statusToColor[key].indexOf(this.state) !== -1 ||\n statusToColor[key].indexOf(this.state.toUpperCase()) !== -1 ||\n statusToColor[key].indexOf(this.state.toLowerCase()) !== -1)\n ) {\n findKey = key;\n }\n }\n if (findKey) {\n this.statusColor = findKey;\n } else {\n this.statusColor = '#9FA4A2';\n }\n }\n}\n","import { HdDetailTipComponent } from './hd-detail-tip.component';\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { NgZorroAntdModule } from 'ng-zorro-antd';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n NgZorroAntdModule\n ],\n declarations: [HdDetailTipComponent],\n exports: [HdDetailTipComponent]\n})\nexport class HdDetailTipModule { }\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { Filter } from './hd-filter.service';\nimport { Subject, Subscription } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\n\n@Component({\n selector: 'hd-filter',\n templateUrl: './hd-filter.component.html',\n styleUrls: ['./hd-filter.component.less']\n})\nexport class HdFilterComponent implements OnInit {\n\n @Input() filterList: Array<Filter>;\n @Output() searchEvent = new EventEmitter();\n @Output() resetEvent = new EventEmitter();\n\n validateFilterForm: FormGroup;\n isShowMore: boolean = true;\n // 对filterList取模运算\n filterListModular: number = 0;\n private searchSubject = new Subject<{ fn: any, event: any, selectOption?: any; }>();\n private debounceTimeout: number = 0; // 默认防抖时间\n\n private searchSubscription: Subscription | undefined;\n constructor(private fb: FormBuilder) {\n this.searchSubscription = this.searchSubject.pipe(\n debounceTime(this.debounceTimeout)\n ).subscribe(({ fn, event, selectOption }) => this.triggerEvent(fn, event, selectOption));\n }\n\n ngOnInit() {\n this.init();\n }\n\n ngOnChanges() {\n this.init();\n }\n\n private init(): void {\n this.isShowMore = true;\n // 异常捕获\n if (!this.checkList(this.filterList)) {\n throw 'filter组件数据格式不规范';\n }\n this.filterListModular = this.filterList.length % 4;\n // 首先根据定义的组件数组 去初始化表单\n let formGroupList = {};\n this.filterList.forEach((item, index) => {\n formGroupList[item.name] = this.fb.control(item.value, []);\n // 初始化控件显影\n item.show = index < 7;\n });\n this.validateFilterForm = this.fb.group(formGroupList);\n this.filterList.forEach((item) => {\n if (item.onChangeEvent) {\n if (item.onChangeEventDebounceTime) {\n this.validateFilterForm.get(item.name).valueChanges\n .pipe(\n debounceTime(item.onChangeEventDebounceTime)\n )\n .subscribe(value => this.triggerEvent(item.onChangeEvent, value));\n } else {\n this.validateFilterForm.get(item.name).valueChanges.subscribe(value => this.triggerEvent(item.onChangeEvent, value));\n }\n }\n });\n }\n\n onSearchEvent(fn: any, event: any, onSearchEventDebounceTime: any, selectOption?: any) {\n if (onSearchEventDebounceTime) {\n // 更新防抖时间\n this.debounceTimeout = onSearchEventDebounceTime;\n\n // 取消之前的订阅\n if (this.searchSubscription) {\n this.searchSubscription.unsubscribe();\n }\n\n // 创建新的订阅\n this.searchSubscription = this.searchSubject.pipe(\n debounceTime(this.debounceTimeout)\n ).subscribe(({ fn, event, selectOption }) => this.triggerEvent(fn, event, selectOption));\n\n // 发送事件\n this.searchSubject.next({ fn, event, selectOption });\n } else {\n this.triggerEvent(fn, event, selectOption);\n }\n }\n\n triggerEvent(fn: any, event: any, selectOption?: any) {\n if (fn && selectOption) {\n fn(event, selectOption);\n } else if (fn) {\n fn(event);\n } else {\n return;\n }\n }\n\n computeOffset() {\n // 特殊处理下等于4个选项的情况\n if (this.filterList.length === 4) {\n return 18;\n }\n return this.isShowMore ? ((this.filterListModular === 0 || this.filterList.length > 7) ? 0 : (3 - this.filterListModular) * 6) : (this.filterListModular === 0 ? 18 : (3 - this.filterListModular) * 6);\n }\n\n private checkList(list: Array<Filter>): boolean {\n if (!list || (list && list.length === 0)) {\n return true;\n }\n let nameList = [];\n list.forEach((item) => {\n // 校验单项选择器\n // if (item.type === FilterListType.Select && (!item.selectOption.selectList || (item.selectOption.selectList && item.selectOption.selectList.length === 0))) {\n // throw 'filter组件数据格式不规范,存在单项选择器没有传入选项!'\n // }\n nameList.push(item.name);\n });\n // 校验name是否重复\n if ([...new Set(nameList)].length !== list.length) {\n throw 'filter组件数据格式不规范,存在重复name值!';\n }\n // ...more check\n return true;\n }\n\n public submitForm(): void {\n this.searchEvent.emit(this.validateFilterForm.getRawValue());\n }\n\n public resetForm(): void {\n this.resetFilterFormWithValue();\n // this.validateFilterForm.reset();\n if (this.resetEvent.observers.length > 0) {\n // 如果有父组件绑定了 resetEvent 的处理器\n this.resetEvent.emit(this.validateFilterForm.getRawValue());\n } else {\n // 如果没有绑定处理器,则触发 searchEvent\n this.searchEvent.emit(this.validateFilterForm.getRawValue());\n }\n }\n\n /**\n * 带初始值重置表单\n */\n public resetFilterFormWithValue() {\n const resetValue: { [key: string]: any } = {};\n this.filterList.forEach((item) => {\n resetValue[item.name] = item.value;\n });\n // 重置表单值(会触发valueChanges事件)\n this.validateFilterForm.patchValue(resetValue);\n }\n\n public getFilterData() {\n return this.validateFilterForm.getRawValue();\n }\n\n public showMore(): void {\n this.isShowMore = !this.isShowMore;\n this.filterList.forEach((item, index) => {\n item.show = this.isShowMore ? index < 7 : true;\n });\n }\n\n public inputClean(filter: Filter): void {\n const patchObject = {};\n patchObject[filter.name] = null;\n\n this.validateFilterForm.patchValue(patchObject);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { HdFilterComponent } from './hd-filter.component';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { NgZorroAntdModule } from 'ng-zorro-antd';\nimport { HdButtonModule } from '../hd-button/hd-button.module';\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n NgZorroAntdModule,\n HdButtonModule\n ],\n declarations: [HdFilterComponent],\n exports: [HdFilterComponent]\n})\nexport class HdFilterModule { }\n","import { Injectable } from '@angular/core';\nimport { InputNumber, SelectOption } from '../model/common-type';\n// 控件列表\nexport class FormLine {\n type: FormLineType; // 控件类型\n label: string; // 文本\n name: string; // 字段名称\n placeholder?: string; // 输入框的提示文件\n require?: boolean = false; // 是否必填\n hide?: boolean = false; // 是否为隐藏字段,仅用于填充表单的字段,不显示在页面上\n hideViewDomValue?: boolean = false; // type为ViewDom时,是否隐藏value值, 用于特殊场景,譬如列表中图片的显示\n align?: 'left' | 'right' | 'center'; // 列对齐方式\n value?: string | boolean | number | Date | Array<string | Date> | null = null; // 值 不传默认为null\n isSelect?: boolean; // 输入框等是否允许点击之后全选内容\n selectOption?: SelectOption; // 控件为Select时,选项列表\n explainOptionRight?: ExplainOption; // 明细字段的说明(右侧)\n explainOption?: ExplainOption; // 明细字段的说明\n colorOption?: ColorOption; // 颜色字段的说明\n // 组件内部成员\n maxLength?: number; // input控件的输入长度\n preserveNumber?: number; // 需要保留小数的列的位数\n inputNumber?: InputNumber = new InputNumber(); // number组件的min、max、step\n onChangeEvent?: Function; // 控件的值改变事件 可用于控件间联动\n onSearchEvent?: Function; // select选择器搜索事件 可用于更新备选集合\n onOpenChangeEvent?: Function; // select下拉展开/收起事件,回调参数 (open, line),可用于按当前行请求 selectList\n defaultLabel?: any; // select选择器不初始化的时候可以使用defaultLabel搭配value,设置默认值\n hdDisabledDate?: Function; // date-picker组件不可选择的日期\n hdShowToday?: boolean = true; // 对应 nzShowToday,是否显示「今天」按钮,默认 true\n disabled?: boolean; // 不可输入状态\n showTime?: boolean = false; // 日期选择器是否包含时间\n style?: object;\n canSearch?: boolean = false; // 指明hide 情况下的控件是否可以被搜索,默认false\n onChangeEventDebounceTime?: number; // change事件防抖,默认 500ms\n onSearchEventEventDebounceTime?: number; // search事件防抖,默认 500ms\n onOpenChangeEventDebounceTime?: number; // 下拉展开事件防抖,默认 500ms,避免频繁打开重复请求\n}\n\nexport class ColorOption {\n name: string;\n color?: string;\n}\n\nexport class ExplainOption {\n show: boolean;\n name: string;\n color?: string;\n}\n\n\n// 控件类型\nexport enum FormLineType {\n Input = 'Input', // 输入框\n Select = 'Select', // 单项选择器\n Date = 'Date', // 单个日期选择\n DateRange = 'DateRange', // 日期范围选择\n TextArea = 'TextArea', // 块级输入框\n InputNumber = 'InputNumber',// 数字输入\n MultipleSelect = 'MultipleSelect', // 多选\n ViewDom = 'ViewDom', // 单纯的显示控件\n Switch = 'Switch', // 开关\n Time = 'Time' // 时间选择器\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class HdFormLinesService {\n constructor() { }\n}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n QueryList,\n SimpleChanges,\n TemplateRef,\n ViewChildren,\n} from \"@angular/core\";\nimport { FormArray, FormBuilder, FormGroup, Validators } from \"@angular/forms\";\nimport { round } from \"lodash\";\nimport {\n InputBoolean,\n NzDatePickerComponent,\n NzInputNumberComponent,\n NzRangePickerComponent,\n NzSelectComponent,\n NzTimePickerComponent,\n} from \"ng-zorro-antd\";\nimport { Subject, Subscription } from \"rxjs\";\nimport { debounceTime } from \"rxjs/operators\";\nimport { TotalOption } from \"../hd-detail-lines/hd-detail-lines.service\";\nimport { SelectOptionTableColumn } from \"../model/common-type\";\nimport { FormLine, FormLineType } from \"./hd-form-lines.service\";\n\n/** 与 ant-select 选项项水平内边距一致,用于表头与选项行对齐 */\nconst SELECT_TABLE_OPTION_HORIZONTAL_PADDING = 12;\n\n@Component({\n selector: \"hd-form-lines\",\n templateUrl: \"./hd-form-lines.component.html\",\n styleUrls: [\"./hd-form-lines.component.less\"],\n})\nexport class HdFormLinesComponent implements OnInit, AfterViewInit, OnDestroy {\n @ViewChildren(\"formInputDom\") formInputDomList!: QueryList<ElementRef>;\n\n @Input() @InputBoolean() showLineNumber: boolean = true;\n @Input() @InputBoolean() allowEmpty: boolean = true;\n @Output() deleteLastLineEvent = new EventEmitter();\n @Input() @InputBoolean() showKeyboardOperateTip: boolean = false;\n @Input() @InputBoolean() tableLoading: boolean = false;\n @Input() @InputBoolean() showSearch: boolean = false;\n @Input() formLines: Array<FormLine>;\n // 针对formLines里面所有的name,\n @Input() formLinesData: any;\n @Input() operateButtons: Array<string> = [\"add\", \"delete\"];\n @Input() scroll: { [key: string]: string } = { x: \"1px\" };\n @Output() changeEvent = new EventEmitter();\n @Input() @InputBoolean() showDeleteConfirm: boolean = false;\n paginationPageIndex: number = 1;\n paginationPageSize: number = 10;\n validateHdFormLines: FormGroup;\n newLine: any;\n inputValue: string;\n\n // 合计区域\n @Input() @InputBoolean() showTotal: boolean = false;\n @Input() totalOption: Array<TotalOption> = [];\n @Input() columnsNumber: number | string = 0;\n totalOptionList = [];\n\n showForm: boolean = false;\n filterStr: string;\n storeFormLinesData: any = []; // 缓存的总的表单数据\n filterStoreFormLinesData: any = []; // 筛选出来的数据列表\n filterIndexStore: Array<number> = []; // 筛选出来的数据在原始列表中的下标\n isFilterData: boolean = false; // 是否是已经筛选过的数据\n formValid: boolean = false; // 表单当前的状态\n private searchSubject = new Subject<{ fn: any; event: any; line: any }>();\n private debounceTimeout: number = 0; // 默认防抖时间\n\n private searchSubscription: Subscription | undefined;\n private formInputDomListSub: Subscription | undefined;\n\n private openChangeSubject = new Subject<{ fn: any; event: any; line: any }>();\n private openChangeDebounceTimeout: number = 0;\n private openChangeSubscription: Subscription | undefined;\n\n // 当前页的dom二维数组\n collectDomList: Array<\n Array<\n | ElementRef\n | NzSelectComponent\n | NzInputNumberComponent\n | NzDatePickerComponent\n | NzRangePickerComponent\n | NzTimePickerComponent\n >\n > = [];\n // 当前聚焦的dom元素坐标\n activeDomX: number = null;\n activeDomY: number = null;\n activeDom:\n | ElementRef\n | NzSelectComponent\n | NzInputNumberComponent\n | NzDatePickerComponent\n | NzRangePickerComponent\n | NzTimePickerComponent = null;\n activeSelectedComponentOpen: boolean = false;\n @ContentChild(\"ViewDomRightTemplate\", { static: false })\n ViewDomRightTemplate: TemplateRef<any>;\n\n constructor(\n private fb: FormBuilder,\n private cdr: ChangeDetectorRef,\n ) {\n this.searchSubscription = this.searchSubject\n .pipe(debounceTime(this.debounceTimeout))\n .subscribe(({ fn, event, line }) => this.triggerEvent(fn, event, line));\n this.openChangeSubscription = this.openChangeSubject\n .pipe(debounceTime(this.openChangeDebounceTimeout))\n .subscribe(({ fn, event, line }) => {\n if (event) {\n this.triggerEvent(fn, event, line);\n }\n });\n }\n\n ngOnInit() {\n // 缓存一下总的表单数据\n this.storeFormLinesData = this.formLinesData;\n this.init();\n }\n\n ngAfterViewInit() {\n this.collectDomData();\n this.formInputDomListSub = this.formInputDomList.changes.subscribe(() => {\n this.collectDomData();\n });\n }\n\n ngOnDestroy() {\n if (this.searchSubscription) {\n this.searchSubscription.unsubscribe();\n }\n if (this.openChangeSubscription) {\n this.openChangeSubscription.unsubscribe();\n }\n if (this.formInputDomListSub) {\n this.formInputDomListSub.unsubscribe();\n }\n }\n\n get formLinesLength() {\n return this.linesFormArray.controls.length;\n }\n\n setActiveSelectedComponentOpen(value: boolean) {\n this.activeSelectedComponentOpen = value;\n if (value === true) {\n setTimeout(() => {\n const domList = document.querySelectorAll(\n \".ant-select-dropdown.hd-select-table\",\n );\n if (domList.length > 0) {\n const dom = domList[0];\n dom\n .querySelectorAll(\".hd-option-header\")\n .forEach((header) => header.remove());\n const oldIndex = this.getOldDomIndex(this.activeDomY, this.formLines);\n dom.insertBefore(\n this.createDOMStructure(\n this.formLines[oldIndex],\n this.linesFormArray.controls.slice(\n (this.paginationPageIndex - 1) * this.paginationPageSize,\n (this.paginationPageIndex - 1) * this.paginationPageSize +\n this.paginationPageSize,\n )[this.activeDomX],\n ),\n dom.firstChild,\n );\n }\n }, 0);\n }\n }\n\n getSelectTableColumnStyle(column: SelectOptionTableColumn): {\n [key: string]: string;\n } {\n if (!column || !column.width) {\n return { width: \"unset\" };\n }\n return { width: `${column.width}px` };\n }\n\n createDOMStructure(formItem, line) {\n // 创建外部 div\n const hdOptionHeader = document.createElement(\"div\");\n hdOptionHeader.className = \"hd-option-header\";\n hdOptionHeader.style.paddingLeft = `${SELECT_TABLE_OPTION_HORIZONTAL_PADDING}px`;\n hdOptionHeader.style.paddingRight = `${SELECT_TABLE_OPTION_HORIZONTAL_PADDING}px`;\n\n // 检查条件,确定是否要创建子元素\n // const selectListLength = (formItem && formItem.selectOption && formItem.selectOption.selectList && formItem.selectOption.selectList.length) || 0;\n // if\n // const lineValueLength = (line.get(formItem.selectOption.selectListName) && line.get(formItem.selectOption.selectListName).value && line.get(formItem.selectOption.selectListName).value.length) || 0;\n\n // if (selectListLength > 0 || lineValueLength > 0) {\n // 遍历 tableColumns 创建内部列 div\n formItem.selectOption.tableColumns.forEach((selectOptionTableColumn) => {\n const columnDiv = document.createElement(\"div\");\n columnDiv.className = \"hd-option-header-column\";\n\n const widthStyle = this.getSelectTableColumnStyle(\n selectOptionTableColumn,\n );\n columnDiv.style.width = widthStyle.width;\n\n // 添加列标签内容\n if (selectOptionTableColumn.label) {\n const labelText = document.createTextNode(\n selectOptionTableColumn.label,\n );\n columnDiv.appendChild(labelText);\n }\n\n // 添加列 div 到外部 div\n hdOptionHeader.appendChild(columnDiv);\n });\n // }\n\n return hdOptionHeader;\n }\n\n collectDomData() {\n this.collectDomList = [];\n const pageDomList = this.formInputDomList.toArray();\n // Step 1: 获取当前页的数据量\n const startIndex = (this.paginationPageIndex - 1) * this.paginationPageSize;\n const endIndex = this.paginationPageIndex * this.paginationPageSize;\n const adjustedEndIndex =\n endIndex > this.formLinesLength ? this.formLinesLength : endIndex;\n const pageLinesLength = adjustedEndIndex - startIndex;\n\n const interval = pageDomList.length / pageLinesLength;\n // Step 2: 拆分formInputDomList\n for (let i = 0; i < pageLinesLength; i++) {\n this.collectDomList.push(pageDomList.splice(0, interval));\n }\n this.disableInputNumberKeyboardStep();\n }\n\n /**\n * ng-zorro 8 在 input 的 onKeyDown 里用上下键调 up()/down() 改 step。\n * 只覆盖 onKeyDown(不动 up/down),键盘方向键交给表单跳转,+/- 按钮仍可用。\n */\n private disableInputNumberKeyboardStep(): void {\n for (let i = 0; i < this.collectDomList.length; i++) {\n for (let j = 0; j < this.collectDomList[i].length; j++) {\n const dom = this.collectDomList[i][j];\n if (dom instanceof NzInputNumberComponent) {\n dom.onKeyDown = (e: KeyboardEvent) => {\n if (e.keyCode === 38 || e.keyCode === 40) {\n return;\n }\n if (e.keyCode === 13) {\n dom.setValidateValue();\n }\n };\n }\n }\n }\n }\n\n // 聚焦下一个dom\n jumpToNextInput(x: number, y: number) {\n if (\n x === null ||\n y === null ||\n !this.collectDomList ||\n this.collectDomList.length === 0\n ) {\n return;\n }\n // 如果是最后一个可输入元素,新增行\n if (\n !(this.activeDom instanceof NzSelectComponent) &&\n x === this.collectDomList.length - 1 &&\n y === this.collectDomList[0].length - 1\n ) {\n this.addNewLineAndFocus();\n } else {\n if (y === this.collectDomList[0].length - 1) {\n console.log(\"执行过程1\");\n // 如果是最后一列,则跳转到下一行第一个输入框\n this.focusDom(x + 1, 0, \"right\");\n } else {\n console.log(\"执行过程2\");\n // 如果不是最后一列,则跳转到当前行下一个输入框\n this.focusDom(x, y + 1, \"right\");\n }\n }\n }\n\n /**\n * 增加新行并且聚焦到第一个元素,\n * 这里要注意,如果存在翻页情况,需要处理\n */\n addNewLineAndFocus() {\n // 当前行为当前页最后一行的时候,判断下一页是否有数据\n // 1、如果有:翻页+聚焦第一行第一个元素\n // 2、如果没有:新增行+翻页+聚焦第一行第一个元素\n if (this.activeDomX === this.paginationPageSize - 1) {\n // 判断下一页是否有数据\n if (\n this.paginationPageIndex <\n Math.ceil(this.formLinesLength / this.paginationPageSize)\n ) {\n // 翻页+聚焦第一行第一个元素\n this.paginationPageIndex++;\n setTimeout(() => {\n this.collectDomData();\n console.log(\"执行过程3\");\n this.focusDom(0, 0, \"right\");\n }, 0);\n } else {\n // 新增行+翻页+聚焦第一行第一个元素\n this.addFormLine();\n this.paginationPageIndex++;\n setTimeout(() => {\n this.collectDomData();\n console.log(\"执行过程4\");\n this.focusDom(0, 0);\n }, 0);\n }\n } else {\n this.addFormLine();\n }\n }\n\n // 聚焦到上一个dom\n jumpToPrevInput(x: number, y: number) {\n if (\n x === null ||\n y === null ||\n !this.collectDomList ||\n this.collectDomList.length === 0\n ) {\n return;\n }\n if (x === 0 && y === 0) {\n // 如果是第一个可输入元素, 判断是否有上一页, 如果有,则翻页+聚焦到上一页最后一个元素\n if (this.paginationPageIndex > 1) {\n // 翻页+聚焦到上一页最后一个元素\n this.paginationPageIndex--;\n setTimeout(() => {\n this.collectDomData();\n console.log(\"执行过程5\");\n this.focusDom(\n this.collectDomList.length - 1,\n this.collectDomList[0].length - 1,\n );\n }, 0);\n }\n return;\n } else {\n if (y === 0) {\n console.log(\"执行过程6\");\n // 如果是第一列,则跳转到上一行最后一个输入框\n this.focusDom(x - 1, this.collectDomList[0].length - 1, \"left\");\n } else {\n console.log(\"执行过程7\");\n // 如果不是第一列,则跳转到当前行上一个输入框\n this.focusDom(x, y - 1, \"left\");\n }\n }\n }\n\n /**\n * 聚焦到某个dom\n * @param x 坐标x\n * @param y 坐标y\n * @param jumpDirection 跳转方向\n */\n focusDom(x: number, y: number, jumpDirection: string = \"right\") {\n if (\n x === null ||\n y === null ||\n !this.collectDomList ||\n this.collectDomList.length === 0\n ) {\n return;\n }\n // 先清除一下当前的焦点\n this.cleanFocusDom(this.activeDomX, this.activeDomY);\n if (this.collectDomList[x] && this.collectDomList[x][y]) {\n const dom = this.collectDomList[x][y];\n // 需要判断下一个focus的dom是否是禁用状态,如果是禁用状态需要跳过\n if (dom instanceof NzSelectComponent) {\n if (dom.nzDisabled) {\n if (jumpDirection === \"right\") {\n this.jumpToNextInput(x, y);\n } else if (jumpDirection === \"left\") {\n this.jumpToPrevInput(x, y);\n }\n return;\n }\n dom.nzSelectTopControlComponent.inputElement.nativeElement.scrollIntoView(\n { behavior: \"smooth\", block: \"center\", inline: \"center\" },\n );\n // 这里多选框需要额外处理下,因为向下的时候会触发内部Input的聚焦,把下一个dom的focus放到宏任务中,延迟处理。\n if (dom.nzSelectService.mode === \"multiple\") {\n setTimeout(() => {\n dom.focus();\n }, 0);\n } else {\n dom.focus();\n }\n } else if (dom instanceof NzInputNumberComponent) {\n if (dom.nzDisabled) {\n if (jumpDirection === \"right\") {\n this.jumpToNextInput(x, y);\n } else if (jumpDirection === \"left\") {\n this.jumpToPrevInput(x, y);\n }\n return;\n }\n const inputDom: any = document.getElementById(dom.nzId);\n inputDom.focus();\n inputDom.scrollIntoView({\n behavior: \"smooth\",\n block: \"center\",\n inline: \"center\",\n });\n setTimeout(() => {\n inputDom.select();\n }, 0);\n } else if (dom instanceof ElementRef) {\n if (dom.nativeElement.disabled) {\n if (jumpDirection === \"right\") {\n this.jumpToNextInput(x, y);\n } else if (jumpDirection === \"left\") {\n this.jumpToPrevInput(x, y);\n }\n return;\n }\n dom.nativeElement.focus();\n dom.nativeElement.scrollIntoView({\n behavior: \"smooth\",\n block: \"center\",\n inline: \"center\",\n });\n setTimeout(() => {\n dom.nativeElement.select();\n }, 0);\n } else if (\n dom instanceof NzDatePickerComponent ||\n dom instanceof NzRangePickerComponent ||\n dom instanceof NzTimePickerComponent\n ) {\n // TODO:在ngzorro8.5.x版本,时间相关的选择器没有暴露出open方法,暂时先不处理。(10.x及以上版本提供了open方法)\n if (jumpDirection === \"right\") {\n this.jumpToNextInput(x, y);\n } else if (jumpDirection === \"left\") {\n this.jumpToPrevInput(x, y);\n }\n return;\n }\n this.setActiveDom(x, y);\n } else {\n // 没有dom的场景下,需要判断是左还是右,\n }\n }\n\n cleanFocusDom(x: number, y: number) {\n if (\n x === null ||\n y === null ||\n !this.collectDomList ||\n this.collectDomList.length === 0\n ) {\n return;\n }\n if (this.collectDomList[x] && this.collectDomList[x][y]) {\n const dom = this.collectDomList[x][y];\n if (dom instanceof NzSelectComponent) {\n dom.blur();\n dom.nzOpen = false;\n } else if (dom instanceof NzInputNumberComponent) {\n dom.blur();\n } else if (dom instanceof ElementRef) {\n dom.nativeElement.blur();\n } else {\n }\n }\n }\n\n setActiveDom(x: number, y: number) {\n this.activeDomX = x;\n this.activeDomY = y;\n this.activeDom = this.collectDomList[this.activeDomX][this.activeDomY];\n if (this.activeDom instanceof NzSelectComponent) {\n this.setActiveSelectedComponentOpen(this.activeDom.open);\n }\n }\n\n /**\n * 根据行号和列号名称获取当前聚焦的dom位置\n * @param rowNumber 行号\n * @param colNumber 列号\n */\n setActiveDomInFormLines(rowNumber: number, colNumber: number) {\n this.activeDomX = rowNumber;\n this.activeDomY = this.getDomIndex(colNumber, this.formLines);\n this.setActiveDom(this.activeDomX, this.activeDomY);\n }\n\n /**\n * 键盘点击事件\n * @param event 键盘事件\n * @returns\n */\n onKeyDown(event: KeyboardEvent) {\n if (this.activeDomX === null || this.activeDomY === null) {\n return;\n }\n switch (event.key) {\n case \"ArrowUp\":\n if (\n this.activeDom instanceof NzSelectComponent &&\n this.activeSelectedComponentOpen\n ) {\n return;\n }\n if (this.activeDomX !== 0) {\n this.focusDom(this.activeDomX - 1, this.activeDomY);\n }\n break;\n case \"ArrowDown\":\n if (\n this.activeDom instanceof NzSelectComponent &&\n this.activeSelectedComponentOpen\n ) {\n return;\n }\n // 判断是否在最后一行,加行\n if (this.activeDomX === this.collectDomList.length - 1) {\n this.cleanFocusDom(this.activeDomX, this.activeDomY);\n this.addNewLineAndFocus();\n break;\n } else {\n this.focusDom(this.activeDomX + 1, this.activeDomY);\n }\n break;\n case \"ArrowLeft\":\n this.jumpToPrevInput(this.activeDomX, this.activeDomY);\n break;\n case \"ArrowRight\":\n this.jumpToNextInput(this.activeDomX, this.activeDomY);\n break;\n case \"Enter\":\n if (this.activeDom instanceof NzSelectComponent) {\n this.setActiveSelectedComponentOpen(this.activeDom.open);\n if (this.activeSelectedComponentOpen === false) {\n this.focusDom(this.activeDomX, this.activeDomY);\n }\n } else if (this.activeDomX === this.collectDomList.length - 1) {\n this.addNewLineAndFocus();\n }\n break;\n case \"Escape\":\n if (this.activeDom instanceof NzSelectComponent) {\n const nowActiveDom = this.activeDom as NzSelectComponent;\n setTimeout(() => {\n this.setActiveSelectedComponentOpen(nowActiveDom.open);\n if (this.activeSelectedComponentOpen === false) {\n if (nowActiveDom.nzSelectService.mode === \"multiple\") {\n setTimeout(() => {\n this.focusDom(this.activeDomX, this.activeDomY);\n }, 0);\n } else {\n this.focusDom(this.activeDomX, this.activeDomY);\n }\n }\n }, 0);\n }\n break;\n default:\n // 如果当前聚焦的是选择框,且键入0-9a-zA-Z,则弹出\n if (\n this.activeDom instanceof NzSelectComponent &&\n this.activeSelectedComponentOpen === false &&\n /^[0-9a-zA-Z]$/.test(event.key)\n ) {\n const dom = this.activeDom;\n dom.nzOpen = true;\n this.setActiveSelectedComponentOpen(true);\n // // TODO:这里暂时注释,不能直接带入键入值,这样会导致输入中文的时候带入英文字符,不符合预期\n // dom.nzSelectTopControlComponent.inputValue = event.key;\n // // 获取 input 元素\n // const inputElement = dom.nzSelectTopControlComponent.inputElement.nativeElement;\n // setTimeout(() => {\n // // 触发输入事件,以确保 Angular 检测到值的变化\n // const eventInput = new Event('input', { bubbles: true });\n // inputElement.dispatchEvent(eventInput);\n // }, 0);\n }\n break;\n }\n }\n\n /**\n * 根据在初始dom下标和数据集 获取在collectDomList中的下标\n * @param index 初始下标\n * @param list 老数据集\n * @returns\n */\n private getDomIndex(index: number, list: Array<FormLine>): number {\n const typeList = [\n \"Input\",\n \"Select\",\n \"Date\",\n \"DateRange\",\n \"TextArea\",\n \"InputNumber\",\n \"MultipleSelect\",\n ];\n let filterList = [];\n for (let i = 0; i < list.length; i++) {\n if (i === index) {\n return filterList.length;\n }\n // 与模板一致:hide 的列不渲染 #formInputDom,不计入 collectDomList 的列下标\n if (typeList.includes(list[i].type) && !list[i].hide) {\n filterList.push(list[i]);\n }\n }\n return null;\n }\n\n /**\n * 根据在collectDomList中的下标和数据集 获取初始dom下标\n * @param index 新下标\n * @param list 老数据集\n * @returns\n */\n private getOldDomIndex(index: number, list: Array<FormLine>): number {\n console.log(\"index\", index);\n console.log(\"list\", list);\n const typeList = [\n \"Input\",\n \"Select\",\n \"Date\",\n \"DateRange\",\n \"TextArea\",\n \"InputNumber\",\n \"MultipleSelect\",\n ];\n let filterList = [];\n for (let i = 0; i < list.length; i++) {\n if (typeList.includes(list[i].type) && !list[i].hide) {\n filterList.push(list[i]);\n if (filterList.length === index + 1) {\n return i;\n }\n }\n }\n return null;\n }\n\n get linesFormArray(): any {\n return this.validateHdFormLines.get(\"lines\") as FormArray;\n }\n\n get LodashRound() {\n return round;\n }\n\n // 暴露的方法,用于获取所有数据的valid状态\n public getValid() {\n return this.formValid;\n }\n\n onSearchEvent(\n fn: any,\n event: any,\n line: any,\n onSearchEventDebounceTime: any,\n ) {\n if (!fn) {\n return;\n }\n // 父组件未配置时默认 500ms 防抖\n const debounceMs = onSearchEventDebounceTime != null ? onSearchEventDebounceTime : 500;\n this.debounceTimeout = debounceMs;\n if (this.searchSubscription) {\n this.searchSubscription.unsubscribe();\n }\n this.searchSubscription = this.searchSubject\n .pipe(debounceTime(this.debounceTimeout))\n .subscribe(({ fn, event, line }) => this.triggerEvent(fn, event, line));\n this.searchSubject.next({ fn, event, line });\n setTimeout(() => {\n this.setActiveSelectedComponentOpen(true);\n }, 0);\n }\n\n onOpenChangeEvent(\n fn: any,\n open: boolean,\n line: any,\n onOpenChangeEventDebounceTime: any,\n ) {\n if (!fn) {\n return;\n }\n // 父组件未配置时默认 500ms 防抖\n const debounceMs = onOpenChangeEventDebounceTime != null ? onOpenChangeEventDebounceTime : 500;\n this.openChangeDebounceTimeout = debounceMs;\n if (this.openChangeSubscription) {\n this.openChangeSubscription.unsubscribe();\n }\n this.openChangeSubscription = this.openChangeSubject\n .pipe(debounceTime(this.openChangeDebounceTimeout))\n .subscribe(({ fn, event, line }) => {\n if (event) {\n this.triggerEvent(fn, event, line);\n }\n });\n this.openChangeSubject.next({ fn, event: open, line });\n }\n\n /**\n *\n * @param fn 父组件函数\n * @param event 事件值\n * @param line 触发的行\n */\n triggerEvent(fn: any, event: any, line: any) {\n if (fn) {\n fn(event, line);\n }\n }\n\n innerGetValid() {\n let tmpValidateHdFormLines = this.fb.group({\n lines: this.fb.array([]),\n });\n this.storeFormLinesData.forEach((formLinesDataItem) => {\n let formGroupObj: any = {};\n this.formLines.forEach((item) => {\n // 新增行 初始数据都为null\n formGroupObj[item.name] = this.fb.control(\n {\n value: this.judgeValueIsNotEmpty(formLinesDataItem[item.name])\n ? formLinesDataItem[item.name]\n : item.value || null,\n disabled: item.disabled,\n },\n item.require ? [Validators.required] : [],\n );\n if (item.selectOption && item.selectOption.label) {\n formGroupObj[item.selectOption.label] = this.fb.control(\n formLinesDataItem[item.selectOption.label] || null,\n [],\n );\n }\n });\n formGroupObj.lineIndex = this.fb.control(\n (tmpValidateHdFormLines.get(\"lines\") as FormArray).controls.length,\n [],\n );\n let formGroupTmp = this.fb.group(formGroupObj);\n this.formLines.forEach((item) => {\n if (item.onChangeEvent) {\n // 父组件未配置时默认 500ms 防抖\n const debounceMs = item.onChangeEventDebounceTime != null ? item.onChangeEventDebounceTime : 500;\n formGroupTmp\n .get(item.name)\n .valueChanges.pipe(debounceTime(debounceMs))\n .subscribe((value) => {\n this.triggerEvent(item.onChangeEvent, value, formGroupTmp);\n });\n }\n });\n (tmpValidateHdFormLines.get(\"lines\") as FormArray).insert(\n (tmpValidateHdFormLines.get(\"lines\") as FormArray).controls.length,\n formGroupTmp,\n );\n });\n return tmpValidateHdFormLines.valid;\n }\n\n // 暴露的方法,用于获取所有数据\n public getLines() {\n let allLines = [];\n this.storeFormLinesData.forEach((formLinesDataItem) => {\n let formGroupObj: any = {};\n this.formLines.forEach((item) => {\n // 新增行 初始数据都为null\n formGroupObj[item.name] = formLinesDataItem[item.name];\n });\n formGroupObj.lineIndex = formLinesDataItem.lineIndex;\n allLines.push(formGroupObj);\n });\n return allLines;\n }\n\n // 全局性的搜索(涵盖页面上所有的可视文字)\n searchLines() {\n if (this.storeFormLinesData.length < 1) {\n return;\n }\n this.tableLoading = true;\n // 如果没有输入搜索字符串,则显示缓存内的所有数据\n if (!this.filterStr) {\n this.isFilterData = false;\n this.setStoreData();\n return;\n }\n const filterValue = this.filterStr.trim().toLowerCase();\n this.isFilterData = true;\n this.filterIndexStore = [];\n\n // 根据搜索字符串过滤数据\n const filteredData = this.storeFormLinesData.filter(\n (data: any, index: number) => {\n for (const item of this.formLines) {\n if (\n (item.hide && item.canSearch) ||\n (!item.hide && item.name !== \"uuid\")\n ) {\n console.log(\"item\", item.name);\n const value = data[item.name]\n ? data[item.name].toString().toLowerCase()\n : \"\";\n if (value.includes(filterValue)) {\n this.filterIndexStore.push(index);\n return true;\n }\n }\n }\n return false;\n },\n );\n // 缓存一下筛选后的表单数据\n this.filterStoreFormLinesData = filteredData;\n // 处理筛选好的数据 然后重新渲染\n this.formLinesData = filteredData;\n this.init(true);\n }\n\n setStoreData() {\n this.formLinesData = this.storeFormLinesData;\n this.init(true);\n }\n\n getStyle(line: FormGroup, formItem: any, width: string) {\n let styleObj = {\n \"min-width\": width,\n };\n if (formItem.style) {\n styleObj = { ...styleObj, ...formItem.style };\n }\n if (\n formItem.colorOption &&\n formItem.colorOption.name &&\n line.get(formItem.colorOption.name).value\n ) {\n styleObj = {\n ...styleObj,\n ...{ color: line.get(formItem.colorOption.name).value },\n };\n }\n return styleObj;\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (\n changes[\"formLinesData\"] &&\n JSON.stringify(changes[\"formLinesData\"].currentValue) !==\n JSON.stringify(changes[\"formLinesData\"].previousValue)\n ) {\n if (this.storeFormLinesData && this.storeFormLinesData.length === 0) {\n this.storeFormLinesData = this.formLinesData;\n }\n this.init();\n }\n if (\n changes[\"totalOption\"] &&\n JSON.stringify(changes[\"totalOption\"].currentValue) !==\n JSON.stringify(changes[\"totalOption\"].previousValue)\n ) {\n this.calculateTotal();\n }\n }\n\n calculateTotal() {\n // 这里处理合计数据\n if (this.showTotal) {\n this.totalOptionList = new Array(Number(this.columnsNumber) - 1).fill(\"\");\n this.totalOption.forEach((item) => {\n if (item.insertIndex && (item.insertValue || item.insertValue === 0)) {\n this.totalOptionList[item.insertIndex - 1] = {\n value: item.insertValue,\n align: item.align || \"left\",\n showDecimal: item.showDecimal || false,\n };\n }\n });\n }\n }\n\n private init(isEdit: boolean = false): void {\n this.paginationPageIndex = 1;\n // 异常捕获\n if (!this.checkList(this.formLines)) {\n this.tableLoading = false;\n return;\n }\n this.createForm();\n // 如果没有formLinesData,则认为是新增\n if (\n !isEdit &&\n (!this.formLinesData ||\n (this.formLinesData && this.formLinesData.length === 0))\n ) {\n this.tableLoading = false;\n this.addFormLine(0, false);\n this.showForm = true;\n } else {\n // 编辑逻辑\n this.addFormLineWithData();\n }\n this.validateHdFormLines.valueChanges.subscribe((data) =>\n this.onHdFormValueChanged(data),\n );\n this.onHdFormValueChanged();\n }\n\n /**\n * 创建表单\n */\n private createForm() {\n this.validateHdFormLines = this.fb.group({\n lines: this.fb.array([]),\n });\n this.newLine = this.newLineItem();\n }\n\n delayJumpToNextInput() {\n setTimeout(() => {\n this.jumpToNextInput(this.activeDomX, this.activeDomY);\n }, 0);\n }\n\n /**\n * 定义空的newLineItem 结构\n */\n private newLineItem(): FormGroup {\n let formGroupObj: any = {};\n this.formLines.forEach((item) => {\n // 新增行 初始数据都为null\n formGroupObj[item.name] = this.fb.control(\n {\n value: item.value,\n disabled: item.disabled,\n } || null,\n item.require && !item.hide ? [Validators.required] : [],\n );\n });\n formGroupObj.lineIndex = this.fb.control(\n this.linesFormArray.controls.length,\n [],\n );\n // 用来标识是否是搜索状态下新增的行\n formGroupObj.isHdFormLineSearchAdd = this.fb.control(this.isFilterData, []);\n let formGroupSubmit = this.fb.group(formGroupObj);\n this.formLines.forEach((item, innerIndex) => {\n if (item.onChangeEvent) {\n // 父组件未配置时默认 500ms 防抖\n const debounceMs = item.onChangeEventDebounceTime != null ? item.onChangeEventDebounceTime : 500;\n formGroupSubmit\n .get(item.name)\n .valueChanges.pipe(debounceTime(debounceMs))\n .subscribe((value) => {\n if (item.type === FormLineType.Select && value !== null) {\n this.delayJumpToNextInput();\n }\n this.triggerEvent(item.onChangeEvent, value, formGroupSubmit);\n });\n }\n });\n return formGroupSubmit;\n }\n\n private calculateLineNumber() {\n this.linesFormArray.controls.forEach((item, index) => {\n item.get(\"lineIndex\").setValue(index + 1, { emitEvent: false });\n });\n }\n\n /**\n * 编辑的时候数据处理\n */\n addFormLineWithData() {\n this.formLinesData.forEach((formLinesDataItem, index) => {\n let formGroupObj: any = {};\n this.formLines.forEach((item) => {\n // 新增行 初始数据都为null\n formGroupObj[item.name] = this.fb.control(\n {\n value: this.judgeValueIsNotEmpty(formLinesDataItem[item.name])\n ? formLinesDataItem[item.name]\n : item.value || null,\n disabled: item.disabled,\n },\n item.require ? [Validators.required] : [],\n );\n if (item.selectOption && item.selectOption.label) {\n formGroupObj[item.selectOption.label] = this.fb.control(\n formLinesDataItem[item.selectOption.label] || null,\n [],\n );\n }\n });\n formGroupObj.lineIndex = this.fb.control(\n this.linesFormArray.controls.length + 1,\n [],\n );\n let formGroupTmp = this.fb.group(formGroupObj);\n this.formLines.forEach((item, innerIndex) => {\n if (item.onChangeEvent) {\n // 父组件未配置时默认 500ms 防抖\n const debounceMs = item.onChangeEventDebounceTime != null ? item.onChangeEventDebounceTime : 500;\n formGroupTmp\n .get(item.name)\n .valueChanges.pipe(debounceTime(debounceMs))\n .subscribe((value) => {\n if (item.type === FormLineType.Select && value !== null) {\n this.delayJumpToNextInput();\n }\n this.triggerEvent(item.onChangeEvent, value, formGroupTmp);\n });\n }\n });\n this.linesFormArray.insert(\n this.linesFormArray.controls.length,\n formGroupTmp,\n );\n });\n this.tableLoading = false;\n this.showForm = true;\n }\n\n addFormLine(index?: any, isFocus: boolean = true) {\n this.linesFormArray.insert(\n index || this.linesFormArray.controls.length,\n this.newLineItem(),\n );\n this.calculateLineNumber();\n setTimeout(() => {\n this.collectDomData();\n if (isFocus) {\n if (index !== null && index !== undefined) {\n this.activeDomX = index;\n } else {\n this.activeDomX = this.collectDomList.length - 1;\n }\n this.activeDomY = 0;\n console.log(\"执行过程13\");\n this.focusDom(this.activeDomX, this.activeDomY);\n }\n }, 0);\n }\n\n @Output() deleteLineEvent = new EventEmitter();\n\n deleteFormLine(index: any) {\n console.log(\"index\", index);\n // 最后一条数据的时候要判断一下\n if (this.linesFormArray.controls.length === 1 && !this.allowEmpty) {\n if (this.deleteLastLineEvent) {\n this.deleteLastLineEvent.emit();\n }\n return;\n }\n this.linesFormArray.removeAt(index - 1);\n if (\n !this.isFilterData &&\n this.linesFormArray.controls &&\n this.linesFormArray.controls.length === 0\n ) {\n this.addFormLine();\n } else {\n // 删除尾页的最后一个元素动作\n if (\n this.paginationPageIndex * this.paginationPageSize ===\n this.linesFormArray.controls.length + this.paginationPageSize\n ) {\n this.paginationPageIndex--;\n }\n this.calculateLineNumber();\n }\n setTimeout(() => {\n this.collectDomData();\n }, 0);\n }\n\n public pageIndexChange(event: number): void {\n this.paginationPageIndex = event;\n setTimeout(() => {\n this.collectDomData();\n }, 0);\n }\n\n public pageSizeChange(event: number): void {\n this.paginationPageSize = event;\n setTimeout(() => {\n this.collectDomData();\n }, 0);\n }\n\n private onHdFormValueChanged(data?: any) {\n if (this.isFilterData) {\n if (data && data.lines && this.filterIndexStore.length !== 0) {\n const lines = data.lines;\n if (lines.length === this.filterIndexStore.length) {\n this.filterIndexStore.forEach((item, index) => {\n this.storeFormLinesData[item] = {\n ...this.filterStoreFormLinesData[index],\n ...lines[index],\n };\n });\n } else if (lines.length > this.filterIndexStore.length) {\n // 有新增数据的情况\n // step 1: 先找新增的index下标\n const getNowLines = this.validateHdFormLines.getRawValue().lines;\n let addIndex = -1;\n for (let i = 0; i < getNowLines.length; i++) {\n if (getNowLines[i].isHdFormLineSearchAdd) {\n addIndex = i;\n break;\n }\n }\n if (addIndex !== -1) {\n this.storeFormLinesData.splice(\n this.filterIndexStore[addIndex - 1] + 1,\n 0,\n getNowLines[addIndex],\n );\n }\n this.filterIndexStore.push(this.filterIndexStore[addIndex - 1] + 1);\n } else {\n // 有删除数据的情况\n // step 1:先找到删除的index下标\n let deletedIndex = -1;\n let count = 0;\n if (lines.length === 0) {\n deletedIndex = 0;\n } else {\n for (let i = 0; i < lines.length; i++) {\n if (lines[i].lineIndex - count > 1) {\n deletedIndex = i;\n break;\n }\n count++;\n }\n }\n if (deletedIndex !== -1) {\n // step 2: 删除总数据中的对应数据, 把下标数组和lines长度对齐,同时把下标数组在deletedIndex后面的值全都-1\n this.storeFormLinesData = this.storeFormLinesData.filter(\n (item, index) => {\n return index !== this.filterIndexStore[deletedIndex];\n },\n );\n this.filterIndexStore.splice(deletedIndex, 1);\n for (let i = 0; i < this.filterIndexStore.length; i++) {\n if (i >= deletedIndex) {\n this.filterIndexStore[i]--;\n }\n }\n } else {\n // step 2: 没有找到deletedIndex说明删除操作在最后一行\n const filterIndex =\n this.filterIndexStore[this.filterIndexStore.length - 1];\n this.storeFormLinesData = this.storeFormLinesData.filter(\n (item, index) => {\n return index !== filterIndex;\n },\n );\n this.filterIndexStore.pop();\n }\n }\n } else {\n if (data && data.lines) {\n this.storeFormLinesData = data.lines;\n }\n }\n } else {\n if (data && data.lines) {\n this.storeFormLinesData = data.lines;\n }\n }\n\n // 总表单\n if (!this.isFilterData) {\n this.formValid = this.validateHdFormLines.valid;\n } else {\n if (this.formValid) {\n // 如果整体表单是true,不管子表单是什么,都变成子表单的状态\n this.formValid = this.validateHdFormLines.valid;\n } else {\n // 如果整体表单是false:1、子表单为true,需要重算;2、子表单为false,用子表单状态\n if (this.validateHdFormLines.valid) {\n this.formValid = this.innerGetValid();\n } else {\n this.formValid = this.validateHdFormLines.valid;\n }\n }\n }\n // this.calculateLineNumber();\n this.changeEvent.emit(this.validateHdFormLines);\n }\n\n private checkList(list: Array<FormLine>): boolean {\n if (!list || (list && list.length === 0)) {\n return false;\n }\n let nameList = [];\n let selectOptionCheckList = [];\n list.forEach((item) => {\n // 校验单项选择器\n // if (item.type === FormLineType.Select && (!item.selectList || (item.selectList && item.selectList.length === 0))) {\n // throw 'formLines组件数据格式不规范,存在单项选择器没有传入选项!'\n // }\n nameList.push(item.name);\n\n // 校验有onSearch的字段的selectOption的value、label是否在formLine里面都定义了\n if (item.onSearchEvent && item.selectOption) {\n selectOptionCheckList = [];\n list.forEach((innerItem) => {\n if (\n innerItem.name === item.selectOption.value ||\n innerItem.name === item.selectOption.label\n ) {\n selectOptionCheckList.push(innerItem.name);\n }\n });\n if (selectOptionCheckList.length < 2) {\n throw `formLines组件数据格式不规范,字段${item.name}的selectOption的value、label字段未能在formLines中找到对应字段!`;\n }\n }\n });\n // 校验name是否重复\n if ([...new Set(nameList)].length !== list.length) {\n throw \"formLines组件数据格式不规范,存在重复name值!\";\n }\n // ...more check\n return true;\n }\n\n public submitForm(): void {\n this.changeEvent.emit(this.validateHdFormLines.getRawValue());\n }\n\n public resetForm(): void {\n // 删除\n for (let i = this.linesFormArray.controls.length; i >= 0; i--) {\n this.deleteFormLine(i);\n }\n this.paginationPageIndex = 1;\n }\n\n public inputClean(formItem: any, line: any): void {\n line.get(formItem.name).setValue(null);\n }\n\n public selectValue(id: string, rowNumber: number, colNumber: number): void {\n const inputDom: any = document.querySelector(id);\n inputDom.select();\n this.setActiveDomInFormLines(rowNumber, colNumber);\n }\n\n private textWidthCache: { [key: string]: number } = {};\n\n isTextOverflow(text: string, maxWidth: number): boolean {\n const cachedWidth = this.textWidthCache[text];\n if (cachedWidth !== undefined) {\n return cachedWidth + 15 >= maxWidth;\n }\n\n const span = document.createElement(\"span\");\n span.style.visibility = \"hidden\";\n span.style.position = \"absolute\";\n span.style.whiteSpace = \"nowrap\";\n span.style.fontSize = \"14px\";\n span.style.display = \"inline-block\"; // 将样式修改为 inline-block\n span.innerText = text;\n document.body.appendChild(span);\n const isOverflow = span.offsetWidth + 15 >= maxWidth;\n this.textWidthCache[text] = span.offsetWidth;\n span.style.display = \"none\";\n document.body.removeChild(span);\n return isOverflow;\n }\n\n judgeColEmpty(str: any) {\n if (str || str === 0) {\n return str;\n } else {\n return \"<空>\";\n }\n }\n\n judgeValueIsNotEmpty(str: any) {\n if (str === null && str === undefined) {\n return false;\n } else {\n return true;\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { NgZorroAntdModule } from 'ng-zorro-antd';\nimport { HdButtonGroupModule } from '../hd-button-group/hd-button-group.module';\nimport { HdButtonModule } from '../hd-button/hd-button.module';\nimport { HdSpaceModule } from '../hd-space/hd-space.module';\nimport { HdFormLinesComponent } from './hd-form-lines.component';\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n NgZorroAntdModule,\n HdButtonModule,\n HdSpaceModule,\n HdButtonGroupModule\n ],\n declarations: [HdFormLinesComponent],\n exports: [HdFormLinesComponent]\n})\nexport class HdFormLinesModule { }\n","import { Injectable } from '@angular/core';\nimport { ValidatorFn } from '@angular/forms';\nimport { CascaderOption, CheckboxOption, InputNumber, RadioOption, SelectOption } from '../model/common-type';\n\n// 控件列表\nexport class FormItem {\n type: FormListType;\n label: string; // 文本\n name: string; // 字段名称\n require?: boolean = false; // 是否必填\n placeholder?: string; // 输入框提示文案\n width?: number = 1; // 占据的列数。默认1\n hide?: boolean = false; // 是否为隐藏字段,仅用于填充表单的字段,不显示在页面上\n totalWidth?: number = 0;\n isRowFirst?: number = 0; // 是否是一行的第一个元素\n columnItems?: Array<any>; // 当前行的所有列的items\n value?: string | boolean | number | Date | Array<string | number | boolean | Date> | null = null; // 值 不传默认为null\n disabled?: boolean;\n color?: string;\n // 组件内部成员\n maxLength?: number; // input控件的输入长度\n prefix?: string; // input前缀文字,对应 nz-input-group nzPrefix\n prefixIcon?: string; // input前缀图标,对应 nz-icon nzType\n selectOption?: SelectOption; // 控件为Select时,选项列表\n radioOption?: RadioOption; // 控件为Radio时,选项列表\n checkboxOption?: CheckboxOption; // 控件为Checkbox组时,选项列表\n inputNumber?: InputNumber = new InputNumber(); // number组件的min、max、step\n onChangeEvent?: Function; // 控件的值改变事件 可用于控件间联动\n onSearchEvent?: Function; // select选择器搜索事件 可用于更新备选集合\n onOpenChangeEvent?: Function; // select下拉展开/收起事件,可用于按需请求 selectList\n defaultLabel?: string | Array<string>; // select选择器不初始化的时候可以使用defaultLabel搭配value,设置默认值\n hdDisabledDate?: Function; // date-picker组件不可选择的日期\n hdShowToday?: boolean = true; // 对应 nzShowToday,是否显示「今天」按钮,默认 true\n explain?: string; // label底部的介绍\n textAreaRows?: number; // textArea的行数\n showTime?: boolean = false; // 日期选择器是否包含时间\n labelColor?: string; // label的文字的颜色\n validatorKeys?: Array<ValidatorKey>;\n validator?: ValidatorFn;\n onChangeEventDebounceTime?: number; // change事件防抖,默认 500ms\n onSearchEventEventDebounceTime?: number; // search事件防抖,默认 500ms\n onOpenChangeEventDebounceTime?: number; // 下拉展开事件防抖,默认 500ms,避免频繁打开重复请求\n cascaderOption?: CascaderOption; // 级联选择器配置\n format?: string; // 时间的格式化规则\n}\n\nexport class ValidatorKey {\n key: string;\n label: string;\n}\n\n// 控件类型\nexport enum FormListType {\n Input, // 输入框\n Select, // 单项选择器\n Date, // 单个日期选择\n DateRange, // 日期范围选择\n TextArea, // 块级输入框\n InputNumber, // 数字输入\n MultipleSelect, // 多选\n ViewDom, // 单纯的显示控件\n Switch, // 开关\n Time, // 时间选择器\n Cascader, // 级联选择器\n Radio, // 单选\n Checkbox // 复选框\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class HdFormService {\n constructor() {\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { Subject, Subscription } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\nimport { FormItem, FormListType } from './hd-form.service';\n// import * as moment from 'moment';\n@Component({\n selector: 'hd-form',\n templateUrl: './hd-form.component.html',\n styleUrls: ['./hd-form.component.less']\n})\nexport class HdFormComponent implements OnInit {\n\n @Input() formList: Array<FormItem>;\n @Output() changeEvent = new EventEmitter();\n validateHdForm: FormGroup;\n inputValue: string;\n\n private searchSubject = new Subject<{ fn: any, event: any; }>();\n private debounceTimeout: number = 0; // 默认防抖时间\n private searchSubscription: Subscription | undefined;\n\n private openChangeSubject = new Subject<{ fn: any, event: any; }>();\n private openChangeDebounceTimeout: number = 0;\n private openChangeSubscription: Subscription | undefined;\n\n constructor(private fb: FormBuilder) {\n this.searchSubscription = this.searchSubject.pipe(\n debounceTime(this.debounceTimeout)\n ).subscribe(({ fn, event }) => this.triggerEvent(fn, event));\n this.openChangeSubscription = this.openChangeSubject.pipe(\n debounceTime(this.openChangeDebounceTimeout)\n ).subscribe(({ fn, event }) => {\n // 防抖结束后仅展开态触发业务回调,避免频繁开关仍打接口\n if (event) {\n this.triggerEvent(fn, event);\n }\n });\n }\n\n ngOnInit() {\n if (!this.formList || this.formList.length === 0) {\n return;\n }\n\n this.init();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['formList'] && JSON.stringify(changes['formList'].currentValue) !== JSON.stringify(changes['formList'].previousValue)) {\n if (!this.formList || this.formList.length === 0) {\n return;\n }\n this.init();\n }\n }\n\n onSearchEvent(fn: any, event: any, onSearchEventDebounceTime: any) {\n if (!fn) {\n return;\n }\n // 父组件未配置时默认 500ms 防抖\n const debounceMs = onSearchEventDebounceTime != null ? onSearchEventDebounceTime : 500;\n this.debounceTimeout = debounceMs;\n if (this.searchSubscription) {\n this.searchSubscription.unsubscribe();\n }\n this.searchSubscription = this.searchSubject.pipe(\n debounceTime(this.debounceTimeout)\n ).subscribe(({ fn, event }) => this.triggerEvent(fn, event));\n this.searchSubject.next({ fn, event });\n }\n\n onOpenChangeEvent(fn: any, open: boolean, onOpenChangeEventDebounceTime: any) {\n if (!fn) {\n return;\n }\n // 父组件未配置时默认 500ms 防抖\n const debounceMs = onOpenChangeEventDebounceTime != null ? onOpenChangeEventDebounceTime : 500;\n this.openChangeDebounceTimeout = debounceMs;\n if (this.openChangeSubscription) {\n this.openChangeSubscription.unsubscribe();\n }\n this.openChangeSubscription = this.openChangeSubject.pipe(\n debounceTime(this.openChangeDebounceTimeout)\n ).subscribe(({ fn, event }) => {\n if (event) {\n this.triggerEvent(fn, event);\n }\n });\n this.openChangeSubject.next({ fn, event: open });\n }\n\n triggerEvent(fn: any, event: any) {\n if (fn) {\n fn(event);\n }\n }\n\n private init(): void {\n // 异常捕获\n if (!this.checkList(this.formList)) {\n throw 'form组件数据格式不规范';\n }\n // 对表单数据做初始化,用row隔离每行数据item\n this.dealRow();\n // 首先根据定义的组件数组 去初始化表单\n let formGroupList = {};\n this.formList.forEach((item, index) => {\n // 日期相关的控件做特殊处理\n if (item.type === 2 && item.value) {\n const [year, month, day] = item.value.toString().split('-').map(str => parseInt(str));\n const newDateStr = new Date(year, month - 1, day)\n .toLocaleDateString('zh-Hans-CN', { year: 'numeric', month: '2-digit', day: '2-digit' })\n .replace(/\\//g, '-');\n if (item.validator) {\n formGroupList[item.name] = this.fb.control({ value: new Date(newDateStr), disabled: item.disabled }, item.require && !item.hide ? [Validators.required, item.validator] : []);\n } else {\n formGroupList[item.name] = this.fb.control({ value: new Date(newDateStr), disabled: item.disabled }, item.require && !item.hide ? [Validators.required] : []);\n }\n } else if (item.type === 3 && item.value) {\n let formItemDate = JSON.parse(JSON.stringify(item.value));\n if (formItemDate && formItemDate instanceof Array) {\n formItemDate = formItemDate.map((item) => {\n const [year, month, day] = item.split('-').map(str => parseInt(str));\n const newDateStr = new Date(year, month - 1, day)\n .toLocaleDateString('zh-Hans-CN', { year: 'numeric', month: '2-digit', day: '2-digit' })\n .replace(/\\//g, '-');\n item = new Date(newDateStr);\n });\n if (item.validator) {\n formGroupList[item.name] = this.fb.control({ value: formItemDate, disabled: item.disabled }, item.require && !item.hide ? [Validators.required, item.validator] : []);\n } else {\n formGroupList[item.name] = this.fb.control({ value: formItemDate, disabled: item.disabled }, item.require && !item.hide ? [Validators.required] : []);\n }\n } else {\n throw 'form组件中DateRange控件value值格式不规范,正确示例[\\'2020-01-22\\', \\'2020-01-23\\']';\n }\n } else if (item.type === FormListType.Checkbox && item.checkboxOption) {\n const checkboxValue = Array.isArray(item.value) ? item.value : [];\n if (item.validator) {\n formGroupList[item.name] = this.fb.control({ value: checkboxValue, disabled: item.disabled }, item.require && !item.hide ? [Validators.required, item.validator] : []);\n } else {\n formGroupList[item.name] = this.fb.control({ value: checkboxValue, disabled: item.disabled }, item.require && !item.hide ? [Validators.required] : []);\n }\n } else if (item.type === FormListType.Checkbox) {\n const checkboxValue = item.value != null ? item.value : false;\n if (item.validator) {\n formGroupList[item.name] = this.fb.control({ value: checkboxValue, disabled: item.disabled }, item.require && !item.hide ? [Validators.required, item.validator] : []);\n } else {\n formGroupList[item.name] = this.fb.control({ value: checkboxValue, disabled: item.disabled }, item.require && !item.hide ? [Validators.required] : []);\n }\n } else {\n if (item.validator) {\n formGroupList[item.name] = this.fb.control({ value: item.value, disabled: item.disabled }, item.require && !item.hide ? [Validators.required, item.validator] : []);\n } else {\n formGroupList[item.name] = this.fb.control({ value: item.value, disabled: item.disabled }, item.require && !item.hide ? [Validators.required] : []);\n }\n }\n });\n\n this.validateHdForm = this.fb.group(formGroupList);\n\n this.formList.forEach((item) => {\n if (item.onChangeEvent) {\n // 父组件未配置时默认 500ms 防抖\n const debounceMs = item.onChangeEventDebounceTime != null ? item.onChangeEventDebounceTime : 500;\n this.validateHdForm.get(item.name).valueChanges\n .pipe(debounceTime(debounceMs))\n .subscribe(value => this.triggerEvent(item.onChangeEvent, value));\n }\n });\n this.validateHdForm.valueChanges.subscribe(data => this.onHdFormValueChanged(data));\n this.onHdFormValueChanged();\n }\n\n private dealRow() {\n // 一阶段 遍历数据计算相关数据\n const formListLength = this.formList.length;\n let step = 0;\n for (let i = 0; i < formListLength; i++) {\n if (!this.formList[i].hide) {\n if (i === 0) {\n this.formList[i].totalWidth = this.formList[i].width || 1;\n this.formList[i].isRowFirst = 1;\n step = step + 4;\n } else {\n // 去找到前一个非hide的控件\n for (let j = i - 1; j >= 0; j--) {\n if (this.formList[j].totalWidth) {\n this.formList[i].totalWidth = this.formList[j].totalWidth + (this.formList[i].width || 1);\n if ((this.formList[j].totalWidth + (this.formList[i].width || 1)) > step && this.formList[j].totalWidth <= step) {\n step = step + 4;\n this.formList[i].isRowFirst = 1;\n } else {\n this.formList[i].isRowFirst = 0;\n }\n break;\n }\n }\n }\n }\n }\n\n // 二阶段 isRowFirst的数组项增加子节点\n for (let m = 0; m < formListLength; m++) {\n if (this.formList[m].isRowFirst === 1) {\n this.formList[m].columnItems = [];\n let space = 0;\n for (let n = 1; n < formListLength - m; n++) {\n if (space === 4 || this.formList[m + n].isRowFirst === 1) {\n break;\n }\n if (!this.formList[m + n].hide && this.formList[m + n] && this.formList[m + n].isRowFirst === 0) {\n this.formList[m].columnItems.push(this.formList[m + n]);\n space++;\n }\n }\n }\n }\n }\n\n private onHdFormValueChanged(data?: any) {\n this.changeEvent.emit(this.validateHdForm);\n }\n\n private checkList(list: Array<FormItem>): boolean {\n if (!list || (list && list.length === 0)) {\n return false;\n }\n let nameList = [];\n list.forEach((item) => {\n // 校验单项选择器\n // if (item.type === FormListType.Select && (!item.selectOption.selectList || (item.selectOption.selectList && item.selectOption.selectList.length === 0))) {\n // throw 'form组件数据格式不规范,存在单项选择器没有传入选项!'\n // }\n nameList.push(item.name);\n });\n // 校验name是否重复\n if ([...new Set(nameList)].length !== list.length) {\n throw 'form组件数据格式不规范,存在重复name值!';\n }\n // ...more check\n return true;\n }\n\n public submitForm(): void {\n Object.values(this.validateHdForm.controls).forEach(control => {\n control.markAsDirty();\n control.updateValueAndValidity();\n });\n this.changeEvent.emit(this.validateHdForm.getRawValue());\n }\n\n public resetForm(): void {\n this.validateHdForm.reset();\n Object.values(this.validateHdForm.controls).forEach(control => {\n control.markAsDirty();\n control.updateValueAndValidity();\n });\n this.changeEvent.emit(this.validateHdForm.getRawValue());\n }\n\n public inputClean(filter: FormItem): void {\n const patchObject = {};\n patchObject[filter.name] = null;\n this.validateHdForm.patchValue(patchObject);\n }\n\n isCheckboxChecked(name: string, value: any): boolean {\n const control = this.validateHdForm.get(name);\n const current = control ? control.value : null;\n return Array.isArray(current) && current.indexOf(value) !== -1;\n }\n\n onCheckboxItemChange(name: string, value: any, checked: boolean): void {\n const control = this.validateHdForm.get(name);\n if (!control) {\n return;\n }\n const current = Array.isArray(control.value) ? [...control.value] : [];\n const index = current.indexOf(value);\n if (checked && index === -1) {\n current.push(value);\n } else if (!checked && index !== -1) {\n current.splice(index, 1);\n }\n control.setValue(current);\n control.markAsDirty();\n control.updateValueAndValidity();\n }\n\n readonly inputNumberDefaultFormatter = (value: unknown) => value;\n readonly inputNumberDefaultParser = (value: string) => value;\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { HdFormComponent } from './hd-form.component';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { NgZorroAntdModule } from 'ng-zorro-antd';\nimport { HdButtonModule } from '../hd-button/hd-button.module';\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n NgZorroAntdModule,\n HdButtonModule\n ],\n declarations: [HdFormComponent],\n exports: [HdFormComponent]\n})\nexport class HdFormModule { }\n","import { Component, ContentChild, EventEmitter, Input, OnInit, Output, SimpleChange, SimpleChanges, TemplateRef } from '@angular/core';\nimport { TableTotalOption } from './hd-current-table.service';\nimport { InputBoolean } from 'ng-zorro-antd/core';\nimport { Page } from '../model/common-type';\n\n@Component({\n selector: 'hd-current-table',\n templateUrl: './hd-current-table.component.html',\n styleUrls: ['./hd-current-table.component.less']\n})\nexport class HdCurrentTableComponent implements OnInit {\n @Input() tableData: Page<any>;\n @Input() scroll: { [key: string]: string } = { x: '1px' };\n @Input() @InputBoolean() showSelected: boolean = false;\n @Input() selectField: string = 'billNumber';\n // 合计区域\n @Input() @InputBoolean() showTableTotal: boolean = false;\n @Input() tableTotalOption: Array<TableTotalOption>;\n @Output() selectEvent = new EventEmitter();\n @Output() tableSearchEvent = new EventEmitter();\n @ContentChild(\"tableHead\", { static: false }) tableHead: TemplateRef<any>;\n @ContentChild(\"tableBody\", { static: false }) tableBody: TemplateRef<any>;\n @ContentChild(\"tableTotal\", { static: false }) tableTotal: TemplateRef<any>;\n\n @Input() tableLoading: boolean = false;\n // 表格分页参数\n @Input() tablePageIndex: number = 1;\n @Input() tablePageSize: number = 10;\n @Output() tablePageIndexChange = new EventEmitter<any>();\n @Output() tablePageSizeChange = new EventEmitter<any>();\n // 表格勾选参数\n isAllDisplayDataChecked = false;\n isIndeterminate = false;\n listOfDisplayData = [];\n listOfAllData = [];\n listOfSelection: Array<any> | TemplateRef<void>;\n mapOfCheckedId: { [key: string]: boolean } = {};\n mapOfCheckList: { [key: string]: any } = {};\n\n tableTotalOptionList = [];\n\n constructor() { }\n\n ngOnInit(): void { }\n\n ngOnChanges(changes: SimpleChange) {\n // 数据改变时,重置勾选状态\n if (changes && changes['tableData'] && changes['tableData']['currentValue'] && changes['tableData']['previousValue']) {\n if(changes['tableData']['currentValue']['pageSize'] !== changes['tableData']['previousValue']['pageSize']\n || changes['tableData']['currentValue']['pageNumber'] !== changes['tableData']['previousValue']['pageNumber']){\n return;\n }\n this.resetStatus();\n }\n }\n\n // 表格勾选逻辑\n currentPageDataChange($event: any): void {\n this.listOfDisplayData = $event;\n this.refreshStatus();\n this.resetStatus();\n }\n\n search(reset: boolean) {\n if(reset){\n this.tablePageSizeChange.emit(this.tablePageSize);\n }else{\n this.tablePageIndexChange.emit(this.tablePageIndex);\n }\n // 触发父组件查询事件\n this.tableSearchEvent.emit(reset);\n }\n\n resetStatus() {\n this.isAllDisplayDataChecked = false;\n this.isIndeterminate = false;\n this.mapOfCheckedId = {};\n this.mapOfCheckList = {};\n this.selectEvent.emit([]);\n }\n\n refreshStatus(event: boolean = false, data: any = null): void {\n if (event && data) {\n !this.mapOfCheckList[data[this.selectField]] && (this.mapOfCheckList[data[this.selectField]] = data);\n } else if (!event && data) {\n this.mapOfCheckList[data[this.selectField]] && delete this.mapOfCheckList[data[this.selectField]];\n }\n this.isAllDisplayDataChecked = this.listOfDisplayData.every(item => this.mapOfCheckedId[item[this.selectField]]);\n this.isIndeterminate =\n this.listOfDisplayData.some(item => this.mapOfCheckedId[item[this.selectField]]) && !this.isAllDisplayDataChecked;\n // 触发select事件\n if (this.selectEvent) {\n const selectedList: Array<any> = Object.values(this.mapOfCheckList);\n this.selectEvent.emit(selectedList);\n }\n // 如果数据为空,则清空勾选标识\n if (this.tableData.content.length === 0) {\n this.isAllDisplayDataChecked = false;\n }\n }\n\n checkAll(value: boolean): void {\n this.listOfDisplayData.forEach(item => {\n if (value) {\n !this.mapOfCheckList[item[this.selectField]] && (this.mapOfCheckList[item[this.selectField]] = item);\n } else {\n this.mapOfCheckList[item[this.selectField]] && delete this.mapOfCheckList[item[this.selectField]];\n }\n\n this.mapOfCheckedId[item[this.selectField]] = value\n });\n this.refreshStatus();\n }\n}\n","import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { HdCurrentTableComponent } from './hd-current-table.component';\nimport { NzTableModule } from 'ng-zorro-antd/table';\nimport { HdSpaceModule } from '../hd-space/hd-space.module';\n\n@NgModule({\n imports: [\n CommonModule,\n NzTableModule,\n HdSpaceModule\n ],\n declarations: [HdCurrentTableComponent],\n exports: [HdCurrentTableComponent],\n schemas: [NO_ERRORS_SCHEMA]\n})\nexport class HdCurrentTableModule { }\n","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'hd-log',\n templateUrl: './hd-log.component.html',\n styleUrls: ['./hd-log.component.less']\n})\nexport class HdLogComponent implements OnInit {\n @Input() logs: any[];\n\n constructor() {\n }\n\n ngOnInit() {\n }\n}\n","import { Injectable, NgModule } from '@angular/core';\nimport { NzModalService } from 'ng-zorro-antd';\nimport { HdLogComponent } from './hd-log.component';\n\n@Injectable({\n providedIn: 'root',\n})\n\nexport class HdLogService {\n\n constructor(private modalService: NzModalService) { }\n\n showLogs(logs: any[]) {\n this.modalService.create({\n nzTitle: '操作日志',\n nzContent: HdLogComponent,\n nzComponentParams: { logs },\n nzFooter: null,\n nzWidth: 1000\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { HdLogComponent } from './hd-log.component';\nimport { NgZorroAntdModule } from 'ng-zorro-antd';\nimport { HdDetailLinesModule } from '../hd-detail-lines/hd-detail-lines.module';\nimport { HdLogService } from './hd-log.service';\n@NgModule({\n imports: [\n CommonModule,\n NgZorroAntdModule,\n HdDetailLinesModule\n ],\n entryComponents: [HdLogComponent],\n declarations: [HdLogComponent],\n exports: [HdLogComponent],\n providers: [HdLogService]\n})\nexport class HdLogModule { }\n","import { Component, OnInit, Output, Input, EventEmitter } from '@angular/core';\n\n@Component({\n selector: 'hd-popconfirm',\n templateUrl: './hd-popconfirm.component.html',\n styleUrls: ['./hd-popconfirm.component.less']\n})\nexport class HdPopconfirmComponent implements OnInit {\n @Input() message: string;\n @Output() confirmOption = new EventEmitter<any>();\n @Output() cancelOption = new EventEmitter<any>();\n\n constructor() { }\n\n ngOnInit() {\n }\n\n\n cancel(e: any): void{\n this.cancelOption.emit();\n }\n\n confirm(e: any): void{\n this.confirmOption.emit();\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { NgZorroAntdModule } from 'ng-zorro-antd';\nimport { HdPopconfirmComponent } from \"./hd-popconfirm.component\";\n\n@NgModule({\n declarations: [\n HdPopconfirmComponent\n ],\n imports: [\n FormsModule,\n ReactiveFormsModule,\n CommonModule,\n NgZorroAntdModule,\n ],\n exports: [HdPopconfirmComponent],\n providers: [],\n bootstrap: [HdPopconfirmComponent]\n})\nexport class HdPopconfirmModule {\n}\n","import { Component, OnInit, Input, SimpleChange } from \"@angular/core\";\nimport { statusToColor } from \"./hd-status.service\";\n\n@Component({\n selector: \"hd-status\",\n templateUrl: \"./hd-status.component.html\",\n styleUrls: [\"./hd-status.component.less\"],\n})\nexport class HdStatusComponent implements OnInit {\n @Input() status: string;\n statusColor: string;\n\n constructor() {}\n\n ngOnInit() {\n this.setStatusColor();\n }\n\n ngOnChanges() {\n this.setStatusColor();\n }\n\n setStatusColor() {\n let findKey = \"\";\n const statusLower = this.status && this.status.toLowerCase();\n for (const key in statusToColor) {\n if (\n statusLower &&\n statusToColor[key].some(\n (item) => item && item.toLowerCase() === statusLower,\n )\n ) {\n findKey = key; \n }\n }\n this.statusColor = findKey || \"#9FA4A2\";\n }\n}\n","import { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { NgZorroAntdModule } from 'ng-zorro-antd';\nimport { HdStatusComponent } from \"./hd-status.component\";\n\n@NgModule({\n declarations: [\n HdStatusComponent,\n ],\n imports: [\n FormsModule,\n ReactiveFormsModule,\n CommonModule,\n NgZorroAntdModule,\n ],\n exports: [HdStatusComponent],\n providers: [],\n bootstrap: [HdStatusComponent]\n})\nexport class HdStatusModule {\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class CommonSessionService {\n putSession(session_key: string, session: any) {\n if (session) {\n window.sessionStorage.setItem(session_key, JSON.stringify(session));\n } else {\n window.sessionStorage.removeItem(session_key);\n }\n }\n\n getSession(session_key: string): any {\n return JSON.parse(window.sessionStorage.getItem(session_key));\n }\n\n removeSession(session_key: string) {\n window.sessionStorage.removeItem(session_key);\n }\n}\n","export const ColWidth = {\n tableImageColWidth: 25, // 表格小图标宽度\n tableTwoImageColWidth: 40, // 表格小图标宽度\n billNumberColWidth: 150, // 单据单号列宽度\n nameColWidth: 150, // 基本资料名称列宽度\n codeColWidth: 100, // 基本资料代码列宽度\n codeNameColWidth: 200, // 用于门店、货主、供应商以“[code]name“格式展示时固定宽度\n enumColWidth: 100, // 枚举列宽度\n dateColWidth: 100, // 单个日期\n dateTimeColWidth: 150, // 单个日期带时间\n dateRangeWidth: 200, // 日期范围\n operateColWidth: 150, // 操作列宽度\n numberColWidth: 100, // 数字列\n remarkColWidth: 250, // 备注列\n fixColWidth: 150, // 不属于以上内容的列统一使用该宽度,增加超长省略\n maxColWidth: 350 // 用于展示订单内容,需要缩略、展开显示的列\n};\n","\n// 表格行\nexport class HdTableColumn {\n title: string; // 列名\n name: string | Function = null; // 字段名\n render?: (value: any) => string; // 渲染函数\n width?: number; // 列宽\n color?: string; // 颜色\n align?: 'right' | 'left' | 'center' = 'left';\n click?: (value: any) => void;\n fixed?: 'left' | 'right' = null;\n fixedWidth?: number; // 固定列宽度\n btnList?: Array<OperateBtn> = [];\n isShow?: boolean = true;\n canSort?: boolean = false; // 是否可以排序\n canWarp?: boolean = false; // 用于某一列需要个性化的场景,当为true时,且表格选项showOperateColWarpButton为true时,通过按钮控制对应的列是否换行\n minWidth?: number; // 最小宽度,保证列名能正常显示\n stateField?: string; // 状态列取值字段,默认取 state\n isState?: boolean; // 是否按状态列渲染,取值字段为 name\n}\n\nexport class OperateBtn {\n name: string;\n showConfirm?: boolean | ((line: any) => boolean) = false;\n isRepeat?: boolean = false; // 是否和别的按钮有显示冲突,譬如:开启,关闭需要再关闭按钮加一个这个属性\n click?: (value: any) => void;\n permission?: (value: any) => boolean;\n}\n\nexport class HdTableTotalOption {\n columnNumber: number; // 总列数\n insertIndex: number; // 插入下标\n insertName: string; // 插入字段\n}\n\nexport class TableCacheOption {\n pageSize: number;\n colWidths: Map<string, number> = new Map<string, number>(); // name -> width\n cols: Array<string>; // ['title']\n}\n\n// 设置列 树组件对象\nexport class TreeGrid {\n title: string = '';\n key: string = '';\n disabled?: boolean = false;\n checked?: boolean = false;\n selectable?: boolean = false;\n isLeaf?: boolean = true;\n expanded?: boolean = false;\n}","import {\n ChangeDetectorRef,\n Component,\n ContentChild,\n EventEmitter,\n Input,\n OnInit,\n Output,\n SimpleChange,\n TemplateRef,\n} from \"@angular/core\";\nimport * as localforage from \"localforage\";\nimport {\n InputBoolean,\n NzFormatBeforeDropEvent,\n NzFormatEmitEvent,\n} from \"ng-zorro-antd/core\";\nimport { NzResizeEvent } from \"ng-zorro-antd/resizable\";\nimport { Observable, of } from \"rxjs\";\nimport { delay } from \"rxjs/operators\";\nimport { ColWidth } from \"../model/colWidth\";\nimport { Page } from \"../model/common-type\";\nimport { CommonSessionService } from \"../service/common-session.service\";\nimport {\n HdTableColumn,\n HdTableTotalOption,\n OperateBtn,\n TableCacheOption,\n TreeGrid,\n} from \"./hd-table.service\";\n@Component({\n selector: \"hd-table\",\n templateUrl: \"./hd-table.component.html\",\n styleUrls: [\"./hd-table.component.less\"],\n})\nexport class HdTableComponent implements OnInit {\n @Input() uuid: string;\n @Input() tableCols: Array<HdTableColumn> = [];\n @Input() tableData: Page<any>;\n @Input() @InputBoolean() showSelected: boolean = false;\n @Input() @InputBoolean() showOperateColWarpButton: boolean = false;\n @Input() selectField: string = \"billNumber\";\n // 合计区域\n @Input() @InputBoolean() showTableTotal: boolean = false;\n @Input() tableTotalOption: Array<HdTableTotalOption>;\n @Output() sortEvent = new EventEmitter();\n @Output() selectEvent = new EventEmitter();\n @Output() tableSearchEvent = new EventEmitter();\n @Input() tableLoading: boolean = false;\n // 表格分页参数\n @Input() tablePageIndex: number = 1;\n @Input() tablePageSize: number = 10;\n @Input() isFirstEntrySearch: boolean;\n @Input() isCrossPageSelect: boolean;\n @Output() tablePageIndexChange = new EventEmitter<any>();\n @Output() tablePageSizeChange = new EventEmitter<any>();\n @Output() tablePageSizeChangeEvent = new EventEmitter<any>();\n @ContentChild(\"tableTotal\", { static: false }) tableTotal: TemplateRef<any>;\n @ContentChild(\"tableLeftButton\", { static: false })\n tableLeftButton: TemplateRef<any>;\n @ContentChild(\"tableRightButton\", { static: false })\n tableRightButton: TemplateRef<any>;\n scroll = null;\n\n // 表格勾选参数\n isAllDisplayDataChecked = false;\n isIndeterminate = false;\n listOfDisplayData = [];\n listOfAllData = [];\n listOfSelection: Array<any> | TemplateRef<void>;\n mapOfCheckedId: { [key: string]: boolean } = {};\n mapOfCheckList: { [key: string]: any } = {};\n // 合计参数\n tableTotalOptionList = [];\n private textWidthCache: { [key: string]: number } = {};\n // 缓存信息\n tableCacheOption: TableCacheOption = new TableCacheOption();\n userSession: any;\n\n tableColsCache: Array<HdTableColumn> = [];\n showTable: boolean = false;\n selectColListNodes: Array<TreeGrid> = [];\n selectColListNodesCache: Array<TreeGrid> = [];\n showListNodes: boolean = false;\n\n isDropdownVisible: boolean = false;\n // 设置列的可见操作数组\n nowListNodes: Array<TreeGrid> = [];\n // 设置列的不可见操作数组\n hideListNodes: Array<TreeGrid> = [];\n\n // 点击时需要有临时数组存放两个tree,用于取消时候恢复调整前的状态\n cancelNowListNodes: Array<TreeGrid> = [];\n cancelHideListNodes: Array<TreeGrid> = [];\n showDetail: boolean = false;\n localforage: any = null;\n localtionTmp: string = \"\";\n isFirstEntrySearchLocal: boolean = true;\n isCrossPageSelectLocal: boolean = false;\n\n constructor(\n private cdr: ChangeDetectorRef,\n private commonSessionService: CommonSessionService,\n ) {\n this.localforage = localforage.createInstance({\n driver: localforage.INDEXEDDB,\n name: \"hd-fscm\", // 设置存储库的名称\n version: 1.0, // 设置存储库的版本\n storeName: \"hd-fscm-store\", // 设置存储库的存储空间名称\n });\n }\n\n ngOnInit(): void {\n if (this.isFirstEntrySearch === false) {\n this.isFirstEntrySearchLocal = this.isFirstEntrySearch;\n }\n if (this.isCrossPageSelect === true) {\n this.isCrossPageSelectLocal = this.isCrossPageSelect;\n }\n this.localtionTmp = location.pathname;\n if (this.localtionTmp) {\n this.localtionTmp = this.localtionTmp.replace(/\\//g, \"_\");\n }\n this.userSession = this.commonSessionService.getSession(\n \"__jy_authorization_session__\",\n );\n // 用于开发环境调试\n if (!this.userSession) {\n this.userSession = {\n userCode: \"dev\",\n };\n }\n\n this.deleteHideItem();\n if (!this.tableCols || this.tableCols.length === 0) {\n return;\n }\n\n this.localforage\n .ready()\n .then(() => {\n this.getInitLocalforage();\n })\n .catch(function (e) {\n console.log(\"localforage加载异常step1\", e);\n throw \"localforage加载异常\";\n });\n }\n\n ngOnChanges(changes: SimpleChange) {\n // 数据改变时,重置勾选状态\n if (\n changes &&\n changes[\"tableData\"] &&\n changes[\"tableData\"][\"currentValue\"] &&\n changes[\"tableData\"][\"previousValue\"]\n ) {\n if (\n changes[\"tableData\"][\"currentValue\"][\"pageSize\"] !==\n changes[\"tableData\"][\"previousValue\"][\"pageSize\"] ||\n changes[\"tableData\"][\"currentValue\"][\"pageNumber\"] !==\n changes[\"tableData\"][\"previousValue\"][\"pageNumber\"]\n ) {\n return;\n }\n if (!this.isCrossPageSelectLocal) {\n this.resetStatus();\n }\n }\n\n if (\n changes[\"tableCols\"] &&\n JSON.stringify(changes[\"tableCols\"].currentValue) !==\n JSON.stringify(changes[\"tableCols\"].previousValue) &&\n changes[\"tableCols\"].previousValue !== undefined\n ) {\n this.deleteHideItem();\n if (!this.tableCols || this.tableCols.length === 0) {\n return;\n }\n this.localforage\n .ready()\n .then(() => {\n this.getInitLocalforage();\n })\n .catch(function (e) {\n console.log(\"localforage加载异常step2\", e);\n throw \"localforage加载异常\";\n });\n }\n }\n\n deleteHideItem() {\n // 首先把isShow为false数据剔除掉\n this.tableCols = this.tableCols.filter((item) => {\n // 如果对象没有 isShow 属性,则默认为 true,保留该对象\n if (!item.hasOwnProperty(\"isShow\")) {\n return true;\n }\n // 如果对象有 isShow 属性,则检查其值是否为 true\n return item.isShow === true;\n });\n }\n\n sort(sort: { key: string; value: string }) {\n this.sortEvent.emit(sort);\n }\n\n getInitLocalforage() {\n // 首先获取当前hd-table存储的数据 如果没有,则初始化下当前的数据\n this.localforage\n .getItem(\n \"hd-table_\" +\n this.userSession.userCode +\n \"_\" +\n this.localtionTmp +\n \"_\" +\n this.uuid,\n )\n .then((value: TableCacheOption) => {\n if (value) {\n this.tableCacheOption = value;\n this.normalizeTableCacheOption();\n if (\n this.tableCacheOption.pageSize &&\n this.tableCacheOption.pageSize > 10\n ) {\n this.tablePageSize = this.tableCacheOption.pageSize;\n this.tablePageSizeChange.emit(this.tablePageSize);\n }\n } else {\n this.tableCacheOption = new TableCacheOption();\n this.tableCacheOption.pageSize = this.tablePageSize;\n }\n if (this.isFirstEntrySearchLocal) {\n this.tablePageSizeChangeEvent.emit(this.tablePageSize);\n } else {\n this.isFirstEntrySearchLocal = true;\n }\n this.initTable();\n })\n .catch((err) => {\n this.tableCacheOption = new TableCacheOption();\n this.tableCacheOption.pageSize = this.tablePageSize;\n this.initTable();\n });\n }\n\n initTable() {\n this.showTable = false;\n if (!this.uuid) {\n throw \"hd-table缺失uuid参数,请使用编辑器插件生成并给hd-table赋予uuid属性\";\n }\n if (this.judgeRepeatCols()) {\n this.dealCols();\n this.setCols();\n this.dealScroll();\n this.dealOperateBtn();\n this.showTable = true;\n }\n }\n\n // 设置列点击取消\n cancelDropdown(): void {\n this.isDropdownVisible = false;\n this.hideListNodes = JSON.parse(JSON.stringify(this.cancelHideListNodes));\n this.nowListNodes = JSON.parse(JSON.stringify(this.cancelNowListNodes));\n }\n\n // 点击触发设置列\n confirmDropdown(): void {\n // 临时存放下,取消的时候恢复原来的状态 深拷贝下对象数组\n this.cancelHideListNodes = JSON.parse(JSON.stringify(this.hideListNodes));\n this.cancelNowListNodes = JSON.parse(JSON.stringify(this.nowListNodes));\n this.isDropdownVisible = true;\n }\n\n submitGrids() {\n this.tableCacheOption.cols = [];\n this.nowListNodes.forEach((item) => {\n this.tableCacheOption.cols.push(item.title);\n });\n this.saveTableCacheOption();\n this.initTable();\n this.isDropdownVisible = false;\n }\n\n // 从缓存设置列\n setCols() {\n this.showListNodes = false;\n this.nowListNodes = [];\n this.hideListNodes = [];\n if (this.hasColsCache()) {\n let { notIncols, incols } = this.tableColsCache.reduce(\n (acc, item) => {\n if (this.tableCacheOption.cols.includes(item.title)) {\n acc.incols.push(item);\n } else {\n acc.notIncols.push(item);\n }\n return acc;\n },\n { notIncols: [], incols: [] },\n );\n incols.sort((a, b) => {\n return (\n this.tableCacheOption.cols.indexOf(a.title) -\n this.tableCacheOption.cols.indexOf(b.title)\n );\n });\n this.tableCols = incols.concat(notIncols);\n }\n\n this.tableCols.forEach((element, index) => {\n if (this.hasColsCache()) {\n element.isShow = this.tableCacheOption.cols.includes(element.title)\n ? true\n : false;\n if (element.isShow) {\n this.nowListNodes.push({\n title: element.title,\n key: element.title,\n disabled: element.fixed ? true : false,\n // selectable: false,\n checked: this.tableCacheOption.cols.includes(element.title)\n ? true\n : false,\n });\n } else {\n this.hideListNodes.push({\n title: element.title,\n key: element.title,\n disabled: element.fixed ? true : false,\n // selectable: false,\n checked: this.tableCacheOption.cols.includes(element.title)\n ? true\n : false,\n });\n }\n } else {\n element.isShow = true;\n this.nowListNodes.push({\n title: element.title,\n key: element.title,\n checked: true,\n // selectable: false,\n disabled: element.fixed ? true : false,\n });\n }\n });\n\n // 调整列宽为缓存宽度\n if (\n this.tableCacheOption &&\n this.tableCacheOption.colWidths &&\n this.tableCacheOption.colWidths.size !== 0\n ) {\n this.tableCols.forEach((col) => {\n if (this.tableCacheOption.colWidths.has(col.title)) {\n col.width = this.tableCacheOption.colWidths.get(col.title);\n }\n });\n }\n\n this.dealCols();\n setTimeout(() => {\n this.showListNodes = true;\n }, 0);\n }\n\n // 拖拽操作\n beforeDrop = (arg: NzFormatBeforeDropEvent): Observable<boolean> => {\n if (\n arg.node.origin.disabled ||\n !arg.dragNode.origin.checked ||\n arg.pos === 0\n ) {\n return of(false);\n } else {\n let node: TreeGrid = new TreeGrid();\n node.checked = arg.dragNode.origin.checked;\n node.disabled = arg.dragNode.origin.disabled;\n node.expanded = arg.dragNode.origin.expanded;\n node.isLeaf = arg.dragNode.origin.isLeaf;\n node.key = arg.dragNode.origin.key;\n node.selectable = arg.dragNode.origin.selectable;\n node.title = arg.dragNode.origin.title;\n // 拖拽元素下标\n let dragNodeIndex = this.nowListNodes.findIndex((item) => {\n return item.title == arg.dragNode.origin.title;\n });\n // 目标位置的下标\n let nodeIndex =\n this.nowListNodes.findIndex((item) => {\n return item.title == arg.node.origin.title;\n }) + (arg.pos === -1 ? 0 : arg.pos);\n this.nowListNodes.splice(nodeIndex, 0, node);\n this.nowListNodes.splice(\n nodeIndex >= dragNodeIndex ? dragNodeIndex : dragNodeIndex + 1,\n 1,\n );\n return of(true).pipe(delay(100));\n }\n };\n\n moveElementNearby(arr, elementToMoveTitle, targetElementTitle, pos) {\n const tmpArray = JSON.parse(JSON.stringify(arr));\n const targetIndex = tmpArray.findIndex(\n (item) => item.title === targetElementTitle,\n );\n const elementIndex = tmpArray.findIndex(\n (item) => item.title === elementToMoveTitle,\n );\n const newIndex = pos < 0 ? targetIndex + pos : targetIndex;\n // 移除目标元素,并插入到新的位置\n const removedElement = tmpArray.splice(elementIndex, 1);\n tmpArray.splice(newIndex + 1, 0, removedElement[0]);\n return tmpArray;\n }\n\n // 勾选操作\n checkAction(event: NzFormatEmitEvent): void {\n // 勾选只有在hideListNodes,取消勾选只有在nowListNodes\n if (event.node.origin.checked) {\n let node: TreeGrid = new TreeGrid();\n node = this.hideListNodes.find((item) => {\n return item.title === event.node.origin.title;\n });\n node.checked = true;\n // 找到第一个fixed属性为right的title,找到插入元素的位置\n let title = null;\n for (let i = this.tableColsCache.length - 1; i >= 0; i--) {\n if (this.tableColsCache[i].fixed === \"right\") {\n title = this.tableColsCache[i].title;\n break;\n }\n }\n let temporaryNodeList = this.nowListNodes.slice(0);\n if (!title) {\n temporaryNodeList.push(node);\n } else {\n const index = this.nowListNodes.findIndex(\n (node) => node.title === title,\n );\n temporaryNodeList.splice(index, 0, node);\n }\n this.nowListNodes = temporaryNodeList;\n this.hideListNodes = this.hideListNodes.filter((item) => {\n return item.title !== event.node.origin.title;\n });\n } else {\n // if (this.hideListNodes.length === 0 && this.tableCacheOption && this.tableCacheOption.cols) {\n // this.hideListNodes = this.getHideListNodes();\n // }\n let temporaryNodeList = this.hideListNodes.slice(0);\n this.nowListNodes.forEach((item) => {\n if (item.title === event.node.origin.title) {\n const innerItem = JSON.parse(JSON.stringify(item));\n innerItem.checked = false;\n temporaryNodeList.push(innerItem);\n }\n });\n this.hideListNodes = temporaryNodeList;\n\n // 为了防止未选择的数组顺序因为push方法而改变,通过初始数据获取显示的字段列表\n this.nowListNodes = this.nowListNodes.filter((item) => {\n return item.title !== event.node.origin.title;\n });\n }\n }\n\n // 防止未选择的数组顺序因为push方法而改变,从初始数据获取隐藏未显示的字段列表\n getHideListNodes(): Array<TreeGrid> {\n let temporaryNodeList: Array<TreeGrid> = [];\n // 从tableColsCache里面找没有在storage里面出现的字段,组成hideList\n this.tableColsCache.forEach((item) => {\n if (!this.tableCacheOption.cols.includes(item.title)) {\n let nodeItem: TreeGrid = new TreeGrid();\n nodeItem.title = item.title;\n nodeItem.key = item.title;\n nodeItem.disabled = item.fixed ? true : false;\n nodeItem.checked = false;\n temporaryNodeList.push(nodeItem);\n }\n });\n return temporaryNodeList;\n }\n\n dealCols() {\n if (!this.tableCols[0].minWidth) {\n this.tableCols.forEach((item) => {\n const span = document.createElement(\"span\");\n span.style.visibility = \"hidden\";\n span.style.position = \"absolute\";\n span.style.whiteSpace = \"nowrap\";\n span.style.fontSize = \"14px\";\n span.style.display = \"inline-block\"; // 将样式修改为 inline-block\n span.innerText = item.title;\n document.body.appendChild(span);\n item.minWidth = span.offsetWidth + 16;\n span.style.display = \"none\";\n document.body.removeChild(span);\n });\n }\n // 处理左右吸附的数据在数组中的位置\n const leftFixedCols = this.tableCols.filter((col) => col.fixed === \"left\");\n const rightFixedCols = this.tableCols.filter(\n (col) => col.fixed === \"right\",\n );\n const normalCols = this.tableCols.filter((col) => !col.fixed);\n const resultCols = leftFixedCols.concat(normalCols).concat(rightFixedCols);\n this.tableCols = resultCols;\n if (!this.tableColsCache || this.tableColsCache.length === 0) {\n // 缓存一下表格的数据\n this.tableColsCache = [...this.tableCols];\n }\n }\n\n normalizeTableCacheOption() {\n if (!this.tableCacheOption.colWidths) {\n this.tableCacheOption.colWidths = new Map<string, number>();\n } else if (!(this.tableCacheOption.colWidths instanceof Map)) {\n const colWidths = new Map<string, number>();\n Object.keys(this.tableCacheOption.colWidths).forEach((key) => {\n colWidths.set(key, (this.tableCacheOption.colWidths as any)[key]);\n });\n this.tableCacheOption.colWidths = colWidths;\n }\n }\n\n private hasColsCache(): boolean {\n return !!(this.tableCacheOption && this.tableCacheOption.cols && this.tableCacheOption.cols.length > 0);\n }\n\n saveTableCacheOption() {\n this.localforage.setItem(\n \"hd-table_\" +\n this.userSession.userCode +\n \"_\" +\n this.localtionTmp +\n \"_\" +\n this.uuid,\n this.tableCacheOption,\n );\n }\n\n judgeRepeatCols() {\n for (let i = 0; i < this.tableCols.length; i++) {\n for (let j = i + 1; j < this.tableCols.length; j++) {\n if (this.tableCols[i].title === this.tableCols[j].title) {\n throw `hd-table组件中列名 ${this.tableCols[i].title} 重复`;\n }\n }\n }\n return true;\n }\n\n onResize({ width }: NzResizeEvent, col: HdTableColumn): void {\n this.normalizeTableCacheOption();\n let tempWidth = 0;\n if (width > col.minWidth) {\n tempWidth = width;\n } else {\n tempWidth = col.minWidth;\n }\n this.tableCacheOption.colWidths.set(col.title, tempWidth);\n this.saveTableCacheOption();\n this.tableCols = this.tableCols.map((e) =>\n e.title === col.title ? { ...e, width: tempWidth } : e,\n );\n this.dealScroll();\n }\n\n dealOperateBtn() {\n let operateCol = this.tableCols.find((col) => col.title === \"操作\") || null;\n if (operateCol) {\n let textStr = \"\";\n operateCol.btnList.forEach((btn) => {\n if (!btn.isRepeat) {\n textStr += btn.name;\n }\n });\n\n const span = document.createElement(\"a\");\n span.style.visibility = \"hidden\";\n span.style.position = \"absolute\";\n span.style.whiteSpace = \"nowrap\";\n span.style.fontSize = \"14px\";\n span.style.display = \"inline-block\"; // 将样式修改为 inline-block\n span.innerText = textStr;\n document.body.appendChild(span);\n operateCol.width =\n span.offsetWidth +\n (operateCol.btnList.filter((item) => !item.isRepeat).length - 1) * 4 +\n 16;\n span.style.display = \"none\";\n document.body.removeChild(span);\n }\n }\n\n triggerEvent(fn: any, event: any) {\n if (fn) {\n fn(event);\n }\n }\n\n needShowConfirm(btn: OperateBtn, data: any): boolean {\n if (typeof btn.showConfirm === \"function\") {\n return btn.showConfirm(data);\n }\n return !!btn.showConfirm;\n }\n\n dealScroll() {\n let colWidth = 0;\n if (this.showSelected) {\n colWidth += 40;\n }\n this.tableCols.forEach((item) => {\n if (!item.width) {\n item.width = ColWidth.fixColWidth;\n }\n if (item.isShow) {\n item.fixedWidth = colWidth;\n colWidth += item.width;\n }\n });\n\n if (this.tableTotal) {\n this.scroll = {\n x: \"1px\",\n y: \"calc(100vh - 180px)\",\n };\n } else {\n this.scroll = {\n x: \"1px\",\n y: \"calc(100vh - 140px)\",\n };\n }\n }\n\n isTextOverflow(text: string, maxWidth: number): boolean {\n const cachedWidth = this.textWidthCache[text];\n if (cachedWidth !== undefined) {\n return cachedWidth + 15 >= maxWidth;\n }\n\n const span = document.createElement(\"span\");\n span.style.visibility = \"hidden\";\n span.style.position = \"absolute\";\n span.style.whiteSpace = \"nowrap\";\n span.style.fontSize = \"14px\";\n span.style.display = \"inline-block\"; // 将样式修改为 inline-block\n span.innerText = text;\n document.body.appendChild(span);\n const isOverflow = span.offsetWidth + 15 >= maxWidth;\n this.textWidthCache[text] = span.offsetWidth;\n span.style.display = \"none\";\n document.body.removeChild(span);\n return isOverflow;\n }\n\n // 表格勾选逻辑\n currentPageDataChange($event: any): void {\n this.listOfDisplayData = $event;\n this.refreshStatus();\n if (!this.isCrossPageSelectLocal) {\n this.resetStatus();\n }\n }\n\n search(reset: boolean) {\n this.tableCacheOption.pageSize = this.tablePageSize;\n this.saveTableCacheOption();\n if (reset) {\n this.tablePageSizeChange.emit(this.tablePageSize);\n this.tablePageSizeChangeEvent.emit(this.tablePageSize);\n } else {\n this.tablePageIndexChange.emit(this.tablePageIndex);\n // 触发父组件查询事件\n this.tableSearchEvent.emit(reset);\n }\n }\n\n resetStatus() {\n this.isAllDisplayDataChecked = false;\n this.isIndeterminate = false;\n this.mapOfCheckedId = {};\n this.mapOfCheckList = {};\n this.selectEvent.emit([]);\n }\n\n refreshStatus(event: boolean = false, data: any = null): void {\n if (event && data) {\n !this.mapOfCheckList[data[this.selectField]] &&\n (this.mapOfCheckList[data[this.selectField]] = data);\n } else if (!event && data) {\n this.mapOfCheckList[data[this.selectField]] &&\n delete this.mapOfCheckList[data[this.selectField]];\n }\n this.isAllDisplayDataChecked = this.listOfDisplayData.every(\n (item) => this.mapOfCheckedId[item[this.selectField]],\n );\n this.isIndeterminate =\n this.listOfDisplayData.some(\n (item) => this.mapOfCheckedId[item[this.selectField]],\n ) && !this.isAllDisplayDataChecked;\n // 触发select事件\n if (this.selectEvent) {\n const selectedList: Array<any> = Object.values(this.mapOfCheckList);\n this.selectEvent.emit(selectedList);\n }\n // 如果数据为空,则清空勾选标识\n if (this.tableData.content.length === 0) {\n this.isAllDisplayDataChecked = false;\n }\n }\n\n checkAll(value: boolean): void {\n this.listOfDisplayData.forEach((item) => {\n if (value) {\n !this.mapOfCheckList[item[this.selectField]] &&\n (this.mapOfCheckList[item[this.selectField]] = item);\n } else {\n this.mapOfCheckList[item[this.selectField]] &&\n delete this.mapOfCheckList[item[this.selectField]];\n }\n\n this.mapOfCheckedId[item[this.selectField]] = value;\n });\n this.refreshStatus();\n }\n\n judgeColEmpty(str: any) {\n if (str || str === 0) {\n return str;\n } else {\n return \"<空>\";\n }\n }\n\n getStateField(col: HdTableColumn): string {\n if (col.isState) {\n return col.name as string;\n }\n return col.stateField || 'state';\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule, NO_ERRORS_SCHEMA } from '@angular/core';\nimport { NzDropDownModule } from 'ng-zorro-antd/dropdown';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { NzPopconfirmModule } from 'ng-zorro-antd/popconfirm';\nimport { NzResizableModule } from 'ng-zorro-antd/resizable';\nimport { NzTableModule } from 'ng-zorro-antd/table';\nimport { NzToolTipModule } from 'ng-zorro-antd/tooltip';\nimport { NzTreeModule } from 'ng-zorro-antd/tree';\nimport { HdButtonGroupModule } from '../hd-button-group/hd-button-group.module';\nimport { HdButtonModule } from '../hd-button/hd-button.module';\nimport { HdSpaceModule } from '../hd-space/hd-space.module';\nimport { HdStatusModule } from '../hd-status/hd-status.module';\nimport { CommonSessionService } from '../service/common-session.service';\nimport { HdTableComponent } from './hd-table.component';\n@NgModule({\n imports: [\n CommonModule,\n NzTableModule,\n HdSpaceModule,\n HdStatusModule,\n HdButtonModule,\n HdButtonGroupModule,\n NzToolTipModule,\n NzPopconfirmModule,\n NzResizableModule,\n NzDropDownModule,\n NzTreeModule,\n NzIconModule\n ],\n declarations: [HdTableComponent],\n providers: [CommonSessionService],\n exports: [HdTableComponent],\n schemas: [NO_ERRORS_SCHEMA]\n})\nexport class HdTableModule { }\n","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'hd-tip',\n templateUrl: './hd-tip.component.html',\n styleUrls: ['./hd-tip.component.less']\n})\nexport class HdTipComponent implements OnInit {\n @Input() showIcon: boolean = true;\n @Input() fontSize: number;\n @Input() title: string;\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { HdTipComponent } from './hd-tip.component';\nimport {NgZorroAntdModule} from 'ng-zorro-antd';\n\n@NgModule({\n imports: [\n CommonModule,\n NgZorroAntdModule\n ],\n exports: [HdTipComponent],\n declarations: [HdTipComponent]\n})\nexport class HdTipModule { }\n","import { HdButtonGroupModule } from './hd-button-group/hd-button-group.module';\nimport { HdButtonModule } from './hd-button/hd-button.module';\n\nimport { HdDetailFormModule } from './hd-detail-form/hd-detail-form.module';\nimport { HdDetailLinesModule } from './hd-detail-lines/hd-detail-lines.module';\nimport { HdDetailLinesPageModule } from './hd-detail-lines-page/hd-detail-lines-page.module';\nimport { HdDetailTipModule } from './hd-detail-tip/hd-detail-tip.module';\n\nimport { HdFilterModule } from './hd-filter/hd-filter.module';\nimport { HdFormLinesModule } from './hd-form-lines/hd-form-lines.module';\nimport { HdFormModule } from './hd-form/hd-form.module';\n\nimport { NgModule } from '@angular/core';\nimport { HdCurrentTableModule } from './hd-current-table/hd-current-table.module';\nimport { HdLogModule } from './hd-log/hd-log.module';\nimport { HdPopconfirmModule } from './hd-popconfirm/hd-popconfirm.module';\nimport { HdSpaceModule } from './hd-space/hd-space.module';\nimport { HdStatusModule } from './hd-status/hd-status.module';\nimport { HdTableModule } from './hd-table/hd-table.module';\nimport { HdTipModule } from './hd-tip/hd-tip.module';\n@NgModule({\n exports: [\n HdButtonModule,\n HdButtonGroupModule,\n\n HdDetailFormModule,\n HdDetailLinesModule,\n HdDetailLinesPageModule,\n HdDetailTipModule,\n\n HdFilterModule,\n HdFormModule,\n HdFormLinesModule,\n\n HdSpaceModule,\n HdStatusModule,\n HdCurrentTableModule,\n HdTableModule,\n HdTipModule,\n HdPopconfirmModule,\n HdLogModule\n ]\n})\n\nexport class HdComponentModule {\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { HdComponentModule } from \"./hd-component.module\";\nimport { HdLogComponent } from './hd-log/hd-log.component';\n@NgModule({\n imports: [CommonModule],\n exports: [HdComponentModule],\n providers: [],\n entryComponents: [HdLogComponent]\n})\nexport class FantasyNgzorroModule { }\n","import { HdOption } from \"../model/common-type\";\n\n// 表格行\nexport class TableColumn {\n label: string; // 文本\n name: string; // 字段名称\n value?: string | boolean | Array<string | Date> | null = null; // 值 不传默认为null\n selectList?: Array<HdOption>; // 控件为Select时,选项列表\n // 组件内部成员\n show?: boolean;\n}\n\n//\nexport class TableTotalOption {\n columnNumber: number; // 总列数\n insertIndex: number; // 插入下标\n insertName: string; // 插入字段\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class HdDetailFormService {\n\n constructor() { }\n\n}\n","export class TotalOption {\n insertIndex: number; // 插入下标\n insertValue: any; // 插入值\n align?: string; // 靠左还是靠右\n showDecimal?: boolean; // 是否显示小数位\n isHide?: boolean; // 是否隐藏, 这里只针对列会同步消失的场景\n}\n","import { Injectable } from '@angular/core';\nimport { SelectOption, CascaderOption, InputNumber } from '../model/common-type';\n\n// 控件列表\nexport class Filter {\n type: FilterListType;\n label: string; // 文本\n name: string; // 字段名称\n placeholder?: string; // 输入框提示文案\n value?: string | boolean | number | Array<string | Date> | null = null; // 值 不传默认为null\n // 组件内部成员\n show?: boolean;\n selectOption?: SelectOption; // 控件为Select时,选项列表\n inputNumber?: InputNumber = new InputNumber(); // number组件的min、max、step\n onSearchEvent?: Function; // select选择器搜索事件 可用于更新备选集合\n onChangeEvent?: Function; // 控件的值改变事件 可用于控件间联动\n onBlurEvent?: Function; // 控件失去焦点事件\n hdDisabledDate?: Function; // date-picker组件不可选择的日期\n showTime?: boolean = false; // 日期选择器是否包含时间\n require?: boolean = false; // 是否必填\n cascaderOption?: CascaderOption; // 级联选择器配置\n onChangeEventDebounceTime?: number; // change事件防抖\n onSearchEventEventDebounceTime?: number; // search事件防抖\n}\n\n\n// 控件类型\nexport enum FilterListType {\n Input, // 输入框\n Select, // 单项选择器\n Date, // 单个日期选择\n DateRange, // 日期范围选择\n MultipleSelect, // 多选\n Cascader, // 级联选择\n Month, // 月份选择\n InputNumber // 数字输入\n}\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class HdFilterService {\n\n constructor() {\n }\n\n}\n","export const StaticConst = {\n MaxPageSize: 99999999\n};\n","import { FormItem } from './hd-form/hd-form.service';\nimport { round } from 'lodash';\n// 工具类\nexport const Utils = {\n /**\n * 填充select控件选项\n * @param formList 入参数组 Array<any>\n * @param name 需要填充options的属性名称\n * @param options 选项列表\n */\n fillSelectOption(formList: Array<any>, name: string, options: Array<any>) {\n const returnData = formList;\n if (!returnData || !returnData.length) {\n return returnData;\n }\n const length = formList.length;\n for (let i = 0; i < length; i++) {\n if (returnData[i].name === name) {\n returnData[i].selectOption.selectList = options;\n }\n }\n return returnData;\n },\n\n /**\n * 填充FormItem数组:针对入参list的每一个FormItem,判断obj中是否有对应的name字段,如果有,则填充value。\n * @param list 入参数组 Array<FormItem>\n * @param obj 需要填充到list的属性\n */\n fillArrayFormItem(list: Array<FormItem>, obj: Object) {\n const returnData = [];\n if (!list || !list.length) {\n return returnData;\n }\n const length = list.length;\n for (let i = 0; i < length; i++) {\n if (obj[list[i].name]) {\n list[i].value = obj[list[i].name];\n }\n }\n return list;\n },\n\n /**\n * 数组转换成选择器的选项数组\n * @param list 入参数组 字符串数组或对象数组\n * @param option 转换选项\n * 注:list为字符串数组,option不需要传,按照标准的label、value转换\n */\n arrayToSelectOptionList(list: Array<any>, option?: {\n value: string,\n label: string,\n valueTip?: string,\n labelTip?: string\n }) {\n const returnData = [];\n if (!list || !list.length) {\n return returnData;\n }\n if (option) {\n if (option.labelTip && option.valueTip) {\n list.forEach((item) => {\n const returnItem: any = item;\n returnItem.label = item[option.label];\n returnItem.value = item[option.value];\n if (option.valueTip) {\n returnItem[option.valueTip] = item[option.value];\n }\n if (option.labelTip) {\n returnItem[option.labelTip] = item[option.label];\n }\n returnData.push(returnItem);\n });\n } else {\n list.forEach((item) => {\n const returnItem: any = item;\n returnItem.label = item[option.label];\n returnItem.value = item[option.value];\n returnData.push(returnItem);\n });\n }\n } else {\n list.forEach((item) => {\n const returnItem: any = {};\n returnItem.label = item;\n returnItem.value = item;\n returnData.push(returnItem);\n });\n }\n return returnData;\n },\n\n /**\n * 求和\n * @param nums 数组\n * @param precision 精度\n */\n add(nums: number[], precision: number = 2) {\n if (!Array.isArray(nums)) {\n throw new Error('参数必须是数组');\n }\n if (nums.some(num => typeof num !== 'number')) {\n throw new Error('数组元素必须是数字');\n }\n let result = 0;\n for (const num of nums) {\n result += num;\n }\n return round(result, precision);\n },\n\n /**\n * 减法\n * @param nums 数组\n * @param precision 精度\n */\n subtract(nums: number[], precision: number = 2) {\n if (!Array.isArray(nums)) {\n throw new Error('参数必须是数组');\n }\n if (nums.some(num => typeof num !== 'number')) {\n throw new Error('数组元素必须是数字');\n }\n if (nums.length < 2) {\n throw new Error('减法入参数量至少要2个!');\n }\n let result = nums.shift();\n for (const num of nums) {\n result -= num;\n }\n return round(result, precision);\n },\n\n /**\n * 乘法\n * @param nums 数组\n * @param precision 精度\n */\n multiply(nums: number[], precision: number = 2) {\n if (!Array.isArray(nums)) {\n throw new Error('参数必须是数组');\n }\n if (nums.some(num => typeof num !== 'number')) {\n throw new Error('数组元素必须是数字');\n }\n let result = 1;\n for (const num of nums) {\n result = result * num;\n }\n return round(result, precision);\n },\n\n /**\n * 除法\n * @param nums 数组\n * @param precision 精度\n */\n divide(nums: number[], precision: number = 2) {\n if (!Array.isArray(nums)) {\n throw new Error('参数必须是数组');\n }\n if (nums.some(num => typeof num !== 'number')) {\n throw new Error('数组元素必须是数字');\n }\n if (nums.length < 2) {\n throw new Error('除法入参数量至少要2个!');\n }\n let result = nums.shift();\n for (const num of nums) {\n if (num === 0) {\n throw new Error('除数不能为0!');\n }\n result = result / num;\n }\n return round(result, precision);\n }\n};\n"],"names":["Component","ContentChild","NgModule","CommonModule","FormsModule","NgZorroAntdModule","Injectable","EventEmitter","Input","Output","tslib_1.__decorate","InputBoolean","ReactiveFormsModule","tslib_1.__values","round","moveItemInArray","NzTableModule","DragDropModule","NO_ERRORS_SCHEMA","Subject","debounceTime","tslib_1.__spread","FormBuilder","NzInputNumberComponent","NzSelectComponent","ElementRef","NzDatePickerComponent","NzRangePickerComponent","NzTimePickerComponent","Validators","ChangeDetectorRef","ViewChildren","NzModalService","of","delay","localforage.createInstance","localforage.INDEXEDDB","NzToolTipModule","NzPopconfirmModule","NzResizableModule","NzDropDownModule","NzTreeModule","NzIconModule"],"mappings":"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"}
|