This commit is contained in:
zh
2025-11-14 18:15:28 +08:00
15 changed files with 569 additions and 164 deletions

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 561 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

View File

@ -1,6 +1,7 @@
<template> <template>
<div class="model-management-container"> <div class="model-management-container">
<div class="equipment_title" style="margin-bottom: 10px"> <div class="equipment_title" style="margin-bottom: 10px">
<div>
<el-button <el-button
color="#004b4b" color="#004b4b"
style="border: 1px solid rgba(var(--color-base1), 0.5)" style="border: 1px solid rgba(var(--color-base1), 0.5)"
@ -23,6 +24,16 @@
<span>创建军标库</span> <span>创建军标库</span>
</el-button> </el-button>
</div> </div>
<el-input
v-model="photoName"
style="max-width: 150px"
placeholder="请输入图标名称进行搜索"
class="input-with-select"
:suffix-icon="Search"
>
</el-input>
</div>
<el-row :gutter="20"> <el-row :gutter="20">
<!-- 左侧分类树 --> <!-- 左侧分类树 -->
<el-col :span="6" class="tree"> <el-col :span="6" class="tree">
@ -47,6 +58,7 @@
@node-drag-over="handleDragOver" @node-drag-over="handleDragOver"
@node-drag-end="handleDragEnd" @node-drag-end="handleDragEnd"
@node-drop="handleDrop" @node-drop="handleDrop"
:filter-node-method="filterNode"
> >
<template #default="{ node, data }"> <template #default="{ node, data }">
<!-- <span> {{ node.label }}</span> --> <!-- <span> {{ node.label }}</span> -->
@ -134,6 +146,7 @@
<script lang="ts" setup> <script lang="ts" setup>
import { ref, reactive, onMounted } from 'vue' import { ref, reactive, onMounted } from 'vue'
import { Search } from '@element-plus/icons-vue'
import type { TableColumnCtx } from 'element-plus' import type { TableColumnCtx } from 'element-plus'
import contextMenuCom from './contentMenu.vue' import contextMenuCom from './contentMenu.vue'
import Sortable from 'sortablejs' import Sortable from 'sortablejs'
@ -187,6 +200,18 @@ const treeRef = ref()
// @ts-ignore // @ts-ignore
var sortableInstance: any = reactive(null) var sortableInstance: any = reactive(null)
//搜索
var photoName = ref(null)
watch(photoName, (val) => {
if (treeRef.value && treeRef.value !== '') {
treeRef.value!.filter(val)
}
})
const filterNode: any = (value, data) => {
if (!value) return true
return data.label.includes(value)
}
//--------------添加模型类型---------------- //--------------添加模型类型----------------
var dialogVisible: any = ref(false) var dialogVisible: any = ref(false)
var dialogTitle: any = ref('添加军标类型') var dialogTitle: any = ref('添加军标类型')
@ -857,7 +882,13 @@ onMounted(() => {
--el-input-focus-border-color: rgba(var(--color-base1), 0.5) !important; --el-input-focus-border-color: rgba(var(--color-base1), 0.5) !important;
} }
::v-deep .el-input__wrapper { ::v-deep .el-input__wrapper {
background-color: rgba(0, 0, 0, 0.5) !important; /* background-color: rgba(0, 0, 0, 0.5) !important; */
background-color: unset !important;
}
.equipment_title {
display: flex;
justify-content: space-between;
margin: 0px -10px 10px -10px;
} }
::v-deep .el-dialog__title { ::v-deep .el-dialog__title {
text-shadow: 0px 0px 9px var(--color-sdk-text-shadow) !important; text-shadow: 0px 0px 9px var(--color-sdk-text-shadow) !important;

View File

@ -1,6 +1,7 @@
<template> <template>
<div class="model-management-container"> <div class="model-management-container">
<div class="equipment_title" style="margin-bottom: 10px"> <div class="equipment_title">
<div>
<el-button <el-button
color="#004b4b" color="#004b4b"
style="border: 1px solid rgba(var(--color-base1), 0.5)" style="border: 1px solid rgba(var(--color-base1), 0.5)"
@ -23,6 +24,14 @@
<span>创建模型库</span> <span>创建模型库</span>
</el-button> </el-button>
</div> </div>
<el-input
v-model="photoName"
style="max-width: 150px"
placeholder="请输入模型名称进行搜索"
class="input-with-select"
:suffix-icon="Search"
/>
</div>
<el-row :gutter="20"> <el-row :gutter="20">
<!-- 左侧分类树 --> <!-- 左侧分类树 -->
<el-col :span="6" class="tree"> <el-col :span="6" class="tree">
@ -47,6 +56,7 @@
@node-drag-over="handleDragOver" @node-drag-over="handleDragOver"
@node-drag-end="handleDragEnd" @node-drag-end="handleDragEnd"
@node-drop="handleDrop" @node-drop="handleDrop"
:filter-node-method="filterNode"
> >
<template #default="{ node, data }"> <template #default="{ node, data }">
<!-- <span> {{ node.label }}</span> --> <!-- <span> {{ node.label }}</span> -->
@ -142,6 +152,7 @@
<script lang="ts" setup> <script lang="ts" setup>
import { ref, reactive, onMounted, nextTick } from 'vue' import { ref, reactive, onMounted, nextTick } from 'vue'
import { Search } from '@element-plus/icons-vue'
import type { TableColumnCtx } from 'element-plus' import type { TableColumnCtx } from 'element-plus'
import contextMenuCom from './contentMenu.vue' import contextMenuCom from './contentMenu.vue'
import Sortable from 'sortablejs' import Sortable from 'sortablejs'
@ -207,6 +218,19 @@ const closeDialog = () => {
modelType.value = '' modelType.value = ''
dialogVisible.value = false dialogVisible.value = false
} }
//搜索
var photoName = ref(null)
watch(photoName, (val) => {
if (treeRef.value && treeRef.value !== '') {
treeRef.value!.filter(val)
}
})
const filterNode: any = (value, data) => {
if (!value) return true
return data.label.includes(value)
}
//@ts-ignore //@ts-ignore
const addType = () => { const addType = () => {
if (!modelType.value) { if (!modelType.value) {
@ -890,7 +914,8 @@ onMounted(() => {
--el-input-focus-border-color: rgba(var(--color-base1), 0.5) !important; --el-input-focus-border-color: rgba(var(--color-base1), 0.5) !important;
} }
::v-deep .el-input__wrapper { ::v-deep .el-input__wrapper {
background-color: rgba(0, 0, 0, 0.5) !important; /* background-color: rgba(0, 0, 0, 0.5) !important; */
background-color: unset !important;
} }
::v-deep .el-dialog__title { ::v-deep .el-dialog__title {
text-shadow: 0px 0px 9px var(--color-sdk-text-shadow) !important; text-shadow: 0px 0px 9px var(--color-sdk-text-shadow) !important;
@ -905,4 +930,9 @@ onMounted(() => {
border-bottom: 1px solid rgba(var(--color-base1), 0.5); border-bottom: 1px solid rgba(var(--color-base1), 0.5);
letter-spacing: 1px; letter-spacing: 1px;
} }
.equipment_title {
display: flex;
justify-content: space-between;
margin: 0px -10px 10px -10px;
}
</style> </style>

View File

@ -1056,6 +1056,7 @@ onMounted(() => {
.equipment_title { .equipment_title {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
margin: 0px -10px 10px -10px;
} }
::v-deep .typeList { ::v-deep .typeList {
width: 100%; width: 100%;

View File

@ -183,6 +183,9 @@ const handleKeyDown = (e) => {
clickChange.mouseLocation = false clickChange.mouseLocation = false
new YJ.Global.MouseCoordinate(window.earth, clickChange.mouseLocation) new YJ.Global.MouseCoordinate(window.earth, clickChange.mouseLocation)
// window.removeEventListener('keydown', handleKeyDown) // window.removeEventListener('keydown', handleKeyDown)
let dom = document.getElementById('earthContainer')
dom?.classList.remove('custom-cursor')
dom?.classList.add('default-cursor')
} }
//视频录制 //视频录制
@ -674,11 +677,20 @@ const methodMap = {
//鼠标定位 //鼠标定位
mouseLocation() { mouseLocation() {
clickChange.mouseLocation = !clickChange.mouseLocation clickChange.mouseLocation = !clickChange.mouseLocation
new YJ.Global.MouseCoordinate(window.earth, clickChange.mouseLocation)
let dom = document.getElementById('earthContainer')
if (clickChange.mouseLocation) {
ElMessage({ ElMessage({
message: '按下键盘ESC键可快速退出', message: '按下键盘ESC键可快速退出',
type: 'warning' type: 'warning'
}) })
new YJ.Global.MouseCoordinate(window.earth, clickChange.mouseLocation) dom?.classList.remove('default-cursor')
dom?.classList.add('custom-cursor')
} else {
dom?.classList.remove('custom-cursor')
dom?.classList.add('default-cursor')
}
// if (clickChange.mouseLocation) { // if (clickChange.mouseLocation) {
// window.addEventListener('keydown', handleKeyDown) // window.addEventListener('keydown', handleKeyDown)
@ -1020,6 +1032,52 @@ defineExpose({
initList initList
}) })
</script> </script>
<style>
@keyframes rotate-bg {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
}
.custom-cursor {
cursor:
url('@/assets/img/mouse.png') 16 16,
auto;
}
.default-cursor {
cursor: default;
}
/* .el-loading-parent--relative {
position: unset !important;
} */
.timer .el-loading-spinner .el-loading-text {
width: 166px !important;
height: 166px !important;
position: relative;
background: unset !important;
z-index: 2;
/* background: url('@/assets/img/timerBg.png') !important;
animation: rotate-bg 5s infinite linear; */
/* 旋转动画 */
/* animation: rotateBackground 10s linear infinite; */
}
.timer .el-loading-spinner .el-loading-text::before {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-image: url('@/assets/img/timerBg.png');
background-size: cover;
background-position: center;
animation: rotate-bg 10s linear infinite;
z-index: -1;
}
</style>
<style lang="scss" scoped> <style lang="scss" scoped>
.leftSideSecond { .leftSideSecond {
display: none; display: none;

View File

@ -45,7 +45,7 @@
@change="precisionChange" @change="precisionChange"
/> />
<span class="arrow"></span> --> <span class="arrow"></span> -->
<el-slider <!-- <el-slider
v-model="precision" v-model="precision"
:min="0" :min="0"
:max="360" :max="360"
@ -53,14 +53,51 @@
@change="precisionInput" @change="precisionInput"
/> />
<span class="firstTip">0</span> <span class="firstTip">0</span>
<span class="endTip">360</span> <span class="endTip">360</span> -->
</div>
</div>
<div class="row">
<div class="col">
<el-slider
v-model="precision"
:min="0"
:max="maxNum"
placement="bottom"
@change="precisionInput"
:show-tooltip="false"
popper-class="custom-tooltip"
@input="updateDataAttr"
/>
<!-- <span class="firstTip">0</span>
<span class="endTip">360</span> -->
<div class="input-number input-number-unit" style="margin-left: 10px">
<input
class="input"
id="precision"
type="number"
title=""
min="1"
max="360"
v-model="maxNum"
@input="precisionMaxInput"
/>
<span class="arrow"></span>
</div>
</div>
</div>
<div class="row" style="margin-top: 30px">
<div class="col">
<span class="label">绘制区域</span>
<button class="draw-btn" @click="draw">
<svg class="icon-draw"><use xlink:href="#yj-icon-draw"></use></svg>开始绘制
</button>
</div> </div>
</div> </div>
</div> </div>
</template> </template>
<template #footer> <!-- <template #footer>
<button @click="draw">绘制</button> <button @click="draw">绘制</button>
</template> </template> -->
</Dialog> </Dialog>
</template> </template>
@ -72,7 +109,7 @@ import Dialog from '@/components/dialog/baseDialog.vue'
const baseDialog: any = ref(null) const baseDialog: any = ref(null)
const eventBus: any = inject('bus') const eventBus: any = inject('bus')
const viewPointHeight: any = ref(1.8) const viewPointHeight: any = ref(1.8)
const precision: any = ref(20) const precision: any = ref(0)
var visibility: any = reactive([]) var visibility: any = reactive([])
eventBus.on('circleViewShedDialog', () => { eventBus.on('circleViewShedDialog', () => {
@ -88,10 +125,12 @@ const open = () => {
viewPointHeight: viewPointHeight.value, viewPointHeight: viewPointHeight.value,
precision: precision.value precision: precision.value
}) })
updateDataAttr()
} }
const closeCallBack = (e) => { const closeCallBack = (e) => {
viewPointHeight.value = 1.8 viewPointHeight.value = 1.8
precision.value = 20 precision.value = 0
maxNum.value = 100
YJ.Measure.SetMeasureStatus(false) YJ.Measure.SetMeasureStatus(false)
} }
onBeforeUnmount(() => { onBeforeUnmount(() => {
@ -116,21 +155,55 @@ const precisionInput = () => {
// } else if (precision.value > dom.max * 1) { // } else if (precision.value > dom.max * 1) {
// precision.value = dom.max * 1 // precision.value = dom.max * 1
// } // }
console.log(precision, 'eeeeee')
visibility.precisions = precision.value visibility.precisions = precision.value
} }
const precisionChange = () => { const precisionChange = () => {}
console.log(precision, 'yyyy')
}
const draw = (e) => { const draw = (e) => {
visibility.draw() visibility.draw()
// visibility.create(this) // visibility.create(this)
// !window.analysisArr && (window.analysisArr = []) // !window.analysisArr && (window.analysisArr = [])
// window.analysisArr.push(visibility) // window.analysisArr.push(visibility)
} }
//滑块
var maxNum: any = ref(100)
const updateDataAttr = async () => {
await nextTick()
const sliderButton = document.querySelector('.el-slider__button-wrapper')
if (sliderButton) {
sliderButton.setAttribute('data-value', precision.value.toString())
}
}
const precisionMaxInput = () => {
let dom: any = document.getElementById('precision')
if (maxNum.value < dom.min * 1) {
maxNum.value = dom.min * 1
} else if (maxNum.value > dom.max * 1) {
maxNum.value = dom.max * 1
}
// cutFill.heights = maxNum.value
}
defineExpose({ defineExpose({
open open
}) })
</script> </script>
<style scoped lang="scss"></style> <style scoped lang="scss">
::v-deep .el-slider__button-wrapper::before {
content: attr(data-value);
position: absolute;
width: 30px;
height: 25px;
line-height: 25px;
border-radius: 4px;
text-align: center;
bottom: -15px;
left: 50%;
transform: translateX(-50%);
background: unset;
color: white;
font-size: 12px;
z-index: 10;
}
</style>

View File

@ -12,18 +12,18 @@
<div class="div-item"> <div class="div-item">
<div class="row"> <div class="row">
<div class="col"> <div class="col">
<span class="label" style="flex: 0 0 70px">绘制分析区域</span> <span class="label" style="flex: 0 0 70px">土方分析区域</span>
<button class="draw-btn" @click="draw"> <button class="draw-btn" @click="draw">
<svg class="icon-edit"><use xlink:href="#yj-icon-edit"></use></svg>开始绘制 <svg class="icon-edit"><use xlink:href="#yj-icon-draw"></use></svg>开始绘制
</button> </button>
</div> </div>
</div> </div>
</div> </div>
<span class="custom-divider"></span> <!-- <span class="custom-divider"></span> -->
<div class="div-item"> <div class="div-item">
<div class="row"> <div class="row">
<div class="col"> <div class="col">
<span class="label">基准高度</span> <span class="label">高度</span>
<div class="input-number input-number-unit-1"> <div class="input-number input-number-unit-1">
<input <input
class="input" class="input"
@ -54,13 +54,34 @@
/> />
<span class="arrow"></span> <span class="arrow"></span>
</div> --> </div> -->
<el-slider v-model="precision" :min="0" :max="360" @change="precisionInput" /> <el-slider
<span class="firstTip">0</span> v-model="precision"
<span class="endTip">360</span> :min="0"
:max="maxNum"
@change="precisionInput"
:show-tooltip="false"
popper-class="custom-tooltip"
@input="updateDataAttr"
/>
<!-- <span class="firstTip">0</span>
<span class="endTip">360</span> -->
<div class="input-number input-number-unit" style="margin-left: 10px">
<input
class="input"
id="precision"
type="number"
title=""
min="1"
max="1250"
v-model="maxNum"
@input="precisionMaxInput"
/>
<span class="arrow"></span>
</div> </div>
</div> </div>
</div> </div>
<span class="custom-divider"></span> </div>
<span class="custom-divider" style="margin-top: 10px"></span>
<div class="div-item"> <div class="div-item">
<div class="row"> <div class="row">
<div class="col"> <div class="col">
@ -126,6 +147,17 @@ var cutVolume: any = ref(0)
var cutFill: any = reactive([]) var cutFill: any = reactive([])
var maxNum: any = ref(1250)
//tooltip
const updateDataAttr = async () => {
await nextTick()
const sliderButton = document.querySelector('.el-slider__button-wrapper')
if (sliderButton) {
sliderButton.setAttribute('data-value', precision.value.toString())
}
}
eventBus.on('cutFillDialog', () => { eventBus.on('cutFillDialog', () => {
baseDialog.value?.open() baseDialog.value?.open()
cutFill = new YJ.Analysis.CutFillAnalysis(window.earth, { cutFill = new YJ.Analysis.CutFillAnalysis(window.earth, {
@ -139,6 +171,7 @@ const open = () => {
height: height.value, height: height.value,
precision: precision.value precision: precision.value
}) })
updateDataAttr() //解决默认打开时没有值
} }
const heightInput = () => { const heightInput = () => {
let dom: any = document.getElementById('height') let dom: any = document.getElementById('height')
@ -149,6 +182,15 @@ const heightInput = () => {
} }
cutFill.heights = height.value cutFill.heights = height.value
} }
const precisionMaxInput = () => {
let dom: any = document.getElementById('precision')
if (maxNum.value < dom.min * 1) {
maxNum.value = dom.min * 1
} else if (maxNum.value > dom.max * 1) {
maxNum.value = dom.max * 1
}
// cutFill.heights = height.value
}
const precisionInput = () => { const precisionInput = () => {
// let dom = document.getElementById('precision') // let dom = document.getElementById('precision')
// if (precision.value < dom.min * 1) { // if (precision.value < dom.min * 1) {
@ -196,4 +238,24 @@ defineExpose({
}) })
</script> </script>
<style scoped lang="scss"></style> <style scoped lang="scss">
::v-deep .content {
width: 600px !important;
}
::v-deep .el-slider__button-wrapper::before {
content: attr(data-value);
position: absolute;
width: 30px;
height: 25px;
line-height: 25px;
border-radius: 4px;
text-align: center;
bottom: -15px;
left: 50%;
transform: translateX(-50%);
background: unset;
color: white;
font-size: 12px;
z-index: 10;
}
</style>

View File

@ -103,7 +103,7 @@ import Dialog from '@/components/dialog/baseDialog.vue'
const baseDialog: any = ref(null) const baseDialog: any = ref(null)
const eventBus: any = inject('bus') const eventBus: any = inject('bus')
const viewPointHeight: any = ref(1.8) const viewPointHeight: any = ref(1.8)
var horizontalViewAngle: any = ref(30) var horizontalViewAngle: any = ref(90)
var viewShed: any = reactive([]) var viewShed: any = reactive([])
var timeout: any = reactive([]) var timeout: any = reactive([])
@ -170,7 +170,7 @@ function changeFun() {
const closeCallBack = (e) => { const closeCallBack = (e) => {
viewShed.close() viewShed.close()
viewPointHeight.value = 1.8 viewPointHeight.value = 1.8
horizontalViewAngle.value = 30 horizontalViewAngle.value = 90
showEdite.value = false showEdite.value = false
} }
onBeforeUnmount(() => { onBeforeUnmount(() => {

View File

@ -4,40 +4,65 @@
<template #header> <template #header>
<div class="set_pup_header"> <div class="set_pup_header">
<div class="system_title"> <div class="system_title">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="229" height="35" <svg
viewBox="0 0 229 35" fill="none" preserveAspectRatio="none"> xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
width="229"
height="35"
viewBox="0 0 229 35"
fill="none"
preserveAspectRatio="none"
>
<path <path
d="M74 34L85 34L99.5 6L88.5 6L74 34ZM92 34L103 34L117.5 6L106.5 6L92 34ZM111 34L122 34L136.5 6L125.5 6L111 34ZM140 34L129 34L143.5 6L154.5 6L140 34ZM148 34L159 34L173.5 6L162.5 6L148 34ZM177 34L166 34L180.5 6L191.5 6L177 34ZM185 34L196 34L210.5 6L199.5 6L185 34ZM214 34L203 34L217.5 6L228.5 6L214 34ZM0 34L11 34L25.5 6.5L14.5 6.5L0 34ZM18 34L29 34L43.5 6.5L32.5 6.5L18 34ZM37 34L48 34L62.5 6.5L51.5 6.5L37 34ZM66 34L55 34L69.5 6.5L80.5 6.5L66 34Z" d="M74 34L85 34L99.5 6L88.5 6L74 34ZM92 34L103 34L117.5 6L106.5 6L92 34ZM111 34L122 34L136.5 6L125.5 6L111 34ZM140 34L129 34L143.5 6L154.5 6L140 34ZM148 34L159 34L173.5 6L162.5 6L148 34ZM177 34L166 34L180.5 6L191.5 6L177 34ZM185 34L196 34L210.5 6L199.5 6L185 34ZM214 34L203 34L217.5 6L228.5 6L214 34ZM0 34L11 34L25.5 6.5L14.5 6.5L0 34ZM18 34L29 34L43.5 6.5L32.5 6.5L18 34ZM37 34L48 34L62.5 6.5L51.5 6.5L37 34ZM66 34L55 34L69.5 6.5L80.5 6.5L66 34Z"
fill-rule="evenodd" fill="url(#linear_fill_2442_1053)" /> fill-rule="evenodd"
fill="url(#linear_fill_2442_1053)"
/>
<rect x="0" y="0" width="229" height="34" fill="url(#linear_fill_2442_1054)" /> <rect x="0" y="0" width="229" height="34" fill="url(#linear_fill_2442_1054)" />
<g clip-path="url(#clip-path-2442_1055)"> <g clip-path="url(#clip-path-2442_1055)">
<path <path
d="M10.3993 32.7333L10.666 33L10.666 21L9.33267 22.3333L4.66602 27L5.66602 28L10.3993 32.7333ZM9.33267 29.6667L6.73267 27L9.33267 24.3333L9.33267 29.6667Z" d="M10.3993 32.7333L10.666 33L10.666 21L9.33267 22.3333L4.66602 27L5.66602 28L10.3993 32.7333ZM9.33267 29.6667L6.73267 27L9.33267 24.3333L9.33267 29.6667Z"
fill="rgb(var(--color-base1))" /> fill="rgb(var(--color-base1))"
/>
<g opacity="0.5"> <g opacity="0.5">
<path <path
d="M7.39934 32.7333L7.66602 33L7.66602 21L6.33267 22.3333L1.66602 27L2.66602 28L7.39934 32.7333ZM6.33267 29.6667L3.73267 27L6.33267 24.3333L6.33267 29.6667Z" d="M7.39934 32.7333L7.66602 33L7.66602 21L6.33267 22.3333L1.66602 27L2.66602 28L7.39934 32.7333ZM6.33267 29.6667L3.73267 27L6.33267 24.3333L6.33267 29.6667Z"
fill="rgb(var(--color-base1))" /> fill="rgb(var(--color-base1))"
/>
</g> </g>
</g> </g>
<g clip-path="url(#clip-path-2442_1059)"> <g clip-path="url(#clip-path-2442_1059)">
<path <path
d="M218.601 32.7333L218.334 33L218.334 21L219.667 22.3333L224.334 27L223.334 28L218.601 32.7333ZM219.667 29.6667L222.267 27L219.667 24.3333L219.667 29.6667Z" d="M218.601 32.7333L218.334 33L218.334 21L219.667 22.3333L224.334 27L223.334 28L218.601 32.7333ZM219.667 29.6667L222.267 27L219.667 24.3333L219.667 29.6667Z"
fill="rgb(var(--color-base1))" /> fill="rgb(var(--color-base1))"
/>
<g opacity="0.5"> <g opacity="0.5">
<path <path
d="M221.601 32.7333L221.334 33L221.334 21L222.667 22.3333L227.334 27L226.334 28L221.601 32.7333ZM222.667 29.6667L225.267 27L222.667 24.3333L222.667 29.6667Z" d="M221.601 32.7333L221.334 33L221.334 21L222.667 22.3333L227.334 27L226.334 28L221.601 32.7333ZM222.667 29.6667L225.267 27L222.667 24.3333L222.667 29.6667Z"
fill="rgb(var(--color-base1))" /> fill="rgb(var(--color-base1))"
/>
</g> </g>
</g> </g>
<defs> <defs>
<linearGradient id="linear_fill_2442_1053" x1="119.1239013671875" y1="33.99998474121094" <linearGradient
x2="119.1231689453125" y2="6" gradientUnits="userSpaceOnUse"> id="linear_fill_2442_1053"
x1="119.1239013671875"
y1="33.99998474121094"
x2="119.1231689453125"
y2="6"
gradientUnits="userSpaceOnUse"
>
<stop offset="0" stop-color="rgb(var(--color-base1))" stop-opacity="0.2" /> <stop offset="0" stop-color="rgb(var(--color-base1))" stop-opacity="0.2" />
<stop offset="1" stop-color="rgb(var(--color-base1))" stop-opacity="0" /> <stop offset="1" stop-color="rgb(var(--color-base1))" stop-opacity="0" />
</linearGradient> </linearGradient>
<linearGradient id="linear_fill_2442_1054" x1="0" y1="17" x2="229" y2="17" <linearGradient
gradientUnits="userSpaceOnUse"> id="linear_fill_2442_1054"
x1="0"
y1="17"
x2="229"
y2="17"
gradientUnits="userSpaceOnUse"
>
<stop offset="0" stop-color="rgb(var(--color-base1))" stop-opacity="0" /> <stop offset="0" stop-color="rgb(var(--color-base1))" stop-opacity="0" />
<stop offset="0.4891" stop-color="rgb(var(--color-base1))" stop-opacity="0.4" /> <stop offset="0.4891" stop-color="rgb(var(--color-base1))" stop-opacity="0.4" />
<stop offset="1" stop-color="rgb(var(--color-base1))" stop-opacity="0" /> <stop offset="1" stop-color="rgb(var(--color-base1))" stop-opacity="0" />
@ -478,8 +503,8 @@ defineExpose({
<style lang="scss" scoped> <style lang="scss" scoped>
.set_pup { .set_pup {
width: 40vw; // width: 40vw;
height: 50vh; // height: 50vh;
:deep(.el-dialog) { :deep(.el-dialog) {
background: background:
linear-gradient(180deg, rgba(var(--color-base1), 0.2) 0%, rgba(var(--color-base1), 0) 100%), linear-gradient(180deg, rgba(var(--color-base1), 0.2) 0%, rgba(var(--color-base1), 0) 100%),

View File

@ -4,40 +4,65 @@
<template #header> <template #header>
<div class="set_pup_header"> <div class="set_pup_header">
<div class="system_title"> <div class="system_title">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="229" height="35" <svg
viewBox="0 0 229 35" fill="none" preserveAspectRatio="none"> xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
width="229"
height="35"
viewBox="0 0 229 35"
fill="none"
preserveAspectRatio="none"
>
<path <path
d="M74 34L85 34L99.5 6L88.5 6L74 34ZM92 34L103 34L117.5 6L106.5 6L92 34ZM111 34L122 34L136.5 6L125.5 6L111 34ZM140 34L129 34L143.5 6L154.5 6L140 34ZM148 34L159 34L173.5 6L162.5 6L148 34ZM177 34L166 34L180.5 6L191.5 6L177 34ZM185 34L196 34L210.5 6L199.5 6L185 34ZM214 34L203 34L217.5 6L228.5 6L214 34ZM0 34L11 34L25.5 6.5L14.5 6.5L0 34ZM18 34L29 34L43.5 6.5L32.5 6.5L18 34ZM37 34L48 34L62.5 6.5L51.5 6.5L37 34ZM66 34L55 34L69.5 6.5L80.5 6.5L66 34Z" d="M74 34L85 34L99.5 6L88.5 6L74 34ZM92 34L103 34L117.5 6L106.5 6L92 34ZM111 34L122 34L136.5 6L125.5 6L111 34ZM140 34L129 34L143.5 6L154.5 6L140 34ZM148 34L159 34L173.5 6L162.5 6L148 34ZM177 34L166 34L180.5 6L191.5 6L177 34ZM185 34L196 34L210.5 6L199.5 6L185 34ZM214 34L203 34L217.5 6L228.5 6L214 34ZM0 34L11 34L25.5 6.5L14.5 6.5L0 34ZM18 34L29 34L43.5 6.5L32.5 6.5L18 34ZM37 34L48 34L62.5 6.5L51.5 6.5L37 34ZM66 34L55 34L69.5 6.5L80.5 6.5L66 34Z"
fill-rule="evenodd" fill="url(#linear_fill_2442_1053)" /> fill-rule="evenodd"
fill="url(#linear_fill_2442_1053)"
/>
<rect x="0" y="0" width="229" height="34" fill="url(#linear_fill_2442_1054)" /> <rect x="0" y="0" width="229" height="34" fill="url(#linear_fill_2442_1054)" />
<g clip-path="url(#clip-path-2442_1055)"> <g clip-path="url(#clip-path-2442_1055)">
<path <path
d="M10.3993 32.7333L10.666 33L10.666 21L9.33267 22.3333L4.66602 27L5.66602 28L10.3993 32.7333ZM9.33267 29.6667L6.73267 27L9.33267 24.3333L9.33267 29.6667Z" d="M10.3993 32.7333L10.666 33L10.666 21L9.33267 22.3333L4.66602 27L5.66602 28L10.3993 32.7333ZM9.33267 29.6667L6.73267 27L9.33267 24.3333L9.33267 29.6667Z"
fill="rgb(var(--color-base1))" /> fill="rgb(var(--color-base1))"
/>
<g opacity="0.5"> <g opacity="0.5">
<path <path
d="M7.39934 32.7333L7.66602 33L7.66602 21L6.33267 22.3333L1.66602 27L2.66602 28L7.39934 32.7333ZM6.33267 29.6667L3.73267 27L6.33267 24.3333L6.33267 29.6667Z" d="M7.39934 32.7333L7.66602 33L7.66602 21L6.33267 22.3333L1.66602 27L2.66602 28L7.39934 32.7333ZM6.33267 29.6667L3.73267 27L6.33267 24.3333L6.33267 29.6667Z"
fill="rgb(var(--color-base1))" /> fill="rgb(var(--color-base1))"
/>
</g> </g>
</g> </g>
<g clip-path="url(#clip-path-2442_1059)"> <g clip-path="url(#clip-path-2442_1059)">
<path <path
d="M218.601 32.7333L218.334 33L218.334 21L219.667 22.3333L224.334 27L223.334 28L218.601 32.7333ZM219.667 29.6667L222.267 27L219.667 24.3333L219.667 29.6667Z" d="M218.601 32.7333L218.334 33L218.334 21L219.667 22.3333L224.334 27L223.334 28L218.601 32.7333ZM219.667 29.6667L222.267 27L219.667 24.3333L219.667 29.6667Z"
fill="rgb(var(--color-base1))" /> fill="rgb(var(--color-base1))"
/>
<g opacity="0.5"> <g opacity="0.5">
<path <path
d="M221.601 32.7333L221.334 33L221.334 21L222.667 22.3333L227.334 27L226.334 28L221.601 32.7333ZM222.667 29.6667L225.267 27L222.667 24.3333L222.667 29.6667Z" d="M221.601 32.7333L221.334 33L221.334 21L222.667 22.3333L227.334 27L226.334 28L221.601 32.7333ZM222.667 29.6667L225.267 27L222.667 24.3333L222.667 29.6667Z"
fill="rgb(var(--color-base1))" /> fill="rgb(var(--color-base1))"
/>
</g> </g>
</g> </g>
<defs> <defs>
<linearGradient id="linear_fill_2442_1053" x1="119.1239013671875" y1="33.99998474121094" <linearGradient
x2="119.1231689453125" y2="6" gradientUnits="userSpaceOnUse"> id="linear_fill_2442_1053"
x1="119.1239013671875"
y1="33.99998474121094"
x2="119.1231689453125"
y2="6"
gradientUnits="userSpaceOnUse"
>
<stop offset="0" stop-color="rgb(var(--color-base1))" stop-opacity="0.2" /> <stop offset="0" stop-color="rgb(var(--color-base1))" stop-opacity="0.2" />
<stop offset="1" stop-color="rgb(var(--color-base1))" stop-opacity="0" /> <stop offset="1" stop-color="rgb(var(--color-base1))" stop-opacity="0" />
</linearGradient> </linearGradient>
<linearGradient id="linear_fill_2442_1054" x1="0" y1="17" x2="229" y2="17" <linearGradient
gradientUnits="userSpaceOnUse"> id="linear_fill_2442_1054"
x1="0"
y1="17"
x2="229"
y2="17"
gradientUnits="userSpaceOnUse"
>
<stop offset="0" stop-color="rgb(var(--color-base1))" stop-opacity="0" /> <stop offset="0" stop-color="rgb(var(--color-base1))" stop-opacity="0" />
<stop offset="0.4891" stop-color="rgb(var(--color-base1))" stop-opacity="0.4" /> <stop offset="0.4891" stop-color="rgb(var(--color-base1))" stop-opacity="0.4" />
<stop offset="1" stop-color="rgb(var(--color-base1))" stop-opacity="0" /> <stop offset="1" stop-color="rgb(var(--color-base1))" stop-opacity="0" />
@ -56,29 +81,58 @@
</template> </template>
<div class="set_detail"> <div class="set_detail">
<div class="top"> <div class="top">
<el-input v-model="modelName" class="w-50 m-2" placeholder="请输入模型类型进行搜索" :suffix-icon="Search" /> <el-input
v-model="modelName"
class="w-50 m-2"
placeholder="请输入模型类型进行搜索"
:suffix-icon="Search"
/>
<button @click="setting" class="btn"> <button @click="setting" class="btn">
<svg-icon name="sys_set" class="setIcon" :size="12" color="rgba(255,255,255, 1)" <svg-icon
style="margin-right: 5px"></svg-icon>默认模型参数设置 name="sys_set"
class="setIcon"
:size="12"
color="rgba(255,255,255, 1)"
style="margin-right: 5px"
></svg-icon
>默认模型参数设置
</button> </button>
</div> </div>
<div class="content"> <div class="content">
<!-- 左侧Tab导航 --> <!-- 左侧Tab导航 -->
<div class="treeCon"> <div class="treeCon">
<el-tree style="max-width: 600px" :data="typeTreeData" ref="treeRef" node-key="id" empty-text="" <el-tree
@node-click="handleTypeClick" :filter-node-method="filterNode"> style="max-width: 600px"
:data="typeTreeData"
ref="treeRef"
node-key="id"
empty-text=""
@node-click="handleTypeClick"
:filter-node-method="filterNode"
>
<template #default="{ node, data }"> <template #default="{ node, data }">
<!-- <span> {{ node.label }}</span> --> <!-- <span> {{ node.label }}</span> -->
<span :class="{ <span
:class="{
'primary-type': !(node.childNodes.length != 0), 'primary-type': !(node.childNodes.length != 0),
'selected-text': node.id === currentTypeId 'selected-text': node.id === currentTypeId
}" @click.stop="toggleExpand(node)" class="allowDrag" }"
style="width: 100%; text-overflow: ellipsis; overflow: hidden" :title="node.label"> @click.stop="toggleExpand(node)"
<svg-icon :name="node.expanded ? 'arrow' : 'more'" :size="12" color="rgba(var(--color-base1), 1)" class="allowDrag"
style="margin-right: 5px; margin-left: 5px" v-if="node.childNodes.length != 0" style="width: 100%; text-overflow: ellipsis; overflow: hidden"
@click.stop="toggleExpand(node)"></svg-icon> :title="node.label"
{{ node.label }}</span> >
<svg-icon
:name="node.expanded ? 'arrow' : 'more'"
:size="12"
color="rgba(var(--color-base1), 1)"
style="margin-right: 5px; margin-left: 5px"
v-if="node.childNodes.length != 0"
@click.stop="toggleExpand(node)"
></svg-icon>
{{ node.label }}</span
>
</template> </template>
</el-tree> </el-tree>
</div> </div>
@ -87,45 +141,98 @@
<div class="model-section" v-if="categories.length != 0"> <div class="model-section" v-if="categories.length != 0">
<!-- <h2 class="section-title">{{ categories[Number(currentTypeId)].name }}</h2> --> <!-- <h2 class="section-title">{{ categories[Number(currentTypeId)].name }}</h2> -->
<div class="model-grid"> <div class="model-grid">
<div v-for="(model, mIndex) in categories" :key="mIndex" class="model-item" <div
@click="modelClick(mIndex, model)"> v-for="(model, mIndex) in categories"
:key="mIndex"
class="model-item"
@click="modelClick(mIndex, model)"
>
<div class="imgbg"> <div class="imgbg">
<svg class="imgbg_svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" <svg
width="60.79296875" height="60.77734375" viewBox="0 0 60.79296875 60.77734375" fill="none" class="imgbg_svg"
preserveAspectRatio="none"> xmlns="http://www.w3.org/2000/svg"
<path stroke="url(#linear_border_2296_2693_0)" stroke-width="1" xmlns:xlink="http://www.w3.org/1999/xlink"
d="M1.27148 0.26416L60.5204 0.26416" /> width="60.79296875"
<path stroke="url(#linear_border_2296_2694_0)" stroke-width="1" height="60.77734375"
d="M0.271484 1.26416L0.271484 60.5136" /> viewBox="0 0 60.79296875 60.77734375"
<path stroke="url(#linear_border_2296_2695_0)" stroke-width="1" fill="none"
d="M60.5215 1.26416L60.5215 60.5136" /> preserveAspectRatio="none"
<path stroke="url(#linear_border_2296_2696_0)" stroke-width="1" >
d="M1.27148 60.5132L60.5204 60.5132" /> <path
stroke="url(#linear_border_2296_2693_0)"
stroke-width="1"
d="M1.27148 0.26416L60.5204 0.26416"
/>
<path
stroke="url(#linear_border_2296_2694_0)"
stroke-width="1"
d="M0.271484 1.26416L0.271484 60.5136"
/>
<path
stroke="url(#linear_border_2296_2695_0)"
stroke-width="1"
d="M60.5215 1.26416L60.5215 60.5136"
/>
<path
stroke="url(#linear_border_2296_2696_0)"
stroke-width="1"
d="M1.27148 60.5132L60.5204 60.5132"
/>
<g opacity="0.5"> <g opacity="0.5">
<rect x="0.521484375" y="0.51416015625" width="60" height="60" fill="rgb(var(--color-base1))" <rect
fill-opacity="0.5" /> x="0.521484375"
y="0.51416015625"
width="60"
height="60"
fill="rgb(var(--color-base1))"
fill-opacity="0.5"
/>
</g> </g>
<defs> <defs>
<linearGradient id="linear_border_2296_2693_0" x1="1.271484375" y1="0.26416015625" <linearGradient
x2="60.5205078125" y2="0.26416015625" gradientUnits="userSpaceOnUse"> id="linear_border_2296_2693_0"
x1="1.271484375"
y1="0.26416015625"
x2="60.5205078125"
y2="0.26416015625"
gradientUnits="userSpaceOnUse"
>
<stop offset="0" stop-color="rgb(var(--color-base1))" stop-opacity="0" /> <stop offset="0" stop-color="rgb(var(--color-base1))" stop-opacity="0" />
<stop offset="0.5555" stop-color="rgb(var(--color-base1))" /> <stop offset="0.5555" stop-color="rgb(var(--color-base1))" />
<stop offset="1" stop-color="rgb(var(--color-base1))" stop-opacity="0" /> <stop offset="1" stop-color="rgb(var(--color-base1))" stop-opacity="0" />
</linearGradient> </linearGradient>
<linearGradient id="linear_border_2296_2694_0" x1="0.271484375" y1="1.26416015625" <linearGradient
x2="0.271484375" y2="60.513671875" gradientUnits="userSpaceOnUse"> id="linear_border_2296_2694_0"
x1="0.271484375"
y1="1.26416015625"
x2="0.271484375"
y2="60.513671875"
gradientUnits="userSpaceOnUse"
>
<stop offset="0" stop-color="rgb(var(--color-base1))" stop-opacity="0" /> <stop offset="0" stop-color="rgb(var(--color-base1))" stop-opacity="0" />
<stop offset="0.5555" stop-color="rgb(var(--color-base1))" /> <stop offset="0.5555" stop-color="rgb(var(--color-base1))" />
<stop offset="1" stop-color="rgb(var(--color-base1))" stop-opacity="0" /> <stop offset="1" stop-color="rgb(var(--color-base1))" stop-opacity="0" />
</linearGradient> </linearGradient>
<linearGradient id="linear_border_2296_2695_0" x1="60.521484375" y1="1.26416015625" <linearGradient
x2="60.521484375" y2="60.513671875" gradientUnits="userSpaceOnUse"> id="linear_border_2296_2695_0"
x1="60.521484375"
y1="1.26416015625"
x2="60.521484375"
y2="60.513671875"
gradientUnits="userSpaceOnUse"
>
<stop offset="0" stop-color="rgb(var(--color-base1))" stop-opacity="0" /> <stop offset="0" stop-color="rgb(var(--color-base1))" stop-opacity="0" />
<stop offset="0.5555" stop-color="rgb(var(--color-base1))" /> <stop offset="0.5555" stop-color="rgb(var(--color-base1))" />
<stop offset="1" stop-color="rgb(var(--color-base1))" stop-opacity="0" /> <stop offset="1" stop-color="rgb(var(--color-base1))" stop-opacity="0" />
</linearGradient> </linearGradient>
<linearGradient id="linear_border_2296_2696_0" x1="1.271484375" y1="60.51318359375" <linearGradient
x2="60.5205078125" y2="60.51318359375" gradientUnits="userSpaceOnUse"> id="linear_border_2296_2696_0"
x1="1.271484375"
y1="60.51318359375"
x2="60.5205078125"
y2="60.51318359375"
gradientUnits="userSpaceOnUse"
>
<stop offset="0" stop-color="rgb(var(--color-base1))" stop-opacity="0" /> <stop offset="0" stop-color="rgb(var(--color-base1))" stop-opacity="0" />
<stop offset="0.5555" stop-color="rgb(var(--color-base1))" /> <stop offset="0.5555" stop-color="rgb(var(--color-base1))" />
<stop offset="1" stop-color="rgb(var(--color-base1))" stop-opacity="0" /> <stop offset="1" stop-color="rgb(var(--color-base1))" stop-opacity="0" />
@ -139,7 +246,11 @@
</el-image> </el-image>
</div> </div>
<div class="model-name" :class="{ isactive: activeIndex == mIndex }" :title="model.modelName"> <div
class="model-name"
:class="{ isactive: activeIndex == mIndex }"
:title="model.modelName"
>
{{ model.modelName }} {{ model.modelName }}
</div> </div>
</div> </div>
@ -409,8 +520,8 @@ const renderModel = async (data, model) => {
z z
} }
} }
let Model = await new YJ.Obj.Model(window.earth, option); let Model = await new YJ.Obj.Model(window.earth, option)
(window as any)._entityMap.set(id, Model) ;(window as any)._entityMap.set(id, Model)
let DbOption: any = { let DbOption: any = {
params: option, params: option,
@ -540,8 +651,8 @@ defineExpose({
<style lang="scss" scoped> <style lang="scss" scoped>
.set_pup { .set_pup {
width: 40vw; // width: 40vw;
height: 50vh; // height: 50vh;
:deep(.el-dialog) { :deep(.el-dialog) {
background: background:
@ -612,19 +723,23 @@ defineExpose({
box-sizing: border-box; box-sizing: border-box;
// height: 50vh; // height: 50vh;
:deep(.el-tabs--left .el-tabs__active-bar.is-left, :deep(
.el-tabs--left .el-tabs__active-bar.is-left,
.el-tabs--left .el-tabs__active-bar.is-right, .el-tabs--left .el-tabs__active-bar.is-right,
.el-tabs--right .el-tabs__active-bar.is-left, .el-tabs--right .el-tabs__active-bar.is-left,
.el-tabs--right .el-tabs__active-bar.is-right) { .el-tabs--right .el-tabs__active-bar.is-right
) {
width: 3px; width: 3px;
background: rgba(var(--color-base1), 1); background: rgba(var(--color-base1), 1);
height: 40px !important; height: 40px !important;
} }
:deep(.el-tabs--left .el-tabs__nav-wrap.is-left::after, :deep(
.el-tabs--left .el-tabs__nav-wrap.is-left::after,
.el-tabs--left .el-tabs__nav-wrap.is-right::after, .el-tabs--left .el-tabs__nav-wrap.is-right::after,
.el-tabs--right .el-tabs__nav-wrap.is-left::after, .el-tabs--right .el-tabs__nav-wrap.is-left::after,
.el-tabs--right .el-tabs__nav-wrap.is-right::after) { .el-tabs--right .el-tabs__nav-wrap.is-right::after
) {
width: 3px; width: 3px;
} }
@ -681,29 +796,39 @@ defineExpose({
} }
:deep(.el-tabs__item:hover) { :deep(.el-tabs__item:hover) {
background: linear-gradient(90deg, background: linear-gradient(
90deg,
rgba(var(--color-base1), 0) 0%, rgba(var(--color-base1), 0) 0%,
rgba(var(--color-base1), 0.5) 48.91%, rgba(var(--color-base1), 0.5) 48.91%,
rgba(var(--color-base1), 0) 100%); rgba(var(--color-base1), 0) 100%
);
border: 1px solid; border: 1px solid;
box-sizing: border-box; box-sizing: border-box;
border-image: linear-gradient(90deg, border-image: linear-gradient(
90deg,
rgba(var(--color-base1), 0) 0%, rgba(var(--color-base1), 0) 0%,
rgba(var(--color-base1), 1) 55.55%, rgba(var(--color-base1), 1) 55.55%,
rgba(var(--color-base1), 0) 100%) 1; rgba(var(--color-base1), 0) 100%
)
1;
} }
:deep(.el-tabs__item.is-active) { :deep(.el-tabs__item.is-active) {
background: linear-gradient(90deg, background: linear-gradient(
90deg,
rgba(var(--color-base1), 0) 0%, rgba(var(--color-base1), 0) 0%,
rgba(var(--color-base1), 0.5) 48.91%, rgba(var(--color-base1), 0.5) 48.91%,
rgba(var(--color-base1), 0) 100%) !important; rgba(var(--color-base1), 0) 100%
) !important;
border: 0.1px solid; border: 0.1px solid;
// box-sizing: border-box; // box-sizing: border-box;
border-image: linear-gradient(90deg, border-image: linear-gradient(
90deg,
rgba(var(--color-base1), 0) 0%, rgba(var(--color-base1), 0) 0%,
rgba(var(--color-base1), 1) 55.55%, rgba(var(--color-base1), 1) 55.55%,
rgba(var(--color-base1), 0) 100%) 1 !important; rgba(var(--color-base1), 0) 100%
)
1 !important;
} }
:deep(.el-tabs__header) { :deep(.el-tabs__header) {

View File

@ -499,8 +499,8 @@ defineExpose({
<style lang="scss" scoped> <style lang="scss" scoped>
.set_pup { .set_pup {
width: 40vw; // width: 40vw;
height: 50vh; // height: 50vh;
:deep(.el-dialog) { :deep(.el-dialog) {
background: background: