feat:修改登录信息

This commit is contained in:
17630416519 2025-11-14 09:19:02 +08:00
parent 3e9ebee9bb
commit 33295792ab
7 changed files with 51 additions and 301 deletions

2
.env
View File

@ -1,3 +1,3 @@
# 页面标题
VITE_APP_TITLE = 'ZRAdmin.NET'
VITE_APP_TITLE = '荧光线后台管理系统'

View File

@ -7,7 +7,7 @@
<meta name="renderer" content="webkit">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<link rel="icon" href="/favicon.ico">
<title>ZRAdmin.NET管理系统</title>
<title>荧光线后台管理系统</title>
<!--[if lt IE 11]><script>window.location.href='/html/ie.html';</script><![endif]-->
<style>
html,

View File

@ -40,8 +40,5 @@ watch(
immediate: true
}
)
console.log('🎉源码地址: https://gitee.com/izory/ZrAdminNetCore')
console.log('📖官方文档http://www.izhaorui.cn')
console.log('💰打赏作者http://www.izhaorui.cn/doc/support.html')
console.log('📱移动端体验http://www.izhaorui.cn/h5')
</script>

View File

@ -69,19 +69,19 @@ export const constantRoutes = [
component: () => import('@/views/error/Error'),
hidden: true
},
{
path: '',
component: Layout,
redirect: '/index',
children: [
{
path: '/index',
component: () => import('@/views/index'),
name: 'Index',
meta: { title: '首页', icon: 'index', affix: true, titleKey: 'menu.home' }
}
]
},
// {
// path: '',
// component: Layout,
// redirect: '/index',
// children: [
// {
// path: '/index',
// component: () => import('@/views/index'),
// name: 'Index',
// meta: { title: '首页', icon: 'index', affix: true, titleKey: 'menu.home' }
// }
// ]
// },
{
path: '/user',
component: Layout,

View File

@ -1,244 +1,3 @@
<template>
<div class="app-container home">
<noticeBar :dataList="noticeList"> </noticeBar>
<el-row :gutter="20">
<el-col :sm="24" :lg="24">
<blockquote class="text-warning" style="font-size: 14px">
阿里云特惠专区
<el-link href="https://www.aliyun.com/minisite/goods?userCode=uotn5vt1&share_source=copy_link" type="primary" target="_black">
点我进入
</el-link>
<br />
领取腾讯云通用云产品新用户专属大礼包2860优惠券每种代金券限量500张先到先得
<el-link href="https://curl.qcloud.com/5J4nag8D" type="primary" target="_blank"> 点我进入 </el-link>
<br />
腾讯云限时秒杀活动
<el-link href="https://curl.qcloud.com/4yEoRquq" type="primary" target="_blank">点我进入 </el-link>
<br />
华为特惠专区多款产品限时特价
<el-link
href="https://activity.huaweicloud.com/discount_area_v5/index.html?fromacct=a53709d1-149d-49f4-9b89-bf62bd96ef65&utm_source=aGlkX3N0dnZkMWNxejBnOTJ5OA===&utm_medium=cps&utm_campaign=201905"
type="primary"
target="_blank">
点我进入
</el-link>
<br />
领取七牛云通用云产品优惠券
<el-link href="https://s.qiniu.com/FzEfay" type="primary" target="_blank"> 点我进入 </el-link>
<br />
Gitee 企业版优惠专区
<el-link href="https://gitee.com/enterprises?invite_code=Z2l0ZWUtMTI1NzM1OQ%3D%3D" type="primary" target="_blank"> 点我进入 </el-link>
<br />
<h4 class="text-danger">云产品通用红包可叠加官网常规优惠使用(仅限新用户)</h4>
</blockquote>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :lg="16" :sm="24">
<h2>ZRAdmin.NET {{ $t('layout.backstageManagement') }}</h2>
<p>
ZRAdmin.NET借鉴了很多开源项目的优点让你开发Web管理系统更简单所以我也把它给开源了前端
<code>vue页面</code>主要使用了若依后端参考Ruoyi SpringBoot版本在此表示感谢.)
</p>
<p>{{ $t('layout.content1') }}</p>
<p>
<b>{{ $t('layout.currentVersion') }}:</b> <span>v{{ version }}</span>
<el-link
class="ml10"
type="primary"
size="small"
icon="Document"
plain
@click="goTarget('http://www.izhaorui.cn/doc/changelog.html#' + version)"
>{{ $t('layout.changeLog') }}
</el-link>
</p>
<p>
<el-button type="primary" size="small" icon="Cloudy" plain @click="goTarget('https://gitee.com/izory/ZrAdminNetCore')">Gitee </el-button>
<el-button type="primary" size="small" icon="Cloudy" plain @click="goTarget('https://github.com/izhaorui/ZrAdmin.NET')"
>Github
</el-button>
</p>
<p></p>
<h3>{{ $t('layout.tip1') }}</h3>
</el-col>
<el-col :lg="8" :sm="24">
<h2>{{ $t('layout.technicalSelection') }}</h2>
<div style="float: left; width: 50%">
<h4>{{ $t('layout.backendTechnology') }}</h4>
<ul>
<li>NET8</li>
<li>JWT</li>
<li>SqlSugar</li>
<li>Quartz.Net</li>
<li>Mapster</li>
<li>MiniExcel</li>
<li>Redis</li>
<li>Signalr</li>
<li>...</li>
</ul>
</div>
<div style="float: right; width: 50%">
<h4>{{ $t('layout.frontendTechnology') }}</h4>
<ul>
<li>Vue3</li>
<li>Pinia</li>
<li>Element plus</li>
<li>Axios</li>
<li>Sass</li>
<li>Wangeditor</li>
<li>Vite</li>
<li>Composition api</li>
<li>I18n</li>
<li>...</li>
</ul>
</div>
</el-col>
</el-row>
<el-divider />
<el-row :gutter="20" class="mt10">
<el-col :sm="24" :lg="8">
<el-card>
<template #header>
<span>{{ $t('layout.donationSupport') }}</span>
</template>
<div class="body">
<div style="color: red">{{ $t('layout.rewardUser') }}</div>
<img src="@/assets/images/reward.jpg" alt="donate" style="width: 100%" />
</div>
</el-card>
</el-col>
<el-col :sm="24" :lg="10">
<el-card>
<template #header>
<span>
移动端体验
<span style="color: red">如有需要联系作者</span>
</span>
</template>
<div class="body">
<table style="width: 100%; text-align: center">
<tbody>
<tr>
<td>微信小程序</td>
<td>H5</td>
</tr>
<tr>
<td>
<img src="@/assets/images/qrcode.jpg" alt="donate" style="width: 160px" />
</td>
<td>
<img src="@/assets/images/qrcodeH5.png" alt="donate" style="width: 160px" />
</td>
</tr>
</tbody>
</table>
</div>
</el-card>
</el-col>
<el-col :sm="24" :lg="6">
<el-card>
<template #header>
<span>{{ $t('layout.contactUs') }}</span>
</template>
<div class="body">
<p>
<el-icon> <promotion /> </el-icon>{{ $t('layout.officialWebsite') }}
<el-link href="http://www.izhaorui.cn" target="_blank"> http://www.izhaorui.cn </el-link>
</p>
<p>
<el-icon> <UserFilled /> </el-icon>{{ $t('layout.qqGroup') }}
<s>满191349103</s>
<s>满462862273</s>
<s>满658227537</s>
<el-link target="_black" href="https://qm.qq.com/q/e8uHl134qc"> &nbsp;1026662023 </el-link>
</p>
</div>
</el-card>
</el-col>
</el-row>
</div>
</template>
<script setup name="index">
import noticeBar from '@/components/NoticeBar/index'
const noticeList = ref(['官网地址http://www.izhaorui.cn', 'ZRAdmin.NET后台管理系统'])
import defaultSettings from '@/settings'
const version = defaultSettings.version
function goTarget(url) {
window.open(url, '__blank')
}
</script>
<style scoped lang="scss">
.home {
blockquote {
padding: 10px 20px;
margin: 0 0 20px;
font-size: 17.5px;
border-left: 5px solid #eee;
}
hr {
margin-top: 20px;
margin-bottom: 20px;
border: 0;
border-top: 1px solid #eee;
}
.col-item {
margin-bottom: 20px;
}
ul {
padding: 0;
margin: 0;
}
font-family: 'open sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
font-size: 13px;
color: #676a6c;
overflow-x: hidden;
ul {
list-style-type: none;
}
h4 {
margin-top: 0px;
}
h2 {
margin-top: 10px;
font-size: 26px;
font-weight: 100;
}
p {
margin-top: 10px;
b {
font-weight: 700;
}
}
.update-log {
ol {
display: block;
list-style-type: decimal;
margin-block-start: 1em;
margin-block-end: 1em;
margin-inline-start: 0;
margin-inline-end: 0;
padding-inline-start: 40px;
}
}
}
</style>
<div></div>
</template>

