feat: complete Kra admin backend migration

This commit is contained in:
2026-08-14 00:28:37 +08:00
parent c4bf7ee03b
commit acba9624d7
88 changed files with 1765 additions and 8623 deletions
+2 -2
View File
@@ -153,7 +153,7 @@
fill="rgba(255,255,255,.9)">GO</text>
<!-- 文件路径 -->
<text x="333" y="452" font-size="14" letter-spacing="0.7"
fill="rgba(255,255,255,.6)">images / GinVueAdmin.go</text>
fill="rgba(255,255,255,.6)">images / Kra.go</text>
<!-- 分隔线 -->
<line x1="201" y1="474" x2="879" y2="474"
stroke="rgba(255,255,255,.12)" stroke-width="1"/>
@@ -169,7 +169,7 @@
<text x="270" y="706" text-anchor="end" fill="rgba(255,255,255,.25)">5</text>
<!-- 代码行 -->
<text x="298" y="530" xml:space="preserve"><tspan fill="#9db8ff">type</tspan><tspan fill="#ffffff" font-weight="500"> GinVueAdmin </tspan><tspan fill="#9db8ff">struct</tspan><tspan fill="rgba(220,230,255,.75)"> {</tspan></text>
<text x="298" y="530" xml:space="preserve"><tspan fill="#9db8ff">type</tspan><tspan fill="#ffffff" font-weight="500"> Kra </tspan><tspan fill="#9db8ff">struct</tspan><tspan fill="rgba(220,230,255,.75)"> {</tspan></text>
<text x="298" y="574" xml:space="preserve"><tspan fill="#7fa5ff"> gorm.Model</tspan></text>

Before

Width:  |  Height:  |  Size: 9.8 KiB

After

Width:  |  Height:  |  Size: 9.8 KiB

-5
View File
@@ -6,7 +6,6 @@
@click="handleReload"
/>
<Screenfull class="search-icon" />
<div class="kraIcon kraIcon-customer-service" @click="toService" />
<el-switch
v-model="isDark"
:active-action-icon="Moon"
@@ -44,10 +43,6 @@
reload.value = false
}, 500)
}
const toService = () => {
window.open('https://support.qq.com/product/371961')
}
const handleDarkSwitch = (e) => {
isDark.value = e
}
+6 -2
View File
@@ -29,6 +29,9 @@
<el-form-item label="文件访问前缀">
<el-input v-model.trim="config.admin.local.pathPrefix" />
</el-form-item>
<el-form-item label="大文件上传会话有效期(小时)">
<el-input-number v-model="config.admin.media.sessionTtl" :min="1" :max="720" class="!w-full" />
</el-form-item>
</el-form>
</el-tab-pane>
@@ -58,7 +61,7 @@
<el-form-item v-if="config.admin.storage.type === 'cloudflare-r2'" label="Account ID"><el-input v-model.trim="currentObjectStorage.account_id" /></el-form-item>
<el-form-item label="连接选项"><div class="flex gap-5"><el-switch v-model="currentObjectStorage.use_ssl" active-text="HTTPS" /><el-switch v-model="currentObjectStorage.force_path_style" active-text="Path Style" /></div></el-form-item>
</template>
<p class="md:col-span-2 text-sm text-gray-500">对象存储客户端在服务启动时创建,保存后需重启服务生效。</p>
<p class="md:col-span-2 text-sm text-gray-500">保存后点击“重载服务”,新的对象存储配置会立即生效。</p>
</el-form>
</el-tab-pane>
@@ -112,7 +115,7 @@
admin: {
routerPrefix: '',
jwt: { signingKey: '******', issuer: 'kra' },
local: { storePath: 'uploads/file', pathPrefix: 'uploads/file' },
local: { storePath: 'uploads/file', pathPrefix: 'uploads/file' }, media: { sessionTtl: 24 },
storage: { type: 'local', qiniu: {}, aliyun_oss: {}, huawei_obs: {}, tencent_cos: {}, aws_s3: {}, cloudflare_r2: {}, minio: {} }
},
email: {
@@ -136,6 +139,7 @@
admin: { ...config.value.admin, ...res.data.config.admin,
jwt: { ...config.value.admin.jwt, ...res.data.config.admin?.jwt },
local: { ...config.value.admin.local, ...res.data.config.admin?.local }
, media: { ...config.value.admin.media, ...res.data.config.admin?.media }
, storage: { ...config.value.admin.storage, ...res.data.config.admin?.storage,
qiniu: { ...config.value.admin.storage.qiniu, ...res.data.config.admin?.storage?.qiniu },
aliyun_oss: { ...config.value.admin.storage.aliyun_oss, ...res.data.config.admin?.storage?.aliyun_oss },