UNPKG

mobileoa-common-modules

Version:

移动办公平台前端公共功能模块

79 lines (65 loc) 2.17 kB
'use strict'; var angular = require('angular'); require('../modules'); var module = angular.module('webmail.services'); module.factory('webmailService', function($http, LinkerService, $q, AppConfig) { var webmailService = {}; var coreMailBaseUrl = null; var opened = false; var mailType_web = null, mailType_cma = null; function toCoreMail(url) { var deferred = $q.defer(); if (window.SinoNetwork && window.SinoNetwork.toCoreMail) { window.SinoNetwork.toCoreMail(url, '邮件', deferred.resolve, deferred.resolve); } else { window.open(url, '_self', 'location=no,closebuttoncaption=Close,enableViewportScale=yes'); deferred.resolve(); } return deferred.promise; } function getCoreMailBaseUrl() { return coreMailBaseUrl; } webmailService.setCoreMailBaseUrl = function(_coreMailBaseUrl) { if(!_.isEmpty(_coreMailBaseUrl)) { coreMailBaseUrl = _coreMailBaseUrl; } }; webmailService.setMailTypeCma = function(_mailType) { mailType_cma = _mailType; }; webmailService.setMailTypeWeb = function(_mailType) { mailType_web = _mailType; }; webmailService.openWebMail = function(mailType) { var coreMailPublicUrl = AppConfig.serverUrl + getCoreMailBaseUrl(); if (opened) { return; } opened = true; return getEmailLoginInfo(mailType).then(function(data) { var sid = data.sid, url = coreMailPublicUrl + '?coremail_type=' + mailType; if ((mailType === 'web' && sid && data.isEmailName) || (mailType !== 'web' && sid)) { url = coreMailPublicUrl + 'main.jsp?coremail_type=' + mailType + '&sid=' + sid; } return url; }).then(function(url) { return toCoreMail(url); })['finally'](function() { opened = false; }); }; /** * 获取登录邮箱所需的信息 * sid * unreadNumber */ function getEmailLoginInfo(mailType) { return $http.get('/webmail?userId=' + LinkerService.currentUserId + '&type=' + mailType, { timeout: 15000 }).then(function(response) { return response.data; }); }; return webmailService; });