From 5ae3fe277ae3a87b84f2eabd9290c53b0a6edde1 Mon Sep 17 00:00:00 2001 From: eoao Date: Thu, 22 Jan 2026 23:50:00 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E9=82=AE=E4=BB=B6=E5=92=8C?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E5=88=97=E8=A1=A8=E5=8F=B3=E9=94=AE=E8=8F=9C?= =?UTF-8?q?=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mail-vue/package.json | 2 +- mail-vue/pnpm-lock.yaml | 81 +++--- .../src/components/email-scroll/index.vue | 240 +++++++++++++++++- mail-vue/src/i18n/en.js | 37 ++- mail-vue/src/i18n/zh.js | 17 +- mail-vue/src/request/email.js | 2 +- mail-vue/src/utils/day.js | 8 + mail-vue/src/views/all-email/index.vue | 9 +- mail-vue/src/views/draft/index.vue | 17 +- mail-vue/src/views/email/index.vue | 2 +- mail-vue/src/views/send/index.vue | 2 +- mail-vue/src/views/sys-setting/index.vue | 2 +- mail-vue/src/views/user/index.vue | 202 +++++++++++++-- mail-worker/src/i18n/en.js | 16 +- mail-worker/src/security/security.js | 3 + mail-worker/src/service/email-service.js | 18 +- mail-worker/src/service/user-service.js | 3 +- 17 files changed, 530 insertions(+), 131 deletions(-) diff --git a/mail-vue/package.json b/mail-vue/package.json index 38b4ab1..38bac9a 100644 --- a/mail-vue/package.json +++ b/mail-vue/package.json @@ -20,7 +20,7 @@ "dayjs": "^1.11.13", "dexie": "^4.0.11", "echarts": "^5.6.0", - "element-plus": "^2.9.11", + "element-plus": "^2.13.1", "lodash-es": "^4.17.21", "nprogress": "^0.2.0", "path": "^0.12.7", diff --git a/mail-vue/pnpm-lock.yaml b/mail-vue/pnpm-lock.yaml index a24bd71..2080e71 100644 --- a/mail-vue/pnpm-lock.yaml +++ b/mail-vue/pnpm-lock.yaml @@ -36,8 +36,8 @@ importers: specifier: ^5.6.0 version: 5.6.0 element-plus: - specifier: ^2.9.11 - version: 2.11.1(vue@3.5.20) + specifier: ^2.13.1 + version: 2.13.1(vue@3.5.20) lodash-es: specifier: ^4.17.21 version: 4.17.21 @@ -1085,8 +1085,8 @@ packages: '@types/trusted-types@2.0.7': resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} - '@types/web-bluetooth@0.0.16': - resolution: {integrity: sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==} + '@types/web-bluetooth@0.0.20': + resolution: {integrity: sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==} '@types/web-bluetooth@0.0.21': resolution: {integrity: sha512-oIQLCGWtcFZy2JW77j9k8nHzAOpqMHLQejDA48XXMWH6tjCQHz5RCFz1bzsmROyL6PUm+LLnUiI4BCn221inxA==} @@ -1144,6 +1144,9 @@ packages: peerDependencies: vue: ^3.5.0 + '@vueuse/core@10.11.1': + resolution: {integrity: sha512-guoy26JQktXPcz+0n3GukWIy/JDNKti9v6VEMu6kV2sYBsWuGiTU8OWdg+ADfUbHg3/3DlqySDe7JmdHrktiww==} + '@vueuse/core@12.8.2': resolution: {integrity: sha512-HbvCmZdzAu3VGi/pWYm5Ut+Kd9mn1ZHnn4L5G8kOQTPs/IwIAmJoBrmYk2ckLArgMXZj0AW3n5CAejLUO+PhdQ==} @@ -1152,8 +1155,8 @@ packages: peerDependencies: vue: ^3.5.0 - '@vueuse/core@9.13.0': - resolution: {integrity: sha512-pujnclbeHWxxPRqXWmdkKV5OX4Wk4YeK7wusHqRwU0Q7EFusHoqNA/aPhB6KCh9hEqJkLAJo7bb0Lh9b+OIVzw==} + '@vueuse/metadata@10.11.1': + resolution: {integrity: sha512-IGa5FXd003Ug1qAZmyE8wF3sJ81xGLSqTqtQ6jaVfkeZ4i5kS2mwQF61yhVqojRnenVew5PldLyRgvdl4YYuSw==} '@vueuse/metadata@12.8.2': resolution: {integrity: sha512-rAyLGEuoBJ/Il5AmFHiziCPdQzRt88VxR+Y/A/QhJ1EWtWqPBBAxTAFaSkviwEuOEZNtW8pvkPgoCZQ+HxqW1A==} @@ -1161,8 +1164,8 @@ packages: '@vueuse/metadata@14.1.0': resolution: {integrity: sha512-7hK4g015rWn2PhKcZ99NyT+ZD9sbwm7SGvp7k+k+rKGWnLjS/oQozoIZzWfCewSUeBmnJkIb+CNr7Zc/EyRnnA==} - '@vueuse/metadata@9.13.0': - resolution: {integrity: sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ==} + '@vueuse/shared@10.11.1': + resolution: {integrity: sha512-LHpC8711VFZlDaYUXEBbFBCQ7GS3dVU9mjOhhMhXP6txTV4EhYQg/KGnQuvt/sPAtoUKq7VVUnL6mVtFoL42sA==} '@vueuse/shared@12.8.2': resolution: {integrity: sha512-dznP38YzxZoNloI0qpEfpkms8knDtaoQ6Y/sfS0L7Yki4zh40LFHEhur0odJC6xTHG5dxWVPiUWBXn+wCG2s5w==} @@ -1172,9 +1175,6 @@ packages: peerDependencies: vue: ^3.5.0 - '@vueuse/shared@9.13.0': - resolution: {integrity: sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw==} - acorn@8.15.0: resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} engines: {node: '>=0.4.0'} @@ -1349,6 +1349,9 @@ packages: dayjs@1.11.18: resolution: {integrity: sha512-zFBQ7WFRvVRhKcWoUh+ZA1g2HVgUbsZm9sbddh8EC5iv93sui8DVVz1Npvz+r6meo9VKfa8NyLWBsQK1VvIKPA==} + dayjs@1.11.19: + resolution: {integrity: sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw==} + debug@4.4.1: resolution: {integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==} engines: {node: '>=6.0'} @@ -1406,10 +1409,10 @@ packages: electron-to-chromium@1.5.211: resolution: {integrity: sha512-IGBvimJkotaLzFnwIVgW9/UD/AOJ2tByUmeOrtqBfACSbAw5b1G0XpvdaieKyc7ULmbwXVx+4e4Be8pOPBrYkw==} - element-plus@2.11.1: - resolution: {integrity: sha512-weYFIniyNXTAe9vJZnmZpYzurh4TDbdKhBsJwhbzuo0SDZ8PLwHVll0qycJUxc6SLtH+7A9F7dvdDh5CnqeIVA==} + element-plus@2.13.1: + resolution: {integrity: sha512-eG4BDBGdAsUGN6URH1PixzZb0ngdapLivIk1meghS1uEueLvQ3aljSKrCt5x6sYb6mUk8eGtzTQFgsPmLavQcA==} peerDependencies: - vue: ^3.2.0 + vue: ^3.3.0 entities@4.5.0: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} @@ -1452,9 +1455,6 @@ packages: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} - escape-html@1.0.3: - resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} - escape-string-regexp@5.0.0: resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} engines: {node: '>=12'} @@ -3522,7 +3522,7 @@ snapshots: '@types/trusted-types@2.0.7': {} - '@types/web-bluetooth@0.0.16': {} + '@types/web-bluetooth@0.0.20': {} '@types/web-bluetooth@0.0.21': {} @@ -3611,6 +3611,16 @@ snapshots: '@vueuse/shared': 14.1.0(vue@3.5.20) vue: 3.5.20 + '@vueuse/core@10.11.1(vue@3.5.20)': + dependencies: + '@types/web-bluetooth': 0.0.20 + '@vueuse/metadata': 10.11.1 + '@vueuse/shared': 10.11.1(vue@3.5.20) + vue-demi: 0.14.10(vue@3.5.20) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + '@vueuse/core@12.8.2': dependencies: '@types/web-bluetooth': 0.0.21 @@ -3627,21 +3637,18 @@ snapshots: '@vueuse/shared': 14.1.0(vue@3.5.20) vue: 3.5.20 - '@vueuse/core@9.13.0(vue@3.5.20)': - dependencies: - '@types/web-bluetooth': 0.0.16 - '@vueuse/metadata': 9.13.0 - '@vueuse/shared': 9.13.0(vue@3.5.20) - vue-demi: 0.14.10(vue@3.5.20) - transitivePeerDependencies: - - '@vue/composition-api' - - vue + '@vueuse/metadata@10.11.1': {} '@vueuse/metadata@12.8.2': {} '@vueuse/metadata@14.1.0': {} - '@vueuse/metadata@9.13.0': {} + '@vueuse/shared@10.11.1(vue@3.5.20)': + dependencies: + vue-demi: 0.14.10(vue@3.5.20) + transitivePeerDependencies: + - '@vue/composition-api' + - vue '@vueuse/shared@12.8.2': dependencies: @@ -3653,13 +3660,6 @@ snapshots: dependencies: vue: 3.5.20 - '@vueuse/shared@9.13.0(vue@3.5.20)': - dependencies: - vue-demi: 0.14.10(vue@3.5.20) - transitivePeerDependencies: - - '@vue/composition-api' - - vue - acorn@8.15.0: {} ajv@8.17.1: @@ -3859,6 +3859,8 @@ snapshots: dayjs@1.11.18: {} + dayjs@1.11.19: {} + debug@4.4.1: dependencies: ms: 2.1.3 @@ -3907,7 +3909,7 @@ snapshots: electron-to-chromium@1.5.211: {} - element-plus@2.11.1(vue@3.5.20): + element-plus@2.13.1(vue@3.5.20): dependencies: '@ctrl/tinycolor': 3.6.1 '@element-plus/icons-vue': 2.3.2(vue@3.5.20) @@ -3915,10 +3917,9 @@ snapshots: '@popperjs/core': '@sxzz/popperjs-es@2.11.7' '@types/lodash': 4.17.20 '@types/lodash-es': 4.17.12 - '@vueuse/core': 9.13.0(vue@3.5.20) + '@vueuse/core': 10.11.1(vue@3.5.20) async-validator: 4.2.5 - dayjs: 1.11.18 - escape-html: 1.0.3 + dayjs: 1.11.19 lodash: 4.17.21 lodash-es: 4.17.21 lodash-unified: 1.0.3(@types/lodash-es@4.17.12)(lodash-es@4.17.21)(lodash@4.17.21) @@ -4044,8 +4045,6 @@ snapshots: escalade@3.2.0: {} - escape-html@1.0.3: {} - escape-string-regexp@5.0.0: {} estree-walker@1.0.1: {} diff --git a/mail-vue/src/components/email-scroll/index.vue b/mail-vue/src/components/email-scroll/index.vue index d9302ba..f748c6d 100644 --- a/mail-vue/src/components/email-scroll/index.vue +++ b/mail-vue/src/components/email-scroll/index.vue @@ -37,12 +37,14 @@ v-if="!loading && emailList.length > 0" :key="keyCount" > -