chore: 重写初始提交(清空历史,整理后全量提交)

This commit is contained in:
ywxapp
2026-08-16 16:54:14 +08:00
commit 6c1a106bc1
1808 changed files with 238144 additions and 0 deletions
+91
View File
@@ -0,0 +1,91 @@
<div class="layui-card">
<div class="layui-card-header">
<span>新增文档项目</span>
<a class="layui-btn layui-btn-sm layui-btn-primary" style="float:right;" href="/docs/backend/project">返回列表</a>
</div>
<div class="layui-card-body">
<form class="layui-form" lay-filter="projectForm" style="max-width:760px;">
<div class="layui-form-item">
<label class="layui-form-label">项目标识</label>
<div class="layui-input-block">
<input type="text" name="name" required lay-verify="required" placeholder="英文标识,用于 URL,如 framework" autocomplete="off" class="layui-input">
<div class="docs-tip">前台访问地址为 /docs/项目标识,仅支持字母开头的字母数字与下划线中划线</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">项目名称</label>
<div class="layui-input-block">
<input type="text" name="title" required lay-verify="required" placeholder="显示名称,如 框架开发文档" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">项目简介</label>
<div class="layui-input-block">
<textarea name="intro" placeholder="一句话介绍该文档项目" class="layui-textarea"></textarea>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">项目图标</label>
<div class="layui-input-block">
<input type="text" name="logo" placeholder="图标地址,可留空" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">归属插件</label>
<div class="layui-input-block">
<select name="addon">
<option value="">框架自身(不归属插件)</option>
{volist name="addonList" id="addon"}
<option value="{$addon.name}">{$addon.title}{$addon.name}</option>
{/volist}
</select>
<div class="docs-tip">选择后可在插件详情页关联展示该文档</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">排序</label>
<div class="layui-input-block">
<input type="number" name="sort" value="0" placeholder="数值越小越靠前" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">状态</label>
<div class="layui-input-block">
<input type="checkbox" name="status" value="1" checked lay-skin="switch" lay-text="启用|禁用">
</div>
</div>
<div class="layui-form-item">
<div class="layui-input-block">
<button class="layui-btn" lay-submit lay-filter="projectSubmit">保存</button>
<a class="layui-btn layui-btn-primary" href="/docs/backend/project">取消</a>
</div>
</div>
</form>
</div>
</div>
<script>
layui.use(['form', 'layer', 'jquery'], function () {
var form = layui.form;
var layer = layui.layer;
var $ = layui.$;
form.on('submit(projectSubmit)', function (data) {
var post = $.extend({}, data.field);
post.status = data.field.status ? 1 : 0;
$.post('/docs/backend/project/save', post, function (res) {
if (res.code === 0) {
layer.msg(res.message, { icon: 1 }, function () {
location.href = '/docs/backend/project';
});
} else {
layer.msg(res.message || '保存失败', { icon: 2 });
}
}, 'json').fail(function () {
layer.msg('请求失败,请重试', { icon: 2 });
});
return false;
});
});
</script>
+102
View File
@@ -0,0 +1,102 @@
<div class="layui-card">
<div class="layui-card-header">
<span>编辑文档项目:{$item.title}</span>
<div class="layui-inline" style="float:right;">
<a class="layui-btn layui-btn-sm layui-btn-normal" href="/docs/backend/doc?project_id={$item.id}">管理文档</a>
<a class="layui-btn layui-btn-sm layui-btn-primary" href="/docs/backend/project">返回列表</a>
</div>
</div>
<div class="layui-card-body">
<form class="layui-form" lay-filter="projectForm" style="max-width:760px;">
<div class="layui-form-item">
<label class="layui-form-label">项目标识</label>
<div class="layui-input-block">
<input type="text" name="name" value="{$item.name}" required lay-verify="required" autocomplete="off" class="layui-input">
<div class="docs-tip">修改标识会导致原有前台链接失效,请谨慎操作</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">项目名称</label>
<div class="layui-input-block">
<input type="text" name="title" value="{$item.title}" required lay-verify="required" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">项目简介</label>
<div class="layui-input-block">
<textarea name="intro" class="layui-textarea">{$item.intro}</textarea>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">项目图标</label>
<div class="layui-input-block">
<input type="text" name="logo" value="{$item.logo}" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">归属插件</label>
<div class="layui-input-block">
<select name="addon">
<option value="">框架自身(不归属插件)</option>
{volist name="addonList" id="addon"}
<option value="{$addon.name}" {if condition="$item.addon eq $addon.name"}selected{/if}>{$addon.title}{$addon.name}</option>
{/volist}
</select>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">默认版本</label>
<div class="layui-input-block">
<select name="default_version">
<option value="">自动(取默认版本)</option>
{volist name="versionList" id="ver"}
<option value="{$ver.name}" {if condition="$item.default_version eq $ver.name"}selected{/if}>{$ver.title}{$ver.name}</option>
{/volist}
</select>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">排序</label>
<div class="layui-input-block">
<input type="number" name="sort" value="{$item.sort}" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">状态</label>
<div class="layui-input-block">
<input type="checkbox" name="status" value="1" {if condition="$item.status eq 1"}checked{/if} lay-skin="switch" lay-text="启用|禁用">
</div>
</div>
<div class="layui-form-item">
<div class="layui-input-block">
<button class="layui-btn" lay-submit lay-filter="projectSubmit">保存</button>
<a class="layui-btn layui-btn-primary" href="/docs/backend/project">取消</a>
</div>
</div>
</form>
</div>
</div>
<script>
layui.use(['form', 'layer', 'jquery'], function () {
var form = layui.form;
var layer = layui.layer;
var $ = layui.$;
form.on('submit(projectSubmit)', function (data) {
var post = $.extend({}, data.field);
post.status = data.field.status ? 1 : 0;
$.post('/docs/backend/project/update/{$item.id}', post, function (res) {
if (res.code === 0) {
layer.msg(res.message, { icon: 1 });
} else {
layer.msg(res.message || '保存失败', { icon: 2 });
}
}, 'json').fail(function () {
layer.msg('请求失败,请重试', { icon: 2 });
});
return false;
});
});
</script>
@@ -0,0 +1,88 @@
<div class="layui-card">
<div class="layui-card-header">
<span>文档项目</span>
<div class="layui-inline" style="float:right;">
<a class="layui-btn layui-btn-sm" href="/docs/backend/project/add">新增项目</a>
<a class="layui-btn layui-btn-sm layui-btn-primary" href="/docs" target="_blank">查看前台</a>
</div>
</div>
<div class="layui-card-body">
<form class="layui-form docs-scope-bar" method="get" action="/docs/backend/project">
<div class="layui-form-item">
<div class="layui-inline">
<input type="text" name="keyword" value="{$keyword|default=''}" placeholder="按项目名称或标识搜索" autocomplete="off" class="layui-input">
</div>
<div class="layui-inline">
<button class="layui-btn" type="submit">搜索</button>
<a class="layui-btn layui-btn-primary" href="/docs/backend/project">重置</a>
</div>
</div>
</form>
<table class="layui-table">
<colgroup>
<col width="70"><col width="150"><col><col width="130"><col width="90"><col width="90"><col width="80"><col width="90"><col width="200">
</colgroup>
<thead>
<tr>
<th>ID</th><th>标识</th><th>项目名称</th><th>归属插件</th>
<th>版本数</th><th>文档数</th><th>排序</th><th>状态</th><th>操作</th>
</tr>
</thead>
<tbody>
{volist name="list" id="item" empty="<tr><td colspan='9' class='docs-empty'>暂无文档项目,点击右上角新增</td></tr>"}
<tr>
<td>{$item.id}</td>
<td><code>{$item.name}</code></td>
<td>
{$item.title}
{if condition="$item.intro neq ''"}<div class="docs-tip">{$item.intro}</div>{/if}
</td>
<td>{if condition="$item.addon neq ''"}{$item.addon}{else/}<span class="docs-tip">框架自身</span>{/if}</td>
<td>{$item.version_count}</td>
<td>{$item.doc_count}</td>
<td>{$item.sort}</td>
<td>
{if condition="$item.status eq 1"}
<span class="layui-badge layui-bg-blue">启用</span>
{else/}
<span class="layui-badge layui-bg-gray">禁用</span>
{/if}
</td>
<td>
<a class="layui-btn layui-btn-xs" href="/docs/backend/project/edit/{$item.id}">编辑</a>
<a class="layui-btn layui-btn-xs layui-btn-normal" href="/docs/backend/doc?project_id={$item.id}">管理文档</a>
<a class="layui-btn layui-btn-xs layui-btn-danger docs-del" href="javascript:;" data-id="{$item.id}" data-title="{$item.title}">删除</a>
</td>
</tr>
{/volist}
</tbody>
</table>
</div>
</div>
<script>
layui.use(['layer', 'jquery'], function () {
var layer = layui.layer;
var $ = layui.$;
$('.docs-del').on('click', function () {
var id = $(this).data('id');
var title = $(this).data('title');
layer.confirm('删除项目「' + title + '」将同时删除其下所有版本与文档,确定继续?', {
icon: 3, title: '确认删除'
}, function (index) {
layer.close(index);
$.post('/docs/backend/project/delete/' + id, {}, function (res) {
if (res.code === 0) {
layer.msg(res.message, { icon: 1 }, function () { location.reload(); });
} else {
layer.msg(res.message || '删除失败', { icon: 2 });
}
}, 'json').fail(function () {
layer.msg('请求失败,请重试', { icon: 2 });
});
});
});
});
</script>