/** * webos 1.2 * JS采用面向对象编写 * 仿webQQ基本功能 * 1.1 新加拖拽 桌面切换 右键 1级栏布局切换 应用自适应布局 * 1.2 新加全局桌面 代码借鉴1kb.js * @xiaofan * @2012.3.9 */ var menujson=null; var datajson=null; var iconjson=null; var totalnum =null; var DATA=new Object(); //update-begin--Author:zhangguoming Date:20140521 for:云桌面图标拖拽、用户自定义桌面 var iconCookieKey = "iconCookieKey"; var iconCookieKeyForSlider = "iconCookieKeyForSlider"; var cookieParam = {expires: 30}; /*默认左侧菜单*/ var defaultIconForSlider = [ // '297e20104620167201462016b5fe001f',/*用户管理*/ // '297e20104620167201462016b6020021' /*角色管理*/ ]; //update-end--Author:zhangguoming Date:20140521 for:云桌面图标拖拽、用户自定义桌面 //增加数据动态处理的过程 ////这里使用menuString来替换掉每个一级二级菜单的数据 function dataFlush(){ $.ajax({ url: "loginController.do?getPrimaryMenuForWebos", datatype: "json", async:false, type: "post", success: function (data) { //修改webOS界面菜单不出现的问题 var menu; menu = eval("(" +data+")"); var array = menu.msg.split("$$"); menujson=array[0]; menujson = eval("("+menujson+")"); iconjson=array[1]; iconjson = eval("("+iconjson+")"); datajson=array[2]; datajson = eval("("+datajson+")"); var totalnum1=array[3]; totalnum = totalnum1 - 1; calcuIconJson(); } }); } //update-begin--Author:zhangguoming Date:20140521 for:云桌面图标拖拽、用户自定义桌面 /** * 转换用户的桌面 */ function calcuIconJson() { var iconCookieData = $.cookie(iconCookieKey); var iconCookieDataForSlider = $.cookie(iconCookieKeyForSlider); if (iconCookieData) { var allIconIdArrOfCookie = new Array(); // cookie中所有的菜单图标Id var tempIconJson = {}; // 临时的图标对象 for (var attr in iconjson) { tempIconJson[attr] = new Array(); } // 处理桌面菜单 var arrColumn = iconCookieData.split('|'); $.each(arrColumn, function (index, content) { var iconName = content.split(':')[0]; //iconName var arrIconId = content.split(':')[1] ? content.split(':')[1].split('@') : ""; //单个序列ID $.each(arrIconId, function (index, content) { if (content) {//排除空值 tempIconJson[iconName].push(content); allIconIdArrOfCookie.push(content); } }); }); // 处理左侧菜单 if(iconCookieDataForSlider) { DATA.sApp = {}; defaultIconForSlider = new Array(); var arrIconId = iconCookieDataForSlider.split('@'); //单个序列ID $.each(arrIconId, function (index, content) { if (content) {//排除空值 for (var attrName in datajson.app) { if(content == attrName) { DATA.sApp[attrName] = datajson.app[attrName]; break; } } defaultIconForSlider.push(content); allIconIdArrOfCookie.push(content); } }); } // 处理新增的菜单图标id for (var attrName in iconjson) { for(var iconIndex in iconjson[attrName]) { var iconId = iconjson[attrName][iconIndex]; if(allIconIdArrOfCookie.indexOf(iconId) == -1) { tempIconJson[attrName].push(iconId); } } } iconjson = tempIconJson; } } //update-end--Author:zhangguoming Date:20140521 for:云桌面图标拖拽、用户自定义桌面 //工具类 Util = { formatmodel : function (str, model) { for (var k in model) { var re = new RegExp("{" + k + "}", "g"); str = str.replace(re, model[k]) } return str } } //面板类 Panel=function(){ return me={ hitTest:function(panel,x,y){//碰撞检测,检测坐标[x,y]是否落在panel里面 var pl,pt; return !( x<(pl=panel.offset().left) ||y<(pt=panel.offset().top) ||x>pl+panel.width() ||y>pt+panel.height() ); }, getIdx:function(panel){//获取节点在panel是第几个儿子节点 var ci=0; while(panel=panel.prev()){ ci++; } return ci; }, unSelecte:function(){//清除选中 return window.getSelection?function(){window.getSelection().removeAllRanges();}:function(){document.selection.empty();}; }() }; }(); //BODY Body=function(me){ //优先刷新出后台的数据以便其他方法中使用替换 dataFlush(); return me={ init:function(){ me.create(); me.bindEvent(); }, create:function(){ me.box=$('body'); me.setStyle(); }, bindEvent:function(){//清除选中 function move(evt){ window.getSelection?window.getSelection().removeAllRanges():document.selection.empty(); } function up(evt){ $(document).unbind('mousemove',move).unbind('mouseup',up); } $(document).bind('mousedown',function(){ $(document).bind('mousemove',move).bind('mouseup',up); }); }, addPanel:function(panel){ me.box.append(panel); }, setStyle:function(){ me.box.css({ backgroud:"none repeat scroll 0 0 transparent", display: "block", height:"500px" }); } }; }(); //创建桌面最外层类 Desktop=function(me){ return me={ init:function(){ me.create(); //me.setMenu();//绑定右键 return me; }, create:function(){ me.box=$("
"); Body.addPanel(me.box); }, addPanel:function(panel){ me.box.append(panel); }, show:function(){ me.box.show(); }, hide:function(){ me.box.hide(); }, setMenu:function(){ var MenuData = [ [{ text: "显示桌面", func: function() { } },{ text: "关闭所有", func: function() { Windows.closeAllWindow(); } }, { text: "锁屏", func: function() { } }], [{ text: "系统设置", func: function() { } },{ text: "主题设置", func: function() { Windows.openSys({ id :'themSetting', title :'设置主题', width :650, height:500, content :document.getElementById("themeSetting_wrap") }); } }, { text: "图标设置", data: [[{ text: "大图标", func: function() { Deskpanel.desktopsContainer.removeClass("desktopSmallIcon"); } }, { text: "小图标", func: function() { Deskpanel.desktopsContainer.addClass("desktopSmallIcon"); } }]] }], [{ text:"注销", func:function(){ } }] ]; me.box.smartMenu(MenuData, { name: "image" }); } }; }(); //桌面内部面板 Deskpanel = function(me){ var desktopWrapper = "
";//最外层容器 var desktopsContainer = "
"; var desktopContainer = "
"; var desktopAppListener = "
";//内部监听容器 var defaultIndex = 0, ////替换掉具体的一级菜单数量 defaultNum = 15, defautlSpace ={//默认尺寸 left:0, top:0, right:0, bottom:120 } return me ={ init:function(ops, firstLoad){ me.create(); me.addIcons(ops); me.space(defautlSpace); me.refresh(firstLoad); me.bindEvent(); me.addCurrnet(defaultIndex); return me; }, create:function(){ me.box=$(desktopWrapper);//桌面外层面板 me.desktopsContainer = $(desktopsContainer); me.createDesktopsContainer(defaultNum); //创建桌面外层容器 me.box.append(me.desktopsContainer); me.box.css({"left": "73px","right": "0px"}); me.desktopsContainer.css("left",73); Desktop.addPanel(me.box); me.Icon=[]; }, bindEvent:function(){ //桌面图标拖拽 me.desktopsContainer.find(".appListContainer").each(function(){ var desk = $(this); var index = desk.attr("index"); desk.sortable({ items:".appButton", connectWith :".dock_middle", opacity :"0.6", start:function(event,ui){ }, stop: function(event, ui) { var p = ui.item.parent(); if(p.hasClass("dock_middle"))ui.item.removeAttr("style");//落在侧边栏 Deskpanel.switchCurrent(index); Deskpanel.refreshIcon(); } }).disableSelection(); }); //浏览器改变刷新 $(window).resize(me.refresh); }, createDesktopsContainer:function(n){//桌面外层容器 n创建几层桌面 if(n&&n!=0){ for(var i =1;i<=n;i++){ me.desktopsContainer.append(me.addContainer(i))//填充容器 } } }, addContainer:function(i){ //添加容器 var c = me.createDesktopContainer(i); var a = me.createDesktopAppListener(i); c.append(a); return c ; }, createDesktopContainer:function(n){ //容器项 return $(Util.formatmodel(desktopContainer,{"index":n-1})); }, createDesktopAppListener:function(n){//容器监听项 return $(Util.formatmodel(desktopAppListener,{"index":n-1})); }, addIcons:function(ops){//添加应用 for(var i in ops){ var key = i.substring(i.length-1,i.length); me.addIcon(ops[i],key); } }, addIcon:function(icon,idx){//添加应用 idx 第几桌面 if(icon){ if($.isArray(icon)){//传入是数组 $.each(icon,function(){ me.addIcon(this.valueOf(),idx);//添加应用程序 }); return me ; } var Icon = typeof icon=='string'?appIcon_t1(icon):icon;//传入的是ID还是图标对象 me.Icon.push(Icon); me.box.find("div[customacceptdrop='"+parseInt(idx-1)+"']").append(Icon.box); } }, addCurrnet:function(n){//根据index设置当前桌面样式 me.desktopsContainer.find(".desktopContainer[index='"+n+"']").addClass("desktop_current"); }, removeCurrent:function(n){//根据index移除当前桌面样式 me.desktopsContainer.find(".desktopContainer[index='"+n+"']").removeClass("desktop_current"); }, switchCurrent:function(n){//切换index桌面样式 var dc = me.desktopsContainer; dc.find(".desktopContainer[index='"+n+"']") .addClass("desktop_current") .siblings().removeClass("desktop_current"); }, space:function(ops){//设置桌面各面板尺寸位置 ('top' in ops)&&(typeof ops.top=='string'?me.spaceTop+=ops.top:me.spaceTop=+ops.top||0); ('left' in ops)&&(typeof ops.left=='string'?me.spaceLeft+=ops.top:me.spaceLeft=+ops.left||0); ('right' in ops)&&(typeof ops.right=='string'?me.spaceRight+=ops.top:me.spaceRight=+ops.right||0); ('bottom' in ops)&&(typeof ops.bottom=='string'?me.spaceBottom+=ops.top:me.spaceBottom=+ops.bottom||0); return me; }, refresh:function(firstLoad){//刷新桌面 var ww = $(window).width(),//浏览器宽 wh = $(window).height();//浏览器高 me.width = ww-me.spaceRight -me.spaceLeft;//容器宽 me.height =wh-me.spaceTop - me.spaceBottom;//容器高 var desktopContainer = me.desktopsContainer.find(".desktopContainer"); var appContainer = desktopContainer.find(".appListContainer"); $(desktopContainer).each(function(i){//容器宽高 $(this).css({ left:me.width*i, height:me.height-me.spaceBottom }); }) $("#zoomWallpaperGrid,#zoomWallpaper").width(ww).height(wh);//背景图片div var r = me.row = ~~(me.height/112);//行数 me.desktopsContainer.css({//设置应用容器样式和位置 left:me.spaceLeft, top:me.spaceTop, width:me.width, height:me.height }); appContainer.each(function(){ $(this).css({ width:me.width, height:me.height, "margin-left": 28, "margin-top": 46, display: "block" }); }); me.refreshIcon(firstLoad); }, // update-begin--Author:zhangguoming Date:20140521 for:云桌面图标拖拽、用户自定义桌面 refreshIcon:function(firstLoad){//刷新应用 var r = ~~(me.height/112); var curIndex = 1; var iconCookieData = ""; me.desktopsContainer.find(".appListContainer").each(function(){ iconCookieData += "Icon" + curIndex + ":"; var icon = $(this).children(); for(var j= 0 ;jidx2){//往前移 me.box.children(".appListContainer[index='1']").append(icon.box,idx2); }else if(idx
"); Desktop.addPanel(this.box); }, addPanel:function(sidebar){ this.box.append(sidebar.pbox); } }); return me ={ init : function(ops){ me.create(ops.location); me.movePanel(); me.addIcon(ops.Icon); me.addToolList(); me.initDrag(); }, create:function(location){//创建 //创建上左右 侧边栏容器 me.leftPanel = SideBox({location:'left'}); me.rightPanel = SideBox({location:'right'}); me.topPanel = SideBox({location:'top'}); me.box = $('
'); me.pbox = $('
'); //创建父边栏容器 me[location+'Panel'].addPanel(me.pbox); me.location = location; me.Icon = []; me.pbox.addClass("dock_pos_"+location); me.pbox.append(me.box); me.leftPanel.box.append(me.pbox); Desktop.addPanel(me.leftPanel.box); Desktop.addPanel(me.rightPanel.box); Desktop.addPanel(me.topPanel.box); me.createStartTool(); me.createPinyinTool(); me.createSoundTool(); me.createSettingTool(); me.createThemeTool(); }, movePanel:function(){ //移动panel //初始化拖拽效果box dockEffectBox.init(); //绑定鼠标按下事件 me.pbox.bind("mousedown",function(e){ if($(e.target).css("cursor")=='pointer')return $(document).bind({ 'mousemove':drag, 'mouseup':drop }); e.preventDefault(); e.stopPropagation(); }); //判断是否在拖动 var flag = 0,deskWidth,deskHeight,location; function drag(e){ Panel.unSelecte(); if(!flag){ flag=1; deskWidth=Desktop.box.outerWidth(); deskHeight=Desktop.box.outerHeight(); dockEffectBox.show(); } var ex = e.pageX; var ey = e.pageY; if(ey"); //update-end--Author:JueYue Date:20140511 for:点击两次才才显示的bug me.start.powerFloat({ eventType: "click", offsets:{x:getX,y:-100}, target: $("#startMenuContainer") }); //update-begin--Author:xuelin Date:20170708 for:TASK #2217 【bug】云桌面,点击左下角加号,弹出系统操作页面,被遮挡------------------- function getX(){ var p =me.pbox.parent(); var pid = p.attr("id"); var key = pid.substring(0,pid.length-3); if(key=="left"){ if(p.css("height").replace("px","")<=825) return -60; else return 60; }else if(key=="top"){ return 0; }else{ return 60; } } //update-end--Author:xuelin Date:20170708 for:TASK #2217 【bug】云桌面,点击左下角加号,弹出系统操作页面,被遮挡---------------------- //update-end--Author:JueYue Date:20140511 for:点击两次才才显示的bug }, createPinyinTool :function(){//输入法 me.pinyin =$(Util.formatmodel(tool_a,{ "cmd":"Pinyin", "title":"输入法", "key":"pinyin" })); }, createSoundTool:function(){//声音设置 var sound = me.sound= $(Util.formatmodel(tool_a,{ "cmd":"Sound", "title":"静音", "key":"sound" })); sound.toggle(function(){ $(this).addClass("dock_tool_sound_mute").attr("title","取消静音"); },function(){ $(this).removeClass("dock_tool_sound_mute").attr("titile","静音"); }); }, createSettingTool:function(){//系统设置 me.settingtool = $(Util.formatmodel(tool_a,{ "cmd":"Setting", "title":"系统设置", "key":"setting" })); }, createThemeTool:function(){//主题设置 var theme = me.theme= $(Util.formatmodel(tool_a,{ "cmd":"Theme", "title":"主题设置", "key":"theme" })); me.bindTheme(); }, bindTheme:function(){ var themsSetting = $("#themeSetting_wrap"); me.theme.click(function(){ Windows.openSys({ id :'themSetting', title :'设置主题', width :650, height:500, content :document.getElementById("themeSetting_wrap") }); }); //update-end--Author:gaofeng Date:20140615 for:云桌面主题功能修复 $("a",themsSetting).live("click",function(){ //update-end--Author:gaofeng Date:20140615 for:云桌面主题功能修复 var a = $(this); var themeid = a.attr("themeid"); var src = themeid.substring(themeid.indexOf("_")+1,themeid.length); var h = $(window).height(); var w = $(window).width(); $("#zoomWallpaper").attr("src","plug-in/sliding/images/bg/"+src+".jpg").width(w).height(h); // update-end--Author:gaofeng Date:20140617 for:保存主题背景到cookie中不消失 $.cookie("myskin","plug-in/sliding/images/bg/"+src+".jpg",cookieParam); // update-end--Author:gaofeng Date:20140617 for:保存主题背景到cookie中不消失 $("#zoomWallpaperGrid").width(w).height(h); $("a",themsSetting).removeClass("themeSetting_selected"); a.addClass("themeSetting_selected"); }); }, addIcon:function(icon,idx){ if(icon){ if($.isArray(icon)){//传入的是数组 $.each(icon,function(){ me.addIcon(this.valueOf()); }); return me; } if(me.Icon.length==6){ var last=me.Icon[5];////替换掉具体的一级菜单数量 me.Icon.length=6; $(last.box).remove(); return; } var Icon=typeof icon=='string'?appIcon_t2(icon):icon;//传入的是程序的fid还是Icon对象 if(idx!=undefined){ me.Icon.splice(idx,0,Icon); me.box.append(Icon.box,idx); }else{ me.Icon.push(Icon); me.box.append(Icon.box); } } }, removeIcon:function(icon){ var idx = (Panel.getIdx(icon.box)); me.Icon.splice(idx,1); $(icon.box).remove(); }, getIdx:function(ex,ey){//获得位置 var off =me.pbox.offset(); switch(me.location){ case 'top': return~~((ex-off.left)/142); case 'left': case 'right': return~~((ey-off.top)/112); } }, addStyle:function(){//添加拖拽后的样式 me.pbox.removeClass().addClass("dock_container dock_pos_"+me.location); switch(me.location){ case "top": me.topPanel.box.css({"width":"100%","height":"73px"}).show(); me.leftPanel.box.css({"width":"0","height":"0"}).hide(); me.rightPanel.box.css({"width":"0%","height":"0"}).hide(); Deskpanel.box.css({"left":0,"right": 0}); Deskpanel.desktopsContainer.css("top",73); break; case "left": me.leftPanel.box.css({"width": "73px","height":"100%"}).show(); me.topPanel.box.css({"width":"0","height":"0"}).hide(); me.rightPanel.box.css({"width":"0%","height":"0"}).hide(); Deskpanel.box.css({"left": "73px","right": "0px"}); Deskpanel.desktopsContainer.css("left",73); break; case "right": me.rightPanel.box.css({"width": "73px","height":"100%"}).show(); me.leftPanel.box.css({"width": "0","height":"0"}).hide(); me.topPanel.box.css({"width":"0","height":"0"}).hide(); Deskpanel.box.css({"left":0,"right":73}); Deskpanel.desktopsContainer.css("top",0); break; } }, initDrag:function(){//绑定元素拖拽 var desk =Deskpanel.desktopsContainer.find(".appListContainer"); me.box.sortable({ connectWith: desk, items:".appButton", opacity :"0.6", scroll :true, start:function(event,ui){ }, stop:function(event,ui){ var item = ui.item; var p = item.parent(); if(p.hasClass("appListContainer")){ item.css("position","absolute"); } Deskpanel.refreshIcon(); } }).disableSelection(); } } }(); //导航栏 Navbar =function(me){ //优先刷新出后台的数据以便其他方法中使用替换 // dataFlush(); var _box = ""; var _innerBox = ""; var _userbox = ""; var _abox = "{num}"; var _abox2 = ""; var num =totalnum+1 ,////替换掉一级菜单的总数量 defaultnum=1, title = "请登录", usericon = "plug-in/sliding/images/jeecg.png"; return me = { init :function(){ me.create(); me.bindEvent();//绑定导航按钮单击事件 me.setPosition(); }, bindEvent:function(){ me.innerbox.find("a[cmd='switch']").click(function(){ var _this = $(this); var cmd = _this.attr("cmd[switch]"); var classname = $.trim(me.innerbox.attr("class")); var currentindex = parseInt(classname.substring(classname.length-1)); var index = parseInt(_this.attr("index")); me.bindSwitchDesktopAnimate(index,currentindex); me.innerbox.removeClass().addClass("indicator_container nav_current_"+parseInt(index+1)); }); me.box.draggable(); }, bindSwitchDesktopAnimate:function(t,c){//切换动画事件 t 目标桌面 c当前桌面 var left = 0; var c = parseInt(c-1); if(t
"); me.box.find(".indicator_wrapper").append(me.createInnerbox()); Desktop.addPanel(me.box); }, createInnerbox:function(){//创建内部容器 var con = me.innerbox = $(Util.formatmodel(_innerBox,{ "index":defaultnum })); con.append(me.createUser()); me.createIndicator(); con.append(me.createSearch()); con.append(me.createManage()); return con; }, createUser:function(){//创建用户头像 var user = me.userbox = $(Util.formatmodel(_userbox,{ "url":usericon, "title":title })); user.click(function(){ alert("It's xiaofan "); }); return user }, createIndicator:function(){//创建导航项 //增加数据动态处理的过程 ////这里使用menuString来替换掉每个一级二级菜单的数据 // dataFlush(); var i = 0; $.each(menujson,function(n,value){ var obj = Util.formatmodel(_abox,{ "num":i+1, "id":value.id, "index":i, "name":value.name }); i++; me.innerbox.append(obj); }) // for(var i =0;i<5;i++){ //// alert(ss[i].id); // var obj = Util.formatmodel(_abox,{ // "num":i+1, // "index":i // }); // me.innerbox.append(obj); // } }, createSearch : function(){//搜索 var search = me.search = $(Util.formatmodel(_abox2,{ "key":"search", "title":"搜索" })); //创建搜索栏 var pagelet_search_bar = $(""); var pageletSearchInput = $("",{ "class" : "pagelet_search_input", value : "搜索功能模块和应用..." }); var pageletSearchButton = $("",{ id : "pageletSearchButton", "class" : "pagelet_search_button", title :"搜索..." }); var pagelet_search_suggest =$(""); var sb_resultbox = $(""); // update-end--Author:gaofeng Date:20140615 for:云桌面搜索框屏蔽掉多余的展示内容 var sb_app_item_1 =$("
s-在“百度”搜索...
"); var sb_app_item_2 = $("
s-去系统应用搜搜...
"); pagelet_search_suggest.append(sb_resultbox).append(sb_app_item_1).append(sb_app_item_2); // update-end--Author:gaofeng Date:20140615 for:云桌面搜索框屏蔽掉多余的展示内容 pagelet_search_bar.append(pageletSearchInput).append(pageletSearchButton); Body.addPanel(pagelet_search_bar); Body.addPanel(pagelet_search_suggest); search.powerFloat({ width: pagelet_search_bar.width(), eventType:"click", offsets: { x: 5, y: 20 }, position:"3-1", target: pagelet_search_bar, showCall: function(){ //设置suggest结果框位置 var _offset = pagelet_search_bar.offset(); pagelet_search_suggest.offset({top:_offset.top+32,left:_offset.left}); } }); pageletSearchInput.focus(function(){ $(this).val(""); }).blur(function(){ toggleSearchSuggest(); //update-end--Author:gaofeng Date:20140614 for:云桌面搜索菜单,点击进入功能,搜索可直接连接到百度 var searchhtnl=$(this).val(); $(this).val("搜索功能模块和应用..."); $(".fsb_resultList").show(); //update-end--Author:gaofeng Date:20140614 for:云桌面搜索菜单,点击进入功能,搜索可直接连接到百度 }).keyup(function(){ var _this = $(this); var _val = _this.val(); $(".sb_resultBox_key").html(_val); if(_val=="o"){ $("#sb_resultBox").append("
  • 新奥尔
  • ") .show(); pagelet_search_suggest.show(); } if(_val==""){ pagelet_search_suggest.hide(); } }); var toggleSearchSuggest =function(){ var _val = pageletSearchInput.val(); if(_val==""){ pagelet_search_suggest.hide(); }else{ pagelet_search_suggest.show() } } return search ; }, createManage :function(){//全局视图 var manage = me.manage = $(Util.formatmodel(_abox2,{ "key":"manage", "title":"全局视图" })); manage.click(function(){ //显示全局桌面 关闭正常桌面 if(appManagerPanel){ appManagerPanel.show(); appManagerPanel.showItemsTurn(); appManagerPanel.resize(); Desktop.hide(); //设置列表区的高度 } }); return manage; }, setPosition :function(){//设置位置 var ww = $(window).width(); var mw = me.box.width(); me.box.css("left",parseInt(ww/2)-parseInt(mw/2)); } } }(); //全局应用管理 appManagerPanel = function(me){ var appManagerPanel ="";//创建全局桌面容器 var aMg_Close="";//关闭按钮 var aMg_dock_container ="
    "; var aMg_line_x = "
    ";//x轴线 var aMg_line_y = "
    ";//y轴线 var aMg_App_container = "
    ";//应用容器 var folderitem ="
    "; // update-begin--Author:zhangguoming Date:20140605 for:云桌面全局视图,菜单区内容的高度bug修复(有滚动条时,最后一个菜单被windows底部菜单栏遮盖的bug) // var folderinner ="
    "; var folderinner ="
    "; // update-end--Author:zhangguoming Date:20140605 for:云桌面全局视图,菜单区内容的高度bug修复(有滚动条时,最后一个菜单被windows底部菜单栏遮盖的bug) var scrollBar =""; return me = { init : function(){ me.create(); me.bindEvent(); me.resize(); }, create:function(){ me.box = $(appManagerPanel); me.aMg_close = $(aMg_Close); me.box.append(me.aMg_close) .append(me.cSidebarApp()) .append(aMg_line_x) .append(me.cDeskApp()); Body.addPanel(me.box); }, cSidebarApp:function(){//创建侧边栏界面 me.aMg_dock_container = $(aMg_dock_container); me.loadSidebarData(); return me.aMg_dock_container; }, loadSidebarData:function(){//侧边栏应用克隆到顶部 var sItems = Sidebar.box.find(".appButton").clone().appendTo(me.aMg_dock_container); }, cDeskApp:function(){//创建全局界面 me.aMg_App_container = $(aMg_App_container); me.loadDeskData(); return me.aMg_App_container; }, loadDeskData:function(){//加载当前桌面应用数据 到全局界面 Deskpanel.desktopsContainer.find(".appListContainer").each(function(){ var _this = $(this); var _index = parseInt(_this.attr("index")); var item = $(Util.formatmodel(folderitem,{ "index":_index, "key":_index+1 })); var inner = $(Util.formatmodel(folderinner,{ "index":_index, "key":_index+1 })) var outer =item.find(".folderOuter"); _this.children().each(function(){ inner.append(appIcon_amg1($(this).attr("fid")).box); }); outer.append(inner); outer.append(scrollBar); if(_index!=0){ outer.after(aMg_line_y);//纵轴线 } me.aMg_App_container.append(item); }); }, bindEvent:function(){ var folderitems =$(".folderItem",me.box); me.aMg_close.click(function(){//绑定关闭 me.hide(); folderitems.removeClass("folderItem_turn"); Desktop.show(); }); var item = folderitems.find(".folderInner");//绑定拖拽 item.sortable({ items:".appButton", connectWith :[item,me.aMg_dock_container], opacity :"0.6", stop: function(event, ui) { var item = ui.item; var p = item.parent(); if(item.parent().hasClass("aMg_dock_container")){ item.removeClass("amg_folder_appbutton"); } } }).disableSelection(); me.aMg_dock_container.sortable({ items:".appButton", connectWith :".folderInner", opacity :"0.6", stop: function(event, ui) { item = ui.item; var p = item.parent(); if(p.hasClass("folderInner")){ item.addClass("amg_folder_appbutton"); } } }).disableSelection(); }, showItemsTurn:function(){ $(".folderItem",me.box).show().addClass("folderItem_turn"); }, show:function(){ me.box.show(); }, hide:function(){ me.box.hide(); }, resize:function(){ var h = $(window).height() -60 ; me.aMg_App_container.height(h); } }; }(); //拖拽效果容器 dockEffectBox = function(me){ var _tbox =""; var _lbox =""; var _rbox =""; var _proxybox =""; var _maskbox=""; return me = { init : function(){ me.create(); }, create :function(){ me.tbox = $(_tbox); me.lbox = $(_lbox); me.rbox = $(_rbox); me.proxybox = $(_proxybox); me.maskbox = $(_maskbox); me.addDesktop(); }, addDesktop :function(){ Desktop.addPanel(me.tbox); Desktop.addPanel(me.lbox); Desktop.addPanel(me.rbox); Desktop.addPanel(me.proxybox); Desktop.addPanel(me.maskbox); }, show:function(){ me.tbox.show(); me.lbox.show(); me.rbox.show(); me.maskbox.show(); }, hide:function(){ me.tbox.hide(); me.lbox.hide(); me.rbox.hide(); me.maskbox.hide(); } }; }(); //底部栏容器类 BottomBar = function(me){ var _box = "
    "; var _NextBox = ""; var _PreBox = ""; var _taskContainner = "
    "; var bottonbarbg = "
    "; var bottomBarBgTask = "
    "; return me = { init:function(){ me.create(); Desktop.addPanel(me.box); Desktop.addPanel(bottonbarbg); Desktop.addPanel(bottomBarBgTask); }, create:function(){ var box =me.box = $(_box); me.innerbox = $("
    "); me.taskContainner = $(_taskContainner); me.taskContainner.append(me.innerbox); box.append(_NextBox); box.append(me.taskContainner); box.append(_PreBox); }, addItem:function(item){//像底部任务栏添加任务项 me.innerbox.append(item); var len = me.innerbox.children().length; var id = item.attr("id"); var w = item.width()*len+20; me.taskContainner.width(w); me.innerbox.css({"margin-right": 0,"width":(w)}); me.setCurrent(id); }, getItem:function(id){//根据ID查询底部任务栏 return me.innerbox.find("a[tid='"+id+"']"); }, getItemNum:function(){//得到当前任务数 return me.innerbox.children().size(); }, setCurrent:function(id){ me.addCurrent(id); me.removeItemSibling(id); }, addCurrent:function(id){//设置当前任务栏样式 me.innerbox .find("#"+id) .addClass("taskCurrent"); }, removeItemSibling:function(id){//移除当前任务同类样式 me.innerbox .find("#"+id) .siblings() .removeClass("taskCurrent"); }, getALLItemID :function(){//得到当前任务栏所有任务ID var items = me.innerbox.children(); var idArray =[]; items.each(function(){ var id =$(this).attr("id"); id =id.substring(id.lastIndexOf("_")+1,id.length); idArray.push(id); }) return idArray ; } } }(); //任务类 Task = $.Class({ init :function(op){ this.create(op); this.rightMenu(); }, create:function(op) { var task =$("
    ", { "class": "taskGroup taskGroupAnaWidth", id: "taskGroup_"+op.id+"_"+op.id }); var taskItemIcon = $("
    ",{ "class":"taskItemIcon" }); $("
    ").appendTo(taskItemIcon); var taskItemTxt = $("
    ",{ "class":"taskItemTxt", text : op.title }); var taskItemBox = $("
    ",{ "class":"taskItemBox", }); var taskA =$("",{ "class":"taskItem fistTaskItem", "href" :"#", id : "taskItem_"+op.id, "title" :op.title, "tid" :op.id, "appid":op.id+"_"+op.id }); taskA.append(taskItemIcon).append(taskItemTxt); taskItemBox.append(taskA); task.append(taskItemBox); this.box = task ; }, rightMenu:function(){ var taskmenu = [ [{ text:"最大化", func:function(){ var id = $(this).attr("id"); wid =id.substring(id.lastIndexOf("_")+1,id.length); $.dialog.list[wid].show().max(); } }, { text:"最小化", func:function(){ } } ], [{ text:"关闭", func:function(){ var id = $(this).attr("id"); wid =id.substring(id.lastIndexOf("_")+1,id.length); $.dialog.list[wid].close(); $("#"+id).remove(); } }] ] this.box.smartMenu(taskmenu, { name: "taskmenu" , offsetX :-100, offsetY :-100 }); } }); //窗体类 集成artDialog Windows = function(me){ return me = { showWindow : function(id){//art弹出 var array= $.dialog.list; var taskIds = BottomBar.getALLItemID(); var taskLen = taskIds.length; var api=array[id]; //update-end--Author:JueYue Date:20140511 for:底下菜单点击不消失的bug function changeLhgDialogFocus() { var foucsApi = null; for(var obj in $.dialog.list){ obj = $.dialog.list[obj]; var wrap = obj.DOM.wrap; var $wrap = $(wrap); if($wrap.css("visibility") == 'visible'){ if(foucsApi == null){ foucsApi = obj }else{ foucsApi = $wrap[0].style.zIndex > foucsApi.DOM.wrap[0].style.zIndex ?obj:foucsApi; } } } if(foucsApi){ $.dialog.focus.DOM.border.removeClass('ui_state_focus'); $.dialog.focus = foucsApi; foucsApi.DOM.border.addClass('ui_state_focus'); } } var wrap = api.DOM.wrap; var $wrap = $(wrap); if(taskLen >1){//判断任务个数 显示切换和焦点切换 if($wrap.css("visibility") == 'hidden'){ api.show().zindex(); }else{ if(!api.DOM.border.hasClass('ui_state_focus')){ api.zindex(); }else{ api.hide(); changeLhgDialogFocus(); } } }else{ if($wrap.css("visibility") == 'visible'){ api.hide(); }else{ api.show(); } } //update-end--Author:JueYue Date:20140511 for:底下菜单点击不消失的bug }, hideWindow :function(id){//隐藏 $.dialog.list[id].hide(); }, closeMinTask:function(id){//关闭任务 $("#taskGroup_"+id+"_"+id).remove(); }, closeAllWindow:function(){//关闭所有窗体 var list = $.dialog.list; for (var i in list) { list[i].close(); }; }, openSys :function(op){//打开系统窗体 $.dialog({ id :op.id, title :op.title, width :op.width, height:op.height, max:false, min:false, content :op.content }); }, openApp:function(id,title,url,icon,width,height){//打开应用窗体 var taskInner =BottomBar.innerbox; var taskItem = BottomBar.getItem(id); if(taskItem.length==1){ return ; }else{ var len = BottomBar.getItemNum();// 任务图标集合 大于7 不让添加 if(len>7&&len!=0){ return false; } var task = Task({//创建最小化任务图标 "id":id, "title":title, "icon":icon }); BottomBar.addItem(task.box); task.box.click(function(){ me.showWindow(id); BottomBar.setCurrent(task.box.attr("id")); }); //update-end--Author:JueYue Date:20140425 for:统一弹出插件 $.dialog({ id:id, lock : false, // update-end--Author:gaofeng Date:20140616 for:云桌面修复弹窗的多重覆盖问题 zIndex:1000+getDialogLength(), // update-end--Author:gaofeng Date:20140616 for:云桌面修复弹窗的多重覆盖问题 width:width, height:height, title:title, opacity : 0.3, min:false, content:'url:'+url, close:function(){ me.closeMinTask(id); } }).zindex(); //update-end--Author:JueYue Date:20140425 for:统一弹出插件 /*art.dialog.open(url,*//** 弹出ART窗体*//* { "id" :id, title: title, width:width, height:height, close:function(){ me.closeMinTask(id); } } );*/ } } } }(); function getDialogLength(){ var length = 0; for( var i in $.dialog.list ){ length++; } return length; } //图标基类 appIcon_amg= $.Class({ create:function(t) { this.box = $("
    "); } }); //图标类t0 appIcon_t0 = $.Class({ create :function(t){ this.box = $("
    "); this.setRightMenu(); }, setRightMenu:function(){ } }); //全局应用图标 appIcon_amg1 = appIcon_amg.extend({ init : function(fid){ this.fid = fid; //替换data.js数据——这里的方法貌似没有用到 this.app = datajson.app[fid]; // this.app = DATA.app[fid]; this.tx ="app"; this.create(); this.bindEvent(); }, create:function(){ this._super(1); this.box.attr({ id:"icon_app_"+this.app.appid+"_"+this.app.asc, appid:this.app.appid, fileid : this.app.appid, title:this.app.name, // update-begin--Author:zhangguoming Date:20140605 for:云桌面全局视图,添加菜单点击功能(弹出菜单后,关闭全局视图并返回桌面) url: this.app.url, // update-end--Author:zhangguoming Date:20140605 for:云桌面全局视图,添加菜单点击功能(弹出菜单后,关闭全局视图并返回桌面) uid :"app_"+this.app.appid }); var appIcon =$("
    ",{ id : "icon_app_"+this.app.appid+"_"+this.app.asc+"_icon_div", "class" : "appButton_appIcon" }); appIcon.append($("",{ alt:this.app.name , /*update-begin--Author:zhangguoming Date:20140509 for:云桌面图标管理*/ // src:'plug-in/sliding/icon/'+this.app.icon, src:this.app.icon, /*update-end--Author:zhangguoming Date:20140509 for:云桌面图标管理*/ "class":"appButton_appIconImg", id:'icon_app_'+this.app.appid+'_'+this.app.asc+'_img' })); var nameDiv = $("
    "); var name_inner = $("
    ",{ "class":'appButton_appName_inner', id:'icon_app_'+this.app.appid+'_'+this.app.asc+'_name', text:this.app.name }); var name_right =$("
    "); nameDiv.append(name_inner).append(name_right); var notify = $("
    ",{ "class": 'appButton_notify', id :'icon_app_'+this.app.appid+'_'+this.app.asc+'_notify', }); $("").appendTo(notify); var deleteDiv = $("
    ",{ title:'卸载应用' , id :'icon_app_'+this.app.appid+'_'+this.app.asc+'_delete', "class":'appButton_delete' }); this.box.append(appIcon).append(nameDiv).append(notify).append(deleteDiv); }, bindEvent:function(){ // update-begin--Author:zhangguoming Date:20140605 for:云桌面全局视图,添加菜单点击功能(弹出菜单后,关闭全局视图并返回桌面) this.box.click(function(e){ e.preventDefault(); e.stopPropagation(); var _this = $(this); var id = _this.attr("appid"); var title = $.trim(_this.text()); var url =_this.attr("url"); var icon =_this.find("img").attr("src").split("/")[3]; Windows.openApp(id,title,url,icon,1000,500); appManagerPanel.hide(); Desktop.show(); // update-end--Author:zhangguoming Date:20140605 for:云桌面全局视图,添加菜单点击功能(弹出菜单后,关闭全局视图并返回桌面) }); } }); //来至桌面的图标 appIcon_t1 = appIcon_t0.extend({ init : function(fid){ this.fid = fid; // //替换data.js数据 this.app = datajson.app[fid]; // this.app = DATA.app[fid]; this.tx =1; this.create(fid); this.bindEvent(); }, create:function(fid){ this._super(1); this.box.attr({ id:"icon_app_"+this.app.appid+"_"+this.app.asc, appid:this.app.appid, fileid : this.app.appid, title:this.app.name, uid :"app_"+this.app.appid , fid: fid, //TODO:加载url地址 url:this.app.url // url:"userController.do?user" }); var appIcon =$("
    ",{ id : "icon_app_"+this.app.appid+"_"+this.app.asc+"_icon_div", "class" : "appButton_appIcon" }); appIcon.append($("",{ alt:this.app.name , /*update-begin--Author:zhangguoming Date:20140509 for:云桌面图标管理*/ // src:'plug-in/sliding/icon/'+this.app.icon, src:this.app.icon, /*update-end--Author:zhangguoming Date:20140509 for:云桌面图标管理*/ "class":"appButton_appIconImg", id:'icon_app_'+this.app.appid+'_'+this.app.asc+'_img' })); var nameDiv = $("
    "); var name_inner = $("
    ",{ "class":'appButton_appName_inner', id:'icon_app_'+this.app.appid+'_'+this.app.asc+'_name', text:this.app.name }); var name_right =$("
    "); nameDiv.append(name_inner).append(name_right); var notify = $("
    ",{ "class": 'appButton_notify', id :'icon_app_'+this.app.appid+'_'+this.app.asc+'_notify' }); $("").appendTo(notify); var deleteDiv = $("
    ",{ title:'卸载应用' , id :'icon_app_'+this.app.appid+'_'+this.app.asc+'_delete', "class":'appButton_delete' }); this.box.append(appIcon).append(nameDiv).append(notify).append(deleteDiv); }, bindEvent:function(){//绑定事件 this.box.click(function(e){ e.preventDefault(); e.stopPropagation(); var _this = $(this); var id = _this.attr("appid"); var title = $.trim(_this.text()); // var url ="http://www.jeecg.org"; var url =_this.attr("url"); var icon =_this.find("img").attr("src").split("/")[3]; Windows.openApp(id,title,url,icon,1400,600); }); } }); //来至侧边框的图标 appIcon_t2 = appIcon_t0.extend({ init:function(fid){ this.fid = fid; this.sApp = DATA.sApp[fid]; this.tx = 2; this.create(); this.bindEvent(); }, create : function(){ this._super(2); this.box.attr({ id:"icon_app_"+this.sApp.appid+"_"+this.sApp.asc, appid:this.sApp.appid, fileid : this.sApp.appid, title:this.sApp.name, // update-begin--Author:zhangguoming Date:20140521 for:云桌面图标拖拽、用户自定义桌面 uid :"app_"+this.sApp.appid, url:this.sApp.url // update-end--Author:zhangguoming Date:20140521 for:云桌面图标拖拽、用户自定义桌面 }); var appIcon =$("
    ",{ id : "icon_app_"+this.sApp.appid+"_"+this.sApp.asc+"_icon_div", "class" : "appButton_appIcon" }); appIcon.append($("",{ alt:this.sApp.name , // update-begin--Author:zhangguoming Date:20140521 for:云桌面图标拖拽、用户自定义桌面 // src:'plug-in/sliding/icon/'+this.sApp.icon, src:this.sApp.icon, // update-end--Author:zhangguoming Date:20140521 for:云桌面图标拖拽、用户自定义桌面 "class":"appButton_appIconImg", id:'icon_app_'+this.sApp.appid+'_'+this.sApp.asc+'_img' })); var nameDiv = $("
    "); var name_inner = $("
    ",{ "class":'appButton_appName_inner', id:'icon_app_'+this.sApp.appid+'_'+this.sApp.asc+'_name', text:this.sApp.name }); var name_right =$("
    "); nameDiv.append(name_inner).append(name_right); var deleteDiv = $("