1. 程式人生 > >ipms綜合管理系統的總結

ipms綜合管理系統的總結

title 詳細信息 滾動 當前 sel nal detail lose resp

技術分享圖片

添加的項目選項,用到了layui裏面的彈出層,主要的思路是:

在layer.open(彈出層)裏面有個屬性:content裏面寫一個請求,這個請求把所有用到的參數都發送到一個新的頁面addPro,其中項目類型,技術方向,導師這些下拉框裏面的內容是通過數據庫取到的數據,而且是設置了權限,如果是學生的身份登錄的話,可以添加項目,但是項目評價那一項是不能進行評價的,只有當老師身份登錄時,才可以進行一個項目評價.

projectmsg2.js

//點擊添加項目,出現的彈出層
	$("#lc-sp-btn2").click(function() {
		layer.open({
			type: 2,
			title: ‘添加項目‘,
			shade: 0.5, // 遮罩層
			maxmin: true, //開啟最大化最小化按鈕
			area: [‘600px‘, ‘90%‘], // 寬高
			content: ‘/IPMS/projectmsg/selectDictory.do‘
			,offset: ‘auto‘
		    ,btnAlign: ‘c‘
	        ,cancel: function(index, layero){ 
	    		  window.location.reload(); //重載刷新頁面
	    	}  		 
			
		});
	});

projectcontroller

@RequestMapping("/selectDictory")
	public String selectDictory(Model md) {
		
		List<Projet> list = dataDictoryService.selectDataName();
		List<Projet> list2 = dataDictoryService.selectTecal();
		List<Userinfo> list3 = userInfoService.selectUserinfo(); //查詢導師姓名 
		
		
		md.addAttribute("tecalist", list2); 
		md.addAttribute("userlist", list3);
		md.addAttribute("datalist", list);
		
		return BASEPATH + "addPro";
	}

addPro.jsp

<body>
		
		 <!-- 要添加的項目 -->
							<c:if test="${user.op == 20 || user.op == 40 }"> 
							<!-- 給個用戶驗證的判斷 -->
							<div id="ti">你要添加的項目</div>
							<form class="layui-form tab"
								action="${ctx }/projectmsg/insertProject.do" method="post">
								<div class="layui-form-item">
									<label class="layui-form-label">輸入項目名</label>
									<div class="layui-input-block">
										<input type="text" id="proname" name="title" required
											lay-verify="required" placeholder="請輸入項目名" autocomplete="off"
											class="layui-input ming">
									</div>
								</div>


								<div class="layui-form-item">
									<label class="layui-form-label">項目類型</label>
									<div class="layui-input-block ming">
										<select name="lei" id="leibie" lay-verify="">
											<option value="">請選擇項目類型:</option>
											<c:forEach var="list" items="${datalist }">
												<option value="${list.ids }">${list.dataname }</option>
											</c:forEach>
										</select>
									</div>
								</div>

								<div class="layui-form-item">
									<label class="layui-form-label">技術方向</label>
									<div class="layui-input-block ming">
										<select name="lei2" id="tecal" lay-verify="">
											<option value="">請選擇技術類型:</option>
											<c:forEach var="list2" items="${tecalist }">
												<option value="${list2.ids }">${list2.dataname }</option>
											</c:forEach>

										</select>
									</div>
								</div>


								<div class="layui-form-item layui-form-text">
									<label class="layui-form-label">項目簡介</label>
									<div class="layui-input-block">
										<textarea name="desc" id="jie" placeholder="請輸入簡介內容"
											class="layui-textarea ming2"></textarea>
									</div>
								</div>



								<div class="layui-form-item">
									<label class="layui-form-label">導師</label>
									<div class="layui-input-block ming">
										<select name="lei3" id="teach" lay-verify="">
											<option value="">請選擇導師:</option>
											<c:forEach var="ulist" items="${userlist }">
												<option value="${ulist.ids }">${ulist.realname }</option>
											</c:forEach>

										</select>
									</div>
								</div>


								<div class="layui-form-item">
									<label class="layui-form-label">完成進度</label>
									<div class="layui-input-block ming">
										<select name="lei4" id="jindu" lay-verify="">
											<option value="">請選擇進度:</option>
											<option value="0">10%</option>
											<option value="1">30%</option>
											<option value="2">50%</option>
											<option value="3">90%</option>
											<option value="4">100%</option>
										</select>
									</div>
								</div>
							<c:if test="${user.op == 20 }">
								<div class="layui-form-item layui-form-text">
									<label class="layui-form-label">項目評價</label>
									<div class="layui-input-block">
										<textarea name="desc2" id="ping" placeholder="請輸入評價內容"
											class="layui-textarea ming2"></textarea>
									</div>
								</div>
							</c:if>
							
								<div class="layui-form-item">
									<div class="layui-input-block">
										<button class="layui-btn" id="charu" lay-submit
											lay-filter="formDemo">立即提交</button>
										<button type="reset" class="layui-btn layui-btn-primary">重置</button>
									</div>
								</div>
							</form>
							 </c:if>
