我有一个表格,一周中的每一天都有一列,在这个表格中,我用ng repeat,把那一周在某个特定项目上的工作时间。
从数据库中提取数据。我遇到的问题是,每个项目可以有不同的子项目,当这种情况发生时,它们都被放在同一个主项目下的行范围中,如图中所示(“su”项目有两个子项目“ghfgh”和“testtest”)。
现在,最后一列中的总小时数也会从数据库中提取出来,在数据库中,一个项目在特定的一周中的所有小时数都会被求和。如果一个项目有子项目,我怎么能把他们那周的工作时间也加在一行中呢(在图像中,我放了一个箭头,显示想要的结果)
如果我使用相同的代码将rowspan赋给子项目,它将正确的rowspan赋给total列,但显然只显示第一个子项目的小时数(在本例中为“ghfgh”)
<tr ng-repeat="p in vm.presences">
<td ng-if="p.showProject" rowspan="{{p.projectCount}}">{{p.projectName}}</td>
<td>{{p.description}}</td>
<td>{{p.monday}}</td>
<td>{{p.tuesday}}</td>
<td>{{p.wednesday}}</td>
<td>{{p.thursday}}</td>
<td>{{p.friday}}</td>
<td>{{p.saturday}}</td>
<td>{{p.sunday}}</td>
<td ng-if="p.showProject" rowspan="{{p.projectCount}}">{{p.total}}</td>
</tr>
用于检查在给定的一周内是否有同一项目的多个条目,并将它们分组在同一行范围内的代码是
weeklyPresences.forEach((p, i) => {
const differentProject = i === 0 || weeklyPresences[i - 1].projectName !== p.projectName;
p.showProject = differentProject;
if (differentProject) {
p.projectCount = weeklyPresences.filter(pres => pres.projectName === p.projectName).length;
} else {
p.projectCount = weeklyPresences[i - 1].projectCount;
}
});
return weeklyPresences;
你知道我怎样把子项目的时间分组吗?
我在考虑一些循环,检查一个项目是否有多个条目,如上面的代码,如果没有,var total保持不变,否则,它接受它们并在一个新的var中求和。
1条答案
按热度按时间pdkcd3nj1#