Forráskód Böngészése

git-svn-id: https://192.168.57.71/svn/jsgkj@531 931142cf-59ea-a443-aa0e-51397b428577

ld_zhoutl 9 éve
szülő
commit
0637547d51

+ 144 - 0
xtdsp/trunk/src/main/java/com/xt/dsp/controller/ColumnCtl.java

@@ -0,0 +1,144 @@
+package com.xt.dsp.controller;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.h2.util.StringUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import com.xt.dsp.common.util.CommonUtil;
+import com.xt.dsp.model.ColumnBean;
+import com.xt.dsp.model.TaskBean;
+import com.xt.dsp.service.ColumnService;
+import com.xt.dsp.service.TaskService;
+import com.xt.dsp.vo.ColumnVo;
+import com.yuanxd.tools.pagehelper.PageHelper;
+import com.yuanxd.tools.pagehelper.PageInfo;
+
+@Controller
+@RequestMapping("column")
+public class ColumnCtl {
+	@Autowired
+	private ColumnService columnService;
+	@Autowired
+	private TaskService taskService;
+
+	/**
+	 * 主画面
+	 * 
+	 * @return
+	 */
+	@RequestMapping("main")
+	public String main() {
+		return "sys/column/column";
+	}
+
+	/**
+	 * 初始化页面加载数据
+	 */
+	@RequestMapping("initColumn")
+	@ResponseBody
+	public PageInfo<ColumnVo> initColumn(Model model, ColumnVo vo) {
+		// 初始化参数
+		if (vo.getPage() < 1) {
+			vo.setPage(1);
+		}
+		if (vo.getRows() < 1) {
+			vo.setRows(1);
+		}
+		PageHelper.startPage(vo.getPage(), vo.getRows());
+		List<ColumnBean> list = columnService.selectAll();
+		// 获取task列表
+		List<TaskBean> taskList = taskService.selectAll();
+		PageInfo<ColumnBean> pageResult = new PageInfo<>(list);
+		
+		List<ColumnVo> voList = new ArrayList<ColumnVo>();
+		// 所在任务名称转换
+		for(ColumnBean bean : list) {
+			ColumnVo columnVo = new ColumnVo();
+			BeanUtils.copyProperties(bean, columnVo);
+			for(TaskBean taskBean : taskList) {
+				if(columnVo.getTaskId().equals(taskBean.getId())) {
+					columnVo.setTaskName(taskBean.getName());
+					break;
+				}
+			}
+			voList.add(columnVo);
+		}
+		PageInfo<ColumnVo> voResult = new PageInfo<>();
+		BeanUtils.copyProperties(pageResult, voResult);
+		voResult.setList(voList);
+		
+		return voResult;
+	}
+
+	/**
+	 * 保存实体
+	 * 
+	 * @param vo
+	 * @return
+	 */
+	@RequestMapping("save")
+	@ResponseBody
+	public ColumnBean saveColumn(Model model, ColumnVo vo) {
+		ColumnBean saveBean = new ColumnBean();
+		// 新增
+		if (StringUtils.isNullOrEmpty(vo.getId())) {
+			BeanUtils.copyProperties(vo, saveBean);
+			saveBean.setId(CommonUtil.getUUID());
+			columnService.insert(saveBean);
+		} else {
+			// 修改
+			saveBean = columnService.selectByPrimaryKey(vo.getId());
+			saveBean.setColumnName(vo.getColumnName());
+			saveBean.setTaskId(vo.getTaskId());
+			saveBean.setMapCode(vo.getMapCode());
+			saveBean.setValid(vo.getValid());
+			columnService.updateByPrimaryKey(saveBean);
+		}
+		return saveBean;
+	}
+
+	/**
+	 * 初始化页面加载数据
+	 */
+	@RequestMapping("initEditColumn")
+	@ResponseBody
+	public ColumnBean initEditColumn(Model model, String id) {
+		ColumnBean bean = columnService.selectByPrimaryKey(id);
+		return bean;
+	}
+
+	/**
+	 * 删除数据
+	 */
+	@RequestMapping("delColumn")
+	@ResponseBody
+	public int delColumn(Model model, String ids) {
+		int cnt = 0;
+		if (!StringUtils.isNullOrEmpty(ids)) {
+			String[] idArr = ids.split(",");
+			for(String id : idArr) {
+				if(!StringUtils.isNullOrEmpty(id)) {
+					cnt += columnService.deleteByPrimaryKey(id);
+				}
+			}
+		}
+		return cnt;
+	}
+	
+	/**
+     * 获取任务下拉数据
+     */
+	@RequestMapping("getColumnForDdl")
+	@ResponseBody
+    public List<ColumnBean> getColumnForDdl(Model model) {
+		List<ColumnBean> list = columnService.selectAll();
+    	return list;
+    }
+}

+ 48 - 0
xtdsp/trunk/src/main/java/com/xt/dsp/vo/ColumnVo.java

@@ -0,0 +1,48 @@
+package com.xt.dsp.vo;
+
+import com.xt.dsp.common.BaseVo;
+
+public class ColumnVo extends BaseVo{
+	private String id;
+	private String taskId;
+	private String taskName;
+	private String columnName;
+	private String mapCode;
+	private String valid;
+	public String getId() {
+		return id;
+	}
+	public void setId(String id) {
+		this.id = id;
+	}
+	public String getTaskId() {
+		return taskId;
+	}
+	public void setTaskId(String taskId) {
+		this.taskId = taskId;
+	}
+	public String getTaskName() {
+		return taskName;
+	}
+	public void setTaskName(String taskName) {
+		this.taskName = taskName;
+	}
+	public String getColumnName() {
+		return columnName;
+	}
+	public void setColumnName(String columnName) {
+		this.columnName = columnName;
+	}
+	public String getMapCode() {
+		return mapCode;
+	}
+	public void setMapCode(String mapCode) {
+		this.mapCode = mapCode;
+	}
+	public String getValid() {
+		return valid;
+	}
+	public void setValid(String valid) {
+		this.valid = valid;
+	}
+}

+ 172 - 0
xtdsp/trunk/src/main/webapp/WEB-INF/view/sys/column/column.jsp

