优化: 图片上传默认本地化,业务域名出代码

- 默认上传端点清空,未配置即本地base64内嵌,不再默认传业务文件服务
- 高级设置新增文件上传端点配置行,配置后启用上传(自定义服务协议不变)
- 同步清理注释内域名残留;小程序端同款硬编码已报备待后续处理
This commit is contained in:
lxy
2026-09-29 17:52:55 +08:00
parent 671020b511
commit 0ca6250ee1
6 changed files with 57 additions and 12 deletions
@@ -60,6 +60,17 @@
</div>
<span class="setting-desc">{{ $t('settings.descApprovalTimeout') }}</span>
</div>
<!-- 文件上传服务端点:配置后聊天图片上传到用户自己的文件服务转公开 URL;留空则图片本地 base64 内嵌。
与 fileUpload.ts 的读取约定同 key(df-file-upload-base),blur/enter 提交即落库生效 -->
<SettingRow ref="rowUploadBase" :label="$t('settings.labelFileUploadBase')" :desc="$t('settings.descFileUploadBase')">
<input
v-model="fileUploadBase"
class="setting-input upload-base-input"
:placeholder="$t('settings.placeholderFileUploadBase')"
@change="onUploadBaseChange"
/>
</SettingRow>
<!-- 自定义提示词:注入到 AI 系统 prompt 末尾,用户可自定义 AI 行为偏好 -->
<!-- 布局:整行堆叠——label/desc 在上,textarea 独立一行从左到右拉满(而非 label 左 + 框右) -->
<SettingRow ref="rowCustomPrompt" class="prompt-row" :label="$t('settings.labelCustomPrompt')" :desc="$t('settings.descCustomPrompt')">
@@ -156,6 +167,17 @@ const customPrompt = ref(appSettings.get<string>('custom_prompt', ''))
// 三个 select 行改为自定义布局(不复用 SettingRow),saved-hint 由本地 savedVisible 状态驱动
const rowCustomPrompt = useTemplateRef<InstanceType<typeof SettingRow>>('rowCustomPrompt')
// 文件上传服务端点:与 fileUpload.ts 同 key(df-file-upload-base)。留空即不上传(图片本地 base64),
// 配置后下次发图即走该服务;trim 提交防空格误配
const rowUploadBase = useTemplateRef<InstanceType<typeof SettingRow>>('rowUploadBase')
const fileUploadBase = ref(appSettings.get<string>('df-file-upload-base', ''))
function onUploadBaseChange() {
fileUploadBase.value = fileUploadBase.value.trim()
appSettings.set('df-file-upload-base', fileUploadBase.value)
rowUploadBase.value?.markSaved()
}
// 「已保存」提示可见性(2s 自动隐藏),key 对齐模板三行
const savedVisible = reactive<Record<string, boolean>>({
autoExecute: false,
@@ -242,6 +264,11 @@ function onApprovalTimeoutChange() {
word-break: break-all;
line-height: 1.4;
}
/* 端点输入走等宽字体(URL 逐字符核对更易读),对齐 AllowedDirsPanel 路径输入风格 */
.upload-base-input {
min-width: 280px;
font-family: var(--df-font-mono, monospace);
}
/* 自定义提示词行:整行堆叠,textarea 独立一行从左到右拉满。
覆盖 SettingRow 默认横排(label 左 + control 右)。 */
.prompt-row {
+1
View File
@@ -90,5 +90,6 @@ export const SETTINGS_INDEX: SettingIndexEntry[] = [
{ category: 'advanced', key: 'autoExecuteMode', labelKey: 'settings.labelAutoExecute', descKey: 'settings.descAutoExecute' },
{ category: 'advanced', key: 'logLevel', labelKey: 'settings.labelLogLevel', descKey: 'settings.descLogLevel' },
{ category: 'advanced', key: 'approvalTimeout', labelKey: 'settings.labelApprovalTimeout', descKey: 'settings.descApprovalTimeout' },
{ category: 'advanced', key: 'fileUploadBase', labelKey: 'settings.labelFileUploadBase', descKey: 'settings.descFileUploadBase' },
{ category: 'advanced', key: 'connection', labelKey: 'settings.panelConnection', descKey: 'settings.emptyConnection' },
]