zTree的简单例子
<%@ page language="java" pageEncoding="UTF-8" %>
<%@ include file="/WEB-INF/views/include/taglib.jsp"%>
<%@include file="/WEB-INF/views/include/message.jsp"%>
<html>
<head>
<link href="${ctxStatic}/css/login.css" type="text/css" rel="stylesheet"/>
<link rel="stylesheet" type="text/css" href="${ctxStatic}/css/sysStyle.css">
<link rel="stylesheet" href="${ctxStatic}/jquery-ztree/3.5.12/css/zTreeStyle/zTreeStyle.css" type="text/css">
<link type="text/css" rel="stylesheet" href="${ctxStatic}/css/treeSelect.css" />
<script type="text/javascript" src="${ctxStatic}/jquery/jquery-1.9.1.min.js"></script>
<script type="text/javascript" src="${ctxStatic}/js/list.js"></script> <script type="text/javascript" src="${ctxStatic}/My97DatePicker/WdatePicker.js"></script>
<link rel="stylesheet" type="text/css" href="${ctxStatic}/My97DatePicker/skin/WdatePicker.css">
<script type="text/javascript" src="${ctxStatic}/jquery-ztree/3.5.12/js/jquery.ztree.core-3.5.js"></script>
<c:set var="zNodes" value="${zNodes}"/>
<style type="text/css">
.model{height: 300px;}
.model_left{float:left;}
.model_center textarea{width:60%; height:200px;float: left;} </style>
<script type="text/javascript"> //点击树状模板节点,获取模板内容
var getContent=function(id){
var content="";
$.ajax({
url: "${ctx}/sms-send/fortuneGroupSendCtrl/findContent?id="+id,
type:"POST",
async: false,
success: function(data) {
if(data.content!=null&data.content!=""){
content = data.content;
document.getElementById("code").value=data.code;
}
}
});
return content;
} //重置
function resetForm(){ $("#q_chName").val("");
$("#q_cusStatusCD").val("");
$("#q_cusDeptName").val("");
$("#q_cusManagerName").val("");
}
var myTreeSetting = {
data: {
key: {
title:"t"
},
simpleData: {
enable: true
}
},
callback: {
beforeClick: beforeClick,
onClick: onClick
}
};
var tem="<c:out value='${zNodes}' escapeXml='false'/>";
var array=eval(tem ); function beforeClick(treeId, treeNode, clickFlag) {
return (treeNode.click != false);
}
function onClick(event, treeId, treeNode, clickFlag) {
//获取对应的模板内容
var content = getContent(treeNode.id);
document.getElementById("log").value=content;
}
$(document).ready(function(){
$.fn.zTree.init($("#mytree"), myTreeSetting,array);
}); //短信发送
function send(){ var content =$("#log").val();
var code =$("#code").val();
var cols=document.getElementsByName('cols');
if(null==cols||cols.length==0){
alert('当前没有记录,无法进行操作!');
return;
}
var flag='0';
var ids='';
var chk='0';
var allsend =document.getElementById("allsend");
// var allsend =$("#allsend");
if(allsend.checked){
chk='1';
flag='1';
} for(var i=0;null!=cols&&i<cols.length;i++){ if(cols[i].checked){
flag='1';
ids+=cols[i].value+',';
}
} if('0'==flag){
alert('请至少选择一条记录!');
return;
} if(""==content){
alert("发送内容不能为空");
return;
}
if(""==code){
alert("发送内容不能为空");
return;
}
if(confirm("确定发送吗?")) {
$.ajax({
url: "${ctx}/sms-send/fortuneGroupSendCtrl/fortuneGroupSend.do",
type:"post",
data:{"chk":chk,"ids":ids,"code":code,"q_id":$("#q_id").val(),"q_chName":$("#q_chName").val(),"q_idNumber":$("#q_idNumber").val(),"q_cusStatusCD":$("#q_cusStatusCD").val(),"q_cusManagerName":$("#q_cusManagerName").val(),"q_cusDeptName":$("#q_cusDeptName").val(),"q_guishuStatus":$("#q_guishuStatus").val(),"q_dept":$("#q_dept").val(),"q_sourceType":$("#q_sourceType").val()},
success: function(map) {
if (map.success) {
$("#message").text("发送成功 "+map.count+" 条短信");
}else {
$("#message").text("发送失败");
}
}
});
return true;
}else{
return false;
}
} //清空全选按钮
function clean(){
var all= document.getElementById("checkbox");
if(all.checked=true){
all.checked=false;
}
} </script>
</head>
<body> <table>
<tr>
<td rowspan="3" height="100%" valign="top">
<div>
<h3 class="lanmu_div">高级查询</h3> <div class="list_cont">
<form name="mainForm" id="queryMainForm" method="post" action="${ctx}/sms-send/fortuneGroupSendCtrl/query.do">
<div class="list_cont" style="padding-bottom:20px;">
<dl>
<dt>客户姓名:</dt>
<dd>
<input class="q_name" type="text" id="q_chName" name="q_chName" value="${baseQueryBean.q_chName }">
<input type="hidden" name="act" value="query">
<input type="hidden" name="busiId" value="searchSmsFortuneInfoSend">
<c:choose>
<c:when test="${fns:getUser().isCusManager==1}">
<input type="hidden" name="q_id" id="q_id" value="${fns:getUser().id}">
</c:when>
<c:otherwise>
<input type="hidden" name="q_dept" id="q_dept" value="${fns:getUser().deptId}">
</c:otherwise>
</c:choose>
<input type="hidden" id="moduleId" name="q_modOperateId" value="${baseQueryBean.q_modOperateId}">
</dd>
</dl>
<dl>
<dt>所属部门:</dt>
<dd>
<input class="q_name" type="text" id="q_cusDeptName" name="q_cusDeptName" value="${baseQueryBean.q_cusDeptName }" >
</dd>
</dl>
<dl>
<dt>客户类型:</dt>
<dd>
<exp:select cssClass="q_name" code="CUS_TYPE_CD" name="q_cusStatusCD" id="q_cusStatusCD" value="${baseQueryBean.q_cusStatusCD }" headerKey="" headerValue="--请选择--"/>
</dd>
</dl>
<dl>
<dt>客户经理:</dt>
<dd>
<input class="q_name" type="text" id="q_cusManagerName" name="q_cusManagerName" value="${baseQueryBean.q_cusManagerName }">
</dd>
</dl>
<dl>
<dt>数据来源:</dt>
<dd><exp:select code="SOURCE_TYPE" name="q_sourceType" id="q_sourceType" value="${baseQueryBean.q_sourceType}" headerValue="---请选择---" headerKey="" cssClass="q_name"></exp:select></dd>
</dl>
<div align="center">
<dl>
<dd>
<input type="submit" class="btn" id="searchButton" value="查 询 " />
<input type="button" class="btn" id="searchButton" value="重置 " onclick="resetForm();"/>
</dd>
</dl>
</div>
</div> </form>
</div>
</div>
<div>
<h3 class="lanmu_div">模块列表</h3>
<div class="list_cont">
<table class="adv_query_list">
<tr class="search_title_show">
<td align="center" bgcolor="#C7D6EA" class="table_head"><input type="checkbox" id="checkbox" onclick="checkAll(this);"/></td>
<td align="center">序号</td>
<td align="center">客户编号</td>
<td align="center">客户姓名</td>
<td align="center">手机号</td>
<td align="center">客户类型</td>
<td align="center">客户经理</td>
<td align="center">创建时间</td>
<td align="center">所属部门</td>
<td align="center">创建人</td>
<td align="center">数据来源</td>
</tr>
<c:forEach items="${pageInfo.searchResult}" var="it">
<tr align="center" class="tdbg">
<td><input type="checkbox" id="cols" name="cols" value="${it[0] }" onclick="clean();"/></td>
<td>${it[11] }</td>
<td>${it[1] }</td>
<td><a href="${ctx}/crm-server/fortuneCusCtrl/queryCusDetail.do?id=${it[0] }">${it[2] }</a>
</td>
<td>${fn:substring(it[3],0,7) }****</td>
<td>${(it[4] eq 2 )?'储备客户':'客户'}</td>
<td>${it[5] }</td>
<td>${it[6] }</td>
<td>${it[7] }</td>
<td>${it[8] }</td>
<td>${(it[10] eq 1 )?'系统':'导入'}</td>
</tr>
</c:forEach>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>${pagination}</td>
</tr>
</table> </div>
</div>
</td>
</tr>
</table>
<h3 class="lanmu_div">发送短信</h3>
<span style="color: red; font-size: 20" id="message"></span>
<div class="model">
<div class="model_left">
<ul id="mytree" class="ztree" style="margin-top: 0px;"></ul>
</div>
<div class="model_center">
<input id = "code" type="hidden" value="" />
<textarea id="log" wrap="virtual" readonly="readonly" ></textarea>
</div>
<div class="list_cont">
<div>
<dl>
<dd style="margin-left: 5px; margin-top: 140px;" >
<input id="allsend" type="checkbox" style="float:left;margin-top:2px "/><span style="float:left;"> 全部发送</span>
</dd>
</dl>
</div>
<div>
<dl>
<dd>
<input value="发送短信" type="button" onclick="send();" class="btn" />
</dd>
</dl>
</div>
</div>
</div>
</body>
</html>
上面对应的jsp内容,下面是对应的service查询数据源
/**
* 获取所有模板及末班类型,以树形结构显示
*/
@SuppressWarnings({"unchecked", "rawtypes" })
public String getTree()
{
StringBuilder str = new StringBuilder();
str.append("[ ");
//获取所有的模板类型
List list1= jdbcDao.queryData("select t.item_name ,t.item_code,t.id from UC_TYPE_DICTIONARY t where t. type_code = 'SMS_TEMPLATE_TYPE_CD'");
for(int i =0;i<list1.size();i++){
List list = (List) list1.get(i);
//获取此类型对应的所有的模板
List lst1 = jdbcDao.queryData("select t.id,t.name from SMS_TEMPLATE t where t.param_count = 0 and t.type = "+list.get(1));
str.append("{ id:"+"'"+ list.get(2).toString()+"'");
str.append(", name:");
str.append("'"+list.get(0).toString()+"'");
if(lst1.size()==0){
if(i==(list1.size()-1)){
str.append(", isParent:true}");
}else{
str.append(", isParent:true},");
}
}else{
str.append(", children:["); //获取模板类型的数量
//int t = jdbcDao.getTotalCount("select t.id from UC_TYPE_DICTIONARY t where t. type_code = 'SMS_TEMPLATE_TYPE_CD'");
for(int k =0;k<lst1.size();k++){
List lst= (List) lst1.get(k);
str.append("{ id:");
str.append("'"+lst.get(0).toString()+"'");
str.append(", name:");
str.append("'"+lst.get(1)+"'"); if(i==(list1.size()-1) && k==(lst1.size()-1)){
str.append("}");
}else{
str.append("},");
}
}
if(i==(list1.size()-1)){
str.append("]}");
}else{
str.append("]},");
}
} }
str.append(" ]");
return str.toString();
} /**
* 获取短信模板的内容
*/
@SuppressWarnings("rawtypes")
@Override
public List<String> findContent(String id) {
List<String> templateList = new ArrayList<String>();
List list= jdbcDao.queryData("select t.content,t.code from SMS_TEMPLATE t where t.id= "+id);
for(int i = 0;i<list.size();i++){
List lst = (List) list.get(i);
templateList.add(lst.get(0).toString());
templateList.add(lst.get(1).toString());
}
return templateList;
}
这个是控制层,controller层
完事了
@RequestMapping(value = "query")
public String query(@ModelAttribute SmsFortuneInfoCtrlQueryVO smsFortuneCtrlQueryVO, HttpServletRequest request, Model model) throws Exception{
CommonQueryUtils utils=new CommonQueryUtils();
utils.execute(smsFortuneCtrlQueryVO,model);
String zNodes= fortuneGroupSendService.getTree();
model.addAttribute("zNodes", zNodes);
return "sms-server/send/fortuneGroupSend_list";
} /*
* 获取短信模板的内容
*/
@RequestMapping(value = "findContent")
@ResponseBody
public Map<String, Object> findContent(@RequestParam String id,Model model){
List<String> templateList = fortuneGroupSendService.findContent(id);
Map<String, Object> map = new HashMap<String, Object>();
if(templateList!=null&templateList.size()>0){
map.put("content", templateList.get(0).toString());
map.put("code", templateList.get(1).toString());
}
return map;
}
zTree的简单例子的更多相关文章
- Ztree学习(-)简单例子
https://www.cnblogs.com/shinhwazt/p/5828031.html ztree包:https://pan.baidu.com/s/1vOgGm_elF-lF0VowoHw ...
- Hibernate4.2.4入门(一)——环境搭建和简单例子
一.前言 发下牢骚,这段时间要做项目,又要学框架,搞得都没时间写笔记,但是觉得这知识学过还是要记录下.进入主题了 1.1.Hibernate简介 什么是Hibernate?Hibernate有什么用? ...
- AgileEAS.NET SOA 中间件平台.Net Socket通信框架-简单例子-实现简单的服务端客户端消息应答
一.AgileEAS.NET SOA中间件Socket/Tcp框架介绍 在文章AgileEAS.NET SOA 中间件平台Socket/Tcp通信框架介绍一文之中我们对AgileEAS.NET SOA ...
- spring mvc(注解)上传文件的简单例子
spring mvc(注解)上传文件的简单例子,这有几个需要注意的地方1.form的enctype=”multipart/form-data” 这个是上传文件必须的2.applicationConte ...
- ko 简单例子
Knockout是在下面三个核心功能是建立起来的: 监控属性(Observables)和依赖跟踪(Dependency tracking) 声明式绑定(Declarative bindings) 模板 ...
- mysql定时任务简单例子
mysql定时任务简单例子 ? 1 2 3 4 5 6 7 8 9 如果要每30秒执行以下语句: [sql] update userinfo set endtime = now() WHE ...
- Ztree的简单使用和后台交互的写法(二)
针对Ztree的简单使用和后台交互的写法(一)中的树进行改进 1.增加节点的权限 由页面的当前用户,决定树的根节点 然后动态获取树的详细节点: 初始化函数为: function init(){ //初 ...
- java socket编程开发简单例子 与 nio非阻塞通道
基本socket编程 1.以下只是简单例子,没有用多线程处理,只能一发一收(由于scan.nextLine()线程会进入等待状态),使用时可以根据具体项目功能进行优化处理 2.以下代码使用了1.8新特 ...
- 一个简单例子:贫血模型or领域模型
转:一个简单例子:贫血模型or领域模型 贫血模型 我们首先用贫血模型来实现.所谓贫血模型就是模型对象之间存在完整的关联(可能存在多余的关联),但是对象除了get和set方外外几乎就没有其它的方法,整个 ...
随机推荐
- 管理idea Open Recent
在微服务开发过程中,随着服务的增加,日常需要在各个服务之间切换,这样idea 的 Open Recent 功能就显得特别有用,但是过多的最近打开记录中包括已经删除的工程或者无用的工程导致影响开发时切换 ...
- 腾讯/阿里/百度 BAT人才体系的职位层级、薪酬、晋升标准
互联网圈有这么一句话:百度的技术,阿里的运营,腾讯的产品.那么代表互联网三座大山的BAT,内部人才体系有什么区别呢?今天老李就带领大家看一看~ ★ 腾讯 ★ 1. 职级 腾讯职级体系分6级,最低1 ...
- LeetCode-765.情侣牵手
N 对情侣坐在连续排列的 2N 个座位上,想要牵到对方的手. 计算最少交换座位的次数,以便每对情侣可以并肩坐在一起. 一次交换可选择任意两人,让他们站起来交换座位. 人和座位用 0 到 2N-1 的整 ...
- Delphi中 弹出框的用法
Delphi中的提示框有 Application.MessageBox ShowMessage messagedlg 个人认为 相对来说 Application.MessageBox 更加灵活 也相 ...
- PAT甲题题解-1003. Emergency (25)-最短路径+路径数目
给出n个城市,m条边,起始点c1和目的点c2接下来给出n个城市的队伍数以及m条双向边问你求c1到c2的所有最短路径数目,以及其中经过的最多队伍数 先最短路dijkstra,同时建立vector数组pr ...
- PAT甲题题解-1067. Sort with Swap(0,*) (25)-贪心算法
贪心算法 次数最少的方法,即:1.每次都将0与应该放置在0位置的数字交换即可.2.如果0处在自己位置上,那么随便与一个不处在自己位置上的数交换,重复上一步即可.拿样例举例: 0 1 2 3 4 5 ...
- Scrum立会报告+燃尽图(十二月十一日总第四十二次):贡献分配和收集用户报告
此作业要求参见:https://edu.cnblogs.com/campus/nenu/2018fall/homework/2484 项目地址:https://git.coding.net/zhang ...
- (Alpha)Let's-展示博客
Let's Alpha 项目答辩 ·选题由来 手机端——用户相对较多,使用环境限制相对宽松 手机游戏?校园p2p应用?线下交流!(滴滴打水?) 模式的选择:发起——加入活动 ...
- d3 数学方法(伪随机数生成器 )
一.正态(高斯)分布(normal (Gaussian) distribution)的随机数 /* var nomarlRandmo = d3.random.normal(); console.log ...
- Jenkins之自动构建
修改job的配置: Build periodically:不管版本是否修改,都会执行: Poll SCM:只有当版本有修改才会执行.