myTest383 3 weeks ago
parent
commit
ac844a9a3e
  1. 86
      src/api/brank/brank.js
  2. 97
      src/api/user.js
  3. 22
      src/layout/components/Navbar.vue
  4. 27
      src/utils/auth.js
  5. 84
      src/views/index.vue
  6. 450
      src/views/login/login.vue

86
src/api/brank/brank.js

@ -2,49 +2,49 @@ import request from '@/utils/request'
export default { export default {
addInfo: function(data) { addInfo: function(data) {
return request({ return request({
baseURL: "/api/crm", baseURL: "/api/crm",
url: '/v1/loanbankinformation/save', url: '/v1/loanbankinformation/save',
method: 'post', method: 'post',
data: data data: data
}); });
}, },
fetchBySid: function(sid) {
return request({
baseURL: '/api/crm',
url: '/v1/loanbankinformation/getBankInfBySid/' + sid
})
},
updateData: function(data) { fetchBySid: function(sid) {
return request({ return request({
baseURL: "/api/crm", baseURL: '/api/crm',
url: '/v1/loanbankinformation/update', url: '/v1/loanbankinformation/getBankInfBySid/' + sid
method: 'post', })
data: data },
});
},
delBySids: function(sid) { updateData: function(data) {
return request({ return request({
baseURL: '/api/crm', baseURL: "/api/crm",
url: 'v1/loanbankinformation/delete/' + sid, url: '/v1/loanbankinformation/update',
method: 'delete' method: 'post',
}) data: data
}, });
},
// 查询分页列表 delBySids: function(sid) {
listPage: function(params) { return request({
return request({ baseURL: '/api/crm',
baseURL: '/api/crm', url: 'v1/loanbankinformation/delete/' + sid,
url: '/v1/loanbankinformation/listPage', method: 'delete'
method: 'post', })
data: params, },
headers: {
'Content-Type': 'application/json' // 查询分页列表
} listPage: function(params) {
}) return request({
}, baseURL: '/api/crm',
} url: '/v1/loanbankinformation/listPage',
method: 'post',
data: params,
headers: {
'Content-Type': 'application/json'
}
})
},
}

97
src/api/user.js

@ -1,72 +1,85 @@
import request from '@/utils/request' import request from '@/utils/request'
// eslint-disable-next-line no-unused-vars // eslint-disable-next-line no-unused-vars
import qs from 'qs' import qs from 'qs'
let tokens = window.sessionStorage.getItem('tokenValue')
// 登录 // 登录
export function doLogin(data) { export function doLogin(data) {
return request({ return request({
url: '/sysuser/doLogin', url: '/sysuser/doLogin',
method: 'post', method: 'post',
data: data, data: data,
headers: { 'Content-Type': 'application/json' } headers: {
}) 'Content-Type': 'application/json',
'token': tokens
}
})
} }
// 获取登录人员信息 // 获取登录人员信息
export function getUserById(sid) { export function getUserById(sid) {
return request({ return request({
url: '/cyf/sys/getUserById/' + sid url: '/cyf/sys/getUserById/' + sid
}) })
} }
// 登录 // 登录
export function login(data) { export function login(data) {
return request({ return request({
url: '/portal/v1/sysuser/login', url: '/portal/v1/sysuser/login',
method: 'post', method: 'post',
data: data, data: data,
headers: { 'Content-Type': 'application/json' } headers: {
}) 'Content-Type': 'application/json',
'token': tokens
}
})
} }
// 用户注册 // 用户注册
export function registUser(data) { export function registUser(data) {
return request({ return request({
url: '/system/user/save', url: '/system/user/save',
method: 'post', method: 'post',
data, data,
headers: { 'Content-Type': 'application/x-www-form-urlencoded;' } headers: {
}) 'Content-Type': 'application/json',
'token': tokens
}
})
} }
// 获取手机验证码 // 获取手机验证码
export function getVerificationCode(data) { export function getVerificationCode(data) {
return request({ return request({
url: '/system/user/getVerificationCode', url: '/system/user/getVerificationCode',
method: 'get', method: 'get',
params: data params: data
}) })
} }
// 获取登录验证码 // 获取登录验证码
export function imgCode() { export function imgCode() {
return request({ return request({
url: '/system/api/defaultBlendCode?temm=' + new Date().getTime(), url: '/system/api/defaultBlendCode?temm=' + new Date().getTime(),
method: 'get' method: 'get'
}) })
} }
// 获取用信息 // 获取用信息
export function getInfo(token) { export function getInfo(token) {
return request({ return request({
url: '/system/user/loginDetails', url: '/system/user/loginDetails',
method: 'post' method: 'post'
}) })
} }
export function logout(data) { // 退出 export function logout(data) { // 退出
return request({ return request({
url: '/portal/v1/sysuser/signOut', url: '/sysuser/signOut',
method: 'post', method: 'get',
data: qs.stringify(data) params: data,
}) headers: {
} 'Content-Type': 'application/json',
'token': tokens
}
})
}

