bootstrap以列表展示数据并实现CRUD

先上效果图

 jsp页面代码:

<html>
  <head>
    <base href="<%=basePath%>">
    
    
    <link href="<%=request.getContextPath() %>/js/bootstrap/bootstrap.min.css" rel="stylesheet" type="text/css">
    <link href="<%=request.getContextPath() %>/btjs/css/bootstrap-table.min.css" rel="stylesheet" type="text/css">
    <link href="<%=request.getContextPath() %>/btjs/css/bootstrap-responsive.css" rel="stylesheet" type="text/css">
    <link href="<%=request.getContextPath() %>/btjs/css/bootstrap-select.css" rel="stylesheet" type="text/css">

  </head>
  
  <body>
   		
   		    <div style="width:800px;margin: 2% 0 0 30%">
   		<font size="5em;">单机订单--价格评审签批人维度维护</font>&nbsp;&nbsp;&nbsp;&nbsp;
   		<a href="javascript:window.opener=null;window.open('','_self');window.close();"><<返回</a>
		 	<div id="toolbar" class="btn-group" style="float:right;">
		        <button id="btn_add" type="button" class="btn btn-default" onclick="addApprove()">
		            <span class="glyphicon glyphicon-plus" aria-hidden="true"></span>新增
		        </button>
		        <button id="btn_edit" type="button" class="btn btn-default" onclick="editApprove()">
		            <span class="glyphicon glyphicon-pencil" aria-hidden="true"></span>修改
		        </button>
		        <button id="btn_delete" type="button" class="btn btn-default" onclick="deleteApprove()">
		            <span class="glyphicon glyphicon-minus" aria-hidden="true"></span>删除
		        </button>
	    	</div>
		 	<table id="approver"></table>
   		</div> 
   		 
   		 <div class="modal fade" id="editModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
		    <div class="modal-dialog">
		        <div class="modal-content">
		            <div class="modal-header">
		                <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
		                <h4 class="modal-title" id="myModalLabel">修改审核人</h4>
		            </div>
		            <form class="form-horizontal" role="form">
			            <div class="modal-body">
						   <div class="form-group" id="corpDiv">
							    <label class="col-sm-2 control-label">公司</label>
							    <div class="col-sm-10">
							      <select class="form-control" id="selectList" onchange="selectChange()"></select>
							    </div>
						  </div>
						  <div class="form-group" id="editCorpDiv">
							    <label class="col-sm-2 control-label">公司</label>
							    <div class="col-sm-10">
							      <input class="form-control" id="editCorpDivName" type="text" value="" disabled/>
							    </div>
						  </div>
						   <div class="form-group">
							    <label class="col-sm-2 control-label">维度</label>
							    <div class="col-sm-10">
							      <input class="form-control" id="weidu" type="text" value="" onblur="onblurEvent()" oninput="value=value.replace(/[^\d]/g,'')"/>
							    </div>
						  </div>
						   <div class="form-group">
							    <label class="col-sm-2 control-label">维度名称</label>
							    <div class="col-sm-10">
							      <input class="form-control" id="weiduName" type="text" value=""/>
							    </div>
						  </div>
						   <div class="form-group">
							    <label class="col-sm-2 control-label">审核人</label>
							    <div class="col-sm-10">
							      <input class="form-control" id="approveName" type="text" value="" list="ide" onKeyUp="keyUpEvent(event)">
							      <datalist id="ide"></datalist>
							    </div>
						  </div>
						  <input id="editId" name="editId" style="display:none"/>
						  <input id="editUserId" name="editUserId" style="display:none"/>
						  <input id="flag" style="display:none">
						  <input id="editCorpId" type="text" style="display:none;">
			            </div>
			            <div class="modal-footer">
			                <button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
			                <button type="button" class="btn btn-primary" onclick="submitEdit()">保存</button>
			            </div>
		            </form>
		        </div><!-- /.modal-content -->
		    </div><!-- /.modal -->
		</div>
		
		<div class="modal fade" id="delModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel1" aria-hidden="true">
		    <div class="modal-dialog">
		        <div class="modal-content">
		            <div class="modal-header">
		                <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
		                <h4 class="modal-title" id="myModalLabel">删除审核人</h4>
		            </div>
			            <div class="modal-body">
						   	确认要删除此审核人吗?
			            </div>
			            <div class="modal-footer">
			                <button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
			                <button type="button" class="btn btn-primary" onclick="submitDel()">删除</button>
			            </div>
		        </div><!-- /.modal-content -->
		    </div><!-- /.modal -->
		</div>
		
    <script src="<%=request.getContextPath() %>/js/jquery-3.4.0.js"></script>
   	<script src="<%=request.getContextPath() %>/btjs/js/bootstrap-table.min.js"></script>	 
   	<script src="<%=request.getContextPath() %>/js/bootstrap/bootstrap.min.js"></script>
   	<script src="<%=request.getContextPath() %>/js/includes-extjs/order/finance/orderPriceApprover.js"></script>	  

   	
  </body>
