diff --git a/README.md b/README.md
index 2059af2f..12ebe833 100644
--- a/README.md
+++ b/README.md
@@ -65,6 +65,10 @@ npm install --save @antv/hierarchy
npm install vue-chartjs
+npm install uuid --save
+
+npm i @fingerprintjs/fingerprintjs
+
```
npm install -save dayjs
diff --git a/package.json b/package.json
index cb0d27a5..0ae73b0e 100644
--- a/package.json
+++ b/package.json
@@ -42,6 +42,7 @@
"@antv/layout": "^0.3.23",
"@antv/x6": "^2.13.1",
"@antv/x6-vue-shape": "^2.1.1",
+ "@fingerprintjs/fingerprintjs": "^4.3.0",
"@riophae/vue-treeselect": "0.4.0",
"axios": "0.24.0",
"clipboard": "2.0.8",
diff --git a/src/api/login.js b/src/api/login.js
index 674502b2..95c3c18a 100644
--- a/src/api/login.js
+++ b/src/api/login.js
@@ -1,14 +1,17 @@
import request from '@/utils/request'
import { encrypt } from '@/utils/jsencrypt'
+import { Base64 } from "js-base64"
// 登录方法
-export function login(mwname, mwpwd, code, uuid,pdomain) {
+export function login(mwname, mwpwd, code,mMacCode, uuid,pdomain) {
let username = encrypt(mwname)
let password = encrypt(mwpwd)
+ let macCode = Base64.encode(mMacCode)
const data = {
username,
password,
code,
+ macCode,
uuid,
pdomain
}
diff --git a/src/store/modules/user.js b/src/store/modules/user.js
index 070cc126..465c397b 100644
--- a/src/store/modules/user.js
+++ b/src/store/modules/user.js
@@ -49,9 +49,10 @@ const user = {
const password = userInfo.password
const code = userInfo.code
const uuid = userInfo.uuid
+ const macCode = userInfo.macCode
const pdomain = userInfo.pdomain
return new Promise((resolve, reject) => {
- login(username, password, code, uuid,pdomain).then(res => {
+ login(username, password, code,macCode, uuid,pdomain).then(res => {
setToken(res.token)
commit('SET_TOKEN', res.token)
resolve()
@@ -96,6 +97,8 @@ const user = {
return new Promise((resolve, reject) => {
getInfo().then(res => {
const user = res.user
+
+ localStorage.setItem('TnMacCode', user.ecomputid);
// const avatar = (user.avatar == "" || user.avatar == null) ? require("@/assets/images/profile4.png") : process.env.VUE_APP_BASE_API + user.avatar;
const avatar = (user.avatar == "" || user.avatar == null) ? require("@/assets/images/profile4.png") : user.avatar;
diff --git a/src/views/emis/emisUser/editForm.vue b/src/views/emis/emisUser/editForm.vue
index 68fbf0d3..87bc2c0e 100644
--- a/src/views/emis/emisUser/editForm.vue
+++ b/src/views/emis/emisUser/editForm.vue
@@ -72,8 +72,8 @@
否
-
-
+
+
diff --git a/src/views/login.vue b/src/views/login.vue
index 8fb948e7..f0b579f0 100644
--- a/src/views/login.vue
+++ b/src/views/login.vue
@@ -333,12 +333,16 @@ import { getLocalIp } from "@/utils/custom";
import Cookies from "js-cookie";
import { encrypt, decrypt } from '@/utils/jsencrypt'
+import FingerprintJS from '@fingerprintjs/fingerprintjs' // 引入
+const uuidv4 = require("uuid/v4"); // 导入uuid生成插件
+
export default {
name: "Login",
data() {
return {
zoneConfig:{},
+ pdomain:null,
codeUrl: "",
localIp:null,
loginForm: {
@@ -347,6 +351,7 @@ export default {
rememberMe: false,
code: "",
uuid: "",
+ macCode:"",
pdomain:""
},
loginRules: {
@@ -414,64 +419,31 @@ export default {
},
created() {
document.title="系统登录";
-
this.zoneConfig=this.$store.state.zoneConfig;
const domain = this.zoneConfig.zoneDomain;
let domainPrefix = null;
if(domain === undefined){
- domainPrefix = process.env.VUE_APP_PDOMAIN
+ this.zoneConfig.zoneDomain=process.env.VUE_APP_PDOMAIN;
}
else{
domainPrefix = domain.substring(0, domain.indexOf('.'))
+ this.zoneConfig.zoneDomain=domainPrefix;
this.loginForm.pdomain = domainPrefix
this.loginForm2.pdomain = domainPrefix
}
this.getCode();
this.getCookie();
this.initMacId();
+
},
methods: {
- initMacId(){
- const offerOptions = {
- offerToReceiveAudio: 1,
- offerToReceiveVideo: 1
- };
-
- // 创建 RTCPeerConnection [对象](https://geek.csdn.net/educolumn/04c51611e4b730957464192e0307b82c?spm=1055.2569.3001.10083)
- const pc = new RTCPeerConnection();
-
- // 创建 offer
- pc.createOffer(offerOptions)
- .then(offer => {
- // 成功生成 offer
- return pc.setLocalDescription(offer);
- })
- .then(() => {
- // 处理 offer
- const localDescription = pc.localDescription;
- console.log('Generated offer:', localDescription);
- // ...
- })
- .catch(error => {
- // 处理错误
- console.error('Error generating offer:', error);
- });
-
- },
- initMacId1(){
- getLocalIp(function(ip){
- this.localIp=ip;
- console.log(this.localIp)
- // li.textContent = ip;
- //local IPs
- // if (ip.match(/^(192\.168\.|169\.254\.|10\.|172\.(1[6-9]|2\d|3[01]))/))
- // document.getElementsByTagName("ul")[0].appendChild(li);
- // //assume the rest are public IPs
- // else
- // document.getElementsByTagName("ul")[1].appendChild(li);
- });
-
+ async initMacId(){
+ const fp = await FingerprintJS.load()
+ const result = await fp.get()
+ const macCode = result.visitorId
+ let TnMacCode=localStorage.getItem('TnMacCode')||'';
+ this.loginForm.macCode=TnMacCode+"###"+macCode;
},
getCode() {
getCodeImg().then(res => {
@@ -534,7 +506,7 @@ export default {
if (this.loginForm.rememberMe) {
Cookies.set("username", this.loginForm.username, { expires: 30 });
Cookies.set("password", encrypt(this.loginForm.password), { expires: 30 });
- Cookies.set("pdomain", pdomain, { expires: 30 });
+ Cookies.set("pdomain", this.zoneConfig.zoneDomain, { expires: 30 });
Cookies.set('rememberMe', this.loginForm.rememberMe, { expires: 30 });
} else {
Cookies.remove("username");
@@ -542,6 +514,7 @@ export default {
Cookies.remove('rememberMe');
Cookies.remove('pdomain');
}
+
this.$store.dispatch("Login", this.loginForm).then(() => {
this.$router.push({ path: this.redirect || "/" }).catch(()=>{});
}).catch(() => {
diff --git a/src/views/system/dict/data.vue b/src/views/system/dict/data.vue
index fa6eeeae..5740baeb 100644
--- a/src/views/system/dict/data.vue
+++ b/src/views/system/dict/data.vue
@@ -225,6 +225,7 @@
+
{{scope.row.dictLabel}}
{{scope.row.dictLabel}}
diff --git a/src/views/system/role/index.vue b/src/views/system/role/index.vue
index a21a17a3..61064ba9 100644
--- a/src/views/system/role/index.vue
+++ b/src/views/system/role/index.vue
@@ -103,7 +103,12 @@
-
+
+
+
+
+
+
{{ parseTime(scope.row.createTime) }}
@@ -403,6 +408,7 @@ export default {
if(this.form.roleId != undefined){
roleId=this.form.roleId;
}
+ console.log("===>"+this.domainId);
roleMenuTreeselect(roleId,this.domainId).then(response => {
this.menuOptions = response.menus;