first commit

This commit is contained in:
2025-02-20 14:59:35 +08:00
parent d7be84fac6
commit d4a3bb8ffc
2541 changed files with 336536 additions and 0 deletions
@@ -0,0 +1,71 @@
<script>
function doDelete()
{
var avatarId = Z.FM.getChecked("avatarId");
Z.confirm("确定删除该头像吗?", function()
{
var ajax = new Z.Ajax();
ajax.setContextPath("${context.getContextPath()}");
ajax.setClassName("ZmrAvatarPresenter");
ajax.setMethodName("doDelete");
ajax.addParam(avatarId);
ajax.setFailureAlert();
ajax.setSuccessAlertReload("删除成功");
ajax.execute();
});
}
</script>
${zhiqim_manager_breadcrumb("系统头像")}
${zhiqim_manager_content()}
<#-- 导航 -->
<div class="z-tabnav-main z-mg-b20 ${zmr_color_class}">
<nav>
<ul>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/menu.htm")><li onclick="Z.L.href('menu.htm');">系统菜单</li></#if>
<li class="z-active">系统头像</li>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/config.htm")><li onclick="Z.L.href('config.htm');">系统配置</li></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/cache.htm")><li onclick="Z.L.href('cache.htm');">系统缓存</li></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/param.htm")><li onclick="Z.L.href('param.htm');">系统参数</li></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/paramOperator.htm")><li onclick="Z.L.href('paramOperator.htm');">操作员参数</li></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/themeIndex.htm")><li onclick="Z.L.href('themeIndex.htm');">首页主题</li></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/themeMain.htm")><li onclick="Z.L.href('themeMain.htm');">主页主题</li></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/keys.htm")><li onclick="Z.L.href('keys.htm');">密钥生成</li></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/process.htm")><li onclick="Z.L.href('process.htm');">进程信息</li></#if>
</ul>
</nav>
</div>
<#-- 操作 -->
<#if ZmrAdminRule.check(request)>
<div class="z-float-right z-mg-b5">
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/avatarAdd.htm")><button class="z-button ${zmr_color_class}" onclick="Z.L.href('avatarAdd.htm');"><i class="z-font z-add"></i>增加系统头像</button></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/avatarModify.htm")><button class="z-button ${zmr_color_class}" onclick="Z.L.check('avatarModify.htm', 'avatarId');"><i class="z-font z-modify"></i>修改系统头像</button></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/avatarDelete.htm")><button class="z-button z-red" onclick="doDelete();"><i class="z-font z-delete"></i>删除系统头像</button></#if>
</div>
</#if>
<#-- 列表 -->
<table class="z-table z-bordered z-pd5 z-bg-white z-text-center">
<tr class="z-h40" bgcolor="${zmr_thead_bgcolor}">
<td width="50">选择</td>
<td width="28%">头像<span class="z-samp">(50*50)</span></td>
<td width="30%">头像<span class="z-samp">(100*100)</span></td>
<td width="*">头像<span class="z-samp">(150*150)</span></td>
</tr>
<#for item : result.list()>
<tr class="z-pointer" ${zhiqim_manager_tr_onmouse()} ${zhiqim_manager_tr_click_radio()}>
<td>
<#if ZmrAdminRule.check(request)>
<input name="avatarId" type="radio" data-role="z-radio" data-class="${zmr_color_class}" value="${item.getAvatarId()}">
</#if>
</td>
<td><img src="${sessionUser.getAvatarUrl(item.getAvatarId(), 50)}"></td>
<td><img src="${sessionUser.getAvatarUrl(item.getAvatarId(), 100)}"></td>
<td><img src="${sessionUser.getAvatarUrl(item.getAvatarId(), 150)}"></td>
</tr>
</#for>
${zhiqim_manager_tr_no_record(result, 4, "暂时没有系统头像信息")}
</table>
${zhiqim_manager_paging(result)}
${zhiqim_manager_content_end()}
@@ -0,0 +1,33 @@
<#var zhiqim_image_clipper.js = new ZmrCdnRuntime(context, "/ztmpl/zhiqim_manager/zhiqim_image_clipper.js")/>
${zhiqim_manager_history("avatar.htm")}
${request.getValidateScript()}
${Scripts.src(zhiqim_image_clipper.js)}
<script>
Z.onload(function()
{
//初始化上传头像
var clipper = new Z.ImageClipper();
clipper.elem = "clipper";
clipper.img = "${context.getRootPath("/ztmpl/zhiqim_manager/zhiqim_image_clipper_default.jpg")}";
clipper.save = function()
{
var ajax = new Z.Ajax();
ajax.setContextPath("${context.getContextPath()}");
ajax.setClassName("ZmrAvatarPresenter");
ajax.setMethodName("doInsert");
ajax.addParam(this.getDataURL());
ajax.setFailureAlert();
ajax.setSuccessAlertLocation("增加成功", "avatar.htm");
ajax.execute();
};
clipper.execute();
});
</script>
${zhiqim_manager_breadcrumb_parent("avatar.htm", "系统头像", "增加系统头像")}
${zhiqim_manager_content()}
${zhiqim_manager_title("增加系统头像")}
<div class="z-w100p z-bd z-pd20 z-bg-white">
<div id="clipper"></div>
</div>
${zhiqim_manager_return()}
${zhiqim_manager_content_end()}
@@ -0,0 +1,35 @@
<#var zhiqim_image_clipper.js = new ZmrCdnRuntime(context, "/ztmpl/zhiqim_manager/zhiqim_image_clipper.js")/>
${zhiqim_manager_history("avatar.htm")}
${request.getValidateScript()}
${Scripts.src(zhiqim_image_clipper.js)}
<script>
Z.onload(function()
{
//初始化上传头像
var clipper = new Z.ImageClipper();
clipper.elem = "clipper";
clipper.img = "${context.getRootPath("/ztmpl/zhiqim_manager/zhiqim_image_clipper_default.jpg")}";
clipper.save = function()
{
var ajax = new Z.Ajax();
ajax.setContextPath("${context.getContextPath()}");
ajax.setClassName("ZmrAvatarPresenter");
ajax.setMethodName("doUpdate");
ajax.addParam("${avatarId}");
ajax.addParam(this.getDataURL());
ajax.setFailureAlert();
ajax.setSuccessAlertLocation("修改成功", "avatar.htm");
ajax.execute();
};
clipper.execute();
});
</script>
${zhiqim_manager_breadcrumb_parent("avatar.htm" "系统头像" "修改系统头像")}
${zhiqim_manager_content()}
${zhiqim_manager_title("修改系统头像")}
<div class="z-w100p z-bd z-pd20 z-bg-white">
<div id="clipper"></div>
</div>
${zhiqim_manager_return()}
</form>
${zhiqim_manager_content_end()}
@@ -0,0 +1,54 @@
${request.getValidateSubmitScript()}
${zhiqim_manager_breadcrumb("系统缓存")}
${zhiqim_manager_content()}
<#-- 导航 -->
<div class="z-tabnav-main z-mg-b20 ${zmr_color_class}">
<nav>
<ul>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/menu.htm")><li onclick="Z.L.href('menu.htm');">系统菜单</li></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/avatar.htm")><li onclick="Z.L.href('avatar.htm');">系统头像</li></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/config.htm")><li onclick="Z.L.href('config.htm');">系统配置</li></#if>
<li class="z-active">系统缓存</li>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/param.htm")><li onclick="Z.L.href('param.htm');">系统参数</li></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/paramOperator.htm")><li onclick="Z.L.href('paramOperator.htm');">操作员参数</li></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/themeIndex.htm")><li onclick="Z.L.href('themeIndex.htm');">首页主题</li></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/themeMain.htm")><li onclick="Z.L.href('themeMain.htm');">主页主题</li></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/keys.htm")><li onclick="Z.L.href('keys.htm');">密钥生成</li></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/process.htm")><li onclick="Z.L.href('process.htm');">进程信息</li></#if>
</ul>
</nav>
</div>
<#-- 列表 -->
<#for server : list>
<#if server.getCacheMap().isEmpty()>
<#continue/>
</#if>
<table class="z-table z-bordered z-pd10 <#if group_index gt 0>z-mg-t10</#if> z-bg-white">
${zhiqim_manager_tr_title(4, "系统缓存["+server.getId()+"]列表")}
<tr class="z-h40" bgcolor="${zmr_thead_bgcolor}">
<td width="20%">表名</td>
<td width="*">对象</td>
<td width="330">定时器</td>
<td width="15%" class="z-text-center">操作</td>
</tr>
${zhiqim_manager_tr_no_record(group, 4, "暂时没有配置信息")}
</table>
<#for item : server.getCacheMap().keySet()>
<form method="post" onsubmit="return false;" data-role="z-call-frame">
<input name="id" type="hidden" value="${server.getId()}">
<input name="className" type="hidden" value="${item.getName()}">
<table class="z-table z-bordered zi-bd-t-none z-h60-tr z-pd10 z-lh150p" bgcolor="${zhiqim_manager_tr_bg(item_index)}">
<tr>
<td width="20%" class="zi-samp">#{server.table().getTable(item).getTable()}</td>
<td width="*" class="zi-samp">#{item.getName()}</td>
<td width="330" class="zi-samp">#{server.getCacheMap().get(item).toString()}</td>
<td width="15%" class="z-text-center"><button type="submit" class="z-button" onclick="submitForm(this.form);">刷新缓存</button></td>
</tr>
</table>
</form>
</#for>
</#for>
${zhiqim_manager_content_end()}
@@ -0,0 +1,66 @@
${request.getValidateSubmitScript()}
${zhiqim_manager_breadcrumb("系统配置")}
${zhiqim_manager_content()}
<#-- 导航 -->
<div class="z-tabnav-main z-mg-b20 ${zmr_color_class}">
<nav>
<ul>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/menu.htm")><li onclick="Z.L.href('menu.htm');">系统菜单</li></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/avatar.htm")><li onclick="Z.L.href('avatar.htm');">系统头像</li></#if>
<li class="z-active">系统配置</li>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/cache.htm")><li onclick="Z.L.href('cache.htm');">系统缓存</li></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/param.htm")><li onclick="Z.L.href('param.htm');">系统参数</li></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/paramOperator.htm")><li onclick="Z.L.href('paramOperator.htm');">操作员参数</li></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/themeIndex.htm")><li onclick="Z.L.href('themeIndex.htm');">首页主题</li></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/themeMain.htm")><li onclick="Z.L.href('themeMain.htm');">主页主题</li></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/keys.htm")><li onclick="Z.L.href('keys.htm');">密钥生成</li></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/process.htm")><li onclick="Z.L.href('process.htm');">进程信息</li></#if>
</ul>
</nav>
</div>
<#-- 列表 -->
<#for group : groupList>
<#if group.isPrivate()>
<#continue/>
</#if>
<table class="z-table z-bordered z-pd10 <#if group_index gt 0>z-mg-t10</#if> z-bg-white">
${zhiqim_manager_tr_title(4, "系统配置["+group.getId()+"]["+group.getDesc()+"]列表")}
<tr class="z-h40" bgcolor="${zmr_thead_bgcolor}">
<td width="20%">配置键</td>
<td width="*">配置值</td>
<td width="10%" class="z-text-center">操作</td>
<td width="30%">配置描述</td>
</tr>
${zhiqim_manager_tr_no_record(group, 4, "暂时没有配置信息")}
</table>
<#for item : group.list()>
<#if item.isPrivate()>
<#continue/>
</#if>
<#if ZmrAdminRule.check(request) && item.isPublic()>
<form method="post" onsubmit="return false;" data-role="z-call-frame">
<input name="groupId" type="hidden" value="${group.getId()}">
<input name="key" type="hidden" value="${item.getKey()}">
</#if>
<table class="z-table z-bordered zi-bd-t-none z-h60-tr z-pd10 z-lh150p" bgcolor="${zhiqim_manager_tr_bg(item_index)}">
<tr>
<td width="20%" class="zi-samp">#{item.getKey()}</td>
<#if ZmrAdminRule.check(request) && item.isPublic()>
<td width="*"><input name="value" class="z-input z-w100p zi-h40 <#if !Validates.isContainMultByteChar(item.getString())>zi-samp</#if> ${zmr_color_class}" value="#{item.getString()}" maxlength="800"></td>
<td width="10%" class="z-text-center"><button type="submit" class="z-button" onclick="submitForm(this.form)">修改</button></td>
<#else>
<td width="*" <#if !Validates.isContainMultByteChar(item.getString())>class="zi-samp"</#if>>#{item.getString()}</td>
<td width="10%" class="z-text-center"><button type="submit" class="z-button" disabled>修改</button></td>
</#if>
<td width="30%">#{item.getDesc()}</td>
</tr>
</table>
<#if ZmrAdminRule.check(request) && item.isPublic()>
</form>
</#if>
</#for>
</#for>
${zhiqim_manager_content_end()}
@@ -0,0 +1,93 @@
<#-- 显示子部门,并递归显示下级子部门 -->
<#function showChildDept(self, parent)>
<tr class="z-h30 z-pointer" ${zhiqim_manager_tr_onmouse()} ${zhiqim_manager_tr_click_radio()}>
<td>
<#if ZmrAdminRule.check(request)>
<input name="deptId" type="radio" data-role="z-radio" data-class="${zmr_color_class}" value="${self.self().getDeptId()}">
</#if>
</td>
<td>${self.self().getDeptId()}</td>
<td align="left" class="zi-pd-l6">
<#var level = self.self().getDeptLevel()/>
<#if level == 0>
<i class="z-ico z-tree z-30 z-normal z-root z-mg-r3"></i>
<#else>
<#for i : 1..(level-1)>
<#if self.isLastNode(level-i)>
<i class="z-ico z-tree z-30 z-normal z-blank"></i>
<#else>
<i class="z-ico z-tree z-30 z-normal z-vertline"></i>
</#if>
</#for>
<#if self.isLastNode()>
<i class="z-ico z-tree z-30 z-normal z-lastnode"></i>
<#else>
<i class="z-ico z-tree z-30 z-normal z-node"></i>
</#if>
<i class="z-ico z-tree z-item z-mg-r3"></i>
</#if>
#{self.self().getDeptName()}
</td>
<td><#if self.self().getDeptStatus() == 0>正常<#else><span class="z-color-red">停用</span></#if></td>
<td>${self.self().getDeptLevel()}</td>
<td>${self.self().getDeptManager()}</td>
<td>${self.self().getDeptSubManager()}</td>
</tr>
<#for child : self.children()>
${showChildDept(child, self)}
</#for>
</#function>
${zhiqim_manager_breadcrumb("部门管理")}
${zhiqim_manager_content()}
<#-- 导航 -->
<div class="z-tabnav-main z-mg-b20 ${zmr_color_class}">
<nav>
<ul>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/org.htm")><li onclick="Z.L.href('org.htm');">组织管理</li></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/orgRule.htm")><li onclick="Z.L.href('orgRule.htm');">组织权限</li></#if>
<li class="z-active">部门管理</li>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/deptOperator.htm")><li onclick="Z.L.href('deptOperator.htm');">部门成员</li></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/deptRule.htm")><li onclick="Z.L.href('deptRule.htm');">部门权限</li></#if>
</ul>
<div class="z-float-right z-mg-t10 z-mg-r5">
<#if ZmrAdminRule.check(request)>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/deptAdd.htm")><button class="z-button ${zmr_color_class}" onclick="Z.L.check('deptAdd.htm', 'deptId');"><i class="z-font z-add"></i>增加下级部门</button></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/deptModify.htm")><button class="z-button ${zmr_color_class}" onclick="Z.L.check('deptModify.htm', 'deptId');"><i class="z-font z-modify"></i>修改部门</button></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/deptDelete.htm")><button class="z-button z-red" onclick="Z.L.confirm('deptDelete.htm', '确认要删除该部门?', 'deptId', zCallFrame);"><i class="z-font z-delete"></i>删除部门</button></#if>
</#if>
</div>
</nav>
</div>
<#-- 列表 -->
<table class="z-table z-bordered z-h30-tr z-text-center z-bg-white">
<tr class="zi-h40" bgcolor="${zmr_thead_bgcolor}">
<td width="50">选择</td>
<td width="200">部门编号</td>
<td width="*">部门名称</td>
<td width="10%">部门状态</td>
<td width="10%">部门级别</td>
<td width="10%">部门负责人</td>
<td width="15%">部门副负责人</td>
</tr>
<#if size == 0>
${zhiqim_manager_no_record(6, "暂时没有部门信息")}
<#else>
<tr class="z-pointer" ${zhiqim_manager_tr_onmouse()} ${zhiqim_manager_tr_click_radio()}>
<td><#if ZmrAdminRule.check(request)><input name="deptId" type="radio" data-role="z-radio" data-class="${zmr_color_class}" value="${tree.self().getDeptId()}"></#if></td>
<td>${tree.self().getDeptId()}</td>
<td align="left" class="zi-pd-l6 <#if !tree.hasChildren()>zi-pd4</#if>"><i class="z-ico z-tree z-normal <#if tree.hasChildren()>z-30 z-root<#else>zi-h22</#if> z-mg-r3"></i> #{tree.self().getDeptName()}</td>
<td><#if tree.self().getDeptStatus() == 0>正常<#else><span class="z-color-red">停用</span></#if></td>
<td>${tree.self().getDeptLevel()}</td>
<td>${tree.self().getDeptManager()}</td>
<td>${tree.self().getDeptSubManager()}</td>
</tr>
<#for child : tree.children()>
${showChildDept(child, tree)}
</#for>
</#if>
</table>
${zhiqim_manager_list(size)}
${zhiqim_manager_content_end()}
@@ -0,0 +1,77 @@
${Scripts.onload("document.theForm.deptName.focus();")}
${zhiqim_manager_history("dept.htm")}
${request.getValidateScript()}
<script>
function doSelectorDialog(orgId)
{//弹出操作员选择框
var dialog = new Z.Dialog();
dialog.title = "选择操作员";
dialog.url = "operatorSelector.htm?orgId="+orgId;
dialog.width = 392;
dialog.height = 423;
dialog.fixed = true;
dialog.execute();
}
function doSelectorCallback(operatorCode)
{//选择操作员回调
document.theForm.deptManager.value = operatorCode;
}
function doOperatorsSelectorDialog(orgId)
{//弹出操作员多选框
var dialog = new Z.Dialog();
dialog.title = "选择操作员";
dialog.url = "operatorsSelector.htm?orgId="+orgId;
dialog.width = 392;
dialog.height = 423;
dialog.fixed = true;
dialog.execute();
}
function doOperatorsSelectorCallback(operatorCodes)
{//多选选操作员回调
document.theForm.deptSubManager.value = operatorCodes;
}
</script>
${zhiqim_manager_breadcrumb_parent("dept.htm" "部门管理" "增加部门")}
${zhiqim_manager_content()}
<form name="theForm" method="post" action="deptInsert.htm" onsubmit="return validateForm(this);" data-role="z-call-frame">
<input name="deptId" type="hidden" value="${Ids.longId13()}">
<input name="parentId" type="hidden" value="${parent.getDeptId()}">
<input name="orgId" type="hidden" value="${parent.getOrgId()}">
<table class="z-table z-bordered z-h50-tr z-pd10 z-lh150p z-bg-white">
<tr class="zi-h40 z-bg-gray z-bold">
<td colspan="2">增加部门</td>
</tr>
<tr>
<td width="40%">上级部门:<span class="z-color-999">(请选择)</span></td>
<td width="*">${parent.getDeptName()}</td>
</tr>
<tr>
<td>部门名称:<span class="z-color-999">2-16位)</span></td>
<td><input name="deptName" class="z-input z-w300 ${zmr_color_class}" maxlength="16"><span class="z-color-red">&nbsp;*</span></td>
</tr>
<tr>
<td>部门状态:<span class="z-color-999">(正常|停用)</span></td>
<td><select name="deptStatus" class="z-select z-w300" data-role="z-select" data-class="${zmr_color_class}"><option value="0">正常</option><option value="1">停用</option></select><span class="z-color-red">&nbsp;*</span></td>
</tr>
<tr>
<td>部门排序数:<span class="z-color-999">(必须是[0, 999999]范围的非负整数)</span></td>
<td><input name="deptSeq" class="z-input z-w300 ${zmr_color_class}" data-options="type:Integer;" value="100" maxlength="6"><span class="z-color-red">&nbsp;*</span></td>
</tr>
<tr>
<td>部门负责人:</td>
<td><input name="deptManager" class="z-input z-w130 zi-shadow-none" placeholder="请点按钮选择" readonly><button type="button" class="z-button z-mg-l10 ${zmr_color_class}" onclick="doSelectorDialog(${parent.getOrgId()});"><i class="z-font z-add"></i>选择操作员</button><button type="button" class="z-button z-mg-l3" onclick="doSelectorCallback('');">清除</button></td>
</tr>
<tr>
<td>部门副负责人:</td>
<td><input name="deptSubManager" class="z-input z-w130 zi-shadow-none" placeholder="请点按钮选择" readonly><button type="button" class="z-button z-mg-l10 ${zmr_color_class}" onclick="doOperatorsSelectorDialog(${parent.getOrgId()});"><i class="z-font z-add"></i>选择操作员</button><button type="button" class="z-button z-mg-l3" onclick="doOperatorsSelectorCallback('');">清除</button></td>
</tr>
<tr>
<td>部门描述:<span class="z-color-999">(不能超过100个汉字)</span></td>
<td><textarea name="deptDesc" class="z-textarea z-w300 z-h120 ${zmr_color_class}" maxlength="100"></textarea></td>
</tr>
</table>
${zhiqim_manager_submit()}
</form>
${zhiqim_manager_content_end()}
@@ -0,0 +1,79 @@
${zhiqim_manager_history("dept.htm")}
${request.getValidateScript()}
<script>
function doSelectorDialog(orgId)
{//弹出操作员选择框
var dialog = new Z.Dialog();
dialog.title = "选择操作员";
dialog.url = "operatorSelector.htm?orgId="+orgId;
dialog.width = 392;
dialog.height = 423;
dialog.fixed = true;
dialog.scroll = true;
dialog.execute();
}
function doSelectorCallback(operatorCode)
{//选择操作员回调
document.theForm.deptManager.value = operatorCode;
}
function doOperatorsSelectorDialog(orgId)
{//弹出操作员多选框
var dialog = new Z.Dialog();
dialog.title = "选择操作员";
dialog.url = "operatorsSelector.htm?orgId="+orgId;
dialog.width = 392;
dialog.height = 423;
dialog.fixed = true;
dialog.execute();
}
function doOperatorsSelectorCallback(operatorCodes)
{//多选选操作员回调
document.theForm.deptSubManager.value = operatorCodes;
}
</script>
${zhiqim_manager_breadcrumb_parent("dept.htm" "部门管理" "修改部门")}
${zhiqim_manager_content()}
<form name="theForm" method="post" action="deptUpdate.htm" onsubmit="return validateForm(this);" data-role="z-call-frame">
<input name="deptId" type="hidden" value="${item.getDeptId()}">
<input name="parentId" type="hidden" value="${item.getParentId()}">
<input name="deptLevel" type="hidden" value="${item.getDeptLevel()}">
<input name="deptParentAll" type="hidden" value="${item.getDeptParentAll()}">
<input name="orgId" type="hidden" value="${item.getOrgId()}">
<table class="z-table z-bordered z-h50-tr z-pd10 z-lh150p z-bg-white">
<tr class="zi-h40 z-bg-gray z-bold">
<td colspan="2">修改部门</td>
</tr>
<tr>
<td width="40%">部门编号:<span class="z-color-999">(由不定长6位字母或数字组合)</span></td>
<td width="*">#{item.getDeptId()}</td>
</tr>
<tr>
<td>部门名称:<span class="z-color-999">(不能超过32个汉字)</span></td>
<td><input name="deptName" class="z-input z-w300 ${zmr_color_class}" value="#{item.getDeptName()}" maxlength="32"><span class="z-color-red">&nbsp;*</span></td>
</tr>
<tr>
<td>部门状态:<span class="z-color-999">(正常|停用)</span></td>
<td><select name="deptStatus" class="z-select z-w300" data-role="z-select" data-class="${zmr_color_class}"><option value="0"<#if item.getDeptStatus()==0> selected</#if>>正常</option><option value="1"<#if item.getDeptStatus()==1> selected</#if>>停用</option></select><span class="z-color-red">&nbsp;*</span></td>
</tr>
<tr>
<td>部门排序数:<span class="z-color-999">(必须是[0, 999999]范围的非负整数)</span></td>
<td><input name="deptSeq" class="z-input z-w300 ${zmr_color_class}" data-options="type:Integer;" value="#{item.getDeptSeq()}" maxlength="6"><span class="z-color-red">&nbsp;*</span></td>
</tr>
<tr>
<td>部门负责人:</td>
<td><input name="deptManager" class="z-input z-w130 zi-shadow-none" placeholder="请点按钮选择" value="#{item.getDeptManager()}" readonly><button type="button" class="z-button z-mg-l10 ${zmr_color_class}" onclick="doSelectorDialog(${item.getOrgId()});"><i class="z-font z-add"></i>选择操作员</button><button type="button" class="z-button z-mg-l3" onclick="doSelectorCallback('');">清除</button></td>
</tr>
<tr>
<td>部门副负责人:</td>
<td><input name="deptSubManager" class="z-input z-w130 zi-shadow-none" placeholder="请点按钮选择" value="#{item.getDeptSubManager()}" readonly><button type="button" class="z-button z-mg-l10 ${zmr_color_class}" onclick="doOperatorsSelectorDialog(${item.getOrgId()});"><i class="z-font z-add"></i>选择操作员</button><button type="button" class="z-button z-mg-l3" onclick="doOperatorsSelectorCallback('');">清除</button></td>
</tr>
<tr>
<td>部门描述:<span class="z-color-999">(不能超过100个汉字)</span></td>
<td><textarea name="deptDesc" class="z-textarea z-w300 z-h60 ${zmr_color_class}" maxlength="100">#{item.getDeptDesc()}</textarea></td>
</tr>
</table>
${zhiqim_manager_submit()}
</form>
${zhiqim_manager_content_end()}
@@ -0,0 +1,120 @@
<#-- 显示子部门,并递归显示下级子部门 -->
<#function showChildDept(self, parent)>
<tr id="ID#{self.self().getDeptId()}">
<td class="zi-pd-l10">
<#var level = self.self().getDeptLevel()/>
<#for i : 1..(level-1)>
<#if self.isLastNode(level-i)>
<i class="z-ico z-tree z-30 z-normal z-blank"></i>
<#else>
<i class="z-ico z-tree z-30 z-normal z-vertline"></i>
</#if>
</#for>
<#if self.isLastNode()>
<i class="z-ico z-tree z-30 z-normal z-lastnode"></i>
<#else>
<i class="z-ico z-tree z-30 z-normal z-node"></i>
</#if>
<i class="z-ico z-tree z-item z-mg-r3"></i>
<a href="javascript:void(0);" onclick="doSelectDept('#{self.self().getDeptId()}');">#{self.self().getDeptName()}</a>
</td>
</tr>
<#for child : self.children()>
${showChildDept(child, self)}
</#for>
</#function>
<script>
Z.onload(function()
{
doSelectDept(${sessionUser.getSelectedDeptId(tree.self().getDeptId())});
});
function doSelectDept(deptId)
{
var ajax = new Z.Ajax();
ajax.setContextPath("${context.getContextPath()}");
ajax.setClassName("ZmrDeptPresenter");
ajax.setMethodName("doShowDeptOperatorList");
ajax.addParam("deptId", deptId);
ajax.setFailureAlert();
ajax.setSuccess(function()
{
Z("#result").htmlc(this.responseText);
Z("#ID"+deptId).addClass("z-bg-gray").siblings().removeClass("z-bg-gray");
});
ajax.setLoading("result");
ajax.execute();
}
function doSelectorDialog(deptId)
{//显示部门操作员对话框
var dialog = new Z.Dialog();
dialog.title = "成员增加";
dialog.url = "deptOperatorSelector.htm?deptId="+deptId;
dialog.width = 392;
dialog.height = 423;
dialog.fixed = true;
dialog.execute();
}
function doSelectorCallback(deptId, operatorCodes)
{//增加部门操作员
var ajax = new Z.Ajax();
ajax.setContextPath("${context.getContextPath()}");
ajax.setClassName("ZmrDeptPresenter");
ajax.setMethodName("doAddDeptOperator");
ajax.addParam("deptId", deptId);
ajax.addParam("operatorCodes", operatorCodes);
ajax.setFailureAlert();
ajax.setSuccessReload();
ajax.setLoading(document);
ajax.execute();
}
function doDeleteOperatorDept(operatorCode, deptId)
{//删除操作员部门
var ajax = new Z.Ajax();
ajax.setClassName("ZmrOperatorPresenter");
ajax.setMethodName("doDeleteOperatorDept");
ajax.addParam("operatorCode", operatorCode);
ajax.addParam("deptId", deptId);
ajax.setFailureAlert();
ajax.setSuccessReload();
ajax.execute();
}
</script>
${zhiqim_manager_breadcrumb("部门成员")}
${zhiqim_manager_content()}
<#-- 导航 -->
<div class="z-tabnav-main z-mg-b20 ${zmr_color_class}">
<nav>
<ul>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/org.htm")><li onclick="Z.L.href('org.htm');">组织管理</li></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/orgRule.htm")><li onclick="Z.L.href('orgRule.htm');">组织权限</li></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/dept.htm")><li onclick="Z.L.href('dept.htm');">部门管理</li></#if>
<li class="z-active">部门成员</li>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/deptRule.htm")><li onclick="Z.L.href('deptRule.htm');">部门权限</li></#if>
</ul>
</nav>
</div>
<#-- 列表 -->
<table class="z-table">
<tr>
<td width="200" valign="top">
<table class="z-table zi-bd z-bg-white">
<tr id="ID#{tree.self().getDeptId()}" class="z-bg-gray">
<td class="zi-pd-t10 zi-pd-l10 z-bd-b <#if !tree.hasChildren()>zi-pd-b5</#if>"><i class="z-ico z-tree z-30 z-normal <#if tree.hasChildren()>z-root<#else>zi-h22</#if> z-mg-r3"></i><a href="javascript:void(0);" onclick="doSelectDept('#{tree.self().getDeptId()}');">#{tree.self().getDeptName()}</a></td>
</tr>
<#for child : tree.children()>
${showChildDept(child, tree)}
</#for>
</table>
</td>
<td width="10"></td>
<td id="result" width="*" valign="top"></td>
</tr>
</table>
${zhiqim_manager_content_end()}
@@ -0,0 +1,49 @@
${Styles.htmlOverflowHidden()}
<script>
Z.onload(function()
{
Z(document.forms[0].operatorKey).focusEnd();
});
function doSelector()
{
var operatorCodes = Z.FM.getCheckeds("operatorCode");
parent.doSelectorCallback("${dept.getDeptId()}", operatorCodes);
}
</script>
<#-- 查询 -->
<div class="z-fixed z-t0 z-l0 z-w100p z-pd10 z-bg-gray">
<form method="post">
<input name="deptId" type="hidden" value="${dept.getDeptId()}">
<input name="operatorKey" class="z-float-left z-input z-w300 zi-h35 zi-bd-r-none" placeholder="操作员编码或名称" value="${operatorKey}" maxlength="20">
<button type="submit" class="z-float-left z-button z-w70 z-h35 zi-bd-rd0 ${zmr_color_class}"><i class="z-font z-query"></i></button>
</form>
</div>
<#-- 列表 -->
<div class="z-w100p z-pd10 z-overflow-auto" style="margin-top:55px;height:306px;">
<table class="z-table z-bordered z-pd5 z-text-center">
<tr class="z-h40 z-bg-gray">
<td width="50"><input type="checkbox" data-role="z-checkbox" data-class="z-blue" onclick="Z.FM.doSelectCheckBox('operatorCode')"></td>
<td width="90">操作员头像</td>
<td width="110">操作员编码</td>
<td width="*">操作员姓名</td>
</tr>
${zhiqim_manager_tr_no_record(operatorList, 4, "没有可选择的操作员")}
<#for item : operatorList>
<tr class="z-pointer" ${zhiqim_manager_tr_onmouse()} ${zhiqim_manager_tr_click_checkbox()}>
<td><input name="operatorCode" type="checkbox" data-role="z-checkbox" data-class="z-blue" value="${item.getOperatorCode()}"></td>
<td><img src="${sessionUser.getAvatarUrl(item.getOperatorAvatar(), 50)}" class="z-w50 z-h50 z-bd-rd50p"></td>
<td>${item.getOperatorCode()}</td>
<td>${item.getOperatorName()}</td>
</tr>
</#for>
</tale>
</div>
<#-- 操作 -->
<div class="z-fixed z-b0 z-l0 z-w100p z-h60 z-pd10 z-bg-gray z-text-center">
<button class="z-button z-large z-w150 ${zmr_color_class}" onclick="doSelector();">确定</button>
<button class="z-button z-large z-w70 z-mg-l10" onclick="parent.Z.Dialog.close(location.hash);">取消</button>
</div>
@@ -0,0 +1,81 @@
<#-- 显示子部门,并递归显示下级子部门 -->
<#function showChildDept(self, parent)>
<tr id="ID#{self.self().getDeptId()}">
<td class="zi-pd-l10">
<#var level = self.self().getDeptLevel()/>
<#for i : 1..(level-1)>
<#if self.isLastNode(level-i)>
<i class="z-ico z-tree z-30 z-normal z-blank"></i>
<#else>
<i class="z-ico z-tree z-30 z-normal z-vertline"></i>
</#if>
</#for>
<#if self.isLastNode()>
<i class="z-ico z-tree z-30 z-normal z-lastnode"></i>
<#else>
<i class="z-ico z-tree z-30 z-normal z-node"></i>
</#if>
<i class="z-ico z-tree z-item z-mg-r3"></i>
<a href="javascript:void(0);" onclick="doSelectDept('#{self.self().getDeptId()}');">#{self.self().getDeptName()}</a>
</td>
</tr>
<#for child : self.children()>
${showChildDept(child, self)}
</#for>
</#function>
<script>
Z.onload(function()
{
doSelectDept(${sessionUser.getSelectedDeptId(tree.self().getDeptId())});
});
function doSelectDept(deptId)
{
var ajax = new Z.Ajax();
ajax.setContextPath("${context.getContextPath()}");
ajax.setClassName("ZmrDeptPresenter");
ajax.setMethodName("doShowDeptRuleList");
ajax.addParam("deptId", deptId);
ajax.setFailureAlert();
ajax.setSuccess(function()
{
Z("#result").htmlc(this.responseText);
Z("#ID"+deptId).addClass("z-bg-gray").siblings().removeClass("z-bg-gray");
});
ajax.setLoading("result");
ajax.execute();
}
</script>
${zhiqim_manager_breadcrumb("部门权限")}
${zhiqim_manager_content()}
<div class="z-tabnav-main z-mg-b20 ${zmr_color_class}">
<nav>
<ul>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/org.htm")><li onclick="Z.L.href('org.htm');">组织管理</li></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/orgRule.htm")><li onclick="Z.L.href('orgRule.htm');">组织权限</li></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/dept.htm")><li onclick="Z.L.href('dept.htm');">部门管理</li></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/deptOperator.htm")><li onclick="Z.L.href('deptOperator.htm');">部门成员</li></#if>
<li class="z-active">部门权限</li>
</ul>
</nav>
</div>
<table class="z-table">
<tr>
<td width="200" valign="top">
<table class="z-table zi-bd z-bg-white">
<tr id="ID#{tree.self().getDeptId()}" class="z-bg-gray">
<td class="zi-pd-t10 zi-pd-l10 z-bd-b <#if !tree.hasChildren()>zi-pd-b5</#if>"><i class="z-ico z-tree z-30 z-normal <#if tree.hasChildren()>z-root<#else>zi-h22</#if> z-mg-r3"></i><a href="javascript:void(0);" onclick="doSelectDept('#{tree.self().getDeptId()}');">#{tree.self().getDeptName()}</a></td>
</tr>
<#for child : tree.children()>
${showChildDept(child, tree)}
</#for>
</table>
</td>
<td width="10"></td>
<td id="result" width="*" valign="top"></td>
</tr>
</table>
${zhiqim_manager_content_end()}
@@ -0,0 +1,40 @@
${zhiqim_manager_breadcrumb("系统菜单")}
${zhiqim_manager_content()}
<div class="z-tabnav-main z-mg-b20 ${zmr_color_class}">
<nav>
<ul>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/menu.htm")><li onclick="Z.L.href('menu.htm');">系统菜单</li></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/avatar.htm")><li onclick="Z.L.href('avatar.htm');">系统头像</li></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/config.htm")><li onclick="Z.L.href('config.htm');">系统配置</li></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/cache.htm")><li onclick="Z.L.href('cache.htm');">系统缓存</li></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/param.htm")><li onclick="Z.L.href('param.htm');">系统参数</li></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/paramOperator.htm")><li onclick="Z.L.href('paramOperator.htm');">操作员参数</li></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/themeIndex.htm")><li onclick="Z.L.href('themeIndex.htm');">首页主题</li></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/themeMain.htm")><li onclick="Z.L.href('themeMain.htm');">主页主题</li></#if>
<li class="z-active">密钥生成</li>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/process.htm")><li onclick="Z.L.href('process.htm');">进程信息</li></#if>
</ul>
<div class="z-float-right z-mg-t10 z-mg-r5">
<form method="post" data-role="z-call-frame">
<button class="z-button z-w150 ${zmr_color_class}">重新生成密钥对</button>
</form>
</div>
</nav>
</div>
<table class="z-table z-bordered z-pd10 z-bg-white z-text-center">
<tr class="z-h40" bgcolor="${zmr_thead_bgcolor}">
<td width="80">密钥类型</td>
<td width="*" class="z-text-left">密钥值</td>
</tr>
<tr>
<td>公钥</td>
<td class="z-samp z-text-left">${publicKey}</td>
</tr>
<tr>
<td>私钥</td>
<td class="z-samp z-text-left">${privateKey}</td>
</tr>
</table>
${zhiqim_manager_content_end()}
@@ -0,0 +1,5 @@
${zhiqim_manager_breadcrumb_name("欢迎光临["+context.getContextName()+"]")}
${zhiqim_manager_content()}
${zhiqim_manager_content_end()}
@@ -0,0 +1,108 @@
<#-- 显示子菜单,并递归显示下级子菜单 -->
<#function showChildMenu(self, parent)>
<table class="z-table z-bordered z-h30-tr zi-bd-t-none z-bg-white">
<tr class="z-pointer" ${zhiqim_manager_tr_onmouse()} ${zhiqim_manager_tr_click_radio()}>
<td width="50" class="z-text-center">
<#if ZmrAdminRule.check(request)>
<input name="menuCode" type="radio" data-role="z-radio" data-class="${zmr_color_class}" value="${self.self().getMenuCode()}">
</#if>
</td>
<td width="20%" class="zi-pd-l6">
<#var level = self.self().getMenuLevel()/>
<#for i : 1..(level-1)>
<#if self.isLastNode(level-i)>
<i class="z-ico z-tree z-30 z-normal z-blank"></i>
<#else>
<i class="z-ico z-tree z-30 z-normal z-vertline"></i>
</#if>
</#for>
<#if self.hasChildren()>
<a href="javascript:Zmr.treeExpand('${self.self().getMenuCode()}')"><i id="ico-${self.self().getMenuCode()}" class="z-ico z-tree z-30 z-normal <#if self.isLastNode()>z-mlastnode<#else>z-mnode</#if>"></i></a>
<#else>
<i class="z-ico z-tree z-30 z-normal <#if self.isLastNode()>z-lastnode<#else>z-node</#if>"></i>
</#if>
<i class="z-ico z-tree z-item z-mg-r3"></i>
#{self.self().getMenuName()}
</td>
<td width="80" class="zi-pd-l6">#{self.self().getMenuNameAbbr()}</td>
<td width="180" class="zi-pd-l6">#{self.self().getMenuCode()}</td>
<td width="60" class="z-text-center"><#if self.self().getMenuStatus()==0>正常<#else><span class="z-text-red">停用</span></#if></td>
<td width="60" class="z-text-center">#{self.self().getMenuLevel()}</td>
<td width="80" class="z-text-center"><#if self.self().getMenuType()==1>枝节点<#else>属性</#if></td>
<td width="60" class="z-text-center"><i class="z-font #{self.self().getMenuIcon()}"></i></td>
<td width="*" class="zi-pd-l6">#{self.self().getMenuUrl()}</td>
</tr>
</table>
<#if self.hasChildren()>
<div id="menu-${self.self().getMenuCode()}">
<#for child : self.children()>
${showChildMenu(child, self)}
</#for>
</div>
</#if>
</#function>
${zhiqim_manager_breadcrumb("系统菜单")}
${zhiqim_manager_content()}
<#-- 导航 -->
<div class="z-tabnav-main z-mg-b20 ${zmr_color_class}">
<nav>
<ul>
<li class="z-active">系统菜单</li>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/avatar.htm")><li onclick="Z.L.href('avatar.htm');">系统头像</li></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/config.htm")><li onclick="Z.L.href('config.htm');">系统配置</li></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/cache.htm")><li onclick="Z.L.href('cache.htm');">系统缓存</li></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/param.htm")><li onclick="Z.L.href('param.htm');">系统参数</li></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/paramOperator.htm")><li onclick="Z.L.href('paramOperator.htm');">操作员参数</li></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/themeIndex.htm")><li onclick="Z.L.href('themeIndex.htm');">首页主题</li></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/themeMain.htm")><li onclick="Z.L.href('themeMain.htm');">主页主题</li></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/keys.htm")><li onclick="Z.L.href('keys.htm');">密钥生成</li></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/process.htm")><li onclick="Z.L.href('process.htm');">进程信息</li></#if>
</ul>
</nav>
</div>
<#-- 操作 -->
<#if ZmrAdminRule.check(request)>
<div class="z-float-right z-mg-b5">
<#if ZmrSuperAdminRule.check(request)>
<button class="z-button ${zmr_color_class}" onclick="Z.L.check('menuAdd.htm', 'menuCode');"><i class="z-font z-add"></i>增加系统菜单</button>
</#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/menuModify.htm")><button class="z-button ${zmr_color_class}" onclick="Z.L.check('menuModify.htm', 'menuCode');"><i class="z-font z-modify"></i>修改系统菜单</button></#if>
<#if ZmrSuperAdminRule.check(request)>
<button class="z-button z-red" onclick="Z.L.confirm('menuDelete.htm', '确定删除该菜单', 'menuCode', zCallFrame);"><i class="z-font z-delete"></i>删除系统菜单</button>
</#if>
</div>
</#if>
<#-- 列表 -->
<table class="z-table z-bordered z-h30-tr z-bg-white">
<tr class="zi-h40" bgcolor="${zmr_thead_bgcolor}">
<td width="50" class="z-text-center">选择</td>
<td width="20%" class="zi-pd-l6">菜单目录</td>
<td width="80" class="zi-pd-l6">菜单简称</td>
<td width="180" class="zi-pd-l6">菜单编码</td>
<td width="60" class="z-text-center">状态</td>
<td width="60" class="z-text-center">级别</td>
<td width="80" class="z-text-center">菜单类型</td>
<td width="60" class="z-text-center">图标</td>
<td width="*" class="zi-pd-l6">URL</td>
</tr>
<tr class="z-pointer" ${zhiqim_manager_tr_onmouse()} ${zhiqim_manager_tr_click_radio()}>
<td class="z-text-center"><input name="menuCode" type="radio" data-role="z-radio" data-class="${zmr_color_class}" value="${tree.self().getMenuCode()}"></td>
<td class="zi-pd-l6"><i class="z-ico z-tree z-30 z-normal z-root z-mg-r3"></i>系统功能根菜单</td>
<td class="zi-pd-l6">#{tree.self().getMenuNameAbbr()}</td>
<td class="zi-pd-l6">#{tree.self().getMenuCode()}</td>
<td class="z-text-center"><#if tree.self().getMenuStatus()==0>正常<#else>停用</#if></td>
<td class="z-text-center">#{tree.self().getMenuLevel()}</td>
<td class="z-text-center">根节点</td>
<td class="z-text-center"><i class="z-font #{tree.self().getMenuIcon()}"></i></td>
<td class="zi-pd-l6">#{tree.self().getMenuUrl()}</td>
</tr>
</table>
<#for child : tree.children()>
${showChildMenu(child, tree)}
</#for>
${zhiqim_manager_list(menuSize)}
${zhiqim_manager_content_end()}
@@ -0,0 +1,57 @@
${Scripts.onload("Z(document.theForm.menuCode).focusEnd();")}
${zhiqim_manager_history("menu.htm")}
${request.getValidateScript()}
${zhiqim_manager_breadcrumb_parent("menu.htm" "系统菜单" "增加菜单信息")}
${zhiqim_manager_content()}
<form name="theForm" action="menuInsert.htm" method="post" onsubmit="return validateForm(this);" data-role="z-call-frame">
<input name="parentCode" type="hidden" value="${parent.getMenuCode()}">
<input name="menuLevel" type="hidden" value="${parent.getMenuLevel()+1}">
<table class="z-table z-bordered z-h50-tr z-pd10 z-lh150p z-bg-white">
<tr class="zi-h40 z-bg-gray z-bold">
<td colspan="2">增加菜单信息</td>
</tr>
<tr>
<td width="40%">父级菜单:<span class="z-color-999">(请选择)</span></td>
<td width="*">${parent.getMenuCode()}${parent.getMenuName()}</td>
</tr>
<tr>
<td>菜单编码:<span class="z-color-999">(在父级菜单基础上增加编码值,编码值每段三位,如010</span></td>
<td><input name="menuCode" class="z-input z-w300 ${zmr_color_class}" maxlength="32" value="${parent.getMenuCode()}_"><span class="z-color-red">&nbsp;*</span></td>
</tr>
<tr>
<td>菜单名称:<span class="z-color-999">16位不定长字符)</span></td>
<td><input name="menuName" class="z-input z-w300 ${zmr_color_class}" maxlength="16"><span class="z-color-red">&nbsp;*</span></td>
</tr>
<#if parent.getMenuLevel() == 0>
<tr>
<td>菜单简称:<span class="z-color-999">3位不定长字符,仅一级菜单使用)</span></td>
<td><input name="menuNameAbbr" class="z-input z-w300 ${zmr_color_class}" maxlength="3"><span class="z-color-red">&nbsp;*</span></td>
</tr>
</#if>
<tr>
<td>菜单状态:<span class="z-color-999">(停用或正常)</span></td>
<td><select name="menuStatus" class="z-select z-w300" data-role="z-select" data-class="${zmr_color_class}"><option value="0">正常</option><option value="1">停用</option></select><span class="z-color-red">&nbsp;*</span></td>
</tr>
<tr>
<td>菜单类型:<span class="z-color-999">(枝节点或属性)</span></td>
<td><select name="menuType" class="z-select z-w300" data-role="z-select" data-class="${zmr_color_class}"><option value="1">枝节点</option><option value="2">属性</option></select><span class="z-color-red">&nbsp;*</span></td>
</tr>
<#if parent.getMenuLevel() lte 1>
<tr>
<td>菜单图标:<span class="z-color-999">(在z-font中选择字体图标,仅一二级菜单使用)</span></td>
<td><input name="menuIcon" class="z-input z-w300 ${zmr_color_class}" maxlength="32"></td>
</tr>
</#if>
<tr>
<td>菜单URL<span class="z-color-999">(菜单权限对应的URL,多个用逗号隔开,100字符以内)</span></td>
<td><input name="menuUrl" class="z-input z-w300 ${zmr_color_class}" maxlength="100"></td>
</tr>
<tr>
<td>菜单描述:<span class="z-color-999">(用一句简短的句子描述菜单,100字以内)</span></td>
<td><textarea name="menuDesc" class="z-textarea z-w300 z-h80 ${zmr_color_class}" maxlength="100"></textarea></td>
</tr>
</table>
${zhiqim_manager_submit()}
</form>
${zhiqim_manager_content_end()}
@@ -0,0 +1,60 @@
${zhiqim_manager_history("menu.htm")}
${request.getValidateScript()}
${zhiqim_manager_breadcrumb_parent("menu.htm" "系统菜单" "修改本菜单信息")}
${zhiqim_manager_content()}
${zhiqim_manager_title("修改 ["+item.getMenuName()+"] 菜单")}
<form name="theForm" action="menuUpdate.htm" method="post" onsubmit="return validateForm(this);" data-role="z-call-frame">
<input name="parentCode" type="hidden" value="${item.getParentCode()}">
<input name="menuCode" type="hidden" value="${item.getMenuCode()}">
<input name="menuLevel" type="hidden" value="${item.getMenuLevel()}">
<table class="z-table z-bordered z-h50-tr z-pd10 z-bg-white">
<tr>
<td width="40%">菜单编码:</td>
<td width="*">${item.getMenuCode()}</td>
</tr>
<tr>
<td>菜单名称:<span class="z-color-999">16位不定长字符)</span></td>
<td><input name="menuName" class="z-input z-w300 ${zmr_color_class}" value="${item.getMenuName()}" maxlength="16"><span class="z-color-red">&nbsp;*</span></td>
</tr>
<#if item.getMenuLevel() == 1>
<tr>
<td>菜单简称:<span class="z-color-999">3位不定长字符,仅一级菜单使用)</span></td>
<td><input name="menuNameAbbr" class="z-input z-w300 ${zmr_color_class}" value="${item.getMenuNameAbbr()}" maxlength="3"><span class="z-color-red">&nbsp;*</span></td>
</tr>
<#else>
<input name="menuNameAbbr" type="hidden" value="${item.getMenuNameAbbr()}">
</#if>
<tr>
<td>菜单状态:<span class="z-color-999">(正常|停用)</span></td>
<td>
<select name="menuStatus" class="z-select z-w300" data-role="z-select" data-class="${zmr_color_class}">
<option value="0" <#if item.getMenuStatus() == 0>selected</#if>>正常</option>
<option value="1" <#if item.getMenuStatus() == 1>selected</#if>>停用</option>
</select><span class="z-color-red">&nbsp;*</span>
</td>
</tr>
<tr>
<td>菜单类型:<span class="z-color-999">(枝节点 | 属性)</span></td>
<td><select name="menuType" class="z-select z-w300" data-role="z-select" data-class="${zmr_color_class}"><option value="1"<#if item.getMenuType() == 1> selected</#if>>枝节点</option><option value="2"<#if item.getMenuType() == 2> selected</#if>>属性</option></select><span class="z-color-red">&nbsp;*</span></td>
</tr>
<#if item.getMenuLevel() lte 2>
<tr>
<td>菜单图标:<span class="z-color-999">(在z-font中选择字体图标,仅一二级菜单使用)</span></td>
<td><input name="menuIcon" class="z-input z-w300 ${zmr_color_class}" value="#{item.getMenuIcon()}" maxlength="32"></td>
</tr>
<#else>
<input name="menuIcon" type="hidden" value="${item.getMenuIcon()}">
</#if>
<tr>
<td>菜单URL<span class="z-color-999">(菜单权限对应的URL,多个用逗号隔开,100字符以内)</span></td>
<td><input name="menuUrl" class="z-input z-w300 ${zmr_color_class}" value="#{item.getMenuUrl()}" maxlength="100"></td>
</tr>
<tr>
<td>菜单描述:<span class="z-color-999">(用一句简短的句子描述菜单,100字以内)</span></td>
<td><textarea name="menuDesc" class="z-textarea z-w300 z-h80 ${zmr_color_class}" maxlength="100">#{item.getMenuDesc()}</textarea></td>
</tr>
</table>
${zhiqim_manager_submit()}
</form>
${zhiqim_manager_content_end()}
@@ -0,0 +1,81 @@
${zhiqim_manager_breadcrumb("消息列表")}
${zhiqim_manager_content()}
${sweet_alert_reuse_method()}
<script>
function doMessageHandle(id){
if(Z.V.isEmpty(id)){
Z.alert("消息ID为空");
return;
}
var ajax = new Z.Ajax();
ajax.setClassName("MessagePresenter");
ajax.setMethodName("doMessageHandle");
ajax.addParam("id",id);
ajax.setFailureAlert();
ajax.setSuccess(function(){
var flag="false";
flag = this.responseText;
if(flag == "true")
{
swal({title:"处理成功",type:"success",timer: 1000,width:300,showConfirmButton:false}).then(function(){
this.location.reload();
});
}
});
ajax.setLoading("doMessageHandle", '<i class="z-font z-return"></i>正在处理',{disabled:true});
ajax.execute();
}
</script>
<#-- 导航 -->
<div class="z-tabnav-main z-mg-b20 ${zmr_color_class}">
<nav>
<ul>
<li class="z-active">我接收的</li>
<li onclick="Z.L.href('messageFromMe.htm');">我发出的</li>
</ul>
<div class="z-float-left z-mg10">
<form name="theForm" method="post">
<input name="orderId" class="z-float-left z-input z-w150 zi-bd-r-none z-blue" value="${orderId}" placeholder="订单号" spellcheck="false" maxlength="32">
<input name="beginTime" class="z-float-left z-input z-w150 zi-bd-r-none ${zmr_color_class}" value="${startTime}" onfocus="Z.datetime(this);" maxlength="19" placeholder="起始时间">
<input name="endTime" class="z-float-left z-input z-w150 zi-bd-r-none ${zmr_color_class}" value="${endTime}" onfocus="Z.datetime(this);" maxlength="19" placeholder="截止时间">
<button class="z-float-left z-button z-w80 zi-bd-rd0 ${zmr_color_class}"><i class="z-font z-query"></i>查询</button>
</form>
</div>
</nav>
</div>
<#-- 列表 -->
<table class="z-table z-bordered z-mg-t20 z-pd10 z-bg-white z-lh150p z-text-center">
<tr class="z-h40" bgcolor="${zmr_thead_bgcolor}">
<td width="8%">订单号</td>
<td width="8%">发送者</td>
<td width="110">发送时间</td>
<td width="*">消息内容</td>
<td width="8%">设计师</td>
<td width="120">订单状态</td>
<td width="110">处理状态</td>
<td width="110">处理时间</td>
<td width="110">操作</td>
</tr>
<#for item : result.list()>
<tr class="z-h60" bgcolor="${zhiqim_manager_tr_bg(item_index)}">
<td>#{item.getOrderId()}</td>
<td>#{item.getProducerOperateName()}</td>
<td><#if item.getSendTimeTimestamp() !=null>#{Sqls.toDateTimeString(item.getSendTimeTimestamp())}<#else></#if></td>
<td>#{item.getMessageBody()}</td>
<td>#{item.getDesignerName()}</td>
<td>#{item.getOrderStatusName()}</td>
<td><#if item.getState() == "1">已创建(未处理)<#elseif item.getState() == 2>平台已收到(未处理)<#elseif item.getState() == 3>已处理<#else>失效</#if></td>
<td><#if item.getState() == "3" && item.getReadTimeTimestamp() !=null>#{Sqls.toDateTimeString(item.getReadTimeTimestamp())}<#else></#if></td>
<td><#if item.getState() == "3"><button class="z-button" disabled>已处理</button><#elseif item.getState() == 1 ||item.getState() == 2><button class="z-button z-blue" onclick="doMessageHandle(#{item.getId()});" id="doMessageHandle">处理</button><#else></#if></td>
</tr>
</#for>
${zhiqim_manager_tr_no_record(result, 10, "暂时没有消息")}
</table>
<table class="z-table z-bordered zi-bd-t-none z-bg-white">
<tr class="z-h50">
<td><div class="z-float-right z-mg-r10">${PagingGo.toHtmlLink(result)}</div></td>
</tr>
</table>
${zhiqim_manager_content_end()}
@@ -0,0 +1,85 @@
${zhiqim_manager_breadcrumb("消息列表")}
${zhiqim_manager_content()}
${sweet_alert_reuse_method()}
<script>
function sendMessageAgain(id){
if(Z.V.isEmpty(id)){
Z.alert("消息ID为空");
return;
}
var ajax = new Z.Ajax();
ajax.setClassName("MessagePresenter");
ajax.setMethodName("sendMessageAgain");
ajax.addParam("id",id);
ajax.setFailureAlert();
ajax.setSuccess(function(){
var flag="false";
flag = this.responseText;
if(flag == "true")
{
swal({title:"再次发送成功",type:"success",timer: 1000,width:300,showConfirmButton:false}).then(function(){
this.location.reload();
});
}
});
ajax.setLoading("sendMessageAgain", '<i class="z-font z-return"></i>正在处理',{disabled:true});
ajax.execute();
}
</script>
<#-- 导航 -->
<div class="z-tabnav-main z-mg-b20 ${zmr_color_class}">
<nav>
<ul>
<li onclick="Z.L.href('message.htm');">我收到的</li>
<li class="z-active">我发出的</li>
</ul>
<div class="z-float-left z-mg10">
<form name="theForm" method="post">
<input name="orderId" class="z-float-left z-input z-w150 zi-bd-r-none z-blue" value="${orderId}" placeholder="订单号" spellcheck="false" maxlength="32">
<input name="beginTime" class="z-float-left z-input z-w150 zi-bd-r-none ${zmr_color_class}" value="${startTime}" onfocus="Z.datetime(this);" maxlength="19" placeholder="起始时间">
<input name="endTime" class="z-float-left z-input z-w150 zi-bd-r-none ${zmr_color_class}" value="${endTime}" onfocus="Z.datetime(this);" maxlength="19" placeholder="截止时间">
<select name="state" class="z-float-left z-select z-w150 zi-bd-r-none">
<option value="">全部</option>
<option <#if state == "3">selected</#if> value="3">已处理</option>
</select>
<button class="z-float-left z-button z-w80 zi-bd-rd0 ${zmr_color_class}"><i class="z-font z-query"></i>查询</button>
</form>
</div>
</nav>
</div>
<#-- 列表 -->
<table class="z-table z-bordered z-mg-t20 z-pd10 z-bg-white z-lh150p z-text-center">
<tr class="z-h40" bgcolor="${zmr_thead_bgcolor}">
<td width="8%">订单号</td>
<td width="8%">接收者</td>
<td width="110">接收时间</td>
<td width="*">消息内容</td>
<td width="8%">设计师</td>
<td width="120">订单状态</td>
<td width="110">处理状态</td>
<td width="110">处理时间</td>
<td width="110">操作</td>
</tr>
<#for item : result.list()>
<tr class="z-h60" bgcolor="${zhiqim_manager_tr_bg(item_index)}">
<td>#{item.getOrderId()}</td>
<td>#{item.getConsumerOperateName()}</td>
<td><#if item.getConsumeTimeTimestamp() !=null>#{Sqls.toDateTimeString(item.getConsumeTimeTimestamp())}<#else></#if></td>
<td>#{item.getMessageBody()}</td>
<td>#{item.getDesignerName()}</td>
<td>#{item.getOrderStatusName()}</td>
<td><#if item.getState() == "1">已创建(未处理)<#elseif item.getState() == 2>平台已收到(未处理)<#elseif item.getState() == 3>已处理<#else>失效</#if></td>
<td><#if item.getState() == "3" && item.getReadTimeTimestamp() !=null>#{Sqls.toDateTimeString(item.getReadTimeTimestamp())}<#else></#if></td>
<td><button class="z-button z-blue" onclick="sendMessageAgain(#{item.getId()});" id="sendMessageAgain">再次发送</button></td>
</tr>
</#for>
${zhiqim_manager_tr_no_record(result, 10, "暂时没有消息")}
</table>
<table class="z-table z-bordered zi-bd-t-none z-bg-white">
<tr class="z-h50">
<td><div class="z-float-right z-mg-r10">${PagingGo.toHtmlLink(result)}</div></td>
</tr>
</table>
${zhiqim_manager_content_end()}
@@ -0,0 +1,86 @@
<#var zhiqim_image_clipper.js = new ZmrCdnRuntime(context, "/ztmpl/zhiqim_manager/zhiqim_image_clipper.js")/>
${Scripts.src(zhiqim_image_clipper.js)}
<script>
Z.onload(function()
{
//初始化系统头像
doQuerySysAvatar(1);
//初始化上传头像
var clipper = new Z.ImageClipper();
clipper.elem = "clipper";
clipper.img = "${context.getRootPath("/ztmpl/zhiqim_manager/zhiqim_image_clipper_default.jpg")}";
clipper.save = function()
{
var ajax = new Z.Ajax();
ajax.setContextPath("${context.getContextPath()}");
ajax.setClassName("ZmrProfilePresenter");
ajax.setMethodName("doModifySelfAvatar");
ajax.addParam(this.getDataURL());
ajax.setFailureAlert();
ajax.setSuccessAlertReloadTop("修改成功");
ajax.execute();
};
clipper.execute();
});
function doQuerySysAvatar(pageNo)
{//查询系统头像列表
var ajax = new Z.Ajax();
ajax.setContextPath("${context.getContextPath()}");
ajax.setClassName("ZmrProfilePresenter");
ajax.setMethodName("doQuerySysAvatar");
ajax.addParam(pageNo);
ajax.setCallback("result");
ajax.setLoading("result");
ajax.execute();
}
function doSelectSysAvatar(img, value)
{//选择系统头像
Z(img).addClass("z-red").siblings().removeClass("z-red");
Z("#avatarId").val(value);
}
function doModifySysAvatar()
{//修改用户系统头像
var avatarId = Z("#avatarId").val();
if(Z.V.isEmpty(avatarId))
{
Z.alert("请选择系统头像");
return;
}
var ajax = new Z.Ajax();
ajax.setContextPath("${context.getContextPath()}");
ajax.setClassName("ZmrProfilePresenter");
ajax.setMethodName("doModifySysAvatar");
ajax.addParam(avatarId);
ajax.setFailureAlert();
ajax.setSuccessAlertReloadTop("修改成功");
ajax.execute();
}
</script>
${zhiqim_manager_content()}
<div data-role="z-tabnav" class="z-tabnav">
<nav>
<ul>
<li class="z-active">系统头像</li>
<li>自定义头像</li>
</ul>
</nav>
<section>
<div class="z-pd10 z-active z-overflow-hidden" style="height:515px;">
<input id="avatarId" type="hidden">
<div class="z-mg20 z-relative" id="result"></div>
<div class="z-absolute z-b0 z-l0 z-w100p z-h80 z-pd20 z-text-center z-bg-gray">
<button type="submit" class="z-button z-large z-w100 ${zmr_color_class}" onclick="doModifySysAvatar();">提交</button>
<button type="button" class="z-button z-large z-w100 z-mg-l10" onclick="parent.Z.Dialog.close();">关闭</button>
</div>
</div>
<div class="z-pd10">
<div id="clipper" class="z-mg-t10 z-mg-l50" style="width:620px;height:460px;"></div>
</div>
</section>
</div>
${zhiqim_manager_content_end()}
@@ -0,0 +1,32 @@
<script>
function doModifyEmail()
{
var operatorEmail = Z("#operatorEmail").val();
if (Z.V.isEmptyBlank(operatorEmail))
{
Z.alert("新邮箱不能为空");
return;
}
var ajax = new Z.Ajax();
ajax.setContextPath("${context.getContextPath()}");
ajax.setClassName("ZmrProfilePresenter");
ajax.setMethodName("doModifyEmail");
ajax.addParam(operatorEmail);
ajax.setFailureAlert();
ajax.setSuccessAlertReloadParent("修改成功");
ajax.execute();
}
</script>
<div class="z-h60 z-pd20">
原邮箱:<span class="z-color-666"><#if Validates.isNotEmpty(sessionUser.getOperatorEmail())>${sessionUser.getOperatorEmail()}<span class="z-px12 z-text-orange">(已绑定)</span> <#else><span class="z-px14 z-color-999">(未绑定)</span> </#if></span>
</div>
<div class="z-h60 z-pd20">
新邮箱:<input id="operatorEmail" class="z-input z-w300 ${zmr_color_class}" maxlength="21" spellcheck="false">
<span class="z-px12 z-text-red">*</span>
<span class="z-px12 z-color-999">请输入新的邮箱</span>
</div>
<div class="z-absolute z-b0 z-l0 z-w100p z-h80 z-pd20 z-text-center z-bg-gray">
<button type="button" class="z-button z-large z-w100 ${zmr_color_class}" onclick="doModifyEmail();">提交</button>
<button type="button" class="z-button z-large z-w100 z-mg-l10" onclick="parent.Z.Dialog.close();">关闭</button>
</div>
@@ -0,0 +1,88 @@
<script>
function doModifyMobile()
{
var operatorMobile = Z("#operatorMobile").val();
if (Z.V.isEmptyBlank(operatorMobile))
{
Z.alert("新手机号不能为空");
return;
}
var smsCode = Z("#smsCode").val();
if (Z.V.isEmptyBlank(smsCode))
{
Z.alert("验证码不能为空");
return;
}
var ajax = new Z.Ajax();
ajax.setContextPath("${context.getContextPath()}");
ajax.setClassName("ZmrProfilePresenter");
ajax.setMethodName("doModifyMobile");
ajax.addParam(operatorMobile);
ajax.addParam(smsCode);
ajax.setFailureAlert();
ajax.setSuccessAlertReloadParent("修改成功");
ajax.execute();
}
//发送验证码
function doSendSmsCode()
{
var operatorMobile = Z("#operatorMobile").val();
if (Z.V.isEmptyBlank(operatorMobile))
{
Z.failure("手机号不能为空!");
Z("#operatorMobile").focus();
return;
}
if (Z('#getsms-submit')[0].innerHTML != "获取验证码" && Z('#getsms-submit')[0].innerHTML != "重新发送") {
Z.failure("请稍后再试");
return ;
}
var ajax = new Z.Ajax();
ajax.setContextPath("${context.getContextPath()}");
ajax.setClassName("ZmrProfilePresenter");
ajax.setMethodName("sendSmsByModifyMobile");
ajax.addParam("operatorMobile", operatorMobile);
ajax.setFailureAlert();
ajax.setSuccess();
ajax.execute();
setYzmLabel();
}
var wait = 60;
function setYzmLabel() {
if (wait == 0)
{
Z('#getsms-submit')[0].innerHTML = "重新发送";
wait = 60;
}
else
{
Z('#getsms-submit')[0].innerHTML = "已发送(" + wait + ")";
wait--;
setTimeout(function () {
setYzmLabel()
}, 1000);
}
};
</script>
<div class="z-h40 zi-pd20">
原手机号:<span class="z-color-666"><#if Validates.isNotEmpty(sessionUser.getOperatorMobile())>${sessionUser.getOperatorMobile()}<span class="z-px12 z-text-orange">(已绑定)</span> <#else><span class="z-px14 z-color-999">(未绑定)</span> </#if></span>
</div>
<div class="z-h40 zi-pd20">
新手机号:<input id="operatorMobile" class="z-input z-w150 ${zmr_color_class}" maxlength="15" data-options="type:Integer;" spellcheck="false">
<span class="z-px12 z-text-red">*</span>
</div>
<div class="z-h40 zi-pd20">
&nbsp;&nbsp;&nbsp;验证码:<input id="smsCode" name="smsCode" class="z-input z-w150 ${zmr_color_class}" placeholder="请输入验证码" data-options="type:Integer;" maxlength="6" />
<span class="z-px12 z-text-red">*</span>
<button id="getsms-submit" class="z-button z-w100 zi-px10 ${zmr_color_class}" onclick="doSendSmsCode()" >获取验证码</button>
</div>
<div class="z-absolute z-b0 z-l0 z-w100p z-h80 z-pd20 z-text-center z-bg-gray">
<button type="button" class="z-button z-large z-w100 ${zmr_color_class}" onclick="doModifyMobile();">提交</button>
<button type="button" class="z-button z-large z-w100 z-mg-l10" onclick="parent.Z.Dialog.close();">关闭</button>
</div>
@@ -0,0 +1,31 @@
<script>
function doModifyOperatorParam()
{
var paramValue = Z("#paramValue").val();
if (Z.V.isEmptyBlank(paramValue))
{
Z.alert("新"+${desc}+"不能为空");
return;
}
var ajax = new Z.Ajax();
ajax.setContextPath("${context.getContextPath()}");
ajax.setClassName("ZmrProfilePresenter");
ajax.setMethodName("doModifyOperatorParam");
ajax.addParam("paramKey", '${key}');
ajax.addParam("paramValue", paramValue);
ajax.setFailureAlert();
ajax.setSuccessAlertReloadParent("修改成功");
ajax.execute();
}
</script>
<div class="z-h60 zi-pd20">
原${desc}<span class="z-color-666">${value}</span>
</div>
<div class="z-h60 zi-pd20">
新${desc}<input id="paramValue" class="z-input z-w300 ${zmr_color_class}" spellcheck="false"><span class="z-px12 z-text-red">*</span><span class="z-px12 z-color-999">请输入新${desc}</span>
</div>
<div class="z-absolute z-b0 z-l0 z-w100p z-h80 z-pd20 z-text-center z-bg-gray">
<button type="button" class="z-button z-large z-w100 ${zmr_color_class}" onclick="doModifyOperatorParam();">提交</button>
<button type="button" class="z-button z-large z-w100 z-mg-l10" onclick="parent.Z.Dialog.close();">关闭</button>
</div>
@@ -0,0 +1,42 @@
${request.getValidateScript()}
<script>
function doModifyPass(form)
{
var ajax = new Z.Ajax();
ajax.setContextPath("${context.getContextPath()}");
ajax.setClassName("ZmrProfilePresenter");
ajax.setMethodName("doModifyPass");
ajax.setParamForm(form);
ajax.setFailureAlert();
ajax.setSuccessAlertReloadParent("修改成功");
ajax.execute();
}
</script>
<form>
<input type="text" class="z-hidden-fixed">
<input type="password" class="z-hidden-fixed">
<table class="z-table z-mg-t10 z-mg-b10">
<tr class="z-h60">
<td width="80" class="zi-pd-l10">旧&ensp;密&ensp;码:</td>
<td width="303"><input name="oldPassword" type="password" class="z-input z-w300 ${zmr_color_class}" maxlength="16" autocomplete="off"></td>
<td width="10" class="z-px14 z-text-red zi-pd-t6">*</td>
<td width="*" class="zi-pd-r10 z-px14 z-color-999">请输入原始密码</td>
</tr>
<tr class="z-h60">
<td class="zi-pd-l10">新&ensp;密&ensp;码:</td>
<td><input name="newPassword" type="password" class="z-input z-w300 ${zmr_color_class}" maxlength="16" autocomplete="off"></td>
<td class="z-px14 z-text-red zi-pd-t6">*</td>
<td class="zi-pd-r10 z-px12 z-color-999">6-16位密码,大写字母、小写字母、数字和特殊字符必须四选三,特殊字符支持</span><span class="z-px12 z-color-999 z-samp">.`_~!@#$%</span></td>
</tr>
<tr class="z-h60">
<td class="zi-pd-l10">确认密码:</td>
<td><input name="newPassword2" type="password" class="z-input z-w300 ${zmr_color_class}" maxlength="16" autocomplete="off"></td>
<td class="z-px14 z-text-red zi-pd-t6">*</td>
<td class="zi-pd-r10 z-px14 z-color-999">再次输入新密码</td>
</tr>
</table>
<div class="z-absolute z-b0 z-l0 z-w100p z-h80 z-pd20 z-text-center z-bg-gray">
<button type="button" class="z-button z-large z-w100 ${zmr_color_class}" onclick="doModifyPass(this.form);">提交</button>
<button type="button" class="z-button z-large z-w100 z-mg-l10" onclick="parent.Z.Dialog.close();">关闭</button>
</div>
</form>
@@ -0,0 +1,32 @@
<script>
function doModifyWangwang()
{
var operatorWangwang = Z("#operatorWangwang").val();
if (Z.V.isEmptyBlank(operatorWangwang))
{
Z.alert("新旺旺不能为空");
return;
}
var ajax = new Z.Ajax();
ajax.setContextPath("${context.getContextPath()}");
ajax.setClassName("ZmrProfilePresenter");
ajax.setMethodName("doModifyWangwang");
ajax.addParam(operatorWangwang);
ajax.setFailureAlert();
ajax.setSuccessAlertReloadParent("修改成功");
ajax.execute();
}
</script>
<div class="z-h60 z-pd20">
原旺旺:<span class="z-color-666"><#if Validates.isNotEmpty(sessionUser.getOperatorWangwang())>${sessionUser.getOperatorWangwang()}<span class="z-px12 z-text-orange">(已绑定)</span> <#else><span class="z-px14 z-color-999">(未绑定)</span> </#if></span>
</div>
<div class="z-h60 z-pd20">
新旺旺:<input id="operatorWangwang" class="z-input z-w300 ${zmr_color_class}" maxlength="21" spellcheck="false">
<span class="z-px12 z-text-red">*</span>
<span class="z-px12 z-color-999">请输入新的旺旺</span>
</div>
<div class="z-absolute z-b0 z-l0 z-w100p z-h80 z-pd20 z-text-center z-bg-gray">
<button type="button" class="z-button z-large z-w100 ${zmr_color_class}" onclick="doModifyWangwang();">提交</button>
<button type="button" class="z-button z-large z-w100 z-mg-l10" onclick="parent.Z.Dialog.close();">关闭</button>
</div>
@@ -0,0 +1,32 @@
<script>
function doModifyWkwechatAccount()
{
var wkwechatAccount = Z("#wkwechatAccount").val();
if (Z.V.isEmptyBlank(wkwechatAccount))
{
Z.alert("新企业微信账号不能为空");
return;
}
var ajax = new Z.Ajax();
ajax.setContextPath("${context.getContextPath()}");
ajax.setClassName("ZmrProfilePresenter");
ajax.setMethodName("doModifyWkwechatAccount");
ajax.addParam(wkwechatAccount);
ajax.setFailureAlert();
ajax.setSuccessAlertReloadParent("修改成功");
ajax.execute();
}
</script>
<div class="z-h60 z-pd20">
原企业微信账号:<span class="z-color-666"><#if Validates.isNotEmpty(sessionUser.getWkwechatAccount())>${sessionUser.getWkwechatAccount()}<span class="z-px12 z-text-orange">(已绑定)</span> <#else><span class="z-px14 z-color-999">(未绑定)</span> </#if></span>
</div>
<div class="z-h60 z-pd20">
新企业微信账号:<input id="wkwechatAccount" class="z-input z-w300 ${zmr_color_class}" maxlength="21" spellcheck="false">
<span class="z-px12 z-text-red">*</span>
<span class="z-px12 z-color-999">请输入新的企业微信账号</span>
</div>
<div class="z-absolute z-b0 z-l0 z-w100p z-h80 z-pd20 z-text-center z-bg-gray">
<button type="button" class="z-button z-large z-w100 ${zmr_color_class}" onclick="doModifyWkwechatAccount();">提交</button>
<button type="button" class="z-button z-large z-w100 z-mg-l10" onclick="parent.Z.Dialog.close();">关闭</button>
</div>
@@ -0,0 +1,32 @@
<script>
function doModifyWxcode()
{
var operatorWxcode = Z("#operatorWxcode").val();
if (Z.V.isEmptyBlank(operatorWxcode))
{
Z.alert("新微信不能为空");
return;
}
var ajax = new Z.Ajax();
ajax.setContextPath("${context.getContextPath()}");
ajax.setClassName("ZmrProfilePresenter");
ajax.setMethodName("doModifyWxcode");
ajax.addParam(operatorWxcode);
ajax.setFailureAlert();
ajax.setSuccessAlertReloadParent("修改成功");
ajax.execute();
}
</script>
<div class="z-h60 z-pd20">
原微信:<span class="z-color-666"><#if Validates.isNotEmpty(sessionUser.getOperatorWxcode())>${sessionUser.getOperatorWxcode()}<span class="z-px12 z-text-orange">(已绑定)</span> <#else><span class="z-px14 z-color-999">(未绑定)</span> </#if></span>
</div>
<div class="z-h60 z-pd20">
新微信:<input id="operatorWxcode" class="z-input z-w300 ${zmr_color_class}" maxlength="21" spellcheck="false">
<span class="z-px12 z-text-red">*</span>
<span class="z-px12 z-color-999">请输入新的微信</span>
</div>
<div class="z-absolute z-b0 z-l0 z-w100p z-h80 z-pd20 z-text-center z-bg-gray">
<button type="button" class="z-button z-large z-w100 ${zmr_color_class}" onclick="doModifyWxcode();">提交</button>
<button type="button" class="z-button z-large z-w100 z-mg-l10" onclick="parent.Z.Dialog.close();">关闭</button>
</div>
@@ -0,0 +1,47 @@
${zhiqim_manager_breadcrumb("操作日志查询")}
${zhiqim_manager_content()}
<#-- 导航 -->
<div class="z-tabnav-main z-mg-b20 ${zmr_color_class}">
<nav>
<ul>
<li class="z-active">操作日志查询</li>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/operatorOnline.htm")><li onclick="Z.L.href('operatorOnline.htm');">操作员在线列表</li></#if>
</ul>
<div class="z-float-left z-mg10">
<form name="theForm" method="post">
<input name="beginTime" class="z-float-left z-input z-w150 zi-bd-r-none ${zmr_color_class}" value="${startTime}" onfocus="Z.datetime(this);" maxlength="19" placeholder="操作起始时间">
<input name="endTime" class="z-float-left z-input z-w150 zi-bd-r-none ${zmr_color_class}" value="${endTime}" onfocus="Z.datetime(this);" maxlength="19" placeholder="操作截止时间">
<#if ZmrAdminRule.check(request)>
<input name="operatorCode" class="z-float-left z-input z-w150 zi-bd-r-none ${zmr_color_class}" value="${operatorCode}" placeholder="操作员编码" spellcheck="false" maxlength="32">
</#if>
<button class="z-float-left z-button z-w80 zi-bd-rd0 ${zmr_color_class}"><i class="z-font z-query"></i>查询</button>
</form>
</div>
</nav>
</div>
<#-- 列表 -->
<table class="z-table z-bordered z-mg-t20 z-pd10 z-bg-white z-lh150p z-text-center">
<tr class="z-h40" bgcolor="${zmr_thead_bgcolor}">
<td width="160">操作时间</td>
<td width="12%">操作员</td>
<td width="35%">操作URL</td>
<td width="*">操作描述</td>
</tr>
<#for item : result.list()>
<tr class="z-h60" bgcolor="${zhiqim_manager_tr_bg(item_index)}">
<td>#{Sqls.toDateTimeString(item.getOperateTime())}</td>
<td>#{item.getOperatorCode()}</td>
<td align="left">#{item.getOperateUrl()}</td>
<td align="left">#{item.getOperateDesc()}</td>
</tr>
</#for>
${zhiqim_manager_tr_no_record(result, 4, "暂时没有操作日志")}
</table>
<table class="z-table z-bordered zi-bd-t-none z-bg-white">
<tr class="z-h50">
<td><div class="z-float-right z-mg-r10">${PagingGo.toHtmlLink(result)}</div></td>
</tr>
</table>
${zhiqim_manager_content_end()}
@@ -0,0 +1,213 @@
<script>
Z.onload(function()
{
Z(document.forms[0].operatorKey).focusEnd();
});
function doSelectorDeptDialog()
{//标题、URL、宽度和高度四个值是必须的
var operatorCode = Z.FM.getChecked("operatorCode");
var dialog = new Z.Dialog();
dialog.title = "设置部门";
dialog.url = "operatorDeptSelector.htm?operatorCode="+encodeURIComponent(operatorCode);
dialog.width = 392;
dialog.height = 418;
dialog.fixed = true;
dialog.scroll = true;
dialog.execute();
}
function doSelectorDeptCallback(operatorCode, deptIds)
{//增加操作员部门
var ajax = new Z.Ajax();
ajax.setContextPath("${context.getContextPath()}");
ajax.setClassName("ZmrOperatorPresenter");
ajax.setMethodName("doAddOperatorDepts");
ajax.addParam("operatorCode", operatorCode);
ajax.addParam("deptIds", deptIds);
ajax.setFailureAlert();
ajax.setSuccessReload();
ajax.setLoading(document);
ajax.execute();
}
function doDeleteOperatorDept(operatorCode, deptId)
{//删除操作员部门
var ajax = new Z.Ajax();
ajax.setContextPath("${context.getContextPath()}");
ajax.setClassName("ZmrOperatorPresenter");
ajax.setMethodName("doDeleteOperatorDept");
ajax.addParam("operatorCode", operatorCode);
ajax.addParam("deptId", deptId);
ajax.setFailureAlert();
ajax.setSuccessReload();
ajax.execute();
}
function doSelectorRoleDialog()
{//标题、URL、宽度和高度四个值是必须的
var operatorCode = Z.FM.getChecked("operatorCode");
var dialog = new Z.Dialog();
dialog.title = "设置角色";
dialog.url = "operatorRoleSelector.htm?operatorCode="+encodeURIComponent(operatorCode);
dialog.width = 392;
dialog.height = 418;
dialog.fixed = true;
dialog.scroll = true;
dialog.execute();
}
function doSelectorRoleCallback(operatorCode, roleIds)
{//增加操作员角色
var ajax = new Z.Ajax();
ajax.setContextPath("${context.getContextPath()}");
ajax.setClassName("ZmrOperatorPresenter");
ajax.setMethodName("doAddOperatorRoles");
ajax.addParam("operatorCode", operatorCode);
ajax.addParam("roleIds", roleIds);
ajax.setFailureAlert();
ajax.setSuccessReload();
ajax.setLoading(document);
ajax.execute();
}
function doDeleteOperatorRole(operatorCode, roleId)
{//删除操作员角色
var ajax = new Z.Ajax();
ajax.setContextPath("${context.getContextPath()}");
ajax.setClassName("ZmrOperatorPresenter");
ajax.setMethodName("doDeleteOperatorRole");
ajax.addParam("operatorCode", operatorCode);
ajax.addParam("roleId", roleId);
ajax.setFailureAlert();
ajax.setSuccessReload();
ajax.execute();
}
</script>
${zhiqim_manager_breadcrumb("操作员管理")}
${zhiqim_manager_content()}
<#-- 导航 -->
<div class="z-tabnav-main z-mg-b20 ${zmr_color_class}">
<nav>
<ul>
<li class="z-active">操作员管理</li>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/role.htm")><li onclick="Z.L.href('role.htm');">操作员角色</li></#if>
</ul>
<div class="z-float-left z-mg10">
<form name="theForm" method="post">
<span class="z-float-left">
<select name="operatorStatus" class="z-select z-w70" data-role="z-select" data-class="zi-bd-r-none ${zmr_color_class}" data-options="maxHeight:220px;" onchange="this.form.submit();">
<option value="">全部</option>
<option value="0" <#if operatorStatus == 0>selected</#if>>正常</option>
<option value="1" <#if operatorStatus == 1>selected</#if>>停用</option>
</select>
</span>
<input name="operatorKey" class="z-float-left z-input z-w150 zi-bd-r-none" value="${operatorKey}" maxlength="64" placeholder="操作员编码或名称" spellcheck="false">
<button class="z-float-left z-button z-w80 zi-bd-rd0 ${zmr_color_class}"><i class="z-font z-query"></i>查询</button>
</form>
</div>
<#if ZmrAdminRule.check(request)>
<div class="z-float-right z-mg-t10 z-mg-r5">
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/operatorRuleView.htm")><button class="z-button ${zmr_color_class}" onclick="Z.L.check('operatorRuleView.htm', 'operatorCode');"><i class="z-font z-customer"></i>查看权限</button></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/operatorRule.htm")><button class="z-button ${zmr_color_class}" onclick="Z.L.check('operatorRule.htm', 'operatorCode');">设置独立权限</button></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/operatorAdd.htm")><button class="z-button ${zmr_color_class}" onclick="Z.L.href('operatorAdd.htm');"><i class="z-font z-add"></i>增加操作员</button></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/operatorModify.htm")><button class="z-button ${zmr_color_class}" onclick="Z.L.check('operatorModify.htm', 'operatorCode');"><i class="z-font z-modify"></i>修改操作员</button></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/operatorDelete.htm")><button class="z-button z-red" onclick="Z.L.confirm('operatorDelete.htm', '确认要删除该操作员?', 'operatorCode', zCallFrame);"><i class="z-font z-delete"></i>删除操作员</button></#if>
</div>
</#if>
</nav>
</div>
<#-- 列表 -->
<table class="z-table z-bordered z-pd5 z-bg-white z-text-center">
<tr class="z-h40" bgcolor="${zmr_thead_bgcolor}">
<td width="50">选择</td>
<td width="70">头像</td>
<td width="6%">操作员编码</td>
<td width="6%">操作员名称</td>
<td width="50">状态</td>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/dept.htm")>
<td width="250">
<table class="z-table z-pd5 z-lh150p">
<tr>
<td width="*" align="left">所属部门</td>
<td width="38"><#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/operatorDept.htm")><a class="blue" href="javascript:void(0);" onclick="doSelectorDeptDialog();">设置</a></#if></td>
</tr>
</table>
</td>
<td width="170">
<#else>
<td width="250">
</#if>
<table class="z-table z-pd5 z-lh150p">
<tr>
<td width="*" align="left">所属角色</td>
<td width="38"><#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/operatorRole.htm")><a class="blue" href="javascript:void(0);" onclick="doSelectorRoleDialog();">设置</a></#if></td>
</tr>
</table>
</td>
<td width="100">手机号</td>
<td width="120">个人微信</td>
<td width="120">企业微信账号</td>
<td width="80">更新时间</td>
</tr>
${zhiqim_manager_tr_no_record(result, 11, "暂时没有操作员信息")}
<#for item : result.list()>
<tr class="z-pointer" ${zhiqim_manager_tr_onmouse()} ${zhiqim_manager_tr_click_radio()}>
<td>
<#if ZmrAdminMutexRule.check(request, item)>
<input name="operatorCode" type="radio" data-role="z-radio" data-class="${zmr_color_class}" value="${item.getOperatorCode()}">
</#if>
</td>
<td><img src="${sessionUser.getAvatarUrl(item.getOperatorAvatar(), 50)}" class="z-w50 z-h50 z-bd-rd50p"></td>
<td>${item.getOperatorCode()}</td>
<td>#{item.getOperatorName()}</td>
<td>${item.getOperatorStatus()==0?"正常":"<span class='z-color-red'>停用</span>"}</td>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/dept.htm")>
<td>
<table class="z-table z-bordered-line zi-bd-t-none z-pd5 z-lh150p">
<#var deptIds = Arrays.toLongArray(item.getOperatorDept())/>
<#for deptName : Arrays.toStringArray(item.getOperatorCreated())>
<tr>
<td width="*" align="left" class="zi-bd-b-none">#{deptName}</td>
<td width="38" class="zi-bd-b-none">
<#if ZmrAdminMutexRule.check(request, item)>
<a href="javascript:doDeleteOperatorDept('#{item.getOperatorCode()}', '#{deptIds[deptName_index]}')">取消</a>
</#if>
</td>
</tr>
</#for>
</table>
</td>
</#if>
<td>
<table class="z-table z-bordered-line zi-bd-t-none z-pd5 z-lh150p">
<#var roleIds = Arrays.toLongArray(item.getOperatorRole())/>
<#for roleName : Arrays.toStringArray(item.getOperatorPass())>
<tr>
<td width="*" align="left" class="zi-bd-b-none">#{roleName}</td>
<td width="38" class="zi-bd-b-none">
<#if ZmrAdminMutexRule.check(request, item)>
<a href="javascript:doDeleteOperatorRole('#{item.getOperatorCode()}', '#{roleIds[roleName_index]}')">取消</a>
</#if>
</td>
</tr>
</#for>
</table>
</td>
<td class="z-lh150p">
#{item.getOperatorMobile()}
</td>
<td class="z-lh150p">
#{item.getOperatorWxcode()}
</td>
<td class="z-lh150p">
#{item.getWkwechatAccount()}
</td>
<td class="z-lh150p">#{item.getOperatorModified()}</td>
</tr>
</#for>
</table>
${zhiqim_manager_paging(result)}
${zhiqim_manager_content_end()}
@@ -0,0 +1,105 @@
${Scripts.onload("document.theForm.operatorCode.focus();")}
${zhiqim_manager_history("operator.htm")}
${request.getValidateScript()}
<script>
function doRandomPass()
{
var random = Z.random(4, 4) + Z.random(1, 9) + Z.random(3, 1);
Z("#randomPass").text(random);
Z(theForm.operatorPass).val(random);
}
function doInsertOperatorInfo(form)
{
var ajax = new Z.Ajax();
ajax.setClassName("ZmrOperatorPresenter");
ajax.setMethodName("insert");
ajax.addParam("operatorCode", form.operatorCode.value);
ajax.addParam("operatorName", form.operatorName.value);
ajax.addParam("operatorPass", form.operatorPass.value);
ajax.addParam("operatorStatus", form.operatorStatus.value);
ajax.addParam("operatorMobile", form.operatorMobile.value);
ajax.addParam("operatorWxcode", form.operatorWxcode.value);
if(form.operatorType != undefined){
ajax.addParam("operatorType", form.operatorType.value);
}else{
ajax.addParam("operatorType", 2);
}
var operator= new Object();
operator.operatorCode=form.operatorCode.value;
operator.operatorName=form.operatorName.value;
operator.operatorStatus=form.operatorStatus.value;
operator.operatorMobile=form.operatorMobile.value;
if(form.operatorType != undefined){
operator.operatorType=form.operatorType.value;
}else{
operator.operatorType=2;
}
ajax.setFailureAlert();
ajax.setSuccess(function(){
doSuccessDialog(operator);
});
ajax.setLoading("modifyBtn", '正在提交', {disabled:true});
ajax.execute();
}
function doSuccessDialog(operator)
{//标题、URL、宽度和高度四个值是必须的
var dialog = new Z.Dialog();
dialog.title = "添加成功";
var operatorPass = Z("#operatorPass")[0].value;
const host = window.location.protocol+"//"+window.location.host;
dialog.url = "operatorAddSuccess.htm?host="+encodeURIComponent(host)+"&operatorCode="+encodeURIComponent(operator.operatorCode)+"&operatorPass="+encodeURIComponent(operatorPass);
dialog.width = 422;
dialog.height = 238;
dialog.fixed = true;
dialog.scroll = true;
dialog.execute();
}
</script>
${zhiqim_manager_breadcrumb_parent("operator.htm", "操作员管理", "增加操作员")}
${zhiqim_manager_content()}
<form name="theForm" action="javascript:void(0);" method="post" onSubmit="return doInsertOperatorInfo(this);" data-role="z-call-frame">
<input type="text" class="z-hidden-fixed"/>
<input type="password" class="z-hidden-fixed"/>
<table class="z-table z-bordered z-h50-tr z-pd10 z-lh150p z-bg-white">
<tr class="zi-h40 z-bg-gray z-bold">
<td colspan="2">增加操作员</td>
</tr>
<tr>
<td width="40%">操作员编码:<span class="z-color-999">2-16位字母数字或汉字开头,字母数字汉字特殊字符组成,特殊字符支持<span class="z-samp">._-`~!@#$%</span></span></td>
<td width="*"><input name="operatorCode" class="z-input z-w300 ${zmr_color_class}" maxlength="16"><span class="z-color-red">&nbsp;*</span></td>
</tr>
<tr>
<td>操作员名称:<span class="z-color-999">64位不定长字符)</span></td>
<td><input name="operatorName" class="z-input z-w300 ${zmr_color_class}" maxlength="64"><span class="z-color-red">&nbsp;*</span></td>
</tr>
<tr>
<td>操作员密码:<span class="z-color-999">6-16位密码,大写字母、小写字母、数字和特殊字符必须四选三,特殊字符支持<span class="z-samp">._-`~!@#$%</span></span></td>
<td><input name="operatorPass" id="operatorPass" type="password" class="z-input z-w300 ${zmr_color_class}" maxlength="16"><span class="z-color-red">&nbsp;*</span>&nbsp;<button type="button" class="z-button z-h30" onclick="doRandomPass()">随机</button>&nbsp;<span id="randomPass" class="z-samp"></span></td>
</tr>
<tr>
<td>操作员状态:<span class="z-color-999">(停用或正常)</span></td>
<td><select name="operatorStatus" class="z-select z-w300" data-role="z-select" data-class="${zmr_color_class}"><option value="0">正常</option><option value="1">停用</option></select><span class="z-color-red">&nbsp;*</span></td>
</tr>
<tr>
<td>操作员手机号:</td>
<td><input name="operatorMobile" class="z-input z-w300 ${zmr_color_class}" maxlength="21"><span class="z-color-red">&nbsp;*</span></td>
</tr>
<tr>
<td>操作员个人微信号:</td>
<td><input name="operatorWxcode" class="z-input z-w300 ${zmr_color_class}" maxlength="64"><span class="z-color-red">&nbsp;*</span></td>
</tr>
<#if ZmrSuperAdminRule.check(request)>
<tr>
<td>操作员类型:<span class="z-color-999">(管理员或操作员)</span></td>
<td><select name="operatorType" class="z-select z-w300" data-role="z-select" data-class="${zmr_color_class}" ><option value="2">操作员</option><option value="1">管理员</option></select><span class="z-color-red">&nbsp;*</span></td>
</tr>
</#if>
</table>
${zhiqim_manager_submit()}
</form>
${zhiqim_manager_content_end()}
@@ -0,0 +1,34 @@
${Styles.htmlOverflowHidden()}
<script>
function doCopyInfo(){
const input = document.createElement('textarea');
input.value ="设计平台地址:${host}\n登录账号:${operatorCode}\n初始密码:${operatorPass}";
document.body.appendChild(input);
input.select();
document.execCommand('Copy');
document.body.removeChild(input);
top.Z.tips("复制成功");
}
</script>
<table class="z-table z-h20-tr z-pd10 z-lh80p z-bg-white">
<tr>
<td width="40%">设计平台地址:</td>
<td width="*">${host}</td>
</tr>
<tr>
<td>登录账号:</td>
<td>${operatorCode}</td>
</tr>
<tr>
<td>初始密码:</td>
<td>${operatorPass}</td>
</tr>
</table>
<span class="z-color-red" style="margin-top:10px;">&nbsp;&nbsp;温馨提示:首次登陆请务必修改密码</span>
<#-- 操作 -->
<div class="z-fixed z-b0 z-l0 z-w100p z-h60 z-pd10 z-text-center">
<button class="z-button ${zmr_color_class}" onclick="doCopyInfo();">一键复制</button>
<button class="z-button" onclick="parent.Z.Dialog.close(location.hash);">关闭</button>
</div>
@@ -0,0 +1,47 @@
${Styles.htmlOverflowHidden()}
<script>
Z.onload(function()
{
Z(document.forms[0].deptName).focusEnd();
});
function doSelector()
{
var deptIds = Z.FM.getCheckeds("deptId");
parent.doSelectorDeptCallback("${operator.getOperatorCode()}", deptIds);
}
</script>
<#-- 查询 -->
<div class="z-fixed z-t0 z-l0 z-w100p z-pd10 z-bg-gray">
<form method="post">
<input name="operatorCode" type="hidden" value="${operator.getOperatorCode()}">
<input name="deptName" class="z-float-left z-input z-w300 zi-h35 zi-bd-r-none" placeholder="部门名称查找" value="${deptName}" maxlength="20">
<button type="submit" class="z-float-left z-button z-w70 z-h35 zi-bd-rd0 ${zmr_color_class}"><i class="z-font z-query"></i></button>
</form>
</div>
<#-- 列表 -->
<div class="z-w100p z-pd10 z-overflow-auto" style="margin-top:55px;height:306px;">
<table class="z-table z-bordered z-h40-tr z-pd5 z-bg-white z-text-center">
<tr class="z-bg-gray">
<td width="50">选择</td>
<td width="*" class="z-text-left">部门名称</td>
<td width="50">状态</td>
</tr>
${zhiqim_manager_tr_no_record(list, 3, "没有可设置的部门")}
<#for item : list>
<tr class="z-pointer" ${zhiqim_manager_tr_onmouse()} ${zhiqim_manager_tr_click_checkbox()}>
<td><input name="deptId" type="checkbox" data-role="z-checkbox" data-class="z-blue" value="${item.getDeptId()}"></td>
<td class="z-text-left">${item.getDeptName()}</td>
<td><#if item.getDeptStatus()==0>正常<#else><span class="z-color-red">停用</span></#if></td>
</tr>
</#for>
</tale>
</div>
<#-- 操作 -->
<div class="z-fixed z-b0 z-l0 z-w100p z-h60 z-pd10 z-bg-gray z-text-center">
<button class="z-button z-large z-w150 ${zmr_color_class}" onclick="doSelector();">确定</button>
<button class="z-button z-large z-w70 z-mg-l10" onclick="parent.Z.Dialog.close(location.hash);">取消</button>
</div>
@@ -0,0 +1,79 @@
${zhiqim_manager_history("operator.htm")}
${request.getValidateScript()}
<script>
function doRandomPass()
{
var random = Z.random(4, 4) + Z.random(1, 9) + Z.random(3, 1);
Z("#randomPass").text(random);
Z(theForm.operatorPass).val(random);
}
</script>
${zhiqim_manager_breadcrumb_parent("operator.htm" "操作员管理" "修改操作员")}
${zhiqim_manager_content()}
<form name="theForm" action="operatorUpdate.htm" method="post" onsubmit="return validateForm(this);" data-role="z-call-frame">
<input type="text" class="z-hidden-fixed"/>
<input type="password" class="z-hidden-fixed"/>
<input name="operatorCode" type="hidden" value="${operator.getOperatorCode()}">
<table class="z-table z-bordered z-h50-tr z-pd10 z-lh150p z-bg-white">
<tr class="zi-h40 z-bg-gray z-bold">
<td colspan="2">修改操作员</td>
</tr>
<tr>
<td width="40%">操作员编码:</td>
<td width="*">${operator.getOperatorCode()}</td>
</tr>
<tr>
<td>操作员名称:<span class="z-color-999">64位不定长字符)</span></td>
<td><input name="operatorName" class="z-input z-w300 ${zmr_color_class}" value="#{operator.getOperatorName()}" maxlength="64"><span class="z-color-red">&nbsp;*</span></td>
</tr>
<tr>
<td>操作员密码:<span class="z-color-999">(为空表示不修改,如果修改请输入6-16位密码,大小写字母数字特殊字符必须四选三,特殊字符支持<span class="z-samp">._-`~!@#$%</span></span></td>
<td><input name="operatorPass" type="password" class="z-input z-w300 ${zmr_color_class}" maxlength="16">&nbsp<button type="button" class="z-button z-h30" onclick="doRandomPass()">随机</button>&nbsp<span id="randomPass" class="z-samp"></span></td>
</tr>
<tr>
<td>操作员状态:<span class="z-color-999">(停用或正常)</span></td>
<td>
<select name="operatorStatus" class="z-select z-w300" data-role="z-select" data-class="${zmr_color_class}">
<option value="0" <#if operator.getOperatorStatus()=0>selected</#if>>正常</option>
<option value="1" <#if operator.getOperatorStatus()=1>selected</#if>>停用</option>
</select>
<span class="z-color-red">&nbsp;*</span>
</td>
</tr>
<tr>
<td>操作员手机号:</td>
<td><input name="operatorMobile" class="z-input z-w300 ${zmr_color_class}" value="${operator.getOperatorMobile()}" maxlength="21"><span class="z-color-red">&nbsp;*</span></td>
</tr>
<tr>
<td>操作员个人微信号:</td>
<td><input name="operatorWxcode" class="z-input z-w300 ${zmr_color_class}" value="${operator.getOperatorWxcode()}" maxlength="64"><span class="z-color-red">&nbsp;*</span></td>
</tr>
<#if ZmrSuperAdminRule.check(request)>
<tr>
<td>操作员类型:<span class="z-color-999">(管理员或操作员)</span></td>
<td>
<select name="operatorType" class="z-select z-w300" data-role="z-select" data-class="${zmr_color_class}" >
<option value="2" <#if operator.getOperatorType()==2>selected</#if>>操作员</option>
<option value="1" <#if operator.getOperatorType()==1>selected</#if>>管理员</option>
</select>
<span class="z-color-red">&nbsp;*</span>
</td>
</tr>
<#else>
<tr>
<td>操作员类型:<span class="z-color-999"></span></td>
<td>
<input type="hidden" name="operatorType" value="${operator.getOperatorType()}">
<#if operator.getOperatorType()=2>操作员</#if>
<#if operator.getOperatorType()=1><span class="z-color-red">管理员</span></#if>
<#if operator.getOperatorType()=0><span class="z-color-red">超级管理员</span></#if>
</td>
</tr>
</#if>
</table>
${zhiqim_manager_submit()}
</form>
${zhiqim_manager_content_end()}
@@ -0,0 +1,58 @@
<script>
function doRemove(sessionId)
{
var ajax = new Z.Ajax();
ajax.setClassName("ZmrOperatorPresenter");
ajax.setMethodName("RemoveOnlineOperator");
ajax.addParam(sessionId);
ajax.setFailureAlert();
ajax.setSuccessAlertReload("剔除成功");
ajax.execute();
}
</script>
${zhiqim_manager_breadcrumb("操作员在线列表")}
${zhiqim_manager_content()}
<#-- 导航 -->
<div class="z-tabnav-main z-mg-b20 ${zmr_color_class}">
<nav>
<ul>
<li onclick="Z.L.href('operateLog.htm');">操作日志查询</li>
<li class="z-active">操作员在线列表</li>
</ul>
</nav>
</div>
<#-- 列表 -->
<table class="z-table z-bordered z-mg-t20 z-pd10 z-bg-white z-lh150p z-text-center">
<tr class="z-h40" bgcolor="${zmr_thead_bgcolor}">
<td width="180">操作员编码</td>
<td width="180">操作员名称</td>
<td width="20%">登录时间</td>
<td width="*">最后访问</td>
<td width="120">管理员</td>
<td width="120">操作</td>
</tr>
<#for item : result.list()>
<tr class="z-h60" bgcolor="${zhiqim_manager_tr_bg(item_index)}">
<td>${item.getOperatorCode()}</td>
<td>${item.getOperatorName()}</td>
<td>${item.getCreateTime()}</td>
<td>${item.getLastAccessTime()}(还剩<span class="z-text-red">${item.getRemainMinute()}</span>分钟)</td>
<td><#if item.getOperatorType() lt 2>是<#else>否</#if></td>
<td>
<#if sessionUser.getSessionId() == item.getSessionId()>
自己
<#elseif ZmrAdminRule.check(request)>
<button class="z-button z-red" onclick="doRemove('${item.getSessionId()}')">剔除</button>
<#else>
--
</#if>
</td>
</tr>
</#for>
${zhiqim_manager_tr_no_record(result, 6, "暂时没有操作员在线")}
</table>
${zhiqim_manager_paging(result)}
${zhiqim_manager_content_end()}
@@ -0,0 +1,47 @@
${Styles.htmlOverflowHidden()}
<script>
Z.onload(function()
{
Z(document.forms[0].roleName).focusEnd();
});
function doSelector()
{
var roleIds = Z.FM.getCheckeds("roleId");
parent.doSelectorRoleCallback("${operator.getOperatorCode()}", roleIds);
}
</script>
<#-- 查询 -->
<div class="z-fixed z-t0 z-l0 z-w100p z-pd10 z-bg-gray">
<form method="post">
<input name="operatorCode" type="hidden" value="${operator.getOperatorCode()}">
<input name="roleName" class="z-float-left z-input z-w300 zi-h35 zi-bd-r-none" placeholder="角色名称查找" value="${roleName}" maxlength="20">
<button type="submit" class="z-float-left z-button z-w70 z-h35 zi-bd-rd0 ${zmr_color_class}"><i class="z-font z-query"></i></button>
</form>
</div>
<#-- 列表 -->
<div class="z-w100p z-pd10 z-overflow-auto" style="margin-top:55px;height:306px;">
<table class="z-table z-bordered z-h40-tr z-pd5 z-bg-white z-text-center">
<tr class="z-bg-gray">
<td width="50">选择</td>
<td width="*" class="z-text-left">角色名称</td>
<td width="50">状态</td>
</tr>
${zhiqim_manager_tr_no_record(list, 3, "没有可设置的角色")}
<#for item : list>
<tr class="z-pointer" ${zhiqim_manager_tr_onmouse()} ${zhiqim_manager_tr_click_checkbox()}>
<td><input name="roleId" type="checkbox" data-role="z-checkbox" data-class="z-blue" value="${item.getRoleId()}"></td>
<td class="z-text-left">${item.getRoleName()}</td>
<td><#if item.getRoleStatus()==0>正常<#else><span class="z-color-red">停用</span></#if></td>
</tr>
</#for>
</tale>
</div>
<#-- 操作 -->
<div class="z-fixed z-b0 z-l0 z-w100p z-h60 z-pd10 z-bg-gray z-text-center">
<button class="z-button z-large z-w150 ${zmr_color_class}" onclick="doSelector();">确定</button>
<button class="z-button z-large z-w70 z-mg-l10" onclick="parent.Z.Dialog.close(location.hash);">取消</button>
</div>
@@ -0,0 +1,77 @@
<#-- 显示子菜单,并递归显示下级子菜单 -->
<#function showChildMenu(self, parent)>
<table class="z-table z-bordered zi-bd-t-none z-bg-white">
<tr class="z-h30">
<td width="*" class="zi-pd-l6">
<#var level = self.self().getMenuLevel()/>
<#for i : 1..(level-1)>
<#if self.isLastNode(level-i)>
<i class="z-ico z-tree z-30 z-normal z-blank"></i>
<#else>
<i class="z-ico z-tree z-30 z-normal z-vertline"></i>
</#if>
</#for>
<#if self.hasChildren()>
<a href="javascript:Zmr.treeExpand('${self.self().getMenuCode()}')"><i id="ico-${self.self().getMenuCode()}" class="z-ico z-tree z-30 z-normal <#if self.isLastNode()>z-mlastnode<#else>z-mnode</#if>"></i></a>
<#else>
<i class="z-ico z-tree z-30 z-normal <#if self.isLastNode()>z-lastnode<#else>z-node</#if>"></i>
</#if>
<i class="z-ico z-tree z-item z-mg-r3"></i>
<input name="rule" type="checkbox" class="z-h12" <#if ZmrOperatorDao.isOperatorRule(ruleList, self.self().getMenuCode())>checked</#if> onclick='Z.Forms.doSelectCheckBoxTree("rule", this.checked, this.value, this.form);' value="${self.self().getMenuCode()}">
#{self.self().getMenuName()}
</td>
<td width="10%" class="zi-pd-l6">#{self.self().getMenuNameAbbr()}</td>
<td width="20%" class="zi-pd-l6">#{self.self().getMenuCode()}</td>
<td width="8%" align="center">#{self.self().getMenuLevel()}</td>
<td width="15%" align="center"><#if self.self().getMenuType()==1>节点<#else>属性</#if></td>
</tr>
</table>
<#if self.hasChildren()>
<div id="menu-${self.self().getMenuCode()}">
<#for child : self.children()>
${showChildMenu(child, self)}
</#for>
</div>
</#if>
</#function>
${zhiqim_manager_history("operator.htm")}
${zhiqim_manager_breadcrumb_parent("operator.htm" "操作员管理" "操作员权限信息")}
${zhiqim_manager_content()}
<table class="z-table z-mg-b3">
<tr>
<td align="right"><span class="z-text-blue"><span style="font-family: Wingdings;">&#38;</span>&nbsp;说明:根据系统菜单显示操作员权限信息</span></td>
</tr>
</table>
<#if operator.getOperatorType() gt 0>
<form name="theForm" method="post" data-role="z-call-frame">
<input name="operatorCode" type="hidden" value="${operator.getOperatorCode()}">
</#if>
<table class="z-table z-bordered z-h30-tr z-pd5 z-bg-white">
<tr class="zi-h40">
<td colspan="5" class="z-bold z-px14">操作员[${operator.getOperatorCode()}]权限表</td>
</tr>
<tr class="zi-h40" bgcolor="${zmr_thead_bgcolor}">
<td width="*">菜单目录</td>
<td width="10%">菜单简称</td>
<td width="20%">菜单编码</td>
<td width="8%" align="center">菜单级别</td>
<td width="15%" align="center">菜单类型</td>
</tr>
<tr>
<td class="zi-pd-l6"><i class="z-ico z-tree z-30 z-normal z-root z-mg-r3"></i><input name="rule" type="checkbox" class="z-h12" <#if ZmrOperatorDao.isOperatorRule(ruleList, tree.self().getMenuCode())>checked</#if> onclick='Z.Forms.doSelectCheckBoxTree("rule", this.checked, this.value, this.form);' value="#{tree.self().getMenuCode()}">系统功能根菜单</td>
<td class="zi-pd-l6">#{tree.self().getMenuNameAbbr()}</td>
<td class="zi-pd-l6">#{tree.self().getMenuCode()}</td>
<td align="center">#{tree.self().getMenuLevel()}</td>
<td align="center">根节点</td>
</tr>
</table>
<#for child : tree.children()>
${showChildMenu(child, tree)}
</#for>
<#if operator.getOperatorType() gt 0>
${zhiqim_manager_submit()}
</form>
</#if>
${zhiqim_manager_list(menuSize)}
${zhiqim_manager_content_end()}
@@ -0,0 +1,70 @@
<#-- 显示子菜单,并递归显示下级子菜单 -->
<#function showChildMenu(self, parent)>
<table class="z-table z-bordered zi-bd-t-none z-bg-white">
<tr class="z-h30">
<td width="*" class="zi-pd-l6">
<#var level = self.self().getMenuLevel()/>
<#for i : 1..(level-1)>
<#if self.isLastNode(level-i)>
<i class="z-ico z-tree z-30 z-normal z-blank"></i>
<#else>
<i class="z-ico z-tree z-30 z-normal z-vertline"></i>
</#if>
</#for>
<#if self.hasChildren()>
<a href="javascript:Zmr.treeExpand('${self.self().getMenuCode()}')"><i id="ico-${self.self().getMenuCode()}" class="z-ico z-tree z-30 z-normal <#if self.isLastNode()>z-mlastnode<#else>z-mnode</#if>"></i></a>
<#else>
<i class="z-ico z-tree z-30 z-normal <#if self.isLastNode()>z-lastnode<#else>z-node</#if>"></i>
</#if>
<i class="z-ico z-tree z-item z-mg-r3"></i>
#{self.self().getMenuName()}
</td>
<td width="10%" class="zi-pd-l6">#{self.self().getMenuNameAbbr()}</td>
<td width="20%" class="zi-pd-l6">#{self.self().getMenuCode()}</td>
<td width="8%" align="center">#{self.self().getMenuLevel()}</td>
<td width="15%" align="center"><#if self.self().getMenuType()==1>节点<#else>属性</#if></td>
</tr>
</table>
<#if self.hasChildren()>
<div id="menu-${self.self().getMenuCode()}">
<#for child : self.children()>
${showChildMenu(child, self)}
</#for>
</div>
</#if>
</#function>
${zhiqim_manager_history("operator.htm")}
${zhiqim_manager_breadcrumb_parent("operator.htm" "操作员管理" "操作员权限信息")}
${zhiqim_manager_content()}
<table class="z-table z-mg-b3">
<tr>
<td align="right"><span class="z-text-blue"><span style="font-family: Wingdings;">&#38;</span>&nbsp;说明:根据系统菜单显示操作员权限信息</span></td>
</tr>
</table>
<table class="z-table z-bordered z-bg-white">
<tr class="z-h40">
<td class="z-bold z-px14 zi-pd-l5" colspan="5">操作员[${operator.getOperatorCode()}]权限表</td>
</tr>
<tr class="z-h40" bgcolor="${zmr_thead_bgcolor}">
<td width="*" class="zi-pd-l6">菜单目录</td>
<td width="10%" class="zi-pd-l6">菜单简称</td>
<td width="20%" class="zi-pd-l6">菜单编码</td>
<td width="8%" align="center">菜单级别</td>
<td width="15%" align="center">菜单类型</td>
</tr>
<tr class="z-h30">
<td class="zi-pd-l6"><i class="z-ico z-tree z-30 z-normal z-root z-mg-r3"></i>系统功能根菜单</td>
<td class="zi-pd-l6">#{tree.self().getMenuNameAbbr()}</td>
<td class="zi-pd-l6">#{tree.self().getMenuCode()}</td>
<td align="center">#{tree.self().getMenuLevel()}</td>
<td align="center">根节点</td>
</tr>
</table>
<#for child : tree.children()>
${showChildMenu(child, tree)}
</#for>
</table>
${zhiqim_manager_return()}
${zhiqim_manager_list(menuSize)}
${zhiqim_manager_content_end()}
@@ -0,0 +1,49 @@
${Styles.htmlOverflowHidden()}
<script>
Z.onload(function()
{
Z(document.forms[0].operatorKey).focusEnd();
});
function doSelector()
{
var operatorCode = Z.FM.getChecked("operatorCode");
parent.doSelectorCallback(operatorCode);
parent.Z.Dialog.close(location.hash);
}
</script>
<#-- 查询 -->
<div class="z-fixed z-t0 z-l0 z-w100p z-pd10 z-bg-gray">
<form method="post">
<input name="operatorKey" class="z-float-left z-input z-w300 zi-h35 zi-bd-r-none" placeholder="操作员编码或名称" value="${operatorKey}" maxlength="20">
<button type="submit" class="z-float-left z-button z-w70 z-h35 zi-bd-rd0 ${zmr_color_class}"><i class="z-font z-query"></i></button>
</form>
</div>
<#-- 列表 -->
<div class="z-w100p z-pd10 z-overflow-auto" style="margin-top:55px;height:306px;">
<table class="z-table z-bordered z-pd5 z-text-center">
<tr class="z-h40 z-bg-gray">
<td width="60">选择</td>
<td width="90">操作员头像</td>
<td width="110">操作员编码</td>
<td width="*">操作员姓名</td>
</tr>
${zhiqim_manager_tr_no_record(list, 4, "没有可选择的操作员")}
<#for item : list>
<tr class="z-pointer" ${zhiqim_manager_tr_onmouse()} ${zhiqim_manager_tr_click_radio()}>
<td><input name="operatorCode" type="radio" data-role="z-radio" data-class="z-blue" value="${item.getOperatorCode()}"></td>
<td><img class="z-w50 z-h50 z-bd-rd50p" src="${sessionUser.getAvatarUrl(item.getOperatorAvatar(), 50)}"></td>
<td>${item.getOperatorCode()}</td>
<td>${item.getOperatorName()}</td>
</tr>
</#for>
</tale>
</div>
<#-- 操作 -->
<div class="z-fixed z-b0 z-l0 z-w100p z-h60 z-pd10 z-bg-gray z-text-center">
<button class="z-button z-large z-w150 ${zmr_color_class}" onclick="doSelector();">确定</button>
<button class="z-button z-large z-w70 z-mg-l10" onclick="parent.Z.Dialog.close(location.hash);">取消</button>
</div>
@@ -0,0 +1,49 @@
${Styles.htmlOverflowHidden()}
<script>
Z.onload(function()
{
Z(document.forms[0].operatorKey).focusEnd();
});
function doSelector()
{
var operatorCodes = Z.FM.getCheckeds("operatorCodes");
parent.doOperatorsSelectorCallback(operatorCodes);
parent.Z.Dialog.close(location.hash);
}
</script>
<#-- 查询 -->
<div class="z-fixed z-t0 z-l0 z-w100p z-pd10 z-bg-gray">
<form method="post">
<input name="operatorKey" class="z-float-left z-input z-w300 zi-h35 zi-bd-r-none" placeholder="操作员编码或名称" value="${operatorKey}" maxlength="20">
<button type="submit" class="z-float-left z-button z-w70 z-h35 zi-bd-rd0 ${zmr_color_class}"><i class="z-font z-query"></i></button>
</form>
</div>
<#-- 列表 -->
<div class="z-w100p z-pd10 z-overflow-auto" style="margin-top:55px;height:306px;">
<table class="z-table z-bordered z-pd5 z-text-center">
<tr class="z-h40 z-bg-gray">
<td width="60">选择</td>
<td width="90">操作员头像</td>
<td width="110">操作员编码</td>
<td width="*">操作员姓名</td>
</tr>
${zhiqim_manager_tr_no_record(list, 4, "没有可选择的操作员")}
<#for item : list>
<tr class="z-pointer" ${zhiqim_manager_tr_onmouse()} ${zhiqim_manager_tr_click_checkbox()}>
<td><input name="operatorCodes" type="checkbox" data-role="z-checkbox" data-class="z-blue" value="${item.getOperatorCode()}"></td>
<td><img class="z-w50 z-h50 z-bd-rd50p" src="${sessionUser.getAvatarUrl(item.getOperatorAvatar(), 50)}"></td>
<td>${item.getOperatorCode()}</td>
<td>${item.getOperatorName()}</td>
</tr>
</#for>
</tale>
</div>
<#-- 操作 -->
<div class="z-fixed z-b0 z-l0 z-w100p z-h60 z-pd10 z-bg-gray z-text-center">
<button class="z-button z-large z-w150 ${zmr_color_class}" onclick="doSelector();">确定</button>
<button class="z-button z-large z-w70 z-mg-l10" onclick="parent.Z.Dialog.close(location.hash);">取消</button>
</div>
@@ -0,0 +1,69 @@
${zhiqim_manager_breadcrumb("组织管理")}
${zhiqim_manager_content()}
<#-- 导航 -->
<div class="z-tabnav-main z-mg-b20 ${zmr_color_class}">
<nav>
<ul>
<li class="z-active">组织管理</li>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/orgRule.htm")><li onclick="Z.L.href('orgRule.htm');">组织权限</li></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/dept.htm")><li onclick="Z.L.href('dept.htm');">部门管理</li></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/deptOperator.htm")><li onclick="Z.L.href('deptOperator.htm');">部门成员</li></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/deptRule.htm")><li onclick="Z.L.href('deptRule.htm');">部门权限</li></#if>
</ul>
<div class="z-float-right z-mg-t10 z-mg-r5">
<#if ZmrAdminRule.check(request)>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/orgAdd.htm")><button class="z-button ${zmr_color_class}" onclick="Z.L.href('orgAdd.htm');"><i class="z-font z-add"></i>增加组织</button></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/orgModify.htm")><button class="z-button ${zmr_color_class}" onclick="Z.L.check('orgModify.htm', 'orgId');"><i class="z-font z-modify"></i>修改组织</button></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/orgDelete.htm")><button class="z-button z-red" onclick="Z.L.confirm('orgDelete.htm', '确认要删除该组织?', 'orgId', zCallFrame);"><i class="z-font z-delete"></i>删除组织</button></#if>
</#if>
</div>
</nav>
</div>
<#-- 列表 -->
<table class="z-table z-bordered zi-h30-tr z-text-center z-bg-white">
<tr class="zi-h40" bgcolor="${zmr_thead_bgcolor}">
<td width="50">选择</td>
<td width="200">组织编号</td>
<td width="*">组织名称</td>
<td width="12%">组织状态</td>
<td width="12%">组织级别</td>
<td width="12%">组织负责人</td>
</tr>
<#if size == 0>
${zhiqim_manager_no_record(6, "暂时没有组织信息")}
<#else>
<#for item : list>
<tr class="z-pointer zi-h30" ${zhiqim_manager_tr_onmouse()} ${zhiqim_manager_tr_click_radio()}>
<td>
<#if ZmrAdminRule.check(request)>
<input name="orgId" type="radio" data-role="z-radio" data-class="${zmr_color_class}" value="${item.getOrgId()}">
</#if>
</td>
<td>${item.getOrgId()}</td>
<#if item.getOrgLevel() == 0 >
<td align="left" class="zi-pd-l6"><i class="z-ico z-tree z-normal z-30 z-root z-mg-r3"></i>#{item.getOrgName()}</td>
</#if>
<#if item.getOrgLevel() == 1 >
<td align="left" class="zi-pd-l6">
<#if item_index == list.size()-1>
<i class="z-ico z-tree z-30 z-lastnode z-normal"></i>
<#else>
<i class="z-ico z-tree z-30 z-node z-normal"></i>
</#if>
<i class="z-ico z-tree z-item z-mg-r3"></i>#{item.getOrgName()}
</td>
</#if>
<td><#if item.getOrgStatus() == 0>正常<#else><span class="z-color-red">停用</span></#if></td>
<td>${item.getOrgLevel()}</td>
<td>${item.getOrgManager()}</td>
</tr>
</#for>
</#if>
</table>
${zhiqim_manager_list(list.size())}
${zhiqim_manager_content_end()}
@@ -0,0 +1,36 @@
${Scripts.onload("document.theForm.orgName.focus();")}
${zhiqim_manager_history("org.htm")}
${request.getValidateScript()}
${zhiqim_manager_breadcrumb_parent("org.htm" "组织管理" "增加组织")}
${zhiqim_manager_content()}
<form name="theForm" method="post" action="orgInsert.htm" onsubmit="return validateForm(this);" data-role="z-call-frame">
<input name="parentId" type="hidden" value="${parent.getOrgId()}">
<table class="z-table z-bordered z-h50-tr z-pd10 z-lh150p z-bg-white">
<tr class="zi-h40 z-bg-gray z-bold">
<td colspan="2">增加组织</td>
</tr>
<tr>
<td width="40%">上级组织:<span class="z-color-999"></span></td>
<td width="*">${parent.getOrgName()}</td>
</tr>
<tr>
<td>组织名称:<span class="z-color-999">2-12位)</span></td>
<td><input name="orgName" class="z-input z-w300 ${zmr_color_class}" maxlength="12"><span class="z-color-red">&nbsp;*</span></td>
</tr>
<tr>
<td>组织状态:<span class="z-color-999">(正常|停用)</span></td>
<td><select name="orgStatus" class="z-select z-w300" data-role="z-select" data-class="${zmr_color_class}"><option value="0">正常</option><option value="1">停用</option></select><span class="z-color-red">&nbsp;*</span></td>
</tr>
<tr>
<td>组织排序数:<span class="z-color-999">(必须是[0, 999999]范围的非负整数)</span></td>
<td><input name="orgSeq" class="z-input z-w300 ${zmr_color_class}" data-options="type:Integer;" value="100" maxlength="6"><span class="z-color-red">&nbsp;*</span></td>
</tr>
<tr>
<td>组织描述:<span class="z-color-999">(不能超过100个汉字)</span></td>
<td><textarea name="orgDesc" class="z-textarea z-w300 z-h120 ${zmr_color_class}" maxlength="100"></textarea></td>
</tr>
</table>
${zhiqim_manager_submit()}
</form>
${zhiqim_manager_content_end()}
@@ -0,0 +1,57 @@
${zhiqim_manager_history("org.htm")}
${request.getValidateScript()}
<script>
function doSelectorDialog(orgId)
{//弹出操作员选择框
var dialog = new Z.Dialog();
dialog.title = "选择操作员";
dialog.url = "operatorSelector.htm?orgId="+orgId;
dialog.width = 392;
dialog.height = 423;
dialog.fixed = true;
dialog.scroll = true;
dialog.execute();
}
function doSelectorCallback(operatorCode)
{//选择操作员回调
document.theForm.orgManager.value = operatorCode;
}
</script>
${zhiqim_manager_breadcrumb_parent("org.htm" "组织管理" "修改组织")}
${zhiqim_manager_content()}
<form name="theForm" method="post" action="orgUpdate.htm" onsubmit="return validateForm(this);" data-role="z-call-frame">
<input name="orgId" type="hidden" value="${org.getOrgId()}">
<table class="z-table z-bordered z-h50-tr z-pd10 z-lh150p z-bg-white">
<tr class="zi-h40 z-bg-gray z-bold">
<td colspan="2">修改组织</td>
</tr>
<tr>
<td width="40%">组织编号:<span class="z-color-999"></span></td>
<td width="*">#{org.getOrgId()}</td>
</tr>
<tr>
<td>组织名称:<span class="z-color-999">2-12位)</span></td>
<td><input name="orgName" class="z-input z-w300 ${zmr_color_class}" value="#{org.getOrgName()}" maxlength="12"><span class="z-color-red">&nbsp;*</span></td>
</tr>
<tr>
<td>组织状态:<span class="z-color-999">(正常|停用)</span></td>
<td><select name="orgStatus" class="z-select z-w300" data-role="z-select" data-class="${zmr_color_class}"><option value="0"<#if org.getOrgStatus()==0> selected</#if>>正常</option><option value="1"<#if org.getOrgStatus()==1> selected</#if>>停用</option></select><span class="z-color-red">&nbsp;*</span></td>
</tr>
<tr>
<td>组织排序数:<span class="z-color-999">(必须是[0, 999999]范围的非负整数)</span></td>
<td><input name="orgSeq" class="z-input z-w300 ${zmr_color_class}" data-options="type:Integer;" value="#{org.getOrgSeq()}" maxlength="6"><span class="z-color-red">&nbsp;*</span></td>
</tr>
<tr>
<td>组织负责人:</td>
<td><input name="orgManager" class="z-input z-w130 zi-shadow-none" placeholder="请点按钮选择" value="#{org.getOrgManager()}" readonly><button type="button" class="z-button z-mg-l10 ${zmr_color_class}" onclick="doSelectorDialog(${org.getOrgId()});"><i class="z-font z-add"></i>选择操作员</button><button type="button" class="z-button z-mg-l3" onclick="doSelectorCallback('');">清除</button></td>
</tr>
<tr>
<td>组织描述:<span class="z-color-999">(不能超过100个汉字)</span></td>
<td><textarea name="orgDesc" class="z-textarea z-w300 z-h60 ${zmr_color_class}" maxlength="100">#{org.getOrgDesc()}</textarea></td>
</tr>
</table>
${zhiqim_manager_submit()}
</form>
${zhiqim_manager_content_end()}
@@ -0,0 +1,69 @@
<script>
Z.onload(function()
{
doSelectOrg(${list.get(0).getOrgId()});
});
function doSelectOrg(orgId)
{
var ajax = new Z.Ajax();
ajax.setContextPath("${context.getContextPath()}");
ajax.setClassName("ZmrOrgPresenter");
ajax.setMethodName("doShowOrgRuleList");
ajax.addParam("orgId", orgId);
ajax.setFailureAlert();
ajax.setSuccess(function()
{
Z("#result").htmlc(this.responseText);
Z("#ID"+orgId).addClass("z-bg-gray").siblings().removeClass("z-bg-gray");
});
ajax.setLoading("result");
ajax.execute();
}
</script>
${zhiqim_manager_breadcrumb("组织权限")}
${zhiqim_manager_content()}
<div class="z-tabnav-main z-mg-b20 ${zmr_color_class}">
<nav>
<ul>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/role.htm")><li onclick="Z.L.href('org.htm');">组织管理</li></#if>
<li class="z-active">组织权限</li>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/dept.htm")><li onclick="Z.L.href('dept.htm');">部门管理</li></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/deptOperator.htm")><li onclick="Z.L.href('deptOperator.htm');">部门成员</li></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/deptRule.htm")><li onclick="Z.L.href('deptRule.htm');">部门权限</li></#if>
</ul>
</nav>
</div>
<table class="z-table">
<tr>
<td width="200" valign="top">
<table class="z-table zi-bd z-bg-white">
<#for item : list>
<tr id="ID#{item.getOrgId()}" <#if item.getOrgLevel() == 0 >class="z-bg-gray" </#if>>
<#if item.getOrgLevel() == 0 >
<td class="zi-pd-t10 zi-pd-l10 z-bd-b "><i class="z-ico z-tree z-30 z-normal z-root z-mg-r3"></i><a href="javascript:void(0);" onclick="doSelectOrg('${item.getOrgId()}');">${item.getOrgName()}</a></td>
</#if>
<#if item.getOrgLevel() == 1 >
<td align="left" class="zi-pd-l10">
<#if item_index == list.size()-1>
<i class="z-ico z-tree z-30 z-normal z-lastnode"></i>
<#else>
<i class="z-ico z-tree z-30 z-normal z-node"></i>
</#if>
<i class="z-ico z-tree z-item z-mg-r3"></i>
<a href="javascript:void(0);" onclick="doSelectOrg('${item.getOrgId()}');">${item.getOrgName()}</a>
</td>
</#if>
</tr>
</#for>
</table>
</td>
<td width="10"></td>
<td id="result" width="*" valign="top"></td>
</tr>
</table>
${zhiqim_manager_content_end()}
@@ -0,0 +1,62 @@
${Styles.htmlOverflowHidden()}
<script>
function doSelector()
{
var orgId = Z.FM.getChecked("orgId");
var ajax = new Z.Ajax();
ajax.setContextPath("${context.getContextPath()}");
ajax.setClassName("ZmrOrgPresenter");
ajax.setMethodName("doSelOrg");
ajax.addParam("orgId", orgId);
ajax.setFailureAlert();
ajax.setSuccessReloadParent();
ajax.execute();
}
</script>
<#-- 查询 -->
<div class="z-fixed z-t0 z-l0 z-w100p z-pd10 z-bg-gray">
<form method="post">
<input name="orgName" class="z-float-left z-input z-w300 zi-h35 zi-bd-r-none" placeholder="组织名称" value="${orgName}" maxlength="20">
<button type="submit" class="z-float-left z-button z-w70 z-h35 zi-bd-rd0 ${zmr_color_class}"><i class="z-font z-query"></i></button>
</form>
</div>
<#-- 列表 -->
<div class="z-w100p z-pd10 z-overflow-auto" style="margin-top:55px;height:306px;">
<table class="z-table z-bordered z-text-center zi-h30-tr">
<tr class="z-h40 z-bg-gray">
<td width="60">选择</td>
<td width="*">组织名称</td>
<td width="80">组织状态</td>
</tr>
${zhiqim_manager_tr_no_record(list, 3, "没有可选择的组织")}
<#for item : list>
<tr class="z-pointer" ${zhiqim_manager_tr_onmouse()} ${zhiqim_manager_tr_click_radio()}>
<td><input name="orgId" type="radio" data-role="z-radio" data-class="z-blue" value="${item.getOrgId()}"></td>
<#if item.getOrgLevel() == 0 >
<td align="left" class="zi-pd-l6"><i class="z-ico z-tree z-normal z-30 z-root z-mg-r3"></i>#{item.getOrgName()}</td>
</#if>
<#if item.getOrgLevel() == 1 >
<td align="left" class="zi-pd-l6">
<#if item_index == list.size()-1>
<i class="z-ico z-tree z-30 z-normal z-lastnode"></i>
<#else>
<i class="z-ico z-tree z-30 z-normal z-node"></i>
</#if>
<i class="z-ico z-tree z-item z-mg-r3"></i>#{item.getOrgName()}
</td>
</#if>
<td><#if item.getOrgStatus() == 0>正常<#else><span class="z-color-red">停用</span></#if></td>
</tr>
</#for>
</table>
</div>
<#-- 操作 -->
<div class="z-fixed z-b0 z-l0 z-w100p z-h60 z-pd10 z-bg-gray z-text-center">
<button class="z-button z-large z-w150 ${zmr_color_class}" onclick="doSelector();">确定</button>
<button class="z-button z-large z-w70 z-mg-l10" onclick="parent.Z.Dialog.close(location.hash);">取消</button>
</div>
@@ -0,0 +1,59 @@
${request.getValidateSubmitScript()}
${zhiqim_manager_breadcrumb("系统参数")}
${zhiqim_manager_content()}
<#-- 导航 -->
<div class="z-tabnav-main z-mg-b20 ${zmr_color_class}">
<nav>
<ul>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/menu.htm")><li onclick="Z.L.href('menu.htm');">系统菜单</li></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/avatar.htm")><li onclick="Z.L.href('avatar.htm');">系统头像</li></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/config.htm")><li onclick="Z.L.href('config.htm');">系统配置</li></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/cache.htm")><li onclick="Z.L.href('cache.htm');">系统缓存</li></#if>
<li class="z-active">系统参数</li>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/paramOperator.htm")><li onclick="Z.L.href('paramOperator.htm');">操作员参数</li></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/themeIndex.htm")><li onclick="Z.L.href('themeIndex.htm');">首页主题</li></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/themeMain.htm")><li onclick="Z.L.href('themeMain.htm');">主页主题</li></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/keys.htm")><li onclick="Z.L.href('keys.htm');">密钥生成</li></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/process.htm")><li onclick="Z.L.href('process.htm');">进程信息</li></#if>
</ul>
</nav>
</div>
<#for group : groupMap.entrySet()>
<table class="z-table z-bordered z-pd10 <#if group_index gt 0>z-mg-t10</#if> z-bg-white">
${zhiqim_manager_tr_title(4, "系统参数["+group.getKey()+"]列表")}
<tr class="z-h40" bgcolor="${zmr_thead_bgcolor}">
<td width="20%">参数键</td>
<td width="*">参数值</td>
<td width="10%" class="z-text-center">操作</td>
<td width="30%">参数描述</td>
</tr>
${zhiqim_manager_tr_no_record(group.getValue(), 4, "暂时没有参数信息")}
</table>
<#for item : group.getValue().values()>
<#if ZmrAdminRule.check(request) && item.getParamType() == "public">
<form name="theForm${group_index}_${item_index}" method="post" onsubmit="return false;" data-role="z-call-frame">
<input name="paramGroup" type="hidden" value="${item.getParamGroup()}">
<input name="paramKey" type="hidden" value="${item.getParamKey()}">
</#if>
<table class="z-table z-bd-b z-bordered zi-bd-t-none z-h60-tr z-pd10" bgcolor="${zhiqim_manager_tr_bg(item_index)}">
<tr>
<td width="20%" class="zi-samp">#{item.getParamKey()}</td>
<#if ZmrAdminRule.check(request) && item.getParamType() == "public">
<td width="*"><input name="paramValue" class="z-input z-w100p zi-h40 <#if !Validates.isContainMultByteChar(item.getParamValue())>zi-samp</#if> ${zmr_color_class}" value="#{item.getParamValue()}" maxlength="800"></td>
<td width="10%" class="z-text-center"><button type="submit" class="z-button" onclick="submitForm(this.form);">修改</button></td>
<#else>
<td width="*" <#if !Validates.isContainMultByteChar(item.getParamValue())>class="zi-samp"</#if>>#{item.getParamValue()}</td>
<td width="10%" class="z-text-center"><button type="button" class="z-button" disabled>修改</button></td>
</#if>
<td width="30%">#{item.getParamDesc()}</td>
</tr>
</table>
<#if ZmrAdminRule.check(request) && item.getParamType() == "public">
</form>
</#if>
</#for>
</#for>
${zhiqim_manager_content_end()}
@@ -0,0 +1,47 @@
${zhiqim_manager_breadcrumb("操作员参数管理")}
${zhiqim_manager_content()}
<#-- 导航 -->
<div class="z-tabnav-main z-mg-b20 ${zmr_color_class}">
<nav>
<ul>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/menu.htm")><li onclick="Z.L.href('menu.htm');">系统菜单</li></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/avatar.htm")><li onclick="Z.L.href('avatar.htm');">系统头像</li></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/config.htm")><li onclick="Z.L.href('config.htm');">系统配置</li></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/cache.htm")><li onclick="Z.L.href('cache.htm');">系统缓存</li></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/param.htm")><li onclick="Z.L.href('param.htm');">系统参数</li></#if>
<li class="z-active">操作员参数</li>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/themeIndex.htm")><li onclick="Z.L.href('themeIndex.htm');">首页主题</li></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/themeMain.htm")><li onclick="Z.L.href('themeMain.htm');">主页主题</li></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/keys.htm")><li onclick="Z.L.href('keys.htm');">密钥生成</li></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/process.htm")><li onclick="Z.L.href('process.htm');">进程信息</li></#if>
</ul>
</nav>
</div>
<#-- 操作 -->
<#if ZmrAdminRule.check(request)>
<div class="z-float-right z-mg-t10 z-mg-b5">
<button class="z-button ${zmr_color_class}" onclick="Z.L.href('paramOperatorAdd.htm');"><i class="z-font z-add"></i>增加操作员参数</button>
<button class="z-button z-red" onclick="Z.L.confirm('paramOperatorDelete.htm', '确认要删除该操作员参数?', 'paramKey', zCallFrame);"><i class="z-font z-delete"></i>删除操作员参数</button>
</div>
</#if>
<#-- 列表 -->
<table class="z-table z-bordered z-pd5 z-bg-white z-text-center">
<tr class="z-h40" bgcolor="${zmr_thead_bgcolor}">
<td width="50">选择</td>
<td width="30%">操作员参数键</td>
<td width="*">操作员参数描述</td>
</tr>
${zhiqim_manager_tr_no_record(result, 3, "暂时没有操作员参数信息")}
<#for item : result.list()>
<tr class="z-h40 z-pointer" ${zhiqim_manager_tr_onmouse()} ${zhiqim_manager_tr_click_radio()}>
<td><input name="paramKey" type="radio" data-role="z-radio" data-class="${zmr_color_class}" value="${item.getParamKey()}"></td>
<td>${item.getParamKey()}</td>
<td>#{item.getParamDesc()}</td>
</tr>
</#for>
</table>
${zhiqim_manager_paging(result)}
${zhiqim_manager_content_end()}
@@ -0,0 +1,23 @@
${Scripts.onload("document.theForm.paramKey.focus();")}
${zhiqim_manager_history("paramOperator.htm")}
${request.getValidateScript()}
${zhiqim_manager_breadcrumb_parent("paramOperator.htm", "操作员参数", "增加操作员参数")}
${zhiqim_manager_content()}
<form name="theForm" action="paramOperatorInsert.htm" method="post" onsubmit="return validateForm(this);" data-role="z-call-frame">
<table class="z-table z-bordered z-h50-tr z-pd10 z-lh150p z-bg-white">
<tr class="zi-h40 z-bg-gray z-bold">
<td colspan="2">增加操作员参数</td>
</tr>
<tr>
<td width="40%">操作员参数键:<span class="z-color-999">32位不定长字符)</span></td>
<td width="*"><input name="paramKey" class="z-input z-w300 ${zmr_color_class}" maxlength="32"><span class="z-color-red">&nbsp;*</span></td>
</tr>
<tr>
<td>操作员参数描述:<span class="z-color-999">200位不定长字符)</span></td>
<td><input name="paramDesc" class="z-input z-w300 ${zmr_color_class}" maxlength="200"><span class="z-color-red">&nbsp;*</span></td>
</tr>
</table>
${zhiqim_manager_submit()}
</form>
${zhiqim_manager_content_end()}
@@ -0,0 +1,33 @@
<#include "/ztmpl/zhiqim_manager/"+themeMain+"/define.htm"/>
<table class="z-table z-bordered z-pd5 z-bg-white z-text-center">
<tr class="z-h40">
<td align="left" colspan="3" class="z-bold z-px14 zi-pd-l5">部门[<span class="z-text-blue">${dept.getDeptName()}</span>]成员</td>
<td align="right" class="zi-bd-l-none">
<#if ZmrAdminRule.check(request)>
<button class="z-button ${zmr_color_class}" onclick="doSelectorDialog('${dept.getDeptId()}');"><i class="z-font z-add"></i>增加成员</button>
</#if>
</td>
</tr>
<tr valign="middle" class="z-text-center z-h40 z-bg-gray">
<td width="20%">成员编号</td>
<td width="30%">成员头像</td>
<td width="*">成员姓名</td>
<td width="150">操作</td>
</tr>
${zhiqim_manager_tr_no_record(operatorList, 4, "暂时没有操作员信息")}
<#for item : operatorList>
<tr class="z-text-center z-h60" ${zhiqim_manager_tr_onmouse()}>
<td>${item.getOperatorCode()}</td>
<td><img src="${sessionUser.getAvatarUrl(item.getOperatorAvatar(), 50)}" class="z-w50 z-h50 z-bd-rd50p"></td>
<td>${item.getOperatorName()}</td>
<td>
<#if ZmrAdminMutexRule.check(request, item)>
<button type="button" class="z-button z-h25 z-red z-xsmall z-font z-delete" onclick="doDeleteOperatorDept('${item.getOperatorCode()}', '${dept.getDeptId()}')"></button>
<#else>
--
</#if>
</td>
</tr>
</#for>
</table>
${zhiqim_manager_list(operatorList.size())}
@@ -0,0 +1,70 @@
<#include "/ztmpl/zhiqim_manager/"+themeMain+"/define.htm"/>
<#-- 显示子菜单,并递归显示下级子菜单 -->
<#function showChildMenu(self, parent)>
<table class="z-table z-bordered zi-bd-t-none z-bg-white">
<tr class="z-h30">
<td width="*" class="zi-pd-l6">
<#var level = self.self().getMenuLevel()/>
<#for i : 1..(level-1)>
<#if self.isLastNode(level-i)>
<i class="z-ico z-tree z-30 z-normal z-blank"></i>
<#else>
<i class="z-ico z-tree z-30 z-normal z-vertline"></i>
</#if>
</#for>
<#if self.hasChildren()>
<a href="javascript:Zmr.treeExpand('${self.self().getMenuCode()}')"><i id="ico-${self.self().getMenuCode()}" class="z-ico z-tree z-30 z-normal <#if self.isLastNode()>z-mlastnode<#else>z-mnode</#if>"></i></a>
<#else>
<i class="z-ico z-tree z-30 z-normal <#if self.isLastNode()>z-lastnode<#else>z-node</#if>"></i>
</#if>
<i class="z-ico z-tree z-item z-mg-r3"></i>
<#if ZmrAdminRule.check(request)>
<input name="rule" type="checkbox" class="z-h12" <#if ZmrOperatorDao.isDeptRule(ruleList, self.self().getMenuCode())>checked</#if> onclick='Z.Forms.doSelectCheckBoxTree("rule", this.checked, this.value, this.form);' value="${self.self().getMenuCode()}">
</#if>
#{self.self().getMenuName()}
</td>
<td width="30%" class="zi-pd-l6">#{self.self().getMenuCode()}</td>
<td width="8%" align="center">#{self.self().getMenuLevel()}</td>
<td width="15%" align="center"><#if self.self().getMenuType()==1>节点<#else>属性</#if></td>
</tr>
</table>
<#if self.hasChildren()>
<div id="menu-${self.self().getMenuCode()}">
<#for child : self.children()>
${showChildMenu(child, self)}
</#for>
</div>
</#if>
</#function>
<form name="theForm" method="post" data-role="z-call-frame">
<input name="deptId" type="hidden" value="${dept.getDeptId()}">
<table class="z-table z-bordered z-bg-white">
<tr class="z-h40">
<td align="left" colspan="4" class="z-bold z-px14 zi-pd-l5">部门[<span class="z-text-blue">${dept.getDeptName()}</span>]权限表</td>
</tr>
<tr class="z-h40" bgcolor="${zmr_thead_bgcolor}">
<td width="*">菜单目录</td>
<td width="30%">菜单编码</td>
<td width="8%">菜单级别</td>
<td width="15%">菜单类型</td>
</tr>
<tr class="z-h30">
<td class="zi-pd-l6"><i class="z-ico z-tree z-30 z-normal z-root z-mg-r3"></i><#if ZmrAdminRule.check(request)><input name="rule" type="checkbox" class="z-h12" <#if ZmrOperatorDao.isDeptRule(ruleList, tree.self().getMenuCode())>checked</#if> onclick='Z.Forms.doSelectCheckBoxTree("rule", this.checked, this.value, this.form);' value="#{tree.self().getMenuCode()}"></#if>系统功能根菜单</td>
<td class="zi-pd-l6">#{tree.self().getMenuCode()}</td>
<td align="center">#{tree.self().getMenuLevel()}</td>
<td align="center">根节点</td>
</tr>
</table>
<#for child : tree.children()>
${showChildMenu(child, tree)}
</#for>
<#if ZmrAdminRule.check(request)>
<table class="z-table zi-bd zi-bd-t-none z-pd10 z-bg-white">
<tr class="z-h80">
<td><button type="submit" class="z-button z-large z-w150 ${zmr_color_class}">提交</button></td>
</tr>
</table>
</#if>
</form>
${zhiqim_manager_list(menuSize)}
@@ -0,0 +1,70 @@
<#include "/ztmpl/zhiqim_manager/"+themeMain+"/define.htm"/>
<#-- 显示子菜单,并递归显示下级子菜单 -->
<#function showChildMenu(self, parent)>
<table class="z-table z-bordered zi-bd-t-none z-bg-white">
<tr class="z-h30">
<td width="*" class="zi-pd-l6">
<#var level = self.self().getMenuLevel()/>
<#for i : 1..(level-1)>
<#if self.isLastNode(level-i)>
<i class="z-ico z-tree z-30 z-normal z-blank"></i>
<#else>
<i class="z-ico z-tree z-30 z-normal z-vertline"></i>
</#if>
</#for>
<#if self.hasChildren()>
<a href="javascript:Zmr.treeExpand('${self.self().getMenuCode()}')"><i id="ico-${self.self().getMenuCode()}" class="z-ico z-tree z-30 z-normal <#if self.isLastNode()>z-mlastnode<#else>z-mnode</#if>"></i></a>
<#else>
<i class="z-ico z-tree z-30 z-normal <#if self.isLastNode()>z-lastnode<#else>z-node</#if>"></i>
</#if>
<i class="z-ico z-tree z-item z-mg-r3"></i>
<#if ZmrAdminRule.check(request)>
<input name="rule" type="checkbox" class="z-h12" <#if ZmrOperatorDao.isOrgRule(ruleList, self.self().getMenuCode())>checked</#if> onclick='Z.Forms.doSelectCheckBoxTree("rule", this.checked, this.value, this.form);' value="${self.self().getMenuCode()}">
</#if>
#{self.self().getMenuName()}
</td>
<td width="30%" class="zi-pd-l6">#{self.self().getMenuCode()}</td>
<td width="8%" align="center">#{self.self().getMenuLevel()}</td>
<td width="15%" align="center"><#if self.self().getMenuType()==1>节点<#else>属性</#if></td>
</tr>
</table>
<#if self.hasChildren()>
<div id="menu-${self.self().getMenuCode()}">
<#for child : self.children()>
${showChildMenu(child, self)}
</#for>
</div>
</#if>
</#function>
<form name="theForm" method="post" data-role="z-call-frame">
<input name="orgId" type="hidden" value="${org.getOrgId()}">
<table class="z-table z-bordered z-bg-white">
<tr class="z-h40">
<td align="left" colspan="4" class="z-bold z-px14 zi-pd-l5">组织[<span class="z-text-blue">${org.getOrgName()}</span>]权限表</td>
</tr>
<tr class="z-h40" bgcolor="${zmr_thead_bgcolor}">
<td width="*">菜单目录</td>
<td width="30%">菜单编码</td>
<td width="8%">菜单级别</td>
<td width="15%">菜单类型</td>
</tr>
<tr class="z-h30">
<td class="zi-pd-l6"><i class="z-ico z-tree z-30 z-normal z-root z-mg-r3"></i><#if ZmrAdminRule.check(request)><input name="rule" type="checkbox" class="z-h12" <#if ZmrOperatorDao.isOrgRule(ruleList, tree.self().getMenuCode())>checked</#if> onclick='Z.Forms.doSelectCheckBoxTree("rule", this.checked, this.value, this.form);' value="#{tree.self().getMenuCode()}"></#if>系统功能根菜单</td>
<td class="zi-pd-l6">#{tree.self().getMenuCode()}</td>
<td align="center">#{tree.self().getMenuLevel()}</td>
<td align="center">根节点</td>
</tr>
</table>
<#for child : tree.children()>
${showChildMenu(child, tree)}
</#for>
<#if ZmrAdminRule.check(request)>
<table class="z-table zi-bd zi-bd-t-none z-pd10 z-bg-white">
<tr class="z-h80">
<td><#if org.getOrgLevel() == 1><button type="submit" class="z-button z-large z-w150 ${zmr_color_class}">提交</button></#if></td>
</tr>
</table>
</#if>
</form>
${zhiqim_manager_list(menuSize)}
@@ -0,0 +1,61 @@
<table class="z-table z-bordered z-lh30 z-bg-white z-pd5">
<tr class="z-bg-gray">
<td colspan="2"><span class="z-bold z-px14">进程基本信息</span></td>
</tr>
<tr>
<td>进程pid<span class="z-samp zi-px16 z-mg-l10">${pid}</span></td>
<td>系统运行时间和平均负载:<span class="z-samp zi-px16 z-mg-l10">${list.get(0)}</span></td>
</tr>
<tr>
<td>进程内线程状态:<span class="z-samp zi-px16 z-mg-l10">${list.get(1)}</span></td>
<td>CPU状态:<span class="z-samp zi-px16 z-mg-l10">${list.get(2)}</span></td>
</tr>
<tr>
<td>物理内存:<span class="z-samp zi-px16 z-mg-l10">${list.get(3)}</span></td>
<td>交换空间:<span class="z-samp zi-px16 z-mg-l10">${list.get(4)}</span></td>
</tr>
</table>
<table class="z-table z-bordered z-lh30 z-text-center z-bg-white z-mg-t20">
<tr class="z-bg-gray zi-h40">
<td colspan="13" class="z-text-left"><span class="z-mg-l10 z-bold z-px14">线程状态列表</span></td>
</tr>
<tr class="">
<td width="8%">PID</td>
<td width="8%">USER</td>
<td width="5%">PR</td>
<td width="5%">NI</td>
<td width="8%">VIRT</td>
<td width="8%">RES</td>
<td width="8%">SHR</td>
<td width="3%">S</td>
<td width="8%">%CPU</td>
<td width="8%">%MEM</td>
<td width="8%">TIME+</td>
<td width="8%">COMMAND</td>
<td width="*">操作</td>
</tr>
<#for item : pageResult.list()>
<tr>
<td>${item.get(0)}</td>
<td>${item.get(1)}</td>
<td>${item.get(2)}</td>
<td>${item.get(3)}</td>
<td>${item.get(4)}</td>
<td>${item.get(5)}</td>
<td>${item.get(6)}</td>
<td>${item.get(7)}</td>
<td>${item.get(8)}</td>
<td>${item.get(9)}</td>
<td>${item.get(10)}</td>
<td>${item.get(11)}</td>
<td><button class="z-button zi-mg5 z-blue" onclick="doSelectorDialog(${item.get(0)});">堆栈查询</button></td>
</tr>
</#for>
</table>
<table class="z-table z-bordered zi-bd-t-none z-bg-white">
<tr class="z-h50">
<td><div class="z-float-right z-mg-r10">${PagingStd.toHtmlClick(pageResult,"doShowInfo")}</div></td>
</tr>
</table>
@@ -0,0 +1,24 @@
<table class="z-table z-w100p">
<#if result.size() == 0>
<tr>
<td class="z-text-center">
<span class="z-px16">很抱歉,没有找到系统头像!</span>
</td>
</tr>
<#else>
<tr>
<td>
<ul>
<#for item : result.list()>
<li class="z-relative-left z-mg6 z-pd3 z-bd z-pointer" onclick="doSelectSysAvatar(this, '${item.getAvatarId()}');">
<img src="${sessionUser.getAvatarUrl(item.getAvatarId(), 100)}">
</li>
</#for>
</ul>
</td>
</tr>
<tr class="z-h50">
<td><div class="z-float-right z-mg-r10">${PagingStd.toHtmlClick(result,"doQuerySysAvatar")}</div></td>
</tr>
</#if>
</table>
@@ -0,0 +1,55 @@
<script>
function doShowInfo(pageNo)
{
var ajax = new Z.Ajax();
ajax.setContextPath("${context.getContextPath()}");
ajax.setClassName("ZmrProcessPresenter");
ajax.setMethodName("doShowProcessInfo");
ajax.addParam("pageNo", pageNo);
ajax.setFailureAlert();
ajax.setCallback("result");
ajax.setLoading("result");
ajax.execute();
}
function doSelectorDialog(threadPid)
{
var dialog = new Z.Dialog();
dialog.title = "线程堆栈信息";
dialog.url = "processThreadStack.htm?threadPid="+threadPid;
dialog.width = 500;
dialog.height = 360;
dialog.fixed = true;
dialog.execute();
}
</script>
${zhiqim_manager_breadcrumb("进程信息")}
${zhiqim_manager_content()}
<#-- 导航 -->
<div data-role="z-tabnav" class="z-tabnav-main z-mg-b20 ${zmr_color_class}">
<nav>
<ul>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/menu.htm")><li onclick="Z.L.href('menu.htm');">系统菜单</li></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/avatar.htm")><li onclick="Z.L.href('avatar.htm');">系统头像</li></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/config.htm")><li onclick="Z.L.href('config.htm');">系统配置</li></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/cache.htm")><li onclick="Z.L.href('cache.htm');">系统缓存</li></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/param.htm")><li onclick="Z.L.href('param.htm');">系统参数</li></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/paramOperator.htm")><li onclick="Z.L.href('paramOperator.htm');">操作员参数</li></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/themeIndex.htm")><li onclick="Z.L.href('themeIndex.htm');">首页主题</li></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/themeMain.htm")><li onclick="Z.L.href('themeMain.htm');">主页主题</li></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/keys.htm")><li onclick="Z.L.href('keys.htm');">密钥生成</li></#if>
<li class="z-active">进程信息</li>
</ul>
<div class="z-float-right z-mg-t10 z-mg-r5">
<button class="z-button z-w150 ${zmr_color_class}" onclick="doShowInfo(1);">查询进程信息</button>
</div>
</nav>
</div>
<#-- 显示进程信息 -->
<div id="result" class="z-mg-t50"></div>
${zhiqim_manager_content_end()}
@@ -0,0 +1,12 @@
${Styles.htmlOverflowHidden()}
<div class="z-w100p z-pd5">
<#if Validates.isNotEmptyBlank(stackInfo)>
<pre style="white-space: pre-wrap;overflow-y:auto; max-height:300px;">${stackInfo}</pre>
<#else>
<span>无堆栈信息</span>
</#if>
<div class="z-fixed z-b0 z-l0 z-w100p z-h50 z-pd10 z-bg-gray z-text-center">
<button class="z-button z-large z-w150 ${zmr_color_class}" onclick="parent.Z.Dialog.close();">关闭</button>
</div>
</div>
@@ -0,0 +1,127 @@
<script>
function doModifyWxcode()
{// 修改个人微信
var dialog = new Z.Dialog();
dialog.title = "修改微信";
dialog.url = "modifyWxcode.htm";
dialog.width = 530;
dialog.height = 220;
dialog.fixed = true;
dialog.execute();
}
function doModifyAvatar()
{//修改头像
var dialog = new Z.Dialog();
dialog.title = "修改头像";
dialog.url = "modifyAvatar.htm";
dialog.width = 800;
dialog.height = 560;
dialog.fixed = true;
dialog.execute();
}
function doModifyPass()
{//修改密码
var dialog = new Z.Dialog();
dialog.title = "修改登录密码";
dialog.url = "modifyPassword.htm";
dialog.width = 650;
dialog.height = 280;
dialog.fixed = true;
dialog.execute();
}
function doModifyMobile()
{//修改手机号
var dialog = new Z.Dialog();
dialog.title = "修改手机号";
dialog.url = "modifyMobile.htm";
dialog.width = 530;
dialog.height = 250;
dialog.fixed = true;
dialog.execute();
}
function doModifyEmail()
{//修改邮箱
var dialog = new Z.Dialog();
dialog.title = "修改邮箱";
dialog.url = "modifyEmail.htm";
dialog.width = 530;
dialog.height = 220;
dialog.fixed = true;
dialog.execute();
}
function doModifyWangwang()
{//修改邮箱
var dialog = new Z.Dialog();
dialog.title = "修改旺旺";
dialog.url = "modifyWangwang.htm";
dialog.width = 530;
dialog.height = 220;
dialog.fixed = true;
dialog.execute();
}
function doModifyOperatorParam(key, value, desc)
{//修改操作员参数
var dialog = new Z.Dialog();
dialog.title = "修改"+desc;
dialog.url = "modifyOperatorParam.htm?key="+key+"&value="+value+"&desc="+desc;
dialog.width = 530;
dialog.height = 220;
dialog.fixed = true;
dialog.execute();
}
</script>
${zhiqim_manager_breadcrumb_name("个人中心")}
${zhiqim_manager_content()}
<!-- 基本信息 -->
<table class="z-table z-bordered-line z-bg-white z-pd20 zi-bd-l zi-bd-r">
<tr class="z-bg-gray">
<td class="z-bold z-px14 zi-pd16 zi-pd-l20" colspan="3">基本信息:</td>
</tr>
<tr>
<td width="150">用户昵称:</td>
<td width="*">#{sessionUser.getOperatorCode()}#{sessionUser.getOperatorName()}</td>
<td width="150"></td>
</tr>
<tr>
<td>用户头像:</td>
<td><img class="z-w70 z-h70 z-bd-rd50p" src="${sessionUser.getAvatar100()}"></td>
<td><a class="blue" href="javascript:doModifyAvatar();">更换头像</a></td>
</tr>
<tr>
<td>手机号码:</td>
<td><#if Validates.isNotEmpty(operator.getOperatorMobile())>${sessionUser.getOperatorMobile()}<span class="z-px12 z-text-orange">(已绑定)</span><#else><span class="z-px14 z-color-999">(未绑定)</span></#if></span></td>
<td><a class="blue" href="javascript:doModifyMobile();">修改</a></td>
</tr>
<tr>
<td>电子邮箱:</td>
<td><#if Validates.isNotEmpty(operator.getOperatorEmail())>${sessionUser.getOperatorEmail()}<span class="z-px12 z-text-orange">(已绑定)</span><#else><span class="z-px14 z-color-999">(未绑定)</span></#if></td>
<td><a class="blue" href="javascript:doModifyEmail();">修改</a></td>
</tr>
<tr>
<td>登录密码:</td>
<td><span class="z-color-666">******</span></td>
<td><a class="blue" href="javascript:doModifyPass();">修改</a></td>
</tr>
<tr>
<td>个人微信:</td>
<td>
<span class="z-color-333">
<#if Validates.isNotEmpty(operator.getOperatorWxcode())>
${sessionUser.getOperatorWxcode()}
<span class="z-px12 z-text-orange">(已绑定)</span>
<#else>
<span class="z-px14 z-color-999">(未绑定)</span>
</#if>
</span>
</td>
<td><a class="blue" href="javascript:doModifyWxcode();">修改</a></td>
</tr>
</table>
${zhiqim_manager_content_end()}
@@ -0,0 +1,53 @@
${zhiqim_manager_breadcrumb("操作员角色")}
${zhiqim_manager_content()}
<#-- 导航 -->
<div class="z-tabnav-main z-mg-b20 ${zmr_color_class}">
<nav>
<ul>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/operator.htm")><li onclick="Z.L.href('operator.htm');">操作员管理</li></#if>
<li class="z-active">操作员角色</li>
</ul>
<div class="z-float-right z-mg-t10 z-mg-r5">
<#if ZmrAdminRule.check(request)>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/roleAdd.htm")><button class="z-button ${zmr_color_class}" onclick="Z.L.href('roleAdd.htm');"><i class="z-font z-add"></i>增加角色</button></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/roleModify.htm")><button class="z-button ${zmr_color_class}" onclick="Z.L.check('roleModify.htm', 'roleId');"><i class="z-font z-modify"></i>修改角色</button></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/roleDelete.htm")><button class="z-button z-red" onclick="Z.L.confirm('roleDelete.htm', '确认要删除该角色?', 'roleId', zCallFrame);"><i class="z-font z-delete"></i>删除角色</button></#if>
</#if>
</div>
</nav>
</div>
<#-- 列表 -->
<table class="z-table z-bordered z-h40-tr z-text-center z-bg-white">
<tr bgcolor="${zmr_thead_bgcolor}">
<td width="50">选择</td>
<td width="200">角色编号</td>
<td width="*" class="zi-pd-l6 z-text-left">角色名称</td>
<td width="15%">角色状态</td>
<td width="10%">角色排序数</td>
<td width="20%">操作</td>
</tr>
<#if list.isEmpty()>
${zhiqim_manager_no_record(6, "暂时没有角色信息")}
</#if>
<#for item : list>
<tr class="z-pointer" ${zhiqim_manager_tr_onmouse()} ${zhiqim_manager_tr_click_radio()}>
<td>
<#if ZmrAdminRule.check(request)>
<input name="roleId" type="radio" data-role="z-radio" data-class="${zmr_color_class}" value="${item.getRoleId()}">
</#if>
</td>
<td>${item.getRoleId()}</td>
<td class="zi-pd-l6 z-text-left">#{item.getRoleName()}</td>
<td><#if item.getRoleStatus() == 0>正常<#else><span class="z-color-red">停用</span></#if></td>
<td>${item.getRoleSeq()}</td>
<td>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/roleOperator.htm")><button class="z-button z-cyan" onclick="Z.L.href('roleOperator.htm?roleId=${item.getRoleId()}');">成员管理</button></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/roleRule.htm")><button class="z-button z-cyan" onclick="Z.L.href('roleRule.htm?roleId=${item.getRoleId()}');">权限管理</button></#if>
</td>
</tr>
</#for>
</table>
${zhiqim_manager_list(list.size())}
${zhiqim_manager_content_end()}
@@ -0,0 +1,28 @@
${Scripts.onload("document.theForm.roleName.focus();")}
${zhiqim_manager_history("role.htm")}
${request.getValidateScript()}
${zhiqim_manager_breadcrumb_parent("role.htm" "操作员角色" "增加角色")}
${zhiqim_manager_content()}
<form name="theForm" method="post" action="roleInsert.htm" onsubmit="return validateForm(this);" data-role="z-call-frame">
<input name="roleId" type="hidden" value="${Ids.longId13()}">
<table class="z-table z-bordered z-h50-tr z-pd10 z-lh150p z-bg-white">
<tr class="zi-h40 z-bg-gray z-bold">
<td colspan="2">增加角色</td>
</tr>
<tr>
<td width="40%">角色名称:<span class="z-color-999">2-16位)</span></td>
<td width="*"><input name="roleName" class="z-input z-w300 ${zmr_color_class}" maxlength="16"><span class="z-color-red">&nbsp;*</span></td>
</tr>
<tr>
<td>角色状态:<span class="z-color-999">(正常|停用)</span></td>
<td><select name="roleStatus" class="z-select z-w300" data-role="z-select" data-class="${zmr_color_class}"><option value="0">正常</option><option value="1">停用</option></select><span class="z-color-red">&nbsp;*</span></td>
</tr>
<tr>
<td>角色排序数:<span class="z-color-999">(必须是[0, 999999]范围的非负整数)</span></td>
<td><input name="roleSeq" class="z-input z-w300 ${zmr_color_class}" data-options="type:Integer;" value="100" maxlength="6"><span class="z-color-red">&nbsp;*</span></td>
</tr>
</table>
${zhiqim_manager_submit()}
</form>
${zhiqim_manager_content_end()}
@@ -0,0 +1,32 @@
${zhiqim_manager_history("role.htm")}
${request.getValidateScript()}
${zhiqim_manager_breadcrumb_parent("role.htm" "操作员角色" "修改角色")}
${zhiqim_manager_content()}
<form name="theForm" method="post" action="roleUpdate.htm" onsubmit="return validateForm(this);" data-role="z-call-frame">
<input name="roleId" type="hidden" value="${item.getRoleId()}">
<input name="orgId" type="hidden" value="${item.getOrgId()}">
<table class="z-table z-bordered z-h50-tr z-pd10 z-lh150p z-bg-white">
<tr class="zi-h40 z-bg-gray z-bold">
<td colspan="2">修改角色</td>
</tr>
<tr>
<td width="40%">角色编号:<span class="z-color-999">(由不定长6位字母或数字组合)</span></td>
<td width="*">#{item.getRoleId()}</td>
</tr>
<tr>
<td>角色名称:<span class="z-color-999">(不能超过32个汉字)</span></td>
<td><input name="roleName" class="z-input z-w300 ${zmr_color_class}" value="#{item.getRoleName()}" maxlength="32"><span class="z-color-red">&nbsp;*</span></td>
</tr>
<tr>
<td>角色状态:<span class="z-color-999">(正常|停用)</span></td>
<td><select name="roleStatus" class="z-select z-w300" data-role="z-select" data-class="${zmr_color_class}"><option value="0"<#if item.getRoleStatus()==0> selected</#if>>正常</option><option value="1"<#if item.getRoleStatus()==1> selected</#if>>停用</option></select><span class="z-color-red">&nbsp;*</span></td>
</tr>
<tr>
<td>角色排序数:<span class="z-color-999">(必须是[0, 999999]范围的非负整数)</span></td>
<td><input name="roleSeq" class="z-input z-w300 ${zmr_color_class}" data-options="type:Integer;" value="#{item.getRoleSeq()}" maxlength="6"><span class="z-color-red">&nbsp;*</span></td>
</tr>
</table>
${zhiqim_manager_submit()}
</form>
${zhiqim_manager_content_end()}
@@ -0,0 +1,83 @@
<script>
function doSelectorDialog(roleId)
{//添加角色操作员对话框
var dialog = new Z.Dialog();
dialog.title = "成员增加";
dialog.url = "roleOperatorSelector.htm?roleId="+roleId;
dialog.width = 392;
dialog.height = 423;
dialog.fixed = true;
dialog.execute();
}
function doSelectorCallback(roleId, operatorCodes)
{//添加角色操作员
var ajax = new Z.Ajax();
ajax.setContextPath("${context.getContextPath()}");
ajax.setClassName("ZmrOperatorPresenter");
ajax.setMethodName("doAddRoleOperator");
ajax.addParam("roleId", roleId);
ajax.addParam("operatorCodes", operatorCodes);
ajax.setFailureAlert();
ajax.setSuccessReload();
ajax.setLoading(document);
ajax.execute();
}
function doDeleteOperatorRole(operatorCode, roleId)
{//删除角色操作员
var ajax = new Z.Ajax();
ajax.setContextPath("${context.getContextPath()}");
ajax.setClassName("ZmrOperatorPresenter");
ajax.setMethodName("doDeleteOperatorRole");
ajax.addParam("operatorCode", operatorCode);
ajax.addParam("roleId", roleId);
ajax.setFailureAlert();
ajax.setSuccessReload();
ajax.execute();
}
</script>
${zhiqim_manager_breadcrumb("部门成员")}
${zhiqim_manager_content()}
<#-- 导航 -->
<div class="z-tabnav-main z-mg-b20 ${zmr_color_class}">
<nav>
<ul>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/operator.htm")><li onclick="Z.L.href('operator.htm');">操作员管理</li></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/role.htm")><li onclick="Z.L.href('role.htm');">操作员角色</li></#if>
<li class="z-active">[${role.getRoleName()}]&nbsp;成员管理</li>
</ul>
<div class="z-float-right z-mg-t10 z-mg-r5">
<#if ZmrAdminRule.check(request)><button class="z-button ${zmr_color_class}" onclick="doSelectorDialog('${role.getRoleId()}');"><i class="z-font z-add"></i>增加成员</button></#if>
</div>
</nav>
</div>
<#-- 列表 -->
<table class="z-table z-bordered z-pd5 z-bg-white z-text-center">
<tr valign="middle" class="z-text-center z-h40 z-bg-gray">
<td width="20%">成员编号</td>
<td width="30%">成员头像</td>
<td width="*">成员姓名</td>
<td width="150">操作</td>
</tr>
${zhiqim_manager_tr_no_record(operatorList, 4, "暂时没有操作员信息")}
<#for item : operatorList>
<tr class="z-text-center z-h60" ${zhiqim_manager_tr_onmouse()}>
<td>${item.getOperatorCode()}</td>
<td><img src="${sessionUser.getAvatarUrl(item.getOperatorAvatar(), 50)}" class="z-w50 z-h50 z-bd-rd50p"></td>
<td>${item.getOperatorName()}</td>
<td>
<#if ZmrAdminMutexRule.check(request, item)>
<button type="button" class="z-button z-h25 z-red z-xsmall z-font z-delete" onclick="doDeleteOperatorRole('${item.getOperatorCode()}', '${role.getRoleId()}')"></button>
<#else>
--
</#if>
</td>
</tr>
</#for>
</table>
${zhiqim_manager_list(operatorList.size())}
${zhiqim_manager_content_end()}
@@ -0,0 +1,49 @@
${Styles.htmlOverflowHidden()}
<script>
Z.onload(function()
{
Z(document.forms[0].operatorKey).focusEnd();
});
function doSelector()
{
var operatorCodes = Z.FM.getCheckeds("operatorCode");
parent.doSelectorCallback("${role.getRoleId()}", operatorCodes);
}
</script>
<#-- 查询 -->
<div class="z-fixed z-t0 z-l0 z-w100p z-pd10 z-bg-gray">
<form method="post">
<input name="roleId" type="hidden" value="${role.getRoleId()}">
<input name="operatorKey" class="z-float-left z-input z-w300 zi-h35 zi-bd-r-none" placeholder="操作员编码或名称" value="${operatorKey}" maxlength="20">
<button type="submit" class="z-float-left z-button z-w70 z-h35 zi-bd-rd0 ${zmr_color_class}"><i class="z-font z-query"></i></button>
</form>
</div>
<#-- 列表 -->
<div class="z-w100p z-pd10 z-overflow-auto" style="margin-top:55px;height:306px;">
<table class="z-table z-bordered z-pd5 z-text-center">
<tr class="z-h40 z-bg-gray">
<td width="50"><input type="checkbox" data-role="z-checkbox" data-class="z-blue" onclick="Z.FM.doSelectCheckBox('operatorCode')"></td>
<td width="90">操作员头像</td>
<td width="110">操作员编码</td>
<td width="*">操作员姓名</td>
</tr>
${zhiqim_manager_tr_no_record(operatorList, 4, "没有可选择的操作员")}
<#for item : operatorList>
<tr class="z-pointer" ${zhiqim_manager_tr_onmouse()} ${zhiqim_manager_tr_click_checkbox()}>
<td><input name="operatorCode" type="checkbox" data-role="z-checkbox" data-class="z-blue" value="${item.getOperatorCode()}"></td>
<td><img src="${sessionUser.getAvatarUrl(item.getOperatorAvatar(), 50)}" class="z-w50 z-h50 z-bd-rd50p"></td>
<td>${item.getOperatorCode()}</td>
<td>${item.getOperatorName()}</td>
</tr>
</#for>
</tale>
</div>
<#-- 操作 -->
<div class="z-fixed z-b0 z-l0 z-w100p z-h60 z-pd10 z-bg-gray z-text-center">
<button class="z-button z-large z-w150 ${zmr_color_class}" onclick="doSelector();">确定</button>
<button class="z-button z-large z-w70 z-mg-l10" onclick="parent.Z.Dialog.close(location.hash);">取消</button>
</div>
@@ -0,0 +1,80 @@
<#-- 显示子菜单,并递归显示下级子菜单 -->
<#function showChildMenu(self, parent)>
<table class="z-table z-bordered zi-bd-t-none z-bg-white">
<tr class="z-h30">
<td width="*" class="zi-pd-l6">
<#var level = self.self().getMenuLevel()/>
<#for i : 1..(level-1)>
<#if self.isLastNode(level-i)>
<i class="z-ico z-tree z-30 z-normal z-blank"></i>
<#else>
<i class="z-ico z-tree z-30 z-normal z-vertline"></i>
</#if>
</#for>
<#if self.hasChildren()>
<a href="javascript:Zmr.treeExpand('${self.self().getMenuCode()}')"><i id="ico-${self.self().getMenuCode()}" class="z-ico z-tree z-30 z-normal <#if self.isLastNode()>z-mlastnode<#else>z-mnode</#if>"></i></a>
<#else>
<i class="z-ico z-tree z-30 z-normal <#if self.isLastNode()>z-lastnode<#else>z-node</#if>"></i>
</#if>
<i class="z-ico z-tree z-item z-mg-r3"></i>
<#if ZmrAdminRule.check(request)>
<input name="rule" type="checkbox" class="z-h12" <#if ZmrOperatorDao.isRoleRule(ruleList, self.self().getMenuCode())>checked</#if> onclick='Z.Forms.doSelectCheckBoxTree("rule", this.checked, this.value, this.form);' value="${self.self().getMenuCode()}">
</#if>
#{self.self().getMenuName()}
</td>
<td width="30%" class="zi-pd-l6">#{self.self().getMenuCode()}</td>
<td width="8%" align="center">#{self.self().getMenuLevel()}</td>
<td width="15%" align="center"><#if self.self().getMenuType()==1>节点<#else>属性</#if></td>
</tr>
</table>
<#if self.hasChildren()>
<div id="menu-${self.self().getMenuCode()}">
<#for child : self.children()>
${showChildMenu(child, self)}
</#for>
</div>
</#if>
</#function>
${zhiqim_manager_breadcrumb("角色权限")}
${zhiqim_manager_content()}
<div class="z-tabnav-main z-mg-b20 ${zmr_color_class}">
<nav>
<ul>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/operator.htm")><li onclick="Z.L.href('operator.htm');">操作员管理</li></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/role.htm")><li onclick="Z.L.href('role.htm');">操作员角色</li></#if>
<li class="z-active">[${role.getRoleName()}]&nbsp;权限管理</li>
</ul>
</nav>
</div>
<form name="theForm" method="post" data-role="z-call-frame">
<input name="roleId" type="hidden" value="${role.getRoleId()}">
<table class="z-table z-bordered z-bg-white">
<tr class="z-h40" bgcolor="${zmr_thead_bgcolor}">
<td width="*" class="zi-pd5">菜单目录</td>
<td width="30%" class="zi-pd5">菜单编码</td>
<td width="8%" class="z-text-center">菜单级别</td>
<td width="15%" class="z-text-center">菜单类型</td>
</tr>
<tr class="z-h30">
<td class="zi-pd-l6"><i class="z-ico z-tree z-30 z-normal z-root z-mg-r3"></i><#if ZmrAdminRule.check(request)><input name="rule" type="checkbox" class="z-h12" <#if ZmrOperatorDao.isRoleRule(ruleList, tree.self().getMenuCode())>checked</#if> onclick='Z.Forms.doSelectCheckBoxTree("rule", this.checked, this.value, this.form);' value="#{tree.self().getMenuCode()}"></#if>系统功能根菜单</td>
<td class="zi-pd-l6">#{tree.self().getMenuCode()}</td>
<td align="center">#{tree.self().getMenuLevel()}</td>
<td align="center">根节点</td>
</tr>
</table>
<#for child : tree.children()>
${showChildMenu(child, tree)}
</#for>
<#if ZmrAdminRule.check(request)>
<table class="z-table zi-bd zi-bd-t-none z-pd10 z-bg-white">
<tr class="z-h80">
<td><button type="submit" class="z-button z-large z-w150 ${zmr_color_class}">提交</button></td>
</tr>
</table>
</#if>
</form>
${zhiqim_manager_list(menuSize)}
${zhiqim_manager_content_end()}
@@ -0,0 +1,54 @@
<script>
function doChange(theme)
{
var form = document.theForm;
form.theme.value = theme;
form.submit();
}
</script>
${zhiqim_manager_breadcrumb("更换主题风格")}
${zhiqim_manager_content()}
<#-- 导航 -->
<div class="z-tabnav-main z-mg-b20 ${zmr_color_class}">
<nav>
<ul>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/menu.htm")><li onclick="Z.L.href('menu.htm');">系统菜单</li></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/avatar.htm")><li onclick="Z.L.href('avatar.htm');">系统头像</li></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/config.htm")><li onclick="Z.L.href('config.htm');">系统配置</li></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/cache.htm")><li onclick="Z.L.href('cache.htm');">系统缓存</li></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/param.htm")><li onclick="Z.L.href('param.htm');">系统参数</li></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/paramOperator.htm")><li onclick="Z.L.href('paramOperator.htm');">操作员参数</li></#if>
<li class="z-active">首页主题</li>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/themeMain.htm")><li onclick="Z.L.href('themeMain.htm');">主页主题</li></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/keys.htm")><li onclick="Z.L.href('keys.htm');">密钥生成</li></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/process.htm")><li onclick="Z.L.href('process.htm');">进程信息</li></#if>
</ul>
</nav>
</div>
<form name="theForm" method="post">
<input name="theme" type="hidden">
<table class="z-table zi-bd z-mg-t20 z-text-center">
<#for template : templateList>
<#if template_index % 2 == 0>
<tr class="z-h300">
</#if>
<td width="50%" align="center">
<img src="#{template[1]}" height="160"><br><br>
<#if ZmrAdminRule.check(request)>
<button class="z-button z-large" onclick="doChange('#{template[0]}');">选择该主题</button>
</#if>
</td>
<#if template_index % 2 == 1>
</tr>
</#if>
</#for>
<#if templateList.size() % 2 ==1>
<td width="50%" align="center">&nbsp;</td>
</tr>
</#if>
</table>
</form>
${zhiqim_manager_content_end()}
@@ -0,0 +1,54 @@
<script>
function doChange(theme)
{
var form = document.theForm;
form.theme.value = theme;
form.submit();
}
</script>
${zhiqim_manager_breadcrumb("更换主题风格")}
${zhiqim_manager_content()}
<#-- 导航 -->
<div class="z-tabnav-main z-mg-b20 ${zmr_color_class}">
<nav>
<ul>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/menu.htm")><li onclick="Z.L.href('menu.htm');">系统菜单</li></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/avatar.htm")><li onclick="Z.L.href('avatar.htm');">系统头像</li></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/config.htm")><li onclick="Z.L.href('config.htm');">系统配置</li></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/cache.htm")><li onclick="Z.L.href('cache.htm');">系统缓存</li></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/param.htm")><li onclick="Z.L.href('param.htm');">系统参数</li></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/paramOperator.htm")><li onclick="Z.L.href('paramOperator.htm');">操作员参数</li></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/themeIndex.htm")><li onclick="Z.L.href('themeIndex.htm');">首页主题</li></#if>
<li class="z-active">主页主题</li>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/keys.htm")><li onclick="Z.L.href('keys.htm');">密钥生成</li></#if>
<#if ZmrPathRule.check(request, "/"+zhiqim_manager+"/process.htm")><li onclick="Z.L.href('process.htm');">进程信息</li></#if>
</ul>
</nav>
</div>
<form name="theForm" method="post" target="_top">
<input name="theme" type="hidden">
<table class="z-table zi-bd z-mg-t20 z-text-center">
<#for template : templateList>
<#if template_index % 2 == 0>
<tr class="z-h300">
</#if>
<td width="50%" align="center">
<img src="#{template[1]}" height="160"><br><br>
<#if ZmrAdminRule.check(request)>
<button class="z-button z-large" onclick="doChange('#{template[0]}');">选择该主题</button>
</#if>
</td>
<#if template_index % 2 == 1>
</tr>
</#if>
</#for>
<#if templateList.size() % 2 ==1>
<td width="50%" align="center">&nbsp;</td>
</tr>
</#if>
</table>
</form>
${zhiqim_manager_content_end()}
@@ -0,0 +1,36 @@
${Styles.htmlOverflowHidden()}
<script>
function doValidatePassword()
{
var operatorPass = Z("#operatorPass").val();
if (!operatorPass)
{
Z.alert("请输入操作员密码");
return;
}
var ajax = new Z.Ajax();
ajax.setClassName("ZmrOperatorPresenter");
ajax.setMethodName("doValidatePassword");
ajax.addParam(operatorPass);
ajax.setFailureAlert();
ajax.setSuccess(function(){parent.doValidatePasswordCallback("${param}");});
ajax.execute();
}
</script>
<#-- 查询 -->
<table class="z-table z-mg-t20 z-pd10 z-lh50">
<tr class="z-h60">
<td width="110">验证密码:</td>
<td width="*">
<input id="operatorPass" type="password" class="z-float-left z-input z-w180 zi-h35 zi-bd-r-none" placeholder="操作员密码" maxlength="20">
<button class="z-float-left z-button z-w70 z-h35 zi-bd-rd0 ${zmr_color_class}" onclick="doValidatePassword();">验证</button>
</td>
</tr>
</table>
<#-- 操作 -->
<div class="z-absolute z-b0 z-l0 z-w100p z-h60 z-text-center z-bg-gray z-pd10">
<button type="button" class="z-button z-large z-w150" onclick="parent.Z.Dialog.close(location.hash);">关闭</button>
</div>