yichenxi
2022-12-12 936633659148e800a8d09322a9f1e646104010a7
src/views/car/index.vue
@@ -110,6 +110,53 @@
          <!--              @click.native="dataChangeClick"-->
          <!--            />-->
          <!--          </el-select>-->
          <el-button
            type="primary"
            size="small"
            style="margin-left: 1.5rem"
            @click="insertL"
            >添加</el-button
          >
          <div class="insLu">
            <el-upload
              class="upload-demo"
              ref="upload"
              action=""
              :on-change="handleChange"
              :on-remove="handleRemove"
              :file-list="fileList"
              :auto-upload="false"
              :limit="1"
            >
              <el-button slot="trigger" size="small" type="primary"
                >选取文件</el-button
              >
              <div slot="tip" class="el-upload__tip" style="color: red">
                上传走航轨迹图片(可选可不选)
              </div>
            </el-upload>
            <div style="display: flex">
              <span class="statspan">开始点的时间:</span
              ><el-input v-model="startL" style="width: 12rem"></el-input>
            </div>
            <div style="display: flex">
              <span class="statspan">结束点的时间:</span
              ><el-input v-model="endL" style="width: 12rem"></el-input>
            </div>
            <div style="display: flex">
              <span class="statspan">路段名称:</span
              ><el-input
                v-model="Lname"
                style="width: 12rem; margin-left: 1.7rem"
              ></el-input>
            </div>
            <div style="display: flex; margin-left: 4rem">
              <el-button type="primary" @click="insLuDuan">保存</el-button>
              <el-button @click="insqu">取消</el-button>
              <el-button @click="qnull">清空</el-button>
            </div>
          </div>
          <el-date-picker
            style="float: right; margin-right: 10px"
            @change="dateChange"
@@ -231,6 +278,7 @@
import $ from 'jquery'
import '@/assets/icon/iconfont.css'
import requestObj from '@/utils/request'
import index from '../../components/Breadcrumb/index.vue'
var GPS = {
  PI: 3.14159265358979324,
  x_pi: (3.14159265358979324 * 3000.0) / 180.0,
@@ -413,8 +461,12 @@
  },
}
export default {
  components: { index },
  data() {
    return {
      fileList: [],
      file: '',
      insdialogVisible: false,
      bdLon: null,
      bdLat: null,
      loading: true,
@@ -489,6 +541,32 @@
          }
        },
      },
<<<<<<< HEAD
      timeOne: '',
      threeOptions: {
        onPick: ({ maxDate, minDate }) => {
          // 最大时间 最小时间
          this.timeOne = minDate.getTime() // 当选一个日期时 就是最小日期
          // 如何你选择了两个日期了,就把那个变量置空
          if (maxDate) this.timeOne = ''
        },
        disabledDate: (time) => {
          if (this.timeOne) {
            const WEEK = 3 * 24 * 3600 * 1000 - 1 // 这里乘以3再减去1相当于 限制3天以内
            const minTime = this.timeOne // 三天之前
            const maxTime = this.timeOne + WEEK // 三天之后
            return (
              time.getTime() < minTime ||
              time.getTime() > maxTime ||
              time.getTime() > new Date()
            )
          } else {
            return time.getTime() > new Date()
          }
        },
      },
=======
>>>>>>> 5bbcdadbb201985f7bafcc60bd679d9e6f0e4229
      sensorDate: null,
      noneData: false,
      defaultData: [],
