From 57c79e64cec46110d81e2356c7e43e619618d574 Mon Sep 17 00:00:00 2001 From: dreamhunter2333 Date: Sun, 23 Aug 2026 20:07:38 +0800 Subject: [PATCH] refactor: isolate user send mail page --- frontend/src/views/index/SendMail.vue | 70 +-- frontend/src/views/user/SendMail.vue | 488 +++++++++++++++++++++ frontend/src/views/user/UserMailClient.vue | 2 +- 3 files changed, 501 insertions(+), 59 deletions(-) create mode 100644 frontend/src/views/user/SendMail.vue diff --git a/frontend/src/views/index/SendMail.vue b/frontend/src/views/index/SendMail.vue index b710f56..7acdb87 100644 --- a/frontend/src/views/index/SendMail.vue +++ b/frontend/src/views/index/SendMail.vue @@ -16,27 +16,6 @@ const message = useMessage() const isPreview = ref(false) const editorRef = shallowRef() const sending = ref(false) -const userAddressSettings = ref({ - address: '', - send_balance: 0, -}) - -const props = defineProps({ - addressId: { - type: Number, - default: 0, - }, - addressOptions: { - type: Array, - default: () => [], - }, - addressLoading: { - type: Boolean, - default: false, - }, -}) - -const emit = defineEmits(['addressScroll', 'sent', 'update:addressId']) const { @@ -46,23 +25,6 @@ const { const { t } = useScopedI18n('views.index.SendMail') -const isUserAddressMode = computed(() => props.addressId > 0) -const mailSettings = computed(() => ( - isUserAddressMode.value ? userAddressSettings.value : settings.value -)) - -const getApiPath = (path) => isUserAddressMode.value - ? `/user_api/address/${props.addressId}/${path}` - : `/api/${path}` - -const refreshSettings = async () => { - if (!isUserAddressMode.value) { - await api.getSettings() - return - } - userAddressSettings.value = await api.fetch(getApiPath('settings')) -} - const contentTypes = computed(() => [ { label: t('text'), value: 'text' }, { label: t('html'), value: 'html' }, @@ -137,7 +99,7 @@ const send = async () => { sending.value = true try { - await api.fetch(getApiPath('send_mail'), + await api.fetch(`/api/send_mail`, { method: 'POST', body: JSON.stringify(payload) @@ -152,11 +114,7 @@ const send = async () => { } isPreview.value = false message.success(t("successSend")); - if (isUserAddressMode.value) { - emit('sent') - } else { - indexTab.value = 'sendbox' - } + indexTab.value = 'sendbox' } catch (error) { message.error(error.message || "error"); } finally { @@ -166,14 +124,14 @@ const send = async () => { const requestAccess = async () => { try { - await api.fetch(getApiPath('request_send_mail_access'), + await api.fetch(`/api/request_send_mail_access`, { method: 'POST', body: JSON.stringify({}) } ) message.success(t("requestSuccess")) - await refreshSettings(); + await api.getSettings(); } catch (error) { message.error(error.message || "error"); } @@ -208,30 +166,30 @@ const handleCreated = (editor) => { onMounted(async () => { // make sure user_id is fetched if (!userSettings.value.user_id) await api.getUserSettings(message); - await refreshSettings(); + await api.getSettings(); })