diff --git a/.env.development b/.env.development index 3aaa28f..ba1ebf1 100644 --- a/.env.development +++ b/.env.development @@ -1,5 +1,5 @@ # 页面标题 -VITE_APP_TITLE = 机器狗巡检平台 +VITE_APP_TITLE = 巡检精灵综合管理平台 # 接口请求地址,会设置到 axios 的 baseURL 参数上 VITE_APP_API_BASEURL = http://111.198.10.15:11638 diff --git a/.env.development b/.env.development index 3aaa28f..ba1ebf1 100644 --- a/.env.development +++ b/.env.development @@ -1,5 +1,5 @@ # 页面标题 -VITE_APP_TITLE = 机器狗巡检平台 +VITE_APP_TITLE = 巡检精灵综合管理平台 # 接口请求地址,会设置到 axios 的 baseURL 参数上 VITE_APP_API_BASEURL = http://111.198.10.15:11638 diff --git a/.env.production b/.env.production index 10cfdb7..da68e78 100644 --- a/.env.production +++ b/.env.production @@ -1,7 +1,7 @@ NODE_ENV = production # 页面标题 -VITE_APP_TITLE = 感知数据汇聚平台 +VITE_APP_TITLE = 巡检精灵综合管理平台 # 接口请求地址,会设置到 axios 的 baseURL 参数上 VITE_APP_API_BASEURL = http://111.198.10.15:11638 # 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空 diff --git a/.env.development b/.env.development index 3aaa28f..ba1ebf1 100644 --- a/.env.development +++ b/.env.development @@ -1,5 +1,5 @@ # 页面标题 -VITE_APP_TITLE = 机器狗巡检平台 +VITE_APP_TITLE = 巡检精灵综合管理平台 # 接口请求地址,会设置到 axios 的 baseURL 参数上 VITE_APP_API_BASEURL = http://111.198.10.15:11638 diff --git a/.env.production b/.env.production index 10cfdb7..da68e78 100644 --- a/.env.production +++ b/.env.production @@ -1,7 +1,7 @@ NODE_ENV = production # 页面标题 -VITE_APP_TITLE = 感知数据汇聚平台 +VITE_APP_TITLE = 巡检精灵综合管理平台 # 接口请求地址,会设置到 axios 的 baseURL 参数上 VITE_APP_API_BASEURL = http://111.198.10.15:11638 # 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空 diff --git a/README.md b/README.md index baadcb1..1cc1ffa 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ -

机器狗巡检平台

+

巡检精灵综合管理平台

-

机器狗巡检平台

+

巡检精灵综合管理平台

## 简要说明

diff --git a/.env.development b/.env.development index 3aaa28f..ba1ebf1 100644 --- a/.env.development +++ b/.env.development @@ -1,5 +1,5 @@ # 页面标题 -VITE_APP_TITLE = 机器狗巡检平台 +VITE_APP_TITLE = 巡检精灵综合管理平台 # 接口请求地址,会设置到 axios 的 baseURL 参数上 VITE_APP_API_BASEURL = http://111.198.10.15:11638 diff --git a/.env.production b/.env.production index 10cfdb7..da68e78 100644 --- a/.env.production +++ b/.env.production @@ -1,7 +1,7 @@ NODE_ENV = production # 页面标题 -VITE_APP_TITLE = 感知数据汇聚平台 +VITE_APP_TITLE = 巡检精灵综合管理平台 # 接口请求地址,会设置到 axios 的 baseURL 参数上 VITE_APP_API_BASEURL = http://111.198.10.15:11638 # 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空 diff --git a/README.md b/README.md index baadcb1..1cc1ffa 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ -

机器狗巡检平台

+

巡检精灵综合管理平台

-

机器狗巡检平台

+

巡检精灵综合管理平台

## 简要说明

diff --git a/package.json b/package.json index a6745d6..b8f7e9c 100644 --- a/package.json +++ b/package.json @@ -45,6 +45,7 @@ "print-js": "^1.6.0", "qrcode": "^1.5.1", "qs": "^6.11.0", + "three": "^0.173.0", "tinymce": "^6.2.0", "vue": "^3.2.44", "vue-pdf-embed": "^1.1.5", diff --git a/.env.development b/.env.development index 3aaa28f..ba1ebf1 100644 --- a/.env.development +++ b/.env.development @@ -1,5 +1,5 @@ # 页面标题 -VITE_APP_TITLE = 机器狗巡检平台 +VITE_APP_TITLE = 巡检精灵综合管理平台 # 接口请求地址,会设置到 axios 的 baseURL 参数上 VITE_APP_API_BASEURL = http://111.198.10.15:11638 diff --git a/.env.production b/.env.production index 10cfdb7..da68e78 100644 --- a/.env.production +++ b/.env.production @@ -1,7 +1,7 @@ NODE_ENV = production # 页面标题 -VITE_APP_TITLE = 感知数据汇聚平台 +VITE_APP_TITLE = 巡检精灵综合管理平台 # 接口请求地址,会设置到 axios 的 baseURL 参数上 VITE_APP_API_BASEURL = http://111.198.10.15:11638 # 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空 diff --git a/README.md b/README.md index baadcb1..1cc1ffa 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ -

机器狗巡检平台

+

巡检精灵综合管理平台

-

机器狗巡检平台

+

巡检精灵综合管理平台

## 简要说明

diff --git a/package.json b/package.json index a6745d6..b8f7e9c 100644 --- a/package.json +++ b/package.json @@ -45,6 +45,7 @@ "print-js": "^1.6.0", "qrcode": "^1.5.1", "qs": "^6.11.0", + "three": "^0.173.0", "tinymce": "^6.2.0", "vue": "^3.2.44", "vue-pdf-embed": "^1.1.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 860f410..351badd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -57,6 +57,7 @@ stylelint-config-standard-vue: ^1.0.0 stylelint-scss: ^4.3.0 svgo: ^3.0.0 + three: ^0.173.0 tinymce: ^6.2.0 typescript: ^4.8.4 unplugin-auto-import: ^0.11.4 @@ -107,6 +108,7 @@ print-js: 1.6.0 qrcode: 1.5.4 qs: 6.13.1 + three: 0.173.0 tinymce: 6.8.5 vue: 3.5.13_typescript@4.9.5 vue-pdf-embed: 1.2.1_vue@3.5.13 @@ -8623,6 +8625,10 @@ resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} dev: true + /three/0.173.0: + resolution: {integrity: sha512-AUwVmViIEUgBwxJJ7stnF0NkPpZxx1aZ6WiAbQ/Qq61h6I9UR4grXtZDmO8mnlaNORhHnIBlXJ1uBxILEKuVyw==} + dev: false + /through/2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} dev: true diff --git a/.env.development b/.env.development index 3aaa28f..ba1ebf1 100644 --- a/.env.development +++ b/.env.development @@ -1,5 +1,5 @@ # 页面标题 -VITE_APP_TITLE = 机器狗巡检平台 +VITE_APP_TITLE = 巡检精灵综合管理平台 # 接口请求地址,会设置到 axios 的 baseURL 参数上 VITE_APP_API_BASEURL = http://111.198.10.15:11638 diff --git a/.env.production b/.env.production index 10cfdb7..da68e78 100644 --- a/.env.production +++ b/.env.production @@ -1,7 +1,7 @@ NODE_ENV = production # 页面标题 -VITE_APP_TITLE = 感知数据汇聚平台 +VITE_APP_TITLE = 巡检精灵综合管理平台 # 接口请求地址,会设置到 axios 的 baseURL 参数上 VITE_APP_API_BASEURL = http://111.198.10.15:11638 # 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空 diff --git a/README.md b/README.md index baadcb1..1cc1ffa 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ -

机器狗巡检平台

+

巡检精灵综合管理平台

-

机器狗巡检平台

+

巡检精灵综合管理平台

## 简要说明

diff --git a/package.json b/package.json index a6745d6..b8f7e9c 100644 --- a/package.json +++ b/package.json @@ -45,6 +45,7 @@ "print-js": "^1.6.0", "qrcode": "^1.5.1", "qs": "^6.11.0", + "three": "^0.173.0", "tinymce": "^6.2.0", "vue": "^3.2.44", "vue-pdf-embed": "^1.1.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 860f410..351badd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -57,6 +57,7 @@ stylelint-config-standard-vue: ^1.0.0 stylelint-scss: ^4.3.0 svgo: ^3.0.0 + three: ^0.173.0 tinymce: ^6.2.0 typescript: ^4.8.4 unplugin-auto-import: ^0.11.4 @@ -107,6 +108,7 @@ print-js: 1.6.0 qrcode: 1.5.4 qs: 6.13.1 + three: 0.173.0 tinymce: 6.8.5 vue: 3.5.13_typescript@4.9.5 vue-pdf-embed: 1.2.1_vue@3.5.13 @@ -8623,6 +8625,10 @@ resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} dev: true + /three/0.173.0: + resolution: {integrity: sha512-AUwVmViIEUgBwxJJ7stnF0NkPpZxx1aZ6WiAbQ/Qq61h6I9UR4grXtZDmO8mnlaNORhHnIBlXJ1uBxILEKuVyw==} + dev: false + /through/2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} dev: true diff --git a/public/4.pcd b/public/4.pcd new file mode 100644 index 0000000..a45a92e --- /dev/null +++ b/public/4.pcd Binary files differ diff --git a/.env.development b/.env.development index 3aaa28f..ba1ebf1 100644 --- a/.env.development +++ b/.env.development @@ -1,5 +1,5 @@ # 页面标题 -VITE_APP_TITLE = 机器狗巡检平台 +VITE_APP_TITLE = 巡检精灵综合管理平台 # 接口请求地址,会设置到 axios 的 baseURL 参数上 VITE_APP_API_BASEURL = http://111.198.10.15:11638 diff --git a/.env.production b/.env.production index 10cfdb7..da68e78 100644 --- a/.env.production +++ b/.env.production @@ -1,7 +1,7 @@ NODE_ENV = production # 页面标题 -VITE_APP_TITLE = 感知数据汇聚平台 +VITE_APP_TITLE = 巡检精灵综合管理平台 # 接口请求地址,会设置到 axios 的 baseURL 参数上 VITE_APP_API_BASEURL = http://111.198.10.15:11638 # 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空 diff --git a/README.md b/README.md index baadcb1..1cc1ffa 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ -

机器狗巡检平台

+

巡检精灵综合管理平台

-

机器狗巡检平台

+

巡检精灵综合管理平台

## 简要说明

diff --git a/package.json b/package.json index a6745d6..b8f7e9c 100644 --- a/package.json +++ b/package.json @@ -45,6 +45,7 @@ "print-js": "^1.6.0", "qrcode": "^1.5.1", "qs": "^6.11.0", + "three": "^0.173.0", "tinymce": "^6.2.0", "vue": "^3.2.44", "vue-pdf-embed": "^1.1.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 860f410..351badd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -57,6 +57,7 @@ stylelint-config-standard-vue: ^1.0.0 stylelint-scss: ^4.3.0 svgo: ^3.0.0 + three: ^0.173.0 tinymce: ^6.2.0 typescript: ^4.8.4 unplugin-auto-import: ^0.11.4 @@ -107,6 +108,7 @@ print-js: 1.6.0 qrcode: 1.5.4 qs: 6.13.1 + three: 0.173.0 tinymce: 6.8.5 vue: 3.5.13_typescript@4.9.5 vue-pdf-embed: 1.2.1_vue@3.5.13 @@ -8623,6 +8625,10 @@ resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} dev: true + /three/0.173.0: + resolution: {integrity: sha512-AUwVmViIEUgBwxJJ7stnF0NkPpZxx1aZ6WiAbQ/Qq61h6I9UR4grXtZDmO8mnlaNORhHnIBlXJ1uBxILEKuVyw==} + dev: false + /through/2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} dev: true diff --git a/public/4.pcd b/public/4.pcd new file mode 100644 index 0000000..a45a92e --- /dev/null +++ b/public/4.pcd Binary files differ diff --git a/public/config/config.json b/public/config/config.json index 0c02bb3..e5cba39 100644 --- a/public/config/config.json +++ b/public/config/config.json @@ -1,5 +1,5 @@ { - "title":"燃气物联感知平台", + "title":"巡检精灵综合管理平台", "baseUrl": "http://111.198.10.15:11645", "securityJsCode": "56bf9671d4b3517d294caec4751889a1", "JsKey": "40849e82b4e33f5255b17372520c954d", diff --git a/.env.development b/.env.development index 3aaa28f..ba1ebf1 100644 --- a/.env.development +++ b/.env.development @@ -1,5 +1,5 @@ # 页面标题 -VITE_APP_TITLE = 机器狗巡检平台 +VITE_APP_TITLE = 巡检精灵综合管理平台 # 接口请求地址,会设置到 axios 的 baseURL 参数上 VITE_APP_API_BASEURL = http://111.198.10.15:11638 diff --git a/.env.production b/.env.production index 10cfdb7..da68e78 100644 --- a/.env.production +++ b/.env.production @@ -1,7 +1,7 @@ NODE_ENV = production # 页面标题 -VITE_APP_TITLE = 感知数据汇聚平台 +VITE_APP_TITLE = 巡检精灵综合管理平台 # 接口请求地址,会设置到 axios 的 baseURL 参数上 VITE_APP_API_BASEURL = http://111.198.10.15:11638 # 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空 diff --git a/README.md b/README.md index baadcb1..1cc1ffa 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ -

机器狗巡检平台

+

巡检精灵综合管理平台

-

机器狗巡检平台

+

巡检精灵综合管理平台

## 简要说明

diff --git a/package.json b/package.json index a6745d6..b8f7e9c 100644 --- a/package.json +++ b/package.json @@ -45,6 +45,7 @@ "print-js": "^1.6.0", "qrcode": "^1.5.1", "qs": "^6.11.0", + "three": "^0.173.0", "tinymce": "^6.2.0", "vue": "^3.2.44", "vue-pdf-embed": "^1.1.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 860f410..351badd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -57,6 +57,7 @@ stylelint-config-standard-vue: ^1.0.0 stylelint-scss: ^4.3.0 svgo: ^3.0.0 + three: ^0.173.0 tinymce: ^6.2.0 typescript: ^4.8.4 unplugin-auto-import: ^0.11.4 @@ -107,6 +108,7 @@ print-js: 1.6.0 qrcode: 1.5.4 qs: 6.13.1 + three: 0.173.0 tinymce: 6.8.5 vue: 3.5.13_typescript@4.9.5 vue-pdf-embed: 1.2.1_vue@3.5.13 @@ -8623,6 +8625,10 @@ resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} dev: true + /three/0.173.0: + resolution: {integrity: sha512-AUwVmViIEUgBwxJJ7stnF0NkPpZxx1aZ6WiAbQ/Qq61h6I9UR4grXtZDmO8mnlaNORhHnIBlXJ1uBxILEKuVyw==} + dev: false + /through/2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} dev: true diff --git a/public/4.pcd b/public/4.pcd new file mode 100644 index 0000000..a45a92e --- /dev/null +++ b/public/4.pcd Binary files differ diff --git a/public/config/config.json b/public/config/config.json index 0c02bb3..e5cba39 100644 --- a/public/config/config.json +++ b/public/config/config.json @@ -1,5 +1,5 @@ { - "title":"燃气物联感知平台", + "title":"巡检精灵综合管理平台", "baseUrl": "http://111.198.10.15:11645", "securityJsCode": "56bf9671d4b3517d294caec4751889a1", "JsKey": "40849e82b4e33f5255b17372520c954d", diff --git a/public/finalCloud.pcd b/public/finalCloud.pcd new file mode 100644 index 0000000..b07d7d8 --- /dev/null +++ b/public/finalCloud.pcd Binary files differ diff --git a/.env.development b/.env.development index 3aaa28f..ba1ebf1 100644 --- a/.env.development +++ b/.env.development @@ -1,5 +1,5 @@ # 页面标题 -VITE_APP_TITLE = 机器狗巡检平台 +VITE_APP_TITLE = 巡检精灵综合管理平台 # 接口请求地址,会设置到 axios 的 baseURL 参数上 VITE_APP_API_BASEURL = http://111.198.10.15:11638 diff --git a/.env.production b/.env.production index 10cfdb7..da68e78 100644 --- a/.env.production +++ b/.env.production @@ -1,7 +1,7 @@ NODE_ENV = production # 页面标题 -VITE_APP_TITLE = 感知数据汇聚平台 +VITE_APP_TITLE = 巡检精灵综合管理平台 # 接口请求地址,会设置到 axios 的 baseURL 参数上 VITE_APP_API_BASEURL = http://111.198.10.15:11638 # 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空 diff --git a/README.md b/README.md index baadcb1..1cc1ffa 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ -

机器狗巡检平台

+

巡检精灵综合管理平台

-

机器狗巡检平台

+

巡检精灵综合管理平台

## 简要说明

diff --git a/package.json b/package.json index a6745d6..b8f7e9c 100644 --- a/package.json +++ b/package.json @@ -45,6 +45,7 @@ "print-js": "^1.6.0", "qrcode": "^1.5.1", "qs": "^6.11.0", + "three": "^0.173.0", "tinymce": "^6.2.0", "vue": "^3.2.44", "vue-pdf-embed": "^1.1.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 860f410..351badd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -57,6 +57,7 @@ stylelint-config-standard-vue: ^1.0.0 stylelint-scss: ^4.3.0 svgo: ^3.0.0 + three: ^0.173.0 tinymce: ^6.2.0 typescript: ^4.8.4 unplugin-auto-import: ^0.11.4 @@ -107,6 +108,7 @@ print-js: 1.6.0 qrcode: 1.5.4 qs: 6.13.1 + three: 0.173.0 tinymce: 6.8.5 vue: 3.5.13_typescript@4.9.5 vue-pdf-embed: 1.2.1_vue@3.5.13 @@ -8623,6 +8625,10 @@ resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} dev: true + /three/0.173.0: + resolution: {integrity: sha512-AUwVmViIEUgBwxJJ7stnF0NkPpZxx1aZ6WiAbQ/Qq61h6I9UR4grXtZDmO8mnlaNORhHnIBlXJ1uBxILEKuVyw==} + dev: false + /through/2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} dev: true diff --git a/public/4.pcd b/public/4.pcd new file mode 100644 index 0000000..a45a92e --- /dev/null +++ b/public/4.pcd Binary files differ diff --git a/public/config/config.json b/public/config/config.json index 0c02bb3..e5cba39 100644 --- a/public/config/config.json +++ b/public/config/config.json @@ -1,5 +1,5 @@ { - "title":"燃气物联感知平台", + "title":"巡检精灵综合管理平台", "baseUrl": "http://111.198.10.15:11645", "securityJsCode": "56bf9671d4b3517d294caec4751889a1", "JsKey": "40849e82b4e33f5255b17372520c954d", diff --git a/public/finalCloud.pcd b/public/finalCloud.pcd new file mode 100644 index 0000000..b07d7d8 --- /dev/null +++ b/public/finalCloud.pcd Binary files differ diff --git a/src/assets/icons/icon-patrol.svg b/src/assets/icons/icon-patrol.svg new file mode 100644 index 0000000..8619714 --- /dev/null +++ b/src/assets/icons/icon-patrol.svg @@ -0,0 +1 @@ + diff --git a/.env.development b/.env.development index 3aaa28f..ba1ebf1 100644 --- a/.env.development +++ b/.env.development @@ -1,5 +1,5 @@ # 页面标题 -VITE_APP_TITLE = 机器狗巡检平台 +VITE_APP_TITLE = 巡检精灵综合管理平台 # 接口请求地址,会设置到 axios 的 baseURL 参数上 VITE_APP_API_BASEURL = http://111.198.10.15:11638 diff --git a/.env.production b/.env.production index 10cfdb7..da68e78 100644 --- a/.env.production +++ b/.env.production @@ -1,7 +1,7 @@ NODE_ENV = production # 页面标题 -VITE_APP_TITLE = 感知数据汇聚平台 +VITE_APP_TITLE = 巡检精灵综合管理平台 # 接口请求地址,会设置到 axios 的 baseURL 参数上 VITE_APP_API_BASEURL = http://111.198.10.15:11638 # 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空 diff --git a/README.md b/README.md index baadcb1..1cc1ffa 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ -

机器狗巡检平台

+

巡检精灵综合管理平台

-

机器狗巡检平台

+

巡检精灵综合管理平台

## 简要说明

diff --git a/package.json b/package.json index a6745d6..b8f7e9c 100644 --- a/package.json +++ b/package.json @@ -45,6 +45,7 @@ "print-js": "^1.6.0", "qrcode": "^1.5.1", "qs": "^6.11.0", + "three": "^0.173.0", "tinymce": "^6.2.0", "vue": "^3.2.44", "vue-pdf-embed": "^1.1.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 860f410..351badd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -57,6 +57,7 @@ stylelint-config-standard-vue: ^1.0.0 stylelint-scss: ^4.3.0 svgo: ^3.0.0 + three: ^0.173.0 tinymce: ^6.2.0 typescript: ^4.8.4 unplugin-auto-import: ^0.11.4 @@ -107,6 +108,7 @@ print-js: 1.6.0 qrcode: 1.5.4 qs: 6.13.1 + three: 0.173.0 tinymce: 6.8.5 vue: 3.5.13_typescript@4.9.5 vue-pdf-embed: 1.2.1_vue@3.5.13 @@ -8623,6 +8625,10 @@ resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} dev: true + /three/0.173.0: + resolution: {integrity: sha512-AUwVmViIEUgBwxJJ7stnF0NkPpZxx1aZ6WiAbQ/Qq61h6I9UR4grXtZDmO8mnlaNORhHnIBlXJ1uBxILEKuVyw==} + dev: false + /through/2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} dev: true diff --git a/public/4.pcd b/public/4.pcd new file mode 100644 index 0000000..a45a92e --- /dev/null +++ b/public/4.pcd Binary files differ diff --git a/public/config/config.json b/public/config/config.json index 0c02bb3..e5cba39 100644 --- a/public/config/config.json +++ b/public/config/config.json @@ -1,5 +1,5 @@ { - "title":"燃气物联感知平台", + "title":"巡检精灵综合管理平台", "baseUrl": "http://111.198.10.15:11645", "securityJsCode": "56bf9671d4b3517d294caec4751889a1", "JsKey": "40849e82b4e33f5255b17372520c954d", diff --git a/public/finalCloud.pcd b/public/finalCloud.pcd new file mode 100644 index 0000000..b07d7d8 --- /dev/null +++ b/public/finalCloud.pcd Binary files differ diff --git a/src/assets/icons/icon-patrol.svg b/src/assets/icons/icon-patrol.svg new file mode 100644 index 0000000..8619714 --- /dev/null +++ b/src/assets/icons/icon-patrol.svg @@ -0,0 +1 @@ + diff --git a/src/assets/tempImages/2.jpg b/src/assets/tempImages/2.jpg new file mode 100644 index 0000000..23e16e8 --- /dev/null +++ b/src/assets/tempImages/2.jpg Binary files differ diff --git a/.env.development b/.env.development index 3aaa28f..ba1ebf1 100644 --- a/.env.development +++ b/.env.development @@ -1,5 +1,5 @@ # 页面标题 -VITE_APP_TITLE = 机器狗巡检平台 +VITE_APP_TITLE = 巡检精灵综合管理平台 # 接口请求地址,会设置到 axios 的 baseURL 参数上 VITE_APP_API_BASEURL = http://111.198.10.15:11638 diff --git a/.env.production b/.env.production index 10cfdb7..da68e78 100644 --- a/.env.production +++ b/.env.production @@ -1,7 +1,7 @@ NODE_ENV = production # 页面标题 -VITE_APP_TITLE = 感知数据汇聚平台 +VITE_APP_TITLE = 巡检精灵综合管理平台 # 接口请求地址,会设置到 axios 的 baseURL 参数上 VITE_APP_API_BASEURL = http://111.198.10.15:11638 # 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空 diff --git a/README.md b/README.md index baadcb1..1cc1ffa 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ -

机器狗巡检平台

+

巡检精灵综合管理平台

-

机器狗巡检平台

+

巡检精灵综合管理平台

## 简要说明

diff --git a/package.json b/package.json index a6745d6..b8f7e9c 100644 --- a/package.json +++ b/package.json @@ -45,6 +45,7 @@ "print-js": "^1.6.0", "qrcode": "^1.5.1", "qs": "^6.11.0", + "three": "^0.173.0", "tinymce": "^6.2.0", "vue": "^3.2.44", "vue-pdf-embed": "^1.1.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 860f410..351badd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -57,6 +57,7 @@ stylelint-config-standard-vue: ^1.0.0 stylelint-scss: ^4.3.0 svgo: ^3.0.0 + three: ^0.173.0 tinymce: ^6.2.0 typescript: ^4.8.4 unplugin-auto-import: ^0.11.4 @@ -107,6 +108,7 @@ print-js: 1.6.0 qrcode: 1.5.4 qs: 6.13.1 + three: 0.173.0 tinymce: 6.8.5 vue: 3.5.13_typescript@4.9.5 vue-pdf-embed: 1.2.1_vue@3.5.13 @@ -8623,6 +8625,10 @@ resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} dev: true + /three/0.173.0: + resolution: {integrity: sha512-AUwVmViIEUgBwxJJ7stnF0NkPpZxx1aZ6WiAbQ/Qq61h6I9UR4grXtZDmO8mnlaNORhHnIBlXJ1uBxILEKuVyw==} + dev: false + /through/2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} dev: true diff --git a/public/4.pcd b/public/4.pcd new file mode 100644 index 0000000..a45a92e --- /dev/null +++ b/public/4.pcd Binary files differ diff --git a/public/config/config.json b/public/config/config.json index 0c02bb3..e5cba39 100644 --- a/public/config/config.json +++ b/public/config/config.json @@ -1,5 +1,5 @@ { - "title":"燃气物联感知平台", + "title":"巡检精灵综合管理平台", "baseUrl": "http://111.198.10.15:11645", "securityJsCode": "56bf9671d4b3517d294caec4751889a1", "JsKey": "40849e82b4e33f5255b17372520c954d", diff --git a/public/finalCloud.pcd b/public/finalCloud.pcd new file mode 100644 index 0000000..b07d7d8 --- /dev/null +++ b/public/finalCloud.pcd Binary files differ diff --git a/src/assets/icons/icon-patrol.svg b/src/assets/icons/icon-patrol.svg new file mode 100644 index 0000000..8619714 --- /dev/null +++ b/src/assets/icons/icon-patrol.svg @@ -0,0 +1 @@ + diff --git a/src/assets/tempImages/2.jpg b/src/assets/tempImages/2.jpg new file mode 100644 index 0000000..23e16e8 --- /dev/null +++ b/src/assets/tempImages/2.jpg Binary files differ diff --git a/src/assets/tempImages/control.png b/src/assets/tempImages/control.png new file mode 100644 index 0000000..27cb0a6 --- /dev/null +++ b/src/assets/tempImages/control.png Binary files differ diff --git a/.env.development b/.env.development index 3aaa28f..ba1ebf1 100644 --- a/.env.development +++ b/.env.development @@ -1,5 +1,5 @@ # 页面标题 -VITE_APP_TITLE = 机器狗巡检平台 +VITE_APP_TITLE = 巡检精灵综合管理平台 # 接口请求地址,会设置到 axios 的 baseURL 参数上 VITE_APP_API_BASEURL = http://111.198.10.15:11638 diff --git a/.env.production b/.env.production index 10cfdb7..da68e78 100644 --- a/.env.production +++ b/.env.production @@ -1,7 +1,7 @@ NODE_ENV = production # 页面标题 -VITE_APP_TITLE = 感知数据汇聚平台 +VITE_APP_TITLE = 巡检精灵综合管理平台 # 接口请求地址,会设置到 axios 的 baseURL 参数上 VITE_APP_API_BASEURL = http://111.198.10.15:11638 # 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空 diff --git a/README.md b/README.md index baadcb1..1cc1ffa 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ -

机器狗巡检平台

+

巡检精灵综合管理平台

-

机器狗巡检平台

+

巡检精灵综合管理平台

## 简要说明

