mirror of
https://github.com/fastapiadmin/FastapiAdmin.git
synced 2026-09-26 22:31:21 +00:00
fix: 修复多项后端缺陷并加固安全与限流
- 修正 AI 会话表初始化及异步数据库 URI 处理 - 新增全局 API 与 WS 聊天限流,健康检查豁免 - 修复忘记密码接口防用户枚举与参数校验 - 修复 SSE 推送数据重复编码问题 - 修复 Cron 表达式 Quartz 问号兼容 - 修复存储模块权限标识前缀 - 新增过期日志清理与任务错误中文提示
This commit is contained in:
@@ -6,7 +6,9 @@
|
||||
<el-link type="primary" :href="modelValue" target="_blank" :underline="false">
|
||||
{{ fileName }}
|
||||
</el-link>
|
||||
<el-icon class="file-item-action" title="移除" @click="handleRemove"><CircleCloseFilled /></el-icon>
|
||||
<el-icon class="file-item-action" title="移除" @click="handleRemove"
|
||||
><CircleCloseFilled
|
||||
/></el-icon>
|
||||
</div>
|
||||
<el-button v-else type="primary" plain :loading="uploading" @click="fileInputRef?.click()">
|
||||
<el-icon class="mr-1"><UploadFilled /></el-icon>
|
||||
@@ -115,20 +117,20 @@ const doUpload = async (file: File) => {
|
||||
|
||||
.fa-file-upload .file-item {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 6px;
|
||||
align-items: center;
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
.fa-file-upload .file-item-icon {
|
||||
color: var(--el-color-primary);
|
||||
flex-shrink: 0;
|
||||
color: var(--el-color-primary);
|
||||
}
|
||||
|
||||
.fa-file-upload .file-item-action {
|
||||
cursor: pointer;
|
||||
color: var(--el-text-color-secondary);
|
||||
flex-shrink: 0;
|
||||
color: var(--el-text-color-secondary);
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.fa-file-upload .file-item-action:hover {
|
||||
@@ -138,7 +140,7 @@ const doUpload = async (file: File) => {
|
||||
.fa-file-upload .file-tip {
|
||||
margin-top: 4px;
|
||||
font-size: 12px;
|
||||
color: var(--el-text-color-secondary);
|
||||
line-height: 1.4;
|
||||
color: var(--el-text-color-secondary);
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -22,11 +22,12 @@
|
||||
>
|
||||
<ElFormItem
|
||||
:prop="item.key"
|
||||
:label="typeof item.label === 'string' ? item.label : undefined"
|
||||
:label-width="item.label ? item.labelWidth || labelWidth : undefined"
|
||||
>
|
||||
<template #label v-if="item.label">
|
||||
<component v-if="typeof item.label !== 'string'" :is="item.label" />
|
||||
<span v-else>{{ item.label }}</span>
|
||||
<!-- 字符串 label 走 ElFormItem 默认渲染使 label-suffix 生效;组件 label 保留插槽 -->
|
||||
<template v-if="item.label && typeof item.label !== 'string'" #label>
|
||||
<component :is="item.label" />
|
||||
</template>
|
||||
<slot :name="item.key" :item="item" :modelValue="modelValue">
|
||||
<component
|
||||
@@ -119,11 +120,12 @@
|
||||
>
|
||||
<ElFormItem
|
||||
:prop="item.key"
|
||||
:label="typeof item.label === 'string' ? item.label : undefined"
|
||||
:label-width="item.label ? item.labelWidth || labelWidth : undefined"
|
||||
>
|
||||
<template #label v-if="item.label">
|
||||
<component v-if="typeof item.label !== 'string'" :is="item.label" />
|
||||
<span v-else>{{ item.label }}</span>
|
||||
<!-- 字符串 label 走 ElFormItem 默认渲染使 label-suffix 生效;组件 label 保留插槽 -->
|
||||
<template v-if="item.label && typeof item.label !== 'string'" #label>
|
||||
<component :is="item.label" />
|
||||
</template>
|
||||
<slot :name="item.key" :item="item" :modelValue="modelValue">
|
||||
<component
|
||||
|
||||
Reference in New Issue
Block a user