From 84ad5590bafc58e17ebcf7ebdce2cd70c0c22ea9 Mon Sep 17 00:00:00 2001
From: heyujie <516346543@qq.com>
Date: 星期五, 24 九月 2021 18:54:56 +0800
Subject: [PATCH] 日期时间新版

---
 src/pages/index/App.vue |  168 ++++++++++++++++++++++++++++++++++++++------------------
 1 files changed, 114 insertions(+), 54 deletions(-)

diff --git a/src/pages/index/App.vue b/src/pages/index/App.vue
index a3b5f16..2a3a431 100644
--- a/src/pages/index/App.vue
+++ b/src/pages/index/App.vue
@@ -3,6 +3,9 @@
     <div class="web-site">
       <a href="http://www.smartai.com" target="_blank">www.smartai.com</a>
     </div>
+
+    <!-- 鎺堟潈淇℃伅 -->
+    <lang-select class="lang-select"/>
     <licence />
     <div class="right-bg" style>
       <particle-network />
@@ -12,7 +15,7 @@
         <img src="/images/login-logo.png" alt width="105px" height="105px" />
       </div>
       <div class="login-com">
-        <span>鍖椾含璐濇�濈鎶�鏈湁闄愬叕鍙�</span>
+        <span>{{ $t('login.company') }}</span>
       </div>
       <div class="login-form">
         <el-form
@@ -24,7 +27,7 @@
           class="demo-ruleForm"
         >
           <el-form-item prop="loginName">
-            <el-input v-model="user.loginName" style="width:280px" placeholder="璇疯緭鍏ョ敤鎴峰悕">
+            <el-input v-model="user.loginName" style="width:280px" :placeholder="$t('placeholder.enterUsername')">
               <i slot="prefix" class="iconfont iconyonghu1"></i>
             </el-input>
           </el-form-item>
@@ -35,25 +38,35 @@
               v-model="user.password"
               autocomplete="off"
               style="width:280px"
-              placeholder="璇疯緭鍏ュ瘑鐮�"
+              :placeholder="$t('placeholder.enterPassword')"
             >
               <i slot="prefix" class="iconfont iconmima"></i>
             </el-input>
           </el-form-item>
           <el-form-item>
-            <el-button ref="submit" type="warning" @click="systemLogin()" style="width:280px">鐧诲綍</el-button>
+            <el-button ref="submit" type="warning" @click="systemLogin()" style="width:280px">{{ $t('button.login') }}</el-button>
           </el-form-item>
         </el-form>
       </div>
-      <p class="gradient-text gradient-text-one">鈥斺�斺�� {{serverTitle || 'SmartAI 鈥� ReID'}} 鈥斺�斺��</p>
+      <!-- <p class="gradient-text gradient-text-one">鈥斺�斺�� {{serverTitle || 'SmartAI 鈥� ReID'}} 鈥斺�斺��</p> -->
+      <p class="gradient-text gradient-text-one">
+        鈥斺��
+        <b>SmartAI</b> {{ $t('login.aios') }} 鈥斺��
+      </p>
+      <p
+        class="gradient-text gradient-text-one"
+        style="letter-spacing: 1.8px;font-size:15px;"
+      >V1.0.0</p>
     </div>
   </div>
 </template>
 
 <script>
-import { tologin, getLoginUserData, getServerName } from './api.ts'
+import { tologin, getLoginUserData, getServerName } from './api.ts';
 import ParticleNetwork from './ParticleNetwork'
 import Licence from '@/components/licence'
+import LangSelect from '@/components/langSelect'
+import { getMenuListData } from "@/api/utils";
 
 export default {
   name: 'login-pgae',
@@ -62,7 +75,16 @@
   },
   components: {
     ParticleNetwork,
-    Licence
+    Licence,
+    LangSelect
+  },
+  computed: {
+    rules() {
+      return {
+        loginName: [{ required: true, message: this.$t('placeholder.enterUsername'), trigger: 'change' } ],
+        password: [{ required: true, message: this.$t('placeholder.enterPassword'), trigger: 'change' }]
+        }
+    },
   },
   data: () => ({
     serverTitle: "",
@@ -72,18 +94,47 @@
       rememberMe: false
     },
     nullRule: {},
-    rules: {
-      loginName: [
-        { required: true, message: '璇疯緭鍏ョ敤鎴峰悕', trigger: 'change' }
-      ],
-      password: [{ required: true, message: '璇疯緭鍏ュ瘑鐮�', trigger: 'change' }]
-    },
+
     loading: '',
     vLoading: false,
     currentHeight: 1057,
     currentWidth: 1920
   }),
