Browse Source

vue.config.js

zhujun 2 years ago
parent
commit
c4901e55af

+ 3 - 1
.eslintignore

@@ -3,4 +3,6 @@ src/assets
 node_modules
 dist
 src/api 
-src/views 
+src/views 
+src/styles
+src/public-path.js

+ 1 - 1
.gitignore

@@ -21,5 +21,5 @@ yarn-error.log*
 *.njsproj
 *.sln
 *.sw?
-vue.config.js
+
 package-lock.json

+ 2 - 1
package.json

@@ -55,9 +55,10 @@
     "eslint-config-prettier": "^8.5.0",
     "eslint-plugin-prettier": "^4.2.1",
     "eslint-plugin-vue": "^9.4.0",
+    "node-sass": "^9.0.0",
     "prettier": "^2.7.1",
     "sass": "^1.54.8",
-    "sass-loader": "^13.0.2",
+    "sass-loader": "^13.3.3",
     "svg-sprite-loader": "^6.0.11",
     "svgo": "^1.2.2",
     "vue-eslint-parser": "^9.0.3",

+ 5 - 5
src/App.vue

@@ -10,9 +10,9 @@
 
   export default {
     name: 'App',
-    created () {
+    created() {
       console.log(
-        '我是-----------aps----应用------------------------------------'
+        '我是-----------eom----应用------------------------------------'
       );
       // 恢复主题
       this.$store.dispatch('theme/recoverTheme');
@@ -20,7 +20,7 @@
     },
     methods: {
       /* 路由切换更新浏览器标题 */
-      setDocumentTitle () {
+      setDocumentTitle() {
         updateDocumentTitle(
           this.$route,
           (key) => this.$t(key),
@@ -29,10 +29,10 @@
       }
     },
     watch: {
-      '$i18n.locale' () {
+      '$i18n.locale'() {
         this.setDocumentTitle();
       },
-      $route () {
+      $route() {
         this.setDocumentTitle();
       }
     }

+ 10 - 8
src/components/AssetTree/index.vue

@@ -61,7 +61,7 @@
       //   default: false
       // },
     },
-    data () {
+    data() {
       return {
         treeList: [],
         treeLoading: false,
@@ -70,17 +70,17 @@
         currentKey: ''
       };
     },
-    mounted () {
+    mounted() {
       if (this.init) {
         this.getTreeData();
       }
     },
     methods: {
-      getInstance () {
+      getInstance() {
         return this.$refs.tree;
       },
       // 获取树结构数据
-      async getTreeData () {
+      async getTreeData() {
         try {
           this.treeLoading = true;
 
@@ -104,7 +104,9 @@
             });
             return this.treeList;
           }
-        } catch (error) {}
+        } catch (error) {
+          console.error(error);
+        }
         this.treeLoading = false;
       },
       // 递归 - 往树children里面添加parentName
@@ -127,17 +129,17 @@
       //   return data;
       // },
 
-      handleNodeClick (data, node) {
+      handleNodeClick(data, node) {
         this.$emit('handleNodeClick', data, node);
       },
       // 设置默认高亮行
-      setCurrentKey (id) {
+      setCurrentKey(id) {
         this.currentKey = id;
         this.$refs.tree.setCurrentKey(this.currentKey);
       },
 
       // 获取树的选中状态
-      getSelectList () {
+      getSelectList() {
         const selectList = this.$refs.tree.getCurrentNode();
         return selectList;
       }

+ 5 - 5
src/components/Dict/DictSelection.vue

@@ -41,12 +41,12 @@
       },
       listFormatte: Function
     },
-    data () {
+    data() {
       return {};
     },
     computed: {
       ...mapGetters(['dict', 'getDict']),
-      dictList () {
+      dictList() {
         return (
           (this.listFormatte &&
             this.listFormatte(this.dict[dictEnum[this.dictName]] || [])) ||
@@ -55,18 +55,18 @@
         );
       },
       selectVal: {
-        set (val) {
+        set(val) {
           this.$emit('updateVal', val);
           // change获取选中项所有数据
 
           this.$emit('itemChange', this.getDict(this.dictName, val));
         },
-        get () {
+        get() {
           return this.value;
         }
       }
     },
-    created () {
+    created() {
       if (this.dictName) {
         this.requestDict(this.dictName);
       }

+ 1 - 1
src/config/setting.js

@@ -15,7 +15,7 @@ export const HIDE_FOOTERS = [
 ];
 
 // 系统名称
-export const SYSTEM_NAME = 'qms';
+export const SYSTEM_NAME = 'eom';
 
 // 页签同路由不同参数可重复打开的路由
 export const REPEATABLE_TABS = [];

+ 5 - 5
src/layout/components/header-tools.vue

@@ -74,7 +74,7 @@
       // 是否是全屏
       fullscreen: Boolean
     },
-    data () {
+    data() {
       return {
         // 是否显示修改密码弹窗
         passwordVisible: false,
@@ -84,13 +84,13 @@
     },
     computed: {
       // 当前用户信息
-      loginUser () {
+      loginUser() {
         return this.$store.state.user.info;
       }
     },
     methods: {
       /* 用户信息下拉点击事件 */
-      onUserDropClick (command) {
+      onUserDropClick(command) {
         if (command === 'password') {
           this.passwordVisible = true;
         } else if (command === 'profile') {
@@ -115,11 +115,11 @@
         }
       },
       /* 全屏切换 */
-      toggleFullscreen () {
+      toggleFullscreen() {
         this.$emit('fullscreen');
       },
       /* 打开设置抽屉 */
-      openSetting () {
+      openSetting() {
         this.settingVisible = true;
       }
     }

+ 4 - 4
src/layout/components/password-modal.vue

@@ -52,7 +52,7 @@
     props: {
       visible: Boolean
     },
-    data () {
+    data() {
       return {
         // 按钮 loading
         loading: false,
@@ -98,11 +98,11 @@
     },
     methods: {
       /* 修改 visible */
-      updateVisible (value) {
+      updateVisible(value) {
         this.$emit('update:visible', value);
       },
       /* 保存修改 */
-      save () {
+      save() {
         this.$refs.form.validate((valid) => {
           if (valid) {
             this.loading = true;
@@ -124,7 +124,7 @@
         });
       },
       /* 关闭回调 */
-      onClose () {
+      onClose() {
         this.form = {
           oldPassword: '',
           newPassword: '',

+ 12 - 12
src/layout/index.vue

@@ -121,7 +121,7 @@
       HeaderTools
       // PageFooter
     },
-    data () {
+    data() {
       return {
         PROJECT_NAME,
         HIDE_SIDEBARS,
@@ -136,15 +136,15 @@
       };
     },
     computed: {
-      isQianKun () {
+      isQianKun() {
         return window.__POWERED_BY_QIANKUN__;
       },
       // 当前语言
-      locale () {
+      locale() {
         return this.$i18n.locale;
       },
       // 菜单数据
-      menus () {
+      menus() {
         return this.$store.state.user.menus;
       },
       // 主题状态
@@ -152,29 +152,29 @@
     },
     methods: {
       /* 侧栏折叠切换 */
-      updateCollapse (value) {
+      updateCollapse(value) {
         // console.log('value:', this.$store.state.user.menus);
         this.$store.dispatch('theme/setCollapse', value);
       },
       /* 双侧栏一级折叠切换 */
-      updateSideNavCollapse (value) {
+      updateSideNavCollapse(value) {
         this.$store.dispatch('theme/setSideNavCollapse', value);
       },
       /* 内容区域全屏切换 */
-      updateBodyFullscreen (value) {
+      updateBodyFullscreen(value) {
         this.$store.dispatch('theme/setBodyFullscreen', value);
       },
       /* logo 点击事件 */
-      onLogoClick (isHome) {
+      onLogoClick(isHome) {
         isHome || this.$router.push(LAYOUT_PATH);
       },
       /* 监听屏幕尺寸改变 */
-      screenSizeChange () {
+      screenSizeChange() {
         this.$store.dispatch('theme/updateScreenSize');
         this.fullscreen = isFullscreen();
       },
       /* 全屏切换 */
-      onFullscreen () {
+      onFullscreen() {
         try {
           this.fullscreen = toggleFullscreen();
         } catch (e) {
@@ -182,7 +182,7 @@
         }
       },
       /* 页签右键菜单点击事件 */
-      onTabContextMenu ({ key, tabKey, item, active }) {
+      onTabContextMenu({ key, tabKey, item, active }) {
         switch (key) {
           case 'reload': // 刷新
             reloadPageTab({
@@ -217,7 +217,7 @@
         }
       },
       /* 菜单标题国际化 */
-      i18n (_path, key) {
+      i18n(_path, key) {
         if (!I18N_ENABLE || !key) {
           return;
         }

+ 4 - 4
src/main.js

@@ -31,7 +31,7 @@ Vue.use(permission);
 Vue.use(VueClipboard);
 let instance = null;
 
-function render (props = {}) {
+function render(props = {}) {
   const { container, routerBase } = props;
   // const router = new VueRouter({
   //   base: window.__POWERED_BY_QIANKUN__ ? routerBase : process.env.BASE_URL,
@@ -52,11 +52,11 @@ if (!window.__POWERED_BY_QIANKUN__) {
   render();
 }
 
-export async function bootstrap () {
+export async function bootstrap() {
   console.log('[vue] vue app bootstraped');
 }
 
-export async function mount (props) {
+export async function mount(props) {
   console.log('[vue] props from main framework', props);
   Vue.prototype.$portalStore = props.store;
 
@@ -69,7 +69,7 @@ export async function mount (props) {
   render(props);
 }
 
-export async function unmount () {
+export async function unmount() {
   instance.$destroy();
   instance.$el.innerHTML = '';
   instance = null;

+ 1 - 1
src/public-path.js

@@ -2,7 +2,7 @@
   if (window.__POWERED_BY_QIANKUN__) {
     if (process.env.NODE_ENV === 'development') {
       // eslint-disable-next-line
-      __webpack_public_path__ = `//localhost:8080/qms/`;
+      __webpack_public_path__ = `//localhost:8080/eom/`;
       console.log('__webpack_public_path__', __webpack_public_path__);
       return;
     }

+ 1 - 1
src/router/index.js

@@ -23,7 +23,7 @@ const router = new VueRouter({
     : `/${SYSTEM_NAME}/`,
   routes,
   mode: 'history',
-  scrollBehavior () {
+  scrollBehavior() {
     return { y: 0 };
   }
 });

+ 2 - 2
src/store/modules/dict.js

@@ -23,7 +23,7 @@ const mutations = {
 
 const actions = {
   // 根据字典enumName请求字典 已获取的不做重复请求
-  async requestDict ({ commit, state }, enumName) {
+  async requestDict({ commit, state }, enumName) {
     const code = dictEnum[enumName];
 
     if (state[code]?.length) return state[code];
@@ -67,7 +67,7 @@ const actions = {
     return [];
   },
   // 更新字典
-  async reloadRequestDict ({ commit }, enumName) {
+  async reloadRequestDict({ commit }, enumName) {
     const code = dictEnum[enumName];
     const res = await getByCode(code);
     const isNumber = numberList.includes(code);

+ 45 - 45
src/store/modules/theme.js

@@ -87,7 +87,7 @@ let disableTransitionTimer, updateContentSizeTimer;
 /**
  * 读取缓存配置
  */
-function getCacheSetting () {
+function getCacheSetting() {
   try {
     const value = localStorage.getItem(THEME_STORE_NAME);
     if (value) {
@@ -105,7 +105,7 @@ function getCacheSetting () {
 /**
  * 缓存配置
  */
-function cacheSetting (key, value) {
+function cacheSetting(key, value) {
   const cache = getCacheSetting();
   if (cache[key] !== value) {
     cache[key] = value;
@@ -116,7 +116,7 @@ function cacheSetting (key, value) {
 /**
  * 开关响应式布局
  */
-function changeStyleResponsive (styleResponsive) {
+function changeStyleResponsive(styleResponsive) {
   if (styleResponsive) {
     document.body.classList.remove(BODY_LIMIT_CLASS);
   } else {
@@ -127,7 +127,7 @@ function changeStyleResponsive (styleResponsive) {
 /**
  * 切换色弱模式
  */
-function changeWeakMode (weakMode) {
+function changeWeakMode(weakMode) {
   if (weakMode) {
     document.body.classList.add(WEAK_CLASS);
   } else {
@@ -138,7 +138,7 @@ function changeWeakMode (weakMode) {
 /**
  * 切换主题
  */
-function changeTheme (value, dark) {
+function changeTheme(value, dark) {
   return new Promise((resolve, reject) => {
     try {
       changeColor(value, dark);
@@ -152,7 +152,7 @@ function changeTheme (value, dark) {
 /**
  * 切换布局时禁用过渡动画
  */
-function disableTransition () {
+function disableTransition() {
   disableTransitionTimer && clearTimeout(disableTransitionTimer);
   document.body.classList.add(DISABLES_CLASS);
   disableTransitionTimer = setTimeout(() => {
@@ -174,7 +174,7 @@ export default {
   })(),
   getters: {
     // 需要 keep-alive 的组件
-    keepAliveInclude (state) {
+    keepAliveInclude(state) {
       if (!TAB_KEEP_ALIVE || !state.showTabs) {
         return [];
       }
@@ -203,100 +203,100 @@ export default {
     }
   },
   mutations: {
-    SET (state, { key, value }) {
+    SET(state, { key, value }) {
       state[key] = value;
     }
   },
   actions: {
-    setTabs ({ commit }, value) {
+    setTabs({ commit }, value) {
       commit('SET', { key: 'tabs', value });
       //cacheSetting('tabs', value);
     },
-    setCollapse ({ commit, dispatch }, value) {
+    setCollapse({ commit, dispatch }, value) {
       commit('SET', { key: 'collapse', value });
       dispatch('delayUpdateContentSize', 800);
     },
-    setSideNavCollapse ({ commit, dispatch }, value) {
+    setSideNavCollapse({ commit, dispatch }, value) {
       commit('SET', { key: 'sideNavCollapse', value });
       dispatch('delayUpdateContentSize', 800);
     },
-    setBodyFullscreen ({ commit, dispatch }, value) {
+    setBodyFullscreen({ commit, dispatch }, value) {
       disableTransition();
       commit('SET', { key: 'bodyFullscreen', value });
       dispatch('delayUpdateContentSize', 800);
     },
-    setShowTabs ({ commit, dispatch }, value) {
+    setShowTabs({ commit, dispatch }, value) {
       commit('SET', { key: 'showTabs', value });
       cacheSetting('showTabs', value);
       dispatch('delayUpdateContentSize');
     },
-    setShowFooter ({ commit, dispatch }, value) {
+    setShowFooter({ commit, dispatch }, value) {
       commit('SET', { key: 'showFooter', value });
       cacheSetting('showFooter', value);
       dispatch('delayUpdateContentSize');
     },
-    setHeadStyle ({ commit }, value) {
+    setHeadStyle({ commit }, value) {
       commit('SET', { key: 'headStyle', value });
       cacheSetting('headStyle', value);
     },
-    setSideStyle ({ commit }, value) {
+    setSideStyle({ commit }, value) {
       commit('SET', { key: 'sideStyle', value });
       cacheSetting('sideStyle', value);
     },
-    setLayoutStyle ({ commit, dispatch }, value) {
+    setLayoutStyle({ commit, dispatch }, value) {
       disableTransition();
       commit('SET', { key: 'layoutStyle', value });
       cacheSetting('layoutStyle', value);
       dispatch('delayUpdateContentSize');
     },
-    setSideMenuStyle ({ commit, dispatch }, value) {
+    setSideMenuStyle({ commit, dispatch }, value) {
       disableTransition();
       commit('SET', { key: 'sideMenuStyle', value });
       cacheSetting('sideMenuStyle', value);
       dispatch('delayUpdateContentSize');
     },
-    setTabStyle ({ commit }, value) {
+    setTabStyle({ commit }, value) {
       commit('SET', { key: 'tabStyle', value });
       cacheSetting('tabStyle', value);
     },
-    setTransitionName ({ commit }, value) {
+    setTransitionName({ commit }, value) {
       commit('SET', { key: 'transitionName', value });
       cacheSetting('transitionName', value);
     },
-    setFixedHeader ({ commit }, value) {
+    setFixedHeader({ commit }, value) {
       disableTransition();
       commit('SET', { key: 'fixedHeader', value });
       cacheSetting('fixedHeader', value);
     },
-    setFixedSidebar ({ commit }, value) {
+    setFixedSidebar({ commit }, value) {
       disableTransition();
       commit('SET', { key: 'fixedSidebar', value });
       cacheSetting('fixedSidebar', value);
     },
-    setFixedBody ({ commit }, value) {
+    setFixedBody({ commit }, value) {
       disableTransition();
       commit('SET', { key: 'fixedBody', value });
       cacheSetting('fixedBody', value);
     },
-    setBodyFull ({ commit, dispatch }, value) {
+    setBodyFull({ commit, dispatch }, value) {
       commit('SET', { key: 'bodyFull', value });
       cacheSetting('bodyFull', value);
       dispatch('delayUpdateContentSize');
     },
-    setLogoAutoSize ({ commit }, value) {
+    setLogoAutoSize({ commit }, value) {
       disableTransition();
       commit('SET', { key: 'logoAutoSize', value });
       cacheSetting('logoAutoSize', value);
     },
-    setColorfulIcon ({ commit }, value) {
+    setColorfulIcon({ commit }, value) {
       commit('SET', { key: 'colorfulIcon', value });
       cacheSetting('colorfulIcon', value);
     },
-    setSideUniqueOpen ({ commit }, value) {
+    setSideUniqueOpen({ commit }, value) {
       commit('SET', { key: 'sideUniqueOpen', value });
       cacheSetting('sideUniqueOpen', value);
     },
-    setStyleResponsive ({ commit }, value) {
+    setStyleResponsive({ commit }, value) {
       changeStyleResponsive(value);
       commit('SET', { key: 'styleResponsive', value });
       cacheSetting('styleResponsive', value);
@@ -305,7 +305,7 @@ export default {
      * 切换色弱模式
      * @param value 是否是色弱模式
      */
-    setWeakMode ({ commit }, value) {
+    setWeakMode({ commit }, value) {
       return new Promise((resolve) => {
         changeWeakMode(value);
         commit('SET', { key: 'weakMode', value });
@@ -317,7 +317,7 @@ export default {
      * 切换暗黑模式
      * @param value 是否是暗黑模式
      */
-    setDarkMode ({ commit, state }, value) {
+    setDarkMode({ commit, state }, value) {
       return new Promise((resolve, reject) => {
         changeTheme(state.color, value)
           .then(() => {
@@ -334,7 +334,7 @@ export default {
      * 切换主题色
      * @param value 主题色
      */
-    setColor ({ commit, state }, value) {
+    setColor({ commit, state }, value) {
       return new Promise((resolve, reject) => {
         changeTheme(value, state.darkMode)
           .then(() => {
@@ -351,20 +351,20 @@ export default {
      * 设置主页路由对应的组件名称
      * @param components 组件名称
      */
-    setHomeComponents ({ commit }, value) {
+    setHomeComponents({ commit }, value) {
       commit('SET', { key: 'homeComponents', value });
     },
     /**
      * 设置刷新路由信息
      * @param option 路由刷新参数
      */
-    setRouteReload ({ commit }, value) {
+    setRouteReload({ commit }, value) {
       commit('SET', { key: 'routeReload', value });
     },
     /**
      * 更新屏幕尺寸
      */
-    updateScreenSize ({ commit, dispatch }) {
+    updateScreenSize({ commit, dispatch }) {
       commit('SET', { key: 'screenWidth', value: screenWidth() });
       commit('SET', { key: 'screenHeight', value: screenHeight() });
       dispatch('updateContentSize');
@@ -372,7 +372,7 @@ export default {
     /**
      * 更新内容区域尺寸
      */
-    updateContentSize ({ commit }) {
+    updateContentSize({ commit }) {
       commit('SET', { key: 'contentWidth', value: contentWidth() });
       commit('SET', { key: 'contentHeight', value: contentHeight() });
     },
@@ -380,7 +380,7 @@ export default {
      * 延时更新内容区域尺寸
      * @param delay 延迟时间
      */
-    delayUpdateContentSize ({ dispatch }, delay) {
+    delayUpdateContentSize({ dispatch }, delay) {
       updateContentSizeTimer && clearTimeout(updateContentSizeTimer);
       updateContentSizeTimer = setTimeout(() => {
         dispatch('updateContentSize');
@@ -389,7 +389,7 @@ export default {
     /**
      * 重置设置
      */
-    resetSetting ({ commit, state }) {
+    resetSetting({ commit, state }) {
       return new Promise((resolve, reject) => {
         disableTransition();
         [
@@ -432,7 +432,7 @@ export default {
     /**
      * 恢复主题
      */
-    recoverTheme ({ state }) {
+    recoverTheme({ state }) {
       // 关闭响应式布局
       if (!state.styleResponsive) {
         changeStyleResponsive(false);
@@ -452,7 +452,7 @@ export default {
      * 添加页签或更新相同 key 的页签数据
      * @param data 页签数据
      */
-    tabAdd ({ dispatch, state }, data) {
+    tabAdd({ dispatch, state }, data) {
       if (Array.isArray(data)) {
         data.forEach((d) => {
           dispatch('tabAdd', d);
@@ -476,7 +476,7 @@ export default {
      * 关闭页签
      * @param key 页签 key
      */
-    async tabRemove ({ dispatch, state }, { key, active }) {
+    async tabRemove({ dispatch, state }, { key, active }) {
       if (window.__POWERED_BY_QIANKUN__) {
         return Vue.prototype.$portalStore?.dispatch('theme/tabRemove', {
           key,
@@ -504,7 +504,7 @@ export default {
     /**
      * 关闭左侧页签
      */
-    async tabRemoveLeft ({ dispatch, state }, { key, active }) {
+    async tabRemoveLeft({ dispatch, state }, { key, active }) {
       let index = -1; // 选中页签的 index
       for (let i = 0; i < state.tabs.length; i++) {
         if (state.tabs[i].key === active) {
@@ -528,7 +528,7 @@ export default {
     /**
      * 关闭右侧页签
      */
-    async tabRemoveRight ({ dispatch, state }, { key, active }) {
+    async tabRemoveRight({ dispatch, state }, { key, active }) {
       if (state.tabs.length) {
         let index = -1; // 选中页签的 index
         for (let i = 0; i < state.tabs.length; i++) {
@@ -565,7 +565,7 @@ export default {
     /**
      * 关闭其它页签
      */
-    async tabRemoveOther ({ dispatch, state }, { key, active }) {
+    async tabRemoveOther({ dispatch, state }, { key, active }) {
       let index = -1; // 选中页签的 index
       let path; // 关闭后跳转的 path
       const temp = state.tabs.filter((d, i) => {
@@ -590,7 +590,7 @@ export default {
      * 关闭全部页签
      * @param active 选中页签的 key
      */
-    async tabRemoveAll ({ dispatch, state }, active) {
+    async tabRemoveAll({ dispatch, state }, active) {
       const t = state.tabs.find((d) => d.key === active);
       const home = typeof t !== 'undefined' && t.closable === true; // 是否跳转主页
       const temp = state.tabs.filter((d) => !d.closable);
@@ -604,7 +604,7 @@ export default {
      * 修改页签
      * @param data 页签数据
      */
-    tabSetItem ({ dispatch, state }, data) {
+    tabSetItem({ dispatch, state }, data) {
       let i = -1;
       if (data.key) {
         i = state.tabs.findIndex((d) => d.key === data.key);

+ 9 - 9
src/store/modules/user.js

@@ -52,23 +52,23 @@ export default {
   },
   mutations: {
     // 设置登录用户的信息
-    setUserInfo (state, info) {
+    setUserInfo(state, info) {
       state.info = info;
     },
     // 设置登录用户的菜单
-    setMenus (state, menus) {
+    setMenus(state, menus) {
       state.menus = menus;
     },
     // 设置登录用户的权限
-    setAuthorities (state, authorities) {
+    setAuthorities(state, authorities) {
       state.authorities = authorities;
     },
     // 设置登录用户的权限路由
-    setAuthoritiesRouter (state, authoritiesRouter) {
+    setAuthoritiesRouter(state, authoritiesRouter) {
       state.authoritiesRouter = authoritiesRouter;
     },
     // 设置登录用户的角色
-    setRoles (state, roles) {
+    setRoles(state, roles) {
       state.roles = roles;
     }
   },
@@ -106,7 +106,7 @@ export default {
     //   return { menus, homePath };
     // },
     //动态路由
-    async fetchUserInfo ({ commit }) {
+    async fetchUserInfo({ commit }) {
       const result = await getResourcesTree().catch(() => {});
       const list = result.filter((i) => i.path === `/page-${SYSTEM_NAME}`);
       if (!list.length) {
@@ -158,19 +158,19 @@ export default {
     /**
      * 更新用户信息
      */
-    setInfo ({ commit }, value) {
+    setInfo({ commit }, value) {
       commit('setUserInfo', value);
     },
     /**
      * 更新菜单数据
      */
-    setMenus ({ commit }, value) {
+    setMenus({ commit }, value) {
       commit('setMenus', value);
     },
     /**
      * 更新菜单的badge
      */
-    setMenuBadge ({ commit, state }, { path, value, color }) {
+    setMenuBadge({ commit, state }, { path, value, color }) {
       if (window.__POWERED_BY_QIANKUN__) {
         Vue.prototype.$portalStore?.dispatch('user/setMenuBadge', {
           path: `/page-${SYSTEM_NAME}${path}`,

+ 18 - 18
src/utils/page-tab-util.js

@@ -19,7 +19,7 @@ const BASE_URL = process.env.BASE_URL;
 /**
  * 刷新当前路由
  */
-export function reloadPageTab (option) {
+export function reloadPageTab(option) {
   if (!option) {
     // 刷新当前路由
     const { path, fullPath, query } = router.currentRoute;
@@ -50,7 +50,7 @@ export function reloadPageTab (option) {
 /**
  * 关闭当前页签
  */
-export function finishPageTab () {
+export function finishPageTab() {
   const key = getRouteTabKey();
   removePageTab({ key, active: key });
 }
@@ -60,7 +60,7 @@ export function finishPageTab () {
  * @param key 页签的key
  * @param active 选中页签的key
  */
-export function removePageTab (option) {
+export function removePageTab(option) {
   store
     .dispatch('theme/tabRemove', option)
     .then(({ path, home }) => {
@@ -78,7 +78,7 @@ export function removePageTab (option) {
 /**
  * 关闭左侧页签
  */
-export function removeLeftPageTab (option) {
+export function removeLeftPageTab(option) {
   store
     .dispatch('theme/tabRemoveLeft', option)
     .then(({ path }) => {
@@ -94,7 +94,7 @@ export function removeLeftPageTab (option) {
 /**
  * 关闭右侧页签
  */
-export function removeRightPageTab (option) {
+export function removeRightPageTab(option) {
   store
     .dispatch('theme/tabRemoveRight', option)
     .then(({ path, home }) => {
@@ -112,7 +112,7 @@ export function removeRightPageTab (option) {
 /**
  * 关闭其它页签
  */
-export function removeOtherPageTab (option) {
+export function removeOtherPageTab(option) {
   store
     .dispatch('theme/tabRemoveOther', option)
     .then(({ path, home }) => {
@@ -131,7 +131,7 @@ export function removeOtherPageTab (option) {
  * 关闭全部页签
  * @param active 当前选中页签
  */
-export function removeAllPageTab (active) {
+export function removeAllPageTab(active) {
   store
     .dispatch('theme/tabRemoveAll', active)
     .then(({ home }) => {
@@ -147,7 +147,7 @@ export function removeAllPageTab (active) {
 /**
  * 登录成功后清空页签
  */
-export function cleanPageTabs () {
+export function cleanPageTabs() {
   store.dispatch('theme/setTabs', []);
 }
 
@@ -155,7 +155,7 @@ export function cleanPageTabs () {
  * 添加页签
  * @param data 页签数据
  */
-export function addPageTab (data) {
+export function addPageTab(data) {
   store.dispatch('theme/tabAdd', data);
 }
 
@@ -163,7 +163,7 @@ export function addPageTab (data) {
  * 修改页签
  * @param data 页签数据
  */
-export function setPageTab (data) {
+export function setPageTab(data) {
   store.dispatch('theme/tabSetItem', data);
 }
 
@@ -171,7 +171,7 @@ export function setPageTab (data) {
  * 更新页签数据
  * @param data 页签数据
  */
-export function setPageTabs (data) {
+export function setPageTabs(data) {
   store.dispatch('theme/setTabs', data);
 }
 
@@ -179,7 +179,7 @@ export function setPageTabs (data) {
  * 修改页签标题
  * @param title 标题
  */
-export function setPageTabTitle (title) {
+export function setPageTabTitle(title) {
   setPageTab({ key: getRouteTabKey(), title });
   setDocumentTitle(title);
 }
@@ -187,7 +187,7 @@ export function setPageTabTitle (title) {
 /**
  * 获取当前路由对应的页签 key
  */
-export function getRouteTabKey () {
+export function getRouteTabKey() {
   const { path, fullPath, meta } = router.currentRoute;
   const isUnique = meta.tabUnique === false || REPEATABLE_TABS.includes(path);
   return `${window.__POWERED_BY_QIANKUN__ ? '/page-' + SYSTEM_NAME : ''}${
@@ -199,7 +199,7 @@ export function getRouteTabKey () {
  * 设置主页的组件名称
  * @param components 组件名称
  */
-export function setHomeComponents (components) {
+export function setHomeComponents(components) {
   store.dispatch('theme/setHomeComponents', components);
 }
 
@@ -207,7 +207,7 @@ export function setHomeComponents (components) {
  * 设置路由刷新信息
  * @param option 路由刷新参数
  */
-export function setRouteReload (option) {
+export function setRouteReload(option) {
   return store.dispatch('theme/setRouteReload', option);
 }
 
@@ -215,7 +215,7 @@ export function setRouteReload (option) {
  * 判断路由是否是主页
  * @param route 路由信息
  */
-export function isHomeRoute (route) {
+export function isHomeRoute(route) {
   const { path, matched } = route;
   if (HOME_ROUTE === path) {
     return true;
@@ -231,7 +231,7 @@ export function isHomeRoute (route) {
  * 登录成功后跳转首页
  * @param from 登录前的地址
  */
-export function goHomeRoute (from) {
+export function goHomeRoute(from) {
   router.replace(from || HOME_ROUTE);
 }
 
@@ -240,7 +240,7 @@ export function goHomeRoute (from) {
  * @param from 是否使用路由跳转
  * @param from 登录后跳转的地址
  */
-export function logout (route, from) {
+export function logout(route, from) {
   removeToken();
   if (route) {
     router.push({

+ 95 - 0
vue.config.js

@@ -0,0 +1,95 @@
+const CompressionWebpackPlugin = require('compression-webpack-plugin');
+const { transformElementScss } = require('ele-admin/lib/utils/dynamic-theme');
+const path = require('path');
+const { name } = require('./package.json');
+
+function resolve(dir) {
+  return path.join(__dirname, dir);
+}
+
+module.exports = {
+  publicPath: '/eom',
+  lintOnSave: false,
+  productionSourceMap: false,
+  configureWebpack: {
+    performance: {
+      maxAssetSize: 2000000,
+      maxEntrypointSize: 2000000
+    },
+    output: {
+      // 把子应用打包成 umd 库格式
+      library: {
+        type: 'umd',
+        name: `${name}`
+      },
+
+      chunkLoadingGlobal: `webpackJsonp_${name}`
+    }
+  },
+  devServer: {
+    // 代理跨域的配置
+    proxy: {
+      // 当我们的本地的请求 有/api的时候,就会代理我们的请求地址向另外一个服务器发出请求
+      '/api': {
+        // target: 'http://192.168.3.51:18086', // 测试环境
+        // target: 'http://124.71.68.31:50001',
+        // target: 'http://192.168.1.139:18086', // 粟
+        // target: 'http://192.168.1.132:18086', // 徐1
+        // target: 'http://192.168.1.134:18086', //徐2
+        target: 'http://192.168.1.147:18086',
+        changeOrigin: true, // 只有这个值为true的情况下 才表示开启跨域
+        pathRewrite: {
+          '^/api': ''
+        }
+      }
+    }
+  },
+  chainWebpack(config) {
+    config.plugins.delete('prefetch');
+    // set svg-sprite-loader
+    // config.module.rule('svg').exclude.add(resolve('./src/icons')).end();
+    // config.module
+    //   .rule('icons')
+    //   .test(/\.svg$/)
+    //   .include.add(resolve('./src/icons'))
+    //   .end()
+    //   .use('svg-sprite-loader')
+    //   .loader('svg-sprite-loader')
+    //   .options({
+    //     symbolId: 'icon-[name]'
+    //   })
+    //   .end();
+    config.module.rule('svg').exclude.add(resolve('src/icons')).end();
+    config.module
+      .rule('icons')
+      .test(/\.svg$/)
+      .include.add(resolve('src/icons'))
+      .end()
+      .use('svg-sprite-loader')
+      .loader('svg-sprite-loader')
+      .options({
+        symbolId: 'icon-[name]'
+      })
+      .end();
+
+    if (process.env.NODE_ENV !== 'development') {
+      // gzip 压缩
+      config.plugin('compressionPlugin').use(
+        new CompressionWebpackPlugin({
+          test: /\.(js|css|html)$/,
+          threshold: 10240
+        })
+      );
+    }
+  },
+  css: {
+    loaderOptions: {
+      sass: {
+        sassOptions: {
+          outputStyle: 'expanded',
+          importer: transformElementScss()
+        }
+      }
+    }
+  }
+};