mirror of
https://github.com/xinnan-tech/xiaozhi-esp32-server.git
synced 2026-07-22 07:03:53 +08:00
update: 系统功能配置页面适配调整
This commit is contained in:
@@ -1420,8 +1420,6 @@ export default {
|
||||
'featureManagement.groupDescription.featureManagement': 'Aktivierungsstatus der Kernfunktionsmodule steuern',
|
||||
'featureManagement.groupDescription.voiceManagement': 'Konfigurieren, welche Funktionen für Agenten (KI-Assistenten) sichtbar und verfügbar sind',
|
||||
'featureManagement.moduleCount': '{count} Module insgesamt',
|
||||
'featureManagement.enabled': 'Aktiviert',
|
||||
'featureManagement.disabled': 'Deaktiviert',
|
||||
|
||||
// Feature names and descriptions
|
||||
'feature.voiceprintRecognition.name': 'Stimmerkennung',
|
||||
|
||||
@@ -1420,8 +1420,6 @@ export default {
|
||||
'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.moduleCount': '{count} modules in total',
|
||||
'featureManagement.enabled': 'Enabled',
|
||||
'featureManagement.disabled': 'Disabled',
|
||||
|
||||
// Feature names and descriptions
|
||||
'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.voiceManagement': 'Configurar quais funcionalidades são visíveis e disponíveis para agentes (assistentes de IA)',
|
||||
'featureManagement.moduleCount': '{count} módulos no total',
|
||||
'featureManagement.enabled': 'Ativado',
|
||||
'featureManagement.disabled': 'Desativado',
|
||||
|
||||
// Nomes e descrições de funcionalidades
|
||||
'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.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.enabled': 'Đã bật',
|
||||
'featureManagement.disabled': 'Chưa bật',
|
||||
|
||||
// Feature names and descriptions
|
||||
'feature.voiceprintRecognition.name': 'Nhận dạng giọng nói',
|
||||
|
||||
@@ -1418,8 +1418,6 @@ export default {
|
||||
'featureManagement.groupDescription.featureManagement': '控制系统核心功能模块的启用状态',
|
||||
'featureManagement.groupDescription.voiceManagement': '配置哪些功能对智能体(AI助手)可见和可用',
|
||||
'featureManagement.moduleCount': '共 {count} 个模块',
|
||||
'featureManagement.enabled': '已启用',
|
||||
'featureManagement.disabled': '未启用',
|
||||
|
||||
// 功能名称和描述
|
||||
'feature.voiceprintRecognition.name': '声纹识别',
|
||||
|
||||
@@ -1420,8 +1420,6 @@ export default {
|
||||
'featureManagement.groupDescription.featureManagement': '控制系統核心功能模組的啟用狀態',
|
||||
'featureManagement.groupDescription.voiceManagement': '配置哪些功能對智能體(AI助手)可見和可用',
|
||||
'featureManagement.moduleCount': '共 {count} 個模組',
|
||||
'featureManagement.enabled': '已啟用',
|
||||
'featureManagement.disabled': '未啟用',
|
||||
|
||||
// 功能名稱和描述
|
||||
'feature.voiceprintRecognition.name': '聲紋識別',
|
||||
|
||||
@@ -8,13 +8,13 @@
|
||||
<div class="config-header">
|
||||
<h2 class="page-title">{{ $t('header.featureManagement') }}</h2>
|
||||
<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') }}
|
||||
</CustomButton>
|
||||
<CustomButton size="small" @click="handleReset" :disabled="isSaving">
|
||||
<CustomButton icon="el-icon-refresh" size="medium" @click="handleReset" :disabled="isSaving">
|
||||
{{ $t('featureManagement.reset') }}
|
||||
</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') }}
|
||||
</CustomButton>
|
||||
</div>
|
||||
@@ -45,19 +45,17 @@
|
||||
<div class="feature-content">
|
||||
<div class="feature-header">
|
||||
<h3 class="feature-name">{{ $t(`feature.${feature.id}.name`) }}</h3>
|
||||
<span v-if="feature.enabled" class="feature-enabled-tag">{{ $t('featureManagement.enabled') }}</span>
|
||||
<span v-else class="feature-disabled-tag">{{ $t('featureManagement.disabled') }}</span>
|
||||
<div class="feature-checkbox-container">
|
||||
<el-checkbox
|
||||
v-model="feature.enabled"
|
||||
@change="!isSaving && toggleFeature(feature)"
|
||||
class="feature-checkbox"
|
||||
:disabled="isSaving"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<p class="feature-description">{{ $t(`feature.${feature.id}.description`) }}</p>
|
||||
</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>
|
||||
@@ -84,19 +82,17 @@
|
||||
<div class="feature-content">
|
||||
<div class="feature-header">
|
||||
<h3 class="feature-name">{{ $t(`feature.${feature.id}.name`) }}</h3>
|
||||
<span v-if="feature.enabled" class="feature-enabled-tag">{{ $t('featureManagement.enabled') }}</span>
|
||||
<span v-else class="feature-disabled-tag">{{ $t('featureManagement.disabled') }}</span>
|
||||
<div class="feature-checkbox-container">
|
||||
<el-checkbox
|
||||
v-model="feature.enabled"
|
||||
@change="!isSaving && toggleFeature(feature)"
|
||||
class="feature-checkbox"
|
||||
:disabled="isSaving"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<p class="feature-description">{{ $t(`feature.${feature.id}.description`) }}</p>
|
||||
</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>
|
||||
@@ -504,15 +500,18 @@ export default {
|
||||
transform: translateY(-2px);
|
||||
}
|
||||
.feature-content {
|
||||
width: 100%;
|
||||
margin-left: 16px;
|
||||
}
|
||||
|
||||
.feature-header {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
align-items: flex-start;
|
||||
justify-content: space-between;
|
||||
margin-bottom: 6px;
|
||||
}
|
||||
.feature-checkbox-container {
|
||||
margin-top: 4px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-left: 30px;
|
||||
@@ -531,36 +530,18 @@ export default {
|
||||
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 {
|
||||
white-space: normal;
|
||||
word-break: break-word;
|
||||
overflow-wrap: break-word;
|
||||
font-size: 18px;
|
||||
line-height: 18px;
|
||||
line-height: 1.4;
|
||||
font-weight: 600;
|
||||
color: #333;
|
||||
margin: 0;
|
||||
transition: color 0.3s ease;
|
||||
}
|
||||
|
||||
|
||||
.feature-description {
|
||||
font-size: 14px;
|
||||
line-height: 1.6;
|
||||
@@ -570,7 +551,6 @@ export default {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
|
||||
/* 功能分组容器 - 左右布局 */
|
||||
.feature-groups-container {
|
||||
display: flex;
|
||||
|
||||
Reference in New Issue
Block a user