diff --git a/mail-vue/src/App.vue b/mail-vue/src/App.vue index 424d1c6..6909942 100644 --- a/mail-vue/src/App.vue +++ b/mail-vue/src/App.vue @@ -9,6 +9,7 @@ import { watch } from "vue"; import {useSettingStore} from "@/store/setting.js"; const settingStore = useSettingStore() import zhCn from 'element-plus/es/locale/lang/zh-cn'; +import('@/icons/index.js') const { locale } = useI18n() locale.value = settingStore.lang watch(() => settingStore.lang, () => locale.value = settingStore.lang) diff --git a/mail-vue/src/assets/fonts/HarmonyOS_Sans_SC_Regular.woff2 b/mail-vue/src/assets/fonts/HarmonyOS_Sans_SC_Regular.woff2 deleted file mode 100644 index e8b9bc7..0000000 Binary files a/mail-vue/src/assets/fonts/HarmonyOS_Sans_SC_Regular.woff2 and /dev/null differ diff --git a/mail-vue/src/axios/index.js b/mail-vue/src/axios/index.js index eb6b7f9..5c18c3b 100644 --- a/mail-vue/src/axios/index.js +++ b/mail-vue/src/axios/index.js @@ -66,9 +66,7 @@ http.interceptors.response.use((res) => { }) reject(data) } - setTimeout(() => { - resolve(data.data) - },0) + resolve(data.data) }) }, (error) => { diff --git a/mail-vue/src/components/email-scroll/index.vue b/mail-vue/src/components/email-scroll/index.vue index 464d714..acaa455 100644 --- a/mail-vue/src/components/email-scroll/index.vue +++ b/mail-vue/src/components/email-scroll/index.vue @@ -720,6 +720,12 @@ function loadData() { display: grid; gap: 5px; grid-template-columns: auto 1fr; + + > span:last-child { + display: flex; + align-items: center; + } + @media (min-width: 1366px) { grid-template-columns: 1fr; > span:last-child { diff --git a/mail-vue/src/components/shadow-html/index.vue b/mail-vue/src/components/shadow-html/index.vue index b7e1030..9a26a65 100644 --- a/mail-vue/src/components/shadow-html/index.vue +++ b/mail-vue/src/components/shadow-html/index.vue @@ -18,19 +18,6 @@ const container = ref(null) const contentBox = ref(null) let shadowRoot = null -// 确保字体在 Shadow DOM 中可用 -function loadFontInShadow() { - const style = document.createElement('style') - style.textContent = ` - @font-face { - font-family: 'HarmonyOS'; - src: url('@/assets/fonts/HarmonyOS_Sans_SC_Regular.woff2') format('woff2'); - font-display: swap; - } - ` - document.head.appendChild(style) -} - function updateContent() { if (!shadowRoot) return; @@ -101,7 +88,6 @@ function autoScale() { } onMounted(() => { - loadFontInShadow() // 预加载字体 shadowRoot = container.value.attachShadow({ mode: 'open' }) updateContent() autoScale() @@ -118,12 +104,11 @@ watch(() => props.html, () => { width: 100%; height: 100%; overflow: hidden; - font-family: 'HarmonyOS', -apple-system, BlinkMacSystemFont, - 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; + font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; } .content-html { width: 100%; height: 100%; } - \ No newline at end of file + diff --git a/mail-vue/src/components/tiny-editor/index.vue b/mail-vue/src/components/tiny-editor/index.vue index aa06f23..5c384c3 100644 --- a/mail-vue/src/components/tiny-editor/index.vue +++ b/mail-vue/src/components/tiny-editor/index.vue @@ -106,9 +106,6 @@ function initEditor() { plugins: 'link image advlist lists emoticons fullscreen table preview code', toolbar: 'bold emoticons forecolor backcolor italic fontsize | alignleft aligncenter alignright alignjustify | outdent indent | bullist numlist | link image | table code preview fullscreen', toolbar_mode: 'scrolling', - mobile: { - toolbar: 'fullscreen bold emoticons forecolor backcolor italic fontsize | alignleft aligncenter alignright alignjustify | outdent indent | bullist numlist | link image | table code preview ', - }, font_size_formats: '8px 10px 12px 14px 16px 18px 24px 36px', emoticons_search: false, language: language.value, diff --git a/mail-vue/src/i18n/en.js b/mail-vue/src/i18n/en.js index f7c0d12..cb465aa 100644 --- a/mail-vue/src/i18n/en.js +++ b/mail-vue/src/i18n/en.js @@ -251,7 +251,7 @@ const en = { supportDesc: 'Buy me tea', featDesc: 'Feature Description', emailInterception: 'Email Interception', - emailInterceptionDesc: 'Enter a domain or email address to prevent users from receiving emails from certain websites.', + emailInterceptionDesc: 'Enter a domain or email address to prevent users from receiving emails from certain websites (Enter * to block all).', availableDomains: 'Available Domains', availableDomainsDesc: 'Restrict users to email domains specified. Domains not on the approved list will be blocked from registration, adding email addresses, and sending/receiving emails. If left blank, all domains will be allowed by default.', backgroundUrlDesc: 'Image URL', diff --git a/mail-vue/src/i18n/zh.js b/mail-vue/src/i18n/zh.js index 5781f07..734c7d6 100644 --- a/mail-vue/src/i18n/zh.js +++ b/mail-vue/src/i18n/zh.js @@ -251,7 +251,7 @@ const zh = { supportDesc: '请我喝杯奶茶', featDesc: '功能说明', emailInterception: '邮件拦截', - emailInterceptionDesc: '输入邮箱或域名拦截邮件,可用于禁止用户接收某些网站的邮件', + emailInterceptionDesc: '输入邮箱或域名拦截邮件,可用于禁止用户接收某些网站的邮件,输入*拦截所有', availableDomains: '可用域名', availableDomainsDesc: '限制用户只能使用指定的域名邮箱,不在配置名单内的域名会被禁止使用注册添加邮箱,接收发送邮件等功能,留空默认允许可用所有域名', backgroundUrlDesc: '在线图片链接', diff --git a/mail-vue/src/icons/index.js b/mail-vue/src/icons/index.js new file mode 100644 index 0000000..04486e9 --- /dev/null +++ b/mail-vue/src/icons/index.js @@ -0,0 +1,612 @@ +import {addCollection} from "@iconify/vue"; +addCollection({ + "prefix": "hugeicons", + "lastModified": 1757879391, + "aliases": {}, + "width": 24, + "height": 24, + "icons": { + "mailbox-01": { + "body": "" + }, + "quill-write-01": { + "body": "" + } + } +}) +addCollection({ + "prefix": "cil", + "lastModified": 1721920996, + "aliases": {}, + "width": 512, + "height": 512, + "icons": { + "send": { + "body": "" + } + } +}) +addCollection({ + "prefix": "ep", + "lastModified": 1754542231, + "aliases": {}, + "width": 1024, + "height": 1024, + "icons": { + "document": { + "body": "" + } + } +}) +addCollection({ + "prefix": "solar", + "lastModified": 1754901129, + "aliases": {}, + "width": 24, + "height": 24, + "icons": { + "star-line-duotone": { + "body": "" + }, + "moon-linear": { + "body": "" + } + } +}) +addCollection({ + "prefix": "fluent", + "lastModified": 1758086349, + "aliases": {}, + "width": 20, + "height": 20, + "icons": { + "data-pie-20-regular": { + "body": "" + }, + "fingerprint-20-filled": { + "body": "" + }, + "lock-closed-16-regular": { + "body": "", + "width": 16, + "height": 16 + }, + "mail-list-28-regular": { + "body": "", + "width": 28, + "height": 28 + }, + "settings-48-regular": { + "body": "", + "width": 48, + "height": 48 + }, + "broom-sparkle-16-regular": { + "body": "", + "width": 16, + "height": 16 + }, + "settings-24-filled": { + "body": "", + "width": 24, + "height": 24 + } + } +}) +addCollection({ + "prefix": "si", + "lastModified": 1758603955, + "aliases": {}, + "width": 24, + "height": 24, + "icons": { + "user-alt-2-line": { + "body": "" + } + } +}) +addCollection({ + "prefix": "eos-icons", + "lastModified": 1754898926, + "aliases": {}, + "width": 24, + "height": 24, + "icons": { + "system-ok-outlined": { + "body": "" + } + } +}) +addCollection({ + "prefix": "mingcute", + "lastModified": 1754900188, + "aliases": {}, + "width": 24, + "height": 24, + "icons": { + "down-small-fill": { + "body": "" + }, + "sun-fill": { + "body": "" + } + } +}) +addCollection({ + "prefix": "streamline-plump", + "lastModified": 1748851497, + "aliases": {}, + "width": 48, + "height": 48, + "icons": { + "announcement-megaphone": { + "body": "" + } + } +}) +addCollection({ + "prefix": "ion", + "lastModified": 1754899739, + "aliases": {}, + "width": 512, + "height": 512, + "icons": { + "add-outline": { + "body": "" + }, + "reload": { + "body": "" + } + } +}) +addCollection({ + "prefix": "material-symbols-light", + "lastModified": 1758603830, + "aliases": {}, + "width": 24, + "height": 24, + "icons": { + "close-rounded": { + "body": "" + }, + "timer-arrow-down-outline": { + "body": "" + }, + "arrow-back-ios-new": { + "body": "" + }, + "timer-arrow-up-outline": { + "body": "" + } + } +}) +addCollection({ + "prefix": "akar-icons", + "lastModified": 1754898562, + "aliases": {}, + "width": 24, + "height": 24, + "icons": { + "dot-grid-fill": { + "body": "" + } + } +}) +addCollection({ + "prefix": "iconamoon", + "lastModified": 1722794093, + "aliases": {}, + "width": 24, + "height": 24, + "icons": { + "attachment-fill": { + "body": "" + } + } +}) +addCollection({ + "prefix": "icon-park-outline", + "lastModified": 1754899616, + "aliases": {}, + "width": 48, + "height": 48, + "icons": { + "clear-format": { + "body": "" + } + } +}) +addCollection({ + "prefix": "eva", + "lastModified": 1754898939, + "aliases": {}, + "width": 24, + "height": 24, + "icons": { + "email-fill": { + "body": "" + } + } +}) +addCollection({ + "prefix": "fluent-color", + "lastModified": 1754899131, + "aliases": {}, + "width": 20, + "height": 20, + "icons": { + "clipboard-24": { + "body": "", + "width": 24, + "height": 24 + }, + "star-16": { + "body": "", + "width": 16, + "height": 16 + }, + "document-32": { + "body": "", + "width": 32, + "height": 32 + } + } +}) +addCollection({ + "prefix": "bi", + "lastModified": 1754898645, + "aliases": {}, + "icons": { + "send-arrow-up-fill": { + "body": "" + }, + "send-check-fill": { + "body": "" + }, + "send-exclamation-fill": { + "body": "" + }, + "send-x-fill": { + "body": "" + } + } +}) +addCollection({ + "prefix": "lets-icons", + "lastModified": 1722794599, + "aliases": {}, + "width": 24, + "height": 24, + "icons": { + "e-mail": { + "body": "" + } + } +}) +addCollection({ + "prefix": "iconoir", + "lastModified": 1754899722, + "aliases": {}, + "width": 24, + "height": 24, + "icons": { + "user": { + "body": "" + }, + "search": { + "body": "" + } + } +}) +addCollection({ + "prefix": "uiw", + "lastModified": 1754901533, + "aliases": {}, + "width": 20, + "height": 20, + "icons": { + "delete": { + "body": "" + } + } +}) +addCollection({ + "prefix": "la", + "lastModified": 1722794143, + "aliases": {}, + "width": 32, + "height": 32, + "icons": { + "reply": { + "body": "" + } + } +}) +addCollection({ + "prefix": "mynaui", + "lastModified": 1754900207, + "aliases": {}, + "width": 24, + "height": 24, + "icons": { + "user": { + "body": "" + }, + "click-solid": { + "body": "" + } + } +}) +addCollection({ + "prefix": "mdi-light", + "lastModified": 1722795143, + "aliases": {}, + "width": 24, + "height": 24, + "icons": { + "email": { + "body": "" + } + } +}) +addCollection({ + "prefix": "mdi", + "lastModified": 1737398331, + "aliases": {}, + "width": 24, + "height": 24, + "icons": { + "email-remove": { + "body": "" + }, + "email-outline": { + "body": "" + } + } +}) +addCollection({ + "prefix": "fe", + "lastModified": 1754899017, + "aliases": {}, + "width": 24, + "height": 24, + "icons": { + "warning": { + "body": "" + } + } +}) +addCollection({ + "prefix": "lsicon", + "lastModified": 1754899856, + "aliases": {}, + "icons": { + "edit-outline": { + "body": "" + } + } +}) +addCollection({ + "prefix": "material-symbols", + "lastModified": 1758603930, + "aliases": {}, + "width": 24, + "height": 24, + "icons": { + "add-rounded": { + "body": "" + }, + "delete-outline-rounded": { + "body": "" + }, + "edit-outline-sharp": { + "body": "" + } + } +}) +addCollection({ + "prefix": "ic", + "lastModified": 1754899579, + "aliases": {}, + "width": 24, + "height": 24, + "icons": { + "round-list": { + "body": "" + }, + "round-mark-email-read": { + "body": "" + } + } +}) +addCollection({ + "prefix": "qlementine-icons", + "lastModified": 1754900552, + "aliases": {}, + "icons": { + "version-control-16": { + "body": "" + } + } +}) +addCollection({ + "prefix": "codicon", + "lastModified": 1757879148, + "aliases": {}, + "icons": { + "github-inverted": { + "body": "" + } + } +}) +addCollection({ + "prefix": "logos", + "lastModified": 1754899799, + "aliases": {}, + "width": 256, + "height": 256, + "icons": { + "telegram": { + "body": "" + } + } +}) +addCollection({ + "prefix": "simple-icons", + "lastModified": 1758603977, + "aliases": {}, + "width": 24, + "height": 24, + "icons": { + "buymeacoffee": { + "body": "" + } + } +}) +addCollection({ + "prefix": "ph", + "lastModified": 1714973607, + "aliases": {}, + "width": 256, + "height": 256, + "icons": { + "image": { + "body": "" + } + } +}) +addCollection({ + "prefix": "pepicons-pencil", + "lastModified": 1754900451, + "aliases": {}, + "width": 26, + "height": 26, + "icons": { + "expand": { + "body": "", + "width": 20, + "height": 20 + } + } +}) +addCollection({ + "prefix": "fluent-color", + "lastModified": 1754899131, + "aliases": {}, + "width": 20, + "height": 20, + "icons": { + "image-24": { + "body": "", + "width": 24, + "height": 24 + } + } +}) +addCollection({ + "prefix": "mdi", + "lastModified": 1737398331, + "aliases": {}, + "width": 24, + "height": 24, + "icons": { + "zip-box": { + "body": "" + } + } +}) +addCollection({ + "prefix": "lineicons", + "lastModified": 1754899780, + "aliases": {}, + "width": 24, + "height": 24, + "icons": { + "apple-music": { + "body": "" + } + } +}) +addCollection({ + "prefix": "solar", + "lastModified": 1754901129, + "aliases": {}, + "width": 24, + "height": 24, + "icons": { + "paperclip-rounded-2-bold": { + "body": "" + } + } +}) +addCollection({ + "prefix": "fluent-color", + "lastModified": 1754899131, + "aliases": {}, + "width": 20, + "height": 20, + "icons": { + "document-48": { + "body": "", + "width": 48, + "height": 48 + } + } +}) +addCollection({ + "prefix": "vscode-icons", + "lastModified": 1756099999, + "aliases": {}, + "width": 32, + "height": 32, + "icons": { + "file-type-powerpoint": { + "body": "" + }, + "file-type-word": { + "body": "" + }, + "file-type-excel": { + "body": "" + } + } +}) +addCollection({ + "prefix": "material-icon-theme", + "lastModified": 1757879437, + "aliases": {}, + "width": 32, + "height": 32, + "icons": { + "pdf": { + "body": "", + "width": 24, + "height": 24 + } + } +}) +addCollection({ + "prefix": "fluent", + "lastModified": 1758086349, + "aliases": {}, + "width": 20, + "height": 20, + "icons": { + "video-clip-20-filled": { + "body": "" + } + } +}) +addCollection({ + "prefix": "system-uicons", + "lastModified": 1754901428, + "aliases": {}, + "width": 21, + "height": 21, + "icons": { + "push-down": { + "body": "" + } + } +}) + diff --git a/mail-vue/src/init/init.js b/mail-vue/src/init/init.js index 3ef5117..3d0bc10 100644 --- a/mail-vue/src/init/init.js +++ b/mail-vue/src/init/init.js @@ -5,7 +5,6 @@ import {loginUserInfo} from "@/request/my.js"; import {permsToRouter} from "@/perm/perm.js"; import router from "@/router"; import {websiteConfig} from "@/request/setting.js"; -import {cvtR2Url} from "@/utils/convert.js"; import i18n from "@/i18n/index.js"; export async function init() { diff --git a/mail-vue/src/views/sys-setting/index.vue b/mail-vue/src/views/sys-setting/index.vue index de91e27..f4b4a8f 100644 --- a/mail-vue/src/views/sys-setting/index.vue +++ b/mail-vue/src/views/sys-setting/index.vue @@ -669,7 +669,7 @@ defineOptions({ name: 'sys-setting' }) -const currentVersion = 'v2.0.0' +const currentVersion = 'v2.1.0' const hasUpdate = ref(false) let getUpdateErrorCount = 1; const {t, locale} = useI18n();