EasyUI-datagrid动态列创建
<script type="text/javascript"> $(function () { $.ajax({ url: "${url}getMesResourceCapacityBottleneckTitle",//这里这个方法是用来获取数据的动态表头的 data: {param: JSON.stringify(serializeObject($('#form')))}, type: 'post', dataType: 'json', success: function (r) { if (r.flag == "success") { var columns=[[]]; var list = r.title; for(var i=0;i<list.length;i++){//根据查询结果,动态的拼接表头,具体这个地方怎么拼接需要根据自身情况来做 var titleDay = new Date(list[i].CALENDAR_DATE).format("yyyy-MM-dd"); columns[0].push({field: 'date'+i, title: titleDay, width: 80,halign: 'center',align: 'center', formatter:formatColor}); columns[0].push({field: 'dateContrast'+i, title: titleDay, width: 80,halign: 'center',align: 'center',hidden:true}); } $('#dgMesResourceCapacityBottleneck').datagrid({ frozenColumns : [[//这一部分属于固定的已知表头的列,因为不是所有列都是动态的 {field: 'WorkLineName', halign: 'center', align: 'center', title: '生产线', width: 80}, {field: 'Zycode', halign: 'center', align: 'center', title: '资源名称', width: 80}, {field: 'FixedCapacity', halign: 'center', align: 'center', title: '天-能力', width: 80}, {field: 'Overdue', halign: 'center', align: 'center', title: '超期工时', width: 80, formatter:formatOverdue} ]], columns : columns,//这里是动态拼出来的列 url: "${url}getMesResourceCapacityBottleneckByPage.json",//这里是加载数据的方法,后台加载的数据一定要和前台字段匹配 queryParams:{ param: JSON.stringify(serializeObject($('#form'))) } }); } else { $.messager.alert('提示','加载出错,请联系管理员!','warning'); } } }); }); </script>
<div data-options="region:'center'" border="false" style="background:#ffffff;"> <table id="dgMesResourceCapacityBottleneck" data-options=" fit: true, border: false, rownumbers: false, animate: true, collapsible: false, autoRowHeight: false, idField :'id', singleSelect: true, checkOnSelect: true, selectOnCheck: false, pagination:true, pageSize:dataOptions.pageSize, pageList:dataOptions.pageList, striped:true"> </table> </div>
/** * @description:数据拼装 * @param queryReqBean * @return * @throws Exception */ public Map<String,Object> doCreate(QueryReqBean<Map<String,Object>> queryReqBean) throws Exception { try { Map<String,Object> map = new HashMap<String, Object>(); List<Map<String,Object>> listMap = new ArrayList<Map<String,Object>>(); List<Map<String,Object>> listHolidayMap = this.searchSumHours(queryReqBean.getSearchParams()); //这个统计出来的时间是资源能力工时调整表中的数据,需要加上该工作中心的当天能力工时,然后用来和实际工序工时进行比对判断 List<Map<String,Object>> adjustHoursMap = this.searchSumHoursAndHoliday(queryReqBean.getSearchParams()); QueryRespBean<Map<String,Object>> queryRespBean = this.searchMesResourceCapacityBottleneckByPage(queryReqBean); /*Page<Map<String,Object>> mapPage = queryRespBean.getResult(); for (Map<String, Object> mp : mapPage) { queryReqBean.getSearchParams().put("mdsWorkCenterId",mp.get("MDS_WORK_CENTER_ID")); }*/ List<Map<String,Object>> mdsFactoryCalendarDateMap = this.searchMdsFactoryCalendarDate(queryReqBean.getSearchParams()); Page<Map<String,Object>> dataList = queryRespBean.getResult(); Page<Map<String,Object>> pageList = new Page<Map<String,Object>>(); pageList.setPageNum(dataList.getPageNum()); pageList.setPageSize(dataList.getPageSize()); pageList.setTotal(dataList.getTotal()); DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); List<Map<String,Object>> listHeadMap = dataList.getResult(); for (Map<String, Object> map2 : listHeadMap) { Map<String,Object> mapList = new HashMap<String, Object>(); mapList.put("ID", map2.get("ID")); mapList.put("WorkLineName", map2.get("WORK_LINE_NAME")); mapList.put("Zycode", map2.get("ZYCODE")); mapList.put("FixedCapacity", map2.get("FIXED_CAPACITY")); mapList.put("Overdue", map2.get("OVERDUE")); mapList.put("Zyid", map2.get("ZYID")); mapList.put("BottleneckType", map2.get("BOTTLENECK_TYPE")); for (int i= 0;i<mdsFactoryCalendarDateMap.size();i++) { for (Map<String, Object> map4 : listHolidayMap) { String s = (String)map4.get("HOLIDAY"); String s1 = dateFormat.format(mdsFactoryCalendarDateMap.get(i).get("CALENDAR_DATE")); if(s==null||s1==null){ continue; } if(s.equals(s1)){ if(map2.get("ZYID").equals(map4.get("ID"))){ mapList.put("date"+i, map4.get("SUMHOURS")); } } } if(!mapList.containsKey("date"+i)){ mapList.put("date"+i, 0); } for (Map<String, Object> map5 : adjustHoursMap) { String s = (String)map5.get("HOLIDAY"); String s1 = dateFormat.format(mdsFactoryCalendarDateMap.get(i).get("CALENDAR_DATE")); if(s==null||s1==null){ continue; } if(s.equals(s1)){ if(map2.get("ZYID").equals(map5.get("ID"))){ mapList.put("dateContrast"+i, Integer.parseInt(map2.get("FIXED_CAPACITY").toString())+Integer.parseInt(map5.get("SUMADJUSTHOURS").toString())); } } } if(!mapList.containsKey("dateContrast"+i)){ mapList.put("dateContrast"+i, map2.get("FIXED_CAPACITY")); } } listMap.add(mapList); pageList.add(mapList); } queryRespBean.setResult(pageList); map.put("title", mdsFactoryCalendarDateMap); map.put("data", queryRespBean); return map; } catch (Exception e) { LOGGER.error("doCreate出错:", e); e.printStackTrace(); throw new DaoException(e.getMessage(), e); } }