@c-standard/angular-devui-extension
Version:
an extensional components lib for devui
1 lines • 35.2 kB
Source Map (JSON)
{"version":3,"file":"c-standard-angular-devui-extension-data-grid.mjs","sources":["../../../projects/components/data-grid/data-grid.component.ts","../../../projects/components/data-grid/data-grid.component.html","../../../projects/components/data-grid/data-grid.module.ts","../../../projects/components/data-grid/c-standard-angular-devui-extension-data-grid.ts"],"sourcesContent":["import { AfterContentInit, Component, ContentChildren, ElementRef, EventEmitter, Input, OnInit, Output, QueryList, TemplateRef, ViewChild, } from '@angular/core';\r\nimport { DataTableComponent, FilterConfig, LoadingType, SortEventArg } from 'ng-devui';\r\nimport { Observable } from 'rxjs';\r\nimport { find, isEmpty, isNull, isUndefined, remove } from 'lodash-es';\r\nimport { DColumn, DSelectionMode } from './data-grid';\r\nimport { DataStore, DFilter, DSort } from '@c-standard/angular-devui-extension/data';\r\nimport { TemplateDirective } from '@c-standard/angular-devui-extension/template';\r\n\r\n@Component({\r\n selector: 'd-data-grid',\r\n templateUrl: './data-grid.component.html',\r\n styleUrls: ['./data-grid.component.less'],\r\n})\r\nexport class DataGridComponent implements OnInit, AfterContentInit {\r\n private _dataSource?: Array<any> | Observable<any> | DataStore<any>;\r\n\r\n get dataSource(): Array<any> | Observable<any> | DataStore<any> {\r\n return this._dataSource || [];\r\n }\r\n\r\n @Input()\r\n set dataSource(value: Array<any> | Observable<any> | DataStore<any>) {\r\n this._dataSource = value;\r\n if (this.dataSource instanceof Array) {\r\n this.dataList = this.dataSource;\r\n }\r\n }\r\n\r\n @Input()\r\n className?: string;\r\n\r\n @Input()\r\n viewName?: string;\r\n\r\n @Input()\r\n sortMode?: 'local' | 'remote' = 'local';\r\n\r\n @Input()\r\n columns?: DColumn[];\r\n\r\n @Input()\r\n showCheckBox: boolean = false;\r\n\r\n @Input()\r\n showNumberColumn: boolean = true;\r\n\r\n @Input()\r\n draggable: boolean = false;\r\n\r\n @Input()\r\n selectionMode: DSelectionMode = 'multiple';\r\n\r\n @Input()\r\n scrollable: boolean = true;\r\n\r\n @Input()\r\n sortable: boolean = false;\r\n\r\n @Input()\r\n headerFilter: boolean = false;\r\n\r\n @Input()\r\n enablePaging: boolean = false;\r\n\r\n @Input()\r\n striped: boolean = false;\r\n\r\n @Input()\r\n border: '' | 'bordered' | 'borderless' = '';\r\n\r\n @Input()\r\n loading: boolean = false;\r\n\r\n @Input()\r\n clickToSelect: boolean = false;\r\n // 触发事件\r\n /**\r\n * 1. 初始化事件\r\n * 2. 行选中事件\r\n * 3. 行点击事件\r\n * 4. 列点击事件\r\n */\r\n\r\n @Output()\r\n initialized: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Output()\r\n rowClick: EventEmitter<{ event: MouseEvent; data: any }> = new EventEmitter<{\r\n event: MouseEvent;\r\n data: any;\r\n }>();\r\n\r\n @Output()\r\n rowDBClick: EventEmitter<{ event: MouseEvent; data: any }> = new EventEmitter<{\r\n event: MouseEvent;\r\n data: any;\r\n }>();\r\n\r\n @Output()\r\n sortChange: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Output()\r\n rowCheckedChange: EventEmitter<{\r\n index: number;\r\n checked: boolean;\r\n rowItem: any;\r\n }> = new EventEmitter<any>();\r\n\r\n @Output()\r\n rowDrop: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @ViewChild('DataTable') dataTable?: DataTableComponent;\r\n\r\n @ContentChildren(TemplateDirective) definitions!: QueryList<TemplateDirective>;\r\n\r\n // todo 生成table的id 拖拽的scope方式一个页面加载多个table时冲突问题\r\n\r\n // 全选框默认值\r\n pageAllChecked: boolean = false;\r\n halfChecked: boolean = false;\r\n\r\n // 加载中\r\n onLoading: LoadingType;\r\n\r\n // 表格数据\r\n dataList: any[] = [];\r\n // 表格数据是否为空\r\n dataEmpty: boolean = false;\r\n\r\n sorts: DSort[] = [];\r\n filters: DFilter[] = [];\r\n\r\n pager = {\r\n total: 0,\r\n pageIndex: 1,\r\n pageSize: 10,\r\n };\r\n\r\n public get templates(): { [key: string]: TemplateRef<any> } {\r\n if (this.definitions != null) {\r\n const templates: { [key: string]: TemplateRef<any> } = {};\r\n for (const definition of this.definitions.toArray()) {\r\n templates[definition.template] = definition.templateRef;\r\n }\r\n return templates;\r\n } else {\r\n return {};\r\n }\r\n }\r\n\r\n constructor(private ref: ElementRef) {}\r\n\r\n ngOnInit(): void {\r\n // 加载数据\r\n this.loadData();\r\n // 组件初始化事件\r\n this.initialized.emit({\r\n element: this.ref,\r\n component: this,\r\n });\r\n }\r\n\r\n ngAfterContentInit(): void {\r\n for (const definition of this.definitions.toArray()) {\r\n this.templates[definition.template] = definition.templateRef;\r\n }\r\n }\r\n\r\n // 行点击事件\r\n onRowClick(e: MouseEvent, rowData: any) {\r\n if (this.clickToSelect) {\r\n this.dataList.filter((t) => t !== e).forEach(this.unChecked);\r\n rowData['$checked'] = true;\r\n }\r\n this.rowClick.emit({\r\n event: e,\r\n data: rowData,\r\n });\r\n }\r\n\r\n // 行双击事件\r\n onRowDBClick(e: MouseEvent, rowData: any) {\r\n this.rowDBClick.emit({\r\n event: e,\r\n data: rowData,\r\n });\r\n }\r\n\r\n // 筛选回调事件\r\n onGridFilterChange(e: FilterConfig[]) {\r\n console.log(e);\r\n }\r\n\r\n // 排序回调事件\r\n onGridSortChange(e: SortEventArg, column: DColumn) {\r\n // 排序数组\r\n if (isEmpty(e.direction)) {\r\n remove(this.sorts, (t) => t.name === column.name);\r\n } else {\r\n const sort = find(this.sorts, (t) => t.name == column.name);\r\n if (sort) {\r\n sort.direction = e.direction;\r\n } else {\r\n this.sorts.push({\r\n name: column.name,\r\n direction: e.direction,\r\n });\r\n }\r\n }\r\n this.sortChange.emit({\r\n name: column.name,\r\n direction: e.direction,\r\n });\r\n this.refresh();\r\n }\r\n\r\n // 分页pageSize回调事件\r\n onPageSizeChange() {\r\n this.refresh();\r\n }\r\n\r\n // 分页pageIndex回调事件\r\n onPageIndexChange() {\r\n this.refresh();\r\n }\r\n\r\n // 行拖动事件\r\n onDrop(e: any) {\r\n let index = e.dropIndex;\r\n if (this.sortMode === 'local') {\r\n const fromIndex = e.dragFromIndex;\r\n if (-1 !== index) {\r\n /* 修正同一个container排序,往下拖动index多了1个位置*/\r\n if (-1 !== fromIndex && index > fromIndex) {\r\n index--;\r\n }\r\n this.dataList.splice(\r\n index,\r\n 0,\r\n fromIndex === -1 ? e.dragData : this.dataList.splice(fromIndex, 1)[0]\r\n );\r\n } else {\r\n this.dataList.push(e.dragData);\r\n }\r\n }\r\n this.rowDrop.emit({\r\n current: e.dragData,\r\n before: this.dataList[index - 1],\r\n after: this.dataList[index + 1],\r\n });\r\n }\r\n\r\n // 全选 todo选中所有数据还是分页数据\r\n onAllCheckBoxChange(e: boolean) {\r\n this.halfChecked = false;\r\n if (e) {\r\n this.dataList.forEach(this.checked);\r\n this.pageAllChecked = true;\r\n } else {\r\n this.pageAllChecked = false;\r\n this.dataList.forEach(this.unChecked);\r\n }\r\n }\r\n\r\n // 行选中\r\n onRowCheckBoxChange(index: number, record: any) {\r\n if (this.selectionMode === 'single') {\r\n // 单选模式\r\n this.dataList.filter((t) => t !== record).forEach(this.unChecked);\r\n } else {\r\n // 多选模式\r\n const hasChecked = this.dataList.some(this.hasChecked);\r\n const hasUnChecked = this.dataList.some(this.hasUnChecked);\r\n this.pageAllChecked = !hasUnChecked;\r\n this.halfChecked = hasChecked && hasUnChecked;\r\n }\r\n this.rowCheckedChange.emit({\r\n index: index,\r\n checked: record.$checked,\r\n rowItem: record,\r\n });\r\n }\r\n\r\n\r\n getSelectedRows() {\r\n return this.dataTable?.getCheckedRows();\r\n }\r\n\r\n setFilter(f: DFilter) {\r\n if (isUndefined(f.value) || isNull(f.value)) {\r\n remove(this.filters, (t) => t.name === f.name);\r\n } else {\r\n const ft = find(this.filters, (t) => t.name == f.name);\r\n if (ft) {\r\n ft.value = f.value;\r\n ft.salt = f.salt;\r\n } else {\r\n this.filters.push(f);\r\n }\r\n }\r\n this.refresh();\r\n }\r\n\r\n // 刷新数据\r\n refresh() {\r\n this.loadData();\r\n // this.service.loadData()\r\n // todo 数据刷新使用 observable订阅方式\r\n }\r\n\r\n /**\r\n * 私有方法\r\n * @private\r\n */\r\n private loadData() {\r\n this.dataEmpty = false;\r\n if (this.dataSource instanceof DataStore) {\r\n this.onLoading = this.dataSource\r\n .load?.({\r\n page: this.pager.pageIndex,\r\n size: this.pager.pageSize,\r\n filter: this.filters,\r\n sorts: this.sorts,\r\n })\r\n .subscribe((resp: any) => {\r\n this.dataEmpty = true;\r\n if (resp.success) {\r\n this.dataList = resp.data.list;\r\n this.pager.total = resp.data.count;\r\n }\r\n });\r\n } else if (this.dataSource instanceof Observable) {\r\n this.onLoading = this.dataSource.subscribe((resp) => {\r\n this.dataEmpty = true;\r\n if (resp.success) {\r\n this.pager.total = resp.data.count;\r\n this.dataList = resp.data.list;\r\n }\r\n });\r\n } else {\r\n this.dataEmpty = true;\r\n this.dataList = this.dataSource;\r\n }\r\n }\r\n\r\n // 选中所有\r\n private checked = (data: any) => {\r\n data.$checked = true;\r\n };\r\n\r\n // 取消选中所有\r\n private unChecked = (data: any) => {\r\n data.$checked = false;\r\n };\r\n\r\n // 判断数据是否存在选中状态\r\n private hasChecked = (data: any) => {\r\n return data.$checked;\r\n };\r\n\r\n // 判断数据是否存在未选中状态\r\n private hasUnChecked = (data: any) => {\r\n return !data.$checked;\r\n };\r\n}\r\n","<!-- 是否显示选择框, 是否进行拖拽, 是否显示序号列, 选择模式:单选和多选 -->\r\n<div class=\"x-data-table-content\">\r\n <div\r\n class=\"loading-template\"\r\n dLoading\r\n [showLoading]=\"loading\"\r\n [loading]=\"onLoading\"\r\n [message]=\"'加载中...'\"\r\n ></div>\r\n <d-data-table\r\n #DataTable\r\n dDroppable\r\n [borderType]=\"border\"\r\n [dropScope]=\"'multiple-group'\"\r\n (dropEvent)=\"onDrop($event)\"\r\n [checkable]=\"showCheckBox\"\r\n [dataSource]=\"dataList\"\r\n [scrollable]=\"true\"\r\n [fixHeader]=\"true\"\r\n [striped]=\"striped\"\r\n [containFixHeaderHeight]=\"true\"\r\n [switchWhileCrossEdge]=\"true\"\r\n tableLayout=\"fixed\"\r\n tableHeight=\"100%\"\r\n >\r\n <thead dTableHead>\r\n <tr dTableRow>\r\n <!-- 拖拽列 -->\r\n <th\r\n *ngIf=\"draggable\"\r\n class=\"default\"\r\n style=\"text-align: center\"\r\n >\r\n <span class=\"title\">#</span>\r\n </th>\r\n <!-- 选择框 -->\r\n <th\r\n *ngIf=\"showCheckBox\"\r\n class=\"default\"\r\n style=\"text-align: center\"\r\n >\r\n <span class=\"title default-cell\">\r\n <d-checkbox\r\n *ngIf=\"selectionMode === 'multiple'\"\r\n [(ngModel)]=\"pageAllChecked\"\r\n [halfchecked]=\"halfChecked\"\r\n (change)=\"onAllCheckBoxChange($event)\"\r\n ></d-checkbox>\r\n </span>\r\n </th>\r\n <!-- i18N NumberOrder -->\r\n <th\r\n *ngIf=\"showNumberColumn\"\r\n class=\"default\"\r\n style=\"text-align: center\"\r\n >\r\n <span class=\"title\">序号 </span>\r\n </th>\r\n <th\r\n dHeadCell\r\n *ngFor=\"let column of columns\"\r\n [resizeEnabled]=\"column.resizeEnabled || false\"\r\n (sortChange)=\"onGridSortChange($event, column)\"\r\n [filterable]=\"false\"\r\n [customFilterTemplate]=\"customFilterTemplate\"\r\n (filterChange)=\"onGridFilterChange($event)\"\r\n [sortable]=\"column.sortable || false\"\r\n >\r\n {{ column.caption }}\r\n </th>\r\n </tr>\r\n <tr\r\n *ngIf=\"headerFilter\"\r\n dTableRow\r\n >\r\n <th\r\n dHeadCell\r\n *ngIf=\"draggable\"\r\n ></th>\r\n <th\r\n dHeadCell\r\n *ngIf=\"showCheckBox\"\r\n ></th>\r\n <th\r\n dHeadCell\r\n *ngIf=\"showNumberColumn\"\r\n ></th>\r\n <th *ngFor=\"let column of columns\">\r\n <ng-container\r\n *ngIf=\"column.filterable\"\r\n [ngTemplateOutletContext]=\"{ $implicit: { column: column } }\"\r\n [ngTemplateOutlet]=\"\r\n templates[column.filterTemplate || ''] || defaultTemplate\r\n \"\r\n >\r\n <ng-template #defaultTemplate></ng-template>\r\n </ng-container>\r\n </th>\r\n </tr>\r\n </thead>\r\n <tbody dTableBody>\r\n <ng-template\r\n let-rowIndex=\"rowIndex\"\r\n let-rowItem=\"rowItem\"\r\n >\r\n <tr\r\n dDraggable\r\n dTableRow\r\n [dragData]=\"rowItem\"\r\n [draggable]=\"draggable\"\r\n [dragScope]=\"'multiple-group'\"\r\n [enableDragFollow]=\"true\"\r\n [dragFollowOptions]=\"{ appendToBody: true }\"\r\n [dragHandle]=\"'.table-drag-row-handle, .table-drag-row-handle *'\"\r\n [ngClass]=\"{ 'table-row-selected': rowItem['$checked'] }\"\r\n (click)=\"onRowClick($event, rowItem)\"\r\n (dblclick)=\"onRowDBClick($event, rowItem)\"\r\n >\r\n <td\r\n *ngIf=\"draggable\"\r\n class=\"table-drag-row-handle default\"\r\n >\r\n <i class=\"icon-drag-small\"></i>\r\n </td>\r\n <td\r\n *ngIf=\"showCheckBox\"\r\n class=\"default\"\r\n style=\"padding: 0; text-align: center\"\r\n >\r\n <span>\r\n <d-checkbox\r\n [(ngModel)]=\"rowItem['$checked']\"\r\n (change)=\"onRowCheckBoxChange(rowIndex, rowItem)\"\r\n ></d-checkbox>\r\n </span>\r\n </td>\r\n <td\r\n *ngIf=\"showNumberColumn\"\r\n class=\"default\"\r\n >\r\n {{ rowIndex + 1 }}\r\n </td>\r\n <td\r\n dTableCell\r\n *ngFor=\"let column of columns\"\r\n >\r\n <ng-container *ngIf=\"column.template; else noCustomTemplate\">\r\n <ng-container\r\n [ngTemplateOutletContext]=\"{\r\n $implicit: {\r\n row: rowItem,\r\n cell: rowItem[column.name],\r\n column: column\r\n }\r\n }\"\r\n [ngTemplateOutlet]=\"\r\n templates[column.template || ''] || defaultTemplate\r\n \"\r\n >\r\n <ng-template #defaultTemplate>\r\n {{ rowItem[column.name] }}\r\n </ng-template>\r\n </ng-container>\r\n </ng-container>\r\n <ng-template #noCustomTemplate>\r\n <span *ngIf=\"column.format\">{{column.format(rowItem[column.name])}}</span>\r\n <span *ngIf=\"!column.format\">{{ rowItem[column.name] }}</span>\r\n </ng-template>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n </tbody>\r\n <ng-template #noResultTemplateRef>\r\n <div\r\n class=\"empty-data-container\"\r\n *ngIf=\"dataEmpty && !loading\"\r\n >\r\n 无数据\r\n </div>\r\n </ng-template>\r\n </d-data-table>\r\n</div>\r\n<div\r\n *ngIf=\"enablePaging\"\r\n class=\"x-data-table-pagination\"\r\n>\r\n <d-pagination\r\n [(pageIndex)]=\"pager.pageIndex\"\r\n [(pageSize)]=\"pager.pageSize\"\r\n [canChangePageSize]=\"true\"\r\n [canJumpPage]=\"true\"\r\n [canViewTotal]=\"true\"\r\n [maxItems]=\"4\"\r\n (pageSizeChange)=\"onPageSizeChange()\"\r\n (pageIndexChange)=\"onPageIndexChange()\"\r\n [total]=\"pager.total\"\r\n >\r\n </d-pagination>\r\n</div>\r\n\r\n<!-- 定义常用的过滤模板,string类型,number类型, Boolean类型 和 时间日期类型 -->\r\n<ng-template\r\n #customFilterTemplate\r\n let-filterList=\"filterListDisplay\"\r\n let-dropdown=\"dropdown\"\r\n>\r\n <ng-container\r\n [ngTemplateOutletContext]=\"{ $implicit: { filterList: filterList, dropdown: dropdown } }\"\r\n [ngTemplateOutlet]=\"defaultTemplate\"\r\n >\r\n <ng-template #defaultTemplate>\r\n {{ 123 }}\r\n </ng-template>\r\n </ng-container>\r\n</ng-template>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { CdkTableModule } from '@angular/cdk/table';\r\nimport { CheckBoxModule, DataTableModule, DragDropModule, LoadingModule, PaginationModule, TooltipModule } from 'ng-devui';\r\nimport { DataGridComponent } from './data-grid.component';\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n DataGridComponent,\r\n ],\r\n exports: [\r\n DataGridComponent,\r\n ],\r\n imports: [\r\n CommonModule,\r\n CdkTableModule,\r\n DataTableModule,\r\n TooltipModule,\r\n PaginationModule,\r\n LoadingModule,\r\n DragDropModule,\r\n CheckBoxModule,\r\n FormsModule,\r\n ],\r\n})\r\nexport class DataGridModule {\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}