|  |  |  | 
|---|
|  |  |  | width="300px" | 
|---|
|  |  |  | style="background-color: rgb(238, 241, 246); overflow-y: hidden" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <el-card class="box-card" style="width: 274px; margin: 13px auto"> | 
|---|
|  |  |  | <div slot="header" class="clearfix"> | 
|---|
|  |  |  | <div> | 
|---|
|  |  |  | <img | 
|---|
|  |  |  | style="float: left; width: 20px; margin: 15px 0 0 18px" | 
|---|
|  |  |  | src="../../assets/images/uav/calendar.png" | 
|---|
|  |  |  | alt="" | 
|---|
|  |  |  | /> | 
|---|
|  |  |  | <span | 
|---|
|  |  |  | style=" | 
|---|
|  |  |  | display: inline-block; | 
|---|
|  |  |  | float: left; | 
|---|
|  |  |  | font-size: 16px; | 
|---|
|  |  |  | margin-left: 10px; | 
|---|
|  |  |  | " | 
|---|
|  |  |  | >无人机飞行日期</span | 
|---|
|  |  |  | <div style="width: 274px; margin: 13px auto"> | 
|---|
|  |  |  | <el-date-picker | 
|---|
|  |  |  | :picker-options="pickerOptions" | 
|---|
|  |  |  | placeholder="选择日期" | 
|---|
|  |  |  | popper-class="jlpMySelectPopper" | 
|---|
|  |  |  | ref="datePick" | 
|---|
|  |  |  | v-model="datenum" | 
|---|
|  |  |  | @change="chooseDate" | 
|---|
|  |  |  | value-format="yyyy-MM-dd" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | </el-date-picker> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <el-scrollbar | 
|---|
|  |  |  | v-if="asideData.dates.length > 0" | 
|---|
|  |  |  | style="height: 200px; overflow-x: hidden" | 
|---|
|  |  |  | class="text item" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <div | 
|---|
|  |  |  | v-for="(item, index) in asideData.dates" | 
|---|
|  |  |  | class="per-date" | 
|---|
|  |  |  | :class="{ active: asideData.activeKey === index }" | 
|---|
|  |  |  | @click="getTimeAreaData(item, index)" | 
|---|
|  |  |  | :key="index" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <img | 
|---|
|  |  |  | style="float: left; width: 14px; margin: 18px 0 0 0" | 
|---|
|  |  |  | src="../../assets/images/uav/calendar.png" | 
|---|
|  |  |  | alt="" | 
|---|
|  |  |  | /> | 
|---|
|  |  |  | <span | 
|---|
|  |  |  | style=" | 
|---|
|  |  |  | display: inline-block; | 
|---|
|  |  |  | float: left; | 
|---|
|  |  |  | font-size: 14px; | 
|---|
|  |  |  | margin-left: 15px; | 
|---|
|  |  |  | " | 
|---|
|  |  |  | >{{ item }}</span | 
|---|
|  |  |  | > | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </el-scrollbar> | 
|---|
|  |  |  | <div v-else style="height: 180px; width: 274px; overflow-x: hidden"> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <!-- <el-card class="box-card" style="width: 274px; margin: 13px auto"> --> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <!-- <div v-else style="height: 180px; width: 274px; overflow-x: hidden"> | 
|---|
|  |  |  | <div | 
|---|
|  |  |  | style=" | 
|---|
|  |  |  | width: 272px; | 
|---|
|  |  |  | 
|---|
|  |  |  | > | 
|---|
|  |  |  | 无飞行记录 | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </el-card> | 
|---|
|  |  |  | <div style="width: 274px; margin: 13px auto; border-radius: 8px"> | 
|---|
|  |  |  | </div> --> | 
|---|
|  |  |  | <!-- </el-card> --> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <div style="width: 274px; margin: 350px auto; border-radius: 8px"> | 
|---|
|  |  |  | <!--accordion 手风琴模式--> | 
|---|
|  |  |  | <el-collapse | 
|---|
|  |  |  | v-model="asideData.activeNames" | 
|---|
|  |  |  | accordion | 
|---|
|  |  |  | style="box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1)" | 
|---|
|  |  |  | @change="handleChange" | 
|---|
|  |  |  | ref="collapse" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <el-collapse-item | 
|---|
|  |  |  | v-for="(item1, index) in asideData.uavTimeFly" | 
|---|
|  |  |  | 
|---|
|  |  |  | :key="index" | 
|---|
|  |  |  | class="per-date_area" | 
|---|
|  |  |  | :class="{ activeArea: asideData.activeAreaKey === index }" | 
|---|
|  |  |  | @click="getFlyData(item, index)" | 
|---|
|  |  |  | @click="getFlyData(item, index, item1.mac)" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <div style="width: 100%; margin: 0 auto"> | 
|---|
|  |  |  | <span>{{ | 
|---|
|  |  |  | 
|---|
|  |  |  | position: fixed; | 
|---|
|  |  |  | z-index: 20; | 
|---|
|  |  |  | padding-left: 20px; | 
|---|
|  |  |  | height: 75px; | 
|---|
|  |  |  | line-height: 80px; | 
|---|
|  |  |  | height: 100px; | 
|---|
|  |  |  | width: 100%; | 
|---|
|  |  |  | font-size: 18px; | 
|---|
|  |  |  | font-weight: bold; | 
|---|
|  |  |  | background-color: rgba(192, 192, 192, 0.4); | 
|---|
|  |  |  | " | 
|---|
|  |  |  | class="dds" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <div class="numss"> | 
|---|
|  |  |  | <el-radio-group | 
|---|
|  |  |  | v-model="radioSeven" | 
|---|
|  |  |  | size="medium" | 
|---|
|  |  |  | 
|---|
|  |  |  | <el-radio-button label="03"></el-radio-button> | 
|---|
|  |  |  | <el-radio-button label="TVOC"></el-radio-button> | 
|---|
|  |  |  | </el-radio-group> | 
|---|
|  |  |  | <el-input | 
|---|
|  |  |  | <!-- <el-input | 
|---|
|  |  |  | placeholder="请输入内容" | 
|---|
|  |  |  | v-model="uvasize" | 
|---|
|  |  |  | class="inputNum" | 
|---|
|  |  |  | clearable | 
|---|
|  |  |  | > | 
|---|
|  |  |  | </el-input> | 
|---|
|  |  |  | </el-input> --> | 
|---|
|  |  |  | <div v-if="selecttrue === 1" style="margin-left: 10px"> | 
|---|
|  |  |  | <el-button type="primary" @click="gengD" class="gengD" | 
|---|
|  |  |  | >更多条件</el-button | 
|---|
|  |  |  | > | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <div v-if="selecttrue === 2" style="margin-left: 10px"> | 
|---|
|  |  |  | <el-button class="gengD" @click="shou">收起</el-button> | 
|---|
|  |  |  | <el-button type="primary" @click="selectDuo">查询</el-button> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <div class="Duo" v-if="selecttrue === 2"> | 
|---|
|  |  |  | <el-select v-model="Duovalue" placeholder="其他因子" class="slee"> | 
|---|
|  |  |  | <el-option | 
|---|
|  |  |  | v-for="item in optionsduo" | 
|---|
|  |  |  | :key="item.code" | 
|---|
|  |  |  | :label="item.name" | 
|---|
|  |  |  | :value="item.name" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | </el-option> | 
|---|
|  |  |  | </el-select> | 
|---|
|  |  |  | <div class="spantu"> | 
|---|
|  |  |  | <span>图形边长(米):</span | 
|---|
|  |  |  | ><el-input | 
|---|
|  |  |  | class="inputtu" | 
|---|
|  |  |  | v-model="uvasize" | 
|---|
|  |  |  | clearable | 
|---|
|  |  |  | placeholder="请输入内容" | 
|---|
|  |  |  | ref="uvas" | 
|---|
|  |  |  | ></el-input> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <div class="spantuu"> | 
|---|
|  |  |  | <span>无人机飞行高度范围(米):</span> | 
|---|
|  |  |  | <el-input class="inputtu" v-model="tallone" ref="uvas"></el-input | 
|---|
|  |  |  | >- | 
|---|
|  |  |  | <el-input class="inputtu" v-model="talltwo" ref="uvas"></el-input> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <div v-if="noneData" class="noneData">当前时间没有飞行数据</div> | 
|---|
|  |  |  | <div id="map_container" v-loading="loading" /> | 
|---|
|  |  |  | 
|---|
|  |  |  | import json from '@/assets/json/sensor.json' | 
|---|
|  |  |  | import $ from 'jquery' | 
|---|
|  |  |  | import '@/assets/icon/iconfont.css' | 
|---|
|  |  |  | import moment from 'moment' | 
|---|
|  |  |  |  | 
|---|
|  |  |  | var GPS = { | 
|---|
|  |  |  | PI: 3.14159265358979324, | 
|---|
|  |  |  | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | data() { | 
|---|
|  |  |  | return { | 
|---|
|  |  |  | zhanK: 1, | 
|---|
|  |  |  | Duovalue: '', | 
|---|
|  |  |  | datenum: '', | 
|---|
|  |  |  | selecttrue: 1, | 
|---|
|  |  |  | pickerOptions: { | 
|---|
|  |  |  | cellClassName: (time) => { | 
|---|
|  |  |  | let timeDate = moment(time.getTime()).format('yyyy-MM-DD') | 
|---|
|  |  |  | if (this.timeNums.includes(timeDate)) { | 
|---|
|  |  |  | return 'dateArrClass' // 返回值设置的是我们添加的类名 | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | }, | 
|---|
|  |  |  |  | 
|---|
|  |  |  | tallone: 0, | 
|---|
|  |  |  | talltwo: 500, | 
|---|
|  |  |  | // 侧边栏数据 | 
|---|
|  |  |  | asideData: { | 
|---|
|  |  |  | dates: [], // 存放date数组 | 
|---|
|  |  |  | 
|---|
|  |  |  | { code: 'a05024', name: 'O3' }, | 
|---|
|  |  |  | { code: 'a99054', name: 'TVOC' }, | 
|---|
|  |  |  | ], | 
|---|
|  |  |  | valuetime: '2023-01-01', | 
|---|
|  |  |  | defautRadio: { code: 'a34004', name: 'PM2.5' }, | 
|---|
|  |  |  | Layler: null, // 存放图层 | 
|---|
|  |  |  | textMarkers: { code: '', markers: [] }, // 存放文本标注 | 
|---|
|  |  |  | 
|---|
|  |  |  | radioSeven: 'PM2.5', | 
|---|
|  |  |  | bdLon: null, | 
|---|
|  |  |  | bdLat: null, | 
|---|
|  |  |  | loading: true, | 
|---|
|  |  |  | loading: false, | 
|---|
|  |  |  | snesorParams: [ | 
|---|
|  |  |  | 'PM2.5', | 
|---|
|  |  |  | 'PM10', | 
|---|
|  |  |  | 
|---|
|  |  |  | radio1: null, | 
|---|
|  |  |  | viewOptions: ['平铺', '立体'], | 
|---|
|  |  |  | dateValue: [], | 
|---|
|  |  |  | pickerOptions: { | 
|---|
|  |  |  | disabledDate(time) { | 
|---|
|  |  |  | return time.getTime() > Date.now() | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | shortcuts: [ | 
|---|
|  |  |  | { | 
|---|
|  |  |  | text: '今天', | 
|---|
|  |  |  | onClick(picker) { | 
|---|
|  |  |  | picker.$emit('pick', new Date()) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | text: '昨天', | 
|---|
|  |  |  | onClick(picker) { | 
|---|
|  |  |  | const date = new Date() | 
|---|
|  |  |  | date.setTime(date.getTime() - 3600 * 1000 * 24) | 
|---|
|  |  |  | picker.$emit('pick', date) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | text: '一周前', | 
|---|
|  |  |  | onClick(picker) { | 
|---|
|  |  |  | const date = new Date() | 
|---|
|  |  |  | date.setTime(date.getTime() - 3600 * 1000 * 24 * 7) | 
|---|
|  |  |  | picker.$emit('pick', date) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | ], | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | timeOne: '', | 
|---|
|  |  |  | threeOptions: { | 
|---|
|  |  |  | onPick: ({ maxDate, minDate }) => { | 
|---|
|  |  |  | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | sensorDate: null, | 
|---|
|  |  |  | noneData: false, | 
|---|
|  |  |  | noneData: true, | 
|---|
|  |  |  | defaultData: [], | 
|---|
|  |  |  | carMac: null, | 
|---|
|  |  |  | dialogFormVisible: false, | 
|---|
|  |  |  | optionsduo: [ | 
|---|
|  |  |  | { code: 'a34004', name: 'PM2.5' }, | 
|---|
|  |  |  | { code: 'a34002', name: 'PM10' }, | 
|---|
|  |  |  | { code: 'a21026', name: 'SO2' }, | 
|---|
|  |  |  | { code: 'a21004', name: 'NO2' }, | 
|---|
|  |  |  | { code: 'a21005', name: 'CO' }, | 
|---|
|  |  |  | { code: 'a05024', name: 'O3' }, | 
|---|
|  |  |  | { code: 'a99054', name: 'TVOC' }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | code: 'a01006', | 
|---|
|  |  |  | name: '气压', | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | code: 'a01001', | 
|---|
|  |  |  | name: '温度', | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | code: 'a01002', | 
|---|
|  |  |  | name: '湿度', | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | ], | 
|---|
|  |  |  | sensorTableData: [ | 
|---|
|  |  |  | { | 
|---|
|  |  |  | sensorName: 'PM2.5', | 
|---|
|  |  |  | 
|---|
|  |  |  | tab5: '20000', | 
|---|
|  |  |  | tab6: '50000', | 
|---|
|  |  |  | }, | 
|---|
|  |  |  |  | 
|---|
|  |  |  | { | 
|---|
|  |  |  | sensorName: '气压', | 
|---|
|  |  |  | unit: 'hpa', | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | sensorName: '湿度', | 
|---|
|  |  |  | unit: '%', | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | sensorName: '温度', | 
|---|
|  |  |  | unit: '℃', | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | ], | 
|---|
|  |  |  | carWs: null, | 
|---|
|  |  |  | map: null, | 
|---|
|  |  |  | 
|---|
|  |  |  | firstPlayFlag: true, | 
|---|
|  |  |  | firstWsFlag: true, | 
|---|
|  |  |  | msgTemp: [], | 
|---|
|  |  |  | luvalue: { | 
|---|
|  |  |  | nnn: [ | 
|---|
|  |  |  | // { | 
|---|
|  |  |  | //   value: | 
|---|
|  |  |  | //     '{"flylon":"123.43845599999999 °","flylat":"41.69658300039269 °","a34004":"8 mg/m³"}', | 
|---|
|  |  |  | // }, | 
|---|
|  |  |  | // { | 
|---|
|  |  |  | //   value: | 
|---|
|  |  |  | //     '{"flylon":"123.43725199999999 °","flylat":"41.69568400039269 °","a34004":"7 mg/m³"}', | 
|---|
|  |  |  | // }, | 
|---|
|  |  |  | // { | 
|---|
|  |  |  | //   value: | 
|---|
|  |  |  | //     '{"flylon":"123.43725199999999 °","flylat":"41.69523400039269 °","a34004":"6 mg/m³"}', | 
|---|
|  |  |  | // }, | 
|---|
|  |  |  | // { | 
|---|
|  |  |  | //   value: | 
|---|
|  |  |  | //     '{"flylon":"123.43725199999999 °","flylat":"41.69478400039269 °","a34004":"65 mg/m³"}', | 
|---|
|  |  |  | // }, | 
|---|
|  |  |  | // { | 
|---|
|  |  |  | //   value: | 
|---|
|  |  |  | //     '{"flylon":"123.43725199999999 °","flylat":"41.69433500039269 °","a34004":"65 mg/m³"}', | 
|---|
|  |  |  | // }, | 
|---|
|  |  |  | // { | 
|---|
|  |  |  | //   value: | 
|---|
|  |  |  | //     '{"flylon":"123.43725199999999 °","flylat":"41.69388500039269 °","a34004":"65 mg/m³"}', | 
|---|
|  |  |  | // }, | 
|---|
|  |  |  | // { | 
|---|
|  |  |  | //   value: | 
|---|
|  |  |  | //     '{"flylon":"123.43725199999999 °","flylat":"41.692986000392686 °","a34004":"65 mg/m³"}', | 
|---|
|  |  |  | // }, | 
|---|
|  |  |  | // { | 
|---|
|  |  |  | //   value: | 
|---|
|  |  |  | //     '{"flylon":"123.43725199999999 °","flylat":"41.69343500039268 °","a34004":"65 mg/m³"}', | 
|---|
|  |  |  | // }, | 
|---|
|  |  |  | // { | 
|---|
|  |  |  | //   value: | 
|---|
|  |  |  | //     '{"flylon":"123.43725199999999 °","flylat":"41.69478400039269 °","a34004":"65 mg/m³"}', | 
|---|
|  |  |  | // }, | 
|---|
|  |  |  | // { | 
|---|
|  |  |  | //   value: | 
|---|
|  |  |  | //     '{"flylon":"123.43725199999999 °","flylat":"41.69523400039269 °","a34004":"65 mg/m³"}', | 
|---|
|  |  |  | // }, | 
|---|
|  |  |  | // { | 
|---|
|  |  |  | //   value: | 
|---|
|  |  |  | //     '{"flylon":"123.43725199999999 °","flylat":"41.69568400039269 °","a34004":"65 mg/m³"}', | 
|---|
|  |  |  | // }, | 
|---|
|  |  |  | // { | 
|---|
|  |  |  | //   value: | 
|---|
|  |  |  | //     '{"flylon":"123.43725199999999 °","flylat":"41.69568400039269 °","a34004":"65 mg/m³"}', | 
|---|
|  |  |  | // }, | 
|---|
|  |  |  | // { | 
|---|
|  |  |  | //   value: | 
|---|
|  |  |  | //     '{"flylon":"123.43905875000087 °","flylat":"41.69658300039335 °","a34004":"65 mg/m³"}', | 
|---|
|  |  |  | // }, | 
|---|
|  |  |  | // { | 
|---|
|  |  |  | //   value: | 
|---|
|  |  |  | //     '{"flylon":"123.43725199999999 °","flylat":"41.69253600039269 °","a34004":"65 mg/m³"}', | 
|---|
|  |  |  | // }, | 
|---|
|  |  |  | // { | 
|---|
|  |  |  | //   value: | 
|---|
|  |  |  | //     '{"flylon":"123.43725199999999 °","flylat":"41.692986000392686 °","a34004":"65 mg/m³"}', | 
|---|
|  |  |  | // }, | 
|---|
|  |  |  |  | 
|---|
|  |  |  | { | 
|---|
|  |  |  | value: | 
|---|
|  |  |  | '{"flylon":"123.4369507 °","flylat":"41.6968079 °","a34004":"65 mg/m³"}', | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | value: | 
|---|
|  |  |  | '{"flylon":"123.4369507 °","flylat":"41.6991119 °","a34004":"65 mg/m³"}', | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | value: | 
|---|
|  |  |  | '{"flylon":"123.431427 °","flylat":"41.6968079 °","a34004":"65 mg/m³"}', | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | value: | 
|---|
|  |  |  | '{"flylon":"123.431427 °","flylat":"41.6991119 °","a34004":"65 mg/m³"}', | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | value: | 
|---|
|  |  |  | '{"flylon":"123.4334869 °","flylat":"41.6990967 °","a34004":"70 mg/m³"}', | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | ], | 
|---|
|  |  |  | nums: 5, | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | dataTypeList: [ | 
|---|
|  |  |  | { | 
|---|
|  |  |  | value: 'history', | 
|---|
|  |  |  | 
|---|
|  |  |  | new Date(2020, 1, 1, 0, 0, 0), | 
|---|
|  |  |  | new Date(2022, 12, 31, 23, 59, 59), | 
|---|
|  |  |  | ], | 
|---|
|  |  |  | timeNums: [], | 
|---|
|  |  |  | batchs: '', | 
|---|
|  |  |  | macs: '', | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | mounted() { | 
|---|
|  |  |  | this.$refs.datePick.focus() | 
|---|
|  |  |  | // this.getDate() | 
|---|
|  |  |  | // this.flyData() | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | 
|---|
|  |  |  | this.newTime(this.timeValue) | 
|---|
|  |  |  | this.newDate() | 
|---|
|  |  |  | this.getDate() | 
|---|
|  |  |  | // this.$watch('carMac', () => { | 
|---|
|  |  |  | // }) | 
|---|
|  |  |  | // var c = {} | 
|---|
|  |  |  | // var cc = [] | 
|---|
|  |  |  | // for (var i = 0; i < this.luvalue.nnn.length; i++) { | 
|---|
|  |  |  | //   this.luvalue.nnn[i].value = JSON.parse(this.luvalue.nnn[i].value) | 
|---|
|  |  |  | //   cc.push(this.luvalue.nnn[i].value) | 
|---|
|  |  |  | //   console.log(cc) | 
|---|
|  |  |  | //   for (let item of cc) { | 
|---|
|  |  |  | //     console.log(item) | 
|---|
|  |  |  | //   } | 
|---|
|  |  |  | // for (var j = 0; j < this.luvalue.nnn[i].value.length; j++) { | 
|---|
|  |  |  | //   console.log(j) | 
|---|
|  |  |  | //   console.log(parseFloat(this.luvalue.nnn[i].value.flylat)) | 
|---|
|  |  |  | // c.push(parseFloat(this.luvalue.nnn[i].value[j].flylat)+0.00048) | 
|---|
|  |  |  | // } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | methods: { | 
|---|
|  |  |  | selectDuo() { | 
|---|
|  |  |  | if (this.view) { | 
|---|
|  |  |  | this.view.removeAllLayers() | 
|---|
|  |  |  | this.map.clearOverlays() | 
|---|
|  |  |  | } | 
|---|
|  |  |  | this.$request({ | 
|---|
|  |  |  | // url: '/uav/queryDataByBatch', | 
|---|
|  |  |  | url: '/uav/test', | 
|---|
|  |  |  | method: 'post', | 
|---|
|  |  |  | data: { | 
|---|
|  |  |  | batch: this.batchs, | 
|---|
|  |  |  | uvasize: this.uvasize, | 
|---|
|  |  |  | height: 0, | 
|---|
|  |  |  | mac: this.macs, | 
|---|
|  |  |  | // batch: '2023-06-16 16:21:21', | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | }).then((res) => { | 
|---|
|  |  |  | console.log(res) | 
|---|
|  |  |  | this.carData = [] | 
|---|
|  |  |  | if (res.data === 'null') { | 
|---|
|  |  |  | this.noneData = true | 
|---|
|  |  |  | this.loading = false | 
|---|
|  |  |  | return | 
|---|
|  |  |  | } | 
|---|
|  |  |  | for (var i = 0; i < res.data.length; i++) { | 
|---|
|  |  |  | res.data[i].flyLat = res.data[i].flyLat + ' °'.toString() | 
|---|
|  |  |  | res.data[i].flyLon = res.data[i].flyLon + ' °'.toString() | 
|---|
|  |  |  | // res.data[i].a34004 = Math.floor(Math.random() * 100 + 1) | 
|---|
|  |  |  | this.carData.push(res.data[i]) | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (this.Duovalue != '') { | 
|---|
|  |  |  | this.radioSeven = '' | 
|---|
|  |  |  | } | 
|---|
|  |  |  | this.changeCode(this.Duovalue) | 
|---|
|  |  |  | this.initStart(this.carData) | 
|---|
|  |  |  | if (res.data.vos.length) { | 
|---|
|  |  |  | this.initStart(this.carData) | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | chooseDate() { | 
|---|
|  |  |  | this.$refs.datePick.focus() // 选择日期后依旧触发焦点 | 
|---|
|  |  |  | this.getTimeAreaData(this.datenum) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | // chooseDate1() { | 
|---|
|  |  |  | //   this.$refs.datePick.focus() // 选择日期后依旧触发焦点 | 
|---|
|  |  |  | //   this.$refs.uvas.focus() | 
|---|
|  |  |  | // }, | 
|---|
|  |  |  | gengD() { | 
|---|
|  |  |  | if (this.zhanK === 1) { | 
|---|
|  |  |  | this.$message.warning('请先在左侧选择无人机和时间') | 
|---|
|  |  |  | return | 
|---|
|  |  |  | } | 
|---|
|  |  |  | this.selecttrue = 2 | 
|---|
|  |  |  | $('.dds').css({ height: '150px' }) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | shou() { | 
|---|
|  |  |  | this.selecttrue = 1 | 
|---|
|  |  |  | $('.dds').css({ height: '100px' }) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | parseTime(time, cFormat) { | 
|---|
|  |  |  | if (arguments.length === 0 || !time) { | 
|---|
|  |  |  | return null | 
|---|
|  |  |  | } | 
|---|
|  |  |  | const format = cFormat || '{y}-{m}-{d} {h}:{i}:{s}' | 
|---|
|  |  |  | let date | 
|---|
|  |  |  | if (typeof time === 'object') { | 
|---|
|  |  |  | date = time | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | if (typeof time === 'string') { | 
|---|
|  |  |  | if (/^[0-9]+$/.test(time)) { | 
|---|
|  |  |  | time = parseInt(time) | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | time = time.replace(new RegExp(/-/gm), '/') | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (typeof time === 'number' && time.toString().length === 10) { | 
|---|
|  |  |  | time = time * 1000 | 
|---|
|  |  |  | } | 
|---|
|  |  |  | date = new Date(time) | 
|---|
|  |  |  | } | 
|---|
|  |  |  | const formatObj = { | 
|---|
|  |  |  | y: date.getFullYear(), | 
|---|
|  |  |  | m: date.getMonth() + 1, | 
|---|
|  |  |  | d: date.getDate(), | 
|---|
|  |  |  | h: date.getHours(), | 
|---|
|  |  |  | i: date.getMinutes(), | 
|---|
|  |  |  | s: date.getSeconds(), | 
|---|
|  |  |  | a: date.getDay(), | 
|---|
|  |  |  | } | 
|---|
|  |  |  | const time_str = format.replace(/{([ymdhisa])+}/g, (result, key) => { | 
|---|
|  |  |  | const value = formatObj[key] | 
|---|
|  |  |  | if (key === 'a') { | 
|---|
|  |  |  | return ['日', '一', '二', '三', '四', '五', '六'][value] | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return value.toString().padStart(2, '0') | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | return time_str | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | newTime2(timeArr) { | 
|---|
|  |  |  | var arr = [] | 
|---|
|  |  |  | timeArr.map((v) => { | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | // 获取无人机以及时间区间 | 
|---|
|  |  |  | getTimeAreaData(item, index) { | 
|---|
|  |  |  | this.asideData.activeAreaKey = -1 | 
|---|
|  |  |  | this.asideData.activeKey = index | 
|---|
|  |  |  | getTimeAreaData(item) { | 
|---|
|  |  |  | this.$request({ | 
|---|
|  |  |  | url: 'uav/queryTimeSlot', | 
|---|
|  |  |  | method: 'get', | 
|---|
|  |  |  | 
|---|
|  |  |  | date: item, | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | }).then((res) => { | 
|---|
|  |  |  | console.log(res.data.vos.length, 'res.data.vos') | 
|---|
|  |  |  | if (res.data.vos.length == 0) { | 
|---|
|  |  |  | this.asideData = [] | 
|---|
|  |  |  | console.log(res.data.vos, 'res.data.vos') | 
|---|
|  |  |  | if (res.data.vos.length === 0) { | 
|---|
|  |  |  | this.noneData = true | 
|---|
|  |  |  | this.loading = false | 
|---|
|  |  |  | return false | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | this.asideData.uavTimeFly = res.data.vos | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | this.addLayers(item) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | // 初始化地图 | 
|---|
|  |  |  | getFlyData(item, index) { | 
|---|
|  |  |  | console.log(index, 'index') | 
|---|
|  |  |  | console.log(item.batch) | 
|---|
|  |  |  | getFlyData(item, index, mac) { | 
|---|
|  |  |  | this.batchs = item.batch | 
|---|
|  |  |  | this.macs = mac | 
|---|
|  |  |  | this.noneData = false | 
|---|
|  |  |  | if (this.view) { | 
|---|
|  |  |  | this.view.removeAllLayers() | 
|---|
|  |  |  | 
|---|
|  |  |  | this.$request({ | 
|---|
|  |  |  | // url: '/uav/queryDataByBatch', | 
|---|
|  |  |  | url: '/uav/test', | 
|---|
|  |  |  | method: 'get', | 
|---|
|  |  |  | params: { | 
|---|
|  |  |  | // batch: item.batch, | 
|---|
|  |  |  | method: 'post', | 
|---|
|  |  |  | data: { | 
|---|
|  |  |  | batch: item.batch, | 
|---|
|  |  |  | uvasize: this.uvasize, | 
|---|
|  |  |  | height: 0, | 
|---|
|  |  |  | mac: mac, | 
|---|
|  |  |  | // batch: '2023-06-16 16:21:21', | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | }).then((res) => { | 
|---|
|  |  |  | 
|---|
|  |  |  | for (var i = 0; i < res.data.length; i++) { | 
|---|
|  |  |  | res.data[i].flyLat = res.data[i].flyLat + ' °'.toString() | 
|---|
|  |  |  | res.data[i].flyLon = res.data[i].flyLon + ' °'.toString() | 
|---|
|  |  |  | res.data[i].a34004 = Math.floor(Math.random() * 100 + 1) | 
|---|
|  |  |  | // res.data[i].a34004 = Math.floor(Math.random() * 100 + 1) | 
|---|
|  |  |  | this.carData.push(res.data[i]) | 
|---|
|  |  |  | } | 
|---|
|  |  |  | this.initStart(this.carData) | 
|---|
|  |  |  | // if (res.data.vos.length) { | 
|---|
|  |  |  | //   // for (var i = 0; i < this.luvalue.nums; i++) { | 
|---|
|  |  |  | //   //   this.carData.push(JSON.parse(this.luvalue.nnn[i].value)) | 
|---|
|  |  |  | //   // } | 
|---|
|  |  |  | //   //  for (var i = 0; i < res.data.vos.length; i++) { | 
|---|
|  |  |  | //   //   this.carData.push(JSON.parse(res.data.vos[i].value)) | 
|---|
|  |  |  | //   // } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //   // this.carData.push( | 
|---|
|  |  |  | //   //   JSON.parse( | 
|---|
|  |  |  | //   //     '{"flylon":"123.516289 °","flylat":"41.738213 °","a21005":"0.045 mg/m³","a21004":"39 ug/m³","a21026":"8 ug/m³","flyhig":"1.4 m","a34002":"86 ug/m³","a99054":"0.008 mg/m³","a05024":"51 ug/m³","a34004":"64 ug/m³"}' | 
|---|
|  |  |  | //   //   ) | 
|---|
|  |  |  | //   // ) | 
|---|
|  |  |  | //   this.initStart(this.carData) | 
|---|
|  |  |  | // } | 
|---|
|  |  |  | this.zhanK = 2 | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | // 获取组织下存在飞行记录的日期 | 
|---|
|  |  |  | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | }).then((res) => { | 
|---|
|  |  |  | this.asideData.dates = JSON.parse(JSON.stringify(res.data.datesStr)) | 
|---|
|  |  |  | this.timeNums = this.asideData.dates | 
|---|
|  |  |  | if (this.asideData.dates.length > 0) { | 
|---|
|  |  |  | this.getTimeAreaData(this.asideData.dates[0], 0) | 
|---|
|  |  |  | this.datenum = this.asideData.dates[0] | 
|---|
|  |  |  | setTimeout(() => { | 
|---|
|  |  |  | if (this.asideData.uavTimeFly[0].timeSlot) { | 
|---|
|  |  |  | console.log( | 
|---|
|  |  |  | this.asideData.uavTimeFly[0].timeSlot, | 
|---|
|  |  |  | 'this.asideData.uavTimeFly[0].timeSlot' | 
|---|
|  |  |  | ) | 
|---|
|  |  |  | // console.log( | 
|---|
|  |  |  | //   this.asideData.uavTimeFly[0].timeSlot, | 
|---|
|  |  |  | //   'this.asideData.uavTimeFly[0].timeSlot[0]' | 
|---|
|  |  |  | // ) | 
|---|
|  |  |  | this.getFlyData(this.asideData.uavTimeFly[0].timeSlot[0], 0) | 
|---|
|  |  |  | this.getFlyData(this.asideData.uavTimeFly[0].timeSlot[0], 0, mac) | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, 500) | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | point.a34002 = parseInt(value.a34002) | 
|---|
|  |  |  | point.a21026 = parseInt(value.a21026) | 
|---|
|  |  |  | point.a21004 = parseInt(value.a21004) | 
|---|
|  |  |  | point.a01006 = parseInt(value.a01006) | 
|---|
|  |  |  | point.a01001 = parseInt(value.a01001) | 
|---|
|  |  |  | point.a01002 = parseInt(value.a01002) | 
|---|
|  |  |  | point.a21005 = parseFloat(value.a21005).toFixed(3) | 
|---|
|  |  |  | point.a05024 = parseInt(value.a05024) | 
|---|
|  |  |  | point.a99054 = parseFloat(value.a99054).toFixed(3) | 
|---|
|  |  |  | if ( | 
|---|
|  |  |  | value.dustld - 0 !== 0 && | 
|---|
|  |  |  | value.dustld - 0 < 100 && | 
|---|
|  |  |  | (that.carMac === 'p5dnd7a0243622' || | 
|---|
|  |  |  | that.carMac === 'p5dnd7a0243625') | 
|---|
|  |  |  | ) { | 
|---|
|  |  |  | point.dustld = 100 | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | point.dustld = value.dustld - 0 | 
|---|
|  |  |  | } | 
|---|
|  |  |  | // point.dustld = value.dustld - 0 | 
|---|
|  |  |  | trackPoints.push(point) | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | 
|---|
|  |  |  | that.viewType = this.viewKey | 
|---|
|  |  |  | that.size = this.uvasize | 
|---|
|  |  |  | that.distance = that.size / 2 / Math.sin((1 * Math.PI) / 4) | 
|---|
|  |  |  | console.log(that.distance, 'that.distance') | 
|---|
|  |  |  | // 已有地图,避免再次请求 | 
|---|
|  |  |  | if (!that.showPoints) { | 
|---|
|  |  |  | that.map = new BMapGL.Map('map_container') | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | $.each(that.showPoints, function (index, value) { | 
|---|
|  |  |  | var sw = getPoint(225, value.lng, value.lat, that.distance) | 
|---|
|  |  |  | var ne = getPoint(45, value.lng, value.lat, that.distance) | 
|---|
|  |  |  | var ne = getPoint(45, value.lng, value.lat, 30) | 
|---|
|  |  |  | var polygon = [] | 
|---|
|  |  |  | var point1 = [] | 
|---|
|  |  |  | var point2 = [] | 
|---|
|  |  |  | 
|---|
|  |  |  | level = 6 | 
|---|
|  |  |  | } | 
|---|
|  |  |  | break | 
|---|
|  |  |  | case 'a01006': | 
|---|
|  |  |  | if (data) { | 
|---|
|  |  |  | color = '#00e400' | 
|---|
|  |  |  | level = 1 | 
|---|
|  |  |  | } | 
|---|
|  |  |  | break | 
|---|
|  |  |  | case 'a01001': | 
|---|
|  |  |  | if (data) { | 
|---|
|  |  |  | color = '#00e400' | 
|---|
|  |  |  | level = 1 | 
|---|
|  |  |  | } | 
|---|
|  |  |  | break | 
|---|
|  |  |  | case 'a01002': | 
|---|
|  |  |  | if (data) { | 
|---|
|  |  |  | color = '#00e400' | 
|---|
|  |  |  | level = 1 | 
|---|
|  |  |  | } | 
|---|
|  |  |  | break | 
|---|
|  |  |  | case 'dustld': | 
|---|
|  |  |  | if (data < levelData[7].tab1) { | 
|---|
|  |  |  | color = '#00e400' | 
|---|
|  |  |  | 
|---|
|  |  |  | case 'TVOC': | 
|---|
|  |  |  | this.sensorKey = 'a99054' | 
|---|
|  |  |  | break | 
|---|
|  |  |  | case '湿度': | 
|---|
|  |  |  | this.sensorKey = 'a01002' | 
|---|
|  |  |  | break | 
|---|
|  |  |  | case '温度': | 
|---|
|  |  |  | this.sensorKey = 'a01001' | 
|---|
|  |  |  | break | 
|---|
|  |  |  | case '气压': | 
|---|
|  |  |  | this.sensorKey = 'a01006' | 
|---|
|  |  |  | break | 
|---|
|  |  |  | case 'dustld': | 
|---|
|  |  |  | this.sensorKey = 'dustld' | 
|---|
|  |  |  | break | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | </script> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <style  lang="scss" scoped> | 
|---|
|  |  |  | <style  lang="scss" > | 
|---|
|  |  |  | /deep/.BMap_cpyCtrl { | 
|---|
|  |  |  | display: none; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | z-index: 10; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /deep/ .el-input__inner { | 
|---|
|  |  |  | height: 40px; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | /deep/ .el-picker-panel__body { | 
|---|
|  |  |  | width: 280px; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .el-main { | 
|---|
|  |  |  | padding: 0; | 
|---|
|  |  |  | width: 100%; | 
|---|
|  |  |  | 
|---|
|  |  |  | height: 38px; | 
|---|
|  |  |  | border-radius: 0; | 
|---|
|  |  |  | width: 80px; | 
|---|
|  |  |  | line-height: 0.5; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .per-date { | 
|---|
|  |  |  | height: 50px; | 
|---|
|  |  |  | 
|---|
|  |  |  | font-family: '微软雅黑'; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | /deep/.inputNum { | 
|---|
|  |  |  | width: 5% !important; | 
|---|
|  |  |  | width: 4% !important; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .dateArrClass { | 
|---|
|  |  |  | position: relative; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .dateArrClass > div ::after { | 
|---|
|  |  |  | content: ''; | 
|---|
|  |  |  | position: absolute; | 
|---|
|  |  |  | right: 8px; | 
|---|
|  |  |  | top: 23px; | 
|---|
|  |  |  | width: 5px; | 
|---|
|  |  |  | height: 5px; | 
|---|
|  |  |  | border-radius: 50%; | 
|---|
|  |  |  | z-index: 999; | 
|---|
|  |  |  | background-color: #f40; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .numss { | 
|---|
|  |  |  | width: 750px; | 
|---|
|  |  |  | background-color: white; | 
|---|
|  |  |  | padding: 10px; | 
|---|
|  |  |  | margin-top: 17px; | 
|---|
|  |  |  | display: flex; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | /deep/.el-select { | 
|---|
|  |  |  | width: 8% !important; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .Duo { | 
|---|
|  |  |  | height: 70px; | 
|---|
|  |  |  | display: flex; | 
|---|
|  |  |  | overflow: hidden; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .spantu { | 
|---|
|  |  |  | width: 190px; | 
|---|
|  |  |  | // margin-top: 10px; | 
|---|
|  |  |  | // margin-left: 20px; | 
|---|
|  |  |  | // background-color: white; | 
|---|
|  |  |  | // height: 40px; | 
|---|
|  |  |  | display: flex; | 
|---|
|  |  |  | margin-left: 20px; | 
|---|
|  |  |  | line-height: 70px; | 
|---|
|  |  |  | font-weight: 5px; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .inputtu { | 
|---|
|  |  |  | width: 35%; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .slee { | 
|---|
|  |  |  | line-height: 70px; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .spantuu { | 
|---|
|  |  |  | width: 400px; | 
|---|
|  |  |  | line-height: 70px; | 
|---|
|  |  |  | .inputtu { | 
|---|
|  |  |  | width: 20%; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .jlpMySelectPopper.el-picker-panel { | 
|---|
|  |  |  | width: 280px; | 
|---|
|  |  |  | height: 330px; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .jlpMySelectPopper.el-date-picker table { | 
|---|
|  |  |  | width: 88%; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | </style> | 
|---|