e 8 years ago
parent
commit
a5e3b98573

+ 1 - 0
www/webapp/common/css/common.css

@@ -128,6 +128,7 @@
 .box-container {
 	width: 100%;
 	height: 100%;
+	background: #fff;
 }
 
 .scroll-container {

+ 39 - 38
www/webapp/o2o/build.js

@@ -1,40 +1,41 @@
 ({
-  mainConfigFile: './js/main.js',
-  baseUrl: './js',
-  waitSeconds: 200,
-  paths: {
-    "BMap": "empty:"
-  },
-  dir: './dist/js',
-  modules: [{
-    name: 'main',
-    include: [
-      'ratchet',
-      'pageHome',
-      'pageHelp',
-      'pageAbout',
-      'pageRecharge',
-      'pageMine',
-      'pageProduct',
-      'pagePlaceOrder',
-      'pagePicker',
-      'pagePay',
-      'pageMyOrder',
-      'pageMyCoupon',
-      'pageSuccess',
-      'pageAgreement',
-      'pageAddressList',
-      'pageAddressAdd',
-      'pageAddressDetail',
-      'pageAddressPoisiton',
-      'pageBeautician',
-      'pageBeauticianDetail',
-      'pageHire',
-      'panelAlert',
-      'panelDataPicker',
-      'panelDataPicker',
-      'panelProductOption',
-      'panelPostReview'
-    ]
-  }]
+    mainConfigFile: './js/main.js',
+    baseUrl: './js',
+    waitSeconds: 200,
+    paths: {
+        "BMap": "empty:"
+    },
+    dir: './dist/js',
+    modules: [{
+        name: 'main',
+        include: [
+            'ratchet',
+            'pageHome',
+            'pageHelp',
+            'pageAbout',
+            'pageRecharge',
+            'pageMine',
+            'pageSecondary',
+            'pageProduct',
+            'pagePlaceOrder',
+            'pagePicker',
+            'pagePay',
+            'pageMyOrder',
+            'pageMyCoupon',
+            'pageSuccess',
+            'pageAgreement',
+            'pageAddressList',
+            'pageAddressAdd',
+            'pageAddressDetail',
+            'pageAddressPoisiton',
+            'pageBeautician',
+            'pageBeauticianDetail',
+            'pageHire',
+            'panelAlert',
+            'panelDataPicker',
+            'panelDataPicker',
+            'panelProductOption',
+            'panelPostReview'
+        ]
+    }]
 })

+ 131 - 175
www/webapp/o2o/css/home.css

@@ -1,172 +1,94 @@
-.content{
-    background-color: #fff;
-}
-.spa-page-home {
-    /*��ͼ*/
-    /*��Ʒ�б�*/
-    /*������*/
-    /*������*/
-}
-
-.spa-page-home .main-service-box .the-main-figure {
-    background-position: center;
-    /*/!*background-position: center;*/
-    /*margin-top: -6%;*/
-    overflow: hidden;
+body {
+    background: #bdbdbd;
 }
 
-.spa-page-home .main-service-box .the-main-figure img {
+/*swiper*/
+.swiper-container {
     width: 100%;
-    /*width: 100%;*/
-    margin: -4% 0 -6% 0;
-}
-
-.spa-page-home .global-msg {
-    font-size: 15px;
-    /*display: block;*/
-    font-weight: 500;
-    /*margin-top: 25px;*/
-    height: 65px;
-    /*line-height: 50px;*/
-    color: #999999;
-    font-family: '΢���ź�', 'Microsoft YaHei', 'STHeiti Light';
-    text-align: center;
-    /*float: left;*/
-}
-
-.spa-page-home .global-msg-active {
-    border-bottom: 5px solid #b89400;
-    color: #b89400;
-}
-
-.spa-page-home .extra-service-box .extra-service:nth-child(1) {
-    border-top: 1px solid #999999;
 }
 
-.spa-page-home .extra-service-box .extra-service:nth-child(2) {
-    margin-bottom: 15%;
-}
-
-.spa-page-home .extra-service-box .extra-service-item {
-    padding: 50%;
-    position: relative;
+.swiper-slide {
     text-align: center;
-    /*�ճ����-logo*/
-    /*������-logo*/
-    /*����ɱ��-logo*/
-    /*����-logo*/
-    /*����a��ǩ�µ�������ʽ*/
-}
-
-.spa-page-home .extra-service-box .extra-service-item a {
-    position: absolute;
-    left: 20px;
-    right: 20px;
-    top: 10px;
-    bottom: 0;
-}
-
-.spa-page-home .extra-service-box .extra-service-item a:active {
-    transform: scale(0.95);
-    -webkit-transform: scale(0.95);
-}
-
-.spa-page-home .extra-service-box .extra-service-item .extra-service-name {
-    left: 0;
-    right: 0;
-    bottom: 40px;
-    font-size: 15px;
-    font-weight: 500;
-    position: absolute;
-    color: #999999;
-}
-
-.spa-page-home .products-list {
+    font-size: 18px;
+    background: #fff;
+    /* Center slide text vertically */
+    display: -webkit-box;
+    display: -ms-flexbox;
+    display: -webkit-flex;
     display: flex;
-    flex-direction: row;
-    flex-wrap: wrap;
-}
-
-.spa-page-home .extra-service-box .extra-service-item .logo {
-    background-size: 50% 50%;
-    background-position: center center;
-    padding: 50%;
-    display: inline-block;
-}
-
-.spa-page-home .extra-service-box .extra-service-item .logo-richang {
-    background: url("http://odulvej8l.bkt.clouddn.com/Home_btn_clean%20%281%29.png");
-    background-repeat: no-repeat;
-    background-size: 50% 50%;
-    background-position: center center;
+    -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;
 }
 
-.spa-page-home .extra-service-box .extra-service-item .logo-shendu {
-    background: url("http://odulvej8l.bkt.clouddn.com/Home_btn_clean%20%282%29.png");
-    background-repeat: no-repeat;
-    background-size: 50% 50%;
-    background-position: center center;
+.swiper-slide img {
+    width: 100%;
 }
 
-.spa-page-home .extra-service-box .extra-service-item .logo-chumanshajun {
-    background: url("http://odulvej8l.bkt.clouddn.com/Home_btn_clean%20%283%29.png");
-    background-repeat: no-repeat;
-    background-size: 50% 50%;
-    background-position: center center;
+.swiper-pagination-bullet-active {
+    background-color: #516663 !important;
 }
 
-.spa-page-home .extra-service-box .extra-service-item .logo-qita {
-    background: url("http://odulvej8l.bkt.clouddn.com/Home_btn_clean%20%284%29.png");
-    background-repeat: no-repeat;
-    background-size: 50% 50%;
-    background-position: center center;
+/*swiper结束*/
+.content-header {
+    width: 100%;
+    height: 44px;
 }
 
-.spa-page-home .extra-service-box .extra-service-item .extra-service {
-    display: block;
-    color: #999999;
-    font-weight: 500;
-    font-size: 18px;
-    text-align: center;
-    font-family: '΢���ź�', 'Microsoft YaHei', 'STHeiti Light';
+/*图标*/
+.home-content .home-remy {
+    margin-top: 10px;
+    margin-bottom: 0px;
+    width: 100%;
 }
 
-.spa-page-home .extra-service-box .extra-service-item .extra-service .extra-service-name {
-    width: 100%;
-    height: 100%;
+.home-content .home-box {
+    /*margin-top: 1.5rem;*/
 }
 
-.spa-page-home .extra-service-box .extra-service-item .extra-service:nth-child(1) {
-    background-color: #00a2d4;
+.home-content .home-box .width-percent-50 {
+    margin-top: 10px;
+    -webkit-box-sizing: border-box;
+    -moz-box-sizing: border-box;
+    box-sizing: border-box;
+    float: left;
 }
 
-.spa-page-home .extra-service-box .extra-service-item .extra-service:nth-child(1) div .extra-service-item {
-    border-bottom: 1px solid #999999;
+.home-content .home-box .width-percent-50:nth-child(1),
+.home-content .home-box .width-percent-50:nth-child(3) {
+    padding-left: 4%;
+    padding-right: 2%;
 }
 
-.spa-page-home .extra-service-box .extra-service-item:nth-child(1) {
-    border-right: 1px solid #999999;
-    border-bottom: 1px solid #999999;
+.home-content .home-box .width-percent-50:nth-child(2),
+.home-content .home-box .width-percent-50:nth-child(4) {
+    padding-right: 4%;
+    padding-left: 2%;
 }
 
-.spa-page-home .h-clearfix-index {
-    margin-bottom: 20px;
+.home-content .home-box .width-percent-50 img {
+    width: 100%;
 }
 
-.spa-page-home .prevent-scroll {
+.prevent-scroll {
     width: 100%;
     position: fixed;
     bottom: 0;
     background-color: #2a2400;
 }
 
-.spa-page-home .prevent-scroll .width-percent-33 .title-container-square {
+.prevent-scroll .width-percent-33 .title-container-square {
     padding: 20%;
     position: relative;
     text-align: center;
 }
 
-.spa-page-home .prevent-scroll .width-percent-33 .title-container-square a {
+.prevent-scroll .width-percent-33 .title-container-square a {
     position: absolute;
     left: 0;
     right: 0;
@@ -174,7 +96,7 @@
     bottom: 0;
 }
 
-.spa-page-home .prevent-scroll .width-percent-33 .title-container-square a .logo {
+.prevent-scroll .width-percent-33 .title-container-square a .logo {
     background-size: 65% 65%;
     background-position: center center;
     padding: 10%;
@@ -183,35 +105,35 @@
     border-radius: 50%;
 }
 
-.spa-page-home .prevent-scroll .width-percent-33 .title-container-square a .name {
+.prevent-scroll .width-percent-33 .title-container-square a .name {
     display: block;
     margin-top: -5px;
     font-size: 12px;
 }
 
-.spa-page-home .prevent-scroll .width-percent-33:nth-child(1) a:active .logo {
+.prevent-scroll .width-percent-33:nth-child(1) a:active .logo {
     border-radius: inherit;
     background: url("http://odulvej8l.bkt.clouddn.com/tab_home.png") no-repeat;
     background-size: 100%;
     background-position: center center;
 }
 
-.spa-page-home .prevent-scroll .width-percent-33:nth-child(1) a:active .name {
+.prevent-scroll .width-percent-33:nth-child(1) a:active .name {
     color: #fff;
 }
 
-.spa-page-home .prevent-scroll .width-percent-33:nth-child(1) a .logo {
+.prevent-scroll .width-percent-33:nth-child(1) a .logo {
     border-radius: inherit;
     background: url("http://odulvej8l.bkt.clouddn.com/tab_home_pre.png") no-repeat;
     background-size: 100%;
     background-position: center center;
 }
 
-.spa-page-home .prevent-scroll .width-percent-33:nth-child(1) a .name {
+.prevent-scroll .width-percent-33:nth-child(1) a .name {
     color: #b89400;
 }
 
-.spa-page-home .prevent-scroll .width-percent-33:nth-child(2) a .logo {
+.prevent-scroll .width-percent-33:nth-child(2) a .logo {
     border-radius: 50%;
     display: inline-block;
     padding: 25%;
@@ -222,7 +144,7 @@
     background-position: center;
 }
 
-.spa-page-home .width-percent-33:nth-child(3) a .logo {
+.prevent-scroll .width-percent-33:nth-child(3) a .logo {
     border-radius: inherit;
     background: url("http://odulvej8l.bkt.clouddn.com/tab_me_pre.png");
     background-repeat: no-repeat;
@@ -230,52 +152,86 @@
     background-position: center center;
 }
 
-.spa-page-home .prevent-scroll .width-percent-33:nth-child(3) a .name {
+.prevent-scroll .width-percent-33:nth-child(3) a .name {
     color: #b89400;
 }
 
-.spa-page-home .prevent-scroll .width-percent-33:nth-child(3) a:active .logo {
+.prevent-scroll .width-percent-33:nth-child(3) a:active .logo {
     border-radius: inherit;
     background: url("http://odulvej8l.bkt.clouddn.com/tab_me.png");
     background-repeat: no-repeat;
-    background-size: 100%;
+    background-size: 90%;
     background-position: center center;
 }
 
-.spa-page-home .prevent-scroll .width-percent-33:nth-child(3) a:active .name {
+.prevent-scroll .width-percent-33:nth-child(3) a:active .name {
     color: #fff;
 }
 
-/*banner图*/
-.swiper-container {
-    width: 100%;
-    /*height: 100%;*/
+/*媒体查询开始*/
+@media (max-width: 320px) {
+    .home-content .home-box {
+        height: 320px;
+    }
+}
+@media (min-width:412px) {
+    .home-content .home-box{
+        height: 412px;
+    }
+}
+@media (min-width: 414px) {
+
+    .home-content .home-remy {
+        margin-bottom: 30px;
+    }
+}
+
+@media (min-width: 768px) {
+    .home-content {
+
+    }
+
+    .home-content .home-remy {
+        margin-top: 10px;
+        margin-bottom: 0px;
+        width: 100%;
+    }
+
+    .home-content .home-box {
+        width: 100%;
+        margin-top: 0rem;
+        height: 36rem;
+    }
+
+    .home-content .home-box .width-percent-50 {
+        margin-top: 1rem;
+        -webkit-box-sizing: border-box;
+        -moz-box-sizing: border-box;
+        box-sizing: border-box;
+        text-align: center;
+        /*图片左右内边距*/
+        /*图片上下外边距*/
+    }
+
+    .home-content .home-box .width-percent-50:nth-child(1),
+    .home-content .home-box .width-percent-50:nth-child(3) {
+        padding-left: 2rem;
+        padding-right: 1rem;
+    }
+
+    .home-content .home-box .width-percent-50:nth-child(2),
+    .home-content .home-box .width-percent-50:nth-child(4) {
+        padding-left: 1rem;
+        padding-right: 2rem;
+    }
+
+    .home-content .home-box .width-percent-50 img {
+        width: 100%;
+    }
+
+    .prevent-scroll .width-percent-33 .title-container-square a .name {
+        display: block;
+        margin-top: 5px;
+        font-size: 1.6rem;
+    }
 }
-
-.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;
-}

+ 1 - 0
www/webapp/o2o/css/main.css

@@ -6,6 +6,7 @@
 @import url("./placeOrder.css");
 @import url("./myOrder.css");
 @import url("./mine.css");
+@import url("./secondary.css");
 @import url("./desc.css");
 @import url("./agreement.css");
 @import url("./review.css");

+ 23 - 0
www/webapp/o2o/css/mine.css

@@ -194,6 +194,19 @@ body {
         height: 40px;*/
     }
 }
+/*最小高度为568*/
+@media (min-height: 568px) {
+    #mineScroll div .user {
+        margin-top: 0;
+    }
+    #mineScroll div .user .user-image{
+        top: 2.2rem;
+    }
+    #mineScroll div .user .user-name{
+        top: 7rem;
+    }
+
+}
 /*当其最小宽度为768*/
 @media (min-width: 768px) {
     #mineScroll div .user {
@@ -225,4 +238,14 @@ body {
         width: 60px;
         height: 60px;
     }
+}
+
+@media (min-width: 768px) {
+    @media (min-width: 768px) {
+        #mineScroll .prevent-scroll .width-percent-33 .title-container-square a .name {
+            display: block;
+            margin-top: 5px;
+            font-size: 1.6rem;
+        }
+    }
 }

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

@@ -12,6 +12,7 @@
   width: 60%;
   /*border-color: #8bc34a;*/
   border-color: rgb(178,143,1);
+  margin-left: 20%;
 }
 .spa-page-product .type-control .control-item {
   line-height: 30px;

+ 308 - 0
www/webapp/o2o/css/secondary.css

@@ -0,0 +1,308 @@
+#secondaryScroll {
+    /*底部导航栏*/
+}
+#secondaryScroll .secondary-content {
+    /*.secondary-type{
+        margin-top: 1rem;
+        width: 100%;
+        height: 100%;
+        div {
+          float: left;
+          padding-top: 5%;
+          padding-bottom: 5%;
+          text-align: center;
+          background: #ffffff;
+
+          &:nth-child(1),&:nth-child(3),&:nth-child(5),&:nth-child(7){
+            border-bottom: 1px solid;
+            border-right:1px solid;
+          }
+          img {
+            width: 50px;
+            height: 50px;
+          }
+          .mine-text {
+            display: block;
+            width: 100%;
+            border: 0;
+            padding: 0;
+          }
+        }
+      }*/
+}
+#secondaryScroll .secondary-content .secondary-head {
+    position: relative;
+    text-align: center;
+}
+#secondaryScroll .secondary-content .secondary-head img {
+    width: 100%;
+}
+#secondaryScroll .secondary-content .secondary-head img:nth-child(2) {
+    width: 5rem;
+    position: absolute;
+    left: 50%;
+    margin-left: -2.5rem;
+    bottom: -2.3rem;
+}
+#secondaryScroll .secondary-content .secondary-list .products-list {
+    margin: 0;
+    list-style: none;
+    padding-left: 0;
+}
+#secondaryScroll .secondary-content .secondary-list .products-list li {
+    padding-top: 0.4rem;
+    text-align: center;
+    width: 50%;
+    float: left;
+}
+#secondaryScroll .secondary-content .secondary-list .products-list li img {
+    width: 50px;
+    height: 50px;
+}
+#secondaryScroll .secondary-content .secondary-list .products-list li div {
+    border-bottom: 3px solid #a8a8a8;
+    width: 6rem;
+    margin: 0 auto;
+    padding-bottom: 0.3rem;
+}
+#secondaryScroll .secondary-content .secondary-list .products-list li:nth-child(1),
+#secondaryScroll .secondary-content .secondary-list .products-list li:nth-child(3),
+#secondaryScroll .secondary-content .secondary-list .products-list li:nth-child(5),
+#secondaryScroll .secondary-content .secondary-list .products-list li:nth-child(7) {
+    border-bottom: 1px solid #b7b7b7;
+    border-right: 1px solid #b7b7b7;
+}
+#secondaryScroll .secondary-content .secondary-list .products-list li:nth-child(2),
+#secondaryScroll .secondary-content .secondary-list .products-list li:nth-child(4),
+#secondaryScroll .secondary-content .secondary-list .products-list li:nth-child(6),
+#secondaryScroll .secondary-content .secondary-list .products-list li:nth-child(8) {
+    border-bottom: 1px solid #b7b7b7;
+}
+#secondaryScroll .prevent-scroll {
+    width: 100%;
+    position: fixed;
+    bottom: 0;
+    background-color: #2a2400;
+}
+#secondaryScroll .prevent-scroll .width-percent-33 .title-container-square {
+    padding: 20%;
+    position: relative;
+    text-align: center;
+}
+#secondaryScroll .prevent-scroll .width-percent-33 .title-container-square a {
+    position: absolute;
+    left: 0;
+    right: 0;
+    top: 0;
+    bottom: 0;
+}
+#secondaryScroll .prevent-scroll .width-percent-33 .title-container-square a .logo {
+    background-size: 65% 65%;
+    background-position: center center;
+    padding: 10%;
+    margin-top: 5px;
+    display: inline-block;
+    border-radius: 50%;
+}
+#secondaryScroll .prevent-scroll .width-percent-33 .title-container-square a .name {
+    display: block;
+    margin-top: -5px;
+    font-size: 12px;
+}
+#secondaryScroll .prevent-scroll .width-percent-33:nth-child(1) a:active .logo {
+    border-radius: inherit;
+    background: url("http://odulvej8l.bkt.clouddn.com/tab_home.png") no-repeat;
+    background-size: 100%;
+    background-position: center center;
+}
+#secondaryScroll .prevent-scroll .width-percent-33:nth-child(1) a:active .name {
+    color: #fff;
+}
+#secondaryScroll .prevent-scroll .width-percent-33:nth-child(1) a .logo {
+    border-radius: inherit;
+    background: url("http://odulvej8l.bkt.clouddn.com/tab_home_pre.png") no-repeat;
+    background-size: 90%;
+    background-position: center center;
+}
+#secondaryScroll .prevent-scroll .width-percent-33:nth-child(1) a .name {
+    color: #b89400;
+}
+#secondaryScroll .prevent-scroll .width-percent-33:nth-child(2) a .logo {
+    border-radius: 50%;
+    display: inline-block;
+    padding: 25%;
+    background-size: 100%;
+    margin-top: -15px;
+    background: url("http://odulvej8l.bkt.clouddn.com/tab_butler.png") 0 0 no-repeat #2a2400;
+    background-size: 65% 65%;
+    background-position: center;
+}
+#secondaryScroll .prevent-scroll .width-percent-33:nth-child(3) a .logo {
+    border-radius: inherit;
+    background: url("http://odulvej8l.bkt.clouddn.com/tab_me_pre.png");
+    background-repeat: no-repeat;
+    background-size: 90%;
+    background-position: center center;
+}
+#secondaryScroll .prevent-scroll .width-percent-33:nth-child(3) a .name {
+    color: #b89400;
+}
+#secondaryScroll .prevent-scroll .width-percent-33:nth-child(3) a:active .logo {
+    border-radius: inherit;
+    background: url("http://odulvej8l.bkt.clouddn.com/tab_me.png");
+    background-repeat: no-repeat;
+    background-size: 100%;
+    background-position: center center;
+}
+#secondaryScroll .prevent-scroll .width-percent-33:nth-child(3) a:active .name {
+    color: #fff;
+}
+@media (min-width: 768px) {
+    #secondaryScroll .prevent-scroll .width-percent-33 .title-container-square a .name {
+        display: block;
+        margin-top: 5px;
+        font-size: 1.6rem;
+    }
+}
+/*媒体查询*/
+@media (min-width: 414px) {
+    #secondaryScroll .secondary-content .secondary-head {
+        position: relative;
+        text-align: center;
+    }
+    #secondaryScroll .secondary-content .secondary-head img {
+        width: 100%;
+    }
+    #secondaryScroll .secondary-content .secondary-head img:nth-child(2) {
+        width: 7rem;
+        position: absolute;
+        left: 50%;
+        margin-left: -3.5rem;
+        bottom: -3.4rem;
+    }
+    #secondaryScroll .secondary-content .secondary-list .products-list {
+        /*margin: 0;
+              list-style: none;
+              padding-left: 0;*/
+    }
+    #secondaryScroll .secondary-content .secondary-list .products-list li {
+        /*padding-top:0.4rem;
+                text-align: center;
+                width: 50%;
+                float: left;*/
+    }
+    #secondaryScroll .secondary-content .secondary-list .products-list li img {
+        width: 2.7rem;
+        height: 2.7rem;
+    }
+    #secondaryScroll .secondary-content .secondary-list .products-list li div {
+        border-bottom: 3px solid #a8a8a8;
+        width: 6rem;
+        margin: 0 auto;
+        padding-bottom: 0.3rem;
+    }
+    #secondaryScroll .secondary-content .secondary-list .products-list li:nth-child(1),
+    #secondaryScroll .secondary-content .secondary-list .products-list li:nth-child(3),
+    #secondaryScroll .secondary-content .secondary-list .products-list li:nth-child(5),
+    #secondaryScroll .secondary-content .secondary-list .products-list li:nth-child(7) {
+        border-bottom: 1px solid #b7b7b7;
+        border-right: 1px solid #b7b7b7;
+    }
+    #secondaryScroll .secondary-content .secondary-list .products-list li:nth-child(2),
+    #secondaryScroll .secondary-content .secondary-list .products-list li:nth-child(4),
+    #secondaryScroll .secondary-content .secondary-list .products-list li:nth-child(6),
+    #secondaryScroll .secondary-content .secondary-list .products-list li:nth-child(8) {
+        border-bottom: 1px solid #b7b7b7;
+    }
+}
+@media (min-width: 768px) {
+    #secondaryScroll .secondary-content .secondary-head {
+        position: relative;
+        text-align: center;
+    }
+    #secondaryScroll .secondary-content .secondary-head img {
+        width: 100%;
+    }
+    #secondaryScroll .secondary-content .secondary-head img:nth-child(2) {
+        width: 8rem;
+        position: absolute;
+        left: 50%;
+        margin-left: -4rem;
+        bottom: -3.9rem;
+    }
+    #secondaryScroll .secondary-content .secondary-list .products-list {
+        /*margin: 0;
+              list-style: none;
+              padding-left: 0;*/
+    }
+    #secondaryScroll .secondary-content .secondary-list .products-list li {
+        /*padding-top:0.4rem;
+                text-align: center;
+                width: 50%;
+                float: left;*/
+    }
+    #secondaryScroll .secondary-content .secondary-list .products-list li img {
+        width: 5rem;
+        height: 5rem;
+    }
+    #secondaryScroll .secondary-content .secondary-list .products-list li div {
+        border-bottom: 3px solid #a8a8a8;
+        width: 6rem;
+        margin: 0 auto;
+        padding-bottom: 0.3rem;
+    }
+    #secondaryScroll .secondary-content .secondary-list .products-list li:nth-child(1),
+    #secondaryScroll .secondary-content .secondary-list .products-list li:nth-child(3),
+    #secondaryScroll .secondary-content .secondary-list .products-list li:nth-child(5),
+    #secondaryScroll .secondary-content .secondary-list .products-list li:nth-child(7) {
+        border-bottom: 1px solid #b7b7b7;
+        border-right: 1px solid #b7b7b7;
+    }
+    #secondaryScroll .secondary-content .secondary-list .products-list li:nth-child(2),
+    #secondaryScroll .secondary-content .secondary-list .products-list li:nth-child(4),
+    #secondaryScroll .secondary-content .secondary-list .products-list li:nth-child(6),
+    #secondaryScroll .secondary-content .secondary-list .products-list li:nth-child(8) {
+        border-bottom: 1px solid #b7b7b7;
+    }
+}
+@media (max-height: 480px) {
+    #secondaryScroll .secondary-content .secondary-list .products-list {
+        height: 420px ;
+    }
+}
+@media (min-height: 568px) {
+    #secondaryScroll .secondary-content .secondary-list .products-list li img {
+        width: 1.5rem;
+        height: 1.5rem;
+    }
+    #secondaryScroll .secondary-content .secondary-list .products-list li:nth-child(2),
+    #secondaryScroll .secondary-content .secondary-list .products-list li:nth-child(4),
+    #secondaryScroll .secondary-content .secondary-list .products-list li:nth-child(6),
+    #secondaryScroll .secondary-content .secondary-list .products-list li:nth-child(8) {
+        border-bottom: 1px solid #b7b7b7;
+    }
+}
+@media (min-height: 667px) {
+    #secondaryScroll .secondary-content .secondary-list .products-list li img {
+        width: 2.3rem;
+        height: 2.3rem;
+    }
+    #secondaryScroll .secondary-content .secondary-list .products-list li:nth-child(2),
+    #secondaryScroll .secondary-content .secondary-list .products-list li:nth-child(4),
+    #secondaryScroll .secondary-content .secondary-list .products-list li:nth-child(6),
+    #secondaryScroll .secondary-content .secondary-list .products-list li:nth-child(8) {
+        border-bottom: 1px solid #b7b7b7;
+    }
+}
+@media (min-height: 700px) {
+    #secondaryScroll .secondary-content .secondary-list .products-list li img {
+        width: 2.8rem;
+        height: 2.8rem;
+    }
+    #secondaryScroll .secondary-content .secondary-list .products-list li:nth-child(2),
+    #secondaryScroll .secondary-content .secondary-list .products-list li:nth-child(4),
+    #secondaryScroll .secondary-content .secondary-list .products-list li:nth-child(6),
+    #secondaryScroll .secondary-content .secondary-list .products-list li:nth-child(8) {
+        border-bottom: 1px solid #b7b7b7;
+    }
+}

File diff suppressed because it is too large
+ 0 - 0
www/webapp/o2o/dist/css/main.css


+ 1 - 0
www/webapp/o2o/dist/js/build.txt

@@ -25,6 +25,7 @@ page/help.js
 page/about.js
 page/rechargee.js
 page/mine.js
+page/secondary.js
 model/cart.js
 model/review.js
 page/product.js

File diff suppressed because it is too large
+ 0 - 0
www/webapp/o2o/dist/js/build/template.js


File diff suppressed because it is too large
+ 0 - 0
www/webapp/o2o/dist/js/main.js


File diff suppressed because it is too large
+ 0 - 0
www/webapp/o2o/dist/js/model/user.js


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

@@ -1 +1 @@
-define(["$","template","IScroll","product","user","native","config","address"],function(e,t,n,r,i,s,o,u){function a(e){e.preventDefault(),s.back()}return{title:"壹管家上门服务",body:"",init:function(t,n){var o=this,u=e(document);e.newTouch(".back-button",function(e){a.call(this,e)},o),o.on("tapBackButton",function(e){a.call(this,e)}),e.newTouch(".service-telephone",function(e){e.preventDefault(),s.call("4000328170")},o),e.newTouch(".btn-banner-recharge",function(e){e.preventDefault(),u.trigger("spa:navigate",{hash:"recharge",pushData:{needReload:!0}})},o),e.newTouch(".btn-banner-coupon",function(e){e.preventDefault(),u.trigger("spa:navigate",{hash:"myCoupon",pushData:{needReload:!0}})},o),e.newTouch(".btn-product",function(t){t.preventDefault();var n=parseInt(e(this).attr("data-product-type"));u.trigger("spa:navigate",{hash:"placeOrder",pushData:{product:r.allList[n-1],needReset:!0}})},o),e.newTouch(".btn-action-my-order",function(e){e.preventDefault(),u.trigger("spa:navigate",{hash:""})},o),e.newTouch(".btn-action-coupon",function(e){e.preventDefault(),i.checkLogin(function(){u.trigger("spa:navigate",{hash:"mine",pushData:{needReset:!0}})})},o),n.resolve()},beforeopen:function(e,t){localStorage.removeItem("cart_products"),t.resolve(),s.switchPopGesture(!0)},afteropen:function(s,a){var f=this,l=e(document);if(!s.pushData.dontNeedReload){l.trigger("spa:openloader");var c=t("home/index",{showNavBar:!o.isWX&&!o.isChubao});e(".spa-page-body",f).html(c),setTimeout(function(){s.scroll=new n("#homeScroll");var e=new Swiper(".swiper-container",{pagination:".swiper-pagination",nextButton:".swiper-button-next",prevButton:".swiper-button-prev",paginationClickable:!0,spaceBetween:30,centeredSlides:!0,autoplay:1500,autoplayDisableOnInteraction:!1})},500),r.getListAll(i.id),u.getList({request_from:"weixin",user_id:i.id}),l.trigger("spa:closeloader")}a.resolve(),s.prevPage=e(".spa-page-empty")},beforeclose:function(e,t){t.resolve(),s.switchPopGesture(!1)}}});
+define(["$","template","IScroll","product","user","native","config","address"],function(e,t,n,r,i,s,o,u){function a(e){e.preventDefault(),s.back()}return{title:"壹管家上门服务",body:"",init:function(t,n){var o=this,u=e(document);e.newTouch(".back-button",function(e){a.call(this,e)},o),o.on("tapBackButton",function(e){a.call(this,e)}),e.newTouch(".service-telephone",function(e){e.preventDefault(),s.call("4000328170")},o),e.newTouch(".btn-banner-recharge",function(e){e.preventDefault(),u.trigger("spa:navigate",{hash:"recharge",pushData:{needReload:!0}})},o),e.newTouch(".btn-banner-coupon",function(e){e.preventDefault(),u.trigger("spa:navigate",{hash:"myCoupon",pushData:{needReload:!0}})},o),e.newTouch(".btn-appliances",function(e){e.preventDefault();var t=4;u.trigger("spa:navigate",{hash:"placeOrder",pushData:{product:r.allList[t-1],needReset:!0}})},o),e.newTouch(".btn-secondary",function(e){e.preventDefault(),u.trigger("spa:navigate",{hash:"secondary",pushData:{needReset:!0}})},o),e.newTouch(".btn-action-coupon",function(e){e.preventDefault(),i.checkLogin(function(){u.trigger("spa:navigate",{hash:"mine",pushData:{needReset:!0}})})},o),n.resolve()},beforeopen:function(e,t){localStorage.removeItem("cart_products"),t.resolve(),s.switchPopGesture(!0)},afteropen:function(s,a){var f=this,l=e(document);if(!s.pushData.dontNeedReload){l.trigger("spa:openloader");var c=t("home/index",{showNavBar:!o.isWX&&!o.isChubao});e(".spa-page-body",f).html(c),setTimeout(function(){s.scroll=new n("#homeScroll");var e=new Swiper(".swiper-container",{pagination:".swiper-pagination",nextButton:".swiper-button-next",prevButton:".swiper-button-prev",paginationClickable:!0,spaceBetween:30,centeredSlides:!0,autoplay:1500,autoplayDisableOnInteraction:!1})},500),r.getListAll(i.id),u.getList({request_from:"weixin",user_id:i.id}),l.trigger("spa:closeloader")}a.resolve(),s.prevPage=e(".spa-page-empty")},beforeclose:function(e,t){t.resolve(),s.switchPopGesture(!1)}}});

