mirror of
https://github.com/xinnan-tech/xiaozhi-esp32-server.git
synced 2026-07-26 17:13:54 +08:00
update: 系统功能配置页面适配调整
This commit is contained in:
@@ -1420,8 +1420,6 @@ export default {
|
|||||||
'featureManagement.groupDescription.featureManagement': 'Aktivierungsstatus der Kernfunktionsmodule steuern',
|
'featureManagement.groupDescription.featureManagement': 'Aktivierungsstatus der Kernfunktionsmodule steuern',
|
||||||
'featureManagement.groupDescription.voiceManagement': 'Konfigurieren, welche Funktionen für Agenten (KI-Assistenten) sichtbar und verfügbar sind',
|
'featureManagement.groupDescription.voiceManagement': 'Konfigurieren, welche Funktionen für Agenten (KI-Assistenten) sichtbar und verfügbar sind',
|
||||||
'featureManagement.moduleCount': '{count} Module insgesamt',
|
'featureManagement.moduleCount': '{count} Module insgesamt',
|
||||||
'featureManagement.enabled': 'Aktiviert',
|
|
||||||
'featureManagement.disabled': 'Deaktiviert',
|
|
||||||
|
|
||||||
// Feature names and descriptions
|
// Feature names and descriptions
|
||||||
'feature.voiceprintRecognition.name': 'Stimmerkennung',
|
'feature.voiceprintRecognition.name': 'Stimmerkennung',
|
||||||
|
|||||||
@@ -1420,8 +1420,6 @@ export default {
|
|||||||
'featureManagement.groupDescription.featureManagement': 'Control the enable status of core feature modules',
|
'featureManagement.groupDescription.featureManagement': 'Control the enable status of core feature modules',
|
||||||
'featureManagement.groupDescription.voiceManagement': 'Configure which features are visible and available to agents (AI assistants)',
|
'featureManagement.groupDescription.voiceManagement': 'Configure which features are visible and available to agents (AI assistants)',
|
||||||
'featureManagement.moduleCount': '{count} modules in total',
|
'featureManagement.moduleCount': '{count} modules in total',
|
||||||
'featureManagement.enabled': 'Enabled',
|
|
||||||
'featureManagement.disabled': 'Disabled',
|
|
||||||
|
|
||||||
// Feature names and descriptions
|
// Feature names and descriptions
|
||||||
'feature.voiceprintRecognition.name': 'Voiceprint Recognition',
|
'feature.voiceprintRecognition.name': 'Voiceprint Recognition',
|
||||||
|
|||||||
@@ -1420,8 +1420,6 @@ export default {
|
|||||||
'featureManagement.groupDescription.featureManagement': 'Controlar o status de ativação dos módulos de funcionalidade principal',
|
'featureManagement.groupDescription.featureManagement': 'Controlar o status de ativação dos módulos de funcionalidade principal',
|
||||||
'featureManagement.groupDescription.voiceManagement': 'Configurar quais funcionalidades são visíveis e disponíveis para agentes (assistentes de IA)',
|
'featureManagement.groupDescription.voiceManagement': 'Configurar quais funcionalidades são visíveis e disponíveis para agentes (assistentes de IA)',
|
||||||
'featureManagement.moduleCount': '{count} módulos no total',
|
'featureManagement.moduleCount': '{count} módulos no total',
|
||||||
'featureManagement.enabled': 'Ativado',
|
|
||||||
'featureManagement.disabled': 'Desativado',
|
|
||||||
|
|
||||||
// Nomes e descrições de funcionalidades
|
// Nomes e descrições de funcionalidades
|
||||||
'feature.voiceprintRecognition.name': 'Reconhecimento de Impressão Vocal',
|
'feature.voiceprintRecognition.name': 'Reconhecimento de Impressão Vocal',
|
||||||
|
|||||||
@@ -1420,8 +1420,6 @@ export default {
|
|||||||
'featureManagement.groupDescription.featureManagement': 'Kiểm soát trạng thái kích hoạt của các mô-đun tính năng cốt lõi',
|
'featureManagement.groupDescription.featureManagement': 'Kiểm soát trạng thái kích hoạt của các mô-đun tính năng cốt lõi',
|
||||||
'featureManagement.groupDescription.voiceManagement': 'Cấu hình các tính năng hiển thị và khả dụng cho agent (trợ lý AI)',
|
'featureManagement.groupDescription.voiceManagement': 'Cấu hình các tính năng hiển thị và khả dụng cho agent (trợ lý AI)',
|
||||||
'featureManagement.moduleCount': 'Tổng cộng {count} mô-đun',
|
'featureManagement.moduleCount': 'Tổng cộng {count} mô-đun',
|
||||||
'featureManagement.enabled': 'Đã bật',
|
|
||||||
'featureManagement.disabled': 'Chưa bật',
|
|
||||||
|
|
||||||
// Feature names and descriptions
|
// Feature names and descriptions
|
||||||
'feature.voiceprintRecognition.name': 'Nhận dạng giọng nói',
|
'feature.voiceprintRecognition.name': 'Nhận dạng giọng nói',
|
||||||
|
|||||||
@@ -1418,8 +1418,6 @@ export default {
|
|||||||
'featureManagement.groupDescription.featureManagement': '控制系统核心功能模块的启用状态',
|
'featureManagement.groupDescription.featureManagement': '控制系统核心功能模块的启用状态',
|
||||||
'featureManagement.groupDescription.voiceManagement': '配置哪些功能对智能体(AI助手)可见和可用',
|
'featureManagement.groupDescription.voiceManagement': '配置哪些功能对智能体(AI助手)可见和可用',
|
||||||
'featureManagement.moduleCount': '共 {count} 个模块',
|
'featureManagement.moduleCount': '共 {count} 个模块',
|
||||||
'featureManagement.enabled': '已启用',
|
|
||||||
'featureManagement.disabled': '未启用',
|
|
||||||
|
|
||||||
// 功能名称和描述
|
// 功能名称和描述
|
||||||
'feature.voiceprintRecognition.name': '声纹识别',
|
'feature.voiceprintRecognition.name': '声纹识别',
|
||||||
|
|||||||
@@ -1420,8 +1420,6 @@ export default {
|
|||||||
'featureManagement.groupDescription.featureManagement': '控制系統核心功能模組的啟用狀態',
|
'featureManagement.groupDescription.featureManagement': '控制系統核心功能模組的啟用狀態',
|
||||||
'featureManagement.groupDescription.voiceManagement': '配置哪些功能對智能體(AI助手)可見和可用',
|
'featureManagement.groupDescription.voiceManagement': '配置哪些功能對智能體(AI助手)可見和可用',
|
||||||
'featureManagement.moduleCount': '共 {count} 個模組',
|
'featureManagement.moduleCount': '共 {count} 個模組',
|
||||||
'featureManagement.enabled': '已啟用',
|
|
||||||
'featureManagement.disabled': '未啟用',
|
|
||||||
|
|
||||||
// 功能名稱和描述
|
// 功能名稱和描述
|
||||||
'feature.voiceprintRecognition.name': '聲紋識別',
|
'feature.voiceprintRecognition.name': '聲紋識別',
|
||||||
|
|||||||
@@ -8,13 +8,13 @@
|
|||||||
<div class="config-header">
|
<div class="config-header">
|
||||||
<h2 class="page-title">{{ $t('header.featureManagement') }}</h2>
|
<h2 class="page-title">{{ $t('header.featureManagement') }}</h2>
|
||||||
<div class="header-actions">
|
<div class="header-actions">
|
||||||
<CustomButton size="small" @click="!isSaving && toggleSelectAll()" :disabled="isSaving">
|
<CustomButton :icon="isAllSelected ? 'el-icon-circle-close' : 'el-icon-circle-check'" size="medium" @click="!isSaving && toggleSelectAll()" :disabled="isSaving">
|
||||||
{{ isAllSelected ? $t('featureManagement.deselectAll') : $t('featureManagement.selectAll') }}
|
{{ isAllSelected ? $t('featureManagement.deselectAll') : $t('featureManagement.selectAll') }}
|
||||||
</CustomButton>
|
</CustomButton>
|
||||||
<CustomButton size="small" @click="handleReset" :disabled="isSaving">
|
<CustomButton icon="el-icon-refresh" size="medium" @click="handleReset" :disabled="isSaving">
|
||||||
{{ $t('featureManagement.reset') }}
|
{{ $t('featureManagement.reset') }}
|
||||||
</CustomButton>
|
</CustomButton>
|
||||||
<CustomButton size="small" type="confirm" @click="handleSave" :disabled="isSaving">
|
<CustomButton icon="el-icon-setting" size="medium" type="confirm" @click="handleSave" :disabled="isSaving">
|
||||||
{{ isSaving ? $t('featureManagement.saving') : $t('featureManagement.save') }}
|
{{ isSaving ? $t('featureManagement.saving') : $t('featureManagement.save') }}
|
||||||
</CustomButton>
|
</CustomButton>
|
||||||
</div>
|
</div>
|
||||||
@@ -45,19 +45,17 @@
|
|||||||
<div class="feature-content">
|
<div class="feature-content">
|
||||||
<div class="feature-header">
|
<div class="feature-header">
|
||||||
<h3 class="feature-name">{{ $t(`feature.${feature.id}.name`) }}</h3>
|
<h3 class="feature-name">{{ $t(`feature.${feature.id}.name`) }}</h3>
|
||||||
<span v-if="feature.enabled" class="feature-enabled-tag">{{ $t('featureManagement.enabled') }}</span>
|
<div class="feature-checkbox-container">
|
||||||
<span v-else class="feature-disabled-tag">{{ $t('featureManagement.disabled') }}</span>
|
<el-checkbox
|
||||||
|
v-model="feature.enabled"
|
||||||
|
@change="!isSaving && toggleFeature(feature)"
|
||||||
|
class="feature-checkbox"
|
||||||
|
:disabled="isSaving"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<p class="feature-description">{{ $t(`feature.${feature.id}.description`) }}</p>
|
<p class="feature-description">{{ $t(`feature.${feature.id}.description`) }}</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="feature-checkbox-container">
|
|
||||||
<el-checkbox
|
|
||||||
v-model="feature.enabled"
|
|
||||||
@change="!isSaving && toggleFeature(feature)"
|
|
||||||
class="feature-checkbox"
|
|
||||||
:disabled="isSaving"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -84,19 +82,17 @@
|
|||||||
<div class="feature-content">
|
<div class="feature-content">
|
||||||
<div class="feature-header">
|
<div class="feature-header">
|
||||||
<h3 class="feature-name">{{ $t(`feature.${feature.id}.name`) }}</h3>
|
<h3 class="feature-name">{{ $t(`feature.${feature.id}.name`) }}</h3>
|
||||||
<span v-if="feature.enabled" class="feature-enabled-tag">{{ $t('featureManagement.enabled') }}</span>
|
<div class="feature-checkbox-container">
|
||||||
<span v-else class="feature-disabled-tag">{{ $t('featureManagement.disabled') }}</span>
|
<el-checkbox
|
||||||
|
v-model="feature.enabled"
|
||||||
|
@change="!isSaving && toggleFeature(feature)"
|
||||||
|
class="feature-checkbox"
|
||||||
|
:disabled="isSaving"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<p class="feature-description">{{ $t(`feature.${feature.id}.description`) }}</p>
|
<p class="feature-description">{{ $t(`feature.${feature.id}.description`) }}</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="feature-checkbox-container">
|
|
||||||
<el-checkbox
|
|
||||||
v-model="feature.enabled"
|
|
||||||
@change="!isSaving && toggleFeature(feature)"
|
|
||||||
class="feature-checkbox"
|
|
||||||
:disabled="isSaving"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -504,15 +500,18 @@ export default {
|
|||||||
transform: translateY(-2px);
|
transform: translateY(-2px);
|
||||||
}
|
}
|
||||||
.feature-content {
|
.feature-content {
|
||||||
|
width: 100%;
|
||||||
margin-left: 16px;
|
margin-left: 16px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.feature-header {
|
.feature-header {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: flex-start;
|
||||||
|
justify-content: space-between;
|
||||||
margin-bottom: 6px;
|
margin-bottom: 6px;
|
||||||
}
|
}
|
||||||
.feature-checkbox-container {
|
.feature-checkbox-container {
|
||||||
|
margin-top: 4px;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
margin-left: 30px;
|
margin-left: 30px;
|
||||||
@@ -531,36 +530,18 @@ export default {
|
|||||||
color: #5778ff;
|
color: #5778ff;
|
||||||
}
|
}
|
||||||
|
|
||||||
.feature-enabled-tag {
|
|
||||||
background: #5778ff;
|
|
||||||
font-size: 14px;
|
|
||||||
color: #FFFFFF;
|
|
||||||
padding: 4px 8px;
|
|
||||||
border-radius: 10px;
|
|
||||||
margin-left: 10px;
|
|
||||||
font-weight: 500;
|
|
||||||
}
|
|
||||||
|
|
||||||
.feature-disabled-tag {
|
|
||||||
background: #DCDFE6;
|
|
||||||
font-size: 14px;
|
|
||||||
color: #FFFFFF;
|
|
||||||
padding: 4px 8px;
|
|
||||||
border-radius: 10px;
|
|
||||||
margin-left: 10px;
|
|
||||||
font-weight: 500;
|
|
||||||
}
|
|
||||||
|
|
||||||
.feature-name {
|
.feature-name {
|
||||||
|
white-space: normal;
|
||||||
|
word-break: break-word;
|
||||||
|
overflow-wrap: break-word;
|
||||||
font-size: 18px;
|
font-size: 18px;
|
||||||
line-height: 18px;
|
line-height: 1.4;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
color: #333;
|
color: #333;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
transition: color 0.3s ease;
|
transition: color 0.3s ease;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.feature-description {
|
.feature-description {
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
line-height: 1.6;
|
line-height: 1.6;
|
||||||
@@ -570,7 +551,6 @@ export default {
|
|||||||
text-align: left;
|
text-align: left;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* 功能分组容器 - 左右布局 */
|
/* 功能分组容器 - 左右布局 */
|
||||||
.feature-groups-container {
|
.feature-groups-container {
|
||||||
display: flex;
|
display: flex;
|
||||||
|
|||||||
Reference in New Issue
Block a user