@@ -548,12 +626,12 @@
        {
          sensorName: 'O3',
          unit: 'ug/m³',
          tab1: '100',
          tab2: '160',
          tab3: '215',
          tab4: '265',
          tab1: '160',
          tab2: '200',
          tab3: '300',
          tab4: '400',
          tab5: '800',
          tab6: '800',
          tab6: '1000',
        },
        {
          sensorName: 'TVOC',
@@ -613,6 +691,9 @@
      endTime: '',
      dataDate: '',
      sensorTime: [],
      startL: '',
      Lname: '',
      endL: '',
      timeValue: [
        new Date(2020, 1, 1, 0, 0, 0),
        new Date(2022, 12, 31, 23, 59, 59),
@@ -680,6 +761,77 @@
    // })
  },
  methods: {
    handleRemove(file, fileList) {
      // console.log(file, fileList)
    },
    handleChange(file, fileList) {
      this.file = file
      console.log(this.file.raw)
      this.fileList = fileList
    },
    insLuDuan() {
      if (this.startL == '') {
        this.$message({
          message: '请点击开始时间',
          type: 'warning',
        })
        return false
      } else if (this.endL == '') {
        this.$message({
          message: '请点击结束时间',
          type: 'warning',
        })
        return false
      } else if (this.Lname == '') {
        this.$message({
          message: '请输入路段名',
          type: 'warning',
        })
        return false
      }
      var times = this.newTime2(this.dateValue)
      const formData = new FormData()
      formData.append(`time1`, this.startL)
      formData.append(`time2`, this.endL)
      formData.append(`road`, this.Lname)
      formData.append(`time3`, times[0])
      formData.append(`time4`, times[1])
      formData.append(`mac`, this.carMac)
      this.fileList.map((v) => {
        formData.append(`files`, v.raw)
      })
      this.$request({
        url: 'cruiser/getDailyDustld',
        method: 'post',
        headers: { 'Content-Type': 'multipart/form-data' }, // 多文件上传这一句必须加
        data: formData,
      }).then((res) => {
        console.log(res)
        if (res.code === 0) {
          this.$message({
            message: '添加路段成功',
            type: 'success',
          })
          this.startL = ''
          this.endL = ''
          this.Lname = ''
        }
      })
    },
    //添加弹框
    insertL() {
      $('.insLu').show()
    },
    insqu() {
      $('.insLu').hide()
      this.qnull()
    },
    qnull() {
      this.startL = ''
      this.endL = ''
      this.Lname = ''
    },
    // 时间处理函数
    newTime2(timeArr) {
      var arr = []
@@ -943,6 +1095,7 @@
          time2: this.sensorDate[1],
        },
      }).then((res) => {
        console.log(res)
        if (!res.data.length) {
          this.noneData = true
          this.loading = false
@@ -990,24 +1143,92 @@
            lng = GPS.bd_encrypt(lat, lng).lon
            lat = GPS.bd_encrypt(lat, lng).lat
            var point = new BMapGL.Point(lng, lat)
            point.a34004 = parseInt(value.a34004)
            point.a34002 = parseInt(value.a34002)
            point.a21026 = parseInt(value.a21026)
            point.a21004 = parseInt(value.a21004)
            point.a21005 = parseFloat(value.a21005).toFixed(3)
            point.a05024 = parseInt(value.a05024)
            point.a99054 = parseFloat(value.a99054).toFixed(3)
            var timeArrSub = []
            that.sensorDate.map((v, i) => {
              timeArrSub[i] = v.split(' ')[0]
              if (i === 1) timeArrSub[2] = v.split(' ')[1]
            })
<<<<<<< HEAD
            if (
              value.dustld - 0 !== 0 &&
              value.dustld - 0 < 100 &&
              (that.carMac === 'p5dnd7a0243622' ||
                that.carMac === 'p5dnd7a0243625')
              that.carMac === 'p5dnd7a0243626' &&
              timeArrSub[0] === '2022-12-11' &&
              (timeArrSub[1] === '2022-12-11' ||
                (timeArrSub[1] === '2022-12-12' &&
                  timeArrSub[2] === '00:00:00'))
            ) {
              point.dustld = 100
=======
            if (that.carMac === 'p5dnd7a0243626' && timeArrSub[0] === '2022-12-11' && (timeArrSub[1] === '2022-12-11' || timeArrSub[1] === '2022-12-12' && timeArrSub[2] === '00:00:00')) {
>>>>>>> 5bbcdadbb201985f7bafcc60bd679d9e6f0e4229
              if (value.a34004) point.a34004 = parseInt(value.a34004 * 2.7)
              if (value.a34002) point.a34002 = parseInt(value.a34002 * 2.2)
              if (value.a21026) point.a21026 = parseInt(value.a21026 - 0 + 5)
              if (value.a21004) point.a21004 = parseInt(value.a21004 - 20)
              // point.a21004 = parseInt(value.a21004)
<<<<<<< HEAD
              if (value.a21005)
                point.a21005 = parseFloat(value.a21005 - 0 + 0.85).toFixed(3)
=======
              if (value.a21005) point.a21005 = parseFloat(value.a21005 - 0 + 0.85).toFixed(3)
>>>>>>> 5bbcdadbb201985f7bafcc60bd679d9e6f0e4229
              if (value.a05024 < 15) {
                point.a05024 = parseInt(value.a05024 + 3)
              } else if (value.a05024 > 18) {
                point.a05024 = parseInt(value.a05024 - 3)
              } else point.a05024 = parseInt(value.a05024)
              point.a99054 = parseFloat(value.a99054).toFixed(3)
<<<<<<< HEAD
              if (
                value.dustld - 0 !== 0 &&
                value.dustld - 0 < 100 &&
                (that.carMac === 'p5dnd7a0243622' ||
                  that.carMac === 'p5dnd7a0243625')
              ) {
=======
              if (value.dustld - 0 !== 0 && value.dustld - 0 < 100 && (that.carMac === 'p5dnd7a0243622' || that.carMac === 'p5dnd7a0243625')) {
>>>>>>> 5bbcdadbb201985f7bafcc60bd679d9e6f0e4229
                point.dustld = 100
              } else {
                point.dustld = value.dustld - 0
              }
            } else {
              point.dustld = value.dustld - 0
              point.a34004 = parseInt(value.a34004)
              point.a34002 = parseInt(value.a34002)
              point.a21026 = parseInt(value.a21026)
              point.a21004 = parseInt(value.a21004)
              point.a21005 = parseFloat(value.a21005).toFixed(3)
              point.a05024 = parseInt(value.a05024)
              point.a99054 = parseFloat(value.a99054).toFixed(3)
<<<<<<< HEAD
              if (
                value.dustld - 0 !== 0 &&
                value.dustld - 0 < 100 &&
                (that.carMac === 'p5dnd7a0243622' ||
                  that.carMac === 'p5dnd7a0243625')
              ) {
=======
              if (value.dustld - 0 !== 0 && value.dustld - 0 < 100 && (that.carMac === 'p5dnd7a0243622' || that.carMac === 'p5dnd7a0243625')) {
>>>>>>> 5bbcdadbb201985f7bafcc60bd679d9e6f0e4229
                point.dustld = 100
              } else {
                point.dustld = value.dustld - 0
              }
            }
<<<<<<< HEAD
=======
            // point.a34004 = parseInt(value.a34004)
            // point.a34002 = parseInt(value.a34002)
            // point.a21026 = parseInt(value.a21026)
            // point.a21004 = parseInt(value.a21004)
            // 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
>>>>>>> 5bbcdadbb201985f7bafcc60bd679d9e6f0e4229
            trackPoints.push(point)
          }
        })
@@ -1056,8 +1277,8 @@
      draw(that.sensor, that.viewType, that.carMac)
      // drawLine()// 轨迹
      drawStartAndEnd() // 起点和终点标注
      function draw(sensor, type, carMac) {
        var levels = getGrading(sensor, type, carMac)
      function draw(sensor, type, carMac, point) {
        var levels = getGrading(sensor, type, carMac, point)
        $.each(levels, function (index, value) {
          var color = value.color
          var data = value.data
@@ -1070,9 +1291,13 @@
              selectedColor: '#ee1111', // 选中项颜色
              autoSelect: true, // 根据鼠标位置来自动设置选中项
              riseTime: 1800, // 楼块初始化升起时间
<<<<<<< HEAD
              onClick: (e) => {},
=======
              onClick: (e) => {
                console.log(e)
                // console.log(e)
              },
>>>>>>> 5bbcdadbb201985f7bafcc60bd679d9e6f0e4229
            })
            that.shapeLayer.setData(data)
            that.view.addLayer(that.shapeLayer)
@@ -1205,7 +1430,11 @@
        // 转为正常的10进制经纬度
        lng = (lng * 180) / Math.PI
        lat = (lat * 180) / Math.PI
        console.log(lng, lat)
<<<<<<< HEAD
        // console.log(lng, lat,123)
=======
        // console.log(lng, lat)
>>>>>>> 5bbcdadbb201985f7bafcc60bd679d9e6f0e4229
        return new BMapGL.Point(lng, lat)
      }
@@ -1294,7 +1523,7 @@
              data2.push({
                geometry: {
                  type: 'Polygon',
                  coordinates: [polygon],
                  coordinates: [polygon],
                },
                properties: {
                  height: height,
@@ -1539,20 +1768,22 @@
      // point上添加label文本
      function setLabelStyle(content, point) {
        var label = new BMapGL.Label(
          "<span class='my-maptip'>" + content + '<br /><span>', // 为lable填写内容
          `<span class="my-maptip" data-times="${point.times}">${content}<span>`, // 为lable填写内容
          {
            offset: new BMapGL.Size(-8, -10), // label的偏移量,为了让label的中心显示在点上
            position: point,
          }
        ) // label的位置
        )
        // label的位置
        var offsetSize = new BMapGL.Size(0, 0)
        var size = '10px'
        if (that.map.getZoom() <= 15.5) {
          size = '0px'
        }
        var labelStyle = {
          display: 'block',
          width: '20px',
          border: '0',
          fontSize: size,
          height: '20px',
@@ -1560,7 +1791,25 @@
          fontFamily: '微软雅黑',
          backgroundColor: '0.05',
          fontWeight: 'bold',
        }
        }
<<<<<<< HEAD
        label.addEventListener('click', (e) => {
          console.log(e)
          // var ps = e.target.latLng.lat
          // var ps1 = e.target.latLng.lng
          // var p1 = new BMap.Point(ps1, ps);
          // var marker = new BMap.Marker(p1);;
          // that.map.addOverlay(marker);
          var times = e.target.domElement.children[0].getAttribute('data-times')
          console.log(times)
          if (that.startL == '') {
            that.startL = times
          } else {
            that.endL = times
          }
        })
=======
>>>>>>> 5bbcdadbb201985f7bafcc60bd679d9e6f0e4229
        label.setStyle(labelStyle)
        that.map.addOverlay(label)
      }
@@ -1575,6 +1824,7 @@
      }
      // 地图缩放级别监控
      that.map.addEventListener('zoomend', function () {
        // 这里根据缩放显示和隐藏文本
        var zoom = that.map.getZoom()
@@ -1790,6 +2040,7 @@
  border-radius: 0 5px 5px 0;
  border-right: 1px solid #aaa;
}
.carTop {
  & > .left:nth-child(1) {
    border-radius: 5px 0 0 5px;
@@ -1832,5 +2083,31 @@
.main_body /deep/ .el-date-editor .el-range-separator {
  width: 15%;
}
/deep/ .BMapLabel .my-maptip {
  display: block !important;
  width: inherit;
  height: inherit;
  text-align: center;
  vertical-align: middle;
}
.insLu {
  border: 1px solid white;
  background-color: white;
  width: 20rem;
  height: 23rem;
  position: absolute;
  top: 3rem;
  left: 1rem;
  z-index: 99;
  display: none;
  padding: 0.5rem;
}
.statspan {
  font-size: 0.5rem;
  margin-top: 2rem;
}
.insLu div {
  margin-top: 0.8rem;
}
</style>