徐景良 1 month ago
commit d8c85b3fca

@ -79,8 +79,9 @@
"@mapbox/mapbox-gl-draw": "^1.4.1",
"@microsoft/signalr": "^8.0.0",
"@originjs/vite-plugin-commonjs": "^1.0.3",
"@rollup/plugin-commonjs": "^28.0.6",
"@terraformer/wkt": "2.1.2",
"@turf/turf": "^7.0.0",
"@turf/turf": "^7.2.0",
"@vben/hooks": "workspace:*",
"@vue/shared": "^3.4.5",
"@vueuse/core": "^10.7.1",
@ -104,6 +105,7 @@
"exceljs": "^4.4.0",
"fabric": "^4.6.0",
"fast-xml-parser": "^5.2.5",
"file-saver": "^2.0.5",
"highlight.js": "^11.9.0",
"js-base64": "3.7.7",
"js-md5": "^0.8.3",
@ -145,6 +147,7 @@
"vditor": "^3.9.8",
"video.js": "^8.6.1",
"vite-plugin-cesium": "^1.2.23",
"vite-plugin-require-transform": "^1.0.21",
"vue": "3.3.4",
"vue-color-kit": "^1.0.6",
"vue-drag-resize": "^1.5.4",
@ -160,8 +163,7 @@
"vxe-table-plugin-export-xlsx": "^3.1.0",
"xe-utils": "^3.5.14",
"xlsx": "^0.18.5",
"xml-js": "^1.6.11",
"file-saver":"^2.0.5"
"xml-js": "^1.6.11"
},
"devDependencies": {
"@commitlint/cli": "^18.4.4",

Binary file not shown.

Before

Width:  |  Height:  |  Size: 172 B

@ -37,7 +37,7 @@
<!-- 图片 -->
<img
v-if="record.objectKey && record.objectKey.includes('jpeg')"
:src="`${VITE_GLOB_MEDIALIBRARY_IMAGE_URL + (record.minipic ? record.minipic : record.objectKey)}`"
:src="`${VITE_GLOB_MEDIALIBRARY_IMAGE_URL + record.minipic}`"
:width="30"
:height="20"
/>
@ -159,7 +159,7 @@
<!-- 图片 -->
<img
v-if="record.objectKey && record.objectKey.includes('jpeg')"
:src="`${VITE_GLOB_MEDIALIBRARY_IMAGE_URL + (record.minipic ? record.minipic : record.objectKey)}`"
:src="`${VITE_GLOB_MEDIALIBRARY_IMAGE_URL + record.minipic}`"
:width="100"
:height="60"
style="position: absolute; top: 10px; left: 32.5px"

@ -24,25 +24,34 @@
</div>
<div class="titleTime">
<ClockCircleOutlined />
{{
dayjs(props.nowShowImageData.createTime).format('YYYY-MM-DD HH:mm:ss (UTCZ)') +
'&nbsp;&nbsp;&nbsp;' +
(props.nowShowImageData.size / 1024 / 1024).toFixed(2) +
'M' +
'&nbsp;&nbsp;&nbsp;' +
props.nowShowImageData.width +
' x ' +
props.nowShowImageData.height
}}
<span>
{{
'&nbsp;&nbsp;' +
dayjs(props.nowShowImageData.createTime).format('YYYY-MM-DD HH:mm:ss (UTCZ)') +
'&nbsp;&nbsp;&nbsp;'
}}
</span>
<span>
{{
props.nowShowImageData.siz
? (props.nowShowImageData.size / 1024 / 1024).toFixed(2) + 'M' + '&nbsp;&nbsp;&nbsp;'
: ''
}}
</span>
<span>
{{ props.nowShowImageData.width + ' x ' + props.nowShowImageData.height }}
</span>
</div>
<div class="titleCoordinate">
{{
props.nowShowImageData.lng +
'° N' +
'&nbsp;&nbsp;&nbsp;&nbsp;' +
props.nowShowImageData.lat +
'° E'
}}
<span>
{{ props.nowShowImageData.lat + '° E' + '&nbsp;&nbsp;&nbsp;&nbsp;' }}
</span>
<span>
{{ props.nowShowImageData.lng + '° N' + '&nbsp;&nbsp;&nbsp;&nbsp;' }}
</span>
<span>
{{ '拍摄高度' + props.nowShowImageData.relativeAltitude + 'm &nbsp;&nbsp;&nbsp;&nbsp;' }}
</span>
</div>
</div>
<!-- 标签 -->
@ -471,11 +480,7 @@
</template>
<div :class="li.id == props.nowShowImageData.id ? 'bottom_div_choose' : 'bottom_div'">
<img
:src="
li.minipic
? VITE_GLOB_MEDIALIBRARY_IMAGE_URL + li.minipic
: 'https://m.tuniucdn.com/fb2/t1/G5/M00/44/52/Cii-s1soezyIF2UxABn76u-yKl8AAIwBgB34jAAGfwC3020871'
"
:src="VITE_GLOB_MEDIALIBRARY_IMAGE_URL + li.minipic"
loading="lazy"
width="75"
height="50"
@ -1371,13 +1376,18 @@
}
.titleTime {
margin-top: 5px;
font-size: 16px;
color: #ffffff;
display: flex;
span {
font-size: 16px;
color: #ffffff;
}
}
.titleCoordinate {
margin-top: 5px;
font-size: 16px;
color: #ffffff;
span {
font-size: 16px;
color: #ffffff;
}
}
}
//

