项目大总结(项目总结)

来源:互联网 发布:网页游戏源码网 编辑:程序博客网 时间:2024/05/17 02:27

一. 从后台获取的数据设置成属性,同时选中这个带属性值的元素,那么方法来了

if (!me.param.classId) {    var classId = $('#classAssess option:selected').attr('classId');} else {    var classId = me.param.classId;    $('#classAssess option[classId =' + classId + ']').prop("selected", true);}

注意else里面用到的方法,同时注意prop的用法,prop是设置属性的意思,这里也可以用attr


二.bootstrap的table插件的用法(在这里给自己一个警告,一定要学会自己看文档,要不然以后自己成长会很慢)


// table插件加载数据ClassAssess.prototype.table = function () {    var me = this;    // table里面需要绑定的评价加载事件  课堂点评    var operateEvents = {        'click .default-btn.tc': function (e, value, row, index) {            me.timeCompare();            me.clearClassAssesss();            me.classAssessFrame(row.studentId);            if (!row.states) return;            if (row.states.name == 'NO') return;            var timeTableId = me.find(".subjectList li.checked").attr("timeTableId");            var data = {                "extId": timeTableId,                "userId": row.studentId            };            me.getStudentAssess(data);        }    };    var url = "class/assessment/table/inform";    var $table = new Table(        me.find("#tbl_classAssess"),        {            url: url, // 请求后台的URL*            toolbar: me.find('#toolbar'), // 工具按钮用哪个容器            queryParams: $.proxy(me.queryParams, this),// 传递参数(*$.proxy()me.queryParams这个对象换成了thisClassAssess            sidePagination: "server", // 分页方式:client客户端分页,server服务端分页(*)假数据用client            responseHandler: function (result) {                if (!result.success) {                    alert('获取学生评价信息发生异常');                    return;                }                if (!result.data) return;                if (!result.pageInfo) return;                for (var i in result.data) {                    var tips                    if (!result.data[i].itemName) {                        tips = null;                    } else {                        tips = result.data[i].itemName.split(" ");                    }                    result.data[i].tips = tips;                    if (!result.data[i].score) {                        result.data[i].score = {};                    }                    if (!result.data[i].score.code) {                        result.data[i].score.code = 0;                    }                }                return {                    rows: result.data,                    total: result.pageInfo.totalCount                };            },            uniqueId: "studentId", // 每一行的唯一标识,一般为主键列            columns: [{                checkbox: true,            }, {                field: 'studentName',                title: '学生名字',                formatter: function (value, row, index) {                    var portrait = row.portrait || "../theme/default/images/userpic.jpg";                    return '<span class="userpic" style=""><img src="' + portrait + '"></span><span class="username">' + value + '</span>';                }            }, {                field: 'score.code',                title: '平均星评',                formatter: function (value, row, index) {                    value = value;                    var $item = '<span class="iconfont icon-star"></span>';                    var html = [];                    for (var i = 0; i < value; i++) {                        html.push($item);                    }                    return html.join("");                }            }, {                field: 'tips',                title: '课堂标签',                formatter: function (value, row, index) {                    if (!value || !value.length) return "";                    var html = [];                    html.push('<p class="tips">');                    for (var k in value) {                        html.push('<span>' + value[k] + '</span>');                    }                    html.push('</p>');                    return html.join("");                }            }, {                field: 'states.name',                title: '操作',                events: operateEvents,                formatter: function (value, row, index) {                    return '<a class="default-btn tc" state="' + value + '">课堂点评</a>';                }            }],        });};
operateEvents 和 
queryParams: $.proxy(me.queryParams, this)  都是很重要的点
如果这里不用
$.proxy(me.queryParams, this),这样在
ClassAssess.prototype.queryParams = function (params) {    var me = this;    var timeTableId = me.find(".subjectList li.checked").attr("timeTableId");    if (!timeTableId) return false;    var temp = { // 这里的键的名字和控制器的变量名必须一直,这边改动,控制器也需要改成一样的        limit: params.limit, // 页面大小        offset: params.offset, // 页码        timetableId: timeTableId    };    return temp;};
这个函数里面这个this就是指的是classAssess,但是在
queryParams: $.proxy(me.queryParams, this)这个里面,由于这个函数实在table对象里面使用的,所以这个函数的this就变成了table,所以在
queryParams这个函数里面this不在是指classAssess。
三.首页的结构,如果一个页面是由许多不同的版块构成,并且每个版块都会向后台发送请求,往模板里面添加,这时结构就比较复杂了。所以可以借鉴一下首页的结构,很有借鉴意义
HomePage.prototype.showPage = function (list, offset) {    var me = this;    for (var i in list) {        var extType = list[i].extType.name;        var info = JSON.parse(list[i].dataJson);        if (!info || $.isEmptyObject(info)) return;        //通用的模板处理 (克隆模板,填充年、月、日)        //通知模块特殊处理        var $template;        if (extType == 'MESSAGE_SCHOOL' || extType == 'MESSAGE_CLASS' || extType == 'MESSAGE_SYSTEM') {            $template = me.$data['message-template'].dom;        } else {            var entTypeArray = ['HOME_WORK_PUBLISH', 'TIME_TABLE_TODAY', 'CLASS_ASSESS_STUDENT', 'REQUEST_LEAVE_STUDENT', 'REQUEST_LEAVE_REPLY', 'HOME_WORK_CONFIRM', 'HOME_WORK_ASSESS', 'HOME_WORK_SHARE'];            var templateArray = ['deployHomework-template', 'timeTable-template', 'teacherAccess-template', 'requestLeave-template', 'requestLeave-template', 'homeworkConfirm-template', 'homeworkConfirm-template', 'homeworkShare-template'];            var index = entTypeArray.indexOf(extType);            if (index == -1) return;            $template = me.$data[templateArray[index]].dom;        }        var $item = $template.clone();        var $dom = domUtil.getDomByName($item);        $dom.title.val(list[i].extType.text);        var time = list[i].eventTime;        time = dateUtil.standarDateStrToDate(time);        var minutes = time.getMinutes();        if (minutes <= 9) {            minutes = '0' + minutes;        }        $dom.times.val(time.getHours() + ':' + minutes);        $dom.date.val(time.getDate() + '');        $dom.month.val((time.getMonth() + 1) + '');        $dom.year.val(time.getFullYear());        //有年份和月份的处理        var date = time.getYear() + time.getMonth();        if (dateArray.indexOf(date) == -1) {            dateArray.push(date);            $item.addClass('first-mg');        } else {            $item.find('.pos-year').hide();        }        //课程表        if (extType == 'TIME_TABLE_TODAY') {            var $template = me.$data["timeTableList-template"].dom;            for (var j in info.timeTableList) {                var $timeTableItem = $template.clone();                var $timeTableDom = domUtil.getDomByName($timeTableItem);                $timeTableDom.classLesson.val(info.timeTableList[j].lessonNumber.text);                $timeTableDom.subjectName.val(info.timeTableList[j].subjectName);                $timeTableDom.className.val(info.timeTableList[j].className);                $dom['timeTableList-container'].dom.append($timeTableItem);            }            $dom.tips.val(info.tips);            me.$data['homePage-container'].dom.append($item);            me.toViewDetail($item, 'timeTable', null, null, info.studentId);        }        //老师评价        else if (extType == 'CLASS_ASSESS_STUDENT') {            $dom.studentName.val(info.studentName);            $dom.className.val(info.className);            var dictionary = "EDCBA";            var starCount = dictionary.indexOf(info.score.name) + 1;            var starLayout = '综合';            for (var j = 0; j < starCount; j++) {                starLayout += ' <span class="iconfont icon-star-on color-yellow"></span>';            }            for (var j = 0; j < 5 - starCount; j++) {                starLayout += '<span class="iconfont icon-star"></span>';            }            $dom.star.val(starLayout);            //没有我的评价信息的时候,不显示下面内容区域            if (info.content == '') {                $dom.content.dom.parent().hide();            }            $dom.content.val(info.content);            me.$data['homePage-container'].dom.append($item);            me.toViewDetail($item, 'classAssess', null, null, info.studentId);        }        //通知        else if (extType == 'MESSAGE_SCHOOL' || extType == 'MESSAGE_CLASS' || extType == 'MESSAGE_SYSTEM') {            $dom.content.val(format.midHtmlTag(info.content, 50));            $dom.className.val(info.className);            $dom.studentName.val(info.studentName);            me.$data['homePage-container'].dom.append($item);            var messageType;            if (extType == 'MESSAGE_SCHOOL') {                messageType = 'SCHOOL_MESSAGE';            } else if (extType == 'MESSAGE_CLASS') {                messageType = 'CLASS_MESSAGE';            } else {                messageType = 'SYSTEM_MESSAGE';            }            me.toViewDetail($item, 'informDetail', info.messageId, messageType, info.studentId);        }        //请假条        else if (extType == 'REQUEST_LEAVE_STUDENT' || extType == 'REQUEST_LEAVE_REPLY') {            $dom.content.val(info.reason);            $dom.studentName.val(info.leaveUserName);            $dom.className.val(info.className);            if (info.leaveStatus.name == 'REJECT') {                $dom.status.dom.parent().attr('class', 'color-danger');            } else if (info.leaveStatus.name == 'STAY_EXAMINE') {                $dom.status.dom.addClass('leave_item_state ');                $dom.status.dom.parent().removeClass('color-success');            }            $dom.status.val(info.leaveStatus.text);            $dom.teacherName.val(info.leaveReceiveName);            me.$data['homePage-container'].dom.append($item);            me.toViewDetail($item, 'requestLeaveList', null, null, info.leaveUserId);        }        //作业确认完成和老师检查完作业        else if (extType == 'HOME_WORK_CONFIRM' || extType == 'HOME_WORK_ASSESS') {            $dom.content.val(format.midHtmlTag(info.content, 50));            if (info.teacherAttachList.length == 0) {                $dom["homeworkImages-container"].dom.hide();            }            for (var j in info.teacherAttachList) {                var imgSrc = info.teacherAttachList[j];                var $img = me.$data['homework-image-template'].dom.clone();                $img.find("img").attr("src", format.photoImgUrl(imgSrc, format.img_list));                $dom["homeworkImages-container"].dom.append($img);            }            if (extType == 'HOME_WORK_CONFIRM') {                $dom.portrait.dom.attr("src", format.photoImgUrl(info.studentPortrait, format.img_list, "common/portrait_boy.png"));                $dom.studentName.val(info.studentName);                $dom.subjectName.val(info.subjectName);                $dom.className.val(info.className);                for (var j in info.studentAttachList) {                    var imgSrc = info.studentAttachList[j];                    var $img = me.$data['homework-image-template'].dom.clone();                    $img.find("img").attr("src", format.photoImgUrl(imgSrc, format.img_list));                    $dom["commitImages-container"].dom.append($img);                }                if (info.studentAttachList.length == 0) {                    $dom["commitImages-container"].dom.hide();                }                if (info.commitComment == '') {                    $dom.commit.dom.parent().hide();                }            } else {                $dom.portrait.dom.hide();                if (info.reviewVo && info.reviewVo.comment != '') {                    info.commitComment = '检查信息: ' + info.reviewVo.comment;                } else {                    info.commitComment = '检查信息: 教师未填写检查信息';                }            }            $dom.commit.val(info.commitComment);            me.$data['homePage-container'].dom.append($item);            if (extType == 'HOME_WORK_CONFIRM') {                me.toViewDetail($item, 'homeworkDetail', info.homeworkStudentId, null, info.studentId);            }        }                //分享作业        else if (extType == 'HOME_WORK_SHARE') {            $dom.portrait.dom.attr("src", format.photoImgUrl(info.studentPortrait, format.img_list, "common/portrait_boy.png"));            $dom.studentName.val(info.studentName);            $dom.className.val(info.className);            $dom.content.val(format.midHtmlTag(info.content, 50));            for (var j in info.studentAttachList) {                var imgSrc = info.studentAttachList[j];                var $img = me.$data['homework-image-template'].dom.clone();                $img.find("img").attr("src", format.photoImgUrl(imgSrc, format.img_list));                $dom["shareImages-container"].dom.append($img);            }            me.$data['homePage-container'].dom.append($item);            me.toViewDetail($item, 'homeworkDetail', info.homeworkStudentId, null, info.studentId);        }        //老师布置作业        else if (extType == 'HOME_WORK_PUBLISH') {            $dom.portrait.dom.attr("src", format.photoImgUrl(info.studentPortrait, format.img_list, "common/portrait_boy.png"));            $dom.studentName.val(info.studentName);            $dom.className.val(info.className);            $dom.subjectName.val(info.subjectName);            $dom.content.val(format.midHtmlTag(info.content, 50));            //布置的作业没有上传图片后台返回contentImageUrls:[null]            if (info.teacherAttachList.length == 0) {                $dom["deployImages-container"].dom.hide();            }            for (var j in info.teacherAttachList) {                var imgSrc = info.teacherAttachList[j];                var $img = me.$data['homework-image-template'].dom.clone();                $img.find("img").attr("src", format.photoImgUrl(imgSrc, format.img_list));                $dom["deployImages-container"].dom.append($img);            }            me.$data['homePage-container'].dom.append($item);            me.toViewDetail($item, 'homeworkDetail', info.homeworkStudentId, null, info.studentId);        }    }    //第一次获取推送的消息    if (offset && offset == 0) {        storageUtil.set(storageUtil.CURRENT_HOME_LIST, list);    }};

四.把数字转化字母,把字母转化为数字(在课堂评价的页面经常用到)
// 把数字转化为等级字母ClassAssess.prototype.evaluateMapping = function (val) {    var dictionary = "EDCBA";    return dictionary.substring(val - 1, val);};
// 把字母转化为对应的数字
var dictionary = "EDCBA";var starCount = dictionary.indexOf(info.score.name) + 1;