mobileoa-common-modules
Version:
移动办公平台前端公共功能模块
177 lines (169 loc) • 5.21 kB
JavaScript
var angular = require('angular');
require('../modules');
require('jsUtil');
;
var module = angular.module('task.services');
module.factory('TaskRemoteService', function($http, $state, $rootScope) {
var taskTypeMap = {
'0': '局发文',
'1': '处发文',
'2': '局收文',
'3': '处收文',
'4': '出差',
'5': '信息发布',
'6': '文件归档'
}, taskStatusMap = {
'0': '未发送',
'1': '待处理',
'2': '已完成'
};
/**
* 创建任务。
* @param {Number} ifSend 0/null->不发送,仅保存草稿;1->发送
*/
function saveTask(task, ifSend) {
if (task.id) {
return updateTask(task, ifSend);
} else {
return $http({
method: 'POST',
url: '/dispatchTask',
params: {
send: ifSend
},
data: task
}).then(function(response) {
$rootScope.$broadcast('task.add', response.data);
return response.data;
});
}
}
/**
* 更新任务。
* @param {Object} task
* @param {Number} ifSend 是否发送
*/
function updateTask(task, ifSend) {
return $http({
method: 'PUT',
url: '/dispatchTask/' + task.id,
data: task,
params: {
send: ifSend
}
}).then(function(response) {
$rootScope.$broadcast('task.update', response.data);
return response.data;
});
}
/**
* 根据任务类型id获取任务类型名称
* @param {String} typeId 类型id
*/
function getTypeById(typeId) {
return taskTypeMap[typeId]? taskTypeMap[typeId] : typeId;
}
/**
* 根据任务状态id获取任务状态名称。
* @param {String} statusId 任务状态id
*/
function getStatusById(statusId) {
return taskStatusMap[statusId]? taskStatusMap[statusId] : statusId;
}
/**
* 查询任务列表模块的任务列表。
*/
function queryTaskList(pageNo) {
return queryList(0, pageNo).then(function(response) {
return response.data;
});
}
/**
* 查询任务列表。
* 消息列表:type = 1;
* 全部任务:type = 0 || null
* url:
* /dispatchTask?type={type}&status={status}&page.pn=:pn&page.size=:size&sort:order.:property=:orderType
*/
function queryList(type, pageNo, status) {
var url = '/dispatchTask?sort.sendDate=desc&sort.createDate=desc&page.size=15' + (_.isUndefined(type) ? '' : '&type=' + type) + (_.isUndefined(status) ? '' : '&status=' + status) + (_.isUndefined(pageNo) ? '': '&page.pn=' + pageNo);
return $http.get(url);
}
/**
* 加载草稿任务列表。
*/
function queryDraftTaskList(pageNo) {
return queryList(0, pageNo, 0).then(function(response) {
return response.data;
});
}
/**
* 查询消息列表
* @param {String} pageNo 页码
*/
function queryMessageList(pageNo) {
return $http.get('/dispatchTask/message/list?' + (_.isUndefined(pageNo) ? '': '&page.pn=' + pageNo)).then(function(response) {
//每一条消息都去调用一下推送方法,可以通过此操作来更新缓存中的任务评论。唯一需要继续添加的是:在任务讨论添加缓存的方法中添加去重处理
jsUtil.each(response.data.content, function(item) {
$rootScope.$broadcast('message.websocket', item);
});
return response.data;
});
}
/**
* 根据任务id查询任务的详细内容,包括关于任务的讨论信息。
* @param {String} taskId 任务id
*/
function queryTaskDetail(taskId) {
return $http.get('/dispatchTask/' + taskId).then(function(response) {
return response.data;
});
}
/**
* 删除草稿任务。
* @param {String} taskId 待删除的草稿任务id
* {"success":1,"msg":"删除成功","data":"null"}
* {"success":0,"msg":"删除失败","data":"null"}
*/
function deleteDraftTask(taskId) {
return $http.delete('/dispatchTask/' + taskId).then(function(response) {
$rootScope.$broadcast('task.remove', taskId);
return response.data;
});
}
/**
* 领导强制关闭任务/下属关闭自己的任务
* @param {String} taskId 任务id
* /dispatchTask/finish/{id}
*/
function completeTask(taskId) {
return $http({
method: 'POST',
url: '/dispatchTask/finish/' + taskId
}).then(function(response) {
$rootScope.$broadcast('task.complete', taskId);
return response.data;
});
}
/**
* 任务是否完成
* @param {String} taskId 任务id
*/
function taskFinishOrNot(taskId) {
return $http.get('/dispatchTask/finish/'+taskId).then(function(response) {
return response.data;
});
}
return {
queryTaskList: queryTaskList,
queryMessageList: queryMessageList,
queryTaskDetail: queryTaskDetail,
deleteDraftTask: deleteDraftTask,
completeTask: completeTask,
getTypeById: getTypeById,
getStatusById: getStatusById,
saveTask: saveTask,
queryDraftTaskList: queryDraftTaskList,
taskFinishOrNot: taskFinishOrNot
};
});