From fef9871c3efaa8ba8f1c4ba09cd3cc8f55a6351d Mon Sep 17 00:00:00 2001
From: chenhaozhe <cgz@hz-kingdee.com>
Date: 星期四, 20 十一月 2025 14:31:10 +0800
Subject: [PATCH] 调整页面显示信息, 修复部分模块选中时会出现两个页签的问题

---
 src/views/login.vue |  229 ++++++++++++++++++++++++++++++++++----------------------
 1 files changed, 139 insertions(+), 90 deletions(-)

diff --git a/src/views/login.vue b/src/views/login.vue
index 5eed124..2a9a43f 100644
--- a/src/views/login.vue
+++ b/src/views/login.vue
@@ -1,48 +1,92 @@
 <template>
   <div class="login">
     <el-form ref="loginForm" :model="loginForm" :rules="loginRules" class="login-form">
-      <h3 class="title" v-if="!loginForm.HLogoLabel"> 鏅轰簯杩堟�滾-MOM绠$悊绯荤粺</h3>
+      <h3 class="title" v-if="!loginForm.HLogoLabel">鏅轰簯杩堟�滾-MOM绠$悊绯荤粺</h3>
       <h3 class="title" v-else>{{ loginForm.HLogoLabel }}</h3>
       <el-form-item label="璇█">
-        <el-select v-model="loginForm.HTranSlate" :placeholder="languageSel" @change="languageChange">
-          <el-option v-for="item in tranSlateList" :key="item.value" :label="item.label" :value="item.value">
+        <el-select
+          v-model="loginForm.HTranSlate"
+          :placeholder="languageSel"
+          @change="languageChange"
+        >
+          <el-option
+            v-for="item in tranSlateList"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value"
+          >
           </el-option>
         </el-select>
       </el-form-item>
       <el-form-item label="缁勭粐">
         <el-select v-model="loginForm.HOrgName" placeholder="璇烽�夋嫨" @change="OrgChange">
-          <el-option v-for="item in organizationList" :key="item.ID" :label="item.Name" :value="item.ID">
+          <el-option
+            v-for="item in organizationList"
+            :key="item.ID"
+            :label="item.Name"
+            :value="item.ID"
+          >
           </el-option>
         </el-select>
       </el-form-item>
       <el-form-item prop="username">
-        <el-input v-model="loginForm.username" type="text" auto-complete="off" placeholder="璐﹀彿">
+        <el-input
+          v-model="loginForm.username"
+          type="text"
+          auto-complete="off"
+          placeholder="璐﹀彿"
+        >
           <svg-icon slot="prefix" icon-class="user" class="el-input__icon input-icon" />
         </el-input>
       </el-form-item>
       <el-form-item prop="password">
-        <el-input v-model="loginForm.password" type="password" auto-complete="off" placeholder="瀵嗙爜"
-          @keyup.enter.native="handleLogin">
-          <svg-icon slot="prefix" icon-class="password" class="el-input__icon input-icon" />
+        <el-input
+          v-model="loginForm.password"
+          type="password"
+          auto-complete="off"
+          placeholder="瀵嗙爜"
+          @keyup.enter.native="handleLogin"
+        >
+          <svg-icon
+            slot="prefix"
+            icon-class="password"
+            class="el-input__icon input-icon"
+          />
         </el-input>
       </el-form-item>
       <el-form-item prop="code" v-if="captchaEnabled">
-        <el-input v-model="loginForm.code" auto-complete="off" placeholder="楠岃瘉鐮�" style="width: 63%"
-          @keyup.enter.native="handleLogin">
-          <svg-icon slot="prefix" icon-class="validCode" class="el-input__icon input-icon" />
+        <el-input
+          v-model="loginForm.code"
+          auto-complete="off"
+          placeholder="楠岃瘉鐮�"
+          style="width: 63%"
+          @keyup.enter.native="handleLogin"
+        >
+          <svg-icon
+            slot="prefix"
+            icon-class="validCode"
+            class="el-input__icon input-icon"
+          />
         </el-input>
         <div class="login-code">
           <img :src="codeUrl" @click="getCode" class="login-code-img" />
         </div>
       </el-form-item>
-      <el-checkbox v-model="loginForm.rememberMe" style="margin:0px 0px 25px 0px;">璁颁綇瀵嗙爜</el-checkbox>
-      <el-form-item style="width:100%;">
-        <el-button :loading="loading" size="medium" type="primary" style="width:100%;"
-          @click.native.prevent="handleLogin">
+      <el-checkbox v-model="loginForm.rememberMe" style="margin: 0px 0px 25px 0px"
+        >璁颁綇瀵嗙爜</el-checkbox
+      >
+      <el-form-item style="width: 100%">
+        <el-button
+          :loading="loading"
+          size="medium"
+          type="primary"
+          style="width: 100%"
+          @click.native.prevent="handleLogin"
+        >
           <span v-if="!loading">鐧� 褰�</span>
           <span v-else>鐧� 褰� 涓�...</span>
         </el-button>
