qihanjiao 6 years ago
parent
commit
000fb659bb
48 changed files with 15881 additions and 536 deletions
  1. 46 0
      .project
  2. 46 0
      rst/.project
  3. 633 0
      rst/agreed_order.html
  4. 119 0
      rst/application_delivery.html
  5. 277 0
      rst/confirmation_of_warehousing.html
  6. 8 66
      rst/css/iconfont.css
  7. 1 0
      rst/css/map.min.css
  8. 112 0
      rst/css/mui.indexedlist.css
  9. 95 0
      rst/css/mui.listpicker.css
  10. 1 1
      rst/css/mui.min.css
  11. 285 0
      rst/css/mui.picker.all.css
  12. 150 0
      rst/css/previewimage.css
  13. 1 7
      rst/css/rp.txt
  14. 232 0
      rst/css/style.css
  15. 1065 0
      rst/css/styles.less
  16. 423 0
      rst/css/up.css
  17. 28 0
      rst/css/webuploader.css
  18. BIN
      rst/fonts/iconfont.ttf
  19. BIN
      rst/images/60x60.gif
  20. BIN
      rst/images/Uploader.swf
  21. BIN
      rst/images/bg.png
  22. BIN
      rst/images/c_checkbox_off.png
  23. BIN
      rst/images/c_checkbox_on.png
  24. BIN
      rst/images/certificate1.jpg
  25. BIN
      rst/images/drag.png
  26. BIN
      rst/images/icons.png
  27. BIN
      rst/images/image.png
  28. BIN
      rst/images/progress.png
  29. 49 56
      rst/js/city.data-3.js
  30. 0 7
      rst/js/city.data.js
  31. 18 0
      rst/js/less.min.js
  32. 47 383
      rst/js/main.js
  33. 471 0
      rst/js/mui.dtpicker.js
  34. 4 4
      rst/js/mui.min.js
  35. 168 0
      rst/js/my_validate.js
  36. 207 0
      rst/js/my_validate1.js
  37. 36 0
      rst/js/require.js
  38. 527 0
      rst/js/up1.js
  39. 524 0
      rst/js/up2.js
  40. 8190 0
      rst/js/webuploader.js
  41. 17 12
      rst/js/wechat-utils-1.0.js
  42. 135 0
      rst/js/zxxFile.js
  43. 888 0
      rst/pro_order_details.html
  44. 121 0
      rst/pro_order_list.html
  45. 309 0
      rst/pro_order_list_index.html
  46. 108 0
      rst/pro_storage_order_list.html
  47. 540 0
      rst/submit_apply_order.html
  48. BIN
      tooth - 副本.rar

+ 46 - 0
.project

@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>wechat</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>1517449272915</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>
+		<filter>
+			<id>1530263046765</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>
+		<filter>
+			<id>1530758105866</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>

+ 46 - 0
rst/.project

@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>watero_wechat</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>1499863583562</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>
+		<filter>
+			<id>1534321152099</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>
+		<filter>
+			<id>1534736863235</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 suppressed because it is too large
+ 633 - 0
rst/agreed_order.html


File diff suppressed because it is too large
+ 119 - 0
rst/application_delivery.html


+ 277 - 0
rst/confirmation_of_warehousing.html

