# approval-flow **Repository Path**: Deepseath/approval-flow ## Basic Information - **Project Name**: approval-flow - **Description**: PHP通用审批流 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-04-29 - **Last Updated**: 2025-06-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ApprovalFlow 基于ThinkPHP6的灵活审批流系统,支持多级审批、条件审批、消息推送等功能。 ## 安装 使用Composer安装: ```bash composer require deepseath/approval-flow ``` ## 配置 1. 发布配置文件: ```bash php think vendor:publish --tag=approvalflow-config ``` 2. 修改配置文件 `config/approvalflow.php`: ```php return [ 'db_prefix' => 'approval_', // 数据库表前缀 'message' => [ 'driver' => 'default', // 消息驱动 'callback' => null, // 消息回调 ], // 其他配置... ]; ``` 3. 注册服务提供者: 在 `config/app.php` 中添加: ```php 'providers' => [ \ApprovalFlow\ServiceProvider::class, ], ``` ## 基本使用 ### 创建审批流程 ```php 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); ``` ### 处理审批 ```php // 同意审批 ApprovalFlow::processApproval($flowId, $approverId, ApprovalFlow::STATUS_APPROVED, '同意'); // 拒绝审批 ApprovalFlow::processApproval($flowId, $approverId, ApprovalFlow::STATUS_REJECTED, '拒绝原因'); ``` ### 查询审批 ```php // 获取审批详情 $flow = ApprovalFlow::getFlowDetails($flowId); // 获取用户待审批列表 $pendingApprovals = ApprovalFlow::getUserPendingApprovals($userId); // 获取用户发起的审批 $createdFlows = ApprovalFlow::getUserCreatedFlows($userId); ``` ## 消息推送 在配置文件中设置消息回调: ```php 'message' => [ 'callback' => function($type, $data) { // $type 可能是 'node_notify' 或 'flow_completed' // 实现你的消息推送逻辑 }, ], ``` ## 测试 运行单元测试: ```bash php think test ``` ## License MIT