professionalweb / schedule-widget-yii2
此包已被废弃,不再维护。未建议替代包。
angular-gantt 的包装器
0.5.6
2016-09-01 21:32 UTC
Requires
- bower-asset/angular-latest: 1.5.8
- bower-asset/angular-ui-tree: 2.1.5
- bower-asset/css-element-queries: 0.3.2
- bower-asset/moment-range: ~1
- yiisoft/yii2: ^2.0
README
Yii2 小部件。angular-gantt 的包装器。
Composer
通过 composer 可获取 ScheduleWidgetYII2
composer require professionalweb/schedule-widget-yii2 "dev-master"
或者您可以将以下内容手动添加到您的 composer.json
文件的 require
部分
"professionalweb/schedule-widget-yii2": "dev-master"
之后运行 composer update
在您的 PHP 项目中
数据
示例
use professionalweb\ScheduleWidget\ScheduleWidget; echo ScheduleWidget::widget([ 'clientOptions' => [ 'daily' => 'true', 'column-magnet' => 'column', 'time-frames-magnet' => false ], 'plugins' => [ ScheduleWidget::PLUGIN_MOVABLE => [], ScheduleWidget::PLUGIN_TABLE => [ 'headers' => [ 'model.name' => 'Name' ] ], ScheduleWidget::PLUGIN_TOOLTIP => [] ], 'events' => [ ScheduleWidget::EVENT_TASK_MOVEEND => new JsExpression('function(task){' .'console.log(task.row.model);' .'}') ], 'data' => '[ {"name":"Row №1","sortable":"false","tasks":[]}, {"name":"Row №2","sortable":"false","tasks":[]}, {"name":"Row №3","sortable":"false","tasks":[ {"name":"Task №1","from":"2015 04 16","to":"2015 04 23"} ] } ]' ]);
或者您可以使用数据准备包装器
$result = []; $eventRow = new Row(); $eventRow->name = Yii::t('app', 'Rent'); $result[] = $eventRow; foreach (Room::find()->all() as $room) { $rowRent = new Row(); $rowRent->name = $room->ROOM_NUMBER; $rowRent->parent = $eventRow->name; foreach (Event::find()->andWhere(['ROOM_ID' => $room->id)->all() as $event) { $task = new Task(); $task->name = $event->CLIENT_NAME; $task->from = Yii::$app->formatter->asDate($event->START_DATE, 'Y-MM-dd'); $task->to = Yii::$app->formatter->asDate($event->END_DATE, 'Y-MM-dd'); $task->classes = ['event-row']; $rowRent->tasks[] = $task; } $result[] = $rowRent; }
事件
'events' => [ ScheduleWidget::EVENT_TASK_ROW_CHANGE => new JsExpression('function(task){' .'if(task.row.model.parent===\'Rent\') {' .'task.$element.addClass(\'event-row\');' .'task.$element.removeClass(\'request-row\');' .'} else {' .'task.$element.removeClass(\'event-row\');' .'task.$element.addClass(\'request-row\');' .'}' .'}'), ScheduleWidget::EVENT_TASK_DBLCLICK => new JsExpression('function(task){console.log(task);}') ]
还包括
angular 的 HTMLFilter
示例
ScheduleWidget::PLUGIN_TOOLTIP => [ 'date-format'=>'\'DD.MM.YYYY\'', 'content' => '\'<div ng-bind-html="task.model.name | unsafe"></div>{{getFromLabel() +" - "+getToLabel()}}\'' ],
依赖
MIT 许可证
The MIT License (MIT)
版权所有 (c) 2016 Sergey Zinchenko, Professional web
在此协议下,任何获得此软件及其相关文档副本(“软件”)的人均可免费使用该软件,不受任何限制,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利,并允许提供软件的人进行此类操作,前提是遵守以下条件
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、特定用途适用性和非侵权性保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论该索赔、损害或其他责任是由于合同、侵权或其他原因引起的,与软件或其使用或其它交易有关。