-        <div style="float: right;" v-if="register">
+        <div style="float: right" v-if="register">
           <router-link class="link-type" :to="'/register'">绔嬪嵆娉ㄥ唽</router-link>
         </div>
       </el-form-item>
@@ -55,18 +99,22 @@
 </template>
 
 <script>
-import { getCodeImg, getOrganizations, webBaseInfo, webGetDataBases } from "@/api/login"
-import Cookies from "js-cookie"
-import { encrypt, decrypt } from '@/utils/jsencrypt'
+import { getCodeImg, getOrganizations, webBaseInfo, webGetDataBases } from "@/api/login";
+import Cookies from "js-cookie";
+import { encrypt, decrypt } from "@/utils/jsencrypt";
 
 export default {
   name: "Login",
   data() {
     return {
-      tranSlateList: [{ label: '涓枃', value: '1' }, { label: 'Eeglish', value: '2' }, { label: 'Spanish', value: '3' },],
+      tranSlateList: [
+        { label: "涓枃", value: "1" },
+        { label: "Eeglish", value: "2" },
+        { label: "Spanish", value: "3" },
+      ],
       tranData: {},
-      languageSel: '璇█',
-      organizationList: [],//缁勭粐鍒楄〃
+      languageSel: "璇█",
+      organizationList: [], //缁勭粐鍒楄〃
       title: process.env.VUE_APP_TITLE,
       codeUrl: "",
       loginForm: {
@@ -76,47 +124,42 @@
         HOrgName: 1,
         code: "",
         uuid: "",
-        HTranSlate: '1',
-        HLogoLabel: '鏅轰簯杩堟�滾-MOM绠$悊绯荤粺',
+        HTranSlate: "1",
+        HLogoLabel: "鏅轰簯杩堟�滾-MOM绠$悊绯荤粺",
         HMenuLabel: null,
         HCusName: null,
         Organization: null,
       },
       loginRules: {
-        username: [
-          { required: true, trigger: "blur", message: "璇疯緭鍏ユ偍鐨勮处鍙�" }
-        ],
-        password: [
-          { required: true, trigger: "blur", message: "璇疯緭鍏ユ偍鐨勫瘑鐮�" }
-        ],
-        code: [{ required: true, trigger: "change", message: "璇疯緭鍏ラ獙璇佺爜" }]
+        username: [{ required: true, trigger: "blur", message: "璇疯緭鍏ユ偍鐨勮处鍙�" }],
+        password: [{ required: true, trigger: "blur", message: "璇疯緭鍏ユ偍鐨勫瘑鐮�" }],
+        code: [{ required: true, trigger: "change", message: "璇疯緭鍏ラ獙璇佺爜" }],
       },
       loading: false,
       // 楠岃瘉鐮佸紑鍏�
       captchaEnabled: false,
       // 娉ㄥ唽寮�鍏�
       register: false,
-      redirect: undefined
-    }
+      redirect: undefined,
+    };
   },
   watch: {
     $route: {
       handler: function (route) {
-        this.redirect = route.query && route.query.redirect
+        this.redirect = route.query && route.query.redirect;
       },
-      immediate: true
-    }
+      immediate: true,
+    },
   },
   created() {
     // this.getCode()
-    this.getInfoData()
-    this.getCookie()    
+    this.getInfoData();
+    this.getCookie();
   },
   methods: {
-   
     //璇█鐨勯�夋嫨
     languageChange() {
-      this.loginForm.HCusName = this.tranData.HCusName
+      this.loginForm.HCusName = this.tranData.HCusName;
       if (this.loginForm.HTranSlate == "1" || !this.loginForm.HTranSlate) {
         this.loginForm.HLogoLabel = this.tranData.HLogoLabel;
         this.loginForm.HMenuLabel = this.tranData.HMenuLabel;
@@ -129,94 +172,100 @@
       }
     },
     OrgChange(val) {
-      this.organizationList.map(item => {
+      this.organizationList.map((item) => {
         if (item.ID == val) {
-          this.loginForm.Organization = item.Name
+          this.loginForm.Organization = item.Name;
         }
-      })
+      });
     },
     //鏁版嵁
     getInfoData() {
       //缁勭粐鍒楄〃
-      getOrganizations().then(res => {
+      getOrganizations().then((res) => {
         if (res.count == 1) {
-          this.organizationList = res.data
+          this.organizationList = res.data;
           sessionStorage[this.organizationList] = res.data;
           this.$nextTick(() => {
-            this.OrgChange(this.loginForm.HOrgName)
-          })
+            this.OrgChange(this.loginForm.HOrgName);
+          });
         }
-      })
+      });
       //璇█
