Files
leanote/public/js/ever/common.js

3074 lines
75 KiB
JavaScript
Raw Normal View History

2014-05-07 13:06:24 +08:00
/**
* 命名空间与全局方法
* @author life
*/
// 命名空间
var dk =
order =
shipment =
gis =
party =
contract =
network =
equip =
manual =
reason =
payment =
auth =
cron =
{};
// 全局配置
G_CONFIG = {
defaultCountryId: "402895853e3bd7a5013e3bd7b2c20000",
split: "/"
};
// cache
dk.cache = {
countries: {},
regions: {},
cities: {},
towns: {}
};
// 公用方法
// 除公用方法外, 其它方法必须在命名空间下
//-----------
// 国际化
//-----------
/**
* 得到国际化
* @param key String 键名
* @param data Array 替换的值
* @param [source] Object 数据源
* @returns String 国际化后的值
*/
function getText(key, data, source) {
// 判断key有无'.', 比如 msg.title.info
// 得到最终的value
var keyArr = key.split('.');
var value = source ? source : i18n;
for(var i = 0; i < keyArr.length; ++i) {
value = value[keyArr[i]];
}
if(!data) return value;
// 替换之
// 防止{1}/{1}, 里面的数字是有意义的!
var i = 0;
var str = value.replace(/{[0-9]+}/g, function(each) {
// 从{11}中得到11
var index = each.substr(1, each.length-2);
return data[index];
});
return str;
}
/**
*
* @param key
* @param data
* @returns
*/
function getMsgText(key, data) {
return getText(key, data, i18n.msg);
}
function getMsgTitleText(key, data) {
return getText(key, data, i18n.msg.title);
}
function getWinText(key, data) {
return getText(key, data, i18n.win);
}
function getWinTitleText(key, data) {
return getText(key, data, i18n.win.title);
}
//---------------
// dataGrid 表格
//---------------
/**
* 检查是否选中了
*
* @return Object row
*/
function checkSelectOne(gridId) {
var datagrid = $('#' + gridId);
if(!datagrid) return false;
var rows = datagrid.datagrid('getChecked');
if(rows.length < 1) {
msgAlert('info', 'selectOne', 'info');
return false;
}
if(rows.length > 1) {
msgAlert('info', 'selectOnlyOne', 'info');
return false;
}
return rows[0];
}
/**
* 可以选中多行
*/
function checkSelects(gridId) {
var datagrid = $('#' + gridId);
if(!datagrid) return false;
var rows = datagrid.datagrid('getChecked');
if(rows.length < 1) {
msgAlert('info', 'select', 'info');
return false;
}
return rows;
}
/**
* 表格移除多条
* @param gridId String
* @param rows Array[Object]
*/
function deleteRows(gridId, rows) {
for(var i = 0; i < rows.length; ++i) {
deleteRow(gridId, rows[i]);
}
}
/**
* 表格移除一条
* @param gridId String
* @param row Object
*/
function deleteRow(gridId, row) {
var index = $('#' + gridId).datagrid('getRowIndex', row);
$('#' + gridId).datagrid('deleteRow', index);
}
/**
* 表格添加多条
* @param gridId String
* @param rows Array[Object]
*/
function appendRows(gridId, rows) {
for(var i = 0; i < rows.length; ++i) {
appendRow(gridId, rows[i]);
}
}
/**
* 表格添加一条
* @param gridId String
* @param row Object
*/
function appendRow(gridId, row) {
$("#" + gridId).datagrid('appendRow', row);
}
/**
* 得到多行记录的主键列表
* @param rows
* @param fieldId 主键字段名
* @returns {Array}
*/
function getRowsIds(rows, fieldId) {
var ids = [];
for(var i in rows) {
ids.push(rows[i][fieldId]);
}
return ids;
}
/**
* 刷新dataGrid
* @param gridId
*/
function reloadGrid(gridId) {
$('#' + gridId).datagrid('reload');
}
/**
* 为grid加载数据
* @param gridId
* @param queryParams
* @param [url]
*/
function loadGrid(gridId, queryParams, url) {
var gridObj = $('#' + gridId);
if(url) {
gridObj.datagrid('options').url = url;
}
gridObj.datagrid('options').queryParams = queryParams;
gridObj.datagrid('load');
}
/**
* 表格添加标题
* 显示数据用
* @param title
* @returns {String}
*/
function addTitle(title) {
return '<span title="' + title + '">' + title + '</span>';
}
/**
* 将true/false转成是/
* @param bool true or false
* @returns
*/
function getYesOrNo(bool) {
return bool ? getText('yes') : getText('no');
}
//------------
// 弹框
//------------
// 弹框默认配置
dk.winDefaultConfig = {
minimizable: false, // 不可最小化
resizable: true,
collapsible: false, // 不能折叠
modal: true, // 遮罩
closed: false,
onClose : function() {
$(this).window('destroy');
}
};
// 得到grid 宽度
// 传过来的winWidth是win的宽度, 根据win宽度调整grid宽度
// min是否有下拉滚动条, 有会减少grid宽度
function getGridWidth(winWidth, min) {
var borderWidth = 16;
var borderWidthm = 36;
if(min) {
return winWidth - borderWidthm;
}
return winWidth - borderWidth;
}
// 得到win的宽度
// size是规格大小, selfWidth是自定义的大小, 如果有该值, 表示最大规格是size
// selfWidth超过它将用size
function getWinWidth(size, selfWidth) {
var width = $('body').width() * 0.1 * size;
if(typeof selfWidth != 'undefined') {
if(width > selfWidth) return selfWidth;
}
return width;
}
// 得到win的高度
function getWinHeight(size, selfHeight) {
// 这里之前是$('body').height(), 有bug, 当最大化win后, 该值为0
var height = $(window).height() * 0.1 * size;
if(typeof selfHeight != 'undefined') {
if(height > selfHeight) return selfHeight;
}
return height;
}
/**
* 打开win弹框
* @param winVar bool 是否自定义win, 如果为false, 则用g_custom_win, 否则用winVar
* @param winId string [不要使用, 将会弃用]
*/
dk.win = {};
function openWin(config, winVar, winId) {
config = $.extend({}, dk.winDefaultConfig, config);
if(!winId) winId = 'newWin'; // + (new Date().getTime());
// win的标题
config.title = getWinTitleText(config.title);
// 调整宽度和高度
config.width = getWinWidth(9, config.width);
config.height = getWinHeight(9, config.height);
var win = $('<div id="'+ winId+ '" class="newWin"/>').window(config);
if(!winVar) { // 用全局的
dk.win['g_custom_win'] = win;
} else {
dk.win[winVar] = win; // 避免不是由自己的子来关闭的情况, 其它可以控制关闭
// window[winVar] = win;
}
}
// 关闭弹框
// 空 or target Object或创建时定义的全局变量名
function closeWin(target) {
if(target == undefined) {
var theEvent = window.event || arguments.callee.caller.arguments[0];
var theObj = theEvent.target || theEvent.srcElement;
closeWin(theObj);
} else if(typeof target == "object") {
// 向上找class="newWin"的div
var obj = $(target).parents("div.newWin");
if(obj) {
$(obj).window('destroy');
}
} else if(typeof target == "string") {
if(dk.win[target]){
dk.win[target].window('destroy');
}
}
}
/**
* 关闭win, 更新grid
* @param winVar
* @param gridId
*/
function closeWinAndReloadGrid(winVar, gridId) {
closeWin(winVar);
reloadGrid(gridId);
}
//---------
// 表单
//---------
/**
* 提交数据
* @param formId string <form id="formId"> 会通过该ID取该form的serialize数据
* @param successFunc Function 成功处理函数
* @param failureFunc Function 失败处理函数
*/
function formSubmit(formId, formDataFunc, successFunc, failureFunc, hasProgress) {
hasProgress = hasProgress == undefined ? true : hasProgress;
if(hasProgress) {
showProgress('info', 'processing');
}
formId = $('#' + formId);
var isValid = $(formId).form('validate'); // 验证数据
if(!isValid) {
hideProgress();
msgAlert("info", "inputError", "info");
return;
}
var formData = $(formId).serialize();
if(typeof formDataFunc == 'function') {
formData = formDataFunc(formData);
}
ajaxPost($(formId).attr('action'), formData, function(ret) {
_ajaxCallback(ret, successFunc, failureFunc);
hideProgress();
});
}
/**
* form的数据通过Json形式提交到后台
* @param formId
* @param formDataFunc 数据处理方法
* @param successFunc
* @param failureFunc
* @author Life
* @datetime 2013/4/20 18:00
*/
function formSubmitJson(formId, formDataFunc, successFunc, failureFunc, hasProgress) {
hasProgress = hasProgress == undefined ? true : hasProgress;
if(hasProgress) {
showProgress('info', 'processing');
}
var formId2 = $('#' + formId);
var isValid = $(formId2).form('validate'); // 验证数据
if(!isValid) {
hideProgress();
msgAlert("info", "inputError", "info");
return;
}
// 得到form Json数据
var formData = getFormJsonData(formId);
if(typeof formDataFunc == 'function') {
formData = formDataFunc(formData);
}
$.ajax({
url : $(formId2).attr('action'),
type : "POST",
contentType: "application/json; charset=utf-8",
datatype: "json",
data : JSON.stringify(formData),
success : function(data, stats) {
_ajaxCallback(data, successFunc, failureFunc);
if(hasProgress) {
hideProgress();
}
},
error: function(ret) {
_ajaxCallback(ret, successFunc, failureFunc);
if(hasProgress) {
hideProgress();
}
}
});
}
// 得到form的数据
// 返回json
// 会处理date, autocomplete值
function getFormJsonData(formId, needFilter) {
if(needFilter == undefined) {
needFilter = true;
}
var data = formArrDataToJson($('#' + formId).serializeArray());
// date->dbType如果是date类型dbType是timestamp类型要转
$("#" + formId + " input.Wdate").each(function() {
var name = $(this).attr("name");
if(name && data[name]) {
var viewType = $(this).attr("viewType");
var dbType = $(this).attr("dbType");
if(viewType == dbType) {
return;
}
if(viewType == "date" && dbType == "datetime") {
data[name] = data[name] + " 00:00:00";
}
}
});
/*if(needFilter) {
// 如果是autocomplete那么不需要该值, 删除它
$("#" + formId + " input.ac_input").each(function() {
var name = $(this).attr("name");
if(!name) {
return;
}
if(data[name]) {
delete data[name];
}
});
}*/
//mxm 2013.11.29
//如果是autocomplete删除名字那对应的Id也不应该保留
$("#" + formId + " input.ac_input").each(function() {
var name = $(this).attr("name");
if(!name) {
return;
}
if(data[name]==null || data[name]=="" || data[name]==undefined) {
var id = name.substring(0,(name.length-4))+'Id';
delete data[id];
}
});
return data;
}
// $('#form').serializeArray()的数据[{name: a, value: b}, {name: "c[]", value: d}]
// 转成{a:b}
function formArrDataToJson(arrData) {
var datas = {};
var arrObj= {}; // {a:[1, 2], b:[2, 3]};
for(var i in arrData) {
var attr = arrData[i].name;
var value = arrData[i].value;
// 判断是否是a[]形式
if(attr.substring(attr.length-2, attr.length) == '[]') {
attr = attr.substring(0, attr.length-2);
if(arrObj[attr] == undefined) {
arrObj[attr] = [value];
} else {
arrObj[attr].push(value);
}
continue;
}
datas[attr] = value;
}
return $.extend(datas, arrObj);
}
// 将serialize的的form值转成json
function formSerializeDataToJson(formSerializeData) {
var arr = formSerializeData.split("&");
var datas = {};
var arrObj= {}; // {a:[1, 2], b:[2, 3]};
for(var i = 0; i < arr.length; ++i) {
var each = arr[i].split("=");
var attr = decodeURI(each[0]);
var value = decodeURI(each[1]);
// 判断是否是a[]形式
if(attr.substring(attr.length-2, attr.length) == '[]') {
attr = attr.substring(0, attr.length-2);
if(arrObj[attr] == undefined) {
arrObj[attr] = [value];
} else {
arrObj[attr].push(value);
}
continue;
}
datas[attr] = value;
}
return $.extend(datas, arrObj);
}
/**
* 选择radio
* TODO 有问题, 只能处理一批只有两个的情况
* @param names Array [] radio名
* @param source Object {}
*/
function setRadios(names, source, parentId) {
for(var i = 0; i < names.length; ++i) {
setRadio(names[i], source[names[i]], parentId);
}
}
// jquery 选择radio
// $("#rdo1").attr("checked","checked");
// $("#rdo1").removeAttr("checked");
function setRadio(name, value, parentId) {
var index = value ? 0 : 1; // 是在前, 否在后
id = 'input[name="' + name + '"]';
if(parentId) {
id = '#' + parentId + ' ' + id;
}
$(id).eq(index).attr("checked", "checked");
}
/**
* 设置input, textarea值
* @param names
* @param source
*/
function setInputTextareas(ids, values, parentId) {
for(var i = 0; i < ids.length; ++i) {
setInputTextarea(ids[i], values[ids[i]], parentId);
}
}
function setInputTextarea(id, value, parentId) {
var id = '#' + id;
if(parentId) {
id = '#' + parentId + ' ' + id;
}
$(id).val(value);
}
/**
* 设置comboboxs值, 选中.
* @param names
* @param values
*/
function setComboboxs(names, values, parentId) {
for(var i = 0; i < names.length; ++i) {
setCombobox(names[i], values[names[i]], parentId);
}
}
function setCombobox(name, value, parentId) {
if(value == null || value == undefined) {
return;
}
var id = '#' + name;
if(parentId) {
id = '#' + parentId + ' ' + id;
}
$(id).val(value);
// 等待easyui渲染完闭
setTimeout(function() {
$(id).combobox();
$(id).combobox('setValue', value);
}, 0);
}
function getCombobox(name, parentId) {
if(name == null || name == undefined) {
return;
}
var id = '#' + name;
if(parentId) {
id = '#' + parentId + ' ' + id;
}
var value=$(id).combobox('getValue');
if(value){
return value;
}else{
return $(id).val();
}
}
/**
* 在父parentId下所有值为value的checkbox选中
* @param parentId String 父ID
* @param values Array [vlaue1, value2]
*/
function setCheckboxs(values, parentId) {
if(!values) return;
for(var i = 0; i < values.length; ++i) {
setCheckbox(values[i], parentId);
}
}
function setCheckbox(value, parentId) {
id = 'input[value="' + value + '"]';
if(parentId) {
id = '#' + parentId + ' ' + id;
}
$(id).attr('checked', 'checked');
}
/**
* 展示信息
* @Param ids <span id="id1"></span> id
* @param sourceData 数据源, sourceData[id]
* @Param parent 父对象, for精确查询#id
*/
function showInfos(ids, sourceData, parentId) {
if(!ids || !sourceData) return;
for(var i = 0; i < ids.length; ++i) {
showInfo(ids[i], sourceData, parentId);
}
}
function showInfo(id, sourceData, parentId) {
var id2 = '#' + id;
if(parentId) {
id2 = '#' + parentId + ' ' + id2;
}
$(id2).html(sourceData[id]);
}
//------------
// messager
//------------
/**
* 提示框
*/
function msgAlert(title, msg, icon, confirmFunc) {
if(icon == undefined || icon == "") icon = "info";
title = getMsgTitleText(title);
msg = getMsgText(msg);
$.messager.alert(title, msg, icon, confirmFunc);
}
/**
* 提示, 自己输入信息, 不拿国际化
*/
function msgAlertSelf(title, msg, icon, confirmFunc) {
if(icon == undefined || icon == "") icon = "info";
$.messager.alert(getMsgTitleText(title), msg, icon, confirmFunc);
}
/**
* 确认?
* @param title
* @param msg
* @param yesFunc
* @param noFunc
*/
function msgConfirm(title, msg, yesFunc, noFunc) {
title = getMsgTitleText(title);
msg = getMsgText(msg);
$.messager.confirm(title, msg, function(r) {
if(r) {
if(typeof yesFunc == "function") yesFunc();
} else {
if(typeof noFunc == "function") noFunc();
}
});
}
//-----------
// 工具
//-----------
// 判断后台处理的结果是否为true
function _checkRetStatus(ret) {
if(!ret) {
//此处为地图专门处理
return true;
}
if(typeof ret == "object" && (ret.success == true || typeof ret.success == 'undefined')) {
return true;
}
return false;
}
// 显示进度条
function showProgress(title, msg) {
var param = {};
if(title != undefined) {
param.title = getMsgTitleText(title);
}
if(msg != undefined) {
param.msg = getMsgText(msg)
}
$.messager.progress(param);
}
// 关闭进度条
function hideProgress() {
$.messager.progress('close'); // 关闭进度条
}
/**
* 是否无权限, 登录(session过期)
* @param ret
* @returns {Boolean}
*/
function _noAuth(ret) {
if(typeof ret == "object") {
// 没有权限
if(ret.objectId == "noAuth") {
msgAlert("info", "noAccess", "info", function() {
});
return true;
// 没有登录, session过时
} else if(ret.objectId == "sessionTimeOut" || ret.objectId == "otherOneLogined") {
msgAlert("info", ret.objectId, "info", function() {
location.href = G_PATH + "/app/login.jsp";
});
// 清空定时
if(dk.activeUserCountInterval) {
clearInterval(dk.activeUserCountInterval);
}
if(dk.notReadMsgInterval) {
clearInterval(dk.notReadMsgInterval);
}
return true;
}
}
return false;
}
/**
* 得到异常信息
* @param ret
* @returns
*/
function _getExceptionMsgs(ret) {
var msg = "";
//var msg = getMsgText('opFailure');
if(ret.exceptionList) {
for(var i in ret.exceptionList) {
if(ret.exceptionList[i]) {
msg += ret.exceptionList[i] + "<br />";
}
}
}
if(!msg) {
msg = getMsgText('opFailure');
}
return msg;
}
/**
* 得到异常信息
* @param ret
* @returns
*/
function getExceptionMsg(ret) {
var msg = "";
if(ret.exceptionList) {
for(var i in ret.exceptionList) {
if(ret.exceptionList[i]) {
msg += ret.exceptionList[i] + "<br />";
}
}
}
return msg;
}
/**
* 异常错误! 供datagrid中调用
* @param ret
* @returns bool 有错误,异常返回true
*/
function exceptionError(ret) {
// no auth
if(_noAuth(ret)) {
//...
return true;
} else {
// processStatus有错误, 输出异常信息
if(typeof ret == "object" && typeof ret.success != "undefined" && !ret.success) {
msgAlertSelf('info', _getExceptionMsgs(ret), 'info');
return true;
} else if(typeof ret != "object" ) {
msgAlert("info", "opFailure", "info");
return true;
}
}
return false;
}
// ajax请求返回结果后的操作
// 用于ajaxGet(), ajaxPost(), formSubmit()
function _ajaxCallback(ret, successFunc, failureFunc) {
if(_checkRetStatus(ret)) {
if(typeof successFunc == 'function') successFunc(ret);
else msgAlert('info', 'opSuccess', 'info');
} else {
// no auth
if(_noAuth(ret)) {
//...
} else {
if(typeof failureFunc == 'function') {
failureFunc(ret);
} else {
// processStatus有错误, 输出异常信息
if(typeof ret == "object") {
msgAlertSelf('info', _getExceptionMsgs(ret), 'info');
} else {
msgAlert("info", "opFailure", "info");
}
}
}
}
}
function _ajax(type, url, param, successFunc, failureFunc, hasProgress, async) {
if(typeof async == "undefined") {
async = true;
} else {
async = false;
}
$.ajax({
type: type,
url: url,
data: param,
async: async, // 是否异步
success: function(ret) {
_ajaxCallback(ret, successFunc, failureFunc);
if(hasProgress) hideProgress();
},
error: function(ret) {
_ajaxCallback(ret, successFunc, failureFunc);
if(hasProgress) hideProgress();
}
});
}
/**
* 发送ajax get请求
* @param url
* @param param
* @param successFunc
* @param failureFunc
* @param hasProgress
* @param async 是否异步
* @returns
*/
function ajaxGet(url, param, successFunc, failureFunc, hasProgress, async) {
if(hasProgress == undefined) hasProgress = true;
if(hasProgress) showProgress('info', 'processing');
_ajax("GET", url, param, successFunc, failureFunc, hasProgress, async);
}
/**
* 发送post请求
* @param url
* @param param
* @param successFunc
* @param failureFunc
* @param hasProgress
* @param async 是否异步, 默认为true
* @returns
*/
function ajaxPost(url, param, successFunc, failureFunc, hasProgress, async) {
if(hasProgress == undefined) hasProgress = true;
if(hasProgress) showProgress('info', 'processing');
_ajax("POST", url, param, successFunc, failureFunc, hasProgress, async);
}
/**
* 传送Json数据
* @param url
* @param param
* @param successFunc
* @param failureFunc
* @param hasProgress
* @param async
* @returns
*/
function ajaxPostJson(url, param, successFunc, failureFunc, hasProgress, async) {
if(hasProgress == undefined) hasProgress = true;
if(hasProgress) showProgress('info', 'processing');
// 默认是异步的
if(typeof async == "undefined") {
async = true;
} else {
async = false;
}
$.ajax({
url : url,
type : "POST",
contentType: "application/json; charset=utf-8",
datatype: "json",
async: async,
data : JSON.stringify(param),
success : function(data, stats) {
_ajaxCallback(data, successFunc, failureFunc);
if(hasProgress) hideProgress();
},
error: function(ret) {
_ajaxCallback(ret, successFunc, failureFunc);
if(hasProgress) hideProgress();
}
});
}
/**
* 隐藏按钮
* @param btns Object | string 按钮IDs
*/
function hideBtn(btns) {
if(typeof btns == "object") {
for(var i in btns) {
$('#' + btns[i]).css("display", "none");
}
} else {
$('#' + btns).css("display", "none");
}
}
/**
* 显示按钮
* @param btns Object | string 按钮IDs
*/
function showBtn(btns) {
if(typeof btns == "object") {
for(var i in btns) {
$('#' + btns[i]).css("display", "inline-block");
}
} else {
$('#' + btns).css("display", "inline-block");
}
}
// 关闭按钮
function disableBtn(btns) {
if(typeof btns == "object") {
for(var i in btns) {
$('#' + btns[i]).linkbutton({disabled: true});
}
} else {
$('#' + btns).linkbutton({disabled: true});
}
}
function enableBtn(btns) {
if(typeof btns == "object") {
for(var i in btns) {
$('#' + btns[i]).linkbutton({disabled: false});
}
} else {
$('#' + btns).linkbutton({disabled: false});
}
}
/**
*
* country, region, city, town多级联动
*
*/
// function areaCascade(countryWebId, regionWebId, cityWebId, townWebId, defaultCountryId, defaultRegionId, defaultCityId, defaultTownId) {
function areaCascade(config) {
var areaData = {regions: {}, cities: {}, towns: {}}; // 缓存
// 配置处理
// 默认中国
if(config.defaultCountryId == undefined) {
config.defaultCountryId = G_CONFIG['defaultCountryId'];
}
var countryWebId = (!config.countryWebId) ? false : '#' + config.countryWebId;
var regionWebId = (!config.regionWebId) ? false : '#' + config.regionWebId;
var cityWebId = (!config.cityWebId) ? false : '#' + config.cityWebId;
var townWebId = (!config.townWebId) ? false : '#' + config.townWebId;
function clearRegion() {
if(regionWebId && $(regionWebId)) {
$(regionWebId).combobox('loadData', false);
$(regionWebId).combobox('clear');
}
}
function clearCity() {
if(cityWebId && $(cityWebId)) {
$(cityWebId).combobox('loadData', false);
$(cityWebId).combobox('clear');
}
}
function clearTown() {
if(townWebId && $(townWebId)) {
$(townWebId).combobox({data: []});
$(townWebId).combobox('clear');
}
}
// 保存缓存
// 以后地址有用
// type: countries, regions, cities, towns
function saveCache(rows, type) {
if(!rows) {
return;
}
for(var i = 0; i < rows.length; ++i) {
dk.cache[type][rows[i].typeId] = rows[i].shortDesc;
}
}
// 国家
if(countryWebId && $(countryWebId)) {
$(countryWebId).combobox({
valueField: 'typeId',
textField: 'shortDesc',
required: false,
url: G_PATH + '/geo/getCountries', // 首先载入国家, 通过url, onLoadSuccess有问题
onLoadSuccess: function(ret) {
// $(this).combobox('select', config.defaultCountryId); // 选中中国
// 选中第一行记录
if(ret && ret.length > 0) {
$(this).combobox('select', ret[0].typeId);
}
saveCache(ret, "countries");
},
onSelect: function() {
var countryId = $(this).combobox('getValue');
// 载入省
clearRegion();
clearCity();
clearTown();
if(regionWebId && $(regionWebId)) {
if(areaData['regions'][countryId]) {
$(regionWebId).combobox('loadData', areaData['regions'][countryId]);
} else {
$.get(G_PATH + '/geo/getRegions', {countryId: countryId}, function(ret) {
if(ret.length) {
areaData['regions'][countryId] = ret;
$(regionWebId).combobox('loadData', ret);
saveCache(ret, "regions");
}
// 第一次初始化时选中默认的省. 第一次肯定没有默认的, 所以, 必须要从数据库中, 所以
// 肯定会执行!
if(typeof config.defaultRegionId != 'undefined') {
// alert("region " + ret);
$(regionWebId).combobox('select', config.defaultRegionId);
config.defaultRegionId = null;
}
});
}
}
}
})
}
// 选中中国
// _selectArea(config.countryWebId, config.defaultCountryId);
// 省
if(regionWebId && $(regionWebId)) {
$(regionWebId).combobox({
valueField: 'typeId',
textField: 'shortDesc',
required: false,
onSelect: function() {
var regionId = $(this).combobox('getValue');
// 载入市
clearCity();
clearTown();
if(cityWebId && $(cityWebId)) {
if(areaData['cities'][regionId]) {
$(cityWebId).combobox('loadData', areaData['cities'][regionId]);
// 如果市只有一行记录, 则默认选中
if(areaData['cities'][regionId].length == 1) {
$(cityWebId).combobox('select', areaData['cities'][regionId][0].typeId);
}
} else {
$.get(G_PATH + '/geo/getCities', {regionId: regionId}, function(ret) {
if(ret.length) {
areaData['cities'][regionId] = ret;
$(cityWebId).combobox('loadData', ret);
// 如果市只有一行记录, 则默认选中
if(ret && typeof ret == "object" && ret.length == 1) {
$(cityWebId).combobox('select', ret[0].typeId);
}
saveCache(ret, "cities");
}
// 第一次初始化时选中默认的市
if(typeof config.defaultCityId != 'undefined') {
$(cityWebId).combobox('select', config.defaultCityId);
config.defaultCityId = null;
}
});
}
}
}
});
}
// 市
if(cityWebId && $(cityWebId)) {
$(cityWebId).combobox({
valueField: 'typeId',
textField: 'shortDesc',
required: false,
onSelect: function() {
var cityId = $(this).combobox('getValue');
// 载入县
clearTown();
if(townWebId && $(townWebId)) {
if(areaData['towns'][cityId]) {
$(townWebId).combobox('loadData', areaData['towns'][cityId]);
} else {
$.get(G_PATH + '/geo/getTowns?cityId=' + cityId, {}, function(ret) {
if(ret.length) {
areaData['towns'][cityId] = ret;
$(townWebId).combobox('loadData', ret);
}
// 第一次初始化时选中默认的镇
if(typeof config.defaultTownId != 'undefined') {
$(townWebId).combobox('select', config.defaultTownId);
config.defaultTownId = null;
}
saveCache(ret, "towns");
})
}
}
}
});
}
// 县
if(townWebId && $(townWebId)) {
$(townWebId).combobox({
valueField: 'typeId',
textField: 'shortDesc',
required: false,
onSelect: function() {
}
});
}
}
// 选择联动
// config与areaCascade的config一至!// 选择区域
// 因为ajax的原因, 所以要定时循环判断
function _selectArea(areaId, value) {
if(areaId != undefined && $('#' + areaId)) {
areaObj = $('#' + areaId);
var loadedData = areaObj.combobox('getData');
if(loadedData != "") {
// 判断是否有该值, 若没该值, 则不选择, 不然会显示其它值
for(var i in loadedData) {
if(loadedData[i].typeId == value) {
areaObj.combobox('select', value);
return;
}
}
// 执行到此, 没有值
return;
}
setTimeout(function() {_selectArea(areaId, value);}, 10);
}
}
function selectArea(config) {
if(config.defaultCountryId != undefined) {
_selectArea(config.countryWebId, config.defaultCountryId);
if(config.defaultRegionId != undefined) {
_selectArea(config.regionWebId, config.defaultRegionId);
if(config.defaultCityId != undefined) {
_selectArea(config.cityWebId, config.defaultCityId);
if(config.defaultTownId != undefined) {
_selectArea(config.townWebId, config.defaultTownId);
}
}
}
}
}
/*
function a() {
<th>国家</th>
<td><input id="areaCountry" class="easyui-combobox combobox-width80" name="country"></td>
<th><fmt:message key="geo.region" bundle="${AdminStrings}"/></th>
<td><input id="areaRegion" class="easyui-combobox combobox-width80" name="region"></td>
<th><fmt:message key="geo.city" bundle="${AdminStrings}"/></th>
<td><input id="areaCity" class="easyui-combobox combobox-width80" name="city"></td>
<th><fmt:message key="geo.town" bundle="${AdminStrings}"/></th>
<td><input id="areaTown" class="easyui-combobox combobox-width80" name="town"></td>
}
*/
// 类型获取
// type全局变量
// 缓存
dk.types = {
//id: "desc"
};
dk.catTypes = {
//'catName' : {id: "desc"}
};
/**
* 是否有types
* @param type
*/
function hasTypes(type) {
if(dk.types[type] != undefined) {
return true;
}
return false;
}
/**
* 通过type获取类型, type可取 weightUoms
* @Param type String 类型名
* @Param callback function 异步获取types的回调方法
* @return Object
*/
function getTypes(type, callback) {
// 有回调方法,异步加载
if(typeof callback == "function") {
if(dk.types[type] != undefined) {
callback(dk.types[type]);
return;
}
ajaxGet(G_PATH + '/type/getTypes', {type: type}, function(types) {
setTypes(type, types);
callback(types);
}, '', false, true);
} else {
if(dk.types[type] != undefined) return dk.types[type];
jQuery.ajax({
type: 'GET',
url: G_PATH + '/type/getTypes',
data: {type: type},
async: false, // false代表只有在等待ajax执行完毕后才执行
success: function(ret) {
thisTypes = ret;
}
});
setTypes(type, thisTypes);
return thisTypes;
}
}
/**
* 得到type的字段描述
* @Param type String 类型名
* @return String
*/
function getTypeText(type, key) {
var types = getTypes(type);
if(types) return types[key];
return '';
}
/**
* 为某类设置types
* @param type
* @param types
*/
function setTypes(type, types) {
dk.types[type] = types;
}
/**
* 得到复杂类型下某分类的types
* @param cat catName
* @param catId 所选择的catId
* @returns
*/
function getCatTypes(cat, catId) {
if(dk.catTypes[cat] != undefined && dk.catTypes[cat][catId] != undefined) {
return dk.catTypes[cat][catId];
}
var thisTypes;
jQuery.ajax({
type: 'GET',
url: G_PATH + '/type/getCatTypes',
data: {cat: cat, catId: catId},
async: false, // false代表只有在等待ajax执行完毕后才执行
success: function(ret) { // {id: "", id: ""}
thisTypes = ret;
}
});
// 缓存
if(dk.catTypes[cat] == undefined) {
dk.catTypes[cat] = {};
}
dk.catTypes[cat][catId] = thisTypes;
return thisTypes;
}
/**
* type的32位字符串是否等于 desc
* @param type
* @param key
* @param desc
* @returns {Boolean}
*/
function typeEqualTo(type, desc, targetDesc) {
if(!type || !desc || !targetDesc) return false;
if(!G_TYPES || !G_TYPES[type] || !G_TYPES[type][desc]) return false;
if(G_TYPES[type][desc] == targetDesc) return true;
return false;
}
/**
* 先得到combobox Text再判断是否相等
* @param type
* @param comboboxId
* @param desc
* @returns {Boolean}
*/
function comboboxTypeEqualTo(type, comboboxId, targetDesc) {
if(!type || !comboboxId || !targetDesc) return false;
var desc = $('#' + comboboxId).combobox('getText');
if(!desc || !G_TYPES || !G_TYPES[type] || !G_TYPES[type][desc]) return false;
if(G_TYPES[type][desc] == targetDesc) return true;
return false;
}
/**
* 得到某type某key的desc
* @param type
* @param key
* @returns
*/
function getTypeDesc(type, desc) {
if(!type || !desc || !G_TYPES || !G_TYPES[type]) return false;
return G_TYPES['type'][desc];
}
//----------------
// get url
//----------------
function getPlatformPath(url) {
return G_PATH + '/getJsp?jsp=platform/' + url;
}
function getOrgPath(url) {
return G_PATH + '/getJsp?jsp=org/' + url;
}
function getUserPath(url) {
return G_PATH + '/getJsp?jsp=user/' + url;
}
function getCommonPath(url) {
return G_PATH + '/getJsp?jsp=common/' + url;
}
//.. web重构, 加载jsp页面时会自动加载其相应的js(如果有)
function getPlatformJspJsPath(url) {
return G_PATH + '/getJspJs?jsp=platform/' + url;
}
function getOrgJspJsPath(url) {
return G_PATH + '/getJspJs?jsp=org/' + url;
}
function getUserJspJsPath(url) {
return G_PATH + '/getJspJs?jsp=user/' + url;
}
function getCommonJspJsPath(url) {
return G_PATH + '/getJspJs?jsp=common/' + url;
}
/**
easyui validate
*/
$.extend($.fn.validatebox.defaults.rules, {
CHS: {
validator: function (value, param) {
return /^[\u0391-\uFFE5]+$/.test(value);
},
message: '请输入汉字'
},
ZIP: {
validator: function (value, param) {
return /^[1-9]\d{5}$/.test(value);
},
message: '邮政编码不存在'
},
QQ: {
validator: function (value, param) {
return /^[1-9]\d{4,10}$/.test(value);
},
message: 'QQ号码不正确'
},
mobile: {
validator: function (value, param) {
return /^13\d{9}$/g.test(value) || /^14\d{9}$/g.test(value) || (/^15[0-35-9]\d{8}$/g.test(value)) || (/^18[05-9]\d{8}$/g.test(value));
},
message: '手机号码不正确'
},
mobileOrPhone: {
validator: function (value, param) {
return /^([0-9]|\-)*$/.test(value);
},
message: '号码不正确'
},
loginName: {
validator: function (value, param) {
return /^[\u0391-\uFFE5\w]+$/.test(value);
},
message: '登录名称只允许汉字、英文字母、数字及下划线。'
},
safePassword: {
validator: function (value, param) {
if(value.length < 6) {
return false;
}
if(/[a-zA-Z]+/.test(value) && /[0-9]+/.test(value)/* && /\W+\D+/.test(string)*/) {
return true;
}
},
message: '密码由字母和数字组成至少6位'
},
equalTo: {
validator: function (value, param) {
return value == $(param[0]).val();
},
message: '两次输入的字符不一至'
},
number: {
validator: function (value, param) {
return /^\d*\.?\d*$/.test(value);
},
message: '请输入数字'
},
integer: {
validator: function (value, param) {
return /^\d+$/.test(value);
},
message: '请输入整数'
},
time: {
validator: function (value, param) {
if(/^\d+\:\d+$/.test(value)) {
var a = value.split(":");
if(a[0] > 23 || a[1] > 59) {
return false;
}
return true;
}
return false;
},
message: '请输入时间'
},
email: {
validator: function (value, param) {
var myreg = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/;
return myreg.test(value);
},
message: '请输入正确邮箱'
},
postalCode: {
validator: function (value, param) {
if(/^\d+$/.test(value)) {
if(value.length == 6) return true;
}
return false;
},
message: '请输入6位数字'
},
idcard: {
validator: function (value, param) {
return idCard(value);
},
message:'请输入正确的身份证号码'
},
maxLength: {
validator: function(value, param){
return value.length <= param[0];
},
message: '最多输入{0}个字符'
}
});
// var myDate = new Date();
// var date = myDate.format('yyyy-MM-dd hh:mm:ss');
Date.prototype.format = function(format)
{
var o =
{
"M+" : this.getMonth()+1, //month
"d+" : this.getDate(), //day
"h+" : this.getHours(), //hour
"m+" : this.getMinutes(), //minute
"s+" : this.getSeconds(), //second
"q+" : Math.floor((this.getMonth()+3)/3), //quarter
"S" : this.getMilliseconds() //millisecond
}
if(/(y+)/.test(format))
format=format.replace(RegExp.$1,(this.getFullYear()+"").substr(4 - RegExp.$1.length));
for(var k in o)
if(new RegExp("("+ k +")").test(format))
format = format.replace(RegExp.$1,RegExp.$1.length==1 ? o[k] : ("00"+ o[k]).substr((""+ o[k]).length));
return format;
}
function getCurrentTimestamp() {
var myDate = new Date();
return myDate.format('yyyy-MM-dd hh:mm:ss');
}
function getCurrentDate() {
var myDate = new Date();
return myDate.format('yyyy-MM-dd');
}
function getTomorrowDate() {
var myDate = new Date();
myDate.setDate(myDate.getDate()+1);
return myDate.format('yyyy-MM-dd');
}
function getEndTimestamp() {
return "2100-12-31 12:59:59";
}
function getEndDate() {
return "2100-12-31";
}
/**
* 是否为空
* 可判断任意类型string array
*/
function isEmpty(obj) {
if(!obj) {
return true;
}
if(isArray(obj)) {
if(obj.length == 0) {
return true;
}
}
return false;
}
/**
* Enter键触发点击事件
* @param btnId
*/
function enterPressSubmit(btnId) {
var theEvent = window.event || arguments.callee.caller.arguments[0];
if(theEvent.keyCode == 13||theEvent.keyCode == 108) {
$('#' + btnId).trigger('click');
}
}
/**
* Enter键触发点击事件
* @param btnId
*/
function enterPressSearch(func) {
var theEvent = window.event || arguments.callee.caller.arguments[0];
if(theEvent.keyCode == 13||theEvent.keyCode == 108) {
$('#' + btnId).click(func);
}
}
// 其它 在哪用到了?
/**
* 设置单个或者多个下拉列表的默认值id和value的个数必须一致即一一对应
* @param selectIds Array 下拉列表Id的数组比如['numId','numId2']
* @param values Array 要设置的值的数组比如['numId','numId2']
*/
function setSelectValues(selectIds,values){
if(selectIds.length == 1 && values.length == 1){
$('#' + selectIds).combobox('select', values);
}else if(selectIds.length>1 && values.length>1 && selectIds.length==values.length){
for(var i=0;i<selectIds.length;i++){
$('#' + selectIds[i]).combobox('select', values[i]);
}
}
}
/**
* 验证数字格式是否正确正确返回true反之false
* @param numberIds Array 输入框Id的数组比如['numId','numId2']
*/
function regIsNums(numberIds){
if(numberIds.length == 1){
var s = $("#" + numberIds).val();
if(!isNum(s)){
$("#" + numberIds).css("boreder","10px solid red");
msgAlert('info','numberNotCorrect','info');
return false;
}
}else if(numberIds.length > 1){
for(var i=0;i<numberIds.length;i++){
var s = $("#" + numberIds[i]).val();
if(!isNum(s)){
msgAlert('info','numberNotCorrect','info');
return false;
}
}
}
return true;
}
function isNum(num) {
reg = /^\d+$/;
reg2 = /^\d+.\d+$/;
return reg.test(num) || reg2.test(num);
}
/**
* 验证输入框是否是否为空不空返回true反之false
* @param inputIds Array 输入框Id的数组比如['rateTypeId','rateTypeId2']
*/
function checkInputIsNull(inputIds){
if(inputIds.length == 1){
var s = $("#" + inputIds).val();
if(s==null || s==""){
msgAlert('info','pageNotCorrect','info');
return false;
}
}else if(inputIds.length > 1){
for(var i=0;i<inputIds.length;i++){
var s = $("#" + inputIds[i]).val();
if(s==null || s==""){
msgAlert('info','pageNotCorrect','info');
return false;
}
}
}
return true;
}
/**
* 验证select下拉框是否选中
* @param selectIds Array 下拉框Id的数组比如['rateTypeId','rateTypeId2']
*/
function checkIsSelected(selectIds){
if(selectIds.length == 1){
var s = $("#" + selectIds).combobox('getValue');
if(s==null || s==""){
msgAlert('info','pageNotCorrect','info');
return false;
}
}else if(selectIds.length > 1){
for(var i=0;i<selectIds.length;i++){
var s = $("#" + selectIds[i]).combobox('getValue');
if(s==null || s==""){
msgAlert('info','pageNotCorrect','info');
return false;
}
}
}
return true;
}
// 与具体应用相关
/**
* 查询站点
* @param inputId 要显示站点名称的input
* @param valueId 要存储站点ID的input
*
* 用户添加/修改, 订单添加/修改
*/
function searchLocation(inputId, valueId) {
areaInputId = inputId;
areaValueId = valueId;
var areaName = $('#' + inputId).val();
var config = {
title: 'locationSearch',
width: 820,
height: 450,
href: G_PATH + '/getJsp?jsp=common/commom_window_area_name_search',
onLoad: function() {
initGrid('common_locationSearch', 'main', 'areaSearchGrid', {
fit: true,
singleSelect: true,
url: G_PATH + '/site/checkLocation',
queryParams: {areaName: areaName}
});
$("#areaSearchForm #areaName").val(areaName);
}
};
openWin(config, 'commonSearchLocationWin');
}
/**
* 查询设备组
* @param inputId 要显示设备组的input
* @param valueId 要存储设备组ID的input
*
* 用户添加/修改, 订单添加/修改
*/
var equipTeamInputId;
var equipTeamValueId;
function searchEquipTeam(inputId, valueId) {
equipTeamInputId = inputId;
equipTeamValueId = valueId;
var equipTeamName = $('#' + inputId).val();
var config = {
title: 'equipTeamSearch',
width: 820,
height: 450,
href: G_PATH + '/getJsp?jsp=common/equip/equip_list_window_search',
onLoad: function() {
$("#equipListSearchForm #equipListName").val(equipTeamName);
$('#searchEquipListBtn').click();
}
};
openWin(config, 'equipTeamSearchWin');
}
/**
* 合同线路 查询 出发地 目的地
*/
var areaAndLocationInputId;
var areaAndLocationValueId;
function searchAreaAndLocation(inputId, valueId) {
areaAndLocationInputId = inputId;
areaAndLocationValueId = valueId;
var areaName = $('#' + inputId).val();
var config = {
title: 'areaSearch',
width: 880,
height: 550,
href: G_PATH + '/getJsp?jsp=common/area/commom_window_area_search',
onLoad: function() {
}
};
openWin(config, 'areaSearchWin');
}
/**
* 承运商外部 组织 查询
*/
var carrierOrgInputId;
var carrierOrgValueId;
function searchCarrierOrgCommon(inputId, valueId) {
carrierOrgInputId = inputId;
carrierOrgValueId = valueId;
var orgName = $('#' + inputId).val();
var config = {
title: 'carrierOrgSearch',
width: 900,
height: 487,
href: G_PATH + '/orgCommon/searchCarrierOrgJsp'
};
openWin(config, 'searchCarrierOrgWin');
}
/**
* 客户 组织 查询
*/
var customerOrgInputId;
var customerOrgValueId;
function searchCustomerOrgCommon(inputId, valueId) {
customerOrgInputId = inputId;
customerOrgValueId = valueId;
var orgName = $('#' + inputId).val();
var config = {
title: 'customerOrgSearch',
width: 900,
height: 487,
href: G_PATH + '/orgCommon/searchCustomerOrgJsp'
};
openWin(config, 'searchCustomerOrgWin');
}
/**
* 承运商(内部) 组织 查询
*/
var carrierInnerOrgInputId;
var carrierInnerOrgValueId;
function searchCarrierInnerOrgCommon(inputId, valueId) {
carrierInnerOrgInputId = inputId;
carrierInnerOrgValueId = valueId;
var config = {
title: 'carrierOrgSearch',
width: 900,
height: 487,
href: G_PATH + '/orgCommon/searchCarrierInnerOrgJsp'
};
openWin(config, 'searchCarrierInnerOrgWin');
}
/**
* 组织分组 查询
*/
var memberListInputId;
var memberListValueId;
function searchMemberListCommon(inputId, valueId) {
memberListInputId = inputId;
memberListValueId = valueId;
var orgName = $('#' + inputId).val();
var config = {
title: 'searchMemberList',
width: 900,
height: 487,
href:G_PATH + '/getJsp?jsp=common/memberlist/org_layout_center_searchMemberlist'
};
openWin(config, 'searchMemberListWin');
}
var orgInputId;
var orgValueId;
function searchOrg(inputId, valueId) {
orgInputId = inputId;
orgValueId = valueId;
var orgName = $('#' + inputId).val();
var config = {
title: 'orgSearch',
width: 900,
height: 450,
href: G_PATH + '/getJsp?jsp=common/org/org_window_search',
onLoad: function() {
initGrid('orgSearch', 'main', 'orgSearchGrid', {
fit: true,
singleSelect: true,
url: G_PATH + '/orgCommon/searchOrg'
});
//$("#areaSearchForm #areaName").val(areaName);
}
};
openWin(config, 'orgSearchWin');
}
var fcOrgInputId;
var fcOrgValueId;
function searchFCOrg(inputId, valueId) {
fcOrgInputId = inputId;
fcOrgValueId = valueId;
var orgName = $('#' + inputId).val();
var config = {
title: 'orgSearch',
width: 900,
height: 450,
href: G_PATH + '/getJsp?jsp=common/org/org_window_searchFcOrg',
onLoad: function() {
initGrid('orgSearch', 'main', 'orgSearchGrid', {
fit: true,
singleSelect: true,
url: G_PATH + '/orgCommon/searchFCOrg'
});
//$("#areaSearchForm #areaName").val(areaName);
}
};
openWin(config, 'fcOrgSearchWin');
}
/**
* 通用添加分段费率
*/
var selectedShipmentAttribTypeId;
var selectedUomId;
var breakTemplateCommonId;
var breakTemplateCommonName;
var showBreakTemplate;
function searchBreakTemplateCommon(shipmentAttribTypeId, uomId,breakTemplateName,breakTemplateId,showFunc) {
selectedShipmentAttribTypeId = shipmentAttribTypeId;
selectedUomId = uomId;
breakTemplateCommonName=breakTemplateName;
breakTemplateCommonId=breakTemplateId;
showBreakTemplate=showFunc;
var config = {
title: 'createBreakTemplate',
width: 990,
height: 555,
href: G_PATH + '/getJsp?jsp=org/breakTemplate/common_breakTemplate_search',
onLoad:function(){
initGrid('contract', 'addBreakTemplate', 'breakCostInfo', {
fit:true,
afterLoad: function() {
}
});
}
};
openWin(config, 'searchBreakTemplateCommonWin');
}
var simpleOrgInputId;
var simpleOrgValueId;
function searchOriginSimpleOrg(inputId,valueId) {
simpleOrgInputId = inputId;
simpleOrgValueId = valueId;
var winWidth = getWinWidth(9, 950);
var config = {
title: 'orgNews',
width: winWidth,
height: 450,
href: G_PATH + '/getJsp?jsp=common/org/user_window_origin_org_simpleInfo_search'
};
openWin(config, 'originOrgSimpleInfoWin');
}
function searchDestSimpleOrg(inputId,valueId) {
simpleOrgInputId = inputId;
simpleOrgValueId = valueId;
var winWidth = getWinWidth(9, 850);
var config = {
title: 'orgNews',
width: winWidth,
height: 450,
href: G_PATH + '/getJsp?jsp=common/org/user_window_dest_org_simpleInfo_search'
};
openWin(config, 'destOrgSimpleInfoWin');
}
/**
* 得到状态描述
* @param activeFlag
* @returns
*/
function getActiveFlagDesc(activeFlag) {
return activeFlag ? getText('activeFlagOn') : getText('activeFlagOff');
}
/**
* 判断浏览器
*/
function judgeNav() {
var nav = {};
var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串
nav.isOpera = userAgent.indexOf("Opera") > -1; //判断是否Opera
nav.isMaxthon = userAgent.indexOf("Maxthon") > -1 ; //判断是否傲游3.0
nav.isIE = userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1 && !nav.isOpera ; //判断是否IE
nav.isFF = userAgent.indexOf("Firefox") > -1 ; //判断是否Firefox
nav.isSafari = userAgent.indexOf("Safari") > -1 && userAgent.indexOf("Chrome") < 1 ; //判断是否Safari
nav.isChrome = userAgent.indexOf("Chrome") > -1 ; //判断是否Chrome
return nav;
}
/**
* 得到rows的ids
* @param rows
* @param pk
* @returns {Array}
*/
function getIds(rows, pk) {
var ids = new Array();
for( var i = 0; i < rows.length; ++i) {
ids.push(rows[i][pk]);
}
return ids;
}
/**
* 查看帮助
* @Depreciated
*/
function viewManual(tag) {
if(!tag) {
return;
}
var config = {
title : 'viewManual',
width : 800,
height : 600,
href : G_PATH + "/manual/viewManual?tag=" + tag
};
openWin(config, 'viewManual');
}
/**
* 搜索并刷新grid
* @param formId
* @param tableId
* @param url
*/
function searchReloadGrid(formId, tableId, url, extData) {
if(!tableId) {
tableId = "mainGrid";
}
var data = getFormJsonData(formId);
$.extend(data, extData);
loadGrid(tableId, data, url);
}
function clearHiddenId(name,id) {
var value=$("#"+name).val();
if(!value){
log(value);
$("#"+id).val("");
}
}
// 重构 -----------------
// 是否是数组
function isArray(obj) {
return Object.prototype.toString.call(obj) === '[object Array]';
}
/**
* 得到深层次值
* @param row
* @param name a.b.c
* @returns
*/
function getDeepValue(row, name) {
if(!name) {
return null;
}
var nameArr = name.split('.');
if(!nameArr || nameArr.length == 0) {
return null;
}
/*
if(nameArr.length == 1) {
return row[name];
}
return _getDeepValue(row, nameArr);
*/
// 循环版
var curData = row;
for(var i = 0; i < nameArr.length; ++i) {
var key = nameArr[i];
if(i == nameArr.length - 1) {
return curData[key];
}
if(!curData[key]) {
return null;
}
curData = curData[key];
}
}
// 深层次解析
function _getDeepValue(row, fieldArr, index) {
if(!index) {
index = 0;
}
if(row[fieldArr[index]]) {
if(index == fieldArr.length - 1) {
// 到最后了
return row[fieldArr[index]];
} else {
// 递归下一位
return _getDeepValue(row[fieldArr[index]], fieldArr, index+1);
}
}
return null;
}
/**
* 设置表单值
* @param formId
* @param row
*/
function setForm(formId, row) {
if(!formId || !row) {
return;
}
var parent = "#" + formId + " ";
// input[type='text']
$(parent + "input[type='text'] ," + parent + "input[type='hidden']").each(function() {
var name = $(this).attr("name");
if(name) {
$(this).val(getDeepValue(row, name));
}
});
// input[type="radio"]
var hasSetRaioNames = {}; // 已经设置过的 radio name
$(parent + "input[type='radio']").each(function() {
var name = $(this).attr("name");
if(name && !hasSetRaioNames[name]) {
var val = getDeepValue(row, name);
if(typeof val == "boolean") {
val = val ? 1 : 0;
}
$(parent + " input[name='" + name + "'][value='" + val + "']").attr("checked", "checked");
hasSetRaioNames[name] = true;
}
});
// input[type="checkbox"]
$(parent + "input[type='checkbox']").each(function() {
var name = $(this).attr("name");
if(name) {
var val = getDeepValue(row, name);
if(isArray(val)) {
for(var i = 0; i < val.length; ++i) {
$(parent + " input[name='" + name + "'][value='" + val[i] + "']").attr("checked", "checked");
}
} else {
$(parent + " input[name='" + name + "'][value='" + val + "']").attr("checked", "checked");
}
}
});
// 以下datebox, datetimebox以后会弃用全部采用my97
// datebox
$(parent + "input.easyui-datebox").each(function() {
var name = $(this).attr("comboname") || $(this).attr("name");
if(name) {
var val = getDeepValue(row, name);
if(val) {
val = getDate(val);
var id = $(this).attr("id");
$("#" + id).datebox({value: val});
}
}
});
// datetimebox
$(parent + "input.easyui-datetimebox").each(function() {
var name = $(this).attr("comboname") || $(this).attr("name");
if(name) {
var val = getDeepValue(row, name);
if(val) {
var id = $(this).attr("id");
$("#" + id).datetimebox({value: val});
}
}
});
// my97日期时间控件
// <dk:date name="a"/>
$(parent + "input.Wdate").each(function() {
var name = $(this).attr("name");
if(name) {
var val = getDeepValue(row, name);
if(!val) {
return;
}
var viewType = $(this).attr("viewType");
if(viewType == "date") {
val = transeToDate(val);
} else if(viewType == "time") {
val = transeToTime(val);
}
if(val) {
$(this).val(val);
}
}
});
// textarea
$(parent + "textarea").each(function() {
var name = $(this).attr("name");
if(name) {
$(this).val(getDeepValue(row, name));
}
});
// combobox
$(parent + "select.easyui-combobox").each(function() {
var name = $(this).attr("comboname") || $(this).attr("name");
if(name) {
setCombobox($(this).attr("id"), getDeepValue(row, name), formId);
}
});
// timespinner
$(parent + "input.easyui-timespinner").each(function() {
var name = $(this).attr("comboname") || $(this).attr("name");
if(name) {
var val = getDeepValue(row, name);
if(val) {
var id = $(this).attr("id");
$("#" + id).timespinner({value: val});
}
}
});
/* // input[type='hidden']
$(parent + "input[type='hidden'] ") .each(function() {
var name = $(this).attr("name");
if(name) {
$(this).val(getDeepValue(row, name));
}
});*/
}
/**
* 更深层次解析
* 如果是date查看属性dbType
*
* needValidateForm 需要验证表单
*/
function getFormDeepJsonData(formId, needValidateForm) {
if(needValidateForm) {
if(!$("#" + formId).valid()){
return false;
}
}
var data = getFormJsonData(formId);
if(!data) {
return null;
}
return transToDeepJsonData(data);
}
/**
* 将普通的没有层次的json数据转成有层次的数据
* data = {'a.b.c': "xx", 'a.b.d': 'kk', 'b.c': 'll'};
* => data = {a: {b:{c:"xx"}}}
*/
function transToDeepJsonData(data) {
if(!data) {
return null;
}
function extendData(data, keyArr, val, index) {
if(!index) {
index = 0;
}
var curKey = keyArr[index];
if(index == keyArr.length - 1) {
data[curKey] = val;
return;
}
if(!data[curKey]) {
data[curKey] = {};
}
extendData(data[curKey], keyArr, val, index + 1);
}
// data = {'a.b.c': "life", 'a.b.d': "xx"}
var data2 = {};
for(var key in data) {
var keyArr = key.split('.');
if(!keyArr || keyArr.length <= 0) {
continue;
}
if(keyArr.length == 1) {
data2[key] = data[key];
}
extendData(data2, keyArr, data[key], 0);
}
return data2;
}
/**
* 得到date值, date, datetime
* 会判断dbType转化
* @param id
* @returns
*/
function getDateValue(id, parent) {
var obj;
if(parent) {
obj = $("#" + parent + " #" + id);
} else {
obj = $("#" + id);
}
var val = $(obj).val();
if(!val) {
return null;
}
var viewType = $(obj).attr("viewType");
var dbType = $(obj).attr("dbType");
if(viewType == dbType) {
return val;
}
if(viewType == "date" && dbType == "datetime") {
return val + " 00:00:00";
}
}
// 设置日期
function setDateValue(id, val) {
if(typeof id != "object") {
id = $("#" + id);
}
var viewType = $(id).attr("viewType");
if(viewType == "date") {
val = transeToDate(val);
} else if(viewType == "time") {
val = transeToTime(val);
}
if(val) {
$(id).val(val);
}
}
// 将2012-12-12 12:12:12分隔出2012-12-12
function transeToDate(dateTime) {
var dateTimeArr = dateTime.split(' ');
if(dateTimeArr && dateTimeArr.length > 0) {
return dateTimeArr[0];
}
return dateTime;
}
// 将2012-12-12 12:12:12分隔出12:12:12
function transeToTime(dateTime) {
// 如果是datetime格式的
var dateTimeArr = dateTime.split(' ');
if(dateTimeArr && dateTimeArr.length > 1) {
return dateTimeArr[1];
}
// 如果是12:12:12格式的
return dateTime;
}
// 设置信息 idDesc没有controller还未测
// <span id="a.b" class="info" data-options="type:'date', source:'a.b'"/></span>
// <span id="a.dddb" class="info" data-options="type:'constant', source:'d', typeValue:'snsRoles'"/></span>
// <span id="c" class="info" data-options="type:'datetime', source:'modelName'"/></span>
// <span id="d" class="info" data-options="type:'idDesc', typeValue:'org/getOrgNames'"/></span>
// <span id="resizable" class="info" data-options="type:'boolean', typeValue:'yes,no'"/></span>
// <span id="f" class="info" data-options="type:'combine', typeValue:'{modelName}-{modelType}-{d}'"/></span>
// <span id="f" class="info" data-options="type:'address', typeValue:'{country}-{region}-{city}', source:'addressPartyInfo'"/></span>
function setInfo(parentId, row) {
if(!parentId) {
return;
}
// 找到所有的
$("#" + parentId + " .info").each(function() {
setValueOrInfo(this, row);
});
}
// 设置input, span信息
function setValueOrInfo(idOrgObjOrArr, row) {
var obj = idOrgObjOrArr;
if(isArray(obj)) {
for(var i = 0; i < obj.length; ++i) {
setValueOrInfo(obj[i], row);
}
return;
} else if(typeof obj == "object") {
obj = $(obj);
} else {
// <span id=""> <input id="" />
obj = $("#" + obj);
}
if($(obj).is("input") || $(obj).is("textarea")) {
var setValue = function(value) {
obj.val(value);
}
} else {
var setValue = function(value) {
obj.html(value);
}
}
var id = obj.attr("id");
var dataOptions = obj.attr("data-options");
if(!dataOptions) {
dataOptions = {};
} else {
try {
dataOptions = eval("({" + dataOptions + "})");
} catch(e) {
alert(dataOptions + " 有误无法解析成Json, 少了单引号?");
return;
}
}
// 数据源
var source = dataOptions['source'] || obj.attr("name") || id;
if(!source) {
return;
}
// 组合描述
function combineDescs(types, ids) {
if(!types || !ids) {
return;
}
var descs = "";
for(var i = 0; i < ids.length; ++i) {
descs += types[ids[i]];
if(i != ids.length - 1) {
descs += G_CONFIG['split'];
}
}
return descs;
}
var type = dataOptions.type;
var typeValue = dataOptions.typeValue;
// 只有conbine类型不需要数据源
var val = getDeepValue(row, source);
if(val == undefined && type != "combine") {
return;
}
if(!type) {
setValue(val);
} else if(type == 'datetime') {
setValue(val);
} else if(type == 'date') {
setValue(transeToDate(val));
} else if(type == 'time') {
setValue(transeToTime(val));
} else if(type == 'boolean') {
var options = typeValue.split(","); // yes,no
if(!options || options.length <= 1) {
return;
}
setValue(val ? getText($.trim(options[0])) : getText($.trim(options[1])));
} else if(type == 'constant') {
if(!typeValue) {
return;
}
// 常量,需要异步
// 异步加载
getTypes(typeValue, function(types) {
if(isArray(val)) {
setValue(combineDescs(types, val));
} else {
setValue(types[val]);
}
});
} else if(type == 'idDesc') {
if(!typeValue) {
return;
}
// id转decs, 需要异步先把所有的controller收集
// {controller: "", target: that, ids: []}
if(dk.cache[typeValue] && dk.cache[typeValue][val]) {
setValue(dk.cache[typeValue][val]);
} else {
ajaxPost(G_PATH + '/' + typeValue, {ids: [val]}, function(ret) {
// 数据缓存起来
if(!dk.cache[typeValue]) {
dk.cache[typeValue] = {}
}
$.extend(dk.cache[typeValue], ret);
setValue(dk.cache[typeValue][val]);
}, '', false);
}
} else if(type == 'combine') {
if(!typeValue) {
return;
}
// 组合类型 {a.b}-{c}-{d}
var fieldArr = typeValue.match(/\{.+?\}/g);
if(!fieldArr) {
return;
}
var fieldArr2 = [];
for(var i = 0; i < fieldArr.length; ++i) {
if(fieldArr[i].length < 3) { // 至少{a}
continue;
}
fieldArr2.push(fieldArr[i].substr(1, fieldArr[i].length - 2));
}
if(fieldArr2.length == 0) {
return;
}
function contactValue(row, typeValue, fieldArr2) {
for(var i = 0; i < fieldArr2.length; ++i) {
var str = getDeepValue(row, fieldArr2[i]);
if(!str) {
str = "";
}
// 替换
typeValue = typeValue.replace("{" + fieldArr2[i] + "}", str);
}
return typeValue;
}
setValue(contactValue(row, typeValue, fieldArr2));
} else if(type = "address") {
// 地址组合
if(!typeValue) {
return;
}
var addressInfo = getDeepValue(row, source);
if(!addressInfo) {
return;
}
var address = "";
var ajaxData = {};
var needAjax = false;
var names = {
country: '',
region: '',
city: '',
town: ''
}
// 收集要发送请求的id
if(addressInfo.countryId && typeValue.indexOf("country")) {
if(dk.cache.countries[addressInfo.countryId]) {
names['country'] = dk.cache.countries[addressInfo.countryId];
} else {
ajaxData['countryId'] = addressInfo.countryId;
needAjax = true;
}
}
if(addressInfo.regionId && typeValue.indexOf("region")) {
if(dk.cache.regions[addressInfo.regionId]) {
names['region'] = dk.cache.regions[addressInfo.regionId];
} else {
ajaxData['regionId'] = addressInfo.regionId;
needAjax = true;
}
}
if(addressInfo.cityId && typeValue.indexOf("city")) {
if(dk.cache.cities[addressInfo.cityId]) {
names['city'] = dk.cache.cities[addressInfo.cityId];
} else {
ajaxData['cityId'] = addressInfo.cityId;
needAjax = true;
}
}
if(addressInfo.townId && typeValue.indexOf("town")) {
if(dk.cache.towns[addressInfo.townId]) {
names['town'] = dk.cache.towns[addressInfo.townId];
} else {
ajaxData['townId'] = addressInfo.townId;
needAjax = true;
}
}
// ajax取
if(needAjax) {
ajaxGet(G_PATH + "/desc/getAddress", ajaxData, function(ret) {
$.extend(names, ret);
// 保存到cache中
if(ajaxData['countryId']) {
dk.cache.countries[ajaxData['countryId']] = names['country'];
}
if(ajaxData['regionId']) {
dk.cache.regions[ajaxData['regionId']] = names['region'];
}
if(ajaxData['cityId']) {
dk.cache.cities[ajaxData['cityId']] = names['city'];
}
if(ajaxData['townId']) {
dk.cache.towns[ajaxData['townId']] = names['town'];
}
renderAddress();
}, '', false);
} else {
renderAddress();
}
function renderAddress() {
if(typeValue.indexOf("country")) {
typeValue = typeValue.replace("{country}", names.country || "");
}
if(typeValue.indexOf("region")) {
typeValue = typeValue.replace("{region}", names.region || "");
}
if(typeValue.indexOf("city")) {
typeValue = typeValue.replace("{city}", names.city || "");
}
if(typeValue.indexOf("town")) {
typeValue = typeValue.replace("{town}", names.town || "");
}
for(var j = 1; j <= 4; ++j) {
var street = "street" + j;
if(typeValue.indexOf(street)) {
var desc = addressInfo[street] || "";
typeValue = typeValue.replace("{" + street + "}", desc);
}
}
setValue(typeValue);
}
}
}
/**
* 自动将表单的数据解析成有层次的Json数据提交
* @param formId
* @param formDataFunc
* @param successFunc
* @param failureFunc
* @param hasProgress
*/
function formSubmitDeepJson(formId, url, formDataFunc, successFunc, failureFunc, hasProgress) {
hasProgress = hasProgress == undefined ? true : hasProgress;
if(hasProgress) {
showProgress('info', 'processing');
}
var formId2 = $('#' + formId);
initValidator(formId);
var isValid = valid(formId); // 验证数据, 用jQuery validation
if(!isValid) {
hideProgress();
// msgAlert("info", "inputError", "info");
return;
}
// 得到form Json数据
var formData = getFormDeepJsonData(formId); // 这里这之前是getFormJsonData();
if(typeof formDataFunc == 'function') {
formData = formDataFunc(formData);
}
$.ajax({
url : url,
type : "POST",
contentType: "application/json; charset=utf-8",
datatype: "json",
data : JSON.stringify(formData),
success : function(data, stats) {
_ajaxCallback(data, successFunc, failureFunc);
if(hasProgress) {
hideProgress();
}
},
error: function(ret) {
_ajaxCallback(ret, successFunc, failureFunc);
if(hasProgress) {
hideProgress();
}
}
});
}
/**
* 与formSubmit()不同的是验证采用jQuery validation
* 取的是json数据
* 显示传递url
* @param formId
* @param formDataFunc
* @param successFunc
* @param failureFunc
* @param hasProgress
*/
function formSubmit2(formId, url, formDataFunc, successFunc, failureFunc, hasProgress) {
hasProgress = hasProgress == undefined ? true : hasProgress;
if(hasProgress) {
showProgress('info', 'processing');
}
var formId2 = $('#' + formId);
// initValidator(formId);
var isValid = valid(formId); // 验证数据, 用jQuery validation
if(!isValid) {
hideProgress();
// msgAlert("info", "inputError", "info");
return;
}
var formData = getFormJsonData(formId);
if(typeof formDataFunc == 'function') {
formData = formDataFunc(formData);
}
ajaxPost(url, formData, function(ret) {
_ajaxCallback(ret, successFunc, failureFunc);
hideProgress();
});
}
// jquery validate
/* :
required Makes the element required.
remote Requests a resource to check the element for validity.
minlength Makes the element require a given minimum length.
maxlength Makes the element require a given maxmimum length.
rangelength Makes the element require a given value range.
min Makes the element require a given minimum.
max Makes the element require a given maximum.
range Makes the element require a given value range.
email Makes the element require a valid email
url Makes the element require a valid url
date Makes the element require a date.
dateISO Makes the element require a ISO date.
number Makes the element require a decimal number.
digits Makes the element require digits only.
creditcard Makes the element require a creditcard number.
equalTo Requires the element to be the same as another one
*/
if($.validator) {
$.validator.setDefaults({
submitHandler: function() { alert("submitted!"); },
errorPlacement: function(error, element) {
var parent = element.parent();
if(parent.is(".each-chk")) { // dk:checkboxcheckbox与 label是一对
parent = parent.parent();
} else if(element.is(".combo-value")) {
parent = parent.parent();
}
error.appendTo(parent);
},
debug: true,
ignore: "" // 隐藏表单也要验证
});
$.validator.addMethod("comboboxRequired", function(value, element) {
var value = $(element).val();
if(!value) {
return false;
}
return true;
}, "必选项");
$.validator.addMethod("minSelect", function(value, element, param) {
var length = $.isArray( value ) ? value.length : this.getLength($.trim(value), element);
return this.optional(element) || length >= param;
}, $.validator.format("至少选择 {0} 项"));
//Double 数据库小数点后最多三位
$.validator.addMethod("double", function(value, element, param) {
if(value!=null && value!=""){
var array=value.split(".");
if(array.length>2){
return false;
}else if(array.length==2) {
if(array[1].length>param){
return false;
}
}
}
return true;
}, $.validator.format("小数点后最多 {0} 位"));
}
/**
* 初始化验证器
* @param formId
* @param isId 默认为true
*/
function initValidator(formId, isId) {
if(isId == undefined) {
isId = true;
}
if(isId) {
$("#" + formId).validate();
} else {
$(formId).validate();
}
}
// 验证
function valid(formId, isId) {
if(isId == undefined) {
isId = true;
}
if(isId) {
return $("#" + formId).valid();
} else {
return $(formId).valid();
}
}
// autocomplete
/**
原生用法
$("#auto").autocomplete(G_PATH + "/tips/searchOrg", {
minChars: 2,
width: 230,
matchContains: false,
autoFill: false,
dataType: 'json', // 返回的数据类型为JSON类型
parse: function(data) { // 解释返回的数据,把其存在数组里
var rows = data.rows;
var parsed = [];
for (var i = 0; i < rows.length; i++) {
var row = rows[i];
parsed[i] = {
data: row, // 数据行
value: row.orgId, // 存储的结果
result: row.orgName + "(" + row.account +")" // 显示到表单
};
}
return parsed;
},
// 显示到选项列表
formatItem: function(row, i, max) {
return row.orgName + "(" + row.account + ")";
}
}).result(function(event, row, formatted) {
// 把结果存在某个地方
log(row.orgId);
});
// 示例
initAutocomplete("auto", G_PATH + "/tips/searchOrg", {
valueKey: "orgId", // 要得到的值的key
targetInputId: "orgIdHidden", // 存储选中值的inputId <input type="hidden" id="xx" /> 也可以不要,自动给你生成一个
formatResult: function(row) { // 用户选中一条数据后,显示在表单里
return row.orgName + "(" + row.account +")";
},
formatItem: function(row) { // 列表显示
return row.orgName + "(" + row.account + ")";
}
});
initAutocomplete("auto", G_PATH + "/tips/searchOrg", {
valueKey: "orgId",
controller: 'desc/get',
itemKeys: ["orgName", "account"],
resultKeys: ["orgName", "account"]
});
*/
dk.autocomplete = {}; // 定义id与targerId映射
function initAutocomplete(id, url, userConfig) {
// userConfig['formatResult'] = userConfig['formatResult'] || userConfig['formatItem'];
// userConfig['formatItem'] = userConfig['formatItem'] || userConfig['formatResult'];
var config = {
id: id,
minChars: 2,
width: 230,
matchContains: false,
autoFill: false,
dataType: 'json', // 返回的数据类型为JSON类型
delimiter: ' ', // 分隔符
itemKeys: [], // 列表显示的字段
resultKeys: [] // 选中一条数据后在input里要显示的字段
};
$.extend(config, userConfig);
// 是否已定义把值放在的input
// 没有,则插入一个
if(!config['targetInputId']) {
var hiddenInputId = id + "_hidden_input";
config['targetInputId'] = hiddenInputId;
var name = $("#" + id).attr('name') || id;
$("#" + id).attr("name", name + "_raw_input");
$("#" + id).parent().append('<input type="hidden" name="' + name + '" id="' + hiddenInputId + '"/>');
}
// 是否需要通过listKeys, resultKeys来建立
if(typeof config['formatResult'] != "function") {
if(!isArray(config['resultKeys']) || config['resultKeys'].length == 0) {
log("config['resultKeys'] 未定义或formatResult方法未定义");
return;
}
config['formatResult'] = function(row) {
var str = "";
for(var i = 0; i < config['resultKeys'].length; ++i) {
var key = config['resultKeys'][i];
if(!row[key]) {
continue;
}
str += row[key];
if(i != config['resultKeys'].length - 1) {
str += config['delimiter'];
}
}
return str;
};
}
if(typeof config['formatItem'] != "function") {
if(!isArray(config['itemKeys']) || config['itemKeys'].length == 0) {
log("config['itemKeys'] 未定义或formatItem方法未定义");
return;
}
config['formatItem'] = function(row) {
var str = "";
for(var i = 0; i < config['itemKeys'].length; ++i) {
var key = config['itemKeys'][i];
str += row[key];
if(i != config['itemKeys'].length - 1) {
str += config['delimiter'];
}
}
return str;
};
}
// parse
var valueKey = config['valueKey'];
if(!config['parse']) {
if(!valueKey) {
return;
}
config.parse = function(rows) { // 解释返回的数据,把其存在数组里
if(!rows || !isArray(rows)) {
return null;
}
var parsed = [];
for (var i = 0; i < rows.length; i++) {
var row = rows[i];
parsed[i] = {
data: row, // 数据行
value: row[valueKey], // 存储的结果
result: config['formatResult'](row)// 显示到表单
};
}
return parsed;
};
}
// 建立映射,可以得到值
dk.autocomplete[id] = config;
$("#" + id).autocomplete(url, config).result(function(event, row, formatted) {
$("#" + config.targetInputId).val(row[valueKey]);
});
}
/**
* 得到autocomplete值
* @param id autocomplete ID不是targerInputId
* @returns
*/
function getAutocompleteValue(id) {
if(!dk.autocomplete[id] || !dk.autocomplete[id]['targetInputId']) {
return null;
}
return $("#" + dk.autocomplete[id]['targetInputId']).val();
}
/**
* 设置值
* @param row
* @returns
*/
function setAutocompleteValue(id, row) {
if(!dk.autocomplete[id] || !dk.autocomplete[id]['targetInputId']) {
return null;
}
var config = dk.autocomplete[id];
if(!config) {
return;
}
var result = config['formatResult'](row);
var value = row[config['valueKey']];
log(result==undefined);
if(!result||result==undefined) {
//log(result);
// 需要通过controller来取?
if(config.controller) {
ajaxGet(G_PATH + "/" + config.controller, {ids: [value]}, function(ret) {
$("#" + id).val(ret[value]);
}, "", false);
}
}
$("#" + id).val(result);
$("#" + config.targetInputId).val(value);
return true;
}
// log 日志
function log(o) {
if(window.console) {
console.log(o);
}
}
// 刷新单元格
// rowNum从0开始
function refreshCell(tableId, field, rowNum, val) {
var target = $('#' + tableId).parent().children().find('tr[datagrid-row-index="' + rowNum + '"] td[field="' + field + '"] div');
if(target) {
target.html(val);
}
}
//searchFlag 为指定的 结算类型查询controller 方法的 的url
var commonPaymentItemTypeName;
var commonPaymentItemTypeId;
var commonPaymentItemTypeFlag;
var searchPaymentItemFunc;
function searchPaymentItemType(paymentItemTypeName,paymentItemTypeId,searchFlag,func){
commonPaymentItemTypeName=paymentItemTypeName;
commonPaymentItemTypeId=paymentItemTypeId;
commonPaymentItemTypeFlag=searchFlag;
searchPaymentItemFunc=func;
var config = {
title: 'searchPaymentItemType',
width: 900,
height: 487,
href:getCommonPath('paymentItemType/common_paymentItemType_search')
};
openWin(config, 'searchPaymentItemTypeWin');
}
// theme
function getThemeTypeId(themeName) {
// themeName是css文件名, typeId是存数据库中的
for(var themeTypeId in G_USER['themeTypeId2ThemeName']) {
if(themeName2ThemeTypeId[themeTypeId] == themeName) {
return themeTypeId;
}
}
return "";
}
// 根据themeTypeId得到themeName
function getThemeName(themeTypeId) {
return G_USER['themeTypeId2ThemeName'][themeTypeId];
}