22
src/layout/components/Navbar.vue

@ -18,6 +18,9 @@
</template> </template>
<script> <script>
import {
logout,
} from '@/api/user.js'
export default { export default {
data() { data() {
return { return {
@ -37,10 +40,23 @@
cancelButtonText: '取消', cancelButtonText: '取消',
type: 'warning' type: 'warning'
}).then(() => { }).then(() => {
// this.$store.commit('user/SET_UESRINFO', '')
this.$router.push({ var params = {
path: '/login' loginId: window.sessionStorage.getItem('loginId')
}
logout(params).then((response) => {
if (response.success) {
window.sessionStorage.clear()
this.$router.push({
path: '/login'
})
// location.reload()
}
}) })
}) })
}, },
} }

27
src/utils/auth.js

@ -1,37 +1,40 @@
import Cookies from 'js-cookie' import Cookies from 'js-cookie'
const TokenKey = 'token' const TokenKey = 'tokenName'
const sessionKey = 'token' const sessionKey = 'tokenValue'
export function getToken() { export function getToken() {
return Cookies.get(TokenKey) return Cookies.get(TokenKey)
} }
export function setToken(token) { export function setToken(token) {
return Cookies.set(TokenKey, token, { expires: 7, path: '/' }) return Cookies.set(TokenKey, token, {
expires: 7,
path: '/'
})
} }
export function removeToken() { export function removeToken() {
return Cookies.remove(TokenKey) return Cookies.remove(TokenKey)
} }
export function getStorage() { export function getStorage() {
return sessionStorage.getItem('token') return sessionStorage.getItem('tokenName')
// return 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyTm8iOiI0MjdhMmZiMC02MGM1LTQwOWYtYmVhNC00ZWI0NDEwNDFhZTYiLCJpc3MiOiJXQksiLCJleHAiOjE2NzQ2NzU5Mzl9.1P6VgCk3sXxWkl1364y7xhfc4ifdg6uGkzkF6uEmhIo' // return 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyTm8iOiI0MjdhMmZiMC02MGM1LTQwOWYtYmVhNC00ZWI0NDEwNDFhZTYiLCJpc3MiOiJXQksiLCJleHAiOjE2NzQ2NzU5Mzl9.1P6VgCk3sXxWkl1364y7xhfc4ifdg6uGkzkF6uEmhIo'
} }
export function setStorage(session) { export function setStorage(session) {
return sessionStorage.setItem('token', session) return sessionStorage.setItem('tokenName', session)
} }
export function setDefaultOrgPathName(data) { export function setDefaultOrgPathName(data) {
return sessionStorage.setItem('defaultOrgPathName', data) return sessionStorage.setItem('defaultOrgPathName', data)
} }
export function setDefaultOrgPath(data) { export function setDefaultOrgPath(data) {
return sessionStorage.setItem('defaultOrgPath', data) return sessionStorage.setItem('defaultOrgPath', data)
} }
export function removeStorage() { export function removeStorage() {
return sessionStorage.removeItem('token') return sessionStorage.removeItem('tokenName')
} }

84
src/views/index.vue

