首先了解jeesite4的前端是用到什麼技術:
可以了解到dataGrid主要用jqGrid 技術去渲染,了解之後可以去百度相關這門技術,做JAVA一定也會涉及到寫JS,見到JS不要怕,以下三點是給JS開發的建議:
- 首先要判斷你的JS代碼段或者方法有沒有觸發,可以寫一個alert或者console.log檢視
- 其次要善用console.log()方法像頁面控制台輸出資訊進行測試,這幾乎能解決80%的小問題需求,比如看看有沒有拿到你的控件,有沒有拿到值,是不是我想要的資料等,這個控件裡面有什麼東西,都可以一清二楚
- 最後,再面向複雜的JS,涉及到循環啊判斷這種,肉眼一般看不出的可以在頁面找到你的JS段打斷點,重新整理頁面就會進入到斷點中了,類似Eclipse的斷點調試
以下是我代碼的實作:
// 初始化DataGrid對象
$('#dataGrid').dataGrid({
searchForm: $("#searchForm"),
columnModel: [
{header:'${text("姓名")}', name:'name', index:'a.name', width:150, align:"left", frozen:true, formatter: function(val, obj, row, act){
return '<a href="${ctx}/py/pyNarcotics/view?narcId='+row.narcId+'" target="_blank" rel="external nofollow" class="btnList" data-title="${text("檢視在手人員")}">'+(val||row.id)+'</a>';
}},
{header:'${text("身份證号")}', name:'idCard', index:'a.id_card', width:150, align:"left",},
{header:'${text("手機号")}', name:'phone', index:'a.phone', width:150, align:"left"},
{header:'${text("監控時間")}', name:'controlTime', index:'a.control_time', hidden:true, width:150, align:"center"},
{header:'${text("操作")}', name:'actions', width:120, sortable:true, title:false, formatter: function(val, obj, row, act){
var actions = [];
<% if(hasPermi('py:pyNarcotics:edit')){ %>
actions.push('<a href="${ctx}/py/pyxx/view?narcId='+row.narcId+'" target="_blank" rel="external nofollow" class="btnList" title="${text("檢視")}"><i class="fa icon-eye"></i></a> ');
actions.push('<a href="${ctx}/py/pyxx/form?narcId='+row.narcId+'" target="_blank" rel="external nofollow" class="btnList" title="${text("編輯")}"><i class="fa fa-pencil"></i></a> ');
actions.push('<a href="${ctx}/py/pyxx/delete?narcId='+row.narcId+'" target="_blank" rel="external nofollow" class="btnList" title="${text("删除")}" data-confirm="${text("确認要删除XX嗎?")}"><i class="fa fa-trash-o"></i></a> ');
<% } %>
return actions.join('');
}}
],
// 加載成功後執行事件
ajaxSuccess: function(data){
//以下代碼實作:監控時間到了的記錄标紅
//js日期格式化 yyyy-MM-dd
Date.prototype.Format = function (fmt) {
var o = {
"M+": this.getMonth() + 1, //月份
"d+": this.getDate(), //日
"H+": this.getHours(), //小時
"m+": this.getMinutes(), //分
"s+": this.getSeconds(), //秒
"q+": Math.floor((this.getMonth() + 3) / 3), //季度
"S": this.getMilliseconds() //毫秒
};
if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
for (var k in o)
if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
return fmt;
}
//擷取所有的id
var idList = $('#dataGrid').dataGrid('getDataIDs');
//擷取所有行的資料
var dataList = $('#dataGrid').dataGrid('getRowData');
//擷取目前時間并将将時間轉成秒數,為友善後面日期大小的比較
var nowDate = new Date().Format("yyyy-MM-dd");
var arr1 = nowDate.split("-");
var nowDates = new Date(arr1[0],arr1[1],arr1[2]);
var nowDateTime = nowDates.getTime();
//周遊所有的行
for(var i=0; i< dataList.length; i++ ){
//擷取某行的監控時間,并将它轉成秒數
var thatDate=dataList[i].controlTime;
var arr2 = thatDate.split("-");
var thatDates = new Date(arr2[0],arr2[1],arr2[2]);
var thatDateTime = thatDates.getTime();
//如果日期是今天之前将記錄标灰色,
if(nowDateTime != "" && thatDateTime != "" && nowDateTime > thatDateTime ){
$("#"+idList[i]+ " td").css("background-color","#D0D0D0");
}
//如果日期等于今天将記錄标紅
if(nowDateTime != "" && thatDateTime != "" && nowDateTime == thatDateTime ){
$("#"+idList[i]+ " td").css("background-color","pink");
}
}
},
});
效果圖: