1. 程式人生 > >高水二期專案總結

高水二期專案總結

1.在dataGrid中,如果我們需要對後臺傳過來的資料進行修飾,我們可以採用formatter,這裡需要注意的是,我們最好不要直接把值放在formatter中,而是設定專門的物件去儲存所有的值,就像下面這樣:

{
                field : 'type',
                title : '稽核型別',
                width : '25%',
                align : 'center',
                formatter: function (value, row, index) {
                    var _v = value + '';
                    if (_v) {
                        return getValueByKey(AUDIT_TYPE, _v);
                    }
                }
 }

function getValueByKey(arr, key) {
    var i = 0;
    for (i = 0; i < arr.length; i++) {
        if (arr[i].value == key) {
            return arr[i].text;
        }
    }
    return "未能找到";
}

var AUDIT_TYPE = [{
    text : '訂單稽核',
    value : '0'
}, {
    text : '成本稽核',
    value : '1',
}];

2.在往後端傳送資料的時候,我們需要將傳過去的物件轉化成JSON字串,使用JSON.stringify(),就像這樣:

_sendData = JSON.stringify(_sendData);

3.當一個頁面中既有修改功能又有新增功能的時候,我們可以使用id來區分他們,為了以後方便管理我們可以專門在common.js中定義一個Addflag=-1來區分。這樣在進入頁面時,如果是新增就讓url帶引數id=-1,在進入頁面之後判斷id是否為-1,如果為-1為新增,若為修改,則應該傳送請求獲取當前id的所有資訊,就像下面這樣:

var gAddOpenUrl = "UI/BasicData/SysUserDetail.html?id=-1";
 var gEditOpenUrl = "UI/BasicData/SysUserDetail.html?id=";
 var gCurrid = getID();
 
 //獲取url當中的id
function getID() {
    urlinfo = window.location.href; //獲取當前頁面的url
    len = urlinfo.length; //獲取url的長度
    offset = urlinfo.indexOf("?"); //設定引數字串開始的位置
    if (offset == -1) {
        return undefined;
    }
    newsidinfo = urlinfo.substr(offset, len); //取出引數字串 這裡會獲得類似“id=1”這樣的字串
    newsids = newsidinfo.split("="); //對獲得的引數字串按照“=”進行分割
    newsid = newsids[1]; //得到引數值
    newsname = newsids[0]; //得到引數名字
    return newsid;
}

 $(document).ready(function () {
        var _sendData = {id: gCurrid};
        var _res;
        if (gCurrid !=AddFlag) {
            _res = gRequest.putRemoteData(gApiKey, "get", _sendData);
            _res.done(function (data) {
                getData = data.data;
                getFormData(data.data);
            });
        }
    });

4.在dom載入完之後執行的操作我們可以放在 ( d o c u m e n t

) . r e a d y ( f u n c t i o n ( ) ) 使 (document).ready(function(){ })當中,當然也可以直接使用 (function(){
})

5.當我們從localStorege中拿資料時:

 goodData: JSON.parse(localStorage.getItem("GoodsData")),

拿到資料之後我門如果想要進行模糊查詢,可以使用onChange函式,在這裡需要注意的是easyui的combobox本來是自帶模糊查詢的,但是它的模糊查詢只能夠查詢英文,如果要查中文的話,需要自己寫模糊查詢。就像這這樣:

 onChange: function (newValue, oldValue) {
                            if (!isEnglishAndNumber(newValue) || newValue === undefined) {
                                if (newValue !== "") {
                                    return;
                                }
                            }
                            var _searchData = searchByCodeOrCodePy(newValue.trim());
                            $(this).combobox("loadData", _searchData ? _searchData : gBasicDetailPage.goodData);
                        },
                       
 function searchByCodeOrCodePy(value) {
    var _goodsData = JSON.parse(localStorage.getItem("GoodsData"));
    var _value = value.toLowerCase();
    var _searchGoodData = _goodsData.filter(function (current) {
        return (current.code.indexOf(value) >= 0 || current.pinyin.toLowerCase().indexOf(_value) >= 0);
    });
    return _searchGoodData;
}