客人服务 学员查询 级联,zTree的使用

2024-06-08 16:38

本文主要是介绍客人服务 学员查询 级联,zTree的使用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

客服学员查询:
技术点:
1. doChange(); 省市与计划(某个部门制定的计划)的 级联.
2. 树的应用.
直接百度 ztree API, 进入后, ztree API 找相关属性,方法就ok了.
显示效果:
1)选择北京,后面的plan为北京对应
[img]http://dl2.iteye.com/upload/attachment/0125/6057/49817179-0efb-34b9-856d-f5be4c936402.png[/img]
2)选择全国,后面的plan为全国对应
[img]http://dl2.iteye.com/upload/attachment/0125/6059/1628cafe-a354-3f16-a855-2f24a32c8396.png[/img]

客服学员查询页面 deptViewPersonList_cs.jsp
doChange()事件.
<%@ page language="java" contentType="text/html; charset=utf-8"	pageEncoding="utf-8"%><%@ taglib prefix="s" uri="/struts-tags"%><%@ include file="/common/common.jsp"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>学员查询</title><%--北京方面制定的样式 添加. --%><script type="text/javascript" src="${pageContext.request.contextPath}/js/common/jquery/jquery-1.7.2.js"></script><script type="text/javascript" src="${pageContext.request.contextPath}/js/common/myLand.js"></script><%--分页用CSS --%><link href="${pageContext.request.contextPath}/css/adminx/common_style.css" rel="stylesheet" type="text/css"><script type="text/javascript" src="${pageContext.request.contextPath}/js/webcustomer/pagination.js"></script><link href="${pageContext.request.contextPath}/css/adminx/jquery.fancybox-1.3.4.css" rel="stylesheet" type="text/css" media="screen"></link><link href="${pageContext.request.contextPath}/css/adminx/basic_layout.css" rel="stylesheet" type="text/css"><script type="text/javascript" src="${pageContext.request.contextPath}/js/adminx/commonAll.js"></script><script type="text/javascript" src="${pageContext.request.contextPath}/js/adminx/fancybox/jquery.fancybox-1.3.4.js"></script><script type="text/javascript" src="${pageContext.request.contextPath}/js/adminx/fancybox/jquery.fancybox-1.3.4.pack.js"></script><!-- 树状图的 3js+2css 都有ztee关键词--><script type="text/javascript" src="${pageContext.request.contextPath}/js/adminx/dept.js"></script><script type="text/javascript" src="${pageContext.request.contextPath}/js/common/ztree/jquery.ztree.core-3.5.js"></script><script type="text/javascript" src="${pageContext.request.contextPath}/jsp/demo/ztreeNodes.js"></script><link href="${pageContext.request.contextPath}/css/adminx/zTreeStyle_special.css" rel="stylesheet" type="text/css" /><link href="${pageContext.request.contextPath}/css/common/zTreeStyle/demo.css" rel="stylesheet" type="text/css" /><link id="artDialogSkin" href="${pageContext.request.contextPath }/js/adminx/artDialog/skins/blue.css" rel="stylesheet" type="text/css" /><script type="text/javascript" src="${pageContext.request.contextPath }/js/adminx/artDialog/jquery.artDialog.source.js"></script><script type="text/javascript" src="${pageContext.request.contextPath }/js/adminx/artDialog/plugins/iframeTools.source.js"></script><script type="text/javascript">/** * 根据部门查找相应的计划,显示列表 * obj当前对象,changeId 变动的id,   url 路径.考虑将来  三级级联.留着. */	var zNodes = ${jsonTree};	$(document).ready(function(){//doc的ready事件(fucntion方法)		var zTreeObj = $.fn.zTree.init($("#treeDemo"),setting,zNodes); //获得zTreeObj的对象,也就是treeDemo的那个树. lzl)		// 根据deptId的value值,付给前面的框  值.		if($("#deptId").val() != ""){			/* 			keyString			需要精确匹配的属性名称 //自身id			value?			需要精确匹配的属性值,可以是任何类型,只要保证与 key 指定的属性值保持一致即可  //对应的值.			parentNodeJSON			可以指定在某个父节点下的子节点中搜索			*/			var snode = zTreeObj.getNodeByParam("id",$("#deptId").val(),null);			zTreeObj.selectNode(snode);			onClick1();		}	});	//重写	树的onclick方法. 未调用.function doChange(obj,changeId,url){	var url='${pageContext.request.contextPath}/adminx/changePlanList!changePlanList.do'	 //alert(durl);	var id = "#"+changeId;	//alert("要改动的id:"+id);	//alert($(obj).val());	if($("#deptId").val()!='0'){ //有选中的	obj 0为全部的.		var data = $("#deptId").val(); //deptId的值. 原obj		//alert(data);		url = url +"?deptId="+data;		$.post(url,function(data){ //data json数组,字符串.			$(id).html("");			//alert("data:"+typeof(data));			if(data !=null&&data!=""){				//alert(2);				var planArray = eval(data);				$.each(planArray,function(i,item){					//alert(3);					//可以判断选择的是...					$(id).append("<option value="+item.id+">"+item.name+"</option>");				});				$(id).append("<option value='all'>全部</option>");			}			/*wayB: 			for(var i = 0;i<planArray.length;i++){			} */		});	}else{  //如果第一个是全部,那么下一个也就是全部了.		//alert("第一个选中的是全部!");		//让计划列表默认选中的是   全部.		$(id).html(""); //清空所有. 加上全部.		$(id).attr("disabled",true);		// $("#planId").val("all"); //让计划的也是all 全部. 无效的.  //<select id="planId" name="planId" class="ui_select01"></select>?	}}//重置学员密码function resetPersonPwd(id){	mylandConfirmByFunc(			"重置学员密码","确定要重置该学员密吗?",			function yesFunc(){				$("#personId").attr("value",id);				var doUrl = "${pageContext.request.contextPath}/adminx/resetPersonPwd.do ";				myLandAjax(doUrl,"personResetPwd","json",restPersonPwdAlert);			},			function noFunc(){},			"重置");}//重置密码提示信息function restPersonPwdAlert(code, data){	if(code == "00") {        var rsObj = JSON.parse(data);        if(rsObj.flag) {	        mylandAlert("提示",rsObj.message.mess);        }else{        	mylandAlert("错误",rsObj.message.mess);        }	}}//关闭 开启人脸function effectIsFace(ppid,isface){	if(isface == "1"){		mylandConfirmByFunc(				"关闭人脸识别","确定关闭该学员人脸识别?",				function yesFunc(){					$("#personPlanId").attr("value",ppid);					$("#isFace").attr("value",isface);					$("#effectIsFaceForm").submit();				},				function noFunc(){},				"确定",				"取消");	}else if(isface == "0"){		mylandConfirmByFunc(				"开启人脸识别","确定开启该学员人脸识别?",				function yesFunc(){					$("#personPlanId").attr("value",ppid);					$("#isFace").attr("value",isface);					$("#effectIsFaceForm").submit();				},				function noFunc(){},				"确定",				"取消");	}}</script></head><body>	<%--学员信息列表查询 --%><form id="agentAction" name="quryForm" action="${pageContext.request.contextPath}/adminx/deptViewPerson_cs.do" method="post"><s:hidden name="flag" id="flag"></s:hidden>	<div id="container"><!-- 总外容器 含两部分,头部条件,下部分列表显示的-->		<div class="ui_content"> <!-- 头部 溢出隐藏. -->			<div class="ui_text_indent">				<%--整体盒子分 三大部分.头部 搜索提示 --%>				<div id="box_border"> <%--头部的css --%>						<div id="menuContent" class="menuContent" style="display: none;position: absolute;z-index:100;">							<ul id="treeDemo" class="ztree" style="margin-top:0;height:120px;"></ul>						</div> 					<c:if test="${ agent_id==null}">					<%--如果没有agent_id,就是从组织者学员查询来的;有则是从代理明细/学员查询过来的. --%>					<div id="box_center"> <!--css 时间,普通用2,select用4. -->						身份证号:<%--<s:textfield id="pIdCard" name="viewPerson.pIdCard" cssClass="ui_input_txt02" value="${qc.conditionStr.pIdCard }"/>原input --%>						<input class="ui_input_txt02" name="viewPerson.pIdCard" value="${qc.conditionsObj.pIdCard }"/>						姓名:						<input  id="pRealName" name="viewPerson.pRealName" class="ui_input_txt02" value="${qc.conditionsObj.pRealName }"/>							<%--headerKey无法获取动态值,故使用value 接收后台的传值 --%>						树级省市:						<input type="text" id="catTypeId" name="catTypeId" readonly="readonly" style="width:220px;" class="ui_input_txt02" onclick="showMenu();return false;" />						<input type="hidden" name="deptId" id="deptId" value="${qc.conditionsStr.deptId }"/><%--如下关区的 id的.licenseType --%>						学习计划:<%-- ${qc.conditionsStr.planId }###${planList.size() }##${planList !=null && fun:length(planList)>0}						0 C函数标签  --%>						<select id="planId" name="planId" class="ui_select01">							<option value="all">全部</option>													<c:if test="${planList !=null && fun:length(planList)>0}"><%--or ""改为'' ★$)45min. --%>								<c:forEach var="p" items="${planList }">									<option value="${p.id }" <c:if test="${qc.conditionsObj.planId==p.id }">selected</c:if>>${p.name }</option>								</c:forEach>							</c:if>						</select>					</div> <!-- 中间部分的搜索条件 **) end-->					<div id="box_bottom" style="text-align:left;">						<input type="submit" value="查询" class="ui_input_btn01"  />					</div>					</c:if>				</div>			</div> <!-- ui_text_indent end-->		</div>	<!-- ui_content end -->		<div class="ui_content">			<div class="ui_tb">				<table  id="dataTable" class="table" cellspacing="0" cellpadding="0" width="100%" align="center" border="0">				<tr>					<th width="50">序号</th>					<th>身份证号</th>					<th>姓名</th>					<th>联系电话</th>					<th>最后登录时间</th>					<th>计划名称</th>					<th>注册时间</th>					<th>当前学时/目标学时</th>					<th>最后学习时间</th>					<th>操作</th>				</tr>				<c:choose>					<c:when test="${empty viewList}">						<tr>							<td colspan="15">								无相关记录							</td>						</tr>					</c:when>					<c:otherwise>						<c:forEach var="viewList" items="${viewList}" varStatus="stats">						<tr>							<td>								<myland:index qc="${qc}" step="${stats.index+1}"/>							</td>							<td>${viewList.pIdCard}</td>							<td>${viewList.pRealName}</td>							<td>${viewList.pTel}</td>							<td><fmt:formatDate value="${viewList.pLastLogin}" pattern="yyyy-MM-dd HH:dd:ss"/></td>							<td>${viewList.planName}</td>							<td>							${viewList.pAddTime }<%--datetime的显示方式 --%>							</td><%-- String的显示方式 s:date format="yyyy-MM-dd" datetime 数据类型 只显示时分秒--%>							<td>${viewList.ppSumStudyTime}/${viewList.ppTargetStudyTime}</td>							<td>${viewList.ppLastDate}</td>							<td width="80" >								<span class="chakan"><%--部门尝试不要传递 --%>									<a href="${pageContext.request.contextPath}/adminx/personRecordAction_cs.do?personId=${viewList.ppPersonId}&personPlanId=${viewList.ppId}&flag=cs&deptId_P=${deptId_P}">学习记录</a>																	</span>								<span class="chakan">									<a href="${pageContext.request.contextPath}/adminx/personExamAction_cs.do?personPlanId=${viewList.ppId}&flag=cs&deptId_P=${deptId_P}">考试记录</a>								</span>								<span class="chakan">									<a href="javascript:resetPersonPwd(${viewList.ppPersonId})" class="edit">重置密码</a>								</span>								<span class="chakan">									<c:choose>										<c:when test="${viewList.ppIsFace=='0'}">											<a href="javascript:effectIsFace(${viewList.ppId},1)" class="edit">关闭人脸</a>										</c:when>										<c:when test="${viewList.ppIsFace=='1'}">											<a href="javascript:effectIsFace(${viewList.ppId},0)" class="edit">开启人脸</a>										</c:when>									</c:choose>																	</span>							</td>						</tr>					</c:forEach>					</c:otherwise>				</c:choose>			</table>			</div> <%--中部 end --%>			<myland:page pagination="${qc.pagination}" showType="002"/>		</div><%--ui_content end --%>	</div><!-- 总外容器 end--></form> <!-- 总form end -->	<%--重置学员密码form表单 --%><form id="personResetPwd" method="post">	<input id="personId" name="personId" type="hidden"/></form><%--设置人脸识别form表单 --%><form id="effectIsFaceForm" method="post" action="${pageContext.request.contextPath}/adminx/effectIsFace.do">	<input id="personPlanId" name="personPlanId" type="hidden"/>	<input id="isFace" name="isFace" type="hidden"/></form></body></html>


dept.js 引入的专门处理树js的文件.

/** * 类别体系下拉选择功能方法 */	//設置菜單的顯示類型	var setting = {		view: {			dblClickExpand: false		},		data: {			simpleData: {				enable: true			}		},		callback: {			beforeClick: null ,			onClick: onClick		}	};	//選中后操作 不必判断末级节点.	/*function beforeClick(treeId, treeNode) {		var check = (treeNode && !treeNode.isParent);		if (!check) alert("只能选择末节点子类型!");		return check;	}*/	//選中操作	function onClick(e, treeId, treeNode) {		//alert("onClick单击选中操作~");		var zTree = $.fn.zTree.getZTreeObj("treeDemo"),		nodes = zTree.getSelectedNodes(),		v = "";		var ids = "";		nodes.sort(function compare(a,b){return a.id-b.id;});		for (var i=0, l=nodes.length; i<l; i++) {			v += nodes[i].name + ",";			ids += nodes[i].id;		}		if (v.length > 0 ) v = v.substring(0, v.length-1);		var cityObj = $("#catTypeId");		cityObj.attr("value", v);		cityObj.focus();		$("#deptId").attr("value",ids);		hideMenu();		doChange(this,'planId','/jpv2/adminx/changePlanList!changePlanList.do'); //${pageContext.request.contextPath}	}	//页面加载时候选中	function onClick1() {		var zTree = $.fn.zTree.getZTreeObj("treeDemo"),		nodes = zTree.getSelectedNodes(),		v = "";		var ids = "";		nodes.sort(function compare(a,b){return a.id-b.id;});		for (var i=0, l=nodes.length; i<l; i++) {			v += nodes[i].name + ",";			ids += nodes[i].id;		}		if (v.length > 0 ) v = v.substring(0, v.length-1);		var cityObj = $("#catTypeId");		cityObj.attr("value", v);		$("#deptId").attr("value",ids);		hideMenu();	}	//顯示下拉菜單	function showMenu() {		//alert(1);		var cityObj = $("#catTypeId");		var cityOffset = $("#catTypeId").offset();		$("#menuContent").css({left:cityOffset.left + "px", top:cityOffset.top + cityObj.outerHeight() + "px"}).slideDown("fast");		$("body").bind("mousedown", onBodyDown);	}	//隱藏下拉菜單	function hideMenu() {		$("#menuContent").fadeOut("fast");		$("body").unbind("mousedown", onBodyDown);	}	//監聽鍵盤操作	function onBodyDown(event) {		if (!(event.target.id == "menuBtn" || event.target.id == "menuContent" || $(event.target).parents("#menuContent").length>0)) {			hideMenu();		}	}

这篇关于客人服务 学员查询 级联,zTree的使用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/1042732

相关文章

MySQL中优化CPU使用的详细指南

《MySQL中优化CPU使用的详细指南》优化MySQL的CPU使用可以显著提高数据库的性能和响应时间,本文为大家整理了一些优化CPU使用的方法,大家可以根据需要进行选择... 目录一、优化查询和索引1.1 优化查询语句1.2 创建和优化索引1.3 避免全表扫描二、调整mysql配置参数2.1 调整线程数2.

C#中SortedSet的具体使用

《C#中SortedSet的具体使用》SortedSet是.NETFramework4.0引入的一个泛型集合类,它实现了一个自动排序的集合,内部使用红黑树数据结构来维护元素的有序性,下面就来介绍一下如... 目录基础概念主要特性创建和初始化基本创建方式自定义比较器基本操作添加和删除元素查询操作范围查询集合运

MySQL 数据库表与查询操作实战案例

《MySQL数据库表与查询操作实战案例》本文将通过实际案例,详细介绍MySQL中数据库表的设计、数据插入以及常用的查询操作,帮助初学者快速上手,感兴趣的朋友跟随小编一起看看吧... 目录mysql 数据库表操作与查询实战案例项目一:产品相关数据库设计与创建一、数据库及表结构设计二、数据库与表的创建项目二:员

C# Opacity 不透明度的具体使用

《C#Opacity不透明度的具体使用》本文主要介绍了C#Opacity不透明度的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录WinFormsOpacity以下是一些使用Opacity属性的示例:设置窗体的透明度:设置按钮的透

Linux查询服务器 IP 地址的命令详解

《Linux查询服务器IP地址的命令详解》在服务器管理和网络运维中,快速准确地获取服务器的IP地址是一项基本但至关重要的技能,下面我们来看看Linux中查询服务器IP的相关命令使用吧... 目录一、hostname 命令:简单高效的 IP 查询工具命令详解实际应用技巧注意事项二、ip 命令:新一代网络配置全

Go语言使用net/http构建一个RESTful API的示例代码

《Go语言使用net/http构建一个RESTfulAPI的示例代码》Go的标准库net/http提供了构建Web服务所需的强大功能,虽然众多第三方框架(如Gin、Echo)已经封装了很多功能,但... 目录引言一、什么是 RESTful API?二、实战目标:用户信息管理 API三、代码实现1. 用户数据

在ASP.NET项目中如何使用C#生成二维码

《在ASP.NET项目中如何使用C#生成二维码》二维码(QRCode)已广泛应用于网址分享,支付链接等场景,本文将以ASP.NET为示例,演示如何实现输入文本/URL,生成二维码,在线显示与下载的完整... 目录创建前端页面(Index.cshtml)后端二维码生成逻辑(Index.cshtml.cs)总结

Linux查询服务器系统版本号的多种方法

《Linux查询服务器系统版本号的多种方法》在Linux系统管理和维护工作中,了解当前操作系统的版本信息是最基础也是最重要的操作之一,系统版本不仅关系到软件兼容性、安全更新策略,还直接影响到故障排查和... 目录一、引言:系统版本查询的重要性二、基础命令解析:cat /etc/Centos-release详

Spring Integration Redis 使用示例详解

《SpringIntegrationRedis使用示例详解》本文给大家介绍SpringIntegrationRedis的配置与使用,涵盖依赖添加、Redis连接设置、分布式锁实现、消息通道配置及... 目录一、依赖配置1.1 Maven 依赖1.2 Gradle 依赖二、Redis 连接配置2.1 配置 R

Python WSGI HTTP服务器Gunicorn使用详解

《PythonWSGIHTTP服务器Gunicorn使用详解》Gunicorn是Python的WSGI服务器,用于部署Flask/Django应用,性能高且稳定,支持多Worker类型与配置,可处... 目录一、什么是 Gunicorn?二、为什么需要Gunicorn?三、安装Gunicorn四、基本使用启