diff --git a/package-lock.json b/package-lock.json index 9e30f4e..affc4c4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,5 +1,5 @@ { - "name": "mh-safe-web", + "name": "mh-sms-web", "lockfileVersion": 2, "requires": true, "packages": { @@ -7,6 +7,7 @@ "dependencies": { "@ant-design/icons": "^5.2.6", "@antv/data-set": "0.9.6", + "@jiaminghi/data-view-react": "^1.2.5", "antd": "^3.26.20", "autobind-decorator": "2.3.1", "babel-plugin-import": "1.11.0", @@ -1776,6 +1777,63 @@ "node": ">=10" } }, + "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-react": { + "version": "1.2.5", + "resolved": "https://registry.npmmirror.com/@jiaminghi/data-view-react/-/data-view-react-1.2.5.tgz", + "integrity": "sha512-hxlfg0yULj7nUde8oj5hB9pUWrHqFyuPUeJWNG70YPPHFnWXqmlWCx1aB1OpqD3lwxaI1aKkA4YJRhkvfLyKrg==", + "dependencies": { + "@jiaminghi/charts": "^0.2" + }, + "engines": { + "node": ">=8", + "npm": ">=5" + }, + "peerDependencies": { + "react": "^16.8.0", + "react-dom": "^16.8.0" + } + }, + "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/@types/history": { "version": "4.7.3", "integrity": "sha512-cS5owqtwzLN5kY+l+KgKdRJ/Cee8tlmQoGQuIE9tWnSmS3JMKzmxo2HIAk2wODMifGwO20d62xZQLYz+RLfXmw==", @@ -26773,6 +26831,55 @@ "resolved": "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-3.6.1.tgz", "integrity": "sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==" }, + "@jiaminghi/bezier-curve": { + "version": "0.0.9", + "resolved": "https://registry.npmmirror.com/@jiaminghi/bezier-curve/-/bezier-curve-0.0.9.tgz", + "integrity": "sha512-u9xJPOEl6Dri2E9FfmJoGxYQY7vYJkURNX04Vj64tdi535tPrpkuf9Sm0lNr3QTKdHQh0DdNRsaa62FLQNQEEw==", + "requires": { + "@babel/runtime": "^7.5.5" + } + }, + "@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==", + "requires": { + "@babel/runtime": "^7.5.5", + "@jiaminghi/bezier-curve": "*", + "@jiaminghi/color": "*", + "@jiaminghi/transition": "*" + } + }, + "@jiaminghi/charts": { + "version": "0.2.18", + "resolved": "https://registry.npmmirror.com/@jiaminghi/charts/-/charts-0.2.18.tgz", + "integrity": "sha512-K+HXaOOeWG9OOY1VG6M4mBreeeIAPhb9X+khG651AbnwEwL6G2UtcAQ8GWCq6GzhczcLwwhIhuaHqRygwHC0sA==", + "requires": { + "@babel/runtime": "^7.5.5", + "@jiaminghi/c-render": "^0.4.3" + } + }, + "@jiaminghi/color": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/@jiaminghi/color/-/color-1.1.3.tgz", + "integrity": "sha512-ZY3hdorgODk4OSTbxyXBPxAxHPIVf9rPlKJyK1C1db46a50J0reFKpAvfZG8zMG3lvM60IR7Qawgcu4ZDO3+Hg==" + }, + "@jiaminghi/data-view-react": { + "version": "1.2.5", + "resolved": "https://registry.npmmirror.com/@jiaminghi/data-view-react/-/data-view-react-1.2.5.tgz", + "integrity": "sha512-hxlfg0yULj7nUde8oj5hB9pUWrHqFyuPUeJWNG70YPPHFnWXqmlWCx1aB1OpqD3lwxaI1aKkA4YJRhkvfLyKrg==", + "requires": { + "@jiaminghi/charts": "^0.2" + } + }, + "@jiaminghi/transition": { + "version": "1.1.11", + "resolved": "https://registry.npmmirror.com/@jiaminghi/transition/-/transition-1.1.11.tgz", + "integrity": "sha512-owBggipoHMikDHHDW5Gc7RZYlVuvxHADiU4bxfjBVkHDAmmck+fCkm46n2JzC3j33hWvP9nSCAeh37t6stgWeg==", + "requires": { + "@babel/runtime": "^7.5.5" + } + }, "@types/history": { "version": "4.7.3", "integrity": "sha512-cS5owqtwzLN5kY+l+KgKdRJ/Cee8tlmQoGQuIE9tWnSmS3JMKzmxo2HIAk2wODMifGwO20d62xZQLYz+RLfXmw==" diff --git a/package.json b/package.json index b4479fa..f38d430 100644 --- a/package.json +++ b/package.json @@ -9,6 +9,7 @@ "dependencies": { "@ant-design/icons": "^5.2.6", "@antv/data-set": "0.9.6", + "@jiaminghi/data-view-react": "^1.2.5", "antd": "^3.26.20", "autobind-decorator": "2.3.1", "babel-plugin-import": "1.11.0", diff --git a/src/assets/fonts/AlimamaDongFangDaKai-Regular.ttf b/src/assets/fonts/AlimamaDongFangDaKai-Regular.ttf new file mode 100644 index 0000000..3374d9b Binary files /dev/null and b/src/assets/fonts/AlimamaDongFangDaKai-Regular.ttf differ diff --git a/src/assets/fonts/pangmenzhengdao.ttf b/src/assets/fonts/pangmenzhengdao.ttf new file mode 100644 index 0000000..61d491d Binary files /dev/null and b/src/assets/fonts/pangmenzhengdao.ttf differ diff --git a/src/assets/fonts/zhankuqingke.ttf b/src/assets/fonts/zhankuqingke.ttf new file mode 100644 index 0000000..f8f46ee Binary files /dev/null and b/src/assets/fonts/zhankuqingke.ttf differ diff --git a/src/assets/layout/20.png b/src/assets/layout/20.png new file mode 100644 index 0000000..7be3632 Binary files /dev/null and b/src/assets/layout/20.png differ diff --git a/src/assets/layout/full-header.png b/src/assets/layout/full-header.png new file mode 100644 index 0000000..15abb42 Binary files /dev/null and b/src/assets/layout/full-header.png differ diff --git a/src/assets/layout/ks.png b/src/assets/layout/ks.png new file mode 100644 index 0000000..9d25c2a Binary files /dev/null and b/src/assets/layout/ks.png differ diff --git a/src/assets/layout/mofang.png b/src/assets/layout/mofang.png new file mode 100644 index 0000000..fab6e12 Binary files /dev/null and b/src/assets/layout/mofang.png differ diff --git a/src/assets/layout/score-box.png b/src/assets/layout/score-box.png new file mode 100644 index 0000000..a919752 Binary files /dev/null and b/src/assets/layout/score-box.png differ diff --git a/src/assets/layout/score.png b/src/assets/layout/score.png new file mode 100644 index 0000000..3caf769 Binary files /dev/null and b/src/assets/layout/score.png differ diff --git a/src/assets/layout/title.png b/src/assets/layout/title.png new file mode 100644 index 0000000..bfd7c94 Binary files /dev/null and b/src/assets/layout/title.png differ diff --git a/src/assets/layout/wk.png b/src/assets/layout/wk.png new file mode 100644 index 0000000..f5eee84 Binary files /dev/null and b/src/assets/layout/wk.png differ diff --git a/src/assets/layout/xk.png b/src/assets/layout/xk.png new file mode 100644 index 0000000..e11b7ff Binary files /dev/null and b/src/assets/layout/xk.png differ diff --git a/src/assets/risk/1-1-1.png b/src/assets/risk/1-1-1.png new file mode 100644 index 0000000..63264eb Binary files /dev/null and b/src/assets/risk/1-1-1.png differ diff --git a/src/assets/risk/1-1.png b/src/assets/risk/1-1.png new file mode 100644 index 0000000..e1436ab Binary files /dev/null and b/src/assets/risk/1-1.png differ diff --git a/src/assets/risk/1-2.png b/src/assets/risk/1-2.png new file mode 100644 index 0000000..9765973 Binary files /dev/null and b/src/assets/risk/1-2.png differ diff --git a/src/assets/risk/1-3.png b/src/assets/risk/1-3.png new file mode 100644 index 0000000..44fbec6 Binary files /dev/null and b/src/assets/risk/1-3.png differ diff --git a/src/assets/risk/1-4.png b/src/assets/risk/1-4.png new file mode 100644 index 0000000..a6d6826 Binary files /dev/null and b/src/assets/risk/1-4.png differ diff --git a/src/assets/risk/1.png b/src/assets/risk/1.png new file mode 100644 index 0000000..f3cd09d Binary files /dev/null and b/src/assets/risk/1.png differ diff --git a/src/assets/risk/2-1-1.png b/src/assets/risk/2-1-1.png new file mode 100644 index 0000000..055768e Binary files /dev/null and b/src/assets/risk/2-1-1.png differ diff --git a/src/assets/risk/2-1.png b/src/assets/risk/2-1.png new file mode 100644 index 0000000..eeb473b Binary files /dev/null and b/src/assets/risk/2-1.png differ diff --git a/src/assets/risk/2-2.png b/src/assets/risk/2-2.png new file mode 100644 index 0000000..dbca85d Binary files /dev/null and b/src/assets/risk/2-2.png differ diff --git a/src/assets/risk/2-3.png b/src/assets/risk/2-3.png new file mode 100644 index 0000000..12d05c5 Binary files /dev/null and b/src/assets/risk/2-3.png differ diff --git a/src/assets/risk/2-4.png b/src/assets/risk/2-4.png new file mode 100644 index 0000000..a7d688c Binary files /dev/null and b/src/assets/risk/2-4.png differ diff --git a/src/assets/risk/3-1-1.png b/src/assets/risk/3-1-1.png new file mode 100644 index 0000000..ae7385a Binary files /dev/null and b/src/assets/risk/3-1-1.png differ diff --git a/src/assets/risk/3-1.png b/src/assets/risk/3-1.png new file mode 100644 index 0000000..28d6788 Binary files /dev/null and b/src/assets/risk/3-1.png differ diff --git a/src/assets/risk/3-2.png b/src/assets/risk/3-2.png new file mode 100644 index 0000000..77f1c3f Binary files /dev/null and b/src/assets/risk/3-2.png differ diff --git a/src/assets/risk/3-3.png b/src/assets/risk/3-3.png new file mode 100644 index 0000000..3c6a6d5 Binary files /dev/null and b/src/assets/risk/3-3.png differ diff --git a/src/assets/risk/3-4.png b/src/assets/risk/3-4.png new file mode 100644 index 0000000..dca1bd1 Binary files /dev/null and b/src/assets/risk/3-4.png differ diff --git a/src/assets/risk/4-1-1.png b/src/assets/risk/4-1-1.png new file mode 100644 index 0000000..845c7ac Binary files /dev/null and b/src/assets/risk/4-1-1.png differ diff --git a/src/assets/risk/4-1.png b/src/assets/risk/4-1.png new file mode 100644 index 0000000..010e211 Binary files /dev/null and b/src/assets/risk/4-1.png differ diff --git a/src/assets/risk/4-2.png b/src/assets/risk/4-2.png new file mode 100644 index 0000000..5cb1fd8 Binary files /dev/null and b/src/assets/risk/4-2.png differ diff --git a/src/assets/risk/4-3.png b/src/assets/risk/4-3.png new file mode 100644 index 0000000..5be16c2 Binary files /dev/null and b/src/assets/risk/4-3.png differ diff --git a/src/assets/risk/4-4.png b/src/assets/risk/4-4.png new file mode 100644 index 0000000..1f35ec0 Binary files /dev/null and b/src/assets/risk/4-4.png differ diff --git a/src/assets/risk/5-1-1.png b/src/assets/risk/5-1-1.png new file mode 100644 index 0000000..f730234 Binary files /dev/null and b/src/assets/risk/5-1-1.png differ diff --git a/src/assets/risk/5-1.png b/src/assets/risk/5-1.png new file mode 100644 index 0000000..574201d Binary files /dev/null and b/src/assets/risk/5-1.png differ diff --git a/src/assets/risk/5-2.png b/src/assets/risk/5-2.png new file mode 100644 index 0000000..f5bdb7f Binary files /dev/null and b/src/assets/risk/5-2.png differ diff --git a/src/assets/risk/5-3.png b/src/assets/risk/5-3.png new file mode 100644 index 0000000..b8bf8a7 Binary files /dev/null and b/src/assets/risk/5-3.png differ diff --git a/src/assets/risk/5-4.png b/src/assets/risk/5-4.png new file mode 100644 index 0000000..6fa4938 Binary files /dev/null and b/src/assets/risk/5-4.png differ diff --git a/src/assets/risk/6-1-1.png b/src/assets/risk/6-1-1.png new file mode 100644 index 0000000..3173ff6 Binary files /dev/null and b/src/assets/risk/6-1-1.png differ diff --git a/src/assets/risk/6-1.png b/src/assets/risk/6-1.png new file mode 100644 index 0000000..50e8485 Binary files /dev/null and b/src/assets/risk/6-1.png differ diff --git a/src/assets/risk/6-2.png b/src/assets/risk/6-2.png new file mode 100644 index 0000000..16529c4 Binary files /dev/null and b/src/assets/risk/6-2.png differ diff --git a/src/assets/risk/6-3.png b/src/assets/risk/6-3.png new file mode 100644 index 0000000..4c43020 Binary files /dev/null and b/src/assets/risk/6-3.png differ diff --git a/src/assets/risk/6-4.png b/src/assets/risk/6-4.png new file mode 100644 index 0000000..7278e2a Binary files /dev/null and b/src/assets/risk/6-4.png differ diff --git a/src/assets/risk/7-1-1.png b/src/assets/risk/7-1-1.png new file mode 100644 index 0000000..627712d Binary files /dev/null and b/src/assets/risk/7-1-1.png differ diff --git a/src/assets/risk/7-1.png b/src/assets/risk/7-1.png new file mode 100644 index 0000000..8f76dde Binary files /dev/null and b/src/assets/risk/7-1.png differ diff --git a/src/assets/risk/7-2.png b/src/assets/risk/7-2.png new file mode 100644 index 0000000..b63a609 Binary files /dev/null and b/src/assets/risk/7-2.png differ diff --git a/src/assets/risk/7-3.png b/src/assets/risk/7-3.png new file mode 100644 index 0000000..14517ae Binary files /dev/null and b/src/assets/risk/7-3.png differ diff --git a/src/assets/risk/7-4.png b/src/assets/risk/7-4.png new file mode 100644 index 0000000..a4debf7 Binary files /dev/null and b/src/assets/risk/7-4.png differ diff --git a/src/assets/risk/back.jpg b/src/assets/risk/back.jpg new file mode 100644 index 0000000..f743ff1 Binary files /dev/null and b/src/assets/risk/back.jpg differ diff --git a/src/assets/risk/backno.jpg b/src/assets/risk/backno.jpg new file mode 100644 index 0000000..de19e97 Binary files /dev/null and b/src/assets/risk/backno.jpg differ diff --git a/src/assets/risk/blue.png b/src/assets/risk/blue.png new file mode 100644 index 0000000..d1217c0 Binary files /dev/null and b/src/assets/risk/blue.png differ diff --git a/src/assets/risk/orange.png b/src/assets/risk/orange.png new file mode 100644 index 0000000..9f409f7 Binary files /dev/null and b/src/assets/risk/orange.png differ diff --git a/src/assets/risk/red.png b/src/assets/risk/red.png new file mode 100644 index 0000000..1a1bc40 Binary files /dev/null and b/src/assets/risk/red.png differ diff --git a/src/assets/risk/yellow.png b/src/assets/risk/yellow.png new file mode 100644 index 0000000..43def5a Binary files /dev/null and b/src/assets/risk/yellow.png differ diff --git a/src/assets/riskone/1-1.png b/src/assets/riskone/1-1.png new file mode 100644 index 0000000..320f882 Binary files /dev/null and b/src/assets/riskone/1-1.png differ diff --git a/src/assets/riskone/1-2.png b/src/assets/riskone/1-2.png new file mode 100644 index 0000000..7b56b26 Binary files /dev/null and b/src/assets/riskone/1-2.png differ diff --git a/src/assets/riskone/1-3.png b/src/assets/riskone/1-3.png new file mode 100644 index 0000000..389aeba Binary files /dev/null and b/src/assets/riskone/1-3.png differ diff --git a/src/assets/riskone/1-4.png b/src/assets/riskone/1-4.png new file mode 100644 index 0000000..4d86b9f Binary files /dev/null and b/src/assets/riskone/1-4.png differ diff --git a/src/assets/riskone/2-1.png b/src/assets/riskone/2-1.png new file mode 100644 index 0000000..f745bc1 Binary files /dev/null and b/src/assets/riskone/2-1.png differ diff --git a/src/assets/riskone/2-2.png b/src/assets/riskone/2-2.png new file mode 100644 index 0000000..49afcdb Binary files /dev/null and b/src/assets/riskone/2-2.png differ diff --git a/src/assets/riskone/2-3.png b/src/assets/riskone/2-3.png new file mode 100644 index 0000000..c8b5224 Binary files /dev/null and b/src/assets/riskone/2-3.png differ diff --git a/src/assets/riskone/2-4.png b/src/assets/riskone/2-4.png new file mode 100644 index 0000000..e401f11 Binary files /dev/null and b/src/assets/riskone/2-4.png differ diff --git a/src/assets/riskone/3-1.png b/src/assets/riskone/3-1.png new file mode 100644 index 0000000..dc8ece1 Binary files /dev/null and b/src/assets/riskone/3-1.png differ diff --git a/src/assets/riskone/3-2.png b/src/assets/riskone/3-2.png new file mode 100644 index 0000000..9aaa629 Binary files /dev/null and b/src/assets/riskone/3-2.png differ diff --git a/src/assets/riskone/3-3.png b/src/assets/riskone/3-3.png new file mode 100644 index 0000000..b158375 Binary files /dev/null and b/src/assets/riskone/3-3.png differ diff --git a/src/assets/riskone/3-4.png b/src/assets/riskone/3-4.png new file mode 100644 index 0000000..6a268eb Binary files /dev/null and b/src/assets/riskone/3-4.png differ diff --git a/src/assets/riskone/4-1.png b/src/assets/riskone/4-1.png new file mode 100644 index 0000000..dde72a4 Binary files /dev/null and b/src/assets/riskone/4-1.png differ diff --git a/src/assets/riskone/4-2.png b/src/assets/riskone/4-2.png new file mode 100644 index 0000000..d48ac1c Binary files /dev/null and b/src/assets/riskone/4-2.png differ diff --git a/src/assets/riskone/4-3.png b/src/assets/riskone/4-3.png new file mode 100644 index 0000000..ec5119a Binary files /dev/null and b/src/assets/riskone/4-3.png differ diff --git a/src/assets/riskone/4-4.png b/src/assets/riskone/4-4.png new file mode 100644 index 0000000..8e07f36 Binary files /dev/null and b/src/assets/riskone/4-4.png differ diff --git a/src/assets/riskone/5-1.png b/src/assets/riskone/5-1.png new file mode 100644 index 0000000..1cf8789 Binary files /dev/null and b/src/assets/riskone/5-1.png differ diff --git a/src/assets/riskone/5-2.png b/src/assets/riskone/5-2.png new file mode 100644 index 0000000..1d5c31d Binary files /dev/null and b/src/assets/riskone/5-2.png differ diff --git a/src/assets/riskone/5-3.png b/src/assets/riskone/5-3.png new file mode 100644 index 0000000..73d4496 Binary files /dev/null and b/src/assets/riskone/5-3.png differ diff --git a/src/assets/riskone/5-4.png b/src/assets/riskone/5-4.png new file mode 100644 index 0000000..221e1f4 Binary files /dev/null and b/src/assets/riskone/5-4.png differ diff --git a/src/assets/riskone/back.jpg b/src/assets/riskone/back.jpg new file mode 100644 index 0000000..efd4f41 Binary files /dev/null and b/src/assets/riskone/back.jpg differ diff --git a/src/assets/riskone/backno.JPG b/src/assets/riskone/backno.JPG new file mode 100644 index 0000000..dde6c02 Binary files /dev/null and b/src/assets/riskone/backno.JPG differ diff --git a/src/assets/riskthree/1-1.png b/src/assets/riskthree/1-1.png new file mode 100644 index 0000000..433b8a7 Binary files /dev/null and b/src/assets/riskthree/1-1.png differ diff --git a/src/assets/riskthree/1-2.png b/src/assets/riskthree/1-2.png new file mode 100644 index 0000000..d5e6130 Binary files /dev/null and b/src/assets/riskthree/1-2.png differ diff --git a/src/assets/riskthree/1-3.png b/src/assets/riskthree/1-3.png new file mode 100644 index 0000000..531e246 Binary files /dev/null and b/src/assets/riskthree/1-3.png differ diff --git a/src/assets/riskthree/1-4.png b/src/assets/riskthree/1-4.png new file mode 100644 index 0000000..7edbb6a Binary files /dev/null and b/src/assets/riskthree/1-4.png differ diff --git a/src/assets/riskthree/2-1.png b/src/assets/riskthree/2-1.png new file mode 100644 index 0000000..e69cc28 Binary files /dev/null and b/src/assets/riskthree/2-1.png differ diff --git a/src/assets/riskthree/2-2.png b/src/assets/riskthree/2-2.png new file mode 100644 index 0000000..b1d798e Binary files /dev/null and b/src/assets/riskthree/2-2.png differ diff --git a/src/assets/riskthree/2-3.png b/src/assets/riskthree/2-3.png new file mode 100644 index 0000000..8022efc Binary files /dev/null and b/src/assets/riskthree/2-3.png differ diff --git a/src/assets/riskthree/2-4.png b/src/assets/riskthree/2-4.png new file mode 100644 index 0000000..eaabb48 Binary files /dev/null and b/src/assets/riskthree/2-4.png differ diff --git a/src/assets/riskthree/back.jpg b/src/assets/riskthree/back.jpg new file mode 100644 index 0000000..d103251 Binary files /dev/null and b/src/assets/riskthree/back.jpg differ diff --git a/src/assets/riskthree/backno.JPG b/src/assets/riskthree/backno.JPG new file mode 100644 index 0000000..57f5798 Binary files /dev/null and b/src/assets/riskthree/backno.JPG differ diff --git a/src/assets/risktwo/1-1.png b/src/assets/risktwo/1-1.png new file mode 100644 index 0000000..0b7abab Binary files /dev/null and b/src/assets/risktwo/1-1.png differ diff --git a/src/assets/risktwo/1-2.png b/src/assets/risktwo/1-2.png new file mode 100644 index 0000000..0751ec2 Binary files /dev/null and b/src/assets/risktwo/1-2.png differ diff --git a/src/assets/risktwo/1-3.png b/src/assets/risktwo/1-3.png new file mode 100644 index 0000000..fe752b8 Binary files /dev/null and b/src/assets/risktwo/1-3.png differ diff --git a/src/assets/risktwo/1-4.png b/src/assets/risktwo/1-4.png new file mode 100644 index 0000000..e9aecd5 Binary files /dev/null and b/src/assets/risktwo/1-4.png differ diff --git a/src/assets/risktwo/2-1.png b/src/assets/risktwo/2-1.png new file mode 100644 index 0000000..197eee0 Binary files /dev/null and b/src/assets/risktwo/2-1.png differ diff --git a/src/assets/risktwo/2-2.png b/src/assets/risktwo/2-2.png new file mode 100644 index 0000000..b91adab Binary files /dev/null and b/src/assets/risktwo/2-2.png differ diff --git a/src/assets/risktwo/2-3.png b/src/assets/risktwo/2-3.png new file mode 100644 index 0000000..db36cf3 Binary files /dev/null and b/src/assets/risktwo/2-3.png differ diff --git a/src/assets/risktwo/2-4.png b/src/assets/risktwo/2-4.png new file mode 100644 index 0000000..1d4d715 Binary files /dev/null and b/src/assets/risktwo/2-4.png differ diff --git a/src/assets/risktwo/3-1.png b/src/assets/risktwo/3-1.png new file mode 100644 index 0000000..d331a36 Binary files /dev/null and b/src/assets/risktwo/3-1.png differ diff --git a/src/assets/risktwo/3-2.png b/src/assets/risktwo/3-2.png new file mode 100644 index 0000000..e773c2f Binary files /dev/null and b/src/assets/risktwo/3-2.png differ diff --git a/src/assets/risktwo/3-3.png b/src/assets/risktwo/3-3.png new file mode 100644 index 0000000..be50927 Binary files /dev/null and b/src/assets/risktwo/3-3.png differ diff --git a/src/assets/risktwo/3-4.png b/src/assets/risktwo/3-4.png new file mode 100644 index 0000000..4fb4e9f Binary files /dev/null and b/src/assets/risktwo/3-4.png differ diff --git a/src/assets/risktwo/back.jpg b/src/assets/risktwo/back.jpg new file mode 100644 index 0000000..41937b0 Binary files /dev/null and b/src/assets/risktwo/back.jpg differ diff --git a/src/assets/risktwo/backno.JPG b/src/assets/risktwo/backno.JPG new file mode 100644 index 0000000..5d5a84a Binary files /dev/null and b/src/assets/risktwo/backno.JPG differ diff --git a/src/layout/FullScreen.js b/src/layout/FullScreen.js new file mode 100644 index 0000000..5d53bd8 --- /dev/null +++ b/src/layout/FullScreen.js @@ -0,0 +1,1542 @@ +import React, { useState, useEffect, useMemo, useRef } from "react"; +import { connect } from "dva"; +import { withRouter, matchPath } from "dva/router"; +import { Scrollbars } from "react-custom-scrollbars"; +import { Icon, Row, Col, Progress } from "antd"; +import EnergyIcon from "../utils/energyIcon"; +import { $consts } from "../plugins"; +import styles from "./full.less"; +import echarts from "echarts"; +import realGif from "../assets/layout/mofang.png"; +import logo from "../assets/layout/header-logo.png"; +import debounce from "lodash.debounce"; +import { + FullScreenContainer, + BorderBox8, + BorderBox10, + ScrollBoard, + CapsuleChart, + WaterLevelPond, +} from "@jiaminghi/data-view-react"; +import { text } from "@jiaminghi/data-view-react/lib/index-cd27b7f6"; +import { Scale } from "canvg"; + +const stud = (eve) => { + return ( +
+
+
90
+
+ ); +}; +const getScale = () => { + const width = 1920, + height = 1080; // 此处可以根据实际设计稿尺寸修改 + let ww = window.innerWidth / width; + let wh = window.innerHeight / height; + return ww < wh ? ww : wh; +}; + +class FullScreen extends React.Component { + constructor(props) { + super(props); + this.state = { + // screenWidh: window.screen.width > 2000 ? true : false, + nowDate: "", + checkData: [ + { name: "公司检查", value: 103 }, + { name: "部门检查", value: 79 }, + { name: "车间检查", value: 86 }, + { name: "班组检查", value: 94 }, + ], + widthp: "70%", + scrollConfig: { + header: ["检查类型", "检查次数", "完成率"], + data: [ + ["巡回检查", "322", "99%"], + ["例行检查", "255", "99%"], + ["日常检查", "253", "99%"], + ["专业检查", "123", "99%"], + ["巡回检查", "322", "99%"], + ["例行检查", "255", "99%"], + ["日常检查", "253", "99%"], + ["专业检查", "123", "99%"], + ], + waitTime: 200000, + }, + safescrollConfig: { + header: ["部门", "车间", "活动", "进度"], + data: [ + ["矿山部", "穿爆车间", "班前会议", "98%"], + ["矿山部", "金宇宁化分公司", "班前会议", "98%"], + ["选矿部", "破碎车间", "班前会议", "95%"], + ["矿山部", "磨重车间", "班前会议", "92%"], + ["矿山部", "机电设备管理科", "班前会议", "83%"], + ["矿山部", "钨细泥回收车间", "班前会议", "93%"], + ["矿山部", "穿爆车间", "班前会议", "90%"], + ["矿山部", "穿爆车间", "班前会议", "90%"], + ["矿山部", "穿爆车间", "班前会议", "90%"], + ], + index: true, + columnWidth: [80, 200, 300, 200, 200], + align: ["center"], + waitTime: 2000, + }, + chartConfig: { + data: [ + { + name: "电工日常班", + value: 97, + }, + { + name: "电工三班", + value: 95, + }, + { + name: "破碎一班", + value: 91, + }, + { + name: "磨重二班", + value: 86, + }, + { + name: "磨重三班", + value: 83, + }, + ], + showValue: true, + }, + WaterLevelPondconfig1: { + data: [75], + shape: "round", + }, + WaterLevelPondconfig2: { + data: [85], + shape: "round", + }, + WaterLevelPondconfig3: { + data: [95], + shape: "round", + }, + completeData: [ + { + name: "班组会议完成率", + value: 75, + }, + { + name: "岗位交接班完成率", + value: 85, + }, + { + name: "岗位当班记录完成率", + value: 95, + }, + ], + // completeDatatwo: { + // name: "岗位交接班完成率", + // value: 85, + // id: "completetwo", + // }, + // completeDatathree: { + // name: "岗位当班记录完成率", + // value: 95, + // id: "completethree", + // }, + meetingData: [ + { + name: "班前会议", + value: 32, + }, + { + name: "班组活动", + value: 132, + }, + { + name: "岗位交接班", + value: 32, + }, + { + name: "岗位当班", + value: 132, + }, + { + name: "班前会议", + value: 32, + }, + { + name: "班组活动", + value: 132, + }, + { + name: "岗位交接班", + value: 32, + }, + { + name: "岗位当班", + value: 132, + }, + ], + roaData: [ + { + name: "总任务数", + value: 1456, + }, + { + name: "超时待办数", + value: 132, + }, + { + name: "安全检查数", + value: 1456, + }, + { + name: "检查完成率", + value: 32, + }, + { + name: "职业危害", + value: 132, + }, + { + name: "管控措施", + value: 1456, + }, + { + name: "安全检查库", + value: 132, + }, + { + name: "危险源库", + value: 32, + }, + { + name: "培训计划完成率", + value: 132, + }, + { + name: "用户活跃度", + value: 1456, + }, + { + name: "系统用户数", + value: 132, + }, + { + name: "正常已办数", + value: 32, + }, + { + name: "未完成数", + value: 132, + }, + ], + scale: getScale(), + }; + // this.scrollConfig = { + // header: ["检查类型", "检查次数", "完成率"], + // data: [ + // ["巡回检查", "322", "行1列3"], + // ["例行检查", "255", "行2列3"], + // ["日常检查", "253", "行3列3"], + // ["专业检查", "123", "行4列3"], + // ["巡回检查", "322", "行1列3"], + // ["例行检查", "255", "行2列3"], + // ["日常检查", "253", "行3列3"], + // ["专业检查", "123", "行4列3"], + // ], + // waitTime: 200000, + // }; + } + + setScale = debounce(() => { + // debounce节流 + // 获取到缩放比,设置它 + let scale = getScale(); + this.setState({ scale }); + }, 500); + + componentDidMount() { + window.addEventListener("resize", this.setScale); // 得到呈现的屏幕宽高比 + this.riskLevel(); + this.safedanger(); + const eve = () => { + return
11111
; + }; + // setInterval(this.getDate(), 1000); + this.timer = setInterval(() => { + this.setState({ + nowDate: this.getDate(), + }); + }, 1000); + // setTimeout(()=>{ + // this.setState({ + // nowDate:this.getDate() + // }) + // },1000) + + this.completeChart(this.state.completeData); + // this.completeChart(this.state.completeDatatwo); + // this.completeChart(this.state.completeDatathree); + // this.setState({ + // scrollConfig: { + // header: ["检查类型", "检查次数", "完成率"], + // data: [ + // [ + // "巡回检查", + // "322", + // "
", + // ], + // ["例行检查", "255", eve], + // ["日常检查", "253", "99%"], + // ["专业检查", "123", "99%"], + // ["巡回检查", "322", "99%"], + // ["例行检查", "255", "99%"], + // ["日常检查", "253", "99%"], + // ["专业检查", "123", "99%"], + // ], + // waitTime: 2000, + // }, + // }); + } + componentWillUnmount() { + window.removeEventListener("resize", this.setScale); + clearInterval(this.timer); + } + getDate = () => { + var myDate = new Date(); + var year = myDate.getFullYear(); //获取当前年 + var mon = myDate.getMonth() + 1; //获取当前月 + var date = myDate.getDate(); //获取当前日 + // var hours = myDate.getHours(); //获取当前小时 + // var minutes = myDate.getMinutes(); //获取当前分钟 + + if (myDate.getHours() < 10) { + var hours = "0" + myDate.getHours(); + } else { + hours = myDate.getHours(); //获取当前小时 + } + if (myDate.getMinutes() < 10) { + var minutes = "0" + myDate.getMinutes(); + } else { + minutes = myDate.getMinutes(); //获取当前分钟 + } + if (myDate.getSeconds() < 10) { + var seconds = "0" + myDate.getSeconds(); + } else { + seconds = myDate.getSeconds(); //获取当前秒 + } + + var now = + year + + " 年 " + + mon + + " 月 " + + date + + " 日 " + + "\t\t\t" + + hours + + " : " + + minutes + + " : " + + seconds; + return now; + }; + completeChart = (evt) => { + let seriesArr = []; + let centerArr = [ + ["17%", "50%"], + ["50%", "50%"], + ["83%", "50%"], + ]; + evt.forEach((item, index) => { + seriesArr.push( + { + name: "统计", + type: "gauge", + radius: "75%", //图表尺寸 + center: centerArr[index], + axisLine: { + show: true, + lineStyle: { + width: 0, + shadowBlur: 0, + color: [ + [0.05, "#a62efb"], + [0.1, "#af23fa"], + [0.15, "#b31ffa"], + [0.2, "#b71afa"], + [0.25, "#b51dfa"], + [0.3, "#b220fa"], + [0.35, "#a42ffb"], + [0.4, "#993dfb"], + [0.45, "#8f47fb"], + [0.5, "#7b5efc"], + [0.55, "#6476fc"], + [0.6, "#4c91fd"], + [0.65, "#35abfe"], + [0.7, "#24befe"], + [0.75, "#12d1ff"], + [0.8, "#06defe"], + [0.85, "#05e0ff"], + [0.9, "#06deff"], + [0.95, "#06deff"], + [1, "#06deff"], + ], + }, + }, + axisTick: { + show: true, + lineStyle: { + color: "auto", + width: 2, + }, + length: -5, + splitNumber: 5, + }, + splitLine: { + show: true, + length: -10, + lineStyle: { + color: "auto", + width: 2, + }, + }, + axisLabel: { + show: false, + }, + pointer: { + //仪表盘指针 + show: false, + }, + detail: { + show: false, + }, + title: { + show: true, + offsetCenter: [0, "100%"], // x, y,单位px + textStyle: { + color: "#fff", + fontSize: 14, + }, + }, + data: [ + { + name: item.name, + }, + ], + }, + { + type: "gauge", + radius: "70%", + center: centerArr[index], + splitNumber: 0, //刻度数量 + startAngle: 225, + endAngle: -45, + axisLine: { + show: true, + lineStyle: { + width: 10, + color: [ + [ + 1, + new echarts.graphic.LinearGradient(0, 0, 1, 0, [ + { + offset: 0, + color: "#A52EFA", + }, + { + offset: 1, + color: "#07DDFD", + }, + ]), + ], + ], + }, + }, + //分隔线样式。 + splitLine: { + show: false, + }, + axisLabel: { + show: false, + }, + axisTick: { + show: false, + }, + pointer: { + show: false, + }, + title: { + show: false, + offsetCenter: [0, "-20%"], // x, y,单位px + textStyle: { + color: "#fff", + fontSize: 12, + }, + }, + //仪表盘详情,用于显示数据。 + detail: { + show: true, + offsetCenter: [0, 0], + color: "#fff", + formatter: function (params) { + return params + "%"; + }, + textStyle: { + fontSize: 22, + }, + }, + data: [ + { + // name: evt.name, + value: item.value, + }, + ], + } + ); + }); + let completeCharts = document.getElementById("completeone"); + if (completeCharts) { + let myChart = echarts.init(completeCharts); + myChart.setOption({ + // backgroundColor:'#000', + series: seriesArr, + }); + } + }; + safedanger = () => { + let bgColor = "#000"; + let color = [ + "#0090FF", + "#36CE9E", + "#e690d1", + // "#FF515A", + // "#8B5CFF", + // "#00CA69", + ]; + let echartData = [ + { + name: "1", + value1: 99, + value2: 93, + value3: 90, + }, + { + name: "2", + value1: 95, + value2: 98, + value3: 60, + }, + { + name: "3", + value1: 92, + value2: 99, + value3: 90, + }, + { + name: "4", + value1: 99, + value2: 96, + value3: 96, + }, + { + name: "5", + value1: 80, + value2: 85, + value3: 91, + }, + { + name: "6", + value1: 99, + value2: 65, + value3: 80, + }, + { + name: "7", + value1: 92, + value2: 97, + value3: 70, + }, + { + name: "8", + value1: 75, + value2: 96, + value3: 90, + }, + { + name: "9", + value1: 93, + value2: 95, + value3: 90, + }, + { + name: "10", + value1: 100, + value2: 97, + value3: 90, + }, + { + name: "11", + value1: 99, + value2: 93, + value3: 90, + }, + { + name: "12", + value1: 93, + value2: 87, + value3: 90, + }, + ]; + + let xAxisData = echartData.map((v) => v.name); + //  ["1", "2", "3", "4", "5", "6", "7", "8"] + let yAxisData1 = echartData.map((v) => v.value1); + // [100, 138, 350, 173, 180, 150, 180, 230] + let yAxisData2 = echartData.map((v) => v.value2); + let yAxisData3 = echartData.map((v) => v.value3); + // [233, 233, 200, 180, 199, 233, 210, 180] + const hexToRgba = (hex, opacity) => { + let rgbaColor = ""; + let reg = /^#[\da-f]{6}$/i; + if (reg.test(hex)) { + rgbaColor = `rgba(${parseInt("0x" + hex.slice(1, 3))},${parseInt( + "0x" + hex.slice(3, 5) + )},${parseInt("0x" + hex.slice(5, 7))},${opacity})`; + } + return rgbaColor; + }; + let opretionTrends = document.getElementById("opretionTrend"); + if (opretionTrends) { + let myChart = echarts.init(opretionTrends); + myChart.setOption({ + backgroundColor: "", + color: color, + legend: { + right: 10, + top: 10, + textStyle: { + color: "#fff", + }, + }, + tooltip: { + trigger: "axis", + formatter: function (params) { + let html = ""; + params.forEach((v) => { + html += `
+ + ${v.seriesName} + ${v.value} + %`; + }); + + return html; + }, + extraCssText: + "background: #fff; border-radius: 0;box-shadow: 0 0 3px rgba(0, 0, 0, 0.2);color: #333;", + axisPointer: { + type: "shadow", + shadowStyle: { + // color: "#ffffff", + shadowColor: "rgba(225,225,225,1)", + shadowBlur: 5, + }, + }, + }, + grid: { + // top: 100, + top: "25%", + bottom: "10%", + containLabel: true, + }, + xAxis: [ + { + type: "category", + boundaryGap: false, + axisLabel: { + formatter: "{value}月", + textStyle: { + color: "#fff", + }, + }, + axisLine: { + lineStyle: { + color: "#fff", + }, + }, + data: xAxisData, + }, + ], + yAxis: [ + { + type: "value", + axisLabel: { + textStyle: { + color: "#fff", + }, + }, + nameTextStyle: { + color: "#fff", + fontSize: 12, + lineHeight: 40, + }, + splitLine: { + lineStyle: { + type: "dashed", + color: "#fff", + }, + }, + axisLine: { + show: false, + }, + axisTick: { + show: false, + }, + }, + ], + series: [ + { + name: "选矿", + type: "line", + smooth: true, + // showSymbol: false,/ + symbolSize: 8, + zlevel: 3, + lineStyle: { + normal: { + color: color[0], + shadowBlur: 3, + // shadowColor: hexToRgba(color[0], 0.5), + shadowOffsetY: 8, + }, + }, + // areaStyle: { + // normal: { + // color: new echarts.graphic.LinearGradient( + // 0, + // 0, + // 0, + // 1, + // [ + // { + // offset: 0, + // color: hexToRgba(color[0], 0.3), + // }, + // { + // offset: 1, + // color: hexToRgba(color[0], 0.1), + // }, + // ], + // false + // ), + // shadowColor: hexToRgba(color[0], 0.1), + // shadowBlur: 10, + // }, + // }, + data: yAxisData1, + }, + { + name: "矿山", + type: "line", + smooth: true, + // showSymbol: false, + symbolSize: 8, + zlevel: 3, + lineStyle: { + normal: { + color: color[1], + shadowBlur: 3, + // shadowColor: hexToRgba(color[1], 0.5), + shadowOffsetY: 8, + }, + }, + // areaStyle: { + // normal: { + // color: new echarts.graphic.LinearGradient( + // 0, + // 0, + // 0, + // 1, + // [ + // { + // offset: 0, + // color: hexToRgba(color[1], 0.3), + // }, + // { + // offset: 1, + // color: hexToRgba(color[1], 0.1), + // }, + // ], + // false + // ), + // shadowColor: hexToRgba(color[1], 0.1), + // shadowBlur: 10, + // }, + // }, + data: yAxisData2, + }, + { + name: "尾矿", + type: "line", + smooth: true, + // showSymbol: false, + symbolSize: 8, + zlevel: 3, + lineStyle: { + normal: { + color: color[2], + shadowBlur: 3, + // shadowColor: hexToRgba(color[1], 0.5), + shadowOffsetY: 8, + }, + }, + // areaStyle: { + // normal: { + // color: new echarts.graphic.LinearGradient( + // 0, + // 0, + // 0, + // 1, + // [ + // { + // offset: 0, + // color: hexToRgba(color[1], 0.3), + // }, + // { + // offset: 1, + // color: hexToRgba(color[1], 0.1), + // }, + // ], + // false + // ), + // shadowColor: hexToRgba(color[1], 0.1), + // shadowBlur: 10, + // }, + // }, + data: yAxisData3, + }, + ], + }); + } + }; + riskLevel = () => { + let riskLevel = []; + let showData = [ + { value: 2, name: "一级" }, + { value: 5, name: "二级" }, + { value: 15, name: "三级" }, + { value: 30, name: "四级" }, + ]; + + let riskLevels = document.getElementById("riskLevelFull"); + if (riskLevels) { + let myChart = echarts.init(riskLevels); + myChart.setOption({ + color: ["#c92a2a", "#FF6710", "#FFDD1E", "#0091FF", "#fa8a89"], + title: [ + { + text: "52", + x: "center", + y: "40%", + textStyle: { + fontSize: 26, + fontWeight: "normal", + color: ["#fff"], + }, + }, + { + text: "风险总数", + x: "center", + y: "55%", + textStyle: { + color: "#fff", + fontSize: 12, + }, + }, + ], + tooltip: { + trigger: "item", + formatter: "{b}:({d}%)", + }, + series: [ + { + name: "访问来源", + type: "pie", + minAngle: 20, + radius: ["45%", "70%"], + center: ["50%", "50%"], + clockwise: true, + avoidLabelOverlap: true, + hoverOffset: 15, + label: { + show: true, + position: "outside", + // formatter: '{a|{b}:{d}%}\n{hr|}', + formatter: "{a|{b}:}{e|{d}%}\n", + rich: { + hr: { + backgroundColor: "t", + borderRadius: 3, + width: 3, + height: 3, + padding: [3, 3, 0, -12], + }, + a: { + padding: [-15, 0, 0, 0], + fontSize: 15, + // fontWeight: "bold", + color: "#fff", + // fontFamily:'站酷庆科黄油体', + // letterSpacing: 3, + }, + e: { + fontSize: 14, + color: "#fff", + padding: [-15, 0, 0, 5], + }, + }, + }, + labelLine: { + normal: { + length: 20, + length2: 30, + lineStyle: { + width: 1, + type: "dashed", + }, + }, + }, + // itemStyle: { + // //图形样式 + // normal: { + // borderColor: "#fff", + // borderWidth: 2, + // padding: "0 20px", + // borderRadius: 50, + // }, + // }, + // color: color, + data: showData, + }, + ], + }); + } + }; + + render() { + const width = 1920, + height = 1080; + // 固定好16:9的宽高比,计算出最合适的缩放比,宽高比可根据需要自行更改 + const { scale } = this.state; + return ( + + +
+
+
+
+ + +
+ logo +
+

+ 安全方针:安全第一、综合治理、控制风险、科学发展 +                    + 安全理念:一切风险皆可控,一切事故皆可防! +

+
+
+ + +
+ 宁化行洛坑安全生产标准化运营平台 +
+ + +
+ {this.state.nowDate} +
+ +
+
+
+ + +
+ {/* */} +
+
+
+ 风险等级基本信息 +
+
+ +
+ {/*
*/} +
+ +
+
+ {/* */} +
+
+
+ 隐患检查基本信息 +
+
+
+
+ {this.state.checkData.map((item, index) => { + return ( +
+ +
+
+
+ {item.name} +
+ +
+ /次 +
+
+
+ {item.value} +
+
+
+
+ ); + })} +
+
+ +
+
+ {/*
*/} +
+ + +
+
+
+ {/*
矿山
*/} +
+
+ 标准化得分 +
+
83
+
+
+
+
+
+ 标准化得分 +
+
88
+
+
+
+
+
+ 标准化得分 +
+
93
+
+
+
+ {/* {this.state.screenWidh ? ( + + ) : ( +
+
+
矿山
+
+ 标准化得分 +
+
83
+
+
+
选矿
+
+ 标准化得分 +
+
88
+
+
+
尾矿
+
+ 标准化得分 +
+
93
+
+
+ )} */} +
+
+
+ 1 +
+
+ {this.state.roaData.map((item, index) => { + return ( +
  • +
    +
    + {item.name}:{item.value} +
    +
    +
  • + ); + })} +
    +
    +
    +
    + + +
    + {/* */} +
    +
    +
    + 基本会议完成情况 +
    +
    +
    +
    +
    + {/*
    +
    */} + {/* + + */} +
    +
    + + {this.state.meetingData.map((item, index) => ( + +
    +
    +
    +
    + {item.value} +
    +
    + {item.name} +
    +
    +
    +
    + + ))} +
    +
    +
    +
    + +
    +
    + {/* */} +
    +
    +
    + 安全任务完成情况 +
    +
    +
    +
    + +
    +
    + {/*
    */} +
    + +
    +
    +
    + + +
    + {/* */} +
    +
    +
    隐患整改数据
    +
    +
    +
    +
    +
    +
    +
    83
    +
    + 隐患数 +
    +
    +
    +
    +
    +
    +
    +
    23
    +
    + 延期整改数 +
    +
    +
    +
    +
    +
    +
    +
    56
    +
    + 按期整改数 +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + 83% +
    +
    + 整改率 +
    +
    +
    +
    +
    +
    + {/*
    */} +
    + + + {/* */} +
    +
    +
    +
    + 安全生产标准化运行走势图 +
    +
    +
    +
    + {/*
    */} + + +
    +
    +
    +
    +
    + 班组完成率TOP5 +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    +
    + ); + } +} + +export default withRouter(connect(({ login }) => ({ login }))(FullScreen)); diff --git a/src/layout/Header.js b/src/layout/Header.js index 89ca841..24c167d 100644 --- a/src/layout/Header.js +++ b/src/layout/Header.js @@ -1,4 +1,4 @@ -import React, { useState, useMemo } from "react"; +import React, { useState, useMemo, useEffect } from "react"; import { connect } from "dva"; import { withRouter } from "dva/router"; import { Dropdown, Icon, Menu, message, Button, Modal, Input } from "antd"; @@ -8,10 +8,12 @@ import FoUserInfoShow from "../components/MainPage/FoUserInfoShow"; import FeedbackQuestion from "../components/MainPage/FeedbackQuestion"; import GuideCanvas from "../components/MainPage/GuideCanvas"; import IconFont from "../utils/iconFont"; -import { initFilter } from "../utils/common"; +import { initFilter, requestFullScreenMethod } from "../utils/common"; import config from "../config"; import "./header.less"; import Option from "./Option"; +import RiskFourPage from "./RiskFour"; +import FullScreenPage from "./FullScreen"; // 投屏 const DataV = (props) => { @@ -132,7 +134,7 @@ const SearchBox = (props) => { }); props.history.push({ pathname: `/main/${menu.Node.ID}` }); setInputVal(""); - setAutoCompleteData([]) + setAutoCompleteData([]); }; if (window.navigator.userAgent.indexOf("Windows") < 1) { return ; @@ -153,7 +155,7 @@ const SearchBox = (props) => { // hasBorder={false} // lists={autoCompleteData} // /> - +
    {/* { /> */} } + prefix={ + + } onChange={(e) => { handleSearchMenu(e); }} @@ -317,6 +324,177 @@ const GuideCodePage = (props) => { const GuideCode = withRouter( connect(({ login }) => ({ login }))(GuideCodePage) ); +const RiskFourColorOpton = (props) => { + const [showModal, setshowModal] = useState(false); + const escFunction = () => { + let isFull = !!( + document.fullscreen || + document.mozFullScreen || + document.webkitIsFullScreen || + document.webkitFullScreen || + document.msFullScreen + ); + if (isFull) { + // / + } else { + // requestFullScreenMethod(document.body); + setshowModal(false); + } + }; + useEffect(() => { + // 监听退出全屏事件 --- chrome 用 esc 退出全屏并不会触发 keyup 事件 + document.addEventListener( + "webkitfullscreenchange", + escFunction + ); /* Chrome, Safari and Opera */ + document.addEventListener("mozfullscreenchange", escFunction); /* Firefox */ + document.addEventListener( + "fullscreenchange", + escFunction + ); /* Standard syntax */ + document.addEventListener( + "msfullscreenchange", + escFunction + ); /* IE / Edge */ + return () => { + //销毁时清除监听 + document.removeEventListener("webkitfullscreenchange", escFunction); + document.removeEventListener("mozfullscreenchange", escFunction); + document.removeEventListener("fullscreenchange", escFunction); + document.removeEventListener("MSFullscreenChange", escFunction); + }; + }, []); + + if (window.navigator.userAgent.indexOf("Windows") < 1) { + return
    ; + } else { + return ( +
    +
    { + setshowModal(true); + requestFullScreenMethod(document.body); // 进入全屏 + }} + style={{ margin: "0px 36px", display: "flex", alignItems: "center" }} + > + + {/* */} +
    + { + setshowModal(false); + }} + onCancel={() => { + setshowModal(false); + }} + className="fullScreen" + > + + +
    + ); + } +}; + +const RiskFourColor = withRouter( + connect(({ login }) => ({ login }))(RiskFourColorOpton) +); + +const FullScreenOpton = (props) => { + const [showModal, setshowModal] = useState(false); + const getChildCount = (val) => { + setshowModal(val); + }; + const [fullScreen, setFullScreen] = useState(false); + const [originResizeFunc, setOriginResizeFunc] = useState(); + const escFunction = () => { + let isFull = !!( + document.fullscreen || + document.mozFullScreen || + document.webkitIsFullScreen || + document.webkitFullScreen || + document.msFullScreen + ); + if (isFull) { + // / + } else { + // requestFullScreenMethod(document.body); + setshowModal(false); + } + }; + useEffect(() => { + // 监听退出全屏事件 --- chrome 用 esc 退出全屏并不会触发 keyup 事件 + document.addEventListener( + "webkitfullscreenchange", + escFunction + ); /* Chrome, Safari and Opera */ + document.addEventListener("mozfullscreenchange", escFunction); /* Firefox */ + document.addEventListener( + "fullscreenchange", + escFunction + ); /* Standard syntax */ + document.addEventListener( + "msfullscreenchange", + escFunction + ); /* IE / Edge */ + return () => { + //销毁时清除监听 + document.removeEventListener("webkitfullscreenchange", escFunction); + document.removeEventListener("mozfullscreenchange", escFunction); + document.removeEventListener("fullscreenchange", escFunction); + document.removeEventListener("MSFullscreenChange", escFunction); + }; + }, []); + + if (window.navigator.userAgent.indexOf("Windows") < 1) { + return
    ; + } else { + return ( +
    +
    { + setshowModal(true); + requestFullScreenMethod(document.body); // 进入全屏 + }} + > + + {/* */} +
    + { + setshowModal(false); + }} + onCancel={() => { + setshowModal(false); + }} + className="fullScreen" + > + + +
    + ); + } +}; + +const FullScreen = withRouter( + connect(({ login }) => ({ login }))(FullScreenOpton) +); const NavOpton = (props) => { const [showModal, setshowModal] = useState(false); const getChildCount = (val) => { @@ -390,15 +568,17 @@ function Header(props) { : "header__left-slogan" }`} > - 安全管理系统 - (SMS) + 双重预防机制管控系统 + {/* 安全管理系统 + (SMS) */} {baseConfig.SYS_NAME}{" "} )}
    {!props.matchLogin ? (
    - + + diff --git a/src/layout/RiskFour.js b/src/layout/RiskFour.js new file mode 100644 index 0000000..4c0a1ad --- /dev/null +++ b/src/layout/RiskFour.js @@ -0,0 +1,109 @@ +import React, { useState, useEffect, useMemo, useRef } from "react"; +import { connect } from "dva"; +import { withRouter, matchPath } from "dva/router"; +import { Scrollbars } from "react-custom-scrollbars"; +import { Icon, Row, Col, Progress, Popover } from "antd"; +import EnergyIcon from "../utils/energyIcon"; +import { $consts } from "../plugins"; +import styles from "./risk.less"; +import echarts from "echarts"; +import { initFilter } from "../utils/common"; +import storage from "../utils/storage"; + +import { FullScreenContainer } from "@jiaminghi/data-view-react"; +import RiskFourOne from "./RiskFourOne"; +import RiskFourTwo from "./RiskFourTwo"; +import RiskFourThree from "./RiskFourThree"; + +class RiskFour extends React.Component { + constructor(props) { + super(props); + this.state = { + translateX:1, + rightDis:false, + leftDis:true, + riskleveldata:[] + }; + } + clickRightIcon = () => { + if(this.state.translateX <3){ + this.setState({ + translateX:this.state.translateX+1 + }) + } + + }; + componentDidMount() { + this.getRiskData(); + } + getRiskData = () => { + var orgId = storage("lacal").getItem("webOrgId")?.val + const json = initFilter(orgId); + this.props.dispatch({ + type: "app/getDataByPost", + url: "HM/HMEvaluateRisk/getRiskLevelCountData", + payload: json, + onComplete: (ret) => { + if (ret) { + this.setState({ + riskleveldata: ret.RISKLEVELCOUNTS, + }) + + // }) + // ret.RISKLEVELCOUNTS.map((item, index) => { + // this.getTitle(item) + // }) + } + }, + }); + }; + componentDidUpdate =(prevProps, prevState)=> { + if(this.state.translateX != prevState.translateX){ + if (this.state.translateX == 1) { + this.setState({ + rightDis:false, + leftDis:true + }) + }else if(this.state.translateX == 3){ + this.setState({ + rightDis:true, + leftDis:false + }) + }else{ + this.setState({ + rightDis:false, + leftDis:false + }) + } + } + } + + clickLeftIcon = () => { + if(this.state.translateX >1){ + this.setState({ + translateX:this.state.translateX-1 + }) + } + + }; + render() { + return ( + + +
    + {this.clickLeftIcon()}} style={this.state.leftDis==true?{color:'#888888'}:{color:'#fff'}}> + + + {this.clickRightIcon()}} style={this.state.rightDis==true?{color:'#888888'}:{color:'#fff'}}> + + + {this.state.translateX ==1?< RiskFourOne riskleveldata={this.state.riskleveldata}/>:this.state.translateX ==2?< RiskFourTwo riskleveldata={this.state.riskleveldata}/>:} +
    + +
    +
    + ); + } +} + +export default withRouter(connect(({ login }) => ({ login }))(RiskFour)); diff --git a/src/layout/RiskFourOne.js b/src/layout/RiskFourOne.js new file mode 100644 index 0000000..9896da1 --- /dev/null +++ b/src/layout/RiskFourOne.js @@ -0,0 +1,432 @@ +import React, { useState, useEffect, useMemo, useRef } from "react"; +import { connect } from "dva"; +import { withRouter, matchPath } from "dva/router"; +import { Scrollbars } from "react-custom-scrollbars"; +import { Icon, Row, Col, Progress, Popover } from "antd"; +import EnergyIcon from "../utils/energyIcon"; +import { $consts } from "../plugins"; +import styles from "./riskOne.less"; +import echarts from "echarts"; +import storage from "../utils/storage"; +import { initFilter } from "../utils/common"; +import realGif from "../assets/riskone/backno.JPG"; +import red from "../assets/risk/red.png"; +import orange from "../assets/risk/orange.png"; +import yellow from "../assets/risk/yellow.png"; +import blue from "../assets/risk/blue.png"; +import back1 from "../assets/riskone/1-1.png"; +import back2 from "../assets/riskone/1-2.png"; +import back3 from "../assets/riskone/1-3.png"; +import back4 from "../assets/riskone/1-4.png"; +import backTwo1 from "../assets/riskone/2-1.png"; +import backTwo2 from "../assets/riskone/2-2.png"; +import backTwo3 from "../assets/riskone/2-3.png"; +import backTwo4 from "../assets/riskone/2-4.png"; +import backThree1 from "../assets/riskone/3-1.png"; +import backThree2 from "../assets/riskone/3-2.png"; +import backThree3 from "../assets/riskone/3-3.png"; +import backThree4 from "../assets/riskone/3-4.png"; +import backFour1 from "../assets/riskone/4-1.png"; +import backFour2 from "../assets/riskone/4-2.png"; +import backFour3 from "../assets/riskone/4-3.png"; +import backFour4 from "../assets/riskone/4-4.png"; +import { FullScreenContainer } from "@jiaminghi/data-view-react"; + +class RiskFourOne extends React.Component { + constructor(props) { + super(props); + this.state = { + RiskData: [], + level1: 0, + level2: 0, + level3: 0, + level4: 0, + data1: {}, + data2: {}, + data3: {}, + data4: {}, + + content: "", + content2: "", + content3: "", + content4: "", + }; + } + componentDidUpdate=(prevProps, prevState)=>{ + if(prevProps.riskleveldata !== this.props.riskleveldata){ + this.props.riskleveldata.map((item, index) => { + this.getTitle(item) + this.setState({ + RiskData:this.props.riskleveldata + }) + }); + } + + } + + componentDidMount() { + this.props.riskleveldata?.map((item, index) => { + this.getTitle(item) + }); + } + getTitle=(item)=>{ + if (item.NAME == "矿石堆场") { + this.setState({ + level1: item.LEVEL, + data1: item, + content: ( +
    +
    区域名称:{item.NAME}
    +
    +
    +
    重大风险:{item.LEVEL1}
    +
    较大风险:{item.LEVEL2}
    +
    一般风险:{item.LEVEL3}
    +
    低风险:{item.LEVEL4}
    +
    +
    + {/* 33 */} +
    +
    +
    + ), + }); + } + if (item.NAME == "东排土场") { + this.setState({ + level2: item.LEVEL, + data2: item, + content2: ( +
    +
    区域名称:{item.NAME}
    +
    +
    +
    重大风险:{item.LEVEL1}
    +
    较大风险:{item.LEVEL2}
    +
    一般风险:{item.LEVEL3}
    +
    低风险:{item.LEVEL4}
    +
    +
    + {/* 33 */} +
    +
    +
    + ), + }); + } + if (item.NAME == "采场-终了边坡区") { + this.setState({ + level3: item.LEVEL, + data3: item, + content3: ( +
    +
    区域名称:{item.NAME}
    +
    +
    +
    重大风险:{item.LEVEL1}
    +
    较大风险:{item.LEVEL2}
    +
    一般风险:{item.LEVEL3}
    +
    低风险:{item.LEVEL4}
    +
    +
    + {/* 33 */} +
    +
    +
    + ), + }); + } + if (item.NAME == "采场-生产区域") { + this.setState({ + level4: item.LEVEL, + data4: item, + content4: ( +
    +
    区域名称:{item.NAME}
    +
    +
    +
    重大风险:{item.LEVEL1}
    +
    较大风险:{item.LEVEL2}
    +
    一般风险:{item.LEVEL3}
    +
    低风险:{item.LEVEL4}
    +
    +
    + {/* 33 */} +
    +
    +
    + ), + }); + } + } + + + + + render() { + return ( + + +
    + 1 +
    + {/* 矿石堆场背景区域 */} +
    + 2 +
    + {/* 东排土场 */} +
    + 4 +
    + {/* 采场-终了边坡 */} +
    + 6 +
    + {/* 采场-生产取悦 */} +
    + 8 +
    + {/* 采场-终了边坡区域2 */} + {/*
    + 10 +
    */} +
    + +
    +
    + + 3 + +
    +
    + + 5 + +
    +
    + {" "} + + 7 + +
    +
    + {" "} + + 9 + +
    + {/*
    + {" "} + + 11 + +
    */} +
    +
    +
    +
    + ); + } +} + +export default withRouter(connect(({ login }) => ({ login }))(RiskFourOne)); diff --git a/src/layout/RiskFourThree.js b/src/layout/RiskFourThree.js new file mode 100644 index 0000000..6a8ad8a --- /dev/null +++ b/src/layout/RiskFourThree.js @@ -0,0 +1,236 @@ +import React, { useState, useEffect, useMemo, useRef } from "react"; +import { connect } from "dva"; +import { withRouter, matchPath } from "dva/router"; +import { Scrollbars } from "react-custom-scrollbars"; +import { Icon, Row, Col, Progress, Popover } from "antd"; +import EnergyIcon from "../utils/energyIcon"; +import { $consts } from "../plugins"; +import styles from "./riskThree.less"; +import echarts from "echarts"; +import storage from "../utils/storage"; +import { initFilter } from "../utils/common"; +import realGif from "../assets/riskthree/backno.JPG"; +import red from "../assets/risk/red.png"; +import orange from "../assets/risk/orange.png"; +import yellow from "../assets/risk/yellow.png"; +import blue from "../assets/risk/blue.png"; +import back1 from "../assets/riskthree/1-1.png"; +import back2 from "../assets/riskthree/1-2.png"; +import back3 from "../assets/riskthree/1-3.png"; +import back4 from "../assets/riskthree/1-4.png"; +import backTwo1 from "../assets/riskthree/2-1.png"; +import backTwo2 from "../assets/riskthree/2-2.png"; +import backTwo3 from "../assets/riskthree/2-3.png"; +import backTwo4 from "../assets/riskthree/2-4.png"; +import { FullScreenContainer } from "@jiaminghi/data-view-react"; + +class RiskFourOne extends React.Component { + constructor(props) { + super(props); + this.state = { + RiskData: [], + level1: 0, + level2: 0, + data1: {}, + data2: {}, + + content: "", + content2: "", + }; + } + componentDidUpdate=(prevProps, prevState)=>{ + if(prevProps.riskleveldata !== this.props.riskleveldata){ + this.props.riskleveldata.map((item, index) => { + this.getTitle(item) + this.setState({ + RiskData:this.props.riskleveldata + }) + }); + } + + } + + componentDidMount() { + this.props.riskleveldata?.map((item, index) => { + this.getTitle(item) + }); + } + getTitle=(item)=>{ + if (item.NAME == "选矿车间") { + this.setState({ + level1: item.LEVEL, + data1: item, + content: ( +
    +
    区域名称:{item.NAME}
    +
    +
    +
    重大风险:{item.LEVEL1}
    +
    较大风险:{item.LEVEL2}
    +
    一般风险:{item.LEVEL3}
    +
    低风险:{item.LEVEL4}
    +
    +
    + {/* 33 */} +
    +
    +
    + ), + }); + } + if (item.NAME == "尾矿库") { + this.setState({ + level2: item.LEVEL, + data2: item, + content2: ( +
    +
    区域名称:{item.NAME}
    +
    +
    +
    重大风险:{item.LEVEL1}
    +
    较大风险:{item.LEVEL2}
    +
    一般风险:{item.LEVEL3}
    +
    低风险:{item.LEVEL4}
    +
    +
    + {/* 33 */} +
    +
    +
    + ), + }); + } + } + + + + + render() { + return ( + + +
    + 1 +
    + {/* 选矿车间 */} +
    + 2 +
    + {/* 尾矿库 */} +
    + 4 +
    +
    + +
    +
    + + 3 + +
    +
    + + 5 + +
    +
    +
    +
    +
    + ); + } +} + +export default withRouter(connect(({ login }) => ({ login }))(RiskFourOne)); diff --git a/src/layout/RiskFourTwo.js b/src/layout/RiskFourTwo.js new file mode 100644 index 0000000..290b826 --- /dev/null +++ b/src/layout/RiskFourTwo.js @@ -0,0 +1,313 @@ +import React, { useState, useEffect, useMemo, useRef } from "react"; +import { connect } from "dva"; +import { withRouter } from "dva/router"; +import { Popover } from "antd"; +import styles from "./riskTwo.less"; +import realGif from "../assets/risktwo/backno.JPG"; +import red from "../assets/risk/red.png"; +import orange from "../assets/risk/orange.png"; +import yellow from "../assets/risk/yellow.png"; +import blue from "../assets/risk/blue.png"; +import back1 from "../assets/risktwo/1-1.png"; +import back2 from "../assets/risktwo/1-2.png"; +import back3 from "../assets/risktwo/1-3.png"; +import back4 from "../assets/risktwo/1-4.png"; +import backTwo1 from "../assets/risktwo/2-1.png"; +import backTwo2 from "../assets/risktwo/2-2.png"; +import backTwo3 from "../assets/risktwo/2-3.png"; +import backTwo4 from "../assets/risktwo/2-4.png"; +import backThree1 from "../assets/risktwo/3-1.png"; +import backThree2 from "../assets/risktwo/3-2.png"; +import backThree3 from "../assets/risktwo/3-3.png"; +import backThree4 from "../assets/risktwo/3-4.png"; +import { FullScreenContainer } from "@jiaminghi/data-view-react"; + +class RiskFourOne extends React.Component { + constructor(props) { + super(props); + this.state = { + RiskData:[], + level1: 0, + level2: 0, + level3: 0, + level4: 0, + data1: {}, + data2: {}, + data3: {}, + data4: {}, + + content: "", + content2: "", + content3: "", + content4: "", + }; + } + componentDidUpdate=(prevProps, prevState)=>{ + if(prevProps.riskleveldata !== this.props.riskleveldata){ + this.props.riskleveldata.map((item, index) => { + this.getTitle(item) + this.setState({ + RiskData:this.props.riskleveldata + }) + }); + } + + } + + componentDidMount() { + this.props.riskleveldata?.map((item, index) => { + this.getTitle(item) + }); + } + getTitle=(item)=>{ + if (item.NAME == "大禾底排土场") { + this.setState({ + level1: item.LEVEL, + data1: item, + content: ( +
    +
    区域名称:{item.NAME}
    +
    +
    +
    重大风险:{item.LEVEL1}
    +
    较大风险:{item.LEVEL2}
    +
    一般风险:{item.LEVEL3}
    +
    低风险:{item.LEVEL4}
    +
    +
    + {/* 33 */} +
    +
    +
    + ), + }); + } + if (item.NAME == "北排土场") { + this.setState({ + level2: item.LEVEL, + data2: item, + content2: ( +
    +
    区域名称:{item.NAME}
    +
    +
    +
    重大风险:{item.LEVEL1}
    +
    较大风险:{item.LEVEL2}
    +
    一般风险:{item.LEVEL3}
    +
    低风险:{item.LEVEL4}
    +
    +
    + {/* 33 */} +
    +
    +
    + ), + }); + } + if (item.NAME == "采场-生产区域") { + this.setState({ + level3: item.LEVEL, + data3: item, + content3: ( +
    +
    区域名称:{item.NAME}
    +
    +
    +
    重大风险:{item.LEVEL1}
    +
    较大风险:{item.LEVEL2}
    +
    一般风险:{item.LEVEL3}
    +
    低风险:{item.LEVEL4}
    +
    +
    + {/* 33 */} +
    +
    +
    + ), + }); + } + } + + + + + render() { + return ( + + +
    + 1 +
    + {/* 大禾底排土场 */} +
    + 2 +
    + {/* 北排土场 */} +
    + 4 +
    + {/* 露天采场 */} +
    + 6 +
    +
    + +
    +
    + + 3 + +
    +
    + + 5 + +
    +
    + {" "} + + 7 + +
    + +
    +
    +
    +
    + ); + } +} + +export default withRouter(connect(({ login }) => ({ login }))(RiskFourOne)); diff --git a/src/layout/full.less b/src/layout/full.less new file mode 100644 index 0000000..e580865 --- /dev/null +++ b/src/layout/full.less @@ -0,0 +1,460 @@ +@font-face { + font-family: pangmenzhengdao; + src: url("../assets/fonts/pangmenzhengdao.ttf"); +} + +@font-face { + font-family: "阿里妈妈东方大楷 Regular"; + font-weight: normal; + src: url("../assets/fonts/AlimamaDongFangDaKai-Regular.ttf") + format("truetype"); + font-display: swap; +} +@font-face { + font-family: "站酷庆科黄油体"; + font-weight: normal; + src: url("../assets/fonts/zhankuqingke.ttf") format("truetype"); + font-display: swap; +} + +.box{ + transform-origin: 0 0; + position: absolute; + left: 50%; + top: 50%; + transition: 0.3s; +} + +.blackBack { + background-image: url("../assets/login/bg.png"); + width: 100%; + // height: calc(100% - 10px); // 进入全屏 + height: 100%; + background-size: cover; + background-position: center; + background-repeat: no-repeat; +} +.backImage { + background-color: #021428; //021428 + width: 100%; + height: 100%; + opacity: 0.9; + display: flex; + flex-direction: column; +} +.header { + background-image: url("../assets/layout/full-header.png"); + background-size: cover; + background-position: center; + background-repeat: no-repeat; + height: 100px; + width: 100%; + display: flex; + // align-items: center; + justify-content: space-between; + flex-direction: row; +} +.headerText { + color: #fff; + font-size: 32px; + // font-weight: bold; + margin-top: 10px; + font-family: "pangmenzhengdao"; +} +.row { + // height: calc(65% - 200px); + flex: 1; + width: 100%; +} +.rowTwo { + height: 30%; + width: 100%; +} +.boxleft { + height: 100%; + // width: 100%; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; +} +.risklevel { + height: 60%; + width: 90%; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; +} +.risklevelOne { + height: 40%; + width: 90%; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; +} +.risklevelTwo { + height: 100%; + width: 90%; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; +} +.riskChange { + width: 40%; + height: 100%; + display: flex; + flex-direction: column; + align-items: center; + justify-content: space-around; + padding: 20px 5px; +} +.riskChangeTwo { + width: 60%; + height: 100%; + padding: 20px 5px; + display: flex; + align-items: center; + justify-content: flex-start; +} +.gradient { + background-image: linear-gradient( + 250deg, + rgba(47, 109, 255, 1) 0%, + rgba(255, 255, 255, 54) 50%, + rgba(47, 109, 255, 1) 100% + ); + width: 60%; + height: 30%; + display: flex; + align-items: center; + justify-content: center; + padding: 2px; + // margin: 10px; +} +.gradientTwo { + background-image: linear-gradient( + 250deg, + rgba(47, 109, 255, 1) 0%, + rgba(255, 255, 255, 54) 50%, + rgba(47, 109, 255, 1) 100% + ); + width: 80%; + height: 90%; + display: flex; + align-items: center; + justify-content: space-around; + padding: 2px; +} +.gradientThree { + background-image: linear-gradient( + 275deg, + rgba(47, 109, 255, 1) 0%, + rgba(255, 255, 255, 54) 50%, + rgba(47, 109, 255, 1) 100% + ); + display: flex; + align-items: center; + justify-content: space-around; + padding: 2px; +} +.gradientNext { + width: 100%; + height: 100%; + background-color: #021428; + // z-index: 999; +} +.gradientNextTwo { + width: 100%; + height: 100%; + background-color: rgba(47, 109, 255, 0.1); + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + padding: 5px; + color: #fff; +} +.gradientText { + font-size: 26px; + font-weight: bold; +} +.gradientName { + font-size: 12px; +} +.gradientTextTwo { + font-size: 86px; + font-weight: bold; + color: #ef595a; +} +.gradientNameTwo { + font-size: 18px; +} +.title { + background-image: url("../assets/layout/title.png"); + background-size: cover; + background-position: bottom; + background-repeat: no-repeat; + width: 90%; + height: 25px; + padding-bottom: 10px; + display: flex; + flex-direction: row; + align-items: center; + // justify-content: center; +} +.circle { + width: 12px; + height: 12px; + background: #021428; + border-radius: 50%; + border: 3px solid #fff; + margin-right: 5px; +} +.titlename { + color: #fff; + font-size: 16px; + font-family: "站酷庆科黄油体"; + letter-spacing: 3px; +} +.risklevelOne { + height: 60%; + width: 90%; +} +.boxTwo { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + height: 100%; + // width: 100%; +} +.capsuleChart { + width: 80%; + height: 100%; + display: flex; + align-items: center; + justify-content: center; + padding: 20px 0px; +} +.scrollboard { + width: 90%; + height: 100%; + display: flex; + align-items: center; + justify-content: center; + margin: 0px 20px 20px 20px; + flex: 1; +} +.scrollboard :global(.header) { + height: auto; + padding: 0; +} +.scrollboard :global(.dv-scroll-board .rows .ceil) { + text-align: center; +} +.scrollboard :global(.dv-scroll-board .header .header-item) { + text-align: center; +} + +.scoreBox { + // background-image: url("../assets/layout/score-box.png"); + // background-size: cover; + // background-position: center; + // background-repeat: no-repeat; + width: 100%; + display: flex; + flex-direction: row; + align-items: center; + justify-content: space-between; + margin-bottom: 20px; +} +.scoreBox1 { + background-image: url("../assets/layout/score-box.png"); + background-size: contain; + background-position: center; + background-repeat: no-repeat; + width: 100%; + // height: 140px; + display: flex; + flex-direction: row; + align-items: center; + justify-content: space-around; + margin-bottom: 20px; + padding: 5px; +} +.score { + display: flex; + flex-direction: row; + // align-items: center; + // justify-content: space-between; + background-image: url("../assets/layout/ks.png"); + background-size: cover; + background-position: center; + background-repeat: no-repeat; + object-fit: cover; + // width: 230px; + width: 33%; + height: auto; + margin: 10px; +} +.score2 { + display: flex; + flex-direction: row; + // align-items: center; + // justify-content: space-between; + background-image: url("../assets/layout/xk.png"); + background-size: cover; + background-position: center; + background-repeat: no-repeat; + object-fit: cover; + width: 33%; + height: auto; + margin: 10px; +} +.score3 { + display: flex; + flex-direction: row; + // align-items: center; + // justify-content: space-between; + background-image: url("../assets/layout/wk.png"); + background-size: cover; + background-position: center; + background-repeat: no-repeat; + object-fit: cover; + width: 33%; + height: auto; + margin: 10px; +} +.score4 { + display: flex; + flex-direction: column; + align-items: center; + justify-content: space-between; + background-image: url("../assets/layout/score.png"); + background-size: contain; + background-position: center; + background-repeat: no-repeat; + width: 30%; + padding: 0px 15px; + // height: 100%; + // margin: 10px; +} +.scoreRight { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + width: 40%; + margin-left: 50%; +} +.scoreLeft { + font-size: 12px; + font-weight: bold; + color: #6cc8d9; + margin-top: 5px; +} +.scoreText { + font-size: 13px; + font-weight: bold; + color: #6cc8d9; +} +.scoreText2 { + font-size: 33px; + color: #7fffff; + font-weight: bold; + // font-style: oblique; +} +.scoreText3 { + font-size: 12px; + color: #6cc8d9; + font-weight: bold; +} +.ulData { + li { + // transform: rotate(45deg); + position: absolute; + left: 50%; + top: 50%; + // margin-left: -20px; + // margin-right: -20px; + transform: translate(-50%, -50%); + } + li:nth-of-type(1) { + // transform: rotate(45deg); + transform: translate(-50%, -50%) rotate(12deg) translate(-280px) + rotate(-12deg); + // transform-origin: 20px 220px; + } + li:nth-of-type(2) { + transform: translate(-50%, -50%) rotate(38deg) translate(-280px) + rotate(-38deg); + } + li:nth-of-type(3) { + transform: translate(-50%, -50%) rotate(64deg) translate(-280px) + rotate(-64deg); + } + li:nth-of-type(4) { + transform: translate(-50%, -50%) rotate(90deg) translate(-280px) + rotate(-90deg); + } + li:nth-of-type(5) { + transform: translate(-50%, -50%) rotate(116deg) translate(-280px) + rotate(-116deg); + } + li:nth-of-type(6) { + transform: translate(-50%, -50%) rotate(142deg) translate(-280px) + rotate(-142deg); + } + li:nth-of-type(7) { + transform: translate(-50%, -50%) rotate(168deg) translate(-280px) + rotate(-168deg); + } + li:nth-of-type(8) { + transform: translate(-50%, -50%) rotate(-12deg) translate(-280px) + rotate(12deg); + } + li:nth-of-type(9) { + transform: translate(-50%, -50%) rotate(-38deg) translate(-280px) + rotate(38deg); + } + li:nth-of-type(10) { + transform: translate(-50%, -50%) rotate(-64deg) translate(-280px) + rotate(64deg); + } + li:nth-of-type(11) { + transform: translate(-50%, -50%) rotate(-116deg) translate(-280px) + rotate(116deg); + } + + li:nth-of-type(12) { + transform: translate(-50%, -50%) rotate(-142deg) translate(-280px) + rotate(142deg); + } + li:nth-of-type(13) { + transform: translate(-50%, -50%) rotate(-168deg) translate(-280px) + rotate(168deg); + } +} + +.roateData { + background-image: linear-gradient( + 275deg, + rgba(47, 109, 255, 1) 0%, + rgba(255, 255, 255, 54) 50%, + rgba(47, 109, 255, 1) 100% + ); + display: flex; + align-items: center; + justify-content: space-around; + padding: 2px; + // background-color: rgba(47, 109, 255, 0.1); +} +.roatBack { + background-color: #021428; + width: 100%; + height: 100%; + padding: 5px; +} diff --git a/src/layout/risk.less b/src/layout/risk.less new file mode 100644 index 0000000..74f5fa8 --- /dev/null +++ b/src/layout/risk.less @@ -0,0 +1,189 @@ +.riskback { + width: 100%; + height: 100%; + object-fit: fill; +} +.riskt { + position: absolute; + top: 20%; + left: 15%; + width: 100%; + height: 100%; +} +.risktTwo { + position: absolute; + top: 65%; + left: 18%; + width: 100%; + height: 100%; +} +.risktThree { + position: absolute; + top: 80%; + left: 20%; + width: 100%; + height: 100%; +} + +.risktFour { + position: absolute; + top: 30%; + left: 50%; + width: 100%; + height: 100%; +} +.risktFive { + position: absolute; + top: 80%; + left: 50%; + width: 100%; + height: 100%; +} +.risktSix { + position: absolute; + top: 75%; + left: 77%; + width: 100%; + height: 100%; +} +.risktSeven { + position: absolute; + top: 42%; + left: 87%; + width: 100%; + height: 100%; +} + +.riskback { + position: absolute; + top: 15%; + left: 8%; + width: 100%; + height: 100%; +} + +.riskbackTwo { + position: absolute; + top: 60%; + left: 12%; + width: 100%; + height: 100%; +} +.riskbackThree { + position: absolute; + top: 70%; + left: 13%; + width: 100%; + height: 100%; +} + +.riskbackFour { + position: absolute; + top: 1%; + left: 18%; + width: 100%; + height: 100%; +} +.riskbackFive { + position: absolute; + top: 48%; + left: 32%; + width: 100%; + height: 100%; +} +.riskbackSix { + position: absolute; + top: 62%; + left: 70%; + width: 100%; + height: 100%; +} +.riskbackSeven { + position: absolute; + top: 40%; + left: 81%; + width: 100%; + height: 100%; +} +.riskhover { + transition: all 0.5s; + animation: jump 1.8s infinite; +} +// .riskhover:hover { +// transform: scale(1.1); +// animation: jump 1.8s infinite ; +// } + +@keyframes jump { + 0% { + transform: translateY(0px); + } + 50% { + transform: translateY(-20px); + } + 100% { + transform: translateY(0px); + } +} +.wrap_scrollImg { + width: 100%; + height: 100%; + //background-color: #2C9806; + overflow: hidden; + position: relative; + + span { + display: inline-block; + } +} +.left_icon { + left: 0; + cursor: pointer; + z-index: 99999999; + position: absolute; + display: none; + background-color: rgba(0, 0, 0, 0.3); + top: 0; + bottom: 0; + margin: auto; + height: 55px; + line-height: 55px; + width: 44px; + text-align: center; + font-size: 20px; + transition: 0.2s; + &:hover { + font-size: 30px; + height: 60px; + // line-height: 60px; + width:60px; + text-align: center; + margin: auto; + } +} + +.right_icon { + right: 0; + cursor: pointer; + z-index: 99999999; + position: absolute; + display: none; + background-color: rgba(0, 0, 0, 0.3); + top: 0; + bottom: 0; + margin: auto; + height: 55px; + line-height: 55px; + width: 44px; + text-align: center; + font-size: 20px; + transition: 0.2s; + &:hover { + font-size: 30px; + height: 60px; + // line-height: 60px; + width:60px; + text-align: center; + margin: auto; + } +} diff --git a/src/layout/riskOne.less b/src/layout/riskOne.less new file mode 100644 index 0000000..eec7825 --- /dev/null +++ b/src/layout/riskOne.less @@ -0,0 +1,176 @@ +.riskt { + position: absolute; + top: 44%; + left: 22%; + width: 100%; + height: 100%; +} +.risktTwo { + position: absolute; + top: 25%; + left: 36%; + width: 100%; + height: 100%; +} +.risktThree { + position: absolute; + top: 80%; + left: 30%; + width: 100%; + height: 100%; +} + +.risktFour { + position: absolute; + top: 50%; + left: 60%; + width: 100%; + height: 100%; +} +.risktFive { + position: absolute; + top: 27%; + left: 84%; + width: 100%; + height: 100%; +} +.risktSix { + position: absolute; + top: 75%; + left: 77%; + width: 100%; + height: 100%; +} +.risktSeven { + position: absolute; + top: 42%; + left: 87%; + width: 100%; + height: 100%; +} + +.riskback { + position: absolute; + top: 42%; + left: 16%; + width: 100%; + height: 100%; +} + +.riskbackTwo { + position: absolute; + top: 21%; + left: 31%; + width: 100%; + height: 100%; +} +.riskbackThree { + position: absolute; + top: 52%; + left: 15%; + width: 100%; + height: 100%; +} + +.riskbackFour { + position: absolute; + top: 19%; + left: 34%; + width: 100%; + height: 100%; +} +.riskbackFive { + position: absolute; + top: 27%; + left: 80%; + width: 100%; + height: 100%; +} +.riskbackSix { + position: absolute; + top: 62%; + left: 70%; + width: 100%; + height: 100%; +} +.riskbackSeven { + position: absolute; + top: 40%; + left: 81%; + width: 100%; + height: 100%; +} +.riskhover { + transition: all 0.5s; + animation: jump 1.8s infinite; +} +// .riskhover:hover { +// transform: scale(1.1); +// animation: jump 1.8s infinite ; +// } + +@keyframes jump { + 0% { + transform: translateY(0px); + } + 50% { + transform: translateY(-20px); + } + 100% { + transform: translateY(0px); + } +} +.wrap_scrollImg { + width: 100%; + height: 100%; + //background-color: #2C9806; + overflow: hidden; + position: relative; + + span { + display: inline-block; + } +} +.left_icon { + left: 0; + cursor: pointer; + z-index: 99999999; + position: absolute; + display: none; + background-color: rgba(0, 0, 0, 0.3); + top: 0; + bottom: 0; + margin: auto; + height: 55px; + line-height: 55px; + width: 44px; + text-align: center; + font-size: 20px; + transition: 0.2s; + &:hover { + font-size: 30px; + height: 60px; + // line-height: 60px; + width:60px; + text-align: center; + margin: auto; + } +} + +.right_icon { + right: 0; + cursor: pointer; + z-index: 99999999; + position: absolute; + display: none; + background-color: rgba(0, 0, 0, 0.3); + top: 0; + bottom: 0; + margin: auto; + height: 55px; + line-height: 55px; + width: 44px; + text-align: center; + font-size: 20px; + transition: 0.2s; +} diff --git a/src/layout/riskThree.less b/src/layout/riskThree.less new file mode 100644 index 0000000..b61a5b9 --- /dev/null +++ b/src/layout/riskThree.less @@ -0,0 +1,52 @@ + +.riskt { + position: absolute; + top: 39%; + left: 32%; + width: 100%; + height: 100%; +} +.risktTwo { + position: absolute; + top: 35%; + left: 60%; + width: 100%; + height: 100%; +} + + +.riskback { + position: absolute; + top: 26%; + left: 18%; + width: 100%; + height: 100%; +} + +.riskbackTwo { + position: absolute; + top: 10%; + left: 48%; + width: 100%; + height: 100%; +} +.riskhover { + transition: all 0.5s; + animation: jump 1.8s infinite; +} +// .riskhover:hover { +// transform: scale(1.1); +// animation: jump 1.8s infinite ; +// } + +@keyframes jump { + 0% { + transform: translateY(0px); + } + 50% { + transform: translateY(-20px); + } + 100% { + transform: translateY(0px); + } +} \ No newline at end of file diff --git a/src/layout/riskTwo.less b/src/layout/riskTwo.less new file mode 100644 index 0000000..e2bcfb6 --- /dev/null +++ b/src/layout/riskTwo.less @@ -0,0 +1,68 @@ + +.riskt { + position: absolute; + top: 36%; + left: 13%; + width: 100%; + height: 100%; +} +.risktTwo { + position: absolute; + top: 60%; + left: 38%; + width: 100%; + height: 100%; +} +.risktThree { + position: absolute; + top: 24%; + left: 70%; + width: 100%; + height: 100%; +} + + +.riskback { + position: absolute; + top: 21%; + left: 0; + width: 100%; + height: 100%; +} + +.riskbackTwo { + position: absolute; + top: 38%; + left: 0%; + width: 100%; + height: 100%; +} +.riskbackThree { + position: absolute; + top: 15%; + left: 49%; + width: 100%; + height: 100%; +} + + +.riskhover { + transition: all 0.5s; + animation: jump 1.8s infinite; +} +// .riskhover:hover { +// transform: scale(1.1); +// animation: jump 1.8s infinite ; +// } + +@keyframes jump { + 0% { + transform: translateY(0px); + } + 50% { + transform: translateY(-20px); + } + 100% { + transform: translateY(0px); + } +} diff --git a/src/routes/dashboard.css b/src/routes/dashboard.css index dff70f9..8e6d0fd 100644 --- a/src/routes/dashboard.css +++ b/src/routes/dashboard.css @@ -411,5 +411,30 @@ background-color: #3c9cff; color: #fff; } -:global() { +:global(.slide-style){ + /* margin-bottom: 10px; */ + font-size: 24px; + font-weight: bold; + color:#de4e58; + /* -webkit-text-stroke: #E38C7A 1px; */ + /* padding-left:30px; */ + flex: 1; + overflow: hidden; + display: flex; + align-items: center; + +} +:global(.slide-text-style){ + position:relative; + display:inline-block; + white-space:nowrap; + animation: slide-text-style 20s linear 1s infinite ; + width:'auto'; + align-items: center; + margin-top: 1em; +} + +@keyframes slide-text-style{ + 0%{margin-left:100%;} +100%{margin-left:-1200px;} } diff --git a/src/utils/common.js b/src/utils/common.js index ac80612..9c40363 100644 --- a/src/utils/common.js +++ b/src/utils/common.js @@ -4,6 +4,25 @@ import { random, omit } from "lodash"; import moment from "moment"; const RFC4122_TEMPLATE = "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx"; +// 展开/全屏 +export function requestFullScreenMethod(element) { + var requestMethod = element.requestFullscreen || element.webkitRequestFullscreen || element.msRequestFullscreen || element.mozRequestFullScreen; + if (requestMethod) { + requestMethod.call(element); + } +} +// 退出/全屏 +export function exitFullScreen() { + var exitMethod = document.exitFullscreen || document.webkitExitFullscreen || document.msExitFullscreen || document.mozCancelFullScreen; + if (exitMethod) { + exitMethod.call(document); + } +} +// 判断是否全屏 +export function isFullscreenElement() { + var isFull = document.fullscreenElement || document.webkitFullscreenElement || document.msFullscreenElement || document.mozFullScreenElement; + return !!isFull; +} export function uuid(placeholder) { return RFC4122_TEMPLATE.replace(/[xy]/g, function () { let value = random(15); diff --git a/yarn.lock b/yarn.lock index 2fb6eaf..a76d1ac 100644 --- a/yarn.lock +++ b/yarn.lock @@ -992,7 +992,7 @@ "pirates" "^4.0.0" "source-map-support" "^0.5.16" -"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.18.3", "@babel/runtime@^7.4.2", "@babel/runtime@^7.6.3": +"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.18.3", "@babel/runtime@^7.4.2", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.3": "integrity" "sha512-hC2v6p8ZSI/W0HUzh3V8C5g+NwSKzKPtJwSpTjwl0o297GP9+ZLQSkdvHz46CM3LqyoXxq+5G9komY+eSqSO0g==" "resolved" "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.1.tgz" "version" "7.23.1" @@ -1084,6 +1084,50 @@ "resolved" "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-3.6.1.tgz" "version" "3.6.1" +"@jiaminghi/bezier-curve@*": + "integrity" "sha512-u9xJPOEl6Dri2E9FfmJoGxYQY7vYJkURNX04Vj64tdi535tPrpkuf9Sm0lNr3QTKdHQh0DdNRsaa62FLQNQEEw==" + "resolved" "https://registry.npmmirror.com/@jiaminghi/bezier-curve/-/bezier-curve-0.0.9.tgz" + "version" "0.0.9" + dependencies: + "@babel/runtime" "^7.5.5" + +"@jiaminghi/c-render@^0.4.3": + "integrity" "sha512-FJfzj5hGj7MLqqqI2D7vEzHKbQ1Ynnn7PJKgzsjXaZpJzTqs2Yw5OSeZnm6l7Qj7jyPAP53lFvEQNH4o4j6s+Q==" + "resolved" "https://registry.npmmirror.com/@jiaminghi/c-render/-/c-render-0.4.3.tgz" + "version" "0.4.3" + dependencies: + "@babel/runtime" "^7.5.5" + "@jiaminghi/bezier-curve" "*" + "@jiaminghi/color" "*" + "@jiaminghi/transition" "*" + +"@jiaminghi/charts@^0.2": + "integrity" "sha512-K+HXaOOeWG9OOY1VG6M4mBreeeIAPhb9X+khG651AbnwEwL6G2UtcAQ8GWCq6GzhczcLwwhIhuaHqRygwHC0sA==" + "resolved" "https://registry.npmmirror.com/@jiaminghi/charts/-/charts-0.2.18.tgz" + "version" "0.2.18" + dependencies: + "@babel/runtime" "^7.5.5" + "@jiaminghi/c-render" "^0.4.3" + +"@jiaminghi/color@*": + "integrity" "sha512-ZY3hdorgODk4OSTbxyXBPxAxHPIVf9rPlKJyK1C1db46a50J0reFKpAvfZG8zMG3lvM60IR7Qawgcu4ZDO3+Hg==" + "resolved" "https://registry.npmmirror.com/@jiaminghi/color/-/color-1.1.3.tgz" + "version" "1.1.3" + +"@jiaminghi/data-view-react@^1.2.5": + "integrity" "sha512-hxlfg0yULj7nUde8oj5hB9pUWrHqFyuPUeJWNG70YPPHFnWXqmlWCx1aB1OpqD3lwxaI1aKkA4YJRhkvfLyKrg==" + "resolved" "https://registry.npmmirror.com/@jiaminghi/data-view-react/-/data-view-react-1.2.5.tgz" + "version" "1.2.5" + dependencies: + "@jiaminghi/charts" "^0.2" + +"@jiaminghi/transition@*": + "integrity" "sha512-owBggipoHMikDHHDW5Gc7RZYlVuvxHADiU4bxfjBVkHDAmmck+fCkm46n2JzC3j33hWvP9nSCAeh37t6stgWeg==" + "resolved" "https://registry.npmmirror.com/@jiaminghi/transition/-/transition-1.1.11.tgz" + "version" "1.1.11" + dependencies: + "@babel/runtime" "^7.5.5" + "@types/history@*": "integrity" "sha512-cS5owqtwzLN5kY+l+KgKdRJ/Cee8tlmQoGQuIE9tWnSmS3JMKzmxo2HIAk2wODMifGwO20d62xZQLYz+RLfXmw==" "version" "4.7.3" @@ -10156,7 +10200,7 @@ "recompose" "^0.27.1" "shallowequal" "^1.0.2" -"react-dom@*", "react-dom@^0.14.0 || ^15.0.0 || ^16.0.0", "react-dom@^0.14.0 || ^15.0.0 || ^16.0.0-beta || ^16.0.0", "react-dom@^0.14.0 || ^15.0.0-0 || ^16.0.0", "react-dom@^0.14.0 || ^15.0.0-rc || ^16.0.0-rc || ^16.0.0", "react-dom@^0.14.0 || ^15.0.1 || ^16.0.0", "react-dom@^15.0.0 || ^16.0.0", "react-dom@^16.0.0", "react-dom@^16.0.0-0", "react-dom@^16.3.0", "react-dom@>=15.0.0", "react-dom@>=15.x", "react-dom@>=16.0.0", "react-dom@>=16.9.0", "react-dom@>0.14.5", "react-dom@0.14.x || 15.x || 16.x", "react-dom@15.x || ^16.0.0-0", "react-dom@16.8.2": +"react-dom@*", "react-dom@^0.14.0 || ^15.0.0 || ^16.0.0", "react-dom@^0.14.0 || ^15.0.0 || ^16.0.0-beta || ^16.0.0", "react-dom@^0.14.0 || ^15.0.0-0 || ^16.0.0", "react-dom@^0.14.0 || ^15.0.0-rc || ^16.0.0-rc || ^16.0.0", "react-dom@^0.14.0 || ^15.0.1 || ^16.0.0", "react-dom@^15.0.0 || ^16.0.0", "react-dom@^16.0.0", "react-dom@^16.0.0-0", "react-dom@^16.3.0", "react-dom@^16.8.0", "react-dom@>=15.0.0", "react-dom@>=15.x", "react-dom@>=16.0.0", "react-dom@>=16.9.0", "react-dom@>0.14.5", "react-dom@0.14.x || 15.x || 16.x", "react-dom@15.x || ^16.0.0-0", "react-dom@16.8.2": "integrity" "sha512-cPGfgFfwi+VCZjk73buu14pYkYBR1b/SRMSYqkLDdhSEHnSwcuYTPu6/Bh6ZphJFIk80XLvbSe2azfcRzNF+Xg==" "resolved" "https://registry.npmmirror.com/react-dom/-/react-dom-16.8.2.tgz" "version" "16.8.2" @@ -10318,7 +10362,7 @@ "resolved" "https://registry.npmmirror.com/react-websocket/-/react-websocket-2.0.1.tgz" "version" "2.0.1" -"react@*", "react@^0.14 || ^15.0.0 || ^16.0.0-alpha", "react@^0.14.0 || ^15.0.0 || ^16.0.0", "react@^0.14.0 || ^15.0.0 || ^16.0.0-0", "react@^0.14.0 || ^15.0.0 || ^16.0.0-beta || ^16.0.0", "react@^0.14.0 || ^15.0.0-0 || ^16.0.0", "react@^0.14.0 || ^15.0.0-0 || ^16.0.0-0", "react@^0.14.0 || ^15.0.0-rc || ^16.0.0-rc || ^16.0.0", "react@^0.14.0 || ^15.0.1 || ^16.0.0", "react@^15.0.0 || ^16.0.0", "react@^16.0.0", "react@^16.0.0-0", "react@^16.3.0", "react@^16.8.0 || ^17.0.0 || ^18.0.0", "react@>= 16.3", "react@>=0.13.2 || ^0.14 || ^15.0.0 || >=16.0.0", "react@>=15", "react@>=15.0.0", "react@>=15.x", "react@>=16.0.0", "react@>=16.9.0", "react@>0.14.5", "react@0.13.x || 0.14.x || ^15.0.0-0 || ^16.0.0-0", "react@0.14.x || 15.x || 16.x", "react@15.x || ^16.0.0-0", "react@16.8.2", "react@16.x": +"react@*", "react@^0.14 || ^15.0.0 || ^16.0.0-alpha", "react@^0.14.0 || ^15.0.0 || ^16.0.0", "react@^0.14.0 || ^15.0.0 || ^16.0.0-0", "react@^0.14.0 || ^15.0.0 || ^16.0.0-beta || ^16.0.0", "react@^0.14.0 || ^15.0.0-0 || ^16.0.0", "react@^0.14.0 || ^15.0.0-0 || ^16.0.0-0", "react@^0.14.0 || ^15.0.0-rc || ^16.0.0-rc || ^16.0.0", "react@^0.14.0 || ^15.0.1 || ^16.0.0", "react@^15.0.0 || ^16.0.0", "react@^16.0.0", "react@^16.0.0-0", "react@^16.3.0", "react@^16.8.0", "react@^16.8.0 || ^17.0.0 || ^18.0.0", "react@>= 16.3", "react@>=0.13.2 || ^0.14 || ^15.0.0 || >=16.0.0", "react@>=15", "react@>=15.0.0", "react@>=15.x", "react@>=16.0.0", "react@>=16.9.0", "react@>0.14.5", "react@0.13.x || 0.14.x || ^15.0.0-0 || ^16.0.0-0", "react@0.14.x || 15.x || 16.x", "react@15.x || ^16.0.0-0", "react@16.8.2", "react@16.x": "integrity" "sha512-aB2ctx9uQ9vo09HVknqv3DGRpI7OIGJhCx3Bt0QqoRluEjHSaObJl+nG12GDdYH6sTgE7YiPJ6ZUyMx9kICdXw==" "resolved" "https://registry.npmmirror.com/react/-/react-16.8.2.tgz" "version" "16.8.2"