</html>

js代码

$('#approver').bootstrapTable({
    url: 'order!getOrderPriceApproverLists.action',         //请求后台的URL(*)
    method: 'get',                      //请求方式(*)
    toolbar: '#toolbar',   
    singleSelect : true,
    cache: false,                       //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
    clickToSelect: true,                //是否启用点击选中行
    columns: [
    {
        checkbox: true  
    },{
        field: 'id',
        title: 'ID'
    },
    {
        field: 'index',
        title: '维度'
    },
    {
        field: 'indexName',
        title: '维度名称'
    }, 
    {
        field: 'userName',
        title: '姓名'
    },
    {
        field: 'userId',
        title: 'userId'
    },
    {
        field: 'corpName',
        title: '公司'
    },
    {
        field: 'corpId',
        title: 'corpId'
    }
    ]
});

//隐藏两列
$('#approver').bootstrapTable('hideColumn', 'id');
$('#approver').bootstrapTable('hideColumn', 'userId');
$('#approver').bootstrapTable('hideColumn', 'corpId');

//修改审核人
function editApprove(){
	 var row = $('#approver').bootstrapTable('getSelections')[0]; 
	 if(row==undefined){
		 alert("请先选择要编辑的行!")
		 return false;
	 }else{
		 $('#weidu').val(row.index);
		 $('#weiduName').val(row.indexName);
		 $('#approveName').val(row.userName);
		 $('#editId').val(row.id);
		 $('#editUserId').val(row.userId);
		 $('#flag').val("edit");
		 $('#editCorpId').val(row.corpId);
		 $('#corpDiv').hide();
		 $('#editCorpDiv').show();
		 $('#editCorpDivName').val(row.corpName)
		 $('#myModalLabel').html("修改审核人");
		 $('#editModal').modal('show');
	 }
	
}

//新增审核人
function addApprove(){
	$('#weidu').val("");
	$('#weiduName').val("");
	$('#approveName').val("");
	$('#editId').val("");
	$('#editUserId').val("");
	$('#flag').val("save");
	$('#myModalLabel').html("新增审核人");
	$('#corpDiv').show();
	$('#editCorpDiv').hide();
	//获取所有有效的公司
	$.ajax({
		 url:"order!getCorpList.action",
		 type:"post",
		 dataType:'json', 
		 success:function(result){
			 var data = result;
			 $.each(data,function(key,value){ 
		          $('#selectList').append('<option value="'+value.corpId+'">'+value.corp+'</option>');
		     }) ;
		 }
	 });
	$('#editCorpId').val("1");
	$('#editModal').modal('show');
}


