Jelajahi Sumber

Merge branch 'master' of http://git.iamberry.com/liujiankang/static

# Conflicts:
#	.project
#	rst/js/main.js
wangxiaoming 6 tahun lalu
induk
melakukan
9e2ed3a1b5

+ 0 - 28
.project

@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>static</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>com.aptana.ide.core.unifiedBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>com.aptana.projects.webnature</nature>
-	</natures>
-	<filteredResources>
-		<filter>
-			<id>1516362938868</id>
-			<name></name>
-			<type>26</type>
-			<matcher>
-				<id>org.eclipse.ui.ide.multiFilter</id>
-				<arguments>1.0-name-matches-false-false-node_modules</arguments>
-			</matcher>
-		</filter>
-	</filteredResources>
-</projectDescription>

File diff ditekan karena terlalu besar
+ 633 - 0
rst/agreed_order.html


+ 8 - 66
rst/css/iconfont.css

@@ -1,5 +1,5 @@
 @font-face {font-family: "iconfont";
-  src: url('../fonts/iconfont.ttf?t=1525336790999') format('truetype'); /* chrome, firefox, opera, Safari, Android, iOS 4.2+*/
+  src: url('../fonts/iconfont.ttf?t=1480476939690') format('truetype'); /* chrome, firefox, opera, Safari, Android, iOS 4.2+*/
 }
 
 .iconfont {
@@ -10,74 +10,16 @@
   -webkit-font-smoothing: antialiased;
   padding:0;
 }
+.icon-riqi:before { content: "\e6f9"; }
 
-.icon-liebiao:before { content: "\e6cd"; }
+.icon-queren:before { content: "\e6fa"; }
 
-.icon-gouwuche:before { content: "\e6ce"; }
+.icon-shengchan:before { content: "\e6fb"; }
 
-.icon-shouye:before { content: "\e6cf"; }
+.icon-sousuo:before { content: "\e6fc"; }
 
-.icon-huiyuan:before { content: "\e6d0"; }
+.icon-shenpi:before { content: "\e6fd"; }
 
-.icon-shuoming:before { content: "\e6d1"; }
-
-.icon-nan:before { content: "\e6d2"; }
-
-.icon-nv:before { content: "\e6d3"; }
-
-.icon-jia:before { content: "\e6d4"; }
-
-.icon-saomiao:before { content: "\e6d5"; }
-
-.icon-chenggong:before { content: "\e6d6"; }
-
-.icon-dingwei:before { content: "\e6d7"; }
-
-.icon-yashua:before { content: "\e6d8"; }
-
-.icon-jifen:before { content: "\e6d9"; }
-
-.icon-tianjia:before { content: "\e6da"; }
-
-.icon-daifukuan:before { content: "\e6db"; }
-
-.icon-quanbao:before { content: "\e6dc"; }
-
-.icon-yifahuo:before { content: "\e6dd"; }
-
-.icon-daifahuo:before { content: "\e6de"; }
-
-.icon-fenxiang:before { content: "\e6df"; }
-
-.icon-quanbu:before { content: "\e6e0"; }
-
-.icon-guanbi:before { content: "\e6e1"; }
-
-.icon-mianfeilingqu:before { content: "\e6e2"; }
-
-.icon-zhuanjia:before { content: "\e6e3"; }
-
-.icon-dingzhi:before { content: "\e6e4"; }
-
-.icon-fenbi:before { content: "\e6e5"; }
-
-.icon-viptongdao:before { content: "\e6e6"; }
-
-.icon-guize:before { content: "\e6e7"; }
-
-.icon-huan:before { content: "\e6e8"; }
-
-.icon-jilu:before { content: "\e6e9"; }
-
-.icon-kezi:before { content: "\e6ea"; }
-
-.icon-tiqian:before { content: "\e6eb"; }
-
-.icon-liwu:before { content: "\e6ec"; }
-
-.icon-quan:before { content: "\e6ed"; }
-
-.icon-xiyaquan:before { content: "\e6ee"; }
-
-.icon-tiyan:before { content: "\e6ef"; }
+.icon-faqi:before { content: "\e6fe"; }
 
+.icon-tihuo:before { content: "\e6ff"; }

File diff ditekan karena terlalu besar
+ 1 - 0
rst/css/map.min.css


+ 112 - 0
rst/css/mui.indexedlist.css

@@ -0,0 +1,112 @@
+.mui-indexed-list {
+	position: relative;
+	border-top: solid 1px #e3e3e3;
+	border-bottom: solid 1px #e3e3e3;
+	overflow: hidden;
+	background-color: #fafafa;
+	height: 300px;
+	cursor: default;
+}
+.mui-indexed-list-inner {
+	margin: 0px;
+	padding: 0px;
+	overflow-y: auto;
+	border: none;
+}
+.mui-indexed-list-inner::-webkit-scrollbar {
+	width: 0px;
+	height: 0px;
+	visibility: hidden;
+}
+.mui-indexed-list-empty-alert,
+.mui-indexed-list-inner.empty ul {
+	display: none;
+}
+.mui-indexed-list-inner.empty .mui-indexed-list-empty-alert {
+	display: block;
+}
+.mui-indexed-list-empty-alert {
+	padding: 30px 15px;
+	text-align: center;
+	color: #ccc;
+	padding-right: 45px;
+}
+.mui-ios .mui-indexed-list-inner {
+	width: calc(100% + 10px);
+}
+.mui-indexed-list-group,
+.mui-indexed-list-item {
+	padding-right: 45px;
+}
+.mui-ios .mui-indexed-list-group,
+.mui-ios .mui-indexed-list-item,
+.mui-ios .mui-indexed-list-empty-alert {
+	padding-right: 55px;
+}
+.mui-indexed-list-group {
+	background-color: #f7f7f7;
+}
+.mui-indexed-list-group {
+	padding-top: 3px;
+	padding-bottom: 3px;
+}
+.mui-indexed-list-search {
+	border-bottom: solid 1px #e3e3e3;
+	z-index: 15;
+}
+.mui-indexed-list-search.mui-search:before {
+	margin-top: -10px;
+}
+.mui-indexed-list-search input {
+	border-radius: 0px;
+	margin: 0px;
+	background-color: #fafafa;
+}
+.mui-indexed-list-bar {
+	width: 23px;
+	background-color: lightgrey;
+	position: absolute;
+	height: 100%;
+	z-index: 10;
+	right: 0px;
+	-webkit-transition: .2s;
+}
+.mui-indexed-list-bar a {
+	display: block;
+	text-align: center;
+	font-size: 11px;
+	padding: 0px;
+	margin: 0px;
+	line-height: 15px;
+	color: #aaa;
+}
+.mui-indexed-list-bar.active {
+	background-color: rgb(200,200,200);
+}
+.mui-indexed-list-bar.active a {
+	color: #333;
+}
+.mui-indexed-list-bar.active a.active {
+	color: #007aff;
+}
+.mui-indexed-list-alert {
+	position: absolute;
+	z-index: 20;
+	background-color: rgba(0, 0, 0, 0.5);
+	width: 80px;
+	height: 80px;
+	left: 50%;
+	top: 50%;
+	margin-left: -40px;
+	margin-top: -40px;
+	border-radius: 40px;
+	text-align: center;
+	line-height: 80px;
+	font-size: 35px;
+	color: #fff;
+	display: none;
+	-webkit-transition: .2s;
+}
+.mui-indexed-list-alert.active {
+	display: block;
+}

+ 95 - 0
rst/css/mui.listpicker.css