diff --git a/package.json b/package.json index a6745d6..b8f7e9c 100644 --- a/package.json +++ b/package.json @@ -45,6 +45,7 @@ "print-js": "^1.6.0", "qrcode": "^1.5.1", "qs": "^6.11.0", + "three": "^0.173.0", "tinymce": "^6.2.0", "vue": "^3.2.44", "vue-pdf-embed": "^1.1.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 860f410..351badd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -57,6 +57,7 @@ stylelint-config-standard-vue: ^1.0.0 stylelint-scss: ^4.3.0 svgo: ^3.0.0 + three: ^0.173.0 tinymce: ^6.2.0 typescript: ^4.8.4 unplugin-auto-import: ^0.11.4 @@ -107,6 +108,7 @@ print-js: 1.6.0 qrcode: 1.5.4 qs: 6.13.1 + three: 0.173.0 tinymce: 6.8.5 vue: 3.5.13_typescript@4.9.5 vue-pdf-embed: 1.2.1_vue@3.5.13 @@ -8623,6 +8625,10 @@ resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} dev: true + /three/0.173.0: + resolution: {integrity: sha512-AUwVmViIEUgBwxJJ7stnF0NkPpZxx1aZ6WiAbQ/Qq61h6I9UR4grXtZDmO8mnlaNORhHnIBlXJ1uBxILEKuVyw==} + dev: false + /through/2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} dev: true diff --git a/public/4.pcd b/public/4.pcd new file mode 100644 index 0000000..a45a92e --- /dev/null +++ b/public/4.pcd Binary files differ diff --git a/public/config/config.json b/public/config/config.json index 0c02bb3..e5cba39 100644 --- a/public/config/config.json +++ b/public/config/config.json @@ -1,5 +1,5 @@ { - "title":"燃气物联感知平台", + "title":"巡检精灵综合管理平台", "baseUrl": "http://111.198.10.15:11645", "securityJsCode": "56bf9671d4b3517d294caec4751889a1", "JsKey": "40849e82b4e33f5255b17372520c954d", diff --git a/public/finalCloud.pcd b/public/finalCloud.pcd new file mode 100644 index 0000000..b07d7d8 --- /dev/null +++ b/public/finalCloud.pcd Binary files differ diff --git a/src/assets/icons/icon-patrol.svg b/src/assets/icons/icon-patrol.svg new file mode 100644 index 0000000..8619714 --- /dev/null +++ b/src/assets/icons/icon-patrol.svg @@ -0,0 +1 @@ + diff --git a/src/assets/tempImages/2.jpg b/src/assets/tempImages/2.jpg new file mode 100644 index 0000000..23e16e8 --- /dev/null +++ b/src/assets/tempImages/2.jpg Binary files differ diff --git a/src/assets/tempImages/control.png b/src/assets/tempImages/control.png new file mode 100644 index 0000000..27cb0a6 --- /dev/null +++ b/src/assets/tempImages/control.png Binary files differ diff --git a/src/assets/tempImages/dog-arm.jpg b/src/assets/tempImages/dog-arm.jpg new file mode 100644 index 0000000..53c25df --- /dev/null +++ b/src/assets/tempImages/dog-arm.jpg Binary files differ diff --git a/.env.development b/.env.development index 3aaa28f..ba1ebf1 100644 --- a/.env.development +++ b/.env.development @@ -1,5 +1,5 @@ # 页面标题 -VITE_APP_TITLE = 机器狗巡检平台 +VITE_APP_TITLE = 巡检精灵综合管理平台 # 接口请求地址,会设置到 axios 的 baseURL 参数上 VITE_APP_API_BASEURL = http://111.198.10.15:11638 diff --git a/.env.production b/.env.production index 10cfdb7..da68e78 100644 --- a/.env.production +++ b/.env.production @@ -1,7 +1,7 @@ NODE_ENV = production # 页面标题 -VITE_APP_TITLE = 感知数据汇聚平台 +VITE_APP_TITLE = 巡检精灵综合管理平台 # 接口请求地址,会设置到 axios 的 baseURL 参数上 VITE_APP_API_BASEURL = http://111.198.10.15:11638 # 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空 diff --git a/README.md b/README.md index baadcb1..1cc1ffa 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ -

机器狗巡检平台

+

巡检精灵综合管理平台

-

机器狗巡检平台

+

巡检精灵综合管理平台

## 简要说明

diff --git a/package.json b/package.json index a6745d6..b8f7e9c 100644 --- a/package.json +++ b/package.json @@ -45,6 +45,7 @@ "print-js": "^1.6.0", "qrcode": "^1.5.1", "qs": "^6.11.0", + "three": "^0.173.0", "tinymce": "^6.2.0", "vue": "^3.2.44", "vue-pdf-embed": "^1.1.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 860f410..351badd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -57,6 +57,7 @@ stylelint-config-standard-vue: ^1.0.0 stylelint-scss: ^4.3.0 svgo: ^3.0.0 + three: ^0.173.0 tinymce: ^6.2.0 typescript: ^4.8.4 unplugin-auto-import: ^0.11.4 @@ -107,6 +108,7 @@ print-js: 1.6.0 qrcode: 1.5.4 qs: 6.13.1 + three: 0.173.0 tinymce: 6.8.5 vue: 3.5.13_typescript@4.9.5 vue-pdf-embed: 1.2.1_vue@3.5.13 @@ -8623,6 +8625,10 @@ resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} dev: true + /three/0.173.0: + resolution: {integrity: sha512-AUwVmViIEUgBwxJJ7stnF0NkPpZxx1aZ6WiAbQ/Qq61h6I9UR4grXtZDmO8mnlaNORhHnIBlXJ1uBxILEKuVyw==} + dev: false + /through/2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} dev: true diff --git a/public/4.pcd b/public/4.pcd new file mode 100644 index 0000000..a45a92e --- /dev/null +++ b/public/4.pcd Binary files differ diff --git a/public/config/config.json b/public/config/config.json index 0c02bb3..e5cba39 100644 --- a/public/config/config.json +++ b/public/config/config.json @@ -1,5 +1,5 @@ { - "title":"燃气物联感知平台", + "title":"巡检精灵综合管理平台", "baseUrl": "http://111.198.10.15:11645", "securityJsCode": "56bf9671d4b3517d294caec4751889a1", "JsKey": "40849e82b4e33f5255b17372520c954d", diff --git a/public/finalCloud.pcd b/public/finalCloud.pcd new file mode 100644 index 0000000..b07d7d8 --- /dev/null +++ b/public/finalCloud.pcd Binary files differ diff --git a/src/assets/icons/icon-patrol.svg b/src/assets/icons/icon-patrol.svg new file mode 100644 index 0000000..8619714 --- /dev/null +++ b/src/assets/icons/icon-patrol.svg @@ -0,0 +1 @@ + diff --git a/src/assets/tempImages/2.jpg b/src/assets/tempImages/2.jpg new file mode 100644 index 0000000..23e16e8 --- /dev/null +++ b/src/assets/tempImages/2.jpg Binary files differ diff --git a/src/assets/tempImages/control.png b/src/assets/tempImages/control.png new file mode 100644 index 0000000..27cb0a6 --- /dev/null +++ b/src/assets/tempImages/control.png Binary files differ diff --git a/src/assets/tempImages/dog-arm.jpg b/src/assets/tempImages/dog-arm.jpg new file mode 100644 index 0000000..53c25df --- /dev/null +++ b/src/assets/tempImages/dog-arm.jpg Binary files differ diff --git a/src/assets/tempImages/dog-picture.jpg b/src/assets/tempImages/dog-picture.jpg new file mode 100644 index 0000000..6d37211 --- /dev/null +++ b/src/assets/tempImages/dog-picture.jpg Binary files differ diff --git a/.env.development b/.env.development index 3aaa28f..ba1ebf1 100644 --- a/.env.development +++ b/.env.development @@ -1,5 +1,5 @@ # 页面标题 -VITE_APP_TITLE = 机器狗巡检平台 +VITE_APP_TITLE = 巡检精灵综合管理平台 # 接口请求地址,会设置到 axios 的 baseURL 参数上 VITE_APP_API_BASEURL = http://111.198.10.15:11638 diff --git a/.env.production b/.env.production index 10cfdb7..da68e78 100644 --- a/.env.production +++ b/.env.production @@ -1,7 +1,7 @@ NODE_ENV = production # 页面标题 -VITE_APP_TITLE = 感知数据汇聚平台 +VITE_APP_TITLE = 巡检精灵综合管理平台 # 接口请求地址,会设置到 axios 的 baseURL 参数上 VITE_APP_API_BASEURL = http://111.198.10.15:11638 # 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空 diff --git a/README.md b/README.md index baadcb1..1cc1ffa 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ -

机器狗巡检平台

+

巡检精灵综合管理平台

-

机器狗巡检平台

+

巡检精灵综合管理平台

## 简要说明

diff --git a/package.json b/package.json index a6745d6..b8f7e9c 100644 --- a/package.json +++ b/package.json @@ -45,6 +45,7 @@ "print-js": "^1.6.0", "qrcode": "^1.5.1", "qs": "^6.11.0", + "three": "^0.173.0", "tinymce": "^6.2.0", "vue": "^3.2.44", "vue-pdf-embed": "^1.1.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 860f410..351badd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -57,6 +57,7 @@ stylelint-config-standard-vue: ^1.0.0 stylelint-scss: ^4.3.0 svgo: ^3.0.0 + three: ^0.173.0 tinymce: ^6.2.0 typescript: ^4.8.4 unplugin-auto-import: ^0.11.4 @@ -107,6 +108,7 @@ print-js: 1.6.0 qrcode: 1.5.4 qs: 6.13.1 + three: 0.173.0 tinymce: 6.8.5 vue: 3.5.13_typescript@4.9.5 vue-pdf-embed: 1.2.1_vue@3.5.13 @@ -8623,6 +8625,10 @@ resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} dev: true + /three/0.173.0: + resolution: {integrity: sha512-AUwVmViIEUgBwxJJ7stnF0NkPpZxx1aZ6WiAbQ/Qq61h6I9UR4grXtZDmO8mnlaNORhHnIBlXJ1uBxILEKuVyw==} + dev: false + /through/2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} dev: true diff --git a/public/4.pcd b/public/4.pcd new file mode 100644 index 0000000..a45a92e --- /dev/null +++ b/public/4.pcd Binary files differ diff --git a/public/config/config.json b/public/config/config.json index 0c02bb3..e5cba39 100644 --- a/public/config/config.json +++ b/public/config/config.json @@ -1,5 +1,5 @@ { - "title":"燃气物联感知平台", + "title":"巡检精灵综合管理平台", "baseUrl": "http://111.198.10.15:11645", "securityJsCode": "56bf9671d4b3517d294caec4751889a1", "JsKey": "40849e82b4e33f5255b17372520c954d", diff --git a/public/finalCloud.pcd b/public/finalCloud.pcd new file mode 100644 index 0000000..b07d7d8 --- /dev/null +++ b/public/finalCloud.pcd Binary files differ diff --git a/src/assets/icons/icon-patrol.svg b/src/assets/icons/icon-patrol.svg new file mode 100644 index 0000000..8619714 --- /dev/null +++ b/src/assets/icons/icon-patrol.svg @@ -0,0 +1 @@ + diff --git a/src/assets/tempImages/2.jpg b/src/assets/tempImages/2.jpg new file mode 100644 index 0000000..23e16e8 --- /dev/null +++ b/src/assets/tempImages/2.jpg Binary files differ diff --git a/src/assets/tempImages/control.png b/src/assets/tempImages/control.png new file mode 100644 index 0000000..27cb0a6 --- /dev/null +++ b/src/assets/tempImages/control.png Binary files differ diff --git a/src/assets/tempImages/dog-arm.jpg b/src/assets/tempImages/dog-arm.jpg new file mode 100644 index 0000000..53c25df --- /dev/null +++ b/src/assets/tempImages/dog-arm.jpg Binary files differ diff --git a/src/assets/tempImages/dog-picture.jpg b/src/assets/tempImages/dog-picture.jpg new file mode 100644 index 0000000..6d37211 --- /dev/null +++ b/src/assets/tempImages/dog-picture.jpg Binary files differ diff --git a/src/assets/tempImages/dog.png b/src/assets/tempImages/dog.png new file mode 100644 index 0000000..1672a81 --- /dev/null +++ b/src/assets/tempImages/dog.png Binary files differ diff --git a/.env.development b/.env.development index 3aaa28f..ba1ebf1 100644 --- a/.env.development +++ b/.env.development @@ -1,5 +1,5 @@ # 页面标题 -VITE_APP_TITLE = 机器狗巡检平台 +VITE_APP_TITLE = 巡检精灵综合管理平台 # 接口请求地址,会设置到 axios 的 baseURL 参数上 VITE_APP_API_BASEURL = http://111.198.10.15:11638 diff --git a/.env.production b/.env.production index 10cfdb7..da68e78 100644 --- a/.env.production +++ b/.env.production @@ -1,7 +1,7 @@ NODE_ENV = production # 页面标题 -VITE_APP_TITLE = 感知数据汇聚平台 +VITE_APP_TITLE = 巡检精灵综合管理平台 # 接口请求地址,会设置到 axios 的 baseURL 参数上 VITE_APP_API_BASEURL = http://111.198.10.15:11638 # 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空 diff --git a/README.md b/README.md index baadcb1..1cc1ffa 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ -

机器狗巡检平台

+

巡检精灵综合管理平台

-

机器狗巡检平台

+

巡检精灵综合管理平台

## 简要说明

diff --git a/package.json b/package.json index a6745d6..b8f7e9c 100644 --- a/package.json +++ b/package.json @@ -45,6 +45,7 @@ "print-js": "^1.6.0", "qrcode": "^1.5.1", "qs": "^6.11.0", + "three": "^0.173.0", "tinymce": "^6.2.0", "vue": "^3.2.44", "vue-pdf-embed": "^1.1.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 860f410..351badd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -57,6 +57,7 @@ stylelint-config-standard-vue: ^1.0.0 stylelint-scss: ^4.3.0 svgo: ^3.0.0 + three: ^0.173.0 tinymce: ^6.2.0 typescript: ^4.8.4 unplugin-auto-import: ^0.11.4 @@ -107,6 +108,7 @@ print-js: 1.6.0 qrcode: 1.5.4 qs: 6.13.1 + three: 0.173.0 tinymce: 6.8.5 vue: 3.5.13_typescript@4.9.5 vue-pdf-embed: 1.2.1_vue@3.5.13 @@ -8623,6 +8625,10 @@ resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} dev: true + /three/0.173.0: + resolution: {integrity: sha512-AUwVmViIEUgBwxJJ7stnF0NkPpZxx1aZ6WiAbQ/Qq61h6I9UR4grXtZDmO8mnlaNORhHnIBlXJ1uBxILEKuVyw==} + dev: false + /through/2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} dev: true diff --git a/public/4.pcd b/public/4.pcd new file mode 100644 index 0000000..a45a92e --- /dev/null +++ b/public/4.pcd Binary files differ diff --git a/public/config/config.json b/public/config/config.json index 0c02bb3..e5cba39 100644 --- a/public/config/config.json +++ b/public/config/config.json @@ -1,5 +1,5 @@ { - "title":"燃气物联感知平台", + "title":"巡检精灵综合管理平台", "baseUrl": "http://111.198.10.15:11645", "securityJsCode": "56bf9671d4b3517d294caec4751889a1", "JsKey": "40849e82b4e33f5255b17372520c954d", diff --git a/public/finalCloud.pcd b/public/finalCloud.pcd new file mode 100644 index 0000000..b07d7d8 --- /dev/null +++ b/public/finalCloud.pcd Binary files differ diff --git a/src/assets/icons/icon-patrol.svg b/src/assets/icons/icon-patrol.svg new file mode 100644 index 0000000..8619714 --- /dev/null +++ b/src/assets/icons/icon-patrol.svg @@ -0,0 +1 @@ + diff --git a/src/assets/tempImages/2.jpg b/src/assets/tempImages/2.jpg new file mode 100644 index 0000000..23e16e8 --- /dev/null +++ b/src/assets/tempImages/2.jpg Binary files differ diff --git a/src/assets/tempImages/control.png b/src/assets/tempImages/control.png new file mode 100644 index 0000000..27cb0a6 --- /dev/null +++ b/src/assets/tempImages/control.png Binary files differ diff --git a/src/assets/tempImages/dog-arm.jpg b/src/assets/tempImages/dog-arm.jpg new file mode 100644 index 0000000..53c25df --- /dev/null +++ b/src/assets/tempImages/dog-arm.jpg Binary files differ diff --git a/src/assets/tempImages/dog-picture.jpg b/src/assets/tempImages/dog-picture.jpg new file mode 100644 index 0000000..6d37211 --- /dev/null +++ b/src/assets/tempImages/dog-picture.jpg Binary files differ diff --git a/src/assets/tempImages/dog.png b/src/assets/tempImages/dog.png new file mode 100644 index 0000000..1672a81 --- /dev/null +++ b/src/assets/tempImages/dog.png Binary files differ diff --git a/src/assets/tempImages/icon-link.svg b/src/assets/tempImages/icon-link.svg new file mode 100644 index 0000000..28707bb --- /dev/null +++ b/src/assets/tempImages/icon-link.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.env.development b/.env.development index 3aaa28f..ba1ebf1 100644 --- a/.env.development +++ b/.env.development @@ -1,5 +1,5 @@ # 页面标题 -VITE_APP_TITLE = 机器狗巡检平台 +VITE_APP_TITLE = 巡检精灵综合管理平台 # 接口请求地址,会设置到 axios 的 baseURL 参数上 VITE_APP_API_BASEURL = http://111.198.10.15:11638 diff --git a/.env.production b/.env.production index 10cfdb7..da68e78 100644 --- a/.env.production +++ b/.env.production @@ -1,7 +1,7 @@ NODE_ENV = production # 页面标题 -VITE_APP_TITLE = 感知数据汇聚平台 +VITE_APP_TITLE = 巡检精灵综合管理平台 # 接口请求地址,会设置到 axios 的 baseURL 参数上 VITE_APP_API_BASEURL = http://111.198.10.15:11638 # 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空 diff --git a/README.md b/README.md index baadcb1..1cc1ffa 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ -

机器狗巡检平台

+

巡检精灵综合管理平台

-

机器狗巡检平台

+

巡检精灵综合管理平台

## 简要说明

diff --git a/package.json b/package.json index a6745d6..b8f7e9c 100644 --- a/package.json +++ b/package.json @@ -45,6 +45,7 @@ "print-js": "^1.6.0", "qrcode": "^1.5.1", "qs": "^6.11.0", + "three": "^0.173.0", "tinymce": "^6.2.0", "vue": "^3.2.44", "vue-pdf-embed": "^1.1.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 860f410..351badd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -57,6 +57,7 @@ stylelint-config-standard-vue: ^1.0.0 stylelint-scss: ^4.3.0 svgo: ^3.0.0 + three: ^0.173.0 tinymce: ^6.2.0 typescript: ^4.8.4 unplugin-auto-import: ^0.11.4 @@ -107,6 +108,7 @@ print-js: 1.6.0 qrcode: 1.5.4 qs: 6.13.1 + three: 0.173.0 tinymce: 6.8.5 vue: 3.5.13_typescript@4.9.5 vue-pdf-embed: 1.2.1_vue@3.5.13 @@ -8623,6 +8625,10 @@ resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} dev: true + /three/0.173.0: + resolution: {integrity: sha512-AUwVmViIEUgBwxJJ7stnF0NkPpZxx1aZ6WiAbQ/Qq61h6I9UR4grXtZDmO8mnlaNORhHnIBlXJ1uBxILEKuVyw==} + dev: false + /through/2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} dev: true diff --git a/public/4.pcd b/public/4.pcd new file mode 100644 index 0000000..a45a92e --- /dev/null +++ b/public/4.pcd Binary files differ diff --git a/public/config/config.json b/public/config/config.json index 0c02bb3..e5cba39 100644 --- a/public/config/config.json +++ b/public/config/config.json @@ -1,5 +1,5 @@ { - "title":"燃气物联感知平台", + "title":"巡检精灵综合管理平台", "baseUrl": "http://111.198.10.15:11645", "securityJsCode": "56bf9671d4b3517d294caec4751889a1", "JsKey": "40849e82b4e33f5255b17372520c954d", diff --git a/public/finalCloud.pcd b/public/finalCloud.pcd new file mode 100644 index 0000000..b07d7d8 --- /dev/null +++ b/public/finalCloud.pcd Binary files differ diff --git a/src/assets/icons/icon-patrol.svg b/src/assets/icons/icon-patrol.svg new file mode 100644 index 0000000..8619714 --- /dev/null +++ b/src/assets/icons/icon-patrol.svg @@ -0,0 +1 @@ + diff --git a/src/assets/tempImages/2.jpg b/src/assets/tempImages/2.jpg new file mode 100644 index 0000000..23e16e8 --- /dev/null +++ b/src/assets/tempImages/2.jpg Binary files differ diff --git a/src/assets/tempImages/control.png b/src/assets/tempImages/control.png new file mode 100644 index 0000000..27cb0a6 --- /dev/null +++ b/src/assets/tempImages/control.png Binary files differ diff --git a/src/assets/tempImages/dog-arm.jpg b/src/assets/tempImages/dog-arm.jpg new file mode 100644 index 0000000..53c25df --- /dev/null +++ b/src/assets/tempImages/dog-arm.jpg Binary files differ diff --git a/src/assets/tempImages/dog-picture.jpg b/src/assets/tempImages/dog-picture.jpg new file mode 100644 index 0000000..6d37211 --- /dev/null +++ b/src/assets/tempImages/dog-picture.jpg Binary files differ diff --git a/src/assets/tempImages/dog.png b/src/assets/tempImages/dog.png new file mode 100644 index 0000000..1672a81 --- /dev/null +++ b/src/assets/tempImages/dog.png Binary files differ diff --git a/src/assets/tempImages/icon-link.svg b/src/assets/tempImages/icon-link.svg new file mode 100644 index 0000000..28707bb --- /dev/null +++ b/src/assets/tempImages/icon-link.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/assets/tempImages/map.png b/src/assets/tempImages/map.png new file mode 100644 index 0000000..0530d85 --- /dev/null +++ b/src/assets/tempImages/map.png Binary files differ diff --git a/.env.development b/.env.development index 3aaa28f..ba1ebf1 100644 --- a/.env.development +++ b/.env.development @@ -1,5 +1,5 @@ # 页面标题 -VITE_APP_TITLE = 机器狗巡检平台 +VITE_APP_TITLE = 巡检精灵综合管理平台 # 接口请求地址,会设置到 axios 的 baseURL 参数上 VITE_APP_API_BASEURL = http://111.198.10.15:11638 diff --git a/.env.production b/.env.production index 10cfdb7..da68e78 100644 --- a/.env.production +++ b/.env.production @@ -1,7 +1,7 @@ NODE_ENV = production # 页面标题 -VITE_APP_TITLE = 感知数据汇聚平台 +VITE_APP_TITLE = 巡检精灵综合管理平台 # 接口请求地址,会设置到 axios 的 baseURL 参数上 VITE_APP_API_BASEURL = http://111.198.10.15:11638 # 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空 diff --git a/README.md b/README.md index baadcb1..1cc1ffa 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ -

机器狗巡检平台

+

巡检精灵综合管理平台

-

机器狗巡检平台

+

巡检精灵综合管理平台

## 简要说明

diff --git a/package.json b/package.json index a6745d6..b8f7e9c 100644 --- a/package.json +++ b/package.json @@ -45,6 +45,7 @@ "print-js": "^1.6.0", "qrcode": "^1.5.1", "qs": "^6.11.0", + "three": "^0.173.0", "tinymce": "^6.2.0", "vue": "^3.2.44", "vue-pdf-embed": "^1.1.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 860f410..351badd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -57,6 +57,7 @@ stylelint-config-standard-vue: ^1.0.0 stylelint-scss: ^4.3.0 svgo: ^3.0.0 + three: ^0.173.0 tinymce: ^6.2.0 typescript: ^4.8.4 unplugin-auto-import: ^0.11.4 @@ -107,6 +108,7 @@ print-js: 1.6.0 qrcode: 1.5.4 qs: 6.13.1 + three: 0.173.0 tinymce: 6.8.5 vue: 3.5.13_typescript@4.9.5 vue-pdf-embed: 1.2.1_vue@3.5.13 @@ -8623,6 +8625,10 @@ resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} dev: true + /three/0.173.0: + resolution: {integrity: sha512-AUwVmViIEUgBwxJJ7stnF0NkPpZxx1aZ6WiAbQ/Qq61h6I9UR4grXtZDmO8mnlaNORhHnIBlXJ1uBxILEKuVyw==} + dev: false + /through/2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} dev: true diff --git a/public/4.pcd b/public/4.pcd new file mode 100644 index 0000000..a45a92e --- /dev/null +++ b/public/4.pcd Binary files differ diff --git a/public/config/config.json b/public/config/config.json index 0c02bb3..e5cba39 100644 --- a/public/config/config.json +++ b/public/config/config.json @@ -1,5 +1,5 @@ { - "title":"燃气物联感知平台", + "title":"巡检精灵综合管理平台", "baseUrl": "http://111.198.10.15:11645", "securityJsCode": "56bf9671d4b3517d294caec4751889a1", "JsKey": "40849e82b4e33f5255b17372520c954d", diff --git a/public/finalCloud.pcd b/public/finalCloud.pcd new file mode 100644 index 0000000..b07d7d8 --- /dev/null +++ b/public/finalCloud.pcd Binary files differ diff --git a/src/assets/icons/icon-patrol.svg b/src/assets/icons/icon-patrol.svg new file mode 100644 index 0000000..8619714 --- /dev/null +++ b/src/assets/icons/icon-patrol.svg @@ -0,0 +1 @@ + diff --git a/src/assets/tempImages/2.jpg b/src/assets/tempImages/2.jpg new file mode 100644 index 0000000..23e16e8 --- /dev/null +++ b/src/assets/tempImages/2.jpg Binary files differ diff --git a/src/assets/tempImages/control.png b/src/assets/tempImages/control.png new file mode 100644 index 0000000..27cb0a6 --- /dev/null +++ b/src/assets/tempImages/control.png Binary files differ diff --git a/src/assets/tempImages/dog-arm.jpg b/src/assets/tempImages/dog-arm.jpg new file mode 100644 index 0000000..53c25df --- /dev/null +++ b/src/assets/tempImages/dog-arm.jpg Binary files differ diff --git a/src/assets/tempImages/dog-picture.jpg b/src/assets/tempImages/dog-picture.jpg new file mode 100644 index 0000000..6d37211 --- /dev/null +++ b/src/assets/tempImages/dog-picture.jpg Binary files differ diff --git a/src/assets/tempImages/dog.png b/src/assets/tempImages/dog.png new file mode 100644 index 0000000..1672a81 --- /dev/null +++ b/src/assets/tempImages/dog.png Binary files differ diff --git a/src/assets/tempImages/icon-link.svg b/src/assets/tempImages/icon-link.svg new file mode 100644 index 0000000..28707bb --- /dev/null +++ b/src/assets/tempImages/icon-link.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/assets/tempImages/map.png b/src/assets/tempImages/map.png new file mode 100644 index 0000000..0530d85 --- /dev/null +++ b/src/assets/tempImages/map.png Binary files differ diff --git a/src/assets/tempImages/point.png b/src/assets/tempImages/point.png new file mode 100644 index 0000000..3a8be1f --- /dev/null +++ b/src/assets/tempImages/point.png Binary files differ diff --git a/.env.development b/.env.development index 3aaa28f..ba1ebf1 100644 --- a/.env.development +++ b/.env.development @@ -1,5 +1,5 @@ # 页面标题 -VITE_APP_TITLE = 机器狗巡检平台 +VITE_APP_TITLE = 巡检精灵综合管理平台 # 接口请求地址,会设置到 axios 的 baseURL 参数上 VITE_APP_API_BASEURL = http://111.198.10.15:11638 diff --git a/.env.production b/.env.production index 10cfdb7..da68e78 100644 --- a/.env.production +++ b/.env.production @@ -1,7 +1,7 @@ NODE_ENV = production # 页面标题 -VITE_APP_TITLE = 感知数据汇聚平台 +VITE_APP_TITLE = 巡检精灵综合管理平台 # 接口请求地址,会设置到 axios 的 baseURL 参数上 VITE_APP_API_BASEURL = http://111.198.10.15:11638 # 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空 diff --git a/README.md b/README.md index baadcb1..1cc1ffa 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ -

机器狗巡检平台

+

巡检精灵综合管理平台

-

机器狗巡检平台

+

巡检精灵综合管理平台

## 简要说明

