[
'op' => '操作',
'id' => 'ID',
'date' => '日期',
'title' => '标题',
],
];
/**
* 后台文档页面
*
* @throws Exception
*/
public function index(ServerRequest $request, Response $response, array $args): Response|ResponseInterface
{
return $response->write(
$this->view()
->assign('details', self::$details)
->fetch('admin/docs/index.tpl')
);
}
/**
* 后台文档创建页面
*
* @throws Exception
*/
public function create(ServerRequest $request, Response $response, array $args): Response|ResponseInterface
{
return $response->write(
$this->view()
->fetch('admin/docs/create.tpl')
);
}
/**
* 后台添加文档
*/
public function add(ServerRequest $request, Response $response, array $args): Response|ResponseInterface
{
$title = $request->getParam('title');
$content = $request->getParam('content');
if ($content === '' || $title === '') {
return $response->withJson([
'ret' => 0,
'msg' => '文档标题或内容不能为空',
]);
}
$doc = new Docs();
$doc->date = Tools::toDateTime(time());
$doc->title = $title;
$doc->content = $content;
if (! $doc->save()) {
return $response->withJson([
'ret' => 0,
'msg' => '文档添加失败',
]);
}
return $response->withJson([
'ret' => 1,
'msg' => '文档添加成功',
]);
}
/**
* 使用LLM生成文档
*
* @throws GuzzleException
*/
public function generate(ServerRequest $request, Response $response, array $args): Response|ResponseInterface
{
$content = LLM::genTextResponse($request->getParam('question'));
return $response->withJson([
'ret' => 1,
'msg' => '文档生成成功',
'content' => $content,
]);
}
/**
* 文档编辑页面
*
* @throws Exception
*/
public function edit(ServerRequest $request, Response $response, array $args): Response|ResponseInterface
{
$doc = (new Docs())->find($args['id']);
return $response->write(
$this->view()
->assign('doc', $doc)
->fetch('admin/docs/edit.tpl')
);
}
/**
* 后台编辑文档提交
*
* @param ServerRequest $request
* @param Response $response
* @param array $args
*
* @return Response|ResponseInterface
*/
public function update(ServerRequest $request, Response $response, array $args): Response|ResponseInterface
{
$doc = (new Docs())->find($args['id']);
$doc->title = $request->getParam('title');
$doc->content = $request->getParam('content');
$doc->date = Tools::toDateTime(time());
if (! $doc->save()) {
return $response->withJson([
'ret' => 0,
'msg' => '文档更新失败',
]);
}
return $response->withJson([
'ret' => 1,
'msg' => '文档更新成功',
]);
}
/**
* 后台删除文档
*/
public function delete(ServerRequest $request, Response $response, array $args): Response|ResponseInterface
{
$doc = (new Docs())->find($args['id']);
if (! $doc->delete()) {
return $response->withJson([
'ret' => 0,
'msg' => '删除失败',
]);
}
return $response->withJson([
'ret' => 1,
'msg' => '删除成功',
]);
}
/**
* 后台文档页面 AJAX
*/
public function ajax(ServerRequest $request, Response $response, array $args): Response|ResponseInterface
{
$docs = (new Docs())->orderBy('id')->get();
foreach ($docs as $doc) {
$doc->op = '
编辑';
}
return $response->withJson([
'docs' => $docs,
]);
}
}