This commit is contained in:
liqi 2025-04-13 19:05:15 +08:00
parent beb068d607
commit 603b8a4dae
14 changed files with 176 additions and 34699 deletions

Binary file not shown.

View File

@ -1,11 +1,11 @@
Model Information: Model Information:
* title: Flying Drone * title: uAV
* source: https://sketchfab.com/3d-models/flying-drone-2ecfb55304a043a2a86353f70cc1cf92 * source: https://sketchfab.com/3d-models/uav-97650de1d69a4a04b46ad6aaa85aebf9
* author: DogexorRexUwU (https://sketchfab.com/oscar.lopez.riviello) * author: Phoenix... (https://sketchfab.com/projectend0005)
Model License: Model License:
* license type: CC-BY-4.0 (http://creativecommons.org/licenses/by/4.0/) * license type: CC-BY-4.0 (http://creativecommons.org/licenses/by/4.0/)
* requirements: Author must be credited. Commercial use is allowed. * requirements: Author must be credited. Commercial use is allowed.
If you use this 3D model in your project be sure to copy paste this credit wherever you share it: If you use this 3D model in your project be sure to copy paste this credit wherever you share it:
This work is based on "Flying Drone" (https://sketchfab.com/3d-models/flying-drone-2ecfb55304a043a2a86353f70cc1cf92) by DogexorRexUwU (https://sketchfab.com/oscar.lopez.riviello) licensed under CC-BY-4.0 (http://creativecommons.org/licenses/by/4.0/) This work is based on "uAV" (https://sketchfab.com/3d-models/uav-97650de1d69a4a04b46ad6aaa85aebf9) by Phoenix... (https://sketchfab.com/projectend0005) licensed under CC-BY-4.0 (http://creativecommons.org/licenses/by/4.0/)

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 638 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 MiB

BIN
public/uav/uav.zip Normal file

Binary file not shown.

View File

@ -388,11 +388,14 @@ export default {
}, },
deviceDrid(lon, lat) { deviceDrid(lon, lat) {
// this.clearDraw(); // this.clearDraw();
console.log(this.graphicLayer, "this.graphicLayer");
if (this.graphicLayer) {
this.graphicLayer.eachGraphic((item) => { this.graphicLayer.eachGraphic((item) => {
if (item.name === "贴地点") { if (item.name === "贴地点") {
this.graphicLayer.removeGraphic(item); this.graphicLayer.removeGraphic(item);
} }
}); });
}
const graphic = new mars3d.graphic.BillboardEntity({ const graphic = new mars3d.graphic.BillboardEntity({
position: new mars3d.LngLatPoint(lon, lat), position: new mars3d.LngLatPoint(lon, lat),

View File

@ -101,67 +101,18 @@ export default {
} }
}, },
mapNorth() { mapNorth() {
let graphicLayer = new mars3d.layer.GraphicLayer();
window.marsMap.addLayer(graphicLayer);
const fixedRoute = new mars3d.graphic.FixedRoute({
name: "贴地表表面漫游",
position: {
type: "time", //
speed: 160,
list: [
[116.043233, 30.845286, 392.48],
[116.046833, 30.846863, 411.33],
[116.052137, 30.848801, 439.45],
[116.060838, 30.850918, 442.91],
[116.069013, 30.852035, 435.14],
[116.18739, 30.854441, 244.53],
[116.205214, 30.859332, 300.96]
]
},
clockLoop: false, //
camera: {
type: "gs",
pitch: -30,
radius: 500
},
// model: {
// show: true,
// url: "https://data.mars3d.cn/gltf/mars/qiche.gltf",
// scale: 0.2,
// minimumPixelSize: 50
// },
model: {
scale: 1,
url: "/uav/scene.gltf",
heading: 90,
mergeOrientation: true, // ,orientationheading
minimumPixelSize: 50
},
polyline: {
color: "rgba(255,0,0,0.5)",
width: 2,
showAll: true
},
path: {
color: "rgba(255,255,0,1.0)",
width: 4,
leadTime: 0
}
});
graphicLayer.addGraphic(fixedRoute);
fixedRoute.start();
// 1. // 1.
// const currentView = window.marsMap.getCameraView(); const currentView = window.marsMap.getCameraView();
// // 2. heading0 // 2. heading0
// window.marsMap.setCameraView({ window.marsMap.setCameraView({
// lat: currentView.lat, lat: currentView.lat,
// lng: currentView.lng, lng: currentView.lng,
// alt: currentView.alt, alt: currentView.alt,
// heading: 0, // heading: 0, //
// pitch: currentView.pitch, pitch: currentView.pitch,
// roll: currentView.roll roll: currentView.roll
// }); });
} }
} }
}; };

View File

@ -240,6 +240,11 @@ export default {
model: "address", model: "address",
disabled: false disabled: false
}, },
{
label: "是否移动",
type: "switch",
model: "isMove"
},
{ {
label: "位置", label: "位置",
type: "marsMapmap", type: "marsMapmap",

View File

@ -36,6 +36,22 @@
@changePage="handlePageChange" @changePage="handlePageChange"
@selectionChange="handleSelectionChange" @selectionChange="handleSelectionChange"
> >
<template #operate="{ data }">
<el-link
type="primary"
:underline="false"
@click="handleClick(data, 'edit')"
>
修改
</el-link>
<el-link
type="danger"
:underline="false"
@click="handleClick(data, 'delete')"
>
删除
</el-link>
</template>
</my-table> </my-table>
</div> </div>
<el-drawer <el-drawer
@ -78,7 +94,7 @@ export default {
return { return {
formList: [ formList: [
{ {
label: "名称", label: "sn",
type: "input", type: "input",
model: "key" model: "key"
} }
@ -88,13 +104,33 @@ export default {
{ {
type: "text", type: "text",
label: "sn", label: "sn",
prop: "sn", prop: "sn"
width: 150
}, },
{ {
type: "text", type: "text",
label: "描述", label: "是否全天",
prop: "message" prop: "allDay"
},
{
type: "text",
label: "所属单位",
prop: "company"
},
{
type: "text",
label: "机型",
prop: "model"
},
{
type: "text",
label: "备注",
prop: "mark"
},
{
slot: "operate",
label: "操作",
width: 250,
fixed: "right"
} }
], ],
paginationParam: { paginationParam: {
@ -110,6 +146,12 @@ export default {
model: "sn", model: "sn",
rules: [{ required: true, message: "请输入sn" }] rules: [{ required: true, message: "请输入sn" }]
}, },
{
label: "机型",
type: "input",
model: "model",
rules: [{ required: true, message: "请输入机型" }]
},
{ {
label: "是否全天", label: "是否全天",
type: "select", type: "select",
@ -128,10 +170,24 @@ export default {
model: "positionId", model: "positionId",
options: [], options: [],
disabled: false, disabled: false,
multiple: true,
rules: [ rules: [
{ required: true, message: "请选择关联防区", trigger: "change" } { required: true, message: "请选择关联防区", trigger: "change" }
] ]
}, },
{
label: "所属单位",
type: "input",
model: "company"
},
{
label: "备注",
type: "textarea",
maxLenght: 100,
rowsHeight: 15,
placeholder: "请输入内容",
model: "mark"
},
{ {
label: "时间日期", label: "时间日期",
type: "datetimerange", type: "datetimerange",
@ -165,12 +221,12 @@ export default {
if (value === "0") { if (value === "0") {
if (lastItem.label === "时间日期") { if (lastItem.label === "时间日期") {
this.formDrawerList.pop(); this.formDrawerList.pop();
this.$set(this.fromItem, "date", null); // date // this.$set(this.fromItem, "date", null); // date
} }
} else if (value === "1") { } else if (value === "1") {
if (lastItem.label !== "时间日期") { if (lastItem.label !== "时间日期") {
this.formDrawerList.push(dateTimeItem); this.formDrawerList.push(dateTimeItem);
this.$set(this.fromItem, "date", []); // date // this.$set(this.fromItem, "date", []); // date
} }
} }
}, },
@ -211,7 +267,11 @@ export default {
this.$delete(params, "dateRange"); this.$delete(params, "dateRange");
whitListList(params).then((res) => { whitListList(params).then((res) => {
if (res.code === 0) { if (res.code === 0) {
this.tableData = res.data.items; this.tableData = res.data.items.map((item) => {
return item.allDay
? { ...item, allDay: "是" }
: { ...item, allDay: "否" };
});
this.paginationParam.total = res.data.total; this.paginationParam.total = res.data.total;
} }
}); });
@ -231,10 +291,10 @@ export default {
console.log(params, "params"); console.log(params, "params");
// positionName // positionName
const position = this.PositionList.find( // const position = this.PositionList.find(
(item) => item.id === params.positionId // (item) => item.id === params.positionId
); // );
params.positionName = position ? position.name : ""; // params.positionName = position ? position.name : "";
// allDay // allDay
if (params.allDay === "0") { if (params.allDay === "0") {
@ -281,6 +341,7 @@ export default {
this.title = "编辑白名单"; this.title = "编辑白名单";
this.isEditFlag = false; this.isEditFlag = false;
this.fromItem = { ...value }; this.fromItem = { ...value };
this.fromItem.positionId = value.positionIds;
this.formDrawerList = this.getDefaultFormDrawerList(); this.formDrawerList = this.getDefaultFormDrawerList();
value.allDay = value.allDay ? "0" : "1"; value.allDay = value.allDay ? "0" : "1";
this.changeSelect(value.allDay); // allDay this.changeSelect(value.allDay); // allDay
@ -338,6 +399,12 @@ export default {
model: "sn", model: "sn",
rules: [{ required: true, message: "请输入sn" }] rules: [{ required: true, message: "请输入sn" }]
}, },
{
label: "机型",
type: "input",
model: "model",
rules: [{ required: true, message: "请输入机型" }]
},
{ {
label: "是否全天", label: "是否全天",
type: "select", type: "select",
@ -356,10 +423,24 @@ export default {
model: "positionId", model: "positionId",
options: [], options: [],
disabled: false, disabled: false,
multiple: true,
rules: [ rules: [
{ required: true, message: "请选择关联防区", trigger: "change" } { required: true, message: "请选择关联防区", trigger: "change" }
] ]
}, },
{
label: "所属单位",
type: "input",
model: "company"
},
{
label: "备注",
type: "textarea",
maxLenght: 100,
rowsHeight: 15,
placeholder: "请输入内容",
model: "mark"
},
{ {
label: "时间日期", label: "时间日期",
type: "datetimerange", type: "datetimerange",