order.js

$(function(){
    serviceHeight();
    $(‘#seconds‘).hide();
    inputFocus();
/*开始接受订单*/
$(‘.btn_order‘).click(function(){
    if( !$(this).hasClass(‘btn_stop‘) ){
        getOrder();
    }
    $(this).toggleClass(‘btn_stop‘);
    $(‘.layer_center‘).toggleClass(‘refuse‘);

    //return false;

})

$(‘input.btn_order‘).focus(function(){
    $(this).blur();
});    

/*隔行换色*/
    stripesTable();

/*退回订单*/
$(‘.back‘).click(function(){
    var orderID = $.trim($(‘.order_no strong‘).text());
    if(confirm(‘您确定要退回订单吗?‘)){
        ajaxSetup(‘back‘,orderID);
    }
})

/*取消订单*/
$(‘.esc‘).click(function(){
    var orderID = $.trim($(‘.order_no strong‘).text());
    if(confirm(‘您确定要取消订单吗?‘)){
        ajaxSetup(‘cancel‘,orderID);
    }
})

/*form 提交表单*/
$(‘#from_menu‘).submit(function(event){
    event.preventDefault();
    /*发送修改 删除记录*/
    var modifyNode = $(‘ul.uldishes li.modify‘);
    var modify_items= [];
    for(var i=0;i<modifyNode.length;i++){
        var cur_modify =  modifyNode.eq(i);
        var ID = cur_modify.find(‘.num‘).text();
        var num = cur_modify.find(‘.amount‘).find(‘.inp‘).val();
        var msg = cur_modify.find(‘.msg‘).text();
        var item = ‘{orderID: ‘+ID+‘, num: ‘+ num +‘, msg: ‘+msg+‘}‘;
        modify_items.push(item);
    }
    console.log(modify_items);
    console.log(del_items);
    var a={modify:[modify_items]};
    /*ajax发送修改 删除的菜品*/
    $.ajax({
        type:‘GET‘,
        url:‘ajax.txt‘,
        data:{ modify:[modify_items],remove:del_items,add:‘111‘},
        success:function(){
            console.log(‘modify:[‘+ modify_items+‘]‘);
        }
    })
    /*提交成功反馈*/
     $.ajax({
        type:‘GET‘,
        url:‘http://huangchen.redcms.com/order/edit.html‘,
        data:‘type=submit&act=edit&oid=1‘,
        success:function(txt){
            alert(‘提交成功‘);
            if( txt == 1){
                $.fancybox.close();
                setTimeout(function(){
                    $.fancybox({
                        ‘href‘:‘#order_tips01‘,
                        ‘showCloseButton‘:false
                    });
                },350);
                setTimeout(function(){
                    $.fancybox.close();
                    maskLayer();
                },1000);
                /*自动接受订单*/

                setTimeout(function(){
                    if( $(‘.btn_order‘).hasClass(‘btn_stop‘)){
                        getOrder();
                    }
                },1500);
            }else{
                alert(‘提交失败‘);
            }
        }
     })
    /*暂停接受订单 复选框选中*/
    if( $(‘.pause‘).is(‘:checked‘) ){
        $(‘.btn_order‘).removeClass(‘btn_stop‘);
        $(‘.btn_order‘).addClass(‘btn_start‘);
        $(‘.layer_center‘).removeClass(‘refuse‘);
    }

})

/*退回订单/取消订单 ajax*/
function ajaxSetup(operation,ID){
        $.ajax({
            type:‘GET‘,
            url:‘http://huangchen.redcms.com/order/edit.html‘,
            data:‘type=‘+operation+‘&act=edit&oid=‘+ID+‘‘,
            success:function(){
                console.log(‘成功‘+operation+‘订单‘);
            },
            error:function(){
                console.log(operation+‘订单失败‘);
            }
        });
        $.fancybox.close();
        clearTimeout(movement);
        /*遮罩层消失*/
        maskLayer();
}

/*Input 聚焦*/
function inputFocus(){
    $(‘input.inp_msg‘).val(‘此处为菜品备注信息‘);
    $(‘input.inp_msg‘).css(‘color‘,‘#c6c6c6‘);
    $(‘input.inp_msg‘).focus(function(){
        if( $(this).val() == ‘此处为菜品备注信息‘) {
            $(this).val(‘‘);
            $(this).css(‘color‘,‘#000‘);
        }
    }).blur(function(){
        if( $(this).val() == ‘‘){
            $(this).val(‘此处为菜品备注信息‘);
            $(this).css(‘color‘,‘#c6c6c6‘);
        }
    })
    /*textarea*/
    $(‘.mtext‘).css(‘color‘,‘#c6c6c6‘);
    $(‘.mtext‘).val(‘此处为订单备注信息‘);
    $(‘.mtext‘).focus(function(){
        if( $(this).val() == ‘此处为订单备注信息‘){
            $(this).val(‘‘);
            $(this).css(‘color‘,‘#000‘);
        }
    }).blur(function(){
        if( $(this).val() == ‘‘){
            $(this).val(‘此处为订单备注信息‘);
            $(this).css(‘color‘,‘#c6c6c6‘);
        }
    })
}

/*数量增加*/
$(‘.add‘).live(‘click‘,function(){
        var inp_text = $(this).siblings(‘.inp_short‘);
        var num = inp_text.val();
        if( num > 0 ){ num++}
        inp_text.val(num);
        /*总价*/
        totalPrice($(this));
        mealFee();
        service();
        total();
        $(this).parents(‘li‘).addClass(‘modify‘);
        return false;
})
/*数量减少*/
$(‘.minus‘).live(‘click‘,function(){
        var inp_text = $(this).siblings(‘.inp_short‘);
        var num = inp_text.val();
        if( num > 1){ num--};
        inp_text.val(num);
        /*总价*/
        totalPrice($(this));
        mealFee();
        service();
        total();
        $(this).parents(‘li‘).addClass(‘modify‘);
        return false;
})
$(‘.amount .inp_short‘).live(‘blur‘,function(){
        totalPrice($(this));
        mealFee();
        service();
        total();
})

/*总价*/
$(‘.price‘).each(function(){
    totalPrice($(this));
})

/*删除某菜单*/
var del_items=[];
$(‘.del‘).live(‘click‘,function(){
    if(confirm(‘确定要删除此菜品吗?‘)){
        var deleteId = $(this).parents(‘li‘).find(‘.num‘).text();
        del_items.push(deleteId);
        $(this).parents(‘li‘).remove();
        mealFee();
        service();
        total();
        stripesTable();
        $(‘.addmenu‘).find(‘i‘).text(‘‘);
    }
    return false;
})

/*补差金额输入框*/
$(‘.supply‘).blur(function(){
    addFee();
    service();
    total();
})

/*餐费*/
mealFee();

/*补差金额*/
addFee();

/*服务费*/
service();

/*合计*/
total();

var flag_done = 0;
/*搜索建议*/
$(‘.inp_match‘).val(‘‘);
$(‘.inp_match‘).keyup(function(event){
    var keycode = event.which;
    matchSearch($(this),keycode);
    $(‘.inp_match‘).removeClass(‘inp_adopt‘);
})
$(‘.inp_match‘).focus(function(){
    matchSearch($(this));
    $(‘.addmenu‘).find(‘i‘).text(‘‘);
    $(‘.inp_match‘).removeClass(‘inp_adopt‘);
    $(‘ul.uldishes li‘).removeClass(‘already‘);
})

$(‘.inp_match‘).blur(function(){
    $(‘#jsmenulist‘).fadeOut(‘fast‘);
})

$(‘#jsmenulist li‘).live(‘click‘,function(){
    $(‘#jsmenulist li‘).removeClass(‘adopt‘);
    $(this).addClass(‘adopt‘);
    $(‘.inp_match‘).val($(this).find(‘span‘).text() +‘  ‘+$(this).find(‘em‘).text());
    $(‘.inp_match‘).addClass(‘inp_adopt‘);
})

/*键盘上下键*/

/*添加菜品*/
$(‘#js_addmenu‘).click(function(){
    if( $.trim( $(‘.inp_match‘).val())==‘‘){ $(‘.addmenu‘).find(‘i‘).text(‘请填写菜品名称或者编号!‘); return false;}
    console.log(‘inp_adopt内容:‘+$(‘.inp_adopt‘).html());
    if( ! $(‘.inp_match‘).hasClass(‘inp_adopt‘) ){
        alert(‘不存在inp_adopt‘);
        console.log($(‘.inp_adopt‘).parent().html());
        curmenuSearch();
        $(‘.inp_match‘).removeClass(‘.inp_adopt‘);
        $(‘.inp_match‘).val(‘‘);
        var maxScroll = $(‘ul.uldishes li‘).height()*($(‘ul.uldishes li‘).length - 1);
        $(‘ul.uldishes‘).scrollTop(maxScroll);
        inputFocus();
    }else{
        alert(‘存在inp_adopt‘);
        console.log(‘第二次存在inp_adopt:‘+$(‘.inp_adopt‘).parent().html());
        //if( $(‘.inp_match‘).hasClass(‘inp_entered‘)){ $(‘.addmenu‘).find(‘i‘).text(‘该菜品已存在列表中!‘); return false;}
        var linow = $(‘#jsmenulist‘).find(‘li.adopt‘);
        var ID = linow.find(‘span‘).text();
        var name = linow.find(‘em‘).text();
        var price = linow.attr(‘data-key‘);
        /*查找是否有同编号的存在*/
        var dishes=dishesList();
        console.log(‘dishes:‘+dishes);
        for(var i=0;i<dishes.length;i++){
            var num = dishes[i];
            if( num != ID.toLowerCase()){
                continue;
            }
            else{
                $(‘.addmenu‘).find(‘i‘).text(‘此菜品已存在!‘);
                $(‘ul.uldishes li‘).eq(i).addClass(‘already‘);
                var offsetY = $(‘ul.uldishes li.already‘).height() *  i;
                console.log(offsetY);
                $(‘ul.uldishes‘).scrollTop(offsetY);
                $(‘.inp_match‘).removeClass(‘.inp_adopt‘);
                $(‘.inp_match‘).val(‘‘);
                return false;
            }
        }
        $(‘ul.uldishes‘).append(‘<li><div><span class=\‘num\‘>‘+ID+‘</span><span class=\‘dishname\‘>‘+name+‘</span><span class=\‘per\‘>‘+price+‘</span><span class=\‘amount\‘><a class=\‘minus\‘ href="#">-</a><input class=\‘inp inp_short\‘ value=\‘1\‘ type=\‘text\‘><a class=\‘add\‘ href=\‘#\‘>+</a></span><span class=\‘price\‘>‘+price+‘</span><span><a class=\‘del\‘ href=\‘#\‘>删除</a></span></div><div class=\‘msg\‘><input class=\‘inp inp_long inp_msg\‘ value=\‘此处为菜品备注信息\‘ type=\‘text\‘></div></li>‘);
        //$(‘.inp_match‘).addClass(‘inp_entered‘);
        //flag_done = 0;
        mealFee();
        service();
        total();
        stripesTable();
        $(‘.inp_match‘).removeClass(‘.inp_adopt‘);
        $(‘.inp_match‘).val(‘‘);
        var maxScroll = $(‘ul.uldishes li‘).height()*($(‘ul.uldishes li‘).length - 1);
        $(‘ul.uldishes‘).scrollTop(maxScroll);
        inputFocus();
     }

})

/*iframe高度自适应*/
$("#edit").load(function(){
    var editheight = $(this).contents().find("body").height();
    $(this).height(editheight);
}); 

})

/*列表中存在的菜品*/
function dishesList(){
    var liNode = $(‘ul.uldishes li‘);
    var dishes= new Array();
    for(var i=0;i<liNode.length;i++){
        var key = $.trim(liNode.eq(i).find(‘.num‘).text()).toLowerCase();
        dishes.push(key);
    }
    return dishes;
}

/*搜索框 ajax请求---搜索建议*/
function matchSearch(elem,keycode){
    var matchVal = $(‘.inp_match‘).val();
    if( $.trim(matchVal) == ‘‘){ return false; };
    $.ajax({
        type:‘GET‘,
        url:‘http://huangchen.redcms.com/order/edit.html‘,
        data:‘act=select&sname=‘+matchVal+‘‘,
        success: function(result){
            eval(‘var data=‘+ result);
            if( data.length == 0 ) return false;
            $(‘#jsmenulist‘).fadeIn(‘fast‘);
            $(‘#jsmenulist‘).html(‘<ul></ul>‘);
            var menu_amount = data.length;
            console.log(data);
            for(var i=0;i<menu_amount;i++){
                $(‘#jsmenulist ul‘).append(‘<li data-key=\‘‘+data[i].order_price+‘\‘‘+‘><span>‘+data[i].menu_code+‘</span><em>‘+data[i].menu_name+‘</em></li>‘);
            };
        }
    });
    /*键盘上下键*/
    changekey(elem,keycode);

}

/*键盘上下键操作*/
function changekey(src,keycode){
    console.log(‘changekey‘);
    var len = $(src).parent().find(‘#jsmenulist ul‘).length;
    $(‘#jsmenulist ul‘).data(‘key‘,0);
    var i = $(‘#jsmenulist ul‘).data(‘key‘);
    /*上*/
    if(keycode == 38){

    }
    /*下*/
    if(keycode == 40){
        if(i < len){
            $(‘#jsmenulist ul‘).find(‘li‘).eq(0).css(‘background-color‘,‘#eee‘);
            //i++;
        }

    }
}

/*ajax请求 查找当前菜品*/
var timer;
function curmenuSearch(){
    var inpVal = $(‘.inp_match‘).val();
    var dishes=dishesList();
    console.log(dishes);
    $.ajax({
        type:‘GET‘,
        url:‘http://huangchen.redcms.com/order/edit.html‘,
        data:‘act=select&sname=‘+inpVal+‘‘,
        success:function(result){
            eval(‘var data=‘+ result);
            console.log(‘response数据:‘+data.length);
            if( data.length == 0 ){ $(‘.addmenu‘).find(‘i‘).text(‘此菜品不存在!‘); return false;}
            if( data.length > 1){ $(‘.addmenu‘).find(‘i‘).text(‘需填写菜品编号!‘); return false;}
            if( data.length == 1){
                console.log($(‘.inp_adopt‘).html());
                for(var i=0;i<dishes.length;i++){
                    var num = dishes[i];
                    console.log(dishes[i]);
                    //console.log(data[i]);
                    if( num != data[0].menu_code.toLowerCase()){
                        continue;
                    }
                    else{
                        $(‘.addmenu‘).find(‘i‘).text(‘此菜品已存在!‘);
                        $(‘.inp_match‘).removeClass(‘.inp_adopt‘);
                        $(‘.inp_match‘).val(‘‘);
                        console.log(i);
                        $(‘ul.uldishes li‘).eq(i).addClass(‘already‘);
                        var offsetY = $(‘ul.uldishes li.already‘).height() *  i;
                        console.log(offsetY);
                        $(‘ul.uldishes‘).scrollTop(offsetY);
                        return false;
                    }
                }
                console.log(‘append‘);
                $(‘ul.uldishes‘).append(‘<li><div><span class=\‘num\‘>‘+data[0].menu_code+‘</span><span class=\‘dishname\‘>‘+data[0].menu_name+‘</span><span class=\‘per\‘>‘+data[0].order_price+‘</span><span class=\‘amount\‘><a class=\‘minus\‘ href="#">-</a><input class=\‘inp inp_short\‘ value=\‘1\‘ type=\‘text\‘><a class=\‘add\‘ href=\‘#\‘>+</a></span><span class=\‘price\‘>‘+data[0].order_price+‘</span><span><a class=\‘del\‘ href=\‘#\‘>删除</a></span></div><div class=\‘msg\‘><input class=\‘inp inp_long inp_msg\‘ value=\‘此处为菜品备注信息\‘ type=\‘text\‘></div></li>‘);
                stripesTable();
            }

        }
    })

}

/*餐费*/
function mealFee(){
    var dish_amount = $(‘.uldishes li‘).length;
    var total_meal = 0;
    for(var i=0;i<dish_amount;i++){
        var per_meal = parseInt($(‘.uldishes li‘).eq(i).find(‘.price‘).text());
        total_meal += per_meal;
    }
    $(‘.mealfee‘).find(‘strong‘).text(total_meal.toFixed(2));
}

/*补差金额*/
function addFee(){
    if( $(‘.supply‘).val() == ‘‘ ){ $(‘.supply‘).val(0);}
    var txt = $(‘.supply‘).val();
    var supply = parseInt(txt);
    $(‘.supplement‘).find(‘strong‘).text(supply.toFixed(2));
}

/*服务费*/
function service(){
    var mealfee = parseInt( $(‘.mealfee‘).find(‘strong‘).text());
    var supple = parseInt( $(‘.supplement‘).find(‘strong‘).text());
    var fee = (mealfee + supple)* 0.15;
    $(‘.service‘).find(‘strong‘).text(fee.toFixed(2));

}

function total(){
    var mealfee = parseInt( $(‘.mealfee‘).find(‘strong‘).text());
    var supple = parseInt( $(‘.supplement‘).find(‘strong‘).text());
    var service = parseInt( $(‘.service‘).find(‘strong‘).text());
    var fee = mealfee + supple + service;
    $(‘.total‘).find(‘strong‘).text(fee);
}

/*每个菜的总价*/
function totalPrice(elem){
    var liNode = elem.parents(‘li‘);
    var per = parseInt(liNode.find(‘.per‘).text());
    var num = parseInt( liNode.find(‘.amount .inp_short‘).val());
    var total = (parseInt(per) * parseInt(num)).toFixed(2);
    liNode.find(‘.price‘).text(total);
}

/*服务台 高度*/
function serviceHeight(){
    $(‘.maincon‘).css(‘height‘,‘auto !important‘);
    var screenY = $(window).height();
    $(‘.service‘).css(‘min-height‘,screenY-30);
}

/*判断有无订单号*/
function getOrder(){
    $.ajax({
        url:‘http://wangyang.redcms.com/order/list.html?oid=1&act=view‘,
        success:function(msg){
            eval(‘var json=‘+msg);
            if( json.res == null) {return false;};
            /*订单号存在*/
                $.fancybox({
                    ‘href‘:‘#order_details‘,
                    ‘overlayOpacity‘:‘0.5‘,
                    ‘showCloseButton‘:false
                });
                var start = new Date();
                countDown(start);
                $(‘.uldishes li‘).remove();
                /*将数据塞入*/
                $(‘.order_no strong‘).text(json.res.order_no);
                $(‘.create_time strong‘).text(json.res.create_time);
                $(‘.roominfo li.tel‘).find(‘strong‘).text(json.res.target_telephone);
                $(‘.roominfo li.address‘).find(‘.inp‘).val(json.res.target_address);
                //$(‘.roominfo li.deliver‘).find()
                $(‘.roominfo li.guest‘).find(‘strong‘).text(json.res.target_guest_name);
                $(‘.roominfo .address2‘).find(‘strong‘).text(json.res.target_address);
                for(var i=0;i<json.resinfo.length;i++){
                    var menuID = json.resinfo[i].menu_id;
                    var menuName = json.resinfo[i].menu_name;
                    var count = json.resinfo[i].count;
                    var unitPrice = json.resinfo[i].unit_price;
                    var remark = json.resinfo[i].remark;
                    var price = unitPrice * count;
                    $(‘ul.uldishes‘).append(‘<li><div><span class=\‘num\‘>‘+menuID+‘</span><span class=\‘dishname\‘>‘+menuName+‘</span><span class=\‘per\‘>‘+unitPrice+‘</span><span class=\‘amount\‘><a class=\‘minus\‘ href="#">-</a><input class=\‘inp inp_short\‘ value=\‘1\‘ type=\‘text\‘><a class=\‘add\‘ href=\‘#\‘>+</a></span><span class=\‘price\‘>‘+price+‘</span><span><a class=\‘del\‘ href=\‘#\‘>删除</a></span></div><div class=\‘msg\‘><input class=\‘inp inp_long inp_msg\‘ value=\‘1\‘ type=\‘text\‘></div></li>‘);
                }
                stripesTable();
                /*合计费用*/
                $(‘.mealfee strong‘).text(json.res.money);
                $(‘.supplement strong‘).text(json.res.money);
                $(‘.service strong‘).text(json.res.money);
                $(‘.total strong‘).text(json.res.money);
                /*遮罩层*/
                $(self.parent.frames[‘header‘].document.body).append("<div class=‘masklayer‘></div>");
                $(self.parent.frames[‘subnav‘].document.body).append("<div class=‘masklayer‘></div>");

            }
    })

}

/*隔行换色*/
function stripesTable(){
    $(‘ul.uldishes li‘).removeClass(‘c1 c2‘);
    $(‘ul.uldishes li:odd‘).addClass(‘c2‘);
    $(‘ul.uldishes li:even‘).addClass(‘c1‘);
    //$(‘ul.uldishes li:last‘).css(‘border‘,‘none‘);
}

/*遮罩层消失*/
function maskLayer(){
    $(self.parent.frames[‘header‘].document.body).find(‘.masklayer‘).fadeOut(‘slow‘);
    $(self.parent.frames[‘subnav‘].document.body).find(‘.masklayer‘).fadeOut(‘slow‘);
}

/*倒计时*/
var flag = 0;
function countDown(startTime){
    console.log(startTime);
    var endTime = startTime;
    endTime.setMinutes(endTime.getMinutes()+5);  //设置时间为5分钟后
    console.log(endTime);

    /*判断有无键盘鼠标操作*/
    $(‘#order_details‘).keydown(function(){
        /*重置计时*/
        if( flag == 0){ console.log(‘keydown‘);timerReset(); }
    });
    $(‘#order_details‘).mouseover(function(){
        /*重置计时*/
        if( flag == 0){ console.log(‘mouseover‘);timerReset(); }
    })
    $(‘#order_details‘).click(function(){
        /*重置计时*/
        if( flag == 0){ console.log(‘click‘); timerReset(); }
    })

    /*在没有操作的情况下*/
    oddTime(endTime);
    /*每隔30秒发送重置计时请求*/
    resetRequest();

}

/*重置计时*/
function timerReset(){
    flag = 1;
    setTimeout(function(){
        flag = 0;
    },31000);
}

/*重置标志*/
function resetRequest(){
    setTimeout(function(){
        console.log(‘flag请求标志‘+flag);
            $.ajax({
                type:‘GET‘,
                url:‘http://huangchen.redcms.com/order/edit.html‘,
                data:‘act=check&oid=‘+flag+‘‘,
                success:function(){
                    console.log(‘30秒发送一个请求标志‘);
                },
                error:function(){
                    console.log(‘不向服务器发送重置请求标志‘)
                }
            });
        if( flag == 1){
            clearTimeout(movement);
            $(‘#minutes‘).text(‘4分‘);
            //$(‘#seconds‘).hide();
            var startTime = new Date();
            var endTime = startTime;
            endTime.setMinutes(endTime.getMinutes()+5);  //设置时间为5分钟后
            oddTime(endTime);
        }
        resetRequest();
    },30000);
}

/*剩余时间*/
var movement;
function oddTime(endTime){
    if( movement){ clearTimeout(movement);}
    var current = new Date();
    if( new Date(endTime) <= current){
        clearTimeout(movement);
        $.fancybox.close();
        /*遮罩层消失*/
        maskLayer();
        setTimeout(function(){
            $.fancybox({
                ‘href‘:‘#order_tips02‘,
                ‘onClosed‘ : function() { maskLayer();}
            });

        },1000);
        return false;
    }
    var oddTime = new Date(endTime) - current;
    var oddMinutes = parseInt(oddTime/1000/60);
    $(‘#minutes‘).text(oddMinutes + ‘分‘);
    //if( new Date(endTime) - current <= 60000){
        $(‘i#seconds‘).show();
        var oddSeconds = parseInt(oddTime/1000%60);
        $(‘#seconds‘).text(oddSeconds +‘秒‘);
    //}
    movement = setTimeout("oddTime(‘"+endTime+"‘)" ,1000);

}

$(window).resize(function(){
    serviceHeight();
});

order.js

时间: 2024-11-08 19:32:30

order.js的相关文章

Node.js连接Mysql,并把连接集成进Express中间件中

引言 在node.js连接mysql的过程,我们通常有两种连接方法,普通连接和连接池. 这两种方法较为常见,当我们使用express框架时还会选择使用中间express-myconnection,可以单独对mysql配置,也可以把connection集成到express中间件中. 最后送上一个node.js 连接各种主流数据库示例代码. 前提条件 1.安装mysql对应的驱动,npm install mysql 2.安装第三方插件express-connection, npm install e

egg.js连接和使用Mongodb

一.Egg连接Mongodb方法一   Cnpm i egg-momgo-native --save Plugin.js中配置 exports.mongo = { enable: true, package: 'egg-mongo-native', }; Config.default.js配置 config.mongo = { client: { host:"127.0.0.1", port:"27017", name:"test", user:

快速上手微信小程序-快递100

2007 年 1 月 9 日,乔布斯在旧金山莫斯科尼会展中心发布了首款 iPhone,而在十年后的 1 月 9 日,微信小程序正式上线.张小龙以这样的形式,向乔布斯致敬. 小程序在哪里? 小程序功能模块在"发现"频道最下方的位置.如果没有,请先将微信升级到最新版本,然后在通讯录搜索'小程序示例',点击之后返回"发现频道"即可.Tip:小程序搜索目前不支持模糊查询 小程序会带来什么 无处不在,随时访问 移动互联网的下一站是"唾手可得" --张小龙

laravel 使用 vue (gulp)

1)首先要安装 gulp 看这里 http://www.cnblogs.com/tujia/p/6397779.html 2)编辑js 默认 laravel 里有一个 /resources/assets/js/app.js  这个 gulp 要编译文件,gulp 将 /resources/assets/js/app.js 编译成 /public/js/app.js 文件,/public/js/app.js 在公共底部被引用 虽然 /resources/assets/js 里只有一个 app.js

vue-cli 实战

最近,MVC.MVVM框架越发流行,当然必不可少的,我也趁着最近工作量小,学习了一个多星期的vue.js 2.0版本, 改造了一个购票项目,借此分享下学习心得,希望对一部分人有所帮助,当然,有任何不对的地方还望各路大神指出批评,谢谢啦! vue.js是一种流行的mvvm模式的框架,其核心思想是 数据驱动 和 组件化,相比于Angular.js , vue.js提供了更加简洁,更易理解的API, 使我们能够快速上手开发. 1.vue-cli 安装(默认你已有node.js环境) npm insta

使用 AngularJS 从零构建大型应用

0.导言 1.准备工作 2.构建框架 3.丰富你的directives 4.公用的services 5.用controllers组织业务 导言 纵览线上各种AngularJS教程,大部分都是基础与一些技巧分析. 如果你已经能运行你的ng-app,但又找不到实际案例可以参考.那么本文应该对您有所帮助. 本文将以电商产品:友好速搭 其中的 店铺后台 作为的实际案例,裸奔展示如何从零构建 “自以为大型的” AngularJS应用. 应用基于AngularJS 1.2.24版本. 准备工作 1.我们使用

AJAX GET与POST区别及web离线应用的简单理解

1.get方式传参为显示的,在url后面会跟参数,安全性不好,但性能较高 post方式传参为隐式,安全性较高. 2.get取或送数据的大小有限制,一般小于1kb post取或送数据的大小无限制,一般为2M 3.get方式取数据要用QueryString post方式取数据要用Request.Form 虽然两者有一个统一的Request方法,但这样影响效率,尽量少用. 4.get方法会cache数据 post 方式never cache数据 5.Jquery实现ajax: $.ajax({    

小程序的一点实践

经过测试,闹心律师小程序第二期也即将上线了,而闹心对于小程序有怎么样的开发实践呢? 小程序在千呼万唤出来之后,带来了大量的开发的吐槽,但尽管我们再怎么嫌弃小程序语法,我们也无法否认微信给小程序所带来的流量以及收益,也必须看重小程序,也不得不去学习小程序 那么我们开发小程序应该怎么去开发呢,熟悉前端的我们开发起有小程序有什么困难吗? 困难不至于,围绕小程序的官方文档甚至是可以轻松的开发,就是开发的体验的麻烦倒是不少 首先来看看小程序的架构 初始化一个默认配置的小程序项目 app.json 里面定义

开箱即用~基于.NET Core的统一应用逻辑分层框架设计

目前公司系统多个应用分层结构各不相同,给运维和未来的开发带来了巨大的成本,分层架构看似很简单,但保证整个研发中心都使用统一的分层架构就不容易了. 那么如何保证整个研发中心都使用统一的分层架构,以达到提高编写代码效率.保证工程统一性的目的? 这里给出个人的规划设计,希望对你有所启发. 1.分层目标 简单易用:少即是多,哪怕应届生进来也能很快上手 结构统一:不管是新系统还是旧系统结构的是一样的. 提高效率:提高开发和运维效率,减少维护和学习成本 2.分层架构介绍 先简单介绍当前两种比较流行的分层架构