123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312 |
- import Vue from 'vue'
- import Vuex from 'vuex'
- import { setCookie, getCookie, formatDate, dgTree } from '@/utils/util.js'
- import { stDev, stProd, proPath } from '@/config/config.js'
- import axios from '@/config/axios.js'
- import index from './index/index.js'
- import system from './system/index.js'
- // import { ctx } from '@/config/config.js';
- Vue.use(Vuex)
- const state = {
- // ctx: process.env.NODE_ENV === 'production' ? ('/' + ctx) : '',
- // 请求地址
- ajaxCtx: '',
- // 图片基础路径
- imgBaseUrl: '',
- // 文件基础路径
- fileBaseUrl: '',
- // 上传文件路径
- fileUploadUrl: '',
- // 下载文件路径
- fileDownloadUrl: '',
- // ====================================
- // 面包屑
- breadcrumb: [
- {
- menuId: 1,
- meta: {
- title: '首页'
- }
- }
- ],
- // 登录日期,用于操作时的提交日期 单位毫秒
- loginTime: new Date().getTime(),
- // 路由表
- routes: [],
- // 用户信息 有就不用再取菜单
- userInfo: null,
- loginInfo: null,
- // 表格数据
- tableParams: {
- form: {
- // // 筛选条件
- // params: {
- // },
- // // 排序
- // sort: {
- // },
- orgCode: '',
- orgName: '',
- pageNum: 1,
- pageSize: 20
- },
- // 返回分页数据
- page: {
- total: 0
- }
- //选中数据
- },
- saleSteelToggleIds: [1, 2, 3],
- // 所有权限信息
- allPrivilege: [],
- // 拥有权限信息
- ownPrivilege: [],
- token: '',
- ticketRes: ''
- }
- const getters = {
- ctx() {
- if (process.env.NODE_ENV === 'development') {
- return window.location.origin + '/views/'
- } else {
- return window.location.origin + '/views/'
- }
- },
- API() {
- if (process.env.NODE_ENV === 'development') {
- return stDev
- } else {
- return stProd
- }
- },
- // 平台数据权限项目路径名
- proPath() {
- return proPath
- }
- }
- const mutations = {
- //更新用户选中数据钢材报表
- updateSaleSteelToggleIds(state, saleSteelToggleIdsMap) {
- if (saleSteelToggleIdsMap.isClear == 1) {
- state.saleSteelToggleIds = []
- } else {
- if (saleSteelToggleIdsMap.saleSteelToggleIds.length > 0) {
- state.saleSteelToggleIds = saleSteelToggleIdsMap.saleSteelToggleIds
- }
- }
- },
- // // 更新路由表
- addRouters(state, routes) {
- state.routes = routes
- },
- // 更新权限信息
- refreshAllPrivilege(state, allPrivilege) {
- state.allPrivilege = allPrivilege
- },
- // 更新权限信息
- refreshOwnPrivilege(state, ownPrivilege) {
- state.ownPrivilege = ownPrivilege
- },
- // 用户详情
- userInfo(state, userInfo) {
- state.userInfo = userInfo
- },
- loginInfo(state, loginInfo) {
- state.loginInfo = loginInfo
- },
- // 更新
- pageSize(state, pageSize) {
- state.table.page.pageSize = pageSize
- state.table.form.pageSize = pageSize
- },
- pageIndex(state, pageIndex) {
- state.table.form.pageIndex = pageIndex
- },
- total(state, total) {
- state.table.page.total = total
- },
- breadcrumb(state, breadcrumb) {
- state.breadcrumb = breadcrumb
- },
- setToken(state, options) {
- state.token = options.token
- }
- }
- const actions = {
- //获取用户选中
- // 取用户信息
- getUserInfo({ commit, state }) {
- let res = axios.get(proPath + 'v1/sysusers/user/token')
- res.then(res => {
- // 放入东西
- commit('userInfo', res.data)
- })
- return res
- },
- // 取用户信息
- getLoginInfo({ commit, state }) {
- let res = axios.post(proPath + 'auth/remoteauthentication/token')
- res.then(res => {
- // 放入东西
- commit('loginInfo', res.data)
- })
- return res
- },
- getAllMenuUrl({ commit, state }, obj) {
- let firstOne = window.top.localStorage.getItem('companys')
- ? JSON.parse(window.top.localStorage.getItem('companys'))[0].id
- : ''
- let companyId = window.top.localStorage.getItem('companyId')
- ? window.top.localStorage.getItem('companyId')
- : firstOne
- let res =
- obj && obj.companyId
- ? axios.get(
- proPath + 'v1/sysmenus/findFunctionMenus?companyId=' + obj.companyId
- )
- : axios.get(
- proPath + 'v1/sysmenus/findFunctionMenus?companyId=' + companyId
- )
- res.then(res => {
- // window.top.localStorage.setItem('allPrivilege', res.data ? JSON.stringify(res.data.list) : '');
- // 放入东西
- commit('refreshAllPrivilege', res.data ? res.data.list : [])
- })
- return res
- },
- getOwnMenuUrl({ commit, state }, obj) {
- obj = JSON.parse(JSON.stringify(obj))
- let firstOne = window.top.localStorage.getItem('companys')
- ? JSON.parse(window.top.localStorage.getItem('companys'))[0].id
- : ''
- let companyId = window.top.localStorage.getItem('companyId')
- ? window.top.localStorage.getItem('companyId')
- : firstOne
- let res =
- obj && obj.companyId
- ? axios.get(
- proPath +
- 'v1/sysmenus/findFunctionMenusByUserId?companyId=' +
- obj.companyId
- )
- : axios.get(
- proPath +
- 'v1/sysmenus/findFunctionMenusByUserId?companyId=' +
- obj.companyId
- )
- // let res = (obj && obj.userId && obj.menuId) ? axios.get(proPath + 'v1/sysmenus/findFuncByUAndM?userId=' + obj.userId + '&menuId=' + obj.menuId) : axios.get(proPath + 'v1/sysmenus/findFuncByUAndM?userId=' + obj.userId + '&menuId=' + obj.menuId);
- res.then(res => {
- window.top.localStorage.setItem('ownPrivilege', JSON.stringify(res.data))
- // 放入东西
- commit('refreshOwnPrivilege', res.data)
- })
- return res
- },
- // 取菜单权限信息
- generateRoutes({ commit, state }, obj) {
- let companyId = window.top.localStorage.getItem('companyId')
- ? window.top.localStorage.getItem('companyId')
- : JSON.parse(window.top.localStorage.getItem('companys'))[0].id
- // let asyncRouterMap = [{ path: '*', redirect: '/404', hidden: true }];
- let asyncRouterMap = []
- let res =
- obj && obj.companyId && obj.appId
- ? axios.get(
- proPath +
- 'v1/sysmenus/findMenusByUserId?companyId=' +
- obj.companyId +
- '&appId=' +
- obj.appId
- )
- : axios.get(
- proPath +
- 'v1/sysmenus/findMenusByUserId?companyId=' +
- companyId +
- '&appId=' +
- obj.userInfo.appId
- )
- res.then(res => {
- // 处理路由
- if (res.code === '0') {
- asyncRouterMap = asyncRouterMap.concat(res.data, asyncRouterMap)
- let menuLeave = getCookie('menuLeave')
- if (menuLeave) {
- let temp = []
- for (let i = 0; i < asyncRouterMap.length; i++) {
- if (asyncRouterMap[i].menuLabel.indexOf(menuLeave) > -1) {
- temp.push(asyncRouterMap[i])
- }
- }
- asyncRouterMap = JSON.parse(JSON.stringify(temp))
- }
- dgTree(asyncRouterMap, 'children', item => {
- item.name = item.menuLabel
- item.url = item.menuUrl
- })
- } else {
- // 查询失败
- // asyncRouterMap = ;
- }
- // 更新state
- commit('addRouters', asyncRouterMap)
- })
- return res
- },
- // 退出/注销
- loginOut({ commit, state }) {
- // 清除cookie数据
- let res = axios.get(proPath + 'logout')
- res.then(res => {
- setCookie('userInfo', '', -1, '/')
- setCookie('userLogin', '', -1, '/')
- setCookie('accessToken', '', -1, '/')
- setCookie('refreshToken', '', -1, '/')
- setCookie('workDate', '', -1)
- setCookie('appId', '', -1, '/')
- setCookie('ticket', '', -1, '/')
- })
- return res
- },
- // 获取apollo用户列表
- apolloUser({ commit, state }) {
- let res = axios.get(proPath + 'user')
- res.then(res => {
- // 处理路由
- commit('addUser', res)
- })
- },
- // 获取部门列表
- apolloOrg({ commit, state }) {
- let res = axios.get(proPath + 'organizations')
- res.then(res => {
- // 处理路由
- commit('addOrg', res)
- })
- },
- ticketPush({ commit, state }) {
- let res = axios.get(proPath + 'organizations')
- res.then(res => {
- // 处理路由
- commit('ticketRes', res)
- })
- }
- }
- export default new Vuex.Store({
- state,
- modules: {
- index: index,
- system: system
- },
- actions,
- getters,
- mutations
- })
|