</body>

需要說明的是其中給權限用的方法:

op == 20 的是老師登錄,op == 40 的是學生登錄,不同的用戶登陸,顯示的內容不同,能做的事情也不同

技術分享圖片

點擊查看,提示你現在正在查看的是哪一條內容,點編輯,彈出一個彈出層,顯示的是如何進行各個字段的編輯操作,刪除,會彈出一個對話框,詢問你是否確認刪除,審批,是這樣的,如果此項目已經審批通過了,就不可以進行重復審批了.如果你還是學生登錄的話,那就更不可以進行審批了

projectmsg2.js

$(function() {
	var table = layui.table;
	/*
	 * 左競一
	 */
	
// 搜索項目,以及修改刪除項目
	
	var laytable = function(demoReload){	 

		// 第一個實例
		  table.render({
		    elem: ‘#LAY_table_user‘
		    ,height: 315
		    ,url: ‘/IPMS/projectmsg/search.do‘ // 數據接口
		    ,page: true // 開啟分頁
		    ,where: {
		    	pname: demoReload
            }
		    
		    ,cols: [[ // 表頭
		    	{checkbox: true, fixed: true}
		      , {field: ‘IDS‘, title: ‘ID‘, width:65, sort: true, fixed: ‘left‘}
		      ,{field: ‘PNAME‘, title: ‘項目名‘, width:100}
		      ,{field: ‘PTYPE‘, title: ‘項目類型‘, width:100, sort: true}
		      ,{field: ‘DIRECTION‘, title: ‘技術方向‘, width:80} 
		      ,{field: ‘INTRO‘, title: ‘簡介‘, width: 180}
		      ,{field: ‘UIDS‘, title: ‘導師‘, width: 80, sort: true}
		      ,{field: ‘RATE‘, title: ‘進度‘, width: 50, sort: true}
		      ,{field: ‘APPRAISE‘, title: ‘評價‘, width: 180}
		      ,{field: ‘MARK‘, title: ‘審批結果‘, width: 120}
		      ,{ width: 300, align:‘center‘, toolbar: ‘#barDemo‘,title:‘操作‘,fixed:‘right‘}
		    ]]
		   ,id: ‘testReload‘
		   ,method: ‘post‘
		 
		       
		  });// table.render
	}
		
	// 開始 執行
	laytable(null);
		  // 綁定點擊事件
		  $(‘.layui-btn‘).on(‘click‘, function(){
			  var demoReload = $(‘#demoReload‘).val();
			  laytable(demoReload);
			  });
		  
		  // 監聽表格復選框選擇
		  table.on(‘checkbox(useruv)‘, function(obj){
	            console.log(obj);
	        });
		  
		// 監聽工具條
		  table.on(‘tool(useruv)‘, function(obj){ // 註:tool是工具條事件名,test是table原始容器的屬性
													// lay-filter="對應的值"
		    var data = obj.data // 獲得當前行數據
		    ,layEvent = obj.event; // 獲得 lay-event 對應的值
		    if(layEvent === ‘detail‘){
		    	layer.msg(‘你正在對[‘+ data.PNAME + ‘] 項目的查看操作‘);
		    } else if(layEvent === ‘del‘){
		      layer.confirm(‘真的刪除這一行麽‘, function(index){

		    	  // 向服務端發送刪除指令
		        $.ajax({
					dataType : "json",
					type : "post",
					url : "/IPMS/projectmsg/delet.do",
					data : {
						ids:data.IDS
					},
					success : function(data) {
						if (data.state==1) {
							// 刪除這一行
	                        obj.del();
	                       // 關閉彈框
	                        layer.close(index);
	                        layer.msg("刪除成功", {icon: 6});
						} else {
							layer.msg("你沒有足夠的權限,刪除失敗", {icon: 5});
						}
					},
					error : function() {
						layer.open({
							title : ‘warn‘,
							content : ‘對不起,你沒有足夠的權限! ‘
						});
					}
					
				});// ajax
		        
		      });  // layer.confirm
		    } else if(layEvent === ‘edit‘){
		    	
		    	console.log(data.IDS);
		    	
		    	layui.element.render();//刷新所有的元素;
	    		  layui.layer.open({
	    		        type: 2 //0(信息框,默認)1(頁面層)2(iframe層)3(加載層)4(tips層)
	    		        ,title: ‘編輯信息‘
	    		        ,area: [‘600px‘, ‘450px‘]
	    		        ,maxmin: true  //最大最小化按鈕
	    		        ,offset: ‘auto‘   //位置居中
	    		        ,content: ‘/IPMS/projectmsg/qian.do?ids=‘+data.IDS //不出現滾動條   ,‘no‘
	    		        ,btnAlign: ‘c‘
	    		        ,cancel: function(index, layero){ 
	    		        	window.location.reload(); //重載刷新頁面
	    		        		}  
	    		      }); //彈出層
	    		 
		    	
		    } else if(layEvent === ‘pass‘){  //審批
		    	 layer.confirm(‘確定審批麽‘, function(index){
		    	$.ajax({
	    			dataType : "json",
	    			type : "post",
	    			url : "/IPMS/projectmsg/pass.do",
	    			data : {
	    				ids:data.IDS
	    			},
	    			success : function(data) {
	    				console.log(data.result);
	    				if (data.result == 1) {
	    					//關閉彈框
	    	                layer.close(index);
	    	              
	                        layer.msg("審批成功", {icon: 6});
	    				} else {
	    					layer.msg("你沒有足夠的權限,審批失敗", {icon: 5});
	    				}
	    			},
	    			error : function() {
	    				layer.open({
	    					title : ‘warn‘,
	    					content : ‘後臺異常,請聯系管理員! ‘
	    				});
	    			}
	    		});// ajax
		    
		    	 });  // layer.confirm
		    } // else if
	    
		  }); // table.on

	// 4大 按鈕事件
	// 點擊打開 layui標簽   傳入顯示誰
	
	//點擊修改項目,彈出來的數據表格
	$("#lc-sp-btn").click(function() {
		dkbq("#lc-sp-tab")
	});
	
	//點擊添加項目,出現的彈出層
	$("#lc-sp-btn2").click(function() {
		layer.open({
			type: 2,
			title: ‘添加項目‘,
			shade: 0.5, // 遮罩層
			maxmin: true, //開啟最大化最小化按鈕
			area: [‘600px‘, ‘90%‘], // 寬高
			content: ‘/IPMS/projectmsg/selectDictory.do‘
			,offset: ‘auto‘
		    ,btnAlign: ‘c‘
	        ,cancel: function(index, layero){ 
	    		  window.location.reload(); //重載刷新頁面
	    	}  		 
			
		});
	});


});

彈出的編輯操作:

技術分享圖片

projectControllor

/**
	 * 用來從數據字典裏面查詢出來的是類型名稱dataname,從userinfo表裏面查出來的是導師的姓名
	 * @param mv
	 * 左競一
	 */
	@RequestMapping("/selectDictory")
	public String selectDictory(Model md) {
		
		List<Projet> list = dataDictoryService.selectDataName();
		List<Projet> list2 = dataDictoryService.selectTecal();
		List<Userinfo> list3 = userInfoService.selectUserinfo(); //查詢導師姓名 
		
		
		md.addAttribute("tecalist", list2); 
		md.addAttribute("userlist", list3);
		md.addAttribute("datalist", list);
		
		return BASEPATH + "addPro";
	}
	
	/**
	 * index頁面查詢數據所需方法
	 * 魏萍萍
	 * @return Projet
	 */
	@ResponseBody
	@RequestMapping("/selectProject")
	public String selectProject() {
		
		JSONObject jo = new JSONObject();
		List<Projet> pro = projetService.selectAll();
		jo.put("Projet", pro);
		return jo.toJSONString();
	}
	
	/**
	 * 
	 * 從index頁面往index副頁傳詳細信息
	 * @param model
	 * @param ids
	 * @return Projet實體
	 * @author 魏萍萍
	 * 
	 */

	@RequestMapping("/selectPj")
	public String selectPj(Model model,Integer ids) {
		Projet da = projetService.selectByPrimaryKey(ids);
		model.addAttribute("Projet", da);
		return "index_2";
	}
	

	/**
	 * 左
	 * 用來查找項目
	 * @param keyword
	 * @return
	 */
	@ResponseBody
	@RequestMapping("/search")
	public String searchPro(HttpSession hs,String pname ) {
		Usertable u = (Usertable)hs.getAttribute("user");
		Integer uids = u.getIds();
		Integer particulars = u.getParticulars();
		Integer op = u.getOp();
		JSONObject jo = new JSONObject();
		Map<String,Object> map = Myutil.mp(uids,pname,particulars,op);
		List<Map<String,Object>> list4 = projetService.searchPro(map);
		
		if(list4 != null) {
			jo.put("count", 1000);
		   	jo.put("code",0);
	        jo.put("message","null");
	        jo.put("data", list4);
		}
		return jo.toJSONString();
	}
	
	/**
	 * 刪除項目 ,左
	 * @param ids
	 * @return
	 */
	
	@ResponseBody
	@RequestMapping("/delet")
	public String deletPro(HttpSession hs,Integer ids) {
		Usertable u = (Usertable)hs.getAttribute("user");
		JSONObject jo = new JSONObject();
		if (u.getOp() == 20) {
			int i = projetService.deletPro(ids);
			jo.put("state", i);
			
		}
		return jo.toJSONString();
	}
	
	/**
	 * 用來進行項目審批,左
	 * @param hs
	 * @param p
	 * @return
	 */
	
	@ResponseBody
	@RequestMapping("/pass")
	public String updateMark(HttpSession hs,Integer ids) {
		Usertable u = (Usertable)hs.getAttribute("user");
		JSONObject jo = new JSONObject();
		if(u.getOp() == 20) {
			int m = projetService.updateMark(ids);
			jo.put("result", m);
		}
		return jo.toJSONString();
	}
	
	 
	/**
	 * 彈出層裏面嵌入的表單,左
	 * @param model
	 * @return
	 */
	@RequestMapping("/qian")
	public String qianYe(Model model,Integer ids) {
		List<Map<String,Object>> plist = projetService.selectByids(ids);
		model.addAttribute("plist", plist);
		return BASEPATH + "edit";
	}
	/**
	 * 用來進行編輯操作
	 * 左
	 * @return
	 */
	
	@ResponseBody
	@RequestMapping("/edit")
	public String updatePro(Integer ids,String pname,String ptype,
			String direction,String intro,String uids,String rate,String appraise) {
		
		JSONObject jo = new JSONObject();

		Map<String,Object> map = Myutil.mp(pname,ptype,direction,intro,uids,rate,appraise,ids);
		int i2 = projetService.updatePro(map);
		

		if (i2 > 0) {
			jo.put("success", true);
		}else {
			jo.put("success", false);
		}
		return jo.toJSONString();
	}

}

edit.jsp

<link rel="stylesheet" href="${ctx }/layui/css/layui.css" />
<link rel="stylesheet" href="${ctx }/css/edit.css" />
<script type="text/javascript" src="${ctx }/js/jquery-3.2.1.min.js"></script>
<script type="text/javascript" src="${ctx }/layui/layui.all.js"></script>
<script type="text/javascript" src="${ctx }/js/edit.js"></script>
</head>
<!-- 點編輯按鈕嵌入的頁面,左 -->
<body>

		<!-- 點擊編輯所出現的那個表單 -->
							<!-- <div class="la"> -->
								<!-- 左邊出現下拉框 -->
								<form class="layui-form" action="" method="post" id="tanbiao">
						<c:forEach var="list" items="${plist }">
								<input type="hidden" id="cang" value="${list.IDS }" />
							<c:if test="${user.op == 1 || user.op == 40 }">
									<div class="layui-form-item">
										<label class="layui-form-label">項目名</label>
										<div class="layui-input-block">
											<input type="text" name="title" required
												lay-verify="required" autocomplete="off"
												class="layui-input tan" id="pname" value="${list.PNAME }">
										</div>
										
									</div>
									<div class="layui-form-item">

										<!-- 類型 -->
										<label class="layui-form-label">項目類型</label>
										<div class="layui-input-block">
											<input type="text" name="title" required
												lay-verify="required" autocomplete="off"
												class="layui-input tan" id="ptype" value="${list.PTYPE }">
										</div>
									</div>
									<div class="layui-form-item">

										<!--  技術 -->
										<label class="layui-form-label">技術方向</label>
										<div class="layui-input-block">
											<input type="text" name="title" required
												lay-verify="required" autocomplete="off"
												class="layui-input tan" id="direction" value="${list.DIRECTION }">
										</div>
									</div>
									<div class="layui-form-item layui-form-text">

										<!-- 簡介 -->
										<label class="layui-form-label">項目簡介</label>
										<div class="layui-input-block">
											<textarea name="desc" placeholder="請輸入簡介內容"
												class="layui-textarea tan2" id="intro">${list.INTRO }</textarea>
										</div>
									</div>
									<!-- 導師 -->
									<div class="layui-form-item">
										<label class="layui-form-label">導師</label>
										<div class="layui-input-block">
											<input type="text" name="title" required
												lay-verify="required" autocomplete="off"
												class="layui-input tan" id="uids" value="${list.UIDS }">
										</div>
									</div>
									<div class="layui-form-item">

										<!-- 進度 -->
										<label class="layui-form-label">進度</label>
										<div class="layui-input-block">
											<input type="text" name="title" required
												lay-verify="required" autocomplete="off"
												class="layui-input tan" id="rate" value="${list.RATE }">
										</div>
							
										
									</div>
							</c:if>	
								<c:if test="${user.op == 20}">
								<!-- 評價 -->
									<div class="layui-form-item layui-form-text" style="margin-top: 10px;">
										<label class="layui-form-label">項目評價</label>
										<div class="layui-input-block">
											<textarea name="desc" placeholder="請輸入簡介內容"
												class="layui-textarea tan2" id="appraise">${list.APPRAISE }</textarea>
										</div>
									</div>
								</c:if>
							
					 </c:forEach>
									<div class="layui-form-item">
										<div class="layui-input-block">
											<!-- <button class="layui-btn" id="charu2" lay-submit
												lay-filter="formDemo">立即提交</button> -->
										     <a class="layui-btn" id="charu2">立即提交</a>
										</div>
									</div>
								</form>

							<!-- </div> -->
							<!-- 是用來控制表單出現下拉框的 -->

</body>

ipms綜合管理系統的總結