项目重构: 整理目录结构, 更新前后端代码, 添加测试和数据库迁移
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user