Commit cce63c11 by 米嘉伟

Merge branch 'dev_zwpt' of http://47.92.108.28/changchao/founder_vue into dev_zwpt

parents da883ae1 d58281a8
......@@ -23,6 +23,10 @@ let config = {
// baseURL: process.env.baseURL || process.env.apiUrl || ""
timeout: 60 * 1000, // Timeout
// withCredentials: true, // Check cross-site Access-Control
// Authorization: sessionStorage.getItem("token") || ""
headers: {
Authorization: localStorage.getItem("token") || ""
}
};
const _axios = axios.create(config);
......@@ -31,12 +35,10 @@ _axios.interceptors.request.use(
function(config) {
// 进度条
NProgress.start();
// Do something before request is sent
// let token = store.state.user.token;
let token = localStorage.getItem("token");
if (token) {
config.headers.Authorization = token;
// console.info(config);
// 在发送请求之前做些什么
// 判断是否存在token,如果存在将每个页面header添加token
if (sessionStorage.getItem("token")) {
// config.headers.common["Authorization"] = sessionStorage.getItem("token");
}
return config;
},
......
......@@ -3,19 +3,47 @@
<el-container class="layout-container">
<transition name="slide">
<el-aside :width="isCollapse ? '4rem' : '17.5rem'" class="aside">
<div class="logo" :class="{ minLogo: isCollapse }" @click="$router.push('/Home/Home')">
<div
class="logo"
:class="{ minLogo: isCollapse }"
@click="$router.push('/Home/Home')"
>
<img class="jh" src="../assets/img/Home/jh.png" alt="" />
<img v-show="!isCollapse" class="title" src="../assets/img/Home/title.png" alt="" />
<img
v-show="!isCollapse"
class="title"
src="../assets/img/Home/title.png"
alt=""
/>
</div>
<!-- <div class="search">
<el-input v-if="!isCollapse" @keyup.enter.native="goSearch()" class="searchTxt" prefix-icon="el-icon-search" v-model="searchTxt" placeholder="搜索"></el-input>
<i class="search-icon el-icon-search" v-else></i>
</div> -->
<el-menu :collapse-transition="false" ref="menu" :default-active="menuActive" text-color="#CCCCCC" active-text-color="#ffffff" background-color="#1F2D45" class="el-menu-vertical-demo" @open="handleOpen" @close="handleClose" :collapse="isCollapse" @select="selectPath">
<el-menu
:collapse-transition="false"
ref="menu"
:default-active="menuActive"
text-color="#CCCCCC"
active-text-color="#ffffff"
background-color="#1F2D45"
class="el-menu-vertical-demo"
@open="handleOpen"
@close="handleClose"
:collapse="isCollapse"
@select="selectPath"
>
<div v-for="(menu, i) in routes" :key="i">
<el-submenu :index="menu.name" v-if="menu.children && !menu.hidden">
<el-submenu
:index="menu.name"
v-if="menu.children && !menu.hidden"
>
<template slot="title">
<img v-if="$route.path != menu.path" :src="menu.icon_d" alt="" />
<img
v-if="$route.path != menu.path"
:src="menu.icon_d"
alt=""
/>
<img v-else :src="menu.icon_a" alt="" />
<span v-show="!isCollapse">{{ menu.meta.title }}</span>
</template>
......@@ -25,8 +53,15 @@
}}</el-menu-item>
</div>
</el-submenu>
<el-menu-item :index="menu.name" v-else-if="!menu.children && !menu.hidden">
<img v-if="$route.path != menu.path" :src="menu.icon_d" alt="" />
<el-menu-item
:index="menu.name"
v-else-if="!menu.children && !menu.hidden"
>
<img
v-if="$route.path != menu.path"
:src="menu.icon_d"
alt=""
/>
<img v-else :src="menu.icon_a" alt="" />
<span slot="title">{{ menu.meta.title }}</span>
</el-menu-item>
......@@ -53,8 +88,18 @@
</div>
<div class="quit" @click="$router.push('/Home/Home')"></div>
<div class="logout" @click="logout">
<svg-icon v-show="!isHoverLogout" icon-class="logout_d" class="icon" @mouseover="isHoverLogout = true" @mouseleave="isHoverLogout = false" />
<svg-icon v-show="isHoverLogout" icon-class="logout_a" class="icon" />
<svg-icon
v-show="!isHoverLogout"
icon-class="logout_d"
class="icon"
@mouseover="isHoverLogout = true"
@mouseleave="isHoverLogout = false"
/>
<svg-icon
v-show="isHoverLogout"
icon-class="logout_a"
class="icon"
/>
</div>
</div>
</el-header>
......@@ -62,10 +107,20 @@
<div class="contain">
<!-- 导航 -->
<div class="breadcrumb">
<div @click="goManager" class="home-path path" :class="{ active: $route.path == '/Home/htzwcj' }">
<div
@click="goManager"
class="home-path path"
:class="{ active: $route.path == '/Home/htzwcj' }"
>
活体指纹采集
</div>
<div class="path" @click="changeRouter(item)" v-for="(item, i) in paths" :key="i" :class="{ active: $route.path == item.path }">
<div
class="path"
@click="changeRouter(item)"
v-for="(item, i) in paths"
:key="i"
:class="{ active: $route.path == item.path }"
>
<span>{{ item.name }}</span>
<div class="closeIcon" @click.stop="closePaths(item.name)">
×
......@@ -88,14 +143,14 @@
</template>
<script>
import zoom from '@/utils/autosize'
import zoom from "@/utils/autosize";
import "@/icons/logout_d.svg";
import "@/icons/logout_a.svg";
import indexRoutes from "@/router/modules/index";
import { mapGetters } from "vuex";
export default {
name: "Home",
data () {
data() {
return {
searchTxt: "",
routes: indexRoutes[2].children,
......@@ -107,8 +162,8 @@ export default {
isHoverLogout: false
};
},
created () { },
mounted () {
created() {},
mounted() {
this.menuActive = this.$route.name;
// console.log(this.$route);
// zoom('home')
......@@ -116,7 +171,7 @@ export default {
// zoom('home')
// })
},
updated () {
updated() {
this.menuActive = this.$route.name;
},
computed: {
......@@ -129,13 +184,14 @@ export default {
* @return {*}
*/
logout () {
logout() {
// console.log('退出登录');
// this.$router.replace('/login1')
this.$axios.post("/login/login/userLogout").then(res => {
if (res.data.code === 200) {
localStorage.removeItem("token"); //删除名称为“token”的信息。
localStorage.removeItem("userName"); //删除名称为“userName”的信息。
this.$router.replace("/login1");
localStorage.removeItem("token");
this.$message.info("退出成功!");
}
});
......@@ -146,7 +202,7 @@ export default {
* @return {*}
*/
goSearch () {
goSearch() {
this.searchTxt = "";
console.log(this.searchTxt);
},
......@@ -155,7 +211,7 @@ export default {
* @param {*}
* @return {*}
*/
goManager () {
goManager() {
this.$router.push("/Home/htzwcj");
this.menuActive = "";
},
......@@ -165,7 +221,7 @@ export default {
* @param {*} path
* @return {*}
*/
selectPath (index, path) {
selectPath(index, path) {
this.$router.push({ name: index });
},
/**
......@@ -173,7 +229,7 @@ export default {
* @param {*}
* @return {*}
*/
closePaths (pathName) {
closePaths(pathName) {
let res = this.paths.filter(item => {
return item.name != pathName;
});
......@@ -189,7 +245,7 @@ export default {
* @param {*}
* @return {*}
*/
changeRouter (route) {
changeRouter(route) {
this.$router.push(route.path);
this.menuActive = route.routeName;
},
......@@ -198,18 +254,18 @@ export default {
* @param {*}
* @return {*}
*/
switchCollapse () {
switchCollapse() {
this.isCollapse = !this.isCollapse;
},
handleOpen (key, keyPath) {
handleOpen(key, keyPath) {
console.log(key, keyPath);
},
handleClose (key, keyPath) {
handleClose(key, keyPath) {
console.log(key, keyPath);
}
},
watch: {
$route (newValue, oldValue) {
$route(newValue, oldValue) {
if (newValue.path != "/Home/htzwcj") {
if (this.paths.length == 0) {
this.paths.push({
......@@ -235,7 +291,7 @@ export default {
<style scoped lang="scss">
#home {
height: 100vh;
// height: 100%;
//height: 100%;
// filter: blur(5px);
}
.layout-container {
......
......@@ -4,29 +4,17 @@
<div class="header">
<!-- 头部左侧 -->
<div class="left">
<div><img
src="../../assets/img/Home/badges.png"
alt=""
/></div>
<div><img src="../../assets/img/Home/badges.png" alt="" /></div>
<span><img
src="../../assets/img/Home/logo.svg"
alt=""
/></span>
<span><img src="../../assets/img/Home/logo.svg" alt=""/></span>
</div>
<!-- 头部右侧 -->
<div class="right">
<div>
<img
src="../../assets/img/Home/setting.svg"
alt=""
/> 系统管理
<img src="../../assets/img/Home/setting.svg" alt="" /> 系统管理
</div>
<div class="role">
<img
src="../../assets/img/Home/role.svg"
alt=""
/>用户角色
<img src="../../assets/img/Home/role.svg" alt="" />用户角色
<div class="rolelist">
<ul>
<li>姓名:xxxx</li>
......@@ -36,11 +24,8 @@
</div>
</div>
<div @click="logout">
<img
src="../../assets/img/Home/exit.svg"
alt=""
/>安全退出
<div style="cursor:pointer" @click="logout">
<img src="../../assets/img/Home/exit.svg" alt="" />安全退出
</div>
</div>
<!-- 主体 -->
......@@ -51,10 +36,7 @@
<div class="todoview">
<div class="todo">
<div>
<img
src="../../assets/img/Home/todoview.svg"
alt=""
/>
<img src="../../assets/img/Home/todoview.svg" alt="" />
</div>
<p>待办工作</p>
</div>
......@@ -76,50 +58,26 @@
<!-- 第一列 -->
<div class="list l1">
<div class="import_images">
<img
src="../../assets/img/Home/import_images.svg"
alt=""
/>
<img src="../../assets/img/Home/import_images.svg" alt="" />
<div>图片导入</div>
</div>
<div
@click="godrFPTX"
class="import_FTP"
>
<img
src="../../assets/img/Home/import_FTP.svg"
alt=""
/>
<div @click="godrFPTX" class="import_FTP">
<img src="../../assets/img/Home/import_FTP.svg" alt="" />
<div>导入FPTX</div>
</div>
</div>
<!-- 第二列 -->
<div
class="list l2"
@click="gosjzygl"
>
<img
src="../../assets/img/Home/query.svg"
alt=""
/>
<div class="list l2" @click="gosjzygl">
<img src="../../assets/img/Home/query.svg" alt="" />
<p>发查询</p>
</div>
<!-- 第三列 -->
<div
@click="gobdrd"
class="list l2 l3"
>
<img
src="../../assets/img/Home/comparison.svg"
alt=""
/>
<div @click="gobdrd" class="list l2 l3">
<img src="../../assets/img/Home/comparison.svg" alt="" />
<p>比对认定</p>
</div>
<!-- 第四列 -->
<div
@click="gozzwcj"
class="list l1 l4"
>
<div @click="gozzwcj" class="list l1 l4">
<div class="import_images collect">
<img
src="../../assets/img/Home/collect_new.svg"
......@@ -128,14 +86,8 @@
/>
<div>活体采集</div>
</div>
<div
@click="gosjzygl"
class="import_FTP management"
>
<img
src="../../assets/img/Home/management.svg"
alt=""
/>
<div @click="gosjzygl" class="import_FTP management">
<img src="../../assets/img/Home/management.svg" alt="" />
<div>数据资源管理</div>
</div>
</div>
......@@ -150,29 +102,30 @@ import qs from "qs";
export default {
name: "Home",
data () {
data() {
return {
userInfo: { userName: "admin", passWord: "123456" }
};
},
methods: {
godrFPTX () {
this.$router.push("/drFPTX")
godrFPTX() {
this.$router.push("/drFPTX");
},
gobdrd () {
gobdrd() {
this.$router.push("/cxyrd");
},
gosjzygl () {
gosjzygl() {
this.$router.push("/AllPersonnelBaseIndex/");
},
gozzwcj () {
gozzwcj() {
// this.$router.push("/AllPersonnelBaseIndex");
},
logout () {
logout() {
this.$axios.post("/login/login/userLogout").then(res => {
if (res.data.code === 200) {
localStorage.removeItem("token"); //删除名称为“token”的信息。
localStorage.removeItem("userName"); //删除名称为“userName”的信息。
this.$router.replace("/login1");
localStorage.removeItem("token");
this.$message.info("退出成功!");
}
});
......
<template>
<div>权限管理</div>
<el-container class="manage-page" direction="vertical">
<!--权限管理-->
<dvi class="header">
<div class="btns">
<div class="btn" :class="{ active: isUser }" @click="getUser">
用户列表
</div>
<div class="btn" :class="{ active: isGroup }" @click="getGroup">
用户组列表
</div>
</div> </dvi
><br />
<div class="search">
<div class="search-item">
<div class="label">用户组:</div>
<div class="input">请输入并选择</div>
</div>
<div class="search-item">
<div class="label">用户名:</div>
<div class="input">请输入并选择</div>
</div>
<div class="search-item">
<div class="label">姓名:</div>
<div class="input">请输入并选择</div>
</div>
<div class="search-item">
<div class="label">用户所属单位代码:</div>
<div class="input">请输入并选择</div>
</div>
<div class="search-item">
<div class="label">组角色:</div>
<div class="input">请输入并选择</div>
</div>
<div class="btns">
<div class="btn-clear">清空</div>
<div class="btn-search">筛选用户组</div>
</div>
</div>
<div class="main">
<div v-if="isUser" class="user">
<el-table
height="720"
highlight-current-row
ref="userMultipleTable"
:data="userTableData"
class="table"
@selection-change="userHandleSelectionChange"
>
<el-table-column prop="date" label="用户名"> </el-table-column>
<el-table-column prop="name" label="姓名"> </el-table-column>
<el-table-column prop="address" label="警号"> </el-table-column
><el-table-column prop="date" label="用户组"> </el-table-column>
<el-table-column prop="name" label="所属单位"> </el-table-column>
<el-table-column prop="address" label="角色"> </el-table-column
><el-table-column prop="date" label="权限"> </el-table-column>
<el-table-column prop="name" label="启用状态"> </el-table-column>
<el-table-column prop="address" label="操作"></el-table-column>
</el-table>
</div>
<div v-if="isGroup" class="group">
<el-table
height="720"
highlight-current-row
ref="groupMultipleTable"
:data="groupTableData"
class="table"
@selection-change="groupHandleSelectionChange"
>
<el-table-column prop="date" label="用户组"> </el-table-column>
<el-table-column prop="name" label="组角色"> </el-table-column>
<el-table-column prop="address" label="组成员"> </el-table-column>
<el-table-column prop="date" label="启用状态"> </el-table-column>
<el-table-column prop="address" label="操作"></el-table-column>
</el-table>
</div>
</div>
<div class="footer">
<span class="count"
>{{ reqParam.page.total }} 条记录 第{{ reqParam.page.currPage }}/{{
Tpage
}}</span
>
<div class="page">
<el-pagination
class="paging"
background
@size-change="handleSizeChange"
@current-change="handleCurrPageChange"
:current-page="reqParam.page.currPage"
:page-sizes="[10, 20, 50, 100]"
:page-size="reqParam.page.pageSize"
layout="prev, pager, next"
:total="reqParam.page.total"
>
</el-pagination>
</div>
</div>
</el-container>
</template>
<script>
export default {
name: "AuthManage"
name: "AuthManage",
data() {
return {
reqParam: {
userdesc: "",
page: {
total: 0,
pageSize: 10,
currPage: 1
}
},
isUser: false,
isGroup: false,
userTableData: [],
groupTableData: [],
// 选中user的数据
userMultipleSelection: [],
// 选中group的数据
groupMultipleSelection: []
};
},
computed: {
// 计算总页数
Tpage() {
return (
Math.floor(this.reqParam.page.total / this.reqParam.page.pageSize) + 1
);
}
},
methods: {
getUser() {
this.isUser = true;
this.isGroup = false;
},
getGroup() {
this.isUser = false;
this.isGroup = true;
},
// 选择数据
userHandleSelectionChange(val) {
this.userMultipleSelection = val;
console.info("选择的数据", this.userMultipleSelection);
if (this.userMultipleSelection.length) {
this.isShowTip = true;
} else {
this.isShowTip = false;
}
},
// 选择数据
groupHandleSelectionChange(val) {
this.groupMultipleSelection = val;
console.info("选择的数据", this.groupMultipleSelection);
if (this.groupMultipleSelection.length) {
this.isShowTip = true;
} else {
this.isShowTip = false;
}
},
// 当期页发生变化
handleCurrPageChange: function(val) {
this.reqParam.page.currPage = val;
// this.search();
},
// 每页展示数量发生变化
handleSizeChange: function(val) {
this.reqParam.page.pageSize = val;
// this.search();
}
},
mounted() {
this.isUser = true;
}
};
</script>
<style scoped></style>
<style scoped lang="scss">
@import "scss/auth.scss";
</style>
......@@ -103,7 +103,6 @@
<el-table-column prop="address" label="组成员"> </el-table-column
><el-table-column prop="date" label="启用状态" width="100">
</el-table-column>
<el-table-column prop="address" label="操作"></el-table-column>
</el-table>
</div>
......
.manage-page {
width: 100%;
padding: 24px;
font-family: MicrosoftYaHei;
div {
display: inline-block;
}
.header{
width:100%;
.btns{
width: 260px;
height: 40px;
.btn{
text-align: center;
width: 129px;
height: 32px;
font-size: 14px;
color: #282F3C;
background: #F6F8FA;
border-radius: 2px;
line-height: 32px;
cursor: pointer;
&.active{
background: #055FE7;
color: #FFFFFF;
}
}
}
}
.search{
width:100%;
height:58px;
border-bottom: 1px solid #EEEEEE;
padding-top: 10px;
margin-bottom: 10px;
display: flex;
flex-direction: row;
.search-item{
width: auto;
margin-right: 17px;
.label{
width: auto;
height: 22px;
font-size: 14px;
color: #333333;
line-height: 22px;
margin-right: 5px;
}
.input{
width: 156px;
height: 32px;
background: #FFFFFF;
border-radius: 4px;
border: 1px solid #E6E6E8;
}
}
.btns{
width: 180px;
position: absolute;
right: 24px;
text-align: center;
.btn-clear{
width: 50px;
height: 23px;
font-size: 14px;
color: #055FE7;
line-height: 23px;
cursor: pointer;
}
.btn-search{
width: 110px;
height: 32px;
font-size: 14px;
color: #FFFFFF;
line-height: 32px;
background: #055FE7;
border-radius: 4px;
margin-left: 10px;
cursor: pointer;
}
}
}
.main{
.user{
width: 1550px;
height:700px;
}
.group{
width: 100%;
height: 700px;
}
}
.footer {
width: 1544px;
//width: calc(100vw - 367px);
position: absolute;
bottom: 27px;
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
.count {
font-size: 14px;
font-family: MicrosoftYaHei;
color: #666666;
}
.paging {
float: right;
}
/deep/.el-pager {
.number {
background-color: transparent;
}
.number.active {
background-color: #055fe7 !important;
box-shadow: 0px 12px 16px 1px rgba(0, 21, 51, 0.03);
border-radius: 6px;
}
.el-icon.more.btn-quicknext.el-icon-more,
.el-icon.more.btn-quickprev.el-icon-more {
background-color: transparent !important;
}
}
/deep/ .btn-prev,
/deep/ .btn-next {
background-color: transparent !important;
}
/deep/ .el-pagination__sizes {
position: absolute;
right: 0;
}
/deep/ .btn-next {
//margin-right: 120px !important;
}
}
//表格表头样式
/deep/.el-table th,
.el-table tr {
height: 48px;
background: #f6f8fa;
font-size: 14px;
color: #282f3c;
}
//表格内容样式
/deep/.el-table td,
.el-table tr {
height: 55px;
background: #ffffff;
font-size: 14px;
color: #333333;
padding: 0;
font-weight: 400;
}
}
\ No newline at end of file
......@@ -82,24 +82,15 @@ export default {
// data.append("username", this.userInfo.userName);
// data.append("password", passwordAES);
// data.passWord = passwordAES;
console.info("qs-----", qs.stringify(authentication));
// todo 登录请求
this.$axios
.post("/login/myLoginForm?" + qs.stringify(authentication))
.then(res => {
console.info(res);
if (res.data.code === "200") {
let token = res.data.token;
// token 存入sotre
me.$store.commit("user/SET_TOKEN", token);
localStorage.setItem("token-----", token);
// this.$store.dispatch("login", {});
localStorage.setItem("token", res.data.token);
localStorage.setItem("userName", res.data.userName);
this.$message.success(userinfo.userName + "登录成功!");
if (this.$store.state.user.token) {
this.$router.push("/Home/Home");
} else {
this.$router.replace("/login1");
}
this.$router.push("/Home/Home");
} else {
this.$message.error(res.data.message);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment