jmx 9 роки тому
батько
коміт
10e3347d76

Різницю між файлами не показано, бо вона завелика
+ 0 - 0
www/webapp/o2o/dist/css/main.css


Різницю між файлами не показано, бо вона завелика
+ 0 - 1
www/webapp/o2o/dist/js/build/template.js


Різницю між файлами не показано, бо вона завелика
+ 8 - 8
www/webapp/o2o/dist/js/build/template/template.js


Різницю між файлами не показано, бо вона завелика
+ 0 - 1
www/webapp/o2o/dist/js/main.js


Різницю між файлами не показано, бо вона завелика
+ 0 - 0
www/webapp/o2o/dist/js/model/product.js


Різницю між файлами не показано, бо вона завелика
+ 0 - 0
www/webapp/o2o/dist/js/page/home.js


Різницю між файлами не показано, бо вона завелика
+ 0 - 0
www/webapp/o2o/dist/js/page/placeOrder.js


Різницю між файлами не показано, бо вона завелика
+ 0 - 0
www/webapp/o2o/dist/js/page/product.js


Різницю між файлами не показано, бо вона завелика
+ 1 - 1
www/webapp/o2o/js/build/.cache/home/index.js


Різницю між файлами не показано, бо вона завелика
+ 2 - 2
www/webapp/o2o/js/build/template.js


+ 252 - 747
www/webapp/o2o/js/model/product.js

