UNPKG

mobileoa-common-modules

Version:

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

177 lines (169 loc) 5.21 kB
var angular = require('angular'); require('../modules'); require('jsUtil'); 'use strict'; 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 }; });