//键盘弹起时查询输入的人名
function keyUpEvent(){
	var flag = $('#flag').val();
	var username =  $('#approveName').val();
	var corpId = $('#editCorpId').val();
	if(username.length>1){//有两个字符时再查询
		$('#ide').empty();      
		 $.ajax({
			 url:"order!getUsersByName.action",
			 type:"post",
			 dataType:'json', 
			 data: {"username":encodeURIComponent(username),"corpId":corpId},
			 success:function(result){
				 if(result==null||result==""){
					 alert("没有您要找的人!");
				 }
				 var data = result;
				 $.each(data,function(key,value){ 
			          $('#ide').append('<option value="'+value.user+'"></option>');
			     }) ;
				 $('#approveName').val("");
				 $('#approveName').focus();      
			 }
		 });
		 
	}
}

/**
 * 查看维度是否有重复
 */
function onblurEvent(){
	var weidu =  $('#weidu').val();
	var flag = $('#flag').val();
	var corpId = $('#editCorpId').val();
	var row = $('#approver').bootstrapTable('getSelections')[0];
	var checkIndex="-99";
	if(row!=undefined){
		checkIndex = row.index;
	}
	if(weidu==""){
		return;
	}
	if(weidu==checkIndex&&flag=="edit"){
		return;
	}
	$.ajax({
		 url:"order!getPriceWeiDu.action",
		 type:"post",
		 data: {"weidu":weidu,"corpId":corpId},
		 success:function(result){
			 if(result=="exist"){
				 alert("此维度已存在!");
				 $('#weidu').val("");
			 }   
		 }
	 });
}

/**
 * 提交修改维度
 */
function submitEdit(){
	var weidu =  $('#weidu').val();
	if(weidu==""){
		alert("维度不能为空!");
		return;
	}
	var weiduName = $('#weiduName').val();
	if(weiduName==""){
		alert("维度名称不能为空!");
		return;
	}
	var username =  $('#approveName').val();
	if(username==""||username.length<2){
		alert("请输入正确的审核人!");
		return;
	}
	var flag = $('#flag').val();
	var id="";
	if(flag=="edit"){
		var row = $('#approver').bootstrapTable('getSelections')[0];
		id=row.id;
	}
	var corpId = $('#editCorpId').val();
	$.ajax({
		 url:"order!saveOrUpdatePriceApprove.action",
		 type:"post",
		 data: {"id":id,"weidu":weidu,"weiduName":encodeURIComponent(weiduName),"username":encodeURIComponent(username),"corpId":corpId},
		 success:function(result){
			 $('#editModal').modal('hide');
			 window.location.reload();
		 }
	 });
}

//删除维度
function deleteApprove(){
	 var row = $('#approver').bootstrapTable('getSelections')[0]; 
	 if(row==undefined){
		 alert("请先选择要编辑的行!")
		 return false;
	 }else{
		 $('#delModal').modal('show');
	 }
}

//删除
function submitDel(){
	var row = $('#approver').bootstrapTable('getSelections')[0]; 
	$.ajax({
		 url:"order!deletePriceApprove.action",
		 type:"post",
		 data: {"id":row.id},
		 success:function(result){
			 $('#delModal').modal('hide');
			 window.location.reload();
		 }
	 });
}


function selectChange(){
	 var opt=$("#selectList").val();
	 $('#editCorpId').val(opt);
	 $('#approveName').val("");
	 $('#weidu').val("");
	 $('#weiduName').val("");
	 $('#ide').empty(); 
}

 action方法

  //价格评审审批人列表
	private List<OrderPriceApprover> orderPriceApproverList = new ArrayList<OrderPriceApprover>(); 
  /**
	 * 价格评审,审批人维度列表	
	 * @time   2019年6月25日
	 */
	public void getOrderPriceApproverLists(){
		HttpServletResponse res = ServletActionContext.getResponse();
		HttpServletRequest req = ServletActionContext.getRequest();
		String corpId = req.getParameter("corpId");
		JSONArray jsonArray = new JSONArray();
		if(corpId==null){
			orderPriceApproverList = orderBO.getOrderBasicDAO().searchByHQL("from OrderPriceApprover where validity=1 order by corpId,index");
		}else{
			int corp = Integer.parseInt(corpId);
			orderPriceApproverList = orderBO.getOrderBasicDAO().searchByHQL("from OrderPriceApprover where validity=1 and corpId="+corp+" order by corpId,index");
		}
		for(OrderPriceApprover approver:orderPriceApproverList){
			List<String> userNames = orderBO.getOrderBasicDAO().searchByHQL("select userName from UserT where userId="+approver.getUserId());
			List<String> corpNames = orderBO.getOrderBasicDAO().searchByHQL("select shortName from Corporation where id="+approver.getCorpId());
			String userName = userNames.get(0);
			String corpName = corpNames.get(0);
			Map<Object, Object> map = new HashMap<Object, Object>();
			map.put("id", approver.getId());
			map.put("index", approver.getIndex());
			map.put("indexName", approver.getIndexName());
			map.put("userId",approver.getUserId());
			map.put("userName", userName);
			map.put("corpId", approver.getCorpId());
			map.put("corpName", corpName);
			jsonArray.add(map);
		}
		
		try {
			PrintWriter pw = res.getWriter();
			pw.write(jsonArray.toString());
			pw.flush();
			pw.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
/**
	 * 新增或修改维度价格评审人维度
	 * 没id就是新增
	 * 有id就是更新	
	 * @time   2019年6月25日
	 */
	public void saveOrUpdatePriceApprove(){
		HttpServletRequest req = ServletActionContext.getRequest();
		String id = req.getParameter("id");
		String wd = req.getParameter("weidu");
		String wdName = req.getParameter("weiduName");
		String username = req.getParameter("username");
		String corpId = req.getParameter("corpId");
		try {
			req.setCharacterEncoding("UTF-8");
			username = URLDecoder.decode(username, "UTF-8");
			wdName = URLDecoder.decode(wdName, "UTF-8");
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		}
		String hql = "select userId from UserT where userName ='"+username+"' and userValidity=1";
		List<Integer> users = orderBO.getOrderBasicDAO().searchByHQL(hql);
		if(id.equals("")){//没id就是新增
			OrderPriceApprover app = new OrderPriceApprover();
			app.setIndex(Integer.parseInt(wd));
			app.setIndexName(wdName);
			app.setUserId(users.get(0));
			app.setValidity(1);
			app.setCorpId(Integer.parseInt(corpId));
			orderBO.getOrderBasicDAO().saveObject(app);
		}else{//有id就是更新
			String hql1 = "update OrderPriceApprover c set c.index="+Integer.parseInt(wd)+",c.userId="+users.get(0)+",c.indexName='"+wdName+"' where c.id="+Integer.parseInt(id);
			orderBO.getOrderBasicDAO().updateByHql(hql1);
		}
	}
/**
	 * 验证新增价格评审维度时,该公司是否存在此维度	
	 * @time   2019年6月25日
	 */
	public void getPriceWeiDu(){
		HttpServletResponse res = ServletActionContext.getResponse();
		HttpServletRequest req = ServletActionContext.getRequest();
		
		String weidu = req.getParameter("weidu");
		String corpId = req.getParameter("corpId");
		String msg="ok";
		
		String hql = "select id from OrderPriceApprover where index ="+weidu+" and corpId="+corpId+" and validity=1";
		List<Integer> ids = orderBO.getOrderBasicDAO().searchByHQL(hql);
		
		if(ids.size()>0){
			msg="exist";
		}
		try {
			PrintWriter pw = res.getWriter();
			pw.write(msg);
			pw.flush();
			pw.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	
	}


/**
	 * 删除价格评审维度	
	 * @time   2019年6月25日
	 */
	public void deletePriceApprove(){
		HttpServletRequest req = ServletActionContext.getRequest();
		String id = req.getParameter("id");
		String hql1 = "update OrderPriceApprover c set c.validity=0 where c.id="+Integer.parseInt(id);
		orderBO.getOrderBasicDAO().updateByHql(hql1);
	}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值