lrf402788946 4 years ago
parent
commit
ab00c74f04

+ 0 - 171
src/layouts/Header.vue

@@ -1,171 +0,0 @@
-<template>
-  <div class="header">
-    <!-- 折叠按钮 -->
-    <div class="collapse-btn" @click="collapseChage">
-      <i v-if="!collapse" class="el-icon-s-fold"></i>
-      <i v-else class="el-icon-s-unfold"></i>
-    </div>
-    <div class="logo">网站中台</div>
-    <div class="header-right">
-      <div class="header-user-con">
-        <!-- 全屏显示 -->
-        <div class="btn-fullscreen" @click="handleFullScreen">
-          <el-tooltip effect="dark" :content="fullscreen ? `取消全屏` : `全屏`" placement="bottom">
-            <i class="el-icon-rank"></i>
-          </el-tooltip>
-        </div>
-        <!-- 用户头像 -->
-        <div class="user-avator">
-          <img src="../assets/img/img.jpg" />
-        </div>
-        <!-- 用户名下拉菜单 -->
-        <el-dropdown class="user-name" trigger="click" @command="handleCommand">
-          <span class="el-dropdown-link">
-            {{ user.name }}
-            <i class="el-icon-caret-bottom"></i>
-          </span>
-          <el-dropdown-menu slot="dropdown">
-            <el-dropdown-item divided command="loginout">退出登录</el-dropdown-item>
-          </el-dropdown-menu>
-        </el-dropdown>
-      </div>
-    </div>
-  </div>
-</template>
-<script>
-import bus from './bus';
-import { mapState, createNamespacedHelpers } from 'vuex';
-export default {
-  data() {
-    return {
-      collapse: false,
-      fullscreen: false,
-    };
-  },
-  computed: {
-    ...mapState(['user']),
-  },
-  methods: {
-    // 用户名下拉菜单选择事件
-    handleCommand(command) {
-      if (command == 'loginout') {
-        localStorage.removeItem('user');
-        this.$router.push('/login');
-      }
-    },
-    // 侧边栏折叠
-    collapseChage() {
-      this.collapse = !this.collapse;
-      bus.$emit('collapse', this.collapse);
-    },
-    // 全屏事件
-    handleFullScreen() {
-      let element = document.documentElement;
-      if (this.fullscreen) {
-        if (document.exitFullscreen) {
-          document.exitFullscreen();
-        } else if (document.webkitCancelFullScreen) {
-          document.webkitCancelFullScreen();
-        } else if (document.mozCancelFullScreen) {
-          document.mozCancelFullScreen();
-        } else if (document.msExitFullscreen) {
-          document.msExitFullscreen();
-        }
-      } else {
-        if (element.requestFullscreen) {
-          element.requestFullscreen();
-        } else if (element.webkitRequestFullScreen) {
-          element.webkitRequestFullScreen();
-        } else if (element.mozRequestFullScreen) {
-          element.mozRequestFullScreen();
-        } else if (element.msRequestFullscreen) {
-          // IE11
-          element.msRequestFullscreen();
-        }
-      }
-      this.fullscreen = !this.fullscreen;
-    },
-  },
-  mounted() {
-    if (document.body.clientWidth < 1500) {
-      this.collapseChage();
-    }
-  },
-};
-</script>
-<style scoped>
-.header {
-  position: relative;
-  box-sizing: border-box;
-  width: 100%;
-  height: 60px;
-  font-size: 22px;
-  color: #fff;
-}
-.collapse-btn {
-  float: left;
-  padding: 0 21px;
-  cursor: pointer;
-  line-height: 60px;
-}
-.header .logo {
-  float: left;
-  width: 250px;
-  line-height: 60px;
-}
-.header-right {
-  float: right;
-  padding-right: 50px;
-}
-.header-user-con {
-  display: flex;
-  height: 60px;
-  align-items: center;
-}
-.btn-fullscreen {
-  transform: rotate(45deg);
-  margin-right: 5px;
-  font-size: 24px;
-}
-.btn-bell,
-.btn-fullscreen {
-  position: relative;
-  width: 30px;
-  height: 30px;
-  text-align: center;
-  border-radius: 15px;
-  cursor: pointer;
-}
-.btn-bell-badge {
-  position: absolute;
-  right: 0;
-  top: -2px;
-  width: 8px;
-  height: 8px;
-  border-radius: 4px;
-  background: #f56c6c;
-  color: #fff;
-}
-.btn-bell .el-icon-bell {
-  color: #fff;
-}
-.user-name {
-  margin-left: 10px;
-}
-.user-avator {
-  margin-left: 20px;
-}
-.user-avator img {
-  display: block;
-  width: 40px;
-  height: 40px;
-  border-radius: 50%;
-}
-.el-dropdown-link {
-  color: #fff;
-  cursor: pointer;
-}
-.el-dropdown-menu__item {
-  text-align: center;
-}
-</style>

