first modification try

This commit is contained in:
wenlong 2024-09-03 11:03:54 +08:00
parent cc35116b77
commit 3062d8cacf
28 changed files with 3550 additions and 113 deletions

338
package-lock.json generated
View File

@ -8,7 +8,10 @@
"name": "my5bigscreen",
"version": "0.1.0",
"dependencies": {
"@jiaminghi/data-view": "^2.10.0",
"core-js": "^3.8.3",
"echarts": "^5.5.0",
"element-ui": "^2.15.14",
"vue": "^2.6.14",
"vue-router": "^3.5.1",
"vuex": "^3.6.2"
@ -18,6 +21,8 @@
"@vue/cli-plugin-router": "~5.0.0",
"@vue/cli-plugin-vuex": "~5.0.0",
"@vue/cli-service": "~5.0.0",
"less": "^4.2.0",
"less-loader": "^12.2.0",
"vue-template-compiler": "^2.6.14"
}
},
@ -1753,7 +1758,6 @@
"version": "7.24.7",
"resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.24.7.tgz",
"integrity": "sha512-UwgBRMjJP+xv857DCngvqXI3Iq6J4v0wXmwc6sapg+zyhbwmQX67LUEFrkK5tbyJ30jGuG3ZvWpBiB9LCy1kWw==",
"dev": true,
"dependencies": {
"regenerator-runtime": "^0.14.0"
},
@ -1834,6 +1838,56 @@
"@hapi/hoek": "^9.0.0"
}
},
"node_modules/@jiaminghi/bezier-curve": {
"version": "0.0.9",
"resolved": "https://registry.npmmirror.com/@jiaminghi/bezier-curve/-/bezier-curve-0.0.9.tgz",
"integrity": "sha512-u9xJPOEl6Dri2E9FfmJoGxYQY7vYJkURNX04Vj64tdi535tPrpkuf9Sm0lNr3QTKdHQh0DdNRsaa62FLQNQEEw==",
"dependencies": {
"@babel/runtime": "^7.5.5"
}
},
"node_modules/@jiaminghi/c-render": {
"version": "0.4.3",
"resolved": "https://registry.npmmirror.com/@jiaminghi/c-render/-/c-render-0.4.3.tgz",
"integrity": "sha512-FJfzj5hGj7MLqqqI2D7vEzHKbQ1Ynnn7PJKgzsjXaZpJzTqs2Yw5OSeZnm6l7Qj7jyPAP53lFvEQNH4o4j6s+Q==",
"dependencies": {
"@babel/runtime": "^7.5.5",
"@jiaminghi/bezier-curve": "*",
"@jiaminghi/color": "*",
"@jiaminghi/transition": "*"
}
},
"node_modules/@jiaminghi/charts": {
"version": "0.2.18",
"resolved": "https://registry.npmmirror.com/@jiaminghi/charts/-/charts-0.2.18.tgz",
"integrity": "sha512-K+HXaOOeWG9OOY1VG6M4mBreeeIAPhb9X+khG651AbnwEwL6G2UtcAQ8GWCq6GzhczcLwwhIhuaHqRygwHC0sA==",
"dependencies": {
"@babel/runtime": "^7.5.5",
"@jiaminghi/c-render": "^0.4.3"
}
},
"node_modules/@jiaminghi/color": {
"version": "1.1.3",
"resolved": "https://registry.npmmirror.com/@jiaminghi/color/-/color-1.1.3.tgz",
"integrity": "sha512-ZY3hdorgODk4OSTbxyXBPxAxHPIVf9rPlKJyK1C1db46a50J0reFKpAvfZG8zMG3lvM60IR7Qawgcu4ZDO3+Hg=="
},
"node_modules/@jiaminghi/data-view": {
"version": "2.10.0",
"resolved": "https://registry.npmmirror.com/@jiaminghi/data-view/-/data-view-2.10.0.tgz",
"integrity": "sha512-Cud2MTiMcqc5k2KWabR/svuVQmXHANqURo+yj40370/LdI/gyUJ6LG203hWXEnT1nMCeiv/SLVmxv3PXLScCeA==",
"dependencies": {
"@babel/runtime": "^7.5.5",
"@jiaminghi/charts": "*"
}
},
"node_modules/@jiaminghi/transition": {
"version": "1.1.11",
"resolved": "https://registry.npmmirror.com/@jiaminghi/transition/-/transition-1.1.11.tgz",
"integrity": "sha512-owBggipoHMikDHHDW5Gc7RZYlVuvxHADiU4bxfjBVkHDAmmck+fCkm46n2JzC3j33hWvP9nSCAeh37t6stgWeg==",
"dependencies": {
"@babel/runtime": "^7.5.5"
}
},
"node_modules/@jridgewell/gen-mapping": {
"version": "0.3.5",
"resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz",
@ -3383,6 +3437,14 @@
"lodash": "^4.17.14"
}
},
"node_modules/async-validator": {
"version": "1.8.5",
"resolved": "https://registry.npmmirror.com/async-validator/-/async-validator-1.8.5.tgz",
"integrity": "sha512-tXBM+1m056MAX0E8TL2iCjg8WvSyXu0Zc8LNtYqrVeyoL3+esHRZ4SieE9fKQyyU09uONjnMEjrNBMqT0mbvmA==",
"dependencies": {
"babel-runtime": "6.x"
}
},
"node_modules/at-least-node": {
"version": "1.0.0",
"resolved": "https://registry.npmmirror.com/at-least-node/-/at-least-node-1.0.0.tgz",
@ -3429,6 +3491,11 @@
"postcss": "^8.1.0"
}
},
"node_modules/babel-helper-vue-jsx-merge-props": {
"version": "2.0.3",
"resolved": "https://registry.npmmirror.com/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-2.0.3.tgz",
"integrity": "sha512-gsLiKK7Qrb7zYJNgiXKpXblxbV5ffSwR0f5whkPAaBAR4fhi6bwRZxX9wBlIc5M/v8CCkXUbXZL4N/nSE97cqg=="
},
"node_modules/babel-loader": {
"version": "8.3.0",
"resolved": "https://registry.npmmirror.com/babel-loader/-/babel-loader-8.3.0.tgz",
@ -3510,6 +3577,27 @@
"@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
}
},
"node_modules/babel-runtime": {
"version": "6.26.0",
"resolved": "https://registry.npmmirror.com/babel-runtime/-/babel-runtime-6.26.0.tgz",
"integrity": "sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==",
"dependencies": {
"core-js": "^2.4.0",
"regenerator-runtime": "^0.11.0"
}
},
"node_modules/babel-runtime/node_modules/core-js": {
"version": "2.6.12",
"resolved": "https://registry.npmmirror.com/core-js/-/core-js-2.6.12.tgz",
"integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==",
"deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.",
"hasInstallScript": true
},
"node_modules/babel-runtime/node_modules/regenerator-runtime": {
"version": "0.11.1",
"resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
"integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg=="
},
"node_modules/balanced-match": {
"version": "1.0.2",
"resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz",
@ -4225,6 +4313,18 @@
"integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==",
"dev": true
},
"node_modules/copy-anything": {
"version": "2.0.6",
"resolved": "https://registry.npmmirror.com/copy-anything/-/copy-anything-2.0.6.tgz",
"integrity": "sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==",
"dev": true,
"dependencies": {
"is-what": "^3.14.1"
},
"funding": {
"url": "https://github.com/sponsors/mesqueeb"
}
},
"node_modules/copy-webpack-plugin": {
"version": "9.1.0",
"resolved": "https://registry.npmmirror.com/copy-webpack-plugin/-/copy-webpack-plugin-9.1.0.tgz",
@ -4666,7 +4766,6 @@
"version": "1.5.2",
"resolved": "https://registry.npmmirror.com/deepmerge/-/deepmerge-1.5.2.tgz",
"integrity": "sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ==",
"dev": true,
"engines": {
"node": ">=0.10.0"
}
@ -5018,6 +5117,20 @@
"node": ">=6.0.0"
}
},
"node_modules/echarts": {
"version": "5.5.0",
"resolved": "https://registry.npmmirror.com/echarts/-/echarts-5.5.0.tgz",
"integrity": "sha512-rNYnNCzqDAPCr4m/fqyUFv7fD9qIsd50S6GDFgO1DxZhncCsNsG7IfUlAlvZe5oSEQxtsjnHiUuppzccry93Xw==",
"dependencies": {
"tslib": "2.3.0",
"zrender": "5.5.0"
}
},
"node_modules/echarts/node_modules/tslib": {
"version": "2.3.0",
"resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.3.0.tgz",
"integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg=="
},
"node_modules/ee-first": {
"version": "1.1.1",
"resolved": "https://registry.npmmirror.com/ee-first/-/ee-first-1.1.1.tgz",
@ -5030,6 +5143,22 @@
"integrity": "sha512-NglN/xprcM+SHD2XCli4oC6bWe6kHoytcyLKCWXmRL854F0qhPhaYgUswUsglnPxYaNQIg2uMY4BvaomIf3kLA==",
"dev": true
},
"node_modules/element-ui": {
"version": "2.15.14",
"resolved": "https://registry.npmmirror.com/element-ui/-/element-ui-2.15.14.tgz",
"integrity": "sha512-2v9fHL0ZGINotOlRIAJD5YuVB8V7WKxrE9Qy7dXhRipa035+kF7WuU/z+tEmLVPBcJ0zt8mOu1DKpWcVzBK8IA==",
"dependencies": {
"async-validator": "~1.8.1",
"babel-helper-vue-jsx-merge-props": "^2.0.0",
"deepmerge": "^1.2.0",
"normalize-wheel": "^1.0.1",
"resize-observer-polyfill": "^1.5.0",
"throttle-debounce": "^1.0.1"
},
"peerDependencies": {
"vue": "^2.5.17"
}
},
"node_modules/emoji-regex": {
"version": "8.0.0",
"resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz",
@ -5088,6 +5217,19 @@
"url": "https://github.com/fb55/entities?sponsor=1"
}
},
"node_modules/errno": {
"version": "0.1.8",
"resolved": "https://registry.npmmirror.com/errno/-/errno-0.1.8.tgz",
"integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==",
"dev": true,
"optional": true,
"dependencies": {
"prr": "~1.0.1"
},
"bin": {
"errno": "cli.js"
}
},
"node_modules/error-ex": {
"version": "1.3.2",
"resolved": "https://registry.npmmirror.com/error-ex/-/error-ex-1.3.2.tgz",
@ -6109,6 +6251,19 @@
"node": ">= 4"
}
},
"node_modules/image-size": {
"version": "0.5.5",
"resolved": "https://registry.npmmirror.com/image-size/-/image-size-0.5.5.tgz",
"integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==",
"dev": true,
"optional": true,
"bin": {
"image-size": "bin/image-size.js"
},
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/import-fresh": {
"version": "3.3.0",
"resolved": "https://registry.npmmirror.com/import-fresh/-/import-fresh-3.3.0.tgz",
@ -6298,6 +6453,12 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/is-what": {
"version": "3.14.1",
"resolved": "https://registry.npmmirror.com/is-what/-/is-what-3.14.1.tgz",
"integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==",
"dev": true
},
"node_modules/is-wsl": {
"version": "2.2.0",
"resolved": "https://registry.npmmirror.com/is-wsl/-/is-wsl-2.2.0.tgz",
@ -6494,6 +6655,82 @@
"launch-editor": "^2.6.1"
}
},
"node_modules/less": {
"version": "4.2.0",
"resolved": "https://registry.npmmirror.com/less/-/less-4.2.0.tgz",
"integrity": "sha512-P3b3HJDBtSzsXUl0im2L7gTO5Ubg8mEN6G8qoTS77iXxXX4Hvu4Qj540PZDvQ8V6DmX6iXo98k7Md0Cm1PrLaA==",
"dev": true,
"dependencies": {
"copy-anything": "^2.0.1",
"parse-node-version": "^1.0.1",
"tslib": "^2.3.0"
},
"bin": {
"lessc": "bin/lessc"
},
"engines": {
"node": ">=6"
},
"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.2.0",
"resolved": "https://registry.npmmirror.com/less-loader/-/less-loader-12.2.0.tgz",
"integrity": "sha512-MYUxjSQSBUQmowc0l5nPieOYwMzGPUaTzB6inNW/bdPEG9zOL3eAAD1Qw5ZxSPk7we5dMojHwNODYMV1hq4EVg==",
"dev": true,
"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/make-dir": {
"version": "2.1.0",
"resolved": "https://registry.npmmirror.com/make-dir/-/make-dir-2.1.0.tgz",
"integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
"dev": true,
"optional": true,
"dependencies": {
"pify": "^4.0.1",
"semver": "^5.6.0"
},
"engines": {
"node": ">=6"
}
},
"node_modules/less/node_modules/semver": {
"version": "5.7.2",
"resolved": "https://registry.npmmirror.com/semver/-/semver-5.7.2.tgz",
"integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
"dev": true,
"optional": true,
"bin": {
"semver": "bin/semver"
}
},
"node_modules/lilconfig": {
"version": "2.1.0",
"resolved": "https://registry.npmmirror.com/lilconfig/-/lilconfig-2.1.0.tgz",
@ -7155,6 +7392,36 @@
"node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
}
},
"node_modules/needle": {
"version": "3.3.1",
"resolved": "https://registry.npmmirror.com/needle/-/needle-3.3.1.tgz",
"integrity": "sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q==",
"dev": true,
"optional": true,
"dependencies": {
"iconv-lite": "^0.6.3",
"sax": "^1.2.4"
},
"bin": {
"needle": "bin/needle"
},
"engines": {
"node": ">= 4.4.x"
}
},
"node_modules/needle/node_modules/iconv-lite": {
"version": "0.6.3",
"resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.6.3.tgz",
"integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
"dev": true,
"optional": true,
"dependencies": {
"safer-buffer": ">= 2.1.2 < 3.0.0"
},
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/negotiator": {
"version": "0.6.3",
"resolved": "https://registry.npmmirror.com/negotiator/-/negotiator-0.6.3.tgz",
@ -7272,6 +7539,11 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/normalize-wheel": {
"version": "1.0.1",
"resolved": "https://registry.npmmirror.com/normalize-wheel/-/normalize-wheel-1.0.1.tgz",
"integrity": "sha512-1OnlAPZ3zgrk8B91HyRj+eVv+kS5u+Z0SCsak6Xil/kmgEia50ga7zfkumayonZrImffAxPU/5WcyGhzetHNPA=="
},
"node_modules/npm-run-path": {
"version": "2.0.2",
"resolved": "https://registry.npmmirror.com/npm-run-path/-/npm-run-path-2.0.2.tgz",
@ -7609,6 +7881,15 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/parse-node-version": {
"version": "1.0.1",
"resolved": "https://registry.npmmirror.com/parse-node-version/-/parse-node-version-1.0.1.tgz",
"integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==",
"dev": true,
"engines": {
"node": ">= 0.10"
}
},
"node_modules/parse5": {
"version": "5.1.1",
"resolved": "https://registry.npmmirror.com/parse5/-/parse5-5.1.1.tgz",
@ -7714,6 +7995,16 @@
"url": "https://github.com/sponsors/jonschlinkert"
}
},
"node_modules/pify": {
"version": "4.0.1",
"resolved": "https://registry.npmmirror.com/pify/-/pify-4.0.1.tgz",
"integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
"dev": true,
"optional": true,
"engines": {
"node": ">=6"
}
},
"node_modules/pkg-dir": {
"version": "4.2.0",
"resolved": "https://registry.npmmirror.com/pkg-dir/-/pkg-dir-4.2.0.tgz",
@ -8363,6 +8654,13 @@
"node": ">= 0.10"
}
},
"node_modules/prr": {
"version": "1.0.1",
"resolved": "https://registry.npmmirror.com/prr/-/prr-1.0.1.tgz",
"integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==",
"dev": true,
"optional": true
},
"node_modules/pseudomap": {
"version": "1.0.2",
"resolved": "https://registry.npmmirror.com/pseudomap/-/pseudomap-1.0.2.tgz",
@ -8553,8 +8851,7 @@
"node_modules/regenerator-runtime": {
"version": "0.14.1",
"resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz",
"integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==",
"dev": true
"integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw=="
},
"node_modules/regenerator-transform": {
"version": "0.15.2",
@ -8649,6 +8946,11 @@
"integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==",
"dev": true
},
"node_modules/resize-observer-polyfill": {
"version": "1.5.1",
"resolved": "https://registry.npmmirror.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz",
"integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg=="
},
"node_modules/resolve": {
"version": "1.22.8",
"resolved": "https://registry.npmmirror.com/resolve/-/resolve-1.22.8.tgz",
@ -8772,6 +9074,13 @@
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
"dev": true
},
"node_modules/sax": {
"version": "1.4.1",
"resolved": "https://registry.npmmirror.com/sax/-/sax-1.4.1.tgz",
"integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==",
"dev": true,
"optional": true
},
"node_modules/schema-utils": {
"version": "2.7.1",
"resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-2.7.1.tgz",
@ -9500,6 +9809,14 @@
"url": "https://opencollective.com/webpack"
}
},
"node_modules/throttle-debounce": {
"version": "1.1.0",
"resolved": "https://registry.npmmirror.com/throttle-debounce/-/throttle-debounce-1.1.0.tgz",
"integrity": "sha512-XH8UiPCQcWNuk2LYePibW/4qL97+ZQ1AN3FNXwZRBNPPowo/NRU5fAlDCSNBJIYCKbioZfuYtMhG4quqoJhVzg==",
"engines": {
"node": ">=4"
}
},
"node_modules/thunky": {
"version": "1.1.0",
"resolved": "https://registry.npmmirror.com/thunky/-/thunky-1.1.0.tgz",
@ -10482,6 +10799,19 @@
"engines": {
"node": ">=10"
}
},
"node_modules/zrender": {
"version": "5.5.0",
"resolved": "https://registry.npmmirror.com/zrender/-/zrender-5.5.0.tgz",
"integrity": "sha512-O3MilSi/9mwoovx77m6ROZM7sXShR/O/JIanvzTwjN3FORfLSr81PsUGd7jlaYOeds9d8tw82oP44+3YucVo+w==",
"dependencies": {
"tslib": "2.3.0"
}
},
"node_modules/zrender/node_modules/tslib": {
"version": "2.3.0",
"resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.3.0.tgz",
"integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg=="
}
}
}

