From 6a8c4ccbf868dfdc87cf10d4e4f3c192d059d90c Mon Sep 17 00:00:00 2001 From: LiJinHui <166460433+stu-rgsze@users.noreply.github.com> Date: Thu, 18 Sep 2025 16:43:52 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=9B=BD=E9=99=85=E5=8C=96?= =?UTF-8?q?=E7=9A=84=E5=8A=9F=E8=83=BD=EF=BC=8C=E8=B0=83=E6=95=B4=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/components/AgentTemplateDialog.vue | 31 ++-- main/manager-web/src/i18n/en.js | 70 +++++++++ main/manager-web/src/i18n/zh_CN.js | 76 ++++++++- main/manager-web/src/i18n/zh_TW.js | 71 ++++++++- .../src/views/AgentTemplateManagement.vue | 148 +++++++++++------- .../src/views/TemplateQuickConfig.vue | 14 +- 6 files changed, 327 insertions(+), 83 deletions(-) diff --git a/main/manager-web/src/components/AgentTemplateDialog.vue b/main/manager-web/src/components/AgentTemplateDialog.vue index 99586aa2..451c80d0 100644 --- a/main/manager-web/src/components/AgentTemplateDialog.vue +++ b/main/manager-web/src/components/AgentTemplateDialog.vue @@ -1,8 +1,14 @@ @@ -58,18 +64,13 @@ export default { // 表单验证规则 rules: { agentName: [ - { required: true, message: '请输入模板名称', trigger: 'blur' }, - { min: 2, max: 50, message: '模板名称长度在 2 到 50 个字符', trigger: 'blur' } + { required: true, message: this.$t('agentTemplateManagement.templateDialog.nameRequired'), trigger: 'blur' } ], - langCode: [ - { required: true, message: '请输入语言编码', trigger: 'blur' } - ], - language: [ - { required: true, message: '请输入交互语种', trigger: 'blur' } + roleName: [ + { required: true, message: this.$t('agentTemplateManagement.templateDialog.roleNameRequired'), trigger: 'blur' } ], systemPrompt: [ - { required: true, message: '请输入角色设定参数', trigger: 'blur' }, - { min: 10, message: '角色设定参数至少需要 10 个字符', trigger: 'blur' } + { required: true, message: this.$t('agentTemplateManagement.templateDialog.systemPromptRequired'), trigger: 'blur' } ] } } diff --git a/main/manager-web/src/i18n/en.js b/main/manager-web/src/i18n/en.js index c030cc33..3f6bef08 100644 --- a/main/manager-web/src/i18n/en.js +++ b/main/manager-web/src/i18n/en.js @@ -824,4 +824,74 @@ export default { 'providerDialog.selectFieldsToDelete': 'Please select fields to delete first', 'providerDialog.confirmBatchDeleteFields': 'Are you sure to delete {count} selected fields?', 'providerDialog.batchDeleteFieldsSuccess': 'Successfully deleted {count} fields', + + // ...existing code ... + agentTemplateManagement: { + title: 'Default Role Management', + templateName: 'Template Name', + description: 'Description', + createTime: 'Creation Time', + action: 'Action', + createTemplate: 'Create Template', + editTemplate: 'Edit Template', + deleteTemplate: 'Delete Template', + deleteSuccess: 'Template deleted successfully', + confirmDelete: 'Are you sure you want to delete the selected templates?', + batchDelete: 'Batch Delete', + batchDeleteSuccess: 'Batch deletion successful', + selectTemplate: 'Please select a template', + select: 'Select', + searchPlaceholder: 'Please enter template name to search', + search: 'Search', + serialNumber: 'Serial Number', + selectAll: 'Select All', + deselectAll: 'Deselect All', + templateDialog: { + title: 'Template Configuration', + templateName: 'Template Name', + templateNamePlaceholder: 'Please enter template name', + description: 'Description', + descriptionPlaceholder: 'Please enter description', + roleName: 'Role Name', + roleNamePlaceholder: 'Please enter role name', + avatar: 'Avatar', + selectAvatar: 'Select Avatar', + systemPrompt: 'System Prompt', + systemPromptPlaceholder: 'Please enter system prompt', + modelConfig: 'Model Configuration', + modelName: 'Model Name', + temperature: 'Temperature', + topP: 'Top P', + maxTokens: 'Max Tokens', + save: 'Save', + cancel: 'Cancel', + nameRequired: 'Please enter template name', + roleNameRequired: 'Please enter role name', + systemPromptRequired: 'Please enter system prompt' + } + }, + templateQuickConfig: { + title: 'Module Quick Configuration', + basicSettings: 'Basic Settings', + agentSettings: { + agentName: 'Nickname', + agentNamePlaceholder: 'Please enter nickname', + systemPrompt: 'Introduction', + systemPromptPlaceholder: 'Please enter introduction' + }, + modelSettings: 'Model Settings', + voiceSettings: 'Voice Settings', + serviceSettings: 'Service Settings', + deviceSettings: 'Device Settings', + pluginSettings: 'Plugin Settings', + saveConfig: 'Save Configuration', + resetConfig: 'Reset Configuration', + configSaved: 'Configuration saved successfully', + configReset: 'Configuration has been reset', + confirmReset: 'Are you sure you want to reset the configuration?', + success: 'Success', + error: 'Error', + warning: 'Warning', + info: 'Info' + } }; \ No newline at end of file diff --git a/main/manager-web/src/i18n/zh_CN.js b/main/manager-web/src/i18n/zh_CN.js index 8a3c8606..ae1097f4 100644 --- a/main/manager-web/src/i18n/zh_CN.js +++ b/main/manager-web/src/i18n/zh_CN.js @@ -385,7 +385,7 @@ export default { 'dictManagement.dictValue': '字典值', 'dictManagement.sort': '排序', 'dictManagement.delete': '删除', - 'dictManagement.selectAll': '全选', + 'dictManagement.selectAll': '默认角色管理', 'dictManagement.deselectAll': '取消全选', 'dictManagement.addDictType': '新增字典类型', 'dictManagement.batchDeleteDictType': '批量删除字典类型', @@ -825,4 +825,76 @@ export default { 'providerDialog.selectFieldsToDelete': '请先选择要删除的字段', 'providerDialog.confirmBatchDeleteFields': '确定要删除选中的{count}个字段吗?', 'providerDialog.batchDeleteFieldsSuccess': '成功删除{count}个字段', -}; \ No newline at end of file + + // 默认角色模版和模版快速配置页面 + // 在agentTemplateManagement对象中添加 + agentTemplateManagement: { + title: '默认角色管理', + templateName: '模板名称', + description: '模板描述', + createTime: '创建时间', + action: '操作', + createTemplate: '创建模板', + editTemplate: '编辑模板', + deleteTemplate: '删除模板', + deleteSuccess: '模板删除成功', + confirmDelete: '确定要删除选中的模板吗?', + batchDelete: '批量删除', + batchDeleteSuccess: '批量删除成功', + selectTemplate: '请选择模板', + select: '选择', + searchPlaceholder: '请输入模板名称搜索', + search: '搜索', + serialNumber: '序号', + selectAll: '全选', + deselectAll: '取消全选', + templateDialog: { + title: '模板配置', + templateName: '模板名称', + templateNamePlaceholder: '请输入模板名称', + description: '模板描述', + descriptionPlaceholder: '请输入模板描述', + roleName: '角色名称', + roleNamePlaceholder: '请输入角色名称', + avatar: '头像', + selectAvatar: '选择头像', + systemPrompt: '系统提示词', + systemPromptPlaceholder: '请输入系统提示词', + modelConfig: '模型配置', + modelName: '模型名称', + temperature: '温度', + topP: 'Top P', + maxTokens: '最大 tokens', + save: '保存', + cancel: '取消', + nameRequired: '请输入模板名称', + roleNameRequired: '请输入角色名称', + systemPromptRequired: '请输入系统提示词' + } + }, + templateQuickConfig: { + title: '模块快速配置', + basicSettings: '基本设置', + agentSettings: '助手昵称', + agentSettings: { + agentName: '助手昵称', + agentNamePlaceholder: '请输入助手昵称', + systemPrompt: '角色介绍', + systemPromptPlaceholder: '请输入角色介绍' + }, + modelSettings: '模型设置', + voiceSettings: '语音设置', + serviceSettings: '服务设置', + deviceSettings: '设备设置', + pluginSettings: '插件设置', + saveConfig: '保存配置', + resetConfig: '重置配置', + configSaved: '配置保存成功', + configReset: '配置已重置', + confirmReset: '确定要重置配置吗?', + success: '成功', + error: '错误', + warning: '警告', + info: '提示' + } +} \ No newline at end of file diff --git a/main/manager-web/src/i18n/zh_TW.js b/main/manager-web/src/i18n/zh_TW.js index 51143d26..b78af25e 100644 --- a/main/manager-web/src/i18n/zh_TW.js +++ b/main/manager-web/src/i18n/zh_TW.js @@ -824,4 +824,73 @@ export default { 'providerDialog.selectFieldsToDelete': '請先選擇要刪除的字段', 'providerDialog.confirmBatchDeleteFields': '確定要刪除選中的{count}個字段嗎?', 'providerDialog.batchDeleteFieldsSuccess': '成功刪除{count}個字段', -}; \ No newline at end of file + +agentTemplateManagement: { + title: '預設角色管理', + templateName: '模板名稱', + description: '模板描述', + createTime: '建立時間', + action: '操作', + createTemplate: '建立模板', + editTemplate: '編輯模板', + deleteTemplate: '刪除模板', + deleteSuccess: '模板刪除成功', + confirmDelete: '確定要刪除選取的模板嗎?', + batchDelete: '批次刪除', + batchDeleteSuccess: '批次刪除成功', + selectTemplate: '請選擇模板', + select: '選擇', + searchPlaceholder: '請輸入模板名稱搜尋', + search: '搜尋', + serialNumber:'序號', + selectAll: '全選', + deselectAll: '取消全選', + templateDialog: { + title: '模板配置', + templateName: '模板名稱', + templateNamePlaceholder: '請輸入模板名稱', + description: '模板描述', + descriptionPlaceholder: '請輸入模板描述', + roleName: '角色名稱', + roleNamePlaceholder: '請輸入角色名稱', + avatar: '頭像', + selectAvatar: '選擇頭像', + systemPrompt: '系統提示詞', + systemPromptPlaceholder: '請輸入系統提示詞', + modelConfig: '模型配置', + modelName: '模型名稱', + temperature: '溫度', + topP: 'Top P', + maxTokens: '最大 tokens', + save: '保存', + cancel: '取消', + nameRequired: '請輸入模板名稱', + roleNameRequired: '請輸入角色名稱', + systemPromptRequired: '請輸入系統提示詞' + } +}, +templateQuickConfig: { + title: '模組快速配置', + basicSettings: '基本設置', + agentSettings: { + agentName: '助手暱稱', + agentNamePlaceholder: '請輸入助手暱稱', + systemPrompt: '角色介紹', + systemPromptPlaceholder: '請輸入角色介紹' + }, + modelSettings: '模型設置', + voiceSettings: '語音設置', + serviceSettings: '服務設置', + deviceSettings: '設備設置', + pluginSettings: '外掛設置', + saveConfig: '保存配置', + resetConfig: '重置配置', + configSaved: '配置保存成功', + configReset: '配置已重置', + confirmReset: '確定要重置配置嗎?', + success: '成功', + error: '錯誤', + warning: '警告', + info: '提示' +} +} \ No newline at end of file diff --git a/main/manager-web/src/views/AgentTemplateManagement.vue b/main/manager-web/src/views/AgentTemplateManagement.vue index d8671db4..b57a1a14 100644 --- a/main/manager-web/src/views/AgentTemplateManagement.vue +++ b/main/manager-web/src/views/AgentTemplateManagement.vue @@ -3,12 +3,12 @@
-

默认角色管理

+

{{ $t('agentTemplateManagement.title') }}

- - 搜索 + {{ $t('agentTemplateManagement.search') }}
@@ -23,61 +23,60 @@ + class="transparent-table" :header-cell-style="{padding: '10px 20px'}" :cell-style="{padding: '10px 20px'}"> - + - - - - - - + + + + + + + + + - - + +
-
- - - {{ isAllSelected ? '取消全选' : '全选' }} + + {{ isAllSelected ? $t('agentTemplateManagement.deselectAll') : $t('agentTemplateManagement.selectAll') }} - 新增模板 - - 批量删除模板 + + {{ $t('agentTemplateManagement.createTemplate') }} + + + {{ $t('agentTemplateManagement.batchDelete') }}
- - -
- - - - - - - - - 共{{ total }}条记录 + +
+
@@ -85,12 +84,14 @@
- - - - - + + @@ -147,14 +148,18 @@ export default { created() { this.loadTemplateList() }, + // 在computed部分添加hasSelected属性 computed: { - pageCount() { - return Math.ceil(this.total / this.pageSize) + pageCount() { + return Math.ceil(this.total / this.pageSize) + }, + visiblePages() { + return this.getVisiblePages() + }, + hasSelected() { + return this.selectedTemplates.length > 0 + } }, - visiblePages() { - return this.getVisiblePages() - } - }, methods: { // 加载模板列表 // 改进loadTemplateList方法的错误处理逻辑 @@ -230,8 +235,13 @@ export default { }) }, + // 添加handleCreate方法,与模板中绑定的按钮保持一致 + handleCreate() { + this.showAddTemplateDialog(); + }, + // 保留原有的editTemplate方法 - // 编辑模板 - 完全替换这个方法 + // 编辑模板 editTemplate(row) { // 跳转到模板快速配置页面,并传递模板ID参数 this.$router.push({ @@ -341,9 +351,31 @@ export default { // 分页相关方法 - handlePageSizeChange() { - this.currentPage = 1 + // 添加日期格式化函数 + formatDate(dateString) { + if (!dateString) return '' + const date = new Date(dateString) + const year = date.getFullYear() + const month = String(date.getMonth() + 1).padStart(2, '0') + const day = String(date.getDate()).padStart(2, '0') + const hours = String(date.getHours()).padStart(2, '0') + const minutes = String(date.getMinutes()).padStart(2, '0') + const seconds = String(date.getSeconds()).padStart(2, '0') + return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}` }, + + // 完善分页相关方法 + handlePageChange(page) { + this.currentPage = page + this.loadTemplateList() + }, + + handlePageSizeChange(size) { + this.pageSize = size + this.currentPage = 1 + this.loadTemplateList() + }, + goFirst() { this.currentPage = 1 }, diff --git a/main/manager-web/src/views/TemplateQuickConfig.vue b/main/manager-web/src/views/TemplateQuickConfig.vue index 06af4ac8..e9e30d58 100644 --- a/main/manager-web/src/views/TemplateQuickConfig.vue +++ b/main/manager-web/src/views/TemplateQuickConfig.vue @@ -3,7 +3,7 @@
-

模板快速配置

+

{{ $t('templateQuickConfig.title') }}

@@ -17,8 +17,8 @@
{{ form.agentName }}
- 保存配置 - 重置 + {{ $t('templateQuickConfig.saveConfig') }} + {{ $t('templateQuickConfig.resetConfig') }} @@ -28,21 +28,21 @@ - + - +