diff --git a/app/routes.php b/app/routes.php
index 115f20d60..6ee85d924 100755
--- a/app/routes.php
+++ b/app/routes.php
@@ -474,6 +474,15 @@ return static function (Slim\App $app): void {
$group->get('/mail/mustlog/clone/{id}', App\Controllers\Api\Nasa\V1\MailMustlogController::class . ':clone');
$group->get('/mail/mustlog/hit/{id}/{field}', App\Controllers\Api\Nasa\V1\MailMustlogController::class . ':hit');
+ $group->get('/ann/base', App\Controllers\Api\Nasa\V1\AnnBaseController::class . ':index');
+ $group->get('/ann/base/detail/{id}', App\Controllers\Api\Nasa\V1\AnnBaseController::class . ':detail');
+ $group->put('/ann/base/detail/save/{id}', App\Controllers\Api\Nasa\V1\AnnBaseController::class . ':detailSave');
+ $group->delete('/ann/base/delete/save/{id}', App\Controllers\Api\Nasa\V1\AnnBaseController::class . ':delete');
+ $group->get('/ann/base/add', App\Controllers\Api\Nasa\V1\AnnBaseController::class . ':add');
+ $group->put('/ann/base/add/save', App\Controllers\Api\Nasa\V1\AnnBaseController::class . ':addSave');
+ $group->get('/ann/base/clone/{id}', App\Controllers\Api\Nasa\V1\AnnBaseController::class . ':clone');
+ $group->get('/ann/base/hit/{id}/{field}', App\Controllers\Api\Nasa\V1\AnnBaseController::class . ':hit');
+
})->add(new VerifyNasaToken());// get可以其他不可以?
diff --git a/src/Controllers/Api/Nasa/V1/AnnBaseController.php b/src/Controllers/Api/Nasa/V1/AnnBaseController.php
new file mode 100755
index 000000000..4de7ad8f7
--- /dev/null
+++ b/src/Controllers/Api/Nasa/V1/AnnBaseController.php
@@ -0,0 +1,88 @@
+ 'id',
+ 'rank' => '类型',
+ 'title' => '标题',
+ 'content' => '内容',
+ 'sort' => '排序',
+ 'status' => '状态',
+ 'post' => '发布到tg等',
+ 'date' => '日期',
+ ];
+
+ protected array $aValueStyle = [ // 特定文字渲染样式
+ '置顶' => "关闭",
+ '默认' => "开启",
+ '活动' => "开启",
+ '重要' => "重要",
+ '警告' => "警告",
+ ];
+
+ protected array $aFieldTypes = [
+ 'content' => 'text-full',
+// 'custom_config' => 'json',
+// 'prev_day_width' => 'byte',
+// 'node_bandwidth' => 'byte',
+// 'node_bandwidth_limit' => 'byte'
+ ];
+
+ protected array $aOrderBy = [
+ [
+ "sField" => "sort",
+ "sSort" => "desc",
+ ],
+ [
+ "sField" => "date",
+ "sSort" => "desc",
+ ]
+ ];
+
+ protected array $aLenthFields = [ // 限制长度的字段
+// "xx" => 100,
+ ];
+
+ protected array $aSelectFields = [ // 作为默认select的字段
+ 'rank',
+ 'sort',
+ ];
+
+ // 值映射
+ protected array $aValueFields =
+ [
+ 'rank' => [
+ 'none' => '默认',
+ 'success' => '活动',
+ 'danger' => '重要',
+ 'warning' => '警告'
+ ],
+ 'sort' => [
+ '1' => '置顶',
+ '0' => '普通'
+ ],
+ ];
+
+ protected array $aCcExtFields = [
+// 'dtCreatedAt' => '创建时间'
+ ];
+
+// protected array $aLimit = [3, 15, 40, 100]; // list长度,第一个为默认
+
+}
+
diff --git a/src/Controllers/Api/Nasa/V1/Base/ListController.php b/src/Controllers/Api/Nasa/V1/Base/ListController.php
index 28c051343..14180dba0 100755
--- a/src/Controllers/Api/Nasa/V1/Base/ListController.php
+++ b/src/Controllers/Api/Nasa/V1/Base/ListController.php
@@ -30,6 +30,7 @@ abstract class ListController
protected array $aFilterFields = []; // 允许where的字段
// protected array $aArticleFields = []; // 文章字段
protected array $aFieldTypes = [];
+ protected array $aValueFields = [];
protected array $aLenthFields = []; // 限制长度的字段
protected array $aSelectFields = []; // 默认作为select的字段
protected array $aListFields = []; // list展示的字段和名字映射
@@ -63,11 +64,14 @@ abstract class ListController
public function getMapAll()
{
+ $a = [];
if (method_exists($this->oModel, 'getMapAll')) {
- return $this->oModel->getMapAll();
+ $a = $this->oModel->getMapAll();
}
- return [];
+ $b = array_merge($a, $this->aValueFields);
+
+ return $b;
}
public function index(Request $oRequest, Response $oResponse, $args)
@@ -313,7 +317,7 @@ abstract class ListController
// 5. 健壮的方法存在性检查(呼应你上一条的需求)
// 变量命名:aMapData (映射数据数组) -> 【诶 迈普 数据】
- $aMapData = method_exists($this->oModel, 'getMapAll') ? $this->oModel->getMapAll() : [];
+ $aMapData = $this->oModel->getMapAll();
// 6. 统一标准的 JSON 响应输出
return $oResponse->withJson([