2015-10-19 134 views
0

有一个odoo系统与时间表模块(自制)在其中。我想在那里为周末的单元格着色。一些代码示例如下:细胞着色

openerp.Tabel = function (instance) { 
    instance.web.list.columns.add('field.mywidget', 'instance.Tabel.mywidget'); 
    instance.Tabel.mywidget = instance.web.list.Column.extend({ 
         ... 
    _format: function (row_data, options) { 
     res = this._super.apply(this, arguments); 
     var startDate = row_data['time_start_s'].value; 
     if (startDate.length>0){ 
     //Get massive dd.mm.yyyy 
     var arr = startDate.split('-'); 
     var d = new Date(arr[0],arr[1]-1,arr[2]); 
     //Get current number of month. From field name delete all chars. 
     var number = this.name.replace(/[A-Za-z]/g, "") - 1; 
     d.setDate( d.getDate()+ number); 
     if (d.getDay()==0 || d.getDay()==6) 
     if (res.length>0) 
      return "<div class=\"oe_readonly\" style=\" color:#4d394b; background:#eadee0; \" >" + res+"</div>"; 
     else 
      return "<div class=\"oe_readonly\" style=\" color:#4d394b; background:#eadee0; \" > &nbsp;&nbsp;</div>"; 
    } 
    return res; 
    }, 
}); 

但是,这种颜色不完全是颜色。屏幕截图如下: timesheet table cells

有没有什么办法解决它?任何建议,一如既往,受到高度赞赏。

+0

只有div被访问,因此应用了颜色。你需要一种方式来设计实际的td - 而不是div。 – jeff

回答

0

该问题已通过使用宽度和高度参数解决。

if (d.getDay()==0 || d.getDay()==6) 
        if (res.length>0) 
         return "<div class=\"oe_readonly\" style=\" color:#4d394b; background:#a79ca6; width: 100%; height: 100%; \" >" + res+"</div>"; 
        else 
         return "<div class=\"oe_readonly\" style=\" color:#4d394b; background:#a79ca6; width: 100%; height: 100%; \" > &nbsp;&nbsp;</div>"; 
} 
return res; 
} 

+

padding: 0px 0px; 
在.css文件

1

请尝试使用CSS样式。你可以很容易的风格柱使用CSS:

td:nth-child(1) { background-color: #5555FF }

此风格的第一列。