You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

278 lines
8.2 KiB

<template>
<div class="bg">
<div style="display: flex;justify-content: space-between;padding-top: 5px;">
<div></div>
<div style="display: flex;">
<i class="el-icon-setting" @click="toggleDevTools" style="padding-right: 5px;font-size: 22px;cursor:pointer;"></i>
<i class="el-icon-minus" @click="btnMin" style="padding-right: 5px;font-size: 22px;cursor:pointer;"></i>
<i class="el-icon-copy-document" @click="btnMax" style="padding-right: 5px;font-size: 22px;cursor:pointer;"></i>
<i class="el-icon-close" @click="btnClose" style="padding-right: 5px;font-size: 22px;cursor:pointer;"></i>
</div>
</div>
<div class="box">
<div class="mainbody">
<div class="title">
<img src="@/assets/images/logo1.png" />
<div>神豚体检管理系统</div>
</div>
<div class="userform">
<div style="color: #232748;font-size: 24px;font-weight: 700;margin-bottom: 20px;font-family: NotoSansSC-Bold;">
登录账号</div>
<el-form :model="form" :rules="rules" ref="form" class="demo-ruleForm">
<el-form-item label="" prop="Username" style="margin-bottom: 20px">
<div
style="font-size:16px;font-weight: 400;color: #232748; line-height: 22px;margin-bottom: 10px;font-family: NotoSansSC-Regular;">
用户名</div>
<el-input class="inputcolor" v-model="form.Username" placeholder="请输入用户名" prefix-icon="el-icon-s-custom"
style="color: #fff" @keyup.native.enter="nextFocus('Username')"></el-input>
</el-form-item>
<el-form-item label="" prop="Password" style="margin-bottom: 5px">
<div
style="font-size:16px;font-weight: 400;color: #232748;line-height: 22px;margin-bottom: 10px;font-family: NotoSansSC-Regular;">
密码</div>
<el-input v-model="form.Password" placeholder="请输入密码" type="password" prefix-icon="el-icon-unlock"
@keyup.native.enter="nextFocus('Password')" ref="password"></el-input>
</el-form-item>
<el-row>
<el-col :span="12">
<el-form-item>
<el-checkbox></el-checkbox>
<span
style=" font-family: NotoSansSC-Regular;color: #232748;font-weight: 400;font-size: 14px;margin-left: 5px;">记住密码</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item>
<div style="text-align: right;color:#396FFA;font-family: NotoSansSC-Regular;">忘记密码</div>
</el-form-item>
</el-col>
</el-row>
<el-button type="primary" class="btn" @click="onSubmit(form)" style="margin-bottom: 20px;">
用户登录
</el-button>
<div style="color:#396FFA;font-size:14px;text-align: center;font-family: NotoSansSC-Regular;">注册新账号</div>
</el-form>
</div>
</div>
</div>
</div>
</template>
<script>
import { writetoken } from "@/utlis/istoken";
import axios from "axios";
export default {
data() {
return {
sysConfig: {}, // 配置信息
form: {
Username: "",
Password: "",
},
rules: {
Username: [
{ required: true, message: "请输入用户名", trigger: "blur" },
//{ min: 3, max: 5, message: "长度在 3 到 5 个字符", trigger: "blur" },
],
Password: [
{ required: true, message: "请输入密码", trigger: "blur" },
//{ min: 3, max: 8, message: "长度在 3 到 8 个字符", trigger: "blur" },
],
},
};
},
async mounted() {
await this.getSysConfig()
// 壳程序懒加载通讯组件
if (this.$peisAPI) {
this.$peisAPI.lazyLoad(); // 加载报表 dll
this.$peisAPI.lazyLoadReportTemplate(); //加载报表 模版
}
},
methods: {
async getSysConfig() {
try {
let res = await axios.get('/sysConfig.html') // , { timeout: 50000 }
console.log('axios.get /sysConfig.html',res)
if(!res.data.apiurl) this.$message.error({ showClose: true, message: `获取配置参数错误,请重新刷新本页面!` })
this.sysConfig = res.data
window.sessionStorage.setItem('sysConfig', JSON.stringify(res.data))
} catch (error) {
this.$message.error({ showClose: true, message: `获取配置参数错误 ${error}` })
}
},
//打开客户端调试工具
toggleDevTools() {
if (!this.$peisAPI) {
this.$message.info("此功能,需要在壳客户端才可运行!")
return
}
this.$peisAPI.toggleDevTools();
},
btnMin() {
if (!this.$peisAPI) {
this.$message.info("此功能,需要在壳客户端才可运行!")
return
}
this.$peisAPI.windowMin();
},
btnMax() {
if (!this.$peisAPI) {
this.$message.info("此功能,需要在壳客户端才可运行!")
return
}
this.$peisAPI.windowMax();
},
btnClose() {
if (!this.$peisAPI) {
this.$message.info("此功能,需要在壳客户端才可运行!")
return
}
this.$peisAPI.windowClose();
},
nextFocus(e) {
if (e == 'Username') {
this.$refs['password'].focus()
} else (
this.onSubmit()
)
},
onSubmit() {
this.$refs.form.validate((valid) => {
if (valid) {
axios.post(`${this.sysConfig.apiurl}/api/identity/users/login`, {
userName: this.form.Username,
passWord: this.form.Password,
}).then(ret => {
let res = ret.data
if (res.code != -1) {
window.sessionStorage.setItem("peisid", res.data.peisid); //设置当前人员所属体检中心
writetoken(res.data.expires_in);
window.sessionStorage.setItem("token", res.data.access_token);
window.sessionStorage.setItem("refresh_token", res.data.refresh_token);
window.sessionStorage.setItem("tokentype", res.data.token_type);
window.sessionStorage.setItem("user", this.form.Username);
this.$router.push({ path: "/home" });
this.$store.state.changepassword = this.form.Password;
} else {
this.$message.warning(res.message);
}
}).catch(err => {
this.$message.error(err);
})
}
});
},
},
created() { },
};
</script>
<style lang="scss" scoped>
::v-deep .el-input {
color: #232748;
}
// ::v-deep .el-form-item {
// border: 1px solid rgb(0, 183, 92);
// }
.bg {
background-color: black;
// background: url("https://img.zcool.cn/community/013c8b5b62d108a801206a35bea1eb.jpg@2o.jpg");1
// background: url("https://img1.baidu.com/it/u=1097534320,1746985227&fm=253&fmt=auto&app=138&f=JPEG?w=889&h=500");
background: url("@/assets/images/BG.png");
background-size: cover;
height: 100%;
width: 100%;
min-height: 100vh;
}
.el-form-item.is-error .el-input__inner {
color: none;
}
.inputcolor {
border: none;
}
.box {
position: absolute;
right: 140px;
top: 119px;
}
.mainbody {
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
.title {
width: 443px;
height: 107px;
display: flex;
justify-content: center;
align-items: center;
margin-bottom: 10px;
img {
width: 45.86px;
height: 45.86px;
}
div {
font-size: 38px;
margin-left: 15px;
color: #232748;
font-weight: 600;
}
}
}
.userform {
width: 356px;
height: 366px;
background-color: #fff;
border-radius: 12px;
padding: 40px 32px;
}
// .btn :hover {
// // background-color: rgb(0, 183, 92);
// }
::v-deep .el-input__icon {
font-size: 18px;
}
.btn {
background-color: #396FFA;
;
font-size: 16px;
// background-color: #ccc;
border: none;
color: #fff;
font-weight: 700;
height: 40px;
width: 100%;
}
:deep .el-input--prefix .el-input__inner {
padding-left: 30px;
}
:deep .el-form-item {
margin-bottom: 22px;
}
:deep .el-button {
color: #fff;
}
</style>