修复全部邮件权限无效问题

This commit is contained in:
eoao
2025-08-22 01:05:00 +08:00
parent 200913069c
commit ffcb5fed53
10 changed files with 222 additions and 196 deletions
+84 -76
View File
@@ -1,97 +1,105 @@
<!doctype html>
<html lang="en" class="dark">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<title></title>
<link rel="icon" href="./src/assets/favicon.svg" type="image/svg+xml">
<link href="https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;700&display=swap" rel="stylesheet">
<script src="https://challenges.cloudflare.com/turnstile/v0/api.js" async defer></script>
<meta charset="UTF-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<title></title>
<link rel="icon" href="./src/assets/favicon.svg" type="image/svg+xml">
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;600&display=swap" rel="stylesheet">
<script src="https://challenges.cloudflare.com/turnstile/v0/api.js" async defer></script>
</head>
<body>
<div id="loading-first">
<div class="loading-icon">
<svg class="circular" viewBox="0 0 20 20">
<g class="loading-path">
<circle r="3.375" class="dot1" rx="0" ry="0" />
<circle r="3.375" class="dot2" rx="0" ry="0" />
<circle r="3.375" class="dot4" rx="0" ry="0" />
<circle r="3.375" class="dot3" rx="0" ry="0" />
</g>
</svg>
</div>
<div class="loading-icon">
<svg class="circular" viewBox="0 0 20 20">
<g class="loading-path">
<circle r="3.375" class="dot1" rx="0" ry="0"/>
<circle r="3.375" class="dot2" rx="0" ry="0"/>
<circle r="3.375" class="dot4" rx="0" ry="0"/>
<circle r="3.375" class="dot3" rx="0" ry="0"/>
</g>
</svg>
</div>
</div>
<div id="app"></div>
<script>
const uiStoreStr = localStorage.getItem('ui')
if (uiStoreStr) {
const uiStore = JSON.parse(uiStoreStr)
const doc = document.querySelector('#loading-first')
doc.style.background = uiStore.dark ? '#141414' : '#FFFFFF'
}
</script>
<script type="module" src="/src/main.js"></script>
</body>
</html>
<style>
#loading-first {
position: fixed;
left: 0;
top: 0;
height: 100%;
width: 100%;
display: flex;
justify-content: center;
align-items: center;
background: #fff;
z-index: 500;
}
.loading-icon {
display: inline-flex;
align-items: center;
justify-content: center;
font-size: 30px;
}
#loading-first {
position: fixed;
left: 0;
top: 0;
height: 100%;
width: 100%;
display: flex;
justify-content: center;
align-items: center;
z-index: 500;
}
.circular {
height: 30px;
width: 30px;
animation: loading-rotate 1s linear infinite;
}
.loading-icon {
display: inline-flex;
align-items: center;
justify-content: center;
font-size: 30px;
}
.loading-path .dot1 {
transform: translate(3.75px, 3.75px);
fill: #409EFF;
animation: custom-spin-move 1s infinite linear alternate;
opacity: 0.3;
}
.circular {
height: 30px;
width: 30px;
animation: loading-rotate 1s linear infinite;
}
.loading-path .dot2 {
transform: translate(calc(100% - 3.75px), 3.75px);
fill: #409EFF;
animation: custom-spin-move 1s infinite linear alternate;
opacity: 0.3;
animation-delay: 0.4s;
}
.loading-path .dot1 {
transform: translate(3.75px, 3.75px);
fill: #409EFF;
animation: custom-spin-move 1s infinite linear alternate;
opacity: 0.3;
}
.loading-path .dot3 {
transform: translate(3.75px, calc(100% - 3.75px));
fill: #409EFF;
animation: custom-spin-move 1s infinite linear alternate;
opacity: 0.3;
animation-delay: 1.2s;
}
.loading-path .dot2 {
transform: translate(calc(100% - 3.75px), 3.75px);
fill: #409EFF;
animation: custom-spin-move 1s infinite linear alternate;
opacity: 0.3;
animation-delay: 0.4s;
}
.loading-path .dot4 {
transform: translate(calc(100% - 3.75px), calc(100% - 3.75px));
fill: #409EFF;
animation: custom-spin-move 1s infinite linear alternate;
opacity: 0.3;
animation-delay: 0.8s;
}
.loading-path .dot3 {
transform: translate(3.75px, calc(100% - 3.75px));
fill: #409EFF;
animation: custom-spin-move 1s infinite linear alternate;
opacity: 0.3;
animation-delay: 1.2s;
}
@keyframes loading-rotate {
to {
transform: rotate(360deg);
}
}
.loading-path .dot4 {
transform: translate(calc(100% - 3.75px), calc(100% - 3.75px));
fill: #409EFF;
animation: custom-spin-move 1s infinite linear alternate;
opacity: 0.3;
animation-delay: 0.8s;
}
@keyframes custom-spin-move {
to {
opacity: 1;
}
@keyframes loading-rotate {
to {
transform: rotate(360deg);
}
</style>
}
@keyframes custom-spin-move {
to {
opacity: 1;
}
}
</style>
-1
View File
@@ -498,7 +498,6 @@ path[fill="#ffdda1"] {
.account {
font-weight: 600;
margin-bottom: 20px;
color: #333;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
+1 -1
View File
@@ -31,7 +31,7 @@
<Icon icon="fluent:settings-48-regular" width="20" height="20" />
<span class="menu-name" style="margin-left: 21px">{{$t('settings')}}</span>
</el-menu-item>
<div class="manage-title" v-perm="['user:query','role:query','setting:query','analysis:query','reg-key:query']">
<div class="manage-title" v-perm="['all-email:query','user:query','role:query','setting:query','analysis:query','reg-key:query']">
<div>{{$t('manage')}}</div>
</div>
<el-menu-item @click="router.push({name: 'analysis'})" index="analysis" v-perm="'analysis:query'"
+12 -8
View File
@@ -252,12 +252,6 @@ function formatName(email) {
</style>
<style lang="scss" scoped>
.breadcrumb-item {
font-weight: bold;
font-size: 14px;
white-space: nowrap;
}
:deep(.el-popper.is-pure) {
border-radius: 6px;
}
@@ -357,7 +351,7 @@ function formatName(email) {
display: grid;
height: 100%;
gap: 10px;
grid-template-columns: auto auto 1fr;
grid-template-columns: 1fr auto auto;
}
.header.not-send {
@@ -385,7 +379,7 @@ function formatName(email) {
.writer-text {
margin-left: 15px;
font-size: 14px;
font-weight: bold;
font-weight: bold;;
}
}
}
@@ -394,6 +388,16 @@ function formatName(email) {
display: inline-flex;
align-items: center;
height: 100%;
min-width: 0;
}
.breadcrumb-item {
font-weight: bold;
font-size: 14px;
color: var(--el-text-color-primary);
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.toolbar {
+20 -13
View File
@@ -347,18 +347,20 @@
</div>
<div class="concerning-item">
<span>{{ $t('community') }} : </span>
<el-button @click="jump('https://github.com/eoao/cloud-mail')">
Github
<template #icon>
<Icon icon="codicon:github-inverted" width="22" height="22"/>
</template>
</el-button>
<el-button @click="jump('https://t.me/cloud_mail_tg')">
Telegram
<template #icon>
<Icon icon="logos:telegram" width="30" height="30"/>
</template>
</el-button>
<div class="community">
<el-button @click="jump('https://github.com/eoao/cloud-mail')">
Github
<template #icon>
<Icon icon="codicon:github-inverted" width="22" height="22"/>
</template>
</el-button>
<el-button @click="jump('https://t.me/cloud_mail_tg')">
Telegram
<template #icon>
<Icon icon="logos:telegram" width="30" height="30"/>
</template>
</el-button>
</div>
</div>
<div class="concerning-item">
<span>{{ $t('support') }} : </span>
@@ -1499,10 +1501,14 @@ function editSetting(settingForm, refreshStatus = true) {
display: flex;
align-items: center;
.community {
display: flex;
row-gap: 10px;
flex-wrap: wrap;
}
:deep(.el-button) {
padding: 0 10px;
font-weight: normal;
i {
font-size: 22px;
}
@@ -1511,6 +1517,7 @@ function editSetting(settingForm, refreshStatus = true) {
> span:first-child {
font-weight: normal;
padding-right: 20px;
white-space: nowrap;
}
}