/* 自动读取控件值 */ function GetWebControlsFor(element, colds) { var resultjson = jQuery.parseJSON('{"resultcode":"-1"}'); try { var controlname = ""; var controls = null; var controltype = 0; for (var row in colds["querycoldetail"]) { controlname = "#" + colds["querycoldetail"][row]["控件名称"];//读取控件名称 controls = $(element).find(controlname);//在element元素中查找ID为controlname的控件,返回控件数组 controltype = colds["querycoldetail"][row]["控件类型"];//读取控件类型 if (controls.length > 0) {//如果返回的控件数组长度大于0,则取第一个控件赋值 switch (controltype) { case 2: break; default: resultjson[colds["querycoldetail"][row]["字段别名"]] = controls[0].value; break; } } else { resultjson[colds["querycoldetail"][row]["字段别名"]] = ""; } } resultjson["resultcode"] = 1; return resultjson; } catch (error) { resultjson["errorinfo"] = error; return resultjson; } } function GetWebControlsFor1(element, orgdata, colds) { var resultjson = {}; try { var controlname = ""; var controls = null; var controltype = 0; if (orgdata != null) { for (var row in colds["querycoldetail"]) { controlname = "#" + colds["querycoldetail"][row]["控件名称"];//读取控件名称 controls = $(element).find(controlname);//在element元素中查找ID为controlname的控件,返回控件数组 controltype = colds["querycoldetail"][row]["控件类型"];//读取控件类型 if (controls.length > 0) {//如果返回的控件数组长度大于0,则取第一个控件赋值 switch (controltype) { case 2: break; default: orgdata[colds["querycoldetail"][row]["字段别名"]] = controls[0].value; break; } } } return orgdata; } else { for (var row in colds["querycoldetail"]) { controlname = "#" + colds["querycoldetail"][row]["控件名称"];//读取控件名称 controls = $(element).find(controlname);//在element元素中查找ID为controlname的控件,返回控件数组 controltype = colds["querycoldetail"][row]["控件类型"];//读取控件类型 if (controls.length > 0) {//如果返回的控件数组长度大于0,则取第一个控件赋值 switch (controltype) { case 2: break; default: resultjson[colds["querycoldetail"][row]["字段别名"]] = controls[0].value; break; } } else { resultjson[colds["querycoldetail"][row]["字段别名"]] = ""; } } return resultjson; } } catch (error) { resultjson["errorinfo"] = error; return resultjson; } } /* 自动给控件赋值 */ function SetWebControlsFor(element, data, colds) { var resultjson = jQuery.parseJSON('{"resultcode":"-1"}'); try { if (data == null) { data = GetNullRowFromCol(colds); //if (data.hasOwnProperty("errorcode")) { // alert("调用发生错误,错误信息为:" + json.message); // return; //} if (data["resultcode"] <= 0) { return data; } } var controlname = ""; var controls = null; var controltype = 0; for (var row in colds["querycoldetail"]) { controlname = "#" + colds["querycoldetail"][row]["控件名称"];//读取控件名称 controls = $(element).find(controlname);//在element元素中查找ID为controlname的控件,返回控件数组 controltype = colds["querycoldetail"][row]["控件类型"];//读取控件类型 if (controls.length > 0) {//如果返回的控件数组长度大于0,则取第一个控件赋值 switch (controltype) { case 2: break; default: controls[0].value = data[colds["querycoldetail"][row]["字段别名"]]; break; } } } resultjson["resultcode"] = 1; return resultjson; } catch (error) { resultjson["errorinfo"] = error; return resultjson; } } //根据字段信息产生空的json类型数据 function GetNullRowFromCol(colds) { var vjson = jQuery.parseJSON('{"resultcode":"-1"}'); try { var colname = ""; var controltype = 0; for (var row in colds["querycoldetail"]) { colname = colds["querycoldetail"][row]["字段别名"];//读取控件类型 controltype = colds["querycoldetail"][row]["控件值类型"];//读取控件名称 switch (controltype) { case 3://数值类型 vjson[colname] = 0; break; case 4://数值类型 vjson[colname] = 0; break; default://缺省使用字符串类型 vjson[colname] = ""; break; } } //delete vjson["errorcode"];//删除json数据字段 vjson["resultcode"] = 1; return vjson; } catch (error) { vjson["errorinfo"] = error; return vjson; } } function GetQueryCol(queryid) { var vjson = jQuery.parseJSON('{"resultcode":"-1"}'); try { var Nurl = '/DllBase/utility/ReadQueryCol'; var PostDdata = { "QueryID": queryid }; var parm = { json: PostDdata }; AjaxJson(Nurl, PostDdata, function (result) { vjson = result; }); //vjson = JSON.parse(vjson); //if (vjson.hasOwnProperty("resultcode")) { // //alert("调用发生错误,错误信息为:" + json.message); // return vjson; //} return vjson; } catch (error) { vjson["resultcode"] = -1; vjson["errorinfo"] = error; return vjson; } } //单条送货明细转流程 function SGoodsDetailToFlowWork(id) { var vjson = jQuery.parseJSON('{"ID":"0"}'); vjson["ID"] = id; try { var Nurl = '/OilModule/SGoodsMst/SGoodsDetailToFlowWork'; var str = JSON3.stringify(vjson); var parm = { json: str }; AjaxJson(Nurl, parm, function (result) { vjson = result; }); vjson = JSON.parse(vjson); if (vjson.hasOwnProperty("resultcode")) { //alert("调用发生错误,错误信息为:" + json.message); return vjson; } return vjson; } catch (error) { vjson["resultcode"] = -1; vjson["errorinfo"] = error; return vjson; } } //根据查询ID和条件读取不带参数的查询数据 function RDForQueryIndexOName(queryid, condition) { var vjson = jQuery.parseJSON('{"resultcode":"-1"}'); try { var Nurl = '/DllBase/utility/RDForQueryIndexOName'; var PostDdata = { "queryid": queryid, "condition": condition }; //var parm = { json: PostDdata }; AjaxJson(Nurl, PostDdata, function (result) { vjson = result; }); //vjson = JSON.parse(vjson); //if (vjson.hasOwnProperty("resultcode")) { // //alert("调用发生错误,错误信息为:" + json.message); // return vjson; //} return vjson; } catch (error) { vjson["resultcode"] = -1; vjson["errorinfo"] = error; return vjson; } } //根据查询ID和条件读取不带参数的查询数据 function RDForQueryIndexONameArgs(queryid, condition) { var vjson = jQuery.parseJSON('{"resultcode":"-1"}'); try { var Nurl = '/OilModule/ProColorType/RDForQueryIndexONameArgs'; var PostDdata = '{ "QueryID": "' + queryid + '", "condition": "' + condition + '}'; var parm = { json: PostDdata }; AjaxJson(Nurl, parm, function (result) { vjson = result; }); //vjson = JSON.parse(vjson); //if (vjson.hasOwnProperty("resultcode")) { // //alert("调用发生错误,错误信息为:" + json.message); // return vjson; //} return vjson; } catch (error) { vjson["resultcode"] = -1; vjson["errorinfo"] = error; return vjson; } } //根据查询ID和条件读取不带参数的查询数据 function RDForQueryIndexONameArgsForDb(queryid, condition, dbname) { var vjson = jQuery.parseJSON('{"resultcode":"-1"}'); try { var Nurl = '/DllBase/utility/RDForQueryIndexONameArgsForDb'; //var PostDdata = '{ "QueryID": "' + queryid + '", "condition": "' + condition + '","dbname":"' + dbname + '"}'; var PostDdata = { "queryid": queryid, "condition": condition, "dbname": dbname }; var parm = { json: PostDdata }; AjaxJson(Nurl, PostDdata, function (result) { vjson = result; }); return vjson; } catch (error) { vjson["resultcode"] = -1; vjson["errorinfo"] = error; return vjson; } } //根据查询配置数据组成GRID字段 function GetTableColStr(tablecoljson) { var str = "["; for (var i = 0; i < tablecoljson.querycoldetail.length; i++) { if (i > 0) { str += ","; } str += "{label: '" + tablecoljson.querycoldetail[i]["字段别名"] + "', name: '" + tablecoljson.querycoldetail[i]["字段别名"] + "', index: '" + tablecoljson.querycoldetail[i]["字段别名"] + "', align: 'center',sortable: true"; str += ", width: " + tablecoljson.querycoldetail[i]["宽度"]; if (tablecoljson.querycoldetail[i]["是否可见"] == 0) { str += ",hidden: true"; } if (tablecoljson.querycoldetail[i]["备注"] != "") { str += ",formatter: " + tablecoljson.querycoldetail[i]["备注"]; } str += "}"; } str += "]"; var json = eval('(' + str + ')'); return json; } //根据数据初始化combox下拉控件 function FillCombox(combox, data, preid) { for (var i = combox.length - 1; i >= 0; i--) { combox.remove(i); } var tempval = null; for (var key in data) { tempval = data[key]; if (tempval["主项ID"] != preid) continue; combox.add(new Option(tempval["名称"], tempval["ID"])); } } //根据查询ID和条件读取不带参数的查询数据 function Select(sqlstr) { var vjson = jQuery.parseJSON('{"resultcode":"-1"}'); try { var Nurl = '/OilModule/ProColorType/Select'; var PostDdata = []; PostDdata["sqlstr"] = sqlstr; var jsonstr = JSON3.stringify(PostDdata); //var PostDdata = '{ "sqlstr": "' + sqlstr + '"}'; var parm = { json: jsonstr }; AjaxJson(Nurl, parm, function (result) { vjson = result; }); //vjson = JSON.parse(vjson); //if (vjson.hasOwnProperty("resultcode")) { // //alert("调用发生错误,错误信息为:" + json.message); // return vjson; //} return vjson; } catch (error) { vjson["resultcode"] = -1; vjson["errorinfo"] = error; return vjson; } } //给gridtable添加行 function addRowForjqGrid(gridtable, data) { var ids = jQuery(gridtable).jqGrid('getDataIDs'); //获得当前最大行号(数据编号) var rowid = Math.max.apply(Math, ids); if (rowid == '-Infinity') { rowid = 0; } //获得新添加行的行号(数据编号) var newrowid = rowid + 1; //将新添加的行插入到第一列 $(gridtable).jqGrid("addRowData", newrowid, data, "last"); } //修改行数据,如没有就添加行 function ModifyRowForjqGrid(gridtable, data, keyname) { var ids = $(gridtable).getDataIDs();//返回数据表的ID数组["66","39"..] var rowindex = -1; var getRow = null; for (var i = 0; i < ids.length; i++) { getRow = $(gridtable).getRowData(ids[i]);//获取当前的数据行 if (getRow[keyname] == data[keyname]) { rowindex = ids[i]; break; } } if (rowindex == -1) { addRowForjqGrid(gridtable, data); return; } $(gridtable).setRowData(rowindex, data); } //修改json数组数据,如没有就添加行 function ModifyRowForJson(orgdata, data, keyname) { for (var i = 0; i < orgdata.length; i++) { if (orgdata[i][keyname] == data[keyname]) { if (orgdata[i]["OPERATOR"] == 0) { data["OPERATOR"] = 2; } else { data["OPERATOR"] = orgdata[i]["OPERATOR"]; } orgdata[i] = data; return; } } data["OPERATOR"] = 1; orgdata.push(data); } //获取修改的数据 function GetChangeForJson(orgdata) { var change = []; for (var i = 0; i < orgdata.length; i++) { if (orgdata[i]["OPERATOR"] == 0) { continue; } change.push(orgdata[i]); } return change; } //获取JSON数组关键字小于0的最小值 function GetJsonKeyMinVal(orgdata, keyname) { var min = 0; for (var i = 0; i < orgdata.length; i++) { if (orgdata[i][keyname] >= 0) { continue; } if (orgdata[i][keyname] < min) { min = orgdata[i][keyname]; } } return min - 1; } //在JSON中查找 function FindRowForJson(orgdata, keyname, keyval) { for (var i = 0; i < orgdata.length; i++) { if (orgdata[i][keyname] == keyval) { return orgdata[i]; } } return null; } //删除JSON数组中指定的对象 function removeByValue(orgdata, keyname, keyval) { for (var i = 0; i < orgdata.length; i++) { if (orgdata[i][keyname] == keyval) { orgdata.splice(i, 1); return; } } } //将json数组以json对象返回 function GetJsonFromData(ds, tablename) { var colarr = []; for (var vjson in ds[0]) { var tempjson = { "colname": vjson }; colarr.push(tempjson); } var querycollen = tablename + "_col_len"; var querycol = tablename + "_col"; var dscollen = tablename + "_len"; var myjson = {}; myjson[querycollen] = colarr.length; myjson[querycol] = colarr; myjson[dscollen] = ds.length; myjson[tablename] = ds; return myjson; } //产生表数据,返回json对象,前提是有表的字段描述表 function GetJsonFromDataTable(myjson, queryds, ds, tablename) { var querycollen = tablename + "_col_len"; var querycol = tablename + "_col"; var dscollen = tablename + "_len"; if (myjson == null) { myjson = {}; } myjson[querycollen] = queryds.length; myjson[querycol] = queryds; myjson[dscollen] = ds.length; myjson[tablename] = ds; return myjson; } //将json数组对象序列化成json对象 var MvcParamMatch = (function () { var MvcParameterAdaptive = {}; //验证是否为数组 MvcParameterAdaptive.isArray = Function.isArray || function (o) { return typeof o === "object" && Object.prototype.toString.call(o) === "[object Array]"; }; //将数组转换为对象 MvcParameterAdaptive.convertArrayToObject = function (arrName, array, saveOjb) { var obj = saveOjb || {}; function func(name, arr) { for (var i in arr) { if (!MvcParameterAdaptive.isArray(arr[i]) && typeof arr[i] === "object") { for (var j in arr[i]) { if (MvcParameterAdaptive.isArray(arr[i][j])) { func(name + "[" + i + "]." + j, arr[i][j]); } else if (typeof arr[i][j] === "object") { MvcParameterAdaptive.convertObject(name + "[" + i + "]." + j + ".", arr[i][j], obj); } else { obj[name + "[" + i + "]." + j] = arr[i][j]; } } } else { obj[name + "[" + i + "]"] = arr[i]; } } } func(arrName, array); return obj; }; //转换对象 MvcParameterAdaptive.convertObject = function (objName, turnObj, saveOjb) { var obj = saveOjb || {}; function func(name, tobj) { for (var i in tobj) { if (MvcParameterAdaptive.isArray(tobj[i])) { MvcParameterAdaptive.convertArrayToObject(i, tobj[i], obj); } else if (typeof tobj[i] === "object") { func(name + i + ".", tobj[i]); } else { obj[name + i] = tobj[i]; } } } func(objName, turnObj); return obj; }; return function (json, arrName) { arrName = arrName || ""; if (typeof json !== "object") throw new Error("请传入json对象"); if (MvcParameterAdaptive.isArray(json) && !arrName) throw new Error("请指定数组名,对应Action中数组参数名称!"); if (MvcParameterAdaptive.isArray(json)) { return MvcParameterAdaptive.convertArrayToObject(arrName, json); } return MvcParameterAdaptive.convertObject("", json); }; })(); function RootPath() { var strFullPath = window.document.location.href; var strPath = window.document.location.pathname; var pos = strFullPath.indexOf(strPath); var prePath = strFullPath.substring(0, pos); var postPath = strPath.substring(0, strPath.substr(1).indexOf('/') + 1); //return (prePath + postPath);如果发布IIS,有虚假目录用用这句 return (prePath); } //URL为相对地址,基础地址由系统计算 function AjaxJson(url, postData, callBack) { $.ajax({ url: RootPath() + url, type: "post", //contentType:"application/json", data: postData, dataType: "json", async: false, success: function (data) { if (data.Code == "-1") { Loading(false); dialogAlert(data.Message, -1); } else { Loading(false); callBack(data); } }, error: function (data) { Loading(false); dialogAlert(data.responseText, -1); } }); } //提供完整的URL地址 function AjaxJsonFullUrl(purl, postData, callBack) { $.ajax({ url: purl, type: "post", //contentType:"application/json", data: postData, dataType: "json", async: false, success: function (data) { if (data.Code == "-1") { Loading(false); dialogAlert(data.Message, -1); } else { Loading(false); callBack(data); } }, error: function (data) { Loading(false); dialogAlert(data.responseText, -1); } }); } //读取用户菜单 function GetUserMenu() { var vjson = jQuery.parseJSON('{"resultcode":"-1"}'); try { var Nurl = '/Utility/GetUserMenu'; var PostDdata = { "QueryID": 1 }; var parm = { json: PostDdata }; var jsonobj = {}; jsonobj["QueryID"] = 1; AjaxJson(Nurl, MvcParamMatch(jsonobj), function (result) { vjson = result; }); //vjson = JSON.parse(vjson); //if (vjson.hasOwnProperty("resultcode")) { // //alert("调用发生错误,错误信息为:" + json.message); // return vjson; //} return vjson; } catch (error) { vjson["resultcode"] = -1; vjson["errorinfo"] = error; return vjson; } } //读取用户菜单 function GetUserMenu01(orgdata) { var vjson = jQuery.parseJSON('{"resultcode":"-1"}'); try { var Nurl = '/Utility/GetUserMenu01'; AjaxJson(Nurl, MvcParamMatch(orgdata), function (result) { vjson = result; }); //vjson = JSON.parse(vjson); //if (vjson.hasOwnProperty("resultcode")) { // //alert("调用发生错误,错误信息为:" + json.message); // return vjson; //} return vjson; } catch (error) { vjson["resultcode"] = -1; vjson["errorinfo"] = error; return vjson; } }