会议通js

js逻辑:

/**
 * Created by wanglijuan on 2016/12/2.
 */
$(function () {
    //登陆后请求数据
    // $.ajax({
    //     url:"http://111.11.183.124:8012/pc%20/login.htm",
    //     type: "POST",
    //     dataType :"json",
    //     data:{
    //         fixPhone:"18767173166",
    //         password:"123456"
    //     },
    //     success    :function(data){
    //         console.log(data);
    //     },
    //     error:function(data){
    //
    //     }
    // });
    //左边人员
    var itemUl = document.getElementById("select2-choices");
    var itemli = itemUl.getElementsByTagName("li");
    //右边部门和人员
    var departmentGroup = document.getElementById("departmentGroup");
    var itemli2 = departmentGroup.getElementsByTagName("li");
    //配置消息框参数
    toastr.options = {
        closeButton: false,
        debug: false,
        progressBar: false,
        positionClass: "toast-top-center",
        onclick: null,
        showDuration: "300",//显示动作(从无到有这个动作)持续的时间
        hideDuration: "500",
        timeOut: "1000",//间隔的时间
        extendedTimeOut: "800",
        showEasing: "swing",
        hideEasing: "linear",
        showMethod: "fadeIn",
        hideMethod: "fadeOut"
    };
    //菊花加载
    function showSpin(){
        var spinnerOpts = {
                lines: 11 // 共有几条线组成
                , length: 13 // 每条线的长度
                , width: 8 // 每条线的长度
                , radius: 19 // 内圈的大小
                , scale: 0.5 // Scales overall size of the spinner
                , corners: 0.1 // 圆角的程度
                , color: ‘#000‘ // #rgb or #rrggbb or array of colors
                , opacity: 0.1 // Opacity of the lines
                , rotate: 18 // 整体的角度(因为是个环形的,所以角度变不变其实都差不多)
                , direction: 1 // 1: clockwise, -1: counterclockwise
                , speed: 0.8 // 速度:每秒的圈数
                , trail: 55 //  高亮尾巴的长度
                , fps: 20 // Frames per second when using setTimeout() as a fallback for CSS
                , zIndex: 2e9 // z-index的值 2e9(默认为2000000000
                , className: ‘spinner‘ // The CSS class to assign to the spinner
                , top: ‘50%‘ // Top position relative to parent
                , left: ‘50%‘ // Left position relative to parent
                , shadow: false // 是否要阴影
                , hwaccel: false // 是否用硬件加速
                , position: ‘absolute‘ // Element positioning
        };
        var spinTarget = document.getElementById(‘main‘);
        new Spinner(spinnerOpts).spin(spinTarget);
    }
    function ajaxPage() {//ajaxPage(page,pageSize,fixPhone);
        $.ajax({
            url: ‘findByPage.json‘,
            type: ‘GET‘,
            dataType: ‘json‘,
            timeout: 1000,
            cache: false,
            //            data:{
            //                page:page,//当前页数
            //                pageSize:pageSize,//每页条数
            //                fixPhone:fixPhone,//登陆的固话号码
            //                maxPage: function () {
            //                        var total = 0;//总页数
            //                        if(total%pageSize == 0){//当总数据除以每页数据个数 余数为0的时候
            //                            maxPage = total/pageSize;
            //                        }else{
            //                            maxPage = parseInt(total/pageSize)+1;
            //                        }
            //                }//最大的页数,也就是滚动多少次停
            //            },
            beforeSend: LoadFunction, //加载执行方法
            error: erryFunction,  //错误执行方法
            success: succFunction //成功执行方法
        })
        function LoadFunction() {
            //            $("#meeting-record").html(‘加载中...‘);
        }
        function erryFunction() {
            alert("error");
        }
        function succFunction(data) {
            $(".ajaxtips").hide();//隐藏加载提示
            //            $("#meeting-record").append(data);//把新的内容加载到内容的后面
            $.each(data.dtos, function (i,item) {//循环获取数据
                $("#meeting-record").append(
                    ‘<ul class="meeting getList">‘+
                    ‘<li>‘+
                    ‘<div class="three-icon">‘+
                    ‘<span class="small-icon">立娟</span>‘+
                    ‘<span class="small-icon" style="float:left;margin-right:6px;">小强</span>‘+
                    ‘<span class="small-icon" style="float:left;">灿烂</span>‘+
                    ‘</div>‘+
                    ‘<div class="right-cont">‘+
                    ‘<p>‘+
                    ‘<span class="content">‘+item.meetTitle+‘</span>‘+
                    ‘<span class="time">‘+item.startTime+‘</span>‘+
                    ‘<a class="reservation" data-recordType=‘+item.recordType+‘ href="#"></a>‘+
                    ‘</p>‘+
                    ‘</div>‘+
                    ‘</li>‘+
                    ‘</ul>‘
                );
            });
            //            会议状态
            $("[data-recordType]").each(function () {
                var state = $(this).attr("data-recordType");
                if(state ==1){
                    $(this).text("");
                }else if(state == 2){
                    $(this).text("预约会议");
                }
            })
            //            会议时间
            stop = true;//加载开关
        }
    }

    var meetscroll = document.getElementById("meetscroll");
    var stop = true;//触发开关,防止多次调用事件
    var page = 1;
    $("#meeting-record").html(‘‘);//先清空
    ajaxPage();//ajaxPage(page,pageSize,fixPhone);
//    $("#meetscroll").on(‘scroll‘,function () {
//        console.log($("#meetscroll").scrollTop());
//    })
//    var nScrollHight = 20; //滚动距离总长(注意不是滚动条的长度)
//    var nScrollTop = 0;   //滚动到的当前位置
//    var nDivHight = $("#meetscroll").height();
//    meetscroll.onscroll = function () {
//        nScrollHight = $(this)[0].scrollHeight;
//        nScrollTop = $(this)[0].scrollTop;
//        var paddingBottom = parseInt( $(this).css(‘padding-bottom‘) ),paddingTop = parseInt( $(this).css(‘padding-top‘) );
//        if(nScrollTop + paddingBottom + paddingTop + nDivHight >= nScrollHight){
//            if (stop == true) {
//                stop = false;
//                page = page + 1;//当前要加载的页码;
////                if(page<=maxPage){当加载页码等于总页数当时候,停止加载
//                //加载提示信息
//                $("#meeting-record").append("<ul class=‘ajaxtips‘><li>加载.....</li></ul>");
//                ajaxPage();//ajaxPage(page,pageSize,fixPhone);
////                }else{
////                    meetscroll.onscroll=null;
////                }
//            }
//        }
//    };

    //注册滚动条事件
    scrollBottomTest =function(){
        $("#meetscroll").scroll(function(){
            var $this =$(this),
                viewH =$this.height(),//可见高度
                contentH =$this.get(0).scrollHeight,//内容高度
                scrollTop =$this.scrollTop();//滚动高度
            if(contentH - viewH - scrollTop <= 20) { //到达底部100px时,加载新内容
                //内容的高度-视窗的高度-隐藏的高度
                if (stop == true) {
                    stop = false;
                    page = page + 1;//当前要加载的页码;
                    //                if(page<=maxPage){当加载页码等于总页数当时候,停止加载
                    //加载提示信息
                    $("#meeting-record").append("<ul class=‘ajaxtips‘><li>加载.....</li></ul>");
                    ajaxPage();//ajaxPage(page,pageSize,fixPhone);
                    //                }else{
                    //                    meetscroll.onscroll=null;
                    //                }
                }
            }
        });
    };
    scrollBottomTest();
    //    发起电话会议---搜索
    //定义一些数据
//    var data = ["15057187176", "15057187175", "15057187174", "15057187173", "武林江湖", "will"];
    var ele_key = document.getElementById("member-phone");
    ele_key.onkeyup = function () {
        var val = this.value;

//        var ele_datalist = document.getElementById("search-member-list");
//        ele_datalist.style.visibility = "visible";
//        console.log(val);
//        if(val==""){
//            ele_datalist.style.visibility = "visible";
//            return false;
//        }
        //获取输入框里匹配的数据
        ajaxSearch(val);
    };
    // function upperCase(x){//(this.id)
    //     console.log(x);
    //     var val = document.getElementById(x).value;
    //     // document.getElementById(x).value=y.toUpperCase()
    //     ajaxSearch(val);
    // }

    function ajaxSearch(val) {
//        获取到的数据准备追加显示;
        var ele_datalist = document.getElementById("search-member-list");
        ele_datalist.style.visibility = "visible";
        if(val){
            $.ajax({
                url: ‘searchdata.json‘,
                type: ‘GET‘,
                dataType: ‘json‘,
                timeout: 1000,
                cache: false,
                data:{
                    companyId:"2446"
                },
                success:function (data) {
                    //前期要做的事情: 清空数据,然后显示数据列表
                    ele_datalist.innerHTML = "";
                    for (var i = 0; i < data.data.length; i++) {
                        var expend = data.data[i].expand;
                        var phoneName = data.data[i].phoneName;
                        var departName = data.data[i].departName;
                        var fixPhone = data.data[i].fixPhone;
                        expend = expend.split(",");
                        expend.unshift(fixPhone);//组合数组开头
                        //如果获取到的数据为空,则不显示
                        if (expend.length == 0) {
                            ele_datalist.style.visibility = "hidden";
                        }
                        for(var k=0;k<expend.length;k++){
                            $("#search-member-list").append(
                                ‘<li class="member-li-sub">‘+
                                ‘<span class="sub-icon circle30" style="background:green;">‘+phoneName.slice(-2)+‘</span>‘+
                                ‘<div class="sub-name-tel">‘+
                                ‘<b>‘+phoneName+‘</b>‘+‘<br>‘+
                                ‘<small>‘+expend[k]+‘</small>‘+
                                ‘</div>‘+
                                ‘<span class="sub-job">‘+departName+‘</span>‘+
                                ‘</li>‘
                            )
                        }

                        //indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。检索val
//                        if (val.trim().length > 0 && data.data[i].indexOf(val) > -1) {//val.trim()两端去空格处理
//                            //如果要检索的字符串值没有出现,则该方法返回 -1。
//                            srdata.push(data.data[i]);
//                            console.log(srdata);
//                        }
                    }
                    var memberLi = ele_datalist.getElementsByTagName("li");
                    //2.然后每一行加入点击事件
                    for(var j= 0;j<memberLi.length;j++){
                        memberLi[j].index = j;
                        memberLi[j].onclick = function () {
                            //3.点击后将数据放入搜索框内
                            var text = this.childNodes[1].childNodes[0].textContent;
                            var tel = this.childNodes[1].childNodes[2].textContent;//因为有个br,所以是2
                            //判断搜索中的号码和选定的号码是否重复
                            var select2Choices = document.getElementById("select2-choices");
                            var select2ChoicesLi = select2Choices.getElementsByTagName("li");
                            for(var q=0;q<select2ChoicesLi.length;q++){
                                if(tel == select2ChoicesLi[q].getAttribute("title")){
                                    toastr.info("不能重复选择!");
                                    return false;
                                }
                            }
                            addselect2(text,tel);
                            //4.数据列表隐藏并清空搜索框内容
                            ele_datalist.style.visibility = "hidden";
                            ele_key.value = "";
                            //0/500人
                            smscount();
                        }
                    }
                }//success
            })
        }else{//当搜索框倒退为空的时候,隐藏搜索列表;
            ele_datalist.style.visibility = "hidden";
        }
    }
//    发起电话会议---搜索end
    function addselect2(text,expend,departId,memberid,checkbox) {//姓名,电话号码,部门id,人员id,chbox状态
        $("#select2-choices").append(
            ‘<li class="select2-search-choice" data-text=‘+text+‘ title=‘+expend+‘ data-departId=‘+departId+‘ data-id=‘+memberid+‘ data-checkbox=‘+checkbox+‘>‘+
            ‘<span>‘+text+‘</span>‘+
            ‘<a href="#" class="select2-search-choice-close"></a>‘+
            ‘</li>‘
        );
        //添加人的时候,右边的复选框的状态
        if(checkbox == true){
            var currentLi = $("#select2-choices li");
            var departmentGroup = document.getElementById("departmentGroup");
            var itemli2 = departmentGroup.getElementsByTagName("li");
            if(itemli2){
                for(var j=0 ;j<itemli2.length;j++){
                    if($(itemli2[j]).attr("data-phonevalue") == currentLi.attr("title")){
                        $(itemli2[j]).find("input[name=‘subBox‘]").prop("checked",true);
                    }
                    var $subBox = $("input[name=‘subBox‘]");
                    $("#checkAll").prop("checked",$subBox.length == $("input[name=‘subBox‘]:checked").length ? true : false);
                }
            }
        }
        //删除人员
        $("#select2-choices .select2-search-choice .select2-search-choice-close").click(function () {
            var currentLi = $(this).parent();
            var departmentGroup = document.getElementById("departmentGroup");
            var itemli2 = departmentGroup.getElementsByTagName("li");
            if(itemli2){
                for(var j=0 ;j<itemli2.length;j++){
                    if($(itemli2[j]).attr("data-id") == currentLi.attr("data-id")){
                        $(itemli2[j]).find("input[name=‘subBox‘]").prop("checked",false);
                    }
                    var $subBox = $("input[name=‘subBox‘]");
                    $("#checkAll").prop("checked",$subBox.length == $("input[name=‘subBox‘]:checked").length ? true : false);
                }
            }
            currentLi.remove();
            smscount();
        });
    }
//    选人统计0/500人
    function smscount() {
        var select2Choices=document.getElementById("select2-choices");
        var select2ChoicesLi=select2Choices.getElementsByTagName("li");
        var length = select2ChoicesLi.length;
        if (length > 501) {
            $(".select-user-count").text("已选:"+(length-1)+"/500人");
            toastr.info("不能超过500人!");
        } else {
            $(".select-user-count").text("已选:"+length+"/500人");
        }
    }
    //弹出打开
    $(‘#myModal‘).on(‘shown.bs.modal‘,department());//modal

    // function titlefun(title) {//这里传入的参数是一个数组["公司名称","一级部门","二级部门"]
    //     $(".breadcrumb").html("");
    //     for(var w=0;w<title.length;w++){
    //         $(".breadcrumb").append(
    //             ‘<a href="#">&gt;‘+title[w]+‘</a>‘
    //         )
    //     }
    //     var str = $(".breadcrumb a:eq(0)").text();
    //     strs=str.substring(1)//字符分割,第一个title去&gt
    //     $(".breadcrumb a:eq(0)").text(strs);
    //     $(".breadcrumb a:eq(0)").on(‘click‘,function () {
    //         refresh(id)
    //     });
    // }

    function titlefun(titleid,title) {//这里传入的参数是一个数组["公司名称","一级部门","二级部门"]
        // $(".breadcrumb").html("");
        var titleAll = [];
        var obj = {id:titleid,name:title};
        // var t = arrayToJson(obj);
        // console.log(obj);
        titleAll.push(obj);
        console.log(titleAll);
        $.each(titleAll,function (i,v) {
            $(".breadcrumb").append(
                ‘<a href="#" data-titleId=‘+v.id+‘>&gt;‘+v.name+‘</a>‘
            )
        });
    }
    $(".breadcrumb").on(‘click‘,"a",function () {
        refresh($(this).attr(‘data-titleId‘),$(this).text());
    });

    function  refresh(id,name) {
        $(".breadcrumb").html("");
        if(id==companyId){
            department();
        }else{
            departmentSub(id,name);
        }
    }
    function department() {//公司的,或者部门的
        // $(".member-checkAll").hide();
        var departmentGroup = document.getElementById("departmentGroup");
        titlefun(companyId,companyName);
        var str = $(".breadcrumb a:eq(0)").text();
        strs=str.substring(1)//字符分割,第一个title去&gt
        $(".breadcrumb a:eq(0)").text(strs);
        $.ajax({
            url: ‘getList.json‘,
            type: ‘GET‘,
            dataType: ‘json‘,
            timeout: 1000,
            cache: false,
            data:{
                departId:"0"
            },
            // beforeSend: function(XMLHttpRequest){
            //     var target = document.getElementById("departmentGroup");
            //     var spinner = new Spinner(spinnerOpts).spin(target);
            // },
            beforeSend: function () {
                showSpin();
            },
            success:function (data) {
                //前期要做的事情: 清空数据,然后显示数据列表
                departmentGroup.innerHTML = "";
                var html="";
                html =
                    ‘<li>‘+
                    ‘<div class="member-checkAll">‘+
                    ‘<input type="checkbox" id="checkAll" name="checkAll" data-titleId=‘+companyId+‘>‘+
                    ‘<label for="checkAll">‘+"全选"+‘</label>‘+
                    ‘</div>‘+
                    ‘<li>‘;
                $("#departmentGroup").append(html);
                $.each(data.data.childDeparts, function (i,item) {//循环获取数据
                    $("#departmentGroup").append(
                        ‘<li class="department" data-departId=‘+item.departId+‘>‘+
                        ‘<p class="department-title">‘+item.departName+‘</p>‘+
                        ‘<span class="count">‘+item.phoneCount+"人"+‘</span>‘+
                        ‘</li>‘
                    );
                });
                $.each(data.data.departPhones, function (i,item) {//循环获取数据
                    html =
                        ‘<li class="member-li-sub department-li" data-departId = ‘+item.departId+‘ data-id=‘+item.id+‘ data-phonevalue=‘+item.fixPhone+‘ data-name=‘+item.phoneName+‘>‘+
                        ‘<div class="clearfix">‘+
                        ‘<label>‘+
                        ‘<input name="subBox" type="checkbox" class="member-radio">‘+
                        ‘<span class="sub-icon circle30" style="background:green;">‘+item.phoneName.slice(-2)+‘</span>‘+
                        ‘<div class="sub-name-tel" data-fixPhone=‘+item.fixPhone+‘>‘+item.phoneName+‘</div>‘+
                        ‘</label>‘+
                        ‘</div>‘+
                        ‘<dl class="more-phone-ul">‘+
                        ‘<dd class="more-phone-li" data-num=‘+item.fixPhone+‘>‘+
                        ‘<label>‘+
                        ‘<input type="radio" name=‘+i+‘ class="member-sub-radio" checked>‘+
                        ‘<small>‘+item.fixPhone+‘</small>‘+
                        ‘</label>‘+
                        ‘</dd>‘;
                    var expandArr = item.expand.split(‘,‘);
                    $.each(expandArr, function (j, expand) {
                        if(expandArr != ""){
                            html +=
                                ‘<dd class="more-phone-li" data-num=‘+expand+‘>‘ +
                                ‘<label>‘ +
                                ‘<input type="radio" name=‘+i+‘ class="member-sub-radio">‘ +
                                ‘<small>‘ + expand + ‘</small>‘ +
                                ‘</label>‘ +
                                ‘</dd>‘
                        }
                    });
                    html += ‘</dl>‘+‘</li>‘;
                    $("#departmentGroup").append(html);
                });//each

                var oSubBox = document.getElementsByName("subBox");
                var oCheckAll = document.getElementById("checkAll");
                checkAll(oCheckAll,oSubBox);
                var $subBox = $("input[name=‘subBox‘]");
                $subBox.click(function(){
                    $("#checkAll").prop("checked",$subBox.length == $("input[name=‘subBox‘]:checked").length ? true : false);
                });
                $("#checkAll").change(function () {
                    if($("#checkAll").prop("checked")){
                        $.each(data.data.departPhones,function (i,item) {
                            checkAllAdd(item);
                        });
                        smscount();
                    }else{
                        $.each(data.data.departPhones,function (i,item) {
                            checkAllCut(item)
                        });
                        smscount();
                    }
                });
                $subBox.change(function () {
                    var currentLi = $(this).parent().parent().parent();
                    var itemUl = document.getElementById("select2-choices");
                    var itemli = itemUl.getElementsByTagName("li");
                    if($(this).prop("checked")){
                        addselect2(currentLi.attr("data-name"),currentLi.attr("data-phonevalue"),currentLi.attr("data-departid"),currentLi.attr("data-id"),true);
                        smscount();
                    }else{
                        //删除已选成员
                        for(var i = 0; i<itemli.length; i++){
                            if(currentLi.attr("data-name") == $(itemli[i]).attr("data-text") && currentLi.attr("data-phonevalue") == $(itemli[i]).attr("title")){
                                $(itemli[i]).remove();
                            }
                        }
                        smscount();
                    }
                });
            },//success
            complete: function () {
                $(".spinner").hide();
            }
        })
    }//department()
    $("#departmentGroup").on(‘click‘,‘.department‘,function () {
        var departId = $(this).attr("data-departId");
        var departName = $(this).children(‘p‘).text();
        departmentSub(departId,departName);
    });
    function departmentSub(departId,departName){//通过部门id,添加部门成员
        titlefun(departId,departName);
        var departmentGroup = document.getElementById("departmentGroup");
        // var titleAll = [companyName];
        // titlefun(titleAll);
        // var departId = $(this).attr("data-departId");
        // var departId = $("#departmentGroup .department").attr("data-departId");
        //查看遍历左边的checkbox为true的时间
        $.ajax({
            url:‘department2.json‘,
            type:‘GET‘,
            dataType:‘json‘,
            timeout:1000,
            cache:false,
            data:{
                departId:departId,
                departName:departName
            },
            beforeSend: function () {
                showSpin();
            },
            success:function (data) {
                if(departId == data.data.departId){
                    // 前期要做的事情: 清空数据,然后显示数据列表
                    departmentGroup.innerHTML = "";
                    // titleAll.push(data.data.departName);
                    // titlefun(titleAll);//列表的头部

                    var html ="";
                    html =
                        ‘<li>‘+
                        ‘<div class="member-checkAll">‘+
                        ‘<input type="checkbox" id="checkAll" name="checkAll" data-titleId=‘+departId+‘>‘+
                        ‘<label for="checkAll">‘+"全选"+‘</label>‘+
                        ‘</div>‘+
                        ‘<li>‘;
                    $("#departmentGroup").append(html);
                    $.each(data.data.departPhones,function (i,item) {
                       html =
                            ‘<li class="member-li-sub department-li" data-departId = ‘+item.departId+‘ data-id=‘+item.id+‘ data-phonevalue=‘+item.fixPhone+‘ data-name=‘+item.phoneName+‘>‘+
                            ‘<div class="clearfix">‘+
                            ‘<label>‘+
                            ‘<input name="subBox" type="checkbox" class="member-radio">‘+
                            ‘<span class="sub-icon circle30" style="background:green;">‘+item.phoneName.slice(-2)+‘</span>‘+
                            ‘<div class="sub-name-tel" data-fixPhone=‘+item.fixPhone+‘>‘+item.phoneName+‘</div>‘+
                            ‘</label>‘+
                            ‘</div>‘+
                            ‘<dl class="more-phone-ul">‘ +
                            ‘<dd class="more-phone-li" data-num=‘+item.fixPhone+‘>‘+
                            ‘<label>‘+
                            ‘<input type="radio" name=‘+i+‘ class="member-sub-radio" checked>‘+
                            ‘<small>‘+item.fixPhone+‘</small>‘+
                            ‘</label>‘+
                            ‘</dd>‘;
                        var expandArr = item.expand.split(‘,‘);
                        $.each(expandArr, function (j, expand) {
                            if(expandArr != ""){
                                html +=
                                    ‘<dd class="more-phone-li" data-num=‘+expand+‘>‘ +
                                    ‘<label>‘ +
                                    ‘<input type="radio" name=‘+i+‘ class="member-sub-radio">‘ +
                                    ‘<small>‘ + expand + ‘</small>‘ +
                                    ‘</label>‘ +
                                    ‘</dd>‘
                            }
                        });
                        html += ‘</dl>‘+‘</li>‘;
                        $("#departmentGroup").append(html);
                        //选择名下的多个号码间的切换
                        $("#departmentGroup li dl dd").on(‘click‘,function () {
                            var phonevalue = $(this).parent().parent();//#departmentGroup li
                            var numData = $(this).attr("data-num");//#departmentGroup li dl dd
                            var inputI = $(this).children().children();//#departmentGroup li dl dd label input[type-radio]
                            $(inputI).change(function () {
                                if($(inputI).prop("checked")){
                                    $(phonevalue).attr("data-phonevalue",numData);
                                    //切换号码是取消checkbox的选中状态,
                                    var itemUl = document.getElementById("select2-choices");
                                    var itemli = itemUl.getElementsByTagName("li");
                                    if(itemli){
                                        for(var m = 0; m<itemli.length; m++){
                                            if($(phonevalue).attr("data-id") == $(itemli[m]).attr("data-id")){
                                                $(itemli[m]).attr("title",numData);
                                            }
                                        }
                                    }
                                }

                            });
                        });
                        //检查左边添加的人是不是右边列表中的,如果是,就添加checkbox选中状态。
                        var currentLi = $("#select2-choices li");
                        var departmentGroup = document.getElementById("departmentGroup");
                        var itemli2 = departmentGroup.getElementsByTagName("li");
                        if(itemli2){
                            for(var j=0 ;j<itemli2.length;j++){
                                for(var x=0;x<currentLi.length;x++){
                                    if($(itemli2[j]).attr("data-id") == $(currentLi[x]).attr("data-id")){
                                        $(itemli2[j]).find("input[name=‘subBox‘]").prop("checked",true);
                                    }
                                    var $subBox = $("input[name=‘subBox‘]");
                                    $("#checkAll").prop("checked",$subBox.length == $("input[name=‘subBox‘]:checked").length ? true : false);
                                }
                            }
                        }
                    });
                    // //全选
                    // var subBox = document.getElementsByName("subBox");
                    // var $subBox = $("input[name=‘subBox‘]");
                    // $("#checkAll").click(function() {
                    //     $subBox.prop("checked",$("#checkAll").is(‘:checked‘) ? true : false);
                    // });
                    // $subBox.click(function(){
                    //     $("#checkAll").prop("checked",$subBox.length == $("input[name=‘subBox‘]:checked").length ? true : false);
                    // });

                    var oSubBox = document.getElementsByName("subBox");
                    var oCheckAll = document.getElementById("checkAll");
                    checkAll(oCheckAll,oSubBox);
                    var $subBox = $("input[name=‘subBox‘]");
                    $subBox.click(function(){
                        $("#checkAll").prop("checked",$subBox.length == $("input[name=‘subBox‘]:checked").length ? true : false);
                    });

                    $("#checkAll").change(function () {
                        if($("#checkAll").prop("checked")){
                            $.each(data.data.departPhones,function (i,item) {
                                checkAllAdd(item);
                            });
                            smscount();
                        }else{
                            $.each(data.data.departPhones,function (i,item) {
                                checkAllCut(item)
                            });
                            smscount();
                        }
                    });
                    //全选添加人员--根据部门id,控制部门人员
                    // $("#checkAll").change(function () {
                    //     if($("#checkAll").prop("checked")){
                    //         $.each(data.data.departPhones,function (i,item) {
                    //             var itemUl = document.getElementById("select2-choices");
                    //             var itemli = itemUl.getElementsByTagName("li");
                    //             if(itemli){
                    //                 for(var w = 0; w<itemli.length; w++){
                    //                     if(item.phoneName == $(itemli[w]).attr("data-text") && item.fixPhone == $(itemli[w]).attr("title")){
                    //                         $(itemli[w]).remove();
                    //                     }
                    //                 }
                    //             }
                    //             addselect2(item.phoneName,item.fixPhone,item.departId,item.id);
                    //         });
                    //         smscount();
                    //     }else{
                    //         $.each(data.data.departPhones,function (i,item) {
                    //             var itemUl = document.getElementById("select2-choices");
                    //             var itemli = itemUl.getElementsByTagName("li");
                    //             for (var i = 0; i < itemli.length; i++) {
                    //                 if (item.departId == $(itemli[i]).attr("data-departId")) {
                    //                     $(itemli[i]).remove();
                    //                 }
                    //             }
                    //         });
                    //         smscount();
                    //     }
                    // });
                    //单选添加人员--根据号码和姓名进行匹配
                    $subBox.change(function () {
                        var currentLi = $(this).parent().parent().parent();
                        var itemUl = document.getElementById("select2-choices");
                        var itemli = itemUl.getElementsByTagName("li");
                        if($(this).prop("checked")){
                            addselect2(currentLi.attr("data-name"),currentLi.attr("data-phonevalue"),currentLi.attr("data-departid"),currentLi.attr("data-id"),true);
                            smscount();
                        }else{
                            //删除已选成员
                            for(var i = 0; i<itemli.length; i++){
                                if(currentLi.attr("data-name") == $(itemli[i]).attr("data-text") && currentLi.attr("data-phonevalue") == $(itemli[i]).attr("title")){
                                    $(itemli[i]).remove();
                                }
                            }
                            smscount();
                        }
                    });
                    //点击显示隐藏
                    $("#departmentGroup li").on(‘click‘,function () {
                        if($(this).find("dl").css("display")=="none"){
                            $(this).find("dl").show();
                        }else{
                            $($(this).find("dl")).hide();
                        }
                    });
                }
            },
            complete: function () {
                $(".spinner").hide();
            }
        }); //$ajax

    }//departmentSub(departId,departName)
    function checkAllAdd(item) {
        var itemUl = document.getElementById("select2-choices");
        var itemli = itemUl.getElementsByTagName("li");
        if(itemli){
            for(var w = 0; w<itemli.length; w++){
                if(item.phoneName == $(itemli[w]).attr("data-text") && item.fixPhone == $(itemli[w]).attr("title")){
                    $(itemli[w]).remove();
                }
            }
        }
        addselect2(item.phoneName,item.fixPhone,item.departId,item.id);
    }
    function checkAllCut(item){
        var itemUl = document.getElementById("select2-choices");
        var itemli = itemUl.getElementsByTagName("li");
        for (var i = 0; i < itemli.length; i++) {
            if (item.departId == $(itemli[i]).attr("data-departId")) {
                $(itemli[i]).remove();
            }
        }
    }

    //全选
    function checkAll(checkAll,subBox) {
        checkAll.onclick = function () {
            if(checkAll.checked){
                for(i=0;i<subBox.length;i++){
                    subBox[i].checked = true;
                }
            }else{
                for(i=0;i<subBox.length;i++){
                    subBox[i].checked = false;
                }
            }
        };
    }

    //全选的整合
    // var  checkFun = function() {//当前全选按钮,当前子选的所有按钮
    //     //全选
    //     // var $subBox = $("input[name=‘subBox‘]");
    //     // checkAll.onclick = function () {
    //         console.log("234");
    //     var $subBox = $("input[name=‘subBox‘]");
    //     $subBox.prop("checked",$("#checkAll").is(‘:checked‘) ? true : false);
    //     // };
    //
    //
    //     // $("input[name=‘checkall‘]").click(function() {
    //     //     $subBox.prop("checked",$("#checkAll").is(‘:checked‘) ? true : false);
    //     // });
    //     // $subBox.click(function(){
    //     //     $("#checkAll").prop("checked",$subBox.length == $("input[name=‘subBox‘]:checked").length ? true : false);
    //     // });
    // };
    //临时号码逻辑---添加
    $("#add-member").on("click",function () {
        var tel = $(‘input[name="add-tel"]‘).val();
        var name = $(‘input[name="add-name"]‘).val();
        if(tel =="" && name==""){
            toastr.info("请输入查询号码或姓名!");
            return false;
        }
        //如果号码已经存在
        var selectUl2 = document.getElementById("select2-choices");
        var selectLi2 = selectUl2.getElementsByTagName("li");
        if(selectLi2){
            for(var j=0;j<selectLi2.length;j++){
                if(tel == $(selectLi2[j]).attr("title")){
                    toastr.info("添加的号码已存在!");
                    $(‘input[name="add-tel"]‘).val("");
                    return false;
                }
                if(name == $(selectLi2[j]).attr("data-text")){
                    toastr.info("添加的姓名已存在!");
                    $(‘input[name="add-name"]‘).val("");
                    return false;
                }
            }
        }
        $.ajax({
            cache: true,
            type: "POST",
            url:"department2.json",
            data:$(‘#add-num-form‘).serialize(),// 你的formid,serialize()函数会把表单要提交的数据序列化成参数形式
            async: false,
            beforeSend: function () {
                showSpin();
            },
            success: function(data) {
                var arr = [];//名称组
                var telGroup= [];//主号码组
                var expandArr=[];//子号码组
                var departName = data.data.departName;
                $.each(data.data.departPhones,function (i,item) {//i=0
                    var names = item.phoneName;
                    names = names.split(",");
                    var tels = item.fixPhone;
                    tels = tels.split(",");
                    if(names.indexOf(name)>-1){
                        addselect2(name,item.fixPhone,item.departId,item.id,true);//姓名,电话号码,部门id,人员id
                        departmentSub(item.departId,departName);
                    }else if(tels.indexOf(tel)>-1){
                        addselect2(item.phoneName,tel,item.departId,item.id,true);
                        departmentSub(item.departId,departName);
                    }else{
                        expandArr = item.expand.split(‘,‘);
                        $.each(expandArr,function (j,expand) {
                            if(expand){
                                var expand = expand.split(",");
                                if(expand.indexOf(tel)>-1){
                                    // addselect2(item.phoneName,tel,item.departId,item.id,true);
                                    departmentSub(item.departId,departName);
                                    toastr.info("此号码已存在公司列表下,请选择");
                                    $(‘input[name="add-name"]‘).val("");
                                    return false;
                                }
                            }
                        });
                    }
                    //如果名字存在,取数组。
                    if(name){
                        var ind = names.indexOf(name);
                        arr = arr.concat(ind);
                    }
                    //如果号码存在
                    if(tel){
                        //合并两个数组
                        telGroup = telGroup.concat(tels);
                        telGroup = telGroup.concat(expandArr);
                        //数组去空
                        for(var p = 0 ;p<telGroup.length;p++)
                        {
                            if(telGroup[p] == ""){
                                telGroup.splice(p,1);
                                p= p-1;
                            }
                        }
                    }
                });
                //此处判断添加的姓名是否在数据中。
                if(arr.length>0){//
                    if(arr.indexOf(0)>-1){
                        return false;//如果名字匹配,就返回,防止执行临时成员的事件
                    }else{
                        //否则提示"此人不在公司列表中,请添加号码"
                        toastr.info("此人不在公司列表中,请添加号码");
                        $(‘input[name="add-name"]‘).val("");
                        return false;
                    }
                }
                //此处判断号码是否在数据中,如果不在,显示为临时号码。
                var srdata = [];//获取没有匹配的号码数据
                if(telGroup){//telGroup中包括fixPhone和expand号码
                    for(var p = 0 ;p<telGroup.length;p++)
                    {
                        if(telGroup[p].indexOf(tel)>-1){
                            return false;
                        }else{
                            srdata=tel;
                        }
                    }
                }
                addselect2("临时成员",srdata,null,null,null);
                //此处是判断匹配的时候清空
                $(‘input[name="add-name"]‘).val("");
                $(‘input[name="add-tel"]‘).val("");
            },
            complete: function () {
                $(".spinner").hide();
            }
        });
        smscount();
        //此处展开列表清空
        $(‘input[name="add-name"]‘).val("");
        $(‘input[name="add-tel"]‘).val("");
    });
    //立即会议与预约会议的切换
    $(‘input:radio[name="meeting"]:eq(1)‘).change( function(){
        $("#dtp_input2").val("");
        $(".timevalue").val("");
        $(".appointment").css("display","block");
    });
    $(‘input:radio[name="meeting"]:eq(0)‘).change( function(){
        $(".appointment").css("display","none");
    });

    // function loadScript(url, callback) {
    //     var script = document.createElement("script");
    //     script.type = "text/javascript";
    //     // IE
    //     if (script.readyState) {
    //         script.onreadystatechange = function () {
    //             if (script.readyState == "loaded" || script.readyState == "complete") {
    //                 script.onreadystatechange = null;
    //                 callback();
    //             }
    //         };
    //     } else { // others
    //         script.onload = function () {
    //             callback();
    //         };
    //     }
    //     script.src = url;
    //     document.body.appendChild(script);
    // }
    //模态窗数据验证和提交

    // $(‘#myModal‘).on(‘hidden.bs.modal‘, function (e) {
    //     $("#select2-choices").html("");
    //     console.log("666");
    // });
});
//需要完善问题:
//1,当选择人员下面当radio按钮,全选默认是fixPhone,需要修改458处;如果先选择全选,在修改radio的值是正常的。
var otem = [];
var timestamp;//时间
var meetTitle = "";
function update() {
    otem = [];
    // var dataTextArr = {};
    // var titleArr = {};
    // var dataDepartidArr = {};
    meetTitle = $(‘input[name="meetTitle"]‘).val();
    var itemUl = document.getElementById("select2-choices");
    var itemli = itemUl.getElementsByTagName("li");
    if(itemli){
        $(itemli).each(function (i, e) {
            var obj = {name: $(e).attr("data-text"), tel: $(e).attr("title"), departId: $(e).attr("data-departid")};
            otem.push(obj);
        });
    }
    if (otem == "") {
        toastr.info("请添加成员");
        return false;
    } else {
        //时间,如果是立即会议,传当前时间,如果是预约会议,传控件时间
        if ($("input:radio[name=‘meeting‘]")[0].checked) {
            // $("#dtp_input2").val("");
            timestamp = Date.parse(new Date());
            var html = "";
            $(".member-grounp").html("");
            $(".member").show();
            $(".emptyI").hide();
            $(".host-icon").text(phoneName.slice(-2));
            $(".host").text("主持人:" + phoneName);
            $.each(otem, function (i, o) {
                html += ‘<li data-departId=‘ + o.departId + ‘ data-tel=‘ + o.tel + ‘>‘ +
                    ‘<span class="m-icon" style="background-color:green;">‘ + o.name.slice(-2) + ‘</span>‘ +
                    ‘<p class="name">‘ + o.name + ‘</p>‘ +
                    ‘</li>‘;
            });
            html +=
                ‘<li class="addBtn" data-toggle="modal" data-target="#myModal">‘ +
                ‘<span class="addI">‘ + ‘</span>‘ +
                ‘</li>‘ + ‘</ul>‘;
            $(".member-grounp").append(html);
        }else if ($("input:radio[name=‘meeting‘]")[1].checked) {
            var datetime1 = $("#dtp_input2").val();
            if(datetime1==""){
                toastr.info("请设置预约会议时间");
                return false;
            }else{
                //转时间戳
                var datetimestamp = Date.parse(datetime1).toString();
                var dts = datetimestamp.substr(0, datetimestamp.length - 3);
                timestamp = dts;
            }
            $(".member-grounp").html("");
            $(".member").hide();
            $(".emptyI").show();
            $("#meeting-record").before(
                ‘<ul class="meeting getList">‘+
                ‘<li>‘+
                ‘<div class="three-icon">‘+
                ‘<span class="small-icon">立娟</span>‘+
                ‘<span class="small-icon" style="float:left;margin-right:6px;">小强</span>‘+
                ‘<span class="small-icon" style="float:left;">灿烂</span>‘+
                ‘</div>‘+
                ‘<div class="right-cont">‘+
                ‘<p>‘+
                ‘<span class="content">‘+meetTitle+‘</span>‘+
                ‘<span class="time">‘+datetime1+‘</span>‘+
                ‘<a class="reservation" data-recordType=‘+"预约会议"+‘ href="#">预约会议</a>‘+
                ‘</p>‘+
                ‘</div>‘+
                ‘</li>‘+
                ‘</ul>‘
            );
        }
        console.log(timestamp);
    }
    // $(‘#myModal‘).modal(‘hide‘);
    if(otem!="" || timestamp != undefined){
        $(‘#myModal‘).modal(‘hide‘);
    }
}

// function update() {
//     var dataTextArr = [];
//     var titleArr = [];
//     var dataDepartidArr = [];
//     var otem = {};
//     var itemUl = document.getElementById("select2-choices");
//     var itemli = itemUl.getElementsByTagName("li");
//     $(itemli).each(function (i,e) {
//         dataTextArr.push($(e).attr("data-text"));
//         titleArr.push($(e).attr("title"));
//         dataDepartidArr.push($(e).attr("data-departid"));
//         otem = {name:dataTextArr,tel:titleArr,departId:dataDepartidArr}
//     });
//     console.log(otem);
//     if(dataTextArr==""&&titleArr==""){
//         toastr.info("请添加成员");
//         return false;
//     }else{
//         $.each(otem.name,function (i,v) {
//             console.log(v);
//         });
//
//     }
//     //时间,如果是立即会议,传当前时间,如果是预约会议,传控件时间
//     if($("input:radio[name=‘meeting‘]")[0].checked){
//         timestamp = Date.parse(new Date());
//     }
//     if($("input:radio[name=‘meeting‘]")[1].checked){
//         //转时间戳
//         var datetime1 = $("#dtp_input2").val();
//         if(datetime1){
//             var datetimestamp = Date.parse(datetime1).toString();
//             var dts = datetimestamp.substr(0,datetimestamp.length-3);
//             timestamp=dts;
//         }
//     }
//     if(timestamp==undefined){
//         toastr.info("请设置预约会议时间");
//         $(‘input[name="add-name"]‘).val("");
//         return false;
//     }
//     console.log(timestamp);
//     $(‘#myModal‘).modal(‘hide‘);
// }

// function update() {
//
//     //注意:主要是style不应该等于submit,等于submit的话,ajax异步请求对手机号判别和form表单提交会同时进行,而form表单的提交更快些。导致ajax判别不起作用。
//     var tempNumbers=[];//保存临时成员号码;
//     var calledNumber=[];//被叫者的号码数组
//     var tempNumberNames=[];
//     var otem = {};
//     //获取模态框数据
//     var meetTitle = $(‘input[name="meetTitle"]‘).val();
//     var timestamp;
//     //分析---
//     //    取临时号码组
//     var itemUl = document.getElementById("select2-choices");
//     var itemli = itemUl.getElementsByTagName("li");
//     $(itemli).each(function (i,e) {
//         if($(e).attr("data-departid")=="null"){//临时号码名称和号码
//             tempNumbers.push($(e).attr("title"));
//             tempNumberNames.push($(e).attr("data-text"));
//         //    临时号码对象
//         //     otem = {name:tempNumberNames,tel:tempNumbers}
//         }else{
//             calledNumber.push($(e).attr("title"));
//         }
//     });
//     console.log(tempNumbers);
//     console.log(tempNumberNames);
//     // console.log(otem);
//     console.log(calledNumber);
//     if(tempNumbers=="" && calledNumber==""){//临时号码和被叫者号码都为空=无成员
//         toastr.info("请添加成员");
//         $(‘input[name="add-name"]‘).val("");
//         return false;
//     }
//     //时间,如果是立即会议,传当前时间,如果是预约会议,传控件时间
//     if($("input:radio[name=‘meeting‘]")[0].checked){
//         timestamp = Date.parse(new Date());
//     }
//     if($("input:radio[name=‘meeting‘]")[1].checked){
//         //转时间戳
//         var datetime1 = $("#dtp_input2").val();
//         if(datetime1){
//             var datetimestamp = Date.parse(datetime1).toString();
//             var dts = datetimestamp.substr(0,datetimestamp.length-3);
//             timestamp=dts;
//         }
//     }
//     if(timestamp==undefined){
//         toastr.info("请设置预约会议时间");
//         $(‘input[name="add-name"]‘).val("");
//         return false;
//     }
//     console.log(timestamp);
//     //---分析
//     // $.ajax({
//     //     type: "post",
//     //     url: "department2.json",
//     //     data:{
//     //         calledNumber:calledNumber,//被叫者的号码数组
//     //         companyId:companyId,//发起会议的公司ID
//     //         fixPhone:fixPhone,        //string    发起者的号码
//     //         meetTitle:meetTitle,    //string    会议标题
//     //         startTime:timestamp,        //string    //会议开始时间
//     //         tempNumberNames:tempNumberNames,        //string    临时号码名称数组
//     //         tempNumbers:tempNumbers//临时号码数组
//     //     },
//         // dataType: ‘html‘,
//         // contentType: "application/x-www-form-urlencoded; charset=utf-8",
//         // success: function(result) {
//             $(‘#myModal‘).modal(‘hide‘);
//
//     //     }
//     // });
// }

// window.onload = function () {
//     $(‘#myModal‘).on(‘hidden.bs.modal‘, function (e) {
//         update();
//     });
// }

$(function () {
    //立即发起
    //模态窗确定后执行的函数
    // $(‘#myModal‘).on(‘hidden.bs.modal‘, function (e) {
    //     $(this).removeData(‘modal‘);
    // });
    // $("#cancelMeeting")
    //清除弹窗原数据
    // $(‘#create_modal‘).on(‘show.bs.modal‘, function () {
    //    console.log("666");
    // });
    // $("#create_modal").on("hidden.bs.modal", function() {
    //     $(this).removeData("bs.modal");
    // });

    $("#atOnce").on(‘click‘,function () {
        var calledNumberArr = [];
        var tempNumberNamesArr = [];
        var tempNumbersArr = [];
        // var names = [];
        console.log("345");
        $.each(otem,function (i,o) {
            if(o.departId == "null"){
                if(this.name=="临时成员"){
                    var tel = this.tel;
                    tel = tel.split(",");
                    // console.log(tel);
                    // tempNumbersArr = tel.concat(tel);
                    for(var j in tel){
                        tempNumbersArr.push(tel[j]);
                    }
                    var name = this.name;
                    name = name.split(",");
                    for(var j in name){
                        tempNumberNamesArr.push(name[j]);
                    }
                }
            }else{
                var callTel = o.tel;
                callTel = callTel.split(",");
                for(var j in callTel){
                    calledNumberArr.push(callTel[j]);
                }
            }
        });
        // console.log(tempNumberNamesArr);
        // console.log(tempNumbersArr);
        // console.log(calledNumberArr);
        $.ajax({
            type:"post",
            url:"department2.json",
            data:{
                calledNumber:calledNumberArr,//被叫者的号码数组
                companyId:companyId,//发起会议的公司ID
                fixPhone:fixPhone,        //string    发起者的号码
                meetTitle:meetTitle,    //string    会议标题
                startTime:timestamp,        //string    //会议开始时间
                tempNumberNames:tempNumberNamesArr,        //string    临时号码名称数组
                tempNumbers:tempNumbersArr//临时号码数组
            }
        })
    });
    //取消会议
    $("#cancelMeeting").click(function () {
        $(".member-grounp").html("");
        $(".member").hide();
        $(".emptyI").show();
    })
});
window.onload=function(){
    // $(‘body‘).on(‘hidden‘, ‘.modal‘, function () {
    //     $(this).removeData(‘modal‘);
    // });

};
时间: 2024-10-17 04:48:26

会议通js的相关文章

【API】高德地图API JS实现获取坐标和回显点标记

1.搜索+选择+获取经纬度和详细地址 2.回显数据并点标记 3.实现 第一步:引入资源文件 <!--引入高德地图JSAPI --><script src="//webapi.amap.com/maps?v=1.3&key=在官网申请一个key"></script><!--引入UI组件库(1.0版本) --><script src="//webapi.amap.com/ui/1.0/main.js">

js跨域

第一次写博客,好紧张,不知道能写成啥样,哈哈哈. 自己的一知片解,有错请多多指教,嘻嘻嘻. 一.何为跨域? 只要协议.域名.端口后任何一个不同,就是跨域. 举个例子: http://www.example.com 协议不同 https://www.example.com http://www.example.com 域名不同 http://www.test.com http://www.example.com 端口不同 http://www.example.com:81 注意:ip相同,域名不同

Vue.js学习笔记:属性绑定 v-bind

v-bind  主要用于属性绑定,Vue官方提供了一个简写方式 :bind,例如: <!-- 完整语法 --> <a v-bind:href="url"></a> <!-- 缩写 --> <a :href="url"></a> 绑定HTML Class 一.对象语法: 我们可以给v-bind:class 一个对象,以动态地切换class.注意:v-bind:class指令可以与普通的class特

node.js的安装及配置

一.安装 直接在浏览器搜索node.js,在官网上下载(一般旧版的更加稳定,比如下载4.4.7版本) 点击DOWNLOADS 往下翻,点击Previous Release Windows下载msi(64位/32位) 根据提示一步步安装,安装之后的文件夹如下: 在cmd命令行下输入node -v,如果出现如下,说明安装成功: 二.关于配置 在安装路径下新建两个文件夹: 创建完两个空文件夹之后,打开cmd命令窗口,输入 npm config set prefix "D:\Program Files

Node.js 使用angularjs取得Nodejs http服务端返回的JSON数组示例

server.js代码: // 内置http模块,提供了http服务器和客户端功能(path模块也是内置模块,而mime是附加模块) var http=require("http"); // 创建服务器,创建HTTP服务器要调用http.createServer()函数,它只有一个参数,是个回调函数,服务器每次收到http请求后都会调用这个回调函数.服务器每收到一条http请求,都会用新的request和response对象触发请求函数. var server=http.createS

Knockout.js简介

Knockout是一款很优秀的JavaScript库,通过应用MVVM模式使JavaScript前端UI简单化.任何时候你的局部UI内容需要自动更新,KO都可以很简单的帮你实现,并且非常易于维护. Knockout的3个核心功能是: ? 属性监控与依赖跟踪 ? 声明式绑定 ? 模板机制 MVVM Model-View-View Model (MVVM)是一种创建用户界面的设计模式. ? Model:用于存储应用程序数据,表示业务领域的对象和数据操作,并且独立于任何界面. 当使用KO的时候,通常是

vue.js 入门

简单一句话来描述:vue.js是一个前端框架. 官方文档:https://cn.vuejs.org/v2/guide/index.html 虽然,我以前也会改一些前端样式,但主要是基于HTML和CSS,HTML主要控制页面的结构,CSS主要来控制样式.涉及到JavaScript就比较小白了. 我花了一个下午照着官方文档做练习,当然是只创建一个xxx_demo.html文件,在<script></script> 标签对之间写 Vue.js语法.这不算错,但在工程化的今天,这么学得猴年

JS高程3:JSON

JSON,JavaScript Object Notation,JS对象表示法,是目前最常见的结构化数据传输形式. JSON并非编程语言,而是一种数据结构,像mp4.avi一样,只是一种数据格式而已.(数据结构可以包含很多数据类型) JSON值的类型 简单值 对象 数组 简单值:字符串.数字.布尔值和null,注意不包括undefined. 注意:JSON中的字符串必须用双引号. 对象:对象就是无序的键值对,而键值中的值也可以是简单值.对象或者数组. 注意:JSON中对象的属性必须用双引号括起来

js装饰器

本文是廖雪峰老师js教程的学习笔记 JavaScript的所有对象都是动态的,即使内置的函数,我们也可以重新指向新的函数. 利用apply(),我们还可以动态改变函数的行为. 现在假定我们想统计一下代码一共调用了多少次parseInt(),可以把所有的调用都找出来,然后手动加上count += 1,不过这样做太傻了.最佳方案是用我们自己的函数替换掉默认的parseInt(): var count = 0; var oldParseInt = parseInt; // 保存原函数 window.p