update: 更新开启关闭自动处理UI

This commit is contained in:
ctwj
2025-07-26 23:21:39 +08:00
parent a5c5e41cc4
commit 312ecb041a
5 changed files with 71 additions and 26 deletions

View File

@@ -192,3 +192,54 @@ func GetPublicSystemConfig(c *gin.Context) {
configResponse := converter.SystemConfigToPublicResponse(config)
SuccessResponse(c, configResponse)
}
// 新增:切换自动处理配置
func ToggleAutoProcess(c *gin.Context) {
var req struct {
AutoProcessReadyResources bool `json:"auto_process_ready_resources"`
}
if err := c.ShouldBindJSON(&req); err != nil {
ErrorResponse(c, "请求参数错误", http.StatusBadRequest)
return
}
// 获取当前配置
config, err := repoManager.SystemConfigRepository.GetOrCreateDefault()
if err != nil {
ErrorResponse(c, "获取系统配置失败", http.StatusInternalServerError)
return
}
// 只更新自动处理配置
config.AutoProcessReadyResources = req.AutoProcessReadyResources
// 保存配置
err = repoManager.SystemConfigRepository.Upsert(config)
if err != nil {
ErrorResponse(c, "保存系统配置失败", http.StatusInternalServerError)
return
}
// 更新定时任务状态
scheduler := utils.GetGlobalScheduler(
repoManager.HotDramaRepository,
repoManager.ReadyResourceRepository,
repoManager.ResourceRepository,
repoManager.SystemConfigRepository,
repoManager.PanRepository,
repoManager.CksRepository,
repoManager.TagRepository,
repoManager.CategoryRepository,
)
if scheduler != nil {
scheduler.UpdateSchedulerStatusWithAutoTransfer(
config.AutoFetchHotDramaEnabled,
config.AutoProcessReadyResources,
config.AutoTransferEnabled,
)
}
// 返回更新后的配置
configResponse := converter.SystemConfigToResponse(config)
SuccessResponse(c, configResponse)
}

View File

@@ -193,6 +193,7 @@ func main() {
// 系统配置路由
api.GET("/system/config", middleware.AuthMiddleware(), middleware.AdminMiddleware(), handlers.GetSystemConfig)
api.POST("/system/config", middleware.AuthMiddleware(), middleware.AdminMiddleware(), handlers.UpdateSystemConfig)
api.POST("/system/config/toggle-auto-process", middleware.AuthMiddleware(), middleware.AdminMiddleware(), handlers.ToggleAutoProcess)
api.GET("/public/system-config", handlers.GetPublicSystemConfig)
// 热播剧管理路由(查询接口无需认证)

View File

@@ -125,7 +125,8 @@ export const useStatsApi = () => {
export const useSystemConfigApi = () => {
const getSystemConfig = () => useApiFetch('/system/config').then(parseApiResponse)
const updateSystemConfig = (data: any) => useApiFetch('/system/config', { method: 'POST', body: data }).then(parseApiResponse)
return { getSystemConfig, updateSystemConfig }
const toggleAutoProcess = (enabled: boolean) => useApiFetch('/system/config/toggle-auto-process', { method: 'POST', body: { auto_process_ready_resources: enabled } }).then(parseApiResponse)
return { getSystemConfig, updateSystemConfig, toggleAutoProcess }
}
export const useHotDramaApi = () => {

View File

@@ -51,8 +51,10 @@ export default defineNuxtConfig({
},
runtimeConfig: {
public: {
apiBase: process.env.NUXT_PUBLIC_API_CLIENT || '/api',
apiServer: process.env.NUXT_PUBLIC_API_SERVER || 'http://localhost:8080/api'
// 开发环境:直接访问后端,生产环境:通过 Nginx 反代
apiBase: process.env.NODE_ENV === 'production' ? '/api' : 'http://localhost:8080/api',
// 服务端:开发环境直接访问,生产环境容器内访问
apiServer: process.env.NODE_ENV === 'production' ? 'http://backend:8080/api' : 'http://localhost:8080/api'
}
},
build: {

View File

@@ -336,8 +336,10 @@ const totalPages = ref(0)
// 获取待处理资源API
import { useReadyResourceApi, useSystemConfigApi } from '~/composables/useApi'
import { useSystemConfigStore } from '~/stores/systemConfig'
const readyResourceApi = useReadyResourceApi()
const systemConfigApi = useSystemConfigApi()
const systemConfigStore = useSystemConfigStore()
// 获取系统配置
const systemConfig = ref<any>(null)
@@ -346,6 +348,8 @@ const fetchSystemConfig = async () => {
try {
const response = await systemConfigApi.getSystemConfig()
systemConfig.value = response
// 同时更新 Pinia store
systemConfigStore.setConfig(response)
} catch (error) {
console.error('获取系统配置失败:', error)
}
@@ -544,32 +548,18 @@ const toggleAutoProcess = async () => {
updatingConfig.value = true
try {
const newValue = !systemConfig.value?.auto_process_ready_resources
console.log('当前配置:', systemConfig.value)
console.log('新值:', newValue)
console.log('切换自动处理配置:', newValue)
// 先获取当前配置,然后只更新需要的字段
const currentConfig = await systemConfigApi.getSystemConfig() as any
console.log('获取到的当前配置:', currentConfig)
const updateData = {
site_title: currentConfig.site_title || '',
site_description: currentConfig.site_description || '',
keywords: currentConfig.keywords || '',
author: currentConfig.author || '',
copyright: currentConfig.copyright || '',
auto_process_ready_resources: newValue,
auto_process_interval: currentConfig.auto_process_interval || 30,
auto_transfer_enabled: currentConfig.auto_transfer_enabled || false,
auto_fetch_hot_drama_enabled: currentConfig.auto_fetch_hot_drama_enabled || false,
page_size: currentConfig.page_size || 100,
maintenance_mode: currentConfig.maintenance_mode || false
}
console.log('更新数据:', updateData)
const response = await systemConfigApi.updateSystemConfig(updateData)
console.log('更新响应:', response)
// 使用专门的切换API
const response = await systemConfigApi.toggleAutoProcess(newValue)
console.log('切换响应:', response)
// 更新本地配置状态
systemConfig.value = response
// 同时更新 Pinia store 中的系统配置
systemConfigStore.setConfig(response)
alert(`自动处理配置已${newValue ? '开启' : '关闭'}`)
} catch (error: any) {
console.error('切换自动处理配置失败:', error)