提交新的移动端框架

This commit is contained in:
zlwu committed 2025-08-07 13:19:12 +08:00
1 parent 134f711349
commit 9bda3717fe
75 files changed
+5283 -9011

No files matched your search

+181
View File
@@ -0,0 +1,181 @@
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',
method: 'DELETE',
data: instanceIds,
}),
// 撤销流程申请
cancelProcessApply: (data) =>
request({
url: '/workflow/instance/cancelProcessApply',
method: 'POST',
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();
};