mirror of
https://github.com/xinnan-tech/xiaozhi-esp32-server.git
synced 2026-07-25 16:43:55 +08:00
添加国际化的功能,调整页面
This commit is contained in:
@@ -1,8 +1,14 @@
|
|||||||
<template>
|
<template>
|
||||||
<el-dialog :title="title" :visible.sync="visible" width="60%" @close="handleClose">
|
<el-dialog :title="title" :visible.sync="visible" width="60%" @close="handleClose">
|
||||||
<el-form ref="templateForm" :model="templateData" label-width="120px" :rules="rules">
|
<el-form ref="templateForm" :model="templateData" label-width="120px" :rules="rules">
|
||||||
<el-form-item label="模板名称" prop="agentName">
|
<el-form-item :label="$t('agentTemplateManagement.templateDialog.templateName')" prop="agentName">
|
||||||
<el-input v-model="templateData.agentName" placeholder="请输入模板名称" />
|
<el-input v-model="templateData.agentName" :placeholder="$t('agentTemplateManagement.templateDialog.templateNamePlaceholder')" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item :label="$t('agentTemplateManagement.templateDialog.description')" prop="description">
|
||||||
|
<el-input v-model="templateData.description" :placeholder="$t('agentTemplateManagement.templateDialog.descriptionPlaceholder')" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item :label="$t('agentTemplateManagement.templateDialog.roleName')" prop="roleName">
|
||||||
|
<el-input v-model="templateData.roleName" :placeholder="$t('agentTemplateManagement.templateDialog.roleNamePlaceholder')" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="语言编码" prop="langCode">
|
<el-form-item label="语言编码" prop="langCode">
|
||||||
<el-input v-model="templateData.langCode" placeholder="请输入语言编码,如zh-CN" />
|
<el-input v-model="templateData.langCode" placeholder="请输入语言编码,如zh-CN" />
|
||||||
@@ -20,8 +26,8 @@
|
|||||||
<el-option label="记录文本和语音" :value="2" />
|
<el-option label="记录文本和语音" :value="2" />
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="角色设定参数" prop="systemPrompt">
|
<el-form-item :label="$t('agentTemplateManagement.templateDialog.systemPrompt')" prop="systemPrompt">
|
||||||
<el-input v-model="templateData.systemPrompt" type="textarea" placeholder="请输入角色设定参数" :rows="4" />
|
<el-input v-model="templateData.systemPrompt" type="textarea" :placeholder="$t('agentTemplateManagement.templateDialog.systemPromptPlaceholder')" :rows="4" />
|
||||||
<div class="form-tip">角色设定参数将作为智能体的系统提示,定义智能体的行为和回答风格</div>
|
<div class="form-tip">角色设定参数将作为智能体的系统提示,定义智能体的行为和回答风格</div>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="总结记忆" prop="summaryMemory">
|
<el-form-item label="总结记忆" prop="summaryMemory">
|
||||||
@@ -30,8 +36,8 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<div slot="footer" class="dialog-footer">
|
<div slot="footer" class="dialog-footer">
|
||||||
<el-button @click="handleClose">取消</el-button>
|
<el-button @click="handleClose">{{ $t('agentTemplateManagement.templateDialog.cancel') }}</el-button>
|
||||||
<el-button type="primary" @click="handleSave">确定</el-button>
|
<el-button type="primary" @click="handleSave">{{ $t('agentTemplateManagement.templateDialog.save') }}</el-button>
|
||||||
</div>
|
</div>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
</template>
|
</template>
|
||||||
@@ -58,18 +64,13 @@ export default {
|
|||||||
// 表单验证规则
|
// 表单验证规则
|
||||||
rules: {
|
rules: {
|
||||||
agentName: [
|
agentName: [
|
||||||
{ required: true, message: '请输入模板名称', trigger: 'blur' },
|
{ required: true, message: this.$t('agentTemplateManagement.templateDialog.nameRequired'), trigger: 'blur' }
|
||||||
{ min: 2, max: 50, message: '模板名称长度在 2 到 50 个字符', trigger: 'blur' }
|
|
||||||
],
|
],
|
||||||
langCode: [
|
roleName: [
|
||||||
{ required: true, message: '请输入语言编码', trigger: 'blur' }
|
{ required: true, message: this.$t('agentTemplateManagement.templateDialog.roleNameRequired'), trigger: 'blur' }
|
||||||
],
|
|
||||||
language: [
|
|
||||||
{ required: true, message: '请输入交互语种', trigger: 'blur' }
|
|
||||||
],
|
],
|
||||||
systemPrompt: [
|
systemPrompt: [
|
||||||
{ required: true, message: '请输入角色设定参数', trigger: 'blur' },
|
{ required: true, message: this.$t('agentTemplateManagement.templateDialog.systemPromptRequired'), trigger: 'blur' }
|
||||||
{ min: 10, message: '角色设定参数至少需要 10 个字符', trigger: 'blur' }
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -824,4 +824,74 @@ export default {
|
|||||||
'providerDialog.selectFieldsToDelete': 'Please select fields to delete first',
|
'providerDialog.selectFieldsToDelete': 'Please select fields to delete first',
|
||||||
'providerDialog.confirmBatchDeleteFields': 'Are you sure to delete {count} selected fields?',
|
'providerDialog.confirmBatchDeleteFields': 'Are you sure to delete {count} selected fields?',
|
||||||
'providerDialog.batchDeleteFieldsSuccess': 'Successfully deleted {count} 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'
|
||||||
|
}
|
||||||
};
|
};
|
||||||
@@ -385,7 +385,7 @@ export default {
|
|||||||
'dictManagement.dictValue': '字典值',
|
'dictManagement.dictValue': '字典值',
|
||||||
'dictManagement.sort': '排序',
|
'dictManagement.sort': '排序',
|
||||||
'dictManagement.delete': '删除',
|
'dictManagement.delete': '删除',
|
||||||
'dictManagement.selectAll': '全选',
|
'dictManagement.selectAll': '默认角色管理',
|
||||||
'dictManagement.deselectAll': '取消全选',
|
'dictManagement.deselectAll': '取消全选',
|
||||||
'dictManagement.addDictType': '新增字典类型',
|
'dictManagement.addDictType': '新增字典类型',
|
||||||
'dictManagement.batchDeleteDictType': '批量删除字典类型',
|
'dictManagement.batchDeleteDictType': '批量删除字典类型',
|
||||||
@@ -825,4 +825,76 @@ export default {
|
|||||||
'providerDialog.selectFieldsToDelete': '请先选择要删除的字段',
|
'providerDialog.selectFieldsToDelete': '请先选择要删除的字段',
|
||||||
'providerDialog.confirmBatchDeleteFields': '确定要删除选中的{count}个字段吗?',
|
'providerDialog.confirmBatchDeleteFields': '确定要删除选中的{count}个字段吗?',
|
||||||
'providerDialog.batchDeleteFieldsSuccess': '成功删除{count}个字段',
|
'providerDialog.batchDeleteFieldsSuccess': '成功删除{count}个字段',
|
||||||
};
|
|
||||||
|
// 默认角色模版和模版快速配置页面
|
||||||
|
// 在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: '提示'
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -824,4 +824,73 @@ export default {
|
|||||||
'providerDialog.selectFieldsToDelete': '請先選擇要刪除的字段',
|
'providerDialog.selectFieldsToDelete': '請先選擇要刪除的字段',
|
||||||
'providerDialog.confirmBatchDeleteFields': '確定要刪除選中的{count}個字段嗎?',
|
'providerDialog.confirmBatchDeleteFields': '確定要刪除選中的{count}個字段嗎?',
|
||||||
'providerDialog.batchDeleteFieldsSuccess': '成功刪除{count}個字段',
|
'providerDialog.batchDeleteFieldsSuccess': '成功刪除{count}個字段',
|
||||||
};
|
|
||||||
|
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: '提示'
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -3,12 +3,12 @@
|
|||||||
<HeaderBar />
|
<HeaderBar />
|
||||||
|
|
||||||
<div class="operation-bar">
|
<div class="operation-bar">
|
||||||
<h2 class="page-title">默认角色管理</h2>
|
<h2 class="page-title">{{ $t('agentTemplateManagement.title') }}</h2>
|
||||||
<div class="right-operations">
|
<div class="right-operations">
|
||||||
<el-input placeholder="请输入模板名称查询" v-model="search" class="search-input" clearable
|
<el-input :placeholder="$t('agentTemplateManagement.searchPlaceholder')" v-model="search" class="search-input" clearable
|
||||||
@keyup.enter.native="handleSearch" style="width: 240px" />
|
@keyup.enter.native="handleSearch" style="width: 240px" />
|
||||||
<el-button class="btn-search" @click="handleSearch">
|
<el-button class="btn-search" @click="handleSearch">
|
||||||
搜索
|
{{ $t('agentTemplateManagement.search') }}
|
||||||
</el-button>
|
</el-button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -23,61 +23,60 @@
|
|||||||
<el-table ref="templateTable" :data="templateList" style="width: 100%" v-loading="templateLoading"
|
<el-table ref="templateTable" :data="templateList" style="width: 100%" v-loading="templateLoading"
|
||||||
element-loading-text="拼命加载中" element-loading-spinner="el-icon-loading"
|
element-loading-text="拼命加载中" element-loading-spinner="el-icon-loading"
|
||||||
element-loading-background="rgba(255, 255, 255, 0.7)"
|
element-loading-background="rgba(255, 255, 255, 0.7)"
|
||||||
class="transparent-table"> <!-- 移除@row-click="handleRowClick" -->
|
class="transparent-table" :header-cell-style="{padding: '10px 20px'}" :cell-style="{padding: '10px 20px'}"> <!-- 移除@row-click="handleRowClick" -->
|
||||||
<!-- 自定义选择列,实现表头是"选择"文字,数据行是小方框 -->
|
<!-- 自定义选择列,实现表头是"选择"文字,数据行是小方框 -->
|
||||||
<el-table-column label="选择" align="center" width="80">
|
<el-table-column :label="$t('agentTemplateManagement.select')" align="center" min-width="100">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-checkbox v-model="scope.row.selected" @change="handleRowSelectionChange(scope.row)" @click.stop></el-checkbox>
|
<el-checkbox v-model="scope.row.selected" @change="handleRowSelectionChange(scope.row)" @click.stop></el-checkbox>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="模板名称" prop="agentName" align="center"></el-table-column>
|
<el-table-column :label="$t('agentTemplateManagement.templateName')" prop="agentName" min-width="250" show-overflow-tooltip>
|
||||||
<el-table-column label="语言编码" prop="langCode" align="center"></el-table-column>
|
|
||||||
<el-table-column label="交互语种" prop="language" align="center"></el-table-column>
|
|
||||||
<el-table-column label="排序" prop="sort" align="center"></el-table-column>
|
|
||||||
<!-- 将原来的操作列合并为一列,显示编辑和删除按钮 -->
|
|
||||||
<el-table-column label="操作" width="160" align="center">
|
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-button type="text" size="mini" @click.stop="editTemplate(scope.row)">编辑</el-button>
|
<span>{{ scope.row.agentName }}</span>
|
||||||
<el-button type="text" size="mini" @click.stop="deleteTemplate(scope.row)" class="delete-btn">删除</el-button>
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<!-- 修改为序号列1 -->
|
||||||
|
<el-table-column :label="$t('agentTemplateManagement.serialNumber')" min-width="120" align="center">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<span>{{ (currentPage - 1) * pageSize + scope.$index + 1 }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<!-- 删除重复的序号列2 -->
|
||||||
|
<el-table-column :label="$t('agentTemplateManagement.action')" min-width="250" align="center">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<div style="display: flex; justify-content: center; gap: 15px;">
|
||||||
|
<el-button type="text" @click="editTemplate(scope.row)">{{ $t('agentTemplateManagement.editTemplate') }}</el-button>
|
||||||
|
<el-button type="text" @click="handleDelete(scope.row.id)">{{ $t('agentTemplateManagement.deleteTemplate') }}</el-button>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
|
||||||
<!-- 修改table_bottom结构,添加按钮组容器 -->
|
<!-- 表格底部操作栏 -->
|
||||||
<div class="table_bottom">
|
<div class="table_bottom">
|
||||||
<!-- 左侧按钮组 -->
|
|
||||||
<div class="ctrl_btn">
|
<div class="ctrl_btn">
|
||||||
<!-- 将checkbox改为按钮样式 -->
|
<el-button type="primary" @click="handleSelectAll" size="mini" class="select-all-btn">
|
||||||
<el-button size="mini" type="primary" class="select-all-btn" @click="handleSelectAll">
|
{{ isAllSelected ? $t('agentTemplateManagement.deselectAll') : $t('agentTemplateManagement.selectAll') }}
|
||||||
{{ isAllSelected ? '取消全选' : '全选' }}
|
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button size="mini" type="success" @click="showAddTemplateDialog">新增模板</el-button>
|
<el-button type="success" @click="handleCreate" size="mini">
|
||||||
<el-button size="mini" type="danger" @click="batchDeleteTemplate" :disabled="selectedTemplates.length === 0">
|
{{ $t('agentTemplateManagement.createTemplate') }}
|
||||||
批量删除模板
|
</el-button>
|
||||||
|
<el-button type="danger" @click="batchDeleteTemplate" :disabled="!hasSelected" size="mini">
|
||||||
|
{{ $t('agentTemplateManagement.batchDelete') }}
|
||||||
</el-button>
|
</el-button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- 右侧分页控件 -->
|
<!-- 分页 -->
|
||||||
<div class="custom-pagination">
|
<div class="custom-pagination">
|
||||||
<el-select v-model="pageSize" @change="handlePageSizeChange" class="page-size-select">
|
<el-pagination
|
||||||
<el-option v-for="item in pageSizeOptions" :key="item" :label="`${item}条/页`" :value="item">
|
v-model:current-page="currentPage"
|
||||||
</el-option>
|
v-model:page-size="pageSize"
|
||||||
</el-select>
|
:page-sizes="pageSizeOptions"
|
||||||
|
layout="total, sizes, prev, pager, next, jumper"
|
||||||
<button class="pagination-btn" :disabled="currentPage === 1" @click="goFirst">
|
:total="total"
|
||||||
首页
|
@size-change="handlePageSizeChange"
|
||||||
</button>
|
@current-change="handlePageChange"
|
||||||
<button class="pagination-btn" :disabled="currentPage === 1" @click="goPrev">
|
/>
|
||||||
上一页
|
|
||||||
</button>
|
|
||||||
<button v-for="page in visiblePages" :key="page" class="pagination-btn"
|
|
||||||
:class="{ active: page === currentPage }" @click="goToPage(page)">
|
|
||||||
{{ page }}
|
|
||||||
</button>
|
|
||||||
<button class="pagination-btn" :disabled="currentPage === pageCount" @click="goNext">
|
|
||||||
下一页
|
|
||||||
</button>
|
|
||||||
<span class="total-text">共{{ total }}条记录</span>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</el-card>
|
</el-card>
|
||||||
@@ -85,12 +84,14 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- 使用模板编辑弹框组件 -->
|
<!-- 模板编辑弹框 -->
|
||||||
<AgentTemplateDialog :visible.sync="templateDialogVisible" :title="templateDialogTitle" :templateData="templateForm"
|
<AgentTemplateDialog
|
||||||
@save="saveTemplate" />
|
ref="templateDialog"
|
||||||
<el-footer style="flex-shrink:unset;">
|
:visible.sync="templateDialogVisible"
|
||||||
<version-footer />
|
:title="templateDialogTitle"
|
||||||
</el-footer>
|
:template-data="templateForm"
|
||||||
|
@save="saveTemplate"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@@ -147,14 +148,18 @@ export default {
|
|||||||
created() {
|
created() {
|
||||||
this.loadTemplateList()
|
this.loadTemplateList()
|
||||||
},
|
},
|
||||||
|
// 在computed部分添加hasSelected属性
|
||||||
computed: {
|
computed: {
|
||||||
pageCount() {
|
pageCount() {
|
||||||
return Math.ceil(this.total / this.pageSize)
|
return Math.ceil(this.total / this.pageSize)
|
||||||
|
},
|
||||||
|
visiblePages() {
|
||||||
|
return this.getVisiblePages()
|
||||||
|
},
|
||||||
|
hasSelected() {
|
||||||
|
return this.selectedTemplates.length > 0
|
||||||
|
}
|
||||||
},
|
},
|
||||||
visiblePages() {
|
|
||||||
return this.getVisiblePages()
|
|
||||||
}
|
|
||||||
},
|
|
||||||
methods: {
|
methods: {
|
||||||
// 加载模板列表
|
// 加载模板列表
|
||||||
// 改进loadTemplateList方法的错误处理逻辑
|
// 改进loadTemplateList方法的错误处理逻辑
|
||||||
@@ -230,8 +235,13 @@ export default {
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|
||||||
|
// 添加handleCreate方法,与模板中绑定的按钮保持一致
|
||||||
|
handleCreate() {
|
||||||
|
this.showAddTemplateDialog();
|
||||||
|
},
|
||||||
|
|
||||||
// 保留原有的editTemplate方法
|
// 保留原有的editTemplate方法
|
||||||
// 编辑模板 - 完全替换这个方法
|
// 编辑模板
|
||||||
editTemplate(row) {
|
editTemplate(row) {
|
||||||
// 跳转到模板快速配置页面,并传递模板ID参数
|
// 跳转到模板快速配置页面,并传递模板ID参数
|
||||||
this.$router.push({
|
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() {
|
goFirst() {
|
||||||
this.currentPage = 1
|
this.currentPage = 1
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
<HeaderBar />
|
<HeaderBar />
|
||||||
|
|
||||||
<div class="operation-bar">
|
<div class="operation-bar">
|
||||||
<h2 class="page-title">模板快速配置</h2>
|
<h2 class="page-title">{{ $t('templateQuickConfig.title') }}</h2>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="main-wrapper">
|
<div class="main-wrapper">
|
||||||
@@ -17,8 +17,8 @@
|
|||||||
</div>
|
</div>
|
||||||
<span class="header-title">{{ form.agentName }}</span>
|
<span class="header-title">{{ form.agentName }}</span>
|
||||||
<div class="header-actions">
|
<div class="header-actions">
|
||||||
<el-button type="primary" class="save-btn" @click="saveConfig">保存配置</el-button>
|
<el-button type="primary" class="save-btn" @click="saveConfig">{{ $t('templateQuickConfig.saveConfig') }}</el-button>
|
||||||
<el-button class="reset-btn" @click="resetConfig">重置</el-button>
|
<el-button class="reset-btn" @click="resetConfig">{{ $t('templateQuickConfig.resetConfig') }}</el-button>
|
||||||
<button class="custom-close-btn" @click="goToHome">
|
<button class="custom-close-btn" @click="goToHome">
|
||||||
×
|
×
|
||||||
</button>
|
</button>
|
||||||
@@ -28,21 +28,21 @@
|
|||||||
|
|
||||||
<el-form ref="form" :model="form" label-width="72px" class="full-height-form">
|
<el-form ref="form" :model="form" label-width="72px" class="full-height-form">
|
||||||
<!-- 助手昵称 -->
|
<!-- 助手昵称 -->
|
||||||
<el-form-item label="助手昵称" prop="agentName" class="nickname-item">
|
<el-form-item :label="$t('templateQuickConfig.agentSettings.agentName')" prop="agentName" class="nickname-item">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="form.agentName"
|
v-model="form.agentName"
|
||||||
placeholder="请输入助手昵称"
|
:placeholder="$t('templateQuickConfig.agentSettings.agentNamePlaceholder')"
|
||||||
:validate-event="false"
|
:validate-event="false"
|
||||||
class="form-input"
|
class="form-input"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<!-- 角色介绍 -->
|
<!-- 角色介绍 -->
|
||||||
<el-form-item label="角色介绍" prop="systemPrompt" class="description-item">
|
<el-form-item :label="$t('templateQuickConfig.agentSettings.systemPrompt')" prop="systemPrompt" class="description-item">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="form.systemPrompt"
|
v-model="form.systemPrompt"
|
||||||
type="textarea"
|
type="textarea"
|
||||||
placeholder="请输入角色介绍"
|
:placeholder="$t('templateQuickConfig.agentSettings.systemPromptPlaceholder')"
|
||||||
:validate-event="false"
|
:validate-event="false"
|
||||||
show-word-limit
|
show-word-limit
|
||||||
maxlength="2000"
|
maxlength="2000"
|
||||||
|
|||||||
Reference in New Issue
Block a user