登录页修改
This commit is contained in:
parent
af6bf39cab
commit
6a7be0f67d
BIN
src/assets/images/login_left.png
Normal file
BIN
src/assets/images/login_left.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 473 KiB |
@ -1,6 +1,9 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="login">
|
<div class="login">
|
||||||
<el-form ref="loginRef" class="login-form" :model="loginForm" :rules="loginRules" :hide-required-asterisk="true">
|
<div class="login-container">
|
||||||
|
<div class="left_img"></div>
|
||||||
|
<div class="login-form">
|
||||||
|
<el-form ref="loginRef" :model="loginForm" :rules="loginRules" :hide-required-asterisk="true">
|
||||||
<div class="login-header">
|
<div class="login-header">
|
||||||
<div class="login-logo">
|
<div class="login-logo">
|
||||||
<img src="@/assets/images/logo_new.png" alt="系统Logo" />
|
<img src="@/assets/images/logo_new.png" alt="系统Logo" />
|
||||||
@ -15,35 +18,29 @@
|
|||||||
<el-tabs v-model="activeName" type="card" @tab-click="handleClick" class="login-tabs">
|
<el-tabs v-model="activeName" type="card" @tab-click="handleClick" class="login-tabs">
|
||||||
<!-- 工号登录 Tab -->
|
<!-- 工号登录 Tab -->
|
||||||
<el-tab-pane label="账号密码登录" name="first">
|
<el-tab-pane label="账号密码登录" name="first">
|
||||||
<el-form-item label="医疗机构:" prop="loginParam.loginYLJG" class="custom-select">
|
<el-form-item label="医疗机构" prop="loginParam.loginYLJG" class="custom-select">
|
||||||
<el-select v-model="loginForm.loginParam.loginYLJG" placeholder="请选择医疗机构" style="width: 100%"
|
<el-select v-model="loginForm.loginParam.loginYLJG" placeholder="" style="width: 100%" class="no-border"
|
||||||
@change="handleChange">
|
@change="handleChange">
|
||||||
<template #prefix>
|
<el-option v-for="item in selectOptions" :key="item.id" :label="item.name"
|
||||||
<svg-icon icon-class="international" class="el-input__icon input-icon" />
|
:value="item.id"></el-option>
|
||||||
</template>
|
|
||||||
<el-option v-for="item in selectOptions" :key="item.id" :label="item.name" :value="item.id"></el-option>
|
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item label="用户工号:" prop="username">
|
<el-form-item label="用户工号" prop="username">
|
||||||
<el-input v-model="loginForm.username" type="text" size="large" auto-complete="off" placeholder="账号">
|
<el-input v-model="loginForm.username" type="text" auto-complete="off" placeholder="" class="no-border">
|
||||||
<template #prefix>
|
|
||||||
<svg-icon icon-class="user" class="el-input__icon input-icon" />
|
|
||||||
</template>
|
|
||||||
</el-input>
|
</el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item label="登录密码:" prop="password">
|
<el-form-item label="登录密码" prop="password">
|
||||||
<el-input v-model="loginForm.password" type="password" size="large" auto-complete="off" placeholder="密码"
|
<el-input v-model="loginForm.password" type="password" auto-complete="off" placeholder=""
|
||||||
@keyup.enter="handleLogin">
|
class="no-border" @keyup.enter="handleLogin">
|
||||||
<template #prefix>
|
|
||||||
<svg-icon icon-class="password" class="el-input__icon input-icon" />
|
|
||||||
</template>
|
|
||||||
</el-input>
|
</el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item prop="code" label="验 证 码 :" v-if="captchaEnabled">
|
<el-form-item prop="code" label="验 证 码 :" v-if="captchaEnabled">
|
||||||
<el-input v-model="loginForm.code" size="large" auto-complete="off" placeholder="验证码" style="width: 53%"
|
<el-input v-model="loginForm.code" auto-complete="off" placeholder="" style="width: 53%"
|
||||||
@keyup.enter="handleLogin">
|
class="no-border" @keyup.enter="handleLogin">
|
||||||
<template #prefix>
|
<template #prefix>
|
||||||
<svg-icon icon-class="validCode" class="el-input__icon input-icon" />
|
<svg-icon icon-class="validCode" class="el-input__icon input-icon" />
|
||||||
</template>
|
</template>
|
||||||
@ -54,7 +51,7 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item style="width: 100%;">
|
<el-form-item style="width: 100%;">
|
||||||
<el-button :loading="loading" size="large" type="primary" class="login-btn" style="width: 100%;"
|
<el-button :loading="loading" type="primary" class="login-btn" style="width: 100%;"
|
||||||
@click.prevent="handleLogin">
|
@click.prevent="handleLogin">
|
||||||
<span v-if="!loading">登 录</span>
|
<span v-if="!loading">登 录</span>
|
||||||
<span v-else>登 录 中...</span>
|
<span v-else>登 录 中...</span>
|
||||||
@ -87,9 +84,10 @@
|
|||||||
</el-form>
|
</el-form>
|
||||||
|
|
||||||
<div class="el-login-footer">
|
<div class="el-login-footer">
|
||||||
<span>版权所有(R){{ oem.copyrightyear }} {{ oem.compay }} 电话:{{ oem.phone }} E-mail:{{ oem.Email }} version:{{
|
<span>版权所有(R){{ oem.copyrightyear }} {{ oem.compay }} <br />
|
||||||
oem.version
|
电话:{{ oem.phone }} E-mail:{{ oem.Email }} version:{{ oem.version }}</span>
|
||||||
}}</span>
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@ -248,43 +246,65 @@ getCode();
|
|||||||
.login {
|
.login {
|
||||||
position: relative;
|
position: relative;
|
||||||
height: 100vh;
|
height: 100vh;
|
||||||
background-image: url("../assets/images/login-background.jpg");
|
background: #02a5ff;
|
||||||
background-size: cover;
|
background-size: cover;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
.login-form {
|
.login-container {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 50%;
|
top: 50%;
|
||||||
left: 50%;
|
left: 50%;
|
||||||
transform: translate(-50%, -50%);
|
transform: translate(-50%, -50%);
|
||||||
background: rgba(255, 255, 255, 0.4);
|
/* 关键1:替换固定百分比宽度为最大宽度+自适应,避免缩放时过度拉伸 */
|
||||||
backdrop-filter: blur(10px);
|
width: clamp(800px, 70%, 1400px);
|
||||||
-webkit-backdrop-filter: blur(10px);
|
max-width: 1400px;
|
||||||
border: 1px solid rgba(255, 255, 255, 0.9);
|
min-width: 800px;
|
||||||
|
height: 80vh;
|
||||||
|
min-height: 500px;
|
||||||
|
background: #fff;
|
||||||
|
display: flex;
|
||||||
border-radius: 12px;
|
border-radius: 12px;
|
||||||
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
|
overflow: hidden;
|
||||||
width: 480px;
|
|
||||||
padding: 35px 35px 5px 35px;
|
|
||||||
|
|
||||||
.el-input {
|
.left_img {
|
||||||
height: 40px;
|
background-image: url(../assets/images/login_left.png);
|
||||||
|
background-size: 100% 100%;
|
||||||
input {
|
flex: 0 0 50%;
|
||||||
height: 40px;
|
max-width: 50%;
|
||||||
|
height: 100%;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.login-form {
|
||||||
|
flex: 1;
|
||||||
|
min-width: 350px;
|
||||||
|
height: 100%;
|
||||||
|
padding: clamp(40px, 8%, 100px);
|
||||||
|
box-sizing: border-box;
|
||||||
|
|
||||||
|
|
||||||
|
.el-form-item:not(:last-child) {
|
||||||
|
border-bottom: 1px solid #ccc
|
||||||
}
|
}
|
||||||
|
|
||||||
.input-icon {
|
.no-border {
|
||||||
height: 39px;
|
--el-input-border-color: transparent !important;
|
||||||
width: 14px;
|
--el-input-hover-border-color: transparent !important;
|
||||||
margin-left: 0px;
|
--el-input-focus-border-color: transparent !important;
|
||||||
|
--el-select-input-border-color: transparent !important;
|
||||||
|
border-color: transparent !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.no-border :deep(.el-input__wrapper),
|
||||||
|
.no-border :deep(.el-select__wrapper) {
|
||||||
|
border: none !important;
|
||||||
|
box-shadow: none !important;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.login-code {
|
.login-code {
|
||||||
width: 33%;
|
width: 33%;
|
||||||
height: 40px;
|
|
||||||
float: right;
|
float: right;
|
||||||
|
|
||||||
img {
|
img {
|
||||||
@ -296,17 +316,23 @@ getCode();
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.login-btn {
|
||||||
|
background: linear-gradient(#00d3f9, #00b1f3);
|
||||||
|
border: none;
|
||||||
|
margin-top: 20px;
|
||||||
|
width: 100%;
|
||||||
|
height: 50px;
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
.el-login-footer {
|
.el-login-footer {
|
||||||
height: 40px;
|
line-height: 30px;
|
||||||
line-height: 40px;
|
|
||||||
position: fixed;
|
|
||||||
bottom: 0;
|
|
||||||
width: 100%;
|
width: 100%;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
color: #fff;
|
color: #000;
|
||||||
font-family: Arial;
|
font-family: Arial;
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
letter-spacing: 1px;
|
margin-top: 30px;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Logo和标题样式 */
|
/* Logo和标题样式 */
|
||||||
@ -314,11 +340,14 @@ getCode();
|
|||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
margin-bottom: 30px;
|
margin-bottom: 30px;
|
||||||
|
/* 缩放时标题区域自适应 */
|
||||||
|
flex-wrap: nowrap;
|
||||||
}
|
}
|
||||||
|
|
||||||
.login-logo img {
|
.login-logo img {
|
||||||
height: 40px;
|
height: 40px;
|
||||||
width: auto;
|
width: auto;
|
||||||
|
min-height: 30px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.login-split {
|
.login-split {
|
||||||
@ -330,28 +359,40 @@ getCode();
|
|||||||
|
|
||||||
.login-title h1 {
|
.login-title h1 {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
font-size: 24px;
|
font-size: clamp(18px, 2vw, 24px);
|
||||||
color: #1989fa;
|
color: #000;
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Tab容器样式(修复冲突) */
|
/* Tab容器样式 */
|
||||||
.login-tabs {
|
.login-tabs {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 350px;
|
height: clamp(280px, 70%, 350px);
|
||||||
|
min-height: 280px;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
border-radius: 8px;
|
border-radius: 8px;
|
||||||
backdrop-filter: blur(10px);
|
backdrop-filter: blur(10px);
|
||||||
-webkit-backdrop-filter: blur(10px);
|
-webkit-backdrop-filter: blur(10px);
|
||||||
border: 1px solid rgba(255, 255, 255, 0.1);
|
|
||||||
padding: 1px 10px 10px;
|
padding: 1px 10px 10px;
|
||||||
background: transparent;
|
background: transparent;
|
||||||
|
|
||||||
:deep(.el-tabs__header) {
|
:deep(.el-tabs__header) {
|
||||||
background: transparent;
|
|
||||||
margin: 0;
|
margin: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.el-tabs__nav) {
|
||||||
|
width: 100% !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
:deep(.el-tabs__item) {
|
||||||
|
width: 33.33% !important;
|
||||||
|
|
||||||
|
&.is-active {
|
||||||
|
border-bottom: 2px solid #00d3f9 !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
:deep(.el-tabs__nav-prev),
|
:deep(.el-tabs__nav-prev),
|
||||||
:deep(.el-tabs__nav-next) {
|
:deep(.el-tabs__nav-next) {
|
||||||
display: none !important; // 隐藏Tab左右箭头
|
display: none !important; // 隐藏Tab左右箭头
|
||||||
@ -363,8 +404,7 @@ getCode();
|
|||||||
}
|
}
|
||||||
|
|
||||||
.custom-select {
|
.custom-select {
|
||||||
margin-top: 20px;
|
margin-top: 30px;
|
||||||
/* 可根据需求调整数值 */
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Tab占位样式 */
|
/* Tab占位样式 */
|
||||||
@ -375,22 +415,20 @@ getCode();
|
|||||||
justify-content: center;
|
justify-content: center;
|
||||||
padding: 40px 0;
|
padding: 40px 0;
|
||||||
color: #666;
|
color: #666;
|
||||||
height: calc(100% - 40px); // 适配Tab容器高度
|
/* 适配Tab容器高度,防止溢出 */
|
||||||
|
height: calc(100% - 40px);
|
||||||
|
|
||||||
.placeholder-icon {
|
.placeholder-icon {
|
||||||
font-size: 48px;
|
font-size: clamp(36px, 8vw, 48px);
|
||||||
|
/* 图标大小自适应 */
|
||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
color: #ccc;
|
color: #ccc;
|
||||||
}
|
}
|
||||||
|
|
||||||
.wechat-login-btn {
|
.wechat-login-btn {
|
||||||
margin-top: 20px;
|
margin-top: 20px;
|
||||||
width: 200px;
|
width: clamp(150px, 40%, 200px);
|
||||||
|
/* 按钮宽度自适应 */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 隐藏必填项星号 */
|
|
||||||
:deep(.el-form-item.is-required:not(.is-no-asterisk) .el-form-item__label-wrap .el-form-item__asterisk) {
|
|
||||||
display: none !important;
|
|
||||||
}
|
|
||||||
</style>
|
</style>
|
||||||
@ -237,7 +237,7 @@ const rowHandle = (row) => {
|
|||||||
{ title: '标本送检', time: row.sendPackTime },
|
{ title: '标本送检', time: row.sendPackTime },
|
||||||
{ title: '标本签收', time: row.signInTime },
|
{ title: '标本签收', time: row.signInTime },
|
||||||
{ title: '上机检验', time: row.operdatetime },
|
{ title: '上机检验', time: row.operdatetime },
|
||||||
{ title: '结果审核', time: row.confirmtime },
|
{ title: '结果审核', time: row.reportTime },
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -58,7 +58,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="leftMain_middle_right">
|
<div class="leftMain_middle_right">
|
||||||
<div class="leftMain_middle_rightIn">
|
<div class="leftMain_middle_rightIn">
|
||||||
<h3>当日送检样本情况</h3>
|
<h3>当月标本全流程监控情况</h3>
|
||||||
<div class="biaoge biaoge_pai">
|
<div class="biaoge biaoge_pai">
|
||||||
<div class="biaoge_paiIn">
|
<div class="biaoge_paiIn">
|
||||||
<ul>
|
<ul>
|
||||||
@ -223,6 +223,7 @@ const getEcharts1 = (data: any) => {
|
|||||||
color: '#fff',
|
color: '#fff',
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
minInterval: 1,
|
||||||
axisTick: {
|
axisTick: {
|
||||||
show: false
|
show: false
|
||||||
},
|
},
|
||||||
@ -362,7 +363,8 @@ const getEcharts3 = () => {
|
|||||||
}],
|
}],
|
||||||
yAxis: {
|
yAxis: {
|
||||||
type: 'value',
|
type: 'value',
|
||||||
|
name: '单位:个',
|
||||||
|
minInterval: 1,
|
||||||
axisLine: {
|
axisLine: {
|
||||||
show: true,
|
show: true,
|
||||||
symbol: ['none', 'arrow'],
|
symbol: ['none', 'arrow'],
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user