View File

@ -4,19 +4,20 @@
<div class="login">
<h3 class="title">{{ defaultSettings.title }}</h3>
<LangSelect title="多语言设置" class="langSet" />
<!-- <LangSelect title="多语言设置" class="langSet" /> -->
<div style="padding: 0 25px 5px 25px">
<el-tabs v-model="loginType" @tab-click="handleLoginType">
<!-- <el-tabs v-model="loginType" @tab-click="handleLoginType">
<el-tab-pane :label="$t('login.loginway1')" :name="1"></el-tab-pane>
<el-tab-pane :label="$t('login.loginway2')" :name="2" v-if="defaultSettings.showPhoneLogin"></el-tab-pane>
<el-tab-pane :label="$t('login.loginway3')" :name="3" v-if="defaultSettings.showQrLogin"></el-tab-pane>
</el-tabs>
</el-tabs> -->
</div>
<el-form ref="loginRef" :model="loginForm" :rules="loginRules" class="login-form" v-if="loginType == 1">
<el-form-item prop="tenantId" v-show="defaultSettings.showTenant">
<el-select v-model="loginForm.tenantId" size="default" placeholder="请选择租户" style="width: 100%" @change="handleTenantId">
<el-select v-model="loginForm.tenantId" size="default" placeholder="请选择租户" style="width: 100%"
@change="handleTenantId">
<el-option value="tenant0" label="默认租户"></el-option>
</el-select>
</el-form-item>
@ -28,13 +29,8 @@
</el-input>
</el-form-item>
<el-form-item prop="password">
<el-input
v-model="loginForm.password"
show-password
type="password"
auto-complete="off"
:placeholder="$t('login.password')"
@keyup.enter="handleLogin">
<el-input v-model="loginForm.password" show-password type="password" auto-complete="off"
:placeholder="$t('login.password')" @keyup.enter="handleLogin">
<template #prefix>
<svg-icon name="password" class="input-icon" />
</template>
@ -42,7 +38,8 @@
</el-form-item>
<el-form-item prop="code" v-if="captchaOnOff != 'off'">
<el-input v-model="loginForm.code" auto-complete="off" :placeholder="$t('login.captcha')" style="width: 63%" @keyup.enter="handleLogin">
<el-input v-model="loginForm.code" auto-complete="off" :placeholder="$t('login.captcha')" style="width: 63%"
@keyup.enter="handleLogin">
<template #prefix>
<svg-icon name="validCode" class="input-icon" />
</template>
@ -55,21 +52,22 @@
<el-checkbox v-model="loginForm.rememberMe">{{ $t('login.rememberMe') }}</el-checkbox>
<span style="font-size: 12px">
<router-link class="link-type" :to="'/register'">{{ $t('login.register') }}</router-link>
<span @click="handleForgetPwd()" class="forget-pwd">{{ $t('login.forgotPwd') }}</span>
<!-- <span @click="handleForgetPwd()" class="forget-pwd">{{ $t('login.forgotPwd') }}</span> -->
</span>
</div>
<el-form-item style="width: 100%" :style="{ 'margin-top': captchaOnOff == 'off' ? '20px' : '' }">
<el-button :loading="loading" size="default" round type="primary" style="width: 100%" @click.prevent="handleLogin">
<el-button :loading="loading" size="default" round type="primary" style="width: 100%"
@click.prevent="handleLogin">
<span v-if="!loading">{{ $t('login.btnLogin') }}</span>
<span v-else> 中...</span>
</el-button>
</el-form-item>
</el-form>
<qrLogin ref="qrLoginRef" v-if="loginType == 3"></qrLogin>
<!-- <qrLogin ref="qrLoginRef" v-if="loginType == 3"></qrLogin>
<phoneLogin v-if="loginType == 2"></phoneLogin>
<oauthLogin v-if="defaultSettings.showOtherLogin"></oauthLogin>
<oauthLogin v-if="defaultSettings.showOtherLogin"></oauthLogin> -->
</div>
<div class="el-login-footer">
@ -167,7 +165,8 @@ function handleLogin() {
}
return acc
}, {})
router.push({ path: redirect.value || '/', query: otherQueryParams })
// router.push({ path: redirect.value || '/', query: otherQueryParams })
router.push({ path: '/basicDataManagement/categoryManagement', query: otherQueryParams })
})
.catch((error) => {
console.error(error)
@ -242,6 +241,7 @@ getCookie()
<style lang="scss" scoped>
@use '@/assets/styles/login.scss';
.forget-pwd {
color: #ccc;
margin-left: 10px;
@ -249,6 +249,7 @@ getCookie()
border-left: 1px solid;
padding-left: 10px;
}
.qrCode {
width: 160px;
height: 160px;

View File

@ -12,12 +12,7 @@
</el-input>
</el-form-item>
<el-form-item prop="password">
<el-input
v-model="registerForm.password"
type="password"
size="default"
auto-complete="off"
placeholder="密码"
<el-input v-model="registerForm.password" type="password" size="default" auto-complete="off" placeholder="密码"
@keyup.enter="handleRegister">
<template #prefix>
<svg-icon name="password" />
@ -25,25 +20,15 @@
</el-input>
</el-form-item>
<el-form-item prop="confirmPassword">
<el-input
v-model="registerForm.confirmPassword"
type="password"
size="default"
auto-complete="off"
placeholder="确认密码"
@keyup.enter="handleRegister">
<el-input v-model="registerForm.confirmPassword" type="password" size="default" auto-complete="off"
placeholder="确认密码" @keyup.enter="handleRegister">
<template #prefix>
<svg-icon name="password" />
</template>
</el-input>
</el-form-item>
<el-form-item prop="code" v-if="captchaOnOff">
<el-input
v-model="registerForm.code"
auto-complete="off"
size="default"
placeholder="验证码"
style="width: 63%"
<el-input v-model="registerForm.code" auto-complete="off" size="default" placeholder="验证码" style="width: 63%"
@keyup.enter="handleRegister">
<template #prefix>
<svg-icon name="validCode" />
@ -54,7 +39,8 @@
</div>
</el-form-item>
<el-form-item style="width: 100%">
<el-button :loading="loading" type="primary" size="default" round style="width: 100%" @click.prevent="handleRegister">
<el-button :loading="loading" type="primary" size="default" round style="width: 100%"
@click.prevent="handleRegister">
<span v-if="!loading">{{ $t('login.register') }}</span>
<span v-else> 中...</span>
</el-button>
@ -63,7 +49,7 @@
<router-link class="link-type" :to="'/login'">使用已有账户登录</router-link>
</div>
</el-form>
<oauthLogin></oauthLogin>
<!-- <oauthLogin></oauthLogin> -->
</div>
<!-- 底部 -->
<div class="el-register-footer">
@ -153,7 +139,7 @@ function handleRegister() {
.then(() => {
router.push('/login')
})
.catch(() => {})
.catch(() => { })
}
})
.catch(() => {
@ -170,6 +156,7 @@ getCode()
<style rel="stylesheet/scss" lang="scss">
@use '@/assets/styles/login.scss';
.register {
display: flex;
justify-content: center;
@ -179,10 +166,12 @@ getCode()
flex-direction: column;
background: radial-gradient(220% 105% at top center, #1b2947 10%, #4b76a7 40%, #81acae 65%, #f7f7b6);
}
.login-form {
padding: 15px 25px 15px 25px;
height: 320px;
}
.title {
margin: 0px auto 30px auto;
text-align: center;
@ -194,15 +183,18 @@ getCode()
text-align: center;
color: #bfbfbf;
}
.register-code {
width: 33%;
height: 38px;
float: right;
img {
cursor: pointer;
vertical-align: middle;
}
}
.el-register-footer {
height: 40px;
line-height: 40px;
@ -215,6 +207,7 @@ getCode()
font-size: 12px;
letter-spacing: 1px;
}
.register-code-img {
height: 38px;
}