+ 0 - 69
src/layouts/Home.vue

@@ -1,69 +0,0 @@
-<template>
-  <el-container>
-    <el-header style="padding:0;">
-      <v-head></v-head>
-    </el-header>
-    <el-container>
-      <el-aside width="200px">
-        <v-sidebar></v-sidebar>
-      </el-aside>
-      <el-main>
-        <div class="content-box" :class="{ 'content-collapse': collapse }">
-          <v-tags></v-tags>
-          <div class="content">
-            <transition name="move" mode="out-in">
-              <!-- <keep-alive :include="tagsList">
-                <router-view></router-view>
-              </keep-alive> -->
-              <el-row>
-                <el-col :span="24" class="main">
-                  <breadcrumb :breadcrumbTitle="this.$route.meta.title"></breadcrumb>
-                  <el-col :span="24" class="container">
-                    <router-view></router-view>
-                  </el-col>
-                </el-col>
-              </el-row>
-            </transition>
-            <el-backtop target=".content"></el-backtop>
-          </div>
-        </div>
-      </el-main>
-    </el-container>
-  </el-container>
-</template>
-
-<script>
-import breadcrumb from '@l/breadcrumb.vue';
-import vHead from './Header.vue';
-import vSidebar from './Sidebar.vue';
-import vTags from './Tags.vue';
-import bus from './bus';
-export default {
-  data() {
-    return {
-      tagsList: [],
-      collapse: false,
-    };
-  },
-  components: {
-    vHead,
-    vSidebar,
-    vTags,
-    breadcrumb,
-  },
-  created() {
-    bus.$on('collapse-content', msg => {
-      this.collapse = msg;
-    });
-
-    // 只有在标签页列表里的页面才使用keep-alive,即关闭标签之后就不保存到内存中了。
-    bus.$on('tags', msg => {
-      let arr = [];
-      for (let i = 0, len = msg.length; i < len; i++) {
-        msg[i].name && arr.push(msg[i].name);
-      }
-      this.tagsList = arr;
-    });
-  },
-};
-</script>

+ 0 - 155
src/layouts/Sidebar.vue

