123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271 |
- import Vue from 'vue';
- import Vuex from 'vuex';
- import http from '@utils/http.js';
- Vue.use(Vuex);
- const store = new Vuex.Store({
- state: {
- token: '',
- collapse: false, //控制面板是否显示
- tagsList: [], //标签页所显示的内容
- // 新弹窗
- modalParams: {},
- // 权限列表
- permissionList: [],
- //菜单列表
- menuList: [],
- // 当前登录用户信息
- cruUserInfo: {},
- thisDetai: {},
- //查询是否有未读消息
- messageNumber: false,
- //最近消息列表集合
- messageList: [],
- //记录消息的状态
- messageStatus: 2,
- // 弹窗集合
- popups: '',
- theme: 'light', //控制界面的颜色,
- // 查询的点的坐标
- searchPointInfo: {},
- //所有社区下拉
- areaSelect: [],
- //所有民族
- nationArray: [],
- //所有籍贯
- nativeArray: [],
- //公司部门
- companyArray: [],
- departmentArray: [],
- communityArray: [],
- homeCommunityAll: '',
- scale: ''
- },
- 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;
- },
- // 获取当前登录用户信息
- getCruUserInfo(state) {
- return state.cruUserInfo;
- },
- getThisDetai(state) {
- return state.thisDetai;
- },
- getAreaSelect(state) {
- return state.areaSelect;
- },
- getNationArray(state) {
- return state.nationArray;
- },
- getNativeArray(state) {
- return state.nativeArray;
- },
- getCompanyArray(state) {
- return state.companyArray;
- },
- getDepartmentArray(state) {
- return state.departmentArray;
- },
- getCommunityArray(state) {
- return state.communityArray;
- },
- getHomeCommunityAll(state) {
- return state.homeCommunityAll;
- },
- getScale(state) {
- return state.scale;
- }
- },
- 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;
- },
- setcCruUserInfo(state, data) {
- state.cruUserInfo = data;
- },
- setThisDetai(state, data) {
- state.thisDetai = 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;
- },
- setAreaSelect(state, data) {
- state.areaSelect = data;
- },
- setNationArray(state, data) {
- state.nationArray = data;
- },
- setNativeArray(state, data) {
- state.nativeArray = data;
- },
- setCompanyArray(state, data) {
- state.companyArray = data;
- },
- setDepartmentArray(state, data) {
- state.departmentArray = data;
- },
- setCommunityArray(state, data) {
- state.communityArray = data;
- },
- setHomeCommunityAll(state, data) {
- state.homeCommunityAll = data;
- },
- setScale(state, data) {
- state.scale = 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) {
- this.$message.info('版本已更新,请刷新页面重试');
- } else {
- this.$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) => {
- this.$message.error(`${err.message},请刷新页面重试`);
- });
- },
- closeModal(ctx) {
- ctx.commit('setModalParams', { show: false });
- },
- SET_MENU_LIST(ctx) {
- let value = ctx.getters['getMenuList'] || [];
- if (!value.length) {
- http.get('/czc-user-center/user/findUserMenu', { appId: '1002' }).then(({ status, data, msg }) => {
- if (0 === status) {
- ctx.commit('setMenuList', data[0].children);
- ctx.commit('setThisDetai', data[0]);
- window.localStorage.setItem('SC_listMuen', JSON.stringify(data[0].children));
- window.sessionStorage.setItem('setThisDetai', JSON.stringify(data[0]));
- } else {
- this.$message.error(msg);
- }
- });
- }
- }
- }
- });
- export default store;
|