import { ElMessage } from 'element-plus'; // 消息提示工具类 export function messageTip(msg,type){ ElMessage({ showClose:true,//消息提示是否可以关闭 center:true,//文字居中 message:msg, type:type, }); } export function getTokenName(){ return "crmSystem"; } export function removeToken(){ window.sessionStorage.removeItem(getTokenName()); window.localStorage.removeItem(getTokenName()); }
import { ElMessage } from 'element-plus';
// 消息提示工具类
export function messageTip(msg,type){
ElMessage({
showClose:true,//消息提示是否可以关闭
center:true,//文字居中
message:msg,
type:type,
});
}
export function getTokenName(){
return "crmSystem";
}
export function removeToken(){
window.sessionStorage.removeItem(getTokenName());
window.localStorage.removeItem(getTokenName());
}
import axios from "axios"; import { getTokenName, messageTip } from "../util/util"; axios.defaults.baseURL = "http://localhost:8089" export function doGet(url,params){ return axios({ method:"get", url:url, params:params, dataType:"json" }); } export function doPost(url,data){ return axios({ method:"post", url:url, data:data, dataType:"json" }); } export function doPut(url,data){ return axios({ method:"put", url:url, data:data, dataType:"json" }); } export function doDelete(url,params){ return axios({ method:"delete", url:url, params:params, dataType:"json" }); } // 对axios发送请求做设置 axios.interceptors.request.use((config) => { //在请求头中放置一个Token let token = window.sessionStorage.getItem(getTokenName()); if(!token){ token = window.localStorage.getItem(getTokenName()); } config.headers['Authorization'] = token; return config; },(error) => { return Promise.reject(error); }); // 对axios接受数据做设置 axios.interceptors.response.use((response) => { // 对响应数据做处理,拦截token相应的结果,进行对应的处理 if(response.data.code > 900){ // code大于900说明是token验证未通过 ElMessageBox.confirm( // 提示信息 response.data.msg+'是否重新登录', 'Warning', { confirmButtonText: '确定', cancelButtonText: '取消', type: 'warning', } ).then(() => { // 点击确定按钮 messageTip('success','即将跳转到登录页'); window.location.href="/"; }) .catch(() => { // 点击取消按钮 messageTip("已取消",'warning'); }); } return response; },function (error){ return Promise.reject(error); });
import axios from "axios";
import { getTokenName, messageTip } from "../util/util";
axios.defaults.baseURL = "http://localhost:8089"
export function doGet(url,params){
return axios({
method:"get",
url:url,
params:params,
dataType:"json"
});
}
export function doPost(url,data){
return axios({
method:"post",
url:url,
data:data,
dataType:"json"
});
}
export function doPut(url,data){
return axios({
method:"put",
url:url,
data:data,
dataType:"json"
});
}
export function doDelete(url,params){
return axios({
method:"delete",
url:url,
params:params,
dataType:"json"
});
}
// 对axios发送请求做设置
axios.interceptors.request.use((config) => {
//在请求头中放置一个Token
let token = window.sessionStorage.getItem(getTokenName());
if(!token){
token = window.localStorage.getItem(getTokenName());
}
config.headers['Authorization'] = token;
return config;
},(error) => {
return Promise.reject(error);
});
// 对axios接受数据做设置
axios.interceptors.response.use((response) => {
// 对响应数据做处理,拦截token相应的结果,进行对应的处理
if(response.data.code > 900){
// code大于900说明是token验证未通过
ElMessageBox.confirm(
// 提示信息
response.data.msg+'是否重新登录',
'Warning',
{
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
}
).then(() => {
// 点击确定按钮
messageTip('success','即将跳转到登录页');
window.location.href="/";
})
.catch(() => {
// 点击取消按钮
messageTip("已取消",'warning');
});
}
return response;
},function (error){
return Promise.reject(error);
});
欢迎使用CRM系统
欢迎登陆登录
欢迎使用CRM系统
欢迎登陆
登录
import { getTokenName, messageTip, removeToken } from "../util/util.js"
import { doPost } from '../http/httpRequest';
export default {
name : "LoginView",
data(){
return {
user : {
loginAct : "",
loginPwd : "",
rememberMe : false
},
// 定义登录表单的验证规则
loginRules : {
// 账号验证规则
loginAct : [
{ required: true, message: '请输入登录账号', trigger: 'blur' },
{ min: 3, max: 15, message: '账号长度不合法', trigger: 'blur' },
],
// 密码验证规则
loginPwd : [
{ required: true, message: '请输入密码', trigger: 'blur' },
{ min: 6, max: 18, message: '密码长度不合法', trigger: 'blur' },
]
}
}
},
methods : {
// 将页面上的函数在此定义
login(){
// 提交前要验证合法性
this.$refs.loginRefForm.validate((isValid) => {
// isValid是验证后回传的结果,true为通过
if(isValid){
// 验证通过,可以提交
let formData = new FormData();
// 可以视为map,是json对象
// 内部以键值对形式提交数据给后台
formData.append("loginAct",this.user.loginAct);
formData.append("loginPwd",this.user.loginPwd);
formData.append("rememberMe",this.user.rememberMe);
// 不要用对象传,用formData传递数据
doPost("/api/login",formData).then((resp) => {
console.log(resp);
if(resp.status === 200){
messageTip('登陆成功,即将跳转到主页',"success");
// 删除一下历史Token
removeToken();
// 存储jwt
if(this.user.rememberMe === true){
window.localStorage.setItem(getTokenName(),resp.data);
}
else{
window.sessionStorage.setItem(getTokenName(),resp.data);
}
window.location.href="/dashboard"
}
else{
messageTip('登陆失败,请检查您的信息',"error");
}
});
}
});
}
}
}
.el-aside {
background: black;
width: 40%;
text-align: center;
}
.imgTitle {
color: white;
font-size: 28px;
font-weight: bold;
}
.el-aside img {
height: 30%;
}
.el-main {
width: 60%;
/* 使用JS实现铺满 */
/* 设置为100%屏幕高度 */
height: calc(100vh);
}
.el-form {
width: 60%;
margin: auto;
}
.loginTitle{
text-align: center;
margin-top: 10%;
margin-bottom: 5%;
font-size: 30px;
font-weight: bold;
}
.el-button{
width: 100%;
}
市场活动 市场活动 市场统计 线索管理 线索管理 线索统计 客户管理 客户管理 客户统计 交易管理 交易管理 交易统计 产品管理 产品管理 产品统计 字典管理 字典管理 字典统计 用户管理 用户管理 用户统计 系统管理 系统管理 系统统计 旧约 我的资料 修改密码 退出登录 我是一个主页 @版权所有 2000-2099 旧约Alatus 深圳市龙华区民治街道潜龙花园第XX栋XX总部xx号
active-text-color="#ffd04b"
background-color="#334157"
class="el-menu-vertical-demo"
default-active="2"
style="border-right: solid 0px;"
:unique-opened="true"
text-color="#fff"
:collapse="isShowed"
:collapse-transition="false"
>
市场活动
市场活动
市场统计
线索管理
线索管理
线索统计
客户管理
客户管理
客户统计
交易管理
交易管理
交易统计
产品管理
产品管理
产品统计
字典管理
字典管理
字典统计
用户管理
用户管理
用户统计
系统管理
系统管理
系统统计
旧约
我的资料
修改密码
退出登录
我是一个主页
@版权所有 2000-2099 旧约Alatus 深圳市龙华区民治街道潜龙花园第XX栋XX总部xx号
import {doGet} from "../http/httpRequest.js";
export default {
name : "dashboard",
mounted(){
// 挂载时获取用户名
this.loadLoginName();
},
methods : {
loadLoginName(){
// 获取用户名
doGet("/api/login/info",{}).then((resp) => {
console.log(resp);
});
},
// 左侧菜单左右展开与折叠
showMenu(){
// 取反即可
this.isShowed = !this.isShowed;
}
},
data(){
return {
isShowed : false,
}
}
}
.el-dropdown{
float: right;
line-height: 225%;
}
.el-aside{
background-color: black;
}
.menuTitle{
color: white;
text-align: center;
height: 5%;
line-height: 225%;
}
.el-header{
background-color: azure;
height: 5%;
line-height: 225%;
}
.el-footer{
background-color: aliceblue;
height: 5%;
line-height: 225%;
text-align: center;
}
.rightContent{
/* 高度设置为计算高度,屏幕高度的100% */
height: calc(100vh);
}
.show{
/* 聚焦事件 */
cursor: pointer;
}