From 9301c1889f6ff360fb1c12600abb322ebbb71f5e Mon Sep 17 00:00:00 2001 From: Tyke Chen <190473011+chentyke@users.noreply.github.com> Date: Thu, 9 Jul 2026 15:03:12 +0800 Subject: [PATCH 1/2] feat: require agent name confirmation before delete --- main/manager-mobile/pnpm-lock.yaml | 15 + main/manager-mobile/src/i18n/de.ts | 6 + main/manager-mobile/src/i18n/en.ts | 6 + main/manager-mobile/src/i18n/pt_BR.ts | 6 + main/manager-mobile/src/i18n/vi.ts | 6 + main/manager-mobile/src/i18n/zh_CN.ts | 6 + main/manager-mobile/src/i18n/zh_TW.ts | 6 + main/manager-mobile/src/pages/index/index.vue | 222 ++++++++++++- main/manager-mobile/vite.config.ts | 2 +- .../manager-web/src/components/DeviceItem.vue | 4 +- main/manager-web/src/i18n/de.js | 9 +- main/manager-web/src/i18n/en.js | 9 +- main/manager-web/src/i18n/pt_BR.js | 9 +- main/manager-web/src/i18n/vi.js | 9 +- main/manager-web/src/i18n/zh_CN.js | 9 +- main/manager-web/src/i18n/zh_TW.js | 9 +- main/manager-web/src/views/home.vue | 305 ++++++++++++++++-- 17 files changed, 597 insertions(+), 41 deletions(-) diff --git a/main/manager-mobile/pnpm-lock.yaml b/main/manager-mobile/pnpm-lock.yaml index 9faf80cd..3aa1fc47 100644 --- a/main/manager-mobile/pnpm-lock.yaml +++ b/main/manager-mobile/pnpm-lock.yaml @@ -91,6 +91,9 @@ importers: pinia-plugin-persistedstate: specifier: 3.2.1 version: 3.2.1(pinia@2.0.36(typescript@5.7.2)(vue@3.5.15(typescript@5.7.2))) + sm-crypto: + specifier: ^0.3.13 + version: 0.3.14 vue: specifier: ^3.4.21 version: 3.5.15(typescript@5.7.2) @@ -4719,6 +4722,9 @@ packages: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true + jsbn@1.1.0: + resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==} + jsdoc-type-pratt-parser@4.1.0: resolution: {integrity: sha512-Hicd6JK5Njt2QB6XYFS7ok9e37O8AYk3jTcppG4YVQnYjOemymvTcmc7OWsmq/Qqj5TdRFO5/x/tIPmBeRtGHg==} engines: {node: '>=12.0.0'} @@ -6020,6 +6026,9 @@ packages: resolution: {integrity: sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==} engines: {node: '>=18'} + sm-crypto@0.3.14: + resolution: {integrity: sha512-sR7NuGAJH93Om8keAF2/rj1EqFzEiUey4aKGyDo3nQ2BiVqhgq8UkiIoIp5qhV9w4pG7qArhfqyewcG8AbhXbg==} + source-map-js@1.2.1: resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} @@ -12652,6 +12661,8 @@ snapshots: dependencies: argparse: 2.0.1 + jsbn@1.1.0: {} + jsdoc-type-pratt-parser@4.1.0: {} jsdom@16.7.0: @@ -14145,6 +14156,10 @@ snapshots: ansi-styles: 6.2.1 is-fullwidth-code-point: 5.0.0 + sm-crypto@0.3.14: + dependencies: + jsbn: 1.1.0 + source-map-js@1.2.1: {} source-map-support@0.5.21: diff --git a/main/manager-mobile/src/i18n/de.ts b/main/manager-mobile/src/i18n/de.ts index 932ed672..c4b8eb6b 100644 --- a/main/manager-mobile/src/i18n/de.ts +++ b/main/manager-mobile/src/i18n/de.ts @@ -71,6 +71,12 @@ export default { 'home.inputPlaceholder': 'z.B. Kundenservice-Assistent, Sprachassistent, Wissens-F&A', 'home.createError': 'Der Name muss zwischen 1 und 64 Zeichen lang sein.', 'home.createNow': 'Jetzt erstellen', + 'home.deleteConfirmTitle': 'Agent löschen', + 'home.confirmDeleteAgent': 'Das Löschen kann nicht rückgängig gemacht werden. Geben Sie den Agentennamen "{agentName}" ein, um zu bestätigen.', + 'home.deleteAgentNamePlaceholder': 'Agentennamen eingeben', + 'home.deleteAgentNameMismatch': 'Der Agentenname stimmt nicht überein', + 'home.deleteAgentPasteForbidden': 'Bitte geben Sie den Agentennamen manuell ein. Einfügen ist nicht erlaubt.', + 'home.deleteAgentMissingInfo': 'Agenteninformationen konnten nicht bestätigt werden. Bitte aktualisieren und erneut versuchen.', 'home.justNow': 'Gerade eben', 'home.minutesAgo': 'Minuten her', 'home.hoursAgo': 'Stunden her', diff --git a/main/manager-mobile/src/i18n/en.ts b/main/manager-mobile/src/i18n/en.ts index a3037478..7052413a 100644 --- a/main/manager-mobile/src/i18n/en.ts +++ b/main/manager-mobile/src/i18n/en.ts @@ -71,6 +71,12 @@ export default { 'home.inputPlaceholder': 'e.g. Customer Service Assistant, Voice Assistant, Knowledge Q&A', 'home.createError': 'The name length must be between 1 and 64 characters', 'home.createNow': 'Create Now', + 'home.deleteConfirmTitle': 'Delete Agent', + 'home.confirmDeleteAgent': 'Deletion cannot be undone. Type the agent name "{agentName}" to confirm.', + 'home.deleteAgentNamePlaceholder': 'Enter agent name', + 'home.deleteAgentNameMismatch': 'The agent name does not match', + 'home.deleteAgentPasteForbidden': 'Please type the agent name manually. Pasting is not allowed.', + 'home.deleteAgentMissingInfo': 'Unable to confirm agent information. Please refresh and try again.', 'home.justNow': 'Just now', 'home.minutesAgo': 'minutes ago', 'home.hoursAgo': 'hours ago', diff --git a/main/manager-mobile/src/i18n/pt_BR.ts b/main/manager-mobile/src/i18n/pt_BR.ts index 4eccbf10..750bd08a 100644 --- a/main/manager-mobile/src/i18n/pt_BR.ts +++ b/main/manager-mobile/src/i18n/pt_BR.ts @@ -71,6 +71,12 @@ export default { 'home.inputPlaceholder': 'ex: Assistente de Atendimento, Assistente de Voz, Perguntas e Respostas', 'home.createError': 'O comprimento do nome deve estar entre 1 e 64 caracteres', 'home.createNow': 'Criar Agora', + 'home.deleteConfirmTitle': 'Excluir Agente', + 'home.confirmDeleteAgent': 'A exclusão não pode ser desfeita. Digite o nome do agente "{agentName}" para confirmar.', + 'home.deleteAgentNamePlaceholder': 'Digite o nome do agente', + 'home.deleteAgentNameMismatch': 'O nome do agente não corresponde', + 'home.deleteAgentPasteForbidden': 'Digite o nome do agente manualmente. Colar não é permitido.', + 'home.deleteAgentMissingInfo': 'Não foi possível confirmar as informações do agente. Atualize a página e tente novamente.', 'home.justNow': 'Agora mesmo', 'home.minutesAgo': 'minutos atrás', 'home.hoursAgo': 'horas atrás', diff --git a/main/manager-mobile/src/i18n/vi.ts b/main/manager-mobile/src/i18n/vi.ts index f4437c95..0cbea922 100644 --- a/main/manager-mobile/src/i18n/vi.ts +++ b/main/manager-mobile/src/i18n/vi.ts @@ -71,6 +71,12 @@ export default { 'home.inputPlaceholder': 'ví dụ: Trợ lý chăm sóc khách hàng, Trợ lý giọng nói, Hỏi đáp kiến thức', 'home.createError': 'Độ dài tên phải từ 1 đến 64 ký tự', 'home.createNow': 'Tạo ngay', + 'home.deleteConfirmTitle': 'Xóa đại lý', + 'home.confirmDeleteAgent': 'Không thể hoàn tác sau khi xóa. Nhập tên đại lý "{agentName}" để xác nhận.', + 'home.deleteAgentNamePlaceholder': 'Nhập tên đại lý', + 'home.deleteAgentNameMismatch': 'Tên đại lý không khớp', + 'home.deleteAgentPasteForbidden': 'Vui lòng nhập thủ công tên đại lý. Không được dán.', + 'home.deleteAgentMissingInfo': 'Không thể xác nhận thông tin đại lý. Vui lòng tải lại rồi thử lại.', 'home.justNow': 'Vừa xong', 'home.minutesAgo': 'phút trước', 'home.hoursAgo': 'giờ trước', diff --git a/main/manager-mobile/src/i18n/zh_CN.ts b/main/manager-mobile/src/i18n/zh_CN.ts index c6f02f4c..30fb070b 100644 --- a/main/manager-mobile/src/i18n/zh_CN.ts +++ b/main/manager-mobile/src/i18n/zh_CN.ts @@ -71,6 +71,12 @@ export default { 'home.inputPlaceholder': '例如:客服助手、语音助理、知识问答', 'home.createError': '名称长度必须在 1 到 64 个字符之间', 'home.createNow': '立即创建', + 'home.deleteConfirmTitle': '删除智能体', + 'home.confirmDeleteAgent': '删除后无法恢复。请输入智能体名称“{agentName}”确认删除。', + 'home.deleteAgentNamePlaceholder': '请输入智能体名称', + 'home.deleteAgentNameMismatch': '输入的智能体名称不匹配', + 'home.deleteAgentPasteForbidden': '请手动输入智能体名称,不允许粘贴', + 'home.deleteAgentMissingInfo': '无法确认智能体信息,请刷新后重试', 'home.justNow': '刚刚', 'home.minutesAgo': '分钟前', 'home.hoursAgo': '小时前', diff --git a/main/manager-mobile/src/i18n/zh_TW.ts b/main/manager-mobile/src/i18n/zh_TW.ts index caf5310f..024f062d 100644 --- a/main/manager-mobile/src/i18n/zh_TW.ts +++ b/main/manager-mobile/src/i18n/zh_TW.ts @@ -92,6 +92,12 @@ export default { 'home.inputPlaceholder': '例如:客服助手、語音助理、知識問答', 'home.createError': '暱稱長度必須在 1 到 64 個字元之間。', 'home.createNow': '立即創建', + 'home.deleteConfirmTitle': '刪除智能體', + 'home.confirmDeleteAgent': '刪除後無法復原。請輸入智能體名稱「{agentName}」確認刪除。', + 'home.deleteAgentNamePlaceholder': '請輸入智能體名稱', + 'home.deleteAgentNameMismatch': '輸入的智能體名稱不匹配', + 'home.deleteAgentPasteForbidden': '請手動輸入智能體名稱,不允許貼上', + 'home.deleteAgentMissingInfo': '無法確認智能體資訊,請重新整理後再試', 'home.justNow': '剛剛', 'home.minutesAgo': '分鐘前', 'home.hoursAgo': '小時前', diff --git a/main/manager-mobile/src/pages/index/index.vue b/main/manager-mobile/src/pages/index/index.vue index 21aba9ce..342feaad 100644 --- a/main/manager-mobile/src/pages/index/index.vue +++ b/main/manager-mobile/src/pages/index/index.vue @@ -12,7 +12,7 @@