',
width: _node.editOp.width || 400,
height: _node.editOp.height || 400
},
function ($html) {
$html.find('#jfgird_select').jfGrid({
headData: _node.editOp.colData,
url: _node.editOp.url,
onRenderComplete: function (rowdatas) {
_node.editOp.rowdatas = rowdatas;
},
onSelectRow: function (rowdata) {
if (!!_node.editOp.callback) {
_node.editOp.callback(rowdata, rownum, row, _node.editOp.selectData);
}
$html.remove();
$.jfGrid.renderData($('#' + dfop.id));
}
});
if (!!_node.editOp.rowdatas) {
$html.find('#jfgird_select').jfGridSet('refreshdata', { rowdatas: _node.editOp.rowdatas });
}
else {
$html.find('#jfgird_select').jfGridSet('reload', { param: _node.editOp.param });
}
$('#jfgird_select_search').on('click', function () {
var data = [];
var keyword = $('#jfgird_select_keyword').val();
if (!!keyword) {
for (var i = 0, l = _node.editOp.rowdatas.length; i < l; i++) {
var item = _node.editOp.rowdatas[i];
for (var j = 0, jl = _node.editOp.colData.length; j < jl; j++) {
if (item[_node.editOp.colData[j].name].indexOf(keyword) != -1) {
data.push(item);
break;
}
}
}
$('#jfgird_select').jfGridSet('refreshdata', { rowdatas: data });
}
else {
$('#jfgird_select').jfGridSet('refreshdata', { rowdatas: _node.editOp.rowdatas });
}
});
});
});
$dcell.html($label);
break;
case 'checkbox':
var $input = $('');
if (value == 1 || value == '1') {
$input.find('input').trigger('click');
}
$input.find('input').on('click', function () {
if ($(this).is(':checked')) {
row[node.name] = 1;
}
else {
row[node.name] = 0;
}
});
$dcell.html($input);
break;
case 'layerselect':
var $label = $('
' + (value || '') + '
');
$label.css({ 'text-align': node.align });
$label.find('.fa-ellipsis-h').on('click', function () {
node.formatter(value, row, dfop, $dcell);
});
$dcell.html($label);
break;
}
}
else {
if (!!node.formatter) {
res = node.formatter(value, row, dfop, $dcell);
$dcell.html(res);
}
else if (node.formatterAsync) {
node.formatterAsync(function (text) {
text = text || '';
$dcell.html(text);
}, value, row, dfop, $dcell);
}
else {
res = value;
if (value == null || value == undefined || value == 'null' || value == 'undefined') {
res = '';
}
$dcell.html(res);
}
}
},
/*绑定事件*/
bindClick: function (e) {
var $this = $(this);
var dfop = $this[0].dfop;
var et = e.target || e.srcElement;
var $et = $(et);
if (dfop.isHeadWidhChange) {// 调整表头宽
$.jfGrid.moveHeadWidth(dfop, false);
dfop.isHeadWidhChange = false;
}
else if ($et.hasClass('jfgrid-head-cell')) {// 排序
$.jfGrid.sortCol($et, dfop);
}
else if (($et.hasClass('jfgrid_expend') && $et.parent().hasClass('jfgrid-data-cell')) || ($et.hasClass('jfgrid-data-cell') && $et.find('.jfgrid_expend').length > 0)) {// 展开或关闭子表单
$.jfGrid.expandSubGrid($et, dfop);
}
else if ($et.hasClass('jfgrid-data-cell-expendi')) {// 树形结构展开和关闭
$.jfGrid.expandTree($et, dfop);
}
else if ($et.hasClass('jfgrid-data-cell') || $et.parents('.jfgrid-data-cell').length > 0) {// 选中行
$.jfGrid.selectRow($this, $et, dfop);
e.stopPropagation();
//return false;
}
else if ($et.attr('id') == ('jfgrid_all_cb_' + dfop.id)) {// 全部勾选
$.jfGrid.selectAllRow($this, $et, dfop);
}
},
bindmdown: function (e) {
var $this = $(this);
var dfop = $this[0].dfop;
var et = e.target || e.srcElement;
var $et = $(et);
if ($et.hasClass('jfgrid-heed-move')) {
var path = $et.parent().attr('path');
var $moveline = $('#jfgrid_move_line_' + dfop.id);
dfop._currentMoveCell = $.jfGrid.getHeadCell(path, dfop.headData);
dfop._currentMoveCell.pageX = e.pageX;
dfop._currentMoveLeft = 0;
if (dfop._currentMoveCell.frozen) {
dfop._currentMoveLeft = dfop._borderLeftPadding + dfop._currentMoveCell.left + dfop._currentMoveCell.width;
}
else {
var _leftWidth = parseInt($('#jfgrid_head_' + dfop.id).css('left').replace(/px/g, ""));
dfop._currentMoveLeft = _leftWidth + dfop._currentMoveCell.left + dfop._currentMoveCell.width;
}
dfop._currentMoveWidth = dfop._currentMoveCell.width;
$moveline.css('left', dfop._currentMoveLeft + 'px');
$moveline.show();
dfop.isHeadWidhChange = true;
}
},
bindmmove: function (e) {
var $this = $(this);
var dfop = $this[0].dfop;
if (dfop.isHeadWidhChange) {
$.jfGrid.moveHeadWidth(dfop, true, e.pageX);
}
dfop = null;
},
bindmover: function (e) {
var $this = $(this);
$this.find('.jfgrid-data-cell-over').removeClass('jfgrid-data-cell-over');
var et = e.target || e.srcElement;
var $et = $(et);
if ($et.hasClass('jfgrid-data-cell') || $et.parents('.jfgrid-data-cell').length > 0) {
var rowid = $et.attr('rownum');
if (!rowid) {
rowid = $et.parents('.jfgrid-data-cell').attr('rownum');
}
$this.find('[rownum="' + rowid + '"]').addClass('jfgrid-data-cell-over');
}
},
/*处理方法*/
moveHeadWidth: function (dfop, ismove, pageX) {// 处理表头宽度调整方法
var $moveline = $('#jfgrid_move_line_' + dfop.id);
if (ismove) {
var width = dfop._currentMoveCell.width + (pageX - dfop._currentMoveCell.pageX);
width = (width < 40 ? 40 : width);
var left = dfop._currentMoveLeft + (width - dfop._currentMoveCell.width);
dfop._currentMoveWidth = width;
$moveline.css('left', left + 'px');
}
else {
if (dfop._currentMoveWidth != dfop._currentMoveCell.width) {
var _width = dfop._currentMoveWidth - dfop._currentMoveCell.width;
dfop._currentMoveCell.width = dfop._currentMoveWidth;
dfop._currentMoveCell.obj.css('width', dfop._currentMoveCell.width + 'px');
var p = dfop._currentMoveCell.parent;
var c = dfop._currentMoveCell;
$.jfGrid.refreshHead(c.frozen, dfop, p, c, _width);
}
$moveline.hide();
}
},
getHeadCell: function (path, data) {
var paths = path.split('.');
var r = data;
for (var i = 0, l = paths.length; i < l; i++) {
if (i == l - 1) {
return r[paths[i]];
}
r = r[paths[i]].children;
}
},
refreshHead: function (frozen, dfop, p, c, width) {
// 调整自己孩子的位置
function setChildLeft(chs) {
for (var i = 0, l = chs.length; i < l; i++) {
var item = chs[i];
item.left = item.left + width;
item.obj.css('left', item.left + 'px');
if (!!item.children) {
setChildLeft(item.children);
}
}
}
// 调整单元格所在集合的位置和大小
while (p) {
// 移动自己的兄弟
for (var i = c.path + 1, l = p.children.length; i < l; i++) {
var item = p.children[i];
item.left = item.left + width;
item.obj.css('left', item.left + 'px');
if (!!item.children) {
setChildLeft(item.children);
}
}
p.width = p.width + width;
p.obj.css('width', p.width + 'px');
c = p;
p = p.parent;
}
// 刷新单元格右侧的位置
for (var i = c.path + 1, l = dfop.headData.length; i < l; i++) {
var item = dfop.headData[i];
if (item.frozen == frozen) {
item.left = item.left + width;
item.obj.css('left', item.left + 'px');
if (!!item.children) {
setChildLeft(item.children);
}
}
}
// 刷新单元承载容器
var $jfGrid = $('#' + dfop.id);
var $head = $jfGrid.find('#jfgrid_head_' + dfop.id);
if (!!frozen) {
var $border = $jfGrid.find('#jfgrid_border_' + dfop.id);
var $left = $jfGrid.find('#jfgrid_left_' + dfop.id);
dfop._leftWidth = dfop._leftWidth + width;
$jfGrid.css('padding-left', dfop._leftWidth + 'px');
$border.css('width', dfop._leftWidth + 'px');
$left.css('width', dfop._leftWidth + 'px');
$head.css('left', dfop._leftWidth + 'px');
}
else {
dfop._headWidth = dfop._headWidth + width;
$head.css('width', dfop._headWidth + 'px');
var $scrollareaContent = $jfGrid.find('#jfgrid_scrollarea_content_' + dfop.id);
$scrollareaContent.css('width', dfop._headWidth - 10 + 'px');
if (width < 0) {
$jfGrid.css('width', '10000px');
$('#jfgrid_scrollarea_' + dfop.id).mCustomScrollbar("update");
$jfGrid.css('width', '100%');
}
$scrollareaContent.css('width', dfop._headWidth + 'px');
$('#jfgrid_scrollarea_' + dfop.id).mCustomScrollbar("update");
}
//移动表格对应数据的单元格列宽度
$jfGrid.find('.jfgrid-data-cell[colname="' + dfop._currentMoveCell.name + '"]').css('width', dfop._currentMoveCell.width + 'px');
},
selectRow: function ($this, $et, dfop) {
var $selfcell = $et;
var rowid = $et.attr('rownum');
if (!rowid) {
$selfcell = $et.parents('.jfgrid-data-cell');
rowid = $selfcell.attr('rownum');
}
var classid = '.jfgrid_selected_' + dfop.id;
if (dfop.isMultiselect) {
if ($et.attr('role') == 'checkbox') {
var datapath = $this.find('[rownum="' + rowid + '"][datapath]').attr('datapath');
var rowItem = $.jfGrid.getRowDataByPath(dfop, datapath);
console.log(rowItem[dfop.multiselectfield]);
if ($selfcell.hasClass('jfgrid-head-cell-selected')) {
$this.find(classid + '[rownum="' + rowid + '"]').removeClass('jfgrid-head-cell-selected').removeClass('jfgrid_selected_' + dfop.id);
if ($('#jfgrid_all_cb_' + dfop.id).is(':checked')) {
dfop._cancelallcb = true;
$('#jfgrid_all_cb_' + dfop.id).trigger('click');
}
dfop.multiselectfield && (rowItem[dfop.multiselectfield] = 0);
dfop.checkRow && dfop.checkRow(rowItem, false);
}
else {
$this.find('[rownum="' + rowid + '"]').addClass('jfgrid-head-cell-selected').addClass('jfgrid_selected_' + dfop.id);
dfop.multiselectfield && (rowItem[dfop.multiselectfield] = 1);
dfop.checkRow && dfop.checkRow(rowItem, true);
}
}
//else {
// $this.find('.jfgrid-tool-cell[rownum="' + rowid + '"] input[role="checkbox"]').trigger('click');
//}
}
else {
$this.find(classid).removeClass('jfgrid-head-cell-selected').removeClass('jfgrid_selected_' + dfop.id);
$this.find('[rownum="' + rowid + '"]').addClass('jfgrid-head-cell-selected').addClass('jfgrid_selected_' + dfop.id);
}
if (dfop.onSelectRow) {
dfop.onSelectRow($.jfGrid.getSelectedRow($this));
}
},
selectAllRow: function ($this, $et, dfop) {
if ($et.is(':checked')) {
$this.find('.jfgrid-tool-cell [role="checkbox"]').not(':checked').trigger('click');
}
else {
if (!dfop._cancelallcb) {
$this.find('.jfgrid-tool-cell [role="checkbox"]:checked').trigger('click');
}
dfop._cancelallcb = false;
}
},
sortCol: function ($et, dfop) {
var path = $et.attr('path');
var cell = $.jfGrid.getHeadCell(path, dfop.headData);
if (cell.type == 'datacol' && cell.sort && dfop.isPage) {
var isup = true;
if (!!dfop.sortcell) {
dfop.sortcell.obj.find('.jfgrid-heed-sort').hide();
if (cell == dfop.sortcell) {
var $i = dfop.sortcell.obj.find('.jfgrid-heed-sort .active');
$i.removeClass('active');
if ($i.hasClass('fa-caret-up')) {
dfop.sortcell.obj.find('.jfgrid-heed-sort .fa-caret-down').addClass('active');
isup = false;
}
else {
dfop.sortcell.obj.find('.jfgrid-heed-sort .fa-caret-up').addClass('active');
isup = true;
}
dfop.sortcell.obj.find('.jfgrid-heed-sort').show();
}
else {
cell.obj.find('.jfgrid-heed-sort .active').removeClass('active');
cell.obj.find('.jfgrid-heed-sort .fa-caret-up').addClass('active');
cell.obj.find('.jfgrid-heed-sort').show();
isup = true;
}
}
else {
cell.obj.find('.jfgrid-heed-sort .active').removeClass('active');
cell.obj.find('.jfgrid-heed-sort .fa-caret-up').addClass('active');
cell.obj.find('.jfgrid-heed-sort').show();
isup = true;
}
dfop.sortcell = cell;
// 排序调用后台数据
var $self = $('#' + dfop.id);
dfop.pageparam.sidx = cell.name;
dfop.pageparam.sord = isup ? 'ASC' : 'DESC';
$.jfGrid.reload($self);
}
},
expandSubGrid: function ($et, dfop) {
var $this = $et;
if (!$et.hasClass('jfgrid_expend')) {
$this = $et.find('.jfgrid_expend');
}
/*获取当前的行号*/
var rowId = $et.attr('rownum');
var $scrollareaContent = $('#jfgrid_scrollarea_content_' + dfop.id);
var $left = $('#jfgrid_left_' + dfop.id);
var $lastcolr = $scrollareaContent.find('.jfgrid-data-cell-last[rownum="' + rowId + '"]');
var $lastcoll = $left.find('.jfgrid-data-cell-last[rownum="' + rowId + '"]');
if ($lastcoll.next().find('.jfgrid_chlidgird').length > 0) {
$lastcoll.next().remove();
$lastcolr.next().remove();
$this.removeClass('fa-minus');
$this.addClass('fa-plus');
}
else {
$this.removeClass('fa-plus');
$this.addClass('fa-minus');
var subid = 'jfgrid_chlidgird_content_' + dfop.id + '_' + rowId;
var _html = '
';
_html += '
';
_html += ''
_html += '
';
$lastcoll.after(_html);
$lastcolr.after('');
if (!!dfop.subGridRowExpanded) {
var datapath = $('#' + dfop.id).find('.jfgrid-hide-cell[rownum="' + rowId + '"]').attr('datapath');
var rowdata = $.jfGrid.getRowDataByPath(dfop, datapath);
dfop.subGridRowExpanded(subid, rowdata);
}
}
},
expandTree: function ($et, dfop) {
var $jfgrid = $('#' + dfop.id);
var rownum = $et.parent().parent().attr('rownum');
var datapath = $jfgrid.find('.jfgrid-hide-cell[rownum="' + rownum + '"]').attr('datapath');
var rowdata = $.jfGrid.getRowDataByPath(dfop, datapath);
if ($et.hasClass('fa-caret-down')) {// 关闭
rowdata._isclosed = true;
hideRow($jfgrid, rowdata.jfGrid_ChildRows);
$et.removeClass('fa-caret-down');
$et.addClass('fa-caret-right');
}
else {// 展开
rowdata._isclosed = false;
showRow($jfgrid, rowdata.jfGrid_ChildRows);
$et.removeClass('fa-caret-right');
$et.addClass('fa-caret-down');
}
function showRow($jfgrid, data) {
var dfop = $jfgrid[0].dfop;
for (var i = 0, l = data.length; i < l; i++) {
var rownumindex = 'rownum_' + dfop.id + '_' + data[i].jfgrid_rownum;
$jfgrid.find('[rownum="' + rownumindex + '"]').not('.jfgrid-hide-cell').show();
if (data[i].jfGrid_ChildRows.length > 0 && !data[i]._isclosed) {
var _data = data[i].jfGrid_ChildRows;
showRow($jfgrid, _data);
}
}
}
function hideRow($jfgrid, data) {
for (var i = 0, l = data.length; i < l; i++) {
var rownumindex = 'rownum_' + dfop.id + '_' + data[i].jfgrid_rownum;
$jfgrid.find('[rownum="' + rownumindex + '"]').hide();
if (data[i].jfGrid_ChildRows.length > 0 && !data[i]._isclosed) {
var _data = data[i].jfGrid_ChildRows;
hideRow($jfgrid, _data);
}
}
}
},
/*数据转换*/
listTotree: function (data, parentId, mainId, dfop) {
// 只适合小数据计算
var resdata = [];
var mapdata = {};
var mIds = {};
var pIds = {};
dfop._maprowdatas = {};
data = data || [];
for (var i = 0, l = data.length; i < l; i++) {
var item = data[i];
mIds[item[mainId]] = 1;
mapdata[item[parentId]] = mapdata[item[parentId]] || [];
mapdata[item[parentId]].push(item);
if (mIds[item[parentId]] == 1) {
delete pIds[item[parentId]];
}
else {
pIds[item[parentId]] = 1;
}
if (pIds[item[mainId]] == 1) {
delete pIds[item[mainId]];
}
}
for (var id in pIds) {
_fn(resdata, id);
}
function _fn(_data, vparentId) {
var pdata = mapdata[vparentId] || [];
for (var j = 0, l = pdata.length; j < l; j++) {
var _item = pdata[j];
_item.jfGrid_ChildRows = [];
_fn(_item.jfGrid_ChildRows, _item[mainId]);
_data.push(_item);
dfop._maprowdatas[_item[mainId]] = _item;
}
}
return resdata;
},
treeTolist: function (data) {
var res = [];
_fn(data);
function _fn(_data) {
for (var i = 0, l = _data.length; i < l; i++) {
var point = {};
for (var _id in _data[i]) {
if (_id != 'jfGrid_ChildRows') {
point[_id] = _data[i][_id];
}
}
res.push(point);
if (_data[i].jfGrid_ChildRows.length > 0) {
_fn(_data[i].jfGrid_ChildRows);
}
}
}
return res;
},
/*获取数据*/
getSelectedRow: function ($self) {
var dfop = $self[0].dfop;
var res;
var resArray = [];
$self.find('.jfgrid_selected_' + dfop.id + '[datapath]').each(function () {
var datapath = $(this).attr('datapath');
if (!!datapath) {
res = $.jfGrid.getRowDataByPath(dfop, datapath);
resArray.push(res);
}
});
if (resArray.length > 1) {
return resArray;
}
else {
return res;
}
},
getRowDataByPath: function (dfop, datapath) {
var datapaths = datapath.split('.');
var p = dfop.rowdatas;
var rowdataone = null;
for (var i = 0, l = datapaths.length; i < l; i++) {
rowdataone = p[datapaths[i]];
if (!rowdataone) {
return null;
}
p = rowdataone.jfGrid_ChildRows;
}
return rowdataone;
},
/*设置数据*/
addTreeRow: function ($self, dfop) {
var row = dfop.row;
row.jfGrid_ChildRows = [];
dfop.rowdatas = dfop.rowdatas || [];
dfop._maprowdatas = dfop._maprowdatas || {};
if (dfop._maprowdatas[row[dfop.parentId]]) {
dfop._maprowdatas[row[dfop.parentId]].jfGrid_ChildRows.push(row);
}
else {
dfop.rowdatas.push(row);
}
dfop._maprowdatas[row[dfop.mainId]] = row;
$.jfGrid.renderTreeRowData($self, dfop.rowdatas);
},
addRow: function ($self, dfop) {
var dfop = $self[0].dfop;
var row = dfop.row;
dfop.rowdatas.push(row);
$.jfGrid.renderRowData($self, dfop.rowdatas);
dfop = null;
},
// 更新行数据
updateRow: function ($self, dfop) {
var data = $.jfGrid.getSelectedRow($self);
if (!!data) {
$.extend(data, dfop.row);
if (!dfop.isPage && dfop.isTree) {
$.jfGrid.renderTreeRowData($self, dfop.rowdatas);
}
else {
$.jfGrid.renderRowData($self, dfop.rowdatas);
}
}
},
// 删除行数据
removeRow: function ($self, dfop) {
var datapath = $($self.find('.jfgrid-head-cell-selected[datapath]')[0]).attr('datapath');
if (!!datapath) {
var datapaths = datapath.split('.');
var p = dfop.rowdatas;
for (var i = 0, l = datapaths.length; i < l; i++) {
if (i == (l - 1)) {
p.splice(datapaths[i], 1);
break;
}
else {
p = p[datapaths[i]].jfGrid_ChildRows;
}
}
if (!dfop.isPage && dfop.isTree) {
$.jfGrid.renderTreeRowData($self, dfop.rowdatas);
}
else {
$.jfGrid.renderRowData($self, dfop.rowdatas);
}
}
},
// 弹层
layer: function (op, callback) {
var $layerwarp = $('
' + op.html + '
');
$('body').append($layerwarp);
$layerwarp.find('#jfgridlayerremove').on('click', function () {
$layerwarp.remove();
});
if (!!callback) {
callback($layerwarp);
}
},
loading: function ($self, isShow) {
var dfop = $self[0].dfop;
var $loading = $('#jfgrid_loading_' + dfop.id);
if (isShow) {
$loading.show();
}
else {
$loading.hide();
}
dfop = null;
},
ajaxLoad: function ($self, url, param, callback) {
$.jfGrid.loading($self, true);
// 从服务端加载数据
$.ajax({
url: url,
data: param,
type: "GET",
dataType: "json",
async: true,
cache: false,
success: function (data) {
callback(data);
$.jfGrid.loading($self, false);
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
callback({ code: 500 });
},
beforeSend: function () {
},
complete: function () {
$.jfGrid.loading($self, false);
}
});
},
// 打印处理
print: function ($self) {
var dfop = $self[0].dfop;
console.log(dfop);
var $table = $('
');
// 获取表头数据
var thlist = [];
function cTh(_data, _index) {
var res = _data.length;
$.each(_data, function (id, item) {
thlist[_index] = thlist[_index] || $('
');
var $th = $('
' + item.label + '
');
if (!!item.children && item.children.length > 0) {
var num = cTh(item.children, _index + 1);
res = res + num - 1;
$th.attr('colspan', num);
}
var _row = parseInt(item.obj.css('height')) / 28;
$th.attr('rowspan', _row);
$th.css('text-align', item.align);
thlist[_index].append($th);
});
return res;
}
cTh(dfop.headData, 0);
$.each(thlist, function (id, item) {
$table.append(item);
});
$.each(dfop.rowdatas, function (index, item) {
var $tr = $('
');
$self.find('[rownum="rownum_' + dfop.id + '_' + index + '"]').each(function () {
var $cell = $(this);
var colname = $cell.attr('colname');
if (!!colname && colname != 'jfgrid_rownum' && colname != 'jfgrid_multiselect' && colname != 'jfgrid_subGrid') {
var $td = $('
' + $cell.html() + '
');
$td.css('text-align', $cell.css('text-align'));
$tr.append($td);
}
});
$table.append($tr);
});
dfop = null;
return $table;
}
});
// 构造方法
$.fn.jfGrid = function (op) {
var $self = $(this);
if (!$self[0] || $self[0].dfop) {
return $self;
}
var id = $self.attr('id');
if (id == null || id == undefined || id == '') {
id = "jfgrid" + new Date().getTime();
$self.attr('id', id);
}
var dfop = {
url: '', // 数据服务地址
param: {}, // 请求参数
rowdatas: [], // 列表数据
datatype: 'array', // 数据类型
headData: [], // 列数据
isShowNum: true, // 是否显示序号
isMultiselect: false, // 是否允许多选
multiselectfield: '', // 多选绑定字段
isSubGrid: false, // 是否有子表
subGridRowExpanded: false, // 子表展开后调用函数
subGridHeight: 300,
onSelectRow: false, // 选中一行后回调函数
onRenderComplete: false, // 表格加载完后调用
isPage: false, // 是否分页默认是不分页(目前只支持服务端分页)
pageparam: {
rows: 50, // 每页行数
page: 1, // 当前页
sidx: '', // 排序列
sord: '', // 排序类型
records: 0, // 总记录数
total: 0 // 总页数
},
sidx: '',
sord: 'ASC',
isTree: false, // 是否树形显示(没有分页的情况下才支持) (只有在数据不多情况下才建议使用)
mainId: 'id', // 关联的主键
parentId: 'parentId', // 树形关联字段
reloadSelected: false, // 刷新后是否还选择之前选中的,只支持单选
isAutoHeight: false, // 自动适应表格高度
footerrow: false, // 底部合计条
isEidt: false,
minheight: 0,
height: 0,
isStatistics: false // 统计条
};
if (!!op) {
$.extend(dfop, op);
}
dfop.id = id;
$self[0].dfop = dfop;
dfop.pageparam.sidx = dfop.sidx;
dfop.pageparam.sord = dfop.sord;
$.jfGrid.render($self);
dfop = null;
return $self;
};
// 设置方法
$.fn.jfGridSet = function (name, op) {
var $self = $(this);
var id = $self.attr('id');
if (id == null || id == undefined || id == '') {
return null;
}
var dfop = $self[0].dfop;
if (!dfop) {
return null;
}
if (!!op) {
$.extend(dfop, op);
}
switch (name) {
case 'reload':
$.jfGrid.reload($self);
break;
case 'refreshdata':
$.jfGrid.renderData($self);
break;
case 'addRow':
if (!dfop.isPage && dfop.isTree) {
$.jfGrid.addTreeRow($self, dfop);
}
else {
$.jfGrid.addRow($self, dfop);
}
break;
case 'updateRow':
$.jfGrid.updateRow($self, dfop);
break;
case 'removeRow':
$.jfGrid.removeRow($self, dfop);
break;
}
dfop = null;
};
function getHeadData(data, res) {
$.each(data, function (_index, _item) {
var point = {
label: _item.label,
name: _item.name
};
res.push(point);
if (_item.children) {
point.children = [];
getHeadData(_item.children, point.children);
}
});
}
$.fn.jfGridGet = function (name) {
var $self = $(this);
var id = $self.attr('id')
if (id == null || id == undefined || id == '') {
return null;
}
var dfop = $self[0].dfop;
if (!dfop) {
return null;
}
switch (name) {
case 'rowdata':
return $.jfGrid.getSelectedRow($self);
break;
case 'rowdatas':
return dfop.rowdatas;
break;
case 'rowdatasByArray':
return $.jfGrid.treeTolist(dfop.rowdatas);
break;
case 'settingInfo':
return dfop;
break;
case 'headData':
var headData = dfop.headData;
var res = [];
getHeadData(headData, res);
return res;
break;
case 'showData':
var resData = [];
$.each(dfop.rowdatas, function (index, item) {
resData[index] = {};
$self.find('[rownum="rownum_' + id + '_' + index + '"]').each(function () {
var $cell = $(this);
var colname = $cell.attr('colname');
if (!!colname && colname != 'jfgrid_rownum') {
resData[index][colname] = $cell.text();
}
});
});
return resData;
break;
}
dfop = null;
};
$.fn.jfGridValue = function (rowId) {
var $self = $(this);
var id = $self.attr('id')
if (id == null || id == undefined || id == '') {
return null;
}
var dfop = $self[0].dfop;
if (!dfop) {
return null;
}
var _rowdata = $.jfGrid.getSelectedRow($self);
if (!!_rowdata) {
var res = "";
if (_rowdata.length > 0) {
$.each(_rowdata, function (id, item) {
if (res != "") {
res += ',';
}
res += item[rowId] || '';
});
return res;
}
else {
return _rowdata[rowId] || '';
}
}
else {
return '';
}
};
// 打印处理
$.fn.jfGridPrint = function () {
var $self = $(this);
return $.jfGrid.print($self);
}
})(window.jQuery)