海涛 8 年之前
父节点
当前提交
e1c9efae1b
共有 56 个文件被更改,包括 2534 次插入3169 次删除
  1. 2 0
      www/webapp/o2o/css/common.css
  2. 2 44
      www/webapp/o2o/css/home.css
  3. 1 1
      www/webapp/o2o/css/mine.css
  4. 24 0
      www/webapp/o2o/css/product.css
  5. 0 0
      www/webapp/o2o/dist/css/main.css
  6. 0 0
      www/webapp/o2o/dist/js/api.js
  7. 0 0
      www/webapp/o2o/dist/js/build/template.js
  8. 0 0
      www/webapp/o2o/dist/js/main.js
  9. 0 0
      www/webapp/o2o/dist/js/model/product.js
  10. 0 0
      www/webapp/o2o/dist/js/model/user.js
  11. 1 1
      www/webapp/o2o/dist/js/page/activities/day.js
  12. 0 0
      www/webapp/o2o/dist/js/page/address/addressDetail.js
  13. 0 0
      www/webapp/o2o/dist/js/page/home.js
  14. 1 1
      www/webapp/o2o/dist/js/page/homeenterprise.js
  15. 1 1
      www/webapp/o2o/dist/js/page/homestay.js
  16. 1 1
      www/webapp/o2o/dist/js/page/longOrder.js
  17. 0 0
      www/webapp/o2o/dist/js/page/mine.js
  18. 0 0
      www/webapp/o2o/dist/js/page/myCoupon.js
  19. 0 0
      www/webapp/o2o/dist/js/page/placeOrder.js
  20. 0 0
      www/webapp/o2o/dist/js/page/product.js
  21. 1 1
      www/webapp/o2o/dist/js/page/rechargee.js
  22. 1 1
      www/webapp/o2o/dist/js/page/secondary.js
  23. 7 1
      www/webapp/o2o/js/api.js
  24. 0 5
      www/webapp/o2o/js/build/template.js
  25. 2 2
      www/webapp/o2o/js/main.js
  26. 0 1
      www/webapp/o2o/js/model/address.js
  27. 725 1454
      www/webapp/o2o/js/model/product.js
  28. 1 1
      www/webapp/o2o/js/model/user.js
  29. 4 6
      www/webapp/o2o/js/page/activities/day.js
  30. 29 16
      www/webapp/o2o/js/page/address/addressDetail.js
  31. 112 112
      www/webapp/o2o/js/page/address/addressList.js
  32. 30 81
      www/webapp/o2o/js/page/home.js
  33. 5 2
      www/webapp/o2o/js/page/homeenterprise.js
  34. 17 13
      www/webapp/o2o/js/page/homestay.js
  35. 2 2
      www/webapp/o2o/js/page/longOrder.js
  36. 12 3
      www/webapp/o2o/js/page/mine.js
  37. 146 116
      www/webapp/o2o/js/page/myCoupon.js
  38. 104 105
      www/webapp/o2o/js/page/picker.js
  39. 998 974
      www/webapp/o2o/js/page/placeOrder.js
  40. 33 10
      www/webapp/o2o/js/page/product.js
  41. 53 47
      www/webapp/o2o/js/page/rechargee.js
  42. 3 14
      www/webapp/o2o/js/page/secondary.js
  43. 2 2
      www/webapp/o2o/tpl/LongOrder/index.html
  44. 2 2
      www/webapp/o2o/tpl/activities/day.html
  45. 5 4
      www/webapp/o2o/tpl/activities/text.html
  46. 3 3
      www/webapp/o2o/tpl/address/detail/index.html
  47. 1 1
      www/webapp/o2o/tpl/address/list/index.html
  48. 1 4
      www/webapp/o2o/tpl/home/index.html
  49. 10 10
      www/webapp/o2o/tpl/homeenterprise/index.html
  50. 10 10
      www/webapp/o2o/tpl/homestay/index.html
  51. 31 1
      www/webapp/o2o/tpl/myCoupon/index.html
  52. 1 1
      www/webapp/o2o/tpl/myOrder/finish.html
  53. 1 1
      www/webapp/o2o/tpl/myOrder/index.html
  54. 102 102
      www/webapp/o2o/tpl/placeOrder/index.html
  55. 3 2
      www/webapp/o2o/tpl/product/index.html
  56. 44 10
      www/webapp/o2o/tpl/recharge/index.html

+ 2 - 0
www/webapp/o2o/css/common.css

