mobileoa-common-modules
Version:
移动办公平台前端公共功能模块
129 lines (116 loc) • 3.32 kB
JavaScript
var angular = require('angular');
require('../modules');
'use strict';
angular
.module('setting')
.controller('UserinfoCtrl', UserinfoCtrl);
/** @ngInjetct */
function UserinfoCtrl($scope, $ionicLoading, $ionicActionSheet, $toast,
LinkerService, PersonImgCache, fileService, AppConfig) {
getLoginUser();
$scope.$on('$ionicView.beforeEnter', function() {
getLoginUser();
});
$scope.$on('$ionicView.enter', function() {
getLoginUser();
});
/**
* 获取当前登录人信息。
*/
function getLoginUser() {
var user = LinkerService.currentUser,
userId = LinkerService.currentUserId;
$scope.loginUser = user || {};
}
/**
* 选择用户图片。
*/
$scope.changePhoto = function() {
$ionicActionSheet.show({
title: '选取照片',
buttons: [{
text: '<i class="icon ion-camera sino-camera-icon"></i>拍照'
}, {
text: '<i class="icon ion-image sino-img-icon"></i>从相册中选取'
}, {
text:'<i class="icon ion-trash-a sino-head-portrait-delete-icon"></i>移除头像'
}],
cancelText: '取消',
cancel: function() {
return true;
},
buttonClicked: function(index) {
if (index === 0) {
$scope.takePicture();
} else if (index === 1) {
$scope.choosePicture();
} else if (index === 2) {
$scope.removePictrue();
}
return true;
}
});
};
/**
* 删除用户头像
*/
$scope.removePictrue = function() {
SettingService.removeUserPicture($scope.loginUser.userId).then(function(status) {
if(status) {
PersonImgCache.syncPersonImgUrl($scope.loginUser.userId);
}
});
};
/**
* 上传图片成功的回调。
*/
var uploadImageSuccess = function() {
PersonImgCache.syncPersonImgUrl($scope.loginUser.userId);
$ionicLoading.hide();
};
/**
* 上传图片失败的回调。
*/
var uploadFileFail = function() {
$toast.showLongCenter('上传用户图片失败,请检查网络连接。');
};
/**
* 获取图片成功的回调。
* @param {String} fileURL
*/
$scope.onGetPictureSuccess = function(fileURL) {
var options = {
mimeType: 'image/jpeg',
fileName: fileURL && fileURL.substr(fileURL.lastIndexOf('/') + 1) + '.jpg'
};
$toast.showLongCenter('正在上传头像..');
fileService.upload(fileURL, AppConfig.serverUrl + '/base-user/user/' + $scope.loginUser.userId + '/photo', options).then(uploadImageSuccess, uploadFileFail);
};
/**
* 获取图片失败的回调。
*/
$scope.onGetPictureFail = function() {
};
/**
* 拍照。
*/
$scope.takePicture = function() {
navigator.camera.getPicture($scope.onGetPictureSuccess, $scope.onGetPictureFail, {
quality: 100,
cameraDirection: Camera.Direction.FRONT,
destinationType: Camera.DestinationType.FILE_URI,
saveToPhotoAlbum: true
});
};
/**
* 选取现有照片。
*/
$scope.choosePicture = function() {
navigator.camera.getPicture($scope.onGetPictureSuccess, $scope.onGetPictureFail, {
quality: 100,
allowEdit: true,
destinationType: Camera.DestinationType.FILE_URI,
sourceType: Camera.PictureSourceType.SAVEDPHOTOALBUM
});
};
}