+  created() {
+    this.getServerName()
+    this.getScreenHeight()
+  },
+  mounted() {
+    // 鑷姩鐧诲綍鎺ュ彛
+    this.loginRobot();
+  },
+  watch: {},
+  beforeDestroy() {
+    window.onresize = null
+  },
   methods: {
+    loginRobot() {
+      // 瑙f瀽璺敱鍙傛暟锛屽苟缂撳瓨
+      let user = this.getQueryVariable("username");
+      let passwd = this.getQueryVariable("password");
+      if (user.length && passwd.length) {
+        sessionStorage.setItem("autoLogin", JSON.stringify({ username: user, passwd: passwd }));
+
+        this.user.loginName = user;
+        this.user.password = passwd;
+        this.systemLogin();
+        return;
+      }
+
+      // 鐧婚檰瓒呮椂鍚庣殑閲嶆柊鐧婚檰
+      let sessionInfo = sessionStorage.getItem('autoLogin');
+      if (sessionInfo) {
+        let authority = JSON.parse(sessionInfo);
+        this.user.loginName = authority.username;
+        this.user.password = authority.passwd;
+        this.systemLogin();
+      }
+    },
     systemLogin() {
       this.nullRule = this.rules
       this.$nextTick(() => {
@@ -96,7 +147,6 @@
               background: 'rgba(0, 0, 0, 0.7)'
             })
             this.testLogin()
-            // return false
           } else {
             this.nullRule = {}
           }
@@ -105,9 +155,9 @@
       })
     },
     async testLogin() {
+      // location.assign("/view/desktop/")
       tologin({ username: this.user.loginName, password: this.user.password })
         .then(json => {
-          // console.log(json, "鐧诲綍璇锋眰");
           const loginedInfo = {
             access_token: json.token_type + ' ' + json.access_token,
             refresh_token: json.refresh_token
@@ -118,55 +168,41 @@
           this.getLoginUserData()
         })
         .catch(err => {
-          // console.log(err, "鐧诲綍鎶ラ敊");
           this.loading.close()
           this.$notify({
             title: '鎻愮ず',
             type: 'error',
-            message: err
+            message: err.msg
           })
           this.$refs.pwd.focus()
         })
     },
     async getLoginUserData() {
-      let json = await getLoginUserData()
-      if (!json.error) {
-        // this.loading.close()
-        sessionStorage.setItem('userInfo', JSON.stringify(json))
-        this.$notify({
-          title: '鎻愮ず',
-          type: 'success',
-          message: '鐧诲綍鎴愬姛锛�'
-        })
-        // await this.getMenuList()
-        // this.$router.push('/Layout/Video')
+      let res = await getLoginUserData()
+      if (res.success) {
+        sessionStorage.setItem('userInfo', JSON.stringify(res.data))
+        this.$notify.success("鐧诲綍鎴愬姛锛�")
+        // 鑾峰彇鏉冮檺
+        await this.getMenuList()
         location.assign("/view/desktop/")
-        return json
+        return res.data
       } else {
-        this.$notify({
-          title: '鎻愮ず',
-          type: 'error',
-          message: '鐧诲綍澶辫触锛�'
-        })
-        // this.loading.close()
+        this.$notify.error("鐧诲綍澶辫触锛�")
       }
     },
 
     getScreenHeight() {
       this.currentHeight = document.documentElement.clientHeight
       this.currentWidth = document.documentElement.clientWidth
-      // console.log(this.currentHeight, "褰撳墠绐楀彛澶у皬");
       window.onresize = () => {
         this.currentHeight = document.documentElement.clientHeight
         this.currentWidth = document.documentElement.clientWidth
-        // console.log(this.currentHeight, "褰撳墠绐楀彛澶у皬2", this.currentWidth);
         this.$forceUpdate()
       }
     },
     async getServerName() {
       let res = await getServerName()
       if (res && res.success) {
-        console.log(res.data.serverName)
         this.serverTitle = res.data.serverName
         window.document.title = res.data.serverName
           ? res.data.serverName
@@ -174,18 +210,33 @@
         sessionStorage.setItem('title', res.data.serverName)
       }
     },
+    async getMenuList() {
+      let results = await getMenuListData({});
+      if (results && results.success) {
+        /* 瀛樺偍鏉冮檺 */
+        let buttonAuthoritys = results.data;
+        if (results && results.length && this.$route.query.is_login) {
+          this.$router.replace(results[0].url);
+        }
+        sessionStorage.setItem("buttonAuthoritys", "," + buttonAuthoritys + ",");
+        sessionStorage.setItem("menuInfo", JSON.stringify(results));
+      } else {
+        this.$toast({
+          type: "error",
+          message: "鑿滃崟鑾峰彇澶辫触"
+        });
+      }
+    },
+    getQueryVariable(variable) {
+      var query = window.location.search.substring(1);
+      var vars = query.split("&");
+      for (var i = 0; i < vars.length; i++) {
+        var pair = vars[i].split("=");
+        if (pair[0] == variable) { return pair[1]; }
+      }
+      return (false);
+    }
   },
-  created() {
-    this.getServerName()
-    this.getScreenHeight()
-  },
-  mounted(){
-    console.log(this.serverTitle)
-  },
-  watch: {},
-  beforeDestroy() {
-    window.onresize = null
-  }
 }
 </script>
 <style lang="scss">
@@ -216,12 +267,19 @@
   color: #6170e1;
   letter-spacing: 6.15px;
 }
+.lang-select {
+  float: right;
+  color: white !important;
+  font-size: 14px;
+  margin: 13px;
+  cursor: pointer;
+}
 .left-bg {
   position: absolute;
-  top: 30%;
+  top: 29%;
   right: 18%;
   width: 390px;
-  height: 402px;
+  height: 426px;
   background: rgba(146, 208, 255, 0.23);
   border-radius: 4px;
   text-align: center;
@@ -238,14 +296,16 @@
   }
   .login-form {
     margin: 40px 10px;
-    // margin: 24px 10px 40px 10px;
   }
   .gradient-text {
-    line-height: 50px;
-    font-size: 20px;
+    line-height: 36px;
+    font-size: 17px;
     font-family: -webkit-pictograph;
     font-weight: bolder;
     position: relative;
+    b {
+      font-size: 20px;
+    }
   }
   .gradient-text-one {
     background-image: linear-gradient(to right, #51feff 5%, #ff8725 100%);

--
Gitblit v1.8.0