This commit is contained in:
2025-08-22 10:33:34 +08:00
parent 8765bffbac
commit 1484bd44fc
75 changed files with 15129 additions and 185 deletions

1
.gitignore vendored
View File

@ -10,6 +10,7 @@ node_modules_l/
.history/ .history/
build/linux-unpacked/ build/linux-unpacked/
build/win-unpacked/ build/win-unpacked/
dist/electron/
# Executables # Executables
*.swf *.swf
*.air *.air

217
build/builder-debug.yml Normal file
View File

@ -0,0 +1,217 @@
x64:
firstOrDefaultFilePatterns:
- '!**/node_modules'
- '!build{,/**/*}'
- '!build{,/**/*}'
- dist/electron/**/*
- package.json
- '!**/*.{iml,hprof,orig,pyc,pyo,rbc,swp,csproj,sln,suo,xproj,cc,d.ts,pdb}'
- '!**/._*'
- '!**/electron-builder.{yaml,yml,json,json5,toml}'
- '!**/{.git,.hg,.svn,CVS,RCS,SCCS,__pycache__,.DS_Store,thumbs.db,.gitignore,.gitkeep,.gitattributes,.npmignore,.idea,.vs,.flowconfig,.jshintrc,.eslintrc,.circleci,.yarn-integrity,.yarn-metadata.json,yarn-error.log,yarn.lock,package-lock.json,npm-debug.log,appveyor.yml,.travis.yml,circle.yml,.nyc_output}'
- '!.yarn{,/**/*}'
- '!.editorconfig'
- '!.yarnrc.yml'
nodeModuleFilePatterns:
- '**/*'
- dist/electron/**/*
nsis:
script: |-
!include "G:\YUANJIE\4.0\node_modules\app-builder-lib\templates\nsis\include\StdUtils.nsh"
!addincludedir "G:\YUANJIE\4.0\node_modules\app-builder-lib\templates\nsis\include"
!macro _isUpdated _a _b _t _f
${StdUtils.TestParameter} $R9 "updated"
StrCmp "$R9" "true" `${_t}` `${_f}`
!macroend
!define isUpdated `"" isUpdated ""`
!macro _isForceRun _a _b _t _f
${StdUtils.TestParameter} $R9 "force-run"
StrCmp "$R9" "true" `${_t}` `${_f}`
!macroend
!define isForceRun `"" isForceRun ""`
!macro _isKeepShortcuts _a _b _t _f
${StdUtils.TestParameter} $R9 "keep-shortcuts"
StrCmp "$R9" "true" `${_t}` `${_f}`
!macroend
!define isKeepShortcuts `"" isKeepShortcuts ""`
!macro _isNoDesktopShortcut _a _b _t _f
${StdUtils.TestParameter} $R9 "no-desktop-shortcut"
StrCmp "$R9" "true" `${_t}` `${_f}`
!macroend
!define isNoDesktopShortcut `"" isNoDesktopShortcut ""`
!macro _isDeleteAppData _a _b _t _f
${StdUtils.TestParameter} $R9 "delete-app-data"
StrCmp "$R9" "true" `${_t}` `${_f}`
!macroend
!define isDeleteAppData `"" isDeleteAppData ""`
!macro _isForAllUsers _a _b _t _f
${StdUtils.TestParameter} $R9 "allusers"
StrCmp "$R9" "true" `${_t}` `${_f}`
!macroend
!define isForAllUsers `"" isForAllUsers ""`
!macro _isForCurrentUser _a _b _t _f
${StdUtils.TestParameter} $R9 "currentuser"
StrCmp "$R9" "true" `${_t}` `${_f}`
!macroend
!define isForCurrentUser `"" isForCurrentUser ""`
!macro addLangs
!insertmacro MUI_LANGUAGE "English"
!insertmacro MUI_LANGUAGE "German"
!insertmacro MUI_LANGUAGE "French"
!insertmacro MUI_LANGUAGE "SpanishInternational"
!insertmacro MUI_LANGUAGE "SimpChinese"
!insertmacro MUI_LANGUAGE "TradChinese"
!insertmacro MUI_LANGUAGE "Japanese"
!insertmacro MUI_LANGUAGE "Korean"
!insertmacro MUI_LANGUAGE "Italian"
!insertmacro MUI_LANGUAGE "Dutch"
!insertmacro MUI_LANGUAGE "Danish"
!insertmacro MUI_LANGUAGE "Swedish"
!insertmacro MUI_LANGUAGE "Norwegian"
!insertmacro MUI_LANGUAGE "Finnish"
!insertmacro MUI_LANGUAGE "Russian"
!insertmacro MUI_LANGUAGE "Portuguese"
!insertmacro MUI_LANGUAGE "PortugueseBR"
!insertmacro MUI_LANGUAGE "Polish"
!insertmacro MUI_LANGUAGE "Ukrainian"
!insertmacro MUI_LANGUAGE "Czech"
!insertmacro MUI_LANGUAGE "Slovak"
!insertmacro MUI_LANGUAGE "Hungarian"
!insertmacro MUI_LANGUAGE "Arabic"
!insertmacro MUI_LANGUAGE "Turkish"
!insertmacro MUI_LANGUAGE "Thai"
!insertmacro MUI_LANGUAGE "Vietnamese"
!macroend
!addincludedir "G:\YUANJIE\4.0\build"
!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"
!include "C:\Users\YC\AppData\Local\Temp\t-P7VRbu\1-messages.nsh"
!include "C:\Users\YC\AppData\Local\Temp\t-P7VRbu\0-messages.nsh"
Var newStartMenuLink
Var oldStartMenuLink
Var newDesktopLink
Var oldDesktopLink
Var oldShortcutName
Var oldMenuDirectory
!include "common.nsh"
!include "MUI2.nsh"
!include "multiUser.nsh"
!include "allowOnlyOneInstallerInstance.nsh"
!ifdef INSTALL_MODE_PER_ALL_USERS
!ifdef BUILD_UNINSTALLER
RequestExecutionLevel user
!else
RequestExecutionLevel admin
!endif
!else
RequestExecutionLevel user
!endif
!ifdef BUILD_UNINSTALLER
SilentInstall silent
!else
Var appExe
Var launchLink
!endif
!ifdef ONE_CLICK
!include "oneClick.nsh"
!else
!include "assistedInstaller.nsh"
!endif
!insertmacro addLangs
!ifmacrodef customHeader
!insertmacro customHeader
!endif
Function .onInit
SetOutPath $INSTDIR
${LogSet} on
!ifmacrodef preInit
!insertmacro preInit
!endif
!ifdef DISPLAY_LANG_SELECTOR
!insertmacro MUI_LANGDLL_DISPLAY
!endif
!ifdef BUILD_UNINSTALLER
WriteUninstaller "${UNINSTALLER_OUT_FILE}"
!insertmacro quitSuccess
!else
!insertmacro check64BitAndSetRegView
!ifdef ONE_CLICK
!insertmacro ALLOW_ONLY_ONE_INSTALLER_INSTANCE
!else
${IfNot} ${UAC_IsInnerInstance}
!insertmacro ALLOW_ONLY_ONE_INSTALLER_INSTANCE
${EndIf}
!endif
!insertmacro initMultiUser
!ifmacrodef customInit
!insertmacro customInit
!endif
!ifmacrodef addLicenseFiles
InitPluginsDir
!insertmacro addLicenseFiles
!endif
!endif
FunctionEnd
!ifndef BUILD_UNINSTALLER
!include "installUtil.nsh"
!endif
Section "install"
!ifndef BUILD_UNINSTALLER
# If we're running a silent upgrade of a per-machine installation, elevate so extracting the new app will succeed.
# For a non-silent install, the elevation will be triggered when the install mode is selected in the UI,
# but that won't be executed when silent.
!ifndef INSTALL_MODE_PER_ALL_USERS
!ifndef ONE_CLICK
${if} $hasPerMachineInstallation == "1" # set in onInit by initMultiUser
${andIf} ${Silent}
${ifNot} ${UAC_IsAdmin}
ShowWindow $HWNDPARENT ${SW_HIDE}
!insertmacro UAC_RunElevated
${Switch} $0
${Case} 0
${Break}
${Case} 1223 ;user aborted
${Break}
${Default}
MessageBox mb_IconStop|mb_TopMost|mb_SetForeground "Unable to elevate, error $0"
${Break}
${EndSwitch}
Quit
${else}
!insertmacro setInstallModePerAllUsers
${endIf}
${endIf}
!endif
!endif
!include "installSection.nsh"
!endif
SectionEnd
!ifdef BUILD_UNINSTALLER
!include "uninstaller.nsh"
!endif

View File

@ -0,0 +1,46 @@
directories:
output: build
buildResources: 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
files:
- filter:
- 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'
electronVersion: 13.6.9

View File

