easyUI创建人员树
生活随笔
收集整理的這篇文章主要介紹了
easyUI创建人员树
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
最近做了一個(gè)樹狀的下拉列表,在這里記錄一下,以后可以直接使用
項(xiàng)目中的樹狀下拉列表是用來選擇人員用的,具體實(shí)現(xiàn)展示如下:
先說一說功能,左邊的人員數(shù)是提供選人的,當(dāng)點(diǎn)擊中間的按鈕,選中的人員會(huì)直接移到右邊,如果要?jiǎng)h除已選中的人員,只需要雙擊右邊人的姓名即可,點(diǎn)擊確定進(jìn)行集體的業(yè)務(wù)邏輯操作,一般就是新增人員到某一個(gè)表中。
我們?cè)賮砜纯催@個(gè)DIV的具體代碼,由于項(xiàng)目中在多個(gè)地方都使用到了這個(gè)人員樹,所以我把這個(gè)DIV抽象出來當(dāng)作一個(gè)公共的jsp頁面。如需調(diào)用,只需要include這個(gè)jsp即可
userTree.jsp:
<%@ page contentType="text/html;charset=utf-8"%> <%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <%@ taglib prefix="sino" tagdir="/WEB-INF/tags"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%> <c:set var="ctx" value="${pageContext.request.contextPath}" /> <!--彈出窗口,人員樹必要--> <link href="${ctx}/static/lib/jquery-easyui/themes/default/easyui.css"type="text/css" rel="stylesheet" /> <script src="${ctx}/static/lib/jquery-easyui/jquery.easyui.min.js"type="text/javascript"></script> <style type="text/css">li:hover { cursor: pointer; } </style><!-- 模態(tài)框彈出設(shè)置評(píng)估人 --><div id="groupuser" class="modal fade" aria-hidden="true"data-backdrop="static"><div class="modal-dialog"><div class="modal-content"><input type="hidden" id="ModaltaskLineId" /><div class="modal-header"><h4 class="modal-title text-left">請(qǐng)選擇評(píng)估人</h4></div><div class="modal-body"><div ><div style=" float: left; width: 300px;font-size:15px; ">待選擇人</div><div style="float: left; font-size:15px; width: 100px; ">已選擇人</div></div><div><div id="tt"style="border:1px solid #e4eaf8; float: left; width: 250px; height: 300px; overflow-x: scroll;"></div><div align="center" style="float: left; margin-left: 10px; margin-right:10px; height: 150px;margin-top: 150px;"><button type="button" class="btn-xs btn-primary" οnclick="$add()">>></button></div><divstyle="border:1px solid #e4eaf8;width:250px; height: 300px;overflow-x: scroll;"><ul id="names" style="list-style: none;padding-left:5px;"></ul></div><p></p></div><div align="center"><input class="btn btn-cmcc mr15 " type="button" value="確定" οnclick="modelCheckAssessors()"><input class="btn btn-cmcc mr15" type="button" value="取消" οnclick="modalHide()"></div><p/></div></div></div></div><script type="text/javascript">//人員數(shù)組(longinName) 本項(xiàng)目是已登錄名為主鍵存入,也可存入userIDvar arr = [];//點(diǎn)擊確定的處理邏輯方法名稱,調(diào)用方法的時(shí)候需要設(shè)置var fn = "";//展示人員樹,右邊沒有默認(rèn)值function showTree(groupId) {//查詢范圍是在groupId這個(gè)部門以下的節(jié)點(diǎn)部門和人員//console.log(groupId);$('#tt').tree({//一般情況下,除了url外,其他參數(shù)非必選//url: contextPath + requestURL,//請(qǐng)求的后臺(tái)路徑
//這里需要注意的是后臺(tái)url不要指定請(qǐng)求方式為GET方式,否則會(huì)報(bào)錯(cuò)。url : CONTEXT_PATH + "/sysmgr/user/chooseAssessorTree?groupId="+groupId,animate : true, //是否需要?jiǎng)赢嬓Ч鹀heckbox : 'true', //是否需要checkbox 支持復(fù)選cascadeCheck : 'false',//是否級(jí)聯(lián)選中onlyLeafCheck : 'true', //是否只有l(wèi)eaf節(jié)點(diǎn)有checkboxlines : true,//是否顯示線onClick : function(node) {//點(diǎn)擊/* var leaf = $('#tt').tree("isLeaf", node.target); //判斷是否為leafif(leaf){arr.push(node.id);} */$('#tt').tree("toggle", node.target);//點(diǎn)擊父節(jié)點(diǎn)和點(diǎn)擊父節(jié)點(diǎn)前面的+號(hào)一樣能展開},onLoadError : function(node, data) {alert("查詢不到數(shù)據(jù),樹形加載失敗");return;},onCheck : function(node, checked) {if (checked) {//arr.push(node);} else {//arr.remove(node);}}/* onBeforeLoad:function(node,param){param.screeningTxt = $("#screeningTxt").val();}*/});$("#groupuser").modal("show");//顯示模態(tài)框,}
//接口方法,外面的jsp通過調(diào)用這個(gè)方法來彈出人員樹模態(tài)框,且希望只能調(diào)用這個(gè)方法//展示人員數(shù),右邊有默認(rèn)值//參數(shù)havaDefault表示是否有默認(rèn)值,注意,批量設(shè)置不能夠有默認(rèn)值 布爾值:true,false//參數(shù)loginNameDisplayNameStr是longinName和displayName的組合字符串,例如有三個(gè)人:"zhangsan-張三,lisi-李四,wangwu-王五",如果沒有默認(rèn)值,就設(shè)置為null
//參數(shù)method表示方法名稱,即你點(diǎn)擊確定之后返回的人員的處理方法名稱,注意這個(gè)方法規(guī)定參數(shù)只能有一個(gè),那就是人員登陸名的一個(gè)字符串,多個(gè)人用";"隔開
//參數(shù)groupId表示傳入到后臺(tái)的一個(gè)參數(shù)。在本項(xiàng)目中,由于需要根據(jù)條件查詢出不同公司/部門下的人員,所以傳入了部門ID,若沒有,可以為null
function showTreeDefault(loginNameDisplayNameStr, method, havaDefault,groupId) {arr = [];//需要設(shè)置為全局變量fn = method;if (!havaDefault) {showTree(groupId);return;}if (loginNameDisplayNameStr!=null) {//alert(loginNameDisplayNameStr);//加載默認(rèn)值到樹的右邊邊框var result = loginNameDisplayNameStr.split(",");for (var i = 0; i < result.length; i++) {var user = result[i].split("-");var loginName = user[0];var displayName = user[1];var ul = document.getElementById("names");var li = document.createElement("li");li.setAttribute("value", loginName);li.setAttribute("ondblclick", "$remove(this)");li.innerHTML = displayName;ul.appendChild(li);arr.push(loginName);}}showTree(groupId);}function modelCheckAssessors() {if (arr.length != 0) {
//將登錄名數(shù)組以";"隔開組成一個(gè)字符串var loginNameStr = arr.join(";");returnVal(loginNameStr);} else {returnVal(null);}}function returnVal(retArr) {//調(diào)用處理邏輯方法window[fn](retArr);//關(guān)閉模態(tài)框modalHide();}function modalHide() {//清空右邊li的數(shù)據(jù)$('ul li').remove();$("#groupuser").modal("hide");}function $add() {var nodes = $('#tt').tree('getChecked');if (nodes.length != 0) {for (var i = 0; i < nodes.length; i++) {var loginName = nodes[i].id;var userName = nodes[i].text;addEleInMainBox(loginName, userName);$('#tt').tree('uncheck', nodes[i].target);//去掉選中的 }}};function addEleInMainBox(loginName, userName) {//1.判斷當(dāng)前div中是否已經(jīng)存在該loginName,如果有重復(fù)的則不添加if (arr.Exists(loginName)) {//alert("已經(jīng)存在"+loginName+",不再添加");return;}//2.添加該評(píng)估人到li中var ul = document.getElementById("names");var li = document.createElement("li");li.setAttribute("value", loginName);li.setAttribute("ondblclick", "$remove(this)");li.innerHTML = userName;ul.appendChild(li);arr.push(loginName);}function $remove(obj) {var loginName = obj.getAttribute("value");obj.parentNode.removeChild(obj);arr.remove(loginName);}Array.prototype.remove = function(val) {var index = this.indexOf(val);if (index > -1) {this.splice(index, 1);}};Array.prototype.Exists = function(v) {var b = false;for (var i = 0; i < this.length; i++) {if (this[i] == v) {b = true;break;}}return b;}; </script>
下面再來看看java后臺(tái)是如何來查找這個(gè)樹的,附上后臺(tái)代碼
//選擇評(píng)估人-樹形結(jié)構(gòu)@RequestMapping(value = "chooseAssessorTree")//這里不要指定請(qǐng)求方式public void chooseAssessorTree(HttpServletRequest req,HttpServletResponse res){//每次點(diǎn)擊節(jié)點(diǎn)的時(shí)候會(huì)傳入一個(gè)節(jié)點(diǎn)ID值String id = req.getParameter("id");//第一次加載樹時(shí)選擇的區(qū)域String groupId = req.getParameter("groupId");List<Map<String,Object>> list=userService.queryJSAssessor(id,groupId);BuildJSON.printToClient(req, res, arrayBuilder(list));}//獲得樹值private JSONArray arrayBuilder(List<Map<String,Object>> list) {JSONArray arr = new JSONArray();if (list != null && list.size() > 0) {for (int i=0;i<list.size();i++) {JSONObject obj = new JSONObject();Map map=list.get(i);String userImg=map.get("userImg").toString();if (userImg.equals("1")) {//表示到了葉子節(jié)點(diǎn),選擇出人obj.put("id", map.get("loginName"));obj.put("text", map.get("displayName"));obj.put("state", "open");//obj.put("iconCls", "icon-user2-gj");}else{obj.put("id", map.get("groupId"));obj.put("text", map.get("groupName"));obj.put("state", "closed");}arr.add(obj);}}return arr;}
dao查詢方法
/**查詢樹結(jié)構(gòu)的人員以及部門數(shù)據(jù)* @param parentGroupId * @param groupId 第一次加載樹查詢的 區(qū)域 例如是成都分公司,則查詢出成都分公司下面的部門以及人員* @return*/List<Map<String, Object>> queryJSAssessor(@Param("parentGroupId") String parentGroupId, @Param("groupId")String groupId);對(duì)應(yīng)的xml
1 <select id="queryJSAssessor" resultType="Map" parameterType="String"> 2 SELECT 3 e.loginName, 4 e.displayName, 5 e.groupId, 6 e.groupCode, 7 e.groupName, 8 e.disOrder, 9 e.userImg 10 FROM 11 (SELECT s.loginName,s.displayName,s.groupId,s.groupCode,s.groupName,s.disOrder,s.userImg FROM 12 (SELECT '0' loginName, 13 '0' displayName, 14 fg.ID groupId, 15 fg.CODE groupCode, 16 fg.NAME groupName, 17 fg.DISPLAY_ORDER disOrder, 18 isnull((select count(id) FROM FND_GROUP where PARENT_ID=fg.ID),0) groupLeaf, 19 (select COUNT(1) from FND_USER_GROUP fug, FND_USER fu where fug.USER_ID = fu.ID and fug.GROUP_ID = fg.ID) userLeaf, 20 0 userImg 21 FROM FND_GROUP fg 22 WHERE fg.ENABLE_FLAG = 'Y' 23 <if test="parentGroupId != null and '' != parentGroupId"> 24 AND fg.PARENT_ID = #{parentGroupId} 25 </if> 26 <if test="parentGroupId == null or '' == parentGroupId"> 27 <if test="groupId!=null and '' !=groupId"> 28 AND fg.PARENT_ID = #{groupId} 29 </if> 30 <if test="groupId==null or ''==groupId"> 31 AND fg.GROUP_LEVEL = 0 32 </if> 33 </if> 34 )s WHERE s.groupLeaf>0 OR s.userLeaf>0 35 UNION ALL 36 SELECT fu.LOGIN_NAME loginName, 37 fu.DISPLAY_NAME displayName, 38 fg.ID groupId, 39 fg.CODE groupCode, 40 fg.NAME groupName, 41 fg.DISPLAY_ORDER disOrder, 42 1 userImg 43 FROM FND_USER fu 44 LEFT JOIN FND_USER_GROUP fug ON fu.ID=fug.USER_ID 45 LEFT JOIN FND_GROUP fg ON fug.GROUP_ID=fg.ID 46 WHERE fu.ENABLE_FLAG = 'Y' 47 AND fug.PRIMARY_FLAG='Y' 48 AND fg.NAME!='' 49 AND fu.LOGIN_NAME!='' 50 AND fu.DISPLAY_NAME!='' 51 AND fu.MOBILE!='' 52 <if test="parentGroupId != null and '' != parentGroupId"> 53 AND fug.GROUP_ID = #{parentGroupId} 54 </if> 55 <if test="parentGroupId == null or '' == parentGroupId"> 56 <if test="groupId!=null and '' !=groupId"> 57 AND fug.GROUP_ID = #{groupId} 58 </if> 59 <if test="groupId==null or ''==groupId"> 60 AND fg.GROUP_LEVEL = 0 61 </if> 62 </if> 63 )e 64 ORDER BY userImg, CAST(disOrder AS int) 65 </select> UserDaoMapper.xml?
最后再附上一個(gè)使用實(shí)例的 jsp
1 <%-- 2 Created by IntelliJ IDEA. 3 User: zht 4 Date: 2017/7/18 5 Time: 20:36 6 To change this template use File | Settings | File Templates. 7 --%> 8 <%@ page contentType="text/html;charset=utf-8" %> 9 <%@ taglib uri="http://www.springframework.org/tags/form" prefix="form" %> 10 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 11 <%@ taglib prefix="sino" tagdir="/WEB-INF/tags" %> 12 <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %> 13 <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %> 14 <c:set var="ctx" value="${pageContext.request.contextPath}"/> 15 16 <!DOCTYPE html> 17 <html> 18 <head> 19 <title>專項(xiàng)評(píng)估 > 任務(wù)分發(fā)</title> 20 <script src="${ctx}/static/scm/js/commonDialog.js" type="text/javascript"></script> 21 <link href="${ctx}/static/sinoprof/core/css/menu-dropdown.css" type="text/css" rel="stylesheet"/> 22 <script src="${ctx}/static/sinoprof/core/js/namespace.js" type="text/javascript"></script> 23 <script src="${ctx}/static/sinoprof/core/js/lookupDialogRemember.js" type="text/javascript"></script> 24 <script src="${ctx}/static/scm/js/taskEditExcelData.js" type="text/javascript"></script> 25 <script src="${ctx}/static/scm/js/bootstrap-filestyle.js" type="text/javascript"></script> 26 27 28 <link href="${ctx}/static/lib/jquery-easyui/themes/default/easyui.css" type="text/css" rel="stylesheet" /> 29 <script src="${ctx}/static/lib/jquery-easyui/jquery.easyui.min.js" type="text/javascript"></script> 30 31 <sino:sinoflow ctx="${ctx}" SFActInfo="${SFActInfo}"/> 32 <style type="text/css"> 33 .table tbody td:nth-child(1n) { 34 text-align: center; 35 vertical-align: middle; 36 } 37 .mr15 { 38 margin-right: 15px; 39 } 40 </style> 41 </head> 42 <body> 43 <form:form id="appform" name="specialTask" class="form-horizontal" role="form" 44 action="${ctx}/scm/special/distribute/submit" method="post"> 45 <input type="hidden" id="Launch_Code" /> 46 <input type="hidden" id="APPL_COLUMN4"> 47 <input type="hidden" id="loginIds" name="loginIds" > 48 <input type="hidden" id="Launch_Code_Bypass" value="C1"> 49 <input type="hidden" id="groups" name="groups" value="${flowGroups}"> 50 <input type="hidden" id="sf_actID" value="${sf_actID}"> 51 <input type="hidden" id="nextLoginName" value="${nextLoginName}"> 52 <div class="control-group"> 53 <input type="hidden" name="taskId" value="${taskId}"> 54 <input type="hidden" name="taskName" value="${taskName}"> 55 <h2 style="text-align:center">${taskName}</h2> 56 <input type="hidden" id="taskId" value="${taskId}"> 57 <div style="height: 70px"> 58 <div class="pull-right mr15"> 59 <button type="button" class="btn-cmcc" οnclick="doSubmit();">任務(wù)分發(fā)</button> 60 </div> 61 <div class="pull-right mr15"> 62 <button id="cancelBtn" type="button" class="btn-cmcc" οnclick="window.location.href='${ctx}/flow/workbench/pendingTray'">關(guān)閉</button> 63 </div> 64 </div> 65 <div class="group-header col-xs-12"> 66 <span class="title">本次評(píng)估信息</span> 67 <div class="dropdown opts table-opts" data-table="3"> 68 <a class="btn-span" style="color:white" data-action="" οnclick="checkAssessors(this,true);">批量設(shè)置評(píng)分人</a> 69 <a class="btn-span" style="color:white" data-action="" οnclick="removeAssessors(this,true);">批量清空評(píng)分人</a> 70 </div> 71 </div> 72 <div class="form-group" > 73 74 <div class="col-md-12"> 75 <table class="col-md-12 table table-striped table-bordered table-hover"> 76 <thead> 77 <tr> 78 <td style="width:3%"><input type="checkbox" id="selectAll" name="selectAll"/></td> 79 <th style="width:4%">序號(hào)</th> 80 <th style="width:35%">協(xié)議/合同名稱</th> 81 <th style="width:23%">評(píng)估供應(yīng)商</th> 82 <th style="width:20%">評(píng)估人</th> 83 <th style="width:15%">評(píng)估模板</th> 84 </tr> 85 </thead> 86 <tbody> 87 <c:forEach items="${specialTaskLineList}" var="line" varStatus="status"> 88 <tr> 89 <td><input type="checkbox" name="chkItem" value="${line.taskLineSetId}"></td> 90 <th>${status.index+1} 91 <input type="hidden" name="taskLineId" value="${line.taskLineId}"> 92 <input type="hidden" name="taskLineSetId" value="${line.taskLineSetId}"> 93 <input type="hidden" name="objectType" value="${line.objectType}"> 94 </th> 95 <td>${line.contractName}</td> 96 <td>${line.vendorName}</td> 97 <td class="assessorsTd" name="assessorsTd" style="text-align:left; color:#E69500"> 98 <c:if test="${line.userNames !=null}"> 99 <a οnclick="checkAssessors(this,false);"style="color:#E69500" > ${line.userNames}</a> 100 <!-- <a οnclick="removeAssessors(this,false);" style="">清空</a> --> 101 <input type="hidden" name="userNames" value="${line.userNames}" /> 102 <input type="hidden" class="loginNames" name="loginNames" value="${line.loginNames}" /> 103 <input type="hidden" name="loginNameDisplayNameStr" value="${line.loginNameDisplayNameStr}" /> 104 105 <input type="hidden" name="flowGroups" value="${line.flowGroups}" /> 106 </c:if> 107 <c:if test="${line.userNames ==null}"> 108 <a οnclick='checkAssessors(this,false);' style='color: red'>設(shè)置評(píng)估人</a> 109 </c:if> 110 </td> 111 <td> <a href="##" οnclick="showIndicatorsDetail(this)">${line.templetName}</a></td> 112 </tr> 113 </c:forEach> 114 </tbody> 115 </table> 116 </div> 117 </div> 118 119 </div> 120 </form:form> 121 122 <jsp:include page="/WEB-INF/views/workflow/workbench/userTree.jsp" /> 123 <%-- <%@ include file="../../../../static/scm/userTree.jsp"%> --%> 124 <script type="text/javascript"> 125 $(function () { 126 //全選、取消全選的事件 127 $("#selectAll").click(function () { 128 $("input[name='chkItem']").prop("checked", this.checked); 129 }); 130 }); 131 function assessorsValidate(){ 132 var flag=true; 133 $(".assessorsTd").each(function(){ 134 var validateMedium=$(this).find("input[name='loginNames']").val(); 135 if(!validateMedium){ 136 flag=false; 137 msgAlert("評(píng)估人未設(shè)置"); 138 return false; 139 } 140 }); 141 return flag; 142 } 143 function do_Validate_Save() {//流程“暫存”前由流程引擎自動(dòng)調(diào)用,如果該函數(shù)返回false,流程引擎中止“暫存”操作 144 if ($("#appform").valid()&&assessorsValidate()) { 145 return true; 146 }else{ 147 return false; 148 } 149 } 150 //提交數(shù)據(jù) 151 function doSubmit() { 152 var companyId = $("#companyId").val(); 153 if(companyId =="00"){ 154 $("#Launch_Code").val("B"); 155 }else { 156 $("#Launch_Code").val("A"); 157 } 158 if (do_Validate_Save()){ 159 var assessors=new Array(); 160 $('.loginNames').each(function(index){ 161 var arrayEach=($(this).val()).split(","); 162 for(var i=0;i<arrayEach.length;i++){ 163 if(assessors.indexOf(arrayEach[i])<0){ 164 assessors.push(arrayEach[i]); 165 } 166 } 167 }); 168 assessors=assessors.join(";"); 169 if($("#nextLoginName").val()){ 170 $("#loginIds").val($("#nextLoginName").val()); 171 }else { 172 $("#loginIds").val(assessors); 173 } 174 if(checkAppraiser()){ 175 do_Div_Complete_Start(); 176 }else { 177 msgAlert("存在指標(biāo)評(píng)估人為空"); 178 } 179 } 180 } 181 182 function checkAppraiser(){ 183 var flag = true; 184 var taskId = $("#taskId").val(); 185 $.ajax({ 186 url:"${ctx}/scm/special/distribute/checkAppraiser", 187 type:"post", 188 dataType:"json", 189 async:false, 190 data:{"taskId":taskId}, 191 success:function(result){ 192 if(result>0){ 193 flag = false; 194 } 195 } 196 }); 197 return flag; 198 } 199 200 //選擇評(píng)估人 201 function checkAssessors(obj,flag) { 202 if(flag&& $("input[name='chkItem']:checked").length == 0){ 203 msgAlert("請(qǐng)選擇要設(shè)置的行。"); 204 return; 205 } 206 arr = [];//需要設(shè)置為全局變量 207 var method="dealMethod"; 208 if(!flag){ 209 var taskLineSetId = $(obj).parents("tr").find("input[name='taskLineSetId']").val(); 210 //這里的ModaltaskId為模態(tài)框里面的id值,表示需要修改的行,該列表示可以傳遞的參數(shù) 211 $("#ModaltaskLineId").val(taskLineSetId); 212 //獲取評(píng)估人信息loginName和displayNameStr(默認(rèn)值) 213 var loginNameDisplayNameStr = $(obj).parents("tr").find("input[name='loginNameDisplayNameStr']").val(); 214 showTreeDefault(loginNameDisplayNameStr,method,true); 215 } 216 //批量設(shè)置評(píng)估人 217 else{ 218 var check = $("input[name='chkItem']:checked"); 219 var taskLineIdStr=""; 220 check.each(function (index) { 221 if(index==0){ 222 taskLineIdStr=$(this).val(); 223 }else{ 224 taskLineIdStr+=","+$(this).val(); 225 } 226 }); 227 $("#ModaltaskLineId").val(taskLineIdStr); 228 showTreeDefault(null,method,false); 229 230 } 231 232 } 233 //判斷是否是批量設(shè)置評(píng)估人,如果是批量,循環(huán)處理(本方法也是模態(tài)框處理方法) 234 function dealMethod(loginNames){ 235 if(loginNames==null){ 236 alert("評(píng)估人不能為空,設(shè)置失敗!"); 237 return ; 238 } 239 var taskLineSetIdStr = $("#ModaltaskLineId").val(); 240 $.commonDialog.showProgress('${ctx}', '正在設(shè)置評(píng)估人,請(qǐng)稍候...'); 241 saveAppraiser(taskLineSetIdStr,loginNames); 242 } 243 function saveAppraiser(taskLineSetIdStr,loginNames) { 244 $.ajax({ 245 url:"${ctx}/scm/special/distribute/saveAppraiser", 246 type:"post", 247 dataType:"json", 248 async:false, 249 data:{"taskLineSetIdStr":taskLineSetIdStr,"loginNames":loginNames}, 250 success:function(result){ 251 window.location.reload(); 252 } 253 }); 254 } 255 256 function removeAssessors(obj,flag) { 257 if(flag&& $("input[name='chkItem']:checked").length == 0){ 258 msgAlert("請(qǐng)選擇要設(shè)置的行。"); 259 return; 260 } 261 msgConfirm("是否確認(rèn)清空?", 262 function () { 263 $.commonDialog.showProgress('${ctx}', '正在刪除,請(qǐng)稍候...'); 264 $("#nextLoginName").val(""); 265 if(flag){ 266 $("input[name='chkItem']:checked").each(function () { 267 removepeople($(this).parents("tr").find("td input[name ='loginNames']")); 268 }); 269 }else { 270 removepeople(obj); 271 } 272 window.location.reload(); 273 // $.commonDialog.hiddenProgress(); 274 } 275 ); 276 } 277 function removepeople(obj) { 278 var taskLineSetId = $(obj).parents("tr").find("th input[name=taskLineSetId]").val(); 279 $.ajax({ 280 url:"${ctx}/scm/special/distribute/delAppraiser", 281 type:"post", 282 dataType:"json", 283 async:false, 284 data:{"taskLineSetId":taskLineSetId}, 285 success:function(result){ 286 // if(result =='Y'){ 287 // $(obj).parent("td") .html("<a οnclick='checkAssessors(this,false);' style='color: red'>設(shè)置評(píng)估人</a>"); 288 // } 289 } 290 }); 291 } 292 293 function showIndicatorsDetail(obj) { 294 var loginNames = $(obj).parents("tr").find("td input[name=loginNames]").val(); 295 var taskLineId = $(obj).parents("tr").find("th input[name=taskLineId]").val(); 296 var objectType = $(obj).parents("tr").find("th input[name=objectType]").val(); 297 var sf_actID = $("#sf_actID").val(); 298 if(loginNames){ 299 window.location.href= "${ctx}/scm/special/distribute/indicatorsEdit?taskLineId="+taskLineId+"&objectType="+objectType+"&sf_actID="+sf_actID; 300 }else { 301 msgAlert("請(qǐng)先設(shè)置評(píng)估人!"); 302 } 303 } 304 305 306 </script> 307 </body> 308 309 </html> distributeEdit.jsp?
轉(zhuǎn)載于:https://www.cnblogs.com/tangyonghui/p/7527085.html
總結(jié)
以上是生活随笔為你收集整理的easyUI创建人员树的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 甲骨文正式宣布将Java EE移交给Ec
- 下一篇: lsof 命令简介