fix: PayPal payment_method column length issue; add image model selection for storyboard; remove task restore popups; sync UserWork status on task failure
This commit is contained in:
@@ -86,6 +86,14 @@
|
||||
<el-icon><Delete /></el-icon>
|
||||
<span>{{ $t('systemSettings.cleanup') }}</span>
|
||||
</div>
|
||||
<div
|
||||
class="tab-item"
|
||||
:class="{ active: activeTab === 'aiModel' }"
|
||||
@click="activeTab = 'aiModel'"
|
||||
>
|
||||
<el-icon><Setting /></el-icon>
|
||||
<span>{{ $t('systemSettings.aiModel') }}</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 会员收费标准选项卡 -->
|
||||
@@ -228,6 +236,35 @@
|
||||
</el-card>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- AI模型设置选项卡 -->
|
||||
<div v-if="activeTab === 'aiModel'" class="tab-content">
|
||||
<h2 class="page-title">{{ $t('systemSettings.aiModel') }}</h2>
|
||||
<el-card class="ai-model-card">
|
||||
<template #header>
|
||||
<div class="card-header">
|
||||
<h3>{{ $t('systemSettings.promptOptimization') }}</h3>
|
||||
</div>
|
||||
</template>
|
||||
<div class="ai-model-content">
|
||||
<el-form label-width="180px">
|
||||
<el-form-item :label="$t('systemSettings.promptOptimizationApiUrl')">
|
||||
<el-input v-model="promptOptimizationApiUrl" style="width: 400px;" placeholder="https://ai.comfly.chat"></el-input>
|
||||
<div class="model-tip">{{ $t('systemSettings.promptOptimizationApiUrlTip') }}</div>
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('systemSettings.promptOptimizationModel')">
|
||||
<el-input v-model="promptOptimizationModel" style="width: 400px;" placeholder="gpt-5.1-thinking"></el-input>
|
||||
<div class="model-tip">{{ $t('systemSettings.promptOptimizationModelTip') }}</div>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="saveAiModelSettings" :loading="savingAiModel">
|
||||
{{ $t('common.save') }}
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
</el-card>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
|
||||
@@ -458,6 +495,11 @@ const cleanupConfig = reactive({
|
||||
archiveRetentionDays: 365
|
||||
})
|
||||
|
||||
// AI模型设置相关
|
||||
const promptOptimizationModel = ref('gpt-5.1-thinking')
|
||||
const promptOptimizationApiUrl = ref('https://ai.comfly.chat')
|
||||
const savingAiModel = ref(false)
|
||||
|
||||
const goToDashboard = () => {
|
||||
router.push('/admin/dashboard')
|
||||
}
|
||||
@@ -719,11 +761,57 @@ const saveCleanupConfig = async () => {
|
||||
}
|
||||
}
|
||||
|
||||
// 加载AI模型设置
|
||||
const loadAiModelSettings = async () => {
|
||||
try {
|
||||
const response = await fetch('/api/admin/settings')
|
||||
if (response.ok) {
|
||||
const data = await response.json()
|
||||
if (data.promptOptimizationModel) {
|
||||
promptOptimizationModel.value = data.promptOptimizationModel
|
||||
}
|
||||
if (data.promptOptimizationApiUrl) {
|
||||
promptOptimizationApiUrl.value = data.promptOptimizationApiUrl
|
||||
}
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('加载AI模型设置失败:', error)
|
||||
}
|
||||
}
|
||||
|
||||
// 保存AI模型设置
|
||||
const saveAiModelSettings = async () => {
|
||||
savingAiModel.value = true
|
||||
try {
|
||||
const response = await fetch('/api/admin/settings', {
|
||||
method: 'PUT',
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
body: JSON.stringify({
|
||||
promptOptimizationModel: promptOptimizationModel.value,
|
||||
promptOptimizationApiUrl: promptOptimizationApiUrl.value
|
||||
})
|
||||
})
|
||||
if (response.ok) {
|
||||
ElMessage.success('AI模型设置保存成功')
|
||||
} else {
|
||||
throw new Error('保存失败')
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('保存AI模型设置失败:', error)
|
||||
ElMessage.error('保存AI模型设置失败')
|
||||
} finally {
|
||||
savingAiModel.value = false
|
||||
}
|
||||
}
|
||||
|
||||
// 页面加载时获取统计信息和会员等级配置
|
||||
onMounted(() => {
|
||||
refreshStats()
|
||||
loadMembershipLevels()
|
||||
fetchSystemStats()
|
||||
loadAiModelSettings()
|
||||
})
|
||||
|
||||
// 获取系统统计数据
|
||||
|
||||
Reference in New Issue
Block a user