var WinParam=parent.WinParam;
if(IsBlank(WinParam)){WinParam={};}
//var saveData={};
var dgDataFiter={};//保存本页dg的筛选数据
var noGrildData_Y={ total: 0, rows: [] };
var precision=2;//小数显示的精度
var Model=GetUrl('Model');//模式
var CallBack=function(doc){//回调函数
var fun=GetUrl('Fun');
if(!IsBlank(fun)) return eval('parent.'+fun+'(doc)');
};
/**
* 弹窗的默认设置
* 格式{p:'UserPassword',w:400,h:300,icon:'icon-tip'}
*/
var mm=[];
//自定义验证规则
/*$.extend($.fn.validatebox.defaults.rules, {
Len: {
validator: function(value,param){
return (value.length >= param[0])&&(value.length <= param[1])
},
message: '限定{0}至{1}个字数'
},
LenMin: {
validator: function(value,param){
return value.length >= param[0]
},
message: '至少输入{0}个字数'
},
LenMax: {
validator: function(value,param){
return value.length <= param[0]
},
message: '不能超过{0}个字数'
}
});*/
//格式化日期编辑器
function datebox_formatter(date){
var y = date.getFullYear();
var m = date.getMonth()+1;
var d = date.getDate();
return y+'-'+(m<10?('0'+m):m)+'-'+(d<10?('0'+d):d);
}
//重析日期编辑器值
function datebox_parser(s){
if (!s) return new Date();
var ss = (s.split('-'));
var y = parseInt(ss[0],10);
var m = parseInt(ss[1],10);
var d = parseInt(ss[2],10);
if (!isNaN(y) && !isNaN(m) && !isNaN(d)){
return new Date(y,m-1,d);
} else {
return new Date();
}
}
//初始化为日期选择框
function setDateBox(Uid){
//var r=arguments[2];//必填
var fun=arguments[2];//返回函数
if(typeof(r)!='boolean')r=false;
$('#'+Uid).datebox({
//required:r,
prompt:arguments[1],//空时提示文
editable:false,
formatter:datebox_formatter,
parser:datebox_parser,
buttons:[{
text: '{Today}',
handler: function(target){
var d=new Day().str('yyyy-MM-dd');
$(target).combo('setValue',d).combo("setText",d);
$(target).combo("hidePanel");
}
},{
text: '{pClear}',
handler: function(target){
$(target).combo('setValue','').combo("setText",'');
$(target).combo("hidePanel");
}
}],
HidePanel:function(){
if(IsBlank(fun))return;//没返回函数
fun($(this).combo('getValue'));
}
});
}
//从数据字典生成下拉框选项
function getCategory(type){
var Uid=arguments[1];
var r=[];
if(type=='EmpType'){
if(IsBlank(Uid))Uid='20160619173439830eks';
r=JsonByAjax({Action:"CategoryList",Params:{where:"Parent='"+Uid+"'"}}).rows;
}
return r
}
/*//下拉框获取主档
function setCombo(param){
var Uid=param.Uid;
var type=param.type;
var where=param.where;
var ms=param.ms;
var fun=param.fun;
var title=param.title;
var HidePanel=function(){
if(IsBlank(fun))return;//没返回函数
fun($(this).combogrid('grid').datagrid('getSelections'));
}
if(typeof(ms)!='boolean')ms=false;
if(type=='AffItem'){
var rs=JsonByAjax({Action:'ArrairItem',Params:where}).rows
for(var i=0;i<rs.length;i++)rs[i].filter=rs[i].AffairItem+rs[i].AffairRemark;
$('#'+Uid).combogrid({
panelWidth:300,panelHeight:200,fitColumns:true,autoRowHeight:false,remoteSort:false,multiple:ms,prompt:title,idField:'AffairItem',textField:'AffairItem',data:rs,
columns: [[
{field:'AffairItem',title:'{AffairItem}',width:20,halign:'center',align:'left'},
{field:'AffairRemark',title:'{AffairRemark}',width:30,halign:'center',align:'left'}
]],
onHidePanel:HidePanel
});
}
if(type=='FinItem'){
var rs=JsonByAjax({Action:'FinanceItem',Params:where}).rows;
for(var i=0;i<rs.length;i++)rs[i].filter=rs[i].FinanceItem+rs[i].FinanceParent;
$('#'+Uid).combogrid({
panelWidth:250,panelHeight:200,prompt:title,fitColumns:true,autoRowHeight:false,remoteSort:false,multiple:ms,idField:'FinanceItem',textField:'FinanceItem',data:rs,
filter: function(q, row){return row.filter.indexOf(q)>=0;},//var opts = $(this).combogrid('options');
columns: [[
{field:'FinanceParent',title:'{FinanceParent}',width:10,halign:'center',align:'left'},
{field:'FinanceItem',title:'{FinanceItem}',width:30,halign:'center',align:'left'}
]],
onHidePanel:HidePanel
});
}
if(type=='Employee'){
var rs=JsonByAjax({Action:'EmployeeList',Params:where}).rows;
for(var i=0;i<rs.length;i++)rs[i].filter=rs[i].Code+rs[i].Text+rs[i].Telephone;
$('#'+Uid).combogrid({
panelWidth:300,panelHeight:200,prompt:title,fitColumns:true,autoRowHeight:false,remoteSort:false,multiple:ms,idField:'Uid',textField:'Text',data:rs,
filter: function(q, row){return row.filter.indexOf(q)>=0;},
columns: [[
{field:'Text',title:'{Text}',width:30,align:'center',sortable:true},
{field:'Code',title:'{Code}',width:30,align:'center',sortable:true},
{field:'Sex',title:'{Sex}',width:10,align:'center',sortable:true},
{field:'Telephone',title:'{Telephone}',width:30,align:'center',sortable:true}
]],
onHidePanel:HidePanel
});
}
if(type=='Product'){
var rs=JsonByAjax({Action:'ProductList',Params:where}).rows;
for(var i=0;i<rs.length;i++)rs[i].filter=rs[i].Code+rs[i].Text+rs[i].Telephone;
$('#'+Uid).combogrid({
panelWidth:300,panelHeight:200,prompt:title,fitColumns:true,autoRowHeight:false,remoteSort:false,multiple:ms,idField:'Uid',textField:'Text',data:rs,
filter: function(q, row){return row.filter.indexOf(q)>=0;},
columns: [[
{field:'Text',title:'{Text}',width:30,align:'center',sortable:true},
{field:'Code',title:'{Code}',width:30,align:'center',sortable:true},
{field:'Type',title:'{Type}',width:30,align:'center',sortable:true}
]],
onHidePanel:HidePanel
});
}
}*/
/**
* 检验下拉框填写的值是否在候选中
* @param param 3个参数,Uid:控件的ID,field:检测的字段,msg:提示语
* @returns
*/
function CheckCombo(param){
var Uid=param.Uid;
var field=param.field;
var msg=param.msg;
if(IsBlank(field))field='Uid';
var c=$("#"+Uid);
var r=JsonFilter(c.combogrid('grid').datagrid('getData').rows,field,c.combogrid('getValue'));
if(r.length>0)return true;
Imsg(msg);
return false;
}
//打开弹窗
function wo(p){
p.win=window;//保存弹窗的源窗口
parent.WinOpen(p);
}
//关闭弹窗
function wc(){
SetWinParam('data',arguments[0]);//加入返回数据
parent.WinClose(WinParam);
}
/**
* 打开弹窗
* @param a对象p:页面ID,w:宽,h:高,t:标题,win:源窗口对象,用于回调,fun:回调函数
* @returns
*/
function WinOpen(a){
var url=a.p+'.html';//目标页面
var m=true;//模态窗
var bb=JsonFilter(mm,'p',url)[0];//取默认长宽和标题
if(bb){
if(!('w' in a))a.w=bb.w;
if(!('h' in a))a.h=bb.h;
if(!('t' in a))a.t=bb.t;
if(!('icon' in a))a.icon=bb.icon;
}else{
if(!('w' in a))a.w=1000;
if(!('h' in a))a.h=600;
if(!('t' in a))a.t='${l_SysTitle}';
if(!('icon' in a))a.icon='icon-logo';
}
a.WinUid="w"+a.p;//
WinParam=a;
$(document.body).append($("<div id=w"+a.p+" class=easyui-window></div>"));
//var icon=a.icon ? a.icon : 'icon-tip';
$('#w'+a.p).window({title:a.t,width:a.w,height:a.h,modal:m,closable:false,collapsible:false,minimizable:false,maximizable:false,iconCls:a.icon,
content:"<iframe id=iframe"+a.p+'&Params='+Encode(ToParams(a.Param))+" height='99%' width='100%' frameborder='0' src='"+PageUrl(url)+"'></iframe>"
});
//document.getElementById("iframe"+id).onload=function(){a.WinUid=id;this.contentWindow.WinInfo=a;}
}
function WinClose(a){
var win=$('#'+a.WinUid);
win.window('close');//关闭当前窗口
win=win.parent();
win.remove();//消除Dom
if('fun' in a){//有返回函数
//win=window;//根页面
//if(a.win!='root')win=document.getElementById("iframe"+a.win).contentWindow;
win=a.win;//弹窗的源窗口对象
//eval("win.contentWindow."+a.fun+"('"+ToParams(a.data)+"')");//返回数据给源窗口
var f=a.fun;
if(f.indexOf('(')<0&&f.indexOf(')')<0){
if(typeof(a.data)!='undefined')eval("win."+f+"(a.data)");//返回数据给源窗口
}else{
eval("win."+f);//自带了返回参数,不需要加返回值
}
}
}
//更新弹窗(参数为空时,刷新当前弹窗)
function winUpdate(page){
parent.UpdateTab(page);
}
//***********grid 开始************//
function dgFilter(data){
if (typeof data.length == 'number' && typeof data.splice == 'function'){ // is array
data = {total: data.length,rows: data}
}
var dg = $(this);
var opts = dg.datagrid('options');
var pager = dg.datagrid('getPager');
pager.pagination({
onSelectPage:function(pageNum, pageSize){
opts.pageNumber = pageNum;
opts.pageSize = pageSize;
pager.pagination('refresh',{
pageNumber:pageNum,
pageSize:pageSize
});
dg.datagrid('loadData',data);
}
});
if (!data.originalRows){
data.originalRows = (data.rows);
}
var start = (opts.pageNumber-1)*parseInt(opts.pageSize);
var end = start + parseInt(opts.pageSize);
data.rows = (data.originalRows.slice(start, end));
return data;
}
/**
* grid状态栏的初始化参数
* @param op 自定义构造参数,会与默认参数进行重构
* @param p 为空用长状态栏,非空用短状态栏
* @returns
*/
function dgPagination(op,p){
option={
layout:['list','first','prev','manual','next','last'],
beforePageText:'',
afterPageText:'of {pages}',
displayMsg:'当前显示{from} to {to} 条记录 共({total}) 条记录'
}
if(!IsBlank(p))option.layout=['prev','next'];
return JsonUpdate(option,op);
}
//非不直接编辑的初始化,dg的data不用标准格式才会让分页生效
/**
* 初始化griddata
* @param obj 对象ID
* @param op 自定义构造参数,会与默认参数进行重构
* @param p 为空用长状态栏,非空用短状态栏
* @returns
*/
function dgInitial(obj,op,p){
var dg=$('#'+obj);
//var dgs=obj;
var option={
fit:true,
autoRowHeight:false,
fitColumns:true,
rownumbers:true,
singleSelect:true,
loadMsg : '数据装载中......',
//showFooter:true,
//lines:true,
//animate:true,
pagination:true,
pagePosition:'bottom',
pageSize:100,
//loadFilter:dgFilter
/* remoteSort:false,
onSortColumn:function(sort,order){
var d=$(this).datagrid('getData').originalRows;
d=JsonDataSort(d,{'sort':sort,'order':order});
$(this).datagrid('loadData',d);
}*/
};
option.pageList=[option.pageSize,option.pageSize*3,option.pageSize*5]
dg.datagrid(JsonUpdate(option,op));
//此次配置按钮
option={
//buttons: []
}
dg.datagrid('getPager').pagination(dgPagination(option,p));
dg.datagrid('loadData',[]);
/* var size=arguments[1];
if(size===undefined){
pageSize=100;
layout=['first','prev','manual','next','last'];
}else{
pageSize=size;
layout=['prev','manual','next'];
}
var dg=$('#'+obj);
var dgs=obj;
dg.datagrid({
fit:true,
autoRowHeight:false,
singleSelect:true,
fitColumns:true,
rownumbers:true,
//multiSort:true,
showFooter:true,
pagination:true,
pagePosition:'bottom',
pageSize:pageSize,
pageList:[pageSize,pageSize*3,pageSize*5],
loadFilter:dgFilter,
remoteSort:false,
onSortColumn:function(sort,order){
var d=$(this).datagrid('getData').originalRows;
d=JsonDataSort(d,{'sort':sort,'order':order});
$(this).datagrid('loadData',d);
}
})*/
//dd[dgUid]=arguments[2];
/* dg.datagrid('getPager').pagination({
layout:layout,
buttons: [{
iconCls:'icon-filter wfData',
handler:function(){
//console.log($(this).attr('class'));
var y;
var data = getField(dgs);//字段
//数据源赋值
if(dd[dgUid]){
y=dd[dgUid];
}else{
if(arguments[2]){
y=dd[dgUid]=arguments[2]
}else{
y=dd[dgUid]=getGrildData(dgs)
}
}
//bug(y)
//var y=dd[dgUid] ? dd[dgUid] : getGrildData(dgs);//数据源
var sd=saveData[dgs] ? saveData[dgs] : '';
wo({p:'QueryWindow',mm:{w:'800',h:'500'},t:'筛选',fun:'queryresult',data:{data:data,row:y,saveData:sd,s:dgs},icon:'icon-filter'});
}
}],
displayMsg:'{from} to {to}({total})'
});
dg.datagrid('resize');*/
}
function dgInitial2(obj,op,p,url){
var dg=$('#'+obj);
var option={
fit:true,
pageSize : 10,
url:url,//url调用Action方法
loadMsg : '数据装载中......',
singleSelect:true,//为true时只能选择单行
fitColumns:true,//允许表格自动缩放,以适应父容器
//sortName : 'xh',//当数据表格初始化时以哪一列来排序
//sortOrder : 'desc',//定义排序顺序,可以是'asc'或者'desc'(正序或者倒序)。
remoteSort : false,
pagePosition:'bottom',
pagination : true,//分页
rownumbers : true//行数
}
option.pageList=[option.pageSize,option.pageSize*3,option.pageSize*5]
dg.datagrid(JsonUpdate(option,op));
//此次配置按钮
option={
//buttons: []
onChangePageSize:function(){
alert()
},
onSelectPage:function(pageNumber, pageSize){
alert()
}
}
dg.datagrid('getPager').pagination(dgPagination(option,p));
//dg.datagrid({
// pageSize : 5,
// pageList : [ 5, 10, 15, 20 ],//可以选择的分页集合
// nowrap : true,//设置为true,当数据长度超出列宽时将会自动截取
// striped : true,//设置为true将交替显示行背景。
// collapsible : true,//显示可折叠按钮
// toolbar:"#tb",//在添加 增添、删除、修改操作的按钮要用到这个
// url:'getAllStudentAction.action',//url调用Action方法
// loadMsg : '数据装载中......',
// singleSelect:true,//为true时只能选择单行
// fitColumns:true,//允许表格自动缩放,以适应父容器
// //sortName : 'xh',//当数据表格初始化时以哪一列来排序
// //sortOrder : 'desc',//定义排序顺序,可以是'asc'或者'desc'(正序或者倒序)。
// remoteSort : false,
// frozenColumns : [ [ {
// field : 'ck',
// checkbox : true
// } ] ],
// pagination : true,//分页
// rownumbers : true//行数
//});
}
//筛选后回调
function dgFiterData(a){
dgDataFiter[a.id]=a.condition;
$("#"+a.id).datagrid("loadData",arrFilter(getOriData(a.id),a.condition));
}
/**
* 加载grid控件数据,原始数据会放在oriData属性
* @param obj 控件的ID
* @param row 二维数据
* @returns
*/
function ui_dgLoadData(obj,row){
var dg=$('#'+obj);
//var orirow=[];
//for(var i=0;i<row.length;i++)orirow.push(row[i]);
if('rows' in row)row=row.rows;
dg.datagrid('options').oriData=row;
dg.datagrid('loadData',{"total":row.length,"rows":row})
}
//获取选中datagrid行数据,没选中则提示并返回
function ui_IsGetDatagridSelected(sel){
var s=$('#'+sel).datagrid('getSelected');
if(s==null){
popMsg_Y('提示','请选择行!','info');
return null;
}else{
return s;
}
}
//获取datagrid选中的行
function ui_getDataGridSelected(sel){
return $('#'+sel).datagrid('getSelected')
}
//获取datagrid数据
function getGrildData(sel){
return $('#'+sel).datagrid('getData');
}
//获取datagrid源数据
function getOriData(sel,m){
if(m=='tg')return $('#'+sel).treegrid('options').oriData;
return $('#'+sel).datagrid('options').oriData;
}
//获取选中datagrid行号
function getDatagridIndex(sel){
return $('#'+sel).datagrid('getRowIndex', $('#'+sel).datagrid('getSelected'))
}
//加载gridData数据
function loadGridData_Y(sel,data){
$('#'+sel).datagrid("loadData",noGrildData_Y);//先加载一遍空数据,处理空数据没更新
if(!IsBlank(data)) $('#'+sel).datagrid("loadData",data);
}
//删除datagrid
function delectDataGrid_Y(sel,index){
$('#'+sel).datagrid('deleteRow',index);
}
//获取所有选择的行
function ui_getSelections(sel){
var s=$('#'+sel).datagrid('getSelections');
if(s==null){
popMsg_Y('提示','请选择行','info');
return null;
}else{
return s;
}
}
//获取所有选择的行
function ui_returnSelections(sel){
return $('#'+sel).datagrid('getSelections');
}
/**
* 循环删除多行记录
* @param s 选择器
* @author Yasin
*/
function ui_removeDatagridRows(s){
var rows = $('#'+s).datagrid("getSelections");
var copyRows = [];
for ( var j= 0; j < rows.length; j++) {
copyRows.push(rows[j]);
}
for(var i =0;i<copyRows.length;i++){
var index = $('#'+s).datagrid('getRowIndex',copyRows[i]);
$('#'+s).datagrid('deleteRow',index);
}
}
//***********grid 结束************//
//***********treegrid 开始************//
/**
* 初始化treegrid
* @param obj 对象ID
* @param op 自定义构造参数,会与默认参数进行重构
* @param p 为空用长状态栏,非空用短状态栏
* @returns
*/
function tgInitial(obj,op,p){
var tg=$('#'+obj);
var option={
fit:true,
autoRowHeight:false,
fitColumns:true,
rownumbers:false,
//showFooter:true,
//lines:true,
//animate:true,
pagination:false,
pagePosition:'bottom',
pageSize:100,
loadFilter:tgFilter,
/* remoteSort:false,
onSortColumn:function(sort,order){
var d=$(this).datagrid('getData').originalRows;
d=JsonDataSort(d,{'sort':sort,'order':order});
$(this).datagrid('loadData',d);
}*/
onDblClickRow:function(node){
$(this).treegrid('toggle',node[$(this).treegrid('options').idField]);
/* if(node.state=='open'){
tg.treegrid('collapse',node[tg.treegrid('options').idField]);
}else if(node.state=='closed')tg.treegrid('expand',node[tg.treegrid('options').idField]);*/
}
};
option.pageList=[option.pageSize,option.pageSize*3,option.pageSize*5]
tg.treegrid(JsonUpdate(option,op));
option={
/* buttons: [{
iconCls:'icon-filter',
handler:function(){
var condition=[];
var fields = getField(obj);//字段
//数据源赋值
if(dgDataFiter[obj])condition=dgDataFiter[obj];
wo({p:'QueryWindow',fun:'dgFiterData',Param:{'fields':fields,rows:getOriData(obj,'tg'),id:obj,'condition':condition}});
}
},{
iconCls:'icon-up',
handler:function(){
var node=tg.treegrid('getSelected');
if(!node)return;
var nodes=tg.treegrid('getChildren',node._parentId);
var up={};
var fid=tg.treegrid('options').idField;
for(i=0;i<nodes.length;i++){
if(nodes[i][fid]==node[fid]){
if(i==0)return;//不能再向上走
up=nodes[i-1];
break;
}
}
node=JsonUpdate({},node);
tg.treegrid('remove',node[fid]);
tg.treegrid('insert',{before:up[fid],data:node});
tg.treegrid('select',node[fid]);
}
},{
iconCls:'icon-down',
handler:function(){
var node=tg.treegrid('getSelected');
if(!node)return;
var nodes=tg.treegrid('getChildren',node._parentId);
var down={};
var fid=tg.treegrid('options').idField;
for(i=0;i<nodes.length;i++){
if(nodes[i][fid]==node[fid]){
if(i==nodes.length-1)return;//不能再向下走
down=nodes[i+1];
break;
}
}
node=JsonUpdate({},node);
tg.treegrid('remove',node[fid]);
tg.treegrid('insert',{after:down[fid],data:node});
tg.treegrid('select',node[fid]);
}
}]*/
}
tg.treegrid('getPager').pagination(dgPagination(option,p));
//tg.treegrid('resize');
}
/**
* 加载treegrid控件数据,会自动处理层级问题<br>
* 配置了TypeClass参数,则生成2级分类树
* 配置了Parent参数,则生成多级分层树
* 原始数据会放在oriData属性
* @param obj 控件的ID
* @param row 二维数据
* @returns
*/
function ui_tgLoadData(obj,row){
var tg=$('#'+obj);
if('rows' in row)row=row.rows;
//默认是分类模式
var parent=tg.treegrid('options').TypeClass;
var fid=tg.treegrid('options').idField;
var ftext=tg.treegrid('options').treeField;
var type=true;
//改成分层模式
if(IsBlank(parent)){
parent=tg.treegrid('options').Parent;
type=false;
}
if(!IsBlank(parent)){
var HasType=[];
//var orirow=[];
//bug(row);
for(var i=0;i<row.length;i++){
if(type){
//记录出现过的类别
if(JsonHasRow(HasType,fid,row[i][parent]).length==0){
var a={};
a[fid]=row[i][parent];
a[ftext]=row[i][parent];
//var a={fid:row[i][parent]};
HasType.push(a);
}
row[i]._parentId=row[i][parent];
}else{
if(row[i][parent]!='root'){
row[i]._parentId=row[i][parent];
}
}
//orirow.push(row[i]);
}
if(type){//分类模式将类别数组插入
for(var i=0;i<HasType.length;i++){
row.push(HasType[i]);
}
}
}
tg.treegrid('options').oriData=row;
tg.treegrid('loadData',row);
//tg.treegrid('loadData',{"total":row.length,"rows":row});
}
function tgFilter(data){
if (typeof data.length == 'number' && typeof data.splice == 'function'){ // is array
data = {total: data.length,rows: data}
}
var tg = $(this);
var opts = tg.treegrid('options');
var pager = tg.treegrid('getPager');
//var data=opts.OriData;
pager.pagination({
onSelectPage:function(pageNum, pageSize){
opts.pageNumber = pageNum;
opts.pageSize = pageSize;
pager.pagination('refresh',{
pageNumber:pageNum,
pageSize:pageSize
});
tg.treegrid('loadData',data);
//tg.treegrid('loadData',{"total":data.length,"rows":data})
}
});
if (!data.originalRows){
data.originalRows = (data.rows);
}
var start = (opts.pageNumber-1)*parseInt(opts.pageSize);
var end = start + parseInt(opts.pageSize);
data.rows = (data.originalRows.slice(start, end));
return data;
}
//***********treegrid 结束************//
//初始化datalist
function blInitial(Uid){
var bl=$('#'+Uid);
bl.datalist({
fit:true,
border:false,
lines: true,
})
}
//创建Iframe
function Ifm(id){
$('#'+id).attr('scrolling','no').attr('frameborder','0')
.css("width",'100%').css("height",'99.5%').css("overflow",'visible');
}
/**
* Iframe加载From
* @param id 选择器
* @param Param 传给后端的参数
* @param Model 控制按钮参数
* @param fun 回调
* @param page 控制ifram页面地址,不传默认的f页面
* @returns
*/
function IfmForm(id,Param,Model,fun,page){
$('#'+id).attr('src',FormUrl(Param,Model,fun,page));
}
//获得Form的Url
function FormUrl(Param,Model,fun,page){
var f='f';
if(page){
f=page;
}
return PageUrl(f)+'&Params='+Encode(ToParams(Param))+'&Model='+Model+'&Fun='+fun;
//&Action='+Action+'
}
/*function FormOpen(doc){
$('#iframe').attr('src',FormOpen({'FormUid':'170220151212850gHpHT'}));
}*/
//初始化表单数据
/*function FormInitial(param){
var Action=GetWinParam('Action');//请求的动作,0编辑,1只读
if(IsBlank(Action))Imsg("{NoAccess}",function(){wc()});//不允许没动作
var Doc=GetWinParam('Doc');
if(IsBlank(Doc)){
DocUid=GetWinParam('DocUid');//获取请求的DocUid
var Where=GetWinParam('Where')//获取请求的Where条件
if(IsBlank(DocUid)&&IsBlank(Where)&&Action==1)Imsg("{NoAccess}",function(){wc()});//只读不能没有ID
if(IsBlank(DocUid)&&IsBlank(Where)&&Action==0)return {};//新增模式
if(IsBlank(Where)){//用Uid
var Uid=IsBlank(DocKey)?'Uid':DocKey;
param.Params={where:Uid+"='"+DocUid+"'"};
}else{//用where条件
param.Params={where:Where};
}
var rs=JsonByAjax(param).rows;
if(rs.length>0){//有数据,加载
DocUid=rs[0].Uid;
return FormLoad(rs[0]);
}else{//无数据,证明没权限
if(!IsBlank(Where))return {};//如果采用Where模式,无数据时就切换到新增模式
Imsg("{NoAccess}",function(){wc();});
}
}else{
return FormLoad(Doc);
}
}*/
/**
* 表单赋值数据
* @param frm formId对象
* @param doc 对象
* @author Yasin
*/
function FormLoad(frm,doc){
frm.form('load',doc);
if('FileArr' in doc){
var arr=doc.FileArr;
var f='';
for(var i=0;i<arr.length;i++){
var dc=arr[i];
if(dc.FileField!=f){
try{$('#'+dc.FileField).filebox('setValue','');}catch(e){}
$('#'+dc.FileField+"_file").html('');
f=dc.FileField;
}
UlappendChild({ul:dc.FileField+"_file",li:"<a class='iab' onclick=FileExport('"+dc.Uid+"')>"+dc.FileText+"</a> <a onclick=FileDel('"+dc.Uid+"')><img src={SysUi}/themes/icons/clear.png></a>"});
}
}
return doc;
}
function FormSubmit(frm,fun1,fun2){
//var p=arguments[0];
frm.form('submit',{
url:Backstage,
onSubmit: function(param){
if(!$(this).form('enableValidation').form('validate'))return false;//表单检测
$.messager.progress();
var f=FormToJson($(this));//获得表单数据成Doc
//f.where=DocKey+"='"+DocUid+"'";
//param.Params=f;
var r=fun1(f);
if(!r){$.messager.progress('close');return false;}
/*a.where=DocKey+"='"+DocUid+"'";*/
//param.Action=r.Action;
//把对象属性添加到
if(!IsBlank(r.Params)){
for (var key in r.Params){
param[key]=r.Params[key]
}
}
//param.Params=r.Params;
//bug(param);
},
success:function(r){
/* var data=GetParams(r);
if(data.len>0){
if(data.State==0){
//FormLoad(data.rows[0]);
//DocUid=data.rows[0][DocKey];
}
fun2(data);
DocUid=data.rows[0][DocKey];
if(p=='close'){Imsg("{Success}",wc);}else{Imsg("{Success}");}
}else{
popMsg_Y('',"${l_Fail}",'error');
}*/
$.messager.progress('close');
fun2(r);
}
});
}
//判断是否可编辑状态
function EditDoc(){
return (GetWinParam('Action')==0);//Action=0为可编辑
}
//判断是否新增状态
function NewDoc(){
return (EditDoc()&&IsBlank(DocUid));//处理编辑状态且DocUid为空
}
/*function Imsg(s){
var fn=function(){};
if(arguments[1])fn=arguments[1];
$.messager.alert('',s,'warning',arguments[1]);
}*/
//从DataGrid导出Excel
function GridToExcel(Grid){
var dg=$('#'+Grid);
var data=dg.datagrid('getData').originalRows;
if(data==undefined)return;
var titles=JsonExtract(dg.datagrid('options').columns[0],'field,title');
var Params={};
//Params.Titles=encodeURIComponent(JsonToString(titles));
//Params.Data=encodeURIComponent(JsonToString(data));
Params.Titles=titles;
Params.Data=data;
JarrToExcel(Params);
/* var param=JarrToExcel(Params);
param.del="true";
FileExport(param);*/
}
function MobileBack(){
var p=arguments[0];
if(IsBlank(p))p='p0';
$.mobile.go('#'+p,'slide','right');
}
//**********项目自定义函数开始*************//
//根据账号Shop.ParentID得有权限的ShopID
//树tree---------
function getTreeSelected(sel){
return $('#'+sel).tree('getSelected');
}
function ui_removeTree(sel){
var s=$('#'+sel).tree('getSelected');
if(s==null){
popMsg_Y('提示','没有选中的要删除的行!','info');
return;
}else{
$('#'+sel).tree('remove', s.target);
}
}
//获取选择树行数据,没选中则提示并返回
function ui_IsGetTreeSelected(sel){
var s=$('#'+sel).tree('getSelected');
if(s==null){
popMsg_Y('提示','没有选中的树行!','info');
return;
}else{
return s;
}
}
//树加载
function ztreeLoadData_Y(sel,data){
$('#'+sel).tree('loadData',data)
}
/**
* 向对应的树节点增加新节点
* @param s 选择器
* @param data 增加数据
*/
function ui_TreeAppend(s,data){
var selected = $('#'+s).tree('getSelected');
//没选中则返回
if(selected==null){
popMsg_Y('提示','请选择要添加的行!','info');
return;
}
$('#'+s).tree('append', {
parent: selected.target,
data: data
});
}
/**
* 更新tree
* @param s树选择器
* @param data对象,要修改的key,value值
*/
function ui_UpdateText(s,doc){
var node = $('#'+s).tree('getSelected');
if(node==null){
popMsg_Y('提示','请选择行!','info');
return;
}else{
var obj={};
obj.target=node.target;
obj[doc.k]=doc.v;
$('#'+s).tree('update', obj);
}
}
/**
* 树搜索功能
* @param sel 选择器
*/
function ui_searchNodeFn(sel){
//搜索词
var value=getInputValue('searchWord');
//所有节点
var childrens = $('#'+sel).tree('getChildren');
$.each(childrens, function (k, node) {
if (node.text.indexOf(value) >= 0 && !node.checked) {
/* if(node.text==value){*/
var nodes = $('#'+sel).tree('find', node.id); //找到当前的节点
$('#'+sel).tree('expandTo', nodes.target); //滚动到当前节点
$('#'+sel).tree('scrollTo', nodes.target); //滚动到当前节点
$('#'+sel).tree('select', nodes.target); //高亮显示
return false;
/* }*/
}
})
}
//input----
//获取input值
function getInputValue(sel){
return $("#"+sel).textbox('getValue');
}
//input值
function setInputValue(s,v){
$("#"+s).textbox('setValue',v);
}
/**
* 循环设置input的值
* @param data 数组 s选择器 v值
*/
function runSetInputValue(data){
for(var i=0;i<data.length;i++){
$("#"+data[i].s).textbox('setValue',data[i].v);
}
}
//treegrid
/**
* 向treegrid插入一行
* @param s 选择器
* @param data 数据
*/
function ui_TreegridAppend(s,data){
var selected = $('#'+s).treegrid('getSelected');
//没选中则返回
if(selected==null){
popMsg_Y('提示','请选择要添加的行!','info');
return;
}
$('#'+s).treegrid('append', {
parent: selected.id,
data: data
});
}
//获取选择树行数据,没选中则提示并返回
function ui_IsGetTreegridSelected(sel){
var s=$('#'+sel).treegrid('getSelected');
if(s==null){
popMsg_Y('提示','请选择行!','info');
return;
}else{
return s;
}
}
/**
* 更新treegrid
* @param s选择器
* @param row更新行数据
*/
function ui_UpdateTreegrid(s,row){
var node = $('#'+s).treegrid('getSelected');
if(node==null){
popMsg_Y('提示','请选择行!','info');
return;
}else{
$('#'+s).treegrid('update',{
id: node.id,
row: row
})
}
}
/**
* 获取选中treegrid行数据
* @param s选择器
* @returns treegrid行数据
*/
function GetSelectTreegrid(s){
return $('#'+s).treegrid('getSelected');
}
/*
* 弹出信息框
*/
function popMsg_Y(title,msg,type){//标题、信息、类型:error、question、info、warning
//设置中午按钮
$.extend($.messager.defaults,{
ok:"确定",
cancel:"取消"
});
/*
* 增加默认参数值
*/
if(IsBlank(title))title='${l_SysTitle}';
if(IsBlank(type))type='info';
$.messager.alert(title,msg,type);
}
//弹出确认信息框
function popConfirmMsg_Y(title,msg,fn){//标题、信息、next方法
//设置中午按钮
$.extend($.messager.defaults,{
ok:"确定",
cancel:"取消"
});
/*
* 增加默认参数值
*/
if(IsBlank(title))title='确定操作?';
$.messager.confirm(title,msg,function(r){
if (r){
fn();
}
});
}
//弹出输入信息框
function popPromptMsg_Y(title,msg,fn){//标题、信息、next方法
//设置中午按钮
$.extend($.messager.defaults,{
ok:"确定",
cancel:"取消"
});
$.messager.prompt(title,msg, function(r){
if (r){
fn(r)
}
});
}
//取得datagrid定义的所有可用字段
function getField(id){//datagrid的id
var columns=$('#'+id).datagrid('options').columns,
arr=[];
if(columns!=""){
for(var i=0;i<columns[0].length;i++){
arr.push({
field:columns[0][i].field,
title:columns[0][i].title
});
}
}
return arr;
}
//根据总条件进行筛选
/**
* var fdata=[//模拟条件
{
k:"FormCode",
w:">",
v:"123"
}
]
* @param data
* @param fdata
* @returns
*/
/**
* 打开一个新tap页面
* @param node对象s:选择器,text:标题,id:页面名,closable:是否能关闭,params:参数(数组)
*/
function OpenNewTaps(node){
if ($('#'+node.s).tabs('exists',node.text)){
$('#'+node.s).tabs('select',node.text);
}else{
if(node.params){
//参数
var params=JSON.parse(node.params);
//组装参数
var pr=AssParameters(params);
}
var content = '<iframe id=iframe'+node.id+' scrolling="no" frameborder="0" src='+PageUrl(node.id)+'&'+pr+' style="width:100%;height:99%;overflow:visible"></iframe>';
$('#'+node.s).tabs('add',{
title: node.text,
content:content,
closable:node.closable
});
}
}
/**
* 判断datagrid里是否存在某列数据
* @param k datagrid列数据中的key
* @param v 要对的vulue
* @param s 选择器
* @author Yasin
*/
function isInDatagrid(k,v,s){
//取出目标grid数据
var rows=$('#'+s).datagrid("getData").rows;
//循环遍历rows
if(rows.length>0){
for(var i=0;i<rows.length;i++){
if(v==rows[i][k]){
return true;
break;
}else{
return false;
break;
}
}
}
}
/**
* 向datagrid插入一行
* @param s 选择器
* @param obj 行对象
* @author Yasin
*/
function dataGridAppendRows(s,obj){
$('#'+s).datagrid('appendRow',obj);
}
/**
* 循环向datagrid插入数据
* @param s 选择器
* @param arr 数组
* @author Yasin
*/
function ui_runDataGridAppendRows(s,arr){
if(arr.length>0){
for(var i=0;i<arr.length;i++){
$('#'+s).datagrid('appendRow',arr[i]);
}
}
}
/**
* 向datalist插入一行
* @param s 选择器
* @param obj 行对象
*/
function DataListAppendRows(s,obj){
$('#'+s).datalist('appendRow',obj);
}
/**
* 循环设置input的
* @param arr数组[{s:s,v:v}]
*/
function loopSetInputValue(arr){
if(arr.length>0){
for(var i=0;i<arr.length;i++){
setInputValue(arr[i].s,arr[i].v);
}
}
}
/**
* 获取form表单input的值
* 对应easyui加载,必有data-name属性
* @param s选择器
* @author Yasin
*/
function ui_GetFormValue(s){
var arr=$('#'+s+' .get_value');
var rObj={};
if(arr.length>0){
for(var i=0;i<arr.length;i++){
var name=arr.eq(i).attr('data-name');
if(name!='' && name!=undefined)
rObj[name]=arr[i].value;
}
}
return rObj;
}
/**
* 绑定layout的展开和折叠
* @param s选择器
* @param f1折叠方法
* @param f2展开方法
*/
function ui_LayoutCg(s,f1,f2){
s.panel({
onCollapse:function(region){
f1();
},
onExpand:function(region){
f2();
}
})
}
/**
* 更新datagrid的rows数据
* @param s 对象选择器
* @param rows 更新数据对象
*/
function ui_updataDGRows(s,rows){
var index=$('#'+s).datagrid('getRowIndex', $('#'+s).datagrid('getSelected'));
$('#'+s).datagrid('updateRow',{
index: index,
row: rows
});
$('#'+s).datagrid('selectRow',index);
}
/**
* 新增datagrid的rows数据
* @param s 对象选择器
* @param rows 更新数据对象
*/
function ui_addDGRows(s,rows){
$('#'+s).datagrid('insertRow',{
index: 0,
row: rows
});
$('#'+s).datagrid('selectRow',0);
}
/**
* 插入指定位置
* @param s 选择器
* @param index 指定索引
* @param rows 数据
* @author Yasin
*/
function ui_addIndexRows(s,index,rows){
$('#'+s).datagrid('insertRow',{
index:index ,
row: rows
});
$('#'+s).datagrid('selectRow',index);
}
/**
* 初始化combobox
* @param s 选择器
* @param data 数据
* @param vt 数组,valueField、textField
*/
function ui_ComboboxInit(s,data,vt){
$('#'+s).combobox({
data:data,
valueField:vt[0],
textField:vt[1]
})
}
/**
* loading
* @param msg 显示提示
* @author Yasin
*/
function ajaxLoading(msg){
$("<div class=\"datagrid-mask\"></div>").css({display:"block",width:"100%",height:$(window).height(),'z-index':999}).appendTo("body");
$("<div class=\"datagrid-mask-msg\"></div>").html(msg).appendTo("body").css({display:"block",left:($(document.body).outerWidth(true) - 190) / 2,top:($(window).height() - 45) / 2,'z-index':999});
}
/**
* 移除loading
* @author Yasin
*/
function ajaxLoadEnd(){
$(".datagrid-mask").remove();
$(".datagrid-mask-msg").remove();
}
/**
* 获取选择在tree所有父节点
* @param s 选择器
* @param data 当前节点node
* @returns {string} 所有父节点
* @author Yasin
*/
function ui_getCheckParentList(s,data){
var arr=[];
var arrOut=[];
for(var j=0;j<data.length;j++){
var str = "";
var parentAll = "";
parentAll = data[j].text;
parentAll = parentAll.replace(/\[[^\)]*\]/g, ""); //获得所需的节点文本
var flag = ",";
var parent = $('#'+s).tree('getParent', data[j].target); //获取选中节点的父节点
for (i = 0; i < 20; i++) { //可以视树的层级合理设置I
if (parent != null) {
parentAll = flag.concat(parentAll);
str = (parent.text).replace(/\[[^\)]*\]/g, "");
parentAll = (str).concat(parentAll);
var parent = $('#'+s).tree('getParent', parent.target);
}
}
arr.push(parentAll);
}
for(var o=0;o<arr.length;o++){
arrOut.push(arr[o].replace(/,/g,'/'));
}
return arrOut;
}
/**
* 处理文本框删除一个或多个字符后要处理的方法
* 默认是清空input值和data-id值
* @param eleList 需要绑定的input id 数组
* @param cb 回调方法
* @author Yasin
*/
function easyui2InputDelectFn(eleList,cb){
//绑定input的focus和blur事件
var bid=null;
for(var i=0;i<eleList.length;i++){
$('#'+eleList[i]).siblings().children().focus(function(){
bid=$(this).parent().siblings().attr('id');
})
$('#'+eleList[i]).siblings().children().blur(function(){
bid=null;
})
}
//绑定键盘监听
document.onkeydown=function(event){
var e = event || window.event || arguments.callee.caller.arguments[0];
if(e && e.keyCode==8 && $.inArray(bid,eleList)!=-1){ // backspace键盘
//置空值
setInputValue(bid,'');
//置空隐含data-id
$('#'+bid).attr('data-id','');
//执行要做的回调
if(cb) cb(bid);
}
};
}
/**
* 格式化datebox,和myparser配合使用
* @param date datebox参参数
* @returns {string} 要显示的格式
* @author Yasin
*/
function ui_formatterTime(date){
var y = date.getFullYear();
var m = date.getMonth()+1<=9 ? '0'+(date.getMonth()+1) : date.getMonth()+1;
var d = date.getDate()<=9 ? '0'+date.getDate() : date.getDate();
return y+'-'+m+'-'+d;
}
/**
* 解析一个日期字符串,和formatterTime配合使用
* @param s datebox参参数
* @returns {Date} date
* @author Yasin
*/
function ui_myparser(s){
if (!s) return new Date();
var ss = (s.split('-'));
var y = parseInt(ss[0],10);
var m = parseInt(ss[1],10);
var d = parseInt(ss[2],10);
if (!isNaN(y) && !isNaN(m) && !isNaN(d)){
return new Date(y,m-1,d);
} else {
return new Date();
}
}
/**
* 处理有按钮文本框不给编辑但可点按钮
* arr数组 {s:'',n:''} s选择器 , n属性值
* @author Yasin
*/
function ui_iconTextDisRea(arr){
for(var i=0;i<arr.length;i++){
$('#'+arr[i].s).next('span').children('.textbox-text').attr(arr[i].n,'true');
}
}
/**
* 分页控件初始化
* @param s 选择器
* @param TotalRows 总数据条数
* @param successCalBack 分页执行方法
* @author Yasin
*/
function ui_InitPage(s,TotalRows,successCalBack){
//初始化分页
var GG = {
"callbackFns":function(mm){
//执行分页方法
successCalBack(mm);
}
}
$("#"+s).initPage(TotalRows,1,GG.callbackFns);
}
//**********项目自定义函数结束*************//
easyui 项目ui.js公共方法
最新推荐文章于 2022-05-16 11:48:34 发布