项目重构: 整理目录结构, 更新前后端代码, 添加测试和数据库迁移

This commit is contained in:
AIGC Developer
2025-12-30 10:24:19 +08:00
parent 5344148a1c
commit 38630dbb66
117 changed files with 1987 additions and 1316 deletions

View File

@@ -47,11 +47,10 @@
<!-- 主内容区域 -->
<main class="main-content">
<!-- 顶部搜索 -->
<!-- 顶部操作 -->
<header class="top-header">
<div class="search-bar">
<el-icon class="search-icon"><User /></el-icon>
<input type="text" :placeholder="$t('common.searchPlaceholder')" class="search-input">
<div class="page-title">
<h2>{{ $t('nav.systemSettings') }}</h2>
</div>
<div class="header-actions">
<LanguageSwitcher />
@@ -111,8 +110,8 @@
<h3>{{ level.name }}</h3>
</div>
<div class="card-body">
<p class="price">¥{{ level.price || 0 }}/</p>
<p class="description">包含{{ level.resourcePoints || level.pointsBonus || 0 }}积分/</p>
<p class="price">¥{{ level.price || 0 }}/{{ Math.floor((level.resourcePoints || level.pointsBonus || 0) / 30) }}{{ $t('subscription.items') }}</p>
<p class="description">{{ level.resourcePoints || level.pointsBonus || 0 }}{{ $t('subscription.points') }}</p>
</div>
<div class="card-footer">
<el-button type="primary" @click="editLevel(level)">{{ $t('common.edit') }}</el-button>
@@ -254,10 +253,6 @@
</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>
@@ -431,8 +426,8 @@ import {
ShoppingCart,
Document,
Setting,
User as Search,
User as ArrowDown,
Search,
ArrowDown,
Delete,
Refresh,
Check,
@@ -503,7 +498,6 @@ const cleanupConfig = reactive({
// AI模型设置相关
const promptOptimizationModel = ref('gpt-5.1-thinking')
const promptOptimizationApiUrl = ref('https://ai.comfly.chat')
const storyboardSystemPrompt = ref('')
const savingAiModel = ref(false)
@@ -576,8 +570,14 @@ const saveEdit = async () => {
return
}
const pointsInt = parseInt(editForm.resourcePoints)
if (Number.isNaN(pointsInt) || pointsInt < 0) {
ElMessage.error(t('systemSettings.enterValidNumber'))
return
}
// 直接更新membership_levels表
const updateData = { price: priceInt }
const updateData = { price: priceInt, pointsBonus: pointsInt }
console.log('准备更新会员等级:', editForm.id, updateData)
const response = await api.put(`/members/levels/${editForm.id}`, updateData)
console.log('会员等级更新响应:', response.data)
@@ -761,9 +761,6 @@ const loadAiModelSettings = async () => {
if (data.promptOptimizationModel) {
promptOptimizationModel.value = data.promptOptimizationModel
}
if (data.promptOptimizationApiUrl) {
promptOptimizationApiUrl.value = data.promptOptimizationApiUrl
}
if (data.storyboardSystemPrompt !== undefined) {
storyboardSystemPrompt.value = data.storyboardSystemPrompt
}
@@ -785,7 +782,6 @@ const saveAiModelSettings = async () => {
},
body: JSON.stringify({
promptOptimizationModel: promptOptimizationModel.value,
promptOptimizationApiUrl: promptOptimizationApiUrl.value,
storyboardSystemPrompt: storyboardSystemPrompt.value
})
})
@@ -943,27 +939,11 @@ const fetchSystemStats = async () => {
z-index: 100;
}
.search-bar {
display: flex;
align-items: center;
background-color: #f0f2f5;
border-radius: 20px;
padding: 8px 15px;
width: 300px;
}
.search-icon {
color: #909399;
margin-right: 8px;
}
.search-input {
border: none;
background: transparent;
outline: none;
flex-grow: 1;
font-size: 14px;
color: #333;
.page-title h2 {
margin: 0;
font-size: 20px;
font-weight: 600;
color: #1f2937;
}
.header-actions {
@@ -1511,11 +1491,6 @@ const fetchSystemStats = async () => {
padding: 10px 20px;
}
.search-bar {
width: 200px;
padding: 6px 10px;
}
.content-section {
padding: 20px;
}