@@ -1,155 +0,0 @@
-<template>
-  <div class="sidebar">
-    <el-menu
-      class="sidebar-el-menu"
-      :default-active="onRoutes"
-      :collapse="collapse"
-      background-color="#324157"
-      text-color="#bfcbd9"
-      active-text-color="#20a0ff"
-      unique-opened
-    >
-      <!-- <template v-for="item in items">
-        <template v-if="item.children">
-          <el-submenu class="" :index="item.index" :key="item.index">
-            <template slot="title">
-              <i :class="item.icon"></i>
-              <span slot="title">{{ item.title }}</span>
-            </template>
-            <template v-for="subItem in item.children">
-              <el-submenu v-if="subItem.children" :index="subItem.index" :key="subItem.index">
-                <template slot="title">{{ subItem.title }}</template>
-                <el-menu-item v-for="(threeItem, i) in subItem.children" :key="i" :index="threeItem.index">{{ threeItem.title }}</el-menu-item>
-              </el-submenu>
-              <el-menu-item v-else :index="subItem.index" :key="subItem.index">{{ subItem.title }}</el-menu-item>
-            </template>
-          </el-submenu>
-        </template>
-        <template v-else>
-          <el-menu-item class="" :index="item.index" :key="item.index">
-            <i :class="item.icon"></i>
-            <span slot="title">{{ item.title }}</span>
-          </el-menu-item>
-        </template>
-      </template> -->
-      <menu-item :menus="menu" :level="0"></menu-item>
-    </el-menu>
-  </div>
-</template>
-
-<script>
-import _ from 'lodash';
-import menuItem from './menu-item.vue';
-import { mapState, createNamespacedHelpers } from 'vuex';
-const { mapActions: userMenu } = createNamespacedHelpers('userMenu');
-import bus from './bus';
-export default {
-  components: { menuItem },
-  data() {
-    return {
-      collapse: false,
-      items: [
-        {
-          icon: 'el-icon-s-home',
-          index: '/menu',
-          title: '目录管理',
-        },
-        {
-          icon: 'el-icon-s-home',
-          index: 'homeIndex',
-          title: '系统首页',
-        },
-        {
-          icon: 'el-icon-s-home',
-          index: 'test',
-          title: '测试菜单',
-        },
-        {
-          icon: 'el-icon-s-home',
-          index: '1',
-          title: '测试菜单',
-          children: [
-            {
-              index: 'test',
-              title: '测试菜单',
-            },
-          ],
-        },
-      ],
-      menu: [],
-    };
-  },
-  computed: {
-    ...mapState(['user']),
-    onRoutes() {
-      return this.$route.path;
-    },
-  },
-  created() {
-    this.requestMenu();
-    // 通过 Event Bus 进行组件间通信,来折叠侧边栏
-    bus.$on('collapse', msg => {
-      this.collapse = msg;
-      bus.$emit('collapse-content', msg);
-    });
-  },
-  methods: {
-    ...userMenu(['getMenu']),
-    async requestMenu() {
-      const { type, id: userid } = this.user;
-      const condition = { project: 'zhwl', type: 0, userid: 'dev' };
-      const res = await this.getMenu(condition);
-      if (this.$checkRes(res)) {
-        console.log(res);
-        this.$set(this, `menu`, res);
-        // sessionStorage.setItem('userMenu', JSON.stringify(res.data));
-      }
-    },
-    // 分配用户彩带权限
-    // getMenu() {
-    //   // 客户信息
-    //   let user = this.user;
-    //   // 复制列表
-    //   let list = _.cloneDeep(this.items);
-    //   let data = [];
-    //   list.push(...data);
-    //   this.$set(this, `items`, _.uniqBy(list, 'index'));
-    // },
-  },
-  watch: {
-    user: {
-      deep: true,
-      immediate: true,
-      handler(val) {
-        this.getMenu();
-      },
-    },
-  },
-};
-</script>
-
-<style lang="less" scoped>
-.sidebar {
-  display: block;
-  position: absolute;
-  left: 0;
-  top: 60px;
-  bottom: 0;
-  overflow-y: scroll;
-}
-.sidebar::-webkit-scrollbar {
-  width: 0;
-}
-.sidebar-el-menu:not(.el-menu--collapse) {
-  width: 200px;
-}
-.sidebar > ul {
-  height: 100%;
-}
-// /deep/.first {
-//   padding-left: 0 !important;
-// }
-// /deep/.second .el-submenu__title {
-//   padding-left: 0 !important;
-// }
-</style>

+ 0 - 181
src/layouts/Tags.vue

