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 = { ...@@ -23,6 +23,10 @@ let config = {
// baseURL: process.env.baseURL || process.env.apiUrl || "" // baseURL: process.env.baseURL || process.env.apiUrl || ""
timeout: 60 * 1000, // Timeout timeout: 60 * 1000, // Timeout
// withCredentials: true, // Check cross-site Access-Control // withCredentials: true, // Check cross-site Access-Control
// Authorization: sessionStorage.getItem("token") || ""
headers: {
Authorization: localStorage.getItem("token") || ""
}
}; };
const _axios = axios.create(config); const _axios = axios.create(config);
...@@ -31,12 +35,10 @@ _axios.interceptors.request.use( ...@@ -31,12 +35,10 @@ _axios.interceptors.request.use(
function(config) { function(config) {
// 进度条 // 进度条
NProgress.start(); NProgress.start();
// Do something before request is sent // 在发送请求之前做些什么
// let token = store.state.user.token; // 判断是否存在token,如果存在将每个页面header添加token
let token = localStorage.getItem("token"); if (sessionStorage.getItem("token")) {
if (token) { // config.headers.common["Authorization"] = sessionStorage.getItem("token");
config.headers.Authorization = token;
// console.info(config);
} }
return config; return config;
}, },
......
...@@ -3,19 +3,47 @@ ...@@ -3,19 +3,47 @@
<el-container class="layout-container"> <el-container class="layout-container">
<transition name="slide"> <transition name="slide">
<el-aside :width="isCollapse ? '4rem' : '17.5rem'" class="aside"> <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 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>
<!-- <div class="search"> <!-- <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> <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> <i class="search-icon el-icon-search" v-else></i>
</div> --> </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"> <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"> <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="" /> <img v-else :src="menu.icon_a" alt="" />
<span v-show="!isCollapse">{{ menu.meta.title }}</span> <span v-show="!isCollapse">{{ menu.meta.title }}</span>
</template> </template>
...@@ -25,8 +53,15 @@ ...@@ -25,8 +53,15 @@
}}</el-menu-item> }}</el-menu-item>
</div> </div>
</el-submenu> </el-submenu>
<el-menu-item :index="menu.name" v-else-if="!menu.children && !menu.hidden"> <el-menu-item
<img v-if="$route.path != menu.path" :src="menu.icon_d" alt="" /> :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="" /> <img v-else :src="menu.icon_a" alt="" />
<span slot="title">{{ menu.meta.title }}</span> <span slot="title">{{ menu.meta.title }}</span>
</el-menu-item> </el-menu-item>
...@@ -53,8 +88,18 @@ ...@@ -53,8 +88,18 @@
</div> </div>
<div class="quit" @click="$router.push('/Home/Home')"></div> <div class="quit" @click="$router.push('/Home/Home')"></div>
<div class="logout" @click="logout"> <div class="logout" @click="logout">
<svg-icon v-show="!isHoverLogout" icon-class="logout_d" class="icon" @mouseover="isHoverLogout = true" @mouseleave="isHoverLogout = false" /> <svg-icon
<svg-icon v-show="isHoverLogout" icon-class="logout_a" class="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>
</div> </div>
</el-header> </el-header>
...@@ -62,10 +107,20 @@ ...@@ -62,10 +107,20 @@
<div class="contain"> <div class="contain">
<!-- 导航 --> <!-- 导航 -->
<div class="breadcrumb"> <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>
<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> <span>{{ item.name }}</span>
<div class="closeIcon" @click.stop="closePaths(item.name)"> <div class="closeIcon" @click.stop="closePaths(item.name)">
× ×
...@@ -88,14 +143,14 @@ ...@@ -88,14 +143,14 @@
</template> </template>
<script> <script>
import zoom from '@/utils/autosize' import zoom from "@/utils/autosize";
import "@/icons/logout_d.svg"; import "@/icons/logout_d.svg";
import "@/icons/logout_a.svg"; import "@/icons/logout_a.svg";
import indexRoutes from "@/router/modules/index"; import indexRoutes from "@/router/modules/index";
import { mapGetters } from "vuex"; import { mapGetters } from "vuex";
export default { export default {
name: "Home", name: "Home",
data () { data() {
return { return {
searchTxt: "", searchTxt: "",
routes: indexRoutes[2].children, routes: indexRoutes[2].children,
...@@ -107,8 +162,8 @@ export default { ...@@ -107,8 +162,8 @@ export default {
isHoverLogout: false isHoverLogout: false
}; };
}, },
created () { }, created() {},
mounted () { mounted() {
this.menuActive = this.$route.name; this.menuActive = this.$route.name;
// console.log(this.$route); // console.log(this.$route);
// zoom('home') // zoom('home')
...@@ -116,7 +171,7 @@ export default { ...@@ -116,7 +171,7 @@ export default {
// zoom('home') // zoom('home')
// }) // })
}, },
updated () { updated() {
this.menuActive = this.$route.name; this.menuActive = this.$route.name;
}, },
computed: { computed: {
...@@ -129,13 +184,14 @@ export default { ...@@ -129,13 +184,14 @@ export default {
* @return {*} * @return {*}
*/ */
logout () { logout() {
// console.log('退出登录'); // console.log('退出登录');
// this.$router.replace('/login1') // this.$router.replace('/login1')
this.$axios.post("/login/login/userLogout").then(res => { this.$axios.post("/login/login/userLogout").then(res => {
if (res.data.code === 200) { if (res.data.code === 200) {
localStorage.removeItem("token"); //删除名称为“token”的信息。
localStorage.removeItem("userName"); //删除名称为“userName”的信息。
this.$router.replace("/login1"); this.$router.replace("/login1");
localStorage.removeItem("token");
this.$message.info("退出成功!"); this.$message.info("退出成功!");
} }
}); });
...@@ -146,7 +202,7 @@ export default { ...@@ -146,7 +202,7 @@ export default {
* @return {*} * @return {*}
*/ */
goSearch () { goSearch() {
this.searchTxt = ""; this.searchTxt = "";
console.log(this.searchTxt); console.log(this.searchTxt);
}, },
...@@ -155,7 +211,7 @@ export default { ...@@ -155,7 +211,7 @@ export default {
* @param {*} * @param {*}
* @return {*} * @return {*}
*/ */
goManager () { goManager() {
this.$router.push("/Home/htzwcj"); this.$router.push("/Home/htzwcj");
this.menuActive = ""; this.menuActive = "";
}, },
...@@ -165,7 +221,7 @@ export default { ...@@ -165,7 +221,7 @@ export default {
* @param {*} path * @param {*} path
* @return {*} * @return {*}
*/ */
selectPath (index, path) { selectPath(index, path) {
this.$router.push({ name: index }); this.$router.push({ name: index });
}, },
/** /**
...@@ -173,7 +229,7 @@ export default { ...@@ -173,7 +229,7 @@ export default {
* @param {*} * @param {*}
* @return {*} * @return {*}
*/ */
closePaths (pathName) { closePaths(pathName) {
let res = this.paths.filter(item => { let res = this.paths.filter(item => {
return item.name != pathName; return item.name != pathName;
}); });
...@@ -189,7 +245,7 @@ export default { ...@@ -189,7 +245,7 @@ export default {
* @param {*} * @param {*}
* @return {*} * @return {*}
*/ */
changeRouter (route) { changeRouter(route) {
this.$router.push(route.path); this.$router.push(route.path);
this.menuActive = route.routeName; this.menuActive = route.routeName;
}, },
...@@ -198,18 +254,18 @@ export default { ...@@ -198,18 +254,18 @@ export default {
* @param {*} * @param {*}
* @return {*} * @return {*}
*/ */
switchCollapse () { switchCollapse() {
this.isCollapse = !this.isCollapse; this.isCollapse = !this.isCollapse;
}, },
handleOpen (key, keyPath) { handleOpen(key, keyPath) {
console.log(key, keyPath); console.log(key, keyPath);
}, },
handleClose (key, keyPath) { handleClose(key, keyPath) {
console.log(key, keyPath); console.log(key, keyPath);
} }
}, },
watch: { watch: {
$route (newValue, oldValue) { $route(newValue, oldValue) {
if (newValue.path != "/Home/htzwcj") { if (newValue.path != "/Home/htzwcj") {
if (this.paths.length == 0) { if (this.paths.length == 0) {
this.paths.push({ this.paths.push({
...@@ -235,7 +291,7 @@ export default { ...@@ -235,7 +291,7 @@ export default {
<style scoped lang="scss"> <style scoped lang="scss">
#home { #home {
height: 100vh; height: 100vh;
// height: 100%; //height: 100%;
// filter: blur(5px); // filter: blur(5px);
} }
.layout-container { .layout-container {
......
...@@ -4,29 +4,17 @@ ...@@ -4,29 +4,17 @@
<div class="header"> <div class="header">
<!-- 头部左侧 --> <!-- 头部左侧 -->
<div class="left"> <div class="left">
<div><img <div><img src="../../assets/img/Home/badges.png" alt="" /></div>
src="../../assets/img/Home/badges.png"
alt=""
/></div>
<span><img <span><img src="../../assets/img/Home/logo.svg" alt=""/></span>
src="../../assets/img/Home/logo.svg"
alt=""
/></span>
</div> </div>
<!-- 头部右侧 --> <!-- 头部右侧 -->
<div class="right"> <div class="right">
<div> <div>
<img <img src="../../assets/img/Home/setting.svg" alt="" /> 系统管理
src="../../assets/img/Home/setting.svg"
alt=""
/> 系统管理
</div> </div>
<div class="role"> <div class="role">
<img <img src="../../assets/img/Home/role.svg" alt="" />用户角色
src="../../assets/img/Home/role.svg"
alt=""
/>用户角色
<div class="rolelist"> <div class="rolelist">
<ul> <ul>
<li>姓名:xxxx</li> <li>姓名:xxxx</li>
...@@ -36,11 +24,8 @@ ...@@ -36,11 +24,8 @@
</div> </div>
</div> </div>
<div @click="logout"> <div style="cursor:pointer" @click="logout">
<img <img src="../../assets/img/Home/exit.svg" alt="" />安全退出
src="../../assets/img/Home/exit.svg"
alt=""
/>安全退出
</div> </div>
</div> </div>
<!-- 主体 --> <!-- 主体 -->
...@@ -51,10 +36,7 @@ ...@@ -51,10 +36,7 @@
<div class="todoview"> <div class="todoview">
<div class="todo"> <div class="todo">
<div> <div>
<img <img src="../../assets/img/Home/todoview.svg" alt="" />
src="../../assets/img/Home/todoview.svg"
alt=""
/>
</div> </div>
<p>待办工作</p> <p>待办工作</p>
</div> </div>
...@@ -76,50 +58,26 @@ ...@@ -76,50 +58,26 @@
<!-- 第一列 --> <!-- 第一列 -->
<div class="list l1"> <div class="list l1">
<div class="import_images"> <div class="import_images">
<img <img src="../../assets/img/Home/import_images.svg" alt="" />
src="../../assets/img/Home/import_images.svg"
alt=""
/>
<div>图片导入</div> <div>图片导入</div>
</div> </div>
<div <div @click="godrFPTX" class="import_FTP">
@click="godrFPTX" <img src="../../assets/img/Home/import_FTP.svg" alt="" />
class="import_FTP"
>
<img
src="../../assets/img/Home/import_FTP.svg"
alt=""
/>
<div>导入FPTX</div> <div>导入FPTX</div>
</div> </div>
</div> </div>
<!-- 第二列 --> <!-- 第二列 -->
<div <div class="list l2" @click="gosjzygl">
class="list l2" <img src="../../assets/img/Home/query.svg" alt="" />
@click="gosjzygl"
>
<img
src="../../assets/img/Home/query.svg"
alt=""
/>
<p>发查询</p> <p>发查询</p>
</div> </div>
<!-- 第三列 --> <!-- 第三列 -->
<div <div @click="gobdrd" class="list l2 l3">
@click="gobdrd" <img src="../../assets/img/Home/comparison.svg" alt="" />
class="list l2 l3"
>
<img
src="../../assets/img/Home/comparison.svg"
alt=""
/>
<p>比对认定</p> <p>比对认定</p>
</div> </div>
<!-- 第四列 --> <!-- 第四列 -->
<div <div @click="gozzwcj" class="list l1 l4">
@click="gozzwcj"
class="list l1 l4"
>
<div class="import_images collect"> <div class="import_images collect">
<img <img
src="../../assets/img/Home/collect_new.svg" src="../../assets/img/Home/collect_new.svg"
...@@ -128,14 +86,8 @@ ...@@ -128,14 +86,8 @@
/> />
<div>活体采集</div> <div>活体采集</div>
</div> </div>
<div <div @click="gosjzygl" class="import_FTP management">
@click="gosjzygl" <img src="../../assets/img/Home/management.svg" alt="" />
class="import_FTP management"
>
<img
src="../../assets/img/Home/management.svg"
alt=""
/>
<div>数据资源管理</div> <div>数据资源管理</div>
</div> </div>
</div> </div>
...@@ -150,29 +102,30 @@ import qs from "qs"; ...@@ -150,29 +102,30 @@ import qs from "qs";
export default { export default {
name: "Home", name: "Home",
data () { data() {
return { return {
userInfo: { userName: "admin", passWord: "123456" } userInfo: { userName: "admin", passWord: "123456" }
}; };
}, },
methods: { methods: {
godrFPTX () { godrFPTX() {
this.$router.push("/drFPTX") this.$router.push("/drFPTX");
}, },
gobdrd () { gobdrd() {
this.$router.push("/cxyrd"); this.$router.push("/cxyrd");
}, },
gosjzygl () { gosjzygl() {
this.$router.push("/AllPersonnelBaseIndex/"); this.$router.push("/AllPersonnelBaseIndex/");
}, },
gozzwcj () { gozzwcj() {
// this.$router.push("/AllPersonnelBaseIndex"); // this.$router.push("/AllPersonnelBaseIndex");
}, },
logout () { logout() {
this.$axios.post("/login/login/userLogout").then(res => { this.$axios.post("/login/login/userLogout").then(res => {
if (res.data.code === 200) { if (res.data.code === 200) {
localStorage.removeItem("token"); //删除名称为“token”的信息。
localStorage.removeItem("userName"); //删除名称为“userName”的信息。
this.$router.replace("/login1"); this.$router.replace("/login1");
localStorage.removeItem("token");
this.$message.info("退出成功!"); this.$message.info("退出成功!");
} }
}); });
......
<template> <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> </template>
<script> <script>
export default { 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> </script>
<style scoped></style> <style scoped lang="scss">
@import "scss/auth.scss";
</style>
...@@ -103,7 +103,6 @@ ...@@ -103,7 +103,6 @@
<el-table-column prop="address" label="组成员"> </el-table-column <el-table-column prop="address" label="组成员"> </el-table-column
><el-table-column prop="date" label="启用状态" width="100"> ><el-table-column prop="date" label="启用状态" width="100">
</el-table-column> </el-table-column>
<el-table-column prop="address" label="操作"></el-table-column> <el-table-column prop="address" label="操作"></el-table-column>
</el-table> </el-table>
</div> </div>
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
<div class="label">用户名:</div> <div class="label">用户名:</div>
<el-input <el-input
class="search-info" class="search-info"
v-model="username" v-model="searchParams.username"
placeholder="请输入用户名" placeholder="请输入用户名"
></el-input> ></el-input>
</div> </div>
...@@ -16,75 +16,70 @@ ...@@ -16,75 +16,70 @@
<div class="label">姓名:</div> <div class="label">姓名:</div>
<el-select <el-select
class="search-info" class="search-info"
v-model="value" v-model="searchParams.truename"
placeholder="请输入并选择" placeholder="请输入并选择"
> >
<el-option <!-- <el-option-->
v-for="item in options" <!-- -->
:key="item.value" <!-- >-->
:label="item.label" <!-- </el-option>-->
:value="item.value"
>
</el-option>
</el-select> </el-select>
</div> </div>
<div class="search-item"> <div class="search-item">
<div class="label">用户组:</div> <div class="label">用户组:</div>
<el-select <el-select
class="search-info" class="search-info"
v-model="value" v-model="searchParams.usergroup"
placeholder="请输入并选择" placeholder="请输入并选择"
> >
<el-option <!-- <el-option-->
v-for="item in options" <!-- -->
:key="item.value" <!-- >-->
:label="item.label" <!-- </el-option>-->
:value="item.value"
>
</el-option>
</el-select> </el-select>
</div> </div>
<div class="search-item"> <div class="search-item">
<div class="label">单位代码:</div> <div class="label">单位代码:</div>
<el-select <el-select
class="search-info" class="search-info"
v-model="value" v-model="searchParams.unitcode"
placeholder="请输入并选择" placeholder="请输入并选择"
> >
<el-option <!-- <el-option-->
v-for="item in options" <!-- v-for="item in options"-->
:key="item.value" <!-- :key="item.value"-->
:label="item.label" <!-- :label="item.label"-->
:value="item.value" <!-- :value="item.value"-->
> <!-- >-->
</el-option> <!-- </el-option>-->
</el-select> </el-select>
</div> </div>
<div class="search-item"> <div class="search-item">
<div class="label">角色:</div> <div class="label">角色:</div>
<el-select <el-select
class="search-info" class="search-info"
v-model="value" v-model="searchParams.role"
placeholder="请输入并选择" placeholder="请输入并选择"
> >
<el-option <el-option label="1" value="1"> </el-option>
v-for="item in options" <!-- <el-option-->
:key="item.value" <!-- v-for="item in options"-->
:label="item.label" <!-- :key="item.value"-->
:value="item.value" <!-- :label="item.label"-->
> <!-- :value="item.value"-->
</el-option> <!-- >-->
<!-- </el-option>-->
</el-select> </el-select>
</div> </div>
<div class="search-item"> <div class="search-item">
<div class="label">权限:</div> <div class="label">权限:</div>
<el-input <el-input
class="search-info" class="search-info"
v-model="auth" v-model="searchParams.auth"
placeholder="请输入权限" placeholder="请输入权限"
></el-input> ></el-input>
</div> </div>
<div class="btn">筛选用户</div> <div class="btn" @click="search">筛选用户</div>
</div> </div>
<div class="operation"> <div class="operation">
<div class="btn1" @click="batch">批量操作</div> <div class="btn1" @click="batch">批量操作</div>
...@@ -126,42 +121,56 @@ ...@@ -126,42 +121,56 @@
> >
<el-table-column type="selection" height width="auto" v-if="isSelected"> <el-table-column type="selection" height width="auto" v-if="isSelected">
</el-table-column> </el-table-column>
<el-table-column prop="date" label="用户名" width="100"> <el-table-column prop="username" label="用户名" width="150">
</el-table-column> </el-table-column>
<el-table-column prop="name" label="姓名" width="100"> <el-table-column prop="truename" label="姓名" width="150">
</el-table-column> </el-table-column>
<el-table-column prop="address" label="警号"> </el-table-column <el-table-column prop="policemanid" label="警号" width="150">
><el-table-column prop="date" label="用户组" width="100"> </el-table-column
><el-table-column prop="group" label="用户组" width="300">
</el-table-column> </el-table-column>
<el-table-column prop="name" label="所属单位" width="180"> <el-table-column prop="unitname" label="所属单位" width="210">
</el-table-column> </el-table-column>
<el-table-column prop="address" label="角色"> </el-table-column <el-table-column prop="roleName" label="角色" width="420">
><el-table-column prop="date" label="权限" width="180"> </el-table-column
><el-table-column prop="groupid_list" label="权限" width="250">
</el-table-column> </el-table-column>
<el-table-column prop="name" label="启用状态" width="100"> <el-table-column prop="status" label="启用状态" width="200">
</el-table-column>
<el-table-column prop="active" label="操作">
<img
style="width: 18px;height: 18px;margin-right: 18px;cursor: pointer"
src="../../assets/img/qbryk/bj.png"
@click="edit"
/>
<img
style="width: 18px;height: 18px;cursor: pointer"
src="../../assets/img/qbryk/del.png"
@click="del"
/>
</el-table-column> </el-table-column>
<el-table-column prop="address" label="操作"></el-table-column>
</el-table> </el-table>
</div> </div>
<div class="footer"> <div class="footer">
<span class="count" <!-- <span class="count"-->
>{{ reqParam.page.total }} 条记录 第{{ reqParam.page.currPage }}/{{ <!-- >共{{ searchParams.page.total }} 条记录 第{{-->
Tpage <!-- searchParams.page.page-->
}}</span <!-- }}/{{ Tpage }}</span-->
> <!-- >-->
<div class="page"> <div class="page">
<el-pagination <!-- :current-page="searchParams.page.currPage"-->
class="paging"
background <!-- <el-pagination-->
@size-change="handleSizeChange" <!-- class="paging"-->
@current-change="handleCurrPageChange" <!-- background-->
:current-page="reqParam.page.currPage" <!-- @size-change="handleSizeChange"-->
:page-sizes="[10, 20, 50, 100]" <!-- @current-change="handleCurrPageChange"-->
:page-size="reqParam.page.pageSize" <!-- :page-sizes="[10, 20, 50, 100]"-->
layout="prev, pager, next" <!-- :page-size="searchParams.page.pageSize"-->
:total="reqParam.page.total" <!-- layout="prev, pager, next"-->
> <!-- :total="searchParams.page.total"-->
</el-pagination> <!-- >-->
<!-- </el-pagination>-->
</div> </div>
</div> </div>
<!-- 新增弹窗--> <!-- 新增弹窗-->
...@@ -180,73 +189,107 @@ ...@@ -180,73 +189,107 @@
<div class="info"> <div class="info">
<div class="info-item"> <div class="info-item">
<div class="label">*用户名:</div> <div class="label">*用户名:</div>
<el-input class="input-info" placeholder="请输入用户名"></el-input> <el-input
class="input-info"
placeholder="请输入用户名"
v-model="addParams.username"
></el-input>
</div> </div>
<div class="info-item"> <div class="info-item">
<div class="label">姓名:</div> <div class="label">姓名:</div>
<el-input class="input-info" placeholder="请输入姓名"></el-input> <el-input
class="input-info"
placeholder="请输入姓名"
v-model="addParams.truename"
></el-input>
</div> </div>
<div class="info-item"> <div class="info-item">
<div class="label">所属单位代码:</div> <div class="label">所属单位代码:</div>
<el-select class="input-info" placeholder="请选择所属单位代码"> <el-input
<el-option class="input-info"
v-for="item in options" placeholder="请输入姓名"
:key="item.value" v-model="addParams.unitcode"
:label="item.label" ></el-input>
:value="item.value"
> <!-- <el-select class="input-info" placeholder="请选择所属单位代码">-->
</el-option> <!-- <el-option-->
</el-select> <!-- v-for="item in options"-->
<!-- :key="item.value"-->
<!-- :label="item.label"-->
<!-- :value="item.value"-->
<!-- >-->
<!-- </el-option>-->
<!-- </el-select>-->
</div> </div>
<div class="info-item"> <div class="info-item">
<div class="label">所属单位:</div> <div class="label">所属单位:</div>
<el-input class="input-info" placeholder="请输入所属单位"></el-input> <el-input
class="input-info"
placeholder="请输入所属单位"
v-model="addParams.unitname"
></el-input>
</div> </div>
<div class="info-item"> <div class="info-item">
<div class="label">用户警号:</div> <div class="label">用户警号:</div>
<el-input class="input-info" placeholder="请输入用户警号"></el-input> <el-input
class="input-info"
placeholder="请输入用户警号"
v-model="addParams.policemanid"
></el-input>
</div> </div>
<div class="info-item"> <div class="info-item">
<div class="label">密码:</div> <div class="label">密码:</div>
<el-input class="input-info" placeholder="请输入密码"></el-input> <el-input
class="input-info"
placeholder="请输入密码"
v-model="addParams.password"
></el-input>
</div> </div>
<div class="info-item"> <div class="info-item">
<div class="label">确认密码:</div> <div class="label">确认密码:</div>
<el-input class="input-info" placeholder="请确认密码"></el-input> <el-input
class="input-info"
placeholder="请确认密码"
v-model="addParams.okpassword"
></el-input>
</div> </div>
<div class="info-item"> <div class="info-item">
<div class="label">手机号码:</div> <div class="label">手机号码:</div>
<el-input class="input-info" placeholder="请输入手机号码"></el-input> <el-input
class="input-info"
placeholder="请输入手机号码"
v-model="addParams.telphone"
></el-input>
</div> </div>
<div class="info-item"> <div class="info-item">
<div class="label">加入用户组:</div> <div class="label">加入用户组:</div>
<el-select class="input-info" placeholder="请选择用户组"> <!-- <el-select class="input-info" placeholder="请选择用户组">-->
<el-option <!-- &lt;!&ndash; <el-option&ndash;&gt;-->
v-for="item in options" <!-- &lt;!&ndash; v-for="item in options"&ndash;&gt;-->
:key="item.value" <!-- &lt;!&ndash; :key="item.value"&ndash;&gt;-->
:label="item.label" <!-- &lt;!&ndash; :label="item.label"&ndash;&gt;-->
:value="item.value" <!-- &lt;!&ndash; :value="item.value"&ndash;&gt;-->
> <!-- &lt;!&ndash; >&ndash;&gt;-->
</el-option> <!-- &lt;!&ndash; </el-option>&ndash;&gt;-->
</el-select> <!-- </el-select>-->
</div> </div>
<div class="info-item"> <div class="info-item">
<div class="label">加入角色:</div> <div class="label">加入角色:</div>
<el-select class="input-info" placeholder="请选择角色"> <!-- <el-select class="input-info" placeholder="请选择角色">-->
<el-option <!-- &lt;!&ndash; <el-option&ndash;&gt;-->
v-for="item in options" <!-- &lt;!&ndash; v-for="item in options"&ndash;&gt;-->
:key="item.value" <!-- &lt;!&ndash; :key="item.value"&ndash;&gt;-->
:label="item.label" <!-- &lt;!&ndash; :label="item.label"&ndash;&gt;-->
:value="item.value" <!-- &lt;!&ndash; :value="item.value"&ndash;&gt;-->
> <!-- &lt;!&ndash; >&ndash;&gt;-->
</el-option> <!-- &lt;!&ndash; </el-option>&ndash;&gt;-->
</el-select> <!-- </el-select>-->
</div> </div>
<div class="info-item"> <div class="info-item">
<div class="label">启用状态:</div> <div class="label">启用状态:</div>
<el-radio-group <el-radio-group
class="radio-info" class="radio-info"
v-model="status" v-model="user.status"
@change="searchStyle" @change="searchStyle"
> >
<el-radio :label="0">启用</el-radio> <el-radio :label="0">启用</el-radio>
...@@ -268,20 +311,75 @@ export default { ...@@ -268,20 +311,75 @@ export default {
name: "UserManage", name: "UserManage",
data() { data() {
return { return {
user: {
userId: "", // 主见
username: "", //用户名
password: "", //密码
truename: "", //用户真实姓名
policemanid: "", //警号
identitycard: "", //身份证号
sex: "", //性别
birthday: "", //出生日期
telphone: "", //用户电话
unitcode: "", //单位代码
unitname: "", //单位名称
remark: "",
groupid_coll: "", //权限组id
groupid_list: "",
groupid_edit: "",
groupid_admin: "",
grade: "",
ip: "",
/**角色的id合集*/
roleId: "",
/**角色的name合集*/
roleName: "",
status: "", //状态:1正常 0禁用
lrr: "",
lrsj: "",
lrdwdm: "",
lrdwmc: "",
gxr: "",
gxsj: "",
gxdwdm: "",
gxdwmc: "",
scbz: "",
page: "", //页码
total: "" //当页总条数
},
// 搜索对象
searchParams: {
username: "", username: "",
userdesc: "", truename: "",
usergroup: "",
unitcode: "", unitcode: "",
role: "",
auth: "", auth: "",
status: "",
searchOptions: "",
reqParam: {
userdesc: "",
page: { page: {
total: 0, page: 1,
pageSize: 10, total: 10
currPage: 1
} }
}, },
// 新增对象
addParams: {
username: "", //用户名
password: "", //密码
okpassword: "", // 确认密码
truename: "", //用户真实姓名
policemanid: "", //警号
telphone: "", //用户电话
unitcode: "", //单位代码
unitname: "" //单位名称
},
searchOptions: "",
// reqParam: {
// userdesc: "",
// page: {
// total: 0,
// pageSize: 10,
// currPage: 1
// }
// },
// 选中数据 // 选中数据
multipleSelection: [], multipleSelection: [],
isShowTip: false, //批量操作提示 isShowTip: false, //批量操作提示
...@@ -290,28 +388,8 @@ export default { ...@@ -290,28 +388,8 @@ export default {
isShowAddUserDialogBg: false, isShowAddUserDialogBg: false,
// 是否展示认定完成确认框 // 是否展示认定完成确认框
isShowAddUserDialog: false, isShowAddUserDialog: false,
tableData: [ // tableData: [],
{ tableData: data1,
date: "2016-05-02",
name: "王小虎",
address: "上海市普陀区金沙江路 1518 弄"
},
{
date: "2016-05-04",
name: "王小虎",
address: "上海市普陀区金沙江路 1517 弄"
},
{
date: "2016-05-01",
name: "王小虎",
address: "上海市普陀区金沙江路 1519 弄"
},
{
date: "2016-05-03",
name: "王小虎",
address: "上海市普陀区金沙江路 1516 弄"
}
],
options: [ options: [
{ {
value: "选项1", value: "选项1",
...@@ -333,15 +411,14 @@ export default { ...@@ -333,15 +411,14 @@ export default {
value: "选项5", value: "选项5",
label: "北京烤鸭" label: "北京烤鸭"
} }
], ]
value: ""
}; };
}, },
computed: { computed: {
// 计算总页数 // 计算总页数
Tpage() { Tpage() {
return ( return (
Math.floor(this.reqParam.page.total / this.reqParam.page.pageSize) + 1 Math.floor(this.searchParams.page.total / this.search.page.page) + 1
); );
} }
}, },
...@@ -349,6 +426,28 @@ export default { ...@@ -349,6 +426,28 @@ export default {
clear() { clear() {
console.info("清空方法"); console.info("清空方法");
}, },
search() {
console.info("搜索用户列表");
var user = new URLSearchParams();
user.append("username", this.searchParams.username);
user.append("truename", this.searchParams.truename);
// user.append("usergroup", this.searchParams.usergroup); // 警号
user.append("unitcode", this.searchParams.unitcode);
user.append("role", this.searchParams.role);
user.append("page", this.searchParams.page.page);
user.append("total", this.searchParams.page.total);
this.$axios
.post("/login/user/queryUserList", user)
.then(res => {
console.log(res);
})
.catch(failResponse => {});
// 做查询时 user.append("page","1");
// user.append("total","20");这两个参数必填
// 修改删除时,userid必填
},
// 搜索方式 // 搜索方式
searchStyle(val) { searchStyle(val) {
// console.log(val, '搜索方式') // console.log(val, '搜索方式')
...@@ -369,7 +468,7 @@ export default { ...@@ -369,7 +468,7 @@ export default {
// 选择数据 // 选择数据
handleSelectionChange(val) { handleSelectionChange(val) {
this.multipleSelection = val; this.multipleSelection = val;
console.info(this.multipleSelection); console.info("选择的数据", this.multipleSelection);
if (this.multipleSelection.length) { if (this.multipleSelection.length) {
this.isShowTip = true; this.isShowTip = true;
} else { } else {
...@@ -381,15 +480,15 @@ export default { ...@@ -381,15 +480,15 @@ export default {
this.isSelected = !this.isSelected; this.isSelected = !this.isSelected;
}, },
// 当期页发生变化 // 当期页发生变化
handleCurrPageChange: function(val) { // handleCurrPageChange: function(val) {
this.reqParam.page.currPage = val; // this.searchParams.page.total = val;
// this.search(); // // this.search();
}, // },
// 每页展示数量发生变化 // 每页展示数量发生变化
handleSizeChange: function(val) { // handleSizeChange: function(val) {
this.reqParam.page.pageSize = val; // this.reqParam.page.pageSize = val;
// this.search(); // // this.search();
}, // },
// 打开新增弹窗 // 打开新增弹窗
open() { open() {
this.isShowAddUserDialog = true; this.isShowAddUserDialog = true;
...@@ -404,10 +503,93 @@ export default { ...@@ -404,10 +503,93 @@ export default {
add() { add() {
this.isShowAddUserDialog = false; this.isShowAddUserDialog = false;
this.isShowAddUserDialogBg = false; this.isShowAddUserDialogBg = false;
var user = new URLSearchParams();
user.append("username", this.addParams.username);
user.append("username", this.addParams.truename);
user.append("username", this.addParams.unitname);
user.append("username", this.addParams.unitcode);
user.append("truename", this.addParams.password);
// user.append("truename", this.addParams.okpassword);
user.append("truename", this.addParams.policemanid);
user.append("truename", this.addParams.telphone);
// user.append("usergroup", this.searchParams.usergroup); // 警号
user.append("role", this.addParams.role);
// user.append("page", this.addParams.page.page);
// user.append("total", this.addParams.page.total);
console.info(this.addParams);
console.info(user);
this.$axios
.post("/login/user/saveuser", user)
.then(res => {
console.log(res);
})
.catch(failResponse => {});
this.$message.success("新增成功!"); this.$message.success("新增成功!");
},
edit() {
console.info("编辑方法");
},
del() {
console.info("删除方法");
} }
},
mounted() {
this.search();
} }
}; };
const data1 = [
{
username: "116755",
truename: "张三",
policemanid: "000000",
group: "湖南省长沙市派出所...",
unitname: "长沙市公安局",
roleName: ["高级质量检查员", "档案信息录入员", "录入员"],
status: 1,
groupid_list: ["指纹采集", "指纹编辑"]
},
{
username: "116755",
truename: "李四",
policemanid: "000000",
group: "湖南省长沙市派出所...",
unitname: "长沙市公安局",
roleName: ["高级质量检查员", "档案信息录入员", "录入员"],
status: 0,
groupid_list: ["指纹采集", "指纹编辑"]
},
{
username: "116755",
truename: "张三",
policemanid: "000000",
group: "湖南省长沙市派出所...",
unitname: "长沙市公安局",
roleName: ["高级质量检查员", "档案信息录入员", "录入员"],
status: 0,
groupid_list: ["指纹采集", "指纹编辑"]
},
{
username: "116755",
truename: "李四",
policemanid: "000000",
group: "湖南省长沙市派出所...",
unitname: "长沙市公安局",
roleName: ["高级质量检查员", "录入员"],
status: 1,
groupid_list: ["指纹采集", "指纹编辑"]
},
{
username: "116755",
truename: "张三",
policemanid: "000000",
group: "湖南省长沙市派出所...",
unitname: "长沙市公安局",
roleName: ["高级质量检查员", "档案信息录入员", "录入员"],
status: 0,
groupid_list: ["指纹采集", "指纹编辑"]
}
];
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
@import "scss/user"; @import "scss/user";
......
.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,25 +82,16 @@ export default { ...@@ -82,25 +82,16 @@ export default {
// data.append("username", this.userInfo.userName); // data.append("username", this.userInfo.userName);
// data.append("password", passwordAES); // data.append("password", passwordAES);
// data.passWord = passwordAES; // data.passWord = passwordAES;
console.info("qs-----", qs.stringify(authentication));
// todo 登录请求 // todo 登录请求
this.$axios this.$axios
.post("/login/myLoginForm?" + qs.stringify(authentication)) .post("/login/myLoginForm?" + qs.stringify(authentication))
.then(res => { .then(res => {
console.info(res);
if (res.data.code === "200") { if (res.data.code === "200") {
let token = res.data.token; localStorage.setItem("token", res.data.token);
// token 存入sotre localStorage.setItem("userName", res.data.userName);
me.$store.commit("user/SET_TOKEN", token);
localStorage.setItem("token-----", token);
// this.$store.dispatch("login", {});
this.$message.success(userinfo.userName + "登录成功!"); this.$message.success(userinfo.userName + "登录成功!");
if (this.$store.state.user.token) {
this.$router.push("/Home/Home"); this.$router.push("/Home/Home");
} else { } else {
this.$router.replace("/login1");
}
} else {
this.$message.error(res.data.message); 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