@@ -0,0 +1,277 @@
+<!DOCTYPE html>
+<html>
+	<head>
+		<meta charset="UTF-8">
+		<title>确认入库</title>
+		<meta name="viewport" content="width=device-width, initial-scale=1,maximum-scale=1, user-scalable=no">
+		<meta name="apple-mobile-web-app-capable" content="yes">
+		<meta name="apple-mobile-web-app-status-bar-style" content="black">
+		<link rel="stylesheet" type="text/css" href="css/mui.min.css" />
+		<link rel="stylesheet" type="text/css" href="css/mui.picker.min.css" />
+		<link rel="stylesheet" type="text/css" href="css/mui.picker.css"/>
+		<link rel="stylesheet" type="text/css" href="css/mui.poppicker.css"/>
+		<link rel="stylesheet" type="text/css" href="css/iconfont.css" />
+		<link rel="stylesheet" type="text/css" href="css/style.css" />
+		<style>
+			.mui-content>.mui-input-group:first-child{margin-top: 0;}
+			.pro-list>li{border: 0;margin: 10px;}
+			.pro-list>li:first-child{border-top: 0;}
+			.my-input-group .mui-input-row label~input{text-align: left;}
+			.lack{position: absolute;left: 160px;top: 10px;font-size: 14px;color: #f00;}
+		</style>
+	</head>
+	<body>
+	<div class="loading-bg">
+			<div class="mui-loading">
+				<div class="mui-spinner">
+				</div>
+				&nbsp;&nbsp;加载中...
+			</div>
+	</div>
+	<nav class="mui-bar mui-bar-tab submit">
+		<button type="button">确认入库</button>
+	</nav>
+			<div class="mui-content">
+				<form class="mui-input-group my-input-group view-none">
+					
+					<ul class="pro-list">
+						<li>
+							<div class="mui-input-row my-tit-row no-after">
+								<label style="width:100%;"><h4>订单产品<span class="mui-h5 mui-pull-right">2018-11-11 12:00</span></h4></label>
+								
+							</div>
+							<ul class="pro-iteam-list">
+								<li>
+									<div class="mui-input-row">
+										<label>产品名称</label>
+										<input type="text" readonly="readonly" subparam="itemProductName" value="优尼雅净水机">
+									</div>
+									<div class="mui-input-row">
+										<label>品牌名称</label>
+										<input type="text" readonly="readonly" subparam="itemBrandName" value="美国watero">
+									</div>
+									<div class="mui-input-row">
+										<label>产品型号</label>
+										<input type="text" readonly="readonly" subparam="itemProductModel" value="wb-1">
+									</div>
+									<div class="mui-input-row">
+										<label>产品颜色</label>
+										<input type="text" readonly="readonly" subparam="itemColorName" value="黑色">
+									</div>
+									<div class="mui-input-row">
+										<label>产品数量</label>
+										<input type="tel" readonly="readonly" subparam="itemProductNum" value="100台">
+									</div>
+									<div class="mui-input-row">
+										<label>箱 / 套数</label>
+										<input type="tel" readonly="readonly" subparam="itemProductBoxNumber" value="100">
+									</div>
+									<div class="mui-input-row">
+										<label>已入库</label>
+										<input type="tel" readonly="readonly" subparam="itemProductBoxNumber" value="50台">
+										<span class="lack">缺50台</span>
+									</div>
+									<div class="mui-input-row no-after">
+										<label>入库数量</label>
+										<input type="text" reg="num" subparam="itemProductNum" placeholder="请输入入库数量(1~100台)">
+									</div>
+								</li>
+								<li>
+									<div class="mui-input-row">
+										<label>产品名称</label>
+										<input type="text" readonly="readonly" subparam="itemProductName" value="优尼雅净水机">
+									</div>
+									<div class="mui-input-row">
+										<label>品牌名称</label>
+										<input type="text" readonly="readonly" subparam="itemBrandName" value="美国watero">
+									</div>
+									<div class="mui-input-row">
+										<label>产品型号</label>
+										<input type="text" readonly="readonly" subparam="itemProductModel" value="wb-1">
+									</div>
+									<div class="mui-input-row">
+										<label>产品颜色</label>
+										<input type="text" readonly="readonly" subparam="itemColorName" value="黑色">
+									</div>
+									<div class="mui-input-row">
+										<label>产品数量</label>
+										<input type="tel" readonly="readonly" subparam="itemProductNum" value="100台">
+									</div>
+									<div class="mui-input-row">
+										<label>箱 / 套数</label>
+										<input type="tel" readonly="readonly" subparam="itemProductBoxNumber" value="100">
+									</div>
+									<div class="mui-input-row">
+										<label>已入库</label>
+										<input type="tel" readonly="readonly" subparam="itemProductBoxNumber" value="50台">
+										<span class="lack">缺50台</span>
+									</div>
+									<div class="mui-input-row no-after">
+										<label>入库数量</label>
+										<input type="text" reg="num" subparam="itemProductNum" placeholder="请输入入库数量(1~100台)">
+									</div>
+								</li>
+							</ul>
+						</li>
+
+					</ul>
+				</form>
+			</div>
+	<script type="text/javascript" src="js/mui.min.js"></script>
+	<script type="text/javascript" src="js/mui.picker.min.js"></script>
+	<script type="text/javascript" src="js/mui.picker.js"></script>
+	<script type="text/javascript" src="js/mui.poppicker.js"></script>
+	<script type="text/javascript" src="js/jquery-2.1.1.min.js"></script>
+	<script type="text/javascript" src="js/main.js"></script>
+	<script type="text/javascript">
+	var approvalList=[],selectPro=[];	
+	mui.ready(function(){
+		document.querySelector('.loading-bg').style.display='none';
+	});
+	
+	
+//提交	
+var check = false,msg='';	
+$(document).on('tap','.submit>button',function(){
+check = false,msg='';	
+var parameter = {};
+mui(".mui-input-group>.mui-input-row input[reg]").each(function () {
+  //若当前input为空,则alert提醒
+  var th=this;
+  var label = th.previousElementSibling;
+  if(!th.value||(th.value).trim()==""){
+    msg=label.innerText+"不允许为空";
+    check = false;
+    return false;
+  }else{
+  	checkReg(th,label);
+  	if(th.getAttribute("param")!=null){
+  		parameter[th.getAttribute("param")] = th.value;
+  	}
+  }
+});
+
+//parameter["productionItems"]=arr;
+//校验通过,继续执行业务逻辑
+if(check){
+	parameter["productionApprovalId"]=$("#select-orderName").attr("name");
+	mui(selectPro).each(function (index) {
+		var th=this,ix=index;
+		mui('.pro-iteam-list input[subparam=itemProductNum]').each(function () {
+			if(selectPro[ix].itemId==this.getAttribute("name")){
+				selectPro[ix].itemProductNum=this.value;
+			}
+		});
+	});
+	parameter["listApplyPickItemJson"]=selectPro;
+   if(imgArray.length>0){
+   	console.log("通过");
+   	console.log(parameter);
+   }else{
+   	  mui.alert("请上传提货凭证照片");
+   }
+}else{
+	mui.alert(msg);
+}
+});
+
+function checkReg(th,label){
+	var reg_Tel =/^(0?(13|14|15|18|19)[\d]{9}$|(01|02|03|04|05|06|07|08|09)[\d]{7,10}$|(400|800)[0-9]{7}$)/; //手机,座机(400-800)
+  	var reg_Ch=/^[\u4e00-\u9fa5]{2,}$/;//简体中文(2位以上)
+  	var reg_Int=/^[0-9]\d*$/; //正整数0-9
+  	var reg_Ch_Num=/^[0-9~!@#$%^&*()_+={}|<>?:;'"!@¥…(){}【】《》/`、;‘’:\-—“”,。,.?·_\-\u4e00-\u9fa5]{1,140}$/;//简体中文数字,常用符号(1位以上)
+  	var reg_En_Num=/^[A-Za-z0-9~!@#$%^&*()_+={}|<>?:;'"!@¥…(){}【】《》/`、;‘’:\-—“”,。,.?·]{1,}$/;//英文数字,常用符号(1位以上)
+  	var reg_Ch_En_Num=/^[A-Za-z0-9~!@#$%^&*()_+={}|<>?:;'"!@¥…(){}【】《》/`、;‘’:\-—“”,。,.?·_\-\u4e00-\u9fa5]{1,140}$/;//简体中文英文数字,常用符号(0-140位)
+  	var reg_Date=/^([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8])))/; //日期(2018-11-11)
+  	switch (th.getAttribute("reg")){
+  		case "ch":
+  		if(reg_Ch.test(th.value)){
+  			check = true;
+  			$(th).parent().addClass("check").removeClass("error");
+  		}else{
+  			check = false;
+  			$(th).parent().removeClass("check").addClass("error");
+  			msg=label.innerText+"格式错误";
+  		}
+  		break;
+  		case "num":
+  		if(reg_Int.test(th.value)){
+  			check = true;
+  			$(th).parent().addClass("check").removeClass("error");
+  		}else{
+  			check = false;
+  			$(th).parent().removeClass("check").addClass("error");
+  			msg=label.innerText+"格式错误";
+  		}
+  		break;
+  		case "ch_num":
+  		if(reg_Ch_Num.test(th.value)){
+  			check = true;
+  			$(th).parent().removeClass("error").addClass("check");
+  		}else{
+  			check = false;
+  			$(th).parent().removeClass("check").addClass("error");
+  			msg=label.innerText+"格式错误";
+  		}
+  		break;
+  		case "en_num":
+  		if(reg_En_Num.test(th.value)){
+  			check = true;
+  			$(th).parent().removeClass("error").addClass("check");
+  		}else{
+  			check = false;
+  			$(th).parent().removeClass("check").addClass("error");
+  			msg=label.innerText+"格式错误";
+  		}
+  		break;
+  		case "ch_en_num":
+  		if(reg_Ch_En_Num.test(th.value)){
+  			check = true;
+  			$(th).parent().removeClass("error").addClass("check");
+  		}else{
+  			check = false;
+  			$(th).parent().removeClass("check").addClass("error");
+  			msg=label.innerText+"格式错误";
+  		}
+  		break;
+  		case "date":
+  		if(reg_Date.test(th.value)){
+  			check = true;
+  			$(th).parent().removeClass("error").addClass("check");
+  		}else{
+  			check = false;
+  			$(th).parent().removeClass("check").addClass("error");
+  			msg=label.innerText+"格式错误";
+  		}
+  		break;
+  		case "tel":
+  		if(reg_Tel.test(th.value)){
+  			check = true;
+  			$(th).parent().addClass("check").removeClass("error");
+  		}else{
+  			check = false;
+  			$(th).parent().removeClass("check").addClass("error");
+  			msg=label.innerText+"格式错误";
+  		}
+  		break;
+  		default:
+  			break;
+  	}
+}
+$(document).on('input',".mui-input-group input[reg],.mui-input-group .bztextarea",function(){
+   var th=this,val=th.value;
+   var label = th.previousElementSibling;
+   //禁止用户输入空格
+   if(val.indexOf(" ")!=-1){
+		val=val.replace(" ", "");
+		$(th).val(val);
+   }
+	if(!val||val==""){
+		$(th).parent().removeClass("check error");
+	}else{
+		checkReg(th,label);
+	}
+});
+	</script>
+	</body>
+</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 suppressed because it is too large
+ 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 suppressed because it is too large
+ 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

+ 232 - 0
rst/css/style.css

@@ -0,0 +1,232 @@
+/*页面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: 2px;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: 2px;color: #999;}
+.pro-bz-list>li{font-size: 12px;color: #999;}
+.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: 40px;
+				height: 40px;
+				line-height: 40px;
+				text-align: center;
+				border-radius: 40px;
+				color: #fff;
+				margin: 5px 40px 5px 0;
+				font-size: 14px;
+			}
+		.name-steps>li:last-child{margin-right: 5px;}	
+		.name-steps>li.active{background: #5882f7;}
+		.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;}
+    .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 .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 suppressed because it is too large
+ 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;
+}
+

BIN
rst/fonts/iconfont.ttf


BIN
rst/images/60x60.gif


BIN
rst/images/Uploader.swf


BIN
rst/images/bg.png


BIN
rst/images/c_checkbox_off.png


BIN
rst/images/c_checkbox_on.png


BIN
rst/images/certificate1.jpg


BIN
rst/images/drag.png


BIN
rst/images/icons.png


BIN
rst/images/image.png


BIN
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 suppressed because it is too large
+ 18 - 0
rst/js/less.min.js


+ 47 - 383
rst/js/main.js

@@ -1,7 +1,11 @@
 var domanUrl = "//" + window.location.host;
-var base_path = "//test.iamberry.com";
-//var base_path = domanUrl+"/tooth";
-
+var base_path = "//test.iamberry.com/rst/wechat";
+window.addEventListener('pageshow', function(e) {
+	// 通过persisted属性判断是否存在 BF Cache
+	if(e.persisted) {
+		location.reload();
+	}
+});
 //ajax loading
 $(window).ajaxStart(function(){
     $(".covers").show();
@@ -9,36 +13,40 @@ $(window).ajaxStart(function(){
 $(window).ajaxStop(function(){
     $(".covers").hide();
 });
-
-mui.each(document.querySelectorAll('#footer-bar-tab .mui-tab-item'), function(index, el) {
-					el.addEventListener('tap', function() {
-						switch(index) {
-							case 0:
-								mui.openWindow({
-									url: 'index.html'
-								});
-								break;
-							case 1:
-								mui.openWindow({
-									url: 'pro-list.html'
-								});
-								break;
-							case 2:
-								mui.openWindow({
-									url: 'shopping-cart.html'
-								});
-								break;
-							case 3:
-								mui.openWindow({
-									url: 'my-center.html'
-								});
-								break;	
-							default:
-								break;
-						}
-					}, false);
-				});
-
+function formatDateFull(now)   {     
+	now = new Date(now);
+    var   year=now.getFullYear();     
+    var   month=now.getMonth()+1;  
+    if(month<10){
+    	month="0"+month;
+    }
+    var   date=now.getDate();
+    if(date<10){
+    	date="0"+date;
+    }
+    return year+"-"+month+"-"+date;     
+}
+function formatDateMinute(now)   {     
+	now = new Date(now);
+    var   year=now.getFullYear();     
+    var   month=now.getMonth()+1; 
+    if(month<10){
+    	month="0"+month;
+    }
+    var   date=now.getDate();
+    if(date<10){
+    	date="0"+date;
+    }
+    var   hour=now.getHours();
+    if(hour<10){
+    	hour="0"+hour;
+    }
+    var   Minute=now.getMinutes();
+    if(Minute<10){
+    	Minute="0"+Minute;
+    }
+    return year+"-"+month+"-"+date+" "+hour+":"+Minute;     
+}
 function time_before(t){
 	var minute=1000*60;
 	var hour=minute*60;
@@ -52,18 +60,14 @@ function time_before(t){
 	var dayC=diffValue/day;
 	var hourC=diffValue/hour;
 	var minC=diffValue/minute;
-	if(monthC>=1){
-		result=""+parseInt(monthC)+"月前";
-	}else if(weekC>=1){
-		result=""+parseInt(weekC)+"周前";
-	}else if(dayC>=1){
-		result=""+parseInt(dayC)+"天前";
+	if(dayC>=1){
+		result="距离今日还有"+parseInt(dayC)+"天";
 	}else if(hourC>=1){
-		result=""+parseInt(hourC)+"小时";
+		result="距离交付还有"+parseInt(hourC)+"小时";
 	}else if(minC>=2){
-		result=""+parseInt(minC)+"分钟";
+		result="距离交付还有"+parseInt(minC)+"分钟";
 	}else{
-		result="刚刚";
+		result="已超过交付时间";
 	}
 	return result;
 };
@@ -78,16 +82,6 @@ function dc(objectid) {
 	} else {
 		return false;
 	}
-};
-//生成随机字符,n长度
-function generateMixed(n) {
-	var chars = ['0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'];
-     var res = "";
-     for(var i = 0; i < n ; i ++) {
-         var id = Math.ceil(Math.random()*35);
-         res += chars[id];
-     }
-     return res;
 }
 function getParam(paramName) {
 	paramValue = "", isFound = !1;
@@ -98,334 +92,4 @@ function getParam(paramName) {
 		}
 	}
 	return paramValue == "" && (paramValue = null), paramValue
-};
-function getQueryString(name) { 
-var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i"); 
-var r = window.location.search.substr(1).match(reg); 
-if (r != null) return unescape(r[2]); return null; 
-} 
-// 对Date的扩展,将 Date 转化为指定格式的String   
-// 月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符,   
-// 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字)   
-// 例子:   
-// (new Date()).Format("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423   
-// (new Date()).Format("yyyy-M-d h:m:s.S")      ==> 2006-7-2 8:9:4.18   
-Date.prototype.format = function(fmt)   
-{ //author: meizz   
-  var o = {   
-    "M+" : this.getMonth()+1,                 //月份   
-    "d+" : this.getDate(),                    //日   
-    "h+" : this.getHours(),                   //小时   
-    "m+" : this.getMinutes(),                 //分   
-    "s+" : this.getSeconds(),                 //秒   
-    "q+" : Math.floor((this.getMonth()+3)/3), //季度   
-    "S"  : this.getMilliseconds()             //毫秒   
-  };   
-  if(/(y+)/.test(fmt))   
-    fmt=fmt.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length));   
-  for(var k in o)   
-    if(new RegExp("("+ k +")").test(fmt))   
-  fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length)));   
-  return fmt;   
-}
-//计算月份差
-function getMonthNumber(date1,date2){
-  //默认格式为"2010-01-01",根据自己需要改格式和方法
-  var d1=date1.replaceAll("-",''),d2=date2.replaceAll("-",'');
-
-  var year1 =  d1.substring(0,4);
-  var year2 =  d2.substring(0,4); 
-  var month1 = d1.substring(6,4);
-  var month2 = d2.substring(6,4);
-  var len=parseInt((year2-year1)*12+(month2-month1));
-  return len;
-}
- //替换所有要替换的文字
-String.prototype.replaceAll = function (str1,str2){
-var str = this; 
-var result = str.replace(eval("/"+str1+"/gi"),str2);
-return result;
-}
-/**
- ** 加法函数,用来得到精确的加法结果
- ** 说明:javascript的加法结果会有误差,在两个浮点数相加的时候会比较明显。这个函数返回较为精确的加法结果。
- ** 调用:accAdd(arg1,arg2)
- ** 返回值:arg1加上arg2的精确结果
- **/
-function accAdd(arg1, arg2) {
-    var r1, r2, m, c;
-    try {
-        r1 = arg1.toString().split(".")[1].length;
-    }
-    catch (e) {
-        r1 = 0;
-    }
-    try {
-        r2 = arg2.toString().split(".")[1].length;
-    }
-    catch (e) {
-        r2 = 0;
-    }
-    c = Math.abs(r1 - r2);
-    m = Math.pow(10, Math.max(r1, r2));
-    if (c > 0) {
-        var cm = Math.pow(10, c);
-        if (r1 > r2) {
-            arg1 = Number(arg1.toString().replace(".", ""));
-            arg2 = Number(arg2.toString().replace(".", "")) * cm;
-        } else {
-            arg1 = Number(arg1.toString().replace(".", "")) * cm;
-            arg2 = Number(arg2.toString().replace(".", ""));
-        }
-    } else {
-        arg1 = Number(arg1.toString().replace(".", ""));
-        arg2 = Number(arg2.toString().replace(".", ""));
-    }
-    return (arg1 + arg2) / m;
-}
-
-//给Number类型增加一个add方法,调用起来更加方便。
-Number.prototype.add = function (arg) {
-    return accAdd(arg, this);
-};
-/**
- ** 减法函数,用来得到精确的减法结果
- ** 说明:javascript的减法结果会有误差,在两个浮点数相减的时候会比较明显。这个函数返回较为精确的减法结果。
- ** 调用:accSub(arg1,arg2)
- ** 返回值:arg1加上arg2的精确结果
- **/
-function accSub(arg1, arg2) {
-    var r1, r2, m, n;
-    try {
-        r1 = arg1.toString().split(".")[1].length;
-    }
-    catch (e) {
-        r1 = 0;
-    }
-    try {
-        r2 = arg2.toString().split(".")[1].length;
-    }
-    catch (e) {
-        r2 = 0;
-    }
-    m = Math.pow(10, Math.max(r1, r2)); //last modify by deeka //动态控制精度长度
-    n = (r1 >= r2) ? r1 : r2;
-    return ((arg1 * m - arg2 * m) / m).toFixed(n);
-}
-
-// 给Number类型增加一个mul方法,调用起来更加方便。
-Number.prototype.sub = function (arg) {
-    return accSub(arg, this);
-};
-/** 
- ** 除法函数,用来得到精确的除法结果
- ** 说明:javascript的除法结果会有误差,在两个浮点数相除的时候会比较明显。这个函数返回较为精确的除法结果。
- ** 调用:accDiv(arg1,arg2)
- ** 返回值:arg1除以arg2的精确结果
- **/
-function accDiv(arg1, arg2) {
-    var t1 = 0, t2 = 0, r1, r2;
-    try {
-        t1 = arg1.toString().split(".")[1].length;
-    }
-    catch (e) {
-    }
-    try {
-        t2 = arg2.toString().split(".")[1].length;
-    }
-    catch (e) {
-    }
-    with (Math) {
-        r1 = Number((arg1 + "").replace(".", ""));
-        r2 = Number((arg2 + "").replace(".", ""));
-        return (r1 / r2) * pow(10, t2 - t1);
-    }
-}
-//给Number类型增加一个div方法,调用起来更加方便。
-Number.prototype.div = function (arg) {
-  return accDiv(this, arg);
-};
-/**
- ** 乘法函数,用来得到精确的乘法结果
- ** 说明:javascript的乘法结果会有误差,在两个浮点数相乘的时候会比较明显。这个函数返回较为精确的乘法结果。
- ** 调用:accMul(arg1,arg2)
- ** 返回值:arg1乘以 arg2的精确结果
- **/
-function accMul(arg1, arg2) {
-    var m = 0, s1 = arg1.toString(), s2 = arg2.toString();
-    try {
-        m += s1.split(".")[1].length;
-    }
-    catch (e) {
-    }
-    try {
-        m += s2.split(".")[1].length;
-    }
-    catch (e) {
-    }
-    return Number(s1.replace(".", "")) * Number(s2.replace(".", "")) / Math.pow(10, m);
-}
-// 给Number类型增加一个mul方法,调用起来更加方便。
-Number.prototype.mul = function (arg) {
-    return accMul(arg, this);
-};
-function formatDate(now)   {     
-	now = new Date(now);
-    var   year=now.getFullYear();     
-    var   month=now.getMonth()+1;
-    if(month<10){
-    	month="0"+month;
-    }
-    var   date=now.getDate();         
-    return   year+"年"+month+"月"+date+"日";     
-}
-function formatTime(msd) {  
-    var time = parseFloat(msd) /1000;  
-    if (null!= time &&""!= time) {  
-        if (time >60&& time <60*60) {  
-        	 time = parseInt(time /60.0) +"分"; 
-//          time = parseInt(time /60.0) +"分钟"+ parseInt((parseFloat(time /60.0) -  
-//          parseInt(time /60.0)) *60) +"秒";  
-        }else if (time >=60*60&& time <60*60*24) {  
-//          time = parseInt(time /3600.0) +"小时"+ parseInt((parseFloat(time /3600.0) -  
-//          parseInt(time /3600.0)) *60) +"分钟"+
-//          parseInt((parseFloat((parseFloat(time /3600.0) - parseInt(time /3600.0)) *60) -  
-//          parseInt((parseFloat(time /3600.0) - parseInt(time /3600.0)) *60)) *60) +"秒";  
-            time = parseInt(time /3600.0) +"时"+ parseInt((parseFloat(time /3600.0) -  
-            parseInt(time /3600.0)) *60) +"分"; 
-        }else {  
-            time = parseInt(time) +"分";  
-        }  
-    }else{  
-        time = "0分";  
-    }  
-    return time;  
-}
-function formatMinutes(msd) { 
-	// 参数msd (秒)
-    var time = parseFloat(msd);  
-    if (null!= time && ""!= time) {  
-        if (time >0&& time <60*60) {  
-        	 time = parseInt(time /60.0) +"分"; 
-        }else{  
-            time = parseInt(time /3600.0) +"时"+ parseInt((parseFloat(time /3600.0) -  
-            parseInt(time /3600.0)) *60) +"分"; 
-        }
-    }else{  
-        time = "0分"; 
-    }  
-    return time;  
-}
-function formatDay(now)   {     
-	now = new Date(now);    
-    var   month=now.getMonth()+1;  
-    if(month<10){
-    	month="0"+month;
-    }
-    var   date=now.getDate();
-    if(date<10){
-    	date="0"+date;
-    }
-    return month+"-"+date;     
-}
-function formatDateFull(now)   {     
-	now = new Date(now);
-    var   year=now.getFullYear();     
-    var   month=now.getMonth()+1;  
-    if(month<10){
-    	month="0"+month;
-    }
-    var   date=now.getDate();
-    if(date<10){
-    	date="0"+date;
-    }
-    return year+"-"+month+"-"+date;     
-}
-function formatDateMinute(now)   {     
-	now = new Date(now);
-    var   year=now.getFullYear();     
-    var   month=now.getMonth()+1; 
-    if(month<10){
-    	month="0"+month;
-    }
-    var   date=now.getDate();
-    if(date<10){
-    	date="0"+date;
-    }
-    var   hour=now.getHours();
-    if(hour<10){
-    	hour="0"+hour;
-    }
-    var   Minute=now.getMinutes();
-    if(Minute<10){
-    	Minute="0"+Minute;
-    }
-    return year+"-"+month+"-"+date+" "+hour+":"+Minute;     
-}
-function int_for_time(obj){
-	return obj+":00";
-}
-//替换指定传入参数的值,paramName为参数,replaceWith为新值
-function replaceParamVal(paramName,replaceWith) {
-    var oUrl = this.location.href.toString();
-    var re=eval('/('+ paramName+'=)([^&]*)/gi');
-    var nUrl = oUrl.replace(re,paramName+'='+replaceWith);
-    window.history.pushState({},0,nUrl); 
-}
-function isEmptyObject(e) {  
-    var t;  
-    for (t in e)  
-        return !1;  
-    return !0  
-}
-function gotoTop() {
-	mui('.my-scroll-wrapper').scroll().scrollTo(0,0,500);//500毫秒滚动到顶
-	//$(".mui-scroll").css({"transform":"translate3d(0px, 0px, 0px) translateZ(0px)","transition-duration":"100ms"});
-};
-function gotoBottom(){
-	mui('.my-scroll-wrapper').scroll().scrollToBottom();//500毫秒滚动到底部
-}
-$(document).on('tap', '.go_pro_list', function() {
-	var positions='';
-	if(typeof($(this).attr("pos"))!="undefined"){
-		positions=$(this).attr("pos");
-		location.href="pro-list.html?pos="+positions;
-	}else{
-		location.href="pro-list.html";
-	}
-});
-$(document).on('tap', '.icon-shouye', function() {
-	location.href="index.html";
-});
-//回到顶部
-function gotoTop(acceleration, stime) {
-	acceleration = acceleration || 0.1;
-	stime = stime || 10;
-	var x1 = 0,
-		y1 = 0,
-		x2 = 0,
-		y2 = 0,
-		x3 = 0,
-		y3 = 0;
-	if (document.documentElement) {
-		x1 = document.documentElement.scrollLeft || 0;
-		y1 = document.documentElement.scrollTop || 0;
-	}
-	if (document.body) {
-		x2 = document.body.scrollLeft || 0;
-		y2 = document.body.scrollTop || 0;
-	}
-	var x3 = window.scrollX || 0;
-	var y3 = window.scrollY || 0;
-
-	var x = Math.max(x1, Math.max(x2, x3));
-	var y = Math.max(y1, Math.max(y2, y3));
-
-	var speeding = 1 + acceleration;
-	window.scrollTo(Math.floor(x / speeding), Math.floor(y / speeding));
-
-	if (x > 0 || y > 0) {
-		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 suppressed because it is too large
+ 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 suppressed because it is too large
+ 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"]=base_path+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"]=base_path+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 suppressed because it is too large
+ 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);	
+		} 
+	}
+};

