| @@ -0,0 +1,19 @@ | |||||
| .ant-table-bordered .ant-table-thead > tr > th, | |||||
| .ant-table-bordered .ant-table-tbody > tr > td { | |||||
| border-color: white !important; | |||||
| } | |||||
| /* 表格头部区域添加里边框 */ | |||||
| .tableColor .ant-table-tbody > tr > td{ | |||||
| border-right: 3px solid #2b3e71 !important; | |||||
| border-bottom: 1px solid #334474 !important; | |||||
| transition: background 0.3s; | |||||
| } | |||||
| /* 表格内容区域添加里边框 */ | |||||
| .tableColor .ant-table-thead > tr > th{ | |||||
| color: #bfceff !important; | |||||
| background-color: transparent !important; | |||||
| border-right: 3px solid #2b3e71 !important; | |||||
| border-bottom: 1px solid #334474 !important; | |||||
| } | |||||
| @@ -0,0 +1,29 @@ | |||||
| <nz-table #dynamicTable nzBordered nzSize="small" [nzData]="data" [nzPageSize]="5"> | |||||
| <thead> | |||||
| <tr> | |||||
| <th | |||||
| style=" | |||||
| background: rgb(8 22 48); | |||||
| /* color: #bfceff !important; */ | |||||
| color: #75f9fd; | |||||
| text-align: center; | |||||
| border: 0.5px solid #ffffff !important; | |||||
| " | |||||
| *ngFor="let column of columns" | |||||
| nzShowSort="true" | |||||
| >{{ column.title }}</th | |||||
| > | |||||
| </tr> | |||||
| </thead> | |||||
| <tbody style="background: rgb(8 22 48)"> | |||||
| <tr *ngFor="let rowData of dynamicTable.data"> | |||||
| <td | |||||
| *ngFor="let column of columns" | |||||
| style="text-align: center; color: #75f9fd; border: 0.5px solid #ffffff !important; transition: background 0.3s" | |||||
| >{{ rowData[column.key] }}</td | |||||
| > | |||||
| </tr> | |||||
| </tbody> | |||||
| </nz-table> | |||||
| <!-- <nz-pagination [nzPageIndex]="1" [nzTotal]="500" /> --> | |||||
| <!-- <label>{{ data.length }}</label> --> | |||||
| @@ -0,0 +1,51 @@ | |||||
| import { CommonModule } from '@angular/common'; | |||||
| import { Component, OnInit, ViewChild, inject, Input } from '@angular/core'; | |||||
| import { STColumn, STComponent } from '@delon/abc/st'; | |||||
| import { SFSchema } from '@delon/form'; | |||||
| import { ModalHelper, _HttpClient } from '@delon/theme'; | |||||
| import { SHARED_IMPORTS } from '@shared'; | |||||
| import { NzPaginationModule } from 'ng-zorro-antd/pagination'; | |||||
| import { NzTableModule } from 'ng-zorro-antd/table'; | |||||
| // 在你的组件文件中 | |||||
| export interface TableColumn { | |||||
| key: string; // 数据的键名 | |||||
| title: string; // 列标题 | |||||
| } | |||||
| @Component({ | |||||
| selector: 'app-data-v-lj-table', | |||||
| standalone: true, | |||||
| imports: [...SHARED_IMPORTS, CommonModule, NzPaginationModule], | |||||
| templateUrl: './lj-table.component.html', | |||||
| styleUrls: ['./lj-table.component.css'] | |||||
| }) | |||||
| export class DataVLjTableComponent implements OnInit { | |||||
| @Input() columns: TableColumn[] = []; | |||||
| @Input() data: any[] = []; | |||||
| // showTotal = (total: number, range: [number, number]) => `Total ${total} items, showing ${range[0]}-${range[1]}`; | |||||
| ngOnInit(): void { | |||||
| console.log(this.data); | |||||
| } | |||||
| // listOfData: Person[] = [ | |||||
| // { | |||||
| // key: '1', | |||||
| // name: 'John Brown', | |||||
| // age: 32, | |||||
| // address: 'New York No. 1 Lake Park' | |||||
| // }, | |||||
| // { | |||||
| // key: '2', | |||||
| // name: 'Jim Green', | |||||
| // age: 42, | |||||
| // address: 'London No. 1 Lake Park' | |||||
| // }, | |||||
| // { | |||||
| // key: '3', | |||||
| // name: 'Joe Black', | |||||
| // age: 32, | |||||
| // address: 'Sidney No. 1 Lake Park' | |||||
| // } | |||||
| // ]; | |||||
| } | |||||
| @@ -2,12 +2,13 @@ import { Routes } from '@angular/router'; | |||||
| import { DataVDateComponent } from './date/date.component'; | import { DataVDateComponent } from './date/date.component'; | ||||
| import { DataVHomeComponent } from './home/home.component'; | import { DataVHomeComponent } from './home/home.component'; | ||||
| import { DataVLjTableComponent } from './lj-table/lj-table.component'; | |||||
| import { DataVS1Component } from './s1/s1.component'; | import { DataVS1Component } from './s1/s1.component'; | ||||
| import { DataVSecond1Component } from './second1/second1.component'; | import { DataVSecond1Component } from './second1/second1.component'; | ||||
| import { DataVT1Component } from './t1/t1.component'; | |||||
| import { DataVThreejsComponent } from './threejs/threejs.component'; | import { DataVThreejsComponent } from './threejs/threejs.component'; | ||||
| import { DataVUserComponent } from './user/user.component'; | import { DataVUserComponent } from './user/user.component'; | ||||
| import { DataVWorkstationComponent } from './workstation/workstation.component'; | import { DataVWorkstationComponent } from './workstation/workstation.component'; | ||||
| import { DataVT1Component } from './t1/t1.component'; | |||||
| export const routes: Routes = [ | export const routes: Routes = [ | ||||
| { | { | ||||
| @@ -21,5 +22,7 @@ export const routes: Routes = [ | |||||
| data: { menu: null } | data: { menu: null } | ||||
| }, | }, | ||||
| { path: 'threejs/:id', component: DataVThreejsComponent }, | { path: 'threejs/:id', component: DataVThreejsComponent }, | ||||
| { path: 't1/:id', component: DataVT1Component } | |||||
| { path: 't1/:id', component: DataVT1Component }, | |||||
| { path: 'lj-table', component: DataVLjTableComponent }, | |||||
| { path: 'lj-table', component: DataVLjTableComponent } | |||||
| ]; | ]; | ||||
| @@ -1,6 +1,5 @@ | |||||
| <!-- <div #Three style="background-color: red;"></div> --> | <!-- <div #Three style="background-color: red;"></div> --> | ||||
| <div style="display: flex; flex-direction: column; height: 100vh;"> | |||||
| <div #Three style="flex-grow: 1;"></div> | |||||
| </div> | |||||
| <div style="display: flex; flex-direction: column; height: 100vh"> | |||||
| <div #Three style="flex-grow: 1"></div> | |||||
| </div> | |||||
| @@ -0,0 +1,8 @@ | |||||
| .custom-button { | |||||
| cursor: pointer; | |||||
| padding: 5px 10px; | |||||
| /* background-color: #f0f0f0; Change the background color as needed */ | |||||
| border: none; | |||||
| } | |||||
| @@ -0,0 +1,28 @@ | |||||
| import { ICellRendererParams, ICellRendererComp } from 'ag-grid-community'; | |||||
| export class ButtonCellRenderer implements ICellRendererComp { | |||||
| destroy?(): void { | |||||
| throw new Error('Method not implemented.'); | |||||
| } | |||||
| refresh(params: ICellRendererParams<any, any, any>): boolean { | |||||
| throw new Error('Method not implemented.'); | |||||
| } | |||||
| eGui!: HTMLElement; | |||||
| init(params: ICellRendererParams) { | |||||
| this.eGui = document.createElement('button'); | |||||
| // this.eGui.innerHTML = '<button nz-button nzType="primary" nzSize="small">Small</button>'; | |||||
| this.eGui.innerHTML = '<button style="background-color: transparent; border: none; cursor: pointer;">Click Me</button>'; | |||||
| // this.eGui.c | |||||
| // this.eGui.className = 'custom-button'; | |||||
| this.eGui.addEventListener('click', () => { | |||||
| // Handle button click event | |||||
| }); | |||||
| } | |||||
| getGui() { | |||||
| return this.eGui; | |||||
| } | |||||
| // Implement other necessary methods... | |||||
| } | |||||
| @@ -1,17 +1,20 @@ | |||||
| .ag-grid-button-style { | .ag-grid-button-style { | ||||
| cursor: pointer; | cursor: pointer; | ||||
| display: inline-block; | display: inline-block; | ||||
| width: 90px; | |||||
| height: 90%; | |||||
| width: 90px; | |||||
| margin: 4px; /* Add margin for spacing around the button */ | |||||
| padding: 8px 12px; /* Add padding for spacing */ | |||||
| font-weight: 800; | font-weight: 800; | ||||
| color: #74FAFB; | |||||
| color: #E0E0E0; /* Light gray text color */ | |||||
| text-align: center; | text-align: center; | ||||
| background-color: transparent; | |||||
| border-color: #74FAFB; | |||||
| border-radius: 4px; | |||||
| text-decoration: none; /* Remove default underline */ | |||||
| background-color: #1E4D6B; /* Dark blue background color */ | |||||
| border: none; /* Remove border */ | |||||
| transition: background-color 0.3s, color 0.3s; /* Smooth transition for hover effect */ | |||||
| } | } | ||||
| .ag-grid-button-style:hover { | .ag-grid-button-style:hover { | ||||
| color: white; | |||||
| background-color: #74FAFB; | |||||
| color: #FFF; /* White text color on hover */ | |||||
| text-decoration: underline; /* Add underline on hover */ | |||||
| background-color: #3A6D8C; /* Lighter blue background color on hover */ | |||||
| } | } | ||||
| @@ -5,14 +5,12 @@ import { ICellRendererParams } from 'ag-grid-community'; | |||||
| @Component({ | @Component({ | ||||
| standalone: true, | standalone: true, | ||||
| template: ` | template: ` | ||||
| <span style="display: flex; justify-content: center; align-items: center; height: 100%;"> | |||||
| <button class="ag-grid-button-style" (click)="buttonClicked()">{{cellValue}}</button> | |||||
| </span> | |||||
| <span style="display: flex; justify-content: center; align-items: center; height: 100%;"> | |||||
| <button class="ag-grid-button-style" (click)="buttonClicked()">{{ cellValue }}</button> | |||||
| </span> | |||||
| `, | `, | ||||
| styleUrls: ['./grid-button.less'] | styleUrls: ['./grid-button.less'] | ||||
| }) | }) | ||||
| export class GridButtonValueRenderer implements ICellRendererAngularComp { | export class GridButtonValueRenderer implements ICellRendererAngularComp { | ||||
| public cellValue!: string; | public cellValue!: string; | ||||
| public cellPath!: string; | public cellPath!: string; | ||||
| @@ -35,4 +33,4 @@ export class GridButtonValueRenderer implements ICellRendererAngularComp { | |||||
| getValueToDisplay(params: ICellRendererParams) { | getValueToDisplay(params: ICellRendererParams) { | ||||
| return params.valueFormatted ? params.valueFormatted : params.value; | return params.valueFormatted ? params.valueFormatted : params.value; | ||||
| } | } | ||||
| } | |||||
| } | |||||
| @@ -13,10 +13,10 @@ | |||||
| [columnDefs]="columnDefs" | [columnDefs]="columnDefs" | ||||
| [rowHeight]="38" | [rowHeight]="38" | ||||
| /> | /> | ||||
| <!-- <app-data-v-lj-table [columns]="tableColumns" [data]="tableData" /> --> | |||||
| <br /> | <br /> | ||||
| <!-- 分页 --> | <!-- 分页 --> | ||||
| <div class="grid-pagination"> | |||||
| <!-- <div class="grid-pagination"> | |||||
| <div class="page-total-style">共 {{ pageRowTotal }} 项数据</div> | <div class="page-total-style">共 {{ pageRowTotal }} 项数据</div> | ||||
| <nz-pagination | <nz-pagination | ||||
| [nzPageIndex]="pageIndex" | [nzPageIndex]="pageIndex" | ||||
| @@ -27,5 +27,5 @@ | |||||
| [className]="paginationThemeClass" | [className]="paginationThemeClass" | ||||
| nzShowSizeChanger | nzShowSizeChanger | ||||
| /> | /> | ||||
| </div> | |||||
| </div> --> | |||||
| </lj-data-v-card> | </lj-data-v-card> | ||||
| @@ -4,12 +4,13 @@ import { ColDef, GridApi } from 'ag-grid-community'; | |||||
| import { NzPaginationModule } from 'ng-zorro-antd/pagination'; | import { NzPaginationModule } from 'ng-zorro-antd/pagination'; | ||||
| import { LJDataVCardComponent } from '../../lj-card/lj-card.component'; | import { LJDataVCardComponent } from '../../lj-card/lj-card.component'; | ||||
| import { TableColumn, DataVLjTableComponent } from '../../lj-table/lj-table.component'; | |||||
| @Component({ | @Component({ | ||||
| selector: 'lj-app-ag-grid-component', | selector: 'lj-app-ag-grid-component', | ||||
| imports: [AgGridAngular, NzPaginationModule, LJDataVCardComponent], | |||||
| standalone: true, | standalone: true, | ||||
| templateUrl: './lj-ag-grid-component.component.html', | templateUrl: './lj-ag-grid-component.component.html', | ||||
| styleUrls: ['./pagination-style/pagination.less'] | |||||
| styleUrls: ['./pagination-style/pagination.less'], | |||||
| imports: [AgGridAngular, NzPaginationModule, LJDataVCardComponent, DataVLjTableComponent] | |||||
| }) | }) | ||||
| export class LjAgGridComponentComponent implements OnInit { | export class LjAgGridComponentComponent implements OnInit { | ||||
| [x: string]: any; | [x: string]: any; | ||||
| @@ -40,10 +41,47 @@ export class LjAgGridComponentComponent implements OnInit { | |||||
| @Input() paginationThemeClass: string = 'ag-theme-quartz'; | @Input() paginationThemeClass: string = 'ag-theme-quartz'; | ||||
| /** 构造函数 */ | /** 构造函数 */ | ||||
| constructor() {} | constructor() {} | ||||
| // 在父组件的类中 | |||||
| tableColumns: TableColumn[] = [ | |||||
| { key: 'sort', title: '序号' }, | |||||
| { key: 'time', title: '时间' }, | |||||
| { key: 'option', title: '操作' }, | |||||
| { key: 'optionDesc', title: '操作描述' }, | |||||
| { key: 'optionMan', title: '操作人员' }, | |||||
| { key: 'mark', title: '备注' }, | |||||
| { key: 'edit', title: '编辑' } | |||||
| // 其他列配置... | |||||
| ]; | |||||
| tableData = [ | |||||
| { sort: '1', time: '2024.1.12 18:23', option: '锁定', optionDesc: '锁定1号磅', optionMan: '张三', mark: '早晨', edit: '按钮' }, | |||||
| { sort: '1', time: '2024.1.12 18:23', option: '释放', optionDesc: '释放1号磅', optionMan: '张三', mark: '早晨', edit: '按钮' }, | |||||
| { sort: '1', time: '2024.1.12 18:23', option: '锁定', optionDesc: '锁定1号磅', optionMan: '张三', mark: '早晨', edit: '按钮' }, | |||||
| { sort: '1', time: '2024.1.12 18:23', option: '释放', optionDesc: '释放1号磅', optionMan: '张三', mark: '早晨', edit: '按钮' }, | |||||
| { sort: '1', time: '2024.1.12 18:23', option: '锁定', optionDesc: '锁定1号磅', optionMan: '张三', mark: '早晨', edit: '按钮' }, | |||||
| { sort: '1', time: '2024.1.12 18:23', option: '释放', optionDesc: '释放1号磅', optionMan: '张三', mark: '早晨', edit: '按钮' }, | |||||
| { sort: '1', time: '2024.1.12 18:23', option: '锁定', optionDesc: '锁定1号磅', optionMan: '张三', mark: '早晨', edit: '按钮' }, | |||||
| { sort: '1', time: '2024.1.12 18:23', option: '释放', optionDesc: '释放1号磅', optionMan: '张三', mark: '早晨', edit: '按钮' }, | |||||
| { sort: '1', time: '2024.1.12 18:23', option: '锁定', optionDesc: '锁定1号磅', optionMan: '张三', mark: '早晨', edit: '按钮' }, | |||||
| { sort: '1', time: '2024.1.12 18:23', option: '释放', optionDesc: '释放1号磅', optionMan: '张三', mark: '早晨', edit: '按钮' }, | |||||
| { sort: '1', time: '2024.1.12 18:23', option: '锁定', optionDesc: '锁定1号磅', optionMan: '张三', mark: '早晨', edit: '按钮' }, | |||||
| { sort: '1', time: '2024.1.12 18:23', option: '释放', optionDesc: '释放1号磅', optionMan: '张三', mark: '早晨', edit: '按钮' }, | |||||
| { sort: '1', time: '2024.1.12 18:23', option: '锁定', optionDesc: '锁定1号磅', optionMan: '张三', mark: '早晨', edit: '按钮' }, | |||||
| { sort: '1', time: '2024.1.12 18:23', option: '释放', optionDesc: '释放1号磅', optionMan: '张三', mark: '早晨', edit: '按钮' }, | |||||
| { sort: '1', time: '2024.1.12 18:23', option: '锁定', optionDesc: '锁定1号磅', optionMan: '张三', mark: '早晨', edit: '按钮' }, | |||||
| { sort: '1', time: '2024.1.12 18:23', option: '释放', optionDesc: '释放1号磅', optionMan: '张三', mark: '早晨', edit: '按钮' }, | |||||
| { sort: '1', time: '2024.1.12 18:23', option: '锁定', optionDesc: '锁定1号磅', optionMan: '张三', mark: '早晨', edit: '按钮' }, | |||||
| { sort: '1', time: '2024.1.12 18:23', option: '释放', optionDesc: '释放1号磅', optionMan: '张三', mark: '早晨', edit: '按钮' }, | |||||
| { sort: '1', time: '2024.1.12 18:23', option: '锁定', optionDesc: '锁定1号磅', optionMan: '张三', mark: '早晨', edit: '按钮' }, | |||||
| { sort: '1', time: '2024.1.12 18:23', option: '释放', optionDesc: '释放1号磅', optionMan: '张三', mark: '早晨', edit: '按钮' } | |||||
| // 其他数据... | |||||
| ]; | |||||
| /**初始化 */ | /**初始化 */ | ||||
| ngOnInit() { | ngOnInit() { | ||||
| console.log('-----表格初始化-----'); | console.log('-----表格初始化-----'); | ||||
| this.title = '代办任务'; | |||||
| this.title = '待办任务'; | |||||
| this.pageSize = 10; | this.pageSize = 10; | ||||
| this.pageIndex = 1; | this.pageIndex = 1; | ||||
| this.pageRowTotal = this.rowData.length; | this.pageRowTotal = this.rowData.length; | ||||
| @@ -25,7 +25,14 @@ | |||||
| /* 分页器 */ | /* 分页器 */ | ||||
| .ag-header-center .ag-header-group-cell-label, | |||||
| .ag-header-center .ag-header-cell-label { | |||||
| display: grid; | |||||
| justify-content: center; | |||||
| color: #000; | |||||
| text-align: center; | |||||
| background: #000; | |||||
| } | |||||
| ::ng-deep .ag-theme-datav ::ng-deep .ag-row-selected .ag-ltr .ag-cell { | ::ng-deep .ag-theme-datav ::ng-deep .ag-row-selected .ag-ltr .ag-cell { | ||||
| color: red !important; | color: red !important; | ||||
| @@ -60,7 +60,7 @@ export class DataVWorkstationComponent implements OnInit, AfterViewInit { | |||||
| { headerName: '任务名称', unSortIcon: true, width: 120, field: 'rwmc' }, | { headerName: '任务名称', unSortIcon: true, width: 120, field: 'rwmc' }, | ||||
| { headerName: '任务描述', unSortIcon: true, field: 'rwms', width: 120 }, | { headerName: '任务描述', unSortIcon: true, field: 'rwms', width: 120 }, | ||||
| { headerName: '开始时间', unSortIcon: true, field: 'kssj', width: 180 }, | |||||
| { headerName: '开始时间', headerClass: 'ag-header-center', unSortIcon: true, field: 'kssj', width: 180 }, | |||||
| { headerName: '计划完成时间', unSortIcon: true, field: 'jhwcsj', width: 180 }, | { headerName: '计划完成时间', unSortIcon: true, field: 'jhwcsj', width: 180 }, | ||||
| { headerName: '超期', width: 70, field: 'sfcq' }, | { headerName: '超期', width: 70, field: 'sfcq' }, | ||||
| { headerName: '操作', width: 90, autoHeaderHeight: true, field: 'cz', cellRenderer: GridButtonValueRenderer } | { headerName: '操作', width: 90, autoHeaderHeight: true, field: 'cz', cellRenderer: GridButtonValueRenderer } | ||||
| @@ -3,10 +3,10 @@ import { startPageGuard } from '@core'; | |||||
| import { authSimpleCanActivate, authSimpleCanActivateChild } from '@delon/auth'; | import { authSimpleCanActivate, authSimpleCanActivateChild } from '@delon/auth'; | ||||
| import { DashboardComponent } from './dashboard/dashboard.component'; | import { DashboardComponent } from './dashboard/dashboard.component'; | ||||
| import { LayoutBasicComponent, LayoutBlankComponent } from '../layout'; | |||||
| import { DataVHomeComponent } from './data-v/home/home.component'; | import { DataVHomeComponent } from './data-v/home/home.component'; | ||||
| import { DataVLjTableComponent } from './data-v/lj-table/lj-table.component'; | |||||
| import { DataVWorkstationComponent } from './data-v/workstation/workstation.component'; | import { DataVWorkstationComponent } from './data-v/workstation/workstation.component'; | ||||
| import { LayoutBasicComponent, LayoutBlankComponent } from '../layout'; | |||||
| export const routes: Routes = [ | export const routes: Routes = [ | ||||
| { | { | ||||
| path: 'home', | path: 'home', | ||||