实现公告功能

*前端 公告管理部分
This commit is contained in:
Chenx221 2024-04-21 16:42:37 +08:00
parent cd6276503f
commit 475cd97946
Signed by: chenx221
GPG Key ID: D7A9EC07024C3021
7 changed files with 214 additions and 1 deletions

View File

@ -0,0 +1,25 @@
<?php
use yii\helpers\Html;
use yii\widgets\ActiveForm;
/** @var yii\web\View $this */
/** @var app\models\Announcements $model */
/** @var yii\widgets\ActiveForm $form */
?>
<div class="announcements-form">
<?php $form = ActiveForm::begin(); ?>
<?= $form->field($model, 'title')->textInput(['maxlength' => true]) ?>
<?= $form->field($model, 'content')->textarea(['rows' => 6]) ?>
<div class="form-group">
<?= Html::submitButton('发布', ['class' => 'btn btn-success']) ?>
</div>
<?php ActiveForm::end(); ?>
</div>

View File

@ -0,0 +1,38 @@
<?php
use yii\helpers\Html;
use yii\widgets\ActiveForm;
/** @var yii\web\View $this */
/** @var app\models\AnnouncementsSearch $model */
/** @var yii\widgets\ActiveForm $form */
?>
<div class="announcements-search">
<?php $form = ActiveForm::begin([
'action' => ['index'],
'method' => 'get',
'options' => [
'data-pjax' => 1
],
]); ?>
<?= $form->field($model, 'id') ?>
<?= $form->field($model, 'title') ?>
<?= $form->field($model, 'content') ?>
<?= $form->field($model, 'published_at') ?>
<?= $form->field($model, 'updated_at') ?>
<div class="form-group">
<?= Html::submitButton('Search', ['class' => 'btn btn-primary']) ?>
<?= Html::resetButton('Reset', ['class' => 'btn btn-outline-secondary']) ?>
</div>
<?php ActiveForm::end(); ?>
</div>

View File

@ -0,0 +1,20 @@
<?php
use yii\helpers\Html;
/** @var yii\web\View $this */
/** @var app\models\Announcements $model */
$this->title = '发布公告';
$this->params['breadcrumbs'][] = ['label' => '公告管理', 'url' => ['announcements-manage']];
$this->params['breadcrumbs'][] = $this->title;
?>
<div class="announcements-create">
<h1><?= Html::encode($this->title) ?></h1>
<?= $this->render('_announcements_form', [
'model' => $model,
]) ?>
</div>

View File

@ -0,0 +1,68 @@
<?php
use app\models\Announcements;
use yii\helpers\Html;
use yii\helpers\Url;
use yii\grid\ActionColumn;
use yii\grid\GridView;
use yii\widgets\Pjax;
/** @var yii\web\View $this */
/** @var app\models\AnnouncementsSearch $searchModel */
/** @var yii\data\ActiveDataProvider $dataProvider */
$this->title = '公告管理';
$this->params['breadcrumbs'][] = $this->title;
?>
<div class="announcements-index">
<h1><?= Html::encode($this->title) ?></h1>
<p>
<?= Html::a('发布公告', ['announcements-create'], ['class' => 'btn btn-success']) ?>
</p>
<p>Tips: 只有最新的三条公告对用户可见</p>
<?php Pjax::begin(); ?>
<?= GridView::widget([
'dataProvider' => $dataProvider,
'filterModel' => $searchModel,
'columns' => [
['class' => 'yii\grid\SerialColumn'],
'id',
[
'attribute' => 'title',
'format' => 'raw',
'value' => function (Announcements $model) {
return Html::a($model->title, ['announcements-view', 'id' => $model->id]);
}
],
[
'attribute' => 'content',
'label' => '内容',
// if the content is too long, only show the first 30 characters
'value' => function (Announcements $model) {
return mb_substr($model->content, 0, 30) . '...';
}
],
'published_at',
'updated_at',
[
'class' => ActionColumn::class,
'urlCreator' => function ($action, Announcements $model, $key, $index, $column) {
if ($action === 'view') {
return Url::to(['announcements-view', 'id' => $model->id]);
} elseif ($action === 'update') {
return Url::to(['announcements-update', 'id' => $model->id]);
} else { //delete
return Url::to(['announcements-delete', 'id' => $model->id]);
}
}
],
],
]); ?>
<?php Pjax::end(); ?>
</div>

View File

@ -0,0 +1,21 @@
<?php
use yii\helpers\Html;
/** @var yii\web\View $this */
/** @var app\models\Announcements $model */
$this->title = '修改公告: ' . $model->title;
$this->params['breadcrumbs'][] = ['label' => '公告管理', 'url' => ['announcements-manage']];
$this->params['breadcrumbs'][] = ['label' => '公告ID '.$model->id, 'url' => ['announcements-view', 'id' => $model->id]];
$this->params['breadcrumbs'][] = '修改公告';
?>
<div class="announcements-update">
<h1><?= Html::encode($this->title) ?></h1>
<?= $this->render('_announcements_form', [
'model' => $model,
]) ?>
</div>

View File

@ -0,0 +1,41 @@
<?php
use yii\helpers\Html;
use yii\web\YiiAsset;
use yii\widgets\DetailView;
/** @var yii\web\View $this */
/** @var app\models\Announcements $model */
$this->title = '公告ID '.$model->id;
$this->params['breadcrumbs'][] = ['label' => '公告管理', 'url' => ['announcements-manage']];
$this->params['breadcrumbs'][] = $this->title;
YiiAsset::register($this);
?>
<div class="announcements-view">
<h1><?= Html::encode($this->title) ?></h1>
<p>
<?= Html::a('修改公告', ['announcements-update', 'id' => $model->id], ['class' => 'btn btn-primary']) ?>
<?= Html::a('删除公告', ['announcements-delete', 'id' => $model->id], [
'class' => 'btn btn-danger',
'data' => [
'confirm' => '你确定要删除这条公告?',
'method' => 'post',
],
]) ?>
</p>
<?= DetailView::widget([
'model' => $model,
'attributes' => [
'id',
'title',
'content:ntext',
'published_at',
'updated_at',
],
]) ?>
</div>

View File

@ -76,7 +76,7 @@ $this->registerCssFile('@web/css/fuckyou-navpadding.css');
['label' => '用户管理', 'url' => ['/admin/user']],
['label' => '文件分享管理', 'url' => ['/admin/share-manage']],
['label' => '文件收集管理', 'url' => ['/admin/collection-manage']],
['label' => '站点公告管理', 'url' => ['/admin/notice-manage']], // 未完工
['label' => '站点公告管理', 'url' => ['/admin/announcements-manage']],
['label' => '工单支持管理', 'url' => ['/admin/ticket-manage']],
],
],