Merge branch 'master' of http://172.16.20.1:3000/duanhao/SocialNetworks_duan
This commit is contained in:
commit
b6163e3f75
664
package-lock.json
generated
664
package-lock.json
generated
|
|
@ -25,9 +25,8 @@
|
|||
"@vitejs/plugin-vue": "^5.2.3",
|
||||
"amfe-flexible": "^2.2.1",
|
||||
"autoprefixer": "^10.4.21",
|
||||
"less": "^4.3.0",
|
||||
"less-loader": "^12.3.0",
|
||||
"prettier": "^3.6.0",
|
||||
"sass": "^1.90.0",
|
||||
"vite": "^6.3.5",
|
||||
"vite-plugin-remove-console": "^2.2.0"
|
||||
}
|
||||
|
|
@ -618,6 +617,316 @@
|
|||
"node": ">=10"
|
||||
}
|
||||
},
|
||||
"node_modules/@parcel/watcher": {
|
||||
"version": "2.5.1",
|
||||
"resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.1.tgz",
|
||||
"integrity": "sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==",
|
||||
"dev": true,
|
||||
"hasInstallScript": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"detect-libc": "^1.0.3",
|
||||
"is-glob": "^4.0.3",
|
||||
"micromatch": "^4.0.5",
|
||||
"node-addon-api": "^7.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 10.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/parcel"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"@parcel/watcher-android-arm64": "2.5.1",
|
||||
"@parcel/watcher-darwin-arm64": "2.5.1",
|
||||
"@parcel/watcher-darwin-x64": "2.5.1",
|
||||
"@parcel/watcher-freebsd-x64": "2.5.1",
|
||||
"@parcel/watcher-linux-arm-glibc": "2.5.1",
|
||||
"@parcel/watcher-linux-arm-musl": "2.5.1",
|
||||
"@parcel/watcher-linux-arm64-glibc": "2.5.1",
|
||||
"@parcel/watcher-linux-arm64-musl": "2.5.1",
|
||||
"@parcel/watcher-linux-x64-glibc": "2.5.1",
|
||||
"@parcel/watcher-linux-x64-musl": "2.5.1",
|
||||
"@parcel/watcher-win32-arm64": "2.5.1",
|
||||
"@parcel/watcher-win32-ia32": "2.5.1",
|
||||
"@parcel/watcher-win32-x64": "2.5.1"
|
||||
}
|
||||
},
|
||||
"node_modules/@parcel/watcher-android-arm64": {
|
||||
"version": "2.5.1",
|
||||
"resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.1.tgz",
|
||||
"integrity": "sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"android"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">= 10.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/parcel"
|
||||
}
|
||||
},
|
||||
"node_modules/@parcel/watcher-darwin-arm64": {
|
||||
"version": "2.5.1",
|
||||
"resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.1.tgz",
|
||||
"integrity": "sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"darwin"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">= 10.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/parcel"
|
||||
}
|
||||
},
|
||||
"node_modules/@parcel/watcher-darwin-x64": {
|
||||
"version": "2.5.1",
|
||||
"resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.1.tgz",
|
||||
"integrity": "sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"darwin"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">= 10.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/parcel"
|
||||
}
|
||||
},
|
||||
"node_modules/@parcel/watcher-freebsd-x64": {
|
||||
"version": "2.5.1",
|
||||
"resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.1.tgz",
|
||||
"integrity": "sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"freebsd"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">= 10.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/parcel"
|
||||
}
|
||||
},
|
||||
"node_modules/@parcel/watcher-linux-arm-glibc": {
|
||||
"version": "2.5.1",
|
||||
"resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.1.tgz",
|
||||
"integrity": "sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==",
|
||||
"cpu": [
|
||||
"arm"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">= 10.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/parcel"
|
||||
}
|
||||
},
|
||||
"node_modules/@parcel/watcher-linux-arm-musl": {
|
||||
"version": "2.5.1",
|
||||
"resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.1.tgz",
|
||||
"integrity": "sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==",
|
||||
"cpu": [
|
||||
"arm"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">= 10.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/parcel"
|
||||
}
|
||||
},
|
||||
"node_modules/@parcel/watcher-linux-arm64-glibc": {
|
||||
"version": "2.5.1",
|
||||
"resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.1.tgz",
|
||||
"integrity": "sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">= 10.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/parcel"
|
||||
}
|
||||
},
|
||||
"node_modules/@parcel/watcher-linux-arm64-musl": {
|
||||
"version": "2.5.1",
|
||||
"resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.1.tgz",
|
||||
"integrity": "sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">= 10.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/parcel"
|
||||
}
|
||||
},
|
||||
"node_modules/@parcel/watcher-linux-x64-glibc": {
|
||||
"version": "2.5.1",
|
||||
"resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.1.tgz",
|
||||
"integrity": "sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">= 10.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/parcel"
|
||||
}
|
||||
},
|
||||
"node_modules/@parcel/watcher-linux-x64-musl": {
|
||||
"version": "2.5.1",
|
||||
"resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.1.tgz",
|
||||
"integrity": "sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">= 10.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/parcel"
|
||||
}
|
||||
},
|
||||
"node_modules/@parcel/watcher-win32-arm64": {
|
||||
"version": "2.5.1",
|
||||
"resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.1.tgz",
|
||||
"integrity": "sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"win32"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">= 10.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/parcel"
|
||||
}
|
||||
},
|
||||
"node_modules/@parcel/watcher-win32-ia32": {
|
||||
"version": "2.5.1",
|
||||
"resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.1.tgz",
|
||||
"integrity": "sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==",
|
||||
"cpu": [
|
||||
"ia32"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"win32"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">= 10.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/parcel"
|
||||
}
|
||||
},
|
||||
"node_modules/@parcel/watcher-win32-x64": {
|
||||
"version": "2.5.1",
|
||||
"resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.1.tgz",
|
||||
"integrity": "sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"win32"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">= 10.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/parcel"
|
||||
}
|
||||
},
|
||||
"node_modules/@popperjs/core": {
|
||||
"name": "@sxzz/popperjs-es",
|
||||
"version": "2.11.7",
|
||||
|
|
@ -1257,6 +1566,20 @@
|
|||
"url": "https://github.com/sponsors/antfu"
|
||||
}
|
||||
},
|
||||
"node_modules/braces": {
|
||||
"version": "3.0.3",
|
||||
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
|
||||
"integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"fill-range": "^7.1.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/browserslist": {
|
||||
"version": "4.25.1",
|
||||
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.1.tgz",
|
||||
|
|
@ -1457,6 +1780,20 @@
|
|||
"integrity": "sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/detect-libc": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz",
|
||||
"integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==",
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"optional": true,
|
||||
"bin": {
|
||||
"detect-libc": "bin/detect-libc.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=0.10"
|
||||
}
|
||||
},
|
||||
"node_modules/dotenv": {
|
||||
"version": "16.6.0",
|
||||
"resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.6.0.tgz",
|
||||
|
|
@ -1538,20 +1875,6 @@
|
|||
"url": "https://github.com/fb55/entities?sponsor=1"
|
||||
}
|
||||
},
|
||||
"node_modules/errno": {
|
||||
"version": "0.1.8",
|
||||
"resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz",
|
||||
"integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"prr": "~1.0.1"
|
||||
},
|
||||
"bin": {
|
||||
"errno": "cli.js"
|
||||
}
|
||||
},
|
||||
"node_modules/errx": {
|
||||
"version": "0.1.0",
|
||||
"resolved": "https://registry.npmjs.org/errx/-/errx-0.1.0.tgz",
|
||||
|
|
@ -1698,6 +2021,20 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"node_modules/fill-range": {
|
||||
"version": "7.1.1",
|
||||
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
|
||||
"integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"to-regex-range": "^5.0.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/follow-redirects": {
|
||||
"version": "1.15.9",
|
||||
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz",
|
||||
|
|
@ -1838,14 +2175,6 @@
|
|||
"url": "https://github.com/sponsors/ljharb"
|
||||
}
|
||||
},
|
||||
"node_modules/graceful-fs": {
|
||||
"version": "4.2.11",
|
||||
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
|
||||
"integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
|
||||
"dev": true,
|
||||
"license": "ISC",
|
||||
"optional": true
|
||||
},
|
||||
"node_modules/has-symbols": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz",
|
||||
|
|
@ -1891,20 +2220,6 @@
|
|||
"integrity": "sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/iconv-lite": {
|
||||
"version": "0.6.3",
|
||||
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
|
||||
"integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"safer-buffer": ">= 2.1.2 < 3.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/ignore": {
|
||||
"version": "7.0.5",
|
||||
"resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz",
|
||||
|
|
@ -1914,20 +2229,49 @@
|
|||
"node": ">= 4"
|
||||
}
|
||||
},
|
||||
"node_modules/image-size": {
|
||||
"version": "0.5.5",
|
||||
"resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz",
|
||||
"integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==",
|
||||
"node_modules/immutable": {
|
||||
"version": "5.1.3",
|
||||
"resolved": "https://registry.npmjs.org/immutable/-/immutable-5.1.3.tgz",
|
||||
"integrity": "sha512-+chQdDfvscSF1SJqv2gn4SRO2ZyS3xL3r7IW/wWEEzrzLisnOlKiQu5ytC/BVNcS15C39WT2Hg/bjKjDMcu+zg==",
|
||||
"dev": true,
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/is-extglob": {
|
||||
"version": "2.1.1",
|
||||
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
|
||||
"integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"bin": {
|
||||
"image-size": "bin/image-size.js"
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/is-glob": {
|
||||
"version": "4.0.3",
|
||||
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
|
||||
"integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"is-extglob": "^2.1.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/is-number": {
|
||||
"version": "7.0.0",
|
||||
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
|
||||
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"engines": {
|
||||
"node": ">=0.12.0"
|
||||
}
|
||||
},
|
||||
"node_modules/is-what": {
|
||||
"version": "4.1.16",
|
||||
"resolved": "https://registry.npmjs.org/is-what/-/is-what-4.1.16.tgz",
|
||||
|
|
@ -1970,80 +2314,6 @@
|
|||
"integrity": "sha512-xYSH7AvuQ6nXkq42x0v5S8/Iry+cfulBz/DJQzhIyESdLD7425jXsPy4vn5cCXU+HhRN2kVw51Vd1K6/By4BQg==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/less": {
|
||||
"version": "4.3.0",
|
||||
"resolved": "https://registry.npmjs.org/less/-/less-4.3.0.tgz",
|
||||
"integrity": "sha512-X9RyH9fvemArzfdP8Pi3irr7lor2Ok4rOttDXBhlwDg+wKQsXOXgHWduAJE1EsF7JJx0w0bcO6BC6tCKKYnXKA==",
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"dependencies": {
|
||||
"copy-anything": "^2.0.1",
|
||||
"parse-node-version": "^1.0.1",
|
||||
"tslib": "^2.3.0"
|
||||
},
|
||||
"bin": {
|
||||
"lessc": "bin/lessc"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=14"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"errno": "^0.1.1",
|
||||
"graceful-fs": "^4.1.2",
|
||||
"image-size": "~0.5.0",
|
||||
"make-dir": "^2.1.0",
|
||||
"mime": "^1.4.1",
|
||||
"needle": "^3.1.0",
|
||||
"source-map": "~0.6.0"
|
||||
}
|
||||
},
|
||||
"node_modules/less-loader": {
|
||||
"version": "12.3.0",
|
||||
"resolved": "https://registry.npmjs.org/less-loader/-/less-loader-12.3.0.tgz",
|
||||
"integrity": "sha512-0M6+uYulvYIWs52y0LqN4+QM9TqWAohYSNTo4htE8Z7Cn3G/qQMEmktfHmyJT23k+20kU9zHH2wrfFXkxNLtVw==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">= 18.12.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/webpack"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@rspack/core": "0.x || 1.x",
|
||||
"less": "^3.5.0 || ^4.0.0",
|
||||
"webpack": "^5.0.0"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"@rspack/core": {
|
||||
"optional": true
|
||||
},
|
||||
"webpack": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/less/node_modules/copy-anything": {
|
||||
"version": "2.0.6",
|
||||
"resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.6.tgz",
|
||||
"integrity": "sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"is-what": "^3.14.1"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/mesqueeb"
|
||||
}
|
||||
},
|
||||
"node_modules/less/node_modules/is-what": {
|
||||
"version": "3.14.1",
|
||||
"resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz",
|
||||
"integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==",
|
||||
"dev": true,
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/loadsh": {
|
||||
"version": "0.0.4",
|
||||
"resolved": "https://registry.npmjs.org/loadsh/-/loadsh-0.0.4.tgz",
|
||||
|
|
@ -2100,21 +2370,6 @@
|
|||
"@jridgewell/sourcemap-codec": "^1.5.0"
|
||||
}
|
||||
},
|
||||
"node_modules/make-dir": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
|
||||
"integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"pify": "^4.0.1",
|
||||
"semver": "^5.6.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6"
|
||||
}
|
||||
},
|
||||
"node_modules/math-intrinsics": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
|
||||
|
|
@ -2130,18 +2385,33 @@
|
|||
"integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/mime": {
|
||||
"version": "1.6.0",
|
||||
"resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
|
||||
"integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
|
||||
"node_modules/micromatch": {
|
||||
"version": "4.0.8",
|
||||
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
|
||||
"integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"bin": {
|
||||
"mime": "cli.js"
|
||||
"dependencies": {
|
||||
"braces": "^3.0.3",
|
||||
"picomatch": "^2.3.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=4"
|
||||
"node": ">=8.6"
|
||||
}
|
||||
},
|
||||
"node_modules/micromatch/node_modules/picomatch": {
|
||||
"version": "2.3.1",
|
||||
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
|
||||
"integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"engines": {
|
||||
"node": ">=8.6"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/jonschlinkert"
|
||||
}
|
||||
},
|
||||
"node_modules/mime-db": {
|
||||
|
|
@ -2218,23 +2488,13 @@
|
|||
"node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
|
||||
}
|
||||
},
|
||||
"node_modules/needle": {
|
||||
"version": "3.3.1",
|
||||
"resolved": "https://registry.npmjs.org/needle/-/needle-3.3.1.tgz",
|
||||
"integrity": "sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q==",
|
||||
"node_modules/node-addon-api": {
|
||||
"version": "7.1.1",
|
||||
"resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz",
|
||||
"integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"iconv-lite": "^0.6.3",
|
||||
"sax": "^1.2.4"
|
||||
},
|
||||
"bin": {
|
||||
"needle": "bin/needle"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 4.4.x"
|
||||
}
|
||||
"optional": true
|
||||
},
|
||||
"node_modules/node-fetch-native": {
|
||||
"version": "1.6.6",
|
||||
|
|
@ -2290,16 +2550,6 @@
|
|||
"integrity": "sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/parse-node-version": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz",
|
||||
"integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">= 0.10"
|
||||
}
|
||||
},
|
||||
"node_modules/pathe": {
|
||||
"version": "2.0.3",
|
||||
"resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz",
|
||||
|
|
@ -2330,17 +2580,6 @@
|
|||
"url": "https://github.com/sponsors/jonschlinkert"
|
||||
}
|
||||
},
|
||||
"node_modules/pify": {
|
||||
"version": "4.0.1",
|
||||
"resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
|
||||
"integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"engines": {
|
||||
"node": ">=6"
|
||||
}
|
||||
},
|
||||
"node_modules/pinia": {
|
||||
"version": "3.0.3",
|
||||
"resolved": "https://registry.npmjs.org/pinia/-/pinia-3.0.3.tgz",
|
||||
|
|
@ -2463,14 +2702,6 @@
|
|||
"integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/prr": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz",
|
||||
"integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true
|
||||
},
|
||||
"node_modules/quansync": {
|
||||
"version": "0.2.10",
|
||||
"resolved": "https://registry.npmjs.org/quansync/-/quansync-0.2.10.tgz",
|
||||
|
|
@ -2556,21 +2787,26 @@
|
|||
"fsevents": "~2.3.2"
|
||||
}
|
||||
},
|
||||
"node_modules/safer-buffer": {
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
|
||||
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
|
||||
"node_modules/sass": {
|
||||
"version": "1.90.0",
|
||||
"resolved": "https://registry.npmjs.org/sass/-/sass-1.90.0.tgz",
|
||||
"integrity": "sha512-9GUyuksjw70uNpb1MTYWsH9MQHOHY6kwfnkafC24+7aOMZn9+rVMBxRbLvw756mrBFbIsFg6Xw9IkR2Fnn3k+Q==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true
|
||||
"dependencies": {
|
||||
"chokidar": "^4.0.0",
|
||||
"immutable": "^5.0.2",
|
||||
"source-map-js": ">=0.6.2 <2.0.0"
|
||||
},
|
||||
"node_modules/sax": {
|
||||
"version": "1.4.1",
|
||||
"resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz",
|
||||
"integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==",
|
||||
"dev": true,
|
||||
"license": "ISC",
|
||||
"optional": true
|
||||
"bin": {
|
||||
"sass": "sass.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=14.0.0"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"@parcel/watcher": "^2.4.1"
|
||||
}
|
||||
},
|
||||
"node_modules/scule": {
|
||||
"version": "1.3.0",
|
||||
|
|
@ -2578,28 +2814,6 @@
|
|||
"integrity": "sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/semver": {
|
||||
"version": "5.7.2",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
|
||||
"integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
|
||||
"dev": true,
|
||||
"license": "ISC",
|
||||
"optional": true,
|
||||
"bin": {
|
||||
"semver": "bin/semver"
|
||||
}
|
||||
},
|
||||
"node_modules/source-map": {
|
||||
"version": "0.6.1",
|
||||
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
|
||||
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
|
||||
"dev": true,
|
||||
"license": "BSD-3-Clause",
|
||||
"optional": true,
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/source-map-js": {
|
||||
"version": "1.2.1",
|
||||
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
|
||||
|
|
@ -2689,6 +2903,20 @@
|
|||
"url": "https://github.com/sponsors/SuperchupuDev"
|
||||
}
|
||||
},
|
||||
"node_modules/to-regex-range": {
|
||||
"version": "5.0.1",
|
||||
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
|
||||
"integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"is-number": "^7.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8.0"
|
||||
}
|
||||
},
|
||||
"node_modules/tslib": {
|
||||
"version": "2.3.0",
|
||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz",
|
||||
|
|
|
|||
|
|
@ -26,9 +26,8 @@
|
|||
"@vitejs/plugin-vue": "^5.2.3",
|
||||
"amfe-flexible": "^2.2.1",
|
||||
"autoprefixer": "^10.4.21",
|
||||
"less": "^4.3.0",
|
||||
"less-loader": "^12.3.0",
|
||||
"prettier": "^3.6.0",
|
||||
"sass": "^1.90.0",
|
||||
"vite": "^6.3.5",
|
||||
"vite-plugin-remove-console": "^2.2.0"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -50,10 +50,11 @@ onMounted(() => {
|
|||
})
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
<style scoped lang="scss">
|
||||
@use "@/utils/self-adaption.scss" as *;
|
||||
.app-container {
|
||||
max-width: 100vw;
|
||||
min-height: 100vh;
|
||||
max-width: vw(1920);
|
||||
min-height: vh(1080);
|
||||
background: url("@/assets/images/bci.png");
|
||||
background-size: cover;
|
||||
background-repeat: no-repeat;
|
||||
|
|
|
|||
|
|
@ -255,7 +255,7 @@ defineExpose({
|
|||
})
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
<style scoped lang="scss">
|
||||
.timeAxis-component {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
|
|
|
|||
|
|
@ -11,16 +11,13 @@
|
|||
class="title-active-left"
|
||||
/>
|
||||
<div class="tltlemenu-left">
|
||||
<img
|
||||
src="@/assets/images/titlelogo.png"
|
||||
style="width: 20px; height: 20px; margin-right: 12px"
|
||||
/>
|
||||
<img src="@/assets/images/titlelogo.png" class="titlelogo" />
|
||||
{{ item.title }}
|
||||
</div>
|
||||
<img src="@/assets/images/titleright.png" alt="" style="width: 66px; height: 16px" />
|
||||
<img src="@/assets/images/titleright.png" class="titleright" />
|
||||
</div>
|
||||
<ul class="menu-items">
|
||||
<div v-for="child in item.subItems" :key="child.index" style="text-decoration: none">
|
||||
<div v-for="child in item.subItems" :key="child.index">
|
||||
<li
|
||||
:key="child.index"
|
||||
class="el-menu-item"
|
||||
|
|
@ -114,23 +111,23 @@ onMounted(() => {
|
|||
})
|
||||
</script>
|
||||
|
||||
<style lang="less">
|
||||
<style scoped lang="scss">
|
||||
.aside-component {
|
||||
width: 100%;
|
||||
height: 102.1%;
|
||||
.menu {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
border-width: 2px;
|
||||
border-width: vw(2);
|
||||
border-style: solid;
|
||||
border-image: linear-gradient(to bottom, #3aa1f8, #3aa1f833) 1;
|
||||
background-image: linear-gradient(to right, #063d7133, #081e38cc);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
padding: 10px 10px;
|
||||
padding: vh(10) vw(10);
|
||||
.menu-title {
|
||||
cursor: pointer;
|
||||
padding: 10px;
|
||||
padding: vh(10) vw(10);
|
||||
width: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
|
@ -138,9 +135,13 @@ onMounted(() => {
|
|||
border-radius: 2px;
|
||||
background: linear-gradient(90deg, rgba(24, 57, 92, 0.66) 0%, rgba(51, 120, 194, 0) 100%);
|
||||
&:hover {
|
||||
border-radius: 2px;
|
||||
border-radius: vw(2);
|
||||
background: linear-gradient(270deg, rgba(14, 167, 213, 0) 0%, rgba(8, 118, 190, 0.24) 100%);
|
||||
}
|
||||
.titleright {
|
||||
width: vw(66);
|
||||
height: vh(16);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -153,45 +154,49 @@ onMounted(() => {
|
|||
background-size: contain;
|
||||
position: relative;
|
||||
border: none;
|
||||
padding-left: 30px;
|
||||
padding-left: vw(30);
|
||||
}
|
||||
|
||||
.title-active-left {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 8%;
|
||||
width: 3px; /* 根据实际图片大小调整 */
|
||||
width: vw(3); /* 根据实际图片大小调整 */
|
||||
height: 88%;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.el-menu-item {
|
||||
width: 100%;
|
||||
height: 36px;
|
||||
margin: 12px 0;
|
||||
margin: vh(12) 0;
|
||||
cursor: pointer;
|
||||
color: #fff;
|
||||
border-radius: 2px;
|
||||
border-radius: vw(2);
|
||||
.el-menu-child-font {
|
||||
margin-left: 20px;
|
||||
margin-left: vw(20);
|
||||
}
|
||||
}
|
||||
|
||||
.el-menu-item.active {
|
||||
background-image: linear-gradient(270deg, rgba(14, 167, 213, 0) 0%, rgba(8, 118, 190, 0.24) 100%);
|
||||
border-radius: 2px;
|
||||
border-radius: vw(2);
|
||||
}
|
||||
|
||||
.tltlemenu-left {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
.titlelogo {
|
||||
width: vw(20);
|
||||
height: vh(20);
|
||||
margin-right: vw(12);
|
||||
}
|
||||
}
|
||||
|
||||
.sub-menu-items {
|
||||
list-style-type: none;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
margin-top: 5px;
|
||||
margin-top: vh(5);
|
||||
}
|
||||
|
||||
.el-menu-item:hover {
|
||||
|
|
|
|||
|
|
@ -20,19 +20,19 @@ const props = defineProps({
|
|||
const openDialog = ref(props.openDialog)
|
||||
</script>
|
||||
|
||||
<style lang="less">
|
||||
<style lang="scss">
|
||||
:deep(.custom-dialog-prepare) {
|
||||
width: 480px;
|
||||
height: 250px;
|
||||
width: vw(480);
|
||||
height: vh(250);
|
||||
background: url("@/assets/images/preparation.png") no-repeat center;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
:deep(.custom-dialog-prepare) .pre-icon {
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
margin-right: 10px;
|
||||
width: vw(30);
|
||||
height: vh(30);
|
||||
margin-right: vw(10);
|
||||
}
|
||||
:deep(.custom-dialog-prepare) .center-tips {
|
||||
display: flex;
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
<script setup></script>
|
||||
|
||||
<style lang="less">
|
||||
<style lang="scss">
|
||||
.header-logo {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
|
|
|
|||
|
|
@ -24,27 +24,27 @@ const openDialog = ref(false)
|
|||
const handleOpenDialog = (isOpen) => (openDialog.value = isOpen)
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
<style scoped lang="scss">
|
||||
.el-container-beside {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
.el-header {
|
||||
width: 100%;
|
||||
height: 110px;
|
||||
height: vh(125);
|
||||
padding: 0;
|
||||
}
|
||||
.el-aside {
|
||||
overflow: visible;
|
||||
color: aliceblue;
|
||||
font-family: Arial, sans-serif;
|
||||
margin-left: 20px;
|
||||
margin-bottom: 20px;
|
||||
margin-left: vw(20);
|
||||
margin-bottom: vh(20);
|
||||
}
|
||||
.el-main {
|
||||
flex: 1;
|
||||
padding: 0 0;
|
||||
padding: 0 13px;
|
||||
padding: 0 vw(13);
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
|
|||
|
|
@ -19,12 +19,27 @@ export const useLoginStore = defineStore("loginStore", {
|
|||
ElMessage.success("登录成功!")
|
||||
router.push("/navigation")
|
||||
},
|
||||
|
||||
async loginForRefreshToken() {
|
||||
try {
|
||||
const res = await refreshToken()
|
||||
if (res.code == 200) {
|
||||
console.log('刷新token结果:', res)
|
||||
if (res.code === 200) {
|
||||
this.setToken(res.data.accessToken)
|
||||
return true // 刷新成功
|
||||
} else {
|
||||
// 刷新失败,清除token并跳转登录
|
||||
this.token = null
|
||||
cache.removeItem("token")
|
||||
router.push("/login")
|
||||
return false
|
||||
}
|
||||
} catch (error) {
|
||||
console.error("刷新token失败:", error)
|
||||
// 网络错误或其他异常,清除token并跳转登录
|
||||
this.token = null
|
||||
cache.removeItem("token")
|
||||
router.push("/login")
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
|
|
|||
3
src/utils/echarts-self-adaption.js
Normal file
3
src/utils/echarts-self-adaption.js
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
export function nowSize(val, initWidth = 1920) {
|
||||
return val * (window.visualViewport.width / initWidth)
|
||||
}
|
||||
12
src/utils/self-adaption.scss
Normal file
12
src/utils/self-adaption.scss
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
@use "sass:math";
|
||||
|
||||
$designWidth: 1920;
|
||||
$designHeight: 1080;
|
||||
|
||||
@function vw($px) {
|
||||
@return math.div($px, $designWidth) * 100vw;
|
||||
}
|
||||
|
||||
@function vh($px) {
|
||||
@return math.div($px, $designHeight) * 100vh;
|
||||
}
|
||||
|
|
@ -63,7 +63,7 @@ const props = defineProps({
|
|||
})
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
<style scoped lang="scss">
|
||||
.anomalousContent-component {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@ const props = defineProps({
|
|||
})
|
||||
</script>
|
||||
|
||||
<style lang="less" scoped>
|
||||
<style lang="scss" scoped>
|
||||
.groupPanel-component {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
|
|
|
|||
|
|
@ -114,7 +114,7 @@ onMounted(async () => {
|
|||
})
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
<style scoped lang="scss">
|
||||
:deep(.custom-dialog) {
|
||||
width: 640px;
|
||||
border-width: 0px, 0px, 0px, 0px;
|
||||
|
|
|
|||
|
|
@ -312,7 +312,7 @@ onBeforeUnmount(() => {
|
|||
})
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
<style scoped lang="scss">
|
||||
.groupChart-component {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
|
|
|
|||
|
|
@ -380,7 +380,7 @@ watch(
|
|||
)
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
<style scoped lang="scss">
|
||||
.groupGraph-component {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
|
|
|
|||
|
|
@ -77,7 +77,7 @@ const typeTitle = ref({
|
|||
})
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
<style scoped lang="scss">
|
||||
.groupPanel-component {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
|
|
|
|||
|
|
@ -281,7 +281,7 @@ onBeforeUnmount(() => {
|
|||
})
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
<style scoped lang="scss">
|
||||
.postList-component {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
|
|
|
|||
|
|
@ -124,7 +124,7 @@ onMounted(() => {
|
|||
})
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
<style scoped lang="scss">
|
||||
.groupShow-component {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
|
|
|
|||
|
|
@ -91,7 +91,7 @@ onMounted(() => {
|
|||
})
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
<style scoped lang="scss">
|
||||
:deep(.custom-dialog) {
|
||||
width: 640px;
|
||||
border-width: 0px, 0px, 0px, 0px;
|
||||
|
|
|
|||
|
|
@ -81,7 +81,7 @@ onMounted(() => {
|
|||
})
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
<style scoped lang="scss">
|
||||
.groupAnalysis-component {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
|
|
|
|||
|
|
@ -300,7 +300,7 @@ const handleResize = () => {
|
|||
// })
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
<style scoped lang="scss">
|
||||
.groupPanel-component {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
|
|
|
|||
|
|
@ -121,7 +121,7 @@ onMounted(async () => {
|
|||
})
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
<style scoped lang="scss">
|
||||
:deep(.custom-dialog) {
|
||||
width: 640px;
|
||||
border-width: 0px, 0px, 0px, 0px;
|
||||
|
|
|
|||
|
|
@ -78,7 +78,7 @@ onMounted(() => {
|
|||
})
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
<style scoped lang="scss">
|
||||
.groupAnalysis-component {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
|
|
|
|||
|
|
@ -225,7 +225,7 @@ const focusedTopicMap = {
|
|||
onMounted(() => {})
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
<style scoped lang="scss">
|
||||
.groupPanel-component {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
|
|
|
|||
|
|
@ -132,7 +132,7 @@ onMounted(async () => {
|
|||
})
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
<style scoped lang="scss">
|
||||
:deep(.custom-dialog) {
|
||||
width: 640px;
|
||||
border-width: 0px, 0px, 0px, 0px;
|
||||
|
|
|
|||
|
|
@ -71,15 +71,15 @@ onMounted(() => {
|
|||
})
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
<style scoped lang="scss">
|
||||
:deep(.custom-dialog) {
|
||||
width: 640px;
|
||||
border-width: 0px, 0px, 0px, 0px;
|
||||
width: vw(640);
|
||||
border-width: 0, 0, 0, 0;
|
||||
border-style: solid;
|
||||
border-image-source: linear-gradient(180deg, #3aa1f8 0%, rgba(58, 161, 248, 0.2) 100%);
|
||||
background-color: rgba(6, 45, 90, 1);
|
||||
border: 1px solid #1a8bff;
|
||||
border-radius: 2px;
|
||||
border: vw(1) solid #1a8bff;
|
||||
border-radius: vw(2);
|
||||
padding: 0 0;
|
||||
z-index: 1;
|
||||
}
|
||||
|
|
@ -87,7 +87,7 @@ onMounted(() => {
|
|||
:deep(.custom-dialog) .dialog-content .content {
|
||||
color: rgba(255, 255, 255, 0.8);
|
||||
font-family: "PingFang SC";
|
||||
font-size: 16px;
|
||||
font-size: vw(16);
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
opacity: 0.7;
|
||||
|
|
@ -104,18 +104,18 @@ onMounted(() => {
|
|||
}
|
||||
|
||||
.statistics-container {
|
||||
height: 42px;
|
||||
height: vh(42);
|
||||
width: 97%;
|
||||
border-radius: 4px;
|
||||
border-radius: vw(4);
|
||||
border: 1px solid #3aa1f8;
|
||||
background: linear-gradient(270deg, rgba(0, 82, 125, 0.48) 0%, rgba(0, 200, 255, 0.23) 100%);
|
||||
backdrop-filter: blur(3px);
|
||||
backdrop-filter: blur(vw(3));
|
||||
display: flex;
|
||||
justify-content: space-around;
|
||||
align-items: center;
|
||||
position: absolute;
|
||||
bottom: 13px;
|
||||
left: 10px;
|
||||
bottom: vh(13);
|
||||
left: vw(10);
|
||||
.statistics-item {
|
||||
display: flex;
|
||||
height: 100%;
|
||||
|
|
@ -123,13 +123,13 @@ onMounted(() => {
|
|||
align-items: center;
|
||||
color: #fff;
|
||||
.statistics-item-icon {
|
||||
margin-right: 5px;
|
||||
margin-top: 2px;
|
||||
margin-right: vw(5);
|
||||
margin-top: vh(2);
|
||||
}
|
||||
.statistics-item-name {
|
||||
color: #fff;
|
||||
font-family: OPPOSans;
|
||||
font-size: 14px;
|
||||
font-size: vw(14);
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
line-height: normal;
|
||||
|
|
@ -137,7 +137,7 @@ onMounted(() => {
|
|||
.statistics-item-number {
|
||||
color: #fff;
|
||||
font-family: D-DIN;
|
||||
font-size: 17px;
|
||||
font-size: vw(17);
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
<img
|
||||
src="@/assets/images/head/ContextoftheincidentTitle.png"
|
||||
alt=""
|
||||
style="margin-top: -17px; margin-left: -11px"
|
||||
class="ContextoftheincidentTitle"
|
||||
/>
|
||||
<div
|
||||
class="post-list-wrapper"
|
||||
|
|
@ -110,31 +110,31 @@ onBeforeUnmount(() => {
|
|||
})
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
<style scoped lang="scss">
|
||||
.anchorStatistics-component {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
.ContextoftheincidentTitle {
|
||||
margin-top: vh(-18);
|
||||
margin-left: vw(-12);
|
||||
}
|
||||
.post-list-wrapper {
|
||||
width: 100%;
|
||||
height: 80%;
|
||||
overflow: auto;
|
||||
&::-webkit-scrollbar {
|
||||
width: vw(3); /* 垂直滚动条宽度 */
|
||||
height: vh(5); /* 水平滚动条高度 */
|
||||
}
|
||||
/* 滚动条整体样式 - WebKit浏览器 */
|
||||
.post-list-wrapper::-webkit-scrollbar {
|
||||
width: 3px; /* 垂直滚动条宽度 */
|
||||
height: 5px; /* 水平滚动条高度 */
|
||||
}
|
||||
|
||||
/* 滚动条滑块 */
|
||||
.post-list-wrapper::-webkit-scrollbar-thumb {
|
||||
&::-webkit-scrollbar-thumb {
|
||||
background: rgba(147, 210, 255, 0.3); /* 蓝色半透明滑块 */
|
||||
border-radius: 4px;
|
||||
border-radius: vw(4);
|
||||
}
|
||||
|
||||
/* 鼠标悬停在滑块上的效果 */
|
||||
.post-list-wrapper::-webkit-scrollbar-thumb:hover {
|
||||
&::-webkit-scrollbar-thumb:hover {
|
||||
background: rgba(147, 210, 255, 0.5); /* 更明显的蓝色 */
|
||||
}
|
||||
}
|
||||
|
||||
.scrolling-content {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
|
@ -151,16 +151,16 @@ onBeforeUnmount(() => {
|
|||
.post-item {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
height: 36px;
|
||||
padding: 0 16px;
|
||||
height: vh(36);
|
||||
padding: 0 vw(16);
|
||||
background: linear-gradient(90deg, rgba(63, 169, 245, 0.16) 0%, rgba(0, 84, 187, 0) 100%);
|
||||
border-left: 2px solid #3fa9f5;
|
||||
border-left: vw(2) solid #3fa9f5;
|
||||
color: white;
|
||||
font-size: 14px;
|
||||
gap: 12px;
|
||||
font-size: vw(14);
|
||||
gap: vw(12);
|
||||
flex-shrink: 0;
|
||||
cursor: pointer;
|
||||
margin: 8px 0;
|
||||
margin: vh(8) 0;
|
||||
}
|
||||
|
||||
.post-item.highlighted {
|
||||
|
|
@ -170,15 +170,15 @@ onBeforeUnmount(() => {
|
|||
.post-type {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
gap: vw(8);
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.post-type-text {
|
||||
color: #8efbff;
|
||||
font-size: 14px;
|
||||
font-size: vw(14);
|
||||
font-weight: 400;
|
||||
text-shadow: 0px 1px 1px rgba(0, 0, 0, 0.25);
|
||||
text-shadow: 0px vh(1) vh(1) rgba(0, 0, 0, 0.25);
|
||||
}
|
||||
|
||||
.timestamp {
|
||||
|
|
@ -196,17 +196,17 @@ onBeforeUnmount(() => {
|
|||
.influence-section {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
gap: vw(8);
|
||||
flex-shrink: 0;
|
||||
}
|
||||
.influence-label {
|
||||
width: 90px;
|
||||
width: vw(90);
|
||||
display: flex;
|
||||
justify-content: flex-start;
|
||||
}
|
||||
.influence-bar {
|
||||
width: 200px;
|
||||
height: 10px;
|
||||
width: vw(200);
|
||||
height: vh(10);
|
||||
position: relative;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
|
@ -214,14 +214,14 @@ onBeforeUnmount(() => {
|
|||
|
||||
.bar-track {
|
||||
width: 100%;
|
||||
height: 2px;
|
||||
height: vh(2);
|
||||
background-color: rgba(208, 222, 238, 0.1);
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
.bar-fill {
|
||||
position: absolute;
|
||||
height: 2px;
|
||||
height: vh(2);
|
||||
background: linear-gradient(270deg, #00f3ff 0%, #00527d 100%);
|
||||
}
|
||||
|
||||
|
|
@ -229,20 +229,20 @@ onBeforeUnmount(() => {
|
|||
position: absolute;
|
||||
top: 50%;
|
||||
transform: translateY(-50%);
|
||||
height: 16px;
|
||||
width: 16px;
|
||||
height: vh(16);
|
||||
width: vw(16);
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.bar-handle {
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
width: vw(10);
|
||||
height: vh(10);
|
||||
border-radius: 50%;
|
||||
background-color: #e0f1ff;
|
||||
position: relative;
|
||||
box-shadow: 0 0 6px 0 rgba(13, 97, 255, 0.8);
|
||||
box-shadow: 0 0 vw(6) 0 rgba(13, 97, 255, 0.8);
|
||||
}
|
||||
|
||||
.bar-handle::before {
|
||||
|
|
@ -251,10 +251,10 @@ onBeforeUnmount(() => {
|
|||
top: 50%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
width: vw(16);
|
||||
height: vh(16);
|
||||
border-radius: 50%;
|
||||
border: 1px solid rgba(21, 154, 255, 0.3);
|
||||
border: vw(1) solid rgba(21, 154, 255, 0.3);
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@
|
|||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ref, onMounted, onUnmounted, watch } from "vue"
|
||||
import { ref, onMounted, onUnmounted } from "vue"
|
||||
import * as echarts from "echarts"
|
||||
import { useKeyNodeRecognitionStore } from "@/store/keyNodeRecognition/index"
|
||||
const keyNodeStore = useKeyNodeRecognitionStore()
|
||||
|
|
@ -267,36 +267,36 @@ onUnmounted(() => {
|
|||
})
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
<style scoped lang="scss">
|
||||
.attentionTopic-component {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
.headerImage {
|
||||
margin-top: -7px;
|
||||
margin-top: vh(-8);
|
||||
}
|
||||
.attentionTopic-content {
|
||||
padding: 10px 10px;
|
||||
padding: vh(10) vw(10);
|
||||
color: #fff;
|
||||
.topic-list {
|
||||
width: 100%;
|
||||
height: 285px;
|
||||
height: vh(285);
|
||||
overflow: auto;
|
||||
&::-webkit-scrollbar {
|
||||
width: 3px; /* 垂直滚动条宽度 */
|
||||
height: 5px; /* 水平滚动条高度 */
|
||||
width: vw(3); /* 垂直滚动条宽度 */
|
||||
height: vh(5); /* 水平滚动条高度 */
|
||||
}
|
||||
&::-webkit-scrollbar-thumb {
|
||||
background: rgba(147, 210, 255, 0.3); /* 蓝色半透明滑块 */
|
||||
border-radius: 4px;
|
||||
border-radius: vw(4);
|
||||
}
|
||||
&::-webkit-scrollbar-thumb:hover {
|
||||
background: rgba(147, 210, 255, 0.5); /* 更明显的蓝色 */
|
||||
}
|
||||
.topic-item {
|
||||
width: 100%;
|
||||
height: 70px;
|
||||
height: vh(70);
|
||||
border-bottom: 0.5px solid rgba(0, 113, 188, 0.5);
|
||||
padding: 10px 5px;
|
||||
padding: vh(10) vw(5);
|
||||
.topic-item-content {
|
||||
cursor: pointer;
|
||||
width: 100%;
|
||||
|
|
@ -310,11 +310,11 @@ onUnmounted(() => {
|
|||
}
|
||||
&:hover {
|
||||
background-color: #182441;
|
||||
border-radius: 5px;
|
||||
border-radius: vw(5);
|
||||
}
|
||||
.topic-content {
|
||||
width: 220px;
|
||||
font-size: 15px;
|
||||
width: vw(220);
|
||||
font-size: vw(15);
|
||||
white-space: nowrap; /* 强制不换行 */
|
||||
overflow: hidden; /* 隐藏溢出内容 */
|
||||
text-overflow: ellipsis; /* 用省略号代替溢出文本 */
|
||||
|
|
@ -324,7 +324,7 @@ onUnmounted(() => {
|
|||
}
|
||||
.topic-chart {
|
||||
width: 100%;
|
||||
height: 200px;
|
||||
height: vh(200);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -154,20 +154,6 @@ const initChart = async () => {
|
|||
{
|
||||
data: categories.map((c) => ({
|
||||
name: c.name,
|
||||
/* itemStyle: {
|
||||
color:
|
||||
c.category === 0
|
||||
? new echarts.graphic.LinearGradient(1, 0, 0, 0, [
|
||||
{ offset: 1, color: "#1a3860" }, // 最左侧
|
||||
{ offset: 0.5, color: "#38546b" }, // 中间
|
||||
{ offset: 0, color: "#5fb3b3" } // 最右侧
|
||||
]) // 分类0的渐变
|
||||
: new echarts.graphic.LinearGradient(1, 0, 0, 0, [
|
||||
{ offset: 0, color: "#9eec9c" },
|
||||
{ offset: 0.37, color: "#aef295" },
|
||||
{ offset: 1, color: "#c2f989" }
|
||||
])
|
||||
}, */
|
||||
icon: c.icon
|
||||
})),
|
||||
right: 15,
|
||||
|
|
@ -329,19 +315,24 @@ const handleClickNode = () => {
|
|||
})
|
||||
}
|
||||
|
||||
//echarts自适应方法
|
||||
window.addEventListener("resize", function () {
|
||||
chart.resize()
|
||||
})
|
||||
|
||||
onMounted(() => {
|
||||
initChart()
|
||||
handleClickNode()
|
||||
})
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
<style scoped lang="scss">
|
||||
.communityNode-component {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
.container {
|
||||
width: 100%;
|
||||
height: 450px;
|
||||
height: vh(450);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
|
|
|
|||
|
|
@ -395,7 +395,7 @@ onMounted(async () => {
|
|||
})
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
<style scoped lang="scss">
|
||||
.detailNode-component {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
<div class="monitor-list" ref="monitorListRef">
|
||||
<div class="monitor-item" v-for="(item, index) in anchorMonitorList" :key="index">
|
||||
<div class="monitor-item-content">
|
||||
<img :src="item.avatar" alt="" class="avatar" />
|
||||
<img :src="item.avatar" class="avatar" />
|
||||
<div class="context">
|
||||
<div class="title-and-time">
|
||||
<div class="title">{{ item.commenter }}</div>
|
||||
|
|
@ -38,7 +38,7 @@ const props = defineProps({
|
|||
const sortAnchorMonitorListByTime = (anchorMonitorList) => {
|
||||
return anchorMonitorList.sort((a, b) => {
|
||||
// 将时间字符串转换为时间戳进行比较
|
||||
return new Date(a.time.trim()) - new Date(b.time.trim());
|
||||
return new Date(a.time.trim()) - new Date(b.time.trim())
|
||||
})
|
||||
}
|
||||
props.anchorMonitorList = sortAnchorMonitorListByTime(props.anchorMonitorList)
|
||||
|
|
@ -68,42 +68,51 @@ onBeforeUnmount(() => {
|
|||
})
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
<style scoped lang="scss">
|
||||
.monitoring-component {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
|
||||
padding: 0 vw(10);
|
||||
.headerImage {
|
||||
margin-top: -7px;
|
||||
margin-top: vh(-8);
|
||||
margin-left: vw(-12);
|
||||
}
|
||||
.monitor-list {
|
||||
padding: 20px 20px;
|
||||
margin-bottom: 15px;
|
||||
padding: vh(20) vw(10);
|
||||
width: 100%;
|
||||
height: 190px;
|
||||
height: vh(190);
|
||||
overflow: auto;
|
||||
-ms-overflow-style: none; /* IE 和 Edge */
|
||||
scrollbar-width: none; /* Firefox */
|
||||
&::-webkit-scrollbar {
|
||||
width: vw(3); /* 垂直滚动条宽度 */
|
||||
height: vh(5); /* 水平滚动条高度 */
|
||||
}
|
||||
&::-webkit-scrollbar-thumb {
|
||||
background: rgba(147, 210, 255, 0.3); /* 蓝色半透明滑块 */
|
||||
border-radius: vw(4);
|
||||
}
|
||||
&::-webkit-scrollbar-thumb:hover {
|
||||
background: rgba(147, 210, 255, 0.5); /* 更明显的蓝色 */
|
||||
}
|
||||
.monitor-item {
|
||||
width: 100%;
|
||||
height: 80px;
|
||||
height: vh(80);
|
||||
border-bottom: 0.5px solid rgba(0, 113, 188, 0.5);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
.monitor-item-content {
|
||||
width: 100%;
|
||||
height: 80%;
|
||||
padding: 0px 10px;
|
||||
padding: vh(0) vw(10);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
cursor: pointer;
|
||||
.avatar {
|
||||
width: 32px;
|
||||
height: 32px;
|
||||
border-radius: 5px;
|
||||
width: vw(32);
|
||||
height: vh(32);
|
||||
border-radius: vw(5);
|
||||
}
|
||||
.context {
|
||||
padding-left: 15px;
|
||||
padding-left: vw(15);
|
||||
flex: 1;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
|
@ -113,9 +122,9 @@ onBeforeUnmount(() => {
|
|||
display: flex;
|
||||
justify-content: space-between;
|
||||
.title {
|
||||
width: 100px;
|
||||
width: vw(100);
|
||||
color: #fff;
|
||||
font-size: 16px;
|
||||
font-size: vw(16);
|
||||
white-space: nowrap; /* 禁止换行 */
|
||||
overflow: hidden; /* 隐藏溢出内容 */
|
||||
text-overflow: ellipsis; /* 显示省略号 */
|
||||
|
|
@ -123,7 +132,7 @@ onBeforeUnmount(() => {
|
|||
.time {
|
||||
color: rgba(255, 255, 255, 0.8);
|
||||
font-family: "PingFang SC";
|
||||
font-size: 12px;
|
||||
font-size: vw(12);
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
line-height: normal;
|
||||
|
|
@ -138,7 +147,7 @@ onBeforeUnmount(() => {
|
|||
-webkit-line-clamp: 2; /* 限制显示的行数 */
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
font-size: 13px;
|
||||
font-size: vw(13);
|
||||
font-family: "PingFang SC";
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
|
|
@ -150,7 +159,7 @@ onBeforeUnmount(() => {
|
|||
}
|
||||
&:hover {
|
||||
background-color: #152341;
|
||||
border-radius: 10px;
|
||||
border-radius: vw(10);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,76 +0,0 @@
|
|||
<template>
|
||||
<div class="search-component">
|
||||
<input
|
||||
type="text"
|
||||
class="search-input"
|
||||
placeholder="南海争端系列舆情事件"
|
||||
v-model="searchValue"
|
||||
/>
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="18"
|
||||
height="18"
|
||||
viewBox="0 0 16 16"
|
||||
fill="none"
|
||||
@click="handleSearchBtn"
|
||||
class="rear-icon"
|
||||
>
|
||||
<path
|
||||
d="M9.15194 5.0478C8.66938 4.56523 8.00271 4.26676 7.26631 4.26676C6.52994 4.26676 5.86328 4.56523 5.38071 5.0478M11.3401 11.3407L14.1686 14.1691M7.26628 12.9334C10.3959 12.9334 12.9329 10.3964 12.9329 7.26676C12.9329 4.13716 10.3959 1.6001 7.26628 1.6001C4.13668 1.6001 1.59961 4.13716 1.59961 7.26676C1.59961 10.3964 4.13668 12.9334 7.26628 12.9334Z"
|
||||
stroke="#8ADCFA"
|
||||
stroke-width="1.5"
|
||||
/>
|
||||
</svg>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ref } from "vue"
|
||||
|
||||
const searchValue = ref(null)
|
||||
const emit = defineEmits(["click:search"])
|
||||
|
||||
const handleSearchBtn = () => {
|
||||
if (!searchValue.value) return
|
||||
emit("click:search", searchValue.value)
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
.search-component {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
.search-input {
|
||||
border: none;
|
||||
outline: none;
|
||||
background: none;
|
||||
box-shadow: none;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
appearance: none;
|
||||
-webkit-appearance: none;
|
||||
font: inherit;
|
||||
color: inherit;
|
||||
width: 100%;
|
||||
height: 75%;
|
||||
max-height: 75%;
|
||||
border-radius: 58px;
|
||||
background: rgba(35, 98, 145, 0.66);
|
||||
border: 1px solid #3fa9f5;
|
||||
text-indent: 1em;
|
||||
color: #fff;
|
||||
|
||||
&::placeholder {
|
||||
color: #fff; // 你想要的颜色
|
||||
opacity: 0.6; // 保证颜色不透明
|
||||
}
|
||||
}
|
||||
.rear-icon {
|
||||
margin-left: -30px;
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
@ -209,18 +209,18 @@ onMounted(() => {
|
|||
})
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
<style scoped lang="scss">
|
||||
.diamond {
|
||||
width: 6px;
|
||||
height: 6px;
|
||||
width: vw(6);
|
||||
height: vh(6);
|
||||
background-color: #fff;
|
||||
margin-right: 10px;
|
||||
box-shadow: 0 4px 8px rgb(0, 123, 255);
|
||||
margin-right: vw(10);
|
||||
box-shadow: 0 vh(4) vh(8) rgb(0, 123, 255);
|
||||
}
|
||||
.userChart-component {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
padding: 0px 5px;
|
||||
padding: 0 vw(5);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
.scroll-content {
|
||||
|
|
@ -228,12 +228,12 @@ onMounted(() => {
|
|||
height: 100%;
|
||||
overflow-y: auto;
|
||||
&::-webkit-scrollbar {
|
||||
width: 3px; /* 垂直滚动条宽度 */
|
||||
height: 5px; /* 水平滚动条高度 */
|
||||
width: vw(3); /* 垂直滚动条宽度 */
|
||||
height: vh(5); /* 水平滚动条高度 */
|
||||
}
|
||||
&::-webkit-scrollbar-thumb {
|
||||
background: rgba(147, 210, 255, 0.3); /* 蓝色半透明滑块 */
|
||||
border-radius: 4px;
|
||||
border-radius: vw(4);
|
||||
}
|
||||
&::-webkit-scrollbar-thumb:hover {
|
||||
background: rgba(147, 210, 255, 0.5); /* 更明显的蓝色 */
|
||||
|
|
@ -247,7 +247,7 @@ onMounted(() => {
|
|||
align-items: center;
|
||||
color: #c6e3f5;
|
||||
font-family: "PingFang SC";
|
||||
font-size: 16px;
|
||||
font-size: vw(16);
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
line-height: normal;
|
||||
|
|
@ -255,29 +255,29 @@ onMounted(() => {
|
|||
}
|
||||
}
|
||||
.anchor-info-content {
|
||||
padding: 10px 15px;
|
||||
padding: vh(10) vw(15);
|
||||
color: #fff;
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
gap: 10px;
|
||||
gap: vw(10);
|
||||
.info-item {
|
||||
display: flex;
|
||||
width: 150px;
|
||||
font-size: 14px;
|
||||
width: vw(150);
|
||||
font-size: vw(14);
|
||||
|
||||
.info-item-icon {
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
margin-top: 4px;
|
||||
width: vw(24);
|
||||
height: vh(24);
|
||||
margin-top: vh(4);
|
||||
}
|
||||
.info-item-number {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
margin-left: 10px;
|
||||
margin-left: vw(10);
|
||||
.number {
|
||||
color: #fff;
|
||||
font-family: MiSans;
|
||||
font-size: 18px;
|
||||
font-size: vw(18);
|
||||
font-style: normal;
|
||||
font-weight: 630;
|
||||
}
|
||||
|
|
@ -287,7 +287,7 @@ onMounted(() => {
|
|||
.chart-tab {
|
||||
display: flex;
|
||||
justify-content: space-around;
|
||||
border-radius: 5px;
|
||||
border-radius: vw(5);
|
||||
overflow: hidden;
|
||||
border: 1px solid #20406e;
|
||||
|
||||
|
|
@ -296,16 +296,16 @@ onMounted(() => {
|
|||
color: #fff;
|
||||
opacity: 0.7;
|
||||
cursor: pointer;
|
||||
font-size: 14px;
|
||||
font-size: vw(14);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
padding: 4px 10px;
|
||||
padding: vh(4) vw(10);
|
||||
}
|
||||
}
|
||||
.category-chart {
|
||||
width: 100%;
|
||||
height: 130px; // 你可以根据实际需求调整高度
|
||||
height: vh(130); // 你可以根据实际需求调整高度
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,11 +1,6 @@
|
|||
<template>
|
||||
<div class="userPanel-container">
|
||||
<img
|
||||
src="@/assets/images/head/anchorUserListTitle2.png"
|
||||
alt=""
|
||||
class="headerImage"
|
||||
style="margin-top: -7px"
|
||||
/>
|
||||
<img src="@/assets/images/head/anchorUserListTitle2.png" class="headerImage" />
|
||||
<div class="tabs">
|
||||
<div class="tabs-switch">
|
||||
<div
|
||||
|
|
@ -70,16 +65,18 @@ const highLightNodeHandle = (item) => {
|
|||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
<style scoped lang="scss">
|
||||
.userPanel-container {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
||||
.headerImage {
|
||||
margin-top: vh(-8);
|
||||
}
|
||||
.tabs {
|
||||
flex: 1;
|
||||
padding: 10px 20px;
|
||||
padding: vh(10) vw(20);
|
||||
|
||||
.tabs-switch {
|
||||
margin: 0 auto;
|
||||
|
|
@ -87,82 +84,82 @@ const highLightNodeHandle = (item) => {
|
|||
justify-content: space-between;
|
||||
.switch-item {
|
||||
flex: 1;
|
||||
padding: 4px 0px;
|
||||
padding: vh(4) 0;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
border: 1px solid #20406e;
|
||||
font-size: 14px;
|
||||
border: vw(1) solid #20406e;
|
||||
font-size: vw(14);
|
||||
cursor: pointer;
|
||||
color: #cccccc9d;
|
||||
&:first-child {
|
||||
border-radius: 5px 0 0 5px;
|
||||
border-radius: vw(5) 0 0 vw(5);
|
||||
}
|
||||
&:last-child {
|
||||
border-radius: 0px 5px 5px 0px;
|
||||
border-radius: 0 vw(5) vw(5) 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
.tabs-list {
|
||||
width: 100%;
|
||||
height: 430px;
|
||||
margin-top: 10px;
|
||||
padding-right: 5px;
|
||||
height: vh(430);
|
||||
margin-top: vh(10);
|
||||
padding-right: vw(5);
|
||||
overflow: auto;
|
||||
&::-webkit-scrollbar {
|
||||
width: 3px; /* 垂直滚动条宽度 */
|
||||
height: 5px; /* 水平滚动条高度 */
|
||||
width: vw(3); /* 垂直滚动条宽度 */
|
||||
height: vh(5); /* 水平滚动条高度 */
|
||||
}
|
||||
&::-webkit-scrollbar-thumb {
|
||||
background: rgba(147, 210, 255, 0.3); /* 蓝色半透明滑块 */
|
||||
border-radius: 4px;
|
||||
border-radius: vw(4);
|
||||
}
|
||||
&::-webkit-scrollbar-thumb:hover {
|
||||
background: rgba(147, 210, 255, 0.3); /* 更明显的蓝色 */
|
||||
}
|
||||
.tabs-list-item {
|
||||
width: 100%;
|
||||
height: 80px;
|
||||
padding: 10px 0px;
|
||||
height: vh(80);
|
||||
padding: vh(10) 0;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
cursor: pointer;
|
||||
border-bottom: 0.5px solid rgba(0, 113, 188, 0.5);
|
||||
border-bottom: vw(0.5) solid rgba(0, 113, 188, 0.5);
|
||||
.order {
|
||||
color: #fff;
|
||||
font-size: 16px;
|
||||
font-size: vw(16);
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
margin-right: 15px;
|
||||
margin-right: vw(15);
|
||||
}
|
||||
.avatar {
|
||||
width: 48px;
|
||||
height: 48px;
|
||||
border-radius: 5px;
|
||||
width: vw(48);
|
||||
height: vh(48);
|
||||
border-radius: vw(5);
|
||||
}
|
||||
.user-info {
|
||||
flex: 1;
|
||||
padding-left: 15px;
|
||||
padding-left: vw(15);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
.username {
|
||||
color: #fff;
|
||||
font-size: 16px;
|
||||
font-size: vw(16);
|
||||
font-family: "微软雅黑";
|
||||
}
|
||||
.userState {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
margin-top: 8px;
|
||||
font-size: 13px;
|
||||
margin-top: vh(8);
|
||||
font-size: vw(13);
|
||||
color: #cccccc9d;
|
||||
div {
|
||||
display: flex;
|
||||
p {
|
||||
color: #fff;
|
||||
margin-left: 5px;
|
||||
margin-left: vw(5);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -178,6 +175,6 @@ const highLightNodeHandle = (item) => {
|
|||
color: #fff;
|
||||
opacity: 1;
|
||||
background-color: #236291;
|
||||
border: 1px solid #3fa9f5;
|
||||
border: vw(1) solid #3fa9f5;
|
||||
}
|
||||
</style>
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<el-dialog v-model="postDialog" width="640" align-center class="custom-dialog">
|
||||
<el-dialog v-model="postDialog" :width="nowSize(640)" align-center class="custom-dialog">
|
||||
<img src="@/assets/images/head/post-dialog-title.png" alt="" class="postTitleImage" />
|
||||
<div class="dialog-content">
|
||||
<div class="post-content">{{ currentPostPost.content }}</div>
|
||||
|
|
@ -67,7 +67,7 @@
|
|||
</div>
|
||||
</el-dialog>
|
||||
|
||||
<el-dialog v-model="topicDialog" width="591" align-center class="custom-dialog">
|
||||
<el-dialog v-model="topicDialog" :width="nowSize(591)" align-center class="custom-dialog">
|
||||
<img src="@/assets/images/head/anchorTopicDetail.png" alt="" class="postTitleImage" />
|
||||
<div class="dialog-content topic-dialog-content">
|
||||
<div class="dialog-title">{{ currentTopic.title }}</div>
|
||||
|
|
@ -140,7 +140,7 @@
|
|||
</div>
|
||||
</el-dialog>
|
||||
|
||||
<el-dialog v-model="anchorDialog" width="640" align-center class="custom-dialog">
|
||||
<el-dialog v-model="anchorDialog" :width="nowSize(640)" align-center class="custom-dialog">
|
||||
<img src="@/assets/images/head/anchorDialogTitle.png" alt="" class="dialogTitleImg" />
|
||||
<div class="dialog-content">
|
||||
<div class="dialog-content-leaderInfo">
|
||||
|
|
@ -216,7 +216,7 @@ import AttentionTopic from "./components/attentionTopic.vue"
|
|||
import Monitoring from "./components/monitoring.vue"
|
||||
import { Icon } from "@iconify/vue"
|
||||
import * as echarts from "echarts"
|
||||
|
||||
import { nowSize } from "@/utils/echarts-self-adaption"
|
||||
import { useKeyNodeRecognitionStore } from "@/store/keyNodeRecognition/index"
|
||||
const KeyNodeOneStore = useKeyNodeRecognitionStore()
|
||||
|
||||
|
|
@ -403,34 +403,34 @@ watch(topicDialog, (val) => {
|
|||
})
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
<style scoped lang="scss">
|
||||
:deep(.custom-dialog) {
|
||||
width: 640px;
|
||||
border-width: 0px, 0px, 0px, 0px;
|
||||
width: vw(640);
|
||||
border-width: 0;
|
||||
border-style: solid;
|
||||
border-image-source: linear-gradient(180deg, #3aa1f8 0%, rgba(58, 161, 248, 0.2) 100%);
|
||||
background-color: rgba(6, 45, 90, 1);
|
||||
border: 1px solid #1a8bff;
|
||||
border-radius: 2px;
|
||||
border: vw(1) solid #1a8bff;
|
||||
border-radius: vw(2);
|
||||
padding: 0 0;
|
||||
z-index: 1;
|
||||
}
|
||||
:deep(.post-dialog) {
|
||||
height: 300px;
|
||||
height: vh(300);
|
||||
}
|
||||
:deep(.custom-dialog) .postTitleImage {
|
||||
margin-top: -24px;
|
||||
margin-left: -2px;
|
||||
margin-top: vh(-27);
|
||||
margin-left: vw(-2);
|
||||
}
|
||||
:deep(.custom-dialog) .dialog-content {
|
||||
width: 100%;
|
||||
padding: 25px 20px;
|
||||
padding: vh(25) vw(20);
|
||||
}
|
||||
|
||||
:deep(.custom-dialog) .dialog-content .content {
|
||||
color: rgba(255, 255, 255, 0.8);
|
||||
font-family: "PingFang SC";
|
||||
font-size: 16px;
|
||||
font-size: vw(16);
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
opacity: 0.7;
|
||||
|
|
@ -438,7 +438,7 @@ watch(topicDialog, (val) => {
|
|||
.heat {
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
margin-top: 20px;
|
||||
margin-top: vh(20);
|
||||
.item-heat-detail {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
|
|
@ -446,7 +446,7 @@ watch(topicDialog, (val) => {
|
|||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: 70px;
|
||||
width: vw(70);
|
||||
color: #fff;
|
||||
opacity: 0.7;
|
||||
}
|
||||
|
|
@ -455,40 +455,40 @@ watch(topicDialog, (val) => {
|
|||
.keyNode3-container {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 20px;
|
||||
gap: vw(10);
|
||||
.top-container {
|
||||
width: 100%;
|
||||
height: 88px;
|
||||
height: vh(110);
|
||||
background-image: url(@/assets/images/head/bigTitle2.png);
|
||||
background-repeat: no-repeat;
|
||||
background-size: cover;
|
||||
fill: linear-gradient(270deg, rgba(6, 61, 113, 0.1) 0%, rgba(8, 30, 56, 0.38) 100%);
|
||||
stroke-width: 1px;
|
||||
stroke-width: vw(1);
|
||||
stroke: #3aa1f8;
|
||||
}
|
||||
|
||||
.content {
|
||||
height: 805px;
|
||||
height: vh(805);
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
gap: 15px;
|
||||
gap: vw(15);
|
||||
.left-container {
|
||||
flex: 10%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 15px;
|
||||
gap: vw(15);
|
||||
.userPanel {
|
||||
height: 540px;
|
||||
border-radius: 2px;
|
||||
height: vh(540);
|
||||
border-radius: vw(2);
|
||||
flex-shrink: 0;
|
||||
background-color: rgba(6, 45, 90, 0.3);
|
||||
border: 1px solid rgba(0, 113, 188, 0.705);
|
||||
border: vw(1) solid rgba(0, 113, 188, 0.705);
|
||||
}
|
||||
.anchorChart {
|
||||
flex: 1;
|
||||
border-radius: 2px;
|
||||
border-radius: vw(2);
|
||||
background-color: rgba(6, 45, 90, 0.3);
|
||||
border: 1px solid rgba(0, 113, 188, 0.705);
|
||||
border: vw(1) solid rgba(0, 113, 188, 0.705);
|
||||
overflow: auto;
|
||||
-ms-overflow-style: none; /* IE 和 Edge */
|
||||
scrollbar-width: none; /* Firefox */
|
||||
|
|
@ -499,25 +499,25 @@ watch(topicDialog, (val) => {
|
|||
flex: 60%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 15px;
|
||||
gap: vw(15);
|
||||
.anchorGraph {
|
||||
width: 100%;
|
||||
height: 541px;
|
||||
height: vh(541);
|
||||
background-color: #070a22;
|
||||
border-radius: 4px;
|
||||
border-radius: vw(4);
|
||||
background-color: rgba(6, 45, 90, 0.3);
|
||||
border: 1px solid rgba(0, 113, 188, 0.705);
|
||||
border: vw(1) solid rgba(0, 113, 188, 0.705);
|
||||
}
|
||||
.anchorGrap-statistics {
|
||||
flex: 1;
|
||||
border-radius: 4px;
|
||||
border-radius: vw(4);
|
||||
background-color: rgba(6, 45, 90, 0.3);
|
||||
border: 1px solid rgba(0, 113, 188, 0.705);
|
||||
border: vw(1) solid rgba(0, 113, 188, 0.705);
|
||||
fill: linear-gradient(270deg, rgba(6, 61, 113, 0.1) 0%, rgba(8, 30, 56, 0.38) 100%);
|
||||
stroke-width: 1px;
|
||||
stroke-width: vw(1);
|
||||
stroke: #3aa1f8;
|
||||
overflow: auto;
|
||||
padding: 10px 10px;
|
||||
padding: vh(10) vw(10);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -526,21 +526,21 @@ watch(topicDialog, (val) => {
|
|||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 15px;
|
||||
gap: vw(15);
|
||||
.attention-topic {
|
||||
width: 100%;
|
||||
height: 540px;
|
||||
border-radius: 2px;
|
||||
height: vh(540);
|
||||
border-radius: vw(2);
|
||||
flex-shrink: 0;
|
||||
background-color: rgba(6, 45, 90, 0.3);
|
||||
border: 1px solid rgba(0, 113, 188, 0.705);
|
||||
border: vw(1) solid rgba(0, 113, 188, 0.705);
|
||||
}
|
||||
.monitoring-situation {
|
||||
flex: 1;
|
||||
border-radius: 2px;
|
||||
border-radius: vw(2);
|
||||
flex-shrink: 0;
|
||||
background-color: rgba(6, 45, 90, 0.3);
|
||||
border: 1px solid rgba(0, 113, 188, 0.705);
|
||||
border: vw(1) solid rgba(0, 113, 188, 0.705);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -549,65 +549,63 @@ watch(topicDialog, (val) => {
|
|||
.dialog-title {
|
||||
color: #fff;
|
||||
font-family: "PingFang SC";
|
||||
font-size: 20px;
|
||||
font-size: vw(20);
|
||||
font-style: normal;
|
||||
}
|
||||
.event-title {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
.title-font {
|
||||
margin-left: 8px;
|
||||
margin-left: vw(8);
|
||||
color: #fff;
|
||||
font-family: "PingFang SC";
|
||||
font-size: 16px;
|
||||
font-size: vw(16);
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
}
|
||||
}
|
||||
.event-forecast-container {
|
||||
width: 100%;
|
||||
height: 300px;
|
||||
|
||||
margin-top: 22px;
|
||||
height: vh(300);
|
||||
margin-top: vh(22);
|
||||
.event-hotChart-container {
|
||||
width: 100%;
|
||||
height: 400px;
|
||||
margin-top: 10px;
|
||||
height: vh(400);
|
||||
margin-top: vh(10);
|
||||
}
|
||||
}
|
||||
.event-keyUser-container {
|
||||
margin-top: 150px;
|
||||
margin-top: vh(150);
|
||||
.key-user-info-list {
|
||||
margin-top: 20px;
|
||||
margin-top: vh(20);
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
gap: 20px;
|
||||
gap: vw(20);
|
||||
.info-item {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
.diamond {
|
||||
width: 6px;
|
||||
height: 6px;
|
||||
width: vw(6);
|
||||
height: vh(6);
|
||||
background-color: #fff;
|
||||
margin-right: 10px;
|
||||
box-shadow: 0 4px 8px rgb(0, 123, 255);
|
||||
margin-right: vw(10);
|
||||
box-shadow: 0 vw(4) vw(8) rgb(0, 123, 255);
|
||||
}
|
||||
.user-label {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
.label-key {
|
||||
color: #c6e3f5;
|
||||
font-family: "PingFang SC";
|
||||
font-size: 16px;
|
||||
font-size: vw(16);
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
}
|
||||
.label-value {
|
||||
width: 170px;
|
||||
width: vw(170);
|
||||
color: #fff;
|
||||
font-family: "PingFang SC";
|
||||
font-size: 16px;
|
||||
font-size: vw(16);
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
white-space: nowrap;
|
||||
|
|
@ -622,78 +620,79 @@ watch(topicDialog, (val) => {
|
|||
}
|
||||
}
|
||||
.dialogTitleImg {
|
||||
margin-top: -23px;
|
||||
margin-top: vh(-26);
|
||||
margin-left: vh(-2);
|
||||
}
|
||||
.post-content {
|
||||
color: #fff;
|
||||
font-size: 16px;
|
||||
font-size: vw(16);
|
||||
opacity: 0.7;
|
||||
}
|
||||
.dialog-content-leaderInfo {
|
||||
width: 100%;
|
||||
height: 70px;
|
||||
height: vh(70);
|
||||
display: flex;
|
||||
}
|
||||
.leaderInfo-avatar {
|
||||
width: 70px;
|
||||
height: 70px;
|
||||
border-radius: 5px;
|
||||
width: vw(70);
|
||||
height: vh(70);
|
||||
border-radius: vw(5);
|
||||
}
|
||||
.leaderInfo-message {
|
||||
flex: 1;
|
||||
height: 100%;
|
||||
padding-left: 15px;
|
||||
padding-left: vh(15);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
}
|
||||
.leader-name {
|
||||
font-size: 20px;
|
||||
font-size: vw(20);
|
||||
color: #fff;
|
||||
}
|
||||
.leader-heat {
|
||||
display: flex;
|
||||
color: #fff;
|
||||
font-size: 16px;
|
||||
font-size: vw(16);
|
||||
}
|
||||
.post-number {
|
||||
margin-left: 30px;
|
||||
margin-left: vw(30);
|
||||
}
|
||||
.dialog-content-post {
|
||||
width: 100%;
|
||||
padding: 25px 0px;
|
||||
padding: vh(25) 0px;
|
||||
}
|
||||
.leader-post-detail-content {
|
||||
width: 100%;
|
||||
background:
|
||||
linear-gradient(0deg, #0d2743, #0d2743),
|
||||
linear-gradient(270deg, rgba(147, 210, 255, 0.06) 0%, rgba(147, 210, 255, 0.16) 100%);
|
||||
margin-top: 30px;
|
||||
height: 262px;
|
||||
margin-top: vh(30);
|
||||
height: vh(262);
|
||||
overflow: auto;
|
||||
padding: 10px 20px;
|
||||
padding: vh(10) vw(20);
|
||||
}
|
||||
.leader-post-detail-content::-webkit-scrollbar {
|
||||
width: 5px;
|
||||
height: 5px;
|
||||
width: vw(5);
|
||||
height: vh(5);
|
||||
}
|
||||
.leader-post-detail-content::-webkit-scrollbar-thumb {
|
||||
background: rgba(147, 210, 255, 0.3);
|
||||
border-radius: 4px;
|
||||
border-radius: vw(4);
|
||||
}
|
||||
.leader-post-detail-content::-webkit-scrollbar-thumb:hover {
|
||||
background: rgba(147, 210, 255, 0.5);
|
||||
}
|
||||
.item-type {
|
||||
font-size: 16px;
|
||||
font-size: vw(16);
|
||||
color: #ffffff;
|
||||
}
|
||||
.item-content {
|
||||
color: #ffffffcc;
|
||||
font-size: 16px;
|
||||
font-size: vw(16);
|
||||
}
|
||||
.content-item div {
|
||||
margin-bottom: 10px;
|
||||
margin-bottom: vh(10);
|
||||
}
|
||||
.item-heat {
|
||||
display: flex;
|
||||
|
|
@ -704,27 +703,27 @@ watch(topicDialog, (val) => {
|
|||
display: flex;
|
||||
}
|
||||
.item-heat-detail div {
|
||||
width: 60px;
|
||||
margin-right: 20px;
|
||||
width: vw(60);
|
||||
margin-right: vw(20);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
.dialog-content-heat-degree {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
row-gap: 15px;
|
||||
row-gap: vw(15);
|
||||
color: #fff;
|
||||
font-size: 16px;
|
||||
font-size: vw(16);
|
||||
}
|
||||
.heat-item {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
.heat-item .diamond {
|
||||
width: 6px;
|
||||
height: 6px;
|
||||
width: vw(6);
|
||||
height: vh(6);
|
||||
background-color: #fff;
|
||||
margin-right: 10px;
|
||||
box-shadow: 0 4px 8px rgb(0, 123, 255);
|
||||
margin-right: vw(10);
|
||||
box-shadow: 0 vw(4) vw(8) rgb(0, 123, 255);
|
||||
}
|
||||
</style>
|
||||
|
|
|
|||
|
|
@ -178,7 +178,7 @@ const handleTimePointClick = (pointId) => {
|
|||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
<style scoped lang="scss">
|
||||
.right-panel {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
|
|
|
|||
|
|
@ -82,7 +82,7 @@ watch(
|
|||
)
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
<style scoped lang="scss">
|
||||
.left-panel {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
|
|
|
|||
|
|
@ -497,7 +497,7 @@ const handleGoback = () => {
|
|||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
<style scoped lang="scss">
|
||||
.detailCommunityGraph-component {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
|
|
|
|||
|
|
@ -295,7 +295,7 @@ const wordCloudData = ref([
|
|||
])
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
<style scoped lang="scss">
|
||||
:deep(.leader-custom-dialog) {
|
||||
width: 640px;
|
||||
height: 680px;
|
||||
|
|
|
|||
|
|
@ -104,7 +104,7 @@ onBeforeUnmount(() => {
|
|||
})
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
<style scoped lang="scss">
|
||||
.anchorStatistics-component {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
|
|
|
|||
|
|
@ -156,7 +156,7 @@ const handleTimePointClick = (pointId) => {
|
|||
defineExpose({ highlightNode })
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
<style scoped lang="scss">
|
||||
.right-panel {
|
||||
height: 540px;
|
||||
position: relative;
|
||||
|
|
|
|||
|
|
@ -82,7 +82,7 @@ watch(
|
|||
)
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
<style scoped lang="scss">
|
||||
.left-panel {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
|
|
|
|||
|
|
@ -248,7 +248,7 @@ const wordCloudData = ref([
|
|||
])
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
<style scoped lang="scss">
|
||||
:deep(.custom-leader-dialog) {
|
||||
width: 640px;
|
||||
height: 680px;
|
||||
|
|
|
|||
|
|
@ -166,7 +166,7 @@ provide("communityNodeList", communityNodeList) // 提供响应式数据
|
|||
provide("statisticsList", interactionStore.statisticsList)
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
<style scoped lang="scss">
|
||||
:deep(.custom-dialog) {
|
||||
width: 640px;
|
||||
border-width: 0px, 0px, 0px, 0px;
|
||||
|
|
|
|||
|
|
@ -164,7 +164,7 @@ provide("communityNodeList", communityNodeList) // 提供响应式数据
|
|||
provide("statisticsList", characterHiddenStore.statisticsList)
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
<style scoped lang="scss">
|
||||
:deep(.custom-dialog) {
|
||||
width: 640px;
|
||||
border-width: 0px, 0px, 0px, 0px;
|
||||
|
|
|
|||
|
|
@ -54,7 +54,7 @@ const props = defineProps({
|
|||
})
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
<style scoped lang="scss">
|
||||
.leader-ansys {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
|
|
|
|||
|
|
@ -312,7 +312,7 @@ onMounted(() => {
|
|||
})
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
<style scoped lang="scss">
|
||||
.communityNode-component {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
|
|
|
|||
|
|
@ -405,7 +405,7 @@ onMounted(() => {
|
|||
})
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
<style scoped lang="scss">
|
||||
.detailNode-component {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
|
|
|
|||
|
|
@ -59,7 +59,7 @@ const handleClickGoBack = (currentComponentName) => {
|
|||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
<style scoped lang="scss">
|
||||
.graph-component {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ const listRef = ref(null)
|
|||
onMounted(() => {})
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
<style scoped lang="scss">
|
||||
.postList-component {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
|
|
|
|||
|
|
@ -54,7 +54,7 @@ const specialHandle = computed(() => {
|
|||
})
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
<style scoped lang="scss">
|
||||
.userChart-component {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
|
|
|
|||
|
|
@ -61,7 +61,7 @@ const handleUserItem = (index, group = {}) => {
|
|||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
<style scoped lang="scss">
|
||||
.userPanel-component {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
|
|
|
|||
|
|
@ -54,7 +54,7 @@ const props = defineProps({
|
|||
})
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
<style scoped lang="scss">
|
||||
.leader-ansys {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
|
|
|
|||
|
|
@ -315,7 +315,7 @@ onUnmounted(() => {
|
|||
})
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
<style scoped lang="scss">
|
||||
.communityNode-component {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
|
|
|
|||
|
|
@ -645,7 +645,7 @@ onMounted(() => {
|
|||
})
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
<style scoped lang="scss">
|
||||
.detailNode-component {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
|
|
|
|||
|
|
@ -58,7 +58,7 @@ const handleClickGoBack = (currentComponentName) => {
|
|||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
<style scoped lang="scss">
|
||||
.graph-component {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
|
|
|
|||
|
|
@ -58,7 +58,7 @@ onMounted(() => {
|
|||
})
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
<style scoped lang="scss">
|
||||
.postList-component {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
|
|
|
|||
|
|
@ -54,7 +54,7 @@ const specialHandle = computed(() => {
|
|||
})
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
<style scoped lang="scss">
|
||||
.userChart-component {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
|
|
|
|||
|
|
@ -70,7 +70,7 @@ const handleUserItem = (index, group = {}) => {
|
|||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
<style scoped lang="scss">
|
||||
.userPanel-component {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
|
|
|
|||
|
|
@ -196,7 +196,7 @@ provide("communityNodeList", communityNodeList)
|
|||
provide("statisticsList", socialGroupsStore.statisticsList)
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
<style scoped lang="scss">
|
||||
:deep(.custom-dialog) {
|
||||
width: 640px;
|
||||
border-width: 0px, 0px, 0px, 0px;
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@
|
|||
slideShadows: true
|
||||
}"
|
||||
:slides-per-view="5"
|
||||
:space-between="32"
|
||||
:space-between="nowSize(32)"
|
||||
:loop="true"
|
||||
:speed="500"
|
||||
:mousewheel="true"
|
||||
|
|
@ -96,7 +96,7 @@
|
|||
import { ref } from "vue"
|
||||
import { Swiper, SwiperSlide } from "swiper/vue"
|
||||
import { Navigation, Pagination, EffectCoverflow, Mousewheel } from "swiper/modules"
|
||||
|
||||
import { nowSize } from "@/utils/echarts-self-adaption"
|
||||
import { useRouter } from "vue-router"
|
||||
|
||||
// Swiper 样式
|
||||
|
|
@ -304,10 +304,10 @@ const onSetTransition = (swiper, duration) => {
|
|||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
<style scoped lang="scss">
|
||||
.navigation-container {
|
||||
width: 100vw;
|
||||
height: 100vh;
|
||||
max-width: vw(1920);
|
||||
min-height: vh(1080);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
.header {
|
||||
|
|
@ -386,11 +386,11 @@ const onSetTransition = (swiper, duration) => {
|
|||
font-family: YouSheBiaoTiHei;
|
||||
font-weight: 400;
|
||||
font-style: Regular;
|
||||
font-size: 40px;
|
||||
font-size: vw(40);
|
||||
color: #fff;
|
||||
text-shadow:
|
||||
0 0 23px rgba(8, 105, 160, 0.82),
|
||||
2px 4px 4px rgba(9, 18, 26, 0.26);
|
||||
0 0 vw(23) rgba(8, 105, 160, 0.82),
|
||||
vw(2) vw(4) vw(4) rgba(9, 18, 26, 0.26);
|
||||
}
|
||||
.nav-name-next {
|
||||
/* 移除绝对定位 */
|
||||
|
|
@ -403,7 +403,7 @@ const onSetTransition = (swiper, duration) => {
|
|||
/* 菜单区域水平居中,让两侧对称展开 */
|
||||
.navigation-menu {
|
||||
height: 60%;
|
||||
max-width: 1843px;
|
||||
max-width: vw(1843);
|
||||
overflow: visible;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
|
|
@ -412,15 +412,15 @@ const onSetTransition = (swiper, duration) => {
|
|||
.nav-card {
|
||||
width: 18%;
|
||||
height: 100%;
|
||||
padding: 0 16px;
|
||||
border-radius: 10px;
|
||||
padding: 0 vw(16);
|
||||
border-radius: vw(16);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
text-align: center;
|
||||
line-height: 1.4;
|
||||
font-size: 18px;
|
||||
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);
|
||||
font-size: vw(18);
|
||||
box-shadow: 0 vw(10) vw(30) rgba(0, 0, 0, 0.08);
|
||||
user-select: none;
|
||||
background-size: cover;
|
||||
background-position: center;
|
||||
|
|
|
|||
|
|
@ -94,21 +94,22 @@ const submitForm = (formEl) => {
|
|||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
<style scoped lang="scss">
|
||||
.loginPanel-component {
|
||||
width: 42.5%;
|
||||
height: 44.5%;
|
||||
aspect-ratio: 450 / 438;
|
||||
background-image: url("@/assets/images/login/login.png");
|
||||
// 设置背景图片大小以覆盖整个元素
|
||||
background-size: cover;
|
||||
background-size: 100% 100%;
|
||||
// 设置背景图片位置居中
|
||||
background-position: center;
|
||||
// 防止背景图片重复
|
||||
background-repeat: no-repeat;
|
||||
padding: 0 40px;
|
||||
padding: 0 vw(40);
|
||||
|
||||
.demo-ruleForm {
|
||||
margin-top: 32px;
|
||||
margin-top: vh(32);
|
||||
height: 50%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
|
@ -116,8 +117,8 @@ const submitForm = (formEl) => {
|
|||
.title {
|
||||
color: #fff;
|
||||
text-align: center;
|
||||
margin-bottom: 46px;
|
||||
font-size: 32px;
|
||||
margin-bottom: vh(46);
|
||||
font-size: vw(32);
|
||||
}
|
||||
/* 修改 el-input 样式 */
|
||||
:deep(.el-input__wrapper) {
|
||||
|
|
@ -125,7 +126,7 @@ const submitForm = (formEl) => {
|
|||
border: 1px solid rgba(0, 166, 255, 0.1); /* 必须要有边框,否则看不到渐变 */
|
||||
background-clip: padding-box, border-box;
|
||||
background-origin: border-box;
|
||||
box-shadow: inset 0 0 0 1px #1a9adb;
|
||||
box-shadow: inset 0 0 0 vw(1) #1a9adb;
|
||||
}
|
||||
|
||||
:deep(.el-input__inner) {
|
||||
|
|
@ -135,14 +136,14 @@ const submitForm = (formEl) => {
|
|||
|
||||
.submit {
|
||||
margin: 0 auto;
|
||||
margin-top: 20px;
|
||||
margin-top: vh(20);
|
||||
width: 100%;
|
||||
height: 80%;
|
||||
border: 1px solid #00a6ff !important;
|
||||
border: vw(1) solid #00a6ff !important;
|
||||
background:
|
||||
radial-gradient(77.05% 52.73% at 50% 131.82%, #00a6ff 12.05%, rgba(63, 129, 207, 0) 95.88%),
|
||||
rgba(0, 166, 255, 0.3) !important;
|
||||
font-size: 24px;
|
||||
font-size: vh(24);
|
||||
}
|
||||
|
||||
/* 按下时略微下沉手感 */
|
||||
|
|
|
|||
|
|
@ -13,41 +13,32 @@
|
|||
import LoginPanel from "@/views/login/components/loginPanel.vue"
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
<style scoped lang="scss">
|
||||
.login-container {
|
||||
max-width: 100vw;
|
||||
min-height: 100vh;
|
||||
max-width: vw(1920);
|
||||
min-height: vh(1080);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
position: relative;
|
||||
.header {
|
||||
flex: 0 1 100px; // 可扩展、可收缩,初始100px
|
||||
flex: 0 1 vw(100); // 可扩展、可收缩,初始100px
|
||||
position: absolute;
|
||||
}
|
||||
.body {
|
||||
flex: 1;
|
||||
|
||||
background-image: url("@/assets/images/login/backimg.png");
|
||||
background-repeat: no-repeat;
|
||||
background-size: cover;
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
.login-panel {
|
||||
width: 50%;
|
||||
min-height: 100vh;
|
||||
width: 52.5%;
|
||||
min-height: vh(1080);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
flex-shrink: 0;
|
||||
// 当视口 ≤ 1350px 时,固定宽度但高度自适应
|
||||
@media (max-width: 1350px) {
|
||||
width: 750px; // 固定宽度
|
||||
}
|
||||
|
||||
// 当视口高度 ≤ 750px 时,固定高度并允许滚动
|
||||
@media (max-height: 750px) {
|
||||
height: 750px; // 固定高度(根据需求调整)
|
||||
min-height: auto; // 覆盖默认的 min-height: 100vh
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,6 +6,16 @@ import path from "path"
|
|||
export default defineConfig({
|
||||
plugins: [vue(), removeConsole()],
|
||||
assetsInclude: ["**/*.csv"], // 明确包含CSV文件
|
||||
css: {
|
||||
preprocessorOptions: {
|
||||
scss: {
|
||||
//全局引入
|
||||
additionalData: `
|
||||
@use "@/utils/self-adaption.scss" as *;
|
||||
`
|
||||
}
|
||||
}
|
||||
},
|
||||
resolve: {
|
||||
alias: {
|
||||
"@": path.resolve(__dirname, "src"),
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user