+ 888 - 0
rst/pro_order_details.html

@@ -0,0 +1,888 @@
+<!DOCTYPE html>
+<html>
+
+	<head>
+		<meta charset="utf-8">
+		<meta name="viewport" content="width=device-width, initial-scale=1,maximum-scale=1, user-scalable=no">
+		<meta name="apple-mobile-web-app-capable" content="yes">
+		<meta name="apple-mobile-web-app-status-bar-style" content="black">
+		<title>订单审批</title>
+		<link rel="stylesheet" type="text/css" href="//css.iamberry.com/watero/css/mui.min.css?v=2016101701" />
+		<link rel="stylesheet" type="text/css" href="//css.iamberry.com/watero/css/iconfont.css?v=2016101701" />
+		<link rel="stylesheet" type="text/css" href="css/style.css" />
+		<style>
+			html,body {
+				background-color: #fff;
+			}
+			.mui-views,
+			.mui-view,
+			.mui-pages,
+			.mui-page,
+			.mui-page-content {
+				position: absolute;
+				left: 0;
+				right: 0;
+				top: 0;
+				bottom: 0;
+				width: 100%;
+				height: 100%;
+				background-color: #efeff4;
+			}
+			.mui-pages {
+				top: 0;
+				height: auto;
+			}
+			.mui-scroll-wrapper,
+			.mui-scroll {
+				background-color: #fff;
+			}
+			.mui-page.mui-transitioning {
+				-webkit-transition: -webkit-transform 300ms ease;
+				transition: transform 300ms ease;
+			}
+			.mui-page-left {
+				-webkit-transform: translate3d(0, 0, 0);
+				transform: translate3d(0, 0, 0);
+			}
+			.mui-ios .mui-page-left {
+				-webkit-transform: translate3d(-20%, 0, 0);
+				transform: translate3d(-20%, 0, 0);
+			}
+			.mui-navbar {
+				position: fixed;
+				right: 0;
+				left: 0;
+				z-index: 10;
+				height: 44px;
+				background-color: #f7f7f8;
+			}
+			.mui-navbar .mui-bar {
+				position: absolute;
+				background: transparent;
+				text-align: center;
+			}
+			.mui-android .mui-navbar-inner.mui-navbar-left {
+				opacity: 0;
+			}
+			.mui-ios .mui-navbar-left .mui-left,
+			.mui-ios .mui-navbar-left .mui-center,
+			.mui-ios .mui-navbar-left .mui-right {
+				opacity: 0;
+			}
+			.mui-navbar .mui-btn-nav {
+				-webkit-transition: none;
+				transition: none;
+				-webkit-transition-duration: .0s;
+				transition-duration: .0s;
+			}
+			.mui-navbar .mui-bar .mui-title {
+				display: inline-block;
+				width: auto;
+			}
+			.mui-page-shadow {
+				position: absolute;
+				right: 100%;
+				top: 0;
+				width: 16px;
+				height: 100%;
+				z-index: -1;
+				content: '';
+			}
+			.mui-page-shadow {
+				background: -webkit-linear-gradient(left, rgba(0, 0, 0, 0) 0, rgba(0, 0, 0, 0) 10%, rgba(0, 0, 0, .01) 50%, rgba(0, 0, 0, .2) 100%);
+				background: linear-gradient(to right, rgba(0, 0, 0, 0) 0, rgba(0, 0, 0, 0) 10%, rgba(0, 0, 0, .01) 50%, rgba(0, 0, 0, .2) 100%);
+			}
+			.mui-navbar-inner.mui-transitioning,
+			.mui-navbar-inner .mui-transitioning {
+				-webkit-transition: opacity 300ms ease, -webkit-transform 300ms ease;
+				transition: opacity 300ms ease, transform 300ms ease;
+			}
+			.mui-page {
+				display: none;
+			}
+			.mui-pages .mui-page {
+				display: block;
+			}
+			
+			.mui-table-view span.mui-pull-right {
+				color: #999;
+			}
+			.mui-table-view-divider {
+				background-color: #efeff4;
+				font-size: 14px;
+			}
+			.mui-table-view-divider:before,
+			.mui-table-view-divider:after {
+				height: 0;
+			}
+			.head {
+				height: 40px;
+			}
+			#head {
+				line-height: 40px;
+			}
+			.head-img {
+				width: 40px;
+				height: 40px;
+			}
+			#head-img1 {
+				position: absolute;
+				bottom: 10px;
+				right: 40px;
+				width: 40px;
+				height: 40px;
+			}
+			.update {
+				font-style: normal;
+				color: #999999;
+				margin-right: -25px;
+				font-size: 15px
+			}
+			.mui-fullscreen {
+				position: fixed;
+				z-index: 20;
+				background-color: #000;
+			}
+			.mui-ios .mui-navbar .mui-bar .mui-title {
+				position: static;
+			}
+.mui-content{padding-bottom: 60px;background-color: #fff;}
+ul{list-style: none;margin: 0;padding: 0;}
+#pro-menu{top: 0;border: 0; border-bottom: 1px solid rgba(0,0,0,.1);border-radius: 0;padding:0;}
+#pro-menu .mui-control-item{color: #333;border-left: 0;position: relative;height: 44px;line-height: 44px;font-size: 16px;}
+#pro-menu .mui-control-item:after{content: '';position: absolute;left: 0; width:100%;height: 1px;background-color: transparent;bottom: 0;}
+#pro-menu .mui-control-item:first-child{border-left-width: 0px;}
+/*#pro-menu .mui-control-item:last-child:after{width: 4em;}*/
+#pro-menu .mui-control-item.mui-active{background-color: #fff;}
+#pro-menu .mui-control-item.mui-active:after{background-color: #63ccde;}
+
+.my-table-view-order>li{position: relative;padding-bottom: 0;}
+.my-table-view-order>li 
+.my-table-view-order .mui-col-xs-6{font-size: 15px !important;}
+.my-table-view-order>li:after{display: none;}
+.my-table-view-order>li:last-child:after{display: none;}
+    .no-after:before,.no-after:after{display: none;}
+		.pro-cp-list{position: relative;padding-left: 3.5em;}
+		.pro-cp-list:before{content: '采购产品:';position: absolute;left: 0;top: 0;font-size: 12px;color: #999;}
+		.pro-cp-list>li{font-size: 12px;color: #999;}
+		.my-confirm-btn{border-radius: 20px;border: 1px solid #63ccde;color: #63ccde;padding: 6px 14px;}
+		.my-confirm-btn:active{background-color: #63ccde !important;color: #fff !important;}
+		.pro-li-tit{margin-bottom: 10px;color: #5882f7;}
+		.top-center{vertical-align:top !important;}
+		.my-table-view-order>li .my-view-no:after,.my-table-view-order>li .my-view-no:before{display: none;}
+		#pullrefresh_list{top: 45px;}
+		.mui-pull-caption{font-size: 12px !important;}
+		.cl-green{color: #4dc572;}
+		.add-btn{color: #63ccde;border: 1px solid #63ccde;background-color: #fff; width: 60px;height: 60px;text-align: center;line-height: 80px;border-radius: 60px; position: fixed;bottom: 30px;right: 12px;z-index: 3;}
+		.add-btn:after{content: '\e468';font-family: Muiicons;
+    font-size: 28px;
+    font-weight: 700;
+    font-style: normal;
+    line-height: 1;
+    display: inline-block;
+    text-decoration: none;
+    -webkit-font-smoothing: antialiased;position: fixed;bottom: 55px;right: 28px;}
+    .img-list>img{margin:5px 10px 5px 0;width: 65px; max-width: 65px;}
+    #textarea{font-size: 14px;margin-bottom: 0;}
+    .buy-footer {position: fixed;bottom: 0;left: 0;height: 50px;background-color: #5882f7;width: 100%;padding: 0;display: table;text-align: center;box-shadow: 0 0 0 #000;}
+.buy-footer>div:first-child {display: table-cell;width: 40%;border-top: 1px solid #55c0dc;vertical-align: middle;}
+.buy-footer>div:first-child img{width: 80%;padding-top: 3px;}
+.buy-footer>div:nth-of-type(2) {display: table-cell;width: 30%;background: #a6c8ce;font-size: 18px;color: #fff;vertical-align: middle;}
+.buy-footer>div:last-child {display: table-cell;width: 30%;background: #55c0dc;font-size: 18px;color: #fff;vertical-align: middle;}
+.buy-footer.mui-bar .mui-btn{top: 0;line-height: 50px;padding: 0;}
+.my-btn-hand{display:table-cell;width: 50%;height: 50px;background-color: #eef2fe;color: #5882f7;border: 0;border-radius: 0;font-size: 18px;}
+.my-btn-send{display:table-cell;width: 100%; height: 50px;background-color: #eef2fe;color: #5882f7;border: 0;border-radius: 0;font-size: 18px;}
+.my-btn-hand.active,.my-btn-send.active{background-color: #5882f7;color: #fff;} 
+.my-btn-hand:active,.my-btn-send:active{background-color: #5882f7 !important;color: #fff !;}
+			article, section, time, aside {
+				display: block;
+			}
+			.point-time {
+				content: "";
+				position: absolute;
+				width: 50px;
+				height: 50px;
+				line-height: 50px;
+				top: 0px;
+				left: 10%;
+				background: #5882f7;
+				margin-left: -23px;
+				border-radius: 50%;
+				box-shadow: 0 0 0 5px #fff;
+				text-align: center;
+				color: #fff;
+				font-size: 14px;
+			}
+
+			.content {
+				width: 100%;
+				margin: 0 auto;
+			}
+			.content article {
+				position: relative;
+			}
+			.content article > h3 {
+				width: 100%;
+				height: 20px;
+				line-height: 20px;
+				text-align: left;
+				text-indent: 3%;
+				font-size: 1.4em;
+				color: #fff;
+				padding: 10px 0 20px;
+				background-color: #dd6d01;
+			}
+			.content article section {
+				padding: 0;
+				position: relative;
+			}
+			.content article section:before {
+				content: "";
+				width: 2px;
+				top: 17px;
+				bottom: 8px;
+				left: 10%;
+				background: #bbb;
+				position: absolute;
+			}
+			.content article section:after{
+				position: absolute;
+				width: 6px;
+    height: 6px;
+    content: "";
+    display: inline-block;
+    border-top: 2px solid #bbb;
+    border-right: 2px solid #bbb;
+      transform: rotate(135deg);
+    bottom: 7px;
+    left: 10%;
+    margin-left: -3px;
+			}
+			.content article section:last-child:before,.content article section:last-child:after{
+				display: none;
+			}
+			.content article section time {
+				width: 25%;
+				display: block;
+				position: absolute;
+			}
+			.content article section time > span {
+				display: block;
+				text-align: center;
+			}
+			.content article section aside {
+				color: #3a3a38;
+				margin-left: 20%;
+				padding-bottom: 15px;
+				padding-top: 2px;
+			}
+			.content article section aside .things{color:#222;margin-top: 3px;margin-bottom: 3px;}
+			.content article section aside .things.action{color:#222;margin-top: 12px;}
+			.content article section .brief {
+				color: #9f9f9f;
+				word-break: break-all;
+			}
+			
+			.app-show{display: none;}
+			.app-hide{display: block;}
+		</style>
+		<script type="text/javascript" src="//res.wx.qq.com/open/js/jweixin-1.1.0.js"></script>
+		<script>
+		//屏蔽分享
+		document.addEventListener('WeixinJSBridgeReady', function onBridgeReady() {
+			WeixinJSBridge.call('hideOptionMenu');
+		});
+		</script>
+	</head>
+
+	<body class="mui-fullscreen">
+	<!-- 加载ing begin-->
+		<div class="loading covers">
+			<div class="loading-bj"></div>
+			<p>正在加载...</p>
+		</div>
+	<!-- 加载ing end -->	
+	<!--页面主结构开始-->
+		<div id="app" class="mui-views">
+			<div class="mui-view">
+				<div class="mui-navbar" style="display: none;">
+				</div>
+				<div class="mui-pages">
+				</div>
+			</div>
+		</div>
+		<!--页面主结构结束-->
+		<!--单页面开始-->
+		<div id="setting" class="mui-page">
+			<!--页面主内容区开始-->
+			<div class="mui-navbar-inner mui-bar mui-bar-nav" style="display: none;">
+			</div>
+			<div class="mui-page-content">
+				<div class="mui-scroll-wrapper">
+					<div class="mui-scroll">
+							<nav class="mui-bar mui-bar-tab buy-footer">
+		<!--<button type="button" class="mui-btn my-btn-hand">驳回审批</button>
+		<button type="button" class="mui-btn my-btn-hand active">审批通过</button>-->
+		<!--<button type="button" class="mui-btn my-btn-hand">评论</button>
+		<button type="button" class="mui-btn my-btn-hand active">撤销</button>-->
+		<!--<button type="button" class="mui-btn my-btn-send active">评论</button>-->
+		<!--<button type="button" class="mui-btn my-btn-send active">提交申请</button>-->
+	</nav>
+	<!--容器-->
+		<div class="mui-content">
+				<!--列表-->
+				<ul class="my-table-view-order">
+					<li>
+			<ul class="mui-table-view mui-grid-view my-view-no">
+				<li class="mui-table-view-cell mui-media mui-col-xs-12 mui-text-left">
+		        	<h6 class="cl-red" id="approvalStatusDetails"></h6>
+		        </li>
+		        <li class="mui-table-view-cell mui-media mui-col-xs-12 mui-text-left">
+		            <a>
+		                <h5>申请人:<span id="approvalApplicant"></span></h5>
+		                <h5>申请时间:<span id="approvalCreateTime"></span></h5>
+		                <h5>订单名称:<span id="orderName"></span></h5>
+		                <h5 class="app-show">订单编号:<span id=""></span></h5>
+		                <h5 class="app-show">提货原因:<span id="applyPickReason"></span></h5>
+		            </a>
+		        </li>
+		   </ul>
+		  </li>
+		  <li>
+			<ul class="mui-table-view mui-grid-view my-view-no">
+		        <li class="mui-table-view-cell mui-media mui-col-xs-12 mui-text-left">
+		            <a>
+		                <div class="pro-li-tit">客户信息</div>
+		                <h5>公司名称:<span id="companyName"></span></h5>
+		                <h5>联系人:<span id="contactName"></span></h5>
+		                <h5>联系电话:<span id="contactTel"></span></h5>
+		            </a>
+		        </li>
+		   </ul>
+		  </li>
+		  <li>
+			<ul class="mui-table-view mui-grid-view my-view-no">
+		        <li class="mui-table-view-cell mui-media mui-col-xs-12 mui-text-left">
+		            <a>
+		                <div class="pro-li-tit">订单信息</div>
+		                <ul class="my-order-view">
+		                	<!--<li>
+		                		 <ul>
+		                	<li><span class="cl-blue">产品明细 1</span></li>
+		                	<li>产品名称:优尼雅净水机</li>
+		                	<li>产品品牌:美国watero</li>
+		                	<li>产品型号:wb-1</li>
+		                	<li>产品颜色:黑色</li>
+		                	<li>产品数量:100台</li>
+		                	<li>箱 / 套数:100</li>
+		                </ul>
+		                	</li>-->
+		                </ul>
+		               
+		            </a>
+		        </li>
+		   </ul>
+		  </li>
+		  <li class="app-hide">
+			<ul class="mui-table-view mui-grid-view my-view-no">
+		        <li class="mui-table-view-cell mui-media mui-col-xs-12 mui-text-left">
+		            <a>
+		                <div class="pro-li-tit">交付信息</div>
+		                <h5>期望交付:<span id="productionDeliveryDate"></span></h5>
+		                <h5>交付方式:<span id="productionDeliveryWay"></span></h5>
+		                <h5>交付备注:<span id="productionDeliveryDesc"></span></h5>
+		            </a>
+		        </li>
+		   </ul>
+		  </li>
+		  <li class="app-hide">
+			<ul class="mui-table-view mui-grid-view my-view-no">
+		        <li class="mui-table-view-cell mui-media mui-col-xs-12 mui-text-left">
+		            <a>
+		                <div class="pro-li-tit">包装说明</div>
+		                <h5 id="productionPackingWay"></h5>
+		            </a>
+		        </li>
+		   </ul>
+		  </li>
+		  <li class="app-hide">
+			<ul class="mui-table-view mui-grid-view my-view-no">
+		        <li class="mui-table-view-cell mui-media mui-col-xs-12 mui-text-left">
+		            <a>
+		                <div class="pro-li-tit">合同信息</div>
+		                <h5>合同名称:<span id="contractName"></span></h5>
+		            </a>
+		        </li>
+		         <li class="mui-table-view-cell mui-media mui-col-xs-3 mui-text-left">
+		         	<h5>合同图片:</h5>
+		         </li>
+		         <li class="mui-table-view-cell mui-media mui-col-xs-9 mui-text-left img-list" id="img-type1">
+		         	<!--<img width="60px" src="images/certificate1.jpg" />-->
+		         </li>
+		         <li class="mui-table-view-cell mui-media mui-col-xs-3 mui-text-left img-type2">
+		         	<h5>合同附件:</h5>
+		         </li>
+		         <li class="mui-table-view-cell mui-media mui-col-xs-9 mui-text-left img-list" id="img-type2">
+		         	<!--<img width="60px" src="images/certificate1.jpg" />-->
+		         </li>
+		   </ul>
+		  </li>
+		  <li class="app-show">
+			<ul class="mui-table-view mui-grid-view my-view-no">
+		        <li class="mui-table-view-cell mui-media mui-col-xs-12 mui-text-left">
+		            <a>
+		                <div class="pro-li-tit">提货凭证</div>
+		            </a>
+		        </li>
+		         <li class="mui-table-view-cell mui-media mui-col-xs-12 mui-text-left img-list" id="img-type3">
+		         	<!--<img src="images/certificate1.jpg" />-->
+		         </li>
+		   </ul>
+		  </li>
+		   <li>
+			<ul class="mui-table-view mui-grid-view my-view-no">
+		        <li class="mui-table-view-cell mui-media mui-col-xs-12 mui-text-left">
+		            <a>
+		                <div class="pro-li-tit">订单备注</div>
+		                <h5 id="approvalRemark"></h5>
+		            </a>
+		        </li>
+		   </ul>
+		  </li>
+		   <li>
+		   	<ul class="mui-table-view mui-grid-view my-view-no">
+		   		<li class="mui-table-view-cell mui-media mui-col-xs-12 mui-text-left">
+		   			<div class="pro-li-tit">审核流程<span class="mui-h6">(已预设流程)</span></div>
+		   		</li>
+		        <li class="mui-table-view-cell mui-media mui-col-xs-12 mui-text-left">
+		        	
+		        	<div class="container">
+				<div class="content">
+					<article class="approval-content">
+						<!--<section>
+							<span class="point-time">张三</span>
+							<aside>
+								<p class="things">
+									张三:<span class="cl-green">审核通过</span><span class=" mui-h6 mui-pull-right">2018-08-02 12:00</span>
+								</p>
+								<p class="brief">
+									请生产部门尽快完成,并给配送,You reached 500 followers on Twitter,New job position as Senior Designer at Fantasy Interactive
+								</p>
+							</aside>
+						</section>-->
+					</article>
+				</div>
+		</div>
+		        	
+				</li>
+		         </ul>
+		   </li>
+
+		</ul>
+	</div>
+					</div>
+				</div>
+			</div>
+			<!--页面主内容区结束-->
+		</div>
+		<!--单页面结束-->
+		
+		<div id="account" class="mui-page">
+			<div class="mui-navbar-inner mui-bar mui-bar-nav">
+				<button type="button" class="mui-left mui-action-back mui-btn  mui-btn-link mui-btn-nav mui-pull-left">
+					<span class="mui-icon mui-icon-left-nav"></span>设置
+				</button>
+				<h1 class="mui-center mui-title">账号与安全</h1>
+			</div>
+			<div class="mui-page-content">
+				<div class="mui-scroll-wrapper">
+					<div class="mui-scroll">
+						<ul class="mui-table-view">
+							<li class="mui-table-view-cell">
+								<a id="head" class="mui-navigate-right">头像
+								<span class="mui-pull-right head">
+									<img class="head-img mui-action-preview" id="head-img1" src=""/>
+								</span>
+							</a>
+							</li>
+							<li class="mui-table-view-cell">
+								<a>姓名<span class="mui-pull-right">Hbuilder</span></a>
+							</li>
+							<li class="mui-table-view-cell">
+								<a>HBuilder账号<span class="mui-pull-right">hbuilder@dcloud.io</span></a>
+							</li>
+						</ul>
+						<ul class="mui-table-view">
+							<li class="mui-table-view-cell">
+								<a>QQ号<span class="mui-pull-right">88888888</span></a>
+							</li>
+							<li class="mui-table-view-cell">
+								<a>手机号<span class="mui-pull-right">18601234567</span></a>
+							</li>
+							<li class="mui-table-view-cell">
+								<a>邮箱地址<span class="mui-pull-right">hbuilder@dcloud.io</span></a>
+							</li>
+						</ul>
+					</div>
+				</div>
+			</div>
+		</div>
+
+		<script src="js/mui.min.js"></script>
+		<script src="js/mui.view.js "></script>
+		<script src="js/jquery-2.1.1.min.js"></script>
+		<script src="js/main.js"></script>
+		<script>
+		var approvalId=getParam("id"),type=getParam("type"),approvalType=getParam("approvalType"),adminId='',contactName='';	
+		mui.init();
+		//初始化单页view
+		var viewApi = mui('#app').view({
+			defaultPage: '#setting'
+		});
+		//初始化单页的区域滚动
+		mui('.mui-scroll-wrapper').scroll();
+		mui.ready(function() {
+			$.ajax(base_path + '/approval/getApprovalInfo?dates=' + new Date().getTime(), {
+					data: {
+						"approvalId": approvalId
+					},
+					dataType: 'json',
+					xhrFields: {
+						withCredentials: true
+					},
+					crossDomain: true,
+					type: 'post',
+					timeout: 15000,
+					success: function(dt) {
+						if(dt.isRedirect) {
+							location.href = dt.redirectURL;
+						} else {
+							if(dt.returnCode == "200") {
+								console.log(dt);
+								var appro=dt.returnMsg.approvalInfo.approvalProduction;
+								$("#approvalStatusDetails").text(dt.returnMsg.approvalInfo.approvalStatusDetails);
+								$("#approvalApplicant").text(dt.returnMsg.approvalInfo.approvalApplicant);
+								$("#approvalCreateTime").text(formatDateMinute(dt.returnMsg.approvalInfo.approvalCreateTime));
+								
+								var table=document.body.querySelector(".my-order-view");
+								var str='';
+								if(approvalType==1){
+								$("#orderName").text(appro.orderName);
+								$("#contactName").text(appro.contactName);
+								$("#companyName").text(appro.companyName);
+								$("#contactTel").text(appro.contactTel);
+								contactName=appro.contactName;
+								mui(appro.listProductionItem).each(function (index, el) {
+									var li = document.createElement('li');
+									li.innerHTML='<ul><li><span class="cl-blue">产品明细 '+(index+1)+'</span></li><li>产品名称:'+this.itemProductName+'</li><li>产品品牌:'+this.itemBrandName+'</li><li>产品型号:'+this.itemProductModel+'</li><li>产品颜色:'+this.itemColorName+'</li><li>产品数量:'+this.itemProductNum+this.itemProductUnit+'</li><li>箱 / 套数:'+this.itemProductBoxNumber+'</li></ul>';
+									table.appendChild(li);
+								});
+								if(appro.productionDeliveryDate<new Date().getMinutes()){
+									str=time_before(appro.productionDeliveryDate);
+								}else{
+									str="已超过交付时间";
+								}
+								$("#productionDeliveryDate").html(formatDateFull(appro.productionDeliveryDate)+'<span class="mui-h6">('+str+')</span>');
+								$("#productionDeliveryWay").text(appro.productionDeliveryWay);
+								$("#productionDeliveryDesc").text(appro.productionDeliveryDesc);
+								$("#productionPackingWay").text(appro.productionPackingWay);
+								$("#contractName").text(appro.contractName);
+								mui(dt.returnMsg.approvalInfo.listProductionContract).each(function (index, el) {
+									if(this.contractType==1){
+										$("#img-type1").append('<img src="'+ this.contractUrl+'">');
+									}else{
+										$("#img-type2").append('<img src="'+ this.contractUrl+'">');
+									}
+									if($("#img-type2 img").length<1){
+										$("#img-type2,.img-type2").hide();
+									}
+								});
+								}else{
+									$(".app-hide").hide();
+									$(".app-show").show();
+									$("#applyPickReason").text(dt.returnMsg.approvalInfo.approvalApplyPick.applyPickReason);
+									$("#orderName").text(dt.returnMsg.approvalInfo.approvalName);	
+								$("#contactName").text(dt.returnMsg.approvalInfo.approvalApplyPick.applyPickName);
+//								$("#companyName").text();公司名称
+								$("#contactTel").text(dt.returnMsg.approvalInfo.approvalApplyPick.applyPickTel);
+								contactName=dt.returnMsg.approvalInfo.approvalApplyPick.applyPickName;
+								mui(dt.returnMsg.approvalInfo.approvalApplyPick.listApplyPickItem).each(function (index, el) {
+									var li = document.createElement('li');
+									li.innerHTML='<ul><li><span class="cl-blue">产品明细 '+(index+1)+'</span></li><li>产品名称:'+this.itemProductName+'</li><li>产品品牌:写死的</li><li>产品型号:'+this.itemProductModel+'</li><li>产品颜色:'+this.itemColorName+'</li><li>产品数量:'+this.itemProductNum+'台写死的</li><li>箱 / 套数:999写死的</li></ul>';
+									table.appendChild(li);
+								});
+								str=time_before(dt.returnMsg.approvalInfo.approvalApplyPick.applyPickCreateTime);
+								mui(dt.returnMsg.approvalInfo.listProductionContract).each(function (index, el) {
+									$("#img-type3").append('<img src="'+ this.contractUrl+'">');
+								});
+								}
+								adminId=dt.returnMsg.approvalInfo.adminId;
+								
+								
+								//1:待审批2:已审批3:已驳回4:已完成部分审批5:待入库6:部分入库7:全部入库8:已发货9:已撤销
+								$("#approvalRemark").text(dt.returnMsg.approvalInfo.approvalRemark);
+								if(type==1){
+									switch (dt.returnMsg.approvalInfo.approvalStatus){
+									case 1:
+										if(dt.returnMsg.adminid==dt.returnMsg.approvalInfo.adminId){
+											$(".buy-footer").html('<button type="button" class="mui-btn my-btn-hand active" status="3">撤销</button>');
+										}else{
+											$(".buy-footer").hide();
+										}
+										break;
+									case 2:
+										$(".buy-footer").hide();
+										break;	
+									case 3:
+									if(dt.returnMsg.adminid==dt.returnMsg.approvalInfo.adminId){
+										$(".buy-footer").html('<button type="button" class="mui-btn my-btn-hand active" status="3">撤销</button>');
+									}else{
+										$(".buy-footer").hide();
+									}
+										break;	
+									case 4:
+										$(".buy-footer").hide();
+										break;
+									case 5:
+										$(".buy-footer").hide();
+										break;
+									case 6:
+										$(".buy-footer").hide();
+										break;
+									case 7:
+										$(".buy-footer").hide();
+										break;
+									case 8:
+										if(dt.returnMsg.adminid==dt.returnMsg.approvalInfo.adminId){
+											$(".buy-footer").html('<button type="button" class="mui-btn my-btn-hand" status="7">已发货</button>');
+										}else{
+											$(".buy-footer").hide();
+										}
+										break;
+									case 9:
+										if(dt.returnMsg.adminid==dt.returnMsg.approvalInfo.adminId){
+											$(".buy-footer").html('<button type="button" class="mui-btn my-btn-hand" status="9">重新填写</button>');
+										}else{
+											$(".buy-footer").hide();
+										}
+										break;	
+									default:
+										break;
+								}
+								}else if(type==2){
+									console.log(dt.returnMsg.approvalInfo.listHistoricalRecord)
+									switch (dt.returnMsg.approvalInfo.approvalStatus){
+									case 1:
+									if(dt.returnMsg.adminid==dt.returnMsg.approvalInfo.listHistoricalRecord.adminId){
+										$(".buy-footer").html('<a class="mui-btn my-btn-hand" status="2">驳回审批</a><a class="mui-btn my-btn-hand active" status="1">审批通过</a>');
+									}else{
+										$(".buy-footer").hide();
+									}
+										break;
+									case 2:
+									if(dt.returnMsg.adminid==dt.returnMsg.approvalInfo.listHistoricalRecord.adminId){
+										$(".buy-footer").html('<button type="button" class="mui-btn my-btn-hand active" status="4">评论</button>');
+									}else{
+										$(".buy-footer").hide();
+									}
+										break;	
+									case 3:
+									if(dt.returnMsg.adminid==dt.returnMsg.approvalInfo.listHistoricalRecord.adminId){
+										$(".buy-footer").html('<button type="button" class="mui-btn my-btn-hand active" status="4">评论</button>');
+									}else{
+										$(".buy-footer").hide();
+									}
+										break;	
+									case 4:
+									if(dt.returnMsg.adminid==dt.returnMsg.approvalInfo.listHistoricalRecord.adminId){
+										$(".buy-footer").html('<button type="button" class="mui-btn my-btn-hand active" status="4">评论</button>');
+									}else{
+										$(".buy-footer").hide();
+									}
+										break;
+									case 5:
+									if(dt.returnMsg.adminid==dt.returnMsg.approvalInfo.listHistoricalRecord.adminId){
+										$(".buy-footer").html('<button type="button" class="mui-btn my-btn-hand" status="4">评论</button><a href="#account" class="mui-btn my-btn-hand active" status="5">确认入库</a>');
+									}else{
+										$(".buy-footer").hide();
+									}
+										break;
+									case 6:
+									if(dt.returnMsg.adminid==dt.returnMsg.approvalInfo.listHistoricalRecord.adminId){
+										$(".buy-footer").html('<button type="button" class="mui-btn my-btn-hand" status="4">评论</button><a href="#account" class="mui-btn my-btn-hand active" status="5">确认入库</a>');
+									}else{
+										$(".buy-footer").hide();
+									}
+										break;
+									case 7:
+									if(dt.returnMsg.adminid==dt.returnMsg.approvalInfo.listHistoricalRecord.adminId){
+										$(".buy-footer").html('<button type="button" class="mui-btn my-btn-hand" status="4">评论</button><button type="button" class="mui-btn my-btn-hand active" status="6">入库记录</button>');
+									}else{
+										$(".buy-footer").hide();
+									}
+										break;
+									case 8:
+									if(dt.returnMsg.adminid==dt.returnMsg.approvalInfo.listHistoricalRecord.adminId){
+										$(".buy-footer").html('<button type="button" class="mui-btn my-btn-hand" status="7">已发货</button>');
+									}else{
+										$(".buy-footer").hide();
+									}
+										break;
+									case 9:
+									if(dt.returnMsg.adminid==dt.returnMsg.approvalInfo.historicalRecord.adminId){
+										$(".buy-footer").html('<button type="button" class="mui-btn my-btn-hand" status="8">已撤销</button>');
+									}else{
+										$(".buy-footer").hide();
+									}
+										break;	
+									default:
+										break;
+								}
+								}else{
+									
+								}
+								
+								var tb=document.body.querySelector(".approval-content");
+								mui(dt.returnMsg.approvalInfo.listHistoricalRecord).each(function (index, el) {
+									var th=this,li=document.createElement("section"),str='',name=th.adminName,status='',action='action';
+									if(typeof(th.listProcessInfo)!="undefined"){
+										mui(th.listProcessInfo).each(function (index, el) {
+											str+='<p class="brief">'+this.processDesc+'</p>';
+										});
+									}else{
+										str+='<p class="brief">&nbsp;</p>';
+									}
+									if(name.length>2){
+										name=name.substring(name.length-2);
+									}
+									switch (th.recordState){
+										case 1:
+										status='<span class="cl-red">待审核</span>';
+											break;
+										case 2:
+										status='<span class="cl-green">审核通过</span>';
+											break;
+										case 3:
+										status='<span class="cl-red">驳回申请</span>';
+											break;	
+										default:
+											break;
+									}
+									var time='';
+									if(this.recordState!=1){
+										time=formatDateMinute(th.approvalTime);
+									}
+//									if(type==1){
+//										if(index==0){
+//											action="action";
+//										}else{
+//											action=''
+//										}
+//									}else if(type==2){
+//										if(th.taskId==dt.returnMsg.historicalRecord.taskId){
+//											action='action';
+//										}else{
+//											action=''
+//										}
+//									}else{
+//										
+//									}
+									li.innerHTML='<span class="point-time">'+name+'</span><aside><p class="things '+action+'">'+th.adminName+':'+status+'<span class=" mui-h6 mui-pull-right">'+time+'</span></p>'+str+'</aside>';
+									console.log(li)
+									tb.appendChild(li);
+								});
+								
+							}else{
+								mui.alert("获取数据失败!");
+							}
+						}
+					},
+					error: function(xhr, type, errorThrown) {
+						console.log(xhr);
+						mui.alert("获取数据失败!网络错误");
+					}
+			});
+			$(".loading").hide().css("opacity", "0");		
+		});	
+		$(document).on('tap','.my-btn-hand',function(){
+			console.log("222222")
+			var th=$(this),status='',txt='';
+			var parameter = {};
+			switch (th.attr("status")){
+				case "1":
+				status=1;
+					break;
+				case "2":
+				status=2;
+					break;	
+				case "3":
+				status=3;
+					break;	
+				case "4":
+				status=4;
+				var btnArray = ['取消', '提交'];
+				mui.prompt(' ', '请输入评论内容', '评论', btnArray, function(e) {
+					if (e.index == 1) {
+						txt=e.value;
+					}
+				})
+					break;	
+				case "5":
+				
+					break;	
+				case "6":
+				location.href='';
+				    break;
+				case "7":
+					break;	
+				case "8":
+					break;	
+				case "9":
+				location.href='';
+					break;	
+				default:
+					break;
+			}
+			if(status!=''){
+				parameter["status"]=status;
+				parameter["approvalId"]=approvalId;
+				parameter["approvalType"]=approvalType;
+				parameter["adminId"]=adminId;
+				parameter["contactName"]=contactName;
+				parameter["approvalDetails"]=txt;
+				console.log(parameter)
+				$.ajax(base_path + '/approval/updateApprovalInfo?dates=' + new Date().getTime(), {
+											data: parameter,
+											dataType: 'json',
+											xhrFields: {
+												withCredentials: true
+											},
+											crossDomain: true,
+											traditional: true, //防止深度序列化
+											type: 'post',
+											timeout: 15000,
+											success: function(dt) {
+												console.log(dt)
+												if(dt.isRedirect) {
+													location.href = dt.redirectURL;
+												} else {
+													if(dt.returnCode == "200") {
+														mui.alert("提交成功!", function() {
+															//location.reload();
+														});
+													} else {
+														mui.alert("提交失败!");
+													}
+												}
+											},
+											error: function(xhr, type, errorThrown) {
+												console.log(xhr);
+												mui.alert("提交失败!网络错误");
+											}
+										});
+			}
+		});
+		</script>
+	</body>
+
+</html>

File diff suppressed because it is too large
+ 121 - 0
rst/pro_order_list.html


File diff suppressed because it is too large
+ 309 - 0
rst/pro_order_list_index.html


File diff suppressed because it is too large
+ 108 - 0
rst/pro_storage_order_list.html


File diff suppressed because it is too large
+ 540 - 0
rst/submit_apply_order.html


BIN
tooth - 副本.rar