@@ -1,181 +0,0 @@
-<template>
-  <div class="tags" v-if="showTags">
-    <ul>
-      <li class="tags-li" v-for="(item, index) in tagsList" :class="{ active: isActive(item.path) }" :key="index">
-        <router-link :to="item.path" class="tags-li-title">
-          {{ item.title }}
-        </router-link>
-        <span class="tags-li-icon" @click="closeTags(index)"><i class="el-icon-close"></i></span>
-      </li>
-    </ul>
-    <div class="tags-close-box">
-      <el-dropdown @command="handleTags">
-        <el-button size="mini" type="primary"> 标签选项<i class="el-icon-arrow-down el-icon--right"></i> </el-button>
-        <el-dropdown-menu size="small" slot="dropdown">
-          <el-dropdown-item command="other">关闭其他</el-dropdown-item>
-          <el-dropdown-item command="all">关闭所有</el-dropdown-item>
-        </el-dropdown-menu>
-      </el-dropdown>
-    </div>
-  </div>
-</template>
-
-<script>
-import bus from './bus';
-export default {
-  data() {
-    return {
-      tagsList: [],
-    };
-  },
-  methods: {
-    isActive(path) {
-      return path === this.$route.fullPath;
-    },
-    // 关闭单个标签
-    closeTags(index) {
-      const delItem = this.tagsList.splice(index, 1)[0];
-      const item = this.tagsList[index] ? this.tagsList[index] : this.tagsList[index - 1];
-      if (item) {
-        delItem.path === this.$route.fullPath && this.$router.push(item.path);
-      } else {
-        this.$router.push('/');
-      }
-    },
-    // 关闭全部标签
-    closeAll() {
-      this.tagsList = [];
-      this.$router.push('/');
-    },
-    // 关闭其他标签
-    closeOther() {
-      const curItem = this.tagsList.filter(item => {
-        return item.path === this.$route.fullPath;
-      });
-      this.tagsList = curItem;
-    },
-    // 设置标签
-    setTags(route) {
-      const isExist = this.tagsList.some(item => {
-        return item.path === route.fullPath;
-      });
-      if (!isExist) {
-        if (this.tagsList.length >= 8) {
-          this.tagsList.shift();
-        }
-        this.tagsList.push({
-          title: route.meta.title || '',
-          path: route.fullPath,
-          name: route.matched[1].components.default.name || '',
-        });
-      }
-      bus.$emit('tags', this.tagsList);
-    },
-    handleTags(command) {
-      command === 'other' ? this.closeOther() : this.closeAll();
-    },
-  },
-  computed: {
-    showTags() {
-      return this.tagsList.length > 0;
-    },
-  },
-  watch: {
-    $route(newValue, oldValue) {
-      this.setTags(newValue);
-    },
-  },
-  created() {
-    this.setTags(this.$route);
-    // 监听关闭当前页面的标签页
-    bus.$on('close_current_tags', () => {
-      for (let i = 0, len = this.tagsList.length; i < len; i++) {
-        const item = this.tagsList[i];
-        if (item.path === this.$route.fullPath) {
-          if (i < len - 1) {
-            this.$router.push(this.tagsList[i + 1].path);
-          } else if (i > 0) {
-            this.$router.push(this.tagsList[i - 1].path);
-          } else {
-            this.$router.push('/');
-          }
-          this.tagsList.splice(i, 1);
-          break;
-        }
-      }
-    });
-  },
-};
-</script>
-
-<style>
-.tags {
-  position: relative;
-  height: 30px;
-  overflow: hidden;
-  background: #fff;
-  padding-right: 120px;
-  box-shadow: 0 5px 10px #ddd;
-}
-
-.tags ul {
-  box-sizing: border-box;
-  width: 100%;
-  height: 100%;
-}
-
-.tags-li {
-  float: left;
-  margin: 3px 5px 2px 3px;
-  border-radius: 3px;
-  font-size: 12px;
-  overflow: hidden;
-  cursor: pointer;
-  height: 23px;
-  line-height: 23px;
-  border: 1px solid #e9eaec;
-  background: #fff;
-  padding: 0 5px 0 12px;
-  vertical-align: middle;
-  color: #666;
-  -webkit-transition: all 0.3s ease-in;
-  -moz-transition: all 0.3s ease-in;
-  transition: all 0.3s ease-in;
-}
-
-.tags-li:not(.active):hover {
-  background: #f8f8f8;
-}
-
-.tags-li.active {
-  color: #fff;
-}
-
-.tags-li-title {
-  float: left;
-  max-width: 80px;
-  overflow: hidden;
-  white-space: nowrap;
-  text-overflow: ellipsis;
-  margin-right: 5px;
-  color: #666;
-}
-
-.tags-li.active .tags-li-title {
-  color: #fff;
-}
-
-.tags-close-box {
-  position: absolute;
-  right: 0;
-  top: 0;
-  box-sizing: border-box;
-  padding-top: 1px;
-  text-align: center;
-  width: 110px;
-  height: 30px;
-  background: #fff;
-  box-shadow: -3px 0 15px 3px rgba(0, 0, 0, 0.1);
-  z-index: 10;
-}
-</style>

