mirror of
https://github.com/nagisa77/OpenIsle.git
synced 2026-02-11 01:21:09 +08:00
Compare commits
5 Commits
codex/adap
...
codex/migr
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f5d8f37f96 | ||
|
|
4a4c256568 | ||
|
|
3bb14ca6a3 | ||
|
|
4ed679c4f4 | ||
|
|
51819913a0 |
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div class="base-input">
|
||||
<i v-if="icon" :class="['base-input-icon', icon]" />
|
||||
<component v-if="icon" :is="icon" class="base-input-icon" size="14" />
|
||||
|
||||
<!-- 普通输入框 -->
|
||||
<input
|
||||
@@ -29,7 +29,7 @@ export default {
|
||||
inheritAttrs: false,
|
||||
props: {
|
||||
modelValue: { type: [String, Number], default: '' },
|
||||
icon: { type: String, default: '' },
|
||||
icon: { type: [String, Object], default: '' },
|
||||
type: { type: String, default: 'text' },
|
||||
textarea: { type: Boolean, default: false },
|
||||
},
|
||||
@@ -66,7 +66,6 @@ export default {
|
||||
|
||||
.base-input-icon {
|
||||
opacity: 0.5;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.base-input-text {
|
||||
|
||||
@@ -8,7 +8,12 @@
|
||||
:class="['base-tabs-item', { selected: modelValue === tab.key }]"
|
||||
@click="$emit('update:modelValue', tab.key)"
|
||||
>
|
||||
<i v-if="tab.icon" :class="tab.icon"></i>
|
||||
<component
|
||||
v-if="tab.icon && (typeof tab.icon !== 'string' || !tab.icon.includes(' '))"
|
||||
:is="tab.icon"
|
||||
class="base-tabs-item-icon"
|
||||
/>
|
||||
<i v-else-if="tab.icon" :class="tab.icon"></i>
|
||||
<div class="base-tabs-item-label">{{ tab.label }}</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -72,6 +77,7 @@ function onTouchEnd(e) {
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.base-tabs-item-icon,
|
||||
.base-tabs-item i {
|
||||
margin-right: 6px;
|
||||
}
|
||||
|
||||
@@ -2,20 +2,20 @@
|
||||
<div class="forgot-page">
|
||||
<div class="forgot-content">
|
||||
<div class="forgot-title">找回密码</div>
|
||||
|
||||
|
||||
<div v-if="step === 0" class="step-content">
|
||||
<BaseInput icon="fas fa-envelope" v-model="email" placeholder="邮箱" />
|
||||
<BaseInput icon="Mail" v-model="email" placeholder="邮箱" />
|
||||
<div v-if="emailError" class="error-message">{{ emailError }}</div>
|
||||
<div class="primary-button" @click="sendCode" v-if="!isSending">发送验证码</div>
|
||||
<div class="primary-button disabled" v-else>发送中...</div>
|
||||
</div>
|
||||
<div v-else-if="step === 1" class="step-content">
|
||||
<BaseInput icon="fas fa-envelope" v-model="code" placeholder="邮箱验证码" />
|
||||
<BaseInput icon="Mail" v-model="code" placeholder="邮箱验证码" />
|
||||
<div class="primary-button" @click="verifyCode" v-if="!isVerifying">验证</div>
|
||||
<div class="primary-button disabled" v-else>验证中...</div>
|
||||
</div>
|
||||
<div v-else class="step-content">
|
||||
<BaseInput icon="fas fa-lock" v-model="password" type="password" placeholder="新密码" />
|
||||
<BaseInput icon="Lock" v-model="password" type="password" placeholder="新密码" />
|
||||
<div v-if="passwordError" class="error-message">{{ passwordError }}</div>
|
||||
<div class="primary-button" @click="resetPassword" v-if="!isResetting">重置密码</div>
|
||||
<div class="primary-button disabled" v-else>提交中...</div>
|
||||
|
||||
@@ -6,9 +6,9 @@
|
||||
</div>
|
||||
|
||||
<div class="email-login-page-content">
|
||||
<BaseInput icon="fas fa-envelope" v-model="username" placeholder="邮箱/用户名" />
|
||||
<BaseInput icon="Mail" v-model="username" placeholder="邮箱/用户名" />
|
||||
|
||||
<BaseInput icon="fas fa-lock" v-model="password" type="password" placeholder="密码" />
|
||||
<BaseInput icon="Lock" v-model="password" type="password" placeholder="密码" />
|
||||
|
||||
<div v-if="!isWaitingForLogin" class="login-page-button-primary" @click="submitLogin">
|
||||
<div class="login-page-button-text">登录</div>
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
</div>
|
||||
<div class="form-row username-row">
|
||||
<BaseInput
|
||||
icon="fas fa-user"
|
||||
icon="User"
|
||||
v-model="username"
|
||||
@input="usernameError = ''"
|
||||
placeholder="用户名"
|
||||
|
||||
@@ -6,16 +6,11 @@
|
||||
</div>
|
||||
|
||||
<div v-if="emailStep === 0" class="email-signup-page-content">
|
||||
<BaseInput
|
||||
icon="fas fa-envelope"
|
||||
v-model="email"
|
||||
@input="emailError = ''"
|
||||
placeholder="邮箱"
|
||||
/>
|
||||
<BaseInput icon="Mail" v-model="email" @input="emailError = ''" placeholder="邮箱" />
|
||||
<div v-if="emailError" class="error-message">{{ emailError }}</div>
|
||||
|
||||
<BaseInput
|
||||
icon="fas fa-user"
|
||||
icon="User"
|
||||
v-model="username"
|
||||
@input="usernameError = ''"
|
||||
placeholder="用户名"
|
||||
@@ -23,7 +18,7 @@
|
||||
<div v-if="usernameError" class="error-message">{{ usernameError }}</div>
|
||||
|
||||
<BaseInput
|
||||
icon="fas fa-lock"
|
||||
icon="Lock"
|
||||
v-model="password"
|
||||
@input="passwordError = ''"
|
||||
type="password"
|
||||
@@ -51,7 +46,7 @@
|
||||
</div>
|
||||
|
||||
<div v-if="emailStep === 1" class="email-signup-page-content">
|
||||
<BaseInput icon="fas fa-envelope" v-model="code" placeholder="邮箱验证码" />
|
||||
<BaseInput icon="Mail" v-model="code" placeholder="邮箱验证码" />
|
||||
<div
|
||||
v-if="!isWaitingForEmailVerified"
|
||||
class="signup-page-button-primary"
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
class="profile-page-header-subscribe-button"
|
||||
@click="subscribeUser"
|
||||
>
|
||||
<i class="fas fa-user-plus"></i>
|
||||
<add-user />
|
||||
关注
|
||||
</div>
|
||||
<div
|
||||
@@ -26,11 +26,11 @@
|
||||
class="profile-page-header-unsubscribe-button"
|
||||
@click="unsubscribeUser"
|
||||
>
|
||||
<i class="fas fa-user-minus"></i>
|
||||
<reduce-user />
|
||||
取消关注
|
||||
</div>
|
||||
<div v-if="!isMine" class="profile-page-header-subscribe-button" @click="sendMessage">
|
||||
<i class="fas fa-paper-plane"></i>
|
||||
<message-one />
|
||||
发私信
|
||||
</div>
|
||||
</div>
|
||||
@@ -45,7 +45,7 @@
|
||||
content="经验值可通过发帖、评论等操作获得,达到目标后即可提升等级,解锁更多功能。"
|
||||
placement="bottom"
|
||||
>
|
||||
<i class="fas fa-info-circle profile-exp-info"></i>
|
||||
<info class="profile-exp-info" />
|
||||
</ToolTip>
|
||||
</div>
|
||||
</div>
|
||||
@@ -368,11 +368,11 @@ const selectedTab = ref(
|
||||
: 'summary',
|
||||
)
|
||||
const tabs = [
|
||||
{ key: 'summary', label: '总结', icon: 'fas fa-chart-line' },
|
||||
{ key: 'timeline', label: '时间线', icon: 'fas fa-clock' },
|
||||
{ key: 'following', label: '关注', icon: 'fas fa-user-plus' },
|
||||
{ key: 'favorites', label: '收藏', icon: 'fas fa-bookmark' },
|
||||
{ key: 'achievements', label: '勋章', icon: 'fas fa-medal' },
|
||||
{ key: 'summary', label: '总结', icon: 'ChartLine' },
|
||||
{ key: 'timeline', label: '时间线', icon: 'AlarmClock' },
|
||||
{ key: 'following', label: '关注', icon: 'AddUser' },
|
||||
{ key: 'favorites', label: '收藏', icon: 'Bookmark' },
|
||||
{ key: 'achievements', label: '勋章', icon: 'MedalOne' },
|
||||
]
|
||||
const followTab = ref('followers')
|
||||
|
||||
|
||||
@@ -31,6 +31,14 @@ import {
|
||||
Loading,
|
||||
Rss,
|
||||
MessageEmoji,
|
||||
AddUser,
|
||||
ReduceUser,
|
||||
MessageOne,
|
||||
AlarmClock,
|
||||
Bookmark,
|
||||
Mail,
|
||||
Lock,
|
||||
User,
|
||||
} from '@icon-park/vue-next'
|
||||
|
||||
export default defineNuxtPlugin((nuxtApp) => {
|
||||
@@ -65,4 +73,12 @@ export default defineNuxtPlugin((nuxtApp) => {
|
||||
nuxtApp.vueApp.component('Loading', Loading)
|
||||
nuxtApp.vueApp.component('Rss', Rss)
|
||||
nuxtApp.vueApp.component('MessageEmoji', MessageEmoji)
|
||||
nuxtApp.vueApp.component('AddUser', AddUser)
|
||||
nuxtApp.vueApp.component('ReduceUser', ReduceUser)
|
||||
nuxtApp.vueApp.component('MessageOne', MessageOne)
|
||||
nuxtApp.vueApp.component('AlarmClock', AlarmClock)
|
||||
nuxtApp.vueApp.component('Bookmark', Bookmark)
|
||||
nuxtApp.vueApp.component('Mail', Mail)
|
||||
nuxtApp.vueApp.component('Lock', Lock)
|
||||
nuxtApp.vueApp.component('User', User)
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user