; (function (root, factory) { if (typeof define === 'function' && define.amd) { // AMD define(['jquery'], factory); } else if (typeof exports === 'object') { // Node, CommonJS之类的 module.exports = factory(require('jquery')); } else { // 浏览器全局变量(root 即 window) root.AmpDialog = factory(root.jQuery); } } (this, function ($) { var AmpDialog = function (options) { var DEFAULT = { title: '', type: 'dialog', //TODO:alter | confirm | dialog mask: true, width: 500, height: undefined, theme: '', //样式 //远程加载文档, 参考jQuery.load // remote: { // url:'', //url // params: {}, //params // callback: function(){} //callback // } // remote 和content 不能同时存在 remote: null, content: '', onConfirm: function () { //this instanceof AmpDialog // 点击确定时的callback }, onCancel: function () { //this instanceof AmpDialog //点击取消和关闭时的 callback }, template: [ '
', '
', '
', '

', '', '
', '
', '', '
', '
', '
' ].join('') }; this.$element = null; $.extend(this, DEFAULT, options); this.init(); return this; }; AmpDialog.prototype.init = function () { this._renderDOM(); this.bindEvents(); this.show(); }; AmpDialog.prototype.bindEvents = function () { this.$element .on('click', '.amp-dialog-close', $.proxy(this.hide, this)) .on('click', '.amp-dialog-cancel', $.proxy(this.hide, this)) .on('click', '.amp-dialog-ok', $.proxy(this.clickOk, this)); }; // 根据配置渲染DOM AmpDialog.prototype._renderDOM = function () { var $element = $(this.template), $title, $body; var self = this; $title = $element.find('.amp-dialog-title'); $body = $element.find('.amp-dialog-body'); self.type = $.trim(self.type); //set class $element.addClass(function () { var ret = []; if (self.type === 'alert' || self.type === 'confirm') { ret.push('amp-dialog__' + self.type); } if (self.theme) { ret.push(self.theme); } if (self.mask) { ret.push('amp-dialog--mask'); } return ret.join(' '); }); //set title $title.text(this.title); //远程加载 if (this.remote) { var args = this.remote; var iframe = document.createElement('iframe'); iframe.src = args.url; // $body.load(args.url, args.params, args.callback) $body.append(iframe); $body.css({ overflow: 'hidden' }); } else { $body.append(this.content); } $element.find('.amp-dialog-content').css({ width: self.width, height: self.height }); if (self.height) { $body.height(self.height - 106); } this.$element = $element; this.$element.appendTo($('body')); this.$element.niceScroll(); return this; }; // 打开dialog: AmpDialog.prototype.show = function () { this.$element.addClass('amp-dialog__active'); }; // 关闭 dialog AmpDialog.prototype.hide = function () { this.onCancel.call(this, this.$element); this.$element.remove(); }; AmpDialog.prototype.clickOk = function () { this.onConfirm.call(this, this.$element); this.$element.remove(); }; var _wrap = function (options) { return new AmpDialog(options); }; return _wrap; })); /* 使用方法: var dialog = window.AmpDailog({ //config }) dialog.hide() */ ;(function (AmpFav) { //刷新widget AmpFav.refreshFavWidget = function(widgetId, $container){ var $widget = $container.find(widgetId); if($widget.length > 0){ $widget.after("<"+widgetId+">").remove(); } }; /** * 处理收藏操作 * @param {String} flag unFaviroteApp:取消收藏, faviroteApp:收藏 * @param {String | jQueryObj} $obj appId或jquery对象 * @param {String} clickPlaceFlag 点击源 * @param {Function} callback */ AmpFav.favoriteAction = function(flag, $obj, clickPlaceFlag, callback){ var type = clickPlaceFlag !== 'app' ? '1' : '0'; var appId = typeof($obj) === "string" ? $obj : $obj.closest(".favoriteFlag").attr("data-appid"); var dataUrl = AMPConstant.jsonpRequestPath + AMPConstant.APIList.favoriteApp; if(flag === "unFaviroteApp"){ dataUrl = AMPConstant.jsonpRequestPath + AMPConstant.APIList.unFaviroteApp; } if(flag === "unFaviroteApp"){ AmpUtils.showPrompt("delete"); }else{ AmpUtils.showPrompt("collection"); } AmpServices.unOrFavoriteApp(dataUrl, {"appId":appId, "type": type}) .done(function(){ //同步所有模块的收藏数据 favoriteSynchronous(appId, flag); if(typeof(callback) === "function"){ callback(); } //去掉收藏的tooltip $("div.amp-tooltip").remove(); Wisedu.userActionDataSend(); }); }; /** * 收藏处理 * @param $obj * @param clickPlaceFlag 点击源 container 或 header */ function doFavorite($obj){ var $collectionPrompt = $("#collectionPrompt"); if($collectionPrompt.length !== 0){ $("body").children("#collectionPrompt").remove(); } var $item = $obj.closest(".appFlag"); var clickPlaceFlag = $item.attr('data-type'); clickPlaceFlag = clickPlaceFlag === '1' ? 'folder' : 'app'; if($obj.hasClass("active")){ AmpFav.favoriteAction("unFaviroteApp", $item.attr("data-appid"), clickPlaceFlag); }else{ if($item.attr("data-haspermission") === "true"){ AmpFav.favoriteAction("faviroteApp", $item.attr("data-appid"), clickPlaceFlag); }else{ AmpUtils.showPrompt("needauth"); } } } /** * 同步页面上的收藏数据 * @param appId * @param flag 解除收藏或添加收藏 */ function favoriteSynchronous(appId, flag){ var $iframeList = $("#iframeList"); //将办事大厅,服务中心,收藏夹的app和已经打开的app进行同步 $iframeList.find('iframe').each(function(){ var $iframe = $(this); var iframeAppId = $iframe.attr('data-appid'); if(iframeAppId === appId){ //将已经打开的app进行同步 appFavoriteActiveHandle($(this), flag); }else{ //将办事大厅,服务中心,收藏夹的app进行同步 var iframeSrc = $iframe.attr('src'); if(iframeSrc.indexOf('ehall.html') > 0 || iframeSrc.indexOf('serviceCenter.html') > 0 || iframeSrc.indexOf('favorite.html') > 0 || iframeSrc.indexOf('personalCenter.html') > 0){ var iframeWindow = this.contentWindow; var $existApp = $(iframeWindow.document).find("div[data-appid="+appId+"]"); //收藏夹的应用同步处理 if(iframeSrc.indexOf('favorite.html') > 0){ //当移除收藏时将app dom删除,否则刷新收藏页 if(flag === "unFaviroteApp"){ $existApp.each(function(appIndex, appItem){ $(appItem).remove(); }); }else{ iframeWindow.AmpFavoritePage.renderMyFavTab({containLabels: true,serarchKey: ""}); } }else{ $existApp.each(function(){ appFavoriteActiveHandle($(this), flag); }); } if(iframeSrc.indexOf('personalCenter.html') > 0){ AmpFav.refreshFavWidget("widget-fav-recommend-01", iframeWindow.$('body')); } } } }); } /** * 添加或移除页面上的收藏状态 * @param $item app或打开的iframe对象 * @param flag 取消或收藏的标志位 */ function appFavoriteActiveHandle($item, flag){ if($item.length > 0){ var $favoriteCountItem = $item.find(".text-collection"); var favoriteCount = 0; var changeFavoriteCount; if ($favoriteCountItem && $favoriteCountItem.length == 1) { changeFavoriteCount = true; favoriteCount = parseInt($favoriteCountItem.text()); } else { changeFavoriteCount = false; } if(flag === "unFaviroteApp"){ $item.attr("data-favorite", ""); favoriteCount = favoriteCount - 1; }else{ $item.attr("data-favorite", "active"); favoriteCount = favoriteCount + 1; } if (changeFavoriteCount && changeFavoriteCount == true) { if (favoriteCount < 0) { favoriteCount = 0; } else { // ignore } $favoriteCountItem.text(favoriteCount); } } } /** * 改变文件夹收藏按钮的状态 * @param item */ AmpFav.changeCurationType = function(item){ var $collectionBtn = $("#detailCollectionApp"); if(item.favorite === "1"){ $collectionBtn.addClass("hidden").removeClass("disabled").parent().find(".detail-collection-success").show(); }else{ $collectionBtn.removeClass("disabled"); } var $appDetail = $("#curationDetail"); $appDetail.find("iframe").remove(); $appDetail.find(".detail-body").show(); $("#detailLogin").parent().remove(); }; //给app添加收藏图标 AmpFav.appFavIconHoverInit = function($body){ //hover时显示收藏图标 $body.on("mouseover", ".appFlag", function(){ var $item = $(this); var $appTitle = $item.find(".appTitleFlag"); if($appTitle.length > 0){ showAppFavIcon($appTitle); }else if($item.hasClass("appTitleFlag")){ showAppFavIcon($item); } }); //鼠标移除时删除收藏图标 $body.on("mouseout", ".appFlag", function(e){ removeAppFavIcon(e, $body); }); //点击app收藏按钮 $body.on("click", "#appFavIcon", function(e){ if(!AMP.isLoginFlag){ //未登录,打开登录iframe AmpHeader.openHeadLoginPage(); }else{ //登录过了,直接收藏 doFavorite($(this)); } e.stopPropagation(); }); }; //显示收藏图标 function showAppFavIcon($targetObj){ if(!$targetObj.hasClass("appTitleFlag")){ return; } if($targetObj.find("#appFavIcon").length === 0){ var $appItem = $targetObj.closest(".appFlag"); var appId = $appItem.attr("data-appid"); var _addClass = $appItem.attr("data-favorite"); if(_addClass !== "active"){ _addClass = ""; } var favIconRight = parseInt($targetObj.attr("data-fav-icon-r"), 10); var favIconTop = parseInt($targetObj.attr("data-fav-icon-t"), 10); var favIconOffset = {}; if(favIconRight || favIconRight === 0){ favIconOffset.right = favIconRight+""; } if(favIconTop || favIconRight === 0){ favIconOffset.top = favIconTop+""; } $targetObj.append(createAppFavIconHtml(appId, _addClass, favIconOffset)); } } //删除收藏图标 function removeAppFavIcon(e, $body){ if($(e.relatedTarget).attr("id") === "appFavIcon"){ return; } $body.find("#appFavIcon").remove(); } //创建收藏图标 function createAppFavIconHtml(appId, _addClass, iconOffset){ var _style = ""; if(iconOffset.right){ _style += "right: " + iconOffset.right + "px;"; } if(iconOffset.top){ _style += "top: " + iconOffset.top + "px;"; } return ''; } })(window.AmpFav = window.AmpFav || {}); /** ----------------- 书写范例 ------------------- * 此文件定义命名空间书写范例,可以不删除,最终代码合并压缩时会自动删除掉注释 * * 1,命名空间和undefined作为参数传递,确保: * (a) 命名空间可以在局部修改,不重写函数外部上下文 * (b) undefined 的参数值是确保undefined,避免ES5规范里定义的undefined * * 2,匿名函数前加一个分号,确保合并压缩时不会出现错误 * * 3,根据各自模块,替换namespace ;(function (namespace, undefined) { // 私有属性 var foo = "foo"; var bar = "bar"; // 公有方法和属性, 别的模块可以通过namespace.sayHello()调用 namespace.foobar = "foobar"; namespace.sayHello = function () { say("Hello World!"); }; // 私有方法 function say(str) { }; })(window.namespace = window.namespace || {}); */ ;(function (AmpHeader, undefined) { AmpHeader.headerSearchListen = function () { //头部小搜索icon点击事件 $(".amp-header-search-container").on("click", "div.amp-header-search-icon-box", function () { $("body").addClass("head-search-open"); }); /** * 特殊字符校验`'":~!@#$%^&*{}<>?|\/+=¥‘“? * 如果输入框上有noCheckForbidden则不做校验 */ var checkForbiddenChar = function (str) { var reg = /[`'"\~!@##\$%\^&\*\{\}<>\?\|\\/\+=¥‘“?]+/g; var flag = reg.test(str); var val = str.replace(reg, ''); return {flag: flag, val: val}; }; //头部查询 $("#searchAppInput").on({ "keyup": function (e) { var key = $.trim($(this).val()), keyLen = key.length, historyBlock = $("#historyBlock"); var $searchKeyDelete = $("#searchKeyDelete"); if (keyLen === 0) { $searchKeyDelete.css({"opacity": "0", "filter": "Alpha(opacity=0)"}); $("#searchBlock").hide(); } else { historyBlock.hide(); if (keyLen > 38) { key = key.substring(0, 38); $("#searchAppInput").val(key); } $searchKeyDelete.css({"opacity": "1", "filter": "Alpha(opacity=100)"}); $("#searchKeyShow").html(key); $("#searchBlock").show(); } e = e || window.event; var currKey = e.keyCode || e.which || e.charCode; if (currKey == 13) { var result = checkForbiddenChar(key); historyBlock.hide(); AmpUtils.openFixedPage({"flag": "serviceCenter", "searchData": {key: result.val}}); $(this).val("").blur(); $searchKeyDelete.css({"opacity": "0", "filter": "Alpha(opacity=0)"}); e.stopPropagation(); } }, "focus keyup": function (e) { e = e || window.event; var currKey = e.keyCode || e.which || e.charCode; if (currKey == 13) { return; } $(this).closest(".amp-header-search-box").addClass("active"); if ($(this).val() == "") { AmpUtils.getUserSearchHistory($("#historyBlock")); } } }); //查询关键字弹出框点击处理 $("#searchBlock").on("click", "li", function () { var value = $(this).find("#searchKeyShow").text(); AmpUtils.goBackIndex("headSearch"); AmpHeader.headTabChangeDoActive($("#headTab").find("[data-flag=fwzx]")); AmpUtils.openFixedPage({"flag": "serviceCenter", "searchData": {key: value}}); $("body").removeClass("head-search-open"); }); //删除关键字处理 $("#searchKeyDelete").on("click", function () { $("#searchAppInput").val(""); $("#searchKeyShow").html(""); $("#searchBlock").hide(); $(this).css({"opacity": "0", "filter": "Alpha(opacity=0)"}); }); // 搜索历史点击处理 $("#historyBlock").on("click", "li", function () { var value = $(this).find("span").text(); AmpUtils.openFixedPage({"flag": "serviceCenter", "searchData": {key: value}}); $("body").removeClass("head-search-open"); }); $("#siteSwitch").on("click", function () { var $switch = $(this); var switchOffset = $switch.offset(); var switchWidth = $switch.outerWidth(); var switchHeight = $switch.outerHeight(); var $roleBox = $("#headerBarRoleBox"); var roleBoxWidth = $roleBox.outerWidth(); var roleBoxLeft = switchOffset.left + switchWidth - roleBoxWidth; var roleBoxTop = switchOffset.top + switchHeight + 4; $roleBox.css({"left": roleBoxLeft, "top": roleBoxTop}).toggleClass("bh-active"); setTimeout(function () { $roleBox.getNiceScroll().resize(); }, 250); }); $("#user").on("click", function () { var $switch = $(this); var switchOffset = $switch.offset(); var switchWidth = $switch.outerWidth(); var switchHeight = $switch.outerHeight(); var $roleBox = $("#headerBarUserInfoBox"); var roleBoxWidth = $roleBox.outerWidth(); var roleBoxLeft = switchOffset.left + switchWidth - roleBoxWidth; var roleBoxTop = switchOffset.top + switchHeight + 4; $roleBox.css({"left": roleBoxLeft, "top": roleBoxTop}).toggleClass("bh-active"); }); $(".current-theme").on("click", function () { var $roleBox = $(".theme-box"); $roleBox.toggleClass("bh-active"); }); $("#headerBarUserInfoBox").on("click", ".theme-item", function () { var $selectedItem = $(this); var $currentItem = $(".current-theme"); var themeName = $selectedItem.attr("data-theme-name"); var themeTitle = $selectedItem.find(".theme-name").text(); $(".theme-item").removeClass("active"); $selectedItem.addClass("active"); $currentItem.removeClass().addClass("current-theme").addClass(themeName); $currentItem.find(".theme-name").text(themeTitle); $(".theme-box").removeClass("bh-active"); }); $("#headerBarRoleBox").on("click", ".bh-headerBar-roleBox-title", function () { var $item = $(this); $("#siteSwitch").text($item.text()); $("#headerBarRoleBox").removeClass("bh-active"); AmpSiteManage.getSiteItemData($item, AmpHeader.changeHeaderToSiteTabs); }); // 问题反馈相关 $("#feedbackIcon").on("click", function () { $("#feedbackDropdown").toggleClass("active"); }); // 点击问题反馈 $("#feedback").on("click", function () { AmpFeedback.window({ uploadUrl: AMPConstant.requestPath + AMPConstant.APIList.feedbackImgUpload, submitUrl: AMPConstant.jsonpRequestPath + AMPConstant.APIList.feedbackSubmit }); }); $("#feedbackDropdown").on("click", 'a', function () { if ($(this).hasClass('disabled')) { return; } $("#feedbackDropdown").removeClass("active"); }); }; AmpHeader.headerIconListen = function () { var $headerMini = $("#headerMini"); var $moreTabsCont = $('#moreTabsContainer'); //头部tab切换的处理 $headerMini.on("click", ".head-tab-item", function () { var $item = $(this); openTabPage($item); }); $moreTabsCont.on("click", ".head-tab-item", function () { var $item = $(this); openTabPage($item); }); //展开更多tab页 $headerMini.on("click", "#moreTabBtn", function () { showMoreTabsContainer(); }); $moreTabsCont.on("click", ".tab-close", function () { removeOpenTab($(this), 'more'); }); $headerMini.on("click", ".tab-close", function () { removeOpenTab($(this), 'head'); }); //打开登录页 $("#headLogin").on("click", function () { AmpHeader.openHeadLoginPage(); }); //用户菜单 $("#homeMenuDropdown").on("click", "li", function () { $("#homeMenu").removeClass("active"); $("#homeMenuDropdown").removeClass("active"); var $item = $(this); if ($item.attr("data-flag") === "manageCenter") { window.open(AMPConstant.requestPath + $item.attr("data-href")); } else if ($item.attr("data-flag") === "flowManage") { window.open($item.attr("data-href")); } else if ($item.attr("data-flag") === "logout") { window.location.href = AMPConstant.requestPath + $item.attr("data-href") + "?service=" + window.location.href; } else { window.location.href = AMPConstant.requestPath + $item.attr("data-href"); } }); $("#headerBarUserInfoBox").on("click", "[data-flag-btn]", function () { var $item = $(this); if ($item.attr("data-flag-btn") === "manageCenter") { $("#headerBarUserInfoBox").removeClass("bh-active"); window.open(AMPConstant.requestPath + $item.attr("data-href")); } else if ($item.attr("data-flag-btn") === "logout") { window.location.href = AMPConstant.requestPath + $item.attr("data-href") + "?service=" + window.location.href; } }); // 打开应用后头部的查看应用详情 $("#headerAppHelp").on("click", function () { if ($(this).hasClass('disabled')) { return; } parent.window.AmpOpenDetail.openDetail($(this), "header"); parent.window.Wisedu.userActionDataSend(); }); }; //点击tab页时,打开tab页的应用 function openTabPage($item) { if ($item.hasClass("active")) { return; } $("#searchAppInput").val("").focusout(); var dataFlag = $item.data("flag"); if (dataFlag === "site") { openSiteApp($item); //将item数据存入session中,便于刷新处理 sessionStorage.setItem("ampRefreshTabId", $item.attr("data-menu-id")); } else { appTabChange($item); if (!$("body").hasClass("head-search-open")) { setTimeout(function () { $("#headerMini").find(".amp-header-search-icon-box").click(); }, 20); } if ($item.attr("data-appid") !== "favorite") { $("#headerAppHelp").attr("data-appid", $item.attr("data-appid")).removeClass('disabled'); } else { $("#headerAppHelp").addClass('disabled'); } } var $moreTabsCont = $('#moreTabsContainer'); $('#headTab').find('div.active').removeClass('active'); $moreTabsCont.find('div.active').removeClass('active'); $item.addClass('active'); //帮助文档 $moreTabsCont.removeAttr("data-appid").addClass('disabled'); //去掉右侧栏滑出的遮盖层 var $rightSideCover = $("#rightSideCover"); if ($rightSideCover.length > 0) { $rightSideCover.animate({"opacity": "0"}, 500, function () { $rightSideCover.remove(); }); } //验证用户的session是否已经失效 AmpUtils.checkLogin(); $moreTabsCont.hide().removeAttr('flag'); if ($item.closest('#moreTabsContainer').length > 0) { $('#moreTabBtn').addClass('active'); } else { $('#moreTabBtn').removeClass('active'); } } /** * 切换头部tab时,执行切换操作和给body添加对应tab的样式类 * @param $obj */ AmpHeader.headTabChangeDoActive = function ($obj) { $("#headTab").find(".active").removeClass("active"); $("#moreTabsContainer").find(".active").removeClass("active"); $obj.addClass("active"); if ($obj.closest("#moreTabsContainer").length > 0) { $("#moreTabBtn").addClass('active'); } }; /** * 在头部添加tab * @param appData */ AmpHeader.addTopHeadTab = function (appData) { var $moreTabsCont = $("#moreTabsContainer"); var $headTab = $("#headTabsContent"); var tabItemHtml = '
' + appData.title + '' + '
'; $headTab.find(".active").removeClass("active"); var moreTabBtn = $('#moreTabBtn'); if (moreTabBtn.hasClass('show')) { $moreTabsCont.find(".active").removeClass("active"); $moreTabsCont.append(tabItemHtml); moreTabBtn.addClass('active'); } else { $headTab.append(tabItemHtml); resetHeaderTabsContentWidth(); } }; function appTabChange($item) { AmpHeader.headTabChangeDoActive($item); AmpOpenApp.openOneApp($item); } AmpHeader.addHeadTabFromConfig = function () { var tabHeadData = AMPConfigure.tab_head; if (tabHeadData && tabHeadData.length > 0) { for (var i = 0; i < tabHeadData.length; i++) { var currentTabHead = tabHeadData[i]; var data_flag = currentTabHead.data_flag; var $tabObj = $("#headTab").find("[data-flag=" + data_flag + "]"); $tabObj.show().text(currentTabHead.name); if (currentTabHead.url) { var needAuth = currentTabHead.needAuth; var url = currentTabHead.url; if (needAuth) { var date = new Date().getTime(); url += (url.indexOf('?') > -1) ? '&id=' + date : '?id=' + date; $tabObj.attr("data-url", url).attr("data-needauth", needAuth); } } } } }; //从头部点击用户登录,进入登陆页 AmpHeader.openHeadLoginPage = function () { var href = window.location.href; window.location.href = AMPConstant.requestPath + "login?service=" + href; }; /** * 改变头部站点tab * @param site 站点数据 * @param flag 判断该切换站点是否是重新刷新页面来的,当是refresh时取sessionStorage中的值,否则取第一个tab */ AmpHeader.changeHeaderToSiteTabs = function (site, flag) { if (site) { var siteData = site.data; if (siteData) { removeHeadAppTabs(); var siteId = ''; var siteObj = {}; var $header = $("#headTabsContent"); var siteLen = siteData.length; var sitesHtml = ''; for (var i = 0; i < siteLen; i++) { var siteItem = siteData[i]; var menuId = siteItem.menuId; siteId = siteItem.siteId; siteObj[menuId] = siteItem; AmpSiteManage.setCurrentSiteId(siteId); sitesHtml += '
' + siteItem.menuName + '
'; } AMP.siteWidgetsMap = siteObj; $header.html(sitesHtml); //选择存放的tab changeToSelectTab(); //给title过长的tab添加title属性 checkAndResetAttrTitle(); if (flag === 'refresh') { var siteTitle = $('#headerBarRoleBox').find('div[data-site-id="' + siteId + '"]').text(); $("#siteSwitch").text(siteTitle); } //将item数据存入session中,便于刷新处理 sessionStorage.setItem("ampRefreshSiteId", siteId); } } AmpHeader.setHeaderTabsWidth('site'); }; function resetHeaderTabsContentWidth() { var headTab = $('#headTab'); var $headContent = $("#headTabsContent"); var $moreBtn = $('#moreTabBtn'); var headTabWidth = headTab.width(); var moreBtnWidth = $moreBtn.outerWidth(true); var canUseWidth = headTabWidth - moreBtnWidth; var headContentWidth = 0; var moreItemsHtml = ''; $headContent.find('div').each(function () { var $tabItem = $(this); if (!moreItemsHtml) { var itemWidth = $tabItem.outerWidth(true); headContentWidth += itemWidth; if (headContentWidth > canUseWidth) { moreItemsHtml += $tabItem[0].outerHTML; $tabItem.remove(); } } else { moreItemsHtml += $tabItem[0].outerHTML; $tabItem.remove(); } }); if (moreItemsHtml) { $moreBtn.addClass('show'); } else { $moreBtn.removeClass('show'); } addMoreTabsToPage(moreItemsHtml); headTab.addClass('amp-show-block'); } function addMoreTabsToPage(moreItemsHtml) { $('#moreTabsContainer').html(moreItemsHtml); } function showMoreTabsContainer() { var $moreBtn = $('#moreTabBtn'); var $moreContainer = $('#moreTabsContainer'); var activeFlag = $moreContainer.attr('flag'); var moreContainerPosition; if (activeFlag !== 'active') { var btnOffset = $moreBtn.offset(); var btnTop = btnOffset.top; var moreContLeft = btnOffset.left; var moreContTop = btnTop + $moreBtn.outerHeight(); moreContainerPosition = {"top": moreContTop + "px", "left": moreContLeft + "px", "display": "block"}; $moreContainer.attr('flag', 'active'); } else { moreContainerPosition = {"display": "none"}; $moreContainer.removeAttr('flag'); } $moreContainer.css(moreContainerPosition); } function removeOpenTab($icon, flag) { var $item = $icon.closest(".head-tab-item"); $item.remove(); $("#indexIframe").remove(); var $moreContainer = $('#moreTabsContainer'); var $moreBtn = $('#moreTabBtn'); if (flag === 'head') { var $moreTabs = $moreContainer.find('div'); if ($moreTabs.length > 0) { var $headTabCont = $('#headTabsContent'); var $firstItem = $moreTabs.eq(0); $headTabCont.append($firstItem.clone()); var headContentWidth = 0; var headTab = $('#headTab'); var headTabWidth = headTab.width(); var moreBtnWidth = $moreBtn.outerWidth(true); var canUseWidth = headTabWidth - moreBtnWidth; var outFlag = false; $headTabCont.find('div').each(function () { var $tabItem = $(this); var itemWidth = $tabItem.outerWidth(true); headContentWidth += itemWidth; if (headContentWidth > canUseWidth) { outFlag = true; $headTabCont.find('div').last().remove(); return; } }); if (!outFlag) { $firstItem.remove(); } } } if ($moreContainer.find('div').length === 0) { $moreContainer.hide().removeAttr('flag'); $moreBtn.removeClass('show active'); } var tabId = sessionStorage.getItem("ampRefreshTabId"); var $tabItem = getHeadTabItemById(tabId); $tabItem.click(); } function getHeadTabItemById(tabId) { var $headTab = $('#headTabsContent'); var $tabItem = $headTab.find('div[data-appid="' + tabId + '"]'); if ($tabItem.length === 0) { $tabItem = $headTab.find('div[data-menu-id="' + tabId + '"]'); if ($tabItem.length === 0) { var $moreTabsCont = $('#moreTabsContainer'); $tabItem = $moreTabsCont.find('div[data-menu-id="' + tabId + '"]'); if ($tabItem.length === 0) { $tabItem = $moreTabsCont.find('div[data-appid="' + tabId + '"]'); } } } if ($tabItem.length > 0) { return $tabItem; } else { return $headTab.find('div').eq(0); } } //移除头部的站点和打开的应用 function removeHeadAppTabs() { $("#moreTabsContainer").find('div').remove(); $('#iframeList').find('iframe').remove(); } //打开站点或tab app function openSiteApp($item) { var itemData = $item.data(); var itemTitle = itemData.name; var itemUrl = itemData.url; var itemMenuId = itemData.menuId; var contentType = itemData.contentType; if (contentType === 0) { itemUrl = 'portal/html/personalCenter.html'; } var flag = "siteApp"; //该站点不需要登录验证或需要验证且已经登录,则直接打开app if (itemData.needauth !== "true" || (itemData.needauth === "true" && AMP.isLoginFlag)) { AmpOpenApp.openOneApp({ "title": itemTitle, "appId": itemMenuId, "url": itemUrl, "flag": flag }, flag); } else { window.location.href = AMPConstant.requestPath + "login?service=" + window.location.href; } } AmpHeader.getHeaderTabsByConfig = function (flag) { var tabsHtml = ''; var headerTabs = AMPConfigure.tab_head; var tabsLen = headerTabs.length; for (var i = 0; i < tabsLen; i++) { var tabItem = headerTabs[i]; var name = tabItem.name; var tabFlag = tabItem.data_flag; var contentType = 1; var url; switch (tabFlag) { case 'bsdt': url = 'portal/html/ehall.html'; break; case 'fwzx': url = 'portal/html/serviceCenter.html'; break; case 'wdfw': url = 'portal/html/personalCenter.html'; break; default: url = tabItem.url; break; } tabsHtml += '
' + name + '
'; } return tabsHtml; }; AmpHeader.loadHeaderTabByConfig = function () { var $header = $("#headTabsContent"); var headerTabHtml = AmpHeader.getHeaderTabsByConfig(); $header.html(headerTabHtml); //选择存放的tab changeToSelectTab(); //给title过长的tab添加title属性 checkAndResetAttrTitle(); $header.addClass('amp-show-block'); }; function checkAndResetAttrTitle() { var $header = $("#headTabsContent"); $header.append('
'); var $hideItem = $('#headTabItemHide'); resetHeadItemAttr($header, $hideItem); resetHeadItemAttr($('#moreTabsContainer'), $hideItem); $hideItem.remove(); } function resetHeadItemAttr($container, $hideItem) { $container.find('div.head-tab-item').each(function () { var $item = $(this); var text = $item.text(); var itemWidth = $item.outerWidth(); $hideItem.html(text); var actualWidth = $hideItem.outerWidth(); if (actualWidth > itemWidth) { $item.attr('title', text); } }); } function changeToSelectTab() { var tabId = sessionStorage.getItem("ampRefreshTabId"); var $header = $("#headTabsContent"); var $tab = $header.find('[data-menu-id="' + tabId + '"]'); if ($tab.length === 0) { $tab = $("#moreTabsContainer").find('[data-menu-id="' + tabId + '"]'); } if ($tab.length > 0) { $tab.click(); } else { $header.find(".head-tab-item").first().click(); } } //初始化设置tab页的宽度 AmpHeader.setHeaderTabsWidth = function (completeFlag) { var logoWidth = $('#headerLogo').outerWidth(true); //右侧icon的宽度 var toolIconsWidth = $('#loginToll').outerWidth(true); //头部查询框的宽度,因其存在展开和收缩情况,故取其展开的状态的宽度 var searchBlcokWidth = 228; var diffWidth = 46; var tabsWidth = '100% - ' + logoWidth + 'px - ' + toolIconsWidth + 'px - ' + searchBlcokWidth + 'px - ' + diffWidth + 'px'; $('#headTab').attr({"style": "width: -moz-calc(" + tabsWidth + ");width: -webkit-calc(" + tabsWidth + ");width: calc(" + tabsWidth + ");"}); var changeOverLen = AMP.initTabsWidthChangeOver.length; if (changeOverLen > 0) { var newChangeList = []; for (var i = 0; i < changeOverLen; i++) { var item = AMP.initTabsWidthChangeOver[i]; if (item !== completeFlag) { newChangeList.push(item); } } AMP.initTabsWidthChangeOver = newChangeList; } //当头部tab的宽度计算完成后再计算是否要显示more按钮 if (AMP.initTabsWidthChangeOver.length == 0) { setTimeout(function () { resetHeaderTabsContentWidth(); }, 50); } }; AmpHeader.setHeaderItemActive = function (appId) { var $moreTabsCont = $('#moreTabsContainer'); var $headerTab = $('#headTab'); $headerTab.find('div.active').removeClass('active'); $moreTabsCont.find('div.active').removeClass('active'); var $item = $headerTab.find('div[data-appid="' + appId + '"]'); if ($item.length > 0) { $item.addClass('active'); } else { $moreTabsCont.find('div[data-appid="' + appId + '"]').addClass('active'); $('#moreTabBtn').addClass('active'); } }; })(window.AmpHeader = window.AmpHeader || {}); //全局变量 var AmpDataCol = {}; ;(function (AMP, undefined) { 'use strict'; AMP.curation = {};//存放文件夹和文件夹内应用的数据 AMP.loginFromFolderFlag = 1; //用于判断从文件夹登录的情况,1是默认值不做任何操作,2是表示已经从iframe登录成功,3是登录成功后且用户数据加载完成 AMP.defaultTabWidth = 128;//头部tab添加时的默认最大的宽度 AMP.minTabWidth = 34;//头部tab添加时的默认最小的宽度 AMP.widgetData = {};//存放widget信息 AMP.toDeleteFavCount = 0;// AMP.hasDeleteFavCount = 0; AMP.allWidgetData = null; AMP.allSideWidgetData = null; // 侧边栏所有的Widget AMP.allSideWidgetMap = {}; AMP.siteWidgetsMap = {}; //存放站点类型是widget的数据 // 服务中心的相关关属性 AMP.fwzx = {}; AMP.fwzx.filterAuth = false;//用户登录后,过滤掉用户没有权限使用的应用 AMP.scrollWidth = 0;//存放当前浏览器的滚动条宽度,避免打开弹窗时,界面样式变化 AMP.isLoginFlag = false;//直接存放用户是否登录的状态,false是未登录 AMP.isIframeLogin = false;//用户从应用详情页登录的处理,false不做任何处理 AMP.initIsLoginFlag = false;//当用户从弹窗登录页面后,用于判断侧边栏是否要展开,false不做处理 AMP.rightSideIsShow = false;//记录进入应用前侧边栏的展开状态 AMP.userInfo = null;//用户信息 AMP.unknowClassifyName = " "; //未分类的应用要显示的分类名 AMP.loginFromIframeFlag = 1; //用于判断从应用弹框登录的情况,1是默认值不做任何操作,2是表示已经从iframe登录成功,3是登录成功后且用户数据加载完成 AMP.previewWidgetId = null; AMP.searchKey = ''; //存放查询的关键词 AMP.searchFlag = ''; //存放查询的类型 AMP.searchLabels = []; //存放查询的类型数据 AMP.myFeedbackRefreshFlag = false; //记录我的反馈是否要刷新 AMP.initTabsWidthChangeOver = ['logo', 'site']; //记录初始化时会导致头部tab页的宽度计算的类型,当数组为空时表示初始化计算完成 AMP.initToLoadRightWidgetData = null; })(window.AMP = window.AMP || {}); $(function(){ 'use strict'; //右侧栏的事件监听 AmpRight.rightSideListen(); //页面初始化从配置文件读取相关配置对页面进行设置 AmpInit.initSetConfigData(); //头部查询框的处理 AmpHeader.headerSearchListen(); //头部小图标的事件监听 AmpHeader.headerIconListen(); //监听点击body的事件 AmpUtils.bodyListen(); //提示信息 AmpUtils.tooltipInit(); AmpUtils.setBodyContainerMinHeight(); $("#fwzxSearchAppInput").val(""); AmpHeader.addHeadTabFromConfig(); //初始化入口 AmpInit.setUserInfo(); AmpSpecial.setScrollXIsHidden(); AmpSpecial.setWindowPageTitle(); //**页面resize时重新计算app列表的高度 $(window).resize(function () { setTimeout(function () { AmpUtils.windowResize(); }, 100); }); //监听应用或iframe的postMessage事件 window.addEventListener('message',function(e){ var data=e.data; if(data.type === "appUserAction"){ //获取应用数据并回传给iframe AmpOpenApp.getOrOpenAppById(data.appId, function(result){ window.indexIframe.postMessage(result, '*'); }, "appUserAction", null); }else if(data.type === "appRefreshAction"){ //应用发出的刷新应用请求 AmpUtils.appRefresh(); }else if(data.type === "loginReload"){ //应用session失效,重定位页面到登录页,除了详情页的登录 if($('#appDetail').length === 0){ window.location.href = "login?service="+window.location.href; } } },false); }); (function (AmpInit) { 'use strict'; //初始化设置配置文件 AmpInit.initSetConfigData = function(){ initSetLogo(); initSetFooter(); AmpUtils.setSessionStorageData("schoolId", AMPConfigure.schoolId); AmpUtils.setSessionStorageData("logo", AMPConfigure.logo.normal); AmpUtils.setSessionStorageData("logoUrl", AMPConstant.requestPath + "portal/custom/img/school/logo/" + AMPConfigure.logo.normal); AmpUtils.setSessionStorageData("footer", AMPConfigure.footer.normal); var schoolConfig = JSON.stringify(AMPConfigure); AmpUtils.setLocalStorageData("schoolConfig", schoolConfig); AmpUtils.setSessionStorageData("schoolConfig", schoolConfig); }; //初始化设置页脚内容 function initSetFooter(){ $("#normalFooterCopyRight").html(AMPConfigure.footer.normal); } //初始化设置logo function initSetLogo(){ var $logo = $("#headerLogo"); $logo.html(''); //判断logo图片加载完成,计算tab页的宽度 AmpUtils.checkImageLoadComplete($logo.find("img")).done(function(){ AmpHeader.setHeaderTabsWidth('logo'); }).fail(function(){ AmpHeader.setHeaderTabsWidth('logo'); }); } //设置用户信息 AmpInit.setUserInfo = function() { if(AMP.userInfo){ return; } $.ajax({ type: "GET", url: AMPConstant.jsonpRequestPath + 'userInfo.json', cache: false, dataType: "jsonp", jsonp: AMPConstant.jsonp, //jsonpCallback: AMPConstant.jsonpCallback, success: function(result) { AMP.isLoginFlag = result.hasLogin ? true : false; var loginTimes = parseInt(sessionStorage.getItem("loginTimes"), 10); if(AMP.isLoginFlag){ AMP.userInfo = result; //添加站点数据到右上角的下拉菜单 var siteList = result.siteList; AmpSiteManage.addSiteToRightDropdownMenu(siteList); //将所有的widget放入全局变量中 AmpWidget.setAllWidget(result.allWidget); AmpWidget.setAllSideWidget(result.allSideWidget); var defaultWidgetData = result.defaultSiteData; var siteTitle = ''; //登录后刷新操作的处理 if(loginTimes !== 0){ if(!defaultWidgetData){ // 当不存在默认站点信息时的处理 AmpHeader.loadHeaderTabByConfig(); }else{ //存在默认站点的处理 if(defaultWidgetData.siteType!="guest"){ siteTitle = defaultWidgetData.siteName; }else{ $("#siteSwitch").hide(); } var refreshSiteId = sessionStorage.getItem("ampRefreshSiteId"); //当记忆的站点与默认站点一致,使用默认站点数据 if((defaultWidgetData && refreshSiteId === defaultWidgetData.siteId)||!refreshSiteId){ $("#siteSwitch").text(siteTitle); AmpHeader.changeHeaderToSiteTabs({"data": defaultWidgetData.menuList}); }else{ //当记忆的站点与默认站点不一致,取到该站点数据再显示 AmpSiteManage.getSiteItemData({siteId: refreshSiteId}, function(backSiteData){ AmpHeader.changeHeaderToSiteTabs(backSiteData, 'refresh'); }); } } }else{ if(!defaultWidgetData){ //当不存在默认站点信息时的处理 AmpHeader.loadHeaderTabByConfig(); }else{ //第一次登录的处理 $("#siteSwitch").text(defaultWidgetData.siteName); AmpHeader.changeHeaderToSiteTabs({"data": defaultWidgetData.menuList}); //存在游客站点的处理 if(defaultWidgetData.siteType!="guest"){ siteTitle = defaultWidgetData.siteName; }else{ $("#siteSwitch").hide(); } } } // 管理中心的显示隐藏 if (result.hasManagePermission) { $("#manageCenterDiv").find('[data-flag-btn="manageCenter"]').attr("data-href", "manage/index.html"); } else { $("#manageCenterDiv").remove(); } //显示右上角的工具条 $("#headerMini").find(".loginTool").show(); //设置tooltip的用户名 $("#user").find("img").attr("data-tooltip-title", $.trim(result.userName)); /** * 设置用户信息 */ var $headerBarUserInfoBox = $("#headerBarUserInfoBox"); $headerBarUserInfoBox.find(".user-name-span").text($.trim(result.userName)); $headerBarUserInfoBox.find(".user-pro-span").text($.trim(result.userDepartment)); $headerBarUserInfoBox.find(".user-id-span").text($.trim(result.userId)); $headerBarUserInfoBox.find("#user-photo").attr("src", $.trim(result.userPhoto)); $("#user-photo-mini").attr("src", $.trim(result.userPhoto)); //加载右侧栏的widget //将右侧栏widget的初始化加载放到,点击右侧栏时再加载 if (result.widgetData&&result.widgetData.side) { //userSideWidgetData = JSON.parse(result.widgetData.side); if(typeof result.widgetData.side === 'string'){ AMP.initToLoadRightWidgetData = JSON.parse(result.widgetData.side); }else{ AMP.initToLoadRightWidgetData = result.widgetData.side; } } // TODO 收取消息 AmpMessage.fetchMessage(); AmpUtils.setSessionStorageData("ampUserId", $.trim(result.userId)); AmpUtils.setSessionStorageData("ampUserName", $.trim(result.userName)); AmpUtils.setSessionStorageData("userType", $.trim(result.userType)); AmpUtils.setSessionStorageData("userPhoto", $.trim(result.userPhoto)); AmpUtils.setSessionStorageData("roles", JSON.stringify(result.roles)); try { // init dataCollection data AmpDataCol.appInfoAndUrl = result.appInfoAndUrl; AmpDataCol.messBusIP = ""; AmpDataCol.messBusPort = ""; AmpDataCol.userID = result.userID; AmpDataCol.schoolID = result.schoolID; AmpDataCol.userIp = result.userIp; } catch (e) { console.log(e); } sessionStorage.setItem("loginTimes", parseInt(sessionStorage.getItem("loginTimes"), 10) + 1); //给站点下拉框加滚动条 $("#headerBarRoleBox").niceScroll({zindex:99999}); }else{ noLoginHeaderTabsLoad(result); } }, error: function(){ noLoginHeaderTabsLoad(); } }); }; //未登录状态下,加载的头部tab function noLoginHeaderTabsLoad(result){ //记录页面是否是第一次登录 sessionStorage.setItem("loginTimes", 0); var siteData = []; var siteLen = 0; var defaultSiteData = ''; if(result && result.defaultSiteData && result.defaultSiteData.menuList && result.defaultSiteData.menuList.length > 0){ defaultSiteData = result.defaultSiteData; if(defaultSiteData){ var menuList = defaultSiteData.menuList; if(menuList){ siteLen = menuList.length; if(siteLen > 0){ siteData = menuList; } } } } if(siteLen > 0){ AmpHeader.changeHeaderToSiteTabs({"data": siteData}, 'refresh'); }else{ AmpHeader.loadHeaderTabByConfig(); } $("#headerMini").find("div.noLoginTool").show(); } //当用户是从iframe弹框中登录的处理 AmpInit.doLoginFromIframe = function(){ if(!AMP.isLoginFlag){ AMP.isLoginFlag = true; AMP.isIframeLogin = true; var $headerMini = $("#headerMini"); $headerMini.find("div.noLoginTool").hide(); $headerMini.find("div.loginTool").show(); $('#iframeList').find('iframe').each(function(){ var ifrItem = this; var $ifrItem = $(this); var src = $ifrItem.attr('src'); if(src.indexOf('ehall.html') > -1){ var ifrContent = ifrItem.contentWindow; var $homeTabList = $(ifrContent.document).find("#homeTabList"); $homeTabList.children("li").removeAttr("data-flag"); var activeHomeTabId = $homeTabList.children("li.active").attr("role-id"); ifrItem.contentWindow.AmpEhall.getHomePageApp(activeHomeTabId); }else if(src.indexOf('serviceCenter.html') > -1){ var ifrContent = ifrItem.contentWindow; var $ifrContainer = $(ifrContent.document); var serviceLabels = $ifrContainer.find("#serviceLabels li.active").map(function(){ return $(this).data("label-id"); }).get(); var searchKey = $.trim($ifrContainer.find("#fwzxSearchAppInput").val()); ifrItem.contentWindow.AmpServiceCenter.drawFwzx("classify", serviceLabels, searchKey); } }); } }; //登录处理 AmpInit.hasLoginDo = function(){ if(AMP.loginFromIframeFlag === 2){ AMP.loginFromIframeFlag = 3; } $("#headerMini").find("div.loginTool").show(); //登录成功后,进入首页的时候右侧栏默认打开 if(!AMP.initIsLoginFlag){ AMP.initIsLoginFlag = true; } $("body").removeClass("notLogin"); AmpInit.setUserInfo(); }; //未登录处理 AmpInit.notLoginDo = function(){ if(AMP.loginFromIframeFlag === 2){ AMP.loginFromIframeFlag = 3; } AMP.initIsLoginFlag = true; $("#headerMini").find("div.noLoginTool").show(); // body 加class 控制 应用收藏按钮icon的显示隐藏 $("body").addClass("notLogin"); AmpUtils.deleteSessionStorageData("ampUserId"); }; })(window.AmpInit = window.AmpInit || {}); ;(function (AmpMessage, undefined) { AmpMessage.eventListen = function(){ //关闭收藏提示框 $("#collectionPromptDiv").on("click", '.close', function(){ var $collectionPrompt = $(this).closest('.prompt-item'); $collectionPrompt.animate({ opacity: "0.5", right: "-290px" }, 1000); setTimeout(function(){$collectionPrompt.remove();}, 1000); }); }; // 收取消息 AmpMessage.fetchMessage = function() { $("#headerMsg").removeClass('hasMessage'); var url = AMPConstant.jsonpRequestPath + AMPConstant.manageAPIList.getTagsMessages; var param ={'typeId':'-1','start':'0','size':'5','typeName':'未读消息'}; AmpUtils.doJsonpAjax(url, param).done(function (data) { var count = data.data.count; var messages = data.data.children; $(".message-num","#headerMsg").text(count); if(count>0){ $("#headerMsg").addClass('hasMessage'); if(count<6){ $.each(messages,function(i,v){ setTimeout(function(){ AmpUtils.showPrompt("message",v.title,false,'icon message-red',v.id); },i*500); }); }else{ AmpUtils.showPrompt("message",'您当前有'+count+'条未读消息',false,'icon message-red'); } }else{ $("#headerMsg").removeClass('hasMessage'); } }); $(".message-center-a",'body').click(function(){ AmpUtils.doJsonpAjax(url, param).done(function (data) { var count = data.data.count; $(".message-num","#headerMsg").text(count); if(count>0){ $("#headerMsg").addClass('hasMessage'); }else{ $("#headerMsg").removeClass('hasMessage'); } }); window.open("./portal/html/scenes_message_center.html"); }); }; })(window.AmpMessage = window.AmpMessage || {}); AmpMessage.eventListen(); ;(function (AmpOpenApp, undefined) { /** * 打开应用 * @param $appItem 被点击的app节点dom * @param flag 从widget或特殊app才有flag,其他普通的应用没有flag * @param resetUrlFlag 有flag存在且需要特殊处理的应用地址 */ AmpOpenApp.openOneApp = function($appItem, flag, resetUrlFlag){ var appData = {}; if(!flag){ appData.url = $appItem.attr("data-url"); appData.isOpenInNewTab = $appItem.attr("data-full-screen"); appData.favorite = $appItem.attr("data-favorite"); appData.appId = $appItem.attr("data-appid"); appData.appKey = $appItem.attr("data-appkey"); appData.title = $appItem.attr("data-title"); appData.img = $appItem.attr("data-img"); appData.haspermission = $appItem.attr("data-haspermission"); appData.hasDescription = $appItem.attr("data-hasDescription"); appData.flag = $appItem.attr("data-flag"); }else{ appData = $appItem; } //关闭详情页 if(AMP.loginFromIframeFlag != 3){ AmpOpenDetail.closeAppDetail(); }else{ AMP.loginFromIframeFlag = 4; } //收集最近使用的app数据 if (appData.haspermission && AMP.userInfo && AMP.userInfo.hasLogin && appData.appId != "myfeedback") { $.ajax({ type: "GET", data: {appId: appData.appId}, url: AMPConstant.jsonpRequestPath + 'sendRecUseApp.json', cache: false, dataType: "jsonp", jsonp: AMPConstant.jsonp, success: function() { } }); } // 将app的title和id 存 // 供 问题反馈功能使用 $('body').data('currentappinfo', { sourceName : appData.title, sourceId : appData.appId }); //在新窗口打开的应用 if(appData.isOpenInNewTab === "true" || appData.isOpenInNewTab == "1"){ Wisedu.ampAppDataSend(AmpDataCol.schoolID,AmpDataCol.userID,AmpDataCol.userIp,appData.appKey,"appShow"); var newWindowUrl = appData.url; if(newWindowUrl.indexOf('http') === -1 && newWindowUrl.indexOf('//') === -1){ newWindowUrl = AMPConstant.requestPath + appData.url; } window.open(newWindowUrl); return; } AmpUtils.hideIndexBlock(appData.flag); addOrChangeIframe(appData, false); $("footer").css({"width" : "100%"}); $("#searchAppInput").focusout(); //帮助是否要打开 if(appData.hasDescription !== 'false' && !flag){ if ( appData.appId == 'myfeedback' ) { $("#headerAppHelp").addClass('disabled'); } else { $("#headerAppHelp").attr("data-appid", appData.appId).removeClass('disabled'); } }else{ $("#headerAppHelp").addClass('disabled'); } }; /** * 初始化或显示已存在的iframe * @param appData 要打开的app数据 * @param iframeIsOpenedFlag 当前是否处于应用打开的状态 * @param resetUrlFlag 是否要重设iframe的地址 */ function addOrChangeIframe(appData, iframeIsOpenedFlag){ var $iframeList = $("#iframeList"), $ifr_list = $iframeList.find("iframe"), ifr_len = $ifr_list.length, _src = appData.url; var existIfr = getExistIframe(appData); if(existIfr){ //刷新我的反馈数据 if(appData.appId === 'myfeedback' && AMP.myFeedbackRefreshFlag){ AmpUtils.refreshFeedbackIframe(); } var $toHideIfr = $("#indexIframe"); if($toHideIfr.length > 0){ $toHideIfr.attr("data-type","hidden").removeAttr("id").removeAttr("name").removeAttr("class").hide(); } var $toShowIfr = $("#iframeList").find("iframe[data-appid="+appData.appId+"]"); $toShowIfr.attr("src", appData.url); $toShowIfr.show().css("opacity","1").removeAttr("class").attr("data-type","show") .attr("id","indexIframe").attr("name","indexIframe"); }else{ var dataIndex = ifr_len + 1, initStyle = "opacity:0;position: absolute;", appId = appData.appId, appKey = appData.appKey, appTitle = appData.title, appImg = appData.img; var iframeWithData = getIframeWidth(_src); initStyle += 'width:'+iframeWithData.width; if(iframeWithData.left){ initStyle += 'left:'+iframeWithData.left; } var ifr_str = ''; $iframeList.append(ifr_str); existIfr = $iframeList.find("iframe[data-index="+dataIndex+"]"); //将appId注入到iframe内以便调用 if(_src.indexOf('personalCenter.html') > 0){ existIfr[0].contentWindow.currentAppId = appId; } //该方法不要在iframe加载完成后调用,避免切换tab时,出现页面重叠现象 AmpOpenApp.iframeChangeDo($iframeList, $iframeList.find("iframe[data-type=show]"), existIfr, iframeIsOpenedFlag, "new"); //当页面不是配置的站点时,打开新的tab页 if(appData.flag !== "siteApp"){ if(!appData.title){ appData.title = appData.appName; } AmpHeader.addTopHeadTab(appData); } } if(!$("body").hasClass("head-search-open")){ setTimeout(function(){ $("#headerMini").find(".amp-header-search-icon-box").click(); },20); } AmpOpenApp.setIframeWidthHeight(); } /** * 判断要打开的应用是否已经打开过 * @param appData * @returns {boolean} */ function getExistIframe(appData){ return $("#iframeList").find("iframe[data-appid="+appData.appId+"]").length > 0 ? true : false; } function getIframeWidth(src){ var data = {width: '100%'}; var windowWidth = $(window).outerWidth(); if(!AMP.rightSideIsShow){ if(src.indexOf('ehall.html') > 1){ var iframeLeft = parseInt((windowWidth - 1152)/2, 10); data.width = "1152px"; data.left = iframeLeft+'px'; } } return data; } /** * 设置或获取iframe 的宽高,flag = get是获取,默认是设置 * @param $onloadIfr 要设置的iframe对象 */ AmpOpenApp.setIframeWidthHeight = function($onloadIfr, flag){ var screen_h_w = AmpUtils.getScreenWidthHeight("body"), $miniHeaderH = $("#headerMini"), miniH = $miniHeaderH.outerHeight(true), $iframeList = $("#iframeList"), $footer = $("footer"), footerH = $footer.height(), h = screen_h_w.screenH - footerH - miniH, iframe_h = h; if(flag === "get"){ return {"height":iframe_h, "width":screen_h_w.screenW}; }else{ $iframeList.css({"height":h, "width":"100%","top": miniH+"px"}); if(!$onloadIfr){ $onloadIfr = $iframeList.find("iframe[data-type=show]"); } if($onloadIfr){ var windowWidth = $(window).outerWidth(); if(AMP.rightSideIsShow){ $onloadIfr.css({"height":iframe_h, "width":"100%", "left": "0"}); AmpUtils.setContainer(); }else{ $iframeList.css({"width": '100%'}); var iframeSrc = $onloadIfr.attr('src'); if(iframeSrc && iframeSrc.indexOf('ehall.html') > 1){ var iframeLeft = parseInt((windowWidth - 1152)/2, 10); $onloadIfr.css({"height":iframe_h, "width":"1152px", "left": iframeLeft+'px'}); }else{ $onloadIfr.css({"height":iframe_h, "width":"100%"}); } } } } }; /** * 监听iframe初始化完成事件 * @param ifr 要监听的iframe * @param iframeIsOpenedFlag 是否处于有应用打开的状态 */ function iframeInit(ifr, iframeIsOpenedFlag){ //此处设置是避免应用加载缓慢,在ie9下不显示内容 ifr.css("opacity","1"); //给iframe绑定onload事件 if(ifr[0].attachEvent){ ifr[0].attachEvent("onload",function(){ addEvt(ifr, iframeIsOpenedFlag); }); }else{ ifr[0].onload = function(){ addEvt(ifr, iframeIsOpenedFlag); }; } } //iframe 加载完成处理 function addEvt($onloadIfr, iframeIsOpenedFlag) { var $iframeList = $("#iframeList"), showIfr = $iframeList.find("iframe[data-type=show]"); AmpOpenApp.iframeChangeDo($iframeList, showIfr, $onloadIfr, iframeIsOpenedFlag, "new"); } /** * iframe 切换动效 * @param $iframeList * @param $toHideIfr * @param $toShowIfr * @param iframeIsOpenedFlag 判断应用是否处于打开状态,true和false * @param isFirstOpen 判断应用是否第一次加载出来的,new和exist */ AmpOpenApp.iframeChangeDo = function($iframeList, $toHideIfr, $toShowIfr, iframeIsOpenedFlag, isFirstOpen){ if(iframeIsOpenedFlag){ $toHideIfr.attr("data-type","hidden").removeAttr("id").removeAttr("name").removeAttr("class").hide(); $toShowIfr.show().css("opacity","1").removeAttr("class").attr("data-type","show") .attr("id","indexIframe").attr("name","indexIframe"); if(isFirstOpen === "new"){ Wisedu.ampAppDataSend(AmpDataCol.schoolID,AmpDataCol.userID,AmpDataCol.userIp,$toShowIfr.attr("data-appkey"),"appShow"); } }else{ $toHideIfr.css("opacity","0").attr("data-type","hidden").removeAttr("id").removeAttr("name").hide(); $toShowIfr.show().css("opacity","1").removeAttr("class").attr("data-type","show") .attr("id","indexIframe").attr("name","indexIframe"); if(isFirstOpen === "new"){ Wisedu.ampAppDataSend(AmpDataCol.schoolID,AmpDataCol.userID,AmpDataCol.userIp,$toShowIfr.attr("data-appkey"),"appShow"); } } }; /** * 获取或打开app * @param appId 要打开的appId * @param callFunction 获取数据后的回调函数 * @param flag flag === "appUserAction"是iframe中的应用调用平台方法获取app数据 * @param openPath 要打开的app地址 */ AmpOpenApp.getOrOpenAppById = function(appId, callFunction, flag, openPath){ var appData = {}; var $appItem = $("body").find("div.appFlag[data-appid="+appId+"]"); if($appItem.length > 0){ appData.url = openPath ? openPath : $appItem.data("url"); appData.favorite = $appItem.data("favorite"); appData.appId = $appItem.data("appid"); appData.appKey = $appItem.data("appkey"); appData.title = $appItem.data("title"); appData.img = $appItem.data("img"); appData.haspermission = $appItem.data("haspermission"); if(flag === "appUserAction"){ if(AMP.userInfo){ appData.userId = AMP.userInfo.userId; appData.userName = AMP.userInfo.userName; } if(AMPConfigure.schoolId){ appData.schoolId = AMPConfigure.schoolId; } } var isResetUrl = openPath ? true : false; callFunction(appData, "widget", isResetUrl); }else{ AmpServices.getAppDataById(AMPConstant.jsonpRequestPath + "appInfo.json", {"appId":appId}).done(function(data){ appData = data.result; appData.url = openPath ? openPath : "appShow?appId="+appId; appData.favorite = appData.favorite == "1" ? "active" : ""; appData.appId = appId; appData.title = appData.name; appData.img = appData.middleIcon; appData.haspermission = appData.hasPermission; if(flag === "appUserAction"){ if(AMP.userInfo){ appData.userId = AMP.userInfo.userId; appData.userName = AMP.userInfo.userName; } if(AMPConfigure.schoolId){ appData.schoolId = AMPConfigure.schoolId; } } var isResetUrl = openPath ? true : false; callFunction(appData, "widget", isResetUrl); }); } }; })(window.AmpOpenApp = window.AmpOpenApp || {}); /** * 提供给iframe使用的 * 点击app时,打开app或打开详情页 */ ;(function (AmpOpenAppOrDetail, undefined) { AmpOpenAppOrDetail.openAppOrDetailListen = function($body){ //打开应用详情页或应用 $body.on("click", ".appFlag", function(){ var parentWindow = parent.window; // 关闭意见反馈的弹窗 var feedbackModal = parentWindow.$("#feedbackModal"); if (!feedbackModal.is(':hidden')) { var feedbackMask = parentWindow.$("#feedbackModalMask"); feedbackMask.removeClass('active'); setTimeout(function(){ feedbackMask.remove(); }, 500); feedbackModal.fadeOut().find("input,textarea").val(""); } var $targetObj = $(this); var appId = $targetObj.attr("data-appid"); if($("#iframeList").children("[data-appid="+appId+"]").length === 0){ if($targetObj.data("type") != '1'){ //打开app //有详情页 if($targetObj.data("hasdescription") == true || $targetObj.data("hasdescription") == "true"){ //已经勾选不再显示详情 if($targetObj.data("unviewabledescription") == true || $targetObj.data("unviewabledescription") == "true"){ //进入应用 if(($targetObj.data("opening") == true || $targetObj.data("opening") == "true")&&($targetObj.data("maintaining") == false || $targetObj.data("maintaining") == "false")){ parentWindow.AmpOpenApp.openOneApp($targetObj); }else if($targetObj.data("opening") == false || $targetObj.data("opening") == "false"){ //尚未开放 parentWindow.AmpUtils.showPrompt("notOpen"); }else if(($targetObj.data("opening") == true || $targetObj.data("opening") == "true")&&($targetObj.data("maintaining") == true || $targetObj.data("maintaining") == "true")){ //正在维护中 parentWindow.AmpUtils.showPrompt("maintaining"); }else{ parentWindow.AmpOpenApp.openOneApp($targetObj); } }else{ //没有勾选不再显示详情 //需登录后显示 if($targetObj.data("descriptionauth") == "1"){ if(parentWindow.AMP.isLoginFlag){ //打开详情页 parentWindow.AmpOpenDetail.openDetail($targetObj, "container"); }else{ if($targetObj.data("haspermission") == true || $targetObj.data("haspermission") == "true"){ //未登录但有权限使用 //打开应用 parentWindow.AmpOpenApp.openOneApp($targetObj); }else{ //没有权限,给出提示 parentWindow.AmpUtils.showPrompt("needauth"); } } }else{ //打开详情页 parentWindow.AmpOpenDetail.openDetail($targetObj, "container"); } } }else{ //没有详情页 //有进入应用权限 if($targetObj.data("haspermission") == true || $targetObj.data("haspermission") == "true"){ //打开应用 if(($targetObj.data("opening") == true || $targetObj.data("opening") == "true")&&($targetObj.data("maintaining") == false || $targetObj.data("maintaining") == "false")){ parentWindow.AmpOpenApp.openOneApp($targetObj); }else if($targetObj.data("opening") == false || $targetObj.data("opening") == "false"){ //尚未开放 parentWindow.AmpUtils.showPrompt("notOpen"); }else if(($targetObj.data("opening") == true || $targetObj.data("opening") == "true")&&($targetObj.data("maintaining") == true || $targetObj.data("maintaining") == "true")){ //正在维护中 parentWindow.AmpUtils.showPrompt("maintaining"); }else{ parentWindow.AmpOpenApp.openOneApp($targetObj); } }else{ //没有权限,给出提示 parentWindow.AmpUtils.showPrompt("needauth"); } } }else{ //打开文件夹 parentWindow.AmpOpenDetail.openDetail($(this), "container"); } }else{ AmpHeader.setHeaderItemActive(appId); //直接打开app parentWindow.AmpOpenApp.openOneApp($targetObj); if($targetObj.attr("data-appid") === "myfeedback"){ var $headTab = $('#headTab'); var $moreTabsCont = $('#moreTabsContainer'); $headTab.find('div.active').removeClass('active'); $moreTabsCont.find('div.active').removeClass('active'); var $activeItem = $headTab.find('div[data-appid="myfeedback"]'); if($activeItem.length === 0){ $activeItem = $moreTabsCont.find('div[data-appid="myfeedback"]'); } $activeItem.addClass('active'); } } parentWindow.Wisedu.userActionDataSend(); }); }; })(window.AmpOpenAppOrDetail = window.AmpOpenAppOrDetail || {}); AmpOpenAppOrDetail.openAppOrDetailListen($('body')); ;(function (AmpOpenDetail, undefined) { AmpOpenDetail.detailListen = function($obj){ //收藏文件夹按钮的监听 $obj.on("click", "#detailCollectionApp", function(){ var $collectionBtn = $("#detailCollectionApp"); if(!$collectionBtn.hasClass("disabled")){ $collectionBtn.addClass("hidden").parent().find(".detail-collection-success").show(); AmpFav.favoriteAction("faviroteApp", $collectionBtn, "curation"); } }); //取消文件夹收藏的监听 $obj.on("click", "#cancelCurationCollection", function(){ var $collectionBtn = $("#detailCollectionApp"); $collectionBtn.removeClass("hidden").removeClass("disabled").parent().find(".detail-collection-success").hide(); AmpFav.favoriteAction("unFaviroteApp", $collectionBtn, "curation"); }); //登录按钮的监听 $obj.on("click", "#detailLogin", function(){ var loginHtml = ''; $obj.find(".app-detail").append(loginHtml).find(".detail-body").hide(); }); }; /** * 关闭应用详情 */ AmpOpenDetail.closeAppDetail = function(){ var $body = $("body"); var $details = []; $body.find("#appDetail").each(function(){ $details.push($(this)); }); $body.find("#curationDetail").each(function(){ $details.push($(this)); }); $.each($details,function(){ this.find(".app-detail-content").removeClass("showSweetAlert").addClass("hideSweetAlert"); }); setTimeout(function(){ $.each($details,function(){ appDetailOffListen(this); this.remove(); }); if($("#curationDetail").length === 0){ $body.removeClass("scroll-hide").removeAttr("style"); } AmpUtils.setContainer(); },200); }; /** * 取消app详情页的事件绑定 */ function appDetailOffListen($obj){ $obj.find("#detailLogin").off("click"); $obj.find("#closeDetail").off("click"); $obj.find("#detailCollectionApp").off("click"); $obj.find("#cancelCurationCollection").off("click"); } /** * 打开应用详情 * @param $obj * @param flag */ AmpOpenDetail.openDetail = function($obj, flag){ var appId=$obj.attr("data-appid"); var isCuration = $obj.attr("data-type"); var id = ""; var detailHtml = '
'+ '
'+ ''+ '@contentHtml'+ '
'+ '
'; if(!isCuration || isCuration === "0"){ id = "appDetail"; if(appId){ detailHtml = detailHtml.replace("@id", id).replace("@curationClass", "").replace("@contentHtml", ''); }else{ detailHtml = detailHtml.replace("@id", id).replace("@curationClass", "").replace("@contentHtml", '
'); } }else{ id = "curationDetail"; var contentHtml = getCurationContentHtml($obj); detailHtml = detailHtml.replace("@id", id).replace("@curationClass", "curation").replace("@contentHtml", contentHtml); } if(AMP.scrollWidth === 0){ AMP.scrollWidth = AmpUtils.getScrollWidth(); } $("body").addClass("scroll-hide").css({"padding-right": AMP.scrollWidth+"px"}).append(detailHtml); setTimeout(function(){ var $cover = $("#"+id); $cover.addClass("active").children(".app-detail").addClass("active"); $cover.off("click").on("click", "#closeDetail", function(){ AmpOpenDetail.closeAppDetail(); }); AmpOpenDetail.detailListen($cover); },10); }; /** * 获取要显示的文件夹的html * @param $obj * @returns {string} */ function getCurationContentHtml($obj){ var id = $obj.attr("data-appid"); var curationData = AMP.curation[id]; var appList = curationData.appList; var appLen = appList.length; var title = curationData.appName; var disabled = "disabled"; var loginHtml = '登录后查看是否可以收藏'; var showSuccess = ""; if(AMP.userInfo){ disabled = ""; loginHtml = ""; if($obj.attr("data-favorite") === "active"){ disabled = "hidden"; showSuccess = "display: block;"; } } var buttonHtml = ''+ '
'; var appListHtml = ""; for(var i=0; i'+ '
'+ '
'+title+'共'+appLen+'个服务
'+ '
'+ '
'+ '
'+ appListHtml+ '
'+ '
'+ '
'+ buttonHtml+ '
'+ loginHtml+ '
'+ '
'+ '
'+ ''+ ''; return contentHtml; } })(window.AmpOpenDetail = window.AmpOpenDetail || {}); ;(function (AmpRight, undefined) { AmpRight.rightSideListen = function(){ var $body = $("body"); var $rightSide = $("#rightSide"); //点击右侧栏的widget刷新 $rightSide.on("click",".refresh",function(){ var $widgetItem = $(this).closest(".right-side-list"); var widgetId = $widgetItem.attr("data-widget-id"); $widgetItem.find(widgetId).remove(); $widgetItem.append('<'+widgetId+'>'); }); //点击widget的查看全部去掉蒙版 //该功能应合并到打开app上 $rightSide.on("click",".right-side-do-more",function(){ var $rightSideCover = $("#rightSideCover"); if($rightSideCover.length > 0){ $rightSideCover.animate({"opacity":"0"},500,function(){$rightSideCover.remove();}); } }); var $rightSideIcon = $("#rightSideIcon"); //点击头部右侧栏图标 $rightSideIcon.on("click", function(){ if($rightSideIcon.attr('data-flag') === 'init'){ AmpRight.loadRightAsideWidgetTemplate(AMP.initToLoadRightWidgetData); $rightSideIcon.removeAttr('data-flag'); } //应用是否处于打开状态,true是打开状态 var isOpenAppFlag = $body.hasClass("open-app"); //关闭右侧栏 if($rightSideIcon.hasClass("active")){ //打开应用时,不记录右侧栏的打开状态 if(!isOpenAppFlag){ AMP.rightSideIsShow = false; } var $rightSideCover = $("#rightSideCover"); if($rightSideCover.length > 0){ $rightSideCover.animate({"opacity":"0"},500,function(){$rightSideCover.remove();}); } $rightSideIcon.removeClass("active"); $rightSide.removeClass("active"); $body.removeClass("aside-show"); }else{ if(!isOpenAppFlag){ AMP.rightSideIsShow = true; }else{ //添加蒙板 $body.append('
'); $("#rightSideCover").animate({"opacity":"0.54"},500); } $rightSideIcon.addClass("active"); $rightSide.addClass("active"); $body.addClass("aside-show"); } //重设内容块的宽度 AmpUtils.setContainer(); }); // 侧边栏点击监听 $rightSideIcon.on("click",function(){ if($("body").hasClass("fwzx")){ AmpUtils.getLetterTopData("service"); AmpUtils.resetLetterNavHighlight("service"); } }); var $rightEditBtn = $("#rightWidgetEditBtn"); //编辑widget $rightEditBtn.on("click", ".rightWidgetToEdit", function(){ $("#rightWidgetEditBtn").toggleClass("edit"); if(AMP.allSideWidgetData) { showCustomRightWidget(AMP.allSideWidgetData); } }); //保存widget $rightEditBtn.on("click", ".rightWidgetToSave", function(){ $("#rightWidgetEditBtn").toggleClass("edit"); getCustomRightWidgetJson(); }); var $con = $("#rightWidgetBlock").find(".right-side-edit-container"); // 移除widget $con.on("click", ".rse-delete", function(){ rightWidgetDelete($(this).closest("div.right-side-item")); }); //添加widget $con.on("click", ".rse-add", function(){ rightWidgetAdd($(this).closest("div.right-side-item")); }); // 可用widget拖动 Sortable.create($("#rseSelected").get(0),{ "animation": 150, "handle" : ".rse-drag-btn" }); }; // 移除widget function rightWidgetDelete($item){ var $rightWidgetBlock = $("#rightWidgetBlock"); var $editBlock = $rightWidgetBlock.find(".right-side-edit-container"); var $toSelectBlock = $editBlock.find(".rse-to-selected"); var widgetId = $item.attr("data-widget-id"); var $toSelectItem = $toSelectBlock.find(".edit-widget[data-widget-id="+widgetId+"]"); $item.find(".head-content").addClass("delete"); AmpRight.setWidgetCanAddCount("add"); setTimeout(function(){ $item.addClass("delete"); setTimeout(function(){ $item.remove(); setTimeout(function(){ $toSelectItem.removeClass("delete"); },20); },300); },500); } //修改右侧栏可用widget数量 AmpRight.setWidgetCanAddCount = function(addOrSubtract){ var $widgetCount = $("#canAddWidgetCount"); var count; if(addOrSubtract === "add"){ count = parseInt($widgetCount.text(), 10) + 1; }else{ count = parseInt($widgetCount.text(), 10) - 1; } $widgetCount.html(count); }; //添加widget function rightWidgetAdd($item){ var $rightWidgetBlock = $("#rightWidgetBlock"); var $editBlock = $rightWidgetBlock.find(".right-side-edit-container"); var $selectBlock = $editBlock.find(".rse-selected"); var widgetId = $item.attr("data-widget-id"); var widgetTitle = $item.attr("data-title"); var thumbnail = $item.attr("data-thumbnail"); var appId = $item.attr("data-appid"); $item.addClass("delete"); AmpRight.setWidgetCanAddCount("subtract"); setTimeout(function(){ var widgetData = {"widgetId":widgetId, "thumbnail":thumbnail, "title":widgetTitle, "appId": appId}; $selectBlock.append(getRightEditWidgetHtml(widgetData, false, "delete")); setTimeout(function(){ $selectBlock.find(".edit-widget").last().removeClass("delete"); },20); },300); } //获取右侧栏编辑状态的widget item function getRightEditWidgetHtml(widgetData, isShow, deleteOrSelect){ var className = isShow ? "" : "delete"; var selectIconHtml; var sortBtnIsShow; if(deleteOrSelect === 'delete'){ selectIconHtml = '
'; sortBtnIsShow = ''; }else{ selectIconHtml = '
'; sortBtnIsShow = "hidden"; } var html = '
'+ '
'+ '
' + '' + '
' + '
'+ selectIconHtml+ // ''+ widgetData.title+ '
'+ '
'+ '
'; if(widgetData.widgetId === "widget-0000-02" || widgetData.widgetId === "widget-0002-02" || widgetData.widgetId === "widget-0004-01"){ return ""; }else{ return html; } } //显示右侧栏编辑状态的html function showCustomRightWidget(result) { var $editContainer = $("#rightWidgetEditContainer"); var $toSelect = $editContainer.find(".rse-to-selected"); if($toSelect.find(".edit-widget").length !== 0){ $editContainer.addClass("top-animate show"); return; } var hasSelectWidgetHtml = ""; var hasSelectWidgetData = []; var $widgetBlock = $("#today"); var content_h = $widgetBlock.css("height"); $editContainer.css({"top":content_h}); $widgetBlock.find(".right-side-list").each(function(){ var itemData = {}; var $item = $(this); itemData.widgetId = $item.attr("data-widget-id"); itemData.title = $item.attr("data-title"); itemData.thumbnailUrl = $item.attr("data-thumbnailurl"); itemData.appId = $item.attr("data-appid"); hasSelectWidgetHtml += getRightEditWidgetHtml(itemData, true, "delete"); hasSelectWidgetData.push(itemData); }); $editContainer.find(".rse-selected").html(hasSelectWidgetHtml); var allWidgetHtml = getAllWidgetHtml(result, hasSelectWidgetData); $toSelect.html(allWidgetHtml); AmpUtils.niceScrollInit($editContainer, ""); setTimeout(function(){ $editContainer.addClass("top-animate show"); },20); } function getCustomRightWidgetJson(){ var $customWidgetList = $("#rseSelected").find(".edit-widget"); var widgetLen = $customWidgetList.length; var widgetJsonData = []; var customWidgetData = []; var $head = $("head"); if(widgetLen > 0){ $customWidgetList.each(function(index){ var widgetItem = {}; var $item = $(this); var widgetId = $item.attr("data-widget-id"); widgetItem.widgetId = widgetId; customWidgetData.push(widgetItem); if($head.find("#head-link-"+widgetItem.widgetId).length === 0){ AmpWidget.loadWidgetHtml(widgetItem.widgetId); } AmpUtils.loadWidgetJson({"widgetId":widgetId, "index":index}).done(function(params, itemData){ widgetJsonData[itemData.index] = AmpRight.addRightSideWidgetPlacehode(itemData, params); if(itemData.index === widgetLen - 1){ saveCustomRightWidget(widgetJsonData, customWidgetData); } }).fail(function(resp, itemData){ widgetJsonData[itemData.index] = AmpRight.addRightSideWidgetPlacehode(itemData); if(itemData.index === widgetLen - 1){ saveCustomRightWidget(widgetJsonData, customWidgetData); } }); }); }else{ saveCustomRightWidget(widgetJsonData, customWidgetData); } } function saveCustomRightWidget(widgetJsonData, customWidgetData){ var rightWidgetHtml = ""; if(widgetJsonData){ var jsonLen = widgetJsonData.length; if(jsonLen > 0){ for(var i=0; i 0 && $today != ""){ $today.html(rightWidgetHtml); }else{ $today.html(rightWidgetHtml); AmpUtils.niceScrollInit($today, ""); } AmpServices.updateWdfwCustomWidget({"type":"side", "widgetList":JSON.stringify(customWidgetData)}); $("#rightWidgetEditContainer").removeClass("show top-animate"); } function getAllWidgetHtml(result, hasSelectedWidget){ var widgetHtml = ""; var widgetLen = 0; var removeWidgetCount = 0; if(result && result.length > 0){ widgetLen = result.length; var hasCheckedCount = 0; for(var i=0; i'); if(params){ for(var p in params){ $widget.attr(p, params[p]); } } placehodeHtml = '
'+ $widget[0].outerHTML + '
'; } return placehodeHtml; }; //加载右侧栏的widget AmpRight.loadRightAsideWidgetTemplate = function(sideWidgetData){ //设置右侧边栏的高度 AmpRight.setRightWidgetContainerHeight(); var sideWidgetLen = sideWidgetData ? sideWidgetData.length : 0; var rightWidgetHtml = ""; var toLoadWidgetData = {}; if(sideWidgetLen > 0){ for(var i=0; i'; } selector.html(letterHtml); //wengqi20151029 }; AmpUtils.getLetterTopData = function ($letterAppList) { var letterTopData = []; $letterAppList.children().each(function () { var $letter = $(this); var letterH = $letter.offset().top - 40; var letter = $.trim($letter.children(".letter").text()); letterTopData.push({ letter: letter, height: letterH }); }); return letterTopData; }; /** * 页面滚动时设置字母高亮 * startSetNavTop 开始设置字母高亮的滚动高度 * letterList 字母列表 * letterTopData app字母对应的top值 * win 要高亮的窗口 * @param data */ AmpUtils.resetLetterNavHighlight = function (data) { var startSetNavTop = data.startSetNavTop; var $letterList = data.letterList; var letterTopData = data.letterTopData; var $scrollObj = data.win; var scrollH = $scrollObj.scrollTop(); //当滚动高度大于导航距顶部的高度时,将导航div固定在页面上显示 if (scrollH >= startSetNavTop) { $letterList.css({"position": "fixed", "top": "8px"}); } else if (scrollH < startSetNavTop) { $letterList.removeAttr("style"); } var letterLen = letterTopData.length; $(letterTopData).each(function (i) { if (i != letterLen - 1) {//若不是数组的最后一个 if (scrollH + 100 >= this.height && scrollH + 100 < letterTopData[i + 1].height) {//如果当前滚轮的高度大于等于当前数组节点的高度并小于下一节点的高度,100为后加的视觉偏移量 setLetterNavHighlight($letterList, letterTopData[i].letter); return; } } else { if (scrollH >= this.height) {//若是数组的最后一个 setLetterNavHighlight($letterList, letterTopData[i].letter); return; } } }); }; function setLetterNavHighlight($letterList, letter) { $letterList.children().each(function () {//如果当前滚轮的高度大于等于最后一个数组节点的高度 var $item = $(this); var itemText = $.trim($item.text()); if (itemText === letter) {//遍历左侧字母导航,找出对应的字母并标识高亮 $letterList.children(".active").removeClass("active"); $item.addClass("active"); return; } }); } AmpUtils.bodyListen = function () { var $body = $("body"); $body.on("click", function (e) { var $targetObj = $(e.target || e.srcElement); //关闭右上角的退出弹框 if ($targetObj.closest("#homeMenuDropdown").length === 0 && !$targetObj.hasClass("icon-home-menu-wrap") && $targetObj.closest(".icon-home-menu-wrap").length === 0) { $("#homeMenuDropdown").removeClass("active"); $("#homeMenu").removeClass("active"); } // 关闭顶部栏搜索框的提示框 和 搜索历史框 if ($targetObj.closest(".amp-header-search-box").length === 0) { $("#searchBlock").hide(); $("#historyBlock").hide(); } // 关闭服务中心搜索框历史记录框 if ($targetObj.closest(".fwzx-search-box").length === 0) { $("#historyBlock02").hide(); } //打开应用的情况下,点击页面的其他地方关闭右侧栏 if ($("body").hasClass("open-app")) { if ($targetObj.closest("#rightSide").length === 0 && !$targetObj.hasClass("icon-right-side")) { $("#rightSideIcon").removeClass("active"); $("#rightSide").removeClass("active"); var $rightSideCover = $("#rightSideCover"); if ($rightSideCover.length > 0) { $rightSideCover.animate({"opacity": "0"}, 500, function () { $rightSideCover.remove(); }); } } } //搜索框的隐藏 if ($("body").hasClass("head-search-open")) { if ($targetObj.closest(".amp-header-search-container").length === 0) { var $iframe = $('#indexIframe'); var iframeUrl = $iframe.attr("data-url"); if ($iframe.length > 0 && iframeUrl && (iframeUrl.indexOf('ehall.html') > 0 || iframeUrl.indexOf('serviceCenter.html') > 0)) { $("body").removeClass("head-search-open"); } } } // 关闭意见反馈按钮 的下拉菜单 if ($targetObj.closest("#feedbackDropdown").length == 0 && $targetObj.closest("#appTools").length == 0) { $("#feedbackDropdown").removeClass("active"); } // 关闭选择站点的下拉菜单 if ($targetObj.closest("#siteSwitch").length == 0) { $("#headerBarRoleBox").removeClass("bh-active"); } // 关闭头像的下拉菜单 if ($targetObj.closest("#user").length == 0 && $targetObj.closest("#headerBarUserInfoBox").length == 0) { $("#headerBarUserInfoBox").removeClass("bh-active"); } // 关闭主题的下拉菜单 if ($targetObj.closest(".theme-box").length == 0 && $targetObj.closest(".current-theme").length == 0) { $(".theme-box").removeClass("bh-active"); } //记录评价是否要刷新 if ($targetObj.closest(".feedback-submit").length > 0) { AMP.myFeedbackRefreshFlag = true; } }); //设置办事大厅滚动联动 $(window).on('mousewheel', function (e) { var $iframe = $('#indexIframe'); var iframeSrc = $iframe.attr('src'); if (iframeSrc && iframeSrc.indexOf('ehall.html') > 1) { var scrollHeight = -e.originalEvent.wheelDelta; var $iframeContainer = $iframe[0].contentWindow.$('body'); $iframeContainer.scrollTop($iframeContainer.scrollTop() + scrollHeight); } }); }; /** * 显示和隐藏弹出层 * @param $iconObj 被点击按钮 * @param $asideObj 需处理的弹出层 */ AmpUtils.showOrHideAside = function ($iconObj, $asideObj) { if ($iconObj.hasClass("active")) { $iconObj.removeClass("active"); $asideObj.removeClass("active"); } else { $iconObj.addClass("active"); $asideObj.addClass("active"); } }; /** * 滚动条美化 * @param _selector 被美化对象的选择器或jquery对象 */ AmpUtils.niceScrollInit = function (_selector) { var niceObj; if (typeof(_selector) === "string") { niceObj = $(_selector); } else { niceObj = _selector; } niceObj.niceScroll({zindex: 99999}); }; AmpUtils.openApp = function (appId) { AmpOpenApp.getOrOpenAppById(appId, AmpOpenApp.openOneApp, "widget", null); }; AmpUtils.openAppByUrl = function (appId, widgetId, path) { var appDeployPrefixUrl = AmpUtils.getAppDeployPath(widgetId); var openPath = appDeployPrefixUrl + path; AmpOpenApp.getOrOpenAppById(appId, AmpOpenApp.openOneApp, "widget", openPath); }; AmpUtils.getAppDeployPath = function (widgetId) { if (AMP.allWidgetData && AMP.allWidgetData.length > 0) { for (var i = 0; i < AMP.allWidgetData.length; ++i) { if (widgetId == AMP.allWidgetData[i].widgetId) { return AMP.allWidgetData[i].appDeployPrefixUrl; } } return ""; } else { return ""; } }; AmpUtils.getUserInfo = function () { return AMP.userInfo; }; /** * 获取评价星级html * @param _score 评分 * @returns {string} */ AmpUtils.getScoreHtml = function (_score) { var starHtml = ""; var scoreList = _score.toString().split("."); var halfFlag = false; if (scoreList.length > 1) { if (scoreList[1] !== 0) { halfFlag = true; _score = scoreList[0]; } } for (var i = 0; i < 5; i++) { if (i < _score) { starHtml += '
'; } else { if (halfFlag) { halfFlag = false; starHtml += '
' + '
' + '
' + '
'; } else { starHtml += '
'; } } } return starHtml; }; /** * 文本截断,一个汉字当两个字节处理 * @param sSource 文本 * @param iLen 截取长度 * @param moreHtml 更多按钮的html * @returns {*} */ AmpUtils.getInterceptedStr = function (sSource, iLen, moreHtml) { if (sSource.replace(/[^\x00-\xff]/g, "xx").length <= iLen) { return sSource; } var str = ""; var l = 0; var schar; for (var i = 0; schar = sSource.charAt(i); i++) { str += schar; l += (schar.match(/[^\x00-\xff]/) != null ? 2 : 1); if (l >= iLen) { break; } } str += "..."; if (moreHtml) { str += moreHtml; } return str; }; /** * 弹出提示信息 * 当右侧栏打开时,则弹出信息在右侧栏的左侧,否则在内容的右边缘弹出 * @param flag * @param text 自定义的提示文字 */ AmpUtils.showPrompt = function (flag, text, isHiddenIcon, otherIconName, id) { var promptText; switch (flag) { case "collection": promptText = "服务收藏成功"; break; case "needlogin": promptText = "请您先登录"; break; case "needauth": promptText = "您没有权限使用该应用"; break; case "assessContent": promptText = "您的评论存在非法字符,请重新输入"; break; case "notOpen": promptText = "该应用尚未开放"; break; case "maintaining": promptText = "该应用正在维护中..."; break; default: promptText = "服务收藏已取消"; break; } if (text) { promptText = text; } var active = flag === "collection" ? "active" : ""; var isHidden = isHiddenIcon ? "hidden-icon" : ""; otherIconName = otherIconName ? 'iconfont ' + otherIconName : 'icon app-collection '; var promptHtml = '
' + '
' + '' + '' + '
' + promptText + '
' + '
' + '
'; if (flag === "needlogin" || flag === "needauth" || flag === "assessContent") { promptHtml = '
' + '
' + '
' + '' + '
' + promptText + '
' + '
' + '
'; } if (flag === "message") { promptHtml = '
' + '
' + '' + '' + '
' + promptText + '
' + '
' + '
'; } var $prompt = $(promptHtml); $('#collectionPromptDiv').append($prompt); setTimeout(function () { closePrompt($prompt); }, 10); }; /** * 关闭提示信息 * @param promptTop * @param promptLeft * @constructor */ function closePrompt($prompt) { setTimeout(function () { $prompt.animate({ opacity: "0.5", right: "-290px" }, 1000); setTimeout(function () { $prompt.remove(); }, 1000); }, 3000); } //在右侧栏显示或隐藏状态下,重设内容显示区域的宽度 AmpUtils.setContainer = function () { var $body = $("body"); //未打开应用的情况 if (!$body.hasClass("open-app")) { var $currentIframe = $('#indexIframe'); var iframeSrc = $currentIframe.attr('src'); var $rightSide = $("#rightSide"), $footer = $('footer'), bodyWidth = $body[0].clientWidth > 1200 ? $body[0].clientWidth : 1200, rightSideWidth = AMP.rightSideIsShow ? $rightSide[0].clientWidth : 0, contentWidth = AMP.rightSideIsShow ? bodyWidth - rightSideWidth : 1152; var $iframeList = $('#iframeList'); if (AMP.rightSideIsShow) { $iframeList.css({"width": contentWidth + 'px'}); $footer.css({"width": contentWidth + 'px'}); if (iframeSrc && iframeSrc.indexOf('ehall.html') > 1) { $currentIframe.css({"width": "100%", "left": '0'}); } } else { $iframeList.css({"width": '100%'}); $footer.css({"width": '100%'}); if (iframeSrc && iframeSrc.indexOf('ehall.html') > 1) { var iframeLeft = parseInt(($body[0].clientWidth - 1152) / 2, 10); $currentIframe.css({"width": "1152px", "left": iframeLeft + 'px'}); } } AmpUtils.setBodyContainerMinHeight(); } }; //设置内容展示区的最小高度,避免内容过少时,footer上移到页面中间 AmpUtils.setBodyContainerMinHeight = function () { var windowHeight = window.innerHeight, footerHeight = $("footer").outerHeight(true), containerMinHeight = windowHeight - footerHeight; $("#iframeList").css({"min-height": containerMinHeight + "px"}); }; //隐藏头部tab和右侧栏 AmpUtils.hideIndexBlock = function (flag) { if (flag === 'siteApp') { return; } //右侧栏 $("#rightSide").removeClass("active"); $("#rightSideIcon").removeClass("active"); var $iframeList = $("#iframeList"); $iframeList.children("iframe").hide(); $iframeList.children("div").hide(); $iframeList.show().css("opacity", 1); }; /** * 获取body或屏幕的宽高 * @param flag * @returns {*} */ AmpUtils.getScreenWidthHeight = function (flag) { if (flag === "body") { return {"screenH": window.innerHeight, "screenW": document.body.clientWidth}; } else if (flag === "screen") { return {"screenH": window.screen.availHeight, "screenW": window.screen.availWidth}; } }; /** * 获取浏览器的滚动条宽度 * @returns {number} */ AmpUtils.getScrollWidth = function () { var noScroll, scroll, oDiv = document.createElement("DIV"); oDiv.style.cssText = "position:absolute; top:-1000px; width:100px; height:100px; overflow:hidden;"; noScroll = document.body.appendChild(oDiv).clientWidth; oDiv.style.overflowY = "scroll"; scroll = oDiv.clientWidth; document.body.removeChild(oDiv); return noScroll - scroll; }; /** * 针对IE9使用的placeholder插件,失去焦点时使placeholder能显示 * @param searchText * @param $input */ AmpUtils.showPlaceholderInIe9 = function (searchText, $input) { if (document.documentMode === 9) { if (searchText === "") { $input.next("span").show(); } } }; //tooltip事件初始化绑定 AmpUtils.tooltipInit = function () { var $body = $("body"); //hover时显示tooltip $body.on("mouseover", ".tooltipFlag", function (e) { showTooltip(e); }); //鼠标移除时删除tooltip $body.on("mouseout", ".tooltipFlag", function (e) { removeTooltip(e); }); }; /** * 显示提示信息 * @param e */ function showTooltip(e) { var $targetObj = $(e.target || e.srcElement); if (!$targetObj.hasClass("tooltipFlag")) { return; } var targetWidth = $targetObj[0].offsetWidth, targetHeight = $targetObj[0].offsetHeight, targetOffset = $targetObj.offset(), isShowInLeftAlign = $targetObj.hasClass("tooltipLeftFlag"), title = $targetObj.attr("data-tooltip-title"); if (title) { var guid = AmpUtils.NewGuid(), $tooltip = createTooltipHtml(title, guid), tooltipWidth = $tooltip.outerWidth(true), tooltipHeight = $tooltip.outerHeight(true), targetMiddleLeft = isShowInLeftAlign ? 0 : parseInt(targetOffset.left + targetWidth / 2), tooltipLeft = isShowInLeftAlign ? targetOffset.left : targetMiddleLeft - parseInt(tooltipWidth / 2), tooltipTop = targetOffset.top + targetHeight + 4, _style = {"left": tooltipLeft + "px", "top": tooltipTop + "px", "height": 0}; if (tooltipLeft + tooltipWidth > $("body").width()) { _style = {"right": "0", "top": tooltipTop + "px", "height": 0}; } $tooltip.css(_style).show().animate({"height": tooltipHeight + "px"}, 300); $targetObj.attr("data-tooltip-guid", guid); } } //移除提示信息 function removeTooltip(e) { var $targetObj = $(e.target || e.srcElement), guid = $targetObj.attr("data-tooltip-guid"), $tooltip = $("body").find("#tooltip_" + guid); $tooltip.animate({"height": 0}, 300).promise().done(function () { $tooltip.remove(); }); } //创建一个guid如:fe493a2e-d9b9-337f-1678-85bb9e88733a AmpUtils.NewGuid = function () { return (s4() + s4() + "-" + s4() + "-" + s4() + "-" + s4() + "-" + s4() + s4() + s4()); }; function s4() { return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1); } //获取提示div的html function createTooltipHtml(title, guid) { $("body").append('
' + title + '
'); return $("#tooltip_" + guid); } AmpUtils.setLocalStorageData = function (_key, value) { var storage = window.localStorage; storage.setItem(_key, value); }; AmpUtils.getLocalStorageData = function (_key) { var storage = window.localStorage; return storage.getItem(_key); }; AmpUtils.setSessionStorageData = function (_key, value) { sessionStorage.setItem(_key, value); }; AmpUtils.getSessionStorageData = function (_key) { return sessionStorage.getItem(_key); }; AmpUtils.deleteSessionStorageData = function (_key) { sessionStorage.removeItem(_key); }; /** * 返回首页的相关操作 * @param clickFlag */ AmpUtils.goBackIndex = function (clickFlag) { //头部 var $body = $("body"); $body.removeClass("open-app").addClass(sessionStorage.getItem("headTab")); //右侧栏 if (AMP.rightSideIsShow) { $("#rightSide").addClass("active"); $("#rightSideIcon").addClass("active"); } else { $("#rightSide").removeClass("active"); $("#rightSideIcon").removeClass("active"); } AmpUtils.setContainer(); //从头部搜索避免两次添加 if (!clickFlag) { Wisedu.userActionDataSend(); } }; /** * 数据加载完成后定位第一个块的首字母 * @param $letterListParent 字母导航块 * @param $letterAppList 内容块 */ AmpUtils.afterLoadLetterDataToInit = function ($letterListParent, $letterAppList) { var $letterList = $letterListParent.children("div");//wengqi20151029 $letterList.removeClass("active"); var $firstLetter = $letterAppList.children("div.app-letter").first();//wengqi20151029 if ($firstLetter.length > 0) { var letter = $firstLetter.children(".letter").text(); $letterList.each(function () { var $item = $(this); if ($item.text() === letter) { $item.addClass("active"); return; } }); } }; // 刷新应用 AmpUtils.appRefresh = function () { var currentIframe = $("#indexIframe"); currentIframe.attr("src", currentIframe.attr("src")); }; AmpUtils.windowResize = function () { if ($("#iframeList").css("display") === "block") { //重设iframe的高度 AmpOpenApp.setIframeWidthHeight(); } else { //重设app列表的宽度 AmpUtils.setContainer(); } }; //获取用户历史搜索记录数据 AmpUtils.getUserSearchHistory = function (selector) { AmpServices.userSearchHistory().done(function (data) { if (data.data && data.data.length > 0) { var listHtml = ''; if (data.data.length == 0) { return; } $(data.data).each(function () { listHtml += '
  • ' + this.searchKey + '
  • '; }); selector.html(listHtml).show(); } }); }; AmpUtils.getLetterAppItemHtml = function (item, flag) { var appListHtml = ""; var appId = item.appId, title = item.appName, categoryList = item.categoryList, classify = "", image = item.middleIcon, // favoriteCount = item.assessCount, favoriteCount = item.favoriteCount, aScore = item.assessAvgScore, isCuration = item.type === 1 ? true : false; if (categoryList && categoryList.length > 0) { var categoryNameList = []; for (var k = 0, categoryLen = categoryList.length; k < categoryLen; k++) { categoryNameList.push(categoryList[k].categoryName); classify = categoryNameList.join(" / "); } } else { classify = AMP.unknowClassifyName; } var removeIconHtml = ''; if (flag === "myFavorite") { removeIconHtml = '
    '; } if (!isCuration) { //给应用加权限下标 var appPermissionClass = ''; if (flag === 'service') { appPermissionClass = item.hasPermission == 1 ? 'has-permission' : 'no-permission'; } appListHtml += '
    ' + '
    ' + '
    ' + title + '
    ' + removeIconHtml + '
    ' + '
    ' + '
    ' + '
    ' + '
    ' + '
    ' + classify + '
    ' + '
    ' + AmpUtils.getScoreHtml(aScore) + '
    ' + '
    ' + favoriteCount + '人收藏
    ' + '
    ' + '
    ' + '
    '; } else { var appList = item.appList; if (!appList) { appList = AMP.curation[appId]; } var appCount = appList.length; var appImgList = ""; for (var i = 0; i < appCount && i < 6; i++) { appImgList += ''; } appListHtml += '
    ' + '
    ' + '
    ' + title + '
    (' + appCount + ')' + '' + '
    ' + '
    ' + '
    ' + '
    ' + classify + '
    ' + '
    ' + appImgList + '
    ' + '
    ' + '
    '; AMP.curation[appId] = item; } return appListHtml; }; /** * 返回widget所在的列是跨几列的或是否是在侧边栏的 * @param widget * @returns {string} side是在侧边栏,1是跨一列,2是跨两列,3是跨三列 */ AmpUtils.getWidgetColNumberOrAtSide = function (widget) { var $widget = $(widget); var $rightSide = $widget.closest("#rightWidgetBlock"); var type; if ($rightSide.length > 0) { type = "side"; } else { var $curCol = $widget.closest(".my-site-column"); if ($curCol.length > 0) { if ($curCol.hasClass("col-two")) { type = "2"; } else { type = "1"; } } else { type = "3"; } } return type; }; /** * 拼接app属性字符串 * @param appData * @returns {string} */ AmpUtils.getAppAttr = function (appData) { var appId = appData.appId; var appKey = appData.appKey; var showFullScreen; var url = "appShow?appId=" + appId; var title = appData.appName; var image = appData.middleIcon; var favorite = appData.favoriteApp ? "active" : "0"; var appPc = appData.appPc; var hasDescription; var descriptionAuth; var hasPermission = appData.hasPermission; if (appPc) { hasDescription = appPc.isEnableDescription; descriptionAuth = appPc.descriptionAuth; showFullScreen = appPc.isOpenInNewTab; } else { hasDescription = appData.isEnableDescription; descriptionAuth = appData.descriptionAuth; showFullScreen = appData.isOpenInNewTab; } var unviewableDescription = appData.unviewableDescription; var type = appData.type; var opening = appData.opening; var maintaining = appData.maintaining; var attrStr = ''; attrStr += ' data-appid=' + appId; attrStr += ' data-appkey=' + appKey; attrStr += ' data-full-screen=' + showFullScreen; attrStr += ' data-url=' + url; attrStr += ' data-title=' + title; attrStr += ' data-img=' + image; attrStr += ' data-favorite=' + favorite; attrStr += ' data-haspermission=' + hasPermission; attrStr += ' data-hasdescription=' + hasDescription; attrStr += ' data-descriptionauth=' + descriptionAuth; attrStr += ' data-unviewabledescription=' + unviewableDescription; attrStr += ' data-type=' + type; attrStr += ' data-opening=' + opening; attrStr += ' data-maintaining=' + maintaining; return attrStr; }; /** * 点击左侧栏字母导航字母的处理 * @param $clickItem 被点击的字母节点 * @param type fwzx是点击的服务中心,favorite是点击的文件夹 */ AmpUtils.handleClickLetterNav = function ($clickItem, letterTopData, $body) { var letterLen = letterTopData.length; if (letterLen === 0) { return; } var clickLetter = $.trim($clickItem.text()); var letterData; for (var i = 0; i < letterLen; i++) { var letterItem = letterTopData[i]; if (letterItem.letter === clickLetter) { letterData = letterItem; break; } } if (letterData) { $body.animate({scrollTop: (letterData.height - 30)}, '250'); } }; /** * html转义 * @param value 需要转义的字符串 */ AmpUtils.encode = function (value) { return $('
    ').text(value).html(); }; AmpUtils.decode = function (value) { return $('
    ').html(value).text(); }; AmpUtils.openFixedPage = function(data) { data.headerTab = $("#headTab"); var isExistFlag = intoHeaderExistFixedTabPage(data); if (!isExistFlag) { data.headerTab = $("#moreTabsContainer"); isExistFlag = intoHeaderExistFixedTabPage(data); } if (!isExistFlag) { AmpUtils.goBackIndex("headSearch"); if (data.flag === 'serviceCenter') { AMP.searchKey = data.searchData ? data.searchData.key : ""; AmpOpenApp.openOneApp({ "title": '服务中心', "appId": 'personalCenter', "url": 'portal/html/serviceCenter.html', "flag": 'noOpenEvaluate' }, 'noOpenEvaluate'); } else if (data.flag === 'favorite') { AMP.rightSideIsShow = false; AmpOpenApp.openOneApp({ "title": '我的收藏', "appId": 'favorite', "url": 'portal/html/favorite.html', "flag": 'noOpenEvaluate' }, 'noOpenEvaluate'); } } else { if (data.flag === 'favorite') { AMP.rightSideIsShow = false; } } }; function intoHeaderExistFixedTabPage(data) { var isExistFlag = null; var url = ''; switch (data.flag) { case 'serviceCenter': url = 'serviceCenter.html'; break; case 'favorite': url = 'favorite.html'; break; default: break; } data.headerTab.find('div').each(function () { var $item = $(this); var itemUrl = $item.attr('data-url'); if (itemUrl && itemUrl.indexOf(url) > 0) { isExistFlag = true; if (data.flag === 'serviceCenter') { setGlobalSearchData(data.searchData); data.item = $item; //searchToReloadServiceCenter(data); } $item.click(); return; } }); return isExistFlag; } function setGlobalSearchData(data) { if (data) { AMP.searchKey = data.key; AMP.searchFlag = data.flag; AMP.searchLabels = data.labels; } else { AMP.searchKey = ''; AMP.searchFlag = ''; AMP.searchLabels = ''; } } //当服务中心已经打开时,通知服务中心重新查询 function searchToReloadServiceCenter(data) { var appId = data.item.attr('data-menu-id') || data.item.attr('data-appid'); var $iframe = $('#iframeList').find('iframe[data-appid=' + appId + ']'); if ($iframe.length > 0) { if (data.searchData && data.searchData.flag === 'classify') { $iframe[0].contentWindow.AmpServiceCenter.drawFwzx(data.searchData.flag, data.searchData.labels, ''); } else { $iframe[0].contentWindow.AmpServiceCenter.drawFwzx("", "", AMP.searchKey); } } } AmpUtils.checkImageLoadComplete = function ($dom) { var dfd = $.Deferred(); $dom.bind('load', function () { dfd.resolve(); }).bind('error', function () { //图片加载错误,加入错误处理 dfd.reject(); }); return dfd.promise(); }; //刷新我的反馈iframe的数据 AmpUtils.refreshFeedbackIframe = function () { var $feedbackFrame = $('#iframeList').find('iframe[data-appid=myfeedback]'); if ($feedbackFrame.length > 0) { $feedbackFrame[0].contentWindow.postMessage(JSON.stringify({'feedbackReload': true}), '*'); } }; //获取公共应用路径 AmpUtils.getPublicAppPath = function () { return AMPConstant.publicRequestPath; }; /** * 同步app属性 * @param appId * @param attrs 数组[{key: "id", value: "abc"}] */ AmpUtils.synchronousAppAttr = function (appId, attrs) { var $iframeList = $("#iframeList"); //将办事大厅,服务中心,收藏夹的app和已经打开的app进行同步 var attrLen = attrs.length; $iframeList.find('iframe').each(function () { var $iframe = $(this); var iframeSrc = $iframe.attr('src'); if (iframeSrc.indexOf('ehall.html') > 0 || iframeSrc.indexOf('serviceCenter.html') > 0 || iframeSrc.indexOf('favorite.html') > 0 || iframeSrc.indexOf('personalCenter.html') > 0) { var iframeWindow = this.contentWindow; var $existApp = $(iframeWindow.document).find("div[data-appid=" + appId + "]"); $existApp.each(function (appIndex, appItem) { for (var i = 0; i < attrLen; i++) { var attrItem = attrs[i]; var key = attrItem.key; var value = attrItem.value; $(appItem).attr(key, value); if (key.indexOf('data-') === 0) { $(appItem).data(key.replace('data-', ''), value); } } }); } }); }; /** * 评价时同步页面上的应用数据 * @param appId */ AmpUtils.synchronousAppAssess = function (appId) { var $iframeList = $("#iframeList"); $iframeList.find('iframe').each(function () { var $iframe = $(this); var iframeSrc = $iframe.attr('src'); if (iframeSrc.indexOf('ehall.html') > 0 || iframeSrc.indexOf('serviceCenter.html') > 0 || iframeSrc.indexOf('favorite.html') > 0 || iframeSrc.indexOf('personalCenter.html') > 0) { var iframeWindow = this.contentWindow; var $container = iframeWindow.$('body'); var $existApp = $container.find("div[data-appid=" + appId + "]"); if ($existApp.length > 0) { if (iframeSrc.indexOf('serviceCenter.html') > 0) { //直接点击查询按钮 iframeWindow.fwzxSearchBtn.click(); } else if (iframeSrc.indexOf('ehall.html') > 0) { //点击当前active的tab,并将所有的tab的road属性去掉 iframeWindow.$("#homeTabList").children().each(function () { var $tabItem = $(this); $tabItem.removeAttr('data-flag'); if ($tabItem.hasClass('active')) { $tabItem.click(); } }); } else if (iframeSrc.indexOf('personalCenter.html') > 0) { //重新加载含有该app的widget $existApp.each(function () { var $widgetBlock = $(this).closest('.my-site-widget'); var widgetTag = $widgetBlock.attr('data-widget-id'); $widgetBlock.find(widgetTag).after('<' + widgetTag + '>').remove(); }); } else if (iframeSrc.indexOf('favorite.html') > 0) { //点击查询的按钮 iframeWindow.favSearchBtn.click(); } } } }); }; })(window.AmpUtils = window.AmpUtils || {}); ;(function (AmpWidget, undefined) { //将所有的widget放入全局变量中 AmpWidget.setAllWidget = function(allWidgetList){ var allWidgetListLen = allWidgetList ? allWidgetList.length :0; if(allWidgetListLen > 0){ AMP.allWidgetData = allWidgetList; for(var i=0; i 0){ AMP.allSideWidgetData = allSideWidgetList; for(var i=0; i 0){ type = "side"; }else{ var $curCol = $widget.closest(".my-site-column"); if($curCol.length > 0){ if($curCol.hasClass("col-two")){ type = "2"; }else{ type = "1"; } }else{ type = "3"; } } return type; }; //加载widget.html AmpWidget.loadWidgetHtml = function(widgetId){ if(!widgetId || widgetId === "undefined"){ return; } var linkId = 'head-link-'+widgetId; if($("#"+linkId).length > 0){ return; } var link = document.createElement('link'); link.id = linkId; link.rel = 'import'; link.href = "resources/widget/"+widgetId+"/widget.html"; document.getElementsByTagName('head')[0].appendChild(link); }; AmpWidget.getWidgetObj = function($item){ var widgetObj = {}; widgetObj.title = $item.attr("data-title"); widgetObj.thumbnailUrl = $item.attr("data-thumbnailurl"); widgetObj.widgetId = $item.attr("data-widget-id"); widgetObj.appId = $item.attr("data-appid"); widgetObj.appDeployPath = $item.attr("appDeployPath"); return widgetObj; }; AmpWidget.getWidgetAttr = function(widgetData){ var title = widgetData.title; var thumbnailUrl = widgetData.thumbnailUrl; var widgetId = widgetData.widgetId; var appId = widgetData.appId; var attrStr = ""; attrStr += ' data-title='+title; attrStr += ' data-thumbnail='+thumbnailUrl; attrStr += ' data-widget-id='+widgetId; attrStr += ' data-appid='+appId; return attrStr; }; AmpWidget.getWidgetUrlPrefix = function(widgetId){ return AMPConstant.requestPath+"resources/widget/"+widgetId+"/"; }; /** * ajax请求公共方法-promise方式调用 */ AmpWidget.doJsonpAjax = function(url, params){ var deferred = $.Deferred(); $.ajax({ type: 'GET', url: url, traditional: true, data: params, dataType: 'jsonp', jsonp: AMPConstant.jsonp, success: function (resp) { if(!resp.hasLogin){ AmpUtils.goLoginPage(); } deferred.resolve(resp); }, error: function (resp) { deferred.reject(resp); } }); return deferred.promise(); }; AmpWidget.goLoginPage = function(){ if($("#user").find("img").attr("data-tooltip-title")){ window.location.href = AMPConstant.requestPath + "login?service="+window.location.href; return; } }; })(window.AmpWidget = window.AmpWidget || {});