@@ -0,0 +1,172 @@
+<%@ page contentType="text/html;charset=UTF-8"%>
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<title>数据列管理</title>
+<%@ include file="../../layouts/header.jsp"%>
+
+<link rel="stylesheet"
+	href="<%=base%>/js/common/zTree_v3/css/zTreeStyle/zTreeStyle.css"
+	type="text/css">
+<script
+	src="<%=base%>/js/common/zTree_v3/js/jquery.ztree.core-3.5.min.js"></script>
+<script type="text/javascript" src="<%=base%>/js/sys/column/column.js"></script>
+</head>
+
+<body class="no-skin">
+	<!-- #section:basics/navbar.layout -->
+	<%@ include file="../../layouts/navbar.jsp"%>
+
+	<div class="main-container" id="main-container">
+		<script type="text/javascript">
+			try {
+				ace.settings.check('main-container', 'fixed')
+			} catch (e) {
+			}
+		</script>
+
+		<!-- #section:basics/sidebar -->
+		<%@ include file="../../layouts/sidebar.jsp"%>
+		<div class="main-content">
+			<div class="breadcrumbs" id="breadcrumbs">
+				<ul class="breadcrumb">
+					<li><i class="ace-icon fa fa-home home-icon"></i> <a
+						href="<%=home%>">首页</a></li>
+
+					<li class="active">系统管理</li>
+					<li class="active">数据列管理</li>
+				</ul>
+			</div>
+			<div class="col-xs-12"></div>
+			<div class="main-content-inner">
+				<div class="page-content">
+					<div class="widget-box">
+						<div class="widget-header">
+							<h4 class="widget-title">数据列查询</h4>
+							<div class="widget-toolbar">
+								<a href="#" data-action="collapse"> <i
+									class="ace-icon fa fa-chevron-up"></i>
+								</a> <a href="#" data-action="close"> <i
+									class="ace-icon fa fa-times"></i>
+								</a>
+							</div>
+						</div>
+
+						<div class="widget-body">
+							<div class="widget-main">
+								<form class="form-horizontal" onsubmit="return false">
+									<label class="col-sm-12 control-label"></label>
+									<div class="form-group">
+										<label for="srchName" class="col-sm-2 control-label">数据列名称</label>
+										<div class="col-sm-2">
+											<input type="text" class="form-control limited"
+												id="srchName" placeholder="">
+										</div>
+										<label for="srchCode" class="col-sm-2 control-label">所属任务</label>
+										<div class="col-sm-2">
+											<input type="text" class="form-control limited"
+												id="srchCode" placeholder="">
+										</div>
+										<div class="col-sm-2">
+											<button class="btn btn-purple btn-round btn-sm"
+												onclick="searchRecord()">
+												<i class="ace-icon fa fa-search"></i> 查询
+											</button>
+
+										</div>
+										<label class="col-sm-1 control-label"></label>
+									</div>
+								</form>
+							</div>
+						</div>
+					</div>
+					<!--列表部分-->
+					<div>
+						<div>
+							<table id="grid-table"></table>
+							<div id="grid-pager"></div>
+						</div>
+					</div>
+				</div>
+			</div>
+		</div>
+		<!--弹出新增界面-->
+		<div id="modal-table" class="modal fade" tabindex="-1">
+			<div class="modal-dialog" style="width: 700px; height: 500px;">
+				<div class="modal-content">
+					<div class="modal-header no-padding">
+						<div class="table-header">
+							<button type="button" class="close" data-dismiss="modal"
+								aria-hidden="true">
+								<span class="white">&times;</span>
+							</button>
+							<label class="modal-title" id="myModalLabel"></label>
+						</div>
+					</div>
+					<div class="modal-body no-padding">
+						<form class="form-horizontal" id="form" method="post"
+							onsubmit="return false;">
+							<input type="hidden" id="id" name="id">
+							<div class="form-group">
+								<label for="columnName" class="col-sm-2 control-label">数据列名称</label>
+								<div class="col-sm-3">
+									<input type="text" class="form-control limited {required:true}"
+										id="columnName" name="columnName" maxlength="100">
+								</div>
+								<div class="col-sm-1"></div>
+								<label for="taskId" class="col-sm-2 control-label">所属任务</label>
+								<div class="col-sm-3">
+                                    <select class="form-control" id="taskId" name="taskId">
+                                    </select>
+								</div>
+								<div class="col-sm-1"></div>
+							</div>
+							<div class="form-group">
+								<label for="mapCode" class="col-sm-2 control-label">映射代码</label>
+								<div class="col-sm-3">
+									<input type="text" class="form-control limited" id="mapCode"
+										name="mapCode" maxlength="200" placeholder="">
+								</div>
+								<div class="col-sm-1"></div>
+								<label for="valid" class="col-sm-2 control-label">是否可用</label>
+								<div class="col-sm-3">
+                                    <select class="form-control" id="valid" name="valid">
+	                                    <option selected value='Y'>是</option>
+	                                    <option value='N'>否</option>
+                                    </select>
+								</div>
+								<div class="col-sm-1"></div>
+							</div>
+					
+					<div class="modal-footer no-margin-top center modal-foot-border">
+						<button id="btnSave" class="btn btn-success btn-round btn-sm">
+							<i class="ace-icon fa fa-save"></i> 保存
+						</button>
+						<button type="button" class="btn btn-grey btn-round btn-sm"
+							onclick="closeWin()">
+							<i class="ace-icon fa fa-remove"></i> 关闭
+						</button>
+					</div>
+					</form>
+				</div>
+			</div>
+		</div>
+	</div>
+
+	<!-- #section:basics/footer -->
+	<%@ include file="../../layouts/footer.jsp"%>
+	</div>
+
+	<script type="text/javascript">
+		$(function() {
+			$("#form").validate({
+				submitHandler : function(form) {
+					submitForm();
+				}
+			});
+		});
+	</script>
+	<!-- /.main-container -->
+</body>
+</html>
+

