wangtao 2 роки тому
батько
коміт
c99ce50212
2 змінених файлів з 119 додано та 78 видалено
  1. 45 36
      src/utils/jsencrypt.js
  2. 74 42
      src/views/index/index.vue

+ 45 - 36
src/utils/jsencrypt.js

@@ -1,37 +1,46 @@
-import JSEncrypt from 'jsencrypt/bin/jsencrypt.min'
-
-// 密钥对生成 http://web.chacuo.net/netrsakeypair
-
-const publicKey = 'MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKoR8mX0rGKLqzcWmOzbfj64K8ZIgOdH\n' +
-    'nzkXSOVOZbFu/TJhZ7rFAN+eaGkl3C4buccQd/EjEsj9ir7ijT7h96MCAwEAAQ=='
-
-const publicKey2 = 'MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBANL378k3RiZHWx5AfJqdH9xRNBmD9wGD2iRe41HdTNF8RUhNnHit5NpMNtGL0NPTSSpPjjI1kJfVorRvaQerUgkCAwEAAQ=='
-
-const privateKey = 'MIIBVAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE6AgEAAkEAqhHyZfSsYourNxaY\n' +
-    '7Nt+PrgrxkiA50efORdI5U5lsW79MmFnusUA355oaSXcLhu5xxB38SMSyP2KvuKN\n' +
-    'PuH3owIDAQABAkAfoiLyL+Z4lf4Myxk6xUDgLaWGximj20CUf+5BKKnlrK+Ed8gA\n' +
-    'kM0HqoTt2UZwA5E2MzS4EI2gjfQhz5X28uqxAiEA3wNFxfrCZlSZHb0gn2zDpWow\n' +
-    'cSxQAgiCstxGUoOqlW8CIQDDOerGKH5OmCJ4Z21v+F25WaHYPxCFMvwxpcw99Ecv\n' +
-    'DQIgIdhDTIqD2jfYjPTY8Jj3EDGPbH2HHuffvflECt3Ek60CIQCFRlCkHpi7hthh\n' +
-    'YhovyloRYsM+IS9h/0BzlEAuO0ktMQIgSPT3aFAgJYwKpqRYKlLDVcflZFCKY7u3\n' +
-    'UP8iWi1Qw0Y='
-
-// 加密
-export function encrypt(txt) {
-    const encryptor = new JSEncrypt()
-    encryptor.setPublicKey(publicKey) // 设置公钥
-    return encryptor.encrypt(txt) // 对数据进行加密
-}
-// 加密2
-export function encrypt2(txt) {
-    const encryptor = new JSEncrypt()
-    encryptor.setPublicKey(publicKey2) // 设置公钥
-    return encryptor.encrypt(txt) // 对数据进行加密
-}
-
-// 解密
-export function decrypt(txt) {
-    const encryptor = new JSEncrypt()
-    encryptor.setPrivateKey(privateKey) // 设置私钥
-    return encryptor.decrypt(txt) // 对数据进行解密
+import JSEncrypt from 'jsencrypt/bin/jsencrypt.min'
+
+// 密钥对生成 http://web.chacuo.net/netrsakeypair
+
+const publicKey = 'MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKoR8mX0rGKLqzcWmOzbfj64K8ZIgOdH\n' +
+    'nzkXSOVOZbFu/TJhZ7rFAN+eaGkl3C4buccQd/EjEsj9ir7ijT7h96MCAwEAAQ=='
+
+const publicKey2 = 'MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBANL378k3RiZHWx5AfJqdH9xRNBmD9wGD2iRe41HdTNF8RUhNnHit5NpMNtGL0NPTSSpPjjI1kJfVorRvaQerUgkCAwEAAQ=='
+
+const privateKey = 'MIIBVAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE6AgEAAkEAqhHyZfSsYourNxaY\n' +
+    '7Nt+PrgrxkiA50efORdI5U5lsW79MmFnusUA355oaSXcLhu5xxB38SMSyP2KvuKN\n' +
+    'PuH3owIDAQABAkAfoiLyL+Z4lf4Myxk6xUDgLaWGximj20CUf+5BKKnlrK+Ed8gA\n' +
+    'kM0HqoTt2UZwA5E2MzS4EI2gjfQhz5X28uqxAiEA3wNFxfrCZlSZHb0gn2zDpWow\n' +
+    'cSxQAgiCstxGUoOqlW8CIQDDOerGKH5OmCJ4Z21v+F25WaHYPxCFMvwxpcw99Ecv\n' +
+    'DQIgIdhDTIqD2jfYjPTY8Jj3EDGPbH2HHuffvflECt3Ek60CIQCFRlCkHpi7hthh\n' +
+    'YhovyloRYsM+IS9h/0BzlEAuO0ktMQIgSPT3aFAgJYwKpqRYKlLDVcflZFCKY7u3\n' +
+    'UP8iWi1Qw0Y='
+
+const privateKey3 = 'MIIBVAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE6AgEAAkEAqhHyZfSsYourNxaY\n' +
+    '7Nt+PrgrxkiA50efORdI5U5lsW79MmFnusUA355oaSXcLhu5xxB38SMSyP2KvuKN\n' +
+    'PuH3owIDAQABAkAfoiLyL+Z4lf4Myxk6xUDgLaWGximj20CUf+5BKKnlrK+Ed8gA\n' +
+    'kM0HqoTt2UZwA5E2MzS4EI2gjfQhz5X28uqxAiEA3wNFxfrCZlSZHb0gn2zDpWow\n' +
+    'cSxQAgiCstxGUoOqlW8CIQDDOerGKH5OmCJ4Z21v+F25WaHYPxCFMvwxpcw99Ecv\n' +
+    'DQIgIdhDTIqD2jfYjPTY8Jj3EDGPbH2HHuffvflECt3Ek60CIQCFRlCkHpi7hthh\n' +
+    'YhovyloRYsM+IS9h/0BzlEAuO0ktMQIgSPT3aFAgJYwKpqRYKlLDVcflZFCKY7u3\n' +
+    'UP8iWi1Qw0Y='
+
+// 加密
+export function encrypt(txt) {
+    const encryptor = new JSEncrypt()
+    encryptor.setPublicKey(publicKey) // 设置公钥
+    return encryptor.encrypt(txt) // 对数据进行加密
+}
+// 加密2
+export function encrypt2(txt) {
+    const encryptor = new JSEncrypt()
+    encryptor.setPublicKey(publicKey2) // 设置公钥
+    return encryptor.encrypt(txt) // 对数据进行加密
+}
+
+// 解密
+export function decrypt(txt) {
+    const encryptor = new JSEncrypt()
+    encryptor.setPrivateKey(privateKey) // 设置私钥
+    return encryptor.decrypt(txt) // 对数据进行解密
 }

+ 74 - 42
src/views/index/index.vue

@@ -17,7 +17,7 @@
 import axios from "axios";
 import { Toast } from "vant";
 import Cookies from "js-cookie";
-import { encrypt, encrypt2, decrypt } from "../../utils/jsencrypt";
+import { encrypt,  decrypt } from "../../utils/jsencrypt";
 import weather from "@/components/weather";
 import record from "@/components/record";
 import loadingSZ from "@/components/loadingSZ";
@@ -34,14 +34,12 @@ export default {
   },
   created() {
     var url = window.location.href;
-    if (url.indexOf("token") > 1) {
+    if (url.indexOf("userName") > 1) {
+      //("公众号进入")
+      this.userQuery();
+    }else if (url.indexOf("token") > 1) {
       //("app进入")
-      if (this.getQueryVariable("token")) {
-        this.userQuery();
-      } else {
-        //console.log("app进入")
-        Toast(this.getQueryVariable("无token传入!"));
-      }
+      this.userQuery();
     }else if(Cookies.get("tokenMT")){
       this.userQuery()
     }else{
@@ -50,44 +48,78 @@ export default {
   },
   mounted() {},
   methods: {
-    getQueryVariable(variable){//参数获取
-      //window.location.search.substring(1);
-      var query = window.location.hash.substring(3);
-      var vars = query.split("&");
-      for (var i=0;i<vars.length;i++) {
-        let pair = vars[i].split("=");
-        return pair[1];
-      }
-      return(false);
-    },
     //用户查询
     userQuery(){
-      let token = undefined
-      if(this.getQueryVariable("token")){
-        token = this.getQueryVariable("token")
+      if(JSON.stringify(this.$route.query) != "{}"){
+        if(this.$route.query.passWord  && this.$route.query.userName ){
+          let userName = decrypt(this.$route.query.userName)
+          let passWord = decrypt(this.$route.query.passWord)
+          axios.get(`https://smartpark.caih.com/zkxt/api/thirdparty/v1/user/appLogin?name=${userName}&pass=${passWord}`).then(res => {
+            if (res?.data?.data?.data?.cipher) {
+              let data = res.data.data.data
+              //人员种类(00-正式人员、01-外协单位、02-租户)
+              if(data.user.dmUser.type == "00"){
+                //Toast('请使用"中国东信APP查看功能"')
+                  Cookies.set("usernameMT", userName, { expires: 300 });
+                  Cookies.set("passwordMT", encrypt(passWord), { expires: 300 });
+                  Cookies.set("userIdMT", data.user.id, { expires: 300 });
+                  Cookies.set("tokenMT", data.cipher, { expires: 300 });
+                  Cookies.set("nonceMT", data.nonce, { expires: 300 });
+                  Cookies.set("timestampMT", data.timestamp, { expires: 300 });
+                  this.loadingErp = true
+              }else if(data.user.dmUser.type == "01"){
+                if(data.user.dmUser.status == false){
+                  Toast("离职人员,暂无权限")
+                  this.$router.push({ path: "/login"})
+                  return
+                }else{
+                  Cookies.set("usernameMT", userName, { expires: 300 });
+                  Cookies.set("passwordMT", encrypt(passWord), { expires: 300 });
+                  Cookies.set("userIdMT", data.user.id, { expires: 300 });
+                  Cookies.set("tokenMT", data.token, { expires: 300 });
+                  Cookies.set("nonceMT", data.nonce, { expires: 300 });
+                  Cookies.set("timestampMT", data.timestamp, { expires: 300 });
+                  this.loadingErp = true
+                }
+              }else if(data.user.dmUser.type == "02"){
+                Toast("暂无权限")
+                this.$router.push({ path: "/login"})
+              }else{
+                this.$router.push({ path: "/login"})
+              }
+            } 
+          }).catch(err =>{
+            Toast(err.response.data.message)
+          })
+        }else{
+          Toast('参数异常')
+          this.$router.push({ path: "/login"})
+        }
+       
       }else{
-        token = Cookies.get("tokenMT")
+        let token = Cookies.get("tokenMT")
+        axios({//查询信息
+          method: 'get',
+          url: 'https://smartpark.caih.com/zkxt/api/thirdparty/v1/user/getZkUserByCipher?cipher=' + token,
+          timeout: 10000,
+        }).then(res =>{
+          if(res.data?.data?.id){
+            this.loadingErp = true
+          }
+        }).catch(err =>{
+          Cookies.remove("usernameMT");
+          Cookies.remove("rememberMeMT");
+          Cookies.remove("passwordMT");
+          Cookies.remove("userIdMT");
+          Cookies.remove("tokenMT");
+          Cookies.remove("nonceMT");
+          Cookies.remove("timestampMT");
+          this.loadingErp = false
+          this.userNoAlert(err.response.data.message)
+          this.$router.push({ path: "/login"})
+        });
       }
-      axios({//查询信息
-        method: 'get',
-        url: 'https://smartpark.caih.com/zkxt/api/thirdparty/v1/user/getZkUserByCipher?cipher=' + token,
-        timeout: 10000,
-      }).then(res =>{
-        if(res.data?.data?.id){
-          this.loadingErp = true
-        }
-      }).catch(err =>{
-        Cookies.remove("usernameMT");
-        Cookies.remove("rememberMeMT");
-        Cookies.remove("passwordMT");
-        Cookies.remove("userIdMT");
-        Cookies.remove("tokenMT");
-        Cookies.remove("nonceMT");
-        Cookies.remove("timestampMT");
-        this.loadingErp = false
-        this.userNoAlert(err.response.data.message)
-        this.$router.push({ path: "/login"})
-      });
+      
     },
     userNoAlert(msg){
       Toast(msg)