1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- $.define(["jQuery", "util", "form", "code", "pager"], "pagedatagrid", function($, util, form, code, pager) {
- var qf = ".dt-form",
- qt = ".dt-tpl",
- qp = ".dt-pager",
- derr = {},
- dajaxCfg = {},
- configPageIndex = function(fn, data) {
- if(fn && data && data.data && data.data.length) {
- var b = (data.pageNo - 1) * data.pageSize;
- data.data.forEach(function(obj) {
- ++b;
- obj[fn] = b;
- });
- }
- },
- build = function($e, options) {
- if($e.length && $e.length === 1) {
- var config = { e: derr, ajax: dajaxCfg };
- var ele = config.ele = $($e[0]);
- config.f = form.build(ele.find(qf));
- config.c = code.parseCode(ele.find(qt)[0]);
- config.p = pager(ele.find(qp));
- config.uri = ele.attr("loadUri");
- config.pnn = ele.attr("pagerPrefix") ? "_pageNo" : "pageNo";
- config.psn = ele.attr("pagerPrefix") ? "_pageSize" : "pageSize";
- config.pageSize = parseInt(ele.attr("pageSize") || "1");
- config.pageNo = parseInt(ele.attr("pageNo") || "10");
- config.pageIndex = ele.attr("pageIndex");
- if(options) {
- $.extend(config, options);
- };
- var ret = {
- code: config.c,
- form: config.f,
- queryParam:function(){
- return config.cache;
- },
- load: function() {
- if(config.f.validate()) {
- config.cache = config.f.val();
- config.cache[config.pnn] = config.pageNo;
- config.cache[config.psn] = config.pageSize;
- this.reload();
- }
- },
- reload: function() {
- util.get(config.uri, config.cache, function(data) {
- configPageIndex(config.pageIndex, data);
- config.c.val(data.data);
- config.p.paint(data);
- }, config.e, config.ajax);
- },
- error: function(eh) {
- config.e = eh;
- },
- beforeFill: function(h) {
- config.c.before(h);
- },
- ajaxConfig: function(cfg) {
- config.ajax = cfg;
- }
- };
- config.p.onGo(function(no) {
- config.cache[config.pnn] = no;
- ret.reload();
- });
- return ret;
- };
- };
- $.fn.pdg = function(option) {
- if(this.length && this.length === 1) {
- return build(this, option);
- }
- };
- return { build: build };
- });
|