<template>
  <div class="shuju">
    <div class="shuju_con">
      <div v-show="show == false" class="left">
        <div class="left1">
          <div class="xiala">
            <el-select v-model="searchTypeValue" placeholder="">
              <el-option
                v-for="(item, index) in searchType"
                :key="index"
                :label="item"
                :value="item"
              />
            </el-select>
          </div>
          <el-input v-model="searchValue" placeholder="" />
          <el-button
            class="sousuo"
            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 class="left3">
          <el-radio-group v-model="radio">
            <el-radio label="数据样品集">数据样品集</el-radio>
            <el-radio label="航次">航次</el-radio>
          </el-radio-group>
        </div>
        <div class="left4" v-if="radio == '数据样品集'">
          <div v-for="(item,index) in dataList" :key="index" class="left4_1" @click="openList(item)">
            <div class="left4_top">
              <p>{{ item.dataset_name }} <span class="mileage">{{item.file_total}}</span></p>
              <span class="org">{{ item.create_time }}</span>
            </div>
            <ul v-if="currenId == item.tsy_id && fold">
              <li
                :class="sample.tsy_id == currenSample ? 'bg-color' : ''"
                class="sample"
                v-for="(sample, i) in item.sampleArray"
                :key="i"
                @click.stop="onSample(sample)"
              >{{sample.sample_name}}</li>
            </ul>
            <div class="left4_list">
              <div class="list1">
                <p>航次：</p>
                <span>{{ item.voyage_name }}</span>
              </div>
              <div class="list1">
                <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>
              </div>

              <div class="list1">
                <p>设备类型：</p>
                <span>{{ item.equipment_type }}</span>
              </div>

              <div class="list1">
                <p>数据样品类型：</p>
                <span>{{ item.data_type }}</span>
              </div>

              <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>
              <div class="list1">
                <p>航次首席：</p>
                <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>
              </div>

            </div>
          </div>
        </div>
        <div class="arrow">
          <img src="../../static/images/arrow_nav.png" alt="" @click="shousuo">
        </div>
      </div>
      <div v-show="show" class="arrow_r" @click="toshow">
        <img src="../../static/images/arrow_nav1.png" alt="">
      </div>
      <div class="right">
        <div id="cesiumContainerData" style="height: 100vh;width:100%;" />
        <img class="logo" src="../../static/images/logo_map.png" alt="" @click="goHome" />
      </div>
    </div>
    <!--  航次名称弹窗-->
    <el-dialog
      title="请选择航次"
      :visible.sync="dialog1"
      width="1000px"
      :before-close="handleClose1">
      <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 prop="voyage_name" label="航次名称" />
        <el-table-column prop="ship_name" label="科考船舶" />
        <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>
        <el-table-column prop="voyage_officer" label="首席" />
        <el-table-column prop="member_total" label="参航人数" />
        <el-table-column prop="funding_org" label="资助机构" />
        <el-table-column prop="funding_code" label="资助编号" />
      </el-table>
      <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>
    </el-dialog>
  </div>
</template>