diff --git a/package.json b/package.json index a6745d6..b8f7e9c 100644 --- a/package.json +++ b/package.json @@ -45,6 +45,7 @@ "print-js": "^1.6.0", "qrcode": "^1.5.1", "qs": "^6.11.0", + "three": "^0.173.0", "tinymce": "^6.2.0", "vue": "^3.2.44", "vue-pdf-embed": "^1.1.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 860f410..351badd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -57,6 +57,7 @@ stylelint-config-standard-vue: ^1.0.0 stylelint-scss: ^4.3.0 svgo: ^3.0.0 + three: ^0.173.0 tinymce: ^6.2.0 typescript: ^4.8.4 unplugin-auto-import: ^0.11.4 @@ -107,6 +108,7 @@ print-js: 1.6.0 qrcode: 1.5.4 qs: 6.13.1 + three: 0.173.0 tinymce: 6.8.5 vue: 3.5.13_typescript@4.9.5 vue-pdf-embed: 1.2.1_vue@3.5.13 @@ -8623,6 +8625,10 @@ resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} dev: true + /three/0.173.0: + resolution: {integrity: sha512-AUwVmViIEUgBwxJJ7stnF0NkPpZxx1aZ6WiAbQ/Qq61h6I9UR4grXtZDmO8mnlaNORhHnIBlXJ1uBxILEKuVyw==} + dev: false + /through/2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} dev: true diff --git a/public/4.pcd b/public/4.pcd new file mode 100644 index 0000000..a45a92e --- /dev/null +++ b/public/4.pcd Binary files differ diff --git a/public/config/config.json b/public/config/config.json index 0c02bb3..e5cba39 100644 --- a/public/config/config.json +++ b/public/config/config.json @@ -1,5 +1,5 @@ { - "title":"燃气物联感知平台", + "title":"巡检精灵综合管理平台", "baseUrl": "http://111.198.10.15:11645", "securityJsCode": "56bf9671d4b3517d294caec4751889a1", "JsKey": "40849e82b4e33f5255b17372520c954d", diff --git a/public/finalCloud.pcd b/public/finalCloud.pcd new file mode 100644 index 0000000..b07d7d8 --- /dev/null +++ b/public/finalCloud.pcd Binary files differ diff --git a/src/assets/icons/icon-patrol.svg b/src/assets/icons/icon-patrol.svg new file mode 100644 index 0000000..8619714 --- /dev/null +++ b/src/assets/icons/icon-patrol.svg @@ -0,0 +1 @@ + diff --git a/src/assets/tempImages/2.jpg b/src/assets/tempImages/2.jpg new file mode 100644 index 0000000..23e16e8 --- /dev/null +++ b/src/assets/tempImages/2.jpg Binary files differ diff --git a/src/assets/tempImages/control.png b/src/assets/tempImages/control.png new file mode 100644 index 0000000..27cb0a6 --- /dev/null +++ b/src/assets/tempImages/control.png Binary files differ diff --git a/src/assets/tempImages/dog-arm.jpg b/src/assets/tempImages/dog-arm.jpg new file mode 100644 index 0000000..53c25df --- /dev/null +++ b/src/assets/tempImages/dog-arm.jpg Binary files differ diff --git a/src/assets/tempImages/dog-picture.jpg b/src/assets/tempImages/dog-picture.jpg new file mode 100644 index 0000000..6d37211 --- /dev/null +++ b/src/assets/tempImages/dog-picture.jpg Binary files differ diff --git a/src/assets/tempImages/dog.png b/src/assets/tempImages/dog.png new file mode 100644 index 0000000..1672a81 --- /dev/null +++ b/src/assets/tempImages/dog.png Binary files differ diff --git a/src/assets/tempImages/icon-link.svg b/src/assets/tempImages/icon-link.svg new file mode 100644 index 0000000..28707bb --- /dev/null +++ b/src/assets/tempImages/icon-link.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/assets/tempImages/map.png b/src/assets/tempImages/map.png new file mode 100644 index 0000000..0530d85 --- /dev/null +++ b/src/assets/tempImages/map.png Binary files differ diff --git a/src/assets/tempImages/point.png b/src/assets/tempImages/point.png new file mode 100644 index 0000000..3a8be1f --- /dev/null +++ b/src/assets/tempImages/point.png Binary files differ diff --git a/src/assets/tempImages/sgjc.jpg b/src/assets/tempImages/sgjc.jpg new file mode 100644 index 0000000..a1c25e0 --- /dev/null +++ b/src/assets/tempImages/sgjc.jpg Binary files differ diff --git a/.env.development b/.env.development index 3aaa28f..ba1ebf1 100644 --- a/.env.development +++ b/.env.development @@ -1,5 +1,5 @@ # 页面标题 -VITE_APP_TITLE = 机器狗巡检平台 +VITE_APP_TITLE = 巡检精灵综合管理平台 # 接口请求地址,会设置到 axios 的 baseURL 参数上 VITE_APP_API_BASEURL = http://111.198.10.15:11638 diff --git a/.env.production b/.env.production index 10cfdb7..da68e78 100644 --- a/.env.production +++ b/.env.production @@ -1,7 +1,7 @@ NODE_ENV = production # 页面标题 -VITE_APP_TITLE = 感知数据汇聚平台 +VITE_APP_TITLE = 巡检精灵综合管理平台 # 接口请求地址,会设置到 axios 的 baseURL 参数上 VITE_APP_API_BASEURL = http://111.198.10.15:11638 # 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空 diff --git a/README.md b/README.md index baadcb1..1cc1ffa 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ -

机器狗巡检平台

+

巡检精灵综合管理平台

-

机器狗巡检平台

+

巡检精灵综合管理平台

## 简要说明

diff --git a/package.json b/package.json index a6745d6..b8f7e9c 100644 --- a/package.json +++ b/package.json @@ -45,6 +45,7 @@ "print-js": "^1.6.0", "qrcode": "^1.5.1", "qs": "^6.11.0", + "three": "^0.173.0", "tinymce": "^6.2.0", "vue": "^3.2.44", "vue-pdf-embed": "^1.1.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 860f410..351badd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -57,6 +57,7 @@ stylelint-config-standard-vue: ^1.0.0 stylelint-scss: ^4.3.0 svgo: ^3.0.0 + three: ^0.173.0 tinymce: ^6.2.0 typescript: ^4.8.4 unplugin-auto-import: ^0.11.4 @@ -107,6 +108,7 @@ print-js: 1.6.0 qrcode: 1.5.4 qs: 6.13.1 + three: 0.173.0 tinymce: 6.8.5 vue: 3.5.13_typescript@4.9.5 vue-pdf-embed: 1.2.1_vue@3.5.13 @@ -8623,6 +8625,10 @@ resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} dev: true + /three/0.173.0: + resolution: {integrity: sha512-AUwVmViIEUgBwxJJ7stnF0NkPpZxx1aZ6WiAbQ/Qq61h6I9UR4grXtZDmO8mnlaNORhHnIBlXJ1uBxILEKuVyw==} + dev: false + /through/2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} dev: true diff --git a/public/4.pcd b/public/4.pcd new file mode 100644 index 0000000..a45a92e --- /dev/null +++ b/public/4.pcd Binary files differ diff --git a/public/config/config.json b/public/config/config.json index 0c02bb3..e5cba39 100644 --- a/public/config/config.json +++ b/public/config/config.json @@ -1,5 +1,5 @@ { - "title":"燃气物联感知平台", + "title":"巡检精灵综合管理平台", "baseUrl": "http://111.198.10.15:11645", "securityJsCode": "56bf9671d4b3517d294caec4751889a1", "JsKey": "40849e82b4e33f5255b17372520c954d", diff --git a/public/finalCloud.pcd b/public/finalCloud.pcd new file mode 100644 index 0000000..b07d7d8 --- /dev/null +++ b/public/finalCloud.pcd Binary files differ diff --git a/src/assets/icons/icon-patrol.svg b/src/assets/icons/icon-patrol.svg new file mode 100644 index 0000000..8619714 --- /dev/null +++ b/src/assets/icons/icon-patrol.svg @@ -0,0 +1 @@ + diff --git a/src/assets/tempImages/2.jpg b/src/assets/tempImages/2.jpg new file mode 100644 index 0000000..23e16e8 --- /dev/null +++ b/src/assets/tempImages/2.jpg Binary files differ diff --git a/src/assets/tempImages/control.png b/src/assets/tempImages/control.png new file mode 100644 index 0000000..27cb0a6 --- /dev/null +++ b/src/assets/tempImages/control.png Binary files differ diff --git a/src/assets/tempImages/dog-arm.jpg b/src/assets/tempImages/dog-arm.jpg new file mode 100644 index 0000000..53c25df --- /dev/null +++ b/src/assets/tempImages/dog-arm.jpg Binary files differ diff --git a/src/assets/tempImages/dog-picture.jpg b/src/assets/tempImages/dog-picture.jpg new file mode 100644 index 0000000..6d37211 --- /dev/null +++ b/src/assets/tempImages/dog-picture.jpg Binary files differ diff --git a/src/assets/tempImages/dog.png b/src/assets/tempImages/dog.png new file mode 100644 index 0000000..1672a81 --- /dev/null +++ b/src/assets/tempImages/dog.png Binary files differ diff --git a/src/assets/tempImages/icon-link.svg b/src/assets/tempImages/icon-link.svg new file mode 100644 index 0000000..28707bb --- /dev/null +++ b/src/assets/tempImages/icon-link.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/assets/tempImages/map.png b/src/assets/tempImages/map.png new file mode 100644 index 0000000..0530d85 --- /dev/null +++ b/src/assets/tempImages/map.png Binary files differ diff --git a/src/assets/tempImages/point.png b/src/assets/tempImages/point.png new file mode 100644 index 0000000..3a8be1f --- /dev/null +++ b/src/assets/tempImages/point.png Binary files differ diff --git a/src/assets/tempImages/sgjc.jpg b/src/assets/tempImages/sgjc.jpg new file mode 100644 index 0000000..a1c25e0 --- /dev/null +++ b/src/assets/tempImages/sgjc.jpg Binary files differ diff --git a/src/assets/tempImages/tyx.jpg b/src/assets/tempImages/tyx.jpg new file mode 100644 index 0000000..6d37211 --- /dev/null +++ b/src/assets/tempImages/tyx.jpg Binary files differ diff --git a/.env.development b/.env.development index 3aaa28f..ba1ebf1 100644 --- a/.env.development +++ b/.env.development @@ -1,5 +1,5 @@ # 页面标题 -VITE_APP_TITLE = 机器狗巡检平台 +VITE_APP_TITLE = 巡检精灵综合管理平台 # 接口请求地址,会设置到 axios 的 baseURL 参数上 VITE_APP_API_BASEURL = http://111.198.10.15:11638 diff --git a/.env.production b/.env.production index 10cfdb7..da68e78 100644 --- a/.env.production +++ b/.env.production @@ -1,7 +1,7 @@ NODE_ENV = production # 页面标题 -VITE_APP_TITLE = 感知数据汇聚平台 +VITE_APP_TITLE = 巡检精灵综合管理平台 # 接口请求地址,会设置到 axios 的 baseURL 参数上 VITE_APP_API_BASEURL = http://111.198.10.15:11638 # 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空 diff --git a/README.md b/README.md index baadcb1..1cc1ffa 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ -

机器狗巡检平台

+

巡检精灵综合管理平台

-

机器狗巡检平台

+

巡检精灵综合管理平台

## 简要说明

diff --git a/package.json b/package.json index a6745d6..b8f7e9c 100644 --- a/package.json +++ b/package.json @@ -45,6 +45,7 @@ "print-js": "^1.6.0", "qrcode": "^1.5.1", "qs": "^6.11.0", + "three": "^0.173.0", "tinymce": "^6.2.0", "vue": "^3.2.44", "vue-pdf-embed": "^1.1.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 860f410..351badd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -57,6 +57,7 @@ stylelint-config-standard-vue: ^1.0.0 stylelint-scss: ^4.3.0 svgo: ^3.0.0 + three: ^0.173.0 tinymce: ^6.2.0 typescript: ^4.8.4 unplugin-auto-import: ^0.11.4 @@ -107,6 +108,7 @@ print-js: 1.6.0 qrcode: 1.5.4 qs: 6.13.1 + three: 0.173.0 tinymce: 6.8.5 vue: 3.5.13_typescript@4.9.5 vue-pdf-embed: 1.2.1_vue@3.5.13 @@ -8623,6 +8625,10 @@ resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} dev: true + /three/0.173.0: + resolution: {integrity: sha512-AUwVmViIEUgBwxJJ7stnF0NkPpZxx1aZ6WiAbQ/Qq61h6I9UR4grXtZDmO8mnlaNORhHnIBlXJ1uBxILEKuVyw==} + dev: false + /through/2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} dev: true diff --git a/public/4.pcd b/public/4.pcd new file mode 100644 index 0000000..a45a92e --- /dev/null +++ b/public/4.pcd Binary files differ diff --git a/public/config/config.json b/public/config/config.json index 0c02bb3..e5cba39 100644 --- a/public/config/config.json +++ b/public/config/config.json @@ -1,5 +1,5 @@ { - "title":"燃气物联感知平台", + "title":"巡检精灵综合管理平台", "baseUrl": "http://111.198.10.15:11645", "securityJsCode": "56bf9671d4b3517d294caec4751889a1", "JsKey": "40849e82b4e33f5255b17372520c954d", diff --git a/public/finalCloud.pcd b/public/finalCloud.pcd new file mode 100644 index 0000000..b07d7d8 --- /dev/null +++ b/public/finalCloud.pcd Binary files differ diff --git a/src/assets/icons/icon-patrol.svg b/src/assets/icons/icon-patrol.svg new file mode 100644 index 0000000..8619714 --- /dev/null +++ b/src/assets/icons/icon-patrol.svg @@ -0,0 +1 @@ + diff --git a/src/assets/tempImages/2.jpg b/src/assets/tempImages/2.jpg new file mode 100644 index 0000000..23e16e8 --- /dev/null +++ b/src/assets/tempImages/2.jpg Binary files differ diff --git a/src/assets/tempImages/control.png b/src/assets/tempImages/control.png new file mode 100644 index 0000000..27cb0a6 --- /dev/null +++ b/src/assets/tempImages/control.png Binary files differ diff --git a/src/assets/tempImages/dog-arm.jpg b/src/assets/tempImages/dog-arm.jpg new file mode 100644 index 0000000..53c25df --- /dev/null +++ b/src/assets/tempImages/dog-arm.jpg Binary files differ diff --git a/src/assets/tempImages/dog-picture.jpg b/src/assets/tempImages/dog-picture.jpg new file mode 100644 index 0000000..6d37211 --- /dev/null +++ b/src/assets/tempImages/dog-picture.jpg Binary files differ diff --git a/src/assets/tempImages/dog.png b/src/assets/tempImages/dog.png new file mode 100644 index 0000000..1672a81 --- /dev/null +++ b/src/assets/tempImages/dog.png Binary files differ diff --git a/src/assets/tempImages/icon-link.svg b/src/assets/tempImages/icon-link.svg new file mode 100644 index 0000000..28707bb --- /dev/null +++ b/src/assets/tempImages/icon-link.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/assets/tempImages/map.png b/src/assets/tempImages/map.png new file mode 100644 index 0000000..0530d85 --- /dev/null +++ b/src/assets/tempImages/map.png Binary files differ diff --git a/src/assets/tempImages/point.png b/src/assets/tempImages/point.png new file mode 100644 index 0000000..3a8be1f --- /dev/null +++ b/src/assets/tempImages/point.png Binary files differ diff --git a/src/assets/tempImages/sgjc.jpg b/src/assets/tempImages/sgjc.jpg new file mode 100644 index 0000000..a1c25e0 --- /dev/null +++ b/src/assets/tempImages/sgjc.jpg Binary files differ diff --git a/src/assets/tempImages/tyx.jpg b/src/assets/tempImages/tyx.jpg new file mode 100644 index 0000000..6d37211 --- /dev/null +++ b/src/assets/tempImages/tyx.jpg Binary files differ diff --git a/src/assets/tempImages/yrg.jpg b/src/assets/tempImages/yrg.jpg new file mode 100644 index 0000000..071a185 --- /dev/null +++ b/src/assets/tempImages/yrg.jpg Binary files differ diff --git a/.env.development b/.env.development index 3aaa28f..ba1ebf1 100644 --- a/.env.development +++ b/.env.development @@ -1,5 +1,5 @@ # 页面标题 -VITE_APP_TITLE = 机器狗巡检平台 +VITE_APP_TITLE = 巡检精灵综合管理平台 # 接口请求地址,会设置到 axios 的 baseURL 参数上 VITE_APP_API_BASEURL = http://111.198.10.15:11638 diff --git a/.env.production b/.env.production index 10cfdb7..da68e78 100644 --- a/.env.production +++ b/.env.production @@ -1,7 +1,7 @@ NODE_ENV = production # 页面标题 -VITE_APP_TITLE = 感知数据汇聚平台 +VITE_APP_TITLE = 巡检精灵综合管理平台 # 接口请求地址,会设置到 axios 的 baseURL 参数上 VITE_APP_API_BASEURL = http://111.198.10.15:11638 # 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空 diff --git a/README.md b/README.md index baadcb1..1cc1ffa 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ -

机器狗巡检平台

+

巡检精灵综合管理平台

-

机器狗巡检平台

+

巡检精灵综合管理平台

## 简要说明

diff --git a/package.json b/package.json index a6745d6..b8f7e9c 100644 --- a/package.json +++ b/package.json @@ -45,6 +45,7 @@ "print-js": "^1.6.0", "qrcode": "^1.5.1", "qs": "^6.11.0", + "three": "^0.173.0", "tinymce": "^6.2.0", "vue": "^3.2.44", "vue-pdf-embed": "^1.1.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 860f410..351badd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -57,6 +57,7 @@ stylelint-config-standard-vue: ^1.0.0 stylelint-scss: ^4.3.0 svgo: ^3.0.0 + three: ^0.173.0 tinymce: ^6.2.0 typescript: ^4.8.4 unplugin-auto-import: ^0.11.4 @@ -107,6 +108,7 @@ print-js: 1.6.0 qrcode: 1.5.4 qs: 6.13.1 + three: 0.173.0 tinymce: 6.8.5 vue: 3.5.13_typescript@4.9.5 vue-pdf-embed: 1.2.1_vue@3.5.13 @@ -8623,6 +8625,10 @@ resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} dev: true + /three/0.173.0: + resolution: {integrity: sha512-AUwVmViIEUgBwxJJ7stnF0NkPpZxx1aZ6WiAbQ/Qq61h6I9UR4grXtZDmO8mnlaNORhHnIBlXJ1uBxILEKuVyw==} + dev: false + /through/2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} dev: true diff --git a/public/4.pcd b/public/4.pcd new file mode 100644 index 0000000..a45a92e --- /dev/null +++ b/public/4.pcd Binary files differ diff --git a/public/config/config.json b/public/config/config.json index 0c02bb3..e5cba39 100644 --- a/public/config/config.json +++ b/public/config/config.json @@ -1,5 +1,5 @@ { - "title":"燃气物联感知平台", + "title":"巡检精灵综合管理平台", "baseUrl": "http://111.198.10.15:11645", "securityJsCode": "56bf9671d4b3517d294caec4751889a1", "JsKey": "40849e82b4e33f5255b17372520c954d", diff --git a/public/finalCloud.pcd b/public/finalCloud.pcd new file mode 100644 index 0000000..b07d7d8 --- /dev/null +++ b/public/finalCloud.pcd Binary files differ diff --git a/src/assets/icons/icon-patrol.svg b/src/assets/icons/icon-patrol.svg new file mode 100644 index 0000000..8619714 --- /dev/null +++ b/src/assets/icons/icon-patrol.svg @@ -0,0 +1 @@ + diff --git a/src/assets/tempImages/2.jpg b/src/assets/tempImages/2.jpg new file mode 100644 index 0000000..23e16e8 --- /dev/null +++ b/src/assets/tempImages/2.jpg Binary files differ diff --git a/src/assets/tempImages/control.png b/src/assets/tempImages/control.png new file mode 100644 index 0000000..27cb0a6 --- /dev/null +++ b/src/assets/tempImages/control.png Binary files differ diff --git a/src/assets/tempImages/dog-arm.jpg b/src/assets/tempImages/dog-arm.jpg new file mode 100644 index 0000000..53c25df --- /dev/null +++ b/src/assets/tempImages/dog-arm.jpg Binary files differ diff --git a/src/assets/tempImages/dog-picture.jpg b/src/assets/tempImages/dog-picture.jpg new file mode 100644 index 0000000..6d37211 --- /dev/null +++ b/src/assets/tempImages/dog-picture.jpg Binary files differ diff --git a/src/assets/tempImages/dog.png b/src/assets/tempImages/dog.png new file mode 100644 index 0000000..1672a81 --- /dev/null +++ b/src/assets/tempImages/dog.png Binary files differ diff --git a/src/assets/tempImages/icon-link.svg b/src/assets/tempImages/icon-link.svg new file mode 100644 index 0000000..28707bb --- /dev/null +++ b/src/assets/tempImages/icon-link.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/assets/tempImages/map.png b/src/assets/tempImages/map.png new file mode 100644 index 0000000..0530d85 --- /dev/null +++ b/src/assets/tempImages/map.png Binary files differ diff --git a/src/assets/tempImages/point.png b/src/assets/tempImages/point.png new file mode 100644 index 0000000..3a8be1f --- /dev/null +++ b/src/assets/tempImages/point.png Binary files differ diff --git a/src/assets/tempImages/sgjc.jpg b/src/assets/tempImages/sgjc.jpg new file mode 100644 index 0000000..a1c25e0 --- /dev/null +++ b/src/assets/tempImages/sgjc.jpg Binary files differ diff --git a/src/assets/tempImages/tyx.jpg b/src/assets/tempImages/tyx.jpg new file mode 100644 index 0000000..6d37211 --- /dev/null +++ b/src/assets/tempImages/tyx.jpg Binary files differ diff --git a/src/assets/tempImages/yrg.jpg b/src/assets/tempImages/yrg.jpg new file mode 100644 index 0000000..071a185 --- /dev/null +++ b/src/assets/tempImages/yrg.jpg Binary files differ diff --git a/src/components.d.ts b/src/components.d.ts index f651253..a0817c2 100644 --- a/src/components.d.ts +++ b/src/components.d.ts @@ -72,6 +72,7 @@ SvgIcon: typeof import('./components/SvgIcon/index.vue')['default'] SystemInfo: typeof import('./components/SystemInfo/index.vue')['default'] TableContainer: typeof import('./components/TableContainer/index.vue')['default'] + Threejs: typeof import('./components/threejs/index.vue')['default'] Trend: typeof import('./components/Trend/index.vue')['default'] } } diff --git a/.env.development b/.env.development index 3aaa28f..ba1ebf1 100644 --- a/.env.development +++ b/.env.development @@ -1,5 +1,5 @@ # 页面标题 -VITE_APP_TITLE = 机器狗巡检平台 +VITE_APP_TITLE = 巡检精灵综合管理平台 # 接口请求地址,会设置到 axios 的 baseURL 参数上 VITE_APP_API_BASEURL = http://111.198.10.15:11638 diff --git a/.env.production b/.env.production index 10cfdb7..da68e78 100644 --- a/.env.production +++ b/.env.production @@ -1,7 +1,7 @@ NODE_ENV = production # 页面标题 -VITE_APP_TITLE = 感知数据汇聚平台 +VITE_APP_TITLE = 巡检精灵综合管理平台 # 接口请求地址,会设置到 axios 的 baseURL 参数上 VITE_APP_API_BASEURL = http://111.198.10.15:11638 # 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空 diff --git a/README.md b/README.md index baadcb1..1cc1ffa 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ -

机器狗巡检平台

+

巡检精灵综合管理平台

-

机器狗巡检平台

+

巡检精灵综合管理平台

## 简要说明

diff --git a/package.json b/package.json index a6745d6..b8f7e9c 100644 --- a/package.json +++ b/package.json @@ -45,6 +45,7 @@ "print-js": "^1.6.0", "qrcode": "^1.5.1", "qs": "^6.11.0", + "three": "^0.173.0", "tinymce": "^6.2.0", "vue": "^3.2.44", "vue-pdf-embed": "^1.1.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 860f410..351badd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -57,6 +57,7 @@ stylelint-config-standard-vue: ^1.0.0 stylelint-scss: ^4.3.0 svgo: ^3.0.0 + three: ^0.173.0 tinymce: ^6.2.0 typescript: ^4.8.4 unplugin-auto-import: ^0.11.4 @@ -107,6 +108,7 @@ print-js: 1.6.0 qrcode: 1.5.4 qs: 6.13.1 + three: 0.173.0 tinymce: 6.8.5 vue: 3.5.13_typescript@4.9.5 vue-pdf-embed: 1.2.1_vue@3.5.13 @@ -8623,6 +8625,10 @@ resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} dev: true + /three/0.173.0: + resolution: {integrity: sha512-AUwVmViIEUgBwxJJ7stnF0NkPpZxx1aZ6WiAbQ/Qq61h6I9UR4grXtZDmO8mnlaNORhHnIBlXJ1uBxILEKuVyw==} + dev: false + /through/2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} dev: true diff --git a/public/4.pcd b/public/4.pcd new file mode 100644 index 0000000..a45a92e --- /dev/null +++ b/public/4.pcd Binary files differ diff --git a/public/config/config.json b/public/config/config.json index 0c02bb3..e5cba39 100644 --- a/public/config/config.json +++ b/public/config/config.json @@ -1,5 +1,5 @@ { - "title":"燃气物联感知平台", + "title":"巡检精灵综合管理平台", "baseUrl": "http://111.198.10.15:11645", "securityJsCode": "56bf9671d4b3517d294caec4751889a1", "JsKey": "40849e82b4e33f5255b17372520c954d", diff --git a/public/finalCloud.pcd b/public/finalCloud.pcd new file mode 100644 index 0000000..b07d7d8 --- /dev/null +++ b/public/finalCloud.pcd Binary files differ diff --git a/src/assets/icons/icon-patrol.svg b/src/assets/icons/icon-patrol.svg new file mode 100644 index 0000000..8619714 --- /dev/null +++ b/src/assets/icons/icon-patrol.svg @@ -0,0 +1 @@ + diff --git a/src/assets/tempImages/2.jpg b/src/assets/tempImages/2.jpg new file mode 100644 index 0000000..23e16e8 --- /dev/null +++ b/src/assets/tempImages/2.jpg Binary files differ diff --git a/src/assets/tempImages/control.png b/src/assets/tempImages/control.png new file mode 100644 index 0000000..27cb0a6 --- /dev/null +++ b/src/assets/tempImages/control.png Binary files differ diff --git a/src/assets/tempImages/dog-arm.jpg b/src/assets/tempImages/dog-arm.jpg new file mode 100644 index 0000000..53c25df --- /dev/null +++ b/src/assets/tempImages/dog-arm.jpg Binary files differ diff --git a/src/assets/tempImages/dog-picture.jpg b/src/assets/tempImages/dog-picture.jpg new file mode 100644 index 0000000..6d37211 --- /dev/null +++ b/src/assets/tempImages/dog-picture.jpg Binary files differ diff --git a/src/assets/tempImages/dog.png b/src/assets/tempImages/dog.png new file mode 100644 index 0000000..1672a81 --- /dev/null +++ b/src/assets/tempImages/dog.png Binary files differ diff --git a/src/assets/tempImages/icon-link.svg b/src/assets/tempImages/icon-link.svg new file mode 100644 index 0000000..28707bb --- /dev/null +++ b/src/assets/tempImages/icon-link.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/assets/tempImages/map.png b/src/assets/tempImages/map.png new file mode 100644 index 0000000..0530d85 --- /dev/null +++ b/src/assets/tempImages/map.png Binary files differ diff --git a/src/assets/tempImages/point.png b/src/assets/tempImages/point.png new file mode 100644 index 0000000..3a8be1f --- /dev/null +++ b/src/assets/tempImages/point.png Binary files differ diff --git a/src/assets/tempImages/sgjc.jpg b/src/assets/tempImages/sgjc.jpg new file mode 100644 index 0000000..a1c25e0 --- /dev/null +++ b/src/assets/tempImages/sgjc.jpg Binary files differ diff --git a/src/assets/tempImages/tyx.jpg b/src/assets/tempImages/tyx.jpg new file mode 100644 index 0000000..6d37211 --- /dev/null +++ b/src/assets/tempImages/tyx.jpg Binary files differ diff --git a/src/assets/tempImages/yrg.jpg b/src/assets/tempImages/yrg.jpg new file mode 100644 index 0000000..071a185 --- /dev/null +++ b/src/assets/tempImages/yrg.jpg Binary files differ diff --git a/src/components.d.ts b/src/components.d.ts index f651253..a0817c2 100644 --- a/src/components.d.ts +++ b/src/components.d.ts @@ -72,6 +72,7 @@ SvgIcon: typeof import('./components/SvgIcon/index.vue')['default'] SystemInfo: typeof import('./components/SystemInfo/index.vue')['default'] TableContainer: typeof import('./components/TableContainer/index.vue')['default'] + Threejs: typeof import('./components/threejs/index.vue')['default'] Trend: typeof import('./components/Trend/index.vue')['default'] } } diff --git a/src/components/NormalTable/index.vue b/src/components/NormalTable/index.vue index 63a2160..bf0b007 100644 --- a/src/components/NormalTable/index.vue +++ b/src/components/NormalTable/index.vue @@ -481,5 +481,10 @@ .el-radio__label { display: none !important; } + // 单元格样式 + .el-table__cell { + position: static !important; // 解决el-image 和 el-table冲突层级冲突问题 + z-index: 99999999; + } } diff --git a/.env.development b/.env.development index 3aaa28f..ba1ebf1 100644 --- a/.env.development +++ b/.env.development @@ -1,5 +1,5 @@ # 页面标题 -VITE_APP_TITLE = 机器狗巡检平台 +VITE_APP_TITLE = 巡检精灵综合管理平台 # 接口请求地址,会设置到 axios 的 baseURL 参数上 VITE_APP_API_BASEURL = http://111.198.10.15:11638 diff --git a/.env.production b/.env.production index 10cfdb7..da68e78 100644 --- a/.env.production +++ b/.env.production @@ -1,7 +1,7 @@ NODE_ENV = production # 页面标题 -VITE_APP_TITLE = 感知数据汇聚平台 +VITE_APP_TITLE = 巡检精灵综合管理平台 # 接口请求地址,会设置到 axios 的 baseURL 参数上 VITE_APP_API_BASEURL = http://111.198.10.15:11638 # 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空 diff --git a/README.md b/README.md index baadcb1..1cc1ffa 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ -

机器狗巡检平台

+

巡检精灵综合管理平台

