jinoantony/laravel-kanban

v1.0.1 2023-10-26 16:14 UTC

This package is auto-updated.

Last update: 2024-09-26 18:15:47 UTC


README

这是一个用于jkanban库的laravel包装器。

安装

您可以使用composer安装此包。

composer require jinoantony/laravel-kanban

此包支持包自动发现,因此您不需要手动注册。如果您想手动注册提供者,请将以下行添加到config/app.php文件中。

JinoAntony\Kanban\LaravelKanbanServiceProvider::class,

用法

此包在底层使用jkanban库。因此,不要忘记在视图文件中包含jkanban.min.jsjkanban.min.css

创建看板

您可以使用artisan命令生成看板。

php artisan kanban:make TaskKanban

这将创建一个位于app/Kanban目录中的新文件TaskKanban

默认情况下,看板的结构如下。

class TaskKanban extends Kanban
{
    /**
     * Get the list of boards
     *
     * @return KBoard[]
     */
    public function getBoards()
    {
        return [
            KBoard::make('board1')
                ->setTitle('Board1 title')
                ->canDragTo('board2'),

            KBoard::make('board2')
                ->setTitle('Board2 title')
                ->canDragTo('board3'),

            KBoard::make('board3')
                ->setTitle('Board3 title')
                ->canDragTo('board2')
                ->canDragTo('board1'),
        ];
    }

    /**
     * Get the data for each board
     *
     * @return array
     */
    public function data()
    {
        return [
            'board1' => [
                KItem::make('1')
                    ->setContent('Item1'),
                KItem::make('2')
                    ->setContent('Item2'),
            ],
            'board2' => [
                KItem::make('3')
                    ->setContent('Item3'),
                KItem::make('4')
                    ->setContent('Item4'),
            ],
            'board3' => [
                KItem::make('5')
                    ->setContent('Item5'),
                KItem::make('6')
                    ->setContent('Item6'),
            ],
        ];
    }

    public function build()
    {
        return $this->element('.kanban-board')
            ->margin('20px')
            ->width('365px');
    }

}

创建一个视图来渲染看板。

<!DOCTYPE html>
<html lang="en">
<head>
    <title>Kanban</title>
    <link rel="stylesheet" href="{{ asset('css/jkanban.min.css') }}" />
</head>
<body>
    <div class="kanban-board"></div>
    
    <script src="{{ asset('js/jkanban.min.js') }}"></script>
    {!! $kanban->scripts() !!}
</body>
</html>

然后,在您的控制器中,

use App\Kanban\TaskKanban;

class TaskController extends Controller
{
    public function get(TaskKanban $kanban)
    {
        return $kanban->render('kanban');
    }
}

现在在web.php中添加一个路由。

Route::get('task', 'TaskController@get');