bantenprov/workflow

用于管理和转换状态的 Workflow 包

1.0.1 2017-12-16 07:48 UTC

This package is not auto-updated.

Last update: 2024-09-19 05:08:27 UTC


README

Join the chat at https://gitter.im/bantenprov-workflow/Lobby Scrutinizer Code Quality Build Status

工作流管理

用于在复杂业务流程中轻松管理状态和转换的工作流管理

此包的最终版本将包含一些非常酷的功能

  • 工作流
  • 工作流状态
  • 工作流转换
  • 工作流通知
  • 工作流守卫
  • 转换附件
  • 附件
  • 通知到
  • 通知 cc
  • 历史记录

工作流管理

Join the chat at https://gitter.im/bantenprov-workflow/Lobby 用于在复杂业务流程中轻松管理状态和转换的工作流管理。

Scrutinizer Code Quality Build Status

此包的最终版本将包含一些非常酷的功能

工作流

  • 定义工作流的名称和描述,每种内容类型可以包含多个工作流来管理其业务流程

状态

  • 定义与工作流相关的状态名称集合,并描述业务流程中内容的最最新状态

转换

  • 定义内容中任何状态之间的转换,此功能将处理移动转换

守卫

  • 守卫给角色管理中与转换相关的角色一个或多个授权的权限

通知

  • 当内容的状态发生变化或执行转换时,系统将向相关人员发送通知。通知将在用户桌面相关部分显示,并作为邮件通知。

待办事项

在使用之前,请查看 待办事项

演示

此包的演示站点可在此处获取: 工作流

安装 Laravel

$ composer create-project --prefer-dist laravel/laravel project-name "5.4.*"

安装包

$ composer require bantenprov/workflow "1.0.0"

编辑 config/config.php

编辑 config/app.php

提供者

'providers' => [
    ...
    App\Providers\AppServiceProvider::class,
    App\Providers\AuthServiceProvider::class,
    App\Providers\EventServiceProvider::class,
    App\Providers\RouteServiceProvider::class,
    ...
    Collective\Html\HtmlServiceProvider::class,
    'That0n3guy\Transliteration\TransliterationServiceProvider',
    Bantenprov\Workflow\WorkflowServiceProvider::class,

别名

'aliases' => [
    ...
    'Storage' => Illuminate\Support\Facades\Storage::class,
    'URL' => Illuminate\Support\Facades\URL::class,
    'Validator' => Illuminate\Support\Facades\Validator::class,
    'View' => Illuminate\Support\Facades\View::class,
    ...
    'Form' => Collective\Html\FormFacade::class,
    'Html' => Collective\Html\HtmlFacade::class,
    'Workflow' => Bantenprov\Workflow\Facades\Workflow::class,

Artisan 命令

$ php artisan vendor:publish --tag=workflow_migrations
$ php artisan vendor:publish --tag=workflow_views
$ php artisan vendor:publish --tag=workflow_css
$ php artisan vendor:publish --tag=workflow_js
$ php artisan migrate

使用示例

特质

1. WorkflowStateTrait

use Bantenprov\Workflow\Traits\WorkflowStateTrait;

class WorkflowStateController extends Controller
{
    use WorkflowStateTrait;

    public function index()
    {
        return WorkflowStateTrait::stateIndex();
    }
}

2. WorkflowTransitionTrait

use Bantenprov\Workflow\Traits\WorkflowTransitionTrait;

class WorkflowTransitionController extends Controller
{
    use WorkflowTransitionTrait;

    public function index()
    {
        return WorkflowStateTrait::transitionIndex();
    }
}

WorkflowStateTrait 示例

WorkflowTransitionTrait 示例

示例 2

在应用中使用

//Controller
use Bantenprov\Workflow\Workflow
...
public function SOMETHING()
{
    $id = 1;
    return \Workflow::getStateName($id);
}
//Controller
use Bantenprov\Workflow\Workflow
...
public function SOMETHING()
{
    $id = 1;
    return \Workflow::getTransitionName($id);
}

CSS

文件夹 style.css:public/css/style.css

<!-- layout.blade.php -->
<html>
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1">        
        <title>Laravel</title>

        <!-- Fonts -->
  -->   <link href="{{ asset('css/workflow_style.css') }}" rel="stylesheet" type="text/css">

JS

文件夹 custom.js:public/js/custom.js

<!-- layout.blade.php -->
          
            </div>
        </div>
  -->   <script src="{{ asset('js/workflow_javascript.js') }}"></script>
    </body>
</html>