angular JS 动态表单表头,动态列,列多了 自动滚动条,少了没用滚动条,最下面一层表头宽度一样

songweida8076 2018-12-12 03:45:36
json 格式:
{
"status": true,
"message": null,
"data": {
"类型3": [
{
"projectType": "类型3",
"viewsList": [
"A",
"B",
"C",
"D",
"E"
],
"units": "C",
"projectName": "测试",
"point": "demo.DEMO_AI038"
},
{
"projectType": "类型3",
"viewsList": [
"A",
"B"
],
"units": "C",
"projectName": "1233423",
"point": "demo.DEMO_AI011"
}
],
"类型2": [
{
"projectType": "类型2",
"viewsList": [
"E"
],
"units": "C",
"projectName": "测试修改",
"point": "demo.DEMO_AI002"
}
]
},
"temp": null
}

想要实现的样子:




目前做的写了N个循环 不太好,而且最下一层表头宽度不一。有个nzWidthConfig,不知道咋动态设定和nzScroll 滚动条相关。
html:
<nz-table
#groupingTable
[nzData]="displayData"
nzBordered
nzSize="middle"
[nzScroll]="{ x:'100%'}">
<thead>


<tr>
<th rowspan="4" nzLeft="0px" >时间</th>
<ng-template ngFor let-name [ngForOf]="objectKeys(this.data)" let-i="index">
<ng-template ngFor let-item [ngForOf]="this.data[name]" let-j="index">

<th *ngIf="j==this.data[name].length-1" [attr.colspan] ="item.num" >{{name}}</th>
</ng-template>
</ng-template>
</tr>

<tr>
<ng-template ngFor let-name [ngForOf]="objectKeys(this.data)" let-i="index">
<th *ngFor="let item of this.data[name];index as b" [attr.colspan] ="item.viewsList.length" >{{item.projectName}}</th>
</ng-template>
</tr>

<tr>
<ng-template ngFor let-name [ngForOf]="objectKeys(this.data)" let-i="index">
<ng-template ngFor let-item [ngForOf]="this.data[name]" let-j="index">
<ng-template ngFor let-views [ngForOf]="item.viewsList">
<th>{{views}}</th>
</ng-template>
</ng-template>
</ng-template>
</tr>

<tr>
<ng-template ngFor let-name [ngForOf]="objectKeys(this.data)" let-i="index">
<ng-template ngFor let-item [ngForOf]="this.data[name]" let-j="index">
<ng-template ngFor let-views [ngForOf]="item.viewsList">
<th nzWidth="50px">{{item.units}}</th>
</ng-template>
</ng-template>
</ng-template>
</tr>
</thead>
<tbody>
<!--<tr *ngFor="let data of groupingTable.data">-->
<!--<td nzLeft="0px">{{data.name}}</td>-->
<!--<td>{{data.street}}</td>-->
<!--<td>{{data.building}}</td>-->
<!--<td>{{data.number}}</td>-->
<!--<td>{{data.companyAddress}}</td>-->
<!--<td>{{data.companyName}}</td>-->
<!--</tr>-->
</tbody>
</nz-table>
ts:

this.objectKeys(this.data).forEach((name: string) => {
this.colspannum=0;
this.data[name].forEach(item => {
this.colspannum = item.viewsList.length + this.colspannum;
item.num= this.colspannum;
});
});
...全文
924 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
songweida8076 2018-12-12
  • 打赏
  • 举报
回复
我用的是angular 5 调用antd框架,给些参照也行,谢谢各位大神。大神
讨厌走开啦 2018-12-12
  • 打赏
  • 举报
回复
试试自定义滚动条:https://blog.csdn.net/lqlqlq007/article/details/78595173

87,907

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