+ 0 - 33
src/layouts/breadcrumb.vue

@@ -1,33 +0,0 @@
-<template>
-  <div id="breadcrumb">
-    <el-row>
-      <el-col :span="24" class="crumbs">
-        <el-breadcrumb separator="/">
-          <el-breadcrumb-item> <i class="el-icon-s-grid"></i> {{ breadcrumbTitle }} </el-breadcrumb-item>
-        </el-breadcrumb>
-      </el-col>
-    </el-row>
-  </div>
-</template>
-
-<script>
-import { mapState, createNamespacedHelpers } from 'vuex';
-export default {
-  metaInfo: {},
-  name: 'breadcrumb',
-  props: {
-    breadcrumbTitle: { type: String },
-  },
-  components: {},
-  data: function() {
-    return {};
-  },
-  created() {},
-  methods: {},
-  computed: {
-    ...mapState(['user']),
-  },
-};
-</script>
-
-<style lang="less" scoped></style>

+ 0 - 6
src/layouts/bus.js

@@ -1,6 +0,0 @@
-import Vue from 'vue';
-
-// 使用 Event Bus
-const bus = new Vue();
-
-export default bus;

+ 0 - 79
src/layouts/directives.js

@@ -1,79 +0,0 @@
-import Vue from 'vue';
-
-// v-dialogDrag: 弹窗拖拽属性
-Vue.directive('dialogDrag', {
-  bind(el, binding, vnode, oldVnode) {
-    const dialogHeaderEl = el.querySelector('.el-dialog__header');
-    const dragDom = el.querySelector('.el-dialog');
-
-    dialogHeaderEl.style.cssText += ';cursor:move;';
-    dragDom.style.cssText += ';top:0px;';
-
-    // 获取原有属性 ie dom元素.currentStyle 火狐谷歌 window.getComputedStyle(dom元素, null);
-    const sty = (() => {
-      if (window.document.currentStyle) {
-        return (dom, attr) => dom.currentStyle[attr];
-      } else {
-        return (dom, attr) => getComputedStyle(dom, false)[attr];
-      }
-    })();
-
-    dialogHeaderEl.onmousedown = e => {
-      // 鼠标按下,计算当前元素距离可视区的距离
-      const disX = e.clientX - dialogHeaderEl.offsetLeft;
-      const disY = e.clientY - dialogHeaderEl.offsetTop;
-
-      const screenWidth = document.body.clientWidth; // body当前宽度
-      const screenHeight = document.documentElement.clientHeight; // 可见区域高度(应为body高度,可某些环境下无法获取)
-
-      const dragDomWidth = dragDom.offsetWidth; // 对话框宽度
-      const dragDomheight = dragDom.offsetHeight; // 对话框高度
-
-      const minDragDomLeft = dragDom.offsetLeft;
-      const maxDragDomLeft = screenWidth - dragDom.offsetLeft - dragDomWidth;
-
-      const minDragDomTop = dragDom.offsetTop;
-      const maxDragDomTop = screenHeight - dragDom.offsetTop - dragDomheight;
-
-      // 获取到的值带px 正则匹配替换
-      let styL = sty(dragDom, 'left');
-      let styT = sty(dragDom, 'top');
-
-      // 注意在ie中 第一次获取到的值为组件自带50% 移动之后赋值为px
-      if (styL.includes('%')) {
-        styL = +document.body.clientWidth * (+styL.replace(/\%/g, '') / 100);
-        styT = +document.body.clientHeight * (+styT.replace(/\%/g, '') / 100);
-      } else {
-        styL = +styL.replace(/\px/g, '');
-        styT = +styT.replace(/\px/g, '');
-      }
-
-      document.onmousemove = function(e) {
-        // 通过事件委托,计算移动的距离
-        let left = e.clientX - disX;
-        let top = e.clientY - disY;
-
-        // 边界处理
-        if (-left > minDragDomLeft) {
-          left = -minDragDomLeft;
-        } else if (left > maxDragDomLeft) {
-          left = maxDragDomLeft;
-        }
-
-        if (-top > minDragDomTop) {
-          top = -minDragDomTop;
-        } else if (top > maxDragDomTop) {
-          top = maxDragDomTop;
-        }
-
-        // 移动当前元素
-        dragDom.style.cssText += `;left:${left + styL}px;top:${top + styT}px;`;
-      };
-
-      document.onmouseup = function(e) {
-        document.onmousemove = null;
-        document.onmouseup = null;
-      };
-    };
-  },
-});

