Ver Fonte

登录问题调整

敲代码的猫 há 1 mês atrás
pai
commit
623555147a

+ 1 - 1
src/api/screen/service.js

@@ -740,7 +740,7 @@ export function waterYear() {
     method: 'get'
   })
 }
-/*------------------大楼安防监控信息------------------*/
+/*------------------物业巡更信息------------------*/
 // 巡更次数统计(近6月)
 export function frequency() {
   return request({

BIN
src/assets/images/main/main_bg2.png


+ 33 - 24
src/utils/request.js

@@ -91,15 +91,26 @@ service.interceptors.request.use(config => {
 })
 
 // 响应拦截器
-service.interceptors.response.use(res => {
+service.interceptors.response.use(
+  res => {
     // 未设置状态码则默认成功状态
     const code = res.data.code || 200;
     // 获取错误信息
-    const msg = errorCode[code] || res.data.msg || errorCode['default']
+    const msg = errorCode[code] || res.data.msg || errorCode['default'];
     // 二进制数据则直接返回
-    if(res.request.responseType ===  'blob' || res.request.responseType ===  'arraybuffer'){
-      return res.data
+    if (res.request.responseType === 'blob' || res.request.responseType === 'arraybuffer') {
+      return res.data;
     }
+
+    // 判断是否为登录接口
+    if (res.config.url.includes('/login')) {
+      // 跳过登录接口的统一处理,交由业务逻辑处理
+      if (code !== 200) {
+        return Promise.reject(res.data); // 返回原始错误数据
+      }
+      return res.data;
+    }
+
     if (code === 401) {
       if (!isRelogin.show) {
         isRelogin.show = true;
@@ -107,31 +118,29 @@ service.interceptors.response.use(res => {
           confirmButtonText: '重新登录',
           cancelButtonText: '取消',
           type: 'warning'
-        }
-      ).then(() => {
-        isRelogin.show = false;
-        store.dispatch('LogOut').then(() => {
-          location.href = '/index';
-        })
-      }).catch(() => {
-        isRelogin.show = false;
-      });
-    }
-      return Promise.reject('无效的会话,或者会话已过期,请重新登录。')
+        }).then(() => {
+          isRelogin.show = false;
+          store.dispatch('LogOut').then(() => {
+            location.href = '/index';
+          });
+        }).catch(() => {
+          isRelogin.show = false;
+        });
+      }
+      return Promise.reject('无效的会话,或者会话已过期,请重新登录。');
     } else if (code === 500) {
-      // Message({
-      //   message: msg,
-      //   type: 'error'
-      // })
-      return res.data
-      // return Promise.reject(new Error(msg))
+      Message({
+        message: msg,
+        type: 'error'
+      });
+      return Promise.reject(res.data); // 返回原始错误数据
     } else if (code !== 200) {
       Notification.error({
         title: msg
-      })
-      return Promise.reject('error')
+      });
+      return Promise.reject('error');
     } else {
-      return res.data
+      return res.data;
     }
   },
   error => {

+ 33 - 24
src/utils/request2.js

@@ -91,15 +91,26 @@ service.interceptors.request.use(config => {
 })
 
 // 响应拦截器
-service.interceptors.response.use(res => {
+service.interceptors.response.use(
+  res => {
     // 未设置状态码则默认成功状态
     const code = res.data.code || 200;
     // 获取错误信息
-    const msg = errorCode[code] || res.data.msg || errorCode['default']
+    const msg = errorCode[code] || res.data.msg || errorCode['default'];
     // 二进制数据则直接返回
-    if(res.request.responseType ===  'blob' || res.request.responseType ===  'arraybuffer'){
-      return res.data
+    if (res.request.responseType === 'blob' || res.request.responseType === 'arraybuffer') {
+      return res.data;
     }
+
+    // 判断是否为登录接口
+    if (res.config.url.includes('/login')) {
+      // 跳过登录接口的统一处理,交由业务逻辑处理
+      if (code !== 200) {
+        return Promise.reject(res.data); // 返回原始错误数据
+      }
+      return res.data;
+    }
+
     if (code === 401) {
       if (!isRelogin.show) {
         isRelogin.show = true;
@@ -107,31 +118,29 @@ service.interceptors.response.use(res => {
           confirmButtonText: '重新登录',
           cancelButtonText: '取消',
           type: 'warning'
-        }
-      ).then(() => {
-        isRelogin.show = false;
-        store.dispatch('LogOut').then(() => {
-          location.href = '/index';
-        })
-      }).catch(() => {
-        isRelogin.show = false;
-      });
-    }
-      return Promise.reject('无效的会话,或者会话已过期,请重新登录。')
+        }).then(() => {
+          isRelogin.show = false;
+          store.dispatch('LogOut').then(() => {
+            location.href = '/index';
+          });
+        }).catch(() => {
+          isRelogin.show = false;
+        });
+      }
+      return Promise.reject('无效的会话,或者会话已过期,请重新登录。');
     } else if (code === 500) {
-      // Message({
-      //   message: msg,
-      //   type: 'error'
-      // })
-      return res.data
-      // return Promise.reject(new Error(msg))
+      Message({
+        message: msg,
+        type: 'error'
+      });
+      return Promise.reject(res.data); // 返回原始错误数据
     } else if (code !== 200) {
       Notification.error({
         title: msg
-      })
-      return Promise.reject('error')
+      });
+      return Promise.reject('error');
     } else {
-      return res.data
+      return res.data;
     }
   },
   error => {

+ 40 - 18
src/views/login.vue

@@ -128,29 +128,51 @@ export default {
       };
     },
     handleLogin() {
-      this.$refs.loginForm.validate(valid => {
-        if (valid) {
-          this.loading = true;
-          if (this.loginForm.rememberMe) {
-            Cookies.set("username", this.loginForm.username, { expires: 30 });
-            Cookies.set("password", encrypt(this.loginForm.password), { expires: 30 });
-            Cookies.set('rememberMe', this.loginForm.rememberMe, { expires: 30 });
+  this.$refs.loginForm.validate(valid => {
+    if (valid) {
+      this.loading = true;
+
+      // 设置记住密码逻辑
+      if (this.loginForm.rememberMe) {
+        Cookies.set("username", this.loginForm.username, { expires: 30 });
+        Cookies.set("password", encrypt(this.loginForm.password), { expires: 30 });
+        Cookies.set('rememberMe', this.loginForm.rememberMe, { expires: 30 });
+      } else {
+        Cookies.remove("username");
+        Cookies.remove("password");
+        Cookies.remove('rememberMe');
+      }
+
+      this.$store.dispatch("Login", this.loginForm)
+        .then(() => {
+          this.$router.push({ path: this.redirect || "/" }).catch(() => {});
+        })
+        .catch((error) => {
+          // 提取具体错误信息
+          let errorMsg;
+          if (error && error.msg) {
+            errorMsg = error.msg;
+          } else if (error && error.message) {
+            errorMsg = error.message;
           } else {
-            Cookies.remove("username");
-            Cookies.remove("password");
-            Cookies.remove('rememberMe');
+            errorMsg = '登录失败';
           }
-          this.$store.dispatch("Login", this.loginForm).then(() => {
-            this.$router.push({ path: this.redirect || "/" }).catch(()=>{});
-          }).catch(() => {
-            this.loading = false;
-            if (this.captchaEnabled) {
+          this.$message.error(errorMsg);
+          // 刷新验证码
+          if (this.captchaEnabled) {
+            try {
               this.getCode();
+            } catch (e) {
+              console.error('刷新验证码失败:', e);
             }
-          });
-        }
-      });
+          }
+        })
+        .finally(() => {
+          this.loading = false;
+        });
     }
+  });
+}
   }
 };
 </script>

+ 1 - 1
src/views/pad/building/buildingSave.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="main-data data-building-save">
-<!--    <div class="title-area">大楼安防监控信息</div>-->
+<!--    <div class="title-area">物业巡更信息</div>-->
     <div class="content-area">
       <div class="content-title">
         <span class="title">人员进出数据</span>

+ 1 - 1
src/views/pad/building/buildingSaveDialog.vue

@@ -4,7 +4,7 @@
       <img
         src="@/assets/images/main/cont_title_bg.png"
       />
-      <div class="title">大楼安防监控信息</div>
+      <div class="title">物业巡更信息</div>
     </div>
     <div class="dialog-cont">
       <div class="dialog-left">

+ 1 - 1
src/views/pad/building/main.vue

@@ -22,7 +22,7 @@
               src="@/assets/images/main/cont_title_bg.png"
               alt=""
             />
-            <div class="cont-title">大楼安防监控信息</div>
+            <div class="cont-title">物业巡更信息</div>
           </div>
           <div class="components-item bg3">
             <building-save :key="appOrg"></building-save>

+ 1 - 1
src/views/screen/building/buildingSave.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="main-data data-building-save">
-<!--    <div class="title-area">大楼安防监控信息</div>-->
+<!--    <div class="title-area">物业巡更信息</div>-->
     <div class="content-area">
       <div class="content-title">
         <span class="title">人员进出数据</span>

+ 1 - 1
src/views/screen/building/buildingSaveDialog.vue

@@ -4,7 +4,7 @@
       <img
         src="@/assets/images/main/cont_title_bg.png"
       />
-      <div class="title">大楼安防监控信息</div>
+      <div class="title">物业巡更信息</div>
     </div>
     <div class="dialog-cont">
       <div class="dialog-left">

+ 2 - 2
src/views/screen/building/main.vue

@@ -22,7 +22,7 @@
               src="@/assets/images/main/cont_title_bg.png"
               alt=""
             />
-            <div class="cont-title">大楼安防监控信息</div>
+            <div class="cont-title">物业巡更信息</div>
           </div>
           <div class="components-item bg3">
             <building-save :key="appOrg"></building-save>
@@ -450,7 +450,7 @@
               src="@/assets/images/main/cont_title_bg.png"
               alt=""
             />
-            <div class="cont-title">大楼安防监控信息</div>
+            <div class="cont-title">物业巡更信息</div>
           </div>
           <div class="components-item bg3">
             <unit-monitor :key="appOrg"></unit-monitor>

+ 1 - 1
src/views/screen/building/unitMonitorDialog.vue

@@ -4,7 +4,7 @@
       <img
         src="@/assets/images/main/cont_title_bg.png"
       />
-      <div class="title">大楼安防监控信息</div>
+      <div class="title">物业巡更信息</div>
     </div>
     <div class="dialog-cont">
       <div class="dialog-left">

+ 2 - 2
src/views/screen/main.vue

@@ -230,9 +230,9 @@ export default {
   height: 100vh;
   overflow: hidden;
   position: relative;
-  background-image: url("../../assets/images/main/main_bg.jpg");
+  background-image: url("../../assets/images/main/main_bg2.png");
   background-size: cover;
-  // filter: brightness(140%);
+  //  
   .main-wrapper {
     width: 1920px;
     height: 1080px;

+ 1 - 1
src/views/screen/map/asset.vue

@@ -635,7 +635,7 @@
                 } else if (childs.value == "1A001" || childs.value == "1A002") {
                   //直属单位
                   symbol =
-                    "image://" + require("@/assets/images/main/map/zhishu.png");
+                    "image://" + require("@/assets/images/main/map/zhishu.png");``
                     lines.push({
                           coords: [
                           childs.poi,