|
|
|
|
@ -576,25 +576,25 @@
|
|
|
|
|
<template #reference>
|
|
|
|
|
<el-button style="margin-right: 16px">批量处理</el-button>
|
|
|
|
|
</template>
|
|
|
|
|
<el-button style="margin-right: 16px" @click="batchDisposal3">固定物</el-button>
|
|
|
|
|
<el-button style="margin-right: 16px" @click="batchShild3">固定物</el-button>
|
|
|
|
|
<el-button style="margin-right: 16px" @click="batchDel3">删除</el-button>
|
|
|
|
|
</el-popover>
|
|
|
|
|
</div>
|
|
|
|
|
<el-table ref="table4Ref" :data="tableData3" style="width: 100%">
|
|
|
|
|
<el-table-column type="selection" width="55"/>
|
|
|
|
|
<el-table-column label="序号" type="index" width="60"/>
|
|
|
|
|
<el-table-column prop="lon" label="目标经度" width="100"/>
|
|
|
|
|
<el-table-column prop="lat" label="目标纬度" width="100"/>
|
|
|
|
|
<el-table-column prop="longitude" label="目标经度" width="100"/>
|
|
|
|
|
<el-table-column prop="latitude" label="目标纬度" width="100"/>
|
|
|
|
|
<el-table-column prop="strength" label="强度信息" width="100"/>
|
|
|
|
|
<el-table-column label="处理方式" show-overflow-tooltip width="160" fixed="right">
|
|
|
|
|
<template #default="scope">
|
|
|
|
|
<el-button type="primary" link @click.stop="openHandleObstacleDialog2(scope)">处置</el-button>
|
|
|
|
|
<el-button type="primary" link @click.stop="openShildDialog2(scope)">修改</el-button>
|
|
|
|
|
<el-button type="primary" link @click.stop="openShildDialog3(scope)">固定物</el-button>
|
|
|
|
|
<el-button type="primary" link @click.stop="openHandleObstacleDialog3(scope)">修改</el-button>
|
|
|
|
|
<el-popconfirm
|
|
|
|
|
class="box-item"
|
|
|
|
|
title="确定删除这个点位吗?"
|
|
|
|
|
placement="top"
|
|
|
|
|
@confirm="delShildItem(scope)"
|
|
|
|
|
@confirm="delObstacleItem(scope)"
|
|
|
|
|
>
|
|
|
|
|
<template #reference>
|
|
|
|
|
<el-button type="primary" @click.stop link>删除</el-button>
|
|
|
|
|
@ -868,13 +868,82 @@
|
|
|
|
|
</el-form>
|
|
|
|
|
<template #footer>
|
|
|
|
|
<div class="dialog-footer">
|
|
|
|
|
<el-button @click="dialog2 = false">关闭</el-button>
|
|
|
|
|
<el-button @click="dialog3 = false">关闭</el-button>
|
|
|
|
|
<el-button type="primary" @click="handleObstacle2">
|
|
|
|
|
处理
|
|
|
|
|
</el-button>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
</el-dialog>
|
|
|
|
|
<el-dialog v-model="dialog4" title="处置障碍物" width="500">
|
|
|
|
|
<el-form :model="dialog4Form">
|
|
|
|
|
<el-form-item label="发现时间" label-width="120px">
|
|
|
|
|
<el-input v-model="dialog4Form.time" disabled autocomplete="off"/>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="处理信息描述" label-width="120px">
|
|
|
|
|
<el-input
|
|
|
|
|
v-model="dialog4Form.description"
|
|
|
|
|
style="width: 100%"
|
|
|
|
|
:rows="2"
|
|
|
|
|
type="textarea"
|
|
|
|
|
/>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="处理照片" label-width="120px">
|
|
|
|
|
<el-upload @click.stop="onSubmit"
|
|
|
|
|
ref="uploadRef"
|
|
|
|
|
:http-request="uploadFiles3"
|
|
|
|
|
:file-list="dialog4Form.fileList.concat({type:'camera'})"
|
|
|
|
|
list-type="picture-card">
|
|
|
|
|
|
|
|
|
|
<template #trigger>
|
|
|
|
|
<el-icon>
|
|
|
|
|
<Plus/>
|
|
|
|
|
</el-icon>
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<template #file="{ file }">
|
|
|
|
|
<div v-if="file.type !=='camera'">
|
|
|
|
|
<img class="el-upload-list__item-thumbnail" :src="file.url" alt=""/>
|
|
|
|
|
<span class="el-upload-list__item-actions">
|
|
|
|
|
<span
|
|
|
|
|
class="el-upload-list__item-preview"
|
|
|
|
|
@click="handlePictureCardPreview3(file)"
|
|
|
|
|
>
|
|
|
|
|
<el-icon><zoom-in/></el-icon>
|
|
|
|
|
</span>
|
|
|
|
|
<span
|
|
|
|
|
class="el-upload-list__item-delete"
|
|
|
|
|
@click="handleDownload3(file)"
|
|
|
|
|
>
|
|
|
|
|
<el-icon><Download/></el-icon>
|
|
|
|
|
</span>
|
|
|
|
|
<span
|
|
|
|
|
class="el-upload-list__item-delete"
|
|
|
|
|
@click="handleRemove3(file)"
|
|
|
|
|
>
|
|
|
|
|
<el-icon><Delete/></el-icon>
|
|
|
|
|
</span>
|
|
|
|
|
</span>
|
|
|
|
|
</div>
|
|
|
|
|
<div @click="openCamera3" v-if="file.type ==='camera'" style="border:none"
|
|
|
|
|
class="el-upload--picture-card">
|
|
|
|
|
<el-icon>
|
|
|
|
|
<Camera/>
|
|
|
|
|
</el-icon>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
</el-upload>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-form>
|
|
|
|
|
<template #footer>
|
|
|
|
|
<div class="dialog-footer">
|
|
|
|
|
<el-button @click="dialog4 = false">关闭</el-button>
|
|
|
|
|
<el-button type="primary" @click="handleObstacle3">
|
|
|
|
|
处理
|
|
|
|
|
</el-button>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
</el-dialog>
|
|
|
|
|
|
|
|
|
|
<el-dialog v-model="shildDialog">
|
|
|
|
|
<el-form :model="shildForm">
|
|
|
|
|
@ -939,6 +1008,27 @@
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
</el-dialog>
|
|
|
|
|
<el-dialog v-model="shildDialog3">
|
|
|
|
|
<el-form :model="shildForm3">
|
|
|
|
|
<el-form-item label="固定物名称" label-width="120px">
|
|
|
|
|
<el-input v-model="shildForm3.name" autocomplete="off"/>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="偏差值" label-width="120px">
|
|
|
|
|
<el-input v-model="shildForm3.deviation" autocomplete="off"/>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="屏蔽范围" label-width="120px">
|
|
|
|
|
<el-input v-model="shildForm3.shielding" autocomplete="off"/>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-form>
|
|
|
|
|
<template #footer>
|
|
|
|
|
<div class="dialog-footer">
|
|
|
|
|
<el-button @click="shildDialog3 = false">关闭</el-button>
|
|
|
|
|
<el-button type="primary" @click="addShildItem3">
|
|
|
|
|
确定
|
|
|
|
|
</el-button>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
</el-dialog>
|
|
|
|
|
|
|
|
|
|
<input
|
|
|
|
|
ref="cameraInput"
|
|
|
|
|
@ -964,6 +1054,14 @@
|
|
|
|
|
style="display: none"
|
|
|
|
|
@change="handleCameraChange2"
|
|
|
|
|
/>
|
|
|
|
|
<input
|
|
|
|
|
ref="cameraInput3"
|
|
|
|
|
type="file"
|
|
|
|
|
accept="image/*"
|
|
|
|
|
capture="camera"
|
|
|
|
|
style="display: none"
|
|
|
|
|
@change="handleCameraChange3"
|
|
|
|
|
/>
|
|
|
|
|
|
|
|
|
|
<el-dialog v-model="imgDialog">
|
|
|
|
|
<img width="100%" :src="dialogImageUrl" alt="Preview Image"/>
|
|
|
|
|
@ -1875,6 +1973,120 @@ const batchShild1 = () => {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 固定物模态框
|
|
|
|
|
const shildDialog3 = ref(false)
|
|
|
|
|
const shildForm3 = ref({})
|
|
|
|
|
// 打开固定物模态框
|
|
|
|
|
const openShildDialog3 = (e) => {
|
|
|
|
|
shildDialog3.value = true
|
|
|
|
|
shildForm3.value = {
|
|
|
|
|
lon: e.row.longitude,
|
|
|
|
|
lat: e.row.latitude,
|
|
|
|
|
strength: e.row.strength,
|
|
|
|
|
name: Math.random().toString().split('.')[1],
|
|
|
|
|
deviation: shieldInfoForm.value.deviation,
|
|
|
|
|
shielding: shieldInfoForm.value.shielding,
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
// 设置固定物
|
|
|
|
|
const addShildItem3 = () => {
|
|
|
|
|
addShildData(shildForm1.value).then(e => {
|
|
|
|
|
shildDialog3.value = false
|
|
|
|
|
shildForm3.value = {}
|
|
|
|
|
getShildTableList()
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
// 处置模态框
|
|
|
|
|
const dialog4 = ref(false)
|
|
|
|
|
const dialog4Form = ref({})
|
|
|
|
|
// 上传图片
|
|
|
|
|
const uploadFiles3 = async (e) => {
|
|
|
|
|
const res = await UpdateImage({files: [e.file]})
|
|
|
|
|
}
|
|
|
|
|
// 图片放大
|
|
|
|
|
const handlePictureCardPreview3 = (file) => {
|
|
|
|
|
dialogImageUrl.value = file.url
|
|
|
|
|
imgDialog.value = true
|
|
|
|
|
}
|
|
|
|
|
// 图片下载
|
|
|
|
|
const handleDownload3 = (file) => {
|
|
|
|
|
console.log(file)
|
|
|
|
|
}
|
|
|
|
|
// 图片删除
|
|
|
|
|
const handleRemove3 = (file) => {
|
|
|
|
|
console.log(file)
|
|
|
|
|
dialog4Form.value.fileList = dialog4Form.value.fileList.filter(e => e.url !== file.url)
|
|
|
|
|
}
|
|
|
|
|
// 拍照
|
|
|
|
|
const cameraInput3 = ref(null)
|
|
|
|
|
const openCamera3 = () => {
|
|
|
|
|
cameraInput3.value?.click()
|
|
|
|
|
}
|
|
|
|
|
const handleCameraChange3 = (e) => {
|
|
|
|
|
const file = e.target.files[0]
|
|
|
|
|
if (!file) return
|
|
|
|
|
const url = URL.createObjectURL(file)
|
|
|
|
|
UpdateImage({files: [file]})
|
|
|
|
|
dialog4Form.fileList.value.push({
|
|
|
|
|
name: file.name,
|
|
|
|
|
url,
|
|
|
|
|
raw: file
|
|
|
|
|
})
|
|
|
|
|
// 重置 input
|
|
|
|
|
e.target.value = ''
|
|
|
|
|
}
|
|
|
|
|
// 删除
|
|
|
|
|
const delObstacleItem = (e) => {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
// 打开处置模态框
|
|
|
|
|
const openHandleObstacleDialog3 = (e) => {
|
|
|
|
|
dialog4.value = true
|
|
|
|
|
dialog4Form.value = {
|
|
|
|
|
time: e.row.time,
|
|
|
|
|
longitude: e.row.longitude,
|
|
|
|
|
latitude: e.row.latitude,
|
|
|
|
|
strength: e.row.strength,
|
|
|
|
|
fileList: e.row.fileList,
|
|
|
|
|
description: e.row.description,
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
// 确定处理
|
|
|
|
|
const handleObstacle3 = () => {
|
|
|
|
|
InserDealObstacleModel({
|
|
|
|
|
longitude: dialog4Form.value.longitude,
|
|
|
|
|
latitude: dialog4Form.value.latitude,
|
|
|
|
|
strength: dialog4Form.value.strength,
|
|
|
|
|
files: dialog4Form.value.fileList.map(e => e.url),
|
|
|
|
|
findTime: dialog4Form.value.time || '',
|
|
|
|
|
description: dialog4Form.value.description
|
|
|
|
|
}).then(e => {
|
|
|
|
|
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
// 批量处理
|
|
|
|
|
const table4Ref = ref()
|
|
|
|
|
// 批量删除
|
|
|
|
|
const batchDel3 = () => {
|
|
|
|
|
}
|
|
|
|
|
// 批量固定
|
|
|
|
|
const batchShild3 = () => {
|
|
|
|
|
let datas = table4Ref.value.getSelectionRows()
|
|
|
|
|
datas.forEach((row) => {
|
|
|
|
|
addShildData({
|
|
|
|
|
lon: row.longitude,
|
|
|
|
|
lat: row.latitude,
|
|
|
|
|
strength: row.strength,
|
|
|
|
|
name: Math.random().toString().split('.')[1],
|
|
|
|
|
deviation: shieldInfoForm.value.deviation,
|
|
|
|
|
shielding: shieldInfoForm.value.shielding,
|
|
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
getShildTableList()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 获取固定物列表
|
|
|
|
|
const getShildTableList = () => {
|
|
|
|
|
getShildList({
|
|
|
|
|
|