File diff suppressed because it is too large
+ 0 - 0
www/webapp/o2o/dist/js/page/placeOrder.js


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

@@ -0,0 +1 @@
+define(["$","template","IScroll","user","product","native","config","address"],function(e,t,n,r,i,s,o,u){function a(t){t.preventDefault(),e(document).trigger("spa:navigate",{hash:"",pushData:{dontNeedReload:!0}})}return{title:"家庭保洁",body:"",init:function(t,n){var r=this,s=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(".btn-product",function(t){t.preventDefault();var n=parseInt(e(this).attr("data-product-type"));s.trigger("spa:navigate",{hash:"placeOrder",pushData:{product:i.allList[n-1],needReset:!0}})},r),e.newTouch(".btn-action-my-order",function(){event.preventDefault(),s.trigger("spa:navigate",{hash:"",pushData:{needReset:!0}})},r),e.newTouch(".btn-action-coupon",function(){event.preventDefault(),s.trigger("spa:navigate",{hash:"mine",pushData:{needReset:!0}})},r),n.resolve()},beforeopen:function(e,t){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)}i.resolve()},beforeclose:function(e,t){t.resolve()}}});

File diff suppressed because it is too large
+ 3 - 3
www/webapp/o2o/js/build/template.js


+ 576 - 564
www/webapp/o2o/js/main.js