@ -83,55 +83,23 @@
style="color: #ffffff; font-size: 16px"
/>
</div>
<a-tooltip placement="top">
<template #title>
<div>
<img
:src="VITE_GLOB_MEDIALIBRARY_IMAGE_URL + show.minipic"
loading="lazy"
width="230"
height="190"
/>
</div>
<div> {{ show.name }}</div>
</template>
<div
:style="{
width: show.mouse ? '160px' : '210px',
'white-space': 'nowrap',
overflow: 'hidden',
'text-overflow': 'ellipsis',
}"
@click="setNowShowImageData(show)"
>
{{ show.name }}
</div>
</a-tooltip>
<div
:style="{
width: '230px',
'white-space': 'nowrap',
overflow: 'hidden',
'text-overflow': 'ellipsis',
}"
@click="setNowShowImageData(show)"
>
{{ show.name }}
</div>
<a-tooltip placement="top">
<template #title>
<span>回中</span>
</template>
<AimOutlined @click="handlerLocation(show)" />
</a-tooltip>
<!-- <a-popconfirm
placement="right"
title="您是否将该照片在地图上取消加载?取消后照片将不在地图上显示。"
ok-text="确认"
cancel-text="取消"
@confirm="funShowOnMapOrDisplay(show, 'showOnMap')"
>
<a-tooltip placement="top">
<template #title>
<span>
{{ show.showOnMap ? '在地图上取消加载' : '在地图上加载' }}
</span>
</template>
<div style="display: flex; align-items: center">
<div v-if="show.showOnMap == 1" class="svg-container" v-html="showOnMap_1" />
<div v-if="show.showOnMap != 1" class="svg-container" v-html="showOnMap_0" />
</div>
</a-tooltip>
</a-popconfirm> -->
</div>
</div>
</div>

