yii2 TreeGrid 无限极菜单 使用
<?php
use common\helpers\Url;
use common\helpers\Html;
use leandrogehlen\treegrid\TreeGrid;
use common\helpers\ImageHelper;
$this->title = '菜单管理';
$this->params['breadcrumbs'][] = ['label' => $this->title];
?>
<div class="row">
<div class="col-sm-12">
<div class="nav-tabs-custom">
<ul class="nav nav-tabs">
<li><a href="<?= Url::to(['menu-cate/index']) ?>"> 菜单分类</a></li>
<li class="pull-right">
<?= Html::create(['ajax-edit', 'cate_id' => 1], '创建', [
'data-toggle' => 'modal',
'data-target' => '#ajaxModalLg',
]); ?>
</li>
</ul>
<div class="tab-content">
<div class="active tab-pane">
<?= TreeGrid::widget([
'dataProvider' => $dataProvider,
'keyColumnName' => 'id', //ID
'parentColumnName' => 'p_id', //父ID
'parentRootValue' => '0', //first parentId value
'pluginOptions' => [
'initialState' => 'collapsed',
],
'options' => ['class' => 'table table-hover'],
'columns' => [
[
'attribute' => 'title',
'format' => 'raw',
'value' => function ($model, $key, $index, $column){
$str = Html::tag('span', $model->title, [
'class' => 'm-l-sm'
]);
$str .= Html::a(' <i class="icon ion-android-add-circle"></i>', ['ajax-edit', 'p_id' => $model['id']], [
'data-toggle' => 'modal',
'data-target' => '#ajaxModal',
]);
return $str;
}
],
[
'attribute' => 'img',
'value' => function ($model) {
if ($model->img) {
return ImageHelper::fancyBox(Html::encode($model->img),'100','30');
}else{
}
},
// 'filter' => false,
'format' => 'raw',
],
[
'attribute' => 'ico',
'format' => 'raw',
'headerOptions' => ['class' => 'col-md-1'],
'value' => function ($model, $key, $index, $column){
return Html::tag('span', '', [
'class' => 'fa ' . $model['ico']
]);
}
],
[
'attribute' => 'sort',
'format' => 'raw',
'headerOptions' => ['class' => 'col-md-1'],
'value' => function ($model, $key, $index, $column){
return Html::sort($model->sort);
}
],
[
'header' => "操作",
'class' => 'yii\grid\ActionColumn',
'template'=> '{edit} {status} {destroy}',
'buttons' => [
'edit' => function ($url, $model, $key) {
return Html::edit(['ajax-edit','id' => $model->id], '编辑', [
'data-toggle' => 'modal',
'data-target' => '#ajaxModal',
]);
},
'status' => function ($url, $model, $key) {
return Html::status($model->status);
},
'destroy' => function ($url, $model, $key) {
return Html::delete(['destroy', 'id' => $model->id,'status'=>1]);
},
],
],
]
]); ?>
</div>
</div>
</div>
</div>
</div>