feat: 添加静态资源文件和实体类

添加了多个图片、音频文件和CSS样式文件,包括QQ、微信相关图片和游戏素材。同时新增了跟进方式实体类gjfs.java和路径工具类PathUtils.java,用于项目功能扩展。

[新增文件包括]
- 图片资源:qq.png, wx.png, logo.jpg等
- 游戏素材:bg.png, CRM.png等
- 实体类:com/xzw/entity/gjfs.java
- 工具类:com/xzw/utils/PathUtils.java
This commit is contained in:
2025-06-17 13:26:03 +08:00
commit cedbe0687c
952 changed files with 476913 additions and 0 deletions
+13
View File
@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/>
<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/>
<classpathentry kind="con" path="org.eclipse.jst.server.core.container/org.eclipse.jst.server.tomcat.runtimeTarget/Apache Tomcat v8.5"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
<attributes>
<attribute name="owner.project.facets" value="java"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="build/classes"/>
</classpath>
+31
View File
@@ -0,0 +1,31 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>mycrm</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.wst.common.project.facet.core.builder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.wst.validation.validationbuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
</natures>
</projectDescription>
+12
View File
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry excluding="**/bower_components/*|**/node_modules/*|**/*.min.js" kind="src" path="WebContent"/>
<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.JRE_CONTAINER"/>
<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.WebProject">
<attributes>
<attribute name="hide" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.baseBrowserLibrary"/>
<classpathentry kind="output" path=""/>
</classpath>
@@ -0,0 +1,3 @@
eclipse.preferences.version=1
encoding//WebContent/static/css/styles.css=UTF-8
encoding/<project>=UTF-8
@@ -0,0 +1,10 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
org.eclipse.jdt.core.compiler.compliance=1.8
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
org.eclipse.jdt.core.compiler.release=enabled
org.eclipse.jdt.core.compiler.source=1.8
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">
<wb-module deploy-name="mycrm">
<wb-resource deploy-path="/" source-path="/WebContent" tag="defaultRootSource"/>
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src"/>
<property name="context-root" value="mycrm"/>
<property name="java-output-path" value="/mycrm/build/classes"/>
</wb-module>
</project-modules>
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<faceted-project>
<fixed facet="jst.web"/>
<fixed facet="java"/>
<fixed facet="wst.jsdt.web"/>
<installed facet="jst.web" version="3.1"/>
<installed facet="wst.jsdt.web" version="1.0"/>
<installed facet="java" version="1.8"/>
</faceted-project>
@@ -0,0 +1 @@
org.eclipse.wst.jsdt.launching.baseBrowserLibrary
@@ -0,0 +1 @@
Window
+3
View File
@@ -0,0 +1,3 @@
Manifest-Version: 1.0
Class-Path:
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+7
View File
@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
<display-name>mycrm</display-name>
<welcome-file-list>
<welcome-file>login.jsp</welcome-file>
</welcome-file-list>
</web-app>
+37
View File
@@ -0,0 +1,37 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!doctype html>
<html>
<head>
<title>HTML5超级玛丽</title>
<link rel="shortcut icon" href=favicon.png />
<link rel=stylesheet type="text/css" href="${basePath}static/cjml/VNkyVaVxUV.css">
<script type="text/javascript" src="${basePath}static/cjml/jquery.js"></script>
</head>
<body>
<h4>方向键:移动 &nbsp;&nbsp;S键:跳跃/进入&nbsp;&nbsp;A键:快跑/射击</h4>
<div class=spacing></div>
<div class=main>
<canvas id=canvas width=640 height=480>
<p style="text-align: center;">糟糕!您的浏览器不支持HTML5 Canvas,玩不了,请尝试用Firefox、Chrome、IE9浏览器</p>
</canvas>
<div class=spacing></div>
</div>
<script src="${basePath}static/cjml/wNGu2CtEMx.js"></script>
<script src="${basePath}static/cjml/QAuIByrkL.js"></script>
<script>$(document).ready(function() { new Enjine.Application().Initialize(new Mario.LoadingState(), 320, 240) });</script>
</body>
</html>
</body>
</html>
+26
View File
@@ -0,0 +1,26 @@
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>HTML5 Canvas实现会跳舞的时间动画DEMO演示</title>
<style>
* {
margin: 0;
padding: 0;
list-style: none;
border: none;
}
#zzsc {
width: 920px;
margin: 300px auto;
}
</style>
<script type="text/javascript" src="${basePath}static/dancetime/jquery-1.8.3.min.js"></script>
<script type="text/javascript" src="${basePath}static/dancetime/zzsc.js"></script>
</head>
<body>
<div id="zzsc"></div>
</body>
</html>
+53
View File
@@ -0,0 +1,53 @@
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@page import="java.text.SimpleDateFormat,java.util.Date"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>待开发界面</title>
<link rel="stylesheet" href="${basePath}static/css/gdwz/style.css">
<script type="text/javascript" src='${basePath}static/js/gdwz/jquery.min.js'></script>
<script type="text/javascript" src="${basePath}static/js/gdwz/index.js"></script>
</head>
<body>
<form style="float:right;">
<input type="BUTTON" name="FullScreen" value="全屏显示" onClick="window.open(document.location, 'big', 'fullscreen=yes')">
<input type="BUTTON" name="FullScreen" value="关闭窗口" onClick="window.close(document.location, 'small', 'fullscreen=no')">
</form>
<div style="margin: auto; text-align: center; margin-bottom: 30px;">
<a style="font-size:50px;color:red;"><span class="dateSpan" style="font-style: italic;color: red;"><%=new SimpleDateFormat("yyyy年MM月dd日").format(new Date()) %>&nbsp;&nbsp;<%=new SimpleDateFormat("E").format(new Date()) %></span>&nbsp;&nbsp;此地正在挖掘中...</a>
</div>
<div class="hide"></div>
<div class="choose" style="margin: auto; width: 1000px; display: block;">
<div style="line-height: 50px; float: left;">每日一思:</div>
<div class="options">
<span class="button">&nbsp;<div class="arrow-down"></div></span>
<ul id="scroller">
  <li>主动出击,抢得先机,提高效率</li>
  <li>今日的质量,明日的市场</li>
  <li>团队共作战人人出业绩</li>
  <li>一个疏忽百人忙,人人细心更顺畅</li>
  <li>用心服务,保证服务,品质满意客户需求</li>
  <li>找方法才能成功,找借口只会失败</li>
  <li>优服务高效益大发展</li>
  <li>爱岗敬业求实创新用心服务勇争一流</li>
  <li>今日看客,明日买主</li>
  <li>技巧提升,业绩攀升,持之以恒,业绩骄人</li>
  <li>全心全意为客户服务</li>
  <li>创一流服务品牌,树完美企业形象</li>
  <li>全员齐动,风起云涌,每日拜访,铭记心中</li>
  <li>客户至上,技术争先</li>
<li>要用我们的耐心诚心热情为客户服务</li>
</ul>
</div>
</div>
<div id="text"></div>
</body>
</html>
+24
View File
@@ -0,0 +1,24 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>HTML5/CSS3简易版俄罗斯方块游戏DEMO演示</title>
<link rel="stylesheet" href="${basePath}static/elsfk/css/style.css" media="screen" type="text/css" />
</head>
<body>
<div id="tetris">
<div id="info">
<div id="next_shape">asdfasdf</div>
<p id="level">Level: <span></span></p>
<p id="lines">Lines: <span></span></p>
<p id="score">Score: <span></span></p>
<p id="time">Time: <span></span></p>
</div>
<div id="canvas"></div>
</div>
<script src="${basePath}static/elsfk/js/index.js"></script>
<p style="color:red;font-size:18px;font-weight:bold">方向键进行移动和翻转</p>
</body>
</html>
@@ -0,0 +1,4 @@
22 serialization::archive 19 0 0 0 0 2 1 2
0 0 2 0 109 /volume1/资料/A--开发--A/JAVA 开发/JAVA项目/MyCrm项目开发/20250115/mycrm/WebContent/file/logo.jpg 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 19 1970-01-01 00:00:00 19 2025-01-15 01:28:14 19 2021-08-24 03:22:54 0.000000000e+00 0 0 0 0 0 0 0 180 180 7681 0 0 1 0 0 0 0 0 0 0 0 3 jpg 1 0 0 0 0 6 1 1
1 0 0 -99 0 0 0 0 0 10 1 1
2 0 0 0 0 0 0 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00
@@ -0,0 +1,4 @@
22 serialization::archive 19 0 0 0 0 2 1 2
0 0 2 0 113 /volume1/资料/A--开发--A/JAVA 开发/JAVA项目/MyCrm项目开发/20250115/mycrm/WebContent/file/nofujian.jpg 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 19 1970-01-01 00:00:00 19 2025-01-15 01:28:14 19 2021-09-06 00:19:39 0.000000000e+00 0 0 0 0 0 0 0 1920 1080 134207 0 0 0 0 0 0 0 0 0 0 0 3 jpg 1 0 0 0 0 6 1 1
1 0 0 -99 0 0 0 0 0 10 1 1
2 0 0 0 0 0 0 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00
@@ -0,0 +1,4 @@
22 serialization::archive 19 0 0 0 0 2 1 2
0 0 2 0 113 /volume1/资料/A--开发--A/JAVA 开发/JAVA项目/MyCrm项目开发/20250115/mycrm/WebContent/file/nofujian.png 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 19 1970-01-01 00:00:00 19 2025-01-15 01:28:14 19 2021-09-06 00:22:59 0.000000000e+00 0 0 0 0 0 0 0 1920 1080 44658 0 0 0 0 0 0 0 0 0 0 0 3 png 1 0 0 0 0 6 1 1
1 0 0 -99 0 0 0 0 0 10 1 1
2 0 0 0 0 0 0 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00
@@ -0,0 +1,4 @@
22 serialization::archive 19 0 0 0 0 2 1 2
0 0 2 0 107 /volume1/资料/A--开发--A/JAVA 开发/JAVA项目/MyCrm项目开发/20250115/mycrm/WebContent/file/qq.png 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 19 1970-01-01 00:00:00 19 2025-01-15 01:28:14 19 2021-10-13 00:00:00 0.000000000e+00 0 0 0 0 0 0 0 531 608 203951 0 0 0 0 0 0 0 0 0 0 0 3 png 1 0 0 0 0 6 1 1
1 0 0 -99 0 0 0 0 0 10 1 1
2 0 0 0 0 0 0 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00
@@ -0,0 +1,4 @@
22 serialization::archive 19 0 0 0 0 2 1 2
0 0 2 0 112 /volume1/资料/A--开发--A/JAVA 开发/JAVA项目/MyCrm项目开发/20250115/mycrm/WebContent/file/qq_logo.png 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 19 1970-01-01 00:00:00 19 2025-01-15 01:28:14 19 2021-10-12 00:06:47 0.000000000e+00 0 0 0 0 0 0 0 22 56 1470 0 0 0 0 0 0 0 0 0 0 0 3 png 1 0 0 0 0 6 1 1
1 0 0 -99 0 0 0 0 0 10 1 1
2 0 0 0 0 0 0 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00
@@ -0,0 +1,4 @@
22 serialization::archive 19 0 0 0 0 2 1 2
0 0 2 0 113 /volume1/资料/A--开发--A/JAVA 开发/JAVA项目/MyCrm项目开发/20250115/mycrm/WebContent/file/touxiang.jpg 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 19 1970-01-01 00:00:00 19 2025-01-15 01:28:14 19 2021-09-05 06:20:49 0.000000000e+00 0 0 0 0 0 0 0 1080 1080 257172 0 0 0 0 0 0 0 0 0 0 0 3 jpg 1 0 0 0 0 6 1 1
1 0 0 -99 0 0 0 0 0 10 1 1
2 0 0 0 0 0 0 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00
@@ -0,0 +1,4 @@
22 serialization::archive 19 0 0 0 0 2 1 2
0 0 2 0 107 /volume1/资料/A--开发--A/JAVA 开发/JAVA项目/MyCrm项目开发/20250115/mycrm/WebContent/file/wx.png 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 19 1970-01-01 00:00:00 19 2025-01-15 01:28:14 19 2021-10-12 02:25:10 0.000000000e+00 0 0 0 0 0 0 0 799 792 198346 0 0 0 0 0 0 0 0 0 0 0 3 png 1 0 0 0 0 6 1 1
1 0 0 -99 0 0 0 0 0 10 1 1
2 0 0 0 0 0 0 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00
@@ -0,0 +1,4 @@
22 serialization::archive 19 0 0 0 0 2 1 2
0 0 2 0 112 /volume1/资料/A--开发--A/JAVA 开发/JAVA项目/MyCrm项目开发/20250115/mycrm/WebContent/file/wx_logo.png 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 19 1970-01-01 00:00:00 19 2025-01-15 01:28:14 19 2021-10-12 01:56:38 0.000000000e+00 0 0 0 0 0 0 0 28 56 2792 0 0 0 0 0 0 0 0 0 0 0 3 png 1 0 0 0 0 6 1 1
1 0 0 -99 0 0 0 0 0 10 1 1
2 0 0 0 0 0 0 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00
Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 131 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 199 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 251 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 194 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