@ -352,13 +352,15 @@
//
const flightimage = new Image();
flightimage.crossOrigin = 'Anonymous';
flightimage.src = '/src/assets/images/flightoperation/mediaLibraryFlight.png';
// flightimage.src = '/src/assets/images/flightoperation/mediaLibraryFlight.png';
flightimage.src = '/mediaLibrary/mediaLibraryFlight.png';
flightimage.onload = () => {
let flightRotation = 0;
let flightMapRotation = 0;
// -
props.allImageDataList.forEach((item, index) => {
if (item.lng && item.lat && item.absoluteAltitude) {
if (item.lng && item.lat && item.absoluteAltitude && item.relativeAltitude) {
const image = new Image();
image.crossOrigin = 'Anonymous';
if (item.minipic) {
@ -374,247 +376,256 @@
parseFloat(item.lat),
parseFloat(item.absoluteAltitude),
];
//
mars3d.PointUtil.getSurfaceHeight(
map.scene,
Cesium.Cartesian3.fromDegrees(position[0], position[1]),
).then((point) => {
// Canvas
const canvas = document.createElement('canvas');
canvas.width = 34;
canvas.height = 29;
// Canvas
const ctx = canvas.getContext('2d');
ctx.fillStyle = '#ffffff00';
ctx?.fillRect(0, 0, canvas.width, canvas.height);
//
let surfaceHeight = item.absoluteAltitude - item.relativeAltitude;
// Canvas
const canvas = document.createElement('canvas');
canvas.width = 34;
canvas.height = 29;
// Canvas
const ctx = canvas.getContext('2d');
ctx.fillStyle = '#ffffff00';
ctx?.fillRect(0, 0, canvas.width, canvas.height);
//
ctx.save();
const centerX = canvas.width / 2;
const centerY = canvas.height / 2;
ctx.translate(centerX, centerY);
const angleInRadians = (Math.PI / 180) * (parseFloat(item.gimbalYawDegree) + 180); //
ctx.rotate(angleInRadians);
ctx.drawImage(image, 2 - centerX, 2 - centerY, 30, 25);
ctx.restore();
//
ctx.save();
const centerX = canvas.width / 2;
const centerY = canvas.height / 2;
ctx.translate(centerX, centerY);
const angleInRadians = (Math.PI / 180) * (parseFloat(item.gimbalYawDegree) + 180); //
ctx.rotate(angleInRadians);
ctx.drawImage(image, 2 - centerX, 2 - centerY, 30, 25);
ctx.restore();
// -
if (index + 1 < props.allImageDataList.length) {
const afterItem = props.allImageDataList[index + 1];
let dLng = afterItem.lng - item.lng;
let dLat = afterItem.lat - item.lat;
// 使 atan2
let angleRad = Math.atan2(dLat, dLng);
let angleDeg = Cesium.Math.toDegrees(angleRad);
flightRotation = ((Math.PI / 180) * (90 - angleDeg + 360)) % 360;
flightMapRotation = ((Math.PI / 180) * (angleDeg + 270)) % 360;
}
ctx.save();
const imgWAndH = 15;
ctx.translate(18 + imgWAndH / 2, imgWAndH / 2);
ctx.rotate(flightRotation);
ctx.drawImage(flightimage, -imgWAndH / 2, -imgWAndH / 2, imgWAndH, imgWAndH);
ctx.restore();
// -
if (index + 1 < props.allImageDataList.length) {
const afterItem = props.allImageDataList[index + 1];
let dLng = afterItem.lng - item.lng;
let dLat = afterItem.lat - item.lat;
// 使 atan2
let angleRad = Math.atan2(dLat, dLng);
let angleDeg = Cesium.Math.toDegrees(angleRad);
flightRotation = ((Math.PI / 180) * (90 - angleDeg + 360)) % 360;
flightMapRotation = ((Math.PI / 180) * (angleDeg + 270)) % 360;
}
ctx.save();
const imgWAndH = 15;
ctx.translate(18 + imgWAndH / 2, imgWAndH / 2);
ctx.rotate(flightRotation);
ctx.drawImage(flightimage, -imgWAndH / 2, -imgWAndH / 2, imgWAndH, imgWAndH);
ctx.restore();
// 1
ctx.save();
ctx.strokeStyle = '#ffffff';
ctx.lineWidth = 1;
ctx.strokeRect(1, 1, canvas.width - 2, canvas.height - 2);
const dataURL1 = canvas.toDataURL('image/png');
ctx.restore();
// 1
ctx.save();
ctx.strokeStyle = '#ffffff';
ctx.lineWidth = 1;
ctx.strokeRect(1, 1, canvas.width - 2, canvas.height - 2);
const dataURL1 = canvas.toDataURL('image/png');
ctx.restore();
// 2
ctx.strokeStyle = '#2d8cef';
ctx.lineWidth = 1;
ctx.strokeRect(1, 1, canvas.width - 2, canvas.height - 2);
const dataURL2 = canvas.toDataURL('image/png');
// 2
ctx.strokeStyle = '#2d8cef';
ctx.lineWidth = 1;
ctx.strokeRect(1, 1, canvas.width - 2, canvas.height - 2);
const dataURL2 = canvas.toDataURL('image/png');
//
let flightointGraphic = new mars3d.graphic.BillboardEntity({
id: item.id + '_flight',
position: [position[0], position[1], position[2]],
style: {
image: '/src/assets/images/flightoperation/mediaLibraryFlight.png',
clampToGround: false,
verticalOrigin: Cesium.VerticalOrigin.CENTER,
rotation: flightMapRotation,
},
hasEdit: false,
show: false,
});
// 线
let bottomImagePolylineGraphic = new mars3d.graphic.PolylineEntity({
id: item.id + '_polyline',
positions: [
Cesium.Cartesian3.fromDegrees(position[0], position[1], point.height),
Cesium.Cartesian3.fromDegrees(
position[0],
position[1],
point.height + (position[2] - point.height) / 10,
),
],
style: {
//
let flightointGraphic = new mars3d.graphic.BillboardEntity({
id: item.id + '_flight',
position: [position[0], position[1], position[2]],
style: {
image: '/mediaLibrary/mediaLibraryFlight.png',
clampToGround: false,
verticalOrigin: Cesium.VerticalOrigin.CENTER,
rotation: flightMapRotation,
label: {
text: `拍摄高度: ${item.relativeAltitude}`,
font_size: 16,
color: '#ffffff',
width: 1, // 线
clampToGround: false,
outline: true,
outlineWidth: 4,
outlineColor: '#000000',
verticalOrigin: Cesium.VerticalOrigin.TOP,
horizontalOrigin: Cesium.HorizontalOrigin.LEFT,
pixelOffset: [-10, -28],
// show: false,
},
hasEdit: false,
show: item.display == 1 ? true : false,
//
defaultPosition: position,
//
surfaceHeight: point.height,
});
//
let imageGraphic = new mars3d.graphic.BillboardEntity({
id: item.id + '_image',
position: [
},
hasEdit: false,
show: false,
});
// 线
let bottomImagePolylineGraphic = new mars3d.graphic.PolylineEntity({
id: item.id + '_polyline',
positions: [
Cesium.Cartesian3.fromDegrees(position[0], position[1], surfaceHeight),
Cesium.Cartesian3.fromDegrees(
position[0],
position[1],
point.height + (position[2] - point.height) / 10,
],
style: {
surfaceHeight + item.relativeAltitude / 10,
),
],
style: {
color: '#ffffff',
width: 1, // 线
clampToGround: false,
},
hasEdit: false,
show: item.display == 1 ? true : false,
//
defaultPosition: position,
//
surfaceHeight: surfaceHeight,
});
//
let imageGraphic = new mars3d.graphic.BillboardEntity({
id: item.id + '_image',
position: [
position[0],
position[1],
surfaceHeight + (position[2] - surfaceHeight) / 10,
],
style: {
image: dataURL1,
clampToGround: false,
scale: 1,
verticalOrigin: Cesium.VerticalOrigin.BOTTOM,
label: {
text: `${item.name}`,
font_size: 16,
color: '#ffffff',
outline: true,
outlineWidth: 4,
outlineColor: '#000000',
verticalOrigin: Cesium.VerticalOrigin.TOP,
horizontalOrigin: Cesium.HorizontalOrigin.LEFT,
pixelOffset: [-20, -60],
show: false,
},
},
hasEdit: false,
show: item.display == 1 ? true : false,
//
defaultImage: dataURL1,
//
chooseImage: dataURL2,
});
// mouseover
imageGraphic.on(mars3d.EventType.mouseOver, function () {
if (!props.nowShowImageData || props.nowShowImageData.id !== item.id) {
//
imageGraphic.setStyle({
image: dataURL2,
scale: 1.3,
label: {
show: true,
},
});
}
});
// mouseout
imageGraphic.on(mars3d.EventType.mouseOut, function () {
if (!props.nowShowImageData || props.nowShowImageData.id !== item.id) {
//
imageGraphic.setStyle({
image: dataURL1,
clampToGround: false,
scale: 1,
verticalOrigin: Cesium.VerticalOrigin.BOTTOM,
label: {
text: `${item.name}`,
font_size: 16,
color: '#ffffff',
outline: true,
outlineWidth: 4,
outlineColor: '#000000',
verticalOrigin: Cesium.VerticalOrigin.BOTTOM,
horizontalOrigin: Cesium.HorizontalOrigin.LEFT,
pixelOffset: [25, -5],
show: false,
},
},
hasEdit: false,
show: item.display == 1 ? true : false,
//
defaultImage: dataURL1,
//
chooseImage: dataURL2,
});
// mouseover
imageGraphic.on(mars3d.EventType.mouseOver, function () {
if (!props.nowShowImageData || props.nowShowImageData.id !== item.id) {
//
imageGraphic.setStyle({
image: dataURL2,
scale: 1.3,
label: {
show: true,
},
});
}
});
// mouseout
imageGraphic.on(mars3d.EventType.mouseOut, function () {
if (!props.nowShowImageData || props.nowShowImageData.id !== item.id) {
//
imageGraphic.setStyle({
image: dataURL1,
scale: 1,
label: {
show: false,
},
});
});
}
});
//
imageGraphic.on(mars3d.EventType.click, function () {
//
// if (props.nowShowImageData && props.nowShowImageData.id == item.id) {
// //
// imageRestoreDefault();
// emits('setNowShowImageData', {});
// } else
if (!props.nowShowImageData || props.nowShowImageData.id !== item.id) {
//
//
imageRestoreDefault();
//
// PolylineEntity
bottomImagePolylineGraphic.positions = [
Cesium.Cartesian3.fromDegrees(position[0], position[1], surfaceHeight),
Cesium.Cartesian3.fromDegrees(position[0], position[1], position[2]),
];
// PolylineEntity
bottomImagePolylineGraphic.setStyle({
color: '#2d8cf0',
});
//
flightointGraphic.show = true;
//
imageGraphic.setStyle({
image: dataURL2,
scale: 1.3,
label: {
show: true,
},
});
emits('setNowShowImageData', item);
}
});
//
graphicLayers.addGraphic(flightointGraphic);
// 线
graphicLayers.addGraphic(bottomImagePolylineGraphic);
//
graphicLayers.addGraphic(imageGraphic);
//
flightointGraphicData.push(flightointGraphic);
bottomImagePolylineGraphicData.push(bottomImagePolylineGraphic);
imageGraphicData.push(imageGraphic);
//
if (props.nowShowImageData && props.nowShowImageData.id) {
//
flightointGraphicData?.forEach((graphicLayer) => {
if (props.nowShowImageData.id + '_flight' == graphicLayer.options.id) {
graphicLayer.show = true;
}
});
//
imageGraphic.on(mars3d.EventType.click, function () {
//
// if (props.nowShowImageData && props.nowShowImageData.id == item.id) {
// //
// imageRestoreDefault();
// emits('setNowShowImageData', {});
// } else
if (!props.nowShowImageData || props.nowShowImageData.id !== item.id) {
//
//
imageRestoreDefault();
//
// PolylineEntity
bottomImagePolylineGraphic.positions = [
Cesium.Cartesian3.fromDegrees(position[0], position[1], point.height),
Cesium.Cartesian3.fromDegrees(position[0], position[1], position[2]),
// 线
bottomImagePolylineGraphicData?.forEach((graphicLayer) => {
if (props.nowShowImageData.id + '_polyline' == graphicLayer.options.id) {
let defaultPosition = graphicLayer.options.defaultPosition;
let surfaceHeight = graphicLayer.options.surfaceHeight;
graphicLayer.positions = [
Cesium.Cartesian3.fromDegrees(
defaultPosition[0],
defaultPosition[1],
surfaceHeight,
),
Cesium.Cartesian3.fromDegrees(
defaultPosition[0],
defaultPosition[1],
defaultPosition[2],
),
];
// PolylineEntity
bottomImagePolylineGraphic.setStyle({
graphicLayer.setStyle({
color: '#2d8cf0',
});
//
flightointGraphic.show = true;
//
imageGraphic.setStyle({
image: dataURL2,
}
});
//
imageGraphicData?.forEach((graphicLayer) => {
if (props.nowShowImageData.id + '_image' == graphicLayer.options.id) {
graphicLayer.setStyle({
image: graphicLayer.options.chooseImage,
scale: 1.3,
label: {
show: true,
},
});
emits('setNowShowImageData', item);
}
});
//
graphicLayers.addGraphic(flightointGraphic);
// 线
graphicLayers.addGraphic(bottomImagePolylineGraphic);
//
graphicLayers.addGraphic(imageGraphic);
//
flightointGraphicData.push(flightointGraphic);
bottomImagePolylineGraphicData.push(bottomImagePolylineGraphic);
imageGraphicData.push(imageGraphic);
//
if (props.nowShowImageData && props.nowShowImageData.id) {
//
flightointGraphicData?.forEach((graphicLayer) => {
if (props.nowShowImageData.id + '_flight' == graphicLayer.options.id) {
graphicLayer.show = true;
}
});
// 线
bottomImagePolylineGraphicData?.forEach((graphicLayer) => {
if (props.nowShowImageData.id + '_polyline' == graphicLayer.options.id) {
let defaultPosition = graphicLayer.options.defaultPosition;
let surfaceHeight = graphicLayer.options.surfaceHeight;
graphicLayer.positions = [
Cesium.Cartesian3.fromDegrees(
defaultPosition[0],
defaultPosition[1],
surfaceHeight,
),
Cesium.Cartesian3.fromDegrees(
defaultPosition[0],
defaultPosition[1],
defaultPosition[2],
),
];
graphicLayer.setStyle({
color: '#2d8cf0',
});
}
});
//
imageGraphicData?.forEach((graphicLayer) => {
if (props.nowShowImageData.id + '_image' == graphicLayer.options.id) {
graphicLayer.setStyle({
image: graphicLayer.options.chooseImage,
scale: 1.3,
label: {
show: true,
},
});
}
});
}
});
}
};
}
});

@ -85,8 +85,8 @@
map = new mars3d.Map(vChartRef.value, {
scene: {
center: {
lat: parseFloat(props.nowPreviewRecord.lat),
lng: parseFloat(props.nowPreviewRecord.lng),
lat: props.nowPreviewRecord.lat ? parseFloat(props.nowPreviewRecord.lat) : 35.134608,
lng: props.nowPreviewRecord.lng ? parseFloat(props.nowPreviewRecord.lng) : 118.29853,
alt: 8306.3,
heading: 360,
pitch: -45,
@ -294,11 +294,13 @@
map.addLayer(graphicLayers);
//
showAllImageDataList();
const position = Cesium.Cartesian3.fromDegrees(
parseFloat(props.nowPreviewRecord.lng),
parseFloat(props.nowPreviewRecord.lat),
);
map.flyToPoint(position);
if (props.nowPreviewRecord.lng && props.nowPreviewRecord.lat) {
const position = Cesium.Cartesian3.fromDegrees(
parseFloat(props.nowPreviewRecord.lng),
parseFloat(props.nowPreviewRecord.lat),
);
map.flyToPoint(position);
}
}
};
@ -316,7 +318,7 @@
bottomImagePolylineGraphicData = [];
props.previewRecordList.forEach((item, index) => {
if (item.lng && item.lat && item.absoluteAltitude) {
if (item.lng && item.lat && item.absoluteAltitude && item.relativeAltitude) {
const image = new Image();
image.crossOrigin = 'Anonymous';
if (item.minipic) {
@ -364,55 +366,51 @@
parseFloat(item.lat),
parseFloat(item.absoluteAltitude),
];
//
mars3d.PointUtil.getSurfaceHeight(
map.scene,
Cesium.Cartesian3.fromDegrees(position[0], position[1]),
).then((point) => {
// 线
let bottomImagePolylineGraphic = new mars3d.graphic.PolylineEntity({
id: item.id + '_polyline',
positions: [
Cesium.Cartesian3.fromDegrees(position[0], position[1], point.height),
Cesium.Cartesian3.fromDegrees(position[0], position[1], position[2]),
],
style: {
color: '#ffffff',
width: 1, // 线
clampToGround: false,
},
hasEdit: false,
});
//
let surfaceHeight = item.absoluteAltitude - item.relativeAltitude;
// 线
let bottomImagePolylineGraphic = new mars3d.graphic.PolylineEntity({
id: item.id + '_polyline',
positions: [
Cesium.Cartesian3.fromDegrees(position[0], position[1], surfaceHeight),
Cesium.Cartesian3.fromDegrees(position[0], position[1], position[2]),
],
style: {
color: '#ffffff',
width: 1, // 线
clampToGround: false,
},
hasEdit: false,
});
//
let imageGraphic = new mars3d.graphic.BillboardEntity({
id: item.id,
position: [position[0], position[1], position[2]],
style: {
image: item.id == props.nowPreviewRecord.id ? dataURL2 : dataURL1,
clampToGround: false,
scale: 1,
verticalOrigin: Cesium.VerticalOrigin.BOTTOM,
},
hasEdit: false,
//
defaultImage: dataURL1,
//
chooseImage: dataURL2,
});
//
imageGraphic.on(mars3d.EventType.click, function () {
if (props.nowPreviewRecord.id !== item.id) {
clickSetImage(item);
}
});
//
graphicLayers.addGraphic(bottomImagePolylineGraphic);
graphicLayers.addGraphic(imageGraphic);
//
bottomImagePolylineGraphicData.push(bottomImagePolylineGraphic);
imageGraphicData.push(imageGraphic);
//
let imageGraphic = new mars3d.graphic.BillboardEntity({
id: item.id,
position: [position[0], position[1], position[2]],
style: {
image: item.id == props.nowPreviewRecord.id ? dataURL2 : dataURL1,
clampToGround: false,
scale: 1,
verticalOrigin: Cesium.VerticalOrigin.BOTTOM,
},
hasEdit: false,
//
defaultImage: dataURL1,
//
chooseImage: dataURL2,
});
//
imageGraphic.on(mars3d.EventType.click, function () {
if (props.nowPreviewRecord.id !== item.id) {
clickSetImage(item);
}
});
//
graphicLayers.addGraphic(bottomImagePolylineGraphic);
graphicLayers.addGraphic(imageGraphic);
//
bottomImagePolylineGraphicData.push(bottomImagePolylineGraphic);
imageGraphicData.push(imageGraphic);
};
}
});

@ -397,7 +397,7 @@
:class="li.id == props.nowPreviewRecord.id ? 'bottom_div_choose' : 'bottom_div'"
>
<img
:src="VITE_GLOB_MEDIALIBRARY_IMAGE_URL + (li.minipic ? li.minipic : li.objectKey)"
:src="VITE_GLOB_MEDIALIBRARY_IMAGE_URL + li.minipic"
loading="lazy"
:width="60"
:height="35"

@ -21,19 +21,19 @@
<span class="infotitle">照片类型</span>
</a-col>
<a-col :span="17">
<span class="infovalue">{{ props.nowPreviewRecord.imgtype }} </span>
<span class="infovalue">{{ props.nowPreviewRecord.imgtype || '--' }} </span>
</a-col>
<a-col :span="7">
<span class="infotitle">任务名称</span>
</a-col>
<a-col :span="17">
<span class="infovalue">{{ props.nowPreviewRecord.taskname }} </span>
<span class="infovalue">{{ props.nowPreviewRecord.taskName || '--' }} </span>
</a-col>
<a-col :span="7">
<span class="infotitle">航线名称</span>
</a-col>
<a-col :span="17">
<span class="infovalue">{{ props.nowPreviewRecord.airlineName }} </span>
<span class="infovalue">{{ props.nowPreviewRecord.airLineName || '--' }} </span>
</a-col>
<a-col :span="7">
<span class="infotitle">照片分辨率</span>
@ -51,7 +51,7 @@
{{
props.nowPreviewRecord.size
? (props.nowPreviewRecord.size / 1024 / 1024).toFixed(2) + 'M'
: 0
: '--'
}}
</span>
</a-col>
@ -59,19 +59,19 @@
<span class="infotitle">拍摄飞机</span>
</a-col>
<a-col :span="17">
<span class="infovalue">{{ props.nowPreviewRecord.photographFeiji }} </span>
<span class="infovalue">{{ props.nowPreviewRecord.taskDronePortName || '--' }} </span>
</a-col>
<a-col :span="7">
<span class="infotitle">拍摄负载</span>
</a-col>
<a-col :span="17">
<span class="infovalue">{{ props.nowPreviewRecord.payloadName }} </span>
<span class="infovalue">{{ props.nowPreviewRecord.payloadModelKey || '--' }} </span>
</a-col>
<a-col :span="7">
<span class="infotitle">拍摄人员</span>
</a-col>
<a-col :span="17">
<span class="infovalue">{{ props.nowPreviewRecord.photographMan }} </span>
<span class="infovalue">{{ props.nowPreviewRecord.createUserName || '--' }}</span>
</a-col>
<a-col :span="7">
<span class="infotitle">拍摄时间</span>
@ -154,8 +154,8 @@
align-items: center;
justify-content: flex-start;
"
@mouseenter="showGraffitiNum = true"
@mouseleave="showGraffitiNum = false"
@mouseenter="showGraffitiNumFlag = true"
@mouseleave="showGraffitiNumFlag = false"
>
<div class="graffitiNum">
<EditOutlined style="color: #ffffff" />
@ -166,7 +166,7 @@
</span>
</div>
<div
v-if="showGraffitiNum"
v-if="showGraffitiNumFlag"
style="position: absolute; top: 36px; left: 5px; width: 60%; z-index: 1000"
:style="{
height: `${options.length * 30}px`,
@ -339,7 +339,7 @@
});
}
const showGraffitiNum = ref(false);
const showGraffitiNumFlag = ref(false);
const options = computed(() => {
if (props.nowPreviewRecord.graffitiJson) {
const map = {};
@ -378,6 +378,7 @@
color: white;
display: flex;
align-items: center;
margin-left: 7px;
}
.infoDiv {
position: relative;

@ -24,25 +24,19 @@
<span class="infotitle">任务名称</span>
</a-col>
<a-col :span="17">
<span class="infovalue">
{{ props.nowPreviewRecord.taskname ? props.nowPreviewRecord.taskname : '--' }}
</span>
<span class="infovalue">{{ props.nowPreviewRecord.taskName || '--' }} </span>
</a-col>
<a-col :span="7">
<span class="infotitle">航线名称</span>
</a-col>
<a-col :span="17">
<span class="infovalue">
{{ props.nowPreviewRecord.airlineName ? props.nowPreviewRecord.airlineName : '--' }}
</span>
<span class="infovalue">{{ props.nowPreviewRecord.taskAirLineName || '--' }} </span>
</a-col>
<a-col :span="7">
<span class="infotitle">视频时长</span>
</a-col>
<a-col :span="17">
<span class="infovalue">
{{ props.nowPreviewRecord.airlineName ? props.nowPreviewRecord.airlineName : '--' }}
</span>
<span class="infovalue">{{ taskAirLineName || '--' }} </span>
</a-col>
<a-col :span="7">
<span class="infotitle">视频分辨率</span>
@ -61,38 +55,26 @@
</a-col>
<a-col :span="17">
<span class="infovalue">
{{ props.nowPreviewRecord.size ? props.nowPreviewRecord.size : '--' }}
{{ props.nowPreviewRecord.size || '--' }}
</span>
</a-col>
<a-col :span="7">
<span class="infotitle">拍摄负载</span>
</a-col>
<a-col :span="17">
<span class="infovalue">
{{
props.nowPreviewRecord.photographNumber
? props.nowPreviewRecord.photographNumber
: '--'
}}
</span>
<span class="infovalue">{{ props.nowPreviewRecord.payloadModelKey || '--' }} </span>
</a-col>
<a-col :span="7">
<span class="infotitle">文件来源</span>
</a-col>
<a-col :span="17">
<span class="infovalue">
{{ props.nowPreviewRecord.photographMan ? props.nowPreviewRecord.photographMan : '--' }}
</span>
<span class="infovalue">{{ createUserName || '--' }}</span>
</a-col>
<a-col :span="7">
<span class="infotitle">拍摄时间</span>
</a-col>
<a-col :span="17">
<span class="infovalue">
{{
props.nowPreviewRecord.photographTime ? props.nowPreviewRecord.photographTime : '--'
}}
</span>
<span class="infovalue">{{ props.nowPreviewRecord.createTime }} </span>
</a-col>
<a-col :span="7">
<span class="infotitle">标签</span>
@ -285,6 +267,7 @@
color: white;
display: flex;
align-items: center;
margin-left: 7px;
}
.infoDiv {
position: relative;

@ -21,10 +21,7 @@ export default defineApplicationConfig({
//...
target: 'esnext',
commonjsOptions: {
include: [
'/node_modules|lib/',
'/node_modules|packages/'
], //这里记得把lib目录加进来否则生产打包会报错
include: /node_modules|lib/, //这里记得把lib目录加进来否则生产打包会报错
},
},

Loading…
Cancel
Save