Browse Source

Merge branch 'master' of http://git.cc-lotus.info/count/webnew-count

wuhongyu 5 years ago
parent
commit
1df242f472

+ 2 - 1
package.json

@@ -11,12 +11,13 @@
     "axios": "^0.19.2",
     "core-js": "^3.6.4",
     "element-ui": "^2.13.2",
+    "jsonwebtoken": "^8.5.1",
     "lodash": "^4.17.15",
     "moment": "^2.26.0",
     "naf-core": "^0.1.2",
     "vue": "^2.6.11",
     "vue-meta": "^2.3.4",
-    "vue-router": "^3.1.6",
+    "vue-router": "^3.3.1",
     "vuex": "^3.1.3"
   },
   "devDependencies": {

+ 4 - 2
src/store/index.js

@@ -1,11 +1,13 @@
 import Vue from 'vue';
 import Vuex from 'vuex';
+import * as ustate from './user/state';
+import * as umutations from './user/mutations';
 
 Vue.use(Vuex);
 
 export default new Vuex.Store({
-  state: {},
-  mutations: {},
+  state: { ...ustate },
+  mutations: { ...umutations },
   actions: {},
   modules: {},
 });

+ 33 - 0
src/store/user/mutations.js

@@ -0,0 +1,33 @@
+const jwt = require('jsonwebtoken');
+export const setUser = (state, payload) => {
+  let res = true;
+  //登陆时
+  if (payload) {
+    state.token = payload;
+  } else {
+    //已经登陆,切换路由时取出用户信息放在总store中
+    let token = localStorage.getItem('token');
+    if (token && token !== 'guest') {
+      state.user = jwt.decode(token);
+    } else if (token && token == 'guest') {
+      let user = localStorage.getItem('user');
+      state.user = JSON.parse(user);
+    } else {
+      let timestamp = new Date().getTime();
+      let user = {
+        // id: `guest${timestamp}`,
+        name: `游客${timestamp}`,
+      };
+      state.user = user;
+      localStorage.setItem('token', 'guest');
+      localStorage.setItem('user', JSON.stringify(user));
+      console.warn('游客身份');
+    }
+  }
+  return res;
+};
+
+export const deleteUser = (state, payload) => {
+  state.user = {};
+  localStorage.removeItem('user');
+};

+ 2 - 0
src/store/user/state.js

@@ -0,0 +1,2 @@
+export const user = {};
+export const menuList = [];

+ 1 - 1
src/views/login.vue

@@ -113,7 +113,7 @@ export default {
         font-size: 40px;
       }
       .form {
-        padding: 0 0 20px 0;
+        padding: 0 200px 20px 200px;
       }
     }
   }

+ 1 - 1
src/views/register.vue

@@ -261,7 +261,7 @@ export default {
         font-size: 40px;
       }
       .form {
-        padding: 0 0 20px 0;
+        padding: 0 200px 20px 200px;
       }
     }
   }

+ 9 - 136
src/views/service/index.vue

@@ -1,5 +1,5 @@
 <template>
-  <div id="detail">
+  <div id="login">
     <el-row>
       <el-col :span="24" class="style">
         <el-col :span="24" class="top">
@@ -12,45 +12,7 @@
         </el-col>
         <el-col :span="24" class="main">
           <div class="w_1200">
-            <el-col :span="5" class="left">
-              <el-col :span="24" class="top">
-                <i class="el-icon-s-unfold"></i>
-                <span>计算服务</span>
-              </el-col>
-              <el-col :span="24" class="menus">
-                <el-col class="menuList" :span="24" v-for="(item, index) in menuList" :key="index">
-                  <p @click="changeMenu(item.name, index)" :style="`color:${menuIndex == index ? menuColor : ''}`">
-                    {{ item.name }}
-                  </p>
-                </el-col>
-              </el-col>
-            </el-col>
-            <el-col :span="18" class="right">
-              <span v-if="columnName == '资源介绍'">
-                资源介绍
-              </span>
-              <span v-else-if="columnName == '账号申请'">
-                账号申请
-              </span>
-              <span v-else-if="columnName == '计算登录'">
-                计算登录
-              </span>
-              <span v-else-if="columnName == '应用领域'">
-                应用领域
-              </span>
-              <span v-else-if="columnName == '应用案例'">
-                应用案例
-              </span>
-              <span v-else-if="columnName == '运行动态'">
-                运行动态
-              </span>
-              <span v-else-if="columnName == '超算讲堂'">
-                超算讲堂
-              </span>
-              <span v-else-if="columnName == 'AI社区'">
-                AI社区
-              </span>
-            </el-col>
+            <serviceList></serviceList>
           </div>
         </el-col>
         <el-col :span="24" class="foot">
@@ -67,84 +29,25 @@
 import top from '@/layout/common/top.vue';
 import menus from '@/layout/common/menus.vue';
 import foot from '@/layout/common/foot.vue';
+import serviceList from '@/layout/service/serviceList.vue';
+
 import { mapState, createNamespacedHelpers } from 'vuex';
 export default {
-  name: 'detail',
+  name: 'login',
   props: {},
   components: {
     top,
     menus,
     foot,
+    serviceList,
   },
   data: function() {
-    return {
-      menuList: [
-        { name: '资源介绍' },
-        { name: '账号申请' },
-        { name: '计算登录' },
-        { name: '应用领域' },
-        { name: '应用案例' },
-        { name: '运行动态' },
-        { name: '超算讲堂' },
-        { name: 'AI社区' },
-      ],
-      menuColor: 'rgb(5,73,130)',
-      menuIndex: '0',
-      columnName: '',
-    };
-  },
-  created() {
-    this.changeColumn();
-  },
-  methods: {
-    // 选择栏目
-    changeColumn() {
-      if (this.col_name == '资源介绍') {
-        this.menuIndex = 0;
-        this.columnName = this.col_name;
-        this.menuColor = 'rgb(5,73,130)';
-      } else if (this.col_name == '账号申请') {
-        this.menuIndex = 1;
-        this.columnName = this.col_name;
-        this.menuColor = 'rgb(5,73,130)';
-      } else if (this.col_name == '计算登录') {
-        this.menuIndex = 2;
-        this.columnName = this.col_name;
-        this.menuColor = 'rgb(5,73,130)';
-      } else if (this.col_name == '应用领域') {
-        this.menuIndex = 3;
-        this.columnName = this.col_name;
-        this.menuColor = 'rgb(5,73,130)';
-      } else if (this.col_name == '应用案例') {
-        this.menuIndex = 4;
-        this.columnName = this.col_name;
-        this.menuColor = 'rgb(5,73,130)';
-      } else if (this.col_name == '运行动态') {
-        this.menuIndex = 5;
-        this.columnName = this.col_name;
-        this.menuColor = 'rgb(5,73,130)';
-      } else if (this.col_name == '超算讲堂') {
-        this.menuIndex = 6;
-        this.columnName = this.col_name;
-        this.menuColor = 'rgb(5,73,130)';
-      } else if (this.col_name == 'AI社区') {
-        this.menuIndex = 7;
-        this.columnName = this.col_name;
-        this.menuColor = 'rgb(5,73,130)';
-      }
-    },
-    // 点击选择菜单
-    changeMenu(name, index) {
-      this.menuIndex = index;
-      this.columnName = name;
-      this.menuColor = 'rgb(5,73,130)';
-    },
+    return {};
   },
+  created() {},
+  methods: {},
   computed: {
     ...mapState(['user']),
-    col_name() {
-      return this.$route.query.title;
-    },
     pageTitle() {
       return `${this.$route.meta.title}`;
     },
@@ -168,36 +71,6 @@ export default {
   .main {
     min-height: 600px;
     margin: 0 0 10px 0;
-    .left {
-      min-height: 600px;
-      background: #fff;
-      margin: 0 10px 0 0;
-      .top {
-        height: 60px;
-        line-height: 60px;
-        background-color: #054982;
-        color: #fff;
-        font-size: 25px;
-        font-weight: 600;
-        letter-spacing: 2px;
-        text-align: center;
-      }
-      .menuList {
-        height: 50px;
-        line-height: 50px;
-        text-align: center;
-        border-bottom: 1px solid #ccc;
-        p {
-          font-size: 20px;
-          font-weight: bold;
-        }
-      }
-    }
-    .right {
-      width: 78%;
-      min-height: 600px;
-      background: #fff;
-    }
   }
   .foot {
     height: 135px;