From fd10dd061b41d0ba3d0ef43acb47069267f273e8 Mon Sep 17 00:00:00 2001 From: wenjinbo <599483010@qq.com> Date: Mon, 21 Jul 2025 17:39:30 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=89=8D=E7=AB=AF=E5=90=AF?= =?UTF-8?q?=E5=8A=A8=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- chat-client/.env.development | 8 +- chat-client/.env.production | 10 +- chat-client/src/locales/en.ts | 273 ++++++-- chat-client/src/locales/zh-TW.ts | 273 ++++++-- chat-client/src/locales/zh.ts | 280 ++++++-- .../views/chatweb/historicalRecords/index.vue | 647 +++++++++--------- .../datasets/components/DocumentList.vue | 6 +- .../datasetManage/components/datasetBind.vue | 45 +- .../views/permission/datasetManage/index.vue | 92 +-- .../src/views/permission/dicManage/index.vue | 88 +-- .../src/views/permission/keysManage/index.vue | 124 ++-- 11 files changed, 1180 insertions(+), 666 deletions(-) diff --git a/chat-client/.env.development b/chat-client/.env.development index 5234d76..0d5dbf3 100644 --- a/chat-client/.env.development +++ b/chat-client/.env.development @@ -5,11 +5,11 @@ NODE_ENV=development # VUE_APP_BASE_URL='http://localhost:10001' # VUE_APP_API_BASE_URL='http://localhost:8080' #北京服务器配置 -# VUE_APP_BASE_URL='http://192.168.1.211:80/brichat' -# VUE_APP_API_BASE_URL='http://192.168.1.211:80/brichat' +VUE_APP_BASE_URL='http://192.168.1.211:80/brichat' +VUE_APP_API_BASE_URL='http://192.168.1.211:80/brichat' #武汉公司服务器 -VUE_APP_BASE_URL='http://192.168.8.253:80/brichat' -VUE_APP_API_BASE_URL='http://192.168.8.253:80/brichat' +# VUE_APP_BASE_URL='http://192.168.8.253:80/brichat' +# VUE_APP_API_BASE_URL='http://192.168.8.253:80/brichat' #总部服务器配置 # VUE_APP_BASE_URL='http://192.168.0.33:80/brichat' # VUE_APP_API_BASE_URL='http://192.168.0.33:80/brichat' diff --git a/chat-client/.env.production b/chat-client/.env.production index 95cab60..ae24305 100644 --- a/chat-client/.env.production +++ b/chat-client/.env.production @@ -5,11 +5,11 @@ NODE_ENV=production # VUE_APP_BASE_URL='http://localhost:10001' # VUE_APP_API_BASE_URL='http://localhost:10001' #北京服务器 -# VUE_APP_BASE_URL='http://192.168.1.211:80/brichat' -# VUE_APP_API_BASE_URL='http://192.168.1.211:80/brichat' +VUE_APP_BASE_URL='http://192.168.1.211:80/brichat' +VUE_APP_API_BASE_URL='http://192.168.1.211:80/brichat' #武汉公司服务器 -VUE_APP_BASE_URL='http://192.168.8.253:80/brichat' -VUE_APP_API_BASE_URL='http://192.168.8.253:80/brichat' -#总部服务器 +# VUE_APP_BASE_URL='http://192.168.8.253:80/brichat' +# VUE_APP_API_BASE_URL='http://192.168.8.253:80/brichat' +# 总部服务器 # VUE_APP_BASE_URL='http://192.168.0.33:80/brichat' # VUE_APP_API_BASE_URL='http://192.168.0.33:80/brichat' \ No newline at end of file diff --git a/chat-client/src/locales/en.ts b/chat-client/src/locales/en.ts index 303ee95..abb54b4 100644 --- a/chat-client/src/locales/en.ts +++ b/chat-client/src/locales/en.ts @@ -1,5 +1,8 @@ +import { add } from 'lodash' +import { editDept } from '../api/departmentManagement' + export default { - vabI18n:{ + vabI18n: { role: { index: 'Index', name: 'Username', @@ -27,9 +30,9 @@ export default { edit: 'Edit', delete: 'Delete', stopGenerating: 'Stop Generating', - placeEnter:'Please enter your question...', - placeEnterChart:'Please enter your question...', - placeEnterDiag:'Please enter your question...', + placeEnter: 'Please enter your question...', + placeEnterChart: 'Please enter your question...', + placeEnterDiag: 'Please enter your question...', placeholder: 'Enter your message...', you: 'You', assistant: 'AI Assistant', @@ -42,8 +45,8 @@ export default { think: 'Thought Process', like: 'Like', dislike: 'Dislike', - cancel:'Cancel', - send:'Send', + cancel: 'Cancel', + send: 'Send', }, personal: { title: 'Personal Center', @@ -99,11 +102,11 @@ export default { confirmNewPasswordPlaceholder: 'Please re-enter new password', changePasswordDialogTitle: 'Change Password', pleaseConfirmNewPassword: 'Please confirm the new password', - passwordNoEqual:'Entered passwords differ!', + passwordNoEqual: 'Entered passwords differ!', }, HistoryRecords: { queryTime: 'Question Time:', - range:'to', + range: 'to', chatType: 'Chat Type', chatTypePlaceholder: 'Please select chat type', keyword: 'Keyword', @@ -152,7 +155,7 @@ export default { }, HistoryDetails: { title: 'Conversation Details', - count:'', + count: '', messageCount: ' messages', exportMarkdown: 'Export as Markdown', user: 'User', @@ -172,11 +175,11 @@ export default { scopeOptions: { noFrozen: 'Only active users', onlyFrozen: 'Only frozen users', - all: 'All users' + all: 'All users', }, searchButton: 'Search', addButton: 'Add', - deleteButton: 'Delete' + deleteButton: 'Delete', }, table: { serialNumber: 'No.', @@ -194,12 +197,12 @@ export default { operations: 'Operations', edit: 'Edit', delete: 'Delete', - noData: 'No data' + noData: 'No data', }, confirm: { deleteSingle: 'Are you sure to delete this item?', deleteMultiple: 'Are you sure to delete selected items?', - noSelection: 'No rows selected' + noSelection: 'No rows selected', }, message: { deleteSuccess: 'Delete successfully', @@ -207,26 +210,26 @@ export default { getRolesSuccess: 'Get role list successfully', getRolesFailed: 'Failed to get role list', getDeptFailed: 'Failed to get department', - getAuxFailed: 'Failed to get additional columns' - } + getAuxFailed: 'Failed to get additional columns', + }, }, knowledge: { title: 'My Knowledge Base has ', - titleEnd:' items', + titleEnd: ' items', newBtn: 'New Knowledge Base', empty: 'No knowledge base data', loading: 'Loading...', error: 'Failed to get knowledge base information, please check your network connection and try again', - + card: { noDescription: 'No description', docCount: 'Documents', wordCount: 'Words', createTime: 'Created: ', updateTime: 'Updated: ', - unknownTime: '--' + unknownTime: '--', }, - + dialog: { createTitle: 'Create Knowledge Base', editTitle: 'Edit Knowledge Base', @@ -239,26 +242,26 @@ export default { createSuccess: 'Created successfully', createFail: 'Created failed', updateSuccess: 'Updated successfully', - updateFail:'Updated failed', + updateFail: 'Updated failed', deleteSuccess: 'Deleted successfully', deleteFail: 'Delete failed', - + rules: { nameRequired: 'Please enter name', - nameMaxLength: 'Name cannot exceed 50 characters' - } + nameMaxLength: 'Name cannot exceed 50 characters', + }, }, - + dropdown: { edit: 'Edit', - delete: 'Delete' + delete: 'Delete', }, - + deleteConfirm: { title: 'Confirm Deletion', message: 'Are you sure to delete this knowledge base? All related documents will be cleared', confirm: 'Confirm', - cancel: 'Cancel' + cancel: 'Cancel', }, document: { title: 'Document Management', @@ -266,7 +269,7 @@ export default { title: '{name}', description: 'Dataset Document Management - ', descriptionEnd: ' file in total', - descriptionEnds: ' files in total' + descriptionEnds: ' files in total', }, table: { index: 'No.', @@ -279,45 +282,46 @@ export default { available: 'Available', indexing: 'Indexing', error: 'Error', - unknown: 'Unknown' - } + unknown: 'Unknown', + }, }, buttons: { search: 'Search', refresh: 'Refresh', upload: 'Upload', batchDelete: 'Batch Delete ', - batchDeleteConfrim:'Batch Delete Confirm', + batchDeleteConfrim: 'Batch Delete Confirm', preview: 'Preview', download: 'Download', rename: 'Rename', - delete: 'Delete' + delete: 'Delete', }, search: { - placeholder: 'Enter keywords to search' + placeholder: 'Enter keywords to search', }, uploadDialog: { title: 'Upload Files', indexingTechnique: 'Indexing Technique', indexingOptions: { highQuality: 'High Quality', - economy: 'Economy' + economy: 'Economy', }, preProcessingRules: 'Pre-processing Rules', ruleOptions: { removeSpaces: 'Remove extra spaces', - removeUrls: 'Remove URLs/Emails' + removeUrls: 'Remove URLs/Emails', }, segmentation: 'Segmentation Rules', separatorPlaceholder: 'Separator (default: ###)', maxTokens: 'Max Tokens', - selectFile:'Select the file', - fileTip: 'Multiple selection supported, max 100MB per file. Accepted formats: TXT, MD, MARKDOWN, MDX, PDF, HTML, HTM, XLSX, XLS, DOCX, CSV, VTT, PROPERTIES', + selectFile: 'Select the file', + fileTip: + 'Multiple selection supported, max 100MB per file. Accepted formats: TXT, MD, MARKDOWN, MDX, PDF, HTML, HTM, XLSX, XLS, DOCX, CSV, VTT, PROPERTIES', cancel: 'Cancel', - upload: 'Start Upload' + upload: 'Start Upload', }, preview: { - title: 'File Preview' + title: 'File Preview', }, renameDialog: { title: 'Rename File', @@ -325,27 +329,27 @@ export default { placeholder: 'Enter new file name', cancel: 'Cancel', confirm: 'Confirm', - deleteconfirm:'Delete Confirm', + deleteconfirm: 'Delete Confirm', }, messages: { - FilenamecantEmpty:'Filename cannot be empty', - uploadSuccess:'Upload successfully', + FilenamecantEmpty: 'Filename cannot be empty', + uploadSuccess: 'Upload successfully', deleteConfirm: 'Are you sure to delete this file? This action cannot be undone!', batchDeleteConfirm: 'Are you sure to delete selected ', - batchDeleteConfirmEnd:' files? This action cannot be undone!', + batchDeleteConfirmEnd: ' files? This action cannot be undone!', deleteSuccess: 'File ', deleteSuccessEnd: ' has been deleted', - deleteing:'Deleting...', - deleteSuccessOk:'Delete success', + deleteing: 'Deleting...', + deleteSuccessOk: 'Delete success', batchDeleteSuccess: 'Successfully deleted {count} files', uploadSuccessEnd: ' files processed successfully', renameSuccess: 'File renamed successfully', noFileSelected: 'Please select files to delete', noUploadFile: 'Please select at least one file', loading: 'Loading...', - NoKnowError:'Unknown error', - getFileContentFailed:'Failed to get file content', - uploadLoading:'Uploading...' + NoKnowError: 'Unknown error', + getFileContentFailed: 'Failed to get file content', + uploadLoading: 'Uploading...', }, errors: { deleteFailed: 'Delete failed: ', @@ -354,9 +358,170 @@ export default { renameFailed: 'Rename failed: ', fetchFailed: 'Failed to get document list: ', previewFailed: 'Preview failed: ', - downloadFailed: 'Download failed: ' - } - } - } - } -} \ No newline at end of file + downloadFailed: 'Download failed: ', + }, + }, + }, + KnowledgeManagement: { + query: { + nameFilter: 'Registration Name/Name', + deptFilter: 'Select Department', + roleFilter: 'Select Role', + search: 'Search', + add: 'Add', + }, + table: { + noData: 'No Data', + operation: 'Operation', + bindDataset: 'Bind Knowledge Base', + columns: { + index: 'Index', + name: 'Registration Name', + displayName: 'Name', + department: 'Department', + roles: 'Roles', + datasets: 'Knowledge Base', + }, + }, + pagination: { + pageSize: 'Page Size', + total: 'Total', + }, + filter: { + tableFields: 'Table Field Filter & Sort', + }, + fullscreen: 'Fullscreen', + collapseQuery: 'Collapse Query Area', + expandQuery: 'Expand Query Area', + addUser: 'Add User', + deleteUser: 'Delete User', + confirmDelete: 'Are you sure you want to delete?', + errorFetchingData: 'Error fetching data', + message: { + getRolesSuccess: 'Get role list success', + getRolesFailed: 'Get role list failed', + getDeptsFailed: 'Get department list failed', + }, + bindDataset: { + title: 'Bind Knowledge Base', + user: 'User', + boundDatasets: 'Bound Knowledge', + addDatasets: 'Add Knowledge', + selectDatasets: 'Please select the knowledge bases to bind', + removeDataset: 'Remove Knowledge Base', + cancel: 'Cancel', + confirm: 'Confirm', + pleaseSelect: 'Please select the knowledge bases to bind', + bindSuccess: 'Bind successful', + unbindSuccess: 'Unbind successful', + bindFail: 'Binding failed', + unbindFail: 'Unbinding failed', + fetchFail: 'Failed to fetch dataset list', + }, + }, + DictionaryManagement: { + add: 'Add', + index: 'Index', + addDic: 'Add Dictionary Category', + addDicDetail: 'Add Dictionary Detail', + editDic: 'Edit Dictionary', + dictionaryKey: 'Dictionary Key', + dictionaryValue: 'Dictionary Value', + parentDictionary: 'Parent Dictionary', + remark: 'Remark', + allow: 'Allow', + notAllow: 'Not Allow', + operation: 'Operation', + confirm: 'Confirm', + cancel: 'Cancel', + pleaseEnterRemark: 'Please Enter Remark', + editable: 'Editable', + edit: 'Edit', + delete: 'Delete', + searchPlaceholder: 'Please enter dictionary name', + noData: 'No data', + dialogTitleAdd: 'Add Dictionary', + dialogTitleEdit: 'Edit Dictionary', + confirmDelete: 'Are you sure you want to delete this dictionary item?', + deleteSuccess: 'Delete successful', + deleteFail: 'Delete failed', + saveSuccess: 'Save successful', + saveFail: 'Save failed', + batchDeleteSuccess: 'Batch delete successful', + batchDeleteFail: 'Batch delete failed', + refreshCache: 'Refresh Cache', + refreshCacheSuccess: 'Cache refreshed successfully', + refreshCacheFail: 'Cache refresh failed', + dictionaryCategory: 'Dictionary Category', + dictionaryKeyError: 'Please enter a dictionary key', + dictionaryValueError: 'Please enter a dictionary value', + selecteditable: 'Please select whether it is editable', + parentDictionaryError: 'Please select a parent dictionary(leave blank for root node)', + numberdescription: 'The numerical value in parentheses is the ID value', + diclengtherror: 'Dictionary key length cannot exceed 50 characters', + dicvalueerror: 'Dictionary value length cannot exceed 50 characters', + alldic: 'All dictionaries', + getdicfail: 'Failed to get dictionary data', + getdicTreefail: 'Failed to get dictionary tree data', + rootNode: 'Root node', + selectDicCate: 'Please select a dictionary category first', + updateFail: 'Update failed', + addFail: 'Add failed', + }, + ApiKeyManagement: { + searchPlaceholder: 'Please enter the API key name', + enterApiValue: 'Please enter the API key value', + createBy: 'Created By', + placeCreateby: 'Please enter the creator', + search: 'Search', + index: 'Index', + createTime: 'Creation Time', + updateBy: 'Updated By', + updateTime: 'Update Time', + edit: 'Edit', + delete: 'Delete', + add: 'Add', + batchDelete: 'Batch Delete', + refreshCache: 'Refresh Cache', + copy: 'Copy', + noData: 'No Data', + dialogTitleAdd: 'Add API Key', + dialogTitleEdit: 'Edit API Key', + confirmDelete: 'Are you sure you want to delete this API key?', + deleteSuccess: 'Delete Successful', + deleteFail: 'Delete Failed', + saveSuccess: 'Save Successful', + saveFail: 'Save Failed', + batchDeleteSuccess: 'Batch Delete Successful', + batchDeleteFail: 'Batch Delete Failed', + dictionaryKey: 'API Key Name', + dictionaryValue: 'API Key Value', + show: 'Show', + hide: 'Hide', + operation: 'Operation', + remark: 'Remark', + enterRemark: 'Please enter the remark', + maskValue: '******', + confirm: 'Confirm', + cancel: 'Cancel', + refreshCacheSuccess: 'Cache refreshed successfully', + refreshCacheFail: 'Cache refresh failed', + copySuccess: 'Copied Successfully', + copyFail: 'Copy Failed', + dictionaryKeyLength: 'API Key Name length must be between 1 and 255 characters', + dictionaryValueLength: 'API Key Value length must be between 1 and 255 characters', + getApiKeysFail: 'Get API Key List Failed', + confirmDeleteApiKey: 'This operation will permanently delete the API key, are you sure?', + Tip: 'Tip', + selectDeleteData: 'Please select the data to be deleted', + confirmDeleteApiKeys: 'This operation will permanently delete selected ', + confirmDeleteApiKeysEnd:' API key, are you sure?', + confirmDeleteApiKeysEndPlural:' API keys, are you sure?', + confirmRefreshCache: 'This operation will refresh Redis cache, reloading all API keys, are you sure?', + updateSuccess: 'Update Successfully', + updateFail: 'Update Failed', + addSuccess: 'Add Successfully', + addFail:'Add Failed' + }, + }, +} diff --git a/chat-client/src/locales/zh-TW.ts b/chat-client/src/locales/zh-TW.ts index 8928805..10ac3a3 100644 --- a/chat-client/src/locales/zh-TW.ts +++ b/chat-client/src/locales/zh-TW.ts @@ -27,9 +27,9 @@ export default { edit: '編輯', delete: '刪除', stopGenerating: '停止生成', - placeEnter:'輸入您的問題...', - placeEnterChart:'請輸入您的圖表報告問題...', - placeEnterDiag:'請輸入您的診斷代碼查詢問題...', + placeEnter: '輸入您的問題...', + placeEnterChart: '請輸入您的圖表報告問題...', + placeEnterDiag: '請輸入您的診斷代碼查詢問題...', placeholder: '請輸入消息內容...', you: '你', assistant: 'AI助手', @@ -42,8 +42,8 @@ export default { think: '思考過程', like: '讚', dislike: '踩', - cancel:'取消', - send:'發送', + cancel: '取消', + send: '發送', }, personal: { title: '個人中心', @@ -100,11 +100,11 @@ export default { confirmNewPasswordPlaceholder: '請再次輸入新密碼', changePasswordDialogTitle: '修改密碼', pleaseConfirmNewPassword: '請確認新密碼', - passwordNoEqual:'兩次輸入的密碼不一致', + passwordNoEqual: '兩次輸入的密碼不一致', }, HistoryRecords: { queryTime: '提問時間:', - range:'至', + range: '至', chatType: '聊天類型', chatTypePlaceholder: '請選擇聊天類型', keyword: '問題關鍵字', @@ -153,7 +153,7 @@ export default { }, HistoryDetails: { title: '會話詳情', - count:'共', + count: '共', messageCount: ' 條對話', exportMarkdown: '匯出為 Markdown', user: '使用者', @@ -161,7 +161,7 @@ export default { thinking: '思考過程', expand: '展開', collapse: '收起', - } + }, }, userManagement: { title: '用戶管理', @@ -173,11 +173,11 @@ export default { scopeOptions: { noFrozen: '只查詢未凍結人員', onlyFrozen: '只查詢已凍結人員', - all: '查詢全部人員' + all: '查詢全部人員', }, searchButton: '查詢', addButton: '添加', - deleteButton: '刪除' + deleteButton: '刪除', }, table: { serialNumber: '序號', @@ -195,12 +195,12 @@ export default { operations: '操作', edit: '修改', delete: '刪除', - noData: '暫無數據' + noData: '暫無數據', }, confirm: { deleteSingle: '你確定要刪除當前項嗎', deleteMultiple: '你確定要刪除選中項嗎', - noSelection: '未選中任何行' + noSelection: '未選中任何行', }, message: { deleteSuccess: '刪除成功', @@ -208,26 +208,26 @@ export default { getRolesSuccess: '獲取角色列表成功', getRolesFailed: '獲取角色列表失敗', getDeptFailed: '獲取組織失敗', - getAuxFailed: '附加信息列獲取失敗' - } + getAuxFailed: '附加信息列獲取失敗', + }, }, knowledge: { title: '我的知識庫(共 ', - titleEnd:' 個)', + titleEnd: ' 個)', newBtn: '新建知識庫', empty: '暫無知識庫數據', loading: '載入中...', error: '獲取知識庫信息失敗,請檢查網絡連接後重試', - + card: { noDescription: '暫無描述', docCount: '文檔數', wordCount: '字數', createTime: '創建時間:', updateTime: '更新時間:', - unknownTime: '--' + unknownTime: '--', }, - + dialog: { createTitle: '新建知識庫', editTitle: '編輯知識庫', @@ -240,26 +240,26 @@ export default { createSuccess: '創建成功', createFail: '創建失敗', updateSuccess: '更新成功', - updateFail:'更新失敗', + updateFail: '更新失敗', deleteSuccess: '刪除成功', deleteFail: '刪除失敗', - + rules: { nameRequired: '請輸入知識庫名稱', - nameMaxLength: '名稱長度不能超過50個字符' - } + nameMaxLength: '名稱長度不能超過50個字符', + }, }, - + dropdown: { edit: '編輯', - delete: '刪除' + delete: '刪除', }, - + deleteConfirm: { title: '刪除確認', message: '確定要刪除該知識庫嗎?所有關聯文檔將被清除', confirm: '確定', - cancel: '取消' + cancel: '取消', }, document: { title: '數據集文檔管理', @@ -267,7 +267,7 @@ export default { title: '{name}', description: '數據集文檔管理 - 共 ', descriptionEnd: ' 個文件', - descriptionEnds:' 個文件' + descriptionEnds: ' 個文件', }, table: { index: '序號', @@ -280,45 +280,45 @@ export default { available: '可用', indexing: '解析中', error: '解析失敗', - unknown: '未知狀態' - } + unknown: '未知狀態', + }, }, buttons: { search: '查詢', refresh: '刷新', upload: '上傳文件', batchDelete: '批量刪除 ', - batchDeleteConfrim:'批量刪除確認', + batchDeleteConfrim: '批量刪除確認', preview: '預覽', download: '下載', rename: '重命名', - delete: '刪除' + delete: '刪除', }, search: { - placeholder: '請輸入關鍵詞查詢' + placeholder: '請輸入關鍵詞查詢', }, uploadDialog: { title: '上傳文件', indexingTechnique: '索引方式', indexingOptions: { highQuality: '高質量', - economy: '經濟' + economy: '經濟', }, preProcessingRules: '預處理規則', ruleOptions: { removeSpaces: '移除多餘空格', - removeUrls: '移除URL/郵箱' + removeUrls: '移除URL/郵箱', }, segmentation: '分段規則', separatorPlaceholder: '分隔符(默認###)', maxTokens: '最大Token數', - selectFile:'選擇文件', + selectFile: '選擇文件', fileTip: '支持多選,單個文件不超過100MB,可接受格式:TXT、MD、MARKDOWN、MDX、PDF、HTML、HTM、XLSX、XLS、DOCX、CSV、VTT、PROPERTIES', cancel: '取消', - upload: '開始上傳' + upload: '開始上傳', }, preview: { - title: '文件預覽' + title: '文件預覽', }, renameDialog: { title: '重命名文件', @@ -326,28 +326,28 @@ export default { placeholder: '請輸入新的文件名', cancel: '取消', confirm: '確定', - deleteconfirm:'刪除確認' + deleteconfirm: '刪除確認', }, messages: { - FilenamecantEmpty:'文件名不能为空', - uploadSuccess:'上傳成功', + FilenamecantEmpty: '文件名不能为空', + uploadSuccess: '上傳成功', deleteConfirm: '確定要刪除該文件嗎?此操作不可恢復!', batchDeleteConfirm: '確定要刪除選中的 ', - batchDeleteConfirmEnd:' 個文件嗎?此操作不可恢復!', + batchDeleteConfirmEnd: ' 個文件嗎?此操作不可恢復!', deleteSuccess: '文件 ', - deleteSuccessEnd:' 已刪除', - deleteing:'刪除中...', - deleteSuccessOk:'刪除成功', + deleteSuccessEnd: ' 已刪除', + deleteing: '刪除中...', + deleteSuccessOk: '刪除成功', batchDeleteSuccess: '已成功刪除 ', - batchDeleteSuccessEnd:' 個文件', + batchDeleteSuccessEnd: ' 個文件', uploadSuccessEnd: ' 個文件已處理完成', renameSuccess: '文件已重命名', noFileSelected: '請選擇要刪除的文件', noUploadFile: '請選擇至少一個文件', loading: '載入中...', - NoKnowError:'未知錯誤', - getFileContentFailed:'獲取文件內容失敗', - uploadLoading:'文件上傳中...' + NoKnowError: '未知錯誤', + getFileContentFailed: '獲取文件內容失敗', + uploadLoading: '文件上傳中...', }, errors: { deleteFailed: '刪除失敗: ', @@ -356,9 +356,172 @@ export default { renameFailed: '重命名失敗: ', fetchFailed: '獲取文檔列表失敗: ', previewFailed: '預覽失敗: ', - downloadFailed: '下載失敗: ' - } - } - } - } -} \ No newline at end of file + downloadFailed: '下載失敗: ', + }, + }, + }, + KnowledgeManagement: { + query: { + nameFilter: '註冊名/姓名', + deptFilter: '請選擇組織', + roleFilter: '請選擇角色', + search: '查詢', + add: '添加', + }, + table: { + noData: '暫無資料', + operation: '操作', + bindDataset: '綁定知識庫', + columns: { + index: '序號', + name: '註冊名', + displayName: '姓名', + department: '組織', + roles: '角色', + datasets: '知識庫', + }, + }, + pagination: { + pageSize: '每頁條數', + total: '總數', + }, + filter: { + tableFields: '表格欄位過濾與排序', + }, + fullscreen: '全螢幕', + collapseQuery: '摺疊查詢區域', + expandQuery: '展開查詢區域', + addUser: '新增使用者', + deleteUser: '刪除使用者', + confirmDelete: '您確定要刪除嗎?', + errorFetchingData: '獲取資料失敗', + message: { + getRolesSuccess: '獲取角色列表成功', + getRolesFailed: '獲取角色列表失敗', + getDeptsFailed: '獲取組織列表失敗', + }, + bindDataset: { + title: '綁定知識庫', + user: '用戶', + boundDatasets: '已綁定知識庫', + addDatasets: '添加知識庫', + selectDatasets: '請選擇要綁定的知識庫', + removeDataset: '移除知識庫', + cancel: '取 消', + confirm: '確 定', + pleaseSelect: '請選擇要綁定的知識庫', + bindSuccess: '綁定成功', + unbindSuccess: '解绑成功', + bindFail: '綁定失敗', + unbindFail: '解绑失敗', + fetchFail: '獲取知識庫列表失敗', + }, + }, + + DictionaryManagement: { + add: '添加', + index: '序號', + addDic: '添加字典分類', + addDicDetail: '添加字典詳細', + editDic: '編輯字典', + dictionaryKey: '字典鍵', + dictionaryValue: '字典值', + parentDictionary: '父級字典', + remark: '備註', + pleaseEnterRemark: '請輸入備註', + editable: '是否可編輯', + allow: '允許', + notAllow: '不允許', + operation: '操作', + confirm: '確定', + cancel: '取消', + edit: '修改', + delete: '刪除', + searchPlaceholder: '請輸入字典名稱', + noData: '暫無資料', + dialogTitleAdd: '新增字典', + dialogTitleEdit: '編輯字典', + confirmDelete: '確定要刪除此字典項嗎?', + deleteSuccess: '刪除成功', + deleteFail: '刪除失敗', + saveSuccess: '保存成功', + saveFail: '保存失敗', + batchDeleteSuccess: '批量刪除成功', + batchDeleteFail: '批量刪除失敗', + refreshCache: '刷新快取', + refreshCacheSuccess: '快取刷新成功', + refreshCacheFail: '快取刷新失敗', + dictionaryCategory: '字典分類', + dictionaryKeyError: '請輸入字典鍵', + dictionaryValueError: '請輸入字典值', + selecteditable: '請選擇是否可編輯', + parentDictionaryError: '請選擇父級字典(留空表示根節點)', + numberdescription: '括號內數值爲ID值', + diclengtherror: '字典鍵長度不能超過50個字符', + dicvalueerror: '字典值長度不能超過50個字符', + alldic: '全部字典', + getdicfail: '獲取字典數據失敗', + getdicTreefail: '獲取字典樹數據失敗', + rootNode: '根節點', + selectDicCate: '請先選擇字典分類', + updateFail: '更新失敗', + addFail: '添加失敗', + }, + ApiKeyManagement: { + searchPlaceholder: '請輸入密鑰名稱', + enterApiValue: '請輸入密鑰值', + createBy: '創建人', + placeCreateby: '請輸入創建人', + search:'查詢', + index: '序號', + createTime: '創建時間', + updateBy: '更新人', + updateTime: '更新時間', + edit: '編輯', + delete: '刪除', + + add: '新增', + batchDelete: '批量刪除', + refreshCache: '刷新快取', + noData: '暫無資料', + dialogTitleAdd: '新增API密鑰', + dialogTitleEdit: '編輯API密鑰', + confirmDelete: '確定要刪除此API密鑰嗎?', + deleteSuccess: '刪除成功', + deleteFail: '刪除失敗', + saveSuccess: '保存成功', + saveFail: '保存失敗', + batchDeleteSuccess: '批量刪除成功', + batchDeleteFail: '批量刪除失敗', + dictionaryKey: '密鑰名稱', + dictionaryValue: '密鑰值', + show:'顯示', + hide:'隱藏', + operation: '操作', + remark: '備註', + enterRemark: '請輸入備註信息', + maskValue: '******', + confirm: '確定', + cancel: '取消', + refreshCacheSuccess: '快取刷新成功', + refreshCacheFail: '快取刷新失敗', + copySuccess: '複製成功', + copyFail: '複製失敗', + copy:'複製', + dictionaryKeyLength: '密鑰名稱長度在 1 到 255 個字符', + dictionaryValueLength: '密鑰值長度在 1 到 255 個字符', + getApiKeysFail: '获取API密鑰列表失败', + confirmDeleteApiKey: '此操作将永久删除该API密鑰,是否继续?', + Tip: '提示', + selectDeleteData: '請選擇要刪除的數據', + confirmDeleteApiKeys: '此操作將永久删除选中的 ', + confirmDeleteApiKeysEnd:' 條API密鑰,是否繼續?', + confirmDeleteApiKeysEndPlural:' 條API密鑰,是否繼續?', + confirmRefreshCache: '此操作將刷新Redis缓存,重新加载所有API密鑰,是否繼續?', + updateSuccess: '更新成功', + updateFail:'更新失敗', + addSuccess:'新增成功', + addFail:'新增失敗', + }, + }, +} diff --git a/chat-client/src/locales/zh.ts b/chat-client/src/locales/zh.ts index 8691e3c..7af731b 100644 --- a/chat-client/src/locales/zh.ts +++ b/chat-client/src/locales/zh.ts @@ -1,5 +1,5 @@ export default { - vabI18n:{ + vabI18n: { role: { index: '序号', name: '注册名', @@ -27,9 +27,9 @@ export default { edit: '编辑', delete: '删除', stopGenerating: '停止生成', - placeEnter:'输入您的问题...', - placeEnterChart:'请输入您的图表报告问题...', - placeEnterDiag:'请输入您的诊断代码查询问题...', + placeEnter: '输入您的问题...', + placeEnterChart: '请输入您的图表报告问题...', + placeEnterDiag: '请输入您的诊断代码查询问题...', placeholder: '请输入消息内容...', you: '你', assistant: 'AI助手', @@ -42,8 +42,8 @@ export default { think: '思考过程', like: '赞', dislike: '踩', - cancel:'取消', - send:'发送', + cancel: '取消', + send: '发送', }, personal: { title: '个人中心', @@ -94,26 +94,26 @@ export default { oldPassword: '原始密码', newPassword: '新密码', confirmNewPassword: '确认新密码', - + oldPasswordPlaceholder: '请输入原始密码', newPasswordPlaceholder: '请输入新密码', newPasswordPermission: '密码长度不能少于6位', confirmNewPasswordPlaceholder: '请再次输入新密码', changePasswordDialogTitle: '修改密码', pleaseConfirmNewPassword: '请确认新密码', - passwordNoEqual:'两次输入的密码不一致', - departmentGetFail:'获取组织失败', - roleListGetOk:'获取角色列表成功', - roleListGetFail:'获取角色失败', + passwordNoEqual: '两次输入的密码不一致', + departmentGetFail: '获取组织失败', + roleListGetOk: '获取角色列表成功', + roleListGetFail: '获取角色失败', resetPasswordDialogTitle: '重置密码', resetPasswordSuccess: '重置密码成功', resetPasswordFail: '重置密码失败', resetPasswordConfirm: '确认将该用户密码重置吗?', - resetPasswordFailCheck: '重设密码失败,请检查原密码!' + resetPasswordFailCheck: '重设密码失败,请检查原密码!', }, HistoryRecords: { queryTime: '提问时间:', - range:'至', + range: '至', chatType: '聊天类型', chatTypePlaceholder: '请选择聊天类型', keyword: '问题关键字', @@ -148,7 +148,7 @@ export default { buttons: { view: '查看', delete: '删除', - confirm: '确认', + confirm: '确定', cancel: '取消', close: '关闭', fullscreen: '全屏', @@ -163,7 +163,7 @@ export default { }, HistoryDetails: { title: '会话详情', - count:'共', + count: '共', messageCount: ' 条对话', exportMarkdown: '导出为 Markdown', user: '用户', @@ -183,11 +183,11 @@ export default { scopeOptions: { noFrozen: '只查询未冻结人员', onlyFrozen: '只查询已冻结人员', - all: '查询全部人员' + all: '查询全部人员', }, searchButton: '查询', addButton: '添加', - deleteButton: '删除' + deleteButton: '删除', }, table: { serialNumber: '序号', @@ -205,12 +205,12 @@ export default { operations: '操作', edit: '修改', delete: '删除', - noData: '暂无数据' + noData: '暂无数据', }, confirm: { deleteSingle: '你确定要删除当前项吗', deleteMultiple: '你确定要删除选中项吗', - noSelection: '未选中任何行' + noSelection: '未选中任何行', }, message: { deleteSuccess: '删除成功', @@ -218,26 +218,26 @@ export default { getRolesSuccess: '获取角色列表成功', getRolesFailed: '获取角色列表失败', getDeptFailed: '获取组织失败', - getAuxFailed: '附加信息列获取失败' - } + getAuxFailed: '附加信息列获取失败', + }, }, knowledge: { title: '我的知识库(共 ', - titleEnd:'个)', + titleEnd: '个)', newBtn: '新建知识库', empty: '暂无知识库数据', loading: '加载中...', error: '获取知识库信息失败,请检查网络连接后重试', - + card: { noDescription: '暂无描述', docCount: '文档数', wordCount: '字数', createTime: '创建时间:', updateTime: '更新时间:', - unknownTime: '--' + unknownTime: '--', }, - + dialog: { createTitle: '新建知识库', editTitle: '编辑知识库', @@ -250,26 +250,26 @@ export default { createSuccess: '创建成功', createFail: '创建失败', updateSuccess: '更新成功', - updateFail:'更新失败', + updateFail: '更新失败', deleteSuccess: '删除成功', deleteFail: '删除失败', - + rules: { nameRequired: '请输入知识库名称', - nameMaxLength: '名称长度不能超过50个字符' - } + nameMaxLength: '名称长度不能超过50个字符', + }, }, - + dropdown: { edit: '编辑', - delete: '删除' + delete: '删除', }, - + deleteConfirm: { title: '删除确认', message: '确定要删除该知识库吗?所有关联文档将被清除', confirm: '确定', - cancel: '取消' + cancel: '取消', }, document: { title: '数据集文档管理', @@ -277,8 +277,7 @@ export default { title: '{name}', description: '数据集文档管理 - 共 ', descriptionEnd: ' 个文件', - descriptionEnds:' 个文件' - + descriptionEnds: ' 个文件', }, table: { index: '序号', @@ -291,8 +290,8 @@ export default { available: '可用', indexing: '解析中', error: '解析失败', - unknown: '未知状态' - } + unknown: '未知状态', + }, }, buttons: { search: '查询', @@ -303,33 +302,33 @@ export default { preview: '预览', download: '下载', rename: '重命名', - delete: '删除' + delete: '删除', }, search: { - placeholder: '请输入关键词查询' + placeholder: '请输入关键词查询', }, uploadDialog: { title: '上传文件', indexingTechnique: '索引方式', indexingOptions: { highQuality: '高质量', - economy: '经济' + economy: '经济', }, preProcessingRules: '预处理规则', ruleOptions: { removeSpaces: '移除多余空格', - removeUrls: '移除URL/邮箱' + removeUrls: '移除URL/邮箱', }, segmentation: '分段规则', separatorPlaceholder: '分隔符(默认###)', maxTokens: '最大Token数', - selectFile:'选择文件', + selectFile: '选择文件', fileTip: '支持多选,单个文件不超过100MB,可接受格式:TXT、MD、MARKDOWN、MDX、PDF、HTML、HTM、XLSX、XLS、DOCX、CSV、VTT、PROPERTIES', cancel: '取消', - upload: '开始上传' + upload: '开始上传', }, preview: { - title: '文件预览' + title: '文件预览', }, renameDialog: { title: '重命名文件', @@ -337,28 +336,28 @@ export default { placeholder: '请输入新的文件名', cancel: '取消', confirm: '确定', - deleteconfirm:'删除确认' + deleteconfirm: '删除确认', }, messages: { - FilenamecantEmpty:'文件名不能为空', - uploadSuccess:'上传成功', + FilenamecantEmpty: '文件名不能为空', + uploadSuccess: '上传成功', deleteConfirm: '确定要删除该文件吗?此操作不可恢复!', batchDeleteConfirm: '确定要删除选中的 ', - batchDeleteConfirmEnd:' 个文件吗?此操作不可恢复!', + batchDeleteConfirmEnd: ' 个文件吗?此操作不可恢复!', deleteSuccess: '文件 ', - deleteSuccessEnd:' 已删除', - deleteing:'删除中...', - deleteSuccessOk:'删除成功', + deleteSuccessEnd: ' 已删除', + deleteing: '删除中...', + deleteSuccessOk: '删除成功', batchDeleteSuccess: '已成功删除 ', - batchDeleteSuccessEnd:' 个文件', + batchDeleteSuccessEnd: ' 个文件', uploadSuccessEnd: ' 个文件已处理完成', renameSuccess: '文件已重命名', noFileSelected: '请选择要删除的文件', noUploadFile: '请选择至少一个文件', loading: '加载中...', - NoKnowError:'未知错误', - getFileContentFailed:'获取文件内容失败', - uploadLoading:'文件上传中...' + NoKnowError: '未知错误', + getFileContentFailed: '获取文件内容失败', + uploadLoading: '文件上传中...', }, errors: { deleteFailed: '删除失败:', @@ -367,9 +366,170 @@ export default { renameFailed: '重命名失败: ', fetchFailed: '获取文档列表失败: ', previewFailed: '预览失败: ', - downloadFailed: '下载失败: ' - } - } - } - } + downloadFailed: '下载失败: ', + }, + }, + }, + KnowledgeManagement: { + query: { + nameFilter: '注册名/姓名', + deptFilter: '请选择组织', + roleFilter: '请选择角色', + search: '查询', + add: '添加', + }, + table: { + noData: '暂无数据', + operation: '操作', + bindDataset: '绑定知识库', + columns: { + index: '序号', + name: '注册名', + displayName: '姓名', + department: '组织', + roles: '角色', + datasets: '知识库', + }, + }, + pagination: { + pageSize: '每页条数', + total: '总数', + }, + filter: { + tableFields: '表格字段过滤与排序', + }, + fullscreen: '全屏', + collapseQuery: '折叠查询区域', + expandQuery: '展开查询区域', + addUser: '添加用户', + deleteUser: '删除用户', + confirmDelete: '您确定要删除吗?', + errorFetchingData: '获取数据失败', + message: { + getRolesSuccess: '获取角色列表成功', + getRolesFailed: '获取角色列表失败', + getDeptsFailed: '获取组织列表失败', + }, + bindDataset: { + title: '绑定知识库', + user: '用户', + boundDatasets: '已绑定知识库', + addDatasets: '添加知识库', + selectDatasets: '请选择要绑定的知识库', + removeDataset: '移除知识库', + cancel: '取 消', + confirm: '确 定', + pleaseSelect: '请选择要绑定的知识库', + bindSuccess: '绑定成功', + unbindSuccess: '解绑成功', + bindFail: '绑定失败', + unbindFail: '解绑失败', + fetchFail: '获取知识库列表失败', + }, + }, + DictionaryManagement: { + add: '添加', + index: '序号', + addDic: '添加字典分类', + addDicDetail: '添加字典详情', + editDic: '编辑字典', + dictionaryKey: '字典键', + dictionaryValue: '字典值', + remark: '备注', + pleaseEnterRemark: '请输入备注', + editable: '是否可编辑', + allow: '允许', + notAllow: '不允许', + operation: '操作', + edit: '修改', + delete: '删除', + confirm: '确定', + cancel: '取消', + parentDictionary: '父级字典', + searchPlaceholder: '请输入字典名称', + noData: '暂无数据', + dialogTitleAdd: '新增字典', + dialogTitleEdit: '编辑字典', + confirmDelete: '确定要删除此字典项吗?', + deleteSuccess: '删除成功', + deleteFail: '删除失败', + saveSuccess: '保存成功', + saveFail: '保存失败', + batchDeleteSuccess: '批量删除成功', + batchDeleteFail: '批量删除失败', + refreshCache: '刷新缓存', + refreshCacheSuccess: '缓存刷新成功', + refreshCacheFail: '缓存刷新失败', + dictionaryCategory: '字典分类', + dictionaryKeyError: '请输入字典键', + selecteditable: '请选择是否可编辑', + dictionaryValueError: '请输入字典值', + parentDictionaryError: '请选择父级字典(留空表示根节点)', + numberdescription: '括号内数值为ID值', + diclengtherror: '字典键长度不能超过50个字符', + dicvalueerror: '字典值长度不能超过50个字符', + alldic: '全部字典', + getdicfail: '获取字典数据失败', + getdicTreefail: '获取字典树数据失败', + rootNode: '根节点', + selectDicCate: '请先选择字典分类', + updateFail: '更新失败', + addFail: '添加失败', + }, + ApiKeyManagement: { + searchPlaceholder: '请输入密钥名称', + enterApiValue: '请输入密钥值', + createBy: '创建人', + placeCreateby: '请输入创建人', + search:'查询', + index: '序号', + createTime: '创建时间', + updateBy: '更新人', + updateTime: '更新时间', + edit: '编辑', + delete: '删除', + add: '新增', + batchDelete: '批量删除', + refreshCache: '刷新缓存', + noData: '暂无数据', + dialogTitleAdd: '新增API密钥', + dialogTitleEdit: '编辑API密钥', + confirmDelete: '确定要删除此API密钥吗?', + deleteSuccess: '删除成功', + deleteFail: '删除失败', + saveSuccess: '保存成功', + saveFail: '保存失败', + batchDeleteSuccess: '批量删除成功', + batchDeleteFail: '批量删除失败', + dictionaryKey: '密钥名称', + dictionaryValue: '密钥值', + show:'显示', + hide:'隐藏', + operation: '操作', + remark: '备注', + enterRemark: '请输入备注信息', + maskValue: '******', + confirm: '确定', + cancel: '取消', + refreshCacheSuccess: '缓存刷新成功', + refreshCacheFail: '缓存刷新失败', + copy:'复制', + copySuccess: '复制成功', + copyFail: '复制失败', + dictionaryKeyLength: '密钥名称长度在 1 到 255 个字符', + dictionaryValueLength: '密钥值长度在 1 到 255 个字符', + getApiKeysFail: '获取API密钥列表失败', + confirmDeleteApiKey: '此操作将永久删除该API密钥,是否继续?', + Tip: '提示', + selectDeleteData: '请选择要删除的数据', + confirmDeleteApiKeys: '此操作将永久删除选中的 ', + confirmDeleteApiKeysEnd:' 条API密钥,是否继续?', + confirmDeleteApiKeysEndPlural:' 条API密钥,是否继续?', + confirmRefreshCache: '此操作将刷新Redis缓存,重新加载所有API密钥,是否继续?', + updateSuccess: '更新成功', + updateFail: '更新失败', + addSuccess: '新增成功', + addFail: '新增失败', + }, + }, } diff --git a/chat-client/src/views/chatweb/historicalRecords/index.vue b/chat-client/src/views/chatweb/historicalRecords/index.vue index c18c3bb..327de3b 100644 --- a/chat-client/src/views/chatweb/historicalRecords/index.vue +++ b/chat-client/src/views/chatweb/historicalRecords/index.vue @@ -27,7 +27,9 @@ {{ t('vabI18n.HistoryRecords.search') }} - {{ t('vabI18n.HistoryRecords.delete') }} + + {{ t('vabI18n.HistoryRecords.delete') }} + @@ -54,7 +56,7 @@ - + \ No newline at end of file + .rounded-devlog { + border-radius: 8px; /* 调整圆角大小 */ + overflow: hidden; /* 确保内部内容也被圆角裁剪 */ + width: 46%; + } + diff --git a/chat-client/src/views/datasets/components/DocumentList.vue b/chat-client/src/views/datasets/components/DocumentList.vue index f007f93..0f3f4f2 100644 --- a/chat-client/src/views/datasets/components/DocumentList.vue +++ b/chat-client/src/views/datasets/components/DocumentList.vue @@ -156,21 +156,21 @@ - + {{t('vabI18n.knowledge.document.uploadDialog.indexingOptions.highQuality')}} {{t('vabI18n.knowledge.document.uploadDialog.indexingOptions.economy')}} - + {{t('vabI18n.knowledge.document.uploadDialog.ruleOptions.removeSpaces')}} {{t('vabI18n.knowledge.document.uploadDialog.ruleOptions.removeUrls')}} - +
- + {{ currentUser?.dispName }} ({{ currentUser?.name }}) - +
- + { availableDatasets.value = data.filter(dataset => !boundDatasetIds.includes(dataset.id)) console.log("可绑定的知识库", availableDatasets.value) } catch (error) { - ElMessage.error('获取知识库列表失败') + ElMessage.error(t('vabI18n.KnowledgeManagement.bindDataset.fetchFail')) } } @@ -122,16 +124,16 @@ const handleRemoveDataset = async (dataset) => { } const res = await unbindDataset(params) if (res.code === 200) { - ElMessage.success('解绑成功') + ElMessage.success(t('vabI18n.KnowledgeManagement.bindDataset.unbindSuccess')) emit('success') // 重新获取可用知识库列表 getAvailableDatasets() } else { - ElMessage.error(res.msg || '解绑失败') + ElMessage.error(res.msg || t('vabI18n.KnowledgeManagement.bindDataset.unbindFail')) } } catch (error) { console.error('解绑失败:', error) - ElMessage.error('解绑失败') + ElMessage.error(t('vabI18n.KnowledgeManagement.bindDataset.unbindFail')) } finally { loading.value = false } @@ -140,7 +142,7 @@ const handleRemoveDataset = async (dataset) => { // 确认绑定 const handleConfirm = async () => { if (!form.selectedDatasets.length) { - ElMessage.warning('请选择要绑定的知识库') + ElMessage.warning(t('vabI18n.KnowledgeManagement.bindDataset.pleaseSelect')) return } @@ -153,15 +155,15 @@ const handleConfirm = async () => { console.log('绑定参数:', params) const res = await bindDatasets(params) if (res.code === 200) { - ElMessage.success('绑定成功') + ElMessage.success(t('vabI18n.KnowledgeManagement.bindDataset.bindSuccess')) emit('success') handleClose() } else { - ElMessage.error(res.msg || '绑定失败') + ElMessage.error(res.msg || t('vabI18n.KnowledgeManagement.bindDataset.bindFail')) } } catch (error) { console.error('绑定失败:', error) - ElMessage.error('绑定失败') + ElMessage.error(t('vabI18n.KnowledgeManagement.bindDataset.bindFail')) } finally { loading.value = false } @@ -197,6 +199,10 @@ watch(() => props.currentUser, () => { gap: 8px; } +.el-form-item { + margin-bottom: 20px; /* 增加表单项之间的间距 */ +} + .dataset-tag { margin: 2px; border-radius: 4px; @@ -213,4 +219,19 @@ watch(() => props.currentUser, () => { .dialog-footer { text-align: right; } + +.el-dialog__body { + display: flex; + flex-direction: column; /* 确保内容垂直排列 */ +} + +.el-form { + display: flex; + flex-direction: column; /* 确保表单元素垂直排列 */ +} + +.el-select { + margin-top: 10px; /* 增加选择框顶部的间距,避免与上面的元素重叠 */ +} + \ No newline at end of file diff --git a/chat-client/src/views/permission/datasetManage/index.vue b/chat-client/src/views/permission/datasetManage/index.vue index 655fbc1..dd5d884 100644 --- a/chat-client/src/views/permission/datasetManage/index.vue +++ b/chat-client/src/views/permission/datasetManage/index.vue @@ -11,15 +11,15 @@ date : 2025-4-2 13:08:41 - + - + - + {{ role.dispName }} {{ role.name }} @@ -27,8 +27,8 @@ date : 2025-4-2 13:08:41 - 查询 - @@ -41,7 +41,7 @@ date : 2025-4-2 13:08:41 @@ -60,7 +60,7 @@ date : 2025-4-2 13:08:41 - + @@ -89,11 +89,7 @@ date : 2025-4-2 13:08:41 {{ row[item.prop] }} - - @@ -139,15 +122,15 @@ date : 2025-4-2 13:08:41 {{ auxTrans(row, item.property) }} - + - +