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-10-29 13:20:15 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