-

机器狗巡检平台

+

巡检精灵综合管理平台

## 简要说明

diff --git a/package.json b/package.json index a6745d6..b8f7e9c 100644 --- a/package.json +++ b/package.json @@ -45,6 +45,7 @@ "print-js": "^1.6.0", "qrcode": "^1.5.1", "qs": "^6.11.0", + "three": "^0.173.0", "tinymce": "^6.2.0", "vue": "^3.2.44", "vue-pdf-embed": "^1.1.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 860f410..351badd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -57,6 +57,7 @@ stylelint-config-standard-vue: ^1.0.0 stylelint-scss: ^4.3.0 svgo: ^3.0.0 + three: ^0.173.0 tinymce: ^6.2.0 typescript: ^4.8.4 unplugin-auto-import: ^0.11.4 @@ -107,6 +108,7 @@ print-js: 1.6.0 qrcode: 1.5.4 qs: 6.13.1 + three: 0.173.0 tinymce: 6.8.5 vue: 3.5.13_typescript@4.9.5 vue-pdf-embed: 1.2.1_vue@3.5.13 @@ -8623,6 +8625,10 @@ resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} dev: true + /three/0.173.0: + resolution: {integrity: sha512-AUwVmViIEUgBwxJJ7stnF0NkPpZxx1aZ6WiAbQ/Qq61h6I9UR4grXtZDmO8mnlaNORhHnIBlXJ1uBxILEKuVyw==} + dev: false + /through/2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} dev: true diff --git a/public/4.pcd b/public/4.pcd new file mode 100644 index 0000000..a45a92e --- /dev/null +++ b/public/4.pcd Binary files differ diff --git a/public/config/config.json b/public/config/config.json index 0c02bb3..e5cba39 100644 --- a/public/config/config.json +++ b/public/config/config.json @@ -1,5 +1,5 @@ { - "title":"燃气物联感知平台", + "title":"巡检精灵综合管理平台", "baseUrl": "http://111.198.10.15:11645", "securityJsCode": "56bf9671d4b3517d294caec4751889a1", "JsKey": "40849e82b4e33f5255b17372520c954d", diff --git a/public/finalCloud.pcd b/public/finalCloud.pcd new file mode 100644 index 0000000..b07d7d8 --- /dev/null +++ b/public/finalCloud.pcd Binary files differ diff --git a/src/assets/icons/icon-patrol.svg b/src/assets/icons/icon-patrol.svg new file mode 100644 index 0000000..8619714 --- /dev/null +++ b/src/assets/icons/icon-patrol.svg @@ -0,0 +1 @@ + diff --git a/src/assets/tempImages/2.jpg b/src/assets/tempImages/2.jpg new file mode 100644 index 0000000..23e16e8 --- /dev/null +++ b/src/assets/tempImages/2.jpg Binary files differ diff --git a/src/assets/tempImages/control.png b/src/assets/tempImages/control.png new file mode 100644 index 0000000..27cb0a6 --- /dev/null +++ b/src/assets/tempImages/control.png Binary files differ diff --git a/src/assets/tempImages/dog-arm.jpg b/src/assets/tempImages/dog-arm.jpg new file mode 100644 index 0000000..53c25df --- /dev/null +++ b/src/assets/tempImages/dog-arm.jpg Binary files differ diff --git a/src/assets/tempImages/dog-picture.jpg b/src/assets/tempImages/dog-picture.jpg new file mode 100644 index 0000000..6d37211 --- /dev/null +++ b/src/assets/tempImages/dog-picture.jpg Binary files differ diff --git a/src/assets/tempImages/dog.png b/src/assets/tempImages/dog.png new file mode 100644 index 0000000..1672a81 --- /dev/null +++ b/src/assets/tempImages/dog.png Binary files differ diff --git a/src/assets/tempImages/icon-link.svg b/src/assets/tempImages/icon-link.svg new file mode 100644 index 0000000..28707bb --- /dev/null +++ b/src/assets/tempImages/icon-link.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/assets/tempImages/map.png b/src/assets/tempImages/map.png new file mode 100644 index 0000000..0530d85 --- /dev/null +++ b/src/assets/tempImages/map.png Binary files differ diff --git a/src/assets/tempImages/point.png b/src/assets/tempImages/point.png new file mode 100644 index 0000000..3a8be1f --- /dev/null +++ b/src/assets/tempImages/point.png Binary files differ diff --git a/src/assets/tempImages/sgjc.jpg b/src/assets/tempImages/sgjc.jpg new file mode 100644 index 0000000..a1c25e0 --- /dev/null +++ b/src/assets/tempImages/sgjc.jpg Binary files differ diff --git a/src/assets/tempImages/tyx.jpg b/src/assets/tempImages/tyx.jpg new file mode 100644 index 0000000..6d37211 --- /dev/null +++ b/src/assets/tempImages/tyx.jpg Binary files differ diff --git a/src/assets/tempImages/yrg.jpg b/src/assets/tempImages/yrg.jpg new file mode 100644 index 0000000..071a185 --- /dev/null +++ b/src/assets/tempImages/yrg.jpg Binary files differ diff --git a/src/components.d.ts b/src/components.d.ts index f651253..a0817c2 100644 --- a/src/components.d.ts +++ b/src/components.d.ts @@ -72,6 +72,7 @@ SvgIcon: typeof import('./components/SvgIcon/index.vue')['default'] SystemInfo: typeof import('./components/SystemInfo/index.vue')['default'] TableContainer: typeof import('./components/TableContainer/index.vue')['default'] + Threejs: typeof import('./components/threejs/index.vue')['default'] Trend: typeof import('./components/Trend/index.vue')['default'] } } diff --git a/src/components/NormalTable/index.vue b/src/components/NormalTable/index.vue index 63a2160..bf0b007 100644 --- a/src/components/NormalTable/index.vue +++ b/src/components/NormalTable/index.vue @@ -481,5 +481,10 @@ .el-radio__label { display: none !important; } + // 单元格样式 + .el-table__cell { + position: static !important; // 解决el-image 和 el-table冲突层级冲突问题 + z-index: 99999999; + } } diff --git a/src/components/threejs/4.pcd b/src/components/threejs/4.pcd new file mode 100644 index 0000000..a45a92e --- /dev/null +++ b/src/components/threejs/4.pcd Binary files differ diff --git a/.env.development b/.env.development index 3aaa28f..ba1ebf1 100644 --- a/.env.development +++ b/.env.development @@ -1,5 +1,5 @@ # 页面标题 -VITE_APP_TITLE = 机器狗巡检平台 +VITE_APP_TITLE = 巡检精灵综合管理平台 # 接口请求地址,会设置到 axios 的 baseURL 参数上 VITE_APP_API_BASEURL = http://111.198.10.15:11638 diff --git a/.env.production b/.env.production index 10cfdb7..da68e78 100644 --- a/.env.production +++ b/.env.production @@ -1,7 +1,7 @@ NODE_ENV = production # 页面标题 -VITE_APP_TITLE = 感知数据汇聚平台 +VITE_APP_TITLE = 巡检精灵综合管理平台 # 接口请求地址,会设置到 axios 的 baseURL 参数上 VITE_APP_API_BASEURL = http://111.198.10.15:11638 # 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空 diff --git a/README.md b/README.md index baadcb1..1cc1ffa 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ -

机器狗巡检平台

+

巡检精灵综合管理平台

-

机器狗巡检平台

+

巡检精灵综合管理平台

## 简要说明

diff --git a/package.json b/package.json index a6745d6..b8f7e9c 100644 --- a/package.json +++ b/package.json @@ -45,6 +45,7 @@ "print-js": "^1.6.0", "qrcode": "^1.5.1", "qs": "^6.11.0", + "three": "^0.173.0", "tinymce": "^6.2.0", "vue": "^3.2.44", "vue-pdf-embed": "^1.1.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 860f410..351badd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -57,6 +57,7 @@ stylelint-config-standard-vue: ^1.0.0 stylelint-scss: ^4.3.0 svgo: ^3.0.0 + three: ^0.173.0 tinymce: ^6.2.0 typescript: ^4.8.4 unplugin-auto-import: ^0.11.4 @@ -107,6 +108,7 @@ print-js: 1.6.0 qrcode: 1.5.4 qs: 6.13.1 + three: 0.173.0 tinymce: 6.8.5 vue: 3.5.13_typescript@4.9.5 vue-pdf-embed: 1.2.1_vue@3.5.13 @@ -8623,6 +8625,10 @@ resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} dev: true + /three/0.173.0: + resolution: {integrity: sha512-AUwVmViIEUgBwxJJ7stnF0NkPpZxx1aZ6WiAbQ/Qq61h6I9UR4grXtZDmO8mnlaNORhHnIBlXJ1uBxILEKuVyw==} + dev: false + /through/2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} dev: true diff --git a/public/4.pcd b/public/4.pcd new file mode 100644 index 0000000..a45a92e --- /dev/null +++ b/public/4.pcd Binary files differ diff --git a/public/config/config.json b/public/config/config.json index 0c02bb3..e5cba39 100644 --- a/public/config/config.json +++ b/public/config/config.json @@ -1,5 +1,5 @@ { - "title":"燃气物联感知平台", + "title":"巡检精灵综合管理平台", "baseUrl": "http://111.198.10.15:11645", "securityJsCode": "56bf9671d4b3517d294caec4751889a1", "JsKey": "40849e82b4e33f5255b17372520c954d", diff --git a/public/finalCloud.pcd b/public/finalCloud.pcd new file mode 100644 index 0000000..b07d7d8 --- /dev/null +++ b/public/finalCloud.pcd Binary files differ diff --git a/src/assets/icons/icon-patrol.svg b/src/assets/icons/icon-patrol.svg new file mode 100644 index 0000000..8619714 --- /dev/null +++ b/src/assets/icons/icon-patrol.svg @@ -0,0 +1 @@ + diff --git a/src/assets/tempImages/2.jpg b/src/assets/tempImages/2.jpg new file mode 100644 index 0000000..23e16e8 --- /dev/null +++ b/src/assets/tempImages/2.jpg Binary files differ diff --git a/src/assets/tempImages/control.png b/src/assets/tempImages/control.png new file mode 100644 index 0000000..27cb0a6 --- /dev/null +++ b/src/assets/tempImages/control.png Binary files differ diff --git a/src/assets/tempImages/dog-arm.jpg b/src/assets/tempImages/dog-arm.jpg new file mode 100644 index 0000000..53c25df --- /dev/null +++ b/src/assets/tempImages/dog-arm.jpg Binary files differ diff --git a/src/assets/tempImages/dog-picture.jpg b/src/assets/tempImages/dog-picture.jpg new file mode 100644 index 0000000..6d37211 --- /dev/null +++ b/src/assets/tempImages/dog-picture.jpg Binary files differ diff --git a/src/assets/tempImages/dog.png b/src/assets/tempImages/dog.png new file mode 100644 index 0000000..1672a81 --- /dev/null +++ b/src/assets/tempImages/dog.png Binary files differ diff --git a/src/assets/tempImages/icon-link.svg b/src/assets/tempImages/icon-link.svg new file mode 100644 index 0000000..28707bb --- /dev/null +++ b/src/assets/tempImages/icon-link.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/assets/tempImages/map.png b/src/assets/tempImages/map.png new file mode 100644 index 0000000..0530d85 --- /dev/null +++ b/src/assets/tempImages/map.png Binary files differ diff --git a/src/assets/tempImages/point.png b/src/assets/tempImages/point.png new file mode 100644 index 0000000..3a8be1f --- /dev/null +++ b/src/assets/tempImages/point.png Binary files differ diff --git a/src/assets/tempImages/sgjc.jpg b/src/assets/tempImages/sgjc.jpg new file mode 100644 index 0000000..a1c25e0 --- /dev/null +++ b/src/assets/tempImages/sgjc.jpg Binary files differ diff --git a/src/assets/tempImages/tyx.jpg b/src/assets/tempImages/tyx.jpg new file mode 100644 index 0000000..6d37211 --- /dev/null +++ b/src/assets/tempImages/tyx.jpg Binary files differ diff --git a/src/assets/tempImages/yrg.jpg b/src/assets/tempImages/yrg.jpg new file mode 100644 index 0000000..071a185 --- /dev/null +++ b/src/assets/tempImages/yrg.jpg Binary files differ diff --git a/src/components.d.ts b/src/components.d.ts index f651253..a0817c2 100644 --- a/src/components.d.ts +++ b/src/components.d.ts @@ -72,6 +72,7 @@ SvgIcon: typeof import('./components/SvgIcon/index.vue')['default'] SystemInfo: typeof import('./components/SystemInfo/index.vue')['default'] TableContainer: typeof import('./components/TableContainer/index.vue')['default'] + Threejs: typeof import('./components/threejs/index.vue')['default'] Trend: typeof import('./components/Trend/index.vue')['default'] } } diff --git a/src/components/NormalTable/index.vue b/src/components/NormalTable/index.vue index 63a2160..bf0b007 100644 --- a/src/components/NormalTable/index.vue +++ b/src/components/NormalTable/index.vue @@ -481,5 +481,10 @@ .el-radio__label { display: none !important; } + // 单元格样式 + .el-table__cell { + position: static !important; // 解决el-image 和 el-table冲突层级冲突问题 + z-index: 99999999; + } } diff --git a/src/components/threejs/4.pcd b/src/components/threejs/4.pcd new file mode 100644 index 0000000..a45a92e --- /dev/null +++ b/src/components/threejs/4.pcd Binary files differ diff --git a/src/components/threejs/finalCloud.pcd b/src/components/threejs/finalCloud.pcd new file mode 100644 index 0000000..b07d7d8 --- /dev/null +++ b/src/components/threejs/finalCloud.pcd Binary files differ diff --git a/.env.development b/.env.development index 3aaa28f..ba1ebf1 100644 --- a/.env.development +++ b/.env.development @@ -1,5 +1,5 @@ # 页面标题 -VITE_APP_TITLE = 机器狗巡检平台 +VITE_APP_TITLE = 巡检精灵综合管理平台 # 接口请求地址,会设置到 axios 的 baseURL 参数上 VITE_APP_API_BASEURL = http://111.198.10.15:11638 diff --git a/.env.production b/.env.production index 10cfdb7..da68e78 100644 --- a/.env.production +++ b/.env.production @@ -1,7 +1,7 @@ NODE_ENV = production # 页面标题 -VITE_APP_TITLE = 感知数据汇聚平台 +VITE_APP_TITLE = 巡检精灵综合管理平台 # 接口请求地址,会设置到 axios 的 baseURL 参数上 VITE_APP_API_BASEURL = http://111.198.10.15:11638 # 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空 diff --git a/README.md b/README.md index baadcb1..1cc1ffa 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ -

机器狗巡检平台

+

巡检精灵综合管理平台

-

机器狗巡检平台

+

巡检精灵综合管理平台

## 简要说明

diff --git a/package.json b/package.json index a6745d6..b8f7e9c 100644 --- a/package.json +++ b/package.json @@ -45,6 +45,7 @@ "print-js": "^1.6.0", "qrcode": "^1.5.1", "qs": "^6.11.0", + "three": "^0.173.0", "tinymce": "^6.2.0", "vue": "^3.2.44", "vue-pdf-embed": "^1.1.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 860f410..351badd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -57,6 +57,7 @@ stylelint-config-standard-vue: ^1.0.0 stylelint-scss: ^4.3.0 svgo: ^3.0.0 + three: ^0.173.0 tinymce: ^6.2.0 typescript: ^4.8.4 unplugin-auto-import: ^0.11.4 @@ -107,6 +108,7 @@ print-js: 1.6.0 qrcode: 1.5.4 qs: 6.13.1 + three: 0.173.0 tinymce: 6.8.5 vue: 3.5.13_typescript@4.9.5 vue-pdf-embed: 1.2.1_vue@3.5.13 @@ -8623,6 +8625,10 @@ resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} dev: true + /three/0.173.0: + resolution: {integrity: sha512-AUwVmViIEUgBwxJJ7stnF0NkPpZxx1aZ6WiAbQ/Qq61h6I9UR4grXtZDmO8mnlaNORhHnIBlXJ1uBxILEKuVyw==} + dev: false + /through/2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} dev: true diff --git a/public/4.pcd b/public/4.pcd new file mode 100644 index 0000000..a45a92e --- /dev/null +++ b/public/4.pcd Binary files differ diff --git a/public/config/config.json b/public/config/config.json index 0c02bb3..e5cba39 100644 --- a/public/config/config.json +++ b/public/config/config.json @@ -1,5 +1,5 @@ { - "title":"燃气物联感知平台", + "title":"巡检精灵综合管理平台", "baseUrl": "http://111.198.10.15:11645", "securityJsCode": "56bf9671d4b3517d294caec4751889a1", "JsKey": "40849e82b4e33f5255b17372520c954d", diff --git a/public/finalCloud.pcd b/public/finalCloud.pcd new file mode 100644 index 0000000..b07d7d8 --- /dev/null +++ b/public/finalCloud.pcd Binary files differ diff --git a/src/assets/icons/icon-patrol.svg b/src/assets/icons/icon-patrol.svg new file mode 100644 index 0000000..8619714 --- /dev/null +++ b/src/assets/icons/icon-patrol.svg @@ -0,0 +1 @@ + diff --git a/src/assets/tempImages/2.jpg b/src/assets/tempImages/2.jpg new file mode 100644 index 0000000..23e16e8 --- /dev/null +++ b/src/assets/tempImages/2.jpg Binary files differ diff --git a/src/assets/tempImages/control.png b/src/assets/tempImages/control.png new file mode 100644 index 0000000..27cb0a6 --- /dev/null +++ b/src/assets/tempImages/control.png Binary files differ diff --git a/src/assets/tempImages/dog-arm.jpg b/src/assets/tempImages/dog-arm.jpg new file mode 100644 index 0000000..53c25df --- /dev/null +++ b/src/assets/tempImages/dog-arm.jpg Binary files differ diff --git a/src/assets/tempImages/dog-picture.jpg b/src/assets/tempImages/dog-picture.jpg new file mode 100644 index 0000000..6d37211 --- /dev/null +++ b/src/assets/tempImages/dog-picture.jpg Binary files differ diff --git a/src/assets/tempImages/dog.png b/src/assets/tempImages/dog.png new file mode 100644 index 0000000..1672a81 --- /dev/null +++ b/src/assets/tempImages/dog.png Binary files differ diff --git a/src/assets/tempImages/icon-link.svg b/src/assets/tempImages/icon-link.svg new file mode 100644 index 0000000..28707bb --- /dev/null +++ b/src/assets/tempImages/icon-link.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/assets/tempImages/map.png b/src/assets/tempImages/map.png new file mode 100644 index 0000000..0530d85 --- /dev/null +++ b/src/assets/tempImages/map.png Binary files differ diff --git a/src/assets/tempImages/point.png b/src/assets/tempImages/point.png new file mode 100644 index 0000000..3a8be1f --- /dev/null +++ b/src/assets/tempImages/point.png Binary files differ diff --git a/src/assets/tempImages/sgjc.jpg b/src/assets/tempImages/sgjc.jpg new file mode 100644 index 0000000..a1c25e0 --- /dev/null +++ b/src/assets/tempImages/sgjc.jpg Binary files differ diff --git a/src/assets/tempImages/tyx.jpg b/src/assets/tempImages/tyx.jpg new file mode 100644 index 0000000..6d37211 --- /dev/null +++ b/src/assets/tempImages/tyx.jpg Binary files differ diff --git a/src/assets/tempImages/yrg.jpg b/src/assets/tempImages/yrg.jpg new file mode 100644 index 0000000..071a185 --- /dev/null +++ b/src/assets/tempImages/yrg.jpg Binary files differ diff --git a/src/components.d.ts b/src/components.d.ts index f651253..a0817c2 100644 --- a/src/components.d.ts +++ b/src/components.d.ts @@ -72,6 +72,7 @@ SvgIcon: typeof import('./components/SvgIcon/index.vue')['default'] SystemInfo: typeof import('./components/SystemInfo/index.vue')['default'] TableContainer: typeof import('./components/TableContainer/index.vue')['default'] + Threejs: typeof import('./components/threejs/index.vue')['default'] Trend: typeof import('./components/Trend/index.vue')['default'] } } diff --git a/src/components/NormalTable/index.vue b/src/components/NormalTable/index.vue index 63a2160..bf0b007 100644 --- a/src/components/NormalTable/index.vue +++ b/src/components/NormalTable/index.vue @@ -481,5 +481,10 @@ .el-radio__label { display: none !important; } + // 单元格样式 + .el-table__cell { + position: static !important; // 解决el-image 和 el-table冲突层级冲突问题 + z-index: 99999999; + } } diff --git a/src/components/threejs/4.pcd b/src/components/threejs/4.pcd new file mode 100644 index 0000000..a45a92e --- /dev/null +++ b/src/components/threejs/4.pcd Binary files differ diff --git a/src/components/threejs/finalCloud.pcd b/src/components/threejs/finalCloud.pcd new file mode 100644 index 0000000..b07d7d8 --- /dev/null +++ b/src/components/threejs/finalCloud.pcd Binary files differ diff --git a/src/components/threejs/index.vue b/src/components/threejs/index.vue new file mode 100644 index 0000000..08b880c --- /dev/null +++ b/src/components/threejs/index.vue @@ -0,0 +1,52 @@ + + + + + diff --git a/.env.development b/.env.development index 3aaa28f..ba1ebf1 100644 --- a/.env.development +++ b/.env.development @@ -1,5 +1,5 @@ # 页面标题 -VITE_APP_TITLE = 机器狗巡检平台 +VITE_APP_TITLE = 巡检精灵综合管理平台 # 接口请求地址,会设置到 axios 的 baseURL 参数上 VITE_APP_API_BASEURL = http://111.198.10.15:11638 diff --git a/.env.production b/.env.production index 10cfdb7..da68e78 100644 --- a/.env.production +++ b/.env.production @@ -1,7 +1,7 @@ NODE_ENV = production # 页面标题 -VITE_APP_TITLE = 感知数据汇聚平台 +VITE_APP_TITLE = 巡检精灵综合管理平台 # 接口请求地址,会设置到 axios 的 baseURL 参数上 VITE_APP_API_BASEURL = http://111.198.10.15:11638 # 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空 diff --git a/README.md b/README.md index baadcb1..1cc1ffa 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ -

机器狗巡检平台

+

巡检精灵综合管理平台

-

机器狗巡检平台

+

巡检精灵综合管理平台

## 简要说明

