swatkins/laravel-gantt

Laravel 包,用于在甘特图中显示项目。

v1.0.0 2016-10-09 01:32 UTC

This package is not auto-updated.

Last update: 2020-02-07 16:36:17 UTC


README

License

A Laravel 5.x package to display items within a Gantt chart (adapted from bastianallgeier/gantti).

Screenshot

安装

使用 composer 安装此包

composer require swatkins/laravel-gantt

更新 composer 后,将 ServiceProvider 添加到 config/app.php 中的 providers 数组

Swatkins\LaravelGantt\GanttServiceProvider::class,

使用 publish 命令将包的 css 文件复制到您本地的 css 目录

php artisan vendor:publish --tag="gantt"

使用

要在甘特图中显示的模型至少需要具有 labelstartend 属性。

  • label 是显示项目的字符串
  • start 是日期或日期时间(需要以 YYYY-MM-DD 格式传递)
  • end 是日期或日期时间(需要以 YYYY-MM-DD 格式传递)
/**
 * Get your model items however you deem necessary
 */
$select = 'title as label, DATE_FORMAT(start, \'%Y-%m-%d\') as start, DATE_FORMAT(end, \'%Y-%m-%d\') as end';
$projects = \App\Project::select(\Illuminate\Support\Facades\DB::raw($select))
                ->orderBy('start', 'asc')
                ->orderBy('end', 'asc')
                ->get();
    
/**
 *  You'll pass data as an array in this format:
 *  [
 *    [ 
 *      'label' => 'The item title',
 *      'start' => '2016-10-08',
 *      'end'   => '2016-10-14'
 *    ]
 *  ]
 */
 
$gantt = new Swatkins\LaravelGantt\Gantt($projects->toArray(), array(
    'title'      => 'Demo',
    'cellwidth'  => 25,
    'cellheight' => 35
));

return view('gantt')->with([ 'gantt' => $gantt ]);

在视图中显示

在视图中添加 gantt.css 文件

<link href="/vendor/swatkins/gantt/css/gantt.css" rel="stylesheet" type="text/css">

然后输出甘特图 HTML

{!! $gantt !!}

模型工厂

以下是一个用于创建项目测试数据的工厂。您可以将此粘贴到 database/factories/ModelFactory.php 文件中,然后通过 tinker 运行。请参阅 https://laravel.net.cn/docs/5.2/seeding#using-model-factories

$factory->define(App\Project::class, function (Faker\Generator $faker) {
    return [
        'title' => $faker->sentence(),
        'start' => $faker->dateTimeBetween('-30 days'),
        'end' => $faker->dateTimeBetween('now', '+30 days')
    ];
});

归属

此代码改编自 https://github.com/bastianallgeier/gantti

许可

MIT 许可证 - https://open-source.org.cn/licenses/mit-license.php