lrf402788946 преди 5 години
родител
ревизия
f1ee62f197
променени са 6 файла, в които са добавени 94 реда и са изтрити 31 реда
  1. 37 28
      src/layout/login/loginMain.vue
  2. 19 0
      src/router/before.js
  3. 4 0
      src/router/index.js
  4. 4 3
      src/store/index.js
  5. 28 0
      src/store/user/mutations.js
  6. 2 0
      src/store/user/state.js

+ 37 - 28
src/layout/login/loginMain.vue

@@ -24,7 +24,7 @@
           </el-tab-pane>
           <el-tab-pane label="注册" name="second">
             <el-col :span="24">
-              <el-form ref="forms" :model="forms" label-width="80px">
+              <el-form ref="forms" :model="forms" label-width="120px">
                 <el-form-item label="用户名称">
                   <el-input v-model="forms.name" placeholder="请输入用户名称"></el-input>
                 </el-form-item>
@@ -32,10 +32,10 @@
                   <el-input v-model="forms.password" placeholder="请输入登录密码" show-password></el-input>
                 </el-form-item>
                 <el-form-item label="身份证号">
-                  <el-input v-model="forms.cardnumber" placeholder="请输入身份证号"></el-input>
+                  <el-input v-model="forms.cardnumber" placeholder="请输入身份证号" :minlength="18" :maxlength="18"></el-input>
                 </el-form-item>
                 <el-form-item label="电话号码">
-                  <el-input v-model="forms.phone" placeholder="请输入电话号码"></el-input>
+                  <el-input v-model="forms.phone" placeholder="请输入电话号码" :minlength="11" :maxlength="11"></el-input>
                 </el-form-item>
                 <el-form-item label="邮箱">
                   <el-input v-model="forms.email" placeholder="请输入邮箱"></el-input>
@@ -44,20 +44,27 @@
                   <el-input v-model="forms.addr" placeholder="请输入地址"></el-input>
                 </el-form-item>
                 <el-form-item label="头像图片" prop="img_path">
-                  <upload :limit="1" :data="forms.img_path" type="imgpath" :url="'/files/imgpath/upload'" @upload="uploadSuccess"></upload>
+                  <upload :limit="1" :data="forms.img_path" type="img_path" :url="'/files/imgpath/upload'" @upload="uploadSuccess"></upload>
                 </el-form-item>
-                <el-form-item label="个人/法人">
+                <el-form-item label="用户类别">
+                  <!-- <el-radio v-model="forms.role" label="1">管理员</el-radio> -->
+                  <el-radio-group v-model="forms.role" @change="setIsQy">
+                    <el-radio label="2">个人</el-radio>
+                    <el-radio label="3">企业管理员</el-radio>
+                  </el-radio-group>
+                </el-form-item>
+                <!-- <el-form-item label="个人/法人">
                   <el-radio v-model="forms.is_qy" label="0">个人</el-radio>
                   <el-radio v-model="forms.is_qy" label="1">法人</el-radio>
-                </el-form-item>
+                </el-form-item> -->
                 <el-form-item label="身份证正面">
-                  <upload :limit="1" :data="forms.cardfile_a" type="cardfilea" :url="'/files/cardfilea/upload'" @upload="uploadSuccess"></upload>
+                  <upload :limit="1" :data="forms.cardfile_a" type="cardfile_a" :url="'/files/cardfilea/upload'" @upload="uploadSuccess"></upload>
                 </el-form-item>
                 <el-form-item label="身份证背面">
-                  <upload :limit="1" :data="forms.cardfile_b" type="cardfileb" :url="'/files/cardfileb/upload'" @upload="uploadSuccess"></upload>
+                  <upload :limit="1" :data="forms.cardfile_b" type="cardfile_b" :url="'/files/cardfileb/upload'" @upload="uploadSuccess"></upload>
                 </el-form-item>
-                <el-form-item label="组织机构图片">
-                  <upload :limit="1" :data="forms.img_qy" type="imgqy" :url="'/files/imgqy/upload'" @upload="uploadSuccess"></upload>
+                <el-form-item label="组织机构图片" v-if="forms.role == '3'">
+                  <upload :limit="1" :data="forms.img_qy" type="img_qy" :url="'/files/imgqy/upload'" @upload="uploadSuccess"></upload>
                 </el-form-item>
                 <el-form-item label="个人简介" placeholder="请输入个人简介">
                   <el-input type="textarea" v-model="forms.resume"></el-input>
@@ -65,30 +72,27 @@
                 <el-form-item label="专业领域" placeholder="请输入专业领域">
                   <el-input v-model="forms.major"></el-input>
                 </el-form-item>