View File

@ -7,7 +7,10 @@
"build": "vue-cli-service build"
},
"dependencies": {
"@jiaminghi/data-view": "^2.10.0",
"core-js": "^3.8.3",
"echarts": "^5.5.0",
"element-ui": "^2.15.14",
"vue": "^2.6.14",
"vue-router": "^3.5.1",
"vuex": "^3.6.2"
@ -17,6 +20,8 @@
"@vue/cli-plugin-router": "~5.0.0",
"@vue/cli-plugin-vuex": "~5.0.0",
"@vue/cli-service": "~5.0.0",
"less": "^4.2.0",
"less-loader": "^12.2.0",
"vue-template-compiler": "^2.6.14"
},
"browserslist": [

View File

@ -1,32 +1,121 @@
<template>
<div id="app">
<nav>
<router-link to="/">Home</router-link> |
<router-link to="/about">About</router-link>
</nav>
<router-view/>
<div class="container">
<div class="header" style="padding-top: 20px;">
<div class="header-left" style="padding-left: 180px; display: flex;">
<img class="logo" src="./assets/logo.png" style="width: 331px;height: 60px;padding-left: 60px;">
<div class="buttons" style="padding-left: 60px;">
<el-button plain type='primary' @click="$router.push('/')" class="zhaosheng">
<span style="transform: skewX(-45deg);display: inline-block;color: #fff;">招生</span>
</el-button>
<el-button plain type='primary' @click="$router.push('/peiyang')">
<span style="transform: skewX(-45deg);display: inline-block;color: #fff;">培养</span>
</el-button>
<el-button plain type='primary' @click="$router.push('/jiuye')">
<span style="transform: skewX(-45deg);display: inline-block;color: #fff;">就业</span>
</el-button>
</div>
</div>
<div class="header-title" style="display: flex;">
<dv-decoration-8 style="width:300px;height:50px;flex:1" :color="['rgb(40 110 216)', 'rgb(40 110 216)']" />
<div style="width:400px;height:100px;flex:1;text-align: center;line-height: 60px;font-size: 30px;">北京工商大学招生 培养 就业
</div>
<dv-decoration-8 :reverse="true" style="width:300px;height:50px;flex:1"
:color="['rgb(40 110 216)', 'rgb(40 110 216)']" />
</div>
<div class="header-right">
</div>
</div>
<router-view></router-view>
</div>
</template>
<style>
#app {
font-family: Avenir, Helvetica, Arial, sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-align: center;
color: #2c3e50;
<script>
// @ is an alias to /src
export default {
name: 'App',
components: {
},
data() {
return {
}
},
methods: {
},
mounted() {
let element = document.querySelector('.zhaosheng')
console.log('element1', element);
element.focus();
}
}
</script>
<style lang="less">
* {
margin: 0;
padding: 0;
}
nav {
padding: 30px;
body,
input,
button,
a,
textarea,
select {
margin: 0;
font-family: "Helvetica Neue", Helvetica, "Hiragino Sans GB", "Microsoft YaHei", Arial, sans-serif;
}
nav a {
font-weight: bold;
color: #2c3e50;
div {
box-sizing: border-box;
}
nav a.router-link-exact-active {
color: #42b983;
ul li {
list-style: none;
}
.container {
color: aliceblue;
width: 5760px;
height: 1080px;
background-color: #18478F;
.header {
display: flex;
width: 100%;
height: 108px; //
.header-left,
.header-right {
flex: 0 1 35%;
.el-button {
border: none;
transform: skewX(45deg);
width: 180px;
height: 50px;
margin-left: 30px;
}
.el-button--primary {
background-color: rgba(0, 102, 172, 0.4);
border-color: #0066AC;
}
.el-button--primary:focus {
background-color: #BDA158;
}
}
.header-title {
flex: 0 1 30%
}
}
}
</style>

BIN
src/assets/box.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

1
src/assets/china.json Normal file

File diff suppressed because one or more lines are too long

BIN
src/assets/icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.7 KiB

After

Width:  |  Height:  |  Size: 8.8 KiB

View File

@ -0,0 +1,123 @@
<template>
<div class="chart-container">
<div class="chart-title">
<img class="icon" src="../assets/icon.png" style="">
学院分布
</div>
<div class="chart" id="academy">
</div>
</div>
</template>
<script>
// @ is an alias to /src
import * as echarts from 'echarts';
export default {
components: {
},
data() {
return {
}
},
methods: {
drawAcademy() {
var myChart = echarts.init(document.querySelector("#academy"));
// There should not be negative values in rawData
const rawData = [
[100, 302, 301, 334, 390, 330, 320],
[320, 132, 101, 134, 90, 230, 210],
[220, 182, 191, 234, 290, 330, 310]
];
const totalData = [];
for (let i = 0; i < rawData[0].length; ++i) {
let sum = 0;
for (let j = 0; j < rawData.length; ++j) {
sum += rawData[j][i];
}
totalData.push(sum);
}
const grid = {
left: 100,
right: 100,
top: 50,
bottom: 50
};
const series = [
'本科',
'硕士',
'博士'
].map((name, sid) => {
return {
name,
type: 'bar',
stack: 'total',
barWidth: '25%',
label: {
show: true,
color: '#fff',
formatter: (params) => Math.round(params.value * 1000) / 10 + '%'
},
data: rawData[sid].map((d, did) =>
totalData[did] <= 0 ? 0 : d / totalData[did]
)
};
});
let option = {
legend: {
selectedMode: false,
textStyle: { color: '#fff' }
},
grid,
yAxis: {
type: 'value',
splitLine: { show: false },
axisLabel: { color: '#fff' },
splitArea: {
show: true,
areaStyle: {
color: ['rgba(250,250,250,0.0)', 'rgba(250,250,250,0.05)']
}
}
},
xAxis: {
type: 'category',
data: ['商学院', '数统学院', '计算机', '人工智能', '食品'],
axisTick: { show: false },
axisLabel: { color: '#fff' }
},
series
};
myChart.setOption(option);
}
},
mounted() {
this.drawAcademy();
}
}
</script>
<style lang="less" scoped>
.chart-container {
width: 50%;
padding-right: 40px;
}
.chart-title {
text-align: left;
height: 10%; //
padding-top: 8px;
.icon {
width: 15px;
height: 15px;
padding-left: 8px;
}
}
.chart {
height: 90%; //
}
</style>

View File

@ -0,0 +1,213 @@
<template>
<div class="chart-container">
<div class="chart-title">
<img class="icon" src="../assets/icon.png" style="">
性别分布
</div>
<div class="chart" id="gender">
</div>
</div>
</template>
<script>
// @ is an alias to /src
import * as echarts from 'echarts';
export default {
components: {
},
data() {
return {
}
},
methods: {
drawGender() {
let myChart = echarts.init(document.querySelector("#gender"));
// 2.
let option = {
color: ["#2f89cf"],
tooltip: {
trigger: "axis",
axisPointer: {
//
type: "shadow" // 线'line' | 'shadow'
}
},
legend: {
textStyle: {
color: "#4c9bfd"
}
},
//
grid: {
left: "0%",
top: "30px",
right: "0%",
bottom: "4%",
containLabel: true
},
xAxis: [
{
type: "category",
data: [
"全部",
"本科",
"硕士",
"博士"
],
axisTick: {
alignWithLabel: true
},
//
axisLabel: {
color: "#fff",
fontSize: "12"
},
// x
axisLine: {
show: true,
lineStyle: {
color: '#0c3b71'
}
}
}
],
yAxis: [
{
type: 'value',
gridIndex: 0,
splitLine: {
show: false
},
axisTick: {
show: false
},
axisLine: {
show: true,
lineStyle: {
color: '#0c3b71'
}
},
axisLabel: {
color: 'white',
formatter: '{value} %'
}
},
{
type: 'value',
gridIndex: 0,
min: 0,
max: 100,
splitNumber: 12,
splitLine: {
show: false
},
axisLine: {
show: false
},
axisTick: {
show: false
},
axisLabel: {
show: false
},
splitArea: {
show: true,
areaStyle: {
color: ['rgba(250,250,250,0.0)', 'rgba(250,250,250,0.05)']
}
}
}
],
series: [
{
name: "女",
type: "bar",
barWidth: "8%",
data: [20, 30, 30, 90, 15, 12, 60],
itemStyle: {
//
barBorderRadius: 5,
color: new echarts.graphic.LinearGradient(
0,
0,
0,
1,
[
{
offset: 0,
color: "#F0C6EC" //
},
{
offset: 1,
color: '#C18698' // 线
}
],
false
)
}
},
{
name: "男",
type: "bar",
barWidth: "8%",
data: [20, 30, 40, 45, 35, 12, 60],
itemStyle: {
//
barBorderRadius: 5,
color: new echarts.graphic.LinearGradient(
0,
0,
0,
1,
[
{
offset: 0,
color: "#44AAFD" //
},
{
offset: 1,
color: '#003B8A' // 线
}
],
false
),
}
}
],
barGap: 0
};
// 3.
myChart.setOption(option);
},
},
mounted() {
this.drawGender();
}
}
</script>
<style lang="less" scoped>
.chart-container {
width: 50%;
padding-right: 40px;
}
.chart-title {
text-align: left;
height: 10%; //
padding-top: 8px;
.icon {
width: 15px;
height: 15px;
padding-left: 8px;
}
}
.chart {
height: 90%; //
}
</style>

View File

@ -0,0 +1,149 @@
<template>
<div class="chart-container">
<div class="chart-title">
<img class="icon" src="../assets/icon.png" style="">
年级分布
</div>
<div class="chart" id="grade">
</div>
</div>
</template>
<script>
// @ is an alias to /src
import * as echarts from 'echarts';
export default {
components: {
},
data() {
return {
}
},
methods: {
drawGradeDistribution() {
var myChart = echarts.init(document.querySelector("#grade"));
let option = {
tooltip: {
trigger: 'axis',
axisPointer: {
// Use axis to trigger tooltip
type: 'shadow' // 'shadow' as default; can also be 'line' or 'shadow'
}
},
legend: {
textStyle: {
color: '#fff'
}
},
grid: {
left: '3%',
right: '4%',
bottom: '3%',
containLabel: true
},
xAxis: {
type: 'value',
show: false,
splitLine: {
show: false
},
textStyle: {
color: '#fff'
}
},
yAxis: {
type: 'category',
data: ['本科', '硕士', '博士'],
axisTick: {
show: false
},
axisLabel: {
color: '#fff'
}
},
series: [
{
name: '一年级',
type: 'bar',
stack: 'total',
label: {
show: true
},
emphasis: {
focus: 'series'
},
data: [320, 302, 301, 334, 390, 330, 320],
barWidth: 30
},
{
name: '二年级',
type: 'bar',
stack: 'total',
label: {
show: true
},
emphasis: {
focus: 'series'
},
data: [120, 132, 101, 134, 90, 230, 210]
},
{
name: '三年级',
type: 'bar',
stack: 'total',
label: {
show: true
},
emphasis: {
focus: 'series'
},
data: [220, 182, 191, 234, 290, 330, 310]
},
{
name: '四年级及以上 ',
type: 'bar',
stack: 'total',
label: {
show: true
},
emphasis: {
focus: 'series'
},
data: [220, 182, 191, 234, 290, 330, 310]
}
]
};
myChart.setOption(option);
},
},
mounted() {
this.drawGradeDistribution();
}
}
</script>
<style lang="less" scoped>
.chart-container {
width: 50%;
padding-right: 40px;
}
.chart-title {
text-align: left;
height: 10%; //
padding-top: 8px;
.icon {
width: 15px;
height: 15px;
padding-left: 8px;
}
}
.chart {
height: 90%; //
}
</style>

View File

@ -0,0 +1,130 @@
<template>
<div class="chart-container">
<div class="chart-title">
<img class="icon" src="../assets/icon.png" style="">
民族分布
</div>
<div class="chart" style="display: flex;width: 100%;height: 90%;">
<dv-active-ring-chart :config="config22" style="width:40%;height:100%" />
<div id="habitat" style="width:40%;height:100%"></div>
</div>
</div>
</template>
<script>
// @ is an alias to /src
import * as echarts from 'echarts';
export default {
components: {
},
data() {
return {
config22: {
data: [
{
name: '少数民族学生',
value: 35
},
{
name: '其他',
value: 65
}
],
color: ['#65A8EE', '#84D5CC'],
digitalFlopStyle: {
fontSize: 15,
fill: '#3de7c9'
}
},
}
},
methods: {
drawHabitat() {
var myChart = echarts.init(document.querySelector("#habitat"));
var option = {
color: [
"#006cff",
"#60cda0",
"#ed8884",
"#ff9f7f",
"#0096ff",
"#9fe6b8",
"#32c5e9",
"#1d9dff"
],
title: {
text: '各少数民族占比',
x: 'center',
y: 'center',
textStyle: {
color: '#fff'
}
},
tooltip: {
trigger: "item",
formatter: "{a} <br/>{b} : {c} ({d}%)"
},
label: {
},
series: [
{
name: "地区分布",
type: "pie",
radius: ["60%", "70%"],
center: ["50%", "50%"],
roseType: "radius",
//
label: {
fontSize: 15,
color: '#fff'
},
// 线
labelLine: {
// length 线
length: 10,
// length2 线
length2: 10
},
data: [
{ value: 20, name: "回族" },
{ value: 26, name: "苗族" },
{ value: 24, name: "蒙古族" },
{ value: 25, name: "白族" }
]
}
]
};
myChart.setOption(option);
},
},
mounted() {
this.drawHabitat();
}
}
</script>
<style lang="less" scoped>
.chart-container {
width: 50%;
padding-right: 40px;
}
.chart-title {
text-align: left;
height: 10%; //
padding-top: 8px;
.icon {
width: 15px;
height: 15px;
padding-left: 8px;
}
}
.chart {
height: 90%; //
}
</style>

View File

@ -1,59 +0,0 @@
<template>
<div class="hello">
<h1>{{ msg }}</h1>
<p>
For a guide and recipes on how to configure / customize this project,<br>
check out the
<a href="https://cli.vuejs.org" target="_blank" rel="noopener">vue-cli documentation</a>.
</p>
<h3>Installed CLI Plugins</h3>
<ul>
<li><a href="https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-babel" target="_blank" rel="noopener">babel</a></li>
<li><a href="https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-router" target="_blank" rel="noopener">router</a></li>
<li><a href="https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-vuex" target="_blank" rel="noopener">vuex</a></li>
</ul>
<h3>Essential Links</h3>
<ul>
<li><a href="https://vuejs.org" target="_blank" rel="noopener">Core Docs</a></li>
<li><a href="https://forum.vuejs.org" target="_blank" rel="noopener">Forum</a></li>
<li><a href="https://chat.vuejs.org" target="_blank" rel="noopener">Community Chat</a></li>
<li><a href="https://twitter.com/vuejs" target="_blank" rel="noopener">Twitter</a></li>
<li><a href="https://news.vuejs.org" target="_blank" rel="noopener">News</a></li>
</ul>
<h3>Ecosystem</h3>
<ul>
<li><a href="https://router.vuejs.org" target="_blank" rel="noopener">vue-router</a></li>
<li><a href="https://vuex.vuejs.org" target="_blank" rel="noopener">vuex</a></li>
<li><a href="https://github.com/vuejs/vue-devtools#vue-devtools" target="_blank" rel="noopener">vue-devtools</a></li>
<li><a href="https://vue-loader.vuejs.org" target="_blank" rel="noopener">vue-loader</a></li>
<li><a href="https://github.com/vuejs/awesome-vue" target="_blank" rel="noopener">awesome-vue</a></li>
</ul>
</div>
</template>
<script>
export default {
name: 'HelloWorld',
props: {
msg: String
}
}
</script>
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
h3 {
margin: 40px 0 0;
}
ul {
list-style-type: none;
padding: 0;
}
li {
display: inline-block;
margin: 0 10px;
}
a {
color: #42b983;
}
</style>

118
src/components/Overall.vue Normal file
View File

@ -0,0 +1,118 @@
<template>
<div class="chart-container" style="width: 100%;">
<div class="chart-title">
<img class="icon" src="../assets/icon.png" style="">
整体概览
</div>
<div class="chart" style="display: flex;justify-content: space-evenly;text-align: center;">
<div style="width: 260px;">
<div style="color: #fff;padding-top: 30px;font-size: 20px;"> 一流专业</div>
<div style="color: #e7c20a;font-size: 30px;padding-top: 20px;padding-bottom: 20px;"> 111</div>
<img src='../assets/box.png' style="width: 222px;height: 120px;">
</div>
<div style="width: 260px;">
<div style="color: #fff;padding-top: 30px;font-size: 20px;"> 一流专业</div>
<div style="color: #e7c20a;font-size: 30px;padding-top: 20px;padding-bottom: 20px;"> 111</div>
<img src='../assets/box.png' style="width: 222px;height: 120px;">
</div>
<div style="width: 260px;">
<div style="color: #fff;padding-top: 30px;font-size: 20px;"> 一流课程</div>
<div style="color: #e7c20a;font-size: 30px;padding-top: 20px;padding-bottom: 20px;"> 2000</div>
<img src='../assets/box.png' style="width: 222px;height: 120px;">
</div>
<div style="width: 260px;">
<div style="color: #fff;padding-top: 30px;font-size: 20px;"> 优秀教材</div>
<div style="color: #e7c20a;font-size: 30px;padding-top: 20px;padding-bottom: 20px;"> 131</div>
<img src='../assets/box.png' style="width: 222px;height: 120px;">
</div>
<div style="width: 260px;">
<div style="color: #fff;padding-top: 30px;font-size: 20px;"> 教学名师</div>
<div style="color: #e7c20a;font-size: 30px;padding-top: 20px;padding-bottom: 20px;"> 131</div>
<img src='../assets/box.png' style="width: 222px;height: 120px;">
</div>
</div>
</div>
</template>
<script>
// @ is an alias to /src
export default {
name: 'HomeView',
components: {
},
data() {
return {
}
},
methods: {
},
mounted() {
}
}
</script>
<style lang="less" scoped>
.chart-container {
width: 50%;
padding-right: 40px;
}
.chart-title {
text-align: left;
padding-top: 8px;
height: 10%; //
.icon {
width: 15px;
height: 15px;
padding-left: 8px;
}
}
.chart {
height: 90%; //
/deep/ .el-table td {
color: white;
border-bottom: 0px;
background-color: #09437A !important;
}
/deep/ tr {
color: white;
border-bottom: 0px;
background-color: #09437A !important;
}
/deep/ .el-table__row--striped td {
color: white;
border-bottom: 0px;
background-color: #0C2B61 !important;
}
/deep/ .el-table th {
color: white;
border-bottom: 0px !important;
background-color: #0C2B61 !important;
}
/deep/ .el-table--border::after {
background: #0C2B61;
}
/deep/ .el-table--group::after {
background: #0C2B61;
}
/deep/ .el-table::before {
background: #0C2B61;
}
/deep/ .el-table__empty-block {
background: #0C2B61;
}
}
</style>

View File

@ -0,0 +1,106 @@
<template>
<div class="chart-container" style="padding-left: 20px;">
<div class="chart-title">
<img class="icon" src="../assets/icon.png" style="">
本学期课程
</div>
<!-- 表格 -->
<div class="chart">
<div style="height:100%">
<span style="display: inline-block;background-color: #18478F;width: 100%;height: 30px;text-align: center;">本学期开课课程
共2900门课</span>
<ul>
<li style="border-bottom: solid 1px #f62a06;height: 35px;line-height: 35px;">
<span style="background-color: #f62a06;">1</span>
<span style="">商学院</span>
<span style="">200门课</span>
</li>
<li style="border-bottom: solid 1px #e7482c;height: 35px;line-height: 35px;">
<span style="background-color: #e7482c;">1</span>
<span style="">商学院</span>
<span style="">200门课</span>
</li>
<li style="border-bottom: solid 1px #f6b606;height: 35px;line-height: 35px;">
<span style="background-color: #f6b606;">1</span>
<span style="">商学院</span>
<span style="">200门课</span>
</li>
<li style="border-bottom: solid 1px #1e06f6;height: 35px;line-height: 35px;">
<span style="background-color: #1e06f6;">1</span>
<span style="">商学院</span>
<span style="">200门课</span>
</li>
<li style="border-bottom: solid 1px #1e06f6;height: 35px;line-height: 35px;">
<span style="background-color: #1e06f6;">1</span>
<span style="">商学院</span>
<span style="">200门课</span>
</li>
</ul>
</div>
</div>
</div>
</template>
<script>
// @ is an alias to /src
export default {
name: 'HomeView',
components: {
},
data() {
return {
}
},
methods: {
},
mounted() {
}
}
</script>
<style lang="less" scoped>
.chart-container {
width: 50%;
padding-right: 40px;
}
.chart-title {
text-align: left;
padding-top: 8px;
height: 10%; //
.icon {
width: 15px;
height: 15px;
padding-left: 8px;
}
}
.chart {
height: 90%; //
ul li {
span:nth-child(1) {
display: inline-block;
width: 30px;
height: 25px;
margin-right: 20px;
text-align: center;
line-height: 25px;
}
span:nth-child(2) {
font-size: 20px;
}
span:nth-child(3) {
float: right;
}
}
}
</style>

View File

@ -0,0 +1,146 @@
<template>
<div class="chart-container">
<div class="chart-title">
<img class="icon" src="../assets/icon.png" style="">
学生人数
</div>
<div class="chart">
<div style="background-color: #19498F;width: 50%;margin: auto;text-align: center;">
<span style="margin-right:20px">在校生合计 :</span>
<span style="color: #B6A35D;">20000</span>
</div>
<div style="display: flex;width: 100%;height: 90%;">
<!-- 饼图 -->
<dv-active-ring-chart :config="config11" style="width:50%;height:100%" />
<!-- 表格 -->
<div style="width:50%;height:100%">
<el-table :data="tableData" stripe style="width: 100%;">
<el-table-column prop="date" label="分类" width="100">
</el-table-column>
<el-table-column prop="name" label="人数" width="100">
</el-table-column>
<el-table-column prop="address" label="占比">
</el-table-column>
</el-table>
</div>
</div>
</div>
</div>
</template>
<script>
// @ is an alias to /src
import * as echarts from 'echarts';
export default {
name: 'HomeView',
components: {
},
data() {
return {
config11: {
data: [
{
name: '本科生占比',
value: 60
},
{
name: '硕士占比',
value: 35
},
{
name: '博士占比',
value: 5
}
],
color: ['#65A8EE', '#FFEC67', '#84D5CC'],
digitalFlopStyle: {
fontSize: 15,
fill: '#fff'
}
},
tableData: [{
date: '本科生',
name: '12000',
address: '60%'
}, {
date: '硕士',
name: '7000',
address: '35%'
}, {
date: '博士',
name: '1000',
address: '5%'
}],
}
},
methods: {
},
mounted() {
}
}
</script>
<style lang="less" scoped>
.chart-container {
width: 50%;
padding-right: 40px;
}
.chart-title {
text-align: left;
padding-top: 8px;
height: 10%; //
.icon {
width: 15px;
height: 15px;
padding-left: 8px;
}
}
.chart {
height: 90%; //
/deep/ .el-table td {
color: white;
border-bottom: 0px;
background-color: #09437A !important;
}
/deep/ tr {
color: white;
border-bottom: 0px;
background-color: #09437A !important;
}
/deep/ .el-table__row--striped td {
color: white;
border-bottom: 0px;
background-color: #0C2B61 !important;
}
/deep/ .el-table th {
color: white;
border-bottom: 0px !important;
background-color: #0C2B61 !important;
}
/deep/ .el-table--border::after {
background: #0C2B61;
}
/deep/ .el-table--group::after {
background: #0C2B61;
}
/deep/ .el-table::before {
background: #0C2B61;
}
/deep/ .el-table__empty-block {
background: #0C2B61;
}
}
</style>

View File

@ -0,0 +1,124 @@
<template>
<div class="chart-container">
<div class="chart-title">
<img class="icon" src="../assets/icon.png" style="">
生师比分析
</div>
<div class="chart" style="display: flex;width: 100%;height: 90%;">
<dv-active-ring-chart :config="config33" style="width:40%;height:100%" />
<!-- 表格 -->
<div style="width:50%;height:100%">
<span
style="display: inline-block;background-color: #18478F;width: 100%;height: 30px;text-align: center;">各学院生师比</span>
<ul>
<li style="border-bottom: solid 1px #f62a06;height: 35px;line-height: 35px;">
<span style="background-color: #f62a06;">1</span>
<span style="">商学院</span>
<span style="">73:1</span>
</li>
<li style="border-bottom: solid 1px #e7482c;height: 35px;line-height: 35px;">
<span style="background-color: #e7482c;">1</span>
<span style="">商学院</span>
<span style="">73:1</span>
</li>
<li style="border-bottom: solid 1px #f6b606;height: 35px;line-height: 35px;">
<span style="background-color: #f6b606;">1</span>
<span style="">商学院</span>
<span style="">73:1</span>
</li>
<li style="border-bottom: solid 1px #1e06f6;height: 35px;line-height: 35px;">
<span style="background-color: #1e06f6;">1</span>
<span style="">商学院</span>
<span style="">73:1</span>
</li>
<li style="border-bottom: solid 1px #1e06f6;height: 35px;line-height: 35px;">
<span style="background-color: #1e06f6;">1</span>
<span style="">商学院</span>
<span style="">73:1</span>
</li>
</ul>
</div>
</div>
</div>
</template>
<script>
// @ is an alias to /src
import * as echarts from 'echarts';
export default {
components: {
},
data() {
return {
config33: {
data: [
{
name: '在校生占比',
value: 95
},
{
name: '校外占比',
value: 5
}
],
color: ['#65A8EE', '#84D5CC'],
digitalFlopStyle: {
fontSize: 20,
fill: '#fff'
}
},
}
},
methods: {
},
mounted() {
}
}
</script>
<style lang="less" scoped>
.chart-container {
width: 50%;
padding-right: 40px;
}
.chart-title {
text-align: left;
height: 10%; //
padding-top: 8px;
.icon {
width: 15px;
height: 15px;
padding-left: 8px;
}
}
.chart {
height: 90%; //
ul li {
span:nth-child(1) {
display: inline-block;
width: 30px;
height: 25px;
margin-right: 20px;
text-align: center;
line-height: 25px;
}
span:nth-child(2) {
font-size: 20px;
}
span:nth-child(3) {
float: right;
}
}
}
</style>

View File

@ -0,0 +1,152 @@
<template>
<div class="chart-container" style="width: 60%;">
<div class="chart-title">
<img class="icon" src="../../assets/icon.png" style="">
学院分布
</div>
<div class="chart" id="academy">
</div>
</div>
</template>
<script>
// @ is an alias to /src
import * as echarts from 'echarts';
export default {
components: {
},
data() {
return {
}
},
methods: {
drawAcademyDistribution() {
var myChart = echarts.init(document.querySelector("#academy"));
let option = {
tooltip: {
trigger: 'axis',
axisPointer: {
// Use axis to trigger tooltip
type: 'shadow' // 'shadow' as default; can also be 'line' or 'shadow'
}
},
legend: {
textStyle: {
color: '#fff'
}
},
grid: {
left: '3%',
right: '4%',
bottom: '3%',
containLabel: true
},
xAxis: {
type: 'value',
show: false,
splitLine: {
show: false
},
textStyle: {
color: '#fff'
},
splitArea: {
show: true,
areaStyle: {
color: ['rgba(250,250,250,0.0)', 'rgba(250,250,250,0.1)']
}
}
},
yAxis: {
type: 'category',
data: ['商学院', '计算机学院', '食品学院', '数统学院', '人工智能学院', '外国语学院', '管理学院'],
axisTick: {
show: false
},
axisLabel: {
color: '#fff'
},
},
series: [
{
name: '本科',
type: 'bar',
stack: 'total',
label: {
show: true
},
emphasis: {
focus: 'series'
},
data: [3200, 3020, 3010, 3340, 3900, 3300, 3200],
barWidth: 30,
itemStyle: {
color: '#1EA8FF'
}
},
{
name: '硕士',
type: 'bar',
stack: 'total',
label: {
show: true
},
emphasis: {
focus: 'series'
},
data: [2200, 1820, 1910, 2340, 2900, 3300, 3100],
itemStyle: {
color: '#19C097'
}
},
{
name: '博士',
type: 'bar',
stack: 'total',
label: {
show: true
},
emphasis: {
focus: 'series'
},
data: [1200, 1320, 1010, 1340, 900, 2300, 2100],
itemStyle: {
color: '#DDD48C'
}
}
]
};
myChart.setOption(option);
},
},
mounted() {
this.drawAcademyDistribution();
}
}
</script>
<style lang="less" scoped>
.chart-container {
width: 100%;
padding-right: 40px;
}
.chart-title {
text-align: left;
height: 10%; //
padding-top: 8px;
.icon {
width: 15px;
height: 15px;
padding-left: 8px;
}
}
.chart {
height: 90%; //
}
</style>

View File

@ -0,0 +1,285 @@
<template>
<div class="chart-container" style="width: 40%;">
<div class="chart-title">
<img class="icon" src="../../assets/icon.png" style="">
生源分布
</div>
<div class="chart" id="map">
</div>
</div>
</template>
<script>
// @ is an alias to /src
import * as echarts from 'echarts';
import chinaJson from '../../assets/china.json';
export default {
name: 'HomeView',
components: {
},
data() {
return {
}
},
methods: {
drawChina() {
let myChart = echarts.init(document.querySelector("#map"));
echarts.registerMap('chinaMap', chinaJson)
let dataList = [
{
name: '北京市',
value: 5400
},
{
name: '天津市',
value: 1300
},
{
name: '上海市',
value: 400
},
{
name: '重庆市',
value: 750
},
{
name: '河北省',
value: 1300
},
{
name: '河南省',
value: 830
},
{
name: '云南省',
value: 110
},
{
name: '辽宁省',
value: 1900
},
{
name: '黑龙江省',
value: 1500
},
{
name: '湖南省',
value: 690
},
{
name: '安徽省',
value: 600
},
{
name: '山东省',
value: 3900
},
{
name: '新疆维吾尔自治区',
value: 400
},
{
name: '江苏省',
value: 310
},
{
name: '浙江省',
value: 1040
},
{
name: '江西省',
value: 360
},
{
name: '湖北省',
value: 1052
},
{
name: '广西壮族自治区',
value: 330
},
{
name: '甘肃省',
value: 70
},
{
name: '山西省',
value: 90
},
{
name: '内蒙古自治区',
value: 70
},
{
name: '陕西省',
value: 220
},
{
name: '吉林省',
value: 40
},
{
name: '福建省',
value: 180
},
{
name: '贵州省',
value: 50
},
{
name: '广东省',
value: 98
},
{
name: '青海省',
value: 10
},
{
name: '西藏自治区',
value: 2
},
{
name: '四川省',
value: 440
},
{
name: '宁夏回族自治区',
value: 40
},
{
name: '海南省',
value: 220
},
{
name: '台湾省',
value: 30
},
{
name: '香港特别行政区',
value: 50
},
{
name: '澳门特别行政区',
value: 50
}
];
let option = {
tooltip: {
triggerOn: "click",
formatter: function (e, t, n) {
return .5 == e.value ? e.name + ":有疑似病例" : e.seriesName + "<br />" + e.name + "" + e.value
}
},
visualMap: {
min: 0,
max: 1000,
left: '20px',
bottom: 0,
showLabel: true,
// text: ["", ""],
textStyle: {
color: '#fff'
},
pieces: [{
gt: 1000,
label: "> 1000 人的生源地",
color: "#FF9300"
}, {
gte: 500,
lte: 1000,
label: "> 500 人的生源",
color: "#FFCE00"
}, {
gte: 200,
lt: 500,
label: ">200 人的生源地",
color: "#2BE5C3"
}, {
gt: 100,
lt: 200,
label: ">100 人的生源地",
color: "#00E1ED"
}, {
gt: 0,
lt: 100,
label: "0-100 人的生源地",
color: "#00C7FF"
}],
show: !0
},
geo: {
type: 'map',
map: 'chinaMap',
roam: true,
zoom: 1.5,
center: [106.504962, 29.533155],
scaleLimit: {
min: 1,
max: 2
},
top: 120,
label: {
normal: {
show: false,
fontSize: "14",
color: "rgba(0,0,0,0.7)"
}
},
itemStyle: {
normal: {
//shadowBlur: 50,
//shadowColor: 'rgba(0, 0, 0, 0.2)',
borderColor: "rgba(0, 0, 0, 0.2)"
},
emphasis: {
areaColor: "#f2d5ad",
shadowOffsetX: 0,
shadowOffsetY: 0,
borderWidth: 0
}
}
},
series: [{
name: "确诊病例",
type: "map",
geoIndex: 0,
data: dataList
}]
};
myChart.setOption(option);
},
},
mounted() {
this.drawChina();
}
}
</script>
<style lang="less" scoped>
.chart-container {
width: 50%;
padding-right: 40px;
}
.chart-title {
text-align: left;
padding-top: 8px;
height: 10%; //
.icon {
width: 15px;
height: 15px;
padding-left: 8px;
}
}
.chart {
height: 90%; //
}
</style>

View File

@ -0,0 +1,173 @@
<template>
<div class="chart-container" style="width: 40%;">
<div class="chart-title">
<img class="icon" src="../../assets/icon.png" style="">
招生计划
</div>
<div class="chart" id="plan">
</div>
</div>
</template>
<script>
// @ is an alias to /src
import * as echarts from 'echarts';
export default {
components: {
},
data() {
return {
}
},
methods: {
drawPlan() {
let myChart = echarts.init(document.querySelector("#plan"));
let option = {
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'cross',
crossStyle: {
color: '#999'
}
}
},
legend: {
data: ['招生人数', '同比'],
textStyle: {
color: '#fff'
}
},
xAxis: [
{
type: 'category',
data: ['2020', '2021', '2022', '2023', '2024'],
axisPointer: {
type: 'shadow'
},
axisLabel: {
color: '#fff'
}
}
],
yAxis: [
{
type: 'value',
name: '招生人数',
nameTextStyle: {
color: '#fff'
},
min: 0,
max: 8000,
// interval: 50,
axisLabel: {
formatter: '{value} 人',
color: '#fff'
},
splitLine: false,
},
{
type: 'value',
name: '同比',
nameTextStyle: {
color: '#fff'
},
min: 0,
max: 25,
// interval: 5,
axisLabel: {
formatter: '{value} %',
color: '#fff'
},
splitLine: false,
}
],
series: [
{
name: '招生人数',
type: 'bar',
tooltip: {
valueFormatter: function (value) {
return value + ' 人';
}
},
itemStyle: {
color: new echarts.graphic.LinearGradient(
0,
0,
0,
1,
[
{
offset: 0,
color: "#4AB7D9" //
},
{
offset: 1,
color: '#037A8E'// 线
}
],
false
)
},
barWidth: '30%',
data: [
2320, 2560, 6670, 6888, 7000
]
},
{
name: '同比',
type: 'line',
yAxisIndex: 1,
tooltip: {
valueFormatter: function (value) {
return value + ' %';
}
},
itemStyle: {
color: '#8E7903'
},
data: [6.3, 10.2, 15.3, 21.4, 24.0, 26.5,]
}
]
};
myChart.setOption(option);
},
},
mounted() {
this.drawPlan();
}
}
</script>
<style lang="less" scoped>
.chart-container {
width: 50%;
padding-right: 40px;
}
.chart-title {
text-align: left;
padding-top: 8px;
height: 10%; //
.icon {
width: 15px;
height: 15px;
padding-left: 8px;
}
}
.chart {
height: 90%; //
}
</style>

View File

@ -0,0 +1,261 @@
<template>
<div class="chart-container" style="width: 60%;">
<div class="chart-title">
<img class="icon" src="../../assets/icon.png" style="">
各地区分数
</div>
<!-- 筛选 -->
<div style="display: flex;padding-top: 15px;background-color: rgba(97,123,169, 0.1);">
<div style="width: 10%;text-align: center;line-height: 40px;">省份</div>
<div style="width: 90%;">
<el-button v-for="item in provinces">{{ item }}</el-button>
</div>
</div>
<!-- 招生分数图表 -->
<div class="chart" id="score" style="height: 420px;">
</div>
</div>
</template>
<script>
// @ is an alias to /src
import * as echarts from 'echarts';
export default {
components: {
},
data() {
return {
provinces: [
'河北', '山西', '辽宁', '吉林', '黑龙江', '江苏', '浙江', '安徽', '福建', '江西', '山东', '河南', '湖北', '湖南', '广东', '海南', '四川', '贵州', '云南', '陕西', '甘肃', '青海', '台湾', '内蒙古', '广西', '西藏', '宁夏', '新疆', '北京', '天津', '上海', '重庆', '香港', '澳门'
],
}
},
methods: {
drawScore() {
let myChart = echarts.init(document.querySelector("#score"));
// 2.
let option = {
color: ["#2f89cf"],
tooltip: {
trigger: "axis",
axisPointer: {
//
type: "shadow" // 线'line' | 'shadow'
}
},
legend: {
textStyle: {
color: "#fff"
},
top: '10px'
},
//
grid: {
left: "3%",
top: "30px",
right: "0%",
bottom: "4%",
containLabel: true
},
xAxis: [
{
type: "category",
data: [
"2020",
"2021",
"2022",
"2023",
"2024"
],
axisTick: {
alignWithLabel: true
},
//
axisLabel: {
color: "#fff",
fontSize: "12"
},
// x
axisLine: {
show: true,
lineStyle: {
color: '#0c3b71'
}
}
}
],
yAxis: [
{
type: 'value',
gridIndex: 0,
splitLine: {
show: false
},
axisTick: {
show: false
},
axisLine: {
show: true,
lineStyle: {
color: '#0c3b71'
}
},
splitLine: {
show: false
},
axisLabel: {
color: 'white',
formatter: '{value} 分'
},
splitArea: {
show: true,
areaStyle: {
color: ['rgba(250,250,250,0.0)', 'rgba(250,250,250,0.05)']
}
}
}
],
series: [
{
name: "最低分",
type: "bar",
barWidth: "8%",
data: [560, 570, 565, 580, 590],
itemStyle: {
//
barBorderRadius: 5,
color: new echarts.graphic.LinearGradient(
0,
0,
0,
1,
[
{
offset: 0,
color: "#F0C6EC" //
},
{
offset: 1,
color: '#C18698' // 线
}
],
false
)
}
},
{
name: "最高分",
type: "bar",
barWidth: "8%",
data: [600, 610, 612, 620, 600],
itemStyle: {
//
barBorderRadius: 5,
color: new echarts.graphic.LinearGradient(
0,
0,
0,
1,
[
{
offset: 0,
color: "#44AAFD" //
},
{
offset: 1,
color: '#003B8A' // 线
}
],
false
),
}
}
],
barGap: 0
};
// 3.
myChart.setOption(option);
},
},
mounted() {
this.drawScore();
}
}
</script>
<style lang="less" scoped>
.chart-container {
width: 50%;
padding-right: 40px;
}
.chart-title {
text-align: left;
padding-top: 8px;
height: 10%; //
.icon {
width: 15px;
height: 15px;
padding-left: 8px;
}
}
.chart {
height: 90%; //
/deep/ .el-table td {
color: white;
border-bottom: 0px;
background-color: #09437A !important;
}
/deep/ tr {
color: white;
border-bottom: 0px;
background-color: #09437A !important;
}
/deep/ .el-table__row--striped td {
color: white;
border-bottom: 0px;
background-color: #0C2B61 !important;
}
/deep/ .el-table th {
color: white;
border-bottom: 0px !important;
background-color: #0C2B61 !important;
}
/deep/ .el-table--border::after {
background: #0C2B61;
}
/deep/ .el-table--group::after {
background: #0C2B61;
}
/deep/ .el-table::before {
background: #0C2B61;
}
/deep/ .el-table__empty-block {
background: #0C2B61;
}
}
/deep/ .el-button {
background: rgba(255, 255, 255, 0);
border: 0;
color: #fff;
margin-left: 0;
}
/deep/ .el-button:focus {
background: rgba(233, 193, 23, 1);
}
</style>

View File

@ -0,0 +1,213 @@
<template>
<div class="chart-container" style="width: 60%;">
<div class="chart-title">
<img class="icon" src="../../assets/icon.png" style="">
招生趋势
</div>
<div class="chart" style="display: flex;align-items:center">
<!-- 两个类似饼图 -->
<div class="chart-item" style="flex:1;display: flex;">
<div style="flex:1;padding-top: 20px;">
<dv-decoration-9 style="width:150px;height:150px;margin: auto;" :dur=30>第10</dv-decoration-9>
<div style="background-color: #0768A0;width:150px;margin: auto;margin-top: 20px;text-align: center;">
2023综合排名
</div>
</div>
<div style="flex:1;padding-top: 20px;">
<dv-decoration-9 style="width:150px;height:150px;margin: auto;" :dur=30>第10</dv-decoration-9>
<div style="background-color: #0768A0;width:150px;margin: auto;margin-top: 20px;text-align: center;">
2023商科排名
</div>
</div>
</div>
<!-- 各地区排名 -->
<div class="chart-item" style="flex:1;">
<div>2023年各地区排名</div>
<!-- 表格 -->
<div style="width:100%;height:100%">
<el-table :data="tableData" stripe style="width: 100%;">
<el-table-column prop="date" label="地区">
</el-table-column>
<el-table-column prop="name" label="综合排名">
</el-table-column>
<el-table-column prop="address" label="财经排名">
</el-table-column>
</el-table>
</div>
</div>
<!-- 排名趋势 -->
<div class="chart-item" style="flex:1;height: 210px;">
排名趋势
<div id="rank-trend" style="height: 100%;">
</div>
</div>
</div>
</div>
</template>
<script>
// @ is an alias to /src
import * as echarts from 'echarts';
export default {
components: {
},
data() {
return {
tableData: [{
date: '华北',
name: '12',
address: '6'
}, {
date: '西北',
name: '7',
address: '5'
}, {
date: '东北',
name: '10',
address: '5'
}],
}
},
methods: {
drawRankTrend() {
let myChart = echarts.init(document.querySelector('#rank-trend'))
let option = {
color: ['#4089BD', '#EBEF6A'],
tooltip: {
trigger: 'axis',
backgroundColor: 'rgba(50,50,50,0)',
textStyle: {
color: '#fff'
},
borderWidth: 0
},
legend: {
textStyle: { color: '#fff' }
// data: ['Email', 'Video Ads']
},
grid: {
left: '3%',
right: '4%',
bottom: '3%',
containLabel: true
},
xAxis: {
type: 'category',
axisLine: { show: false },
axisTick: { show: false },
boundaryGap: false,
data: ['2020', '2021', '2022', '2023', '2024'],
boundaryGap: true,
axisLabel: {
color: '#fff'
}
},
yAxis: {
type: 'value',
inverse: true,
name: '名次',
nameLocation: 'start',
nameTextStyle: {
color: '#fff'
},
splitLine: { show: false },
splitArea: {
show: true,
areaStyle: {
color: ['rgba(250,250,250,0.05)', 'rgba(250,250,250,0.0)']
}
},
axisLabel: {
color: '#fff'
}
},
series: [
{
name: '综合',
type: 'line',
stack: 'Total',
data: [12, 13, 11, 13, 9]
},
{
name: '财经',
type: 'line',
stack: 'Total',
data: [15, 23, 21, 15, 19]
}
]
};
myChart.setOption(option)
},
},
mounted() {
this.drawRankTrend();
}
}
</script>
<style lang="less" scoped>
.chart-container {
width: 50%;
padding-right: 40px;
}
.chart-title {
text-align: left;
padding-top: 8px;
height: 10%; //
.icon {
width: 15px;
height: 15px;
padding-left: 8px;
}
}
.chart {
height: 90%; //
/deep/ .el-table td {
color: white;
border-bottom: 0px;
background-color: #09437A !important;
}
/deep/ tr {
color: white;
border-bottom: 0px;
background-color: #09437A !important;
}
/deep/ .el-table__row--striped td {
color: white;
border-bottom: 0px;
background-color: #0C2B61 !important;
}
/deep/ .el-table th {
color: white;
border-bottom: 0px !important;
background-color: #0C2B61 !important;
}
/deep/ .el-table--border::after {
background: #0C2B61;
}
/deep/ .el-table--group::after {
background: #0C2B61;
}
/deep/ .el-table::before {
background: #0C2B61;
}
/deep/ .el-table__empty-block {
background: #0C2B61;
}
}
</style>

View File

@ -2,8 +2,13 @@ import Vue from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'
import dataV from '@jiaminghi/data-view'; //全局组件导入
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
Vue.config.productionTip = false
Vue.use(dataV);
Vue.use(ElementUI);
Vue.config.devtools = true;
new Vue({
router,

View File

@ -1,22 +1,30 @@
import Vue from 'vue'
import VueRouter from 'vue-router'
import HomeView from '../views/HomeView.vue'
import ZhaoSheng from '../views/ZhaoSheng.vue'
Vue.use(VueRouter)
const routes = [
{
path: '/',
name: 'home',
component: HomeView
name: 'ZhaoSheng',
component: ZhaoSheng
},
{
path: '/about',
name: 'about',
path: '/peiyang',
name: 'PeiYang',
// route level code-splitting
// this generates a separate chunk (about.[hash].js) for this route
// which is lazy-loaded when the route is visited.
component: () => import(/* webpackChunkName: "about" */ '../views/AboutView.vue')
component: () => import(/* webpackChunkName: "about" */ '../views/PeiYang.vue')
},
{
path: '/jiuye',
name: 'JiuYe',
// route level code-splitting
// this generates a separate chunk (about.[hash].js) for this route
// which is lazy-loaded when the route is visited.
component: () => import(/* webpackChunkName: "about" */ '../views/JiuYe.vue')
}
]

View File

@ -1,5 +0,0 @@
<template>
<div class="about">
<h1>This is an about page</h1>
</div>
</template>

View File

@ -1,18 +0,0 @@
<template>
<div class="home">
<img alt="Vue logo" src="../assets/logo.png">
<HelloWorld msg="Welcome to Your Vue.js App"/>
</div>
</template>
<script>
// @ is an alias to /src
import HelloWorld from '@/components/HelloWorld.vue'
export default {
name: 'HomeView',
components: {
HelloWorld
}
}
</script>

483
src/views/JiuYe.vue Normal file
View File

@ -0,0 +1,483 @@
<template>
<div class="main">
<!-- 第一块 -->
<div class="box">
<div class="box-header" style="">
<span style=""></span>
就业生情况
</div>
<div class=" box-body">
<!-- 第一行 -->
<div class="charts-row" style="height:300px">
<!-- 两列 -->
<!-- 第一列 学历分布-->
<div class="chart-container" style="width: 50%;">
<div class="chart-title">
<img class="icon" src="../assets/icon.png" style="">
学历分布
</div>
<!-- 3饼图 -->
<div class="charts" style="height: 270px;display: flex;">
<div style="flex:1">
<dv-active-ring-chart :config="config1" style="height: 215px;" />
<div style="font-size: 18px;text-align: center;">本科 <span style="color: bisque;">3789</span> </div>
</div>
<div style="flex:1">
<dv-active-ring-chart :config="config2" style="height: 215px;" />
<div style="font-size: 18px;text-align: center;">硕士 <span style="color: bisque;">3289</span> </div>
</div>
<div style="flex:1">
<dv-active-ring-chart :config="config3" style="height: 215px;" />
<div style="font-size: 18px;text-align: center;">博士 <span style="color: bisque;">1789</span> </div>
</div>
</div>
</div>
<!-- 第二列 性别分布-->
<div class="chart-container" style="height: 270px;width: 50%;">
<div class="chart-title">
<img class="icon" src="../assets/icon.png" style="">
性别分布
</div>
<div class="charts" style="height: 270px;display: flex;">
<div style="flex:1">
<div style="height: 215px;" id="pie1"></div>
<div style="font-size: 18px;text-align: center;"> <span style="color: bisque;">2.51:1</span> </div>
</div>
<div style="flex:1">
<div style="height: 215px;" id="pie2"></div>
<div style="font-size: 18px;text-align: center;"> <span style="color: bisque;">3.41:1</span> </div>
</div>
<div style="flex:1">
<div style="height: 215px;" id="pie3"></div>
<div style="font-size: 18px;text-align: center;"> <span style="color: bisque;">1.82:1</span> </div>
</div>
<div style="flex:1">
<div style="height: 215px;" id="pie4"></div>
<div style="font-size: 18px;text-align: center;"> <span style="color: bisque;">2.01:1</span> </div>
</div>
</div>
</div>
</div>
<!-- 第二行 -->
<div class="charts-row" style="height:550px">
<!-- 两列 -->
<!-- 生源地分布 -->
<ChinaMap></ChinaMap>
<!-- 学院分布 -->
<AcademyDistribution></AcademyDistribution>
</div>
</div>
<div class="box-footer">
<span style=""></span>
</div>
</div>
<!-- 第二块 -->
<div class="box">
<div class="box-header">
<span style=""></span>
单位情况
</div>
<div class="box-body">
<!-- 第一行 一列 课程概览 -->
<div class="charts-row">
</div>
<!-- 第二行 -->
<div class="charts-row" style="">
</div>
</div>
<div class="box-footer">
<span style=""></span>
</div>
</div>
<div class="box">
<div class="box-header">
<span style=""></span>
毕业去向分析
</div>
<div class="box-body">
<!-- 第一行 一列 课程概览 -->
<div class="charts-row">
</div>
<!-- 第二行 -->
<div class="charts-row" style="">
</div>
</div>
<div class="box-footer">
<span style=""></span>
</div>
</div>
</div>
</template>
<script>
// @ is an alias to /src
import ChinaMap from '../components/zhaosheng/ChinaMap.vue';
import EnrollmentPlan from '../components/zhaosheng/EnrollmentPlan.vue';
import Trend from '../components/zhaosheng/Trend.vue';
import ProvinceScore from '../components/zhaosheng/ProvinceScore.vue';
import AcademyDistribution from '../components/jiuye/AcademyDistribution.vue';
import * as echarts from 'echarts';
export default {
components: {
ChinaMap,
EnrollmentPlan,
Trend,
ProvinceScore,
AcademyDistribution
},
data() {
return {
config1: {
data: [
{
name: '本科',
value: 46
},
{
name: '硕士',
value: 36
},
{
name: '博士',
value: 18
}
],
lineWidth: 15,
color: ['#8DE9D8', '#D6D7BD', '#C192A5'],
activeTimeGap: 30000
},
config2: {
data: [
{
name: '硕士',
value: 36
},
{
name: '本科',
value: 46
},
{
name: '博士',
value: 18
}
],
lineWidth: 15,
color: ['#D6D7BD', '#8DE9D8', '#C192A5'],
activeTimeGap: 30000
},
config3: {
data: [
{
name: '博士',
value: 18
},
{
name: '本科',
value: 46
},
{
name: '硕士',
value: 36
}
],
lineWidth: 15,
color: ['#C192A5', '#8DE9D8', '#D6D7BD',],
activeTimeGap: 3000000
},
config4: {
data: [
{
name: '博士',
value: 18
},
{
name: '本科',
value: 46
},
{
name: '硕士',
value: 36
}
],
lineWidth: 15,
color: ['#C192A5', '#8DE9D8', '#D6D7BD',],
activeTimeGap: 3000000
}
}
},
methods: {
drawFourPies() {
let myChart1 = echarts.init(document.querySelector("#pie1"));
let option1 = {
color: ["#1386D6", "#D0ABC7"],
title: {
text: '综合',
x: 'center',
y: 'center',
textStyle: {
color: '#fff'
}
},
tooltip: {
trigger: 'item'
},
series: [
{
name: '男女比',
type: 'pie',
radius: ['40%', '50%'],
avoidLabelOverlap: false,
label: {
show: false,
position: 'center'
},
emphasis: {
label: {
show: true,
fontSize: 40,
fontWeight: 'bold'
}
},
labelLine: {
show: false
},
data: [
{ value: 2.51, name: '男' },
{ value: 1, name: '女' }
]
}
]
};
myChart1.setOption(option1);
let myChart2 = echarts.init(document.querySelector("#pie2"));
let option2 = {
color: ["#1386D6", "#D0ABC7"],
title: {
text: '本科',
x: 'center',
y: 'center',
textStyle: {
color: '#fff'
}
},
tooltip: {
trigger: 'item'
},
series: [
{
name: '男女比',
type: 'pie',
radius: ['40%', '50%'],
avoidLabelOverlap: false,
label: {
show: false,
position: 'center'
},
emphasis: {
label: {
show: true,
fontSize: 40,
fontWeight: 'bold'
}
},
labelLine: {
show: false
},
data: [
{ value: 3.41, name: '男' },
{ value: 1, name: '女' }
]
}
]
};
myChart2.setOption(option2);
let myChart3 = echarts.init(document.querySelector("#pie3"));
let option3 = {
color: ["#1386D6", "#D0ABC7"],
title: {
text: '本科',
x: 'center',
y: 'center',
textStyle: {
color: '#fff'
}
},
tooltip: {
trigger: 'item'
},
series: [
{
name: '男女比',
type: 'pie',
radius: ['40%', '50%'],
avoidLabelOverlap: false,
label: {
show: false,
position: 'center'
},
emphasis: {
label: {
show: true,
fontSize: 40,
fontWeight: 'bold'
}
},
labelLine: {
show: false
},
data: [
{ value: 1.82, name: '男' },
{ value: 1, name: '女' }
]
}
]
};
myChart3.setOption(option3);
let myChart4 = echarts.init(document.querySelector("#pie4"));
let option4 = {
color: ["#1386D6", "#D0ABC7"],
title: {
text: '本科',
x: 'center',
y: 'center',
textStyle: {
color: '#fff'
}
},
tooltip: {
trigger: 'item'
},
series: [
{
name: '男女比',
type: 'pie',
radius: ['40%', '50%'],
avoidLabelOverlap: false,
label: {
show: false,
position: 'center'
},
emphasis: {
label: {
show: true,
fontSize: 40,
fontWeight: 'bold'
}
},
labelLine: {
show: false
},
data: [
{ value: 2.01, name: '男' },
{ value: 1, name: '女' }
]
}
]
};
myChart4.setOption(option4);
}
},
mounted() {
this.drawFourPies();
}
}
</script>
<style lang="less" scoped>
.main {
width: 100%;
height: 972px; //
display: flex;
justify-content: space-evenly;
.box {
flex: 0 1 32%;
height: 920px; //
background-color: #0C2B61;
.box-header {
background-color: #18478F;
text-align: center;
height: 40px; //
line-height: 40px;
border: 1px solid rgb(40 110 216);
span {
float: left;
width: 0;
height: 0;
border-top: 30px solid #1596ca;
border-right: 30px solid transparent;
}
}
.box-body {
height: 850px; //
.charts-row {
display: flex;
height: 290px;
.chart-container {
width: 50%;
padding-right: 40px;
}
.chart-title {
text-align: left;
height: 10%; //
padding-top: 8px;
.icon {
width: 15px;
height: 15px;
padding-left: 8px;
}
}
.chart {
height: 90%; //
}
}
}
.box-footer {
height: 30px;
position: relative;
span {
position: absolute;
right: 0;
bottom: 0;
width: 0;
height: 0;
border-bottom: 25px solid #1596ca;
border-left: 25px solid transparent;
}
}
}
}
</style>

241
src/views/PeiYang.vue Normal file
View File

@ -0,0 +1,241 @@
<template>
<div class="main">
<!-- 第一块 -->
<div class="box">
<div class="box-header" style="">
<span style=""></span>
学生情况
</div>
<div class=" box-body">
<!-- 第一行 -->
<div class="charts-row" style="">
<!-- 两列 -->
<!-- 学生人数 -->
<StudentNum></StudentNum>
<!-- 性别分布 -->
<GenderDistribute></GenderDistribute>
</div>
<!-- 第二行 -->
<div class="charts-row" style="">
<!-- 两列 -->
<!-- 年级分布 -->
<GradeDistribution></GradeDistribution>
<!-- 民族分布 -->
<HabitatDistribute></HabitatDistribute>
</div>
<!-- 第三行 -->
<div class="charts-row" style="">
<!-- 两列 -->
<!-- 学院分布 -->
<AcademyDistribute></AcademyDistribute>
<!-- 师生比 -->
<TeacherStudent></TeacherStudent>
</div>
</div>
<div class="box-footer">
<span style=""></span>
</div>
</div>
<!-- 第二块 -->
<div class="box">
<div class="box-header">
<span style=""></span>
课程情况
</div>
<div class="box-body">
<!-- 第一行 一列 课程概览 -->
<div class="charts-row">
<Overall></Overall>
</div>
<!-- 第二行 -->
<div class="charts-row" style="">
<!-- 两列 -->
<!-- 本学期课程 -->
<SemesterCourse></SemesterCourse>
<!-- 今日课程 -->
<div class="chart-container" style="padding-left: 20px;">
<!-- <div class="chart-title">
今日课程
</div> -->
<div class="chart">
<!-- 表格 -->
<!-- <div style="width:50%;height:100%">
<el-table :data="tableData" stripe style="width: 100%;">
<el-table-column prop="date" label="分类" width="100">
</el-table-column>
<el-table-column prop="name" label="人数" width="100">
</el-table-column>
<el-table-column prop="address" label="占比">
</el-table-column>
</el-table>
</div> -->
</div>
</div>
</div>
</div>
<div class="box-footer">
<span style=""></span>
</div>
</div>
<div class="box">
<div class="box-header">
<span style=""></span>
学业情况
</div>
<div class="box-body">
<!-- 第一行 一列 课程概览 -->
<div class="charts-row">
<div class="chart-container" style="width: 100%;">
</div>
</div>
<!-- 第二行 -->
<div class="charts-row" style="">
<!-- 两列 -->
<!-- 本学期课程 -->
<div class="chart-container" style="padding-left: 20px;">
</div>
<!-- 今日课程 -->
<div class="chart-container" style="padding-left: 20px;">
</div>
</div>
</div>
<div class="box-footer">
<span style=""></span>
</div>
</div>
</div>
</template>
<script>
// @ is an alias to /src
import StudentNum from '../components/StudentNum.vue';
import GenderDistribute from '../components/GenderDistribute.vue';
import GradeDistribution from '../components/GradeDistribution.vue';
import HabitatDistribute from '../components/HabitatDistribute.vue';
import AcademyDistribute from '../components/AcademyDistribute.vue';
import TeacherStudent from '../components/TeacherStudent.vue';
import Overall from '../components/Overall.vue';
import SemesterCourse from '../components/SemesterCourse.vue';
export default {
name: 'HomeView',
components: {
StudentNum,
GenderDistribute,
GradeDistribution,
HabitatDistribute,
AcademyDistribute,
TeacherStudent,
Overall,
SemesterCourse
},
data() {
return {
tableData: [{
date: '本科生',
name: '12000',
address: '60%'
}, {
date: '硕士',
name: '7000',
address: '35%'
}, {
date: '博士',
name: '1000',
address: '5%'
}],
}
},
methods: {
},
mounted() {
}
}
</script>
<style lang="less" scoped>
.main {
width: 100%;
height: 972px; //
display: flex;
justify-content: space-evenly;
.box {
flex: 0 1 32%;
height: 920px; //
background-color: #0C2B61;
.box-header {
background-color: #18478F;
text-align: center;
height: 40px; //
line-height: 40px;
border: 1px solid rgb(40 110 216);
span {
float: left;
width: 0;
height: 0;
border-top: 30px solid #1596ca;
border-right: 30px solid transparent;
}
}
.box-body {
height: 850px; //
.charts-row {
display: flex;
height: 290px;
.chart-container {
width: 50%;
padding-right: 40px;
}
.chart-title {
text-align: left;
height: 10%; //
padding-top: 8px;
.icon {
width: 15px;
height: 15px;
padding-left: 8px;
}
}
.chart {
height: 90%; //
}
}
}
.box-footer {
height: 30px;
position: relative;
span {
position: absolute;
right: 0;
bottom: 0;
width: 0;
height: 0;
border-bottom: 25px solid #1596ca;
border-left: 25px solid transparent;
}
}
}
}
</style>

164
src/views/ZhaoSheng.vue Normal file
View File

@ -0,0 +1,164 @@
<template>
<div class="main">
<!-- 第一块 -->
<div class="box">
<div class="box-header" style="">
<span style=""></span>
本科生招生
</div>
<div class=" box-body">
<!-- 第一行 -->
<div class="charts-row" style="height:300px">
<!-- 两列 -->
<!-- 第一列 招生计划-->
<EnrollmentPlan></EnrollmentPlan>
<!-- 第二列 招生趋势-->
<Trend></Trend>
</div>
<!-- 第二行 -->
<div class="charts-row" style="height:550px">
<!-- 两列 -->
<!-- 招生地图 -->
<ChinaMap></ChinaMap>
<!-- 各地区分数 -->
<ProvinceScore></ProvinceScore>
</div>
</div>
<div class="box-footer">
<span style=""></span>
</div>
</div>
<!-- 第二块 -->
<div class="box">
<div class="box-header">
<span style=""></span>
研究生招生
</div>
<div class="box-body">
<!-- 第一行 一列 课程概览 -->
<div class="charts-row">
</div>
<!-- 第二行 -->
<div class="charts-row" style="">
</div>
</div>
<div class="box-footer">
<span style=""></span>
</div>
</div>
</div>
</template>
<script>
// @ is an alias to /src
import ChinaMap from '../components/zhaosheng/ChinaMap.vue';
import EnrollmentPlan from '../components/zhaosheng/EnrollmentPlan.vue';
import Trend from '../components/zhaosheng/Trend.vue';
import ProvinceScore from '../components/zhaosheng/ProvinceScore.vue';
import * as echarts from 'echarts';
export default {
components: {
ChinaMap,
EnrollmentPlan,
Trend,
ProvinceScore
},
data() {
return {
}
},
methods: {
},
mounted() {
let element = document.querySelector('.first-province')
console.log('element', element);
// element.focus();
}
}
</script>
<style lang="less" scoped>
.main {
width: 100%;
height: 972px; //
display: flex;
justify-content: space-evenly;
.box {
flex: 0 1 49%;
height: 920px; //
background-color: #0C2B61;
.box-header {
background-color: #18478F;
text-align: center;
height: 40px; //
line-height: 40px;
border: 1px solid rgb(40 110 216);
span {
float: left;
width: 0;
height: 0;
border-top: 30px solid #1596ca;
border-right: 30px solid transparent;
}
}
.box-body {
height: 850px; //
.charts-row {
display: flex;
.chart-container {
width: 50%;
padding-right: 40px;
}
.chart-title {
text-align: left;
height: 30px; //
padding-top: 8px;
.icon {
width: 15px;
height: 15px;
padding-left: 8px;
}
}
.chart {
height: 90%; //
}
}
}
.box-footer {
height: 30px;
position: relative;
span {
position: absolute;
right: 0;
bottom: 0;
width: 0;
height: 0;
border-bottom: 25px solid #1596ca;
border-left: 25px solid transparent;
}
}
}
}
</style>