派生自 wuyushui/SewerAndRainNetwork

徐旺旺
2021-03-30 eb6674449920c5452811feee3d82f6c6b965089d
Merge remote-tracking branch 'origin/develop' into develop
1个文件已删除
2个文件已添加
6个文件已修改
471 ■■■■■ 已修改文件
src/api/request.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/BaseNav/PublicBounced/GasComponents/GasECharts.vue 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/BaseNav/PublicBounced/GasComponents/GasTab.vue 123 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/BaseNav/PublicBounced/GasComponents/GasTable.vue 88 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/BaseNav/PublicBounced/GasComponents/GasVideo.vue 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/BaseNav/PublicBounced/GasComponents/PublicTable.vue 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/BaseNav/PublicBounced/PublicBounced.vue 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/BaseNav/SolidWaste/SolidWaste.js 27 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/BaseNav/SolidWaste/directive.js 73 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/request.js
@@ -21,4 +21,4 @@
      'Content-Type': 'application/json'
    }
  })
}
}
src/components/BaseNav/PublicBounced/GasComponents/GasECharts.vue
@@ -1,5 +1,17 @@
<template>
  <div id="echarts" style="width:300px;height:222px" ref="main"></div>
  <!-- 框 -->
  <div class="win">
    <!-- 四个角的边框效果 -->
    <div class="border_corner border_corner_left_top"></div>
    <div class="border_corner border_corner_right_top"></div>
    <div class="border_corner border_corner_left_bottom"></div>
    <div class="border_corner border_corner_right_bottom"></div>
    <div class="main">
      <div class="main-echarts">
        <div id="echarts" style="width:100%;height:100%" ref="main"></div>
      </div>
    </div>
  </div>