diff --git a/package.json b/package.json index a6745d6..b8f7e9c 100644 --- a/package.json +++ b/package.json @@ -45,6 +45,7 @@ "print-js": "^1.6.0", "qrcode": "^1.5.1", "qs": "^6.11.0", + "three": "^0.173.0", "tinymce": "^6.2.0", "vue": "^3.2.44", "vue-pdf-embed": "^1.1.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 860f410..351badd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -57,6 +57,7 @@ stylelint-config-standard-vue: ^1.0.0 stylelint-scss: ^4.3.0 svgo: ^3.0.0 + three: ^0.173.0 tinymce: ^6.2.0 typescript: ^4.8.4 unplugin-auto-import: ^0.11.4 @@ -107,6 +108,7 @@ print-js: 1.6.0 qrcode: 1.5.4 qs: 6.13.1 + three: 0.173.0 tinymce: 6.8.5 vue: 3.5.13_typescript@4.9.5 vue-pdf-embed: 1.2.1_vue@3.5.13 @@ -8623,6 +8625,10 @@ resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} dev: true + /three/0.173.0: + resolution: {integrity: sha512-AUwVmViIEUgBwxJJ7stnF0NkPpZxx1aZ6WiAbQ/Qq61h6I9UR4grXtZDmO8mnlaNORhHnIBlXJ1uBxILEKuVyw==} + dev: false + /through/2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} dev: true diff --git a/public/4.pcd b/public/4.pcd new file mode 100644 index 0000000..a45a92e --- /dev/null +++ b/public/4.pcd Binary files differ diff --git a/public/config/config.json b/public/config/config.json index 0c02bb3..e5cba39 100644 --- a/public/config/config.json +++ b/public/config/config.json @@ -1,5 +1,5 @@ { - "title":"燃气物联感知平台", + "title":"巡检精灵综合管理平台", "baseUrl": "http://111.198.10.15:11645", "securityJsCode": "56bf9671d4b3517d294caec4751889a1", "JsKey": "40849e82b4e33f5255b17372520c954d", diff --git a/public/finalCloud.pcd b/public/finalCloud.pcd new file mode 100644 index 0000000..b07d7d8 --- /dev/null +++ b/public/finalCloud.pcd Binary files differ diff --git a/src/assets/icons/icon-patrol.svg b/src/assets/icons/icon-patrol.svg new file mode 100644 index 0000000..8619714 --- /dev/null +++ b/src/assets/icons/icon-patrol.svg @@ -0,0 +1 @@ + diff --git a/src/assets/tempImages/2.jpg b/src/assets/tempImages/2.jpg new file mode 100644 index 0000000..23e16e8 --- /dev/null +++ b/src/assets/tempImages/2.jpg Binary files differ diff --git a/src/assets/tempImages/control.png b/src/assets/tempImages/control.png new file mode 100644 index 0000000..27cb0a6 --- /dev/null +++ b/src/assets/tempImages/control.png Binary files differ diff --git a/src/assets/tempImages/dog-arm.jpg b/src/assets/tempImages/dog-arm.jpg new file mode 100644 index 0000000..53c25df --- /dev/null +++ b/src/assets/tempImages/dog-arm.jpg Binary files differ diff --git a/src/assets/tempImages/dog-picture.jpg b/src/assets/tempImages/dog-picture.jpg new file mode 100644 index 0000000..6d37211 --- /dev/null +++ b/src/assets/tempImages/dog-picture.jpg Binary files differ diff --git a/src/assets/tempImages/dog.png b/src/assets/tempImages/dog.png new file mode 100644 index 0000000..1672a81 --- /dev/null +++ b/src/assets/tempImages/dog.png Binary files differ diff --git a/src/assets/tempImages/icon-link.svg b/src/assets/tempImages/icon-link.svg new file mode 100644 index 0000000..28707bb --- /dev/null +++ b/src/assets/tempImages/icon-link.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/assets/tempImages/map.png b/src/assets/tempImages/map.png new file mode 100644 index 0000000..0530d85 --- /dev/null +++ b/src/assets/tempImages/map.png Binary files differ diff --git a/src/assets/tempImages/point.png b/src/assets/tempImages/point.png new file mode 100644 index 0000000..3a8be1f --- /dev/null +++ b/src/assets/tempImages/point.png Binary files differ diff --git a/src/assets/tempImages/sgjc.jpg b/src/assets/tempImages/sgjc.jpg new file mode 100644 index 0000000..a1c25e0 --- /dev/null +++ b/src/assets/tempImages/sgjc.jpg Binary files differ diff --git a/src/assets/tempImages/tyx.jpg b/src/assets/tempImages/tyx.jpg new file mode 100644 index 0000000..6d37211 --- /dev/null +++ b/src/assets/tempImages/tyx.jpg Binary files differ diff --git a/src/assets/tempImages/yrg.jpg b/src/assets/tempImages/yrg.jpg new file mode 100644 index 0000000..071a185 --- /dev/null +++ b/src/assets/tempImages/yrg.jpg Binary files differ diff --git a/src/components.d.ts b/src/components.d.ts index f651253..a0817c2 100644 --- a/src/components.d.ts +++ b/src/components.d.ts @@ -72,6 +72,7 @@ SvgIcon: typeof import('./components/SvgIcon/index.vue')['default'] SystemInfo: typeof import('./components/SystemInfo/index.vue')['default'] TableContainer: typeof import('./components/TableContainer/index.vue')['default'] + Threejs: typeof import('./components/threejs/index.vue')['default'] Trend: typeof import('./components/Trend/index.vue')['default'] } } diff --git a/src/components/NormalTable/index.vue b/src/components/NormalTable/index.vue index 63a2160..bf0b007 100644 --- a/src/components/NormalTable/index.vue +++ b/src/components/NormalTable/index.vue @@ -481,5 +481,10 @@ .el-radio__label { display: none !important; } + // 单元格样式 + .el-table__cell { + position: static !important; // 解决el-image 和 el-table冲突层级冲突问题 + z-index: 99999999; + } } diff --git a/src/components/threejs/4.pcd b/src/components/threejs/4.pcd new file mode 100644 index 0000000..a45a92e --- /dev/null +++ b/src/components/threejs/4.pcd Binary files differ diff --git a/src/components/threejs/finalCloud.pcd b/src/components/threejs/finalCloud.pcd new file mode 100644 index 0000000..b07d7d8 --- /dev/null +++ b/src/components/threejs/finalCloud.pcd Binary files differ diff --git a/src/components/threejs/index.vue b/src/components/threejs/index.vue new file mode 100644 index 0000000..08b880c --- /dev/null +++ b/src/components/threejs/index.vue @@ -0,0 +1,52 @@ + + + + + diff --git a/src/components/threejs/init.js b/src/components/threejs/init.js new file mode 100644 index 0000000..87e4904 --- /dev/null +++ b/src/components/threejs/init.js @@ -0,0 +1,274 @@ +/** + * 初始化场景 + */ +import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls.js' +import * as THREE from 'three' +import { PCDLoader } from 'three/examples/jsm/loaders/PCDLoader.js' + +// 类声明 +class SceneInit { + /** + * 构造函数,用来初始化 + * @param dom dom + * @param cameraObj + */ + constructor(dom, cameraObj) { + console.log('dom', dom) + console.log('cameraObj', cameraObj) + + this.dom = dom // 创建dom属性 + this.groupObj = { // 创建groupObj属性 + gridHelperGroup: undefined, + } + // render前的回调函数集合 + this.animateCallBackArray = [] + this.init(cameraObj) + } + + /** + * 初始化 + */ + init(cameraObj) { + // 初始化Renderer + this.initRenderer() + // 初始化摄像头 + this.initCamera(cameraObj) + // 初始化场景 + this.initScene() + // 初始化灯源 + this.initLight() + // 摄像头控制器 + this.initControls() + this.animateCallBackArray = [] + // 动画 + // setTimeout(() => { + this.animate() + this.resizeFun = this.updataWh.bind(this) + window.addEventListener('resize', this.resizeFun) + } + + /** + * 初始化渲染器 + */ + initRenderer() { + this.renderer = new THREE.WebGLRenderer({ + alpha: this.alpha, // 画布透明 + depthTest: true, // 深度测试 + antialias: true, // 是否开启抗锯齿效果,默认值为false。 + logarithmicDepthBuffer: true, // 对数深度缓存 + }) + // width和height用来设置Three.js输出的Canvas画布尺寸(像素px) + this.width = this.dom.clientWidth // 窗口文档显示区的宽度作为画布宽度 + this.height = this.dom.clientHeight // 窗口文档显示区的高度作为画布高度 + this.renderer.localClippingEnabled = true // 启用局部裁剪 + this.renderer.setSize(this.width, this.height) // 设置three.js渲染区域的尺寸(像素px) + this.renderer.shadowMap.enabled = true // 如果遇到阴影贴图 必须渲染 + this.renderer.sortObjects = true // 用于控制three.js中物体的渲染顺序 + this.renderer.setPixelRatio(window.devicePixelRatio * 1) // 用于设置设备的像素比 通过设置设备像素比,可以优化高分辨率设备上的渲染效果,确保图形在不同分辨率的设备上都能清晰显示。 + this.renderer.domElement.style.position = 'absolute' + this.renderer.domElement.style.top = '0px' + this.renderer.domElement.style.left = '0px' + // three.js执行渲染命令会输出一个canvas画布,也就是一个HTML元素,你可以插入到web页面中 + this.dom.appendChild(this.renderer.domElement) + this.renderer.domElement.classList.add('threeCanvas') // 设置画布的class,非必须 + // this.renderer.outputEncoding = THREE.sRGBEncoding; + this.renderer.gammaFactor = 2.2 + this.renderer.gammaOutPut = true + this.renderer.shadowMap.type = THREE.PCFSoftShadowMap + + this.renderer.toneMappingExposure = 1.0 + // 物理灯光 + this.renderer.physicallyCorrectLights = true + } + + /** + * 初始化摄像头 + */ + + initCamera(cameraObj) { + if (!cameraObj) { + cameraObj = { + fov: 45, // 摄像机视锥体垂直视野角度。 + aspect: this.width / this.height, // 摄像机视锥体长宽比。 + near: 0.1, // 摄像机视锥体近端面。 + far: 100000, // 摄像机视锥体远端面。 + // position: [0, 50, 85], + // position: [62, 67, 20], + position: [0, 0, 12], + } + } + this.camera = new THREE.PerspectiveCamera( + cameraObj.fov, + this.width / this.height, // 摄像机视锥体长宽比。 + // cameraObj.aspect, + cameraObj.near, + cameraObj.far, + ) + this.camera.position.set(...cameraObj.position) + // this.camera.position.set([0, 50, 85]) + } + + /** + * 初始化场景 + */ + initScene() { + this.scene = new THREE.Scene() + } + + /** + * 初始化灯源 + */ + initLight() { + // 默认环境光 + const ambientLight = new THREE.AmbientLight(0xFFFFFF) // 环境光 + this.scene.add(ambientLight) + ambientLight.intensity = 0.3 // 光照强度 + const hemiLight = new THREE.HemisphereLight(0xFFFFBB, 0x080820, 1) // 模拟天空和地面的光照效果 + this.scene.add(hemiLight) + } + + /** + * 初始化控制器 + */ + initControls() { + this.controller = new OrbitControls(this.camera, this.renderer.domElement) + } + + /** + *宽高变更时自动适配 + */ + updataWh() { + this.width = this.dom.clientWidth + this.height = this.dom.clientHeight + this.camera.aspect = this.width / this.height + this.camera.updateProjectionMatrix() + this.renderer.setSize(this.width, this.height) + } + + /** + * 动画渲染 + * threejs可以借助HTML5的API请求动画帧window.requestAnimationFrame实现动画渲染。 + **/ + animate(time) { + // 请求动画帧window.requestAnimationFrame + // requestAnimationFrame实现周期性循环执行 + // requestAnimationFrame默认每秒钟执行60次,但不一定能做到,要看代码的性能 + this.animateKey = requestAnimationFrame(this.animate.bind(this)) + if (this.controller) { + this.controller.update() + } + // 额外回调 + for (let i = 0; i < this.animateCallBackArray.length; i++) { + if (this.animateCallBackArray[i]) { + this.animateCallBackArray[i](time, this.renderer, this.scene) + } + } + this.renders() + } + + /** + * 网格辅助线 + */ + grid() { + // 网格的大小(宽度和高度) 它定义了从中心到边缘的距离,整个网格的实际尺寸是2 * size‌ + const size = 1000 + // 网格的划分数量,即网格线上有多少个分割点 + const divisions = 60 + // 主要颜色,默认为0x444444(深灰色),用于主轴线‌ + const colorMain = '0x444444' + // 次要颜色,默认为0x888888(浅灰色),用于其他线‌ + const colorSecondary = '0x888888' + this.groupObj.gridHelperGroup = new THREE.GridHelper( + size, + divisions, + // colorMain, + // colorSecondary, + ) + this.scene.add(this.groupObj.gridHelperGroup) + } + + /** + * 渲染 + */ + renders() { + if (this.renderer) { + this.renderer.render(this.scene, this.camera) + } + } + + /** + * 获取根对象,便于其它类使用公共场景变量 + */ + getRoot() { + return { + scene: this.scene, + renderer: this.renderer, + controller: this.controller, + camera: this.camera, + addAnimateCallBack: this.addAnimateCallBack, + removeAnimateCallBack: this.removeAnimateCallBack, + } + } + + /** + * + * 更新前的回调,暂用于模型矩阵变化动画 + */ + addAnimateCallBack = (fun) => { + const index = this.animateCallBackArray.length + this.animateCallBackArray.push(fun) + return index + } + + /** + * + * 更新前的回调,暂用于模型矩阵变化动画 + */ + removeAnimateCallBack = (index) => { + this.animateCallBackArray[index] = false + } + + /** + * 销毁,释放内存 + */ + destroy() { + cancelAnimationFrame(this.animateKey) + this.scene.traverse((child) => { + if (child instanceof THREE.Mesh) { + if (child.material) { + child.material.dispose && child.material.dispose() + } + if (child.geometry) { + child.geometry && child.geometry.dispose() + } + + !!child.clear && child.clear() + child = null + } + }) + this.scene.environment = null + this.scene.clear() + const dom = this.renderer.domElement + if (dom) { + dom.parentNode.removeChild(dom) + } + this.renderer.renderLists.dispose() + this.renderer.dispose() + this.renderer.forceContextLoss() + this.renderer.domElement = null + this.renderer.content = null + this.renderer = null + window.removeEventListener('resize', this.resizeFun) + } + + // 加载点云 + loadPCD(padPath) { + const loader = new PCDLoader() + loader.load(padPath, (points) => { + this.scene.add(points) // 直接将点云添加到场景中 + this.animate() + }) + } +} + +export default SceneInit diff --git a/.env.development b/.env.development index 3aaa28f..ba1ebf1 100644 --- a/.env.development +++ b/.env.development @@ -1,5 +1,5 @@ # 页面标题 -VITE_APP_TITLE = 机器狗巡检平台 +VITE_APP_TITLE = 巡检精灵综合管理平台 # 接口请求地址,会设置到 axios 的 baseURL 参数上 VITE_APP_API_BASEURL = http://111.198.10.15:11638 diff --git a/.env.production b/.env.production index 10cfdb7..da68e78 100644 --- a/.env.production +++ b/.env.production @@ -1,7 +1,7 @@ NODE_ENV = production # 页面标题 -VITE_APP_TITLE = 感知数据汇聚平台 +VITE_APP_TITLE = 巡检精灵综合管理平台 # 接口请求地址,会设置到 axios 的 baseURL 参数上 VITE_APP_API_BASEURL = http://111.198.10.15:11638 # 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空 diff --git a/README.md b/README.md index baadcb1..1cc1ffa 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ -

机器狗巡检平台

+

巡检精灵综合管理平台

-

机器狗巡检平台

+

巡检精灵综合管理平台

## 简要说明

diff --git a/package.json b/package.json index a6745d6..b8f7e9c 100644 --- a/package.json +++ b/package.json @@ -45,6 +45,7 @@ "print-js": "^1.6.0", "qrcode": "^1.5.1", "qs": "^6.11.0", + "three": "^0.173.0", "tinymce": "^6.2.0", "vue": "^3.2.44", "vue-pdf-embed": "^1.1.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 860f410..351badd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -57,6 +57,7 @@ stylelint-config-standard-vue: ^1.0.0 stylelint-scss: ^4.3.0 svgo: ^3.0.0 + three: ^0.173.0 tinymce: ^6.2.0 typescript: ^4.8.4 unplugin-auto-import: ^0.11.4 @@ -107,6 +108,7 @@ print-js: 1.6.0 qrcode: 1.5.4 qs: 6.13.1 + three: 0.173.0 tinymce: 6.8.5 vue: 3.5.13_typescript@4.9.5 vue-pdf-embed: 1.2.1_vue@3.5.13 @@ -8623,6 +8625,10 @@ resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} dev: true + /three/0.173.0: + resolution: {integrity: sha512-AUwVmViIEUgBwxJJ7stnF0NkPpZxx1aZ6WiAbQ/Qq61h6I9UR4grXtZDmO8mnlaNORhHnIBlXJ1uBxILEKuVyw==} + dev: false + /through/2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} dev: true diff --git a/public/4.pcd b/public/4.pcd new file mode 100644 index 0000000..a45a92e --- /dev/null +++ b/public/4.pcd Binary files differ diff --git a/public/config/config.json b/public/config/config.json index 0c02bb3..e5cba39 100644 --- a/public/config/config.json +++ b/public/config/config.json @@ -1,5 +1,5 @@ { - "title":"燃气物联感知平台", + "title":"巡检精灵综合管理平台", "baseUrl": "http://111.198.10.15:11645", "securityJsCode": "56bf9671d4b3517d294caec4751889a1", "JsKey": "40849e82b4e33f5255b17372520c954d", diff --git a/public/finalCloud.pcd b/public/finalCloud.pcd new file mode 100644 index 0000000..b07d7d8 --- /dev/null +++ b/public/finalCloud.pcd Binary files differ diff --git a/src/assets/icons/icon-patrol.svg b/src/assets/icons/icon-patrol.svg new file mode 100644 index 0000000..8619714 --- /dev/null +++ b/src/assets/icons/icon-patrol.svg @@ -0,0 +1 @@ + diff --git a/src/assets/tempImages/2.jpg b/src/assets/tempImages/2.jpg new file mode 100644 index 0000000..23e16e8 --- /dev/null +++ b/src/assets/tempImages/2.jpg Binary files differ diff --git a/src/assets/tempImages/control.png b/src/assets/tempImages/control.png new file mode 100644 index 0000000..27cb0a6 --- /dev/null +++ b/src/assets/tempImages/control.png Binary files differ diff --git a/src/assets/tempImages/dog-arm.jpg b/src/assets/tempImages/dog-arm.jpg new file mode 100644 index 0000000..53c25df --- /dev/null +++ b/src/assets/tempImages/dog-arm.jpg Binary files differ diff --git a/src/assets/tempImages/dog-picture.jpg b/src/assets/tempImages/dog-picture.jpg new file mode 100644 index 0000000..6d37211 --- /dev/null +++ b/src/assets/tempImages/dog-picture.jpg Binary files differ diff --git a/src/assets/tempImages/dog.png b/src/assets/tempImages/dog.png new file mode 100644 index 0000000..1672a81 --- /dev/null +++ b/src/assets/tempImages/dog.png Binary files differ diff --git a/src/assets/tempImages/icon-link.svg b/src/assets/tempImages/icon-link.svg new file mode 100644 index 0000000..28707bb --- /dev/null +++ b/src/assets/tempImages/icon-link.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/assets/tempImages/map.png b/src/assets/tempImages/map.png new file mode 100644 index 0000000..0530d85 --- /dev/null +++ b/src/assets/tempImages/map.png Binary files differ diff --git a/src/assets/tempImages/point.png b/src/assets/tempImages/point.png new file mode 100644 index 0000000..3a8be1f --- /dev/null +++ b/src/assets/tempImages/point.png Binary files differ diff --git a/src/assets/tempImages/sgjc.jpg b/src/assets/tempImages/sgjc.jpg new file mode 100644 index 0000000..a1c25e0 --- /dev/null +++ b/src/assets/tempImages/sgjc.jpg Binary files differ diff --git a/src/assets/tempImages/tyx.jpg b/src/assets/tempImages/tyx.jpg new file mode 100644 index 0000000..6d37211 --- /dev/null +++ b/src/assets/tempImages/tyx.jpg Binary files differ diff --git a/src/assets/tempImages/yrg.jpg b/src/assets/tempImages/yrg.jpg new file mode 100644 index 0000000..071a185 --- /dev/null +++ b/src/assets/tempImages/yrg.jpg Binary files differ diff --git a/src/components.d.ts b/src/components.d.ts index f651253..a0817c2 100644 --- a/src/components.d.ts +++ b/src/components.d.ts @@ -72,6 +72,7 @@ SvgIcon: typeof import('./components/SvgIcon/index.vue')['default'] SystemInfo: typeof import('./components/SystemInfo/index.vue')['default'] TableContainer: typeof import('./components/TableContainer/index.vue')['default'] + Threejs: typeof import('./components/threejs/index.vue')['default'] Trend: typeof import('./components/Trend/index.vue')['default'] } } diff --git a/src/components/NormalTable/index.vue b/src/components/NormalTable/index.vue index 63a2160..bf0b007 100644 --- a/src/components/NormalTable/index.vue +++ b/src/components/NormalTable/index.vue @@ -481,5 +481,10 @@ .el-radio__label { display: none !important; } + // 单元格样式 + .el-table__cell { + position: static !important; // 解决el-image 和 el-table冲突层级冲突问题 + z-index: 99999999; + } } diff --git a/src/components/threejs/4.pcd b/src/components/threejs/4.pcd new file mode 100644 index 0000000..a45a92e --- /dev/null +++ b/src/components/threejs/4.pcd Binary files differ diff --git a/src/components/threejs/finalCloud.pcd b/src/components/threejs/finalCloud.pcd new file mode 100644 index 0000000..b07d7d8 --- /dev/null +++ b/src/components/threejs/finalCloud.pcd Binary files differ diff --git a/src/components/threejs/index.vue b/src/components/threejs/index.vue new file mode 100644 index 0000000..08b880c --- /dev/null +++ b/src/components/threejs/index.vue @@ -0,0 +1,52 @@ + + + + + diff --git a/src/components/threejs/init.js b/src/components/threejs/init.js new file mode 100644 index 0000000..87e4904 --- /dev/null +++ b/src/components/threejs/init.js @@ -0,0 +1,274 @@ +/** + * 初始化场景 + */ +import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls.js' +import * as THREE from 'three' +import { PCDLoader } from 'three/examples/jsm/loaders/PCDLoader.js' + +// 类声明 +class SceneInit { + /** + * 构造函数,用来初始化 + * @param dom dom + * @param cameraObj + */ + constructor(dom, cameraObj) { + console.log('dom', dom) + console.log('cameraObj', cameraObj) + + this.dom = dom // 创建dom属性 + this.groupObj = { // 创建groupObj属性 + gridHelperGroup: undefined, + } + // render前的回调函数集合 + this.animateCallBackArray = [] + this.init(cameraObj) + } + + /** + * 初始化 + */ + init(cameraObj) { + // 初始化Renderer + this.initRenderer() + // 初始化摄像头 + this.initCamera(cameraObj) + // 初始化场景 + this.initScene() + // 初始化灯源 + this.initLight() + // 摄像头控制器 + this.initControls() + this.animateCallBackArray = [] + // 动画 + // setTimeout(() => { + this.animate() + this.resizeFun = this.updataWh.bind(this) + window.addEventListener('resize', this.resizeFun) + } + + /** + * 初始化渲染器 + */ + initRenderer() { + this.renderer = new THREE.WebGLRenderer({ + alpha: this.alpha, // 画布透明 + depthTest: true, // 深度测试 + antialias: true, // 是否开启抗锯齿效果,默认值为false。 + logarithmicDepthBuffer: true, // 对数深度缓存 + }) + // width和height用来设置Three.js输出的Canvas画布尺寸(像素px) + this.width = this.dom.clientWidth // 窗口文档显示区的宽度作为画布宽度 + this.height = this.dom.clientHeight // 窗口文档显示区的高度作为画布高度 + this.renderer.localClippingEnabled = true // 启用局部裁剪 + this.renderer.setSize(this.width, this.height) // 设置three.js渲染区域的尺寸(像素px) + this.renderer.shadowMap.enabled = true // 如果遇到阴影贴图 必须渲染 + this.renderer.sortObjects = true // 用于控制three.js中物体的渲染顺序 + this.renderer.setPixelRatio(window.devicePixelRatio * 1) // 用于设置设备的像素比 通过设置设备像素比,可以优化高分辨率设备上的渲染效果,确保图形在不同分辨率的设备上都能清晰显示。 + this.renderer.domElement.style.position = 'absolute' + this.renderer.domElement.style.top = '0px' + this.renderer.domElement.style.left = '0px' + // three.js执行渲染命令会输出一个canvas画布,也就是一个HTML元素,你可以插入到web页面中 + this.dom.appendChild(this.renderer.domElement) + this.renderer.domElement.classList.add('threeCanvas') // 设置画布的class,非必须 + // this.renderer.outputEncoding = THREE.sRGBEncoding; + this.renderer.gammaFactor = 2.2 + this.renderer.gammaOutPut = true + this.renderer.shadowMap.type = THREE.PCFSoftShadowMap + + this.renderer.toneMappingExposure = 1.0 + // 物理灯光 + this.renderer.physicallyCorrectLights = true + } + + /** + * 初始化摄像头 + */ + + initCamera(cameraObj) { + if (!cameraObj) { + cameraObj = { + fov: 45, // 摄像机视锥体垂直视野角度。 + aspect: this.width / this.height, // 摄像机视锥体长宽比。 + near: 0.1, // 摄像机视锥体近端面。 + far: 100000, // 摄像机视锥体远端面。 + // position: [0, 50, 85], + // position: [62, 67, 20], + position: [0, 0, 12], + } + } + this.camera = new THREE.PerspectiveCamera( + cameraObj.fov, + this.width / this.height, // 摄像机视锥体长宽比。 + // cameraObj.aspect, + cameraObj.near, + cameraObj.far, + ) + this.camera.position.set(...cameraObj.position) + // this.camera.position.set([0, 50, 85]) + } + + /** + * 初始化场景 + */ + initScene() { + this.scene = new THREE.Scene() + } + + /** + * 初始化灯源 + */ + initLight() { + // 默认环境光 + const ambientLight = new THREE.AmbientLight(0xFFFFFF) // 环境光 + this.scene.add(ambientLight) + ambientLight.intensity = 0.3 // 光照强度 + const hemiLight = new THREE.HemisphereLight(0xFFFFBB, 0x080820, 1) // 模拟天空和地面的光照效果 + this.scene.add(hemiLight) + } + + /** + * 初始化控制器 + */ + initControls() { + this.controller = new OrbitControls(this.camera, this.renderer.domElement) + } + + /** + *宽高变更时自动适配 + */ + updataWh() { + this.width = this.dom.clientWidth + this.height = this.dom.clientHeight + this.camera.aspect = this.width / this.height + this.camera.updateProjectionMatrix() + this.renderer.setSize(this.width, this.height) + } + + /** + * 动画渲染 + * threejs可以借助HTML5的API请求动画帧window.requestAnimationFrame实现动画渲染。 + **/ + animate(time) { + // 请求动画帧window.requestAnimationFrame + // requestAnimationFrame实现周期性循环执行 + // requestAnimationFrame默认每秒钟执行60次,但不一定能做到,要看代码的性能 + this.animateKey = requestAnimationFrame(this.animate.bind(this)) + if (this.controller) { + this.controller.update() + } + // 额外回调 + for (let i = 0; i < this.animateCallBackArray.length; i++) { + if (this.animateCallBackArray[i]) { + this.animateCallBackArray[i](time, this.renderer, this.scene) + } + } + this.renders() + } + + /** + * 网格辅助线 + */ + grid() { + // 网格的大小(宽度和高度) 它定义了从中心到边缘的距离,整个网格的实际尺寸是2 * size‌ + const size = 1000 + // 网格的划分数量,即网格线上有多少个分割点 + const divisions = 60 + // 主要颜色,默认为0x444444(深灰色),用于主轴线‌ + const colorMain = '0x444444' + // 次要颜色,默认为0x888888(浅灰色),用于其他线‌ + const colorSecondary = '0x888888' + this.groupObj.gridHelperGroup = new THREE.GridHelper( + size, + divisions, + // colorMain, + // colorSecondary, + ) + this.scene.add(this.groupObj.gridHelperGroup) + } + + /** + * 渲染 + */ + renders() { + if (this.renderer) { + this.renderer.render(this.scene, this.camera) + } + } + + /** + * 获取根对象,便于其它类使用公共场景变量 + */ + getRoot() { + return { + scene: this.scene, + renderer: this.renderer, + controller: this.controller, + camera: this.camera, + addAnimateCallBack: this.addAnimateCallBack, + removeAnimateCallBack: this.removeAnimateCallBack, + } + } + + /** + * + * 更新前的回调,暂用于模型矩阵变化动画 + */ + addAnimateCallBack = (fun) => { + const index = this.animateCallBackArray.length + this.animateCallBackArray.push(fun) + return index + } + + /** + * + * 更新前的回调,暂用于模型矩阵变化动画 + */ + removeAnimateCallBack = (index) => { + this.animateCallBackArray[index] = false + } + + /** + * 销毁,释放内存 + */ + destroy() { + cancelAnimationFrame(this.animateKey) + this.scene.traverse((child) => { + if (child instanceof THREE.Mesh) { + if (child.material) { + child.material.dispose && child.material.dispose() + } + if (child.geometry) { + child.geometry && child.geometry.dispose() + } + + !!child.clear && child.clear() + child = null + } + }) + this.scene.environment = null + this.scene.clear() + const dom = this.renderer.domElement + if (dom) { + dom.parentNode.removeChild(dom) + } + this.renderer.renderLists.dispose() + this.renderer.dispose() + this.renderer.forceContextLoss() + this.renderer.domElement = null + this.renderer.content = null + this.renderer = null + window.removeEventListener('resize', this.resizeFun) + } + + // 加载点云 + loadPCD(padPath) { + const loader = new PCDLoader() + loader.load(padPath, (points) => { + this.scene.add(points) // 直接将点云添加到场景中 + this.animate() + }) + } +} + +export default SceneInit diff --git a/src/router/index.ts b/src/router/index.ts index e4760f5..9ce2c1b 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -44,7 +44,8 @@ // 如果已登录状态下,进入登录页会强制跳转到控制台页面 if (to.name === 'login') { next({ - name: 'dashboard', + // name: 'dashboard', + name: 'PatrolManage', replace: true, }) } @@ -151,7 +152,8 @@ // 如果已登录状态下,进入登录页会强制跳转到控制台页面 if (to.name === 'login') { next({ - name: 'dashboard', + // name: 'dashboard', + name: 'PatrolManage', replace: true, }) } diff --git a/.env.development b/.env.development index 3aaa28f..ba1ebf1 100644 --- a/.env.development +++ b/.env.development @@ -1,5 +1,5 @@ # 页面标题 -VITE_APP_TITLE = 机器狗巡检平台 +VITE_APP_TITLE = 巡检精灵综合管理平台 # 接口请求地址,会设置到 axios 的 baseURL 参数上 VITE_APP_API_BASEURL = http://111.198.10.15:11638 diff --git a/.env.production b/.env.production index 10cfdb7..da68e78 100644 --- a/.env.production +++ b/.env.production @@ -1,7 +1,7 @@ NODE_ENV = production # 页面标题 -VITE_APP_TITLE = 感知数据汇聚平台 +VITE_APP_TITLE = 巡检精灵综合管理平台 # 接口请求地址,会设置到 axios 的 baseURL 参数上 VITE_APP_API_BASEURL = http://111.198.10.15:11638 # 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空 diff --git a/README.md b/README.md index baadcb1..1cc1ffa 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ -

机器狗巡检平台

+

巡检精灵综合管理平台

-

机器狗巡检平台

+

巡检精灵综合管理平台

## 简要说明

