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

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

View File

@ -160,7 +160,7 @@ module.exports = {
unLock: "unLock",
},
headerTitles: {
systemTitle: "System setting",
systemTitle: "System Panel",
udp: "Physical sandbox",
ConcurrencyControl: "Concurrency Control",
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,
} from "../Tree/renderNode";
import { shpTotalDict } from "../../api/shpTotalDict";
import e from "express";
const secondMenuFun = {
data() {
return {
@ -1411,7 +1409,7 @@ const secondMenuFun = {
window.clicknum = 0;
let host = new URL(getIP()).host;
let routePlanning = new YJ.Obj.RoutePlanning(window.Earth1, {
gps: true,
gps: false,
host,
});
routePlanning.Dialog.queryCallBack = async (v) => {

View File

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

View File

@ -139,7 +139,7 @@ const rightMenuOption = {
}
});
console.log("执行图层层级修改_updateLayerIndex", layers);
updateLayerIndex(layers, (res) => {});
updateLayerIndex(layers, (res) => { });
},
layerIndex(key) {
let layer = window._entityMap.get(this.rightClickTreeNode.source_id);
@ -548,6 +548,15 @@ const rightMenuOption = {
this.$parent.treeObj,
getSelectedNodes(this.$parent.treeObj)
);
let ids = [
"模型图层",
"特效图层",
"标绘图层",
"二维军标图层",
"三维军标图层",
];
// 排除
source_ids = source_ids.filter((id) => !ids.includes(id));
delSource({
source_ids,
}).then((res) => {
@ -737,7 +746,7 @@ const rightMenuOption = {
confirmCallBack: (data) => {
this.shpConfirmCallBack(data, this.rightClickTreeNode.source_id);
},
closeCallBack: () => {},
closeCallBack: () => { },
});
} else {
editNode.edit(true);
@ -871,7 +880,7 @@ const rightMenuOption = {
list.forEach((item) => {
arr.push({
name: "链接",
url: item.url,
url: item.url,
});
});
editNode.attributeLink = arr;
@ -905,7 +914,7 @@ const rightMenuOption = {
}
paths.forEach((item) => {
arr.push({
name: "链接" ,
name: "链接",
url: item,
});
});
@ -928,7 +937,7 @@ const rightMenuOption = {
this.$removeChanel("panoramaFileData");
list.forEach((item) => {
arr.push({
name: "全景" ,
name: "全景",
url: item.url,
});
});
@ -960,7 +969,7 @@ const rightMenuOption = {
}
paths.forEach((item) => {
arr.push({
name: "全景" ,
name: "全景",
url: item,
});
});
@ -1041,7 +1050,7 @@ const rightMenuOption = {
this.updateView(true);
},
//模型压平
pressModel() {},
pressModel() { },
//模型剖切
tilesetClipping() {
let node = getSelectedNode(this.$parent.treeObj);
@ -1128,17 +1137,17 @@ const rightMenuOption = {
process.env.NODE_ENV === "development"
? path.join(GetHomeDir(), "static/logo_ico/81.ico")
: path.join(
GetHomeDir(),
"resources/app.asar/" + "dist/electron/static/logo_ico/81.png"
);
GetHomeDir(),
"resources/app.asar/" + "dist/electron/static/logo_ico/81.png"
);
console.log("点击了菜单", node);
console.log("点击了菜单", this.rightClickTreeNode);
let currentnode = node
? $root_home_index.$refs.tree.treeObj.getNodeByParam(
"source_id",
node.source_id,
null
)
"source_id",
node.source_id,
null
)
: this.rightClickTreeNode;
let win = $root_home.$remote.BrowserWindow;
let id = currentnode.source_id;
@ -1242,7 +1251,7 @@ const rightMenuOption = {
newDataWin.show();
});
window._winMap.set(id, newDataWin.id);
newDataWin.on("close", function(event) {
newDataWin.on("close", function (event) {
window._winMap.delete(id);
});
} else {

View File

@ -62,6 +62,8 @@ import tree from "./treeSetting";
import rightMenu from "./components/rightMenu.vue";
import AMapLoader from "@amap/amap-jsapi-loader";
import rightMenuOption from "../Tree/components/rightMenuOption";
import { findParentId } from "@/components/Tree/treeNode";
import { renderTextBox } from "./renderNode";
import {
get_source_list,
queryPOI,
@ -302,7 +304,7 @@ export default {
let p_id = getKeyOfSelectedNode(this.$parent.treeObj, "source_id");
filePaths.forEach((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);
let source_type = "layer";
if (item.endsWith(".clt") || item.endsWith(".json")) {
@ -713,6 +715,8 @@ export default {
);
window.treeObj = this.treeObj;
window.AllNodes = this.treeObj.getNodes()
console.log('window.AllNodes', window.AllNodes);
window.newFuzzySearch(
`treeDemo`,
"#keyword",
@ -732,6 +736,9 @@ export default {
(text, object) => {
switch (text) {
case "textBox":
this.addTextBox(object.position);
break;
case "rotateAround":
YJ.Global.rotateAround(window.Earth1, object.position);
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
getNode(source_id) {
if (!source_id) {
@ -804,6 +842,7 @@ export default {
animate();
},
},
};
</script>

View File

@ -8,14 +8,14 @@ import {
} from "./entityClick";
import { getIP } from "../../utils";
import { getAddress } from "../../utils/request";
import { addPicture,updateInfo } from "../../api/gisAPI";
import { addPicture, updateInfo } from "../../api/gisAPI";
import {
$changeComponentShow,
$recvChanel,
$sendElectronChanel,
$recvElectronChanel,
} from "../../utils/communication";
import { nodeType,cusUpdateNode } from "./treeNode";
import { nodeType, cusUpdateNode } from "./treeNode";
import md5 from "js-md5";
let staticPort = $root_home.$remote.getGlobal("sharedObject").avilablePort;
@ -286,7 +286,8 @@ function renderShp(node, ifFly = true) {
let ziNode = {
source_id: item.id,
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: {
...item,
info: { type: "richText" },
@ -298,7 +299,8 @@ function renderShp(node, ifFly = true) {
});
}
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_name: it.name,
detail: {
@ -335,7 +337,7 @@ function renderShp(node, ifFly = true) {
let ziNode = {
source_id: item.id,
source_type: item.type,
source_name: item.properties[arrt] || '',
source_name: item.properties[arrt] || "",
detail: {
...item,
info: { type: "richText" },
@ -471,14 +473,19 @@ function renderBaseMarker(DbOption) {
}
}
console.log("selected", selected);
$sendElectronChanel("requireGEMarkerName", {
dirName: "GEMarker",
dirName1s: "GEMarker1s",
});
$recvElectronChanel("dirFiles", (e, res) => {
$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");
});
$recvChanel("selectedImg", (data) => {
@ -860,16 +867,16 @@ function renderGroundImage(DbOption) {
console.log("DbOption", DbOption);
if (DbOption.is_load) {
svg.load(() => {
svg.drag(true,(v)=>{
console.log("vsvg",v);
svg.drag(true, (v) => {
console.log("vsvg", v);
let obj = {
source_id: DbOption.source_id,
source_name: DbOption.source_name,
detail: JSON.stringify(v),
}
updateInfo(obj,()=>{
};
updateInfo(obj, () => {
cusUpdateNode(obj);
})
});
});
});
}
@ -1234,8 +1241,8 @@ function renderPicture(node) {
}
// 飞线
function renderFlyLine(node) {
console.log("renderEllipse", node);
function renderFlyLine(node) {
console.log("renderEllipse", node);
let nodecopy = JSON.parse(JSON.stringify(node));
if (typeof nodecopy.detail == "string")
nodecopy.detail = JSON.parse(nodecopy.detail);
@ -1246,18 +1253,51 @@ function renderFlyLine(node) {
};
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);
};
//鼠标左键点击事件
FlowLine.onClick = () => {
console.log(123);
TextBox.onClick = () => {
leftClick(nodecopy);
};
// cb()
window._entityMap.set(node.source_id, FlowLine);
window._entityMap.set(node.source_id, TextBox);
}
export {
@ -1302,5 +1342,6 @@ export {
renderCurve,
renderEllipse,
renderSector,
renderFlyLine
renderFlyLine,
renderTextBox,
};

View File

@ -39,12 +39,12 @@ import {
renderCurve,
renderEllipse,
renderSector,
renderFlyLine
renderFlyLine,
renderTextBox
} from "./renderNode";
import { leftClick, rightClick } from "./entityClick";
import { addPoint } from "@/api/gisAPI";
import { renderBaseMarker2d, renderLayer2d } from "./renderNode2d";
import { traverse } from "babel-core";
let staticPort = $root_home.$remote.getGlobal("sharedObject").avilablePort;
@ -78,7 +78,7 @@ let get_detail_point = (DetailOption) => {
},
label: {
text: DetailOption.name || DetailOption.source_name,
fontFamily:0
fontFamily: 0,
// color: "#07f8e4",
// show: true,
// fontSize: 20,
@ -136,7 +136,7 @@ let get_detail_ellipse = (DetailOption) => {
center: DetailOption.center,
semiMajorAxis: DetailOption.semiMajorAxis,
semiMinorAxis: DetailOption.semiMinorAxis,
color: "rgba(255,0,0,1)",
color: "rgba(255,0,0,.5)",
};
return detail;
};
@ -152,7 +152,7 @@ let get_detail_sector = (DetailOption) => {
center: DetailOption.center,
startAngle: DetailOption.startAngle,
endAngle: DetailOption.endAngle,
color: 'rgba(255,0,0,1)',
color: "rgba(255,0,0,.5)",
};
return detail;
};
@ -179,9 +179,9 @@ let get_detail_line = (DetailOption) => {
buffer: false,
buffer_width: 1,
buffer_color: "#efc312",
lineWidth:3,
'extend-color':'rgba(255,222,80,.3)',
'extend-width':10,
lineWidth: 3,
"extend-color": "rgba(255,255,80,.3)",
"extend-width": 10,
// }
};
recurrenceSetValue(detail, DetailOption);
@ -203,7 +203,7 @@ let get_detail_curve = (DetailOption) => {
// polyline: {
positions: DetailOption.position,
color: "#ff0000AF",
color: "rgba(255,0,0,1)",
width: 5,
type: 0,
close: false,
@ -241,8 +241,8 @@ let get_detail_panel = (DetailOption) => {
// polygon: {
positions: DetailOption.position,
color: "rgba(255,0,0,0.5)",
line:{
line: {
width: 3,
color: "rgba(255,0,0,1)",
},
@ -253,25 +253,25 @@ let get_detail_panel = (DetailOption) => {
recurrenceSetValue(detail, DetailOption);
return detail;
};
let get_detail_rendezvous = (DetailOption) => {
let get_detail_rendezvous = (DetailOption) => {
let detail = {
id: DetailOption.id,
info: {
type: "richText",
text: "",
hrefs: "",
},
id: DetailOption.id,
info: {
type: "richText",
text: "",
hrefs: "",
},
// polygon: {
positions: DetailOption.position,
color: 'rgba(255,0,0,0.5)',
width: 5,
type: 0,
// },
show: true,
};
recurrenceSetValue(detail, DetailOption);
return detail;
// polygon: {
positions: DetailOption.position,
color: "rgba(255,0,0,0.5)",
width: 5,
type: 0,
// },
show: true,
};
recurrenceSetValue(detail, DetailOption);
return detail;
};
let get_detail_circle = (DetailOption) => {
let detail = {
@ -283,7 +283,7 @@ let get_detail_circle = (DetailOption) => {
},
// circle: {
center: DetailOption.center,
color: 'rgba(255,0,0,0.5)',
color: "rgba(255,0,0,0.5)",
radius: 5,
// }
};
@ -334,6 +334,10 @@ let get_detail_groundImage = (DetailOption) => {
text: "",
hrefs: "",
},
scale: {
x: 0.073,
y: 0.073,
},
show: true,
width: 60,
height: 60,
@ -405,8 +409,8 @@ let get_detail_tileset = (DetailOption) => {
};
// return DetailOption
};
let get_detail_flyLine = (DetailOption) => {
return {
let get_detail_flyLine = (DetailOption) => {
return {
id: DetailOption.source_id,
positions: DetailOption.positions,
// rotation: [0, 0, 0]
@ -521,7 +525,7 @@ let get_detail_wallStereoscopic = (DetailOption) => {
text: "",
hrefs: "",
},
color: 'rgba(255,0,0,1)',
color: "rgba(255,0,0,1)",
extrudedHeight: DetailOption.extrudedHeight,
height: DetailOption.height,
duration: 3000,
@ -538,7 +542,7 @@ let get_detail_entityWall = (DetailOption) => {
color: DetailOption.color,
cornerType: DetailOption.cornerType,
extrudedHeight: DetailOption.extrudedHeight,
height: DetailOption.height,
height: DetailOption.height,
width: DetailOption.width,
};
};
@ -589,15 +593,29 @@ 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 = {
point: {
textBox:{
rightMenus: ["edit", "del", "setView", "resetView"],
render: renderBaseMarker,
render2d: renderBaseMarker2d,
detailFun: get_detail_point,
addToDatabase: addPoint,
allowChildren: false,
render: renderTextBox,
detailFun: get_detail_textbox,
},
point: {
rightMenus: ["edit", "del", "setView", "resetView"],
render: renderBaseMarker,
render2d: renderBaseMarker2d,
detailFun: get_detail_point,
addToDatabase: addPoint,
allowChildren: false,
},
line: {
rightMenus: ["edit", "del", "setView", "resetView"],
@ -954,11 +972,11 @@ const nodeType = {
// detailFun: get_detail_shp,
// allowChildren: false
// },
FeatureCollection:{
FeatureCollection: {
rightMenus: [],
render: renderShp,
detailFun: get_detail_shp,
allowChildren: false
allowChildren: false,
},
Feature: {
rightMenus: ["setView", "resetView", "showAttr"],
@ -1017,7 +1035,7 @@ const nodeType = {
allowChildren: false,
},
// 飞线
flyLine:{
flyLine: {
rightMenus: [
"edit",
"del",
@ -1027,7 +1045,7 @@ const nodeType = {
render: renderFlyLine,
detailFun: get_detail_flyLine,
allowChildren: false,
}
},
// 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}}
*/
let getNodeData = (DbOption = { source_type: "point" }, DetailOption = {}) => {
console.log("DbOptionDbOptionDbOption", );
console.log("DbOptionDbOptionDbOption");
if (!DbOption.source_id)
DbOption.source_id = $root_home.$md5(
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 },
DetailOption
);
console.log('detail',detail);
console.log("detail", detail);
DbOption.detail = detail;
let Node = setDbStruct(DbOption);
console.log("getNodeData", Node);
@ -1080,7 +1098,7 @@ function recurrenceSetValue(detail, DetailOption) {
*/
function setDetail({ source_type, source_id }, DetailOption) {
console.log("DetailOption", DetailOption);
DetailOption.id = source_id;
/* let jsStr = "(get_detail_" + source_type + "(DetailOption))";
@ -1296,7 +1314,7 @@ function cusAddNodes(treeObj, parentNodeId, newNodes, isSilent) {
if (node.detail && typeof node.detail == "string")
node.detail = JSON.parse(node.detail);
// if(node.p_id)
YJ.Global.splitScreen.setActiveId([node.source_id]);
YJ.Global.splitScreen.setActiveId([node.source_id]);
});
let parentNode = null;
if (Object.prototype.toString.call(parentNodeId) === "[object Object]")
@ -1308,7 +1326,7 @@ function cusAddNodes(treeObj, parentNodeId, newNodes, isSilent) {
treeObj.selectNode(arr[arr.length - 1]);
// 确保window.AllNodes存在并为数组
window.AllNodes = (window.AllNodes || []).concat(arr);
return arr;
}
@ -1324,6 +1342,16 @@ function cusRemoveNode(treeObj, nodes) {
nodes.forEach((node) => {
allNodes = allNodes.concat(treeObj.transformToArray(node));
});
let ids = [
"模型图层",
"特效图层",
"标绘图层",
"二维军标图层",
"三维军标图层",
];
// 排除
allNodes = allNodes.filter((node) => !ids.includes(node.source_id));
allNodes.forEach((node) => {
_idSet.add(node.source_id);
treeObj.removeNode(node);

View File

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

View File

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

View File

@ -263,7 +263,7 @@ export default {
handleClick() { },
selectImg({ key, url, name }) {
// 军标库图层
let jun_biao_id = "3579e514a976c9aad03fde6b6198f464";
let jun_biao_id = "二维军标图层";
//jun_biao_id: "67bee03d6370434d7e98bcda940e67e7"
// name: "a常用new_37 (23)"
// p_id: "8277e0910d750195b448797616e091ad"
@ -312,7 +312,7 @@ export default {
if ([0, 200].includes(res.code)) {
cusRenderNode(DbOption);
// 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() {
},
selectImg({ key, url, name, glbUrl }) {
let jun_biao_id = "03826cc9d84e13cb404745ebd5b3963e"
let jun_biao_id = "三维军标图层"
console.log('glbUrlglbUrlglbUrl', glbUrl);
//jun_biao_id: "67bee03d6370434d7e98bcda940e67e7"
// name: "a常用new_37 (23)"
@ -169,7 +169,7 @@ export default {
if ([0, 200].includes(res.code)) {
// cusRenderNode(DbOption)
// DbOption.p_id
cusAddNodes(this.treeObj,jun_biao_id, [node])
cusAddNodes(this.treeObj,DbOption.p_id, [node])
}
});
}

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 {

View File

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

View File

@ -1,7 +1,7 @@
<template>
<div class="header_top">
<!-- <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">
<span>{{ date.ymd }}</span>
<span>{{ $t("headerTitles.week")[date.week] }}</span>

View File

@ -51,14 +51,14 @@ export default {
setList: [
//北斗图标
// 标准版本
{
id: 0,
index: 0,
icon: "locate",
className: "header_public",
dbcallback: this.flyTo,
callback: this.locate,
},
// {
// id: 0,
// index: 0,
// icon: "locate",
// className: "header_public",
// dbcallback: this.flyTo,
// callback: this.locate,
// },
{
id: 1,
index: 1,

View File

@ -489,7 +489,7 @@
</el-tab-pane>
<!-- 军标管理 -->
<!-- v-if="false" 标准版本 -->
<el-tab-pane :label="$t('headerTitles.graphLabel.title')">
<el-tab-pane :label="$t('headerTitles.graphLabel.title')">
<div class="modelBtn custom_scroll_bar" v-if="isStandAlone">
<el-button @click="createLib('graphLabel')" type="warning" size="small">{{
$t("headerTitles.graphLabel.createGraphLabelLibrary") }}

View File

@ -78,7 +78,7 @@
<!-- <img src="@/assets/images/81.gif" /> -->
<!-- <img src="@/assets/images/rotation.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/aaaaaa.webp">-->
<!-- <button v-for="item in optionss" @click="addMarker(item)">{{ item.source_name }}</button>-->

View File

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