fix : 修复预览隧道时切换报错bug

This commit is contained in:
2024-09-02 15:45:01 +08:00
parent 02194afce4
commit 00a04d0d79
4 changed files with 100 additions and 225 deletions

View File

@@ -8,16 +8,6 @@
<div class="site-name">
{{ siteName }}
</div>
<!-- <div class="model-change">-->
<!-- <div class="model" @click="clickModel=1;showNull=false">-->
<!-- <div class="card-bg"></div>-->
<!-- <span>卡片模式</span>-->
<!-- </div>-->
<!-- <div class="model" @click="clickModel=2;getSiteImg()">-->
<!-- <div class="img-bg"></div>-->
<!-- <span>图纸导航</span>-->
<!-- </div>-->
<!-- </div>-->
<tunnel-title/>
<div class="all-del-btn" v-if="showOperation">
<div class="all-btn" style=" margin-right: 40px;" v-if="showAddIcon" @click="handleAdd">
@@ -31,7 +21,7 @@
</div>
</div>
</div>
<div class="box-content" v-if="clickModel===1">
<div class="box-content" >
<div class="site-box" v-for="item in tunnelList" :key="item.tunnelId">
<div class="top">
<span>{{ item.tunnelName }}</span>
@@ -48,17 +38,9 @@
<div class="edit-icon"></div>
<div>去模拟</div>
</div>
<!-- <div class="edit-btn" @click.stop="handleEditDevice(item.tunnelId)">-->
<!-- <div class="edit-icon-two"></div>-->
<!-- <div>设备管理</div>-->
<!-- </div>-->
</div>
</div>
<div class="tunnel-right">
<div>
<!-- <div class="fan-icon"></div>-->
<!-- <span>风机异常</span>-->
</div>
<div class="icons-block">
<div v-for="equItem in iconsList" :key="item.icon" class="icon-text">
<div :style="{ backgroundImage: 'url(' +getImageUrl(equItem.icon)+')' }" class="icon"></div>
@@ -68,26 +50,11 @@
</div>
</div>
</div>
<!--/* <div style="width: 925px; height: 0" v-for="n in 8" :key="n"></div>*/-->
<div class="site-box add-box" @click="handleAdd" v-if="showOperation">
<div class="add-icon"></div>
<div style="cursor: pointer">添加隧道</div>
</div>
</div>
<div v-else>
<div v-if="showNull" class="showNull">
暂无图纸~ 请前往站点管理上传图纸~
</div>
<div class="img-box" v-else>
<!-- @/assets/images/tunnel/img.png-->
<!-- <img :src="'data:image/png;base64,'+siteImage" style="width:3500px;height:1789px" id="imgModel" usemap="#image"-->
<!-- alt="" @click="clickHandler">-->
<map name="image" id="image">
<area shape="poly" v-for="(item,index) in coordsList" :coords="item.coords" :key="index" alt=""
:title="item.tunnelId+'隧道'" :href="'/' + item.tunnelId + '/' + siteId" @click="clickHot(item.tunnelId)">
</map>
</div>
</div>
<el-dialog :close-on-click-modal="false" v-model="isVisited" width="1958px">
<div class="siteId">
<span>{{ title }}</span>
@@ -99,94 +66,18 @@
<el-form-item label="隧道简称" prop="tunnelAlias">
<el-input v-model="form.tunnelAlias" placeholder="请输入隧道简称"/>
</el-form-item>
<el-form-item label="序列号前缀" prop="serialNumberPrefix">
<el-input v-model="form.serialNumberPrefix" placeholder="请输入序列号前缀"/>
</el-form-item>
<!-- <el-form-item label="序列号1" prop="serialNumber">-->
<!-- <el-input v-model="form.serialNumber" placeholder="请输入序列号1"/>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="序列号2" prop="serialNumberOne">-->
<!-- <el-input v-model="form.serialNumberOne" placeholder="请输入序列号2"/>-->
<!-- </el-form-item>-->
<el-form-item label="PLC序列号" prop="serialNumber">
<el-input v-model="form.serialNumber" placeholder="请输入PLC序列号"/>
</el-form-item>
<div style="display: flex;flex-direction: column">
<div style="display:flex;align-items:center;justify-content:flex-end;font-size: 38px;color: #08B7B8;">
<span style="cursor: pointer;" @click="addSerialNumber">添加序列号</span>
<el-icon size="74" color="#08B7B8" style="margin-left: 20px;cursor: pointer;" @click="addSerialNumber">
<CirclePlus/>
</el-icon>
</div>
<div v-for="(item,index) in serialNumberList" :key="index">
<el-form-item label="序列号名称">
<div style="flex: 1;display: flex;">
<el-input v-model="item.serialNumberType" placeholder="请输入序列号名称"/>
<!-- <el-icon size="74" color="#08B7B8" style="margin-left: 20px;cursor: pointer" @click="addSerialNumber"-->
<!-- v-if="index===0">-->
<!-- <CirclePlus/>-->
<!-- </el-icon>-->
<el-icon size="74" color="#08B7B8" style="margin-left: 20px;cursor: pointer"
@click="delSerialNumber(index)">
<Remove/>
</el-icon>
</div>
</el-form-item>
<el-form-item :label="item.serialNumberType+'序列号'" class="serialNumber-name-overflow-hidden">
<el-input v-model="item.serialNumber" :placeholder="'请输入'+item.serialNumberType+'序列号'"
style="margin-right: 94px"/>
</el-form-item>
</div>
</div>
<!-- <div style="display: flex;flex-direction: column">-->
<!-- <div v-for="(item,index) in serialNumberList" :key="index" >-->
<!-- <el-form-item :label="'序列号'+(index+2)">-->
<!-- <div style="flex: 1;display: flex;">-->
<!-- <el-input v-model="item.serialNumber" :placeholder="'请输入序列号'+(index+2)" />-->
<!-- <el-icon size="74" color="#08B7B8" style="margin-left: 20px;cursor: pointer" @click="addSerialNumber" v-if="index===0">-->
<!-- <CirclePlus/>-->
<!-- </el-icon>-->
<!-- <el-icon v-else size="74" color="#08B7B8" style="margin-left: 20px;cursor: pointer" @click="delSerialNumber(index)" >-->
<!-- <Remove/>-->
<!-- </el-icon>-->
<!-- </div>-->
<!-- </el-form-item>-->
<!-- </div>-->
<!-- </div>-->
<el-form-item label="隧道长度" prop="totalLength">
<el-input type="number" v-model="form.totalLength" placeholder="请输入隧道长度"/>
</el-form-item>
<el-form-item label="施工长度" prop="constructionLength">
<el-input type="number" v-model="form.constructionLength" placeholder="请输入施工长度"/>
</el-form-item>
<el-form-item label="基准频率" prop="referenceFrequency">
<el-input type="number" v-model="form.referenceFrequency" placeholder="请输入基准频率"/>
<el-form-item label="风机初始频率" prop="fanInitialFrequency">
<el-input type="number" v-model="form.fanInitialFrequency" placeholder="请输入风机初始频率"/>
</el-form-item>
<el-form-item label="爆破量级" prop="burstLevel">
<el-input type="number" v-model="form.burstLevel" placeholder="请输入爆破量级"/>
</el-form-item>
<div style="display: flex">
<el-form-item label="升频时间(分钟)" prop="upTime" label-width="300px">
<el-input-number v-model="form.upTime" :min="0" :max="60"/>
</el-form-item>
<el-form-item label="升频率" prop="upFrequency">
<el-input type="number" v-model="form.upFrequency" placeholder="请输入升频率">
<template #suffix>
<span>Hz</span>
</template>
</el-input>
</el-form-item>
</div>
<div style="display: flex">
<el-form-item label="降频时间(分钟)" prop="dropTime" label-width="300px">
<el-input-number v-model="form.dropTime" :min="0" :max="60"/>
</el-form-item>
<el-form-item label="降频率" prop="dropFrequency">
<el-input type="number" v-model="form.dropFrequency" placeholder="请输入降频率">
<template #suffix>
<span>Hz</span>
</template>
</el-input>
</el-form-item>
</div>
<el-form-item label="是否默认">
<el-radio-group v-model="form.isDefault">
<el-radio :label="true"></el-radio>
@@ -248,48 +139,13 @@ const type = reactive(params.type)
const formRules = ref({
tunnelName: [{required: true, message: '请输入隧道名称', trigger: ['blur', 'change']}],
tunnelAlias: [{required: true, message: '请输入隧道简称', trigger: ['blur', 'change']}],
serialNumberPrefix: [
{required: true, message: '请输入序列号前缀', trigger: ['blur', 'change']},
{validator: validateNumber, message: '请输入英文、数字、英文数字组合的序列号前缀', trigger: ['blur', 'change']},
{min: 14, max: 14, message: '隧道序列号前缀长度为14位', trigger: ['blur', 'change']},
],
serialNumber: [
{required: true, message: '请输入PLC序列号', trigger: ['blur', 'change']},
{validator: validateNumber, message: '请输入英文、数字、英文数字组合的PLC序列号', trigger: ['blur', 'change']},
{min: 16, max: 16, message: '隧道PLC序列号长度为16位', trigger: ['blur', 'change']},
{validator: validateSerialNumberPrefix, message: '同一隧道的序列号前缀需相同', trigger: ['blur', 'change']}
],
serialNumberOne: [
// {required: true, message: '请输入序列号2', trigger: ['blur', 'change']},
// {validator: validateNumber, message: '请输入英文、数字、英文数字组合的序列号2', trigger: ['blur', 'change']},
// { min:16,max:16,message: '隧道序列号2长度为16位',trigger: ['blur', 'change']},
// {validator: validateSerialNumberOnePrefix, message: '同一隧道的序列号前缀需相同', trigger: ['blur', 'change']}
],
totalLength: [{required: true, message: '请输入隧道长度', trigger: ['blur', 'change']}],
constructionLength: [{required: true, message: '请输入施工长度', trigger: ['blur', 'change']}],
referenceFrequency: [{required: true, message: '请输入基准频率', trigger: ['blur', 'change']}],
upTime: [{required: true, message: '请选择升频时间', trigger: ['blur', 'change']}],
upFrequency: [{required: true, message: '请输入升频率', trigger: ['blur', 'change']}],
dropTime: [{required: true, message: '请选择降频时间', trigger: ['blur', 'change']}],
dropFrequency: [{required: true, message: '请输入降频率', trigger: ['blur', 'change']}]
})
let clickModel = ref(1)
const showFirst = ref(false)
const showOperation = ref(true)
const formInstance = ref()
const tunnelList = ref([])
const coordsList = ref([
{
tunnelId: 1,
coords: '767,1117,793,1182,2379,682,2437,454,2349,505,2298,666,2221,531,2153,578,2212,692,765,1126',
}, {
tunnelId: 1,
coords: '863,1475,1135,1494,2321,1078,3023,801,3214,703,3288,752,2300,1154,1560,1438,1170,1554,844,1529',
}, {
tunnelId: 94,
coords: '1181,1364,2105,622,2005,589,1116,1324'
}
])
const iconsList = ref([
{
icon: 'sd_icon_fj.png',
@@ -370,7 +226,7 @@ const total = ref(0);
onMounted(() => {
showOperation.value = localStorage.getItem('roleKey') !== 'tunnel_admin';
})
const handleGoToSimulateTunnel=(tunnelId)=>{
const handleGoToSimulateTunnel = (tunnelId) => {
router.push('/simulate/' + tunnelId)
}
const addSerialNumber = () => {