diff --git a/package.json b/package.json index a6745d6..b8f7e9c 100644 --- a/package.json +++ b/package.json @@ -45,6 +45,7 @@ "print-js": "^1.6.0", "qrcode": "^1.5.1", "qs": "^6.11.0", + "three": "^0.173.0", "tinymce": "^6.2.0", "vue": "^3.2.44", "vue-pdf-embed": "^1.1.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 860f410..351badd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -57,6 +57,7 @@ stylelint-config-standard-vue: ^1.0.0 stylelint-scss: ^4.3.0 svgo: ^3.0.0 + three: ^0.173.0 tinymce: ^6.2.0 typescript: ^4.8.4 unplugin-auto-import: ^0.11.4 @@ -107,6 +108,7 @@ print-js: 1.6.0 qrcode: 1.5.4 qs: 6.13.1 + three: 0.173.0 tinymce: 6.8.5 vue: 3.5.13_typescript@4.9.5 vue-pdf-embed: 1.2.1_vue@3.5.13 @@ -8623,6 +8625,10 @@ resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} dev: true + /three/0.173.0: + resolution: {integrity: sha512-AUwVmViIEUgBwxJJ7stnF0NkPpZxx1aZ6WiAbQ/Qq61h6I9UR4grXtZDmO8mnlaNORhHnIBlXJ1uBxILEKuVyw==} + dev: false + /through/2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} dev: true diff --git a/public/4.pcd b/public/4.pcd new file mode 100644 index 0000000..a45a92e --- /dev/null +++ b/public/4.pcd Binary files differ diff --git a/public/config/config.json b/public/config/config.json index 0c02bb3..e5cba39 100644 --- a/public/config/config.json +++ b/public/config/config.json @@ -1,5 +1,5 @@ { - "title":"燃气物联感知平台", + "title":"巡检精灵综合管理平台", "baseUrl": "http://111.198.10.15:11645", "securityJsCode": "56bf9671d4b3517d294caec4751889a1", "JsKey": "40849e82b4e33f5255b17372520c954d", diff --git a/public/finalCloud.pcd b/public/finalCloud.pcd new file mode 100644 index 0000000..b07d7d8 --- /dev/null +++ b/public/finalCloud.pcd Binary files differ diff --git a/src/assets/icons/icon-patrol.svg b/src/assets/icons/icon-patrol.svg new file mode 100644 index 0000000..8619714 --- /dev/null +++ b/src/assets/icons/icon-patrol.svg @@ -0,0 +1 @@ + diff --git a/src/assets/tempImages/2.jpg b/src/assets/tempImages/2.jpg new file mode 100644 index 0000000..23e16e8 --- /dev/null +++ b/src/assets/tempImages/2.jpg Binary files differ diff --git a/src/assets/tempImages/control.png b/src/assets/tempImages/control.png new file mode 100644 index 0000000..27cb0a6 --- /dev/null +++ b/src/assets/tempImages/control.png Binary files differ diff --git a/src/assets/tempImages/dog-arm.jpg b/src/assets/tempImages/dog-arm.jpg new file mode 100644 index 0000000..53c25df --- /dev/null +++ b/src/assets/tempImages/dog-arm.jpg Binary files differ diff --git a/src/assets/tempImages/dog-picture.jpg b/src/assets/tempImages/dog-picture.jpg new file mode 100644 index 0000000..6d37211 --- /dev/null +++ b/src/assets/tempImages/dog-picture.jpg Binary files differ diff --git a/src/assets/tempImages/dog.png b/src/assets/tempImages/dog.png new file mode 100644 index 0000000..1672a81 --- /dev/null +++ b/src/assets/tempImages/dog.png Binary files differ diff --git a/src/assets/tempImages/icon-link.svg b/src/assets/tempImages/icon-link.svg new file mode 100644 index 0000000..28707bb --- /dev/null +++ b/src/assets/tempImages/icon-link.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/assets/tempImages/map.png b/src/assets/tempImages/map.png new file mode 100644 index 0000000..0530d85 --- /dev/null +++ b/src/assets/tempImages/map.png Binary files differ diff --git a/src/assets/tempImages/point.png b/src/assets/tempImages/point.png new file mode 100644 index 0000000..3a8be1f --- /dev/null +++ b/src/assets/tempImages/point.png Binary files differ diff --git a/src/assets/tempImages/sgjc.jpg b/src/assets/tempImages/sgjc.jpg new file mode 100644 index 0000000..a1c25e0 --- /dev/null +++ b/src/assets/tempImages/sgjc.jpg Binary files differ diff --git a/src/assets/tempImages/tyx.jpg b/src/assets/tempImages/tyx.jpg new file mode 100644 index 0000000..6d37211 --- /dev/null +++ b/src/assets/tempImages/tyx.jpg Binary files differ diff --git a/src/assets/tempImages/yrg.jpg b/src/assets/tempImages/yrg.jpg new file mode 100644 index 0000000..071a185 --- /dev/null +++ b/src/assets/tempImages/yrg.jpg Binary files differ diff --git a/src/components.d.ts b/src/components.d.ts index f651253..a0817c2 100644 --- a/src/components.d.ts +++ b/src/components.d.ts @@ -72,6 +72,7 @@ SvgIcon: typeof import('./components/SvgIcon/index.vue')['default'] SystemInfo: typeof import('./components/SystemInfo/index.vue')['default'] TableContainer: typeof import('./components/TableContainer/index.vue')['default'] + Threejs: typeof import('./components/threejs/index.vue')['default'] Trend: typeof import('./components/Trend/index.vue')['default'] } } diff --git a/src/components/NormalTable/index.vue b/src/components/NormalTable/index.vue index 63a2160..bf0b007 100644 --- a/src/components/NormalTable/index.vue +++ b/src/components/NormalTable/index.vue @@ -481,5 +481,10 @@ .el-radio__label { display: none !important; } + // 单元格样式 + .el-table__cell { + position: static !important; // 解决el-image 和 el-table冲突层级冲突问题 + z-index: 99999999; + } } diff --git a/src/components/threejs/4.pcd b/src/components/threejs/4.pcd new file mode 100644 index 0000000..a45a92e --- /dev/null +++ b/src/components/threejs/4.pcd Binary files differ diff --git a/src/components/threejs/finalCloud.pcd b/src/components/threejs/finalCloud.pcd new file mode 100644 index 0000000..b07d7d8 --- /dev/null +++ b/src/components/threejs/finalCloud.pcd Binary files differ diff --git a/src/components/threejs/index.vue b/src/components/threejs/index.vue new file mode 100644 index 0000000..08b880c --- /dev/null +++ b/src/components/threejs/index.vue @@ -0,0 +1,52 @@ + + + + + diff --git a/src/components/threejs/init.js b/src/components/threejs/init.js new file mode 100644 index 0000000..87e4904 --- /dev/null +++ b/src/components/threejs/init.js @@ -0,0 +1,274 @@ +/** + * 初始化场景 + */ +import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls.js' +import * as THREE from 'three' +import { PCDLoader } from 'three/examples/jsm/loaders/PCDLoader.js' + +// 类声明 +class SceneInit { + /** + * 构造函数,用来初始化 + * @param dom dom + * @param cameraObj + */ + constructor(dom, cameraObj) { + console.log('dom', dom) + console.log('cameraObj', cameraObj) + + this.dom = dom // 创建dom属性 + this.groupObj = { // 创建groupObj属性 + gridHelperGroup: undefined, + } + // render前的回调函数集合 + this.animateCallBackArray = [] + this.init(cameraObj) + } + + /** + * 初始化 + */ + init(cameraObj) { + // 初始化Renderer + this.initRenderer() + // 初始化摄像头 + this.initCamera(cameraObj) + // 初始化场景 + this.initScene() + // 初始化灯源 + this.initLight() + // 摄像头控制器 + this.initControls() + this.animateCallBackArray = [] + // 动画 + // setTimeout(() => { + this.animate() + this.resizeFun = this.updataWh.bind(this) + window.addEventListener('resize', this.resizeFun) + } + + /** + * 初始化渲染器 + */ + initRenderer() { + this.renderer = new THREE.WebGLRenderer({ + alpha: this.alpha, // 画布透明 + depthTest: true, // 深度测试 + antialias: true, // 是否开启抗锯齿效果,默认值为false。 + logarithmicDepthBuffer: true, // 对数深度缓存 + }) + // width和height用来设置Three.js输出的Canvas画布尺寸(像素px) + this.width = this.dom.clientWidth // 窗口文档显示区的宽度作为画布宽度 + this.height = this.dom.clientHeight // 窗口文档显示区的高度作为画布高度 + this.renderer.localClippingEnabled = true // 启用局部裁剪 + this.renderer.setSize(this.width, this.height) // 设置three.js渲染区域的尺寸(像素px) + this.renderer.shadowMap.enabled = true // 如果遇到阴影贴图 必须渲染 + this.renderer.sortObjects = true // 用于控制three.js中物体的渲染顺序 + this.renderer.setPixelRatio(window.devicePixelRatio * 1) // 用于设置设备的像素比 通过设置设备像素比,可以优化高分辨率设备上的渲染效果,确保图形在不同分辨率的设备上都能清晰显示。 + this.renderer.domElement.style.position = 'absolute' + this.renderer.domElement.style.top = '0px' + this.renderer.domElement.style.left = '0px' + // three.js执行渲染命令会输出一个canvas画布,也就是一个HTML元素,你可以插入到web页面中 + this.dom.appendChild(this.renderer.domElement) + this.renderer.domElement.classList.add('threeCanvas') // 设置画布的class,非必须 + // this.renderer.outputEncoding = THREE.sRGBEncoding; + this.renderer.gammaFactor = 2.2 + this.renderer.gammaOutPut = true + this.renderer.shadowMap.type = THREE.PCFSoftShadowMap + + this.renderer.toneMappingExposure = 1.0 + // 物理灯光 + this.renderer.physicallyCorrectLights = true + } + + /** + * 初始化摄像头 + */ + + initCamera(cameraObj) { + if (!cameraObj) { + cameraObj = { + fov: 45, // 摄像机视锥体垂直视野角度。 + aspect: this.width / this.height, // 摄像机视锥体长宽比。 + near: 0.1, // 摄像机视锥体近端面。 + far: 100000, // 摄像机视锥体远端面。 + // position: [0, 50, 85], + // position: [62, 67, 20], + position: [0, 0, 12], + } + } + this.camera = new THREE.PerspectiveCamera( + cameraObj.fov, + this.width / this.height, // 摄像机视锥体长宽比。 + // cameraObj.aspect, + cameraObj.near, + cameraObj.far, + ) + this.camera.position.set(...cameraObj.position) + // this.camera.position.set([0, 50, 85]) + } + + /** + * 初始化场景 + */ + initScene() { + this.scene = new THREE.Scene() + } + + /** + * 初始化灯源 + */ + initLight() { + // 默认环境光 + const ambientLight = new THREE.AmbientLight(0xFFFFFF) // 环境光 + this.scene.add(ambientLight) + ambientLight.intensity = 0.3 // 光照强度 + const hemiLight = new THREE.HemisphereLight(0xFFFFBB, 0x080820, 1) // 模拟天空和地面的光照效果 + this.scene.add(hemiLight) + } + + /** + * 初始化控制器 + */ + initControls() { + this.controller = new OrbitControls(this.camera, this.renderer.domElement) + } + + /** + *宽高变更时自动适配 + */ + updataWh() { + this.width = this.dom.clientWidth + this.height = this.dom.clientHeight + this.camera.aspect = this.width / this.height + this.camera.updateProjectionMatrix() + this.renderer.setSize(this.width, this.height) + } + + /** + * 动画渲染 + * threejs可以借助HTML5的API请求动画帧window.requestAnimationFrame实现动画渲染。 + **/ + animate(time) { + // 请求动画帧window.requestAnimationFrame + // requestAnimationFrame实现周期性循环执行 + // requestAnimationFrame默认每秒钟执行60次,但不一定能做到,要看代码的性能 + this.animateKey = requestAnimationFrame(this.animate.bind(this)) + if (this.controller) { + this.controller.update() + } + // 额外回调 + for (let i = 0; i < this.animateCallBackArray.length; i++) { + if (this.animateCallBackArray[i]) { + this.animateCallBackArray[i](time, this.renderer, this.scene) + } + } + this.renders() + } + + /** + * 网格辅助线 + */ + grid() { + // 网格的大小(宽度和高度) 它定义了从中心到边缘的距离,整个网格的实际尺寸是2 * size‌ + const size = 1000 + // 网格的划分数量,即网格线上有多少个分割点 + const divisions = 60 + // 主要颜色,默认为0x444444(深灰色),用于主轴线‌ + const colorMain = '0x444444' + // 次要颜色,默认为0x888888(浅灰色),用于其他线‌ + const colorSecondary = '0x888888' + this.groupObj.gridHelperGroup = new THREE.GridHelper( + size, + divisions, + // colorMain, + // colorSecondary, + ) + this.scene.add(this.groupObj.gridHelperGroup) + } + + /** + * 渲染 + */ + renders() { + if (this.renderer) { + this.renderer.render(this.scene, this.camera) + } + } + + /** + * 获取根对象,便于其它类使用公共场景变量 + */ + getRoot() { + return { + scene: this.scene, + renderer: this.renderer, + controller: this.controller, + camera: this.camera, + addAnimateCallBack: this.addAnimateCallBack, + removeAnimateCallBack: this.removeAnimateCallBack, + } + } + + /** + * + * 更新前的回调,暂用于模型矩阵变化动画 + */ + addAnimateCallBack = (fun) => { + const index = this.animateCallBackArray.length + this.animateCallBackArray.push(fun) + return index + } + + /** + * + * 更新前的回调,暂用于模型矩阵变化动画 + */ + removeAnimateCallBack = (index) => { + this.animateCallBackArray[index] = false + } + + /** + * 销毁,释放内存 + */ + destroy() { + cancelAnimationFrame(this.animateKey) + this.scene.traverse((child) => { + if (child instanceof THREE.Mesh) { + if (child.material) { + child.material.dispose && child.material.dispose() + } + if (child.geometry) { + child.geometry && child.geometry.dispose() + } + + !!child.clear && child.clear() + child = null + } + }) + this.scene.environment = null + this.scene.clear() + const dom = this.renderer.domElement + if (dom) { + dom.parentNode.removeChild(dom) + } + this.renderer.renderLists.dispose() + this.renderer.dispose() + this.renderer.forceContextLoss() + this.renderer.domElement = null + this.renderer.content = null + this.renderer = null + window.removeEventListener('resize', this.resizeFun) + } + + // 加载点云 + loadPCD(padPath) { + const loader = new PCDLoader() + loader.load(padPath, (points) => { + this.scene.add(points) // 直接将点云添加到场景中 + this.animate() + }) + } +} + +export default SceneInit diff --git a/src/router/index.ts b/src/router/index.ts index e4760f5..9ce2c1b 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -44,7 +44,8 @@ // 如果已登录状态下,进入登录页会强制跳转到控制台页面 if (to.name === 'login') { next({ - name: 'dashboard', + // name: 'dashboard', + name: 'PatrolManage', replace: true, }) } @@ -151,7 +152,8 @@ // 如果已登录状态下,进入登录页会强制跳转到控制台页面 if (to.name === 'login') { next({ - name: 'dashboard', + // name: 'dashboard', + name: 'PatrolManage', replace: true, }) } diff --git a/src/router/modules/menus.ts b/src/router/modules/menus.ts index 9aa7fe3..af35115 100644 --- a/src/router/modules/menus.ts +++ b/src/router/modules/menus.ts @@ -1,5 +1,6 @@ // 所有菜单路由 import systemRoutes from './system' +import patrolRoutes from './patrol' import type { Route } from '@/global' const Layout = () => import('@/layouts/index.vue') @@ -8,7 +9,7 @@ { path: '/home', component: Layout, - redirect: '/home/index', + redirect: '/patrol/navigation', name: 'Home', meta: { title: '首页', @@ -31,6 +32,8 @@ }, ], }, + // 巡检管理 + ...patrolRoutes, // 系统路由 ...systemRoutes, ] diff --git a/.env.development b/.env.development index 3aaa28f..ba1ebf1 100644 --- a/.env.development +++ b/.env.development @@ -1,5 +1,5 @@ # 页面标题 -VITE_APP_TITLE = 机器狗巡检平台 +VITE_APP_TITLE = 巡检精灵综合管理平台 # 接口请求地址,会设置到 axios 的 baseURL 参数上 VITE_APP_API_BASEURL = http://111.198.10.15:11638 diff --git a/.env.production b/.env.production index 10cfdb7..da68e78 100644 --- a/.env.production +++ b/.env.production @@ -1,7 +1,7 @@ NODE_ENV = production # 页面标题 -VITE_APP_TITLE = 感知数据汇聚平台 +VITE_APP_TITLE = 巡检精灵综合管理平台 # 接口请求地址,会设置到 axios 的 baseURL 参数上 VITE_APP_API_BASEURL = http://111.198.10.15:11638 # 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空 diff --git a/README.md b/README.md index baadcb1..1cc1ffa 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ -

机器狗巡检平台

+

巡检精灵综合管理平台

-

机器狗巡检平台

+

巡检精灵综合管理平台

## 简要说明

diff --git a/package.json b/package.json index a6745d6..b8f7e9c 100644 --- a/package.json +++ b/package.json @@ -45,6 +45,7 @@ "print-js": "^1.6.0", "qrcode": "^1.5.1", "qs": "^6.11.0", + "three": "^0.173.0", "tinymce": "^6.2.0", "vue": "^3.2.44", "vue-pdf-embed": "^1.1.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 860f410..351badd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -57,6 +57,7 @@ stylelint-config-standard-vue: ^1.0.0 stylelint-scss: ^4.3.0 svgo: ^3.0.0 + three: ^0.173.0 tinymce: ^6.2.0 typescript: ^4.8.4 unplugin-auto-import: ^0.11.4 @@ -107,6 +108,7 @@ print-js: 1.6.0 qrcode: 1.5.4 qs: 6.13.1 + three: 0.173.0 tinymce: 6.8.5 vue: 3.5.13_typescript@4.9.5 vue-pdf-embed: 1.2.1_vue@3.5.13 @@ -8623,6 +8625,10 @@ resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} dev: true + /three/0.173.0: + resolution: {integrity: sha512-AUwVmViIEUgBwxJJ7stnF0NkPpZxx1aZ6WiAbQ/Qq61h6I9UR4grXtZDmO8mnlaNORhHnIBlXJ1uBxILEKuVyw==} + dev: false + /through/2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} dev: true diff --git a/public/4.pcd b/public/4.pcd new file mode 100644 index 0000000..a45a92e --- /dev/null +++ b/public/4.pcd Binary files differ diff --git a/public/config/config.json b/public/config/config.json index 0c02bb3..e5cba39 100644 --- a/public/config/config.json +++ b/public/config/config.json @@ -1,5 +1,5 @@ { - "title":"燃气物联感知平台", + "title":"巡检精灵综合管理平台", "baseUrl": "http://111.198.10.15:11645", "securityJsCode": "56bf9671d4b3517d294caec4751889a1", "JsKey": "40849e82b4e33f5255b17372520c954d", diff --git a/public/finalCloud.pcd b/public/finalCloud.pcd new file mode 100644 index 0000000..b07d7d8 --- /dev/null +++ b/public/finalCloud.pcd Binary files differ diff --git a/src/assets/icons/icon-patrol.svg b/src/assets/icons/icon-patrol.svg new file mode 100644 index 0000000..8619714 --- /dev/null +++ b/src/assets/icons/icon-patrol.svg @@ -0,0 +1 @@ + diff --git a/src/assets/tempImages/2.jpg b/src/assets/tempImages/2.jpg new file mode 100644 index 0000000..23e16e8 --- /dev/null +++ b/src/assets/tempImages/2.jpg Binary files differ diff --git a/src/assets/tempImages/control.png b/src/assets/tempImages/control.png new file mode 100644 index 0000000..27cb0a6 --- /dev/null +++ b/src/assets/tempImages/control.png Binary files differ diff --git a/src/assets/tempImages/dog-arm.jpg b/src/assets/tempImages/dog-arm.jpg new file mode 100644 index 0000000..53c25df --- /dev/null +++ b/src/assets/tempImages/dog-arm.jpg Binary files differ diff --git a/src/assets/tempImages/dog-picture.jpg b/src/assets/tempImages/dog-picture.jpg new file mode 100644 index 0000000..6d37211 --- /dev/null +++ b/src/assets/tempImages/dog-picture.jpg Binary files differ diff --git a/src/assets/tempImages/dog.png b/src/assets/tempImages/dog.png new file mode 100644 index 0000000..1672a81 --- /dev/null +++ b/src/assets/tempImages/dog.png Binary files differ diff --git a/src/assets/tempImages/icon-link.svg b/src/assets/tempImages/icon-link.svg new file mode 100644 index 0000000..28707bb --- /dev/null +++ b/src/assets/tempImages/icon-link.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/assets/tempImages/map.png b/src/assets/tempImages/map.png new file mode 100644 index 0000000..0530d85 --- /dev/null +++ b/src/assets/tempImages/map.png Binary files differ diff --git a/src/assets/tempImages/point.png b/src/assets/tempImages/point.png new file mode 100644 index 0000000..3a8be1f --- /dev/null +++ b/src/assets/tempImages/point.png Binary files differ diff --git a/src/assets/tempImages/sgjc.jpg b/src/assets/tempImages/sgjc.jpg new file mode 100644 index 0000000..a1c25e0 --- /dev/null +++ b/src/assets/tempImages/sgjc.jpg Binary files differ diff --git a/src/assets/tempImages/tyx.jpg b/src/assets/tempImages/tyx.jpg new file mode 100644 index 0000000..6d37211 --- /dev/null +++ b/src/assets/tempImages/tyx.jpg Binary files differ diff --git a/src/assets/tempImages/yrg.jpg b/src/assets/tempImages/yrg.jpg new file mode 100644 index 0000000..071a185 --- /dev/null +++ b/src/assets/tempImages/yrg.jpg Binary files differ diff --git a/src/components.d.ts b/src/components.d.ts index f651253..a0817c2 100644 --- a/src/components.d.ts +++ b/src/components.d.ts @@ -72,6 +72,7 @@ SvgIcon: typeof import('./components/SvgIcon/index.vue')['default'] SystemInfo: typeof import('./components/SystemInfo/index.vue')['default'] TableContainer: typeof import('./components/TableContainer/index.vue')['default'] + Threejs: typeof import('./components/threejs/index.vue')['default'] Trend: typeof import('./components/Trend/index.vue')['default'] } } diff --git a/src/components/NormalTable/index.vue b/src/components/NormalTable/index.vue index 63a2160..bf0b007 100644 --- a/src/components/NormalTable/index.vue +++ b/src/components/NormalTable/index.vue @@ -481,5 +481,10 @@ .el-radio__label { display: none !important; } + // 单元格样式 + .el-table__cell { + position: static !important; // 解决el-image 和 el-table冲突层级冲突问题 + z-index: 99999999; + } } diff --git a/src/components/threejs/4.pcd b/src/components/threejs/4.pcd new file mode 100644 index 0000000..a45a92e --- /dev/null +++ b/src/components/threejs/4.pcd Binary files differ diff --git a/src/components/threejs/finalCloud.pcd b/src/components/threejs/finalCloud.pcd new file mode 100644 index 0000000..b07d7d8 --- /dev/null +++ b/src/components/threejs/finalCloud.pcd Binary files differ diff --git a/src/components/threejs/index.vue b/src/components/threejs/index.vue new file mode 100644 index 0000000..08b880c --- /dev/null +++ b/src/components/threejs/index.vue @@ -0,0 +1,52 @@ + + + + + diff --git a/src/components/threejs/init.js b/src/components/threejs/init.js new file mode 100644 index 0000000..87e4904 --- /dev/null +++ b/src/components/threejs/init.js @@ -0,0 +1,274 @@ +/** + * 初始化场景 + */ +import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls.js' +import * as THREE from 'three' +import { PCDLoader } from 'three/examples/jsm/loaders/PCDLoader.js' + +// 类声明 +class SceneInit { + /** + * 构造函数,用来初始化 + * @param dom dom + * @param cameraObj + */ + constructor(dom, cameraObj) { + console.log('dom', dom) + console.log('cameraObj', cameraObj) + + this.dom = dom // 创建dom属性 + this.groupObj = { // 创建groupObj属性 + gridHelperGroup: undefined, + } + // render前的回调函数集合 + this.animateCallBackArray = [] + this.init(cameraObj) + } + + /** + * 初始化 + */ + init(cameraObj) { + // 初始化Renderer + this.initRenderer() + // 初始化摄像头 + this.initCamera(cameraObj) + // 初始化场景 + this.initScene() + // 初始化灯源 + this.initLight() + // 摄像头控制器 + this.initControls() + this.animateCallBackArray = [] + // 动画 + // setTimeout(() => { + this.animate() + this.resizeFun = this.updataWh.bind(this) + window.addEventListener('resize', this.resizeFun) + } + + /** + * 初始化渲染器 + */ + initRenderer() { + this.renderer = new THREE.WebGLRenderer({ + alpha: this.alpha, // 画布透明 + depthTest: true, // 深度测试 + antialias: true, // 是否开启抗锯齿效果,默认值为false。 + logarithmicDepthBuffer: true, // 对数深度缓存 + }) + // width和height用来设置Three.js输出的Canvas画布尺寸(像素px) + this.width = this.dom.clientWidth // 窗口文档显示区的宽度作为画布宽度 + this.height = this.dom.clientHeight // 窗口文档显示区的高度作为画布高度 + this.renderer.localClippingEnabled = true // 启用局部裁剪 + this.renderer.setSize(this.width, this.height) // 设置three.js渲染区域的尺寸(像素px) + this.renderer.shadowMap.enabled = true // 如果遇到阴影贴图 必须渲染 + this.renderer.sortObjects = true // 用于控制three.js中物体的渲染顺序 + this.renderer.setPixelRatio(window.devicePixelRatio * 1) // 用于设置设备的像素比 通过设置设备像素比,可以优化高分辨率设备上的渲染效果,确保图形在不同分辨率的设备上都能清晰显示。 + this.renderer.domElement.style.position = 'absolute' + this.renderer.domElement.style.top = '0px' + this.renderer.domElement.style.left = '0px' + // three.js执行渲染命令会输出一个canvas画布,也就是一个HTML元素,你可以插入到web页面中 + this.dom.appendChild(this.renderer.domElement) + this.renderer.domElement.classList.add('threeCanvas') // 设置画布的class,非必须 + // this.renderer.outputEncoding = THREE.sRGBEncoding; + this.renderer.gammaFactor = 2.2 + this.renderer.gammaOutPut = true + this.renderer.shadowMap.type = THREE.PCFSoftShadowMap + + this.renderer.toneMappingExposure = 1.0 + // 物理灯光 + this.renderer.physicallyCorrectLights = true + } + + /** + * 初始化摄像头 + */ + + initCamera(cameraObj) { + if (!cameraObj) { + cameraObj = { + fov: 45, // 摄像机视锥体垂直视野角度。 + aspect: this.width / this.height, // 摄像机视锥体长宽比。 + near: 0.1, // 摄像机视锥体近端面。 + far: 100000, // 摄像机视锥体远端面。 + // position: [0, 50, 85], + // position: [62, 67, 20], + position: [0, 0, 12], + } + } + this.camera = new THREE.PerspectiveCamera( + cameraObj.fov, + this.width / this.height, // 摄像机视锥体长宽比。 + // cameraObj.aspect, + cameraObj.near, + cameraObj.far, + ) + this.camera.position.set(...cameraObj.position) + // this.camera.position.set([0, 50, 85]) + } + + /** + * 初始化场景 + */ + initScene() { + this.scene = new THREE.Scene() + } + + /** + * 初始化灯源 + */ + initLight() { + // 默认环境光 + const ambientLight = new THREE.AmbientLight(0xFFFFFF) // 环境光 + this.scene.add(ambientLight) + ambientLight.intensity = 0.3 // 光照强度 + const hemiLight = new THREE.HemisphereLight(0xFFFFBB, 0x080820, 1) // 模拟天空和地面的光照效果 + this.scene.add(hemiLight) + } + + /** + * 初始化控制器 + */ + initControls() { + this.controller = new OrbitControls(this.camera, this.renderer.domElement) + } + + /** + *宽高变更时自动适配 + */ + updataWh() { + this.width = this.dom.clientWidth + this.height = this.dom.clientHeight + this.camera.aspect = this.width / this.height + this.camera.updateProjectionMatrix() + this.renderer.setSize(this.width, this.height) + } + + /** + * 动画渲染 + * threejs可以借助HTML5的API请求动画帧window.requestAnimationFrame实现动画渲染。 + **/ + animate(time) { + // 请求动画帧window.requestAnimationFrame + // requestAnimationFrame实现周期性循环执行 + // requestAnimationFrame默认每秒钟执行60次,但不一定能做到,要看代码的性能 + this.animateKey = requestAnimationFrame(this.animate.bind(this)) + if (this.controller) { + this.controller.update() + } + // 额外回调 + for (let i = 0; i < this.animateCallBackArray.length; i++) { + if (this.animateCallBackArray[i]) { + this.animateCallBackArray[i](time, this.renderer, this.scene) + } + } + this.renders() + } + + /** + * 网格辅助线 + */ + grid() { + // 网格的大小(宽度和高度) 它定义了从中心到边缘的距离,整个网格的实际尺寸是2 * size‌ + const size = 1000 + // 网格的划分数量,即网格线上有多少个分割点 + const divisions = 60 + // 主要颜色,默认为0x444444(深灰色),用于主轴线‌ + const colorMain = '0x444444' + // 次要颜色,默认为0x888888(浅灰色),用于其他线‌ + const colorSecondary = '0x888888' + this.groupObj.gridHelperGroup = new THREE.GridHelper( + size, + divisions, + // colorMain, + // colorSecondary, + ) + this.scene.add(this.groupObj.gridHelperGroup) + } + + /** + * 渲染 + */ + renders() { + if (this.renderer) { + this.renderer.render(this.scene, this.camera) + } + } + + /** + * 获取根对象,便于其它类使用公共场景变量 + */ + getRoot() { + return { + scene: this.scene, + renderer: this.renderer, + controller: this.controller, + camera: this.camera, + addAnimateCallBack: this.addAnimateCallBack, + removeAnimateCallBack: this.removeAnimateCallBack, + } + } + + /** + * + * 更新前的回调,暂用于模型矩阵变化动画 + */ + addAnimateCallBack = (fun) => { + const index = this.animateCallBackArray.length + this.animateCallBackArray.push(fun) + return index + } + + /** + * + * 更新前的回调,暂用于模型矩阵变化动画 + */ + removeAnimateCallBack = (index) => { + this.animateCallBackArray[index] = false + } + + /** + * 销毁,释放内存 + */ + destroy() { + cancelAnimationFrame(this.animateKey) + this.scene.traverse((child) => { + if (child instanceof THREE.Mesh) { + if (child.material) { + child.material.dispose && child.material.dispose() + } + if (child.geometry) { + child.geometry && child.geometry.dispose() + } + + !!child.clear && child.clear() + child = null + } + }) + this.scene.environment = null + this.scene.clear() + const dom = this.renderer.domElement + if (dom) { + dom.parentNode.removeChild(dom) + } + this.renderer.renderLists.dispose() + this.renderer.dispose() + this.renderer.forceContextLoss() + this.renderer.domElement = null + this.renderer.content = null + this.renderer = null + window.removeEventListener('resize', this.resizeFun) + } + + // 加载点云 + loadPCD(padPath) { + const loader = new PCDLoader() + loader.load(padPath, (points) => { + this.scene.add(points) // 直接将点云添加到场景中 + this.animate() + }) + } +} + +export default SceneInit diff --git a/src/router/index.ts b/src/router/index.ts index e4760f5..9ce2c1b 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -44,7 +44,8 @@ // 如果已登录状态下,进入登录页会强制跳转到控制台页面 if (to.name === 'login') { next({ - name: 'dashboard', + // name: 'dashboard', + name: 'PatrolManage', replace: true, }) } @@ -151,7 +152,8 @@ // 如果已登录状态下,进入登录页会强制跳转到控制台页面 if (to.name === 'login') { next({ - name: 'dashboard', + // name: 'dashboard', + name: 'PatrolManage', replace: true, }) } diff --git a/src/router/modules/menus.ts b/src/router/modules/menus.ts index 9aa7fe3..af35115 100644 --- a/src/router/modules/menus.ts +++ b/src/router/modules/menus.ts @@ -1,5 +1,6 @@ // 所有菜单路由 import systemRoutes from './system' +import patrolRoutes from './patrol' import type { Route } from '@/global' const Layout = () => import('@/layouts/index.vue') @@ -8,7 +9,7 @@ { path: '/home', component: Layout, - redirect: '/home/index', + redirect: '/patrol/navigation', name: 'Home', meta: { title: '首页', @@ -31,6 +32,8 @@ }, ], }, + // 巡检管理 + ...patrolRoutes, // 系统路由 ...systemRoutes, ] diff --git a/src/router/modules/patrol.ts b/src/router/modules/patrol.ts new file mode 100644 index 0000000..8d6a735 --- /dev/null +++ b/src/router/modules/patrol.ts @@ -0,0 +1,46 @@ +// 巡检管理 +import type { Route } from '@/global' + +const Layout = () => import('@/layouts/index.vue') + +const routes: Route.recordRaw[] = [ + { + path: '/patrol', + component: Layout, + redirect: '/patrol', + name: 'Patrol', + meta: { + title: '巡检管理', + icon: 'ep:key', + auth: '/patrol', + }, + children: [ + { + path: 'manage', + name: 'PatrolManage', + component: () => import('@/views/patrol/manage/index.vue'), + meta: { + title: '巡检管理', + auth: '/patrol/manage', + sidebar: true, + breadcrumb: true, + activeMenu: '/patrol', + }, + }, + { + path: 'navigation', + name: 'PatrolNavigation', + component: () => import('@/views/patrol/navigation/index.vue'), + meta: { + title: '巡检导航', + auth: '/patrol/navigation', + sidebar: true, + breadcrumb: true, + activeMenu: '/patrol', + }, + }, + ], + }, +] + +export default routes diff --git a/.env.development b/.env.development index 3aaa28f..ba1ebf1 100644 --- a/.env.development +++ b/.env.development @@ -1,5 +1,5 @@ # 页面标题 -VITE_APP_TITLE = 机器狗巡检平台 +VITE_APP_TITLE = 巡检精灵综合管理平台 # 接口请求地址,会设置到 axios 的 baseURL 参数上 VITE_APP_API_BASEURL = http://111.198.10.15:11638 diff --git a/.env.production b/.env.production index 10cfdb7..da68e78 100644 --- a/.env.production +++ b/.env.production @@ -1,7 +1,7 @@ NODE_ENV = production # 页面标题 -VITE_APP_TITLE = 感知数据汇聚平台 +VITE_APP_TITLE = 巡检精灵综合管理平台 # 接口请求地址,会设置到 axios 的 baseURL 参数上 VITE_APP_API_BASEURL = http://111.198.10.15:11638 # 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空 diff --git a/README.md b/README.md index baadcb1..1cc1ffa 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ -

机器狗巡检平台

+

巡检精灵综合管理平台

-

机器狗巡检平台

+

巡检精灵综合管理平台

## 简要说明

diff --git a/package.json b/package.json index a6745d6..b8f7e9c 100644 --- a/package.json +++ b/package.json @@ -45,6 +45,7 @@ "print-js": "^1.6.0", "qrcode": "^1.5.1", "qs": "^6.11.0", + "three": "^0.173.0", "tinymce": "^6.2.0", "vue": "^3.2.44", "vue-pdf-embed": "^1.1.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 860f410..351badd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -57,6 +57,7 @@ stylelint-config-standard-vue: ^1.0.0 stylelint-scss: ^4.3.0 svgo: ^3.0.0 + three: ^0.173.0 tinymce: ^6.2.0 typescript: ^4.8.4 unplugin-auto-import: ^0.11.4 @@ -107,6 +108,7 @@ print-js: 1.6.0 qrcode: 1.5.4 qs: 6.13.1 + three: 0.173.0 tinymce: 6.8.5 vue: 3.5.13_typescript@4.9.5 vue-pdf-embed: 1.2.1_vue@3.5.13 @@ -8623,6 +8625,10 @@ resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} dev: true + /three/0.173.0: + resolution: {integrity: sha512-AUwVmViIEUgBwxJJ7stnF0NkPpZxx1aZ6WiAbQ/Qq61h6I9UR4grXtZDmO8mnlaNORhHnIBlXJ1uBxILEKuVyw==} + dev: false + /through/2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} dev: true diff --git a/public/4.pcd b/public/4.pcd new file mode 100644 index 0000000..a45a92e --- /dev/null +++ b/public/4.pcd Binary files differ diff --git a/public/config/config.json b/public/config/config.json index 0c02bb3..e5cba39 100644 --- a/public/config/config.json +++ b/public/config/config.json @@ -1,5 +1,5 @@ { - "title":"燃气物联感知平台", + "title":"巡检精灵综合管理平台", "baseUrl": "http://111.198.10.15:11645", "securityJsCode": "56bf9671d4b3517d294caec4751889a1", "JsKey": "40849e82b4e33f5255b17372520c954d", diff --git a/public/finalCloud.pcd b/public/finalCloud.pcd new file mode 100644 index 0000000..b07d7d8 --- /dev/null +++ b/public/finalCloud.pcd Binary files differ diff --git a/src/assets/icons/icon-patrol.svg b/src/assets/icons/icon-patrol.svg new file mode 100644 index 0000000..8619714 --- /dev/null +++ b/src/assets/icons/icon-patrol.svg @@ -0,0 +1 @@ + diff --git a/src/assets/tempImages/2.jpg b/src/assets/tempImages/2.jpg new file mode 100644 index 0000000..23e16e8 --- /dev/null +++ b/src/assets/tempImages/2.jpg Binary files differ diff --git a/src/assets/tempImages/control.png b/src/assets/tempImages/control.png new file mode 100644 index 0000000..27cb0a6 --- /dev/null +++ b/src/assets/tempImages/control.png Binary files differ diff --git a/src/assets/tempImages/dog-arm.jpg b/src/assets/tempImages/dog-arm.jpg new file mode 100644 index 0000000..53c25df --- /dev/null +++ b/src/assets/tempImages/dog-arm.jpg Binary files differ diff --git a/src/assets/tempImages/dog-picture.jpg b/src/assets/tempImages/dog-picture.jpg new file mode 100644 index 0000000..6d37211 --- /dev/null +++ b/src/assets/tempImages/dog-picture.jpg Binary files differ diff --git a/src/assets/tempImages/dog.png b/src/assets/tempImages/dog.png new file mode 100644 index 0000000..1672a81 --- /dev/null +++ b/src/assets/tempImages/dog.png Binary files differ diff --git a/src/assets/tempImages/icon-link.svg b/src/assets/tempImages/icon-link.svg new file mode 100644 index 0000000..28707bb --- /dev/null +++ b/src/assets/tempImages/icon-link.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/assets/tempImages/map.png b/src/assets/tempImages/map.png new file mode 100644 index 0000000..0530d85 --- /dev/null +++ b/src/assets/tempImages/map.png Binary files differ diff --git a/src/assets/tempImages/point.png b/src/assets/tempImages/point.png new file mode 100644 index 0000000..3a8be1f --- /dev/null +++ b/src/assets/tempImages/point.png Binary files differ diff --git a/src/assets/tempImages/sgjc.jpg b/src/assets/tempImages/sgjc.jpg new file mode 100644 index 0000000..a1c25e0 --- /dev/null +++ b/src/assets/tempImages/sgjc.jpg Binary files differ diff --git a/src/assets/tempImages/tyx.jpg b/src/assets/tempImages/tyx.jpg new file mode 100644 index 0000000..6d37211 --- /dev/null +++ b/src/assets/tempImages/tyx.jpg Binary files differ diff --git a/src/assets/tempImages/yrg.jpg b/src/assets/tempImages/yrg.jpg new file mode 100644 index 0000000..071a185 --- /dev/null +++ b/src/assets/tempImages/yrg.jpg Binary files differ diff --git a/src/components.d.ts b/src/components.d.ts index f651253..a0817c2 100644 --- a/src/components.d.ts +++ b/src/components.d.ts @@ -72,6 +72,7 @@ SvgIcon: typeof import('./components/SvgIcon/index.vue')['default'] SystemInfo: typeof import('./components/SystemInfo/index.vue')['default'] TableContainer: typeof import('./components/TableContainer/index.vue')['default'] + Threejs: typeof import('./components/threejs/index.vue')['default'] Trend: typeof import('./components/Trend/index.vue')['default'] } } diff --git a/src/components/NormalTable/index.vue b/src/components/NormalTable/index.vue index 63a2160..bf0b007 100644 --- a/src/components/NormalTable/index.vue +++ b/src/components/NormalTable/index.vue @@ -481,5 +481,10 @@ .el-radio__label { display: none !important; } + // 单元格样式 + .el-table__cell { + position: static !important; // 解决el-image 和 el-table冲突层级冲突问题 + z-index: 99999999; + } } diff --git a/src/components/threejs/4.pcd b/src/components/threejs/4.pcd new file mode 100644 index 0000000..a45a92e --- /dev/null +++ b/src/components/threejs/4.pcd Binary files differ diff --git a/src/components/threejs/finalCloud.pcd b/src/components/threejs/finalCloud.pcd new file mode 100644 index 0000000..b07d7d8 --- /dev/null +++ b/src/components/threejs/finalCloud.pcd Binary files differ diff --git a/src/components/threejs/index.vue b/src/components/threejs/index.vue new file mode 100644 index 0000000..08b880c --- /dev/null +++ b/src/components/threejs/index.vue @@ -0,0 +1,52 @@ + + + + + diff --git a/src/components/threejs/init.js b/src/components/threejs/init.js new file mode 100644 index 0000000..87e4904 --- /dev/null +++ b/src/components/threejs/init.js @@ -0,0 +1,274 @@ +/** + * 初始化场景 + */ +import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls.js' +import * as THREE from 'three' +import { PCDLoader } from 'three/examples/jsm/loaders/PCDLoader.js' + +// 类声明 +class SceneInit { + /** + * 构造函数,用来初始化 + * @param dom dom + * @param cameraObj + */ + constructor(dom, cameraObj) { + console.log('dom', dom) + console.log('cameraObj', cameraObj) + + this.dom = dom // 创建dom属性 + this.groupObj = { // 创建groupObj属性 + gridHelperGroup: undefined, + } + // render前的回调函数集合 + this.animateCallBackArray = [] + this.init(cameraObj) + } + + /** + * 初始化 + */ + init(cameraObj) { + // 初始化Renderer + this.initRenderer() + // 初始化摄像头 + this.initCamera(cameraObj) + // 初始化场景 + this.initScene() + // 初始化灯源 + this.initLight() + // 摄像头控制器 + this.initControls() + this.animateCallBackArray = [] + // 动画 + // setTimeout(() => { + this.animate() + this.resizeFun = this.updataWh.bind(this) + window.addEventListener('resize', this.resizeFun) + } + + /** + * 初始化渲染器 + */ + initRenderer() { + this.renderer = new THREE.WebGLRenderer({ + alpha: this.alpha, // 画布透明 + depthTest: true, // 深度测试 + antialias: true, // 是否开启抗锯齿效果,默认值为false。 + logarithmicDepthBuffer: true, // 对数深度缓存 + }) + // width和height用来设置Three.js输出的Canvas画布尺寸(像素px) + this.width = this.dom.clientWidth // 窗口文档显示区的宽度作为画布宽度 + this.height = this.dom.clientHeight // 窗口文档显示区的高度作为画布高度 + this.renderer.localClippingEnabled = true // 启用局部裁剪 + this.renderer.setSize(this.width, this.height) // 设置three.js渲染区域的尺寸(像素px) + this.renderer.shadowMap.enabled = true // 如果遇到阴影贴图 必须渲染 + this.renderer.sortObjects = true // 用于控制three.js中物体的渲染顺序 + this.renderer.setPixelRatio(window.devicePixelRatio * 1) // 用于设置设备的像素比 通过设置设备像素比,可以优化高分辨率设备上的渲染效果,确保图形在不同分辨率的设备上都能清晰显示。 + this.renderer.domElement.style.position = 'absolute' + this.renderer.domElement.style.top = '0px' + this.renderer.domElement.style.left = '0px' + // three.js执行渲染命令会输出一个canvas画布,也就是一个HTML元素,你可以插入到web页面中 + this.dom.appendChild(this.renderer.domElement) + this.renderer.domElement.classList.add('threeCanvas') // 设置画布的class,非必须 + // this.renderer.outputEncoding = THREE.sRGBEncoding; + this.renderer.gammaFactor = 2.2 + this.renderer.gammaOutPut = true + this.renderer.shadowMap.type = THREE.PCFSoftShadowMap + + this.renderer.toneMappingExposure = 1.0 + // 物理灯光 + this.renderer.physicallyCorrectLights = true + } + + /** + * 初始化摄像头 + */ + + initCamera(cameraObj) { + if (!cameraObj) { + cameraObj = { + fov: 45, // 摄像机视锥体垂直视野角度。 + aspect: this.width / this.height, // 摄像机视锥体长宽比。 + near: 0.1, // 摄像机视锥体近端面。 + far: 100000, // 摄像机视锥体远端面。 + // position: [0, 50, 85], + // position: [62, 67, 20], + position: [0, 0, 12], + } + } + this.camera = new THREE.PerspectiveCamera( + cameraObj.fov, + this.width / this.height, // 摄像机视锥体长宽比。 + // cameraObj.aspect, + cameraObj.near, + cameraObj.far, + ) + this.camera.position.set(...cameraObj.position) + // this.camera.position.set([0, 50, 85]) + } + + /** + * 初始化场景 + */ + initScene() { + this.scene = new THREE.Scene() + } + + /** + * 初始化灯源 + */ + initLight() { + // 默认环境光 + const ambientLight = new THREE.AmbientLight(0xFFFFFF) // 环境光 + this.scene.add(ambientLight) + ambientLight.intensity = 0.3 // 光照强度 + const hemiLight = new THREE.HemisphereLight(0xFFFFBB, 0x080820, 1) // 模拟天空和地面的光照效果 + this.scene.add(hemiLight) + } + + /** + * 初始化控制器 + */ + initControls() { + this.controller = new OrbitControls(this.camera, this.renderer.domElement) + } + + /** + *宽高变更时自动适配 + */ + updataWh() { + this.width = this.dom.clientWidth + this.height = this.dom.clientHeight + this.camera.aspect = this.width / this.height + this.camera.updateProjectionMatrix() + this.renderer.setSize(this.width, this.height) + } + + /** + * 动画渲染 + * threejs可以借助HTML5的API请求动画帧window.requestAnimationFrame实现动画渲染。 + **/ + animate(time) { + // 请求动画帧window.requestAnimationFrame + // requestAnimationFrame实现周期性循环执行 + // requestAnimationFrame默认每秒钟执行60次,但不一定能做到,要看代码的性能 + this.animateKey = requestAnimationFrame(this.animate.bind(this)) + if (this.controller) { + this.controller.update() + } + // 额外回调 + for (let i = 0; i < this.animateCallBackArray.length; i++) { + if (this.animateCallBackArray[i]) { + this.animateCallBackArray[i](time, this.renderer, this.scene) + } + } + this.renders() + } + + /** + * 网格辅助线 + */ + grid() { + // 网格的大小(宽度和高度) 它定义了从中心到边缘的距离,整个网格的实际尺寸是2 * size‌ + const size = 1000 + // 网格的划分数量,即网格线上有多少个分割点 + const divisions = 60 + // 主要颜色,默认为0x444444(深灰色),用于主轴线‌ + const colorMain = '0x444444' + // 次要颜色,默认为0x888888(浅灰色),用于其他线‌ + const colorSecondary = '0x888888' + this.groupObj.gridHelperGroup = new THREE.GridHelper( + size, + divisions, + // colorMain, + // colorSecondary, + ) + this.scene.add(this.groupObj.gridHelperGroup) + } + + /** + * 渲染 + */ + renders() { + if (this.renderer) { + this.renderer.render(this.scene, this.camera) + } + } + + /** + * 获取根对象,便于其它类使用公共场景变量 + */ + getRoot() { + return { + scene: this.scene, + renderer: this.renderer, + controller: this.controller, + camera: this.camera, + addAnimateCallBack: this.addAnimateCallBack, + removeAnimateCallBack: this.removeAnimateCallBack, + } + } + + /** + * + * 更新前的回调,暂用于模型矩阵变化动画 + */ + addAnimateCallBack = (fun) => { + const index = this.animateCallBackArray.length + this.animateCallBackArray.push(fun) + return index + } + + /** + * + * 更新前的回调,暂用于模型矩阵变化动画 + */ + removeAnimateCallBack = (index) => { + this.animateCallBackArray[index] = false + } + + /** + * 销毁,释放内存 + */ + destroy() { + cancelAnimationFrame(this.animateKey) + this.scene.traverse((child) => { + if (child instanceof THREE.Mesh) { + if (child.material) { + child.material.dispose && child.material.dispose() + } + if (child.geometry) { + child.geometry && child.geometry.dispose() + } + + !!child.clear && child.clear() + child = null + } + }) + this.scene.environment = null + this.scene.clear() + const dom = this.renderer.domElement + if (dom) { + dom.parentNode.removeChild(dom) + } + this.renderer.renderLists.dispose() + this.renderer.dispose() + this.renderer.forceContextLoss() + this.renderer.domElement = null + this.renderer.content = null + this.renderer = null + window.removeEventListener('resize', this.resizeFun) + } + + // 加载点云 + loadPCD(padPath) { + const loader = new PCDLoader() + loader.load(padPath, (points) => { + this.scene.add(points) // 直接将点云添加到场景中 + this.animate() + }) + } +} + +export default SceneInit diff --git a/src/router/index.ts b/src/router/index.ts index e4760f5..9ce2c1b 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -44,7 +44,8 @@ // 如果已登录状态下,进入登录页会强制跳转到控制台页面 if (to.name === 'login') { next({ - name: 'dashboard', + // name: 'dashboard', + name: 'PatrolManage', replace: true, }) } @@ -151,7 +152,8 @@ // 如果已登录状态下,进入登录页会强制跳转到控制台页面 if (to.name === 'login') { next({ - name: 'dashboard', + // name: 'dashboard', + name: 'PatrolManage', replace: true, }) } diff --git a/src/router/modules/menus.ts b/src/router/modules/menus.ts index 9aa7fe3..af35115 100644 --- a/src/router/modules/menus.ts +++ b/src/router/modules/menus.ts @@ -1,5 +1,6 @@ // 所有菜单路由 import systemRoutes from './system' +import patrolRoutes from './patrol' import type { Route } from '@/global' const Layout = () => import('@/layouts/index.vue') @@ -8,7 +9,7 @@ { path: '/home', component: Layout, - redirect: '/home/index', + redirect: '/patrol/navigation', name: 'Home', meta: { title: '首页', @@ -31,6 +32,8 @@ }, ], }, + // 巡检管理 + ...patrolRoutes, // 系统路由 ...systemRoutes, ] diff --git a/src/router/modules/patrol.ts b/src/router/modules/patrol.ts new file mode 100644 index 0000000..8d6a735 --- /dev/null +++ b/src/router/modules/patrol.ts @@ -0,0 +1,46 @@ +// 巡检管理 +import type { Route } from '@/global' + +const Layout = () => import('@/layouts/index.vue') + +const routes: Route.recordRaw[] = [ + { + path: '/patrol', + component: Layout, + redirect: '/patrol', + name: 'Patrol', + meta: { + title: '巡检管理', + icon: 'ep:key', + auth: '/patrol', + }, + children: [ + { + path: 'manage', + name: 'PatrolManage', + component: () => import('@/views/patrol/manage/index.vue'), + meta: { + title: '巡检管理', + auth: '/patrol/manage', + sidebar: true, + breadcrumb: true, + activeMenu: '/patrol', + }, + }, + { + path: 'navigation', + name: 'PatrolNavigation', + component: () => import('@/views/patrol/navigation/index.vue'), + meta: { + title: '巡检导航', + auth: '/patrol/navigation', + sidebar: true, + breadcrumb: true, + activeMenu: '/patrol', + }, + }, + ], + }, +] + +export default routes diff --git a/src/utils/structure.ts b/src/utils/structure.ts index bc647d7..54507e9 100644 --- a/src/utils/structure.ts +++ b/src/utils/structure.ts @@ -130,7 +130,7 @@ * @param plainList 寻找列表中的父id * @returns 父id列表 */ -function findPid(plainList: Array): Array { +export function findPid(plainList: Array): Array { const pidList = new Set() if (plainList) { for (const item of plainList) { // 1.添加所有的父id diff --git a/.env.development b/.env.development index 3aaa28f..ba1ebf1 100644 --- a/.env.development +++ b/.env.development @@ -1,5 +1,5 @@ # 页面标题 -VITE_APP_TITLE = 机器狗巡检平台 +VITE_APP_TITLE = 巡检精灵综合管理平台 # 接口请求地址,会设置到 axios 的 baseURL 参数上 VITE_APP_API_BASEURL = http://111.198.10.15:11638 diff --git a/.env.production b/.env.production index 10cfdb7..da68e78 100644 --- a/.env.production +++ b/.env.production @@ -1,7 +1,7 @@ NODE_ENV = production # 页面标题 -VITE_APP_TITLE = 感知数据汇聚平台 +VITE_APP_TITLE = 巡检精灵综合管理平台 # 接口请求地址,会设置到 axios 的 baseURL 参数上 VITE_APP_API_BASEURL = http://111.198.10.15:11638 # 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空 diff --git a/README.md b/README.md index baadcb1..1cc1ffa 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ -

机器狗巡检平台

+

巡检精灵综合管理平台

-

机器狗巡检平台

+

巡检精灵综合管理平台

## 简要说明

