title = '工单支持'; $this->params['breadcrumbs'][] = $this->title; FontAwesomeAsset::register($this); ?>
= Html::a('创建工单', ['create'], ['class' => 'btn btn-success']) ?>
= GridView::widget([ 'dataProvider' => $dataProvider, 'filterModel' => $searchModel, 'columns' => [ [ 'attribute' => 'id', 'label' => '工单ID', ], [ 'attribute' => 'title', 'label' => '标题', 'format' => 'raw', // 使用 raw 格式,这样 Yii2 不会对 value 的返回值进行 HTML 编码 'value' => function (Tickets $model) { return Html::a($model->title, ['view', 'id' => $model->id]); }, ], [ 'attribute' => 'created_at', 'label' => '创建时间', 'filter' => false ], [ 'attribute' => 'updated_at', 'label' => '最近更新时间', 'value' => function (Tickets $model) { return Yii::$app->formatter->asRelativeTime(new DateTime($model->updated_at, new DateTimeZone('GMT+8'))); }, 'filter' => false ], [ 'attribute' => 'status', 'label' => '状态', 'format' => 'raw', // 使用 raw 格式,这样 Yii2 不会对 value 的返回值进行 HTML 编码 'value' => function (Tickets $model) { return match ($model->status) { Tickets::STATUS_OPEN => '工单已开启', Tickets::STATUS_ADMIN_REPLY => '管理员已回复', Tickets::STATUS_USER_REPLY => '用户已回复', Tickets::STATUS_CLOSED => '工单已关闭', default => '未知状态', }; }, 'filter' => [ Tickets::STATUS_OPEN => '工单已开启', Tickets::STATUS_ADMIN_REPLY => '管理员已回复', Tickets::STATUS_USER_REPLY => '用户已回复', Tickets::STATUS_CLOSED => '工单已关闭', ] ], [ 'class' => ActionColumn::class, 'template' => '{view} {delete}', 'buttons' => [ 'view' => function ($url, $model, $key) { return Html::a('', $url, [ 'title' => '查看工单', 'data-pjax' => '0', ]); }, 'delete' => function ($url, $model, $key) { if ($model->status !== Tickets::STATUS_CLOSED) { return Html::a('', ['delete', 'id' => $model->id, 'from' => 'index'], [ 'title' => '关闭工单', 'data-pjax' => '0', 'data-confirm' => '你确定要关闭这个工单吗?', 'data-method' => 'post', ]); } else { return Html::tag('i', '', [ 'class' => 'fa-solid fa-xmark', 'style' => 'color: gray;', 'title' => '工单已关闭', ]); } }, ], 'urlCreator' => function ($action, Tickets $model, $key, $index, $column) { return Url::toRoute([$action, 'id' => $model->id]); }, ], ], ]); ?>