洪海涛 8 жил өмнө
parent
commit
30e2376ca8

+ 236 - 0
www/css/common_o2o/LCalendar.css

@@ -0,0 +1,236 @@
+.gearDate {
+    font-family: Helvetica Neue, Helvetica, Arial, sans-serif;
+    font-size: 10px;
+    background-color: rgba(0, 0, 0, 0.2);
+    display: block;
+    position: fixed;
+    top: 0;
+    left: 0;
+    width: 100%;
+    height: 100%;
+    z-index: 9900;
+    overflow: hidden;
+    animation-fill-mode: both
+}
+
+.date_ctrl {
+    vertical-align: middle;
+    background-color: #d5d8df;
+    color: #000;
+    margin: 0;
+    height: auto;
+    width: 100%;
+    position: absolute;
+    left: 0;
+    bottom: 0;
+    z-index: 9901;
+    overflow: hidden;
+    transform: translate3d(0, 0, 0)
+}
+
+.slideInUp {
+    animation: slideInUp .3s;
+}
+
+@keyframes slideInUp {
+    from {
+        transform: translate3d(0, 100%, 0)
+    }
+    to {
+        transform: translate3d(0, 0, 0)
+    }
+}
+
+.ym_roll,
+.date_roll,
+.datetime_roll,
+.time_roll {
+    display: flex;
+    width: 100%;
+    height: auto;
+    overflow: hidden;
+    background-color: transparent;
+    -webkit-mask: -webkit-gradient(linear, 0% 50%, 0% 100%, from(#debb47), to(rgba(36, 142, 36, 0)));
+    -webkit-mask: -webkit-linear-gradient(top, #debb47 50%, rgba(36, 142, 36, 0))
+}
+
+.ym_roll>div,
+.date_roll>div,
+.datetime_roll>div,
+.time_roll>div {
+    font-size: 2.3em;
+    height: 10em;
+    float: left;
+    background-color: transparent;
+    position: relative;
+    overflow: hidden;
+    flex: 4
+}
+
+.ym_roll>div .gear,
+.date_roll>div .gear,
+.datetime_roll>div .gear,
+.time_roll>div .gear {
+    width: 100%;
+    float: left;
+    position: absolute;
+    z-index: 9902;
+    margin-top: -4em
+}
+
+.date_roll_mask {
+    -webkit-mask: -webkit-gradient(linear, 0% 40%, 0% 0%, from(#debb47), to(rgba(36, 142, 36, 0)));
+    -webkit-mask: -webkit-linear-gradient(bottom, #debb47 50%, rgba(36, 142, 36, 0));
+    padding: 0
+}
+
+.date_roll>div:nth-child(2) {
+    flex: 2
+}
+
+.date_roll>div:nth-child(1),
+.datetime_roll>div:nth-child(1) {
+    flex: 4
+}
+
+.datetime_roll>div:first-child {
+    flex: 6
+}
+
+.datetime_roll>div:last-child {
+    flex: 6
+}
+
+.date_grid {
+    position: relative;
+    top: 4em;
+    width: 100%;
+    height: 2em;
+    margin: 0;
+    box-sizing: border-box;
+    z-index: 0;
+    border-top: 1px solid #abaeb5;
+    border-bottom: 1px solid #abaeb5
+}
+
+.date_grid>div {
+    color: #000;
+    position: absolute;
+    right: 0;
+    top: 0;
+    font-size: .8em;
+    line-height: 2.5em
+}
+
+.date_roll>div:nth-child(3) .date_grid>div {
+    left: 42%
+}
+
+.datetime_roll>div .date_grid>div {
+    right: 0
+}
+
+.datetime_roll>div:first-child .date_grid>div {
+    left: auto;
+    right: 0%
+}
+
+.datetime_roll>div:last-child .date_grid>div {
+    left: 50%
+}
+
+.time_roll>div:nth-child(1) .date_grid>div {
+    right: 1em
+}
+
+.ym_roll>div:nth-child(1) .date_grid>div {
+    right: .1em
+}
+
+.ym_roll>div .date_grid>div,
+.time_roll>div .date_grid>div {
+    right: 5em
+}
+
+.date_btn {
+    color: #0575f2;
+    font-size: 1.6em;
+    line-height: 1em;
+    text-align: center;
+    padding: .8em 1em
+}
+
+.date_btn_box:before,
+.date_btn_box:after {
+    content: '';
+    position: absolute;
+    height: 1px;
+    width: 100%;
+    display: block;
+    background-color: #96979b;
+    z-index: 15;
+    transform: scaleY(0.33)
+}
+
+.date_btn_box {
+    display: flex;
+    justify-content: space-between;
+    align-items: stretch;
+    background-color: #f1f2f4;
+    position: relative
+}
+
+.date_btn_box:before {
+    left: 0;
+    top: 0;
+    transform-origin: 50% 20%
+}
+
+.date_btn_box:after {
+    left: 0;
+    bottom: 0;
+    transform-origin: 50% 70%
+}
+
+.date_roll>div:nth-child(1) .gear {
+    text-indent: 20%
+}
+
+.date_roll>div:nth-child(2) .gear {
+    text-indent: -20%
+}
+
+.date_roll>div:nth-child(3) .gear {
+    text-indent: -55%
+}
+
+.datetime_roll>div .gear {
+    width: 100%;
+    text-indent: -25%
+}
+
+.datetime_roll>div:first-child .gear {
+    text-indent: -10%
+}
+
+.datetime_roll>div:last-child .gear {
+    text-indent: -50%
+}
+
+.ym_roll>div .gear,
+.time_roll>div .gear {
+    width: 100%;
+    text-indent: -70%
+}
+
+.ym_roll>div:nth-child(1) .gear,
+.time_roll>div:nth-child(1) .gear {
+    width: 100%;
+    text-indent: 10%
+}
+
+.tooth {
+    height: 2em;
+    line-height: 2em;
+    text-align: center
+}

+ 742 - 0
www/js/o2o/LCalendar.js

@@ -0,0 +1,742 @@
+window.LCalendar = (function() {
+    var MobileCalendar = function() {
+        this.gearDate;
+        this.minY = 1900;
+        this.minM = 1;
+        this.minD = 1;
+        this.maxY = 2099;
+        this.maxM = 12;
+        this.maxD = 31;
+    }
+    MobileCalendar.prototype = {
+        init: function(params) {
+            this.type = params.type;
+            this.trigger = document.querySelector(params.trigger);
+            if (this.trigger.getAttribute("data-lcalendar") != null) {
+                var arr = this.trigger.getAttribute("data-lcalendar").split(',');
+                var minArr = arr[0].split('-');
+                this.minY = ~~minArr[0];
+                this.minM = ~~minArr[1];
+                this.minD = ~~minArr[2];
+                var maxArr = arr[1].split('-');
+                this.maxY = ~~maxArr[0];
+                this.maxM = ~~maxArr[1];
+                this.maxD = ~~maxArr[2];
+            }
+            if (params.minDate) {
+                var minArr = params.minDate.split('-');
+                this.minY = ~~minArr[0];
+                this.minM = ~~minArr[1];
+                this.minD = ~~minArr[2];
+            }
+            if (params.maxDate) {
+                var maxArr = params.maxDate.split('-');
+                this.maxY = ~~maxArr[0];
+                this.maxM = ~~maxArr[1];
+                this.maxD = ~~maxArr[2];
+            }
+            this.bindEvent(this.type);
+        },
+        bindEvent: function(type) {
+            var _self = this;
+            //呼出日期插件
+            function popupDate(e) {
+                _self.gearDate = document.createElement("div");
+                _self.gearDate.className = "gearDate";
+                _self.gearDate.innerHTML = '<div class="date_ctrl slideInUp">' +
+                    '<div class="date_btn_box">' +
+                    '<div class="date_btn lcalendar_cancel">取消</div>' +
+                    '<div class="date_btn lcalendar_finish">确定</div>' +
+                    '</div>' +
+                    '<div class="date_roll_mask">' +
+                    '<div class="date_roll">' +
+                    '<div>' +
+                    '<div class="gear date_yy" data-datetype="date_yy"></div>' +
+                    '<div class="date_grid">' +
+                    '<div>年</div>' +
+                    '</div>' +
+                    '</div>' +
+                    '<div>' +
+                    '<div class="gear date_mm" data-datetype="date_mm"></div>' +
+                    '<div class="date_grid">' +
+                    '<div>月</div>' +
+                    '</div>' +
+                    '</div>' +
+                    '<div>' +
+                    '<div class="gear date_dd" data-datetype="date_dd"></div>' +
+                    '<div class="date_grid">' +
+                    '<div>日</div>' +
+                    '</div>' +
+                    '</div>' +
+                    '</div>' +
+                    '</div>' +
+                    '</div>';
+                document.body.appendChild(_self.gearDate);
+                dateCtrlInit();
+                var lcalendar_cancel = _self.gearDate.querySelector(".lcalendar_cancel");
+                lcalendar_cancel.addEventListener('touchstart', closeMobileCalendar);
+                var lcalendar_finish = _self.gearDate.querySelector(".lcalendar_finish");
+                lcalendar_finish.addEventListener('touchstart', finishMobileDate);
+                var date_yy = _self.gearDate.querySelector(".date_yy");
+                var date_mm = _self.gearDate.querySelector(".date_mm");
+                var date_dd = _self.gearDate.querySelector(".date_dd");
+                date_yy.addEventListener('touchstart', gearTouchStart);
+                date_mm.addEventListener('touchstart', gearTouchStart);
+                date_dd.addEventListener('touchstart', gearTouchStart);
+                date_yy.addEventListener('touchmove', gearTouchMove);
+                date_mm.addEventListener('touchmove', gearTouchMove);
+                date_dd.addEventListener('touchmove', gearTouchMove);
+                date_yy.addEventListener('touchend', gearTouchEnd);
+                date_mm.addEventListener('touchend', gearTouchEnd);
+                date_dd.addEventListener('touchend', gearTouchEnd);
+            }
+            //初始化年月日插件默认值
+            function dateCtrlInit() {
+                var date = new Date();
+                var dateArr = {
+                    yy: date.getFullYear(),
+                    mm: date.getMonth(),
+                    dd: date.getDate() - 1
+                };
+                if (/^\d{4}-\d{1,2}-\d{1,2}$/.test(_self.trigger.value)) {
+                    rs = _self.trigger.value.match(/(^|-)\d{1,4}/g);
+                    dateArr.yy = rs[0] - _self.minY;
+                    dateArr.mm = rs[1].replace(/-/g, "") - 1;
+                    dateArr.dd = rs[2].replace(/-/g, "") - 1;
+                } else {
+                    dateArr.yy = dateArr.yy - _self.minY;
+                }
+                _self.gearDate.querySelector(".date_yy").setAttribute("val", dateArr.yy);
+                _self.gearDate.querySelector(".date_mm").setAttribute("val", dateArr.mm);
+                _self.gearDate.querySelector(".date_dd").setAttribute("val", dateArr.dd);
+                setDateGearTooth();
+            }
+            //呼出年月插件
+            function popupYM(e) {
+                _self.gearDate = document.createElement("div");
+                _self.gearDate.className = "gearDate";
+                _self.gearDate.innerHTML = '<div class="date_ctrl slideInUp">' +
+                    '<div class="date_btn_box">' +
+                    '<div class="date_btn lcalendar_cancel">取消</div>' +
+                    '<div class="date_btn lcalendar_finish">确定</div>' +
+                    '</div>' +
+                    '<div class="date_roll_mask">' +
+                    '<div class="ym_roll">' +
+                    '<div>' +
+                    '<div class="gear date_yy" data-datetype="date_yy"></div>' +
+                    '<div class="date_grid">' +
+                    '<div>年</div>' +
+                    '</div>' +
+                    '</div>' +
+                    '<div>' +
+                    '<div class="gear date_mm" data-datetype="date_mm"></div>' +
+                    '<div class="date_grid">' +
+                    '<div>月</div>' +
+                    '</div>' +
+                    '</div>' +
+                    '</div>' +
+                    '</div>' +
+                    '</div>';
+                document.body.appendChild(_self.gearDate);
+                ymCtrlInit();
+                var lcalendar_cancel = _self.gearDate.querySelector(".lcalendar_cancel");
+                lcalendar_cancel.addEventListener('touchstart', closeMobileCalendar);
+                var lcalendar_finish = _self.gearDate.querySelector(".lcalendar_finish");
+                lcalendar_finish.addEventListener('touchstart', finishMobileYM);
+                var date_yy = _self.gearDate.querySelector(".date_yy");
+                var date_mm = _self.gearDate.querySelector(".date_mm");
+                date_yy.addEventListener('touchstart', gearTouchStart);
+                date_mm.addEventListener('touchstart', gearTouchStart);
+                date_yy.addEventListener('touchmove', gearTouchMove);
+                date_mm.addEventListener('touchmove', gearTouchMove);
+                date_yy.addEventListener('touchend', gearTouchEnd);
+                date_mm.addEventListener('touchend', gearTouchEnd);
+            }
+            //初始化年月插件默认值
+            function ymCtrlInit() {
+                var date = new Date();
+                var dateArr = {
+                    yy: date.getFullYear(),
+                    mm: date.getMonth()
+                };
+                if (/^\d{4}-\d{1,2}$/.test(_self.trigger.value)) {
+                    rs = _self.trigger.value.match(/(^|-)\d{1,4}/g);
+                    dateArr.yy = rs[0] - _self.minY;
+                    dateArr.mm = rs[1].replace(/-/g, "") - 1;
+                } else {
+                    dateArr.yy = dateArr.yy - _self.minY;
+                }
+                _self.gearDate.querySelector(".date_yy").setAttribute("val", dateArr.yy);
+                _self.gearDate.querySelector(".date_mm").setAttribute("val", dateArr.mm);
+                setDateGearTooth();
+            }
+            //呼出日期+时间插件
+            function popupDateTime(e) {
+                _self.gearDate = document.createElement("div");
+                _self.gearDate.className = "gearDatetime";
+                _self.gearDate.innerHTML = '<div class="date_ctrl slideInUp">' +
+                    '<div class="date_btn_box">' +
+                    '<div class="date_btn lcalendar_cancel">取消</div>' +
+                    '<div class="date_btn lcalendar_finish">确定</div>' +
+                    '</div>' +
+                    '<div class="date_roll_mask">' +
+                    '<div class="datetime_roll">' +
+                    '<div>' +
+                    '<div class="gear date_yy" data-datetype="date_yy"></div>' +
+                    '<div class="date_grid">' +
+                    '<div>年</div>' +
+                    '</div>' +
+                    '</div>' +
+                    '<div>' +
+                    '<div class="gear date_mm" data-datetype="date_mm"></div>' +
+                    '<div class="date_grid">' +
+                    '<div>月</div>' +
+                    '</div>' +
+                    '</div>' +
+                    '<div>' +
+                    '<div class="gear date_dd" data-datetype="date_dd"></div>' +
+                    '<div class="date_grid">' +
+                    '<div>日</div>' +
+                    '</div>' +
+                    '</div>' +
+                    '<div>' +
+                    '<div class="gear time_hh" data-datetype="time_hh"></div>' +
+                    '<div class="date_grid">' +
+                    '<div>时</div>' +
+                    '</div>' +
+                    '</div>' +
+                    '<div>' +
+                    '<div class="gear time_mm" data-datetype="time_mm"></div>' +
+                    '<div class="date_grid">' +
+                    '<div>分</div>' +
+                    '</div>' +
+                    '</div>' +
+                    '</div>' + //date_roll
+                    '</div>' + //date_roll_mask
+                    '</div>';
+                document.body.appendChild(_self.gearDate);
+                dateTimeCtrlInit();
+                var lcalendar_cancel = _self.gearDate.querySelector(".lcalendar_cancel");
+                lcalendar_cancel.addEventListener('touchstart', closeMobileCalendar);
+                var lcalendar_finish = _self.gearDate.querySelector(".lcalendar_finish");
+                lcalendar_finish.addEventListener('touchstart', finishMobileDateTime);
+                var date_yy = _self.gearDate.querySelector(".date_yy");
+                var date_mm = _self.gearDate.querySelector(".date_mm");
+                var date_dd = _self.gearDate.querySelector(".date_dd");
+                var time_hh = _self.gearDate.querySelector(".time_hh");
+                var time_mm = _self.gearDate.querySelector(".time_mm");
+                date_yy.addEventListener('touchstart', gearTouchStart);
+                date_mm.addEventListener('touchstart', gearTouchStart);
+                date_dd.addEventListener('touchstart', gearTouchStart);
+                time_hh.addEventListener('touchstart', gearTouchStart);
+                time_mm.addEventListener('touchstart', gearTouchStart);
+                date_yy.addEventListener('touchmove', gearTouchMove);
+                date_mm.addEventListener('touchmove', gearTouchMove);
+                date_dd.addEventListener('touchmove', gearTouchMove);
+                time_hh.addEventListener('touchmove', gearTouchMove);
+                time_mm.addEventListener('touchmove', gearTouchMove);
+                date_yy.addEventListener('touchend', gearTouchEnd);
+                date_mm.addEventListener('touchend', gearTouchEnd);
+                date_dd.addEventListener('touchend', gearTouchEnd);
+                time_hh.addEventListener('touchend', gearTouchEnd);
+                time_mm.addEventListener('touchend', gearTouchEnd);
+            }
+            //初始化年月日时分插件默认值
+            function dateTimeCtrlInit() {
+                var date = new Date();
+                var dateArr = {
+                    yy: date.getFullYear(),
+                    mm: date.getMonth(),
+                    dd: date.getDate() - 1,
+                    hh: date.getHours(),
+                    mi: date.getMinutes()
+                };
+                if (/^\d{4}-\d{1,2}-\d{1,2}\s\d{2}:\d{2}$/.test(_self.trigger.value)) {
+                    rs = _self.trigger.value.match(/(^|-|\s|:)\d{1,4}/g);
+                    dateArr.yy = rs[0] - _self.minY;
+                    dateArr.mm = rs[1].replace(/-/g, "") - 1;
+                    dateArr.dd = rs[2].replace(/-/g, "") - 1;
+                    dateArr.hh = parseInt(rs[3].replace(/\s0?/g, ""));
+                    dateArr.mi = parseInt(rs[4].replace(/:0?/g, ""));
+                } else {
+                    dateArr.yy = dateArr.yy - _self.minY;
+                }
+                _self.gearDate.querySelector(".date_yy").setAttribute("val", dateArr.yy);
+                _self.gearDate.querySelector(".date_mm").setAttribute("val", dateArr.mm);
+                _self.gearDate.querySelector(".date_dd").setAttribute("val", dateArr.dd);
+                setDateGearTooth();
+                _self.gearDate.querySelector(".time_hh").setAttribute("val", dateArr.hh);
+                _self.gearDate.querySelector(".time_mm").setAttribute("val", dateArr.mi);
+                setTimeGearTooth();
+            }
+            //呼出时间插件
+            function popupTime(e) {
+                _self.gearDate = document.createElement("div");
+                _self.gearDate.className = "gearDate";
+                _self.gearDate.innerHTML = '<div class="date_ctrl slideInUp">' +
+                    '<div class="date_btn_box">' +
+                    '<div class="date_btn lcalendar_cancel">取消</div>' +
+                    '<div class="date_btn lcalendar_finish">确定</div>' +
+                    '</div>' +
+                    '<div class="date_roll_mask">' +
+                    '<div class="time_roll">' +
+                    '<div>' +
+                    '<div class="gear time_hh" data-datetype="time_hh"></div>' +
+                    '<div class="date_grid">' +
+                    '<div>时</div>' +
+                    '</div>' +
+                    '</div>' +
+                    '<div>' +
+                    '<div class="gear time_mm" data-datetype="time_mm"></div>' +
+                    '<div class="date_grid">' +
+                    '<div>分</div>' +
+                    '</div>' +
+                    '</div>' +
+                    '</div>' + //time_roll
+                    '</div>' +
+                    '</div>';
+                document.body.appendChild(_self.gearDate);
+                timeCtrlInit();
+                var lcalendar_cancel = _self.gearDate.querySelector(".lcalendar_cancel");
+                lcalendar_cancel.addEventListener('touchstart', closeMobileCalendar);
+                var lcalendar_finish = _self.gearDate.querySelector(".lcalendar_finish");
+                lcalendar_finish.addEventListener('touchstart', finishMobileTime);
+                var time_hh = _self.gearDate.querySelector(".time_hh");
+                var time_mm = _self.gearDate.querySelector(".time_mm");
+                time_hh.addEventListener('touchstart', gearTouchStart);
+                time_mm.addEventListener('touchstart', gearTouchStart);
+                time_hh.addEventListener('touchmove', gearTouchMove);
+                time_mm.addEventListener('touchmove', gearTouchMove);
+                time_hh.addEventListener('touchend', gearTouchEnd);
+                time_mm.addEventListener('touchend', gearTouchEnd);
+            }
+            //初始化时分插件默认值
+            function timeCtrlInit() {
+                var d = new Date();
+                var e = {
+                    hh: d.getHours(),
+                    mm: d.getMinutes()
+                };
+                if (/^\d{2}:\d{2}$/.test(_self.trigger.value)) {
+                    rs = _self.trigger.value.match(/(^|:)\d{2}/g);
+                    e.hh = parseInt(rs[0].replace(/^0?/g, ""));
+                    e.mm = parseInt(rs[1].replace(/:0?/g, ""))
+                }
+                _self.gearDate.querySelector(".time_hh").setAttribute("val", e.hh);
+                _self.gearDate.querySelector(".time_mm").setAttribute("val", e.mm);
+                setTimeGearTooth();
+            }
+            //重置日期节点个数
+            function setDateGearTooth() {
+                var passY = _self.maxY - _self.minY + 1;
+                var date_yy = _self.gearDate.querySelector(".date_yy");
+                var itemStr = "";
+                if (date_yy && date_yy.getAttribute("val")) {
+                    //得到年份的值
+                    var yyVal = parseInt(date_yy.getAttribute("val"));
+                    //p 当前节点前后需要展示的节点个数
+                    for (var p = 0; p <= passY - 1; p++) {
+                        itemStr += "<div class='tooth'>" + (_self.minY + p) + "</div>";
+                    }
+                    date_yy.innerHTML = itemStr;
+                    var top = Math.floor(parseFloat(date_yy.getAttribute('top')));
+                    if (!isNaN(top)) {
+                        top % 2 == 0 ? (top = top) : (top = top + 1);
+                        top > 8 && (top = 8);
+                        var minTop = 8 - (passY - 1) * 2;
+                        top < minTop && (top = minTop);
+                        date_yy.style["-webkit-transform"] = 'translate3d(0,' + top + 'em,0)';
+                        date_yy.setAttribute('top', top + 'em');
+                        yyVal = Math.abs(top - 8) / 2;
+                        date_yy.setAttribute("val", yyVal);
+                    } else {
+                        date_yy.style["-webkit-transform"] = 'translate3d(0,' + (8 - yyVal * 2) + 'em,0)';
+                        date_yy.setAttribute('top', 8 - yyVal * 2 + 'em');
+                    }
+                } else {
+                    return;
+                }
+                var date_mm = _self.gearDate.querySelector(".date_mm");
+                if (date_mm && date_mm.getAttribute("val")) {
+                    itemStr = "";
+                    //得到月份的值
+                    var mmVal = parseInt(date_mm.getAttribute("val"));
+                    var maxM = 11;
+                    var minM = 0;
+                    //当年份到达最大值
+                    if (yyVal == passY - 1) {
+                        maxM = _self.maxM - 1;
+                    }
+                    //当年份到达最小值
+                    if (yyVal == 0) {
+                        minM = _self.minM - 1;
+                    }
+                    //p 当前节点前后需要展示的节点个数
+                    for (var p = 0; p < maxM - minM + 1; p++) {
+                        itemStr += "<div class='tooth'>" + (minM + p + 1) + "</div>";
+                    }
+                    date_mm.innerHTML = itemStr;
+                    if (mmVal > maxM) {
+                        mmVal = maxM;
+                        date_mm.setAttribute("val", mmVal);
+                    } else if (mmVal < minM) {
+                        mmVal = maxM;
+                        date_mm.setAttribute("val", mmVal);
+                    }
+                    date_mm.style["-webkit-transform"] = 'translate3d(0,' + (8 - (mmVal - minM) * 2) + 'em,0)';
+                    date_mm.setAttribute('top', 8 - (mmVal - minM) * 2 + 'em');
+                } else {
+                    return;
+                }
+                var date_dd = _self.gearDate.querySelector(".date_dd");
+                if (date_dd && date_dd.getAttribute("val")) {
+                    itemStr = "";
+                    //得到日期的值
+                    var ddVal = parseInt(date_dd.getAttribute("val"));
+                    //返回月份的天数
+                    var maxMonthDays = calcDays(yyVal, mmVal);
+                    //p 当前节点前后需要展示的节点个数
+                    var maxD = maxMonthDays - 1;
+                    var minD = 0;
+                    //当年份月份到达最大值
+                    if (yyVal == passY - 1 && _self.maxM == mmVal + 1) {
+                        maxD = _self.maxD - 1;
+                    }
+                    //当年、月到达最小值
+                    if (yyVal == 0 && _self.minM == mmVal + 1) {
+                        minD = _self.minD - 1;
+                    }
+                    for (var p = 0; p < maxD - minD + 1; p++) {
+                        itemStr += "<div class='tooth'>" + (minD + p + 1) + "</div>";
+                    }
+                    date_dd.innerHTML = itemStr;
+                    if (ddVal > maxD) {
+                        ddVal = maxD;
+                        date_dd.setAttribute("val", ddVal);
+                    } else if (ddVal < minD) {
+                        ddVal = minD;
+                        date_dd.setAttribute("val", ddVal);
+                    }
+                    date_dd.style["-webkit-transform"] = 'translate3d(0,' + (8 - (ddVal - minD) * 2) + 'em,0)';
+                    date_dd.setAttribute('top', 8 - (ddVal - minD) * 2 + 'em');
+                } else {
+                    return;
+                }
+            }
+            //重置时间节点个数
+            function setTimeGearTooth() {
+                var time_hh = _self.gearDate.querySelector(".time_hh");
+                if (time_hh && time_hh.getAttribute("val")) {
+                    var i = "";
+                    var hhVal = parseInt(time_hh.getAttribute("val"));
+                    for (var g = 0; g <= 23; g++) {
+                        i += "<div class='tooth'>" + g + "</div>";
+                    }
+                    time_hh.innerHTML = i;
+                    time_hh.style["-webkit-transform"] = 'translate3d(0,' + (8 - hhVal * 2) + 'em,0)';
+                    time_hh.setAttribute('top', 8 - hhVal * 2 + 'em');
+                } else {
+                    return
+                }
+                var time_mm = _self.gearDate.querySelector(".time_mm");
+                if (time_mm && time_mm.getAttribute("val")) {
+                    var i = "";
+                    var mmVal = parseInt(time_mm.getAttribute("val"));
+                    for (var g = 0; g <= 59; g++) {
+                        i += "<div class='tooth'>" + g + "</div>";
+                    }
+                    time_mm.innerHTML = i;
+                    time_mm.style["-webkit-transform"] = 'translate3d(0,' + (8 - mmVal * 2) + 'em,0)';
+                    time_mm.setAttribute('top', 8 - mmVal * 2 + 'em');
+                } else {
+                    return
+                }
+            }
+            //求月份最大天数
+            function calcDays(year, month) {
+                if (month == 1) {
+                    year += _self.minY;
+                    if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0 && year % 4000 != 0)) {
+                        return 29;
+                    } else {
+                        return 28;
+                    }
+                } else {
+                    if (month == 3 || month == 5 || month == 8 || month == 10) {
+                        return 30;
+                    } else {
+                        return 31;
+                    }
+                }
+            }
+            //触摸开始
+            function gearTouchStart(e) {
+                e.preventDefault();
+                var target = e.target;
+                while (true) {
+                    if (!target.classList.contains("gear")) {
+                        target = target.parentElement;
+                    } else {
+                        break
+                    }
+                }
+                clearInterval(target["int_" + target.id]);
+                target["old_" + target.id] = e.targetTouches[0].screenY;
+                target["o_t_" + target.id] = (new Date()).getTime();
+                var top = target.getAttribute('top');
+                if (top) {
+                    target["o_d_" + target.id] = parseFloat(top.replace(/em/g, ""));
+                } else {
+                    target["o_d_" + target.id] = 0;
+                }
+                target.style.webkitTransitionDuration = target.style.transitionDuration = '0ms';
+            }
+            //手指移动
+            function gearTouchMove(e) {
+                e.preventDefault();
+                var target = e.target;
+                while (true) {
+                    if (!target.classList.contains("gear")) {
+                        target = target.parentElement;
+                    } else {
+                        break
+                    }
+                }
+                target["new_" + target.id] = e.targetTouches[0].screenY;
+                target["n_t_" + target.id] = (new Date()).getTime();
+                var f = (target["new_" + target.id] - target["old_" + target.id]) * 30 / window.innerHeight;
+                target["pos_" + target.id] = target["o_d_" + target.id] + f;
+                target.style["-webkit-transform"] = 'translate3d(0,' + target["pos_" + target.id] + 'em,0)';
+                target.setAttribute('top', target["pos_" + target.id] + 'em');
+                if (e.targetTouches[0].screenY < 1) {
+                    gearTouchEnd(e);
+                };
+            }
+            //离开屏幕
+            function gearTouchEnd(e) {
+                e.preventDefault();
+                var target = e.target;
+                while (true) {
+                    if (!target.classList.contains("gear")) {
+                        target = target.parentElement;
+                    } else {
+                        break;
+                    }
+                }
+                var flag = (target["new_" + target.id] - target["old_" + target.id]) / (target["n_t_" + target.id] - target["o_t_" + target.id]);
+                if (Math.abs(flag) <= 0.2) {
+                    target["spd_" + target.id] = (flag < 0 ? -0.08 : 0.08);
+                } else {
+                    if (Math.abs(flag) <= 0.5) {
+                        target["spd_" + target.id] = (flag < 0 ? -0.16 : 0.16);
+                    } else {
+                        target["spd_" + target.id] = flag / 2;
+                    }
+                }
+                if (!target["pos_" + target.id]) {
+                    target["pos_" + target.id] = 0;
+                }
+                rollGear(target);
+            }
+            //缓动效果
+            function rollGear(target) {
+                var d = 0;
+                var stopGear = false;
+
+                function setDuration() {
+                    target.style.webkitTransitionDuration = target.style.transitionDuration = '200ms';
+                    stopGear = true;
+                }
+                var passY = _self.maxY - _self.minY + 1;
+                clearInterval(target["int_" + target.id]);
+                target["int_" + target.id] = setInterval(function() {
+                    var pos = target["pos_" + target.id];
+                    var speed = target["spd_" + target.id] * Math.exp(-0.03 * d);
+                    pos += speed;
+                    if (Math.abs(speed) > 0.1) {} else {
+                        var b = Math.round(pos / 2) * 2;
+                        pos = b;
+                        setDuration();
+                    }
+                    if (pos > 8) {
+                        pos = 8;
+                        setDuration();
+                    }
+                    switch (target.dataset.datetype) {
+                        case "date_yy":
+                            var minTop = 8 - (passY - 1) * 2;
+                            if (pos < minTop) {
+                                pos = minTop;
+                                setDuration();
+                            }
+                            if (stopGear) {
+                                var gearVal = Math.abs(pos - 8) / 2;
+                                setGear(target, gearVal);
+                                clearInterval(target["int_" + target.id]);
+                            }
+                            break;
+                        case "date_mm":
+                            var date_yy = _self.gearDate.querySelector(".date_yy");
+                            //得到年份的值
+                            var yyVal = parseInt(date_yy.getAttribute("val"));
+                            var maxM = 11;
+                            var minM = 0;
+                            //当年份到达最大值
+                            if (yyVal == passY - 1) {
+                                maxM = _self.maxM - 1;
+                            }
+                            //当年份到达最小值
+                            if (yyVal == 0) {
+                                minM = _self.minM - 1;
+                            }
+                            var minTop = 8 - (maxM - minM) * 2;
+                            if (pos < minTop) {
+                                pos = minTop;
+                                setDuration();
+                            }
+                            if (stopGear) {
+                                var gearVal = Math.abs(pos - 8) / 2 + minM;
+                                setGear(target, gearVal);
+                                clearInterval(target["int_" + target.id]);
+                            }
+                            break;
+                        case "date_dd":
+                            var date_yy = _self.gearDate.querySelector(".date_yy");
+                            var date_mm = _self.gearDate.querySelector(".date_mm");
+                            //得到年份的值
+                            var yyVal = parseInt(date_yy.getAttribute("val"));
+                            //得到月份的值
+                            var mmVal = parseInt(date_mm.getAttribute("val"));
+                            //返回月份的天数
+                            var maxMonthDays = calcDays(yyVal, mmVal);
+                            var maxD = maxMonthDays - 1;
+                            var minD = 0;
+                            //当年份月份到达最大值
+                            if (yyVal == passY - 1 && _self.maxM == mmVal + 1) {
+                                maxD = _self.maxD - 1;
+                            }
+                            //当年、月到达最小值
+                            if (yyVal == 0 && _self.minM == mmVal + 1) {
+                                minD = _self.minD - 1;
+                            }
+                            var minTop = 8 - (maxD - minD) * 2;
+                            if (pos < minTop) {
+                                pos = minTop;
+                                setDuration();
+                            }
+                            if (stopGear) {
+                                var gearVal = Math.abs(pos - 8) / 2 + minD;
+                                setGear(target, gearVal);
+                                clearInterval(target["int_" + target.id]);
+                            }
+                            break;
+                        case "time_hh":
+                            if (pos < -38) {
+                                pos = -38;
+                                setDuration();
+                            }
+                            if (stopGear) {
+                                var gearVal = Math.abs(pos - 8) / 2;
+                                setGear(target, gearVal);
+                                clearInterval(target["int_" + target.id]);
+                            }
+                            break;
+                        case "time_mm":
+                            if (pos < -110) {
+                                pos = -110;
+                                setDuration();
+                            }
+                            if (stopGear) {
+                                var gearVal = Math.abs(pos - 8) / 2;
+                                setGear(target, gearVal);
+                                clearInterval(target["int_" + target.id]);
+                            }
+                            break;
+                        default:
+                    }
+                    target["pos_" + target.id] = pos;
+                    target.style["-webkit-transform"] = 'translate3d(0,' + pos + 'em,0)';
+                    target.setAttribute('top', pos + 'em');
+                    d++;
+                }, 30);
+            }
+            //控制插件滚动后停留的值
+            function setGear(target, val) {
+                val = Math.round(val);
+                target.setAttribute("val", val);
+                if (/date/.test(target.dataset.datetype)) {
+                    setDateGearTooth();
+                } else {
+                    setTimeGearTooth();
+                }
+            }
+            //取消
+            function closeMobileCalendar(e) {
+                e.preventDefault();
+                var evt;
+                try {
+                    evt = new CustomEvent('input');
+                } catch (e) {
+                    //兼容旧浏览器(注意:该方法已从最新的web标准中删除)
+                    evt = document.createEvent('Event');
+                    evt.initEvent('input', true, true);
+                }
+                _self.trigger.dispatchEvent(evt);
+                document.body.removeChild(_self.gearDate);
+                _self.gearDate=null;
+            }
+
+            //日期确认
+            function finishMobileDate(e) {
+                var passY = _self.maxY - _self.minY + 1;
+                var date_yy = parseInt(Math.round(_self.gearDate.querySelector(".date_yy").getAttribute("val")));
+                var date_mm = parseInt(Math.round(_self.gearDate.querySelector(".date_mm").getAttribute("val"))) + 1;
+                date_mm = date_mm > 9 ? date_mm : '0' + date_mm;
+                var date_dd = parseInt(Math.round(_self.gearDate.querySelector(".date_dd").getAttribute("val"))) + 1;
+                date_dd = date_dd > 9 ? date_dd : '0' + date_dd;
+                _self.trigger.value = (date_yy % passY + _self.minY) + "-" + date_mm + "-" + date_dd;
+                closeMobileCalendar(e);
+            }
+            //年月确认
+            function finishMobileYM(e) {
+                var passY = _self.maxY - _self.minY + 1;
+                var date_yy = parseInt(Math.round(_self.gearDate.querySelector(".date_yy").getAttribute("val")));
+                var date_mm = parseInt(Math.round(_self.gearDate.querySelector(".date_mm").getAttribute("val"))) + 1;
+                date_mm = date_mm > 9 ? date_mm : '0' + date_mm;
+                _self.trigger.value = (date_yy % passY + _self.minY) + "-" + date_mm;
+                closeMobileCalendar(e);
+            }
+            //日期时间确认
+            function finishMobileDateTime(e) {
+                var passY = _self.maxY - _self.minY + 1;
+                var date_yy = parseInt(Math.round(_self.gearDate.querySelector(".date_yy").getAttribute("val")));
+                var date_mm = parseInt(Math.round(_self.gearDate.querySelector(".date_mm").getAttribute("val"))) + 1;
+                date_mm = date_mm > 9 ? date_mm : '0' + date_mm;
+                var date_dd = parseInt(Math.round(_self.gearDate.querySelector(".date_dd").getAttribute("val"))) + 1;
+                date_dd = date_dd > 9 ? date_dd : '0' + date_dd;
+                var time_hh = parseInt(Math.round(_self.gearDate.querySelector(".time_hh").getAttribute("val")));
+                time_hh = time_hh > 9 ? time_hh : '0' + time_hh;
+                var time_mm = parseInt(Math.round(_self.gearDate.querySelector(".time_mm").getAttribute("val")));
+                time_mm = time_mm > 9 ? time_mm : '0' + time_mm;
+                _self.trigger.value = (date_yy % passY + _self.minY) + "-" + date_mm + "-" + date_dd + " " + (time_hh.length < 2 ? "0" : "") + time_hh + (time_mm.length < 2 ? ":0" : ":") + time_mm;
+                closeMobileCalendar(e);
+            }
+            //时间确认
+            function finishMobileTime(e) {
+                var time_hh = parseInt(Math.round(_self.gearDate.querySelector(".time_hh").getAttribute("val")));
+                time_hh = time_hh > 9 ? time_hh : '0' + time_hh;
+                var time_mm = parseInt(Math.round(_self.gearDate.querySelector(".time_mm").getAttribute("val")));
+                time_mm = time_mm > 9 ? time_mm : '0' + time_mm;
+                _self.trigger.value = (time_hh.length < 2 ? "0" : "") + time_hh + (time_mm.length < 2 ? ":0" : ":") + time_mm;
+                closeMobileCalendar(e);
+            }
+            _self.trigger.addEventListener('click', {
+                "ym": popupYM,
+                "date": popupDate,
+                "datetime": popupDateTime,
+                "time": popupTime
+            }[type]);
+        }
+    }
+    return MobileCalendar;
+})()

+ 5 - 0
www/protected/modules/o2o/controllers/AdvisoryController.php

@@ -129,6 +129,11 @@ class AdvisoryController extends O2oBaseController
 	{
 	{
 		$this->render('xyhIm');
 		$this->render('xyhIm');
 	}
 	}
+//享月会联系
+	public function actionMonth()
+	{
+		$this->render('month');
+	}
 
 
 	//联系壹管家
 	//联系壹管家
 	public function actionIm()
 	public function actionIm()

+ 165 - 0
www/protected/modules/o2o/views/advisory/month.php

@@ -0,0 +1,165 @@
+<!DOCTYPE html>
+<!--HTML5 doctype-->
+<html ng-app="myapp">
+<head>
+	<title>壹管家</title>
+	<meta http-equiv="Content-type" content="text/html; charset=utf-8">
+	<meta name="viewport"
+	      content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no">
+	<meta name="apple-mobile-web-app-capable" content="yes">
+	<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"/>
+	<meta http-equiv="Pragma" content="no-cache">
+	<meta http-equiv="X-UA-Compatible" content="IE=edge">
+	<!--css-->
+	<style>
+		.gradient {
+			color: #ffffff;
+			font-size: 2rem;
+			width: 100%;
+			line-height: 40px;
+			background: -webkit-linear-gradient(#ff71e0, #ffc5fe, #ffc5fe,#ff71e0); /* Safari 5.1 - 6.0 */
+			background: -o-linear-gradient(#ff71e0, #ffc5fe, #ffc5fe,#ff71e0); /* Opera 11.1 - 12.0 */
+			background: -moz-linear-gradient(#ff71e0,#ffc5fe, #ffc5fe,#ff71e0); /* Firefox 3.6 - 15 */
+			background: linear-gradient(#2f004e,#2f004e, #2f004e,#2f004e); /* 标准的语法 */
+		}
+	</style>
+	<!--引入css文件-->
+	<link rel="stylesheet" href="<?php echo Yii::app()->request->baseUrl; ?>/webapp/common/css/common.css">
+	<link rel="stylesheet" href=" <?php echo Yii::app()->request->baseUrl; ?>/css/bootstrap-3.3.7.min.css">
+	<link rel="stylesheet" href=" <?php echo Yii::app()->request->baseUrl; ?>/css/common_o2o/LCalendar.css">
+	<!--引入js文件-->
+	<script src="<?php echo Yii::app()->request->baseUrl; ?>/js/jquery-3.1.1.min.js"></script>
+	<script src="<?php echo Yii::app()->request->baseUrl; ?>/js/AngularJS v1.4.3.min.js"></script>
+	<script src="<?php echo Yii::app()->request->baseUrl; ?>/js/bootstrap-3.3.7.min.js"></script>
+	<script src="<?php echo Yii::app()->request->baseUrl; ?>/js/o2o/LCalendar.js"></script>
+	<!--修改title-->
+	<script>
+		$(function () {
+			document.title = "壹管家";
+		})
+	</script>
+</head>
+<body ng-controller="myctrl">
+<div class="gradient"><返回</div>
+<h1 style="text-align: center">咨询</h1>
+<div class="">
+	<form action="" method='post'
+	      class="container  form-horizontal  ng-valid ng-dirty ng-valid-parse" id='singlesDay'
+	      style="margin-bottom: 15%; ">
+		<div class="container">
+			<!--姓名-->
+			<div class="form-group">
+				<label>姓名:</label>
+				<input type="text" name='user_name' class="form-control username" placeholder="请输入您的姓名" ng-model="username">
+			</div>
+			<!--手机号码-->
+			<div class="form-group">
+				<label>手机号码:</label>
+				<input type="text" name="mobile" class="form-control"
+				       placeholder="请输入您的手机号码" ng-model="phone"/>
+			</div>
+			<!--房型-->
+			<div class="form-group">
+				<label>咨询套餐:</label>
+				<select name="homeType" onchange="theforever(this.value)" class="form-control" ng-model="Type"
+				        ng-init="Type=TypeList[0].id"
+				        ng-options="type.name as type.name for type in TypeList" id="">
+					<option value="">--请选择--</option>
+				</select>
+			</div>
+
+			<!--预产期-->
+			<div class="form-group">
+				<input class="form-control" style="background-color: #fff;" id="demo1" type="text" readonly=""
+				       placeholder="请选择日期"/>
+			</div>
+			<!--按钮-->
+			<div class="form-group">
+				<a id="SinglesDayBtn"
+				   style="background: #2f004e;color:rgb(255,255,255);border: 0"
+				   class="btn btn-success col-xs-12"
+				   data-container="body"
+				   data-toggle="popover"
+				   data-placement="top"
+				   data-content="{{btnContent}}">
+					提交
+				</a>
+			</div>
+		</div>
+	</form>
+</div>
+
+<!--模态框-->
+<div class="model" style="width: 100%;position: fixed;top: 0;background: rgba(0,0,0,0.4)">
+	<!--错误提示容器-->
+	<div class="model-box"
+	     style="border-radius: 10px;height:130px;display:none;width: 70%;background: #fff;margin: 0 auto;top:25%;left:15%;position: fixed;">
+		<div class="model-title"
+		     style="font-family: '微软雅黑', 'Microsoft YaHei', 'STHeiti Light';width: 100%;text-align: center;font-size: 1.1rem;margin-top: 5%;"></div>
+		<div class="model-content"
+		     style="font-family: '微软雅黑', 'Microsoft YaHei', 'STHeiti Light';margin: 0 auto;width: 80%;background: rgb(42,36,0);color:rgb(178,143,0);font-size: 1.3rem;margin-top: 30px;text-align: center;padding: 5px 0 5px 0"></div>
+	</div>
+</div>
+</body>
+</html>
+<script>
+	var myapp = angular.module('myapp', []);
+	myapp.controller('myctrl', ['$scope', function ($scope) {
+		$('.model-content').on('click', function () {
+			if ($('.model-content').html() == '返回首页') {
+				window.location.href = '/index.php?r=o2o/web/index';
+			} else {
+				$('.model').css('height', '0');
+				$('.model-box').css('display', 'none');
+			}
+		});
+		/*表单提交进行判断*/
+		$('#SinglesDayBtn').on('click', function () {
+				/*姓名是否为空*/
+				if ($scope.username == undefined) {
+					model('请重填', '确认您的姓名');
+					return false;
+				}
+				/*验证手机号码*/
+				if (!(/^1[34578]\d{9}$/.test($scope.phone)) || $scope.phone == 0) {
+					model('请重填', '手机号码有误');
+					return false;
+				}
+				/*model*/
+				$.ajax({
+					url: 'index.php?r=o2o/Advisory/SinglesDay',
+					type: 'POST',
+					dataType: 'html',
+					data: $('#singlesDay').serialize(),
+					success: function (message) {
+						model(message, '返回首页');
+					},
+					error: function (message) {
+						model('标题', '咨询失败');
+					}
+				});
+				function model(title, content) {
+					$('.model-box').css('display', 'inline');
+					$('.model').height(window.screen.height);
+					$('.model-title').html(title);
+					$('.model-content').html(content);
+				}
+			}
+		);
+		$scope.TypeList = [
+			{'id': 1, 'name': '至惠套餐', 'parent': 1, type: '3'},
+			{'id': 2, 'name': '至悦套餐', 'parent': 1, type: '3'},
+			{'id': 3, 'name': '至享套餐', 'parent': 1, type: '3'},
+			{'id': 4, 'name': '至尊套餐', 'parent': 1, type: '3'}
+		];
+	}])
+</script>
+<script>
+	var calendar = new LCalendar();
+	calendar.init({
+		'trigger': '#demo1', //标签id
+		'type': 'date', //date 调出日期选择 datetime 调出日期时间选择 time 调出时间选择 ym 调出年月选择,
+		'minDate': '1900-1-1', //最小日期
+		'maxDate': (new Date().getFullYear() + 10) + '-' + (new Date().getMonth() + 1) + '-' + new Date().getDate() //最大日期
+	});
+</script>

+ 5 - 5
www/webapp/common/css/common.css

@@ -190,7 +190,7 @@
 	width: 100%;
 	width: 100%;
 	position: fixed;
 	position: fixed;
 	bottom: 0;
 	bottom: 0;
-	background-color: #2a2400;
+	background-color: #2f004e;
 }
 }
 
 
 .prevent-scroll .width-percent-33 .title-container-square {
 .prevent-scroll .width-percent-33 .title-container-square {
@@ -241,7 +241,7 @@
 }
 }
 
 
 .prevent-scroll .width-percent-33:nth-child(1) a .name {
 .prevent-scroll .width-percent-33:nth-child(1) a .name {
-	color: #b89400;
+	color: #fffefa;
 }
 }
 
 
 .prevent-scroll .width-percent-33:nth-child(2) a .logo {
 .prevent-scroll .width-percent-33:nth-child(2) a .logo {
@@ -250,8 +250,8 @@
 	padding: 25%;
 	padding: 25%;
 	background-size: 100%;
 	background-size: 100%;
 	margin-top: -15px;
 	margin-top: -15px;
-	background: url("http://odulvej8l.bkt.clouddn.com/tab_butler.png") 0 0 no-repeat #2a2400;
-	background-size: 65% 65%;
+	background:url(http://odulvej8l.bkt.clouddn.com/tab_butler.png) 0 0 no-repeat #2f004e;
+	background-size: 75% 75%;
 	background-position: center;
 	background-position: center;
 }
 }
 
 
@@ -264,7 +264,7 @@
 }
 }
 
 
 .prevent-scroll .width-percent-33:nth-child(3) a .name {
 .prevent-scroll .width-percent-33:nth-child(3) a .name {
-	color: #b89400;
+	color: #fffefa;
 }
 }
 
 
 .prevent-scroll .width-percent-33:nth-child(3) a:active .logo {
 .prevent-scroll .width-percent-33:nth-child(3) a:active .logo {

+ 59 - 3
www/webapp/o2o/css/home.css

@@ -205,13 +205,15 @@ body {
 	font-family: 'Helvetica', 'Arial', sans-serif;
 	font-family: 'Helvetica', 'Arial', sans-serif;
 	font-weight: lighter;
 	font-weight: lighter;
 }
 }
-.nav-li-box{
+
+.nav-li-box {
 	position: relative;
 	position: relative;
 	width: 20px;
 	width: 20px;
 	height: 20px;
 	height: 20px;
 	border-radius: 50%;
 	border-radius: 50%;
 	background: black;
 	background: black;
 }
 }
+
 .nav-li {
 .nav-li {
 	cursor: pointer;
 	cursor: pointer;
 	display: block;
 	display: block;
@@ -221,28 +223,82 @@ body {
 	border-radius: 50%;
 	border-radius: 50%;
 	visibility: visible;
 	visibility: visible;
 }
 }
+
 .nav-li hr {
 .nav-li hr {
 	border: 1px solid #ffffff;
 	border: 1px solid #ffffff;
 	width: 100%;
 	width: 100%;
 	margin: 7px 0;
 	margin: 7px 0;
 	border-radius: 10%;
 	border-radius: 10%;
 }
 }
-.rotatel{
+
+.rotatel {
 	transform: rotate(-45deg);
 	transform: rotate(-45deg);
 	top: 3px;
 	top: 3px;
 	left: 2px;
 	left: 2px;
 }
 }
-.rotater{
+
+.rotater {
 	transform: rotate(45deg);
 	transform: rotate(45deg);
 	top: 10px;
 	top: 10px;
 }
 }
+
 .navli-1 {
 .navli-1 {
 	transition: 500ms;
 	transition: 500ms;
 	position: absolute;
 	position: absolute;
 }
 }
+
 .navli-2 {
 .navli-2 {
 	transition: 500ms;
 	transition: 500ms;
 	top: 3px;
 	top: 3px;
 	position: absolute;
 	position: absolute;
 	left: 1px;
 	left: 1px;
+}
+
+.box {
+	width: 100%;
+	position: relative;
+}
+
+.box .box-package {
+	width: 33%;
+	height: 100%;
+	top: 0;
+	left: 0;
+	position: absolute;
+	background-color: #00a0e9;
+}
+
+.box .box-package div {
+	width: 100%;
+	height: 25%;
+}
+
+.box .box-package div:nth-child(1) {
+	background-color: #17e936;
+}
+
+.box .box-package div:nth-child(2) {
+	background-color: #70b6e9;
+}
+
+.box .box-package div:nth-child(3) {
+	background-color: #e98d7a;
+}
+
+.box .box-package div:nth-child(4) {
+	background-color: #3954e9;
+}
+
+.box .characteristic {
+position: absolute;
+	top: 0;
+	right: 0%;
+	width: 70%;
+	height: 100%;
+	background-color: #dcd90f;
+}
+
+.box img {
+	width: 100%;
+	display: inline-block;
 }
 }

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
www/webapp/o2o/dist/css/main.css


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
www/webapp/o2o/dist/js/build/template.js


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
www/webapp/o2o/dist/js/main.js


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
www/webapp/o2o/dist/js/page/home.js


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

@@ -0,0 +1 @@
+define(["$","template","IScroll","recharge","native","config","user","product"],function(e,t,n,r,i,s,o,u){function a(t){t.preventDefault(),e(document).trigger("spa:navigate",{hash:"",pushData:{dontNeedReload:!0}})}return{title:"至惠套餐",body:"",init:function(t,n){var r=this,i=e(document);r.on("swipeRight",function(e){a.call(this,e)}),e.newTouch(".back-button",function(e){a.call(this,e)},r),r.on("tapBackButton",function(e){a.call(this,e)}),e.newTouch(".im",function(e){e.preventDefault(),console.log("测试"),window.location.href="/index.php?r=o2o/advisory/xyhIm"},r),e.newTouch(".btn-action-my-order",function(e){e.preventDefault(),i.trigger("spa:navigate",{hash:"",pushData:{needReset:!0}})},r),e.newTouch(".appointment",function(e){e.preventDefault(),i.trigger("spa:navigate",{hash:"",pushData:{needReset:!0}})},r),n.resolve()},beforeopen:function(e,t){t.resolve()},afteropen:function(i,o){var u=this,a=e(document);i.pushData.dontNeedReload||(a.trigger("spa:openloader"),r.getRechargeList(function(r){a.trigger("spa:closeloader");if(r.success){var o=t("month/Consultation",{showNavBar:!s.isWX,recharges:r.data,title:"至惠套餐"});e(".spa-page-body",u).html(o),setTimeout(function(){i.scroll=new n("#ConsultationScroll")},500)}})),o.resolve()},beforeclose:function(e,t){t.resolve()}}});

+ 1 - 1
www/webapp/o2o/dist/js/page/month/four.js

@@ -1 +1 @@
-define(["$","template","IScroll","recharge","native","config","user","product"],function(e,t,n,r,i,s,o,u){function a(t){t.preventDefault(),e(document).trigger("spa:navigate",{hash:"",pushData:{dontNeedReload:!0}})}return{title:"双十一活动",body:"",init:function(t,n){var r=this,i=e(document);r.on("swipeRight",function(e){a.call(this,e)}),setInterval(function(){e(".product2-img").fadeToggle()},500),e.newTouch(".back-button",function(e){a.call(this,e)},r),r.on("tapBackButton",function(e){a.call(this,e)}),e.newTouch(".im",function(e){e.preventDefault(),e.preventDefault(),window.location.href="/index.php?r=o2o/advisory/xyhIm"},r),e.newTouch(".btn-action-my-order",function(e){e.preventDefault(),i.trigger("spa:navigate",{hash:"",pushData:{needReset:!0}})},r),e.newTouch(".btn-action-coupon",function(e){e.preventDefault(),o.checkLogin(function(){i.trigger("spa:navigate",{hash:"mine",pushData:{needReset:!0}})})},r),n.resolve()},beforeopen:function(e,t){t.resolve()},afteropen:function(i,o){var u=this,a=e(document);i.pushData.dontNeedReload||(a.trigger("spa:openloader"),r.getRechargeList(function(r){a.trigger("spa:closeloader");if(r.success){var o=t("month/four",{showNavBar:!s.isWX,recharges:r.data,title:"至尊套餐"});e(".spa-page-body",u).html(o),setTimeout(function(){i.scroll=new n("#monthFourScroll")},500)}})),o.resolve()},beforeclose:function(e,t){t.resolve()}}});
+define(["$","template","IScroll","recharge","native","config","user","product"],function(e,t,n,r,i,s,o,u){function a(t){t.preventDefault(),e(document).trigger("spa:navigate",{hash:"",pushData:{dontNeedReload:!0}})}return{title:"双十一活动",body:"",init:function(t,n){var r=this,i=e(document);r.on("swipeRight",function(e){a.call(this,e)}),e.newTouch(".back-button",function(e){a.call(this,e)},r),r.on("tapBackButton",function(e){a.call(this,e)}),e.newTouch(".appointment",function(e){e.preventDefault(),window.location.href="/index.php?r=o2o/advisory/month"},r),e.newTouch(".im",function(e){e.preventDefault(),console.log("测试"),window.location.href="/index.php?r=o2o/advisory/xyhIm"},r),n.resolve()},beforeopen:function(e,t){t.resolve()},afteropen:function(i,o){var u=this,a=e(document);i.pushData.dontNeedReload||(a.trigger("spa:openloader"),r.getRechargeList(function(r){a.trigger("spa:closeloader");if(r.success){var o=t("month/four",{showNavBar:!s.isWX,recharges:r.data,title:"至尊套餐"});e(".spa-page-body",u).html(o),setTimeout(function(){i.scroll=new n("#monthFourScroll")},500)}})),o.resolve()},beforeclose:function(e,t){t.resolve()}}});

+ 1 - 1
www/webapp/o2o/dist/js/page/month/one.js

@@ -1 +1 @@
-define(["$","template","IScroll","recharge","native","config","user","product"],function(e,t,n,r,i,s,o,u){function a(t){t.preventDefault(),e(document).trigger("spa:navigate",{hash:"",pushData:{dontNeedReload:!0}})}return{title:"至惠套餐",body:"",init:function(t,n){var r=this,i=e(document);r.on("swipeRight",function(e){a.call(this,e)}),e.newTouch(".back-button",function(e){a.call(this,e)},r),r.on("tapBackButton",function(e){a.call(this,e)}),e.newTouch(".im",function(e){e.preventDefault(),console.log("测试"),window.location.href="/index.php?r=o2o/advisory/xyhIm"},r),e.newTouch(".btn-action-my-order",function(e){e.preventDefault(),i.trigger("spa:navigate",{hash:"",pushData:{needReset:!0}})},r),e.newTouch(".appointment",function(e){e.preventDefault(),i.trigger("spa:navigate",{hash:"",pushData:{needReset:!0}})},r),n.resolve()},beforeopen:function(e,t){t.resolve()},afteropen:function(i,o){var u=this,a=e(document);i.pushData.dontNeedReload||(a.trigger("spa:openloader"),r.getRechargeList(function(r){a.trigger("spa:closeloader");if(r.success){var o=t("month/one",{showNavBar:!s.isWX,recharges:r.data,title:"至惠套餐"});e(".spa-page-body",u).html(o),setTimeout(function(){i.scroll=new n("#monthOneScroll")},500)}})),o.resolve()},beforeclose:function(e,t){t.resolve()}}});
+define(["$","template","IScroll","recharge","native","config","user","product"],function(e,t,n,r,i,s,o,u){function a(t){t.preventDefault(),e(document).trigger("spa:navigate",{hash:"",pushData:{dontNeedReload:!0}})}return{title:"至惠套餐",body:"",init:function(t,n){var r=this,i=e(document);r.on("swipeRight",function(e){a.call(this,e)}),e.newTouch(".back-button",function(e){a.call(this,e)},r),r.on("tapBackButton",function(e){a.call(this,e)}),e.newTouch(".appointment",function(e){e.preventDefault(),window.location.href="/index.php?r=o2o/advisory/month"},r),e.newTouch(".im",function(e){e.preventDefault(),console.log("测试"),window.location.href="/index.php?r=o2o/advisory/xyhIm"},r),n.resolve()},beforeopen:function(e,t){t.resolve()},afteropen:function(i,o){var u=this,a=e(document);i.pushData.dontNeedReload||(a.trigger("spa:openloader"),r.getRechargeList(function(r){a.trigger("spa:closeloader");if(r.success){var o=t("month/one",{showNavBar:!s.isWX,recharges:r.data,title:"至惠套餐"});e(".spa-page-body",u).html(o),setTimeout(function(){i.scroll=new n("#monthOneScroll")},500)}})),o.resolve()},beforeclose:function(e,t){t.resolve()}}});

+ 1 - 1
www/webapp/o2o/dist/js/page/month/three.js

@@ -1 +1 @@
-define(["$","template","IScroll","recharge","native","config","user","product"],function(e,t,n,r,i,s,o,u){function a(t){t.preventDefault(),e(document).trigger("spa:navigate",{hash:"",pushData:{dontNeedReload:!0}})}return{title:"双十一活动",body:"",init:function(t,n){var r=this,i=e(document);r.on("swipeRight",function(e){a.call(this,e)}),setInterval(function(){e(".product2-img").fadeToggle()},500),e.newTouch(".back-button",function(e){a.call(this,e)},r),r.on("tapBackButton",function(e){a.call(this,e)}),e.newTouch(".im",function(e){e.preventDefault(),e.preventDefault(),window.location.href="/index.php?r=o2o/advisory/xyhIm"},r),e.newTouch(".btn-action-my-order",function(e){e.preventDefault(),i.trigger("spa:navigate",{hash:"",pushData:{needReset:!0}})},r),e.newTouch(".btn-action-coupon",function(e){e.preventDefault(),o.checkLogin(function(){i.trigger("spa:navigate",{hash:"mine",pushData:{needReset:!0}})})},r),n.resolve()},beforeopen:function(e,t){t.resolve()},afteropen:function(i,o){var u=this,a=e(document);i.pushData.dontNeedReload||(a.trigger("spa:openloader"),r.getRechargeList(function(r){a.trigger("spa:closeloader");if(r.success){var o=t("month/three",{showNavBar:!s.isWX,recharges:r.data,title:"至享套餐"});e(".spa-page-body",u).html(o),setTimeout(function(){i.scroll=new n("#monthThreeScroll")},500)}})),o.resolve()},beforeclose:function(e,t){t.resolve()}}});
+define(["$","template","IScroll","recharge","native","config","user","product"],function(e,t,n,r,i,s,o,u){function a(t){t.preventDefault(),e(document).trigger("spa:navigate",{hash:"",pushData:{dontNeedReload:!0}})}return{title:"双十一活动",body:"",init:function(t,n){var r=this,i=e(document);r.on("swipeRight",function(e){a.call(this,e)}),e.newTouch(".back-button",function(e){a.call(this,e)},r),r.on("tapBackButton",function(e){a.call(this,e)}),e.newTouch(".appointment",function(e){e.preventDefault(),window.location.href="/index.php?r=o2o/advisory/month"},r),e.newTouch(".im",function(e){e.preventDefault(),console.log("测试"),window.location.href="/index.php?r=o2o/advisory/xyhIm"},r),n.resolve()},beforeopen:function(e,t){t.resolve()},afteropen:function(i,o){var u=this,a=e(document);i.pushData.dontNeedReload||(a.trigger("spa:openloader"),r.getRechargeList(function(r){a.trigger("spa:closeloader");if(r.success){var o=t("month/three",{showNavBar:!s.isWX,recharges:r.data,title:"至享套餐"});e(".spa-page-body",u).html(o),setTimeout(function(){i.scroll=new n("#monthThreeScroll")},500)}})),o.resolve()},beforeclose:function(e,t){t.resolve()}}});

+ 1 - 1
www/webapp/o2o/dist/js/page/month/two.js

@@ -1 +1 @@
-define(["$","template","IScroll","recharge","native","config","user","product"],function(e,t,n,r,i,s,o,u){function a(t){t.preventDefault(),e(document).trigger("spa:navigate",{hash:"",pushData:{dontNeedReload:!0}})}return{title:"双十一活动",body:"",init:function(t,n){var r=this,i=e(document);r.on("swipeRight",function(e){a.call(this,e)}),setInterval(function(){e(".product2-img").fadeToggle()},500),e.newTouch(".back-button",function(e){a.call(this,e)},r),r.on("tapBackButton",function(e){a.call(this,e)}),e.newTouch(".im",function(e){e.preventDefault(),e.preventDefault(),window.location.href="/index.php?r=o2o/advisory/xyhIm"},r),e.newTouch(".btn-action-my-order",function(e){e.preventDefault(),i.trigger("spa:navigate",{hash:"",pushData:{needReset:!0}})},r),e.newTouch(".btn-action-coupon",function(e){e.preventDefault(),o.checkLogin(function(){i.trigger("spa:navigate",{hash:"mine",pushData:{needReset:!0}})})},r),n.resolve()},beforeopen:function(e,t){t.resolve()},afteropen:function(i,o){var u=this,a=e(document);i.pushData.dontNeedReload||(a.trigger("spa:openloader"),r.getRechargeList(function(r){a.trigger("spa:closeloader");if(r.success){var o=t("month/two",{showNavBar:!s.isWX,recharges:r.data,title:"至悦套餐"});e(".spa-page-body",u).html(o),setTimeout(function(){i.scroll=new n("#monthTwoScroll")},500)}})),o.resolve()},beforeclose:function(e,t){t.resolve()}}});
+define(["$","template","IScroll","recharge","native","config","user","product"],function(e,t,n,r,i,s,o,u){function a(t){t.preventDefault(),e(document).trigger("spa:navigate",{hash:"",pushData:{dontNeedReload:!0}})}return{title:"双十一活动",body:"",init:function(t,n){var r=this,i=e(document);r.on("swipeRight",function(e){a.call(this,e)}),e.newTouch(".back-button",function(e){a.call(this,e)},r),r.on("tapBackButton",function(e){a.call(this,e)}),e.newTouch(".appointment",function(e){e.preventDefault(),window.location.href="/index.php?r=o2o/advisory/month"},r),e.newTouch(".im",function(e){e.preventDefault(),console.log("测试"),window.location.href="/index.php?r=o2o/advisory/xyhIm"},r),n.resolve()},beforeopen:function(e,t){t.resolve()},afteropen:function(i,o){var u=this,a=e(document);i.pushData.dontNeedReload||(a.trigger("spa:openloader"),r.getRechargeList(function(r){a.trigger("spa:closeloader");if(r.success){var o=t("month/two",{showNavBar:!s.isWX,recharges:r.data,title:"至悦套餐"});e(".spa-page-body",u).html(o),setTimeout(function(){i.scroll=new n("#monthTwoScroll")},500)}})),o.resolve()},beforeclose:function(e,t){t.resolve()}}});

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
www/webapp/o2o/js/build/template.js


+ 13 - 1
www/webapp/o2o/js/main.js

@@ -63,6 +63,7 @@ require.config({
 		pageMonthTwo:'./page/month/two',
 		pageMonthTwo:'./page/month/two',
 		pageMonthThree:'./page/month/three',
 		pageMonthThree:'./page/month/three',
 		pageMonthFour:'./page/month/four',
 		pageMonthFour:'./page/month/four',
+		pageMonthConsultation:'./page/month/Consultation',
 
 
 
 
 		pageAppend: './page/append',
 		pageAppend: './page/append',
@@ -497,6 +498,17 @@ require(['$', 'spa', 'native', 'helper', 'ratchet', 'config', 'user'], function
 			});
 			});
 		}
 		}
 	};
 	};
+	var pageMonthConsultation={
+		route:'month-Consultation',
+		classname:'month-Consultation',
+		animate:'pushInLeft',
+		view:function () {
+			var $page=this;
+			requirejs(["pageMonthConsultation"],function (viewData) {
+				$doc.trigger('spa:initpage',[$page,viewData])
+			});
+		}
+	};
 
 
 	// 追加服务
 	// 追加服务
 	var pageAppend = {
 	var pageAppend = {
@@ -598,7 +610,7 @@ require(['$', 'spa', 'native', 'helper', 'ratchet', 'config', 'user'], function
 		}
 		}
 	};
 	};
 
 
-	$doc.trigger('spa:route', [pageHome, pageRecharge, pageAbout, pageLongOrder, pageHelp, pageMine, pageSecondary, pageHomestay, pageHomeenterprise, pageProduct, pageProductInfo, pageDesc, pagePlaceOrder, pagePicker, pagePay, pageAppendPay, pagePaySuccess, pageMyOrder, pageMyOrderDetail, pageMyCoupon, pageAgreement, pageAddressList, pageAddressAdd, pageAddressDetail, pageAddressPoisiton, pageHire, pageComing, pageActivityCat, pageActivityText, pageActivityRule,pageMonthOne,pageMonthTwo,pageMonthThree,pageMonthFour, pageAppend, pageRefund, pageRefundSuccess, pageOrderDone, pageBeautician, pageBeauticianDetail]);
+	$doc.trigger('spa:route', [pageHome, pageRecharge, pageAbout, pageLongOrder, pageHelp, pageMine, pageSecondary, pageHomestay, pageHomeenterprise, pageProduct, pageProductInfo, pageDesc, pagePlaceOrder, pagePicker, pagePay, pageAppendPay, pagePaySuccess, pageMyOrder, pageMyOrderDetail, pageMyCoupon, pageAgreement, pageAddressList, pageAddressAdd, pageAddressDetail, pageAddressPoisiton, pageHire, pageComing, pageActivityCat, pageActivityText, pageActivityRule,pageMonthOne,pageMonthTwo,pageMonthThree,pageMonthFour, pageMonthConsultation,pageAppend, pageRefund, pageRefundSuccess, pageOrderDone, pageBeautician, pageBeauticianDetail]);
 
 
 	var panelAlert = {
 	var panelAlert = {
 		id: 'simpleAlert',
 		id: 'simpleAlert',

+ 15 - 26
www/webapp/o2o/js/page/home.js

@@ -129,34 +129,23 @@ define(['$', 'template', 'IScroll', 'product', 'user', 'native', 'config', 'addr
 			}, $view);
 			}, $view);
 
 
 
 
-
-
-
+			//预约
+			$.newTouch('.appointment', function (event) {
+				event.preventDefault();
+				window.location.href = '/index.php?r=o2o/advisory/month';
+			}, $view);
+			// 咨询
+			$.newTouch('.im', function (event) {
+				event.preventDefault();
+				console.log("测试");
+				window.location.href = '/index.php?r=o2o/advisory/xyhIm';
+			}, $view);
 			// im
 			// im
 			$.newTouch('.btn-action-logo', function (event) {
 			$.newTouch('.btn-action-logo', function (event) {
 				event.preventDefault();
 				event.preventDefault();
-				window.location.href = '/index.php?r=o2o/advisory/im';
+				window.location.href = '/index.php?r=o2o/advisory/xyhIm';
 			}, $view);
 			}, $view);
 			// 个人中心
 			// 个人中心
-			$.newTouch('.btn-action-coupon', function (event) {
-				event.preventDefault();
-				user.checkLogin(function () {
-					$doc.trigger('spa:navigate', {
-						hash: 'mine',
-						pushData: {
-							needReset: true
-						}
-					});
-				});
-			}, $view);
-			/* 招聘
-			 $.newTouch('.btn-action-hire', function () {
-			 event.preventDefault();
-			 $doc.trigger('spa:navigate', {
-			 hash: 'hire'
-			 });
-			 }, $view); */
-			/* 不知道什么意思。*/
 			dtd.resolve();
 			dtd.resolve();
 			/* 跳转到填写订单页面
 			/* 跳转到填写订单页面
 			 function goProductPage(type) {
 			 function goProductPage(type) {
@@ -223,13 +212,13 @@ define(['$', 'template', 'IScroll', 'product', 'user', 'native', 'config', 'addr
 		afteropen: function (pageData, dtd) {
 		afteropen: function (pageData, dtd) {
 			var $view = this;
 			var $view = this;
 			var $doc = $(document);
 			var $doc = $(document);
-			setTimeout(function () {
-				/*设置页面高度*/
+			/*setTimeout(function () {
+				/!*设置页面高度*!/
 				var homeBox = $('.home-box');
 				var homeBox = $('.home-box');
 				var boxAlignCenter = $('.box-align-center').height();
 				var boxAlignCenter = $('.box-align-center').height();
 				var preventScroll = $('.prevent-scroll').height();
 				var preventScroll = $('.prevent-scroll').height();
 				homeBox.height(boxAlignCenter * 2.2 + preventScroll);
 				homeBox.height(boxAlignCenter * 2.2 + preventScroll);
-			}, 500);
+			}, 500);*/
 			/* 如果需要重新加载,就请求服务列表。 */
 			/* 如果需要重新加载,就请求服务列表。 */
 			if (!pageData.pushData.dontNeedReload) {
 			if (!pageData.pushData.dontNeedReload) {
 
 

+ 97 - 0
www/webapp/o2o/js/page/month/Consultation.js

@@ -0,0 +1,97 @@
+/**
+ * Created by Jinguo on 2016/12/15.
+ */
+define(['$', 'template', 'IScroll', 'recharge', 'native', 'config', 'user', 'product'], function ($, template, IScroll, recharge, native, config, user, product) {
+
+	function back(event) {
+		event.preventDefault();
+		$(document).trigger('spa:navigate', {
+			hash:'',
+			pushData: {
+				dontNeedReload: true
+			}
+		});
+	}
+
+	return {
+		title: '至惠套餐',
+		body: '',
+		init: function (pageData, dtd) {
+			/* this是什么? */
+			var $view = this;
+			var $doc = $(document);
+
+			// 返回
+			$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);
+			});
+
+			// im
+			$.newTouch('.im', function (event) {
+				event.preventDefault();
+				console.log("测试");
+				window.location.href = '/index.php?r=o2o/advisory/xyhIm';
+			}, $view);
+
+			// 首页
+			$.newTouch('.btn-action-my-order', function (event) {
+				event.preventDefault();
+				$doc.trigger('spa:navigate', {
+					hash: '',
+					pushData: {
+						needReset: true
+					}
+				});
+			}, $view);
+			// 预约
+			$.newTouch('.appointment', function (event) {
+				event.preventDefault();
+				$doc.trigger('spa:navigate', {
+					hash: '',
+					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.dontNeedReload) {
+				$doc.trigger('spa:openloader');
+				recharge.getRechargeList(function (res) {
+					$doc.trigger('spa:closeloader');
+					if (res.success) {
+						var tpl = template('month/Consultation', {
+							showNavBar: !config.isWX,
+							recharges: res.data,
+							title:"至惠套餐"
+						});
+						$('.spa-page-body', $view).html(tpl);
+						setTimeout(function () {
+							pageData.scroll = new IScroll('#ConsultationScroll');
+						}, 500);
+					}
+				});
+			}
+
+			dtd.resolve();
+		},
+		beforeclose: function (pageData, dtd) {
+			dtd.resolve();
+		}
+	}
+})

+ 8 - 36
www/webapp/o2o/js/page/month/four.js

@@ -17,56 +17,28 @@ define(['$', 'template', 'IScroll', 'recharge', 'native', 'config', 'user', 'pro
 		title: '双十一活动',
 		title: '双十一活动',
 		body: '',
 		body: '',
 		init: function (pageData, dtd) {
 		init: function (pageData, dtd) {
-			/* this是什么? */
 			var $view = this;
 			var $view = this;
 			var $doc = $(document);
 			var $doc = $(document);
-
-			// 返回
+			// 三个返回
 			$view.on('swipeRight', function (event) {
 			$view.on('swipeRight', function (event) {
 				back.call(this, event);
 				back.call(this, event);
 			});
 			});
-
-			/*特效*/
-			setInterval(function run() {
-				$('.product2-img').fadeToggle();
-			}, 500);
-
 			$.newTouch('.back-button', function (event) {
 			$.newTouch('.back-button', function (event) {
 				back.call(this, event);
 				back.call(this, event);
 			}, $view);
 			}, $view);
-
 			$view.on('tapBackButton', function (event) {
 			$view.on('tapBackButton', function (event) {
 				back.call(this, event);
 				back.call(this, event);
 			});
 			});
-
-			// im
-			$.newTouch('.im', function (event) {
-				event.preventDefault();
-				event.preventDefault();
-				window.location.href = '/index.php?r=o2o/advisory/xyhIm';
-			}, $view);
-
-			// 首页
-			$.newTouch('.btn-action-my-order', function (event) {
+			//预约
+			$.newTouch('.appointment', function (event) {
 				event.preventDefault();
 				event.preventDefault();
-				$doc.trigger('spa:navigate', {
-					hash: '',
-					pushData: {
-						needReset: true
-					}
-				});
+				window.location.href = '/index.php?r=o2o/advisory/month';
 			}, $view);
 			}, $view);
-			// 个人中心
-			$.newTouch('.btn-action-coupon', function (event) {
+			// 咨询
+			$.newTouch('.im', function (event) {
 				event.preventDefault();
 				event.preventDefault();
-				user.checkLogin(function () {
-					$doc.trigger('spa:navigate', {
-						hash: 'mine',
-						pushData: {
-							needReset: true
-						}
-					});
-				});
+				console.log("测试");
+				window.location.href = '/index.php?r=o2o/advisory/xyhIm';
 			}, $view);
 			}, $view);
 			dtd.resolve();
 			dtd.resolve();
 		},
 		},

+ 9 - 33
www/webapp/o2o/js/page/month/one.js

@@ -2,65 +2,42 @@
  * Created by Jinguo on 2016/12/15.
  * Created by Jinguo on 2016/12/15.
  */
  */
 define(['$', 'template', 'IScroll', 'recharge', 'native', 'config', 'user', 'product'], function ($, template, IScroll, recharge, native, config, user, product) {
 define(['$', 'template', 'IScroll', 'recharge', 'native', 'config', 'user', 'product'], function ($, template, IScroll, recharge, native, config, user, product) {
-
 	function back(event) {
 	function back(event) {
 		event.preventDefault();
 		event.preventDefault();
 		$(document).trigger('spa:navigate', {
 		$(document).trigger('spa:navigate', {
-			hash:'',
+			hash: '',
 			pushData: {
 			pushData: {
 				dontNeedReload: true
 				dontNeedReload: true
 			}
 			}
 		});
 		});
 	}
 	}
-
 	return {
 	return {
 		title: '至惠套餐',
 		title: '至惠套餐',
 		body: '',
 		body: '',
 		init: function (pageData, dtd) {
 		init: function (pageData, dtd) {
-			/* this是什么? */
 			var $view = this;
 			var $view = this;
 			var $doc = $(document);
 			var $doc = $(document);
-
-			// 返回
+			// 三个返回
 			$view.on('swipeRight', function (event) {
 			$view.on('swipeRight', function (event) {
 				back.call(this, event);
 				back.call(this, event);
 			});
 			});
-
 			$.newTouch('.back-button', function (event) {
 			$.newTouch('.back-button', function (event) {
 				back.call(this, event);
 				back.call(this, event);
 			}, $view);
 			}, $view);
-
 			$view.on('tapBackButton', function (event) {
 			$view.on('tapBackButton', function (event) {
 				back.call(this, event);
 				back.call(this, event);
 			});
 			});
-
-			// im
+			//预约
+			$.newTouch('.appointment', function (event) {
+				event.preventDefault();
+				window.location.href = '/index.php?r=o2o/advisory/month';
+			}, $view);
+			// 咨询
 			$.newTouch('.im', function (event) {
 			$.newTouch('.im', function (event) {
 				event.preventDefault();
 				event.preventDefault();
 				console.log("测试");
 				console.log("测试");
 				window.location.href = '/index.php?r=o2o/advisory/xyhIm';
 				window.location.href = '/index.php?r=o2o/advisory/xyhIm';
 			}, $view);
 			}, $view);
-
-			// 首页
-			$.newTouch('.btn-action-my-order', function (event) {
-				event.preventDefault();
-				$doc.trigger('spa:navigate', {
-					hash: '',
-					pushData: {
-						needReset: true
-					}
-				});
-			}, $view);
-			// 预约
-			$.newTouch('.appointment', function (event) {
-				event.preventDefault();
-				$doc.trigger('spa:navigate', {
-					hash: '',
-					pushData: {
-						needReset: true
-					}
-				});
-			}, $view);
 			dtd.resolve();
 			dtd.resolve();
 		},
 		},
 		beforeopen: function (pageData, dtd) {
 		beforeopen: function (pageData, dtd) {
@@ -78,7 +55,7 @@ define(['$', 'template', 'IScroll', 'recharge', 'native', 'config', 'user', 'pro
 						var tpl = template('month/one', {
 						var tpl = template('month/one', {
 							showNavBar: !config.isWX,
 							showNavBar: !config.isWX,
 							recharges: res.data,
 							recharges: res.data,
-							title:"至惠套餐"
+							title: "至惠套餐"
 						});
 						});
 						$('.spa-page-body', $view).html(tpl);
 						$('.spa-page-body', $view).html(tpl);
 						setTimeout(function () {
 						setTimeout(function () {
@@ -87,7 +64,6 @@ define(['$', 'template', 'IScroll', 'recharge', 'native', 'config', 'user', 'pro
 					}
 					}
 				});
 				});
 			}
 			}
-
 			dtd.resolve();
 			dtd.resolve();
 		},
 		},
 		beforeclose: function (pageData, dtd) {
 		beforeclose: function (pageData, dtd) {

+ 8 - 36
www/webapp/o2o/js/page/month/three.js

@@ -17,56 +17,28 @@ define(['$', 'template', 'IScroll', 'recharge', 'native', 'config', 'user', 'pro
 		title: '双十一活动',
 		title: '双十一活动',
 		body: '',
 		body: '',
 		init: function (pageData, dtd) {
 		init: function (pageData, dtd) {
-			/* this是什么? */
 			var $view = this;
 			var $view = this;
 			var $doc = $(document);
 			var $doc = $(document);
-
-			// 返回
+			// 三个返回
 			$view.on('swipeRight', function (event) {
 			$view.on('swipeRight', function (event) {
 				back.call(this, event);
 				back.call(this, event);
 			});
 			});
-
-			/*特效*/
-			setInterval(function run() {
-				$('.product2-img').fadeToggle();
-			}, 500);
-
 			$.newTouch('.back-button', function (event) {
 			$.newTouch('.back-button', function (event) {
 				back.call(this, event);
 				back.call(this, event);
 			}, $view);
 			}, $view);
-
 			$view.on('tapBackButton', function (event) {
 			$view.on('tapBackButton', function (event) {
 				back.call(this, event);
 				back.call(this, event);
 			});
 			});
-
-			// im
-			$.newTouch('.im', function (event) {
-				event.preventDefault();
-				event.preventDefault();
-				window.location.href = '/index.php?r=o2o/advisory/xyhIm';
-			}, $view);
-
-			// 首页
-			$.newTouch('.btn-action-my-order', function (event) {
+			//预约
+			$.newTouch('.appointment', function (event) {
 				event.preventDefault();
 				event.preventDefault();
-				$doc.trigger('spa:navigate', {
-					hash: '',
-					pushData: {
-						needReset: true
-					}
-				});
+				window.location.href = '/index.php?r=o2o/advisory/month';
 			}, $view);
 			}, $view);
-			// 个人中心
-			$.newTouch('.btn-action-coupon', function (event) {
+			// 咨询
+			$.newTouch('.im', function (event) {
 				event.preventDefault();
 				event.preventDefault();
-				user.checkLogin(function () {
-					$doc.trigger('spa:navigate', {
-						hash: 'mine',
-						pushData: {
-							needReset: true
-						}
-					});
-				});
+				console.log("测试");
+				window.location.href = '/index.php?r=o2o/advisory/xyhIm';
 			}, $view);
 			}, $view);
 			dtd.resolve();
 			dtd.resolve();
 		},
 		},

+ 8 - 36
www/webapp/o2o/js/page/month/two.js

@@ -17,56 +17,28 @@ define(['$', 'template', 'IScroll', 'recharge', 'native', 'config', 'user', 'pro
 		title: '双十一活动',
 		title: '双十一活动',
 		body: '',
 		body: '',
 		init: function (pageData, dtd) {
 		init: function (pageData, dtd) {
-			/* this是什么? */
 			var $view = this;
 			var $view = this;
 			var $doc = $(document);
 			var $doc = $(document);
-
-			// 返回
+			// 三个返回
 			$view.on('swipeRight', function (event) {
 			$view.on('swipeRight', function (event) {
 				back.call(this, event);
 				back.call(this, event);
 			});
 			});
-
-			/*特效*/
-			setInterval(function run() {
-				$('.product2-img').fadeToggle();
-			}, 500);
-
 			$.newTouch('.back-button', function (event) {
 			$.newTouch('.back-button', function (event) {
 				back.call(this, event);
 				back.call(this, event);
 			}, $view);
 			}, $view);
-
 			$view.on('tapBackButton', function (event) {
 			$view.on('tapBackButton', function (event) {
 				back.call(this, event);
 				back.call(this, event);
 			});
 			});
-
-			// im
-			$.newTouch('.im', function (event) {
-				event.preventDefault();
-				event.preventDefault();
-				window.location.href = '/index.php?r=o2o/advisory/xyhIm';
-			}, $view);
-
-			// 首页
-			$.newTouch('.btn-action-my-order', function (event) {
+			//预约
+			$.newTouch('.appointment', function (event) {
 				event.preventDefault();
 				event.preventDefault();
-				$doc.trigger('spa:navigate', {
-					hash: '',
-					pushData: {
-						needReset: true
-					}
-				});
+				window.location.href = '/index.php?r=o2o/advisory/month';
 			}, $view);
 			}, $view);
-			// 个人中心
-			$.newTouch('.btn-action-coupon', function (event) {
+			// 咨询
+			$.newTouch('.im', function (event) {
 				event.preventDefault();
 				event.preventDefault();
-				user.checkLogin(function () {
-					$doc.trigger('spa:navigate', {
-						hash: 'mine',
-						pushData: {
-							needReset: true
-						}
-					});
-				});
+				console.log("测试");
+				window.location.href = '/index.php?r=o2o/advisory/xyhIm';
 			}, $view);
 			}, $view);
 			dtd.resolve();
 			dtd.resolve();
 		},
 		},

+ 17 - 6
www/webapp/o2o/tpl/home/index.html

@@ -29,7 +29,7 @@
 						</div>
 						</div>
 						<img class="home-remy lazy" src="http://odulvej8l.bkt.clouddn.com/%E5%9B%BE%E6%A0%87-01.jpg" alt="">
 						<img class="home-remy lazy" src="http://odulvej8l.bkt.clouddn.com/%E5%9B%BE%E6%A0%87-01.jpg" alt="">
 
 
-						<div class="home-box">
+						<!--<div class="home-box">
 							<div class="width-percent-50 box-align-center">
 							<div class="width-percent-50 box-align-center">
 								<img class="month-one" src="http://odulvej8l.bkt.clouddn.com/4-1-01.png"
 								<img class="month-one" src="http://odulvej8l.bkt.clouddn.com/4-1-01.png"
 								     alt="">
 								     alt="">
@@ -44,18 +44,29 @@
 							</div>
 							</div>
 							<div class="width-percent-50  box-align-center">
 							<div class="width-percent-50  box-align-center">
 								<img class="month-four" src="http://odulvej8l.bkt.clouddn.com/4-4-01.png" alt="">
 								<img class="month-four" src="http://odulvej8l.bkt.clouddn.com/4-4-01.png" alt="">
+							</div>-->
+						<div class="box">
+							<img src="http://odulvej8l.bkt.clouddn.com/%E6%9C%88%E5%AD%90.jpg" alt="">
+							<div class="box-package">
+								<div></div>
+								<div></div>
+								<div></div>
+								<div></div>
 							</div>
 							</div>
+							<div class="characteristic"></div>
+						</div>
 						</div>
 						</div>
 					</div>
 					</div>
+				<div style="width: 100%;"></div>
 				</div>
 				</div>
 				<div class="prevent-scroll">
 				<div class="prevent-scroll">
 					<div class="box my-action">
 					<div class="box my-action">
 						<!--首页-->
 						<!--首页-->
 						<div class="width-percent-33">
 						<div class="width-percent-33">
 							<div class="title-container-square">
 							<div class="title-container-square">
-								<a class="btn-home-action btn-action-my-order">
+								<a class="btn-home-action btn-action-my-order appointment">
 									<div class="logo logo-my-order"></div>
 									<div class="logo logo-my-order"></div>
-									<div class="name">首页</div>
+									<div class="name">预约</div>
 								</a>
 								</a>
 							</div>
 							</div>
 						</div>
 						</div>
@@ -70,9 +81,9 @@
 						<!--我的-->
 						<!--我的-->
 						<div class="width-percent-33">
 						<div class="width-percent-33">
 							<div class="title-container-square">
 							<div class="title-container-square">
-								<a class="btn-home-action btn-action-coupon">
-									<div class="logo logo-coupon"></div>
-									<div class="name">我的</div>
+								<a class="btn-home-action appointment">
+									<div class="logo im"></div>
+									<div class="name">咨询</div>
 								</a>
 								</a>
 							</div>
 							</div>
 						</div>
 						</div>

+ 24 - 0
www/webapp/o2o/tpl/month/Consultation.html

@@ -0,0 +1,24 @@
+{{ if showNavBar }}
+<header class="bar bar-nav">
+	<a class="left-button back-button">
+		<div class="icon icon-left-nav"></div>
+	</a>
+	<h1 class="title">{{title}}</h1>
+</header>
+{{ /if }}
+
+<div class="content">
+	<div class="box-container">
+		<div class="box-container box box-vertical">
+			<div id="ConsultationScroll" class="scroll-container box-flex-1" style="background: #dadada;">
+				<div class="scroller">
+					<img
+						src="http://odulvej8l.bkt.clouddn.com/1107%E4%BC%81%E4%B8%9A%E6%9C%8D%E5%8A%A1%E8%AF%A6%E6%83%85%E9%A1%B5.jpg"
+						style="width: 100%;">
+					<!--<div style="width: 100%;padding-bottom:15%; "></div>-->
+				</div>
+				<div class="request"><div class="appointment">预约</div><div class="im">咨询</div></div>
+			</div>
+		</div>
+	</div>
+</div>

+ 0 - 1
www/webapp/o2o/tpl/month/four.html

@@ -15,7 +15,6 @@
 					<img
 					<img
 						src="http://odulvej8l.bkt.clouddn.com/1107%E4%BC%81%E4%B8%9A%E6%9C%8D%E5%8A%A1%E8%AF%A6%E6%83%85%E9%A1%B5.jpg"
 						src="http://odulvej8l.bkt.clouddn.com/1107%E4%BC%81%E4%B8%9A%E6%9C%8D%E5%8A%A1%E8%AF%A6%E6%83%85%E9%A1%B5.jpg"
 						style="width: 100%;">
 						style="width: 100%;">
-					<!--<div style="width: 100%;padding-bottom:15%; "></div>-->
 				</div>
 				</div>
 				<div class="request"><div class="appointment">预约</div><div class="im">咨询</div></div>
 				<div class="request"><div class="appointment">预约</div><div class="im">咨询</div></div>
 			</div>
 			</div>

+ 0 - 1
www/webapp/o2o/tpl/month/one.html

@@ -15,7 +15,6 @@
 					<img
 					<img
 						src="http://odulvej8l.bkt.clouddn.com/1107%E4%BC%81%E4%B8%9A%E6%9C%8D%E5%8A%A1%E8%AF%A6%E6%83%85%E9%A1%B5.jpg"
 						src="http://odulvej8l.bkt.clouddn.com/1107%E4%BC%81%E4%B8%9A%E6%9C%8D%E5%8A%A1%E8%AF%A6%E6%83%85%E9%A1%B5.jpg"
 						style="width: 100%;">
 						style="width: 100%;">
-					<!--<div style="width: 100%;padding-bottom:15%; "></div>-->
 				</div>
 				</div>
 				<div class="request"><div class="appointment">预约</div><div class="im">咨询</div></div>
 				<div class="request"><div class="appointment">预约</div><div class="im">咨询</div></div>
 			</div>
 			</div>

+ 0 - 1
www/webapp/o2o/tpl/month/three.html

@@ -15,7 +15,6 @@
 					<img
 					<img
 						src="http://odulvej8l.bkt.clouddn.com/1107%E4%BC%81%E4%B8%9A%E6%9C%8D%E5%8A%A1%E8%AF%A6%E6%83%85%E9%A1%B5.jpg"
 						src="http://odulvej8l.bkt.clouddn.com/1107%E4%BC%81%E4%B8%9A%E6%9C%8D%E5%8A%A1%E8%AF%A6%E6%83%85%E9%A1%B5.jpg"
 						style="width: 100%;">
 						style="width: 100%;">
-					<!--<div style="width: 100%;padding-bottom:15%; "></div>-->
 				</div>
 				</div>
 				<div class="request"><div class="appointment">预约</div><div class="im">咨询</div></div>
 				<div class="request"><div class="appointment">预约</div><div class="im">咨询</div></div>
 			</div>
 			</div>

+ 0 - 1
www/webapp/o2o/tpl/month/two.html

@@ -15,7 +15,6 @@
 					<img
 					<img
 						src="http://odulvej8l.bkt.clouddn.com/1107%E4%BC%81%E4%B8%9A%E6%9C%8D%E5%8A%A1%E8%AF%A6%E6%83%85%E9%A1%B5.jpg"
 						src="http://odulvej8l.bkt.clouddn.com/1107%E4%BC%81%E4%B8%9A%E6%9C%8D%E5%8A%A1%E8%AF%A6%E6%83%85%E9%A1%B5.jpg"
 						style="width: 100%;">
 						style="width: 100%;">
-					<!--<div style="width: 100%;padding-bottom:15%; "></div>-->
 				</div>
 				</div>
 				<div class="request"><div class="appointment">预约</div><div class="im">咨询</div></div>
 				<div class="request"><div class="appointment">预约</div><div class="im">咨询</div></div>
 			</div>
 			</div>

Энэ ялгаанд хэт олон файл өөрчлөгдсөн тул зарим файлыг харуулаагүй болно