@ -1,7 +1,7 @@
let name = 'dzsp_jingyuepaichusuo_offline_save'; //dzsp_yingjizhihuibeidou_offline_Y_save //dzsp_shijingjiangjin_offline_Y_save // dzsp_shijinghaidong_offline_Y_save //cc dzsp_yingjizhihuijunyong_offline_Y_save,dzsp_yingjizhihui_offline_Y_save,dzsp_shijing_offline_Y_save,dzsp_mudanyuan_offline_Y_save'dzsp_wujingqinwu_offline_Y_save','dzsp_jilingongan_offline_Y_save' let name = 'dzsp_yingjizhihui_offline_Y_save'; //dzsp_yingjizhihuibeidou_offline_Y_save //dzsp_shijingjiangjin_offline_Y_save // dzsp_shijinghaidong_offline_Y_save //cc dzsp_yingjizhihuijunyong_offline_Y_save,dzsp_yingjizhihui_offline_Y_save,dzsp_shijing_offline_Y_save,dzsp_mudanyuan_offline_Y_save'dzsp_wujingqinwu_offline_Y_save','dzsp_jilingongan_offline_Y_save'
let productName = '便携式应急指挥电子沙盘系统北斗定位+'; //便携式应急指挥电子沙盘系统北斗定位+ //实景三维无人机智能巡检系统 // 海东市自然灾害风险普查可视化分析平台 //便携式应急指挥电子沙盘系统 //便携式应急指挥电子沙盘系统(军用版) //新版4.0//"实景三维电子沙盘系统";//"作战目标数字孪生仿真系统", "实景三维电子沙盘系统" ’牡丹园智慧景区管理系统‘,"武警勤务指挥电子沙盘系统”,"吉林省公安厅三维模型展示平台" let productName = '便携式应急指挥电子沙盘系统'; //便携式应急指挥电子沙盘系统北斗定位+ //实景三维无人机智能巡检系统 // 海东市自然灾害风险普查可视化分析平台 //便携式应急指挥电子沙盘系统 //便携式应急指挥电子沙盘系统(军用版) //新版4.0//"实景三维电子沙盘系统";//"作战目标数字孪生仿真系统", "实景三维电子沙盘系统" ’牡丹园智慧景区管理系统‘,"武警勤务指挥电子沙盘系统”,"吉林省公安厅三维模型展示平台"
let productName_tw = '可擕式應急指揮電子沙盤系統北斗定位+'; let productName_tw = '可擕式應急指揮電子沙盤系統';
let productName_en = 'Portable emergency command electronic sand table system Beidou positioning+'; let productName_en = 'Portable emergency command electronic sand table system';
let obj = { let obj = {
baseApi: "", // 本地api请求地址,注意:如果你使用了代理,请设置成'/' baseApi: "", // 本地api请求地址,注意:如果你使用了代理,请设置成'/'
PORT: 8099, PORT: 8099,

10522
dist/electron/main.js vendored

File diff suppressed because one or more lines are too long

View File

@ -1,9 +1,9 @@
!macro preInit !macro preInit
SetRegView 64 SetRegView 64
WriteRegExpandStr HKLM "${INSTALL_REGISTRY_KEY}" InstallLocation "D:\ProgramFiles\dzsp_jingyuepaichusuo_offline_save" WriteRegExpandStr HKLM "${INSTALL_REGISTRY_KEY}" InstallLocation "D:\ProgramFiles\dzsp_shijing_offline_Y_save"
WriteRegExpandStr HKCU "${INSTALL_REGISTRY_KEY}" InstallLocation "D:\ProgramFiles\dzsp_jingyuepaichusuo_offline_save" WriteRegExpandStr HKCU "${INSTALL_REGISTRY_KEY}" InstallLocation "D:\ProgramFiles\dzsp_shijing_offline_Y_save"
#writeUninstaller $INSTDIR\uninstaller.exe #writeUninstaller $INSTDIR\uninstaller.exe
SetRegView 32 SetRegView 32
WriteRegExpandStr HKLM "${INSTALL_REGISTRY_KEY}" InstallLocation "D:\ProgramFiles\dzsp_jingyuepaichusuo_offline_save" WriteRegExpandStr HKLM "${INSTALL_REGISTRY_KEY}" InstallLocation "D:\ProgramFiles\dzsp_shijing_offline_Y_save"
WriteRegExpandStr HKCU "${INSTALL_REGISTRY_KEY}" InstallLocation "D:\ProgramFiles\dzsp_jingyuepaichusuo_offline_save" WriteRegExpandStr HKCU "${INSTALL_REGISTRY_KEY}" InstallLocation "D:\ProgramFiles\dzsp_shijing_offline_Y_save"
!macroend !macroend

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

@ -1 +1 @@
{"name":"dzsp_jingyuepaichusuo_offline_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_jingyuepaichusuo_offline_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"}} {"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"}}

View File

@ -46,8 +46,6 @@
window.addEventListener("message", (e) => { window.addEventListener("message", (e) => {
console.log("iframe###############", e) console.log("iframe###############", e)
}) })
// document.domain = 'http://127.0.0.1:8890'; // document.domain = 'http://127.0.0.1:8890';
/*if (process && process.env.NODE_ENV !== 'development') window.__static = require('path').join(__dirname, '/static').replace(/\\/g, '\\\\')*/ /*if (process && process.env.NODE_ENV !== 'development') window.__static = require('path').join(__dirname, '/static').replace(/\\/g, '\\\\')*/
</script> </script>

View File