@@ -1,462 +1,474 @@
 require.config({
-  urlArgs: 'v=' + (new Date()).getTime(),
-  waitSeconds: 0,
-  paths: {
-    zepto: '../../common/js/zepto.min',
-    wx: '../../common/js/jweixin-1.0.0',
-    ctk: '../../common/js/ctk-1.0.0',
-    pingpp: '../../common/js/pingpp',
-    spa: '../../common/js/spa',
-    IScroll: '../../framework/iscroll5/iscroll-probe',
-    ratchet: '../../framework/ratchet-2.0.2/dist/js/ratchet.base',
-    $: '../../common/js/jq_extend',
-    autosize: '../../common/js/autosize',
-    config: '../../common/js/config',
-    helper: '../../common/js/helper',
-    native: '../../common/js/native',
-    storage: '../../common/js/storage',
-    base: '../../common/js/base',
-    template: './build/template',
-    api: './api',
-    bdmapapi: '../../common/js/bdmapapi',
-    BMap: 'http://api.map.baidu.com/getscript?v=2.0&ak=B349f0b32ef6e78b2e678f45cb9fddaf&services=&t=20160310104956',
-    //model
-    user: './model/user',
-    product: './model/product',
-    cart: './model/cart',
-    order: './model/order',
-    review: './model/review',
-    address: './model/address',
-    recharge: './model/recharge',
-    //page
-    pageHome: './page/home',
-    pageRecharge: './page/rechargee',
-    pageHelp: './page/help',
-    pageAbout: './page/about',
-    pageProduct: './page/product',
-    pageProductInfo: './page/productInfo',
-    pageDesc: './page/desc',
-    pagePlaceOrder: './page/placeOrder',
-    pagePicker: './page/picker',
-    pagePay: './page/pay',
-    pageAppendPay: './page/appendPay',
-    pageMyOrder: './page/myOrder',
-    pageMyOrderDetail: './page/myOrderDetail',
-    pageMyCoupon: './page/myCoupon',
-    pageOrderDone: './page/orderDone',
-    pageSuccess: './page/success',
-    pageAgreement: './page/agreement',
-    pageAddressList: './page/address/addressList',
-    pageAddressAdd: './page/address/addressAdd',
-    pageAddressDetail: './page/address/addressDetail',
-    pageAddressPoisiton: './page/address/addressPoi',
-    pageHire: './page/hire',
-    pageComing: './page/coming',
-    pageActivityCat: './page/activities/cat',
-    pageAppend: './page/append',
-    pageRefund: './page/refund',
-    pageRefundSuccess: './page/refundSuccess',
-    pageBeautician: './page/beautician',
-    pageBeauticianDetail: './page/beauticianDetail',
-    pageMine: './page/mine',
-    //panel
-    panelAlert: './panel/alert',
-    panelActionSheet: './panel/actionSheet',
-    // panelAddressAction: './panel/addressAction',
-    panelDataPicker: './panel/dataPicker',
-    panelProductOption: './panel/productOption',
-    panelPostReview: './panel/postReview',
-    panelActivity: './panel/activity'
-  },
-  shim: {
-    zepto: {
-      exports: '$'
+    urlArgs: 'v=' + (new Date()).getTime(),
+    waitSeconds: 0,
+    paths: {
+        zepto: '../../common/js/zepto.min',
+        wx: '../../common/js/jweixin-1.0.0',
+        ctk: '../../common/js/ctk-1.0.0',
+        pingpp: '../../common/js/pingpp',
+        spa: '../../common/js/spa',
+        IScroll: '../../framework/iscroll5/iscroll-probe',
+        ratchet: '../../framework/ratchet-2.0.2/dist/js/ratchet.base',
+        $: '../../common/js/jq_extend',
+        autosize: '../../common/js/autosize',
+        config: '../../common/js/config',
+        helper: '../../common/js/helper',
+        native: '../../common/js/native',
+        storage: '../../common/js/storage',
+        base: '../../common/js/base',
+        template: './build/template',
+        api: './api',
+        bdmapapi: '../../common/js/bdmapapi',
+        BMap: 'http://api.map.baidu.com/getscript?v=2.0&ak=B349f0b32ef6e78b2e678f45cb9fddaf&services=&t=20160310104956',
+        //model
+        user: './model/user',
+        product: './model/product',
+        cart: './model/cart',
+        order: './model/order',
+        review: './model/review',
+        address: './model/address',
+        recharge: './model/recharge',
+        //page
+        pageHome: './page/home',
+        pageRecharge: './page/rechargee',
+        pageHelp: './page/help',
+        pageAbout: './page/about',
+        pageProduct: './page/product',
+        pageProductInfo: './page/productInfo',
+        pageDesc: './page/desc',
+        pagePlaceOrder: './page/placeOrder',
+        pagePicker: './page/picker',
+        pagePay: './page/pay',
+        pageAppendPay: './page/appendPay',
+        pageMyOrder: './page/myOrder',
+        pageMyOrderDetail: './page/myOrderDetail',
+        pageMyCoupon: './page/myCoupon',
+        pageOrderDone: './page/orderDone',
+        pageSuccess: './page/success',
+        pageAgreement: './page/agreement',
+        pageAddressList: './page/address/addressList',
+        pageAddressAdd: './page/address/addressAdd',
+        pageAddressDetail: './page/address/addressDetail',
+        pageAddressPoisiton: './page/address/addressPoi',
+        pageHire: './page/hire',
+        pageComing: './page/coming',
+        pageActivityCat: './page/activities/cat',
+        pageAppend: './page/append',
+        pageRefund: './page/refund',
+        pageRefundSuccess: './page/refundSuccess',
+        pageBeautician: './page/beautician',
+        pageBeauticianDetail: './page/beauticianDetail',
+        pageMine: './page/mine',
+        pageSecondary: './page/secondary',
+        //panel
+        panelAlert: './panel/alert',
+        panelActionSheet: './panel/actionSheet',
+        // panelAddressAction: './panel/addressAction',
+        panelDataPicker: './panel/dataPicker',
+        panelProductOption: './panel/productOption',
+        panelPostReview: './panel/postReview',
+        panelActivity: './panel/activity'
     },
-    IScroll: {
-        exports: 'IScroll'
-    },
-    BMap: {
-      exports: 'BMap'
-    }
+    shim: {
+        zepto: {
+            exports: '$'
+        },
+        IScroll: {
+            exports: 'IScroll'
+        },
+        BMap: {
+            exports: 'BMap'
+        }
 
-  }
+    }
 });
 
 require(['$', 'spa', 'native', 'helper', 'ratchet', 'config', 'user'], function ($, spa, native, helper, ratchet, config, user) {
-  var $doc = $(document);
-
-  // 首页
-  var pageHome = {
-    route: '',
-    classname: 'home',
-    animate: 'fadeIn',
-    view: function () {
-      var $page = this;
-      requirejs(['pageHome'], function (viewData) {
-        $doc.trigger('spa:initpage', [$page, viewData])
-      })
-    }
-  };
-
-  //商品页
-  var pageProduct = {
-    route: 'product',
-    classname: 'product',
-    animate: 'slideInUp',
-    view: function () {
-      var $page = this;
-      requirejs(['pageProduct'], function (viewData) {
-        $doc.trigger('spa:initpage', [$page, viewData])
-      })
-    }
-  };
-
-  //充值卡
-  var pageRecharge = {
-    route: 'recharge',
-    classname: 'recharge',
-    animate: 'pushInLeft',
-    view: function () {
-      var $page = this;
-      requirejs(['pageRecharge'], function (viewData) {
-        $doc.trigger('spa:initpage', [$page, viewData])
-      })
-    }
-  };
-
-  //个人中心
-  var pageMine = {
-    route: 'mine',
-    classname: 'mine',
-    animate: 'pushInLeft',
-    view: function () {
-      var $page = this;
-      requirejs(['pageMine'], function (viewData) {
-        $doc.trigger('spa:initpage', [$page, viewData])
-      })
-    }
-  };
-
-  //商品提示信息
-  var pageProductInfo = {
-    route: 'product-info/:type',
-    classname: 'product-info',
-    animate: 'pushInLeft',
-    view: function () {
-      var $page = this;
-      requirejs(['pageProductInfo'], function (viewData) {
-        $doc.trigger('spa:initpage', [$page, viewData])
-      })
-    }
-  };
-
-  //商品介绍页
-  var pageDesc = {
-    route: 'desc',
-    classname: 'desc',
-    animate: 'pushInLeft',
-    view: function () {
-      var $page = this;
-      requirejs(['pageDesc'], function (viewData) {
-        $doc.trigger('spa:initpage', [$page, viewData])
-      })
-    }
-  };
-
-  //订单页
-  var pagePlaceOrder = {
-    route: 'placeOrder',
-    classname: 'place-order',
-    animate: 'pushInLeft',
-    view: function () {
-      var $page = this;
-      requirejs(['pagePlaceOrder'], function (viewData) {
-        $doc.trigger('spa:initpage', [$page, viewData])
-      })
-    }
-  };
-
-  //选择列表页
-  var pagePicker = {
-    route: 'picker',
-    classname: 'picker',
-    animate: 'pushInLeft',
-    view: function () {
-      var $page = this;
-      requirejs(['pagePicker'], function (viewData) {
-        $doc.trigger('spa:initpage', [$page, viewData])
-      })
-    }
-  };
-
-  //支付页面
-  var pagePay = {
-    route: 'pay',
-    classname: 'pay',
-    animate: 'pushInLeft',
-    view: function () {
-      var $page = this;
-      requirejs(['pagePay'], function (viewData) {
-        $doc.trigger('spa:initpage', [$page, viewData])
-      })
-    }
-  };
-
-  // 追加订单支付页面
-  var pageAppendPay = {
-    route: 'append-pay',
-    classname: 'append-pay',
-    animate: 'pushInLeft',
-    view: function () {
-      var $page = this;
-      requirejs(['pageAppendPay'], function (viewData) {
-        $doc.trigger('spa:initpage', [$page, viewData])
-      })
-    }
-  };
-
-  //支付成功
-  var pagePaySuccess = {
-    route: 'paySuccess',
-    classname: 'pay-success',
-    animate: 'pushInLeft',
-    view: function () {
-      var $page = this;
-      requirejs(['pageSuccess'], function (viewData) {
-        $doc.trigger('spa:initpage', [$page, viewData])
-      });
-    }
-  };
-
-  //我的订单页
-  var pageMyOrder = {
-    route: 'myOrder(/:type)',
-    classname: 'my-order',
-    animate: 'pushInLeft',
-    view: function () {
-      var $page = this;
-      requirejs(['pageMyOrder'], function (viewData) {
-        $doc.trigger('spa:initpage', [$page, viewData])
-      });
-    }
-  };
-
-  var pageMyOrderDetail = {
-    route: 'OrderDetail/:id',
-    classname: 'my-order-detail',
-    animate: 'pushInLeft',
-    view: function () {
-      var $page = this;
-      requirejs(['pageMyOrderDetail'], function (viewData) {
-        $doc.trigger('spa:initpage', [$page, viewData])
-      });
-    }
-  };
-
-  //我的优惠券
-  var pageMyCoupon = {
-    route: 'myCoupon',
-    classname: 'my-coupon',
-    animate: 'pushInLeft',
-    view: function () {
-      var $page = this;
-      requirejs(['pageMyCoupon'], function (viewData) {
-        $doc.trigger('spa:initpage', [$page, viewData])
-      });
-    }
-  };
-
-  //用户服务协议
-  var pageAgreement = {
-    route: 'agreement',
-    classname: 'agreement',
-    animate: 'pushInLeft',
-    view: function () {
-      var $page = this;
-      requirejs(['pageAgreement'], function (viewData) {
-        $doc.trigger('spa:initpage', [$page, viewData])
-      });
-    }
-  };
-
-  //地址列表
-  var pageAddressList = {
-    route: 'addressList',
-    classname: 'address-list',
-    animate: 'pushInLeft',
-    view: function () {
-      var $page = this;
-      requirejs(['pageAddressList'], function (viewData) {
-        $doc.trigger('spa:initpage', [$page, viewData])
-      });
-    }
-  };
-
-  //地址添加
-  var pageAddressAdd = {
-    route: 'addressAdd',
-    classname: 'address-add',
-    animate: 'pushInLeft',
-    view: function () {
-      var $page = this;
-      requirejs(['pageAddressAdd'], function (viewData) {
-        $doc.trigger('spa:initpage', [$page, viewData])
-      });
-    }
-  };
-
-  //地址详情
-  var pageAddressDetail = {
-    route: 'addressDetail',
-    classname: 'address-detail',
-    animate: 'pushInLeft',
-    view: function () {
-      var $page = this;
-      requirejs(['pageAddressDetail'], function (viewData) {
-        $doc.trigger('spa:initpage', [$page, viewData])
-      });
-    }
-  };
-
-  //地址定位
-  var pageAddressPoisiton = {
-    route: 'addressPoisiton',
-    classname: 'address-poisition',
-    animate: 'pushInLeft',
-    view: function () {
-      var $page = this;
-      requirejs(['pageAddressPoisiton'], function (viewData) {
-        $doc.trigger('spa:initpage', [$page, viewData])
-      });
-    }
-  };
-
-  //招聘
-  var pageHire = {
-    route: 'hire',
-    classname: 'hire',
-    animate: 'pushInLeft',
-    view: function () {
-      var $page = this;
-      requirejs(['pageHire'], function (viewData) {
-        $doc.trigger('spa:initpage', [$page, viewData])
-      });
-    }
-  };
-
-  // 未上线
-  var pageComing = {
-    route: 'coming',
-    classname: 'coming',
-    animate: 'pushInLeft',
-    view: function () {
-      var $page = this;
-      requirejs(['pageComing'], function (viewData) {
-        $doc.trigger('spa:initpage', [$page, viewData])
-      });
-    }
-  };
-
-  // 活动
-  var pageActivityCat = {
-    route: 'activity-cat',
-    classname: 'activities-cat',
-    animate: 'slideInUp',
-    view: function () {
-      var $page = this;
-      requirejs(['pageActivityCat'], function (viewData) {
-        $doc.trigger('spa:initpage', [$page, viewData])
-      });
-    }
-  };
-
-  // 追加服务
-  var pageAppend = {
-    route: 'append',
-    classname: 'append',
-    animate: 'pushInLeft',
-    view: function () {
-      var $page = this;
-      requirejs(['pageAppend'], function (viewData) {
-        $doc.trigger('spa:initpage', [$page, viewData])
-      });
-    }
-  };
-
-  // 申请退款
-  var pageRefund = {
-    route: 'refund',
-    classname: 'refund',
-    animate: 'pushInLeft',
-    view: function () {
-      var $page = this;
-      requirejs(['pageRefund'], function (viewData) {
-        $doc.trigger('spa:initpage', [$page, viewData])
-      });
-    }
-  };
-
-  // 申请成功
-  var pageRefundSuccess = {
-    route: 'refund-success',
-    classname: 'refund-success',
-    animate: 'pushInLeft',
-    view: function () {
-      var $page = this;
-      requirejs(['pageRefundSuccess'], function (viewData) {
-        $doc.trigger('spa:initpage', [$page, viewData])
-      });
-    }
-  };
-
-  // 订单确认完成
-  var pageOrderDone = {
-    route: 'order-done',
-    classname: 'order-done',
-    animate: 'pushInLeft',
-    view: function () {
-      var $page = this;
-      requirejs(['pageOrderDone'], function (viewData) {
-        $doc.trigger('spa:initpage', [$page, viewData])
-      })
-    }
-  };
-
-  var pageBeautician = {
-    route: 'beautician',
-    classname: 'beautician',
-    animate: 'pushInLeft',
-    view: function () {
-      var $page = this;
-      requirejs(['pageBeautician'], function (viewData) {
-        $doc.trigger('spa:initpage', [$page, viewData]);
-      })
-    }
-  };
-
-  var pageBeauticianDetail = {
-    route: 'beautician-detail',
-    classname: 'beautician-detail',
-    animate: 'slideInUp',
-    view: function () {
-      var $page = this;
-      requirejs(['pageBeauticianDetail'], function (viewData) {
-        $doc.trigger('spa:initpage', [$page, viewData]);
-      })
-    }
-  };
-
-  var pageHelp = {
-    route: 'help',
-    classname: 'help',
-    animate: 'slideInUp',
-    view: function () {
-      var $page = this;
-      requirejs(['pageHelp'], function (viewData) {
-        $doc.trigger('spa:initpage', [$page, viewData]);
-      })
-    }
-  };
+    var $doc = $(document);
+
+    // 首页
+    var pageHome = {
+        route: '',
+        classname: 'home',
+        animate: 'fadeIn',
+        view: function () {
+            var $page = this;
+            requirejs(['pageHome'], function (viewData) {
+                $doc.trigger('spa:initpage', [$page, viewData])
+            })
+        }
+    };
+
+    //商品页
+    var pageProduct = {
+        route: 'product',
+        classname: 'product',
+        animate: 'slideInUp',
+        view: function () {
+            var $page = this;
+            requirejs(['pageProduct'], function (viewData) {
+                $doc.trigger('spa:initpage', [$page, viewData])
+            })
+        }
+    };
+
+    //充值卡
+    var pageRecharge = {
+        route: 'recharge',
+        classname: 'recharge',
+        animate: 'pushInLeft',
+        view: function () {
+            var $page = this;
+            requirejs(['pageRecharge'], function (viewData) {
+                $doc.trigger('spa:initpage', [$page, viewData])
+            })
+        }
+    };
+
+    //个人中心
+    var pageMine = {
+        route: 'mine',
+        classname: 'mine',
+        animate: 'pushInLeft',
+        view: function () {
+            var $page = this;
+            requirejs(['pageMine'], function (viewData) {
+                $doc.trigger('spa:initpage', [$page, viewData])
+            })
+        }
+    };
+    //家庭保洁
+    var pageSecondary = {
+        route: 'secondary',
+        classname: 'secondary',
+        animate: 'pushInLeft',
+        view: function () {
+            var $page = this;
+            requirejs(['pageSecondary'], function (viewData) {
+                $doc.trigger('spa:initpage', [$page, viewData])
+            })
+        }
+    };
+    //商品提示信息
+    var pageProductInfo = {
+        route: 'product-info/:type',
+        classname: 'product-info',
+        animate: 'pushInLeft',
+        view: function () {
+            var $page = this;
+            requirejs(['pageProductInfo'], function (viewData) {
+                $doc.trigger('spa:initpage', [$page, viewData])
+            })
+        }
+    };
+
+    //商品介绍页
+    var pageDesc = {
+        route: 'desc',
+        classname: 'desc',
+        animate: 'pushInLeft',
+        view: function () {
+            var $page = this;
+            requirejs(['pageDesc'], function (viewData) {
+                $doc.trigger('spa:initpage', [$page, viewData])
+            })
+        }
+    };
+
+    //订单页
+    var pagePlaceOrder = {
+        route: 'placeOrder',
+        classname: 'place-order',
+        animate: 'pushInLeft',
+        view: function () {
+            var $page = this;
+            requirejs(['pagePlaceOrder'], function (viewData) {
+                $doc.trigger('spa:initpage', [$page, viewData])
+            })
+        }
+    };
+
+    //选择列表页
+    var pagePicker = {
+        route: 'picker',
+        classname: 'picker',
+        animate: 'pushInLeft',
+        view: function () {
+            var $page = this;
+            requirejs(['pagePicker'], function (viewData) {
+                $doc.trigger('spa:initpage', [$page, viewData])
+            })
+        }
+    };
+
+    //支付页面
+    var pagePay = {
+        route: 'pay',
+        classname: 'pay',
+        animate: 'pushInLeft',
+        view: function () {
+            var $page = this;
+            requirejs(['pagePay'], function (viewData) {
+                $doc.trigger('spa:initpage', [$page, viewData])
+            })
+        }
+    };
+
+    // 追加订单支付页面
+    var pageAppendPay = {
+        route: 'append-pay',
+        classname: 'append-pay',
+        animate: 'pushInLeft',
+        view: function () {
+            var $page = this;
+            requirejs(['pageAppendPay'], function (viewData) {
+                $doc.trigger('spa:initpage', [$page, viewData])
+            })
+        }
+    };
+
+    //支付成功
+    var pagePaySuccess = {
+        route: 'paySuccess',
+        classname: 'pay-success',
+        animate: 'pushInLeft',
+        view: function () {
+            var $page = this;
+            requirejs(['pageSuccess'], function (viewData) {
+                $doc.trigger('spa:initpage', [$page, viewData])
+            });
+        }
+    };
+
+    //我的订单页
+    var pageMyOrder = {
+        route: 'myOrder(/:type)',
+        classname: 'my-order',
+        animate: 'pushInLeft',
+        view: function () {
+            var $page = this;
+            requirejs(['pageMyOrder'], function (viewData) {
+                $doc.trigger('spa:initpage', [$page, viewData])
+            });
+        }
+    };
+
+    var pageMyOrderDetail = {
+        route: 'OrderDetail/:id',
+        classname: 'my-order-detail',
+        animate: 'pushInLeft',
+        view: function () {
+            var $page = this;
+            requirejs(['pageMyOrderDetail'], function (viewData) {
+                $doc.trigger('spa:initpage', [$page, viewData])
+            });
+        }
+    };
+
+    //我的优惠券
+    var pageMyCoupon = {
+        route: 'myCoupon',
+        classname: 'my-coupon',
+        animate: 'pushInLeft',
+        view: function () {
+            var $page = this;
+            requirejs(['pageMyCoupon'], function (viewData) {
+                $doc.trigger('spa:initpage', [$page, viewData])
+            });
+        }
+    };
+
+    //用户服务协议
+    var pageAgreement = {
+        route: 'agreement',
+        classname: 'agreement',
+        animate: 'pushInLeft',
+        view: function () {
+            var $page = this;
+            requirejs(['pageAgreement'], function (viewData) {
+                $doc.trigger('spa:initpage', [$page, viewData])
+            });
+        }
+    };
+
+    //地址列表
+    var pageAddressList = {
+        route: 'addressList',
+        classname: 'address-list',
+        animate: 'pushInLeft',
+        view: function () {
+            var $page = this;
+            requirejs(['pageAddressList'], function (viewData) {
+                $doc.trigger('spa:initpage', [$page, viewData])
+            });
+        }
+    };
+
+    //地址添加
+    var pageAddressAdd = {
+        route: 'addressAdd',
+        classname: 'address-add',
+        animate: 'pushInLeft',
+        view: function () {
+            var $page = this;
+            requirejs(['pageAddressAdd'], function (viewData) {
+                $doc.trigger('spa:initpage', [$page, viewData])
+            });
+        }
+    };
+
+    //地址详情
+    var pageAddressDetail = {
+        route: 'addressDetail',
+        classname: 'address-detail',
+        animate: 'pushInLeft',
+        view: function () {
+            var $page = this;
+            requirejs(['pageAddressDetail'], function (viewData) {
+                $doc.trigger('spa:initpage', [$page, viewData])
+            });
+        }
+    };
+
+    //地址定位
+    var pageAddressPoisiton = {
+        route: 'addressPoisiton',
+        classname: 'address-poisition',
+        animate: 'pushInLeft',
+        view: function () {
+            var $page = this;
+            requirejs(['pageAddressPoisiton'], function (viewData) {
+                $doc.trigger('spa:initpage', [$page, viewData])
+            });
+        }
+    };
+
+    //招聘
+    var pageHire = {
+        route: 'hire',
+        classname: 'hire',
+        animate: 'pushInLeft',
+        view: function () {
+            var $page = this;
+            requirejs(['pageHire'], function (viewData) {
+                $doc.trigger('spa:initpage', [$page, viewData])
+            });
+        }
+    };
+
+    // 未上线
+    var pageComing = {
+        route: 'coming',
+        classname: 'coming',
+        animate: 'pushInLeft',
+        view: function () {
+            var $page = this;
+            requirejs(['pageComing'], function (viewData) {
+                $doc.trigger('spa:initpage', [$page, viewData])
+            });
+        }
+    };
+
+    // 活动
+    var pageActivityCat = {
+        route: 'activity-cat',
+        classname: 'activities-cat',
+        animate: 'slideInUp',
+        view: function () {
+            var $page = this;
+            requirejs(['pageActivityCat'], function (viewData) {
+                $doc.trigger('spa:initpage', [$page, viewData])
+            });
+        }
+    };
+
+    // 追加服务
+    var pageAppend = {
+        route: 'append',
+        classname: 'append',
+        animate: 'pushInLeft',
+        view: function () {
+            var $page = this;
+            requirejs(['pageAppend'], function (viewData) {
+                $doc.trigger('spa:initpage', [$page, viewData])
+            });
+        }
+    };
+
+    // 申请退款
+    var pageRefund = {
+        route: 'refund',
+        classname: 'refund',
+        animate: 'pushInLeft',
+        view: function () {
+            var $page = this;
+            requirejs(['pageRefund'], function (viewData) {
+                $doc.trigger('spa:initpage', [$page, viewData])
+            });
+        }
+    };
+
+    // 申请成功
+    var pageRefundSuccess = {
+        route: 'refund-success',
+        classname: 'refund-success',
+        animate: 'pushInLeft',
+        view: function () {
+            var $page = this;
+            requirejs(['pageRefundSuccess'], function (viewData) {
+                $doc.trigger('spa:initpage', [$page, viewData])
+            });
+        }
+    };
+
+    // 订单确认完成
+    var pageOrderDone = {
+        route: 'order-done',
+        classname: 'order-done',
+        animate: 'pushInLeft',
+        view: function () {
+            var $page = this;
+            requirejs(['pageOrderDone'], function (viewData) {
+                $doc.trigger('spa:initpage', [$page, viewData])
+            })
+        }
+    };
+
+    var pageBeautician = {
+        route: 'beautician',
+        classname: 'beautician',
+        animate: 'pushInLeft',
+        view: function () {
+            var $page = this;
+            requirejs(['pageBeautician'], function (viewData) {
+                $doc.trigger('spa:initpage', [$page, viewData]);
+            })
+        }
+    };
+
+    var pageBeauticianDetail = {
+        route: 'beautician-detail',
+        classname: 'beautician-detail',
+        animate: 'slideInUp',
+        view: function () {
+            var $page = this;
+            requirejs(['pageBeauticianDetail'], function (viewData) {
+                $doc.trigger('spa:initpage', [$page, viewData]);
+            })
+        }
+    };
+
+    var pageHelp = {
+        route: 'help',
+        classname: 'help',
+        animate: 'slideInUp',
+        view: function () {
+            var $page = this;
+            requirejs(['pageHelp'], function (viewData) {
+                $doc.trigger('spa:initpage', [$page, viewData]);
+            })
+        }
+    };
 
     var pageAbout = {
         route: 'about',
@@ -470,120 +482,120 @@ require(['$', 'spa', 'native', 'helper', 'ratchet', 'config', 'user'], function
         }
     };
 
-  $doc.trigger('spa:route', [pageHome, pageRecharge, pageAbout, pageHelp, pageMine, pageProduct, pageProductInfo, pageDesc, pagePlaceOrder, pagePicker, pagePay, pageAppendPay, pagePaySuccess, pageMyOrder, pageMyOrderDetail, pageMyCoupon, pageAgreement, pageAddressList, pageAddressAdd, pageAddressDetail, pageAddressPoisiton, pageHire, pageComing, pageActivityCat, pageAppend, pageRefund, pageRefundSuccess, pageOrderDone, pageBeautician, pageBeauticianDetail]);
+    $doc.trigger('spa:route', [pageHome, pageRecharge, pageAbout, pageHelp, pageMine,pageSecondary, pageProduct, pageProductInfo, pageDesc, pagePlaceOrder, pagePicker, pagePay, pageAppendPay, pagePaySuccess, pageMyOrder, pageMyOrderDetail, pageMyCoupon, pageAgreement, pageAddressList, pageAddressAdd, pageAddressDetail, pageAddressPoisiton, pageHire, pageComing, pageActivityCat, pageAppend, pageRefund, pageRefundSuccess, pageOrderDone, pageBeautician, pageBeauticianDetail]);
 
-  var panelAlert = {
-    id: 'simpleAlert',
-    classname: 'alert',
-    animate: 'zoomIn',
-    view: function () {
-      var $panel = this;
-      requirejs(['panelAlert'], function (viewData) {
-        $doc.trigger('spa:initpanel', [$panel, viewData]);
-      })
-    }
-  };
-
-  var panelActionSheet = {
-    id: 'actionSheet',
-    classname: 'action-sheet',
-    animate: 'overlayInUp',
-    view: function () {
-      var $panel = this;
-      requirejs(['panelActionSheet'], function (viewData) {
-        $doc.trigger('spa:initpanel', [$panel, viewData]);
-      })
-    }
-  };
-
-  var panelDataPicker = {
-    id: 'dataPicker',
-    classname: 'data-picker',
-    animate: 'overlayInUp',
-    view: function () {
-      var $panel = this;
-      requirejs(['panelDataPicker'], function (viewData) {
-        $doc.trigger('spa:initpanel', [$panel, viewData]);
-      })
-    }
-  };
-
-  var panelProductOption = {
-    id: 'productOption',
-    classname: 'product-option',
-    animate: 'overlayInUp',
-    view: function () {
-      var $panel = this;
-      requirejs(['panelProductOption'], function (viewData) {
-        $doc.trigger('spa:initpanel', [$panel, viewData]);
-      })
-    }
-  };
-
-  var panelPostReview = {
-    id: 'postReview',
-    classname: 'post-review',
-    animate: 'overlayInUp',
-    view: function () {
-      var $panel = this;
-      requirejs(['panelPostReview'], function (viewData) {
-        $doc.trigger('spa:initpanel', [$panel, viewData]);
-      })
-    }
-  };
-
-  var panelActivity = {
-    id: 'activity',
-    classname: 'activity',
-    animate: 'overlayInUp',
-    view: function () {
-      var $panel = this;
-      requirejs(['panelActivity'], function (viewData) {
-        $doc.trigger('spa:initpanel', [$panel, viewData]);
-      })
-    }
-  };
-
-  $doc.trigger('spa:panel', [panelAlert, panelActionSheet, panelDataPicker, panelProductOption, panelPostReview, panelActivity]);
-
-  $(function () {
-    if (config.isWX ) {
-      //微信 去掉顶部导航栏
-      var styles = ".content {top: 0;}";
-      helper.includeStyleElement(styles, 'ios7');
-
-      //微信过来的登录后再启动
-      user.getUserInfo(function() {
-        $doc.trigger('spa:boot');
-      });
-
-    } else if (config.isAndroid || config.isIOS) {
-      //注册事件
-      native.delegateBackButton(true);
-
-      //安卓返回按钮
-      $(document).on('tapBackButton', function () {
-        $.spa.getCurPage().trigger('tapBackButton');
-      });
-
-      //ios7特殊样式 全屏幕往下移动20px
-      helper.osProxy({
-        ios: function () {
-          var styles = ".bar-nav {height: 64px;padding-top: 20px;}\
+    var panelAlert = {
+        id: 'simpleAlert',
+        classname: 'alert',
+        animate: 'zoomIn',
+        view: function () {
+            var $panel = this;
+            requirejs(['panelAlert'], function (viewData) {
+                $doc.trigger('spa:initpanel', [$panel, viewData]);
+            })
+        }
+    };
+
+    var panelActionSheet = {
+        id: 'actionSheet',
+        classname: 'action-sheet',
+        animate: 'overlayInUp',
+        view: function () {
+            var $panel = this;
+            requirejs(['panelActionSheet'], function (viewData) {
+                $doc.trigger('spa:initpanel', [$panel, viewData]);
+            })
+        }
+    };
+
+    var panelDataPicker = {
+        id: 'dataPicker',
+        classname: 'data-picker',
+        animate: 'overlayInUp',
+        view: function () {
+            var $panel = this;
+            requirejs(['panelDataPicker'], function (viewData) {
+                $doc.trigger('spa:initpanel', [$panel, viewData]);
+            })
+        }
+    };
+
+    var panelProductOption = {
+        id: 'productOption',
+        classname: 'product-option',
+        animate: 'overlayInUp',
+        view: function () {
+            var $panel = this;
+            requirejs(['panelProductOption'], function (viewData) {
+                $doc.trigger('spa:initpanel', [$panel, viewData]);
+            })
+        }
+    };
+
+    var panelPostReview = {
+        id: 'postReview',
+        classname: 'post-review',
+        animate: 'overlayInUp',
+        view: function () {
+            var $panel = this;
+            requirejs(['panelPostReview'], function (viewData) {
+                $doc.trigger('spa:initpanel', [$panel, viewData]);
+            })
+        }
+    };
+
+    var panelActivity = {
+        id: 'activity',
+        classname: 'activity',
+        animate: 'overlayInUp',
+        view: function () {
+            var $panel = this;
+            requirejs(['panelActivity'], function (viewData) {
+                $doc.trigger('spa:initpanel', [$panel, viewData]);
+            })
+        }
+    };
+
+    $doc.trigger('spa:panel', [panelAlert, panelActionSheet, panelDataPicker, panelProductOption, panelPostReview, panelActivity]);
+
+    $(function () {
+        if (config.isWX) {
+            //微信 去掉顶部导航栏
+            var styles = ".content {top: 0;}";
+            helper.includeStyleElement(styles, 'ios7');
+
+            //微信过来的登录后再启动
+            user.getUserInfo(function () {
+                $doc.trigger('spa:boot');
+            });
+
+        } else if (config.isAndroid || config.isIOS) {
+            //注册事件
+            native.delegateBackButton(true);
+
+            //安卓返回按钮
+            $(document).on('tapBackButton', function () {
+                $.spa.getCurPage().trigger('tapBackButton');
+            });
+
+            //ios7特殊样式 全屏幕往下移动20px
+            helper.osProxy({
+                ios: function () {
+                    var styles = ".bar-nav {height: 64px;padding-top: 20px;}\
           .content {top: 64px;}\
           .bar-nav .left-button {padding-top: 20px;}\
           .bar-nav .right-button {padding-top: 20px;}";
-          helper.includeStyleElement(styles, 'ios7');
+                    helper.includeStyleElement(styles, 'ios7');
+                }
+            });
+
+            $doc.trigger('spa:boot');
+        } else if (config.isChubao) {
+            var styles = ".content {top: 0;}";
+            helper.includeStyleElement(styles, 'ios7');
+            $doc.trigger('spa:boot');
+        } else {
+            $doc.trigger('spa:boot');
         }
-      });
-
-      $doc.trigger('spa:boot');
-    } else if (config.isChubao) {
-      var styles = ".content {top: 0;}";
-      helper.includeStyleElement(styles, 'ios7');
-      $doc.trigger('spa:boot');
-    } else {
-      $doc.trigger('spa:boot');
-    }
-  })
+    })
 })

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

@@ -14,6 +14,7 @@ define(['base', '$', 'native', 'api', 'order', 'config', 'address'], function(ba
     this.mobile = '';
     this.balance = 0;
     this.info = {};
+    console.log(this.info);
     this.orders = {
       1: {
         data: [],

+ 7 - 4
www/webapp/o2o/js/page/home.js

@@ -66,9 +66,9 @@ define(['$', 'template', 'IScroll', 'product', 'user', 'native', 'config', 'addr
                 });
             }, $view);
             /* 点击产品列表的某一项 */
-            $.newTouch('.btn-product', function (event) {
+            $.newTouch('.btn-appliances', function (event) {
                 event.preventDefault();
-                var type = parseInt($(this).attr('data-product-type'));
+                var type = 4;
                 /*
                  * 这个写法是SPA路由框架规定的。
                  * $(selector).trigger(event, params)是jQuery的:触发被选元素上的指定事件
@@ -105,10 +105,13 @@ define(['$', 'template', 'IScroll', 'product', 'user', 'native', 'config', 'addr
              }, $view);  */
 
             // 点击……不知如何说明……
-            $.newTouch('.btn-action-my-order', function (event) {
+            $.newTouch('.btn-secondary', function (event) {
                 event.preventDefault();
                 $doc.trigger('spa:navigate', {
-                    hash: ''
+                    hash: 'secondary',
+                    pushData: {
+                        needReset: true
+                    }
                 });
             }, $view);
 

+ 19 - 9
www/webapp/o2o/js/page/placeOrder.js

@@ -37,13 +37,14 @@ define(['$', 'template', 'order', 'native', 'helper', 'user', 'api', 'config', '
     }
 
     /* 返回上一级 */
-    function back(event) {
-        event.preventDefault();
+    function back(backHash) {
+        //event.preventDefault();
+
         $(document).trigger('spa:navigate', {
-            hash: '',
-            pushData: {
-                dontNeedReload: true
-            }
+            hash: backHash,
+            //pushData: {
+            //    dontNeedReload: true
+            //}
         });
     }
 
@@ -231,13 +232,22 @@ define(['$', 'template', 'order', 'native', 'helper', 'user', 'api', 'config', '
 
             /* 三个返回操作 */
             $.newTouch('.back-button', function (event) {
-                back.call(this, event);
+                event.preventDefault();
+
+                var pushData = pageData.pushData;
+                back.call(this, pushData['backHash']);
             }, $view);
             $view.on('tapBackButton', function (event) {
-                back.call(this, event);
+                event.preventDefault();
+
+                var pushData = pageData.pushData;
+                back.call(this, pushData['backHash']);
             });
             $view.on('swipeRight', function (event) {
-                back.call(this, event);
+                event.preventDefault();
+
+                var pushData = pageData.pushData;
+                back.call(this, pushData['backHash']);
             });
 
             /* 点击查看详情。跳转到product页面 */

+ 116 - 0
www/webapp/o2o/js/page/secondary.js

@@ -0,0 +1,116 @@
+define(['$', 'template', 'IScroll', 'user', 'product', 'native', 'config', 'address'], function ($, template, IScroll, user, product, native, config, address) {
+
+    function back(event) {
+        event.preventDefault();
+        $(document).trigger('spa:navigate', {
+            hash: '',
+            pushData: {
+                dontNeedReload: true
+            }
+        });
+    }
+
+    /*
+     * 模块结构:5部分。
+     * title:题目。
+     * content:不知道是什么,似乎从没用过。
+     * 以下可以当作生命周期回调,虽然并不清楚是什么时候回调的……
+     * init:根据上一个页面传来的pageData初始化本页数据,生成页面,绑定事件。
+     * beforeopen:接收上一个页面传来的数据、有需要的话重置数据
+     * afteropen:做一些网络请求。
+     * beforeclose:
+     */
+    return {
+        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);
+            });
+
+            $.newTouch('.back-button', function (event) {
+                back.call(this, event);
+            }, $view);
+
+            $view.on('tapBackButton', function (event) {
+                back.call(this, event);
+            });
+
+
+            /* 点击产品列表的某一项 */
+            $.newTouch('.btn-product', function (event) {
+                event.preventDefault();
+                var type = parseInt($(this).attr('data-product-type'));
+                /*
+                 * 这个写法是SPA路由框架规定的。
+                 * $(selector).trigger(event, params)是jQuery的:触发被选元素上的指定事件
+                 */
+                $doc.trigger('spa:navigate', {
+                    hash: 'placeOrder',
+                    pushData: {
+                        product: product.allList[type - 1],
+                        needReset: true
+                    }
+                });
+            }, $view);
+            /*首页*/
+            $.newTouch('.btn-action-my-order', function () {
+                event.preventDefault();
+                $doc.trigger('spa:navigate', {
+                    hash: '',
+                    pushData: {
+                        needReset: true
+                    }
+                });
+            },$view);
+            /*个人中心*/
+            $.newTouch('.btn-action-coupon', function () {
+                event.preventDefault();
+                $doc.trigger('spa:navigate', {
+                    hash: 'mine',
+                    pushData: {
+                        needReset: true
+                    }
+                });
+            },$view);
+            /* 不知道什么意思。*/
+            dtd.resolve();
+        },
+        beforeopen: function (pageData, dtd) {
+            dtd.resolve();
+        },
+        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
+                 });*/
+                var tpl = template('secondary/index', {showNavBar: !config.isWX});
+                $('.spa-page-body', $view).html(tpl);
+                setTimeout(function () {
+                    pageData.scroll = new IScroll('#secondaryScroll');
+                }, 500);
+            }
+
+            /* 又是这个。不知道什么玩意…… */
+            dtd.resolve();
+        },
+        beforeclose: function (pageData, dtd) {
+            dtd.resolve();
+        }
+    }
+})

+ 9 - 8
www/webapp/o2o/tpl/desc/index.html

@@ -1,15 +1,16 @@
 {{ if showNavBar }}
 <header class="bar bar-nav">
-	<a class="left-button back-button">
-		<div class="icon icon-left-nav"></div>
-	</a>
-	<h1 class="title">服务介绍</h1>
+    <a class="left-button back-button">
+        <div class="icon icon-left-nav"></div>
+    </a>
+
+    <h1 class="title">服务介绍</h1>
 </header>
 {{ /if }}
 
 <div class="content" id="descScroll">
-	<div class="scroller">
-		<div>
-			
-	</div>
+    <div class="scroller">
+        <div></div>
+
+    </div>
 </div>

+ 94 - 15
www/webapp/o2o/tpl/home/index.html

@@ -10,13 +10,14 @@
     <h1 class="title">壹管家</h1>
 </header>
 {{ /if }}
+<!--
 <div class="content">
     <div class="box-container">
         <div class="box-container box box-vertical">
             <div id="homeScroll" class="scroll-container box-flex-1">
                 <div class="scroller">
                     <div class="home-content">
-                        <!-- Swiper -->
+                        &lt;!&ndash; Swiper &ndash;&gt;
                         <div class="swiper-container swiper-container-horizontal">
                             <div class="swiper-wrapper"
                                  style="transform: translate3d(0px, 0px, 0px); transition-duration: 0ms;">
@@ -25,12 +26,12 @@
                                 <div class="swiper-slide swiper-slide-next btn-banner-coupon"><img
                                         src="http://odulvej8l.bkt.clouddn.com/test_banner_21.png" alt=""></div>
                             </div>
-                            <!-- Add Pagination -->
+                            &lt;!&ndash; Add Pagination &ndash;&gt;
                             <div class="swiper-pagination swiper-pagination-clickable swiper-pagination-bullets"><span
                                     class="swiper-pagination-bullet swiper-pagination-bullet-active"></span><span
                                     class="swiper-pagination-bullet"></span></div>
                         </div>
-                        <!--<div class="box main-service-box width-percent-100">
+                        &lt;!&ndash;<div class="box main-service-box width-percent-100">
                             <div class="title-column-left box-container">
                                 <div class="title-container-square">
                                     <div class="the-main-figure">
@@ -38,39 +39,39 @@
                                     </div>
                                 </div>
                             </div>
-                        </div>-->
-                        <!-- 隐藏标签
+                        </div>&ndash;&gt;
+                        &lt;!&ndash; 隐藏标签
                         <div class="global-msg" style="display: flex;justify-content: space-between; padding: 15px;">
                             <div class="width-percent-25 btn-product-group global-msg-active" data-group-index="0">家庭保洁</div>
                             <div class="width-percent-25 btn-product-group" data-group-index="1">月子服务</div>
                             <div class="width-percent-25 btn-product-group" data-group-index="2">保姆服务</div>
                             <div class="width-percent-25 btn-product-group" data-group-index="3">家庭产品</div>
                         </div>
-                        -->
+                        &ndash;&gt;
                         <div>
                             <ul class="products-list" id="list0">
                                 <li class="btn-product" style="border-top: 1px solid rgb(241, 241, 241); border-right: 1px solid rgb(241, 241, 241); border-bottom: 1px solid rgb(241, 241, 241);width: 49%; text-align: center; padding-top: 10px; padding-bottom: 10px" data-product-type="1">
-                                    <!--<img src="http://oduj3utzz.bkt.clouddn.com/Home_btn_clean%20%281%29.png" width="50px" height="50px">-->
+                                    &lt;!&ndash;<img src="http://oduj3utzz.bkt.clouddn.com/Home_btn_clean%20%281%29.png" width="50px" height="50px">&ndash;&gt;
                                     <img src="http://odulvej8l.bkt.clouddn.com/%E6%97%A5%E5%B8%B8%E6%B8%85%E6%B4%81icon_1.png" width="50px" height="50px">
                                     <div class="extra-service-name">日常清洁</div>
                                 </li>
                                 <li class="btn-product" style="border-top: 1px solid rgb(241, 241, 241); border-bottom: 1px solid rgb(241, 241, 241);width: 49%; text-align: center; padding-top: 10px; padding-bottom: 10px" data-product-type="2">
-                                    <!--<img src="http://oduj3utzz.bkt.clouddn.com/Home_btn_clean%20%282%29.png"  width="50px" height="50px">-->
+                                    &lt;!&ndash;<img src="http://oduj3utzz.bkt.clouddn.com/Home_btn_clean%20%282%29.png"  width="50px" height="50px">&ndash;&gt;
                                     <img src="http://odulvej8l.bkt.clouddn.com/%E6%B7%B1%E5%BA%A6%E6%B8%85%E6%B4%81icon_1.png"  width="50px" height="50px">
                                     <div class="extra-service-name">深度清洁</div>
                                 </li>
                                 <li class="btn-product" style="border-right: 1px solid rgb(241, 241, 241);border-bottom: 1px solid rgb(241, 241, 241);width: 49%; text-align: center; padding-top: 10px; padding-bottom: 10px" data-product-type="3">
-                                    <!--<img src="http://oduj3utzz.bkt.clouddn.com/Home_btn_clean%20%283%29.png"  width="50px" height="50px">-->
+                                    &lt;!&ndash;<img src="http://oduj3utzz.bkt.clouddn.com/Home_btn_clean%20%283%29.png"  width="50px" height="50px">&ndash;&gt;
                                     <img src="http://odulvej8l.bkt.clouddn.com/%E9%99%A4%E8%9E%A8%E6%9D%80%E8%8F%8Cicon_01.png"  width="50px" height="50px">
                                     <div class="extra-service-name">除螨杀菌</div>
                                 </li>
                                 <li class="btn-product" style="border-bottom: 1px solid rgb(241, 241, 241);width: 49%; text-align: center; padding-top: 10px; padding-bottom: 10px" data-product-type="4">
-                                    <!--<img src="http://oduj3utzz.bkt.clouddn.com/Home_btn_clean%20%287%29.png"  width="50px" height="50px">-->
+                                    &lt;!&ndash;<img src="http://oduj3utzz.bkt.clouddn.com/Home_btn_clean%20%287%29.png"  width="50px" height="50px">&ndash;&gt;
                                     <img src="http://odulvej8l.bkt.clouddn.com/%E5%AE%B6%E7%94%B5%E6%B8%85%E6%B4%97icon_01.png"  width="50px" height="50px">
                                     <div class="extra-service-name">家电清洗</div>
                                 </li>
                                 <li class="btn-product" style="border-right: 1px solid rgb(241, 241, 241);border-bottom: 1px solid rgb(241, 241, 241);width: 49%; text-align: center; padding-top: 10px; padding-bottom: 10px" data-product-type="5">
-                                    <!--<img src="http://oduj3utzz.bkt.clouddn.com/Home_btn_clean%20%286%29.png"  width="50px" height="50px">-->
+                                    &lt;!&ndash;<img src="http://oduj3utzz.bkt.clouddn.com/Home_btn_clean%20%286%29.png"  width="50px" height="50px">&ndash;&gt;
                                     <img src="http://odulvej8l.bkt.clouddn.com/%E6%96%B0%E5%B1%85%E5%BC%80%E8%8D%92icon_01.png"  width="50px" height="50px">
                                     <div class="extra-service-name">新居开荒</div>
                                 </li>
@@ -87,14 +88,14 @@
                                 </li>
                             </ul>
                         </div>
-                        <!--<div style="width: 100%; height: 80px"></div>-->
+                        &lt;!&ndash;<div style="width: 100%; height: 80px"></div>&ndash;&gt;
                         <div style="width: 100%;padding-bottom: 14%"></div>
                     </div>
                 </div>
             </div>
             <div class="prevent-scroll">
                 <div class="box my-action">
-                    <!--首页-->
+                    &lt;!&ndash;首页&ndash;&gt;
                     <div class="width-percent-33">
                         <div class="title-container-square">
                             <a class="btn-home-action btn-action-my-order">
@@ -103,7 +104,7 @@
                             </a>
                         </div>
                     </div>
-                    <!--LOGO-->
+                    &lt;!&ndash;LOGO&ndash;&gt;
                     <div class="width-percent-33">
                         <div class="title-container-square">
                             <a class="btn-home-action btn-action-logo" href="weixin://contacts/profile/honghaitzz">
@@ -111,7 +112,7 @@
                             </a>
                         </div>
                     </div>
-                    <!--我的-->
+                    &lt;!&ndash;我的&ndash;&gt;
                     <div class="width-percent-33">
                         <div class="title-container-square">
                             <a class="btn-home-action btn-action-coupon">
@@ -124,4 +125,82 @@
             </div>
         </div>
     </div>
+</div>-->
+
+
+<div class="content">
+    <div class="box-container">
+        <div class="box-container box box-vertical">
+            <div id="homeScroll" class="scroll-container box-flex-1">
+                <div class="scroller">
+                    <div class="home-content">
+                        <!-- Swiper -->
+                        <div class="swiper-container">
+                            <div class="swiper-wrapper">
+                                <div class="swiper-slide">
+                                    <img src="http://odulvej8l.bkt.clouddn.com/%E7%AE%A1%E5%AE%B6.jpg" alt="">
+                                </div>
+                                <div class="swiper-slide btn-banner-recharge">
+                                    <img src="http://odulvej8l.bkt.clouddn.com/banner-2.jpg" alt="">
+                                </div>
+                                <div class="swiper-slide btn-banner-coupon">
+                                    <img src="http://odulvej8l.bkt.clouddn.com/%E7%AE%A1%E5%AE%B6-2.jpg" alt="">
+                                </div>
+                            </div>
+                            <!-- 如果需要分页器 -->
+                            <div class="swiper-pagination" style="bottom: 5px"></div>
+                        </div>
+                        <img class="home-remy" src="http://odulvej8l.bkt.clouddn.com/%E5%9B%BE%E6%A0%87-01.jpg" alt="">
+
+                        <div class="home-box">
+                            <div class="width-percent-50 box-align-center">
+                                <img class="btn-secondary" src="http://odulvej8l.bkt.clouddn.com/4-1-01.png" alt="">
+                            </div>
+                            <div class="width-percent-50 box-align-center ">
+                                <img class="btn-appliances" data-product-type="4" src="http://odulvej8l.bkt.clouddn.com/4-2-01.png" alt="">
+                            </div>
+                            <div class="width-percent-50 box-align-center">
+                                <img src="http://odulvej8l.bkt.clouddn.com/4-3-01.png" alt="">
+                            </div>
+                            <div class="width-percent-50 box-align-center">
+                                <img src="http://odulvej8l.bkt.clouddn.com/4-4-01.png" alt="">
+                            </div>
+                        </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" href="weixin://contacts/profile/honghaitzz">
+                                    <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>
+    </div>
 </div>

+ 194 - 0
www/webapp/o2o/tpl/secondary/index.html

@@ -0,0 +1,194 @@
+{{ if showNavBar }}
+<header class="bar bar-nav">
+    <a class="left-button back-button">
+        <div class="icon icon-left-nav"></div>
+    </a>
+    <h1 class="title">家庭保洁</h1>
+</header>
+{{ /if }}
+
+<div class="content">
+    <div class="box-container">
+        <div class="box-container box box-vertical">
+            <div id="secondaryScroll" class="scroll-container box-flex-1">
+                <div class="scroller">
+                    <div class="secondary-content">
+                        <div class="secondary-head">
+                            <img src="http://odulvej8l.bkt.clouddn.com/banner-01.jpg" alt="">
+                            <img src="http://odulvej8l.bkt.clouddn.com/%E4%BA%8C%E7%BA%A7%E5%85%83%E7%B4%A0-01.png" alt="">
+                        </div>
+                        <div class="secondary-list">
+                            <ul class="products-list" id="list0">
+                                <li class="btn-product" data-product-type="1">
+                                    <!--<img src="http://oduj3utzz.bkt.clouddn.com/Home_btn_clean%20%281%29.png" width="50px" height="50px">-->
+                                    <img src="http://odulvej8l.bkt.clouddn.com/%E6%97%A5%E5%B8%B8%E6%B8%85%E6%B4%81icon_1.png">
+
+                                    <div class="extra-service-name">日常清洁</div>
+                                </li>
+                                <li class="Long-term-set">
+                                    <!--<img src="http://oduj3utzz.bkt.clouddn.com/Home_btn_clean%20%287%29.png"  width="50px" height="50px">-->
+                                    <img src="http://odulvej8l.bkt.clouddn.com/%E9%95%BF%E6%9C%9F%E5%AE%9Aicon-01-01-01.png">
+
+                                    <div class="extra-service-name">长期订</div>
+                                </li>
+                                <li class="btn-product" data-product-type="2">
+                                    <!--<img src="http://oduj3utzz.bkt.clouddn.com/Home_btn_clean%20%282%29.png"  width="50px" height="50px">-->
+                                    <img src="http://odulvej8l.bkt.clouddn.com/%E6%B7%B1%E5%BA%A6%E6%B8%85%E6%B4%81icon_1.png">
+
+                                    <div class="extra-service-name">深度清洁</div>
+                                </li>
+                                <li class="btn-product" data-product-type="3">
+                                    <!--<img src="http://oduj3utzz.bkt.clouddn.com/Home_btn_clean%20%283%29.png"  width="50px" height="50px">-->
+                                    <img src="http://odulvej8l.bkt.clouddn.com/%E9%99%A4%E8%9E%A8%E6%9D%80%E8%8F%8Cicon_01.png">
+
+                                    <div class="extra-service-name">除螨杀菌</div>
+                                </li>
+
+                                <li class="btn-product" data-product-type="5">
+                                    <!--<img src="http://oduj3utzz.bkt.clouddn.com/Home_btn_clean%20%286%29.png"  width="50px" height="50px">-->
+                                    <img src="http://odulvej8l.bkt.clouddn.com/%E6%96%B0%E5%B1%85%E5%BC%80%E8%8D%92icon_01.png">
+
+                                    <div class="extra-service-name">新居开荒</div>
+                                </li>
+                                <li class="btn-product" data-product-type="6">
+                                    <img src="http://odulvej8l.bkt.clouddn.com/%E6%93%A6%E7%8E%BB%E7%92%83icon-003.png">
+
+                                    <div class="extra-service-name">擦玻璃</div>
+                                </li>
+                                <li class="btn-product" data-product-type="7">
+                                    <img src="http://odulvej8l.bkt.clouddn.com/%E6%AF%8D%E5%A9%B4icon-002.png">
+
+                                    <div class="extra-service-name">母婴房清洁</div>
+                                </li>
+                                <li class="btn-product" data-product-type="8">
+                                    <img src="http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BFicon-001.png">
+
+                                    <div class="extra-service-name">租房大扫除</div>
+                                </li>
+                            </ul>
+                        </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"
+                                   href="weixin://contacts/profile/honghaitzz">
+                                    <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>
+    </div>
+</div>
+
+
+<!--
+<div id="secondaryScroll" class="scroll-container box-flex-1">
+    <div class="scroller">
+        <div class="secondary-content">
+            <div class="secondary-head">
+                <img src="../images/banner-01.jpg" alt="">
+                <img src="../images/二级元素-01.png" alt="">
+            </div>
+            <div class="secondary-list">
+                <ul class="products-list" id="list0">
+                    <li class="btn-product" data-product-type="1">
+                        <img src="http://odulvej8l.bkt.clouddn.com/%E6%97%A5%E5%B8%B8%E6%B8%85%E6%B4%81icon_1.png">
+
+                        <div class="extra-service-name">日常清洁</div>
+                    </li>
+                    <li class="btn-product" data-product-type="2">
+                        <img src="http://odulvej8l.bkt.clouddn.com/%E6%B7%B1%E5%BA%A6%E6%B8%85%E6%B4%81icon_1.png">
+
+                        <div class="extra-service-name">深度清洁</div>
+                    </li>
+                    <li class="btn-product" data-product-type="3">
+                        <img src="http://odulvej8l.bkt.clouddn.com/%E9%99%A4%E8%9E%A8%E6%9D%80%E8%8F%8Cicon_01.png">
+
+                        <div class="extra-service-name">除螨杀菌</div>
+                    </li>
+                    <li class="btn-product" data-product-type="4">
+                        <img src="http://odulvej8l.bkt.clouddn.com/%E5%AE%B6%E7%94%B5%E6%B8%85%E6%B4%97icon_01.png">
+
+                        <div class="extra-service-name">家电清洗</div>
+                    </li>
+                    <li class="btn-product" data-product-type="5">
+                        <img src="http://odulvej8l.bkt.clouddn.com/%E6%96%B0%E5%B1%85%E5%BC%80%E8%8D%92icon_01.png">
+
+                        <div class="extra-service-name">新居开荒</div>
+                    </li>
+                    <li class="btn-product" data-product-type="6">
+                        <img src="http://odulvej8l.bkt.clouddn.com/%E6%93%A6%E7%8E%BB%E7%92%83icon-003.png">
+
+                        <div class="extra-service-name">擦玻璃</div>
+                    </li>
+                    <li class="btn-product" data-product-type="7">
+                        <img src="http://odulvej8l.bkt.clouddn.com/%E6%AF%8D%E5%A9%B4icon-002.png">
+
+                        <div class="extra-service-name">母婴房清洁</div>
+                    </li>
+                    <li class="btn-product" data-product-type="8">
+                        <img src="http://odulvej8l.bkt.clouddn.com/%E7%A7%9F%E6%88%BFicon-001.png">
+
+                        <div class="extra-service-name">租房大扫除</div>
+                    </li>
+                </ul>
+            </div>
+            <div class="prevent-scroll">
+                <div class="box my-action">
+                    &lt;!&ndash;首页&ndash;&gt;
+                    <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>
+                    &lt;!&ndash;LOGO&ndash;&gt;
+                    <div class="width-percent-33">
+                        <div class="title-container-square">
+                            <a class="btn-home-action btn-action-logo"
+                               href="weixin://contacts/profile/honghaitzz">
+                                <div class="logo logo-my-logo"></div>
+                            </a>
+                        </div>
+                    </div>
+                    &lt;!&ndash;我的&ndash;&gt;
+                    <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>
+</div>-->

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