fix:修改了拦截器响应,token过期header状态,修复了长期不登录三次弹窗
This commit is contained in:
parent
8cef252c58
commit
8b7a9707fd
323
package-lock.json
generated
323
package-lock.json
generated
@ -1037,9 +1037,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@eslint/config-array/node_modules/brace-expansion": {
|
"node_modules/@eslint/config-array/node_modules/brace-expansion": {
|
||||||
"version": "1.1.11",
|
"version": "1.1.12",
|
||||||
"resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz",
|
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
|
||||||
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
|
"integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@ -1108,9 +1108,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@eslint/eslintrc/node_modules/brace-expansion": {
|
"node_modules/@eslint/eslintrc/node_modules/brace-expansion": {
|
||||||
"version": "1.1.11",
|
"version": "1.1.12",
|
||||||
"resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz",
|
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
|
||||||
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
|
"integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@ -3177,6 +3177,23 @@
|
|||||||
"node": ">= 4.5.0"
|
"node": ">= 4.5.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/available-typed-arrays": {
|
||||||
|
"version": "1.0.7",
|
||||||
|
"resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz",
|
||||||
|
"integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"peer": true,
|
||||||
|
"dependencies": {
|
||||||
|
"possible-typed-array-names": "^1.0.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 0.4"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sponsors/ljharb"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/axios": {
|
"node_modules/axios": {
|
||||||
"version": "1.8.4",
|
"version": "1.8.4",
|
||||||
"resolved": "https://registry.npmmirror.com/axios/-/axios-1.8.4.tgz",
|
"resolved": "https://registry.npmmirror.com/axios/-/axios-1.8.4.tgz",
|
||||||
@ -3353,9 +3370,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/brace-expansion": {
|
"node_modules/brace-expansion": {
|
||||||
"version": "2.0.1",
|
"version": "2.0.2",
|
||||||
"resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
|
||||||
"integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
|
"integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@ -4160,6 +4177,12 @@
|
|||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
|
"node_modules/deep-pick-omit": {
|
||||||
|
"version": "1.2.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/deep-pick-omit/-/deep-pick-omit-1.2.1.tgz",
|
||||||
|
"integrity": "sha512-2J6Kc/m3irCeqVG42T+SaUMesaK7oGWaedGnQQK/+O0gYc+2SP5bKh/KKTE7d7SJ+GCA9UUE1GRzh6oDe0EnGw==",
|
||||||
|
"license": "MIT"
|
||||||
|
},
|
||||||
"node_modules/default-browser": {
|
"node_modules/default-browser": {
|
||||||
"version": "5.2.1",
|
"version": "5.2.1",
|
||||||
"resolved": "https://registry.npmmirror.com/default-browser/-/default-browser-5.2.1.tgz",
|
"resolved": "https://registry.npmmirror.com/default-browser/-/default-browser-5.2.1.tgz",
|
||||||
@ -4255,6 +4278,12 @@
|
|||||||
"node": ">=0.10.0"
|
"node": ">=0.10.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/defu": {
|
||||||
|
"version": "6.1.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/defu/-/defu-6.1.4.tgz",
|
||||||
|
"integrity": "sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==",
|
||||||
|
"license": "MIT"
|
||||||
|
},
|
||||||
"node_modules/delayed-stream": {
|
"node_modules/delayed-stream": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz",
|
"resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz",
|
||||||
@ -4276,6 +4305,12 @@
|
|||||||
"minimalistic-assert": "^1.0.0"
|
"minimalistic-assert": "^1.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/destr": {
|
||||||
|
"version": "2.0.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/destr/-/destr-2.0.5.tgz",
|
||||||
|
"integrity": "sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==",
|
||||||
|
"license": "MIT"
|
||||||
|
},
|
||||||
"node_modules/detect-libc": {
|
"node_modules/detect-libc": {
|
||||||
"version": "1.0.3",
|
"version": "1.0.3",
|
||||||
"resolved": "https://registry.npmmirror.com/detect-libc/-/detect-libc-1.0.3.tgz",
|
"resolved": "https://registry.npmmirror.com/detect-libc/-/detect-libc-1.0.3.tgz",
|
||||||
@ -4725,9 +4760,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/eslint/node_modules/brace-expansion": {
|
"node_modules/eslint/node_modules/brace-expansion": {
|
||||||
"version": "1.1.11",
|
"version": "1.1.12",
|
||||||
"resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz",
|
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
|
||||||
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
|
"integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@ -5211,6 +5246,23 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/for-each": {
|
||||||
|
"version": "0.3.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz",
|
||||||
|
"integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"peer": true,
|
||||||
|
"dependencies": {
|
||||||
|
"is-callable": "^1.2.7"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 0.4"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sponsors/ljharb"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/for-in": {
|
"node_modules/for-in": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"resolved": "https://registry.npmmirror.com/for-in/-/for-in-1.0.2.tgz",
|
"resolved": "https://registry.npmmirror.com/for-in/-/for-in-1.0.2.tgz",
|
||||||
@ -5437,9 +5489,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/glob/node_modules/brace-expansion": {
|
"node_modules/glob/node_modules/brace-expansion": {
|
||||||
"version": "1.1.11",
|
"version": "1.1.12",
|
||||||
"resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz",
|
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
|
||||||
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
|
"integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"peer": true,
|
"peer": true,
|
||||||
@ -5849,6 +5901,20 @@
|
|||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"peer": true
|
"peer": true
|
||||||
},
|
},
|
||||||
|
"node_modules/is-callable": {
|
||||||
|
"version": "1.2.7",
|
||||||
|
"resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
|
||||||
|
"integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"peer": true,
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 0.4"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sponsors/ljharb"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/is-data-descriptor": {
|
"node_modules/is-data-descriptor": {
|
||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
"resolved": "https://registry.npmmirror.com/is-data-descriptor/-/is-data-descriptor-1.0.1.tgz",
|
"resolved": "https://registry.npmmirror.com/is-data-descriptor/-/is-data-descriptor-1.0.1.tgz",
|
||||||
@ -5996,6 +6062,23 @@
|
|||||||
"url": "https://github.com/sponsors/sindresorhus"
|
"url": "https://github.com/sponsors/sindresorhus"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/is-typed-array": {
|
||||||
|
"version": "1.1.15",
|
||||||
|
"resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz",
|
||||||
|
"integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"peer": true,
|
||||||
|
"dependencies": {
|
||||||
|
"which-typed-array": "^1.1.16"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 0.4"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sponsors/ljharb"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/is-unicode-supported": {
|
"node_modules/is-unicode-supported": {
|
||||||
"version": "2.1.0",
|
"version": "2.1.0",
|
||||||
"resolved": "https://registry.npmmirror.com/is-unicode-supported/-/is-unicode-supported-2.1.0.tgz",
|
"resolved": "https://registry.npmmirror.com/is-unicode-supported/-/is-unicode-supported-2.1.0.tgz",
|
||||||
@ -7389,23 +7472,61 @@
|
|||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/pbkdf2": {
|
"node_modules/pbkdf2": {
|
||||||
"version": "3.1.2",
|
"version": "3.1.3",
|
||||||
"resolved": "https://registry.npmmirror.com/pbkdf2/-/pbkdf2-3.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.3.tgz",
|
||||||
"integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==",
|
"integrity": "sha512-wfRLBZ0feWRhCIkoMB6ete7czJcnNnqRpcoWQBLqatqXXmelSRqfdDK4F3u9T2s2cXas/hQJcryI/4lAL+XTlA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"peer": true,
|
"peer": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"create-hash": "^1.1.2",
|
"create-hash": "~1.1.3",
|
||||||
"create-hmac": "^1.1.4",
|
"create-hmac": "^1.1.7",
|
||||||
"ripemd160": "^2.0.1",
|
"ripemd160": "=2.0.1",
|
||||||
"safe-buffer": "^5.0.1",
|
"safe-buffer": "^5.2.1",
|
||||||
"sha.js": "^2.4.8"
|
"sha.js": "^2.4.11",
|
||||||
|
"to-buffer": "^1.2.0"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=0.12"
|
"node": ">=0.12"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/pbkdf2/node_modules/create-hash": {
|
||||||
|
"version": "1.1.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.3.tgz",
|
||||||
|
"integrity": "sha512-snRpch/kwQhcdlnZKYanNF1m0RDlrCdSKQaH87w1FCFPVPNCQ/Il9QJKAX2jVBZddRdaHBMC+zXa9Gw9tmkNUA==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"peer": true,
|
||||||
|
"dependencies": {
|
||||||
|
"cipher-base": "^1.0.1",
|
||||||
|
"inherits": "^2.0.1",
|
||||||
|
"ripemd160": "^2.0.0",
|
||||||
|
"sha.js": "^2.4.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/pbkdf2/node_modules/hash-base": {
|
||||||
|
"version": "2.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/hash-base/-/hash-base-2.0.2.tgz",
|
||||||
|
"integrity": "sha512-0TROgQ1/SxE6KmxWSvXHvRj90/Xo1JvZShofnYF+f6ZsGtR4eES7WfrQzPalmyagfKZCXpVnitiRebZulWsbiw==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"peer": true,
|
||||||
|
"dependencies": {
|
||||||
|
"inherits": "^2.0.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/pbkdf2/node_modules/ripemd160": {
|
||||||
|
"version": "2.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.1.tgz",
|
||||||
|
"integrity": "sha512-J7f4wutN8mdbV08MJnXibYpCOPHR+yzy+iQ/AsjMv2j8cLavQ8VGagDFUwwTAdF8FmRKVeNpbTTEwNHCW1g94w==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"peer": true,
|
||||||
|
"dependencies": {
|
||||||
|
"hash-base": "^2.0.0",
|
||||||
|
"inherits": "^2.0.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/perfect-debounce": {
|
"node_modules/perfect-debounce": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmmirror.com/perfect-debounce/-/perfect-debounce-1.0.0.tgz",
|
"resolved": "https://registry.npmmirror.com/perfect-debounce/-/perfect-debounce-1.0.0.tgz",
|
||||||
@ -7475,6 +7596,33 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/pinia-plugin-persistedstate": {
|
||||||
|
"version": "4.4.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/pinia-plugin-persistedstate/-/pinia-plugin-persistedstate-4.4.1.tgz",
|
||||||
|
"integrity": "sha512-lmuMPpXla2zJKjxEq34e1E9P9jxkWEhcVwwioCCE0izG45kkTOvQfCzvwhW3i38cvnaWC7T1eRdkd15Re59ldw==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"deep-pick-omit": "^1.2.1",
|
||||||
|
"defu": "^6.1.4",
|
||||||
|
"destr": "^2.0.5"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"@nuxt/kit": ">=3.0.0",
|
||||||
|
"@pinia/nuxt": ">=0.10.0",
|
||||||
|
"pinia": ">=3.0.0"
|
||||||
|
},
|
||||||
|
"peerDependenciesMeta": {
|
||||||
|
"@nuxt/kit": {
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
|
"@pinia/nuxt": {
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
|
"pinia": {
|
||||||
|
"optional": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/pkg-dir": {
|
"node_modules/pkg-dir": {
|
||||||
"version": "3.0.0",
|
"version": "3.0.0",
|
||||||
"resolved": "https://registry.npmmirror.com/pkg-dir/-/pkg-dir-3.0.0.tgz",
|
"resolved": "https://registry.npmmirror.com/pkg-dir/-/pkg-dir-3.0.0.tgz",
|
||||||
@ -7583,6 +7731,17 @@
|
|||||||
"node": ">=0.10.0"
|
"node": ">=0.10.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/possible-typed-array-names": {
|
||||||
|
"version": "1.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz",
|
||||||
|
"integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"peer": true,
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 0.4"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/postcss": {
|
"node_modules/postcss": {
|
||||||
"version": "8.5.3",
|
"version": "8.5.3",
|
||||||
"resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.5.3.tgz",
|
"resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.5.3.tgz",
|
||||||
@ -9065,13 +9224,13 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/tinyglobby": {
|
"node_modules/tinyglobby": {
|
||||||
"version": "0.2.12",
|
"version": "0.2.14",
|
||||||
"resolved": "https://registry.npmmirror.com/tinyglobby/-/tinyglobby-0.2.12.tgz",
|
"resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz",
|
||||||
"integrity": "sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==",
|
"integrity": "sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"fdir": "^6.4.3",
|
"fdir": "^6.4.4",
|
||||||
"picomatch": "^4.0.2"
|
"picomatch": "^4.0.2"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
@ -9082,9 +9241,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/tinyglobby/node_modules/fdir": {
|
"node_modules/tinyglobby/node_modules/fdir": {
|
||||||
"version": "6.4.3",
|
"version": "6.4.6",
|
||||||
"resolved": "https://registry.npmmirror.com/fdir/-/fdir-6.4.3.tgz",
|
"resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.6.tgz",
|
||||||
"integrity": "sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==",
|
"integrity": "sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
@ -9098,7 +9257,7 @@
|
|||||||
},
|
},
|
||||||
"node_modules/tinyglobby/node_modules/picomatch": {
|
"node_modules/tinyglobby/node_modules/picomatch": {
|
||||||
"version": "4.0.2",
|
"version": "4.0.2",
|
||||||
"resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-4.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
|
||||||
"integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
|
"integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
@ -9117,6 +9276,30 @@
|
|||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"peer": true
|
"peer": true
|
||||||
},
|
},
|
||||||
|
"node_modules/to-buffer": {
|
||||||
|
"version": "1.2.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.2.1.tgz",
|
||||||
|
"integrity": "sha512-tB82LpAIWjhLYbqjx3X4zEeHN6M8CiuOEy2JY8SEQVdYRe3CCHOFaqrBW1doLDrfpWhplcW7BL+bO3/6S3pcDQ==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"peer": true,
|
||||||
|
"dependencies": {
|
||||||
|
"isarray": "^2.0.5",
|
||||||
|
"safe-buffer": "^5.2.1",
|
||||||
|
"typed-array-buffer": "^1.0.3"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 0.4"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/to-buffer/node_modules/isarray": {
|
||||||
|
"version": "2.0.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
|
||||||
|
"integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"peer": true
|
||||||
|
},
|
||||||
"node_modules/to-object-path": {
|
"node_modules/to-object-path": {
|
||||||
"version": "0.3.0",
|
"version": "0.3.0",
|
||||||
"resolved": "https://registry.npmmirror.com/to-object-path/-/to-object-path-0.3.0.tgz",
|
"resolved": "https://registry.npmmirror.com/to-object-path/-/to-object-path-0.3.0.tgz",
|
||||||
@ -9278,6 +9461,22 @@
|
|||||||
"node": ">= 0.8.0"
|
"node": ">= 0.8.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/typed-array-buffer": {
|
||||||
|
"version": "1.0.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz",
|
||||||
|
"integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"peer": true,
|
||||||
|
"dependencies": {
|
||||||
|
"call-bound": "^1.0.3",
|
||||||
|
"es-errors": "^1.3.0",
|
||||||
|
"is-typed-array": "^1.1.14"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 0.4"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/typedarray": {
|
"node_modules/typedarray": {
|
||||||
"version": "0.0.6",
|
"version": "0.0.6",
|
||||||
"resolved": "https://registry.npmmirror.com/typedarray/-/typedarray-0.0.6.tgz",
|
"resolved": "https://registry.npmmirror.com/typedarray/-/typedarray-0.0.6.tgz",
|
||||||
@ -9786,15 +9985,18 @@
|
|||||||
"peer": true
|
"peer": true
|
||||||
},
|
},
|
||||||
"node_modules/vite": {
|
"node_modules/vite": {
|
||||||
"version": "6.2.1",
|
"version": "6.3.5",
|
||||||
"resolved": "https://registry.npmmirror.com/vite/-/vite-6.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/vite/-/vite-6.3.5.tgz",
|
||||||
"integrity": "sha512-n2GnqDb6XPhlt9B8olZPrgMD/es/Nd1RdChF6CBD/fHW6pUyUTt2sQW2fPRX5GiD9XEa6+8A6A4f2vT6pSsE7Q==",
|
"integrity": "sha512-cZn6NDFE7wdTpINgs++ZJ4N49W2vRp8LCKrn3Ob1kYNtOo21vfDoaV5GzBfLU4MovSAB8uNRm4jgzVQZ+mBzPQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"esbuild": "^0.25.0",
|
"esbuild": "^0.25.0",
|
||||||
|
"fdir": "^6.4.4",
|
||||||
|
"picomatch": "^4.0.2",
|
||||||
"postcss": "^8.5.3",
|
"postcss": "^8.5.3",
|
||||||
"rollup": "^4.30.1"
|
"rollup": "^4.34.9",
|
||||||
|
"tinyglobby": "^0.2.13"
|
||||||
},
|
},
|
||||||
"bin": {
|
"bin": {
|
||||||
"vite": "bin/vite.js"
|
"vite": "bin/vite.js"
|
||||||
@ -9965,6 +10167,34 @@
|
|||||||
"vite": "^3.0.0-0 || ^4.0.0-0 || ^5.0.0-0 || ^6.0.0-0"
|
"vite": "^3.0.0-0 || ^4.0.0-0 || ^5.0.0-0 || ^6.0.0-0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/vite/node_modules/fdir": {
|
||||||
|
"version": "6.4.6",
|
||||||
|
"resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.6.tgz",
|
||||||
|
"integrity": "sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"peerDependencies": {
|
||||||
|
"picomatch": "^3 || ^4"
|
||||||
|
},
|
||||||
|
"peerDependenciesMeta": {
|
||||||
|
"picomatch": {
|
||||||
|
"optional": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/vite/node_modules/picomatch": {
|
||||||
|
"version": "4.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
|
||||||
|
"integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=12"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sponsors/jonschlinkert"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/vm-browserify": {
|
"node_modules/vm-browserify": {
|
||||||
"version": "1.1.2",
|
"version": "1.1.2",
|
||||||
"resolved": "https://registry.npmmirror.com/vm-browserify/-/vm-browserify-1.1.2.tgz",
|
"resolved": "https://registry.npmmirror.com/vm-browserify/-/vm-browserify-1.1.2.tgz",
|
||||||
@ -10723,6 +10953,29 @@
|
|||||||
"node": ">= 8"
|
"node": ">= 8"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/which-typed-array": {
|
||||||
|
"version": "1.1.19",
|
||||||
|
"resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.19.tgz",
|
||||||
|
"integrity": "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"peer": true,
|
||||||
|
"dependencies": {
|
||||||
|
"available-typed-arrays": "^1.0.7",
|
||||||
|
"call-bind": "^1.0.8",
|
||||||
|
"call-bound": "^1.0.4",
|
||||||
|
"for-each": "^0.3.5",
|
||||||
|
"get-proto": "^1.0.1",
|
||||||
|
"gopd": "^1.2.0",
|
||||||
|
"has-tostringtag": "^1.0.2"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 0.4"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sponsors/ljharb"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/word-wrap": {
|
"node_modules/word-wrap": {
|
||||||
"version": "1.2.5",
|
"version": "1.2.5",
|
||||||
"resolved": "https://registry.npmmirror.com/word-wrap/-/word-wrap-1.2.5.tgz",
|
"resolved": "https://registry.npmmirror.com/word-wrap/-/word-wrap-1.2.5.tgz",
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
<template>
|
<!-- <template>
|
||||||
<div class="login-box" v-if="isVisible">
|
<div class="login-box" v-if="isVisible">
|
||||||
<div class="login-container">
|
<div class="login-container">
|
||||||
<div class="login-close" @click="closeLoginForm">
|
<div class="login-close" @click="closeLoginForm">
|
||||||
@ -130,7 +130,7 @@ const refreshCaptcha = async () => {
|
|||||||
const res = await GetVerifyCode({ verify_token: verify_token.value });
|
const res = await GetVerifyCode({ verify_token: verify_token.value });
|
||||||
|
|
||||||
if (res) {
|
if (res) {
|
||||||
captchaUrl.value = `https://mall.gpxscs.cn/api/admin/shop/shop-base-config/image?verify_token=${verify_token.value}`;
|
// captchaUrl.value = `https://mall.gpxscs.cn/api/admin/shop/shop-base-config/image?verify_token=${verify_token.value}`;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -284,4 +284,8 @@ onUnmounted(() => {
|
|||||||
color: #666;
|
color: #666;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style> -->
|
||||||
|
<template>
|
||||||
|
|
||||||
|
<div></div>
|
||||||
|
</template>
|
||||||
@ -53,7 +53,7 @@
|
|||||||
</el-form>
|
</el-form>
|
||||||
<div class="foot">
|
<div class="foot">
|
||||||
<el-button
|
<el-button
|
||||||
class="btn_sumit"
|
class="btn_submit"
|
||||||
color="#ea4322"
|
color="#ea4322"
|
||||||
size="large"
|
size="large"
|
||||||
:disabled="!formData.phoneNumber || !formData.verificationCode"
|
:disabled="!formData.phoneNumber || !formData.verificationCode"
|
||||||
@ -64,7 +64,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<!-- <div class="tool">
|
<!-- <div class="tool">
|
||||||
已有账号?
|
已有账号?
|
||||||
<el-button class="btn_sumit" type="danger" text @click="openLoginForm"
|
<el-button class="btn_submit" type="danger" text @click="openLoginForm"
|
||||||
>立即登录</el-button
|
>立即登录</el-button
|
||||||
>
|
>
|
||||||
</div> -->
|
</div> -->
|
||||||
@ -106,11 +106,6 @@ const closeRegisterForm = () => {
|
|||||||
emits("close-register-form");
|
emits("close-register-form");
|
||||||
};
|
};
|
||||||
|
|
||||||
const openLoginForm = () => {
|
|
||||||
closeRegisterForm();
|
|
||||||
emits("open-login-form");
|
|
||||||
};
|
|
||||||
|
|
||||||
const getVerify_code = async () => {
|
const getVerify_code = async () => {
|
||||||
const params = {
|
const params = {
|
||||||
number: formData.value.phoneNumber,
|
number: formData.value.phoneNumber,
|
||||||
@ -124,7 +119,7 @@ const getVerify_code = async () => {
|
|||||||
countdown.value = 60;
|
countdown.value = 60;
|
||||||
startCountdown();
|
startCountdown();
|
||||||
} else {
|
} else {
|
||||||
console.log("获取失败");
|
// console.log("获取失败")
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -153,28 +148,26 @@ const register = async () => {
|
|||||||
formData.value.phoneNumber = "";
|
formData.value.phoneNumber = "";
|
||||||
formData.value.verificationCode = "";
|
formData.value.verificationCode = "";
|
||||||
closeRegisterForm();
|
closeRegisterForm();
|
||||||
|
// try {
|
||||||
try {
|
// const approvalRes = await getApproval_status();
|
||||||
const approvalRes = await getApproval_status();
|
// if (approvalRes.data.code === 0 && approvalRes.data.status === 200) {
|
||||||
if (approvalRes.data.code === 0 && approvalRes.data.status === 200) {
|
// const approvalStatus = approvalRes.data.approval_status;
|
||||||
const approvalStatus = approvalRes.data.approval_status;
|
// localStorage.setItem("approval_status", approvalStatus);
|
||||||
localStorage.setItem("approval_status", approvalStatus);
|
// console.log("哈哈哈哈哈哈哈")
|
||||||
if (approvalStatus == "4" || approvalRes.data==null) {
|
// if (approvalStatus == "4" || approvalRes.data==null) {
|
||||||
router.push({ name: "start" });
|
// router.push({ name: "start" });
|
||||||
} else {
|
// } else {
|
||||||
router.push({ name: "check" });
|
// router.push({ name: "check" });
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
} catch (error) {
|
// } catch (error) {
|
||||||
console.error("获取审批状态失败:", error);
|
// console.error("获取审批状态失败:", error);
|
||||||
}
|
// }
|
||||||
} else {
|
} else {
|
||||||
if (res.status === 250) {
|
if (res.status === 250) {
|
||||||
// 使用 ElMessage 提示验证码错误
|
// 使用 ElMessage 提示验证码错误
|
||||||
ElMessage.error("验证码错误");
|
ElMessage.error("验证码错误");
|
||||||
} else {
|
} else {
|
||||||
console.log("操作返回的信息", res.data.msg);
|
|
||||||
console.log("hhhhh", res);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -228,7 +221,10 @@ onUnmounted(() => {
|
|||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
|
:global(.el-message) {
|
||||||
|
z-index: 1000102 !important;
|
||||||
|
}
|
||||||
.register-box {
|
.register-box {
|
||||||
position: fixed;
|
position: fixed;
|
||||||
top: 0;
|
top: 0;
|
||||||
@ -247,7 +243,7 @@ onUnmounted(() => {
|
|||||||
|
|
||||||
.foot {
|
.foot {
|
||||||
padding-top: 20px;
|
padding-top: 20px;
|
||||||
.btn_sumit {
|
.btn_submit {
|
||||||
display: block;
|
display: block;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -8,14 +8,17 @@ import App from './App.vue'
|
|||||||
import '@/assets/css/index.css'
|
import '@/assets/css/index.css'
|
||||||
import '../public/xiaofa-font/iconfont.css'
|
import '../public/xiaofa-font/iconfont.css'
|
||||||
|
|
||||||
|
|
||||||
const app = createApp(App);
|
const app = createApp(App);
|
||||||
const pinia = createPinia()
|
const pinia = createPinia()
|
||||||
app.use(pinia)
|
app.use(pinia)
|
||||||
app.use(router)
|
app.use(router);
|
||||||
|
(window as any).$router = router;
|
||||||
//启用element 国际化,并且启用element-plus
|
//启用element 国际化,并且启用element-plus
|
||||||
app.use(ElementPlus,{
|
app.use(ElementPlus,{
|
||||||
locale: zhCn,
|
locale: zhCn,
|
||||||
})
|
})
|
||||||
|
|
||||||
app.mount('#app')
|
app.mount('#app')
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -52,7 +52,7 @@ const routes=[
|
|||||||
meta:{
|
meta:{
|
||||||
isFullpage: true
|
isFullpage: true
|
||||||
}
|
}
|
||||||
},
|
}
|
||||||
];
|
];
|
||||||
const router = createRouter({
|
const router = createRouter({
|
||||||
history:createWebHistory(),
|
history:createWebHistory(),
|
||||||
|
|||||||
@ -1,67 +1,102 @@
|
|||||||
import { defineStore } from "pinia";
|
import { defineStore } from "pinia";
|
||||||
import { ref,reactive, onMounted } from "vue";
|
import { ref, computed, watchEffect,onUnmounted } from "vue";
|
||||||
|
import { ElMessage } from 'element-plus';
|
||||||
|
|
||||||
export const useUserStore = defineStore("user", () => {
|
export const useUserStore = defineStore("user", () => {
|
||||||
const token = ref(localStorage.getItem("token")||"");
|
const token = ref(localStorage.getItem("token") || "");
|
||||||
const isLoggedIn = ref(false);
|
const mobilePhone = ref(localStorage.getItem("mobilePhone") || "");
|
||||||
const mobilePhone = ref(localStorage.getItem("mobilePhone")||"");
|
|
||||||
|
|
||||||
const setToken = (data:any) => {
|
const handleStorageChange = (e:StorageEvent)=>{
|
||||||
|
if (e.key === "token") {
|
||||||
|
// 当 localStorage 的 token 变化时,更新 Pinia 的 token
|
||||||
|
token.value = e.newValue || "";
|
||||||
|
// console.log("localStorage token 变化,同步到 Pinia:", token.value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 定时检查 localStorage,同步 token(每 1 秒一次,可调整)
|
||||||
|
const syncTokenInterval = setInterval(() => {
|
||||||
|
const latestToken = localStorage.getItem("token");
|
||||||
|
if (latestToken !== token.value) {
|
||||||
|
token.value = latestToken || "";
|
||||||
|
}
|
||||||
|
}, 1000); // 1秒检查一次
|
||||||
|
|
||||||
|
window.addEventListener("storage", handleStorageChange);
|
||||||
|
onUnmounted(() => {
|
||||||
|
window.removeEventListener("storage", handleStorageChange);
|
||||||
|
clearInterval(syncTokenInterval);
|
||||||
|
});
|
||||||
|
|
||||||
|
// 改为 computed 属性,实时计算登录状态
|
||||||
|
const isLoggedIn = computed(() => {
|
||||||
|
return !!token.value && !isTokenExpired();
|
||||||
|
});
|
||||||
|
|
||||||
|
// 设置合理的 Token 有效期(示例:2小时)
|
||||||
|
const setToken = (data: string) => {
|
||||||
token.value = data;
|
token.value = data;
|
||||||
isLoggedIn.value = true;
|
const expiryTime = Date.now() + 30 * 1000; //
|
||||||
const expiryTime = Date.now() + 31536000 * 1000; // 当前时间 + 1 年
|
|
||||||
localStorage.setItem("token", data);
|
localStorage.setItem("token", data);
|
||||||
localStorage.setItem("tokenExpiry", expiryTime.toString()); // 保存过期时间
|
localStorage.setItem("tokenExpiry", expiryTime.toString());
|
||||||
};
|
};
|
||||||
|
|
||||||
const setMobilePhone = (phone: string) => {
|
const setMobilePhone = (phone: string) => {
|
||||||
mobilePhone.value = phone;
|
mobilePhone.value = phone;
|
||||||
localStorage.setItem("mobilePhone", phone);
|
localStorage.setItem("mobilePhone", phone);
|
||||||
};
|
};
|
||||||
const removeMobilePhone=()=>{
|
|
||||||
|
const removeMobilePhone = () => {
|
||||||
|
mobilePhone.value = "";
|
||||||
localStorage.removeItem("mobilePhone");
|
localStorage.removeItem("mobilePhone");
|
||||||
}
|
};
|
||||||
// const setMerchStatus=(merchStatus:string)=>{
|
|
||||||
// localStorage.setItem("merchStatus",merchStatus)
|
|
||||||
// }
|
|
||||||
const clearToken = () => {
|
const clearToken = () => {
|
||||||
try {
|
try {
|
||||||
token.value = "";
|
token.value = "";
|
||||||
isLoggedIn.value = false;
|
mobilePhone.value = ""; // 清空手机号
|
||||||
localStorage.removeItem("userInfo");
|
localStorage.removeItem("userInfo");
|
||||||
localStorage.removeItem("token");
|
localStorage.removeItem("token");
|
||||||
localStorage.removeItem("tokenExpiry"); // 删除过期时间
|
localStorage.removeItem("tokenExpiry");
|
||||||
|
localStorage.removeItem("mobilePhone"); // 确保从本地存储删除
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error("Error clearing token from localStorage:", error);
|
console.error("清除 Token 失败:", error);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const isTokenExpired = () => {
|
const isTokenExpired = () => {
|
||||||
try {
|
try {
|
||||||
const expiryTime = localStorage.getItem("tokenExpiry");
|
const expiryTime = localStorage.getItem("tokenExpiry");
|
||||||
if (!expiryTime) return true; // 如果没有过期时间,认为已过期
|
if (!expiryTime) return true;
|
||||||
return Date.now() > parseInt(expiryTime, 10); // 当前时间是否超过过期时间
|
|
||||||
|
const isExpired = Date.now() > parseInt(expiryTime, 10);
|
||||||
|
return isExpired;
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error("Error checking token expiry:", error);
|
return true;
|
||||||
return true; // 默认认为已过期
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
const setIdentity=(Identity:string)=>{
|
|
||||||
localStorage.setItem("Identity", Identity);
|
const setIdentity = (identity: string) => {
|
||||||
}
|
localStorage.setItem("Identity", identity);
|
||||||
const removeIdentity=()=>{
|
};
|
||||||
localStorage.removeItem('Identity')
|
|
||||||
}
|
const removeIdentity = () => {
|
||||||
onMounted(() => {
|
localStorage.removeItem("Identity");
|
||||||
try {
|
};
|
||||||
const storedToken = localStorage.getItem("token");
|
|
||||||
if (storedToken && !isTokenExpired()) {
|
// 自动监听 Token 变化并检查过期状态
|
||||||
token.value = storedToken;
|
watchEffect(() => {
|
||||||
isLoggedIn.value = true;
|
if (token.value && isTokenExpired()) {
|
||||||
} else {
|
ElMessage.error('登录已过期,请重新登录'); // 提示用户
|
||||||
clearToken(); // 如果 token 过期,清除 token
|
clearToken();
|
||||||
}
|
window["$router"]?.push("/");
|
||||||
} catch (error) {
|
}
|
||||||
console.error("Error retrieving token from localStorage:", error);
|
});
|
||||||
|
|
||||||
|
// 初始化时检查 Token 状态
|
||||||
|
watchEffect(() => {
|
||||||
|
if (!localStorage.getItem("token")) {
|
||||||
|
// 本地存储没有 Token,确保状态一致
|
||||||
|
token.value = "";
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
import axios from "axios";
|
import axios from "axios";
|
||||||
import { ElMessage } from "element-plus";
|
import { ElMessage } from "element-plus";
|
||||||
// import store from '@/store'
|
// import store from '@/store'
|
||||||
|
import { useUserStore } from "@/stores/userStore";
|
||||||
const baseURL = import.meta.env.VUE_APP_BASE_URL;
|
const baseURL = import.meta.env.VUE_APP_BASE_URL;
|
||||||
|
|
||||||
const service = axios.create({
|
const service = axios.create({
|
||||||
@ -12,6 +12,7 @@ const service = axios.create({
|
|||||||
},
|
},
|
||||||
timeout: 1000 * 60 * 5, // request timeout
|
timeout: 1000 * 60 * 5, // request timeout
|
||||||
});
|
});
|
||||||
|
let hasShowExpiredMessage = false
|
||||||
// 拦截前
|
// 拦截前
|
||||||
// request interceptor
|
// request interceptor
|
||||||
service.interceptors.request.use(
|
service.interceptors.request.use(
|
||||||
@ -31,17 +32,18 @@ service.interceptors.request.use(
|
|||||||
service.interceptors.response.use(
|
service.interceptors.response.use(
|
||||||
(response) => {
|
(response) => {
|
||||||
if(response.data.status==250){
|
if(response.data.status==250){
|
||||||
ElMessage.error(response.data.msg || '请求异常,再重试!')
|
if(!hasShowExpiredMessage){
|
||||||
|
ElMessage.error(response.data.msg || '请求异常,再重试!');
|
||||||
|
hasShowExpiredMessage = true;
|
||||||
|
const userStore = useUserStore();
|
||||||
|
userStore.clearToken();
|
||||||
|
window["$router"]?.push("/");
|
||||||
|
setTimeout(() => (hasShowExpiredMessage = false), 3000);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return response.data;
|
return response.data;
|
||||||
},
|
},
|
||||||
(error) => {
|
(error) => {
|
||||||
if (error.response.status === 401) {
|
|
||||||
// Token 无效或过期,清除 Token 并跳转到登录页面
|
|
||||||
const userStore = useUserStore();
|
|
||||||
userStore.clearToken();
|
|
||||||
router.push("/login");
|
|
||||||
}
|
|
||||||
return Promise.reject(error);
|
return Promise.reject(error);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|||||||
@ -76,7 +76,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { ref, onMounted, watch, onUnmounted } from "vue";
|
import { ref, onMounted, watch, onUnmounted ,computed} from "vue";
|
||||||
import { useRouter } from "vue-router";
|
import { useRouter } from "vue-router";
|
||||||
import { useUserStore } from "@/stores/userStore";
|
import { useUserStore } from "@/stores/userStore";
|
||||||
import { Menu, Avatar } from "@element-plus/icons-vue";
|
import { Menu, Avatar } from "@element-plus/icons-vue";
|
||||||
@ -105,11 +105,13 @@ const router = useRouter();
|
|||||||
const userStore = useUserStore();
|
const userStore = useUserStore();
|
||||||
|
|
||||||
// 从 userStore 中获取登录状态
|
// 从 userStore 中获取登录状态
|
||||||
const isLoggedIn = ref(userStore.isLoggedIn);
|
const isLoggedIn = computed(()=>userStore.isLoggedIn);
|
||||||
const approval_status = ref(-1);
|
const approval_status = ref(-1);
|
||||||
const token = ref(userStore.token);
|
const token = computed(()=>userStore.token);
|
||||||
const mobile = ref(userStore.mobilePhone);
|
const mobile = computed(() => {
|
||||||
|
// 格式化手机号
|
||||||
|
return userStore.mobilePhone.replace(/(^\d{3})(\d+)(\d{4})/g, "$1****$3");
|
||||||
|
});
|
||||||
// 获取审核状态的函数
|
// 获取审核状态的函数
|
||||||
const fetchApprovalStatus = () => {
|
const fetchApprovalStatus = () => {
|
||||||
const mobile = localStorage.getItem("mobilePhone");
|
const mobile = localStorage.getItem("mobilePhone");
|
||||||
@ -117,28 +119,27 @@ const fetchApprovalStatus = () => {
|
|||||||
getApproval_status().then((res) => {
|
getApproval_status().then((res) => {
|
||||||
if (res.code === 0 && res.status === 200) {
|
if (res.code === 0 && res.status === 200) {
|
||||||
approval_status.value = res.data.approval_status;
|
approval_status.value = res.data.approval_status;
|
||||||
console.log("res.data.approval_status", res.data.approval_status);
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
watch(userStore, (newVal) => {
|
// watch(userStore, (newVal) => {
|
||||||
token.value = newVal.token;
|
// token.value = newVal.token;
|
||||||
// 更新手机号并格式化
|
// // 更新手机号并格式化
|
||||||
if (newVal.mobilePhone) {
|
// if (newVal.mobilePhone) {
|
||||||
mobile.value = newVal.mobilePhone.replace(
|
// mobile.value = newVal.mobilePhone.replace(
|
||||||
/(^\d{3})(\d+)(\d{4})/g,
|
// /(^\d{3})(\d+)(\d{4})/g,
|
||||||
"$1****$3"
|
// "$1****$3"
|
||||||
);
|
// );
|
||||||
}
|
// }
|
||||||
isLoggedIn.value = !!token.value;
|
// isLoggedIn.value = !!token.value;
|
||||||
|
|
||||||
// 当登录状态变化且为已登录时,重新获取审核状态
|
// // // 当登录状态变化且为已登录时,重新获取审核状态
|
||||||
if (isLoggedIn.value) {
|
// // if (isLoggedIn.value) {
|
||||||
fetchApprovalStatus();
|
// // fetchApprovalStatus();
|
||||||
}
|
// // }
|
||||||
});
|
// });
|
||||||
|
|
||||||
// 页面加载时获取审核状态
|
// 页面加载时获取审核状态
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
@ -159,10 +160,26 @@ onMounted(() => {
|
|||||||
watch(
|
watch(
|
||||||
() => userStore.isLoggedIn,
|
() => userStore.isLoggedIn,
|
||||||
(newVal) => {
|
(newVal) => {
|
||||||
isLoggedIn.value = newVal; // 确保 isLoggedIn 始终与 userStore.isLoggedIn 保持一致
|
if(!newVal){
|
||||||
if (isLoggedIn.value === null) console.log("登陆过期");
|
approval_status.value = -1
|
||||||
|
// console.log("🔍 isLoggedIn 变化为:", newVal);
|
||||||
|
}else{
|
||||||
|
fetchApprovalStatus();
|
||||||
|
}
|
||||||
|
},{
|
||||||
|
immediate:true//初始化时立刻执行一次
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
watch(
|
||||||
|
() => userStore.token,
|
||||||
|
(newToken) => {
|
||||||
|
// 当 token 变为空时,强制更新状态
|
||||||
|
if (!newToken) {
|
||||||
|
approval_status.value = -1;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{ immediate: true }
|
||||||
|
);
|
||||||
|
|
||||||
// 处理免费开店按钮点击事件
|
// 处理免费开店按钮点击事件
|
||||||
const handleOpenStartPage = () => {
|
const handleOpenStartPage = () => {
|
||||||
@ -191,7 +208,6 @@ const logout = () => {
|
|||||||
userStore.clearToken();
|
userStore.clearToken();
|
||||||
userStore.removeMobilePhone();
|
userStore.removeMobilePhone();
|
||||||
userStore.removeIdentity();
|
userStore.removeIdentity();
|
||||||
isLoggedIn.value = false; // 更新登录状态为未登录
|
|
||||||
approval_status.value = -1; // 重置审核状态
|
approval_status.value = -1; // 重置审核状态
|
||||||
router.push("/"); // 跳转到首页
|
router.push("/"); // 跳转到首页
|
||||||
};
|
};
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
<Company />
|
<Company />
|
||||||
<Banner />
|
<Banner />
|
||||||
<Service />
|
<Service />
|
||||||
<Login :isVisible="showLoginForm" @open-register-form="showRegisterForm = true" @close-login-form="showLoginForm = false" />
|
<!-- <Login :isVisible="showLoginForm" @open-register-form="showRegisterForm = true" @close-login-form="showLoginForm = false" /> -->
|
||||||
<Register :isVisible="showRegisterForm" @open-login-form="showLoginForm = true" @close-register-form="showRegisterForm = false" />
|
<Register :isVisible="showRegisterForm" @open-login-form="showLoginForm = true" @close-register-form="showRegisterForm = false" />
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|||||||
@ -36,7 +36,6 @@
|
|||||||
<el-statistic
|
<el-statistic
|
||||||
:value="businessmanValue"
|
:value="businessmanValue"
|
||||||
:formatter="formatter"
|
:formatter="formatter"
|
||||||
|
|
||||||
/>
|
/>
|
||||||
</h3>
|
</h3>
|
||||||
<p>商家数量</p>
|
<p>商家数量</p>
|
||||||
@ -149,17 +148,17 @@ const formatter2 = (value: number) => {
|
|||||||
return `${Math.round(value)}k+`;
|
return `${Math.round(value)}k+`;
|
||||||
};
|
};
|
||||||
|
|
||||||
onMounted(() => {
|
// onMounted(() => {
|
||||||
const mobile = localStorage.getItem("mobilePhone");
|
// const mobile = localStorage.getItem("mobilePhone");
|
||||||
if (mobile) {
|
// if (mobile) {
|
||||||
getApproval_status().then((res) => {
|
// getApproval_status().then((res) => {
|
||||||
if (res.code === 0 && res.status === 200) {
|
// if (res.code === 0 && res.status === 200) {
|
||||||
approval_status.value = res.data.approval_status;
|
// approval_status.value = res.data.approval_status;
|
||||||
console.log("res.data.approval_status", res.data.approval_status);
|
// console.log("res.data.approval_status", res.data.approval_status);
|
||||||
}
|
// }
|
||||||
});
|
// });
|
||||||
}
|
// }
|
||||||
});
|
// });
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user