修复 RangeError: Invalid array length

This commit is contained in:
hym 2024-09-29 14:55:53 +08:00
parent b97f5c597f
commit 54c0b11ab2
2 changed files with 121 additions and 136 deletions

View File

@ -5,28 +5,12 @@
<div class="left1"> <div class="left1">
<div class="xiala"> <div class="xiala">
<el-select v-model="searchTypeValue" placeholder=""> <el-select v-model="searchTypeValue" placeholder="">
<el-option <el-option v-for="(item, index) in searchType" :key="index" :label="item" :value="item" />
v-for="(item, index) in searchType"
:key="index"
:label="item"
:value="item"
/>
</el-select> </el-select>
</div> </div>
<el-input v-model="searchValue" placeholder="" /> <el-input v-model="searchValue" placeholder="" />
<el-button <el-button class="sousuo" type="primary" icon="el-icon-search" @click="getSearch" />
class="sousuo" <el-button v-if="menuShow" class="caidan" type="default" icon="el-icon-s-operation" @click="openDialog" />
type="primary"
icon="el-icon-search"
@click="getSearch"
/>
<el-button
v-if="menuShow"
class="caidan"
type="default"
icon="el-icon-s-operation"
@click="openDialog"
/>
</div> </div>
<div class="left3"> <div class="left3">
<el-radio-group v-model="radio"> <el-radio-group v-model="radio">
@ -35,19 +19,15 @@
</el-radio-group> </el-radio-group>
</div> </div>
<div class="left4" v-if="radio == '数据样品集'"> <div class="left4" v-if="radio == '数据样品集'">
<div v-for="(item,index) in dataList" :key="index" class="left4_1" @click="openList(item)"> <div v-for="(item, index) in dataList" :key="index" class="left4_1" @click="openList(item)">
<div class="left4_top"> <div class="left4_top">
<p>{{ item.dataset_name }} <span class="mileage">{{item.file_total}}</span></p> <p>{{ item.dataset_name }} <span class="mileage">{{ item.file_total }}</span></p>
<span class="org">{{ item.create_time }}</span> <span class="org">{{ item.create_time }}</span>
</div> </div>
<ul v-if="currenId == item.tsy_id && fold"> <ul v-if="currenId == item.tsy_id && fold">
<li <li :class="sample.tsy_id == currenSample ? 'bg-color' : ''" class="sample"
:class="sample.tsy_id == currenSample ? 'bg-color' : ''" v-for="(sample, i) in item.sampleArray" :key="i" @click.stop="onSample(sample)">{{ sample.sample_name }}
class="sample" </li>
v-for="(sample, i) in item.sampleArray"
:key="i"
@click.stop="onSample(sample)"
>{{sample.sample_name}}</li>
</ul> </ul>
<div class="left4_list"> <div class="left4_list">
<div class="list1"> <div class="list1">
@ -88,9 +68,9 @@
</div> </div>
</div> </div>
<div class="left4" v-if="radio == '航次'"> <div class="left4" v-if="radio == '航次'">
<div v-for="(item,index) in dataList" :key="index" class="left4_1" @click="turnDeatilPage(item)"> <div v-for="(item, index) in dataList" :key="index" class="left4_1" @click="turnDeatilPage(item)">
<div class="left4_top"> <div class="left4_top">
<p>{{ item.voyage_name }} <span class="mileage">{{item.voyage_mileage}}海里</span></p> <p>{{ item.voyage_name }} <span class="mileage">{{ item.voyage_mileage }}海里</span></p>
<span class="org">{{ item.funding_org }}</span> <span class="org">{{ item.funding_org }}</span>
</div> </div>
<div class="left4_list"> <div class="left4_list">
@ -105,12 +85,12 @@
<div class="list1"> <div class="list1">
<p>离港日期</p> <p>离港日期</p>
<span>{{ item.voyage_start_date.slice(0,10) }}</span> <span>{{ item.voyage_start_date.slice(0, 10) }}</span>
</div> </div>
<div class="list1"> <div class="list1">
<p>返港日期</p> <p>返港日期</p>
<span>{{ item.voyage_end_date.slice(0,10) }}</span> <span>{{ item.voyage_end_date.slice(0, 10) }}</span>
</div> </div>
<div class="list1"> <div class="list1">
@ -139,24 +119,22 @@
</div> </div>
</div> </div>
<!-- 航次名称弹窗--> <!-- 航次名称弹窗-->
<el-dialog <el-dialog title="请选择航次" :visible.sync="dialog1" width="1000px" :before-close="handleClose1">
title="请选择航次" <el-table ref="tableData1" stripe border :data="tableData1" @selection-change="handleSelectionChange"
:visible.sync="dialog1" :header-cell-style="{ background: '#dddfe6', color: '#555960', textAlign: 'center' }"
width="1000px" :cell-style="{ textAlign: 'center' }">
:before-close="handleClose1"> <el-table-column type="index" label="#" width="50" />
<el-table ref="tableData1" stripe border :data="tableData1" @selection-change="handleSelectionChange" :header-cell-style="{ background: '#dddfe6',color: '#555960',textAlign: 'center' }" :cell-style="{ textAlign: 'center' }">
<el-table-column type="index" label="#" width="50"/>
<el-table-column type="selection" width="50" align="center" /> <el-table-column type="selection" width="50" align="center" />
<el-table-column prop="voyage_name" label="航次名称" /> <el-table-column prop="voyage_name" label="航次名称" />
<el-table-column prop="ship_name" label="科考船舶" /> <el-table-column prop="ship_name" label="科考船舶" />
<el-table-column prop="voyage_start_date" label="离岗日期"> <el-table-column prop="voyage_start_date" label="离岗日期">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ scope.row.voyage_start_date.slice(0,10) }}</span> <span>{{ scope.row.voyage_start_date.slice(0, 10) }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="voyage_end_date" label="返岗日期"> <el-table-column prop="voyage_end_date" label="返岗日期">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ scope.row.voyage_end_date.slice(0,10) }}</span> <span>{{ scope.row.voyage_end_date.slice(0, 10) }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="voyage_officer" label="首席" /> <el-table-column prop="voyage_officer" label="首席" />
@ -165,26 +143,17 @@
<el-table-column prop="funding_code" label="资助编号" /> <el-table-column prop="funding_code" label="资助编号" />
</el-table> </el-table>
<div class="pagination-box"> <div class="pagination-box">
<el-pagination <el-pagination background :page-sizes="[10, 20, 30]" :page-size="params1.limit"
background layout="total, sizes, prev, pager, next, jumper" :total="total1" :current-page="pageNum1"
:page-sizes="[10, 20, 30]" @size-change="handleSizeChange1" @current-change="handleCurrentChange1" />
:page-size="params1.limit"
layout="total, sizes, prev, pager, next, jumper"
:total="total1"
:current-page="pageNum1"
@size-change="handleSizeChange1"
@current-change="handleCurrentChange1"
/>
</div> </div>
</el-dialog> </el-dialog>
<!-- 平台类型弹窗--> <!-- 平台类型弹窗-->
<el-dialog <el-dialog title="请选择平台" :visible.sync="dialog2" width="1200px" :before-close="handleClose2">
title="请选择平台" <el-table ref="tableData2" stripe border :data="tableData2" @selection-change="handleSelectionChange"
:visible.sync="dialog2" :header-cell-style="{ background: '#dddfe6', color: '#555960', textAlign: 'center' }"
width="1200px" :cell-style="{ textAlign: 'center' }">
:before-close="handleClose2"> <el-table-column type="index" label="#" width="50" />
<el-table ref="tableData2" stripe border :data="tableData2" @selection-change="handleSelectionChange" :header-cell-style="{ background: '#dddfe6',color: '#555960',textAlign: 'center' }" :cell-style="{ textAlign: 'center' }">
<el-table-column type="index" label="#" width="50"/>
<el-table-column type="selection" width="50" align="center" /> <el-table-column type="selection" width="50" align="center" />
<el-table-column prop="platform_name" label="平台类型名称" /> <el-table-column prop="platform_name" label="平台类型名称" />
<el-table-column prop="platform_eng" label="英文类型名称" /> <el-table-column prop="platform_eng" label="英文类型名称" />
@ -194,26 +163,17 @@
<el-table-column prop="create_time" label="创建时间" /> <el-table-column prop="create_time" label="创建时间" />
</el-table> </el-table>
<div class="pagination-box"> <div class="pagination-box">
<el-pagination <el-pagination background :page-sizes="[10, 20, 30]" :page-size="params2.limit"
background layout="total, sizes, prev, pager, next, jumper" :total="total2" :current-page="pageNum2"
:page-sizes="[10, 20, 30]" @size-change="handleSizeChange2" @current-change="handleCurrentChange2" />
:page-size="params2.limit"
layout="total, sizes, prev, pager, next, jumper"
:total="total2"
:current-page="pageNum2"
@size-change="handleSizeChange2"
@current-change="handleCurrentChange2"
/>
</div> </div>
</el-dialog> </el-dialog>
<!-- 设备类型弹窗--> <!-- 设备类型弹窗-->
<el-dialog <el-dialog title="请选择设备" :visible.sync="dialog3" width="1200px" :before-close="handleClose3">
title="请选择设备" <el-table ref="tableData3" stripe border :data="tableData3" @selection-change="handleSelectionChange"
:visible.sync="dialog3" :header-cell-style="{ background: '#dddfe6', color: '#555960', textAlign: 'center' }"
width="1200px" :cell-style="{ textAlign: 'center' }">
:before-close="handleClose3"> <el-table-column type="index" label="#" width="50" />
<el-table ref="tableData3" stripe border :data="tableData3" @selection-change="handleSelectionChange" :header-cell-style="{ background: '#dddfe6',color: '#555960',textAlign: 'center' }" :cell-style="{ textAlign: 'center' }">
<el-table-column type="index" label="#" width="50"/>
<el-table-column type="selection" width="50" align="center" /> <el-table-column type="selection" width="50" align="center" />
<el-table-column prop="equipment_name" label="设备类型名称" width="300" /> <el-table-column prop="equipment_name" label="设备类型名称" width="300" />
<el-table-column prop="equipment_eng" label="英文名称" width="350" /> <el-table-column prop="equipment_eng" label="英文名称" width="350" />
@ -223,26 +183,17 @@
<el-table-column prop="create_time" label="创建时间" width="160" /> <el-table-column prop="create_time" label="创建时间" width="160" />
</el-table> </el-table>
<div class="pagination-box"> <div class="pagination-box">
<el-pagination <el-pagination background :page-sizes="[10, 20, 30]" :page-size="params3.limit"
background layout="total, sizes, prev, pager, next, jumper" :total="total3" :current-page="pageNum3"
:page-sizes="[10, 20, 30]" @size-change="handleSizeChange3" @current-change="handleCurrentChange3" />
:page-size="params3.limit"
layout="total, sizes, prev, pager, next, jumper"
:total="total3"
:current-page="pageNum3"
@size-change="handleSizeChange3"
@current-change="handleCurrentChange3"
/>
</div> </div>
</el-dialog> </el-dialog>
<!-- 数据样品类型弹窗--> <!-- 数据样品类型弹窗-->
<el-dialog <el-dialog title="请选择数据样品类型" :visible.sync="dialog4" width="1200px" :before-close="handleClose4">
title="请选择数据样品类型" <el-table ref="tableData4" stripe border :data="tableData4" @selection-change="handleSelectionChange"
:visible.sync="dialog4" :header-cell-style="{ background: '#dddfe6', color: '#555960', textAlign: 'center' }"
width="1200px" :cell-style="{ textAlign: 'center' }">
:before-close="handleClose4"> <el-table-column type="index" label="#" width="50" />
<el-table ref="tableData4" stripe border :data="tableData4" @selection-change="handleSelectionChange" :header-cell-style="{ background: '#dddfe6',color: '#555960',textAlign: 'center' }" :cell-style="{ textAlign: 'center' }">
<el-table-column type="index" label="#" width="50"/>
<el-table-column type="selection" width="50" align="center" /> <el-table-column type="selection" width="50" align="center" />
<el-table-column prop="data_name" label="数据样品类型类型名称" width="300" /> <el-table-column prop="data_name" label="数据样品类型类型名称" width="300" />
<el-table-column prop="data_eng" label="英文名称" width="350" /> <el-table-column prop="data_eng" label="英文名称" width="350" />
@ -252,16 +203,9 @@
<el-table-column prop="create_time" label="创建时间" width="160" /> <el-table-column prop="create_time" label="创建时间" width="160" />
</el-table> </el-table>
<div class="pagination-box"> <div class="pagination-box">
<el-pagination <el-pagination background :page-sizes="[10, 20, 30]" :page-size="params4.limit"
background layout="total, sizes, prev, pager, next, jumper" :total="total4" :current-page="pageNum4"
:page-sizes="[10, 20, 30]" @size-change="handleSizeChange4" @current-change="handleCurrentChange4" />
:page-size="params4.limit"
layout="total, sizes, prev, pager, next, jumper"
:total="total4"
:current-page="pageNum4"
@size-change="handleSizeChange4"
@current-change="handleCurrentChange4"
/>
</div> </div>
</el-dialog> </el-dialog>
</div> </div>
@ -554,13 +498,15 @@ export default {
zIndex: 1000, zIndex: 1000,
width: 2, width: 2,
// 线 // 线
material: Cesium.Color.fromRandom({alpha: 0.5}) material: Cesium.Color.fromRandom({ alpha: 0.5 })
} }
}) })
this.viewer.camera.setView({ // RangeError: Invalid array length
// if (degreeArr.length > 1)
destination: Cesium.Cartesian3.fromDegrees(degreeArr[0], degreeArr[1]) this.viewer.camera.setView({
}) //
destination: Cesium.Cartesian3.fromDegrees(degreeArr[0], degreeArr[1])
})
this.autoZoom() this.autoZoom()
}, },
// //
@ -588,7 +534,7 @@ export default {
this.viewer.entities.removeAll() this.viewer.entities.removeAll()
}, },
// //
autoZoom(){ autoZoom() {
this.viewer.zoomTo(this.viewer.entities) this.viewer.zoomTo(this.viewer.entities)
}, },
turnDeatilPage(item) { turnDeatilPage(item) {
@ -796,7 +742,7 @@ export default {
} }
}, },
goHome() { goHome() {
this.$router.push({name: 'home'}) this.$router.push({ name: 'home' })
} }
} }
} }
@ -806,12 +752,14 @@ export default {
.shuju { .shuju {
width: 100%; width: 100%;
height: 100%; height: 100%;
.shuju_con { .shuju_con {
width: 100%; width: 100%;
height: 100%; height: 100%;
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
.left { .left {
position: relative; position: relative;
width: 570px; width: 570px;
@ -821,16 +769,19 @@ export default {
padding: 50px 30px; padding: 50px 30px;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
.left1 { .left1 {
width: 100%; width: 100%;
height: 40px; height: 40px;
display: flex; display: flex;
align-items: center; align-items: center;
.xiala { .xiala {
width: 80%; width: 80%;
height: 40px; height: 40px;
margin-right: 15px; margin-right: 15px;
} }
.el-button { .el-button {
width: 12%; width: 12%;
font-size: 20px; font-size: 20px;
@ -840,19 +791,24 @@ export default {
align-items: center; align-items: center;
justify-content: center; justify-content: center;
} }
.sousuo { .sousuo {
margin-right: 1%; margin-right: 1%;
} }
.caidan { .caidan {
color: #999; color: #999;
} }
} }
.left2 { .left2 {
margin-top: 20px; margin-top: 20px;
.el-tag { .el-tag {
margin-right: 10px; margin-right: 10px;
} }
} }
.left3 { .left3 {
padding: 10px 0; padding: 10px 0;
width: 100%; width: 100%;
@ -862,52 +818,64 @@ export default {
justify-content: center; justify-content: center;
border-bottom: 1px solid #e5e5e5; border-bottom: 1px solid #e5e5e5;
} }
.left4{
.left4 {
width: 100%; width: 100%;
height: 700px; height: 700px;
overflow-y: scroll; overflow-y: scroll;
&::-webkit-scrollbar { &::-webkit-scrollbar {
width: 5px; /* 保持一个最小的宽度 */ width: 5px;
background-color: transparent; /* 透明背景 */ /* 保持一个最小的宽度 */
background-color: transparent;
/* 透明背景 */
} }
&::-webkit-scrollbar-thumb { &::-webkit-scrollbar-thumb {
background-color: transparent; /* 滚动条滑块也设置为透明 */ background-color: transparent;
/* 滚动条滑块也设置为透明 */
} }
.left4_1{
padding:20px 0; .left4_1 {
padding: 20px 0;
width: 100%; width: 100%;
height: auto; height: auto;
border-bottom: 1px solid #e5e5e5; border-bottom: 1px solid #e5e5e5;
cursor: pointer; cursor: pointer;
&:hover{
.left4_top{ &:hover {
p{ .left4_top {
p {
color: #409eff; color: #409eff;
} }
} }
} }
.left4_top{
.left4_top {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
width: 100%; width: 100%;
margin-bottom: 10px; margin-bottom: 10px;
p{
p {
font-size: 16px; font-size: 16px;
color: #212121; color: #212121;
font-weight: bold; font-weight: bold;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
.mileage { .mileage {
font-size: 12px; font-size: 12px;
color: #909fa7; color: #909fa7;
} }
} }
.org { .org {
font-size: 12px; font-size: 12px;
color: #999999; color: #999999;
} }
} }
.sample { .sample {
padding: 6px 12px; padding: 6px 12px;
box-sizing: border-box; box-sizing: border-box;
@ -915,6 +883,7 @@ export default {
font-size: 14px; font-size: 14px;
color: #555555; color: #555555;
position: relative; position: relative;
&::before { &::before {
content: ""; content: "";
display: block; display: block;
@ -926,28 +895,34 @@ export default {
top: 12px; top: 12px;
border-radius: 50%; border-radius: 50%;
} }
//&:hover { //&:hover {
// background-color: rgb(248,249,250); // background-color: rgb(248,249,250);
//} //}
} }
.bg-color { .bg-color {
background-color: rgb(93,156,236); background-color: rgb(93, 156, 236);
} }
.left4_list{
.left4_list {
width: 100%; width: 100%;
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
justify-content: space-between; justify-content: space-between;
.list1{
.list1 {
width: 50%; width: 50%;
display: flex; display: flex;
align-items: center; align-items: center;
margin-bottom: 10px; margin-bottom: 10px;
p{
p {
font-size: 14px; font-size: 14px;
color: #999; color: #999;
} }
span{
span {
font-size: 14px; font-size: 14px;
color: #212121; color: #212121;
} }
@ -955,7 +930,8 @@ export default {
} }
} }
} }
.arrow{
.arrow {
position: absolute; position: absolute;
right: 0; right: 0;
top: 40%; top: 40%;
@ -963,13 +939,15 @@ export default {
cursor: pointer; cursor: pointer;
} }
} }
.arrow_r{
.arrow_r {
position: absolute; position: absolute;
top: 40%; top: 40%;
left: 0; left: 0;
z-index: 888; z-index: 888;
cursor: pointer; cursor: pointer;
} }
.right { .right {
width: 100%; width: 100%;
height: 100%; height: 100%;
@ -991,21 +969,24 @@ export default {
.left3_1 .el-radio { .left3_1 .el-radio {
margin-right: 15px; margin-right: 15px;
} }
.left3_1 .el-radio__label { .left3_1 .el-radio__label {
font-size: 15px; font-size: 15px;
} }
.el-input__inner::-webkit-input-placeholder { .el-input__inner::-webkit-input-placeholder {
color: #333; color: #333;
} }
.left3_2 .el-input__inner { .left3_2 .el-input__inner {
padding-left: 0; padding-left: 0;
border: none; border: none;
font-size: 15px; font-size: 15px;
} }
.BMapLabel{
.BMapLabel {
border: none !important; border: none !important;
color: #fff; color: #fff;
background: none !important; background: none !important;
} }
</style> </style>

View File

@ -78,7 +78,9 @@
</li> </li>
</ul> </ul>
</div> </div>
<div id="cesiumContainer" ref="cesiumContainer" onmouseleave="document.getElementById('mouseWheelTip').style.display = 'none'" style="height: 100%;width:100%;"> <div id="cesiumContainer" ref="cesiumContainer"
onmouseleave="document.getElementById('mouseWheelTip').style.display = 'none'"
style="height: 100%;width:100%;">
<div class="son" style="display: none;">弹框插槽</div> <div class="son" style="display: none;">弹框插槽</div>
<div id="mouseWheelTip" style="display: none;">地图缩放按下 Ctrl + 鼠标滚轮</div> <div id="mouseWheelTip" style="display: none;">地图缩放按下 Ctrl + 鼠标滚轮</div>
</div> </div>
@ -369,7 +371,7 @@ export default {
this.viewer.scene._sunBloom = false this.viewer.scene._sunBloom = false
this.viewer.scene.globe.showGroundAtmosphere = false this.viewer.scene.globe.showGroundAtmosphere = false
this.viewer.scene.postProcessStages.fxaa.enabled = true this.viewer.scene.postProcessStages.fxaa.enabled = true
// Cesium Ctrl + // Cesium Ctrl +
modifyCesiumMouseWheel(this.viewer); modifyCesiumMouseWheel(this.viewer);
@ -434,10 +436,12 @@ export default {
material: Cesium.Color.fromRandom({ alpha: 0.5 }) material: Cesium.Color.fromRandom({ alpha: 0.5 })
} }
}) })
this.viewer.camera.setView({ // RangeError: Invalid array length
// if (degreeArr.length > 1)
destination: Cesium.Cartesian3.fromDegrees(degreeArr[0], degreeArr[1]) this.viewer.camera.setView({
}) //
destination: Cesium.Cartesian3.fromDegrees(degreeArr[0], degreeArr[1])
})
this.autoZoom() this.autoZoom()
}, },
// //
@ -1259,7 +1263,7 @@ export default {
z-index: 1000; z-index: 1000;
} }
#mouseWheelTip{ #mouseWheelTip {
position: absolute; position: absolute;
left: 5px; left: 5px;
bottom: 5px; bottom: 5px;