@ -160,7 +160,7 @@ module.exports = {
unLock: "unLock", unLock: "unLock",
}, },
headerTitles: { headerTitles: {
systemTitle: "System setting", systemTitle: "System Panel",
udp: "Physical sandbox", udp: "Physical sandbox",
ConcurrencyControl: "Concurrency Control", ConcurrencyControl: "Concurrency Control",
localIP: "Local IP", localIP: "Local IP",

Binary file not shown.

After

Width:  |  Height:  |  Size: 661 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 123 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 566 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 123 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 523 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 117 KiB

View File

@ -46,8 +46,6 @@ import {
renderFlyLine, renderFlyLine,
} from "../Tree/renderNode"; } from "../Tree/renderNode";
import { shpTotalDict } from "../../api/shpTotalDict"; import { shpTotalDict } from "../../api/shpTotalDict";
import e from "express";
const secondMenuFun = { const secondMenuFun = {
data() { data() {
return { return {
@ -1411,7 +1409,7 @@ const secondMenuFun = {
window.clicknum = 0; window.clicknum = 0;
let host = new URL(getIP()).host; let host = new URL(getIP()).host;
let routePlanning = new YJ.Obj.RoutePlanning(window.Earth1, { let routePlanning = new YJ.Obj.RoutePlanning(window.Earth1, {
gps: true, gps: false,
host, host,
}); });
routePlanning.Dialog.queryCallBack = async (v) => { routePlanning.Dialog.queryCallBack = async (v) => {

View File

@ -48,8 +48,8 @@ import {
import { shpTotalDict } from "../../api/shpTotalDict"; import { shpTotalDict } from "../../api/shpTotalDict";
import e from "express"; import e from "express";
let newp_id = "3579e514a976c9aad03fde6b6198f464" let newp_id = "特效图层"
let model_p_id = "43d570f69514904a91b5df9c5f33bc98" let model_p_id = "模型图层"
const secondMenuFun = { const secondMenuFun = {
data() { data() {
@ -933,7 +933,7 @@ const secondMenuFun = {
source_id, source_id,
source_name: item.model_name, source_name: item.model_name,
source_type: "model", source_type: "model",
p_id:model_p_id, p_id: DbOption.source_id,
}; };
let option = { let option = {
@ -949,7 +949,7 @@ const secondMenuFun = {
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, model_p_id, [node]);
} }
}); });
} }
@ -1414,7 +1414,7 @@ const secondMenuFun = {
window.clicknum = 0; window.clicknum = 0;
let host = new URL(getIP()).host; let host = new URL(getIP()).host;
let routePlanning = new YJ.Obj.RoutePlanning(window.Earth1, { let routePlanning = new YJ.Obj.RoutePlanning(window.Earth1, {
gps: false, gps: true,
host, host,
}); });
routePlanning.Dialog.queryCallBack = async (v) => { routePlanning.Dialog.queryCallBack = async (v) => {

View File

@ -139,7 +139,7 @@ const rightMenuOption = {
} }
}); });
console.log("执行图层层级修改_updateLayerIndex", layers); console.log("执行图层层级修改_updateLayerIndex", layers);
updateLayerIndex(layers, (res) => {}); updateLayerIndex(layers, (res) => { });
}, },
layerIndex(key) { layerIndex(key) {
let layer = window._entityMap.get(this.rightClickTreeNode.source_id); let layer = window._entityMap.get(this.rightClickTreeNode.source_id);
@ -548,6 +548,15 @@ const rightMenuOption = {
this.$parent.treeObj, this.$parent.treeObj,
getSelectedNodes(this.$parent.treeObj) getSelectedNodes(this.$parent.treeObj)
); );
let ids = [
"模型图层",
"特效图层",
"标绘图层",
"二维军标图层",
"三维军标图层",
];
// 排除
source_ids = source_ids.filter((id) => !ids.includes(id));
delSource({ delSource({
source_ids, source_ids,
}).then((res) => { }).then((res) => {
@ -737,7 +746,7 @@ const rightMenuOption = {
confirmCallBack: (data) => { confirmCallBack: (data) => {
this.shpConfirmCallBack(data, this.rightClickTreeNode.source_id); this.shpConfirmCallBack(data, this.rightClickTreeNode.source_id);
}, },
closeCallBack: () => {}, closeCallBack: () => { },
}); });
} else { } else {
editNode.edit(true); editNode.edit(true);
@ -905,7 +914,7 @@ const rightMenuOption = {
} }
paths.forEach((item) => { paths.forEach((item) => {
arr.push({ arr.push({
name: "链接" , name: "链接",
url: item, url: item,
}); });
}); });
@ -928,7 +937,7 @@ const rightMenuOption = {
this.$removeChanel("panoramaFileData"); this.$removeChanel("panoramaFileData");
list.forEach((item) => { list.forEach((item) => {
arr.push({ arr.push({
name: "全景" , name: "全景",
url: item.url, url: item.url,
}); });
}); });
@ -960,7 +969,7 @@ const rightMenuOption = {
} }
paths.forEach((item) => { paths.forEach((item) => {
arr.push({ arr.push({
name: "全景" , name: "全景",
url: item, url: item,
}); });
}); });
@ -1041,7 +1050,7 @@ const rightMenuOption = {
this.updateView(true); this.updateView(true);
}, },
//模型压平 //模型压平
pressModel() {}, pressModel() { },
//模型剖切 //模型剖切
tilesetClipping() { tilesetClipping() {
let node = getSelectedNode(this.$parent.treeObj); let node = getSelectedNode(this.$parent.treeObj);
@ -1242,7 +1251,7 @@ const rightMenuOption = {
newDataWin.show(); newDataWin.show();
}); });
window._winMap.set(id, newDataWin.id); window._winMap.set(id, newDataWin.id);
newDataWin.on("close", function(event) { newDataWin.on("close", function (event) {
window._winMap.delete(id); window._winMap.delete(id);
}); });
} else { } else {

View File

@ -62,6 +62,8 @@ import tree from "./treeSetting";
import rightMenu from "./components/rightMenu.vue"; import rightMenu from "./components/rightMenu.vue";
import AMapLoader from "@amap/amap-jsapi-loader"; import AMapLoader from "@amap/amap-jsapi-loader";
import rightMenuOption from "../Tree/components/rightMenuOption"; import rightMenuOption from "../Tree/components/rightMenuOption";
import { findParentId } from "@/components/Tree/treeNode";
import { renderTextBox } from "./renderNode";
import { import {
get_source_list, get_source_list,
queryPOI, queryPOI,
@ -302,7 +304,7 @@ export default {
let p_id = getKeyOfSelectedNode(this.$parent.treeObj, "source_id"); let p_id = getKeyOfSelectedNode(this.$parent.treeObj, "source_id");
filePaths.forEach((item) => { filePaths.forEach((item) => {
console.log('item', item); console.log('item', item);
let name = this.getLastPathComponent(item,['clt','json','pak','kml','kmz','shp','geojson','geoJson', 'czml','jct','mif','tab','csv']); let name = this.getLastPathComponent(item, ['clt', 'json', 'pak', 'kml', 'kmz', 'shp', 'geojson', 'geoJson', 'czml', 'jct', 'mif', 'tab', 'csv']);
console.log("name", name); console.log("name", name);
let source_type = "layer"; let source_type = "layer";
if (item.endsWith(".clt") || item.endsWith(".json")) { if (item.endsWith(".clt") || item.endsWith(".json")) {
@ -713,6 +715,8 @@ export default {
); );
window.treeObj = this.treeObj; window.treeObj = this.treeObj;
window.AllNodes = this.treeObj.getNodes() window.AllNodes = this.treeObj.getNodes()
console.log('window.AllNodes', window.AllNodes);
window.newFuzzySearch( window.newFuzzySearch(
`treeDemo`, `treeDemo`,
"#keyword", "#keyword",
@ -732,6 +736,9 @@ export default {
(text, object) => { (text, object) => {
switch (text) { switch (text) {
case "textBox":
this.addTextBox(object.position);
break;
case "rotateAround": case "rotateAround":
YJ.Global.rotateAround(window.Earth1, object.position); YJ.Global.rotateAround(window.Earth1, object.position);
break; break;
@ -756,6 +763,37 @@ export default {
}); });
}); });
}, },
// 添加文本框
addTextBox(position) {
this.$sendChanel("textTetlie", "标注");
this.$changeComponentShow(".textModelBox", true);
this.$recvChanel("textModelContent", (data) => {
console.log(data.text);
let that = this;
let source_id = that.$md5(new Date().getTime() + "文本框");
let textBox = {
id: source_id,
position: position,
text: data.text,
show: true,
};
let DbOption = {
source_id,
source_name: data.text,
source_type: "textBox",
p_id: findParentId(that.treeObj),
};
let detailOption = JSON.parse(JSON.stringify(textBox));
let node = getNodeData(DbOption, detailOption);
renderTextBox(node);
addSource(node).then((res) => {
if ([0, 200].includes(res.code)) {
cusAddNodes(that.$parent.treeObj, DbOption.p_id, [node]);
}
});
})
},
// 获取当前得node // 获取当前得node
getNode(source_id) { getNode(source_id) {
if (!source_id) { if (!source_id) {
@ -804,6 +842,7 @@ export default {
animate(); animate();
}, },
}, },
}; };
</script> </script>

View File

@ -8,14 +8,14 @@ import {
} from "./entityClick"; } from "./entityClick";
import { getIP } from "../../utils"; import { getIP } from "../../utils";
import { getAddress } from "../../utils/request"; import { getAddress } from "../../utils/request";
import { addPicture,updateInfo } from "../../api/gisAPI"; import { addPicture, updateInfo } from "../../api/gisAPI";
import { import {
$changeComponentShow, $changeComponentShow,
$recvChanel, $recvChanel,
$sendElectronChanel, $sendElectronChanel,
$recvElectronChanel, $recvElectronChanel,
} from "../../utils/communication"; } from "../../utils/communication";
import { nodeType,cusUpdateNode } from "./treeNode"; import { nodeType, cusUpdateNode } from "./treeNode";
import md5 from "js-md5"; import md5 from "js-md5";
let staticPort = $root_home.$remote.getGlobal("sharedObject").avilablePort; let staticPort = $root_home.$remote.getGlobal("sharedObject").avilablePort;
@ -286,7 +286,8 @@ function renderShp(node, ifFly = true) {
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]||Object.keys(item.properties)[0], source_name:
item.properties[arrt] || Object.keys(item.properties)[0],
detail: { detail: {
...item, ...item,
info: { type: "richText" }, info: { type: "richText" },
@ -298,7 +299,8 @@ function renderShp(node, ifFly = true) {
}); });
} }
let fuNode = { let fuNode = {
source_id: it.id || md5(new Date().getTime().toString()+Math.random()), source_id:
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: {
@ -335,7 +337,7 @@ function renderShp(node, ifFly = true) {
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: { detail: {
...item, ...item,
info: { type: "richText" }, info: { type: "richText" },
@ -478,7 +480,12 @@ function renderBaseMarker(DbOption) {
}); });
$recvElectronChanel("dirFiles", (e, res) => { $recvElectronChanel("dirFiles", (e, res) => {
$changeComponentShow(".selectImgBox", true); $changeComponentShow(".selectImgBox", true);
window.$root_home_index.$refs.selectImg.init(res, selected,true,isUrl); window.$root_home_index.$refs.selectImg.init(
res,
selected,
true,
isUrl
);
window.$root_home_index.$refs.selectImg.set("billboardDefaultImage"); window.$root_home_index.$refs.selectImg.set("billboardDefaultImage");
}); });
$recvChanel("selectedImg", (data) => { $recvChanel("selectedImg", (data) => {
@ -860,16 +867,16 @@ function renderGroundImage(DbOption) {
console.log("DbOption", DbOption); console.log("DbOption", DbOption);
if (DbOption.is_load) { if (DbOption.is_load) {
svg.load(() => { svg.load(() => {
svg.drag(true,(v)=>{ svg.drag(true, (v) => {
console.log("vsvg",v); console.log("vsvg", v);
let obj = { let obj = {
source_id: DbOption.source_id, source_id: DbOption.source_id,
source_name: DbOption.source_name, source_name: DbOption.source_name,
detail: JSON.stringify(v), detail: JSON.stringify(v),
} };
updateInfo(obj,()=>{ updateInfo(obj, () => {
cusUpdateNode(obj); cusUpdateNode(obj);
}) });
}); });
}); });
} }
@ -1246,18 +1253,51 @@ function renderFlyLine(node) {
}; };
let FlowLine = new YJ.Obj.FlowLine(window.Earth1, option); let FlowLine = new YJ.Obj.FlowLine(window.Earth1, option);
// //鼠标右键点击事件
// FlowLine.onRightClick = () => {
// rightClick(nodecopy);
// };
// //鼠标左键点击事件
// FlowLine.onClick = () => {
// console.log(123);
// leftClick(nodecopy);
// };
// cb()
window._entityMap.set(node.source_id, FlowLine);
}
// 飞线
function renderTextBox(node) {
let nodecopy = JSON.parse(JSON.stringify(node));
if (typeof nodecopy.detail == "string")
nodecopy.detail = JSON.parse(nodecopy.detail);
let option = {
...nodecopy.detail,
id: nodecopy.source_id,
name: nodecopy.source_name,
};
let TextBox = new YJ.Obj.TextBox(window.Earth1, option, (e) => {
console.log("ssssssssssssssssssssssss", e);
let obj = {
source_id: node.source_id,
source_name: e.text,
detail: JSON.stringify(e),
};
updateInfo(obj, () => {
cusUpdateNode(obj);
});
});
//鼠标右键点击事件 //鼠标右键点击事件
FlowLine.onRightClick = () => { TextBox.onRightClick = () => {
rightClick(nodecopy); rightClick(nodecopy);
}; };
//鼠标左键点击事件 //鼠标左键点击事件
FlowLine.onClick = () => { TextBox.onClick = () => {
console.log(123);
leftClick(nodecopy); leftClick(nodecopy);
}; };
// cb() window._entityMap.set(node.source_id, TextBox);
window._entityMap.set(node.source_id, FlowLine);
} }
export { export {
@ -1302,5 +1342,6 @@ export {
renderCurve, renderCurve,
renderEllipse, renderEllipse,
renderSector, renderSector,
renderFlyLine renderFlyLine,
renderTextBox,
}; };

View File

@ -39,12 +39,12 @@ import {
renderCurve, renderCurve,
renderEllipse, renderEllipse,
renderSector, renderSector,
renderFlyLine renderFlyLine,
renderTextBox
} from "./renderNode"; } from "./renderNode";
import { leftClick, rightClick } from "./entityClick"; import { leftClick, rightClick } from "./entityClick";
import { addPoint } from "@/api/gisAPI"; import { addPoint } from "@/api/gisAPI";
import { renderBaseMarker2d, renderLayer2d } from "./renderNode2d"; import { renderBaseMarker2d, renderLayer2d } from "./renderNode2d";
import { traverse } from "babel-core";
let staticPort = $root_home.$remote.getGlobal("sharedObject").avilablePort; let staticPort = $root_home.$remote.getGlobal("sharedObject").avilablePort;
@ -78,7 +78,7 @@ let get_detail_point = (DetailOption) => {
}, },
label: { label: {
text: DetailOption.name || DetailOption.source_name, text: DetailOption.name || DetailOption.source_name,
fontFamily:0 fontFamily: 0,
// color: "#07f8e4", // color: "#07f8e4",
// show: true, // show: true,
// fontSize: 20, // fontSize: 20,
@ -136,7 +136,7 @@ let get_detail_ellipse = (DetailOption) => {
center: DetailOption.center, center: DetailOption.center,
semiMajorAxis: DetailOption.semiMajorAxis, semiMajorAxis: DetailOption.semiMajorAxis,
semiMinorAxis: DetailOption.semiMinorAxis, semiMinorAxis: DetailOption.semiMinorAxis,
color: "rgba(255,0,0,1)", color: "rgba(255,0,0,.5)",
}; };
return detail; return detail;
}; };
@ -152,7 +152,7 @@ let get_detail_sector = (DetailOption) => {
center: DetailOption.center, center: DetailOption.center,
startAngle: DetailOption.startAngle, startAngle: DetailOption.startAngle,
endAngle: DetailOption.endAngle, endAngle: DetailOption.endAngle,
color: 'rgba(255,0,0,1)', color: "rgba(255,0,0,.5)",
}; };
return detail; return detail;
}; };
@ -179,9 +179,9 @@ let get_detail_line = (DetailOption) => {
buffer: false, buffer: false,
buffer_width: 1, buffer_width: 1,
buffer_color: "#efc312", buffer_color: "#efc312",
lineWidth:3, lineWidth: 3,
'extend-color':'rgba(255,222,80,.3)', "extend-color": "rgba(255,255,80,.3)",
'extend-width':10, "extend-width": 10,
// } // }
}; };
recurrenceSetValue(detail, DetailOption); recurrenceSetValue(detail, DetailOption);
@ -203,7 +203,7 @@ let get_detail_curve = (DetailOption) => {
// polyline: { // polyline: {
positions: DetailOption.position, positions: DetailOption.position,
color: "#ff0000AF", color: "rgba(255,0,0,1)",
width: 5, width: 5,
type: 0, type: 0,
close: false, close: false,
@ -242,7 +242,7 @@ let get_detail_panel = (DetailOption) => {
positions: DetailOption.position, positions: DetailOption.position,
color: "rgba(255,0,0,0.5)", color: "rgba(255,0,0,0.5)",
line:{ line: {
width: 3, width: 3,
color: "rgba(255,0,0,1)", color: "rgba(255,0,0,1)",
}, },
@ -264,7 +264,7 @@ let get_detail_rendezvous = (DetailOption) => {
// polygon: { // polygon: {
positions: DetailOption.position, positions: DetailOption.position,
color: 'rgba(255,0,0,0.5)', color: "rgba(255,0,0,0.5)",
width: 5, width: 5,
type: 0, type: 0,
// }, // },
@ -283,7 +283,7 @@ let get_detail_circle = (DetailOption) => {
}, },
// circle: { // circle: {
center: DetailOption.center, center: DetailOption.center,
color: 'rgba(255,0,0,0.5)', color: "rgba(255,0,0,0.5)",
radius: 5, radius: 5,
// } // }
}; };
@ -334,6 +334,10 @@ let get_detail_groundImage = (DetailOption) => {
text: "", text: "",
hrefs: "", hrefs: "",
}, },
scale: {
x: 0.073,
y: 0.073,
},
show: true, show: true,
width: 60, width: 60,
height: 60, height: 60,
@ -521,7 +525,7 @@ let get_detail_wallStereoscopic = (DetailOption) => {
text: "", text: "",
hrefs: "", hrefs: "",
}, },
color: 'rgba(255,0,0,1)', color: "rgba(255,0,0,1)",
extrudedHeight: DetailOption.extrudedHeight, extrudedHeight: DetailOption.extrudedHeight,
height: DetailOption.height, height: DetailOption.height,
duration: 3000, duration: 3000,
@ -589,8 +593,22 @@ let get_detail_picture = (DetailOption) => {
}, },
}; };
}; };
let get_detail_textbox = (DetailOption)=>{
return {
id: DetailOption.id || DetailOption.source_id,
position: DetailOption.position,
text: DetailOption.text,
show: true,
};
};
//定义树形节点的属性 //定义树形节点的属性
const nodeType = { const nodeType = {
textBox:{
rightMenus: ["edit", "del", "setView", "resetView"],
render: renderTextBox,
detailFun: get_detail_textbox,
},
point: { point: {
rightMenus: ["edit", "del", "setView", "resetView"], rightMenus: ["edit", "del", "setView", "resetView"],
render: renderBaseMarker, render: renderBaseMarker,
@ -954,11 +972,11 @@ const nodeType = {
// detailFun: get_detail_shp, // detailFun: get_detail_shp,
// allowChildren: false // allowChildren: false
// }, // },
FeatureCollection:{ FeatureCollection: {
rightMenus: [], rightMenus: [],
render: renderShp, render: renderShp,
detailFun: get_detail_shp, detailFun: get_detail_shp,
allowChildren: false allowChildren: false,
}, },
Feature: { Feature: {
rightMenus: ["setView", "resetView", "showAttr"], rightMenus: ["setView", "resetView", "showAttr"],
@ -1017,7 +1035,7 @@ const nodeType = {
allowChildren: false, allowChildren: false,
}, },
// 飞线 // 飞线
flyLine:{ flyLine: {
rightMenus: [ rightMenus: [
"edit", "edit",
"del", "del",
@ -1027,7 +1045,7 @@ const nodeType = {
render: renderFlyLine, render: renderFlyLine,
detailFun: get_detail_flyLine, detailFun: get_detail_flyLine,
allowChildren: false, allowChildren: false,
} },
// renderStandText // renderStandText
}; };
@ -1042,7 +1060,7 @@ const nodeType = {
* @return {{tree_index: number, rich_text: string, layer_index: number, source_type: string, source_id: string, detail: string, source_path: string, source_name: string, is_show: number, p_id: string}} * @return {{tree_index: number, rich_text: string, layer_index: number, source_type: string, source_id: string, detail: string, source_path: string, source_name: string, is_show: number, p_id: string}}
*/ */
let getNodeData = (DbOption = { source_type: "point" }, DetailOption = {}) => { let getNodeData = (DbOption = { source_type: "point" }, DetailOption = {}) => {
console.log("DbOptionDbOptionDbOption", ); console.log("DbOptionDbOptionDbOption");
if (!DbOption.source_id) if (!DbOption.source_id)
DbOption.source_id = $root_home.$md5( DbOption.source_id = $root_home.$md5(
new Date().getTime() + dbStruct.source_name new Date().getTime() + dbStruct.source_name
@ -1051,7 +1069,7 @@ let getNodeData = (DbOption = { source_type: "point" }, DetailOption = {}) => {
{ source_type: DbOption.source_type, source_id: DbOption.source_id }, { source_type: DbOption.source_type, source_id: DbOption.source_id },
DetailOption DetailOption
); );
console.log('detail',detail); console.log("detail", detail);
DbOption.detail = detail; DbOption.detail = detail;
let Node = setDbStruct(DbOption); let Node = setDbStruct(DbOption);
console.log("getNodeData", Node); console.log("getNodeData", Node);
@ -1324,6 +1342,16 @@ function cusRemoveNode(treeObj, nodes) {
nodes.forEach((node) => { nodes.forEach((node) => {
allNodes = allNodes.concat(treeObj.transformToArray(node)); allNodes = allNodes.concat(treeObj.transformToArray(node));
}); });
let ids = [
"模型图层",
"特效图层",
"标绘图层",
"二维军标图层",
"三维军标图层",
];
// 排除
allNodes = allNodes.filter((node) => !ids.includes(node.source_id));
allNodes.forEach((node) => { allNodes.forEach((node) => {
_idSet.add(node.source_id); _idSet.add(node.source_id);
treeObj.removeNode(node); treeObj.removeNode(node);

View File

@ -154,10 +154,28 @@ const tree = {
isnewSelect = false; isnewSelect = false;
}); });
console.log("selectNodes1111111111111111111111", selectNodes); console.log("selectNodes1111111111111111111111", selectNodes);
if (!event.ctrlKey && (selectNodes.length < 2 || isnewSelect)) if (!event.ctrlKey && (selectNodes.length < 2 || isnewSelect))
treeNodeOption.cusSelectNode(this.treeObj, treeNode); treeNodeOption.cusSelectNode(this.treeObj, treeNode);
let menus = treeNodeOption.showRightMenu(event, this.treeObj); let menus = treeNodeOption.showRightMenu(event, this.treeObj);
let ids = [
"模型图层",
"特效图层",
"标绘图层",
"二维军标图层",
"三维军标图层",
];
// 判断source_ids中如果包含ids中的id则不显示右键菜单
if (treeNode && treeNode.source_id) {
if (ids.includes(treeNode.source_id)) {
menus = [
"addDirectory",
"addResource",
"pictureLocation",
"importPanorama",
];
}
}
console.log("treeNode", treeNode);
console.log(menus); console.log(menus);
if (menus.length == 0) { if (menus.length == 0) {
return; return;
@ -259,6 +277,18 @@ const tree = {
* @returns {boolean} 返回 falsezTree 将恢复被拖拽的节点,也无法触发 onDrop 事件回调函数 * @returns {boolean} 返回 falsezTree 将恢复被拖拽的节点,也无法触发 onDrop 事件回调函数
*/ */
beforeDrop(treeId, treeNodes, targetNode, moveType) { beforeDrop(treeId, treeNodes, targetNode, moveType) {
if (
["prev", "next", "inner"].includes(moveType) &&
[
"模型图层",
"特效图层",
"标绘图层",
"二维军标图层",
"三维军标图层",
].includes(treeNodes[0].source_id)
) {
return false;
}
if ( if (
["prev", "next", "inner"].includes(moveType) && ["prev", "next", "inner"].includes(moveType) &&
["pressModel", "terrainDig"].includes(treeNodes[0].source_type) ["pressModel", "terrainDig"].includes(treeNodes[0].source_type)
@ -304,6 +334,19 @@ const tree = {
if ((!isShift && !isCtrl) || !treeNode) { if ((!isShift && !isCtrl) || !treeNode) {
nodes = []; nodes = [];
} }
let ids = [
"模型图层",
"特效图层",
"标绘图层",
"二维军标图层",
"三维军标图层",
];
if (treeNode) {
if (ids.includes(treeNode.source_type)) {
return false;
}
}
console.log("nodes", treeNode);
if (treeNode) { if (treeNode) {
nodes.push(treeNode); nodes.push(treeNode);
//根据编辑表单的回调,控制图层的勾选显示 //根据编辑表单的回调,控制图层的勾选显示
@ -528,7 +571,7 @@ const tree = {
* @param treeNode * @param treeNode
*/ */
onDblClick(event, treeId, treeNode) { onDblClick(event, treeId, treeNode) {
console.log("双击文件夹",treeNode); console.log("双击文件夹", treeNode);
let entity = window._entityMap.get(treeNode.source_id); let entity = window._entityMap.get(treeNode.source_id);
// if (!entity) { // if (!entity) {
// this.$message.warning("无资源数据"); // this.$message.warning("无资源数据");
@ -632,7 +675,7 @@ const tree = {
console.log("shp", shp); console.log("shp", shp);
node.children.forEach((item) => { node.children.forEach((item) => {
shp.setShow(status, item.source_id); shp.setShow(status, item.source_id);
console.log("item",status, item); console.log("item", status, item);
}); });
return; return;
} }

View File

@ -166,7 +166,7 @@ export default {
}, },
methods: { methods: {
addMarker(option) { addMarker(option) {
let bioahui_id = "2e46e3da8b72d5242e5898170a229ad7" let bioahui_id = "标绘图层"
if (window.checkAuthIsValid) { if (window.checkAuthIsValid) {
if (option.source_name == "锁定") { if (option.source_name == "锁定") {
if (YJ.Global.Lock.status()) { if (YJ.Global.Lock.status()) {
@ -205,12 +205,14 @@ export default {
// 绘制 // 绘制
draw(option) { draw(option) {
let source_id = this.$md5(new Date().getTime() + option.source_name); let source_id = this.$md5(new Date().getTime() + option.source_name);
let biaohui_id = "标绘图层";
//数据库对应的数据对象 //数据库对应的数据对象
let DbOption = { let DbOption = {
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,
}; };
let draw let draw
if (option.source_type == "curve") { if (option.source_type == "curve") {
@ -282,6 +284,7 @@ export default {
}, },
// 贴地文字 // 贴地文字
groundText() { groundText() {
// let biaohui_id = "标绘图层";
let that = this; let that = this;
this.$sendChanel("textTetlie", "贴地文字"); this.$sendChanel("textTetlie", "贴地文字");
this.$changeComponentShow(".textModelBox", true); this.$changeComponentShow(".textModelBox", true);
@ -318,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,DbOption.p_id, [node]);
} }
}); });
} }
@ -328,6 +331,7 @@ export default {
}, },
// 立体文字 // 立体文字
standText() { standText() {
// let biaohui_id = "标绘图层";
let that = this; let that = this;
this.$sendChanel("textTetlie", "立体文字"); this.$sendChanel("textTetlie", "立体文字");
this.$changeComponentShow(".textModelBox", true); this.$changeComponentShow(".textModelBox", true);
@ -367,6 +371,7 @@ export default {
}, },
// 扇形 // 扇形
sector() { sector() {
let biaohui_id = "标绘图层";
let draw = new YJ.Draw.DrawSector(window.Earth1); let draw = new YJ.Draw.DrawSector(window.Earth1);
draw.start((err, params) => { draw.start((err, params) => {
console.log("paramsparamsparams", params); console.log("paramsparamsparams", params);
@ -402,6 +407,7 @@ export default {
}, },
// 椭圆 // 椭圆
ellipse() { ellipse() {
let biaohui_id = "标绘图层";
let draw = new YJ.Draw.DrawElliptic(window.Earth1); let draw = new YJ.Draw.DrawElliptic(window.Earth1);
draw.start((err, params) => { draw.start((err, params) => {
console.log("paramsparamsparams", params); console.log("paramsparamsparams", params);

View File

@ -263,7 +263,7 @@ export default {
handleClick() { }, handleClick() { },
selectImg({ key, url, name }) { selectImg({ key, url, name }) {
// 军标库图层 // 军标库图层
let jun_biao_id = "3579e514a976c9aad03fde6b6198f464"; 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"
@ -312,7 +312,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, jun_biao_id, [node]); cusAddNodes(this.treeObj, DbOption.p_id, [node]);
} }
}); });
} }

View File

@ -120,7 +120,7 @@ export default {
handleClick() { handleClick() {
}, },
selectImg({ key, url, name, glbUrl }) { selectImg({ key, url, name, glbUrl }) {
let jun_biao_id = "03826cc9d84e13cb404745ebd5b3963e" 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)"
@ -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,jun_biao_id, [node]) cusAddNodes(this.treeObj,DbOption.p_id, [node])
} }
}); });
} }

View File

@ -9,10 +9,13 @@
</span> </span>
</div> </div>
<div class="boxBody custom_scroll_bar"> <div class="boxBody custom_scroll_bar">
<div style="display: flex"> <div style="display: flex;justify-content: space-between;">
<el-input size="small" suffix-icon="el-icon-search" placeholder="输入关键字进行过滤" @input="searchContent" <el-input size="small" suffix-icon="el-icon-search" placeholder="输入关键字进行过滤" @input="searchContent"
v-model="filterText"> v-model="filterText">
</el-input> </el-input>
<div class="modelSet">
<el-button type="primary" @click="modelSet" size="small">默认模型参数设置</el-button>
</div>
<!--<el-button type="primary" @click="searchContent('type')" size="small">搜类型</el-button>--> <!--<el-button type="primary" @click="searchContent('type')" size="small">搜类型</el-button>-->
<!--<el-button type="primary" @click="searchContent('junbiao')" size="small">搜军标</el-button>--> <!--<el-button type="primary" @click="searchContent('junbiao')" size="small">搜军标</el-button>-->
</div> </div>
@ -33,10 +36,11 @@
<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">
<div class="itemBox" @click="selectModel(model)"> <!-- -->
<div class="imgbox"> <div class="itemBox" @click="editModel(model)" @dblclick="selectModel(model)">
<el-image :src="model.poster_url + '?' + Math.random()" alt=""></el-image> <div class="imgbox" :class="{ selectModel: editModelId == model.model_id }">
<el-image :src="model.poster_url" alt=""></el-image>
<!-- + '?' + Math.random() -->
</div> </div>
<span>{{ model.model_name }}</span> <span>{{ model.model_name }}</span>
</div> </div>
@ -82,9 +86,86 @@ export default {
allModels: [], allModels: [],
searchRes: [], searchRes: [],
arrModel: [], arrModel: [],
editModelData: null,
editModelId: null,
}; };
}, },
methods: { methods: {
modelSet() {
if (this.editModelData) {
let url = this.editModelData.model_url;
let source_id = this.$md5(new Date().getTime() + this.editModelData.model_name);
console.log(this.editModelData, url, source_id);
let models = new YJ.Obj.BatchModel(window.Earth1, {
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) {
let selectedNode = getSelectedNode(this.treeObj);
let p_id = selectedNode
? nodeType[selectedNode.source_type].allowChildren
? selectedNode.source_id
: selectedNode.p_id
: -1;
let z
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.z;
}else if (data.type=="线") {
z = data.rotate[index];
}
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, DbOption.p_id, [node]);
}
});
});
}
},
editModel(model) {
this.editModelData = model;
this.editModelId = model.model_id;
},
searchContent(val) { searchContent(val) {
if (val) { if (val) {
this.searchRes = this.allModels.filter((item) => { this.searchRes = this.allModels.filter((item) => {
@ -95,6 +176,7 @@ export default {
} }
}, },
selectModel(model) { selectModel(model) {
let model_p_id = "模型图层"
console.log("选中了模型", model, this.type); console.log("选中了模型", model, this.type);
this.close(); this.close();
if (this.type == "rightMenu") { if (this.type == "rightMenu") {
@ -137,11 +219,10 @@ export default {
detailOption.url = model.model_id + ".glb"; detailOption.url = model.model_id + ".glb";
let node = getNodeData(DbOption, detailOption); let node = getNodeData(DbOption, detailOption);
console.log(node); console.log(node);
let model_id = "43d570f69514904a91b5df9c5f33bc98"
addSource(node).then((res) => { addSource(node).then((res) => {
if ([0, 200].includes(res.code)) { if ([0, 200].includes(res.code)) {
// cusRenderNode(DbOption) DbOption.p_id // cusRenderNode(DbOption) DbOption.p_id
cusAddNodes(this.treeObj, model_id, [node]); cusAddNodes(this.treeObj, DbOption.p_id, [node]);
} }
}); });
} }
@ -190,6 +271,8 @@ export default {
this.allModels = []; this.allModels = [];
this.modelTypeList = []; this.modelTypeList = [];
this.activeName = ""; this.activeName = "";
this.editModelData = null;
this.editModelId = null;
this.$changeComponentShow(".modelBox", false); this.$changeComponentShow(".modelBox", false);
}, },
}, },
@ -255,6 +338,18 @@ export default {
flex: auto; flex: auto;
overflow-y: 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 { .itemBox {
width: 20%; width: 20%;
display: flex; display: flex;
@ -273,6 +368,7 @@ export default {
background-repeat: no-repeat; background-repeat: no-repeat;
box-sizing: border-box; box-sizing: border-box;
text-align: center; text-align: center;
border: 1px solid rgba(0, 0, 0, 0);
} }
img { img {

View File

@ -176,7 +176,6 @@ export default {
flex-wrap: wrap; flex-wrap: wrap;
justify-content: space-between; justify-content: space-between;
padding: 20px; padding: 20px;
.el-form--label-top .el-form-item__label { .el-form--label-top .el-form-item__label {
padding: 0; padding: 0;
} }
@ -186,10 +185,16 @@ export default {
} }
.el-textarea__inner { .el-textarea__inner {
max-height: 500px;
// overflow: hidden; /* 禁用滚动条 */
resize: none; /* 禁止用户手动调整文本框的尺寸 */
background-color: transparent; background-color: transparent;
color: #fff; color: #fff;
border-color: rgba(var(--color-sdk-base-rgb), 0.5) !important; border-color: rgba(var(--color-sdk-base-rgb), 0.5) !important;
} }
.el-textarea__inner::scrollbar-width {
display: none;
}
.el-button { .el-button {
background: rgba(var(--color-sdk-base-rgb), 0.2); background: rgba(var(--color-sdk-base-rgb), 0.2);

View File

@ -1,7 +1,7 @@
<template> <template>
<div class="header_top"> <div class="header_top">
<!-- <svg-icon icon-class="Head" :class-name="['headItem']"></svg-icon> --> <!-- <svg-icon icon-class="Head" :class-name="['headItem']"></svg-icon> -->
<img style="width:100%;" :src="require('@/assets/images/81/' + skinInfo + '/head.png')" alt="" /> <img style="width:100%;" :src="require('@/assets/images/812/' + skinInfo + '/head.png')" alt="" />
<div class="dateTime"> <div class="dateTime">
<span>{{ date.ymd }}</span> <span>{{ date.ymd }}</span>
<span>{{ $t("headerTitles.week")[date.week] }}</span> <span>{{ $t("headerTitles.week")[date.week] }}</span>

View File

@ -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,

View File

@ -78,7 +78,7 @@
<!-- <img src="@/assets/images/81.gif" /> --> <!-- <img src="@/assets/images/81.gif" /> -->
<!-- <img src="@/assets/images/rotation.gif" /> --> <!-- <img src="@/assets/images/rotation.gif" /> -->
<!-- <img src="@/assets/images/地球.gif" />--> <!-- <img src="@/assets/images/地球.gif" />-->
<img :src="require('@/assets/images/81/' + skinInfo + '/logo.png')" alt="" /> <img :src="require('@/assets/images/812/' + skinInfo + '/logo.png')" alt="" />
<!-- <img src="@/assets/images/3c60ff3cd2d9e0547ada43a58fa60c3.png">--> <!-- <img src="@/assets/images/3c60ff3cd2d9e0547ada43a58fa60c3.png">-->
<!-- <img src="@/assets/images/aaaaaa.webp">--> <!-- <img src="@/assets/images/aaaaaa.webp">-->
<!-- <button v-for="item in optionss" @click="addMarker(item)">{{ item.source_name }}</button>--> <!-- <button v-for="item in optionss" @click="addMarker(item)">{{ item.source_name }}</button>-->

View File

@ -12,13 +12,13 @@
<div class="titleItem"> <div class="titleItem">
<img src="../../assets/images/titleLeft.png" alt="" /> <img src="../../assets/images/titleLeft.png" alt="" />
<div> <div>
<div style="font-size: 4em;font-family: 'youshe';" class="title"> <!-- <div style="font-size: 4em;font-family: 'youshe';" class="title">
北斗定位+ 北斗定位+
</div> </div>
<div style="font-size: 3.5em;" class="title"> <div style="font-size: 3.5em;" class="title">
便携式应急指挥电子沙盘系统 便携式应急指挥电子沙盘系统
</div> </div> -->
<!-- <div class="title">{{ $t("title.name") }}</div> --> <div class="title">{{ $t("title.name") }}</div>
</div> </div>
<img src="../../assets/images/titleRight.png" alt="" /> <img src="../../assets/images/titleRight.png" alt="" />
</div> </div>
@ -252,7 +252,7 @@ export default {
selectedService: "接口服务", selectedService: "接口服务",
serviceOptions: [ serviceOptions: [
{ name: "接口服务" }, { name: "接口服务" },
{ name: "北斗串口" } // { name: "北斗串口" }
], ],
servVal: "单机", servVal: "单机",
gpsVal: "", gpsVal: "",

BIN
static/icon/textBox.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 243 B

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1034,6 +1034,7 @@
padding: 5px; padding: 5px;
position: fixed !important; position: fixed !important;
} }
.YJ-custom-base-dialog>.content .ew-color-picker input { .YJ-custom-base-dialog>.content .ew-color-picker input {
font-size: 14px; font-size: 14px;
line-height: 28px; line-height: 28px;
@ -1041,6 +1042,7 @@
padding: 0 8px; padding: 0 8px;
font-weight: 400; font-weight: 400;
} }
.YJ-custom-base-dialog>.content .ew-color-picker .input-number-unit input[type=number] { .YJ-custom-base-dialog>.content .ew-color-picker .input-number-unit input[type=number] {
padding: 0 20px 0 8px; padding: 0 20px 0 8px;
width: 66px; width: 66px;
@ -1049,11 +1051,12 @@
.YJ-custom-base-dialog.ew-color-picker>.ew-color-picker-content { .YJ-custom-base-dialog.ew-color-picker>.ew-color-picker-content {
margin-bottom: 10px; margin-bottom: 10px;
} }
.YJ-custom-base-dialog .ew-color-picker>.ew-color-picker-content>.ew-color-panel { .YJ-custom-base-dialog .ew-color-picker>.ew-color-picker-content>.ew-color-panel {
width: 302px; width: 302px;
} }
.YJ-custom-base-dialog .ew-color-picker> .ew-color-input { .YJ-custom-base-dialog .ew-color-picker>.ew-color-input {
margin-top: 1px; margin-top: 1px;
font-size: 14px; font-size: 14px;
background-color: rgba(0, 0, 0, 0.5); background-color: rgba(0, 0, 0, 0.5);
@ -1109,6 +1112,7 @@
margin: 0 0 8px 8px; margin: 0 0 8px 8px;
border: 1px solid #9b979b; border: 1px solid #9b979b;
} }
.YJ-custom-base-dialog .ew-color-picker>.ew-pre-define-color-container>.ew-pre-define-color:nth-child(11n+1) { .YJ-custom-base-dialog .ew-color-picker>.ew-pre-define-color-container>.ew-pre-define-color:nth-child(11n+1) {
width: 22px; width: 22px;
height: 22px; height: 22px;
@ -1138,6 +1142,7 @@
text-align: center; text-align: center;
background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg=="); background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==");
} }
.YJ-custom-base-dialog .ew-color-picker>.yj-pre-collect-color-container>.yj-pre-collect-color:nth-child(11n+1) { .YJ-custom-base-dialog .ew-color-picker>.yj-pre-collect-color-container>.yj-pre-collect-color:nth-child(11n+1) {
margin: 0 0 8px 0; margin: 0 0 8px 0;
} }
@ -1148,13 +1153,14 @@
background: unset; background: unset;
line-height: 22px; line-height: 22px;
} }
.YJ-custom-base-dialog .ew-color-picker>.yj-pre-collect-color-container>.yj-pre-collect-color.add:hover, .YJ-custom-base-dialog .ew-color-picker>.yj-pre-collect-color-container>.yj-pre-collect-color.add:hover,
.YJ-custom-base-dialog .ew-color-picker>.yj-pre-collect-color-container>.yj-pre-collect-color.subtract:hover { .YJ-custom-base-dialog .ew-color-picker>.yj-pre-collect-color-container>.yj-pre-collect-color.subtract:hover {
border-color: rgba(var(--color-sdk-base-rgb), 0.4); border-color: rgba(var(--color-sdk-base-rgb), 0.4);
} }
.YJ-custom-base-dialog .ew-color-picker>.yj-pre-collect-color-container svg, .YJ-custom-base-dialog .ew-color-picker>.yj-pre-collect-color-container svg,
.YJ-custom-base-dialog .ew-color-picker>.yj-pre-collect-color-container> svg { .YJ-custom-base-dialog .ew-color-picker>.yj-pre-collect-color-container>svg {
margin: 0; margin: 0;
} }
@ -1171,6 +1177,7 @@
border-radius: 3px; border-radius: 3px;
cursor: pointer; cursor: pointer;
} }
.YJ-custom-base-dialog .ew-color-picker>.yj-pre-collect-color-container>.yj-pre-collect-color>.yj-pre-define-color-item.subtract-btn { .YJ-custom-base-dialog .ew-color-picker>.yj-pre-collect-color-container>.yj-pre-collect-color>.yj-pre-define-color-item.subtract-btn {
position: absolute; position: absolute;
top: 0; top: 0;
@ -1192,6 +1199,7 @@
height: 28px; height: 28px;
line-height: 28px; line-height: 28px;
} }
.YJ-custom-base-dialog .ew-color-picker .ew-color-dropbtngroup button.ew-color-clear { .YJ-custom-base-dialog .ew-color-picker .ew-color-dropbtngroup button.ew-color-clear {
margin-right: 8px; margin-right: 8px;
} }
@ -1229,12 +1237,12 @@
transform: rotate(-45deg); transform: rotate(-45deg);
} }
.YJ-custom-base-dialog .ew-color-picker .ew-color-dropbtns{ .YJ-custom-base-dialog .ew-color-picker .ew-color-dropbtns {
display: flex; display: flex;
align-items: center; align-items: center;
} }
.YJ-custom-base-dialog .ew-color-picker svg{ .YJ-custom-base-dialog .ew-color-picker svg {
margin: 0; margin: 0;
} }
@ -1421,6 +1429,24 @@
margin-bottom: 10px; margin-bottom: 10px;
display: flex; display: flex;
position: relative; position: relative;
overflow-y: auto;
}
.DIV-cy-tabs .DIV-cy-tab-top::-webkit-scrollbar {
width: 4px;
height: 4px;
}
.DIV-cy-tabs .DIV-cy-tab-top::-webkit-scrollbar-thumb {
border-radius: 5px;
-webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
background-color: rgba(var(--color-sdk-base-rgb));
}
.DIV-cy-tabs .DIV-cy-tab-top::-webkit-scrollbar-track {
-webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
border-radius: 5px;
background-color: rgba(var(--color-sdk-base-rgb), 0.1);
} }
.DIV-cy-tabs .DIV-cy-tab-top::after { .DIV-cy-tabs .DIV-cy-tab-top::after {
@ -1465,7 +1491,14 @@
border-bottom: 2px solid #dddddd00; border-bottom: 2px solid #dddddd00;
position: relative; position: relative;
z-index: 2; z-index: 2;
white-space: nowrap;
user-select: none;
cursor: pointer; cursor: pointer;
-webkit-pointer-events: auto;
-moz-pointer-events: auto;
-ms-pointer-events: auto;
-o-pointer-events: auto;
pointer-events: auto;
} }
.DIV-cy-tabs .DIV-cy-tab-pane-title-p span { .DIV-cy-tabs .DIV-cy-tab-pane-title-p span {
@ -1955,6 +1988,7 @@
.YJ-custom-base-dialog.water-surface>.content>div .row .label { .YJ-custom-base-dialog.water-surface>.content>div .row .label {
flex: 0 0 60px; flex: 0 0 60px;
} }
/* 流光飞线 */ /* 流光飞线 */
.YJ-custom-base-dialog.flow-line-surface>.content { .YJ-custom-base-dialog.flow-line-surface>.content {
width: 586px; width: 586px;
@ -2123,6 +2157,7 @@
.YJ-custom-base-dialog.particle-effects>.content .row>.col { .YJ-custom-base-dialog.particle-effects>.content .row>.col {
width: 200px; width: 200px;
} }
.YJ-custom-base-dialog.particle-effects>.content .ew-color-picker .row>.col { .YJ-custom-base-dialog.particle-effects>.content .ew-color-picker .row>.col {
width: auto; width: auto;
} }
@ -2772,6 +2807,7 @@
.YJ-custom-base-dialog.polyline>.content { .YJ-custom-base-dialog.polyline>.content {
width: 580px; width: 580px;
} }
.YJ-custom-base-dialog.polyline>.content>div #dashTextureDom { .YJ-custom-base-dialog.polyline>.content>div #dashTextureDom {
display: none; display: none;
} }
@ -2823,6 +2859,7 @@
.YJ-custom-base-dialog.polyline>.content>div .spatial-info-table .table-body { .YJ-custom-base-dialog.polyline>.content>div .spatial-info-table .table-body {
max-height: 185px; max-height: 185px;
} }
.YJ-custom-base-dialog.polyline>.content>div .input-select-unit-box textarea { .YJ-custom-base-dialog.polyline>.content>div .input-select-unit-box textarea {
border-radius: unset !important; border-radius: unset !important;
} }
@ -2951,33 +2988,36 @@
} }
.YJ-custom-base-dialog.polyline>.content>div .input-select-unit-box textarea { .YJ-custom-base-dialog.polyline>.content>div .input-select-unit-box textarea {
border-radius: unset!important; border-radius: unset !important;
} }
.YJ-custom-base-dialog.polyline>.content>div .input-select-unit .datalist { .YJ-custom-base-dialog.polyline>.content>div .input-select-unit .datalist {
background-color:rgba(var(--color-sdk-base-rgb), 0.1)!important; background-color: rgba(var(--color-sdk-base-rgb), 0.1) !important;
border-radius: 4px 0px 0px 4px !important; border-radius: 4px 0px 0px 4px !important;
} }
.YJ-custom-base-dialog.polyline>.content>div .input-select-unit:nth-of-type(1) .datalist { .YJ-custom-base-dialog.polyline>.content>div .input-select-unit:nth-of-type(1) .datalist {
background-color:rgba(var(--color-sdk-base-rgb), 0.1)!important; background-color: rgba(var(--color-sdk-base-rgb), 0.1) !important;
border-radius: 4px 0px, 0px, 4px!important; border-radius: 4px 0px, 0px, 4px !important;
} }
.YJ-custom-base-dialog.polyline>.content>div .input-select-unit:nth-of-type(2) .datalist { .YJ-custom-base-dialog.polyline>.content>div .input-select-unit:nth-of-type(2) .datalist {
background-color:rgba(var(--color-sdk-base-rgb), 0.1)!important; background-color: rgba(var(--color-sdk-base-rgb), 0.1) !important;
border-radius: 0px 4px 4px 0px!important; border-radius: 0px 4px 4px 0px !important;
} }
.YJ-custom-base-dialog.polyline>.content>div .input-select-unit:nth-of-type(1) input { .YJ-custom-base-dialog.polyline>.content>div .input-select-unit:nth-of-type(1) input {
border: 1px solid rgba(var(--color-sdk-base-rgb), 0.5)!important; border: 1px solid rgba(var(--color-sdk-base-rgb), 0.5) !important;
}
.YJ-custom-base-dialog.polyline>.content>div .input-select-unit:nth-of-type(2) input {
border: 1px solid rgba(var(--color-sdk-base-rgb), 0.5)!important;
} }
.YJ-custom-base-dialog.polyline>.content input.input-text{ .YJ-custom-base-dialog.polyline>.content>div .input-select-unit:nth-of-type(2) input {
background-color: rgba(0, 0, 0, 0.5)!important; border: 1px solid rgba(var(--color-sdk-base-rgb), 0.5) !important;
border-radius: unset!important; }
border-top: 1px solid rgba(var(--color-sdk-base-rgb), 0.5)!important;
.YJ-custom-base-dialog.polyline>.content input.input-text {
background-color: rgba(0, 0, 0, 0.5) !important;
border-radius: unset !important;
border-top: 1px solid rgba(var(--color-sdk-base-rgb), 0.5) !important;
border-bottom: 1px solid rgba(var(--color-sdk-base-rgb), 0.5) !important; border-bottom: 1px solid rgba(var(--color-sdk-base-rgb), 0.5) !important;
} }
@ -3002,73 +3042,122 @@
height: 13px; height: 13px;
margin-right: 7px; margin-right: 7px;
} }
.YJ-custom-base-dialog.polyline>.content>div .input-select-line-type-box .cy_datalist i.line { .YJ-custom-base-dialog.polyline>.content>div .input-select-line-type-box .cy_datalist i.line {
border: 1px solid rgba(var(--color-sdk-base-rgb), 1); border: 1px solid rgba(var(--color-sdk-base-rgb), 1);
height: 0px; height: 0px;
margin-top: 4px; margin-top: 4px;
} }
.YJ-custom-base-dialog.polyline>.content>div .input-select-line-type-box .cy_datalist i.dash-line { .YJ-custom-base-dialog.polyline>.content>div .input-select-line-type-box .cy_datalist i.dash-line {
border: 1px dashed rgba(var(--color-sdk-base-rgb), 1); border: 1px dashed rgba(var(--color-sdk-base-rgb), 1);
height: 0px; height: 0px;
margin-top: 4px; margin-top: 4px;
} }
.YJ-custom-base-dialog.polyline>.content>div .input-select-line-type-box .cy_datalist i.light-line { .YJ-custom-base-dialog.polyline>.content>div .input-select-line-type-box .cy_datalist i.light-line {
border: 1px solid rgba(var(--color-sdk-base-rgb), 1); border: 1px solid rgba(var(--color-sdk-base-rgb), 1);
height: 0px; height: 0px;
margin-top: 4px; margin-top: 4px;
box-shadow: 0 0 3px #fff box-shadow: 0 0 3px #fff
} }
.YJ-custom-base-dialog.polyline>.content>div .input-select-line-type-box .cy_datalist i.tail-line { .YJ-custom-base-dialog.polyline>.content>div .input-select-line-type-box .cy_datalist i.tail-line {
background: url(../../img/arrow/tail.png) 100% 100% no-repeat; background: url(../../img/arrow/tail.png) 100% 100% no-repeat;
background-size: 100% 100%; background-size: 100% 100%;
} }
.YJ-custom-base-dialog.polyline>.content>div .input-select-line-type-box .cy_datalist i.mult-tail-line { .YJ-custom-base-dialog.polyline>.content>div .input-select-line-type-box .cy_datalist i.mult-tail-line {
background: url(../../img/arrow/tail.png) 100% 100% no-repeat; background: url(../../img/arrow/tail.png) 100% 100% no-repeat;
background-size: 100% 100%; background-size: 100% 100%;
} }
.YJ-custom-base-dialog.polyline>.content>div .input-select-line-type-box .cy_datalist i.flow-dash-line1 { .YJ-custom-base-dialog.polyline>.content>div .input-select-line-type-box .cy_datalist i.flow-dash-line1 {
border: 1px dashed rgba(var(--color-sdk-base-rgb), 1); border: 1px dashed rgba(var(--color-sdk-base-rgb), 1);
height: 0px; height: 0px;
margin-top: 4px; margin-top: 4px;
} }
.YJ-custom-base-dialog.polyline>.content>div .input-select-line-type-box .cy_datalist i.flow-dash-line2 { .YJ-custom-base-dialog.polyline>.content>div .input-select-line-type-box .cy_datalist i.flow-dash-line2 {
border: 1px dashed rgba(var(--color-sdk-base-rgb), 1); border: 1px dashed rgba(var(--color-sdk-base-rgb), 1);
height: 0px; height: 0px;
margin-top: 4px; margin-top: 4px;
} }
.YJ-custom-base-dialog.polyline>.content>div .input-select-line-type-box .cy_datalist i.pic-line1 { .YJ-custom-base-dialog.polyline>.content>div .input-select-line-type-box .cy_datalist i.pic-line1 {
background: url(../../img/arrow/1.png); background: url(../../img/arrow/1.png);
background-size: cover; background-size: cover;
background-position: center; background-position: center;
} }
.YJ-custom-base-dialog.polyline>.content>div .input-select-line-type-box .cy_datalist i.pic-line2 { .YJ-custom-base-dialog.polyline>.content>div .input-select-line-type-box .cy_datalist i.pic-line2 {
background: url(../../img/arrow/2.png); background: url(../../img/arrow/2.png);
background-size: cover; background-size: cover;
background-position: center; background-position: center;
} }
.YJ-custom-base-dialog.polyline>.content>div .input-select-line-type-box .cy_datalist i.pic-line3 { .YJ-custom-base-dialog.polyline>.content>div .input-select-line-type-box .cy_datalist i.pic-line3 {
background: url(../../img/arrow/3.png); background: url(../../img/arrow/3.png);
background-size: cover; background-size: cover;
background-position: center; background-position: center;
} }
.YJ-custom-base-dialog.polyline>.content>div .input-select-line-type-box .cy_datalist i.pic-line4 { .YJ-custom-base-dialog.polyline>.content>div .input-select-line-type-box .cy_datalist i.pic-line4 {
background: url(../../img/arrow/4.png) ; background: url(../../img/arrow/4.png);
background-size: cover; background-size: cover;
background-position: center; background-position: center;
} }
.YJ-custom-base-dialog.polyline>.content>div .input-select-line-type-box .cy_datalist i.pic-line5 { .YJ-custom-base-dialog.polyline>.content>div .input-select-line-type-box .cy_datalist i.pic-line5 {
background: url(../../img/arrow/5.png); background: url(../../img/arrow/5.png);
background-size: cover; background-size: cover;
background-position: center; background-position: center;
} }
.YJ-custom-base-dialog.polyline>.content>div .input-select-line-type-box .cy_datalist i.pic-line6 { .YJ-custom-base-dialog.polyline>.content>div .input-select-line-type-box .cy_datalist i.pic-line6 {
background: url(../../img/arrow/6.png) 100% 100% no-repeat; background: url(../../img/arrow/6.png) 100% 100% no-repeat;
background-size: 100% 100%; background-size: 100% 100%;
} }
/* 文本框 */
.popup-textarea{
/* width: 212px; */
width: 161.6px;
/* height: 154px; */
height: 119.2px;
display: block;
pointer-events: none;
position: absolute;
/* z-index: 99; */
background: url(../../img/pop.png) 100% 100% no-repeat;
background-size: 100% 100%;
padding: 5px 5px 0px 5px;
}
.popup-textarea textarea{
background-color: unset!important;
border: unset!important;
color: #fff;
}
.popup-textarea textarea::-webkit-scrollbar {
width: 8px!important;
/* height: 8px!important; */
}
.popup-textarea textarea::-webkit-scrollbar-thumb {
border-radius: 5px!important;
-webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2)!important;
background-color: rgba(var(--color-sdk-base-rgb))!important;
}
.popup-textarea textarea::-webkit-scrollbar-track {
-webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2)!important;
border-radius: 5px!important;
background-color: rgba(var(--color-sdk-base-rgb), 0.1)!important;
}
/* 贴地图片 */ /* 贴地图片 */
.YJ-custom-base-dialog.ground-image>.content { .YJ-custom-base-dialog.ground-image>.content {
width: 500px; width: 560px;
} }
/* 模型 */ /* 模型 */
@ -3490,3 +3579,184 @@
.YJ-custom-base-dialog.contour>.content .label { .YJ-custom-base-dialog.contour>.content .label {
flex: unset; flex: unset;
} }
/* 锚点设置 */
.YJ-custom-base-dialog.anchor-point {
user-select: none;
}
.YJ-custom-base-dialog.anchor-point>.content {
padding: 14px 40px;
}
.YJ-custom-base-dialog.anchor-point>.content>div {
border: 1px solid #757575;
position: relative;
}
.YJ-custom-base-dialog.anchor-point>.content>div>.point {
width: 10px;
height: 10px;
position: absolute;
background: #FFDF53;
border-radius: 50%;
border: 1px solid #ff7300;
cursor: pointer;
}
.billboard-attribute-box {
position: absolute;
z-index: 1;
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;
color: #fff;
min-width: 200px;
min-height: 120px;
box-sizing: border-box;
/* -webkit-pointer-events: none;
-moz-pointer-events: none;
-ms-pointer-events: none;
-o-pointer-events: none;
pointer-events: none; */
}
.billboard-attribute-box .DIV-cy-tabs {
height: 100%;
display: flex;
flex-direction: column;
}
.billboard-attribute-box .DIV-cy-tabs .DIV-cy-tab-top .DIV-cy-tab-pane-title {
padding: 0 2px;
}
.billboard-attribute-box .DIV-cy-tabs .DIV-cy-tab-top .DIV-cy-tab-pane-title:first-child {
padding-left: 0;
}
.billboard-attribute-box .DIV-cy-tabs .DIV-cy-tab-top .DIV-cy-tab-pane-title:last-child {
padding-right: 0;
}
.billboard-attribute-box .DIV-cy-tabs .DIV-cy-tab-top .DIV-cy-tab-pane-title span {
margin: 0 5px;
}
.billboard-attribute-box .DIV-cy-tabs .DIV-cy-tab-content {
padding: 0 5px 5px 5px;
box-sizing: border-box;
flex: 1;
overflow: auto;
}
.billboard-attribute-box .DIV-cy-tabs .DIV-cy-tab-content::-webkit-scrollbar {
width: 8px;
height: 8px;
}
.billboard-attribute-box .DIV-cy-tabs .DIV-cy-tab-content::-webkit-scrollbar-thumb {
border-radius: 5px;
-webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
background-color: rgba(var(--color-sdk-base-rgb));
}
.billboard-attribute-box .DIV-cy-tabs .DIV-cy-tab-content::-webkit-scrollbar-track {
-webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
border-radius: 5px;
background-color: rgba(var(--color-sdk-base-rgb), 0.1);
}
.billboard-attribute-box .DIV-cy-tabs .DIV-cy-tab-content-pane {
width: 100%;
height: 100%;
}
.billboard-attribute-box .DIV-cy-tabs .DIV-cy-tab-content-pane iframe {
border: none;
}
.billboard-attribute-box .billboard-attribute-box-line {
position: absolute;
width: 0px;
/* border-left: 1px solid rgba(var(--color-sdk-base-rgb), 0.5); */
border-left: 1px solid rgba(var(--color-sdk-base-rgb), 1);
/* transform: rotate(45deg); */
transform-origin: 0px 0px;
-webkit-pointer-events: none;
-moz-pointer-events: none;
-ms-pointer-events: none;
-o-pointer-events: none;
pointer-events: none;
}
.billboard-attribute-box .drag-nook {
position: absolute;
width: 12px;
height: 12px;
display: block;
user-select: none;
-webkit-pointer-events: auto;
-moz-pointer-events: auto;
-ms-pointer-events: auto;
-o-pointer-events: auto;
pointer-events: auto;
z-index: 3;
clip-path: polygon(0% 100%, 100% 100%, 50% 50%);
background-image: linear-gradient(to top, #ffffff 1px, #00000000 1px);
background-size: 100% 3px;
/* background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAJRJREFUWEftltsJgFAMQ5NNdBJ1Eh3NTdRJdJPIBQXF50/p/WgHSNNDCSGch877EQbyIyCpBtAa/cZEsj9qXwhImgEURgZA8rTzzkAiYGVgITm+ErC6/Ek3vycMAkHAnYCkAUDKAosZSTaeSZiCqIwgCgJBIG8CWyXzKySSZBGBu+afStYBqIxMfJdSo8WPslHJgsAKWjkmIRBy/c8AAAAASUVORK5CYII='); */
}
.billboard-attribute-box .drag-nook.left-top {
top: -6px;
left: -6px;
cursor: se-resize;
transform: rotate(-45deg);
display: none;
}
.billboard-attribute-box .drag-nook.right-top {
top: -6px;
right: -6px;
cursor: ne-resize;
transform: rotate(45deg);
display: none;
}
.billboard-attribute-box .table {
background-color: #ffffff00;
color: #ffffff;
overflow: hidden;
border: 1px solid rgba(var(--color-sdk-base-rgb), 0.5);
}
.billboard-attribute-box .table .table-head .tr {
border-top: none;
border-left: none;
border-right: none;
}
.billboard-attribute-box .table .tr {
display: flex;
border: 1px solid rgba(var(--color-sdk-base-rgb), 0.5);
border-right: none;
}
.billboard-attribute-box .table .tr .th, .billboard-attribute-box .table .tr .td {
border-right: 1px solid rgba(var(--color-sdk-base-rgb), 0.5);
display: flex;
justify-content: center;
}
.billboard-attribute-box .table .tr .th:last-child, .billboard-attribute-box .table .tr .td:last-child {
border-right: none;
}
.billboard-attribute-box .table .table-body .tr {
border-bottom: none;
border-left: none;
}
.billboard-attribute-box .table .table-body .tr:first-child {
border-top: none;
}

File diff suppressed because it is too large Load Diff

BIN
static/sdk/img/pop.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 868 B

File diff suppressed because one or more lines are too long

View File

@ -1,8 +0,0 @@
2025-08-13 19:37:17.064 [INFO] {4002f2d68a505b1809606b17782404a5} gps.go:101: 查询串口数据
2025-08-13 19:37:17.065 [INFO] {58bae8d88a505b180a606b1740e41f64} gps.go:105: 没有查询到串口数据
2025-08-13 19:38:24.597 [INFO] {70911c929a505b180b85fd4764f28480} gps.go:101: 查询串口数据
2025-08-13 19:38:24.623 [INFO] {2c16a8939a505b180c85fd47a97e49bc} gps.go:105: 没有查询到串口数据
2025-08-13 20:55:25.963 [INFO] {9ca00491ce545b189bb8fd33d0b27ab9} gps.go:101: 查询串口数据
2025-08-13 20:55:25.965 [INFO] {b8242391ce545b189cb8fd33cab437e7} gps.go:105: 没有查询到串口数据
2025-08-13 21:52:19.416 [INFO] {84439552e9575b1818d4cd0455aa121f} gps.go:101: 查询串口数据
2025-08-13 21:52:19.417 [INFO] {fcedb852e9575b1819d4cd0491956fc7} gps.go:105: 没有查询到串口数据

View File

@ -1,10 +0,0 @@
2025-08-14 00:32:00.597 [INFO] {e4e4f01ca0605b18debff520af1587a0} gps.go:101: 查询串口数据
2025-08-14 00:32:00.598 [INFO] {0495981da0605b18dfbff5205f8443e5} gps.go:105: 没有查询到串口数据
2025-08-14 00:34:35.678 [INFO] {2ca8ff38c4605b180c8cac6a2b5d8ad4} gps.go:101: 查询串口数据
2025-08-14 00:34:35.686 [INFO] {4c638839c4605b180d8cac6a20fce36f} gps.go:105: 没有查询到串口数据
2025-08-14 00:35:23.705 [INFO] {284cad67cf605b1842db906a0fc897ec} gps.go:101: 查询串口数据
2025-08-14 00:35:23.705 [INFO] {3435bd67cf605b1843db906af15bc9d0} gps.go:105: 没有查询到串口数据
2025-08-14 09:23:51.388 [INFO] {d4fbddeca57d5b18e6ac992a520558be} gps.go:101: 查询串口数据
2025-08-14 09:23:51.389 [INFO] {f876eeeca57d5b18e7ac992a314eb0c5} gps.go:105: 没有查询到串口数据
2025-08-14 09:49:05.592 [INFO] {c020747a067f5b184945fe601beee982} gps.go:101: 查询串口数据
2025-08-14 09:49:05.592 [INFO] {e892847a067f5b184a45fe6044fde77c} gps.go:105: 没有查询到串口数据

View File

@ -0,0 +1,6 @@
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: 没有查询到串口数据

View File

@ -0,0 +1,8 @@
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: 没有查询到串口数据

Binary file not shown.

Binary file not shown.

BIN
yjearth4_0/yjearth42 Normal file

Binary file not shown.