当前位置 : 主页 > 网络编程 > JavaScript >

一套对表格事件的注册驱动代码

来源:互联网 收集:自由互联 发布时间:2021-06-28
基础包引导 define(function (require) { var obj = {}; obj.datatablecolumnsmanager = require("./datatablecolumnsmanager"); obj.datatablemanager = require("./datatablemanager"); obj.datatablerowactionmanager = require("./datatablerowactio
基础包引导
define(function (require) {
    var obj = {};
 
    obj.datatablecolumnsmanager = require("./datatablecolumnsmanager");
    obj.datatablemanager = require("./datatablemanager");
    obj.datatablerowactionmanager = require("./datatablerowactionmanager");
    return obj;
});
datatablecolumnsmanager
//datatable的columns的管理类 使用注册的方式进行 通过table的用途id进行查找
define(function (require) {
    var datatable = {};

    var manager = {};
    manager.RegistDataTableColumns = function (id, columns) {
        if (datatable[id]) {
            throw new Error("已经存在名称为"+id+"的table")
        }
        datatable[id] = columns;
    }
    manager.GetDataTableColumns = function (id) {
        var col = datatable[id];        
        if (typeof col === "function") {
            return col();
        }
        return $.extend(true, [], col);
    }
    manager.GetRegistColumns = function (id) {
        return datatable[id];
    }
    return manager;
});
datatablerowactionmanager
//datatable的row的action管理类 通过table的用途id和action类型进行查找 使用注册的方式去实现 为columns服务
define(function (require) {
    var ActionTemplate = {};
    var manager = {};
    var actiondata = [];
    var index = 0;
    manager.RegistDataTableRowAction = function (id, func) {
        if (ActionTemplate[id]) {
            throw new Error("已经存在名称为"+id+"的table")
        }
        ActionTemplate[id] = func;
    }
    manager.GetDataTableRowAction = function (id) {
        var col = ActionTemplate[id];
        return col;
    }
    return manager;
});
实例1
define(function (require) {
    var DataTableColumnsManager, basemap, rolemanager, CompanyTypeTransform, DataTableSettingManager, DataManager;
    DataTableColumnsManager = require("./../base/datatablecolumnsmanager");
    basemap = require("./../base/basemap");
    rolemanager = require("./../base/rolemanager");
    CompanyTypeTransform = require("./../base/commonfunction").CompanyTypeTransform;
    DataTableSettingManager = require("./../base/datatablemanager");
    DataManager = require("./../base/datamanager");

    var commonfunc = require("./../base/commonfunction");
    var addbook_modal;
    DataTableColumnsManager.RegistDataTableColumns(basemap["book_manager"], [
        { id: "SN", header: "序号", width: 40, template: function (item, type, value, config, i) { return i + 1; } },
        {
            id: "ISBN",
            header: "编号",
            fillspace: 1,
            //template:"{common.treetable()} #ISBN#"
            template:function(obj, common){
                if(obj.$level==1){
                    return common.treetable(obj, common)+""+obj.ISBN+"";
                }
                else{
                    return common.treetable(obj, common)+"借阅详情";
                }

            }
        },
        {
            id: "Name",
            header: "名称",
            fillspace: 1,
           template:function (obj,common) {
                if(obj.$level>1){return "借阅人:"+obj.BorrowerName;}
                else{return obj.Name;}
            }
        },
        {
            id: "Author",
            header: "作者",
            fillspace: 0.5,
            template:function (obj,common) {
                if(obj.$level>1){ return "借阅时间:"+obj.BorrowTime;}
                else{return obj.Author;}

            }
        },
        {
            id: "Publisher",
            header: "主编单位",
            fillspace: 1,
            template:function (obj,common) {
                if (obj.$level > 1) { return "";}
                else{return obj.Publisher;}

            }
        },
        {
            id: "Type",
            header: "类型",
            fillspace: 0.5,
            template: function (item, type, value, config, i) {
                if (item.$level > 1) { return ""; }
                else { return commonfunc.BookTypeTransform(value); }
            }
        },
        {
            id: "Count",
            header: "数量",
            fillspace: 0.5,
            template: function (item, type, value, config, i) {
                if (item.$level > 1) { return item.BorrowNum; }
                else { return value; }

            }
        },
        {
            id: "Surplus",
            header: "剩余数量",
            fillspace:0.5,
        },
        {
            id: "Description",
            header: "描述",
            fillspace: 1,
        },
        {
            id: "rowdataoperate", header: "操作", tooltip: false,
            actiontype: ["borrow", "reback", "update","delete"],
            fillspace: true,
            width:500,
            template: function (item, type, value, config, i) {
                var html = "";
                if (item.$level>1)
                {
                    if(rolemanager.HasRole(actionmap.book_manager_reback.urlsubpath))
                        html += '';
                }
                else
                {
                    //通过是否有借阅记录判断可否借阅
                    if (item.Surplus > 0) {
                        var mark = true;
                        if (item.BB && item.BB.length > 0) {
                            for (var i = 0; i < item.BB.length; i++) {
                                if (item.BB[i].BorrowerId === DataManager.GetUserInfo.LcUserUUID) {
                                    mark = false;
                                    break;
                                }
                            }
                        }
                        if (mark && rolemanager.HasRole(actionmap.book_manager_borrow.urlsubpath)) {
                            html += '';
                        }
                    }
                    if(rolemanager.HasRole(actionmap.book_manager_update.urlsubpath)){
                        html += '';
                    }
                    if ((!item.BB || item.BB.length == 0) && rolemanager.HasRole(actionmap.book_manager_delete.urlsubpath)) {
                        html += '';
                    }
                }
                
                
                return html;
            }
        }
    ]
    );
    DataTableSettingManager.RegistDataTable(basemap["book_manager"], {
        view: "treetable",
        Child: "BB",
        toolbar: {
            buttons: function (parm) {
                bts = [];
                if(rolemanager.HasRole(actionmap.book_manager_add.urlsubpath)){
                    bts.push({
                        Id: "Addreceipt",
                        Title: "新增书籍",
                        Icon: "icon-iconfont-jiajia iconfont fwb f18",
                        OnClick: function () {
                            if (!addbook_modal) {
                                addbook_modal = modalmanager.NewDialog("NewBook_modal", {
                                    content: $('#modaldialog_booknew_modal')
                                });
                            }
                            parm.ActionType = "new";
                            addbook_modal.Show(parm);
                        }
                    })
                }

                return bts;
            }
        }
    })



})
实例2
define(function (require) {

    var funcobject = require("./functionmanager");
    var DataTableRowActionManager = require("./../base/datatablerowactionmanager");
    var modaldialogobject = require("./modaldialogmanager");
    var basemap = require("./../base/basemap");
    var modalmanager = require("./../base/modaldialogmanager");
    var DataManager = require("./../base/datamanager");
    var updatebook_modal;
    var borrowbook;
    var deletemodal;


    DataTableRowActionManager.RegistDataTableRowAction(basemap["book_manager_borrow"], function (obj) {
        //图书借阅
        if (!borrowbook) {
            borrowbook = modalmanager.NewDialog("BorrowBook_modal", {
                content: "#modaldialog_bookborrow_modal"
            });
        }
        obj.ActionType = "borrow";
        borrowbook.Show(obj)
        
    });
    DataTableRowActionManager.RegistDataTableRowAction(basemap["book_manager_reback"], function (obj) {
        //图书归还
        if (!borrowbook) {
            borrowbook = modalmanager.NewDialog("BorrowBook_modal", {
                content: "#modaldialog_bookborrow_modal"
            });
        }
        obj.ActionType = "reback";
        borrowbook.Show(obj)
    });
    DataTableRowActionManager.RegistDataTableRowAction(basemap["book_manager_update"], function (obj) {
        if (!updatebook_modal) {
            updatebook_modal = modalmanager.NewDialog("NewBook_modal", {
                content: $('#modaldialog_booknew_modal')
            });
        }
        obj.ActionType = "edit";
        updatebook_modal.Show(obj);
    });
    DataTableRowActionManager.RegistDataTableRowAction(basemap["book_manager_delete"], function (data) {
        //删除
        if (!deletemodal) {
            deletemodal = modalmanager.NewDialog("Delete", {
                tipinfo: function (tip) {
                    return "您确定要删除图书:" + tip.row.Name + "吗?";
                },
                clickfunc: function (deletedlg, data) {
                    DataManager.Request(actionmap["book_manager_delete"], {
                        bookid: data.row.Id
                    }, {}).success(function (option, resp) {
                        data.datatable.remove_item(data.row.id);
                        deletedlg.Hide();
                    }).fail(function (option, data) {
                        show_tip(data.message);
                        deletedlg.Hide();
                    }).always(function () {
                        deletedlg.modalDialog.EnableAction(".green");
                    });
                }
            },true);
        }
        deletemodal.Show(data);
    });
})
上一篇:ajax简单封装
下一篇:导航2层菜单折叠
网友评论