diff --git a/package.json b/package.json index a6745d6..b8f7e9c 100644 --- a/package.json +++ b/package.json @@ -45,6 +45,7 @@ "print-js": "^1.6.0", "qrcode": "^1.5.1", "qs": "^6.11.0", + "three": "^0.173.0", "tinymce": "^6.2.0", "vue": "^3.2.44", "vue-pdf-embed": "^1.1.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 860f410..351badd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -57,6 +57,7 @@ stylelint-config-standard-vue: ^1.0.0 stylelint-scss: ^4.3.0 svgo: ^3.0.0 + three: ^0.173.0 tinymce: ^6.2.0 typescript: ^4.8.4 unplugin-auto-import: ^0.11.4 @@ -107,6 +108,7 @@ print-js: 1.6.0 qrcode: 1.5.4 qs: 6.13.1 + three: 0.173.0 tinymce: 6.8.5 vue: 3.5.13_typescript@4.9.5 vue-pdf-embed: 1.2.1_vue@3.5.13 @@ -8623,6 +8625,10 @@ resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} dev: true + /three/0.173.0: + resolution: {integrity: sha512-AUwVmViIEUgBwxJJ7stnF0NkPpZxx1aZ6WiAbQ/Qq61h6I9UR4grXtZDmO8mnlaNORhHnIBlXJ1uBxILEKuVyw==} + dev: false + /through/2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} dev: true diff --git a/public/4.pcd b/public/4.pcd new file mode 100644 index 0000000..a45a92e --- /dev/null +++ b/public/4.pcd Binary files differ diff --git a/public/config/config.json b/public/config/config.json index 0c02bb3..e5cba39 100644 --- a/public/config/config.json +++ b/public/config/config.json @@ -1,5 +1,5 @@ { - "title":"燃气物联感知平台", + "title":"巡检精灵综合管理平台", "baseUrl": "http://111.198.10.15:11645", "securityJsCode": "56bf9671d4b3517d294caec4751889a1", "JsKey": "40849e82b4e33f5255b17372520c954d", diff --git a/public/finalCloud.pcd b/public/finalCloud.pcd new file mode 100644 index 0000000..b07d7d8 --- /dev/null +++ b/public/finalCloud.pcd Binary files differ diff --git a/src/assets/icons/icon-patrol.svg b/src/assets/icons/icon-patrol.svg new file mode 100644 index 0000000..8619714 --- /dev/null +++ b/src/assets/icons/icon-patrol.svg @@ -0,0 +1 @@ + diff --git a/src/assets/tempImages/2.jpg b/src/assets/tempImages/2.jpg new file mode 100644 index 0000000..23e16e8 --- /dev/null +++ b/src/assets/tempImages/2.jpg Binary files differ diff --git a/src/assets/tempImages/control.png b/src/assets/tempImages/control.png new file mode 100644 index 0000000..27cb0a6 --- /dev/null +++ b/src/assets/tempImages/control.png Binary files differ diff --git a/src/assets/tempImages/dog-arm.jpg b/src/assets/tempImages/dog-arm.jpg new file mode 100644 index 0000000..53c25df --- /dev/null +++ b/src/assets/tempImages/dog-arm.jpg Binary files differ diff --git a/src/assets/tempImages/dog-picture.jpg b/src/assets/tempImages/dog-picture.jpg new file mode 100644 index 0000000..6d37211 --- /dev/null +++ b/src/assets/tempImages/dog-picture.jpg Binary files differ diff --git a/src/assets/tempImages/dog.png b/src/assets/tempImages/dog.png new file mode 100644 index 0000000..1672a81 --- /dev/null +++ b/src/assets/tempImages/dog.png Binary files differ diff --git a/src/assets/tempImages/icon-link.svg b/src/assets/tempImages/icon-link.svg new file mode 100644 index 0000000..28707bb --- /dev/null +++ b/src/assets/tempImages/icon-link.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/assets/tempImages/map.png b/src/assets/tempImages/map.png new file mode 100644 index 0000000..0530d85 --- /dev/null +++ b/src/assets/tempImages/map.png Binary files differ diff --git a/src/assets/tempImages/point.png b/src/assets/tempImages/point.png new file mode 100644 index 0000000..3a8be1f --- /dev/null +++ b/src/assets/tempImages/point.png Binary files differ diff --git a/src/assets/tempImages/sgjc.jpg b/src/assets/tempImages/sgjc.jpg new file mode 100644 index 0000000..a1c25e0 --- /dev/null +++ b/src/assets/tempImages/sgjc.jpg Binary files differ diff --git a/src/assets/tempImages/tyx.jpg b/src/assets/tempImages/tyx.jpg new file mode 100644 index 0000000..6d37211 --- /dev/null +++ b/src/assets/tempImages/tyx.jpg Binary files differ diff --git a/src/assets/tempImages/yrg.jpg b/src/assets/tempImages/yrg.jpg new file mode 100644 index 0000000..071a185 --- /dev/null +++ b/src/assets/tempImages/yrg.jpg Binary files differ diff --git a/src/components.d.ts b/src/components.d.ts index f651253..a0817c2 100644 --- a/src/components.d.ts +++ b/src/components.d.ts @@ -72,6 +72,7 @@ SvgIcon: typeof import('./components/SvgIcon/index.vue')['default'] SystemInfo: typeof import('./components/SystemInfo/index.vue')['default'] TableContainer: typeof import('./components/TableContainer/index.vue')['default'] + Threejs: typeof import('./components/threejs/index.vue')['default'] Trend: typeof import('./components/Trend/index.vue')['default'] } } diff --git a/src/components/NormalTable/index.vue b/src/components/NormalTable/index.vue index 63a2160..bf0b007 100644 --- a/src/components/NormalTable/index.vue +++ b/src/components/NormalTable/index.vue @@ -481,5 +481,10 @@ .el-radio__label { display: none !important; } + // 单元格样式 + .el-table__cell { + position: static !important; // 解决el-image 和 el-table冲突层级冲突问题 + z-index: 99999999; + } } diff --git a/src/components/threejs/4.pcd b/src/components/threejs/4.pcd new file mode 100644 index 0000000..a45a92e --- /dev/null +++ b/src/components/threejs/4.pcd Binary files differ diff --git a/src/components/threejs/finalCloud.pcd b/src/components/threejs/finalCloud.pcd new file mode 100644 index 0000000..b07d7d8 --- /dev/null +++ b/src/components/threejs/finalCloud.pcd Binary files differ diff --git a/src/components/threejs/index.vue b/src/components/threejs/index.vue new file mode 100644 index 0000000..08b880c --- /dev/null +++ b/src/components/threejs/index.vue @@ -0,0 +1,52 @@ + + + + + diff --git a/src/components/threejs/init.js b/src/components/threejs/init.js new file mode 100644 index 0000000..87e4904 --- /dev/null +++ b/src/components/threejs/init.js @@ -0,0 +1,274 @@ +/** + * 初始化场景 + */ +import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls.js' +import * as THREE from 'three' +import { PCDLoader } from 'three/examples/jsm/loaders/PCDLoader.js' + +// 类声明 +class SceneInit { + /** + * 构造函数,用来初始化 + * @param dom dom + * @param cameraObj + */ + constructor(dom, cameraObj) { + console.log('dom', dom) + console.log('cameraObj', cameraObj) + + this.dom = dom // 创建dom属性 + this.groupObj = { // 创建groupObj属性 + gridHelperGroup: undefined, + } + // render前的回调函数集合 + this.animateCallBackArray = [] + this.init(cameraObj) + } + + /** + * 初始化 + */ + init(cameraObj) { + // 初始化Renderer + this.initRenderer() + // 初始化摄像头 + this.initCamera(cameraObj) + // 初始化场景 + this.initScene() + // 初始化灯源 + this.initLight() + // 摄像头控制器 + this.initControls() + this.animateCallBackArray = [] + // 动画 + // setTimeout(() => { + this.animate() + this.resizeFun = this.updataWh.bind(this) + window.addEventListener('resize', this.resizeFun) + } + + /** + * 初始化渲染器 + */ + initRenderer() { + this.renderer = new THREE.WebGLRenderer({ + alpha: this.alpha, // 画布透明 + depthTest: true, // 深度测试 + antialias: true, // 是否开启抗锯齿效果,默认值为false。 + logarithmicDepthBuffer: true, // 对数深度缓存 + }) + // width和height用来设置Three.js输出的Canvas画布尺寸(像素px) + this.width = this.dom.clientWidth // 窗口文档显示区的宽度作为画布宽度 + this.height = this.dom.clientHeight // 窗口文档显示区的高度作为画布高度 + this.renderer.localClippingEnabled = true // 启用局部裁剪 + this.renderer.setSize(this.width, this.height) // 设置three.js渲染区域的尺寸(像素px) + this.renderer.shadowMap.enabled = true // 如果遇到阴影贴图 必须渲染 + this.renderer.sortObjects = true // 用于控制three.js中物体的渲染顺序 + this.renderer.setPixelRatio(window.devicePixelRatio * 1) // 用于设置设备的像素比 通过设置设备像素比,可以优化高分辨率设备上的渲染效果,确保图形在不同分辨率的设备上都能清晰显示。 + this.renderer.domElement.style.position = 'absolute' + this.renderer.domElement.style.top = '0px' + this.renderer.domElement.style.left = '0px' + // three.js执行渲染命令会输出一个canvas画布,也就是一个HTML元素,你可以插入到web页面中 + this.dom.appendChild(this.renderer.domElement) + this.renderer.domElement.classList.add('threeCanvas') // 设置画布的class,非必须 + // this.renderer.outputEncoding = THREE.sRGBEncoding; + this.renderer.gammaFactor = 2.2 + this.renderer.gammaOutPut = true + this.renderer.shadowMap.type = THREE.PCFSoftShadowMap + + this.renderer.toneMappingExposure = 1.0 + // 物理灯光 + this.renderer.physicallyCorrectLights = true + } + + /** + * 初始化摄像头 + */ + + initCamera(cameraObj) { + if (!cameraObj) { + cameraObj = { + fov: 45, // 摄像机视锥体垂直视野角度。 + aspect: this.width / this.height, // 摄像机视锥体长宽比。 + near: 0.1, // 摄像机视锥体近端面。 + far: 100000, // 摄像机视锥体远端面。 + // position: [0, 50, 85], + // position: [62, 67, 20], + position: [0, 0, 12], + } + } + this.camera = new THREE.PerspectiveCamera( + cameraObj.fov, + this.width / this.height, // 摄像机视锥体长宽比。 + // cameraObj.aspect, + cameraObj.near, + cameraObj.far, + ) + this.camera.position.set(...cameraObj.position) + // this.camera.position.set([0, 50, 85]) + } + + /** + * 初始化场景 + */ + initScene() { + this.scene = new THREE.Scene() + } + + /** + * 初始化灯源 + */ + initLight() { + // 默认环境光 + const ambientLight = new THREE.AmbientLight(0xFFFFFF) // 环境光 + this.scene.add(ambientLight) + ambientLight.intensity = 0.3 // 光照强度 + const hemiLight = new THREE.HemisphereLight(0xFFFFBB, 0x080820, 1) // 模拟天空和地面的光照效果 + this.scene.add(hemiLight) + } + + /** + * 初始化控制器 + */ + initControls() { + this.controller = new OrbitControls(this.camera, this.renderer.domElement) + } + + /** + *宽高变更时自动适配 + */ + updataWh() { + this.width = this.dom.clientWidth + this.height = this.dom.clientHeight + this.camera.aspect = this.width / this.height + this.camera.updateProjectionMatrix() + this.renderer.setSize(this.width, this.height) + } + + /** + * 动画渲染 + * threejs可以借助HTML5的API请求动画帧window.requestAnimationFrame实现动画渲染。 + **/ + animate(time) { + // 请求动画帧window.requestAnimationFrame + // requestAnimationFrame实现周期性循环执行 + // requestAnimationFrame默认每秒钟执行60次,但不一定能做到,要看代码的性能 + this.animateKey = requestAnimationFrame(this.animate.bind(this)) + if (this.controller) { + this.controller.update() + } + // 额外回调 + for (let i = 0; i < this.animateCallBackArray.length; i++) { + if (this.animateCallBackArray[i]) { + this.animateCallBackArray[i](time, this.renderer, this.scene) + } + } + this.renders() + } + + /** + * 网格辅助线 + */ + grid() { + // 网格的大小(宽度和高度) 它定义了从中心到边缘的距离,整个网格的实际尺寸是2 * size‌ + const size = 1000 + // 网格的划分数量,即网格线上有多少个分割点 + const divisions = 60 + // 主要颜色,默认为0x444444(深灰色),用于主轴线‌ + const colorMain = '0x444444' + // 次要颜色,默认为0x888888(浅灰色),用于其他线‌ + const colorSecondary = '0x888888' + this.groupObj.gridHelperGroup = new THREE.GridHelper( + size, + divisions, + // colorMain, + // colorSecondary, + ) + this.scene.add(this.groupObj.gridHelperGroup) + } + + /** + * 渲染 + */ + renders() { + if (this.renderer) { + this.renderer.render(this.scene, this.camera) + } + } + + /** + * 获取根对象,便于其它类使用公共场景变量 + */ + getRoot() { + return { + scene: this.scene, + renderer: this.renderer, + controller: this.controller, + camera: this.camera, + addAnimateCallBack: this.addAnimateCallBack, + removeAnimateCallBack: this.removeAnimateCallBack, + } + } + + /** + * + * 更新前的回调,暂用于模型矩阵变化动画 + */ + addAnimateCallBack = (fun) => { + const index = this.animateCallBackArray.length + this.animateCallBackArray.push(fun) + return index + } + + /** + * + * 更新前的回调,暂用于模型矩阵变化动画 + */ + removeAnimateCallBack = (index) => { + this.animateCallBackArray[index] = false + } + + /** + * 销毁,释放内存 + */ + destroy() { + cancelAnimationFrame(this.animateKey) + this.scene.traverse((child) => { + if (child instanceof THREE.Mesh) { + if (child.material) { + child.material.dispose && child.material.dispose() + } + if (child.geometry) { + child.geometry && child.geometry.dispose() + } + + !!child.clear && child.clear() + child = null + } + }) + this.scene.environment = null + this.scene.clear() + const dom = this.renderer.domElement + if (dom) { + dom.parentNode.removeChild(dom) + } + this.renderer.renderLists.dispose() + this.renderer.dispose() + this.renderer.forceContextLoss() + this.renderer.domElement = null + this.renderer.content = null + this.renderer = null + window.removeEventListener('resize', this.resizeFun) + } + + // 加载点云 + loadPCD(padPath) { + const loader = new PCDLoader() + loader.load(padPath, (points) => { + this.scene.add(points) // 直接将点云添加到场景中 + this.animate() + }) + } +} + +export default SceneInit diff --git a/src/router/index.ts b/src/router/index.ts index e4760f5..9ce2c1b 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -44,7 +44,8 @@ // 如果已登录状态下,进入登录页会强制跳转到控制台页面 if (to.name === 'login') { next({ - name: 'dashboard', + // name: 'dashboard', + name: 'PatrolManage', replace: true, }) } @@ -151,7 +152,8 @@ // 如果已登录状态下,进入登录页会强制跳转到控制台页面 if (to.name === 'login') { next({ - name: 'dashboard', + // name: 'dashboard', + name: 'PatrolManage', replace: true, }) } diff --git a/src/router/modules/menus.ts b/src/router/modules/menus.ts index 9aa7fe3..af35115 100644 --- a/src/router/modules/menus.ts +++ b/src/router/modules/menus.ts @@ -1,5 +1,6 @@ // 所有菜单路由 import systemRoutes from './system' +import patrolRoutes from './patrol' import type { Route } from '@/global' const Layout = () => import('@/layouts/index.vue') @@ -8,7 +9,7 @@ { path: '/home', component: Layout, - redirect: '/home/index', + redirect: '/patrol/navigation', name: 'Home', meta: { title: '首页', @@ -31,6 +32,8 @@ }, ], }, + // 巡检管理 + ...patrolRoutes, // 系统路由 ...systemRoutes, ] diff --git a/src/router/modules/patrol.ts b/src/router/modules/patrol.ts new file mode 100644 index 0000000..8d6a735 --- /dev/null +++ b/src/router/modules/patrol.ts @@ -0,0 +1,46 @@ +// 巡检管理 +import type { Route } from '@/global' + +const Layout = () => import('@/layouts/index.vue') + +const routes: Route.recordRaw[] = [ + { + path: '/patrol', + component: Layout, + redirect: '/patrol', + name: 'Patrol', + meta: { + title: '巡检管理', + icon: 'ep:key', + auth: '/patrol', + }, + children: [ + { + path: 'manage', + name: 'PatrolManage', + component: () => import('@/views/patrol/manage/index.vue'), + meta: { + title: '巡检管理', + auth: '/patrol/manage', + sidebar: true, + breadcrumb: true, + activeMenu: '/patrol', + }, + }, + { + path: 'navigation', + name: 'PatrolNavigation', + component: () => import('@/views/patrol/navigation/index.vue'), + meta: { + title: '巡检导航', + auth: '/patrol/navigation', + sidebar: true, + breadcrumb: true, + activeMenu: '/patrol', + }, + }, + ], + }, +] + +export default routes diff --git a/src/utils/structure.ts b/src/utils/structure.ts index bc647d7..54507e9 100644 --- a/src/utils/structure.ts +++ b/src/utils/structure.ts @@ -130,7 +130,7 @@ * @param plainList 寻找列表中的父id * @returns 父id列表 */ -function findPid(plainList: Array): Array { +export function findPid(plainList: Array): Array { const pidList = new Set() if (plainList) { for (const item of plainList) { // 1.添加所有的父id diff --git a/src/views/home/dashboard/index.vue b/src/views/home/dashboard/index.vue index 3435e67..8bef3fa 100644 --- a/src/views/home/dashboard/index.vue +++ b/src/views/home/dashboard/index.vue @@ -1,288 +1,23 @@ -首页 + diff --git a/.env.development b/.env.development index 3aaa28f..ba1ebf1 100644 --- a/.env.development +++ b/.env.development @@ -1,5 +1,5 @@ # 页面标题 -VITE_APP_TITLE = 机器狗巡检平台 +VITE_APP_TITLE = 巡检精灵综合管理平台 # 接口请求地址,会设置到 axios 的 baseURL 参数上 VITE_APP_API_BASEURL = http://111.198.10.15:11638 diff --git a/.env.production b/.env.production index 10cfdb7..da68e78 100644 --- a/.env.production +++ b/.env.production @@ -1,7 +1,7 @@ NODE_ENV = production # 页面标题 -VITE_APP_TITLE = 感知数据汇聚平台 +VITE_APP_TITLE = 巡检精灵综合管理平台 # 接口请求地址,会设置到 axios 的 baseURL 参数上 VITE_APP_API_BASEURL = http://111.198.10.15:11638 # 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空 diff --git a/README.md b/README.md index baadcb1..1cc1ffa 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ -

机器狗巡检平台

+

巡检精灵综合管理平台

-

机器狗巡检平台

+

巡检精灵综合管理平台

## 简要说明

diff --git a/package.json b/package.json index a6745d6..b8f7e9c 100644 --- a/package.json +++ b/package.json @@ -45,6 +45,7 @@ "print-js": "^1.6.0", "qrcode": "^1.5.1", "qs": "^6.11.0", + "three": "^0.173.0", "tinymce": "^6.2.0", "vue": "^3.2.44", "vue-pdf-embed": "^1.1.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 860f410..351badd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -57,6 +57,7 @@ stylelint-config-standard-vue: ^1.0.0 stylelint-scss: ^4.3.0 svgo: ^3.0.0 + three: ^0.173.0 tinymce: ^6.2.0 typescript: ^4.8.4 unplugin-auto-import: ^0.11.4 @@ -107,6 +108,7 @@ print-js: 1.6.0 qrcode: 1.5.4 qs: 6.13.1 + three: 0.173.0 tinymce: 6.8.5 vue: 3.5.13_typescript@4.9.5 vue-pdf-embed: 1.2.1_vue@3.5.13 @@ -8623,6 +8625,10 @@ resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} dev: true + /three/0.173.0: + resolution: {integrity: sha512-AUwVmViIEUgBwxJJ7stnF0NkPpZxx1aZ6WiAbQ/Qq61h6I9UR4grXtZDmO8mnlaNORhHnIBlXJ1uBxILEKuVyw==} + dev: false + /through/2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} dev: true diff --git a/public/4.pcd b/public/4.pcd new file mode 100644 index 0000000..a45a92e --- /dev/null +++ b/public/4.pcd Binary files differ diff --git a/public/config/config.json b/public/config/config.json index 0c02bb3..e5cba39 100644 --- a/public/config/config.json +++ b/public/config/config.json @@ -1,5 +1,5 @@ { - "title":"燃气物联感知平台", + "title":"巡检精灵综合管理平台", "baseUrl": "http://111.198.10.15:11645", "securityJsCode": "56bf9671d4b3517d294caec4751889a1", "JsKey": "40849e82b4e33f5255b17372520c954d", diff --git a/public/finalCloud.pcd b/public/finalCloud.pcd new file mode 100644 index 0000000..b07d7d8 --- /dev/null +++ b/public/finalCloud.pcd Binary files differ diff --git a/src/assets/icons/icon-patrol.svg b/src/assets/icons/icon-patrol.svg new file mode 100644 index 0000000..8619714 --- /dev/null +++ b/src/assets/icons/icon-patrol.svg @@ -0,0 +1 @@ + diff --git a/src/assets/tempImages/2.jpg b/src/assets/tempImages/2.jpg new file mode 100644 index 0000000..23e16e8 --- /dev/null +++ b/src/assets/tempImages/2.jpg Binary files differ diff --git a/src/assets/tempImages/control.png b/src/assets/tempImages/control.png new file mode 100644 index 0000000..27cb0a6 --- /dev/null +++ b/src/assets/tempImages/control.png Binary files differ diff --git a/src/assets/tempImages/dog-arm.jpg b/src/assets/tempImages/dog-arm.jpg new file mode 100644 index 0000000..53c25df --- /dev/null +++ b/src/assets/tempImages/dog-arm.jpg Binary files differ diff --git a/src/assets/tempImages/dog-picture.jpg b/src/assets/tempImages/dog-picture.jpg new file mode 100644 index 0000000..6d37211 --- /dev/null +++ b/src/assets/tempImages/dog-picture.jpg Binary files differ diff --git a/src/assets/tempImages/dog.png b/src/assets/tempImages/dog.png new file mode 100644 index 0000000..1672a81 --- /dev/null +++ b/src/assets/tempImages/dog.png Binary files differ diff --git a/src/assets/tempImages/icon-link.svg b/src/assets/tempImages/icon-link.svg new file mode 100644 index 0000000..28707bb --- /dev/null +++ b/src/assets/tempImages/icon-link.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/assets/tempImages/map.png b/src/assets/tempImages/map.png new file mode 100644 index 0000000..0530d85 --- /dev/null +++ b/src/assets/tempImages/map.png Binary files differ diff --git a/src/assets/tempImages/point.png b/src/assets/tempImages/point.png new file mode 100644 index 0000000..3a8be1f --- /dev/null +++ b/src/assets/tempImages/point.png Binary files differ diff --git a/src/assets/tempImages/sgjc.jpg b/src/assets/tempImages/sgjc.jpg new file mode 100644 index 0000000..a1c25e0 --- /dev/null +++ b/src/assets/tempImages/sgjc.jpg Binary files differ diff --git a/src/assets/tempImages/tyx.jpg b/src/assets/tempImages/tyx.jpg new file mode 100644 index 0000000..6d37211 --- /dev/null +++ b/src/assets/tempImages/tyx.jpg Binary files differ diff --git a/src/assets/tempImages/yrg.jpg b/src/assets/tempImages/yrg.jpg new file mode 100644 index 0000000..071a185 --- /dev/null +++ b/src/assets/tempImages/yrg.jpg Binary files differ diff --git a/src/components.d.ts b/src/components.d.ts index f651253..a0817c2 100644 --- a/src/components.d.ts +++ b/src/components.d.ts @@ -72,6 +72,7 @@ SvgIcon: typeof import('./components/SvgIcon/index.vue')['default'] SystemInfo: typeof import('./components/SystemInfo/index.vue')['default'] TableContainer: typeof import('./components/TableContainer/index.vue')['default'] + Threejs: typeof import('./components/threejs/index.vue')['default'] Trend: typeof import('./components/Trend/index.vue')['default'] } } diff --git a/src/components/NormalTable/index.vue b/src/components/NormalTable/index.vue index 63a2160..bf0b007 100644 --- a/src/components/NormalTable/index.vue +++ b/src/components/NormalTable/index.vue @@ -481,5 +481,10 @@ .el-radio__label { display: none !important; } + // 单元格样式 + .el-table__cell { + position: static !important; // 解决el-image 和 el-table冲突层级冲突问题 + z-index: 99999999; + } } diff --git a/src/components/threejs/4.pcd b/src/components/threejs/4.pcd new file mode 100644 index 0000000..a45a92e --- /dev/null +++ b/src/components/threejs/4.pcd Binary files differ diff --git a/src/components/threejs/finalCloud.pcd b/src/components/threejs/finalCloud.pcd new file mode 100644 index 0000000..b07d7d8 --- /dev/null +++ b/src/components/threejs/finalCloud.pcd Binary files differ diff --git a/src/components/threejs/index.vue b/src/components/threejs/index.vue new file mode 100644 index 0000000..08b880c --- /dev/null +++ b/src/components/threejs/index.vue @@ -0,0 +1,52 @@ + + + + + diff --git a/src/components/threejs/init.js b/src/components/threejs/init.js new file mode 100644 index 0000000..87e4904 --- /dev/null +++ b/src/components/threejs/init.js @@ -0,0 +1,274 @@ +/** + * 初始化场景 + */ +import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls.js' +import * as THREE from 'three' +import { PCDLoader } from 'three/examples/jsm/loaders/PCDLoader.js' + +// 类声明 +class SceneInit { + /** + * 构造函数,用来初始化 + * @param dom dom + * @param cameraObj + */ + constructor(dom, cameraObj) { + console.log('dom', dom) + console.log('cameraObj', cameraObj) + + this.dom = dom // 创建dom属性 + this.groupObj = { // 创建groupObj属性 + gridHelperGroup: undefined, + } + // render前的回调函数集合 + this.animateCallBackArray = [] + this.init(cameraObj) + } + + /** + * 初始化 + */ + init(cameraObj) { + // 初始化Renderer + this.initRenderer() + // 初始化摄像头 + this.initCamera(cameraObj) + // 初始化场景 + this.initScene() + // 初始化灯源 + this.initLight() + // 摄像头控制器 + this.initControls() + this.animateCallBackArray = [] + // 动画 + // setTimeout(() => { + this.animate() + this.resizeFun = this.updataWh.bind(this) + window.addEventListener('resize', this.resizeFun) + } + + /** + * 初始化渲染器 + */ + initRenderer() { + this.renderer = new THREE.WebGLRenderer({ + alpha: this.alpha, // 画布透明 + depthTest: true, // 深度测试 + antialias: true, // 是否开启抗锯齿效果,默认值为false。 + logarithmicDepthBuffer: true, // 对数深度缓存 + }) + // width和height用来设置Three.js输出的Canvas画布尺寸(像素px) + this.width = this.dom.clientWidth // 窗口文档显示区的宽度作为画布宽度 + this.height = this.dom.clientHeight // 窗口文档显示区的高度作为画布高度 + this.renderer.localClippingEnabled = true // 启用局部裁剪 + this.renderer.setSize(this.width, this.height) // 设置three.js渲染区域的尺寸(像素px) + this.renderer.shadowMap.enabled = true // 如果遇到阴影贴图 必须渲染 + this.renderer.sortObjects = true // 用于控制three.js中物体的渲染顺序 + this.renderer.setPixelRatio(window.devicePixelRatio * 1) // 用于设置设备的像素比 通过设置设备像素比,可以优化高分辨率设备上的渲染效果,确保图形在不同分辨率的设备上都能清晰显示。 + this.renderer.domElement.style.position = 'absolute' + this.renderer.domElement.style.top = '0px' + this.renderer.domElement.style.left = '0px' + // three.js执行渲染命令会输出一个canvas画布,也就是一个HTML元素,你可以插入到web页面中 + this.dom.appendChild(this.renderer.domElement) + this.renderer.domElement.classList.add('threeCanvas') // 设置画布的class,非必须 + // this.renderer.outputEncoding = THREE.sRGBEncoding; + this.renderer.gammaFactor = 2.2 + this.renderer.gammaOutPut = true + this.renderer.shadowMap.type = THREE.PCFSoftShadowMap + + this.renderer.toneMappingExposure = 1.0 + // 物理灯光 + this.renderer.physicallyCorrectLights = true + } + + /** + * 初始化摄像头 + */ + + initCamera(cameraObj) { + if (!cameraObj) { + cameraObj = { + fov: 45, // 摄像机视锥体垂直视野角度。 + aspect: this.width / this.height, // 摄像机视锥体长宽比。 + near: 0.1, // 摄像机视锥体近端面。 + far: 100000, // 摄像机视锥体远端面。 + // position: [0, 50, 85], + // position: [62, 67, 20], + position: [0, 0, 12], + } + } + this.camera = new THREE.PerspectiveCamera( + cameraObj.fov, + this.width / this.height, // 摄像机视锥体长宽比。 + // cameraObj.aspect, + cameraObj.near, + cameraObj.far, + ) + this.camera.position.set(...cameraObj.position) + // this.camera.position.set([0, 50, 85]) + } + + /** + * 初始化场景 + */ + initScene() { + this.scene = new THREE.Scene() + } + + /** + * 初始化灯源 + */ + initLight() { + // 默认环境光 + const ambientLight = new THREE.AmbientLight(0xFFFFFF) // 环境光 + this.scene.add(ambientLight) + ambientLight.intensity = 0.3 // 光照强度 + const hemiLight = new THREE.HemisphereLight(0xFFFFBB, 0x080820, 1) // 模拟天空和地面的光照效果 + this.scene.add(hemiLight) + } + + /** + * 初始化控制器 + */ + initControls() { + this.controller = new OrbitControls(this.camera, this.renderer.domElement) + } + + /** + *宽高变更时自动适配 + */ + updataWh() { + this.width = this.dom.clientWidth + this.height = this.dom.clientHeight + this.camera.aspect = this.width / this.height + this.camera.updateProjectionMatrix() + this.renderer.setSize(this.width, this.height) + } + + /** + * 动画渲染 + * threejs可以借助HTML5的API请求动画帧window.requestAnimationFrame实现动画渲染。 + **/ + animate(time) { + // 请求动画帧window.requestAnimationFrame + // requestAnimationFrame实现周期性循环执行 + // requestAnimationFrame默认每秒钟执行60次,但不一定能做到,要看代码的性能 + this.animateKey = requestAnimationFrame(this.animate.bind(this)) + if (this.controller) { + this.controller.update() + } + // 额外回调 + for (let i = 0; i < this.animateCallBackArray.length; i++) { + if (this.animateCallBackArray[i]) { + this.animateCallBackArray[i](time, this.renderer, this.scene) + } + } + this.renders() + } + + /** + * 网格辅助线 + */ + grid() { + // 网格的大小(宽度和高度) 它定义了从中心到边缘的距离,整个网格的实际尺寸是2 * size‌ + const size = 1000 + // 网格的划分数量,即网格线上有多少个分割点 + const divisions = 60 + // 主要颜色,默认为0x444444(深灰色),用于主轴线‌ + const colorMain = '0x444444' + // 次要颜色,默认为0x888888(浅灰色),用于其他线‌ + const colorSecondary = '0x888888' + this.groupObj.gridHelperGroup = new THREE.GridHelper( + size, + divisions, + // colorMain, + // colorSecondary, + ) + this.scene.add(this.groupObj.gridHelperGroup) + } + + /** + * 渲染 + */ + renders() { + if (this.renderer) { + this.renderer.render(this.scene, this.camera) + } + } + + /** + * 获取根对象,便于其它类使用公共场景变量 + */ + getRoot() { + return { + scene: this.scene, + renderer: this.renderer, + controller: this.controller, + camera: this.camera, + addAnimateCallBack: this.addAnimateCallBack, + removeAnimateCallBack: this.removeAnimateCallBack, + } + } + + /** + * + * 更新前的回调,暂用于模型矩阵变化动画 + */ + addAnimateCallBack = (fun) => { + const index = this.animateCallBackArray.length + this.animateCallBackArray.push(fun) + return index + } + + /** + * + * 更新前的回调,暂用于模型矩阵变化动画 + */ + removeAnimateCallBack = (index) => { + this.animateCallBackArray[index] = false + } + + /** + * 销毁,释放内存 + */ + destroy() { + cancelAnimationFrame(this.animateKey) + this.scene.traverse((child) => { + if (child instanceof THREE.Mesh) { + if (child.material) { + child.material.dispose && child.material.dispose() + } + if (child.geometry) { + child.geometry && child.geometry.dispose() + } + + !!child.clear && child.clear() + child = null + } + }) + this.scene.environment = null + this.scene.clear() + const dom = this.renderer.domElement + if (dom) { + dom.parentNode.removeChild(dom) + } + this.renderer.renderLists.dispose() + this.renderer.dispose() + this.renderer.forceContextLoss() + this.renderer.domElement = null + this.renderer.content = null + this.renderer = null + window.removeEventListener('resize', this.resizeFun) + } + + // 加载点云 + loadPCD(padPath) { + const loader = new PCDLoader() + loader.load(padPath, (points) => { + this.scene.add(points) // 直接将点云添加到场景中 + this.animate() + }) + } +} + +export default SceneInit diff --git a/src/router/index.ts b/src/router/index.ts index e4760f5..9ce2c1b 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -44,7 +44,8 @@ // 如果已登录状态下,进入登录页会强制跳转到控制台页面 if (to.name === 'login') { next({ - name: 'dashboard', + // name: 'dashboard', + name: 'PatrolManage', replace: true, }) } @@ -151,7 +152,8 @@ // 如果已登录状态下,进入登录页会强制跳转到控制台页面 if (to.name === 'login') { next({ - name: 'dashboard', + // name: 'dashboard', + name: 'PatrolManage', replace: true, }) } diff --git a/src/router/modules/menus.ts b/src/router/modules/menus.ts index 9aa7fe3..af35115 100644 --- a/src/router/modules/menus.ts +++ b/src/router/modules/menus.ts @@ -1,5 +1,6 @@ // 所有菜单路由 import systemRoutes from './system' +import patrolRoutes from './patrol' import type { Route } from '@/global' const Layout = () => import('@/layouts/index.vue') @@ -8,7 +9,7 @@ { path: '/home', component: Layout, - redirect: '/home/index', + redirect: '/patrol/navigation', name: 'Home', meta: { title: '首页', @@ -31,6 +32,8 @@ }, ], }, + // 巡检管理 + ...patrolRoutes, // 系统路由 ...systemRoutes, ] diff --git a/src/router/modules/patrol.ts b/src/router/modules/patrol.ts new file mode 100644 index 0000000..8d6a735 --- /dev/null +++ b/src/router/modules/patrol.ts @@ -0,0 +1,46 @@ +// 巡检管理 +import type { Route } from '@/global' + +const Layout = () => import('@/layouts/index.vue') + +const routes: Route.recordRaw[] = [ + { + path: '/patrol', + component: Layout, + redirect: '/patrol', + name: 'Patrol', + meta: { + title: '巡检管理', + icon: 'ep:key', + auth: '/patrol', + }, + children: [ + { + path: 'manage', + name: 'PatrolManage', + component: () => import('@/views/patrol/manage/index.vue'), + meta: { + title: '巡检管理', + auth: '/patrol/manage', + sidebar: true, + breadcrumb: true, + activeMenu: '/patrol', + }, + }, + { + path: 'navigation', + name: 'PatrolNavigation', + component: () => import('@/views/patrol/navigation/index.vue'), + meta: { + title: '巡检导航', + auth: '/patrol/navigation', + sidebar: true, + breadcrumb: true, + activeMenu: '/patrol', + }, + }, + ], + }, +] + +export default routes diff --git a/src/utils/structure.ts b/src/utils/structure.ts index bc647d7..54507e9 100644 --- a/src/utils/structure.ts +++ b/src/utils/structure.ts @@ -130,7 +130,7 @@ * @param plainList 寻找列表中的父id * @returns 父id列表 */ -function findPid(plainList: Array): Array { +export function findPid(plainList: Array): Array { const pidList = new Set() if (plainList) { for (const item of plainList) { // 1.添加所有的父id diff --git a/src/views/home/dashboard/index.vue b/src/views/home/dashboard/index.vue index 3435e67..8bef3fa 100644 --- a/src/views/home/dashboard/index.vue +++ b/src/views/home/dashboard/index.vue @@ -1,288 +1,23 @@ -首页 + diff --git a/src/views/login.vue b/src/views/login.vue index 5c360a3..507ae67 100644 --- a/src/views/login.vue +++ b/src/views/login.vue @@ -204,13 +204,13 @@