Files
xinhu/webmain/index/indexscript.js
2025-03-31 20:54:32 +08:00

484 lines
15 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
function initbody(){
objcont = $('#content_allmainview');
objtabs = $('#tabs_title');
menubadge = hongbadge = menutopid = {};//角标数组
resizewh();
$(window).resize(resizewh);
clickhome();
if(show_key!='')jm.setJmstr(jm.base64decode(show_key));
var a = $("li[pmenuid]");
a.click(function(){
if(js.ajaxbool)return;
a.removeClass();
loadmenu(this);
});
loadmenu($("li[pmenuid]")[0]);
if(typeof(FormData)=='undefined'){
js.msg('msg','您的浏览器太低了无法达到想要的预览效果<br>建议使用IE10+FirefoxChrome等高级点的',60);
}
if(get('indexuserl')){
var ddsata=[{
name:'<i class="icon-cog"></i> 个人设置',num:'grcog','icon':'cog',url:'system,geren,cog',names:'个人设置'
},{
name:'<i class="icon-bell"></i> 提醒信息',num:'todo','icon':'bell',url:'system,geren,todo',names:'提醒信息'
},{
name:'<i class="icon-picture"></i> 修改头像',num:'face','icon':'picture'
},{
name:'<i class="icon-adjust"></i> 切换主题',num:'theme','icon':'adjust'
},{
name:'<i class="icon-certificate"></i> 背景首页',num:'jiu','icon':'laptop'
},{
name:'<i class="icon-list"></i> 列表首页',num:'jiu2','icon':'laptop'
},{
name:'<i class="icon-user"></i> 帐号('+adminuser+')',num:'user'
}];
if(js.request('afrom')=='')ddsata.push({name:'<i class="icon-signout"></i> 退出',num:'exit'});
$('#indexuserl').rockmenu({
width:150,top:get('topheaderid').offsetHeight,
data:ddsata,
itemsclick:function(d){
if(d.num=='exit'){
js.confirm('确定要退出系统吗?',function(bn){
if(bn=='yes')js.location('?m=login&a=exit');
});
return;
}
if(d.num=='face'){
editfacechang(adminid, adminname);
return;
}
if(d.num=='jiu'){
js.location('?a=home');
return;
}
if(d.num=='jiu2'){
js.location('?a=new');
return;
}
if(d.num=='theme'){
changetheme();
return;
}
if(d.num=='user')return;
addtabs({num:d.num,url:d.url,name:d.names,icons:d.icon});
}
});
}
$('#reordershla').click(function(){
$('#indexmenu').hide();
$('#indexmenuss').show();
resizewh();
});
$('#indexmenuss').click(function(){
$('#indexmenu').show();
$('#indexmenuss').hide();
resizewh();
});
_addbodykey();
$('#indesearchmenu').click(function(){
_searchmenus();
});
function _loadjsurl(){
js.importjs('web/res/mode/echarts/echarts.common.min.js');
}
setTimeout(_loadjsurl,100);
//禁止后退
$(document.body).keydown(function(e){
var lxs = e.target.nodeName.toLowerCase();
var bo = (lxs=='input' || lxs=='textarea');
if(e.keyCode==8 && !bo)return false;
});
try{
history.pushState(null, null, document.URL);
window.addEventListener('popstate', function (){
history.pushState(null, null, document.URL);
});
}catch(e){}
}
function changetheme(){
var zys = ['#1389D3','#99cc66','#003366','#6666CC','#CC3333','#009966','#333333','#990066','#333300','#333366','#99CC99','#663366','#003399','#338899'];
var h = '<div style="padding:10px"><table height="20px" class="cursor"><tr>';
var nst = '';
for(var i=0;i<zys.length;i++){
nst = (zys[i]==maincolor) ? '✔':'&nbsp;';
h+='<td width="20px" style="color:white;font-size:12px" align="center" onclick="js.location(\'?apptheme='+zys[i].substr(1)+'\')" bgcolor="'+zys[i]+'">'+nst+'</td>';
}
h+='</tr></table></div>';
js.tanbody('color','切换主题',310,200,{
html:h
});
}
function _searchmenus(){
js.prompt('搜索菜单','请输入搜索菜单名:',function(jg,txt){
if(jg=='yes' && txt){
$('#menulisttop').html('搜索结果');
$('#menulist').html('<div style="padding:30px;" align="center">'+js.ling(30)+'</div>');
js.ajax(js.getajaxurl('getmenusou','index'),{key:txt}, function(da){
showmenula(da);
},'post,json');
}
});
}
var loadmenuci=0;
function loadmenu(o){
var o1 = $(o),id,s1,ico;
o1.addClass('active');id = o1.attr('pmenuid');ico = o1.attr('icon');
if(!id)return;
loadmenuci++;
s1 = o.title;
if(ico)s1='<i class="icon-'+ico+'"></i> '+s1+'';
$('#menulisttop').html(s1);
showmenupid = id;
$('#menulist').html('<div style="padding:30px;" align="center">'+js.ling(30)+'</div>');
js.ajax(js.getajaxurl('getmenu','index'),{pid:id,loadci:loadmenuci}, function(da){
if(da.menutopid)menutopid=da.menutopid;
showmenula(da.menuarr);
},'get,json');
}
function showmenula(a){
menuarr = a;
var i,s='',j,k,child,hhild,css1,to,sid,o;
hongbadge={};
for(i=0; i<a.length; i++){
o = a[i];
css1='cursor:pointer;TEXT-DECORATION:none;padding:15px 10px';
s+='<div class="hover" onClick="clickmenu(this,'+i+',-1,-1)" style="'+css1+'"><i class="icon-'+o.icons+'"></i> '+o.name+'';
if(o.bh && o.stotal==0)s+=' <span class="badge" badge="'+o.bh+'" style="float:none;display:none;background:red;color:white"></span>';
if(o.stotal>0)s+='<font color="red" id="hongdian_'+o.num+'" style="display:none">●</font><span style="float:right" id="menu_down_isons_'+o.num+'" class="icon-caret-down"></span>';
s+='</div>';
if(o.stotal>0){
child = o.children;
s+='<div downmenu="'+i+'_0" style="display:none;background:rgba(var(--rgb-r),var(--rgb-g),var(--rgb-b),0.05)">'
for(j=0; j<child.length; j++){
o = child[j];
s+='<div class="hover" style="'+css1+';padding-left:30px;" id="menu_list_'+o.num+'" onClick="clickmenu(this,'+i+','+j+',-1)"><i class="icon-'+o.icons+'"></i> '+o.name+'';
if(o.bh){
hongbadge[o.bh]=a[i].num;
s+=' <span class="badge" badge="'+o.bh+'" style="float:none;display:none;background:red;color:white"></span>';
}
if(o.stotal>0)s+='<span style="float:right" id="menu_down_isons_'+o.num+'" class="icon-caret-down"></span>';
s+='</div>';
if(o.stotal>0){
hhild = o.children;
s+='<div downmenu="'+i+'_'+j+'_0" style="display:none;background:rgba(var(--rgb-r),var(--rgb-g),var(--rgb-b),0.02)">'
for(k=0; k<hhild.length; k++){
o = hhild[k];
s+='<div class="hover" style="'+css1+';padding-left:60px;" id="menu_list_'+o.num+'" onClick="clickmenu(this,'+i+','+j+','+k+')"><i class="icon-'+o.icons+'"></i> '+o.name+'</div>';
}
s+='</div>';
}
}
s+='</div>';
}
}
if(s=='')s='<div style="padding:30px;color:#cccccc" align="center">暂无</div>';
$('#menulist').html(s);
showmenubadge();
}
//显示角标处理
function showmenubadge(){
var o,sid,to,tnu,tid,o1;
$('li[pmenuid] font').remove();
for(sid in menubadge){
to = menubadge[sid];
o = $('span[badge="'+sid+'"]');
tnu= hongbadge[sid];
if(o){if(to<=0){
o.hide();
if(tnu)$('#hongdian_'+tnu+'').hide();
}else{
o.show();o.html(to);
if(tnu)$('#hongdian_'+tnu+'').show();
tid= menutopid[sid];
if(tid){
o1 = $('li[pmenuid="'+tid+'"]');
o1.find('font').remove();
o1.find('a').append('<font color="red">●</font>');
}
}}
}
}
function removetadge(num){
if(typeof(menubadge[num])=='undefined')return;
$('span[badge="'+num+'"]').hide();
menubadge[num]=0;
showmenubadge();
}
function opentixiang(){
addtabs({num:'todo',url:'system,geren,todo',icons:'bell',name:'提醒信息'});
return false;
}
function clickhome(){
var ad = {num:'home',url:'home,index',icons:'home',name:'首页',hideclose:true};
if(homeurl!='')ad.url= homeurl;
if(homename!='')ad.name= homename;
addtabs(ad);
return false;
}
var fistwk=0;
function resizewh(){
var _lw = 0;
if(get('indexmenu')){
_lw = $('#indexmenu').width()+5;
if(get('indexmenu').style.display=='none'){
_lw = $('#indexmenuss').width()+5;
}
}
var w = winWb()-_lw;
var h = winHb(),_ht=0;
if(get('topheaderid'))_ht=get('topheaderid').offsetHeight;
viewwidth = w;
viewheight = h-_ht-50;
$('#indexcontent').css({width:''+viewwidth+'px',height:''+(viewheight)+'px'});
$('#tabsindexm').css({width:''+viewwidth+'px'});
var nh = h-_ht;
$('#indexmenu').css({height:''+nh+'px'});
$('#indexsplit').css({height:''+nh+'px'});
$('#indexmenuss').css({height:''+nh+'px'});
$('#menulist').css({height:''+(viewheight)+'px'});
_pdleftirng();
if(fistwk==0){
$('#topmenudiv span[pmenuid]').each(function(){
fistwk+=$(this).width()+30;
});
}
var lw=$('#logodiv').width();
var rw = $('#topheaderright').width();
var kj = winWb()-lw-rw;
$('#topmenudiv').css('width',''+kj+'px');
var o1 = $('#donwrigthw').css('right',''+rw+'px');
o1.hide();
if(fistwk>kj){
o1.show();
$('#topmenudiv').css('width',''+(kj-20)+'px');
}
}
function clickmenu(o, i, j,k){
var a = menuarr[i];
if(j>-1)a=a.children[j];
if(k>-1)a=a.children[k];
var oi = a.stotal,dxu=''+i+'_';
if(oi>0){
$('#hongdian_'+a.num+'').hide();//隐藏红点
if(j>-1){
dxu+=''+j+'_';
$('div[downmenu^="'+dxu+'"]').toggle();
}
var o1 = get('menu_down_isons_'+a.num+'');
if(o1.className.indexOf('down')>0){
o1.className='icon-caret-up';
if(j==-1)$('div[downmenu^="'+dxu+'"]').show();
}else{
o1.className='icon-caret-down';
if(j==-1)$('div[downmenu^="'+dxu+'"]').hide();
}
}else{
addtabs(a);
}
}
var coloebool = false;
function closetabs(num){
tabsarr[num] = false;
$('#content_'+num+'').remove();
$('#tabs_'+num+'').remove();
if(num == nowtabs.num){
var now ='home',i,noux;
for(i=opentabs.length-1;i>=0;i--){
noux= opentabs[i];
if(get('content_'+noux+'')){
now = noux;
break;
}
}
changetabs(now);
}
coloebool = true;
_pdleftirng();
setTimeout('coloebool=false',10);
}
function closenowtabs(){
var nu=nowtabs.num;
if(nu=='home')return;
closetabs(nu);
}
function nowtabssettext(srt,icos){
var num=nowtabs.num;
var txt = srt;
tabsarr[num].name = srt;
nowtabs.name = srt;
if(!icos)icos=nowtabs.icons;
if(icos)txt='<i class="icon-'+icos+'"></i> '+txt+'';
$('#tabs_'+num+' font').html(txt);
}
function changetabs(num,lx){
if(coloebool)return;
if(!lx)lx=0;
$("div[temp='content']").hide();
$("[temp='tabs']").removeClass();
var bo = false;
if(get('content_'+num+'')){
$('#content_'+num+'').show();
$('#tabs_'+num+'').addClass('active');
nowtabs = tabsarr[num];
if(typeof(nowtabs.onshow)=='function')nowtabs.onshow();
bo = true;
}
opentabs.push(num);
if(lx==0)_changhhhsv(num);
return bo;
}
function _changhhhsv(num){
var o=$("[temp='tabs']"),i,w1=0;
for(i=0;i<o.length;i++){
if(o[i].id=='tabs_'+num+'')break;
w1=w1+o[i].scrollWidth;
}
$('#tabsindexm').animate({scrollLeft:w1});
}
function _changesrcool(lx){
var l = $('#tabsindexm').scrollLeft();
var w = l+200*lx;
$('#tabsindexm').animate({scrollLeft:w});
}
function _pdleftirng(){
var mw=get('tabs_title').scrollWidth;
if(mw>viewwidth){$('.jtcls').show();}else{$('.jtcls').hide();}
}
function addiframe(a){
a.url = 'index,iframe,url='+jm.base64encode(a.url)+'';
addtabs(a);
}
//选择卡右键
function tabsright(num,e){
function _closeother(nu){
var nus,d1;
for(nus in tabsarr){
d1 = tabsarr[nus];
if(d1 && !d1.hideclose && nus!=nu)closetabs(nus);
}
}
if(typeof(tabsrights)=='undefined')tabsrights=$.rockmenu({
width:150,
data:[],
itemsclick:function(d){
var lx = d.lx,num=d.num;
if(lx==0)closetabs(num);
if(lx==1){
var d1 = tabsarr[num],s1=''+PROJECT+'/'+d1.urlpath+'';
var s = '['+d1.name+']页面地址是:'+s1+'<div style="word-wrap:break-word;">,在[系统→基础管理→菜单管理]设置URL地址为'+d1.url+'';
if(HOST=='127.0.0.1' || HOST=='localhost')s+='&nbsp;<a onclick="_openfile(\''+jm.base64encode(s1)+'\')" href="javascript:;">[打开]</a>';
s+='</div>';
js.alert(s);
}
if(lx==2)_closeother(num);
if(lx==3)location.reload();
if(lx==4)_opentabls(d.tobj);
}
});
var to= tabsarr[num],d = [];
if(!to.hideclose)d.push({'name':'关闭','num':num,lx:0});
if(num==nowtabs.num)d.push({'name':'关闭其它页面','num':num,lx:2});
if(admintype==1)d.push({'name':'查看页面地址','num':num,lx:1});
if(homeurl=='' && to.id)d.push({'name':'新窗口打开',tobj:to,'num':num,lx:4});
d.push({'name':'全部刷新','num':num,lx:3});
tabsrights.setData(d);
tabsrights.showAt(e.clientX,e.clientY+5);
}
function _opentabls(d){
var url = '?homeurl='+jm.base64encode(d.url)+'&homename='+jm.base64encode(d.name)+'&menuid='+jm.base64encode(d.id)+'';
window.open(url);
}
//开发时打开文件
function _openfile(s){
js.ajax(js.getajaxurl('openfile','index'),{file:s},function(ds){
if(ds!='ok')js.msg('msg', ds);
},'get');
}
/**
* 添加选择卡
*/
function addtabs(a){
var url = a.url,
num = a.num;
if(isempt(url))return false;
removetadge(num);
if(url.indexOf('add,')==0){openinput(a.name,url.substr(4));return;}
if(url.indexOf('open:')==0){window.open(url.substr(5));return;}
if(url.indexOf('http')==0 || url.substr(0,1)=='?'){addiframe(a);return;}
if(nowtabs && nowtabs.id && !a.id)a.id=nowtabs.id;
nowtabs = a;
if(changetabs(num))return true;
var s = '<td temp="tabs" oncontextmenu="tabsright(\''+num+'\',event);return false;"; nowrap onclick="changetabs(\''+num+'\',1)" id="tabs_'+num+'" class="active"><font>';
if(a.icons)s+='<i class="icon-'+a.icons+'"></i> ';
s+=a.name+'</font>';
if(!a.hideclose)s+='<span onclick="closetabs(\''+num+'\')">x</span>';
s+='</td>';
objtabs.append(s);
_changhhhsv(num);
_pdleftirng();
var rand = js.getrand(),i,oi=2,
ura = url.split(','),
dir = ura[0],
mode= ura[1];
url =''+dir+'/'+mode+'/rock_'+mode+'';
if(ura[2]){
if(ura[2].indexOf('=')<0){
oi=3;
url+='_'+ura[2]+'';
}
}
var urlpms= '';
for(i=oi;i<ura.length;i++){
var nus = ura[i].split('=');
urlpms += ",'"+nus[0]+"':'"+nus[1]+"'";
}
if(urlpms!='')urlpms = urlpms.substr(1);
var bgs = '<div id="mainloaddiv" style="width:'+viewwidth+'px;height:'+viewheight+'px;overflow:hidden;background:#000000;color:white;filter:Alpha(opacity=20);opacity:0.2;z-index:3;position:absolute;left:0px;line-height:'+viewheight+'px;top:0px;" align="center">'+js.ling(30)+'&nbsp;加载中...</div>';
$('#indexcontent').append(bgs);
a.urlpath = url+'.php';
objcont.append('<div temp="content" style="margin:10px;" id="content_'+num+'"></div>');
$.ajax({
url:'?m=index&a=getshtml&surl='+jm.base64encode(url)+'&num='+num+'&menuname='+jm.base64encode(a.name)+'&urlpms='+jm.base64encode(urlpms)+'',
type:'get',
success: function(da){
$('#mainloaddiv').remove();
var s = da;
s = s.replace(/\{rand\}/gi, rand);
s = s.replace(/\{adminid\}/gi, adminid);
s = s.replace(/\{adminname\}/gi, adminname);
s = s.replace(/\{mode\}/gi, mode);
s = s.replace(/\{dir\}/gi, dir);
s = s.replace(/\{params\}/gi, "var params={"+urlpms+"};");
var obja = $('#content_'+num+'');
if(num!='home')s='<div style="background:var(--main-bgcolor);overflow:auto;border-radius:5px"><div style="padding:10px">'+s+'</div></div>';
obja.html(s);
},
error:function(){
$('#mainloaddiv').remove();
var s = 'Error:加载出错喽,'+url+'';
$('#content_'+num+'').html(s);
}
});
tabsarr[num] = a;
return false;
}