fix: 修改智能安全帽和机械设备定位模块若干bug
This commit is contained in:
parent
d75501bf7d
commit
b98dff8772
BIN
src/assets/images/smartSafeHat2.png
Normal file
BIN
src/assets/images/smartSafeHat2.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.6 KiB |
@ -158,7 +158,7 @@
|
||||
</el-checkbox-group>
|
||||
</el-scrollbar>
|
||||
</div>
|
||||
<div v-else style="text-align: center; margin-top: 100px; color: #fff">暂无围栏</div>
|
||||
<div v-else style="text-align: center; margin-top: 65px; color: #fff">暂无围栏</div>
|
||||
</div>
|
||||
<!-- 创建围栏弹窗 -->
|
||||
<div class="fenceCreate" v-if="fenceCreateShow">
|
||||
@ -168,7 +168,7 @@
|
||||
</div>
|
||||
<!-- <div class="fence-title">创建围栏</div> -->
|
||||
<el-form size="medium" :model="addForm" ref="addFormRef" label-width="80px" :rules="formFenceRules">
|
||||
<div class="bigFormBox">
|
||||
<!-- <div class="bigFormBox">
|
||||
<div class="itemBox1">
|
||||
<div>围栏名称</div>
|
||||
<div><el-input v-model="addForm.fenceName" placeholder="请输入"></el-input></div>
|
||||
@ -201,40 +201,40 @@
|
||||
<div class="itemBox4" v-if="addForm.rangeType === 2">
|
||||
<div>围栏形状</div>
|
||||
<div>
|
||||
<!-- <div class="fence-shape">多边形</div> -->
|
||||
<div class="">多边形</div>
|
||||
</div>
|
||||
</div>
|
||||
</div> -->
|
||||
|
||||
<div style="margin-top: 15%">
|
||||
<el-form-item class="el-form-item__label" label="围栏名称" prop="fenceName">
|
||||
<el-input v-model="addForm.fenceName" placeholder="请输入"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="范围类型" prop="rangeType">
|
||||
<el-radio-group
|
||||
v-model="addForm.rangeType"
|
||||
style="display: flex; justify-content: space-between; padding-top: 0px; padding-right: 0px"
|
||||
@change="changeAreaType"
|
||||
>
|
||||
<el-radio :label="1">标准区域</el-radio>
|
||||
<el-radio :label="2">自定义</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="区域半径" prop="areaRadius" v-if="addForm.rangeType === 1">
|
||||
<el-input
|
||||
type="number"
|
||||
v-model="addForm.areaRadius"
|
||||
placeholder="请输入"
|
||||
:maxlength="5"
|
||||
@input="areaRadiusChange"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="围栏形状" prop="fenceShape" v-if="addForm.rangeType === 2">
|
||||
<div class="fence-shape">多边形</div>
|
||||
</el-form-item>
|
||||
</div>
|
||||
|
||||
<!-- <el-form-item class="el-form-item__label" label="围栏名称" prop="fenceName">
|
||||
<el-input v-model="addForm.fenceName" placeholder="请输入"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="范围类型" prop="rangeType">
|
||||
<el-radio-group
|
||||
v-model="addForm.rangeType"
|
||||
style="display: flex; justify-content: space-between; padding-top: 10px; padding-right: 10px"
|
||||
@change="changeAreaType"
|
||||
>
|
||||
<el-radio :label="1">标准区域</el-radio>
|
||||
<el-radio :label="2">自定义</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="区域半径" prop="areaRadius" v-if="addForm.rangeType === 1">
|
||||
<el-input
|
||||
type="number"
|
||||
v-model="addForm.areaRadius"
|
||||
placeholder="请输入"
|
||||
:maxlength="5"
|
||||
@input="areaRadiusChange"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="围栏形状" prop="fenceShape" v-if="addForm.rangeType === 2">
|
||||
<div class="fence-shape">多边形</div>
|
||||
</el-form-item> -->
|
||||
<div class="cFooter">
|
||||
<div class="tool tool1" @click="handleCancel">取消</div>
|
||||
<div class="tool tool1" @click="closeFenceCreate">取消</div>
|
||||
<div class="tool tool2" @click="submitFence(addFormRef)">保存</div>
|
||||
</div>
|
||||
</el-form>
|
||||
@ -366,6 +366,23 @@ let addForm = ref({
|
||||
projectSn: "",
|
||||
enterpriseId: ""
|
||||
});
|
||||
let formFenceRules = ref({
|
||||
fenceName: [
|
||||
{
|
||||
required: true,
|
||||
message: "必填",
|
||||
trigger: "blur"
|
||||
},
|
||||
{ min: 1, max: 20, message: "长度在 1 到 20 个字符", trigger: "blur" }
|
||||
], //
|
||||
areaRadius: [
|
||||
{
|
||||
required: true,
|
||||
message: "必填",
|
||||
trigger: "change"
|
||||
}
|
||||
]
|
||||
});
|
||||
let pagInfo = ref({
|
||||
pageNo: 1, //页数
|
||||
pageSize: 10, //条数
|
||||
@ -431,6 +448,24 @@ watch(choiceMonth, newVal => {
|
||||
});
|
||||
function handleCancel() {
|
||||
fenceCreateShow.value = false;
|
||||
addForm.value = {
|
||||
areaRadius: 100, //区域半径
|
||||
fenceName: "", //围栏名称
|
||||
addr: "",
|
||||
rangeType: 1,
|
||||
locationList: [
|
||||
{
|
||||
fenceId: 0,
|
||||
id: 0,
|
||||
latitude: "",
|
||||
longitude: "",
|
||||
sortNum: 0
|
||||
}
|
||||
],
|
||||
projectSn: "",
|
||||
enterpriseId: ""
|
||||
};
|
||||
exitEditFn();
|
||||
clearFn();
|
||||
}
|
||||
|
||||
@ -507,7 +542,7 @@ function deleteFenceInfo(idGroups) {
|
||||
});
|
||||
}
|
||||
const submitFence = async (formEL: FormInstance | undefined) => {
|
||||
if (locationList.value.length == 0) {
|
||||
if (locationList.value.length === 0) {
|
||||
ElMessage({
|
||||
showClose: true,
|
||||
message: "未设置围栏区域!",
|
||||
@ -710,20 +745,21 @@ function openFenceCreate() {
|
||||
// 关闭创建围栏弹窗
|
||||
function closeFenceCreate() {
|
||||
fenceCreateShow.value = false;
|
||||
let tempArr = [
|
||||
{
|
||||
fenceId: 0,
|
||||
id: 0,
|
||||
latitude: "",
|
||||
longitude: "",
|
||||
sortNum: 0
|
||||
}
|
||||
];
|
||||
addForm.value = {
|
||||
areaRadius: 100, //区域半径
|
||||
fenceName: "", //围栏名称
|
||||
addr: "",
|
||||
rangeType: 1,
|
||||
locationList: [
|
||||
{
|
||||
fenceId: 0,
|
||||
id: 0,
|
||||
latitude: "",
|
||||
longitude: "",
|
||||
sortNum: 0
|
||||
}
|
||||
],
|
||||
locationList: tempArr,
|
||||
projectSn: "",
|
||||
enterpriseId: ""
|
||||
};
|
||||
@ -1421,7 +1457,7 @@ function echoPersonMarker(item) {
|
||||
marker.emit("click", { target: marker });
|
||||
}
|
||||
}
|
||||
let address = "未知";
|
||||
let address = "<text style='color: darkred;font-weight:bolder'>未知</text>";
|
||||
AMap.plugin("AMap.Geocoder", function () {
|
||||
let geocoder = new AMap.Geocoder();
|
||||
|
||||
@ -1450,6 +1486,7 @@ function echoPersonMarker(item) {
|
||||
info.push('<p style="padding:7px;">设备名称: ' + item.equipmentName + "</p>");
|
||||
info.push('<p style="padding:7px;">最后更新时间: ' + item.updateTime + "</p>");
|
||||
info.push('<p style="padding:7px;">位置: ' + address + "</p>");
|
||||
info.push('<p style="padding:7px;">经纬度: ' + item.longitude + " | " + item.latitude + "</p>");
|
||||
|
||||
var infoWindow = new AMap.InfoWindow({
|
||||
offset: new AMap.Pixel(10, -30),
|
||||
@ -1536,7 +1573,7 @@ function echoPersonMarker(item) {
|
||||
background-size: 100% 100%;
|
||||
box-sizing: border-box;
|
||||
padding: 25px;
|
||||
width: 330px;
|
||||
width: 360px;
|
||||
height: 380px;
|
||||
left: 40px;
|
||||
top: 40px;
|
||||
@ -1563,6 +1600,12 @@ function echoPersonMarker(item) {
|
||||
color: rgba(255, 255, 255, 0.6);
|
||||
font-size: 18px;
|
||||
}
|
||||
:deep(.el-form-item__label) {
|
||||
color: #fff;
|
||||
}
|
||||
:deep(.el-radio__label) {
|
||||
color: #fff;
|
||||
}
|
||||
.cFooter {
|
||||
width: 70%;
|
||||
display: flex;
|
||||
@ -1905,6 +1948,16 @@ function echoPersonMarker(item) {
|
||||
margin-top: 1% !important;
|
||||
}
|
||||
}
|
||||
|
||||
:deep(.titltText) {
|
||||
margin: 0 0 0 0;
|
||||
height: 100%;
|
||||
margin-left: 0.08rem;
|
||||
margin-top: -0.03rem;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
letter-spacing: 0.01rem;
|
||||
}
|
||||
.wei-lan {
|
||||
.icon-off {
|
||||
position: absolute;
|
||||
|
||||
@ -17,7 +17,12 @@
|
||||
<el-form :inline="true" size="medium" :model="queryInfo" class="demo-form-inline" style="margin-left: 15px">
|
||||
<el-form-item>
|
||||
<el-select filterable v-model="queryInfo.devSn" placeholder="请选择或搜索" @change="devChange">
|
||||
<el-option v-for="(item, index) in nameOptions" :key="index" :label="item.label" :value="item.value"></el-option>
|
||||
<el-option
|
||||
v-for="(item, index) in nameOptions"
|
||||
:key="index"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
></el-option>
|
||||
<!-- <el-option v-for="(item, index) in devList" :key="index" :label="item.workerName" :value="item.devSn" ></el-option> -->
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
@ -70,7 +75,12 @@
|
||||
<el-form-item>
|
||||
<span style="color: #fff; margin-left: 25px; margin-right: 10px">人员名称</span>
|
||||
<el-select filterable v-model="queryInfo.devSn" placeholder="请选择或搜索" @change="devChange" clearable>
|
||||
<el-option v-for="(item, index) in nameOptions" :key="index" :label="item.label" :value="item.value"></el-option>
|
||||
<el-option
|
||||
v-for="(item, index) in nameOptions"
|
||||
:key="index"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
></el-option>
|
||||
<!-- <el-option v-for="(item, index) in devList" :key="index" :label="item.workerName" :value="item.workerInfoId" ></el-option> -->
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
@ -106,7 +116,7 @@
|
||||
<div style="width: 50%">{{ item.fenceName }}</div>
|
||||
<div style="width: 50%">{{ item.workerNum }}</div>
|
||||
</div>
|
||||
<div class="not-data" v-if="fenceList.length == 0">
|
||||
<div class="not-data" style="top: 20%" v-if="fenceList.length == 0">
|
||||
<img src="@/assets/images/noData.png" alt="" />
|
||||
<p>暂无数据</p>
|
||||
</div>
|
||||
@ -167,7 +177,7 @@
|
||||
</el-checkbox-group>
|
||||
</el-scrollbar>
|
||||
</div>
|
||||
<div v-else style="text-align: center; margin-top: 100px; color: #fff">暂无围栏</div>
|
||||
<div v-else style="text-align: center; margin-top: 65px; color: #fff">暂无围栏</div>
|
||||
</div>
|
||||
|
||||
<!-- 创建围栏弹窗 -->
|
||||
@ -178,7 +188,7 @@
|
||||
</div>
|
||||
<!-- <div class="fence-title">创建围栏</div> -->
|
||||
<el-form size="medium" :model="addForm" ref="addFormRef" label-width="80px" :rules="formFenceRules">
|
||||
<div class="bigFormBox">
|
||||
<!-- <div class="bigFormBox">
|
||||
<div class="itemBox1">
|
||||
<div>围栏名称</div>
|
||||
<div><el-input v-model="addForm.fenceName" placeholder="请输入"></el-input></div>
|
||||
@ -211,38 +221,40 @@
|
||||
<div class="itemBox4" v-if="addForm.rangeType === 2">
|
||||
<div>围栏形状</div>
|
||||
<div>
|
||||
<!-- <div class="fence-shape">多边形</div> -->
|
||||
<div class="">多边形</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- <el-form-item label="围栏名称" prop="fenceName">
|
||||
<el-input v-model="addForm.fenceName" placeholder="请输入"></el-input>
|
||||
</el-form-item>
|
||||
</div> -->
|
||||
<div style="margin-top: 15%">
|
||||
<el-form-item label="围栏名称" prop="fenceName">
|
||||
<el-input v-model="addForm.fenceName" placeholder="请输入"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="范围类型" prop="rangeType">
|
||||
<el-radio-group
|
||||
v-model="addForm.rangeType"
|
||||
style="display: flex; justify-content: space-between; padding-top: 10px; padding-right: 10px"
|
||||
@change="changeAreaType"
|
||||
>
|
||||
<el-radio :label="1">标准区域</el-radio>
|
||||
<el-radio :label="2">自定义</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="区域半径" prop="areaRadius" v-if="addForm.rangeType === 1">
|
||||
<el-input
|
||||
type="number"
|
||||
v-model="addForm.areaRadius"
|
||||
placeholder="请输入"
|
||||
:maxlength="5"
|
||||
@input="areaRadiusChange"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="围栏形状" prop="fenceShape" v-if="addForm.rangeType === 2">
|
||||
<div class="fence-shape">多边形</div>
|
||||
</el-form-item>
|
||||
<div class="create-footer">
|
||||
<el-form-item label="范围类型" prop="rangeType">
|
||||
<el-radio-group
|
||||
v-model="addForm.rangeType"
|
||||
style="display: flex; justify-content: space-between; padding-top: 0px; padding-right: 0px"
|
||||
@change="changeAreaType"
|
||||
>
|
||||
<el-radio :label="1">标准区域</el-radio>
|
||||
<el-radio :label="2">自定义</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="区域半径" prop="areaRadius" v-if="addForm.rangeType === 1">
|
||||
<el-input
|
||||
type="number"
|
||||
v-model="addForm.areaRadius"
|
||||
placeholder="请输入"
|
||||
:maxlength="5"
|
||||
@input="areaRadiusChange"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="围栏形状" prop="fenceShape" v-if="addForm.rangeType === 2">
|
||||
<div class="fence-shape">多边形</div>
|
||||
</el-form-item>
|
||||
</div>
|
||||
|
||||
<!-- <div class="create-footer">
|
||||
<el-button class="cancleBtn" @click="fenceCreateShow = false" icon="el-icon-circle-close" size="medium"
|
||||
>取消
|
||||
</el-button>
|
||||
@ -250,9 +262,9 @@
|
||||
>保存
|
||||
</el-button>
|
||||
</div> -->
|
||||
|
||||
|
||||
<div class="cFooter">
|
||||
<div class="tool tool1" @click="handleCancel">取消</div>
|
||||
<div class="tool tool1" @click="closeFenceCreate">取消</div>
|
||||
<div class="tool tool2" @click="submitFence(addFormRef)">保存</div>
|
||||
</div>
|
||||
</el-form>
|
||||
@ -348,6 +360,7 @@ import startIcon from "@/assets/images/carPosition/startIcon.png";
|
||||
import endIcon from "@/assets/images/carPosition/endIcon.png";
|
||||
import personOn from "@/assets/images/carPosition/personOn.png";
|
||||
import smartSafeHat from "@/assets/images/smartSafeHat.png";
|
||||
import smartSafeHat2 from "@/assets/images/smartSafeHat2.png";
|
||||
import { GlobalStore } from "@/stores";
|
||||
import { ElMessage, ElMessageBox } from "element-plus";
|
||||
import type { FormInstance, FormRules } from "element-plus";
|
||||
@ -508,7 +521,7 @@ watch(choiceMonth, newVal => {
|
||||
}
|
||||
});
|
||||
|
||||
function handleCancel(){
|
||||
function handleCancel() {
|
||||
fenceCreateShow.value = false;
|
||||
clearFn();
|
||||
}
|
||||
@ -1076,7 +1089,7 @@ function getCrewListData() {
|
||||
// });
|
||||
// nameOptions.value = nameOption.concat(carOption);
|
||||
nameOptions.value = nameOption.concat([]);
|
||||
|
||||
|
||||
devList.value = res.result;
|
||||
} else {
|
||||
ElMessage.error(res.message);
|
||||
@ -1375,6 +1388,7 @@ function trackMapInit(path: any, item: any) {
|
||||
info.push('<p style="padding:7px;">人员名称: ' + item.workerName + "</p>");
|
||||
info.push('<p style="padding:7px;">最后更新时间: ' + item.updateTime + "</p>");
|
||||
info.push('<p style="padding:7px;">位置: ' + address + "</p>");
|
||||
// info.push('<p style="padding:7px;">位置: ' + address + "</p>");
|
||||
var infoWindow = new AMap.InfoWindow({
|
||||
offset: new AMap.Pixel(30, -30),
|
||||
content: info.join("") //使用默认信息窗体框样式,显示信息内容
|
||||
@ -1404,11 +1418,15 @@ function initMap() {
|
||||
var autoOptions = {
|
||||
input: "tipinput"
|
||||
};
|
||||
let auto = new AMap.Autocomplete(autoOptions);
|
||||
placeSearch = new AMap.PlaceSearch({
|
||||
map: map
|
||||
}); //构造地点查询类
|
||||
AMap.event.addListener(auto, "select", select); //注册监听,当选中某条记录时会触发
|
||||
// >>>>>>>>>>>>>>>>>此部分代码会导致大屏页面跳转时产生窗口抖动<<<<<<<<<<<<<<<<<<<
|
||||
|
||||
// let auto = new AMap.Autocomplete(autoOptions);
|
||||
// placeSearch = new AMap.PlaceSearch({
|
||||
// map: map
|
||||
// }); //构造地点查询类
|
||||
// AMap.event.addListener(auto, "select", select); //注册监听,当选中某条记录时会触发
|
||||
|
||||
// >>>>>>>>>>>>>>>>>此部分代码会导致大屏页面跳转时产生窗口抖动<<<<<<<<<<<<<<<<<<<
|
||||
mouseTool = new AMap.MouseTool(map);
|
||||
mouseTool.on("draw", function (event) {
|
||||
// event.obj 为绘制出来的覆盖物对象
|
||||
@ -1726,13 +1744,13 @@ function echoPersonMarker(item) {
|
||||
position: lnglats[0],
|
||||
map: map,
|
||||
// icon: personOn // 自定义图标
|
||||
icon: smartSafeHat // 自定义图标
|
||||
icon: smartSafeHat2 // 自定义图标
|
||||
});
|
||||
marker.on("click", markerClick);
|
||||
marker.emit("click", { target: marker });
|
||||
}
|
||||
}
|
||||
let address = "未知";
|
||||
let address = "<text style='color: darkred;font-weight:bolder'>未知</text>";
|
||||
AMap.plugin("AMap.Geocoder", function () {
|
||||
let geocoder = new AMap.Geocoder();
|
||||
|
||||
@ -1764,6 +1782,7 @@ function echoPersonMarker(item) {
|
||||
info.push('<p style="padding:7px;">人员名称: ' + item.workerName + "</p>");
|
||||
info.push('<p style="padding:7px;">最后更新时间: ' + item.updateTime + "</p>");
|
||||
info.push('<p style="padding:7px;">位置: ' + address + "</p>");
|
||||
info.push('<p style="padding:7px;">经纬度: ' + item.longitude + " | " + item.latitude + "</p>");
|
||||
|
||||
var infoWindow = new AMap.InfoWindow({
|
||||
offset: new AMap.Pixel(10, -30),
|
||||
@ -1848,7 +1867,7 @@ function echoPersonMarker(item) {
|
||||
background-size: 100% 100%;
|
||||
box-sizing: border-box;
|
||||
padding: 25px;
|
||||
width: 330px;
|
||||
width: 360px;
|
||||
height: 380px;
|
||||
left: 40px;
|
||||
top: 40px;
|
||||
@ -1866,8 +1885,7 @@ function echoPersonMarker(item) {
|
||||
.create-footer {
|
||||
margin: 100px 0 0 50px;
|
||||
}
|
||||
}
|
||||
.close-icon {
|
||||
.close-icon {
|
||||
position: absolute;
|
||||
right: 0%;
|
||||
top: 0%;
|
||||
@ -1875,6 +1893,12 @@ function echoPersonMarker(item) {
|
||||
color: rgba(255, 255, 255, 0.6);
|
||||
font-size: 18px;
|
||||
}
|
||||
:deep(.el-form-item__label) {
|
||||
color: #fff;
|
||||
}
|
||||
:deep(.el-radio__label) {
|
||||
color: #fff;
|
||||
}
|
||||
.cFooter {
|
||||
width: 70%;
|
||||
display: flex;
|
||||
@ -1908,7 +1932,6 @@ function echoPersonMarker(item) {
|
||||
background-size: 100% 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.bigFormBox {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
@ -1998,6 +2021,7 @@ function echoPersonMarker(item) {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.fence-box {
|
||||
position: relative;
|
||||
@ -2275,6 +2299,15 @@ function echoPersonMarker(item) {
|
||||
margin-top: 1% !important;
|
||||
}
|
||||
}
|
||||
:deep(.titltText) {
|
||||
margin: 0 0 0 0;
|
||||
height: 100%;
|
||||
margin-left: 0.08rem;
|
||||
margin-top: -0.03rem;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
letter-spacing: 0.01rem;
|
||||
}
|
||||
.wei-lan {
|
||||
.icon-off {
|
||||
position: absolute;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user