<script>
import { getDataSearch, voyageNameList, PlatformTypeList, equipmentTypeList, dataTypeList, dataPoints, sampleLineList, sampleStationList } from '../api/dataSearch'
import { getParamsList, getVoyageLine } from '../api/home'
const Cesium = window.Cesium
export default {
  name: 'Shuju',
  data() {
    return {
      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,
      params1: {
        start: 0,
        limit: 10,
        group: 10
      },
      pageNum1: 1,
      tableData1: [],
      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,
      fold: false,
      currenSample: null,
      previousEntityId: null,
      job: '',
      chooseStation: null,
      chooseLine: null,
      // 地图图层基础地址
      CesiumHostAddr: ''
    }
  },
  created() {
    this.getParams()
  },
  mounted() {
    // this.initCesium()
  },
  watch: {
    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
      }
    }
  },
  methods: {
    // 获取从参数列表
    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()
            }
          })
        }
      })
    },
    // 获取左侧航次列表
    getList() {
      this.clearAll()
      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 => {
        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
        })
      })
      this.dataList = voyageList
    },
    // 获取数据样品集坐标点位
    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)
    },

    // 初始化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
      this.viewer.scene.postProcessStages.fxaa.enabled = true

      // 不显示底图
      this.viewer.imageryLayers.get(0).show = false

      // 叠加叠加影像服务
      const earthMap = new Cesium.WebMapTileServiceImageryProvider(
        {
          url: this.CesiumHostAddr + 'geoserver/gwc/service/wmts/rest/ougp:world/{TileMatrixSet}/{TileMatrixSet}:{TileMatrix}/{TileRow}/{TileCol}?format=image/jpeg',
          layer: 'ougp:world',
          style: 'default',
          format: 'image/jpeg',
          tileMatrixSetID: 'EPSG:4326',
          tilingScheme: new Cesium.GeographicTilingScheme()
        }
      )
      this.viewer.imageryLayers.addImageryProvider(earthMap)
      // 增加海岸线  /geoserver/gwc/service/wmts/rest/ne:GSHHS_f_L1/EPSG:4326/EPSG:4326:{z}/{y}/{x}?format=image/png
      const coastline = new Cesium.WebMapTileServiceImageryProvider(
        {
          url: this.CesiumHostAddr + 'geoserver/gwc/service/wmts/rest/ougp:GSHHS_f_L1/{TileMatrixSet}/{TileMatrixSet}:{TileMatrix}/{TileRow}/{TileCol}?format=image/png',
          layer: 'ougp:GSHHS_f_L1',
          style: 'default',
          format: 'image/png',
          tileMatrixSetID: 'EPSG:4326',
          tilingScheme: new Cesium.GeographicTilingScheme()
        }
      )
      this.viewer.imageryLayers.addImageryProvider(coastline)
      // 沉船摄影拼接图 /geoserver/gwc/service/wmts/rest/ne:No1ShipWreck_UP/EPSG:4326/EPSG:4326:{z}/{y}/{x}?format=image/png
      const shipline = new Cesium.WebMapTileServiceImageryProvider(
        {
          url: this.CesiumHostAddr + 'geoserver/gwc/service/wmts/rest/ougp:正射影像图_GM输出_20240516/{TileMatrixSet}/{TileMatrixSet}:{TileMatrix}/{TileRow}/{TileCol}?format=image/png',
          layer: 'ougp:正射影像图_GM输出_20240516',
          style: 'default',
          format: 'image/png',
          tileMatrixSetID: 'EPSG:4326',
          tilingScheme: new Cesium.GeographicTilingScheme()
        }
      )
      this.viewer.imageryLayers.addImageryProvider(shipline)
    },
    /* cesium 绘制线 */
    drawLine(index, id, degreeArr) {
      this.viewer.entities.add({
        id: id,
        polyline: { //polyline折线实体
          positions: Cesium.Cartesian3.fromDegreesArray(degreeArr),//位置
          clampToGround: true, //地表层高度模式,
          zIndex: 1000,
          width: 2,
          // 设置线条的材质（颜色）
          material: Cesium.Color.fromRandom({alpha: 0.5})
        }
      })
      this.viewer.camera.setView({
        // 指定相机位置
        destination: Cesium.Cartesian3.fromDegrees(degreeArr[0], degreeArr[1])
      })
      this.autoZoom()
    },
    // 创建点位
    setPoint(id, degree) {
      this.viewer.entities.add({
        id: id,
        position: Cesium.Cartesian3.fromDegrees(degree[0], degree[1]),
        point: {
          pixelSize: 8, // 点像素大小
          color: Cesium.Color.GREEN
        }
      })
      this.autoZoom()
    },
    // 删除单个实体
    clearOne(id) {
      const entityToRemove = this.viewer.entities.getById(id);
      // 检查实体是否存在
      if (Cesium.defined(entityToRemove)) {
        this.viewer.entities.remove(entityToRemove)
      }
    },
    // 清除所有实体
    clearAll() {
      this.viewer.entities.removeAll()
    },
    // 自动跳转到实体位置
    autoZoom(){
      this.viewer.zoomTo(this.viewer.entities)
    },
    turnDeatilPage(item) {
      this.$router.push({
        name: 'dataDetail',
        query: {
          voyage_name: item.voyage_name
        }
      })
    },
    shousuo() {
      this.show = true
    },
    toshow() {
      this.show = false
    },
    // 通过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)
    },
    // 打开搜素弹窗
    openDialog() {
      this.ids = []
      if (this.searchTypeValue == '航次名称') {
        this.dialog1 = true
        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
      }
    },
    // 航次名称弹窗
    handleClose1() {
      this.dialog1 = false
      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)
      })
    },
    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) {
      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
        }
      }
    },
    // 选中样品列表数据
    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
      }
    },
    goHome() {
      this.$router.push({name: 'home'})
    }
  }
}
</script>

<style scoped lang="scss">
.shuju {
  width: 100%;
  height: 100%;
  .shuju_con {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    .left {
      position: relative;
      width: 570px;
      height: 100vh;
      background: #fff;
      box-sizing: border-box;
      padding: 50px 30px;
      display: flex;
      flex-direction: column;
      .left1 {
        width: 100%;
        height: 40px;
        display: flex;
        align-items: center;
        .xiala {
          width: 80%;
          height: 40px;
          margin-right: 15px;
        }
        .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 {
        padding: 10px 0;
        width: 100%;
        margin-top: 10px;
        display: flex;
        align-items: center;
        justify-content: center;
        border-bottom: 1px solid #e5e5e5;
      }
      .left4{
        width: 100%;
        height: 700px;
        overflow-y: scroll;
        &::-webkit-scrollbar {
          width: 5px; /* 保持一个最小的宽度 */
          background-color: transparent; /* 透明背景 */
        }

        &::-webkit-scrollbar-thumb {
          background-color: transparent; /* 滚动条滑块也设置为透明 */
        }
        .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;
              display: flex;
              justify-content: space-between;
              .mileage {
                font-size: 12px;
                color: #909fa7;
              }
            }
            .org {
              font-size: 12px;
              color: #999999;
            }
          }
          .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);
          }
          .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{
                font-size: 14px;
                color: #999;
              }
              span{
                font-size: 14px;
                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%;
      position: relative;

      .logo {
        width: 60px;
        height: 60px;
        cursor: pointer;
        position: absolute;
        bottom: 20px;
        right: 20px;
      }
    }
  }
}
</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>