+23
View File
@@ -0,0 +1,23 @@
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>HTML5版Flappy Bird游戏在线演示</title>
<style>
#game_div, p {
width: 400px;
margin: auto;
margin-top: 20px;
}
</style>
<script type="text/javascript" src="${basePath}static/flappybird/phaser.min.js"></script>
<script type="text/javascript" src="${basePath}static/flappybird/main.js"></script>
</head>
<body>
<div id="game_div"> </div>
<p>敲击“空格键” 进行跳跃</p>
</body>
</html>
+80
View File
@@ -0,0 +1,80 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE HTML>
<head>
<meta charset="UTF-8">
<title>原生H5页面模拟APP侧滑删除效果</title>
<meta name="format-detection" content="telephone=no, email=no" />
<meta content="width=device-width, initial-scale=1,maximum-scale=1,maximum-scale=1, user-scalable=no" name="viewport">
<style>
*{ margin:0; padding:0; list-style:none}
body{ font-size:0.12rem; color:#666;}
.ui-loader{ display:none}
.my-address-list{overflow: hidden;}
.my-address-list .touch{background-color: #fff;border-bottom:0.01rem solid #bfc0c0;border-top:0.01rem solid #bfc0c0;margin-top:0.12rem;overflow: hidden;position: relative;}
.my-address-list .item.selected{-webkit-transform: translate(-18%,0);-webkit-transition:all 0.3s linear;}
.my-address-list .item{overflow: hidden;padding:0 0.15rem;width: 120%;-webkit-transition:all 0.3s linear;}
.my-address-list .item a{display:block;float: left; background-color: #ff0000;color: #fff;width: 20%;margin-left: 0.16rem;font-size: 0.14rem;text-align: center; text-decoration:none;}
.my-address-list .item .list{overflow: hidden;width: 2.7rem;font-size: 0.14rem;float: left;}
.my-address-list .item .list .name-phone{overflow: hidden;margin-top:0.05rem;}
.my-address-list .item .list .name-phone span{display: inline-block;}
.my-address-list .item .list .name-phone span.name{float: left;}
.my-address-list .item .list .name-phone span.phone{float: right;}
.my-address-list .item .list .address-info{margin:0.06rem 0;width: 100%;overflow: hidden;white-space: nowrap; text-overflow: ellipsis; -o-text-overflow: ellipsis;}
.my-address-list .item .icon2{overflow: hidden;float: left;margin-left:0.05rem;}
.my-address-list .item .icon2 i{width: 0.14rem;height: 0.14rem;margin-top:0.15rem;display: inline-block;background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAA0CAYAAACZ8ljPAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpEMjZBRDJENDIwOTgxMUU1QkQ1MjkzQTlGNEU3MTc0OCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpEMjZBRDJENTIwOTgxMUU1QkQ1MjkzQTlGNEU3MTc0OCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkQyNkFEMkQyMjA5ODExRTVCRDUyOTNBOUY0RTcxNzQ4IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkQyNkFEMkQzMjA5ODExRTVCRDUyOTNBOUY0RTcxNzQ4Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+0Y0qkAAAASpJREFUeNq81ksOgjAQANAyXsD7uVJXEjdSjyGuDCQmGo9o9ABYtJAgv3Z+kzQspuG10w4hyQ7ZyhhzMb+w+Tm/G8EAjy39uNnM7qTB/ygk0Rq0mij4M0u10G9JHVpqoe0ZaqGdS6OB9m6pNDrUFqIojCWkUJhKSqAwN4EbhZBJnCiETuRCIWZ1HCjEngEVBcxNo6CA7ScsCpSvBgYlgRiUDMaiLGAMygaGoklVVew/Sv7lxUBqDUYgJnZ6EgFFGh9Z0iMoYqkr9QMUsZK1pCEYGxiKsYAxGBmMxUggBkODWAwFUrBokIpFgRxYMMiFBYGc2CzIjU2CEtgoKIUNgpJYD5TGOqAG1oJaWB2L9+u9cc+rBtbsMNfCxtpCDGvAvRtPP7aSWB0fAQYAnk/ypwazBP8AAAAASUVORK5CYII=) no-repeat center center;background-size: 50%;}
.my-address-list .item .mark{background: rgba(0,0,0,0.4);position: absolute;left: 0;top: 0;right: 0;bottom: 0;z-index: 100;text-align: center;}
.my-address-list .item .mark span{display: inline-block;padding:0.05rem 0.1rem;color: #fff;border:0.02rem solid #fff;position: absolute;left: 50%;top: 50%;-webkit-transform: translate(-50%,-50%);-moz-transform: translate(-50%,-50%);transform: translate(-50%,-50%);}
</style>
<script>
var fontSize = 100;
var elm = document.documentElement;
elm.style.fontSize = fontSize * (elm.clientWidth/320) + 'px';
</script>
</head>
<body>
<!-- 代码部分begin -->
<div class="my-address-list" id="my-address-list">
<div id="cc-loading"><span></span>玩命加载中...</div>
</div>
<script src="${basePath}static/hddelete/js/jquery.min.js"></script>
<script src="${basePath}static/hddelete/js/jquery.mobile-1.3.2.min.js"></script>
<script>
$(function(){
document.getElementById('cc-loading').style.display = 'none';
for(var i=0;i<10;i++){
var cont = '<div class="touch" id="touch'+i+'"><div class="item" userAddressId="1"><div class="list">';
cont += '<div class="name-phone"><span class="name">收货人姓名</span>';
cont += '<span class="phone">12345678912</span></div>';
cont += '<div class="address-info">这里是收货人姓名</div>';
cont += '</div><div class="icon2"><i></i></div><a href="javascript:;" class="remove">删除</a></div></div>';
$('#my-address-list').append(cont);
}
$(".item").each(function(){
var h = $(this).find(".list").height();
$(this).find("a").height(h+"px").css("line-height",h+"px");
$(this).find(".icon2").height(h+"px");
})
$(".item").on("swipeleft",function(){
$(this).addClass('selected').parents(".touch").siblings().find(".item").removeClass('selected');
$(this).find("a.remove").on("click",function(){
var touchId = $(this).parents(".touch").attr("id");
//执行删除效果
$("#"+touchId).css("border","0");
$("#"+touchId).stop().animate({
height:"0",
margin:"0"
},300,function(){
$(this).remove();
})
})
}).on("swiperight",function(){
$(this).parents(".touch").find(".item").removeClass('selected');
})
})
</script>
<!-- 代码部分end -->
</body>
</html>
+123
View File
@@ -0,0 +1,123 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-touch-fullscreen" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="full-screen" content="yes"><!--UC强制全屏-->
<meta name="x5-fullscreen" content="true"><!--QQ强制全屏-->
<meta name="browsermode" content="application"><!--UC应用模式-->
<meta name="x5-page-mode" content="app"><!--QQ应用模式-->
<style type="text/css">
*{
margin: 0;
overflow: hidden;
}
canvas {
display: block;
cursor: none;
}
</style>
<title>你电脑被黑了(点击或按F11全屏)</title>
<script type="text/javascript">
window.onload=function(){
var c = document.getElementById("c");
var ctx = c.getContext("2d");
//使画布全屏
c.height = window.innerHeight;
c.width = window.innerWidth;
//要掉落的文字
var txts = "0123456789";
//转换为数组
txts = txts.split("");
var font_size = 16;
var columns = c.width/font_size; //计算纵队数
var drops = [];
//初始值
for(var x = 0; x < columns; x++)
drops[x] = 1;
//窗体大小发生改变
window.onresize = function(){
//使绘图区域全屏
c.height = window.innerHeight;
c.width = window.innerWidth;
columns = c.width/font_size; //计算纵队数
for(var x = 0; x < columns; x++)
drops[x] = 1;
}
//进入全屏
function requestFullScreen() {
var de = document.documentElement;
if (de.requestFullscreen) {
de.requestFullscreen();
} else if (de.mozRequestFullScreen) {
de.mozRequestFullScreen();
} else if (de.webkitRequestFullScreen) {
de.webkitRequestFullScreen();
}
}
//添加点击监听事件(点击全屏)
document.body.addEventListener('click',function(){
requestFullScreen(); //调用全屏
eleImage.requestPointerLock(); // 锁定鼠标
},false);
//绘制下落的文字
function draw()
{
//让背景逐渐由透明到不透明
ctx.fillStyle = "rgba(0, 0, 0, 0.05)";
ctx.fillRect(0, 0, c.width, c.height);
ctx.fillStyle = "#0F0"; //文本颜色(绿色)
ctx.font = font_size + "px arial";
//逐行输出文字
for(var i = 0; i < drops.length; i++)
{
//随机取要输出的文字
var text = txts[Math.floor(Math.random()*txts.length)];
//输出文字,注意坐标的计算
ctx.fillText(text, i*font_size, drops[i]*font_size);
//如果绘满一屏或随机数大于0.95(此数可自行调整,效果会不同)
if(drops[i]*font_size > c.height || Math.random() > 0.95)
drops[i] = 0;
//用于Y轴坐标增加
drops[i]++;
}
}
setInterval(draw, 33);//定时执行
}
</script>
</head>
<body>
<canvas id="c">很抱歉,您的浏览器不支持该功能!</canvas>
<!-- 百度统计 -->
<script>
var _hmt = _hmt || [];
(function() {
var hm = document.createElement("script");
hm.src = "https://hm.baidu.com/hm.js?ea4269d8a00e95fdb9ee61e3041a8f98";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();
</script>
</body>
</html>
File diff suppressed because one or more lines are too long
+139
View File
@@ -0,0 +1,139 @@
<%@page contentType="text/html; charset=utf-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<html style="height: 100%">
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="${basePath}static/css/styles.css" />
<link rel="stylesheet" href="${basePath}static/css/font-awesome-4.7.0/css/font-awesome.min.css" />
<script src="${basePath}static/js/jquery.min.js" type="text/javascript"></script>
<script src="${basePath}static/js/jquery-validation-1.14.0/jquery.validate.js" type="text/javascript"></script>
<script src="${basePath}static/js/jquery-validation-1.14.0/localization/messages_zh.js" type="text/javascript"></script>
<script src="${basePath}static/js/click.js"></script>
<script type="text/javascript" src="${basePath}static/easyui/jquery.easyui.min.js"></script>
<style>
.masthead:hover {
/*图片抖动*/
-webkit-animation:bounce 1s .1s ease both;
-moz-animation:bounce 1s .1s ease both;
}
@-webkit-keyframes bounce {
0% {
-webkit-transform:scale(1)
}
10%, 20% {
-webkit-transform:scale(0.8) rotate(-2deg)
}
30%, 50%, 70%, 90% {
-webkit-transform:scale(1.1) rotate(2deg)
}
40%, 60%, 80% {
-webkit-transform:scale(1.1) rotate(-2deg)
}
100% {
-webkit-transform:scale(1) rotate(0)
}
}
.masthead:hover {
/*鼠标划过周围出现阴影*/
-webkit-transform: scale(1);
-moz-transform: scale(1);
transform: scale(1);
-moz-box-shadow:0 3px 20px #888;
-webkit-box-shadow:0 3px 20px #888;
-webkit-transition:.3s;
-moz-transition:.3s;
-o-transition:.3s;
-ms-transition:.3s;
}
@media screen and (max-width:1000px){
*{
font-size:30px;
}
</style>
<script type="text/javascript">
//上传图片按钮事件
$("#upload-photo-btn").click(function(){
});
function uploadPhoto(){
var action = $("#uploadForm").attr('action');
var pos = action.indexOf('Id');
if(pos != -1){
action = action.substring(0,pos-1);
}
$("#uploadForm").attr('action',action+'&Id='+$("#set-photo-id").val());
$("#uploadForm").submit();
setTimeout(function(){
var message = $(window.frames["photo_target"].document).find("#message").text();
$.messager.alert("消息提醒",message,"info");
$("#edit_photo").attr("src", "${basePath}user?method=getPhoto_user&Id="+$("#set-photo-id").val());
}, 1500)
}
</script>
</head>
<body style="height: 100%; margin: 0">
<div class="add">
<table class="tablelist" style="width: 50%;margin-left:50px">
<c:if test="${type == 2}">
<tr>
<td width="120px">ID</td>
<td>${user.id}</td>
</tr>
<tr>
<td width="120px">用户名</td>
<td>${user.dm}</td>
</tr>
<tr>
<td width="120px">姓名</td>
<td>${user.name}</td>
</tr>
</c:if>
<c:if test="${type == 1}">
<tr>
<td width="120px">ID</td>
<td>${user.id}</td>
</tr>
<tr>
<td width="120px">用户名</td>
<td>${user.dm}</td>
</tr>
<tr>
<td width="120px">姓名</td>
<td>${user.name}</td>
</tr>
</c:if>
</table>
<c:if test="${type == 1}">
<h1></h1><br/>
<h1>头像:</h1>
<img id="edit_photo" alt="照片" style="max-width: 200px; max-height: 200px;margin-left:100px;" title="照片" src="${basePath}user?method=getPhoto_user&ID=${user.id}&TYPE=${type}" class="masthead" />
<form id="uploadForm" method="post" enctype="multipart/form-data" action="${basePath}user?method=SetPhoto" target="mainFrame">
<!-- StudentServlet?method=SetPhoto -->
<input type="hidden" name="Id" id="set-photo-id" value="${user.id}">
<input class="easyui-filebox" name="photo" data-options="prompt:'选择照片'" style="width:200px;">
<input id="upload-photo-btn" onClick="uploadPhoto()" class="easyui-linkbutton" style="width: 50px; height: 40px;" type="button" value="上传"/>
</form>
</c:if>
</div>
</body>
</html>
+115
View File
@@ -0,0 +1,115 @@
<%@page contentType="text/html; charset=utf-8" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>博力同创CRM客户管理系统 --记录客户跟进记录、团队管理</title>
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<!-- <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=0.5, maximum-scale=2.0, user-scalable=no" /> -->
<meta name="viewport" content="width=device-width,user-scalable=no, minimum-scale=0.4, initial-scale=0.8" />
<link rel="stylesheet" href="${basePath}static/css/loginnew.css" />
<link rel="icon" href="static/img/CRM.png">
<!-- 引入 j/query和jquery.cookie-->
<script type="text/javascript" src="${basePath}static/js/cookies/jquery-3.5.1.min.js"></script>
<script type="text/javascript" src="${basePath}static/js/cookies/jquery.cookie.js"></script>
<!-- 记住代码脚本实现 -->
<script type="text/javascript">
<!-- 页面一加载完就执行getCookie()方法 -->
$(function(){
getCookie();
})
//设置Cookie方法
function setCookie(){
var username = $('#username').val();
var password = $('#password').val();
//获取记住密码是否选中
var flag = $("#remember").is(":checked");
if(flag){//如果选中-->记住密码登录
//cookie有效时间7天,也可以设置为永久,把时间去掉就行
$.cookie("remember","true",{expires:30});
$.cookie("username",username.trim(),{ expires: 30 });
$.cookie("password",password.trim(),{ expires: 30 });
}else{//如果没选中-->不记住密码登录
//设置cookie有效时间-1,直接将浏览器端原先保存的cookie失效
$.cookie("remember","false",{expires:-1});
$.cookie("password", "",{expires:-1});
$.cookie("username", "",{expires:-1});
}
}
//获取cookie方法,自动填充用户名和密码
function getCookie(){
var remember = $.cookie("remember");
//获取cookie中的用户名
var username = $.cookie("username");
//获取cookie中的登陆密码
var password = $.cookie("password");
//记住密码为true的话把“记住用户名和密码”复选框勾选住
if(remember){
$("#remember").attr("checked","true");
}
//用户名存在的话把用户名填充到用户名文本框
if(username!=""){
$("#username").val(username);
}else{
$("#username").val("");
}
if(password!=""){//密码存在的话把密码填充到密码文本框
$("#password").val(password);
}else{
$("#password").val("");
}
}
//登录按钮点击事件
function login(){
//调用setCookie()方法
setCookie();
//发送登陆请求,在此省略
}
</script>
</head>
<body>
<div class="login">
<div class="title">博力同创CRM客户管理系统</div>
<div id="darkbannerwrap"></div>
<form action="login" method="post">
<div class="u">
<input type="text" class="uname" name="userName" id="username" placeholder="用户名" required oninvalid="setCustomValidity('用户名不能为空!');" oninput="setCustomValidity('');" />
</div>
<hr class="hr15">
<div class="p">
<input type="password" class="pwd" name="password" id="password" placeholder="密码" required oninvalid="setCustomValidity('密码不能为空!');" oninput="setCustomValidity('');" />
</div>
<hr class="hr15">
<div class="r">
<span style="padding-right:10px">记住我</span>
<input type="checkbox" class="remember" name="remember" id="remember" />
</div>
<hr class="hr15">
<div class="s">
<select name="type">
<option value="">请选择登陆类型</option>
<option value="1" selected="selected">员工</option>
<option value="2" >管理员</option>
</select>
</div>
<hr class="hr15">
<div class="l">
<button type="submit" onclick="login()">登录</button>
</div>
<hr class="hr15">
<div class="tips">
${error}
</div>
</form>
</div>
<div class="Copyright" >Copyright&nbsp;©&nbsp;2021&nbsp;<a href="https://www.bltcxj.cn/" style="color:blue;text-decoration: none;">新疆博力同创</a>&nbsp;版权所有</div>
</body>
</html>
+193
View File
@@ -0,0 +1,193 @@
<%@page contentType="text/html; charset=utf-8" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="user-scalable=no">
<title>CRM客户管理系统 --记录客户跟进记录、团队管理</title>
<link rel="stylesheet" href="${basePath}static/css/login.css" />
<!-- 引入 j/query和jquery.cookie-->
<script type="text/javascript" src="${basePath}static/js/cookies/jquery-3.5.1.min.js"></script>
<script type="text/javascript" src="${basePath}static/js/cookies/jquery.cookie.js"></script>
<script src="${basePath}static/js/vector.js"></script>
<script type="text/javascript" src="${basePath}static/js/web-zdzh/current-device.min.js"></script>
<script type="text/javascript" src="${basePath}static/js/web-zdzh/defalut.js"></script>
<!-- 记住代码脚本实现 -->
<script type="text/javascript">
<!-- 页面一加载完就执行getCookie()方法 -->
$(function(){
getCookie();
})
//设置Cookie方法
function setCookie(){
var username = $('#username').val();
var password = $('#password').val();
//获取记住密码是否选中
var flag = $("#remember").is(":checked");
if(flag){//如果选中-->记住密码登录
//cookie有效时间7天,也可以设置为永久,把时间去掉就行
$.cookie("remember","true",{expires:30});
$.cookie("username",username.trim(),{ expires: 30 });
$.cookie("password",password.trim(),{ expires: 30 });
}else{//如果没选中-->不记住密码登录
//设置cookie有效时间-1,直接将浏览器端原先保存的cookie失效
$.cookie("remember","false",{expires:-1});
$.cookie("password", "",{expires:-1});
$.cookie("username", "",{expires:-1});
}
}
//获取cookie方法,自动填充用户名和密码
function getCookie(){
var remember = $.cookie("remember");
//获取cookie中的用户名
var username = $.cookie("username");
//获取cookie中的登陆密码
var password = $.cookie("password");
//记住密码为true的话把“记住用户名和密码”复选框勾选住
if(remember){
$("#remember").attr("checked","true");
}
//用户名存在的话把用户名填充到用户名文本框
if(username!=""){
$("#username").val(username);
}else{
$("#username").val("");
}
if(password!=""){//密码存在的话把密码填充到密码文本框
$("#password").val(password);
}else{
$("#password").val("");
}
}
//登录按钮点击时间
function login(){
//调用setCookie()方法
setCookie();
//发送登陆请求,在此省略
}
</script>
</head>
<body>
<header class="header">
<!-- 动画展示区域 -->
<div id="victor-container"><div id="victor-output"></div></div>
<div class="welcome">
<p class="wel_p">— 欢迎使用 —</p>
<p><img class="web-title" src="static/img/web_title1.png" alt="CRM客户管理系统" draggable="false" onerror="onerror=null;src='static/img/web_title1.png'"></p>
</div>
</header>
<div class="login">
<div class="title">
<img alt="logo.png" src="static/img/CRM.png">
<span class="tt">CRM客户管理系统</span>
</div>
<form action="login" method="post">
<div class="u">
<span style="float:left;margin-bottom:10px;font-size:40px;">用户名</span>
<input type="text" class="uname" name="userName" id="username" placeholder="" />
</div>
<div class="p">
<span style="float:left;margin-bottom:10px;font-size:40px;">密&nbsp;&nbsp;&nbsp;码</span>
<input type="password" class="pwd" name="password" id="password" placeholder="" />
<div class="conceal" id='conceal'></div>
</div>
<div class="r">
<a style="float:left;">记住我&nbsp;&nbsp;</a>
<input type="checkbox" class="remember" name="remember" id="remember" />
</div>
<div class="s">
<select name="type">
<option value="">请选择登陆类型</option>
<option value="1" selected="selected">员工</option>
<option value="2" >管理员</option>
</select>
</div>
<div class="l">
<button type="submit" onclick="login()">登录</button>
</div>
<div class="t">
<a>建议使用谷歌&火狐浏览器访问</a>
</div>
</form>
<div class="tips">
${error}
</div>
</div>
<div class="Copyright" >Copyright&nbsp;©&nbsp;2021&nbsp;谢志文&nbsp;版权所有</div>
<script>
$(function() {
// 页面加载完毕后固定页头高度,防止在某些自动隐藏工具栏的移动浏览器上出现页面抖动现象
$(".header").height($(window).height());
// 初始化 传入dom id
var victor = new Victor("victor-container", "victor-output");
var theme = [
["#002c4a", "#005584"],
["#35ac03", "#3f4303"],
["#ac0908", "#cd5726"],
["#18bbff", "#00486b"]
];
var color = theme[fRandomBy(0, 3)];
victor(color).set();
// 监听滚动变化
$(window).scroll(function() {
if($(window).scrollTop() < 300) {
$(".mk-uptop").removeClass("show");
} else {
$(".mk-uptop").addClass("show");
}
});
// 返回顶部
$(".mk-uptop").click(function(){
$("html, body").animate({scrollTop:0}, "normal");
return false;
});
// 烦人的 CNZZ,输出一大堆错误信息、、清除掉!
console.clear();
console.log('%c谢志文开发制作', 'font-size: 60px;background: #EEE url(data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAIAAAAmkwkpAAAAHklEQVQImWNkYGBgYGD4//8/A5wF5SBYyAr+//8PAPOCFO0Q2zq7AAAAAElFTkSuQmCC) repeat; text-shadow: 5px -5px black, 4px -4px white; font-weight: bold; -webkit-text-fill-color: transparent; -webkit-background-clip: text;');
console.info('Version 2.0, Designed by xzwsys.com.');
console.error('版权所有,盗我代码还不留原始版权的人是小狗!→_→');
});
/*******************************
* 函数名:生成指定范围的随机数
* 输入: (under)下限 (over)上限
* 输出: 所需要的数值
*******************************/
function fRandomBy(under, over) {
switch(arguments.length) {
case 1: return parseInt(Math.random() * under + 1);
case 2: return parseInt(Math.random() * (over - under + 1) + under);
default: return 0;
}
}
</script>
<script>
var password = document.getElementById('password');
var anniu = document.getElementById('conceal');
anniu.addEventListener('click',function(){
if(password.type==='password')
{
password.setAttribute('type','text');
anniu.classList.add('yincang');
}else{
password.setAttribute('type','password');
anniu.classList.remove('yincang');
}
})
</script>
</body>
</html>
+488
View File
@@ -0,0 +1,488 @@
<%@page contentType="text/html; charset=utf-8" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<html>
<head>
<meta name="referrer" content="always" />
<meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"/>
<meta http-equiv="x-dns-prefetch-control" content="on">
<meta charset="utf-8">
<title>CRM客户管理系统 --记录客户跟进记录、团队管理</title>
<!-- 引入 j/query和jquery.cookie-->
<script type="text/javascript" src="${basePath}static/js/cookies/jquery-3.5.1.min.js"></script>
<script type="text/javascript" src="${basePath}static/js/cookies/jquery.cookie.js"></script>
<script src="${basePath}static/js/vector.js"></script>
<style type="text/css">
*{
margin: 0px;
padding: 0px;
font-family: "microsoft yahei";
}
html,body{
/*background-image: url(static/img/login-bg.png);
background-color: rgb(64,169,255);
background-size: 100% 100%;
height: 100%;*/
}
.login{
position: absolute;
background-color: rgba(255,255,255,1);
top: 10%;
right: 300px;
width: 500px;
height:700px;
border-radius: 0px;
/*box-shadow: 10px 10px 20px #8c8c8c;/*阴影*/*/
}
.title,.u,.p,.l,.tips,.s,.t,.r{
position: absolute;
width: 80%;
}
input{
height: 60px;
border:0px;
font-size:30px;
border-radius: 10px;
width: 100%;
padding-left: 60px;
box-sizing: border-box;
}
.uname{
background: url(static/img/login_user.png) no-repeat left;
background-size:30px 30px;
background-color: #f0f0f0;
background-position:20px;
}
.pwd{
background: url(static/img/login_pwd.png) no-repeat left;
background-size:30px 30px;
background-color: #f0f0f0;
background-position:20px;
}
button{
background-color: #467FE6;
height: 60px;
width: 100%;
border: 0px;
border-radius: 10px;
color: #FFF;
font-size: 30px;
}
select{
width: 100%;
height: 30px;
border-radius: 10px;
border:1px solid #e1e1e1;
font-size: 20px;
}
.title{
width: 100%;
top: 3%;
text-align: center;
font-size: 40px;
font-weight: bold;
padding-top: 10px;
box-sizing: border-box;
text-shadow: 3px 3px 3px #aaa;
}
.u{
top: 25%;
left: 10%;
}
.p{
top: 40%;
left: 10%;
}
.s{
top: 63%;
left: 10%;
}
.l{
top: 70%;
left: 10%;
border-radius: 10px;
}
.tips{
width: 100%;
top: 83%;
font-size: 25px;
color: red;
text-align: center;
}
.t{
width: 100%;
top: 90%;
font-size: 20px;
text-align: center;
opacity:0.5;/*透明度*/
text-shadow: 3px 3px 3px #aaa;
}
.r{
top: 55%;
left: 10%;
height: 30px;
font-size: 20px;
text-align: center;
}
.Copyright{
position: absolute;
text-align: center;
bottom:30px;
width:100%;
color:#ffffff;
opacity:0.5;/*透明度*/"
}
.title:hover{
/*图片抖动*/
-webkit-animation:bounce 1s .1s ease both;
-moz-animation:bounce 1s .1s ease both;
color:#2f54eb;
}
@-webkit-keyframes bounce {
0% {
-webkit-transform:scale(1)
}
10%, 20% {
-webkit-transform:scale(0.8) rotate(-2deg)
}
30%, 50%, 70%, 90% {
-webkit-transform:scale(1.1) rotate(2deg)
}
40%, 60%, 80% {
-webkit-transform:scale(1.1) rotate(-2deg)
}
100% {
-webkit-transform:scale(1) rotate(0)
}
}
.l:hover{
box-shadow: 10px 10px 20px #8c8c8c;/*阴影*/
border-radius: 20px;
}
button:hover{
border-radius: 20px;
font-weight:bold;
}
.uname:hover{
border:3px solid #adc6ff;
box-shadow: 0px 0px 20px #999999 inset;/*输入款 内阴影*/
}
.pwd:hover{
border:3px solid #adc6ff;
box-shadow: 0px 0px 20px #999999 inset;/*输入款 内阴影*/
}
.login:hover{
/*鼠标划过周围出现阴影*/
border-radius: 20px;
-webkit-transform: scale(1);
-moz-transform: scale(1);
transform: scale(1);
-moz-box-shadow:0 6px 30px #888;
-webkit-box-shadow:0 6px 30px #888;
-webkit-transition:.3s;
-moz-transition:.3s;
-o-transition:.3s;
-ms-transition:.3s;
/*box-shadow: 0px 0px 40px #808080 inset;/*输入款 内阴影*/*/
}
@media screen and (max-width:1500px){
body{
text-align:center;
}
#victor-container{
display:none;
}
.welcome{
display:none;
}
.login{
box-shadow: 10px 10px 20px #8c8c8c;
margin:0 auto;
right:auto;
top:30px;
width:100%;
height:90%;
}
.Copyright{
bottom:10px;
color:blue;
text-shadow: 3px 3px 3px #aaa;
}
}
/*密码显示与隐藏*/
.conceal{
position: absolute;
top: 15px;
right: 15px;
width: 30px;
height: 30px;
background-image: url(static/img/xianshi.png);
background-size: 100% 100%;
cursor: pointer;
}
.conceal.yincang{
background-image: url(static/img/yincang.png);
background-size: 100% 100%;
}
/* 头部动画区域 */
#victor-container {
background: #666;
z-index: -1;
position: absolute;
height: 100%;
width: 100%;
min-width: 500px;
}
#victor-output {
width: 100%;
height: 100%;
}
.welcome {
position: absolute;
top: 50%;
left: 0;
right: 0;
-webkit-transform: translateY(-50%);
-moz-transform: translateY(-50%);
-ms-transform: translateY(-50%);
-o-transform: translateY(-50%);
transform: translateY(-50%);
text-align: center;
}
.wel_p {
display: block;
margin-block-start: 1em;
margin-block-end: 1em;
margin-inline-start: 0px;
margin-inline-end: 0px;
-webkit-animation: dropIn 1s linear;
animation: dropIn 1s linear;
}
.welcome>p {
font-size: 40px;
color:#ffffff;
margin-bottom: 40px;
padding-right:40%;
}
/* 页面标题图 */
.web-title {
max-width: 80%;
-webkit-animation: fadeIn 1s linear;
animation: fadeIn 1s linear;
}
/* 上下移动动画效果 */
@-webkit-keyframes upDown {0% {-webkit-transform: translate3d(0, 0, 0); opacity: 1;}100% {-webkit-transform: translate3d(0, 8px, 0);opacity: 0;}}
@keyframes upDown {0% {transform: translate3d(0, 0, 0);opacity: 1;}100% {transform: translate3d(0, 8px, 0);opacity: 0;}}
/* 掉落的动画效果 */
@-webkit-keyframes dropIn {0% {opacity: 0;-webkit-transform: translate3d(0, -100px, 0)}100% {opacity: 0.8;-webkit-transform: translate3d(0, 0, 0)}}
@keyframes dropIn {0% {opacity: 0;transform: translate3d(0, -100px, 0)}100% {opacity: 0.8;transform: translate3d(0, 0, 0);}}
/* 逐渐出现的动画效果 */
@-webkit-keyframes fadeIn {from {opacity: 0;-webkit-transform: scale(.8) translateY(20px)}to {opacity: 1;-webkit-transform: scale(1) translateY(0)}}
@keyframes fadeIn {from {opacity: 0;transform: scale(.8) translateY(20px)}to {opacity: 1;transform: scale(1) translateY(0)}}
/*弹动效果*/
@-webkit-keyframes bounce {0% {-webkit-transform:scale(1)}10%, 20% {-webkit-transform:scale(0.8) rotate(-2deg)}30%, 50%, 70%, 90% {-webkit-transform:scale(1.1) rotate(2deg)}40%, 60%, 80% {-webkit-transform:scale(1.1) rotate(-2deg)}100% {-webkit-transform:scale(1) rotate(0)}}
/* 拉伸弹动效果 */
@keyframes rubberBand {0% {transform: scaleX(1)} 30% {transform: scale3d(1.25, .75, 1)}40% {transform: scale3d(.75, 1.25, 1)}50% {transform: scale3d(1.15, .85, 1)}65% {transform: scale3d(.95, 1.05, 1)}75% {transform: scale3d(1.05, .95, 1)}to {transform: scaleX(1)}}
</style>
<!-- 记住代码脚本实现 -->
<script type="text/javascript">
<!-- 页面一加载完就执行getCookie()方法 -->
$(function(){
getCookie();
})
//设置Cookie方法
function setCookie(){
var username = $('#username').val();
var password = $('#password').val();
//获取记住密码是否选中
var flag = $("#remember").is(":checked");
if(flag){//如果选中-->记住密码登录
//cookie有效时间7天,也可以设置为永久,把时间去掉就行
$.cookie("remember","true",{expires:30});
$.cookie("username",username.trim(),{ expires: 30 });
$.cookie("password",password.trim(),{ expires: 30 });
}else{//如果没选中-->不记住密码登录
//设置cookie有效时间-1,直接将浏览器端原先保存的cookie失效
$.cookie("remember","false",{expires:-1});
$.cookie("password", "",{expires:-1});
$.cookie("username", "",{expires:-1});
}
}
//获取cookie方法,自动填充用户名和密码
function getCookie(){
var remember = $.cookie("remember");
//获取cookie中的用户名
var username = $.cookie("username");
//获取cookie中的登陆密码
var password = $.cookie("password");
//记住密码为true的话把“记住用户名和密码”复选框勾选住
if(remember){
$("#remember").attr("checked","true");
}
//用户名存在的话把用户名填充到用户名文本框
if(username!=""){
$("#username").val(username);
}else{
$("#username").val("");
}
if(password!=""){//密码存在的话把密码填充到密码文本框
$("#password").val(password);
}else{
$("#password").val("");
}
}
//登录按钮点击时间
function login(){
//调用setCookie()方法
setCookie();
//发送登陆请求,在此省略
}
</script>
</head>
<body>
<header class="header">
<!-- 动画展示区域 -->
<div id="victor-container"><div id="victor-output"></div></div>
<div class="welcome">
<p class="wel_p">— 欢迎使用 —</p>
<p><img class="web-title" src="static/img/web_title1.png" alt="CRM客户管理系统" draggable="false" onerror="onerror=null;src='static/img/web_title1.png'"></p>
</div>
</header>
<div class="login">
<div class="title">
CRM客户管理系统
</div>
<form action="login" method="post">
<div class="u">
<input type="text" class="uname" name="userName" id="username" placeholder="请输入账号" />
</div>
<div class="p">
<input type="password" class="pwd" name="password" id="password" placeholder="请输入密码" />
<div class="conceal" id='conceal'></div>
</div>
<div class="r">
<a style="float:left;">记住我&nbsp;&nbsp;</a>
<input type="checkbox" class="remember" name="remember" id="remember" style="float:left;height:30px;width: 30px;"/>
</div>
<div class="s">
<select name="type">
<option value="">请选择登陆类型</option>
<option value="1" selected="selected">员工</option>
<option value="2" >管理员</option>
</select>
</div>
<div class="l">
<button type="submit" onclick="login()">登录</button>
</div>
<div class="t">
<a>建议使用谷歌&火狐浏览器访问</a>
</div>
</form>
<div class="tips">
${error}
</div>
</div>
<div class="Copyright" >Copyright&nbsp;©&nbsp;2021&nbsp;谢志文&nbsp;版权所有</div>
<script>
$(function() {
// 页面加载完毕后固定页头高度,防止在某些自动隐藏工具栏的移动浏览器上出现页面抖动现象
$(".header").height($(window).height());
// 初始化 传入dom id
var victor = new Victor("victor-container", "victor-output");
var theme = [
["#002c4a", "#005584"],
["#35ac03", "#3f4303"],
["#ac0908", "#cd5726"],
["#18bbff", "#00486b"]
];
var color = theme[fRandomBy(0, 3)];
victor(color).set();
// 监听滚动变化
$(window).scroll(function() {
if($(window).scrollTop() < 300) {
$(".mk-uptop").removeClass("show");
} else {
$(".mk-uptop").addClass("show");
}
});
// 返回顶部
$(".mk-uptop").click(function(){
$("html, body").animate({scrollTop:0}, "normal");
return false;
});
// 烦人的 CNZZ,输出一大堆错误信息、、清除掉!
console.clear();
console.log('%c谢志文开发制作', 'font-size: 60px;background: #EEE url(data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAIAAAAmkwkpAAAAHklEQVQImWNkYGBgYGD4//8/A5wF5SBYyAr+//8PAPOCFO0Q2zq7AAAAAElFTkSuQmCC) repeat; text-shadow: 5px -5px black, 4px -4px white; font-weight: bold; -webkit-text-fill-color: transparent; -webkit-background-clip: text;');
console.info('Version 2.0, Designed by xzwsys.com.');
console.error('版权所有,盗我代码还不留原始版权的人是小狗!→_→');
});
/*******************************
* 函数名:生成指定范围的随机数
* 输入: (under)下限 (over)上限
* 输出: 所需要的数值
*******************************/
function fRandomBy(under, over) {
switch(arguments.length) {
case 1: return parseInt(Math.random() * under + 1);
case 2: return parseInt(Math.random() * (over - under + 1) + under);
default: return 0;
}
}
</script>
<script>
var password = document.getElementById('password');
var anniu = document.getElementById('conceal');
anniu.addEventListener('click',function(){
if(password.type==='password')
{
password.setAttribute('type','text');
anniu.classList.add('yincang');
}else{
password.setAttribute('type','password');
anniu.classList.remove('yincang');
}
})
</script>
</body>
</html>
+195
View File
@@ -0,0 +1,195 @@
<%@page contentType="text/html; charset=utf-8" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="user-scalable=no">
<title>CRM客户管理系统 --记录客户跟进记录、团队管理</title>
<link rel="icon" href="static/img/CRM.png">
<link rel="stylesheet" href="${basePath}static/css/login1.css" />
<!-- 引入 j/query和jquery.cookie-->
<script type="text/javascript" src="${basePath}static/js/cookies/jquery-3.5.1.min.js"></script>
<script type="text/javascript" src="${basePath}static/js/cookies/jquery.cookie.js"></script>
<script src="${basePath}static/js/vector.js"></script>
<script type="text/javascript" src="${basePath}static/js/web-zdzh/current-device.min.js"></script>
<script type="text/javascript" src="${basePath}static/js/web-zdzh/defalut.js"></script>
<!-- 记住代码脚本实现 -->
<script type="text/javascript">
<!-- 页面一加载完就执行getCookie()方法 -->
$(function(){
getCookie();
})
//设置Cookie方法
function setCookie(){
var username = $('#username').val();
var password = $('#password').val();
//获取记住密码是否选中
var flag = $("#remember").is(":checked");
if(flag){//如果选中-->记住密码登录
//cookie有效时间7天,也可以设置为永久,把时间去掉就行
$.cookie("remember","true",{expires:30});
$.cookie("username",username.trim(),{ expires: 30 });
$.cookie("password",password.trim(),{ expires: 30 });
}else{//如果没选中-->不记住密码登录
//设置cookie有效时间-1,直接将浏览器端原先保存的cookie失效
$.cookie("remember","false",{expires:-1});
$.cookie("password", "",{expires:-1});
$.cookie("username", "",{expires:-1});
}
}
//获取cookie方法,自动填充用户名和密码
function getCookie(){
var remember = $.cookie("remember");
//获取cookie中的用户名
var username = $.cookie("username");
//获取cookie中的登陆密码
var password = $.cookie("password");
//记住密码为true的话把“记住用户名和密码”复选框勾选住
if(remember){
$("#remember").attr("checked","true");
}
//用户名存在的话把用户名填充到用户名文本框
if(username!=""){
$("#username").val(username);
}else{
$("#username").val("");
}
if(password!=""){//密码存在的话把密码填充到密码文本框
$("#password").val(password);
}else{
$("#password").val("");
}
}
//登录按钮点击时间
function login(){
//调用setCookie()方法
setCookie();
//发送登陆请求,在此省略
}
</script>
</head>
<body>
<header class="header">
<!-- 动画展示区域 -->
<div id="victor-container"><div id="victor-output"></div></div>
<div class="welcome">
<p class="wel_p">— 欢迎使用 —</p>
<p><img class="web-title" src="static/img/web_title1.png" alt="CRM客户管理系统" draggable="false" onerror="onerror=null;src='static/img/web_title1.png'"></p>
</div>
</header>
<div class="login">
<div class="title">
<img alt="logo.png" src="static/img/web_logo.png">
<span class="tt">CRM客户管理系统</span>
</div>
<form action="login" method="post">
<div class="u">
<span style="float:left;margin-bottom:10px;font-size:40px;">用户名</span>
<input type="text" class="uname" name="userName" id="username" placeholder="" />
</div>
<div class="p">
<span style="float:left;margin-bottom:10px;font-size:40px;">密&nbsp;&nbsp;&nbsp;码</span>
<input type="password" class="pwd" name="password" id="password" placeholder="" />
<div class="conceal" id='conceal'></div>
</div>
<div class="r">
<span style="padding-right:10px">记住我</span>
<input type="checkbox" class="remember" name="remember" id="remember" />
</div>
<div class="s">
<select name="type">
<option value="">请选择登陆类型</option>
<option value="1" selected="selected">员工</option>
<option value="2" >管理员</option>
</select>
</div>
<div class="l">
<button type="submit" onclick="login()">登录</button>
</div>
<div class="t">
<a>建议使用谷歌&火狐浏览器访问</a>
</div>
</form>
<div class="tips">
${error}
</div>
</div>
<div class="Copyright" >Copyright&nbsp;©&nbsp;2021&nbsp;<a href="https://www.bltcxj.cn/" style="color:blue;text-decoration: none;">新疆博力同创</a>&nbsp;版权所有</div>
<script>
$(function() {
// 页面加载完毕后固定页头高度,防止在某些自动隐藏工具栏的移动浏览器上出现页面抖动现象
$(".header").height($(window).height());
// 初始化 传入dom id
var victor = new Victor("victor-container", "victor-output");
var theme = [
["#002c4a", "#005584"],
["#35ac03", "#3f4303"],
["#ac0908", "#cd5726"],
["#18bbff", "#00486b"]
];
var color = theme[fRandomBy(0, 3)];
victor(color).set();
// 监听滚动变化
$(window).scroll(function() {
if($(window).scrollTop() < 300) {
$(".mk-uptop").removeClass("show");
} else {
$(".mk-uptop").addClass("show");
}
});
// 返回顶部
$(".mk-uptop").click(function(){
$("html, body").animate({scrollTop:0}, "normal");
return false;
});
// 烦人的 CNZZ,输出一大堆错误信息、、清除掉!
console.clear();
console.log('%c谢志文开发制作', 'font-size: 60px;background: #EEE url(data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAIAAAAmkwkpAAAAHklEQVQImWNkYGBgYGD4//8/A5wF5SBYyAr+//8PAPOCFO0Q2zq7AAAAAElFTkSuQmCC) repeat; text-shadow: 5px -5px black, 4px -4px white; font-weight: bold; -webkit-text-fill-color: transparent; -webkit-background-clip: text;');
console.info('Version 2.0, Designed by xzwsys.com.');
console.error('版权所有,盗我代码还不留原始版权的人是小狗!→_→');
});
/*******************************
* 函数名:生成指定范围的随机数
* 输入: (under)下限 (over)上限
* 输出: 所需要的数值
*******************************/
function fRandomBy(under, over) {
switch(arguments.length) {
case 1: return parseInt(Math.random() * under + 1);
case 2: return parseInt(Math.random() * (over - under + 1) + under);
default: return 0;
}
}
</script>
<script>
var password = document.getElementById('password');
var anniu = document.getElementById('conceal');
anniu.addEventListener('click',function(){
if(password.type==='password')
{
password.setAttribute('type','text');
anniu.classList.add('yincang');
}else{
password.setAttribute('type','password');
anniu.classList.remove('yincang');
}
})
</script>
</body>
</html>
+262
View File
@@ -0,0 +1,262 @@
<%@page contentType="text/html; charset=utf-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<html style="height: 100%">
<head>
<meta charset="utf-8">
<script type="text/javascript" src="${basePath}static/echarts/echarts.min.js"></script>
<script type="text/javascript" src="${basePath}static/js/jquery.min.1.12.4.js" ></script>
<script src="${basePath}static/js/click.js"></script>
</head>
<body style="height: 100%; margin: 0">
<div id="container1" style="height: 45%; width: 48%; float: left;border: 1px solid #e1e1e1;margin-top: 10px;">
</div>
<div id="container2" style="height: 45%; width: 48%; float: right;border: 1px solid #e1e1e1;margin-top: 10px;">
</div>
<div id="container3" style="height: 45%; width: 48%; float: left;border: 1px solid #e1e1e1;margin-top: 10px;">
</div>
<div id="container4" style="height: 45%; width: 48%; float: right;border: 1px solid #e1e1e1;margin-top: 10px;">
</div>
<script type="text/javascript">
var dom = document.getElementById("container1");
var myChart = echarts.init(dom);
option1 = {
title: {
text: '当日跟进排行'
},
tooltip: {
trigger: 'axis'
},
xAxis: {
type: 'category',
axisLabel: {
interval:0
},
data: [
<c:forEach items="${list_dr}" var="temp">
'${temp.name}',
</c:forEach>
]
},
yAxis: {
type: 'value'
},
series: [{
data: [
<c:forEach items="${list_dr}" var="temp">
${temp.cs},
</c:forEach>
],
type: 'bar',
showBackground: true,
backgroundStyle: {
color: 'rgba(220, 220, 220, 0.8)'
},
itemStyle: {
normal: {
        //这里是重点
color: function(params) {
//注意,如果颜色太少的话,后面颜色不会自动循环,最好多定义几个颜色
var colorList = ['#8B8682','#8B4500','#2f4554','#61a0a8','#d48265','#91c7ae','#749f83','#ca8622','#8A8A8A','#436EEE'
,'#4A4A4A','#0000AA','#218868','#63B8FF','#737373','#7FFF00','#8B0000','#8B8682','#BCD2EE','#EEE9BF'];
return colorList[params.dataIndex]
//给大于颜色数量的柱体添加循环颜色的判断
if (params.dataIndex >= colorList.length) {
index = params.dataIndex - colorList.length;
}
}
}
}
}]
};
myChart.setOption(option1, true);
var dom2 = document.getElementById("container2");
var myChart2 = echarts.init(dom2);
option2 = {
title: {
text: '本月跟进趋势图'
},
tooltip: {
trigger: 'axis'
},
xAxis: {
type: 'category',
axisLabel: {
interval:0
},
data: [
<c:forEach items="${list_bygjqs}" var="temp">
'${temp.ts}',
</c:forEach>
]
},
yAxis: {
type: 'value',
axisLabel:{
//Y轴字体颜色和大小
//fontSize:30,
//color:"#404040",
//Y轴当刻度达到1000时以/k代替
formatter: function (value) {
var texts = [];
if (value < 1000) {
texts.push(value);
}
if (value >= 1000) {
value = value / 1000;
texts.push(value+'k');
}
return texts;
}
}
},
series: [{
data: [
<c:forEach items="${list_bygjqs}" var="temp">
${temp.cs},
</c:forEach>
],
type: 'line',
smooth: true,
showBackground: true,
backgroundStyle: {
color: 'rgba(220, 220, 220, 0.8)'
},
emphasis: {
itemStyle: {
shadowBlur: 10,
shadowOffsetX: 0,
shadowColor: 'rgba(0, 0, 0, 0.5)'
}
},
itemStyle: {
normal: {
label: {
show: true, //开启显示
position: 'top',//在上方显示
distance:8,//距离
textStyle: { //数值样式
color: "#23ABFF",
//fontSize: 30
}
}
}
}
}]
};
;
myChart2.setOption(option2, true);
var dom3 = document.getElementById("container3");
var myChart3 = echarts.init(dom3);
option3 = {
title: {
text: '客户总跟进排行(top5'
},
tooltip: {
trigger: 'axis'
},
xAxis: {
type: 'category',
axisLabel: {
interval:0
},
data: [
<c:forEach items="${top5List}" var="temp">
'${temp.name}',
</c:forEach>
]
},
yAxis: {
type: 'value'
},
series: [{
data: [
<c:forEach items="${top5List}" var="temp">
${temp.cs},
</c:forEach>
],
type: 'bar',
showBackground: true,
backgroundStyle: {
color: 'rgba(220, 220, 220, 0.8)'
},
itemStyle: {
normal: {
        //这里是重点
color: function(params) {
//注意,如果颜色太少的话,后面颜色不会自动循环,最好多定义几个颜色
var colorList = ['#8B4500','#2f4554','#61a0a8','#d48265','#91c7ae','#749f83','#ca8622','#8A8A8A','#436EEE'
,'#4A4A4A','#0000AA','#218868','#63B8FF','#737373','#7FFF00','#8B0000','#8B8682','#BCD2EE','#EEE9BF'];
return colorList[params.dataIndex]
//给大于颜色数量的柱体添加循环颜色的判断
if (params.dataIndex >= colorList.length) {
index = params.dataIndex - colorList.length;
}
}
}
}
}]
};
;
myChart3.setOption(option3, true);
var dom4 = document.getElementById("container4");
var myChart4 = echarts.init(dom4);
var app = {};
var option;
option4 = {
title: {
text: '跟进汇总饼图',
subtext: '累计',
left: 'center'
},
tooltip: {
trigger: 'item'
},
legend: {
orient: 'vertical',
left: 'left',
},
series: [
{
name: '跟进次数',
type: 'pie',
radius: '50%',
data: [
<c:forEach items="${list}" var="temp">
{value: ${temp.cs}, name: '${temp.name}'},
</c:forEach>
],
emphasis: {
itemStyle: {
shadowBlur: 10,
shadowOffsetX: 0,
shadowColor: 'rgba(0, 0, 0, 0.5)'
}
}
}
]
};
myChart4.setOption(option4, true);
if (option && typeof option === 'object') {
myChart.setOption(option);
}
</script>
</body>
</html>
+307
View File
@@ -0,0 +1,307 @@
<%@page contentType="text/html; charset=utf-8" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="user-scalable=no">
<script type="text/javascript" src="${basePath}static/js/web-zdzh/current-device.min.js"></script>
<script type="text/javascript" src="${basePath}static/js/web-zdzh/defalut.js"></script>
<title>CRM客户管理系统 --记录客户跟进记录、团队管理</title>
<style type="text/css">
*{
margin: 0px;
padding: 0px;
font-family: "microsoft yahei";
}
html,body{
/*background-image: url(static/img/login.png);*/
background-color:#5fb4fa;
/*background-size: 80% 100%;*/
height: 80%;
}
.login{
position: absolute;
background-color: rgba(255,255,255,1);
position: absolute;
top: 200px;
left: 10%;
right: 10%;
height:1100px;
margin: auto;
border:1px solid gray;
border-radius: 0px;
/*box-shadow: 10px 10px 20px #8c8c8c;/*阴影*/*/
}
.title,.u,.p,.l,.tips,.s,.t,.r{
position: absolute;
}
input{
height: 120px;
border:0px;
font-size:60px;
border-radius: 10px;
width: 90%;
padding-left: 80px;
box-sizing: border-box;
outline:none;/*input输入边框隐藏*/
}
.uname{
/*background: url(${basePath}static/img/login_user.png) no-repeat left;
background-size:50px 50px;*/
background-color: #f0f0f0;
background-position:20px;
}
.pwd{
/*background: url(${basePath}static/img/login_pwd.png) no-repeat left;
background-size:50px 50px;*/
background-color: #f0f0f0;
background-position:20px;
}
button{
background-color: #467FE6;
height: 100px;
border: 0px;
width:50%;
float:right;
border-radius: 10px;
color: #FFF;
font-size: 60px;
}
select{
width: 80%;
height: 70px;
border-radius: 10px;
border:1px solid #e1e1e1;
font-size: 50px;
}
.title{
top: -3%;
left: 5%;
width: 90%;
text-align: center;
font-size: 80px;
font-weight: bold;
padding-top: 10px;
box-sizing: border-box;
text-shadow: 3px 3px 3px #aaa;
}
.title .logo{
margin-left: auto;
margin-right: auto;
width: 600px;
}
.u{
top: 25%;
left: 10%;
}
.p{
top: 45%;
left: 10%;
}
.s{
top: 65%;
left: 10%;
}
.l{
top: 75%;
right: 10%;
width:50%;
}
.tips{
top: 90%;
left: 10%;
width:80%;
font-size: 50px;
color: red;
text-align: center;
}
.t{
display:none;
}
.t{
top: 90%;
left: 10%;
width:80%;
font-size: 40px;
text-align: center;
opacity:0.5;/*透明度*/
text-shadow: 3px 3px 3px #aaa;
}
.r{
top: 75%;
left: 10%;
width:40%;
height: 120px;
font-size: 50px;
text-align: center;
}
.uname:hover{
/*border:3px solid #adc6ff;*/
box-shadow: 0px 0px 20px #999999 inset;/*输入款 内阴影*/
}
.pwd:hover{
/*border:3px solid #adc6ff;*/
box-shadow: 0px 0px 20px #999999 inset;/*输入款 内阴影*/
}
/*密码显示与隐藏*/
.conceal{
position: absolute;
top: 50%;
right: 15%;
width: 60px;
height: 60px;
color:#40a9ff;
background-image: url(${basePath}static/img/xianshi.png);
background-size: 100% 100%;
cursor: pointer;
}
.conceal.yincang{
background-image: url(${basePath}static/img/yincang.png);
background-size: 100% 100%;
}
.login:hover{
/*鼠标划过周围出现阴影*/
border-radius: 20px;
-webkit-transform: scale(1);
-moz-transform: scale(1);
transform: scale(1);
-moz-box-shadow:0 6px 30px #888;
-webkit-box-shadow:0 6px 30px #888;
-webkit-transition:.3s;
-moz-transition:.3s;
-o-transition:.3s;
-ms-transition:.3s;
/*box-shadow: 0px 0px 40px #808080 inset;/*输入款 内阴影*/*/
}
</style>
<!-- 引入jquery和jquery.cookie-->
<script type="text/javascript" src="${basePath}static/js/cookies/jquery-3.5.1.min.js"></script>
<script type="text/javascript" src="${basePath}static/js/cookies/jquery.cookie.js"></script>
<!-- 记住代码脚本实现 -->
<script type="text/javascript">
<!-- 页面一加载完就执行getCookie()方法 -->
$(function(){
getCookie();
})
//设置Cookie方法
function setCookie(){
var username = $('#username').val();
var password = $('#password').val();
//获取记住密码是否选中
var flag = $("#remember").is(":checked");
if(flag){//如果选中-->记住密码登录
//cookie有效时间7天,也可以设置为永久,把时间去掉就行
$.cookie("remember","true",{expires:30});
$.cookie("username",username.trim(),{ expires: 30 });
$.cookie("password",password.trim(),{ expires: 30 });
}else{//如果没选中-->不记住密码登录
//设置cookie有效时间-1,直接将浏览器端原先保存的cookie失效
$.cookie("remember","false",{expires:-1});
$.cookie("password", "",{expires:-1});
$.cookie("username", "",{expires:-1});
}
}
//获取cookie方法,自动填充用户名和密码
function getCookie(){
var remember = $.cookie("remember");
//获取cookie中的用户名
var username = $.cookie("username");
//获取cookie中的登陆密码
var password = $.cookie("password");
//记住密码为true的话把“记住用户名和密码”复选框勾选住
if(remember){
$("#remember").attr("checked","true");
}
//用户名存在的话把用户名填充到用户名文本框
if(username!=""){
$("#username").val(username);
}else{
$("#username").val("");
}
if(password!=""){//密码存在的话把密码填充到密码文本框
$("#password").val(password);
}else{
$("#password").val("");
}
}
//登录按钮点击时间
function login(){
//调用setCookie()方法
setCookie();
//发送登陆请求,在此省略
}
</script>
</head>
<body>
<div class="login">
<div class="title">
<img class ="logo" alt="log图像" src="${basePath}static/img/web_logo.png">
</div>
<form action="${basePath}login" method="post">
<div class="u">
<span style="float:left;margin-bottom:10px;font-size:40px;">用户名</span>
<input type="text" class="uname" name="userName" id="username" placeholder="" />
</div>
<div class="p">
<span style="float:left;margin-bottom:10px;font-size:40px;">密&nbsp;&nbsp;&nbsp;码</span>
<input type="password" class="pwd" name="password" id="password" placeholder="" />
<div class="conceal" id='conceal'></div>
</div>
<div class="r">
<input type="checkbox" class="remember" name="remember" id="remember" style="float:left;height:60px;width: 60px;"/>
<a style="float:left;">记住我</a>
</div>
<div class="s">
<select name="type">
<option value="">请选择登陆类型</option>
<option value="1" selected="selected">员工</option>
<option value="2" >管理员</option>
</select>
</div>
<div class="l">
<button type="submit" onclick="login()">登录</button>
</div>
<div class="tips">
${error}
</div>
<div class="t">
<a>建议使用谷歌&火狐浏览器访问</a>
</div>
</form>
</div>
<div style="text-align: center;bottom:30px;position: absolute;width:100%;color:#ffffff;opacity:0.5;/*透明度*/;font-size:40px;">Copyright&nbsp;©&nbsp;2021&nbsp;<a href="https://www.bltcxj.cn/" style="color:blue;text-decoration: none;">新疆博力同创</a>&nbsp;版权所有</div>
<script>
var password = document.getElementById('password');
var anniu = document.getElementById('conceal');
anniu.addEventListener('click',function(){
if(password.type==='password')
{
password.setAttribute('type','text');
anniu.classList.add('yincang');
}else{
password.setAttribute('type','password');
anniu.classList.remove('yincang');
}
})
</script>
</body>
</html>
+20
View File
@@ -0,0 +1,20 @@
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>警告!非法登陆</title>
<link rel="stylesheet" href="${basePath}static/css/font-awesome-4.7.0/css/font-awesome.min.css" />
<script src="${basePath}static/js/click.js"></script>
</head>
<body>
<a style="font-size:40px;">非法登陆,请联系管理员!</a>
<a style="font-size:40px;" class="fa fa-mail-reply" ></a>
<a style="font-size:40px;" href="login.jsp" >重新登录</a>
</body>
</html>
+76
View File
@@ -0,0 +1,76 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>产品信息新增页面</title>
<script type="text/javascript" src="${basePath}static/js/jquery.min.1.12.4.js" ></script>
<link rel="stylesheet" href="${basePath}static/css/select2.min.css" />
<script type="text/javascript" src="${basePath}static/js/select2.min.js" ></script>
<script src="${basePath}static/js/click.js"></script>
<link rel="stylesheet" href="${basePath}static/css/styles.css" />
<link rel="stylesheet" href="${basePath}static/css/font-awesome-4.7.0/css/font-awesome.min.css" />
<script src="${basePath}static/js/jquery-validation-1.14.0/jquery.validate.js" type="text/javascript"></script>
<script src="${basePath}static/js/jquery-validation-1.14.0/localization/messages_zh.js" type="text/javascript"></script>
<script type="text/javascript">
//表单 必填项验证
$(function(){
$("#addForm").validate({
rules:{
Cpmc:{
required:true
},
Bz:{
required:true
}
}
/* messages:{
stuPwd:{
rangelength:$.validator.format( "Please enter a value between {0} and {1} characters long.")
}
} */
});
});
</script>
</head>
<body>
<div class="add">
<form id="addForm" action="${basePath}cpxx?method=add" method="post">
<table class="tableadd" style="width: 800px;">
<tr>
<td style="width:100px;">产品名称</td>
<td style="color: red;"><input style="width:300px;text-align:center;" type="text" name="Cpmc" placeholder="请输入产品名称">*</td>
</tr>
<tr>
<td style="width:100px;">附加信息</td>
<td style="color: red;"><input style="width:300px;text-align:center;" type="text" name="Bz" placeholder="请输入附加信息,如:金额...">*</td>
</tr>
<tr>
<td colspan="4" align="left">
<button class="edit" type="button" onclick="window.history.back(-1);">
<i style="display:none;" class="fa fa-arrow-left"></i>
返回
</button>
<button class="remove" type="submit">
<i style="display:none;" class="fa fa-save"></i>
提交
</button>
</td>
</tr>
</table>
</form>
</div>
</body>
</html>
+106
View File
@@ -0,0 +1,106 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>产品信息列表</title>
<link rel="stylesheet" href="${basePath}static/css/styles.css" />
<link rel="stylesheet" href="${basePath}static/css/font-awesome-4.7.0/css/font-awesome.min.css" />
<script src="${basePath}static/js/jquery.min.js" type="text/javascript"></script>
<script src="${basePath}static/js/click.js"></script>
<script type="text/javascript">
$(function(){
$('.remove').click(function(){
if(confirm("确定要删除吗?")){
window.location.href="${basePath}cpxx?method=delete&id="+$(this).attr("keyword");
}
})
})
</script>
<style type="text/css">
@media screen and (max-width:1000px){
*{
font-size:30px;
}
}
</style>
</head>
<body>
<%
String mess=(String)session.getAttribute("msg");
session.removeAttribute("msg");
if("".equals(mess) || mess==null){
}
else{%>
<script type="text/javascript">
alert("<%=mess%>");
//刷新当前页面 清空session
window.location.reload();
</script>
<% }%>
<form id="myform" action="${basePath}cpxx?method=list" method="post">
<div class="condition" >
产品:<input type="text" id="cpmc" name="Cpmc" value="${cpxx.cpmc}"style="width:150px;">
备注:<input type="text" id="bz" name="Bz" value="${cpxx.bz}"style="width:150px;">
<button >
<i style="display:none;" class="fa fa-search" ></i>
查询
</button>
<button type="button" onclick="window.location.href='${basePath}page/cpxx/add.jsp'">
<i style="display:none;" class="fa fa-plus"></i>
新增
</button>
</div >
</form>
<form action="${basePath}cpxx?method=list" id="tableList" method="post">
<input type="hidden" name="pageNo" value="${pageInfo.pageNo}">
<input type="hidden" name="Id" value="${cpxx.id}">
<input type="hidden" name="Cpmc" value="${cpxx.cpmc}">
<input type="hidden" name="Bz" value="${cpxx.bz}">
<table class="tablelist">
<thead>
<tr>
<th class = "gj_id">ID</th>
<th style="width:100px;text-align: center;">操作</th>
<th class = "khmc">产品名称</th>
<th class = "rqs" >备注信息</th>
</tr>
</thead>
<c:forEach items="${pageInfo.list}" var="cpxx">
<tr>
<td>${cpxx.id}</td>
<td style="width:100px;text-align: center;" class="caozuo">
<button class="edit" type="button" onclick="window.location.href='${basePath}cpxx?method=edit&id=${cpxx.id}'">
<i style="display:none;" class="fa fa-edit"></i>
修改
</button>
<button class="remove" type="button" keyword="${cpxx.id}">
<i style="display:none;" class="fa fa-remove"></i>
删除
</button>
</td>
<td><a href="${basePath}cpxx?method=edit&id=${cpxx.id}" style="text-decoration: none;">${cpxx.cpmc}</a></td>
<td>${cpxx.bz}</td>
</tr>
</c:forEach>
</table>
<%@include file="../inc/page.jsp"%>
</form>
</body>
</html>
+97
View File
@@ -0,0 +1,97 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>产品信息列表</title>
<link rel="stylesheet" href="${basePath}static/css/styles.css" />
<link rel="stylesheet" href="${basePath}static/css/font-awesome-4.7.0/css/font-awesome.min.css" />
<script src="${basePath}static/js/jquery.min.js" type="text/javascript"></script>
<script src="${basePath}static/js/click.js"></script>
<script type="text/javascript">
$(function(){
$('.remove').click(function(){
if(confirm("确定要删除吗?")){
window.location.href="${basePath}cpxx?method=delete&id="+$(this).attr("keyword");
}
})
})
</script>
<style type="text/css">
.cpxx_cpmc:hover{
font-size:18px;
color:#fa541c;
}
@media screen and (max-width:1000px){
*{
font-size:20px;
}
}
</style>
</head>
<body>
<%
String mess=(String)session.getAttribute("msg");
session.removeAttribute("msg");
if("".equals(mess) || mess==null){
}
else{%>
<script type="text/javascript">
alert("<%=mess%>");
//刷新当前页面 清空session
window.location.reload();
</script>
<% }%>
<form id="myform" action="${basePath}cpxx?method=list1" method="post">
<div class="condition" >
产品:<input type="text" id="cpmc" name="Cpmc" value="${cpxx.cpmc}"style="width:150px;">
备注:<input type="text" id="bz" name="Bz" value="${cpxx.bz}"style="width:150px;">
<button >
<i style="display:none;" class="fa fa-search" ></i>
查询
</button>
</div >
</form>
<form action="${basePath}cpxx?method=list" id="tableList" method="post">
<input type="hidden" name="pageNo" value="${pageInfo.pageNo}">
<input type="hidden" name="Id" value="${cpxx.id}">
<input type="hidden" name="Cpmc" value="${cpxx.cpmc}">
<input type="hidden" name="Bz" value="${cpxx.bz}">
<table class="tablelist">
<thead>
<tr>
<th class = "gj_id">ID</th>
<th class = "khmc">产品名称</th>
<th class = "rqs" >备注信息</th>
</tr>
</thead>
<c:forEach items="${pageInfo.list}" var="cpxx">
<tr>
<td>${cpxx.id}</td>
<td class="cpxx_cpmc" style="color:blue;">${cpxx.cpmc}</td>
<td>${cpxx.bz}</td>
</tr>
</c:forEach>
</table>
<%@include file="../inc/page.jsp"%>
</form>
</body>
</html>
+76
View File
@@ -0,0 +1,76 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>到期提醒新增页面</title>
<link rel="stylesheet" href="${basePath}static/css/styles.css" />
<link rel="stylesheet" href="${basePath}static/css/font-awesome-4.7.0/css/font-awesome.min.css" />
<script src="${basePath}static/js/jquery.min.js" type="text/javascript"></script>
<script src="${basePath}static/js/jquery-validation-1.14.0/jquery.validate.js" type="text/javascript"></script>
<script src="${basePath}static/js/jquery-validation-1.14.0/localization/messages_zh.js" type="text/javascript"></script>
<script src="${basePath}static/js/click.js"></script>
<script type="text/javascript">
//表单 必填项验证
$(function(){
$("#addForm").validate({
rules:{
Cpmc:{
required:true
},
Bz:{
required:true
}
}
/* messages:{
stuPwd:{
rangelength:$.validator.format( "Please enter a value between {0} and {1} characters long.")
}
} */
});
});
</script>
</head>
<body>
<div class="add">
<form id="addForm" action="${basePath}cpxx?method=update" method="post">
<input type="hidden" name="Id" value="${cpxx.id}">
<input type="hidden" name="Cpmc" value="${cpxx.cpmc}">
<table class="tableadd" style="width: 800px;">
<tr>
<td style="width:100px;">产品名称</td>
<!-- input 不可编辑方法 1<input type="text" readonly="readonly" 2input type="text" disabled="disabled" -->
<td style="color: red;"><input style="width:300px;text-align:center;" type="text" disabled="disabled" name="Cpmc" value="${cpxx.cpmc}"></td>
</tr>
<tr>
<td>附加信息</td>
<td style="color: red;"><input style="width:300px;text-align:center;" type="text" name="Bz" value="${cpxx.bz}">*</td>
</tr>
<tr>
<td colspan="4" align="left">
<button class="edit" type="button" onclick="window.history.back(-1);">
<i style="display:none;" class="fa fa-arrow-left"></i>
返回
</button>
<button class="remove" type="submit">
<i style="display:none;" class="fa fa-save"></i>
提交
</button>
</td>
</tr>
</table>
</form>
</div>
</body>
</html>
+137
View File
@@ -0,0 +1,137 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>到期提醒新增页面</title>
<script type="text/javascript" src="${basePath}static/js/jquery.min.1.12.4.js" ></script>
<link rel="stylesheet" href="${basePath}static/css/select2.min.css" />
<script type="text/javascript" src="${basePath}static/js/select2.min.js" ></script>
<script src="${basePath}static/js/click.js"></script>
<link rel="stylesheet" href="${basePath}static/css/styles.css" />
<link rel="stylesheet" href="${basePath}static/css/font-awesome-4.7.0/css/font-awesome.min.css" />
<script src="${basePath}static/js/jquery-validation-1.14.0/jquery.validate.js" type="text/javascript"></script>
<script src="${basePath}static/js/jquery-validation-1.14.0/localization/messages_zh.js" type="text/javascript"></script>
<script type="text/javascript">
//表单 必填项验证
$(function(){
$("#addForm").validate({
rules:{
Khid:{
required:true
},
Rqs:{
required:true
},
Rqe:{
required:true
},
Je:{
required:true
}
}
/* messages:{
stuPwd:{
rangelength:$.validator.format( "Please enter a value between {0} and {1} characters long.")
}
} */
});
});
//datetime-local 默认取当前时间
$(function(){
var today = new Date();//返回当前日期时间
var yyyy = today.getFullYear();//获取当前年份
var MM = today.getMonth() + 1;//因为getMonth()方法获取的是索引值,所以要+1
var MM1 = today.getMonth();
var dd = today.getDate() ;//返回一个月中的某一天
var hh = today.getHours();//返回小时 (0 ~ 23)
var mm = today.getMinutes();//返回分钟 (0 ~ 59)
MM = checkTime(MM);//调用下面的checkTime函数,设置小于10的时间数字格式,例如5秒显示成05秒
MM1 = checkTime(MM1);
dd = checkTime(dd);
hh = checkTime(hh);
mm = checkTime(mm);
var time = yyyy + "-" + MM + "-" + dd ;
var time1 = yyyy + "-" + MM1 + "-" + dd ;
var dateControl1 = $("#currentDate1");
dateControl1.val(time1);
function checkTime(i) {
if (i < 10) {
i = "0" + i;//这里如果是一位数则在前面添加一位0
}
return i;
}
var dateControl2 = $("#currentDate2");
dateControl2.val(time);
function checkTime(i) {
if (i < 10) {
i = "0" + i;//这里如果是一位数则在前面添加一位0
}
return i;
}
});
</script>
</head>
<body>
<div class="add">
<form id="addForm" action="${basePath}dqtx?method=add" method="post">
<table class="tableadd" style="width: 800px;">
<tr>
<td style="width:100px;">客&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;户</td>
<td style="color: red;">
<select style="width:300px;" id="kehu" name="Khid" class="kehu_select" >
<option value="" style="display: none;">---请选择客户---</option>
<c:forEach items="${list_kehu}" var="list_kehu">
<option value="${list_kehu.id}">${list_kehu.name}</option>
</c:forEach>
</select>*
</td>
</tr>
<tr >
<td>开始日期</td>
<td style="color: red;"><input style="width:300px;text-align:center;" type="date" name="Rqs" class="Rq_select" id="currentDate1">*</td>
</tr>
<tr>
<td>到期日期</td>
<td style="color: red;"><input style="width:300px;text-align:center;" type="date" name="Rqe" class="Rq_select" id="currentDate2">*</td>
</tr>
<tr>
<td>服&nbsp;&nbsp;务&nbsp;&nbsp;费</td>
<td style="color: red;"><input style="width:300px;text-align:center;" type="text" name="Je" placeholder="请输入服务费">*</td>
</tr>
<tr>
<td colspan="4" align="left">
<button class="edit" type="button" onclick="window.history.back(-1);">
<i style="display:none;" class="fa fa-arrow-left"></i>
返回
</button>
<button class="remove" type="submit">
<i style="display:none;" class="fa fa-save"></i>
提交
</button>
</td>
</tr>
</table>
</form>
</div>
<script type="text/javascript">
$(document).ready(function () {//加载页面时执行select2
$('.kehu_select').select2();
});
</script>
</body>
</html>
+116
View File
@@ -0,0 +1,116 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>到期提醒详情页面</title>
<link rel="stylesheet" href="${basePath}static/css/styles.css" />
<link rel="stylesheet" href="${basePath}static/css/font-awesome-4.7.0/css/font-awesome.min.css" />
<script type="text/javascript" src="${basePath}static/js/jquery.min.1.12.4.js" ></script>
<script src="${basePath}static/js/jquery.min.js" type="text/javascript"></script>
<script src="${basePath}static/js/jquery-validation-1.14.0/jquery.validate.js" type="text/javascript"></script>
<script src="${basePath}static/js/jquery-validation-1.14.0/localization/messages_zh.js" type="text/javascript"></script>
<script src="${basePath}static/js/click.js"></script>
<style>
/*.masthead:hover {
/*图片抖动*/
-webkit-animation:bounce 1s .1s ease both;
-moz-animation:bounce 1s .1s ease both;
}
@-webkit-keyframes bounce {
0% {
-webkit-transform:scale(1)
}
10%, 20% {
-webkit-transform:scale(0.8) rotate(-2deg)
}
30%, 50%, 70%, 90% {
-webkit-transform:scale(1.1) rotate(2deg)
}
40%, 60%, 80% {
-webkit-transform:scale(1.1) rotate(-2deg)
}
100% {
-webkit-transform:scale(1) rotate(0)
}
}*/
.masthead:hover {
/*鼠标划过周围出现阴影*/
-webkit-transform: scale(1);
-moz-transform: scale(1);
transform: scale(1);
-moz-box-shadow:0 3px 20px #888;
-webkit-box-shadow:0 3px 20px #888;
-webkit-transition:.3s;
-moz-transition:.3s;
-o-transition:.3s;
-ms-transition:.3s;
}
@media screen and (max-width:1000px){
*{
font-size:20px;
}
}
</style>
</head>
<body>
<div class="add">
<form id="addForm" >
<input type="hidden" name="Id" value="${dqtx.id}">
<input type="hidden" name="Khid" value="${dqtx.khid}">
<table class="tableadd" style="width: 800px;">
<tr>
<td style="width:100px;">客&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;户</td>
<!-- input 不可编辑方法 1<input type="text" readonly="readonly" 2input type="text" disabled="disabled" -->
<td style="color: red;"><input style="width:300px;text-align:center; color: blue;font-weight:bold;" type="text" disabled="disabled" name="name" value="${dqtx.name}"></td>
</tr>
<tr>
<td>开始日期</td>
<td style="color: red;"><input style="width:300px;text-align:center;" type="text" disabled="disabled" name="Rqs" class="Rq_select" value="${dqtx.rqs}"></td>
</tr>
<tr>
<td>到期日期</td>
<td style="color: red;"><input style="width:300px;text-align:center;" type="text" disabled="disabled" name="Rqe" class="Rq_select" value="${dqtx.rqe}"></td>
</tr>
<tr>
<td>服&nbsp;&nbsp;务&nbsp;&nbsp;费</td>
<td style="color: red;"><input style="width:300px;text-align:center;" type="text" disabled="disabled" name="Je" value="${dqtx.je}"></td>
</tr>
<tr>
<td colspan="4" align="left">
<button class="edit" type="button" onclick="window.history.back(-1);">
<i style="display:none;" class="fa fa-arrow-left"></i>
返回
</button>
</td>
</tr>
</table>
</form>
<h1>附件1</h1>
<img id="edit_photo" alt="照片" style="max-width: 1000px; max-height: 1000px;" title="照片" src="${basePath}dqtx?method=getPhoto1&ID=${dqtx.id}" class="masthead" />
<h1>附件2</h1>
<img id="edit_photo" alt="照片" style="max-width: 1000px; max-height: 1000px;" title="照片" src="${basePath}dqtx?method=getPhoto2&ID=${dqtx.id}" class="masthead"/>
</div>
</body>
</html>
+121
View File
@@ -0,0 +1,121 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>到期提醒列表</title>
<link rel="stylesheet" href="${basePath}static/css/styles.css" />
<link rel="stylesheet" href="${basePath}static/css/font-awesome-4.7.0/css/font-awesome.min.css" />
<script src="${basePath}static/js/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript" src="${basePath}static/js/My97DatePicker9/WdatePicker.js"></script>
<script src="${basePath}static/js/click.js"></script>
<script type="text/javascript">
$(function(){
$('.remove').click(function(){
if(confirm("确定要删除吗?")){
window.location.href="${basePath}dqtx?method=delete&id="+$(this).attr("keyword");
}
})
})
</script>
<style type="text/css">
@media screen and (max-width:1000px){
*{
font-size:30px;
}
}
</style>
</head>
<body>
<%
String mess=(String)session.getAttribute("msg");
session.removeAttribute("msg");
if("".equals(mess) || mess==null){
}
else{%>
<script type="text/javascript">
alert("<%=mess%>");
//刷新当前页面 清空session
window.location.reload();
</script>
<% }%>
<form id="myform" action="${basePath}dqtx?method=list" method="post">
<div class="condition" >
客户:<input type="text" id="khmc" name="Khid" value="${dqtx.khid}"style="width:150px;">
片区:<input type="text" id="pq" name="Pq" value="${dqtx.pq}"style="width:150px;">
到期日期:<input name="Rqs" value="${dqtx.rqs}" style="width: 120px;" onFocus="WdatePicker({readOnly:true,dateFmt:'yyyy-MM-dd'})" /> 至
<input id="gjrq_e" name="Rqe" value="${dqtx.rqe}" style="width:120px;" onFocus="WdatePicker({readOnly:true,dateFmt:'yyyy-MM-dd'})" />
<button >
<i style="display:none;" class="fa fa-search" ></i>
查询
</button>
<button type="button" onclick="window.location.href='${basePath}dqtx?method=addpage'">
<i style="display:none;" class="fa fa-plus"></i>
新增
</button>
</div >
</form>
<form action="${basePath}dqtx?method=list" id="tableList" method="post">
<input type="hidden" name="pageNo" value="${pageInfo.pageNo}">
<input type="hidden" name="Id" value="${dqtx.id}">
<input type="hidden" name="Khid" value="${dqtx.khid}">
<input type="hidden" name="Khid" value="${dqtx.name}">
<input type="hidden" name="Khid" value="${dqtx.pq}">
<input type="hidden" name="Rqs" value="${dqtx.rqs}">
<input type="hidden" name="Rqe" value="${dqtx.rqe}">
<input type="hidden" name="Je" value="${dqtx.je}">
<table class="tablelist">
<thead>
<tr>
<th class = "gj_id">ID</th>
<th style="width:100px;text-align: center;">操作</th>
<th class = "khmc">客户名称</th>
<th class = "pq">片区</th>
<th class = "rqs" >起始日期</th>
<th class = "rqe">到期日期</th>
<th>服务费</th>
</tr>
</thead>
<c:forEach items="${pageInfo.list}" var="dqtx">
<tr>
<td>${dqtx.id}</td>
<td style="width:100px;text-align: center;" class="caozuo">
<button class="edit" type="button" onclick="window.location.href='${basePath}dqtx?method=edit&id=${dqtx.id}'">
<i style="display:none;" class="fa fa-edit"></i>
修改
</button>
<button class="remove" type="button" keyword="${dqtx.id}">
<i style="display:none;" class="fa fa-remove"></i>
删除
</button>
</td>
<td><a href="${basePath}dqtx?method=edit&id=${dqtx.id}" style="text-decoration: none;">${dqtx.name}</a></td>
<td>${dqtx.pq}</td>
<td>${dqtx.rqs}</td>
<td>${dqtx.rqe}</td>
<td>${dqtx.je}</td>
</tr>
</c:forEach>
</table>
<%@include file="../inc/page.jsp"%>
</form>
</body>
</html>
+119
View File
@@ -0,0 +1,119 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>到期提醒列表</title>
<link rel="stylesheet" href="${basePath}static/css/styles.css" />
<link rel="stylesheet" href="${basePath}static/css/font-awesome-4.7.0/css/font-awesome.min.css" />
<script src="${basePath}static/js/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript" src="${basePath}static/js/My97DatePicker9/WdatePicker.js"></script>
<script src="${basePath}static/js/click.js"></script>
<style type="text/css">
#kehu_name:hover{
font-size:18px;
}
/*修改提示框*/
#mytitle {
position: absolute;
color: #ffffff;
max-width: 160px;
font-size: 20px;
padding: 4px;
background: rgba(40, 40, 40, 0.8);
border: solid 1px #e9f7f6;
border-radius:5px;
}
@media screen and (max-width:1000px){
*{
font-size:20px;
}
}
</style>
<script type="text/javascript">
$(function () {
var x = 10;
var y = 20;
var newtitle = '';
$('a.kehu_name').mouseover(function (e) {
newtitle = this.title;
this.title = '';
$('body').append('<div id="mytitle" >' + newtitle + '</div>');
$('#mytitle').css({
'left': (e.pageX + x + 'px'),
'top': (e.pageY + y - 80 + 'px')
}).show();
}).mouseout(function () {
this.title = newtitle;
$('#mytitle').remove();
}).mousemove(function (e) {
$('#mytitle').css({
'left': (e.pageX + x +10 + 'px'),
'top': (e.pageY + y - 60 + 'px')
}).show();
})
});
</script>
</head>
<body>
<form id="myform" action="${basePath}dqtx?method=list1" method="post">
<div class="condition" >
客户:<input type="text" id="khmc" name="Khid" value="${dqtx.khid}"style="width:100px;">
片区:<input type="text" id="pq" name="Pq" value="${dqtx.pq}"style="width:150px;">
到期日期:<input name="Rqs" value="${dqtx.rqs}" style="width: 120px;" onFocus="WdatePicker({readOnly:true,dateFmt:'yyyy-MM-dd'})" /> 至
<input id="gjrq_e" name="Rqe" value="${dqtx.rqe}" style="width:120px;" onFocus="WdatePicker({readOnly:true,dateFmt:'yyyy-MM-dd'})" />
<button >
<i style="display:none;" class="fa fa-search" ></i>
查询
</button>
</div >
</form>
<form action="${basePath}dqtx?method=list1" id="tableList" method="post">
<input type="hidden" name="pageNo" value="${pageInfo.pageNo}">
<input type="hidden" name="Id" value="${dqtx.id}">
<input type="hidden" name="Khid" value="${dqtx.khid}">
<input type="hidden" name="Pq" value="${dqtx.pq}">
<input type="hidden" name="Khid" value="${dqtx.name}">
<input type="hidden" name="Rqs" value="${dqtx.rqs}">
<input type="hidden" name="Rqe" value="${dqtx.rqe}">
<input type="hidden" name="Je" value="${dqtx.je}">
<table class="tablelist">
<thead>
<tr>
<th class = "gj_id">ID</th>
<th class = "khmc">客户名称</th>
<th class = "pq">片区</th>
<th class = "rqs" >起始日期</th>
<th class = "rqe">到期日期</th>
<th>服务费</th>
</tr>
</thead>
<c:forEach items="${pageInfo.list}" var="dqtx">
<tr>
<td><a class="kehu_name" href="${basePath}dqtx?method=detail_user&ID=${dqtx.id}" style="text-decoration: none;color:black;" title="点击查看附件">${dqtx.id}</a></td>
<td><a class="kehu_name" id="kehu_name" href="${basePath}dqtx?method=detail_user&ID=${dqtx.id}" style="color:blue;text-decoration: none;" title="点击查看附件">${dqtx.name}</a></td>
<td><a class="kehu_name" href="${basePath}dqtx?method=detail_user&ID=${dqtx.id}" style="text-decoration: none;color:black;" title="点击查看附件">${dqtx.pq}</a></td>
<td><a class="kehu_name" href="${basePath}dqtx?method=detail_user&ID=${dqtx.id}" style="text-decoration: none;color:black;" title="点击查看附件">${dqtx.rqs}</a></td>
<td><a class="kehu_name" href="${basePath}dqtx?method=detail_user&ID=${dqtx.id}" style="text-decoration: none;color:black;" title="点击查看附件">${dqtx.rqe}</a></td>
<td><a class="kehu_name" href="${basePath}dqtx?method=detail_user&ID=${dqtx.id}" style="text-decoration: none;color:black;" title="点击查看附件">${dqtx.je}</a></td>
</tr>
</c:forEach>
</table>
<%@include file="../inc/page.jsp"%>
</form>
</body>
</html>
+180
View File
@@ -0,0 +1,180 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>到期提醒修改页面</title>
<link rel="stylesheet" href="${basePath}static/css/styles.css" />
<link rel="stylesheet" href="${basePath}static/css/font-awesome-4.7.0/css/font-awesome.min.css" />
<script src="${basePath}static/js/jquery.min.js" type="text/javascript"></script>
<script src="${basePath}static/js/jquery-validation-1.14.0/jquery.validate.js" type="text/javascript"></script>
<script src="${basePath}static/js/jquery-validation-1.14.0/localization/messages_zh.js" type="text/javascript"></script>
<script src="${basePath}static/js/click.js"></script>
<script type="text/javascript" src="${basePath}static/easyui/jquery.easyui.min.js"></script>
<style>
/*.masthead:hover {
图片抖动
-webkit-animation:bounce 1s .1s ease both;
-moz-animation:bounce 1s .1s ease both;
}
@-webkit-keyframes bounce {
0% {
-webkit-transform:scale(1)
}
10%, 20% {
-webkit-transform:scale(0.8) rotate(-2deg)
}
30%, 50%, 70%, 90% {
-webkit-transform:scale(1.1) rotate(2deg)
}
40%, 60%, 80% {
-webkit-transform:scale(1.1) rotate(-2deg)
}
100% {
-webkit-transform:scale(1) rotate(0)
}
}*/
.masthead:hover {
/*鼠标划过周围出现阴影*/
-webkit-transform: scale(1);
-moz-transform: scale(1);
transform: scale(1);
-moz-box-shadow:0 3px 20px #888;
-webkit-box-shadow:0 3px 20px #888;
-webkit-transition:.3s;
-moz-transition:.3s;
-o-transition:.3s;
-ms-transition:.3s;
}
</style>
<script type="text/javascript">
//表单 必填项验证
$(function(){
$("#addForm").validate({
rules:{
Khid:{
required:true
},
Rqs:{
required:true
},
Rqe:{
required:true
},
Je:{
required:true
}
}
/* messages:{
stuPwd:{
rangelength:$.validator.format( "Please enter a value between {0} and {1} characters long.")
}
} */
});
});
//上传图片按钮事件
$("#upload-photo-btn1").click(function(){
});
function uploadPhoto1(){
var action = $("#uploadForm1").attr('action');
var pos = action.indexOf('Id');
if(pos != -1){
action = action.substring(0,pos-1);
}
$("#uploadForm1").attr('action',action+'&Id='+$("#set-photo-id").val());
$("#uploadForm1").submit();
setTimeout(function(){
var message = $(window.frames["photo_target"].document).find("#message").text();
$.messager.alert("消息提醒",message,"info");
$("#edit_photo1").attr("src", "${basePath}dqtx?method=getPhoto1&Id="+$("#set-photo-id").val());
}, 1500)
};
$("#upload-photo-btn2").click(function(){
});
function uploadPhoto2(){
var action = $("#uploadForm2").attr('action');
var pos = action.indexOf('Id');
if(pos != -1){
action = action.substring(0,pos-1);
}
$("#uploadForm2").attr('action',action+'&Id='+$("#set-photo-id").val());
$("#uploadForm2").submit();
setTimeout(function(){
var message = $(window.frames["photo_target"].document).find("#message").text();
$.messager.alert("消息提醒",message,"info");
$("#edit_photo2").attr("src", "${basePath}dqtx?method=getPhoto2&Id="+$("#set-photo-id").val());
}, 1500)
}
</script>
</head>
<body>
<div class="add">
<form id="addForm" action="${basePath}dqtx?method=update" method="post">
<input type="hidden" name="Id" value="${dqtx.id}">
<input type="hidden" name="Khid" value="${dqtx.khid}">
<table class="tableadd" style="width: 800px;">
<tr>
<td style="width:100px;">客&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;户</td>
<!-- input 不可编辑方法 1<input type="text" readonly="readonly" 2input type="text" disabled="disabled" -->
<td style="color: red;"><input style="width:300px;text-align:center;" type="text" disabled="disabled" name="name" value="${dqtx.name}"></td>
</tr>
<tr>
<td>开始日期</td>
<td style="color: red;"><input style="width:300px;text-align:center;" type="date" name="Rqs" class="Rq_select" value="${dqtx.rqs}">*</td>
</tr>
<tr>
<td>到期日期</td>
<td style="color: red;"><input style="width:300px;text-align:center;" type="date" name="Rqe" class="Rq_select" value="${dqtx.rqe}">*</td>
</tr>
<tr>
<td>服&nbsp;&nbsp;务&nbsp;&nbsp;费</td>
<td style="color: red;"><input style="width:300px;text-align:center;" type="text" name="Je" value="${dqtx.je}">*</td>
</tr>
<tr>
<td colspan="4" align="left">
<button class="edit" type="button" onclick="window.history.back(-1);">
<i style="display:none;" class="fa fa-arrow-left"></i>
返回
</button>
<button class="remove" type="submit">
<i style="display:none;" class="fa fa-save"></i>
提交
</button>
</td>
</tr>
</table>
</form><h1>附件1</h1>
<img id="edit_photo1" alt="照片" style="max-width: 1000px; max-height: 1000px;" title="照片" src="${basePath}dqtx?method=getPhoto1&ID=${dqtx.id}" class="masthead" />
<form id="uploadForm1" method="post" enctype="multipart/form-data" action="${basePath}dqtx?method=SetPhoto1" target="mainFrame">
<input type="hidden" name="Id" id="set-photo-id" value="${dqtx.id}">
<input class="easyui-filebox" name="photo" data-options="prompt:'选择照片'" style="width:200px;">
<input id="upload-photo-btn1" onClick="uploadPhoto1()" class="easyui-linkbutton" style="width: 50px; height: 40px;" type="button" value="上传"/>
</form><h1>附件2</h1>
<img id="edit_photo2" alt="照片" style="max-width: 1000px; max-height: 1000px;" title="照片" src="${basePath}dqtx?method=getPhoto2&ID=${dqtx.id}" class="masthead" />
<form id="uploadForm2" method="post" enctype="multipart/form-data" action="${basePath}dqtx?method=SetPhoto2" target="mainFrame">
<input type="hidden" name="Id" id="set-photo-id" value="${dqtx.id}">
<input class="easyui-filebox" name="photo" data-options="prompt:'选择照片'" style="width:200px;">
<input id="upload-photo-btn2" onClick="uploadPhoto2()" class="easyui-linkbutton" style="width: 50px; height: 40px;" type="button" value="上传"/>
</form>
</div>
</body>
</html>
+66
View File
@@ -0,0 +1,66 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>跟进方式新增页面</title>
<link rel="stylesheet" href="${basePath}static/css/styles.css" />
<link rel="stylesheet" href="${basePath}static/css/font-awesome-4.7.0/css/font-awesome.min.css" />
<script src="${basePath}static/js/jquery.min.js" type="text/javascript"></script>
<script src="${basePath}static/js/jquery-validation-1.14.0/jquery.validate.js" type="text/javascript"></script>
<script src="${basePath}static/js/jquery-validation-1.14.0/localization/messages_zh.js" type="text/javascript"></script>
<script src="${basePath}static/js/click.js"></script>
<script type="text/javascript">
//表单 必填项验证
$(function(){
$("#addForm").validate({
rules:{
Gjfs:{
required:true
}
}
/* messages:{
stuPwd:{
rangelength:$.validator.format( "Please enter a value between {0} and {1} characters long.")
}
} */
});
});
</script>
<style type="text/css">
@media screen and (max-width:1000px){
*{
font-size:30px;
}
</style>
</head>
<body>
<div class="add">
<form id="addForm" action="${basePath}gjfs?method=add" method="post">
<table class="tableadd" style="width: 800px;">
<tr>
<td style="width:100px;">跟进方式</td>
<td style="color: red;"><input type="text" name="Gjfs" placeholder="请输入跟进方式">*</td>
</tr>
<tr>
<td colspan="4" align="left">
<button class="edit" type="button" onclick="window.history.back(-1);">
<i style="display:none;" class="fa fa-arrow-left"></i>
返回
</button>
<button class="remove" type="submit">
<i style="display:none;" class="fa fa-save"></i>
提交
</button>
</td>
</tr>
</table>
</form>
</div>
</body>
</html>
+84
View File
@@ -0,0 +1,84 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>跟进方式列表</title>
<link rel="stylesheet" href="${basePath}static/css/styles.css" />
<link rel="stylesheet" href="${basePath}static/css/font-awesome-4.7.0/css/font-awesome.min.css" />
<script src="${basePath}static/js/jquery.min.js" type="text/javascript"></script>
<script src="${basePath}static/js/click.js"></script>
<script type="text/javascript">
$(function(){
$('.remove').click(function(){
if(confirm("确定要删除吗?")){
window.location.href="${basePath}gjfs?method=delete&id="+$(this).attr("keyword");
}
})
})
</script>
<style type="text/css">
@media screen and (max-width:1000px){
*{
font-size:30px;
}
.tablelist .caozuo{
width:250px;
}
</style>
</head>
<body>
<form action="${basePath}gjfs?method=list" method="post">
<div class="condition">
ID<input type="text" name="Id" value="${gjfs.id}">
跟进方式:<input type="text" name="Gjfs" value="${gjfs.gjfs}">
<button>
<i style="display:none;" class="fa fa-search"></i>
查询
</button>
<button type="button" onclick="window.location.href='page/gjfs/add.jsp'">
<i style="display:none;" class="fa fa-plus"></i>
新增
</button>
</div>
</form>
<form action="${basePath}gjfs?method=list" id="tableList" method="post">
<input type="hidden" name="pageNo" value="${pageInfo.pageNo}">
<input type="hidden" name="Id" value="${gjfs.id}">
<input type="hidden" name="Gjfs" value="${gjfs.gjfs}">
<table class="tablelist">
<thead>
<tr>
<th style="width:60px;">ID</th>
<th width="120px">操作</th>
<th>跟进方式</th>
</tr>
</thead>
<c:forEach items="${pageInfo.list}" var="gjfs">
<tr>
<td>${gjfs.id}</td>
<td class="caozuo">
<button class="edit" type="button" onclick="window.location.href='${basePath}gjfs?method=edit&id=${gjfs.id}'">
<i style="display:none;" class="fa fa-edit"></i>
修改
</button>
<button class="remove" type="button" keyword="${gjfs.id}">
<i style="display:none;" class="fa fa-remove"></i>
删除
</button>
</td>
<td>${gjfs.gjfs}</td>
</tr>
</c:forEach>
</table>
<%@include file="../inc/page.jsp"%>
</form>
</body>
</html>
+68
View File
@@ -0,0 +1,68 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>跟进方式修改页面</title>
<link rel="stylesheet" href="${basePath}static/css/styles.css" />
<link rel="stylesheet" href="${basePath}static/css/font-awesome-4.7.0/css/font-awesome.min.css" />
<script src="${basePath}static/js/jquery.min.js" type="text/javascript"></script>
<script src="${basePath}static/js/jquery-validation-1.14.0/jquery.validate.js" type="text/javascript"></script>
<script src="${basePath}static/js/jquery-validation-1.14.0/localization/messages_zh.js" type="text/javascript"></script>
<script src="${basePath}static/js/click.js"></script>
<script type="text/javascript">
//表单 验证 必填项
$(function(){
$("#editForm").validate({
rules:{
Gjfs:{
required:true
}
}
/* messages:{
stuPwd:{
rangelength:$.validator.format( "Please enter a value between {0} and {1} characters long.")
}
} */
});
});
</script>
<style type="text/css">
@media screen and (max-width:1000px){
*{
font-size:30px;
}
</style>
</head>
<body>
<div class="add">
<form id="editForm" action="${basePath}gjfs?method=editsubmit" method="post">
<input type="hidden" name="Id" value="${gjfs.id}">
<table class="tableadd" style="width: 100%;">
<tr>
<td style="width:100px;">跟进方式</td>
<td style="color: red;"><input type="text" name="Gjfs" value="${gjfs.gjfs}">*</td>
</tr>
<tr>
<td colspan="4" align="left">
<button class="edit" type="button" onclick="window.history.back(-1);">
<i style="display:none;" class="fa fa-arrow-left"></i>
返回
</button>
<button class="remove" type="submit">
<i style="display:none;" class="fa fa-save"></i>
提交
</button>
</td>
</tr>
</table>
</form>
</div>
</body>
</html>
+149
View File
@@ -0,0 +1,149 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>跟进记录新增页面</title>
<link rel="stylesheet" href="${basePath}static/css/styles.css" />
<link rel="stylesheet" href="${basePath}static/css/font-awesome-4.7.0/css/font-awesome.min.css" />
<script src="${basePath}static/js/jquery.min.js" type="text/javascript"></script>
<script src="${basePath}static/js/jquery-validation-1.14.0/jquery.validate.js" type="text/javascript"></script>
<script src="${basePath}static/js/jquery-validation-1.14.0/localization/messages_zh.js" type="text/javascript"></script>
<script type="text/javascript" src="${basePath}static/js/My97DatePicker/WdatePicker.js"></script>
<script src="${basePath}static/js/click.js"></script>
<script type="text/javascript">
//表单 验证 必填项
$(function(){
$("#editForm").validate({
rules:{
Rq:{
required:true
},
Gjnr:{
required:true
}
}
/* messages:{
stuPwd:{
rangelength:$.validator.format( "Please enter a value between {0} and {1} characters long.")
}
} */
});
});
//datetime-local 默认取当前时间
$(function(){
var today = new Date();//返回当前日期时间
var yyyy = today.getFullYear();//获取当前年份
var MM = today.getMonth() + 1;//因为getMonth()方法获取的是索引值,所以要+1
var dd = today.getDate();//返回一个月中的某一天
var hh = today.getHours();//返回小时 (0 ~ 23)
var mm = today.getMinutes();//返回分钟 (0 ~ 59)
MM = checkTime(MM);//调用下面的checkTime函数,设置小于10的时间数字格式,例如5秒显示成05秒
dd = checkTime(dd);
hh = checkTime(hh);
mm = checkTime(mm);
var time = yyyy + "-" + MM + "-" + dd + "T" + hh + ":" + mm;
var dateControl = $("#currentDate");
dateControl.val(time);
function checkTime(i) {
if (i < 10) {
i = "0" + i;//这里如果是一位数则在前面添加一位0
}
return i;
}
});
</script>
<style type="text/css">
.kh_bz{
width: 260px;
height: 350px;
border:1px solid #1a1a1a;
}
@media screen and (max-width:1000px){
*{
font-size:30px;
}
.tableadd{
padding-left:0;
}
.tableadd td{
height:100px;
width:160px;
}
.kh_bz{
width:450px;
height: 600px;
}
.tableadd td button{
font-size:30px;
margin-left:100px;
margin-top:30px;
}
}
</style>
</head>
<body>
<div class="add">
<form id="editForm" action="${basePath}gjjl?method=add" method="post">
<input type="hidden" name="Khid" value="${kehu.id}">
<input type="hidden" name="Usid" value="${user.id}">
<table class="tableadd" style="width: 800px;">
<tr>
<td>客户名称</td>
<!-- input 不可编辑方法 1<input type="text" readonly="readonly" 2input type="text" disabled="disabled" -->
<td style="color: red;"><input type="text" style="text-align:center;color: blue;font-weight:bold;" disabled="disabled" name="Khmc" value="${kehu.name}"></td>
</tr>
<!--<tr>
<td>跟进时间</td>
<td style="color: red;"><input name="Rq" class="Rq_select" id="currentDate" onFocus="WdatePicker({readOnly:true,dateFmt:'yyyy-MM-dd HH:mm:ss'})">*</td>
</tr>-->
<tr>
<td>跟进时间</td>
<td style="color: red;"><input type="datetime-local" name="Rq" class="Rq_select" id="currentDate">*</td>
</tr>
<tr>
<td>跟进方式</td>
<td style="color: red;">
<select id="gjfs" name="Fsid" class="gjfs_select">
<c:forEach items="${list_gjfs}" var="list_gjfs">
<option value="${list_gjfs.id}">${list_gjfs.gjfs}</option>
</c:forEach>
</select>
</td>
</tr>
<tr>
<td>跟进内容</td>
<td style="color: red;">
<textarea maxlength="500" style="resize: none;margin-top:0px;" id="khbz" name="Gjnr" class="kh_bz" placeholder="请输入跟进内容,多行信息请回车!" ></textarea>
*
</td>
</tr>
<tr>
<td colspan="4" align="left">
<button class="edit" type="button" onclick="window.history.back(-1);">
<i style="display:none;" class="fa fa-arrow-left"></i>
返回
</button>
<button class="remove" type="submit">
<i style="display:none;" class="fa fa-save"></i>
提交
</button>
</td>
</tr>
</table>
</form>
</div>
</body>
</html>
+168
View File
@@ -0,0 +1,168 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>跟进记录修改页面</title>
<link rel="stylesheet" href="${basePath}static/css/styles.css" />
<link rel="stylesheet" href="${basePath}static/css/font-awesome-4.7.0/css/font-awesome.min.css" />
<script src="${basePath}static/js/jquery.min.js" type="text/javascript"></script>
<script src="${basePath}static/js/jquery-validation-1.14.0/jquery.validate.js" type="text/javascript"></script>
<script src="${basePath}static/js/jquery-validation-1.14.0/localization/messages_zh.js" type="text/javascript"></script>
<script type="text/javascript" src="${basePath}static/js/My97DatePicker/WdatePicker.js"></script>
<script src="${basePath}static/js/click.js"></script>
<script type="text/javascript">
//表单 验证 必填项
$(function(){
$("#editForm").validate({
rules:{
Rq:{
required:true
},
Gjnr:{
required:true
}
}
/* messages:{
stuPwd:{
rangelength:$.validator.format( "Please enter a value between {0} and {1} characters long.")
}
} */
});
});
//datetime-local 默认取当前时间
$(function(){
//var today = new Date();//返回当前日期时间
//var yyyy = today.getFullYear();//获取当前年份
//var MM = today.getMonth() + 1;//因为getMonth()方法获取的是索引值,所以要+1
//var dd = today.getDate();//返回一个月中的某一天
//var hh = today.getHours();//返回小时 (0 ~ 23)
//var mm = today.getMinutes();//返回分钟 (0 ~ 59)
//MM = checkTime(MM);//调用下面的checkTime函数,设置小于10的时间数字格式,例如5秒显示成05秒
//dd = checkTime(dd);
//hh = checkTime(hh);
//mm = checkTime(mm);
//var time = yyyy + "-" + MM + "-" + dd + "T" + hh + ":" + mm;
var time = '${gjjl.rq}';
var dateControl = $("#currentDate");
dateControl.val(time);
//function checkTime(i) {
// if (i < 10) {
// i = "0" + i;//这里如果是一位数则在前面添加一位0
// }
// return i;
//}
});
</script>
<style type="text/css">
.kh_bz{
width: 260px;
height: 350px;
border:1px solid #1a1a1a;
}
@media screen and (max-width:1000px){
*{
font-size:30px;
}
.tableadd{
padding-left:0;
}
.tableadd td{
height:100px;
width:160px;
}
.kh_bz{
width:450px;
height: 600px;
}
.tableadd td button{
font-size:30px;
margin-left:100px;
margin-top:30px;
}
}
</style>
</head>
<body>
<div class="add">
<form id="editForm" action="${basePath}gjjl?method=editsubmit" method="post">
<input type="hidden" name="Id" value="${gjjl.id}">
<input type="hidden" name="Khmc" value="${gjjl.khid}">
<input type="hidden" name="User" value="${user.name}">
<table class="tableadd" style="width: 800px;">
<tr>
<td>客户名称</td>
<!-- input 不可编辑方法 1<input type="text" readonly="readonly" 2input type="text" disabled="disabled" -->
<td style="color: red;"><input type="text" style="text-align:center;color: blue;font-weight:bold;" disabled="disabled" name="Khmc" value="${gjjl.khid}"></td>
</tr>
<!--<tr>
<td>跟进时间</td>
<td style="color: red;"><input name="Rq" class="Rq_select" id="currentDate" onFocus="WdatePicker({readOnly:true,dateFmt:'yyyy-MM-dd HH:mm:ss'})">*</td>
</tr>-->
<tr>
<td>跟进时间</td>
<td style="color: red;"><input type="datetime-local" name="Rq" class="Rq_select" id="currentDate" value="${gjjl.rq}">*</td>
</tr>
<tr>
<td>跟进方式</td>
<!--
<td style="color: red;">
<select id="gjfs" name="Fsid" class="gjfs_select">
<c:forEach items="${list_gjfs}" var="list_gjfs">
<option value="${list_gjfs.id}">${list_gjfs.gjfs}</option>
</c:forEach>
</select>
</td>
-->
<!-- select遍历list默认选中初始值 -->
<td style="color: red;">
<select id="gjfs" name="Fsid" class="gjfs_select">
<c:forEach items="${list_gjfs}" var="list_gjfs">
<c:choose>
<c:when test="${list_gjfs.id eq gjjl.fsid}">
<option value="${list_gjfs.id}" selected="selected">${list_gjfs.gjfs} </option>
</c:when>
<c:otherwise>
<option value="${list_gjfs.id}">${list_gjfs.gjfs}</option>
</c:otherwise>
</c:choose>
</c:forEach>
</select>
</td>
</tr>
<tr>
<td>跟进内容</td>
<td style="color: red;">
<textarea id="qrcodefortemcontent" maxlength="500" style="resize: none;margin-top:0px;" id="khbz" name="Gjnr" class="kh_bz" placeholder="请输入跟进内容,多行信息请回车!" >${gjjl.gjnr}</textarea>
*
</td>
</tr>
<tr>
<td colspan="4" align="left">
<button class="edit" type="button" onclick="window.history.back(-1);">
<i style="display:none;" class="fa fa-arrow-left"></i>
返回
</button>
<button class="remove" type="submit">
<i style="display:none;" class="fa fa-save"></i>
提交
</button>
</td>
</tr>
</table>
</form>
</div>
</body>
</html>
+204
View File
@@ -0,0 +1,204 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>跟进记录列表</title>
<link rel="stylesheet" href="${basePath}static/css/styles.css" />
<link rel="stylesheet" href="${basePath}static/css/font-awesome-4.7.0/css/font-awesome.min.css" />
<script src="${basePath}static/js/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript" src="${basePath}static/js/My97DatePicker9/WdatePicker.js"></script>
<script src="${basePath}static/js/click.js"></script>
<script type="text/javascript">
//导出按钮监听事件
$(function() {
$("#export").click(function(){
var Id = myform.gjid.value;
var Khid = myform.khmc.value;
var Usid = myform.gjr.value;
var Rq_start = myform.gjrq_s.value;
var Rq_end = myform.gjrq_e.value;
if(confirm("确定要导出吗?")){
url = '${basePath}gjjl?method=exportGjjl&Id='+Id+"&Khid="+Khid+"&Usid="+Usid+"&Rq_s="+Rq_start+"&Rq_e="+Rq_end;
window.location.href = url;
}
});
});
</script>
<script type="text/javascript">
$(function(){
$('.remove').click(function(){
if(confirm("确定要删除吗?")){
window.location.href="${basePath}gjjl?method=delete&ID="+$(this).attr("keyword")+"&User=${user.name}";
}
})
})
</script>
<style type="text/css">
.kehu_name:hover{
font-size:18px;
}
.edit:hover{
font-size:18px;
color:#fa541c;
}
.remove:hover{
font-size:18px;
}
/*修改提示框*/
#mytitle {
position: absolute;
color: #ffffff;
max-width: 160px;
font-size: 20px;
padding: 4px;
background: rgba(40, 40, 40, 0.8);
border: solid 1px #e9f7f6;
border-radius:5px;
}
@media screen and (max-width:1000px){
*{
font-size:20px;
}
}
</style>
<script type="text/javascript">
$(function () {
var x = 10;
var y = 20;
var newtitle = '';
$('a.kehu_name').mouseover(function (e) {
newtitle = this.title;
this.title = '';
$('body').append('<div id="mytitle" >' + newtitle + '</div>');
$('#mytitle').css({
'left': (e.pageX + x + 'px'),
'top': (e.pageY + y - 80 + 'px')
}).show();
}).mouseout(function () {
this.title = newtitle;
$('#mytitle').remove();
}).mousemove(function (e) {
$('#mytitle').css({
'left': (e.pageX + x +10 + 'px'),
'top': (e.pageY + y - 60 + 'px')
}).show();
})
});
</script>
</head>
<body>
<%
String mess=(String)session.getAttribute("msg");
session.removeAttribute("msg");
if("".equals(mess) || mess==null){
}
else{%>
<script type="text/javascript">
alert("<%=mess%>");
//刷新当前页面 清空session
window.location.reload();
</script>
<% }%>
<form id="myform" action="${basePath}gjjl?method=list" method="post">
<div class="condition" >
ID<input type="text" id="gjid" name="Id" value="${gjjl.id}" style="width:30px;">
客户:<input type="text" id="khmc" name="Khid" value="${gjjl.khid}"style="width:100px;">
跟进人:<input type="text" id="gjr" name="Usid" value="${gjjl.usid}" style="width:70px;">
日期:<input id="gjrq_s" name="Rq_s" value="${gjjl.rq}" style="width: 120px;" onFocus="WdatePicker({readOnly:true,dateFmt:'yyyy-MM-dd'})" /> 至
<input id="gjrq_e" name="Rq_e" value="${gjjl.rq_e}" style="width:120px;" onFocus="WdatePicker({readOnly:true,dateFmt:'yyyy-MM-dd'})" />
<button >
<i style="display:none;" class="fa fa-search" ></i>
查询
</button>
<a id="export" href="javascript:;" class="exp" data-options="iconCls:'icon-add',plain:true" style="text-decoration: none;">
<i style="display:none;" class="fa fa-upload"></i>
导出
</a>
<a id="reply" href="${basePath}gjjl?method=list" class="rep" data-options="iconCls:'icon-add',plain:true" style="text-decoration: none;">
<i style="display:none;" class="fa fa-refresh" aria-hidden="true"></i>
重置
</a>
</div >
</form>
<form action="${basePath}gjjl?method=list" id="tableList" method="post">
<input type="hidden" name="pageNo" value="${pageInfo.pageNo}">
<input type="hidden" name="Id" value="${gjjl.id}">
<input type="hidden" name="Khid" value="${gjjl.khid}">
<input type="hidden" name="Fsid" value="${gjjl.fsid}">
<input type="hidden" name="Usid" value="${gjjl.usid}">
<input type="hidden" name="Gjnr" value="${gjjl.gjnr}">
<input type="hidden" name="Rq_s" value="${gjjl.rq}">
<input type="hidden" name="Rq_e" value="${gjjl.rq_e}">
<table class="tablelist">
<thead>
<tr>
<th class = "gj_id">ID</th>
<!-- 用户才能有操作权限 -->
<c:if test="${type == 1}">
<th class = "cz" style="width:140px;">操作</th>
</c:if>
<th class = "khmc_gj">客户名称</th>
<th class = "gjfs">跟进方式</th>
<th class = "gjr">跟进人</th>
<th>跟进内容</th>
<th class = "gjsj">跟进时间</th>
</tr>
</thead>
<c:forEach items="${pageInfo.list}" var="gjjl">
<tr>
<td>${gjjl.id}</td>
<!-- 用户才能有操作权限 -->
<c:if test="${type == 1}">
<c:if test="${gjjl.usid == user.name}">
<td style="text-align: center;">
<button class="edit" type="button" onclick="window.location.href='${basePath}gjjl?method=edit&ID=${gjjl.id}'">
<i style="display:none;" class="fa fa-edit"></i>
修改
</button>
<button class="remove" type="button" keyword="${gjjl.id}">
<i style="display:none;" class="fa fa-remove"></i>
删除
</button>
</td>
</c:if>
<c:if test="${gjjl.usid != user.name}">
<td style="text-align: center;" >
<h1 class="note"style="color:#999999;">非本人无法操作</h1>
</td>
</c:if>
</c:if>
<td>${gjjl.khid}</td>
<td>${gjjl.fsid}</td>
<td>${gjjl.usid}</td>
<td>${gjjl.gjnr}</td>
<td>${gjjl.rq}</td>
</tr>
</c:forEach>
</table>
<%@include file="../inc/page.jsp"%>
</form>
</body>
</html>
+29
View File
@@ -0,0 +1,29 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<table class="page">
<td>
<button type="button" key="1">首页</button>
<button type="button" <c:if test="${pageInfo.firstPage == true}">disabled</c:if> key="${pageInfo.prePage}">上一页</button>
<button type="button" <c:if test="${pageInfo.lastPage == true}">disabled</c:if> key="${pageInfo.nextPage}">下一页</button>
<button type="button" key="${pageInfo.totalPage}">尾页</button>
<input type="text" class="page-no" id="page-no" value="${pageInfo.pageNo}" />
<button type="button" class="zhuan">转</button>
总记录条数${pageInfo.totalCount}条,当前${pageInfo.pageNo}/${pageInfo.totalPage}页 每页${pageInfo.pageSize}条数据
</td>
</table>
<script type="text/javascript">
$(function(){
$('.page .zhuan').click(function(){
if(parseInt($('#page-no').val())<=parseInt("${pageInfo.totalPage}")){
$('input[name="pageNo"]').val($('#page-no').val());
$("#tableList").submit();
}else{
alert("不能大于总页数");
}
});
$('.page button:not(.zhuan)').click(function(){
$('input[name="pageNo"]').val($(this).attr("key"));
$("#tableList").submit();
})
})
</script>
+101
View File
@@ -0,0 +1,101 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>客户新增页面</title>
<link rel="stylesheet" href="${basePath}static/css/styles.css" />
<link rel="stylesheet" href="${basePath}static/css/font-awesome-4.7.0/css/font-awesome.min.css" />
<script src="${basePath}static/js/jquery.min.js" type="text/javascript"></script>
<script src="${basePath}static/js/jquery-validation-1.14.0/jquery.validate.js" type="text/javascript"></script>
<script src="${basePath}static/js/jquery-validation-1.14.0/localization/messages_zh.js" type="text/javascript"></script>
<script src="${basePath}static/js/click.js"></script>
<script type="text/javascript">
$(function(){
$("#addForm").validate({
rules:{
Name:{
required:true
}
}
/* messages:{
stuPwd:{
rangelength:$.validator.format( "Please enter a value between {0} and {1} characters long.")
}
} */
});
});
</script>
<style type="text/css">
.kh_bz{
width: 260px;
height: 350px;
border:1px solid #1a1a1a;
margin-top:20px;
resize: none;/*超级文本框右下角拖拽放大按钮*/
}
@media screen and (max-width:1000px){
*{
font-size:30px;
}
.tableadd{
padding-left:0;
}
.tableadd td{
height:100px;
width:160px;
}
.kh_bz{
width:400px;
height: 600px;
}
.tableadd td button{
font-size:50px;
margin-left:100px;
margin-top:50px;
}
</style>
</head>
<body>
<div class="add">
<form id="addForm" action="${basePath}kehu?method=add" method="post">
<table class="tableadd" style="width: 800px;">
<tr>
<td>客户名称</td>
<td style="color: red;"><input type="text" name="Name"></td>
</tr>
<tr>
<td>备注信息</td>
<td style="color: red;" >
<textarea maxlength="500" id="khbz" name="Bz" class="kh_bz" placeholder="请输入客户的附加信息,多行信息请回车!" ></textarea>
建议填写,完善信息方便管理!
</td>
</tr>
<tr>
<td colspan="4" align="left">
<button class="edit" type="button" onclick="window.history.back(-1);">
<i style="display:none;" class="fa fa-arrow-left"></i>
返回
</button>
<button class="remove" type="submit">
<i style="display:none;" class="fa fa-save"></i>
提交
</button>
</td>
</tr>
</table>
</form>
</div>
</body>
</html>
+89
View File
@@ -0,0 +1,89 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>客户信息列表</title>
<link rel="stylesheet" href="${basePath}static/css/styles.css" />
<link rel="stylesheet" href="${basePath}static/css/font-awesome-4.7.0/css/font-awesome.min.css" />
<script src="${basePath}static/js/jquery.min.js" type="text/javascript"></script>
<script src="${basePath}static/js/click.js"></script>
<script type="text/javascript">
$(function(){
$('.remove').click(function(){
if(confirm("确定要删除吗?")){
window.location.href="${basePath}kehu?method=delete&id="+$(this).attr("keyword");
}
})
})
</script>
<style type="text/css">
@media screen and (max-width:1000px){
*{
font-size:30px;
}
</style>
</head>
<body>
<form action="${basePath}kehu?method=list" method="post">
<div class="condition">
ID<input type="text" style="width:40px; name="Id" value="${kehu.id}" >
客户名称:<input type="text" name="Name" value="${kehu.name}">
备注:<input type="text" name="Bz" value="${kehu.bz}">
<button>
<i style="display:none;" class="fa fa-search"></i>
查询
</button>
<button type="button" onclick="window.location.href='page/kehu/add.jsp'">
<i style="display:none;" class="fa fa-plus"></i>
新增
</button>
<a><i style="display:none;" class="fa fa-upload" aria-hidden="true"></i>导入</a>
</div>
</form>
<form action="${basePath}kehu?method=list" id="tableList" method="post">
<input type="hidden" name="pageNo" value="${pageInfo.pageNo}">
<input type="hidden" name="Id" value="${kehu.id}">
<input type="hidden" name="Name" value="${kehu.name}">
<input type="hidden" name="Bz" value="${kehu.bz}">
<table class="tablelist">
<thead>
<tr>
<th>ID</th>
<th width="120px" class="caozuo">操作</th>
<th class = "khmc">客户名称</th>
<th>片区</th>
<th>备注信息</th>
</tr>
</thead>
<c:forEach items="${pageInfo.list}" var="kehu">
<tr>
<td>${kehu.id}</td>
<td >
<button class="edit" type="button" onclick="window.location.href='${basePath}kehu?method=edit&id=${kehu.id}'">
<i style="display:none;" class="fa fa-edit"></i>
修改
</button>
<button class="remove" type="button" keyword="${kehu.id}">
<i style="display:none;" class="fa fa-remove"></i>
删除
</button>
</td>
<td><a href="${basePath}kehu?method=edit&id=${kehu.id}" style="text-decoration: none;">${kehu.name}</a></td>
<td>${kehu.pq}</td>
<td>${kehu.bz}</td>
</tr>
</c:forEach>
</table>
<%@include file="../inc/page.jsp"%>
</form>
</body>
</html>
+137
View File
@@ -0,0 +1,137 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>员工_客户信息界面</title>
<link rel="stylesheet" href="${basePath}static/css/styles.css" />
<link rel="stylesheet" href="${basePath}static/css/font-awesome-4.7.0/css/font-awesome.min.css" />
<script src="${basePath}static/js/jquery.min.js" type="text/javascript"></script>
<script src="${basePath}static/js/click.js"></script>
<style type="text/css">
.kehu_name:hover{
font-size:18px;
}
.edit:hover{
font-size:18px;
color:#fa541c;
}
/*修改提示框*/
#mytitle {
position: absolute;
color: #ffffff;
max-width: 160px;
font-size: 20px;
padding: 4px;
background: rgba(40, 40, 40, 0.8);
border: solid 1px #e9f7f6;
border-radius:5px;
}
@media screen and (max-width:1000px){
*{
font-size:20px;
}
}
</style>
<script type="text/javascript">
$(function () {
var x = 10;
var y = 20;
var newtitle = '';
$('a.kehu_name').mouseover(function (e) {
newtitle = this.title;
this.title = '';
$('body').append('<div id="mytitle" >' + newtitle + '</div>');
$('#mytitle').css({
'left': (e.pageX + x + 'px'),
'top': (e.pageY + y - 80 + 'px')
}).show();
}).mouseout(function () {
this.title = newtitle;
$('#mytitle').remove();
}).mousemove(function (e) {
$('#mytitle').css({
'left': (e.pageX + x +10 + 'px'),
'top': (e.pageY + y - 60 + 'px')
}).show();
})
});
</script>
</head>
<body>
<%
String mess=(String)session.getAttribute("msg");
session.removeAttribute("msg");
if("".equals(mess) || mess==null){
}
else{%>
<script type="text/javascript">
alert("<%=mess%>");
//刷新当前页面 清空session
window.location.reload();
</script>
<% }%>
<form action="${basePath}kehu?method=list1" method="post">
<div class="condition">
ID<input type="text" style="width:30px;" name="Id" value="${kehu.id}">
客户名称:<input type="text" name="Name" value="${kehu.name}">
备注:<input type="text" name="Bz" value="${kehu.bz}" >
<button>
<i style="display:none;" class="fa fa-search"></i>
查询
</button>
<a id="reply" href="${basePath}kehu?method=list1" class="rep" data-options="iconCls:'icon-add',plain:true" style="text-decoration: none;">
<i style="display:none;" class="fa fa-refresh" aria-hidden="true"></i>
重置
</a>
</div>
</form>
<form action="${basePath}kehu?method=list1" id="tableList" method="post">
<input type="hidden" name="pageNo" value="${pageInfo.pageNo}">
<input type="hidden" name="Id" value="${kehu.id}">
<input type="hidden" name="Name" value="${kehu.name}">
<input type="hidden" name="Bz" value="${kehu.bz}">
<table class="tablelist">
<thead>
<tr>
<th>ID</th>
<th class="caozuo_gj" style="width:80px">操作</th>
<th class = "khmc">客户名称</th>
<th>片区</th>
<th>备注信息</th>
</tr>
</thead>
<c:forEach items="${pageInfo.list}" var="kehu">
<tr>
<td>${kehu.id}</td>
<td align="center">
<button class="edit" type="button" onclick="window.location.href='${basePath}gjjl?method=gj&id=${kehu.id}'" style="font-weight:bold">
<i style="display:none;" class="fa fa-pencil-square-o" aria-hidden="true"></i>
跟进
</button>
</td>
<td>${kehu.name}</td>
<td>${kehu.pq}</td>
<td>${kehu.bz}</td>
</tr>
</c:forEach>
</table>
<%@include file="../inc/page.jsp"%>
</form>
</body>
</html>
+106
View File
@@ -0,0 +1,106 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>客户信息修改页面</title>
<link rel="stylesheet" href="${basePath}static/css/styles.css" />
<link rel="stylesheet" href="${basePath}static/css/font-awesome-4.7.0/css/font-awesome.min.css" />
<script src="${basePath}static/js/jquery.min.js" type="text/javascript"></script>
<script src="${basePath}static/js/jquery-validation-1.14.0/jquery.validate.js" type="text/javascript"></script>
<script src="${basePath}static/js/jquery-validation-1.14.0/localization/messages_zh.js" type="text/javascript"></script>
<script src="${basePath}static/js/click.js"></script>
<script type="text/javascript">
/*表单验证*/
$(function(){
$("#editForm").validate({
rules:{
Name:{
required:true
}
}
/* messages:{
stuPwd:{
rangelength:$.validator.format( "Please enter a value between {0} and {1} characters long.")
}
} */
});
});
</script>
<style type="text/css">
.kh_bz{
width: 260px;
height: 350px;
border:1px solid #1a1a1a;
margin-top:20px;
resize: none;/*超级文本框右下角拖拽放大按钮*/
}
@media screen and (max-width:1000px){
*{
font-size:30px;
}
.tableadd{
padding-left:0;
}
.tableadd td{
height:100px;
width:160px;
}
.kh_bz{
width:400px;
height: 600px;
}
.tableadd td button{
font-size:50px;
margin-left:100px;
margin-top:50px;
}
</style>
</head>
<body>
<div class="add">
<form id="editForm" action="${basePath}kehu?method=editsubmit" method="post">
<input type="hidden" name="Id" value="${kehu.id}">
<table class="tableadd" style="width: 100%;">
<tr>
<td style="width:100px;">客户姓名</td>
<td style="color: red;"><input type="text" name="Name" value="${kehu.name}"></td>
</tr>
<tr>
<td>片区</td>
<td style="color: red;"><input type="text" name="Pq" value="${kehu.pq}"></td>
</tr>
<tr>
<td >备注信息</td>
<td style="color: red;"><textarea maxlength="500" id="khbz" name="Bz" class="kh_bz" placeholder="请输入客户的附加信息" >${kehu.bz}</textarea>
建议填写,完善信息方便管理!</td>
</tr>
<tr>
<td colspan="4" align="left">
<button class="edit" type="button" onclick="window.history.back(-1);">
<i style="display:none;" class="fa fa-arrow-left"></i>
返回
</button>
<button class="remove" type="submit">
<i style="display:none;" class="fa fa-save"></i>
提交
</button>
</td>
</tr>
</table>
</form>
</div>
</body>
</html>
+196
View File
@@ -0,0 +1,196 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>PDA授权新增</title>
<script type="text/javascript" src="${basePath}static/js/jquery.min.1.12.4.js" ></script>
<link rel="stylesheet" href="${basePath}static/css/select2.min.css" />
<script type="text/javascript" src="${basePath}static/js/select2.min.js" ></script>
<link rel="stylesheet" href="${basePath}static/css/styles.css" />
<link rel="stylesheet" href="${basePath}static/css/font-awesome-4.7.0/css/font-awesome.min.css" />
<script src="${basePath}static/js/jquery-validation-1.14.0/jquery.validate.js" type="text/javascript"></script>
<script src="${basePath}static/js/jquery-validation-1.14.0/localization/messages_zh.js" type="text/javascript"></script>
<script type="text/javascript" src="${basePath}static/js/My97DatePicker/WdatePicker.js"></script>
<script src="${basePath}static/js/click.js"></script>
<script type="text/javascript">
//表单 验证 必填项
$(function(){
$("#editForm").validate({
rules:{
meid:{
required:true
},
khmc:{
required:true
}
}
/* messages:{
stuPwd:{
rangelength:$.validator.format( "Please enter a value between {0} and {1} characters long.")
}
} */
});
});
//datetime-local 默认取当前时间
$(function(){
var today = new Date();//返回当前日期时间
var yyyy = today.getFullYear();//获取当前年份
var MM = today.getMonth() + 1;//因为getMonth()方法获取的是索引值,所以要+1
var dd = today.getDate();//返回一个月中的某一天
var hh = today.getHours();//返回小时 (0 ~ 23)
var mm = today.getMinutes();//返回分钟 (0 ~ 59)
MM = checkTime(MM);//调用下面的checkTime函数,设置小于10的时间数字格式,例如5秒显示成05秒
dd = checkTime(dd);
hh = checkTime(hh);
mm = checkTime(mm);
var time = yyyy + "-" + MM + "-" + dd + "T" + hh + ":" + mm;
var dateControl = $("#currentDate");
dateControl.val(time);
function checkTime(i) {
if (i < 10) {
i = "0" + i;//这里如果是一位数则在前面添加一位0
}
return i;
}
});
</script>
<style type="text/css">
.kh_bz{
width: 260px;
height: 350px;
border:1px solid #1a1a1a;
}
.kehu_select{
height:30px;
width:160px;
}
.Rq_select{
height:30px;
width:160px;
}
@media screen and (max-width:1000px){
*{
font-size:30px;
}
.tableadd{
padding-left:0;
}
.tableadd td{
height:80px;
width:160px;
}
.kh_bz{
width:450px;
height: 600px;
}
.tableadd td button{
font-size:30px;
margin-left:100px;
margin-top:30px;
}
.kehu_select{
height:40px;
width:400px;
}
.Rq_select{
height:40px;
width:400px;
}
}
</style>
</head>
<body>
<div class="add">
<form id="editForm" action="${basePath}pda?method=add" method="post">
<table class="tableadd" style="width: 800px;">
<tr>
<td style="width:100px;height:40px;">客户名称</td>
<td style="color: red;">
<select name="khmc" class="kehu_select" >
<option value="" style="display: none;">---请选择客户---</option>
<c:forEach items="${list_kehu}" var="list_kehu">
<option value="${list_kehu.id}">${list_kehu.name}</option>
</c:forEach>
</select>*
</td>
</tr>
<tr>
<td>产品</td>
<!-- input 不可编辑方法 1<input type="text" readonly="readonly" 2input type="text" disabled="disabled" -->
<td style="color: red;">
<select id="gjfs" name="product" class="gjfs_select">
<option value="AM-DAQ" selected>AM-DAQ</option>
<option value="AM-WMS">AM-WMS</option>
<option value="AM-POS">AM-POS</option>
</select>
</td>
</tr>
<tr>
<td>设备ID</td>
<!-- input 不可编辑方法 1<input type="text" readonly="readonly" 2input type="text" disabled="disabled" -->
<td style="color: red;"><input type="text" style="" name="meid" >*</td>
</tr>
<tr>
<td>到期时间</td>
<td><input type="datetime-local" name="jzsj" class="Rq_select" id="currentDate"></td>
</tr>
<tr>
<td>备注</td>
<td><input type="text" name="bz" placeholder=""></td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
<tr>
<td colspan="4" align="left">
<button class="edit" type="button" onclick="window.history.back(-1);">
<i style="display:none;" class="fa fa-arrow-left"></i>
返回
</button>
<button class="remove" type="submit">
<i style="display:none;" class="fa fa-save"></i>
授权
</button>
</td>
</tr>
</table>
</form>
</div>
<script type="text/javascript">
$(document).ready(function () {//加载页面时执行select2
$('.kehu_select').select2();
});
</script>
</body>
</html>
+157
View File
@@ -0,0 +1,157 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>PDA授权修改</title>
<link rel="stylesheet" href="${basePath}static/css/styles.css" />
<link rel="stylesheet" href="${basePath}static/css/font-awesome-4.7.0/css/font-awesome.min.css" />
<script src="${basePath}static/js/jquery.min.js" type="text/javascript"></script>
<script src="${basePath}static/js/jquery-validation-1.14.0/jquery.validate.js" type="text/javascript"></script>
<script src="${basePath}static/js/jquery-validation-1.14.0/localization/messages_zh.js" type="text/javascript"></script>
<script type="text/javascript" src="${basePath}static/js/My97DatePicker/WdatePicker.js"></script>
<script src="${basePath}static/js/click.js"></script>
<script type="text/javascript">
//表单 验证 必填项
$(function(){
$("#editForm").validate({
rules:{
jzsj:{
required:true
},
khmc:{
required:true
}
}
/* messages:{
stuPwd:{
rangelength:$.validator.format( "Please enter a value between {0} and {1} characters long.")
}
} */
});
});
//datetime-local 默认取当前时间
//$(function(){
//var today = new Date();//返回当前日期时间
//var yyyy = today.getFullYear();//获取当前年份
//var MM = today.getMonth() + 1;//因为getMonth()方法获取的是索引值,所以要+1
//var dd = today.getDate();//返回一个月中的某一天
//var hh = today.getHours();//返回小时 (0 ~ 23)
//var mm = today.getMinutes();//返回分钟 (0 ~ 59)
//MM = checkTime(MM);//调用下面的checkTime函数,设置小于10的时间数字格式,例如5秒显示成05秒
//dd = checkTime(dd);
//hh = checkTime(hh);
//mm = checkTime(mm);
//var time = yyyy + "-" + MM + "-" + dd + "T" + hh + ":" + mm;
//var time = '${pda.JZSJ}';
//var dateControl = $("#currentDate");
//dateControl.val(time);
//function checkTime(i) {
// if (i < 10) {
// i = "0" + i;//这里如果是一位数则在前面添加一位0
// }
// return i;
//}
//});
</script>
<style type="text/css">
.kh_bz{
width: 260px;
height: 350px;
border:1px solid #1a1a1a;
}
@media screen and (max-width:1000px){
*{
font-size:30px;
}
.tableadd{
padding-left:0;
}
.tableadd td{
height:100px;
width:160px;
}
.kh_bz{
width:450px;
height: 600px;
}
.tableadd td button{
font-size:30px;
margin-left:100px;
margin-top:30px;
}
}
</style>
</head>
<body>
<div class="add">
<form id="editForm" action="${basePath}pda?method=editsubmit" method="post">
<!-- 隐藏属性 外传ID用 -->
<input type="hidden" name="id" value="${pda.ID}">
<input type="hidden" name="khmc" value="${pda.KHMC}">
<input type="hidden" name="meid" value="${pda.MEID}">
<table class="tableadd" style="width: 800px;">
<tr>
<td style="width:100px;">客户名称</td>
<!-- input 不可编辑方法 1<input type="text" readonly="readonly" 2input type="text" disabled="disabled" -->
<td><input type="text" disabled="disabled" name="khmc" value="${pda.KHMC}"></td>
</tr>
<tr>
<td>产 品</td>
<td><input type="text" disabled="disabled" name="product" value="${pda.PRODUCT}"></td>
</tr>
<tr>
<td>设备ID</td>
<td><input type="text" disabled="disabled" name="meid" value="${pda.MEID}"></td>
</tr>
<tr>
<td>授权码</td>
<td><input type="text" disabled="disabled" name="eid" value="${pda.EID}"></td>
</tr>
<tr>
<td>截止日期</td>
<td style="color: red;"><input type="datetime-local" name="jzsj" class="Rq_select" id="currentDate" value="${pda.JZSJ}">*</td>
</tr>
<tr>
<td>备注</td>
<td><input type="text" name="bz" value="${pda.BZ}"></td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
<tr>
<td colspan="4" align="left">
<button class="edit" type="button" onclick="window.history.back(-1);">
<i style="display:none;" class="fa fa-arrow-left"></i>
返回
</button>
<button class="remove" type="submit">
<i style="display:none;" class="fa fa-save"></i>
提交
</button>
</td>
</tr>
</table>
</form>
</div>
</body>
</html>
+230
View File
@@ -0,0 +1,230 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>PDA授权列表</title>
<link rel="stylesheet" href="${basePath}static/css/styles.css" />
<link rel="stylesheet" href="${basePath}static/css/font-awesome-4.7.0/css/font-awesome.min.css" />
<script src="${basePath}static/js/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript" src="${basePath}static/js/My97DatePicker9/WdatePicker.js"></script>
<script src="${basePath}static/js/click.js"></script>
<script type="text/javascript">
</script>
<script type="text/javascript">
$(function(){
$('.stop').click(function(){
window.location.href="${basePath}pda?method=stop&ID="+$(this).attr("keyword")+"&User=${user.name}";
});
$('.start').click(function(){
window.location.href="${basePath}pda?method=start&ID="+$(this).attr("keyword")+"&User=${user.name}";
});
$('.delete').click(function(){
if(confirm("确定要删除吗?")){
window.location.href="${basePath}pda?method=delete&ID="+$(this).attr("keyword")+"&User=${user.name}";
}
});
})
</script>
<style type="text/css">
.kehu_name:hover{
font-size:18px;
}
.edit:hover{
font-size:18px;
color:#fa541c;
}
.remove:hover{
font-size:18px;
}
.start:hover{
font-size:18px;
}
.stop:hover{
font-size:18px;
}
.delete:hover{
font-size:18px;
}
/*修改提示框*/
#mytitle {
position: absolute;
color: #ffffff;
max-width: 160px;
font-size: 20px;
padding: 4px;
background: rgba(40, 40, 40, 0.8);
border: solid 1px #e9f7f6;
border-radius:5px;
}
@media screen and (max-width:1000px){
*{
font-size:20px;
}
}
</style>
<script type="text/javascript">
$(function () {
var x = 10;
var y = 20;
var newtitle = '';
$('a.khmc').mouseover(function (e) {
newtitle = this.title;
this.title = '';
$('body').append('<div id="mytitle" >' + newtitle + '</div>');
$('#mytitle').css({
'left': (e.pageX + x + 'px'),
'top': (e.pageY + y - 80 + 'px')
}).show();
}).mouseout(function () {
this.title = newtitle;
$('#mytitle').remove();
}).mousemove(function (e) {
$('#mytitle').css({
'left': (e.pageX + x +10 + 'px'),
'top': (e.pageY + y - 60 + 'px')
}).show();
})
});
</script>
</head>
<body>
<%
String mess=(String)session.getAttribute("msg");
session.removeAttribute("msg");
if("".equals(mess) || mess==null){
}
else{%>
<script type="text/javascript">
alert("<%=mess%>");
//刷新当前页面 清空session
window.location.reload();
</script>
<% }%>
<form id="myform" action="${basePath}pda?method=list" method="post">
<div class="condition" >
客户:<input type="text" name="khmc" value="${pda.KHMC}" style="width:60px;margin-right:10px;">
备注:<input type="text" name="bz" value="${pda.BZ}" style="width:60px;margin-right:10px;">
设备ID<input type="text" name="meid" value="${pda.MEID}"style="width:120px;margin-right:10px;">
产品:<select style="width:100px;height:30px;margin-right:10px;" name="product">
<option value="${pda.PRODUCT}" selected>全部</option>
<option value="AM-DAQ">AM-DAQ</option>
<option value="AM-WMS">AM-WMS</option>
<option value="AM-POS">AM-POS</option>
</select>
状态:<select style="width:60px;height:30px;margin-right:10px;" name="state">
<option value="${pda.STATE}" selected>全部</option>
<option value="0">正常</option>
<option value="1">停用</option>
</select>
到期日期:<input name="jzsj" value="${pda.JZSJ}" style="width: 80px;" onFocus="WdatePicker({readOnly:true,dateFmt:'yyyy-MM-dd'})" /> 至
<input name="jzsj_e" value="${pda.JZSJ_E}" style="width:80px;margin-right:10px;" onFocus="WdatePicker({readOnly:true,dateFmt:'yyyy-MM-dd'})" />
最近在线:<input name="lastsj" value="${pda.LASTSJ}" style="width: 80px;" onFocus="WdatePicker({readOnly:true,dateFmt:'yyyy-MM-dd'})" /> 至
<input name="lastsj_e" value="${pda.LASTSJ_E}" style="width:80px;margin-right:10px;" onFocus="WdatePicker({readOnly:true,dateFmt:'yyyy-MM-dd'})" />
<button >
<i style="display:none;" class="fa fa-search" ></i>
查询
</button>
<a id="reply" href="${basePath}pda?method=list" class="rep" data-options="iconCls:'icon-add',plain:true" style="text-decoration: none;">
<i style="display:none;" class="fa fa-refresh" aria-hidden="true"></i>
重置
</a>
<a id="reply" href="${basePath}pda?method=addpage" class="rep" data-options="iconCls:'icon-add',plain:true" style="text-decoration: none;margin-left:30px;">
<i style="display:none;" class="fa fa-plus" aria-hidden="true"></i>
新增
</a>
</div >
</form>
<form action="${basePath}pda?method=list" id="tableList" method="post">
<input type="hidden" name="pageNo" value="${pageInfo.pageNo}">
<input type="hidden" name="jzsj" value="${pda.JZSJ}">
<input type="hidden" name="jzsj_e" value="${pda.JZSJ_E}">
<input type="hidden" name="lastsj" value="${pda.LASTSJ}">
<input type="hidden" name="lastsj_e" value="${pda.LASTSJ_E}">
<input type="hidden" name="khmc" value="${pda.KHMC}" >
<input type="hidden" name="bz" value="${pda.BZ}" >
<input type="hidden" name="meid" value="${pda.MEID}">
<input type="hidden" name="product" value="${pda.PRODUCT}" >
<input type="hidden" name="state" value="${pda.STATE}" >
<table class="tablelist">
<thead>
<tr>
<th class = "ID">ID</th>
<th class = "cz" style="width:140px;">操作</th>
<th class = "KHMC">客户</th>
<th class = "STATE">状态</th>
<th class = "JZSJ">截止日</th>
<th class = "PRODUCT">产品</th>
<th class = "OPTDATE">首次授权</th>
<th class = "LASTSJ">最近在线</th>
<th class = "BZ">备注</th>
<th class = "MEID">设备ID</th>
<th class = "EID">授权码</th>
</tr>
</thead>
<c:forEach items="${pageInfo.list}" var="pda_list">
<tr>
<td>${pda_list.ID}</td>
<td style="text-align: center;">
<button class="edit" type="button" onclick="window.location.href='${basePath}pda?method=edit&ID=${pda_list.ID}'">
<i style="display:none;" class="fa fa-edit"></i>
延期
</button>
<c:if test="${pda_list.STATE == \"正常\"}">
<button class="stop" type="button" keyword="${pda_list.ID}">
<i style="display:none;" class="fa fa-remove"></i>
停用
</button>
</c:if>
<c:if test="${pda_list.STATE == \"停用\"}">
<button class="start" type="button" keyword="${pda_list.ID}">
<i style="display:none;" class="fa fa-check"></i>
启用
</button>
</c:if>
<button class="delete" type="button" keyword="${pda_list.ID}">
<i style="display:none;" class="fa fa-trash-o"></i>
删除
</button>
</td>
<td>${pda_list.KHMC}</td>
<c:if test="${pda_list.STATE == \"正常\"}">
<td style=" color:blue;text-decoration: none;font-weight:bold;">${pda_list.STATE}</td>
</c:if>
<c:if test="${pda_list.STATE == \"停用\"}">
<td style=" color:red;text-decoration: none;font-weight:bold;">${pda_list.STATE}</td>
</c:if>
<td>${pda_list.JZSJ}</td>
<td>${pda_list.PRODUCT}</td>
<td>${pda_list.OPTDATE}</td>
<td>${pda_list.LASTSJ}</td>
<td>${pda_list.BZ}</td>
<td>${pda_list.MEID}</td>
<td>${pda_list.EID}</td>
</tr>
</c:forEach>
</table>
<%@include file="../inc/page.jsp"%>
</form>
</body>
</html>
+80
View File
@@ -0,0 +1,80 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>客户新增页面</title>
<link rel="stylesheet" href="${basePath}static/css/styles.css" />
<link rel="stylesheet" href="${basePath}static/css/font-awesome-4.7.0/css/font-awesome.min.css" />
<script src="${basePath}static/js/jquery.min.js" type="text/javascript"></script>
<script src="${basePath}static/js/jquery-validation-1.14.0/jquery.validate.js" type="text/javascript"></script>
<script src="${basePath}static/js/jquery-validation-1.14.0/localization/messages_zh.js" type="text/javascript"></script>
<script src="${basePath}static/js/click.js"></script>
<script type="text/javascript">
$(function(){
$("#addForm").validate({
rules:{
Dm:{
required:true
},
Name:"required",
Pwd:{
required:true,
rangelength:[6,15]
}
}
/* messages:{
stuPwd:{
rangelength:$.validator.format( "Please enter a value between {0} and {1} characters long.")
}
} */
});
});
</script>
<style type="text/css">
@media screen and (max-width:1000px){
*{
font-size:30px;
}
</style>
</head>
<body>
<div class="add">
<form id="addForm" action="${basePath}user?method=add" method="post">
<table class="tableadd" style="width: 100%;">
<tr>
<td style="width:60px;">用户名</td>
<td style="color: red;"><input type="text" name="Dm" placeholder="建议输入姓名简写">*登陆账户</td>
</tr>
<tr>
<td>姓名</td>
<td style="color: red;"><input type="text" name="Name">*</td>
</tr>
<tr>
<td>密码</td>
<td>
<input type="password" name="Pwd" value="123456">
默认密码为123456
</td>
</tr>
<tr>
<td colspan="4" align="left">
<button class="edit" type="button" onclick="window.history.back(-1);">
<i style="display:none;" class="fa fa-arrow-left"></i>
返回
</button>
<button class="remove" type="submit">
<i style="display:none;" class="fa fa-save"></i>
提交
</button>
</td>
</tr>
</table>
</form>
</div>
</body>
</html>
+89
View File
@@ -0,0 +1,89 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>用户列表</title>
<link rel="stylesheet" href="${basePath}static/css/styles.css" />
<link rel="stylesheet" href="${basePath}static/css/font-awesome-4.7.0/css/font-awesome.min.css" />
<script src="${basePath}static/js/jquery.min.js" type="text/javascript"></script>
<script src="${basePath}static/js/click.js"></script>
<script type="text/javascript">
$(function(){
$('.remove').click(function(){
if(confirm("确定要删除吗?")){
window.location.href="${basePath}user?method=delete&id="+$(this).attr("keyword");
}
})
})
</script>
<style type="text/css">
@media screen and (max-width:1000px){
*{
font-size:30px;
}
.tablelist .caozuo{
width:250px;
}
</style>
</head>
<body>
<form action="${basePath}user?method=list" method="post">
<div class="condition">
ID<input type="text" name="Id" value="${user.id}">
用户名:<input type="text" name="Dm" value="${user.dm}">
姓名:<input type="text" name="Name" value="${user.name}">
<button>
<i style="display:none;" class="fa fa-search"></i>
查询
</button>
<button type="button" onclick="window.location.href='page/user/add.jsp'">
<i style="display:none;" class="fa fa-plus"></i>
新增
</button>
</div>
</form>
<form action="${basePath}user?method=list" id="tableList" method="post">
<input type="hidden" name="pageNo" value="${pageInfo.pageNo}">
<input type="hidden" name="Id" value="${user.id}">
<input type="hidden" name="Dm" value="${user.dm}">
<input type="hidden" name="Name" value="${user.name}">
<table class="tablelist" style="withd:800px;">
<thead>
<tr>
<th style="width:40px;">ID</th>
<th width="120px">操作</th>
<th>用户名(登录名)</th>
<th>姓名</th>
<th>停用标记</th>
</tr>
</thead>
<c:forEach items="${pageInfo.list}" var="user">
<tr>
<td>${user.id}</td>
<td class="caozuo">
<button class="edit" type="button" onclick="window.location.href='${basePath}user?method=edit&id=${user.id}'">
<i style="display:none;" class="fa fa-edit"></i>
修改
</button>
<button class="remove" type="button" keyword="${user.id}">
<i style="display:none;" class="fa fa-remove"></i>
删除
</button>
</td>
<td>${user.dm}</td>
<td>${user.name}</td>
<td>${user.tybj}</td>
</tr>
</c:forEach>
</table>
<%@include file="../inc/page.jsp"%>
</form>
</body>
</html>
+83
View File
@@ -0,0 +1,83 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>用户信息修改页面</title>
<link rel="stylesheet" href="${basePath}static/css/styles.css" />
<link rel="stylesheet" href="${basePath}static/css/font-awesome-4.7.0/css/font-awesome.min.css" />
<script src="${basePath}static/js/jquery.min.js" type="text/javascript"></script>
<script src="${basePath}static/js/jquery-validation-1.14.0/jquery.validate.js" type="text/javascript"></script>
<script src="${basePath}static/js/jquery-validation-1.14.0/localization/messages_zh.js" type="text/javascript"></script>
<script src="${basePath}static/js/click.js"></script>
<script type="text/javascript">
//表单 验证 必填项
$(function(){
$("#editForm").validate({
rules:{
Dm:{
required:true
},
Name:{
required:true
}
}
/* messages:{
stuPwd:{
rangelength:$.validator.format( "Please enter a value between {0} and {1} characters long.")
}
} */
});
});
//停用复选框判断
$(function(){
var tybj = ${user.tybj};
if(tybj==1){$("#Tybj").attr("checked","true");}
});
</script>
<style type="text/css">
@media screen and (max-width:1000px){
*{
font-size:30px;
}
</style>
</head>
<body>
<div class="add">
<form id="editForm" action="${basePath}user?method=editsubmit" method="post">
<input type="hidden" name="Id" value="${user.id}">
<table class="tableadd" style="width: 60%;">
<tr>
<td style="width:60px;">用户名</td>
<td style="color: red;"><input type="text" name="Dm" value="${user.dm}">*</td>
</tr>
<tr>
<td>姓名</td>
<td style="color: red;"><input type="text" name="Name" value="${user.name}">*</td>
</tr>
<tr>
<td>停用</td>
<td style="color: red;"><input type="checkbox" name="Tybj" id="Tybj" value="1">*</td>
</tr>
<tr>
<td colspan="4" align="left">
<button class="edit" type="button" onclick="window.history.back(-1);">
<i style="display:none;" class="fa fa-arrow-left"></i>
返回
</button>
<button class="remove" type="submit">
<i style="display:none;" class="fa fa-save"></i>
提交
</button>
</td>
</tr>
</table>
</form>
</div>
</body>
</html>
+87
View File
@@ -0,0 +1,87 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>知识库详情页</title>
<link rel="stylesheet" href="${basePath}static/css/styles.css" />
<link rel="stylesheet" href="${basePath}static/css/font-awesome-4.7.0/css/font-awesome.min.css" />
<script src="${basePath}static/js/jquery.min.js" type="text/javascript"></script>
<script src="${basePath}static/js/click.js"></script>
<style type="text/css">
.tableadd td{
height:150px;
}
@media screen and (max-width:1000px){
.tableadd{
padding-left:0;
}
.tableadd td{
height:100px;
width:160px;
}
.kh_bz{
width:400px;
height: 600px;
}
.tableadd td button{
margin-left:100px;
margin-top:50px;
}
}
</style>
</head>
<body>
<div class="add">
<table class="tablelist" >
<tr>
<td width="100px">问题ID</td>
<td>${zsk.questionId}</td>
</tr>
<tr>
<td>主题</td>
<td>${zsk.subject}</td>
</tr>
<tr>
<td>解决方案</td>
<td>${zsk.solution}</td>
</tr>
<tr>
<td>产品</td>
<td>${zsk.product}</td>
</tr>
<tr>
<td>产品模块</td>
<td>${zsk.productModule}</td>
</tr>
<tr>
<td>功能模块</td>
<td>${zsk.functionalModule}</td>
</tr>
<tr>
<td>创建人</td>
<td>${zsk.creater}</td>
</tr>
<tr>
<td>创建时间</td>
<td>${zsk.createTime}</td>
</tr>
</table>
<button class="edit" type="button" onclick="window.history.back(-1);" style="margin-top:30px;margin-left:30px;color:#FFFFFF; background-color:#467FE6;border:none; border-radius:3px;padding: 5px 10px;">
<i style="display:none;" class="fa fa-arrow-left"></i>
返回
</button>
</div>
</body>
</html>
+105
View File
@@ -0,0 +1,105 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>知识库修改页面</title>
<link rel="stylesheet" href="${basePath}static/css/styles.css" />
<link rel="stylesheet" href="${basePath}static/css/font-awesome-4.7.0/css/font-awesome.min.css" />
<script src="${basePath}static/js/jquery.min.js" type="text/javascript"></script>
<script src="${basePath}static/js/click.js"></script>
<style type="text/css">
.tableadd td{
height:150px;
}
.subject,.solution{
width:100%;
height:100px;
resize: none;/*文本框右下角 拖动缩放按钮*/
}
}
@media screen and (max-width:1000px){
*{
font-size:40px;
}
.tableadd{
padding-left:0;
}
.tableadd td{
height:100px;
width:160px;
}
.kh_bz{
width:400px;
height: 600px;
}
.tableadd td button{
font-size:50px;
margin-left:100px;
margin-top:50px;
}
}
</style>
</head>
<body>
<div class="add">
<form id="editForm" action="${basePath}zsk?method=update" method="post">
<input type="hidden" name="QuestionId" value="${zsk.questionId}">
<table class="tablelist" >
<tr>
<td width="100px">问题ID</td>
<td>${zsk.questionId}</td>
</tr>
<tr>
<td style="color:red">主题*</td>
<td><textarea id="qrcodefortemcontent" maxlength=100% id="subject" name="Subject" class="subject" placeholder="请录入问题主体,多行信息请回车!" >${zsk.subject}</textarea></td>
</tr>
<tr>
<td style="color:red">解决方案*</td>
<td><textarea id="qrcodefortemcontent" maxlength=100% id="solution" name="Solution" class="solution" placeholder="请录入问题解决方案,多行信息请回车!" >${zsk.solution}</textarea></td>
</tr>
<tr>
<td>产品</td>
<td>${zsk.product}</td>
</tr>
<tr>
<td>产品模块</td>
<td>${zsk.productModule}</td>
</tr>
<tr>
<td>功能模块</td>
<td>${zsk.functionalModule}</td>
</tr>
<tr>
<td>创建人</td>
<td>${zsk.creater}</td>
</tr>
<tr>
<td>创建时间</td>
<td>${zsk.createTime}</td>
</tr>
</table>
<button class="edit" type="button" onclick="window.history.back(-1);" style="margin-top:30px;margin-left:30px;color:#FFFFFF; background-color:#467FE6;border:none;padding: 5px 10px; border-radius:5px;">
<i style="display:none;" class="fa fa-arrow-left"></i>
返回
</button>
<button class="remove" type="submit" style="margin-top:30px;margin-left:30px;color:#FFFFFF; background-color:#467FE6;border:none; padding: 5px 10px; border-radius:5px;">
<i style="display:none;" class="fa fa-save"></i>
提交
</button>
</form>
</div>
</body>
</html>
+225
View File
@@ -0,0 +1,225 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>知识库列表</title>
<script type="text/javascript" src="${basePath}static/js/jquery.min.js" ></script>
<link rel="stylesheet" href="${basePath}static/css/select2.min.css" />
<script type="text/javascript" src="${basePath}static/js/select2.min.js" ></script>
<link rel="stylesheet" href="${basePath}static/css/styles.css" />
<link rel="stylesheet" href="${basePath}static/css/font-awesome-4.7.0/css/font-awesome.min.css" />
<script src="${basePath}static/js/click.js"></script>
<script type="text/javascript">
//删除监听事件
$(function(){
$('.remove').click(function(){
if(confirm("确定要删除这条知识库吗?")){
window.location.href="${basePath}zsk?method=delete&ID="+$(this).attr("keyword")+"&User=${user.name}";
}
})
})
</script>
<style type="text/css">
table{
table-layout:fixed;
}
table td{
undefined;
word-break:keep-all;/* 不换行 */
white-space:nowrap;/* 不换行 */
overflow:hidden;/* 内容超出宽度时隐藏超出部分的内容 */
text-overflow:ellipsis;/* 当对象内文本溢出时显示省略标记(…) ;需与overflow:hidden;一起使用*/ }
table td div{
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
width: 100%;
display:block;
}
table .questionId ,.QuestionId{
width:60px;
}
table .Product,.ProductModule,.FunctionalModule{
width:150px;
}
.subject:hover{
font-weight: bold;
color:#fa541c;
}
.solution:hover{
font-weight: bold;
color:#1d39c4;
}
.edit:hover{
font-size:20px;
}
/*修改提示框*/
#mytitle {
position: absolute;
color: #ffffff;
max-width: 400px;
padding: 4px;
background: rgba(40, 40, 40, 0.8);
border: solid 1px #e9f7f6;
border-radius:5px;
}
@media screen and (max-width:1000px){
*{
font-size:20px;
}
}
</style>
<script type="text/javascript">
$(function () {
var x = 10;
var y = 20;
var newtitle = '';
$('.cx,.subject,.solution,.product,.productModule,.functionalModule').mouseover(function (e) {
newtitle = this.title;
this.title = '';
$('body').append('<div id="mytitle" >' + newtitle + '</div>');
$('#mytitle').css({
'left': (e.pageX + x + 'px'),
'top': (e.pageY + y - 80 + 'px')
}).show();
}).mouseout(function () {
this.title = newtitle;
$('#mytitle').remove();
}).mousemove(function (e) {
$('#mytitle').css({
'left': (e.pageX + x +10 + 'px'),
'top': (e.pageY + y - 60 + 'px')
}).show();
});
});
</script>
</head>
<body>
<form id="myform" action="${basePath}zsk?method=list" method="post">
<div class="condition" >
问题:<input type="text" name="Subject" value="${zsk.subject}"style="width:100px;">
<input type="text" name="Subject1" value="${zsk.subject1}"style="width:100px;">
<input type="text" name="Subject2" value="${zsk.subject2}"style="width:100px;">
解决方案:<input type="text" name="Solution" value="${zsk.solution}" style="width:100px;">
<input type="text" name="Solution1" value="${zsk.solution1}" style="width:100px;">
<input type="text" name="Solution2" value="${zsk.solution2}" style="width:100px;">
产品:<select id="Product_tj" name="Product" class="Product_tj" style="width:150px;" >
<option value="${zsk.product}" selected="selected" >${zsk.product}</option>
<c:forEach items="${list_product}" var="list_product">
<option value="${list_product.product}">${list_product.product}</option>
</c:forEach>
</select>
<!--产品模块:<select id="ProductModule_tj" name="ProductModule" class="ProductModule_tj" style="width:100px;" >
<option value="${zsk.productModule}" selected="selected">${zsk.productModule}</option>
<c:forEach items="${list_productModule}" var="list_productModule">
<option value="${list_productModule.productModule}">${list_productModule.productModule}</option>
</c:forEach>
</select>
功能模块:<select id="FunctionalModule_tj" name="FunctionalModule" class="FunctionalModule_tj" style="width:100px;" >
<option value="${zsk.functionalModule}" selected="selected">${zsk.functionalModule}</option>
<c:forEach items="${list_functionalModule}" var="list_functionalModule">
<option value="${list_functionalModule.functionalModule}">${list_functionalModule.functionalModule}</option>
</c:forEach>
</select> -->
<!--产品模块:<input type="text" name="ProductModule" value="${zsk.productModule}" style="width:100px;"> -->
<!--功能模块:<input type="text" name="FunctionalModule" value="${zskfunctionalModule}" style="width:100px;"> -->
<button >
<i style="display:none;" class="fa fa-search" ></i>
查询
</button>
<a id="reply" href="${basePath}zsk?method=list" class="rep" data-options="iconCls:'icon-add',plain:true" style="text-decoration: none;">
<i style="display:none;" class="fa fa-refresh" aria-hidden="true"></i>
重置
</a>
</div >
</form>
<form action="${basePath}zsk?method=list" id="tableList" method="post">
<input type="hidden" name="pageNo" value="${pageInfo.pageNo}">
<input type="hidden" name="Subject" value="${zsk.subject}">
<input type="hidden" name="Subject1" value="${zsk.subject1}">
<input type="hidden" name="Subject2" value="${zsk.subject2}">
<input type="hidden" name="Solution" value="${zsk.solution}">
<input type="hidden" name="Solution1" value="${zsk.solution1}">
<input type="hidden" name="Solution2" value="${zsk.solution2}">
<input type="hidden" name="Product" value="${zsk.product}">
<!--<input type="hidden" name="ProductModule" value="${zsk.productModule}">
<input type="hidden" name="FunctionalModule" value="${zsk.functionalModule}">-->
<table class="tablelist">
<thead>
<tr>
<th class = "QuestionId">详细</th>
<th class = "Subject">问题</th>
<th class = "Solution">解决方案</th>
<th class = "Product">产品</th>
<!--<th class = "ProductModule">产品模块</th>
<th class = "FunctionalModule">功能模块</th>-->
<!-- 用户才能有操作权限 -->
<c:if test="${type == 2}">
<th class = "cz" style="width:150px;">操作</th>
</c:if>
</tr>
</thead>
<c:forEach items="${pageInfo.list}" var="zsklist">
<tr>
<!-- 用户才能有操作权限 -->
<td class="cx" style="text-align: center;" title="查看">
<button class="edit" type="button" onclick="window.location.href='${basePath}zsk?method=details&ID=${zsklist.questionId}'">
<i class="fa fa-search" aria-hidden="true"></i>
</button>
</td>
<td class="subject" title="${zsklist.subject}"><div style="height:30px; overflow:hidden">${zsklist.subject}</div></td>
<td class="solution" title="${zsklist.solution}"><div style="height:30px; overflow:hidden">${zsklist.solution}</div></td>
<td class="product" title="${zsklist.product}">${zsklist.product}</td>
<!--<td class="productModule" title="${zsklist.productModule}">${zsklist.productModule}</td>
<td class="functionalModule" title="${zsklist.functionalModule}">${zsklist.functionalModule}</td>-->
<!-- 用户才能有操作权限 -->
<c:if test="${type == 2}">
<td style="text-align: center;">
<button class="edit" type="button" onclick="window.location.href='${basePath}zsk?method=edit&ID=${zsklist.questionId}'">
<i style="display:none;" class="fa fa-edit"></i>
修改
</button>
<button class="remove" type="button" keyword="${zsklist.questionId}">
<i style="display:none;" class="fa fa-remove"></i>
删除
</button>
</td>
</c:if>
</tr>
</c:forEach>
</table>
<%@include file="../inc/page.jsp"%>
</form>
<script type="text/javascript">
$(document).ready(function () {//加载页面时执行select2
$('.Product_tj').select2();
$('.ProductModule_tj').select2();
$('.FunctionalModule_tj').select2();
});
</script>
</body>
</html>
+86
View File
@@ -0,0 +1,86 @@
<%@page contentType="text/html; charset=utf-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<html style="height: 100%">
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="${basePath}static/css/styles.css" />
<link rel="stylesheet" href="${basePath}static/css/font-awesome-4.7.0/css/font-awesome.min.css" />
<script src="${basePath}static/js/jquery.min.js" type="text/javascript"></script>
<script src="${basePath}static/js/jquery-validation-1.14.0/jquery.validate.js" type="text/javascript"></script>
<script src="${basePath}static/js/jquery-validation-1.14.0/localization/messages_zh.js" type="text/javascript"></script>
<script src="${basePath}static/js/click.js"></script>
<style type="text/css">
@media screen and (max-width:1000px){
*{
font-size:30px;
}
.tableadd td{
height:90px;
}
.tableadd td button{
font-size:50px;
margin-left:100px;
margin-top:50px;
}
}
</style>
</head>
<body style="height: 100%; margin: 0">
<div class="add">
<form id="addForm" action="${basePath}pwd" method="post">
<c:if test="${type == 2}">
<input type="hidden" name="id" value="${user.id}">
<input type="hidden" name="dm" value="${user.dm}">
<input type="hidden" name="type" value="2">
</c:if>
<c:if test="${type == 1}">
<input type="hidden" name="id" value="${user.id}">
<input type="hidden" name="dm" value="${user.dm}">
<input type="hidden" name="type" value="1">
</c:if>
<table class="tableadd" style="width: 700px;">
<tr>
<td>原密码</td>
<td style="color: red;"><input type="password" name="pwd" required oninvalid="setCustomValidity('原密码不能为空!');" oninput="setCustomValidity('');">*</td>
</tr>
<tr>
<td>新密码</td>
<td style="color: red;"><input type="password" name="newPwd" required oninvalid="setCustomValidity('新密码不能为空!');" oninput="setCustomValidity('');">*</td>
</tr>
<tr>
<td>确认密码</td>
<td style="color: red;">
<input type="password" name="newPwd2" required oninvalid="setCustomValidity('确认密码不能为空!');" oninput="setCustomValidity('');">*
</td>
</tr>
<tr>
<td colspan="4" align="left">
<button class="edit" type="button" onclick="window.history.back(-1);">
<i class="fa fa-arrow-left"></i>
返回
</button>
<button class="remove" type="submit">
<i class="fa fa-save"></i>
提交
</button>
</td>
</tr>
<tr>
<td colspan="5" align="center"><span style="color:red;font-size:30px">${msg}</span></td>
</tr>
</table>
</form>
</div>
</body>
</html>
+25
View File
@@ -0,0 +1,25 @@
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="description" content="A simple HTML5 Template">
<meta name="author" content="dron">
<meta name="viewport" content="width=device-width, height=device-height, user-scalable=no, initial-scale=1.0, maximum-scale=1.0">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<link rel="stylesheet" href="${basePath}static/qsg/images/index.css">
<title>水果忍者HTML5网页版在线游戏</title>
<!--[if lt IE 9]><script>document.createElement("canvas");</script><![endif]-->
</head>
<body>
<div id="extra"></div>
<em> -- Fruit Ninja -- </em> <em> The game is developed by the Baidu JS team, </em> <em> we provide the source in git: https://github.com/ChineseDron/fruit-ninja </em> <em> follow me on weibo http://weibo.com/baidujs </em> <em> or learn more, to see http://tangram.baidu.com </em>
<canvas id="view" width="640" height="480"></canvas>
<div id="desc">
<div id="browser"></div>
</div>
<script src="${basePath}static/qsg/scripts/all.js"></script>
</body>
</html>
+187
View File
@@ -0,0 +1,187 @@
var Mario={SpriteCuts:{CreateBlackFont:function(){return new Enjine.SpriteFont([],Enjine.Resources.Images.font,8,8,this.GetCharArray(0))},CreateRedFont:function(){return new Enjine.SpriteFont([],Enjine.Resources.Images.font,8,8,this.GetCharArray(8))},CreateGreenFont:function(){return new Enjine.SpriteFont([],Enjine.Resources.Images.font,8,8,this.GetCharArray(16))},CreateBlueFont:function(){return new Enjine.SpriteFont([],Enjine.Resources.Images.font,8,8,this.GetCharArray(24))},CreateYellowFont:function(){return new Enjine.SpriteFont([],
Enjine.Resources.Images.font,8,8,this.GetCharArray(32))},CreatePinkFont:function(){return new Enjine.SpriteFont([],Enjine.Resources.Images.font,8,8,this.GetCharArray(40))},CreateCyanFont:function(){return new Enjine.SpriteFont([],Enjine.Resources.Images.font,8,8,this.GetCharArray(48))},CreateWhiteFont:function(){return new Enjine.SpriteFont([],Enjine.Resources.Images.font,8,8,this.GetCharArray(56))},GetCharArray:function(a){for(var b=[],c=0,c=32;c<127;c++)b[c]={X:(c-32)*8,Y:a};return b},GetBackgroundSheet:function(){for(var a=
[],b=0,c=0,e=Enjine.Resources.Images.background.width/32,d=Enjine.Resources.Images.background.height/32,b=0;b<e;b++){a[b]=[];for(c=0;c<d;c++)a[b][c]={X:b*32,Y:c*32,Width:32,Height:32}}return a},GetLevelSheet:function(){for(var a=[],b=0,c=0,e=Enjine.Resources.Images.map.width/16,d=Enjine.Resources.Images.map.height/16,b=0;b<e;b++){a[b]=[];for(c=0;c<d;c++)a[b][c]={X:b*16,Y:c*16,Width:16,Height:16}}return a}},Tile:{BlockUpper:1,BlockAll:2,BlockLower:4,Special:8,Bumpable:16,Breakable:32,PickUpable:64,
Animated:128,Behaviors:[],LoadBehaviors:function(){for(var a=[0,20,28,0,130,130,130,130,2,2,2,2,2,0,138,0,162,146,154,162,146,146,154,146,2,0,2,2,2,0,2,0,192,192,192,192,0,0,0,0,2,2,0,0,0,0,2,0,0,0,0,0,0,0,0,0,2,2],b=0,b=58;b<128;b++)a[b]=0;a[128]=2;a[129]=2;a[130]=2;a[131]=0;a[132]=1;a[133]=1;a[134]=1;a[135]=0;a[136]=2;a[137]=2;a[138]=2;a[139]=0;a[140]=2;a[141]=2;a[142]=2;a[143]=0;a[144]=2;a[145]=0;a[146]=2;a[147]=0;a[148]=0;a[149]=0;a[150]=0;a[151]=0;a[152]=2;a[153]=2;a[154]=2;a[155]=0;a[156]=2;
a[157]=2;a[158]=2;a[159]=0;a[160]=2;a[161]=2;a[162]=2;a[163]=0;a[164]=0;a[165]=0;a[166]=0;a[167]=0;a[168]=2;a[169]=2;a[170]=2;a[171]=0;a[172]=2;a[173]=2;a[174]=2;a[175]=0;a[176]=2;a[177]=2;a[178]=2;a[179]=0;a[180]=1;a[181]=1;a[182]=1;for(b=183;b<224;b++)a[b]=0;a[224]=1;a[225]=1;a[226]=1;for(b=227;b<256;b++)a[b]=0;this.Behaviors=a}},LevelType:{Overground:0,Underground:1,Castle:2},Odds:{Straight:0,HillStraight:1,Tubes:2,Jump:3,Cannons:4},Level:function(a,b){this.Width=a;this.Height=b;this.ExitY=this.ExitX=
10;this.Map=[];this.Data=[];this.SpriteTemplates=[];for(var c=0,e=0,c=0;c<this.Width;c++){this.Map[c]=[];this.Data[c]=[];this.SpriteTemplates[c]=[];for(e=0;e<this.Height;e++)this.Map[c][e]=0,this.Data[c][e]=0,this.SpriteTemplates[c][e]=null}}};
Mario.Level.prototype={Update:function(){for(var a=0,b=0,a=0;a<this.Width;a++)for(b=0;b<this.Height;b++)this.Data[a][b]>0&&this.Data[a][b]--},GetBlockCapped:function(a,b){a<0&&(a=0);b<0&&(b=0);a>=this.Width&&(a=this.Width-1);b>=this.Height&&(b=this.Height-1);return this.Map[a][b]},GetBlock:function(a,b){a<0&&(a=0);if(b<0)return 0;a>=this.Width&&(a=this.Width-1);b>=this.Height&&(b=this.Height-1);return this.Map[a][b]},SetBlock:function(a,b,c){a<0||b<0||a>=this.Width||b>=this.Height||(this.Map[a][b]=
c)},SetBlockData:function(a,b,c){a<0||b<0||a>=this.Width||b>=this.Height||(this.Data[a][b]=c)},IsBlocking:function(a,b,c,e){a=this.GetBlock(a,b);b=(Mario.Tile.Behaviors[a&255]&Mario.Tile.BlockAll)>0;b|=e>0&&(Mario.Tile.Behaviors[a&255]&Mario.Tile.BlockUpper)>0;b|=e<0&&(Mario.Tile.Behaviors[a&255]&Mario.Tile.BlockLower)>0;return b},GetSpriteTemplate:function(a,b){if(a<0)return null;if(b<0)return null;if(a>=this.Width)return null;if(b>=this.Height)return null;return this.SpriteTemplates[a][b]},SetSpriteTemplate:function(a,
b,c){a<0||b<0||a>=this.Width||b>=this.Height||(this.SpriteTemplates[a][b]=c)}};Mario.BackgroundGenerator=function(a,b,c,e){this.Width=a;this.Height=b;this.Distant=c;this.Type=e};
Mario.BackgroundGenerator.prototype={SetValues:function(a,b,c,e){this.Width=a;this.Height=b;this.Distant=c;this.Type=e},CreateLevel:function(){var a=new Mario.Level(this.Width,this.Height);switch(this.Type){case Mario.LevelType.Overground:this.GenerateOverground(a);break;case Mario.LevelType.Underground:this.GenerateUnderground(a);break;case Mario.LevelType.Castle:this.GenerateCastle(a)}return a},GenerateOverground:function(a){for(var b=this.Distant?4:6,c=this.Distant?2:1,e=Math.floor(Math.random()*
b)+c,d=Math.floor(Math.random()*b)+c,f=0,g=0,h=0,i=0,i=2,f=0;f<this.Width;f++){for(e=d;e===d;)d=Math.floor(Math.random()*b)+c;for(g=0;g<this.Height;g++)h=e<d?e:d,i=e<d?d:e,g<h?this.Distant?(i=2,g<2&&(i=g),a.SetBlock(f,g,4+i*8)):a.SetBlock(f,g,5):g===h?(i=h===d?0:1,i+=this.Distant?2:0,a.SetBlock(f,g,i)):g===i?(i=h===d?0:1,i+=this.Distant?2:0,a.SetBlock(f,g,i+16)):(i=g>i?1:0,h===e&&(i=1-i),i+=this.Distant?2:0,a.SetBlock(f,g,i+8))}},GenerateUnderground:function(a){var b=0,c=0,e=0,d=0;if(this.Distant)for(var f=
0,b=0;b<this.Width;b++){Math.random()<0.75&&(f=1-f);for(c=0;c<this.Height;c++){e=f;d=c-2;if(d<0||d>4)d=2,e=0;a.SetBlock(b,c,4+e+(3+d)*8)}}else for(b=0;b<this.Width;b++)for(c=0;c<this.Height;c++){e=b%2;d=c-1;if(d<0||d>7)d=7,e=0;e===0&&d>1&&d<5&&(e=-1,d=0);a.SetBlock(b,c,6+e+d*8)}},GenerateCastle:function(a){var b=0,c=0,e=0,d=0;if(this.Distant)for(b=0;b<this.Width;b++)for(c=0;c<this.Height;c++)e=b%2,d=c-1,d>2&&d<5?d=2:d>=5&&(d-=2),d<0?(e=0,d=5):d>4?(e=1,d=5):e<1&&d===3?(e=0,d=3):e<1&&d>0&&d<3&&(e=0,
d=2),a.SetBlock(b,c,1+e+(d+4)*8);else for(b=0;b<this.Width;b++)for(c=0;c<this.Height;c++)e=b%3,d=c-1,d>2&&d<5?d=2:d>=5&&(d-=2),d<0?(e=1,d=5):d>4?(e=2,d=5):e<2&&d===4?(e=2,d=4):e<2&&d>0&&d<4&&(e=4,d=-3),a.SetBlock(b,c,1+e+(d+3)*8)}};Mario.BackgroundRenderer=function(a,b,c,e){this.Level=a;this.Width=b;this.Distance=e;this.TilesY=(c/32|0)+1;this.Background=Mario.SpriteCuts.GetBackgroundSheet()};Mario.BackgroundRenderer.prototype=new Enjine.Drawable;
Mario.BackgroundRenderer.prototype.Draw=function(a,b){for(var c=b.X/this.Distance,e=0,d=0,f=null,f=null,g=(c+this.Width)/32|0,e=c/32|0;e<=g;e++)for(d=0;d<this.TilesY;d++)f=this.Level.GetBlock(e,d)&255,f=this.Background[f%8][f/8|0],a.drawImage(Enjine.Resources.Images.background,f.X,f.Y,f.Width,f.Height,(e<<5)-c|0,d<<5|0,f.Width,f.Height)};Mario.ImprovedNoise=function(a){this.P=[];this.Shuffle(a)};
Mario.ImprovedNoise.prototype={Shuffle:function(){for(var a=[],b=0,c=0,e=0,b=0;b<256;b++)a[b]=b;for(b=0;b<256;b++)c=(Math.random()*255|0)+b,e=a[b],a[b]=a[c],a[c]=e,this.P[b+256]=this.P[b]=a[b]},PerlinNoise:function(a,b){for(var c=0,e=0,d=0,c=0;c<8;c++)d=64/(1<<c),e+=this.Noise(a/d,b/d,128)/(1<<c);return e},Noise:function(a,b,c){var e=(a|0)&255,d=(b|0)&255,f=(c|0)&255;a-=a|0;b-=b|0;c-=c|0;var g=this.Fade(a),h=this.Fade(b),i=this.Fade(c),j=this.P[e]+d,k=this.P[j]+f,j=this.P[j+1]+f,d=this.P[e+1]+d,e=
this.P[d]+f,f=this.P[d+1]+f;return this.Lerp(i,this.Lerp(h,this.Lerp(g,this.Grad(this.P[k],a,b,c),this.Grad(this.P[e],a-1,b,c)),this.Lerp(g,this.Grad(this.P[j],a,b-1,c),this.Grad(this.P[f],a-1,b-1,c))),this.Lerp(h,this.Lerp(g,this.Grad(this.P[k+1],a,b,c-1),this.Grad(this.P[e+1],a-1,b,c-1)),this.Lerp(g,this.Grad(this.P[j+1],a,b-1,c-1),this.Grad(this.P[f+1],a-1,b-1,c-1))))},Fade:function(a){return a*a*a*(a*(a*6-15)+10)},Lerp:function(a,b,c){return b+a*(c-b)},Grad:function(a,b,c,e){a&=15;var d=a<8?b:
c,b=a<4?c:a===12||a===14?b:e;return((a&1)===0?d:-d)+((a&2)===0?b:-b)}};Mario.NotchSprite=function(a){this.YPicO=this.XPicO=this.YPic=this.XPic=this.Ya=this.Xa=this.Y=this.X=this.YOld=this.XOld=0;this.PicHeight=this.PicWidth=32;this.YFlip=this.XFlip=!1;this.Visible=!0;this.Image=a;this.Delta=0;this.SpriteTemplate=null;this.Layer=1};Mario.NotchSprite.prototype=new Enjine.Drawable;
Mario.NotchSprite.prototype.Draw=function(a){var b=0,c=0;this.Visible&&(b=(this.XOld+(this.X-this.XOld)*this.Delta|0)-this.XPicO,c=(this.YOld+(this.Y-this.YOld)*this.Delta|0)-this.YPicO,a.save(),a.scale(this.XFlip?-1:1,this.YFlip?-1:1),a.translate(this.XFlip?-320:0,this.YFlip?-240:0),a.drawImage(this.Image,this.XPic*this.PicWidth,this.YPic*this.PicHeight,this.PicWidth,this.PicHeight,this.XFlip?320-b-this.PicWidth:b,this.YFlip?240-c-this.PicHeight:c,this.PicWidth,this.PicHeight),a.restore())};
Mario.NotchSprite.prototype.Update=function(a){this.XOld=this.X;this.YOld=this.Y;this.Move();this.Delta=a};Mario.NotchSprite.prototype.UpdateNoMove=function(){this.XOld=this.X;this.YOld=this.Y;this.Delta=0};Mario.NotchSprite.prototype.Move=function(){this.X+=this.Xa;this.Y+=this.Ya};Mario.NotchSprite.prototype.GetX=function(a){return(this.XOld+(this.X-this.XOld)*a|0)-this.XPicO};Mario.NotchSprite.prototype.GetY=function(a){return(this.YOld+(this.Y-this.YOld)*a|0)-this.YPicO};
Mario.NotchSprite.prototype.CollideCheck=function(){};Mario.NotchSprite.prototype.BumpCheck=function(){};Mario.NotchSprite.prototype.Release=function(){};Mario.NotchSprite.prototype.ShellCollideCheck=function(){return!1};Mario.NotchSprite.prototype.FireballCollideCheck=function(){return!1};
Mario.Character=function(){this.Fire=this.Large=!1;this.Coins=0;this.Lives=3;this.LevelString="none";this.AirInertia=this.GroundInertia=0.89;this.RunTime=0;this.Sliding=this.Ducking=this.MayJump=this.OnGround=this.WasOnGround=!1;this.YJumpSpeed=this.XJumpSpeed=this.JumpTime=0;this.CanShoot=!1;this.Width=4;this.Height=24;this.World=null;this.InvulnerableTime=this.WinTime=this.DeathTime=this.YDeathPos=this.XDeathPos=this.PowerUpTime=this.Facing=0;this.Carried=null;this.NewFire=this.NewLarge=this.LastFire=
this.LastLarge=!1};Mario.Character.prototype=new Mario.NotchSprite(null);
Mario.Character.prototype.Initialize=function(a){this.World=a;this.X=32;this.RunTime=this.PowerUpTime=this.Y=0;this.Sliding=this.Ducking=this.MayJump=this.OnGround=this.WasOnGround=!1;this.YJumpSpeed=this.XJumpSpeed=this.JumpTime=0;this.CanShoot=!1;this.Width=4;this.Height=24;this.World=a;this.InvulnerableTime=this.WinTime=this.DeathTime=this.YDeathPos=this.XDeathPos=this.PowerUpTime=this.Facing=0;this.Carried=null;this.SetLarge(this.Large,this.Fire)};
Mario.Character.prototype.SetLarge=function(a,b){b&&(a=!0);a||(b=!1);this.LastLarge=this.Large;this.LastFire=this.Fire;this.Large=a;this.Fire=b;this.NewLarge=this.Large;this.NewFire=this.Fire;this.Blink(!0)};
Mario.Character.prototype.Blink=function(a){this.Large=a?this.NewLarge:this.LastLarge;this.Fire=a?this.NewFire:this.LastFire;this.Large?(this.Image=this.Fire?Enjine.Resources.Images.fireMario:Enjine.Resources.Images.mario,this.XPicO=16,this.YPicO=31,this.PicWidth=this.PicHeight=32):(this.Image=Enjine.Resources.Images.smallMario,this.XPicO=8,this.YPicO=15,this.PicWidth=this.PicHeight=16)};
Mario.Character.prototype.Move=function(){if(this.WinTime>0)this.WinTime++,this.Ya=this.Xa=0;else if(this.DeathTime>0)this.DeathTime++,this.DeathTime<11?this.Ya=this.Xa=0:this.DeathTime===11?this.Ya=-15:this.Ya+=2,this.X+=this.Xa,this.Y+=this.Ya;else if(this.PowerUpTime!==0){this.PowerUpTime>0?(this.PowerUpTime--,this.Blink(((this.PowerUpTime/3|0)&1)===0)):(this.PowerUpTime++,this.Blink(((-this.PowerUpTime/3|0)&1)===0));if(this.PowerUpTime===0)this.World.Paused=!1;this.CalcPic()}else{this.InvulnerableTime>
0&&this.InvulnerableTime--;this.Visible=((this.InvulerableTime/2|0)&1)===0;this.WasOnGround=this.OnGround;var a=Enjine.KeyboardInput.IsKeyDown(Enjine.Keys.A)?1.2:0.6;if(this.OnGround)this.Ducking=Enjine.KeyboardInput.IsKeyDown(Enjine.Keys.Down)&&this.Large?!0:!1;if(this.Xa>2)this.Facing=1;if(this.Xa<-2)this.Facing=-1;if(Enjine.KeyboardInput.IsKeyDown(Enjine.Keys.S)||this.JumpTime<0&&!this.OnGround&&!this.Sliding)if(this.JumpTime<0)this.Xa=this.XJumpSpeed,this.Ya=-this.JumpTime*this.YJumpSpeed,this.JumpTime++;
else if(this.OnGround&&this.MayJump)Enjine.Resources.PlaySound("jump"),this.XJumpSpeed=0,this.YJumpSpeed=-1.9,this.JumpTime=7,this.Ya=this.JumpTime*this.YJumpSpeed,this.Sliding=this.OnGround=!1;else if(this.Sliding&&this.MayJump)Enjine.Resources.PlaySound("jump"),this.XJumpSpeed=-this.Facing*6,this.YJumpSpeed=-2,this.JumpTime=-6,this.Xa=this.XJumpSpeed,this.Ya=-this.JumpTime*this.YJumpSpeed,this.Sliding=this.OnGround=!1,this.Facing=-this.Facing;else{if(this.JumpTime>0)this.Xa+=this.XJumpSpeed,this.Ya=
this.JumpTime*this.YJumpSpeed,this.JumpTime--}else this.JumpTime=0;if(Enjine.KeyboardInput.IsKeyDown(Enjine.Keys.Left)&&!this.Ducking){if(this.Facing===1)this.Sliding=!1;this.Xa-=a;if(this.JumpTime>=0)this.Facing=-1}if(Enjine.KeyboardInput.IsKeyDown(Enjine.Keys.Right)&&!this.Ducking){if(this.Facing===-1)this.Sliding=!1;this.Xa+=a;if(this.JumpTime>=0)this.Facing=1}if(!Enjine.KeyboardInput.IsKeyDown(Enjine.Keys.Left)&&!Enjine.KeyboardInput.IsKeyDown(Enjine.Keys.Right)||this.Ducking||this.Ya<0||this.OnGround)this.Sliding=
!1;Enjine.KeyboardInput.IsKeyDown(Enjine.Keys.A)&&this.CanShoot&&this.Fire&&this.World.FireballsOnScreen<2&&(Enjine.Resources.PlaySound("fireball"),this.World.AddSprite(new Mario.Fireball(this.World,this.X+this.Facing*6,this.Y-20,this.Facing)));this.CanShoot=!Enjine.KeyboardInput.IsKeyDown(Enjine.Keys.A);this.MayJump=(this.OnGround||this.Sliding)&&!Enjine.KeyboardInput.IsKeyDown(Enjine.Keys.S);this.XFlip=this.Facing===-1;this.RunTime+=Math.abs(this.Xa)+5;if(Math.abs(this.Xa)<0.5)this.Xa=this.RunTime=
0;this.CalcPic();this.Sliding&&(this.World.AddSprite(new Mario.Sparkle(this.World,(this.X+Math.random()*4-2|0)+this.Facing*8,(this.Y+Math.random()*4|0)-24,Math.random()*2-1,Math.random(),0,1,5)),this.Ya*=0.5);this.OnGround=!1;this.SubMove(this.Xa,0);this.SubMove(0,this.Ya);this.Y>this.World.Level.Height*16+16&&this.Die();if(this.X<0)this.Xa=this.X=0;this.X>this.World.Level.ExitX*16&&this.Win();if(this.X>this.World.Level.Width*16)this.X=this.World.Level.Width*16,this.Xa=0;this.Ya*=0.85;this.Xa*=this.OnGround?
this.GroundInertia:this.AirInertia;this.OnGround||(this.Ya+=3);if(this.Carried!==null&&(this.Carried.X*=this.X+this.Facing*8,this.Carried.Y*=this.Y-2,!Enjine.KeyboardInput.IsKeyDown(Enjine.Keys.A)))this.Carried.Release(this),this.Carried=null}};
Mario.Character.prototype.CalcPic=function(){var a=0,b=0;this.Large?(a=(this.RunTime/20|0)%4,a===3&&(a=1),this.Carried===null&&Math.abs(this.Xa)>10&&(a+=3),this.Carried!==null&&(a+=10),this.OnGround||(a=this.Carried!==null?12:Math.abs(this.Xa)>10?7:6)):(a=(this.RunTime/20|0)%2,this.Carried===null&&Math.abs(this.Xa)>10&&(a+=2),this.Carried!==null&&(a+=8),this.OnGround||(a=this.Carried!==null?9:Math.abs(this.Xa)>10?5:4));if(this.OnGround&&(this.Facing===-1&&this.Xa>0||this.Facing===1&&this.Xa<0)){if(this.Xa>
1||this.Xa<-1)a=this.Large?9:7;if(this.Xa>3||this.Xa<-3)for(b=0;b<3;b++)this.World.AddSprite(new Mario.Sparkle(this.World,this.X+Math.random()*8-4|0,this.Y+Math.random()*4|0,Math.random()*2-1,Math.random()*-1,0,1,5))}this.Large?(this.Ducking&&(a=14),this.Height=this.Ducking?12:24):this.Height=12;this.XPic=a};
Mario.Character.prototype.SubMove=function(a,b){for(var c=!1;a>8;){if(!this.SubMove(8,0))return!1;a-=8}for(;a<-8;){if(!this.SubMove(-8,0))return!1;a+=8}for(;b>8;){if(!this.SubMove(0,8))return!1;b-=8}for(;b<-8;){if(!this.SubMove(0,-8))return!1;b+=8}b>0&&(this.IsBlocking(this.X+a-this.Width,this.Y+b,a,0)?c=!0:this.IsBlocking(this.X+a+this.Width,this.Y+b,a,0)?c=!0:this.IsBlocking(this.X+a-this.Width,this.Y+b+1,a,b)?c=!0:this.IsBlocking(this.X+a+this.Width,this.Y+b+1,a,b)&&(c=!0));if(b<0)if(this.IsBlocking(this.X+
a,this.Y+b-this.Height,a,b))c=!0;else if(c||this.IsBlocking(this.X+a-this.Width,this.Y+b-this.Height,a,b))c=!0;else if(c||this.IsBlocking(this.X+a+this.Width,this.Y+b-this.Height,a,b))c=!0;if(a>0)this.Sliding=!0,this.IsBlocking(this.X+a+this.Width,this.Y+b-this.Height,a,b)?c=!0:this.Sliding=!1,this.IsBlocking(this.X+a+this.Width,this.Y+b-(this.Height/2|0),a,b)?c=!0:this.Sliding=!1,this.IsBlocking(this.X+a+this.Width,this.Y+b,a,b)?c=!0:this.Sliding=!1;if(a<0)this.Sliding=!0,this.IsBlocking(this.X+
a-this.Width,this.Y+b-this.Height,a,b)?c=!0:this.Sliding=!1,this.IsBlocking(this.X+a-this.Width,this.Y+b-(this.Height/2|0),a,b)?c=!0:this.Sliding=!1,this.IsBlocking(this.X+a-this.Width,this.Y+b,a,b)?c=!0:this.Sliding=!1;if(c){if(a<0)this.X=((this.X-this.Width)/16|0)*16+this.Width,this.Xa=0;if(a>0)this.X=((this.X+this.Width)/16+1|0)*16-this.Width-1,this.Xa=0;if(b<0)this.Y=((this.Y-this.Height)/16|0)*16+this.Height,this.Ya=this.JumpTime=0;if(b>0)this.Y=((this.Y-1)/16+1|0)*16-1,this.OnGround=!0;return!1}else return this.X+=
a,this.Y+=b,!0};
Mario.Character.prototype.IsBlocking=function(a,b,c,e){var d=!1,f=d=d=0,a=a/16|0,b=b/16|0;if(a===(this.X/16|0)&&b===(this.Y/16|0))return!1;d=this.World.Level.GetBlock(a,b);if((Mario.Tile.Behaviors[d&255]&Mario.Tile.PickUpable)>0){this.GetCoin();Enjine.Resources.PlaySound("coin");this.World.Level.SetBlock(a,b,0);for(d=0;d<2;d++)for(f=0;f<2;f++)this.World.AddSprite(new Mario.Sparkle(this.World,a*16+d*8+(Math.random()*8|0),b*16+f*8+(Math.random()*8|0),0,0,0,2,5))}(d=this.World.Level.IsBlocking(a,b,c,
e))&&e<0&&this.World.Bump(a,b,this.Large);return d};
Mario.Character.prototype.Stomp=function(a){var b=0;if(!(this.DeathTime>0||this.World.Paused))if(b=a.Y-a.Height/2,this.SubMove(0,b-this.Y),a instanceof Mario.Enemy||a instanceof Mario.BulletBill)Enjine.Resources.PlaySound("kick"),this.XJumpSpeed=0,this.YJumpSpeed=-1.9,this.JumpTime=8,this.Ya=this.JumpTime*this.YJumpSpeed,this.Sliding=this.OnGround=!1,this.InvulnerableTime=1;else if(a instanceof Mario.Shell)Enjine.KeyboardInput.IsKeyDown(Enjine.Keys.A)&&a.Facing===0?(this.Carried=a,a.Carried=!0):(Enjine.Resources.PlaySound("kick"),
this.XJumpSpeed=0,this.YJumpSpeed=-1.9,this.JumpTime=8,this.Ya=this.JumpTime*this.YJumpSpeed,this.Sliding=this.OnGround=!1,this.InvulnerableTime=1)};Mario.Character.prototype.GetHurt=function(){if(!(this.DeathTime>0||this.World.Paused)&&!(this.InvulnerableTime>0))this.Large?(this.World.Paused=!0,this.PowerUpTime=-18,Enjine.Resources.PlaySound("powerdown"),this.Fire?this.SetLarge(!0,!1):this.SetLarge(!1,!1),this.InvulnerableTime=32):this.Die()};
Mario.Character.prototype.Win=function(){this.XDeathPos=this.X|0;this.YDeathPos=this.Y|0;this.World.Paused=!0;this.WinTime=1;Enjine.Resources.PlaySound("exit")};Mario.Character.prototype.Die=function(){this.XDeathPos=this.X|0;this.YDeathPos=this.Y|0;this.World.Paused=!0;this.DeathTime=1;Enjine.Resources.PlaySound("death");this.SetLarge(!1,!1)};
Mario.Character.prototype.GetFlower=function(){if(!(this.DeathTime>0&&this.World.Paused))this.Fire?(this.GetCoin(),Enjine.Resources.PlaySound("coin")):(this.World.Paused=!0,this.PowerUpTime=18,Enjine.Resources.PlaySound("powerup"),this.SetLarge(!0,!0))};
Mario.Character.prototype.GetMushroom=function(){if(!(this.DeathTime>0&&this.World.Paused))this.Large?(this.GetCoin(),Enjine.Resources.PlaySound("coin")):(this.World.Paused=!0,this.PowerUpTime=18,Enjine.Resources.PlaySound("powerup"),this.SetLarge(!0,!1))};Mario.Character.prototype.Kick=function(a){if(!(this.DeathTime>0&&this.World.Paused))Enjine.KeyboardInput.IsKeyDown(Enjine.Keys.A)?(this.Carried=a,a.Carried=!0):(Enjine.Resources.PlaySound("kick"),this.InvulnerableTime=1)};
Mario.Character.prototype.Get1Up=function(){Enjine.Resources.PlaySound("1up");this.Lives++;if(this.Lives===99)this.Lives=99};Mario.Character.prototype.GetCoin=function(){this.Coins++;if(this.Coins===100)this.Coins=0,this.Get1Up()};Mario.LevelRenderer=function(a,b,c){this.Width=b;this.Height=c;this.Level=a;this.TilesY=(c/16|0)+1;this.AnimTime=this.Bounce=this.Tick=this.Delta=0;this.Background=Mario.SpriteCuts.GetLevelSheet()};Mario.LevelRenderer.prototype=new Enjine.Drawable;
Mario.LevelRenderer.prototype.Update=function(a){this.AnimTime+=a;this.Tick=this.AnimTime|0;this.Bounce+=a*30;this.Delta=a};Mario.LevelRenderer.prototype.Draw=function(a,b){this.DrawStatic(a,b);this.DrawDynamic(a,b)};
Mario.LevelRenderer.prototype.DrawStatic=function(a,b){for(var c=0,e=0,d=0,d=null,f=(b.X+this.Width)/16|0,c=b.X/16|0;c<f+1;c++)for(e=0;e<this.TilesY;e++)d=this.Level.GetBlock(c,e)&255,(Mario.Tile.Behaviors[d]&Mario.Tile.Animated)===0&&(d=this.Background[d%16][d/16|0],a.drawImage(Enjine.Resources.Images.map,d.X,d.Y,d.Width,d.Height,(c<<4)-b.X|0,e<<4|0,d.Width,d.Height))};
Mario.LevelRenderer.prototype.DrawDynamic=function(a,b){for(var c=0,e=0,d=0,f=0,g=0,d=null,c=b.X/16|0;c<=(b.X+this.Width)/16|0;c++)for(e=b.Y/16|0;e<=(b.Y+this.Height)/16|0;e++)d=this.Level.GetBlock(c,e),(Mario.Tile.Behaviors[d&255]&Mario.Tile.Animated)>0&&(f=(this.Bounce/3|0)%4,(d%16/4|0)===0&&(d/16|0)===1&&(f=(this.Bounce/2+(c+e)/8|0)%20,f>3&&(f=0)),(d%16/4|0)===3&&(d/16|0)===0&&(f=2),g=0,c>=0&&e>=0&&c<this.Level.Width&&e<this.Level.Height&&(g=this.Level.Data[c][e]),g>0&&(g=Math.sin((g-this.Delta)/
4*Math.PI)*8|0),d=this.Background[(d%16/4|0)*4+f][d/16|0],a.drawImage(Enjine.Resources.Images.map,d.X,d.Y,d.Width,d.Height,(c<<4)-b.X,(e<<4)-b.Y-g,d.Width,d.Height))};
Mario.LevelRenderer.prototype.DrawExit0=function(a,b,c){for(var e=0,e=0,d=null,e=this.Level.ExitY-8;e<this.Level.ExitY;e++)d=this.Background[12][e===this.Level.ExitY-8?4:5],a.drawImage(Enjine.Resources.Images.map,d.X,d.Y,d.Width,d.Height,(this.Level.ExitX<<4)-b.X-16,(e<<4)-b.Y,d.Width,d.Height);c&&(e=this.Level.ExitY*16-48-Math.sin(this.AnimTime)*48-8,d=this.Background[12][3],a.drawImage(Enjine.Resources.Images.map,d.X,d.Y,d.Width,d.Height,(this.Level.ExitX<<4)-b.X-16,e-b.Y,d.Width,d.Height),d=this.Background[13][3],
a.drawImage(Enjine.Resources.Images.map,d.X,d.Y,d.Width,d.Height,(this.Level.ExitX<<4)-b.X,e-b.Y,d.Width,d.Height))};Mario.LevelRenderer.prototype.DrawExit1=function(a,b){for(var c=0,e=null,c=this.Level.ExitY-8;c<this.Level.ExitY;c++)e=this.Background[13][c===this.Level.ExitY-8?4:5],a.drawImage(Enjine.Resources.Images.map,e.X,e.Y,e.Width,e.Height,(this.Level.ExitX<<4)-b.X+16,(c<<4)-b.Y,e.Width,e.Height)};
Mario.LevelGenerator=function(a,b){this.Width=a;this.Height=b;this.Odds=[];this.Type=this.Difficulty=this.TotalOdds=0};
Mario.LevelGenerator.prototype={CreateLevel:function(a,b){var c=0,e=0,d=c=0,f=0,g=0,h=0,i=null;this.Type=a;this.Difficulty=b;this.Odds[Mario.Odds.Straight]=20;this.Odds[Mario.Odds.HillStraight]=10;this.Odds[Mario.Odds.Tubes]=2+b;this.Odds[Mario.Odds.Jump]=2*b;this.Odds[Mario.Odds.Cannon]=-10+5*b;this.Type!==Mario.LevelType.Overground&&(this.Odds[Mario.Odds.HillStraight]=0);for(c=0;c<this.Odds.length;c++)this.Odds[c]<0&&(this.Odds[c]=0),this.TotalOdds+=this.Odds[c],this.Odds[c]=this.TotalOdds-this.Odds[c];
i=new Mario.Level(this.Width,this.Height);for(e+=this.BuildStraight(i,0,i.Width,!0);e<i.Width-64;)e+=this.BuildZone(i,e,i.Width-e);c=this.Height-1-Math.random()*4|0;i.ExitX=e+8;i.ExitY=c;for(d=e;d<i.Width;d++)for(f=0;f<this.Height;f++)f>=c&&i.SetBlock(d,f,145);if(a===Mario.LevelType.Castle||a===Mario.LevelType.Underground)for(d=0;d<i.Width;d++){h--<=0&&d>4&&(g=Math.random()*4|0,h=(Math.random()*4|0)+4);for(f=0;f<i.Height;f++)(d>4&&f<=g||d<1)&&i.SetBlock(d,f,145)}this.FixWalls(i);return i},BuildZone:function(a,
b,c){for(var e=Math.random()*this.TotalOdds|0,d=0,f=0,f=0;f<this.Odds.length;f++)this.Odds[f]<=e&&(d=f);switch(d){case Mario.Odds.Straight:return this.BuildStraight(a,b,c,!1);case Mario.Odds.HillStraight:return this.BuildHillStraight(a,b,c);case Mario.Odds.Tubes:return this.BuildTubes(a,b,c);case Mario.Odds.Jump:return this.BuildJump(a,b,c);case Mario.Odds.Cannons:return this.BuildCannons(a,b,c)}return 0},BuildJump:function(a,b){for(var c=(Math.random()*4|0)+2,e=c*2+((Math.random()*2|0)+2),d=0,f=
0,g=(Math.random()*3|0)===0,h=this.Height-1-(Math.random()*4|0),d=b;d<b+e;d++)if(d<b+c||d>b+e-c-1)for(f=0;f<this.Height;f++)f>=h?a.SetBlock(d,f,145):g&&(d<b+c?f>=h-(d-b)+1&&a.SetBlock(d,f,9):f>=h-(b+e-d)+2&&a.SetBlock(d,f,9));return e},BuildCannons:function(a,b,c){alert("cannons");var e=(Math.random()*10|0)+2,d=this.Height-1-Math.random()*4|0,f=b+1+Math.random()*4|0,g=0,h=0,i=0;e>c&&(e=c);for(g=b;g<b+e;g++){g>f&&(f+=2*Math.random()*4|0);f===b+e-1&&(f+=10);i=d-(Math.random()*4|0)-1;for(h=0;h<this.Height;h++)h>=
d?a.SetBlock(g,h,145):g===f&&h>=i&&(h===i?a.SetBlock(g,h,14):h===i+1?a.SetBlock(g,h,30):a.SetBlock(g,h,46))}return e},BuildHillStraight:function(a,b,c){var e=(Math.random()*10|0)+10,d=this.Height-1-Math.random()*4|0,f=0,g=0,h=d,i=!0,j=0,k=0,l=[],m=0,n=0;e>c&&(e=c);for(f=b;f<b+e;f++)for(g=0;g<this.Height;g++)g>=d&&a.SetBlock(f,g,145);for(this.AddEnemyLine(a,b+1,b+e-1,d-1);i;)if(h=h-2-Math.random()*3|0,h<=0)i=!1;else if(j=(Math.random()*5|0)+3,k=(Math.random()*(e-j-2)|0)+b+1,l[k-b]||l[k-b+j]||l[k-b-
1]||l[k-b+j+1])i=!1;else{l[k-b]=!0;l[k-b+j]=!0;this.AddEnemyLine(a,k,k+j,h-1);(Math.random()*4|0)===0&&(this.Decorate(a,k-1,k+j+1,h),i=!1);for(f=k;f<k+j;f++)for(g=h;g<d;g++)m=5,n=9,f===k&&(m=4),f===k+j-1&&(m=6),g===h&&(n=8),a.GetBlock(f,g)===0?a.SetBlock(f,g,m+n*16):(a.GetBlock(f,g)===132&&a.SetBlock(f,g,180),a.GetBlock(f,g)===134&&a.SetBlock(f,g,182))}return e},AddEnemyLine:function(a,b,c,e){for(var d=0,f=0,d=b;d<c;d++)if((Math.random()*35|0)<this.Difficulty+1)f=Math.random()*4|0,this.Difficulty<
1?f=Mario.Enemy.Goomba:this.Difficulty<3&&(f=Math.random()*3|0),a.SetSpriteTemplate(d,e,new Mario.SpriteTemplate(f,(Math.random()*35|0)<this.Difficulty))},BuildTubes:function(a,b,c){var e=(Math.random()*10|0)+5,d=this.Height-1-Math.random()*4|0,f=b+1+Math.random()*4|0,g=d-(Math.random()*2|0)-2,h=0,i=0,j=0;e>c&&(e=c);for(h=b;h<b+e;h++){h>f+1&&(f+=3+(Math.random()*4|0),g=d-(Math.random()*2|0)-2);f>=b+e-2&&(f+=10);h===f&&(Math.random()*11|0)<this.Difficulty+1&&a.SetSpriteTemplate(h,g,new Mario.SpriteTemplate(Mario.Enemy.Flower,
!1));for(i=0;i<this.Height;i++)if(i>=d)a.SetBlock(h,i,145);else if((h===f||h===f+1)&&i>=g)j=10+h-f,i===g?a.SetBlock(h,i,j):a.SetBlock(h,i,j+16)}return e},BuildStraight:function(a,b,c,e){var d=(Math.random()*10|0)+2,f=this.Height-1-(Math.random()*4|0),g=0,h=0;e&&(d=10+(Math.random()*5|0));d>c&&(d=c);for(g=b;g<b+d;g++)for(h=0;h<this.Height;h++)h>=f&&a.SetBlock(g,h,145);e||d>5&&this.Decorate(a,b,b+d,f);return d},Decorate:function(a,b,c,e){if(!(e<1)){var d=Math.random()*4|0,f=Math.random()*4|0,g=0;this.AddEnemyLine(a,
b+1,c-1,e-1);if(e-2>0&&c-1-f-(b+1+d)>1)for(g=b+1+d;g<c-1-f;g++)a.SetBlock(g,e-2,34);d=Math.random()*4|0;f=Math.random()*4|0;if(e-4>0&&c-1-f-(b+1+d)>2)for(g=b+1+d;g<c-1-f;g++)g!==b+1&&g!==c-2&&(Math.random()*3|0)===0?(Math.random()*4|0)===0?a.SetBlock(g,e-4,22):a.SetBlock(g,e-4,21):(Math.random()*4|0)===0?(Math.random()*4|0)===0?a.SetBlock(g,e-4,18):a.SetBlock(g,e-4,17):a.SetBlock(g,e-4,16)}},FixWalls:function(a){for(var b=[],c=0,e=0,d=0,f=0,g=0,c=0;c<this.Width+1;c++){b[c]=[];for(e=0;e<this.Height+
1;e++){g=0;for(d=c-1;d<c+1;d++)for(f=e-1;f<e+1;f++)a.GetBlockCapped(d,f)===145&&g++;b[c][e]=g===4}}this.Blockify(a,b,this.Width+1,this.Height+1)},Blockify:function(a,b,c,e){for(var d=0,f=[],g=0,h=0,i=0,j=0,k=g=0,l=0,g=0;g<2;g++)f[g]=[];this.Type===Mario.LevelType.Castle?d=8:this.Type===Mario.LevelType.Underground&&(d=12);for(g=0;g<c;g++)for(h=0;h<e;h++){for(i=g;i<=g+1;i++)for(j=h;j<=h+1;j++)k=i,l=j,k<0&&(k=0),l<0&&(l=0),k>c-1&&(k=c-1),l>e-1&&(l=e-1),f[i-g][j-h]=b[k][l];f[0][0]===f[1][0]&&f[0][1]===
f[1][1]?f[0][0]===f[0][1]?f[0][0]&&a.SetBlock(g,h,145+d):f[0][0]?a.SetBlock(g,h,161+d):a.SetBlock(g,h,129+d):f[0][0]===f[0][1]&&f[1][0]===f[1][1]?f[0][0]?a.SetBlock(g,h,146+d):a.SetBlock(g,h,144+d):f[0][0]===f[1][1]&&f[0][1]===f[1][0]?a.SetBlock(g,h,145+d):f[0][0]===f[1][0]?f[0][0]?f[0][1]?a.SetBlock(g,h,163+d):a.SetBlock(g,h,179+d):f[0][1]?a.SetBlock(g,h,130+d):a.SetBlock(g,h,128+d):f[0][1]===f[1][1]?f[0][1]?f[0][0]?a.SetBlock(g,h,147+d):a.SetBlock(g,h,131+d):f[0][0]?a.SetBlock(g,h,162+d):a.SetBlock(g,
h,160+d):a.SetBlock(g,h,1+16*d)}}};Mario.SpriteTemplate=function(a,b){this.Type=a;this.Winged=b;this.LastVisibleTick=-1;this.IsDead=!1;this.Sprite=null};Mario.SpriteTemplate.prototype={Spawn:function(a,b,c,e){if(!this.IsDead)this.Sprite=this.Type===Mario.Enemy.Flower?new Mario.FlowerEnemy(a,b*16+15,c*16+24):new Mario.Enemy(a,b*16+8,c*16+15,e,this.Type,this.Winged),this.Sprite.SpriteTemplate=this,a.AddSprite(this.Sprite)}};
Mario.Enemy=function(a,b,c,e,d,f){this.AirInertia=this.GroundInertia=0.89;this.RunTime=0;this.MayJump=this.OnGround=!1;this.YJumpSpeed=this.XJumpSpeed=this.JumpTime=0;this.Width=4;this.Height=24;this.DeadTime=0;this.FlyDeath=!1;this.WingTime=0;this.NoFireballDeath=!1;this.X=b;this.Y=c;this.World=a;this.Type=d;this.Winged=f;this.Image=Enjine.Resources.Images.enemies;this.XPicO=8;this.YPicO=31;this.AvoidCliffs=this.Type===Mario.Enemy.RedKoopa;this.NoFireballDeath=this.Type===Mario.Enemy.Spiky;this.YPic=
this.Type;if(this.YPic>1)this.Height=12;this.Facing=e;if(this.Facing===0)this.Facing=1;this.PicWidth=16};Mario.Enemy.prototype=new Mario.NotchSprite;
Mario.Enemy.prototype.CollideCheck=function(){if(this.DeadTime===0){var a=Mario.MarioCharacter.X-this.X,b=Mario.MarioCharacter.Y-this.Y;if(a>-this.Width*2-4&&a<this.Width*2+4&&b>-this.Height&&b<Mario.MarioCharacter.Height)if(this.Type!==Mario.Enemy.Spiky&&Mario.MarioCharacter.Ya>0&&b<=0&&(!Mario.MarioCharacter.OnGround||!Mario.MarioCharacter.WasOnGround))if(Mario.MarioCharacter.Stomp(this),this.Winged)this.Winged=!1,this.Ya=0;else{this.YPicO=7;this.PicHeight=8;if(this.SpriteTemplate!==null)this.SpriteTemplate.IsDead=
!0;this.DeadTime=10;this.Winged=!1;this.Type===Mario.Enemy.RedKoopa?this.World.AddSprite(new Mario.Shell(this.World,this.X,this.Y,0)):this.Type===Mario.Enemy.GreenKoopa&&this.World.AddSprite(new Mario.Shell(this.World,this.X,this.Y,1))}else Mario.MarioCharacter.GetHurt()}};
Mario.Enemy.prototype.Move=function(){var a=0,a=0;this.WingTime++;if(this.DeadTime>0){this.DeadTime--;if(this.DeadTime===0){this.DeadTime=1;for(a=0;a<8;a++)this.World.AddSprite(new Mario.Sparkle(this.World,(this.X+Math.random()*16-8|0)+4,(this.Y-Math.random()*8|0)+4,Math.random()*2-1,Math.random()*-1,0,1,5));this.World.RemoveSprite(this)}this.FlyDeath&&(this.X+=this.Xa,this.Y+=this.Ya,this.Ya*=0.95,this.Ya+=1)}else{if(this.Xa>2)this.Facing=1;if(this.Xa<-2)this.Facing=-1;this.Xa=this.Facing*1.75;this.MayJump=
this.OnGround;this.XFlip=this.Facing===-1;this.RunTime+=Math.abs(this.Xa)+5;a=(this.RunTime/20|0)%2;this.OnGround||(a=1);if(!this.SubMove(this.Xa,0))this.Facing=-this.Facing;this.OnGround=!1;this.SubMove(0,this.Ya);this.Ya*=this.Winged?0.95:0.85;this.Xa*=this.OnGround?this.GroundInertia:this.AirInertia;if(this.OnGround){if(this.Winged)this.Ya=-10}else this.Ya+=this.Winged?0.6:2;this.Winged&&(a=(this.WingTime/4|0)%2);this.XPic=a}};
Mario.Enemy.prototype.SubMove=function(a,b){for(var c=!1;a>8;){if(!this.SubMove(8,0))return!1;a-=8}for(;a<-8;){if(!this.SubMove(-8,0))return!1;a+=8}for(;b>8;){if(!this.SubMove(0,8))return!1;b-=8}for(;b<-8;){if(!this.SubMove(0,-8))return!1;b+=8}b>0&&(this.IsBlocking(this.X+a-this.Width,this.Y+b,a,0)?c=!0:this.IsBlocking(this.X+a+this.Width,this.Y+b,a,0)?c=!0:this.IsBlocking(this.X+a-this.Width,this.Y+b+1,a,b)?c=!0:this.IsBlocking(this.X+a+this.Width,this.Y+b+1,a,b)&&(c=!0));if(b<0)if(this.IsBlocking(this.X+
a,this.Y+b-this.Height,a,b))c=!0;else if(c||this.IsBlocking(this.X+a-this.Width,this.Y+b-this.Height,a,b))c=!0;else if(c||this.IsBlocking(this.X+a+this.Width,this.Y+b-this.Height,a,b))c=!0;a>0&&(this.IsBlocking(this.X+a+this.Width,this.Y+b-this.Height,a,b)&&(c=!0),this.IsBlocking(this.X+a+this.Width,this.Y+b-(this.Height/2|0),a,b)&&(c=!0),this.IsBlocking(this.X+a+this.Width,this.Y+b,a,b)&&(c=!0),this.AvoidCliffs&&this.OnGround&&!this.World.Level.IsBlocking((this.X+this.Xa+this.Width)/16|0,this.Y/
16+1|0,this.Xa,1)&&(c=!0));a<0&&(this.IsBlocking(this.X+a-this.Width,this.Y+b-this.Height,a,b)&&(c=!0),this.IsBlocking(this.X+a-this.Width,this.Y+b-(this.Height/2|0),a,b)&&(c=!0),this.IsBlocking(this.X+a-this.Width,this.Y+b,a,b)&&(c=!0),this.AvoidCliffs&&this.OnGround&&!this.World.Level.IsBlocking((this.X+this.Xa-this.Width)/16|0,this.Y/16+1|0,this.Xa,1)&&(c=!0));if(c){if(a<0)this.X=((this.X-this.Width)/16|0)*16+this.Width,this.Xa=0;if(a>0)this.X=((this.X+this.Width)/16+1|0)*16-this.Width-1,this.Xa=
0;if(b<0)this.Y=((this.Y-this.Height)/16|0)*16+this.Height,this.Ya=this.JumpTime=0;if(b>0)this.Y=((this.Y-1)/16+1|0)*16-1,this.OnGround=!0;return!1}else return this.X+=a,this.Y+=b,!0};Mario.Enemy.prototype.IsBlocking=function(a,b,c,e){a=a/16|0;b=b/16|0;if(a===this.X/16|0&&b===this.Y/16|0)return!1;return this.World.Level.IsBlocking(a,b,c,e)};
Mario.Enemy.prototype.ShellCollideCheck=function(a){if(this.DeadTime!==0)return!1;var b=a.X-this.X,c=a.Y-this.Y;if(b>-16&&b<16&&c>-this.Height&&c<a.Height){Enjine.Resources.PlaySound("kick");this.Xa=a.Facing*2;this.Ya=-5;this.FlyDeath=!0;if(this.SpriteTemplate!==null)this.SpriteTemplate.IsDead=!0;this.DeadTime=100;this.Winged=!1;return this.YFlip=!0}return!1};
Mario.Enemy.prototype.FireballCollideCheck=function(a){if(this.DeadTime!==0)return!1;var b=a.X-this.X,c=a.Y-this.Y;if(b>-16&&b<16&&c>-this.Height&&c<a.Height){if(this.NoFireballDeath)return!0;Enjine.Resources.PlaySound("kick");this.Xa=a.Facing*2;this.Ya=-5;this.FlyDeath=!0;if(this.SpriteTemplate!==null)this.SpriteTemplate.IsDead=!0;this.DeadTime=100;this.Winged=!1;return this.YFlip=!0}};
Mario.Enemy.prototype.BumpCheck=function(a,b){if(this.DeadTime===0&&this.X+this.Width>a*16&&this.X-this.Width<a*16+16&&b===(this.Y-1)/16|0){Enjine.Resources.PlaySound("kick");this.Xa=-Mario.MarioCharacter.Facing*2;this.Ya=-5;this.FlyDeath=!0;if(this.SpriteTemplate!==null)this.SpriteTemplate.IsDead=!0;this.DeadTime=100;this.Winged=!1;this.YFlip=!0}};Mario.Enemy.prototype.SubDraw=Mario.NotchSprite.prototype.Draw;
Mario.Enemy.prototype.Draw=function(a,b){var c=0,e=0;if(this.Winged&&(c=(this.XOld+(this.X-this.XOld)*this.Delta|0)-this.XPicO,e=(this.YOld+(this.Y-this.YOld)*this.Delta|0)-this.YPicO,this.Type!==Mario.Enemy.RedKoopa&&this.Type!==Mario.Enemy.GreenKoopa))this.XFlip=!this.XFlip,a.save(),a.scale(this.XFlip?-1:1,this.YFlip?-1:1),a.translate(this.XFlip?-320:0,this.YFlip?-240:0),a.drawImage(this.Image,(this.WingTime/4|0)%2*16,128,16,32,this.XFlip?320-c-24:c-8,this.YFlip?240-e-32:e-8,16,32),a.restore(),
this.XFlip=!this.XFlip;this.SubDraw(a,b);this.Winged&&(c=(this.XOld+(this.X-this.XOld)*this.Delta|0)-this.XPicO,e=(this.YOld+(this.Y-this.YOld)*this.Delta|0)-this.YPicO,this.Type===Mario.Enemy.RedKoopa&&this.Type===Mario.Enemy.GreenKoopa?(a.save(),a.scale(this.XFlip?-1:1,this.YFlip?-1:1),a.translate(this.XFlip?-320:0,this.YFlip?-240:0),a.drawImage(this.Image,(this.WingTime/4|0)%2*16,128,16,32,this.XFlip?320-c-24:c-8,this.YFlip?240-e:e-8,16,32)):(a.save(),a.scale(this.XFlip?-1:1,this.YFlip?-1:1),a.translate(this.XFlip?
-320:0,this.YFlip?-240:0),a.drawImage(this.Image,(this.WingTime/4|0)%2*16,128,16,32,this.XFlip?320-c-24:c-8,this.YFlip?240-e-32:e-8,16,32)),a.restore())};Mario.Enemy.RedKoopa=0;Mario.Enemy.GreenKoopa=1;Mario.Enemy.Goomba=2;Mario.Enemy.Spiky=3;Mario.Enemy.Flower=4;
Mario.Fireball=function(a,b,c,e){this.AirInertia=this.GroundInertia=0.89;this.Image=Enjine.Resources.Images.particles;this.World=a;this.X=b;this.Y=c;this.Facing=e;this.YPicO=this.XPicO=4;this.YPic=3;this.XPic=4;this.Height=8;this.Width=4;this.PicWidth=this.PicHeight=8;this.Ya=4;this.Dead=!1;this.Anim=this.DeadTime=0;this.OnGround=!1};Mario.Fireball.prototype=new Mario.NotchSprite;
Mario.Fireball.prototype.Move=function(){var a=0;if(this.DeadTime>0){for(a=0;a<8;a++)this.World.AddSprite(new Mario.Sparkle(this.World,(this.X+Math.random()*8-4|0)+4,(this.Y+Math.random()*8-4|0)+2,Math.random()*2-1*this.Facing,Math.random()*2-1,0,1,5));this.World.RemoveSprite(this)}else{this.Facing!=0&&this.Anim++;if(this.Xa>2)this.Facing=1;if(this.Xa<-2)this.Facing=-1;this.Xa=this.Facing*8;this.World.CheckFireballCollide(this);this.FlipX=this.Facing===-1;this.XPic=this.Anim%4;this.SubMove(this.Xa,
0)||this.Die();this.OnGround=!1;this.SubMove(0,this.Ya);if(this.OnGround)this.Ya=-10;this.Ya*=0.95;this.Xa*=this.OnGround?this.GroundInertia:this.AirInertia;this.OnGround||(this.Ya+=1.5)}};
Mario.Fireball.prototype.SubMove=function(a,b){for(var c=!1;a>8;){if(!this.SubMove(8,0))return!1;a-=8}for(;a<-8;){if(!this.SubMove(-8,0))return!1;a+=8}for(;b>8;){if(!this.SubMove(0,8))return!1;b-=8}for(;b<-8;){if(!this.SubMove(0,-8))return!1;b+=8}b>0&&(this.IsBlocking(this.X+a-this.Width,this.Y+b,a,0)?c=!0:this.IsBlocking(this.X+a+this.Width,this.Y+b,a,0)?c=!0:this.IsBlocking(this.X+a-this.Width,this.Y+b+1,a,b)?c=!0:this.IsBlocking(this.X+a+this.Width,this.Y+b+1,a,b)&&(c=!0));if(b<0)if(this.IsBlocking(this.X+
a,this.Y+b-this.Height,a,b))c=!0;else if(c||this.IsBlocking(this.X+a-this.Width,this.Y+b-this.Height,a,b))c=!0;else if(c||this.IsBlocking(this.X+a+this.Width,this.Y+b-this.Height,a,b))c=!0;a>0&&(this.IsBlocking(this.X+a+this.Width,this.Y+b-this.Height,a,b)&&(c=!0),this.IsBlocking(this.X+a+this.Width,this.Y+b-(this.Height/2|0),a,b)&&(c=!0),this.IsBlocking(this.X+a+this.Width,this.Y+b,a,b)&&(c=!0));a<0&&(this.IsBlocking(this.X+a-this.Width,this.Y+b-this.Height,a,b)&&(c=!0),this.IsBlocking(this.X+a-
this.Width,this.Y+b-(this.Height/2|0),a,b)&&(c=!0),this.IsBlocking(this.X+a-this.Width,this.Y+b,a,b)&&(c=!0));if(c){if(a<0)this.X=((this.X-this.Width)/16|0)*16+this.Width,this.Xa=0;if(a>0)this.X=((this.X+this.Width)/16+1|0)*16-this.Width-1,this.Xa=0;if(b<0)this.Y=((this.Y-this.Height)/16|0)*16+this.Height,this.Ya=0;if(b>0)this.Y=((this.Y-1)/16+1|0)*16-1,this.OnGround=!0;return!1}else return this.X+=a,this.Y+=b,!0};
Mario.Fireball.prototype.IsBlocking=function(a,b,c,e){a=a/16|0;b=b/16|0;if(a===this.X/16|0&&b===this.Y/16|0)return!1;return this.World.Level.IsBlocking(a,b,c,e)};Mario.Fireball.prototype.Die=function(){this.Dead=!0;this.Xa=-this.Facing*2;this.Ya=-5;this.DeadTime=100};
Mario.Sparkle=function(a,b,c,e,d){this.World=a;this.X=b;this.Y=c;this.Xa=e;this.Ya=d;this.XPic=Math.random()*2|0;this.YPic=0;this.Life=10+(Math.random()*5|0);this.XPicStart=this.XPic;this.YPicO=this.XPicO=4;this.PicHeight=this.PicWidth=8;this.Image=Enjine.Resources.Images.particles};Mario.Sparkle.prototype=new Mario.NotchSprite;Mario.Sparkle.prototype.Move=function(){this.XPic=this.Life>10?7:this.XPicStart+(10-this.Life)*0.4|0;this.Life--<0&&this.World.RemoveSprite(this);this.X+=this.Xa;this.Y+=this.Ya};
Mario.CoinAnim=function(a,b,c){this.World=a;this.Life=10;this.Image=Enjine.Resources.Images.map;this.PicWidth=this.PicHeight=16;this.X=b*16;this.Y=c*16-16;this.Xa=0;this.Ya=-6;this.XPic=0;this.YPic=2};Mario.CoinAnim.prototype=new Mario.NotchSprite;
Mario.CoinAnim.prototype.Move=function(){var a=0,b=0;if(this.Life--<0){this.World.RemoveSprite(this);for(a=0;a<2;a++)for(b=0;b<2;b++)this.World.AddSprite(new Mario.Sparkle(this.World,this.X+a*8+Math.random()*8|0,this.Y+b*8+Math.random()*8|0,0,0,0,2,5))}this.XPic=this.Life&3;this.X+=this.Xa;this.Y+=this.Ya;this.Ya+=1};
Mario.Mushroom=function(a,b,c){this.RunTime=0;this.AirInertia=this.GroundInertia=0.89;this.OnGround=!1;this.Width=4;this.Height=24;this.World=a;this.X=b;this.Y=c;this.Image=Enjine.Resources.Images.items;this.XPicO=8;this.YPicO=15;this.YPic=0;this.Height=12;this.Facing=1;this.PicWidth=this.PicHeight=16;this.Life=0};Mario.Mushroom.prototype=new Mario.NotchSprite;
Mario.Mushroom.prototype.CollideCheck=function(){var a=Mario.MarioCharacter.X-this.X,b=Mario.MarioCharacter.Y-this.Y;a>-16&&a<16&&b>-this.Height&&b<Mario.MarioCharacter.Height&&(Mario.MarioCharacter.GetMushroom(),this.World.RemoveSprite(this))};
Mario.Mushroom.prototype.Move=function(){if(this.Life<9)this.Layer=0,this.Y--,this.Life++;else{this.Layer=1;if(this.Xa>2)this.Facing=1;if(this.Xa<-2)this.Facing=-1;this.Xa=this.Facing*1.75;this.XFlip=this.Facing===-1;this.RunTime+=Math.abs(this.Xa)+5;if(!this.SubMove(this.Xa,0))this.Facing=-this.Facing;this.OnGround=!1;this.SubMove(0,this.Ya);this.Ya*=0.85;this.Xa*=this.OnGround?this.GroundInertia:this.AirInertia;this.OnGround||(this.Ya+=2)}};
Mario.Mushroom.prototype.SubMove=function(a,b){for(var c=!1;a>8;){if(!this.SubMove(8,0))return!1;a-=8}for(;a<-8;){if(!this.SubMove(-8,0))return!1;a+=8}for(;b>8;){if(!this.SubMove(0,8))return!1;b-=8}for(;b<-8;){if(!this.SubMove(0,-8))return!1;b+=8}b>0&&(this.IsBlocking(this.X+a-this.Width,this.Y+b,a,0)?c=!0:this.IsBlocking(this.X+a+this.Width,this.Y+b,a,0)?c=!0:this.IsBlocking(this.X+a-this.Width,this.Y+b+1,a,b)?c=!0:this.IsBlocking(this.X+a+this.Width,this.Y+b+1,a,b)&&(c=!0));if(b<0)if(this.IsBlocking(this.X+
a,this.Y+b-this.Height,a,b))c=!0;else if(c||this.IsBlocking(this.X+a-this.Width,this.Y+b-this.Height,a,b))c=!0;else if(c||this.IsBlocking(this.X+a+this.Width,this.Y+b-this.Height,a,b))c=!0;a>0&&(this.IsBlocking(this.X+a+this.Width,this.Y+b-this.Height,a,b)&&(c=!0),this.IsBlocking(this.X+a+this.Width,this.Y+b-(this.Height/2|0),a,b)&&(c=!0),this.IsBlocking(this.X+a+this.Width,this.Y+b,a,b)&&(c=!0));a<0&&(this.IsBlocking(this.X+a-this.Width,this.Y+b-this.Height,a,b)&&(c=!0),this.IsBlocking(this.X+a-
this.Width,this.Y+b-(this.Height/2|0),a,b)&&(c=!0),this.IsBlocking(this.X+a-this.Width,this.Y+b,a,b)&&(c=!0));if(c){if(a<0)this.X=((this.X-this.Width)/16|0)*16+this.Width,this.Xa=0;if(a>0)this.X=((this.X+this.Width)/16+1|0)*16-this.Width-1,this.Xa=0;if(b<0)this.Y=((this.Y-this.Height)/16|0)*16+this.Height,this.Ya=this.JumpTime=0;if(b>0)this.Y=((this.Y-1)/16+1|0)*16-1,this.OnGround=!0;return!1}else return this.X+=a,this.Y+=b,!0};
Mario.Mushroom.prototype.IsBlocking=function(a,b,c,e){a=a/16|0;b=b/16|0;if(a===this.X/16|0&&b===this.Y/16|0)return!1;return this.World.Level.IsBlocking(a,b,c,e)};Mario.Mushroom.prototype.BumpCheck=function(a,b){if(this.X+this.Width>a*16&&this.X-this.Width<a*16-16&&b===(b-1)/16|0)this.Facing=-Mario.MarioCharacter.Facing,this.Ya=-10};
Mario.Particle=function(a,b,c,e,d){this.World=a;this.X=b;this.Y=c;this.Xa=e;this.Ya=d;this.XPic=Math.random()*2|0;this.YPic=0;this.YPicO=this.XPicO=4;this.PicHeight=this.PicWidth=8;this.Life=10;this.Image=Enjine.Resources.Images.particles};Mario.Particle.prototype=new Mario.NotchSprite;Mario.Particle.prototype.Move=function(){this.Life-this.Delta<0&&this.World.RemoveSprite(this);this.Life-=this.Delta;this.X+=this.Xa;this.Y+=this.Ya;this.Ya*=0.95;this.Ya+=3};
Mario.FireFlower=function(a,b,c){this.Width=4;this.Height=24;this.World=a;this.X=b;this.Y=c;this.Image=Enjine.Resources.Images.items;this.XPicO=8;this.YPicO=15;this.XPic=1;this.YPic=0;this.Height=12;this.Facing=1;this.PicWidth=this.PicHeight=16;this.Life=0};Mario.FireFlower.prototype=new Mario.NotchSprite;
Mario.FireFlower.prototype.CollideCheck=function(){var a=Mario.MarioCharacter.X-this.X,b=Mario.MarioCharacter.Y-this.Y;a>-16&&a<16&&b>-this.Height&&b<Mario.MarioCharacter.Height&&(Mario.MarioCharacter.GetFlower(),this.World.RemoveSprite(this))};Mario.FireFlower.prototype.Move=function(){if(this.Life<9)this.Layer=0,this.Y--,this.Life++};
Mario.BulletBill=function(a,b,c,e){this.Image=Enjine.Resources.Images.enemies;this.World=a;this.X=b;this.Y=c;this.Facing=e;this.XPicO=8;this.YPicO=31;this.Height=12;this.Width=4;this.PicWidth=16;this.YPic=5;this.XPic=0;this.Ya=-5;this.DeadTime=0;this.Dead=!1;this.Anim=0};Mario.BulletBill.prototype=new Mario.NotchSprite;
Mario.BulletBill.prototype.CollideCheck=function(){if(!this.Dead){var a=Mario.MarioCharacter.X-this.X,b=Mario.MarioCharacter.Y-this.Y;if(a>-16&&a<16&&b>-this.Height&&b<this.World.Mario.Height)Mario.MarioCharacter.Y>0&&b<=0&&(!Mario.MarioCharacter.OnGround||!Mario.MarioCharacter.WasOnGround)?(Mario.MarioCharacter.Stomp(this),this.Dead=!0,this.Xa=0,this.Ya=1,this.DeadTime=100):Mario.MarioCharacter.GetHurt()}};
Mario.BulletBill.prototype.Move=function(){var a=0;if(this.DeadTime>0){this.DeadTime--;if(this.DeadTime===0){this.DeadTime=1;for(a=0;a<8;a++)this.World.AddSprite(new Mario.Sparkle((this.X+Math.random()*16-8|0)+4,(this.Y+Math.random()*8|0)+4,Math.random()*2-1,Math.random()*-1,0,1,5));this.World.RemoveSprite(this)}this.X+=this.Xa;this.Y+=this.Ya;this.Ya*=0.95;this.Ya+=1}else this.Xa=this.Facing*4,this.XFlip=this.Facing===-1,this.Move(this.Xa,0)};
Mario.BulletBill.prototype.SubMove=function(a){this.X+=a;return!0};Mario.BulletBill.prototype.FireballCollideCheck=function(a){if(this.DeadTime!==0)return!1;var b=a.X-this.X,c=a.Y-this.Y;if(b>-16&&b<16&&c>-this.Height&&c<a.Height)return!0;return!1};
Mario.BulletBill.prototype.ShellCollideCheck=function(a){if(this.DeadTime!==0)return!1;var b=a.X-this.X,c=a.Y-this.Y;if(b>-16&&b<16&&c>-this.Height&&c<a.Height)return Enjine.Resources.PlaySound("kick"),this.Dead=!0,this.Xa=0,this.Ya=1,this.DeadTime=100,!0;return!1};
Mario.FlowerEnemy=function(a,b,c){this.Image=Enjine.Resources.Images.enemies;this.World=a;this.X=b;this.Y=c;this.Facing=1;this.Type=Mario.Enemy.Spiky;this.NoFireballDeath=this.Winged=!1;this.XPic=0;this.YPic=6;this.YPicO=24;this.Height=12;this.Width=2;this.YStart=c;this.Ya=-8;this.Y-=1;for(a=a=this.Tick=this.JumpTime=this.Layer=0;a<4;a++)this.Move()};Mario.FlowerEnemy.prototype=new Mario.Enemy;
Mario.FlowerEnemy.prototype.Move=function(){var a=0,a=0;if(this.DeadTime>0){this.DeadTime--;if(this.DeadTime===0){this.DeadTime=1;for(a=0;a<8;a++)this.World.AddSprite(new Mario.Sparkle((this.X+Math.random()*16-8|0)+4,(this.Y+Math.random()*8|0)+4,Math.random()*2-1,Math.random()*-1,0,1,5));this.World.RemoveSprite(this)}this.X+=this.Xa;this.Y+=this.Ya;this.Ya*=0.95;this.Ya+=1}else this.Tick++,this.Y>=this.YStart?(this.YStart=this.Y,a=Math.abs(Mario.MarioCharacter.X-this.X)|0,this.JumpTime++,this.Ya=
this.JumpTime>40&&a>24?-8:0):this.JumpTime=0,this.Y+=this.Ya,this.Ya*=0.9,this.Ya+=0.1,this.XPic=((this.Tick/2|0)&1)*2+((this.Tick/6|0)&1)};Mario.Shell=function(a,b,c,e){this.World=a;this.X=b;this.Y=c;this.YPic=e;this.Image=Enjine.Resources.Images.enemies;this.XPicO=8;this.YPicO=31;this.Width=4;this.Height=12;this.Facing=0;this.PicWidth=16;this.XPic=4;this.Ya=-5;this.Dead=!1;this.DeadTime=0;this.Carried=!1;this.AirInertia=this.GroundInertia=0.89;this.OnGround=!1;this.Anim=0};
Mario.Shell.prototype=new Mario.NotchSprite;Mario.Shell.prototype.FireballCollideCheck=function(a){if(this.DeadTime!==0)return!1;var b=a.X-this.X,c=a.Y-this.Y;if(b>-16&&b<16&&c>-this.Height&&c<a.Height){if(this.Facing!==0)return!0;Enjine.Resources.PlaySound("kick");this.Xa=a.Facing*2;this.Ya=-5;if(this.SpriteTemplate!==null)this.SpriteTemplate.IsDead=!0;this.DeadTime=100;return this.YFlip=!0}return!1};
Mario.Shell.prototype.CollideCheck=function(){if(!this.Carried&&!(this.Dead||this.DeadTime>0)){var a=Mario.MarioCharacter.X-this.X,b=Mario.MarioCharacter.Y-this.Y;if(a>-16&&a<16&&b>-this.Height&&b<Mario.MarioCharacter.Height)Mario.MarioCharacter.Ya>0&&b<=0&&(!Mario.MarioCharacter.OnGround||!Mario.MarioCharacter.WasOnGround)?(Mario.MarioCharacter.Stomp(this),this.Facing=this.Facing!==0?this.Xa=0:Mario.MarioCharacter.Facing):this.Facing!==0?Mario.MarioCharacter.GetHurt():(Mario.MarioCharacter.Kick(this),
this.Facing=Mario.MarioCharacter.Facing)}};
Mario.Shell.prototype.Move=function(){var a=0;if(this.Carried)this.World.CheckShellCollide(this);else if(this.DeadTime>0){this.DeadTime--;if(this.DeadTime===0){this.DeadTime=1;for(a=0;a<8;a++)this.World.AddSprite(new Mario.Sparkle((this.X+Math.random()*16-8|0)+4,(this.Y+Math.random()*8|0)+4,Math.random()*2-1,Math.random()*-1,0,1,5));this.World.RemoveSprite(this)}this.X+=this.Xa;this.Y+=this.Ya;this.Ya*=0.95;this.Ya+=1}else{this.Facing!==0&&this.Anim++;if(this.Xa>2)this.Facing=1;if(this.Xa<-2)this.Facing=
-1;this.Xa=this.Facing*11;this.Facing!==0&&this.World.CheckShellCollide(this);this.XFlip=this.Facing===-1;this.XPic=(this.Anim/2|0)%4+3;if(!this.SubMove(this.Xa,0))Enjine.Resources.PlaySound("bump"),this.Facing=-this.Facing;this.OnGround=!1;this.SubMove(0,this.Ya);this.Ya*=0.85;this.Xa*=this.OnGround?this.GroundInertia:this.AirInertia;this.OnGround||(this.Ya+=2)}};
Mario.Shell.prototype.SubMove=function(a,b){for(var c=!1;a>8;){if(!this.SubMove(8,0))return!1;a-=8}for(;a<-8;){if(!this.SubMove(-8,0))return!1;a+=8}for(;b>8;){if(!this.SubMove(0,8))return!1;b-=8}for(;b<-8;){if(!this.SubMove(0,-8))return!1;b+=8}b>0&&(this.IsBlocking(this.X+a-this.Width,this.Y+b,a,0)?c=!0:this.IsBlocking(this.X+a+this.Width,this.Y+b,a,0)?c=!0:this.IsBlocking(this.X+a-this.Width,this.Y+b+1,a,b)?c=!0:this.IsBlocking(this.X+a+this.Width,this.Y+b+1,a,b)&&(c=!0));if(b<0)if(this.IsBlocking(this.X+
a,this.Y+b-this.Height,a,b))c=!0;else if(c||this.IsBlocking(this.X+a-this.Width,this.Y+b-this.Height,a,b))c=!0;else if(c||this.IsBlocking(this.X+a+this.Width,this.Y+b-this.Height,a,b))c=!0;a>0&&(this.IsBlocking(this.X+a+this.Width,this.Y+b-this.Height,a,b)&&(c=!0),this.IsBlocking(this.X+a+this.Width,this.Y+b-(this.Height/2|0),a,b)&&(c=!0),this.IsBlocking(this.X+a+this.Width,this.Y+b,a,b)&&(c=!0));a<0&&(this.IsBlocking(this.X+a-this.Width,this.Y+b-this.Height,a,b)&&(c=!0),this.IsBlocking(this.X+a-
this.Width,this.Y+b-(this.Height/2|0),a,b)&&(c=!0),this.IsBlocking(this.X+a-this.Width,this.Y+b,a,b)&&(c=!0));if(c){if(a<0)this.X=((this.X-this.Width)/16|0)*16+this.Width,this.Xa=0;if(a>0)this.X=((this.X+this.Width)/16+1|0)*16-this.Width-1,this.Xa=0;if(b<0)this.Y=((this.Y-this.Height)/16|0)*16+this.Height,this.Ya=0;if(b>0)this.Y=((this.Y-1)/16+1|0)*16-1,this.OnGround=!0;return!1}else return this.X+=a,this.Y+=b,!0};
Mario.Shell.prototype.IsBlocking=function(a,b,c,e){a=a/16|0;b=b/16|0;if(a===(this.X/16|0)&&b===(this.Y/16|0))return!1;var d=this.World.Level.IsBlocking(a,b,c,e);d&&e===0&&c!==0&&this.World.Bump(a,b,!0);return d};Mario.Shell.prototype.BumpCheck=function(a,b){if(this.X+this.Width>a*16&&this.X-this.Width<a*16+16&&b===((this.Y-1)/16|0))this.Facing=-Mario.MarioCharacter.Facing,this.Ya=-10};
Mario.Shell.prototype.Die=function(){this.Dead=!0;this.Carried=!1;this.Xa=-this.Facing*2;this.Ya=-5;this.DeadTime=100};Mario.Shell.prototype.ShellCollideCheck=function(a){if(this.DeadTime!==0)return!1;var b=a.X-this.X,c=a.Y-this.Y;if(b>-16&&b<16&&c>-this.Height&&c<a.Height){Enjine.Resources.PlaySound("kick");if(Mario.MarioCharacter.Carried===a||Mario.MarioCharacter.Carried===this)Mario.MarioCharacter.Carried=null;this.Die();a.Die();return!0}return!1};
Mario.Shell.prototype.Release=function(){this.Carried=!1;this.Facing=Mario.MarioCharacter.Facing;this.X+=this.Facing*8};Mario.TitleState=function(){this.font=this.bounce=this.logoY=this.camera=this.drawManager=null};Mario.TitleState.prototype=new Enjine.GameState;
Mario.TitleState.prototype.Enter=function(){this.drawManager=new Enjine.DrawableManager;this.camera=new Enjine.Camera;var a=new Mario.BackgroundGenerator(2048,15,!0,Mario.LevelType.Overground),b=new Mario.BackgroundRenderer(a.CreateLevel(),320,240,2);a.SetValues(2048,15,!1,Mario.LevelType.Overground);a=new Mario.BackgroundRenderer(a.CreateLevel(),320,240,1);this.title=new Enjine.Sprite;this.title.Image=Enjine.Resources.Images.title;this.title.X=0;this.title.Y=120;this.logo=new Enjine.Sprite;this.logo.Image=
Enjine.Resources.Images.logo;this.logo.X=0;this.logo.Y=0;this.font=Mario.SpriteCuts.CreateRedFont();this.font.Strings[0]={String:"Press S to Start",X:96,Y:120};this.logoY=20;this.drawManager.Add(b);this.drawManager.Add(a);this.bounce=0;Mario.GlobalMapState=new Mario.MapState;Mario.MarioCharacter=new Mario.Character;Mario.MarioCharacter.Image=Enjine.Resources.Images.smallMario};Mario.TitleState.prototype.Exit=function(){this.drawManager.Clear();delete this.drawManager;delete this.camera;delete this.font};
Mario.TitleState.prototype.Update=function(a){this.bounce+=a*2;this.logoY=20+Math.sin(this.bounce)*10;this.camera.X+=a*25;this.drawManager.Update(a)};Mario.TitleState.prototype.Draw=function(a){this.drawManager.Draw(a,this.camera);a.drawImage(Enjine.Resources.Images.title,0,120);a.drawImage(Enjine.Resources.Images.logo,0,this.logoY);this.font.Draw(a,this.Camera)};Mario.TitleState.prototype.CheckForChange=function(a){Enjine.KeyboardInput.IsKeyDown(Enjine.Keys.S)&&a.ChangeState(Mario.GlobalMapState)};
Mario.LoadingState=function(){this.Images=[];this.ImagesLoaded=!1;this.ScreenColor=0;this.ColorDirection=1;this.SoundIndex=this.ImageIndex=0};Mario.LoadingState.prototype=new Enjine.GameState;
Mario.LoadingState.prototype.Enter=function(){for(var a=0,a=0;a<15;a++)this.Images[a]={};this.Images[0].name="background";this.Images[1].name="endScene";this.Images[2].name="enemies";this.Images[3].name="fireMario";this.Images[4].name="font";this.Images[5].name="gameOverGhost";this.Images[6].name="items";this.Images[7].name="logo";this.Images[8].name="map";this.Images[9].name="mario";this.Images[10].name="particles";this.Images[11].name="racoonMario";this.Images[12].name="smallMario";this.Images[13].name=
"title";this.Images[14].name="worldMap";this.Images[0].src="static/cjml/images/bgsheet.png";this.Images[1].src="static/cjml/images/endscene.gif";this.Images[2].src="static/cjml/images/enemysheet.png";this.Images[3].src="static/cjml/images/firemariosheet.png";this.Images[4].src="static/cjml/images/font.gif";this.Images[5].src="static/cjml/images/gameovergost.gif";this.Images[6].src="static/cjml/images/itemsheet.png";this.Images[7].src="static/cjml/images/logo.gif";this.Images[8].src="static/cjml/images/mapsheet.png";this.Images[9].src="static/cjml/images/mariosheet.png";this.Images[10].src="static/cjml/images/particlesheet.png";
this.Images[11].src="static/cjml/images/racoonmariosheet.png";this.Images[12].src="static/cjml/images/smallmariosheet.png";this.Images[13].src="static/cjml/images/title.gif";this.Images[14].src="static/cjml/images/worldmap.png";Enjine.Resources.AddImages(this.Images);(new Audio).canPlayType("audio/mp3")?Enjine.Resources.AddSound("1up","sounds/1-up.mp3",1).AddSound("breakblock","sounds/breakblock.mp3").AddSound("bump","sounds/bump.mp3",4).AddSound("cannon","sounds/cannon.mp3").AddSound("coin","sounds/coin.mp3",5).AddSound("death","sounds/death.mp3",
1).AddSound("exit","sounds/exit.mp3",1).AddSound("fireball","sounds/fireball.mp3",1).AddSound("jump","sounds/jump.mp3").AddSound("kick","sounds/kick.mp3").AddSound("pipe","sounds/pipe.mp3",1).AddSound("powerdown","sounds/powerdown.mp3",1).AddSound("powerup","sounds/powerup.mp3",1).AddSound("sprout","sounds/sprout.mp3",1).AddSound("stagestart","sounds/stagestart.mp3",1).AddSound("stomp","sounds/stomp.mp3",2):Enjine.Resources.AddSound("1up","sounds/1-up.wav",1).AddSound("breakblock","sounds/breakblock.wav").AddSound("bump",
"sounds/bump.wav",2).AddSound("cannon","sounds/cannon.wav").AddSound("coin","sounds/coin.wav",5).AddSound("death","sounds/death.wav",1).AddSound("exit","sounds/exit.wav",1).AddSound("fireball","sounds/fireball.wav",1).AddSound("jump","sounds/jump.wav",1).AddSound("kick","sounds/kick.wav",1).AddSound("message","sounds/message.wav",1).AddSound("pipe","sounds/pipe.wav",1).AddSound("powerdown","sounds/powerdown.wav",1).AddSound("powerup","sounds/powerup.wav",1).AddSound("sprout","sounds/sprout.wav",1).AddSound("stagestart",
"sounds/stagestart.wav",1).AddSound("stomp","sounds/stomp.wav",1);Mario.Tile.LoadBehaviors()};Mario.LoadingState.prototype.Exit=function(){delete this.Images};
Mario.LoadingState.prototype.Update=function(a){if(!this.ImagesLoaded){this.ImagesLoaded=!0;for(var b=0,b=0;b<this.Images.length;b++)if(Enjine.Resources.Images[this.Images[b].name].complete!==!0){this.ImagesLoaded=!1;break}}this.ScreenColor+=this.ColorDirection*255*a;if(this.ScreenColor>255)this.ScreenColor=255,this.ColorDirection=-1;else if(this.ScreenColor<0)this.ScreenColor=0,this.ColorDirection=1};
Mario.LoadingState.prototype.Draw=function(a){if(this.ImagesLoaded)a.fillStyle="rgb(0, 0, 0)";else{var b=parseInt(this.ScreenColor,10);a.fillStyle="rgb("+b+","+b+","+b+")"}a.fillRect(0,0,640,480)};Mario.LoadingState.prototype.CheckForChange=function(a){if(this.ImagesLoaded)Mario.GlobalMapState=new Mario.MapState,a.ChangeState(new Mario.TitleState)};Mario.LoseState=function(){this.font=this.gameOver=this.camera=this.drawManager=null;this.wasKeyDown=!1};Mario.LoseState.prototype=new Enjine.GameState;
Mario.LoseState.prototype.Enter=function(){this.drawManager=new Enjine.DrawableManager;this.camera=new Enjine.Camera;this.gameOver=new Enjine.AnimatedSprite;this.gameOver.Image=Enjine.Resources.Images.gameOverGhost;this.gameOver.SetColumnCount(9);this.gameOver.SetRowCount(1);this.gameOver.AddNewSequence("turnLoop",0,0,0,8);this.gameOver.PlaySequence("turnLoop",!0);this.gameOver.FramesPerSecond=1/15;this.gameOver.X=112;this.gameOver.Y=68;this.font=Mario.SpriteCuts.CreateBlackFont();this.font.Strings[0]=
{String:"Game over!",X:116,Y:160};this.drawManager.Add(this.font);this.drawManager.Add(this.gameOver)};Mario.LoseState.prototype.Exit=function(){this.drawManager.Clear();delete this.drawManager;delete this.camera;delete this.gameOver;delete this.font};Mario.LoseState.prototype.Update=function(a){this.drawManager.Update(a);if(Enjine.KeyboardInput.IsKeyDown(Enjine.Keys.S))this.wasKeyDown=!0};Mario.LoseState.prototype.Draw=function(a){this.drawManager.Draw(a,this.camera)};
Mario.LoseState.prototype.CheckForChange=function(a){this.wasKeyDown&&!Enjine.KeyboardInput.IsKeyDown(Enjine.Keys.S)&&a.ChangeState(new Mario.TitleState)};Mario.WinState=function(){this.waitTime=2;this.kissing=this.font=this.camera=this.drawManager=null;this.wasKeyDown=!1};Mario.WinState.prototype=new Enjine.GameState;
Mario.WinState.prototype.Enter=function(){this.drawManager=new Enjine.DrawableManager;this.camera=new Enjine.Camera;this.font=Mario.SpriteCuts.CreateBlackFont();this.font.Strings[0]={String:"Thank you for saving me, Mario!",X:36,Y:160};this.kissing=new Enjine.AnimatedSprite;this.kissing.Image=Enjine.Resources.Images.endScene;this.kissing.X=112;this.kissing.Y=52;this.kissing.SetColumnCount(2);this.kissing.SetRowCount(1);this.kissing.AddNewSequence("loop",0,0,0,1);this.kissing.PlaySequence("loop",!0);
this.kissing.FramesPerSecond=0.5;this.waitTime=2;this.drawManager.Add(this.font);this.drawManager.Add(this.kissing)};Mario.WinState.prototype.Exit=function(){this.drawManager.Clear();delete this.drawManager;delete this.camera};Mario.WinState.prototype.Update=function(a){this.drawManager.Update(a);if(this.waitTime>0)this.waitTime-=a;else if(Enjine.KeyboardInput.IsKeyDown(Enjine.Keys.S))this.wasKeyDown=!0};Mario.WinState.prototype.Draw=function(a){this.drawManager.Draw(a,this.camera)};
Mario.WinState.prototype.CheckForChange=function(a){this.waitTime<=0&&this.wasKeyDown&&!Enjine.KeyboardInput.IsKeyDown(Enjine.Keys.S)&&a.ChangeState(new Mario.TitleState)};Mario.MapTile={Grass:0,Water:1,Level:2,Road:3,Decoration:4};
Mario.MapState=function(){this.camera=new Enjine.Camera;this.Level=[];this.Data=[];this.YFarthestCap=this.XFarthestCap=this.Farthest=this.LevelId=this.MoveTime=this.YMarioA=this.XMarioA=this.YMario=this.XMario=0;this.MapImage=document.createElement("canvas");this.MapImage.width=320;this.MapImage.height=240;this.MapContext=this.MapImage.getContext("2d");this.EnterLevel=this.CanEnterLevel=!1;this.LevelType=this.LevelDifficulty=0;this.WorldNumber=-1;this.NextWorld()};Mario.MapState.prototype=new Enjine.GameState;
Mario.MapState.prototype.Enter=function(){this.WaterSprite=new Enjine.AnimatedSprite;this.WaterSprite.Image=Enjine.Resources.Images.worldMap;this.WaterSprite.SetColumnCount(16);this.WaterSprite.SetRowCount(16);this.WaterSprite.AddNewSequence("loop",14,0,14,3);this.WaterSprite.FramesPerSecond=1/3;this.WaterSprite.PlaySequence("loop",!0);this.WaterSprite.X=0;this.WaterSprite.Y=0;this.DecoSprite=new Enjine.AnimatedSprite;this.DecoSprite.Image=Enjine.Resources.Images.worldMap;this.DecoSprite.SetColumnCount(16);
this.DecoSprite.SetRowCount(16);this.DecoSprite.AddNewSequence("world0",10,0,10,3);this.DecoSprite.AddNewSequence("world1",11,0,11,3);this.DecoSprite.AddNewSequence("world2",12,0,12,3);this.DecoSprite.AddNewSequence("world3",13,0,13,3);this.DecoSprite.FramesPerSecond=1/3;this.DecoSprite.PlaySequence("world0",!0);this.DecoSprite.X=0;this.DecoSprite.Y=0;this.HelpSprite=new Enjine.AnimatedSprite;this.HelpSprite.Image=Enjine.Resources.Images.worldMap;this.HelpSprite.SetColumnCount(16);this.HelpSprite.SetRowCount(16);
this.HelpSprite.AddNewSequence("help",7,3,7,5);this.HelpSprite.FramesPerSecond=0.5;this.HelpSprite.PlaySequence("help",!0);this.HelpSprite.X=0;this.HelpSprite.Y=0;this.SmallMario=new Enjine.AnimatedSprite;this.SmallMario.Image=Enjine.Resources.Images.worldMap;this.SmallMario.SetColumnCount(16);this.SmallMario.SetRowCount(16);this.SmallMario.AddNewSequence("small",1,0,1,1);this.SmallMario.FramesPerSecond=1/3;this.SmallMario.PlaySequence("small",!0);this.SmallMario.X=0;this.SmallMario.Y=0;this.LargeMario=
new Enjine.AnimatedSprite;this.LargeMario.Image=Enjine.Resources.Images.worldMap;this.LargeMario.SetColumnCount(16);this.LargeMario.SetRowCount(8);this.LargeMario.AddNewSequence("large",0,2,0,3);this.LargeMario.AddNewSequence("fire",0,4,0,5);this.LargeMario.FramesPerSecond=1/3;this.LargeMario.PlaySequence("large",!0);this.LargeMario.X=0;this.LargeMario.Y=0;this.FontShadow=Mario.SpriteCuts.CreateBlackFont();this.Font=Mario.SpriteCuts.CreateWhiteFont();this.DecoSprite.PlaySequence("world"+this.WorldNumber%
4,!0);Mario.MarioCharacter.Fire?this.LargeMario.PlaySequence("fire",!0):this.LargeMario.PlaySequence("large",!0);this.EnterLevel=!1;this.LevelType=this.LevelDifficulty=0};Mario.MapState.prototype.Exit=function(){delete this.WaterSprite;delete this.DecoSprite;delete this.HelpSprite;delete this.SmallMario;delete this.LargeMario;delete this.FontShadow;delete this.Font};
Mario.MapState.prototype.NextWorld=function(){var a=!1;this.WorldNumber++;if(this.WorldNumber!==8){for(this.YFarthestCap=this.XFarthestCap=this.Farthest=this.LevelId=this.MoveTime=0;!a;)a=this.GenerateLevel();this.RenderStatic()}};
Mario.MapState.prototype.GenerateLevel=function(){var a=0,b=0,c=0,e=0,c=c=0,d=new Mario.ImprovedNoise(Math.random()*9223372036854775E3|0),f=new Mario.ImprovedNoise(Math.random()*9223372036854775E3|0),g=new Mario.ImprovedNoise(Math.random()*9223372036854775E3|0);this.Level=[];this.Data=[];for(var h=Math.random()*512,i=Math.random()*512,j=Math.random()*512,k=Math.random()*512,a=0;a<21;a++){this.Level[a]=[];this.Data[a]=[];for(b=0;b<16;b++)c=d.PerlinNoise(a*10+h,b*10+i),e=f.PerlinNoise(a*10+j,b*10+k),
c-=e,c*=2,this.Level[a][b]=c>0?Mario.MapTile.Water:Mario.MapTile.Grass}f=d=9999;for(j=c=j=0;j<100&&c<12;j++)if(a=(Math.random()*(20/3|0)|0)*3+2,b=(Math.random()*5|0)*3+1,this.Level[a][b]===Mario.MapTile.Grass)a<d&&(d=a,f=b),this.Level[a][b]=Mario.MapTile.Level,this.Data[a][b]=-1,c++;this.Data[d][f]=-2;for(a=!0;a;)a=this.FindConnection(21,16);this.FindCaps(21,16);if(this.XFarthestCap===0)return!1;this.Data[this.XFarthestCap][this.YFarthestCap]=-2;this.Data[this.XMario/16|0][this.YMario/16|0]=-11;for(a=
0;a<21;a++)for(b=0;b<16;b++)if(this.Level[a][b]===Mario.MapTile.Grass&&(a!==this.XFarthestCap||b!==this.YFarthestCap-1))if(c=g.PerlinNoise(a*10+h,b*10+i),c>0)this.Level[a][b]=Mario.MapTile.Decoration;return!0};Mario.MapState.prototype.FindConnection=function(a,b){for(var c=0,e=0,c=0;c<a;c++)for(e=0;e<b;e++)if(this.Level[c][e]===Mario.MapTile.Level&&this.Data[c][e]===-1)return this.Connect(c,e,a,b),!0;return!1};
Mario.MapState.prototype.Connect=function(a,b,c,e){for(var d=1E4,f=0,g=0,h=0,i=0,j=0,k=0,h=j=0;h<c;h++)for(i=0;i<e;i++)this.Level[h][i]===Mario.MapTile.Level&&this.Data[h][i]===-2&&(j=Math.abs(a-h)|0,k=Math.abs(b-i)|0,j=j*j+k*k,j<d&&(f=h,g=i,d=j));this.DrawRoad(a,b,f,g);this.Level[a][b]=Mario.MapTile.Level;this.Data[a][b]=-2};
Mario.MapState.prototype.DrawRoad=function(a,b,c,e){var d=!1;Math.random()>0.5&&(d=!0);if(d){for(;a>c;)this.Data[a][b]=0,this.Level[a--][b]=Mario.MapTile.Road;for(;a<c;)this.Data[a][b]=0,this.Level[a++][b]=Mario.MapTile.Road}for(;b>e;)this.Data[a][b]=0,this.Level[a][b--]=Mario.MapTile.Road;for(;b<e;)this.Data[a][b]=0,this.Level[a][b++]=Mario.MapTile.Road;if(!d){for(;a>c;)this.Data[a][b]=0,this.Level[a--][b]=Mario.MapTile.Road;for(;a<c;)this.Data[a][b]=0,this.Level[a++][b]=Mario.MapTile.Road}};
Mario.MapState.prototype.FindCaps=function(a,b){for(var c=0,e=0,d=-1,f=-1,g=0,h=0,i=0,c=0;c<a;c++)for(e=0;e<b;e++)if(this.Level[c][e]===Mario.MapTile.Level){g=0;for(h=c-1;h<=c+1;h++)for(i=e-1;i<=e+1;i++)this.Level[h][i]===Mario.MapTile.Road&&g++;g===1?(d===-1&&(d=c,f=e),this.Data[c][e]=0):this.Data[c][e]=1}this.XMario=d*16;this.YMario=f*16;this.Travel(d,f,-1,0)};
Mario.MapState.prototype.Travel=function(a,b,c,e){if(!(this.Level[a][b]!==Mario.MapTile.Road&&this.Level[a][b]!==Mario.MapTile.Level)){if(this.Level[a][b]===Mario.MapTile.Road)if(this.Data[a][b]===1)return;else this.Data[a][b]=1;if(this.Level[a][b]===Mario.MapTile.Level)if(this.Data[a][b]>0)this.Data[a][b]=this.LevelId!==0&&(Math.random()*4|0)===0?-3:++this.LevelId;else if(e>0&&(this.Data[a][b]=-1,e>this.Farthest))this.Farthest=e,this.XFarthestCap=a,this.YFarthestCap=b;c!==2&&this.Travel(a-1,b,0,
e++);c!==3&&this.Travel(a,b-1,1,e++);c!==0&&this.Travel(a+1,b,2,e++);c!==1&&this.Travel(a,b+1,3,e++)}};
Mario.MapState.prototype.RenderStatic=function(){for(var a=0,b=0,c=0,e=0,d=0,f=0,g=c=0,h=0,i=Enjine.Resources.Images.worldMap,a=g=0;a<20;a++)for(b=0;b<15;b++)if(this.MapContext.drawImage(i,(this.WorldNumber/4|0)*16,0,16,16,a*16,b*16,16,16),this.Level[a][b]===Mario.MapTile.Level)g=this.Data[a][b],g===0?this.MapContext.drawImage(i,0,112,16,16,a*16,b*16,16,16):g===-1?this.MapContext.drawImage(i,48,128,16,16,a*16,b*16,16,16):g===-3?this.MapContext.drawImage(i,0,128,16,16,a*16,b*16,16,16):g===-10?this.MapContext.drawImage(i,
16,128,16,16,a*16,b*16,16,16):g===-11?this.MapContext.drawImage(i,16,112,16,16,a*16,b*16,16,16):g===-2?(this.MapContext.drawImage(i,32,112,16,16,a*16,(b-1)*16,16,16),this.MapContext.drawImage(i,32,128,16,16,a*16,b*16,16,16)):this.MapContext.drawImage(i,(g-1)*16,96,16,16,a*16,b*16,16,16);else if(this.Level[a][b]===Mario.MapTile.Road)c=this.IsRoad(a-1,b)?1:0,e=this.IsRoad(a,b-1)?1:0,d=this.IsRoad(a+1,b)?1:0,f=this.IsRoad(a,b+1)?1:0,c=c+e*2+d*4+f*8,this.MapContext.drawImage(i,c*16,32,16,16,a*16,b*16,
16,16);else if(this.Level[a][b]===Mario.MapTile.Water)for(g=0;g<2;g++)for(h=0;h<2;h++)c=this.IsWater(a*2+(g-1),b*2+(h-1))?0:1,e=this.IsWater(a*2+g,b*2+(h-1))?0:1,d=this.IsWater(a*2+(g-1),b*2+h)?0:1,f=this.IsWater(a*2+g,b*2+h)?0:1,c=c+e*2+d*4+f*8-1,c>=0&&c<=14&&this.MapContext.drawImage(i,c*16,(4+(g+h&1))*16,16,16,a*16+g*8,b*16+h*8,16,16)};
Mario.MapState.prototype.IsRoad=function(a,b){a<0&&(a=0);b<0&&(b=0);if(this.Level[a][b]===Mario.MapTile.Road)return!0;if(this.Level[a][b]===Mario.MapTile.Level)return!0;return!1};Mario.MapState.prototype.IsWater=function(a,b){var c=0,e=0;a<0&&(a=0);b<0&&(b=0);for(c=0;c<2;c++)for(e=0;e<2;e++)if(this.Level[(a+c)/2|0][(b+e)/2|0]!==Mario.MapTile.Water)return!1;return!0};
Mario.MapState.prototype.Update=function(a){var b=0,c=0,e=0,d=0;if(this.WorldNumber!==8){this.XMario+=this.XMarioA;this.YMario+=this.YMarioA;b=this.XMario/16|0;c=this.YMario/16|0;this.Level[b][c]===Mario.MapTile.Road&&(this.Data[b][c]=0);if(this.MoveTime>0)this.MoveTime--;else{this.YMarioA=this.XMarioA=0;if(this.CanEnterLevel&&Enjine.KeyboardInput.IsKeyDown(Enjine.Keys.S)&&this.Level[b][c]===Mario.MapTile.Level&&this.Data[b][c]!==-11&&this.Level[b][c]===Mario.MapTile.Level&&this.Data[b][c]!==0&&this.Data[b][c]>
-10){e=this.WorldNumber+1;Mario.MarioCharacter.LevelString=e+"-";d=Mario.LevelType.Overground;if(this.Data[b][c]>1&&(Math.random()*3|0)===0)d=Mario.LevelType.Underground;this.Data[b][c]<0?(this.Data[b][c]===-2?(Mario.MarioCharacter.LevelString+="X",e+=2):this.Data[b][c]===-1?Mario.MarioCharacter.LevelString+="?":(Mario.MarioCharacter.LevelString+="#",e+=1),d=Mario.LevelType.Castle):Mario.MarioCharacter.LevelString+=this.Data[b][c];this.EnterLevel=!0;this.LevelDifficulty=e;this.LevelType=d}this.CanEnterLevel=
!Enjine.KeyboardInput.IsKeyDown(Enjine.Keys.S);Enjine.KeyboardInput.IsKeyDown(Enjine.Keys.Left)&&this.TryWalking(-1,0);Enjine.KeyboardInput.IsKeyDown(Enjine.Keys.Right)&&this.TryWalking(1,0);Enjine.KeyboardInput.IsKeyDown(Enjine.Keys.Up)&&this.TryWalking(0,-1);Enjine.KeyboardInput.IsKeyDown(Enjine.Keys.Down)&&this.TryWalking(0,1)}this.WaterSprite.Update(a);this.DecoSprite.Update(a);this.HelpSprite.Update(a);Mario.MarioCharacter.Large?(this.LargeMario.X=this.XMario+this.XMarioA*a|0,this.LargeMario.Y=
this.YMario+(this.YMarioA*a|0)-22,this.LargeMario.Update(a)):(this.SmallMario.X=this.XMario+this.XMarioA*a|0,this.SmallMario.Y=this.YMario+(this.YMarioA*a|0)-6,this.SmallMario.Update(a))}};
Mario.MapState.prototype.TryWalking=function(a,b){var c=this.XMario/16|0,e=this.YMario/16|0,d=c+a,f=e+b;if((this.Level[d][f]===Mario.MapTile.Road||this.Level[d][f]===Mario.MapTile.Level)&&!(this.Level[d][f]===Mario.MapTile.Road&&this.Data[d][f]!==0&&this.Data[c][e]!==0&&this.Data[c][e]>-10))this.XMarioA=a*8,this.YMarioA=b*8,this.MoveTime=this.CalcDistance(c,e,a,b)*2+1};
Mario.MapState.prototype.CalcDistance=function(a,b,c,e){for(var d=0;;){a+=c;b+=e;if(this.Level[a][b]!==Mario.MapTile.Road)return d;if(this.Level[a-e][b+c]===Mario.MapTile.Road)return d;if(this.Level[a+e][b-c]===Mario.MapTile.Road)return d;d++}};
Mario.MapState.prototype.Draw=function(a){var b=0,c=0;if(this.WorldNumber!==8){a.drawImage(this.MapImage,0,0);for(c=0;c<=15;c++)for(b=20;b>=0;b--)if(this.Level[b][c]===Mario.MapTile.Water){if(this.IsWater(b*2-1,c*2-1))this.WaterSprite.X=b*16-8,this.WaterSprite.Y=c*16-8,this.WaterSprite.Draw(a,this.camera)}else if(this.Level[b][c]===Mario.MapTile.Decoration)this.DecoSprite.X=b*16,this.DecoSprite.Y=c*16,this.DecoSprite.Draw(a,this.camera);else if(this.Level[b][c]===Mario.MapTile.Level&&this.Data[b][c]===
-2)this.HelpSprite.X=b*16+16,this.HelpSprite.Y=c*16-16,this.HelpSprite.Draw(a,this.camera);Mario.MarioCharacter.Large?this.LargeMario.Draw(a,this.camera):this.SmallMario.Draw(a,this.camera);this.Font.Strings[0]={String:"MARIO "+Mario.MarioCharacter.Lives,X:4,Y:4};this.FontShadow.Strings[0]={String:"MARIO "+Mario.MarioCharacter.Lives,X:5,Y:5};this.Font.Strings[1]={String:"WORLD "+(this.WorldNumber+1),X:256,Y:4};this.FontShadow.Strings[1]={String:"WORLD "+(this.WorldNumber+1),X:257,Y:5};this.FontShadow.Draw(a,
this.camera);this.Font.Draw(a,this.camera)}};Mario.MapState.prototype.LevelWon=function(){var a=this.XMario/16,b=this.YMario/16;this.Data[a][b]===-2?this.NextWorld():(this.Data[a][b]=this.Data[a][b]!==-3?0:-10,this.RenderStatic())};Mario.MapState.prototype.GetX=function(){return 160};Mario.MapState.prototype.GetY=function(){return 120};
Mario.MapState.prototype.CheckForChange=function(a){this.WorldNumber===8&&a.ChangeState(new Mario.WinState);this.EnterLevel&&a.ChangeState(new Mario.LevelState(this.LevelDifficulty,this.LevelType))};
Mario.LevelState=function(a,b){this.LevelDifficulty=a;this.LevelType=b;this.Layer=this.Level=null;this.BgLayer=[];this.Paused=!1;this.Font=this.FontShadow=this.FireballsToCheck=this.ShellsToCheck=this.Camera=this.SpritesToRemove=this.SpritesToAdd=this.Sprites=null;this.Delta=this.Tick=this.FireballsOnScreen=this.StartTime=this.TimeLeft=0;this.GotoLoseState=this.GotoMapState=!1};Mario.LevelState.prototype=new Enjine.GameState;
Mario.LevelState.prototype.Enter=function(){var a=0,b=0,c=0,e=0,c=null;this.Level=(new Mario.LevelGenerator(320,15)).CreateLevel(this.LevelType,this.LevelDifficulty);this.Paused=!1;this.Layer=new Mario.LevelRenderer(this.Level,320,240);this.Sprites=new Enjine.DrawableManager;this.Camera=new Enjine.Camera;this.Tick=0;this.ShellsToCheck=[];this.FireballsToCheck=[];this.SpritesToAdd=[];this.SpritesToRemove=[];this.FontShadow=Mario.SpriteCuts.CreateBlackFont();this.Font=Mario.SpriteCuts.CreateWhiteFont();
for(a=0;a<2;a++)b=4>>a,c=((this.Level.Width*16-320)/b|0)+320,e=((this.Level.Height*16-240)/b|0)+240,c=new Mario.BackgroundGenerator(c/32+1,e/32+1,a===0,this.LevelType),this.BgLayer[a]=new Mario.BackgroundRenderer(c.CreateLevel(),320,240,b);Mario.MarioCharacter.Initialize(this);this.Sprites.Add(Mario.MarioCharacter);this.StartTime=1;this.TimeLeft=200;this.GotoLoseState=this.GotoMapState=!1};
Mario.LevelState.prototype.Exit=function(){delete this.Level;delete this.Layer;delete this.BgLayer;delete this.Sprites;delete this.Camera;delete this.ShellsToCheck;delete this.FireballsToCheck;delete this.FontShadow;delete this.Font};Mario.LevelState.prototype.CheckShellCollide=function(a){this.ShellsToCheck.push(a)};Mario.LevelState.prototype.CheckFireballCollide=function(a){this.FireballsToCheck.push(a)};
Mario.LevelState.prototype.Update=function(a){var b=0,c=0,e=c=0,d=null,b=!1,d=e=c=0,f=null,f=0;this.Delta=a;this.TimeLeft-=a;(this.TimeLeft|0)===0&&Mario.MarioCharacter.Die();this.StartTime>0&&this.StartTime++;this.Camera.X=Mario.MarioCharacter.X-160;if(this.Camera.X<0)this.Camera.X=0;if(this.Camera.X>this.Level.Width*16-320)this.Camera.X=this.Level.Width*16-320;for(b=this.FireballsOnScreen=0;b<this.Sprites.Objects.length;b++)d=this.Sprites.Objects[b],d!==Mario.MarioCharacter&&(c=d.X-this.Camera.X,
e=d.Y-this.Camera.Y,c<-64||c>384||e<-64||e>304?this.Sprites.RemoveAt(b):d instanceof Mario.Fireball&&this.FireballsOnScreen++);if(this.Paused)for(b=0;b<this.Sprites.Objects.length;b++)this.Sprites.Objects[b]===Mario.MarioCharacter?this.Sprites.Objects[b].Update(a):this.Sprites.Objects[b].UpdateNoMove(a);else{this.Layer.Update(a);this.Level.Update();b=!1;this.Tick++;for(c=(this.Camera.X/16|0)-1;c<=((this.Camera.X+this.Layer.Width)/16|0)+1;c++)for(e=(this.Camera.Y/16|0)-1;e<=((this.Camera.Y+this.Layer.Height)/
16|0)+1;e++){d=0;c*16+8>Mario.MarioCharacter.X+16&&(d=-1);c*16+8<Mario.MarioCharacter.X-16&&(d=1);f=this.Level.GetSpriteTemplate(c,e);if(f!==null)f.LastVisibleTick!==this.Tick-1&&(f.Sprite===null||!this.Sprites.Contains(f.Sprite))&&f.Spawn(this,c,e,d),f.LastVisibleTick=this.Tick;if(d!==0&&(f=this.Level.GetBlock(c,e),(Mario.Tile.Behaviors[f&255]&Mario.Tile.Animated)>0&&(f%16/4|0)===3&&(f/16|0)===0&&(this.Tick-c*2)%100===0)){for(b=0;b<8;b++)this.AddSprite(new Mario.Sparkle(this,c*16+8,e*16+(Math.random()*
16|0),Math.random()*d,0,0,1,5));this.AddSprite(new Mario.BulletBill(this,c*16+8+d*8,e*16+15,d));b=!0}}b&&Enjine.Resources.PlaySound("cannon");for(b=0;b<this.Sprites.Objects.length;b++)this.Sprites.Objects[b].Update(a);for(b=0;b<this.Sprites.Objects.length;b++)this.Sprites.Objects[b].CollideCheck();for(b=0;b<this.ShellsToCheck.length;b++)for(c=0;c<this.Sprites.Objects.length;c++)if(this.Sprites.Objects[c]!==this.ShellsToCheck[b]&&!this.ShellsToCheck[b].Dead&&this.Sprites.Objects[c].ShellCollideCheck(this.ShellsToCheck[b])&&
Mario.MarioCharacter.Carried===this.ShellsToCheck[b]&&!this.ShellsToCheck[b].Dead)Mario.MarioCharacter.Carried=null,this.ShellsToCheck[b].Die();for(b=this.ShellsToCheck.length=0;b<this.FireballsToCheck.length;b++)for(c=0;c<this.Sprites.Objects.length;c++)this.Sprites.Objects[c]!==this.FireballsToCheck[b]&&!this.FireballsToCheck[b].Dead&&this.Sprites.Objects[c].FireballCollideCheck(this.FireballsToCheck[b])&&this.FireballsToCheck[b].Die();this.FireballsToCheck.length=0}this.Sprites.AddRange(this.SpritesToAdd);
this.Sprites.RemoveList(this.SpritesToRemove);this.SpritesToAdd.length=0;this.SpritesToRemove.length=0;this.Camera.X=Mario.MarioCharacter.XOld+(Mario.MarioCharacter.X-Mario.MarioCharacter.XOld)*a-160;this.Camera.Y=Mario.MarioCharacter.YOld+(Mario.MarioCharacter.Y-Mario.MarioCharacter.YOld)*a-120};
Mario.LevelState.prototype.Draw=function(a){var b=0,b=b=0;if(this.Camera.X<0)this.Camera.X=0;if(this.Camera.Y<0)this.Camera.Y=0;if(this.Camera.X>this.Level.Width*16-320)this.Camera.X=this.Level.Width*16-320;if(this.Camera.Y>this.Level.Height*16-240)this.Camera.Y=this.Level.Height*16-240;for(b=0;b<2;b++)this.BgLayer[b].Draw(a,this.Camera);a.save();a.translate(-this.Camera.X,-this.Camera.Y);for(b=0;b<this.Sprites.Objects.length;b++)this.Sprites.Objects[b].Layer===0&&this.Sprites.Objects[b].Draw(a,this.Camera);
a.restore();this.Layer.Draw(a,this.Camera);this.Layer.DrawExit0(a,this.Camera,Mario.MarioCharacter.WinTime===0);a.save();a.translate(-this.Camera.X,-this.Camera.Y);for(b=0;b<this.Sprites.Objects.length;b++)this.Sprites.Objects[b].Layer===1&&this.Sprites.Objects[b].Draw(a,this.Camera);a.restore();this.Layer.DrawExit1(a,this.Camera);this.DrawStringShadow(a,"MARIO "+Mario.MarioCharacter.Lives,0,0);this.DrawStringShadow(a,"00000000",0,1);this.DrawStringShadow(a,"COIN",14,0);this.DrawStringShadow(a," "+
Mario.MarioCharacter.Coins,14,1);this.DrawStringShadow(a,"WORLD",24,0);this.DrawStringShadow(a," "+Mario.MarioCharacter.LevelString,24,1);this.DrawStringShadow(a,"TIME",34,0);b=this.TimeLeft|0;b<0&&(b=0);this.DrawStringShadow(a," "+b,34,1);this.StartTime>0&&(b=this.StartTime+this.Delta-2,this.RenderBlackout(a,160,120,b*b*0.6|0));if(Mario.MarioCharacter.WinTime>0){b=Mario.MarioCharacter.WinTime+this.Delta;b=b*b*0.2;if(b>900)Mario.GlobalMapState.LevelWon(),this.GotoMapState=!0;this.RenderBlackout(a,
Mario.MarioCharacter.XDeathPos-this.Camera.X|0,Mario.MarioCharacter.YDeathPos-this.Camera.Y|0,320-b|0)}if(Mario.MarioCharacter.DeathTime>0){b=Mario.MarioCharacter.DeathTime+this.Delta;b=b*b*0.1;if(b>900&&(Mario.MarioCharacter.Lives--,this.GotoMapState=!0,Mario.MarioCharacter.Lives<=0))this.GotoLoseState=!0;this.RenderBlackout(a,Mario.MarioCharacter.XDeathPos-this.Camera.X|0,Mario.MarioCharacter.YDeathPos-this.Camera.Y|0,320-b|0)}};
Mario.LevelState.prototype.DrawStringShadow=function(a,b,c,e){this.Font.Strings[0]={String:b,X:c*8+4,Y:e*8+4};this.FontShadow.Strings[0]={String:b,X:c*8+5,Y:e*8+5};this.FontShadow.Draw(a,this.Camera);this.Font.Draw(a,this.Camera)};
Mario.LevelState.prototype.RenderBlackout=function(a,b,c,e){if(!(e>320)){for(var d=[],f=[],g=0,g=0;g<16;g++)d[g]=b+Math.cos(g*Math.PI/15)*e|0,f[g]=c+Math.sin(g*Math.PI/15)*e|0;d[16]=0;f[16]=c;d[17]=0;f[17]=240;d[18]=320;f[18]=240;d[19]=320;f[19]=c;a.fillStyle="#000";a.beginPath();a.moveTo(d[19],f[19]);for(g=18;g>=0;g--)a.lineTo(d[g],f[g]);a.closePath();a.fill();for(g=0;g<16;g++)d[g]=b-Math.cos(g*Math.PI/15)*e|0,f[g]=c-Math.sin(g*Math.PI/15)*e|0;f[15]+=5;d[16]=320;f[16]=c;d[17]=320;f[17]=0;d[18]=0;
f[18]=0;d[19]=0;f[19]=c;a.fillStyle="#000";a.beginPath();a.moveTo(d[0],f[0]);for(g=0;g<=d.length-1;g++)a.lineTo(d[g],f[g]);a.closePath();a.fill()}};Mario.LevelState.prototype.AddSprite=function(a){this.Sprites.Add(a)};Mario.LevelState.prototype.RemoveSprite=function(a){this.Sprites.Remove(a)};
Mario.LevelState.prototype.Bump=function(a,b,c){var e=this.Level.GetBlock(a,b),d=0,f=0;(Mario.Tile.Behaviors[e&255]&Mario.Tile.Bumpable)>0&&(this.BumpInto(a,b-1),this.Level.SetBlock(a,b,4),this.Level.SetBlockData(a,b,4),(Mario.Tile.Behaviors[e&255]&Mario.Tile.Special)>0?(Enjine.Resources.PlaySound("sprout"),Mario.MarioCharacter.Large?this.AddSprite(new Mario.FireFlower(this,a*16+8,b*16+8)):this.AddSprite(new Mario.Mushroom(this,a*16+8,b*16+8))):(Mario.MarioCharacter.GetCoin(),Enjine.Resources.PlaySound("coin"),
this.AddSprite(new Mario.CoinAnim(this,a,b))));if((Mario.Tile.Behaviors[e&255]&Mario.Tile.Breakable)>0&&(this.BumpInto(a,b-1),c)){Enjine.Resources.PlaySound("breakblock");this.Level.SetBlock(a,b,0);for(d=0;d<2;d++)for(f=0;f<2;f++)this.AddSprite(new Mario.Particle(this,a*16+d*8+4,b*16+f*8+4,(d*2-1)*4,(f*2-1)*4-8))}};
Mario.LevelState.prototype.BumpInto=function(a,b){var c=this.Level.GetBlock(a,b),e=0;(Mario.Tile.Behaviors[c&255]&Mario.Tile.PickUpable)>0&&(Mario.MarioCharacter.GetCoin(),Enjine.Resources.PlaySound("coin"),this.Level.SetBlock(a,b,0),this.AddSprite(new Mario.CoinAnim(a,b+1)));for(e=0;e<this.Sprites.Objects.length;e++)this.Sprites.Objects[e].BumpCheck(a,b)};Mario.LevelState.prototype.CheckForChange=function(a){this.GotoLoseState?a.ChangeState(new Mario.LoseState):this.GotoMapState&&a.ChangeState(Mario.GlobalMapState)};
+206
View File
@@ -0,0 +1,206 @@
/* Generated by Font Squirrel (http://www.fontsquirrel.com) on May 12, 2011 05:26:41 PM America/New_York */
@font-face {
font-family: 'SilkscreenNormal';
src: url('http://arcade.rawrbitrary.com/mario/silkscreen/slkscr-webfont.eot');
src: url('http://arcade.rawrbitrary.com/mario/silkscreen/slkscr-webfont.eot?#iefix') format('embedded-opentype'),
url('http://arcade.rawrbitrary.com/mario/silkscreen/slkscr-webfont.woff') format('woff'),
url('http://arcade.rawrbitrary.com/mario/silkscreen/slkscr-webfont.ttf') format('truetype'),
url('http://arcade.rawrbitrary.com/mario/silkscreen/slkscr-webfont.svg#SilkscreenNormal') format('svg');
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'SilkscreenBold';
src: url('http://arcade.rawrbitrary.com/mario/silkscreen/slkscrb-webfont.eot');
src: url('http://arcade.rawrbitrary.com/mario/silkscreen/slkscrb-webfont.eot?#iefix') format('embedded-opentype'),
url('http://arcade.rawrbitrary.com/mario/silkscreen/slkscrb-webfont.woff') format('woff'),
url('http://arcade.rawrbitrary.com/mario/silkscreen/slkscrb-webfont.ttf') format('truetype'),
url('http://arcade.rawrbitrary.com/mario/silkscreen/slkscrb-webfont.svg#SilkscreenBold') format('svg');
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'SilkscreenExpandedNormal';
src: url('http://arcade.rawrbitrary.com/mario/silkscreen/slkscre-webfont.eot');
src: url('http://arcade.rawrbitrary.com/mario/silkscreen/slkscre-webfont.eot?#iefix') format('embedded-opentype'),
url('http://arcade.rawrbitrary.com/mario/silkscreen/slkscre-webfont.woff') format('woff'),
url('http://arcade.rawrbitrary.com/mario/silkscreen/slkscre-webfont.ttf') format('truetype'),
url('http://arcade.rawrbitrary.com/mario/silkscreen/slkscre-webfont.svg#SilkscreenExpandedNormal') format('svg');
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'SilkscreenExpandedBold';
src: url('http://arcade.rawrbitrary.com/mario/silkscreen/slkscreb-webfont.eot');
src: url('http://arcade.rawrbitrary.com/mario/silkscreen/slkscreb-webfont.eot?#iefix') format('embedded-opentype'),
url('http://arcade.rawrbitrary.com/mario/silkscreen/slkscreb-webfont.woff') format('woff'),
url('http://arcade.rawrbitrary.com/mario/silkscreen/slkscreb-webfont.ttf') format('truetype'),
url('http://arcade.rawrbitrary.com/mario/silkscreen/slkscreb-webfont.svg#SilkscreenExpandedBold') format('svg');
font-weight: normal;
font-style: normal;
}
/*
* - Crafted by Rob Kleffner -
*/
*
{
margin: 0;
padding: 0;
}
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, font, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td
{
border: 0 none;
font-family: inherit;
font-size: 100%;
font-style: inherit;
font-weight: inherit;
vertical-align: baseline;
}
input
{
outline: none;
}
body
{
background: #fff;
line-height: 14px;
font-size: 12px;
font-family: Arial, Verdana, Helvetica, sans-serif;
margin: 0px;
cursor: default;
}
html, body
{
height: 100%;
text-align: center;
}
a
{
text-decoration: none;
}
.left
{
float: left;
}
.right
{
float: right;
}
.clear
{
clear: both;
height: 0;
visibility: hidden;
display: block;
}body
{
font-family: 'SilkscreenNormal', Arial, sans-serif;
padding-top: 10px;
background-color: #fafafa;
}
h1, h2
{
color: #B2DFDA;
letter-spacing: 0;
}
h1
{
font: 60px 'SilkscreenNormal', Arial, sans-serif;
}
h2
{
font: 30px 'SilkscreenNormal', Arial, sans-serif;
}
h4
{
font: 20px 'SilkscreenNormal', Arial, sans-serif;
color: #F44;
}
p
{
color: #F44;
font-size: 16px;
font-family: 'SilkscreenExpandedNormal', Arial, sans-serif;
line-height: 22px;
margin-bottom: 20px;
}
a
{
font-family: 'SilkscreenExpandedBold', Arial, sans-serif;
}
a:hover
{
color: #F44;
}
canvas
{
background-color: #fff;
border: 1px solid #aaa;
padding: 5px;
}
.spacing
{
width: 100%;
height: 5px;
}
.main
{
width: 640px;
margin: auto;
}
.lbUser
{
background-color: #eee;
border: 1px solid #666;
margin-bottom: 5px;
padding: 10px;
height: 50px;
}
.lbUser img
{
padding-right: 20px;
}
.lbUser p
{
line-height: 50px;
}
.activeUser
{
background-color: #ccc;
border: 1px solid #666;
}
@@ -0,0 +1,4 @@
22 serialization::archive 19 0 0 0 0 2 1 2
0 0 2 0 126 /volume1/资料/A--开发--A/JAVA 开发/JAVA项目/MyCrm项目开发/20250115/mycrm/WebContent/static/cjml/images/bgsheet.png 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 19 1970-01-01 00:00:00 19 2025-01-15 01:28:15 19 2021-04-08 04:13:40 0.000000000e+00 0 0 0 0 0 0 0 256 320 15103 0 0 0 0 0 0 0 0 0 0 0 3 png 1 0 0 0 0 6 1 1
1 0 0 -99 0 0 0 0 0 10 1 1
2 0 0 0 0 0 0 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00
@@ -0,0 +1,4 @@
22 serialization::archive 19 0 0 0 0 2 1 2
0 0 2 0 127 /volume1/资料/A--开发--A/JAVA 开发/JAVA项目/MyCrm项目开发/20250115/mycrm/WebContent/static/cjml/images/endscene.gif 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 19 1970-01-01 00:00:00 19 2025-01-15 01:28:15 19 2021-04-08 04:13:40 0.000000000e+00 0 0 0 0 0 0 0 192 96 2989 0 0 0 0 0 0 0 0 0 0 0 3 gif 1 0 0 0 0 6 1 1
1 0 0 -99 0 0 0 0 0 10 1 1
2 0 0 0 0 0 0 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00
@@ -0,0 +1,4 @@
22 serialization::archive 19 0 0 0 0 2 1 2
0 0 2 0 129 /volume1/资料/A--开发--A/JAVA 开发/JAVA项目/MyCrm项目开发/20250115/mycrm/WebContent/static/cjml/images/enemysheet.png 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 19 1970-01-01 00:00:00 19 2025-01-15 01:28:15 19 2021-04-08 04:13:40 0.000000000e+00 0 0 0 0 0 0 0 256 256 8072 0 0 0 0 0 0 0 0 0 0 0 3 png 1 0 0 0 0 6 1 1
1 0 0 -99 0 0 0 0 0 10 1 1
2 0 0 0 0 0 0 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00
@@ -0,0 +1,4 @@
22 serialization::archive 19 0 0 0 0 2 1 2
0 0 2 0 133 /volume1/资料/A--开发--A/JAVA 开发/JAVA项目/MyCrm项目开发/20250115/mycrm/WebContent/static/cjml/images/firemariosheet.png 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 19 1970-01-01 00:00:00 19 2025-01-15 01:28:15 19 2021-04-08 04:13:40 0.000000000e+00 0 0 0 0 0 0 0 480 32 6048 0 0 0 0 0 0 0 0 0 0 0 3 png 1 0 0 0 0 6 1 1
1 0 0 -99 0 0 0 0 0 10 1 1
2 0 0 0 0 0 0 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00
@@ -0,0 +1,4 @@
22 serialization::archive 19 0 0 0 0 2 1 2
0 0 2 0 123 /volume1/资料/A--开发--A/JAVA 开发/JAVA项目/MyCrm项目开发/20250115/mycrm/WebContent/static/cjml/images/font.gif 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 19 1970-01-01 00:00:00 19 2025-01-15 01:28:15 19 2021-04-08 04:13:40 0.000000000e+00 0 0 0 0 0 0 0 768 64 6857 0 0 0 0 0 0 0 0 0 0 0 3 gif 1 0 0 0 0 6 1 1
1 0 0 -99 0 0 0 0 0 10 1 1
2 0 0 0 0 0 0 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00
@@ -0,0 +1,4 @@
22 serialization::archive 19 0 0 0 0 2 1 2
0 0 2 0 131 /volume1/资料/A--开发--A/JAVA 开发/JAVA项目/MyCrm项目开发/20250115/mycrm/WebContent/static/cjml/images/gameovergost.gif 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 19 1970-01-01 00:00:00 19 2025-01-15 01:28:15 19 2021-04-08 04:13:40 0.000000000e+00 0 0 0 0 0 0 0 864 64 5306 0 0 0 0 0 0 0 0 0 0 0 3 gif 1 0 0 0 0 6 1 1
1 0 0 -99 0 0 0 0 0 10 1 1
2 0 0 0 0 0 0 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00
@@ -0,0 +1,4 @@
22 serialization::archive 19 0 0 0 0 2 1 2
0 0 2 0 128 /volume1/资料/A--开发--A/JAVA 开发/JAVA项目/MyCrm项目开发/20250115/mycrm/WebContent/static/cjml/images/itemsheet.png 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 19 1970-01-01 00:00:00 19 2025-01-15 01:28:15 19 2021-04-08 04:13:40 0.000000000e+00 0 0 0 0 0 0 0 256 256 4043 0 0 0 0 0 0 0 0 0 0 0 3 png 1 0 0 0 0 6 1 1
1 0 0 -99 0 0 0 0 0 10 1 1
2 0 0 0 0 0 0 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00
@@ -0,0 +1,4 @@
22 serialization::archive 19 0 0 0 0 2 1 2
0 0 2 0 123 /volume1/资料/A--开发--A/JAVA 开发/JAVA项目/MyCrm项目开发/20250115/mycrm/WebContent/static/cjml/images/logo.gif 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 19 1970-01-01 00:00:00 19 2025-01-15 01:28:15 19 2021-04-08 04:13:40 0.000000000e+00 0 0 0 0 0 0 0 320 80 2740 0 0 0 0 0 0 0 0 0 0 0 3 gif 1 0 0 0 0 6 1 1
1 0 0 -99 0 0 0 0 0 10 1 1
2 0 0 0 0 0 0 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00
@@ -0,0 +1,4 @@
22 serialization::archive 19 0 0 0 0 2 1 2
0 0 2 0 127 /volume1/资料/A--开发--A/JAVA 开发/JAVA项目/MyCrm项目开发/20250115/mycrm/WebContent/static/cjml/images/mapsheet.png 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 19 1970-01-01 00:00:00 19 2025-01-15 01:28:15 19 2021-04-08 04:13:40 0.000000000e+00 0 0 0 0 0 0 0 256 256 13436 0 0 0 0 0 0 0 0 0 0 0 3 png 1 0 0 0 0 6 1 1
1 0 0 -99 0 0 0 0 0 10 1 1
2 0 0 0 0 0 0 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00
@@ -0,0 +1,4 @@
22 serialization::archive 19 0 0 0 0 2 1 2
0 0 2 0 129 /volume1/资料/A--开发--A/JAVA 开发/JAVA项目/MyCrm项目开发/20250115/mycrm/WebContent/static/cjml/images/mariosheet.png 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 19 1970-01-01 00:00:00 19 2025-01-15 01:28:15 19 2021-04-08 04:13:40 0.000000000e+00 0 0 0 0 0 0 0 480 32 5746 0 0 0 0 0 0 0 0 0 0 0 3 png 1 0 0 0 0 6 1 1
1 0 0 -99 0 0 0 0 0 10 1 1
2 0 0 0 0 0 0 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00
@@ -0,0 +1,4 @@
22 serialization::archive 19 0 0 0 0 2 1 2
0 0 2 0 132 /volume1/资料/A--开发--A/JAVA 开发/JAVA项目/MyCrm项目开发/20250115/mycrm/WebContent/static/cjml/images/particlesheet.png 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 19 1970-01-01 00:00:00 19 2025-01-15 01:28:15 19 2021-04-08 04:13:40 0.000000000e+00 0 0 0 0 0 0 0 64 64 3318 0 0 0 0 0 0 0 0 0 0 0 3 png 1 0 0 0 0 6 1 1
1 0 0 -99 0 0 0 0 0 10 1 1
2 0 0 0 0 0 0 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00
@@ -0,0 +1,4 @@
22 serialization::archive 19 0 0 0 0 2 1 2
0 0 2 0 135 /volume1/资料/A--开发--A/JAVA 开发/JAVA项目/MyCrm项目开发/20250115/mycrm/WebContent/static/cjml/images/racoonmariosheet.png 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 19 1970-01-01 00:00:00 19 2025-01-15 01:28:15 19 2021-04-08 04:13:40 0.000000000e+00 0 0 0 0 0 0 0 512 32 6608 0 0 0 0 0 0 0 0 0 0 0 3 png 1 0 0 0 0 6 1 1
1 0 0 -99 0 0 0 0 0 10 1 1
2 0 0 0 0 0 0 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00

Some files were not shown because too many files have changed in this diff Show More