@@ -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 { DataVHomeComponent } from './home/home.component'; | |||
import { DataVLjTableComponent } from './lj-table/lj-table.component'; | |||
import { DataVS1Component } from './s1/s1.component'; | |||
import { DataVSecond1Component } from './second1/second1.component'; | |||
import { DataVT1Component } from './t1/t1.component'; | |||
import { DataVThreejsComponent } from './threejs/threejs.component'; | |||
import { DataVUserComponent } from './user/user.component'; | |||
import { DataVWorkstationComponent } from './workstation/workstation.component'; | |||
import { DataVT1Component } from './t1/t1.component'; | |||
export const routes: Routes = [ | |||
{ | |||
@@ -21,5 +22,7 @@ export const routes: Routes = [ | |||
data: { menu: null } | |||
}, | |||
{ 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 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 { | |||
cursor: pointer; | |||
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; | |||
color: #74FAFB; | |||
color: #E0E0E0; /* Light gray text color */ | |||
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 { | |||
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({ | |||
standalone: true, | |||
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'] | |||
}) | |||
export class GridButtonValueRenderer implements ICellRendererAngularComp { | |||
public cellValue!: string; | |||
public cellPath!: string; | |||
@@ -35,4 +33,4 @@ export class GridButtonValueRenderer implements ICellRendererAngularComp { | |||
getValueToDisplay(params: ICellRendererParams) { | |||
return params.valueFormatted ? params.valueFormatted : params.value; | |||
} | |||
} | |||
} |
@@ -13,10 +13,10 @@ | |||
[columnDefs]="columnDefs" | |||
[rowHeight]="38" | |||
/> | |||
<!-- <app-data-v-lj-table [columns]="tableColumns" [data]="tableData" /> --> | |||
<br /> | |||
<!-- 分页 --> | |||
<div class="grid-pagination"> | |||
<!-- <div class="grid-pagination"> | |||
<div class="page-total-style">共 {{ pageRowTotal }} 项数据</div> | |||
<nz-pagination | |||
[nzPageIndex]="pageIndex" | |||
@@ -27,5 +27,5 @@ | |||
[className]="paginationThemeClass" | |||
nzShowSizeChanger | |||
/> | |||
</div> | |||
</div> --> | |||
</lj-data-v-card> |
@@ -4,12 +4,13 @@ import { ColDef, GridApi } from 'ag-grid-community'; | |||
import { NzPaginationModule } from 'ng-zorro-antd/pagination'; | |||
import { LJDataVCardComponent } from '../../lj-card/lj-card.component'; | |||
import { TableColumn, DataVLjTableComponent } from '../../lj-table/lj-table.component'; | |||
@Component({ | |||
selector: 'lj-app-ag-grid-component', | |||
imports: [AgGridAngular, NzPaginationModule, LJDataVCardComponent], | |||
standalone: true, | |||
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 { | |||
[x: string]: any; | |||
@@ -40,10 +41,47 @@ export class LjAgGridComponentComponent implements OnInit { | |||
@Input() paginationThemeClass: string = 'ag-theme-quartz'; | |||
/** 构造函数 */ | |||
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() { | |||
console.log('-----表格初始化-----'); | |||
this.title = '代办任务'; | |||
this.title = '待办任务'; | |||
this.pageSize = 10; | |||
this.pageIndex = 1; | |||
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 { | |||
color: red !important; | |||
@@ -60,7 +60,7 @@ export class DataVWorkstationComponent implements OnInit, AfterViewInit { | |||
{ headerName: '任务名称', unSortIcon: true, width: 120, field: 'rwmc' }, | |||
{ 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: '超期', width: 70, field: 'sfcq' }, | |||
{ headerName: '操作', width: 90, autoHeaderHeight: true, field: 'cz', cellRenderer: GridButtonValueRenderer } | |||
@@ -3,10 +3,10 @@ import { startPageGuard } from '@core'; | |||
import { authSimpleCanActivate, authSimpleCanActivateChild } from '@delon/auth'; | |||
import { DashboardComponent } from './dashboard/dashboard.component'; | |||
import { LayoutBasicComponent, LayoutBlankComponent } from '../layout'; | |||
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 { LayoutBasicComponent, LayoutBlankComponent } from '../layout'; | |||
export const routes: Routes = [ | |||
{ | |||
path: 'home', | |||