我为webix数据表配置了一些列,每列都有属性:
function colorByProd(value, config) {
var n = 0;
var timeToCompare = 0;
for (var i = 0; i < 8; i++) {
if (value === config[i]) {
var time = $$("detalleTurnoGrid").getColumnConfig(i).header[0];
var n = parseInt($scope.fecha.substring(11, 13));
var timeToCompare = parseInt(time.text.substring(0, 3));
if (timeToCompare < n) {
if (value < 31 && value >= 29)
return { "color": "#F7D358" };
if (value < 29)
return { "color": "red" };
if (value >= 31)
return { "color": "green" };
} else {
return { "color": "black" };
}
return value;
}
}
}
,其中
{{1}}
因此,对于每列,如果当前小时小于下一小时,则该值应为黑色,例如: Correct Table - &gt;当前小时== 11
如果现在是:11:00,列11:00和下一个将是黑色,但10:00列将是彩色的(绿 - 黄 - 红),这几乎是完美的但是我得到了一个错误?
例如:如果值编号存在于其他前一小时列中,则11:00列值也会更改颜色,仅当前一列中存在该值时:
感谢您的时间
答案 0 :(得分:1)
看起来你的代码有点过于复杂,你不需要在colorByProd中使用循环,因为代码总是返回单个单元格的颜色
function colorByProd(value, config) {
var n = 11;
var timeToCompare = parseInt(this.header[0].text.substring(0, 2));
if (timeToCompare < n) {
if (value < 31 && value >= 29)
return { "color": "#F7D358" };
if (value < 29)
return { "color": "red" };
if (value >= 31)
return { "color": "green" };
} else {
return { "color": "black" };
}
return value;
}