Cette révision appartient à :
2025-02-20 14:58:55 +08:00
Parent 687bda5ead
révision d7be84fac6
1158 fichiers modifiés avec 127232 ajouts et 0 suppressions
+92
Voir le fichier
@@ -0,0 +1,92 @@
<!DOCTYPE html>
<html>
<head>
<title>${context.getContextName()}</title>
<meta charset="UTF-8">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<script src="https://oss-88-res.oss-cn-shenzhen.aliyuncs.com/static/js/jquery-3.4.1.min.js"></script>
${Styles.src(zhiqim.css)}
${Scripts.src(zhiqim.js)}
${Styles.src(zmr_theme.css)}
${Scripts.src(zmr_theme.js)}
<script>
$(function(){
var pathName=window.location.pathname
$('.sidebar a').each(function(){
var href=$(this).attr('href')
if(href===pathName){
$(this).addClass('active').siblings().removeClass("active")
}
})
$('body').click(function(){
if($('.user-popup').css("display")!='none'){
$('.user-popup').hide()
}
})
})
function userTap(){
$('.user-popup').toggle()
event.stopPropagation()
}
</script>
</head>
<body>
${Htmls.toCallFrame()}
<!--顶部导航 -->
<div class="topnav">
<div id="logo" class="logo ${sessionUser.getSidebarClass()}" onclick="Z.L.href('${context.getRootPath("/"+zhiqim_manager+"/main.htm")}');"><img src="/zinc/images/logo.png" /></div>
<div class="topnavleft">
<div class="bar" onclick="Zmr.sidebar();"><img src="/zinc/images/sidebar_arrow.png" /></div>
<div class="bar" onclick="Z.L.reload();"><img src="/zinc/images/refresh_icon.png" /></div>
${zhiqim_manager_topnav_right_defined()}
</div>
<div class="topnavright">
${zhiqim_manager_topnav_left_defined()}
<!-- 个人中心 -->
<div class="user-info" onclick='userTap()'>
<img class="user-avatar" src="${sessionUser.getAvatar50()}">
<span>${sessionUser.getOperatorName()}</span>
<img class="arrow-down" src="/zinc/images/arrow_down.png" />
<div class="user-popup">
<div class="operate-item" onclick="Z.L.href('${context.getRootPath("/"+zhiqim_manager+"/profile.htm")}');">个人中心</div>
<div class="operate-item" onclick="Z.L.confirm('${context.getRootPath("/"+zhiqim_manager+"/logout.htm")}', '确实要退出吗?');">退出</div>
</div>
</div>
</div>
</div>
<!--容器开始 -->
<div id="container" class="container">
<!--左边导航 -->
<div id="sidebar" class="sidebar ${sessionUser.getSidebarClass()}">
<a class="nav-home" href="/manager/main.htm">首页</a>
<!--注册待审核状态临时组织-->
<#if sessionUser.getSelectedOrgId() != 1808071102554512>
<#if CheckIsShowQddt.check(request,"")>
<a class="nav-receive" href="/receiveOrder.htm">抢单大厅</a>
</#if>
<a class="nav-order" href="/designOrder.htm">我的订单</a>
<a class="nav-template" href="/editorSystem.htm">领淘众创设计平台</a>
<a class="nav-performance" href="/toMonthDesign.htm">统计报表</a>
<#else>
<a class='nav-examine' href="/designerTest.htm">入驻考试</a>
</#if>
<a class="nav-template" href="/allTemplate.htm">我的模板</a>
<a class='nav-info' href="/manager/profile.htm">个人中心</a>
<a class="nav-order" href="/designStandard.htm">帮助中心</a>
</div>
<!--主体-->
<div id="mainbody" class="mainbody" style="margin-left:<#if sessionUser.hasSidebar()>208px<#else>0</#if>">
<#include include/>
</div>
<!-- 容器结束 -->
</div>
</body>
</html>
+143
Voir le fichier
@@ -0,0 +1,143 @@
@charset "utf-8";
/* ZhiqimUI */
.z-input{color:#333;}
/* global */
body{color:#333;background-color:#fff;}
body,table,td,div{font-size:14px;line-height:120%;}
a,a:visited{color:#333;text-decoration:none;cursor:pointer;}
a:active,a:hover{color:#4bb0af;text-decoration:none;}
a.blue,a.blue:visited{color:#0066cc;text-decoration:none;cursor:pointer;}
a.blue:active,a.blue:hover{color:#0066cc;text-decoration:underline;}
/* topnav */
.topnav {position:relative;width:100%;min-width:680px;color:#3c4353;background-color:#fff;height:64px;z-index:99; }
.topnav .logo {float:left;width:208px; color:#fff; height:64px;}
.topnav a{color: #3c4353; float:left; line-height:64px; text-align: center;}
.my-message{ float:left; position: relative; cursor: pointer;}
.my-message span{position: absolute; top:18px; right:4px; background:#ff5448; min-width:14px; height:14px; border-radius:12px; font-size:10px; color:#fff; line-height:12px;text-align: center;}
.topnav .topnavleft {float:left;height:55px;}
.topnav .topnavleft .bar {float:left;height:64px; padding:23px 0 0 24px; cursor: pointer;}
.topnav .topnavleft .first {border-left:1px solid #008bd2;}
.topnav .topnavleft .nav, .topnav .topnavleft .nav-only {float:left;height:55px;line-height:55px;border-right:1px solid #008bd2;}
.topnav .topnavleft .nav:hover{background-color:#008bd2; color:#fff;}
.topnav .topnavright {float:right;height:64px;}
.topnav .topnavright .nav, .topnav .topnavright .nav-only {float:left;height:64px;line-height:64px;}
.topnav .topnavright .nav:hover {background-color:#008bd2; color:#fff;}
.user-info{ float:left; padding:0 40px 0 16px; cursor:pointer; position: relative; line-height:64px; }
.user-info span{ padding:0 2px 0 6px; color:#333; font-size:14px;}
.user-avatar{ width:28px; height:28px; border-radius:28px;}
.arrow-down{ width:12px; height:8px;}
.user-popup{width:120px; display:none; text-align: left; position: absolute; background:#fff; right:30px; top:60px; box-shadow: 0 2px 12px 0 rgb(0 0 0 / 10%); border: 1px solid #EBEEF5; border-radius:4px;}
.operate-item{ line-height:44px; font-size:14px; color: #303030; text-align: center;}
.operate-item:nth-child(1){ border-bottom:1px solid #e8e8e8;}
.nav-item{ float:left; line-height:64px; margin:0 20px 0 30px; cursor:pointer;}
/*switch */
.switch{-webkit-appearance: none; float:left; margin:20px 0 0 0; width: 54px; height:24px!important; border:1px solid #cecece!important; border-radius: 26px; position: relative; outline: none; transition: linear 0.2s;}
/*伪类*/
.switch:before{content: ''; width: 16px; height: 16px; border-radius: 50%; background: #cecece; position: absolute; top: 3px; left: 3px; transition: linear 0.2s;}
.switch:checked{box-shadow: 0 0 16px 16px #00a9f2 inset; background: #00a9f2; transition: linear 0.2s;}
.switch:checked:before{left: 48px; background: #fff; transition: linear 0.2s;}
.switch-active{ border:1px solid #1182fc!important; background: #e6f2fe;}
.switch-active:before{ top: 3px; left: 31px; background: #1182fc; transition: linear 0.2s;}
.takeOrder{ padding:0 0 0 20px; float:left;}
.takeOrder span{color:#1182fa; font-size:14px; line-height:64px; float:left; font-weight: bold; margin:0 10px 0 0;}
/* container */
.container {position:relative;width:100%;height:100%;min-height:900px;overflow:hidden;background-color:#e6e9ef;}
/*[替换z-tabnav的背景色为容器背景色]*/
.container .z-tabnav>nav li.z-active{ border-bottom:1px solid #eaedf1; }
.container .z-tabnav>nav li.z-active:hover{ background-color:#eaedf1; }
.sidebar {position:relative;float:left;width:208px;min-height:1000px;overflow:hidden;background-color:#ffffff;margin-bottom:-9999px;padding-bottom:9999px; padding-top:8px;}
.sidebar a{float:left;background-color:#fff;width:208px;height:48px;color:#3c4353; line-height:48px;padding-left:40px;cursor:pointer; margin-bottom:8px;}
.sidebar a:hover{background-color:#e6e9ef;color:#1081f9;}
.sidebar a.active{background-color:#e6e9ef;color:#1081f9; position: relative;}
.sidebar a.active::after{content:''; display: block; position: absolute; width:2px; height:24px; background:#1182fa; left:0; top:12px;}
.nav-home{ background:url(/zinc/images/home.png) no-repeat 10px;}
.nav-home.active{background:#e6e9ef url(/zinc/images/home_on.png) no-repeat 10px;}
.nav-receive{ background:url(/zinc/images/receive.png) no-repeat 10px;}
.nav-receive.active{background:#e6e9ef url(/zinc/images/receive_on.png) no-repeat 10px;}
.nav-order{ background:url(/zinc/images/order.png) no-repeat 10px;}
.nav-order.active{background:#e6e9ef url(/zinc/images/order_on.png) no-repeat 10px;}
.nav-after{ background:url(/zinc/images/after.png) no-repeat 10px;}
.nav-after.active{background:#e6e9ef url(/zinc/images/after_on.png) no-repeat 10px;}
.nav-complain{ background:url(/zinc/images/complain.png) no-repeat 10px;}
.nav-complain.active{background:#e6e9ef url(/zinc/images/complain_on.png) no-repeat 10px;}
.nav-code{ background:url(/zinc/images/code.png) no-repeat 10px;}
.nav-code.active{background:#e6e9ef url(/zinc/images/code_on.png) no-repeat 10px;}
.nav-template{ background:url(/zinc/images/template.png) no-repeat 10px;}
.nav-template.active{background:#e6e9ef url(/zinc/images/template_on.png) no-repeat 10px;}
.nav-performance{ background:url(/zinc/images/statistics.png) no-repeat 10px;}
.nav-performance.active{background:#e6e9ef url(/zinc/images/statistics_on.png) no-repeat 10px;}
.nav-examine{background:url(/zinc/images/examine.png) no-repeat 10px !important;}
.nav-examine.active{background:#e6e9ef url(/zinc/images/examine_on.png) no-repeat 10px !important;}
.nav-info{background:url(/zinc/images/user.png) no-repeat 10px !important; }
.nav-info.active{background:#e6e9ef url(/zinc/images/user_on.png) no-repeat 10px !important;}
/* iframenav */
.iframenav{position:relative;margin-left:200px;height:40px;line-height:40px;}
/* [iframenav翻页] */
.iframenav-prev,.iframenav-next{position:absolute;top:0;width:50px;height:39px;z-index:1;background:#fff;cursor:pointer;padding:0 22px;text-align:center;line-height:39px;}
.iframenav-prev:hover,.iframenav-next:hover{background-color:#f5f5f5;}
.iframenav-prev{left:0;border-right:1px solid #d3d3d3;}
.iframenav-next{right:100px;border-left:1px solid #d3d3d3;}
.iframenav-prev .z-font,.iframenav-next .z-font{color:#999;margin-left:-8px;}
/* [iframenav控制] */
.iframenav-ctrl{position:absolute;top:0;right:0;}
.iframenav-ctrl-title{position:absolute;top:0;right:0;width:100px;height:39px;z-index:1;border-left:1px solid #d3d3d3;text-align:center;line-height:39px;color:#666;background:#fff;cursor:pointer;}
.iframenav-ctrl-title:hover{background-color:#f5f5f5;}
.iframenav-ctrl-title .z-font{color:#999;margin-left:6px;font-size:10px;}
.iframenav-ctrl-wrap{position:absolute;top:39px;right:0;display:none;width:150px;height:130px;z-index:2;background-color:#fff;border:1px solid #d3d3d3;}
.iframenav-ctrl-wrap ul{padding:10px 0;}
.iframenav-ctrl-wrap ul+ul{border-top:1px solid #ccc;}
.iframenav-ctrl-wrap li{padding:0 25px;line-height:30px;cursor:pointer;}
.iframenav-ctrl-wrap li:hover{background:#f1f1f1;}
/* [iframenav选项卡] */
.iframenav-tab-wrap{height:39px;margin:0 150px 0 50px;overflow:hidden;position:relative;}
.iframenav-tab-list{position:absolute;left:0;top:0;height:39px;background-color:#fff;overflow:hidden;}
.iframenav-tab-item{position:relative;float:left;line-height:39px;border-right:1px solid #d3d3d3;padding:0 35px 0 20px;background:#fff;color:#666;cursor:pointer;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;}
.iframenav-tab-item.active{background-color:#d4d8db;}
.iframenav-tab-item:hover{color:#222;}
.iframenav-tab-item:first-child{padding-right:23px;}
.iframenav-tab-item .z-font{position:absolute;top:2px;width:25px;line-height:39px;color:#666;font-size:12px;cursor:pointer;text-align:center;}
.iframenav-tab-item .z-error{right:0;padding-right:5px;}
.iframenav-tab-item .z-error:hover{color:#f00;}
/* [iframenav内容页] */
.iframenav-cont{}
.iframenav-cont-item{width:100%;height:100%;display:none;}
.iframenav-cont-item.active{display:block;}
.iframenav-cont-item > iframe{width:100%;height:100%;border:0;margin:0;padding:0;}
/* mainbody */
.mainbody{margin-left:208px; }
.mainbody .breadcrumb{position:relative;float:left;width:100%;}
.mainbody .content{position:relative;float:left;width:100%;padding:20px;}
/* footer */
.footer {position:relative;width:100%;height:60px;display:block;overflow:hidden;background-color:#f4f4f4;border-top:1px solid #d3d3d3;z-index:99;}
.footer-wrap {position:relative;margin:0 auto;height:100%;line-height:60px;text-align: center;color:#333;}
+115
Voir le fichier
@@ -0,0 +1,115 @@
/*
* 版权所有 (C) 2015 知启蒙(ZHIQIM) 保留所有权利。
*
* 指定登记&发行网站: https://www.zhiqim.com/ 欢迎加盟知启蒙,[编程有你,知启蒙一路随行]。
*
* 本文采用《知启蒙许可证》,除非符合许可证,否则不可使该文件!
* 1、您可以免费使用、修改、合并、出版发行和分发,再授权软件、软件副本及衍生软件;
* 2、您用于商业用途时,必须在原作者指定的登记网站进行实名登记;
* 3、您在使用、修改、合并、出版发行和分发时,必须包含版权声明、许可声明,及保留原作者的著作权、商标和专利等知识产权;
* 4、您在互联网、移动互联网等大众网络下发行和分发再授权软件、软件副本及衍生软件时,必须在原作者指定的发行网站进行发行和分发;
* 5、您可以在以下链接获取一个完整的许可证副本。
*
* 许可证链接:http://zhiqim.org/licenses/LICENSE.htm
*
* 除非法律需要或书面同意,软件由原始码方式提供,无任何明示或暗示的保证和条件。详见完整许可证的权限和限制。
*/
+(function(Z)
{//BEGIN
/**************************************************/
//定义全局的对象,便于所有的页面调用
/**************************************************/
var Zmr = window.Zmr = {};
Zmr.selectOrgDialog = function()
{//弹出组织选择框
var dialog = new Z.Dialog();
dialog.title = "选择组织";
dialog.url = "orgSelector.htm";
dialog.width = 392;
dialog.height = 423;
dialog.fixed = true;
dialog.scroll = true;
dialog.execute();
};
Zmr.sidebar = function()
{//打开&关闭边导航
var $sidebar = Z("#sidebar");
if ($sidebar.isHide())
{
$sidebar.show();
Z("#logo").show();
Z("#iframenav").css("margin-left", 208);
Z("#mainbody").css("margin-left", 208);
}
else
{
$sidebar.hide();
Z("#logo").hide();
Z("#iframenav").css("margin-left", 0);
Z("#mainbody").css("margin-left", 0);
}
Z.ajax().setContextPath(Zmr.contextPath)
.setClassName("sessionUser").setMethodName("setSidebar").addParam(!$sidebar.isHide())
.execute();
};
Zmr.calcMainbodyHeight = function()
{//计算主体高度
var height = Z(document).clientHeight()-55;//55为topnav的高度
Z("#container").css("height", height);
Z("#mainbody").css("height", height-40);//40为iframenav高度
};
Zmr.treeExpand = function(code)
{//树菜单展开和关闭
var $menu = Z("#menu-"+code);
var $ico = Z("#ico-"+code);
if (!$menu.isHide())
{
$menu.hide();
if ($ico.hasClass("z-mlastnode"))
$ico.removeClass("z-mlastnode").addClass("z-plastnode");
else
$ico.removeClass("z-mnode").addClass("z-pnode");
}
else
{
$menu.show();
if ($ico.hasClass("z-plastnode"))
$ico.removeClass("z-plastnode").addClass("z-mlastnode");
else
$ico.removeClass("z-pnode").addClass("z-mnode");
}
};
Zmr.addTopMenuClick = function()
{//增加顶级栏目点击事件,先定义两个开关,防止并发时导致数据混乱
Zmr.doClickTopMenuUp = false;
Zmr.doClickTopMenuDw = false;
Z(".sidebar p").click(function()
{
if (Zmr.doClickTopMenuUp || Zmr.doClickTopMenuDw)
return;
Zmr.doClickTopMenuUp = true;Zmr.doClickTopMenuDw = true;
Z(this).next("ul").slideToggle(200, function(){Zmr.doClickTopMenuDw = false;})
.siblings("ul").slideUp(200, function(){Zmr.doClickTopMenuUp = false;});
});
};
/**************************************************/
//定义初始化滑动菜单
/**************************************************/
Z.onload(function()
{//菜单隐藏展开
Zmr.addTopMenuClick();
});
//END
})(zhiqim);
+61
Voir le fichier
@@ -0,0 +1,61 @@
<#--变量定义-->
<#var zmr_theme.css = context.getRootPath("/ztmpl/zhiqim_manager/"+themeMain+"/default_2019010101.css?v=20210730")/>
<#var zmr_theme.js = context.getRootPath("/ztmpl/zhiqim_manager/"+themeMain+"/default_2019010101.js?v=20210730")/>
<#var zmr_color_class = "z-blue"/>
<#var zmr_sidebar_width = 200/>
<#var zmr_topnav_height = 55/>
<#var zmr_breadcrumb_height = 40/>
<#var zmr_title_bgcolor = "#efefef"/>
<#var zmr_thead_bgcolor = "#efefef"/>
<#var zmr_tr_odd_bgcolor = "#f3fdfc"/>
<#var zmr_tr_even_bgcolor = "#ffffff"/>
<#var zmr_tr_over_bgcolor = "#f3fdfc"/>
<#var zmr_tfoot_bgcolor = "#ffffff"/>
<#--面包屑 -->
<#function zhiqim_manager_breadcrumb_name(name)>
<#if !ZmrParamDao.isThemeFrame(context)>
<div class="breadcrumb z-h40 z-lh40 z-bg-white z-bd-b">
<span class="z-pd-l20">${name}</span>
</div>
</#if>
</#function>
<#--面包屑一级栏目 -->
<#function zhiqim_manager_breadcrumb(name)>
<#if !ZmrParamDao.isThemeFrame(context)>
<div class="breadcrumb z-h40 z-lh40 z-bg-white z-bd-b">
<span class="z-pd-l20">当前位置:<a href="${context.getRootPath(ZmlContexts.parseZmlContent(request, ZmrParamDao.getMainIndexUrl(context)))}">首页</a>&nbsp;&nbsp;&nbsp;>>&nbsp;&nbsp;&nbsp;<span style="color:#078ce9;">${name}</span></span>
</div>
</#if>
</#function>
<#--面包屑二级栏目 -->
<#function zhiqim_manager_breadcrumb_parent(parentUrl, parentName, name)>
<#if !ZmrParamDao.isThemeFrame(context)>
<div class="breadcrumb z-h40 z-lh40 z-bg-white z-bd-b">
<span class="z-pd-l20">当前位置:<a href="${context.getRootPath(ZmlContexts.parseZmlContent(request, ZmrParamDao.getMainIndexUrl(context)))}">首页</a>&nbsp;&nbsp;&nbsp;>>&nbsp;&nbsp;&nbsp;<a href="${parentUrl}">${parentName}</a>&nbsp;&nbsp;&nbsp;>>&nbsp;&nbsp;&nbsp;<span style="color:#078ce9;">${name}</span></span>
</div>
</#if>
</#function>
<#--面包屑三级栏目 -->
<#function zhiqim_manager_breadcrumb_parent_last(parentUrl, parentName, lastUrl, lastName, name)>
<#if !ZmrParamDao.isThemeFrame(context)>
<div class="breadcrumb z-h40 z-lh40 z-bg-white z-bd-b">
<span class="z-pd-l20">当前位置:<a href="${context.getRootPath(ZmlContexts.parseZmlContent(request, ZmrParamDao.getMainIndexUrl(context)))}">首页</a>&nbsp;&nbsp;&nbsp;>>&nbsp;&nbsp;&nbsp;<a href="${parentUrl}">${parentName}</a>&nbsp;&nbsp;&nbsp;>>&nbsp;&nbsp;&nbsp;<a href="${lastUrl}">${lastName}</a>&nbsp;&nbsp;&nbsp;>>&nbsp;&nbsp;&nbsp;<span style="color:#078ce9;">${name}</span></span>
</div>
</#if>
</#function>
<#--显示记录分页-->
<#function zhiqim_manager_paging(result, link)>
<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.toHtmlLink(result, link)}</div></td>
</tr>
</table>
</#function>
<#--显示记录分页JS-->
<#function zhiqim_manager_paging_jsMethod(result, jsMethod)>
<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(result, jsMethod)}</div></td>
</tr>
</table>
</#function>
+172
Voir le fichier
@@ -0,0 +1,172 @@
<!DOCTYPE html>
<html>
<head>
<title>${context.getContextName()}</title>
<meta charset="UTF-8">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
${Styles.src(zhiqim.css)}
${Scripts.src(zhiqim.js)}
${Styles.src(zmr_theme.css)}
${Scripts.src(zmr_theme.js)}
${Scripts.src(zhiqim_iframenav.js)}
${Styles.htmlOverflowHidden()}
<script>
Zmr.contextPath = "${context.getContextPath()}";
Zin.contextPath = "${context.getContextPath()}";
Z.onload(Zmr.calcMainbodyHeight);
Z(window).resize(Zmr.calcMainbodyHeight);
Z(window).resize(Zin.setTranslateForShowActive);
<#if !sessionUser.isWelcomeUrl()>
Z.onload(function()
{
var $elem = Z("#sidebar [data-url]");
if ($elem.length > 0)
{//存在指定主页,主动打开
Zin.doClickChildMenu($elem[0], $elem.attr("data-url"));
}
});
</#if>
</script>
</head>
<body>
<!--顶部导航 -->
<div class="topnav">
<div id="logo" class="logo z-pointer z-text-left ${sessionUser.getSidebarClass()}" onclick="Zin.selectIframeTab('menu_index');">${context.getAttribute("name")}</div>
<div class="topnavleft">
<div class="bar z-w60 z-text-center z-pointer" onclick="Zmr.sidebar();"><i class="z-font z-list z-px22"></i></div>
${zhiqim_manager_topnav_left_defined()}
</div>
<div class="topnavright">
${zhiqim_manager_topnav_right_defined()}
<div class="nav z-w100 z-text-center z-pointer" onclick="Zin.refreshIframeTabActive();">刷新</div>
<div class="nav z-w100 z-text-center z-pointer" onclick="Z.L.confirm('${context.getRootPath("/"+zhiqim_manager+"/logout.htm")}', '确实要退出吗?');">退出系统</div>
</div>
</div>
<!--容器开始 -->
<div id="container" class="container">
<!--侧边导航 -->
<div id="sidebar" class="sidebar ${sessionUser.getSidebarClass()}">
<!-- 个人中心 -->
<div class="z-h80 z-pd-t15 z-pd-l15" style="border-bottom:1px solid #22282e;">
<div class="z-float-left z-w50 z-h50 z-mg-r10"><img class="z-bd-rd50p z-w50 z-h50" src="${sessionUser.getAvatar50()}"></div>
<div class="z-float-left z-lh25">
<span class="z-px14 z-bold z-color-white">${sessionUser.getOperatorName()}</span><br>
<a href="javascript:void(0);" onclick="Zin.doClickChildMenu(this, '${context.getRootPath("/"+zhiqim_manager+"/profile.htm")}');"><span class="z-color-white z-px12">个人中心</span></a>
</div>
</div>
<!-- 栏目列表 -->
<#var topMenuCode = sessionUser.getSelectedTopMenuCodeOrFirstMenuCode(request, sessionUser.getMainUrl())/>
<#for topMenu : sessionUser.getTopMenuList()>
<#if sessionUser.hasChildMenu(topMenu.getMenuCode())>
<p><i class="z-font z-px18 z-mg-r5 ${topMenu.getMenuIcon()}"></i>#{topMenu.getMenuName()}<i class="z-arrow z-px5 z-gray"></i></p>
<ul id="${topMenu.getMenuCode()}" style="display: <#if topMenu.getMenuCode() == topMenuCode>block<#else>none</#if>;">
<#for childMenu : sessionUser.getChildMenuList(topMenu.getMenuCode())>
<li onclick="Zin.doClickChildMenu(this, '${context.getRootPath(childMenu.getMenuUrl())}');" <#if context.getRootPath(childMenu.getMenuUrl()) == sessionUser.getMainUrl()>class="active" data-url="${context.getRootPath(childMenu.getMenuUrl())}"</#if>><i class="z-font z-mg-r10 ${childMenu.getMenuIcon()}"></i>#{childMenu.getMenuName()}</li>
</#for>
</ul>
<#elseif Validates.isNotEmptyBlank(topMenu.getMenuUrl())>
<p onclick="Zin.doClickChildMenu(this, '${context.getRootPath(topMenu.getMenuUrl())}');"><i class="z-font z-px18 z-mg-r5 ${topMenu.getMenuIcon()}"></i>#{topMenu.getMenuName()}</p>
</#if>
</#for>
</div>
<!-- 框架导航 -->
<div class="iframenav z-h40 z-lh40 z-bg-white z-bd-b" style="margin-left:<#if sessionUser.hasSidebar()>200px<#else>0</#if>">
<div class="iframenav-prev" onclick="Zin.turnIframeTab(false);"><i class="z-font z-arrow-left"></i><i class="z-font z-arrow-left"></i></div>
<div class="iframenav-tab-wrap">
<ul class="iframenav-tab-list">
<li class="iframenav-tab-item active" id="tab_menu_index" onclick="Zin.selectIframeTabEvent(event);"><span>首页</span></li>
</ul>
</div>
<div class="iframenav-next" onclick="Zin.turnIframeTab(true);"><i class="z-font z-arrow-right"></i><i class="z-font z-arrow-right"></i></div>
<div class="iframenav-ctrl">
<div class="iframenav-ctrl-title" onclick="Zin.toggleIframeCtrlWrap();">关闭操作<i class="z-font z-arrow-down"></i></div>
<div class="iframenav-ctrl-wrap">
<ul>
<li class="iframenav-ctrl-item" onclick="Zin.selectIframeTabActive();">定位当前选项卡</li>
</ul>
<ul>
<li class="iframenav-ctrl-item" onclick="Zin.closeIframeTabAll();">关闭全部选项卡</li>
<li class="iframenav-ctrl-item" onclick="Zin.closeIframeTabOther();">关闭其他选项卡</li>
</ul>
</div>
</div>
</div>
<!--框架内容-->
<div id="mainbody" class="mainbody iframenav-cont z-h100p" style="margin-left:<#if sessionUser.hasSidebar()>200px<#else>0</#if>">
<div id="iframe_menu_index" class="iframenav-cont-item active">
<iframe id="mainFrame" name="mainFrame" frameborder="0" scrolling="auto" src="welcome.htm"></iframe>
</div>
</div>
<!--容器结束 -->
</div>
<#if Validates.isNotEmptyBlank(sessionUser.getOperator().getInitialPassword()) && sessionUser.getOperator().getInitialPassword().equals(sessionUser.getOperator().getOperatorPass())>
<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();
}
var dialog = new Z.Dialog();
dialog.title = '<span style="font-weight:bold">初始密码需要修改</span>';
dialog.text = '<div id="dialog_content"></div>';
dialog.width = 650;
dialog.height = 280;
dialog.fixed = true;
dialog.close = function ()
{//关闭
dialog.remove();
dialog = null;
}
dialog.execute();
dialog.$background.remove();//去边框
var text = `
<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>
</div>
</form>
`;
Z("#dialog_content").htmlc(text);
dialog.innerAlert = false;
dialog.submit = function(){
}
document.getElementsByClassName("z-font z-error")[0].remove();
</script>
</#if>
</body>
</html>
Fichier binaire non affiché.

Après

Largeur:  |  Hauteur:  |  Taille: 19 KiB

Fichier binaire non affiché.

Après

Largeur:  |  Hauteur:  |  Taille: 49 KiB

Fichier binaire non affiché.

Après

Largeur:  |  Hauteur:  |  Taille: 12 KiB

Fichier binaire non affiché.

Après

Largeur:  |  Hauteur:  |  Taille: 3.9 KiB

Fichier binaire non affiché.

Après

Largeur:  |  Hauteur:  |  Taille: 7.8 KiB

Fichier binaire non affiché.

Après

Largeur:  |  Hauteur:  |  Taille: 12 KiB

Fichier binaire non affiché.

Après

Largeur:  |  Hauteur:  |  Taille: 22 KiB

Fichier binaire non affiché.

Après

Largeur:  |  Hauteur:  |  Taille: 15 KiB

Fichier binaire non affiché.

Après

Largeur:  |  Hauteur:  |  Taille: 6.6 KiB

Fichier binaire non affiché.

Après

Largeur:  |  Hauteur:  |  Taille: 8.0 KiB

Fichier binaire non affiché.

Après

Largeur:  |  Hauteur:  |  Taille: 13 KiB

+17
Voir le fichier
@@ -0,0 +1,17 @@
<!DOCTYPE html>
<html>
<head>
<title>${context.getContextName()}</title>
<meta charset="UTF-8">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
${Styles.src(zhiqim.css)}
${Scripts.src(zhiqim.js)}
</head>
<body>
<#include "/ztmpl/zhiqim_manager/"+themeMain+"/define.htm"/>
<div id="mainbody" class="mainbody">
<#include include/>
</div>
</body>
</html>
+185
Voir le fichier
@@ -0,0 +1,185 @@
<!DOCTYPE html>
<html>
<head>
<title>${context.getContextName()}</title>
<meta charset="UTF-8">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
${Styles.src(zhiqim.css)}
${Scripts.src(zhiqim.js)}
${Scripts.src(jsencrypt.js)}
${Styles.htmlOverflowHidden()}
<style>
body{color:#333;background:#4865e7 url(ztmpl/zhiqim_manager/index_bg_00.jpg) no-repeat top center; background-size:auto 100%;}
body,table,td,div{font-size:14px;line-height:120%;}
a,a:visited{color:#333;text-decoration:none;cursor:pointer;}
a:active,a:hover{color:#1e7eec;text-decoration:none;}
.header{width:100%;background:rgba(255,255,255,.3); filter:alpha(opacity=30); height:40px;}
.footer{position:fixed;bottom:0px; width:100%;height:40px;background:rgba(255,255,255,0.2);line-height:40px;text-align:center;color:#fff;}
.login{width:825px; background:rgba(255,255,255,.3); filter:alpha(opacity=30); border-radius:12px; position: absolute; right:7%; top:50%; margin:-180px 0 0 0;}
input{background:#fff;color:#86BFE9; width:320px; font-size:14px;border:1px solid #3b8edc;border-radius:5px;height:45px;line-height:45px;text-indent:10px;}
input::-webkit-input-placeholder{color:#86BFE9;}
.input.verificationCode{letter-spacing:4px;}
.event-class{float:right; font-size:14px; color:#fff; margin:16px 86px 20px 0;}
.event-class a{color:#fff;}
.z-relative{ position: relative;}
.register{ position: absolute; top:30px; right:58px; color:#ffd200!important; font-size:14px; text-decoration: underline;}
.z-checkbox{ border:2px solid #fff; border-radius:16px; width:18px; height:18px;}
</style>
<script>
Z.onload(function()
{//默认焦点
if (Z.V.isEmpty(Z("#operatorCode").val()))
Z("#operatorCode").focus();
else if (Z.V.isEmpty(Z("#operatorPass").val()))
Z("#operatorPass").focus();
else if (Z("#verificationCode").length > 0)
Z("#verificationCode").focus();
Z(document).keydown(function(e)
{
if (Z.E.key(e) != Z.E.KEY.ENTER)
return;
if (!Z.Dialog.cache.isEmpty())
return;
doLogin();
});
});
function doRememberCode(rememberCode)
{//取消记住账号时,同时取消记住密码
if (!rememberCode.checked)
{
Z("#rememberPass")[0].checked = false;
Z("[data-id=rememberPass]").removeClass("z-active");
}
}
function doRememberPass(rememberPass)
{//记住密码时,同时记住账号
if (rememberPass.checked)
{
Z("#rememberCode")[0].checked = true;
Z("[data-id=rememberCode]").addClass("z-active");
}
}
function doLogin()
{//ajax登陆
var operatorCode = Z("#operatorCode").val();
if (Z.V.isEmptyBlank(operatorCode))
{//用户名和密码必填
Z.failure("用户名不能为空!");
Z("#operatorCode").focus();
return;
}
var operatorPass = Z("#operatorPass").val();
if (Z.V.isEmptyBlank(operatorPass))
{//用户名和密码必填
Z.failure("密码不能为空!");
Z("#operatorPass").focus();
return;
}
var verificationCode = Z("#verificationCode").val();
if (Z("#verificationCode").length > 0 && verificationCode.length != 4)
{//如果有验证码框的时候,要求值必须是4位(数字在输入时控制)
Z.failure("验证码为4位数字!");
return;
}
//对密码进行RSA加密
var publicKey = "${ZmrParamDao.getPublicKey(context)}";
var encrypt = new JSEncrypt();
encrypt.setPublicKey(publicKey);
operatorPass = encrypt.encrypt(operatorPass);
var ajax = new Z.Ajax();
ajax.setContextPath("${context.getContextPath()}");
ajax.setClassName("ZmrLoginPresenter");
ajax.setMethodName("doLogin");
ajax.addParam("operatorCode", operatorCode);
ajax.addParam("operatorPass", operatorPass);
ajax.addParam("role", "designer");
<#if hasRememberPass>
if (Z("#rememberPass")[0].checked)
ajax.addParam("rememberPass", "true");
</#if>
<#if hasRememberCode>
if (Z("#rememberCode")[0].checked)
ajax.addParam("rememberCode", "true");
</#if>
ajax.addParam("verificationCode", verificationCode);
ajax.setFailureAlert();
ajax.setSuccess(function(){window.location.href= this.responseText;});
ajax.execute();
}
</script>
</head>
<body>
<#-- 主题变量和函数定义 -->
<#include "/ztmpl/zhiqim_manager/"+themeIndex+"/define.htm"/>
${Htmls.toCallFrame()}
<div class="header">
<div class="z-float-left z-w400 z-lh40 z-pd-l10 z-color-white">欢迎登录&nbsp;&nbsp;[&nbsp;${context.getContextName()}&nbsp;]</div>
<div class="z-float-right z-text-right z-w200 z-lh40 z-pd-r10"></div>
</div>
<div class="login" style="height:<#if hasVerificationCode && hasRememberCode>410<#elseif hasVerificationCode>360<#elseif hasRememberCode>360<#else>300</#if>px">
<table class="z-table z-h100p">
<tr>
<td width="50%" class="z-text-center"><img src="ztmpl/zhiqim_manager/designLogo.png"></td>
<td width="50%" valign="top" rowspan="2" class="z-relative">
<input type="text" class="z-hidden-fixed"/>
<input type="password" class="z-hidden-fixed"/>
<a class="register" href='/reg.htm'>注册设计师</a>
<table class="z-table z-mg-l30 z-h70-tr z-pd5 z-color-white">
<tr>
<td class="z-px20 z-mg-t10">用户登录</td>
</tr>
<tr>
<td><input id="operatorCode" class="input" placeholder="用户名/手机号" value="#{operatorCode}" maxlength="16" spellcheck="false" autocomplete="off"></td>
</tr>
<tr>
<td><input id="operatorPass" type="password" class="input" placeholder="密码" value="#{operatorPass}" maxlength="16" spellcheck="false" autocomplete="off"></td>
</tr>
<#if hasVerificationCode>
<tr>
<td>
<input id="verificationCode" class="z-w200 input verificationCode" placeholder="验证码" data-options="type:Numeric;paste:true;" maxlength="4" spellcheck="false" autocomplete="off">
<img class="z-pointer z-bd-rd5 z-mg-t-8" title="点击刷新验证码" onclick="this.src='service/vcode.jpg?bgColor=%231299ec&width=95&height=42&fontSize=20&yawp=true&t='+new Date().getTime();" src="service/vcode.jpg?bgColor=%231299ec&width=95&height=42&fontSize=20&yawp=true&t=${DateTimes.getDateTime17String()}">
</td>
</tr>
</#if>
<#if hasRememberCode>
<tr class="zi-h40">
<td class="z-px16" style="font-size:14px;">
<input id="rememberCode" style="width:30px;" type="checkbox" data-role="z-checkbox" data-class="z-mg-r10 ${zmr_color_class}" onclick="doRememberCode(this);" <#if Validates.isNotEmpty(operatorCode)>checked</#if>>记住用户名
<#if hasRememberPass>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<input id="rememberPass" style='margin:0 0 0 70px;width:30px;' type="checkbox" data-role="z-checkbox" data-class="z-mg-r10 ${zmr_color_class}" onclick="doRememberPass(this);" <#if Validates.isNotEmpty(operatorPass)>checked</#if>/>记住密码
</#if>
</td>
</tr>
</#if>
<tr>
<td><button style="width:320px; border-radius:5px;" class="z-button z-h50 zi-px20 ${zmr_color_class}" onclick="doLogin()">&nbsp;&nbsp;</button>
<div class="event-class"><a href='/resetPassword.htm'>忘记密码</a></div>
</td>
</tr>
</table>
</td>
</tr>
</table>
</div>
<div class="footer">Copyright © 2023 领淘众创 All Rights Reserved <a href="https://beian.miit.gov.cn/" style="color: white" target="_blank">备案号:闽ICP备2023014112号-1 </a></div>
</body>
</html>
Fichier binaire non affiché.

Après

Largeur:  |  Hauteur:  |  Taille: 195 KiB

Fichier binaire non affiché.

Après

Largeur:  |  Hauteur:  |  Taille: 9.7 KiB

Fichier binaire non affiché.

Après

Largeur:  |  Hauteur:  |  Taille: 6.3 KiB

Fichier binaire non affiché.

Après

Largeur:  |  Hauteur:  |  Taille: 55 KiB

Fichier binaire non affiché.

Après

Largeur:  |  Hauteur:  |  Taille: 14 KiB

Fichier binaire non affiché.

Après

Largeur:  |  Hauteur:  |  Taille: 12 KiB

Fichier binaire non affiché.

Après

Largeur:  |  Hauteur:  |  Taille: 11 KiB

Fichier binaire non affiché.

Après

Largeur:  |  Hauteur:  |  Taille: 26 KiB

Fichier binaire non affiché.

Après

Largeur:  |  Hauteur:  |  Taille: 24 KiB

Fichier binaire non affiché.

Après

Largeur:  |  Hauteur:  |  Taille: 4.3 KiB

Fichier binaire non affiché.

Après

Largeur:  |  Hauteur:  |  Taille: 3.7 KiB

Fichier binaire non affiché.

Après

Largeur:  |  Hauteur:  |  Taille: 4.7 KiB

+4
Voir le fichier
@@ -0,0 +1,4 @@
<#-- 主题变量和函数定义 -->
<#include "/ztmpl/zhiqim_manager/"+themeMain+"/define.htm"/>
<#-- 判断是否启用了iframe -->
<#include "/ztmpl/zhiqim_manager/"+themeMain+"/alone.htm"/>
Fichier binaire non affiché.

Après

Largeur:  |  Hauteur:  |  Taille: 25 KiB

Fichier binaire non affiché.

Après

Largeur:  |  Hauteur:  |  Taille: 15 KiB

Fichier binaire non affiché.

Après

Largeur:  |  Hauteur:  |  Taille: 9.3 KiB

Fichier binaire non affiché.

Après

Largeur:  |  Hauteur:  |  Taille: 14 KiB