+ 0 - 30
src/layouts/i18n.js

@@ -1,30 +0,0 @@
-export const messages = {
-  zh: {
-    i18n: {
-      breadcrumb: '国际化产品',
-      tips: '通过切换语言按钮,来改变当前内容的语言。',
-      btn: '切换英文',
-      title1: '常用用法',
-      p1: '要是你把你的秘密告诉了风,那就别怪风把它带给树。',
-      p2: '没有什么比信念更能支撑我们度过艰难的时光了。',
-      p3: '只要能把自己的事做好,并让自己快乐,你就领先于大多数人了。',
-      title2: '组件插值',
-      info: 'Element组件需要国际化,请参考 {action}。',
-      value: '文档',
-    },
-  },
-  en: {
-    i18n: {
-      breadcrumb: 'International Products',
-      tips: 'Click on the button to change the current language. ',
-      btn: 'Switch Chinese',
-      title1: 'Common usage',
-      p1: 'If you reveal your secrets to the wind you should not blame the wind for  revealing them to the trees.',
-      p2: 'Nothing can help us endure dark times better than our faith. ',
-      p3: "If you can do what you do best and be happy, you're further along in life  than most people.",
-      title2: 'Component interpolation',
-      info: 'The default language of Element is Chinese. If you wish to use another language, please refer to the {action}.',
-      value: 'documentation',
-    },
-  },
-};

+ 0 - 72
src/layouts/menu-item.vue

@@ -1,72 +0,0 @@
-<template>
-  <div id="menu-item">
-    <template v-for="(item, index) in menus">
-      <!-- 没有子菜单情况 -->
-      <template v-if="item && item.children && item.children <= 0">
-        <el-menu-item :index="item.route" @click="selectMenu(item.route, item.module)" :key="index">
-          <i v-if="item.icon" :class="item.icon"></i>
-          <span v-if="item.title" slot="title">
-            <!-- <span :style="{ paddingLeft: `${level * 1}px` }">{{ item.title }}</span> -->
-            {{ item.title }}
-          </span>
-        </el-menu-item>
-      </template>
-      <template v-else>
-        <el-submenu :index="item.title || item.route" :key="item.title">
-          <template slot="title">
-            <i v-if="item && item.icon" :class="item.icon"></i>
-            <span v-if="item && item.title">
-              <!-- <span :style="{ paddingLeft: `${level * 1}px` }">{{ item.title }}</span> -->
-              {{ item.title }}
-            </span>
-          </template>
-          <menu-item :menus="item.children" :level="level + 1"></menu-item>
-        </el-submenu>
-      </template>
-    </template>
-  </div>
-</template>
-
-<script>
-const _ = require('lodash');
-import { mapState, createNamespacedHelpers } from 'vuex';
-export default {
-  name: 'menu-item',
-  props: {
-    level: { type: Number, default: 0 },
-    menus: { type: Array, require: true },
-  },
-  components: {},
-  data: function() {
-    return {};
-  },
-  created() {},
-  methods: {
-    selectMenu(path, modules) {
-      if (!_.isEqual(this.$route.path, path)) this.$router.push({ path });
-    },
-  },
-  computed: {
-    ...mapState(['user']),
-  },
-};
-</script>
-
-<style lang="less" scoped>
-.el-submenu .el-menu-item {
-  min-width: 16rem !important;
-  // padding-left: 3rem !important;
-  &:hover {
-    // color: #fff !important;
-  }
-}
-.el-submenu__title i {
-  font-size: 1rem;
-}
-.el-menu-item,
-.el-submenu .el-menu-item {
-  &.is-active {
-    // color: #fff !important;
-  }
-}
-</style>

+ 1 - 9
src/main.js

@@ -3,7 +3,6 @@ import App from './App.vue';
 import router from './router';
 import router from './router';
 import store from './store';
 import store from './store';
 import ElementUI from 'element-ui';
 import ElementUI from 'element-ui';
