<%@ 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="查 询 " />&nbsp;&nbsp;&nbsp;
<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;">&nbsp;全部发送</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的简单例子的更多相关文章

  1. Ztree学习(-)简单例子

    https://www.cnblogs.com/shinhwazt/p/5828031.html ztree包:https://pan.baidu.com/s/1vOgGm_elF-lF0VowoHw ...

  2. Hibernate4.2.4入门(一)——环境搭建和简单例子

    一.前言 发下牢骚,这段时间要做项目,又要学框架,搞得都没时间写笔记,但是觉得这知识学过还是要记录下.进入主题了 1.1.Hibernate简介 什么是Hibernate?Hibernate有什么用? ...

  3. AgileEAS.NET SOA 中间件平台.Net Socket通信框架-简单例子-实现简单的服务端客户端消息应答

    一.AgileEAS.NET SOA中间件Socket/Tcp框架介绍 在文章AgileEAS.NET SOA 中间件平台Socket/Tcp通信框架介绍一文之中我们对AgileEAS.NET SOA ...

  4. spring mvc(注解)上传文件的简单例子

    spring mvc(注解)上传文件的简单例子,这有几个需要注意的地方1.form的enctype=”multipart/form-data” 这个是上传文件必须的2.applicationConte ...

  5. ko 简单例子

    Knockout是在下面三个核心功能是建立起来的: 监控属性(Observables)和依赖跟踪(Dependency tracking) 声明式绑定(Declarative bindings) 模板 ...

  6. mysql定时任务简单例子

    mysql定时任务简单例子 ? 1 2 3 4 5 6 7 8 9     如果要每30秒执行以下语句:   [sql] update userinfo set endtime = now() WHE ...

  7. Ztree的简单使用和后台交互的写法(二)

    针对Ztree的简单使用和后台交互的写法(一)中的树进行改进 1.增加节点的权限 由页面的当前用户,决定树的根节点 然后动态获取树的详细节点: 初始化函数为: function init(){ //初 ...

  8. java socket编程开发简单例子 与 nio非阻塞通道

    基本socket编程 1.以下只是简单例子,没有用多线程处理,只能一发一收(由于scan.nextLine()线程会进入等待状态),使用时可以根据具体项目功能进行优化处理 2.以下代码使用了1.8新特 ...

  9. 一个简单例子:贫血模型or领域模型

    转:一个简单例子:贫血模型or领域模型 贫血模型 我们首先用贫血模型来实现.所谓贫血模型就是模型对象之间存在完整的关联(可能存在多余的关联),但是对象除了get和set方外外几乎就没有其它的方法,整个 ...

随机推荐

  1. VLAN入门知识

    版权声明: https://blog.csdn.net/xinyuan510214/article/details/52020987 本文乃fireaxe原创,使用GPL发布,可以自由拷贝,转载.但转 ...

  2. Istio如何使用相同的端口访问网格外服务

    1.1.背景 写这篇文章的目的是为了说明以下问题:如何使用TCP协议相同的端口访问网格外多个服务? 这是最近直播的时候有一个同学提出的,当时我没有完全明白,“访问多集群” 的意思.后来仔细思考了一下, ...

  3. HDU 6081 度度熊的王国战略(全局最小割Stoer-Wagner算法)

    Problem Description 度度熊国王率领着喵哈哈族的勇士,准备进攻哗啦啦族. 哗啦啦族是一个强悍的民族,里面有充满智慧的谋士,拥有无穷力量的战士. 所以这一场战争,将会十分艰难. 为了更 ...

  4. thinkphp在wamp 配置去掉url中index.php方法

    http://blog.csdn.net/youmypig/article/details/45008971

  5. Scrum Meeting NO.3

    Scrum Meeting No.2 1.会议内容 之前的两天无法登录TFS服务器来生成燃尽图,再加上这种方式只能生成当日的燃尽图,我们决定改用excel生成燃尽图.(作为一个渣渣pm,我用了一下午才 ...

  6. request.getParameter中文乱码问题解决办法

    new String(request.getParameter("pageNo").getBytes("ISO-8859-1"),"UTF-8&quo ...

  7. python 安装多个包/pip用法

    列出已安装的包 pip freeze or pip list 导出requirements.txt pip freeze > <目录>/requirements.txt 安装包 在线 ...

  8. freopen stdout 真的更快?

    freopen stdout 真的更快? 在一次数独作业中,我发现大部分同学提交的代码中都使用 freopen 来将 stdout 重新指向目标文件进行文件输出操作.我感到十分好奇,关于 freope ...

  9. Beta阶段敏捷冲刺总结

    设想和目标 1. 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述?       在最开始的时候我们就是为了解决集美大学计算机工程学院网页没有搜索引擎的问题.因为没有搜 ...

  10. [转帖]Kubernetes及容器编排的总体介绍【译】

    Kubernetes及容器编排的总体介绍[译] 翻译自The New Stack<Kubernetes 生态环境>作者:JANAKIRAM MSV和 KRISHNAN SUBRAMANIA ...