| | |
| | | value: '/securityUnit/localCompany', |
| | | imgs: 'url(/img/gldw.jpg)' |
| | | }, { |
| | | label: '统计分析', |
| | | label: '智能分析', |
| | | value: '/securityAnalysis/index', |
| | | imgs: 'url(/img/glgz.jpg)' |
| | | },] |
| | |
| | | value: '/expression/index', |
| | | imgs: 'url(/img/tongji.jpg)' |
| | | },] |
| | | }, |
| | | { |
| | | userName: '未持证保安', |
| | | list: [ |
| | | { |
| | | label: '保安员信息', |
| | | value: '/securityMan/index', |
| | | imgs: 'url(/img/yijianbaoj.jpg)' |
| | | }, { |
| | | label: '派遣记录', |
| | | value: '/dispatchChildoperableSee/index', |
| | | imgs: 'url(/img/fangyi.jpg)' |
| | | }, { |
| | | label: '从业记录', |
| | | value: '/job/index', |
| | | imgs: 'url(/img/anjian.jpg)' |
| | | }, { |
| | | label: '工作汇报', |
| | | value: '/workreport/workreport', |
| | | imgs: 'url(/img/tiwen.jpg)' |
| | | }, { |
| | | label: '表现记录', |
| | | value: '/expression/index', |
| | | imgs: 'url(/img/tongji.jpg)' |
| | | },] |
| | | }, |
| | | { |
| | | userName: '保安公司管理员', |
| | | list: [ |
| | | { |
| | | label: '智能分析', |
| | | value: '/securityAnalysis/index', |
| | | imgs: 'url(/img/glgz.jpg)' |
| | | }, { |
| | | label: '保安员管理', |
| | | value: '/securityGuard/index', |
| | | imgs: 'url(/img/glba.jpg)' |
| | | }, { |
| | | label: '单位信息', |
| | | value: '/securityUnitChild/index', |
| | | imgs: 'url(/img/gldw.jpg)' |
| | | }, { |
| | | label: '派遣记录', |
| | | value: '/dispatch/dispatchChildoperable', |
| | | imgs: 'url(/img/glgj.jpg)' |
| | | }, { |
| | | label: '通知公告', |
| | | value: '/desk/index', |
| | | imgs: 'url(/img/gltz.jpg)' |
| | | },] |
| | | }, { |
| | | userName: '公安管理员', |
| | | list: [ |
| | | { |
| | | label: '智能分析', |
| | | value: '/securityAnalysis/index', |
| | | imgs: 'url(/img/glgz.jpg)' |
| | | }, { |
| | | label: '保安员管理', |
| | | value: '/securityGuard/index', |
| | | imgs: 'url(/img/glba.jpg)' |
| | | }, { |
| | | label: '公司管理', |
| | | value: '/securityUnit/index', |
| | | imgs: 'url(/img/gldw.jpg)' |
| | | }, { |
| | | label: '通知公告', |
| | | value: '/desk/index', |
| | | imgs: 'url(/img/gltz.jpg)' |
| | | }, { |
| | | label: '工作汇报', |
| | | value: '/workreport/workreply', |
| | | imgs: 'url(/img/glgj.jpg)' |
| | | }] |
| | | } |
| | | ], |
| | | |
| | |
| | | this.tagList.forEach((item, index) => { |
| | | if (item.label == "首页" && this.userInfo.role_name == "培训公司管理员") { |
| | | this.tagList.splice(index, 1); |
| | | this.$store.commit("set_hideHome", true); |
| | | // getRoutes().then((res) => { |
| | | // const data = res.data.data; |
| | | // var child = {}, |
| | |
| | | } |
| | | } |
| | | this.$router.push({ path: path }); |
| | | } else { |
| | | this.$store.commit("set_hideHome", false); |
| | | } |
| | | }); |
| | | }, |
| | |
| | | <template> |
| | | <div class="top-menu"> |
| | | <el-menu :default-active="activeIndex" |
| | | mode="horizontal" |
| | | text-color="#333"> |
| | | <el-menu-item index="0" @click.native="openHome(itemHome)" key="0"> |
| | | <el-menu :default-active="activeIndex" mode="horizontal" text-color="#333"> |
| | | <el-menu-item |
| | | index="0" |
| | | @click.native="openHome(itemHome)" |
| | | key="0" |
| | | v-if="!hideHome" |
| | | > |
| | | <template slot="title"> |
| | | <i :class="itemHome.source"></i> |
| | | <span>{{generateTitle(itemHome)}}</span> |
| | | <span>{{ generateTitle(itemHome) }}</span> |
| | | </template> |
| | | </el-menu-item> |
| | | <template v-for="(item,index) in items"> |
| | | <el-menu-item :index="item.id+''" @click.native="openMenu(item)" :key="index"> |
| | | <template v-for="(item, index) in items"> |
| | | <el-menu-item |
| | | :index="item.id + ''" |
| | | @click.native="openMenu(item)" |
| | | :key="index" |
| | | > |
| | | <template slot="title"> |
| | | <i :class="item.source" style="padding-right: 5px;"></i> |
| | | <span>{{generateTitle(item)}}</span> |
| | | <i :class="item.source" style="padding-right: 5px"></i> |
| | | <span>{{ generateTitle(item) }}</span> |
| | | </template> |
| | | </el-menu-item> |
| | | </template> |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | import {mapGetters} from "vuex"; |
| | | import { mapGetters } from "vuex"; |
| | | |
| | | export default { |
| | | name: "top-menu", |
| | | data() { |
| | | return { |
| | | itemHome: { |
| | | name: '首页', |
| | | source: 'el-icon-menu', |
| | | }, |
| | | activeIndex: "0", |
| | | items: [], |
| | | }; |
| | | export default { |
| | | name: "top-menu", |
| | | data() { |
| | | return { |
| | | itemHome: { |
| | | name: "首页", |
| | | source: "el-icon-menu", |
| | | }, |
| | | activeIndex: "0", |
| | | items: [], |
| | | }; |
| | | }, |
| | | inject: ["index"], |
| | | created() { |
| | | this.getMenu(); |
| | | }, |
| | | computed: { |
| | | ...mapGetters(["tagCurrent", "menu", "hideHome"]), |
| | | }, |
| | | methods: { |
| | | openHome(itemHome) { |
| | | this.index.openMenu(itemHome); |
| | | this.$router.push({ |
| | | path: this.$router.$avueRouter.getPath( |
| | | { name: itemHome.name, src: "" }, |
| | | {} |
| | | ), |
| | | }); |
| | | }, |
| | | inject: ["index"], |
| | | created() { |
| | | this.getMenu(); |
| | | openMenu(item) { |
| | | this.index.openMenu(item); |
| | | }, |
| | | computed: { |
| | | ...mapGetters(["tagCurrent", "menu"]) |
| | | getMenu() { |
| | | this.$store.dispatch("GetTopMenu").then((res) => { |
| | | this.items = res; |
| | | }); |
| | | }, |
| | | methods: { |
| | | openHome(itemHome) { |
| | | this.index.openMenu(itemHome); |
| | | this.$router.push({ |
| | | path: this.$router.$avueRouter.getPath({name: itemHome.name, src: ''}, {}) |
| | | }); |
| | | }, |
| | | openMenu(item) { |
| | | this.index.openMenu(item) |
| | | }, |
| | | getMenu() { |
| | | this.$store.dispatch("GetTopMenu").then(res => { |
| | | this.items = res; |
| | | }); |
| | | }, |
| | | generateTitle(item) { |
| | | return this.$router.$avueRouter.generateTitle( |
| | | item.name, |
| | | (item.meta || {}).i18n |
| | | ); |
| | | }, |
| | | } |
| | | }; |
| | | generateTitle(item) { |
| | | return this.$router.$avueRouter.generateTitle( |
| | | item.name, |
| | | (item.meta || {}).i18n |
| | | ); |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | |
| | | roles: state => state.user.roles, |
| | | permission: state => state.user.permission, |
| | | menu: state => state.user.menu, |
| | | hideHome: state => state.user.hideHome, |
| | | menuId: state => state.user.menuId, |
| | | menuAll: state => state.user.menuAll, |
| | | logsList: state => state.logs.logsList, |
| | |
| | | import {setToken, setRefreshToken, removeToken, removeRefreshToken} from '@/util/auth' |
| | | import {Message} from 'element-ui' |
| | | import {setStore, getStore} from '@/util/store' |
| | | import {isURL, validatenull} from '@/util/validate' |
| | | import {deepClone} from '@/util/util' |
| | | import { setToken, setRefreshToken, removeToken, removeRefreshToken } from '@/util/auth' |
| | | import { Message } from 'element-ui' |
| | | import { setStore, getStore } from '@/util/store' |
| | | import { isURL, validatenull } from '@/util/validate' |
| | | import { deepClone } from '@/util/util' |
| | | import website from '@/config/website' |
| | | import {loginByUsername, loginBySocial, getUserInfo, logout, refreshToken, getButtons} from '@/api/user' |
| | | import {getTopMenu, getRoutes} from '@/api/system/menu' |
| | | import { loginByUsername, loginBySocial, getUserInfo, logout, refreshToken, getButtons } from '@/api/user' |
| | | import { getTopMenu, getRoutes } from '@/api/system/menu' |
| | | import md5 from 'js-md5' |
| | | |
| | | |
| | |
| | | |
| | | const user = { |
| | | state: { |
| | | tenantId: getStore({name: 'tenantId'}) || '', |
| | | userInfo: getStore({name: 'userInfo'}) || [], |
| | | permission: getStore({name: 'permission'}) || {}, |
| | | tenantId: getStore({ name: 'tenantId' }) || '', |
| | | userInfo: getStore({ name: 'userInfo' }) || [], |
| | | permission: getStore({ name: 'permission' }) || {}, |
| | | roles: [], |
| | | menuId: {}, |
| | | menu: getStore({name: 'menu'}) || [], |
| | | menuAll: getStore({name: 'menuAll'}) || [], |
| | | token: getStore({name: 'token'}) || '', |
| | | refreshToken: getStore({name: 'refreshToken'}) || '', |
| | | menu: getStore({ name: 'menu' }) || [], |
| | | menuAll: getStore({ name: 'menuAll' }) || [], |
| | | token: getStore({ name: 'token' }) || '', |
| | | refreshToken: getStore({ name: 'refreshToken' }) || '', |
| | | hideHome: false, |
| | | }, |
| | | actions: { |
| | | //根据用户名登录 |
| | | LoginByUsername({commit}, userInfo) { |
| | | LoginByUsername({ commit }, userInfo) { |
| | | return new Promise((resolve, reject) => { |
| | | loginByUsername(userInfo.tenantId, userInfo.username, md5(userInfo.password), userInfo.type, userInfo.key, userInfo.code).then(res => { |
| | | const data = res.data; |
| | |
| | | }) |
| | | }, |
| | | //根据手机号登录 |
| | | LoginByPhone({commit}, userInfo) { |
| | | LoginByPhone({ commit }, userInfo) { |
| | | return new Promise((resolve) => { |
| | | loginByUsername(userInfo.phone, userInfo.code).then(res => { |
| | | const data = res.data.data; |
| | |
| | | }) |
| | | }, |
| | | //根据第三方信息登录 |
| | | LoginBySocial({commit}, userInfo) { |
| | | LoginBySocial({ commit }, userInfo) { |
| | | return new Promise((resolve) => { |
| | | loginBySocial(userInfo.tenantId, userInfo.source, userInfo.code, userInfo.state).then(res => { |
| | | const data = res.data; |
| | |
| | | }) |
| | | }, |
| | | //获取用户信息 |
| | | GetUserInfo({commit}) { |
| | | GetUserInfo({ commit }) { |
| | | return new Promise((resolve, reject) => { |
| | | getUserInfo().then((res) => { |
| | | const data = res.data.data; |
| | |
| | | }) |
| | | }, |
| | | //刷新token |
| | | refreshToken({state, commit}) { |
| | | refreshToken({ state, commit }) { |
| | | window.console.log('handle refresh token') |
| | | return new Promise((resolve, reject) => { |
| | | refreshToken(state.refreshToken, state.tenantId).then(res => { |
| | |
| | | }) |
| | | }, |
| | | // 登出 |
| | | LogOut({commit}) { |
| | | LogOut({ commit }) { |
| | | return new Promise((resolve, reject) => { |
| | | logout().then(() => { |
| | | commit('SET_TOKEN', ''); |
| | |
| | | }) |
| | | }, |
| | | //注销session |
| | | FedLogOut({commit}) { |
| | | FedLogOut({ commit }) { |
| | | return new Promise(resolve => { |
| | | commit('SET_TOKEN', ''); |
| | | commit('SET_MENU_ALL_NULL', []); |
| | |
| | | }) |
| | | }, |
| | | //获取系统菜单 |
| | | GetMenu({commit, dispatch}, topMenuId) { |
| | | GetMenu({ commit, dispatch }, topMenuId) { |
| | | return new Promise(resolve => { |
| | | getRoutes(topMenuId).then((res) => { |
| | | const data = res.data.data |
| | |
| | | }) |
| | | }, |
| | | //获取系统按钮 |
| | | GetButtons({commit}) { |
| | | GetButtons({ commit }) { |
| | | return new Promise((resolve) => { |
| | | getButtons().then(res => { |
| | | const data = res.data.data; |
| | |
| | | }, |
| | | }, |
| | | mutations: { |
| | | set_hideHome: (state, val) => { |
| | | state.hideHome = val; |
| | | }, |
| | | SET_TOKEN: (state, token) => { |
| | | setToken(token); |
| | | state.token = token; |
| | | setStore({name: 'token', content: state.token}) |
| | | setStore({ name: 'token', content: state.token }) |
| | | }, |
| | | SET_MENU_ID(state, menuId) { |
| | | state.menuId = menuId; |
| | |
| | | SET_REFRESH_TOKEN: (state, refreshToken) => { |
| | | setRefreshToken(refreshToken) |
| | | state.refreshToken = refreshToken; |
| | | setStore({name: 'refreshToken', content: state.refreshToken}) |
| | | setStore({ name: 'refreshToken', content: state.refreshToken }) |
| | | }, |
| | | SET_TENANT_ID: (state, tenantId) => { |
| | | state.tenantId = tenantId; |
| | | setStore({name: 'tenantId', content: state.tenantId}) |
| | | setStore({ name: 'tenantId', content: state.tenantId }) |
| | | }, |
| | | SET_USER_INFO: (state, userInfo) => { |
| | | if (validatenull(userInfo.avatar)) { |
| | | userInfo.avatar = "/img/bg/img-logo.png"; |
| | | } |
| | | state.userInfo = userInfo; |
| | | setStore({name: 'userInfo', content: state.userInfo}) |
| | | setStore({ name: 'userInfo', content: state.userInfo }) |
| | | }, |
| | | SET_ROLES: (state, roles) => { |
| | | state.roles = roles; |
| | |
| | | result.forEach(ele => { |
| | | state.permission[ele] = true; |
| | | }); |
| | | setStore({name: 'permission', content: state.permission}) |
| | | setStore({ name: 'permission', content: state.permission }) |
| | | } |
| | | } |
| | | |