Selaa lähdekoodia

header 用户信息

natasha 1 vuosi sitten
vanhempi
commit
868d3dd5a2

+ 9 - 11
src/components/Header.vue

@@ -43,8 +43,8 @@
       </div>
       <el-dropdown @command="handleChange" v-else>
         <span class="el-dropdown-link">
-            <img class="avatar" src="../assets/avatar.png" />
-            <span class="name">GC</span><i class="el-icon-arrow-down el-icon--right"></i>
+            <img class="avatar" :src="touxiang?touxiang:userMessage.image_url?userMessage.image_url:require('../assets/avatar.png')" />
+            <span class="name">{{userMessage.user_name}}</span><i class="el-icon-arrow-down el-icon--right"></i>
         </span>
         <el-dropdown-menu slot="dropdown">
             <el-dropdown-item command='personal'>个人中心</el-dropdown-item>
@@ -71,10 +71,11 @@ import Cookies from "js-cookie";
 //import { setI18nLang } from "@/utils/i18n";
 import { removeSession } from "@/utils/role";
 import Login from "@/views/login.vue"
+import { getToken } from '@/utils/auth'
 export default {
   components: { Login },
   name: "LayoutHeader",
-  props: ['headerBg', 'headerBorder', 'userBg', 'LoginNavIndex', 'type'],
+  props: ['headerBg', 'headerBorder', 'userBg', 'LoginNavIndex', 'type', 'touxiang'],
   data() {
     return {
       projectList: [
@@ -99,8 +100,8 @@ export default {
           url: '/reporter'
         }
       ],
-      userMessage: null,
-      userShow: true,
+      userMessage: getToken()?JSON.parse(getToken()):null,
+      userShow: Cookies.get('HM21St_User_Token')?true:false,
       loginFlag: false,
     };
   },
@@ -122,14 +123,11 @@ export default {
     QuitLogin() {
       removeToken();
       removeSession("SysList");
-      Cookies.remove("userMessage");
-      Cookies.remove("session_id");
-      Cookies.remove("user_code");
-      Cookies.remove("user_type");
-      sessionStorage.removeItem("useragent_root_close");
+      Cookies.remove("registerToken");
+      Cookies.remove("HM21St_User_Token")
       this.userShow = false;
       this.userMessage = null;
-    //   window.location.href = "/";
+      window.location.href = "/";
     },
     handleLink(link,type){
         let url  = this.LoginNavIndex +'&&&'+ this.userBg +'&&&'+ this.headerBorder +'&&&'+ this.headerBg

+ 1 - 1
src/components/common/BookCard.vue

@@ -21,7 +21,7 @@
             <el-image
                 class="image"
                 :src="item.cover_image_url?item.cover_image_url:item.course_type==='baozhi'?require('../../assets/baozhi'+(Math.floor(Math.random()*2)+1)+'.png'):require('../../assets/kecheng'+(Math.floor(Math.random()*3)+1)+'.png')"
-                :fit="'contain'">
+                :fit="'cover'">
             </el-image>
             <div class="bottom">
             <p class="name">{{item.name}}</p>

+ 1 - 1
src/utils/auth.js

@@ -1,6 +1,6 @@
 import Cookies from 'js-cookie'
 
-const TokenKey = 'GCLS_Token'
+const TokenKey = 'HM21St_User_Token'
 
 export function getToken() {
     return Cookies.get(TokenKey)

+ 2 - 4
src/utils/request.js

@@ -62,10 +62,8 @@ service.interceptors.response.use(
             return Promise.reject(new Error(res.message || res.error || 'Error'))
         } else if (res.status === -1) {
             // 登录失效
-            Cookies.remove('session_id')
-            Cookies.remove('user_code')
-            Cookies.remove('user_real_name')
-            Cookies.remove('user_type')
+            Cookies.remove('Cookies')
+            Cookies.remove("HM21St_User_Token")
             removeToken();
             msg = Message({
                 message: '登录会话失效,请重新登录',

+ 1 - 1
src/views/bookShelf/bookItem.vue

@@ -30,7 +30,7 @@
                     <el-image
                         class="image"
                         :src="info.cover_image_url?info.cover_image_url:bookType==='baozhi'?require('../../assets/baozhi'+(Math.floor(Math.random()*2)+1)+'.png'):require('../../assets/kecheng'+(Math.floor(Math.random()*3)+1)+'.png')"
-                        :fit="'contain'">
+                        :fit="'cover'">
                     </el-image>
                 <!-- </el-carousel-item> -->
             </el-carousel>

+ 28 - 7
src/views/login.vue

@@ -27,7 +27,7 @@
                 <a class="forgotPwd">忘记密码?</a>
             </el-form-item>
             <el-form-item class="btn-box">
-                <el-button type="primary" @click="onSubmitPassword('loginPwdForm')" size="small">保存</el-button>
+                <el-button type="primary" @click="onSubmitPassword('loginPwdForm')" size="small" :loading="loading">保存</el-button>
                 <el-button @click="onCancel('loginPwdForm')" size="small">取消</el-button>
             </el-form-item>
         </el-form>
@@ -53,7 +53,7 @@
                 <a class="forgotPwd">忘记密码?</a>
             </el-form-item>
             <el-form-item class="btn-box">
-                <el-button type="primary" @click="onSubmitPassword('loginCodeForm')" size="small">保存</el-button>
+                <el-button type="primary" @click="onSubmitPassword('loginCodeForm')" size="small" :loading="loading">保存</el-button>
                 <el-button @click="onCancel('loginCodeForm')" size="small">取消</el-button>
             </el-form-item>
         </el-form>
@@ -62,6 +62,8 @@
 </template>
 
 <script>
+import { getLogin } from "@/api/ajax";
+import { setToken } from "@/utils/auth";
 export default {
   name: "Login",
   props: [],
@@ -86,7 +88,8 @@ export default {
       loginPwdForm:{
         userName:'',
         password:'',
-        userAgreeCheck: []
+        userAgreeCheck: [],
+        type: 'USER'
       },
       passwordFlag:false,
       rulesPassword:{
@@ -103,7 +106,8 @@ export default {
         loginCodeForm:{
             phone:'',
             code:'',
-            userAgreeCheck: []
+            userAgreeCheck: [],
+            type: 'USER'
         },
         rulesCode:{
             phone:[
@@ -118,6 +122,7 @@ export default {
         },
         time: 60, //获取验证码的时间
         verificationCodeShow: false, //是否已经获取了验证码
+        loading: false
     };
   },
   watch: {
@@ -137,12 +142,28 @@ export default {
     },
     // 密码登录提交表单
     onSubmitPassword(formName){
-        console.log(this.loginPwdForm)
         this.$refs[formName].validate((valid) => {
           if (valid) {
-            alert('submit!');
+            this.loading = true
+            let MethodName = "/OrgServer/LoginControl/Login";
+            let data = null
+            if(this.tabsIndex===0){
+                data = {
+                    user_type:this.loginPwdForm.type,
+                    user_name:this.loginPwdForm.userName,
+                    password:this.loginPwdForm.password
+                }
+            }
+            getLogin(MethodName, data)
+            .then((res) => {
+                this.loading = false
+                setToken(res);
+                window.location.reload()
+            })
+            .catch(() => {
+                this.loading = false
+            });
           } else {
-            console.log('error submit!!');
             return false;
           }
         });

+ 1 - 1
src/views/personalCenter/components/PersonalInfo.vue

@@ -4,7 +4,7 @@
         <div class="avator-box">
            <el-image
             :src="data.avatar?data.avatar:require('../../../assets/avatar.png')"
-            fit="contain">
+            fit="cover">
           </el-image>
           <a @click="toggleShow" class="img-crop">
             <svg-icon icon-class="camera"></svg-icon>

+ 1 - 1
src/views/personalCenter/components/Setting.vue

@@ -5,7 +5,7 @@
             <div class="avator-box">
             <el-image
                 :src="personalInfo.avatar?personalInfo.avatar:require('../../../assets/avatar.png')"
-                fit="contain">
+                fit="cover">
             </el-image>
             <a @click="toggleShow" class="img-crop">
                 <svg-icon icon-class="camera"></svg-icon>

+ 19 - 6
src/views/register.vue

@@ -12,12 +12,12 @@
     </div>
     <div class="contents">
         <h2>注册</h2>
-        <el-form :model="registerForm" :rules="rulesRegister" ref="registerForm" label-width="100px" class="registerForm">
+        <el-form :model="registerForm" :rules="rulesRegister" ref="registerFormUser" label-width="100px" class="registerForm">
             <el-divider content-position="left">基本信息</el-divider>
             <el-form-item label="头像" prop="cover_image_url">
                 <upload :datafileList="registerForm.cover_image_list" :changeFillId="handleAvatarSuccess" :fileName="'cover'" :showList="true" uploadType="image" :filleNumber="1" pageName="register" v-if="!registerForm.cover_image_url" />
                 <div class="cover-box" v-else @mouseover="Imagemouseover('coverFlag',true)" @mouseout="Imagemouseover('coverFlag',false)">
-                    <el-image :src="registerForm.cover_image_url" fit="contain" style="max-width:200px;max-height:200px;"></el-image>
+                    <el-image :src="registerForm.cover_image_url" fit="cover" style="width:200px;height:200px;"></el-image>
                     <p v-show="coverFlag" @click="handleDeleteFile('cover',0)"><i class="el-icon-delete"></i></p>
                 </div>
             </el-form-item>
@@ -90,8 +90,8 @@
                 </el-checkbox-group>
             </el-form-item>
             <el-form-item>
-                <el-button type="primary" @click="onSubmitPassword('registerForm')" size="small" :loading="loading">保存</el-button>
-                <el-button @click="onCancel('registerForm')" size="small">取消</el-button>
+                <el-button type="primary" @click="onSubmitPassword('registerFormUser')" size="small" :loading="loading">保存</el-button>
+                <el-button @click="onCancel('registerFormUser')" size="small">取消</el-button>
             </el-form-item>
         </el-form>
     </div>
@@ -163,6 +163,19 @@ export default {
             }
         }
     };
+    const validateName = (rule, value, callback) => {
+        if (value === '') {
+            callback(new Error('请输入用户名'));
+        } else {
+            let reg = /^[a-zA-Z0-9_]{1,20}$/;
+            let result = reg.test(value);
+            if (result) {
+                callback();
+            } else {
+                callback(new Error('不超过 20 位,可包含英文字符、数字、下划线'));
+            }
+        }
+    };
     return {
         provinceAndCityData,
         config: this.$route.query.headerConfig?decodeURIComponent(this.$route.query.headerConfig):'',
@@ -187,8 +200,8 @@ export default {
         },
         rulesRegister:{
             name:[
-                { required: true, message: '请输入用户名', trigger: 'blur' },
-                { max: 10, message: '用户名最多10位', trigger:'change' },
+                { required: true, validator: validateName, trigger: 'blur' },
+                { max: 20, message: '用户名最多20位', trigger:'change' },
             ],
             realName:[
                 { required: true, message: '请输入真实姓名', trigger: 'blur' },

+ 1 - 1
src/views/search/searchDetail.vue

@@ -59,7 +59,7 @@
                 <div class="search-item" v-for="(itemS,indexS) in searchList" :key="indexS" @click="handleLink(itemS)">
                     <el-image
                         :src="itemS.src"
-                        :fit="'contain'">
+                        :fit="'cover'">
                     </el-image>
                     <div class="search-inner">
                         <div class="top">