| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181 |
- import { request } from './request.js';
- // 工作流API配置
- export const workflowApi = {
- // 获取流程实例分页列表(我发起的)
- pageByCurrent: (params) =>
- request({
- url: '/workflow/instance/pageByCurrent',
- method: 'GET',
- data: params,
- }),
- // 删除流程实例
- deleteByInstanceIds: (instanceIds) =>
- request({
- url: `/workflow/instance/deleteByInstanceIds/${instanceIds}`,
- method: 'DELETE',
- // data: instanceIds,
- }),
- // 撤销流程申请
- cancelProcessApply: (data) =>
- request({
- url: '/workflow/instance/cancelProcessApply',
- method: 'PUT',
- data,
- }),
- // 获取流程分类树
- categoryTree: () =>
- request({
- url: '/workflow/category/categoryTree',
- method: 'GET',
- }),
- // 获取我的待办任务
- todoTasks: (params) =>
- request({
- url: '/workflow/task/todoTasks',
- method: 'GET',
- data: params,
- }),
- // 获取我的已办任务
- finishedTasks: (params) =>
- request({
- url: '/workflow/task/finishedTasks',
- method: 'GET',
- data: params,
- }),
- // 获取我的抄送任务
- copyTasks: (params) =>
- request({
- url: '/workflow/task/copyTasks',
- method: 'GET',
- data: params,
- }),
- // 获取全部待办任务(对应web端allTaskWaiting.vue)
- pageByAllTaskWait: (params) =>
- request({
- url: '/workflow/task/pageByAllTaskWait',
- method: 'GET',
- data: params,
- }),
- // 获取全部已办任务(对应web端allTaskWaiting.vue)
- pageByAllTaskFinish: (params) =>
- request({
- url: '/workflow/task/pageByAllTaskFinish',
- method: 'GET',
- data: params,
- }),
- // 获取我的已办任务(对应web端taskFinish.vue)
- pageByTaskFinish: (params) =>
- request({
- url: '/workflow/task/pageByTaskFinish',
- method: 'GET',
- data: params,
- }),
- // 获取我的抄送任务(对应web端taskCopyList.vue)
- pageByTaskCopy: (params) =>
- request({
- url: '/workflow/task/pageByTaskCopy',
- method: 'GET',
- data: params,
- }),
- // 修改办理人
- updateAssignee: (taskIds, assigneeId) =>
- request({
- url: '/workflow/task/updateAssignee',
- method: 'POST',
- data: { taskIds, assigneeId },
- }),
- // 启动流程实例
- startProcessInstance: (data) =>
- request({
- url: '/workflow/instance/start',
- method: 'POST',
- data,
- }),
- // 办理任务
- complete: (data) =>
- request({
- url: '/workflow/task/complete',
- method: 'POST',
- data,
- }),
- // 获取流程历史
- processHistory: (instanceId) =>
- request({
- url: `/workflow/instance/history/${instanceId}`,
- method: 'GET',
- }),
- // 获取流程实例详情(根据业务ID)
- processDetail: (businessId) =>
- request({
- url: `/workflow/instance/getInfo/${businessId}`,
- method: 'GET',
- }),
- };
- // 工作流状态映射
- export const workflowStatus = {
- draft: { label: '草稿', color: '#909399', icon: '📝' },
- waiting: { label: '待审批', color: '#e6a23c', icon: '⏰' },
- complete: { label: '已完成', color: '#67c23a', icon: '✅' },
- cancel: { label: '已取消', color: '#f56c6c', icon: '❌' },
- back: { label: '已退回', color: '#409eff', icon: '↩️' },
- suspend: { label: '挂起', color: '#909399', icon: '⏸️' },
- terminate: { label: '终止', color: '#f56c6c', icon: '🛑' },
- };
- // 工作流分类图标映射
- export const categoryIcons = {
- leave: '📅',
- repair: '🔧',
- purchase: '🛒',
- reimbursement: '💰',
- approval: '📋',
- default: '📄',
- };
- // 获取状态样式
- export const getStatusStyle = (status) => workflowStatus[status] || workflowStatus.draft;
- // 获取分类图标
- export const getCategoryIcon = (category) => categoryIcons[category] || categoryIcons.default;
- // 工作流路由跳转方法
- export const routerJump = (routerJumpVo) => {
- const { businessId, taskId, type, formCustom, formPath } = routerJumpVo;
- const params = { businessId, taskId, type, formCustom, formPath };
- const queryString = Object.keys(params)
- .filter((key) => params[key] !== undefined && params[key] !== null)
- .map((key) => `${key}=${encodeURIComponent(params[key])}`)
- .join('&');
- uni.navigateTo({
- url: `/pages/workflow/process?${queryString}`,
- fail: () => {
- uni.showToast({
- title: '页面跳转失败',
- icon: 'error',
- });
- },
- });
- };
- // 格式化时间显示
- export const formatTime = (timeStr) => {
- if (!timeStr) return '';
- const time = new Date(timeStr);
- const now = new Date();
- const diff = now.getTime() - time.getTime();
- if (diff < 60 * 1000) {
- return '刚刚';
- }
- if (diff < 60 * 60 * 1000) {
- return `${Math.floor(diff / (60 * 1000))}分钟前`;
- }
- if (diff < 24 * 60 * 60 * 1000) {
- return `${Math.floor(diff / (60 * 60 * 1000))}小时前`;
- }
- if (diff < 7 * 24 * 60 * 60 * 1000) {
- return `${Math.floor(diff / (24 * 60 * 60 * 1000))}天前`;
- }
- return time.toLocaleDateString();
- };
|