-                <el-form-item label="机构类型" placeholder="请输入机构类型">
-                  <el-input v-model="forms.institution_type"></el-input>
-                </el-form-item>
-                <el-form-item label="机构名称" placeholder="请输入机构名称">
-                  <el-input v-model="forms.institution_name"></el-input>
-                </el-form-item>
-                <el-form-item label="机构代码" placeholder="请输入机构代码">
-                  <el-input v-model="forms.institution_code"></el-input>
-                </el-form-item>
-                <el-form-item label="机构性质" placeholder="请输入机构性质">
-                  <el-input v-model="forms.institution_nature"></el-input>
-                </el-form-item>
+                <template v-if="forms.role == '3'">
+                  <el-form-item label="机构类型" placeholder="请输入机构类型">
+                    <el-input v-model="forms.institution_type"></el-input>
+                  </el-form-item>
+                  <el-form-item label="机构名称" placeholder="请输入机构名称">
+                    <el-input v-model="forms.institution_name"></el-input>
+                  </el-form-item>
+                  <el-form-item label="机构代码" placeholder="请输入机构代码">
+                    <el-input v-model="forms.institution_code"></el-input>
+                  </el-form-item>
+                  <el-form-item label="机构性质" placeholder="请输入机构性质">
+                    <el-input v-model="forms.institution_nature"></el-input>
+                  </el-form-item>
+                </template>
                 <el-form-item label="办公电话" placeholder="请输入办公电话">
                   <el-input v-model="forms.office_phone"></el-input>
                 </el-form-item>
                 <el-form-item label="所属行业" placeholder="请输入所属行业">
                   <el-input v-model="forms.profession"></el-input>
                 </el-form-item>
-                <el-form-item label="用户类别">
-                  <el-radio v-model="forms.role" label="1">管理员</el-radio>
-                  <el-radio v-model="forms.role" label="2">个人</el-radio>
-                  <el-radio v-model="forms.role" label="3">企业管理员</el-radio>
-                </el-form-item>
-                <el-col :span="24" class="loginSubmit"><el-button type="primary" @click="registerSubmit">登录</el-button></el-col>
+                <el-col :span="24" class="loginSubmit"><el-button type="primary" @click="registerSubmit">注册</el-button></el-col>
               </el-form>
             </el-col>
           </el-tab-pane>
@@ -128,6 +132,11 @@ export default {
     uploadSuccess({ type, data }) {
       this.$set(this.forms, `${type}`, data.uri);
     },
+    setIsQy(data) {
+      let val = '0';
+      data == '2' ? (val = '0') : (val = '1');
+      this.$set(this.forms, `is_qy`, val);
+    },
   },
 };
 </script>

+ 19 - 0
src/router/before.js

@@ -0,0 +1,19 @@
+import store from '@/store/index';
+
+const checkLogin = router => {
+  router.beforeEach((to, form, next) => {
+    store.commit('setUser');
+    // if (to.name === 'login') {
+    //   next();
+    //   return;
+    // }
+    // let user = store.state.user;
+    // if (user) {
+    //   next();
+    // }
+    // //下面是没登录的情况,需要跳转页面到用户未登录页
+    // else next({ name: 'login' });
+    next();
+  });
+};
+export default checkLogin;

+ 4 - 0
src/router/index.js

@@ -1,5 +1,6 @@
 import Vue from 'vue';
 import VueRouter from 'vue-router';
+import checkLogin from './before';
 
 Vue.use(VueRouter);
 
@@ -229,7 +230,10 @@ const routes = [
 ];
 
 const router = new VueRouter({
+  mode: 'history',
+  base: process.env.BASE_URL,
   routes,
 });
+checkLogin(router);
 
 export default router;

+ 4 - 3
src/store/index.js

@@ -20,7 +20,8 @@ import enterpriseproject from './enterpriseproject';
 import transaction from './transaction';
 import marketproduct from './marketproduct';
 import markettype from './markettype';
-
+import * as ustate from './user/state';
+import * as umutations from './user/mutations';
 Vue.use(Vuex);
 
 export default new Vuex.Store({
@@ -46,7 +47,7 @@ export default new Vuex.Store({
     marketproduct,
     markettype,
   },
-  state: {},
-  mutations: {},
+  state: { ...ustate },
+  mutations: { ...umutations },
   actions: {},
 });

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

@@ -0,0 +1,28 @@
+export const setUser = (state, payload) => {
+  let res = true;
+  //登陆时
+  if (payload) {
+    let { user, menuList } = payload;
+    state.user = user;
+    state.menuList = menuList;
+  } else {
+    //已经登陆,切换路由时取出用户信息放在总store中
+    let user = localStorage.getItem('user');
+    let menuList = localStorage.getItem('menuList');
+    if (menuList) state.menuList = JSON.parse(menuList);
+    if (user) state.user = JSON.parse(user);
+    else {
+      res = false;
+      state.user = undefined;
+      console.warn('用户未登录');
+    }
+  }
+  return res;
+};
+
+export const deleteUser = (state, payload) => {
+  state.user = {};
+  state.menuList = [];
+  localStorage.removeItem('user');
+  localStorage.removeItem('menuList');
+};

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

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