@ -1,51 +1,53 @@
<template> <template>
<div class="imgDemo"> <div class="imgDemo">
<!--<el-button type="primary" @click="getToken()">token</el-button> <!--<el-button type="primary" @click="getToken()">token</el-button>
<div style="width: 200px;">{{token}}</div>--> <div style="width: 200px;">{{token}}</div>-->
</div> </div>
</template> </template>
<script> <script>
import {login1} from '@/api/system/user/login.js' import {
export default { login1
name: '', } from '@/api/system/user/login.js'
data() { export default {
return { name: '',
token1:'', data() {
token2:'' return {
} token1: '',
token2: ''
}
}, },
created() { created() {
this.token1 = window.sessionStorage.getItem('tokenName'); // this.token1 = window.sessionStorage.getItem('tokenName');
this.token2 = window.sessionStorage.getItem('tokenValue'); // this.token2 = window.sessionStorage.getItem('tokenValue');
console.log("tokenName2222", this.token1) // console.log("tokenName2222", this.token1)
console.log("tokenValue222222", this.token2) // console.log("tokenValue222222", this.token2)
}, },
methods:{ methods: {
// getToken(){ // getToken(){
// let params = { // let params = {
// password: "329653", // password: "329653",
// roleSid: "", // roleSid: "",
// token: "", // token: "",
// userName: "15097329653", // userName: "15097329653",
// verifyCode: "" // verifyCode: ""
// } // }
// login1(params).then(res => { // login1(params).then(res => {
// this.token = res.data.token // this.token = res.data.token
// window.sessionStorage.setItem('token', res.data.token) // window.sessionStorage.setItem('token', res.data.token)
// }) // })
// } // }
}
} }
}
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.imgDemo { .imgDemo {
width: 100%; width: 100%;
height: 100%; height: 100%;
background: radial-gradient(#fff,#f5f7f4, #fff); background: radial-gradient(#fff, #f5f7f4, #fff);
} }
canvas {
} canvas {}
</style> </style>

450
src/views/login/login.vue

@ -1,189 +1,189 @@
<template> <template>
<div class="login"> <div class="login">
<div class="logoTitle" style="margin-left: 50px;margin-top: 50px;"> <div class="logoTitle" style="margin-left: 50px;margin-top: 50px;">
<!-- <img src="../../assets/loginImg/shgf.png" <!-- <img src="../../assets/loginImg/shgf.png"
style="width: 50px;height: 50px; margin-right: 10px;" /><span>汇融惠享</span> style="width: 50px;height: 50px; margin-right: 10px;" /><span>汇融惠享</span>
<p class="title" style="margin-top: 5px;">汇融惠享管理平台</p> --> <p class="title" style="margin-top: 5px;">汇融惠享管理平台</p> -->
</div> </div>
<div class="main"> <div class="main">
<div class="content"> <div class="content">
<el-form ref="loginForm" :model="loginForm" class="login-form"> <el-form ref="loginForm" :model="loginForm" class="login-form">
<h3 class="title1">用户登录</h3> <h3 class="title1">用户登录</h3>
<el-form-item> <el-form-item>
<el-input v-model="loginForm.userName" autocomplete="off" placeholder="请输入账号" prefix-icon="el-icon-user"> <el-input v-model="loginForm.userName" autocomplete="off" placeholder="请输入账号"
</el-input> prefix-icon="el-icon-user">
</el-form-item> </el-input>
<el-form-item> </el-form-item>
<el-input v-model="loginForm.password" autocomplete="off" placeholder="请输入密码" prefix-icon="el-icon-lock" <el-form-item>
show-password> <el-input v-model="loginForm.password" autocomplete="off" placeholder="请输入密码"
</el-input> prefix-icon="el-icon-lock" show-password>
<!-- <span class="nopsw register" @click="forgetPwd = true">忘记密码 </span> --> </el-input>
</el-form-item> <!-- <span class="nopsw register" @click="forgetPwd = true">忘记密码 </span> -->
<el-form-item v-show="showMsg" style="margin-bottom:0;"> </el-form-item>
<span class="text-danger">提示用户名或密码错误请重试</span> <el-form-item v-show="showMsg" style="margin-bottom:0;">
</el-form-item> <span class="text-danger">提示用户名或密码错误请重试</span>
</el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" class="login-btn" v-loading="loading" @click="login"> </el-button> <el-button type="primary" class="login-btn" v-loading="loading" @click="login"> </el-button>
<!-- <el-popover placement="top" width="400" trigger="click" v-model="loginCode" @show="codeShow"> <!-- <el-popover placement="top" width="400" trigger="click" v-model="loginCode" @show="codeShow">
<imgCodeRole @login="login" ref="imgCodeRole"></imgCodeRole> <imgCodeRole @login="login" ref="imgCodeRole"></imgCodeRole>
<el-button slot="reference" type="primary" class="login-btn" v-loading="loading"> </el-button> <el-button slot="reference" type="primary" class="login-btn" v-loading="loading"> </el-button>
</el-popover> --> </el-popover> -->
<!--<router-link :to="{name: 'registUser'}" target="_blank" tag="a" class="register fl">个人注册</router-link> <!--<router-link :to="{name: 'registUser'}" target="_blank" tag="a" class="register fl">个人注册</router-link>
<router-link :to="{name: 'registOrg'}" target="_blank" tag="a" class="register fr">单位注册</router-link>--> <router-link :to="{name: 'registOrg'}" target="_blank" tag="a" class="register fr">单位注册</router-link>-->
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </div>
</div> </div>
<el-dialog title="忘记密码" :visible.sync="forgetPwd"> <el-dialog title="忘记密码" :visible.sync="forgetPwd">
<el-form :model="nopassword"> <el-form :model="nopassword">
<el-form-item label="手机号"> <el-form-item label="手机号">
<el-input v-model="nopassword.userPhone" autocomplete="off"></el-input> <el-input v-model="nopassword.userPhone" autocomplete="off"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="用户名"> <el-form-item label="用户名">
<el-input v-model="nopassword.userName" autocomplete="off"></el-input> <el-input v-model="nopassword.userName" autocomplete="off"></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button @click="forgetPwd = false"> </el-button> <el-button @click="forgetPwd = false"> </el-button>
<el-button type="primary" @click="reGetPwd()"> </el-button> <el-button type="primary" @click="reGetPwd()"> </el-button>
</div> </div>
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
<script> <script>
import { import {
doLogin, doLogin,
getUserById, getUserById,
imgCode imgCode
} from '@/api/user.js' } from '@/api/user.js'
import user from '@/api/User/login.js' import user from '@/api/User/login.js'
import { import {
setToken, setToken,
getToken, getToken,
setSession setSession
} from '@/utils/auth' } from '@/utils/auth'
import imgCodeRole from '@/components/imgCodeRole/index.vue' import imgCodeRole from '@/components/imgCodeRole/index.vue'
import qs from 'qs' import qs from 'qs'
export default { export default {
components: { components: {
imgCodeRole imgCodeRole
},
data() {
return {
loginForm: {
userName: '',
password: '',
}, },
imgCode: '', data() {
loading: false, return {
loginCode: false, loginForm: {
showMsg: false, userName: '',
forgetPwd: false, password: '',
nopassword: { },
userPhone: '', imgCode: '',
userName: '', loading: false,
loginCode: false,
showMsg: false,
forgetPwd: false,
nopassword: {
userPhone: '',
userName: '',
},
}
}, },
} methods: {
}, login() {
methods: { console.log(66);
login() { doLogin(this.loginForm).then((response) => {
console.log(66); if (response.code == 200) {
doLogin(this.loginForm).then((response) => { this.$router.push({
if (response.code == 200) { path: '/index'
this.$router.push({ })
path: '/index' this.loading = true
}) // this.getUserInfo(response.data.loginId)
this.loading = true window.sessionStorage.setItem('tokenName', response.data.tokenValue)
// this.getUserInfo(response.data.loginId) window.sessionStorage.setItem('loginId', response.data.loginId)
window.sessionStorage.setItem('tokenName', response.data.tokenName) }
window.sessionStorage.setItem('tokenValue', response.data.tokenValue)
}
}).catch(() => { }).catch(() => {
this.loading = true this.loading = true
}) })
}, },
getUserInfo(id) { getUserInfo(id) {
getUserById(id).then((response) => { getUserById(id).then((response) => {
if (response.code == 200) { if (response.code == 200) {
console.log(" response", response) console.log(" response", response)
let user = response.data let user = response.data
// //
window.sessionStorage.setItem('staffSid', user.staffSid) window.sessionStorage.setItem('staffSid', user.staffSid)
window.sessionStorage.setItem('sid', user.sid) window.sessionStorage.setItem('sid', user.sid)
window.sessionStorage.setItem('userName', user.userName) window.sessionStorage.setItem('userName', user.userName)
} }
}).catch(() => { }).catch(() => {})
})
}, },
codeShow() { codeShow() {
if (this.loginForm.password == '' || this.loginForm.userName == '') { if (this.loginForm.password == '' || this.loginForm.userName == '') {
this.loginCode = false this.loginCode = false
this.showMsg = true this.showMsg = true
return return
} }
this.$refs.imgCodeRole.getCodeImage() this.$refs.imgCodeRole.getCodeImage()
}, },
reGetPwd() { reGetPwd() {
user.reGetPwd(this.nopassword).then((res) => {}) user.reGetPwd(this.nopassword).then((res) => {})
}, },
}, },
} }
</script> </script>
<style lang="scss"> <style lang="scss">
.login { .login {
position: relative; position: relative;
width: 100%; width: 100%;
height: 100%; height: 100%;
background-size: 100% 100%; background-size: 100% 100%;
background-image: url(../../assets/home/bj.jpg); background-image: url(../../assets/home/bj.jpg);
background-position: center; background-position: center;
overflow: hidden; overflow: hidden;
.logoTitle { .logoTitle {
margin: 30px; margin: 30px;
img { img {
width: 70px; width: 70px;
} }
span { span {
font-size: 40px; font-size: 40px;
color: #191919; color: #191919;
} }
.title { .title {
font-size: 25px; font-size: 25px;
font-family: Source Han Sans CN; font-family: Source Han Sans CN;
font-weight: 500; font-weight: 500;
color: #191919; color: #191919;
margin: 0; margin: 0;
} }
} }
.main { .main {
width: 30%; width: 30%;
/*height: 640px;*/ /*height: 640px;*/
background: #ffffff; background: #ffffff;
box-shadow: 0px 13px 12px 0px rgba(0, 0, 0, 0.15); box-shadow: 0px 13px 12px 0px rgba(0, 0, 0, 0.15);
opacity: 0.8; opacity: 0.8;
border-radius: 20px; border-radius: 20px;
position: absolute; position: absolute;
right: 15%; right: 15%;
top:35%; top: 35%;
.content { .content {
position: relative; position: relative;
/*.title-h3{ /*.title-h3{
width: 100%; width: 100%;
text-align: center; text-align: center;
color: #FFFFFF; color: #FFFFFF;
@ -193,87 +193,87 @@
top: -65px; top: -65px;
}*/ }*/
} }
}
} }
}
.login-form { .login-form {
padding: 30px 50px; padding: 30px 50px;
.title1 { .title1 {
margin: 0px auto 30px auto; margin: 0px auto 30px auto;
text-align: center; text-align: center;
font-size: 20px; font-size: 20px;
color: #191919; color: #191919;
font-size: 23px; font-size: 23px;
font-weight: 500; font-weight: 500;
} }
.el-input { .el-input {
border: none; border: none;
background-color: transparent; background-color: transparent;
} }
.code { .code {
position: absolute; position: absolute;
top: 3px; top: 3px;
right: 5px; right: 5px;
width: 35%; width: 35%;
height: 35px; height: 35px;
cursor: pointer; cursor: pointer;
z-index: 9; z-index: 9;
} }
.nopsw { .nopsw {
position: absolute; position: absolute;
bottom: -30px; bottom: -30px;
right: 5px; right: 5px;
color: #018ad2; color: #018ad2;
font-size: 15px; font-size: 15px;
line-height: 30px; line-height: 30px;
} }
.register { .register {
color: #EE640C; color: #EE640C;
} }
.register:hover, .register:hover,
.nopsw:hover { .nopsw:hover {
cursor: pointer; cursor: pointer;
} }
.btn-eye { .btn-eye {
cursor: pointer; cursor: pointer;
} }
.text-danger { .text-danger {
color: #f56c6c; color: #f56c6c;
} }
.login-btn { .login-btn {
margin: 10px 0 10px 0; margin: 10px 0 10px 0;
width: 100%; width: 100%;
background-color: #EE640C; background-color: #EE640C;
border: 0; border: 0;
} }
.login-btn:hover { .login-btn:hover {
background-color: #EE640C; background-color: #EE640C;
border: 0; border: 0;
} }
.el-input--prefix .el-input__inner { .el-input--prefix .el-input__inner {
border: 1px solid #EE640C; border: 1px solid #EE640C;
background: transparent; background: transparent;
color: #333 !important; color: #333 !important;
} }
.el-form-item { .el-form-item {
margin-bottom: 40px; margin-bottom: 40px;
} }
.el-loading-mask { .el-loading-mask {
background-color: rgba(255, 255, 255, 0.6); background-color: rgba(255, 255, 255, 0.6);
}
} }
} </style>
</style>
Loading…
Cancel
Save