数据可视化大屏
Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

165 Zeilen
7.3KB

  1. import { Component, Input, OnInit, ViewChild, inject } from '@angular/core';
  2. import { STColumn, STComponent } from '@delon/abc/st';
  3. import { SFSchema } from '@delon/form';
  4. import { ModalHelper, _HttpClient } from '@delon/theme';
  5. import { SHARED_IMPORTS } from '@shared';
  6. import { AgGridAngular } from 'ag-grid-angular';
  7. import { ColDef, GridApi } from 'ag-grid-community';
  8. import { LjCarAgGridComponentComponent } from './lj-car-ag-grid-component/lj-car-ag-grid-component.component';
  9. import { DataVCardComponent } from '../card/card.component';
  10. import { LJDataVCardComponent } from '../lj-card/lj-card.component';
  11. import { TableColumn, DataVLjTableComponent } from '../lj-table/lj-table.component';
  12. import { GridButtonValueRenderer } from '../workstation/grid-button/grid-button';
  13. import { LjAgGridComponentComponent } from '../workstation/lj-ag-grid-component/lj-ag-grid-component.component';
  14. @Component({
  15. selector: 'app-data-v-lj-car-info-table',
  16. standalone: true,
  17. templateUrl: './lj-car-info-table.component.html',
  18. styleUrl: './lj-car-info-table.component.css',
  19. imports: [
  20. ...SHARED_IMPORTS,
  21. AgGridAngular,
  22. DataVCardComponent,
  23. DataVLjTableComponent,
  24. LjAgGridComponentComponent,
  25. LjCarAgGridComponentComponent
  26. ]
  27. })
  28. export class DataVLjCarInfoTableComponent implements OnInit {
  29. public gridThemedClass: string = 'ag-theme-quartz ag-theme-datav';
  30. [x: string]: any;
  31. @ViewChild('myGrid') grid!: AgGridAngular;
  32. @Input() title: string = '';
  33. public pageSize!: number;
  34. /**当前页 */
  35. public pageIndex!: number;
  36. /**总数 */
  37. public pageRowTotal!: number;
  38. //默认列配置
  39. @Input() defaultColDef: ColDef = {
  40. width: 130,
  41. editable: false,
  42. headerClass: 'ag-header-center',
  43. cellStyle: { 'font-weight': 'bold', textAlign: 'center', 'justify-content': 'center', 'line-height': '38px' }
  44. };
  45. /** 列头 */
  46. @Input() columnDefs: ColDef[] = [];
  47. /**行数据 */
  48. @Input() rowData: any[] = [];
  49. /**表格主题 */
  50. @Input() gridThemeClass: string = 'ag-theme-quartz';
  51. @Input() paginationThemeClass: string = 'ag-theme-quartz';
  52. /** 构造函数 */
  53. constructor() {}
  54. // 在父组件的类中
  55. tableColumns: TableColumn[] = [
  56. { key: 'sort', title: '序号' },
  57. { key: 'time', title: '时间' },
  58. { key: 'option', title: '操作' },
  59. { key: 'optionDesc', title: '操作描述' },
  60. { key: 'optionMan', title: '操作人员' },
  61. { key: 'mark', title: '备注' },
  62. { key: 'edit', title: '编辑' }
  63. // 其他列配置...
  64. ];
  65. colDefs1: ColDef[] = [
  66. {
  67. headerName: '序号',
  68. valueGetter: function (params: any) {
  69. return parseInt(params.node.id) + 1;
  70. },
  71. width: 90,
  72. // flex: 2,
  73. sortable: true,
  74. unSortIcon: true,
  75. field: 'xh'
  76. },
  77. { headerName: '任务名称', unSortIcon: true, width: 120, field: 'rwmc' },
  78. { headerName: '任务描述', unSortIcon: true, field: 'rwms', width: 120 },
  79. { headerName: '开始时间', headerClass: 'ag-header-center', unSortIcon: true, field: 'kssj', width: 180 },
  80. { headerName: '计划完成时间', unSortIcon: true, field: 'jhwcsj', width: 180 },
  81. { headerName: '超期', width: 70, field: 'sfcq' },
  82. { headerName: '操作', width: 90, field: 'cz', cellRenderer: GridButtonValueRenderer }
  83. ];
  84. tableData = [
  85. { sort: '1', time: '2024.1.12 18:23', option: '锁定', optionDesc: '锁定1号磅', optionMan: '张三', mark: '早晨', edit: '按钮' },
  86. { sort: '1', time: '2024.1.12 18:23', option: '释放', optionDesc: '释放1号磅', optionMan: '张三', mark: '早晨', edit: '按钮' },
  87. { sort: '1', time: '2024.1.12 18:23', option: '锁定', optionDesc: '锁定1号磅', optionMan: '张三', mark: '早晨', edit: '按钮' },
  88. { sort: '1', time: '2024.1.12 18:23', option: '释放', optionDesc: '释放1号磅', optionMan: '张三', mark: '早晨', edit: '按钮' },
  89. { sort: '1', time: '2024.1.12 18:23', option: '锁定', optionDesc: '锁定1号磅', optionMan: '张三', mark: '早晨', edit: '按钮' },
  90. { sort: '1', time: '2024.1.12 18:23', option: '释放', optionDesc: '释放1号磅', optionMan: '张三', mark: '早晨', edit: '按钮' },
  91. { sort: '1', time: '2024.1.12 18:23', option: '锁定', optionDesc: '锁定1号磅', optionMan: '张三', mark: '早晨', edit: '按钮' },
  92. { sort: '1', time: '2024.1.12 18:23', option: '释放', optionDesc: '释放1号磅', optionMan: '张三', mark: '早晨', edit: '按钮' },
  93. { sort: '1', time: '2024.1.12 18:23', option: '锁定', optionDesc: '锁定1号磅', optionMan: '张三', mark: '早晨', edit: '按钮' },
  94. { sort: '1', time: '2024.1.12 18:23', option: '释放', optionDesc: '释放1号磅', optionMan: '张三', mark: '早晨', edit: '按钮' },
  95. { sort: '1', time: '2024.1.12 18:23', option: '锁定', optionDesc: '锁定1号磅', optionMan: '张三', mark: '早晨', edit: '按钮' },
  96. { sort: '1', time: '2024.1.12 18:23', option: '释放', optionDesc: '释放1号磅', optionMan: '张三', mark: '早晨', edit: '按钮' },
  97. { sort: '1', time: '2024.1.12 18:23', option: '锁定', optionDesc: '锁定1号磅', optionMan: '张三', mark: '早晨', edit: '按钮' },
  98. { sort: '1', time: '2024.1.12 18:23', option: '释放', optionDesc: '释放1号磅', optionMan: '张三', mark: '早晨', edit: '按钮' },
  99. { sort: '1', time: '2024.1.12 18:23', option: '锁定', optionDesc: '锁定1号磅', optionMan: '张三', mark: '早晨', edit: '按钮' },
  100. { sort: '1', time: '2024.1.12 18:23', option: '释放', optionDesc: '释放1号磅', optionMan: '张三', mark: '早晨', edit: '按钮' },
  101. { sort: '1', time: '2024.1.12 18:23', option: '锁定', optionDesc: '锁定1号磅', optionMan: '张三', mark: '早晨', edit: '按钮' },
  102. { sort: '1', time: '2024.1.12 18:23', option: '释放', optionDesc: '释放1号磅', optionMan: '张三', mark: '早晨', edit: '按钮' },
  103. { sort: '1', time: '2024.1.12 18:23', option: '锁定', optionDesc: '锁定1号磅', optionMan: '张三', mark: '早晨', edit: '按钮' },
  104. { sort: '1', time: '2024.1.12 18:23', option: '释放', optionDesc: '释放1号磅', optionMan: '张三', mark: '早晨', edit: '按钮' }
  105. // 其他数据...
  106. ];
  107. /**初始化 */
  108. ngOnInit() {
  109. for (var i = 1; i < 30; i++) {
  110. this.rowData.push({
  111. rwmc: `任务${i}`,
  112. rwms: `任务描述${i}`,
  113. kssj: `2024-1-${i} 13:38:${i * 11}`,
  114. jhwcsj: `2024-1-${i} 13:38:${i * 10}`,
  115. sfcq: '否',
  116. dqzt: '正常',
  117. dqjd: `节点${i}`,
  118. sjwcsj: `2024-1-${i} 13:38:${i * 27}`,
  119. bjmc: '报警5',
  120. bjms: '报警描述5',
  121. bjsj: `2024-1-${i} 13:38:${i * 12}`,
  122. gzyy: '-',
  123. clff: '-',
  124. tzsj: `2024-1-${i} 13:38:${i * 19}`,
  125. zycd: '一般',
  126. tzmc: '系统提示',
  127. tznr: '账户登录',
  128. fj: '-',
  129. cz: '操作'
  130. });
  131. }
  132. console.log('-----表格初始化-----');
  133. // this.title = '';
  134. this.pageSize = 5;
  135. this.pageIndex = 1;
  136. this.pageRowTotal = this.rowData.length;
  137. }
  138. //每页数
  139. nzPageSizeChange(_pageSize: any) {
  140. this.pageSize = _pageSize;
  141. }
  142. //当前页
  143. nzPageIndexChange(_pageIndex: any) {
  144. console.log(`nzPageIndexChange${_pageIndex}`);
  145. if (this.grid.api) {
  146. if (_pageIndex == 1) {
  147. /**去首页 */
  148. this.grid.api.paginationGoToFirstPage();
  149. } else {
  150. /** 页面跳转 */
  151. this.grid.api.paginationGoToPage(_pageIndex);
  152. }
  153. }
  154. }
  155. }