This commit is contained in:
2025-09-02 10:01:05 +08:00
parent 1484bd44fc
commit ff5f583326
68 changed files with 983 additions and 14306 deletions

View File

@ -3,7 +3,7 @@
<div class="box" v-draggable>
<div class="boxHeader nav">
<span></span>
<span class="boxHeaderTitle"></span>
<span class="boxHeaderTitle">模型选择</span>
<span>
<i class="el-icon-close" @click="close"></i>
</span>
@ -22,7 +22,7 @@
<template v-if="searchRes.length">
<div class="el-collapse-item__content">
<template v-for="model in searchRes">
<div class="itemBox" @click="selectModel(model)">
<div class="itemBox" @click="editModel(model)">
<div class="imgbox">
<img :src="model.poster_url" alt=""></img>
</div>
@ -36,8 +36,8 @@
<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="editModel(model)" @dblclick="selectModel(model)">
<!-- @dblclick="selectModel(model)" -->
<div class="itemBox" @click="editModel(model)" >
<div class="imgbox" :class="{ selectModel: editModelId == model.model_id }">
<el-image :src="model.poster_url" alt=""></el-image>
<!-- + '?' + Math.random() -->
@ -92,37 +92,36 @@ export default {
},
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();
this.$sendChanel("ModelSetTitle", "默认模型参数设置");
this.$changeComponentShow(".ModelSetBox", true);
this.$recvChanel("ModelSetContent", (data) => {
if (data) {
localStorage.setItem("ModelSetContent", JSON.stringify(data));
}
});
},
async renderModel(data, model) {
renderModel(that, data, model) {
// let p_id = '模型图层'
let selectedNode = getSelectedNode(this.treeObj);
let p_id = selectedNode
? nodeType[selectedNode.source_type].allowChildren
? selectedNode.source_id
: selectedNode.p_id
: -1;
? 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=="线") {
if (data.positions.length >= 100) {
that.$message.warning("添加模型数量过多,请减少数量后!");
return;
}
if (data.positions.length > 0) {
data.positions.forEach(async (position, index) => {
let source_id = this.$md5(new Date().getTime() + model.model_name + index);
if (data.type == "面") {
z = data.rotate;
} else if (data.type == "线") {
z = data.rotate[index];
} else if (data.type == "点") {
z = 0
}
let DbOption = {
source_id,
@ -139,7 +138,7 @@ export default {
url: model.model_url,
maximumScale: 1,
host: getIP(),
rotate:{
rotate: {
x: 0,
y: 0,
z
@ -163,8 +162,35 @@ export default {
}
},
editModel(model) {
this.editModelData = model;
this.editModelId = model.model_id;
let that = this
let form = JSON.parse(localStorage.getItem("ModelSetContent"))
if (form) {
let url = model.model_url;
let source_id = this.$md5(new Date().getTime() + model.model_name);
let op = {}
if (form.spacing) {
op = {
id: source_id,
url,
type: form.type,
spacing: form.spacing
}
} else {
op = {
id: source_id,
url,
type: form.type,
}
}
console.log('opopopopopopopopopopopopopop',op);
let models = new YJ.Obj.BatchModel(window.Earth1, op, function (data) {
that.renderModel(that, data, model);
})
this.close();
} else {
this.modelSet()
}
},
searchContent(val) {
if (val) {
@ -271,7 +297,7 @@ export default {
this.allModels = [];
this.modelTypeList = [];
this.activeName = "";
this.editModelData = null;
// this.editModelData = null;
this.editModelId = null;
this.$changeComponentShow(".modelBox", false);
},
@ -323,9 +349,11 @@ export default {
display: inline-block;
width: 230px;
height: 34px;
background: url('../../assets/images/title.png');
background: url('../../assets/images/titlebg.png');
background-size: 100% 100%;
background-repeat: no-repeat;
text-align: center;
line-height: 34px;
}
i {