jawaraegov/workflows

工作流包,用于管理和处理状态及转换

dev-master 2019-07-18 18:07 UTC

This package is auto-updated.

Last update: 2024-09-19 06:39:01 UTC


README

Scrutinizer Code Quality Build Status

工作流管理

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

本包最终将包含一些酷炫的功能

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

工作流管理

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

Scrutinizer Code Quality Build Status

本包最终将包含一些酷炫的功能

工作流

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

状态

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

转换

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

守卫

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

通知

  • 当内容的状态发生变化或执行转换时,系统将通过系统发送通知给相关人员。通知将显示在用户桌面和相关邮件中。

待办事项

在使用之前,请参阅待办事项

安装Laravel

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

安装包

$ composer require jawaraegov/workflows:dev-master

编辑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',
    Jawaraegov\Workflows\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' => Jawaraegov\Workflows\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
$ php artisan jawaraegov:workflow:seed

示例用法

特质

1. WorkflowStateTrait

use Jawaraegov\Workflows\Traits\WorkflowStateTrait;

class WorkflowStateController extends Controller
{
    use WorkflowStateTrait;

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

2. WorkflowTransitionTrait

use Jawaraegov\Workflows\Traits\WorkflowTransitionTrait;

class WorkflowTransitionController extends Controller
{
    use WorkflowTransitionTrait;

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

WorkflowStateTrait示例

WorkflowTransitionTrait示例

示例2

在应用中使用

//Controller
use Jawaraegov\Workflows\Workflow
...
public function SOMETHING()
{
    $id = 1;
    return \Workflow::getStateName($id);
}
//Controller
use Jawaraegov\Workflows\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>