diff --git a/main/manager-web/src/components/CustomButton.vue b/main/manager-web/src/components/CustomButton.vue index fa87dcf3..f66359bd 100644 --- a/main/manager-web/src/components/CustomButton.vue +++ b/main/manager-web/src/components/CustomButton.vue @@ -31,6 +31,7 @@ export default { transition: all 0.3s ease; &.el-button--small { + padding: 10px; font-size: 14px; } &.el-button--medium { @@ -91,7 +92,7 @@ export default { .custom-button--delete { width: fit-content; - background: linear-gradient(to right, #ff6b6b, #ff8e8e); + background: #ff6b6b; color: white; border: none; border-radius: 6px; diff --git a/main/manager-web/src/components/CustomTable.vue b/main/manager-web/src/components/CustomTable.vue index ffd9cc0b..d64d775c 100644 --- a/main/manager-web/src/components/CustomTable.vue +++ b/main/manager-web/src/components/CustomTable.vue @@ -1,6 +1,6 @@ - \ No newline at end of file + diff --git a/main/manager-web/src/components/DictTypeDialog.vue b/main/manager-web/src/components/DictTypeDialog.vue index d04304d3..9e7ece31 100644 --- a/main/manager-web/src/components/DictTypeDialog.vue +++ b/main/manager-web/src/components/DictTypeDialog.vue @@ -1,97 +1,94 @@ - - \ No newline at end of file diff --git a/main/manager-web/src/components/ReplacementWordDialog.vue b/main/manager-web/src/components/ReplacementWordDialog.vue index 2a38885e..5b536f47 100644 --- a/main/manager-web/src/components/ReplacementWordDialog.vue +++ b/main/manager-web/src/components/ReplacementWordDialog.vue @@ -1,76 +1,67 @@ - - diff --git a/main/manager-web/src/i18n/de.js b/main/manager-web/src/i18n/de.js index d663eecc..4b39caba 100644 --- a/main/manager-web/src/i18n/de.js +++ b/main/manager-web/src/i18n/de.js @@ -352,6 +352,8 @@ export default { // Replacement word management page related 'replacementWordManagement.pageTitle': 'Ersetzungswortverwaltung', + 'replacementWordManagement.searchPlaceholder': 'Bitte geben Sie den Dateinamen zur Suche ein', + 'replacementWordManagement.search': 'Suchen', 'replacementWordManagement.fileName': 'Dateiname', 'replacementWordManagement.replacementWordCount': 'Anzahl der Ersetzungswörter', 'replacementWordManagement.replacementWordContent': 'Ersetzungswortinhalt', @@ -706,6 +708,9 @@ export default { 'common.cancel': 'Abbrechen', 'common.sensitive': 'Sensibel', 'common.loading': 'Lädt', + 'common.copySuccess': 'Erfolgreich kopiert', + 'common.copyFailed': 'Kopieren fehlgeschlagen', + 'common.copyAddress': 'Adresse kopieren', // Language switch 'language.zhCN': '中文简体', diff --git a/main/manager-web/src/i18n/en.js b/main/manager-web/src/i18n/en.js index e4a4250f..d526d266 100644 --- a/main/manager-web/src/i18n/en.js +++ b/main/manager-web/src/i18n/en.js @@ -352,6 +352,8 @@ export default { // Replacement word management page related 'replacementWordManagement.pageTitle': 'Replacement Word Management', + 'replacementWordManagement.searchPlaceholder': 'Please enter file name to search', + 'replacementWordManagement.search': 'Search', 'replacementWordManagement.fileName': 'File Name', 'replacementWordManagement.replacementWordCount': 'Replacement Word Count', 'replacementWordManagement.replacementWordContent': 'Replacement Word Content', @@ -706,6 +708,9 @@ export default { 'common.cancel': 'Cancel', 'common.sensitive': 'Sensitive', 'common.loading': 'Loading', + 'common.copySuccess': 'Copy successful', + 'common.copyFailed': 'Copy failed', + 'common.copyAddress': 'Copy address', // Language switch 'language.zhCN': '中文简体', diff --git a/main/manager-web/src/i18n/pt_BR.js b/main/manager-web/src/i18n/pt_BR.js index f554570e..0212bbe3 100644 --- a/main/manager-web/src/i18n/pt_BR.js +++ b/main/manager-web/src/i18n/pt_BR.js @@ -352,6 +352,8 @@ export default { // Replacement word management page related 'replacementWordManagement.pageTitle': 'Gerenciamento de Palavras de Substituição', + 'replacementWordManagement.searchPlaceholder': 'Digite o nome do arquivo para pesquisar', + 'replacementWordManagement.search': 'Pesquisar', 'replacementWordManagement.fileName': 'Nome do Arquivo', 'replacementWordManagement.replacementWordCount': 'Quantidade de Palavras de Substituição', 'replacementWordManagement.replacementWordContent': 'Conteúdo Substituto', @@ -706,6 +708,9 @@ export default { 'common.cancel': 'Cancelar', 'common.sensitive': 'Sensível', 'common.loading': 'Carregando', + 'common.copySuccess': 'Cópia bem-sucedida', + 'common.copyFailed': 'Falha ao copiar', + 'common.copyAddress': 'Copiar endereço', // Troca de idioma 'language.zhCN': '中文简体', diff --git a/main/manager-web/src/i18n/vi.js b/main/manager-web/src/i18n/vi.js index 0e0a5bf8..10e68c2c 100644 --- a/main/manager-web/src/i18n/vi.js +++ b/main/manager-web/src/i18n/vi.js @@ -352,6 +352,8 @@ export default { // Replacement word management page related 'replacementWordManagement.pageTitle': 'Quản lý từ thay thế', + 'replacementWordManagement.searchPlaceholder': 'Vui lòng nhập tên tệp để tìm kiếm', + 'replacementWordManagement.search': 'Tìm kiếm', 'replacementWordManagement.fileName': 'Tên tệp', 'replacementWordManagement.replacementWordCount': 'Số lượng từ thay thế', 'replacementWordManagement.replacementWordContent': 'Nội dung từ thay thế', @@ -706,6 +708,9 @@ export default { 'common.cancel': 'Hủy bỏ', 'common.sensitive': 'Nhạy cảm', 'common.loading': 'Đang tải', + 'common.copySuccess': 'Sao chép thành công', + 'common.copyFailed': 'Sao chép thất bại', + 'common.copyAddress': 'Sao chép địa chỉ', // Language switch 'language.zhCN': '中文简体', diff --git a/main/manager-web/src/i18n/zh_CN.js b/main/manager-web/src/i18n/zh_CN.js index 95b9b825..77e06bd4 100644 --- a/main/manager-web/src/i18n/zh_CN.js +++ b/main/manager-web/src/i18n/zh_CN.js @@ -352,6 +352,8 @@ export default { // 替换词对话框相关 'replacementWordManagement.pageTitle': '替换词管理', + 'replacementWordManagement.searchPlaceholder': '请输入文件名称查询', + 'replacementWordManagement.search': '搜索', 'replacementWordManagement.fileName': '文件名称', 'replacementWordManagement.replacementWordCount': '替换词数量', 'replacementWordManagement.replacementWordContent': '替换词内容', @@ -706,6 +708,9 @@ export default { 'common.cancel': '取消', 'common.sensitive': '敏感', 'common.loading': '加载中', + 'common.copySuccess': '复制成功', + 'common.copyFailed': '复制失败', + 'common.copyAddress': '复制地址', // 语言切换 'language.zhCN': '中文简体', diff --git a/main/manager-web/src/i18n/zh_TW.js b/main/manager-web/src/i18n/zh_TW.js index 1a696a82..7adcd8c2 100644 --- a/main/manager-web/src/i18n/zh_TW.js +++ b/main/manager-web/src/i18n/zh_TW.js @@ -352,6 +352,8 @@ export default { // 替換詞管理頁面相關 'replacementWordManagement.pageTitle': '替換詞管理', + 'replacementWordManagement.searchPlaceholder': '請輸入檔案名稱查詢', + 'replacementWordManagement.search': '搜尋', 'replacementWordManagement.fileName': '檔案名稱', 'replacementWordManagement.replacementWordCount': '替換詞數量', 'replacementWordManagement.replacementWordContent': '替換詞內容', @@ -706,6 +708,9 @@ export default { 'common.cancel': '取消', 'common.sensitive': '敏感', 'common.loading': '載入中', + 'common.copySuccess': '複製成功', + 'common.copyFailed': '複製失敗', + 'common.copyAddress': '複製地址', // 語言切換 'language.zhCN': '中文简体', diff --git a/main/manager-web/src/views/AgentTemplateManagement.vue b/main/manager-web/src/views/AgentTemplateManagement.vue index 19072276..272fb338 100644 --- a/main/manager-web/src/views/AgentTemplateManagement.vue +++ b/main/manager-web/src/views/AgentTemplateManagement.vue @@ -78,7 +78,7 @@ @confirm="handleDialogConfirm" @cancel="dialogVisible = false" > - + { + if (!valid) return; - this.confirmLoading = true; - const apiCall = this.form.id - ? agentApi.updateAgentTemplate - : agentApi.addAgentTemplate; + const configData = { + id: this.form.id || "", + agentCode: this.form.agentCode, + agentName: this.form.agentName, + systemPrompt: this.form.systemPrompt, + sort: this.form.sort, + functions: [], + ...this.form.model + }; + + this.confirmLoading = true; + const apiCall = this.form.id + ? agentApi.updateAgentTemplate + : agentApi.addAgentTemplate; apiCall(configData, (res) => { this.confirmLoading = false; @@ -297,6 +308,7 @@ export default { this.confirmLoading = false; this.$message.error(this.$t("common.networkError")); }); + }); }, deleteTemplate(row) { this.$confirm( diff --git a/main/manager-web/src/views/DictManagement.vue b/main/manager-web/src/views/DictManagement.vue index 490ba72f..4ebdadba 100644 --- a/main/manager-web/src/views/DictManagement.vue +++ b/main/manager-web/src/views/DictManagement.vue @@ -1,127 +1,95 @@ \ No newline at end of file + diff --git a/main/manager-web/src/views/ReplacementWordManagement.vue b/main/manager-web/src/views/ReplacementWordManagement.vue index 02fd5aed..718a2773 100644 --- a/main/manager-web/src/views/ReplacementWordManagement.vue +++ b/main/manager-web/src/views/ReplacementWordManagement.vue @@ -1,100 +1,89 @@ @@ -392,24 +393,23 @@ export default { } .main-wrapper { - height: calc(100vh - 63px - 35px - 72px); - margin: 0 22px; - border-radius: 15px; - box-shadow: 0 2px 12px rgba(0, 0, 0, 0.1); + height: calc(100vh - 63px - 35px); + padding: 20px 22px 0; position: relative; - background: rgba(237, 242, 255, 0.5); display: flex; flex-direction: column; + box-sizing: border-box; } -.operation-bar { +.operation-header { display: flex; - justify-content: space-between; align-items: center; - padding: 22px 24px; + justify-content: space-between; + padding: 0 0 16px 0; } .page-title { + font-weight: 500; font-size: 24px; margin: 0; } @@ -424,14 +424,7 @@ export default { width: 240px; } -.btn-search { - background: linear-gradient(135deg, #6b8cff, #a966ff); - border: none; - color: white; -} - .content-panel { - flex: 1; display: flex; overflow: hidden; height: 100%; @@ -460,7 +453,7 @@ export default { overflow: hidden; ::v-deep .el-card__body { - padding: 15px; + padding: 14px 20px; display: flex; flex-direction: column; flex: 1; @@ -468,185 +461,8 @@ export default { } } -.table_bottom { - display: flex; - justify-content: space-between; - align-items: center; - margin-top: 10px; -} - .ctrl_btn { display: flex; - gap: 8px; - padding-left: 26px; - - .el-button { - min-width: 72px; - height: 32px; - padding: 7px 12px 7px 10px; - font-size: 12px; - border-radius: 4px; - line-height: 1; - font-weight: 500; - border: none; - transition: all 0.3s ease; - box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1); - - &:hover { - transform: translateY(-1px); - box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15); - } - } - - .el-button--primary { - background: #5f70f3; - color: white; - } - - .el-button--danger { - background: #fd5b63; - color: white; - } -} - -.custom-pagination { - display: flex; - align-items: center; - gap: 10px; - - .el-select { - margin-right: 8px; - } - - .pagination-btn:first-child, - .pagination-btn:nth-child(2), - .pagination-btn:nth-last-child(2), - .pagination-btn:nth-child(3) { - min-width: 60px; - height: 32px; - padding: 0 12px; - border-radius: 4px; - border: 1px solid #e4e7ed; - background: #dee7ff; - color: #606266; - font-size: 14px; - cursor: pointer; - transition: all 0.3s ease; - - &:hover { - background: #d7dce6; - } - - &:disabled { - opacity: 0.6; - cursor: not-allowed; - } - } - - .pagination-btn:not(:first-child):not(:nth-child(3)):not(:nth-child(2)):not(:nth-last-child(2)) { - min-width: 28px; - height: 32px; - padding: 0; - border-radius: 4px; - border: 1px solid transparent; - background: transparent; - color: #606266; - font-size: 14px; - cursor: pointer; - transition: all 0.3s ease; - - &:hover { - background: rgba(245, 247, 250, 0.3); - } - } - - .pagination-btn.active { - background: #5f70f3 !important; - color: #ffffff !important; - border-color: #5f70f3 !important; - - &:hover { - background: #6d7cf5 !important; - } - } - - .total-text { - color: #909399; - font-size: 14px; - margin-left: 10px; - } -} - -:deep(.transparent-table) { - background: white; - flex: 1; - width: 100%; - display: flex; - flex-direction: column; - - .el-table__body-wrapper { - flex: 1; - overflow-y: auto; - max-height: none !important; - } - - .el-table__header-wrapper { - flex-shrink: 0; - } - - .el-table__header th { - background: white !important; - color: black; - } - - &::before { - display: none; - } - - .el-table__body tr { - background-color: white; - - td { - border-top: 1px solid rgba(0, 0, 0, 0.04); - border-bottom: 1px solid rgba(0, 0, 0, 0.04); - } - } -} - -:deep(.el-checkbox__inner) { - background-color: #ffffff !important; - border-color: #cccccc !important; -} - -:deep(.el-checkbox__inner:hover) { - border-color: #cccccc !important; -} - -:deep(.el-checkbox__input.is-checked .el-checkbox__inner) { - background-color: #5f70f3 !important; - border-color: #5f70f3 !important; -} - -@media (min-width: 1144px) { - .table_bottom { - display: flex; - justify-content: space-between; - align-items: center; - margin-top: 40px; - } - - :deep(.transparent-table) { - .el-table__body tr { - td { - padding-top: 16px; - padding-bottom: 16px; - } - - &+tr { - margin-top: 10px; - } - } - } } :deep(.el-table .el-button--text) { @@ -657,16 +473,7 @@ export default { color: #5a64b5; } -.el-button--success { - background: #5bc98c; - color: white; -} - :deep(.el-table .cell) { - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - .content-text { display: block; max-width: 300px; @@ -676,64 +483,6 @@ export default { } } -.page-size-select { - width: 100px; - margin-right: 10px; - - :deep(.el-input__inner) { - height: 32px; - line-height: 32px; - border-radius: 4px; - border: 1px solid #e4e7ed; - background: #dee7ff; - color: #606266; - font-size: 14px; - } - - :deep(.el-input__suffix) { - right: 6px; - width: 15px; - height: 20px; - display: flex; - justify-content: center; - align-items: center; - top: 6px; - border-radius: 4px; - } - - :deep(.el-input__suffix-inner) { - display: flex; - align-items: center; - justify-content: center; - width: 100%; - } - - :deep(.el-icon-arrow-up:before) { - content: ""; - display: inline-block; - border-left: 6px solid transparent; - border-right: 6px solid transparent; - border-top: 9px solid #606266; - position: relative; - transform: rotate(0deg); - transition: transform 0.3s; - } -} - -:deep(.el-table) { - .el-table__body-wrapper { - transition: height 0.3s ease; - } -} - -.el-table { - max-height: var(--table-max-height); - - .el-table__body-wrapper { - max-height: calc(var(--table-max-height) - 40px); - overflow-y: auto; - } -} .custom-tag { background: #e6ebff; color: #5778ff; diff --git a/main/manager-web/src/views/ServerSideManager.vue b/main/manager-web/src/views/ServerSideManager.vue index 908b5899..a73076c3 100644 --- a/main/manager-web/src/views/ServerSideManager.vue +++ b/main/manager-web/src/views/ServerSideManager.vue @@ -1,38 +1,37 @@