first commit
@@ -0,0 +1,24 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry kind="src" path="src"/>
|
||||
<classpathentry kind="lib" path="lib/zhiqim.jar" sourcepath="/zhiqim_kernel"/>
|
||||
<classpathentry kind="lib" path="lib/zhiqim_httpd.jar" sourcepath="/zhiqim_httpd"/>
|
||||
<classpathentry kind="lib" path="lib/zhiqim_ui.jar"/>
|
||||
<classpathentry kind="lib" path="lib/zhiqim_zml.jar"/>
|
||||
<classpathentry kind="lib" path="lib/zhiqim_orm.jar"/>
|
||||
<classpathentry kind="lib" path="lib/zhiqim_mysql5.0.8.jar"/>
|
||||
<classpathentry kind="lib" path="lib/workwechat-service-provider-SNAPSHOT-1.0.0.jar"/>
|
||||
<classpathentry kind="lib" path="lib/commons-lang-2.6.jar"/>
|
||||
<classpathentry kind="lib" path="lib/commons-lang3-3.7.jar"/>
|
||||
<classpathentry kind="lib" path="lib/fastjson-1.2.47.jar"/>
|
||||
<classpathentry kind="lib" path="lib/httpclient-4.5.2.jar"/>
|
||||
<classpathentry kind="lib" path="lib/httpcore-4.4.9.jar"/>
|
||||
<classpathentry kind="lib" path="lib/jackson-annotations-2.9.0.jar"/>
|
||||
<classpathentry kind="lib" path="lib/commons-codec-1.9.jar"/>
|
||||
<classpathentry kind="lib" path="lib/commons-logging-1.2.jar"/>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
|
||||
<classpathentry kind="lib" path="lib/aliyun-java-sdk-core-4.1.0.jar"/>
|
||||
<classpathentry kind="lib" path="lib/aliyun-java-sdk-dysmsapi-1.1.0.jar"/>
|
||||
<classpathentry kind="lib" path="lib/gson-2.8.5.jar"/>
|
||||
<classpathentry kind="output" path="bin"/>
|
||||
</classpath>
|
||||
@@ -0,0 +1,17 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>zhiqim_manager</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.jdt.core.javabuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
||||
@@ -0,0 +1,2 @@
|
||||
eclipse.preferences.version=1
|
||||
encoding//src/org/zhiqim/manager/action/IndexAction.java=UTF-8
|
||||
@@ -0,0 +1,13 @@
|
||||
eclipse.preferences.version=1
|
||||
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
|
||||
org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
|
||||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
|
||||
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
|
||||
org.eclipse.jdt.core.compiler.compliance=1.8
|
||||
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
|
||||
org.eclipse.jdt.core.compiler.debug.localVariable=generate
|
||||
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
|
||||
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
|
||||
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
|
||||
org.eclipse.jdt.core.compiler.release=disabled
|
||||
org.eclipse.jdt.core.compiler.source=1.8
|
||||
@@ -0,0 +1 @@
|
||||
/org/
|
||||
@@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE ZHIQIM-CONFIG PUBLIC "-//ZHIQIM //DTD Zhiqim-Config Configuration 1.5.0//EN" "http://zhiqim.org/xmldtds/zhiqim_config_1_5_0.dtd">
|
||||
<zhiqim-config>
|
||||
|
||||
<group id="httpd" desc="HTTP服务">
|
||||
<item key="context" value="httpd.root" type="protected" desc="HTTP服务下包括的上下文环境,多个用逗号隔开" />
|
||||
<item key="scheme" value="HTTP" type="protected" desc="HTTP或HTTPS协议" />
|
||||
<item key="port" value="8999" type="protected" desc="监听端口" />
|
||||
<item key="io" value="NIO" type="protected" desc="可选,IO方式,AIO|BIO|NIO,默认NIO" />
|
||||
<item key="minPoolSize" value="20" type="protected" desc="HTTP处理线程池最小值" />
|
||||
<item key="maxPoolSize" value="500" type="protected" desc="HTTP处理线程池最大值" />
|
||||
</group>
|
||||
|
||||
<group id="httpd.root" desc="HTTP根上下文环境">
|
||||
<item key="path" value="/admin" type="protected" desc="必须,上下文环境路径" />
|
||||
<item key="resourceType" value="directory" type="protected" desc="资源目录类型classpath|directory" />
|
||||
<item key="resourcePath" value="./resource" type="protected" desc="资源目录" />
|
||||
<item key="welcomeUrl" value="/index.htm" type="protected" desc="欢迎页" />
|
||||
<item key="zmr.orm" value="orm" type="protected" desc="管理台对应的数据库映射" />
|
||||
<item key="zmr.orm.opr" value="orm" type="protected" desc="管理台对应的操作员与组织数据库映射,用于共享" />
|
||||
</group>
|
||||
|
||||
</zhiqim-config>
|
||||
@@ -0,0 +1,30 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE ZHIQIM-CONFIG PUBLIC "-//ZHIQIM //DTD Zhiqim-Config Configuration 1.5.0//EN" "http://zhiqim.org/xmldtds/zhiqim_config_1_5_0.dtd">
|
||||
<zhiqim-config>
|
||||
|
||||
<group id="logging" desc="信息日志配置">
|
||||
<item key="logging.info" value="debug-info" type="protected" desc="信息日志配置" />
|
||||
<item key="logging.error" value="error-fatal" type="protected" desc="错误日志配置" />
|
||||
<item key="logging.database" value="debug-fatal" type="protected" desc="数据库日志配置" />
|
||||
</group>
|
||||
|
||||
<group id="logging.info" desc="信息日志配置">
|
||||
<item key="console.out" value="true" type="protected" desc="是否输出到控制台" />
|
||||
<item key="file.out" value="true" type="protected" desc="是否输出到文件" />
|
||||
<item key="file.path" value="./logs/info.log" type="protected" desc="输出到文件路径" />
|
||||
</group>
|
||||
|
||||
<group id="logging.error" desc="错误日志配置">
|
||||
<item key="console.out" value="true" type="protected" desc="是否输出到控制台" />
|
||||
<item key="file.out" value="true" type="protected" desc="是否输出到文件" />
|
||||
<item key="file.path" value="./logs/error.log" type="protected" desc="输出到文件路径" />
|
||||
</group>
|
||||
|
||||
<group id="logging.database" desc="数据库日志配置">
|
||||
<item key="must.name" value="database.log" type="protected" desc="指定日志名称,为空表示不指定" />
|
||||
<item key="console.out" value="true" type="protected" desc="是否输出到控制台" />
|
||||
<item key="file.out" value="true" type="protected" desc="是否输出到文件" />
|
||||
<item key="file.path" value="./logs/database/database.log" type="protected" desc="输出到文件路径" />
|
||||
</group>
|
||||
|
||||
</zhiqim-config>
|
||||
@@ -0,0 +1,53 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE ZHIQIM-CONFIG PUBLIC "-//ZHIQIM //DTD Zhiqim-Config Configuration 1.5.0//EN" "http://zhiqim.org/xmldtds/zhiqim_config_1_5_0.dtd">
|
||||
<zhiqim-config>
|
||||
|
||||
<group id="boot" desc="系统启动配置">
|
||||
<item key="name" value="zhiqim_manager" type="protected" desc="系统名称" />
|
||||
<item key="version" value="V3.0" type="protected" desc="系统版本" />
|
||||
<item key="port" value="50080" type="protected" desc="系统监听端口,用于启动监听和命令关闭工程" />
|
||||
<item key="process" value="zhiqim" type="protected" desc="使用的进程名,MAC系统下该配置无效" />
|
||||
<item key="args" value="-server -Xms64m -Xmx1024m" type="protected" desc="JVM参数" />
|
||||
<item key="home" value="C:\\Program Files\\Java\\jdk1.8.0_202\\" type="protected" desc="JDK根目录" />
|
||||
<item key="libext" value="./libext" type="protected" desc="加载的库目录" />
|
||||
<item key="include" value="*/bin,*/lib/*" type="protected" desc="扫描包含库模式,多个用逗号隔开,星号表示通配符" />
|
||||
</group>
|
||||
|
||||
<group id="config" desc="系统其他配置文件,./开头表示工程相对路径下,绝对路径使用/或d:/等(Windows也使用顺斜杠作路径)">
|
||||
<item key="logging" value="./conf/logging.xml" type="protected" desc="日志配置文件" />
|
||||
<item key="httpd" value="./conf/httpd.xml" type="protected" desc="WEB配置" />
|
||||
</group>
|
||||
|
||||
<group id="service" desc="系统服务配置,有依赖时注意顺序,系统按顺序加载,按倒序销毁">
|
||||
<item key="logging" value="org.zhiqim.kernel.logging.LogServer" type="protected" desc="日志服务" />
|
||||
<item key="orm" value="org.zhiqim.orm.ORMServer" type="protected" desc="主数据库服务" />
|
||||
<item key="httpd" value="org.zhiqim.httpd.HttpServer" type="protected" desc="web服务" />
|
||||
</group>
|
||||
|
||||
<group id="orm" desc="MYSQL数据库连接方式">
|
||||
<item key="dbType" value="mysql" type="protected" desc="数据库类型,支持mysql|oracle|mssql|postgresql|sqlite|hsql" />
|
||||
<item key="driver" value="org.zhiqim.mysql5_0_8.jdbc.Driver" type="protected" desc="数据库驱动" />
|
||||
<!-- <item key="url" value="jdbc:mysql://localhost:3306/yangcai365_design?useUnicode=true&characterEncoding=UTF-8" type="protected" desc="数据库Url" />
|
||||
<item key="user" value="root" type="protected" desc="数据库用户名" />
|
||||
<item key="pass" value="123456" type="protected" desc="数据库密码" /> -->
|
||||
<item key="url" value="jdbc:mysql://127.0.0.1:3306/yangcai_design?useUnicode=true&characterEncoding=UTF-8" type="protected" desc="数据库Url" />
|
||||
<item key="user" value="root" type="protected" desc="数据库用户名" />
|
||||
<item key="pass" value="RdCcZOL1QxdYqEot" type="protected" desc="数据库密码" />
|
||||
<item key="minPoolSize" value="20" type="protected" desc="线程池最小值" />
|
||||
<item key="maxPoolSize" value="200" type="protected" desc="线程池最大值" />
|
||||
<item key="maxKeepTime" value="7001" type="protected" desc="每连接最大保持时长,大于该值将重建连接,单位秒" />
|
||||
<item key="isUpdateSqlLog" value="false" type="protected" desc="组装更新SQL语句,用于打印日志" />
|
||||
<item key="isQuerySqlLog" value="false" type="protected" desc="组装查询SQL语句,用于打印日志" />
|
||||
</group>
|
||||
|
||||
<group id="orm.cache" desc="数据库缓存表">
|
||||
<item key="ZmrParam" value="{name:Day,time:6/7/11}" type="protected" desc="参数表,每天06:07:11刷新一次" />
|
||||
<item key="ZmrDept" value="{name:Day,time:6/7/11}" type="protected" desc="部门表,每天06:07:11刷新一次" />
|
||||
</group>
|
||||
|
||||
<group id="aliyun.sms" desc="阿里云sms服务">
|
||||
<item key="accessKeyId" value="LTAI4GH2Pofy8FtAMPibPvj5" type="protected" desc="访问KEY" />
|
||||
<item key="accessKeySecret" value="BhxUaxBQnsMEZZEHDCVb0rK5wiEKRm" type="protected" desc="访问密钥" />
|
||||
</group>
|
||||
|
||||
</zhiqim-config>
|
||||
@@ -0,0 +1,33 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<section name="Zhiqim">
|
||||
<section name="ExportProject">
|
||||
<item value="" key="excludeDirs"/>
|
||||
<item value="" key="excludePackages"/>
|
||||
<item value="" key="excludeResourceDirs"/>
|
||||
<item value="false" key="isDivided"/>
|
||||
<item value="false" key="isExportAndZipProject"/>
|
||||
<item value="false" key="isExportJavaSource"/>
|
||||
<item value="true" key="isGenExe"/>
|
||||
<item value="false" key="isGenZip"/>
|
||||
<item value="false" key="isIncludeJavaFile"/>
|
||||
<item value="zhiqim_manager" key="jarName"/>
|
||||
<item value="" key="metaInfoPath"/>
|
||||
<item value="" key="projectConfPath"/>
|
||||
<item value="" key="projectSourceName"/>
|
||||
<item value="zhiqim_manager" key="releaseName"/>
|
||||
<item value="D:/_yangcai" key="releasePath"/>
|
||||
</section>
|
||||
<section name="ExportComponent">
|
||||
<item value="resource-org.zhiqim.manager.resource" key="dirToJars"/>
|
||||
<item value="logs/*" key="excludeDirs"/>
|
||||
<item value="" key="excludePackages"/>
|
||||
<item value="" key="excludeResourceDirs"/>
|
||||
<item value="false" key="isExportAndZipProject"/>
|
||||
<item value="false" key="isExportJavaSource"/>
|
||||
<item value="false" key="isIncludeJavaFile"/>
|
||||
<item value="zhiqim_manager" key="jarName"/>
|
||||
<item value="" key="metaInfoPath"/>
|
||||
<item value="zhiqim_manager_v1.5.0" key="projectSourceName"/>
|
||||
<item value="D:/_yangcai" key="releasePath"/>
|
||||
</section>
|
||||
</section>
|
||||
@@ -0,0 +1,15 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<section name="zhiqim">
|
||||
<section name="ExportJar">
|
||||
<item value="" key="excludeDirs"/>
|
||||
<item value="" key="excludePackages"/>
|
||||
<item value="false" key="isDivided"/>
|
||||
<item value="false" key="isExportAndZipProject"/>
|
||||
<item value="false" key="isExportJavaSource"/>
|
||||
<item value="false" key="isIncludeJavaFile"/>
|
||||
<item value="zhiqim_manager" key="jarName"/>
|
||||
<item value="" key="metaInfoPath"/>
|
||||
<item value="" key="projectSourceName"/>
|
||||
<item value="G:/tmp" key="releasePath"/>
|
||||
</section>
|
||||
</section>
|
||||
@@ -0,0 +1,20 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<section name="zhiqim">
|
||||
<section name="ExportProject">
|
||||
<item value="" key="excludeDirs"/>
|
||||
<item value="" key="excludePackages"/>
|
||||
<item value="resource,lib,logs" key="excludeResourceDirs"/>
|
||||
<item value="false" key="isDivided"/>
|
||||
<item value="false" key="isExportAndZipProject"/>
|
||||
<item value="false" key="isExportJavaSource"/>
|
||||
<item value="true" key="isGenExe"/>
|
||||
<item value="false" key="isGenZip"/>
|
||||
<item value="false" key="isIncludeJavaFile"/>
|
||||
<item value="manager" key="jarName"/>
|
||||
<item value="" key="metaInfoPath"/>
|
||||
<item value="G:/git/ziqim/zhiqim_manager/conf" key="projectConfPath"/>
|
||||
<item value="" key="projectSourceName"/>
|
||||
<item value="zhiqim_manager" key="releaseName"/>
|
||||
<item value="G:/tmp" key="releasePath"/>
|
||||
</section>
|
||||
</section>
|
||||
@@ -0,0 +1 @@
|
||||
|
||||
@@ -0,0 +1,106 @@
|
||||
2024-06-09 12:00:41,023 [main] INFO - 初始化[数据库映射:orm]开始...
|
||||
2024-06-09 12:00:41,124 [main] INFO - 增加计划任务[Scheduler-PewK-org.zhiqim.orm.ZTableCacheTask]
|
||||
2024-06-09 12:00:41,128 [main] INFO - 增加计划任务[Scheduler-PewK-org.zhiqim.orm.ZTableCacheTask]
|
||||
2024-06-09 12:00:41,130 [main] INFO - 初始化[数据库映射:orm]完成!!!
|
||||
|
||||
2024-06-09 12:00:41,130 [main] INFO - 初始化[HTTP服务:httpd]开始...
|
||||
2024-06-09 12:00:41,131 [Interval-org.zhiqim.httpd.nio.HttpNioListener] INFO - 允许最大连接[200],当前总连接[0]=WS[0]+活动[0]+空闲[0],允许空闲[53]秒
|
||||
2024-06-09 12:00:41,285 [main] INFO - 初始化[HTTP服务:httpd][ZML引擎]开始...[2024-06-09 12:00:41,285]
|
||||
2024-06-09 12:00:41,292 [main] INFO - 初始化[HTTP服务:httpd][ZML引擎]结束!!![2024-06-09 12:00:41,292]
|
||||
2024-06-09 12:00:41,292 [main] INFO - 初始化[HTTP服务:httpd][Context:zhiqim_manager]开始...[2024-06-09 12:00:41,292]
|
||||
2024-06-09 12:00:41,300 [main] INFO - <attribute name="系统名称" key="name" value="管理平台" />
|
||||
2024-06-09 12:00:41,300 [main] INFO - <attribute name="系统版本" key="version" value="V1.0.0" />
|
||||
2024-06-09 12:00:41,300 [main] INFO - <attribute name="系统引导" key="bootstrap" value="org.zhiqim.manager.ZmrBootstrap" />
|
||||
2024-06-09 12:00:41,300 [main] INFO - <attribute name="管理台菜单" key="zmr_menu_sql" value="/conf/zmr.menu.sql" />
|
||||
2024-06-09 12:00:41,301 [main] INFO - <attribute name="管理台路径" key="zhiqim_manager" value="manager" />
|
||||
2024-06-09 12:00:41,301 [main] INFO - <interceptor name="检查登录" key="chkZmrLogin" class="org.zhiqim.manager.ZmrInterceptor" />
|
||||
2024-06-09 12:00:41,305 [main] INFO - <action name="首页" path="/index.htm" view="/ztmpl/zhiqim_manager/index.htm" class="org.zhiqim.manager.action.IndexAction" />
|
||||
2024-06-09 12:00:41,305 [main] INFO - <action name="管理页" path="/manager.htm" view="/ztmpl/zhiqim_manager/index.htm" class="org.zhiqim.manager.action.IndexAction" />
|
||||
2024-06-09 12:00:41,305 [main] INFO - <action name="退出" path="/manager/logout.htm" redirect="/index.htm" class="org.zhiqim.manager.action.LogoutAction" />
|
||||
2024-06-09 12:00:41,306 [main] INFO - <action name="主页" path="/manager/main.htm" interceptor="chkZmrLogin" view="/ztmpl/zhiqim_manager/template.htm" include="/zview/zhiqim_manager/main.zml" class="org.zhiqim.manager.action.MainAction" />
|
||||
2024-06-09 12:00:41,306 [main] INFO - <action name="主页框架" path="/manager/welcome.htm" interceptor="chkZmrLogin" view="/ztmpl/zhiqim_manager/template.htm" include="/zview/zhiqim_manager/main.zml" class="org.zhiqim.manager.action.MainAction" />
|
||||
2024-06-09 12:00:41,306 [main] INFO - <action name="用户中心" path="/manager/profile.htm" interceptor="chkZmrLogin" view="/ztmpl/zhiqim_manager/template.htm" include="/zview/zhiqim_manager/profile.zml" class="org.zhiqim.manager.action.ProfileAction" />
|
||||
2024-06-09 12:00:41,306 [main] INFO - <action name="系统菜单列表" path="/manager/menu.htm" interceptor="chkZmrLogin" view="/ztmpl/zhiqim_manager/template.htm" include="/zview/zhiqim_manager/menu.zml" class="org.zhiqim.manager.action.MenuAction" method="list" />
|
||||
2024-06-09 12:00:41,306 [main] INFO - <action name="增加菜单页面" path="/manager/menuAdd.htm" interceptor="chkZmrLogin" view="/ztmpl/zhiqim_manager/template.htm" include="/zview/zhiqim_manager/menuAdd.zml" class="org.zhiqim.manager.action.MenuAction" method="add" />
|
||||
2024-06-09 12:00:41,306 [main] INFO - <action name="增加菜单处理" path="/manager/menuInsert.htm" interceptor="chkZmrLogin" redirect="/manager/menu.htm" class="org.zhiqim.manager.action.MenuAction" method="insert" success="增加成功" />
|
||||
2024-06-09 12:00:41,306 [main] INFO - <action name="修改菜单页面" path="/manager/menuModify.htm" interceptor="chkZmrLogin" view="/ztmpl/zhiqim_manager/template.htm" include="/zview/zhiqim_manager/menuModify.zml" class="org.zhiqim.manager.action.MenuAction" method="modify" />
|
||||
2024-06-09 12:00:41,306 [main] INFO - <action name="修改菜单处理" path="/manager/menuUpdate.htm" interceptor="chkZmrLogin" redirect="/manager/menu.htm" class="org.zhiqim.manager.action.MenuAction" method="update" success="修改成功" />
|
||||
2024-06-09 12:00:41,307 [main] INFO - <action name="删除菜单处理" path="/manager/menuDelete.htm" interceptor="chkZmrLogin" redirect="/manager/menu.htm" class="org.zhiqim.manager.action.MenuAction" method="delete" success="删除成功" />
|
||||
2024-06-09 12:00:41,307 [main] INFO - <action name="系统配置设置" path="/manager/config.htm" interceptor="chkZmrLogin" redirect="/manager/config.htm" view="/ztmpl/zhiqim_manager/template.htm" include="/zview/zhiqim_manager/config.zml" class="org.zhiqim.manager.action.ConfigAction" />
|
||||
2024-06-09 12:00:41,307 [main] INFO - <action name="系统参数设置" path="/manager/param.htm" interceptor="chkZmrLogin" redirect="/manager/param.htm" view="/ztmpl/zhiqim_manager/template.htm" include="/zview/zhiqim_manager/param.zml" class="org.zhiqim.manager.action.ParamAction" />
|
||||
2024-06-09 12:00:41,307 [main] INFO - <action name="更换首页主题风格" path="/manager/themeIndex.htm" interceptor="chkZmrLogin" redirect="/manager/themeIndex.htm" view="/ztmpl/zhiqim_manager/template.htm" include="/zview/zhiqim_manager/themeIndex.zml" class="org.zhiqim.manager.action.ThemeIndexAction" />
|
||||
2024-06-09 12:00:41,307 [main] INFO - <action name="更换主页主题风格" path="/manager/themeMain.htm" interceptor="chkZmrLogin" redirect="/manager/themeMain.htm" view="/ztmpl/zhiqim_manager/template.htm" include="/zview/zhiqim_manager/themeMain.zml" class="org.zhiqim.manager.action.ThemeMainAction" />
|
||||
2024-06-09 12:00:41,308 [main] INFO - <action name="系统缓存管理" path="/manager/cache.htm" interceptor="chkZmrLogin" redirect="/manager/cache.htm" view="/ztmpl/zhiqim_manager/template.htm" include="/zview/zhiqim_manager/cache.zml" class="org.zhiqim.manager.action.CacheAction" />
|
||||
2024-06-09 12:00:41,308 [main] INFO - <action name="密钥对设置" path="/manager/keys.htm" interceptor="chkZmrLogin" redirect="/manager/keys.htm" view="/ztmpl/zhiqim_manager/template.htm" include="/zview/zhiqim_manager/keys.zml" class="org.zhiqim.manager.action.KeysAction" success="生成成功" />
|
||||
2024-06-09 12:00:41,308 [main] INFO - <action name="进程状态查询" path="/manager/process.htm" interceptor="chkZmrLogin" view="/ztmpl/zhiqim_manager/template.htm" include="/zview/zhiqim_manager/process.zml" />
|
||||
2024-06-09 12:00:41,308 [main] INFO - <action name="进程线程堆栈信息" path="/manager/processThreadStack.htm" interceptor="chkZmrLogin" view="/ztmpl/zhiqim_manager/inner.htm" include="/zview/zhiqim_manager/processThreadStack.zml" class="org.zhiqim.manager.action.ProcessThreadStackAction" />
|
||||
2024-06-09 12:00:41,308 [main] INFO - <action name="操作员参数列表" path="/manager/paramOperator.htm" interceptor="chkZmrLogin" view="/ztmpl/zhiqim_manager/template.htm" include="/zview/zhiqim_manager/paramOperator.zml" class="org.zhiqim.manager.action.ParamOperatorAction" method="list" />
|
||||
2024-06-09 12:00:41,308 [main] INFO - <action name="增加操作员参数页面" path="/manager/paramOperatorAdd.htm" interceptor="chkZmrLogin" view="/ztmpl/zhiqim_manager/template.htm" include="/zview/zhiqim_manager/paramOperatorAdd.zml" class="org.zhiqim.manager.action.ParamOperatorAction" method="add" />
|
||||
2024-06-09 12:00:41,308 [main] INFO - <action name="增加操作员参数处理" path="/manager/paramOperatorInsert.htm" interceptor="chkZmrLogin" redirect="/manager/paramOperator.htm" class="org.zhiqim.manager.action.ParamOperatorAction" method="insert" success="增加成功" />
|
||||
2024-06-09 12:00:41,308 [main] INFO - <action name="删除操作员参数处理" path="/manager/paramOperatorDelete.htm" interceptor="chkZmrLogin" redirect="/manager/paramOperator.htm" class="org.zhiqim.manager.action.ParamOperatorAction" method="delete" success="删除成功" />
|
||||
2024-06-09 12:00:41,309 [main] INFO - <action name="头像列表" path="/manager/avatar.htm" interceptor="chkZmrLogin" view="/ztmpl/zhiqim_manager/template.htm" include="/zview/zhiqim_manager/avatar.zml" class="org.zhiqim.manager.action.AvatarAction" method="list" />
|
||||
2024-06-09 12:00:41,309 [main] INFO - <action name="修改头像页面" path="/manager/avatarModify.htm" interceptor="chkZmrLogin" view="/ztmpl/zhiqim_manager/template.htm" include="/zview/zhiqim_manager/avatarModify.zml" class="org.zhiqim.manager.action.AvatarAction" method="modify" />
|
||||
2024-06-09 12:00:41,309 [main] INFO - <action name="增加头像页面" path="/manager/avatarAdd.htm" interceptor="chkZmrLogin" view="/ztmpl/zhiqim_manager/template.htm" include="/zview/zhiqim_manager/avatarAdd.zml" />
|
||||
2024-06-09 12:00:41,309 [main] INFO - <action name="组织列表" path="/manager/org.htm" interceptor="chkZmrLogin" view="/ztmpl/zhiqim_manager/template.htm" include="/zview/zhiqim_manager/org.zml" class="org.zhiqim.manager.action.OrgAction" method="list" />
|
||||
2024-06-09 12:00:41,309 [main] INFO - <action name="增加组织页面" path="/manager/orgAdd.htm" interceptor="chkZmrLogin" view="/ztmpl/zhiqim_manager/template.htm" include="/zview/zhiqim_manager/orgAdd.zml" class="org.zhiqim.manager.action.OrgAction" method="add" />
|
||||
2024-06-09 12:00:41,309 [main] INFO - <action name="增加组织处理" path="/manager/orgInsert.htm" interceptor="chkZmrLogin" redirect="/manager/org.htm" class="org.zhiqim.manager.action.OrgAction" method="insert" success="增加成功" />
|
||||
2024-06-09 12:00:41,309 [main] INFO - <action name="修改组织页面" path="/manager/orgModify.htm" interceptor="chkZmrLogin" view="/ztmpl/zhiqim_manager/template.htm" include="/zview/zhiqim_manager/orgModify.zml" class="org.zhiqim.manager.action.OrgAction" method="modify" />
|
||||
2024-06-09 12:00:41,309 [main] INFO - <action name="修改组织处理" path="/manager/orgUpdate.htm" interceptor="chkZmrLogin" redirect="/manager/org.htm" class="org.zhiqim.manager.action.OrgAction" method="update" success="修改成功" />
|
||||
2024-06-09 12:00:41,310 [main] INFO - <action name="删除组织处理" path="/manager/orgDelete.htm" interceptor="chkZmrLogin" redirect="/manager/org.htm" class="org.zhiqim.manager.action.OrgAction" method="delete" success="删除成功" />
|
||||
2024-06-09 12:00:41,310 [main] INFO - <action name="组织关联权限" path="/manager/orgRule.htm" interceptor="chkZmrLogin" redirect="/manager/orgRule.htm" view="/ztmpl/zhiqim_manager/template.htm" include="/zview/zhiqim_manager/orgRule.zml" class="org.zhiqim.manager.action.OrgRuleAction" />
|
||||
2024-06-09 12:00:41,310 [main] INFO - <action name="组织选择对话框" path="/manager/orgSelector.htm" interceptor="chkZmrLogin" view="/ztmpl/zhiqim_manager/inner.htm" include="/zview/zhiqim_manager/orgSelector.zml" class="org.zhiqim.manager.action.OrgSelectorAction" />
|
||||
2024-06-09 12:00:41,310 [main] INFO - <action name="部门列表" path="/manager/dept.htm" interceptor="chkZmrLogin" view="/ztmpl/zhiqim_manager/template.htm" include="/zview/zhiqim_manager/dept.zml" class="org.zhiqim.manager.action.DeptAction" method="list" />
|
||||
2024-06-09 12:00:41,310 [main] INFO - <action name="增加部门页面" path="/manager/deptAdd.htm" interceptor="chkZmrLogin" view="/ztmpl/zhiqim_manager/template.htm" include="/zview/zhiqim_manager/deptAdd.zml" class="org.zhiqim.manager.action.DeptAction" method="add" />
|
||||
2024-06-09 12:00:41,310 [main] INFO - <action name="增加部门处理" path="/manager/deptInsert.htm" interceptor="chkZmrLogin" redirect="/manager/dept.htm" class="org.zhiqim.manager.action.DeptAction" method="insert" success="增加成功" />
|
||||
2024-06-09 12:00:41,310 [main] INFO - <action name="修改部门页面" path="/manager/deptModify.htm" interceptor="chkZmrLogin" view="/ztmpl/zhiqim_manager/template.htm" include="/zview/zhiqim_manager/deptModify.zml" class="org.zhiqim.manager.action.DeptAction" method="modify" />
|
||||
2024-06-09 12:00:41,310 [main] INFO - <action name="修改部门处理" path="/manager/deptUpdate.htm" interceptor="chkZmrLogin" redirect="/manager/dept.htm" class="org.zhiqim.manager.action.DeptAction" method="update" success="修改成功" />
|
||||
2024-06-09 12:00:41,310 [main] INFO - <action name="删除部门处理" path="/manager/deptDelete.htm" interceptor="chkZmrLogin" redirect="/manager/dept.htm" class="org.zhiqim.manager.action.DeptAction" method="delete" success="删除成功" />
|
||||
2024-06-09 12:00:41,311 [main] INFO - <action name="部门操作员" path="/manager/deptOperator.htm" interceptor="chkZmrLogin" view="/ztmpl/zhiqim_manager/template.htm" include="/zview/zhiqim_manager/deptOperator.zml" class="org.zhiqim.manager.action.DeptOperatorAction" />
|
||||
2024-06-09 12:00:41,311 [main] INFO - <action name="部门增加操作员" path="/manager/deptOperatorSelector.htm" interceptor="chkZmrLogin" view="/ztmpl/zhiqim_manager/inner.htm" include="/zview/zhiqim_manager/deptOperatorSelector.zml" class="org.zhiqim.manager.action.DeptOperatorSelectorAction" />
|
||||
2024-06-09 12:00:41,311 [main] INFO - <action name="部门关联权限" path="/manager/deptRule.htm" interceptor="chkZmrLogin" redirect="/manager/deptRule.htm" view="/ztmpl/zhiqim_manager/template.htm" include="/zview/zhiqim_manager/deptRule.zml" class="org.zhiqim.manager.action.DeptRuleAction" success="保存成功" />
|
||||
2024-06-09 12:00:41,311 [main] INFO - <action name="角色列表" path="/manager/role.htm" interceptor="chkZmrLogin" view="/ztmpl/zhiqim_manager/template.htm" include="/zview/zhiqim_manager/role.zml" class="org.zhiqim.manager.action.RoleAction" method="list" />
|
||||
2024-06-09 12:00:41,311 [main] INFO - <action name="增加角色页面" path="/manager/roleAdd.htm" interceptor="chkZmrLogin" view="/ztmpl/zhiqim_manager/template.htm" include="/zview/zhiqim_manager/roleAdd.zml" class="org.zhiqim.manager.action.RoleAction" method="add" />
|
||||
2024-06-09 12:00:41,311 [main] INFO - <action name="增加角色处理" path="/manager/roleInsert.htm" interceptor="chkZmrLogin" redirect="/manager/role.htm" class="org.zhiqim.manager.action.RoleAction" method="insert" success="增加成功" />
|
||||
2024-06-09 12:00:41,312 [main] INFO - <action name="修改角色页面" path="/manager/roleModify.htm" interceptor="chkZmrLogin" view="/ztmpl/zhiqim_manager/template.htm" include="/zview/zhiqim_manager/roleModify.zml" class="org.zhiqim.manager.action.RoleAction" method="modify" />
|
||||
2024-06-09 12:00:41,312 [main] INFO - <action name="修改角色处理" path="/manager/roleUpdate.htm" interceptor="chkZmrLogin" redirect="/manager/role.htm" class="org.zhiqim.manager.action.RoleAction" method="update" success="修改成功" />
|
||||
2024-06-09 12:00:41,312 [main] INFO - <action name="删除角色处理" path="/manager/roleDelete.htm" interceptor="chkZmrLogin" redirect="/manager/role.htm" class="org.zhiqim.manager.action.RoleAction" method="delete" success="删除成功" />
|
||||
2024-06-09 12:00:41,312 [main] INFO - <action name="角色操作员" path="/manager/roleOperator.htm" interceptor="chkZmrLogin" view="/ztmpl/zhiqim_manager/template.htm" include="/zview/zhiqim_manager/roleOperator.zml" class="org.zhiqim.manager.action.RoleOperatorAction" />
|
||||
2024-06-09 12:00:41,312 [main] INFO - <action name="角色增加操作员" path="/manager/roleOperatorSelector.htm" interceptor="chkZmrLogin" view="/ztmpl/zhiqim_manager/inner.htm" include="/zview/zhiqim_manager/roleOperatorSelector.zml" class="org.zhiqim.manager.action.RoleOperatorSelectorAction" />
|
||||
2024-06-09 12:00:41,312 [main] INFO - <action name="角色关联权限" path="/manager/roleRule.htm" interceptor="chkZmrLogin" redirect="/manager/role.htm" view="/ztmpl/zhiqim_manager/template.htm" include="/zview/zhiqim_manager/roleRule.zml" class="org.zhiqim.manager.action.RoleRuleAction" success="保存成功" />
|
||||
2024-06-09 12:00:41,313 [main] INFO - <action name="操作员列表" path="/manager/operator.htm" interceptor="chkZmrLogin" view="/ztmpl/zhiqim_manager/template.htm" include="/zview/zhiqim_manager/operator.zml" class="org.zhiqim.manager.action.OperatorAction" method="list" />
|
||||
2024-06-09 12:00:41,313 [main] INFO - <action name="增加操作员页面" path="/manager/operatorAdd.htm" interceptor="chkZmrLogin" view="/ztmpl/zhiqim_manager/template.htm" include="/zview/zhiqim_manager/operatorAdd.zml" class="org.zhiqim.manager.action.OperatorAction" method="add" />
|
||||
2024-06-09 12:00:41,313 [main] INFO - <action name="增加操作员反馈页面" path="/manager/operatorAddSuccess.htm" interceptor="chkZmrLogin" view="/ztmpl/zhiqim_manager/inner.htm" include="/zview/zhiqim_manager/operatorAddSuccess.zml" />
|
||||
2024-06-09 12:00:41,313 [main] INFO - <action name="增加操作员处理" path="/manager/operatorInsert.htm" interceptor="chkZmrLogin" redirect="/manager/operator.htm" class="org.zhiqim.manager.action.OperatorAction" method="insert" success="增加成功" />
|
||||
2024-06-09 12:00:41,313 [main] INFO - <action name="修改操作员页面" path="/manager/operatorModify.htm" interceptor="chkZmrLogin" view="/ztmpl/zhiqim_manager/template.htm" include="/zview/zhiqim_manager/operatorModify.zml" class="org.zhiqim.manager.action.OperatorAction" method="modify" />
|
||||
2024-06-09 12:00:41,313 [main] INFO - <action name="修改操作员处理" path="/manager/operatorUpdate.htm" interceptor="chkZmrLogin" redirect="/manager/operator.htm" class="org.zhiqim.manager.action.OperatorAction" method="update" success="修改成功" />
|
||||
2024-06-09 12:00:41,313 [main] INFO - <action name="删除操作员处理" path="/manager/operatorDelete.htm" interceptor="chkZmrLogin" redirect="/manager/operator.htm" class="org.zhiqim.manager.action.OperatorAction" method="delete" success="删除成功" />
|
||||
2024-06-09 12:00:41,313 [main] INFO - <action name="操作员上传头像" path="/manager/operatorUploadAvatar.htm" interceptor="chkZmrLogin" view="/ztmpl/zhiqim_manager/template.htm" include="/zview/zhiqim_manager/operatorUploadAvatar.zml" />
|
||||
2024-06-09 12:00:41,313 [main] INFO - <action name="操作员选择对话框" path="/manager/operatorSelector.htm" interceptor="chkZmrLogin" view="/ztmpl/zhiqim_manager/inner.htm" include="/zview/zhiqim_manager/operatorSelector.zml" class="org.zhiqim.manager.action.OperatorSelectorAction" />
|
||||
2024-06-09 12:00:41,313 [main] INFO - <action name="操作员多选对话框" path="/manager/operatorsSelector.htm" interceptor="chkZmrLogin" view="/ztmpl/zhiqim_manager/inner.htm" include="/zview/zhiqim_manager/operatorsSelector.zml" class="org.zhiqim.manager.action.OperatorSelectorAction" />
|
||||
2024-06-09 12:00:41,314 [main] INFO - <action name="操作员权限修改" path="/manager/operatorRule.htm" interceptor="chkZmrLogin" redirect="/manager/operatorRule.htm" view="/ztmpl/zhiqim_manager/template.htm" include="/zview/zhiqim_manager/operatorRule.zml" class="org.zhiqim.manager.action.OperatorRuleAction" />
|
||||
2024-06-09 12:00:41,314 [main] INFO - <action name="操作员权限显示" path="/manager/operatorRuleView.htm" interceptor="chkZmrLogin" view="/ztmpl/zhiqim_manager/template.htm" include="/zview/zhiqim_manager/operatorRuleView.zml" class="org.zhiqim.manager.action.OperatorRuleViewAction" />
|
||||
2024-06-09 12:00:41,314 [main] INFO - <action name="操作员部门选择框" path="/manager/operatorDeptSelector.htm" interceptor="chkZmrLogin" view="/ztmpl/zhiqim_manager/inner.htm" include="/zview/zhiqim_manager/operatorDeptSelector.zml" class="org.zhiqim.manager.action.OperatorDeptSelectorAction" />
|
||||
2024-06-09 12:00:41,314 [main] INFO - <action name="操作员角色选择框" path="/manager/operatorRoleSelector.htm" interceptor="chkZmrLogin" view="/ztmpl/zhiqim_manager/inner.htm" include="/zview/zhiqim_manager/operatorRoleSelector.zml" class="org.zhiqim.manager.action.OperatorRoleSelectorAction" />
|
||||
2024-06-09 12:00:41,314 [main] INFO - <action name="更换头像" path="/manager/modifyAvatar.htm" interceptor="chkZmrLogin" view="/ztmpl/zhiqim_manager/inner.htm" include="/zview/zhiqim_manager/modifyAvatar.zml" />
|
||||
2024-06-09 12:00:41,314 [main] INFO - <action name="修改密码" path="/manager/modifyPassword.htm" interceptor="chkZmrLogin" view="/ztmpl/zhiqim_manager/inner.htm" include="/zview/zhiqim_manager/modifyPassword.zml" />
|
||||
2024-06-09 12:00:41,314 [main] INFO - <action name="修改手机号" path="/manager/modifyMobile.htm" interceptor="chkZmrLogin" view="/ztmpl/zhiqim_manager/inner.htm" include="/zview/zhiqim_manager/modifyMobile.zml" />
|
||||
2024-06-09 12:00:41,314 [main] INFO - <action name="修改邮箱" path="/manager/modifyEmail.htm" interceptor="chkZmrLogin" view="/ztmpl/zhiqim_manager/inner.htm" include="/zview/zhiqim_manager/modifyEmail.zml" />
|
||||
2024-06-09 12:00:41,314 [main] INFO - <action name="修改旺旺" path="/manager/modifyWangwang.htm" interceptor="chkZmrLogin" view="/ztmpl/zhiqim_manager/inner.htm" include="/zview/zhiqim_manager/modifyWangwang.zml" />
|
||||
2024-06-09 12:00:41,314 [main] INFO - <action name="修改企业微信账号" path="/manager/modifyWkwechatAccount.htm" interceptor="chkZmrLogin" view="/ztmpl/zhiqim_manager/inner.htm" include="/zview/zhiqim_manager/modifyWkwechatAccount.zml" />
|
||||
2024-06-09 12:00:41,314 [main] INFO - <action name="修改个人微信账号" path="/manager/modifyWxcode.htm" interceptor="chkZmrLogin" view="/ztmpl/zhiqim_manager/inner.htm" include="/zview/zhiqim_manager/modifyWxcode.zml" />
|
||||
2024-06-09 12:00:41,314 [main] INFO - <action name="修改操作员参数" path="/manager/modifyOperatorParam.htm" interceptor="chkZmrLogin" view="/ztmpl/zhiqim_manager/inner.htm" include="/zview/zhiqim_manager/modifyOperatorParam.zml" />
|
||||
2024-06-09 12:00:41,314 [main] INFO - <action name="验证密码" path="/manager/validatePassword.htm" interceptor="chkZmrLogin" view="/ztmpl/zhiqim_manager/inner.htm" include="/zview/zhiqim_manager/validatePassword.zml" />
|
||||
2024-06-09 12:00:41,315 [main] INFO - <action name="操作日志查询" path="/manager/operateLog.htm" interceptor="chkZmrLogin" view="/ztmpl/zhiqim_manager/template.htm" include="/zview/zhiqim_manager/operateLog.zml" class="org.zhiqim.manager.action.OperateLogAction" />
|
||||
2024-06-09 12:00:41,315 [main] INFO - <action name="操作员在线列表" path="/manager/operatorOnline.htm" interceptor="chkZmrLogin" view="/ztmpl/zhiqim_manager/template.htm" include="/zview/zhiqim_manager/operatorOnline.zml" class="org.zhiqim.manager.action.OperatorOnlineAction" />
|
||||
2024-06-09 12:00:41,315 [main] INFO - <action name="头像" path="/manager/avatar/*/*.png" class="org.zhiqim.manager.action.AvatarAction" method="access" />
|
||||
2024-06-09 12:00:41,315 [main] INFO - <action name="后台页面.htm" path="/zmr/*.htm" interceptor="chkZmrLogin" class="org.zhiqim.manager.action.ZmrAction" />
|
||||
2024-06-09 12:00:41,315 [main] INFO - <action name="后台页面.zml" path="/zmr/*.zml" interceptor="chkZmrLogin" class="org.zhiqim.manager.action.ZmrAction" />
|
||||
2024-06-09 12:00:41,315 [main] INFO - <action name="内部页面.htm" path="/zmi/*.htm" interceptor="chkZmrLogin" class="org.zhiqim.manager.action.ZmiAction" />
|
||||
2024-06-09 12:00:41,315 [main] INFO - <action name="内部页面.zml" path="/zmi/*.zml" interceptor="chkZmrLogin" class="org.zhiqim.manager.action.ZmiAction" />
|
||||
2024-06-09 12:00:41,329 [main] INFO - 刷新缓存[org.zhiqim.manager.dbo.ZmrParam]
|
||||
2024-06-09 12:00:41,441 [main] INFO - 增加计划任务[Scheduler-aqGB-org.zhiqim.manager.ZmrTask]
|
||||
2024-06-09 12:00:41,441 [main] INFO - 初始化[HTTP服务:httpd][Context:管理平台]完成!!![2024-06-09 12:00:41,441]
|
||||
2024-06-09 12:00:41,441 [main] INFO - 初始化[HTTP服务:httpd]http监听:[name:httpd;port:8999]完成!!!
|
||||
|
||||
2024-06-09 12:00:41,441 [main] INFO - 系统[zhiqim_manager]-版本[V3.0]初始化完成!!!
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
2024-06-09 12:00:41,035 [main] INFO - 创建数据库连接[000001][jdbc:mysql://127.0.0.1:3306/yangcai_design?useUnicode=true&characterEncoding=UTF-8|root]成功,[测试]
|
||||
2024-06-09 12:00:41,040 [main] INFO - 创建数据库连接[000002][jdbc:mysql://127.0.0.1:3306/yangcai_design?useUnicode=true&characterEncoding=UTF-8|root]成功,[初始化]
|
||||
2024-06-09 12:00:41,045 [main] INFO - 创建数据库连接[000003][jdbc:mysql://127.0.0.1:3306/yangcai_design?useUnicode=true&characterEncoding=UTF-8|root]成功,[初始化]
|
||||
2024-06-09 12:00:41,048 [main] INFO - 创建数据库连接[000004][jdbc:mysql://127.0.0.1:3306/yangcai_design?useUnicode=true&characterEncoding=UTF-8|root]成功,[初始化]
|
||||
2024-06-09 12:00:41,053 [main] INFO - 创建数据库连接[000005][jdbc:mysql://127.0.0.1:3306/yangcai_design?useUnicode=true&characterEncoding=UTF-8|root]成功,[初始化]
|
||||
2024-06-09 12:00:41,057 [main] INFO - 创建数据库连接[000006][jdbc:mysql://127.0.0.1:3306/yangcai_design?useUnicode=true&characterEncoding=UTF-8|root]成功,[初始化]
|
||||
2024-06-09 12:00:41,060 [main] INFO - 创建数据库连接[000007][jdbc:mysql://127.0.0.1:3306/yangcai_design?useUnicode=true&characterEncoding=UTF-8|root]成功,[初始化]
|
||||
2024-06-09 12:00:41,065 [main] INFO - 创建数据库连接[000008][jdbc:mysql://127.0.0.1:3306/yangcai_design?useUnicode=true&characterEncoding=UTF-8|root]成功,[初始化]
|
||||
2024-06-09 12:00:41,071 [main] INFO - 创建数据库连接[000009][jdbc:mysql://127.0.0.1:3306/yangcai_design?useUnicode=true&characterEncoding=UTF-8|root]成功,[初始化]
|
||||
2024-06-09 12:00:41,075 [main] INFO - 创建数据库连接[000010][jdbc:mysql://127.0.0.1:3306/yangcai_design?useUnicode=true&characterEncoding=UTF-8|root]成功,[初始化]
|
||||
2024-06-09 12:00:41,079 [main] INFO - 创建数据库连接[000011][jdbc:mysql://127.0.0.1:3306/yangcai_design?useUnicode=true&characterEncoding=UTF-8|root]成功,[初始化]
|
||||
2024-06-09 12:00:41,082 [main] INFO - 创建数据库连接[000012][jdbc:mysql://127.0.0.1:3306/yangcai_design?useUnicode=true&characterEncoding=UTF-8|root]成功,[初始化]
|
||||
2024-06-09 12:00:41,085 [main] INFO - 创建数据库连接[000013][jdbc:mysql://127.0.0.1:3306/yangcai_design?useUnicode=true&characterEncoding=UTF-8|root]成功,[初始化]
|
||||
2024-06-09 12:00:41,089 [main] INFO - 创建数据库连接[000014][jdbc:mysql://127.0.0.1:3306/yangcai_design?useUnicode=true&characterEncoding=UTF-8|root]成功,[初始化]
|
||||
2024-06-09 12:00:41,093 [main] INFO - 创建数据库连接[000015][jdbc:mysql://127.0.0.1:3306/yangcai_design?useUnicode=true&characterEncoding=UTF-8|root]成功,[初始化]
|
||||
2024-06-09 12:00:41,096 [main] INFO - 创建数据库连接[000016][jdbc:mysql://127.0.0.1:3306/yangcai_design?useUnicode=true&characterEncoding=UTF-8|root]成功,[初始化]
|
||||
2024-06-09 12:00:41,099 [main] INFO - 创建数据库连接[000017][jdbc:mysql://127.0.0.1:3306/yangcai_design?useUnicode=true&characterEncoding=UTF-8|root]成功,[初始化]
|
||||
2024-06-09 12:00:41,102 [main] INFO - 创建数据库连接[000018][jdbc:mysql://127.0.0.1:3306/yangcai_design?useUnicode=true&characterEncoding=UTF-8|root]成功,[初始化]
|
||||
2024-06-09 12:00:41,105 [main] INFO - 创建数据库连接[000019][jdbc:mysql://127.0.0.1:3306/yangcai_design?useUnicode=true&characterEncoding=UTF-8|root]成功,[初始化]
|
||||
2024-06-09 12:00:41,109 [main] INFO - 创建数据库连接[000020][jdbc:mysql://127.0.0.1:3306/yangcai_design?useUnicode=true&characterEncoding=UTF-8|root]成功,[初始化]
|
||||
2024-06-09 12:00:41,113 [main] INFO - 创建数据库连接[000021][jdbc:mysql://127.0.0.1:3306/yangcai_design?useUnicode=true&characterEncoding=UTF-8|root]成功,[初始化]
|
||||
@@ -0,0 +1,128 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE ZHIQIM-CONTEXT PUBLIC "-//ZHIQIM //DTD Zhiqim-Context Configuration 1.5.0//EN" "http://zhiqim.org/xmldtds/zhiqim_context_1_5_0.dtd">
|
||||
<zhiqim-context>
|
||||
|
||||
<!-- 属性配置 -->
|
||||
<attribute name="系统名称" key="name" value="管理平台"/>
|
||||
<attribute name="系统版本" key="version" value="V1.0.0"/>
|
||||
<attribute name="系统引导" key="bootstrap" value="org.zhiqim.manager.ZmrBootstrap"/>
|
||||
<attribute name="管理台菜单" key="zmr_menu_sql" value="/conf/zmr.menu.sql"/>
|
||||
<attribute name="管理台路径" key="zhiqim_manager" value="manager"/>
|
||||
|
||||
<!-- 拦截器 -->
|
||||
<interceptor name="检查登录" key="chkZmrLogin" class="org.zhiqim.manager.ZmrInterceptor"/>
|
||||
|
||||
<!-- 基本内容 -->
|
||||
<action name="首页" path="/index.htm" view="/ztmpl/zhiqim_manager/index.htm" class="org.zhiqim.manager.action.IndexAction"/>
|
||||
<action name="管理页" path="/${zhiqim_manager}.htm" view="/ztmpl/zhiqim_manager/index.htm" class="org.zhiqim.manager.action.IndexAction"/>
|
||||
<action name="退出" path="/${zhiqim_manager}/logout.htm" redirect="/index.htm" class="org.zhiqim.manager.action.LogoutAction"/>
|
||||
<action name="头像" path="/${zhiqim_manager}/avatar/*/*.png" class="org.zhiqim.manager.action.AvatarAction" method="access"/>
|
||||
|
||||
<!-- 主页 -->
|
||||
<action name="主页" interceptor="chkZmrLogin" path="/${zhiqim_manager}/main.htm" view="/ztmpl/zhiqim_manager/template.htm" include="/zview/zhiqim_manager/main.zml" class="org.zhiqim.manager.action.MainAction" />
|
||||
<action name="主页框架" interceptor="chkZmrLogin" path="/${zhiqim_manager}/welcome.htm" view="/ztmpl/zhiqim_manager/template.htm" include="/zview/zhiqim_manager/main.zml" class="org.zhiqim.manager.action.MainAction" />
|
||||
<action name="用户中心" interceptor="chkZmrLogin" path="/${zhiqim_manager}/profile.htm" view="/ztmpl/zhiqim_manager/template.htm" include="/zview/zhiqim_manager/profile.zml" class="org.zhiqim.manager.action.ProfileAction" />
|
||||
|
||||
<!-- 系统管理 -->
|
||||
<action name="系统菜单列表" interceptor="chkZmrLogin" path="/${zhiqim_manager}/menu.htm" view="/ztmpl/zhiqim_manager/template.htm" include="/zview/zhiqim_manager/menu.zml" class="org.zhiqim.manager.action.MenuAction" method="list"/>
|
||||
<action name="增加菜单页面" interceptor="chkZmrLogin" path="/${zhiqim_manager}/menuAdd.htm" view="/ztmpl/zhiqim_manager/template.htm" include="/zview/zhiqim_manager/menuAdd.zml" class="org.zhiqim.manager.action.MenuAction" method="add"/>
|
||||
<action name="增加菜单处理" interceptor="chkZmrLogin" path="/${zhiqim_manager}/menuInsert.htm" redirect="/${zhiqim_manager}/menu.htm" class="org.zhiqim.manager.action.MenuAction" method="insert" success="增加成功"/>
|
||||
<action name="修改菜单页面" interceptor="chkZmrLogin" path="/${zhiqim_manager}/menuModify.htm" view="/ztmpl/zhiqim_manager/template.htm" include="/zview/zhiqim_manager/menuModify.zml" class="org.zhiqim.manager.action.MenuAction" method="modify"/>
|
||||
<action name="修改菜单处理" interceptor="chkZmrLogin" path="/${zhiqim_manager}/menuUpdate.htm" redirect="/${zhiqim_manager}/menu.htm" class="org.zhiqim.manager.action.MenuAction" method="update" success="修改成功"/>
|
||||
<action name="删除菜单处理" interceptor="chkZmrLogin" path="/${zhiqim_manager}/menuDelete.htm" redirect="/${zhiqim_manager}/menu.htm" class="org.zhiqim.manager.action.MenuAction" method="delete" success="删除成功"/>
|
||||
<action name="系统配置设置" interceptor="chkZmrLogin" path="/${zhiqim_manager}/config.htm" view="/ztmpl/zhiqim_manager/template.htm" include="/zview/zhiqim_manager/config.zml" redirect="/${zhiqim_manager}/config.htm" class="org.zhiqim.manager.action.ConfigAction"/>
|
||||
<action name="系统参数设置" interceptor="chkZmrLogin" path="/${zhiqim_manager}/param.htm" view="/ztmpl/zhiqim_manager/template.htm" include="/zview/zhiqim_manager/param.zml" redirect="/${zhiqim_manager}/param.htm" class="org.zhiqim.manager.action.ParamAction"/>
|
||||
<action name="更换首页主题风格" interceptor="chkZmrLogin" path="/${zhiqim_manager}/themeIndex.htm" view="/ztmpl/zhiqim_manager/template.htm" include="/zview/zhiqim_manager/themeIndex.zml" redirect="/${zhiqim_manager}/themeIndex.htm" class="org.zhiqim.manager.action.ThemeIndexAction"/>
|
||||
<action name="更换主页主题风格" interceptor="chkZmrLogin" path="/${zhiqim_manager}/themeMain.htm" view="/ztmpl/zhiqim_manager/template.htm" include="/zview/zhiqim_manager/themeMain.zml" redirect="/${zhiqim_manager}/themeMain.htm" class="org.zhiqim.manager.action.ThemeMainAction"/>
|
||||
<action name="系统缓存管理" interceptor="chkZmrLogin" path="/${zhiqim_manager}/cache.htm" view="/ztmpl/zhiqim_manager/template.htm" include="/zview/zhiqim_manager/cache.zml" redirect="/${zhiqim_manager}/cache.htm" class="org.zhiqim.manager.action.CacheAction"/>
|
||||
<action name="密钥对设置" interceptor="chkZmrLogin" path="/${zhiqim_manager}/keys.htm" view="/ztmpl/zhiqim_manager/template.htm" include="/zview/zhiqim_manager/keys.zml" redirect="/${zhiqim_manager}/keys.htm" class="org.zhiqim.manager.action.KeysAction" success="生成成功"/>
|
||||
<action name="进程状态查询" interceptor="chkZmrLogin" path="/${zhiqim_manager}/process.htm" view="/ztmpl/zhiqim_manager/template.htm" include="/zview/zhiqim_manager/process.zml" />
|
||||
<action name="进程线程堆栈信息" interceptor="chkZmrLogin" path="/${zhiqim_manager}/processThreadStack.htm" view="/ztmpl/zhiqim_manager/inner.htm" include="/zview/zhiqim_manager/processThreadStack.zml" class="org.zhiqim.manager.action.ProcessThreadStackAction"/>
|
||||
|
||||
<!-- 操作员参数管理 -->
|
||||
<action name="操作员参数列表" interceptor="chkZmrLogin" path="/${zhiqim_manager}/paramOperator.htm" view="/ztmpl/zhiqim_manager/template.htm" include="/zview/zhiqim_manager/paramOperator.zml" class="org.zhiqim.manager.action.ParamOperatorAction" method="list"/>
|
||||
<action name="增加操作员参数页面" interceptor="chkZmrLogin" path="/${zhiqim_manager}/paramOperatorAdd.htm" view="/ztmpl/zhiqim_manager/template.htm" include="/zview/zhiqim_manager/paramOperatorAdd.zml" class="org.zhiqim.manager.action.ParamOperatorAction" method="add"/>
|
||||
<action name="增加操作员参数处理" interceptor="chkZmrLogin" path="/${zhiqim_manager}/paramOperatorInsert.htm" redirect="/${zhiqim_manager}/paramOperator.htm" class="org.zhiqim.manager.action.ParamOperatorAction" method="insert" success="增加成功"/>
|
||||
<action name="删除操作员参数处理" interceptor="chkZmrLogin" path="/${zhiqim_manager}/paramOperatorDelete.htm" redirect="/${zhiqim_manager}/paramOperator.htm" class="org.zhiqim.manager.action.ParamOperatorAction" method="delete" success="删除成功"/>
|
||||
|
||||
<!-- 头像管理 -->
|
||||
<action name="头像列表" interceptor="chkZmrLogin" path="/${zhiqim_manager}/avatar.htm" view="/ztmpl/zhiqim_manager/template.htm" include="/zview/zhiqim_manager/avatar.zml" class="org.zhiqim.manager.action.AvatarAction" method="list"/>
|
||||
<action name="修改头像页面" interceptor="chkZmrLogin" path="/${zhiqim_manager}/avatarModify.htm" view="/ztmpl/zhiqim_manager/template.htm" include="/zview/zhiqim_manager/avatarModify.zml" class="org.zhiqim.manager.action.AvatarAction" method="modify"/>
|
||||
<action name="增加头像页面" interceptor="chkZmrLogin" path="/${zhiqim_manager}/avatarAdd.htm" view="/ztmpl/zhiqim_manager/template.htm" include="/zview/zhiqim_manager/avatarAdd.zml" />
|
||||
|
||||
<!-- 组织管理 -->
|
||||
|
||||
<action name="组织列表" interceptor="chkZmrLogin" path="/${zhiqim_manager}/org.htm" view="/ztmpl/zhiqim_manager/template.htm" include="/zview/zhiqim_manager/org.zml" class="org.zhiqim.manager.action.OrgAction" method="list"/>
|
||||
<action name="增加组织页面" interceptor="chkZmrLogin" path="/${zhiqim_manager}/orgAdd.htm" view="/ztmpl/zhiqim_manager/template.htm" include="/zview/zhiqim_manager/orgAdd.zml" class="org.zhiqim.manager.action.OrgAction" method="add"/>
|
||||
<action name="增加组织处理" interceptor="chkZmrLogin" path="/${zhiqim_manager}/orgInsert.htm" redirect="/${zhiqim_manager}/org.htm" class="org.zhiqim.manager.action.OrgAction" method="insert" success="增加成功"/>
|
||||
<action name="修改组织页面" interceptor="chkZmrLogin" path="/${zhiqim_manager}/orgModify.htm" view="/ztmpl/zhiqim_manager/template.htm" include="/zview/zhiqim_manager/orgModify.zml" class="org.zhiqim.manager.action.OrgAction" method="modify"/>
|
||||
<action name="修改组织处理" interceptor="chkZmrLogin" path="/${zhiqim_manager}/orgUpdate.htm" redirect="/${zhiqim_manager}/org.htm" class="org.zhiqim.manager.action.OrgAction" method="update" success="修改成功"/>
|
||||
<action name="删除组织处理" interceptor="chkZmrLogin" path="/${zhiqim_manager}/orgDelete.htm" redirect="/${zhiqim_manager}/org.htm" class="org.zhiqim.manager.action.OrgAction" method="delete" success="删除成功"/>
|
||||
<action name="组织关联权限" interceptor="chkZmrLogin" path="/${zhiqim_manager}/orgRule.htm" view="/ztmpl/zhiqim_manager/template.htm" include="/zview/zhiqim_manager/orgRule.zml" redirect="/${zhiqim_manager}/orgRule.htm" class="org.zhiqim.manager.action.OrgRuleAction"/>
|
||||
<action name="组织选择对话框" interceptor="chkZmrLogin" path="/${zhiqim_manager}/orgSelector.htm" view="/ztmpl/zhiqim_manager/inner.htm" include="/zview/zhiqim_manager/orgSelector.zml" class="org.zhiqim.manager.action.OrgSelectorAction"/>
|
||||
|
||||
<!-- 部门管理 -->
|
||||
<action name="部门列表" interceptor="chkZmrLogin" path="/${zhiqim_manager}/dept.htm" view="/ztmpl/zhiqim_manager/template.htm" include="/zview/zhiqim_manager/dept.zml" class="org.zhiqim.manager.action.DeptAction" method="list"/>
|
||||
<action name="增加部门页面" interceptor="chkZmrLogin" path="/${zhiqim_manager}/deptAdd.htm" view="/ztmpl/zhiqim_manager/template.htm" include="/zview/zhiqim_manager/deptAdd.zml" class="org.zhiqim.manager.action.DeptAction" method="add"/>
|
||||
<action name="增加部门处理" interceptor="chkZmrLogin" path="/${zhiqim_manager}/deptInsert.htm" redirect="/${zhiqim_manager}/dept.htm" class="org.zhiqim.manager.action.DeptAction" method="insert" success="增加成功"/>
|
||||
<action name="修改部门页面" interceptor="chkZmrLogin" path="/${zhiqim_manager}/deptModify.htm" view="/ztmpl/zhiqim_manager/template.htm" include="/zview/zhiqim_manager/deptModify.zml" class="org.zhiqim.manager.action.DeptAction" method="modify"/>
|
||||
<action name="修改部门处理" interceptor="chkZmrLogin" path="/${zhiqim_manager}/deptUpdate.htm" redirect="/${zhiqim_manager}/dept.htm" class="org.zhiqim.manager.action.DeptAction" method="update" success="修改成功"/>
|
||||
<action name="删除部门处理" interceptor="chkZmrLogin" path="/${zhiqim_manager}/deptDelete.htm" redirect="/${zhiqim_manager}/dept.htm" class="org.zhiqim.manager.action.DeptAction" method="delete" success="删除成功"/>
|
||||
|
||||
|
||||
<action name="部门操作员" interceptor="chkZmrLogin" path="/${zhiqim_manager}/deptOperator.htm" view="/ztmpl/zhiqim_manager/template.htm" include="/zview/zhiqim_manager/deptOperator.zml" class="org.zhiqim.manager.action.DeptOperatorAction"/>
|
||||
<action name="部门增加操作员" interceptor="chkZmrLogin" path="/${zhiqim_manager}/deptOperatorSelector.htm" view="/ztmpl/zhiqim_manager/inner.htm" include="/zview/zhiqim_manager/deptOperatorSelector.zml" class="org.zhiqim.manager.action.DeptOperatorSelectorAction"/>
|
||||
<action name="部门关联权限" interceptor="chkZmrLogin" path="/${zhiqim_manager}/deptRule.htm" view="/ztmpl/zhiqim_manager/template.htm" include="/zview/zhiqim_manager/deptRule.zml" redirect="/${zhiqim_manager}/deptRule.htm" class="org.zhiqim.manager.action.DeptRuleAction" success="保存成功"/>
|
||||
|
||||
<!-- 角色管理 -->
|
||||
<action name="角色列表" interceptor="chkZmrLogin" path="/${zhiqim_manager}/role.htm" view="/ztmpl/zhiqim_manager/template.htm" include="/zview/zhiqim_manager/role.zml" class="org.zhiqim.manager.action.RoleAction" method="list"/>
|
||||
<action name="增加角色页面" interceptor="chkZmrLogin" path="/${zhiqim_manager}/roleAdd.htm" view="/ztmpl/zhiqim_manager/template.htm" include="/zview/zhiqim_manager/roleAdd.zml" class="org.zhiqim.manager.action.RoleAction" method="add"/>
|
||||
<action name="增加角色处理" interceptor="chkZmrLogin" path="/${zhiqim_manager}/roleInsert.htm" redirect="/${zhiqim_manager}/role.htm" class="org.zhiqim.manager.action.RoleAction" method="insert" success="增加成功"/>
|
||||
<action name="修改角色页面" interceptor="chkZmrLogin" path="/${zhiqim_manager}/roleModify.htm" view="/ztmpl/zhiqim_manager/template.htm" include="/zview/zhiqim_manager/roleModify.zml" class="org.zhiqim.manager.action.RoleAction" method="modify"/>
|
||||
<action name="修改角色处理" interceptor="chkZmrLogin" path="/${zhiqim_manager}/roleUpdate.htm" redirect="/${zhiqim_manager}/role.htm" class="org.zhiqim.manager.action.RoleAction" method="update" success="修改成功"/>
|
||||
<action name="删除角色处理" interceptor="chkZmrLogin" path="/${zhiqim_manager}/roleDelete.htm" redirect="/${zhiqim_manager}/role.htm" class="org.zhiqim.manager.action.RoleAction" method="delete" success="删除成功"/>
|
||||
|
||||
<action name="角色操作员" interceptor="chkZmrLogin" path="/${zhiqim_manager}/roleOperator.htm" view="/ztmpl/zhiqim_manager/template.htm" include="/zview/zhiqim_manager/roleOperator.zml" class="org.zhiqim.manager.action.RoleOperatorAction"/>
|
||||
<action name="角色增加操作员" interceptor="chkZmrLogin" path="/${zhiqim_manager}/roleOperatorSelector.htm" view="/ztmpl/zhiqim_manager/inner.htm" include="/zview/zhiqim_manager/roleOperatorSelector.zml" class="org.zhiqim.manager.action.RoleOperatorSelectorAction"/>
|
||||
<action name="角色关联权限" interceptor="chkZmrLogin" path="/${zhiqim_manager}/roleRule.htm" view="/ztmpl/zhiqim_manager/template.htm" redirect="/${zhiqim_manager}/role.htm" include="/zview/zhiqim_manager/roleRule.zml" class="org.zhiqim.manager.action.RoleRuleAction" success="保存成功"/>
|
||||
|
||||
<!-- 操作员管理 -->
|
||||
<action name="操作员列表" interceptor="chkZmrLogin" path="/${zhiqim_manager}/operator.htm" view="/ztmpl/zhiqim_manager/template.htm" include="/zview/zhiqim_manager/operator.zml" class="org.zhiqim.manager.action.OperatorAction" method="list"/>
|
||||
<action name="增加操作员页面" interceptor="chkZmrLogin" path="/${zhiqim_manager}/operatorAdd.htm" view="/ztmpl/zhiqim_manager/template.htm" include="/zview/zhiqim_manager/operatorAdd.zml" class="org.zhiqim.manager.action.OperatorAction" method="add"/>
|
||||
<action name="增加操作员反馈页面" interceptor="chkZmrLogin" path="/${zhiqim_manager}/operatorAddSuccess.htm" view="/ztmpl/zhiqim_manager/inner.htm" include="/zview/zhiqim_manager/operatorAddSuccess.zml" class=""/>
|
||||
|
||||
<action name="增加操作员处理" interceptor="chkZmrLogin" path="/${zhiqim_manager}/operatorInsert.htm" redirect="/${zhiqim_manager}/operator.htm" class="org.zhiqim.manager.action.OperatorAction" method="insert" success="增加成功"/>
|
||||
<action name="修改操作员页面" interceptor="chkZmrLogin" path="/${zhiqim_manager}/operatorModify.htm" view="/ztmpl/zhiqim_manager/template.htm" include="/zview/zhiqim_manager/operatorModify.zml" class="org.zhiqim.manager.action.OperatorAction" method="modify"/>
|
||||
<action name="修改操作员处理" interceptor="chkZmrLogin" path="/${zhiqim_manager}/operatorUpdate.htm" redirect="/${zhiqim_manager}/operator.htm" class="org.zhiqim.manager.action.OperatorAction" method="update" success="修改成功"/>
|
||||
<action name="删除操作员处理" interceptor="chkZmrLogin" path="/${zhiqim_manager}/operatorDelete.htm" redirect="/${zhiqim_manager}/operator.htm" class="org.zhiqim.manager.action.OperatorAction" method="delete" success="删除成功"/>
|
||||
<action name="操作员上传头像" interceptor="chkZmrLogin" path="/${zhiqim_manager}/operatorUploadAvatar.htm" view="/ztmpl/zhiqim_manager/template.htm" include="/zview/zhiqim_manager/operatorUploadAvatar.zml" />
|
||||
<action name="操作员选择对话框" interceptor="chkZmrLogin" path="/${zhiqim_manager}/operatorSelector.htm" view="/ztmpl/zhiqim_manager/inner.htm" include="/zview/zhiqim_manager/operatorSelector.zml" class="org.zhiqim.manager.action.OperatorSelectorAction"/>
|
||||
<action name="操作员多选对话框" interceptor="chkZmrLogin" path="/${zhiqim_manager}/operatorsSelector.htm" view="/ztmpl/zhiqim_manager/inner.htm" include="/zview/zhiqim_manager/operatorsSelector.zml" class="org.zhiqim.manager.action.OperatorSelectorAction"/>
|
||||
|
||||
<action name="操作员权限修改" interceptor="chkZmrLogin" path="/${zhiqim_manager}/operatorRule.htm" view="/ztmpl/zhiqim_manager/template.htm" include="/zview/zhiqim_manager/operatorRule.zml" redirect="/${zhiqim_manager}/operatorRule.htm" class="org.zhiqim.manager.action.OperatorRuleAction"/>
|
||||
<action name="操作员权限显示" interceptor="chkZmrLogin" path="/${zhiqim_manager}/operatorRuleView.htm" view="/ztmpl/zhiqim_manager/template.htm" include="/zview/zhiqim_manager/operatorRuleView.zml" class="org.zhiqim.manager.action.OperatorRuleViewAction"/>
|
||||
<action name="操作员部门选择框" interceptor="chkZmrLogin" path="/${zhiqim_manager}/operatorDeptSelector.htm" view="/ztmpl/zhiqim_manager/inner.htm" include="/zview/zhiqim_manager/operatorDeptSelector.zml" class="org.zhiqim.manager.action.OperatorDeptSelectorAction"/>
|
||||
<action name="操作员角色选择框" interceptor="chkZmrLogin" path="/${zhiqim_manager}/operatorRoleSelector.htm" view="/ztmpl/zhiqim_manager/inner.htm" include="/zview/zhiqim_manager/operatorRoleSelector.zml" class="org.zhiqim.manager.action.OperatorRoleSelectorAction"/>
|
||||
|
||||
<!-- 个人中心 -->
|
||||
<action name="更换头像" interceptor="chkZmrLogin" path="/${zhiqim_manager}/modifyAvatar.htm" view="/ztmpl/zhiqim_manager/inner.htm" include="/zview/zhiqim_manager/modifyAvatar.zml" />
|
||||
<action name="修改密码" interceptor="chkZmrLogin" path="/${zhiqim_manager}/modifyPassword.htm" view="/ztmpl/zhiqim_manager/inner.htm" include="/zview/zhiqim_manager/modifyPassword.zml" />
|
||||
<action name="修改手机号" interceptor="chkZmrLogin" path="/${zhiqim_manager}/modifyMobile.htm" view="/ztmpl/zhiqim_manager/inner.htm" include="/zview/zhiqim_manager/modifyMobile.zml" />
|
||||
<action name="修改邮箱" interceptor="chkZmrLogin" path="/${zhiqim_manager}/modifyEmail.htm" view="/ztmpl/zhiqim_manager/inner.htm" include="/zview/zhiqim_manager/modifyEmail.zml" />
|
||||
<action name="修改旺旺" interceptor="chkZmrLogin" path="/${zhiqim_manager}/modifyWangwang.htm" view="/ztmpl/zhiqim_manager/inner.htm" include="/zview/zhiqim_manager/modifyWangwang.zml" />
|
||||
<action name="修改企业微信账号" interceptor="chkZmrLogin" path="/${zhiqim_manager}/modifyWkwechatAccount.htm" view="/ztmpl/zhiqim_manager/inner.htm" include="/zview/zhiqim_manager/modifyWkwechatAccount.zml" />
|
||||
<action name="修改个人微信账号" interceptor="chkZmrLogin" path="/${zhiqim_manager}/modifyWxcode.htm" view="/ztmpl/zhiqim_manager/inner.htm" include="/zview/zhiqim_manager/modifyWxcode.zml" />
|
||||
<action name="修改操作员参数" interceptor="chkZmrLogin" path="/${zhiqim_manager}/modifyOperatorParam.htm" view="/ztmpl/zhiqim_manager/inner.htm" include="/zview/zhiqim_manager/modifyOperatorParam.zml" />
|
||||
<action name="验证密码" interceptor="chkZmrLogin" path="/${zhiqim_manager}/validatePassword.htm" view="/ztmpl/zhiqim_manager/inner.htm" include="/zview/zhiqim_manager/validatePassword.zml" />
|
||||
|
||||
<!-- 操作日志与在线列表 -->
|
||||
<action name="操作日志查询" interceptor="chkZmrLogin" path="/${zhiqim_manager}/operateLog.htm" view="/ztmpl/zhiqim_manager/template.htm" include="/zview/zhiqim_manager/operateLog.zml" class="org.zhiqim.manager.action.OperateLogAction"/>
|
||||
<action name="操作员在线列表" interceptor="chkZmrLogin" path="/${zhiqim_manager}/operatorOnline.htm" view="/ztmpl/zhiqim_manager/template.htm" include="/zview/zhiqim_manager/operatorOnline.zml" class="org.zhiqim.manager.action.OperatorOnlineAction"/>
|
||||
|
||||
<!-- 特定目录 -->
|
||||
<action name="后台页面.htm" interceptor="chkZmrLogin" path="/zmr/*.htm" class="org.zhiqim.manager.action.ZmrAction"/>
|
||||
<action name="后台页面.zml" interceptor="chkZmrLogin" path="/zmr/*.zml" class="org.zhiqim.manager.action.ZmrAction"/>
|
||||
<action name="内部页面.htm" interceptor="chkZmrLogin" path="/zmi/*.htm" class="org.zhiqim.manager.action.ZmiAction"/>
|
||||
<action name="内部页面.zml" interceptor="chkZmrLogin" path="/zmi/*.zml" class="org.zhiqim.manager.action.ZmiAction"/>
|
||||
|
||||
</zhiqim-context>
|
||||
@@ -0,0 +1,149 @@
|
||||
<#-------------------------------------------------------------------------->
|
||||
<#-----知启蒙全局变量定义(统一使用zhiqim前缀)--------------------------------->
|
||||
<#-------------------------------------------------------------------------->
|
||||
|
||||
<#var zhiqim.css = context.getRootPath("/service/res/zhiqim_v1.5.0.r2019010101.css")/>
|
||||
<#var zhiqim.js = new ZmrCdnRuntime(context, "/service/res/zhiqim_v1.5.0.r2019010101.min.js")/>
|
||||
<#var zhiqim.mobile.css= context.getRootPath("/service/res/zhiqim.mobile_v1.5.0.r2019010101.css")/>
|
||||
<#var zhiqim.mobile.js= new ZmrCdnRuntime(context, "/service/res/zhiqim.mobile_v1.5.0.r2019010101.min.js")/>
|
||||
<#var zhiqim_iframenav.js = new ZmrCdnRuntime(context, "/ztmpl/zhiqim_manager/zhiqim_iframenav_v1.5.0.r2019010101.js")/>
|
||||
<#var jsencrypt.js = new ZmrCdnRuntime(context, "/ztmpl/zhiqim_manager/jsencrypt.js")/>
|
||||
|
||||
<#-------------------------------------------------------------------------->
|
||||
<#-----知启蒙管理台变量定义(统一使用zmr前缀)---------------------------------->
|
||||
<#-------------------------------------------------------------------------->
|
||||
|
||||
<#--分页显示默认条数-->
|
||||
<#var zmr_page_size = 20/>
|
||||
|
||||
<#--脚注标注-->
|
||||
<#var zmr_copyname = "2021 秒绘科技"/>
|
||||
<#var zmr_copyright = "Copyright © "+zmr_copyname+" All Rights Reserved"/>
|
||||
|
||||
<#-------------------------------------------------------------------------->
|
||||
<#-------知启蒙管理台函数定义(统一使用zhiqim_manager前缀)--------------------->
|
||||
<#-------------------------------------------------------------------------->
|
||||
|
||||
<#--头部定义返回历史连接-->
|
||||
<#function zhiqim_manager_history(url)>
|
||||
<script>
|
||||
function returnHistory()
|
||||
{
|
||||
window.location.href = "${url}";
|
||||
}
|
||||
</script>
|
||||
</#function>
|
||||
|
||||
<#--主体内容-->
|
||||
<#function zhiqim_manager_content()>
|
||||
<div class="content">
|
||||
</#function>
|
||||
|
||||
<#--主体内容结束-->
|
||||
<#function zhiqim_manager_content_end()>
|
||||
</div>
|
||||
</#function>
|
||||
|
||||
<#--显示标题-->
|
||||
<#function zhiqim_manager_title(name)>
|
||||
<table class="z-table z-bordered zi-bd-b-none z-pd10">
|
||||
<tr class="z-h40" style="background-color:${zmr_title_bgcolor}">
|
||||
<td class="z-bold z-px15">${name}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</#function>
|
||||
|
||||
<#--显示无记录信息-->
|
||||
<#function zhiqim_manager_no_record(colspan, desc)>
|
||||
<tr class="zi-h60 zi-text-center z-bg-white">
|
||||
<td colspan="${colspan}">${desc}</td>
|
||||
</tr>
|
||||
</#function>
|
||||
|
||||
<#--显示无记录信息-->
|
||||
<#function zhiqim_manager_tr_no_record(result, colspan, desc)>
|
||||
<#if result.isEmpty()>
|
||||
<tr class="zi-h60 z-bg-white z-text-center">
|
||||
<td colspan="${colspan}">${desc}</td>
|
||||
</tr>
|
||||
</#if>
|
||||
</#function>
|
||||
|
||||
<#--显示tr标题-->
|
||||
<#function zhiqim_manager_tr_title(colspan, name)>
|
||||
<tr class="zi-h40">
|
||||
<td class="z-bold z-px15 zi-pd-l5 z-text-left" colspan="${colspan}">${name}</td>
|
||||
</tr>
|
||||
</#function>
|
||||
|
||||
<#--判断列表背景分隔颜色-->
|
||||
<#function zhiqim_manager_tr_bg(index)>
|
||||
<#if index % 2 == 0>${zmr_tr_odd_bgcolor}<#else>${zmr_tr_even_bgcolor}</#if>
|
||||
</#function>
|
||||
|
||||
<#--列表行移入移出颜色变化-->
|
||||
<#function zhiqim_manager_tr_onmouse()>
|
||||
onmouseover="Z(this).css('background-color', '${zmr_tr_over_bgcolor}')" onmouseout="Z(this).css('background-color', '${zmr_tr_even_bgcolor}')"
|
||||
</#function>
|
||||
|
||||
<#--列表行点击选中单选按钮-->
|
||||
<#function zhiqim_manager_tr_click_radio()>
|
||||
onclick="Z(this).find('td:first-child > zcover > i.z-radio').click();"
|
||||
</#function>
|
||||
|
||||
<#--列表行点击选中多选按钮-->
|
||||
<#function zhiqim_manager_tr_click_checkbox()>
|
||||
onclick="Z(this).find('td:first-child > zcover > i.z-checkbox').click();"
|
||||
</#function>
|
||||
|
||||
<#--显示记录脚注-->
|
||||
<#function zhiqim_manager_list(size)>
|
||||
<table class="z-table z-bordered zi-bd-t-none z-bg-white">
|
||||
<tr class="z-h40">
|
||||
<td class="zi-pd-r10 z-text-right">共 <span class="z-color-red">${size}</span> 条数据</td>
|
||||
</tr>
|
||||
</table>
|
||||
</#function>
|
||||
|
||||
<#--显示返回上一页-->
|
||||
<#function zhiqim_manager_return()>
|
||||
<table class="z-table z-bordered zi-bd-t-none z-pd10 z-bg-white">
|
||||
<tr class="z-h60">
|
||||
<td><a href="javascript:returnHistory();">返回上一页</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</#function>
|
||||
|
||||
<#--显示返回上一页和提交-->
|
||||
<#function zhiqim_manager_submit()>
|
||||
<table class="z-table zi-bd zi-bd-t-none z-pd10 z-bg-white">
|
||||
<tr class="z-h80">
|
||||
<td width="40%"><a href="javascript:returnHistory();">返回上一页</a></td>
|
||||
<td width="*"><button type="submit" class="z-button z-large z-w150 ${zmr_color_class}">提交</button></td>
|
||||
</tr>
|
||||
</table>
|
||||
</#function>
|
||||
|
||||
<#--显示返回上一页和提交带参数-->
|
||||
<#function zhiqim_manager_submit_onclick(onclick)>
|
||||
<table class="z-table zi-bd zi-bd-t-none z-pd10 z-bg-white">
|
||||
<tr class="z-h80">
|
||||
<td width="40%"><a href="javascript:returnHistory();">返回上一页</a></td>
|
||||
<td width="*"><button type="button" class="z-button z-large z-w150 ${zmr_color_class}" onclick="${onclick}">提交</button></td>
|
||||
</tr>
|
||||
</table>
|
||||
</#function>
|
||||
|
||||
<#-------------------------------------------------------------------------->
|
||||
<#-------知启蒙管理台预定义函数定义------------------------------------------->
|
||||
<#-------------------------------------------------------------------------->
|
||||
|
||||
<#--topnav左边区域自定义块-->
|
||||
<#function zhiqim_manager_topnav_left_defined()>
|
||||
|
||||
</#function>
|
||||
|
||||
<#--topnav右边区域自定义块-->
|
||||
<#function zhiqim_manager_topnav_right_defined()>
|
||||
|
||||
</#function>
|
||||
@@ -0,0 +1,58 @@
|
||||
-- ---------------------------------------------------
|
||||
-- 知启蒙管理台功能菜单
|
||||
-- ---------------------------------------------------
|
||||
|
||||
|
||||
truncate table ZMR_MENU;
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('ROOT', 'MENU', '系统功能根菜单', '', 0, 0, 0, '', '', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU', 'MENU_010', '系统配置', '系统', 1, 0, 1, 'z-config', '', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010', 'MENU_010_010', '系统基础设置', '', 2, 0, 1, 'z-setting', '/${zhiqim_manager}/menu.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_010', 'MENU_010_010_010', '增加系统菜单', '', 3, 0, 2, '', '/${zhiqim_manager}/menuAdd.htm,/${zhiqim_manager}/menuInsert.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_010', 'MENU_010_010_020', '修改系统菜单', '', 3, 0, 2, '', '/${zhiqim_manager}/menuModify.htm,/${zhiqim_manager}/menuUpdate.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_010', 'MENU_010_010_030', '删除系统菜单', '', 3, 0, 2, '', '/${zhiqim_manager}/menuDelete.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_010', 'MENU_010_010_100', '系统头像管理', '', 3, 0, 2, '', '/${zhiqim_manager}/avatar.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_010', 'MENU_010_010_110', '增加系统头像', '', 3, 0, 2, '', '/${zhiqim_manager}/avatarAdd.htm,/${zhiqim_manager}/avatarInsert.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_010', 'MENU_010_010_120', '修改系统头像', '', 3, 0, 2, '', '/${zhiqim_manager}/avatarModify.htm,/${zhiqim_manager}/avatarUpdate.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_010', 'MENU_010_010_130', '删除系统头像', '', 3, 0, 2, '', '/${zhiqim_manager}/avatarDelete.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_010', 'MENU_010_010_200', '系统配置管理', '', 3, 0, 2, '', '/${zhiqim_manager}/config.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_010', 'MENU_010_010_210', '系统缓存管理', '', 3, 0, 2, '', '/${zhiqim_manager}/cache.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_010', 'MENU_010_010_300', '系统参数设置', '', 3, 0, 2, '', '/${zhiqim_manager}/param.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_010', 'MENU_010_010_305', '操作员参数管理', '', 3, 0, 2, '', '/${zhiqim_manager}/paramOperator.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_010', 'MENU_010_010_310', '首页主题设置', '', 3, 0, 2, '', '/${zhiqim_manager}/themeIndex.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_010', 'MENU_010_010_320', '主页主题设置', '', 3, 0, 2, '', '/${zhiqim_manager}/themeMain.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_010', 'MENU_010_010_330', '公钥私钥设置', '', 3, 0, 2, '', '/${zhiqim_manager}/keys.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_010', 'MENU_010_010_340', '系统进程管理', '', 3, 0, 2, '', '/${zhiqim_manager}/process.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010', 'MENU_010_050', '组织部门管理', '', 2, 0, 1, 'z-apps', '/${zhiqim_manager}/dept.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_050', 'MENU_010_050_010', '组织管理', '', 3, 0, 2, '', '/${zhiqim_manager}/org.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_050', 'MENU_010_050_020', '增加组织', '', 3, 0, 2, '', '/${zhiqim_manager}/orgAdd.htm,/zhiqim_manager/orgInsert.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_050', 'MENU_010_050_030', '修改组织', '', 3, 0, 2, '', '/${zhiqim_manager}/orgModify.htm,/zhiqim_manager/orgUpdate.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_050', 'MENU_010_050_040', '删除组织', '', 3, 0, 2, '', '/${zhiqim_manager}/orgDelete.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_050', 'MENU_010_050_050', '组织权限', '', 3, 0, 2, '', '/${zhiqim_manager}/orgRule.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_050', 'MENU_010_050_100', '部门管理', '', 3, 0, 2, '', '/${zhiqim_manager}/dept.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_050', 'MENU_010_050_110', '增加部门', '', 3, 0, 2, '', '/${zhiqim_manager}/deptAdd.htm,/${zhiqim_manager}/deptInsert.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_050', 'MENU_010_050_120', '修改部门', '', 3, 0, 2, '', '/${zhiqim_manager}/deptModify.htm,/${zhiqim_manager}/deptUpdate.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_050', 'MENU_010_050_130', '删除部门', '', 3, 0, 2, '', '/${zhiqim_manager}/deptDelete.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_050', 'MENU_010_050_140', '部门成员', '', 3, 0, 2, '', '/${zhiqim_manager}/deptOperator.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_050', 'MENU_010_050_150', '部门权限', '', 3, 0, 2, '', '/${zhiqim_manager}/deptRule.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010', 'MENU_010_110', '操作员管理', '', 2, 0, 1, 'z-customer', '/${zhiqim_manager}/operator.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_110', 'MENU_010_110_010', '增加操作员', '', 3, 0, 2, '', '/${zhiqim_manager}/operatorAdd.htm,/${zhiqim_manager}/operatorInsert.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_110', 'MENU_010_110_020', '修改操作员', '', 3, 0, 2, '', '/${zhiqim_manager}/operatorModify.htm,/${zhiqim_manager}/operatorUpdate.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_110', 'MENU_010_110_030', '删除操作员', '', 3, 0, 2, '', '/${zhiqim_manager}/operatorDelete.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_110', 'MENU_010_110_040', '查看操作员权限', '', 3, 0, 2, '', '/${zhiqim_manager}/operatorRuleView.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_110', 'MENU_010_110_050', '设置操作员独立权限 ', '', 3, 0, 2, '', '/${zhiqim_manager}/operatorRule.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_110', 'MENU_010_110_060', '设置操作员部门', '', 3, 0, 2, '', '/${zhiqim_manager}/operatorDept.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_110', 'MENU_010_110_070', '设置操作员角色', '', 3, 0, 2, '', '/${zhiqim_manager}/operatorRole.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_110', 'MENU_010_110_080', '操作员参数管理', '', 3, 0, 2, '', '/${zhiqim_manager}/operatorParam.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_110', 'MENU_010_110_090', '角色管理', '', 3, 0, 2, '', '/${zhiqim_manager}/role.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_110', 'MENU_010_110_100', '增加角色', '', 3, 0, 2, '', '/${zhiqim_manager}/roleAdd.htm,/${zhiqim_manager}/roleInsert.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_110', 'MENU_010_110_110', '修改角色', '', 3, 0, 2, '', '/${zhiqim_manager}/roleModify.htm,/${zhiqim_manager}/roleUpdate.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_110', 'MENU_010_110_120', '删除角色', '', 3, 0, 2, '', '/${zhiqim_manager}/roleDelete.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_110', 'MENU_010_110_130', '角色成员', '', 3, 0, 2, '', '/${zhiqim_manager}/roleOperator.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_110', 'MENU_010_110_140', '角色权限', '', 3, 0, 2, '', '/${zhiqim_manager}/roleRule.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010', 'MENU_010_150', '操作日志查询', '', 2, 0, 1, 'z-text', '/${zhiqim_manager}/operateLog.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_150', 'MENU_010_150_100', '操作员在线列表', '', 3, 0, 2, '', '/${zhiqim_manager}/operatorOnline.htm', '');
|
||||
commit;
|
||||
|
||||
-- ---------------------------------------------------
|
||||
-- 知启蒙管理台功能菜单创建完成
|
||||
-- ---------------------------------------------------
|
||||
@@ -0,0 +1,138 @@
|
||||
<!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)}
|
||||
</head>
|
||||
|
||||
<body>
|
||||
${Htmls.toCallFrame()}
|
||||
<!--顶部导航 -->
|
||||
<div class="topnav">
|
||||
<div id="logo" class="logo z-pointer z-text-left ${sessionUser.getSidebarClass()}" onclick="Z.L.href('${context.getRootPath("/"+zhiqim_manager+"/main.htm")}');">${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()}
|
||||
<#if ZmrOrgDao.getOrgList(request, sessionUser.getOperatorCode()).size() gt 1>
|
||||
<div class="nav z-text-center z-pointer z-pd-l20 z-pd-r20" style="max-width:200px;" onclick="Zmr.selectOrgDialog();">${ZmrOrgDao.getOrgName(request, sessionUser.getSelectedOrgId())}</div>
|
||||
</#if>
|
||||
<div class="nav z-w100 z-text-center z-pointer" onclick="Z.L.reload();">刷新</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="${context.getRootPath("/"+zhiqim_manager+"/profile.htm")}"><span class="z-color-white z-px12">个人中心</span></a>
|
||||
</div>
|
||||
</div>
|
||||
<!--栏目列表-->
|
||||
<#var topMenuCode = sessionUser.getSelectedTopMenuCodeOrFirstMenuCode(request, designatedPath)/>
|
||||
<#var childMenuCode = sessionUser.getSelectedSecondMenuCode(request, designatedPath)/>
|
||||
<#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="Z.L.href('${context.getRootPath(childMenu.getMenuUrl())}');" <#if childMenu.getMenuCode() == childMenuCode>class="active"</#if>><i class="z-font z-mg-r10 ${childMenu.getMenuIcon()}"></i>#{childMenu.getMenuName()}</li>
|
||||
</#for>
|
||||
</ul>
|
||||
<#elseif Validates.isNotEmptyBlank(topMenu.getMenuUrl())>
|
||||
<p onclick="Z.L.href('${context.getRootPath(topMenu.getMenuUrl())}');"><i class="z-font z-px18 z-mg-r5 ${topMenu.getMenuIcon()}"></i>#{topMenu.getMenuName()}</p>
|
||||
</#if>
|
||||
</#for>
|
||||
</div>
|
||||
|
||||
<!--主体-->
|
||||
<div id="mainbody" class="mainbody" style="margin-left:<#if sessionUser.hasSidebar()>200px<#else>0</#if>">
|
||||
<#include include/>
|
||||
</div>
|
||||
|
||||
<!-- 容器结束 -->
|
||||
</div>
|
||||
|
||||
<!--脚注-->
|
||||
<div class="footer">
|
||||
<div class="footer-wrap">${zmr_copyright}</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">旧 密 码:</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">新 密 码:</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>
|
||||
|
Sonra Genişlik: | Yükseklik: | Boyut: 7.6 KiB |
@@ -0,0 +1,95 @@
|
||||
@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:#fff;background-color:#00a2eb;height:55px;z-index:99;}
|
||||
.topnav .logo {float:left;width:200px;height:55px;padding:0 10px;overflow:hidden;font-size:24px;line-height:55px;background-color:#008bd2;word-break:break-all;word-wrap:break-word;}
|
||||
.topnav a{color: #fff;}
|
||||
|
||||
.topnav .topnavleft {float:left;height:55px;}
|
||||
.topnav .topnavleft .bar {float:left;height:55px;line-height:55px;}
|
||||
.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:55px;}
|
||||
.topnav .topnavright .nav, .topnav .topnavright .nav-only {float:left;height:55px;line-height:55px;border-left:1px solid #008bd2;}
|
||||
.topnav .topnavright .nav:hover {background-color:#008bd2; color:#fff;}
|
||||
|
||||
/* container */
|
||||
.container {position:relative;width:100%;height:100%;min-height:1000px;overflow:hidden;background-color:#eaedf1;}
|
||||
|
||||
/*[替换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:200px;min-height:1000px;overflow:hidden;background-color:#2c3a40;margin-bottom:-9999px;padding-bottom:9999px;}
|
||||
.sidebar p{position:relative;float:left;width:200px; height:40px;line-height:40px;color:#fff; padding-left:15px; background-color:#273237;cursor:pointer;border-bottom:1px solid #22282e;}
|
||||
.sidebar p a{color:#fff;}
|
||||
.sidebar p .z-arrow{position:absolute;top:16px;right:10px;}
|
||||
.sidebar p:hover{background-color:#22282e;}
|
||||
.sidebar p.active{background-color:#37424f;}
|
||||
|
||||
.sidebar ul{position:relative;width:200px;height:auto;overflow:hidden;}
|
||||
.sidebar ul li{float:left;background-color:#37424f;width:200px;height:40px;color:#fff; line-height:40px;padding-left:15px;cursor:pointer;}
|
||||
.sidebar ul li a{color:#fff;}
|
||||
.sidebar ul li:hover{background-color:#414750;color:#fff;}
|
||||
.sidebar ul li.active{background-color:#5c5c5c;color:#fff;}
|
||||
|
||||
/* 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:200px;}
|
||||
.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;}
|
||||
@@ -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", 200);
|
||||
Z("#mainbody").css("margin-left", 200);
|
||||
}
|
||||
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);
|
||||
@@ -0,0 +1,61 @@
|
||||
<#--变量定义-->
|
||||
<#var zmr_theme.css = context.getRootPath("/ztmpl/zhiqim_manager/"+themeMain+"/default_2019010101.css")/>
|
||||
<#var zmr_theme.js = context.getRootPath("/ztmpl/zhiqim_manager/"+themeMain+"/default_2019010101.js")/>
|
||||
<#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> >> <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> >> <a href="${parentUrl}">${parentName}</a> >> <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> >> <a href="${parentUrl}">${parentName}</a> >> <a href="${lastUrl}">${lastName}</a> >> <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>
|
||||
@@ -0,0 +1,35 @@
|
||||
<#var zmr_sidebar_width = 0/>
|
||||
<#var zmr_topnav_height = 0/>
|
||||
<!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)}
|
||||
<#if request.getPathInContext() == "/"+zhiqim_manager+"/param.htm" || request.getPathInContext() == "/"+zhiqim_manager+"/themeMain.htm">
|
||||
<script>
|
||||
if (top.location == self.location)
|
||||
{//从其他主题切换过来的时候
|
||||
top.location.href = "${context.getRootPath("/"+zhiqim_manager+"/main.htm")}";
|
||||
}
|
||||
</script>
|
||||
</#if>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
${Htmls.toCallFrame()}
|
||||
<div class="container">
|
||||
<div class="mainbody" style="margin-left:0;">
|
||||
<!-- 主体开始 -->
|
||||
|
||||
<#include include/>
|
||||
|
||||
<!-- 主体结束 -->
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,175 @@
|
||||
<!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()}
|
||||
<#if ZmrOrgDao.getOrgList(request, sessionUser.getOperatorCode()).size() gt 1>
|
||||
<div class="nav z-text-center z-pointer z-pd-l20 z-pd-r20" style="max-width:200px;" onclick="Zmr.selectOrgDialog();">${ZmrOrgDao.getOrgName(request, sessionUser.getSelectedOrgId())}</div>
|
||||
</#if>
|
||||
<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">旧 密 码:</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">新 密 码:</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>
|
||||
@@ -0,0 +1,176 @@
|
||||
<!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-color:#747f9d;background-image: url(ztmpl/zhiqim_manager/index_bg_00.jpg);background-repeat: no-repeat;background-size: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{position:fixed;width:100%;height:40px;line-height:40px;background-color:#000; background:rgba(0,0,0,0.2); filter:alpha(opacity=20);}
|
||||
.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{background-image: url(ztmpl/zhiqim_manager/00_default/index_bg_center.jpg);background-repeat:repeat-y; width:825px;}
|
||||
.input{background-color:#3f3f40;color:#fffafa;font-size:20px;letter-spacing:1px;border:2px solid #5c5c5c;border-radius:5px;height:45px;line-height:45px;text-indent:10px;font-family:Consolas,"微软雅黑";}
|
||||
.input:focus{border-color:#708090;}
|
||||
.input.verificationCode{letter-spacing:4px;}
|
||||
</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()
|
||||
{//登陆
|
||||
var operatorCode = Z("#operatorCode").val();
|
||||
if (Z.V.isEmptyBlank(operatorCode))
|
||||
{//用户名和密码必填
|
||||
Z.failure("用户名不能为空!",function(){
|
||||
Z("#operatorCode").focus();
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
var operatorPass = Z("#operatorPass").val();
|
||||
if (Z.V.isEmptyBlank(operatorPass))
|
||||
{//用户名和密码必填
|
||||
Z.failure("密码不能为空!",function(){
|
||||
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("verificationCode", verificationCode);
|
||||
|
||||
<#if hasRememberCode>
|
||||
ajax.addParam("rememberCode", Z("#rememberCode")[0].checked);
|
||||
</#if>
|
||||
<#if hasRememberPass>
|
||||
ajax.addParam("rememberPass", Z("#rememberPass")[0].checked);
|
||||
</#if>
|
||||
|
||||
ajax.setFailureAlertRecovery();
|
||||
ajax.setSuccessLocationResponse();
|
||||
ajax.setLoading("login", "正在登录...", {disabled:true,recovery:false});
|
||||
ajax.execute();
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
${Htmls.toCallFrame()}
|
||||
<div class="header">
|
||||
<div class="z-float-left z-w400 z-lh40 z-pd-l10 z-color-white">欢迎登录 [ ${context.getContextName()} ]!</div>
|
||||
<div class="z-float-right z-text-right z-w200 z-lh40 z-pd-r10"></div>
|
||||
</div>
|
||||
<div class="z-absolute-center-middle login" style="height:<#if hasVerificationCode && hasRememberCode>410<#elseif hasVerificationCode>360<#elseif hasRememberCode>350<#else>300</#if>px">
|
||||
<table class="z-table z-h100p">
|
||||
<tr>
|
||||
<td width="50%" class="z-text-center"><img src="ztmpl/zhiqim_manager/index_logo_00.png"></td>
|
||||
<td width="50%" valign="top" rowspan="2">
|
||||
<input type="text" class="z-hidden-fixed"/>
|
||||
<input type="password" class="z-hidden-fixed"/>
|
||||
<table class="z-table z-mg-l30 z-h70-tr z-pd5 z-color-white">
|
||||
<tr>
|
||||
<td class="z-px20 z-text-gray z-mg-t10">用户登录</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><input id="operatorCode" class="z-w300 input" placeholder="用户名" value="#{operatorCode}" maxlength="16" spellcheck="false" autocomplete="off"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><input id="operatorPass" type="password" class="z-w300 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 z-text-gray">
|
||||
<input id="rememberCode" 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>
|
||||
|
||||
<input id="rememberPass" 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 id="login" class="z-button z-w300 z-h50 zi-px20 ${zmr_color_class}" onclick="doLogin()">登 录</button></td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="z-h120">
|
||||
<td class="z-text-center" valign="top"><img src="ztmpl/zhiqim_manager/index_slogan_00.png"/></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="footer">${zmr_copyright}</div>
|
||||
</body>
|
||||
</html>
|
||||
|
Sonra Genişlik: | Yükseklik: | Boyut: 4.5 KiB |
|
Sonra Genişlik: | Yükseklik: | Boyut: 67 KiB |
|
Sonra Genişlik: | Yükseklik: | Boyut: 19 KiB |
@@ -0,0 +1,130 @@
|
||||
<!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)}
|
||||
</head>
|
||||
|
||||
<body>
|
||||
${Htmls.toCallFrame()}
|
||||
<!--顶部导航 -->
|
||||
<div class="topnav">
|
||||
<div id="logo" class="logo z-pointer z-text-left ${sessionUser.getSidebarClass()}" onclick="Z.L.href('${context.getRootPath("/"+zhiqim_manager+"/main.htm")}');">${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()}
|
||||
<#if ZmrOrgDao.getOrgList(request, sessionUser.getOperatorCode()).size() gt 1>
|
||||
<div class="nav z-text-center z-pointer z-pd-l20 z-pd-r20" style="max-width:200px;" onclick="Zmr.selectOrgDialog();">${ZmrOrgDao.getOrgName(request, sessionUser.getSelectedOrgId())}</div>
|
||||
</#if>
|
||||
<div class="nav z-w80 z-text-center z-pointer" onclick="Z.L.href('${context.getRootPath("/"+zhiqim_manager+"/profile.htm")}');"><img class="z-bd-rd50p z-w40 z-h40" src="${sessionUser.getAvatar50()}"></div>
|
||||
<div class="nav z-w100 z-text-center z-pointer" onclick="Z.L.reload();">刷新</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()}">
|
||||
<#var topMenuCode = sessionUser.getSelectedTopMenuCodeOrFirstMenuCode(request, designatedPath)/>
|
||||
<#var childMenuCode = sessionUser.getSelectedSecondMenuCode(request, designatedPath)/>
|
||||
<#for topMenu : sessionUser.getTopMenuList()>
|
||||
<#if sessionUser.hasChildMenu(topMenu.getMenuCode())>
|
||||
<p><i class="z-font z-px16 z-mg-r5 ${topMenu.getMenuIcon()}"></i>#{topMenu.getMenuName()}<i class="z-arrow z-px5"><span></span></i></p>
|
||||
<ul id="${topMenu.getMenuCode()}" style="display: <#if topMenu.getMenuCode() == topMenuCode>block<#else>none</#if>;">
|
||||
<#for childMenu : sessionUser.getChildMenuList(topMenu.getMenuCode())>
|
||||
<li onclick="Z.L.href('${context.getRootPath(childMenu.getMenuUrl())}');" <#if childMenu.getMenuCode() == childMenuCode>class="active"</#if>>#{childMenu.getMenuName()}</li>
|
||||
</#for>
|
||||
</ul>
|
||||
<#elseif Validates.isNotEmptyBlank(topMenu.getMenuUrl())>
|
||||
<p onclick="Z.L.href('${context.getRootPath(topMenu.getMenuUrl())}');"><i class="z-font z-px16 z-mg-r5 ${topMenu.getMenuIcon()}"></i>#{topMenu.getMenuName()}</p>
|
||||
</#if>
|
||||
</#for>
|
||||
</div>
|
||||
|
||||
<!--主体-->
|
||||
<div id="mainbody" class="mainbody" style="margin-left:<#if sessionUser.hasSidebar()>200px<#else>0</#if>">
|
||||
<#include include/>
|
||||
</div>
|
||||
|
||||
<!-- 容器结束 -->
|
||||
</div>
|
||||
|
||||
<!--脚注-->
|
||||
<div class="footer">
|
||||
<div class="footer-wrap">${zmr_copyright}</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">旧 密 码:</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">新 密 码:</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>
|
||||
@@ -0,0 +1,97 @@
|
||||
@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:#216a9d;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: #fff;background-color:#008fbf;height:55px;z-index:99;}
|
||||
.topnav .logo {float:left;width:200px;height:55px;padding:0 10px;overflow:hidden;font-size:24px;line-height:55px;background-color:#2a80b9;word-break:break-all;word-wrap:break-word;}
|
||||
|
||||
.topnav .topnavleft {float:left;height:55px;}
|
||||
.topnav .topnavleft .bar {float:left;height:55px;line-height:55px;}
|
||||
.topnav .topnavleft .first {border-left:1px solid #2a80b9;}
|
||||
.topnav .topnavleft .nav, .topnav .topnavleft .nav-only {float:left;height:55px;line-height:55px;border-right:1px solid #2a80b9;}
|
||||
.topnav .topnavleft .nav:hover{background-color:#2a80b9; color:#fff;}
|
||||
|
||||
.topnav .topnavright {float:right;height:55px;}
|
||||
.topnav .topnavright .nav, .topnav .topnavright .nav-only {float:left;height:55px;line-height:55px; border-left:1px solid #2a80b9;}
|
||||
.topnav .topnavright .nav:hover {background-color:#2a80b9; color:#fff;}
|
||||
|
||||
/* container */
|
||||
.container {position:relative;width:100%;height:100%; min-height:1000px;overflow:hidden;background-color:#edf3f7;}
|
||||
|
||||
/*[替换z-tabnav的背景色为容器背景色]*/
|
||||
.container .z-tabnav>nav li.z-active{border-bottom:1px solid #edf3f7;}
|
||||
.container .z-tabnav>nav li.z-active:hover{background-color:#edf3f7;}
|
||||
|
||||
.sidebar {position:relative; float: left; width:200px;min-height:1000px;height:100%;margin-bottom:-9999px;padding-bottom:9999px;overflow:hidden; background-color: #f2f2f2; border-right:1px solid #d8dce5;}
|
||||
|
||||
.sidebar p{position:relative;float:left;width:200px; height:40px;line-height:40px; border-bottom:1px solid #e5e5e5;border-left:3px solid transparent;display:block;padding-left:10px;cursor:pointer;}
|
||||
.sidebar p a{color:#333;}
|
||||
.sidebar p .z-arrow{position:absolute;top:16px;right:10px;}
|
||||
.sidebar p .z-arrow>span{border-color:#f2f2f2 transparent transparent;}
|
||||
.sidebar p:hover{width:200px;background-color:#fafafa; border-left:3px solid #2a80b9;color:#216a9d;}
|
||||
.sidebar p.active{width:200px;background-color:#fafafa; border-left:3px solid #2a80b9;color:#216a9d;}
|
||||
.sidebar p:hover>.z-arrow>span{border-color:#fafafa transparent transparent;}
|
||||
.sidebar p.active>.z-arrow>span{border-color:#fafafa transparent transparent;}
|
||||
|
||||
.sidebar ul{position:relative;width:200px;height:auto;overflow:hidden;}
|
||||
.sidebar ul li{float:left;width:200px;border-left:0px;line-height:35px;text-indent:35px;border-bottom:1px dashed #e5e5e5;background-color:#fff;background-color:#fff;background-image:url(ico_n.gif); background-position:15px; background-repeat:no-repeat;display:block;cursor:pointer;}
|
||||
.sidebar ul li:hover{background-image: url(ico_h.gif) ; background-repeat:no-repeat;color:#216a9d;}
|
||||
.sidebar ul li.active{background-image:url(ico_h.gif); background-repeat:no-repeat;color:#216a9d;}
|
||||
|
||||
/* 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:200px;}
|
||||
.mainbody .breadcrumb{position:relative;float:left;width: 100%;background-color:#f5f5f5;}
|
||||
.mainbody .content{position:relative;float:left;width:100%;padding:20px;}
|
||||
|
||||
/* footer */
|
||||
.footer {position:relative;width:100%;height:40px;display:block;overflow:hidden;background-color:#2a80b9;z-index:99;}
|
||||
.footer-wrap {position:relative;margin:0 auto;height:100%;line-height:40px;text-align: center;color:#fff;}
|
||||
@@ -0,0 +1,113 @@
|
||||
/*
|
||||
* 版权所有 (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("#mainbody").css("margin-left", 200);
|
||||
}
|
||||
else
|
||||
{
|
||||
$sidebar.hide();
|
||||
Z("#logo").hide();
|
||||
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);
|
||||
@@ -0,0 +1,61 @@
|
||||
<#--变量定义-->
|
||||
<#var zmr_theme.css = context.getRootPath("/ztmpl/zhiqim_manager/"+themeMain+"/classic_2019010101.css")/>
|
||||
<#var zmr_theme.js = context.getRootPath("/ztmpl/zhiqim_manager/"+themeMain+"/classic_2019010101.js")/>
|
||||
<#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 = "#f5f5f5"/>
|
||||
<#var zmr_thead_bgcolor = "#f5f5f5"/>
|
||||
<#var zmr_tr_odd_bgcolor = "#f6fafd"/>
|
||||
<#var zmr_tr_even_bgcolor = "#ffffff"/>
|
||||
<#var zmr_tr_over_bgcolor = "#f6fafd"/>
|
||||
<#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> >> <span style="color:#0280d4;">${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-l15">当前位置:<a href="${context.getRootPath(ZmlContexts.parseZmlContent(request, ZmrParamDao.getMainIndexUrl(context)))}">首页</a> >> <a href="${parentUrl}">${parentName}</a> >> <span style="color:#0280d4;">${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-l15">当前位置:<a href="${context.getRootPath(ZmlContexts.parseZmlContent(request, ZmrParamDao.getMainIndexUrl(context)))}">首页</a> >> <a href="${parentUrl}">${parentName}</a> >> <a href="${lastUrl}">${lastName}</a> >> <span style="color:#0280d4;">${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>
|
||||
|
Sonra Genişlik: | Yükseklik: | Boyut: 1.3 KiB |
|
Sonra Genişlik: | Yükseklik: | Boyut: 1.2 KiB |
@@ -0,0 +1,35 @@
|
||||
<#var zmr_sidebar_width = 0/>
|
||||
<#var zmr_topnav_height = 0/>
|
||||
<!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)}
|
||||
<#if request.getPathInContext() == "/"+zhiqim_manager+"/param.htm" || request.getPathInContext() == "/"+zhiqim_manager+"/themeMain.htm">
|
||||
<script>
|
||||
if (top.location == self.location)
|
||||
{//从其他主题切换过来的时候
|
||||
top.location.href = "${context.getRootPath("/"+zhiqim_manager+"/main.htm")}";
|
||||
}
|
||||
</script>
|
||||
</#if>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
${Htmls.toCallFrame()}
|
||||
<div class="container">
|
||||
<div class="mainbody" style="margin-left:0;">
|
||||
<!-- 主体开始 -->
|
||||
|
||||
<#include include/>
|
||||
|
||||
<!-- 主体结束 -->
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,167 @@
|
||||
<!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()}
|
||||
<#if ZmrOrgDao.getOrgList(request, sessionUser.getOperatorCode()).size() gt 1>
|
||||
<div class="nav z-text-center z-pointer z-pd-l20 z-pd-r20" style="max-width:200px;" onclick="Zmr.selectOrgDialog();">${ZmrOrgDao.getOrgName(request, sessionUser.getSelectedOrgId())}</div>
|
||||
</#if>
|
||||
<div class="nav z-w80 z-text-center z-pointer" onclick="Zin.doClickChildMenu(this, '${context.getRootPath("/"+zhiqim_manager+"/profile.htm")}');" data-text="个人中心"><img class="z-bd-rd50p z-w40 z-h40" src="${sessionUser.getAvatar50()}"></div>
|
||||
<div class="nav z-w100 z-h50 z-text-center z-pointer" onclick="Zin.refreshIframeTabActive();">刷新</div>
|
||||
<div class="nav z-w100 z-h50 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()}">
|
||||
<#var topMenuCode = sessionUser.getSelectedTopMenuCodeOrFirstMenuCode(request, sessionUser.getMainUrl())/>
|
||||
<#for topMenu : sessionUser.getTopMenuList()>
|
||||
<#if sessionUser.hasChildMenu(topMenu.getMenuCode())>
|
||||
<p><i class="z-font z-px16 z-mg-r5 ${topMenu.getMenuIcon()}"></i>#{topMenu.getMenuName()}<i class="z-arrow z-px5"><span></span></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>>#{childMenu.getMenuName()}</li>
|
||||
</#for>
|
||||
</ul>
|
||||
<#elseif Validates.isNotEmptyBlank(topMenu.getMenuUrl())>
|
||||
<p onclick="Zin.doClickChildMenu(this, '${context.getRootPath(topMenu.getMenuUrl())}');"><i class="z-font z-px16 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">旧 密 码:</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">新 密 码:</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>
|
||||
@@ -0,0 +1,166 @@
|
||||
<!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-color:#fff;background-image: url(ztmpl/zhiqim_manager/index_bg_01.jpg);background-repeat: no-repeat;background-size: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{position:fixed;width:100%;height:40px;line-height:40px;background-color:#000; background:rgba(0,0,0,0.2); filter:alpha(opacity=20);}
|
||||
.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:520px;;border:1px solid #ccc;background-color: #ffffff;border-radius:10px;padding:20px;}
|
||||
.input{color:#666;font-size:20px;border:2px solid #cecfcf;border-radius:5px;height:50px;line-height:50px;text-indent:10px;font-family:Consolas,"微软雅黑";}
|
||||
.input.verificationCode{letter-spacing:4px;}
|
||||
</style>
|
||||
<script>
|
||||
Z.onload(function()
|
||||
{//默认焦点
|
||||
if (Z("#operatorCode").val() == "")
|
||||
Z("#operatorCode").focus();
|
||||
else if (Z("#operatorPass").val() == "")
|
||||
Z("#operatorPass").focus();
|
||||
else if (Z("#verificationCode").val() == null)
|
||||
Z("#verificationCode").focus();
|
||||
else
|
||||
Z("#operatorCode").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()
|
||||
{//登陆
|
||||
var operatorCode = Z("#operatorCode").val();
|
||||
if (Z.V.isEmptyBlank(operatorCode))
|
||||
{//用户名和密码必填
|
||||
Z.failure("用户名不能为空!",function(){
|
||||
Z("#operatorCode").focus();
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
var operatorPass = Z("#operatorPass").val();
|
||||
if (Z.V.isEmptyBlank(operatorPass))
|
||||
{//用户名和密码必填
|
||||
Z.failure("密码不能为空!",function(){
|
||||
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("verificationCode", verificationCode);
|
||||
|
||||
<#if hasRememberCode>
|
||||
ajax.addParam("rememberCode", Z("#rememberCode")[0].checked);
|
||||
</#if>
|
||||
<#if hasRememberPass>
|
||||
ajax.addParam("rememberPass", Z("#rememberPass")[0].checked);
|
||||
</#if>
|
||||
|
||||
ajax.setFailureAlertRecovery();
|
||||
ajax.setSuccessLocationResponse();
|
||||
ajax.setLoading("login", "正在登录...", {disabled:true,recovery:false});
|
||||
ajax.execute();
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="header">
|
||||
<div class="z-float-left z-w400 z-lh40 z-pd-l10 z-color-white">欢迎登录 [ ${context.getContextName()} ]!</div>
|
||||
<div class="z-float-right z-text-right z-w200 z-lh40 z-pd-r10"></div>
|
||||
</div>
|
||||
<div class="z-absolute-center-middle login" style="height:<#if hasVerificationCode && hasRememberCode>420<#elseif hasVerificationCode>390<#elseif hasRememberCode>350<#else>320</#if>px">
|
||||
<input type="text" class="z-hidden-fixed"/>
|
||||
<input type="password" class="z-hidden-fixed"/>
|
||||
<div class="z-px24 zi-bd-b z-color-666 z-pd-b10"><i class="z-font z-customer"></i> 用户登录</div>
|
||||
<div style="padding:25px 40px 20px 30px;">
|
||||
<table class="z-table z-pd5 z-h100p">
|
||||
<tr class="z-h70">
|
||||
<td><input id="operatorCode" class="z-w100p input" placeholder="用户名" value="#{operatorCode}" maxlength="16" spellcheck="false" autocomplete="off"></td>
|
||||
</tr>
|
||||
<tr class="z-h70">
|
||||
<td><input id="operatorPass" type="password" class="z-w100p input" placeholder="密码" value="#{operatorPass}" maxlength="16" spellcheck="false" autocomplete="off"></td>
|
||||
</tr>
|
||||
<#if hasVerificationCode>
|
||||
<tr class="z-h70">
|
||||
<td>
|
||||
<input id="verificationCode" class="input verificationCode" style="width:270px" placeholder="验证码" data-options="type:Numeric;paste:true;" maxlength="4" spellcheck="false" autocomplete="off">
|
||||
<img class="z-pointer z-bd-rd5 z-mg-t-6" title="点击刷新验证码" onclick="this.src='service/vcode.jpg?bgColor=%231299ec&width=120&height=50&fontSize=20&yawp=true&t='+new Date().getTime();" src="service/vcode.jpg?bgColor=%231299ec&width=120&height=50&fontSize=20&yawp=true&t=${DateTimes.getDateTime17String()}">
|
||||
</td>
|
||||
</tr>
|
||||
</#if>
|
||||
<#if hasRememberCode>
|
||||
<tr class="z-h40">
|
||||
<td class="z-px16 z-color-gray">
|
||||
<input id="rememberCode" type="checkbox" data-role="z-checkbox" data-class="${zmr_color_class}" onclick="doRememberCode(this);" <#if Validates.isNotEmpty(operatorCode)>checked</#if>> 记住用户名
|
||||
|
||||
<#if hasRememberPass>
|
||||
<input id="rememberPass" type="checkbox" data-role="z-checkbox" data-class="${zmr_color_class}" onclick="doRememberPass(this);" <#if Validates.isNotEmpty(operatorPass)>checked</#if>/> 记住密码
|
||||
</#if>
|
||||
</td>
|
||||
</tr>
|
||||
</#if>
|
||||
<tr class="z-h70">
|
||||
<td><button id="login" class="z-button z-xlarge z-w100p z-h50 zi-px20 ${zmr_color_class}" onclick="doLogin()">登 录</button></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div class="footer">${zmr_copyright}</div>
|
||||
</body>
|
||||
</html>
|
||||
|
Sonra Genişlik: | Yükseklik: | Boyut: 74 KiB |
|
Sonra Genişlik: | Yükseklik: | Boyut: 17 KiB |
@@ -0,0 +1,149 @@
|
||||
<!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)}
|
||||
</head>
|
||||
|
||||
<body>
|
||||
${Htmls.toCallFrame()}
|
||||
<!--顶部导航 -->
|
||||
<div class="topnav">
|
||||
<div id="logo" class="logo z-pointer z-text-left ${sessionUser.getSidebarClass()}" onclick="Z.L.href('${context.getRootPath("/"+zhiqim_manager+"/main.htm")}');">${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()}
|
||||
<#if ZmrOrgDao.getOrgList(request, sessionUser.getOperatorCode()).size() gt 1>
|
||||
<div class="nav z-text-center z-pointer z-pd-l20 z-pd-r20" style="max-width:200px;" onclick="Zmr.selectOrgDialog();">${ZmrOrgDao.getOrgName(request, sessionUser.getSelectedOrgId())}</div>
|
||||
</#if>
|
||||
<div class="nav z-w100 z-text-center z-pointer" onclick="Z.L.reload();">刷新</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 class="container">
|
||||
|
||||
<!--边导航开始-->
|
||||
<div id="sidebar" class="${sessionUser.getSidebarClass()}">
|
||||
<!--顶导航-->
|
||||
<#var topMenuCode = sessionUser.getSelectedTopMenuCode(request, designatedPath)/>
|
||||
<ul class="sidebar-top">
|
||||
<li class="avatar<#if topMenuCode == null> active</#if>" onclick="Z.L.href('${context.getRootPath("/"+zhiqim_manager+"/profile.htm")}');"><img class="z-bd-rd50p z-w40 z-h40" src="${sessionUser.getAvatar50()}"></li>
|
||||
<#for topMenu : sessionUser.getTopMenuList()>
|
||||
<#var childMenuFirst = sessionUser.getChildMenuFirst(topMenu.getMenuCode())/>
|
||||
<#if childMenuFirst != null || Validates.isNotEmptyBlank(topMenu.getMenuUrl())>
|
||||
<li onclick="Z.L.href('${context.getRootPath(childMenuFirst==null?topMenu.getMenuUrl():childMenuFirst.getMenuUrl())}');" <#if topMenu.getMenuCode() == topMenuCode>class="active"</#if>><i class="z-font ${topMenu.getMenuIcon()}"></i><br>#{topMenu.getMenuNameAbbr()}</li>
|
||||
</#if>
|
||||
</#for>
|
||||
</ul>
|
||||
<#var childMenuCode = sessionUser.getSelectedSecondMenuCode(request, designatedPath)/>
|
||||
<#if childMenuCode != null && topMenuCode != null>
|
||||
<#var topMenu = sessionUser.getMenu(topMenuCode)/>
|
||||
<#if sessionUser.hasChildMenu(topMenu.getMenuCode())>
|
||||
<!--子导航-->
|
||||
<div class="sidebar-child">
|
||||
<div class="info z-float-left z-text-left z-bd-b" >
|
||||
<span class="z-relative z-px18 z-bold" style="line-height:32px;"><i class="z-font ${topMenu.getMenuIcon()}"></i><span class="z-mg-l10">#{topMenu.getMenuName()}</span></span><br>
|
||||
</div>
|
||||
<ul>
|
||||
<#for childMenu : sessionUser.getChildMenuList(topMenu.getMenuCode())>
|
||||
<li onclick="Z.L.href('${context.getRootPath(childMenu.getMenuUrl())}');" class="<#if childMenu.getMenuCode() == childMenuCode> active</#if>"><i class="z-font z-px16 ${childMenu.getMenuIcon()}"></i><span class="z-mg-l5">#{childMenu.getMenuName()}</span></p>
|
||||
</#for>
|
||||
</ul>
|
||||
</div>
|
||||
</#if>
|
||||
</#if>
|
||||
<!--边导航结束-->
|
||||
</div>
|
||||
|
||||
<!--主体-->
|
||||
<#var mainbodyLeft = 260/>
|
||||
<#if topMenuCode == null || !sessionUser.hasChildMenu(topMenuCode)>
|
||||
<#var mainbodyLeft = 60/>
|
||||
</#if>
|
||||
<#if !sessionUser.hasSidebar()>
|
||||
<div id="mainbody" class="mainbody" value="${mainbodyLeft}" style="margin-left:0;">
|
||||
<#elseif topMenuCode == null || !sessionUser.hasChildMenu(topMenuCode)>
|
||||
<div id="mainbody" class="mainbody" value="${mainbodyLeft}" style="margin-left:60px;">
|
||||
<#else>
|
||||
<div id="mainbody" class="mainbody" value="${mainbodyLeft}">
|
||||
</#if>
|
||||
<#include include/>
|
||||
</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">旧 密 码:</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">新 密 码:</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>
|
||||
@@ -0,0 +1,98 @@
|
||||
@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:#1e7eec;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: #fff;background-color:#00a2eb;height:55px;z-index:99;}
|
||||
.topnav .logo {float:left;width:260px;height:55px;padding:0 10px;overflow:hidden;font-size:28px;line-height:55px;background-color:#008bd2;word-break:break-all;word-wrap:break-word;}
|
||||
|
||||
.topnav .topnavleft {float:left;height:55px;}
|
||||
.topnav .topnavleft .bar {float:left;height:55px;line-height:55px;}
|
||||
.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:55px;}
|
||||
.topnav .topnavright .nav, .topnav .topnavright .nav-only {float:left;height:55px;line-height:55px;border-left:1px solid #008bd2;}
|
||||
.topnav .topnavright .nav:hover {background-color:#008bd2; color:#fff;}
|
||||
|
||||
/* container */
|
||||
.container {position:relative;width:100%;height:100%; min-height:1000px;overflow:hidden;background-color:#fff;}
|
||||
|
||||
.sidebar-top{position:absolute;top:0;left:0;float:left;width:60px;height:100%;overflow:hidden; background-color:#333;z-index:20;}
|
||||
.sidebar-top li{position:relative;float:left;width:60px;height:70px;display:inline-block;text-align:center;color:#fff;padding:13px 0;line-height:22px;}
|
||||
.sidebar-top li:hover{background-color:#414750;cursor:pointer;}
|
||||
.sidebar-top li.active{background-color:#5c5c5c;}
|
||||
.sidebar-top li i{font-size:22px;}
|
||||
.sidebar-top .avatar{width: 100%;text-align:center;padding:16px 0;cursor:pointer;}
|
||||
|
||||
.sidebar-child{position:absolute;top:0;left:60px;float:left;width:200px;min-height:800px;height:100%;overflow:hidden; background-color:#f2f2f2;border-right:1px solid #d8dce5;z-index:20;}
|
||||
.sidebar-child li{position:relative;float:left;width:200px; height:40px;line-height:40px;color:#333; padding-left:25px; background-color:#f2f2f2;cursor:pointer;}
|
||||
.sidebar-child li a{color:#333;}
|
||||
.sidebar-child li .z-arrow>span{border-color:#eff6fc transparent transparent;}
|
||||
.sidebar-child li:hover{background-color:#f2f1ed;color:#008bd2;}
|
||||
.sidebar-child li.active{background-color:#e4e3df;color:#008bd2;}
|
||||
.sidebar-child li:hover>.z-arrow>span{border-color:#333 transparent transparent;}
|
||||
.sidebar-child li.active>.z-arrow>span{border-color:#333 transparent transparent;}
|
||||
|
||||
.sidebar-child .info{position:relative;width:100%;padding:25px;}
|
||||
|
||||
.ueseroperate{position:relative;width:100%;overflow:hidden;padding-top:15px;min-height:200px; padding-left:25px;border-top:1px solid #e5e5e5;}
|
||||
.ueseroperate .operatemenu{position:relative;cursor: pointer;color: #999;height:40px;line-height:40px;}
|
||||
.ueseroperate .operatemenu:hover{color:#333;}
|
||||
|
||||
/* iframenav */
|
||||
.iframenav{position:relative;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:260px;}
|
||||
.mainbody .content{position:relative;float:left;width:100%;padding:30px;}
|
||||
|
||||
/* footer */
|
||||
.footer {position: absolute !important;bottom:50px;width:100%;z-index:99;}
|
||||
.footer-wrap {position:relative;line-height:20px;text-align:left;color:#999;padding:25px;font-size:12px;}
|
||||
@@ -0,0 +1,108 @@
|
||||
/*
|
||||
* 版权所有 (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("#mainbody").css("margin-left", Z("#mainbody").val());
|
||||
}
|
||||
else
|
||||
{
|
||||
$sidebar.hide();
|
||||
Z("#logo").hide();
|
||||
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.doClickTopMenu = function(elem, menuCode, hasChild)
|
||||
{//点击顶级栏目
|
||||
Z(elem).addClass("active").siblings("li").removeClass("active");
|
||||
Z("#sidebar-child").find("p").removeClass("active");
|
||||
|
||||
if (elem == Z.D.id("menu-avatar") || !hasChild)
|
||||
{
|
||||
Z("#sidebar-child").hide();
|
||||
Z("#mainbody").css("margin-left", 60).val(60);
|
||||
}
|
||||
else
|
||||
{
|
||||
Z("#sidebar-child").children("div").hide();
|
||||
Z("#sidebar-child-"+menuCode).show();
|
||||
Z("#sidebar-child").show();
|
||||
Z("#mainbody").css("margin-left", 260).val(260);
|
||||
}
|
||||
};
|
||||
|
||||
//END
|
||||
})(zhiqim);
|
||||
@@ -0,0 +1,61 @@
|
||||
<#--变量定义-->
|
||||
<#var zmr_theme.css = context.getRootPath("/ztmpl/zhiqim_manager/"+themeMain+"/concise_2019010101.css")/>
|
||||
<#var zmr_theme.js = context.getRootPath("/ztmpl/zhiqim_manager/"+themeMain+"/concise_2019010101.js")/>
|
||||
<#var zmr_color_class = "z-blue"/>
|
||||
<#var zmr_sidebar_width = 260/>
|
||||
<#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 = "#f2faff"/>
|
||||
<#var zmr_tr_even_bgcolor = "#ffffff"/>
|
||||
<#var zmr_tr_over_bgcolor = "#f2faff"/>
|
||||
<#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> >> <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> >> <a href="${parentUrl}">${parentName}</a> >> <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> >> <a href="${parentUrl}">${parentName}</a> >> <a href="${lastUrl}">${lastName}</a> >> <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>
|
||||
@@ -0,0 +1,35 @@
|
||||
<#var zmr_sidebar_width = 0/>
|
||||
<#var zmr_topnav_height = 0/>
|
||||
<!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)}
|
||||
<#if request.getPathInContext() == "/"+zhiqim_manager+"/param.htm" || request.getPathInContext() == "/"+zhiqim_manager+"/themeMain.htm">
|
||||
<script>
|
||||
if (top.location == self.location)
|
||||
{//从其他主题切换过来的时候
|
||||
top.location.href = "${context.getRootPath("/"+zhiqim_manager+"/main.htm")}";
|
||||
}
|
||||
</script>
|
||||
</#if>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
${Htmls.toCallFrame()}
|
||||
<div class="container">
|
||||
<div class="mainbody" style="margin-left:0;padding-top:0;">
|
||||
<!-- 主体开始 -->
|
||||
|
||||
<#include include/>
|
||||
|
||||
<!-- 主体结束 -->
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,181 @@
|
||||
<!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()}
|
||||
<#if ZmrOrgDao.getOrgList(request, sessionUser.getOperatorCode()).size() gt 1>
|
||||
<div class="nav z-text-center z-pointer z-pd-l20 z-pd-r20" style="max-width:200px;" onclick="Zmr.selectOrgDialog();">${ZmrOrgDao.getOrgName(request, sessionUser.getSelectedOrgId())}</div>
|
||||
</#if>
|
||||
<div class="nav z-w100 z-text-center z-pointer" onclick="Z.L.reload(mainFrame);">刷新</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="${sessionUser.getSidebarClass()}">
|
||||
<!--顶导航-->
|
||||
<#var topMenuCode = sessionUser.getSelectedTopMenuCodeOrFirstMenuCode(request, sessionUser.getMainUrl())/>
|
||||
<ul class="sidebar-top">
|
||||
<li class="avatar" id="menu-avatar" data-text="个人中心" onclick="Zin.doClickChildMenu(this, '${context.getRootPath("/"+zhiqim_manager+"/profile.htm")}');"><img class="z-bd-rd50p z-w40 z-h40" src="${sessionUser.getAvatar50()}"></li>
|
||||
<#for topMenu : sessionUser.getTopMenuList()>
|
||||
<#var childMenuFirst = sessionUser.getChildMenuFirst(topMenu.getMenuCode())/>
|
||||
<#if childMenuFirst != null || Validates.isNotEmptyBlank(topMenu.getMenuUrl())>
|
||||
<li onclick="Zmr.doClickTopMenu(this, '${topMenu.getMenuCode()}', ${childMenuFirst != null});" <#if topMenu.getMenuCode() == topMenuCode>class="active"</#if>><i class="z-font ${topMenu.getMenuIcon()}"></i><br>#{topMenu.getMenuNameAbbr()}</li>
|
||||
</#if>
|
||||
</#for>
|
||||
</ul>
|
||||
<!--子导航-->
|
||||
<div id="sidebar-child" style="display: <#if topMenuCode == null || !sessionUser.hasChildMenu(topMenuCode)>none<#else>block</#if>;">
|
||||
<#for topMenu : sessionUser.getTopMenuList()>
|
||||
<!--${topMenu.getMenuName()} - 子栏目列表-->
|
||||
<div class="sidebar-child" id="sidebar-child-${topMenu.getMenuCode()}" style="display: <#if topMenu.getMenuCode() == topMenuCode>block<#else>none</#if>;">
|
||||
<div class="info z-float-left z-text-left z-bd-b" >
|
||||
<span class="z-relative z-px18 z-bold" style="line-height:32px;"><i class="z-font ${topMenu.getMenuIcon()}"></i><span class="z-mg-l10">#{topMenu.getMenuName()}</span></span><br>
|
||||
</div>
|
||||
<ul>
|
||||
<#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-px16 ${childMenu.getMenuIcon()}"></i><span class="z-mg-l5">#{childMenu.getMenuName()}</span></p>
|
||||
</#for>
|
||||
</ul>
|
||||
</div>
|
||||
</#for>
|
||||
</div>
|
||||
<!--边导航结束-->
|
||||
</div>
|
||||
|
||||
<!-- 框架导航 -->
|
||||
<div class="iframenav z-h40 z-lh40 z-bg-white z-bd-b" style="margin-left:<#if sessionUser.hasSidebar()>260px<#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()>260px<#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">旧 密 码:</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">新 密 码:</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>
|
||||
@@ -0,0 +1,179 @@
|
||||
<!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-color:#fff;background-image: url(ztmpl/zhiqim_manager/index_bg_01.jpg);background-repeat: no-repeat;background-size: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{position:fixed;width:100%;height:40px;line-height:40px;background-color:#000; background:rgba(0,0,0,0.2); filter:alpha(opacity=20);}
|
||||
.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{background-image: url(ztmpl/zhiqim_manager/02_concise/index_bg_center.png);background-repeat:repeat-y; width:825px;}
|
||||
.input{background-color:#fff;color:#333;font-size:20px;letter-spacing:1px;border:2px solid #c3c3c3;border-radius:5px;height:45px;line-height:45px;text-indent:10px;font-family:Consolas,"微软雅黑";}
|
||||
.input:focus{border-color:#8c8c8c;}
|
||||
.input.verificationCode{letter-spacing:4px;}
|
||||
</style>
|
||||
<script>
|
||||
Z.onload(function()
|
||||
{//默认焦点
|
||||
if (Z("#operatorCode").val() == "")
|
||||
Z("#operatorCode").focus();
|
||||
else if (Z("#operatorPass").val() == "")
|
||||
Z("#operatorPass").focus();
|
||||
else if (Z("#verificationCode").val() == null)
|
||||
Z("#verificationCode").focus();
|
||||
else
|
||||
Z("#operatorCode").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()
|
||||
{//登陆
|
||||
var operatorCode = Z("#operatorCode").val();
|
||||
if (Z.V.isEmptyBlank(operatorCode))
|
||||
{//用户名和密码必填
|
||||
Z.failure("用户名不能为空!",function(){
|
||||
Z("#operatorCode").focus();
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
var operatorPass = Z("#operatorPass").val();
|
||||
if (Z.V.isEmptyBlank(operatorPass))
|
||||
{//用户名和密码必填
|
||||
Z.failure("密码不能为空!",function(){
|
||||
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("verificationCode", verificationCode);
|
||||
|
||||
<#if hasRememberCode>
|
||||
ajax.addParam("rememberCode", Z("#rememberCode")[0].checked);
|
||||
</#if>
|
||||
<#if hasRememberPass>
|
||||
ajax.addParam("rememberPass", Z("#rememberPass")[0].checked);
|
||||
</#if>
|
||||
|
||||
ajax.setFailureAlertRecovery();
|
||||
ajax.setSuccessLocationResponse();
|
||||
ajax.setLoading("login", "正在登录...", {disabled:true,recovery:false});
|
||||
ajax.execute();
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="header">
|
||||
<div class="z-float-left z-w400 z-lh40 z-pd-l10 z-color-white">欢迎登录 [ ${context.getContextName()} ]!</div>
|
||||
<div class="z-float-right z-text-right z-w200 z-lh40 z-pd-r10"></div>
|
||||
</div>
|
||||
<div class="z-absolute-center-middle login" style="height:<#if hasVerificationCode && hasRememberCode>410<#elseif hasVerificationCode>360<#elseif hasRememberCode>350<#else>300</#if>px">
|
||||
<table class="z-table z-h100p">
|
||||
<tr>
|
||||
<td width="50%" class="z-text-center"><img src="ztmpl/zhiqim_manager/index_logo_01.png"></td>
|
||||
<td width="50%" valign="top" rowspan="2">
|
||||
<input type="text" class="z-hidden-fixed"/>
|
||||
<input type="password" class="z-hidden-fixed"/>
|
||||
<table class="z-table z-mg-l30 z-h70-tr z-pd5 z-color-333">
|
||||
<tr>
|
||||
<td class="z-px20 z-color-333 z-mg-t10">用户登录</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><input id="operatorCode" class="z-w300 input" placeholder="用户名" value="#{operatorCode}" maxlength="16" spellcheck="false" autocomplete="off"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><input id="operatorPass" type="password" class="z-w300 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="验证码" maxlength="4" data-options="type:Numeric;paste:true;" spellcheck="false" autocomplete="off">
|
||||
<img class="z-pointer z-bd-rd5 z-mg-t-5" title="点击刷新验证码" onclick="this.src='service/vcode.jpg?bgColor=%231299ec&width=95&height=40&fontSize=20&yawp=true&t='+new Date().getTime();" src="service/vcode.jpg?bgColor=%231299ec&width=95&fontSize=20&height=40&yawp=true&t=${DateTimes.getDateTime17String()}">
|
||||
</td>
|
||||
</tr>
|
||||
</#if>
|
||||
<#if hasRememberCode>
|
||||
<tr class="zi-h40">
|
||||
<td class="z-px16 z-color-333">
|
||||
<input id="rememberCode" 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>
|
||||
|
||||
<input id="rememberPass" 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 id="login" class="z-button z-w300 z-h50 zi-px20 ${zmr_color_class}" onclick="doLogin()">登 录</button>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="z-h120" valign="top">
|
||||
<td class="z-text-center"><img src="ztmpl/zhiqim_manager/index_slogan_01.png"/></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="footer">${zmr_copyright}</div>
|
||||
</body>
|
||||
</html>
|
||||
|
Sonra Genişlik: | Yükseklik: | Boyut: 1.1 KiB |
|
Sonra Genişlik: | Yükseklik: | Boyut: 65 KiB |
|
Sonra Genişlik: | Yükseklik: | Boyut: 17 KiB |
@@ -0,0 +1,136 @@
|
||||
<!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)}
|
||||
</head>
|
||||
|
||||
<body>
|
||||
${Htmls.toCallFrame()}
|
||||
<!--顶部导航 -->
|
||||
<div class="topnav">
|
||||
<div id="logo" class="logo z-pointer z-text-left ${sessionUser.getSidebarClass()}" onclick="Z.L.href('${context.getRootPath("/"+zhiqim_manager+"/main.htm")}');">${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()}
|
||||
<#if ZmrOrgDao.getOrgList(request, sessionUser.getOperatorCode()).size() gt 1>
|
||||
<div class="nav z-text-center z-pointer z-pd-l20 z-pd-r20" style="max-width:200px;" onclick="Zmr.selectOrgDialog();">${ZmrOrgDao.getOrgName(request, sessionUser.getSelectedOrgId())}</div>
|
||||
</#if>
|
||||
<div class="nav z-w100 z-text-center z-pointer" onclick="Z.L.reload();">刷新</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="user-box">
|
||||
<div class="avatar-box z-text-center">
|
||||
<a href="${context.getRootPath("/"+zhiqim_manager+"/profile.htm")}" rel="nofollow">
|
||||
<img class="z-bd-rd50p z-w70 z-h70" src="${sessionUser.getAvatar50()}">
|
||||
</a>
|
||||
</div>
|
||||
<div class="z-pd-t20 z-text-center z-lh25 z-color-white">
|
||||
<span class="z-px13 z-bold">${sessionUser.getOperatorName()}</span><br>
|
||||
</div>
|
||||
</div>
|
||||
<!--栏目列表-->
|
||||
<#var topMenuCode = sessionUser.getSelectedTopMenuCodeOrFirstMenuCode(request, designatedPath)/>
|
||||
<#var childMenuCode = sessionUser.getSelectedSecondMenuCode(request, designatedPath)/>
|
||||
<#var topMenu = sessionUser.getTopMenuFirst()/>
|
||||
<ul id="${topMenu.getMenuCode()}">
|
||||
<li onclick="Z.L.href('${context.getRootPath("/"+zhiqim_manager+"/main.htm")}');" <#if childMenuCode == null>class="active"</#if>><i class="z-font z-mg-r10 z-house"></i>首页</li>
|
||||
<#for childMenu : sessionUser.getChildMenuList(topMenu.getMenuCode())>
|
||||
<li onclick="Z.L.href('${context.getRootPath(childMenu.getMenuUrl())}');" <#if childMenu.getMenuCode() == childMenuCode>class="active"</#if>><i class="z-font z-mg-r10 ${childMenu.getMenuIcon()}"></i>#{childMenu.getMenuName()}</li>
|
||||
</#for>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<!--主体-->
|
||||
<div id="mainbody" class="mainbody" style="margin-left:<#if sessionUser.hasSidebar()>200px<#else>0</#if>">
|
||||
<#include include/>
|
||||
</div>
|
||||
|
||||
<!-- 容器结束 -->
|
||||
</div>
|
||||
|
||||
<!--脚注-->
|
||||
<div class="footer">
|
||||
<div class="footer-wrap">${zmr_copyright}</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">旧 密 码:</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">新 密 码:</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>
|
||||
@@ -0,0 +1,61 @@
|
||||
<#--变量定义-->
|
||||
<#var zmr_theme.css = context.getRootPath("/ztmpl/zhiqim_manager/"+themeMain+"/elegant_2019010101.css")/>
|
||||
<#var zmr_theme.js = context.getRootPath("/ztmpl/zhiqim_manager/"+themeMain+"/elegant_2019010101.js")/>
|
||||
<#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 = "#f5f5f5"/>
|
||||
<#var zmr_thead_bgcolor = "#f5f5f5"/>
|
||||
<#var zmr_tr_odd_bgcolor = "#f6fafd"/>
|
||||
<#var zmr_tr_even_bgcolor = "#ffffff"/>
|
||||
<#var zmr_tr_over_bgcolor = "#f6fafd"/>
|
||||
<#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> >> <span style="color:#1e7eec;">${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-l15">当前位置:<a href="${context.getRootPath(ZmlContexts.parseZmlContent(request, ZmrParamDao.getMainIndexUrl(context)))}">首页</a> >> <a href="${parentUrl}">${parentName}</a> >> <span style="color:#0280d4;">${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-l15">当前位置:<a href="${context.getRootPath(ZmlContexts.parseZmlContent(request, ZmrParamDao.getMainIndexUrl(context)))}">首页</a> >> <a href="${parentUrl}">${parentName}</a> >> <a href="${lastUrl}">${lastName}</a> >> <span style="color:#0280d4;">${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>
|
||||
@@ -0,0 +1,102 @@
|
||||
@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:#1e7eec;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:#fff;background-color:#00a2eb;height:55px;z-index:99;}
|
||||
.topnav .logo {float:left;width:200px;height:55px;padding:0 10px;overflow:hidden;font-size:24px;line-height:55px;background-color:#008bd2;word-break:break-all;word-wrap:break-word;}
|
||||
.topnav a{color: #fff;}
|
||||
|
||||
.topnav .topnavleft {float:left;height:55px;}
|
||||
.topnav .topnavleft .bar {float:left;height:55px;line-height:55px;}
|
||||
.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:55px;}
|
||||
.topnav .topnavright .nav, .topnav .topnavright .nav-only {float:left;height:55px;line-height:55px;border-left:1px solid #008bd2;}
|
||||
.topnav .topnavright .nav:hover {background-color:#008bd2; color:#fff;}
|
||||
|
||||
/* container */
|
||||
.container {position:relative;width:100%;height:100%; min-height:1000px;overflow:hidden;background-color:#fff;}
|
||||
|
||||
.sidebar {position:relative; float: left; width:201px;min-height:1000px;height:100%;margin-bottom:-9999px;padding-bottom:9999px;overflow:hidden; background-color: #48525e;border-right:1px solid #d4e1ee;}
|
||||
.sidebar p{position:relative;float:left;width:200px; height:40px;line-height:40px;color:#fff; padding-left:15px; background-color:#48525e;border-bottom:1px solid #e5e5e5;cursor:pointer;}
|
||||
.sidebar p a{color:#fff;}
|
||||
.sidebar p .z-arrow{position:absolute;top:16px;right:10px;}
|
||||
.sidebar p .z-arrow>span{border-color:#fff transparent transparent;}
|
||||
.sidebar p:hover{background-color:#e3f0fc;border-top:1px #d1e6fa;border-bottom:1px #d1e6fa;}
|
||||
.sidebar p.active{background-color:#e3f0fc;border-top:1px #d1e6fa;border-bottom:1px #d1e6fa;}
|
||||
.sidebar p:hover>.z-arrow>span{border-color:#e3f0fc transparent transparent;}
|
||||
.sidebar p.active>.z-arrow>span{border-color:#e3f0fc transparent transparent;}
|
||||
|
||||
.sidebar ul{position:relative;width:200px;height:auto;border-bottom:1px solid #686f78;padding-top:15px;padding-bottom:20px; overflow:hidden;}
|
||||
.sidebar ul li{float:left;width:200px;height:40px;color:#fff;border-left:5px solid #48525e;background-color:#48525e;font-size:15px;line-height:40px;padding-left:25px;cursor:pointer;}
|
||||
.sidebar ul li a{color:#fff;}
|
||||
.sidebar ul li:hover{color:#bfc1c4;}
|
||||
.sidebar ul li.active{background-color:#363c41;color:#fff;border-left:5px solid #008bd2;color:#008bd2;}
|
||||
.sidebar ul li.active i{color:#008bd2;}
|
||||
|
||||
.sidebar .user-box {border-bottom:1px solid #686f78;padding-bottom:10px;}
|
||||
.sidebar .user-box .avatar-box {position: relative;height:80px;background: #3a434c;z-index:2;}
|
||||
.sidebar .user-box .avatar-box a{position: absolute;width:80px;height:80px;left:60px;bottom:-20px;}
|
||||
.sidebar .user-box .avatar-box a img {border-radius: 50%;box-shadow: 0 0 0 8px #3a434c;}
|
||||
|
||||
.sidebar i{color:#9ba0a7;font-size:18px;}
|
||||
|
||||
/* 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:200px;}
|
||||
.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;}
|
||||
@@ -0,0 +1,114 @@
|
||||
/*
|
||||
* 版权所有 (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("#mainbody").css("margin-left", 201);
|
||||
}
|
||||
else
|
||||
{
|
||||
$sidebar.hide();
|
||||
Z("#logo").hide();
|
||||
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);
|
||||
@@ -0,0 +1,35 @@
|
||||
<#var zmr_sidebar_width = 0/>
|
||||
<#var zmr_topnav_height = 0/>
|
||||
<!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)}
|
||||
<#if request.getPathInContext() == "/"+zhiqim_manager+"/param.htm" || request.getPathInContext() == "/"+zhiqim_manager+"/themeMain.htm">
|
||||
<script>
|
||||
if (top.location == self.location)
|
||||
{//从其他主题切换过来的时候
|
||||
top.location.href = "${context.getRootPath("/"+zhiqim_manager+"/main.htm")}";
|
||||
}
|
||||
</script>
|
||||
</#if>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
${Htmls.toCallFrame()}
|
||||
<div class="container">
|
||||
<div class="mainbody" style="margin-left:0;">
|
||||
<!-- 主体开始 -->
|
||||
|
||||
<#include include/>
|
||||
|
||||
<!-- 主体结束 -->
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,174 @@
|
||||
<!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="Zin.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()}
|
||||
<#if ZmrOrgDao.getOrgList(request, sessionUser.getOperatorCode()).size() gt 1>
|
||||
<div class="nav z-text-center z-pointer z-pd-l20 z-pd-r20" style="max-width:200px;" onclick="Zmr.selectOrgDialog();">${ZmrOrgDao.getOrgName(request, sessionUser.getSelectedOrgId())}</div>
|
||||
</#if>
|
||||
<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="user-box">
|
||||
<div class="avatar-box z-text-center">
|
||||
<a href="javascript:void(0);" onclick="Zin.doClickChildMenu(this, '${context.getRootPath("/"+zhiqim_manager+"/profile.htm")}');" data-text="个人中心" rel="nofollow">
|
||||
<img class="z-bd-rd50p z-w70 z-h70" src="${sessionUser.getAvatar50()}">
|
||||
</a>
|
||||
</div>
|
||||
<div class="z-pd-t20 z-text-center z-lh25 z-color-white">
|
||||
<span class="z-px14 z-bold">${sessionUser.getOperatorName()}</span><br>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 栏目列表 -->
|
||||
<#var topMenuCode = sessionUser.getSelectedTopMenuCodeOrFirstMenuCode(request, sessionUser.getMainUrl())/>
|
||||
<#var childMenuCode = sessionUser.getSelectedSecondMenuCode(request, sessionUser.getMainUrl())/>
|
||||
<#var topMenu = sessionUser.getTopMenuFirst()/>
|
||||
<ul id="${topMenu.getMenuCode()}">
|
||||
<li id="menu_index" onclick="Zin.selectIframeTab('menu_index');" <#if childMenuCode == null>class="active"</#if>><i class="z-font z-mg-r10 z-house"></i>首页</li>
|
||||
<#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>
|
||||
</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">旧 密 码:</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">新 密 码:</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>
|
||||
@@ -0,0 +1,174 @@
|
||||
<!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()}
|
||||
${Scripts.src("/ztmpl/zhiqim_manager/zhiqim_webgl_three.js")}
|
||||
<style>
|
||||
body{color:#333;background-color:#1d72c0;}
|
||||
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{position:fixed;width:100%;height:40px;line-height:40px;background:rgba(255,255,255,0.2);z-index:20;}
|
||||
.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:520px;padding:20px;background:rgba(255,255,255,0.6);}
|
||||
.input{color:#333;font-size:18px;border:2px solid #fffafa;border-radius:5px;height:50px;line-height:50px;text-indent:10px;font-family:Consolas,"微软雅黑";}
|
||||
.input.verificationCode{letter-spacing:4px;}
|
||||
</style>
|
||||
<script>
|
||||
Z.onload(function()
|
||||
{//默认焦点
|
||||
if (Z("#operatorCode").val() == "")
|
||||
Z("#operatorCode").focus();
|
||||
else if (Z("#operatorPass").val() == "")
|
||||
Z("#operatorPass").focus();
|
||||
else if (Z("#verificationCode").val() == null)
|
||||
Z("#verificationCode").focus();
|
||||
else
|
||||
Z("#operatorCode").focus();
|
||||
|
||||
var three = new Z.WebGLThree();
|
||||
three.threePath = "/ztmpl/zhiqim_manager/three.js";
|
||||
three.elem = "z-webgl-canvas";
|
||||
three.execute();
|
||||
|
||||
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()
|
||||
{//登陆
|
||||
var operatorCode = Z("#operatorCode").val();
|
||||
if (Z.V.isEmptyBlank(operatorCode))
|
||||
{//用户名和密码必填
|
||||
Z.failure("用户名不能为空!",function(){
|
||||
Z("#operatorCode").focus();
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
var operatorPass = Z("#operatorPass").val();
|
||||
if (Z.V.isEmptyBlank(operatorPass))
|
||||
{//用户名和密码必填
|
||||
Z.failure("密码不能为空!",function(){
|
||||
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("verificationCode", verificationCode);
|
||||
|
||||
<#if hasRememberCode>
|
||||
ajax.addParam("rememberCode", Z("#rememberCode")[0].checked);
|
||||
</#if>
|
||||
<#if hasRememberPass>
|
||||
ajax.addParam("rememberPass", Z("#rememberPass")[0].checked);
|
||||
</#if>
|
||||
|
||||
ajax.setFailureAlertRecovery();
|
||||
ajax.setSuccessLocationResponse();
|
||||
ajax.setLoading("login", "正在登录...", {disabled:true,recovery:false});
|
||||
ajax.execute();
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="header">
|
||||
<div class="z-float-left z-w400 z-lh40 z-pd-l10 z-color-white">欢迎登录 [ ${context.getContextName()} ]!</div>
|
||||
<div class="z-float-right z-text-right z-w200 z-lh40 z-pd-r10"></div>
|
||||
</div>
|
||||
<div class="z-absolute-center-middle z-bd-rd10 login" style="height:<#if hasVerificationCode && hasRememberCode>420<#elseif hasVerificationCode>390<#elseif hasRememberCode>350<#else>320</#if>px">
|
||||
<input type="text" class="z-hidden-fixed"/>
|
||||
<input type="password" class="z-hidden-fixed"/>
|
||||
<div class="z-px24 z-color-333 z-pd-b10 z-pd-l20"> <i class="z-font z-customer"></i> 用户登录</div>
|
||||
<div style="padding:25px 40px 20px 30px;">
|
||||
<table class="z-table z-h100p z-h70-tr z-pd5">
|
||||
<tr>
|
||||
<td><input id="operatorCode" class="z-w400 input" placeholder="用户名" value="#{operatorCode}" maxlength="16" spellcheck="false" autocomplete="off"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><input id="operatorPass" type="password" class="z-w100p input" placeholder="密码" value="#{operatorPass}" maxlength="16" spellcheck="false" autocomplete="off"></td>
|
||||
</tr>
|
||||
<#if hasVerificationCode>
|
||||
<tr>
|
||||
<td>
|
||||
<input id="verificationCode" type="text" class="input verificationCode" style="width:270px" placeholder="验证码" maxlength="4" data-options="type:Numeric;paste:true;" spellcheck="false" autocomplete="off">
|
||||
<img class="z-pointer z-bd-rd5 z-mg-t-5" title="点击刷新验证码" onclick="this.src='service/vcode.jpg?bgColor=%231299ec&width=120&height=50&fontSize=20&yawp=true&t='+new Date().getTime();" src="service/vcode.jpg?bgColor=%231299ec&width=120&height=50&fontSize=20&yawp=true&t=${DateTimes.getDateTime17String()}">
|
||||
</td>
|
||||
</tr>
|
||||
</#if>
|
||||
<#if hasRememberCode>
|
||||
<tr class="zi-h40">
|
||||
<td class="z-px16 z-color-333">
|
||||
<input id="rememberCode" 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>
|
||||
|
||||
<input id="rememberPass" 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 id="login" class="z-button z-xlarge z-w100p z-h50 zi-px20 ${zmr_color_class}" onclick="doLogin()">登 录</button></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div class="footer">${zmr_copyright}</div>
|
||||
<div id="z-webgl-canvas" class="z-absolute z-w100p z-h100p" style="z-index:-1;"></div>
|
||||
</body>
|
||||
</html>
|
||||
|
Sonra Genişlik: | Yükseklik: | Boyut: 40 KiB |
|
Sonra Genişlik: | Yükseklik: | Boyut: 22 KiB |
@@ -0,0 +1,138 @@
|
||||
<!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)}
|
||||
</head>
|
||||
|
||||
<body>
|
||||
${Htmls.toCallFrame()}
|
||||
<!--顶部导航 -->
|
||||
<div class="topnav">
|
||||
<div id="logo" class="logo z-pointer z-text-left ${sessionUser.getSidebarClass()}" onclick="Z.L.href('${context.getRootPath("/"+zhiqim_manager+"/main.htm")}');">${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()}
|
||||
<#if ZmrOrgDao.getOrgList(request, sessionUser.getOperatorCode()).size() gt 1>
|
||||
<div class="nav z-text-center z-pointer z-pd-l20 z-pd-r20" style="max-width:200px;" onclick="Zmr.selectOrgDialog();">${ZmrOrgDao.getOrgName(request, sessionUser.getSelectedOrgId())}</div>
|
||||
</#if>
|
||||
<div class="nav z-w100 z-text-center z-pointer" onclick="Z.L.reload();">刷新</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 z-bd-b">
|
||||
<div class="z-float-left z-w50 z-h50 z-mg-r10"><img class="z-bd-rd50p z-bd z-pd3 z-bg-white z-w50 z-h50" src="${sessionUser.getAvatar50()}"></div>
|
||||
<div class="z-float-left z-lh25">
|
||||
<span class="z-px14 z-bold">${sessionUser.getOperatorName()}</span><br>
|
||||
<span class="z-color-666"><a href="${context.getRootPath("/"+zhiqim_manager+"/profile.htm")}">个人中心</a></span>
|
||||
</div>
|
||||
</div>
|
||||
<!--栏目列表-->
|
||||
<#var topMenuCode = sessionUser.getSelectedTopMenuCodeOrFirstMenuCode(request, designatedPath)/>
|
||||
<#var childMenuCode = sessionUser.getSelectedSecondMenuCode(request, designatedPath)/>
|
||||
<#for topMenu : sessionUser.getTopMenuList()>
|
||||
<#if sessionUser.hasChildMenu(topMenu.getMenuCode())>
|
||||
<p><i class="z-font z-px18 ${topMenu.getMenuIcon()}"></i><span class="z-mg-l5">#{topMenu.getMenuName()}</span><i class="z-arrow z-px5"><span></span></i></p>
|
||||
<ul id="${topMenu.getMenuCode()}" style="display: <#if topMenu.getMenuCode() == topMenuCode>block<#else>none</#if>;">
|
||||
<#for childMenu : sessionUser.getChildMenuList(topMenu.getMenuCode())>
|
||||
<li onclick="Z.L.href('${context.getRootPath(ZmlContexts.parseZmlContent(request, childMenu.getMenuUrl()))}');" <#if childMenu.getMenuCode() == childMenuCode>class="active"</#if>>#{childMenu.getMenuName()}</li>
|
||||
</#for>
|
||||
</ul>
|
||||
<#elseif Validates.isNotEmptyBlank(topMenu.getMenuUrl())>
|
||||
<p onclick="Z.L.href('${context.getRootPath(ZmlContexts.parseZmlContent(request, topMenu.getMenuUrl()))}');"><i class="z-font z-px18 z-mg-r5 ${topMenu.getMenuIcon()}"></i>#{topMenu.getMenuName()}</p>
|
||||
</#if>
|
||||
</#for>
|
||||
</div>
|
||||
|
||||
<!--主体-->
|
||||
<div id="mainbody" class="mainbody" style="margin-left:<#if sessionUser.hasSidebar()>200px<#else>0</#if>">
|
||||
<#include include/>
|
||||
</div>
|
||||
|
||||
<!-- 容器结束 -->
|
||||
</div>
|
||||
|
||||
<!--脚注-->
|
||||
<div class="footer">
|
||||
<div class="footer-wrap">${zmr_copyright}</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">旧 密 码:</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">新 密 码:</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>
|
||||
@@ -0,0 +1,53 @@
|
||||
<#--变量定义-->
|
||||
<#var zmr_theme.css = context.getRootPath("/ztmpl/zhiqim_manager/"+themeMain+"/fresh_2019010101.css")/>
|
||||
<#var zmr_theme.js = context.getRootPath("/ztmpl/zhiqim_manager/"+themeMain+"/fresh_2019010101.js")/>
|
||||
<#var zmr_color_class = "z-cyan"/>
|
||||
<#var zmr_sidebar_width = 200/>
|
||||
<#var zmr_topnav_height = 55/>
|
||||
<#var zmr_breadcrumb_height = 40/>
|
||||
<#var zmr_title_bgcolor = "#f5f5f5"/>
|
||||
<#var zmr_thead_bgcolor = "#f5f5f5"/>
|
||||
<#var zmr_tr_odd_bgcolor = "#f6ffff"/>
|
||||
<#var zmr_tr_even_bgcolor = "#ffffff"/>
|
||||
<#var zmr_tr_over_bgcolor = "#f6ffff"/>
|
||||
<#var zmr_tfoot_bgcolor = "#ffffff"/>
|
||||
<#--面包屑 -->
|
||||
<#function zhiqim_manager_breadcrumb_name(name)>
|
||||
<div class="breadcrumb z-h40 z-lh40 z-bg-white z-bd-b">
|
||||
<span class="z-pd-l20">${name}</span>
|
||||
</div>
|
||||
</#function>
|
||||
<#--面包屑一级栏目 -->
|
||||
<#function zhiqim_manager_breadcrumb(name)>
|
||||
<div class="breadcrumb z-h40 z-lh40 z-bg-white z-bd-b">
|
||||
<i class="z-font z-house z-pd-l20 z-px18"></i><span class="z-mg-l3"><a href="${context.getRootPath(ZmlContexts.parseZmlContent(request, ZmrParamDao.getMainIndexUrl(context)))}">首页</a> >> <span style="color:#4bacc6;">${name}</span></span>
|
||||
</div>
|
||||
</#function>
|
||||
<#--面包屑二级栏目 -->
|
||||
<#function zhiqim_manager_breadcrumb_parent(parentUrl, parentName, name)>
|
||||
<div class="breadcrumb z-h40 z-lh40 z-bg-white z-bd-b">
|
||||
<i class="z-font z-house z-pd-l15 z-px18"></i><span class="z-mg-l3"><a href="${context.getRootPath(ZmlContexts.parseZmlContent(request, ZmrParamDao.getMainIndexUrl(context)))}">首页</a> >> <a href="${parentUrl}">${parentName}</a> >> <span style="color:#4bacc6;">${name}</span></span>
|
||||
</div>
|
||||
</#function>
|
||||
<#--面包屑三级栏目 -->
|
||||
<#function zhiqim_manager_breadcrumb_parent_last(parentUrl, parentName, lastUrl, lastName, name)>
|
||||
<div class="breadcrumb z-h40 z-lh40 z-bg-white z-bd-b">
|
||||
<i class="z-font z-house z-pd-l15 z-px18"></i><span class="z-mg-l3"><a href="${context.getRootPath(ZmlContexts.parseZmlContent(request, ZmrParamDao.getMainIndexUrl(context)))}">首页</a> >> <a href="${parentUrl}">${parentName}</a> >> <a href="${lastUrl}">${lastName}</a> >> <span style="color:#4bacc6;">${name}</span></span>
|
||||
</div>
|
||||
</#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-h40">
|
||||
<td><div class="z-float-right z-mg-r10">${PagingStd.toHtmlClick(result, jsMethod)}</div></td>
|
||||
</tr>
|
||||
</table>
|
||||
</#function>
|
||||
@@ -0,0 +1,55 @@
|
||||
@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:#00ba8b;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:#fff;background-color:#01adae;height:55px;z-index:99;}
|
||||
.topnav .logo {float:left;width:200px;height:55px;padding:0 10px;overflow:hidden;font-size:24px;line-height:55px;background-color:#01a2a3;word-break:break-all;word-wrap:break-word;}
|
||||
.topnav a{color: #fff;}
|
||||
|
||||
.topnav .topnavleft {float:left;line-height:55px;}
|
||||
.topnav .topnavleft .bar {float:left;height:55px;line-height:55px;}
|
||||
.topnav .topnavleft .first {border-left:1px solid #01a2a3;}
|
||||
.topnav .topnavleft .nav, .topnav .topnavleft .nav-only {float:left;height:55px;line-height:55px;border-right:1px solid #01a2a3;}
|
||||
.topnav .topnavleft .nav:hover{background-color:#01a2a3; color:#fff;}
|
||||
|
||||
.topnav .topnavright {float:right;height:55px;}
|
||||
.topnav .topnavright .nav, .topnav .topnavright .nav-only {float:left;height:55px;line-height:55px;border-left:1px solid #01a2a3;}
|
||||
.topnav .topnavright .nav:hover {background-color:#01a2a3; color:#fff;}
|
||||
|
||||
/* container */
|
||||
.container {position:relative;width:100%;height:100%; min-height:1000px;overflow:hidden;}
|
||||
|
||||
.sidebar {position:relative; float: left; width:200px;min-height:1000px;height:100%;margin-bottom:-9999px;padding-bottom:9999px;overflow:hidden; background-color: #f2f2f2; border-right:1px solid #d8dce5;}
|
||||
.sidebar p{position:relative;float:left;width:200px; height:40px;line-height:40px;color:#333; padding-left:15px; border-bottom:1px solid #e5e5e5;cursor:pointer;}
|
||||
.sidebar p a{color:#333;}
|
||||
.sidebar p .z-arrow{position:absolute;top:16px;right:10px;}
|
||||
.sidebar p .z-arrow>span{border-color:#f2f2f2 transparent transparent;}
|
||||
.sidebar p:hover{background-color:#fafafa;border-bottom:1px solid #e5e5e5;}
|
||||
.sidebar p.active{background-color:#fafafa;border-bottom:1px solid #e5e5e5;}
|
||||
.sidebar p:hover>.z-arrow>span{border-color:#fafafa transparent transparent;}
|
||||
.sidebar p.active>.z-arrow>span{border-color:#fafafa transparent transparent;}
|
||||
|
||||
.sidebar ul{position:relative;width:200px;height:auto;overflow:hidden;}
|
||||
.sidebar ul li{float:left;width:200px;height:40px;background-color:#fff;color:#333; line-height:40px;padding-left:35px;border-bottom:1px solid #e5e5e5;border-left:3px solid transparent;cursor:pointer;}
|
||||
.sidebar ul li a{color:#333;}
|
||||
.sidebar ul li:hover{background-color:#01adae;border-left:3px solid #ffa000;color:#fff;}
|
||||
.sidebar ul li.active{background-color:#fff;border-left:3px solid #01adae;color:#01adae;}
|
||||
|
||||
/* mainbody */
|
||||
.mainbody{margin-left:200px;}
|
||||
.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;}
|
||||
@@ -0,0 +1,120 @@
|
||||
/*
|
||||
* 版权所有 (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("#mainbody").css("margin-left", 200);
|
||||
}
|
||||
else
|
||||
{
|
||||
$sidebar.hide();
|
||||
Z("#logo").hide();
|
||||
Z("#mainbody").css("margin-left", 0);
|
||||
}
|
||||
|
||||
Z.ajax().setContextPath(Zmr.contextPath)
|
||||
.setClassName("sessionUser").setMethodName("setSidebar").addParam(!$sidebar.isHide())
|
||||
.execute();
|
||||
};
|
||||
|
||||
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;});
|
||||
});
|
||||
};
|
||||
|
||||
Zmr.doClickChildMenu = function(elem, menuUrl)
|
||||
{//点击二级栏目
|
||||
Z(elem).parent().parent().find("li").removeClass("active");
|
||||
Z(elem).addClass("active");
|
||||
Z.L.href(menuUrl, window.mainFrame);
|
||||
};
|
||||
|
||||
Zmr.calcMainbodyHeight = function()
|
||||
{//计算主体高度
|
||||
var height = Z(document).clientHeight()-55;//-55为topnav的高度
|
||||
Z("#container").css("height", height);
|
||||
Z("#mainbody").css("height", height);
|
||||
}
|
||||
|
||||
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");
|
||||
}
|
||||
};
|
||||
|
||||
/**************************************************/
|
||||
//定义初始化滑动菜单
|
||||
/**************************************************/
|
||||
Z.onload(function()
|
||||
{//菜单隐藏展开
|
||||
Zmr.addTopMenuClick();
|
||||
});
|
||||
|
||||
//END
|
||||
})(zhiqim);
|
||||
@@ -0,0 +1,35 @@
|
||||
<#var zmr_sidebar_width = 0/>
|
||||
<#var zmr_topnav_height = 0/>
|
||||
<!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)}
|
||||
<#if request.getPathInContext() == "/"+zhiqim_manager+"/param.htm" || request.getPathInContext() == "/"+zhiqim_manager+"/themeMain.htm">
|
||||
<script>
|
||||
if (top.location == self.location)
|
||||
{//从其他主题切换过来的时候
|
||||
top.location.href = "${context.getRootPath("/"+zhiqim_manager+"/main.htm")}";
|
||||
}
|
||||
</script>
|
||||
</#if>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
${Htmls.toCallFrame()}
|
||||
<div class="container">
|
||||
<div class="mainbody" style="margin-left:0;">
|
||||
<!-- 主体开始 -->
|
||||
|
||||
<#include include/>
|
||||
|
||||
<!-- 主体结束 -->
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,138 @@
|
||||
<!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)}
|
||||
${Styles.htmlOverflowHidden()}
|
||||
<script>
|
||||
Zmr.contextPath = "${context.getContextPath()}";
|
||||
Z.onload(Zmr.calcMainbodyHeight);
|
||||
Z(window).resize(Zmr.calcMainbodyHeight);
|
||||
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<!--顶部导航 -->
|
||||
<div class="topnav">
|
||||
<div id="logo" class="logo z-pointer z-text-left ${sessionUser.getSidebarClass()}" onclick="Z.L.href('${context.getRootPath("/"+zhiqim_manager+"/welcome.htm")}', mainFrame)">${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()}
|
||||
<#if ZmrOrgDao.getOrgList(request, sessionUser.getOperatorCode()).size() gt 1>
|
||||
<div class="nav z-text-center z-pointer z-pd-l20 z-pd-r20" style="max-width:200px;" onclick="Zmr.selectOrgDialog();">${ZmrOrgDao.getOrgName(request, sessionUser.getSelectedOrgId())}</div>
|
||||
</#if>
|
||||
<div class="nav z-w100 z-text-center z-pointer" onclick="Z.L.reload(mainFrame);">刷新</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 z-bd-b">
|
||||
<div class="z-float-left z-w50 z-h50 z-mg-r10"><img class="z-bd-rd50p z-bd z-pd3 z-bg-white z-w50 z-h50" src="${sessionUser.getAvatar50()}"></div>
|
||||
<div class="z-float-left z-lh25">
|
||||
<span class="z-px14 z-bold">${sessionUser.getOperatorName()}</span><br>
|
||||
<span class="z-color-666"><a href="${context.getRootPath("/"+zhiqim_manager+"/profile.htm")}" target="mainFrame">个人中心</a></span>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 栏目列表 -->
|
||||
<#var topMenuCode = sessionUser.getSelectedTopMenuCodeOrFirstMenuCode(request, designatedPath)/>
|
||||
<#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"><span></span></i></p>
|
||||
<ul id="${topMenu.getMenuCode()}" style="display: <#if topMenu.getMenuCode() == topMenuCode>block<#else>none</#if>;">
|
||||
<#for childMenu : sessionUser.getChildMenuList(topMenu.getMenuCode())>
|
||||
<li onclick="Zmr.doClickChildMenu(this, '${context.getRootPath(childMenu.getMenuUrl())}');" <#if context.getRootPath(childMenu.getMenuUrl()) == sessionUser.getMainUrl()>class="active"</#if>>#{childMenu.getMenuName()}</li>
|
||||
</#for>
|
||||
</ul>
|
||||
<#elseif Validates.isNotEmptyBlank(topMenu.getMenuUrl())>
|
||||
<p onclick="Z.L.href('${context.getRootPath(topMenu.getMenuUrl())}', mainFrame);"><i class="z-font z-px18 z-mg-r5 ${topMenu.getMenuIcon()}"></i>#{topMenu.getMenuName()}</p>
|
||||
</#if>
|
||||
</#for>
|
||||
</div>
|
||||
|
||||
<!--主体-->
|
||||
<div id="mainbody" class="mainbody" style="margin-left:<#if sessionUser.hasSidebar()>200px<#else>0</#if>">
|
||||
<iframe id="mainFrame" name="mainFrame" frameborder="0" scrolling="auto" src="${sessionUser.getMainUrl()}" height="100%" width="100%"></iframe>
|
||||
</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">旧 密 码:</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">新 密 码:</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>
|
||||
@@ -0,0 +1,183 @@
|
||||
<!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-color:#fff;background-image: url(ztmpl/zhiqim_manager/index_bg_01.jpg);background-repeat: no-repeat;background-size: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{position:fixed;width:100%;}
|
||||
.header .toplogobg{width:316px;height:58px;background-image: url(ztmpl/zhiqim_manager/04_fresh/index_toplogobg.png);background-repeat: no-repeat;}
|
||||
.header .toplogobg span{line-height:55px;color:#fff;font-size:25px;}
|
||||
.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{background-color: #ffffff;width:700px;}
|
||||
.input{color:#666;font-size:20px;border:2px solid #cecfcf;border-radius:5px;height:50px;line-height:50px;text-indent:10px;font-family:Consolas,"微软雅黑";}
|
||||
.input:focus{border-color:#009899;}
|
||||
.input.verificationCode{letter-spacing:4px;}
|
||||
</style>
|
||||
<script>
|
||||
Z.onload(function()
|
||||
{//默认焦点
|
||||
if (Z("#operatorCode").val() == "")
|
||||
Z("#operatorCode").focus();
|
||||
else if (Z("#operatorPass").val() == "")
|
||||
Z("#operatorPass").focus();
|
||||
else if (Z("#verificationCode").val() == null)
|
||||
Z("#verificationCode").focus();
|
||||
else
|
||||
Z("#operatorCode").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()
|
||||
{//登陆
|
||||
var operatorCode = Z("#operatorCode").val();
|
||||
if (Z.V.isEmptyBlank(operatorCode))
|
||||
{//用户名和密码必填
|
||||
Z.failure("用户名不能为空!",function(){
|
||||
Z("#operatorCode").focus();
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
var operatorPass = Z("#operatorPass").val();
|
||||
if (Z.V.isEmptyBlank(operatorPass))
|
||||
{//用户名和密码必填
|
||||
Z.failure("密码不能为空!",function(){
|
||||
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("verificationCode", verificationCode);
|
||||
|
||||
<#if hasRememberCode>
|
||||
ajax.addParam("rememberCode", Z("#rememberCode")[0].checked);
|
||||
</#if>
|
||||
<#if hasRememberPass>
|
||||
ajax.addParam("rememberPass", Z("#rememberPass")[0].checked);
|
||||
</#if>
|
||||
|
||||
ajax.setFailureAlertRecovery();
|
||||
ajax.setSuccessLocationResponse();
|
||||
ajax.setLoading("login", "正在登录...", {disabled:true,recovery:false});
|
||||
ajax.execute();
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="header">
|
||||
<div class="z-float-center z-w1200">
|
||||
<div class="z-float-left"><img src="ztmpl/zhiqim_manager/04_fresh/index_topbgleft.png" style="width:442px;"></div>
|
||||
<div class="z-float-left toplogobg z-text-center"><span>${context.getContextName()}</span></div>
|
||||
<div class="z-float-right"><img src="ztmpl/zhiqim_manager/04_fresh/index_topbgright.png" style="width:442px;"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="z-absolute-center-middle login" style="height:<#if hasVerificationCode && hasRememberCode>410<#elseif hasVerificationCode>360<#elseif hasRememberCode>350<#else>300</#if>px">
|
||||
<table class="z-table z-h100p">
|
||||
<tr>
|
||||
<td width="187" valign="bottom" class="z-text-center" style="background-color:#01adae;"><img src="ztmpl/zhiqim_manager/index_slogan_02.png"></td>
|
||||
<td width="513" valign="top">
|
||||
<input type="text" class="z-hidden-fixed"/>
|
||||
<input type="password" class="z-hidden-fixed"/>
|
||||
<div class="z-mg-l40">
|
||||
<table class="z-table z-h70-tr z-pd5 z-color-white">
|
||||
<tr>
|
||||
<td class="z-px20 z-color-666 z-mg-t10">用户登录</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><input id="operatorCode" class="z-w400 input" placeholder="用户名" value="#{operatorCode}" maxlength="16" spellcheck="false" autocomplete="off"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><input id="operatorPass" type="password" class="z-w400 input" placeholder="密码" value="#{operatorPass}" maxlength="16" spellcheck="false" autocomplete="off"></td>
|
||||
</tr>
|
||||
<#if hasVerificationCode>
|
||||
<tr>
|
||||
<td>
|
||||
<input id="verificationCode" type="text" class="z-w300 input verificationCode" placeholder="验证码" value="" maxlength="4" data-options="type:Numeric;paste:true;" 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=48&fontSize=20&yawp=true&t='+new Date().getTime();" src="service/vcode.jpg?bgColor=%231299ec&width=95&height=48&fontSize=20&yawp=true&t=${DateTimes.getDateTime17String()}">
|
||||
</td>
|
||||
</tr>
|
||||
</#if>
|
||||
<#if hasRememberCode>
|
||||
<tr class="zi-h40">
|
||||
<td class="z-px16 z-color-gray">
|
||||
<input id="rememberCode" 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>
|
||||
|
||||
<input id="rememberPass" 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 id="login" class="z-button z-w400 z-h50 zi-px20 ${zmr_color_class}" onclick="doLogin()">登 录</button>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="footer">${zmr_copyright}</div>
|
||||
</body>
|
||||
</html>
|
||||
|
Sonra Genişlik: | Yükseklik: | Boyut: 1.6 KiB |
|
Sonra Genişlik: | Yükseklik: | Boyut: 1.6 KiB |
|
Sonra Genişlik: | Yükseklik: | Boyut: 2.0 KiB |
|
Sonra Genişlik: | Yükseklik: | Boyut: 73 KiB |
|
Sonra Genişlik: | Yükseklik: | Boyut: 17 KiB |
@@ -0,0 +1,125 @@
|
||||
<!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)}
|
||||
</head>
|
||||
|
||||
<body>
|
||||
${Htmls.toCallFrame()}
|
||||
<!--顶部导航 -->
|
||||
<div class="topnav">
|
||||
<div id="logo" class="logo z-pointer z-text-left" onclick="Z.L.href('${context.getRootPath("/"+zhiqim_manager+"/welcome.htm")}')">${context.getAttribute("name")}</div>
|
||||
<div class="topnavleft">
|
||||
<#var topMenuCode = sessionUser.getSelectedTopMenuCodeOrFirstMenuCode(request, designatedPath)/>
|
||||
<#var childMenuCode = sessionUser.getSelectedSecondMenuCode(request, designatedPath)/>
|
||||
<#for topMenu : sessionUser.getTopMenuList()>
|
||||
<#if sessionUser.hasChildMenu(topMenu.getMenuCode())>
|
||||
<div class="dropdown nav">#{topMenu.getMenuName()}<i class="z-float-right z-font z-arrowhead-down z-px10"></i>
|
||||
<ul id="${topMenu.getMenuCode()}" class="subnav">
|
||||
<#for childMenu : sessionUser.getChildMenuList(topMenu.getMenuCode())>
|
||||
<li class="z-relative<#if childMenu.getMenuCode() == childMenuCode> active</#if>" onclick="location.href='${context.getRootPath(childMenu.getMenuUrl())}'">#{childMenu.getMenuName()}</li>
|
||||
</#for>
|
||||
</ul>
|
||||
</div>
|
||||
<#elseif Validates.isNotEmptyBlank(topMenu.getMenuUrl())>
|
||||
<div class="single nav" onclick="Z.L.href('${context.getRootPath(topMenu.getMenuUrl())}');">#{topMenu.getMenuName()}</div>
|
||||
</#if>
|
||||
</#for>
|
||||
${zhiqim_manager_topnav_left_defined()}
|
||||
</div>
|
||||
<div class="topnavright">
|
||||
${zhiqim_manager_topnav_right_defined()}
|
||||
<#if ZmrOrgDao.getOrgList(request, sessionUser.getOperatorCode()).size() gt 1>
|
||||
<div class="nav z-text-center z-pointer z-pd-l20 z-pd-r20" style="max-width:200px;" onclick="Zmr.selectOrgDialog();">${ZmrOrgDao.getOrgName(request, sessionUser.getSelectedOrgId())}</div>
|
||||
</#if>
|
||||
<div class="nav z-w80 z-text-center z-pointer" onclick="Z.L.href('${context.getRootPath("/"+zhiqim_manager+"/profile.htm")}');"><img class="z-bd-rd50p z-w40 z-h40" src="${sessionUser.getAvatar50()}"></div>
|
||||
<div class="nav z-w100 z-text-center z-pointer" onclick="Z.L.reload();">刷新</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="mainbody" class="mainbody">
|
||||
<#include include/>
|
||||
<!--内容结束-->
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<!--脚注-->
|
||||
<div class="footer">
|
||||
<div class="footer-wrap">${zmr_copyright}</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">旧 密 码:</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">新 密 码:</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>
|
||||
@@ -0,0 +1,61 @@
|
||||
<#--变量定义-->
|
||||
<#var zmr_theme.css = context.getRootPath("/ztmpl/zhiqim_manager/"+themeMain+"/flatwise_2019010101.css")/>
|
||||
<#var zmr_theme.js = context.getRootPath("/ztmpl/zhiqim_manager/"+themeMain+"/flatwise_2019010101.js")/>
|
||||
<#var zmr_color_class = "z-blue"/>
|
||||
<#var zmr_sidebar_width = 0/>
|
||||
<#var zmr_topnav_height = 55/>
|
||||
<#var zmr_breadcrumb_height = 40/>
|
||||
<#var zmr_title_bgcolor = "#f5f5f5"/>
|
||||
<#var zmr_thead_bgcolor = "#f5f5f5"/>
|
||||
<#var zmr_tr_odd_bgcolor = "#f6fafd"/>
|
||||
<#var zmr_tr_even_bgcolor = "#ffffff"/>
|
||||
<#var zmr_tr_over_bgcolor = "#f6fafd"/>
|
||||
<#var zmr_tfoot_bgcolor = "#ffffff"/>
|
||||
<#--面包屑 -->
|
||||
<#function zhiqim_manager_breadcrumb_name(name)>
|
||||
<#if !ZmrParamDao.isThemeFrame(context)>
|
||||
<div class="breadcrumb z-h40 z-lh40 z-bd-b" style="background-color:#eaedf1;">
|
||||
<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-bd-b" style="background-color:#eaedf1;">
|
||||
<span class="z-pd-l20">当前位置:<a href="${context.getRootPath(ZmlContexts.parseZmlContent(request, ZmrParamDao.getMainIndexUrl(context)))}">首页</a> >> <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-bd-b" style="background-color:#eaedf1;">
|
||||
<span class="z-pd-l20">当前位置:<a href="${context.getRootPath(ZmlContexts.parseZmlContent(request, ZmrParamDao.getMainIndexUrl(context)))}">首页</a> >> <a href="${parentUrl}">${parentName}</a> >> <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-bd-b" style="background-color:#eaedf1;">
|
||||
<span class="z-pd-l20">当前位置:<a href="${context.getRootPath(ZmlContexts.parseZmlContent(request, ZmrParamDao.getMainIndexUrl(context)))}">首页</a> >> <a href="${parentUrl}">${parentName}</a> >> <a href="${lastUrl}">${lastName}</a> >> <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>
|
||||
@@ -0,0 +1,91 @@
|
||||
@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:#fff;background-color:#00a2eb;height:55px;z-index:99;}
|
||||
.topnav .logo {float:left;width:200px;height:55px;padding:0 10px;overflow:hidden;font-size:24px;line-height:55px;background-color:#2a80b9;word-break:break-all;word-wrap:break-word;}
|
||||
.topnav a{color: #fff;}
|
||||
|
||||
.topnav .topnavleft {float:left;height:55px;line-height:55px;}
|
||||
.topnav .topnavleft .nav, .topnav .topnavleft .nav-only{float:left;min-width:120px;height:55px;border-right:1px solid #008bd2;padding:0 10px;cursor:pointer;font-size:14px;line-height:55px;text-align:center;}
|
||||
.topnav .topnavleft .nav.active{background-color:#008bd2;color:#fff;}
|
||||
.topnav .topnavleft .nav:hover{background-color:#fff;color:#000;}
|
||||
|
||||
.topnav .topnavright {float:right;height:55px;}
|
||||
.topnav .topnavright .nav, .topnav .topnavright .nav-only {float:left;height:55px;line-height:55px;border-left:1px solid #008bd2;}
|
||||
.topnav .topnavright .nav:hover {background-color:#008bd2; color:#fff;}
|
||||
|
||||
/* [下拉] */
|
||||
.topnav .topnavleft .dropdown{display:inline-block;width:130px;}
|
||||
.topnav .topnavleft .dropdown:hover .subnav{display: block;}
|
||||
.topnav .topnavleft .dropdown:hover i:before{content:"\f08b";}
|
||||
.topnav .topnavleft .subnav{position:absolute;top:55px;margin-left:-10px;width:260px;display:none;background-color:#fff;box-shadow: 0px 5px 10px 0px rgba(0,0,0,0.2);}
|
||||
.topnav .topnavleft .subnav li{float:left;color:#333;width:130px;padding: 12px 16px;text-decoration:none;display: block;}
|
||||
.topnav .topnavleft .subnav li:hover,.topnav .topnavleft .subnav li.active{background-color: #f1f1f1;color:#078ce9;}
|
||||
.topnav .topnavleft .single{display:inline-block;width:130px;}
|
||||
.topnav .topnavleft .single:hover {background-color:#008bd2; color:#fff;}
|
||||
|
||||
/* container */
|
||||
.container {position:relative;width:100%;height:100%; min-height:1000px;overflow:hidden;}
|
||||
|
||||
/*[替换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;}
|
||||
|
||||
/* iframenav */
|
||||
.iframenav{position:relative;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{position:relative;}
|
||||
.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;}
|
||||
@@ -0,0 +1,68 @@
|
||||
/*
|
||||
* 版权所有 (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.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");
|
||||
}
|
||||
};
|
||||
|
||||
//END
|
||||
})(zhiqim);
|
||||
@@ -0,0 +1,35 @@
|
||||
<#var zmr_sidebar_width = 0/>
|
||||
<#var zmr_topnav_height = 0/>
|
||||
<!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)}
|
||||
<#if request.getPathInContext() == "/"+zhiqim_manager+"/param.htm" || request.getPathInContext() == "/"+zhiqim_manager+"/themeMain.htm">
|
||||
<script>
|
||||
if (top.location == self.location)
|
||||
{//从其他主题切换过来的时候
|
||||
top.location.href = "${context.getRootPath("/"+zhiqim_manager+"/main.htm")}";
|
||||
}
|
||||
</script>
|
||||
</#if>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
${Htmls.toCallFrame()}
|
||||
<div class="container">
|
||||
<div class="mainbody" style="margin-left:0;">
|
||||
<!-- 主体开始 -->
|
||||
|
||||
<#include include/>
|
||||
|
||||
<!-- 主体结束 -->
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,164 @@
|
||||
<!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" onclick="Zin.selectIframeTab('menu_index');">${context.getAttribute("name")}</div>
|
||||
<div class="topnavleft" id="sidebar">
|
||||
<#var topMenuCode = sessionUser.getSelectedTopMenuCodeOrFirstMenuCode(request, designatedPath)/>
|
||||
<#var childMenuCode = sessionUser.getSelectedSecondMenuCode(request, designatedPath)/>
|
||||
<#for topMenu : sessionUser.getTopMenuList()>
|
||||
<#if sessionUser.hasChildMenu(topMenu.getMenuCode())>
|
||||
<div class="dropdown nav">#{topMenu.getMenuName()}<i class="z-float-right z-font z-arrowhead-down z-px10"></i>
|
||||
<ul id="${topMenu.getMenuCode()}" class="subnav">
|
||||
<#for childMenu : sessionUser.getChildMenuList(topMenu.getMenuCode())>
|
||||
<li class="z-relative<#if context.getRootPath(childMenu.getMenuUrl()) == sessionUser.getMainUrl()> active</#if>" onclick="Zin.doClickChildMenu(this, '${context.getRootPath(childMenu.getMenuUrl())}');" <#if context.getRootPath(childMenu.getMenuUrl()) == sessionUser.getMainUrl()>data-url="${context.getRootPath(childMenu.getMenuUrl())}"</#if>>#{childMenu.getMenuName()}</li>
|
||||
</#for>
|
||||
</ul>
|
||||
</div>
|
||||
<#elseif Validates.isNotEmptyBlank(topMenu.getMenuUrl())>
|
||||
<div class="single nav" onclick="Zin.doClickChildMenu(this, '${context.getRootPath(topMenu.getMenuUrl())}');" <#if context.getRootPath(topMenu.getMenuUrl()) == sessionUser.getMainUrl()>data-url="${context.getRootPath(topMenu.getMenuUrl())}"</#if>>#{topMenu.getMenuName()}</div>
|
||||
</#if>
|
||||
</#for>
|
||||
${zhiqim_manager_topnav_left_defined()}
|
||||
</div>
|
||||
<div class="topnavright">
|
||||
${zhiqim_manager_topnav_right_defined()}
|
||||
<#if ZmrOrgDao.getOrgList(request, sessionUser.getOperatorCode()).size() gt 1>
|
||||
<div class="nav z-text-center z-pointer z-pd-l20 z-pd-r20" style="max-width:200px;" onclick="Zmr.selectOrgDialog();">${ZmrOrgDao.getOrgName(request, sessionUser.getSelectedOrgId())}</div>
|
||||
</#if>
|
||||
<div class="nav z-w80 z-text-center z-pointer" onclick="Zin.doClickChildMenu(this, '${context.getRootPath("/"+zhiqim_manager+"/profile.htm")}');"><img class="z-bd-rd50p z-w40 z-h40" src="${sessionUser.getAvatar50()}"></div>
|
||||
<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 class="iframenav z-h40 z-lh40 z-bg-white z-bd-b">
|
||||
<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">
|
||||
<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">旧 密 码:</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">新 密 码:</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>
|
||||
@@ -0,0 +1,166 @@
|
||||
<!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-color:#fff;background-image: url(ztmpl/zhiqim_manager/index_bg_01.jpg);background-repeat: no-repeat;background-size: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{position:fixed;width:100%;height:40px;line-height:40px;background-color:#000; background:rgba(0,0,0,0.2); filter:alpha(opacity=20);}
|
||||
.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:520px;;border:1px solid #ccc;background-color: #ffffff;border-radius:10px;padding:20px;}
|
||||
.input{color:#666;font-size:20px;border:2px solid #cecfcf;border-radius:5px;height:50px;line-height:50px;text-indent:10px;font-family:Consolas,"微软雅黑";}
|
||||
.input.verificationCode{letter-spacing:4px;}
|
||||
</style>
|
||||
<script>
|
||||
Z.onload(function()
|
||||
{//默认焦点
|
||||
if (Z("#operatorCode").val() == "")
|
||||
Z("#operatorCode").focus();
|
||||
else if (Z("#operatorPass").val() == "")
|
||||
Z("#operatorPass").focus();
|
||||
else if (Z("#verificationCode").val() == null)
|
||||
Z("#verificationCode").focus();
|
||||
else
|
||||
Z("#operatorCode").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()
|
||||
{//登陆
|
||||
var operatorCode = Z("#operatorCode").val();
|
||||
if (Z.V.isEmptyBlank(operatorCode))
|
||||
{//用户名和密码必填
|
||||
Z.failure("用户名不能为空!",function(){
|
||||
Z("#operatorCode").focus();
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
var operatorPass = Z("#operatorPass").val();
|
||||
if (Z.V.isEmptyBlank(operatorPass))
|
||||
{//用户名和密码必填
|
||||
Z.failure("密码不能为空!",function(){
|
||||
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("verificationCode", verificationCode);
|
||||
|
||||
<#if hasRememberCode>
|
||||
ajax.addParam("rememberCode", Z("#rememberCode")[0].checked);
|
||||
</#if>
|
||||
<#if hasRememberPass>
|
||||
ajax.addParam("rememberPass", Z("#rememberPass")[0].checked);
|
||||
</#if>
|
||||
|
||||
ajax.setFailureAlertRecovery();
|
||||
ajax.setSuccessLocationResponse();
|
||||
ajax.setLoading("login", "正在登录...", {disabled:true,recovery:false});
|
||||
ajax.execute();
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="header">
|
||||
<div class="z-float-left z-w400 z-lh40 z-pd-l10 z-color-white">欢迎登录 [ ${context.getContextName()} ]!</div>
|
||||
<div class="z-float-right z-text-right z-w200 z-lh40 z-pd-r10"></div>
|
||||
</div>
|
||||
<div class="z-absolute-center-middle login" style="height:<#if hasVerificationCode && hasRememberCode>420<#elseif hasVerificationCode>390<#elseif hasRememberCode>350<#else>320</#if>px">
|
||||
<input type="text" class="z-hidden-fixed"/>
|
||||
<input type="password" class="z-hidden-fixed"/>
|
||||
<div class="z-px24 zi-bd-b z-color-666 z-pd-b10"><i class="z-font z-customer"></i> 用户登录</div>
|
||||
<div style="padding:25px 40px 20px 30px;">
|
||||
<table class="z-table z-h100p z-h70-tr z-pd5">
|
||||
<tr>
|
||||
<td><input id="operatorCode" class="z-w100p input" placeholder="用户名" value="#{operatorCode}" maxlength="16" spellcheck="false" autocomplete="off"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><input id="operatorPass" type="password" class="z-w100p input" placeholder="密码" value="#{operatorPass}" maxlength="16" spellcheck="false" autocomplete="off"></td>
|
||||
</tr>
|
||||
<#if hasVerificationCode>
|
||||
<tr>
|
||||
<td>
|
||||
<input id="verificationCode" class="input verificationCode" style="width:270px" placeholder="验证码" data-options="type:Numeric;paste:true;" maxlength="4" spellcheck="false" autocomplete="off">
|
||||
<img class="z-pointer z-bd-rd5 z-mg-t-5" title="点击刷新验证码" onclick="this.src='service/vcode.jpg?bgColor=%231299ec&width=120&height=50&fontSize=20&yawp=true&t='+new Date().getTime();" src="service/vcode.jpg?bgColor=%231299ec&width=120&height=50&fontSize=20&yawp=true&t=${DateTimes.getDateTime17String()}">
|
||||
</td>
|
||||
</tr>
|
||||
</#if>
|
||||
<#if hasRememberCode>
|
||||
<tr class="zi-h40">
|
||||
<td class="z-px16 z-color-gray">
|
||||
<input id="rememberCode" 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>
|
||||
|
||||
<input id="rememberPass" 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 class="z-button z-xlarge z-w100p z-h50 zi-px20 ${zmr_color_class}" onclick="doLogin()">登 录</button></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div class="footer">${zmr_copyright}</div>
|
||||
</body>
|
||||
</html>
|
||||
|
Sonra Genişlik: | Yükseklik: | Boyut: 74 KiB |
|
Sonra Genişlik: | Yükseklik: | Boyut: 14 KiB |
@@ -0,0 +1 @@
|
||||
<#include include/>
|
||||
@@ -0,0 +1,4 @@
|
||||
<#-- 主题变量和函数定义 -->
|
||||
<#include "/ztmpl/zhiqim_manager/"+themeIndex+"/define.htm"/>
|
||||
<#-- 主题首页定义 -->
|
||||
<#include "/ztmpl/zhiqim_manager/"+themeIndex+"/index.htm"/>
|
||||
|
Sonra Genişlik: | Yükseklik: | Boyut: 270 KiB |