最新
This commit is contained in:
@ -93,8 +93,8 @@ nsis:
|
|||||||
!addincludedir "G:\YUANJIE\4.0\build"
|
!addincludedir "G:\YUANJIE\4.0\build"
|
||||||
!include "G:\YUANJIE\4.0\installer.nsh"
|
!include "G:\YUANJIE\4.0\installer.nsh"
|
||||||
!addplugindir /x86-unicode "C:\Users\YC\AppData\Local\electron-builder\Cache\nsis\nsis-resources-3.4.1\plugins\x86-unicode"
|
!addplugindir /x86-unicode "C:\Users\YC\AppData\Local\electron-builder\Cache\nsis\nsis-resources-3.4.1\plugins\x86-unicode"
|
||||||
!include "C:\Users\YC\AppData\Local\Temp\t-P7VRbu\1-messages.nsh"
|
!include "C:\Users\YC\AppData\Local\Temp\t-BcnJuD\1-messages.nsh"
|
||||||
!include "C:\Users\YC\AppData\Local\Temp\t-P7VRbu\0-messages.nsh"
|
!include "C:\Users\YC\AppData\Local\Temp\t-BcnJuD\0-messages.nsh"
|
||||||
|
|
||||||
Var newStartMenuLink
|
Var newStartMenuLink
|
||||||
Var oldStartMenuLink
|
Var oldStartMenuLink
|
||||||
|
@ -12,8 +12,8 @@ extraFiles:
|
|||||||
to: ./ffplay
|
to: ./ffplay
|
||||||
- from: ./build/icons/
|
- from: ./build/icons/
|
||||||
to: ./icons
|
to: ./icons
|
||||||
productName: 实景三维电子沙盘系统
|
productName: 便携式应急指挥电子沙盘系统
|
||||||
appId: org.dzsp_shijing_offline_Y_save
|
appId: org.dzsp_yingjizhihui_offline_Y_save
|
||||||
files:
|
files:
|
||||||
- filter:
|
- filter:
|
||||||
- dist/electron/**/*
|
- dist/electron/**/*
|
||||||
@ -29,12 +29,12 @@ dmg:
|
|||||||
mac:
|
mac:
|
||||||
icon: build/icons/icon.icns
|
icon: build/icons/icon.icns
|
||||||
win:
|
win:
|
||||||
icon: build/icons/earth.ico
|
icon: build/icons/81.ico
|
||||||
linux:
|
linux:
|
||||||
target: deb
|
target: deb
|
||||||
icon: build/icons/81.png
|
icon: build/icons/81.png
|
||||||
desktop:
|
desktop:
|
||||||
Icon: /opt/实景三维电子沙盘系统/icons/earth.png
|
Icon: /opt/便携式应急指挥电子沙盘系统/icons/81.png
|
||||||
executableArgs:
|
executableArgs:
|
||||||
- '--no-sandbox'
|
- '--no-sandbox'
|
||||||
nsis:
|
nsis:
|
||||||
|
BIN
build/便携式应急指挥电子沙盘系统 Setup 4.0.0.exe.blockmap
Normal file
BIN
build/便携式应急指挥电子沙盘系统 Setup 4.0.0.exe.blockmap
Normal file
Binary file not shown.
Binary file not shown.
10522
dist/electron/main.js
vendored
10522
dist/electron/main.js
vendored
File diff suppressed because one or more lines are too long
@ -1,9 +1,9 @@
|
|||||||
!macro preInit
|
!macro preInit
|
||||||
SetRegView 64
|
SetRegView 64
|
||||||
WriteRegExpandStr HKLM "${INSTALL_REGISTRY_KEY}" InstallLocation "D:\ProgramFiles\dzsp_shijing_offline_Y_save"
|
WriteRegExpandStr HKLM "${INSTALL_REGISTRY_KEY}" InstallLocation "D:\ProgramFiles\dzsp_yingjizhihui_offline_Y_save"
|
||||||
WriteRegExpandStr HKCU "${INSTALL_REGISTRY_KEY}" InstallLocation "D:\ProgramFiles\dzsp_shijing_offline_Y_save"
|
WriteRegExpandStr HKCU "${INSTALL_REGISTRY_KEY}" InstallLocation "D:\ProgramFiles\dzsp_yingjizhihui_offline_Y_save"
|
||||||
#writeUninstaller $INSTDIR\uninstaller.exe
|
#writeUninstaller $INSTDIR\uninstaller.exe
|
||||||
SetRegView 32
|
SetRegView 32
|
||||||
WriteRegExpandStr HKLM "${INSTALL_REGISTRY_KEY}" InstallLocation "D:\ProgramFiles\dzsp_shijing_offline_Y_save"
|
WriteRegExpandStr HKLM "${INSTALL_REGISTRY_KEY}" InstallLocation "D:\ProgramFiles\dzsp_yingjizhihui_offline_Y_save"
|
||||||
WriteRegExpandStr HKCU "${INSTALL_REGISTRY_KEY}" InstallLocation "D:\ProgramFiles\dzsp_shijing_offline_Y_save"
|
WriteRegExpandStr HKCU "${INSTALL_REGISTRY_KEY}" InstallLocation "D:\ProgramFiles\dzsp_yingjizhihui_offline_Y_save"
|
||||||
!macroend
|
!macroend
|
0
logs/access.log.-2025-08-22-10
Normal file
0
logs/access.log.-2025-08-22-10
Normal file
0
logs/access.log.-2025-08-22-11
Normal file
0
logs/access.log.-2025-08-22-11
Normal file
0
logs/access.log.-2025-08-22-14
Normal file
0
logs/access.log.-2025-08-22-14
Normal file
0
logs/access.log.-2025-08-22-15
Normal file
0
logs/access.log.-2025-08-22-15
Normal file
0
logs/access.log.-2025-08-22-17
Normal file
0
logs/access.log.-2025-08-22-17
Normal file
0
logs/access.log.-2025-08-22-19
Normal file
0
logs/access.log.-2025-08-22-19
Normal file
0
logs/access.log.-2025-08-22-21
Normal file
0
logs/access.log.-2025-08-22-21
Normal file
0
logs/access.log.-2025-08-22-23
Normal file
0
logs/access.log.-2025-08-22-23
Normal file
0
logs/access.log.-2025-08-23-00
Normal file
0
logs/access.log.-2025-08-23-00
Normal file
0
logs/access.log.-2025-08-23-01
Normal file
0
logs/access.log.-2025-08-23-01
Normal file
0
logs/access.log.-2025-08-23-12
Normal file
0
logs/access.log.-2025-08-23-12
Normal file
0
logs/access.log.-2025-08-23-15
Normal file
0
logs/access.log.-2025-08-23-15
Normal file
0
logs/access.log.-2025-08-23-19
Normal file
0
logs/access.log.-2025-08-23-19
Normal file
0
logs/access.log.-2025-08-24-17
Normal file
0
logs/access.log.-2025-08-24-17
Normal file
0
logs/access.log.-2025-08-24-18
Normal file
0
logs/access.log.-2025-08-24-18
Normal file
0
logs/access.log.-2025-08-25-09
Normal file
0
logs/access.log.-2025-08-25-09
Normal file
0
logs/access.log.-2025-08-25-10
Normal file
0
logs/access.log.-2025-08-25-10
Normal file
0
logs/access.log.-2025-08-25-12
Normal file
0
logs/access.log.-2025-08-25-12
Normal file
0
logs/access.log.-2025-08-25-14
Normal file
0
logs/access.log.-2025-08-25-14
Normal file
0
logs/access.log.-2025-08-25-15
Normal file
0
logs/access.log.-2025-08-25-15
Normal file
0
logs/access.log.-2025-08-25-17
Normal file
0
logs/access.log.-2025-08-25-17
Normal file
0
logs/access.log.-2025-08-25-19
Normal file
0
logs/access.log.-2025-08-25-19
Normal file
0
logs/access.log.-2025-08-25-23
Normal file
0
logs/access.log.-2025-08-25-23
Normal file
0
logs/access.log.-2025-08-26-09
Normal file
0
logs/access.log.-2025-08-26-09
Normal file
0
logs/access.log.-2025-08-26-18
Normal file
0
logs/access.log.-2025-08-26-18
Normal file
0
logs/access.log.-2025-08-26-19
Normal file
0
logs/access.log.-2025-08-26-19
Normal file
0
logs/access.log.-2025-08-26-22
Normal file
0
logs/access.log.-2025-08-26-22
Normal file
0
logs/access.log.-2025-08-27-00
Normal file
0
logs/access.log.-2025-08-27-00
Normal file
0
logs/access.log.-2025-08-27-18
Normal file
0
logs/access.log.-2025-08-27-18
Normal file
0
logs/access.log.-2025-08-28-14
Normal file
0
logs/access.log.-2025-08-28-14
Normal file
@ -1 +1 @@
|
|||||||
{"name":"dzsp_shijing_offline_Y_save","version":"v4.0.0","author":{"email":"1114042468@qq.com","name":"1114042468@qq.com"},"maintainers":[],"license":"MIT","main":"./dist/electron/main.js","homepage":"./dist/electron/main.js","description":"","private":true,"scripts":{"dev":"cross-env TERGET_ENV=development node .electron-vue/dev-runner.js","build":"cross-env BUILD_TARGET=clean node .electron-vue/build.js && node .electron-vue/build.js && electron-builder","build:win32":"cross-env BUILD_TARGET=clean node .electron-vue/build.js && node .electron-vue/build.js && electron-builder --win --ia32","build:win64":"cross-env BUILD_TARGET=clean node .electron-vue/build.js && node .electron-vue/build.js && electron-builder --win --x64","build:linux64":"cross-env BUILD_TARGET=clean node .electron-vue/build.js && node .electron-vue/build.js && electron-builder --linux --x64","build:arm64":" cross-env BUILD_TARGET=clean node .electron-vue/build.js && node .electron-vue/build.js && electron-builder --linux --arm64","build:mac":"cross-env BUILD_TARGET=clean node .electron-vue/build.js && node .electron-vue/build.js && electron-builder --mac","build:dir":"cross-env BUILD_TARGET=clean node .electron-vue/build.js && node .electron-vue/build.js && electron-builder --dir","build:clean":"cross-env BUILD_TARGET=clean node .electron-vue/build.js","build:web":"cross-env BUILD_TARGET=web node .electron-vue/build.js","pack":"npm run pack:main && npm run pack:renderer","pack:main":"cross-env NODE_ENV=production webpack --progress --colors --config .electron-vue/webpack.main.config.js","pack:renderer":"cross-env NODE_ENV=production webpack --progress --colors --config .electron-vue/webpack.renderer.config.js","update:serve":"node server/index.js","dep:upgrade":"yarn upgrade-interactive --latest","postinstall":"electron-builder install-app-deps"},"build":{"extraFiles":[{"from":"./collada2gltf/","to":"./collada2gltf"},{"from":"./convert/","to":"./convert"},{"from":"./yjearth4_0/","to":"./yjearth4_0"},{"from":"./ffplay/","to":"./ffplay"},{"from":"./build/icons/","to":"./icons"}],"productName":"实景三维电子沙盘系统","appId":"org.dzsp_shijing_offline_Y_save","directories":{"output":"build"},"files":["dist/electron/**/*"],"dmg":{"contents":[{"x":410,"y":150,"type":"link","path":"/Applications"},{"x":130,"y":150,"type":"file"}]},"mac":{"icon":"build/icons/icon.icns"},"win":{"icon":"build/icons/earth.ico"},"linux":{"target":"deb","icon":"build/icons/81.png","desktop":{"Icon":"/opt/实景三维电子沙盘系统/icons/earth.png"},"executableArgs":["--no-sandbox"]},"nsis":{"include":"installer.nsh","oneClick":false,"perMachine":true,"allowToChangeInstallationDirectory":true,"language":"2052"}},"dependencies":{"@amap/amap-jsapi-loader":"^1.0.1","@smallwei/avue":"^2.10.10","archiver":"^5.3.0","axios":"0.17.1","compressing":"^1.5.1","date-fns":"^3.6.0","electron-store":"^8.1.0","electron-wpc":"^2.0.1","element-ui":"^2.15.13","express":"^4.18.2","fbx2gltf":"^0.9.7-p1","file-saver":"^2.0.5","gltf-pipeline":"^4.1.0","ini":"^4.1.2","js-cookie":"^2.2.0","js-md5":"^0.7.3","jszip":"^3.10.1","log4js":"^6.9.1","moment":"^2.30.1","normalize.css":"7.0.0","nprogress":"0.2.0","obj2gltf":"^3.1.6","polyfill-object.fromentries":"^1.0.1","three":"^0.158.0","viewerjs":"^1.11.6","vue":"2.5.17","vue-electron":"^1.0.6","vue-i18n":"8.2.1","vue-router":"3.0.1","vuex":"^3.0.1","xlsx":"^0.18.5"},"devDependencies":{"@babel/core":"^7.24.7","@babel/preset-env":"^7.24.7","babel-core":"^6.25.0","babel-eslint":"^7.2.3","babel-loader":"^7.1.5","babel-plugin-transform-runtime":"^6.23.0","babel-preset-env":"^1.6.0","babel-preset-stage-0":"^6.24.1","babel-register":"^6.24.1","babili-webpack-plugin":"^0.1.2","cfonts":"^1.1.3","chalk":"^2.1.0","copy-webpack-plugin":"^4.0.1","cross-env":"^5.2.1","css-loader":"^0.28.4","del":"^3.0.0","devtron":"^1.4.0","electron":"^13.6.9","electron-builder":"^22.11.7","electron-debug":"^1.4.0","electron-devtools-installer":"^2.2.0","eslint":"^4.4.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","eslint-plugin-html":"^3.1.1","extract-text-webpack-plugin":"^3.0.0","file-loader":"^0.11.2","html-webpack-plugin":"^2.30.1","multispinner":"^0.2.1","node-loader":"^0.6.0","sass":"^1.37.0","sass-loader":"^7.3.1","sass-resources-loader":"^2.2.4","style-loader":"^0.18.2","svg-sprite-loader":"3.5.2","url-loader":"^0.5.9","vue-html-loader":"^1.2.4","vue-loader":"^13.0.5","vue-style-loader":"^3.0.1","vue-template-compiler":"2.5.17","webpack":"^3.5.2","webpack-dev-server":"^2.7.1","webpack-hot-middleware":"^2.18.2"}}
|
{"name":"dzsp_yingjizhihui_offline_Y_save","version":"v4.0.0","author":{"email":"1114042468@qq.com","name":"1114042468@qq.com"},"maintainers":[],"license":"MIT","main":"./dist/electron/main.js","homepage":"./dist/electron/main.js","description":"","private":true,"scripts":{"dev":"cross-env TERGET_ENV=development node .electron-vue/dev-runner.js","build":"cross-env BUILD_TARGET=clean node .electron-vue/build.js && node .electron-vue/build.js && electron-builder","build:win32":"cross-env BUILD_TARGET=clean node .electron-vue/build.js && node .electron-vue/build.js && electron-builder --win --ia32","build:win64":"cross-env BUILD_TARGET=clean node .electron-vue/build.js && node .electron-vue/build.js && electron-builder --win --x64","build:linux64":"cross-env BUILD_TARGET=clean node .electron-vue/build.js && node .electron-vue/build.js && electron-builder --linux --x64","build:arm64":" cross-env BUILD_TARGET=clean node .electron-vue/build.js && node .electron-vue/build.js && electron-builder --linux --arm64","build:mac":"cross-env BUILD_TARGET=clean node .electron-vue/build.js && node .electron-vue/build.js && electron-builder --mac","build:dir":"cross-env BUILD_TARGET=clean node .electron-vue/build.js && node .electron-vue/build.js && electron-builder --dir","build:clean":"cross-env BUILD_TARGET=clean node .electron-vue/build.js","build:web":"cross-env BUILD_TARGET=web node .electron-vue/build.js","pack":"npm run pack:main && npm run pack:renderer","pack:main":"cross-env NODE_ENV=production webpack --progress --colors --config .electron-vue/webpack.main.config.js","pack:renderer":"cross-env NODE_ENV=production webpack --progress --colors --config .electron-vue/webpack.renderer.config.js","update:serve":"node server/index.js","dep:upgrade":"yarn upgrade-interactive --latest","postinstall":"electron-builder install-app-deps"},"build":{"extraFiles":[{"from":"./collada2gltf/","to":"./collada2gltf"},{"from":"./convert/","to":"./convert"},{"from":"./yjearth4_0/","to":"./yjearth4_0"},{"from":"./ffplay/","to":"./ffplay"},{"from":"./build/icons/","to":"./icons"}],"productName":"便携式应急指挥电子沙盘系统","appId":"org.dzsp_yingjizhihui_offline_Y_save","directories":{"output":"build"},"files":["dist/electron/**/*"],"dmg":{"contents":[{"x":410,"y":150,"type":"link","path":"/Applications"},{"x":130,"y":150,"type":"file"}]},"mac":{"icon":"build/icons/icon.icns"},"win":{"icon":"build/icons/81.ico"},"linux":{"target":"deb","icon":"build/icons/81.png","desktop":{"Icon":"/opt/便携式应急指挥电子沙盘系统/icons/81.png"},"executableArgs":["--no-sandbox"]},"nsis":{"include":"installer.nsh","oneClick":false,"perMachine":true,"allowToChangeInstallationDirectory":true,"language":"2052"}},"dependencies":{"@amap/amap-jsapi-loader":"^1.0.1","@smallwei/avue":"^2.10.10","archiver":"^5.3.0","axios":"0.17.1","compressing":"^1.5.1","date-fns":"^3.6.0","electron-store":"^8.1.0","electron-wpc":"^2.0.1","element-ui":"^2.15.13","express":"^4.18.2","fbx2gltf":"^0.9.7-p1","file-saver":"^2.0.5","gltf-pipeline":"^4.1.0","ini":"^4.1.2","js-cookie":"^2.2.0","js-md5":"^0.7.3","jszip":"^3.10.1","log4js":"^6.9.1","moment":"^2.30.1","normalize.css":"7.0.0","nprogress":"0.2.0","obj2gltf":"^3.1.6","polyfill-object.fromentries":"^1.0.1","three":"^0.158.0","viewerjs":"^1.11.6","vue":"2.5.17","vue-electron":"^1.0.6","vue-i18n":"8.2.1","vue-router":"3.0.1","vuex":"^3.0.1","xlsx":"^0.18.5"},"devDependencies":{"@babel/core":"^7.24.7","@babel/preset-env":"^7.24.7","babel-core":"^6.25.0","babel-eslint":"^7.2.3","babel-loader":"^7.1.5","babel-plugin-transform-runtime":"^6.23.0","babel-preset-env":"^1.6.0","babel-preset-stage-0":"^6.24.1","babel-register":"^6.24.1","babili-webpack-plugin":"^0.1.2","cfonts":"^1.1.3","chalk":"^2.1.0","copy-webpack-plugin":"^4.0.1","cross-env":"^5.2.1","css-loader":"^0.28.4","del":"^3.0.0","devtron":"^1.4.0","electron":"^13.6.9","electron-builder":"^22.11.7","electron-debug":"^1.4.0","electron-devtools-installer":"^2.2.0","eslint":"^4.4.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","eslint-plugin-html":"^3.1.1","extract-text-webpack-plugin":"^3.0.0","file-loader":"^0.11.2","html-webpack-plugin":"^2.30.1","multispinner":"^0.2.1","node-loader":"^0.6.0","sass":"^1.37.0","sass-loader":"^7.3.1","sass-resources-loader":"^2.2.4","style-loader":"^0.18.2","svg-sprite-loader":"3.5.2","url-loader":"^0.5.9","vue-html-loader":"^1.2.4","vue-loader":"^13.0.5","vue-style-loader":"^3.0.1","vue-template-compiler":"2.5.17","webpack":"^3.5.2","webpack-dev-server":"^2.7.1","webpack-hot-middleware":"^2.18.2"}}
|
@ -177,18 +177,22 @@ img {
|
|||||||
height: 32px !important;
|
height: 32px !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.modelBox .el-collapse-item__header {
|
.modelBox .el-collapse-item__header,
|
||||||
|
.modelBoxg .el-collapse-item__header {
|
||||||
padding-left: 10px;
|
padding-left: 10px;
|
||||||
background: transparent !important;
|
background: transparent !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.modelBox .el-collapse-item__content {
|
.modelBox .el-collapse-item__content,
|
||||||
|
.modelBoxg .el-collapse-item__content
|
||||||
|
{
|
||||||
padding-left: 15px;
|
padding-left: 15px;
|
||||||
padding-bottom: 0;
|
padding-bottom: 0;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.junbiao .el-tree {
|
.junbiao .el-tree {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
}
|
}
|
||||||
|
@ -46,10 +46,9 @@ import {
|
|||||||
renderFlyLine,
|
renderFlyLine,
|
||||||
} from "../Tree/renderNode";
|
} from "../Tree/renderNode";
|
||||||
import { shpTotalDict } from "../../api/shpTotalDict";
|
import { shpTotalDict } from "../../api/shpTotalDict";
|
||||||
import e from "express";
|
|
||||||
|
|
||||||
let newp_id = "特效图层"
|
let newp_id = "特效图层";
|
||||||
let model_p_id = "模型图层"
|
let model_p_id = "模型图层";
|
||||||
|
|
||||||
const secondMenuFun = {
|
const secondMenuFun = {
|
||||||
data() {
|
data() {
|
||||||
@ -933,7 +932,8 @@ const secondMenuFun = {
|
|||||||
source_id,
|
source_id,
|
||||||
source_name: item.model_name,
|
source_name: item.model_name,
|
||||||
source_type: "model",
|
source_type: "model",
|
||||||
p_id: DbOption.source_id,
|
// p_id: DbOption.source_id,
|
||||||
|
p_id: model_p_id,
|
||||||
};
|
};
|
||||||
|
|
||||||
let option = {
|
let option = {
|
||||||
@ -1000,10 +1000,10 @@ const secondMenuFun = {
|
|||||||
// this.$message.warning("请在图层指挥舱中选中对应图层添加");
|
// this.$message.warning("请在图层指挥舱中选中对应图层添加");
|
||||||
// return;
|
// return;
|
||||||
// }
|
// }
|
||||||
$changeComponentShow(".modelBox", true);
|
$changeComponentShow(".modelBoxg", true);
|
||||||
$root_home_index.$refs.model.open("rightMenu");
|
$root_home_index.$refs.modelg.open("rightMenu");
|
||||||
this.$recvChanel("selectModel", (data) => {
|
this.$recvChanel("selectModelg", (data) => {
|
||||||
this.$changeComponentShow(".modelSelectBox", false);
|
this.$changeComponentShow(".modelBoxg", false);
|
||||||
let url = data.model_id + ".glb";
|
let url = data.model_id + ".glb";
|
||||||
console.log("urlurlurlurlurlurl", url);
|
console.log("urlurlurlurlurlurl", url);
|
||||||
|
|
||||||
@ -1059,7 +1059,7 @@ const secondMenuFun = {
|
|||||||
cusRenderNode(node);
|
cusRenderNode(node);
|
||||||
addSource(node).then((res) => {
|
addSource(node).then((res) => {
|
||||||
if ([0, 200].includes(res.code)) {
|
if ([0, 200].includes(res.code)) {
|
||||||
cusAddNodes(this.$parent.treeObj, DbOption.p_id, [node]);
|
cusAddNodes(this.$parent.treeObj, newp_id, [node]);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -1200,10 +1200,13 @@ const secondMenuFun = {
|
|||||||
source_name: "漫游路径",
|
source_name: "漫游路径",
|
||||||
source_type: "roam",
|
source_type: "roam",
|
||||||
p_id: findParentId(this.treeObj),
|
p_id: findParentId(this.treeObj),
|
||||||
|
is_show: data.repeat == "Infinity" ? true : false,
|
||||||
detail: {
|
detail: {
|
||||||
...data,
|
...data,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
console.log(DbOption);
|
||||||
|
|
||||||
cusRenderNode(DbOption);
|
cusRenderNode(DbOption);
|
||||||
addSource(DbOption).then((res) => {
|
addSource(DbOption).then((res) => {
|
||||||
YJ.Global.FlyRoam.close();
|
YJ.Global.FlyRoam.close();
|
||||||
@ -1374,7 +1377,7 @@ const secondMenuFun = {
|
|||||||
let rightWidth = doms[1].offsetWidth;
|
let rightWidth = doms[1].offsetWidth;
|
||||||
combineBase64Images(res2, leftWidth, res, rightWidth)
|
combineBase64Images(res2, leftWidth, res, rightWidth)
|
||||||
.then((result) => {
|
.then((result) => {
|
||||||
this.downloadScreen(result)
|
this.downloadScreen(result);
|
||||||
// window.splitScreen = false;
|
// window.splitScreen = false;
|
||||||
})
|
})
|
||||||
.catch((err) => console.error("拼接失败:", err));
|
.catch((err) => console.error("拼接失败:", err));
|
||||||
@ -1702,12 +1705,12 @@ const secondMenuFun = {
|
|||||||
window.$dth.open();
|
window.$dth.open();
|
||||||
},
|
},
|
||||||
//鼠标坐标
|
//鼠标坐标
|
||||||
mouseLocation(item) {
|
mouseLocation(item,list) {
|
||||||
item.status = !item.status;
|
item.status = !item.status;
|
||||||
const onKeyDown = (e) => {
|
const onKeyDown = (e) => {
|
||||||
if (e.keyCode === 27) {
|
if (e.keyCode === 27) {
|
||||||
item.status = !item.status;
|
item.status = false;
|
||||||
YJ.Global.MouseCoordinate(window.Earth1, item.status);
|
YJ.Global.MouseCoordinate(window.Earth1, false);
|
||||||
document.removeEventListener("keydown", onKeyDown);
|
document.removeEventListener("keydown", onKeyDown);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -1719,6 +1722,7 @@ const secondMenuFun = {
|
|||||||
document.removeEventListener("keydown", onKeyDown);
|
document.removeEventListener("keydown", onKeyDown);
|
||||||
}
|
}
|
||||||
YJ.Global.MouseCoordinate(window.Earth1, item.status);
|
YJ.Global.MouseCoordinate(window.Earth1, item.status);
|
||||||
|
|
||||||
},
|
},
|
||||||
// 根据VR图片查找其邻居并计算距离和方位角
|
// 根据VR图片查找其邻居并计算距离和方位角
|
||||||
importImg() {
|
importImg() {
|
@ -115,8 +115,8 @@
|
|||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column align="left" prop="channel" label="通道号" width="100">
|
<el-table-column align="left" prop="channel" label="通道号" width="100">
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column align="left" prop="flvUrl" label="flv地址" width="200">
|
<!-- <el-table-column align="left" prop="flvUrl" label="flv地址" width="200">
|
||||||
</el-table-column>
|
</el-table-column> -->
|
||||||
<el-table-column fixed="right" label="操作" width="auto" align="center">
|
<el-table-column fixed="right" label="操作" width="auto" align="center">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-button type="text" @click="edit(scope.row)">编辑</el-button>
|
<el-button type="text" @click="edit(scope.row)">编辑</el-button>
|
||||||
|
@ -754,9 +754,9 @@ const rightMenuOption = {
|
|||||||
//模型压平的编辑方式不同
|
//模型压平的编辑方式不同
|
||||||
if (this.rightClickTreeNode.source_type === "path") {
|
if (this.rightClickTreeNode.source_type === "path") {
|
||||||
editNode.Dialog.changeModelCallBack = () => {
|
editNode.Dialog.changeModelCallBack = () => {
|
||||||
$changeComponentShow(".modelBox", true);
|
$changeComponentShow(".modelBoxg", true);
|
||||||
$root_home_index.$refs.model.open("rightMenuChange");
|
$root_home_index.$refs.modelg.open("rightMenuChange");
|
||||||
$recvChanel("selectModelChange", (data) => {
|
$recvChanel("selectModelChangeg", (data) => {
|
||||||
editNode.changeModelUrl(data.model_url);
|
editNode.changeModelUrl(data.model_url);
|
||||||
$offChanel("selectModelChange");
|
$offChanel("selectModelChange");
|
||||||
});
|
});
|
||||||
@ -1018,6 +1018,10 @@ const rightMenuOption = {
|
|||||||
let doUpdateInfo = true;
|
let doUpdateInfo = true;
|
||||||
let node = getSelectedNode(this.$parent.treeObj);
|
let node = getSelectedNode(this.$parent.treeObj);
|
||||||
let detail = JSON.parse(JSON.stringify(node.detail));
|
let detail = JSON.parse(JSON.stringify(node.detail));
|
||||||
|
// console.log("detail111111111111111111", );
|
||||||
|
if (typeof detail==='string') {
|
||||||
|
detail = JSON.parse(detail);
|
||||||
|
}
|
||||||
if (flag) {
|
if (flag) {
|
||||||
_entityMap.get(node.source_id).setCustomView();
|
_entityMap.get(node.source_id).setCustomView();
|
||||||
detail.customView = _entityMap.get(node.source_id).options.customView;
|
detail.customView = _entityMap.get(node.source_id).options.customView;
|
||||||
@ -1063,13 +1067,12 @@ const rightMenuOption = {
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
addTrajectory() {
|
addTrajectory() {
|
||||||
$changeComponentShow(".modelBox", true);
|
$changeComponentShow(".modelBoxg", true);
|
||||||
$root_home_index.$refs.model.open("rightMenu");
|
$root_home_index.$refs.model.open("rightMenu");g
|
||||||
// this.$changeComponentShow(".modelSelectBox", true)
|
// this.$changeComponentShow(".modelSelectBox", true)
|
||||||
// $root_home_index.$refs.modelSelect.init()
|
// $root_home_index.$refs.modelSelect.init()
|
||||||
this.$recvChanel("selectModel", (data) => {
|
this.$recvChanel("selectModelg", (data) => {
|
||||||
console.log("addTrajectoryaddTrajectoryaddTrajectory");
|
this.$changeComponentShow(".modelSelectBoxg", false);
|
||||||
this.$changeComponentShow(".modelSelectBox", false);
|
|
||||||
let url = data.model_id + ".glb";
|
let url = data.model_id + ".glb";
|
||||||
let draw = new YJ.Draw.DrawPolyline(window.Earth1);
|
let draw = new YJ.Draw.DrawPolyline(window.Earth1);
|
||||||
draw.start((err, positions) => {
|
draw.start((err, positions) => {
|
||||||
|
@ -163,7 +163,7 @@ function leftClick(nodes) {
|
|||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
index--;
|
index--;
|
||||||
$root_home.$message.error("视频流错误");
|
$root_home.$message.error("视频流错误,请检查设备用户名和密码");
|
||||||
}
|
}
|
||||||
|
|
||||||
// start({
|
// start({
|
||||||
|
@ -765,21 +765,21 @@ export default {
|
|||||||
},
|
},
|
||||||
// 添加文本框
|
// 添加文本框
|
||||||
addTextBox(position) {
|
addTextBox(position) {
|
||||||
this.$sendChanel("textTetlie", "标注");
|
// this.$sendChanel("textTetlie", "标注");
|
||||||
this.$changeComponentShow(".textModelBox", true);
|
// this.$changeComponentShow(".textModelBox", true);
|
||||||
this.$recvChanel("textModelContent", (data) => {
|
// this.$recvChanel("textModelContent", (data) => {
|
||||||
console.log(data.text);
|
// console.log(data.text);
|
||||||
let that = this;
|
let that = this;
|
||||||
let source_id = that.$md5(new Date().getTime() + "文本框");
|
let source_id = that.$md5(new Date().getTime() + "文本框");
|
||||||
let textBox = {
|
let textBox = {
|
||||||
id: source_id,
|
id: source_id,
|
||||||
position: position,
|
position: position,
|
||||||
text: data.text,
|
text: '',
|
||||||
show: true,
|
show: true,
|
||||||
};
|
};
|
||||||
let DbOption = {
|
let DbOption = {
|
||||||
source_id,
|
source_id,
|
||||||
source_name: data.text,
|
source_name: '文本框',
|
||||||
source_type: "textBox",
|
source_type: "textBox",
|
||||||
p_id: findParentId(that.treeObj),
|
p_id: findParentId(that.treeObj),
|
||||||
};
|
};
|
||||||
@ -791,7 +791,7 @@ export default {
|
|||||||
cusAddNodes(that.$parent.treeObj, DbOption.p_id, [node]);
|
cusAddNodes(that.$parent.treeObj, DbOption.p_id, [node]);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
})
|
// })
|
||||||
},
|
},
|
||||||
|
|
||||||
// 获取当前得node
|
// 获取当前得node
|
||||||
|
@ -287,7 +287,7 @@ function renderShp(node, ifFly = true) {
|
|||||||
source_id: item.id,
|
source_id: item.id,
|
||||||
source_type: item.type,
|
source_type: item.type,
|
||||||
source_name:
|
source_name:
|
||||||
item.properties[arrt] || Object.keys(item.properties)[0],
|
item.properties[arrt] || Object.keys(item.properties)[0] || '未知',
|
||||||
detail: {
|
detail: {
|
||||||
...item,
|
...item,
|
||||||
info: { type: "richText" },
|
info: { type: "richText" },
|
||||||
@ -302,14 +302,14 @@ function renderShp(node, ifFly = true) {
|
|||||||
source_id:
|
source_id:
|
||||||
it.id || md5(new Date().getTime().toString() + Math.random()),
|
it.id || md5(new Date().getTime().toString() + Math.random()),
|
||||||
source_type: it.type,
|
source_type: it.type,
|
||||||
source_name: it.name,
|
source_name: it.name || '未知',
|
||||||
detail: {
|
detail: {
|
||||||
defaultfieldName: Vector.field,
|
defaultfieldName: Vector.field,
|
||||||
...node.detail,
|
...node.detail,
|
||||||
},
|
},
|
||||||
is_show: 1,
|
is_show: 1,
|
||||||
fid: node.source_id,
|
fid: node.source_id,
|
||||||
children: zijiNodes.length > 0 ? zijiNodes : undefined, // 关键:把子节点挂到父节点
|
children: zijiNodes.length > 0 ? zijiNodes : [], // 关键:把子节点挂到父节点
|
||||||
};
|
};
|
||||||
let parentNode = treeObj.getNodeByParam(
|
let parentNode = treeObj.getNodeByParam(
|
||||||
"source_id",
|
"source_id",
|
||||||
@ -1267,7 +1267,7 @@ function renderFlyLine(node) {
|
|||||||
window._entityMap.set(node.source_id, FlowLine);
|
window._entityMap.set(node.source_id, FlowLine);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 飞线
|
// 文本框
|
||||||
function renderTextBox(node) {
|
function renderTextBox(node) {
|
||||||
let nodecopy = JSON.parse(JSON.stringify(node));
|
let nodecopy = JSON.parse(JSON.stringify(node));
|
||||||
if (typeof nodecopy.detail == "string")
|
if (typeof nodecopy.detail == "string")
|
||||||
@ -1277,11 +1277,13 @@ function renderTextBox(node) {
|
|||||||
id: nodecopy.source_id,
|
id: nodecopy.source_id,
|
||||||
name: nodecopy.source_name,
|
name: nodecopy.source_name,
|
||||||
};
|
};
|
||||||
|
// console.log('option',option);
|
||||||
|
|
||||||
let TextBox = new YJ.Obj.TextBox(window.Earth1, option, (e) => {
|
let TextBox = new YJ.Obj.TextBox(window.Earth1, option, (e) => {
|
||||||
console.log("ssssssssssssssssssssssss", e);
|
console.log("ssssssssssssssssssssssss");
|
||||||
let obj = {
|
let obj = {
|
||||||
source_id: node.source_id,
|
source_id: node.source_id,
|
||||||
source_name: e.text,
|
source_name: e.text || '文本框',
|
||||||
detail: JSON.stringify(e),
|
detail: JSON.stringify(e),
|
||||||
};
|
};
|
||||||
updateInfo(obj, () => {
|
updateInfo(obj, () => {
|
||||||
@ -1289,13 +1291,14 @@ function renderTextBox(node) {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
//鼠标右键点击事件
|
// //鼠标右键点击事件
|
||||||
TextBox.onRightClick = () => {
|
// TextBox.onRightClick = () => {
|
||||||
rightClick(nodecopy);
|
// console.log(123);
|
||||||
};
|
// rightClick(nodecopy);
|
||||||
//鼠标左键点击事件
|
// };
|
||||||
|
// //鼠标左键点击事件
|
||||||
TextBox.onClick = () => {
|
TextBox.onClick = () => {
|
||||||
leftClick(nodecopy);
|
rightClick(nodecopy);
|
||||||
};
|
};
|
||||||
window._entityMap.set(node.source_id, TextBox);
|
window._entityMap.set(node.source_id, TextBox);
|
||||||
}
|
}
|
||||||
|
@ -604,7 +604,7 @@ let get_detail_textbox = (DetailOption)=>{
|
|||||||
//定义树形节点的属性
|
//定义树形节点的属性
|
||||||
const nodeType = {
|
const nodeType = {
|
||||||
textBox:{
|
textBox:{
|
||||||
rightMenus: ["edit", "del", "setView", "resetView"],
|
rightMenus: ["del", "setView", "resetView"],
|
||||||
render: renderTextBox,
|
render: renderTextBox,
|
||||||
detailFun: get_detail_textbox,
|
detailFun: get_detail_textbox,
|
||||||
},
|
},
|
||||||
@ -1385,12 +1385,15 @@ function updataVector({ source_id }) {
|
|||||||
let newnodes = Vector.getAllNode();
|
let newnodes = Vector.getAllNode();
|
||||||
if (newnodes) {
|
if (newnodes) {
|
||||||
if (newnodes.list.length > 1) {
|
if (newnodes.list.length > 1) {
|
||||||
|
let arrt = node.detail.hasOwnProperty("fieldName")
|
||||||
|
? node.detail.fieldName
|
||||||
|
: "id";
|
||||||
newnodes.list.forEach((it) => {
|
newnodes.list.forEach((it) => {
|
||||||
let treeFuNodes = [];
|
let treeFuNodes = [];
|
||||||
let fuNode = {
|
let fuNode = {
|
||||||
source_id: new Date().getTime().toString(),
|
source_id: new Date().getTime().toString(),
|
||||||
source_type: it.type,
|
source_type: it.type,
|
||||||
source_name: it.name,
|
source_name: it.name||'',
|
||||||
detail: {
|
detail: {
|
||||||
defaultfieldName: "id",
|
defaultfieldName: "id",
|
||||||
...node.detail,
|
...node.detail,
|
||||||
@ -1425,7 +1428,7 @@ function updataVector({ source_id }) {
|
|||||||
let ziNode = {
|
let ziNode = {
|
||||||
source_id: item.id,
|
source_id: item.id,
|
||||||
source_type: item.type,
|
source_type: item.type,
|
||||||
source_name: item.properties[arrt],
|
source_name: item.properties[arrt] || '',
|
||||||
detail: { ...item, info: { type: "richText" } },
|
detail: { ...item, info: { type: "richText" } },
|
||||||
is_show: 1,
|
is_show: 1,
|
||||||
fid: node.source_id,
|
fid: node.source_id,
|
||||||
|
@ -679,13 +679,13 @@ const tree = {
|
|||||||
});
|
});
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (["kml", "gdb", "shp"].includes(node.source_type)) {
|
if (node.source_type == "pressModel") {
|
||||||
|
let p_entity = window._entityMap.get(node.p_id);
|
||||||
let entity = window._entityMap.get(node.source_id);
|
let entity = window._entityMap.get(node.source_id);
|
||||||
if (entity) {
|
if (p_entity && status == true) {
|
||||||
|
p_entity.show = status;
|
||||||
|
}else if(entity){
|
||||||
entity.show = status;
|
entity.show = status;
|
||||||
if (status) {
|
|
||||||
return; // 如果是这些类型且status为true,直接返回,不执行后续逻辑
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (node.source_type == "node" || node.source_type == "element") {
|
if (node.source_type == "node" || node.source_type == "element") {
|
||||||
|
@ -211,8 +211,8 @@ export default {
|
|||||||
source_id,
|
source_id,
|
||||||
source_name: option.source_name,
|
source_name: option.source_name,
|
||||||
source_type: option.source_type,
|
source_type: option.source_type,
|
||||||
p_id: findParentId(this.treeObj),
|
// p_id: findParentId(this.treeObj),
|
||||||
// p_id:biaohui_id,
|
p_id:biaohui_id,
|
||||||
};
|
};
|
||||||
let draw
|
let draw
|
||||||
if (option.source_type == "curve") {
|
if (option.source_type == "curve") {
|
||||||
@ -262,7 +262,7 @@ export default {
|
|||||||
if ([0, 200].includes(res.code)) {
|
if ([0, 200].includes(res.code)) {
|
||||||
cusRenderNode(DbOption);
|
cusRenderNode(DbOption);
|
||||||
// DbOption.p_id
|
// DbOption.p_id
|
||||||
cusAddNodes(this.treeObj, DbOption.p_id, [node]);
|
cusAddNodes(this.treeObj,biaohui_id, [node]);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -284,7 +284,7 @@ export default {
|
|||||||
},
|
},
|
||||||
// 贴地文字
|
// 贴地文字
|
||||||
groundText() {
|
groundText() {
|
||||||
// let biaohui_id = "标绘图层";
|
let biaohui_id = "标绘图层";
|
||||||
let that = this;
|
let that = this;
|
||||||
this.$sendChanel("textTetlie", "贴地文字");
|
this.$sendChanel("textTetlie", "贴地文字");
|
||||||
this.$changeComponentShow(".textModelBox", true);
|
this.$changeComponentShow(".textModelBox", true);
|
||||||
@ -307,7 +307,7 @@ export default {
|
|||||||
source_id,
|
source_id,
|
||||||
source_name: data.text,
|
source_name: data.text,
|
||||||
source_type: "groundText",
|
source_type: "groundText",
|
||||||
p_id: findParentId(that.treeObj),
|
p_id: biaohui_id,
|
||||||
};
|
};
|
||||||
|
|
||||||
let detailOption = JSON.parse(JSON.stringify(option));
|
let detailOption = JSON.parse(JSON.stringify(option));
|
||||||
@ -321,7 +321,7 @@ export default {
|
|||||||
addSource(node).then((res) => {
|
addSource(node).then((res) => {
|
||||||
if ([0, 200].includes(res.code)) {
|
if ([0, 200].includes(res.code)) {
|
||||||
// cusRenderNode(DbOption)
|
// cusRenderNode(DbOption)
|
||||||
cusAddNodes(that.treeObj,DbOption.p_id, [node]);
|
cusAddNodes(that.treeObj,biaohui_id, [node]);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -331,7 +331,7 @@ export default {
|
|||||||
},
|
},
|
||||||
// 立体文字
|
// 立体文字
|
||||||
standText() {
|
standText() {
|
||||||
// let biaohui_id = "标绘图层";
|
let biaohui_id = "标绘图层";
|
||||||
let that = this;
|
let that = this;
|
||||||
this.$sendChanel("textTetlie", "立体文字");
|
this.$sendChanel("textTetlie", "立体文字");
|
||||||
this.$changeComponentShow(".textModelBox", true);
|
this.$changeComponentShow(".textModelBox", true);
|
||||||
@ -353,7 +353,7 @@ export default {
|
|||||||
source_id,
|
source_id,
|
||||||
source_name: data.text,
|
source_name: data.text,
|
||||||
source_type: "standText",
|
source_type: "standText",
|
||||||
p_id: findParentId(that.treeObj),
|
p_id: biaohui_id,
|
||||||
};
|
};
|
||||||
let detailOption = JSON.parse(JSON.stringify(option));
|
let detailOption = JSON.parse(JSON.stringify(option));
|
||||||
let node = getNodeData(DbOption, detailOption);
|
let node = getNodeData(DbOption, detailOption);
|
||||||
@ -361,7 +361,7 @@ export default {
|
|||||||
addSource(node).then((res) => {
|
addSource(node).then((res) => {
|
||||||
if ([0, 200].includes(res.code)) {
|
if ([0, 200].includes(res.code)) {
|
||||||
// cusRenderNode(DbOption)
|
// cusRenderNode(DbOption)
|
||||||
cusAddNodes(that.treeObj, DbOption.p_id, [node]);
|
cusAddNodes(that.treeObj, biaohui_id, [node]);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -381,7 +381,7 @@ export default {
|
|||||||
source_id,
|
source_id,
|
||||||
source_name: "扇形",
|
source_name: "扇形",
|
||||||
source_type: "sector",
|
source_type: "sector",
|
||||||
p_id: findParentId(this.treeObj),
|
p_id: biaohui_id,
|
||||||
};
|
};
|
||||||
console.log("params", params);
|
console.log("params", params);
|
||||||
|
|
||||||
@ -399,7 +399,7 @@ export default {
|
|||||||
addSource(node).then((res) => {
|
addSource(node).then((res) => {
|
||||||
if ([0, 200].includes(res.code)) {
|
if ([0, 200].includes(res.code)) {
|
||||||
cusRenderNode(DbOption)
|
cusRenderNode(DbOption)
|
||||||
cusAddNodes(this.treeObj, DbOption.p_id, [node]);
|
cusAddNodes(this.treeObj, biaohui_id, [node]);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -417,7 +417,7 @@ export default {
|
|||||||
source_id,
|
source_id,
|
||||||
source_name: "椭圆",
|
source_name: "椭圆",
|
||||||
source_type: "ellipse",
|
source_type: "ellipse",
|
||||||
p_id: findParentId(this.treeObj),
|
p_id: biaohui_id,
|
||||||
};
|
};
|
||||||
let option = {
|
let option = {
|
||||||
id: source_id,
|
id: source_id,
|
||||||
@ -432,7 +432,7 @@ export default {
|
|||||||
addSource(node).then((res) => {
|
addSource(node).then((res) => {
|
||||||
if ([0, 200].includes(res.code)) {
|
if ([0, 200].includes(res.code)) {
|
||||||
cusRenderNode(DbOption)
|
cusRenderNode(DbOption)
|
||||||
cusAddNodes(this.treeObj, DbOption.p_id, [node]);
|
cusAddNodes(this.treeObj, biaohui_id, [node]);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
262
src/renderer/components/dialog/ModelSet.vue
Normal file
262
src/renderer/components/dialog/ModelSet.vue
Normal file
@ -0,0 +1,262 @@
|
|||||||
|
<template>
|
||||||
|
<div class="ModelSet">
|
||||||
|
<div class="box" v-draggable>
|
||||||
|
<div class="boxHeader nav">
|
||||||
|
<!-- <span></span> -->
|
||||||
|
<span class="label">{{ title }}</span>
|
||||||
|
<div class="close-box" @click="close">
|
||||||
|
<span class="close"></span>
|
||||||
|
<i>x</i>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="boxBody">
|
||||||
|
<el-form :label-position="labelPosition" label-width="120px" :model="form">
|
||||||
|
<!-- label="请输入文本信息" -->
|
||||||
|
<el-form-item label="添加方式">
|
||||||
|
<el-select v-model="form.type" placeholder="请选择" style="width: 100%;">
|
||||||
|
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item v-if="form.type != '点'" label="间距">
|
||||||
|
<el-input type="number" placeholder="请输入间距" v-model:number="form.spacing" @input="handleInput"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
<div style="display: flex;justify-content: flex-end;">
|
||||||
|
<el-button type="primary" @click="confirm">确认</el-button>
|
||||||
|
<el-button @click="cancel">取消</el-button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
name: "ModelSet",
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
labelPosition: "top",
|
||||||
|
form: {
|
||||||
|
type: "",
|
||||||
|
spacing: null
|
||||||
|
},
|
||||||
|
title: "",
|
||||||
|
options: [{
|
||||||
|
value: '点',
|
||||||
|
label: '点'
|
||||||
|
}, {
|
||||||
|
value: '线',
|
||||||
|
label: '线'
|
||||||
|
}, {
|
||||||
|
value: '面',
|
||||||
|
label: '面'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
};
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
handleInput(value) {
|
||||||
|
let filtered = value
|
||||||
|
.replace(/[^\d]/g, '') // 只保留数字
|
||||||
|
.replace(/^0+/, '') // 去除前导零
|
||||||
|
|
||||||
|
if (!filtered) {
|
||||||
|
this.form.spacing = 1;
|
||||||
|
} else {
|
||||||
|
// 将过滤后的字符串转为数字,与1000比较取较小值
|
||||||
|
const num = parseInt(filtered, 10);
|
||||||
|
this.form.spacing = num > 1000 ? 1000 : num;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
close() {
|
||||||
|
this.$changeComponentShow(".ModelSet", false);
|
||||||
|
},
|
||||||
|
cancel() {
|
||||||
|
this.$changeComponentShow(".ModelSet", false);
|
||||||
|
this.$sendChanel("ModelSetContent", null);
|
||||||
|
},
|
||||||
|
isOnlyWhitespace(str) {
|
||||||
|
// 使用正则表达式匹配一个或多个空白字符
|
||||||
|
const regex = /^\s+$/;
|
||||||
|
return regex.test(str);
|
||||||
|
},
|
||||||
|
confirm() {
|
||||||
|
//this.form.text去除空格
|
||||||
|
// this.form.text = this.form.text.replace(/\s+/g, "");
|
||||||
|
let bool = this.isOnlyWhitespace(this.form.number)
|
||||||
|
if (this.form.number <= 0 || bool) {
|
||||||
|
this.$message.warning("请输入内容");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (this.form.type == '点' ) {
|
||||||
|
this.form.spacing = null
|
||||||
|
}
|
||||||
|
this.$sendChanel("ModelSetContent", this.form);
|
||||||
|
this.$changeComponentShow(".ModelSet", false);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
this.$recvChanel("ModelSetTitle", (text) => {
|
||||||
|
this.title = text;
|
||||||
|
console.log(localStorage.getItem("ModelSetContent"));
|
||||||
|
this.form = JSON.parse(localStorage.getItem("ModelSetContent")) || {
|
||||||
|
type: "",
|
||||||
|
spacing: null
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss">
|
||||||
|
.ModelSet {
|
||||||
|
user-select: none;
|
||||||
|
width: 100vw;
|
||||||
|
height: 100vh;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
bottom: 0;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
|
||||||
|
.el-input__inner {
|
||||||
|
background-color: transparent;
|
||||||
|
color: #fff;
|
||||||
|
padding: 0;
|
||||||
|
padding-left: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
input::-webkit-inner-spin-button {
|
||||||
|
appearance: none !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
input::-webkit-outer-spin-button {
|
||||||
|
appearance: none !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
input[type='number'] {
|
||||||
|
appearance: textfield;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 解决光标上移
|
||||||
|
.el-input__inner {
|
||||||
|
line-height: 1px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-form-item {
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.box {
|
||||||
|
width: 20vw;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
position: absolute;
|
||||||
|
left: 50%;
|
||||||
|
top: 45%;
|
||||||
|
transform: translate(-50%, -50%);
|
||||||
|
color: var(--color-sdk-auxiliary-public);
|
||||||
|
font-size: 14px;
|
||||||
|
// z-index: 999999;
|
||||||
|
background: linear-gradient(0deg, var(--color-sdk-bg-gradual)),
|
||||||
|
rgba(0, 0, 0, 0.6);
|
||||||
|
border: 1.5px solid;
|
||||||
|
border-image: linear-gradient(to bottom, var(--color-sdk-gradual)) 1;
|
||||||
|
text-align: left;
|
||||||
|
font-family: "sy-boldface";
|
||||||
|
|
||||||
|
.boxHeader {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
font-size: 18px;
|
||||||
|
line-height: 46px;
|
||||||
|
padding: 5px 16px 5px 16px;
|
||||||
|
height: 46px;
|
||||||
|
|
||||||
|
.label {
|
||||||
|
font-family: "Ali-mother-counts-bold";
|
||||||
|
font-size: 18px;
|
||||||
|
font-weight: 400;
|
||||||
|
color: rgba(255, 255, 255, 1);
|
||||||
|
text-align: left;
|
||||||
|
text-shadow: 0px 0px 9px rgb(20 118 255);
|
||||||
|
}
|
||||||
|
|
||||||
|
.close-box {
|
||||||
|
position: absolute;
|
||||||
|
top: -1px;
|
||||||
|
right: 0;
|
||||||
|
height: 30px;
|
||||||
|
cursor: pointer;
|
||||||
|
width: 30px;
|
||||||
|
border-radius: 0 0 0 90%;
|
||||||
|
overflow: hidden;
|
||||||
|
|
||||||
|
.close {
|
||||||
|
display: block;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
background: rgba(var(--color-sdk-base-rgb), 1);
|
||||||
|
opacity: 0.5;
|
||||||
|
}
|
||||||
|
|
||||||
|
i {
|
||||||
|
font-style: normal;
|
||||||
|
font-size: 18px;
|
||||||
|
font-weight: 900;
|
||||||
|
position: absolute;
|
||||||
|
top: -13px;
|
||||||
|
left: 11px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.boxBody {
|
||||||
|
flex: auto;
|
||||||
|
flex-direction: column;
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
justify-content: space-between;
|
||||||
|
padding: 20px;
|
||||||
|
|
||||||
|
.el-form--label-top .el-form-item__label {
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-form-item__label {
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-textarea__inner {
|
||||||
|
max-height: 500px;
|
||||||
|
// overflow: hidden; /* 禁用滚动条 */
|
||||||
|
resize: none;
|
||||||
|
/* 禁止用户手动调整文本框的尺寸 */
|
||||||
|
background-color: transparent;
|
||||||
|
color: #fff;
|
||||||
|
border-color: rgba(var(--color-sdk-base-rgb), 0.5) !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-textarea__inner::scrollbar-width {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-button {
|
||||||
|
background: rgba(var(--color-sdk-base-rgb), 0.2);
|
||||||
|
border-color: rgba(var(--color-sdk-base-rgb), 0.5) !important;
|
||||||
|
color: #ffffff;
|
||||||
|
padding: 8px 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-button:hover {
|
||||||
|
border-color: rgba(var(--color-sdk-base-rgb), 1) !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
@ -3,7 +3,7 @@
|
|||||||
<div class="box" v-draggable>
|
<div class="box" v-draggable>
|
||||||
<div class="boxHeader nav">
|
<div class="boxHeader nav">
|
||||||
<span></span>
|
<span></span>
|
||||||
<span class="boxHeaderTitle"></span>
|
<span class="boxHeaderTitle">军标选择</span>
|
||||||
<span class="closeBox">
|
<span class="closeBox">
|
||||||
<span @click="close">✕</span>
|
<span @click="close">✕</span>
|
||||||
</span>
|
</span>
|
||||||
@ -255,7 +255,6 @@ export default {
|
|||||||
this.selectedGraphLabelType = "";
|
this.selectedGraphLabelType = "";
|
||||||
// if (this.graphLabelTypeList.length !== 0) {
|
// if (this.graphLabelTypeList.length !== 0) {
|
||||||
this.getGraphLabelTypeList();
|
this.getGraphLabelTypeList();
|
||||||
this.$refs.myTree.setCurrentKey(this.graphLabelTypeList[0].type_id);
|
|
||||||
// } else {
|
// } else {
|
||||||
// }
|
// }
|
||||||
},
|
},
|
||||||
@ -263,7 +262,7 @@ export default {
|
|||||||
handleClick() { },
|
handleClick() { },
|
||||||
selectImg({ key, url, name }) {
|
selectImg({ key, url, name }) {
|
||||||
// 军标库图层
|
// 军标库图层
|
||||||
let jun_biao_id = "二维军标图层";
|
// let jun_biao_id = "二维军标图层";
|
||||||
//jun_biao_id: "67bee03d6370434d7e98bcda940e67e7"
|
//jun_biao_id: "67bee03d6370434d7e98bcda940e67e7"
|
||||||
// name: "a常用new_37 (23)"
|
// name: "a常用new_37 (23)"
|
||||||
// p_id: "8277e0910d750195b448797616e091ad"
|
// p_id: "8277e0910d750195b448797616e091ad"
|
||||||
@ -343,7 +342,9 @@ export default {
|
|||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
.el-tree-node:focus>.el-tree-node__content{
|
||||||
|
background-color:transparent;
|
||||||
|
}
|
||||||
.box {
|
.box {
|
||||||
// width: 30vw;
|
// width: 30vw;
|
||||||
// height: 23vw;
|
// height: 23vw;
|
||||||
@ -389,9 +390,11 @@ export default {
|
|||||||
display: inline-block;
|
display: inline-block;
|
||||||
width: 230px;
|
width: 230px;
|
||||||
height: 34px;
|
height: 34px;
|
||||||
background: url('../../assets/images/junbiaoTitle.png');
|
background: url('../../assets/images/titlebg.png');
|
||||||
background-size: 100% 100%;
|
background-size: 100% 100%;
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
|
text-align: center;
|
||||||
|
line-height: 34px;
|
||||||
}
|
}
|
||||||
|
|
||||||
i {
|
i {
|
||||||
|
@ -120,8 +120,8 @@ export default {
|
|||||||
handleClick() {
|
handleClick() {
|
||||||
},
|
},
|
||||||
selectImg({ key, url, name, glbUrl }) {
|
selectImg({ key, url, name, glbUrl }) {
|
||||||
let jun_biao_id = "三维军标图层"
|
// let jun_biao_id = "三维军标图层"
|
||||||
console.log('glbUrlglbUrlglbUrl', glbUrl);
|
// console.log('glbUrlglbUrlglbUrl', glbUrl);
|
||||||
//jun_biao_id: "67bee03d6370434d7e98bcda940e67e7"
|
//jun_biao_id: "67bee03d6370434d7e98bcda940e67e7"
|
||||||
// name: "a常用new_37 (23)"
|
// name: "a常用new_37 (23)"
|
||||||
// p_id: "8277e0910d750195b448797616e091ad"
|
// p_id: "8277e0910d750195b448797616e091ad"
|
||||||
@ -169,7 +169,7 @@ export default {
|
|||||||
if ([0, 200].includes(res.code)) {
|
if ([0, 200].includes(res.code)) {
|
||||||
// cusRenderNode(DbOption)
|
// cusRenderNode(DbOption)
|
||||||
// DbOption.p_id
|
// DbOption.p_id
|
||||||
cusAddNodes(this.treeObj,DbOption.p_id, [node])
|
cusAddNodes(this.treeObj, DbOption.p_id, [node])
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
<div class="box" v-draggable>
|
<div class="box" v-draggable>
|
||||||
<div class="boxHeader nav">
|
<div class="boxHeader nav">
|
||||||
<span></span>
|
<span></span>
|
||||||
<span class="boxHeaderTitle"></span>
|
<span class="boxHeaderTitle">模型选择</span>
|
||||||
<span>
|
<span>
|
||||||
<i class="el-icon-close" @click="close"></i>
|
<i class="el-icon-close" @click="close"></i>
|
||||||
</span>
|
</span>
|
||||||
@ -22,7 +22,7 @@
|
|||||||
<template v-if="searchRes.length">
|
<template v-if="searchRes.length">
|
||||||
<div class="el-collapse-item__content">
|
<div class="el-collapse-item__content">
|
||||||
<template v-for="model in searchRes">
|
<template v-for="model in searchRes">
|
||||||
<div class="itemBox" @click="selectModel(model)">
|
<div class="itemBox" @click="editModel(model)">
|
||||||
<div class="imgbox">
|
<div class="imgbox">
|
||||||
<img :src="model.poster_url" alt=""></img>
|
<img :src="model.poster_url" alt=""></img>
|
||||||
</div>
|
</div>
|
||||||
@ -36,8 +36,8 @@
|
|||||||
<template v-for="item in modelTypeList">
|
<template v-for="item in modelTypeList">
|
||||||
<el-collapse-item :title="item.type_name" :name="item.type_id">
|
<el-collapse-item :title="item.type_name" :name="item.type_id">
|
||||||
<template v-for="model in item.children">
|
<template v-for="model in item.children">
|
||||||
<!-- -->
|
<!-- @dblclick="selectModel(model)" -->
|
||||||
<div class="itemBox" @click="editModel(model)" @dblclick="selectModel(model)">
|
<div class="itemBox" @click="editModel(model)" >
|
||||||
<div class="imgbox" :class="{ selectModel: editModelId == model.model_id }">
|
<div class="imgbox" :class="{ selectModel: editModelId == model.model_id }">
|
||||||
<el-image :src="model.poster_url" alt=""></el-image>
|
<el-image :src="model.poster_url" alt=""></el-image>
|
||||||
<!-- + '?' + Math.random() -->
|
<!-- + '?' + Math.random() -->
|
||||||
@ -92,23 +92,16 @@ export default {
|
|||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
modelSet() {
|
modelSet() {
|
||||||
if (this.editModelData) {
|
this.$sendChanel("ModelSetTitle", "默认模型参数设置");
|
||||||
let url = this.editModelData.model_url;
|
this.$changeComponentShow(".ModelSetBox", true);
|
||||||
let source_id = this.$md5(new Date().getTime() + this.editModelData.model_name);
|
this.$recvChanel("ModelSetContent", (data) => {
|
||||||
console.log(this.editModelData, url, source_id);
|
if (data) {
|
||||||
let models = new YJ.Obj.BatchModel(window.Earth1, {
|
localStorage.setItem("ModelSetContent", JSON.stringify(data));
|
||||||
id: source_id,
|
|
||||||
url
|
|
||||||
}, function (data) {
|
|
||||||
console.log('data,url,source_id', data, url, source_id);
|
|
||||||
// this.renderModel(data, this.editModelData);
|
|
||||||
})
|
|
||||||
} else {
|
|
||||||
|
|
||||||
}
|
}
|
||||||
this.close();
|
});
|
||||||
},
|
},
|
||||||
async renderModel(data, model) {
|
renderModel(that, data, model) {
|
||||||
|
// let p_id = '模型图层'
|
||||||
let selectedNode = getSelectedNode(this.treeObj);
|
let selectedNode = getSelectedNode(this.treeObj);
|
||||||
let p_id = selectedNode
|
let p_id = selectedNode
|
||||||
? nodeType[selectedNode.source_type].allowChildren
|
? nodeType[selectedNode.source_type].allowChildren
|
||||||
@ -116,13 +109,19 @@ export default {
|
|||||||
: selectedNode.p_id
|
: selectedNode.p_id
|
||||||
: -1;
|
: -1;
|
||||||
let z
|
let z
|
||||||
if (data.positions.length>0) {
|
if (data.positions.length >= 100) {
|
||||||
data.positions.forEach( async (position,index) => {
|
that.$message.warning("添加模型数量过多,请减少数量后!");
|
||||||
let source_id = this.$md5(new Date().getTime() + model.model_name+index);
|
return;
|
||||||
if (data.type=="面") {
|
}
|
||||||
z = data.rotate.z;
|
if (data.positions.length > 0) {
|
||||||
}else if (data.type=="线") {
|
data.positions.forEach(async (position, index) => {
|
||||||
|
let source_id = this.$md5(new Date().getTime() + model.model_name + index);
|
||||||
|
if (data.type == "面") {
|
||||||
|
z = data.rotate;
|
||||||
|
} else if (data.type == "线") {
|
||||||
z = data.rotate[index];
|
z = data.rotate[index];
|
||||||
|
} else if (data.type == "点") {
|
||||||
|
z = 0
|
||||||
}
|
}
|
||||||
let DbOption = {
|
let DbOption = {
|
||||||
source_id,
|
source_id,
|
||||||
@ -139,7 +138,7 @@ export default {
|
|||||||
url: model.model_url,
|
url: model.model_url,
|
||||||
maximumScale: 1,
|
maximumScale: 1,
|
||||||
host: getIP(),
|
host: getIP(),
|
||||||
rotate:{
|
rotate: {
|
||||||
x: 0,
|
x: 0,
|
||||||
y: 0,
|
y: 0,
|
||||||
z
|
z
|
||||||
@ -163,8 +162,35 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
editModel(model) {
|
editModel(model) {
|
||||||
this.editModelData = model;
|
let that = this
|
||||||
this.editModelId = model.model_id;
|
let form = JSON.parse(localStorage.getItem("ModelSetContent"))
|
||||||
|
if (form) {
|
||||||
|
let url = model.model_url;
|
||||||
|
let source_id = this.$md5(new Date().getTime() + model.model_name);
|
||||||
|
let op = {}
|
||||||
|
if (form.spacing) {
|
||||||
|
op = {
|
||||||
|
id: source_id,
|
||||||
|
url,
|
||||||
|
type: form.type,
|
||||||
|
spacing: form.spacing
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
op = {
|
||||||
|
id: source_id,
|
||||||
|
url,
|
||||||
|
type: form.type,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
console.log('opopopopopopopopopopopopopop',op);
|
||||||
|
|
||||||
|
let models = new YJ.Obj.BatchModel(window.Earth1, op, function (data) {
|
||||||
|
that.renderModel(that, data, model);
|
||||||
|
})
|
||||||
|
this.close();
|
||||||
|
} else {
|
||||||
|
this.modelSet()
|
||||||
|
}
|
||||||
},
|
},
|
||||||
searchContent(val) {
|
searchContent(val) {
|
||||||
if (val) {
|
if (val) {
|
||||||
@ -271,7 +297,7 @@ export default {
|
|||||||
this.allModels = [];
|
this.allModels = [];
|
||||||
this.modelTypeList = [];
|
this.modelTypeList = [];
|
||||||
this.activeName = "";
|
this.activeName = "";
|
||||||
this.editModelData = null;
|
// this.editModelData = null;
|
||||||
this.editModelId = null;
|
this.editModelId = null;
|
||||||
this.$changeComponentShow(".modelBox", false);
|
this.$changeComponentShow(".modelBox", false);
|
||||||
},
|
},
|
||||||
@ -323,9 +349,11 @@ export default {
|
|||||||
display: inline-block;
|
display: inline-block;
|
||||||
width: 230px;
|
width: 230px;
|
||||||
height: 34px;
|
height: 34px;
|
||||||
background: url('../../assets/images/title.png');
|
background: url('../../assets/images/titlebg.png');
|
||||||
background-size: 100% 100%;
|
background-size: 100% 100%;
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
|
text-align: center;
|
||||||
|
line-height: 34px;
|
||||||
}
|
}
|
||||||
|
|
||||||
i {
|
i {
|
||||||
|
450
src/renderer/components/dialog/modelg.vue
Normal file
450
src/renderer/components/dialog/modelg.vue
Normal file
@ -0,0 +1,450 @@
|
|||||||
|
<template>
|
||||||
|
<div class="model666">
|
||||||
|
<div class="box" v-draggable>
|
||||||
|
<div class="boxHeader nav">
|
||||||
|
<span></span>
|
||||||
|
<span class="boxHeaderTitle">模型选择</span>
|
||||||
|
<span>
|
||||||
|
<i class="el-icon-close" @click="close"></i>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<div class="boxBody custom_scroll_bar">
|
||||||
|
<div style="display: flex;justify-content: space-between;">
|
||||||
|
<el-input size="small" suffix-icon="el-icon-search" placeholder="输入关键字进行过滤" @input="searchContent"
|
||||||
|
v-model="filterText">
|
||||||
|
</el-input>
|
||||||
|
<!--<el-button type="primary" @click="searchContent('type')" size="small">搜类型</el-button>-->
|
||||||
|
<!--<el-button type="primary" @click="searchContent('junbiao')" size="small">搜军标</el-button>-->
|
||||||
|
</div>
|
||||||
|
<template v-if="searchRes.length">
|
||||||
|
<div class="el-collapse-item__content">
|
||||||
|
<template v-for="model in searchRes">
|
||||||
|
<div class="itemBox" @click="selectModel(model)">
|
||||||
|
<div class="imgbox">
|
||||||
|
<img :src="model.poster_url" alt=""></img>
|
||||||
|
</div>
|
||||||
|
<span>{{ model.model_name }}</span>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<template v-else>
|
||||||
|
<el-collapse v-model="activeName" accordion v-if="!filterText" @change="openModel">
|
||||||
|
<template v-for="item in modelTypeList">
|
||||||
|
<el-collapse-item :title="item.type_name" :name="item.type_id">
|
||||||
|
<template v-for="model in item.children">
|
||||||
|
<!-- -->
|
||||||
|
<div class="itemBox" @click="selectModel(model)">
|
||||||
|
<div class="imgbox" :class="{ selectModel: editModelId == model.model_id }">
|
||||||
|
<el-image :src="model.poster_url" alt=""></el-image>
|
||||||
|
<!-- + '?' + Math.random() -->
|
||||||
|
</div>
|
||||||
|
<span>{{ model.model_name }}</span>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<template v-if="!item.children || item.children.length == 0">
|
||||||
|
<div style="height: 60px;visibility: hidden"></div>
|
||||||
|
</template>
|
||||||
|
</el-collapse-item>
|
||||||
|
</template>
|
||||||
|
</el-collapse>
|
||||||
|
</template>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { getModelType } from "../../api/gisAPI";
|
||||||
|
import {
|
||||||
|
getSelectedNode,
|
||||||
|
cusAddNodes,
|
||||||
|
getNodeData,
|
||||||
|
nodeType,
|
||||||
|
} from "../Tree/treeNode";
|
||||||
|
import { addSource } from "@/api/gisAPI";
|
||||||
|
import { leftClick } from "../Tree/entityClick";
|
||||||
|
import { getIP } from "../../utils";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: "model",
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
treeObj: null,
|
||||||
|
activeName: "",
|
||||||
|
filterText: "",
|
||||||
|
modelTypeList: [],
|
||||||
|
data: [],
|
||||||
|
defaultProps: {
|
||||||
|
children: "children",
|
||||||
|
label: "label",
|
||||||
|
},
|
||||||
|
type: "",
|
||||||
|
allModels: [],
|
||||||
|
searchRes: [],
|
||||||
|
arrModel: [],
|
||||||
|
editModelData: null,
|
||||||
|
editModelId: null,
|
||||||
|
};
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
modelSet() {
|
||||||
|
this.$sendChanel("ModelSetTitle", "默认模型参数设置");
|
||||||
|
this.$changeComponentShow(".ModelSetBox", true);
|
||||||
|
this.$recvChanel("ModelSetContent", (data) => {
|
||||||
|
if (data) {
|
||||||
|
localStorage.setItem("ModelSetContent", JSON.stringify(data));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
renderModel(that, data, model) {
|
||||||
|
let p_id = '模型图层'
|
||||||
|
let z
|
||||||
|
if (data.positions.length >= 100) {
|
||||||
|
that.$message.warning("添加模型数量过多,请减少数量后!");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (data.positions.length > 0) {
|
||||||
|
data.positions.forEach(async (position, index) => {
|
||||||
|
let source_id = this.$md5(new Date().getTime() + model.model_name + index);
|
||||||
|
if (data.type == "面") {
|
||||||
|
z = data.rotate;
|
||||||
|
} else if (data.type == "线") {
|
||||||
|
z = data.rotate[index];
|
||||||
|
} else if (data.type == "点") {
|
||||||
|
z = 0
|
||||||
|
}
|
||||||
|
let DbOption = {
|
||||||
|
source_id,
|
||||||
|
source_name: model.model_name + index,
|
||||||
|
source_type: "model",
|
||||||
|
p_id,
|
||||||
|
};
|
||||||
|
let option = {
|
||||||
|
id: source_id,
|
||||||
|
position,
|
||||||
|
name: model.model_name + index,
|
||||||
|
show: true,
|
||||||
|
scale: 1,
|
||||||
|
url: model.model_url,
|
||||||
|
maximumScale: 1,
|
||||||
|
host: getIP(),
|
||||||
|
rotate: {
|
||||||
|
x: 0,
|
||||||
|
y: 0,
|
||||||
|
z
|
||||||
|
}
|
||||||
|
};
|
||||||
|
let Model = await new YJ.Obj.Model(window.Earth1, option);
|
||||||
|
window._entityMap.set(option.id, Model);
|
||||||
|
Model.onClick = () => {
|
||||||
|
leftClick(node);
|
||||||
|
};
|
||||||
|
let detailOption = JSON.parse(JSON.stringify(Model.options));
|
||||||
|
detailOption.url = model.model_id + ".glb";
|
||||||
|
let node = getNodeData(DbOption, detailOption);
|
||||||
|
addSource(node).then((res) => {
|
||||||
|
if ([0, 200].includes(res.code)) {
|
||||||
|
// cusRenderNode(DbOption) DbOption.p_id
|
||||||
|
cusAddNodes(this.treeObj, p_id, [node]);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
editModel(model) {
|
||||||
|
let that = this
|
||||||
|
let form = JSON.parse(localStorage.getItem("ModelSetContent"))
|
||||||
|
if (form) {
|
||||||
|
let url = model.model_url;
|
||||||
|
let source_id = this.$md5(new Date().getTime() + model.model_name);
|
||||||
|
let op = {}
|
||||||
|
if (form.spacing) {
|
||||||
|
op = {
|
||||||
|
id: source_id,
|
||||||
|
url,
|
||||||
|
type: form.type,
|
||||||
|
spacing: form.spacing
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
op = {
|
||||||
|
id: source_id,
|
||||||
|
url,
|
||||||
|
type: form.type,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
console.log('opopopopopopopopopopopopopop',op);
|
||||||
|
|
||||||
|
let models = new YJ.Obj.BatchModel(window.Earth1, op, function (data) {
|
||||||
|
that.renderModel(that, data, model);
|
||||||
|
})
|
||||||
|
this.close();
|
||||||
|
} else {
|
||||||
|
this.modelSet()
|
||||||
|
}
|
||||||
|
},
|
||||||
|
searchContent(val) {
|
||||||
|
if (val) {
|
||||||
|
this.searchRes = this.allModels.filter((item) => {
|
||||||
|
return item.model_name.indexOf(val) !== -1;
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
this.searchRes = [];
|
||||||
|
}
|
||||||
|
},
|
||||||
|
selectModel(model) {
|
||||||
|
let model_p_id = "模型图层"
|
||||||
|
console.log("选中了模型", model, this.type);
|
||||||
|
this.close();
|
||||||
|
if (this.type == "rightMenu") {
|
||||||
|
this.$sendChanel("selectModelg", model);
|
||||||
|
} else if (this.type == "rightMenuChange") {
|
||||||
|
this.$sendChanel("selectModelChangeg", model);
|
||||||
|
} else {
|
||||||
|
let selectedNode = getSelectedNode(this.treeObj);
|
||||||
|
new YJ.Draw.DrawPoint(window.Earth1).start(async (err, position) => {
|
||||||
|
if (err == null || err != false) {
|
||||||
|
let source_id = this.$md5(new Date().getTime() + model.model_name);
|
||||||
|
let p_id = selectedNode
|
||||||
|
? nodeType[selectedNode.source_type].allowChildren
|
||||||
|
? selectedNode.source_id
|
||||||
|
: selectedNode.p_id
|
||||||
|
: -1;
|
||||||
|
let DbOption = {
|
||||||
|
source_id,
|
||||||
|
source_name: model.model_name,
|
||||||
|
source_type: "model",
|
||||||
|
p_id,
|
||||||
|
};
|
||||||
|
|
||||||
|
let option = {
|
||||||
|
id: source_id,
|
||||||
|
position,
|
||||||
|
name: model.model_name,
|
||||||
|
show: true,
|
||||||
|
scale: 1,
|
||||||
|
url: model.model_url,
|
||||||
|
maximumScale: 1,
|
||||||
|
host: getIP(),
|
||||||
|
};
|
||||||
|
let Model = await new YJ.Obj.Model(window.Earth1, option);
|
||||||
|
window._entityMap.set(option.id, Model);
|
||||||
|
Model.onClick = () => {
|
||||||
|
leftClick(node);
|
||||||
|
};
|
||||||
|
let detailOption = JSON.parse(JSON.stringify(Model.options));
|
||||||
|
detailOption.url = model.model_id + ".glb";
|
||||||
|
let node = getNodeData(DbOption, detailOption);
|
||||||
|
console.log(node);
|
||||||
|
addSource(node).then((res) => {
|
||||||
|
if ([0, 200].includes(res.code)) {
|
||||||
|
// cusRenderNode(DbOption) DbOption.p_id
|
||||||
|
cusAddNodes(this.treeObj, DbOption.p_id, [node]);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
openModel(val) {
|
||||||
|
if (val) {
|
||||||
|
let arr = this.arrModel
|
||||||
|
.filter((item) => item.type_id == val)
|
||||||
|
.map((item) => item.children)
|
||||||
|
.flat();
|
||||||
|
this.modelTypeList.forEach((item) => {
|
||||||
|
if (item.type_id == val) {
|
||||||
|
item.children = arr;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
open(key = "second") {
|
||||||
|
this.searchRes = [];
|
||||||
|
this.allModels = [];
|
||||||
|
this.modelTypeList = [];
|
||||||
|
this.arrModel = [];
|
||||||
|
this.filterText = "";
|
||||||
|
this.type = key;
|
||||||
|
getModelType((res) => {
|
||||||
|
console.log('resresres',res);
|
||||||
|
|
||||||
|
if (res.list) {
|
||||||
|
this.arrModel = res.list;
|
||||||
|
this.modelTypeList = res.list.map(({ children, ...rest }) => rest);
|
||||||
|
this.modelTypeList[0].children = res.list[0].children;
|
||||||
|
console.log(this.modelTypeList);
|
||||||
|
res.list.forEach((item) => {
|
||||||
|
if (item.children)
|
||||||
|
this.allModels = this.allModels.concat(item.children);
|
||||||
|
});
|
||||||
|
// this.modelTotal = res.total.list[0].length
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
handleNodeClick(data) {
|
||||||
|
console.log(data);
|
||||||
|
},
|
||||||
|
close() {
|
||||||
|
this.searchRes = [];
|
||||||
|
this.allModels = [];
|
||||||
|
this.modelTypeList = [];
|
||||||
|
this.activeName = "";
|
||||||
|
// this.editModelData = null;
|
||||||
|
this.editModelId = null;
|
||||||
|
this.$changeComponentShow(".modelBoxg", false);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
// this.open()
|
||||||
|
this.$recvChanel("getTreeObj", (treeObj) => {
|
||||||
|
this.treeObj = treeObj;
|
||||||
|
// this.$removeChanel("getTreeObj")
|
||||||
|
});
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss">
|
||||||
|
.model666 {
|
||||||
|
user-select: none;
|
||||||
|
width: 100vw;
|
||||||
|
height: 100vh;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
|
|
||||||
|
.box {
|
||||||
|
width: 30vw;
|
||||||
|
height: 21vw;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
position: absolute;
|
||||||
|
left: 50%;
|
||||||
|
top: 45%;
|
||||||
|
transform: translate(-50%, -50%);
|
||||||
|
margin-top: 16px;
|
||||||
|
background: linear-gradient(180deg, rgba(0, 255, 255, 0.2) 0%, rgba(0, 255, 255, 0) 100%), rgba(0, 0, 0, 0.6);
|
||||||
|
padding: 10px;
|
||||||
|
border: 1.5px solid rgba(0, 255, 255, 1);
|
||||||
|
|
||||||
|
.boxHeader {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
color: #fff;
|
||||||
|
font-size: 18px;
|
||||||
|
padding: 0.5vh 0;
|
||||||
|
padding-top: 6px;
|
||||||
|
padding-bottom: 22px;
|
||||||
|
|
||||||
|
.boxHeaderTitle {
|
||||||
|
display: inline-block;
|
||||||
|
width: 230px;
|
||||||
|
height: 34px;
|
||||||
|
background: url('../../assets/images/titlebg.png');
|
||||||
|
background-size: 100% 100%;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
text-align: center;
|
||||||
|
line-height: 34px;
|
||||||
|
}
|
||||||
|
|
||||||
|
i {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.boxBody {
|
||||||
|
height: 500px;
|
||||||
|
flex: auto;
|
||||||
|
overflow-y: auto;
|
||||||
|
|
||||||
|
.modelSet {
|
||||||
|
.el-button {
|
||||||
|
background: rgba(var(--color-sdk-base-rgb), 0.2);
|
||||||
|
border: 1px solid rgba(var(--color-sdk-base-rgb), 0.5);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.selectModel {
|
||||||
|
border: 1px solid red !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.itemBox {
|
||||||
|
width: 20%;
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
color: #fff;
|
||||||
|
cursor: pointer;
|
||||||
|
|
||||||
|
.imgbox {
|
||||||
|
width: 100px;
|
||||||
|
height: 100px;
|
||||||
|
padding: 5px;
|
||||||
|
background: url('../../assets/images/modelbg.png');
|
||||||
|
background-size: 100% 100%;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
box-sizing: border-box;
|
||||||
|
text-align: center;
|
||||||
|
border: 1px solid rgba(0, 0, 0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
img {
|
||||||
|
height: 90px;
|
||||||
|
width: 90px;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
|
||||||
|
span {
|
||||||
|
text-align: center;
|
||||||
|
width: 100px;
|
||||||
|
overflow: hidden;
|
||||||
|
/* 确保超出容器的文本被裁剪 */
|
||||||
|
white-space: nowrap;
|
||||||
|
/* 确保文本在一行内显示 */
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
/* 使用省略号表示文本超出 */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-collapse-item__content {
|
||||||
|
padding-top: 20px;
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-input {
|
||||||
|
width: 50%;
|
||||||
|
margin-bottom: 18px;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-input__inner {
|
||||||
|
background-color: transparent;
|
||||||
|
border: 1px solid rgba(0, 255, 255, 0.5);
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-input__inner::placeholder {
|
||||||
|
color: rgba(173, 241, 255, 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.boxBody::-webkit-scrollbar {
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
.boxBody::-webkit-scrollbar-thumb {
|
||||||
|
background: rgba(0, 255, 255, 1) !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.boxBody::-webkit-scrollbar-track {
|
||||||
|
background: rgba(0, 51, 51, .1) !important;
|
||||||
|
border-radius: 10px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
@ -51,14 +51,14 @@ export default {
|
|||||||
setList: [
|
setList: [
|
||||||
//北斗图标
|
//北斗图标
|
||||||
// 标准版本
|
// 标准版本
|
||||||
// {
|
{
|
||||||
// id: 0,
|
id: 0,
|
||||||
// index: 0,
|
index: 0,
|
||||||
// icon: "locate",
|
icon: "locate",
|
||||||
// className: "header_public",
|
className: "header_public",
|
||||||
// dbcallback: this.flyTo,
|
dbcallback: this.flyTo,
|
||||||
// callback: this.locate,
|
callback: this.locate,
|
||||||
// },
|
},
|
||||||
{
|
{
|
||||||
id: 1,
|
id: 1,
|
||||||
index: 1,
|
index: 1,
|
||||||
|
@ -177,6 +177,7 @@ class viewGlbByEarth {
|
|||||||
baseLayerPicker: false,
|
baseLayerPicker: false,
|
||||||
sceneModePicker: false,
|
sceneModePicker: false,
|
||||||
animation: false,
|
animation: false,
|
||||||
|
geocoder: false
|
||||||
});
|
});
|
||||||
const scene = this.viewer.scene;
|
const scene = this.viewer.scene;
|
||||||
/*this.viewer.scene.screenSpaceCameraController.tiltEventTypes = [
|
/*this.viewer.scene.screenSpaceCameraController.tiltEventTypes = [
|
||||||
|
@ -62,6 +62,7 @@
|
|||||||
<textModel class="textModelBox absolute zIndex999"></textModel>
|
<textModel class="textModelBox absolute zIndex999"></textModel>
|
||||||
<adddirectory class="adddirectoryBox absolute zIndex999"></adddirectory>
|
<adddirectory class="adddirectoryBox absolute zIndex999"></adddirectory>
|
||||||
<model ref="model" class="modelBox absolute zIndex999"></model>
|
<model ref="model" class="modelBox absolute zIndex999"></model>
|
||||||
|
<modelg ref="modelg" class="modelBoxg absolute zIndex999"></modelg>
|
||||||
<modelSelect ref="modelSelect" class="modelSelectBox absolute zIndex999"></modelSelect>
|
<modelSelect ref="modelSelect" class="modelSelectBox absolute zIndex999"></modelSelect>
|
||||||
<bimInfo ref="bimInfo" class="bimInfoBox absolute zIndex99"></bimInfo>
|
<bimInfo ref="bimInfo" class="bimInfoBox absolute zIndex99"></bimInfo>
|
||||||
<echartsTotal ref="echartsTotal" class="echartsTotalBox absolute zIndex99"></echartsTotal>
|
<echartsTotal ref="echartsTotal" class="echartsTotalBox absolute zIndex99"></echartsTotal>
|
||||||
@ -255,6 +256,8 @@
|
|||||||
<excelSet ref="excelSet" class="excelSetBox absolute zIndex99"></excelSet>
|
<excelSet ref="excelSet" class="excelSetBox absolute zIndex99"></excelSet>
|
||||||
<!-- tufu_select -->
|
<!-- tufu_select -->
|
||||||
<tufuSelect style="top: 115px;right: 50px;" class="tufuSelect absolute zIndex99"></tufuSelect>
|
<tufuSelect style="top: 115px;right: 50px;" class="tufuSelect absolute zIndex99"></tufuSelect>
|
||||||
|
<!-- modelSet -->
|
||||||
|
<ModelSet class="ModelSetBox absolute"></ModelSet>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@ -276,8 +279,10 @@ import flyToLocation from "@/components/dialog/flyToLocation.vue";
|
|||||||
import junbiao from "@/components/dialog/junbiao.vue";
|
import junbiao from "@/components/dialog/junbiao.vue";
|
||||||
import junbiao3d from "@/components/dialog/junbiao3d.vue";
|
import junbiao3d from "@/components/dialog/junbiao3d.vue";
|
||||||
import model from "@/components/dialog/model.vue";
|
import model from "@/components/dialog/model.vue";
|
||||||
|
import modelg from "@/components/dialog/modelg.vue";
|
||||||
import vrModel from "@/components/dialog/vrModel.vue";
|
import vrModel from "@/components/dialog/vrModel.vue";
|
||||||
import textModel from "@/components/dialog/textModel.vue";
|
import textModel from "@/components/dialog/textModel.vue";
|
||||||
|
import ModelSet from "@/components/dialog/ModelSet.vue";
|
||||||
import modelSelect from "@/components/dialog/modelSelect.vue";
|
import modelSelect from "@/components/dialog/modelSelect.vue";
|
||||||
import echartsTotal from "@/components/dialog/echartsTotal.vue";
|
import echartsTotal from "@/components/dialog/echartsTotal.vue";
|
||||||
import bimInfo from "@/components/dialog/bimInfo.vue";
|
import bimInfo from "@/components/dialog/bimInfo.vue";
|
||||||
@ -369,7 +374,9 @@ export default {
|
|||||||
// New,
|
// New,
|
||||||
// WangEditor
|
// WangEditor
|
||||||
excelSet,
|
excelSet,
|
||||||
tufuSelect
|
tufuSelect,
|
||||||
|
ModelSet,
|
||||||
|
modelg
|
||||||
},
|
},
|
||||||
|
|
||||||
data() {
|
data() {
|
||||||
@ -1096,12 +1103,17 @@ export default {
|
|||||||
.videoStop,
|
.videoStop,
|
||||||
.adddirectoryBox,
|
.adddirectoryBox,
|
||||||
.excelSetBox,
|
.excelSetBox,
|
||||||
.tufuSelect {
|
.tufuSelect,
|
||||||
|
.ModelSetBox,
|
||||||
|
.modelBoxg{
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
.selectImgBox{
|
.selectImgBox{
|
||||||
z-index: 9999999;
|
z-index: 9999999;
|
||||||
}
|
}
|
||||||
|
.ModelSetBox{
|
||||||
|
z-index: 10000;
|
||||||
|
}
|
||||||
.scene {
|
.scene {
|
||||||
//width: 5vw;
|
//width: 5vw;
|
||||||
//height: 5vw;
|
//height: 5vw;
|
||||||
|
@ -252,7 +252,7 @@ export default {
|
|||||||
selectedService: "接口服务",
|
selectedService: "接口服务",
|
||||||
serviceOptions: [
|
serviceOptions: [
|
||||||
{ name: "接口服务" },
|
{ name: "接口服务" },
|
||||||
// { name: "北斗串口" }
|
{ name: "北斗串口" }
|
||||||
],
|
],
|
||||||
servVal: "单机",
|
servVal: "单机",
|
||||||
gpsVal: "",
|
gpsVal: "",
|
||||||
|
12
static/sdk/YJEarth.min.js
vendored
12
static/sdk/YJEarth.min.js
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -3122,9 +3122,9 @@
|
|||||||
/* 文本框 */
|
/* 文本框 */
|
||||||
.popup-textarea{
|
.popup-textarea{
|
||||||
/* width: 212px; */
|
/* width: 212px; */
|
||||||
width: 161.6px;
|
width: 161px;
|
||||||
/* height: 154px; */
|
/* height: 154px; */
|
||||||
height: 119.2px;
|
height: 119px;
|
||||||
display: block;
|
display: block;
|
||||||
pointer-events: none;
|
pointer-events: none;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
@ -3134,6 +3134,8 @@
|
|||||||
padding: 5px 5px 0px 5px;
|
padding: 5px 5px 0px 5px;
|
||||||
}
|
}
|
||||||
.popup-textarea textarea{
|
.popup-textarea textarea{
|
||||||
|
width: 158px;
|
||||||
|
height: 95px;
|
||||||
background-color: unset!important;
|
background-color: unset!important;
|
||||||
border: unset!important;
|
border: unset!important;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
@ -3491,6 +3493,7 @@
|
|||||||
cursor: e-resize;
|
cursor: e-resize;
|
||||||
background-color: #d3d3d3;
|
background-color: #d3d3d3;
|
||||||
user-select: none;
|
user-select: none;
|
||||||
|
z-index: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
.cesium-performanceDisplay-defaultContainer {
|
.cesium-performanceDisplay-defaultContainer {
|
||||||
@ -3625,6 +3628,7 @@
|
|||||||
height: 100%;
|
height: 100%;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
|
backdrop-filter: blur(2px);
|
||||||
}
|
}
|
||||||
|
|
||||||
.billboard-attribute-box .DIV-cy-tabs .DIV-cy-tab-top .DIV-cy-tab-pane-title {
|
.billboard-attribute-box .DIV-cy-tabs .DIV-cy-tab-top .DIV-cy-tab-pane-title {
|
||||||
@ -3760,3 +3764,60 @@
|
|||||||
.billboard-attribute-box .table .table-body .tr:first-child {
|
.billboard-attribute-box .table .table-body .tr:first-child {
|
||||||
border-top: none;
|
border-top: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* 自定义提示 */
|
||||||
|
#YJ-custom-message {
|
||||||
|
/* 固定在顶部中央 */
|
||||||
|
position: fixed;
|
||||||
|
top: 0;
|
||||||
|
left: 50%;
|
||||||
|
transform: translate(-50%, 0%);
|
||||||
|
/* 初始位置在屏幕顶部外 */
|
||||||
|
|
||||||
|
/* 样式美化 */
|
||||||
|
display: flex;
|
||||||
|
border-radius: 4px;
|
||||||
|
font-size: 14px;
|
||||||
|
padding: 15px 20px;
|
||||||
|
width: 380px;
|
||||||
|
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
|
||||||
|
z-index: 9999999;
|
||||||
|
|
||||||
|
|
||||||
|
/* 动画定义 */
|
||||||
|
animation: YJ-custom-message-slideDown 0.5s forwards,
|
||||||
|
YJ-custom-message-fadeOut 0.5s 1500ms forwards;
|
||||||
|
}
|
||||||
|
|
||||||
|
#YJ-custom-message i {
|
||||||
|
margin: 2px 10px 0 0;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
width: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#YJ-custom-message.success {
|
||||||
|
background-color: #f0f9eb;
|
||||||
|
color: rgb(82, 196, 26);
|
||||||
|
}
|
||||||
|
#YJ-custom-message.warning {
|
||||||
|
background-color: #fdf6ec;
|
||||||
|
color: #e6a23c;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 滑入动画 */
|
||||||
|
@keyframes YJ-custom-message-slideDown {
|
||||||
|
to {
|
||||||
|
top: 20px;
|
||||||
|
/* 移动到屏幕顶部 */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 淡出动画 - 1500ms后执行 */
|
||||||
|
@keyframes YJ-custom-message-fadeOut {
|
||||||
|
to {
|
||||||
|
opacity: 0;
|
||||||
|
top: -200px
|
||||||
|
/* 移回顶部外 */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
@ -1,6 +0,0 @@
|
|||||||
2025-08-21 09:39:22.595 [INFO] {dcf550b68ea45d18b387471271b7d773} gps.go:101: 查询串口数据
|
|
||||||
2025-08-21 09:39:22.597 [INFO] {842772b68ea45d18b4874712ab1b6925} gps.go:105: 没有查询到串口数据
|
|
||||||
2025-08-21 19:35:44.669 [INFO] {986d1fe019c55d18d309df3ac18912f0} gps.go:101: 查询串口数据
|
|
||||||
2025-08-21 19:35:44.670 [INFO] {70032fe019c55d18d409df3afa90f681} gps.go:105: 没有查询到串口数据
|
|
||||||
2025-08-21 19:41:49.876 [INFO] {88d618e86ec55d186628232887bd2331} gps.go:101: 查询串口数据
|
|
||||||
2025-08-21 19:41:49.876 [INFO] {24192be86ec55d18672823280ba6422f} gps.go:105: 没有查询到串口数据
|
|
@ -1,8 +0,0 @@
|
|||||||
2025-08-22 09:10:38.368 [INFO] {7099eed191f15d184012250fe3558563} gps.go:101: 查询串口数据
|
|
||||||
2025-08-22 09:10:38.369 [INFO] {e05ec6d391f15d184112250f0cbea3e9} gps.go:105: 没有查询到串口数据
|
|
||||||
2025-08-22 09:15:21.612 [INFO] {c42956c6d3f15d180ee1f90d279c349c} gps.go:101: 查询串口数据
|
|
||||||
2025-08-22 09:15:21.613 [INFO] {d8ce65c6d3f15d180fe1f90d7cdbcaa9} gps.go:105: 没有查询到串口数据
|
|
||||||
2025-08-22 09:18:14.767 [INFO] {a8983417fcf15d186b67d37c08c0f081} gps.go:101: 查询串口数据
|
|
||||||
2025-08-22 09:18:14.768 [INFO] {e83e4417fcf15d186c67d37cde1e0dcf} gps.go:105: 没有查询到串口数据
|
|
||||||
2025-08-22 09:59:06.098 [INFO] {d475dfd536f45d186cd8bd20f836b128} gps.go:101: 查询串口数据
|
|
||||||
2025-08-22 09:59:06.099 [INFO] {c433f0d536f45d186dd8bd20df6afc69} gps.go:105: 没有查询到串口数据
|
|
BIN
yjearth4_0/static/log/2025-08-26.20250828142839614330.log.gz
Normal file
BIN
yjearth4_0/static/log/2025-08-26.20250828142839614330.log.gz
Normal file
Binary file not shown.
4
yjearth4_0/static/log/2025-08-27.log
Normal file
4
yjearth4_0/static/log/2025-08-27.log
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
2025-08-27 00:15:42.888 [INFO] {24b260d9475d5f1867330d7f0cd9bef1} gps.go:101: 查询串口数据
|
||||||
|
2025-08-27 00:15:42.889 [INFO] {80209fda475d5f1868330d7fcadeefb7} gps.go:105: 没有查询到串口数据
|
||||||
|
2025-08-27 18:36:00.802 [INFO] {fc09d6d852995f18d3e2fb476b15e7cb} gps.go:101: 查询串口数据
|
||||||
|
2025-08-27 18:36:00.803 [INFO] {c846f0d852995f18d4e2fb47be7f14e9} gps.go:105: 没有查询到串口数据
|
4
yjearth4_0/static/log/2025-08-28.log
Normal file
4
yjearth4_0/static/log/2025-08-28.log
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
2025-08-28 14:28:39.651 [INFO] {346464ee67da5f18feb2560d2f11e5e9} gps.go:101: 查询串口数据
|
||||||
|
2025-08-28 14:28:39.652 [INFO] {3c6dabf067da5f18ffb2560d5df92233} gps.go:105: 没有查询到串口数据
|
||||||
|
2025-08-28 14:36:04.102 [INFO] {3c7be76bcfda5f188e27a77ae33fd23d} gps.go:101: 查询串口数据
|
||||||
|
2025-08-28 14:36:04.103 [INFO] {d8570a6ccfda5f188f27a77ae1cba623} gps.go:105: 没有查询到串口数据
|
Binary file not shown.
Reference in New Issue
Block a user