2024-07-11 18:02:47 +08:00
|
|
|
|
<template>
|
|
|
|
|
|
<div class="shuju">
|
|
|
|
|
|
<div class="shuju_con">
|
2024-07-13 18:00:03 +08:00
|
|
|
|
<div v-show="show == false" class="left">
|
2024-07-11 18:02:47 +08:00
|
|
|
|
<div class="left1">
|
|
|
|
|
|
<div class="xiala">
|
2024-07-13 18:00:03 +08:00
|
|
|
|
<el-select v-model="searchTypeValue" placeholder="">
|
2024-07-11 18:02:47 +08:00
|
|
|
|
<el-option
|
2024-07-13 18:00:03 +08:00
|
|
|
|
v-for="(item, index) in searchType"
|
|
|
|
|
|
:key="index"
|
|
|
|
|
|
:label="item"
|
|
|
|
|
|
:value="item"
|
2024-07-11 18:02:47 +08:00
|
|
|
|
/>
|
|
|
|
|
|
</el-select>
|
|
|
|
|
|
</div>
|
2024-07-13 18:00:03 +08:00
|
|
|
|
<el-input v-model="searchValue" placeholder="" />
|
2024-07-11 18:02:47 +08:00
|
|
|
|
<el-button
|
|
|
|
|
|
class="sousuo"
|
|
|
|
|
|
type="primary"
|
|
|
|
|
|
icon="el-icon-search"
|
2024-07-14 20:41:51 +08:00
|
|
|
|
@click="getSearch"
|
2024-07-11 18:02:47 +08:00
|
|
|
|
/>
|
|
|
|
|
|
<el-button
|
2024-07-14 20:41:51 +08:00
|
|
|
|
v-if="menuShow"
|
2024-07-11 18:02:47 +08:00
|
|
|
|
class="caidan"
|
|
|
|
|
|
type="default"
|
|
|
|
|
|
icon="el-icon-s-operation"
|
2024-07-13 18:00:03 +08:00
|
|
|
|
@click="openDialog"
|
2024-07-11 18:02:47 +08:00
|
|
|
|
/>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="left3">
|
2024-07-13 18:00:03 +08:00
|
|
|
|
<el-radio-group v-model="radio">
|
|
|
|
|
|
<el-radio label="数据样品集">数据样品集</el-radio>
|
|
|
|
|
|
<el-radio label="航次">航次</el-radio>
|
|
|
|
|
|
</el-radio-group>
|
2024-07-11 18:02:47 +08:00
|
|
|
|
</div>
|
2024-07-13 18:00:03 +08:00
|
|
|
|
<div class="left4" v-if="radio == '数据样品集'">
|
2024-07-14 20:41:51 +08:00
|
|
|
|
<div v-for="(item,index) in dataList" :key="index" class="left4_1" @click="openList(item)">
|
2024-07-11 18:02:47 +08:00
|
|
|
|
<div class="left4_top">
|
2024-07-13 18:00:03 +08:00
|
|
|
|
<p>{{ item.dataset_name }} <span class="mileage">{{item.file_total}}</span></p>
|
|
|
|
|
|
<span class="org">{{ item.create_time }}</span>
|
2024-07-11 18:02:47 +08:00
|
|
|
|
</div>
|
2024-09-02 13:51:14 +08:00
|
|
|
|
<ul v-if="currenId == item.tsy_id && fold">
|
2024-07-14 20:41:51 +08:00
|
|
|
|
<li
|
|
|
|
|
|
:class="sample.tsy_id == currenSample ? 'bg-color' : ''"
|
|
|
|
|
|
class="sample"
|
|
|
|
|
|
v-for="(sample, i) in item.sampleArray"
|
|
|
|
|
|
:key="i"
|
2024-09-02 13:51:14 +08:00
|
|
|
|
@click.stop="onSample(sample)"
|
2024-07-14 20:41:51 +08:00
|
|
|
|
>{{sample.sample_name}}</li>
|
|
|
|
|
|
</ul>
|
2024-07-11 18:02:47 +08:00
|
|
|
|
<div class="left4_list">
|
|
|
|
|
|
<div class="list1">
|
|
|
|
|
|
<p>航次:</p>
|
2024-07-13 18:00:03 +08:00
|
|
|
|
<span>{{ item.voyage_name }}</span>
|
2024-07-11 18:02:47 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
<div class="list1">
|
2024-07-13 18:00:03 +08:00
|
|
|
|
<p>平台类型:</p>
|
|
|
|
|
|
<span>{{ item.platform_type }}</span>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<div class="list1">
|
|
|
|
|
|
<p>平台名称:</p>
|
|
|
|
|
|
<span>{{ item.platform_name }}</span>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<div class="list1">
|
|
|
|
|
|
<p>潜次序号:</p>
|
|
|
|
|
|
<span>{{ item.diving_sn }}</span>
|
2024-07-11 18:02:47 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<div class="list1">
|
2024-07-13 18:00:03 +08:00
|
|
|
|
<p>设备类型:</p>
|
|
|
|
|
|
<span>{{ item.equipment_type }}</span>
|
2024-07-11 18:02:47 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<div class="list1">
|
2024-07-13 18:00:03 +08:00
|
|
|
|
<p>数据样品类型:</p>
|
|
|
|
|
|
<span>{{ item.data_type }}</span>
|
2024-07-11 18:02:47 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
|
2024-07-13 18:00:03 +08:00
|
|
|
|
<div class="list1">
|
|
|
|
|
|
<p>作业类型:</p>
|
|
|
|
|
|
<span>{{ item.job_type }}</span>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="left4" v-if="radio == '航次'">
|
|
|
|
|
|
<div v-for="(item,index) in dataList" :key="index" class="left4_1" @click="turnDeatilPage(item)">
|
|
|
|
|
|
<div class="left4_top">
|
|
|
|
|
|
<p>{{ item.voyage_name }} <span class="mileage">{{item.voyage_mileage}}海里</span></p>
|
|
|
|
|
|
<span class="org">{{ item.funding_org }}</span>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="left4_list">
|
|
|
|
|
|
<div class="list1">
|
|
|
|
|
|
<p>科考船舶:</p>
|
|
|
|
|
|
<span>{{ item.ship_name }}</span>
|
|
|
|
|
|
</div>
|
2024-07-11 18:02:47 +08:00
|
|
|
|
<div class="list1">
|
|
|
|
|
|
<p>航次首席:</p>
|
2024-07-13 18:00:03 +08:00
|
|
|
|
<span>{{ item.voyage_officer }}</span>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<div class="list1">
|
|
|
|
|
|
<p>离港日期:</p>
|
|
|
|
|
|
<span>{{ item.voyage_start_date.slice(0,10) }}</span>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<div class="list1">
|
|
|
|
|
|
<p>返港日期:</p>
|
|
|
|
|
|
<span>{{ item.voyage_end_date.slice(0,10) }}</span>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<div class="list1">
|
|
|
|
|
|
<p>项目编号:</p>
|
|
|
|
|
|
<span>{{ item.funding_code }}</span>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<div class="list1">
|
|
|
|
|
|
<p>是否涉密:</p>
|
|
|
|
|
|
<span>{{ item.serect_status == 'Active' ? '是' : '否' }}</span>
|
2024-07-11 18:02:47 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="arrow">
|
|
|
|
|
|
<img src="../../static/images/arrow_nav.png" alt="" @click="shousuo">
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
2024-07-13 18:00:03 +08:00
|
|
|
|
<div v-show="show" class="arrow_r" @click="toshow">
|
2024-07-11 18:02:47 +08:00
|
|
|
|
<img src="../../static/images/arrow_nav1.png" alt="">
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="right">
|
2024-09-02 13:51:14 +08:00
|
|
|
|
<div id="cesiumContainerData" style="height: calc(100vh - 90px);width:100%;" />
|
2024-07-11 18:02:47 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
2024-07-14 20:41:51 +08:00
|
|
|
|
<!-- 航次名称弹窗-->
|
2024-07-11 18:02:47 +08:00
|
|
|
|
<el-dialog
|
2024-07-13 18:00:03 +08:00
|
|
|
|
title="请选择航次"
|
|
|
|
|
|
:visible.sync="dialog1"
|
2024-07-14 20:41:51 +08:00
|
|
|
|
width="1000px"
|
2024-07-13 18:00:03 +08:00
|
|
|
|
:before-close="handleClose1">
|
2024-07-14 20:41:51 +08:00
|
|
|
|
<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" />
|
2024-07-13 18:00:03 +08:00
|
|
|
|
<el-table-column prop="voyage_name" label="航次名称" />
|
|
|
|
|
|
<el-table-column prop="ship_name" label="科考船舶" />
|
2024-07-14 20:41:51 +08:00
|
|
|
|
<el-table-column prop="voyage_start_date" label="离岗日期">
|
|
|
|
|
|
<template slot-scope="scope">
|
|
|
|
|
|
<span>{{ scope.row.voyage_start_date.slice(0,10) }}</span>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
</el-table-column>
|
|
|
|
|
|
<el-table-column prop="voyage_end_date" label="返岗日期">
|
|
|
|
|
|
<template slot-scope="scope">
|
|
|
|
|
|
<span>{{ scope.row.voyage_end_date.slice(0,10) }}</span>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
</el-table-column>
|
2024-07-13 18:00:03 +08:00
|
|
|
|
<el-table-column prop="voyage_officer" label="首席" />
|
2024-07-14 20:41:51 +08:00
|
|
|
|
<el-table-column prop="member_total" label="参航人数" />
|
2024-07-13 18:00:03 +08:00
|
|
|
|
<el-table-column prop="funding_org" label="资助机构" />
|
|
|
|
|
|
<el-table-column prop="funding_code" label="资助编号" />
|
|
|
|
|
|
</el-table>
|
2024-07-14 20:41:51 +08:00
|
|
|
|
<div class="pagination-box">
|
|
|
|
|
|
<el-pagination
|
|
|
|
|
|
background
|
|
|
|
|
|
:page-sizes="[10, 20, 30]"
|
|
|
|
|
|
:page-size="params1.limit"
|
|
|
|
|
|
layout="total, sizes, prev, pager, next, jumper"
|
|
|
|
|
|
:total="total1"
|
|
|
|
|
|
:current-page="pageNum1"
|
|
|
|
|
|
@size-change="handleSizeChange1"
|
|
|
|
|
|
@current-change="handleCurrentChange1"
|
|
|
|
|
|
/>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</el-dialog>
|
|
|
|
|
|
<!-- 平台类型弹窗-->
|
|
|
|
|
|
<el-dialog
|
|
|
|
|
|
title="请选择平台"
|
|
|
|
|
|
:visible.sync="dialog2"
|
|
|
|
|
|
width="1200px"
|
|
|
|
|
|
:before-close="handleClose2">
|
|
|
|
|
|
<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 prop="platform_name" label="平台类型名称" />
|
|
|
|
|
|
<el-table-column prop="platform_eng" label="英文类型名称" />
|
|
|
|
|
|
<el-table-column prop="platform_alias" label="别名" />
|
|
|
|
|
|
<el-table-column prop="platform_order" label="排序" width="50" />
|
|
|
|
|
|
<el-table-column prop="platform_group" label="分组" />
|
|
|
|
|
|
<el-table-column prop="create_time" label="创建时间" />
|
|
|
|
|
|
</el-table>
|
|
|
|
|
|
<div class="pagination-box">
|
|
|
|
|
|
<el-pagination
|
|
|
|
|
|
background
|
|
|
|
|
|
:page-sizes="[10, 20, 30]"
|
|
|
|
|
|
:page-size="params2.limit"
|
|
|
|
|
|
layout="total, sizes, prev, pager, next, jumper"
|
|
|
|
|
|
:total="total2"
|
|
|
|
|
|
:current-page="pageNum2"
|
|
|
|
|
|
@size-change="handleSizeChange2"
|
|
|
|
|
|
@current-change="handleCurrentChange2"
|
|
|
|
|
|
/>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</el-dialog>
|
|
|
|
|
|
<!-- 设备类型弹窗-->
|
|
|
|
|
|
<el-dialog
|
|
|
|
|
|
title="请选择设备"
|
|
|
|
|
|
:visible.sync="dialog3"
|
|
|
|
|
|
width="1200px"
|
|
|
|
|
|
:before-close="handleClose3">
|
|
|
|
|
|
<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 prop="equipment_name" label="设备类型名称" width="300" />
|
|
|
|
|
|
<el-table-column prop="equipment_eng" label="英文名称" width="350" />
|
|
|
|
|
|
<el-table-column prop="equipment_alias" label="别名" width="100" />
|
|
|
|
|
|
<el-table-column prop="equipment_order" label="排序" width="50" />
|
|
|
|
|
|
<el-table-column prop="equipment_group" label="分组" />
|
|
|
|
|
|
<el-table-column prop="create_time" label="创建时间" width="160" />
|
|
|
|
|
|
</el-table>
|
|
|
|
|
|
<div class="pagination-box">
|
|
|
|
|
|
<el-pagination
|
|
|
|
|
|
background
|
|
|
|
|
|
:page-sizes="[10, 20, 30]"
|
|
|
|
|
|
:page-size="params3.limit"
|
|
|
|
|
|
layout="total, sizes, prev, pager, next, jumper"
|
|
|
|
|
|
:total="total3"
|
|
|
|
|
|
:current-page="pageNum3"
|
|
|
|
|
|
@size-change="handleSizeChange3"
|
|
|
|
|
|
@current-change="handleCurrentChange3"
|
|
|
|
|
|
/>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</el-dialog>
|
|
|
|
|
|
<!-- 数据样品类型弹窗-->
|
|
|
|
|
|
<el-dialog
|
|
|
|
|
|
title="请选择数据样品类型"
|
|
|
|
|
|
:visible.sync="dialog4"
|
|
|
|
|
|
width="1200px"
|
|
|
|
|
|
:before-close="handleClose4">
|
|
|
|
|
|
<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 prop="data_name" label="数据样品类型类型名称" width="300" />
|
|
|
|
|
|
<el-table-column prop="data_eng" label="英文名称" width="350" />
|
|
|
|
|
|
<el-table-column prop="data_alias" label="别名" width="100" />
|
|
|
|
|
|
<el-table-column prop="data_order" label="排序" width="50" />
|
|
|
|
|
|
<el-table-column prop="data_group" label="分组" />
|
|
|
|
|
|
<el-table-column prop="create_time" label="创建时间" width="160" />
|
|
|
|
|
|
</el-table>
|
|
|
|
|
|
<div class="pagination-box">
|
|
|
|
|
|
<el-pagination
|
|
|
|
|
|
background
|
|
|
|
|
|
:page-sizes="[10, 20, 30]"
|
|
|
|
|
|
:page-size="params4.limit"
|
|
|
|
|
|
layout="total, sizes, prev, pager, next, jumper"
|
|
|
|
|
|
:total="total4"
|
|
|
|
|
|
:current-page="pageNum4"
|
|
|
|
|
|
@size-change="handleSizeChange4"
|
|
|
|
|
|
@current-change="handleCurrentChange4"
|
|
|
|
|
|
/>
|
|
|
|
|
|
</div>
|
2024-07-11 18:02:47 +08:00
|
|
|
|
</el-dialog>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
|
|
<script>
|
2024-07-14 20:41:51 +08:00
|
|
|
|
import { getDataSearch, voyageNameList, PlatformTypeList, equipmentTypeList, dataTypeList, dataPoints, sampleLineList, sampleStationList } from '../api/dataSearch'
|
2024-07-20 11:25:13 +08:00
|
|
|
|
import { getParamsList, getVoyageLine } from '../api/home'
|
2024-07-13 18:00:03 +08:00
|
|
|
|
const Cesium = window.Cesium
|
2024-07-11 18:02:47 +08:00
|
|
|
|
export default {
|
|
|
|
|
|
name: 'Shuju',
|
|
|
|
|
|
data() {
|
|
|
|
|
|
return {
|
2024-07-13 18:00:03 +08:00
|
|
|
|
show: false,
|
|
|
|
|
|
viewer: null,
|
|
|
|
|
|
color: [Cesium.Color.RED, Cesium.Color.GREEN, Cesium.Color.BLUE, Cesium.Color.CHARTREUSE, Cesium.Color.DARKBLUE],
|
|
|
|
|
|
searchType: ['航次名称', '平台类型', '平台名称', '设备类型', '数据样品类型', '数据集名称', '航次首席'],
|
|
|
|
|
|
searchTypeValue: '航次名称',
|
|
|
|
|
|
radio: '航次',
|
|
|
|
|
|
dataList: [],
|
|
|
|
|
|
searchValue: '',
|
|
|
|
|
|
dialog1: false,
|
2024-07-14 20:41:51 +08:00
|
|
|
|
params1: {
|
|
|
|
|
|
start: 0,
|
|
|
|
|
|
limit: 10,
|
|
|
|
|
|
group: 10
|
2024-07-13 18:00:03 +08:00
|
|
|
|
},
|
2024-07-14 20:41:51 +08:00
|
|
|
|
pageNum1: 1,
|
2024-07-13 18:00:03 +08:00
|
|
|
|
tableData1: [],
|
2024-07-14 20:41:51 +08:00
|
|
|
|
total1: 0,
|
|
|
|
|
|
dialog2: false,
|
|
|
|
|
|
params2: {
|
|
|
|
|
|
start: 0,
|
|
|
|
|
|
limit: 10,
|
|
|
|
|
|
group: 10
|
|
|
|
|
|
},
|
|
|
|
|
|
pageNum2: 1,
|
|
|
|
|
|
tableData2: [],
|
|
|
|
|
|
total2: 0,
|
|
|
|
|
|
dialog3: false,
|
|
|
|
|
|
params3: {
|
|
|
|
|
|
start: 0,
|
|
|
|
|
|
limit: 10,
|
|
|
|
|
|
group: 10
|
|
|
|
|
|
},
|
|
|
|
|
|
pageNum3: 1,
|
|
|
|
|
|
tableData3: [],
|
|
|
|
|
|
total3: 0,
|
|
|
|
|
|
dialog4: false,
|
|
|
|
|
|
params4: {
|
|
|
|
|
|
start: 0,
|
|
|
|
|
|
limit: 10,
|
|
|
|
|
|
group: 10
|
|
|
|
|
|
},
|
|
|
|
|
|
pageNum4: 1,
|
|
|
|
|
|
tableData4: [],
|
|
|
|
|
|
total4: 0,
|
|
|
|
|
|
// 多选选中的数据id
|
|
|
|
|
|
ids: [],
|
|
|
|
|
|
menuShow: true,
|
|
|
|
|
|
currenId: null,
|
2024-09-02 13:51:14 +08:00
|
|
|
|
fold: false,
|
2024-07-14 20:41:51 +08:00
|
|
|
|
currenSample: null,
|
|
|
|
|
|
previousEntityId: null,
|
|
|
|
|
|
job: '',
|
|
|
|
|
|
chooseStation: null,
|
|
|
|
|
|
chooseLine: null,
|
2024-07-20 11:25:13 +08:00
|
|
|
|
// 地图图层基础地址
|
|
|
|
|
|
CesiumHostAddr: ''
|
2024-07-13 18:00:03 +08:00
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
created() {
|
2024-07-20 11:25:13 +08:00
|
|
|
|
this.getParams()
|
2024-07-13 18:00:03 +08:00
|
|
|
|
},
|
|
|
|
|
|
mounted() {
|
2024-07-20 11:25:13 +08:00
|
|
|
|
// this.initCesium()
|
2024-07-13 18:00:03 +08:00
|
|
|
|
},
|
|
|
|
|
|
watch: {
|
2024-07-14 20:41:51 +08:00
|
|
|
|
radio(val) {
|
|
|
|
|
|
const type = this.searchTypeValue
|
|
|
|
|
|
const isType = type == '航次名称' || type == '平台类型' || type == '设备类型' || type == '数据样品类型'
|
|
|
|
|
|
const isQuery = this.searchValue
|
|
|
|
|
|
const isIds = this.ids.length
|
|
|
|
|
|
if (isQuery) {
|
|
|
|
|
|
this.getList()
|
|
|
|
|
|
} else {
|
|
|
|
|
|
if (isType && isIds) {
|
|
|
|
|
|
this.getListIds()
|
|
|
|
|
|
} else {
|
|
|
|
|
|
this.dataList = []
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
searchTypeValue(val) {
|
|
|
|
|
|
if (val == '航次名称' || val == '平台类型' || val == '设备类型' || val == '数据样品类型') {
|
|
|
|
|
|
this.menuShow = true
|
|
|
|
|
|
} else {
|
|
|
|
|
|
this.menuShow = false
|
|
|
|
|
|
}
|
2024-07-11 18:02:47 +08:00
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
methods: {
|
2024-07-20 11:25:13 +08:00
|
|
|
|
// 获取从参数列表
|
|
|
|
|
|
getParams() {
|
|
|
|
|
|
getParamsList().then(res => {
|
|
|
|
|
|
const arr = res.array
|
|
|
|
|
|
if (arr.length) {
|
|
|
|
|
|
arr.forEach(item => {
|
|
|
|
|
|
if (item.param_name === 'CesiumHostAddr') {
|
|
|
|
|
|
this.CesiumHostAddr = item.param_value
|
|
|
|
|
|
this.initCesium()
|
|
|
|
|
|
}
|
|
|
|
|
|
})
|
|
|
|
|
|
}
|
|
|
|
|
|
})
|
|
|
|
|
|
},
|
2024-07-13 18:00:03 +08:00
|
|
|
|
// 获取左侧航次列表
|
|
|
|
|
|
getList() {
|
2024-07-14 20:41:51 +08:00
|
|
|
|
this.clearAll()
|
2024-07-13 18:00:03 +08:00
|
|
|
|
this.dataList = []
|
|
|
|
|
|
const params = {
|
|
|
|
|
|
search_type: this.searchTypeValue,
|
|
|
|
|
|
return_type: this.radio,
|
|
|
|
|
|
search_value: this.searchValue,
|
|
|
|
|
|
limit: 20,
|
|
|
|
|
|
start: 0,
|
|
|
|
|
|
group: 10
|
|
|
|
|
|
}
|
|
|
|
|
|
getDataSearch(params).then(res => {
|
2024-07-14 20:41:51 +08:00
|
|
|
|
const arr = res.page.records
|
|
|
|
|
|
if (this.radio == '航次') {
|
|
|
|
|
|
this.getVoyagePoints(arr)
|
|
|
|
|
|
}
|
|
|
|
|
|
if (this.radio == '数据样品集') {
|
|
|
|
|
|
this.getDataPoints(arr)
|
|
|
|
|
|
}
|
|
|
|
|
|
})
|
|
|
|
|
|
},
|
|
|
|
|
|
// 搜素
|
|
|
|
|
|
getSearch() {
|
|
|
|
|
|
this.ids = []
|
|
|
|
|
|
if (this.searchValue) {
|
|
|
|
|
|
this.getList()
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
// 获取航次坐标点位
|
|
|
|
|
|
getVoyagePoints(arr) {
|
|
|
|
|
|
const voyageList = arr
|
|
|
|
|
|
voyageList.map((item, index) => {
|
|
|
|
|
|
// 获取航次坐标点
|
|
|
|
|
|
getVoyageLine({
|
|
|
|
|
|
voyage_id: item.tsy_id
|
|
|
|
|
|
}).then(res2 => {
|
|
|
|
|
|
// 格式化坐标点
|
|
|
|
|
|
const points = []
|
|
|
|
|
|
res2.array.forEach(point => {
|
|
|
|
|
|
points.push(Number(point.nav_lon), Number(point.nav_lat))
|
|
|
|
|
|
})
|
|
|
|
|
|
this.drawLine(index, item.tsy_id, points)
|
|
|
|
|
|
// 将坐标点添加到航次列表中
|
|
|
|
|
|
item.points = points
|
|
|
|
|
|
})
|
2024-07-13 18:00:03 +08:00
|
|
|
|
})
|
2024-07-14 20:41:51 +08:00
|
|
|
|
this.dataList = voyageList
|
2024-07-11 18:02:47 +08:00
|
|
|
|
},
|
2024-07-14 20:41:51 +08:00
|
|
|
|
// 获取数据样品集坐标点位
|
|
|
|
|
|
getDataPoints(arr) {
|
|
|
|
|
|
const voyageList = arr
|
|
|
|
|
|
voyageList.map((item, index) => {
|
|
|
|
|
|
if (item.job_type == '测线作业') {
|
|
|
|
|
|
// 获取样品列表
|
|
|
|
|
|
sampleLineList({
|
|
|
|
|
|
dataset_id: item.tsy_id
|
|
|
|
|
|
}).then(res => {
|
|
|
|
|
|
item.sampleArray = res.array
|
|
|
|
|
|
// 格式化坐标点
|
|
|
|
|
|
res.array.forEach(line => {
|
|
|
|
|
|
if (line.start_lon && line.start_lat && line.end_lon && line.end_lat) {
|
|
|
|
|
|
this.drawLine(index, line.tsy_id, [Number(line.start_lon), Number(line.start_lat), Number(line.end_lon), Number(line.end_lat)])
|
|
|
|
|
|
}
|
|
|
|
|
|
})
|
|
|
|
|
|
})
|
|
|
|
|
|
}
|
|
|
|
|
|
if (item.job_type == '站位作业') {
|
|
|
|
|
|
// 获取样品列表
|
|
|
|
|
|
sampleStationList({
|
|
|
|
|
|
dataset_id: item.tsy_id
|
|
|
|
|
|
}).then(res => {
|
|
|
|
|
|
item.sampleArray = res.array
|
|
|
|
|
|
// 格式化坐标点
|
|
|
|
|
|
res.array.forEach(point => {
|
|
|
|
|
|
this.setPoint(point.tsy_id, [Number(point.sampling_lon), Number(point.sampling_lat)])
|
|
|
|
|
|
})
|
|
|
|
|
|
})
|
|
|
|
|
|
}
|
|
|
|
|
|
// 获取数据样品集坐标点
|
|
|
|
|
|
dataPoints({
|
|
|
|
|
|
dataset_id: item.tsy_id
|
|
|
|
|
|
}).then(res => {
|
|
|
|
|
|
// 格式化坐标点
|
|
|
|
|
|
const points = []
|
|
|
|
|
|
res.array.forEach(point => {
|
|
|
|
|
|
points.push(Number(point.track_lon), Number(point.track_lat))
|
|
|
|
|
|
})
|
|
|
|
|
|
this.drawLine(index, item.tsy_id, points)
|
|
|
|
|
|
// 将坐标点添加到航次列表中
|
|
|
|
|
|
item.points = points
|
|
|
|
|
|
})
|
|
|
|
|
|
})
|
|
|
|
|
|
this.dataList = voyageList
|
|
|
|
|
|
console.log(this.dataList)
|
|
|
|
|
|
},
|
|
|
|
|
|
|
2024-07-13 18:00:03 +08:00
|
|
|
|
// 初始化cesium
|
|
|
|
|
|
initCesium() {
|
|
|
|
|
|
Cesium.Ion.defaultAccessToken = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJkY2Y5NWY2Ni1mODQ1LTQ3YTUtYjc4Zi1jYzhjMGI2YzcxMWYiLCJpZCI6MTI5ODMwLCJpYXQiOjE2Nzk0Njk5NTd9.DTH54ioOH-HLqeNIetBe9hFyrPOX2Vp1AQmZzw8TIZ4'
|
|
|
|
|
|
this.viewer = new Cesium.Viewer('cesiumContainerData', {
|
|
|
|
|
|
sceneMode: Cesium.SceneMode.SCENE2D,
|
|
|
|
|
|
shadows: false,
|
|
|
|
|
|
timeline: false,
|
|
|
|
|
|
baseLayerPicker: false,
|
|
|
|
|
|
fullscreenButton: false,
|
|
|
|
|
|
selectionIndicator: false,
|
|
|
|
|
|
homeButton: false,
|
|
|
|
|
|
animation: false,
|
|
|
|
|
|
infoBox: false,
|
|
|
|
|
|
geocoder: false,
|
|
|
|
|
|
navigationHelpButton: false
|
|
|
|
|
|
})
|
|
|
|
|
|
this.viewer._cesiumWidget._creditContainer.style.display = 'none'
|
|
|
|
|
|
this.viewer.scene.sun.show = false
|
|
|
|
|
|
this.viewer.scene.moon.show = false
|
|
|
|
|
|
this.viewer.scene.fog.enabled = false
|
|
|
|
|
|
this.viewer.scene.skyAtmosphere.show = false
|
|
|
|
|
|
this.viewer.scene.sun.show = false
|
|
|
|
|
|
this.viewer.scene.skyBox.show = false
|
|
|
|
|
|
this.viewer.scene.globe.enableLighting = false
|
|
|
|
|
|
this.viewer.shadowMap.darkness = 0.8
|
|
|
|
|
|
this.viewer.scene._sunBloom = false
|
|
|
|
|
|
this.viewer.scene.globe.showGroundAtmosphere = false
|
2024-09-02 13:51:14 +08:00
|
|
|
|
this.viewer.scene.postProcessStages.fxaa.enabled = true
|
|
|
|
|
|
|
2024-07-13 18:00:03 +08:00
|
|
|
|
// 叠加叠加影像服务
|
2024-07-15 11:27:56 +08:00
|
|
|
|
const earthMap = new Cesium.WebMapTileServiceImageryProvider(
|
|
|
|
|
|
{
|
2024-07-20 11:25:13 +08:00
|
|
|
|
url: this.CesiumHostAddr + 'geoserver/gwc/service/wmts/rest/ougp:world/EPSG:4326/EPSG:4326:{z}/{y}/{x}?format=image/png',
|
2024-07-15 11:27:56 +08:00
|
|
|
|
layer: 'ne:gmrt_20231018',
|
|
|
|
|
|
style: 'default',
|
|
|
|
|
|
tileMatrixSetID: 'EPSG:4326',
|
|
|
|
|
|
format: 'image/jpeg',
|
|
|
|
|
|
tilingScheme: new Cesium.GeographicTilingScheme()
|
|
|
|
|
|
}
|
|
|
|
|
|
)
|
|
|
|
|
|
this.viewer.imageryLayers.addImageryProvider(earthMap)
|
2024-07-13 18:00:03 +08:00
|
|
|
|
// 增加海岸线 /geoserver/gwc/service/wmts/rest/ne:GSHHS_f_L1/EPSG:4326/EPSG:4326:{z}/{y}/{x}?format=image/png
|
2024-07-15 11:27:56 +08:00
|
|
|
|
const coastline = new Cesium.WebMapTileServiceImageryProvider(
|
|
|
|
|
|
{
|
2024-07-20 11:25:13 +08:00
|
|
|
|
url: this.CesiumHostAddr + 'geoserver/gwc/service/wmts/rest/ougp:GSHHS_f_L1/EPSG:4326/EPSG:4326:{z}/{y}/{x}?format=image/png',
|
2024-07-15 11:27:56 +08:00
|
|
|
|
layer: 'ne:GSHHS_f_L1',
|
|
|
|
|
|
style: 'default',
|
|
|
|
|
|
tileMatrixSetID: 'EPSG:4326',
|
|
|
|
|
|
format: 'image/png',
|
|
|
|
|
|
tilingScheme: new Cesium.GeographicTilingScheme()
|
|
|
|
|
|
}
|
|
|
|
|
|
)
|
|
|
|
|
|
this.viewer.imageryLayers.addImageryProvider(coastline)
|
2024-07-13 18:00:03 +08:00
|
|
|
|
// 沉船摄影拼接图 /geoserver/gwc/service/wmts/rest/ne:No1ShipWreck_UP/EPSG:4326/EPSG:4326:{z}/{y}/{x}?format=image/png
|
2024-07-15 11:27:56 +08:00
|
|
|
|
const shipline = new Cesium.WebMapTileServiceImageryProvider(
|
|
|
|
|
|
{
|
2024-07-20 11:25:13 +08:00
|
|
|
|
url: this.CesiumHostAddr + 'geoserver/gwc/service/wmts/rest/ougp:正射影像图_GM输出_20240516/EPSG:4326/EPSG:4326:{z}/{y}/{x}?format=image/png',
|
2024-07-15 11:27:56 +08:00
|
|
|
|
layer: 'ne:No1ShipWreck_UP',
|
|
|
|
|
|
style: 'default',
|
|
|
|
|
|
tileMatrixSetID: 'EPSG:4326',
|
|
|
|
|
|
format: 'image/png',
|
|
|
|
|
|
tilingScheme: new Cesium.GeographicTilingScheme()
|
|
|
|
|
|
}
|
|
|
|
|
|
)
|
|
|
|
|
|
this.viewer.imageryLayers.addImageryProvider(shipline)
|
2024-07-11 18:02:47 +08:00
|
|
|
|
},
|
2024-07-13 18:00:03 +08:00
|
|
|
|
/* cesium 绘制线 */
|
|
|
|
|
|
drawLine(index, id, degreeArr) {
|
|
|
|
|
|
this.viewer.entities.add({
|
|
|
|
|
|
id: id,
|
|
|
|
|
|
polyline: { //polyline折线实体
|
|
|
|
|
|
positions: Cesium.Cartesian3.fromDegreesArray(degreeArr),//位置
|
|
|
|
|
|
clampToGround: true, //地表层高度模式,
|
2024-09-02 13:51:14 +08:00
|
|
|
|
zIndex: 1000,
|
|
|
|
|
|
width: 2,
|
|
|
|
|
|
// 设置线条的材质(颜色)
|
|
|
|
|
|
material: Cesium.Color.fromRandom({alpha: 0.5})
|
2024-07-13 18:00:03 +08:00
|
|
|
|
}
|
|
|
|
|
|
})
|
|
|
|
|
|
this.viewer.camera.setView({
|
|
|
|
|
|
// 指定相机位置
|
|
|
|
|
|
destination: Cesium.Cartesian3.fromDegrees(degreeArr[0], degreeArr[1])
|
|
|
|
|
|
})
|
|
|
|
|
|
this.autoZoom()
|
2024-07-11 18:02:47 +08:00
|
|
|
|
},
|
2024-07-13 18:00:03 +08:00
|
|
|
|
// 创建点位
|
2024-07-14 20:41:51 +08:00
|
|
|
|
setPoint(id, degree) {
|
2024-07-13 18:00:03 +08:00
|
|
|
|
this.viewer.entities.add({
|
|
|
|
|
|
id: id,
|
2024-07-14 20:41:51 +08:00
|
|
|
|
position: Cesium.Cartesian3.fromDegrees(degree[0], degree[1]),
|
2024-07-13 18:00:03 +08:00
|
|
|
|
point: {
|
2024-07-14 20:41:51 +08:00
|
|
|
|
pixelSize: 8, // 点像素大小
|
|
|
|
|
|
color: Cesium.Color.GREEN
|
2024-07-13 18:00:03 +08:00
|
|
|
|
}
|
|
|
|
|
|
})
|
2024-07-14 20:41:51 +08:00
|
|
|
|
this.autoZoom()
|
|
|
|
|
|
},
|
|
|
|
|
|
// 删除单个实体
|
|
|
|
|
|
clearOne(id) {
|
|
|
|
|
|
const entityToRemove = this.viewer.entities.getById(id);
|
|
|
|
|
|
// 检查实体是否存在
|
|
|
|
|
|
if (Cesium.defined(entityToRemove)) {
|
|
|
|
|
|
this.viewer.entities.remove(entityToRemove)
|
|
|
|
|
|
}
|
2024-07-11 18:02:47 +08:00
|
|
|
|
},
|
2024-07-13 18:00:03 +08:00
|
|
|
|
// 清除所有实体
|
|
|
|
|
|
clearAll() {
|
|
|
|
|
|
this.viewer.entities.removeAll()
|
2024-07-11 18:02:47 +08:00
|
|
|
|
},
|
2024-07-13 18:00:03 +08:00
|
|
|
|
// 自动跳转到实体位置
|
|
|
|
|
|
autoZoom(){
|
|
|
|
|
|
this.viewer.zoomTo(this.viewer.entities)
|
2024-07-11 18:02:47 +08:00
|
|
|
|
},
|
2024-08-02 16:56:07 +08:00
|
|
|
|
turnDeatilPage(item) {
|
|
|
|
|
|
this.$router.push({
|
|
|
|
|
|
name: 'dataDetail',
|
|
|
|
|
|
query: {
|
|
|
|
|
|
voyage_name: item.voyage_name
|
|
|
|
|
|
}
|
|
|
|
|
|
})
|
2024-07-11 18:02:47 +08:00
|
|
|
|
},
|
|
|
|
|
|
shousuo() {
|
2024-07-13 18:00:03 +08:00
|
|
|
|
this.show = true
|
2024-07-11 18:02:47 +08:00
|
|
|
|
},
|
|
|
|
|
|
toshow() {
|
2024-07-13 18:00:03 +08:00
|
|
|
|
this.show = false
|
|
|
|
|
|
},
|
2024-07-14 20:41:51 +08:00
|
|
|
|
// 通过ids获取左侧航次列表
|
|
|
|
|
|
getListIds() {
|
|
|
|
|
|
this.clearAll()
|
|
|
|
|
|
this.dataList = []
|
|
|
|
|
|
const params = {
|
|
|
|
|
|
search_type: this.searchTypeValue,
|
|
|
|
|
|
return_type: this.radio,
|
|
|
|
|
|
search_value: this.searchValue,
|
|
|
|
|
|
limit: 20,
|
|
|
|
|
|
start: 0,
|
|
|
|
|
|
group: 10,
|
|
|
|
|
|
ids: this.ids.toString()
|
|
|
|
|
|
}
|
|
|
|
|
|
getDataSearch(params).then(res => {
|
|
|
|
|
|
const arr = res.page.records
|
|
|
|
|
|
if (this.radio == '航次') {
|
|
|
|
|
|
this.getVoyagePoints(arr)
|
|
|
|
|
|
}
|
|
|
|
|
|
if (this.radio == '数据样品集') {
|
|
|
|
|
|
this.getDataPoints(arr)
|
|
|
|
|
|
}
|
|
|
|
|
|
})
|
|
|
|
|
|
},
|
|
|
|
|
|
// 多选框选中数据
|
|
|
|
|
|
handleSelectionChange(selection) {
|
|
|
|
|
|
this.ids = selection.map(item => item.tsy_id)
|
|
|
|
|
|
},
|
2024-07-13 18:00:03 +08:00
|
|
|
|
// 打开搜素弹窗
|
|
|
|
|
|
openDialog() {
|
2024-07-14 20:41:51 +08:00
|
|
|
|
this.ids = []
|
2024-07-13 18:00:03 +08:00
|
|
|
|
if (this.searchTypeValue == '航次名称') {
|
|
|
|
|
|
this.dialog1 = true
|
2024-07-14 20:41:51 +08:00
|
|
|
|
this.getVoyageNameList()
|
|
|
|
|
|
} else if (this.searchTypeValue == '平台类型') {
|
|
|
|
|
|
this.dialog2 = true
|
|
|
|
|
|
this.getPlatformTypeList()
|
|
|
|
|
|
} else if (this.searchTypeValue == '设备类型') {
|
|
|
|
|
|
this.dialog3 = true
|
|
|
|
|
|
this.getEquipmentTypeList()
|
|
|
|
|
|
} else if (this.searchTypeValue == '数据样品类型') {
|
|
|
|
|
|
this.dialog4 = true
|
|
|
|
|
|
this.getDataTypeList()
|
|
|
|
|
|
} else {
|
|
|
|
|
|
return false
|
2024-07-13 18:00:03 +08:00
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
// 航次名称弹窗
|
|
|
|
|
|
handleClose1() {
|
|
|
|
|
|
this.dialog1 = false
|
2024-07-14 20:41:51 +08:00
|
|
|
|
if (this.ids.length) {
|
|
|
|
|
|
this.getListIds()
|
|
|
|
|
|
} else {
|
|
|
|
|
|
this.dataList = []
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
// 获取航次名称列表
|
|
|
|
|
|
getVoyageNameList() {
|
|
|
|
|
|
voyageNameList(this.params1).then(res => {
|
|
|
|
|
|
this.tableData1 = res.page.records
|
|
|
|
|
|
this.total1 = Number(res.page.total)
|
|
|
|
|
|
})
|
|
|
|
|
|
},
|
|
|
|
|
|
handleCurrentChange1(val) {
|
|
|
|
|
|
this.pageNum1 = val
|
|
|
|
|
|
this.params1.start = val * this.params1.limit - this.params1.limit
|
|
|
|
|
|
this.getVoyageNameList()
|
|
|
|
|
|
},
|
|
|
|
|
|
handleSizeChange1(val) {
|
|
|
|
|
|
this.params1.limit = val
|
|
|
|
|
|
this.getVoyageNameList()
|
|
|
|
|
|
},
|
|
|
|
|
|
// 平台类型弹窗
|
|
|
|
|
|
handleClose2() {
|
|
|
|
|
|
this.dialog2 = false
|
|
|
|
|
|
if (this.ids.length) {
|
|
|
|
|
|
this.getListIds()
|
|
|
|
|
|
} else {
|
|
|
|
|
|
this.dataList = []
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
// 获取平台类型列表
|
|
|
|
|
|
getPlatformTypeList() {
|
|
|
|
|
|
PlatformTypeList(this.params2).then(res => {
|
|
|
|
|
|
this.tableData2 = res.page.records
|
|
|
|
|
|
this.total2 = Number(res.page.total)
|
|
|
|
|
|
})
|
|
|
|
|
|
},
|
|
|
|
|
|
handleCurrentChange2(val) {
|
|
|
|
|
|
this.pageNum2 = val
|
|
|
|
|
|
this.params2.start = val * this.params2.limit - this.params2.limit
|
|
|
|
|
|
this.getPlatformTypeList()
|
|
|
|
|
|
},
|
|
|
|
|
|
handleSizeChange2(val) {
|
|
|
|
|
|
this.params2.limit = val
|
|
|
|
|
|
this.getPlatformTypeList()
|
|
|
|
|
|
},
|
|
|
|
|
|
// 设备类型弹窗
|
|
|
|
|
|
handleClose3() {
|
|
|
|
|
|
this.dialog3 = false
|
|
|
|
|
|
if (this.ids.length) {
|
|
|
|
|
|
this.getListIds()
|
|
|
|
|
|
} else {
|
|
|
|
|
|
this.dataList = []
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
// 获取设备类型列表
|
|
|
|
|
|
getEquipmentTypeList() {
|
|
|
|
|
|
equipmentTypeList(this.params3).then(res => {
|
|
|
|
|
|
this.tableData3 = res.page.records
|
|
|
|
|
|
this.total3 = Number(res.page.total)
|
|
|
|
|
|
})
|
|
|
|
|
|
},
|
|
|
|
|
|
handleCurrentChange3(val) {
|
|
|
|
|
|
this.pageNum3 = val
|
|
|
|
|
|
this.params3.start = val * this.params3.limit - this.params3.limit
|
|
|
|
|
|
this.getEquipmentTypeList()
|
|
|
|
|
|
},
|
|
|
|
|
|
handleSizeChange3(val) {
|
|
|
|
|
|
this.params3.limit = val
|
|
|
|
|
|
this.getEquipmentTypeList()
|
|
|
|
|
|
},
|
|
|
|
|
|
// 数据样品类型弹窗
|
|
|
|
|
|
handleClose4() {
|
|
|
|
|
|
this.dialog4 = false
|
|
|
|
|
|
if (this.ids.length) {
|
|
|
|
|
|
this.getListIds()
|
|
|
|
|
|
} else {
|
|
|
|
|
|
this.dataList = []
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
// 获取设备类型列表
|
|
|
|
|
|
getDataTypeList() {
|
|
|
|
|
|
dataTypeList(this.params4).then(res => {
|
|
|
|
|
|
this.tableData4 = res.page.records
|
|
|
|
|
|
this.total4 = Number(res.page.total)
|
|
|
|
|
|
})
|
2024-07-13 18:00:03 +08:00
|
|
|
|
},
|
2024-07-14 20:41:51 +08:00
|
|
|
|
handleCurrentChange4(val) {
|
|
|
|
|
|
this.pageNum4 = val
|
|
|
|
|
|
this.params4.start = val * this.params4.limit - this.params4.limit
|
|
|
|
|
|
this.getDataTypeList()
|
|
|
|
|
|
},
|
|
|
|
|
|
handleSizeChange4(val) {
|
|
|
|
|
|
this.params4.limit = val
|
|
|
|
|
|
this.getDataTypeList()
|
|
|
|
|
|
},
|
|
|
|
|
|
// 展开数据样品列表
|
|
|
|
|
|
openList(item) {
|
2024-09-02 13:51:14 +08:00
|
|
|
|
if (this.currenId == item.tsy_id) {
|
|
|
|
|
|
this.fold = !this.fold
|
|
|
|
|
|
} else {
|
|
|
|
|
|
this.fold = true
|
|
|
|
|
|
if (item.file_total) {
|
|
|
|
|
|
this.currenId = item.tsy_id
|
|
|
|
|
|
this.job = item.job_type
|
|
|
|
|
|
}
|
2024-07-14 20:41:51 +08:00
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
// 选中样品列表数据
|
|
|
|
|
|
onSample(sample) {
|
|
|
|
|
|
this.currenSample = sample.tsy_id
|
|
|
|
|
|
if (this.job === '站位作业') {
|
|
|
|
|
|
this.resetCesium()
|
|
|
|
|
|
const station = this.viewer.entities.getById(sample.tsy_id)
|
|
|
|
|
|
if (station) {
|
|
|
|
|
|
station.point.pixelSize = 20
|
|
|
|
|
|
station.point.color = Cesium.Color.WHITE
|
|
|
|
|
|
}
|
|
|
|
|
|
this.chooseStation = station
|
|
|
|
|
|
} else {
|
|
|
|
|
|
this.resetCesium()
|
|
|
|
|
|
const line = this.viewer.entities.getById(sample.tsy_id)
|
|
|
|
|
|
if (line) {
|
|
|
|
|
|
line.polyline.width = 8
|
|
|
|
|
|
line.oldMaterial = line.polyline.material
|
|
|
|
|
|
line.polyline.material = Cesium.Color.GREEN
|
|
|
|
|
|
}
|
|
|
|
|
|
this.chooseLine = line
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
resetCesium() {
|
|
|
|
|
|
if (this.chooseStation) {
|
|
|
|
|
|
this.chooseStation.point.pixelSize = 5
|
|
|
|
|
|
this.chooseStation.point.color = Cesium.Color.RED
|
|
|
|
|
|
}
|
|
|
|
|
|
if (this.chooseLine) {
|
|
|
|
|
|
this.chooseLine.polyline.width = 5
|
|
|
|
|
|
this.chooseLine.polyline.material = this.chooseLine.oldMaterial
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2024-07-11 18:02:47 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
|
|
<style scoped lang="scss">
|
|
|
|
|
|
.shuju {
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
height: 100%;
|
|
|
|
|
|
.shuju_con {
|
|
|
|
|
|
width: 100%;
|
2024-09-02 13:51:14 +08:00
|
|
|
|
height: calc(100vh - 90px);
|
2024-07-11 18:02:47 +08:00
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
justify-content: center;
|
|
|
|
|
|
.left {
|
|
|
|
|
|
position: relative;
|
2024-07-13 18:00:03 +08:00
|
|
|
|
width: 570px;
|
2024-07-11 18:02:47 +08:00
|
|
|
|
height: 100%;
|
|
|
|
|
|
background: #fff;
|
|
|
|
|
|
box-sizing: border-box;
|
2024-07-13 18:00:03 +08:00
|
|
|
|
padding: 50px 30px;
|
2024-07-11 18:02:47 +08:00
|
|
|
|
display: flex;
|
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
|
.left1 {
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
height: 40px;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
.xiala {
|
2024-07-13 18:00:03 +08:00
|
|
|
|
width: 80%;
|
2024-07-11 18:02:47 +08:00
|
|
|
|
height: 40px;
|
2024-07-13 18:00:03 +08:00
|
|
|
|
margin-right: 15px;
|
2024-07-11 18:02:47 +08:00
|
|
|
|
}
|
|
|
|
|
|
.el-button {
|
|
|
|
|
|
width: 12%;
|
|
|
|
|
|
font-size: 20px;
|
|
|
|
|
|
height: 40px;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
justify-content: center;
|
|
|
|
|
|
}
|
|
|
|
|
|
.sousuo {
|
|
|
|
|
|
margin-right: 1%;
|
|
|
|
|
|
}
|
|
|
|
|
|
.caidan {
|
|
|
|
|
|
color: #999;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
.left2 {
|
|
|
|
|
|
margin-top: 20px;
|
|
|
|
|
|
.el-tag {
|
|
|
|
|
|
margin-right: 10px;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
.left3 {
|
2024-07-13 18:00:03 +08:00
|
|
|
|
padding: 10px 0;
|
2024-07-11 18:02:47 +08:00
|
|
|
|
width: 100%;
|
|
|
|
|
|
margin-top: 10px;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
2024-07-13 18:00:03 +08:00
|
|
|
|
justify-content: center;
|
2024-07-11 18:02:47 +08:00
|
|
|
|
border-bottom: 1px solid #e5e5e5;
|
|
|
|
|
|
}
|
|
|
|
|
|
.left4{
|
|
|
|
|
|
width: 100%;
|
2024-07-13 18:00:03 +08:00
|
|
|
|
height: 700px;
|
|
|
|
|
|
overflow-y: scroll;
|
|
|
|
|
|
&::-webkit-scrollbar {
|
|
|
|
|
|
width: 5px; /* 保持一个最小的宽度 */
|
|
|
|
|
|
background-color: transparent; /* 透明背景 */
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
&::-webkit-scrollbar-thumb {
|
|
|
|
|
|
background-color: transparent; /* 滚动条滑块也设置为透明 */
|
|
|
|
|
|
}
|
2024-07-11 18:02:47 +08:00
|
|
|
|
.left4_1{
|
|
|
|
|
|
padding:20px 0;
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
height: auto;
|
|
|
|
|
|
border-bottom: 1px solid #e5e5e5;
|
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
|
&:hover{
|
|
|
|
|
|
.left4_top{
|
|
|
|
|
|
p{
|
|
|
|
|
|
color: #409eff;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
.left4_top{
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
margin-bottom: 10px;
|
|
|
|
|
|
p{
|
|
|
|
|
|
font-size: 16px;
|
|
|
|
|
|
color: #212121;
|
|
|
|
|
|
font-weight: bold;
|
2024-07-13 18:00:03 +08:00
|
|
|
|
display: flex;
|
|
|
|
|
|
justify-content: space-between;
|
|
|
|
|
|
.mileage {
|
|
|
|
|
|
font-size: 12px;
|
|
|
|
|
|
color: #909fa7;
|
|
|
|
|
|
}
|
2024-07-11 18:02:47 +08:00
|
|
|
|
}
|
2024-07-13 18:00:03 +08:00
|
|
|
|
.org {
|
|
|
|
|
|
font-size: 12px;
|
|
|
|
|
|
color: #999999;
|
2024-07-11 18:02:47 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
2024-07-14 20:41:51 +08:00
|
|
|
|
.sample {
|
|
|
|
|
|
padding: 6px 12px;
|
|
|
|
|
|
box-sizing: border-box;
|
|
|
|
|
|
box-sizing: border-box;
|
|
|
|
|
|
font-size: 14px;
|
|
|
|
|
|
color: #555555;
|
|
|
|
|
|
position: relative;
|
|
|
|
|
|
&::before {
|
|
|
|
|
|
content: "";
|
|
|
|
|
|
display: block;
|
|
|
|
|
|
width: 8px;
|
|
|
|
|
|
height: 8px;
|
|
|
|
|
|
background-color: #B82C22;
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
left: 0;
|
|
|
|
|
|
top: 12px;
|
|
|
|
|
|
border-radius: 50%;
|
|
|
|
|
|
}
|
|
|
|
|
|
//&:hover {
|
|
|
|
|
|
// background-color: rgb(248,249,250);
|
|
|
|
|
|
//}
|
|
|
|
|
|
}
|
|
|
|
|
|
.bg-color {
|
|
|
|
|
|
background-color: rgb(93,156,236);
|
|
|
|
|
|
}
|
2024-07-11 18:02:47 +08:00
|
|
|
|
.left4_list{
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
flex-wrap: wrap;
|
|
|
|
|
|
justify-content: space-between;
|
|
|
|
|
|
.list1{
|
|
|
|
|
|
width: 50%;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
margin-bottom: 10px;
|
|
|
|
|
|
p{
|
2024-07-13 18:00:03 +08:00
|
|
|
|
font-size: 14px;
|
2024-07-11 18:02:47 +08:00
|
|
|
|
color: #999;
|
|
|
|
|
|
}
|
|
|
|
|
|
span{
|
2024-07-13 18:00:03 +08:00
|
|
|
|
font-size: 14px;
|
2024-07-11 18:02:47 +08:00
|
|
|
|
color: #212121;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
.arrow{
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
right: 0;
|
|
|
|
|
|
top: 40%;
|
|
|
|
|
|
z-index: 888;
|
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
.arrow_r{
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
top: 40%;
|
|
|
|
|
|
left: 0;
|
|
|
|
|
|
z-index: 888;
|
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
|
}
|
|
|
|
|
|
.right {
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
height: 100%;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
</style>
|
|
|
|
|
|
<style>
|
|
|
|
|
|
.left3_1 .el-radio {
|
|
|
|
|
|
margin-right: 15px;
|
|
|
|
|
|
}
|
|
|
|
|
|
.left3_1 .el-radio__label {
|
|
|
|
|
|
font-size: 15px;
|
|
|
|
|
|
}
|
|
|
|
|
|
.el-input__inner::-webkit-input-placeholder {
|
|
|
|
|
|
color: #333;
|
|
|
|
|
|
}
|
|
|
|
|
|
.left3_2 .el-input__inner {
|
|
|
|
|
|
padding-left: 0;
|
|
|
|
|
|
border: none;
|
|
|
|
|
|
font-size: 15px;
|
|
|
|
|
|
}
|
|
|
|
|
|
.BMapLabel{
|
|
|
|
|
|
border: none !important;
|
|
|
|
|
|
color: #fff;
|
|
|
|
|
|
background: none !important;
|
|
|
|
|
|
}
|
|
|
|
|
|
</style>
|