deepseath / approval-flow
There is no license information available for the latest version (1.0.0) of this package.
A flexible approval flow system for ThinkPHP6
1.0.0
2025-04-29 12:34 UTC
Requires
- php: >=7.4
- topthink/think-helper: ^3.0
- topthink/think-orm: ^2.0
This package is not auto-updated.
Last update: 2025-04-29 22:12:27 UTC
README
基于ThinkPHP6的灵活审批流系统,支持多级审批、条件审批、消息推送等功能。
安装
使用Composer安装:
composer require deepseath/approval-flow
配置
- 发布配置文件:
php think vendor:publish --tag=approvalflow-config
- 修改配置文件
config/approvalflow.php
:
return [
'db_prefix' => 'approval_', // 数据库表前缀
'message' => [
'driver' => 'default', // 消息驱动
'callback' => null, // 消息回调
],
// 其他配置...
];
- 注册服务提供者:
在 config/app.php
中添加:
'providers' => [
\ApprovalFlow\ServiceProvider::class,
],
基本使用
创建审批流程
use ApprovalFlow\Facade as ApprovalFlow;
$flowData = [
'title' => '请假申请',
'creator_id' => 1,
'nodes' => [
[
'name' => '部门经理审批',
'approvers' => [
['id' => 'manager_tag', 'type' => 1], // 标签类型
],
'condition' => 'days > 3', // 条件表达式
'cc' => [
['id' => 'hr_tag', 'type' => 1], // 抄送给HR标签
]
],
// 更多节点...
]
];
$flowId = ApprovalFlow::createFlow($flowData);
处理审批
// 同意审批
ApprovalFlow::processApproval($flowId, $approverId, ApprovalFlow::STATUS_APPROVED, '同意');
// 拒绝审批
ApprovalFlow::processApproval($flowId, $approverId, ApprovalFlow::STATUS_REJECTED, '拒绝原因');
查询审批
// 获取审批详情
$flow = ApprovalFlow::getFlowDetails($flowId);
// 获取用户待审批列表
$pendingApprovals = ApprovalFlow::getUserPendingApprovals($userId);
// 获取用户发起的审批
$createdFlows = ApprovalFlow::getUserCreatedFlows($userId);
消息推送
在配置文件中设置消息回调:
'message' => [
'callback' => function($type, $data) {
// $type 可能是 'node_notify' 或 'flow_completed'
// 实现你的消息推送逻辑
},
],
测试
运行单元测试:
php think test
License
MIT