-      webBaseInfo().then(res => {
+      webBaseInfo().then((res) => {
         if (res.count == 1) {
           this.tranData = res.data[0];
           this.$nextTick(() => {
-            this.languageChange()
-          })
+            this.languageChange();
+          });
         }
-      })
+      });
       //鏁版嵁搴�
-      webGetDataBases().then(res => {
+      webGetDataBases().then((res) => {
         if (res.count == 1) {
-          sessionStorage["鏁版嵁搴�"] = res.data[0].Name
+          sessionStorage["鏁版嵁搴�"] = res.data[0].Name;
         }
-      })
+      });
     },
     getCode() {
-      getCodeImg().then(res => {
-        this.captchaEnabled = res.captchaEnabled === undefined ? true : res.captchaEnabled
+      getCodeImg().then((res) => {
+        this.captchaEnabled =
+          res.captchaEnabled === undefined ? true : res.captchaEnabled;
         if (this.captchaEnabled) {
-          this.codeUrl = "data:image/gif;base64," + res.img
-          this.loginForm.uuid = res.uuid
+          this.codeUrl = "data:image/gif;base64," + res.img;
+          this.loginForm.uuid = res.uuid;
         }
-      })
+      });
     },
     getCookie() {
-      const username = Cookies.get("username")
-      const password = Cookies.get("password")
-      const HOrgName = Cookies.get('HOrgName')
-      const HTranSlate = Cookies.get('HTranSlate')
-      const rememberMe = Cookies.get('rememberMe')
+      const username = Cookies.get("username");
+      const password = Cookies.get("password");
+      const HOrgName = Cookies.get("HOrgName");
+      const HTranSlate = Cookies.get("HTranSlate");
+      const rememberMe = Cookies.get("rememberMe");
       this.loginForm = {
         HOrgName: HOrgName === undefined ? this.loginForm.HOrgName - 0 : HOrgName - 0,
         username: username === undefined ? this.loginForm.username : username,
         password: password === undefined ? this.loginForm.password : decrypt(password),
         HTranSlate: HTranSlate === undefined ? this.loginForm.HTranSlate : HTranSlate,
-        rememberMe: rememberMe === undefined ? false : Boolean(rememberMe)
-      }
+        rememberMe: rememberMe === undefined ? false : Boolean(rememberMe),
+      };
     },
     handleLogin() {
-      this.$refs.loginForm.validate(valid => {
+      this.$refs.loginForm.validate((valid) => {
         if (valid) {
-          this.loading = true
+          this.loading = true;
           if (this.loginForm.rememberMe) {
-            Cookies.set("HTranSlate", this.loginForm.HTranSlate, { expires: 30 })
-            Cookies.set("HOrgName", this.loginForm.HOrgName, { expires: 30 })
-            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 })
+            Cookies.set("HTranSlate", this.loginForm.HTranSlate, { expires: 30 });
+            Cookies.set("HOrgName", this.loginForm.HOrgName, { expires: 30 });
+            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("HTranSlate")
-            Cookies.remove("HOrgName")
-            Cookies.remove("username")
-            Cookies.remove("password")
-            Cookies.remove('rememberMe')
+            Cookies.remove("HTranSlate");
+            Cookies.remove("HOrgName");
+            Cookies.remove("username");
+            Cookies.remove("password");
+            Cookies.remove("rememberMe");
           }
 
-          this.$store.dispatch("Login", this.loginForm).then(res => {
-            this.$router.push({ path: this.redirect || "/" }).catch(() => { })
-          }).catch(() => {
-            this.loading = false
-            if (this.captchaEnabled) {
-              this.getCode()
-            }
-          })
+          this.$store
+            .dispatch("Login", this.loginForm)
+            .then((res) => {
+              this.$router.push({ path: this.redirect || "/" }).catch((err) => {
+                console.error(err);
+              });
+            })
+            .catch(() => {
+              this.loading = false;
+              if (this.captchaEnabled) {
+                this.getCode();
+              }
+            });
         }
-      })
-    }
+      });
+    },
   },
-}
+};
 </script>
 
 <style rel="stylesheet/scss" lang="scss">

--
Gitblit v1.9.1