@@ -152,6 +152,7 @@ ul, li {
 
 .page-content {
 	padding: 15px 0;
+	/*background: #efeff4;*/
 }
 
 /* picker */
@@ -225,6 +226,7 @@ ul, li {
 
 .coupon-items {
 	background: #efeff4;
+	margin-bottom: 13%;
 }
 
 .coupon-info {

+ 2 - 44
www/webapp/o2o/css/home.css

@@ -2,50 +2,6 @@ body {
 	/*background: #bdbdbd;*/
 }
 
-/*swiper*/
-/*.swiper-container {
-    width: 100%;
-}
-
-.swiper-slide {
-    text-align: center;
-    font-size: 18px;
-    background: #fff;
-    !* Center slide text vertically *!
-    display: -webkit-box;
-    display: -ms-flexbox;
-    display: -webkit-flex;
-    display: flex;
-    -webkit-box-pack: center;
-    -ms-flex-pack: center;
-    -webkit-justify-content: center;
-    justify-content: center;
-    -webkit-box-align: center;
-    -ms-flex-align: center;
-    -webkit-align-items: center;
-    align-items: center;
-}
-
-.swiper-slide img {
-    width: 100%;
-}
-
-.swiper-pagination-bullet-active {
-    background-color: #516663 !important;
-}
-
-.swiper-pagination{
-    bottom: 5px;
-    width: 100%;
-    height: 20px;
-    background: aqua;
-}
-.swiper-pagination span{
-    padding: 5px;
-    background: #000000;
-    margin:0 5px;
-}*/
-
 .swiper-container {
 	width: 100%;
 	color: #fff;
@@ -55,6 +11,7 @@ body {
 .swiper-slide {
 	width: 100%;
 	height: 100%;
+	display: block;
 }
 
 .swiper-slide .title {
@@ -67,6 +24,7 @@ body {
 
 .swiper-slide img {
 	width: 100%;
+	display: block;
 }
 
 .pagination {

+ 1 - 1
www/webapp/o2o/css/mine.css

@@ -84,7 +84,7 @@ body {
 /*当其最大宽度为320*/
 @media (max-width: 320px) {
     #mineScroll div .user{
-        margin-top: -20%;
+        /*margin-top: -20%;*/
     }
     #mineScroll div .user .user-name {
         top: 8rem;

+ 24 - 0
www/webapp/o2o/css/product.css

@@ -96,6 +96,7 @@
 
 .spa-page-product .img-list img {
   width: 100%;
+	display: block;
 }
 .spa-page-product .img-list-container {
   /*position: absolute;
@@ -483,3 +484,26 @@
   line-height: 38px;
   padding: 0;
 }
+
+
+
+
+
+/*新建样式*/
+.product-new{
+	border-top:1px solid rgba(0, 0, 0, 0.22);
+	background: #ffffff;
+	position: fixed;
+	bottom: 0;
+	width: 100%;
+	line-height: 48px;
+	color: #ffffff;
+	text-align: center;
+}
+.product-new div{
+	background: #2a2400;
+	color: #927603;
+	font-size: 0.9rem;
+	width: 60%;
+	margin: 1% 20%;
+}

文件差异内容过多而无法显示
+ 0 - 0
www/webapp/o2o/dist/css/main.css


文件差异内容过多而无法显示
+ 0 - 0
www/webapp/o2o/dist/js/api.js


文件差异内容过多而无法显示
+ 0 - 0
www/webapp/o2o/dist/js/build/template.js


文件差异内容过多而无法显示
+ 0 - 0
www/webapp/o2o/dist/js/main.js


文件差异内容过多而无法显示
+ 0 - 0
www/webapp/o2o/dist/js/model/product.js


文件差异内容过多而无法显示
+ 0 - 0
www/webapp/o2o/dist/js/model/user.js


+ 1 - 1
www/webapp/o2o/dist/js/page/activities/day.js

@@ -1 +1 @@
-define(["$","template","IScroll","recharge","native","config","user","product"],function(e,t,n,r,i,s,o,u){function a(t){t.preventDefault(),e(document).trigger("spa:navigate",{hash:"secondary",pushData:{dontNeedReload:!0}})}return{title:"双十一活动",body:"",init:function(t,n){var r=this,i=e(document);r.on("swipeRight",function(e){a.call(this,e)}),setInterval(function(){e(".product2-img").fadeToggle()},500),e.newTouch(".back-button",function(e){a.call(this,e)},r),r.on("tapBackButton",function(e){a.call(this,e)}),e.newTouch(".btn-appliances",function(t){t.preventDefault();var n=parseInt(e(this).attr("data-product-type"));i.trigger("spa:navigate",{hash:"placeOrder",pushData:{product:u.allList[n-1],needReset:!0,backHash:"activity-day"}})},r),e.newTouch(".btn-action-logo",function(e){e.preventDefault(),i.trigger("spa:navigate",{hash:"im",pushData:{needReset:!0}})},r),e.newTouch(".btn-action-my-order",function(e){e.preventDefault(),i.trigger("spa:navigate",{hash:"",pushData:{needReset:!0}})},r),e.newTouch(".btn-action-coupon",function(e){e.preventDefault(),o.checkLogin(function(){i.trigger("spa:navigate",{hash:"mine",pushData:{needReset:!0}})})},r),n.resolve()},beforeopen:function(e,t){t.resolve()},afteropen:function(i,o){var u=this,a=e(document);i.pushData.dontNeedReload||(a.trigger("spa:openloader"),r.getRechargeList(function(r){a.trigger("spa:closeloader");if(r.success){var o=t("activities/day",{showNavBar:!s.isWX,recharges:r.data});e(".spa-page-body",u).html(o),setTimeout(function(){i.scroll=new n("#activitiesScroll")},500)}})),o.resolve()},beforeclose:function(e,t){t.resolve()}}});
+define(["$","template","IScroll","recharge","native","config","user","product"],function(e,t,n,r,i,s,o,u){function a(t){t.preventDefault(),e(document).trigger("spa:navigate",{hash:"secondary",pushData:{dontNeedReload:!0}})}return{title:"双十一活动",body:"",init:function(t,n){var r=this,i=e(document);r.on("swipeRight",function(e){a.call(this,e)}),setInterval(function(){e(".product2-img").fadeToggle()},500),e.newTouch(".back-button",function(e){a.call(this,e)},r),r.on("tapBackButton",function(e){a.call(this,e)}),e.newTouch(".btn-appliances",function(t){t.preventDefault();var n=parseInt(e(this).attr("data-product-type"));i.trigger("spa:navigate",{hash:"product",pushData:{product:u.allList[n-1],needReset:!0,backHash:"activity-day"}})},r),e.newTouch(".btn-action-logo",function(e){e.preventDefault(),i.trigger("spa:navigate",{hash:"im",pushData:{needReset:!0}})},r),e.newTouch(".btn-action-my-order",function(e){e.preventDefault(),i.trigger("spa:navigate",{hash:"",pushData:{needReset:!0}})},r),e.newTouch(".btn-action-coupon",function(e){e.preventDefault(),o.checkLogin(function(){i.trigger("spa:navigate",{hash:"mine",pushData:{needReset:!0}})})},r),n.resolve()},beforeopen:function(e,t){t.resolve()},afteropen:function(i,o){var u=this,a=e(document);i.pushData.dontNeedReload||(a.trigger("spa:openloader"),r.getRechargeList(function(r){a.trigger("spa:closeloader");if(r.success){var o=t("activities/day",{showNavBar:!s.isWX,recharges:r.data,title:"活动体验"});e(".spa-page-body",u).html(o),setTimeout(function(){i.scroll=new n("#activitiesScroll")},500)}})),o.resolve()},beforeclose:function(e,t){t.resolve()}}});

文件差异内容过多而无法显示
+ 0 - 0
www/webapp/o2o/dist/js/page/address/addressDetail.js


文件差异内容过多而无法显示
+ 0 - 0
www/webapp/o2o/dist/js/page/home.js


+ 1 - 1
www/webapp/o2o/dist/js/page/homeenterprise.js

@@ -1 +1 @@
-define(["$","template","IScroll","recharge","native","config","user"],function(e,t,n,r,i,s,o){function u(t){t.preventDefault(),e(document).trigger("spa:navigate",{hash:"",pushData:{dontNeedReload:!0}})}return{title:"企业服务",body:"",init:function(t,n){var r=this,i=e(document);r.on("swipeRight",function(e){u.call(this,e)}),e.newTouch(".back-button",function(e){u.call(this,e)},r),r.on("tapBackButton",function(e){u.call(this,e)}),e.newTouch(".o2o-btn-homestay",function(e){e.preventDefault(),window.location.href="/index.php?r=o2o/advisory/enterprise"},r),e.newTouch(".btn-action-my-order",function(e){e.preventDefault(),i.trigger("spa:navigate",{hash:"",pushData:{needReset:!0}})},r),e.newTouch(".btn-action-logo",function(e){e.preventDefault(),window.location.href="/index.php?r=o2o/advisory/im"},r),e.newTouch(".btn-action-coupon",function(e){e.preventDefault(),o.checkLogin(function(){i.trigger("spa:navigate",{hash:"mine",pushData:{needReset:!0}})})},r),n.resolve()},beforeopen:function(e,t){t.resolve()},afteropen:function(i,o){var u=this,a=e(document);i.pushData.dontNeedReload||(a.trigger("spa:openloader"),r.getRechargeList(function(r){a.trigger("spa:closeloader");if(r.success){var o=t("homeenterprise/index",{showNavBar:!s.isWX,recharges:r.data});e(".spa-page-body",u).html(o),setTimeout(function(){i.scroll=new n("#homeenterpriseScroll")},500)}})),o.resolve()},beforeclose:function(e,t){t.resolve()}}});
+define(["$","template","IScroll","recharge","native","config","user"],function(e,t,n,r,i,s,o){function a(t){t.preventDefault(),e(document).trigger("spa:navigate",{hash:u,pushData:{dontNeedReload:!0}})}var u;return{title:"企业服务",body:"",init:function(t,n){var r=this,i=e(document);r.on("swipeRight",function(e){a.call(this,e)}),e.newTouch(".back-button",function(e){a.call(this,e)},r),r.on("tapBackButton",function(e){a.call(this,e)}),e.newTouch(".o2o-btn-homestay",function(e){e.preventDefault(),window.location.href="/index.php?r=o2o/advisory/enterprise"},r),e.newTouch(".btn-action-my-order",function(e){e.preventDefault(),i.trigger("spa:navigate",{hash:"",pushData:{needReset:!0}})},r),e.newTouch(".btn-action-logo",function(e){e.preventDefault(),window.location.href="/index.php?r=o2o/advisory/im"},r),e.newTouch(".btn-action-coupon",function(e){e.preventDefault(),o.checkLogin(function(){i.trigger("spa:navigate",{hash:"mine",pushData:{needReset:!0}})})},r),n.resolve()},beforeopen:function(e,t){var n=e.pushData;u=n.backHash?n.backHash:"",t.resolve()},afteropen:function(i,o){var u=this,a=e(document);i.pushData.dontNeedReload||(a.trigger("spa:openloader"),r.getRechargeList(function(r){a.trigger("spa:closeloader");if(r.success){var o=t("homeenterprise/index",{showNavBar:!s.isWX,recharges:r.data});e(".spa-page-body",u).html(o),setTimeout(function(){i.scroll=new n("#homeenterpriseScroll")},500)}})),o.resolve()},beforeclose:function(e,t){t.resolve()}}});

+ 1 - 1
www/webapp/o2o/dist/js/page/homestay.js

@@ -1 +1 @@
-define(["$","template","IScroll","recharge","native","config","user"],function(e,t,n,r,i,s,o){function u(t){t.preventDefault(),e(document).trigger("spa:navigate",{hash:"",pushData:{dontNeedReload:!0}})}return{title:"民宿保洁",body:"",init:function(t,n){var r=this,i=e(document);r.on("swipeRight",function(e){history.go(-1)}),e.newTouch(".back-button",function(e){history.go(-1)},r),r.on("tapBackButton",function(e){history.go(-1)}),e.newTouch(".o2o-btn-homestay",function(e){e.preventDefault(),window.location.href="/index.php?r=o2o/advisory/SinglesDay"},r),e.newTouch(".btn-action-my-order",function(e){e.preventDefault(),i.trigger("spa:navigate",{hash:"",pushData:{needReset:!0}})},r),e.newTouch(".btn-action-logo",function(e){e.preventDefault(),window.location.href="/index.php?r=o2o/advisory/im"},r),e.newTouch(".btn-action-coupon",function(e){e.preventDefault(),o.checkLogin(function(){i.trigger("spa:navigate",{hash:"mine",pushData:{needReset:!0}})})},r),n.resolve()},beforeopen:function(e,t){t.resolve()},afteropen:function(i,o){var u=this,a=e(document);i.pushData.dontNeedReload||(a.trigger("spa:openloader"),r.getRechargeList(function(r){a.trigger("spa:closeloader");if(r.success){var o=t("homestay/index",{showNavBar:!s.isWX,recharges:r.data});e(".spa-page-body",u).html(o);var f=e(".btn-add-recharge").attr("data-index");for(var l=f;l<2;l++);setTimeout(function(){i.scroll=new n("#homestayScroll")},500)}})),o.resolve()},beforeclose:function(e,t){t.resolve()}}});
+define(["$","template","IScroll","recharge","native","config","user"],function(e,t,n,r,i,s,o){function a(t){t.preventDefault(),e(document).trigger("spa:navigate",{hash:u,pushData:{dontNeedReload:!0}})}var u;return{title:"民宿保洁",body:"",init:function(t,n){var r=this,i=e(document);r.on("swipeRight",function(e){a.call(this,e)}),e.newTouch(".back-button",function(e){a.call(this,e)},r),r.on("tapBackButton",function(e){a.call(this,e)}),e.newTouch(".o2o-btn-homestay",function(e){e.preventDefault(),window.location.href="/index.php?r=o2o/advisory/SinglesDay"},r),e.newTouch(".btn-action-my-order",function(e){e.preventDefault(),i.trigger("spa:navigate",{hash:"",pushData:{needReset:!0}})},r),e.newTouch(".btn-action-logo",function(e){e.preventDefault(),window.location.href="/index.php?r=o2o/advisory/im"},r),e.newTouch(".btn-action-coupon",function(e){e.preventDefault(),o.checkLogin(function(){i.trigger("spa:navigate",{hash:"mine",pushData:{needReset:!0}})})},r),n.resolve()},beforeopen:function(e,t){var n=e.pushData;u=n.backHash?n.backHash:"",t.resolve()},afteropen:function(i,o){var u=this,a=e(document);i.pushData.dontNeedReload||(a.trigger("spa:openloader"),r.getRechargeList(function(r){a.trigger("spa:closeloader");if(r.success){var o=t("homestay/index",{showNavBar:!s.isWX,recharges:r.data});e(".spa-page-body",u).html(o);var f=e(".btn-add-recharge").attr("data-index");for(var l=f;l<2;l++);setTimeout(function(){i.scroll=new n("#homestayScroll")},500)}})),o.resolve()},beforeclose:function(e,t){t.resolve()}}});

+ 1 - 1
www/webapp/o2o/dist/js/page/longOrder.js

@@ -1 +1 @@
-define(["$","template","IScroll","recharge","native","config","user","product"],function(e,t,n,r,i,s,o,u){function f(t){t.preventDefault(),e(document).trigger("spa:navigate",{hash:a,pushData:{dontNeedReload:!0}})}var a;return{title:"民宿保洁",body:"",init:function(t,n){var r=this,i=e(document);r.on("swipeRight",function(e){f.call(this,e)}),e.newTouch(".back-button",function(e){f.call(this,e)},r),r.on("tapBackButton",function(e){f.call(this,e)}),e.newTouch(".btn-appliances",function(t){t.preventDefault();var n=parseInt(e(this).attr("data-product-type"));i.trigger("spa:navigate",{hash:"placeOrder",pushData:{product:u.allList[n-1],needReset:!0,backHash:"longOrder"}})},r),e.newTouch(".btn-action-logo",function(e){e.preventDefault(),i.trigger("spa:navigate",{hash:"im",pushData:{needReset:!0}})},r),e.newTouch(".btn-action-my-order",function(e){e.preventDefault(),i.trigger("spa:navigate",{hash:"",pushData:{needReset:!0}})},r),e.newTouch(".btn-action-coupon",function(e){e.preventDefault(),o.checkLogin(function(){i.trigger("spa:navigate",{hash:"mine",pushData:{needReset:!0}})})},r),n.resolve()},beforeopen:function(e,t){var n=e.pushData;a=n.backHash?n.backHash:"",t.resolve()},afteropen:function(i,o){var u=this,a=e(document);i.pushData.dontNeedReload||(a.trigger("spa:openloader"),r.getRechargeList(function(r){a.trigger("spa:closeloader");if(r.success){var o=t("LongOrder/index",{showNavBar:!s.isWX,recharges:r.data});e(".spa-page-body",u).html(o);var f=e(".btn-add-recharge").attr("data-index");for(var l=f;l<2;l++);setTimeout(function(){i.scroll=new n("#longOrderScroll")},500)}})),o.resolve()},beforeclose:function(e,t){t.resolve()}}});
+define(["$","template","IScroll","recharge","native","config","user","product"],function(e,t,n,r,i,s,o,u){function f(t){t.preventDefault(),e(document).trigger("spa:navigate",{hash:a,pushData:{dontNeedReload:!0}})}var a;return{title:"民宿保洁",body:"",init:function(t,n){var r=this,i=e(document);r.on("swipeRight",function(e){f.call(this,e)}),e.newTouch(".back-button",function(e){f.call(this,e)},r),r.on("tapBackButton",function(e){f.call(this,e)}),e.newTouch(".btn-appliances",function(t){t.preventDefault();var n=parseInt(e(this).attr("data-product-type"));i.trigger("spa:navigate",{hash:"product",pushData:{product:u.allList[n],needReset:!0,backHash:"longOrder"}})},r),e.newTouch(".btn-action-logo",function(e){e.preventDefault(),i.trigger("spa:navigate",{hash:"im",pushData:{needReset:!0}})},r),e.newTouch(".btn-action-my-order",function(e){e.preventDefault(),i.trigger("spa:navigate",{hash:"",pushData:{needReset:!0}})},r),e.newTouch(".btn-action-coupon",function(e){e.preventDefault(),o.checkLogin(function(){i.trigger("spa:navigate",{hash:"mine",pushData:{needReset:!0}})})},r),n.resolve()},beforeopen:function(e,t){var n=e.pushData;a=n.backHash?n.backHash:"",t.resolve()},afteropen:function(i,o){var u=this,a=e(document);i.pushData.dontNeedReload||(a.trigger("spa:openloader"),r.getRechargeList(function(r){a.trigger("spa:closeloader");if(r.success){var o=t("LongOrder/index",{showNavBar:!s.isWX,recharges:r.data});e(".spa-page-body",u).html(o);var f=e(".btn-add-recharge").attr("data-index");for(var l=f;l<2;l++);setTimeout(function(){i.scroll=new n("#longOrderScroll")},500)}})),o.resolve()},beforeclose:function(e,t){t.resolve()}}});

文件差异内容过多而无法显示
+ 0 - 0
www/webapp/o2o/dist/js/page/mine.js


文件差异内容过多而无法显示
+ 0 - 0
www/webapp/o2o/dist/js/page/myCoupon.js


文件差异内容过多而无法显示
+ 0 - 0
www/webapp/o2o/dist/js/page/placeOrder.js


文件差异内容过多而无法显示
+ 0 - 0
www/webapp/o2o/dist/js/page/product.js


+ 1 - 1
www/webapp/o2o/dist/js/page/rechargee.js

@@ -1 +1 @@
-define(["$","template","IScroll","recharge","native","config","user"],function(e,t,n,r,i,s,o){function a(t){t.preventDefault(),e(document).trigger("spa:navigate",{hash:u,pushData:{dontNeedReload:!0}})}var u;return{title:"充值规则",body:"",init:function(t,n){var i=this,s=e(document);i.on("swipeRight",function(e){a.call(this,e)}),e.newTouch(".back-button",function(e){a.call(this,e)},i),i.on("tapBackButton",function(e){a.call(this,e)}),e.newTouch(".pay-agreement",function(e){e.preventDefault(),s.trigger("spa:navigate",{hash:"activity-text",pushData:{needReload:!0}})},i),e.newTouch(".pay-rule",function(e){e.preventDefault(),s.trigger("spa:navigate",{hash:"activity-rule",pushData:{needReload:!0}})},i),e.newTouch(".btn-add-recharge",function(t){t.preventDefault(),s.trigger("spa:openloader");var n=e(this).attr("data-value");r.addRechargeorder({user_id:o.id,recharge_id:e(this).attr("data-id")},function(e){s.trigger("spa:closeloader"),e.success&&(o.orders[1].data.push({id:e.data._id.$id,products:[{product:{name:"充值"+n+"元"}}],final_price:e.data.price}),s.trigger("spa:navigate",{hash:"pay",pushData:{isRecharge:!0,orderID:e.data._id.$id,backHash:"recharge"}}))})},i),n.resolve()},beforeopen:function(e,t){var n=e.pushData;u=n.backHash?n.backHash:"",t.resolve()},afteropen:function(i,o){var u=this,a=e(document);i.pushData.dontNeedReload||(a.trigger("spa:openloader"),r.getRechargeList(function(r){a.trigger("spa:closeloader");if(r.success){var o=t("recharge/index",{showNavBar:!s.isWX,recharges:r.data});e(".spa-page-body",u).html(o);var f=e(".btn-add-recharge").attr("data-index");for(var l=f;l<2;l++);setTimeout(function(){i.scroll=new n("#rechargeScroll")},500)}})),o.resolve()},beforeclose:function(e,t){t.resolve()}}});
+define(["$","template","recharge","native","config","user","product"],function(e,t,n,r,i,s,o){function a(t){t.preventDefault(),e(document).trigger("spa:navigate",{hash:u})}var u;return{title:"充值规则",body:"",init:function(t,r){var i=this,o=e(document);i.on("swipeRight",function(e){a.call(this,e)}),e.newTouch(".back-button",function(e){a.call(this,e)},i),i.on("tapBackButton",function(e){a.call(this,e)}),e.newTouch(".btn-action-logo",function(e){e.preventDefault(),window.location.href="/index.php?r=o2o/advisory/im"},i),e.newTouch(".btn-action-my-order",function(){event.preventDefault(),o.trigger("spa:navigate",{hash:"",pushData:{needReset:!0}})},i),e.newTouch(".btn-action-coupon",function(e){e.preventDefault(),s.checkLogin(function(){o.trigger("spa:navigate",{hash:"mine",pushData:{needReset:!0}})})},i),e.newTouch(".pay-agreement",function(e){e.preventDefault(),o.trigger("spa:navigate",{hash:"activity-text",pushData:{needReload:!0}})},i),e.newTouch(".btn-add-recharge",function(t){t.preventDefault(),o.trigger("spa:openloader");var r=e(this).attr("data-value");n.addRechargeorder({user_id:s.id,recharge_id:e(this).attr("data-id")},function(e){o.trigger("spa:closeloader"),e.success&&(s.orders[1].data.push({id:e.data._id.$id,products:[{product:{name:"充值"+r+"元"}}],final_price:e.data.price}),o.trigger("spa:navigate",{hash:"pay",pushData:{isRecharge:!0,orderID:e.data._id.$id,backHash:"recharge"}}))})},i),r.resolve()},beforeopen:function(r,a){var f=r.pushData;u=f.backHash?f.backHash:"";var l=this,c=e(document);c.trigger("spa:openloader"),o.getListAll(s.id),n.getRechargeList(function(e){c.trigger("spa:closeloader");if(e.success){var n=t("recharge/index",{showNavBar:!i.isWX,recharges:e.data});l.find(".spa-page-body").html(n),r.scroll&&(r.scroll.destroy(),r.scroll=null),setTimeout(function(){r.scroll=new IScroll("#rechargeScroll")},500),a.resolve(),c.trigger("spa:closeloader")}})}}});

+ 1 - 1
www/webapp/o2o/dist/js/page/secondary.js

@@ -1 +1 @@
-define(["$","template","IScroll","user","product","native","config","address"],function(e,t,n,r,i,s,o,u){function f(t){t.preventDefault(),e(document).trigger("spa:navigate",{hash:a,pushData:{dontNeedReload:!0}})}var a;return{title:"家庭保洁",body:"",init:function(t,n){var s=this,o=e(document);s.on("swipeRight",function(e){f.call(this,e)}),e.newTouch(".back-button",function(e){f.call(this,e)},s),s.on("tapBackButton",function(e){f.call(this,e)}),e.newTouch(".Long-term-set",function(e){e.preventDefault(),o.trigger("spa:navigate",{hash:"activity-day",pushData:{needReset:!0,backHash:"secondary"}})},s),e.newTouch(".btn-product",function(t){t.preventDefault();var n=parseInt(e(this).attr("data-product-type"));o.trigger("spa:navigate",{hash:"placeOrder",pushData:{product:i.allList[n-1],needReset:!0,backHash:"secondary"}})},s),e.newTouch(".btn-action-logo",function(e){e.preventDefault(),window.location.href="/index.php?r=o2o/advisory/im"},s),e.newTouch(".btn-action-my-order",function(){event.preventDefault(),o.trigger("spa:navigate",{hash:"",pushData:{needReset:!0}})},s),e.newTouch(".btn-action-coupon",function(e){e.preventDefault(),r.checkLogin(function(){o.trigger("spa:navigate",{hash:"mine",pushData:{needReset:!0}})})},s),n.resolve()},beforeopen:function(e,t){var n=e.pushData;a=n.backHash?n.backHash:"",t.resolve()},afteropen:function(r,i){var s=this,u=e(document);if(r.pushData&&r.pushData.needReset){var a=t("secondary/index",{showNavBar:!o.isWX});e(".spa-page-body",s).html(a),setTimeout(function(){r.scroll=new n("#secondaryScroll")},500),setTimeout(function(){e("#list0").height(e(".btn-product").height()*4+e(".prevent-scroll").height())},200)}i.resolve()},beforeclose:function(e,t){t.resolve()}}});
+define(["$","template","IScroll","user","product","native","config","address"],function(e,t,n,r,i,s,o,u){function f(t){t.preventDefault(),e(document).trigger("spa:navigate",{hash:a,pushData:{dontNeedReload:!0}})}var a;return{title:"家庭保洁",body:"",init:function(t,n){var s=this,o=e(document);s.on("swipeRight",function(e){f.call(this,e)}),e.newTouch(".back-button",function(e){f.call(this,e)},s),s.on("tapBackButton",function(e){f.call(this,e)}),e.newTouch(".Long-term-set",function(e){e.preventDefault(),o.trigger("spa:navigate",{hash:"activity-day",pushData:{needReset:!0,backHash:"secondary"}})},s),e.newTouch(".btn-product",function(t){t.preventDefault();var n=parseInt(e(this).attr("data-product-type"));o.trigger("spa:navigate",{hash:"product",pushData:{product:i.allList[n-1],needReset:!0,backHash:"secondary"}})},s),e.newTouch(".btn-action-logo",function(e){e.preventDefault(),window.location.href="/index.php?r=o2o/advisory/im"},s),e.newTouch(".btn-action-my-order",function(){event.preventDefault(),o.trigger("spa:navigate",{hash:"",pushData:{needReset:!0}})},s),e.newTouch(".btn-action-coupon",function(e){e.preventDefault(),r.checkLogin(function(){o.trigger("spa:navigate",{hash:"mine",pushData:{needReset:!0}})})},s),n.resolve()},beforeopen:function(e,t){var n=e.pushData;a=n.backHash?n.backHash:"",t.resolve()},afteropen:function(r,i){var s=this,u=e(document);if(!r.pushData.dontNeedReload){var a=t("secondary/index",{showNavBar:!o.isWX});e(".spa-page-body",s).html(a),setTimeout(function(){r.scroll=new n("#secondaryScroll")},500),setTimeout(function(){e("#list0").height(e(".btn-product").height()*4+e(".prevent-scroll").height())},200)}i.resolve()},beforeclose:function(e,t){t.resolve()}}});

+ 7 - 1
www/webapp/o2o/js/api.js

@@ -65,7 +65,7 @@ define(['config', 'base'], function (config, base) {
     };
 
     //获取商品列表
-    API.prototype.getProductList = function(data) {
+    API.prototype.getProductList = function(data,callback) {
         var that = this;
         this.isLoading = true;
         $.signAjax({
@@ -74,9 +74,15 @@ define(['config', 'base'], function (config, base) {
             dataType: 'JSON',
             success: function(res) {
                 that.isLoading = false;
+	            if (callback) {
+		            callback(res);
+	            }
             },
             error: function(res) {
                 that.isLoading = false;
+	            if (callback) {
+		            callback(apiErrorResult);
+	            }
             }
         });
     };

文件差异内容过多而无法显示
+ 0 - 5
www/webapp/o2o/js/build/template.js


+ 2 - 2
www/webapp/o2o/js/main.js

@@ -167,7 +167,7 @@ require(['$', 'spa', 'native', 'helper', 'ratchet', 'config', 'user'], function
 	var pageProduct = {
 		route: 'product',
 		classname: 'product',
-		animate: 'slideInUp',
+		animate: 'pushInLeft',
 		view: function () {
 			var $page = this;
 			requirejs(['pageProduct'], function (viewData) {
@@ -242,7 +242,7 @@ require(['$', 'spa', 'native', 'helper', 'ratchet', 'config', 'user'], function
 	var pagePlaceOrder = {
 		route: 'placeOrder',
 		classname: 'place-order',
-		animate: 'pushInLeft',
+		animate: 'slideInUp',
 		view: function () {
 			var $page = this;
 			requirejs(['pagePlaceOrder'], function (viewData) {

+ 0 - 1
www/webapp/o2o/js/model/address.js

@@ -52,7 +52,6 @@ define(['base', '$', 'native', 'api', 'user', 'config'], function (base, $, nati
                 that.list = res.data;
                 that.defaultAddress = that.list[0];
             }
-
             if (typeof(callback) == 'function') {
                 callback(res);
             }

+ 725 - 1454
www/webapp/o2o/js/model/product.js

@@ -2,1459 +2,730 @@
  * 商品模型
  */
 define(['base', '$', 'api'], function (base, $, api) {
-    var Product = function () {
-        if (typeof Product.instance === 'object') {
-            return Product.instance;
-        }
-        Product.instance = this;
-        this.storagePrefix = 'product_';//存储前缀
+	var Product = function () {
+		if (typeof Product.instance === 'object') {
+			return Product.instance;
+		}
+		Product.instance = this;
+		this.storagePrefix = 'product_';//存储前缀
+		/*图片压缩*/
+		this.allList = [
+			{
+				id: "57e0dffc9f5160dd048b4568",
+				name: "日常清洁",
+				// imgSrc: 'http://odulvej8l.bkt.clouddn.com/1128%E6%97%A5%E5%B8%B8%E6%B8%85%E6%B4%81%E9%A6%96%E5%9B%BE-%E6%94%B9.jpg',
+				desc: [{"type":1,"content":"http://odulvej8l.bkt.clouddn.com/1128-%E6%97%A5%E5%B8%B8%E6%B8%85%E6%B4%81_01.jpg"},{"type":1,"content":"http://odulvej8l.bkt.clouddn.com/1128-%E6%97%A5%E5%B8%B8%E6%B8%85%E6%B4%81_02.jpg"},{"type":1,"content":"http://odulvej8l.bkt.clouddn.com/1128-%E6%97%A5%E5%B8%B8%E6%B8%85%E6%B4%81_03.jpg"},{"type":1,"content":"http://odulvej8l.bkt.clouddn.com/1128-%E6%97%A5%E5%B8%B8%E6%B8%85%E6%B4%81_04.jpg"},{"type":1,"content":"http://odulvej8l.bkt.clouddn.com/1128-%E6%97%A5%E5%B8%B8%E6%B8%85%E6%B4%81_05.jpg"},{"type":1,"content":"http://odulvej8l.bkt.clouddn.com/1128-%E6%97%A5%E5%B8%B8%E6%B8%85%E6%B4%81_06.jpg"}],
+				status: 1,
+				is_extra: 0,
+				order: 0,
+				type: "1",
+				type_str: "日常清洁",
+				extra: [
+					{
+						type: "一室一卫",
+						price: "98"
+					},
+					{
+						type: "两室一卫",
+						price: "118"
+					},
+					{
+						type: "两室两卫",
+						price: "138"
+					},
+					{
+						type: "三室两卫",
+						price: "158"
+					},
+					{
+						type: "四室三卫",
+						price: "228"
+					},
+					{
+						type: "200-250平米",
+						price: "298"
+					},
+					{
+						type: "200-300平米",
+						price: "398"
+					},
+					{
+						type: "三层别墅",
+						price: "498"
+					},
+					{
+						type: "四层别墅",
+						price: "598"
+					}
+				],
+				action_user: "",
+				action_time: "",
+				action_log: ""
+			},
+			{
+				id: "57e0e0189f5160dc048b4568",
+				name: "深度清洁",
+				// imgSrc: 'http://odulvej8l.bkt.clouddn.com/1128%E6%B7%B1%E5%BA%A6%E6%B8%85%E6%B4%81%E9%A6%96%E5%9B%BE.jpg',
+				desc: [{"type":1,"content":"http://odulvej8l.bkt.clouddn.com/%E6%B7%B1%E5%BA%A6%E8%AF%A6%E6%83%85%E9%A1%B51128_01.jpg"},{"type":1,"content":"http://odulvej8l.bkt.clouddn.com/%E6%B7%B1%E5%BA%A6%E8%AF%A6%E6%83%85%E9%A1%B51128_02.jpg"},{"type":1,"content":"http://odulvej8l.bkt.clouddn.com/%E6%B7%B1%E5%BA%A6%E8%AF%A6%E6%83%85%E9%A1%B51128_03.jpg"},{"type":1,"content":"http://odulvej8l.bkt.clouddn.com/%E6%B7%B1%E5%BA%A6%E8%AF%A6%E6%83%85%E9%A1%B51128_04.jpg"}],
+				status: 1,
+				is_extra: 0,
+				order: 0,
+				type: "2",
+				type_str: "深度清洁",
+				extra: [
+					{
+						type: "卧室清洁",
+						price: "188"
+					},
+					{
+						type: "客厅清洁",
+						price: "288"
+					},
+					{
+						type: "厨房清洁",
+						price: "388"
+					},
+					{
+						type: "卫生间清洁",
+						price: "188"
+					}
+				],
+				action_user: "",
+				action_time: "",
+				action_log: ""
+			},
+			{
+				id: "57e0e0369f5160b1048b456b",
+				name: "除螨杀菌",
+				// imgSrc: 'http://odulvej8l.bkt.clouddn.com/1128%E9%99%A4%E8%9E%A8%E6%9D%80%E8%8F%8C%E9%A6%96%E5%9B%BE.jpg',
+				desc: [{ "type": 1,  "content": "http://odulvej8l.bkt.clouddn.com/1128%E9%99%A4%E8%9E%A8%E6%9D%80%E8%8F%8C%E9%A6%96%E5%9B%BE.jpg"},{ "type": 1,  "content": "http://odulvej8l.bkt.clouddn.com/%E9%99%A4%E8%9E%A8%E6%9D%80%E8%8F%8C_01.jpg"},{ "type": 1,  "content": "http://odulvej8l.bkt.clouddn.com/%E9%99%A4%E8%9E%A8%E6%9D%80%E8%8F%8C_02.jpg"},{ "type": 1,  "content": "http://odulvej8l.bkt.clouddn.com/%E9%99%A4%E8%9E%A8%E6%9D%80%E8%8F%8C_03.jpg"},{ "type": 1,  "content": "http://odulvej8l.bkt.clouddn.com/%E9%99%A4%E8%9E%A8%E6%9D%80%E8%8F%8C_04.jpg"},{ "type": 1,  "content": "http://odulvej8l.bkt.clouddn.com/%E9%99%A4%E8%9E%A8%E6%9D%80%E8%8F%8C_05.jpg"},{ "type": 1,  "content": "http://odulvej8l.bkt.clouddn.com/%E9%99%A4%E8%9E%A8%E6%9D%80%E8%8F%8C_06.jpg"},{ "type": 1,  "content": "http://odulvej8l.bkt.clouddn.com/%E9%99%A4%E8%9E%A8%E6%9D%80%E8%8F%8C_07.jpg"},{ "type": 1,  "content": "http://odulvej8l.bkt.clouddn.com/%E9%99%A4%E8%9E%A8%E6%9D%80%E8%8F%8C_08.jpg"},{ "type": 1,  "content": "http://odulvej8l.bkt.clouddn.com/%E9%99%A4%E8%9E%A8%E6%9D%80%E8%8F%8C_09.jpg"},{ "type": 1,  "content": "http://odulvej8l.bkt.clouddn.com/%E9%99%A4%E8%9E%A8%E6%9D%80%E8%8F%8C_10.jpg"}],
+				status: 1,
+				is_extra: 0,
+				order: 0,
+				type: "3",
+				type_str: "除螨杀菌",
+				extra: [
+					{
+						type: "儿童床",
+						price: "80"
+					},
+					{
+						type: "布艺窗帘",
+						price: "100"
+					},
+					{
+						type: "整床除螨",
+						price: "180"
+					},
+					{
+						type: "整套布艺沙发",
+						price: "160"
+					}
+				],
+				action_user: "",
+				action_time: "",
+				action_log: ""
+			},
+			{
+				id: "57e0e04e9f5160af048b456b",
+				name: "家电清洗",
+				// imgSrc: 'http://odulvej8l.bkt.clouddn.com/4%E5%AE%B6%E7%94%B5%E6%B8%85%E6%B4%97%E9%A6%96%E5%9B%BE.jpg',
+				desc: [{ "type": 1,  "content": "http://odulvej8l.bkt.clouddn.com/4%E5%AE%B6%E7%94%B5%E6%B8%85%E6%B4%97%E9%A6%96%E5%9B%BE.jpg"},{ "type": 1,  "content": "http://odulvej8l.bkt.clouddn.com/%E5%AE%B6%E7%94%B5%E6%B8%85%E6%B4%97_1%28720+1165%29.jpg"},{ "type": 1,  "content": "http://odulvej8l.bkt.clouddn.com/%E5%AE%B6%E7%94%B5%E6%B8%85%E6%B4%97_2%28720+844%29.jpg"},{ "type": 1,  "content": "http://odulvej8l.bkt.clouddn.com/%E5%AE%B6%E7%94%B5%E6%B8%85%E6%B4%97_3%28720+1129%29.jpg"},{ "type": 1,  "content": "http://odulvej8l.bkt.clouddn.com/%E5%AE%B6%E7%94%B5%E6%B8%85%E6%B4%97_4%28720+1204%29.jpg"},{ "type": 1,  "content": "http://odulvej8l.bkt.clouddn.com/%E5%AE%B6%E7%94%B5%E6%B8%85%E6%B4%97_5%28720+1246%29.jpg"},{ "type": 1,  "content": "http://odulvej8l.bkt.clouddn.com/%E5%AE%B6%E7%94%B5%E6%B8%85%E6%B4%97_6%28720+1257%29.jpg"},{ "type": 1,  "content": "http://odulvej8l.bkt.clouddn.com/%E5%AE%B6%E7%94%B5%E6%B8%85%E6%B4%97_7%28720+674%29.jpg"},{ "type": 1,  "content": "http://odulvej8l.bkt.clouddn.com/%E5%AE%B6%E7%94%B5%E6%B8%85%E6%B4%97_8%28720+786%29.jpg"}],
+				status: 1,
+				is_extra: 0,
+				order: 0,
+				type: "4",
+				type_str: "家电清洗",
+				extra: [
+					{
+						type: "微波炉",
+						price: "60"
+					},
+					{
+						type: "洗衣机",
+						price: "100"
+					},
+					{
+						type: "油烟机",
+						price: "120"
+					},
+					{
+						type: "挂式空调",
+						price: "100"
+					},
+					{
+						type: "立式空调",
+						price: "130"
+					},
+					{
+						type: "冰箱-单开门",
+						price: "100"
+					},
+					{
+						type: "冰箱-双开门",
+						price: "130"
+					}
+				],
+				action_user: "",
+				action_time: "",
+				action_log: ""
+			},
+			{
+				id: "57e0e0879f5160b8048b4571",
+				price: "8",
+				name: "新居开荒",
+				// imgSrc: 'http://odulvej8l.bkt.clouddn.com/1128%E6%96%B0%E5%B1%85%E5%BC%80%E8%8D%92%E9%A6%96%E5%9B%BE.jpg',
+				desc: [{ "type": 1,  "content": "http://odulvej8l.bkt.clouddn.com/1128%E6%96%B0%E5%B1%85%E5%BC%80%E8%8D%92%E9%A6%96%E5%9B%BE.jpg"},{ "type": 1,  "content": "http://odulvej8l.bkt.clouddn.com/%E6%96%B0%E5%B1%85%E5%BC%80%E8%8D%92_1_01%28720x1209%29.jpg"},{ "type": 1,  "content": "http://odulvej8l.bkt.clouddn.com/%E6%96%B0%E5%B1%85%E5%BC%80%E8%8D%92_1_02%28720x1041%29.jpg"},{ "type": 1,  "content": "http://odulvej8l.bkt.clouddn.com/%E6%96%B0%E5%B1%85%E5%BC%80%E8%8D%92_1_03%28720x1264%29.jpg"},{ "type": 1,  "content": "http://odulvej8l.bkt.clouddn.com/%E6%96%B0%E5%B1%85%E5%BC%80%E8%8D%92_1_04%28720x1295%29.jpg"},{ "type": 1,  "content": "http://odulvej8l.bkt.clouddn.com/%E6%96%B0%E5%B1%85%E5%BC%80%E8%8D%92_1_05%28720x685%29.jpg"},{ "type": 1,  "content": "http://odulvej8l.bkt.clouddn.com/%E6%96%B0%E5%B1%85%E5%BC%80%E8%8D%92_1_06%28720x717%29.jpg"},{ "type": 1,  "content": "http://odulvej8l.bkt.clouddn.com/%E6%96%B0%E5%B1%85%E5%BC%80%E8%8D%92_1_07%28720x685%29.jpg"},{ "type": 1,  "content": "http://odulvej8l.bkt.clouddn.com/%E6%96%B0%E5%B1%85%E5%BC%80%E8%8D%92_1_08%28720x1083%29.jpg"},{ "type": 1,  "content": "http://odulvej8l.bkt.clouddn.com/%E6%96%B0%E5%B1%85%E5%BC%80%E8%8D%92_1_09%28720x915%29.jpg"},{ "type": 1,  "content": "http://odulvej8l.bkt.clouddn.com/%E6%96%B0%E5%B1%85%E5%BC%80%E8%8D%92_1_10%28720x785%29.jpg"},{ "type": 1,  "content": "http://odulvej8l.bkt.clouddn.com/%E6%96%B0%E5%B1%85%E5%BC%80%E8%8D%92_1_11%28720x958%29.jpg"}],
+				status: 1,
+				is_extra: 0,
+				order: 0,
+				type: "6",
+				type_str: "新居开荒",
+				action_user: "",
+				action_time: "",
+				action_log: "",
+				/*pics: [
+					{
+						url: "http://odulvej8l.bkt.clouddn.com/1128%E6%96%B0%E5%B1%85%E5%BC%80%E8%8D%92%E9%A6%96%E5%9B%BE.jpg",
+						width: 750,
+						height: 585
+					},
+					{
+						url: "http://odulvej8l.bkt.clouddn.com/%E6%96%B0%E5%B1%85%E5%BC%80%E8%8D%92_1_01%28720x1209%29.jpg",
+						width: 720,
+						height: 1209
+					},
+					{
+						url: "http://odulvej8l.bkt.clouddn.com/%E6%96%B0%E5%B1%85%E5%BC%80%E8%8D%92_1_02%28720x1041%29.jpg",
+						width: 720,
+						height: 1041
+					},
+					{
+						url: "http://odulvej8l.bkt.clouddn.com/%E6%96%B0%E5%B1%85%E5%BC%80%E8%8D%92_1_03%28720x1264%29.jpg",
+						width: 720,
+						height: 1264
+					},
+					{
+						url: "http://odulvej8l.bkt.clouddn.com/%E6%96%B0%E5%B1%85%E5%BC%80%E8%8D%92_1_04%28720x1295%29.jpg",
+						width: 720,
+						height: 1295
+					},
+					{
+						url: "http://odulvej8l.bkt.clouddn.com/%E6%96%B0%E5%B1%85%E5%BC%80%E8%8D%92_1_05%28720x685%29.jpg",
+						width: 720,
+						height: 685
+					},
+					{
+						url: "http://odulvej8l.bkt.clouddn.com/%E6%96%B0%E5%B1%85%E5%BC%80%E8%8D%92_1_06%28720x717%29.jpg",
+						width: 720,
+						height: 717
+					},
+					{
+						url: "http://odulvej8l.bkt.clouddn.com/%E6%96%B0%E5%B1%85%E5%BC%80%E8%8D%92_1_07%28720x685%29.jpg",
+						width: 720,
+						height: 685
+					},
+					{
+						url: "http://odulvej8l.bkt.clouddn.com/%E6%96%B0%E5%B1%85%E5%BC%80%E8%8D%92_1_08%28720x1083%29.jpg",
+						width: 720,
+						height: 1083
+					},
+					{
+						url: "http://odulvej8l.bkt.clouddn.com/%E6%96%B0%E5%B1%85%E5%BC%80%E8%8D%92_1_09%28720x915%29.jpg",
+						width: 720,
+						height: 915
+					},
+					{
+						url: "http://odulvej8l.bkt.clouddn.com/%E6%96%B0%E5%B1%85%E5%BC%80%E8%8D%92_1_10%28720x785%29.jpg",
+						width: 720,
+						height: 785
+					},
+					{
+						url: "http://odulvej8l.bkt.clouddn.com/%E6%96%B0%E5%B1%85%E5%BC%80%E8%8D%92_1_11%28720x958%29.jpg",
+						width: 720,
+						height: 958
+					}
+				]*/
+			},
+			{
+				id: "57fb4a909f5160b2048b4a0e",
+				price: "10",
+				name: "擦玻璃",
+				// imgSrc: 'http://odulvej8l.bkt.clouddn.com/1128%E6%93%A6%E7%8E%BB%E7%92%83%E9%A6%96%E5%9B%BE%E6%94%B9.jpg',
+				desc: [{ "type": 1,  "content": "http://odulvej8l.bkt.clouddn.com/1128-%E7%8E%BB%E7%92%83%E6%B8%85%E6%B4%81_01.jpg"},{ "type": 1,  "content": "http://odulvej8l.bkt.clouddn.com/1128-%E7%8E%BB%E7%92%83%E6%B8%85%E6%B4%81_02.jpg"},{ "type": 1,  "content": "http://odulvej8l.bkt.clouddn.com/1128-%E7%8E%BB%E7%92%83%E6%B8%85%E6%B4%81_03.jpg"},{ "type": 1,  "content": "http://odulvej8l.bkt.clouddn.com/1128-%E7%8E%BB%E7%92%83%E6%B8%85%E6%B4%81_04.jpg"}],
+				status: 1,
+				is_extra: 0,
+				order: 0,
+				type: "10",
+				type_str: "擦玻璃",
+				action_user: "",
+				action_time: "",
+				action_log: "",
+				/*pics: [
+					{
+						url: "http://odulvej8l.bkt.clouddn.com/1128-%E7%8E%BB%E7%92%83%E6%B8%85%E6%B4%81_01%28720+608%29.jpg",
+						width: 720,
+						height: 608
+					},
+					{
+						url: "http://odulvej8l.bkt.clouddn.com/1128-%E7%8E%BB%E7%92%83%E6%B8%85%E6%B4%81_02%28720+802%29.jpg",
+						width: 720,
+						height: 802
+					},
+					{
+						url: "http://odulvej8l.bkt.clouddn.com/1128-%E7%8E%BB%E7%92%83%E6%B8%85%E6%B4%81_04%28720+516%29.jpg",
+						width: 720,
+						height: 516
+					},
+					{
+						url: "http://odulvej8l.bkt.clouddn.com/1128-%E7%8E%BB%E7%92%83%E6%B8%85%E6%B4%81_03%28720+666%29.jpg",
+						width: 720,
+						height: 666
+					},
+					{
+						url: "http://odulvej8l.bkt.clouddn.com/%E6%93%A6%E7%8E%BB%E7%92%83%E8%AF%A6%E6%83%85%E9%A1%B5_06%28720+820%29.jpg",
+						width: 720,
+						height: 802
+					},
+					{
+						url: "http://odulvej8l.bkt.clouddn.com/%E6%93%A6%E7%8E%BB%E7%92%83%E8%AF%A6%E6%83%85%E9%A1%B5_07%28720+1071%29.jpg",
+						width: 720,
+						height: 1071
+					},
+					{
+						url: "http://odulvej8l.bkt.clouddn.com/1128-%E7%8E%BB%E7%92%83%E6%B8%85%E6%B4%81_05%28720+846%29.jpg",
+						width: 720,
+						height: 846
+					}
+				]*/
+			},
+			{
+				id: "57e3a5a49f5160c9048b457c",
+				price: "",
+				name: "母婴房清洁",
+				// imgSrc: 'http://odulvej8l.bkt.clouddn.com/1128%E6%AF%8D%E5%A9%B4%E6%88%BF%E6%B8%85%E6%B4%81%E9%A6%96%E5%9B%BE.jpg',
+				desc: [{"type":1,"content":"http://odulvej8l.bkt.clouddn.com/1128%E6%AF%8D%E5%A9%B4%E6%88%BF%E6%B8%85%E6%B4%81%E9%A6%96%E5%9B%BE.jpg"},{"type":1,"content":"http://odulvej8l.bkt.clouddn.com/%E6%AF%8D%E5%A9%B4%E6%88%BF_1%28730x522%29.jpg"},{"type":1,"content":"http://odulvej8l.bkt.clouddn.com/%E6%AF%8D%E5%A9%B4%E6%88%BF_2%28730x791%29.jpg"},{"type":1,"content":"http://odulvej8l.bkt.clouddn.com/%E6%AF%8D%E5%A9%B4%E6%88%BF_3%28730x823%29.jpg"},{"type":1,"content":"http://odulvej8l.bkt.clouddn.com/%E6%AF%8D%E5%A9%B4%E6%88%BF_4%28730x808%29.jpg"},{"type":1,"content":"http://odulvej8l.bkt.clouddn.com/%E6%AF%8D%E5%A9%B4%E6%88%BF_5%28730x1196%29.jpg"},{"type":1,"content":"http://odulvej8l.bkt.clouddn.com/%E6%AF%8D%E5%A9%B4%E6%88%BF_6%28730x1111%29.jpg"}],
+				status: 1,
+				is_extra: 0,
+				order: 200,
+				type: "8",
+				type_str: "母婴房清洁",
+				extra: [
+					{
+						type: "整间日常清洁",
+						price: "388"
+					},
+					{
+						type: "整间深度清洁",
+						price: "888"
+					}
+				],
+				action_user: "",
+				action_time: "",
+				action_log: "",
+				/*pics: [
+					{
+						url: "http://odulvej8l.bkt.clouddn.com/1128%E6%AF%8D%E5%A9%B4%E6%88%BF%E6%B8%85%E6%B4%81%E9%A6%96%E5%9B%BE.jpg",
+						width: 750,
+						height: 585
+					},
+					{
+						url: "http://odulvej8l.bkt.clouddn.com/%E6%AF%8D%E5%A9%B4%E6%88%BF_1%28730x522%29.jpg",
+						width: 730,
+						height: 522
+					},
+					{
+						url: "http://odulvej8l.bkt.clouddn.com/%E6%AF%8D%E5%A9%B4%E6%88%BF_2%28730x791%29.jpg",
+						width: 730,
+						height: 791
+					},
+					{
+						url: "http://odulvej8l.bkt.clouddn.com/%E6%AF%8D%E5%A9%B4%E6%88%BF_3%28730x823%29.jpg",
+						width: 730,
+						height: 823
+					},
+					{
+						url: "http://odulvej8l.bkt.clouddn.com/%E6%AF%8D%E5%A9%B4%E6%88%BF_4%28730x808%29.jpg",
+						width: 730,
+						height: 808
+					},
+					{
+						url: "http://odulvej8l.bkt.clouddn.com/%E6%AF%8D%E5%A9%B4%E6%88%BF_5%28730x1196%29.jpg",
+						width: 730,
+						height: 1196
+					},
+					{
+						url: "http://odulvej8l.bkt.clouddn.com/%E6%AF%8D%E5%A9%B4%E6%88%BF_6%28730x1111%29.jpg",
+						width: 730,
+						height: 1111
+					}
+				]*/
+			},
+			{
+				id: "58085f4b9f5160a9048b490e",
+				name: "租房大扫除",
+				// imgSrc: 'http://odulvej8l.bkt.clouddn.com/1128%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E9%A6%96%E5%9B%BE%E6%94%B9.jpg',
+				desc: [{ "type": 1,  "content": "http://odulvej8l.bkt.clouddn.com/1128%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E9%A6%96%E5%9B%BE%E6%94%B9.jpg"},{ "type": 1,  "content": "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_02%28720x404%29.jpg"},{ "type": 1,  "content": "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_03%28720x783%29.jpg"},{ "type": 1,  "content": "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_04%28720x1048%29.jpg"},{ "type": 1,  "content": "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_05%28720x915%29.jpg"},{ "type": 1,  "content": "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_08%28720x1213%29.jpg"},{ "type": 1,  "content": "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_09%28720x657%29.jpg"},{ "type": 1,  "content": "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_10%28720x720%29.jpg"},{ "type": 1,  "content": "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_11%28720x1104%29.jpg"},{ "type": 1,  "content": "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_12%28720x951%29.jpg"},{ "type": 1,  "content": "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_13%28720x812%29.jpg"},{ "type": 1,  "content": "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_14%28720x850%29.jpg"}],
+				status: 1,
+				is_extra: 0,
+				order: 0,
+				type: "9",
+				type_str: "租房清洁",
+				extra: [
+					{
+						type: "客厅清洁",
+						price: "100"
+					},
+					{
+						type: "厨房清洁",
+						price: "150"
+					},
+					{
+						type: "卧室清洁",
+						price: "100"
+					},
+					{
+						type: "卫生间清洁",
+						price: "150"
+					}
+				],
+				action_user: "",
+				action_time: "",
+				action_log: "",
+				/*pics: [
+					{
+						url: "http://odulvej8l.bkt.clouddn.com/1128%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E9%A6%96%E5%9B%BE%E6%94%B9.jpg",
+						width: 750,
+						height: 585
+					},
+					{
+						url: "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_02%28720x404%29.jpg",
+						width: 720,
+						height: 404
+					},
+					{
+						url: "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_03%28720x783%29.jpg",
+						width: 720,
+						height: 783
+					},
+					{
+						url: "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_04%28720x1048%29.jpg",
+						width: 720,
+						height: 1048
+					},
+					{
+						url: "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_05%28720x915%29.jpg",
+						width: 720,
+						height: 915
+					},
+					{
+						url: "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_06%28720x758%29.jpg",
+						width: 720,
+						height: 758
+					},
+					{
+						url: "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_07%28720x1129%29.jpg",
+						width: 720,
+						height: 1129
+					},
+					{
+						url: "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_08%28720x1213%29.jpg",
+						width: 720,
+						height: 1213
+					},
+					{
+						url: "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_09%28720x657%29.jpg",
+						width: 720,
+						height: 657
+					},
+					{
+						url: "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_10%28720x720%29.jpg",
+						width: 720,
+						height: 720
+					},
+					{
+						url: "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_11%28720x1104%29.jpg",
+						width: 720,
+						height: 1104
+					},
+					{
+						url: "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_12%28720x951%29.jpg",
+						width: 720,
+						height: 951
+					},
+					{
+						url: "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_13%28720x812%29.jpg",
+						width: 720,
+						height: 812
+					},
+					{
+						url: "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_14%28720x850%29.jpg",
+						width: 720,
+						height: 850
+					}
+				]*/
+			},
+			{
+				id: "58324b7e9f5160a4048b5758",//test //583247cca84ea01d428b46a1 master//  58324b7e9f5160a4048b5758
+				price: "48",
+				name: "首单日常保洁2小时体验",//双11虹口区日常保洁特价体验//首单日常保洁2小时体验
+				// imgSrc: 'http://odulvej8l.bkt.clouddn.com/1%E6%97%A5%E5%B8%B8%E6%B8%85%E6%B4%81%E9%A6%96%E5%9B%BE.jpg',
+				desc: [{"type":1,"content":"http://odulvej8l.bkt.clouddn.com/1128-%E6%97%A5%E5%B8%B8%E6%B8%85%E6%B4%81_01.jpg"},{"type":1,"content":"http://odulvej8l.bkt.clouddn.com/1128-%E6%97%A5%E5%B8%B8%E6%B8%85%E6%B4%81_02.jpg"},{"type":1,"content":"http://odulvej8l.bkt.clouddn.com/1128-%E6%97%A5%E5%B8%B8%E6%B8%85%E6%B4%81_03.jpg"},{"type":1,"content":"http://odulvej8l.bkt.clouddn.com/1128-%E6%97%A5%E5%B8%B8%E6%B8%85%E6%B4%81_04.jpg"},{"type":1,"content":"http://odulvej8l.bkt.clouddn.com/1128-%E6%97%A5%E5%B8%B8%E6%B8%85%E6%B4%81_05.jpg"},{"type":1,"content":"http://odulvej8l.bkt.clouddn.com/1128-%E6%97%A5%E5%B8%B8%E6%B8%85%E6%B4%81_06.jpg"}],
+				status: 1,
+				is_extra: 0,
+				order: 0,
+				type: "11",
+				type_str: "日常保洁2小时体验",
+				action_user: "",
+				action_time: "",
+				action_log: "",
+				/*pics: [
+					{
+						url: "http://odulvej8l.bkt.clouddn.com/1128-%E6%97%A5%E5%B8%B8%E6%B8%85%E6%B4%81_01%28720+609%29.jpg",
+						width: 720,
+						height: 609
+					},
+					{
+						url: "http://odulvej8l.bkt.clouddn.com/1128-%E6%97%A5%E5%B8%B8%E6%B8%85%E6%B4%81_02%28720+811%29.jpg",
+						width: 720,
+						height: 811
+					},
+					{
+						url: "http://odulvej8l.bkt.clouddn.com/1128-%E6%97%A5%E5%B8%B8%E6%B8%85%E6%B4%81_03%28720+456%29.jpg",
+						width: 720,
+						height: 456
+					},
+					{
+						url: "http://odulvej8l.bkt.clouddn.com/1128-%E6%97%A5%E5%B8%B8%E6%B8%85%E6%B4%81_04%28720+1219%29.jpg",
+						width: 720,
+						height: 1219
+					},
+					{
+						url: "http://odulvej8l.bkt.clouddn.com/1128-%E6%97%A5%E5%B8%B8%E6%B8%85%E6%B4%81_05%28720+855%29.jpg",
+						width: 720,
+						height: 855
+					}
+				]*/
+			},
+			{
+				id: "5835418aa84ea0a7748b4587",//5835418aa84ea0a7748b4587
+				name: "小时工单次",
+				// imgSrc: 'http://odulvej8l.bkt.clouddn.com/1128%E9%95%BF%E6%9C%9F%E8%AE%A2%E9%A6%96%E5%9B%BE.jpg',
+				desc: [{"type":1,"content":"http://odulvej8l.bkt.clouddn.com/1128-%E6%97%A5%E5%B8%B8%E6%B8%85%E6%B4%81_01.jpg"},{"type":1,"content":"http://odulvej8l.bkt.clouddn.com/1128-%E6%97%A5%E5%B8%B8%E6%B8%85%E6%B4%81_02.jpg"},{"type":1,"content":"http://odulvej8l.bkt.clouddn.com/1128-%E6%97%A5%E5%B8%B8%E6%B8%85%E6%B4%81_03.jpg"},{"type":1,"content":"http://odulvej8l.bkt.clouddn.com/1128-%E6%97%A5%E5%B8%B8%E6%B8%85%E6%B4%81_04.jpg"},{"type":1,"content":"http://odulvej8l.bkt.clouddn.com/1128-%E6%97%A5%E5%B8%B8%E6%B8%85%E6%B4%81_05.jpg"},{"type":1,"content":"http://odulvej8l.bkt.clouddn.com/1128-%E6%97%A5%E5%B8%B8%E6%B8%85%E6%B4%81_06.jpg"}],
+				status: 1,
+				is_extra: 0,
+				order: 0,
+				type: "12",
+				type_str: "长期订",
+				extra: [
+					{
+						type: "2小时/人",
+						price: "90"
+					},
+					{
+						type: "3小时/人",
+						price: "135"
+					}
+				],
+				action_user: "",
+				action_time: "",
+				action_log: "",
+				/*pics: [
+					{
+						url: "http://odulvej8l.bkt.clouddn.com/1128%E9%95%BF%E6%9C%9F%E8%AE%A2%E9%A6%96%E5%9B%BE.jpg",
+						width: 750,
+						height: 585
+					},
+					{
+						url: "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_02%28720x404%29.jpg",
+						width: 720,
+						height: 404
+					},
+					{
+						url: "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_03%28720x783%29.jpg",
+						width: 720,
+						height: 783
+					},
+					{
+						url: "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_04%28720x1048%29.jpg",
+						width: 720,
+						height: 1048
+					},
+					{
+						url: "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_05%28720x915%29.jpg",
+						width: 720,
+						height: 915
+					},
+					{
+						url: "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_06%28720x758%29.jpg",
+						width: 720,
+						height: 758
+					},
+					{
+						url: "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_07%28720x1129%29.jpg",
+						width: 720,
+						height: 1129
+					},
+					{
+						url: "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_08%28720x1213%29.jpg",
+						width: 720,
+						height: 1213
+					},
+					{
+						url: "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_09%28720x657%29.jpg",
+						width: 720,
+						height: 657
+					},
+					{
+						url: "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_10%28720x720%29.jpg",
+						width: 720,
+						height: 720
+					},
+					{
+						url: "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_11%28720x1104%29.jpg",
+						width: 720,
+						height: 1104
+					},
+					{
+						url: "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_12%28720x951%29.jpg",
+						width: 720,
+						height: 951
+					},
+					{
+						url: "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_13%28720x812%29.jpg",
+						width: 720,
+						height: 812
+					},
+					{
+						url: "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_14%28720x850%29.jpg",
+						width: 720,
+						height: 850
+					}
+				]*/
+			},
+			{
+				id: "5835423fa84ea0ac7a8b4568",
+				name: "小时工多次",
+				// imgSrc: 'http://odulvej8l.bkt.clouddn.com/1128%E9%95%BF%E6%9C%9F%E8%AE%A2%E9%A6%96%E5%9B%BE.jpg',
+				desc: [{"type":1,"content":"http://odulvej8l.bkt.clouddn.com/1128-%E6%97%A5%E5%B8%B8%E6%B8%85%E6%B4%81_01.jpg"},{"type":1,"content":"http://odulvej8l.bkt.clouddn.com/1128-%E6%97%A5%E5%B8%B8%E6%B8%85%E6%B4%81_02.jpg"},{"type":1,"content":"http://odulvej8l.bkt.clouddn.com/1128-%E6%97%A5%E5%B8%B8%E6%B8%85%E6%B4%81_03.jpg"},{"type":1,"content":"http://odulvej8l.bkt.clouddn.com/1128-%E6%97%A5%E5%B8%B8%E6%B8%85%E6%B4%81_04.jpg"},{"type":1,"content":"http://odulvej8l.bkt.clouddn.com/1128-%E6%97%A5%E5%B8%B8%E6%B8%85%E6%B4%81_05.jpg"},{"type":1,"content":"http://odulvej8l.bkt.clouddn.com/1128-%E6%97%A5%E5%B8%B8%E6%B8%85%E6%B4%81_06.jpg"}],
+				status: 1,
+				is_extra: 0,
+				order: 0,
+				type: "12",
+				type_str: "长期订",
+				extra: [
+					{
+						type: "3张(2小时/人)",
+						price: "32"
+					},
+					{
+						type: "3张(3小时/人)",
+						price: "33"
+					},
+					{
+						type: "6张(2小时/人)",
+						price: "62"
+					},
+					{
+						type: "6张(3小时/人)",
+						price: "63"
+					}
+				],
+				action_user: "",
+				action_time: "",
+				action_log: "",
+				/*pics: [
+					{
+						url: "http://odulvej8l.bkt.clouddn.com/1128%E9%95%BF%E6%9C%9F%E8%AE%A2%E9%A6%96%E5%9B%BE.jpg",
+						width: 750,
+						height: 585
+					},
+					{
+						url: "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_02%28720x404%29.jpg",
+						width: 720,
+						height: 404
+					},
+					{
+						url: "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_03%28720x783%29.jpg",
+						width: 720,
+						height: 783
+					},
+					{
+						url: "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_04%28720x1048%29.jpg",
+						width: 720,
+						height: 1048
+					},
+					{
+						url: "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_05%28720x915%29.jpg",
+						width: 720,
+						height: 915
+					},
+					{
+						url: "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_06%28720x758%29.jpg",
+						width: 720,
+						height: 758
+					},
+					{
+						url: "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_07%28720x1129%29.jpg",
+						width: 720,
+						height: 1129
+					},
+					{
+						url: "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_08%28720x1213%29.jpg",
+						width: 720,
+						height: 1213
+					},
+					{
+						url: "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_09%28720x657%29.jpg",
+						width: 720,
+						height: 657
+					},
+					{
+						url: "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_10%28720x720%29.jpg",
+						width: 720,
+						height: 720
+					},
+					{
+						url: "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_11%28720x1104%29.jpg",
+						width: 720,
+						height: 1104
+					},
+					{
+						url: "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_12%28720x951%29.jpg",
+						width: 720,
+						height: 951
+					},
+					{
+						url: "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_13%28720x812%29.jpg",
+						width: 720,
+						height: 812
+					},
+					{
+						url: "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_14%28720x850%29.jpg",
+						width: 720,
+						height: 850
+					}
+				]*/
+			}
+		];
+		// this.allList=[];
+		//列出所有的产品
+		Product.prototype.getListAll = function (userID,callback) {
+			var that = this;
+			api.getProductList({
+				user_id: userID
+				// type: type
+			}, function (res) {
+				if(res.success){
+					// that.allList=res.data.products;
+				}
+				if (typeof (callback) == 'function') {
+					callback(res);
+				}
+			});
+		}
+	};
+	Product.prototype = new base();
 
-        /* 我新加的 */
-        /* this.allList = [
-         {
-         id: "57e0dffc9f5160dd048b4568",
-         name: "日常清洁",
-         imgSrc: 'http://odulvej8l.bkt.clouddn.com/Advertising_02.png',
-         desc: [{content: "http://odqeoyzxd.bkt.clouddn.com/image/image_rc.jpg"}, {content: "日常清洁"}],
-         status: 1,
-         is_extra: 0,
-         order: 0,
-         type: "1",
-         type_str: "日常清洁",
-         extra: [
-         {
-         type: "一室一卫",
-         price: "98"
-         },
-         {
-         type: "两室一卫",
-         price: "118"
-         },
-         {
-         type: "两室两卫",
-         price: "138"
-         },
-         {
-         type: "三室两卫",
-         price: "158"
-         },
-         {
-         type: "四室三卫",
-         price: "228"
-         },
-         {
-         type: "200-250平米",
-         price: "298"
-         },
-         {
-         type: "200-300平米",
-         price: "398"
-         },
-         {
-         type: "三层别墅",
-         price: "498"
-         },
-         {
-         type: "四层别墅",
-         price: "598"
-         }
-         ],
-         action_user: "",
-         action_time: "",
-         action_log: "",
-         pics: [
-         {
-         url: "http://odulvej8l.bkt.clouddn.com/Advertising_02.png",
-         width: 537,
-         height: 537
-         },
-         {
-         url: "http://odulvej8l.bkt.clouddn.com/a_01.png",
-         width: 720,
-         height: 1165
-         },
-         {
-         url: "http://oduj3utzz.bkt.clouddn.com/ada69b8adb17b1475912214579.png",
-         width: 720,
-         height: 1129
-         },
-         {
-         url: "http://oduj3utzz.bkt.clouddn.com/rcqj_xqy_03.jpg",
-         width: 720,
-         height: 1127
-         },
-         {
-         url: "http://oduj3utzz.bkt.clouddn.com/03c6e0266e4661475977941220.png",
-         width: 720,
-         height: 1178
-         },
-         {
-         url: "http://oduj3utzz.bkt.clouddn.com/1e3638af93cab1475977951089.jpg",
-         width: 720,
-         height: 1246
-         },
-         {
-         url: "http://oduj3utzz.bkt.clouddn.com/cfd996a3783d11475977959884.png",
-         width: 720,
-         height: 520
-         },
-         {
-         url: "http://oduj3utzz.bkt.clouddn.com/d67ff4fcad4bc1475977977827.png",
-         width: 720,
-         height: 644
-         },
-         {
-         url: "http://oduj3utzz.bkt.clouddn.com/78ce92ec0d52d1475977966417.png",
-         width: 720,
-         height: 644
-         }
-         ]
-         },
-         {
-         id: "57e0e0189f5160dc048b4568",
-         name: "深度清洁",
-         imgSrc: 'http://odulvej8l.bkt.clouddn.com/Advertising_01.png',
-         desc: [{content: "http://odqeoyzxd.bkt.clouddn.com/image/image_sd.jpg"}, {content: "深度清洁"}],
-         status: 1,
-         is_extra: 0,
-         order: 0,
-         type: "2",
-         type_str: "深度清洁",
-         extra: [
-         {
-         type: "卧室清洁",
-         price: "188"
-         },
-         {
-         type: "客厅清洁",
-         price: "288"
-         },
-         {
-         type: "厨房清洁",
-         price: "388"
-         },
-         {
-         type: "卫生间清洁",
-         price: "188"
-         }
-         ],
-         action_user: "",
-         action_time: "",
-         action_log: "",
-         pics: [
-         {
-         url: "http://odulvej8l.bkt.clouddn.com/Advertising_01.png",
-         width: 658,
-         height: 663
-         },
-         {
-         url: "http://odulvej8l.bkt.clouddn.com/a_01.png",
-         width: 720,
-         height: 1165
-         },
-         {
-         url: "http://oduj3utzz.bkt.clouddn.com/e295c92da2e7c1475913803198.png",
-         width: 720,
-         height: 1129
-         },
-         {
-         url: "http://oduj3utzz.bkt.clouddn.com/363f18ed617211475913944488.jpg",
-         width: 720,
-         height: 1246
-         },
-         {
-         url: "http://oduj3utzz.bkt.clouddn.com/64a1375694e091475913947183.png",
-         width: 720,
-         height: 715
-         },
-         {
-         url: "http://oduj3utzz.bkt.clouddn.com/8cf32629eece91475913957779.png",
-         width: 720,
-         height: 674
-         },
-         {
-         url: "http://oduj3utzz.bkt.clouddn.com/0ef470cf13ea51475914131334.jpg",
-         width: 720,
-         height: 786
-         },
-         {
-         url: "http://oduj3utzz.bkt.clouddn.com/341746e8065381475978339748.jpg",
-         width: 720,
-         height: 832
-         },
-         {
-         url: "http://oduj3utzz.bkt.clouddn.com/beb99ec9850041475978342874.jpg",
-         width: 720,
-         height: 1178
-         }
-         ]
-         },
-         {
-         id: "57e0e0369f5160b1048b456b",
-         name: "除螨杀菌",
-         imgSrc: 'http://odulvej8l.bkt.clouddn.com/Advertising_04.png',
-         desc: [{content: 'http://odqeoyzxd.bkt.clouddn.com/image/image_etsj.jpg'}, {content: "除螨杀菌"}],
-         status: 1,
-         is_extra: 0,
-         order: 0,
-         type: "3",
-         type_str: "除螨杀菌",
-         extra: [
-         {
-         type: "儿童床",
-         price: "80"
-         },
-         {
-         type: "布艺窗帘",
-         price: "100"
-         },
-         {
-         type: "整床除螨",
-         price: "180"
-         },
-         {
-         type: "整套布艺沙发",
-         price: "160"
-         }
-         ],
-         action_user: "",
-         action_time: "",
-         action_log: "",
-         pics: [
-         {
-         url: "http://odulvej8l.bkt.clouddn.com/Advertising_04.png",
-         width: 658,
-         height: 663
-         },
-         {
-         url: "http://odulvej8l.bkt.clouddn.com/a_01.png",
-         width: 720,
-         height: 1129
-         },
-         {
-         url: "http://oduj3utzz.bkt.clouddn.com/5536a4677fb781475914511648.jpg",
-         width: 720,
-         height: 1697
-         },
-         {
-         url: "http://oduj3utzz.bkt.clouddn.com/58eb5a44603191475914516767.jpg",
-         width: 720,
-         height: 1246
-         }
-         ]
-         },
-         {
-         id: "57e0e04e9f5160af048b456b",
-         name: "家电清洗",
-         imgSrc: 'http://odulvej8l.bkt.clouddn.com/Advertising_05.png',
-         desc: [{content: "http://odqeoyzxd.bkt.clouddn.com/image/image_jdqx.jpg"}, {content: "家电清洗"}],
-         status: 1,
-         is_extra: 0,
-         order: 0,
-         type: "4",
-         type_str: "家电清洗",
-         extra: [
-         {
-         type: "微波炉",
-         price: "60"
-         },
-         {
-         type: "洗衣机",
-         price: "100"
-         },
-         {
-         type: "油烟机",
-         price: "120"
-         },
-         {
-         type: "挂式空调",
-         price: "100"
-         },
-         {
-         type: "立式空调",
-         price: "130"
-         },
-         {
-         type: "冰箱-单开门",
-         price: "100"
-         },
-         {
-         type: "冰箱-双开门",
-         price: "130"
-         }
-         ],
-         action_user: "",
-         action_time: "",
-         action_log: "",
-         pics: [
-         {
-         url: "http://odulvej8l.bkt.clouddn.com/Advertising_05.png",
-         width: 537,
-         height: 537
-         },
-         {
-         url: "http://odulvej8l.bkt.clouddn.com/a_01.png",
-         width: 720,
-         height: 1165
-         },
-         {
-         url: "http://oduj3utzz.bkt.clouddn.com/0f29fa9bf28161475979068565.jpg",
-         width: 720,
-         height: 844
-         },
-         {
-         url: "http://oduj3utzz.bkt.clouddn.com/205de28a664c21475979065361.png",
-         width: 720,
-         height: 1129
-         },
-         {
-         url: "http://oduj3utzz.bkt.clouddn.com/f17ecbfe231231475979073441.jpg",
-         width: 720,
-         height: 1204
-         },
-         {
-         url: "http://oduj3utzz.bkt.clouddn.com/30daa83d817761475979080897.jpg",
-         width: 720,
-         height: 1246
-         },
-         {
-         url: "http://oduj3utzz.bkt.clouddn.com/3ee87b41d9d241475979077357.png",
-         width: 720,
-         height: 1257
-         },
-         {
-         url: "http://oduj3utzz.bkt.clouddn.com/06e7de122aab21475979086760.png",
-         width: 720,
-         height: 647
-         },
-         {
-         url: "http://oduj3utzz.bkt.clouddn.com/2973a12ec9a0f1475979093617.jpg",
-         width: 720,
-         height: 786
-         }
-         ]
-         },
-         {
-         id: "57e0e0879f5160b8048b4571",
-         price: "8",
-         name: "新居开荒-每平米",
-         imgSrc: 'http://odulvej8l.bkt.clouddn.com/Advertising_03.png',
-         desc: [{content: "http://odqeoyzxd.bkt.clouddn.com/image/image_kh.jpg"}, {content: '新居开荒'}],
-         status: 1,
-         is_extra: 0,
-         order: 0,
-         type: "5",
-         type_str: "新居开荒",
-         action_user: "",
-         action_time: "",
-         action_log: "",
-         pics: [
-         {
-         url: "http://odulvej8l.bkt.clouddn.com/Advertising_03.png",
-         width: 658,
-         height: 663
-         },
-         {
-         url: "http://odulvej8l.bkt.clouddn.com/%E6%96%B0%E5%B1%85%E5%BC%80%E8%8D%92-01.jpg",
-         width: 720,
-         height: 10637
-         }
-         ]
-         }, {
-         id: "57fb4a909f5160b2048b4a0e",
-         price: "10",
-         name: "擦玻璃-每平米",
-         imgSrc: 'http://odulvej8l.bkt.clouddn.com/%E5%A3%B9%E7%AE%A1%E5%AE%B6%E6%93%A6%E7%8E%BB%E7%92%83%E9%A6%96%E5%9B%BE.jpg',
-         desc: [{content: "http://odqeoyzxd.bkt.clouddn.com/image/image_kh.jpg"}, {content: '擦玻璃'}],
-         status: 1,
-         is_extra: 0,
-         order: 0,
-         type: "6",
-         type_str: "擦玻璃",
-         action_user: "",
-         action_time: "",
-         action_log: "",
-         pics: [
-         {
-         url: "http://odulvej8l.bkt.clouddn.com/%E6%93%A6%E7%8E%BB%E7%92%83%E8%AF%A6%E6%83%85%E9%A1%B5.jpg",
-         width: 720,
-         height: 11906
-         }
-         ]
-         },
-         {
-         id: "57e3a5a49f5160c9048b457c",
-         price: "",
-         name: "母婴房清洁",
-         imgSrc: 'http://odulvej8l.bkt.clouddn.com/Advertising_06.png',
-         desc: [{content: "http://7oxep6.com2.z0.glb.clouddn.com/0e287e871c3831474536840941.jpg"}, {content: '母婴房清洁'}],
-         status: 1,
-         is_extra: 0,
-         order: 200,
-         type: "7",
-         type_str: "母婴房清洁",
-         extra: [
-         {
-         type: "整间日常清洁",
-         price: "388"
-         },
-         {
-         type: "整间深度清洁",
-         price: "888"
-         }
-         ],
-         action_user: "",
-         action_time: "",
-         action_log: "",
-         pics: [
-         {
-         url: "http://odulvej8l.bkt.clouddn.com/Advertising_06.png",
-         width: 576,
-         height: 484
-         },
-         {
-         url: "http://oduj3utzz.bkt.clouddn.com/2a28708adeba61475912920337.jpg",
-         width: 730,
-         height: 522
-         },
-         {
-         url: "http://oduj3utzz.bkt.clouddn.com/49b77d125873d1475913063652.jpg",
-         width: 730,
-         height: 791
-         },
-         {
-         url: "http://oduj3utzz.bkt.clouddn.com/48787438272821475913069079.jpg",
-         width: 730,
-         height: 823
-         },
-         {
-         url: "http://oduj3utzz.bkt.clouddn.com/5f027131794191475913084173.jpg",
-         width: 730,
-         height: 808
-         },
-         {
-         url: "http://oduj3utzz.bkt.clouddn.com/0eb339c6872641475913124202.jpg",
-         width: 730,
-         height: 1196
-         },
-         {
-         url: "http://oduj3utzz.bkt.clouddn.com/1c48dcac293c31475913147997.jpg",
-         width: 730,
-         height: 1111
-         }
-         ]
-         },
-         {
-         id: "58085f4b9f5160a9048b490e",
-         name: "租房大扫除",
-         imgSrc: 'http://odulvej8l.bkt.clouddn.com/%E5%A3%B9%E7%AE%A1%E5%AE%B6%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E9%A6%96%E5%9B%BE.jpg',
-         desc: [{content: "http://odqeoyzxd.bkt.clouddn.com/image/image_jdqx.jpg"}, {content: "家电清洗"}],
-         status: 1,
-         is_extra: 0,
-         order: 0,
-         type: "8",
-         type_str: "租房大扫除",
-         extra: [
-         {
-         type: "客厅清洁",
-         price: "100"
-         },
-         {
-         type: "厨房清洁",
-         price: "150"
-         },
-         {
-         type: "卧室清洁",
-         price: "100"
-         },
-         {
-         type: "卫生间清洁",
-         price: "150"
-         }
-         ],
-         action_user: "",
-         action_time: "",
-         action_log: "",
-         pics: [
-         {
-         url: "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5.jpg",
-         width: 720,
-         height: 11906
-         }
-         ]
-         }
-         ];*/
-        /*图片压缩*/
-        this.allList = [
-            {
-                id: "57e0dffc9f5160dd048b4568",
-                name: "日常清洁",
-                imgSrc: 'http://odulvej8l.bkt.clouddn.com/1%E6%97%A5%E5%B8%B8%E6%B8%85%E6%B4%81%E9%A6%96%E5%9B%BE.jpg',
-                desc: [{content: "http://odqeoyzxd.bkt.clouddn.com/image/image_rc.jpg"}, {content: "日常清洁"}],
-                status: 1,
-                is_extra: 0,
-                order: 0,
-                type: "1",
-                type_str: "日常清洁",
-                extra: [
-                    {
-                        type: "一室一卫",
-                        price: "98"
-                    },
-                    {
-                        type: "两室一卫",
-                        price: "118"
-                    },
-                    {
-                        type: "两室两卫",
-                        price: "138"
-                    },
-                    {
-                        type: "三室两卫",
-                        price: "158"
-                    },
-                    {
-                        type: "四室三卫",
-                        price: "228"
-                    },
-                    {
-                        type: "200-250平米",
-                        price: "298"
-                    },
-                    {
-                        type: "200-300平米",
-                        price: "398"
-                    },
-                    {
-                        type: "三层别墅",
-                        price: "498"
-                    },
-                    {
-                        type: "四层别墅",
-                        price: "598"
-                    }
-                ],
-                action_user: "",
-                action_time: "",
-                action_log: "",
-                pics: [
-                    {
-                        url: "http://odulvej8l.bkt.clouddn.com/1%E6%97%A5%E5%B8%B8%E6%B8%85%E6%B4%81%E9%A6%96%E5%9B%BE.jpg",
-                        width: 537,
-                        height: 537
-                    },
-                    {
-                        url: "http://odulvej8l.bkt.clouddn.com/%E6%97%A5%E5%B8%B8%E6%B8%85%E6%B4%81_1%28720x1165%29.jpg",
-                        width: 720,
-                        height: 1165
-                    },
-                    {
-                        url: "http://odulvej8l.bkt.clouddn.com/%E6%97%A5%E5%B8%B8%E6%B8%85%E6%B4%81_2%28720x1129%29.jpg",
-                        width: 720,
-                        height: 1129
-                    },
-                    {
-                        url: "http://odulvej8l.bkt.clouddn.com/%E6%97%A5%E5%B8%B8%E6%B8%85%E6%B4%81_3%28720x1127%29.jpg",
-                        width: 720,
-                        height: 1127
-                    },
-                    {
-                        url: "http://odulvej8l.bkt.clouddn.com/%E6%97%A5%E5%B8%B8%E6%B8%85%E6%B4%81_4%28720x1178%29.jpg",
-                        width: 720,
-                        height: 1178
-                    },
-                    {
-                        url: "http://odulvej8l.bkt.clouddn.com/%E6%97%A5%E5%B8%B8%E6%B8%85%E6%B4%81_5%28720x1246%29.jpg",
-                        width: 720,
-                        height: 1246
-                    },
-                    {
-                        url: "http://odulvej8l.bkt.clouddn.com/%E6%97%A5%E5%B8%B8%E6%B8%85%E6%B4%81_6%28720x520%29.jpg",
-                        width: 720,
-                        height: 520
-                    },
-                    {
-                        url: "http://odulvej8l.bkt.clouddn.com/%E6%97%A5%E5%B8%B8%E6%B8%85%E6%B4%81_7%28720x644%29.jpg",
-                        width: 720,
-                        height: 644
-                    },
-                    {
-                        url: "http://odulvej8l.bkt.clouddn.com/%E6%97%A5%E5%B8%B8%E6%B8%85%E6%B4%81_8%28720x1257%29.jpg",
-                        width: 720,
-                        height: 644
-                    }
-                ]
-            },
-            {
-                id: "57e0e0189f5160dc048b4568",
-                name: "深度清洁",
-                imgSrc: 'http://odulvej8l.bkt.clouddn.com/2%E6%B7%B1%E5%BA%A6%E6%B8%85%E6%B4%81%E9%A6%96%E5%9B%BE.jpg',
-                desc: [{content: "http://odqeoyzxd.bkt.clouddn.com/image/image_sd.jpg"}, {content: "深度清洁"}],
-                status: 1,
-                is_extra: 0,
-                order: 0,
-                type: "2",
-                type_str: "深度清洁",
-                extra: [
-                    {
-                        type: "卧室清洁",
-                        price: "188"
-                    },
-                    {
-                        type: "客厅清洁",
-                        price: "288"
-                    },
-                    {
-                        type: "厨房清洁",
-                        price: "388"
-                    },
-                    {
-                        type: "卫生间清洁",
-                        price: "188"
-                    }
-                ],
-                action_user: "",
-                action_time: "",
-                action_log: "",
-                pics: [
-                    {
-                        url: "http://odulvej8l.bkt.clouddn.com/2%E6%B7%B1%E5%BA%A6%E6%B8%85%E6%B4%81%E9%A6%96%E5%9B%BE.jpg",
-                        width: 750,
-                        height: 585
-                    },
-                    {
-                        url: "http://odulvej8l.bkt.clouddn.com/%E6%B7%B1%E5%BA%A6%E6%B8%85%E6%B4%81_1%28720x1165%29.jpg",
-                        width: 720,
-                        height: 1165
-                    },
-                    {
-                        url: "http://odulvej8l.bkt.clouddn.com/%E6%B7%B1%E5%BA%A6%E6%B8%85%E6%B4%81_2%28720x1129%29.jpg",
-                        width: 720,
-                        height: 1129
-                    },
-                    {
-                        url: "http://odulvej8l.bkt.clouddn.com/%E6%B7%B1%E5%BA%A6%E6%B8%85%E6%B4%81_3%28720x1246%29.jpg",
-                        width: 720,
-                        height: 1246
-                    },
-                    {
-                        url: "http://odulvej8l.bkt.clouddn.com/%E6%B7%B1%E5%BA%A6%E6%B8%85%E6%B4%81_4%28720x715%29.jpg",
-                        width: 720,
-                        height: 715
-                    },
-                    {
-                        url: "http://odulvej8l.bkt.clouddn.com/%E6%B7%B1%E5%BA%A6%E6%B8%85%E6%B4%81_5%28720x674%29.jpg",
-                        width: 720,
-                        height: 674
-                    },
-                    {
-                        url: "http://odulvej8l.bkt.clouddn.com/%E6%B7%B1%E5%BA%A6%E6%B8%85%E6%B4%81_6%28720x786%29.jpg",
-                        width: 720,
-                        height: 786
-                    },
-                    {
-                        url: "http://odulvej8l.bkt.clouddn.com/%E6%B7%B1%E5%BA%A6%E6%B8%85%E6%B4%81_7%28720x832%29.jpg",
-                        width: 720,
-                        height: 832
-                    },
-                    {
-                        url: "http://odulvej8l.bkt.clouddn.com/%E6%B7%B1%E5%BA%A6%E6%B8%85%E6%B4%81_8%28720x1178%29.jpg",
-                        width: 720,
-                        height: 1178
-                    }
-                ]
-            },
-            {
-                id: "57e0e0369f5160b1048b456b",
-                name: "除螨杀菌",
-                imgSrc: 'http://odulvej8l.bkt.clouddn.com/3%E9%99%A4%E8%9E%A8%E6%9D%80%E8%8F%8C%E9%A6%96%E5%9B%BE.jpg',
-                desc: [{content: 'http://odqeoyzxd.bkt.clouddn.com/image/image_etsj.jpg'}, {content: "除螨杀菌"}],
-                status: 1,
-                is_extra: 0,
-                order: 0,
-                type: "3",
-                type_str: "除螨杀菌",
-                extra: [
-                    {
-                        type: "儿童床",
-                        price: "80"
-                    },
-                    {
-                        type: "布艺窗帘",
-                        price: "100"
-                    },
-                    {
-                        type: "整床除螨",
-                        price: "180"
-                    },
-                    {
-                        type: "整套布艺沙发",
-                        price: "160"
-                    }
-                ],
-                action_user: "",
-                action_time: "",
-                action_log: "",
-                pics: [
-                    {
-                        url: "http://odulvej8l.bkt.clouddn.com/3%E9%99%A4%E8%9E%A8%E6%9D%80%E8%8F%8C%E9%A6%96%E5%9B%BE.jpg",
-                        width: 720,
-                        height: 585
-                    },
-                    {
-                        url: "http://odulvej8l.bkt.clouddn.com/%E9%99%A4%E8%9E%A8%E6%9D%80%E8%8F%8C_1%28720+1165%29.jpg",
-                        width: 720,
-                        height: 1165
-                    },
-                    {
-                        url: "http://odulvej8l.bkt.clouddn.com/%E9%99%A4%E8%9E%A8%E6%9D%80%E8%8F%8C_2%28720+1697%29.jpg",
-                        width: 720,
-                        height: 1697
-                    },
-                    {
-                        url: "http://odulvej8l.bkt.clouddn.com/%E9%99%A4%E8%9E%A8%E6%9D%80%E8%8F%8C_3%28720+1246%29.jpg",
-                        width: 720,
-                        height: 1246
-                    }
-                ]
-            },
-            {
-                id: "57e0e04e9f5160af048b456b",
-                name: "家电清洗",
-                imgSrc: 'http://odulvej8l.bkt.clouddn.com/4%E5%AE%B6%E7%94%B5%E6%B8%85%E6%B4%97%E9%A6%96%E5%9B%BE.jpg',
-                desc: [{content: "http://odqeoyzxd.bkt.clouddn.com/image/image_jdqx.jpg"}, {content: "家电清洗"}],
-                status: 1,
-                is_extra: 0,
-                order: 0,
-                type: "4",
-                type_str: "家电清洗",
-                extra: [
-                    {
-                        type: "微波炉",
-                        price: "60"
-                    },
-                    {
-                        type: "洗衣机",
-                        price: "100"
-                    },
-                    {
-                        type: "油烟机",
-                        price: "120"
-                    },
-                    {
-                        type: "挂式空调",
-                        price: "100"
-                    },
-                    {
-                        type: "立式空调",
-                        price: "130"
-                    },
-                    {
-                        type: "冰箱-单开门",
-                        price: "100"
-                    },
-                    {
-                        type: "冰箱-双开门",
-                        price: "130"
-                    }
-                ],
-                action_user: "",
-                action_time: "",
-                action_log: "",
-                pics: [
-                    {
-                        url: "http://odulvej8l.bkt.clouddn.com/4%E5%AE%B6%E7%94%B5%E6%B8%85%E6%B4%97%E9%A6%96%E5%9B%BE.jpg",
-                        width: 720,
-                        height: 585
-                    },
-                    {
-                        url: "http://odulvej8l.bkt.clouddn.com/%E5%AE%B6%E7%94%B5%E6%B8%85%E6%B4%97_1%28720+1165%29.jpg",
-                        width: 720,
-                        height: 1165
-                    },
-                    {
-                        url: "http://odulvej8l.bkt.clouddn.com/%E5%AE%B6%E7%94%B5%E6%B8%85%E6%B4%97_2%28720+844%29.jpg",
-                        width: 720,
-                        height: 844
-                    },
-                    {
-                        url: "http://odulvej8l.bkt.clouddn.com/%E5%AE%B6%E7%94%B5%E6%B8%85%E6%B4%97_3%28720+1129%29.jpg",
-                        width: 720,
-                        height: 1129
-                    },
-                    {
-                        url: "http://odulvej8l.bkt.clouddn.com/%E5%AE%B6%E7%94%B5%E6%B8%85%E6%B4%97_4%28720+1204%29.jpg",
-                        width: 720,
-                        height: 1204
-                    },
-                    {
-                        url: "http://odulvej8l.bkt.clouddn.com/%E5%AE%B6%E7%94%B5%E6%B8%85%E6%B4%97_5%28720+1246%29.jpg",
-                        width: 720,
-                        height: 1246
-                    },
-                    {
-                        url: "http://odulvej8l.bkt.clouddn.com/%E5%AE%B6%E7%94%B5%E6%B8%85%E6%B4%97_6%28720+1257%29.jpg",
-                        width: 720,
-                        height: 1257
-                    },
-                    {
-                        url: "http://odulvej8l.bkt.clouddn.com/%E5%AE%B6%E7%94%B5%E6%B8%85%E6%B4%97_7%28720+674%29.jpg",
-                        width: 720,
-                        height: 647
-                    },
-                    {
-                        url: "http://odulvej8l.bkt.clouddn.com/%E5%AE%B6%E7%94%B5%E6%B8%85%E6%B4%97_8%28720+786%29.jpg",
-                        width: 720,
-                        height: 786
-                    }
-                ]
-            },
-            {
-                id: "57e0e0879f5160b8048b4571",
-                price: "8",
-                name: "新居开荒",
-                imgSrc: 'http://odulvej8l.bkt.clouddn.com/5%E6%96%B0%E5%B1%85%E5%BC%80%E8%8D%92%E9%A6%96%E5%9B%BE.jpg',
-                desc: [{content: "http://odqeoyzxd.bkt.clouddn.com/image/image_kh.jpg"}, {content: '新居开荒'}],
-                status: 1,
-                is_extra: 0,
-                order: 0,
-                type: "6",
-                type_str: "新居开荒",
-                action_user: "",
-                action_time: "",
-                action_log: "",
-                pics: [
-                    {
-                        url: "http://odulvej8l.bkt.clouddn.com/5%E6%96%B0%E5%B1%85%E5%BC%80%E8%8D%92%E9%A6%96%E5%9B%BE.jpg",
-                        width: 750,
-                        height: 585
-                    },
-                    {
-                        url: "http://odulvej8l.bkt.clouddn.com/%E6%96%B0%E5%B1%85%E5%BC%80%E8%8D%92_1_01%28720x1209%29.jpg",
-                        width: 720,
-                        height: 1209
-                    },
-                    {
-                        url: "http://odulvej8l.bkt.clouddn.com/%E6%96%B0%E5%B1%85%E5%BC%80%E8%8D%92_1_02%28720x1041%29.jpg",
-                        width: 720,
-                        height: 1041
-                    },
-                    {
-                        url: "http://odulvej8l.bkt.clouddn.com/%E6%96%B0%E5%B1%85%E5%BC%80%E8%8D%92_1_03%28720x1264%29.jpg",
-                        width: 720,
-                        height: 1264
-                    },
-                    {
-                        url: "http://odulvej8l.bkt.clouddn.com/%E6%96%B0%E5%B1%85%E5%BC%80%E8%8D%92_1_04%28720x1295%29.jpg",
-                        width: 720,
-                        height: 1295
-                    },
-                    {
-                        url: "http://odulvej8l.bkt.clouddn.com/%E6%96%B0%E5%B1%85%E5%BC%80%E8%8D%92_1_05%28720x685%29.jpg",
-                        width: 720,
-                        height: 685
-                    },
-                    {
-                        url: "http://odulvej8l.bkt.clouddn.com/%E6%96%B0%E5%B1%85%E5%BC%80%E8%8D%92_1_06%28720x717%29.jpg",
-                        width: 720,
-                        height: 717
-                    },
-                    {
-                        url: "http://odulvej8l.bkt.clouddn.com/%E6%96%B0%E5%B1%85%E5%BC%80%E8%8D%92_1_07%28720x685%29.jpg",
-                        width: 720,
-                        height: 685
-                    },
-                    {
-                        url: "http://odulvej8l.bkt.clouddn.com/%E6%96%B0%E5%B1%85%E5%BC%80%E8%8D%92_1_08%28720x1083%29.jpg",
-                        width: 720,
-                        height: 1083
-                    },
-                    {
-                        url: "http://odulvej8l.bkt.clouddn.com/%E6%96%B0%E5%B1%85%E5%BC%80%E8%8D%92_1_09%28720x915%29.jpg",
-                        width: 720,
-                        height: 915
-                    },
-                    {
-                        url: "http://odulvej8l.bkt.clouddn.com/%E6%96%B0%E5%B1%85%E5%BC%80%E8%8D%92_1_10%28720x785%29.jpg",
-                        width: 720,
-                        height: 785
-                    },
-                    {
-                        url: "http://odulvej8l.bkt.clouddn.com/%E6%96%B0%E5%B1%85%E5%BC%80%E8%8D%92_1_11%28720x958%29.jpg",
-                        width: 720,
-                        height: 958
-                    }
-                ]
-            },
-            {
-                id: "57fb4a909f5160b2048b4a0e",
-                price: "10",
-                name: "擦玻璃",
-                imgSrc: 'http://odulvej8l.bkt.clouddn.com/6%E6%93%A6%E7%8E%BB%E7%92%83%E9%A6%96%E5%9B%BE2.jpg',
-                desc: [{content: "http://odqeoyzxd.bkt.clouddn.com/image/image_kh.jpg"}, {content: '擦玻璃'}],
-                status: 1,
-                is_extra: 0,
-                order: 0,
-                type: "10",
-                type_str: "擦玻璃",
-                action_user: "",
-                action_time: "",
-                action_log: "",
-                pics: [
-                    {
-                        url: "http://odulvej8l.bkt.clouddn.com/6%E6%93%A6%E7%8E%BB%E7%92%83%E9%A6%96%E5%9B%BE2.jpg",
-                        width: 720,
-                        height: 560
-                    },
-                    {
-                        url: "http://odulvej8l.bkt.clouddn.com/%E6%93%A6%E7%8E%BB%E7%92%83%E8%AF%A6%E6%83%85%E9%A1%B5_02%28720+587%29.jpg",
-                        width: 720,
-                        height: 587
-                    },
-                    {
-                        url: "http://odulvej8l.bkt.clouddn.com/%E6%93%A6%E7%8E%BB%E7%92%83%E8%AF%A6%E6%83%85%E9%A1%B5_03%28720+600%29.jpg",
-                        width: 720,
-                        height: 600
-                    },
-                    {
-                        url: "http://odulvej8l.bkt.clouddn.com/%E6%93%A6%E7%8E%BB%E7%92%83%E8%AF%A6%E6%83%85%E9%A1%B5_04%28720+1061%29.jpg",
-                        width: 720,
-                        height: 1061
-                    },
-                    {
-                        url: "http://odulvej8l.bkt.clouddn.com/%E6%93%A6%E7%8E%BB%E7%92%83%E8%AF%A6%E6%83%85%E9%A1%B5_05%28720+906%29.jpg",
-                        width: 720,
-                        height: 906
-                    },
-                    {
-                        url: "http://odulvej8l.bkt.clouddn.com/%E6%93%A6%E7%8E%BB%E7%92%83%E8%AF%A6%E6%83%85%E9%A1%B5_06%28720+820%29.jpg",
-                        width: 720,
-                        height: 802
-                    },
-                    {
-                        url: "http://odulvej8l.bkt.clouddn.com/%E6%93%A6%E7%8E%BB%E7%92%83%E8%AF%A6%E6%83%85%E9%A1%B5_07%28720+1071%29.jpg",
-                        width: 720,
-                        height: 1071
-                    },
-                    {
-                        url: "http://odulvej8l.bkt.clouddn.com/%E6%93%A6%E7%8E%BB%E7%92%83%E8%AF%A6%E6%83%85%E9%A1%B5_08%28720+1204%29.jpg",
-                        width: 720,
-                        height: 1204
-                    },
-                    {
-                        url: "http://odulvej8l.bkt.clouddn.com/%E6%93%A6%E7%8E%BB%E7%92%83%E8%AF%A6%E6%83%85%E9%A1%B5_09%28720+720%29.jpg",
-                        width: 720,
-                        height: 720
-                    },
-                    {
-                        url: "http://odulvej8l.bkt.clouddn.com/%E6%93%A6%E7%8E%BB%E7%92%83%E8%AF%A6%E6%83%85%E9%A1%B5_10%28720+678%29.jpg",
-                        width: 720,
-                        height: 678
-                    },
-                    {
-                        url: "http://odulvej8l.bkt.clouddn.com/%E6%93%A6%E7%8E%BB%E7%92%83%E8%AF%A6%E6%83%85%E9%A1%B5_11%28720+1098%29.jpg",
-                        width: 720,
-                        height: 1098
-                    },
-                    {
-                        url: "http://odulvej8l.bkt.clouddn.com/%E6%93%A6%E7%8E%BB%E7%92%83%E8%AF%A6%E6%83%85%E9%A1%B5_12%28720+899%29.jpg",
-                        width: 720,
-                        height: 899
-                    },
-                    {
-                        url: "http://odulvej8l.bkt.clouddn.com/%E6%93%A6%E7%8E%BB%E7%92%83%E8%AF%A6%E6%83%85%E9%A1%B5_13%28720+1702%29.jpg",
-                        width: 720,
-                        height: 1702
-                    }
-                ]
-            },
-            {
-                id: "57e3a5a49f5160c9048b457c",
-                price: "",
-                name: "母婴房清洁",
-                imgSrc: 'http://odulvej8l.bkt.clouddn.com/7%E6%AF%8D%E5%A9%B4%E6%88%BF%E6%B8%85%E6%B4%81%E9%A6%96%E5%9B%BE.jpg',
-                desc: [{content: "http://7oxep6.com2.z0.glb.clouddn.com/0e287e871c3831474536840941.jpg"}, {content: '母婴房清洁'}],
-                status: 1,
-                is_extra: 0,
-                order: 200,
-                type: "8",
-                type_str: "母婴房清洁",
-                extra: [
-                    {
-                        type: "整间日常清洁",
-                        price: "388"
-                    },
-                    {
-                        type: "整间深度清洁",
-                        price: "888"
-                    }
-                ],
-                action_user: "",
-                action_time: "",
-                action_log: "",
-                pics: [
-                    {
-                        url: "http://odulvej8l.bkt.clouddn.com/7%E6%AF%8D%E5%A9%B4%E6%88%BF%E6%B8%85%E6%B4%81%E9%A6%96%E5%9B%BE.jpg",
-                        width: 750,
-                        height: 585
-                    },
-                    {
-                        url: "http://odulvej8l.bkt.clouddn.com/%E6%AF%8D%E5%A9%B4%E6%88%BF_1%28730x522%29.jpg",
-                        width: 730,
-                        height: 522
-                    },
-                    {
-                        url: "http://odulvej8l.bkt.clouddn.com/%E6%AF%8D%E5%A9%B4%E6%88%BF_2%28730x791%29.jpg",
-                        width: 730,
-                        height: 791
-                    },
-                    {
-                        url: "http://odulvej8l.bkt.clouddn.com/%E6%AF%8D%E5%A9%B4%E6%88%BF_3%28730x823%29.jpg",
-                        width: 730,
-                        height: 823
-                    },
-                    {
-                        url: "http://odulvej8l.bkt.clouddn.com/%E6%AF%8D%E5%A9%B4%E6%88%BF_4%28730x808%29.jpg",
-                        width: 730,
-                        height: 808
-                    },
-                    {
-                        url: "http://odulvej8l.bkt.clouddn.com/%E6%AF%8D%E5%A9%B4%E6%88%BF_5%28730x1196%29.jpg",
-                        width: 730,
-                        height: 1196
-                    },
-                    {
-                        url: "http://odulvej8l.bkt.clouddn.com/%E6%AF%8D%E5%A9%B4%E6%88%BF_6%28730x1111%29.jpg",
-                        width: 730,
-                        height: 1111
-                    }
-                ]
-            },
-            {
-                id: "58085f4b9f5160a9048b490e",
-                name: "租房大扫除",
-                imgSrc: 'http://odulvej8l.bkt.clouddn.com/8%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E9%A6%96%E5%9B%BE%E6%94%B9.jpg',
-                desc: [{content: "http://odqeoyzxd.bkt.clouddn.com/image/image_jdqx.jpg"}, {content: "家电清洗"}],
-                status: 1,
-                is_extra: 0,
-                order: 0,
-                type: "9",
-                type_str: "租房清洁",
-                extra: [
-                    {
-                        type: "客厅清洁",
-                        price: "100"
-                    },
-                    {
-                        type: "厨房清洁",
-                        price: "150"
-                    },
-                    {
-                        type: "卧室清洁",
-                        price: "100"
-                    },
-                    {
-                        type: "卫生间清洁",
-                        price: "150"
-                    }
-                ],
-                action_user: "",
-                action_time: "",
-                action_log: "",
-                pics: [
-                    {
-                        url: "http://odulvej8l.bkt.clouddn.com/8%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E9%A6%96%E5%9B%BE%E6%94%B9.jpg",
-                        width: 720,
-                        height: 562
-                    },
-                    {
-                        url: "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_02%28720x404%29.jpg",
-                        width: 720,
-                        height: 404
-                    },
-                    {
-                        url: "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_03%28720x783%29.jpg",
-                        width: 720,
-                        height: 783
-                    },
-                    {
-                        url: "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_04%28720x1048%29.jpg",
-                        width: 720,
-                        height: 1048
-                    },
-                    {
-                        url: "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_05%28720x915%29.jpg",
-                        width: 720,
-                        height: 915
-                    },
-                    {
-                        url: "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_06%28720x758%29.jpg",
-                        width: 720,
-                        height: 758
-                    },
-                    {
-                        url: "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_07%28720x1129%29.jpg",
-                        width: 720,
-                        height: 1129
-                    },
-                    {
-                        url: "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_08%28720x1213%29.jpg",
-                        width: 720,
-                        height: 1213
-                    },
-                    {
-                        url: "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_09%28720x657%29.jpg",
-                        width: 720,
-                        height: 657
-                    },
-                    {
-                        url: "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_10%28720x720%29.jpg",
-                        width: 720,
-                        height: 720
-                    },
-                    {
-                        url: "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_11%28720x1104%29.jpg",
-                        width: 720,
-                        height: 1104
-                    },
-                    {
-                        url: "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_12%28720x951%29.jpg",
-                        width: 720,
-                        height: 951
-                    },
-                    {
-                        url: "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_13%28720x812%29.jpg",
-                        width: 720,
-                        height: 812
-                    },
-                    {
-                        url: "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_14%28720x850%29.jpg",
-                        width: 720,
-                        height: 850
-                    }
-                ]
-            },
-            {
-                id: "58324b7e9f5160a4048b5758",//test //583247cca84ea01d428b46a1 master//  58324b7e9f5160a4048b5758
-                price: "48",
-                name: "首单日常保洁2小时体验",//双11虹口区日常保洁特价体验//首单日常保洁2小时体验
-                imgSrc: 'http://odulvej8l.bkt.clouddn.com/1%E6%97%A5%E5%B8%B8%E6%B8%85%E6%B4%81%E9%A6%96%E5%9B%BE.jpg',
-                desc: [{content: "http://odqeoyzxd.bkt.clouddn.com/image/image_rc.jpg"}, {content: "日常清洁"}],
-                status: 1,
-                is_extra: 0,
-                order: 0,
-                type: "11",
-                type_str: "日常保洁2小时体验",
-                action_user: "",
-                action_time: "",
-                action_log: "",
-                pics: [
-                    {
-                        url: "http://odulvej8l.bkt.clouddn.com/1%E6%97%A5%E5%B8%B8%E6%B8%85%E6%B4%81%E9%A6%96%E5%9B%BE.jpg",
-                        width: 537,
-                        height: 537
-                    },
-                    {
-                        url: "http://odulvej8l.bkt.clouddn.com/%E6%97%A5%E5%B8%B8%E6%B8%85%E6%B4%81_1%28720x1165%29.jpg",
-                        width: 720,
-                        height: 1165
-                    },
-                    {
-                        url: "http://odulvej8l.bkt.clouddn.com/%E6%97%A5%E5%B8%B8%E6%B8%85%E6%B4%81_2%28720x1129%29.jpg",
-                        width: 720,
-                        height: 1129
-                    },
-                    {
-                        url: "http://odulvej8l.bkt.clouddn.com/%E6%97%A5%E5%B8%B8%E6%B8%85%E6%B4%81_3%28720x1127%29.jpg",
-                        width: 720,
-                        height: 1127
-                    },
-                    {
-                        url: "http://odulvej8l.bkt.clouddn.com/%E6%97%A5%E5%B8%B8%E6%B8%85%E6%B4%81_4%28720x1178%29.jpg",
-                        width: 720,
-                        height: 1178
-                    },
-                    {
-                        url: "http://odulvej8l.bkt.clouddn.com/%E6%97%A5%E5%B8%B8%E6%B8%85%E6%B4%81_5%28720x1246%29.jpg",
-                        width: 720,
-                        height: 1246
-                    },
-                    {
-                        url: "http://odulvej8l.bkt.clouddn.com/%E6%97%A5%E5%B8%B8%E6%B8%85%E6%B4%81_6%28720x520%29.jpg",
-                        width: 720,
-                        height: 520
-                    },
-                    {
-                        url: "http://odulvej8l.bkt.clouddn.com/%E6%97%A5%E5%B8%B8%E6%B8%85%E6%B4%81_7%28720x644%29.jpg",
-                        width: 720,
-                        height: 644
-                    },
-                    {
-                        url: "http://odulvej8l.bkt.clouddn.com/%E6%97%A5%E5%B8%B8%E6%B8%85%E6%B4%81_8%28720x1257%29.jpg",
-                        width: 720,
-                        height: 644
-                    }
-                ]
-            },
-	          {
-		        id: "5835418aa84ea0a7748b4587",//5835418aa84ea0a7748b4587
-		        name: "小时工单次",
-		        imgSrc: 'http://odulvej8l.bkt.clouddn.com/8%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E9%A6%96%E5%9B%BE%E6%94%B9.jpg',
-		        desc: [{content: "http://odqeoyzxd.bkt.clouddn.com/image/image_jdqx.jpg"}, {content: "家电清洗"}],
-		        status: 1,
-		        is_extra: 0,
-		        order: 0,
-		        type: "12",
-		        type_str: "长期订",
-		        extra: [
-			        {
-				        type: "2小时/人",
-				        price: "90"
-			        },
-			        {
-				        type: "3小时/人",
-				        price: "135"
-			        }
-		        ],
-		        action_user: "",
-		        action_time: "",
-		        action_log: "",
-		        pics: [
-			        {
-				        url: "http://odulvej8l.bkt.clouddn.com/8%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E9%A6%96%E5%9B%BE%E6%94%B9.jpg",
-				        width: 720,
-				        height: 562
-			        },
-			        {
-				        url: "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_02%28720x404%29.jpg",
-				        width: 720,
-				        height: 404
-			        },
-			        {
-				        url: "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_03%28720x783%29.jpg",
-				        width: 720,
-				        height: 783
-			        },
-			        {
-				        url: "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_04%28720x1048%29.jpg",
-				        width: 720,
-				        height: 1048
-			        },
-			        {
-				        url: "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_05%28720x915%29.jpg",
-				        width: 720,
-				        height: 915
-			        },
-			        {
-				        url: "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_06%28720x758%29.jpg",
-				        width: 720,
-				        height: 758
-			        },
-			        {
-				        url: "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_07%28720x1129%29.jpg",
-				        width: 720,
-				        height: 1129
-			        },
-			        {
-				        url: "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_08%28720x1213%29.jpg",
-				        width: 720,
-				        height: 1213
-			        },
-			        {
-				        url: "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_09%28720x657%29.jpg",
-				        width: 720,
-				        height: 657
-			        },
-			        {
-				        url: "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_10%28720x720%29.jpg",
-				        width: 720,
-				        height: 720
-			        },
-			        {
-				        url: "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_11%28720x1104%29.jpg",
-				        width: 720,
-				        height: 1104
-			        },
-			        {
-				        url: "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_12%28720x951%29.jpg",
-				        width: 720,
-				        height: 951
-			        },
-			        {
-				        url: "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_13%28720x812%29.jpg",
-				        width: 720,
-				        height: 812
-			        },
-			        {
-				        url: "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_14%28720x850%29.jpg",
-				        width: 720,
-				        height: 850
-			        }
-		        ]
-	        },
-	          {
-		        id: "5835423fa84ea0ac7a8b4568",
-		        name: "小时工多次",
-		        imgSrc: 'http://odulvej8l.bkt.clouddn.com/8%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E9%A6%96%E5%9B%BE%E6%94%B9.jpg',
-		        desc: [{content: "http://odqeoyzxd.bkt.clouddn.com/image/image_jdqx.jpg"}, {content: "家电清洗"}],
-		        status: 1,
-		        is_extra: 0,
-		        order: 0,
-		        type: "12",
-		        type_str: "长期订",
-		        extra: [
-			        {
-				        type: "3张(2小时/人)",
-				        price: "32"
-			        },
-			        {
-				        type: "3张(3小时/人)",
-				        price: "33"
-			        },
-			        {
-				        type: "6张(2小时/人)",
-				        price: "62"
-			        },
-			        {
-				        type: "6张(3小时/人)",
-				        price: "63"
-			        }
-		        ],
-		        action_user: "",
-		        action_time: "",
-		        action_log: "",
-		        pics: [
-			        {
-				        url: "http://odulvej8l.bkt.clouddn.com/8%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E9%A6%96%E5%9B%BE%E6%94%B9.jpg",
-				        width: 720,
-				        height: 562
-			        },
-			        {
-				        url: "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_02%28720x404%29.jpg",
-				        width: 720,
-				        height: 404
-			        },
-			        {
-				        url: "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_03%28720x783%29.jpg",
-				        width: 720,
-				        height: 783
-			        },
-			        {
-				        url: "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_04%28720x1048%29.jpg",
-				        width: 720,
-				        height: 1048
-			        },
-			        {
-				        url: "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_05%28720x915%29.jpg",
-				        width: 720,
-				        height: 915
-			        },
-			        {
-				        url: "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_06%28720x758%29.jpg",
-				        width: 720,
-				        height: 758
-			        },
-			        {
-				        url: "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_07%28720x1129%29.jpg",
-				        width: 720,
-				        height: 1129
-			        },
-			        {
-				        url: "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_08%28720x1213%29.jpg",
-				        width: 720,
-				        height: 1213
-			        },
-			        {
-				        url: "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_09%28720x657%29.jpg",
-				        width: 720,
-				        height: 657
-			        },
-			        {
-				        url: "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_10%28720x720%29.jpg",
-				        width: 720,
-				        height: 720
-			        },
-			        {
-				        url: "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_11%28720x1104%29.jpg",
-				        width: 720,
-				        height: 1104
-			        },
-			        {
-				        url: "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_12%28720x951%29.jpg",
-				        width: 720,
-				        height: 951
-			        },
-			        {
-				        url: "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_13%28720x812%29.jpg",
-				        width: 720,
-				        height: 812
-			        },
-			        {
-				        url: "http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BF%E5%A4%A7%E6%89%AB%E9%99%A4%E8%AF%A6%E6%83%85%E9%A1%B5_14%28720x850%29.jpg",
-				        width: 720,
-				        height: 850
-			        }
-		        ]
-	        }
-        ];
-        //列出所有的产品
-        Product.prototype.getListAll = function (userID, callback) {
-            var that = this;
-            api.getProductList({
-                user_id: userID,
-                // type: type
-            }, function (res) {
-                if (res.success) {
-                    that.productList = {};
-                    var petDic = {};
-                    var productDatas = res['data']['products'];
-                    var extraroducts = res['data']['extra_products'];
-                    // that.extraService = extraroducts;
-
-                    for (var i in that.productGroup) {
-                        that.productGroup[i] = [];
-                    }
-
-                    for (var i in that.extraProductGroup) {
-                        that.extraProductGroup[i] = [];
-                    }
-
-                    for (var i = 0, len = productDatas.length; i < len; i++) {
-                        var eachProduct = productDatas[i];
-                        that.productGroup[eachProduct['type']].push(eachProduct);
-                        var petIDs = [];
-
-
-                        that.productDic[eachProduct.id] = {//产品中心
-                            petIDs: petIDs,//宠物ID
-                            maxWeight: eachProduct.max_weight,//产品最大
-                            minWeight: eachProduct.min_weight,//产品最小
-                            // price: parseFloat(eachProduct.price).toFixed(2)
-                            price: parseFloat(eachProduct.price)//解析产品价格
-                            // 价格不要加小数点后两位
-                        };
-                    }
-
-
-                    // for (var petID in petDic) {
-                    //   that.productGroup[eachProduct['type']].push(petDic[petID]);
-                    // }
-                }
-                if (typeof (callback) == 'function') {
-                    callback(res);
-                }
-            });
-        }
-    };
-
-    //列出所有的产品
-    Product.prototype.getListAll = function (userID) {
-        api.getProductList({
-            user_id: userID
-        });
-    };
-
-    Product.prototype = new base();
-
-    return new Product();
+	return new Product();
 });

+ 1 - 1
www/webapp/o2o/js/model/user.js

@@ -8,7 +8,7 @@ define(['base', '$', 'native', 'api', 'order', 'config', 'address'], function (b
 		}
 		User.instance = this;
 		this.storagePrefix = 'user_';
-		this.id = ''; //57e22bb59f5160c2048b456c//57e38f1b9f5160ac048b457d
+		this.id = '57e38f1b9f5160ac048b457d'; //57e22bb59f5160c2048b456c//57e38f1b9f5160ac048b457d
 		this.lastID = this.getCache('lastID', null, '');
 		this.name = '';
 		this.avatar='';

+ 4 - 6
www/webapp/o2o/js/page/activities/day.js

@@ -21,7 +21,6 @@ define(['$', 'template', 'IScroll', 'recharge', 'native', 'config', 'user', 'pro
 			// 返回
 			$view.on('swipeRight', function (event) {
 				back.call(this, event);
-				// history.go(-1);
 			});
 
 			/*特效*/
@@ -31,21 +30,19 @@ define(['$', 'template', 'IScroll', 'recharge', 'native', 'config', 'user', 'pro
 
 			$.newTouch('.back-button', function (event) {
 				back.call(this, event);
-				// history.go(-1);
 			}, $view);
 
 			$view.on('tapBackButton', function (event) {
 				back.call(this, event);
-				// history.go(-1);
 			});
 			//跳转下单页面
 			$.newTouch('.btn-appliances', function (event) {
 				event.preventDefault();
 				var type = parseInt($(this).attr('data-product-type'));
 				$doc.trigger('spa:navigate', {
-					hash: 'placeOrder',
+					hash: 'product',
 					pushData: {
-						product: product.allList[type - 1],
+						product: product.allList[type-1],
 						needReset: true,
 						backHash:'activity-day'
 					}
@@ -101,7 +98,8 @@ define(['$', 'template', 'IScroll', 'recharge', 'native', 'config', 'user', 'pro
 					if (res.success) {
 						var tpl = template('activities/day', {
 							showNavBar: !config.isWX,
-							recharges: res.data
+							recharges: res.data,
+							title:"活动体验"
 						});
 						$('.spa-page-body', $view).html(tpl);
 						setTimeout(function () {

+ 29 - 16
www/webapp/o2o/js/page/address/addressDetail.js

@@ -1,7 +1,6 @@
 define(['template', 'native', 'config', 'address', 'api', 'user'], function (template, native, config, address, api, user) {
 	function back(event) {
 		event.preventDefault();
-
 		$(document).trigger('spa:navigate', {
 			hash: 'addressList'
 		});
@@ -29,14 +28,15 @@ define(['template', 'native', 'config', 'address', 'api', 'user'], function (tem
 				back.call(this, event);
 			});
 
-			$.newTouch('.btn-delete', function() {
+			/*删除地址*/
+			$.newTouch('.btn-delete', function () {
 				var addressID = $(this).data('id');
-				address.deleteAddress(user.id, addressID, function(res){
+				address.deleteAddress(user.id, addressID, function (res) {
 					if (res.success) {
 						address.getList({
 							request_from: 'weixin',
 							user_id: user.id
-						}, function(res) {
+						}, function (res) {
 							if (res.success) {
 								$doc.trigger('spa:navigate', {
 									hash: 'addressList',
@@ -44,7 +44,8 @@ define(['template', 'native', 'config', 'address', 'api', 'user'], function (tem
 										needReload: true
 									}
 								});
-							};
+							}
+							;
 						})
 					} else {
 						$doc.trigger('spa:openpanel', ['simpleAlert', {
@@ -64,7 +65,7 @@ define(['template', 'native', 'config', 'address', 'api', 'user'], function (tem
 						needReload: true,
 						searchText: searchText,
 						searchProvince: searchProvince,
-            backHash: 'addressDetail'
+						backHash: 'addressDetail'
 					},
 					callback: {
 						onSelect: function (name, place, address_position, address_detail) {
@@ -80,12 +81,13 @@ define(['template', 'native', 'config', 'address', 'api', 'user'], function (tem
 			//确认地址
 			$.newTouch('.btn-save', function (event) {
 				event.preventDefault();
+
+
 				// 设置默认地址
 				var addressInfo = address['list'][cachePageData.addressIndex];
 				var name = $('.address-name', $view).val(),
 					mobile = $('.address-mobile', $view).val(),
 					detail = $('.address-detail', $view).val();
-
 				if (name == '') {
 					$doc.trigger('spa:openpanel', ['simpleAlert', {
 						message: '请输入您的名字'
@@ -111,12 +113,11 @@ define(['template', 'native', 'config', 'address', 'api', 'user'], function (tem
 					address_position = JSON.stringify(cachePageData.address_position);
 				} else {
 					var addressDetailTmp = addressInfo.address;
-          addressDetailTmp.detail = detail;
+					addressDetailTmp.detail = detail;
 					var addressStr = JSON.stringify(addressDetailTmp);
 					var address_position = addressInfo.position;
 					address_position = JSON.stringify(address_position);
 				}
-
 				var param = {
 					request_from: 'weixin',
 					name: name,
@@ -126,13 +127,14 @@ define(['template', 'native', 'config', 'address', 'api', 'user'], function (tem
 					address: addressStr,
 					address_id: cachePageData.addressID
 				};
-				address.editAddress( param, function(res) {
+				address.editAddress(param, function (res) {
 					$doc.trigger('spa:closeloader');
 					if (res.success) {
 						$doc.trigger('spa:navigate', {
 							hash: 'addressList',
 							pushData: {
-								needReload: true
+								dontNeedReload: true,
+								address:address
 							}
 						});
 					} else {
@@ -143,14 +145,25 @@ define(['template', 'native', 'config', 'address', 'api', 'user'], function (tem
 				})
 
 				/*if (cachePageData.callback && $.isFunction(cachePageData.callback.onSelect)) {
-					cachePageData.callback.onSelect(cachePageData.addressID);
-				}*/
+				 cachePageData.callback.onSelect(cachePageData.addressID);
+				 }*/
 
 			}, $view);
 
+
+			/*$.newTouch('.btn-save', function (event) {
+			 event.preventDefault();
+			 $doc.trigger('spa:navigate', {
+			 hash: 'addressList',
+			 pushData: {
+			 needReload: true
+			 }
+			 });
+			 }, $view);*/
+
 			dtd.resolve();
 		},
-		beforeopen: function(pageData, dtd) {
+		beforeopen: function (pageData, dtd) {
 			var $view = this;
 			var $doc = $(document);
 			var pushData = pageData.pushData;
@@ -177,9 +190,9 @@ define(['template', 'native', 'config', 'address', 'api', 'user'], function (tem
 					cachePageData.scroll = null;
 				}
 
-				setTimeout(function() {
+				setTimeout(function () {
 					cachePageData.scroll = new IScroll('#addressListScroll');
-				}, 10);
+				}, 500);
 			}
 
 			dtd.resolve();

+ 112 - 112
www/webapp/o2o/js/page/address/addressList.js

@@ -1,121 +1,121 @@
 define(['$','template', 'native', 'config', 'address', 'user', 'api', 'order'], function ($,template, native, config, address, user, api, order) {
-    /* 返回上一级 */
-    function back(event, backHash) {
-        event.preventDefault();
-        $(document).trigger('spa:navigate', {
-            hash: backHash
-        });
-    }
-    var cachePageData = {}; //page内部的数据传递
+	/* 返回上一级 */
+	function back(event, backHash) {
+		event.preventDefault();
+		$(document).trigger('spa:navigate', {
+			hash: backHash
+		});
+	}
+	var cachePageData = {}; //page内部的数据传递
 
-    return {
-        title: '壹管家上门服务',
-        body: '',
-        init: function (pageData, dtd) {
-            var $view = this;
-            var $doc = $(document);
-            /* 三个返回操作 */
-            $.newTouch('.back-button', function (event) {
-                back.call(this, event, pageData.pushData.backHash);
-            }, $view);
-            $view.on('tapBackButton', function (event) {
-                back.call(this, event, pageData.pushData.backHash);
-            });
-            $view.on('swipeRight', function (event) {
-                back.call(this, event, pageData.pushData.backHash);
-            });
+	return {
+		title: '壹管家上门服务',
+		body: '',
+		init: function (pageData, dtd) {
+			var $view = this;
+			var $doc = $(document);
+			/* 三个返回操作 */
+			$.newTouch('.back-button', function (event) {
+				back.call(this, event, pageData.pushData.backHash);
+			}, $view);
+			$view.on('tapBackButton', function (event) {
+				back.call(this, event, pageData.pushData.backHash);
+			});
+			$view.on('swipeRight', function (event) {
+				back.call(this, event, pageData.pushData.backHash);
+			});
 
-            /* 点击一条地址 */
-            $.newTouch('.address-item', function (event) {
-                var addressID = $(this).data('id'),
-                    addressIndex = $(this).data('index');
-                /* 检查用户的地址是否在服务站内 */
-                api.checkAddress({
-                    address_id: addressID,
-                    user_id: user.id
-                }, function (res) {
-                    if (res.success) {
-                        /* 如果在,应该返回placeOrder页面,把数据更新的回调写在placeOrder */
-                        $view.trigger('tapBackButton');
-                        if (pageData.callback && $.isFunction(pageData.callback.onSelect)) {
-                            pageData.callback.onSelect(address.list[addressIndex], res.data.station);
-                        }
-                    } else {
-                        /* 如果不在,弹出一个对话框。 */
-                        $doc.trigger('spa:openpanel', ['simpleAlert', {
-                            message: res.message
-                        }]);
-                    }
-                });
-            }, $view);
+			/* 点击一条地址 */
+			$.newTouch('.address-item', function (event) {
+				var addressID = $(this).data('id'),
+					addressIndex = $(this).data('index');
+				/* 检查用户的地址是否在服务站内 */
+				api.checkAddress({
+					address_id: addressID,
+					user_id: user.id
+				}, function (res) {
+					if (res.success) {
+						/* 如果在,应该返回placeOrder页面,把数据更新的回调写在placeOrder */
+						$view.trigger('tapBackButton');
+						if (pageData.callback && $.isFunction(pageData.callback.onSelect)) {
+							pageData.callback.onSelect(address.list[addressIndex], res.data.station);
+						}
+					} else {
+						/* 如果不在,弹出一个对话框。 */
+						$doc.trigger('spa:openpanel', ['simpleAlert', {
+							message: res.message
+						}]);
+					}
+				});
+			}, $view);
 
-            // 新增地址
-            $.newTouch('.btn-add', function (event) {
-                console.log(cachePageData.callback);
-                $doc.trigger('spa:navigate', {
-                    hash: 'addressAdd',
-                    pushData: {
-                        needReload: true
-                    },
-                    callback: cachePageData.callback
-                });
-            }, $view);
+			// 新增地址
+			$.newTouch('.btn-add', function (event) {
+				console.log(cachePageData.callback);
+				$doc.trigger('spa:navigate', {
+					hash: 'addressAdd',
+					pushData: {
+						needReload: true
+					},
+					callback: cachePageData.callback
+				});
+			}, $view);
 
-            // 修改地址
-            $.newTouch('.btn-edit', function (event) {
-                var $addressItem = $(this),
-                    addressID = $(this).data('id'),
-                    addressIndex = $(this).data('index');
+			// 修改地址
+			$.newTouch('.btn-edit', function (event) {
+				var $addressItem = $(this),
+					addressID = $(this).data('id'),
+					addressIndex = $(this).data('index');
 
-                $doc.trigger('spa:navigate', {
-                    hash: 'addressDetail',
-                    pushData: {
-                        addressIndex: addressIndex,
-                        addressID: addressID,
-                        needReload: true
-                    },
-                    callback: {
-                        onSelect: function (addressID) {
+				$doc.trigger('spa:navigate', {
+					hash: 'addressDetail',
+					pushData: {
+						addressIndex: addressIndex,
+						addressID: addressID,
+						needReload: true
+					},
+					callback: {
+						onSelect: function (addressID) {
 
-                        }
-                    }
-                });
-            }, $view);
-            dtd.resolve();
-        },
-        beforeopen: function(pageData, dtd) {
-            var $view = this;
-            var $doc = $(document);
-            var pushData = pageData.pushData;
-            cachePageData.needReload = pushData.hasOwnProperty('needReload') ? pushData.needReload : false;
-            // if (cachePageData.needReload) {
-            cachePageData.callback = pageData.callback;
-            address.getList({
-                request_from: 'weixin',
-                user_id: user.id
-            }, function(res) {
-                if (res.success) {
-                    var tpl = template('address/list/index', {
-                        showNavBar: !config.isWX && !config.isChubao,
-                        addText: '添加地址',
-                        addresses: address.list
-                    });
-                    $('.spa-page-body', $view).html(tpl);
-                    if (cachePageData.scroll) {
-                        cachePageData.scroll.destroy();
-                        cachePageData.scroll = null;
-                    }
-                    setTimeout(function() {
-                        cachePageData.scroll = new IScroll('#addressListScroll');
-                    }, 10);
-                };
-            });
-            // }
+						}
+					}
+				});
+			}, $view);
+			dtd.resolve();
+		},
+		beforeopen: function(pageData, dtd) {
+			var $view = this;
+			var $doc = $(document);
+			var pushData = pageData.pushData;
+			cachePageData.needReload = pushData.hasOwnProperty('needReload') ? pushData.needReload : false;
+			// if (cachePageData.needReload) {
+			cachePageData.callback = pageData.callback;
+			address.getList({
+				request_from: 'weixin',
+				user_id: user.id
+			}, function(res) {
+				if (res.success) {
+					var tpl = template('address/list/index', {
+						showNavBar: !config.isWX && !config.isChubao,
+						addText: '添加地址',
+						addresses: address.list
+					});
+					$('.spa-page-body', $view).html(tpl);
+					if (cachePageData.scroll) {
+						cachePageData.scroll.destroy();
+						cachePageData.scroll = null;
+					}
+					setTimeout(function() {
+						cachePageData.scroll = new IScroll('#addressListScroll');
+					}, 10);
+				};
+			});
+			// }
 
-            dtd.resolve();
-        },
-        afteropen: function (pageData, dtd) {
-            dtd.resolve();
-        }
-    };
+			dtd.resolve();
+		},
+		afteropen: function (pageData, dtd) {
+			dtd.resolve();
+		}
+	};
 })

+ 30 - 81
www/webapp/o2o/js/page/home.js

@@ -1,4 +1,4 @@
-define(['$', 'template', 'IScroll', 'product', 'user', 'native', 'config', 'address'], function ($, template, IScroll, product, user, native, config, address) {
+define(['$', 'template', 'IScroll', 'product', 'user', 'native', 'config', 'address', 'api'], function ($, template, IScroll, product, user, native, config, address, api) {
 
 	/*
 	 * 先定义一些模块内用到的function
@@ -44,10 +44,7 @@ define(['$', 'template', 'IScroll', 'product', 'user', 'native', 'config', 'addr
 			}, $view);
 
 			//加载弹框
-			setInterval(function () {
-				$('.swiper-container').height($('.swiper-container img').height());
-				// $('.pagination').css('bottom', '0.15rem');
-			}, 200);
+
 			/*自动关闭活动窗口*/
 			$.newTouch('.btn-o2o-home', function (event) {
 				event.preventDefault();
@@ -75,32 +72,13 @@ define(['$', 'template', 'IScroll', 'product', 'user', 'native', 'config', 'addr
 				$doc.trigger('spa:navigate', {
 					hash: 'myCoupon',
 					pushData: {
-						needReload: true
+						needReload: true,
+						backHash: ''
 					}
 				});
 			}, $view);
 
-			/* 点击标签
-			 $.newTouch('.btn-product-group', function (event) {
-			 event.preventDefault();
-			 if ($(this).hasClass('global-msg-active')) return;
-			 $(this).addClass('global-msg-active').siblings().removeClass('global-msg-active');
-			 var index = $(this).attr('data-group-index');
-			 switch (index){
-			 case '0':
-			 $('#list0').show().siblings().hide();
-			 break;
-			 case '1':
-			 $('#list1').show().siblings().hide();
-			 break;
-			 case '2':
-			 $('#list2').show().siblings().hide();
-			 break;
-			 case '3':
-			 $('#list3').show().siblings().hide();
-			 break;
-			 }
-			 }, $view);  */
+
 			// 家庭保洁
 			$.newTouch('.btn-secondary', function (event) {
 				event.preventDefault();
@@ -112,51 +90,16 @@ define(['$', 'template', 'IScroll', 'product', 'user', 'native', 'config', 'addr
 					}
 				});
 			}, $view);
-			/* 点击产品列表的某一项 */
+			/* 家电清洗 */
 			$.newTouch('.btn-appliances', function (event) {
 				event.preventDefault();
-				// var type = 4;
 				var type = parseInt($(this).attr('data-product-type'));
-				/*
-				 * 这个写法是SPA路由框架规定的。
-				 * $(selector).trigger(event, params)是jQuery的:触发被选元素上的指定事件
-				 */
 				$doc.trigger('spa:navigate', {
-					hash: 'placeOrder',
+					hash: 'product',
 					pushData: {
-						product: product.allList[type - 1],
-						needReset: true
-					}
-				});
-			}, $view);
-			/* 点击标签
-			 $.newTouch('.btn-product-group', function (event) {
-			 event.preventDefault();
-			 if ($(this).hasClass('global-msg-active')) return;
-			 $(this).addClass('global-msg-active').siblings().removeClass('global-msg-active');
-			 var index = $(this).attr('data-group-index');
-			 switch (index){
-			 case '0':
-			 $('#list0').show().siblings().hide();
-			 break;
-			 case '1':
-			 $('#list1').show().siblings().hide();
-			 break;
-			 case '2':
-			 $('#list2').show().siblings().hide();
-			 break;
-			 case '3':
-			 $('#list3').show().siblings().hide();
-			 break;
-			 }
-			 }, $view);  */
-			// 双十一活动
-			$.newTouch('.btn-home-day', function (event) {
-				event.preventDefault();
-				$doc.trigger('spa:navigate', {
-					hash: 'activity-day',
-					pushData: {
-						needReset: true
+						product: product.allList[type-1],
+						needReset: true,
+						backHash: ''
 					}
 				});
 			}, $view);
@@ -166,7 +109,8 @@ define(['$', 'template', 'IScroll', 'product', 'user', 'native', 'config', 'addr
 				$doc.trigger('spa:navigate', {
 					hash: 'homestay',
 					pushData: {
-						needReset: true
+						needReset: true,
+						backHash: ''
 					}
 				});
 			}, $view);
@@ -176,7 +120,8 @@ define(['$', 'template', 'IScroll', 'product', 'user', 'native', 'config', 'addr
 				$doc.trigger('spa:navigate', {
 					hash: 'homeenterprise',
 					pushData: {
-						needReset: true
+						needReset: true,
+						backHash: ''
 					}
 				});
 			}, $view);
@@ -271,8 +216,16 @@ define(['$', 'template', 'IScroll', 'product', 'user', 'native', 'config', 'addr
 		afteropen: function (pageData, dtd) {
 			var $view = this;
 			var $doc = $(document);
+			setTimeout(function () {
+				/*设置页面高度*/
+				var homeBox = $('.home-box');
+				var boxAlignCenter = $('.box-align-center').height();
+				var preventScroll = $('.prevent-scroll').height();
+				homeBox.height(boxAlignCenter * 2.2 + preventScroll);
+			}, 500);
 			/* 如果需要重新加载,就请求服务列表。 */
 			if (!pageData.pushData.dontNeedReload) {
+
 				$doc.trigger('spa:openloader');
 				/*
 				 * tmodjs:
@@ -293,16 +246,7 @@ define(['$', 'template', 'IScroll', 'product', 'user', 'native', 'config', 'addr
 				 * 这句的意思是,选取class=".spa-page-body"的元素,把tpl插入其中
 				 */
 				$('.spa-page-body', $view).html(tpl);
-				/* 建立IScroll */
-				setTimeout(function () {
-					pageData.scroll = new IScroll('#homeScroll');
-					/*设置页面高度*/
-					var homeBox = $('.home-box');
-					var boxAlignCenter = $('.box-align-center').height();
-					var preventScroll = $('.prevent-scroll').height();
-					homeBox.height(boxAlignCenter * 4 + preventScroll);
-
-				}, 1000);
+				/* 建立IScroll-setInterval- setTimeout*/
 				setTimeout(function () {
 					var swiper = new Swiper('.swiper-container', {
 						pagination: '.pagination',
@@ -312,7 +256,11 @@ define(['$', 'template', 'IScroll', 'product', 'user', 'native', 'config', 'addr
 						autoplay: 5000,
 						autoplayDisableOnInteraction: false
 					});
-				}, 20);
+				}, 200);
+				setTimeout(function () {
+					pageData.scroll = new IScroll('#homeScroll');
+				}, 500);
+
 				// 目前的作用只是供后端判断,该用户是否为新用户,所以没有回调。
 				product.getListAll(user.id);
 				address.getList({
@@ -325,9 +273,10 @@ define(['$', 'template', 'IScroll', 'product', 'user', 'native', 'config', 'addr
 			dtd.resolve();
 
 			//强制设置首页的上一页是空的,后面再调整框架
-			pageData.prevPage = $('.spa-page-empty');
+			// pageData.prevPage = $('.spa-page-empty');
 		},
 		beforeclose: function (pageData, dtd) {
+
 			dtd.resolve();
 			native.switchPopGesture(false);
 		}

+ 5 - 2
www/webapp/o2o/js/page/homeenterprise.js

@@ -1,9 +1,9 @@
 define(['$', 'template', 'IScroll', 'recharge', 'native', 'config', 'user'], function ($, template, IScroll, recharge, native, config, user) {
-
+	var backHash;
 	function back(event) {
 		event.preventDefault();
 		$(document).trigger('spa:navigate', {
-			hash: '',
+			hash: backHash,
 			pushData: {
 				dontNeedReload: true
 			}
@@ -71,6 +71,9 @@ define(['$', 'template', 'IScroll', 'recharge', 'native', 'config', 'user'], fun
 			dtd.resolve();
 		},
 		beforeopen: function (pageData, dtd) {
+			/*获取上一页跳转的路由名称*/
+			var pushData = pageData.pushData;
+			backHash = pushData.backHash ? pushData.backHash : '';
 			dtd.resolve();
 		},
 		afteropen: function (pageData, dtd) {

+ 17 - 13
www/webapp/o2o/js/page/homestay.js

@@ -1,9 +1,10 @@
 define(['$', 'template', 'IScroll', 'recharge', 'native', 'config', 'user'], function ($, template, IScroll, recharge, native, config, user) {
+	var backHash;
 
 	function back(event) {
 		event.preventDefault();
 		$(document).trigger('spa:navigate', {
-			hash: '',
+			hash: backHash,
 			pushData: {
 				dontNeedReload: true
 			}
@@ -19,27 +20,27 @@ define(['$', 'template', 'IScroll', 'recharge', 'native', 'config', 'user'], fun
 			var $doc = $(document);
 			// 返回
 			$view.on('swipeRight', function (event) {
-				history.go(-1);
+				back.call(this, event);
 			});
 			$.newTouch('.back-button', function (event) {
-				history.go(-1);
+				back.call(this, event);
 			}, $view);
 			$view.on('tapBackButton', function (event) {
-				//back.call(this, event);
-				history.go(-1);
+				back.call(this, event);
 			});
-			$.newTouch('.o2o-btn-homestay',function (event) {
+			/*民宿咨询*/
+			$.newTouch('.o2o-btn-homestay', function (event) {
 				event.preventDefault();
-				window.location.href='/index.php?r=o2o/advisory/SinglesDay';
-			},$view);
+				window.location.href = '/index.php?r=o2o/advisory/SinglesDay';
+			}, $view);
 			// 首页
 			$.newTouch('.btn-action-my-order', function (event) {
 				event.preventDefault();
-					$doc.trigger('spa:navigate', {
-						hash: '',
-						pushData: {
-							needReset: true
-						}
+				$doc.trigger('spa:navigate', {
+					hash: '',
+					pushData: {
+						needReset: true
+					}
 				});
 			}, $view);
 			// im
@@ -62,6 +63,9 @@ define(['$', 'template', 'IScroll', 'recharge', 'native', 'config', 'user'], fun
 			dtd.resolve();
 		},
 		beforeopen: function (pageData, dtd) {
+			/*获取上一页跳转的路由名称*/
+			var pushData = pageData.pushData;
+			backHash = pushData.backHash ? pushData.backHash : '';
 			dtd.resolve();
 		},
 		afteropen: function (pageData, dtd) {

+ 2 - 2
www/webapp/o2o/js/page/longOrder.js

@@ -33,9 +33,9 @@ define(['$', 'template', 'IScroll', 'recharge', 'native', 'config', 'user', 'pro
 				event.preventDefault();
 				var type = parseInt($(this).attr('data-product-type'));
 				$doc.trigger('spa:navigate', {
-					hash: 'placeOrder',
+					hash: 'product',
 					pushData: {
-						product: product.allList[type - 1],
+						product: product.allList[type],
 						needReset: true,
 						backHash: 'longOrder'
 

+ 12 - 3
www/webapp/o2o/js/page/mine.js

@@ -56,6 +56,7 @@ define(['$', 'template', 'IScroll', 'user', 'native', 'config', 'address', 'prod
 				});
 			}, $view);
 
+
 			// 常用地址
 			$.newTouch('.btn-address-list', function (event) {
 				event.preventDefault();
@@ -86,8 +87,8 @@ define(['$', 'template', 'IScroll', 'user', 'native', 'config', 'address', 'prod
 					hash: 'recharge',
 					pushData: {
 						needReload: true,
-						backHash:'mine'
-						
+						backHash: 'mine'
+
 					}
 				});
 			}, $view);
@@ -141,6 +142,14 @@ define(['$', 'template', 'IScroll', 'user', 'native', 'config', 'address', 'prod
 			var $view = this;
 			var $doc = $(document);
 
+			setTimeout(function () {
+				/*设置页面高度*/
+				var mineType = $('.mine-type');
+				var boxAlignCenter = mineType.children("div").height();
+				var preventScroll = $('.prevent-scroll').height();
+				mineType.height(boxAlignCenter * 2.3 + preventScroll);
+			}, 500);
+
 			if (pageData.pushData && pageData.pushData.needReset) {
 				var addressStr = '';
 				var defaultAddress = address.defaultAddress;
@@ -154,7 +163,7 @@ define(['$', 'template', 'IScroll', 'user', 'native', 'config', 'address', 'prod
 					showNavBar: !config.isWX,
 					userName: user.name == '' ? '未登录' : user.name,
 					userBalance: user.balance,
-					userAvatar:user.avatar,
+					userAvatar: user.avatar,
 					defaultAddress: addressStr
 				});
 

+ 146 - 116
www/webapp/o2o/js/page/myCoupon.js

@@ -1,127 +1,157 @@
 define(['$', 'template', 'user', 'config', 'IScroll'], function ($, template, user, config, IScroll) {
-    function back(event) {
-        event.preventDefault();
-        $(document).trigger('spa:navigate', {
-            hash: '',
-            pushData: {
-                dontNeedReload: true
-            }
-        });
-    }
+	function back(event) {
+		event.preventDefault();
+		$(document).trigger('spa:navigate', {
+			hash: '',
+			pushData: {
+				dontNeedReload: true
+			}
+		});
+	}
 
-    function fixScroll(pageData) {
-        if (pageData.scroll) {
-            pageData.scroll.destroy();
-            pageData.scroll = null;
-        }
+	function fixScroll(pageData) {
+		if (pageData.scroll) {
+			pageData.scroll.destroy();
+			pageData.scroll = null;
+		}
 
-        setTimeout(function () {
-            pageData.scroll = new IScroll('#myCouponScroll');
-        }, 50);
-    }
+		setTimeout(function () {
+			pageData.scroll = new IScroll('#myCouponScroll');
+		}, 50);
+	}
 
-    return {
-        title: '壹管家上门服务',
-        body: '',
-        init: function (pageData, dtd) {
-            var $view = this;
-            var $doc = $(document);
+	return {
+		title: '壹管家上门服务',
+		body: '',
+		init: function (pageData, dtd) {
+			var $view = this;
+			var $doc = $(document);
 
-            // 返回
-            $view.on('swipeRight', function (event) {
-                //back.call(this, event);
-                history.go(-1);
-            });
+			// 返回
+			$view.on('swipeRight', function (event) {
+				//back.call(this, event);
+				history.go(-1);
+			});
 
-            $.newTouch('.back-button', function (event) {
-                //back.call(this, event);
-                history.go(-1);
-            }, $view);
+			$.newTouch('.back-button', function (event) {
+				//back.call(this, event);
+				history.go(-1);
+			}, $view);
 
-            $view.on('tapBackButton', function (event) {
-                //back.call(this, event);
-                history.go(-1);
-            });
+			$view.on('tapBackButton', function (event) {
+				//back.call(this, event);
+				history.go(-1);
+			});
+			// im
+			$.newTouch('.btn-action-logo', function (event) {
+				event.preventDefault();
+				window.location.href = '/index.php?r=o2o/advisory/im';
+			}, $view);
+			/*首页*/
+			$.newTouch('.btn-action-my-order', function () {
+				event.preventDefault();
+				$doc.trigger('spa:navigate', {
+					hash: '',
+					pushData: {
+						needReset: true
+					}
+				});
+			}, $view);
+			/*个人中心*/
+			$.newTouch('.btn-action-coupon', function (event) {
+				event.preventDefault();
+				user.checkLogin(function () {
+					$doc.trigger('spa:navigate', {
+						hash: 'mine',
+						pushData: {
+							needReset: true
+						}
+					});
+				});
+			}, $view);
 
-            // 兑换
-            $.newTouch('.btn-coupon', function (event) {
-                event.preventDefault();
-                var val = $('#coupon-code', $view).val();
-                if (val.length < 8) {
-                    $doc.trigger('spa:openpanel', ['simpleAlert', {
-                        message: '请输入有效的兑换码'
-                    }]);
-                    return;
-                } else {
-                    $(this).val('');
-                    user.exchangeCoupon(val, function (res) {
-                        $doc.trigger('spa:openloader');
-                        if (res.success) {
-                            user.getCouponList(user.id, function (result) {
-                                $doc.trigger('spa:closeloader');
-                                if (result.success) {
-                                    var exchangeTpl = template('myCoupon/exchange', {
-                                        coupons: user.coupons
-                                    });
-                                    $('.spa-page-body', $view).find('.coupon-items').html(exchangeTpl);
-                                    fixScroll(pageData);
-                                }
-                                $doc.trigger('spa:openpanel', ['simpleAlert', {
-                                    message: result.message
-                                }]);
-                            });
-                        } else {
-                            $doc.trigger('spa:closeloader');
-                            $doc.trigger('spa:openpanel', ['simpleAlert', {
-                                message: res.message
-                            }]);
-                        }
-                    })
-                }
-            }, $view);
 
-            dtd.resolve();
-        },
-        beforeopen: function (pageData, dtd) {
-            var $view = this;
-            var $doc = $(document);
-            $doc.trigger('spa:openloader');
-            user.checkLogin(function () {
-                user.getCouponList(function (res) {
-                    $doc.trigger('spa:closeloader');
-                    if (res.success) {
-                        var tpl = template('myCoupon/index', {
-                            showNavBar: !config.isWX && !config.isChubao,
-                            usable_coupons: user.usable_coupons,
-                            used_coupons: user.used_coupons,
-                            overtime_coupons: user.overtime_coupons
-                        });
-                        $('.spa-page-body', $view).html(tpl);
-                        fixScroll(pageData);
-                    } else {
-                        $doc.trigger('spa:openpanel', ['simpleAlert', {
-                            message: res.message
-                        }]);
-                    }
-                })
-            });
+			// 兑换
+			$.newTouch('.btn-coupon', function (event) {
+				event.preventDefault();
+				var val = $('#coupon-code', $view).val();
+				if (val.length < 8) {
+					$doc.trigger('spa:openpanel', ['simpleAlert', {
+						message: '请输入有效的兑换码'
+					}]);
+					return;
+				} else {
+					$(this).val('');
+					user.exchangeCoupon(val, function (res) {
+						$doc.trigger('spa:openloader');
+						if (res.success) {
+							user.getCouponList(user.id, function (result) {
+								$doc.trigger('spa:closeloader');
+								if (result.success) {
+									var exchangeTpl = template('myCoupon/exchange', {
+										coupons: user.coupons
+									});
+									$('.spa-page-body', $view).find('.coupon-items').html(exchangeTpl);
+									fixScroll(pageData);
+								}
+								$doc.trigger('spa:openpanel', ['simpleAlert', {
+									message: result.message
+								}]);
+							});
+						} else {
+							$doc.trigger('spa:closeloader');
+							$doc.trigger('spa:openpanel', ['simpleAlert', {
+								message: res.message
+							}]);
+						}
+					})
+				}
+			}, $view);
 
-            dtd.resolve();
-            if (config.isWX) {
-                wx.ready(function () {
-                    wx.onMenuShareTimeline({
-                        title: '家政服务,首选壹管家',
-                        link: 'http://www.yiguanjia.me/o2o/web/index',
-                        imgUrl: 'http://wozhua-others.qiniudn.com/icon-o2o-home.jpg'
-                    });
-                    wx.onMenuShareAppMessage({
-                        title: '家政服务,首选壹管家',
-                        desc: '全程管家,精心每一个细节!',
-                        link: 'http://www.yiguanjia.me/o2o/web/index',
-                        imgUrl: 'http://wozhua-others.qiniudn.com/icon-o2o-home.jpg'
-                    });
-                });
-            }
-        }
-    }
+
+
+			dtd.resolve();
+		},
+		beforeopen: function (pageData, dtd) {
+			var $view = this;
+			var $doc = $(document);
+			$doc.trigger('spa:openloader');
+			user.checkLogin(function () {
+				user.getCouponList(function (res) {
+					$doc.trigger('spa:closeloader');
+					if (res.success) {
+						var tpl = template('myCoupon/index', {
+							showNavBar: !config.isWX && !config.isChubao,
+							usable_coupons: user.usable_coupons,
+							used_coupons: user.used_coupons,
+							overtime_coupons: user.overtime_coupons
+						});
+						$('.spa-page-body', $view).html(tpl);
+						fixScroll(pageData);
+					} else {
+						$doc.trigger('spa:openpanel', ['simpleAlert', {
+							message: res.message
+						}]);
+					}
+				})
+			});
+
+			dtd.resolve();
+			if (config.isWX) {
+				wx.ready(function () {
+					wx.onMenuShareTimeline({
+						title: '家政服务,首选壹管家',
+						link: 'http://www.yiguanjia.me/o2o/web/index',
+						imgUrl: 'http://wozhua-others.qiniudn.com/icon-o2o-home.jpg'
+					});
+					wx.onMenuShareAppMessage({
+						title: '家政服务,首选壹管家',
+						desc: '全程管家,精心每一个细节!',
+						link: 'http://www.yiguanjia.me/o2o/web/index',
+						imgUrl: 'http://wozhua-others.qiniudn.com/icon-o2o-home.jpg'
+					});
+				});
+			}
+		}
+	}
 })

+ 104 - 105
www/webapp/o2o/js/page/picker.js

@@ -1,121 +1,120 @@
 define(['$', 'template', 'order', 'config', 'user', 'api'], function ($, template, order, config, user, api) {
-    function back(backHash) {
-        $(document).trigger('spa:navigate', {
-            hash: backHash
-        });
-    }
+	function back(backHash) {
+		$(document).trigger('spa:navigate', {
+			hash: backHash
+		});
+	}
 
-    return {
-        title: '壹管家上门服务',
-        body: '',
-        init: function (pageData, dtd) {
-            var $view = this;
-            var $doc = $(document);
+	return {
+		title: '壹管家上门服务',
+		body: '',
+		init: function (pageData, dtd) {
+			var $view = this;
+			var $doc = $(document);
 
-            //返回
-            $.newTouch('.back-button', function (event) {
-                event.preventDefault();
+			//返回
+			$.newTouch('.back-button', function (event) {
+				event.preventDefault();
 
-                var pushData = pageData.pushData;
-                back.call(this, pushData['backHash']);
-            }, $view);
+				var pushData = pageData.pushData;
+				back.call(this, pushData['backHash']);
+			}, $view);
 
-            $view.on('tapBackButton', function (event) {
-                event.preventDefault();
+			$view.on('tapBackButton', function (event) {
+				event.preventDefault();
 
-                var pushData = pageData.pushData;
-                back.call(this, pushData['backHash']);
-            });
+				var pushData = pageData.pushData;
+				back.call(this, pushData['backHash']);
+			});
 
-            $.newTouch('.picker-option', function () {
-                event.preventDefault();
-                if ($(this).hasClass('unable')) return;
-                $view.trigger('tapBackButton');
+			$.newTouch('.picker-option', function () {
+				event.preventDefault();
+				if ($(this).hasClass('unable')) return;
+				$view.trigger('tapBackButton');
 
-                if (pageData.callback && $.isFunction(pageData.callback.onSelect)) {
-                    pageData.callback.onSelect($(this).data('value'));
-                }
-            }, $view);
+				if (pageData.callback && $.isFunction(pageData.callback.onSelect)) {
+					pageData.callback.onSelect($(this).data('value'));
+				}
+			}, $view);
 
-            // 兑换
-            $.newTouch('.btn-coupon', function (event) {
-                event.preventDefault();
+			// 兑换
+			$.newTouch('.btn-coupon', function (event) {
+				event.preventDefault();
 
-                var pushData = pageData.pushData;
-                var val = $('#coupon-code', $view).val();
-                if (val.length < 8) {
-                    $doc.trigger('spa:openpanel', ['simpleAlert', {
-                        message: '请输入有效的兑换码'
-                    }]);
-                } else {
-                    $(this).val('');
-                    user.exchangeCoupon(val, function (res) {
-                        $doc.trigger('spa:openloader');
-                        if (res.success) {
-                            api.getCouponList({
-                                products: pushData.products,
-                                type: pushData.type,
-                                user_id: user.id
-                            }, function (res) {
-                                $doc.trigger('spa:closeloader');
-                                $doc.trigger('spa:openpanel', ['simpleAlert', {
-                                    message: res.message
-                                }]);
-                                if (res.success) {
-                                    user.orderCoupons = res.data;
-                                    var tpl = template('picker/cell', {
-                                        options: res.data
-                                    });
-                                    $view.find('.card-list').html(tpl);
-                                }
-                            })
-                        } else {
-                            $doc.trigger('spa:closeloader');
-                            $doc.trigger('spa:openpanel', ['simpleAlert', {
-                                message: res.message
-                            }]);
-                        }
-                    })
-                }
-            }, $view);
+				var pushData = pageData.pushData;
+				var val = $('#coupon-code', $view).val();
+				if (val.length < 8) {
+					$doc.trigger('spa:openpanel', ['simpleAlert', {
+						message: '请输入有效的兑换码'
+					}]);
+				} else {
+					$(this).val('');
+					user.exchangeCoupon(val, function (res) {
+						$doc.trigger('spa:openloader');
+						if (res.success) {
+							api.getCouponList({
+								products: pushData.products,
+								type: pushData.type,
+								user_id: user.id
+							}, function (res) {
+								$doc.trigger('spa:closeloader');
+								$doc.trigger('spa:openpanel', ['simpleAlert', {
+									message: res.message
+								}]);
+								if (res.success) {
+									user.orderCoupons = res.data;
+									var tpl = template('picker/cell', {
+										options: res.data
+									});
+									$view.find('.card-list').html(tpl);
+								}
+							})
+						} else {
+							$doc.trigger('spa:closeloader');
+							$doc.trigger('spa:openpanel', ['simpleAlert', {
+								message: res.message
+							}]);
+						}
+					})
+				}
+			}, $view);
 
-            dtd.resolve();
-        },
-        beforeopen: function (pageData, dtd) {
-            var $doc = $(document);
-            var $view = this;
-            var pushData = pageData.pushData;
+			dtd.resolve();
+		},
+		beforeopen: function (pageData, dtd) {
+			var $doc = $(document);
+			var $view = this;
+			var pushData = pageData.pushData;
+			$doc.trigger('spa:openloader');
+			user.getCouponList();
+			api.getCouponList({
+				products: pushData.products, //产品
+				booking_time: pushData.time, //预订时间
+				user_id: user.id, //用户id
+				type: pushData.type, //资源
+				extra: pushData.extraJson
+			}, function (res) {
+				var tpl = template('picker/coupon', {
+					options: res.data,
+					unuseables: res.unuseable_coupons,
+					title: '选择代金券',
+					showNavBar: !config.isWX && !config.isChubao
+				});
 
-            $doc.trigger('spa:openloader');
-            user.getCouponList();
-            api.getCouponList({
-                products: pushData.products, //产品
-                booking_time: pushData.time, //预订时间
-                user_id: user.id, //用户id
-                type: pushData.type, //资源
-                extra:  pushData.extraJson
-            }, function (res) {
-                var tpl = template('picker/coupon', {
-                    options: res.data,
-                    unuseables: res.unuseable_coupons,
-                    title: '选择代金券',
-                    showNavBar: !config.isWX && !config.isChubao
-                });
+				$view.find('.spa-page-body').html(tpl);
 
-                $view.find('.spa-page-body').html(tpl);
+				if (pageData.scroll) {
+					pageData.scroll.destroy();
+					pageData.scroll = null;
+				}
 
-                if (pageData.scroll) {
-                    pageData.scroll.destroy();
-                    pageData.scroll = null;
-                }
+				setTimeout(function () {
+					pageData.scroll = new IScroll('#pickerScroll');
+				}, 500);
 
-                setTimeout(function () {
-                    pageData.scroll = new IScroll('#pickerScroll');
-                }, 500);
-
-                dtd.resolve();
-                $doc.trigger('spa:closeloader');
-            });
-        }
-    }
+				dtd.resolve();
+				$doc.trigger('spa:closeloader');
+			});
+		}
+	}
 });

+ 998 - 974
www/webapp/o2o/js/page/placeOrder.js

@@ -1,977 +1,1001 @@
 define(['$', 'template', 'order', 'native', 'helper', 'user', 'api', 'config', 'address', 'IScroll'], function ($, template, order, native, helper, user, api, config, address, IScroll) {
 
-    /*
-     * 这里对product和order做一个说明。
-     * product前台写死。order沿用原模型,但只用其中几个字段。
-     * 对应关系如下:
-     * product.id == order.productID :产品ID
-     * product.type == order.productType :产品类型,约定的数字
-     * product.price == order.cost :订单原价,当product的extra字段为空
-     * product.extra.price == order.cost :订单原价,当product的extra字段不为空
-     * product.type_str == order.serviceName :服务名称
-     * product.extra.type == order.appendID :服务的额外选项,当product的extra字段不为空
-     */
-
-    /* 从首页传来的产品数据 */
-    var product;
-    var backHash;
-    /* 软键盘弹出与消失时布局变动。 */
-    function checkScroll(pageData, callback) {
-        if (pageData.scroll) {
-            if (!pageData.scrollHeight) {
-                pageData.scrollHeight = 0;
-            }
-            clearInterval(pageData.scrollCheck);
-            clearTimeout(pageData.scrollCheckAutoCancel);
-            pageData.scrollCheck = setInterval(function () {
-                pageData.scroll.refresh();
-                if ($.isFunction(callback)) {
-                    callback();
-                }
-            }, 50);
-
-            pageData.scrollCheckAutoCancel = setTimeout(function () {
-                clearInterval(pageData.scrollCheck);
-            }, 500);
-        }
-    }
-
-    /* 返回上一级 */
-    function back(event) {
-        event.preventDefault();
-        $(document).trigger('spa:navigate', {
-            hash: backHash,
-            pushData: {
-                dontNeedReload: true
-            }
-        });
-    }
-
-    /* 重置页面时调用,重新生成IScroll */
-    function fixScroll(pageData) {
-        setInterval(function () {
-            if (product.name == "首单日常保洁2小时体验") {
-                $('.selected').css('display', 'none');
-            }
-        }, 100);
-        if (pageData.scroll) {
-            pageData.scroll.destroy();
-            pageData.scroll = null;
-        }
-        var placeOrderScroll;
-        setTimeout(function () {
-            pageData.scroll = new IScroll('#placeOrderScroll');
-        }, 700);
-    }
-
-    /* 算账。 */
-    function payCharge($orderCost) {
-        order.payValue = order.cost - order.couponValue;
-        $orderCost.text('¥' + order.payValue);
-    }
-
-    /* 也是自动选取最大优惠券的操作,只是与setCoupon策略不同
-     function suitable(me, doc, productID, type, petPrice, pay, pageData, extra, precedence) {
-     extra = extra || 0;
-     precedence = precedence || 0;
-     // 获取该类型宠物 可用优惠券
-     doc.trigger('spa:openloader');
-     api.getCouponList({
-     products: JSON.stringify([{
-     product_id: productID,
-     count: 1
-     }]),
-     type: type,
-     user_id: user.id
-     }, function (res) {
-     doc.trigger('spa:closeloader');
-     if (!res.success) {
-     doc.trigger('spa:openpanel', ['simpleAlert', {
-     message: res.message
-     }]);
-     } else {
-     user.orderCoupons = res.data;
-
-     // 优惠券数据更新
-     var coupons = user.orderCoupons;
-     var couponSelectVal = 0;
-     if (coupons.length) {
-     // 选取最大金额
-     var selectCoupon = user.getMaxAvailableCoupon();
-
-     // 缓存到购物车
-     cart['products'][type]['couponName'] = coupons[selectCoupon.couponIndex].coupon.name;
-     cart['products'][type]['couponVal'] = selectCoupon.couponSelectVal;
-     cart['products'][type]['couponId'] = coupons[selectCoupon.couponIndex].id;
-     cart['products'][type]['couponList'] = coupons;
-
-     // dom 更新
-     $('.coupon-selected-name', me).html(user.getCouponName(coupons[selectCoupon.couponIndex].id));
-     $('.coupon-cost', me).html('-' + selectCoupon.couponSelectVal);
-     $('.select-coupon', me).removeClass('hide');
-     $('.order-cost', me).attr('data-coupon', selectCoupon.couponSelectVal);
-     $('.order-list', me).removeClass('hide');
-     $('.order-cost', me).attr('data-pay', parseFloat(petPrice) - parseFloat(selectCoupon.couponSelectVal) + extra);
-
-     // 减去优惠
-     petPrice = parseFloat(petPrice) - parseFloat(selectCoupon.couponSelectVal) + extra + precedence;
-
-     } else {
-     // 缓存到购物车
-     cart['products'][type]['couponName'] = '';
-     cart['products'][type]['couponVal'] = '';
-     cart['products'][type]['couponId'] = '';
-     cart['products'][type]['couponList'] = [];
-
-     $('.coupon-selected-name', me).html('');
-     $('.coupon-cost', me).html('- 0');
-     $('.select-coupon', me).addClass('hide');
-     $('.order-cost', me).attr('data-coupon', 0);
-
-     petPrice = parseFloat(petPrice) + extra + precedence;
-     }
-     // 缓存到本地
-     cart.setCache('products');
-
-     // 更新dom总价
-     $('.order-cost', me).attr('data-costs', pay);
-     $('.order-cost', me).html('¥' + petPrice);
-
-     $('.select-pet', me).removeClass('hide');
-
-     if (pageData && pageData.scroll) {
-     pageData.scroll.refresh();
-     }
-     }
-     });
-     }
-     */
-
-    /* 优惠券取决于主服务、宠物、数量、时间,所以在这几个值改变后要调用这个方法,更新最大优惠
-     function setCoupon(me, pageData, extraServicePrice) {
-     $(document).trigger('spa:openloader');
-     var products = JSON.stringify([{
-     product_id: order['productID'],
-     count: order.productCount
-     }]);
-     var time = order.bookingDate + ' ' + order.bookingTime + ':00';
-     user.getProductCoupon(products, time, cachePageData.productType, function (res) {
-     $(document).trigger('spa:closeloader');
-     if (res.success) {
-     var coupons = user.orderCoupons;
-     var price = 0;
-     if (coupons.length) {
-     var selectCoupon = user.getMaxAvailableCoupon();
-     cart['products'][cachePageData.productType]['couponName'] = coupons[selectCoupon.couponIndex].coupon.name;
-     cart['products'][cachePageData.productType]['couponVal'] = selectCoupon.couponSelectVal;
-     cart['products'][cachePageData.productType]['couponId'] = coupons[selectCoupon.couponIndex].id;
-     cart['products'][cachePageData.productType]['couponList'] = coupons;
-
-     $('.coupon-selected-name', me).html(user.getCouponName(coupons[selectCoupon.couponIndex].id));
-     $('.coupon-cost', me).html('-' + selectCoupon.couponSelectVal);
-     $('.select-coupon', me).removeClass('hide');
-     $('.order-cost', me).attr('data-coupon', selectCoupon.couponSelectVal);
-     $('.order-list', me).removeClass('hide');
-     price = parseFloat(order.petPrice) * order.productCount - parseFloat(selectCoupon.couponSelectVal) + parseFloat(extraServicePrice);
-
-     } else {
-     price = parseFloat(order.petPrice) * order.productCount + parseFloat(extraServicePrice);
-
-     $('.coupon-selected-name', me).html('');
-     $('.select-coupon', me).addClass('hide');
-     $('.order-cost', me).attr('data-coupon', '0');
-     $('.order-cost', me).attr('data-pay', parseFloat(order.petPrice));
-     cart['products'][cachePageData.productType]['couponName'] = '';
-     cart['products'][cachePageData.productType]['couponVal'] = '';
-     cart['products'][cachePageData.productType]['couponId'] = '';
-     cart['products'][cachePageData.productType]['couponList'] = [];
-     }
-     // 加急
-     if (order.precedence) {
-     price = price + parseFloat(product.precedence);
-     }
-     $('.order-cost', me).attr('data-pay', price);
-     $('.order-cost', me).attr('data-costs', order.petPrice);
-     $('.order-cost', me).html('¥' + price);
-
-     cart.setCache('products');
-
-     pageData.scroll.refresh();
-     } else {
-     $(document).trigger('spa:openpanel', ['simpleAlert', {
-     message: res.message
-     }]);
-     }
-     });
-     }  */
-
-    /* 在选择主服务或宠物后,筛选附加服务
-     function suitExtraService(me, checkedName) {
-     var newExtraService = product.getExtraServiceList(order.productType, order.petName, checkedName);
-     var extraService = {
-     extraService: newExtraService
-     }
-     var extraServiceTpl = template('placeOrder/list', extraService);
-     var extraServiceTpl2 = template('placeOrder/list2', extraService);
-     me.find('.extra-service-list').html(extraServiceTpl);
-     me.find('.calc-items').html(extraServiceTpl2).addClass('hide');
-
-     cachePageData.extraServicePrice = 0;
-     cachePageData.extraServiceCount = 0;
-     } */
-
-    /* 在选择主服务、附加服务、宠物、时间、地点之后,重置保洁师
-     function resetTech(me) {
-     order.beautician.name = '请选择';
-     order.beautician.id = '';
-     $('.booking-people', me).html(order.beautician.name);
-     }  */
-
-    return {
-        title: '壹管家上门服务',
-        body: '',
-        init: function (pageData, dtd) {
-            var $view = this;
-            var $doc = $(document);
-
-
-            /* 三个返回操作 */
-            $.newTouch('.back-button', function (event) {
-                back.call(this, event);
-            }, $view);
-            $view.on('tapBackButton', function (event) {
-                back.call(this, event);
-            });
-            $view.on('swipeRight', function (event) {
-                back.call(this, event);
-            });
-
-
-
-
-            /* 点击查看详情。跳转到product页面 */
-            $.newTouch('.product-pic-o2o', function (event) {
-                $doc.trigger('spa:navigate', {
-                    hash: 'product',
-                    pushData: {
-                        produc: product,
-                        needReload: true
-                    }
-                });
-            }, $view);
-
-            /*特效*/
-            setInterval(function run() {
-                $('.product-img').fadeToggle();
-            }, 500);
-            /* 点击选择extra。 */
-            $.newTouch('.btn-main-service', function (event) {
-                /* on代表这一条的选中状态。如果已经选中了,就return。this的作用域是这一条extra。 */
-                if ($(this).hasClass('on')) return;
-                /* 如果没有on状态,加上on。 */
-                $(this).addClass('on');
-                /* 删掉其他选择框的on状态 */
-                $(this).parent().siblings().find('.btn').removeClass('on');
-                /* 填写order */
-                order.appendID = $(this).attr('data-extra-type');
-                order.price = $(this).attr('data-extra-price');
-                order.cost = order.price * order.productCount;
-                // 重置代金券
-                $('.coupon-selected-name', $view).html('选择优惠券');
-                order.couponValue = 0;
-                order.couponID = '';
-                payCharge($('.order-cost', $view));
-            }, $view);
-
-            /* 点击选择地址 */
-            $.newTouch('.select-address', function (event) {
-                event.preventDefault();
-                /* 如果是微信客户端,跳转到addressList页面。 */
-                if (!config.isAndroid && !config.isIOS) {
-                    $doc.trigger('spa:navigate', {
-                        hash: 'addressList',
-                        pushData: {
-                            backHash: 'placeOrder'
-                        },
-                        callback: {
-                            /* 在addressList页面挑选之后,回到这个页面时执行的回调。 */
-                            onSelect: function (address, station) {
-                                order.set('address', address, true);
-                                order.set('stationID', station, true);
-
-                                var addressStr = '';
-                                if (order.address.address.poi) {
-                                    addressStr = order.address.address.city + order.address.address.area + order.address.address.poi.name + order.address.address.detail
-                                } else {
-                                    addressStr = order.address.address.province + order.address.address.city + order.address.address.area + order.address.address.detail
-                                }
-                                $('.order-address', $view).html(addressStr);
-                                $('.order-username', $view).html(order.address.name);
-                                $('.order-mobile', $view).html(order.address.mobile);
-                            }
-                        }
-                    });
-                }
-            }, $view);
-
-            /* 点击选择附加服务
-             $.newTouch('.item-checkbox', function (event) {
-             event.preventDefault();
-             // 如果'.main-service'元素的子元素数目为正(也就是说出现了选择主服务那一栏,也就是说在前一页选择的是附加服务),且不处于on状态(也就是还没有选择主服务)
-             if ($('.main-service', $view).length && !$('.main-service', $view).find('.btn-main-service').hasClass('on')) {
-             // 弹出一个对话框
-             $doc.trigger('spa:openpanel', ['simpleAlert', {
-             message: '请选择服务类型'
-             }]);
-             return;
-             }
-             // $(this).data('xxx'):获取this中data-xxx的数据。
-             // 获取这一条附加服务的相关的数据。select没用,估计是原来想用这个记录选中状态的。
-             var select = $(this).data('select'),
-             id = $(this).data('id'),
-             index = $(this).parent().index(),
-             price = $(this).data('price');
-             extraType = $(this).data('servicetype');
-             // 获取附加服务的总费用。
-             var extraCost = $('.order-cost', $view).attr('data-extra');
-             // 如果原来没有选中这一项,下面就是选中的操作
-             if (!$(this).hasClass('checked')) {
-             // 附加服务数量+1
-             cachePageData.extraServiceCount++;
-             // 保存附加服务的总价格
-             cachePageData.extraServicePrice += parseFloat(price);
-             // 添加checked状态
-             $(this).addClass('checked');
-             var serviceParam = {
-             product_id: id,
-             count: 1
-             }
-             // /为什么是个数组?
-             order.extraService[index] = serviceParam;
-             // 把订单详情中对应的项目添加on属性
-             $('.calc-items', $view).find('.select-extra-service').eq(index).addClass('on');
-             // 计算附加服务的总费用。
-             extraCost = parseFloat(extraCost) + parseFloat(price);
-             $('.order-cost', $view).attr('data-extra', extraCost);
-             }
-             // 如果原来选中了这一项,下面就是取消选中的操作
-             else {
-             // 附加服务数量-1
-             cachePageData.extraServiceCount--;
-             // 保存附加服务的总价格
-             cachePageData.extraServicePrice -= parseFloat(price);
-             // 删除checked属性
-             $(this).removeClass('checked');
-
-             order.extraService[index] = {};
-             // 把订单详情中对应的项目删掉on属性
-             $('.calc-items', $view).find('.select-extra-service').eq(index).removeClass('on');
-             // 计算附加服务的总费用。
-             extraCost = parseFloat(extraCost) - parseFloat(price);
-             $('.order-cost', $view).attr('data-extra', extraCost);
-             }
-             // 根据附加服务的数量,更新订单详情中附加服务模块的显示与隐藏
-             if (cachePageData.extraServiceCount > 0) {
-             $('.calc-items', $view).removeClass('hide');
-             } else {
-             $('.calc-items', $view).addClass('hide');
-             }
-             // 更新订单详情中每一条附加服务的显示与隐藏
-             if ($('.calc-items', $view).find('.select-extra-service').hasClass('on')) {
-             $('.calc-items', $view).removeClass('hide');
-             } else {
-             $('.calc-items', $view).addClass('hide');
-             }
-             // 计算总价钱
-             payCharge();
-             // 刷新界面
-             pageData.scroll.refresh();
-             }, $view); */
-
-            /* 点击选择保洁师
-             $.newTouch('.show-beautician-picker', function (event) {
-             // 如果订单的地址数据为空
-             if (!order.address || !order.address.address_id) {
-             // 弹出提示框
-             $doc.trigger('spa:openpanel', ['simpleAlert', {
-             message: '请选择地址'
-             }]);
-             return;
-             }
-             // 点击订单的预定时间为空
-             if (order.bookingDate == '' || order.bookingTime == '') {
-             // 弹出提示框
-             $doc.trigger('spa:openpanel', ['simpleAlert', {
-             message: '请选择上门时间'
-             }]);
-             return;
-             }
-             // 点击订单的主服务类型为空
-             if (!order.productType) {
-             // /弹出提示框
-             $doc.trigger('spa:openpanel', ['simpleAlert', {
-             message: '请选择服务类型'
-             }]);
-             return;
-             }
-             // 生成预定时间的字符串
-             var bookingTime = order.bookingDate + ' ' + order.bookingTime + ':00';
-             // 生成所有服务的字符串
-             var service_type_array = [order.productType];
-             var service_type = '[' + service_type_array.join(',') + ']';
-             // 根据服务、时间、地址,向服务器请求保洁师列表
-             user.getTechList(
-             service_type,
-             bookingTime,
-             order.address.address_id,
-             // 请求成功后跳转到beautician页面,在beautician页面展示保洁师列表
-             function (res) {
-             $doc.trigger('spa:navigate', {
-             hash: 'beautician',
-             pushData: {
-
-             }
-             });
-             }
-             );
-             }, $view);  */
-
-            /* 点击选择宠物相关
-             $.newTouch('.show-product-picker', function () {
-             // 如果有了selected属性,就return
-             if ($(this).hasClass('selected')) return;
-             event.preventDefault();
-             // 主服务>10是什么意思???
-             if (cachePageData.productType > 10) {
-             $doc.trigger('spa:openpanel', ['simpleAlert', {
-             message: '请选择服务类型'
-             }]);
-             return;
-             }
-             // 弹出一个列表选择框。
-             $doc.trigger('spa:openpanel', ['productOption', {
-             pets: product.productGroup[cachePageData.productType],
-             productType: cachePageData.productType,
-             callback: {
-             onSelect: function (petName, petWeight, petPrice) {
-             // set order info
-             order.petName = petName;
-             order.petWeight = petWeight;
-             order.petPrice = petPrice;
-             order.productType = cachePageData.productType;
-             order.petID = cart['products'][cachePageData.productType]['petID'];
-             order.productID = cart['products'][cachePageData.productType]['productID'];
-             // user.orderCoupons = res.data;
-             // 筛选附加服务
-             if (cachePageData.extraServiceType > 10) {
-             var selectExtraServiceName = cachePageData.defaultExtraService[cachePageData.extraServiceType].serviceName;
-             var selectExtraServicePrice = cachePageData.defaultExtraService[cachePageData.extraServiceType].servicePrice;
-
-             $('.order-cost', $view).attr('data-extra', selectExtraServicePrice);
-             }
-
-             suitExtraService($view, selectExtraServiceName);
-
-             $('.pet-info', $view).html(petName + ' (' + petWeight + ')');
-             $('.pet-type', $view).html(petName + ' (' + petWeight + ')');
-             $('.total-cost', $view).html('¥' + petPrice);
-
-             if ($('.calc-items', $view).find('.select-extra-service').hasClass('on')) {
-             $('.calc-items', $view).removeClass('hide');
-             petPrice = parseFloat(petPrice) + parseFloat(selectExtraServicePrice);
-             }
-
-             $('.order-cost', $view).attr('data-costs', order.petPrice);
-             $('.order-cost', $view).attr('data-extra', cachePageData.extraServicePrice);
-             $('.order-cost', $view).html('¥' + petPrice);
-
-             $('.select-pet', $view).removeClass('hide');
-
-             if (order['productID'] && order.bookingDate) {
-             setCoupon($view, pageData, cachePageData.extraServicePrice);
-             }
-
-             pageData.scroll.refresh();
-             }
-             }
-             }]);
-             }, $view); */
-
-            /* 点击数量-1 */
-            $.newTouch('.btn-sub', function (event) {
-                if (order.productCount <= 1) return;
-                if (order.price == 0) {
-                    $doc.trigger('spa:openpanel', ['simpleAlert', {
-                        message: '请选择服务'
-                    }]);
-                    return;
-                }
-                var inputNum = $('.service-count', $view).children('.input-num').val();
-                if (isNaN(inputNum)) {
-                    $doc.trigger('spa:openpanel', ['simpleAlert', {
-                        message: '请输入数字'
-                    }]);
-                    return false;
-                }
-                order.productCount = inputNum;
-                order.productCount--;
-                order.cost = order.productCount * order.price;
-                $('.service-count', $view).children('.input-num').val(order.productCount);
-                /* 算账 */
-                payCharge($('.order-cost', $view));
-            }, $view);
-
-            /*点击body重置金额*/
-            $.newTouch('body', function (event) {
-                //input输入
-                var inputNum = $('.service-count', $view).children('.input-num').val();
-                if (isNaN(inputNum)) {
-                    $doc.trigger('spa:openpanel', ['simpleAlert', {
-                        message: '请输入数字'
-                    }]);
-                    return false;
-                }
-                //与input输入框的文本的数据做交互;
-                order.productCount = inputNum;
-                order.cost = order.productCount * order.price;
-                $('.service-count', $view).children('.input-num').val(order.productCount);
-            })
-
-            /* 点击数量+1 */
-            $.newTouch('.btn-add', function (event) {
-                if (order.productCount > 999) return;
-                if (order.price == 0) {
-                    $doc.trigger('spa:openpanel', ['simpleAlert', {
-                        //message: '请选择extra'
-                        message: '请选择服务'
-                    }]);
-                    return;
-                }
-                var inputNum = $('.service-count', $view).children('.input-num').val();
-                if (isNaN(inputNum)) {
-                    $doc.trigger('spa:openpanel', ['simpleAlert', {
-                        message: '请输入数字'
-                    }]);
-                    return false;
-                }
-                order.productCount = inputNum;
-                order.productCount++;
-                order.cost = order.productCount * order.price;
-                $('.service-count', $view).children('.input-num').val(order.productCount);
-                /* 算账 */
-                payCharge($('.order-cost', $view));
-            }, $view);
-
-            /* 点击选择时间 */
-            $.newTouch('.show-time-picker', function (event) {
-                event.preventDefault();
-                // 以下是构建时间选择器,不用管。直接看选完之后的回调。
-                var dayNamesA = ['周日', '周一', '周二', '周三', '周四', '周五', '周六'];
-                var dayNamesB = ['今天'];
-                var columns = {
-                    columnDay: [],
-                    columnTime: []
-                };
-                var now = new Date().getHours();
-                var daySelectIndex = 0;
-                for (var i = 1; i <= 9; i++) {
-                    var dd = new Date();
-                    dd.setDate(dd.getDate() + i);
-
-                    var month = dd.getMonth() + 1;
-                    var day = dd.getDate();
-                    var date = month + '月' + day + '日';
-
-                    var dayStr = helper.getDateStr({
-                        date: dd,
-                        separator: '-'
-                    });
-
-                    var dayStrSuffix;
-                    if (i < dayNamesB.length) {
-                        dayStrSuffix = dayNamesB[i];
-                    } else {
-                        dayStrSuffix = dayNamesA[dd.getDay()];
-                    }
-                    var selected = false;
-                    if (order.bookingDate) {
-                        selected = true;
-                    }
-                    if (dayStr == order.bookingDate) {
-                        daySelectIndex = i;
-                    } else {
-                        daySelectIndex = -1;
-                    }
-                    columns.columnDay.push({
-                        text: date, // 几月几日
-                        day: dayStrSuffix, // 周几
-                        value: dayStr,
-                        selected: selected,
-                        selectIndex: daySelectIndex
-                    });
-                }
-
-                var currentDate = new Date();
-                var currentMonth = currentDate.getMonth() + 1;
-                var currentDay = currentDate.getDate();
-                var now = new Date().getHours();
-                var min = new Date().getMinutes();
-                var timeSelectIndex = 0;
-                for (var i = 9; i <= 19; i++) {
-                    var hour = i + ':00';
-                    var selected = false;
-                    if (order.bookingTime) {
-                        selected = true;
-                    }
-                    if (hour == order.bookingTime) {
-                        timeSelectIndex = i;
-                    } else {
-                        timeSelectIndex = -1;
-                    }
-                    columns.columnTime.push({
-                        month: currentMonth,
-                        day: currentDay,
-                        min: min,
-                        num: i,
-                        now: now,
-                        text: hour,
-                        value: hour,
-                        selected: selected,
-                        selectIndex: timeSelectIndex
-                    })
-                }
-                $doc.trigger('spa:openpanel', ['dataPicker', {
-                    // type: cachePageData.productType,
-                    columns: columns,
-                    selected: order.bookingDate,
-                    // offDay: product.offDay,
-                    callback: {
-                        // 选完之后的回调。values:[日期,时间];texts:时间字符串;precedence:是否加急;
-                        onSelect: function (values, texts, precedence) {
-                            // 重置代金券
-                            $('.coupon-selected-name', $view).html('选择优惠券');
-                            order.couponValue = 0;
-                            order.couponID = '';
-                            payCharge($('.order-cost', $view));
-                            // 填写order
-                            order.bookingDate = values[0];
-                            order.bookingTime = values[1];
-                            order.bookingTimeStr = texts[0] + ' ' + texts[1];
-                            order.precedence = precedence;
-                            // 更新预定时间组件
-                            $('.booking-time', $view).html(order.bookingTimeStr);
-                        }
-                    }
-                }]);
-            }, $view);
-
-            /* 点击选择优惠券 */
-            $.newTouch('.show-coupon-picker', function (event) {
-                if ($(this).hasClass('disabled')) return;
-                event.preventDefault();
-
-                var extraJson = '';
-                if (product.extra && !order.appendID) {
-                    $doc.trigger('spa:openpanel', ['simpleAlert', {
-                        message: '请选择服务'
-                    }]);
-                    return;
-                } else {
-                    extraJson = JSON.stringify([{type: order.appendID, price: order.price}]);
-                }
-
-                // 必须先选择时间
-                if (!order.bookingDate) {
-                    $doc.trigger('spa:openpanel', ['simpleAlert', {
-                        message: '请选择服务时间'
-                    }]);
-                    return;
-                }
-
-                // 跳转到picker页面,展示优惠券
-                $doc.trigger('spa:navigate', {
-                    hash: 'picker',
-                    pushData: {
-                        title: '选择优惠券',
-                        backHash: 'placeOrder',
-                        products: JSON.stringify([{
-                            product_id: order.productID,
-                            count: order.productCount
-                        }]),
-                        time: order.bookingDate + ' ' + order.bookingTime + ':00',
-                        type: order.productType,
-                        extraJson: extraJson
-                    },
-                    callback: {
-                        // 在picker页面挑选之后,回到这个页面时执行的回调。pickValue:选中的优惠券的ID;
-                        onSelect: function (pickValue) {
-                            if (pickValue == '') {
-                                $('.coupon-selected-name', $view).text('不使用');
-                                order.couponValue = 0;
-                            } else {
-                                for (var i in user.orderCoupons) {
-                                    var couponInfo = user.orderCoupons[i];
-                                    if (couponInfo.id == pickValue) {
-                                        $('.coupon-selected-name', $view).text(couponInfo['coupon']['name']);
-                                        order.couponValue = couponInfo['coupon']['value'];
-                                        break;
-                                    }
-                                }
-                            }
-                            // 填写order
-                            order.couponID = pickValue;
-                            // 计算总费用
-                            payCharge($('.order-cost', $view));
-                        }
-                    }
-                });
-            }, $view);
-
-            /* 是否选中同意用户协议,关系到下订单按钮是否激活 */
-            $.newTouch('.agreement-touch-area', function (event) {
-                var agreementObj = $('.agreement-checkbox', $view);
-                if (agreementObj.prop('checked')) {
-                    agreementObj.prop('checked', false);
-                    $('.btn-place').addClass('disable');
-                } else {
-                    agreementObj.prop('checked', true);
-                    $('.btn-place').removeClass('disable');
-                }
-            }, $view);
-
-            /* 跳转到agreement页面查看协议 */
-            $.newTouch('.agreement', function (event) {
-                $doc.trigger('spa:navigate', {
-                    hash: 'agreement'
-                });
-            }, $view);
-
-            /* 点击下订单 */
-            $.newTouch('.btn-place', function (event) {
-                event.preventDefault();
-                if ($(this).hasClass('disable')) {
-                    return false;
-                }
-                if (product.type_str == "擦玻璃" && order.productCount < 10) {
-                    $doc.trigger('spa:openpanel', ['simpleAlert', {
-                        message: '数量不少于10平米'
-                    }]);
-                    return;
-                }
-
-                if (product.type_str == "新居开荒" && order.productCount < 50) {
-                    $doc.trigger('spa:openpanel', ['simpleAlert', {
-                        message: '数量不少于50平米'
-                    }]);
-                    return;
-                }
-                if (product.extra && !order.appendID) {
-                    $doc.trigger('spa:openpanel', ['simpleAlert', {
-                        message: '请选择服务'
-                    }]);
-                    return;
-                }
-                if (!order.address) {
-                    $doc.trigger('spa:openpanel', ['simpleAlert', {
-                        message: '请选择地址'
-                    }]);
-                    return;
-                }
-                if (!order.bookingTimeStr && product.name !== "双11虹口区日常保洁特价体验") {
-                    $doc.trigger('spa:openpanel', ['simpleAlert', {
-                        message: '请选择上门时间'
-                    }]);
-                    return;
-                }
-                var payChannel = 'wx_pub';
-                /* 使备注输入框失去焦点,获取值 */
-                $('.order-memo', $view).blur();
-                order.set('memo', $('.order-memo', $view).val());
-
-                /* 向服务器下订单 */
-                $doc.trigger('spa:openloader');
-                if (user.balance >= order.payValue) {
-                    order.balance = order.payValue;
-                    order.payValue = 0;
-                } else {
-                    order.balance = user.balance;
-                    order.payValue = order.payValue - order.balance;
-                }
-                order.addOrder(user.id, payChannel, function (res) {
-                    $doc.trigger('spa:closeloader');
-                    if (res.success) {
-                        // 更新user的订单
-                        user.orders[1].data.push(res.data);
-                        // 更新user的优惠券
-                        var oldCouponList = user.orderCoupons;
-                        var oldCouponId = order.couponID;
-                        var newCouponList = [];
-                        $.each(oldCouponList, function (index, val) {
-                            if (val.id !== oldCouponId) {
-                                newCouponList.push(oldCouponList[index])
-                            }
-                        });
-                        user.orderCoupons = newCouponList;
-
-                        var orderID = order.id;
-                        order.reset();
-                        $('.booking-time', $view).html('请选择');
-                        if (res.data.status == 1) {
-                            $doc.trigger('spa:navigate', {
-                                hash: 'paySuccess'
-                            });
-
-                        } else {
-                            $doc.trigger('spa:navigate', {
-                                hash: 'pay',
-                                pushData: {
-                                    orderID: orderID,
-                                    backHash: ''
-                                }
-                            });
-                        }
-                    } else {
-                        $doc.trigger('spa:openpanel', ['simpleAlert', {
-                            message: res.message
-                        }]);
-                    }
-                });
-            }, $view);
-
-            dtd.resolve();
-        },
-        beforeopen: function (pageData, dtd) {
-            /*地址- setInterval-setTimeout*/
-            /*地址-setInterval-setTimeout*/
-            setTimeout(function () {
-                if ($('.booking-time').html() == "选择服务时间" && order.bookingTimeStr.length > 0) {
-                    $('.booking-time', $view).html(order.bookingTimeStr);
-                }
-                /*隐藏广告位*/
-                // $('.product-pic-o2o').css('display', 'none');
-                /*当用户没有地址时*/
-                var defaultAddress = address.defaultAddress;
-                /*未登录*/
-                if (user.id.length == 0) {
-                    $('.order-mobile').html('添加服务地址');
-                } else if (user.id.length != 0 && typeof(defaultAddress) !== "undefined") {
-                    api.checkAddress({
-                        address_id: defaultAddress.address_id,
-                        user_id: user.id
-                    }, function (res) {
-                        if (res.success) {
-                            if ($('.order-username').html() == "") {
-                                order.address = address.defaultAddress;
-                                order.stationID = res.data.station;
-                                $('.order-username').html(defaultAddress.name);
-                                $('.order-mobile').html(defaultAddress.mobile);
-                                $('.order-address').html(defaultAddress.address.city + defaultAddress.address.area + defaultAddress.address.detail).css('text-align', 'right');
-                            }
-                        } else {
-                            $('.order-mobile').html('添加服务地址');
-                        }
-                    })
-                } else if (user.id.length != 0 && typeof(defaultAddress) == "undefined") {
-                    $('.order-mobile').html('添加服务地址');
-                }
-            }, 500);
-
-            var $view = this;
-            var pushData = pageData.pushData;
-
-
-            /* 只有首页跳转来,才会带有needReset = true */
-            /*获取上一页跳转的路由名称*/
-            backHash = pushData.backHash ? pushData.backHash : '';
-
-            if (pushData.hasOwnProperty('needReset') && pushData.needReset) {
-
-                /* 接收首页传来的product,填写order的productType(产品类型)、productID(产品ID)两个字段 */
-                pushData.needReset = false;
-                product = pushData.product;
-
-                order.productType = product.type;
-                order.productID = product.id;
-                order.productCount = 1;
-                order.couponValue = 0;
-                /* 根据product建立渲染页面的数据 */
-                var tmpData = {
-                    /* 环境,目前只决定是否显示保洁师 */
-                    env: config,
-                    /* 环境 */
-                    showNavBar: !config.isWX && !config.isChubao,
-                    imgSrc: product.imgSrc,
-                    /* 标题栏的标题 */
-                    title: product.name,
-                    /* extra选择项 */
-                    extra: product.extra,
-                    /* 如果用户有优惠券,则显示优惠券的选择栏 */
-                    showCoupon: user.orderCoupons.length,
-                    /* 账户余额 */
-                    balance: user.balance
-                };
-                /* 渲染页面 */
-                var tpl = template('placeOrder/index', tmpData);
-                $view.find('.spa-page-body').html(tpl);
-                /* 绑定费用数据 */
-                if (product.extra) {
-                    order.price = 0;
-                    order.cost = 0;
-                } else {
-                    order.price = product.price;
-                    order.cost = product.price * order.productCount;
-                }
-                payCharge($('.order-cost', $view));
-
-                /* 软键盘相关操作时对IScroll的补偿 */
-                fixScroll(pageData);
-                $('.order-memo', $view).focus(function (event) {
-                    var that = this;
-                    checkScroll(pageData, function () {
-                        if (pageData.scroll) {
-                            pageData.scroll.scrollToElement(that, 0);
-                        }
-                    });
-                });
-                $('.order-memo', $view).on('closeKeyboard', function (event) {
-                    checkScroll(pageData);
-                    $(this).blur();
-                });
-                $('.order-memo', $view).blur(function (event) {
-                    checkScroll(pageData);
-                });
-
-                /* 填写备注时,提交按钮失焦 */
-                $('#order-form', $view).on('submit', function (event) {
-                    $(this).blur();
-                    return false;
-                });
-            }
-            dtd.resolve();
-        },
-        afteropen: function (pageData, dtd) {
-
-            var type = pageData.pushData.productType;
-            native.registerEvent(true);
-            dtd.resolve();
-            if (config.isWX) {
-                wx.ready(function () {
-                    wx.onMenuShareTimeline({
-                        title: '家政服务' + product.desc[1].content + ',首选壹管家',
-                        link: 'http://www.yiguanjia.me/o2o/web/index',
-                        imgUrl: product.desc[0].content
-                    });
-                    wx.onMenuShareAppMessage({
-                        title: '家政服务' + product.desc[1].content + ',首选壹管家',
-                        desc: '全程管家,精心每一个细节',
-                        link: 'http://www.yiguanjia.me/o2o/web/index',
-                        imgUrl: product.desc[0].content
-                    });
-                });
-            }
-        },
-        afterclose: function (pageData) {
-            native.registerEvent(false);
-        }
-    }
+	/*
+	 * 这里对product和order做一个说明。
+	 * product前台写死。order沿用原模型,但只用其中几个字段。
+	 * 对应关系如下:
+	 * product.id == order.productID :产品ID
+	 * product.type == order.productType :产品类型,约定的数字
+	 * product.price == order.cost :订单原价,当product的extra字段为空
+	 * product.extra.price == order.cost :订单原价,当product的extra字段不为空
+	 * product.type_str == order.serviceName :服务名称
+	 * product.extra.type == order.appendID :服务的额外选项,当product的extra字段不为空
+	 */
+
+	/* 从首页传来的产品数据 */
+	var product;
+	var backHash;
+	var extraJson = '';
+	var a = 1;
+	/* 软键盘弹出与消失时布局变动。 */
+	function checkScroll(pageData, callback) {
+		if (pageData.scroll) {
+			if (!pageData.scrollHeight) {
+				pageData.scrollHeight = 0;
+			}
+			clearInterval(pageData.scrollCheck);
+			clearTimeout(pageData.scrollCheckAutoCancel);
+			pageData.scrollCheck = setInterval(function () {
+				pageData.scroll.refresh();
+				if ($.isFunction(callback)) {
+					callback();
+				}
+			}, 50);
+
+			pageData.scrollCheckAutoCancel = setTimeout(function () {
+				clearInterval(pageData.scrollCheck);
+			}, 500);
+		}
+	}
+
+	/* 返回上一级 */
+	function back(event) {
+		event.preventDefault();
+		$(document).trigger('spa:navigate', {
+			hash: backHash,
+			pushData: {
+				dontNeedReload: true,
+				product: product
+			}
+		});
+	}
+
+	/* 重置页面时调用,重新生成IScroll */
+	function fixScroll(pageData) {
+		setTimeout(function () {
+			if (product.name == "首单日常保洁2小时体验") {
+				$('.selected').css('display', 'none');
+			}
+			if (product.name == "擦玻璃") {
+				$('.orderNum').text("请选择玻璃的平方数");
+			}
+			if (product.name == "新居开荒-每平米") {
+				$('.orderNum').text("请选择开荒的平方数");
+			}
+			/*隐藏手势*/
+			$('.product-img').css('display', 'none');
+		}, 100);
+		if (pageData.scroll) {
+			pageData.scroll.destroy();
+			pageData.scroll = null;
+		}
+		var placeOrderScroll;
+		setTimeout(function () {
+			pageData.scroll = new IScroll('#placeOrderScroll');
+
+		}, 700);
+	}
+
+	/* 算账。 */
+	function payCharge($orderCost) {
+		order.payValue = order.cost - order.couponValue;
+		$orderCost.text('¥' + order.payValue);
+	}
+
+	/* 也是自动选取最大优惠券的操作,只是与setCoupon策略不同
+	 function suitable(me, doc, productID, type, petPrice, pay, pageData, extra, precedence) {
+	 extra = extra || 0;
+	 precedence = precedence || 0;
+	 // 获取该类型宠物 可用优惠券
+	 doc.trigger('spa:openloader');
+	 api.getCouponList({
+	 products: JSON.stringify([{
+	 product_id: productID,
+	 count: 1
+	 }]),
+	 type: type,
+	 user_id: user.id
+	 }, function (res) {
+	 doc.trigger('spa:closeloader');
+	 if (!res.success) {
+	 doc.trigger('spa:openpanel', ['simpleAlert', {
+	 message: res.message
+	 }]);
+	 } else {
+	 user.orderCoupons = res.data;
+
+	 // 优惠券数据更新
+	 var coupons = user.orderCoupons;
+	 var couponSelectVal = 0;
+	 if (coupons.length) {
+	 // 选取最大金额
+	 var selectCoupon = user.getMaxAvailableCoupon();
+
+	 // 缓存到购物车
+	 cart['products'][type]['couponName'] = coupons[selectCoupon.couponIndex].coupon.name;
+	 cart['products'][type]['couponVal'] = selectCoupon.couponSelectVal;
+	 cart['products'][type]['couponId'] = coupons[selectCoupon.couponIndex].id;
+	 cart['products'][type]['couponList'] = coupons;
+
+	 // dom 更新
+	 $('.coupon-selected-name', me).html(user.getCouponName(coupons[selectCoupon.couponIndex].id));
+	 $('.coupon-cost', me).html('-' + selectCoupon.couponSelectVal);
+	 $('.select-coupon', me).removeClass('hide');
+	 $('.order-cost', me).attr('data-coupon', selectCoupon.couponSelectVal);
+	 $('.order-list', me).removeClass('hide');
+	 $('.order-cost', me).attr('data-pay', parseFloat(petPrice) - parseFloat(selectCoupon.couponSelectVal) + extra);
+
+	 // 减去优惠
+	 petPrice = parseFloat(petPrice) - parseFloat(selectCoupon.couponSelectVal) + extra + precedence;
+
+	 } else {
+	 // 缓存到购物车
+	 cart['products'][type]['couponName'] = '';
+	 cart['products'][type]['couponVal'] = '';
+	 cart['products'][type]['couponId'] = '';
+	 cart['products'][type]['couponList'] = [];
+
+	 $('.coupon-selected-name', me).html('');
+	 $('.coupon-cost', me).html('- 0');
+	 $('.select-coupon', me).addClass('hide');
+	 $('.order-cost', me).attr('data-coupon', 0);
+
+	 petPrice = parseFloat(petPrice) + extra + precedence;
+	 }
+	 // 缓存到本地
+	 cart.setCache('products');
+
+	 // 更新dom总价
+	 $('.order-cost', me).attr('data-costs', pay);
+	 $('.order-cost', me).html('¥' + petPrice);
+
+	 $('.select-pet', me).removeClass('hide');
+
+	 if (pageData && pageData.scroll) {
+	 pageData.scroll.refresh();
+	 }
+	 }
+	 });
+	 }
+	 */
+	/* 优惠券取决于主服务、宠物、数量、时间,所以在这几个值改变后要调用这个方法,更新最大优惠
+	 function setCoupon(me, pageData, extraServicePrice) {
+	 $(document).trigger('spa:openloader');
+	 var products = JSON.stringify([{
+	 product_id: order['productID'],
+	 count: order.productCount
+	 }]);
+	 var time = order.bookingDate + ' ' + order.bookingTime + ':00';
+	 user.getProductCoupon(products, time, cachePageData.productType, function (res) {
+	 $(document).trigger('spa:closeloader');
+	 if (res.success) {
+	 var coupons = user.orderCoupons;
+	 var price = 0;
+	 if (coupons.length) {
+	 var selectCoupon = user.getMaxAvailableCoupon();
+	 cart['products'][cachePageData.productType]['couponName'] = coupons[selectCoupon.couponIndex].coupon.name;
+	 cart['products'][cachePageData.productType]['couponVal'] = selectCoupon.couponSelectVal;
+	 cart['products'][cachePageData.productType]['couponId'] = coupons[selectCoupon.couponIndex].id;
+	 cart['products'][cachePageData.productType]['couponList'] = coupons;
+
+	 $('.coupon-selected-name', me).html(user.getCouponName(coupons[selectCoupon.couponIndex].id));
+	 $('.coupon-cost', me).html('-' + selectCoupon.couponSelectVal);
+	 $('.select-coupon', me).removeClass('hide');
+	 $('.order-cost', me).attr('data-coupon', selectCoupon.couponSelectVal);
+	 $('.order-list', me).removeClass('hide');
+	 price = parseFloat(order.petPrice) * order.productCount - parseFloat(selectCoupon.couponSelectVal) + parseFloat(extraServicePrice);
+
+	 } else {
+	 price = parseFloat(order.petPrice) * order.productCount + parseFloat(extraServicePrice);
+
+	 $('.coupon-selected-name', me).html('');
+	 $('.select-coupon', me).addClass('hide');
+	 $('.order-cost', me).attr('data-coupon', '0');
+	 $('.order-cost', me).attr('data-pay', parseFloat(order.petPrice));
+	 cart['products'][cachePageData.productType]['couponName'] = '';
+	 cart['products'][cachePageData.productType]['couponVal'] = '';
+	 cart['products'][cachePageData.productType]['couponId'] = '';
+	 cart['products'][cachePageData.productType]['couponList'] = [];
+	 }
+	 // 加急
+	 if (order.precedence) {
+	 price = price + parseFloat(product.precedence);
+	 }
+	 $('.order-cost', me).attr('data-pay', price);
+	 $('.order-cost', me).attr('data-costs', order.petPrice);
+	 $('.order-cost', me).html('¥' + price);
+
+	 cart.setCache('products');
+
+	 pageData.scroll.refresh();
+	 } else {
+	 $(document).trigger('spa:openpanel', ['simpleAlert', {
+	 message: res.message
+	 }]);
+	 }
+	 });
+	 }  */
+	/* 在选择主服务或宠物后,筛选附加服务
+	 function suitExtraService(me, checkedName) {
+	 var newExtraService = product.getExtraServiceList(order.productType, order.petName, checkedName);
+	 var extraService = {
+	 extraService: newExtraService
+	 }
+	 var extraServiceTpl = template('placeOrder/list', extraService);
+	 var extraServiceTpl2 = template('placeOrder/list2', extraService);
+	 me.find('.extra-service-list').html(extraServiceTpl);
+	 me.find('.calc-items').html(extraServiceTpl2).addClass('hide');
+
+	 cachePageData.extraServicePrice = 0;
+	 cachePageData.extraServiceCount = 0;
+	 } */
+	/* 在选择主服务、附加服务、宠物、时间、地点之后,重置保洁师
+	 function resetTech(me) {
+	 order.beautician.name = '请选择';
+	 order.beautician.id = '';
+	 $('.booking-people', me).html(order.beautician.name);
+	 }  */
+	return {
+		title: '壹管家上门服务',
+		body: '',
+		init: function (pageData, dtd) {
+			var $view = this;
+			var $doc = $(document);
+
+
+			/* 三个返回操作 */
+			$.newTouch('.back-button', function (event) {
+				back.call(this, event);
+			}, $view);
+			$view.on('tapBackButton', function (event) {
+				back.call(this, event);
+			});
+			$view.on('swipeRight', function (event) {
+				back.call(this, event);
+			});
+			/* 点击选择extra。 */
+			$.newTouch('.btn-main-service', function (event) {
+				/* on代表这一条的选中状态。如果已经选中了,就return。this的作用域是这一条extra。 */
+				if ($(this).hasClass('on')) return;
+				/* 如果没有on状态,加上on。 */
+				$(this).addClass('on');
+				/* 删掉其他选择框的on状态 */
+				$(this).parent().siblings().find('.btn').removeClass('on');
+				/* 填写order */
+				order.appendID = $(this).attr('data-extra-type');
+				order.price = $(this).attr('data-extra-price');
+				order.cost = order.price * order.productCount;
+				// 重置代金券
+				$('.coupon-selected-name', $view).html('选择优惠券');
+				order.couponValue = 0;
+				order.couponID = '';
+				if (order.bookingTimeStr && $('.booking-time').html() !== "选择服务时间") {
+					dPicker();
+				}
+				payCharge($('.order-cost', $view));
+			}, $view);
+
+			/* 点击选择地址 */
+			$.newTouch('.select-address', function (event) {
+				event.preventDefault();
+				/* 如果是微信客户端,跳转到addressList页面。 */
+				if (!config.isAndroid && !config.isIOS) {
+					$doc.trigger('spa:navigate', {
+						hash: 'addressList',
+						pushData: {
+							backHash: 'placeOrder'
+						},
+						callback: {
+							/* 在addressList页面挑选之后,回到这个页面时执行的回调。 */
+							onSelect: function (address, station) {
+								order.set('address', address, true);
+								order.set('stationID', station, true);
+								a = 2;
+								var addressStr = '';
+								if (order.address.address.poi) {
+									addressStr = order.address.address.city + order.address.address.area + order.address.address.poi.name + order.address.address.detail
+								} else {
+									addressStr = order.address.address.province + order.address.address.city + order.address.address.area + order.address.address.detail
+								}
+								$('.order-address', $view).html(addressStr);
+								$('.order-username', $view).html(order.address.name);
+								$('.order-mobile', $view).html(order.address.mobile);
+							}
+						}
+					});
+				}
+			}, $view);
+
+			/* 点击选择附加服务
+			 $.newTouch('.item-checkbox', function (event) {
+			 event.preventDefault();
+			 // 如果'.main-service'元素的子元素数目为正(也就是说出现了选择主服务那一栏,也就是说在前一页选择的是附加服务),且不处于on状态(也就是还没有选择主服务)
+			 if ($('.main-service', $view).length && !$('.main-service', $view).find('.btn-main-service').hasClass('on')) {
+			 // 弹出一个对话框
+			 $doc.trigger('spa:openpanel', ['simpleAlert', {
+			 message: '请选择服务类型'
+			 }]);
+			 return;
+			 }
+			 // $(this).data('xxx'):获取this中data-xxx的数据。
+			 // 获取这一条附加服务的相关的数据。select没用,估计是原来想用这个记录选中状态的。
+			 var select = $(this).data('select'),
+			 id = $(this).data('id'),
+			 index = $(this).parent().index(),
+			 price = $(this).data('price');
+			 extraType = $(this).data('servicetype');
+			 // 获取附加服务的总费用。
+			 var extraCost = $('.order-cost', $view).attr('data-extra');
+			 // 如果原来没有选中这一项,下面就是选中的操作
+			 if (!$(this).hasClass('checked')) {
+			 // 附加服务数量+1
+			 cachePageData.extraServiceCount++;
+			 // 保存附加服务的总价格
+			 cachePageData.extraServicePrice += parseFloat(price);
+			 // 添加checked状态
+			 $(this).addClass('checked');
+			 var serviceParam = {
+			 product_id: id,
+			 count: 1
+			 }
+			 // /为什么是个数组?
+			 order.extraService[index] = serviceParam;
+			 // 把订单详情中对应的项目添加on属性
+			 $('.calc-items', $view).find('.select-extra-service').eq(index).addClass('on');
+			 // 计算附加服务的总费用。
+			 extraCost = parseFloat(extraCost) + parseFloat(price);
+			 $('.order-cost', $view).attr('data-extra', extraCost);
+			 }
+			 // 如果原来选中了这一项,下面就是取消选中的操作
+			 else {
+			 // 附加服务数量-1
+			 cachePageData.extraServiceCount--;
+			 // 保存附加服务的总价格
+			 cachePageData.extraServicePrice -= parseFloat(price);
+			 // 删除checked属性
+			 $(this).removeClass('checked');
+
+			 order.extraService[index] = {};
+			 // 把订单详情中对应的项目删掉on属性
+			 $('.calc-items', $view).find('.select-extra-service').eq(index).removeClass('on');
+			 // 计算附加服务的总费用。
+			 extraCost = parseFloat(extraCost) - parseFloat(price);
+			 $('.order-cost', $view).attr('data-extra', extraCost);
+			 }
+			 // 根据附加服务的数量,更新订单详情中附加服务模块的显示与隐藏
+			 if (cachePageData.extraServiceCount > 0) {
+			 $('.calc-items', $view).removeClass('hide');
+			 } else {
+			 $('.calc-items', $view).addClass('hide');
+			 }
+			 // 更新订单详情中每一条附加服务的显示与隐藏
+			 if ($('.calc-items', $view).find('.select-extra-service').hasClass('on')) {
+			 $('.calc-items', $view).removeClass('hide');
+			 } else {
+			 $('.calc-items', $view).addClass('hide');
+			 }
+			 // 计算总价钱
+			 payCharge();
+			 // 刷新界面
+			 pageData.scroll.refresh();
+			 }, $view); */
+
+			/* 点击选择保洁师
+			 $.newTouch('.show-beautician-picker', function (event) {
+			 // 如果订单的地址数据为空
+			 if (!order.address || !order.address.address_id) {
+			 // 弹出提示框
+			 $doc.trigger('spa:openpanel', ['simpleAlert', {
+			 message: '请选择地址'
+			 }]);
+			 return;
+			 }
+			 // 点击订单的预定时间为空
+			 if (order.bookingDate == '' || order.bookingTime == '') {
+			 // 弹出提示框
+			 $doc.trigger('spa:openpanel', ['simpleAlert', {
+			 message: '请选择上门时间'
+			 }]);
+			 return;
+			 }
+			 // 点击订单的主服务类型为空
+			 if (!order.productType) {
+			 // /弹出提示框
+			 $doc.trigger('spa:openpanel', ['simpleAlert', {
+			 message: '请选择服务类型'
+			 }]);
+			 return;
+			 }
+			 // 生成预定时间的字符串
+			 var bookingTime = order.bookingDate + ' ' + order.bookingTime + ':00';
+			 // 生成所有服务的字符串
+			 var service_type_array = [order.productType];
+			 var service_type = '[' + service_type_array.join(',') + ']';
+			 // 根据服务、时间、地址,向服务器请求保洁师列表
+			 user.getTechList(
+			 service_type,
+			 bookingTime,
+			 order.address.address_id,
+			 // 请求成功后跳转到beautician页面,在beautician页面展示保洁师列表
+			 function (res) {
+			 $doc.trigger('spa:navigate', {
+			 hash: 'beautician',
+			 pushData: {
+
+			 }
+			 });
+			 }
+			 );
+			 }, $view);  */
+
+			/* 点击选择宠物相关
+			 $.newTouch('.show-product-picker', function () {
+			 // 如果有了selected属性,就return
+			 if ($(this).hasClass('selected')) return;
+			 event.preventDefault();
+			 // 主服务>10是什么意思???
+			 if (cachePageData.productType > 10) {
+			 $doc.trigger('spa:openpanel', ['simpleAlert', {
+			 message: '请选择服务类型'
+			 }]);
+			 return;
+			 }
+			 // 弹出一个列表选择框。
+			 $doc.trigger('spa:openpanel', ['productOption', {
+			 pets: product.productGroup[cachePageData.productType],
+			 productType: cachePageData.productType,
+			 callback: {
+			 onSelect: function (petName, petWeight, petPrice) {
+			 // set order info
+			 order.petName = petName;
+			 order.petWeight = petWeight;
+			 order.petPrice = petPrice;
+			 order.productType = cachePageData.productType;
+			 order.petID = cart['products'][cachePageData.productType]['petID'];
+			 order.productID = cart['products'][cachePageData.productType]['productID'];
+			 // user.orderCoupons = res.data;
+			 // 筛选附加服务
+			 if (cachePageData.extraServiceType > 10) {
+			 var selectExtraServiceName = cachePageData.defaultExtraService[cachePageData.extraServiceType].serviceName;
+			 var selectExtraServicePrice = cachePageData.defaultExtraService[cachePageData.extraServiceType].servicePrice;
+
+			 $('.order-cost', $view).attr('data-extra', selectExtraServicePrice);
+			 }
+
+			 suitExtraService($view, selectExtraServiceName);
+
+			 $('.pet-info', $view).html(petName + ' (' + petWeight + ')');
+			 $('.pet-type', $view).html(petName + ' (' + petWeight + ')');
+			 $('.total-cost', $view).html('¥' + petPrice);
+
+			 if ($('.calc-items', $view).find('.select-extra-service').hasClass('on')) {
+			 $('.calc-items', $view).removeClass('hide');
+			 petPrice = parseFloat(petPrice) + parseFloat(selectExtraServicePrice);
+			 }
+
+			 $('.order-cost', $view).attr('data-costs', order.petPrice);
+			 $('.order-cost', $view).attr('data-extra', cachePageData.extraServicePrice);
+			 $('.order-cost', $view).html('¥' + petPrice);
+
+			 $('.select-pet', $view).removeClass('hide');
+
+			 if (order['productID'] && order.bookingDate) {
+			 setCoupon($view, pageData, cachePageData.extraServicePrice);
+			 }
+
+			 pageData.scroll.refresh();
+			 }
+			 }
+			 }]);
+			 }, $view); */
+
+			/* 点击数量-1 */
+			$.newTouch('.btn-sub', function (event) {
+				if (order.productCount <= 1) return;
+				if (order.price == 0) {
+					$doc.trigger('spa:openpanel', ['simpleAlert', {
+						message: '请选择服务'
+					}]);
+					return;
+				}
+				var inputNum = $('.service-count', $view).children('.input-num').val();
+				if (isNaN(inputNum)) {
+					$doc.trigger('spa:openpanel', ['simpleAlert', {
+						message: '请输入数字'
+					}]);
+					return false;
+				}
+				order.productCount = inputNum;
+				order.productCount--;
+				order.cost = order.productCount * order.price;
+				$('.service-count', $view).children('.input-num').val(order.productCount);
+				/* 算账 */
+				payCharge($('.order-cost', $view));
+			}, $view);
+
+			/*点击body重置金额*/
+			$.newTouch('body', function (event) {
+				//input输入
+				var inputNum = $('.service-count', $view).children('.input-num').val();
+				if (isNaN(inputNum)) {
+					$doc.trigger('spa:openpanel', ['simpleAlert', {
+						message: '请输入数字'
+					}]);
+					return false;
+				}
+				//与input输入框的文本的数据做交互;
+				order.productCount = inputNum;
+				order.cost = order.productCount * order.price;
+				$('.service-count', $view).children('.input-num').val(order.productCount);
+			});
+
+			/* 点击数量+1 */
+			$.newTouch('.btn-add', function (event) {
+				if (order.productCount > 999) return;
+				if (order.price == 0) {
+					$doc.trigger('spa:openpanel', ['simpleAlert', {
+						//message: '请选择extra'
+						message: '请选择服务'
+					}]);
+					return;
+				}
+				var inputNum = $('.service-count', $view).children('.input-num').val();
+				if (isNaN(inputNum)) {
+					$doc.trigger('spa:openpanel', ['simpleAlert', {
+						message: '请输入数字'
+					}]);
+					return false;
+				}
+				order.productCount = inputNum;
+				order.productCount++;
+				order.cost = order.productCount * order.price;
+				$('.service-count', $view).children('.input-num').val(order.productCount);
+				/* 算账 */
+				payCharge($('.order-cost', $view));
+			}, $view);
+
+			/* 点击选择时间 */
+			$.newTouch('.show-time-picker', function (event) {
+				event.preventDefault();
+				// 以下是构建时间选择器,不用管。直接看选完之后的回调。
+				var dayNamesA = ['周日', '周一', '周二', '周三', '周四', '周五', '周六'];
+				var dayNamesB = ['今天'];
+				var columns = {
+					columnDay: [],
+					columnTime: []
+				};
+				var now = new Date().getHours();
+				var daySelectIndex = 0;
+				for (var i = 1; i <= 9; i++) {
+					var dd = new Date();
+					dd.setDate(dd.getDate() + i);
+
+					var month = dd.getMonth() + 1;
+					var day = dd.getDate();
+					var date = month + '月' + day + '日';
+
+					var dayStr = helper.getDateStr({
+						date: dd,
+						separator: '-'
+					});
+					var dayStrSuffix;
+					if (i < dayNamesB.length) {
+						dayStrSuffix = dayNamesB[i];
+					} else {
+						dayStrSuffix = dayNamesA[dd.getDay()];
+					}
+					var selected = false;
+					if (order.bookingDate) {
+						selected = true;
+					}
+					if (dayStr == order.bookingDate) {
+						daySelectIndex = i;
+					} else {
+						daySelectIndex = -1;
+					}
+					columns.columnDay.push({
+						text: date, // 几月几日
+						day: dayStrSuffix, // 周几
+						value: dayStr,
+						selected: selected,
+						selectIndex: daySelectIndex
+					});
+				}
+				var currentDate = new Date();
+				var currentMonth = currentDate.getMonth() + 1;
+				var currentDay = currentDate.getDate();
+				var now = new Date().getHours();
+				var min = new Date().getMinutes();
+				var timeSelectIndex = 0;
+				for (var i = 9; i <= 19; i++) {
+					var hour = i + ':00';
+					var selected = false;
+					if (order.bookingTime) {
+						selected = true;
+					}
+					if (hour == order.bookingTime) {
+						timeSelectIndex = i;
+					} else {
+						timeSelectIndex = -1;
+					}
+					columns.columnTime.push({
+						month: currentMonth,
+						day: currentDay,
+						min: min,
+						num: i,
+						now: now,
+						text: hour,
+						value: hour,
+						selected: selected,
+						selectIndex: timeSelectIndex
+					})
+				}
+				$doc.trigger('spa:openpanel', ['dataPicker', {
+					// type: cachePageData.productType,
+					columns: columns,
+					selected: order.bookingDate,
+					// offDay: product.offDay,
+					callback: {
+						// 选完之后的回调。values:[日期,时间];texts:时间字符串;precedence:是否加急;
+						onSelect: function (values, texts, precedence) {
+							// 重置代金券
+
+							$('.coupon-selected-name', $view).html('选择优惠券');
+							order.couponValue = 0;
+							order.couponID = '';
+							payCharge($('.order-cost', $view));
+							// 填写order
+							order.bookingDate = values[0];
+							order.bookingTime = values[1];
+							order.bookingTimeStr = texts[0] + ' ' + texts[1];
+							order.precedence = precedence;
+							// 更新预定时间组件
+
+							$('.booking-time', $view).html(order.bookingTimeStr);
+							if (product.extra && !order.appendID) {
+							} else {
+								dPicker();
+							}
+						}
+					}
+				}]);
+			}, $view);
+			/*用户选择完时间之后,默认使用优惠券*/
+			var dPicker = function () {
+				extraJson = JSON.stringify([{type: order.appendID, price: order.price}]);
+				var productss = JSON.stringify([{product_id: order.productID, count: order.productCount}]);
+				api.getCouponList({
+					products: productss, //产品
+					booking_time: order.bookingTimeStr, //预订时间
+					user_id: user.id, //用户id
+					type: product.type, //资源
+					extra: extraJson//appendID==extra(一室一卫)    price =价格
+				}, function (res) {
+					if (res.success) {
+						if (typeof(res.data[0]) !== "undefined") {
+							var index = 0;
+							var arrValue = [];
+							var arrCoupon = [];
+							var CouponName;
+							for (var i = 0; i < res.data.length; i++) {
+								arrValue[i] = res.data[i].coupon.value;
+								arrCoupon[i] = res.data[i].coupon;
+							}
+							var max = Math.max.apply(null, arrValue);//最大值
+							for (var j = 0; j < arrCoupon.length; j++) {
+								if (arrCoupon[j].value == max) {
+									CouponName = arrCoupon[j].name;
+								}
+							}
+							$('.coupon-selected-name', $view).text(CouponName);
+							order.couponValue = max;
+							payCharge($('.order-cost', $view));
+						}
+					}
+				});
+			};
+
+			/* 点击选择优惠券 */
+			$.newTouch('.show-coupon-picker', function (event) {
+
+				if ($(this).hasClass('disabled')) return;
+				event.preventDefault();
+
+				if (product.extra && !order.appendID) {
+					$doc.trigger('spa:openpanel', ['simpleAlert', {
+						message: '请选择服务'
+					}]);
+					return;
+				} else {
+					extraJson = JSON.stringify([{type: order.appendID, price: order.price}]);
+				}
+				// 必须先选择时间
+				if (!order.bookingDate) {
+					$doc.trigger('spa:openpanel', ['simpleAlert', {
+						message: '请选择服务时间'
+					}]);
+					return;
+				}
+				// 跳转到picker页面,展示优惠券
+				$doc.trigger('spa:navigate', {
+					hash: 'picker',
+					pushData: {
+						title: '选择优惠券',
+						backHash: 'placeOrder',
+						products: JSON.stringify([{
+							product_id: order.productID,
+							count: order.productCount
+						}]),
+						time: order.bookingDate + ' ' + order.bookingTime + ':00',
+						type: order.productType,
+						extraJson: extraJson
+					},
+					callback: {
+						// 在picker页面挑选之后,回到这个页面时执行的回调。pickValue:选中的优惠券的ID;
+
+						onSelect: function (pickValue) {
+							if (pickValue == '') {
+								$('.coupon-selected-name', $view).text('不使用');
+								order.couponValue = 0;
+							} else {
+								for (var i in user.orderCoupons) {
+									var couponInfo = user.orderCoupons[i];
+									if (couponInfo.id == pickValue) {
+										$('.coupon-selected-name', $view).text(couponInfo['coupon']['name']);
+										order.couponValue = couponInfo['coupon']['value'];
+										break;
+									}
+								}
+							}
+							// 填写order
+							order.couponID = pickValue;
+							// 计算总费用
+							payCharge($('.order-cost', $view));
+						}
+					}
+				});
+			}, $view);
+
+			/* 是否选中同意用户协议,关系到下订单按钮是否激活 */
+			$.newTouch('.agreement-touch-area', function (event) {
+				var agreementObj = $('.agreement-checkbox', $view);
+				if (agreementObj.prop('checked')) {
+					agreementObj.prop('checked', false);
+					$('.btn-place').addClass('disable');
+				} else {
+					agreementObj.prop('checked', true);
+					$('.btn-place').removeClass('disable');
+				}
+			}, $view);
+
+			/* 跳转到agreement页面查看协议 */
+			$.newTouch('.agreement', function (event) {
+				$doc.trigger('spa:navigate', {
+					hash: 'agreement'
+				});
+			}, $view);
+
+			/* 点击下订单 */
+			$.newTouch('.btn-place', function (event) {
+				event.preventDefault();
+				if ($(this).hasClass('disable')) {
+					return false;
+				}
+				if (product.type_str == "擦玻璃" && order.productCount < 10) {
+					$doc.trigger('spa:openpanel', ['simpleAlert', {
+						message: '数量不少于10平米'
+					}]);
+					return;
+				}
+
+				if (product.type_str == "新居开荒" && order.productCount < 50) {
+					$doc.trigger('spa:openpanel', ['simpleAlert', {
+						message: '数量不少于50平米'
+					}]);
+					return;
+				}
+				if (product.extra && !order.appendID) {
+					$doc.trigger('spa:openpanel', ['simpleAlert', {
+						message: '请选择服务'
+					}]);
+					return;
+				}
+				if (!order.address) {
+					$doc.trigger('spa:openpanel', ['simpleAlert', {
+						message: '请选择地址'
+					}]);
+					return;
+				}
+				if (!order.bookingTimeStr && product.name !== "双11虹口区日常保洁特价体验") {
+					$doc.trigger('spa:openpanel', ['simpleAlert', {
+						message: '请选择上门时间'
+					}]);
+					return;
+				}
+				var payChannel = 'wx_pub';
+				/* 使备注输入框失去焦点,获取值 */
+				$('.order-memo', $view).blur();
+				order.set('memo', $('.order-memo', $view).val());
+				/* 向服务器下订单 */
+				$doc.trigger('spa:openloader');
+				if (user.balance >= order.payValue) {
+					order.balance = order.payValue;
+					order.payValue = 0;
+				} else {
+					order.balance = user.balance;
+					order.payValue = order.payValue - order.balance;
+				}
+				order.addOrder(user.id, payChannel, function (res) {
+					$doc.trigger('spa:closeloader');
+					if (res.success) {
+						// 更新user的订单
+						user.orders[1].data.push(res.data);
+						// 更新user的优惠券
+						var oldCouponList = user.orderCoupons;
+						var oldCouponId = order.couponID;
+						var newCouponList = [];
+						$.each(oldCouponList, function (index, val) {
+							if (val.id !== oldCouponId) {
+								newCouponList.push(oldCouponList[index])
+							}
+						});
+						user.orderCoupons = newCouponList;
+
+						var orderID = order.id;
+						order.reset();
+						$('.booking-time', $view).html('请选择');
+						if (res.data.status == 1) {
+							$doc.trigger('spa:navigate', {
+								hash: 'paySuccess'
+							});
+
+						} else {
+							$doc.trigger('spa:navigate', {
+								hash: 'pay',
+								pushData: {
+									orderID: orderID,
+									backHash: ''
+								}
+							});
+						}
+					} else {
+						$doc.trigger('spa:openpanel', ['simpleAlert', {
+							message: res.message
+						}]);
+					}
+				});
+			}, $view);
+			dtd.resolve();
+		},
+		beforeopen: function (pageData, dtd) {
+			/*地址-setInterval-setTimeout*/
+			setTimeout(function () {
+				if ($('.booking-time').html() == "选择服务时间" && order.bookingTimeStr.length > 0) {
+					$('.booking-time', $view).html(order.bookingTimeStr);
+				}
+				/*隐藏广告位*/
+				$('.product-pic-o2o').css('display', 'none');
+				/*当用户没有地址时*/
+				var defaultAddress = address.defaultAddress;
+				/*未登录*/
+				if (user.id.length == 0) {
+					$('.order-mobile').html('添加服务地址');
+				} else if (user.id.length != 0 && typeof(defaultAddress) !== "undefined") {
+					api.checkAddress({
+						address_id: defaultAddress.address_id,
+						user_id: user.id
+					}, function (res) {
+						if (res.success) {
+							if ($('.order-username').html() == "") {
+								order.address = address.defaultAddress;
+								order.stationID = res.data.station;
+								$('.order-username').html(defaultAddress.name);
+								$('.order-mobile').html(defaultAddress.mobile);
+								$('.order-address').html(defaultAddress.address.city + defaultAddress.address.area + defaultAddress.address.detail).css('text-align', 'right');
+							}
+						} else {
+							$('.order-mobile').html('添加服务地址');
+						}
+					})
+				} else if (user.id.length != 0 && typeof(defaultAddress) == "undefined") {
+					$('.order-mobile').html('添加服务地址');
+				}
+			}, 500);
+			var $view = this;
+			var pushData = pageData.pushData;
+			/* 只有首页跳转来,才会带有needReset = true */
+			/*获取上一页跳转的路由名称*/
+			backHash = pushData.backHash ? pushData.backHash : '';
+			if (pushData.hasOwnProperty('needReset') && pushData.needReset) {
+				/* 接收首页传来的product,填写order的productType(产品类型)、productID(产品ID)两个字段 */
+				pushData.needReset = false;
+				product = pushData.product;
+				order.productType = product.type;
+				order.productID = product.id;
+				order.productCount = 1;
+				order.couponValue = 0;
+				/* 根据product建立渲染页面的数据 */
+				var tmpData = {
+					/* 环境,目前只决定是否显示保洁师 */
+					env: config,
+					/* 环境 */
+					showNavBar: !config.isWX && !config.isChubao,
+					imgSrc: product.imgSrc,
+					/* 标题栏的标题 */
+					title: product.name,
+					/* extra选择项 */
+					extra: product.extra,
+					/* 如果用户有优惠券,则显示优惠券的选择栏 */
+					showCoupon: user.orderCoupons.length,
+					/* 账户余额 */
+					balance: user.balance
+				};
+				/* 渲染页面 */
+				var tpl = template('placeOrder/index', tmpData);
+				$view.find('.spa-page-body').html(tpl);
+				/* 绑定费用数据 */
+				if (product.extra) {
+					order.price = 0;
+					order.cost = 0;
+				} else {
+					order.price = product.price;
+					order.cost = product.price * order.productCount;
+				}
+				payCharge($('.order-cost', $view));
+
+				/* 软键盘相关操作时对IScroll的补偿 */
+				fixScroll(pageData);
+				/*	$('.order-memo', $view).focus(function (event) {
+				 alert("触发focus事件");
+				 var that = this;
+				 checkScroll(pageData, function () {
+				 if (pageData.scroll) {
+				 pageData.scroll.scrollToElement(that, 0);
+
+				 }
+				 });
+				 });
+				 $('.order-memo', $view).on('closeKeyboard', function (event) {
+				 alert("触发closeKeyboard事件");
+				 checkScroll(pageData);
+				 $(this).blur();
+				 });
+				 $('.order-memo', $view).blur(function (event) {
+				 alert("触发blur事件");
+				 checkScroll(pageData);
+				 });*/
+
+				/* 填写备注时,提交按钮失焦 */
+				/*$('#order-form', $view).on('submit', function (event) {
+				 $(this).blur();
+				 return false;
+				 });*/
+			}
+			dtd.resolve();
+		},
+		afteropen: function (pageData, dtd) {
+
+			var type = pageData.pushData.productType;
+			native.registerEvent(true);
+			dtd.resolve();
+			if (config.isWX) {
+				wx.ready(function () {
+					wx.onMenuShareTimeline({
+						title: '家政服务' + product.desc[1].content + ',首选壹管家',
+						link: 'http://www.yiguanjia.me/o2o/web/index',
+						imgUrl: product.desc[0].content
+					});
+					wx.onMenuShareAppMessage({
+						title: '家政服务' + product.desc[1].content + ',首选壹管家',
+						desc: '全程管家,精心每一个细节',
+						link: 'http://www.yiguanjia.me/o2o/web/index',
+						imgUrl: product.desc[0].content
+					});
+				});
+			}
+		},
+		afterclose: function (pageData) {
+			native.registerEvent(false);
+		}
+	}
 })

+ 33 - 10
www/webapp/o2o/js/page/product.js

@@ -1,10 +1,14 @@
 define(['$', 'template', 'product', 'cart', 'api', 'order', 'user', 'config', 'review', 'native'], function ($, template, product, cart, api, order, user, config, review, native) {
-
+	var backHash;
+	var product;
 	/* 返回上一级 */
 	function back(event) {
 		event.preventDefault();
 		$(document).trigger('spa:navigate', {
-			hash: 'placeOrder'
+			hash: backHash,
+			pushData: {
+				dontNeedReload: true
+			}
 		});
 	}
 
@@ -56,6 +60,24 @@ define(['$', 'template', 'product', 'cart', 'api', 'order', 'user', 'config', 'r
 				back.call(this, event);
 			});
 
+			//立即下单
+			$.newTouch('.product-new-btn', function (event) {
+				var products = {};
+				for (var i = 0; i < product.allList.length; i++) {
+					if (product.allList[i].name == cachePageData.product.name) {
+						products = product.allList[i];
+					}
+				}
+				$doc.trigger('spa:navigate', {
+					hash: 'placeOrder',
+					pushData: {
+						product: products,
+						needReset: true,
+						backHash: 'product'
+					}
+				});
+			}, $view);
+
 			// 提示信息
 			$.newTouch('.btn-product-info', function (event) {
 				$doc.trigger('spa:navigate', {
@@ -170,12 +192,14 @@ define(['$', 'template', 'product', 'cart', 'api', 'order', 'user', 'config', 'r
 			var $view = this;
 			var $doc = $(document);
 			var pushData = pageData.pushData;
-
+			/*获取上一页跳转的路由名称*/
+			backHash = pushData.backHash ? pushData.backHash : '';
 			//渲染空页面
-			cachePageData.product = pushData.produc;
-			cachePageData.needReload = pushData.needReload;
+			cachePageData.product = pushData.product;
+			cachePageData.needReload = pushData.needReset;
+			var dataArray = eval(pushData.product.desc);//获取product图像
 			if (cachePageData.needReload) {
-				cachePageData.needReloadReview = true;
+				cachePageData.needReloadReview = false;
 				var commentCounts = 0;
 				var productType = cachePageData.product.type;
 				$doc.trigger('spa:openloader');
@@ -186,20 +210,19 @@ define(['$', 'template', 'product', 'cart', 'api', 'order', 'user', 'config', 'r
 							type: productType,
 							title: cachePageData.product.name,
 							// tips: product.getGroupDesc(productType),
-							picLists: cachePageData.product.pics,
+							// picLists: cachePageData.product.pics,
+							picLists: dataArray,
 							commentCounts: commentCounts,
 							showNavBar: !config.isWX && !config.isChubao,
 							// isShowVideo: isShowVideo()
 						});
 						$('.spa-page-body', $view).html(tpl);
-
 						var iframeW = document.body.clientWidth - 30;
 						$('#iframe-service-introduce', $view).height(Math.ceil(iframeW * 360 / 640));
-
+						$('.img-list-container').css('margin-bottom', ($('.product-new').height() + 10));
 						setTimeout(function () {
 							cachePageData.scroll = new IScroll('#productDescScroll');
 						}, 1000);
-
 						$doc.trigger('spa:closeloader');
 					}
 				}, false);

+ 53 - 47
www/webapp/o2o/js/page/rechargee.js

@@ -1,13 +1,13 @@
-define(['$', 'template', 'IScroll', 'recharge', 'native', 'config', 'user'], function ($, template, IScroll, recharge, native, config, user) {
+define(['$', 'template', 'recharge', 'native', 'config', 'user','product'], function ($, template, recharge, native, config, user,product) {
 	var backHash;
 
 	function back(event) {
 		event.preventDefault();
 		$(document).trigger('spa:navigate', {
-			hash: backHash,
-			pushData: {
-				dontNeedReload: true
-			}
+			hash: backHash
+			// pushData: {
+			// 	dontNeedReload: true
+			// }
 		});
 	}
 
@@ -15,49 +15,63 @@ define(['$', 'template', 'IScroll', 'recharge', 'native', 'config', 'user'], fun
 		title: '充值规则',
 		body: '',
 		init: function (pageData, dtd) {
-			/* this是什么? */
 			var $view = this;
 			var $doc = $(document);
 
-			/* 定义按钮事件。
-			 * 为什么不是$(selector).onclick(function)呢?
-			 */
 
 			// 返回
 			$view.on('swipeRight', function (event) {
 				back.call(this, event);
-				// history.go(-1);
 			});
 
 			$.newTouch('.back-button', function (event) {
 				back.call(this, event);
-				// history.go(-1);
 			}, $view);
 
 			$view.on('tapBackButton', function (event) {
 				back.call(this, event);
-				// history.go(-1);
 			});
-//点击展示协议   vactivity-text
-			$.newTouch('.pay-agreement',function (event) {
+
+			// im
+			$.newTouch('.btn-action-logo', function (event) {
+				event.preventDefault();
+				window.location.href = '/index.php?r=o2o/advisory/im';
+			}, $view);
+			/*首页*/
+			$.newTouch('.btn-action-my-order', function () {
 				event.preventDefault();
 				$doc.trigger('spa:navigate', {
-					hash: 'activity-text',
+					hash: '',
 					pushData: {
-						needReload: true
+						needReset: true
 					}
 				});
 			}, $view);
-			//规则 pay-rule
-			$.newTouch('.pay-rule',function (event) {
+			/*个人中心*/
+			$.newTouch('.btn-action-coupon', function (event) {
+				event.preventDefault();
+				user.checkLogin(function () {
+					$doc.trigger('spa:navigate', {
+						hash: 'mine',
+						pushData: {
+							needReset: true
+						}
+					});
+				});
+			}, $view);
+
+
+			//点击展示协议   vactivity-text
+			$.newTouch('.pay-agreement', function (event) {
 				event.preventDefault();
 				$doc.trigger('spa:navigate', {
-					hash: 'activity-rule',
+					hash: 'activity-text',
 					pushData: {
 						needReload: true
 					}
 				});
 			}, $view);
+
 			// 点击充值
 			$.newTouch('.btn-add-recharge', function (event) {
 				event.preventDefault();
@@ -94,37 +108,29 @@ define(['$', 'template', 'IScroll', 'recharge', 'native', 'config', 'user'], fun
 			/*获取上一页跳转的路由名称*/
 			var pushData = pageData.pushData;
 			backHash = pushData.backHash ? pushData.backHash : '';
-			dtd.resolve();
-		},
-		afteropen: function (pageData, dtd) {
 			var $view = this;
 			var $doc = $(document);
-
-			if (!pageData.pushData.dontNeedReload) {
-				$doc.trigger('spa:openloader');
-				recharge.getRechargeList(function (res) {
-					$doc.trigger('spa:closeloader');
-					if (res.success) {
-						var tpl = template('recharge/index', {
-							showNavBar: !config.isWX,
-							recharges: res.data
-						});
-						$('.spa-page-body', $view).html(tpl);
-						//var value = $(this).attr('data-value');
-						var value = $('.btn-add-recharge').attr('data-index');
-						for (var i = value; i < 2; i++) {
-						}
-						setTimeout(function () {
-							pageData.scroll = new IScroll('#rechargeScroll');
-						}, 500);
+			$doc.trigger('spa:openloader');
+			product.getListAll(user.id);
+			recharge.getRechargeList(function (res) {
+				$doc.trigger('spa:closeloader');
+				if (res.success) {
+					var tpl = template('recharge/index', {
+						showNavBar: !config.isWX,
+						recharges: res.data
+					});
+					$view.find('.spa-page-body').html(tpl);
+					if (pageData.scroll) {
+						pageData.scroll.destroy();
+						pageData.scroll = null;
 					}
-				});
-			}
-
-			dtd.resolve();
-		},
-		beforeclose: function (pageData, dtd) {
-			dtd.resolve();
+					setTimeout(function () {
+						pageData.scroll = new IScroll('#rechargeScroll');
+					}, 500);
+					dtd.resolve();
+					$doc.trigger('spa:closeloader');
+				}
+			});
 		}
 	}
 })

+ 3 - 14
www/webapp/o2o/js/page/secondary.js

@@ -78,9 +78,9 @@ define(['$', 'template', 'IScroll', 'user', 'product', 'native', 'config', 'addr
 				 * $(selector).trigger(event, params)是jQuery的:触发被选元素上的指定事件
 				 */
 				$doc.trigger('spa:navigate', {
-					hash: 'placeOrder',
+					hash: 'product',
 					pushData: {
-						product: product.allList[type - 1],
+						product: product.allList[type-1],
 						needReset: true,
 						backHash: 'secondary'
 					}
@@ -117,9 +117,6 @@ define(['$', 'template', 'IScroll', 'user', 'product', 'native', 'config', 'addr
 			dtd.resolve();
 		},
 		beforeopen: function (pageData, dtd) {
-
-
-
 			/*获取上一页跳转的路由名称*/
 			var pushData = pageData.pushData;
 			backHash = pushData.backHash ? pushData.backHash : '';
@@ -128,20 +125,12 @@ define(['$', 'template', 'IScroll', 'user', 'product', 'native', 'config', 'addr
 		afteropen: function (pageData, dtd) {
 			var $view = this;
 			var $doc = $(document);
-
-			if (pageData.pushData && pageData.pushData.needReset) {
-				/*var tpl = template('secondary/index', {
-				 showNavBar: !config.isWX,
-				 userName: user.name == '' ? '未登录' : user.name,
-				 userBalance: user.balance,
-				 defaultAddress: addressStr
-				 });*/
+			if (!pageData.pushData.dontNeedReload) {
 				var tpl = template('secondary/index', {showNavBar: !config.isWX});
 				$('.spa-page-body', $view).html(tpl);
 				setTimeout(function () {
 					pageData.scroll = new IScroll('#secondaryScroll');
 				}, 500);
-
 				setTimeout(function () {
 					/*设置页面高度-开始*/
 					$('#list0').height(($('.btn-product').height() * 4) + $('.prevent-scroll').height());//设置ul高度;

+ 2 - 2
www/webapp/o2o/tpl/LongOrder/index.html

@@ -14,8 +14,8 @@
 				<div class="scroller">
 					<div class="box-container">
 						<div class="box-container box box-vertical" style="background: #fff">
-							<div class="btn-appliances btn-day" data-product-type="10"><img src="http://odulvej8l.bkt.clouddn.com/%E6%97%A5%E5%B8%B8.jpg" alt="日常保洁2小时体验"><div class="product2-img"></div></div>
-							<div class="btn-appliances btn-day" data-product-type="11"><img src="http://odulvej8l.bkt.clouddn.com/%E5%AE%B6%E7%94%B5.jpg" alt="家电清洗"><div class="product2-img"></div></div>
+							<div class="btn-appliances btn-day" data-product-type="11"><img src="http://odulvej8l.bkt.clouddn.com/%E6%97%A5%E5%B8%B8.jpg" alt="日常保洁2小时体验"><div class="product2-img"></div></div>
+							<div class="btn-appliances btn-day" data-product-type="12"><img src="http://odulvej8l.bkt.clouddn.com/%E5%AE%B6%E7%94%B5.jpg" alt="家电清洗"><div class="product2-img"></div></div>
 						</div>
 					</div>
 					<div style="width: 100%;padding-bottom:13%; "></div>

+ 2 - 2
www/webapp/o2o/tpl/activities/day.html

@@ -3,7 +3,7 @@
 	<a class="left-button back-button">
 		<div class="icon icon-left-nav"></div>
 	</a>
-	<h1 class="title">日常保洁</h1>
+	<h1 class="title">{{title}}</h1>
 </header>
 {{ /if }}
 
@@ -19,7 +19,7 @@
 							<div class="btn-appliances btn-day" data-product-type="6"><img src="http://odulvej8l.bkt.clouddn.com/%E6%93%A6%E7%8E%BB%E7%92%83.jpg" alt="擦玻璃"><div class="product2-img"></div></div>
 						</div>
 					</div>
-					<div style="width: 100%;padding-bottom:13%; "></div>
+					<div style="width: 100%;padding-bottom:15%; "></div>
 				</div>
 				<div class="prevent-scroll">
 					<div class="box my-action">

+ 5 - 4
www/webapp/o2o/tpl/activities/text.html

@@ -16,12 +16,12 @@
 						<div class="box-container box box-vertical" style="background: #fff">
 							<div style="position: relative;top: 0;width: 100%;background: #fff; padding: 0 10px">
 								<p style="position: absolute;background: #fff;">
-								<h3 style="text-align: center;">充值返现活动协议</h3>
+								<h3 style="text-align: center;margin-top: 10px;">充值返现活动协议</h3>
 								<h4>一、活动内容:</h4>
 								<h5>单笔充值1000元,可获得1088元余额;</h5>
 								<h5> 单笔充值3000元,可获得3360元余额;</h5>
 								<h5> 单笔充值5000元,可获得5680元余额;</h5>
-								<h5> 单笔充值10000元,可获得10880元余额</h5>
+								<h5>单笔充值10000元,可获得10880元余额</h5>
 								<h4>二、余额构成</h4>
 								<h5>您实际支付的充值本金加上壹管家的返现金额会构成您的账户余额(人民币)。</h5>
 								<h4>三、充值金额有效期</h4>
@@ -35,8 +35,9 @@
 								<h5>1.充值余额:</h5>
 								<h5>a)若未产生服务费用,可退还当期实际充值金额,我们会在您申请退款服务之日起21个工作日内为您办理退款;</h5>
 								<h5>b)若已产生服务费用,可退款扣除您在下单服务中实际产生的用费后的实际剩余充值金额(实际剩余充值金额=实际充值金额-实际服务金额),我们会在您申请退款服务之日起21个工作日内为您办理退款;</h5>
-								<h5>2.活动赠品服务(例:日本游抽奖活动);仅支持奖金兑换码在未发送并兑换使用的情况下享受退款服务,我们需要收回您在参与活动时得到的奖金号,并在您申请退款服务之日起21个工作日内,为您退还实际充值金额;抽奖兑换码及旅游奖金一经兑换使用,则无法享受退款服务。</h5>
-								<h5>3、壹管家返活动的相关问题,您可咨询服务热线4009200901(周一至周五,9:00-18:00)</h5>
+								<h5>
+									2.仅支持奖金兑换码在未发送并兑换使用的情况下享受退款服务,我们需要收回您在参与活动时得到的奖金号,并在您申请退款服务之日起21个工作日内,为您退还实际充值金额;抽奖兑换码及旅游奖金一经兑换使用,则无法享受退款服务。</h5>
+								<h5>3.壹管家返活动的相关问题,您可咨询服务热线4009200901(周一至周五,9:00-18:00)</h5>
 								</p>
 								<div style="padding-bottom: 1%;width: 100%"></div>
 							</div>

+ 3 - 3
www/webapp/o2o/tpl/address/detail/index.html

@@ -3,9 +3,9 @@
   <a class="left-button back-button">
     <div class="icon icon-left-nav"></div>
   </a>
-  {{if !add}}
-  <a class="right-button btn-delete" data-id="{{address.address_id}}">删除</a>
-  {{/if}}
+ <!-- {{if !add}}
+  &lt;!&ndash;<a class="right-button btn-delete" data-id="{{address.address_id}}">删除</a>&ndash;&gt;
+  {{/if}}-->
   <h1 class="title">{{title}}</h1>
 </header>
 {{/if}}

+ 1 - 1
www/webapp/o2o/tpl/address/list/index.html

@@ -9,7 +9,7 @@
 
 <div class="content" >
 	<div class="box-container box box-vertical">
-		<div id="addressListScroll" class="scroll-container box-flex-1">
+		<div id="addressListScroll" class="scroll-container box-flex-1 page-content" style="padding-top: 0;">
 			<div class="page-content">
 				<ul class="list-content">
 					{{include './cell'}}

+ 1 - 4
www/webapp/o2o/tpl/home/index.html

@@ -18,11 +18,8 @@
 						<!-- Swiper -->
 						<div class="swiper-container">
 							<div class="swiper-wrapper">
-								<!--<div class="swiper-slide">-->
-								<!--<img class="btn-home-day lazy" data-product-type="9" src="http://odulvej8l.bkt.clouddn.com/1111%E5%85%83banner.jpg" alt="">-->
-								<!--</div>-->
 								<div class="swiper-slide btn-banner-recharge">
-									<img class="lazy" src="http://odulvej8l.bkt.clouddn.com/banner-2.jpg" alt="">
+									<img class="lazy" src="http://odulvej8l.bkt.clouddn.com/%E8%BF%94%E7%8E%B0%E9%87%91banner.jpg" alt="">
 								</div>
 								<div class="swiper-slide btn-banner-coupon">
 									<img class="lazy" src="http://odulvej8l.bkt.clouddn.com/%E7%AE%A1%E5%AE%B6-2.jpg" alt="">

+ 10 - 10
www/webapp/o2o/tpl/homeenterprise/index.html

@@ -22,16 +22,16 @@
 				</div>
 				<div class="prevent-scroll">
 					<div class="o2o-btn-homestay" style="
-					    text-align: center;
-              background: rgb(219,199,67);
-              color: #fff;
-              position: absolute;
-              right: 0;
-              width: 25%;
-              top: -1.65rem;
-              border: 0px solid rgba(0,0,0,0.14);
-              border-radius: 14px;
-              line-height: 1.5rem;">点击咨询
+					        text-align: center;
+                  background: rgb(219,199,67);
+                  color: #fff;
+                  position: absolute;
+                  right: 0;
+                  width: 25%;
+                  top: -2.65rem;
+                  border: 0px solid rgba(0,0,0,0.14);
+                  border-radius: 14px;
+                  line-height: 2.5rem;">点击咨询
 					</div>
 					<div class="box my-action">
 						<!--首页-->

+ 10 - 10
www/webapp/o2o/tpl/homestay/index.html

@@ -22,16 +22,16 @@
 				</div>
 				<div class="prevent-scroll">
 					<div class="o2o-btn-homestay" style="
-					    text-align: center;
-              background: rgb(219,199,67);
-              color: #fff;
-              position: absolute;
-              right: 0;
-              width: 25%;
-              top: -1.65rem;
-              border: 0px solid rgba(0,0,0,0.14);
-              border-radius: 14px;
-              line-height: 1.5rem;">点击咨询
+					        text-align: center;
+                  background: rgb(219,199,67);
+                  color: #fff;
+                  position: absolute;
+                  right: 0;
+                  width: 25%;
+                  top: -2.65rem;
+                  border: 0px solid rgba(0,0,0,0.14);
+                  border-radius: 14px;
+                  line-height: 2.5rem;">点击咨询
 					</div>
 					<div class="box my-action">
 						<!--首页-->

+ 31 - 1
www/webapp/o2o/tpl/myCoupon/index.html

@@ -7,7 +7,7 @@
 </header>
 {{ /if }}
 
-<div class="content" id="myCouponScroll">
+<div class="content" id="myCouponScroll" style="background: #efeff4;">
   <div class="scroller">
     <div class="page-content">
       <div class="coupon-form">
@@ -48,4 +48,34 @@
       </div>
     </div>
   </div>
+	<div class="prevent-scroll">
+		<div class="box my-action">
+			<!--首页-->
+			<div class="width-percent-33">
+				<div class="title-container-square">
+					<a class="btn-home-action btn-action-my-order">
+						<div class="logo logo-my-order"></div>
+						<div class="name">首页</div>
+					</a>
+				</div>
+			</div>
+			<!--LOGO-->
+			<div class="width-percent-33">
+				<div class="title-container-square">
+					<a class="btn-home-action btn-action-logo">
+						<div class="logo logo-my-logo"></div>
+					</a>
+				</div>
+			</div>
+			<!--我的-->
+			<div class="width-percent-33">
+				<div class="title-container-square">
+					<a class="btn-home-action btn-action-coupon">
+						<div class="logo logo-coupon"></div>
+						<div class="name">我的</div>
+					</a>
+				</div>
+			</div>
+		</div>
+	</div>
 </div>

+ 1 - 1
www/webapp/o2o/tpl/myOrder/finish.html

@@ -8,7 +8,7 @@
 {{ /if }}
 
 <div class="content content-padding">
-	<div class="text-center" style="font-size: 24px; color: #00a0e9; padding-top: 50px; padding-bottom: 50px">订单已完成,感谢使用壹管家的服务</div>
+	<div class="text-center" style="font-size: 1.1rem; color: #00a0e9; padding-top: 50px; padding-bottom: 50px">订单已完成,感谢使用壹管家的服务</div>
   <div class="box">
     <div class="box-flex-1">
       <button class="btn btn-block btn-default back-button">我的预约</button>

+ 1 - 1
www/webapp/o2o/tpl/myOrder/index.html

@@ -13,7 +13,7 @@
     <a class="control-item {{if type == '2'}}active{{/if}}" data-order-type="3">已完成</a>
     <a class="control-item {{if type == '3'}}active{{/if}}" data-order-type="2">已取消</a>
   </div>
-  <div id="myOrderScroll" class="box-flex-1 scroll-container">
+  <div id="myOrderScroll" class="box-flex-1 scroll-container page-content">
     <div class="scroller">
       <div class="page-content list-content">
 

+ 102 - 102
www/webapp/o2o/tpl/placeOrder/index.html

@@ -1,115 +1,115 @@
 {{ if showNavBar }}
 <header class="bar bar-nav">
-    <a class="left-button back-button">
-        <div class="icon icon-left-nav"></div>
-    </a>
+	<a class="left-button back-button">
+		<div class="icon icon-left-nav"></div>
+	</a>
 
-    <h1 class="title">{{title}}</h1>
+	<h1 class="title">{{title}}</h1>
 </header>
 {{ /if }}
 <div class="content">
-    <div class="box-container">
-        <div class="box-container box box-vertical">
-            <div id="placeOrderScroll" class="scroll-container box-flex-1">
-                <div class="scroller">
-                    <div class="">
-                        <ul class="table-view product-pic-o2o">
-                            <li id="product-pic-bg">
-                                <img class="lazy product-pic-o2o" src="{{imgSrc}}" style="width: 100%;" alt="">
-                                <div class="product-img"></div>
-                            </li>
-                        </ul>
-                        <!-- 选择extra -->
-                        {{if extra}}
-                        <div class="table-view main-service">
-                            <p class="main-service-title">请选择</p>
-                            {{each extra as e}}
-                            <div class="width-percent-50">
-                                <div class="btn btn-main-service" data-extra-type="{{e.type}}"
-                                     data-extra-price="{{e.price}}">{{e.type}}
-                                </div>
-                            </div>
-                            {{/each}}
-                        </div>
-                        {{/if}}
-                        <ul class="table-view">
-                            <!-- 选择数量 -->
-                            <li class="table-view-cell selected table-link-label">
-                                <div class="link-label selected">
-                                    购买数量
-                                    <div class="service-count o2o-singles-day">
-                                        <div class="btn btn-sub">-</div>
-                                        <!--<span class="num">1</span>-->
-                                        <input type="text" class="input-num"
-                                               style="text-align: center;padding: 0;width: 24px;height: 24px;border-radius:0;"
-                                               maxlength="3" value="1"/>
-                                        <div class="btn btn-add">+</div>
-                                    </div>
-                                </div>
-                            </li>
-                            <li class="table-view-cell">
-                                <a class="navigate-right select-address"
-                                   style="display: flex; justify-content:space-between; align-items: center; padding-right: 2rem">
-                                    地址
-                                    <div class="table-view-cell-right-label media-body has-address"
-                                         style="display: block; position: static;">
-                                        <span class="order-username"></span>
-                                        <span class="order-mobile"></span>
-                                        <p class="order-address"></p>
+	<div class="box-container">
+		<div class="box-container box box-vertical">
+			<div id="placeOrderScroll" class="scroll-container box-flex-1">
+				<div class="scroller">
+					<div class="">
+						<ul class="table-view product-pic-o2o">
+							<li id="product-pic-bg">
+								<img class="lazy product-pic-o2o" src="{{imgSrc}}" style="width: 100%;" alt="">
+								<div class="product-img"></div>
+							</li>
+						</ul>
+						<!-- 选择extra -->
+						{{if extra}}
+						<div class="table-view main-service">
+							<p class="main-service-title">请选择</p>
+							{{each extra as e}}
+							<div class="width-percent-50">
+								<div class="btn btn-main-service" data-extra-type="{{e.type}}"
+								     data-extra-price="{{e.price}}">{{e.type}}
+								</div>
+							</div>
+							{{/each}}
+						</div>
+						{{/if}}
+						<ul class="table-view">
+							<!-- 选择数量 -->
+							<li class="table-view-cell selected table-link-label">
+								<div class="link-label selected">
+									<span class="orderNum">购买数量</span>
+									<div class="service-count o2o-singles-day">
+										<div class="btn btn-sub">-</div>
+										<!--<span class="num">1</span>-->
+										<input type="text" class="input-num"
+										       style="text-align: center;padding: 0;width: 24px;height: 24px;border-radius:0;"
+										       maxlength="3" value="1"/>
+										<div class="btn btn-add">+</div>
+									</div>
+								</div>
+							</li>
+							<li class="table-view-cell">
+								<a class="navigate-right select-address"
+								   style="display: flex; justify-content:space-between; align-items: center; padding-right: 2rem">
+									地址
+									<div class="table-view-cell-right-label media-body has-address"
+									     style="display: block; position: static;">
+										<span class="order-username"></span>
+										<span class="order-mobile"></span>
+										<p class="order-address"></p>
 
-                                    </div>
+									</div>
 
-                                </a>
-                            </li>
-                            <li class="table-view-cell table-link-label">
-                                <a class="navigate-right show-time-picker"
-                                   style="display: flex; justify-content:space-between; align-items: center; padding-right: 2rem">
-                                    服务时间
-                                    <span class="table-view-cell-right-label booking-time"
-                                          style="display: block; position: static; text-align: right">选择服务时间</span>
-                                </a>
-                            </li>
+								</a>
+							</li>
+							<li class="table-view-cell table-link-label">
+								<a class="navigate-right show-time-picker"
+								   style="display: flex; justify-content:space-between; align-items: center; padding-right: 2rem">
+									服务时间
+									<span class="table-view-cell-right-label booking-time"
+									      style="display: block; position: static; text-align: right">选择服务时间</span>
+								</a>
+							</li>
 
-                        </ul>
-                        <!-- 优惠券 -->
-                        <ul class="table-view">
-                            <li class="table-view-cell {{if !showCoupon }}disabled{{/if}}">
-                                <a class="navigate-right show-coupon-picker"
-                                   style="display: flex; justify-content:space-between; align-items: center; padding-right: 2rem">
-                                    优惠券
-                                    <span class="table-view-cell-right-label coupon-selected-name"
-                                          style="display: block; position: static; text-align: right">选择优惠券</span>
-                                </a>
-                            </li>
-                            <li class="table-view-cell memo">
-                                <form class="input-group" id="order-form">
-                                    <input type="text" class="order-memo" id="order-memo" placeholder="(备注)可填写附加要求">
-                                </form>
-                            </li>
-                        </ul>
-                        <!-- 用户协议 -->
-                        <div class="box bottom-box">
-                            <div class="agreement-box">
-                                <div class="agreement-touch-area">
-                                </div>
-                                <input type="checkbox" class="agreement-checkbox" checked="checked"/>
-                <span>
+						</ul>
+						<!-- 优惠券 -->
+						<ul class="table-view">
+							<li class="table-view-cell selected {{if !showCoupon }}disabled{{/if}}">
+								<a class="navigate-right show-coupon-picker"
+								   style="display: flex; justify-content:space-between; align-items: center; padding-right: 2rem">
+									优惠券
+									<span class="table-view-cell-right-label coupon-selected-name"
+									      style="display: block; position: static; text-align: right">选择优惠券</span>
+								</a>
+							</li>
+							<li class="table-view-cell memo">
+								<form class="input-group" id="order-form">
+									<input type="text" class="order-memo" id="order-memo" placeholder="(备注2)可填写附加要求">
+								</form>
+							</li>
+						</ul>
+						<!-- 用户协议 -->
+						<div class="box bottom-box">
+							<div class="agreement-box">
+								<div class="agreement-touch-area">
+								</div>
+								<input type="checkbox" class="agreement-checkbox" checked="checked"/>
+								<span>
                   同意<a class="agreement">壹管家用户服务协议</a>
                 </span>
-                            </div>
-                        </div>
-                    </div>
-                </div>
-            </div>
-            <div class="result-item btn-container prevent-scroll"
-                 style="padding-left: 15px; display: flex; justify-content: space-between; align-items: center">
-                <!--<div style="font-size: 0.8rem">账户余额<span class="order-cost" style="font-size: 0.8rem; color: #ec5330; text-align: right; display: inline">¥ {{balance}}</span></div>-->
-                <div style="font-size: 0.8rem">费用总计:<span class="order-cost"
-                                                          style="font-size: 0.8rem; color: #ec5330; text-align: right; display: inline">¥ 0</span>
-                </div>
-                <a class="btn btn-main btn-block btn-place" style="margin-bottom: 0;">确认预约</a>
-            </div>
-        </div>
-    </div>
+							</div>
+						</div>
+					</div>
+				</div>
+			</div>
+			<div class="result-item btn-container prevent-scroll"
+			     style="padding-left: 15px; display: flex; justify-content: space-between; align-items: center">
+				<!--<div style="font-size: 0.8rem">账户余额<span class="order-cost" style="font-size: 0.8rem; color: #ec5330; text-align: right; display: inline">¥ {{balance}}</span></div>-->
+				<div style="font-size: 0.8rem">费用总计:<span class="order-cost"
+				                                          style="font-size: 0.8rem; color: #ec5330; text-align: right; display: inline">¥ 0</span>
+				</div>
+				<a class="btn btn-main btn-block btn-place" style="margin-bottom: 0;">确认预约</a>
+			</div>
+		</div>
+	</div>
 </div>
 </div>

+ 3 - 2
www/webapp/o2o/tpl/product/index.html

@@ -29,7 +29,8 @@
               <div class="img-list">
                 <div class="img-list-container">
                   {{ each picLists as pic}}
-                  <img class="lazy" src="{{pic.url}}" alt="">
+                  <!--<img class="lazy" src="{{pic.content}}" alt="">-->
+                  <img class="lazy" src="{{pic.content}}" alt="">
                   {{/each}}
                 </div>
               </div>
@@ -97,5 +98,5 @@
       </div>
     </div>
   </div>
-
+<div class="product-new"><div class="product-new-btn">立即下单</div></div>
 </div>

+ 44 - 10
www/webapp/o2o/tpl/recharge/index.html

@@ -9,16 +9,50 @@
 <div class="content">
 	<div class="box-container box box-vertical">
 		<div id="rechargeScroll" class="scroll-container box-flex-1">
-			<img class="ad-hide" src="http://odulvej8l.bkt.clouddn.com/%E5%85%85%E5%80%BC%E5%8D%A1.jpg"
-			     style="width: 100%;">
-			<ul class="ad-hide list-content list-recharge" style="padding-top: 5px;padding-bottom: 5px">
-				{{include './cell'}}
-			</ul>
-			<div class="ad-hide" style="text-align: center;"><span style="font-size: 0.6rem">点击立即充值,即表示您已经同意壹管家</span><span
-				style="font-size: 0.6rem;font-weight: 600;display: block;" ></span>
-				<span  style="font-size: 0.6rem;">《<span class="pay-agreement" style="text-decoration: underline;color: #0A246A">充返活动协议</span>》</span>
-				<!--<span style="display: inline-block;font-size: 0.6rem;font-weight: 600; " class="pay-rule"><span
-					style="text-decoration: underline;color: #0A246A">活动规则</span></span>-->
+			<div class="scroller">
+				<div class="page-content" style="padding-top: 0;">
+					<img class="ad-hide" src="http://odulvej8l.bkt.clouddn.com/%E5%85%85%E5%80%BC%E5%8D%A1.jpg"
+					     style="width: 100%;">
+					<ul class="ad-hide list-content list-recharge" style="padding-top: 0;padding-bottom: 0;">
+						{{include './cell'}}
+					</ul>
+					<div class="ad-hide rechargeRule" style="text-align: center;bottom: 0;"><span style="font-size: 0.6rem">点击立即充值,即表示您已经同意壹管家</span><span style="font-size: 0.6rem;font-weight: 600;display: block;margin-bottom: -2px;"><span style="font-size: 0.6rem;">《<span class="pay-agreement" style="text-decoration: underline;color: #0A246A">充返活动协议</span>》</span></span>
+
+						<!--<span style="display: inline-block;font-size: 0.6rem;font-weight: 600; " class="pay-rule"><span-->
+						<!--style="text-decoration: underline;color: #0A246A">活动规则</span></span>-->
+					</div>
+				</div>
+				<div style="width: 100%;padding-bottom: 13%;"></div>
+			</div>
+			<div class="prevent-scroll">
+				<div class="box my-action">
+					<!--首页-->
+					<div class="width-percent-33">
+						<div class="title-container-square">
+							<a class="btn-home-action btn-action-my-order">
+								<div class="logo logo-my-order"></div>
+								<div class="name">首页</div>
+							</a>
+						</div>
+					</div>
+					<!--LOGO-->
+					<div class="width-percent-33">
+						<div class="title-container-square">
+							<a class="btn-home-action btn-action-logo">
+								<div class="logo logo-my-logo"></div>
+							</a>
+						</div>
+					</div>
+					<!--我的-->
+					<div class="width-percent-33">
+						<div class="title-container-square">
+							<a class="btn-home-action btn-action-coupon">
+								<div class="logo logo-coupon"></div>
+								<div class="name">我的</div>
+							</a>
+						</div>
+					</div>
+				</div>
 			</div>
 		</div>
 	</div>

部分文件因为文件数量过多而无法显示