//数据初始定义
|
$.jgrid.defaults.width = 780;
|
$.jgrid.defaults.styleUI = 'Bootstrap';
|
var dataCol = [];//数据列 标准jqgrid colModel 额外附加属性 sumtype: "sum", sumtxt:"<b style='color:Red' >类型:{0}</b>"
|
var searchCol = [];//查询列
|
//参数配置 multiselect 是否出现多选 selectcol 多选获取的值 默认id,
|
//获取方式:GetGridSelect() 值结果 1,2,3 注意不管是否中文 都无引号 例如 :春,夏,秋,东
|
var _booltreeGrid = true;
|
var _rownumbers = true;
|
var _loadonce = false;
|
var _selectleaf = false;
|
var _isgetchild = false;
|
var gridConfig = {
|
multiselect: true, lable: 'Name2', code: 'ID1', selectleaf: false
|
, treeGrid: {
|
_treeGrid: false,
|
_expandColumn: "Comments",
|
_valchild: false,//包含子树值
|
_treeReader: {
|
level_field: "Level",
|
parent_id_field: "SuperiorsId", // then why does your table use "parent_id"?
|
leaf_field: "IsLeaf",
|
expanded_field: "Expanded"
|
}
|
}
|
};
|
|
//txt date datetime datearea chechbox ,combox 参考
|
//searchCol = [
|
// { label: '商品编号', name: 'Productcode', labtype: 'txt', ismust: true },
|
// { label: '商品名称', name: 'Productname', labtype: 'txt' },
|
// { label: '创建日期', name: 'Adddate', labtype: 'date' },
|
// { label: '类型选择', name: 'Selecttype', labtype: 'combox', data: [{ code: 5, label: '春天' }, { code: 6, label: '夏天' }, { code: 7, label: '秋天' }] },
|
// { label: '会计周期', name: 'Firadate', labtype: 'datearea' },
|
// { label: '是否打折', name: 'Ispdata', labtype: 'chechbox' }
|
//];
|
|
//formatter: function (cellvalue, options, rowObject) {
|
// if (cellvalue == '0') return "<img onclick='imgClick(\"" + options.rowId +"\",0)' src='../../Content/Images/Icon16/accept.png'/>";
|
// if (cellvalue == '1') return "<img onclick='imgClick(\"" + options.rowId + "\",0)' src='../../Content/Images/Icon16/cross_shield.png'/>";
|
//},
|
|
|
|
|
|
var dataUrl = "";//地址
|
var lastSearch = [];
|
var SelectedVal = [];
|
var isfirst = true;
|
function doResize() {
|
//var w = $(document.body).width();
|
var h = document.body.offsetHeight;
|
var leftw = 0;
|
if (gridConfig.multiselect) {
|
leftw = $("#leftzone").width();
|
}
|
else {
|
$("#leftzone").hide();
|
|
}
|
|
var searhh = 0;
|
if (_booltreeGrid) {
|
// searhh = 45;
|
}
|
|
|
//console.log("宽度:" + w + " 高度:" + h + "|" + $("#topzone").width());
|
$("#jqGrid").jqGrid('setGridWidth', $("#topzone").width() + 32 - leftw);
|
$("#jqGrid").jqGrid('setGridHeight', h - 180 - searhh);
|
$("#leftzone").height(h - 100);
|
$("#selectzone").height(h - 170);
|
}
|
|
function LoadGrid(jdata) {
|
var postData = $('#jqGrid').jqGrid("getGridParam", "postData");
|
$.each(lastSearch, function (k, v) {
|
delete postData[k];
|
});
|
lastSearch = jdata;
|
$.extend(jdata, { totalrows: 0 });
|
// alert(JSON.stringify(jdata));
|
// $('#jqGrid').jqGrid('clearGridData');
|
$("#jqGrid").jqGrid('setGridParam', {
|
postData: jdata, page: 1
|
}); //重新载入
|
|
|
$("#jqGrid").trigger("reloadGrid");
|
// $("#jqGrid").trigger("reloadGrid");
|
toSetTooBarVal();
|
}
|
|
$(document).ready(function () {
|
|
|
if (searchCol.length == 0) {
|
$("#btnview").hide();
|
}
|
//页面查询按钮及查询条件加载
|
|
$(window).resize(function () {
|
doResize();
|
});
|
|
|
|
|
|
|
|
if (gridConfig != undefined && gridConfig.treeGrid != undefined && gridConfig.treeGrid._treeGrid) {
|
_booltreeGrid = true;
|
_rownumbers = false;
|
_loadonce = true;
|
|
if (gridConfig.selectleaf != undefined && gridConfig.selectleaf == true) {
|
_selectleaf = true;
|
}
|
if (gridConfig.treeGrid._valchild != undefined && gridConfig.treeGrid._valchild == true) {
|
|
_isgetchild = true;
|
}
|
|
|
}
|
else {
|
_booltreeGrid = false;
|
|
gridConfig.treeGrid = {
|
_treeGrid: false,
|
_expandColumn: "Comments",
|
_treeReader: {
|
level_field: "Level",
|
parent_id_field: "SuperiorsId", // then why does your table use "parent_id"?
|
leaf_field: "IsLeaf",
|
expanded_field: "Expanded"
|
}
|
}
|
|
}
|
|
// alert(vals);
|
if (gridConfig.multiselect == true) {
|
var vals = decodeURI($.query.get("val"))
|
if (vals != "" && vals != undefined && vals != "undefined" && vals != true && vals != "true") {
|
SelectedVal = jQuery.parseJSON(vals);
|
// alert(SelectedVal.length);
|
loadSelectHtml();
|
}
|
}
|
|
|
|
|
|
if (_booltreeGrid) {
|
|
$("#searchbtn").hide();
|
|
|
$("#topzone").css("border", "solid 0px #B0C4DE");
|
$("#topzone").css("margin", "0px 0px");
|
$("#topzone").css("height", "0px");
|
$("#topzone").css("padding-top", "0px");
|
$("#topzone").css("padding-bottom", "0px");
|
}
|
|
|
|
$("#jqGrid").jqGrid({
|
treeGrid: _booltreeGrid,
|
treeGridModel: 'adjacency',
|
ExpandColumn: gridConfig.treeGrid._expandColumn,
|
treeReader: gridConfig.treeGrid._treeReader,
|
tree_root_level: 0,
|
url: dataUrl,
|
mtype: "POST",
|
datatype: "json",
|
colModel: dataCol,
|
viewrecords: true, // show the current page, data rang and total records on the toolbar
|
width: 780,
|
height: 200,
|
loadonce: _loadonce,
|
pager: "#jqGridPager",
|
footerrow: true,
|
rownumbers: _rownumbers,
|
|
cmTemplate: { sortable: false },
|
sortname: "ID",
|
rowNum: 30,
|
rowList: [30, 50, 100],
|
jsonReader: {
|
root: "DataList", page: "CurrPage", total: "PageTotal", // 很重要 定义了 后台分页参数的名字。
|
records: "Records", repeatitems: false
|
},
|
gridComplete: completeMethod,
|
multiselect: gridConfig.multiselect
|
// , beforeSelectRow: beforeSelectRow//js方法
|
, onSelectAll: ToSelectAll
|
, onSelectRow: ToonSelectRow
|
, ondblClickRow: TodblClickRow
|
, beforeRequest: BeforeRequest
|
});
|
jQuery("#jqGrid").jqGrid('navGrid', "#jqGridPager", { edit: false, add: false, del: false, search: false, refresh: true });
|
if (_booltreeGrid) {
|
jQuery("#jqGrid").jqGrid('filterToolbar', { searchOperators: true, defaultSearch: "cn", searchOnEnter: false });
|
}
|
|
doResize();
|
|
if (gridConfig.multiselect) {
|
$("#leftzone").show();
|
}
|
else {
|
$("#leftzone").hide();
|
}
|
$("#searchbtn").click(function () {
|
|
_pageSeach();
|
});
|
|
|
$("#searchmorendatabtn").click(function () {
|
|
var cars = ["查询", "取消"];
|
var url = "/Content/SearchComm.html?data=" + encodeURI(JSON.stringify(searchCol)) + "&lastsearch=" + encodeURI(JSON.stringify(lastSearch));
|
dlog.open("查询条件", cars, "sm", url,
|
function (res) {
|
LoadGrid(res);
|
},
|
function () {
|
|
|
},
|
function () {
|
|
|
return false;
|
},
|
function () {
|
|
return false;
|
}
|
);
|
|
});
|
});
|
|
function BeforeRequest()
|
{
|
var ischeck = true;
|
if (typeof (_beforeSearch) === "function") {
|
ischeck = _beforeSearch();
|
if (!ischeck) {
|
return false;
|
|
}
|
}
|
|
if (!isfirst) {
|
return;
|
}
|
var jsons = GetSearchEnd();
|
if (jsons == undefined || jsons == false || jsons.length==0) {
|
|
return;
|
}
|
|
$.extend(jsons, { totalrows: 0 });
|
|
$("#jqGrid").jqGrid('setGridParam', {
|
postData: jsons, page: 1
|
}); //重新载入
|
|
|
}
|
function _pageSeach() {
|
|
var jsons = GetSearchEnd();
|
if (jsons == undefined || jsons == false) {
|
msg.info("请录入查询条件");
|
return false;
|
}
|
LoadGrid(jsons);
|
}
|
function GetGridSelect() {
|
|
return jQuery('#jqGrid').jqGrid('getGridParam', 'selarrrow');
|
}
|
function ToSelectAll(aRowids, status) {
|
|
$.each(aRowids, function (index, item) {
|
|
ToonSelectRow(item, status);
|
|
});
|
}
|
|
function loadEndSelectRow() {
|
//$("jqgridtableid").jqGrid('setSelection',id1);
|
//$("jqgridtableid").jqGrid('setSelection',id2);
|
}
|
|
function TodblClickRow(rowid, iRow, iCol, e) {
|
$('.layui-layer-btn0', window.parent.document).trigger("click");
|
|
|
}
|
function ToonSelectRow(rowid, status) {
|
|
|
var json = $("#jqGrid").getRowData(rowid); // { Code:'124',Name:"$"};
|
var codeval = "";
|
lableval = "";
|
$.each(json, function (key, value) {
|
|
if (key == gridConfig.code) {
|
codeval = value;
|
}
|
if (key == gridConfig.lable) {
|
lableval = value;
|
}
|
});
|
if (codeval == "") { return; }
|
|
|
|
var jdata = { code: codeval, lable: lableval };
|
if (status) {
|
//存在 返回
|
if (GetRowIndex(codeval) > -1) {
|
return;
|
}
|
|
SelectedVal.push(jdata);
|
}
|
else {
|
toRemoveItem(codeval);
|
}
|
loadSelectHtml();
|
}
|
function GetRowIndex(codeval) {
|
var _index = -1;
|
$.each(SelectedVal, function (index, item) {
|
if (item.code == codeval) {
|
_index = index;
|
|
}
|
});
|
return _index;
|
}
|
function loadSelectHtml() {
|
var htmls = "";
|
$.each(SelectedVal, function (index, key) {
|
|
|
|
htmls += '<li class="list-group-item" >';
|
htmls += '<span class="badge"><a onclick="toDoRemove(' + key.code + ')" class="fa fa-times" style="color:Red" data-toggle="tooltip" data-placement="top" title="" data-original-title="这里是提示内容" ></a></span>';
|
htmls += key.lable;
|
htmls += '</li>'
|
|
});
|
$("#selectedinfo").html(htmls);
|
|
$("#showselectcount").html("<i style='color:#CD661D;font-weight:bold'>" + SelectedVal.length + "</i>");
|
}
|
function toDoRemove(code) {
|
if (toRemoveItem(code)) {
|
loadSelectHtml();
|
}
|
toSetRowStatus(code, false);
|
}
|
function toSetRowStatus(code, status) {
|
if (status) {
|
|
|
var obj = $("#jqGrid").jqGrid("getRowData");
|
|
jQuery(obj).each(function (index, item) {
|
var codeval = "";
|
$.each(item, function (key, value) {
|
|
if (key == gridConfig.code) {
|
codeval = value;
|
}
|
|
});
|
if (codeval == code) {
|
// alert(item.rowid);
|
// alert(index + " - code:" + code);
|
$("#jqGrid").jqGrid('setSelection', index + 1, status);
|
}
|
});
|
}
|
|
|
if (!status) {
|
var rowIds = jQuery("#jqGrid").jqGrid('getGridParam', 'selarrrow');
|
$.each(rowIds, function (index, rowid) {
|
var rowdata = $("#jqGrid").getRowData(rowid);
|
var codeval = "";
|
$.each(rowdata, function (key, value) {
|
|
if (key == gridConfig.code) {
|
codeval = value;
|
}
|
|
});
|
|
if (codeval == code) {
|
|
$("#jqGrid").jqGrid('setSelection', rowid, status);
|
}
|
|
});
|
}
|
}
|
function toRemoveItem(code) {
|
var _index = GetRowIndex(code);
|
|
if (_index > -1) {
|
SelectedVal.splice(_index, 1);
|
return true;
|
}
|
else {
|
|
return false;
|
}
|
}
|
function beforeSelectRow(rowid, e) {
|
|
|
// if (gridConfig.multiselect) {
|
var rowIds = jQuery("#jqGrid").jqGrid('getGridParam', 'selarrrow');
|
var d = $("#jqGrid").getRowData(rowid);
|
alert(rowIds);
|
return (true);
|
//}
|
//else {
|
// $("#jqGrid").jqGrid('resetSelection');
|
|
// return (true);
|
//}
|
|
|
|
// return (false);
|
}
|
|
function completeMethod() {
|
|
|
isfirst = false;
|
|
//$(".checkbox").change(function (a, b, c, d) {
|
// var cbid = a.target.id;//jqg_jqGrid_2
|
|
// var rowid = cbid.replace('jqg_jqGrid_', '');
|
|
|
// alert(rowid + " -- " + jQuery("#jqGrid").jqGrid('getGridParam', 'selarrrow'));
|
//});
|
$(".J_menuItem").on("click", appendTab);
|
var recordsno = $('#jqGrid').getGridParam('records');
|
var postData = $('#jqGrid').jqGrid("getGridParam", "postData");
|
$.extend(postData, { totalrows: recordsno });
|
|
if (!gridConfig.multiselect) {
|
$("#jqgh_jqGrid_cb").hide();//disabled
|
}
|
else {
|
|
$.each(SelectedVal, function (index, item) {
|
|
toSetRowStatus(item.code, true);
|
});
|
|
}
|
//sumtype: "sum", sumtxt:"<b>类型:{0}</b>"
|
var sumstr = "";
|
$.each(dataCol, function (index, item) {
|
|
if (item.sumtype != undefined) {
|
if (item.sumtype == "sum") {
|
var htmlinfo = "";
|
var sum_amount = $("#jqGrid").getCol(item.name, false, 'sum');
|
if (item.sumtxt != undefined && item.sumtxt.indexOf('{0}' > -1)) {
|
|
htmlinfo = item.sumtxt.replace("{0}", sum_amount);
|
}
|
else {
|
htmlinfo = sum_amount;
|
}
|
|
|
sumstr += ',"' + item.name + '":"' + htmlinfo + '"';
|
}
|
|
}
|
|
});
|
if (sumstr != "") { sumstr = "{" + sumstr.substring(1) + "}"; } else { sumstr = "{}"; }
|
// alert(sumstr);
|
// var sum_amount = $("#jqGrid").getCol('ID', false, 'sum');
|
$("#jqGrid").footerData('set', jQuery.parseJSON(sumstr));
|
if (_booltreeGrid) {
|
$("#jqGrid").find(".treeclick").trigger('click');
|
}
|
var userdata = jQuery("#jqGrid").jqGrid('getGridParam', 'userData');
|
if (userdata != undefined && userdata != "" && userdata.Result != undefined && userdata.Message != undefined) {
|
if (userdata.Result == false && userdata.Message != "") {
|
msg.err(userdata.Message);
|
}
|
|
if (userdata.Result == true && userdata.Message != "") {
|
msg.info(userdata.Message);
|
}
|
|
}
|
if (typeof (_afterSearch) === "function") {
|
ischeck = _afterSearch();
|
|
}
|
}
|
|
function dlogBtnYes() {
|
|
if (gridConfig.multiselect) {
|
//多选
|
if (SelectedVal.length == 0) {
|
msg.err("请至少选择一行数据");
|
return false;
|
}
|
return SelectedVal;
|
}
|
else {
|
|
|
//单选
|
var rowIds = jQuery("#jqGrid").jqGrid('getGridParam', 'selrow');
|
if (rowIds == "") {
|
msg.err("请选择数据");
|
return false;
|
}
|
|
|
|
var json = $("#jqGrid").getRowData(rowIds);
|
|
//
|
|
// _selectleaf
|
|
var codeval = "";
|
var lableval = "";
|
var isselectleaf = false;
|
$.each(json, function (key, value) {
|
|
if (key == gridConfig.treeGrid._treeReader.leaf_field) {
|
isselectleaf = value;
|
}
|
|
if (key == gridConfig.code) {
|
codeval = value;
|
}
|
if (key == gridConfig.lable) {
|
lableval = value;
|
}
|
});
|
if (_selectleaf) {
|
if (isselectleaf != "true") {
|
msg.err("只能选择末级数据");
|
return false;
|
}
|
}
|
|
// alert(codeval + " - " + lableval);
|
if (codeval == "") {
|
msg.err("请选择数据");
|
return false;
|
}
|
|
if (_booltreeGrid && _isgetchild) {
|
var ret = $("#jqGrid").jqGrid("getRowData")
|
allval = codeval;
|
GetSelectData(ret, codeval);
|
codeval = allval;
|
|
}
|
return { code: codeval, lable: lableval }
|
|
}
|
// alert(JSON.stringify(returnJson));
|
|
|
|
}
|
var allval = "";
|
function GetSelectData(data, lastid) {
|
|
$.each(data, function (i, item) {
|
|
|
if (item.Superior == lastid) {
|
|
allval += "," + item.Id;
|
if (item.IsLeaf != true) {
|
GetSelectData(data, item.Id);
|
}
|
|
}
|
|
|
|
});
|
|
}
|