Skip to content

Commit e3d68e7

Browse files
committed
feat(dialog, toast): 添加全局对话框和提示功能
1 parent 3ea3165 commit e3d68e7

16 files changed

Lines changed: 1007 additions & 193 deletions

‎shared/locales/en.js‎

Lines changed: 27 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,13 @@ const messages = {
2525
"common.id": "ID",
2626
"common.searching": "Searching…",
2727
"common.notFound": "No matching users found",
28+
"common.ok": "OK",
29+
"common.confirm": "Confirm",
30+
"common.cancel": "Cancel",
31+
"common.input": "Input",
32+
"common.notice": "Notice",
33+
"common.inputPlaceholder": "Enter a value",
34+
"common.dangerAction": "Dangerous action",
2835
"nav.dashboard": "Dashboard",
2936
"nav.conversations": "Conversations",
3037
"nav.users": "Users",
@@ -111,13 +118,22 @@ const messages = {
111118
"users.blockUser": "Block user",
112119
"users.unblockUser": "Unblock user",
113120
"users.addWhitelist": "Set as whitelist",
121+
"users.removeWhitelist": "Remove whitelist",
122+
"users.addWhitelistConfirm": "Set user {name} as whitelist?",
123+
"users.removeWhitelistConfirm": "Remove user {name} from whitelist?",
124+
"users.unblockConfirm": "Unblock user {name}?",
125+
"users.batchUnblockConfirm": "Unblock {n} selected users?",
126+
"users.batchWhitelistConfirm": "Add {n} selected users to whitelist?",
127+
"users.quickBlockConfirm": "Block user {name}?",
128+
"users.quickUnblockConfirm": "Unblock user {name}?",
129+
"users.quickWhitelistConfirm": "Set user {name} as whitelist?",
114130
"users.selectedCount": "{n} selected",
115131
"users.batchBlock": "Batch Block",
116132
"users.batchUnblock": "Batch Unblock",
117133
"users.batchWhitelist": "Add Whitelist",
118134
"users.cancel": "Cancel",
119135
"users.table.user": "User",
120-
"users.table.id": "ID",
136+
"users.table.id": "Telegram ID",
121137
"users.table.status": "Status",
122138
"users.table.username": "Username",
123139
"users.table.firstContact": "First Contact (UTC+8)",
@@ -131,7 +147,7 @@ const messages = {
131147
"users.prevPage": "Previous",
132148
"users.nextPage": "Next",
133149
"users.detail.noUsername": "No username",
134-
"users.detail.id": "ID",
150+
"users.detail.id": "Telegram ID",
135151
"users.detail.status": "Status",
136152
"users.detail.blockReason": "Block reason",
137153
"users.detail.verified": "Verified",
@@ -142,10 +158,9 @@ const messages = {
142158
"users.detail.unknown": "Unknown",
143159
"users.detail.firstContact": "First contact",
144160
"users.copy": "Copy",
145-
"users.copyUid": "UID",
161+
"users.copyUid": "Telegram ID",
146162
"users.copyName": "Name",
147163
"users.messages": "View conversation",
148-
"users.removeWhitelist": "Remove Whitelist",
149164
"users.delete": "Delete User",
150165
"users.deleteConfirm": "Delete user {id}? The user will need to verify again next time.",
151166
"users.addWhitelistWithIcon": "⚪ Add Whitelist",
@@ -174,7 +189,8 @@ const messages = {
174189
"whitelist.remove": "Remove",
175190
"whitelist.pageInfo": "Page {page} · Total {total}",
176191
"whitelist.addSuccess": "✅ User {id} added to whitelist",
177-
"whitelist.removeConfirm": "Remove user {id} from whitelist?",
192+
"whitelist.addConfirm": "Add user {name} to whitelist?",
193+
"whitelist.removeConfirm": "Remove user {name} from whitelist?",
178194
"conv.search": "🔍 Search users…",
179195
"conv.blockedTag": "B",
180196
"conv.noMessage": "No message",
@@ -344,6 +360,9 @@ const messages = {
344360
"settings.storage.noD1": "D1 / Hyperdrive not bound — add bindings in Pages settings to switch storage backend",
345361
"settings.storage.syncing": "Syncing data and switching…",
346362
"settings.storage.switchHint": "Switching will sync full data from old storage to new storage safely",
363+
"settings.storage.switchConfirm": "Switch to {target}? Existing data will be synced automatically.",
364+
"settings.admin.removeConfirm": "Remove admin {id}?",
365+
"settings.feature.messageFilterRemoveConfirm": "Delete this message filter rule?",
347366
"settings.storage.clearData": "Clear Database",
348367
"settings.storage.clearing": "Clearing data…",
349368
"settings.storage.clearDataHint": "This will not delete WebUI login accounts, but it will clear bot business data such as users, conversations, whitelist entries, and verification states.",
@@ -353,6 +372,9 @@ const messages = {
353372
"settings.storage.sqlTools": "SQL Import / Export",
354373
"settings.storage.sqlExport": "Export SQL File",
355374
"settings.storage.sqlImport": "Import SQL File",
375+
"settings.storage.sqlMode.plain": "Plain",
376+
"settings.storage.sqlMode.base64": "Base64",
377+
"settings.storage.sqlMode.aes": "AES-256-GCM",
356378
"settings.storage.sqlPlaceholder": "Please choose a SQL file to import.",
357379
"settings.storage.sqlHint": "Import and export only affect bot business data SQL and do not include WebUI login accounts. Export directly downloads a .sql file for the current storage type (KV / D1), and import reads the selected SQL file back into the active storage.",
358380
"settings.storage.sqlImportConfirm": "Import the selected SQL file and overwrite existing bot business data?",

‎shared/locales/zh-hans.js‎

Lines changed: 27 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,13 @@ const messages = {
2525
"common.id": "ID",
2626
"common.searching": "搜索中…",
2727
"common.notFound": "未找到匹配用户",
28+
"common.ok": "知道了",
29+
"common.confirm": "确认",
30+
"common.cancel": "取消",
31+
"common.input": "请输入",
32+
"common.notice": "提示",
33+
"common.inputPlaceholder": "请输入内容",
34+
"common.dangerAction": "危险操作",
2835
"nav.dashboard": "仪表盘",
2936
"nav.conversations": "对话记录",
3037
"nav.users": "用户管理",
@@ -111,13 +118,22 @@ const messages = {
111118
"users.blockUser": "封禁用户",
112119
"users.unblockUser": "解封用户",
113120
"users.addWhitelist": "设置为白名单",
121+
"users.removeWhitelist": "移出白名单",
122+
"users.addWhitelistConfirm": "确认将用户 {name} 设置为白名单?",
123+
"users.removeWhitelistConfirm": "确认将用户 {name} 移出白名单?",
124+
"users.unblockConfirm": "确认解封用户 {name}?",
125+
"users.batchUnblockConfirm": "确认解封已选的 {n} 位用户?",
126+
"users.batchWhitelistConfirm": "确认将已选的 {n} 位用户加入白名单?",
127+
"users.quickBlockConfirm": "确认封禁用户 {name}?",
128+
"users.quickUnblockConfirm": "确认解封用户 {name}?",
129+
"users.quickWhitelistConfirm": "确认将用户 {name} 设置为白名单?",
114130
"users.selectedCount": "已选 {n} 人",
115131
"users.batchBlock": "批量封禁",
116132
"users.batchUnblock": "批量解封",
117133
"users.batchWhitelist": "加白名单",
118134
"users.cancel": "取消",
119135
"users.table.user": "用户",
120-
"users.table.id": "ID",
136+
"users.table.id": "Telegram ID",
121137
"users.table.status": "状态",
122138
"users.table.username": "用户名",
123139
"users.table.firstContact": "首次联系 (UTC+8)",
@@ -131,7 +147,7 @@ const messages = {
131147
"users.prevPage": "上一页",
132148
"users.nextPage": "下一页",
133149
"users.detail.noUsername": "无用户名",
134-
"users.detail.id": "ID",
150+
"users.detail.id": "Telegram ID",
135151
"users.detail.status": "状态",
136152
"users.detail.blockReason": "封禁原因",
137153
"users.detail.verified": "已验证",
@@ -142,10 +158,9 @@ const messages = {
142158
"users.detail.unknown": "未知",
143159
"users.detail.firstContact": "首次联系",
144160
"users.copy": "复制",
145-
"users.copyUid": "UID",
161+
"users.copyUid": "Telegram ID",
146162
"users.copyName": "姓名",
147163
"users.messages": "查看对话",
148-
"users.removeWhitelist": "移出白名单",
149164
"users.delete": "删除用户",
150165
"users.deleteConfirm": "确认删除用户 {id}?删除后该用户需重新验证。",
151166
"users.addWhitelistWithIcon": "⚪ 加白名单",
@@ -174,7 +189,8 @@ const messages = {
174189
"whitelist.remove": "移出",
175190
"whitelist.pageInfo": "第 {page} 页 · 共 {total} 人",
176191
"whitelist.addSuccess": "✅ 用户 {id} 已加入白名单",
177-
"whitelist.removeConfirm": "确认将用户 {id} 移出白名单?",
192+
"whitelist.addConfirm": "确认将用户 {name} 加入白名单?",
193+
"whitelist.removeConfirm": "确认将用户 {name} 移出白名单?",
178194
"conv.search": "🔍 搜索用户…",
179195
"conv.blockedTag": "封",
180196
"conv.noMessage": "无消息",
@@ -344,6 +360,9 @@ const messages = {
344360
"settings.storage.noD1": "D1 / Hyperdrive 未绑定 — 在 Pages 设置中添加绑定后才可切换存储后端",
345361
"settings.storage.syncing": "正在同步数据并切换…",
346362
"settings.storage.switchHint": "切换时会自动将全量数据从旧存储同步到新存储,可安全切换。",
363+
"settings.storage.switchConfirm": "确认切换到 {target}?将自动同步现有数据。",
364+
"settings.admin.removeConfirm": "确认移除管理员 {id}?",
365+
"settings.feature.messageFilterRemoveConfirm": "确认删除该消息过滤规则?",
347366
"settings.storage.clearData": "清空数据库",
348367
"settings.storage.clearing": "正在清空数据…",
349368
"settings.storage.clearDataHint": "此操作不会删除 WebUI 登录账号和2FA,但会清空机器人产生的用户、对话、白名单、验证状态和相关的数据。",
@@ -353,6 +372,9 @@ const messages = {
353372
"settings.storage.sqlTools": "SQL 导入 / 导出",
354373
"settings.storage.sqlExport": "导出 SQL 文件",
355374
"settings.storage.sqlImport": "导入 SQL 文件",
375+
"settings.storage.sqlMode.plain": "明文",
376+
"settings.storage.sqlMode.base64": "Base64",
377+
"settings.storage.sqlMode.aes": "AES-256-GCM",
356378
"settings.storage.sqlPlaceholder": "请选择 SQL 文件进行导入。",
357379
"settings.storage.sqlHint": "导入与导出的是机器人业务数据 SQL,不包含 WebUI 登录账号。导出会直接下载当前数据库类型(KV / D1)对应的 .sql 文件,导入会读取所选 SQL 文件并恢复到当前启用的存储。",
358380
"settings.storage.sqlImportConfirm": "确认导入所选 SQL 文件并覆盖现有机器人业务数据?",

‎shared/locales/zh-hant.js‎

Lines changed: 28 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,13 @@ const messages = {
2525
"common.id": "ID",
2626
"common.searching": "搜尋中…",
2727
"common.notFound": "未找到符合使用者",
28+
"common.ok": "知道了",
29+
"common.confirm": "確認",
30+
"common.cancel": "取消",
31+
"common.input": "請輸入",
32+
"common.notice": "提示",
33+
"common.inputPlaceholder": "請輸入內容",
34+
"common.dangerAction": "危險操作",
2835
"nav.dashboard": "儀表板",
2936
"nav.conversations": "對話記錄",
3037
"nav.users": "使用者管理",
@@ -111,13 +118,22 @@ const messages = {
111118
"users.blockUser": "封鎖使用者",
112119
"users.unblockUser": "解封使用者",
113120
"users.addWhitelist": "設為白名單",
121+
"users.removeWhitelist": "移出白名單",
122+
"users.addWhitelistConfirm": "確認將使用者 {name} 設為白名單?",
123+
"users.removeWhitelistConfirm": "確認將使用者 {name} 移出白名單?",
124+
"users.unblockConfirm": "確認解封使用者 {name}?",
125+
"users.batchUnblockConfirm": "確認解封已選的 {n} 位使用者?",
126+
"users.batchWhitelistConfirm": "確認將已選的 {n} 位使用者加入白名單?",
127+
"users.quickBlockConfirm": "確認封鎖使用者 {name}?",
128+
"users.quickUnblockConfirm": "確認解封使用者 {name}?",
129+
"users.quickWhitelistConfirm": "確認將使用者 {name} 設為白名單?",
114130
"users.selectedCount": "已選 {n} 人",
115131
"users.batchBlock": "批量封鎖",
116132
"users.batchUnblock": "批量解封",
117133
"users.batchWhitelist": "加白名單",
118134
"users.cancel": "取消",
119135
"users.table.user": "使用者",
120-
"users.table.id": "ID",
136+
"users.table.id": "Telegram ID",
121137
"users.table.status": "狀態",
122138
"users.table.username": "使用者名稱",
123139
"users.table.firstContact": "首次聯絡 (UTC+8)",
@@ -131,7 +147,7 @@ const messages = {
131147
"users.prevPage": "上一頁",
132148
"users.nextPage": "下一頁",
133149
"users.detail.noUsername": "無使用者名稱",
134-
"users.detail.id": "ID",
150+
"users.detail.id": "Telegram ID",
135151
"users.detail.status": "狀態",
136152
"users.detail.blockReason": "封鎖原因",
137153
"users.detail.verified": "已驗證",
@@ -142,10 +158,9 @@ const messages = {
142158
"users.detail.unknown": "未知",
143159
"users.detail.firstContact": "首次聯絡",
144160
"users.copy": "複製",
145-
"users.copyUid": "UID",
161+
"users.copyUid": "Telegram ID",
146162
"users.copyName": "姓名",
147163
"users.messages": "查看對話",
148-
"users.removeWhitelist": "移出白名單",
149164
"users.delete": "刪除使用者",
150165
"users.deleteConfirm": "確認刪除使用者 {id}?刪除後該使用者需重新驗證。",
151166
"users.addWhitelistWithIcon": "⚪ 加白名單",
@@ -174,7 +189,8 @@ const messages = {
174189
"whitelist.remove": "移出",
175190
"whitelist.pageInfo": "第 {page} 頁 · 共 {total} 人",
176191
"whitelist.addSuccess": "✅ 使用者 {id} 已加入白名單",
177-
"whitelist.removeConfirm": "確認將使用者 {id} 移出白名單?",
192+
"whitelist.addConfirm": "確認將使用者 {name} 加入白名單?",
193+
"whitelist.removeConfirm": "確認將使用者 {name} 移出白名單?",
178194
"conv.search": "🔍 搜尋使用者…",
179195
"conv.blockedTag": "封",
180196
"conv.noMessage": "無訊息",
@@ -338,6 +354,9 @@ const messages = {
338354
"settings.storage.sqlTools": "SQL 匯入 / 匯出",
339355
"settings.storage.sqlExport": "匯出 SQL 檔案",
340356
"settings.storage.sqlImport": "匯入 SQL 檔案",
357+
"settings.storage.sqlMode.plain": "明文",
358+
"settings.storage.sqlMode.base64": "Base64",
359+
"settings.storage.sqlMode.aes": "AES-256-GCM",
341360
"settings.storage.sqlPlaceholder": "請選擇 SQL 檔案進行匯入。",
342361
"settings.storage.sqlHint": "匯入與匯出的是機器人業務資料 SQL,不包含 WebUI 登入帳號。匯出會直接下載目前資料庫類型(KV / D1)對應的 .sql 檔案,匯入會讀取所選 SQL 檔案並還原到目前啟用的儲存。",
343362
"settings.storage.sqlImportConfirm": "確認匯入所選 SQL 檔案並覆蓋現有機器人業務資料?",
@@ -587,7 +606,10 @@ const messages = {
587606
"api.settings.sqlExportFailed": "匯出 SQL 失敗: {error}",
588607
"api.settings.sqlImportFailed": "匯入 SQL 失敗: {error}",
589608
"settings.storage.syncing": "正在同步資料並切換…",
590-
"settings.storage.switchHint": "切換時會將舊儲存的全部資料安全同步到新儲存"
609+
"settings.storage.switchHint": "切換時會將舊儲存的全部資料安全同步到新儲存",
610+
"settings.storage.switchConfirm": "確認切換到 {target}?將自動同步現有資料。",
611+
"settings.admin.removeConfirm": "確認移除管理員 {id}?",
612+
"settings.feature.messageFilterRemoveConfirm": "確認刪除該訊息過濾規則?"
591613
};
592614

593615
export default messages;

‎src/App.vue‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,9 @@
136136
</div>
137137
<RouterView />
138138
</div>
139+
140+
<AppDialog />
141+
<AppToast />
139142
</template>
140143

141144
<script setup>
@@ -144,6 +147,8 @@ import { RouterLink, RouterView, useRouter, useRoute } from 'vue-router'
144147
import { AUTH_EXPIRED_EVENT, useAuthStore } from './stores/auth'
145148
import { useI18nStore } from './stores/i18n'
146149
import AppIcon from './components/AppIcon.vue'
150+
import AppDialog from './components/AppDialog.vue'
151+
import AppToast from './components/AppToast.vue'
147152
import api from './stores/api'
148153
149154
const auth = useAuthStore()

0 commit comments

Comments
 (0)