easyui 项目ui.js公共方法

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);
}
//**********项目自定义函数结束*************//
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值