+ 374 - 0
xtdsp/trunk/src/main/webapp/js/sys/column/column.js

@@ -0,0 +1,374 @@
+/**
+ * 列管理定义引用的js
+ */
+
+var grid_selector = "#grid-table";
+var pager_selector = "#grid-pager";
+jQuery(function($) {
+	//初始化日期控件
+	initDateTime();
+	// 初始化Grid
+	initGrid();
+	// 初始化下拉列表
+	initDdl();
+});
+
+/**
+ * 初始化Grid
+ */
+function initGrid() {
+	//resize to fit page size
+	$(window).on('resize.jqGrid', function() {
+		$(grid_selector).jqGrid('setGridWidth', $(".page-content").width()-1);
+	});
+	//resize on sidebar collapse/expand
+	var parent_column = $(grid_selector).closest('[class*="col-"]');
+	$(document).on(
+			'settings.ace.jqGrid',
+			function(ev, event_name, collapsed) {
+				if (event_name === 'sidebar_collapsed'
+						|| event_name === 'main_container_fixed') {
+					//setTimeout is for webkit only to give time for DOM changes and then redraw!!!
+					setTimeout(function() {
+						$(grid_selector).jqGrid('setGridWidth',
+								parent_column.width());
+					}, 0);
+				}
+			});
+
+	// 数据表格初始化
+	jQuery(grid_selector).jqGrid({
+		url : basePath + '/column/initColumn',
+		mtype : "POST", //提交方式
+		datatype : "json",
+		autowidth: false,
+		height :"auto",
+	    shrinkToFit: true,
+		sortname : "", //默认的排序列
+		sortorder : "", //默认的排序列
+		colNames : [ '','id','列名称', '所属任务','映射代码','是否可用'],
+		colModel : [ {
+            name:'Edit',
+            index:'Edit',
+            width:30,
+			sortable : false,
+            fixed : true
+        },{
+			name : 'id',
+			index : 'id',
+			key : true,
+			hidden:true,
+			editable : false,
+			sortable : false
+		},{
+			name : 'columnName',
+			index : 'columnName',
+			editable : false,
+			sortable : true
+		},{
+			name : 'taskName',
+			index : 'taskName',
+			editable : false,
+			sortable : true
+		},  {
+			name : 'mapCode',
+			index : 'mapCode', 
+			editable : false,
+			sortable : true
+		},  {
+			name : 'valid',
+			index : 'valid',
+			editable : false,
+			sortable : true
+			,formatter:function(cellvalue, options, rowObject){
+				if(cellvalue == "Y"){
+					return '是';
+				} else if(cellvalue == "N"){
+					return '否';
+				} else{
+					return '';
+				}
+			}
+		} ],
+		rowNum : _rowNum, //每页显示记录数
+		rowList : _rowList, //用于改变显示行数的下拉列表框的元素数组。
+		pager : pager_selector, //定义翻页用的导航栏
+		page : 1, //设置初始的页码,初始为1
+		pagerpos : 'right', //指定分页栏的位置
+		altRows : true, //设置为交替行表格,默认为false
+		multiselect : true, //可以多选
+		multiboxonly : true, //只有选择checkbox才会起作用 
+		loadComplete : function() {
+			var table = this;
+			setTimeout(function() {
+				updatePagerIcons(table);
+				enableTooltips(table);
+			}, 0);
+		},
+		prmNames : {
+             oper : "oper",
+             page : "page",
+             rows : "rows",
+             sort : "sidx",
+             order : "sord"
+        },
+		postData :{
+			wldwCode : function(){ return ""; },//问题内容
+			wldwName : function(){ return ""; }//服务类型
+		},
+		jsonReader : {
+			root : "list", // json中代表实际模型数据的入口
+			page : "page", // json中代表当前页码的数据
+			total : "pages", // json中代表页码总数的数据
+			records : "total", // json中代表数据行总数的数据
+			repeatitems : false// 如果设为false,则jqGrid在解析json时,会根据name来搜索对应的数据元素
+		},
+        gridComplete: function () {
+            comGridComplete("grid-table", "editRecord");
+        },
+		onPaging: function(){
+			comGridPage("grid-table");
+		}
+	});
+
+	$(window).triggerHandler('resize.jqGrid');//trigger window resize to make the grid get the correct size
+	// 隐藏水平垂直滚动条
+	jQuery(grid_selector).closest(".ui-jqgrid-bdiv").css({ 'overflow-x' : 'hidden' ,'overflow-y':'hidden'});
+	//navButtons
+	jQuery(grid_selector).jqGrid(
+			'navGrid',
+			pager_selector,
+			{ //navbar options
+				edit : false,
+				editicon : 'ace-icon fa fa-pencil blue',
+				add : false,
+				addicon : 'ace-icon fa fa-plus-circle purple',
+				del : false,
+				delicon : 'ace-icon fa fa-trash-o red',
+				search : false,
+				searchicon : 'ace-icon fa fa-search orange',
+				refresh : false,
+				refreshicon : 'ace-icon fa fa-refresh green',
+				view : false,
+				viewicon : 'ace-icon fa fa-search-plus grey',
+			});
+	//初始化操作按钮
+	intOperButton();
+	$(document).one('ajaxloadstart.page', function(e) {
+		$(grid_selector).jqGrid('GridUnload');
+		$('.ui-jqdialog').remove();
+	});
+	
+	setMulti();
+
+};
+
+
+/**
+ * 初始化下拉列表
+ */
+function initDdl() {
+	// 初始化所在任务
+	$.ajax({
+		type : "POST",
+		url : basePath + '/task/getTaskForDdl',//请求的路径
+		dataType : "json",
+		success : function(data) {
+			var option1="<option selected value=''>----请选择----</option>";
+			$("#taskId").append(option1);
+			if(data) {
+			    var length=data.length;
+			    if(length > 0) {
+				    for(var i=0;i<length;i++){
+				    	$("<option/>").html(data[i].name).val(data[i].id).appendTo("#taskId");
+				    }
+			    }
+			}
+		}
+	});
+}
+
+/**
+ * 初始化操作按钮
+ */
+function intOperButton() {
+	jQuery(grid_selector).navButtonAdd(pager_selector, {
+		caption : "新增",
+		buttonicon : "ui-icon ui-icon  btn-minier ace-icon fa fa-plus-circle",
+		onClickButton : function() {
+			comClearFormData("form");
+			// 隐藏校验图标
+			hideValidateTip();
+			$("#id").val("");
+			$("#btnSave").show();
+			// 启用元素
+			comEnableElements("modal-table");
+			$("#valid").val("Y");
+			console.info($("#valid").selectedIndex);
+			$("#modal-table #myModalLabel").text("新增数据列");
+			$('#modal-table').modal('show');
+		},
+		position : "last"
+	});
+	jQuery(grid_selector).navButtonAdd(pager_selector, {
+		caption : "删除",
+		buttonicon : "ui-icon ui-icon ace-icon fa fa-trash-o red",
+		onClickButton : function() {
+			var idsStr = getMultiData();
+			if(idsStr.length >=1 ){
+				showMsgConfimDialog("确定删除吗?",function(){
+					$.ajax({
+						async : false,
+						type : 'POST',
+						dataType : "json",
+						data : {"ids":idsStr, opt:'QY'},
+						url : basePath + '/column/delColumn',//请求的路径				
+						success : function(data) {
+							// 成功后刷新页面
+							if (data == "SUCCESS") {
+								showMsgDialog("数据已删除!");
+							}
+							jQuery(grid_selector).trigger("reloadGrid");
+						},
+						error: function (XMLHttpRequest, textStatus, errorThrown) {
+				            showMsgDialog("error:" + errorThrown);
+				        }
+					});
+				});
+			} else {
+				showMsgDialog("请至少选择一条记录");
+			}
+		},
+		position : "last"
+	});
+}
+
+/**
+ * 初始化日期控件
+ */
+function initDateTime() {
+	$('#startTime').datetimepicker({
+		format : 'yyyy-mm-dd hh:ii:ss',
+		minView: 1
+	}).next().on(ace.click_event, function(){
+		$(this).prev().focus();
+	});
+	
+	$('#endTime').datetimepicker({
+		format : 'yyyy-mm-dd hh:ii:ss',
+		minView: 1
+	}).next().on(ace.click_event, function(){
+		$(this).prev().focus();
+	});
+};
+
+/**
+ * 编辑
+ * @param rid
+ */
+function editRecord(rid) {
+	var data = jQuery("#grid-table").jqGrid('getRowData', rid);
+	$("#btnSave").show();
+	// 隐藏校验图标
+	hideValidateTip();
+	// 启用元素
+	comEnableElements("modal-table");
+	$("#modal-table #myModalLabel").text("编辑数据列");
+	initBaseInfo(rid);
+}
+
+/**
+ *	获取多行选中的id 
+ */
+function getMultiData(opt){
+	var ids = "";
+	//获取选择行的id
+	var row = jQuery(grid_selector).jqGrid('getGridParam','selarrrow');
+	if (row.length >= 1) {
+		for (var i = 0; i < row.length; i++) {
+			//获取选择的行的数据,只要传入rowId即可
+			var data = jQuery(grid_selector).jqGrid('getRowData', row[i]);
+			ids += data.id +",";
+		}
+		ids = ids.substr(0, ids.length - 1);
+	}
+	return ids;
+}
+
+/**
+ * 查询事件
+ */
+function searchRecord() {
+	
+	 //$.extend(jQuery(grid_selector)[0].p.postData);
+	 jQuery("#grid-table").trigger("reloadGrid", [{ page: 1 }]);
+};
+
+
+/**
+ * form提交事件
+ */
+function submitForm() {
+	$.ajax({
+		async:false,
+		type : "post",
+		url : basePath + '/column/save',
+		dataType:'json',
+		data : $('#form').serialize()
+		, //表单序列化,获取数据
+		success : function(data) {
+			// 成功删除后刷新页面
+			if (data) {
+				showMsgDialog("数据已成功保存!");
+				closeWin();
+				searchRecord();
+			} else {
+				showMsgDialog("数据保存失败!");
+			}
+		}, //操作成功后的操作!data是后台传过来的值 
+		error: function (XMLHttpRequest, textStatus, errorThrown) {
+            showMsgDialog("error:" + errorThrown);
+        }
+	});
+};
+
+// 关闭弹出窗口,刷新列表
+function closeWin(){
+	$('.layui-layer').hide();
+	$('#modal-table').modal('hide');
+}
+
+/**
+ * 根据id查询所有信息并赋值
+ */
+function initBaseInfo(rowid, flg){
+	// 后台获取
+	$.ajax({
+		async : true,
+		type : 'POST',
+		dataType : "json",
+		data : {id:rowid},
+		url : basePath + '/column/initEditColumn', //请求的路径				
+		success : function(data) {
+			// 填充信息
+			$('#id').val(data.id);
+			$('#columnName').val(data.columnName);
+			$('#taskId').val(data.taskId);
+			$('#mapCode').val(data.mapCode);
+			$('#valid').val(data.valid);
+			if(flg && flg=="VIEW") {
+				comDisableElements("modal-table");
+			}
+		},
+		error: function (XMLHttpRequest, textStatus, errorThrown) {
+            showMsgDialog("error:" + errorThrown);
+        }
+	});		
+	$('#modal-table').modal('show');					
+};
+
+/**
+ * 隐藏校验图标
+ */
+function hideValidateTip() {
+}