@@ -0,0 +1,95 @@
+/**
+ * 选择列表插件
+ * varstion 1.0.0
+ * by Houfeng
+ * Houfeng@DCloud.io
+ */
+
+.mui-listpicker {
+	position: relative;
+	border: solid 1px #ccc;
+	padding: 0px;
+	margin: 3px;
+	height: 185px;
+	background-color: #fff;
+	overflow: hidden;
+	border-radius: 3px;
+}
+.mui-listpicker .mui-listpicker-inner {
+	width: 100%;
+	height: 100%;
+	position: absolute;
+	left: 0px;
+	top: 0px;
+	z-index: 1;
+	border-radius: 3px;
+	-webkit-mask-box-image: -webkit-linear-gradient(bottom, transparent, transparent 5%, #fff 20%, #fff 80%, transparent 95%, transparent);
+	-webkit-mask-box-image: linear-gradient(to top, transparent, transparent 5%, #fff 20%, #fff 80%, transparent 95%, transparent);
+}
+.mui-ios .mui-listpicker .mui-listpicker-inner {
+	width: calc(100% + 8px);
+	padding-right: 8px;
+}
+.mui-android .mui-listpicker .mui-listpicker-inner {
+	overflow-y: auto;
+	-webkit-overflow-scrolling: touch;
+}
+.mui-listpicker .mui-listpicker-inner::-webkit-scrollbar {
+	width: 0px;
+	height: 0px;
+	visibility: hidden;
+}
+.mui-listpicker ul {
+	list-style-type: none;
+	margin: 0px;
+	padding: 0px;
+	position: relative;
+}
+.mui-listpicker ul li {
+	box-sizing: border-box;
+	position: relative;
+	height: 36px;
+	line-height: 36px;
+	text-align: center;
+	color: #555;
+	white-space: nowrap;
+	overflow: hidden;
+	text-overflow: ellipsis;
+}
+.mui-listpicker.three-dimensional {
+	-webkit-transform-style: preserve-3d;
+	transform-style: preserve-3d;
+}
+.mui-listpicker.three-dimensional .mui-listpicker-inner {
+	-webkit-transform-style: preserve-3d;
+	transform-style: preserve-3d;
+}
+.mui-listpicker.three-dimensional ul {
+	-webkit-transform-style: preserve-3d;
+	transform-style: preserve-3d;
+}
+.mui-listpicker.three-dimensional ul li {
+	-webkit-transform-style: preserve-3d;
+	transform-style: preserve-3d;
+}
+.mui-listpicker ul li:last-child {
+	border-bottom: none;
+}
+.mui-listpicker ul li::first-child {
+	border-top: none;
+}
+.mui-listpicker .mui-listpicker-rule {
+	position: absolute;
+	border: solid 1px #ccc;
+	border-left: none;
+	border-right: none;
+	background-color: #dfd;
+	opacity: 0.5;
+	width: 100%;
+	left: 0px;
+	top: 50%;
+	z-index: 0;
+}
+.mui-listpicker .mui-listpicker-item-selected {
+	color: green;
+}

File diff ditekan karena terlalu besar
+ 1 - 1
rst/css/mui.min.css


+ 285 - 0
rst/css/mui.picker.all.css

@@ -0,0 +1,285 @@
+/**
+ * 选择列表插件
+ * varstion 2.0.0
+ * by Houfeng
+ * Houfeng@DCloud.io
+ */
+
+.mui-picker {
+    background-color: #ddd;
+    position: relative;
+    height: 200px;
+    overflow: hidden;
+    border: solid 1px rgba(0, 0, 0, 0.1);
+    -webkit-user-select: none;
+    user-select: none;
+    box-sizing: border-box;
+}
+.mui-picker-inner {
+    box-sizing: border-box;
+    position: relative;
+    width: 100%;
+    height: 100%;
+    overflow: hidden;
+    -webkit-mask-box-image: -webkit-linear-gradient(bottom, transparent, transparent 5%, #fff 20%, #fff 80%, transparent 95%, transparent);
+    -webkit-mask-box-image: linear-gradient(top, transparent, transparent 5%, #fff 20%, #fff 80%, transparent 95%, transparent);
+}
+.mui-pciker-list,
+.mui-pciker-rule {
+    box-sizing: border-box;
+    padding: 0px;
+    margin: 0px;
+    width: 100%;
+    height: 36px;
+    line-height: 36px;
+    position: absolute;
+    left: 0px;
+    top: 50%;
+    margin-top: -18px;
+}
+.mui-pciker-rule-bg {
+    z-index: 0;
+    /*background-color: #cfd5da;*/
+}
+.mui-pciker-rule-ft {
+    z-index: 2;
+    border-top: solid 1px rgba(0, 0, 0, 0.1);
+    border-bottom: solid 1px rgba(0, 0, 0, 0.1);
+    /*-webkit-box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.1);*/
+    /*box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.1);*/
+}
+.mui-pciker-list {
+    z-index: 1;
+    -webkit-transform-style: preserve-3d;
+    transform-style: preserve-3d;
+    -webkit-transform: perspective(1000px) rotateY(0deg) rotateX(0deg);
+    transform: perspective(1000px) rotateY(0deg) rotateX(0deg);
+}
+.mui-pciker-list li {
+    width: 100%;
+    height: 100%;
+    position: absolute;
+    text-align: center;
+    vertical-align: middle;
+    -webkit-backface-visibility: hidden;
+    backface-visibility: hidden;
+    overflow: hidden;
+    box-sizing: border-box;
+    font-size: 16px;
+    font-family: "Helvetica Neue", "Helvetica", "Arial", "sans-serif";
+    color: #888;
+    padding: 0px 8px;
+    white-space: nowrap;
+    -webkit-text-overflow: ellipsis;
+    text-overflow: ellipsis;
+    overflow: hidden;
+    cursor: default;
+    visibility: hidden;
+}
+.mui-pciker-list li.highlight,
+.mui-pciker-list li.visible {
+    visibility: visible;
+}
+.mui-pciker-list li.highlight {
+    color: #222;
+}
+.mui-poppicker {
+	position: fixed;
+	left: 0px;
+	width: 100%;
+	z-index: 999;
+	background-color: #eee;
+	border-top: solid 1px #ccc;
+	box-shadow: 0px -5px 7px 0px rgba(0, 0, 0, 0.1);
+	-webkit-transition: .3s;
+	bottom: 0px;
+	-webkit-transform: translateY(300px);
+}
+.mui-poppicker.mui-active {
+	-webkit-transform: translateY(0px);
+}
+.mui-android-5-1 .mui-poppicker {
+	bottom: -300px;
+	-webkit-transition-property: bottom;
+	-webkit-transform: none;
+}
+.mui-android-5-1 .mui-poppicker.mui-active {
+	bottom: 0px;
+	-webkit-transition-property: bottom;
+	-webkit-transform: none;
+}
+.mui-poppicker-header {
+	padding: 6px;
+	font-size: 14px;
+	color: #888;
+}
+.mui-poppicker-header .mui-btn {
+	font-size: 12px;
+	padding: 5px 10px;
+}
+.mui-poppicker-btn-cancel {
+	float: left;
+}
+.mui-poppicker-btn-ok {
+	float: right;
+}
+.mui-poppicker-clear {
+	clear: both;
+	height: 0px;
+	line-height: 0px;
+	font-size: 0px;
+	overflow: hidden;
+}
+.mui-poppicker-body {
+	position: relative;
+	width: 100%;
+	height: 200px;
+	border-top: solid 1px #ddd;
+	/*-webkit-perspective: 1200px;
+	perspective: 1200px;
+	-webkit-transform-style: preserve-3d;
+	transform-style: preserve-3d;*/
+}
+.mui-poppicker-body .mui-picker {
+	width: 100%;
+	height: 100%;
+	margin: 0px;
+	border: none;
+	float: left;
+}
+.mui-dtpicker {
+	position: fixed;
+	left: 0px;
+	width: 100%;
+	z-index: 999999;
+	background-color: #eee;
+	border-top: solid 1px #ccc;
+	box-shadow: 0px -5px 7px 0px rgba(0, 0, 0, 0.1);
+	-webkit-transition: .3s;
+	bottom: 0px;
+	-webkit-transform: translateY(300px);
+}
+.mui-dtpicker.mui-active {
+	-webkit-transform: translateY(0px);
+}
+/*用于将 html body 禁止滚动条*/
+
+.mui-dtpicker-active-for-page {
+	overflow: hidden !important;
+}
+.mui-android-5-1 .mui-dtpicker {
+	bottom: -300px;
+	-webkit-transition-property: bottom;
+	-webkit-transform: none;
+}
+.mui-android-5-1 .mui-dtpicker.mui-active {
+	bottom: 0px;
+	-webkit-transition-property: bottom;
+	-webkit-transform: none;
+}
+.mui-dtpicker-header {
+	padding: 6px;
+	font-size: 14px;
+	color: #888;
+}
+.mui-dtpicker-header button {
+	font-size: 12px;
+	padding: 5px 10px;
+}
+.mui-dtpicker-header button:last-child {
+	float: right;
+}
+.mui-dtpicker-body {
+	position: relative;
+	width: 100%;
+	height: 200px;
+	/*border-top: solid 1px #eee;
+	background-color: #fff;*/
+}
+.mui-ios .mui-dtpicker-body {
+	-webkit-perspective: 1200px;
+	perspective: 1200px;
+	-webkit-transform-style: preserve-3d;
+	transform-style: preserve-3d;
+}
+.mui-dtpicker-title h5 {
+	display: inline-block;
+	width: 20%;
+	margin: 0px;
+	padding: 8px;
+	text-align: center;
+	border-top: solid 1px #ddd;
+	background-color: #f0f0f0;
+	border-bottom: solid 1px #ccc;
+}
+.mui-dtpicker .mui-picker {
+	width: 20%;
+	height: 100%;
+	margin: 0px;
+	float: left;
+	border: none;
+}
+/*年月日时分*/
+
+[data-type="datetime"] .mui-picker,
+[data-type="time"] .mui-dtpicker-title h5 {
+	width: 20%;
+}
+[data-type="datetime"] [data-id="picker-h"],
+[data-type="datetime"] [data-id="title-h"] {
+	border-left: dotted 1px #ccc;
+}
+/*年月日*/
+
+[data-type="date"] .mui-picker,
+[data-type="date"] .mui-dtpicker-title h5 {
+	width: 33.3%;
+}
+[data-type="date"] [data-id="picker-h"],
+[data-type="date"] [data-id="picker-i"],
+[data-type="date"] [data-id="title-h"],
+[data-type="date"] [data-id="title-i"] {
+	display: none;
+}
+/*年月日时*/
+
+[data-type="hour"] .mui-picker,
+[data-type="hour"] .mui-dtpicker-title h5 {
+	width: 25%;
+}
+[data-type="hour"] [data-id="picker-i"],
+[data-type="hour"] [data-id="title-i"] {
+	display: none;
+}
+[data-type="hour"] [data-id="picker-h"],
+[data-type="hour"] [data-id="title-h"] {
+	border-left: dotted 1px #ccc;
+}
+/*时分*/
+
+[data-type="time"] .mui-picker,
+[data-type="time"] .mui-dtpicker-title h5 {
+	width: 50%;
+}
+[data-type="time"] [data-id="picker-y"],
+[data-type="time"] [data-id="picker-m"],
+[data-type="time"] [data-id="picker-d"],
+[data-type="time"] [data-id="title-y"],
+[data-type="time"] [data-id="title-m"],
+[data-type="time"] [data-id="title-d"] {
+	display: none;
+}
+/*年月*/
+
+[data-type="month"] .mui-picker,
+[data-type="month"] .mui-dtpicker-title h5 {
+	width: 50%;
+}
+[data-type="month"] [data-id="picker-d"],
+[data-type="month"] [data-id="picker-h"],
+[data-type="month"] [data-id="picker-i"],
+[data-type="month"] [data-id="title-d"],
+[data-type="month"] [data-id="title-h"],
+[data-type="month"] [data-id="title-i"] {
+	display: none;
+}

+ 150 - 0
rst/css/previewimage.css

@@ -0,0 +1,150 @@
+.mui-preview-image.mui-fullscreen {
+	position: fixed;
+	z-index: 20;
+	background-color: #000;
+}
+.mui-table-view.mui-grid-view{padding: 0 2px;}
+.mui-table-view.mui-grid-view .mui-table-view-cell{padding: 0;margin-right: 0;}
+#my-img-view.mui-grid-view .mui-table-view-cell>a:not(.mui-btn) {margin: 0 2px 0 2px;}
+.mui-preview-header,.mui-preview-footer {
+	position: absolute;
+	width: 100%;
+	left: 0;
+	z-index: 10;
+}
+.mui-preview-header {
+	height: 44px;
+	top: 0;
+}
+.mui-preview-footer {
+	height: 50px;
+	bottom: 0px;
+}
+.mui-preview-header .mui-preview-indicator {
+	display: block;
+	line-height: 25px;
+	color: #fff;
+	text-align: center;
+	margin: 15px auto 4;
+	width: 70px;
+	background-color: rgba(0, 0, 0, 0.4);
+	border-radius: 12px;
+	font-size: 16px;
+}
+.mui-preview-image {
+	display: none;
+	-webkit-animation-duration: 0.5s;
+	animation-duration: 0.5s;
+	-webkit-animation-fill-mode: both;
+	animation-fill-mode: both;
+}
+.mui-preview-image.mui-preview-in {
+	-webkit-animation-name: fadeIn;
+	animation-name: fadeIn;
+}
+.mui-preview-image.mui-preview-out {
+	background: none;
+	-webkit-animation-name: fadeOut;
+	animation-name: fadeOut;
+}
+.mui-preview-image.mui-preview-out .mui-preview-header,.mui-preview-image.mui-preview-out .mui-preview-footer {
+	display: none;
+}
+.mui-zoom-scroller {
+	position: absolute;
+	display: -webkit-box;
+	display: -webkit-flex;
+	display: flex;
+	-webkit-box-align: center;
+	-webkit-align-items: center;
+	align-items: center;
+	-webkit-box-pack: center;
+	-webkit-justify-content: center;
+	justify-content: center;
+	left: 0;
+	right: 0;
+	bottom: 0;
+	top: 0;
+	width: 100%;
+	height: 100%;
+	margin: 0;
+	-webkit-backface-visibility: hidden;
+}
+.mui-zoom {
+	-webkit-transform-style: preserve-3d;
+	transform-style: preserve-3d;
+}
+.mui-slider .mui-slider-group .mui-slider-item img {
+	width: 100%;
+	height: auto;
+	max-width: 100%;
+	max-height: 100%;
+}
+.mui-android-4-1 .mui-slider .mui-slider-group .mui-slider-item img {
+	width: 100%;
+}
+.mui-android-4-1 .mui-slider.mui-preview-image .mui-slider-group .mui-slider-item {
+	display: inline-table;
+}
+.mui-android-4-1 .mui-slider.mui-preview-image .mui-zoom-scroller img {
+	display: table-cell;
+	vertical-align: middle;
+}
+.mui-preview-loading {
+	position: absolute;
+	width: 100%;
+	height: 100%;
+	top: 0;
+	left: 0;
+	display: none;
+}
+.mui-preview-loading.mui-active {
+	display: block;
+}
+.mui-preview-loading .mui-spinner-white {
+
+}
+.mui-preview-image img.mui-transitioning {
+	-webkit-transition: -webkit-transform 0.5s ease, opacity 0.5s ease;
+	transition: transform 0.5s ease, opacity 0.5s ease;
+}
+@-webkit-keyframes fadeIn {
+	0% {
+		opacity: 0;
+	}
+	100% {
+		opacity: 1;
+	}
+}
+@keyframes fadeIn {
+	0% {
+		opacity: 0;
+		}
+	100% {
+		opacity: 1;
+	}
+}
+@-webkit-keyframes fadeOut {
+	0% {
+		opacity: 1;
+		}
+	100% {
+		opacity: 0;
+		}
+}
+@keyframes fadeOut {
+	0% {
+		opacity: 1;
+		}
+	100% {
+		opacity: 0;
+		}
+}
+p img {
+	max-width: 100%;
+	height: auto;
+}
+@media screen and (orientation:landscape) and (max-height:767px) and (-webkit-min-device-pixel-ratio:2){
+/*移动设备横屏*/
+.mui-slider .mui-slider-group .mui-slider-item img {width: auto;height: 100%;}
+}

+ 1 - 7
rst/css/rp.txt

@@ -1,8 +1,2 @@
-接口域名
-w.iamberry.com
-修改本地计算机hosts
-127.0.0.1       h5.iamberry.com
-浏览器访问地址
-http://h5.iamberry.com/soodo-wechat/index.html
 接口文档
-https://static.iamberry.com/api/tooth/#api-getproduct-PostWechatIndexdata
+https://static.iamberry.com/api/rst/#api-applyPick-PostWechatApplypickListapplypick?tdsourcetag=s_pcqq_aiomsg

+ 242 - 0
rst/css/style.css

@@ -0,0 +1,242 @@
+/*页面css开始*/
+body{font-size: 15px;background-color: #fff;}
+.mui-content{background-color: #fff;}
+ul{list-style: none;padding: 0;margin: 0;}
+#cnzz_stat_icon_1260421959{display:none;}
+.my-slider-indicator{padding: 0 10px;}
+.my-slider-indicator .mui-indicator{background-color: #fff;box-shadow: 0 0 1px 1px rgba(0,0,0,.1) outset;width: 10px;border-radius: 4px;}
+.chanpin-box.mui-grid-9{background-color: #fff;;margin: 10px;width: auto;border:0;border-radius:3px;overflow: hidden;}
+.chanpin-box.mui-grid-9 .mui-table-view-cell {
+   padding: 0;vertical-align: middle;border-right: 0;border-bottom: 0;
+}
+.my-table-view-order>li{position: relative;padding-bottom: 0;}
+.my-table-view-order .mui-col-xs-6{font-size: 15px;}
+.my-table-view-order>li:after{content: '';.position(absolute;auto;14px;0;14px);height: 1px;background-color: #ccc;-webkit-transform: scaleY(.5);}
+#pro-menu{border:0;border-bottom:1px solid rgba(0,0,0,.1);border-radius: 0;padding: 0;}
+#pro-menu .mui-control-item{color:#999;border-left:0;position: relative;vertical-align: bottom;height: 64px;line-height: 34px;font-size: 14px;width:33%;}
+#pro-menu .mui-control-item:after{content:'';position:absolute;bottom:0;left:50%;margin-left: -14px;width: 28px;background-color:transparent;height: 2px;}
+#pro-menu .mui-control-item:first-child{border-left:0;}
+#pro-menu .mui-control-item.mui-active{background-color: #fff;color: #5882f7;}
+#pro-menu .mui-control-item.mui-active:after{background-color: #5882f7;}
+#pro-menu span.iconfont{position: absolute;left: 50%;top: 5px;-webkit-transform: translateX(-50%);font-size: 20px;}
+.steps>li{float: left;position: relative;background-color: #999;width:55px;height:55px;line-height: 55px;text-align: center;border-radius: 55px;color: #fff;margin: 0 5px;}
+.steps>li.active{background-color: #5882f7;}
+.pro-cp-list{position: relative;padding-left: 3.5em;}
+.pro-cp-list:before{content: '采购产品:';position:absolute;top:0;left:0;;font-size: 12px;color: #999;}
+.pro-cp-list>li{font-size: 12px;color: #999;}
+.pro-bz-list{position: relative;padding-left: 3.5em;}
+.pro-bz-list:before{content: '提货备注:';position:absolute;top:0;left:0;font-size: 12px;color: #999;}
+.pro-bz-list.order:before{content: '订单备注:';position:absolute;top:0;left:0;font-size: 12px;color: #999;}
+.pro-bz-list>li{font-size: 12px;color: #999;word-break: break-all;}
+.word-break{word-break: break-all;white-space: pre-wrap;line-height: 1.5;color: #999 !important;}
+.express{color: #ed6a5e;}
+.my-confirm-btn{min-width: 100px;border-radius: 20px;border: 1px solid #63ccde;color: #63ccde;padding: 6px 14px 6px 14px;}
+.my-confirm-btn:active{background-color: #63ccde;color: #fff;}
+.pro-li-tit{margin-bottom: 5px;}
+.top-center{vertical-align:top !important;}
+.middle-center{vertical-align:middle !important;}
+.dalog-center{width:320px;height:240px;position:absolute;top:50%;left:50%;margin-left:-160px;margin-top:-120px;background-color: #fff;text-align: center;padding-top: 15px;border-radius: 10px;}
+.dalog-center .title{font-size: 18px;}
+.dalog-center .mui-table-view-cell.mui-active{background-color: #fff;}
+.dalog-btn{border: 1px solid #5882f7;width:80px;height:80px;line-height: 80px;display: inline-block;border-radius: 50%;margin: 35px 0 10px 0;}
+.dalog-btn .iconfont{font-size: 35px;}
+.my-view-no:after,.my-view-no:before{display: none;}
+.my-table-view-order>li .my-view-no{padding: 10px 10px 10px 0;}
+.my-table-view-order>li .my-view-no:after,.my-table-view-order>li .my-view-no:before{display: none;}
+#pullrefresh_list{top: 125px;}
+.search-text{margin-bottom: 0 !important;font-size: 14px;border: 1px solid rgba(0,0,0,.1) !important;border-radius: 7px !important;}
+.search-text::-webkit-input-placeholder {color:#ddd;}
+.my-sousuo{position: absolute;right:0;top: 10px;padding: 10px 15px;color: #666;font-size: 22px;}
+.my-sousuo.active{color: #5882f7;}
+.no-after:after{display: none;}
+.mui-pull-caption{font-size: 12px;font-weight: 500;color: #ccc;}
+.cl-red{color: #F00;}
+.cl-green{color: #62c755;}
+.cl-blue{color: #5882f7;}
+.my-table-view-order .cl-green,.my-table-view-order .cl-red{font-size: 12px;}
+.my-table-view-order h5{color: #333;margin: 7px 0;}
+.order-content{margin: 10px 0;}
+.add-btn{color: #5882f7;display: none !important;background-color: #dee6fd;width: 60px;text-align: center;height: 60px;line-height: 1.2;padding: 12px 10px 10px 10px;border-radius: 60px;position: fixed;right: 12px;bottom: 30px;z-index: 3;}
+.add-btn.active{display: block !important;};
+.chanpin-text{text-align: left;padding: 0 10px;}
+.chanpin-box.mui-grid-9 .mui-table-view-cell>a:not(.mui-btn){padding: 0;}
+.chanpin-box .mui-col-xs-6{display: inline-block;}
+.chanpin-box .bg-blue{background-color: #a8ebf7;line-height: 0;}
+.add-dalog{position: fixed;top: 0;left: 0;bottom: 0;left: 0;width: 100%;height: 100%;background-color: rgba(0,0,0,.5);z-index: 5;display: none !important;}
+.add-dalog.active{display: block !important;}
+.pro-list{list-style: none;margin: 0;padding: 0;}
+    .pro-list>li{margin: 12px 10px;border: 1px solid rgba(0,0,0,.1);border-top: 30px solid rgba(0,0,0,.1);position: relative;}
+    .pro-list>li:first-child{border-top: 1px solid rgba(0,0,0,.1);}
+    .pro-list>li .li-del{position:absolute;right:0;top:-30px;color:#5882f7;padding: 4px 5px 4px 15px;}
+    .pro-list>li:first-child .li-del{display: none;}
+
+.my-btn-red{width: 90px;padding:5px 10px;line-height: 1.42 !important;background: #e4004d;color: #fff;border: 0;border-radius: 5px;}
+.prev{position: absolute;left:0;top: 50%;margin-top: -20px; width: 40px;height: 40px;line-height: 30px; padding:5px 0;text-align: left;font-size:30px;color: #ccc;}
+.next{position: absolute;right:0;top: 50%;margin-top: -20px; width: 40px;height: 40px;line-height: 30px; padding:5px 0;text-align: right;font-size:30px;color: #f64e78;}
+.my-table-view {background-color:transparent;padding: 0 10px 0 0 !important;}
+.my-table-view .mui-table-view-cell{padding: 5px 0 0 14px !important;}
+.my-table-view:before{height: 0;}
+.my-table-view:after{height: 0;}
+.my-content-padded{overflow: hidden;}
+.my-content-padded img{width: 100%;border-radius: 5px;}
+.iconfont .mui-badge {font-size: 10px;line-height: 1.3;position: absolute;top:-3px;right: 28%;padding: 1px 5px;color: #fff;background: red;}
+.mui-bar-tab~.mui-content{padding-bottom: 50px !important;}
+#footer-bar{background-color: #fff;-webkit-box-shadow: 0 0 1px rgba(0,0,0,.45);box-shadow: 0 0 1px rgba(0,0,0,0.45)}
+#footer-bar .mui-tab-label{font-size: 12px;}
+#footer-bar .mui-tab-item{vertical-align: bottom;color:#a6c8ce;}
+#footer-bar .mui-tab-item.mui-active{color: #24cae9;}
+#footer-bar .mui-tab-item.mui-active .icon-home:before{content: "\e668";}
+#footer-bar .mui-tab-item.mui-active .icon-gouwuche:before{content: "\e66a";}
+#footer-bar .mui-tab-item.mui-active .icon-dingdan:before{content: "\e664";}
+#footer-bar .mui-tab-item.mui-active .icon-vip:before{content: "\e669";}
+.loading-bg{width: 100%;min-width:100%;height: 100%;min-height:100%; background-color:#F0F0F0;position: fixed;left: 0;top: 0;z-index: 999;}
+.loading-bg .mui-loading{margin-top: 50%;text-align: center;color: #aaa;}
+.go-index{float: left;width: 35%;margin-right:1%;}
+.go-index img{width: 85%;padding-top: 5px;margin-left: 12px;max-height: 42px;max-width: 135px;}
+.header{padding: 7px 0;height: 55px;}
+.marquee-show{position: fixed;top: 0;left: 0;background: rgba(255,255,255,.7);z-index: 99;white-space: nowrap;height: 40px;line-height: 40px;padding: 0 10px;color: #ba405b;width:100%;}
+.marquee-show div{position: fixed;top: 0;left: 0;;height: 40px;line-height: 40px;width:100%;background: url(http://static.iamberry.com/watero/images/shop/marquee.png) center center /100% auto no-repeat;}
+
+.marquee_cart{padding: 8px 10px;
+    background: #fff;
+    color: #ba405b;
+    border-top: 1px solid rgba(0,0,0,.1);}
+.search-box .mui-input-row:first-child{display: inline-block;width: 58%;}
+.search-box .mui-input-row:last-child{display: inline-block;width:37%;}
+.search-box .mui-input-row:last-child input{height: 39px !important;}
+.search-box .mui-input-row input{margin-bottom: 0;}
+.my-search{width: 50%;display: inline-block;padding-top: 3px;}
+.my-search.mui-active{color: #55c0dc;}
+.mui-bar .my-search input[type=search]{margin:2px 0;padding:16px 25px;border-radius: 25px !important;background-color: #d8edf4;color: #000;}
+.my-search .mui-placeholder .mui-icon-search{margin-left:0;margin-right:0;color: #55c0dc;}
+.my-search .mui-placeholder{text-align: right;}
+.box-list-card{display: inline-block;width: 14%;float: right;padding:10px 0;color: #55c0dc;text-align: center;}
+.mui-bar-nav~.mui-content {padding-top: 55px;}
+.wh-100{width:100px !important;max-width:100px !important; height:100px !important;line-height:100px;margin-top: 0;overflow: hidden;}
+.wh-80{width: 80px !important;max-width: 80px !important; height: 80px !important;margin:5px 5px 0 5px;overflow: hidden;display: inline-block;text-align: center;}
+.wh-80 img{height:80px;}
+.wh-50 {width: 50px !important;max-width: 50px !important;height: 50px !important;line-height: 50px;border-radius: 50%;margin: 0;}
+
+
+.title1{color:#e70444;width:75px;height:25px;padding:5px 5px;}
+.font_text_yahei{font-family: "Microsoft YaHei" ! important;}
+.juli_span{color:#666;}
+article, section, time, aside {display: block;}
+.point-time {content: "";position: absolute;width: 13px;height: 13px;top: 3px;left: 20px;background: #1c87bf;margin-left: -4px;border-radius: 50%;}
+.point-red {background-color: #e70444;}
+.content {width: 100%;margin: 10px auto;}
+.content article {position: relative;}
+.content article section {padding: 0 0 7px;position: relative;}
+.content article section:before {content: "";width: 1px;top: 16px;bottom: -17px;left: 22px;background: #e70444;position: absolute;}
+.content article section:last-child:before {bottom:0;}
+.content article section time {display: block;}
+.content article section time > span {display: block;margin-left: 45px;color:#e70444;}
+.content article section aside {color: #3a3a38;margin-left:45px;margin-right: 5px;}
+.content article section aside p{margin-bottom: 0;font-size:13px;}
+.content article section aside .things{color:#222;margin-top: 5px;}
+
+.approval-title{font-size: 16px;font-weight: bold;padding: 10px 0;}
+.approval-title.line{border-top:1px solid rgba(0,0,0,.1);}
+.view-none:after,.view-none:before,.view-none .mui-table-view-cell:after{display: none;}
+.radius-badge{width: 50px;height: 50px;line-height: 50px;background: #fff;border:1px solid #55c0dc;padding: 0;color: #55c0dc;font-size: 15px;margin-bottom: 10px;}
+.order-Purchase{font-size: 12px;border-radius: 4px;background-color: #f7f7f7;margin: 0 5px;}
+.order-Purchase .mui-table{margin:0 0 8px 0;}
+.order-Purchase .mui-table:last-child{margin-bottom: 0;}
+.my-btn-link{color: #55c0dc;text-decoration: underline;margin-top: 10px;}
+.btn-blue-approval{border-radius: 20px;border:1px solid #55c0dc;color: #fff;background-color: #55c0dc;width: 150px;margin: 10px 0;}
+.beizhu:before{content: '备注信息:';position: absolute;left: 0;top: 0;}.beizhu{white-space: pre-wrap;padding-left: 5em;font-size: 12px;position: relative;}
+.a-express{font-size: 12px;margin-top: 0 !important;}
+.solid-table{border-collapse:collapse;border: 1px solid rgba(0,0,0,.1);width: 100%;background-color: #fff;text-align: center;margin: 10px 0 8px 0;}
+.solid-table td,.solid-table th{border-collapse:collapse;border: 1px solid rgba(0,0,0,.1);padding: 3px 0;}
+.solid-table td{font-size: 12px;color: #666;}
+.my-order-view{border: 1px solid rgba(0,0,0,.1);border-radius: 10px;padding: 10px;width: auto;}
+.my-order-view li{font-size: 14px;margin: 7px 0;}
+.name-steps>li{
+				float: left;
+				position: relative;
+				background: #999;
+				width: 50px;
+				height: 50px;
+				line-height: 50px;
+				text-align: center;
+				border-radius: 50px;
+				color: #fff;
+				margin: 5px 40px 5px 0;
+				font-size: 14px;
+			}
+		.name-steps>li.two{width: 110px;background-color: #fff;}
+		.name-steps>li>div{height: 50px;line-height: 50px;width: 50px;display: inline-block;border-radius: 50px;background-color: #999;margin: 0 5px;position: relative;}
+		.name-steps>li>div:first-child{margin-left: 0;}
+		.name-steps>li>div:last-child{margin-right: 0;}
+		.name-steps>li.two:before{position: absolute;content:'';width: 1px;height: 100%;background-color:#5882F7;left:50%;top: 0;-webkit-transform: rotate(17deg);transform: rotate(17deg);}
+		.name-steps>li:last-child{margin-right: 5px;}	
+		.name-steps>li.active{background: #5882f7;}
+		.name-steps>li.two.active{background: #fff;}
+		.name-steps>li.two.active>div{height: 50px;line-height: 50px;width: 50px;display: inline-block;border-radius: 50px;background: #5882f7;color: #fff;}
+		.name-steps>li:after{content:'\e587';position: absolute;right:-30px;top: 0;color: #999; font-family: Muiicons;
+    font-size: 20px;
+    font-weight: 700;
+    font-style: normal;
+    text-decoration: none;
+    -webkit-font-smoothing: antialiased;
+    }
+    .mui-content{padding-bottom: 60px;}
+    .mui-content>.mui-input-group:first-child{margin-top: 20px;}
+    .mui-content>.mui-input-group:before,.mui-content>.mui-input-group:after{left: 10px;right: 10px;}
+    .mui-input-group .mui-input-row:after{right: 10px;left: 10px;}
+    .name-steps>li:last-child:after{display: none;}
+    .my-btn-hand{display:block;width: 100%;height: 55px;background-color: #c5c5c5;color: #fff;border: 0;border-radius: 0;font-size: 18px;}
+    .my-btn-hand.active{background-color: #5882f7;}
+    .my-input-group .mui-input-row label{color: #333;padding: 11px 10px;width: 25%;}
+    .my-input-group .mui-input-row label h4{margin:12px 0 6px 0;color: #5882f7;font-weight: 500;}
+    .my-input-group .mui-input-row.my-tit-row{height: 55px;}
+    .my-input-group .mui-input-row label~input{font-size: 14px;width: 70%;padding-right: 35px;text-align: right;}
+    .my-input-group .mui-input-row label~input::-webkit-input-placeholder{text-align: right; color: #ccc;}
+    .my-input-group .mui-input-row.check:before{
+    	font-family: Muiicons;
+    font-size: 38px;
+    font-weight: 400;
+    font-style: normal;
+    line-height: 1;
+    display: inline-block;
+    text-decoration: none;
+    -webkit-font-smoothing: antialiased;position:absolute;right: 0;top: 1px;
+    	content: '\e472';color: #0f0;
+    }
+    .my-input-group .mui-input-row.error:before{
+    	font-family: Muiicons;
+    font-size: 38px;
+    font-weight: 400;
+    font-style: normal;
+    line-height: 1;
+    display: inline-block;
+    text-decoration: none;
+    -webkit-font-smoothing: antialiased;position:absolute;right: 0;top: 1px;
+    	content: '\e460';color: #f00;
+    }
+    .no-after:after{display: none;}
+    .textarea{font-size: 14px;word-break: break-all;}
+    .mui-icon-plusempty{color: #5882f7;border: 0;padding-left: 36px;font-size: 16px !important;}
+    .mui-icon-plusempty:before{font-size: 36px;position: absolute;top: 0;left: 0;line-height: 28px;font-weight: bold;}
+    .mui-btn.mui-icon-plusempty:enabled:active{background-color: #5882f7;}
+    
+    .textarea::-webkit-input-placeholder{
+      height: 70px;line-height: 70px;text-align: center;
+    }
+    .submit{box-shadow: 0 0 0 0 transparent;text-align: center;line-height: 50px;border-top: 0;}  
+    .submit>button{background-color: #5882f7;border-radius: 0;border: 0;color: #fff;width: 100%;height: 50px;}
+    .pro-list .pro-iteam-list>li{padding: 30px 0 10px 0;margin: 10px;position: relative;border: 1px solid rgba(0,0,0,.1);border-radius: 5px;}
+    .pro-list .pro-iteam-list>li:after{content: "产品明细";position: absolute;left: 10px;top: 10px;color: #5882F7;}
+    .pro-list .pro-iteam-list>li:first-child:after{content: "产品明细1";}
+    .pro-list .pro-iteam-list>li:nth-of-type(2):after{content: "产品明细2";}
+    .pro-list .pro-iteam-list>li:nth-of-type(3):after{content: "产品明细3";}
+    .pro-list .pro-iteam-list>li:nth-of-type(4):after{content: "产品明细4";}
+    .pro-list .pro-iteam-list>li:nth-of-type(5):after{content: "产品明细5";}
+    .pro-list .pro-iteam-list>li:nth-of-type(6):after{content: "产品明细6";}
+    .pro-list .pro-iteam-list>li .mui-input-row:after{display: none;}
+@media (device-height:480px) and (min-width:320px) and (-webkit-min-device-pixel-ratio:2){
+
+}
+@media (device-height:568px) and (min-width:320px) and (-webkit-min-device-pixel-ratio:2){
+
+}

File diff ditekan karena terlalu besar
+ 1065 - 0
rst/css/styles.less


+ 423 - 0
rst/css/up.css

@@ -0,0 +1,423 @@
+/* ----------------Reset Css--------------------- */
+/*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, img, ins, kbd, q, s, samp,
+small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li,
+fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td,
+article, aside, canvas, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary,
+time, mark, audio, video, input  {
+    margin: 0;
+    padding: 0;
+    border: none;
+    outline: 0;
+    font-size: 100%;
+    font: inherit;
+    vertical-align: baseline;
+}
+
+html, body, form, fieldset, p, div, h1, h2, h3, h4, h5, h6 {
+    -webkit-text-size-adjust: none;
+}
+
+article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
+    display: block;
+}
+
+body {
+    font-family: arial, sans-serif;
+}
+
+ol, ul {
+    list-style: none;
+}
+
+blockquote, q {
+    quotes: none;
+}
+
+blockquote:before, blockquote:after, q:before, q:after {
+    content: '';
+    content: none;
+}
+
+ins {
+    text-decoration: none;
+}
+
+del {
+    text-decoration: line-through;
+}
+
+table {
+    border-collapse: collapse;
+    border-spacing: 0;
+}*/
+
+/* ------------ */
+.wrapper {
+    width:100%;
+    margin: 0;
+}
+
+.container {
+    border: 1px solid #dadada;
+    color: #838383;
+    font-size: 12px;
+    margin-top: 0px;
+    background-color: #FFF;
+    border-radius: 3px;
+}
+
+.uploader .queueList {
+    margin: 10px;
+}
+
+.element-invisible {
+    position: absolute !important;
+    clip: rect(1px 1px 1px 1px); /* IE6, IE7 */
+    clip: rect(1px,1px,1px,1px);
+}
+
+.uploader .placeholder {
+    border: 3px dashed #e6e6e6;
+    min-height: 180px;
+    padding-top: 0px;
+    text-align: center;
+    background: url(../images/image.png) center 93px no-repeat;
+    color: #cccccc;
+    font-size: 14px;
+    position: relative;
+    color: #999;
+}
+
+.uploader .placeholder .webuploader-pick {
+    font-size: 15px;
+    background: #5882f7;
+    border-radius: 3px;
+    line-height: 44px;
+    padding: 0 30px;
+    color: #fff;
+    display: inline-block;
+    margin: 20px auto 5px auto;
+    cursor: pointer;
+    box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
+}
+
+.uploader .placeholder .webuploader-pick-hover {
+    background: #5882f7;
+}
+
+.uploader .placeholder .flashTip {
+    color: #666666;
+    font-size: 12px;
+    position: absolute;
+    width: 100%;
+    text-align: center;
+    bottom: 20px;
+}
+.uploader .placeholder .flashTip a {
+    color: #0785d1;
+    text-decoration: none;
+}
+.uploader .placeholder .flashTip a:hover {
+    text-decoration: underline;
+}
+
+.uploader .placeholder.webuploader-dnd-over {
+    border-color: #999999;
+}
+
+.uploader .placeholder.webuploader-dnd-over.webuploader-dnd-denied {
+    border-color: red;
+}
+
+.uploader .filelist {
+    list-style: none;
+    margin: 0;
+    padding: 0;
+}
+
+.uploader .filelist:after {
+    content: '';
+    display: block;
+    width: 0;
+    height: 0;
+    overflow: hidden;
+    clear: both;
+}
+
+.uploader .filelist li {
+    width: 44%;
+    height: 110px;
+  background: url(../images/bg.png) repeat;
+    text-align: center;
+    margin: 0 8px 8px 8px;
+    position: relative;
+    display: inline-block;
+    /*float: left;*/
+    overflow: hidden;
+    font-size: 12px;
+}
+
+.uploader .filelist li p.log {
+    position: relative;
+    top: -45px;
+}
+
+.uploader .filelist li p.title {
+    position: absolute;
+    top: 0;
+    left: 0;
+    width: 100%;
+    overflow: hidden;
+    white-space: nowrap;
+    text-overflow : ellipsis;
+    top: 5px;
+    text-indent: 5px;
+    text-align: left;
+    z-index: 3;
+    color: #666;
+}
+
+.uploader .filelist li p.progress {
+    position: absolute;
+    width: 100%;
+    bottom: 0;
+    left: 0;
+    height: 8px;
+    overflow: hidden;
+    z-index: 50;
+}
+.uploader .filelist li p.progress span {
+    display: none;
+    overflow: hidden;
+    width: 0;
+    height: 100%;
+    background: #1483d8 url(../images/progress.png) repeat-x;
+
+    -webit-transition: width 200ms linear;
+    -moz-transition: width 200ms linear;
+    -o-transition: width 200ms linear;
+    -ms-transition: width 200ms linear;
+    transition: width 200ms linear;
+
+    -webkit-animation: progressmove 2s linear infinite;
+    -moz-animation: progressmove 2s linear infinite;
+    -o-animation: progressmove 2s linear infinite;
+    -ms-animation: progressmove 2s linear infinite;
+    animation: progressmove 2s linear infinite;
+
+    -webkit-transform: translateZ(0);
+}
+
+@-webkit-keyframes progressmove {
+    0% {
+       background-position: 0 0;
+    }
+    100% {
+       background-position: 17px 0;
+    }
+}
+@-moz-keyframes progressmove {
+    0% {
+       background-position: 0 0;
+    }
+    100% {
+       background-position: 17px 0;
+    }
+}
+@keyframes progressmove {
+    0% {
+       background-position: 0 0;
+    }
+    100% {
+       background-position: 17px 0;
+    }
+}
+
+.uploader .filelist li p.imgWrap {
+    position: relative;
+    z-index: 2;
+    line-height: 110px;
+    vertical-align: middle;
+    overflow: hidden;
+    width: auto;
+    height: 110px;
+
+    -webkit-transform-origin: 50% 50%;
+    -moz-transform-origin: 50% 50%;
+    -o-transform-origin: 50% 50%;
+    -ms-transform-origin: 50% 50%;
+    transform-origin: 50% 50%;
+
+    -webit-transition: 200ms ease-out;
+    -moz-transition: 200ms ease-out;
+    -o-transition: 200ms ease-out;
+    -ms-transition: 200ms ease-out;
+    transition: 200ms ease-out;
+}
+
+.uploader .filelist li img {
+	width: auto;
+	max-height: 100%;
+    max-width: 100%;
+    vertical-align: middle;
+}
+
+.uploader .filelist li p.error {
+    background: #f43838;
+    color: #fff;
+    position: absolute;
+    bottom: 0;
+    left: 0;
+    height: 28px;
+    line-height: 28px;
+    width: 100%;
+    z-index: 100;
+}
+
+.uploader .filelist li .success {
+    display: block;
+    position: absolute;
+    left: 0;
+    bottom: 0;
+    height: 40px;
+    width: 100%;
+    z-index: 200;
+    background: url(../images/success.png) no-repeat right bottom;
+}
+
+.uploader .filelist div.file-panel {
+    position: absolute;
+    height: 0;
+    filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#80000000', endColorstr='#80000000')\0;
+    background: rgba( 0, 0, 0, 0.5 );
+    width: 100%;
+    top: 0;
+    left: 0;
+    overflow: hidden;
+    z-index: 300;
+}
+
+.uploader .filelist div.file-panel span {
+    width: 24px;
+    height: 24px;
+    display: inline;
+    float: right;
+    /*text-indent: -9999px;*/
+   color: #fff;
+    overflow: hidden;
+    /*background: url(../images/icons.png) no-repeat;*/
+    margin: 5px 3px 1px;
+    cursor: pointer;
+}
+
+.uploader .filelist div.file-panel span.rotateLeft {
+    background-position: 0 -24px;
+}
+.uploader .filelist div.file-panel span.rotateLeft:hover {
+    background-position: 0 0;
+}
+
+.uploader .filelist div.file-panel span.rotateRight {
+    background-position: -24px -24px;
+}
+.uploader .filelist div.file-panel span.rotateRight:hover {
+    background-position: -24px 0;
+}
+
+.uploader .filelist div.file-panel span.cancel {
+    background-position: -48px -24px;
+}
+.uploader .filelist div.file-panel span.cancel:hover {
+    background-position: -48px 0;
+}
+
+.uploader .statusBar {
+    height: 120px;
+    border-top: 1px solid #dadada;
+    padding: 0 20px;
+    line-height: 63px;
+    vertical-align: middle;
+    position: relative;
+}
+
+.uploader .statusBar .progress {
+    border: 1px solid #1483d8;
+    width: 198px;
+    background: #fff;
+    height: 18px;
+    position: relative;
+    display: inline-block;
+    text-align: center;
+    line-height: 20px;
+    color: #6dbfff;
+    position: relative;
+    margin-right: 10px;
+}
+.uploader .statusBar .progress span.percentage {
+    width: 0;
+    height: 100%;
+    left: 0;
+    top: 0;
+    background: #1483d8;
+    position: absolute;
+}
+.uploader .statusBar .progress span.text {
+    position: relative;
+    z-index: 10;
+}
+
+.uploader .statusBar .info {
+    display: block;
+    font-size: 14px;
+    color: #666666;
+}
+
+.uploader .statusBar .btns {
+    /*position: absolute;*/
+    /*top: 10px;*/
+    /*right: 20px;*/
+    line-height: 40px;
+    /*display: none;*/
+}
+
+#filePicker2 {
+    display: inline-block;
+    float: left;
+}
+
+.uploader .statusBar .btns .webuploader-pick,
+.uploader .statusBar .btns .uploadBtn,
+.uploader .statusBar .btns .uploadBtn.state-uploading,
+.uploader .statusBar .btns .uploadBtn.state-paused {
+    background: #5882f7;
+    border: 1px solid #5882f7;
+    color: #fff;
+    padding: 0 18px;
+    display: inline-block;
+    border-radius: 3px;
+    margin-left: 10px;
+    cursor: pointer;
+    font-size: 14px;
+    float: left;
+}
+.uploader .statusBar .btns .webuploader-pick-hover,
+.uploader .statusBar .btns .uploadBtn:hover,
+.uploader .statusBar .btns .uploadBtn.state-uploading:hover,
+.uploader .statusBar .btns .uploadBtn.state-paused:hover {
+    background: #5882f7;
+}
+
+.uploader .statusBar .btns .uploadBtn {
+    background: #5882f7;
+    color: #fff;
+    border-color: transparent;
+}
+.uploader .statusBar .btns .uploadBtn:hover {
+    background: #5882f7;
+}
+
+.uploader .statusBar .btns .uploadBtn.disabled {
+    pointer-events: none;
+    opacity: 0.6;
+}

+ 28 - 0
rst/css/webuploader.css

@@ -0,0 +1,28 @@
+.webuploader-container {
+	position: relative;
+}
+.webuploader-element-invisible {
+	position: absolute !important;
+	clip: rect(1px 1px 1px 1px); /* IE6, IE7 */
+    clip: rect(1px,1px,1px,1px);
+}
+.webuploader-pick {
+	position: relative;
+	display: inline-block;
+	cursor: pointer;
+	background: #00b7ee;
+	padding: 10px 15px;
+	color: #fff;
+	text-align: center;
+	border-radius: 3px;
+	overflow: hidden;
+}
+.webuploader-pick-hover {
+	background: #00a2d4;
+}
+
+.webuploader-pick-disable {
+	opacity: 0.6;
+	pointer-events:none;
+}
+

TEMPAT SAMPAH
rst/fonts/iconfont.ttf


TEMPAT SAMPAH
rst/images/60x60.gif


TEMPAT SAMPAH
rst/images/Uploader.swf


TEMPAT SAMPAH
rst/images/bg.png


TEMPAT SAMPAH
rst/images/c_checkbox_off.png


TEMPAT SAMPAH
rst/images/c_checkbox_on.png


TEMPAT SAMPAH
rst/images/certificate1.jpg


TEMPAT SAMPAH
rst/images/drag.png


TEMPAT SAMPAH
rst/images/icons.png


TEMPAT SAMPAH
rst/images/image.png


TEMPAT SAMPAH
rst/images/progress.png


+ 49 - 56
rst/js/city.data-3.js

@@ -2,7 +2,7 @@ var cityData3 = [{
 	value: '110000',
 	text: '北京市',
 	children: [{
-		value: "110100",
+		value: "110101",
 		text: "北京市",
 		children: [{
 			value: "110101",
@@ -2746,7 +2746,7 @@ var cityData3 = [{
 	value: '310000',
 	text: '上海市',
 	children: [{
-		value: '310100',
+		value: '310000',
 		text: '上海市',
 		children: [{
 			value: "310101",
@@ -5651,6 +5651,31 @@ var cityData3 = [{
 		value: "411000",
 		text: "许昌市",
 		children: [{
+			value: "410902",
+			text: "华龙区"
+		}, {
+			value: "410922",
+			text: "清丰县"
+		}, {
+			value: "410923",
+			text: "南乐县"
+		}, {
+			value: "410926",
+			text: "范县"
+		}, {
+			value: "410927",
+			text: "台前县"
+		}, {
+			value: "410928",
+			text: "濮阳县"
+		}, {
+			value: "410929",
+			text: "其它区"
+		}]
+	}, {
+		value: "411100",
+		text: "漯河市",
+		children: [{
 			value: "411002",
 			text: "魏都区"
 		}, {
@@ -5673,8 +5698,8 @@ var cityData3 = [{
 			text: "其它区"
 		}]
 	}, {
-		value: "411100",
-		text: "漯河市",
+		value: "411200",
+		text: "三门峡市",
 		children: [{
 			value: "411102",
 			text: "源汇区"
@@ -5695,8 +5720,8 @@ var cityData3 = [{
 			text: "其它区"
 		}]
 	}, {
-		value: "411200",
-		text: "三门峡市",
+		value: "411300",
+		text: "南阳市",
 		children: [{
 			value: "411202",
 			text: "湖滨区"
@@ -5720,8 +5745,8 @@ var cityData3 = [{
 			text: "其它区"
 		}]
 	}, {
-		value: "411300",
-		text: "南阳市",
+		value: "411400",
+		text: "商丘市",
 		children: [{
 			value: "411302",
 			text: "宛城区"
@@ -5766,8 +5791,8 @@ var cityData3 = [{
 			text: "其它区"
 		}]
 	}, {
-		value: "411400",
-		text: "商丘市",
+		value: "411500",
+		text: "信阳市",
 		children: [{
 			value: "411402",
 			text: "梁园区"
@@ -5800,8 +5825,8 @@ var cityData3 = [{
 			text: "其它区"
 		}]
 	}, {
-		value: "411500",
-		text: "信阳市",
+		value: "411600",
+		text: "周口市",
 		children: [{
 			value: "411502",
 			text: "浉河区"
@@ -5837,8 +5862,8 @@ var cityData3 = [{
 			text: "其它区"
 		}]
 	}, {
-		value: "411600",
-		text: "周口市",
+		value: "411700",
+		text: "驻马店市",
 		children: [{
 			value: "411602",
 			text: "川汇区"
@@ -5873,40 +5898,6 @@ var cityData3 = [{
 			value: "411682",
 			text: "其它区"
 		}]
-	},{
-		value: "411700",
-		text: "驻马店市",
-		children: [{
-			value: "411702",
-			text: "驿城区"
-		}, {
-			value: "411721",
-			text: "西平县"
-		}, {
-			value: "411722",
-			text: "上蔡县"
-		}, {
-			value: "411723",
-			text: "平舆县"
-		}, {
-			value: "411724",
-			text: "正阳县"
-		}, {
-			value: "411725",
-			text: "确山县"
-		}, {
-			value: "411726",
-			text: "泌阳县"
-		}, {
-			value: "411727",
-			text: "汝南县"
-		}, {
-			value: "411628",
-			text: "遂平县"
-		}, {
-			value: "411729",
-			text: "新蔡县"
-		}]
 	}]
 }, {
 	value: '420000',
@@ -10200,7 +10191,16 @@ var cityData3 = [{
 	}, {
 		value: "620200",
 		text: "嘉峪关市",
-		children: []
+		children: [{
+			value: "620302",
+			text: "金川区"
+		}, {
+			value: "620321",
+			text: "永昌县"
+		}, {
+			value: "620322",
+			text: "其它区"
+		}]
 	}, {
 		value: "620300",
 		text: "金昌市",
@@ -11538,11 +11538,4 @@ var cityData3 = [{
 		value: "820200",
 		text: "离岛"
 	}]
-}, {
-	value: '990000',
-	text: '海外',
-	children: [{
-		value: "990100",
-		text: "海外"
-	}]
 }]

+ 0 - 7
rst/js/city.data.js

@@ -1595,11 +1595,4 @@ var cityData = [{
 		value: "820200",
 		text: "离岛"
 	}]
-}, {
-	value: '990000',
-	text: '海外',
-	children: [{
-		value: "990100",
-		text: "海外"
-	}]
 }]

File diff ditekan karena terlalu besar
+ 18 - 0
rst/js/less.min.js


+ 1 - 1
rst/js/main.js

@@ -428,4 +428,4 @@ function gotoTop(acceleration, stime) {
 		var run = "gotoTop(" + acceleration + ", " + stime + ")";
 		window.setTimeout(run, stime);
 	}
-}
+}

+ 471 - 0
rst/js/mui.dtpicker.js

@@ -0,0 +1,471 @@
+/**
+ * 日期时间插件
+ * varstion 1.0.5
+ * by Houfeng
+ * Houfeng@DCloud.io
+ */
+
+(function($, document) {
+
+	//创建 DOM
+	$.dom = function(str) {
+		if (typeof(str) !== 'string') {
+			if ((str instanceof Array) || (str[0] && str.length)) {
+				return [].slice.call(str);
+			} else {
+				return [str];
+			}
+		}
+		if (!$.__create_dom_div__) {
+			$.__create_dom_div__ = document.createElement('div');
+		}
+		$.__create_dom_div__.innerHTML = str;
+		return [].slice.call($.__create_dom_div__.childNodes);
+	};
+
+	var domBuffer = '<div class="mui-dtpicker" data-type="datetime">\
+		<div class="mui-dtpicker-header">\
+			<button data-id="btn-cancel" class="mui-btn">取消</button>\
+			<button data-id="btn-ok" class="mui-btn mui-btn-blue">确定</button>\
+		</div>\
+		<div class="mui-dtpicker-title"><h5 data-id="title-y">年</h5><h5 data-id="title-m">月</h5><h5 data-id="title-d">日</h5><h5 data-id="title-h">时</h5><h5 data-id="title-i">分</h5></div>\
+		<div class="mui-dtpicker-body">\
+			<div data-id="picker-y" class="mui-picker">\
+				<div class="mui-picker-inner">\
+					<div class="mui-pciker-rule mui-pciker-rule-ft"></div>\
+					<ul class="mui-pciker-list">\
+					</ul>\
+					<div class="mui-pciker-rule mui-pciker-rule-bg"></div>\
+				</div>\
+			</div>\
+			<div data-id="picker-m" class="mui-picker">\
+				<div class="mui-picker-inner">\
+					<div class="mui-pciker-rule mui-pciker-rule-ft"></div>\
+					<ul class="mui-pciker-list">\
+					</ul>\
+					<div class="mui-pciker-rule mui-pciker-rule-bg"></div>\
+				</div>\
+			</div>\
+			<div data-id="picker-d" class="mui-picker">\
+				<div class="mui-picker-inner">\
+					<div class="mui-pciker-rule mui-pciker-rule-ft"></div>\
+					<ul class="mui-pciker-list">\
+					</ul>\
+					<div class="mui-pciker-rule mui-pciker-rule-bg"></div>\
+				</div>\
+			</div>\
+			<div data-id="picker-h" class="mui-picker">\
+				<div class="mui-picker-inner">\
+					<div class="mui-pciker-rule mui-pciker-rule-ft"></div>\
+					<ul class="mui-pciker-list">\
+					</ul>\
+					<div class="mui-pciker-rule mui-pciker-rule-bg"></div>\
+				</div>\
+			</div>\
+			<div data-id="picker-i" class="mui-picker">\
+				<div class="mui-picker-inner">\
+					<div class="mui-pciker-rule mui-pciker-rule-ft"></div>\
+					<ul class="mui-pciker-list">\
+					</ul>\
+					<div class="mui-pciker-rule mui-pciker-rule-bg"></div>\
+				</div>\
+			</div>\
+		</div>\
+	</div>';
+
+	//plugin
+	var DtPicker = $.DtPicker = $.Class.extend({
+		init: function(options) {
+			var self = this;
+			var _picker = $.dom(domBuffer)[0];
+			document.body.appendChild(_picker);
+			$('[data-id*="picker"]', _picker).picker();
+			var ui = self.ui = {
+				picker: _picker,
+				mask: $.createMask(),
+				ok: $('[data-id="btn-ok"]', _picker)[0],
+				cancel: $('[data-id="btn-cancel"]', _picker)[0],
+				y: $('[data-id="picker-y"]', _picker)[0],
+				m: $('[data-id="picker-m"]', _picker)[0],
+				d: $('[data-id="picker-d"]', _picker)[0],
+				h: $('[data-id="picker-h"]', _picker)[0],
+				i: $('[data-id="picker-i"]', _picker)[0],
+				labels: $('[data-id*="title-"]', _picker),
+			};
+			ui.cancel.addEventListener('tap', function() {
+				self.hide();
+			}, false);
+			ui.ok.addEventListener('tap', function() {
+				var rs = self.callback(self.getSelected());
+				if (rs !== false) {
+					self.hide();
+				}
+			}, false);
+			ui.y.addEventListener('change', function(e) { //目前的change事件容易导致级联触发
+				if (self.options.beginMonth || self.options.endMonth) {
+					self._createMonth();
+				} else {
+					self._createDay();
+				}
+			}, false);
+			ui.m.addEventListener('change', function(e) {
+				self._createDay();
+			}, false);
+			ui.d.addEventListener('change', function(e) {
+				if (self.options.beginMonth || self.options.endMonth) { //仅提供了beginDate时,触发day,hours,minutes的change
+					self._createHours();
+				}
+			}, false);
+			ui.h.addEventListener('change', function(e) {
+				if (self.options.beginMonth || self.options.endMonth) {
+					self._createMinutes();
+				}
+			}, false);
+			ui.mask[0].addEventListener('tap', function() {
+				self.hide();
+			}, false);
+			self._create(options);
+			//防止滚动穿透
+			self.ui.picker.addEventListener($.EVENT_START, function(event) {
+				event.preventDefault();
+			}, false);
+			self.ui.picker.addEventListener($.EVENT_MOVE, function(event) {
+				event.preventDefault();
+			}, false);
+		},
+		getSelected: function() {
+			var self = this;
+			var ui = self.ui;
+			var type = self.options.type;
+			var selected = {
+				type: type,
+				y: ui.y.picker.getSelectedItem(),
+				m: ui.m.picker.getSelectedItem(),
+				d: ui.d.picker.getSelectedItem(),
+				h: ui.h.picker.getSelectedItem(),
+				i: ui.i.picker.getSelectedItem(),
+				toString: function() {
+					return this.value;
+				}
+			};
+			switch (type) {
+				case 'datetime':
+					selected.value = selected.y.value + '-' + selected.m.value + '-' + selected.d.value + ' ' + selected.h.value + ':' + selected.i.value;
+					selected.text = selected.y.text + '-' + selected.m.text + '-' + selected.d.text + ' ' + selected.h.text + ':' + selected.i.text;
+					break;
+				case 'date':
+					selected.value = selected.y.value + '-' + selected.m.value + '-' + selected.d.value;
+					selected.text = selected.y.text + '-' + selected.m.text + '-' + selected.d.text;
+					break;
+				case 'time':
+					selected.value = selected.h.value + ':' + selected.i.value;
+					selected.text = selected.h.text + ':' + selected.i.text;
+					break;
+				case 'month':
+					selected.value = selected.y.value + '-' + selected.m.value;
+					selected.text = selected.y.text + '-' + selected.m.text;
+					break;
+				case 'hour':
+					selected.value = selected.y.value + '-' + selected.m.value + '-' + selected.d.value + ' ' + selected.h.value;
+					selected.text = selected.y.text + '-' + selected.m.text + '-' + selected.d.text + ' ' + selected.h.text;
+					break;
+			}
+			return selected;
+		},
+		setSelectedValue: function(value) {
+			var self = this;
+			var ui = self.ui;
+			var parsedValue = self._parseValue(value);
+			//TODO 嵌套过多,因为picker的change时间是异步(考虑到性能)的,所以为了保证change之后再setSelected,目前使用回调处理
+			ui.y.picker.setSelectedValue(parsedValue.y, 0, function() {
+				ui.m.picker.setSelectedValue(parsedValue.m, 0, function() {
+					ui.d.picker.setSelectedValue(parsedValue.d, 0, function() {
+						ui.h.picker.setSelectedValue(parsedValue.h, 0, function() {
+							ui.i.picker.setSelectedValue(parsedValue.i, 0);
+						});
+					});
+				});
+			});
+		},
+		isLeapYear: function(year) {
+			return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
+		},
+		_inArray: function(array, item) {
+			for (var index in array) {
+				var _item = array[index];
+				if (_item === item) return true;
+			}
+			return false;
+		},
+		getDayNum: function(year, month) {
+			var self = this;
+			if (self._inArray([1, 3, 5, 7, 8, 10, 12], month)) {
+				return 31;
+			} else if (self._inArray([4, 6, 9, 11], month)) {
+				return 30;
+			} else if (self.isLeapYear(year)) {
+				return 29;
+			} else {
+				return 28;
+			}
+		},
+		_fill: function(num) {
+			num = num.toString();
+			if (num.length < 2) {
+				num = 0 + num;
+			}
+			return num;
+		},
+		_isBeginYear: function() {
+			return this.options.beginYear === parseInt(this.ui.y.picker.getSelectedValue());
+		},
+		_isBeginMonth: function() {
+			return this.options.beginMonth && this._isBeginYear() && this.options.beginMonth === parseInt(this.ui.m.picker.getSelectedValue());
+		},
+		_isBeginDay: function() {
+			return this._isBeginMonth() && this.options.beginDay === parseInt(this.ui.d.picker.getSelectedValue());
+		},
+		_isBeginHours: function() {
+			return this._isBeginDay() && this.options.beginHours === parseInt(this.ui.h.picker.getSelectedValue());
+		},
+		_isEndYear: function() {
+			return this.options.endYear === parseInt(this.ui.y.picker.getSelectedValue());
+		},
+		_isEndMonth: function() {
+			return this.options.endMonth && this._isEndYear() && this.options.endMonth === parseInt(this.ui.m.picker.getSelectedValue());
+		},
+		_isEndDay: function() {
+			return this._isEndMonth() && this.options.endDay === parseInt(this.ui.d.picker.getSelectedValue());
+		},
+		_isEndHours: function() {
+			return this._isEndDay() && this.options.endHours === parseInt(this.ui.h.picker.getSelectedValue());
+		},
+		_createYear: function(current) {
+			var self = this;
+			var options = self.options;
+			var ui = self.ui;
+			//生成年列表
+			var yArray = [];
+			if (options.customData.y) {
+				yArray = options.customData.y;
+			} else {
+				var yBegin = options.beginYear;
+				var yEnd = options.endYear;
+				for (var y = yBegin; y <= yEnd; y++) {
+					yArray.push({
+						text: y + '',
+						value: y
+					});
+				}
+			}
+			ui.y.picker.setItems(yArray);
+			//ui.y.picker.setSelectedValue(current);
+		},
+		_createMonth: function(current) {
+			var self = this;
+			var options = self.options;
+			var ui = self.ui;
+
+			//生成月列表
+			var mArray = [];
+			if (options.customData.m) {
+				mArray = options.customData.m;
+			} else {
+				var m = options.beginMonth && self._isBeginYear() ? options.beginMonth : 1;
+				var maxMonth = options.endMonth && self._isEndYear() ? options.endMonth : 12;
+				for (; m <= maxMonth; m++) {
+					var val = self._fill(m);
+					mArray.push({
+						text: val,
+						value: val
+					});
+				}
+			}
+			ui.m.picker.setItems(mArray);
+			//ui.m.picker.setSelectedValue(current);
+		},
+		_createDay: function(current) {
+			var self = this;
+			var options = self.options;
+			var ui = self.ui;
+
+			//生成日列表
+			var dArray = [];
+			if (options.customData.d) {
+				dArray = options.customData.d;
+			} else {
+				var d = self._isBeginMonth() ? options.beginDay : 1;
+				var maxDay = self._isEndMonth() ? options.endDay : self.getDayNum(parseInt(this.ui.y.picker.getSelectedValue()), parseInt(this.ui.m.picker.getSelectedValue()));
+				for (; d <= maxDay; d++) {
+					var val = self._fill(d);
+					dArray.push({
+						text: val,
+						value: val
+					});
+				}
+			}
+			ui.d.picker.setItems(dArray);
+			current = current || ui.d.picker.getSelectedValue();
+			//ui.d.picker.setSelectedValue(current);
+		},
+		_createHours: function(current) {
+			var self = this;
+			var options = self.options;
+			var ui = self.ui;
+			//生成时列表
+			var hArray = [];
+			if (options.customData.h) {
+				hArray = options.customData.h;
+			} else {
+				var h = self._isBeginDay() ? options.beginHours : 0;
+				var maxHours = self._isEndDay() ? options.endHours : 23;
+				for (; h <= maxHours; h++) {
+					var val = self._fill(h);
+					hArray.push({
+						text: val,
+						value: val
+					});
+				}
+			}
+			ui.h.picker.setItems(hArray);
+			//ui.h.picker.setSelectedValue(current);
+		},
+		_createMinutes: function(current) {
+			var self = this;
+			var options = self.options;
+			var ui = self.ui;
+
+			//生成分列表
+			var iArray = [];
+			if (options.customData.i) {
+				iArray = options.customData.i;
+			} else {
+				var i = self._isBeginHours() ? options.beginMinutes : 0;
+				var maxMinutes = self._isEndHours() ? options.endMinutes : 59;
+				for (; i <= maxMinutes; i++) {
+					var val = self._fill(i);
+					iArray.push({
+						text: val,
+						value: val
+					});
+				}
+			}
+			ui.i.picker.setItems(iArray);
+			//ui.i.picker.setSelectedValue(current);
+		},
+		_setLabels: function() {
+			var self = this;
+			var options = self.options;
+			var ui = self.ui;
+			ui.labels.each(function(i, label) {
+				label.innerText = options.labels[i];
+			});
+		},
+		_setButtons: function() {
+			var self = this;
+			var options = self.options;
+			var ui = self.ui;
+			ui.cancel.innerText = options.buttons[0];
+			ui.ok.innerText = options.buttons[1];
+		},
+		_parseValue: function(value) {
+			var self = this;
+			var rs = {};
+			if (value) {
+				var parts = value.replace(":", "-").replace(" ", "-").split("-");
+				rs.y = parts[0];
+				rs.m = parts[1];
+				rs.d = parts[2];
+				rs.h = parts[3];
+				rs.i = parts[4];
+			} else {
+				var now = new Date();
+				rs.y = now.getFullYear();
+				rs.m = now.getMonth() + 1;
+				rs.d = now.getDate();
+				rs.h = now.getHours();
+				rs.i = now.getMinutes();
+			}
+			return rs;
+		},
+		_create: function(options) {
+			var self = this;
+			options = options || {};
+			options.labels = options.labels || ['年', '月', '日', '时', '分'];
+			options.buttons = options.buttons || ['取消', '确定'];
+			options.type = options.type || 'datetime';
+			options.customData = options.customData || {};
+			self.options = options;
+			var now = new Date();
+			var beginDate = options.beginDate;
+			if (beginDate instanceof Date && !isNaN(beginDate.valueOf())) { //设定了开始日期
+				options.beginYear = beginDate.getFullYear();
+				options.beginMonth = beginDate.getMonth() + 1;
+				options.beginDay = beginDate.getDate();
+				options.beginHours = beginDate.getHours();
+				options.beginMinutes = beginDate.getMinutes();
+			}
+			var endDate = options.endDate;
+			if (endDate instanceof Date && !isNaN(endDate.valueOf())) { //设定了结束日期
+				options.endYear = endDate.getFullYear();
+				options.endMonth = endDate.getMonth() + 1;
+				options.endDay = endDate.getDate();
+				options.endHours = endDate.getHours();
+				options.endMinutes = endDate.getMinutes();
+			}
+			options.beginYear = options.beginYear || (now.getFullYear() - 5);
+			options.endYear = options.endYear || (now.getFullYear() + 5);
+			var ui = self.ui;
+			//设定label
+			self._setLabels();
+			self._setButtons();
+			//设定类型
+			ui.picker.setAttribute('data-type', options.type);
+			//生成
+			self._createYear();
+			self._createMonth();
+			self._createDay();
+			self._createHours();
+			self._createMinutes();
+			//设定默认值
+			self.setSelectedValue(options.value);
+		},
+		//显示
+		show: function(callback) {
+			var self = this;
+			var ui = self.ui;
+			self.callback = callback || $.noop;
+			ui.mask.show();
+			document.body.classList.add($.className('dtpicker-active-for-page'));
+			ui.picker.classList.add($.className('active'));
+			//处理物理返回键
+			self.__back = $.back;
+			$.back = function() {
+				self.hide();
+			};
+		},
+		hide: function() {
+			var self = this;
+			if (self.disposed) return;
+			var ui = self.ui;
+			ui.picker.classList.remove($.className('active'));
+			ui.mask.close();
+			document.body.classList.remove($.className('dtpicker-active-for-page'));
+			//处理物理返回键
+			$.back = self.__back;
+		},
+		dispose: function() {
+			var self = this;
+			self.hide();
+			setTimeout(function() {
+				self.ui.picker.parentNode.removeChild(self.ui.picker);
+				for (var name in self) {
+					self[name] = null;
+					delete self[name];
+				};
+				self.disposed = true;
+			}, 300);
+		}
+	});
+
+})(mui, document);

File diff ditekan karena terlalu besar
+ 4 - 4
rst/js/mui.min.js


+ 168 - 0
rst/js/my_validate.js

@@ -0,0 +1,168 @@
+var validate_flag=false;
+function my_validate(){
+	$(".my-validate").each(function(){
+		if(mui.os.ios){
+			$(this).blur(function(){
+				validate_bind($(this));
+			});
+		 }else{
+		 	$(this).keyup(function(){
+				var currKey = 0,e = e || event;
+				currKey = e.keyCode || e.which || e.charCode;
+				var keyName = String.fromCharCode(currKey);
+				if (currKey == "13") {
+					validate_bind($(this));
+				}
+			});
+		 }
+	});	
+}
+function validate_bind(obj){
+	var tel =/^(0?(13|14|15|18)[\d]{9}$|(01|02|03|04|05|06|07|08|09)[\d]{7,10}$|(400|800)[0-9]{7}$)/; //手机,座机(400-800)
+	var mobile=/^0?(13|14|15|16|17|18|19)[0-9]{9}$/; //手机号码
+	var ch=/^[\u4e00-\u9fa5]{2,}$/;//简体中文(2位以上)
+	var ch_en_num=/^[A-Za-z0-9_\-\u4e00-\u9fa5]{1,}$/;//简体中文英文数字(1位以上)
+	var email=/^\w[-\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\.)+[A-Za-z]{2,14}$/; //邮箱
+	var http=/^((https|http|ftp|rtsp|mms)?:\/\/)[^\s]+$/; //网址
+	var doublebyte=/^[^\x00-\xff]+$/; //简体+繁体中文(包括中文全角符号,全角空格)
+	var positive_int=/^[0-9]\d*$/; //正整数0-9
+	var negtive_int=/^-[1-9]\d*$/; //负整数
+	var qq=/^[1-9]([0-9]{4,12})$/; //腾讯QQ号
+	var postalcode=/^\d{6}$/; //中国邮政编码
+	var card_id=/^(\d{17}[\d|x]|\d{15})$/; //身份证(国内)
+	var full_date=/^\d{4}(\-|\/|.)\d{1,2}\1\d{1,2}$/; //日期格式 (2016\12\12,2016-12-12,2016.12.12)
+	var ip=/^(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d)\.(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d)\.(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d)\.(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d)$/;//ip地址
+	
+	switch (obj.attr('validate-type')){
+		case 'tel':
+		console.log(obj.val())
+				if(tel.test(obj.val())){
+					validate_flag=true;
+				}else{
+					validate_flag=false;
+					if(obj.val()!=''){obj.select();mui.alert('请输入正确的电话或手机号');}
+					return false;
+				}
+			break;
+		case 'mobile':
+				if(mobile.test(obj.val())){
+					validate_flag=true;
+				}else{
+					validate_flag=false;
+					if(obj.val()!=''){obj.select();mui.alert('请输入正确的手机号');}
+					return false;
+				}
+			break;
+		case 'ch':
+				if(ch.test(obj.val())){
+					validate_flag=true;
+				}else{
+					validate_flag=false;
+					if(obj.val()!=''){obj.select();mui.alert('请输入简体中文');}
+					return false;
+				}
+			break;
+		case 'ch_en_num':
+				if(ch_en_num.test(obj.val())){
+					validate_flag=true;
+				}else{
+					validate_flag=false;
+					if(obj.val()!=''){obj.select();mui.alert('请输入中、英文或数字');}
+					return false;
+				}
+			break;
+		case 'email':
+				if(email.test(obj.val())){
+					validate_flag=true;
+				}else{
+					validate_flag=false;
+					if(obj.val()!=''){obj.select();mui.alert('请输入正确的邮箱地址');}
+					return false;
+				}
+			break;
+		case 'http':
+				if(http.test(obj.val())){
+					validate_flag=true;
+				}else{
+					validate_flag=false;
+					if(obj.val()!=''){obj.select();mui.alert('请输入正确的网址');}
+					return false;
+				}
+			break;
+		case 'doublebyte':
+				if(doublebyte.test(obj.val())){
+					validate_flag=true;
+				}else{
+					validate_flag=false;
+					if(obj.val()!=''){obj.select();mui.alert('请输入简体、繁体中文');}
+					return false;
+				}
+			break;
+		case 'positive_int':
+				if(positive_int.test(obj.val())){
+					validate_flag=true;
+				}else{
+					validate_flag=false;
+					if(obj.val()!=''){obj.select();mui.alert('请输入正整数');}
+					return false;
+				}
+			break;
+		case 'negtive_int':
+				if(negtive_int.test(obj.val())){
+					validate_flag=true;
+				}else{
+					validate_flag=false;
+					if(obj.val()!=''){obj.select();mui.alert('请输入负整数');}
+					return false;
+				}
+			break;
+		case 'qq':
+				if(qq.test(obj.val())){
+					validate_flag=true;
+				}else{
+					validate_flag=false;
+					if(obj.val()!=''){obj.select();mui.alert('请输入正确的QQ号');}
+					return false;
+				}
+			break;
+		case 'postalcode':
+				if(postalcode.test(obj.val())){
+					validate_flag=true;
+				}else{
+					validate_flag=false;
+					if(obj.val()!=''){obj.select();mui.alert('请输入正确的邮政编码');}
+					return false;
+				}
+			break;
+		case 'ip':
+				if(ip.test(obj.val())){
+					validate_flag=true;
+				}else{
+					validate_flag=false;
+					if(obj.val()!=''){obj.select();mui.alert('请输入正确的IP地址');}
+					return false;
+				}
+			break;
+		case 'card_id':
+				if(card_id.test(obj.val())){
+					validate_flag=true;
+				}else{
+					validate_flag=false;
+					if(obj.val()!=''){obj.select();mui.alert('请输入正确的身份证号');}
+					return false;
+				}
+			break;
+		case 'full_date':
+				if(full_date.test(obj.val())){
+					validate_flag=true;
+				}else{
+					validate_flag=false;
+					if(obj.val()!=''){obj.select();mui.alert('请输入正确的日期格式');}
+					return false;
+				}
+			break;
+	default:
+			break;
+	}
+}
+

+ 207 - 0
rst/js/my_validate1.js

@@ -0,0 +1,207 @@
+var validate_flag=false;
+function my_validate(){
+if(mui.os.ios){
+	mui.each(document.querySelectorAll('.my-validate'), function(index, el) {
+		el.onblur=function(){
+			validate_bind(el);
+		}
+	});
+}else{
+	mui.each(document.querySelectorAll('.my-validate'), function(index, el) {
+		el.onkeydown=function(){
+			var keyNum=window.event ? e.keyCode :e.which; //获取被按下的键值  
+			mui.alert("键值:"+keyNum)
+			if(keyNum==13){
+				validate_bind(el);
+			}
+		}
+	});
+}
+}
+function validate_bind(obj){
+	var tel =/^(0?(13|14|15|18)[\d]{9}$|(01|02|03|04|05|06|07|08|09)[\d]{7,10}$|(400|800)[0-9]{7}$)/; //手机,座机(400-800)
+	var mobile=/^0?(13|14|15|16|18|19)[0-9]{9}$/; //手机号码
+	var ch=/^[\u4e00-\u9fa5]{1,}$/;//简体中文
+	var ch_en_num=/^[A-Za-z0-9_\-\u4e00-\u9fa5]{1,}$/;//简体中文英文数字
+	var email=/^\w[-\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\.)+[A-Za-z]{2,14}$/; //邮箱
+	var http=/^((https|http|ftp|rtsp|mms)?:\/\/)[^\s]+$/; //网址
+	var doublebyte=/^[^\x00-\xff]+$/; //简体+繁体中文(包括中文全角符号,全角空格)
+	var positive_int=/^[0-9]\d*$/; //正整数0-9
+	var negtive_int=/^-[1-9]\d*$/; //负整数
+	var qq=/^[1-9]([0-9]{4,12})$/; //腾讯QQ号
+	var postalcode=/^\d{6}$/; //中国邮政编码
+	var ip=/^(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d)\.(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d)\.(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d)\.(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d)$/;//ip地址
+	var card_id=/^(\d{17}[\d|x]|\d{15})$/; //身份证(国内)
+	var full_date=/^\d{4}(\-|\/|.)\d{1,2}\1\d{1,2}$/; //日期格式 (2016\12\12,2016-12-12,2016.12.12)
+	
+	switch (obj.getAttribute('validate-type')){
+		case 'tel':
+				if(tel.test(obj.value)){
+					validate_flag=true;
+				}else{
+					validate_flag=false;
+					obj.focus();
+					focus_end(obj)
+					mui.alert('请输入正确的电话或手机号');
+					return false;
+				}
+			break;
+		case 'mobile':
+				if(mobile.test(obj.value)){
+					validate_flag=true;
+				}else{
+					validate_flag=false;
+					obj.focus();
+					focus_end(obj)
+					mui.alert('请输入正确的手机号');
+					return false;
+				}
+			break;
+		case 'ch':
+				if(ch.test(obj.value)){
+					validate_flag=true;
+				}else{
+					validate_flag=false;
+					mui.alert('请输入简体中文');
+					obj.focus();
+					focus_end(obj)
+					return false;
+				}
+			break;
+		case 'ch_en_num':
+				if(ch_en_num.test(obj.value)){
+					validate_flag=true;
+				}else{
+					validate_flag=false;
+					mui.alert('请输入中、英文或数字');
+					obj.focus();
+					focus_end(obj)
+					return false;
+				}
+			break;
+		case 'email':
+				if(email.test(obj.value)){
+					validate_flag=true;
+				}else{
+					validate_flag=false;
+					mui.alert('请输入正确的邮箱地址');
+					obj.focus();
+					focus_end(obj)
+					return false;
+				}
+			break;
+		case 'http':
+				if(http.test(obj.value)){
+					validate_flag=true;
+				}else{
+					validate_flag=false;
+					mui.alert('请输入正确的网址');
+					obj.focus();
+					focus_end(obj)
+					return false;
+				}
+			break;
+		case 'doublebyte':
+				if(doublebyte.test(obj.value)){
+					validate_flag=true;
+				}else{
+					validate_flag=false;
+					mui.alert('请输入简体、繁体中文');
+					obj.focus();
+					focus_end(obj)
+					return false;
+				}
+			break;
+		case 'positive_int':
+				if(positive_int.test(obj.value)){
+					validate_flag=true;
+				}else{
+					validate_flag=false;
+					mui.alert('请输入正整数');
+					obj.focus();
+					focus_end(obj)
+					return false;
+				}
+			break;
+		case 'negtive_int':
+				if(negtive_int.test(obj.value)){
+					validate_flag=true;
+				}else{
+					validate_flag=false;
+					mui.alert('请输入负整数');
+					obj.focus();
+					focus_end(obj)
+					return false;
+				}
+			break;
+		case 'qq':
+				if(qq.test(obj.value)){
+					validate_flag=true;
+				}else{
+					validate_flag=false;
+					mui.alert('请输入正确的QQ号');
+					obj.focus();
+					focus_end(obj)
+					return false;
+				}
+			break;
+		case 'postalcode':
+				if(postalcode.test(obj.value)){
+					validate_flag=true;
+				}else{
+					validate_flag=false;
+					mui.alert('请输入正确的邮政编码');
+					obj.focus();
+					focus_end(obj)
+					return false;
+				}
+			break;
+		case 'ip':
+				if(ip.test(obj.value)){
+					validate_flag=true;
+				}else{
+					validate_flag=false;
+					mui.alert('请输入正确的IP地址');
+					obj.focus();
+					focus_end(obj)
+					return false;
+				}
+			break;
+		case 'card_id':
+				if(card_id.test(obj.value)){
+					validate_flag=true;
+				}else{
+					validate_flag=false;
+					mui.alert('请输入正确的身份证号');
+					obj.focus();
+					focus_end(obj)
+					return false;
+				}
+			break;
+		case 'full_date':
+				if(full_date.test(obj.value)){
+					validate_flag=true;
+				}else{
+					validate_flag=false;
+					mui.alert('请输入正确的日期格式');
+					obj.focus();
+					focus_end(obj)
+					return false;
+				}
+			break;
+	default:
+			break;
+	}
+}
+
+function focus_end(obj){
+	var len = obj.value.length;
+		if (document.selection) {
+			var sel = obj.createTextRange();
+			sel.moveStart('character', len);
+			el.collapse();
+			sel.select();
+		} else if (typeof obj.selectionStart == 'number' && typeof obj.selectionEnd == 'number') {
+			obj.selectionStart = obj.selectionEnd = len;
+		}
+}

File diff ditekan karena terlalu besar
+ 36 - 0
rst/js/require.js


+ 527 - 0
rst/js/up1.js

@@ -0,0 +1,527 @@
+var imgArray=[];//图片src数组
+		var $ = jQuery,    // just in case. Make sure it's not an other libaray.
+
+        $wrap = $('#uploader1'),
+
+        // 图片容器
+        $queue = $('<ul class="filelist" id="filelist1"></ul>').appendTo( $wrap.find('#queueList1') ),
+
+        // 状态栏,包括进度和控制按钮
+        $statusBar = $wrap.find('.statusBar'),
+
+        // 文件总体选择信息。
+        $info = $statusBar.find('.info'),
+
+        // 上传按钮
+        $upload = $wrap.find('#uploadBtn1'),
+
+        // 没选择文件之前的内容。
+        $placeHolder = $wrap.find('.placeholder'),
+
+        // 总体进度条
+        $progress = $statusBar.find('.progress').hide(),
+
+        // 添加的文件数量
+        fileCount = 0,
+
+        // 添加的文件总大小
+        fileSize = 0,
+
+        // 优化retina, 在retina下这个值是2
+        ratio = window.devicePixelRatio || 1,
+
+        // 缩略图大小
+        thumbnailWidth = 414 * ratio,
+        thumbnailHeight = 736 * ratio,
+
+        // 可能有pedding, ready, uploading, confirm, done.
+        state = 'pedding',
+
+        // 所有文件的进度信息,key为file id
+        percentages = {},
+
+        supportTransition = (function(){
+            var s = document.createElement('p').style,
+                r = 'transition' in s ||
+                      'WebkitTransition' in s ||
+                      'MozTransition' in s ||
+                      'msTransition' in s ||
+                      'OTransition' in s;
+            s = null;
+            return r;
+        })(),
+
+        // WebUploader实例
+        uploader;
+
+    if ( !WebUploader.Uploader.support() ) {
+        alert( 'Web Uploader 不支持您的浏览器!如果你使用的是IE浏览器,请尝试升级 flash 播放器');
+        throw new Error( 'WebUploader does not support the browser you are using.' );
+    }
+
+    // 实例化
+    uploader = WebUploader.create({
+        pick: {
+            id: '#filePicker1',
+            label: '选择图片',
+            multiple:true
+        },
+        dnd: '#uploader1 .queueList',
+        paste: document.body,
+
+        accept: {
+            title: 'Images',
+            extensions: 'jpg,jpeg,png',
+            mimeTypes: 'image/*'
+        },
+        thumb :{
+    width: 595,
+    height: 842,
+
+    // 图片质量,只有type为`image/jpeg`的时候才有效。
+    quality: 100,
+
+    // 是否允许放大,如果想要生成小图的时候不失真,此选项应该设置为false.
+    allowMagnify: false,
+
+    // 是否允许裁剪。
+    crop: false,
+
+    // 为空的话则保留原有图片格式。
+    // 否则强制转换成指定的类型。
+    type: ''
+},
+        compress :{
+    width: 595,
+    height: 842,
+
+    // 图片质量,只有type为`image/jpeg`的时候才有效。
+    quality: 90,
+
+    // 是否允许放大,如果想要生成小图的时候不失真,此选项应该设置为false.
+    allowMagnify: false,
+
+    // 是否允许裁剪。
+    crop: false,
+
+    // 是否保留头部meta信息。
+    preserveHeaders: true,
+
+    // 如果发现压缩后文件大小比原来还大,则使用原来图片
+    // 此属性可能会影响图片自动纠正功能
+    noCompressIfLarger: false,
+
+    // 单位字节,如果图片大小小于此值,不会采用压缩。
+    compressSize: 0
+},
+        // swf文件路径
+        swf: '../images/Uploader.swf',
+
+        disableGlobalDnd: true,
+        
+        auto:false,  //这里我们设置不自动上传,true则为自动上传
+        
+        chunked: true,
+        // server: 'http://webuploader.duapp.com/server/fileupload.php',
+        server: base_path + '/uploadImage',
+        fileNumLimit: 5,
+        fileSizeLimit: 15 * 1024 * 1024,    // 15 M
+        fileSingleSizeLimit: 3 * 1024 * 1024    // 3 M
+    });
+    // 添加“添加文件”的按钮,
+    uploader.addButton({
+        id: '#filePicker2',
+        label: '继续添加'
+    });
+
+    // 当有文件添加进来时执行,负责view的创建
+    function addFile( file ) {
+        var $li = $( '<li id="' + file.id + '">' +
+                '<p class="title">' + file.name + '</p>' +
+                '<p class="imgWrap"></p>'+
+                '<p class="progress"><span></span></p>' +
+                '</li>' ),
+
+            $btns = $('<div class="file-panel">' +
+                '<span class="cancel">删除</span>' +'</div>').appendTo( $li ),
+            $prgress = $li.find('p.progress span'),
+            $wrap = $li.find( 'p.imgWrap' ),
+            $info = $('<p class="error"></p>'),
+
+            showError = function( code ) {
+                switch( code ) {
+                    case 'exceed_size':
+                        text = '文件大小超出';
+                        break;
+
+                    case 'interrupt':
+                        text = '上传暂停';
+                        break;
+
+                    default:
+                        text = '上传失败,请重试';
+                        break;
+                }
+
+                $info.text( text ).appendTo( $li );
+            };
+
+        if ( file.getStatus() === 'invalid' ) {
+            showError( file.statusText );
+        } else {
+            // @todo lazyload
+            $wrap.text( '预览中' );
+            uploader.makeThumb( file, function( error, src ) {
+                if ( error ) {
+                    $wrap.text( '不能预览' );
+                    return;
+                }
+
+                var img = $('<img src="'+src+'">');
+                $wrap.empty().append( img );
+            }, thumbnailWidth, thumbnailHeight );
+
+            percentages[ file.id ] = [ file.size, 0 ];
+            file.rotation = 0;
+        }
+
+        file.on('statuschange', function( cur, prev ) {
+            if ( prev === 'progress' ) {
+                $prgress.hide().width(0);
+            } else if ( prev === 'queued' ) {
+                $li.off( 'mouseenter mouseleave' );
+                $btns.remove();
+            }
+
+            // 成功
+            if ( cur === 'error' || cur === 'invalid' ) {
+                console.log( file.statusText );
+                showError( file.statusText );
+                percentages[ file.id ][ 1 ] = 1;
+            } else if ( cur === 'interrupt' ) {
+                showError( 'interrupt' );
+            } else if ( cur === 'queued' ) {
+                percentages[ file.id ][ 1 ] = 0;
+            } else if ( cur === 'progress' ) {
+                $info.remove();
+                $prgress.css('display', 'block');
+            } else if ( cur === 'complete' ) {
+                $li.append( '<span class="success"></span>' );
+            }
+
+            $li.removeClass( 'state-' + prev ).addClass( 'state-' + cur );
+        });
+
+        $li.on( 'mouseenter', function() {
+            $btns.stop().animate({height: 30});
+        });
+
+        $li.on( 'mouseleave', function() {
+            $btns.stop().animate({height: 0});
+        });
+
+        $btns.on( 'click', 'span', function() {
+            var index = $(this).index(),
+                deg;
+
+            switch ( index ) {
+                case 0:
+                    uploader.removeFile( file );
+                    reqFace='';
+                    return;
+
+                case 1:
+                    file.rotation += 90;
+                    break;
+
+                case 2:
+                    file.rotation -= 90;
+                    break;
+            }
+
+            if ( supportTransition ) {
+                deg = 'rotate(' + file.rotation + 'deg)';
+                $wrap.css({
+                    '-webkit-transform': deg,
+                    '-mos-transform': deg,
+                    '-o-transform': deg,
+                    'transform': deg
+                });
+            } else {
+                $wrap.css( 'filter', 'progid:DXImageTransform.Microsoft.BasicImage(rotation='+ (~~((file.rotation/90)%4 + 4)%4) +')');
+                // use jquery animate to rotation
+                // $({
+                //     rotation: rotation
+                // }).animate({
+                //     rotation: file.rotation
+                // }, {
+                //     easing: 'linear',
+                //     step: function( now ) {
+                //         now = now * Math.PI / 180;
+
+                //         var cos = Math.cos( now ),
+                //             sin = Math.sin( now );
+
+                //         $wrap.css( 'filter', "progid:DXImageTransform.Microsoft.Matrix(M11=" + cos + ",M12=" + (-sin) + ",M21=" + sin + ",M22=" + cos + ",SizingMethod='auto expand')");
+                //     }
+                // });
+            }
+
+
+        });
+
+        $li.appendTo( $queue );
+    }
+
+    // 负责view的销毁
+    function removeFile( file ) {
+        var $li = $('#'+file.id);
+
+        delete percentages[ file.id ];
+        updateTotalProgress();
+        $li.off().find('.file-panel').off().end().remove();
+    }
+
+    function updateTotalProgress() {
+        var loaded = 0,
+            total = 0,
+            spans = $progress.children(),
+            percent;
+
+        $.each( percentages, function( k, v ) {
+            total += v[ 0 ];
+            loaded += v[ 0 ] * v[ 1 ];
+        } );
+
+        percent = total ? loaded / total : 0;
+
+        spans.eq( 0 ).text( Math.round( percent * 100 ) + '%' );
+        spans.eq( 1 ).css( 'width', Math.round( percent * 100 ) + '%' );
+        updateStatus();
+    }
+
+    function updateStatus() {
+        var text = '', stats;
+
+        if ( state === 'ready' ) {
+            text = '选中' + fileCount + '张图片,共' +
+                    WebUploader.formatSize( fileSize ) + '。';
+                    $(".uploadBtn").show();
+        } else if ( state === 'confirm' ) {
+            stats = uploader.getStats();
+            if ( stats.uploadFailNum ) {
+                text = '已成功上传' + stats.successNum+ '张图片,'+
+                    stats.uploadFailNum + '张失败'
+//                  stats.uploadFailNum + '张失败,<a class="retry" href="#">重新上传</a>失败图片或<a class="ignore" href="#">忽略</a>'
+            }
+
+        } else {
+            stats = uploader.getStats();
+            text = '共' + fileCount + '张(' +
+                    WebUploader.formatSize( fileSize )  +
+                    '),已上传' + stats.successNum + '张';
+
+            if ( stats.uploadFailNum ) {
+                text += ',失败' + stats.uploadFailNum + '张';
+            }
+        }
+
+        $info.html( text );
+    }
+
+    function setState( val ) {
+        var file, stats;
+
+        if ( val === state ) {
+            return;
+        }
+
+        $upload.removeClass( 'state-' + state );
+        $upload.addClass( 'state-' + val );
+        state = val;
+
+        switch ( state ) {
+            case 'pedding':
+                $placeHolder.removeClass( 'element-invisible' );
+                $queue.parent().removeClass('filled');
+                $queue.hide();
+                $statusBar.addClass( 'element-invisible' );
+                uploader.refresh();
+                break;
+
+            case 'ready':
+                $placeHolder.addClass( 'element-invisible' );
+                $( '#filePicker2' ).removeClass( 'element-invisible');
+                $queue.parent().addClass('filled');
+                $queue.show();
+                $statusBar.removeClass('element-invisible');
+                uploader.refresh();
+                break;
+
+            case 'uploading':
+                $( '#filePicker2' ).addClass( 'element-invisible' );
+                $progress.show();
+                $upload.text( '暂停上传' );
+                break;
+
+            case 'paused':
+                $progress.show();
+                $upload.text( '继续上传' );
+                break;
+
+            case 'confirm':
+                $progress.hide();
+                $upload.text( '开始上传' ).addClass( 'disabled' );
+
+                stats = uploader.getStats();
+                if ( stats.successNum && !stats.uploadFailNum ) {
+                    setState( 'finish' );
+                    return;
+                }
+                break;
+            case 'finish':
+                stats = uploader.getStats();
+                if ( stats.successNum ) {
+                    console.log( '上传成功' );
+                } else {
+                    // 没有成功的图片,重设
+                    state = 'done';
+                    //location.reload();
+                }
+                break;
+        }
+
+        updateStatus();
+    }
+
+    uploader.onUploadProgress = function( file, percentage ) {
+        var $li = $('#'+file.id),
+            $percent = $li.find('.progress span');
+
+        $percent.css( 'width', percentage * 100 + '%' );
+        percentages[ file.id ][ 1 ] = percentage;
+        updateTotalProgress();
+    };
+
+    uploader.onFileQueued = function( file ) {
+        fileCount++;
+        fileSize += file.size;
+
+        if ( fileCount === 1 ) {
+            $placeHolder.addClass( 'element-invisible' );
+            $statusBar.show();
+        }
+
+        addFile( file );
+        setState( 'ready' );
+        updateTotalProgress();
+    };
+
+    uploader.onFileDequeued = function( file ) {
+        fileCount--;
+        fileSize -= file.size;
+
+        if ( !fileCount ) {
+            setState( 'pedding' );
+        }
+
+        removeFile( file );
+        updateTotalProgress();
+
+    };
+
+    uploader.on( 'all', function( type ) {
+        var stats;
+        switch( type ) {
+            case 'uploadFinished':
+                setState( 'confirm' );
+                break;
+
+            case 'startUpload':
+                setState( 'uploading' );
+                break;
+
+            case 'stopUpload':
+                setState( 'paused' );
+                break;
+
+        }
+    });
+
+    uploader.onError = function( code ) {
+        alert( 'Eroor: ' + code );
+    };
+    
+    $upload.on('click', function() {
+        if ( $(this).hasClass( 'disabled' ) ) {
+            return false;
+        }
+
+        if ( state === 'ready' ) {
+        	console.log("开始上传")
+//      	$(this).find(".loading>p").text("正在上传,请稍候...");
+        	var count=0,sum=$('#filelist1 .imgWrap img').length;
+          $('#filelist1 .imgWrap img').each(function(){
+         	var fileSrc=$(this).attr("src");
+            //var fileSrc=$(this).attr("src").replace(/^data:image\/(jpeg|png|gif);base64,/,'');
+           	//console.log($(this).attr('src'));
+           	//console.log("%c\n", "padding:500px 500px;line-height:120px;background:url('"+$(this).attr('src')+"') center center no-repeat;");
+           	$.ajax(base_path + '/approval/baseFileUpload?dates=' + new Date().getTime(), {
+					data: {
+						"file": fileSrc
+					},
+					dataType: 'json',
+					xhrFields: {
+						withCredentials: true
+					},
+					crossDomain: true,
+					async : false,
+					type: 'post',
+					timeout: 25000,
+					success: function(dt) {
+						if(dt.isRedirect) {
+							location.href = dt.redirectURL;
+						} else {
+							if(dt.returnCode == "200") {
+								console.log(dt)
+								//reqFace = dt.returnMsg.pic;
+								var prm={};
+								prm["contractUrl"]=dt.returnMsg.imgUrl;
+								prm["contractType"]=1;
+								imgArray.push(prm);
+								//$(".info").html($(".info").text()+'<span style="color:#008800;">上传成功!</span>');
+								//$(".imgWrap").append('<span class="up-tips">上传成功</span>');
+								$("#uploadBtn1").hide();
+								count++;
+							}
+						}
+					},
+					error: function(xhr, type, errorThrown) {
+						console.log(xhr);
+					}
+			});
+           });
+           var err='';
+           if(sum-count>0){
+           	   err=',失败<span style="color:#f00;">'+(sum-count)+'</span>张';
+           }
+          $("#uploader1 .info").html('共'+sum+'张,上传成功<span style="color:#5882f7;">'+count+'</span>张'+err);
+            //uploader.upload();
+        } else if ( state === 'paused' ) {
+        	console.log("开始上传")
+            //uploader.upload();
+        } else if ( state === 'uploading' ) {
+            //uploader.stop();
+        }
+    });
+
+    $info.on( 'click', '.retry', function() {
+        uploader.retry();
+    } );
+
+    $info.on( 'click', '.ignore', function() {
+        alert( 'todo' );
+    } );
+
+    $upload.addClass( 'state-' + state );
+    updateTotalProgress();

+ 524 - 0
rst/js/up2.js

@@ -0,0 +1,524 @@
+var imgArray1=[];//图片src数组
+		var $ = jQuery,    // just in case. Make sure it's not an other libaray.
+
+        $wrap1 = $('#uploader2'),
+
+        // 图片容器
+        $queue1 = $('<ul id="filelist2" class="filelist"></ul>').appendTo( $wrap1.find('#queueList2') ),
+
+        // 状态栏,包括进度和控制按钮
+        $statusBar1 = $wrap1.find('.statusBar'),
+
+        // 文件总体选择信息。
+        $info1 = $statusBar1.find('.info'),
+
+        // 上传按钮
+        $upload1 = $wrap1.find('#uploadBtn2'),
+
+        // 没选择文件之前的内容。
+        $placeHolder1 = $wrap1.find('.placeholder'),
+
+        // 总体进度条
+        $progress1 = $statusBar1.find('.progress').hide(),
+
+        // 添加的文件数量
+        fileCount1 = 0,
+
+        // 添加的文件总大小
+        fileSize1 = 0,
+
+        // 优化retina, 在retina下这个值是2或3
+        ratio = window.devicePixelRatio || 1,
+
+        // 缩略图大小
+        thumbnailWidth = 414 * ratio,
+        thumbnailHeight = 736 * ratio,
+
+        // 可能有pedding, ready, uploading, confirm, done.
+        state1 = 'pedding',
+
+        // 所有文件的进度信息,key为file id
+        percentages1 = {},
+
+        supportTransition1 = (function(){
+            var s = document.createElement('p').style,
+                r = 'transition' in s ||
+                      'WebkitTransition' in s ||
+                      'MozTransition' in s ||
+                      'msTransition' in s ||
+                      'OTransition' in s;
+            s = null;
+            return r;
+        })(),
+
+        // WebUploader实例
+        uploader1;
+
+    if ( !WebUploader.Uploader.support() ) {
+        alert( 'Web Uploader 不支持您的浏览器!如果你使用的是IE浏览器,请尝试升级 flash 播放器');
+        throw new Error( 'WebUploader does not support the browser you are using.' );
+    }
+
+    // 实例化
+    uploader1 = WebUploader.create({
+        pick: {
+            id: '#filePicker3',
+            label: '选择图片',
+            multiple:true
+        },
+        dnd: '#uploader2 .queueList',
+        paste: document.body,
+
+        accept: {
+            title: 'Images',
+            extensions: 'jpg,jpeg,png',
+            mimeTypes: 'image/*'
+        },
+        thumb :{
+    width: 595,
+    height: 842,
+
+    // 图片质量,只有type为`image/jpeg`的时候才有效。
+    quality: 100,
+
+    // 是否允许放大,如果想要生成小图的时候不失真,此选项应该设置为false.
+    allowMagnify: false,
+
+    // 是否允许裁剪。
+    crop: false,
+
+    // 为空的话则保留原有图片格式。
+    // 否则强制转换成指定的类型。
+    type: ''
+},
+        compress :{
+    width: 595,
+    height: 842,
+
+    // 图片质量,只有type为`image/jpeg`的时候才有效。
+    quality: 90,
+
+    // 是否允许放大,如果想要生成小图的时候不失真,此选项应该设置为false.
+    allowMagnify: false,
+
+    // 是否允许裁剪。
+    crop: false,
+
+    // 是否保留头部meta信息。
+    preserveHeaders: true,
+
+    // 如果发现压缩后文件大小比原来还大,则使用原来图片
+    // 此属性可能会影响图片自动纠正功能
+    noCompressIfLarger: false,
+
+    // 单位字节,如果图片大小小于此值,不会采用压缩。
+    compressSize: 0
+},
+        // swf文件路径
+        swf: '../images/Uploader.swf',
+
+        disableGlobalDnd: true,
+        
+        auto:false,  //这里我们设置不自动上传,true则为自动上传
+        
+        chunked: true, //是否要分片
+        // server: 'http://webuploader.duapp.com/server/fileupload.php',
+        server: base_path + '/uploadImage',
+        fileNumLimit: 5,
+        fileSizeLimit: 15 * 1024 * 1024,    // 15 M
+        fileSingleSizeLimit: 3 * 1024 * 1024    // 3 M
+    });
+    // 添加“添加文件”的按钮,
+    uploader1.addButton({
+        id: '#filePicker4',
+        label: '继续添加'
+    });
+
+    // 当有文件添加进来时执行,负责view的创建
+    function addFile1( file ) {
+    	console.log(file)
+        var $li1 = $( '<li id="' + file.id + '">' +
+                '<p class="title">' + file.name + '</p>' +
+                '<p class="imgWrap"></p>'+
+                '<p class="progress"><span></span></p>' +
+                '</li>' ),
+
+            $btns = $('<div class="file-panel">' +
+                '<span class="cancel">删除</span>' +'</div>').appendTo( $li1 ),
+            $prgress = $li1.find('p.progress span'),
+            $wrap1 = $li1.find( 'p.imgWrap' ),
+            $info1 = $('<p class="error"></p>'),
+
+            showError = function( code ) {
+                switch( code ) {
+                    case 'exceed_size':
+                        text = '文件大小超出';
+                        break;
+
+                    case 'interrupt':
+                        text = '上传暂停';
+                        break;
+
+                    default:
+                        text = '上传失败,请重试';
+                        break;
+                }
+
+                $info1.text( text ).appendTo( $li1 );
+            };
+
+        if ( file.getStatus() === 'invalid' ) {
+            showError( file.statusText );
+        } else {
+            // @todo lazyload
+            $wrap1.text( '预览中' );
+            uploader1.makeThumb( file, function( error, src ) {
+                if ( error ) {
+                    $wrap1.text( '不能预览' );
+                    return;
+                }
+
+                var img = $('<img src="'+src+'">');
+                $wrap1.empty().append( img );
+            }, thumbnailWidth, thumbnailHeight );
+
+            percentages1[ file.id ] = [ file.size, 0 ];
+            file.rotation = 0;
+        }
+
+        file.on('statuschange', function( cur, prev ) {
+            if ( prev === 'progress' ) {
+                $prgress.hide().width(0);
+            } else if ( prev === 'queued' ) {
+                $li1.off( 'mouseenter mouseleave' );
+                $btns.remove();
+            }
+
+            // 成功
+            if ( cur === 'error' || cur === 'invalid' ) {
+                console.log( file.statusText );
+                showError( file.statusText );
+                percentages1[ file.id ][ 1 ] = 1;
+            } else if ( cur === 'interrupt' ) {
+                showError( 'interrupt' );
+            } else if ( cur === 'queued' ) {
+                percentages1[ file.id ][ 1 ] = 0;
+            } else if ( cur === 'progress' ) {
+                $info1.remove();
+                $prgress.css('display', 'block');
+            } else if ( cur === 'complete' ) {
+                $li1.append( '<span class="success"></span>' );
+            }
+
+            $li1.removeClass( 'state-' + prev ).addClass( 'state-' + cur );
+        });
+
+        $li1.on( 'mouseenter', function() {
+            $btns.stop().animate({height: 30});
+        });
+
+        $li1.on( 'mouseleave', function() {
+            $btns.stop().animate({height: 0});
+        });
+
+        $btns.on( 'click', 'span', function() {
+            var index = $(this).index(),
+                deg;
+
+            switch ( index ) {
+                case 0:
+                    uploader1.removeFile( file );
+                    reqFace='';
+                    return;
+
+                case 1:
+                    file.rotation += 90;
+                    break;
+
+                case 2:
+                    file.rotation -= 90;
+                    break;
+            }
+
+            if ( supportTransition1 ) {
+                deg = 'rotate(' + file.rotation + 'deg)';
+                $wrap1.css({
+                    '-webkit-transform': deg,
+                    '-mos-transform': deg,
+                    '-o-transform': deg,
+                    'transform': deg
+                });
+            } else {
+                $wrap1.css( 'filter', 'progid:DXImageTransform.Microsoft.BasicImage(rotation='+ (~~((file.rotation/90)%4 + 4)%4) +')');
+                // use jquery animate to rotation
+                // $({
+                //     rotation: rotation
+                // }).animate({
+                //     rotation: file.rotation
+                // }, {
+                //     easing: 'linear',
+                //     step: function( now ) {
+                //         now = now * Math.PI / 180;
+
+                //         var cos = Math.cos( now ),
+                //             sin = Math.sin( now );
+
+                //         $wrap.css( 'filter', "progid:DXImageTransform.Microsoft.Matrix(M11=" + cos + ",M12=" + (-sin) + ",M21=" + sin + ",M22=" + cos + ",SizingMethod='auto expand')");
+                //     }
+                // });
+            }
+        });
+
+        $li1.appendTo( $queue1 );
+    }
+
+    // 负责view的销毁
+    function removeFile( file ) {
+        var $li1 = $('#'+file.id);
+
+        delete percentages1[ file.id ];
+        updateTotalProgress1();
+        $li1.off().find('.file-panel').off().end().remove();
+    }
+
+    function updateTotalProgress1() {
+        var loaded = 0,
+            total = 0,
+            spans = $progress1.children(),
+            percent;
+
+        $.each( percentages1, function( k, v ) {
+            total += v[ 0 ];
+            loaded += v[ 0 ] * v[ 1 ];
+        } );
+
+        percent = total ? loaded / total : 0;
+
+        spans.eq( 0 ).text( Math.round( percent * 100 ) + '%' );
+        spans.eq( 1 ).css( 'width', Math.round( percent * 100 ) + '%' );
+        updateStatus1();
+    }
+
+    function updateStatus1() {
+        var text = '', stats1;
+
+        if ( state1 === 'ready' ) {
+            text = '选中' + fileCount1 + '张图片,共' +
+                    WebUploader.formatSize( fileSize1 ) + '。';
+                    $("#uploadBtn2").show();
+        } else if ( state1 === 'confirm' ) {
+            stats1 = uploader1.getStats();
+            if ( stats1.uploadFailNum ) {
+                text = '已成功上传' + stats1.successNum+ '张图片,'+
+                    stats1.uploadFailNum + '张失败'
+//                  stats.uploadFailNum + '张失败,<a class="retry" href="#">重新上传</a>失败图片或<a class="ignore" href="#">忽略</a>'
+            }
+
+        } else {
+            stats1 = uploader1.getStats();
+            text = '共' + fileCount1 + '张(' +
+                    WebUploader.formatSize( fileSize1 )  +
+                    '),已上传' + stats1.successNum + '张';
+
+            if ( stats1.uploadFailNum ) {
+                text += ',失败' + stats1.uploadFailNum + '张';
+            }
+        }
+
+        $info1.html( text );
+    }
+
+    function setState1( val ) {
+        var file, stats1;
+
+        if ( val === state1 ) {
+            return;
+        }
+
+        $upload1.removeClass( 'state-' + state1 );
+        $upload1.addClass( 'state-' + val );
+        state1 = val;
+
+        switch ( state1 ) {
+            case 'pedding':
+                $placeHolder1.removeClass( 'element-invisible' );
+                $queue1.parent().removeClass('filled');
+                $queue1.hide();
+                $statusBar1.addClass( 'element-invisible' );
+                uploader1.refresh();
+                break;
+
+            case 'ready':
+                $placeHolder1.addClass( 'element-invisible' );
+                $( '#filePicker2' ).removeClass( 'element-invisible');
+                $queue1.parent().addClass('filled');
+                $queue1.show();
+                $statusBar1.removeClass('element-invisible');
+                uploader1.refresh();
+                break;
+
+            case 'uploading':
+                $( '#filePicker2' ).addClass( 'element-invisible' );
+                $progress1.show();
+                $upload1.text( '暂停上传' );
+                break;
+
+            case 'paused':
+                $progress1.show();
+                $upload1.text( '继续上传' );
+                break;
+
+            case 'confirm':
+                $progress1.hide();
+                $upload1.text( '开始上传' ).addClass( 'disabled' );
+
+                stats1 = uploader1.getStats();
+                if ( stats1.successNum && !stats1.uploadFailNum ) {
+                    setState1( 'finish' );
+                    return;
+                }
+                break;
+            case 'finish':
+                stats1 = uploader1.getStats();
+                if ( stats1.successNum ) {
+                    console.log( '上传成功' );
+                } else {
+                    // 没有成功的图片,重设
+                    state1 = 'done';
+                    //location.reload();
+                }
+                break;
+        }
+
+        updateStatus1();
+    }
+
+    uploader1.onUploadProgress = function( file, percentage ) {
+        var $li1 = $('#'+file.id),
+            $percent = $li1.find('.progress span');
+
+        $percent.css( 'width', percentage * 100 + '%' );
+        percentages1[ file.id ][ 1 ] = percentage;
+        updateTotalProgress1();
+    };
+
+    uploader1.onFileQueued = function( file ) {
+        fileCount1++;
+        fileSize1 += file.size;
+
+        if ( fileCount1 === 1 ) {
+            $placeHolder1.addClass( 'element-invisible' );
+            $statusBar1.show();
+        }
+
+        addFile1( file );
+        setState1( 'ready' );
+        updateTotalProgress1();
+    };
+
+    uploader1.onFileDequeued = function( file ) {
+        fileCount1--;
+        fileSize1 -= file.size;
+
+        if ( !fileCount1 ) {
+            setState1( 'pedding' );
+        }
+
+        removeFile( file );
+        updateTotalProgress1();
+
+    };
+
+    uploader1.on( 'all', function( type ) {
+        var stats1;
+        switch( type ) {
+            case 'uploadFinished':
+                setState1( 'confirm' );
+                break;
+
+            case 'startUpload':
+                setState1( 'uploading' );
+                break;
+
+            case 'stopUpload':
+                setState1( 'paused' );
+                break;
+
+        }
+    });
+
+    uploader1.onError = function( code ) {
+        alert( 'Eroor: ' + code );
+    };
+    
+    $upload1.on('click', function() {
+        if ( $(this).hasClass( 'disabled' ) ) {
+            return false;
+        }
+
+        if ( state1 === 'ready' ) {
+        	console.log("开始上传")
+//      	$(".loading>p").text("正在上传,请稍候...");
+        	var count=0,sum=$('#filelist2 .imgWrap img').length;
+          $('#filelist2 .imgWrap img').each(function(){
+         	var fileSrc=$(this).attr("src");
+//           	var fileSrc=$(this).attr("src").replace(/^data:image\/(jpeg|png|gif);base64,/,'');
+           	$.ajax(base_path + '/approval/baseFileUpload?dates=' + new Date().getTime(), {
+					data: {
+						"file": fileSrc
+					},
+					dataType: 'json',
+					xhrFields: {
+						withCredentials: true
+					},
+					crossDomain: true,
+					async : false,
+					type: 'post',
+					timeout: 25000,
+					success: function(dt) {
+						if(dt.isRedirect) {
+							location.href = dt.redirectURL;
+						} else {
+							if(dt.returnCode == "200") {
+								console.log(dt)
+								//reqFace = dt.returnMsg.pic;
+								var prm={};
+								prm["contractUrl"]=dt.returnMsg.imgUrl;
+								prm["contractType"]=2;
+								imgArray1.push(prm);
+								//$(".info").html($(".info").text()+'<span style="color:#008800;">上传成功!</span>');
+								//$(".imgWrap").append('<span class="up-tips">上传成功</span>');
+								$("#uploadBtn2").hide();
+								count++;
+							}
+						}
+					},
+					error: function(xhr, type, errorThrown) {
+						console.log(xhr);
+					}
+				});
+           });
+           var err='';
+           if(sum-count>0){
+           	   err=',失败<span style="color:#f00;">'+(sum-count)+'</span>张';
+           }
+          $("#uploader2 .info").html('共'+sum+'张,上传成功<span style="color:#5882f7;">'+count+'</span>张'+err);
+            //uploader.upload();
+        } else if ( state1 === 'paused' ) {
+        	console.log("开始上传")
+            //uploader.upload();
+        } else if ( state1 === 'uploading' ) {
+            //uploader.stop();
+        }
+    });
+
+    $info1.on( 'click', '.retry', function() {
+        uploader1.retry();
+    } );
+
+    $info1.on( 'click', '.ignore', function() {
+        alert( 'todo' );
+    } );
+
+    $upload1.addClass( 'state-' + state1 );
+    updateTotalProgress1();

File diff ditekan karena terlalu besar
+ 8190 - 0
rst/js/webuploader.js


+ 17 - 12
rst/js/wechat-utils-1.0.js

@@ -4,26 +4,33 @@
  * @version V.1.0
  */
 // 获取绑定微信JSSDK的配置参数 
-var getConfigUrl = base_path+"/config/get";
+var getConfigUrl = "/watero/config/get";
 // JSSDK是否绑定成功
 var jssdkSuccess = true;
 //是否隐藏全局菜单
 if (window.hiddenAllWechatMenu == null) {
 	window.hiddenAllWechatMenu = false;
 }
+// 分享信息全局变量
+window.wxFriend = null;
+if (window.repleFlag) {
+	// 自定义
+	window.wxFriend = window.repleWxData;
+} else {
 	// 使用全局默认
 	window.wxFriend = {
 	    "appId": "",
-	    "imgUrl":'http://s.iamberry.com/soodo/wechat/images/indexShare.jpg',
-	    "link":"http://s.iamberry.com/soodo/wechat/index.html",
-	    "desc":"让你的“笑容停留在18岁”",
-	    "title":"【soodo上朵】柔性声波电动牙刷,赠送您60元现金券",
+	    "imgUrl":'http://m.iamberry.com/common/goods/images/indexShare.jpg',
+	    "link":"http://www.iamberry.com/ratfw/index",
+	    "desc":"这里是分享描述",
+	    "title":"这里是分享标题",
 	    "netError":"您的网络异常,请刷新重试!如多次刷新无效,请向我们反应 ~",
 	    "shareTimeSuccess":"这里是分享朋友圈后调用的文字",
 	    "shareTimeCancel":"这里是取消分享给朋友圈后调用的文字",
 	    "shareAppSuccess":"这里是分享好友后调用的文字",
 	    "shareAppCancel":"这里是取消分享给好友后调用的文字"
 	};
+}
 // 微信共享地址数据
 window.wechatAddr = {
 	"status":false, // 是否调用成功,true成功,false失败
@@ -37,18 +44,18 @@ window.wechatAddr = {
 /** 引入JSSDK1.0基本组件,微信共享地址智能使用1.0版本,并且需要服务器返回参数支持 */
 //incoldeJSFile("http://res.wx.qq.com/open/js/jweixin-1.0.0.js");
 /** 引入JSSDK1.1基本组件 ,支持摇一摇、微信共享地址 */
-incoldeJSFile("//res.wx.qq.com/open/js/jweixin-1.1.0.js"); 
+incoldeJSFile("http://res.wx.qq.com/open/js/jweixin-1.1.0.js"); 
 getConfig(); // 配置JSSDK组件
 
 /** 获取服务器JSSDK参数配置 */
 function getConfig(){
 	$.ajax({
+        xhrFields: {
+            withCredentials: true
+        },
 		type: 'get', url: getConfigUrl, data: {appid: "", url: location.href,"date":new Date().getTime()}, dataType: 'json', timeout: 10000, context: $('body'),
 		success: function(data){setConfig(data);},
-		error: function(xhr, type){
-			getConfig();
-			mui.alert('网络异常,请刷新重试,否则某些功能不能使用!')
-			}
+		error: function(xhr, type){getConfig();}
 	});
 }
 
@@ -105,7 +112,6 @@ function wxReadySuccess() {
 	            "menuItem:favorite",
 	            "menuItem:share:facebook",
 	            "menuItem:share:appMessage",
-	            "menuItem:share:brand",
 	            "menuItem:share:timeline"
 	        ] // 要隐藏的菜单项,所有menu项见附录3
 	    });
@@ -132,7 +138,6 @@ function wxReadySuccess() {
 	            "menuItem:openWithQQBrowser",
 	            "menuItem:share:QZone",
 	            "menuItem:favorite",
-	            "menuItem:share:brand",
 	            "menuItem:share:facebook"
 	        ] // 要隐藏的菜单项,所有menu项见附录3
 	    });

+ 135 - 0
rst/js/zxxFile.js

@@ -0,0 +1,135 @@
+/*
+ * zxxFile.js 基于HTML5 文件上传的核心脚本 http://www.zhangxinxu.com/wordpress/?p=1923
+ * by zhangxinxu 2011-09-12
+*/
+
+var ZXXFILE = {
+	fileInput: null,				//html file控件
+	dragDrop: null,					//拖拽敏感区域
+	upButton: null,					//提交按钮
+	url: "",						//ajax地址
+	fileFilter: [],					//过滤后的文件数组
+	filter: function(files) {		//选择文件组的过滤方法
+		return files;	
+	},
+	onSelect: function() {},		//文件选择后
+	onDelete: function() {},		//文件删除后
+	onDragOver: function() {},		//文件拖拽到敏感区域时
+	onDragLeave: function() {},	//文件离开到敏感区域时
+	onProgress: function() {},		//文件上传进度
+	onSuccess: function() {},		//文件上传成功时
+	onFailure: function() {},		//文件上传失败时,
+	onComplete: function() {},		//文件全部上传完毕时
+	
+	/* 开发参数和内置方法分界线 */
+	
+	//文件拖放
+	funDragHover: function(e) {
+		e.stopPropagation();
+		e.preventDefault();
+		this[e.type === "dragover"? "onDragOver": "onDragLeave"].call(e.target);
+		return this;
+	},
+	//获取选择文件,file控件或拖放
+	funGetFiles: function(e) {
+		// 取消鼠标经过样式
+		this.funDragHover(e);
+				
+		// 获取文件列表对象
+		var files = e.target.files || e.dataTransfer.files;
+		//继续添加文件
+		this.fileFilter = this.fileFilter.concat(this.filter(files));
+		this.funDealFiles();
+		return this;
+	},
+	
+	//选中文件的处理与回调
+	funDealFiles: function() {
+		for (var i = 0, file; file = this.fileFilter[i]; i++) {
+			//增加唯一索引值
+			file.index = i;
+		}
+		//执行选择回调
+		this.onSelect(this.fileFilter);
+		return this;
+	},
+	
+	//删除对应的文件
+	funDeleteFile: function(fileDelete) {
+		var arrFile = [];
+		for (var i = 0, file; file = this.fileFilter[i]; i++) {
+			if (file != fileDelete) {
+				arrFile.push(file);
+			} else {
+				this.onDelete(fileDelete);	
+			}
+		}
+		this.fileFilter = arrFile;
+		return this;
+	},
+	
+	//文件上传
+	funUploadFile: function() {
+		var self = this;	
+		if (location.host.indexOf("sitepointstatic") >= 0) {
+			//非站点服务器上运行
+			return;	
+		}
+//		for (var i = 0, file; file = this.fileFilter[i]; i++) {
+//			(function(file) {
+				file = this.fileFilter[this.fileFilter.length-1]
+				console.log(file);
+				var xhr = new XMLHttpRequest();
+				if (xhr.upload) {
+					// 上传中
+					xhr.upload.addEventListener("progress", function(e) {
+						self.onProgress(file, e.loaded, e.total);
+					}, false);
+		
+					// 文件上传成功或是失败
+					xhr.onreadystatechange = function(e) {
+						if (xhr.readyState == 4) {
+							if (xhr.status == 200) {
+								self.onSuccess(file, xhr.responseText);
+								self.funDeleteFile(file);
+								if (!self.fileFilter.length) {
+									//全部完毕
+									self.onComplete();	
+								}
+							} else {
+								self.onFailure(file, xhr.responseText);		
+							}
+						}
+					};
+		
+					// 开始上传
+					xhr.open("POST", self.url, true);
+					xhr.setRequestHeader("X_FILENAME", encodeURI(file.name));
+					console.log(file)
+					xhr.send(file);
+				}	
+//			})(file);	
+//		}	
+			
+	},
+					  
+	init: function() {
+		var self = this;
+		
+		if (this.dragDrop) {
+			this.dragDrop.addEventListener("dragover", function(e) { self.funDragHover(e); }, false);
+			this.dragDrop.addEventListener("dragleave", function(e) { self.funDragHover(e); }, false);
+			this.dragDrop.addEventListener("drop", function(e) { self.funGetFiles(e); }, false);
+		}
+		
+		//文件选择控件选择
+		if (this.fileInput) {
+			this.fileInput.addEventListener("change", function(e) { self.funGetFiles(e); }, false);	
+		}
+		
+		//上传按钮提交
+		if (this.upButton) {
+			this.upButton.addEventListener("click", function(e) { self.funUploadFile(e); }, false);	
+		} 
+	}
+};

File diff ditekan karena terlalu besar
+ 633 - 0
rst/order_delivery.html


File diff ditekan karena terlalu besar
+ 1177 - 0
rst/pro_order_details.html


File diff ditekan karena terlalu besar
+ 321 - 0
rst/pro_order_list_index.html


File diff ditekan karena terlalu besar
+ 740 - 0
rst/submit_apply_order.html