</template>
<script>
@@ -16,9 +28,9 @@
        tooltip: {
          trigger: 'axis'
        },
        legend: {
          data: ['邮件营销', '联盟广告', '视频广告', '直接访问', '搜索引擎']
        },
        // legend: {
        //   data: ['邮件营销', '联盟广告', '视频广告', '直接访问', '搜索引擎']
        // },
        grid: {
          left: '3%',
          right: '4%',
@@ -103,5 +115,50 @@
</script>
<style scoped lang="less">
.win {
  width: 100%;
  height: 100%;
  position: relative;
  //display: inline-block;
  background-color: rgba(33, 41, 69,0.9);
}
.border_corner{
  z-index: 2500;
  position: absolute;
  width: 10px;
  height: 10px;
  background: rgba(0,0,0,0);
  border: 1.5px solid #47d5ea;
}
.border_corner_left_top{
  top: 0;
  left: 0;
  border-right: none;
  border-bottom: none;
}
.border_corner_right_top{
  top: 0;
  right: 0;
  border-left: none;
  border-bottom: none;
}
.border_corner_left_bottom{
  bottom: 0;
  left: 0;
  border-right: none;
  border-top: none;
}
.border_corner_right_bottom{
  bottom: 0;
  right: 0;
  border-left: none;
  border-top: none;
}
.main {
  width: 100%;
  height: 100%;
  .main-echarts{
    border: 1px solid #396d83;
  }
}
</style>
src/components/BaseNav/PublicBounced/GasComponents/GasTab.vue
New file
@@ -0,0 +1,123 @@
<template>
  <!-- 框 -->
  <div class="win">
    <!-- 四个角的边框效果 -->
    <div class="border_corner border_corner_left_top"></div>
    <div class="border_corner border_corner_right_top"></div>
    <div class="border_corner border_corner_left_bottom"></div>
    <div class="border_corner border_corner_right_bottom"></div>
    <div class="main">
      <div class="main-matter">
        <el-row type="flex" class="row-bg row-item-one" justify="space-around">
          <el-col :span="12">监测点名称:{{ displayContent.Name }}</el-col>
          <el-col :span="12">生产单位:{{ displayContent.DeptSname }}</el-col>
          <el-col :span="12">排放类型加载:{{ displayContent.EmissTypeName }}</el-col>
        </el-row>
        <el-row type="flex" class="row-bg" justify="space-around">
          <el-col :span="12">排放去向:{{ displayContent.EmissTypeDirectName }}</el-col>
          <el-col :span="12">控制级别名称:{{ displayContent.ContrLevelShowName }}</el-col>
          <el-col :span="12">内/外排口:{{ displayContent.OrOutPortName }}</el-col>
        </el-row>
      </div>
    </div>
  </div>
</template>
<script>
export default {
  name: 'GasTable',
  props: ['displayContent'],
  data () {
    return {}
  }
}
</script>
<style scoped lang="less">
.win {
  position: relative;
  //display: inline-block;
  margin-bottom: 13px;
  background-color: rgba(33, 41, 69,0.9);
}
.main {
  width: 100%;
  height: 100%;
  .main-matter{
    font-size: 13px;
    padding: 9px 7px;
    font-weight: normal;
    border: 1px solid #396d83;
    .row-item-one{
      margin-bottom: 7px;
    }
    .el-row {
      width: 100%;
      color: #00d0f9;
      display: flex;
      font-size: 12px!important;
      .el-col{
        flex: 1;
        width: 100%;
        background-color: #243a55;;
        text-align: center;
        line-height: 28px;
        margin-left: 6px;
        border-radius: 4px;
        &:nth-child(1){
          margin-left:0;
        }
      }
    }
  }
}
.border_corner{
  z-index: 2500;
  position: absolute;
  width: 10px;
  height: 10px;
  background: rgba(0,0,0,0);
  border: 1.5px solid #47d5ea;
}
.border_corner_left_top{
  top: 0;
  left: 0;
  border-right: none;
  border-bottom: none;
}
.border_corner_right_top{
  top: 0;
  right: 0;
  border-left: none;
  border-bottom: none;
}
.border_corner_left_bottom{
  bottom: 0;
  left: 0;
  border-right: none;
  border-top: none;
}
.border_corner_right_bottom{
  bottom: 0;
  right: 0;
  border-left: none;
  border-top: none;
}
//.el-row {
//  width: 100%;
//  color: #00d0f9;
//  .el-col{
//    width: 180px;
//    height: 28px;
//    background-color: #243a55;;
//    text-align: center;
//    line-height: 28px;
//    margin-left: 6px;
//    border-radius: 4px;
//    &:nth-child(1){
//      margin-left:0;
//    }
//  }
//}
</style>
src/components/BaseNav/PublicBounced/GasComponents/GasTable.vue
File was deleted
src/components/BaseNav/PublicBounced/GasComponents/GasVideo.vue
@@ -1,12 +1,12 @@
<template>
  <div class="win">
  <div class="win" >
    <!-- 四个角的边框效果 -->
    <div class="border_corner border_corner_left_top"></div>
    <div class="border_corner border_corner_right_top"></div>
    <div class="border_corner border_corner_left_bottom"></div>
    <div class="border_corner border_corner_right_bottom"></div>
    <div class="main">
      <div>
      <div class="main-video">
        <video width="100%" height="100%" controls>
          <source src="movie.mp4" type="video/mp4">
          <source src="movie.ogg" type="video/ogg">
@@ -22,17 +22,22 @@
}
</script>
<style scoped>
<style scoped lang="less">
.win {
  width: 100%;
  /*width: 100%;*/
  /*height: 100%;*/
  position: relative;
  display: inline-block;
//border: 1px solid #396d83;
  //display: inline-block;
  background-color: rgba(33, 41, 69,0.9);
/*//border: 1px solid #396d83;*/
}
.main {
  width: 100%;
  height: 100%;
  .main-video {
    padding: 7px;
    border: 1px solid #396d83;
  }
}
.border_corner{
  z-index: 2500;
@@ -40,7 +45,7 @@
  width: 14px;
  height: 14px;
  background: rgba(0,0,0,0);
  border: 2px solid #47d5ea;
  border: 1.5px solid #47d5ea;
}
.border_corner_left_top{
  top: 0;
@@ -59,7 +64,6 @@
  left: 0;
  border-right: none;
  border-top: none;
  border-bottom-left-radius: 4px;
}
.border_corner_right_bottom{
  bottom: 0;
src/components/BaseNav/PublicBounced/GasComponents/PublicTable.vue
New file
@@ -0,0 +1,53 @@
<template>
  <div class="public-table">
    <table border="1">
      <tr>
        <th>111</th>
        <th>111</th>
        <th>111</th>
        <th>111</th>
        <th>111</th>
        <th>111</th>
      </tr>
      <tr>
        <td>4444444444</td>
        <td>4444444444</td>
        <td>4444444444</td>
        <td>4444444444</td>
        <td>4444444444</td>
        <td>4444444444</td>
      </tr>
    </table>
  </div>
</template>
<script>
export default {
  name: 'PublicTable',
  data () {
    return {
      tableData: [{
        date: '2016-05-02',
        name: '王小虎',
        address: '上海市普陀区金沙江路 1518 弄'
      }, {
        date: '2016-05-04',
        name: '王小虎',
        address: '上海市普陀区金沙江路 1517 弄'
      }, {
        date: '2016-05-01',
        name: '王小虎',
        address: '上海市普陀区金沙江路 1519 弄'
      }, {
        date: '2016-05-03',
        name: '王小虎',
        address: '上海市普陀区金沙江路 1516 弄'
      }]
    }
  }
}
</script>
<style lang="less" scoped>
</style>
src/components/BaseNav/PublicBounced/PublicBounced.vue
@@ -6,8 +6,9 @@
    </div>
    <div class="public-bounced-content">
      <div class="public-bounced-content-left">
        <GasTable :displayContent="displayContent"></GasTable>
        <GasECharts></GasECharts>
        <GasTab :displayContent="displayContent"></GasTab>
        <PublicTable v-if="value === 'gufei'"></PublicTable>
        <GasECharts v-else></GasECharts>
      </div>
      <div class="public-bounced-content-right">
        <GasVideo></GasVideo>
@@ -19,14 +20,16 @@
<script>
import '@/components/BaseNav/SolidWaste/directive'
import GasTable from '@components/BaseNav/PublicBounced/GasComponents/GasTable'
import GasTab from '@components/BaseNav/PublicBounced/GasComponents/GasTab'
import PublicTable from '@components/BaseNav/PublicBounced/GasComponents/PublicTable'
import GasECharts from '@components/BaseNav/PublicBounced/GasComponents/GasECharts'
import GasVideo from '@components/BaseNav/PublicBounced/GasComponents/GasVideo'
export default {
  name: 'PublicBounced',
  components: {
    GasTable,
    GasTab,
    PublicTable,
    GasECharts,
    GasVideo
  },
@@ -37,9 +40,10 @@
    }
  },
  methods: {
    setData (data) {
    setData (data, value) {
      this.displayContent = data
      this.flag = true
      this.value = value
    },
    closePopup () {
      this.flag = false
@@ -51,7 +55,7 @@
<style lang="less" scoped>
.public-bounced {
  z-index: 999;
  position: fixed;
  position: absolute;
  top: 50%;
  left: 50%;
  background-color: #002432;
@@ -90,4 +94,4 @@
  }
}
</style>
</style>
src/components/BaseNav/SolidWaste/SolidWaste.js
@@ -52,20 +52,24 @@
        // var url = Icon.options.iconUrl
        const marker = this.L.marker([positionX, positionY], { icon: Icon })
        // 划过出现 展示数据
        marker.bindTooltip(data[i].Name, {
          permanent: true,
          offset: [0, 16],
          direction: 'bottom',
          offset: [0, -16],
          direction: 'top',
          className: ''
        })
        // 点击 事件
        marker.on('click', (e) => {
          try {
            console.log(e)
            // console.log(e)
            // console.log(this.map.getCenter())
            // console.log(this.map.setCenter([e.target.getLatLng().lat, e.target.getLatLng().lng]))
            // this.map.flyTo([e.target.getLatLng().lat, e.target.getLatLng().lng])
            // this.map.panTo([e.target.getLatLng().lat, e.target.getLatLng().lng], 100)
            this.setPanTo(e.target.getLatLng(), 30)
            this.EffectOfPulse(e.target.getLatLng())
            this.SolidWastePopup.setData(data[i])
            this.SolidWastePopup.setData(data[i], 'gufei')
            return this.SolidWastePopup.$el
          } catch (error) {
            console.log(error)
@@ -75,6 +79,16 @@
        this.SolidWasteLayerGroup.addLayer(marker)
      }
    }
  }
  // panTo
  setPanTo (pos, value) {
    var position = pos
    position = this.map.latLngToLayerPoint(position)
    position.y += value
    position = this.map.layerPointToLatLng(position)
    this.map.setView(position)
    // this.map.flyTo(position)
  }
  // 固废点击进行的 内容的设置
@@ -106,7 +120,7 @@
  // 脉冲效果设置实现
  EffectOfPulse (position, markers, layerGroup) {
    // // 区分直接执行 和判断执行的不同区别
    // 区分直接执行 和判断执行的不同区别
    var differentColor = ''
    if (markers) {
      differentColor = '#ff0000'
@@ -140,7 +154,6 @@
    var HeightLightTime = 5
    var PulseNumber = 5
    const pulseinterver = setInterval((e) => {
      console.log(e)
      if (PulseNumber > 0) {
        PulseNumber--
      } else {
src/components/BaseNav/SolidWaste/directive.js
@@ -57,76 +57,3 @@
    delete el._checkPosition
  }
})
// v-dialogDrag: 弹窗拖拽
Vue.directive('dialogDrag', {
  bind (el, binding, vnode, oldVnode) {
    const dialogHeaderEl = el.querySelector('.el-dialog__header')
    const dragDom = el.querySelector('.el-dialog')
    dialogHeaderEl.style.cursor = 'move'
    // 获取原有属性 ie dom元素.currentStyle 火狐谷歌 window.getComputedStyle(dom元素, null);
    const sty = dragDom.currentStyle || window.getComputedStyle(dragDom, null)
    dialogHeaderEl.onmousedown = (e) => {
      // 鼠标按下,计算当前元素距离可视区的距离
      const disX = e.clientX - dialogHeaderEl.offsetLeft
      const disY = e.clientY - dialogHeaderEl.offsetTop
      // 获取到的值带px 正则匹配替换
      let styL, styT
      // 注意在ie中 第一次获取到的值为组件自带50% 移动之后赋值为px
      if (sty.left.includes('%')) {
        styL = +document.body.clientWidth * (+sty.left.replace(/%/g, '') / 100)
        styT = +document.body.clientHeight * (+sty.top.replace(/%/g, '') / 100)
      } else {
        styL = +sty.left.replace(/px/g, '')
        styT = +sty.top.replace(/px/g, '')
      }
      document.onmousemove = function (e) {
        // 通过事件委托,计算移动的距离
        const l = e.clientX - disX
        const t = e.clientY - disY
        // 移动当前元素
        dragDom.style.left = `${l + styL}px`
        dragDom.style.top = `${t + styT}px`
        // 将此时的位置传出去
        // binding.value({x:e.pageX,y:e.pageY})
      }
      document.onmouseup = function (e) {
        document.onmousemove = null
        document.onmouseup = null
      }
    }
  }
})
// v-dialogDragWidth: 弹窗宽度拖大 拖小
Vue.directive('dialogDragWidth', {
  bind (el, binding, vnode, oldVnode) {
    const dragDom = binding.value.$el.querySelector('.el-dialog')
    el.onmousedown = (e) => {
      // 鼠标按下,计算当前元素距离可视区的距离
      const disX = e.clientX - el.offsetLeft
      document.onmousemove = function (e) {
        e.preventDefault() // 移动时禁用默认事件
        // 通过事件委托,计算移动的距离
        const l = e.clientX - disX
        dragDom.style.width = `${l}px`
      }
      document.onmouseup = function (e) {
        document.onmousemove = null
        document.onmouseup = null
      }
    }
  }
})