123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200 |
- /*
- * @Author: zouwenying
- * @Date: 2020-10-22 14:40:01
- * @LastEditTime: 2020-11-20 10:02:36
- * @LastEditors: Please set LastEditors
- * @Description: In User Settings Edit
- * @FilePath: \vue-manage-system-master\src\store\store.js
- */
- import Vue from "vue";
- import Vuex from "vuex";
- Vue.use(Vuex);
- const store = new Vuex.Store({
- state: {
- token: "",
- collapse: false,//控制面板是否显示
- tagsList: [],//标签页所显示的内容
- // 新弹窗
- modalParams: {},
- // 权限列表
- permissionList: [],
- //菜单列表
- menuList:[],
- thisMenuList:[],
- // 当前登录用户信息
- cruUserInfo:{},
- //查询是否有未读消息
- messageNumber:false,
- //最近消息列表集合
- messageList:[],
- //记录消息的状态
- messageStatus:2,
- // 弹窗集合
- popups: '',
- theme:'light',//控制界面的颜色,
- // 查询的点的坐标
- searchPointInfo:{},
- },
- getters: {
- getTheme(state) {
- return state.theme
- },
- getPopups(state) {
- return state.popups || [];
- },
- getToken(state) {
- return state.token;
- },
- getSearchPointInfo(state){
- return state.searchPointInfo;
- },
- getCollapse(state) {
- return state.collapse;
- },
- getTagsList(state) {
- return state.tagsList;
- },
- getModalParams(state) {
- return state.modalParams;
- },
- // 判断按钮是否有权限
- hasPermission: (state) => (role) => {
- if (state.permissionList.size) {
- return state.permissionList.has(role)
- } else {
- return false
- }
- },
- //获取菜单列表
- getMenuList(state){
- return state.menuList;
- },
- getThisMenuList(state){
- return state.thisMenuList;
- },
-
- // 获取当前登录用户信息
- getCruUserInfo(state){
- return state.cruUserInfo;
- }
- },
- mutations: {
- setSearchPointInfo(state,data){
- state.searchPointInfo = data;
- },
- setPopups(state, data) {
- state.popups = data;
- },
- setToken(state, data) {
- state.token = data;
- },
- setCollapse(state, data) {
- state.collapse = data;
- },
- setTagList(state, data) {
- state.tagsList = data;
- },
- setModalParams(state, data) {
- state.modalParams = data;
- },
- setPermissionList(state, data) {
- state.permissionList = data;
- },
- setMenuList(state,data){
- state.menuList = data;
- },
- setThisMenuList(state,data){
- state.thisMenuList = data;
- },
-
- setcCruUserInfo(state,data){
- state.cruUserInfo = data;
- },
- setmessageNumber(state,data){
- state.messageNumber=data;
- },
- setmessageList(state,data){
- state.messageList=data;
- },
- setmessageStatus(state,data){
- state.messageStatus=data;
- },
- setTheme(state, data) {
- state.theme = data
- },
- },
- actions: {
- tags(ctx, data) {
- ctx.commit("setTagList", data)
- },
- /**
- * @description: 打开弹窗
- * @param {type} ctx vuex的上下文
- * @param {object} args {
- * id: 唯一标识,必须
- * url: 打开的组件url地址,必须
- * params: 传递给弹出组件的参数,
- * notip: 是否显示*为填项必内容,为true时不显示
- * backgroud: 是否强制显示底部透明背景色,默认第二个弹出层时不显示透明底色,为true时一定显示
- * full: 是否为全屏展示,true为全屏
- * }
- * @return {null} null:
- */
- addPopup(ctx, args) {
- const params = {...args};
- const list = ctx.getters.getPopups;
- params.id = 'modal_' + (+new Date())
- import(/* webpackChunkName: "[request]" */ `@/views${params.url}`).then((res) => {
- params.component = res.default;
- params.show = true;
- list.push(params);
- ctx.commit('setPopups', list);
- // ctx.commit('setalertModalParams', params);
- }).catch((err) => {
- if (err.message.indexOf("Loading chunk") == 0) {
- ELEMENT.Message.info("版本已更新,请刷新页面重试");
- } else {
- ELEMENT.Message.info(err.message);
- }
- });
- },
- delPopup(ctx, id) {
- // let id=id;
- // ctx.commit('setalertModalParams', { show: false});
- const list = ctx.getters.getPopups;
- list.every((item, index) => {
- if (item.id === id) {
- list.splice(index, 1);
- ctx.commit('setPopups', list);
- // 解决弹窗关闭,滚动条没有关闭的情况
- // const $bar = document.querySelector('.dmp-scroll-bar')
- // if ($bar) {
- // document.body.removeChild(document.querySelector('.dmp-scroll-bar'))
- // }
- return false;
- }
- return true
- });
- },
- collapse(ctx, data) {
- ctx.commit("setCollapse", data);
- },
- openModal(ctx, args) {
- const params = {...args};
- params.id = 'modal_' + (+new Date())
- import(/* webpackChunkName: "[request]" */ `@/views${params.url}`).then((res) => {
- params.component = res.default;
- params.show = true;
- ctx.commit('setModalParams', params);
- }).catch(err => {
- ELEMENT.Message.error(`${err.message},请刷新页面重试`);
- });
- },
- closeModal(ctx) {
- ctx.commit('setModalParams', { show: false});
- }
- }
- })
- export default store;
|