@@ -8,825 +8,330 @@ define(['base', '$', 'api'], function (base, $, api) {
         }
         Product.instance = this;
         this.storagePrefix = 'product_';//存储前缀
-        this.products = [];            //产品
-        this.productDic = {};          //商品对象
-        this.extraProductDic = {};     //商品对象
-        this.productGroup = {     //商品分组
-            1: [],            //洗澡-钟点工
-            2: [],            //剪毛-除螨杀菌
-            3: [],            //美容-深度清洁
-            4: [],            //洁牙-住家保姆
-            5: [],            //SPA-日常清洁
-            6: [],            //训犬-育儿嫂
-            7: [],            //断尾-月子套餐
-            8: [],             //碳酸浴-金牌月嫂
-            9: []             //驱虫-催乳服务
-        };
-        this.extraProductGroup = {     //商品分组
-            1: [],            //洗澡-钟点工
-            2: [],            //剪毛-除螨杀菌
-            3: [],            //美容-深度清洁
-            4: [],            //洁牙-住家保姆
-            5: [],            //SPA-日常清洁
-            6: [],            //训犬-育儿嫂
-            7: [],            //断尾-月子套餐
-            8: [],             //碳酸浴-金牌月嫂
-            9: []             //驱虫-催乳服务
-        };
-        this.precedence = 40;   // 加急
-        this.extraService = [];//额外的服务
-        this.offDay = [];//休息日
 
         /* 我新加的 */
-        this.list = [
+        this.allList = [
             {
-                id: '57e0dffc9f5160dd048b4568',
-                name: '日常清洁',
-                type: 1,
-                desc: [
+                id: "57e0dffc9f5160dd048b4568",
+                name: "日常清洁",
+                imgSrc:'http://odulvej8l.bkt.clouddn.com/image_richangqingjie.png',
+                desc: [{content: "http://odqeoyzxd.bkt.clouddn.com/image/image_rc.jpg"}, {content: "日常清洁"}],
+                status: 1,
+                is_extra: 0,
+                order: 0,
+                type: "1",
+                type_str: "日常清洁",
+                extra: [
                     {
-                        "type": 1,
-                        "content": "http://odqeoyzxd.bkt.clouddn.com/image/image_cm.jpg"
+                        type: "一室一卫",
+                        price: "98"
                     },
                     {
-                        "type": 2,
-                        "content": "日常清洁"
-                    }
-                ],
-                extra: [
-                    {
-                        price: 98,
-                        type: '一室一卫'
+                        type: "两室一卫",
+                        price: "118"
                     },
                     {
-                        price: 118,
-                        type: '一室两卫'
+                        type: "两室两卫",
+                        price: "138"
                     },
                     {
-                        price: 138,
-                        type: '两室两卫'
+                        type: "三室两卫",
+                        price: "158"
                     },
                     {
-                        price: 158,
-                        type: '三室两卫'
+                        type: "四室三卫",
+                        price: "228"
                     },
                     {
-                        price: 228,
-                        type: '四室三卫'
+                        type: "200-250平米",
+                        price: "298"
                     },
                     {
-                        price: 298,
-                        type: '200-250平'
+                        type: "200-300平米",
+                        price: "398"
                     },
                     {
-                        price: 398,
-                        type: '250-300平'
+                        type: "三层别墅",
+                        price: "498"
                     },
                     {
-                        price: 498,
-                        type: '三层别墅'
+                        type: "四层别墅",
+                        price: "598"
+                    }
+                ],
+                action_user: "",
+                action_time: "",
+                action_log: "",
+                pics: [
+                    {
+                        url: "http://7oxep6.com2.z0.glb.clouddn.com/2e14c327787741474355175085.jpg",
+                        width: 537,
+                        height: 537
                     },
                     {
-                        price: 598,
-                        type: '四层别墅'
+                        url: "http://oduj3utzz.bkt.clouddn.com/182da565a39c71475912209289.jpg",
+                        width: 720,
+                        height: 1165
                     },
                     {
-                        price: 2000,
-                        type: '其他'
+                        url: "http://oduj3utzz.bkt.clouddn.com/ada69b8adb17b1475912214579.png",
+                        width: 720,
+                        height: 1129
                     }
                 ]
             },
             {
-                id: '57e0e0189f5160dc048b4568',
-                name: '深度清洁',
-                type: 2,
-                desc: [
+                id: "57e0e0189f5160dc048b4568",
+                name: "深度清洁",
+                imgSrc: 'http://odulvej8l.bkt.clouddn.com/image_shengduqingjie.png',
+                desc: [{content: "http://odqeoyzxd.bkt.clouddn.com/image/image_sd.jpg"}, {content: "深度清洁"}],
+                status: 1,
+                is_extra: 0,
+                order: 0,
+                type: "2",
+                type_str: "深度清洁",
+                extra: [
+                    {
+                        type: "卧室清洁",
+                        price: "188"
+                    },
+                    {
+                        type: "客厅清洁",
+                        price: "288"
+                    },
                     {
-                        "type": 1,
-                        "content": "http://odqeoyzxd.bkt.clouddn.com/image/image_cm.jpg"
+                        type: "厨房清洁",
+                        price: "388"
                     },
                     {
-                        "type": 2,
-                        "content": "深度清洁"
+                        type: "卫生间清洁",
+                        price: "188"
                     }
                 ],
-                extra: [
+                action_user: "",
+                action_time: "",
+                action_log: "",
+                pics: [
+                    {
+                        url: "http://oduj3utzz.bkt.clouddn.com/e4c29bbe45c911475913783707.jpg",
+                        width: 658,
+                        height: 663
+                    },
                     {
-                        price: 388,
-                        type: '厨房清洁'
+                        url: "http://oduj3utzz.bkt.clouddn.com/2aa238fb222661475913799166.jpg",
+                        width: 720,
+                        height: 1165
                     },
                     {
-                        price: 288,
-                        type: '客厅清洁'
+                        url: "http://oduj3utzz.bkt.clouddn.com/e295c92da2e7c1475913803198.png",
+                        width: 720,
+                        height: 1129
                     },
                     {
-                        price: 188,
-                        type: '卧室清洁'
+                        url: "http://oduj3utzz.bkt.clouddn.com/363f18ed617211475913944488.jpg",
+                        width: 720,
+                        height: 1246
                     },
                     {
-                        price: 188,
-                        type: '卫生间清洁'
+                        url: "http://oduj3utzz.bkt.clouddn.com/64a1375694e091475913947183.png",
+                        width: 720,
+                        height: 715
                     },
                     {
-                        price: 2000,
-                        type: '其他'
+                        url: "http://oduj3utzz.bkt.clouddn.com/8cf32629eece91475913957779.png",
+                        width: 720,
+                        height: 674
+                    },
+                    {
+                        url: "http://oduj3utzz.bkt.clouddn.com/0ef470cf13ea51475914131334.jpg",
+                        width: 720,
+                        height: 786
                     }
                 ]
             },
             {
-                id: '57e0e0369f5160b1048b456b',
-                name: '除螨杀菌',
-                type: 3,
-                desc: [
+                id: "57e0e0369f5160b1048b456b",
+                name: "除螨杀菌",
+                imgSrc:'http://odulvej8l.bkt.clouddn.com/image_chumanshajun.png',
+                desc: [{content: 'http://odqeoyzxd.bkt.clouddn.com/image/image_etsj.jpg'}, {content: "除螨杀菌"}],
+                status: 1,
+                is_extra: 0,
+                order: 0,
+                type: "3",
+                type_str: "除螨杀菌",
+                extra: [
+                    {
+                        type: "儿童床",
+                        price: "80"
+                    },
+                    {
+                        type: "布艺窗帘",
+                        price: "100"
+                    },
                     {
-                        "type": 1,
-                        "content": "http://odqeoyzxd.bkt.clouddn.com/image/image_cm.jpg"
+                        type: "整床除螨",
+                        price: "180"
                     },
                     {
-                        "type": 2,
-                        "content": "除螨杀菌"
+                        type: "整套布艺沙发",
+                        price: "160"
                     }
                 ],
-                extra: [
+                action_user: "",
+                action_time: "",
+                action_log: "",
+                pics: [
                     {
-                        price: 80,
-                        type: '儿童床'
+                        url: "http://oduj3utzz.bkt.clouddn.com/d25802d7a41971475908064272.jpg",
+                        width: 658,
+                        height: 663
                     },
                     {
-                        price: 160,
-                        type: '整套布艺沙发'
+                        url: "http://oduj3utzz.bkt.clouddn.com/d436ec433239e1475914353101.png",
+                        width: 720,
+                        height: 1129
                     },
                     {
-                        price: 100,
-                        type: '布艺窗帘'
+                        url: "http://oduj3utzz.bkt.clouddn.com/5536a4677fb781475914511648.jpg",
+                        width: 720,
+                        height: 1697
                     },
                     {
-                        price: 2000,
-                        type: '其他'
+                        url: "http://oduj3utzz.bkt.clouddn.com/58eb5a44603191475914516767.jpg",
+                        width: 720,
+                        height: 1246
                     }
                 ]
-            },
+            }
+            ,
             {
-                id: '57eb9a369f5160cc048b4794',
-                name: '钟点工',
-                type: 4,
-                desc: [
+                id: "57e0e04e9f5160af048b456b",
+                name: "家电清洗",
+                imgSrc:'http://odulvej8l.bkt.clouddn.com/image_jiadianqingjie.png',
+                desc: [{content: "http://odqeoyzxd.bkt.clouddn.com/image/image_jdqx.jpg"}, {content: "家电清洗"}],
+                status: 1,
+                is_extra: 0,
+                order: 0,
+                type: "4",
+                type_str: "家电清洗",
+                extra: [
+                    {
+                        type: "微波炉",
+                        price: "60"
+                    },
+                    {
+                        type: "洗衣机",
+                        price: "100"
+                    },
                     {
-                        "type": 1,
-                        "content": "http://odqeoyzxd.bkt.clouddn.com/image/image_cm.jpg"
+                        type: "油烟机",
+                        price: "120"
                     },
                     {
-                        "type": 2,
-                        "content": "钟点工"
+                        type: "挂式空调",
+                        price: "100"
+                    },
+                    {
+                        type: "立式空调",
+                        price: "130"
+                    },
+                    {
+                        type: "冰箱-单开门",
+                        price: "100"
+                    },
+                    {
+                        type: "冰箱-双开门",
+                        price: "130"
                     }
                 ],
-                price: 35
-            }
-        ];
-    };
-
-    Product.prototype = new base();
-
-
-    //获得第一批
-    Product.prototype.getGroupStep = function (type) {
-        var steps = [];
-
-        switch (type) {
-            case 1:
-                steps = [
-                    '洗澡前全套12项健康检查',
-                    '家具遮挡、所有用具专业消毒',
-                    '毛发梳理、皮肤按摩、深层清洁',
-                    '毛发护理、吹风拉毛、修剪指甲',
-                    '耳道清洁、滴眼液、口腔护理(猫除外)',
-                    '挤肛门腺(猫除外)、剃脚底毛等(猫除外)',
-                    '加送指甲精磨,精油全身按摩',
-                    '结束后用具再次消毒、清洁环境'
-                ];
-                break;
-            case 2:
-                steps = [
-                    '洗澡前全套12项健康检查',
-                    '家具遮挡、所有用具专业消毒',
-                    '毛发梳理、皮肤按摩、深层清洁',
-                    '毛发护理、吹风拉毛、修剪指甲',
-                    '耳道清洁、滴眼液、口腔护理(猫除外)',
-                    '挤肛门腺(猫除外)、剃脚底毛等(猫除外)',
-                    '加送指甲精磨,精油全身按摩',
-                    '结束后再次用具消毒、清理环境卫生'
-                ];
-                break;
-            case 3:
-                steps = [
-                    '洗澡前全套12项健康检查',
-                    '家具遮挡、所有用具专业消毒',
-                    '毛发梳理、皮肤按摩、深层清洁',
-                    '毛发护理、吹风拉毛、修剪指甲',
-                    '耳道清洁、滴眼液、口腔护理(猫除外)',
-                    '挤肛门腺(猫除外)、剃脚底毛等(猫除外)',
-                    '加送指甲精磨,精油全身按摩',
-                    '结束后用具再次消毒、清洁环境'
-                ];
-                break;
-            case 4:
-                steps = [
-                    '准备工具,安抚爱宠',
-                    '清洁牙齿,去除软垢',
-                    '精华按摩,推牙结石',
-                    '全面清洁,注入精华',
-                    '打扫卫生,清洁环境'
-                ];
-                break;
-            case 5:
-                steps = [
-                    '安抚爱宠,检查皮屑、被毛',
-                    '梳理毛发,去除起球、打结',
-                    '全身涂抹,扶养泥糅合均匀',
-                    '温水冲洗,香波护理毛发',
-                    '吹干毛发,再次精心刷毛',
-                    '清洁环境,不留一根毛发'
-                ];
-                break;
-            default:
-                break;
-        }
-
-        return steps;
-    };
-
-    //描述
-    Product.prototype.getGroupDesc = function (type) {
-        var descs = [];
-        var notes = [];
-        switch (type) {
-            case 1: // 洗澡-钟点工
-                descs = [
-                    '1.疫苗未完成或完成一周内的幼犬猫不提供服务;',
-                    '2.怀孕、哺乳期间的犬猫不提供服务;',
-                    '3.高龄犬猫(10岁以上)不提供服务;',
-                    '4.具有强烈攻击性的犬猫不提供服务;',
-                    '5.10kg以上狗狗和8kg以上猫猫不提供服务。'
-                ];
-                notes = [
-                    '若您家中有多只犬猫需要同时预约的话,请您选择相应的宠物类型和服务时间分别下单。',
-                    '如有特殊要求,提交订单时请在“备注”一栏填写您的具体要求。',
-                    '预约时间两小时内取消订单或宠物具有攻击性无法正常服务的,将扣除50%订单金额。',
-                    '狗狗开毛结超过20分钟以上,将按60元/小时收费。',
-                    '预约时间仅供参考,具体上门时间请以壹管家客服安排为准。'
-                ];
-                break;
-            case 2: // 剃光-除螨杀菌
-                descs = [
-                    '1.疫苗未完成或完成一周内的幼犬不提供服务;',
-                    '2.怀孕、哺乳期间的母犬不提供服务;',
-                    '3.高龄犬(10岁以上)不提供服务;',
-                    '4.具有强烈攻击性的狗狗不提供服务;',
-                    '5.10kg以上狗狗不提供服务。'
-                ];
-                notes = [
-                    '若您家中有多只狗狗需要同时预约的话,请您选择相应的宠物类型和服务时间分别下单。',
-                    '如有特殊要求,提交订单时请在“备注”一栏填写您的具体要求。',
-                    '预约时间两小时内取消订单或宠物具有攻击性无法正常服务的,将扣除50%订单金额。',
-                    '狗狗开毛结超过20分钟以上,将按60元/小时收费。',
-                    '预约时间仅供参考,具体上门时间请以壹管家客服安排为准。'
+                action_user: "",
+                action_time: "",
+                action_log: "",
+                pics: [
+                    {
+                        url: "http://7oxep6.com2.z0.glb.clouddn.com/7aa5766b0c71b1474355274988.jpg",
+                        width: 537,
+                        height: 537
+                    }
                 ]
-                break;
-            case 3: // 美容-深度清洁
-                descs = [
-                    '1.疫苗未完成或完成一周内的幼犬猫不提供服务;',
-                    '2.怀孕、哺乳期间的犬猫不提供服务;',
-                    '3.高龄犬猫(10岁以上)不提供服务;',
-                    '4.具有强烈攻击性的犬猫不提供服务;',
-                    '5.10kg以上狗狗和8kg以上猫猫不提供服务。'
-                ];
-                notes = [
-                    '若您家中有多只犬猫需要同时预约的话,请您选择相应的宠物类型和服务时间分别下单。',
-                    '如有特殊要求,提交订单时请在“备注”一栏填写您的具体要求。',
-                    '预约时间两小时内取消订单或宠物具有攻击性无法正常服务的,将扣除50%订单金额。',
-                    '狗狗开毛结超过20分钟以上,将按60元/小时收费。',
-                    '预约时间仅供参考,具体上门时间请以壹管家客服安排为准。'
-                ];
-                break;
-            case 4: // 洁牙-住家保姆
-                descs = [
-                    '1.疫苗未完成或完成一周内的幼犬不提供服务;',
-                    '2.怀孕、哺乳期间的母犬不提供服务;',
-                    '3.高龄犬(10岁以上)不提供服务;',
-                    '4.具有强烈攻击性的狗狗不提供服务;',
-                    '5.10kg以上狗狗不提供服务;',
-                    '6.有严重牙病或牙齿松动的狗狗不提供服务。'
-                ];
-                notes = [
-                    '根据狗狗饮食习惯、口腔卫生和牙齿状况的不同,建议每年做2~4次洁齿SPA。',
-                    '若您家中有多只狗狗需要同时预约的话,请您选择相应的宠物类型和服务时间分别下单。',
-                    '如有特殊要求,提交订单时请在“备注”一栏填写您的具体要求。',
-                    '预约时间两小时内取消订单或宠物具有攻击性无法正常服务的,将扣除50%订单金额。',
-                    '预约时间仅供参考,具体上门时间请以壹管家客服安排为准。'
-                ];
-                break;
-            case 5: // SPA-日常清洁
-                descs = [
-                    '1.疫苗未完成或完成一周内的幼犬不提供服务;',
-                    '2.怀孕、哺乳期间的母犬不提供服务;',
-                    '3.高龄犬(10岁以上)不提供服务;',
-                    '4.具有强烈攻击性的狗狗不提供服务;',
-                    '5.10kg以上狗狗不提供服务;',
-                    '6.身上有皮肤病或伤口的狗狗不提供服务。'
-                ];
-                notes = [
-                    '若您家中有多只狗狗需要同时预约的话,请您选择相应的宠物类型和服务时间分别下单。',
-                    '浴泥SPA和浴盐SPA为二选一项目,下单的时候请在备注栏写明您想预约的服务(如浴盐SPA),如未注明将以壹管家客服安排为准。',
-                    '预约时间两小时内取消订单或宠物具有攻击性无法正常服务的,将扣除50%订单金额。',
-                    '狗狗开毛结超过20分钟以上,将按60元/小时收费。',
-                    '预约时间仅供参考,具体上门时间请以壹管家客服安排为准。'
-                ];
-                break;
-            case 6: // 训犬-育儿嫂
-                descs = [
-                    '1.需提前一周预约;',
-                    '2.上门训犬的时间:两个小时左右;',
-                    '3.疫苗未完成或完成一周内的幼犬暂不提供服务;'
-                ];
-                notes = [
-                    '上门服务后一周内,宠物主人可以寻求电话指导;',
-                    '不良行为不是一天就形成的,纠正需要时间,后续需要主人不断调教训练,壹管家不对狗狗的最终结果负责;',
-                    '如有特殊要求,提交订单时请在“备注”一栏填写 您的具体要求;',
-                    '预约时间两小时内取消订单或宠物具有攻击性无法正常服务的,将扣除50%订单金额;',
-                    '预约时间仅供参考,具体上门时间请以壹管家客服安排为准。'
-                ];
-                break;
-            case 7: // 断尾-月子套餐
-                descs = [
-                    '1.本服务只限出生后3-7天的幼犬;',
-                    '2.服务前,主人须签订《断尾告知书》,告知服务人员需要留几节尾骨,方可进行下一步断尾服务;'
-                ];
-                notes = [
-                    '由于个体差异较大,宠物断尾还是有一定风险性的,对于无法预见的意外情况,服务人员将及时处理,力争将风险降到最低限度;',
-                    '气门芯脱落后,宠物主人须及时通知壹管家客服,因宠物主人操作不当导致幼犬尾部发炎,本公司不承担任何责任;',
-                    '如有特殊要求,提交订单时请在“备注”一栏填写您的具体要求;',
-                    '预约时间两小时内取消订单或宠物具有攻击性无法正常服务的,将扣除50%订单金额;',
-                    '请提前三天预约,预约时间仅供参考,具体上门时间请以壹管家客服安排为准。'
-                ];
-                break;
-            case 8: // 碳酸浴-金牌月嫂
-                descs = [
-                    '1.疫苗未完成或完成一周内的幼犬不提供服务;',
-                    '2.怀孕、哺乳期间的母犬不提供服务;',
-                    '3.高龄犬(10岁以上)不提供服务;',
-                    '4.具有强烈攻击性的狗狗不提供服务;',
-                    '5.10kg以上狗狗不提供服务;'
-                ];
-                notes = [
-                    '受皮肤病困扰的狗狗,建议(每7-10天)进行一次碳酸浴疗程;',
-                    '若您家中有多只狗狗需要同时预约的话,请您选择相应的宠物类型和服务时间分别下单;',
-                    '预约时间两小时内取消订单或宠物具有攻击性无法正常服务的,将扣除50%订单金额;',
-                    '狗狗开毛结超过20分钟以上,将按60元/小时收取;',
-                    '请提前1天预约,预约时间仅供参考,具体上门时间请以壹管家客服安排为准。'
-                ];
-                break;
-            case 11: // 驱虫-催乳服务
-                descs = [
-                    '1.疫苗未完成或完成一周内的幼犬猫不提供服务;',
-                    '2.怀孕、哺乳期间的犬猫不提供服务;',
-                    '3.高龄犬猫(10岁以上)不提供服务;',
-                    '4.具有强烈攻击性的犬猫不提供服务;',
-                    '5.10kg以上狗狗和8kg以上猫猫不提供服务。'
-                ];
-                notes = [
-                    '若进行犬猫体外驱虫,请勿在用药前后48小时内清洗,并避免动物舔食。',
-                    '若您家中有多只犬猫需要同时预约的话,请您选择相应的宠物类型和服务时间分别下单。',
-                    '驱虫为附加服务项目,须选择一项主服务项目(洗澡、美容、剃光、SPA、洁牙),方可预约。',
-                    '一般在幼犬猫断奶后就应首次驱虫,幼犬猫最好每月驱虫1次,成年犬猫每3个月驱虫1次。',
-                    '如有特殊要求,提交订单时请在“备注”一栏填写您的具体要求。',
-                    '预约时间两小时内取消订单或宠物具有攻击性无法正常服务的,将扣除50%订单金额。',
-                    '预约时间仅供参考,具体上门时间请以壹管家客服安排为准。'
-                ];
-                break;
-            case 12: // 药浴
-                descs = [
-                    '1.疫苗未完成或完成一周内的幼犬猫不提供服务;',
-                    '2.怀孕、哺乳期间的犬猫不提供服务;',
-                    '3.高龄犬猫(10岁以上)不提供服务;',
-                    '4.具有强烈攻击性的犬猫不提供服务;',
-                    '5.10kg以上狗狗和8kg以上猫猫不提供服务。'
-                ];
-                notes = [
-                    '若您家中有多只犬猫需要同时预约的话,请您选择相应的宠物类型和服务时间分别下单。',
-                    '药浴为附加服务项目,须选择一项主服务项目(洗澡、美容、剃光),方可预约。',
-                    '如有特殊要求,提交订单时请在“备注”一栏填写您的具体要求。',
-                    '预约时间两小时内取消订单或宠物具有攻击性无法正常服务的,将扣除50%订单金额。',
-                    '狗狗开毛结超过20分钟以上,将按60元/小时收取。',
-                    '预约时间仅供参考,具体上门时间请以壹管家客服安排为准。'
-                ];
-                break;
-            case 13: // 染色
-                descs = [
-                    '1.疫苗未完成或完成一周内的幼犬不提供服务;',
-                    '2.怀孕、哺乳期间的母犬不提供服务;',
-                    '3.高龄犬(10岁以上)不提供服务;',
-                    '4.具有强烈攻击性的狗狗不提供服务;',
-                    '5.10kg以上狗狗不提供服务。'
-                ];
-                notes = [
-                    '若您家中有多只狗狗需要同时预约的话,请您选择相应的宠物类型和服务时间分别下单。',
-                    '一次性局部染色为附加服务项目,须选择一项主服务项目(洗澡、美容、剃光、SPA),方可预约。',
-                    '如有特殊要求,提交订单时请在“备注”一栏填写您的具体要求。',
-                    '预约时间两小时内取消订单或宠物具有攻击性无法正常服务的,将扣除50%订单金额。',
-                    '狗狗开毛结超过20分钟以上,将按60元/小时收取。',
-                    '预约时间仅供参考,具体上门时间请以壹管家客服安排为准。'
-                ];
-                break;
-            default:
-                break;
-        }
-        return {
-            descs: descs,
-            notes: notes
-        };
-    };
-
-    //获得商品照片组
-    Product.prototype.getGroupPics = function (type) {
-        return [this.list[parseInt(type)].desc[0].content];
-    }
-
-    //得到商品名称组
-    Product.prototype.getGroupName = function (type) {
-        return this.list[parseInt(type)].desc[1].content;
-    };
-
-    //获得详细的组名
-    Product.prototype.getGroupFullName = function (type) {
-        var name = '';
-
-        switch (type) {
-            case 1:
-                name = '宠物洗澡';
-                /*宠物洗澡*/
-                break;
-            case 2:
-                name = '宠物剃光';
-                /*宠物剃光*/
-                break;
-            case 3:
-                name = '宠物美容(含洗澡)';
-                /*宠物美容(含洗澡)*/
-                break;
-            case 4:
-                name = '宠物洁牙';
-                /*宠物洁牙*/
-                break;
-            case 5:
-                name = 'SPA';
-                /*SPA*/
-                break;
-            case 6:
-                name = '训犬';
-                /*训犬*/
-                break;
-            case 7:
-                name = '断尾';
-                /*断尾*/
-                break;
-            case 8:
-                name = '碳酸浴';
-                /*碳酸浴*/
-                break;
-            case 9:
-                name = '助产';
-                /*助产*/
-                break;
-            case 11:
-                name = '宠物驱虫';
-                /*宠物驱虫*/
-                break;
-            case 12:
-                name = '宠物药浴';
-                /*宠物药浴*/
-                break;
-            case 13:
-                name = '宠物染色';/**/
-            default:
-                break;
-        }
-
-        return name;
-    };
-
-    //获得产品称号
-    Product.prototype.getProductTitle = function (type) {
-        var title = {
-            name: '',
-            className: ''
-        }
-        switch (type) {
-            case 1:
-                title.name = '洗澡';
-                title.className = 'pic-xizao'
-                break;
-            case 2:
-                title.name = '剃光';
-                title.className = 'pic-tiguang';
-                break;
-            case 3:
-                title.name = '美容';
-                title.className = 'pic-meirong';
-                break;
-            case 4:
-                title.name = '洁牙';
-                title.className = 'pic-jieya';
-                break;
-            case 5:
-                title.name = 'SPA';
-                title.className = 'pic-spa';
-                break;
-            case 6:
-                title.name = '训犬';
-                title.className = 'pic-xunquan';
-                break;
-            case 7:
-                title.name = '断尾';
-                title.className = 'pic-duanwei';
-                break;
-            case 8:
-                title.name = '碳酸浴';
-                title.className = 'pic-tansuanyu';
-                break;
-            case 9:
-                title.name = '助产';
-                title.className = 'pic-zhuchan';
-                break;
-            case 11:
-                title.name = '驱虫';
-                title.className = 'pic-quchong';
-                break;
-            case 12:
-                title.name = '药浴';
-                title.className = 'pic-yaoyu';
-                break;
-            case 13:
-                title.name = '一次性局部染色';
-                title.className = 'pic-ranse';
-                break;
-            default:
-                break;
-        }
-        return title;
-    }
-
-    //获得微信分享
-    Product.prototype.getWXShare = function (type) {
-        var title = {
-            name: '',
-            className: ''
-        }
-        switch (type) {
-            case 1:
-                title.name = '洗澡';
-                title.className = 'http://wozhua-others.qiniudn.com/icon-xizao.jpg'
-                break;
-            case 2:
-                title.name = '剃光';
-                title.className = 'http://wozhua-others.qiniudn.com/icon-tiguang.jpg';
-                break;
-            case 3:
-                title.name = '美容';
-                title.className = 'http://wozhua-others.qiniudn.com/icon-meirong.jpg';
-                break;
-            case 4:
-                title.name = '洁牙';
-                title.className = 'http://wozhua-others.qiniudn.com/icon-jieya.jpg';
-                break;
-            case 5:
-                title.name = 'SPA';
-                title.className = 'http://wozhua-others.qiniudn.com/icon-spa.jpg';
-                break;
-            case 6:
-                title.name = '训犬';
-                title.className = 'http://wozhua-others.qiniudn.com/icon-xunquan.jpg';
-                break;
-            case 7:
-                title.name = '断尾';
-                title.className = 'http://wozhua-others.qiniudn.com/icon-duanwei.jpg';
-                break;
-            case 8:
-                title.name = '碳酸浴';
-                title.className = 'http://wozhua-others.qiniudn.com/icon-tansuanyu.jpg';
-                break;
-            case 9:
-                title.name = '助产';
-                title.className = 'http://wozhua-others.qiniudn.com/icon-zhuchan.jpg';
-                break;
-            case 11:
-                title.name = '驱虫';
-                title.className = 'http://wozhua-others.qiniudn.com/icon-quchong.jpg';
-                break;
-            case 12:
-                title.name = '药浴';
-                title.className = 'http://wozhua-others.qiniudn.com/icon-yaoyu.jpg';
-                break;
-            case 13:
-                title.name = '染色';
-                title.className = 'http://wozhua-others.qiniudn.com/icon-ranse.jpg';
-                break;
-            default:
-                break;
-        }
-        return title;
-    }
-
-    //获得产品列表
-    Product.prototype.getProductList = function (type, petID) {
-        var productList = [];
-        if (this.productGroup.hasOwnProperty(type)) {//自己的属性
-            var petList = this.productGroup[type];//产品组
-            for (var i in petList) {//宠物列表
-                var petInfo = petList[i];//宠物信息
-                if (!petID || petInfo.id == petID) {//宠物ID
-                    for (var j in petInfo.products) {
-                        if ($.inArray(petInfo.products[j], productList) == -1) {
-                            productList.push(petInfo.products[j]);//产品列表
-                        }
+            }
+            ,
+            {
+                id: "57e0e0709f5160aa048b456c",
+                name: "民宿保洁",
+                imgSrc:'http://odulvej8l.bkt.clouddn.com/image_xinjukaihuang.png',
+                desc: [{content: "http://odqeoyzxd.bkt.clouddn.com/image/image_rc.jpg"}, {content: "民宿保洁"}],
+                status: 1,
+                is_extra: 0,
+                order: 0,
+                type: "5",
+                type_str: "民宿保洁",
+                extra: [
+                    {
+                        type: "一室户",
+                        price: "60"
+                    },
+                    {
+                        type: "二室户",
+                        price: "80"
+                    },
+                    {
+                        type: "三室户",
+                        price: "100"
+                    },
+                    {
+                        type: "布草带回清洁",
+                        price: "20"
                     }
-                    if (petID) {
-                        break;
+                ],
+                action_user: "",
+                action_time: "",
+                action_log: "",
+                pics: [
+                    {
+                        url: "http://7oxep6.com2.z0.glb.clouddn.com/e49f47f1e95551474509180969.jpg",
+                        width: 658,
+                        height: 663
+                    },
+                    {
+                        url: "http://oduj3utzz.bkt.clouddn.com/3207cc36e9a521475912144775.jpg",
+                        width: 720,
+                        height: 15637
                     }
-                }
-            }
-        }
-        return productList;
-    };
-
-
-    //宠物名字
-    Product.prototype.getPetName = function (type, petID) {
-        var petName = '';
-        if (this.productGroup.hasOwnProperty(type)) {//产品组自己的属性为  TYEP
-            var petList = this.productGroup[type];
-            for (var i in petList) {//宠物列表
-                var petInfo = petList[i];
-                if (petInfo.id == petID) {//判断ID一致赋予宠物名字
-                    petName = petInfo['name'];
-                    break;
-                }
+                ]
             }
-        }
-        return petName;
-    };
-
-
-    Product.prototype.getProductPrice = function (productID) {
-        var productInfo = this.productDic[productID];//产品中心
-        if (!productInfo) {
-            return '';
-        } else {
-            return productInfo.price + '元';//产品价格
-        }
-    };
-
-    //获得宠物服务类型
-    //productType-产品类型
-    Product.prototype.getPetServiceType = function (productType, productID) {
-        var petServiceType = '';
-        this.productGroup[productType].forEach(function (e) {//遍历函数
-            if (e.id == productID) {//id一致则将服务类型赋值给petServiceType
-                petServiceType = e.service_type
+            ,
+            {
+                id: "57e0e0879f5160b8048b4571",
+                price: "8",
+                name: "新居开荒-每平米",
+                imgSrc: 'http://odulvej8l.bkt.clouddn.com/image_muyin%20richang.png',
+                desc: [{content: "http://odqeoyzxd.bkt.clouddn.com/image/image_kh.jpg"}, {content: '新居开荒'}],
+                status: 1,
+                is_extra: 0,
+                order: 0,
+                type: "6",
+                type_str: "新居开荒",
+                action_user: "",
+                action_time: "",
+                action_log: "",
+                pics: [
+                    {
+                        url: "http://7oxep6.com2.z0.glb.clouddn.com/3e9c456521a931474509197829.jpg",
+                        width: 658,
+                        height: 663
+                    },
+                    {
+                        url: "http://oduj3utzz.bkt.clouddn.com/c922713f7c0b71475912080925.jpg",
+                        width: 720,
+                        height: 12899
+                    }
+                ]
             }
-        });
-        return petServiceType;
+        ];
     };
 
-    //获得额外的服务类型
-    //checkedName - 检查名称
-    Product.prototype.getExtraServiceList = function (type, petName, checkedName) {
-        var extraServiceTmp = [];
-        var extraServiceList = this.extraProductGroup[type];//额外额产品组
-        for (var i in extraServiceList) {
-            if (extraServiceList[i].pet_types[0].name == petName) {//pet_types 宠物类型
-                var seleted = false;
-                if (extraServiceList[i].name == checkedName) {//如果额外的服务类型与检查的一致
-                    seleted = true;
-                }
-                //额外的服务参数
-                var extraServiceParam = {
-                    name: extraServiceList[i].name,//名字
-                    price: extraServiceList[i].price,//价格
-                    id: extraServiceList[i].id,//ID
-                    serviceType: extraServiceList[i].service_type,//服务类型
-                    seleted: seleted//选择
-                }
-                extraServiceTmp.push(extraServiceParam);//额外的服务数组
-            }
-            ;
-        }
-        return extraServiceTmp
-    }
-
-    //获取列表
-    Product.prototype.getList = function (type, callback) {
-        var that = this;
-        api.getProductList({//获得产品列表
-            type: type
-        }, function (res) {
-            if (res.success) {
-                that.products = res.data.products;//产品
-                that.productList = {};//产品列表
-                that.productGroup[type] = [];//产品组
-
-                var petDic = {};//宠物DIC
-                var productDatas = res['data']['products'];//产品数据
-                var extraroducts = res['data']['extra_products'];//额外的服务
-                that.extraService = extraroducts;
-
-                for (var i = 0, len = productDatas.length; i < len; i++) {
-                    var eachProduct = productDatas[i];//每个产品
-                    var petIDs = [];//宠物ID
-
-                    that.productDic[eachProduct.id] = {//每个产品的ID
-                        petIDs: petIDs,
-                        maxWeight: eachProduct.max_weight,
-                        minWeight: eachProduct.min_weight,
-                        // price: parseFloat(eachProduct.price).toFixed(2)
-                        price: parseFloat(eachProduct.price)
-                        // 价格不要加小数点后两位
-                    };
-                }
-
-                for (var petID in petDic) {
-                    that.productGroup[type].push(petDic[petID]);
-                }
-            }
-            if (typeof (callback) == 'function') {
-                callback(res);
-            }
-        });
-    }
-
-    //列出所有的产品
-    Product.prototype.getListAll = function (userID, callback) {
-        var that = this;
-        api.getProductList({
-            user_id: userID,
-            // type: type
-        }, function (res) {
-            if (res.success) {
-                that.productList = {};
-
-                var petDic = {};
-                var productDatas = res['data']['products'];
-                var extraroducts = res['data']['extra_products'];
-                // that.extraService = extraroducts;
-
-                for (var i in that.productGroup) {
-                    that.productGroup[i] = [];
-                }
-
-                for (var i in that.extraProductGroup) {
-                    that.extraProductGroup[i] = [];
-                }
-
-                for (var i = 0, len = productDatas.length; i < len; i++) {
-                    var eachProduct = productDatas[i];
-                    that.productGroup[eachProduct['type']].push(eachProduct);
-                    var petIDs = [];
-
-
-                    that.productDic[eachProduct.id] = {//产品中心
-                        petIDs: petIDs,//宠物ID
-                        maxWeight: eachProduct.max_weight,//产品最大
-                        minWeight: eachProduct.min_weight,//产品最小
-                        // price: parseFloat(eachProduct.price).toFixed(2)
-                        price: parseFloat(eachProduct.price)//解析产品价格
-                        // 价格不要加小数点后两位
-                    };
-                }
-
-
-                // for (var petID in petDic) {
-                //   that.productGroup[eachProduct['type']].push(petDic[petID]);
-                // }
-            }
-            if (typeof (callback) == 'function') {
-                callback(res);
-            }
-        });
-    }
-
-    Product.prototype.suitableService = function (type, name) {
-        // 某个主服务里面 是否有某个附加服务
-        var suitableService = this.productGroup;
-        var suitableServiceTmp = this.extraProductGroup;
-        for (var i in suitableService) {//合适的服务
-            suitableService[i][0]['suitable'] = false;
-            for (var j in suitableServiceTmp[i]) {
-                if (suitableServiceTmp[i][j].name == name) {
-                    suitableService[i][0]['suitable'] = true;
-                }
-            }
-        }
-        return suitableService;
-    }
+    Product.prototype = new base();
 
     return new Product();
-})
+});

+ 6 - 10
www/webapp/o2o/js/page/home.js

@@ -1,7 +1,5 @@
 define(['$', 'template', 'IScroll', 'product', 'user', 'native', 'config', 'address'], function ($, template, IScroll, product, user, native, config, address) {
 
-    var products = product.list;
-
     /*
      * 先定义一些模块内用到的function
      */
@@ -51,7 +49,7 @@ define(['$', 'template', 'IScroll', 'product', 'user', 'native', 'config', 'addr
             /* 点击产品列表的某一项 */
             $.newTouch('.btn-product', function (event) {
                 event.preventDefault();
-                var type = $(this).attr('data-product-type');
+                var type = parseInt($(this).attr('data-product-type'));
                 /*
                  * 这个写法是SPA路由框架规定的。
                  * $(selector).trigger(event, params)是jQuery的:触发被选元素上的指定事件
@@ -59,13 +57,13 @@ define(['$', 'template', 'IScroll', 'product', 'user', 'native', 'config', 'addr
                 $doc.trigger('spa:navigate', {
                     hash: 'placeOrder',
                     pushData: {
-                        product: products[parseInt(type)],
+                        product: product.allList[type-1],
                         needReset: true
                     }
                 });
             }, $view);
 
-            /* 点击标签 */
+            /* 点击标签
             $.newTouch('.btn-product-group', function (event) {
                 event.preventDefault();
                 if ($(this).hasClass('global-msg-active')) return;
@@ -85,7 +83,7 @@ define(['$', 'template', 'IScroll', 'product', 'user', 'native', 'config', 'addr
                         $('#list3').show().siblings().hide();
                         break;
                 }
-            }, $view);
+            }, $view);  */
 
             // 点击……不知如何说明……
             $.newTouch('.btn-action-my-order', function (event) {
@@ -108,15 +106,13 @@ define(['$', 'template', 'IScroll', 'product', 'user', 'native', 'config', 'addr
                 });
             }, $view);
 
-            // 招聘
+            /* 招聘
             $.newTouch('.btn-action-hire', function () {
                 event.preventDefault();
                 $doc.trigger('spa:navigate', {
                     hash: 'hire'
                 });
-            }, $view);
-
-            /* 定义按钮事件结束。*/
+            }, $view); */
 
             /* 不知道什么意思。*/
             dtd.resolve();

+ 3 - 2
www/webapp/o2o/js/page/placeOrder.js

@@ -2,7 +2,7 @@ define(['$', 'template', 'order', 'native', 'helper', 'user', 'api', 'config', '
 
     /*
      * 这里对product和order做一个说明。
-     * product的结构由后台决定。order沿用原模型,但只用其中几个字段。
+     * product前台写死。order沿用原模型,但只用其中几个字段。
      * 对应关系如下:
      * product.id == order.productID :产品ID
      * product.type == order.productType :产品类型,约定的数字
@@ -509,7 +509,7 @@ define(['$', 'template', 'order', 'native', 'helper', 'user', 'api', 'config', '
 
             /* 点击数量+1 */
             $.newTouch('.btn-add', function (event) {
-                if (order.productCount >= 99) return;
+                if (order.productCount >= 999) return;
                 if (order.price == 0) {
                     $doc.trigger('spa:openpanel', ['simpleAlert', {
                         message: '请选择extra'
@@ -813,6 +813,7 @@ define(['$', 'template', 'order', 'native', 'helper', 'user', 'api', 'config', '
                     env: config,
                     /* 环境 */
                     showNavBar: !config.isWX && !config.isChubao,
+                    imgSrc: product.imgSrc,
                     /* 标题栏的标题 */
                     title: product.name,
                     /* extra选择项 */

+ 32 - 55
www/webapp/o2o/js/page/product.js

@@ -1,12 +1,10 @@
 define(['$', 'template', 'product', 'cart', 'api', 'order', 'user', 'config', 'review', 'native'], function ($, template, product, cart, api, order, user, config, review, native) {
+
+    /* 返回上一级 */
     function back(event) {
         event.preventDefault();
-        var hash = 'placeOrder';
-        if (cachePageData.fromHome) {
-            hash = ''
-        }
         $(document).trigger('spa:navigate', {
-            hash: hash
+            hash: 'placeOrder'
         });
     }
 
@@ -52,31 +50,20 @@ define(['$', 'template', 'product', 'cart', 'api', 'order', 'user', 'config', 'r
     var cachePageData = {}; //page内部的数据传递
 
     return {
-        title: '预约上门服务',
+        title: '壹管家上门服务',
         body: '',
         init: function (pageData, dtd) {
             var $view = this;
             var $doc = $(document);
-            //取消
+
+            /* 三个返回操作 */
             $.newTouch('.back-button', function (event) {
-                if (isShowVideo()) {
-                    $('#iframe-service-introduce', $view).contents().find('video')[0].pause();
-                }
                 back.call(this, event);
             }, $view);
-
             $view.on('tapBackButton', function (event) {
-                if (isShowVideo()) {
-                    $('#iframe-service-introduce', $view).contents().find('video')[0].pause();
-                }
                 back.call(this, event);
             });
-
-            //返回
             $view.on('swipeRight', function (event) {
-                if (isShowVideo()) {
-                    $('#iframe-service-introduce', $view).contents().find('video')[0].pause();
-                }
                 back.call(this, event);
             });
 
@@ -188,7 +175,7 @@ define(['$', 'template', 'product', 'cart', 'api', 'order', 'user', 'config', 'r
                 }, false);
             }, $view);
 
-            //立即下单
+            /* 立即下单
             $.newTouch('.btn-next', function (event) {
                 if (isShowVideo()) {
                     $('#iframe-service-introduce', $view).contents().find('video')[0].pause();
@@ -201,15 +188,16 @@ define(['$', 'template', 'product', 'cart', 'api', 'order', 'user', 'config', 'r
                         needReset: true
                     }
                 });
-            }, $view);
+            }, $view); */
 
+            /*
             $.newTouch('.video', function (event) {
                 if ($('#iframe-service-introduce', $view).contents().find('video')[0].attr('controls')) {
                     $('#iframe-service-introduce', $view).contents().find('video')[0].removeAttr('controls');
                 } else {
                     $('#iframe-service-introduce', $view).contents().find('video')[0].attr('controls', 'controls');
                 }
-            }, $view);
+            }, $view); */
 
             dtd.resolve();
         },
@@ -227,36 +215,27 @@ define(['$', 'template', 'product', 'cart', 'api', 'order', 'user', 'config', 'r
                 var productType = cachePageData.product.type;
                 $doc.trigger('spa:openloader');
                 review.getList(productType, function (res) {
-                    $doc.trigger('spa:closeloader');
-
                     if (res.success) {
                         commentCounts = res.sum_count;
-                        var d = new Image();
-                        d.src = product.getGroupPics(productType)[0];
-                        d.onload = function () {
-                            var tpl = template('product/index', {
-                                type: productType,
-                                title: product.getGroupName(productType),
-                                // tips: product.getGroupDesc(productType),
-                                picLists: product.getGroupPics(productType),
-                                commentCounts: commentCounts,
-                                showNavBar: !config.isWX && !config.isChubao,
-                                // isShowVideo: isShowVideo()
-                            });
-                            $('.spa-page-body', $view).html(tpl);
-                            if (cachePageData.scroll) {
-                                cachePageData.scroll.destroy();
-                                cachePageData.scroll = null;
-                            }
+                        var tpl = template('product/index', {
+                            type: productType,
+                            title: cachePageData.product.name,
+                            // tips: product.getGroupDesc(productType),
+                            picLists: cachePageData.product.pics,
+                            commentCounts: commentCounts,
+                            showNavBar: !config.isWX && !config.isChubao,
+                            // isShowVideo: isShowVideo()
+                        });
+                        $('.spa-page-body', $view).html(tpl);
 
-                            var iframeW = document.body.clientWidth - 30;
-                            $('#iframe-service-introduce', $view).height(Math.ceil(iframeW * 360 / 640));
+                        var iframeW = document.body.clientWidth - 30;
+                        $('#iframe-service-introduce', $view).height(Math.ceil(iframeW * 360 / 640));
 
-                            setTimeout(function () {
-                                cachePageData.scroll = new IScroll('#productDescScroll');
-                            }, 10);
-                        }
+                        setTimeout(function () {
+                            cachePageData.scroll = new IScroll('#productDescScroll');
+                        }, 1000);
 
+                        $doc.trigger('spa:closeloader');
                     }
                 }, false);
             }
@@ -264,23 +243,21 @@ define(['$', 'template', 'product', 'cart', 'api', 'order', 'user', 'config', 'r
             dtd.resolve();
         },
         afteropen: function (pageData, dtd) {
-            dtd.resolve();
-            var type = pageData.pushData.type;
             if (config.isWX) {
                 wx.ready(function () {
                     wx.onMenuShareTimeline({
-                        title: '家政服务' + product.getWXShare(type).name + ',首选壹管家',
+                        title: '家政服务' + cachePageData.product.desc[1].content + ',首选壹管家',
                         link: 'http://www.yiguanjia.me/o2o/web/index',
-                        imgUrl: product.getWXShare(type).className
+                        imgUrl: cachePageData.product.desc[0].content
                     });
                     wx.onMenuShareAppMessage({
-                        title: '家政服务' + product.getWXShare(type).name + ',首选壹管家',
-                        desc: '全程管家,精心一个细节',
+                        title: '家政服务' + cachePageData.product.desc[1].content + ',首选壹管家',
+                        desc: '全程管家,精心一个细节',
                         link: 'http://www.yiguanjia.me/o2o/web/index',
-                        imgUrl: product.getWXShare(type).className
+                        imgUrl: cachePageData.product.desc[0].content
                     });
                 });
             }
         }
     }
-})
+});

+ 16 - 35
www/webapp/o2o/tpl/home/index.html

@@ -25,59 +25,40 @@
                                 </div>
                             </div>
                         </div>
+                        <!-- 隐藏标签
                         <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>
+                        -->
                         <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="0">
-                                    <img src="http://odulvej8l.bkt.clouddn.com/Home_btn_clean%20%283%29.png" width="50px" height="50px">
+                                <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">
                                     <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="1">
-                                    <img src="http://odulvej8l.bkt.clouddn.com/Home_btn_clean%20%283%29.png"  width="50px" height="50px">
+                                <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">
                                     <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="2">
-                                    <img src="http://odulvej8l.bkt.clouddn.com/Home_btn_clean%20%283%29.png"  width="50px" height="50px">
+                                <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">
                                     <div class="extra-service-name">除螨杀菌</div>
                                 </li>
-                                <li style="width: 49%; height: 1px"></li>
-                            </ul>
-                            <ul class="products-list" id="list1" style="display: none">
-                                <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="3">
-                                    <img src="http://odulvej8l.bkt.clouddn.com/Home_btn_clean%20%283%29.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="4">
-                                    <img src="http://odulvej8l.bkt.clouddn.com/Home_btn_clean%20%283%29.png"  width="50px" height="50px">
-                                    <div class="extra-service-name">住家保姆</div>
+                                <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">
+                                    <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://odulvej8l.bkt.clouddn.com/Home_btn_clean%20%283%29.png"  width="50px" height="50px">
-                                    <div class="extra-service-name">育儿嫂</div>
-                                </li>
-                                <li style="width: 49%; height: 1px"></li>
-                            </ul>
-                            <ul class="products-list" id="list2" style="display: none">
-                                <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="6">
-                                    <img src="http://odulvej8l.bkt.clouddn.com/Home_btn_clean%20%283%29.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="7">
-                                    <img src="http://odulvej8l.bkt.clouddn.com/Home_btn_clean%20%283%29.png"  width="50px" height="50px">
-                                    <div class="extra-service-name">金牌月嫂</div>
+                                    <img src="http://oduj3utzz.bkt.clouddn.com/Home_btn_clean%20%286%29.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="8">
-                                    <img src="http://odulvej8l.bkt.clouddn.com/Home_btn_clean%20%283%29.png"  width="50px" height="50px">
-                                    <div class="extra-service-name">催乳服务</div>
+                                <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="6">
+                                    <img src="http://oduj3utzz.bkt.clouddn.com/Home_btn_pre_clean%20%285%29.png"  width="50px" height="50px">
+                                    <div class="extra-service-name">新居开荒</div>
                                 </li>
-                                <li style="width: 49%; height: 1px"></li>
-                            </ul>
-                            <ul class="products-list" id="list3" style="display: none">
                             </ul>
                         </div>
                         <div style="width: 100%; height: 80px"></div>

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

@@ -14,7 +14,7 @@
           <div class="">
             <ul class="table-view">
               <li id="product-pic-bg" class="table-view-cell">
-                <a class="navigate-right product-pic">
+                <a class="navigate-right product-pic" style="background-image: url({{imgSrc}});">
                   <div class="product-name">{{title}}详情及评价 <span>&gt;&gt;&gt;</span></div>
                 </a>
               </li>

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

@@ -29,7 +29,7 @@
               <div class="img-list">
                 <div class="img-list-container">
                   {{ each picLists as pic}}
-                  <img src="{{pic}}" alt="">
+                  <img src="{{pic.url}}" alt="">
                   {{/each}}
                 </div>
               </div>

Деякі файли не було показано, через те що забагато файлів було змінено