-import VueI18n from 'vue-i18n';
 import '@/plugins/axios';
 import '@/plugins/axios';
 import '@/plugins/check-res';
 import '@/plugins/check-res';
 import '@/plugins/meta';
 import '@/plugins/meta';
@@ -12,22 +11,16 @@ import '@/plugins/loading';
 import '@/plugins/var';
 import '@/plugins/var';
 import '@/plugins/methods';
 import '@/plugins/methods';
 import '@/plugins/setting';
 import '@/plugins/setting';
-import { messages } from './layouts/i18n';
 import 'element-ui/lib/theme-chalk/index.css'; // 默认主题
 import 'element-ui/lib/theme-chalk/index.css'; // 默认主题
 // import './assets/css/theme-green/index.css'; // 浅绿色主题
 // import './assets/css/theme-green/index.css'; // 浅绿色主题
 import './assets/css/icon.css';
 import './assets/css/icon.css';
-import './layouts/directives';
+import '@l/directives';
 import 'babel-polyfill';
 import 'babel-polyfill';
 
 
 Vue.config.productionTip = false;
 Vue.config.productionTip = false;
-Vue.use(VueI18n);
 Vue.use(ElementUI, {
 Vue.use(ElementUI, {
   size: 'small',
   size: 'small',
 });
 });
-const i18n = new VueI18n({
-  locale: 'zh',
-  messages,
-});
 
 
 //使用钩子函数对路由进行权限跳转
 //使用钩子函数对路由进行权限跳转
 router.beforeEach((to, from, next) => {
 router.beforeEach((to, from, next) => {
@@ -44,6 +37,5 @@ router.beforeEach((to, from, next) => {
 new Vue({
 new Vue({
   router,
   router,
   store,
   store,
-  i18n,
   render: h => h(App),
   render: h => h(App),
 }).$mount('#app');
 }).$mount('#app');

+ 2 - 1
src/router/index.js

@@ -2,6 +2,7 @@ import Vue from 'vue';
 import Router from 'vue-router';
 import Router from 'vue-router';
 import test from './test';
 import test from './test';
 import auth from './auth';
 import auth from './auth';
+import Home from '@l/Home.vue';
 
 
 Vue.use(Router);
 Vue.use(Router);
 export default new Router({
 export default new Router({
@@ -16,7 +17,7 @@ export default new Router({
     },
     },
     {
     {
       path: '/',
       path: '/',
-      component: () => import('../layouts/Home.vue'),
+      component: Home,
       children: [
       children: [
         {
         {
           path: '/homeIndex',
           path: '/homeIndex',

+ 5 - 2
vue.config.js

@@ -1,4 +1,6 @@
 const path = require('path');
 const path = require('path');
+const frame = path.resolve(__dirname, '../frame');
+const layouts = path.resolve(__dirname, '../frame/layouts');
 module.exports = {
 module.exports = {
   // publicPath: process.env.NODE_ENV === 'development' ? '/' : process.env.VUE_APP_ROUTER,
   // publicPath: process.env.NODE_ENV === 'development' ? '/' : process.env.VUE_APP_ROUTER,
   publicPath: process.env.VUE_APP_ROUTER,
   publicPath: process.env.VUE_APP_ROUTER,
@@ -13,7 +15,8 @@ module.exports = {
           '@': path.resolve(__dirname, './src'),
           '@': path.resolve(__dirname, './src'),
           '@c': path.resolve(__dirname, './src/components'),
           '@c': path.resolve(__dirname, './src/components'),
           '@a': path.resolve(__dirname, './src/assets'),
           '@a': path.resolve(__dirname, './src/assets'),
-          '@l': path.resolve(__dirname, './src/layouts'),
+          '@l': layouts,
+          '@f': frame,
         },
         },
       },
       },
     });
     });
@@ -23,7 +26,7 @@ module.exports = {
     //api地址前缀
     //api地址前缀
     proxy: {
     proxy: {
       '/api/auth': {
       '/api/auth': {
-        target: 'http://127.0.0.1:7006',
+        target: 'http://free.liaoningdoupo.com',
         changeOrigin: true,
         changeOrigin: true,
         ws: true,
         ws: true,
       },
       },