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

View File

@ -9,10 +9,13 @@
</span>
</div>
<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"
v-model="filterText">
</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('junbiao')" size="small">搜军标</el-button>-->
</div>
@ -33,10 +36,11 @@
<template v-for="item in modelTypeList">
<el-collapse-item :title="item.type_name" :name="item.type_id">
<template v-for="model in item.children">
<div class="itemBox" @click="selectModel(model)">
<div class="imgbox">
<el-image :src="model.poster_url + '?' + Math.random()" alt=""></el-image>
<!-- -->
<div class="itemBox" @click="editModel(model)" @dblclick="selectModel(model)">
<div class="imgbox" :class="{ selectModel: editModelId == model.model_id }">
<el-image :src="model.poster_url" alt=""></el-image>
<!-- + '?' + Math.random() -->
</div>
<span>{{ model.model_name }}</span>
</div>
@ -82,9 +86,86 @@ export default {
allModels: [],
searchRes: [],
arrModel: [],
editModelData: null,
editModelId: null,
};
},
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) {
if (val) {
this.searchRes = this.allModels.filter((item) => {
@ -95,6 +176,7 @@ export default {
}
},
selectModel(model) {
let model_p_id = "模型图层"
console.log("选中了模型", model, this.type);
this.close();
if (this.type == "rightMenu") {
@ -137,11 +219,10 @@ export default {
detailOption.url = model.model_id + ".glb";
let node = getNodeData(DbOption, detailOption);
console.log(node);
let model_id = "43d570f69514904a91b5df9c5f33bc98"
addSource(node).then((res) => {
if ([0, 200].includes(res.code)) {
// 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.modelTypeList = [];
this.activeName = "";
this.editModelData = null;
this.editModelId = null;
this.$changeComponentShow(".modelBox", false);
},
},
@ -255,6 +338,18 @@ export default {
flex: auto;
overflow-y: auto;
.modelSet {
.el-button {
background: rgba(var(--color-sdk-base-rgb), 0.2);
border: 1px solid rgba(var(--color-sdk-base-rgb), 0.5);
}
}
.selectModel {
border: 1px solid red !important;
}
.itemBox {
width: 20%;
display: flex;
@ -273,6 +368,7 @@ export default {
background-repeat: no-repeat;
box-sizing: border-box;
text-align: center;
border: 1px solid rgba(0, 0, 0, 0);
}
img {