feat: 添加登录,注册,忘记密码功能

This commit is contained in:
2025-02-11 03:02:41 +08:00
parent a5f04356ee
commit e5fe678eb6
83 changed files with 3007 additions and 979 deletions

View File

@@ -147,13 +147,13 @@ function setFalse(Doms): any {
const stretchTypeOptions = computed<Array<OptionsType>>(() => {
return [
{
label: t("panel.pureStretchFixed"),
tip: t("panel.pureStretchFixedTip"),
label: t("panel:StretchFixed"),
tip: t("panel:StretchFixedTip"),
value: "fixed"
},
{
label: t("panel.pureStretchCustom"),
tip: t("panel.pureStretchCustomTip"),
label: t("panel:StretchCustom"),
tip: t("panel:StretchCustomTip"),
value: "custom"
}
];
@@ -195,24 +195,24 @@ const pClass = computed(() => {
const themeOptions = computed<Array<OptionsType>>(() => {
return [
{
label: t("panel.pureOverallStyleLight"),
label: t("panel:OverallStyleLight"),
icon: DayIcon,
theme: "light",
tip: t("panel.pureOverallStyleLightTip"),
tip: t("panel:OverallStyleLightTip"),
iconAttrs: { fill: isDark.value ? "#fff" : "#000" }
},
{
label: t("panel.pureOverallStyleDark"),
label: t("panel:OverallStyleDark"),
icon: DarkIcon,
theme: "dark",
tip: t("panel.pureOverallStyleDarkTip"),
tip: t("panel:OverallStyleDarkTip"),
iconAttrs: { fill: isDark.value ? "#fff" : "#000" }
},
{
label: t("panel.pureOverallStyleSystem"),
label: t("panel:OverallStyleSystem"),
icon: SystemIcon,
theme: "system",
tip: t("panel.pureOverallStyleSystemTip"),
tip: t("panel:OverallStyleSystemTip"),
iconAttrs: { fill: isDark.value ? "#fff" : "#000" }
}
];
@@ -221,18 +221,18 @@ const themeOptions = computed<Array<OptionsType>>(() => {
const markOptions = computed<Array<OptionsType>>(() => {
return [
{
label: t("panel.pureTagsStyleSmart"),
tip: t("panel.pureTagsStyleSmartTip"),
label: t("panel:TagsStyleSmart"),
tip: t("panel:TagsStyleSmartTip"),
value: "smart"
},
{
label: t("panel.pureTagsStyleCard"),
tip: t("panel.pureTagsStyleCardTip"),
label: t("panel:TagsStyleCard"),
tip: t("panel:TagsStyleCardTip"),
value: "card"
},
{
label: t("panel.pureTagsStyleChrome"),
tip: t("panel.pureTagsStyleChromeTip"),
label: t("panel:TagsStyleChrome"),
tip: t("panel:TagsStyleChromeTip"),
value: "chrome"
}
];
@@ -317,7 +317,7 @@ onUnmounted(() => removeMatchMedia);
<template>
<LayPanel>
<div class="p-5">
<p :class="pClass">{{ t("panel.pureOverallStyle") }}</p>
<p :class="pClass">{{ t("panel:OverallStyle") }}</p>
<Segmented
resize
class="select-none"
@@ -335,7 +335,7 @@ onUnmounted(() => removeMatchMedia);
"
/>
<p :class="['mt-5', pClass]">{{ t("panel.pureThemeColor") }}</p>
<p :class="['mt-5', pClass]">{{ t("panel:ThemeColor") }}</p>
<ul class="theme-color">
<li
v-for="(item, index) in themeColors"
@@ -354,12 +354,12 @@ onUnmounted(() => removeMatchMedia);
</li>
</ul>
<p :class="['mt-5', pClass]">{{ t("panel.pureLayoutModel") }}</p>
<p :class="['mt-5', pClass]">{{ t("panel:LayoutModel") }}</p>
<ul class="pure-theme">
<li
ref="verticalRef"
v-tippy="{
content: t('panel.pureVerticalTip'),
content: t('panel:VerticalTip'),
zIndex: 41000
}"
:class="layoutTheme.layout === 'vertical' ? 'is-select' : ''"
@@ -372,7 +372,7 @@ onUnmounted(() => removeMatchMedia);
v-if="device !== 'mobile'"
ref="horizontalRef"
v-tippy="{
content: t('panel.pureHorizontalTip'),
content: t('panel:HorizontalTip'),
zIndex: 41000
}"
:class="layoutTheme.layout === 'horizontal' ? 'is-select' : ''"
@@ -385,7 +385,7 @@ onUnmounted(() => removeMatchMedia);
v-if="device !== 'mobile'"
ref="mixRef"
v-tippy="{
content: t('panel.pureMixTip'),
content: t('panel:MixTip'),
zIndex: 41000
}"
:class="layoutTheme.layout === 'mix' ? 'is-select' : ''"
@@ -397,7 +397,7 @@ onUnmounted(() => removeMatchMedia);
</ul>
<span v-if="useAppStoreHook().getViewportWidth > 1280">
<p :class="['mt-5', pClass]">{{ t("panel.pureStretch") }}</p>
<p :class="['mt-5', pClass]">{{ t("panel:Stretch") }}</p>
<Segmented
resize
class="mb-2 select-none"
@@ -440,7 +440,7 @@ onUnmounted(() => removeMatchMedia);
</button>
</span>
<p :class="['mt-4', pClass]">{{ t("panel.pureTagsStyle") }}</p>
<p :class="['mt-4', pClass]">{{ t("panel:TagsStyle") }}</p>
<Segmented
resize
class="select-none"
@@ -450,46 +450,46 @@ onUnmounted(() => removeMatchMedia);
/>
<p class="mt-5 font-medium text-sm dark:text-white">
{{ t("panel.pureInterfaceDisplay") }}
{{ t("panel:InterfaceDisplay") }}
</p>
<ul class="setting">
<li>
<span class="dark:text-white">{{ t("panel.pureGreyModel") }}</span>
<span class="dark:text-white">{{ t("panel:GreyModel") }}</span>
<el-switch
v-model="settings.greyVal"
inline-prompt
:active-text="t('buttons.pureOpenText')"
:inactive-text="t('buttons.pureCloseText')"
:active-text="t('buttons:OpenText')"
:inactive-text="t('buttons:CloseText')"
@change="greyChange"
/>
</li>
<li>
<span class="dark:text-white">{{ t("panel.pureWeakModel") }}</span>
<span class="dark:text-white">{{ t("panel:WeakModel") }}</span>
<el-switch
v-model="settings.weakVal"
inline-prompt
:active-text="t('buttons.pureOpenText')"
:inactive-text="t('buttons.pureCloseText')"
:active-text="t('buttons:OpenText')"
:inactive-text="t('buttons:CloseText')"
@change="weekChange"
/>
</li>
<li>
<span class="dark:text-white">{{ t("panel.pureHiddenTags") }}</span>
<span class="dark:text-white">{{ t("panel:HiddenTags") }}</span>
<el-switch
v-model="settings.tabsVal"
inline-prompt
:active-text="t('buttons.pureOpenText')"
:inactive-text="t('buttons.pureCloseText')"
:active-text="t('buttons:OpenText')"
:inactive-text="t('buttons:CloseText')"
@change="tagsChange"
/>
</li>
<li>
<span class="dark:text-white">{{ t("panel.pureHiddenFooter") }}</span>
<span class="dark:text-white">{{ t("panel:HiddenFooter") }}</span>
<el-switch
v-model="settings.hideFooter"
inline-prompt
:active-text="t('buttons.pureOpenText')"
:inactive-text="t('buttons.pureCloseText')"
:active-text="t('buttons:OpenText')"
:inactive-text="t('buttons:CloseText')"
@change="hideFooterChange"
/>
</li>
@@ -500,20 +500,20 @@ onUnmounted(() => removeMatchMedia);
inline-prompt
:active-value="true"
:inactive-value="false"
:active-text="t('buttons.pureOpenText')"
:inactive-text="t('buttons.pureCloseText')"
:active-text="t('buttons:OpenText')"
:inactive-text="t('buttons:CloseText')"
@change="logoChange"
/>
</li>
<li>
<span class="dark:text-white">
{{ t("panel.pureMultiTagsCache") }}
{{ t("panel:MultiTagsCache") }}
</span>
<el-switch
v-model="settings.multiTagsCache"
inline-prompt
:active-text="t('buttons.pureOpenText')"
:inactive-text="t('buttons.pureCloseText')"
:active-text="t('buttons:OpenText')"
:inactive-text="t('buttons:CloseText')"
@change="multiTagsCacheChange"
/>
</li>