根据读取后台配置(前端动态化展示table.)
来源:互联网 发布:mars安卓视频教程源码 编辑:程序博客网 时间:2024/05/22 09:48
直接上代码。废话不多说
jsp代码
<form id = "resultDownLoad"><table id="dg-child" title="比对结果列表" class="easyui-datagrid" style="height:385px" data-options="border:false"toolbar="#toolbar-child" rownumbers="true" fitColumns="true" singleSelect="true"></table></form>
点击某行记录。执行函数
row数据结构
result数据结构
function detailTask(){ var row = $('#dg').datagrid('getSelected'); if (row){ $.post('/taskManager/sureDetail.html',{taskId:row.taskId},function(result){ if (result.success){ //查询是否为条件查询字段 queryFlagMap(row,result); //查询是否是展示字段。在根据展示字段来展示详情 showFlagMap(row,result); } else { $.messager.show({ title: '错误信息', msg: result.msg }); } },'json'); } }
data数据结构
//查询是否为条件查询字段 function queryFlagMap(row,result){ $.ajax({ url:'/taskManager/queryFlagMap.html', type:"post", data:{'channelId':row.channelId}, dataType:'json', success:function(data){ var html=""; // 拼接查询条件 for(var i=0;i<data.length;i++){ html+="<label class="+data[i].field +">"+data[i].title+":</label>"+ "<input id="+data[i].field +" name="+data[i].field+" "+"style=width:100px"+"></input>" } $("#toolbar-child").prepend(html); } }); }
data数据结构
columns数据结构
//查询是否是展示字段。在根据展示字段来创建表格 function showFlagMap(row,result){ $.ajax({ url:'/taskManager/showFlagMap.html', type:"post", data:{'channelId':row.channelId}, dataType:'json', success:function(data){ var columns=[]; for(var i=0;i<data.length;i++){ var t={field: data[i].field, title:data[i].title, width: 90}; if(data[i].field=='pay_amount'){ var t={field: data[i].field, title: '支付金额(元)', width: 90 , formatter: function(value,row,index){ return formatPriceToRMB(value); }}; } columns.push(t); } //查询详情数据(展示列表) detailList(columns,row,result); } }); }
js
//查询任务详情 function detailList(columns,row,result){ $('#dlg-detail').dialog('open').dialog('center').dialog('setTitle','详情'); $('#fm-detail').form('load', result.data); $('#dg-child').datagrid({ rownumbers:true, url:'/taskManager/detailList.html?taskId='+row.taskId+'&channelId='+row.channelId, striped:true, singleSelect:true, loadMsg:'数据加载中,请稍后...', pagination:true, pageNumber:1, onLoadSuccess: function (data) { vara=data; }, columns: [columns],//数据填充。宣染表格 collapsible:true });}
js
//分转元。保留2位小数 function formatPriceToRMB(_price){ var result = "0.00"; if(null != _price || undefined != _price){ var price = parseInt(_price); if(!isNaN(price)) { var val = (price/100).toFixed(2); result = String(val).replace(/\d{1,3}(?=(\d{3})+(\.\d*)?$)/g, '$&,'); } } return result; }
controller
/** * 查询是否为展示字段 * @param channelId * @return */@RequestMapping("/showFlagMap")@ResponseBodypublic List<Map<String,Object>> showFlagMap(Integer channelId){List<Map<String, Object>> resultMap=null;try {resultMap=taskDataService.showFlagMap(channelId);log.info("查询是否为显示字段成功");} catch (Exception e) {log.error("查询是否为显示字段失败:{}", e);}return resultMap;}
/** * 查询是否为查询字段 * @return */@RequestMapping("/queryFlagMap")@ResponseBodypublic List<Map<String,Object>> queryFlagMap(Integer channelId){List<Map<String, Object>> resultMap=null;try {resultMap=taskDataService.queryFlagMap(channelId);log.info("查询是否为条件查询字段成功");} catch (Exception e) {log.error("查询是否为条件查询字段失败:{}", e);}return resultMap;}
/** * 查询任务详情记录 * @param request * @return */@RequestMapping("/detailList")@ResponseBodypublic PageListDto<Map<String,Object>> detailList(HttpServletRequest request) {PageListDto<Map<String,Object>> pageList = null;try {pageList = taskDataService.queryAllDetails(request);log.info("分页查询任务详情成功");} catch (Exception e) {log.error("分页查询任务详情失败:{}", e);}return pageList;}
serviceimpls实现
/** * 是否为条件展示字段 */@Overridepublic List<Map<String, Object>> showFlagMap(Integer channelId) {List<Map<String, Object>> resultMap=new ArrayList<Map<String,Object>>();ChannelEntity entity=channelService.selectById(DatasoureFlagEnum.DATA_R_CASH.getCode(),channelId);String schemaInfo=entity.getSchemaInfo();SchemaConfig config=JSON.parseObject(schemaInfo,SchemaConfig.class);//另外增加展示字段Map<String,Object> flagName=new HashMap<String,Object>();flagName.put("title","比对结果");flagName.put("field", "flagName");resultMap.add(flagName);Map<String,Object> deletedName=new HashMap<String,Object>();deletedName.put("title","处理状态");deletedName.put("field", "deletedName");resultMap.add(deletedName);for(int i=0;i<config.getFields().size();i++){if(String.valueOf(config.getFields().get(i).getShowFlag()).equals("1")){//是否为显示字段集合Map<String,Object> showFlagMap=new HashMap<String,Object>();showFlagMap.put("title",config.getFields().get(i).getLabel());showFlagMap.put("field", config.getFields().get(i).getColumn());resultMap.add(showFlagMap);}}//另外增加展示字段Map<String,Object> requestId=new HashMap<String,Object>();requestId.put("title","结果ID");requestId.put("field", "request_id");resultMap.add(requestId);return resultMap;}
/** * 查询是否为查询字段 */@Overridepublic List<Map<String, Object>> queryFlagMap(Integer channelId) {List<Map<String, Object>> resultMap=new ArrayList<Map<String,Object>>();ChannelEntity entity=channelService.selectById(DatasoureFlagEnum.DATA_R_CASH.getCode(),channelId);String schemaInfo=entity.getSchemaInfo();SchemaConfig config=JSON.parseObject(schemaInfo,SchemaConfig.class);for(int i=0;i<config.getFields().size();i++){if(String.valueOf(config.getFields().get(i).getQueryFlag()).equals("1")){//是否为条件查询字段集合Map<String,Object> queryFlagMap=new HashMap<String, Object>();queryFlagMap.put("title",config.getFields().get(i).getLabel());queryFlagMap.put("field", config.getFields().get(i).getColumn());resultMap.add(queryFlagMap);}}return resultMap;}
@Overridepublic PageListDto<Map<String,Object>> queryAllDetails(HttpServletRequest request) {//获取条件查询字段Integer taskId=Integer.valueOf( request.getParameter("taskId"));Integer channelId=Integer.valueOf(request.getParameter("channelId"));Integer rows=Integer.valueOf(request.getParameter("rows"));Integer page=Integer.valueOf(request.getParameter("page"));String flag=String.valueOf(request.getParameter("flag")).equals("3")?"":request.getParameter("flag");String deleted=String.valueOf(request.getParameter("deleted")).equals("2")?"":request.getParameter("deleted");//获取数据源导入结构ChannelEntity entity=channelService.selectById(DatasoureFlagEnum.DATA_R_CASH.getCode(),channelId);String schemaInfo=entity.getSchemaInfo();SchemaConfig config=JSON.parseObject(schemaInfo,SchemaConfig.class);String tableName=config.getTableName(); List<Map<String,Object>> list= new ArrayList<Map<String,Object>>(0);Long total=null;try{//查询详情记录sqlStringBuffer selectSql=new StringBuffer("select * from " + tableName+ "_data where task_id=" + taskId);//查询记录数sqlStringBuffer countSql=new StringBuffer("select count(1) as total from " + tableName+ "_data where task_id= ?") ;//循环拼接查询条件字段for(int i=0;i<config.getFields().size();i++){if(String.valueOf(config.getFields().get(i).getQueryFlag()).equals("1")){String fieldValue = request.getParameter(config.getFields().get(i).getColumn());if(StringUtils.isNotBlank(fieldValue)){countSql.append(" and "+config.getFields().get(i).getColumn()+"='"+fieldValue+"'");selectSql.append(" and "+config.getFields().get(i).getColumn()+"='"+fieldValue+"'");}}}if(StringUtils.isNotBlank(flag)){countSql.append(" and flag="+flag);selectSql.append(" and flag="+flag);}if(StringUtils.isNotBlank(deleted)){countSql.append(" and deleted="+deleted);selectSql.append(" and deleted="+deleted);}Map<String,Object> map=baseJdbcDao.queryForMap(new String(countSql),taskId);if(map!=null&&null!=map.get("total")){total=(Long)(map.get("total"));}selectSql.append(" order by request_id desc "+ " limit "+(page-1)*rows+" , "+rows);list=baseJdbcDao.query(selectSql.toString());//翻译convert(list);}catch(Exception e){logger.error("查询任务详情异常:"+ e);}PageListDto<Map<String,Object>> result = new PageListDto<Map<String,Object>>();result.setRows(list);result.setTotal(total);return result;}/** * 翻译 * @param list */private void convert(List<Map<String, Object>> list) {int i=0;for(i=0;i<list.size();i++){if(list.get(i).get("flag").equals("0")){list.get(i).put("flagName", "后台失败记录");}if(list.get(i).get("flag").equals("1")){list.get(i).put("flagName", "比对成功记录");}if(list.get(i).get("flag").equals("2")){list.get(i).put("flagName", "网关失败记录");}if(list.get(i).get("deleted").equals("0")){list.get(i).put("deletedName", "未处理");}if(list.get(i).get("deleted").equals("1")){list.get(i).put("deletedName", "处理");}}}
最终
阅读全文
0 0
- 根据读取后台配置(前端动态化展示table.)
- 前端展示后台处理进度
- js通过后台配置动态生成html table表格
- 前端数据的展示遇到应table展示时
- bootstrap table通过ajax获取后台数据展示在table
- 后台动态生成table表格
- 后台动态生成table表格
- 数据库订单数据读取到前端展示
- 根据后台配置项,动态的在页面先控制显示内容
- dhtmlx分页功能前端和后台代码展示
- 浅谈后台中动态生成Table
- 根据后台数据动态生成表格
- 动态事创建的a标签上利用jq滑过元素执行事件通过ajax获取后台数据根据鼠标位置展示数据内容,鼠标离开消失
- 根据table的列名动态查找该table
- 前端图形化展示js
- 通过Ajax请求后台数据,返回JSONArray(JsonObject),页面(Jquery)以table的形式展示
- Javascript根据后台传过来的JSON生成TABLE
- java后台业务数据树形化展示(使用easyUI)
- 谷歌插件安装
- bzoj 2301(1101) [HAOI2011]Problem b 莫比乌斯反演+分段优化
- java中queue的使用
- AS gradle 中Failed to resolve:com.android.support:appcompat-v7:报错处理
- 上拉加载和下拉刷新(XListView)
- 根据读取后台配置(前端动态化展示table.)
- testng源码阅读之四
- MySQL忘记root密码解决
- Python之异常处理
- spring表单标签
- Android 自定义View——联系人右侧字母索引
- 最小生成树——kruskal
- HDU-1712 ACboy needs your help (分组背包 入门题)
- Asp.net报表ReportViewer设计(RDLC)