yf_zd преди 5 години
родител
ревизия
cd341faa6b
променени са 100 файла, в които са добавени 4641 реда и са изтрити 145 реда
  1. 1 1
      build/webpack.base.conf.js
  2. BIN
      dist.zip
  3. 5 2
      index.html
  4. 15 5
      src/components/index.vue
  5. 233 65
      src/pages/plantGuard/baseAll.vue
  6. 529 0
      src/pages/plantGuard/baseAll半成品.vue
  7. 845 0
      src/pages/plantGuard/irrigate/irrigate.vue
  8. 198 0
      src/pages/plantGuard/irrigate/operatData.vue
  9. 236 0
      src/pages/plantGuard/irrigate/operatData/dcfoperatData.vue
  10. 212 0
      src/pages/plantGuard/irrigate/operatData/sboperatData.vue
  11. 238 0
      src/pages/plantGuard/irrigate/operatData/sfjoperatData.vue
  12. 195 0
      src/pages/plantGuard/irrigate/popUp/dcfPopUp.vue
  13. 311 0
      src/pages/plantGuard/irrigate/popUp/sbPopUp.vue
  14. 251 0
      src/pages/plantGuard/irrigate/popUp/sfjPopUp.vue
  15. 365 0
      src/pages/plantGuard/irrigate/popUp/sqPopUp.vue
  16. 91 0
      src/pages/plantGuard/irrigate/popUp/wranPopUp.vue
  17. 192 0
      src/pages/plantGuard/irrigate/wranData.vue
  18. 276 0
      src/pages/plantGuard/irrigate/wranData/wranDataList.vue
  19. 307 0
      src/pages/plantGuard/irrigate/wranData/wranDataSet.vue
  20. 122 68
      src/pages/plantGuard/page1.vue
  21. 19 4
      src/router/index.js
  22. BIN
      static/images/baseIcon.png
  23. BIN
      static/images/irrigate/dcfIcon.png
  24. BIN
      static/images/irrigate/dcfPhoto.png
  25. BIN
      static/images/irrigate/qxdev/164.png
  26. BIN
      static/images/irrigate/qxdev/165.png
  27. BIN
      static/images/irrigate/qxdev/166.png
  28. BIN
      static/images/irrigate/qxdev/167.png
  29. BIN
      static/images/irrigate/qxdev/168.png
  30. BIN
      static/images/irrigate/qxdev/169.png
  31. BIN
      static/images/irrigate/qxdev/170.png
  32. BIN
      static/images/irrigate/qxdev/171.png
  33. BIN
      static/images/irrigate/qxdev/172.png
  34. BIN
      static/images/irrigate/qxdev/173.png
  35. BIN
      static/images/irrigate/qxdev/174.png
  36. BIN
      static/images/irrigate/qxdev/175.png
  37. BIN
      static/images/irrigate/qxdev/213.png
  38. BIN
      static/images/irrigate/qxdev/214.png
  39. BIN
      static/images/irrigate/qxdev/215.png
  40. BIN
      static/images/irrigate/qxdev/216.png
  41. BIN
      static/images/irrigate/qxdev/icon_100.png
  42. BIN
      static/images/irrigate/qxdev/icon_101.png
  43. BIN
      static/images/irrigate/qxdev/icon_102.png
  44. BIN
      static/images/irrigate/qxdev/icon_103.png
  45. BIN
      static/images/irrigate/qxdev/icon_104.png
  46. BIN
      static/images/irrigate/qxdev/icon_105.png
  47. BIN
      static/images/irrigate/qxdev/icon_106.png
  48. BIN
      static/images/irrigate/qxdev/icon_107.png
  49. BIN
      static/images/irrigate/qxdev/icon_108.png
  50. BIN
      static/images/irrigate/qxdev/icon_109.png
  51. BIN
      static/images/irrigate/qxdev/icon_110.png
  52. BIN
      static/images/irrigate/qxdev/icon_111.png
  53. BIN
      static/images/irrigate/qxdev/icon_112.png
  54. BIN
      static/images/irrigate/qxdev/icon_113.png
  55. BIN
      static/images/irrigate/qxdev/icon_114.png
  56. BIN
      static/images/irrigate/qxdev/icon_115.png
  57. BIN
      static/images/irrigate/qxdev/icon_116.png
  58. BIN
      static/images/irrigate/qxdev/icon_117.png
  59. BIN
      static/images/irrigate/qxdev/icon_118.png
  60. BIN
      static/images/irrigate/qxdev/icon_119.png
  61. BIN
      static/images/irrigate/qxdev/icon_120.png
  62. BIN
      static/images/irrigate/qxdev/icon_121.png
  63. BIN
      static/images/irrigate/qxdev/icon_122.png
  64. BIN
      static/images/irrigate/qxdev/icon_123.png
  65. BIN
      static/images/irrigate/qxdev/icon_124.png
  66. BIN
      static/images/irrigate/qxdev/icon_125.png
  67. BIN
      static/images/irrigate/qxdev/icon_126.png
  68. BIN
      static/images/irrigate/qxdev/icon_127.png
  69. BIN
      static/images/irrigate/qxdev/icon_128.png
  70. BIN
      static/images/irrigate/qxdev/icon_129.png
  71. BIN
      static/images/irrigate/qxdev/icon_130.png
  72. BIN
      static/images/irrigate/qxdev/icon_131.png
  73. BIN
      static/images/irrigate/qxdev/icon_132.png
  74. BIN
      static/images/irrigate/qxdev/icon_133.png
  75. BIN
      static/images/irrigate/qxdev/icon_134.png
  76. BIN
      static/images/irrigate/qxdev/icon_135.png
  77. BIN
      static/images/irrigate/qxdev/icon_136.png
  78. BIN
      static/images/irrigate/qxdev/icon_138.png
  79. BIN
      static/images/irrigate/qxdev/icon_139.png
  80. BIN
      static/images/irrigate/qxdev/icon_140.png
  81. BIN
      static/images/irrigate/qxdev/icon_141.png
  82. BIN
      static/images/irrigate/qxdev/icon_142.png
  83. BIN
      static/images/irrigate/qxdev/icon_143.png
  84. BIN
      static/images/irrigate/qxdev/icon_144.png
  85. BIN
      static/images/irrigate/qxdev/icon_145.png
  86. BIN
      static/images/irrigate/qxdev/icon_146.png
  87. BIN
      static/images/irrigate/qxdev/icon_147.png
  88. BIN
      static/images/irrigate/qxdev/icon_147_1.png
  89. BIN
      static/images/irrigate/qxdev/icon_148.png
  90. BIN
      static/images/irrigate/qxdev/icon_148_1.png
  91. BIN
      static/images/irrigate/qxdev/icon_149.png
  92. BIN
      static/images/irrigate/qxdev/icon_149_1.png
  93. BIN
      static/images/irrigate/qxdev/icon_150.png
  94. BIN
      static/images/irrigate/qxdev/icon_151.png
  95. BIN
      static/images/irrigate/qxdev/icon_152.png
  96. BIN
      static/images/irrigate/qxdev/icon_153.png
  97. BIN
      static/images/irrigate/qxdev/icon_154.png
  98. BIN
      static/images/irrigate/qxdev/icon_155.png
  99. BIN
      static/images/irrigate/qxdev/icon_156.png
  100. 0 0
      static/images/irrigate/qxdev/icon_157.png

+ 1 - 1
build/webpack.base.conf.js

@@ -22,7 +22,7 @@ const createLintingRule = () => ({
 module.exports = {
   context: path.resolve(__dirname, '../'),
   entry: {
-    app: './src/main.js'
+    app: ['babel-polyfill','./src/main.js']
   },
   output: {
     path: config.build.assetsRoot,

BIN
dist.zip


+ 5 - 2
index.html

@@ -11,9 +11,12 @@
     <!-- IOS中禁用将数字识别为电话号码/忽略Android平台中对邮箱地址的识别 -->
     <meta name="format-detection" content="telephone=no, email=no"/>
     <script src="./static/js/ezuikit.js"></script>
-    <script src="https://webapi.amap.com/maps?v=2.0&key=3939967b919a8003377dd113fc445a3d&plugin=AMap.PolygonEditor,AMap.DistrictSearch"></script>
+    <!-- <script src="https://webapi.amap.com/maps?v=2.0&key=3939967b919a8003377dd113fc445a3d&plugin=AMap.PolygonEditor,AMap.DistrictSearch"></script> -->
+    <script src="https://webapi.amap.com/maps?v=1.4.15&key=3939967b919a8003377dd113fc445a3d&plugin=AMap.PolygonEditor,AMap.DistrictSearch"></script>
     <!-- UI组件库 1.0 -->
-    <script src="//webapi.amap.com/ui/1.1/main.js?v=1.1.1"></script>
+    <!-- <script src="//webapi.amap.com/ui/1.1/main.js?v=1.1.1"></script> -->
+    <!-- <script src="//webapi.amap.com/ui/1.1/main.js?v=1.1.1"></script> -->
+    <script src="//webapi.amap.com/ui/1.0/main.js?v=1.0.11"></script>
   </head>
   <body>
     <div id="app"></div>

+ 15 - 5
src/components/index.vue

@@ -481,11 +481,21 @@ export default {
                   "name": "智能灌溉",
                   "id": "5",
                   "children": [
-                    //  {
-                    //  "name": "系统管理",
-                    //  "path": "/page3",
-                    //  "id": "6"
-                    //  }
+                     {
+                     "name": "灌溉展示",
+                     "path": "/irrigate",
+                     "id": "6"
+                     },
+                     {
+                     "name": "操作记录",
+                     "path": "/operatData",
+                     "id": "6"
+                     },
+                     {
+                     "name": "设备预警",
+                     "path": "/wranData",
+                     "id": "6"
+                     },
                   ]
                },
                {

+ 233 - 65
src/pages/plantGuard/baseAll.vue

@@ -4,7 +4,7 @@
     <div id="container">加载数据,请稍候...</div>
     <div class="leftNavBox">
         <div class="searchBox">
-            <el-select size="small" @change="search('province')" filterable v-model="form.province" placeholder="选择省">
+            <el-select size="small" @change="searchPro()" filterable v-model="form.province" placeholder="选择省">
                 <el-option label="--请选择--" value=""></el-option>
                 <el-option
                     v-for="item in provinceList"
@@ -13,7 +13,7 @@
                     :value="item.adcode">
                 </el-option>
             </el-select>
-            <el-select size="small" @change="search('city')" filterable v-model="form.city" placeholder="选择市">
+            <el-select size="small" @change="searchCity()" filterable v-model="form.city" placeholder="选择市">
                 <el-option label="--请选择--" value=""></el-option>
                 <el-option
                     v-for="item in cityList"
@@ -22,7 +22,7 @@
                     :value="item.adcode">
                 </el-option>
             </el-select>
-            <el-select size="small" @change="search('district')" filterable v-model="form.district" placeholder="选择区">
+            <el-select size="small" @change="searchDis()" filterable v-model="form.district" placeholder="选择区">
                 <el-option label="--请选择--" value=""></el-option>
                 <el-option
                     v-for="item in districtList"
@@ -45,7 +45,21 @@
                     </el-input>
                 </div>
             </div>
-            <div></div>
+            <div class="inner">
+                <div class="scroll">
+                    <el-scrollbar>
+                    <div class="equipList">
+                        <div class="item"
+                        @click="equipLocate(item)"
+                        v-for="item in mapData" :key="item.uuid">
+                            <img src="../../../static/images/baseIcon.png" width="25px" alt="">
+                            {{item.projectname}}
+                        </div>
+                        <div class="item noDate" v-if="!mapData.length">暂无数据</div>
+                    </div>
+                    </el-scrollbar>
+                </div>   
+            </div>
         </div>
     </div>
 </div>
@@ -62,6 +76,7 @@ data() {
 return {
     map:null,
     data:[],
+    mapData:[],
     topAdcodes:[100000],//全国区划编码
     center:[116.3683244,39.915085],
     zoom:4.5,
@@ -77,6 +92,8 @@ return {
     district:null,
     input:'',
     polygons:[],
+    distCluster:null,
+    pointSimplifierIns:null,
 };
 },
 //监听属性 类似于data概念
@@ -100,56 +117,91 @@ methods: {
                 }));
             });
                 //加载相关组件
-            AMapUI.load(['ui/geo/DistrictCluster', 'lib/$'], function(DistrictCluster, $) {
+            AMapUI.load(['ui/geo/DistrictCluster', 'lib/$','ui/misc/PointSimplifier'], function(DistrictCluster, $,PointSimplifier) {
 
                 //启动页面
-                that.initPage(DistrictCluster, $);
+                that.initPage(DistrictCluster, $,PointSimplifier);
             });
     },
-    initPage(DistrictCluster, $) {
+    initPage(DistrictCluster, $,PointSimplifier) {
         var that = this;
-        var distCluster = new DistrictCluster({
+        //创建组件实例
+        this.pointSimplifierIns = new PointSimplifier({
+            map: this.map, //关联的map
+            zIndex:113,
+            autoSetFitView: false,
+            compareDataItem: function(a, b, aIndex, bIndex) {
+                //数据源中靠后的元素优先,index大的排到前面去
+                // return aIndex > bIndex ? -1 : 1;
+            },
+            getPosition: function(item) {
+                if (!item.lnglat) {
+                    return null;
+                }
+                //返回经纬度
+                return [parseFloat(item.lnglat[0]), parseFloat(item.lnglat[1])];
+            },
+            getHoverTitle: function(dataItem, idx) {
+                //返回数据项的Title信息,鼠标hover时显示
+                // return '序号: ' + idx;
+                // console.log(dataItem);
+                
+                return '<div style="font-size:14px">' + dataItem.projectname+'</div>';
+            },
+            renderOptions: {
+                //点的样式
+                pointStyle: {
+                    fillStyle: 'blue' //蓝色填充
+                }
+            }
+        });
+        this.pointSimplifierIns.setData(this.mapData)
+        this.pointSimplifierIns.on('pointClick',(e,point)=>{
+            // console.log(e);
+            // console.log(point);
+            this.$store.commit('setUserId', point.data.uid)
+           that.$router.push('/plantGuard/page1')
+        })
+        this.distCluster = new DistrictCluster({
             map: that.map, //所属的地图实例
-            zIndex:11,
+            zIndex:13,
             autoSetFitView: false,
             topAdcodes: that.topAdcodes,
             getPosition: function(item) {
-                if (!item) {
+                if (!item.lnglat) {
                     return null;
                 }
-                var parts = item.split(',');
                 //返回经纬度
-                return [parseFloat(parts[0]), parseFloat(parts[1])];
+                return [parseFloat(item.lnglat[0]), parseFloat(item.lnglat[1])];
             },
             renderOptions: {
                 // clusterMarkerKeepConsistent: false, //marker的位置随交互变化
-                 //基础样式
                 featureStyle: {
                     fillStyle: 'rgba(102,170,0,0.5)', //填充色
                     lineWidth: 2, //描边线宽
                     strokeStyle: '#4e6ef2', //描边色
                     //鼠标Hover后的样式
                     hoverOptions: {
-                        fillStyle: 'rgba(255,255,255,0.2)'
+                        fillStyle: 'rgba(78,110,242,0.4)'
                     }
                 },
-                //特定区划级别的默认样式
+                // 特定区划级别的默认样式
                 featureStyleByLevel: {
                     //全国
                     country: {
-                        fillStyle: 'rgba(78,110,242,0.8)'
+                        fillStyle: 'rgba(78,110,242,0)'
                     },
                     //省
                     province: {
-                        fillStyle: 'rgba(78,110,242,0.7)'
+                        fillStyle: 'rgba(78,110,242,0)'
                     },
                     //市
                     city: {
-                        fillStyle: 'rgba(78,110,242,0.6)'
+                        fillStyle: 'rgba(78,110,242,0)'
                     },
                     //区县
                     district: {
-                        fillStyle:'rgba(78,110,242,0.5)'
+                        fillStyle:'rgba(78,110,242,0)'
                     }
                 },
                 getClusterMarker: function(feature, dataItems, recycledMarker) {
@@ -224,20 +276,19 @@ methods: {
             },
         });
             //监听区划面的点击
-        distCluster.on('clusterMarkerClick', function(e, feature) {
+        this.distCluster.on('clusterMarkerClick', function(e, feature) {
 
            console.log(e)
            console.log(feature)
            console.log(that);
-        //    that.$router.push('/plantGuard/page8')
             //重绘
             //distCluster.renderLater();
         });
-        window.distCluster = distCluster;
+        // window.distCluster = distCluster;
 
 
         $('<div id="loadingTip">加载数据,请稍候...</div>').appendTo(document.body);
-        $.get('https://a.amap.com/amap-ui/static/data/10w.txt', function(csv) {
+        $.get('https://a.amap.com/amap-ui/static/data/10w.txt', (csv)=>{
 
             $('#loadingTip').remove();
 
@@ -252,7 +303,8 @@ methods: {
         //     ]
             var data = csv.split('\n').slice(0,1000);
             // that.data = data
-            distCluster.setData(that.data);
+            this.distCluster.setData(that.data);
+
         });
     },
     getEquipList() {
@@ -265,11 +317,8 @@ methods: {
         })
       }).then(res => {
         if (res.data.message == ""){
-            this.data = []
-            var data = res.data.data.user_project;
-            data.forEach((item,index)=>{
-                this.data.push(item.lnglat[0]+','+item.lnglat[1])
-            })
+            this.data = res.data.data.user_project;
+            this.mapData = res.data.data.user_project;
             this.$nextTick(()=>{
                 this.initMap()
             })
@@ -298,23 +347,15 @@ methods: {
     },
     getData(data,level) {
         console.log(data);
-        
         var bounds = data.boundaries;
         if (bounds) {
             for (var i = 0, l = bounds.length; i < l; i++) {
-                // var polygon = new AMap.Polygon({
-                //     map: this.map,
-                //     strokeWeight: 2,
-                //     strokeColor: 'rgba(78,110,242,1)',
-                //     fillColor: 'rgba(78,110,242,1)',
-                //     fillOpacity: 0.2,
-                //     path: bounds[i]
-                // });
                 var polygon = new AMap.Polygon({
                     map: this.map,
+                    zIndex:5,
+                    bubble:true,
                     strokeWeight: 2,
                     strokeColor: 'red',
-                    fillColor: 'red',
                     fillOpacity: 0.2,
                     path: bounds[i]
                 });
@@ -322,6 +363,7 @@ methods: {
             }
             this.map.setFitView();//地图自适应
         }
+
         var subList = data.districtList;
         //清空下一级别的下拉列表
         if (level === 'country') {
@@ -364,33 +406,98 @@ methods: {
         // }
         
     },
-    search(levelSub) {
+    searchPro(){
+        var keyword = this.form.province; //关键字 
+        console.log(this.form.province);
+        console.log(this.form.city);
+        console.log(this.form.district);
+        if(!keyword){
+            this.cityList = []
+            this.districtList = [];
+            this.form.city=''
+            this.form.district='';
+            this.mapData=this.data;
+            this.pointSimplifierIns.setData(this.mapData)
+        }else{
+            this.distCluster.getClusterRecord(keyword,(error, result)=>{
+                // console.log(result);
+                //获取此区域下的数据点
+                this.mapData = [];
+                result.dataItems.forEach((item) => {
+                    this.mapData.push(item.dataItem)
+                });
+                this.$nextTick(()=>{
+                    this.pointSimplifierIns.setData(this.mapData)
+                })
+            })
+        }
+        // if(this.form.province||this.form.city||this.form.district){
+        //     this.distCluster.setData([])
+        // }else{
+        //     this.distCluster.setData(this.data)
+        // }
+        this.search('province',keyword)
+        
+    },
+    searchCity(){
+        var keyword = this.form.city; //关键字 
+        if(!keyword){
+            this.districtList = [];
+            this.form.district=''
+            return
+        }else{
+            this.distCluster.getClusterRecord(keyword,(error, result)=>{
+                // console.log(result);
+                //获取此区域下的数据点
+                this.mapData = [];
+                result.dataItems.forEach((item) => {
+                    this.mapData.push(item.dataItem)
+                });
+                this.$nextTick(()=>{
+                    this.pointSimplifierIns.setData(this.mapData)
+                })
+            })
+        }
+        this.search('city',keyword)
+    },
+    searchDis(){
+        var keyword = this.form.district; //关键字 
+        if(!keyword){
+            return
+        }else{
+            this.distCluster.getClusterRecord(keyword,(error, result)=>{
+                // console.log(result);
+                //获取此区域下的数据点
+                this.mapData = [];
+                result.dataItems.forEach((item) => {
+                    this.mapData.push(item.dataItem)
+                });
+                this.$nextTick(()=>{
+                    this.pointSimplifierIns.setData(this.mapData)
+                })
+            })
+        }
+        this.search('district',keyword)
+    },
+    search(levelSub,keyword) {
         //清除地图上所有覆盖物
         for (var i = 0, l = this.polygons.length; i < l; i++) {
             this.polygons[i].setMap(null);
         }
-
-        if(levelSub == 'province'){
-            var keyword = this.form.province; //关键字 
-            if(!keyword){
-                this.cityList = []
-                this.districtList = [];
-                this.form.city=''
-                this.form.district=''
-                return
-            }
-        }else if(levelSub == 'city'){
-            var keyword = this.form.city; //关键字 
-            if(!keyword){
-                this.districtList = [];
-                this.form.district=''
-                return
-            }
-        }else if(levelSub == 'district'){
-            var keyword = this.form.district; //关键字 
-            if(!keyword){
-                return
-            }
+        console.log(this.distCluster);
+        // this.distCluster.setData([
+            // "113.665412,34.757975",
+            // "113.671767,34.815528",
+            // "113.671867,34.825528",
+            // "113.735978,34.728131",
+            // "120.412618,36.382612",
+            // "112.985037,23.15046",
+            // "126.687123,45.787618"
+        // ])
+ 
+        
+        if(!keyword){
+            return;
         }
 
         this.district.setLevel(levelSub); //行政区级别
@@ -403,6 +510,10 @@ methods: {
             }
         });
     },
+    equipLocate(item){
+        this.map.setCenter(item.lnglat);
+        this.map.setZoom(10)
+    }
 },
 //生命周期 - 创建完成(可以访问当前this实例)
 created() {
@@ -411,9 +522,7 @@ created() {
 //生命周期 - 挂载完成(可以访问DOM元素)
 mounted() {
     this.getEquipList()
-    // setTimeout(()=>{
-        this.districtFun()
-    // },3000)
+    this.districtFun()
 },
 beforeCreate() {}, //生命周期 - 创建之前
 beforeMount() {}, //生命周期 - 挂载之前
@@ -438,6 +547,8 @@ activated() {}, //如果页面有keep-alive缓存功能,这个函数会触发
         width: 1.4rem;
     }
     .listBox{
+        position: relative;
+        overflow: hidden;
         width: 4.25rem;
         height: 90%;
         margin-top: 16px;
@@ -457,6 +568,63 @@ activated() {}, //如果页面有keep-alive缓存功能,这个函数会触发
                 width: 2.5rem;
             }
         }
+        .inner{
+            position: absolute;
+            top: 57px;
+            bottom: -18px;
+            left: 0;
+            right: 0;
+            .scroll{
+                height: 100%;
+                overflow: auto;
+                .equipList{
+                    .item{
+                        padding: .175rem;
+                        color: #454545;
+                        font-size: .175rem;
+                        // background: red;
+                        cursor: pointer;
+                        img{
+                            vertical-align: middle;
+                            margin-right: 2px;
+                        }
+                        &:hover{
+                            background: #182037;
+                            color: #fff;
+                        }
+                    }
+                    .noDate{
+                        text-align: center;
+                    }
+                    .item.active{
+                        background: darkblue;
+                    }
+                }
+            }
+            .scroll {
+                height: 100%;
+                overflow-y: hidden;
+                }
+                .el-scrollbar{
+                height: 100%;
+                }
+                .el-scrollbar__bar{
+                &.is-vertical{
+                    width:100px;//滚动条宽度
+                }
+                }
+                .el-scrollbar__wrap{
+                overflow-y: auto;
+                overflow-x:hidden;
+                }
+                .el-scrollbar__thumb {
+                // 可设置滚动条颜色
+                background: red;
+            }
+        }
     }
 }
+ .amap-layers .amap-markers{
+    z-index: 320 !important;
+}
 </style>

+ 529 - 0
src/pages/plantGuard/baseAll半成品.vue

@@ -0,0 +1,529 @@
+<!-- mapui-->
+<template>
+<div class='map'>
+    <div id="container">加载数据,请稍候...</div>
+    <div class="leftNavBox">
+        <div class="searchBox">
+            <el-select size="small" @change="searchPro()" filterable v-model="form.province" placeholder="选择省">
+                <el-option label="--请选择--" value=""></el-option>
+                <el-option
+                    v-for="item in provinceList"
+                    :key="item.adcode"
+                    :label="item.name"
+                    :value="item.adcode">
+                </el-option>
+            </el-select>
+            <el-select size="small" @change="searchCity()" filterable v-model="form.city" placeholder="选择市">
+                <el-option label="--请选择--" value=""></el-option>
+                <el-option
+                    v-for="item in cityList"
+                    :key="item.adcode"
+                    :label="item.name"
+                    :value="item.adcode">
+                </el-option>
+            </el-select>
+            <el-select size="small" @change="searchDis()" filterable v-model="form.district" placeholder="选择区">
+                <el-option label="--请选择--" value=""></el-option>
+                <el-option
+                    v-for="item in districtList"
+                    :key="item.adcode"
+                    :label="item.name"
+                    :value="item.adcode">
+                </el-option>
+            </el-select>
+        </div>
+        <div class="listBox">
+            <div class="projectSearch">
+                <div>项目列表</div>
+                <div>
+                    <el-input
+                        size="small"
+                        placeholder="请输入项目名称"
+                        v-model="input"
+                        suffix-icon="el-icon-search"
+                        clearable>
+                    </el-input>
+                </div>
+            </div>
+            <div></div>
+        </div>
+    </div>
+</div>
+</template>
+
+<script>
+//这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等)
+//例如:import 《组件名称》 from '《组件路径》';
+export default {
+//import引入的组件需要注入到对象中才能使用
+components: {},
+data() {
+//这里存放数据
+return {
+    map:null,
+    data:[],
+    topAdcodes:[100000],//全国区划编码
+    center:[116.3683244,39.915085],
+    zoom:4.5,
+    // 搜索
+    form:{
+        province:'',
+        city:'',
+        district:'',
+    },
+    provinceList:[],
+    cityList:[],
+    districtList:[],
+    district:null,
+    input:'',
+    polygons:[],
+    distCluster:null,
+    pointSimplifierIns:null,
+};
+},
+//监听属性 类似于data概念
+computed: {},
+//监控data中的数据变化
+watch: {},
+//方法集合
+methods: {
+    initMap(){
+         //创建地图
+            var that = this
+            this.map = new AMap.Map('container', {
+                center:that.center,
+                zoom: that.zoom
+            });
+            AMapUI.loadUI(['control/BasicControl'], function(BasicControl) {
+                //缩放控件,显示Zoom值
+                that.map.addControl(new BasicControl.Zoom({
+                    position: 'rb',
+                    showZoomNum: true
+                }));
+            });
+                //加载相关组件
+            AMapUI.load(['ui/geo/DistrictCluster', 'lib/$','ui/misc/PointSimplifier'], function(DistrictCluster, $,PointSimplifier) {
+
+                //启动页面
+                that.initPage(DistrictCluster, $,PointSimplifier);
+            });
+    },
+    initPage(DistrictCluster, $,PointSimplifier) {
+        var that = this;
+        //创建组件实例
+        this.pointSimplifierIns = new PointSimplifier({
+            map: this.map, //关联的map
+            zIndex:12,
+            autoSetFitView: false,
+            compareDataItem: function(a, b, aIndex, bIndex) {
+                //数据源中靠后的元素优先,index大的排到前面去
+                // return aIndex > bIndex ? -1 : 1;
+            },
+            getPosition: function(item) {
+                if (!item.lnglat) {
+                    return null;
+                }
+                //返回经纬度
+                return [parseFloat(item.lnglat[0]), parseFloat(item.lnglat[1])];
+            },
+            getHoverTitle: function(dataItem, idx) {
+                //返回数据项的Title信息,鼠标hover时显示
+                return '序号: ' + idx;
+            },
+            renderOptions: {
+                //点的样式
+                pointStyle: {
+                    fillStyle: 'blue' //蓝色填充
+                }
+            }
+        });
+        this.distCluster = new DistrictCluster({
+            map: that.map, //所属的地图实例
+            zIndex:11,
+            autoSetFitView: false,
+            topAdcodes: that.topAdcodes,
+            getPosition: function(item) {
+                if (!item.lnglat) {
+                    return null;
+                }
+                //返回经纬度
+                return [parseFloat(item.lnglat[0]), parseFloat(item.lnglat[1])];
+            },
+            renderOptions: {
+                // clusterMarkerKeepConsistent: false, //marker的位置随交互变化
+                 //基础样式
+                featureStyle: {
+                    fillStyle: 'rgba(102,170,0,0.5)', //填充色
+                    lineWidth: 2, //描边线宽
+                    strokeStyle: '#4e6ef2', //描边色
+                    //鼠标Hover后的样式
+                    hoverOptions: {
+                        fillStyle: 'rgba(78,110,242,0.4)'
+                    }
+                },
+                //特定区划级别的默认样式
+                featureStyleByLevel: {
+                    //全国
+                    country: {
+                        fillStyle: 'rgba(78,110,242,0)'
+                    },
+                    //省
+                    province: {
+                        fillStyle: 'rgba(78,110,242,0)'
+                    },
+                    //市
+                    city: {
+                        fillStyle: 'rgba(78,110,242,0)'
+                    },
+                    //区县
+                    district: {
+                        fillStyle:'rgba(78,110,242,0)'
+                    }
+                },
+                getClusterMarker: function(feature, dataItems, recycledMarker) {
+
+                    //不是当前feature,直接返回null
+                    if(dataItems.length){
+                        var container, title, body, nodeClassNames = {
+                            title: 'amap-ui-district-cluster-marker-title',
+                            body: 'amap-ui-district-cluster-marker-body',
+                            container: 'amap-ui-district-cluster-marker'
+                        };
+                        
+                        console.log(recycledMarker);
+                        if (recycledMarker) {
+                        console.log(recycledMarker.getContent());
+
+                            container = recycledMarker.getContent();
+
+                            title = $(container).find('.' + nodeClassNames.title)[0];
+
+                            body = $(container).find('.' + nodeClassNames.body)[0];
+
+                        } else {
+
+                            container = document.createElement('div');
+
+                            title = document.createElement('span');
+
+                            title.className = nodeClassNames.title;
+
+                            body = document.createElement('span');
+
+                            body.className = nodeClassNames.body;
+
+                            container.appendChild(title);
+
+                            container.appendChild(body);
+                        }
+                        console.log(feature.properties);
+                        
+                        var props = feature.properties,
+                            routeNames = [];
+
+                        var classNameList = [nodeClassNames.container, 'level_' + props.level, 'adcode_' + props.adcode];
+
+                        container.className = classNameList.join(' ');
+
+                        if (routeNames.length > 0) {
+
+                            routeNames.push(props.name);
+
+                            container.setAttribute('title', routeNames.join('>'));
+
+                        } else {
+                            container.removeAttribute('title');
+                        }
+
+                        $(title).html(props.name);
+                        $(body).html(dataItems.length);
+
+                        var resultMarker = recycledMarker || new AMap.Marker({
+                            topWhenClick: true,
+                            offset: new AMap.Pixel(-20, -30),
+                            content: container
+                        });
+                        console.log(container);
+                        console.log(resultMarker);
+                        
+                        return resultMarker;
+                    }
+                }
+            },
+        });
+            //监听区划面的点击
+        this.distCluster.on('clusterMarkerClick', function(e, feature) {
+
+           console.log(e)
+           console.log(feature)
+           console.log(that);
+        //    that.$router.push('/plantGuard/page8')
+            //重绘
+            //distCluster.renderLater();
+        });
+        // window.distCluster = distCluster;
+
+
+        $('<div id="loadingTip">加载数据,请稍候...</div>').appendTo(document.body);
+        $.get('https://a.amap.com/amap-ui/static/data/10w.txt', (csv)=>{
+
+            $('#loadingTip').remove();
+
+        // var data = [
+        //     "113.665412,34.757975",
+        //     "113.671767,34.815528",
+        //     "113.671867,34.825528",
+        //     "113.735978,34.728131",
+        //     "120.412618,36.382612",
+        //     "112.985037,23.15046",
+        //     "126.687123,45.787618"
+        //     ]
+            var data = csv.split('\n').slice(0,1000);
+            // that.data = data
+            this.distCluster.setData(that.data);
+            this.pointSimplifierIns.setData(that.data);
+
+        });
+    },
+    getEquipList() {
+      let uid = sessionStorage.getItem("myuid");
+      this.$axios({
+        method: "POST",
+        url: "/api/api_gateway?method=user.login.user_project_addr",
+        data: this.qs.stringify({
+          // uid:uid
+        })
+      }).then(res => {
+        if (res.data.message == ""){
+            this.data = res.data.data.user_project;
+            // data.forEach((item,index)=>{
+            //     this.data.push(item.lnglat[0]+','+item.lnglat[1])
+            // })
+            this.$nextTick(()=>{
+                this.initMap()
+            })
+        } else {
+          this.$message.error(res.data.message);
+        }
+      });
+    },
+    districtFun(){
+        this.map = new AMap.Map('container', {
+            resizeEnable: true,
+            center: [116.30946, 39.937629],
+            zoom: 3
+        });
+        //行政区划查询
+        var opts = {
+            subdistrict: 1,   //返回下一级行政区
+            showbiz:false  //最后一级返回街道信息
+        };
+        this.district = new AMap.DistrictSearch(opts);//注意:需要使用插件同步下发功能才能这样直接使用
+        this.district.search('中国', (status, result)=>{
+            if(status=='complete'){
+                this.getData(result.districtList[0],'country');
+            }
+        });
+    },
+    getData(data,level) {
+        console.log(data);
+        var bounds = data.boundaries;
+        if (bounds) {
+            for (var i = 0, l = bounds.length; i < l; i++) {
+                // var polygon = new AMap.Polygon({
+                //     map: this.map,
+                //     strokeWeight: 2,
+                //     strokeColor: 'rgba(78,110,242,1)',
+                //     fillColor: 'rgba(78,110,242,1)',
+                //     fillOpacity: 0.2,
+                //     path: bounds[i]
+                // });
+                var polygon = new AMap.Polygon({
+                    map: this.map,
+                    strokeWeight: 2,
+                    strokeColor: 'red',
+                    fillColor: 'red',
+                    fillOpacity: 0.2,
+                    path: bounds[i]
+                });
+                this.polygons.push(polygon);
+            }
+            this.map.setFitView();//地图自适应
+        }
+        var subList = data.districtList;
+        //清空下一级别的下拉列表
+        if (level === 'country') {
+            console.log('country');
+            
+            this.provinceList = subList;
+            this.cityList = []
+            this.districtList = [];
+            this.form.province=''
+            this.form.city=''
+            this.form.district=''
+        } else if (level === 'province') {
+            console.log('province');
+            this.cityList = subList;
+            this.districtList = [];
+            this.form.city=''
+            this.form.district=''
+        } else if (level === 'city') {
+            console.log('city');
+            this.districtList = subList;
+            this.form.district=''
+        }
+
+        console.log(subList);
+        // if (subList) {
+        //     var contentSub = new Option('--请选择--');
+        //     var curlevel = subList[0].level;
+        //     var curList =  document.querySelector('#' + curlevel);
+        //     curList.add(contentSub);
+        //     for (var i = 0, l = subList.length; i < l; i++) {
+        //         var name = subList[i].name;
+        //         var levelSub = subList[i].level;
+        //         var cityCode = subList[i].citycode;
+        //         contentSub = new Option(name);
+        //         contentSub.setAttribute("value", levelSub);
+        //         contentSub.center = subList[i].center;
+        //         contentSub.adcode = subList[i].adcode;
+        //         curList.add(contentSub);
+        //     }
+        // }
+        
+    },
+    searchPro(){
+        var keyword = this.form.province; //关键字 
+        console.log(this.form.province);
+        console.log(this.form.city);
+        console.log(this.form.district);
+        this.distCluster.getClusterRecord(this.form.province,(error, result)=>{
+            console.log(result);
+        })
+        if(!keyword){
+            this.cityList = []
+            this.districtList = [];
+            this.form.city=''
+            this.form.district=''
+        }
+        // if(this.form.province||this.form.city||this.form.district){
+        //     this.distCluster.setData([])
+        // }else{
+        //     this.distCluster.setData(this.data)
+        // }
+        this.search('province',keyword)
+        
+    },
+    searchCity(){
+        var keyword = this.form.city; //关键字 
+        if(!keyword){
+            this.districtList = [];
+            this.form.district=''
+            return
+        }
+        this.search('city',keyword)
+    },
+    searchDis(){
+        var keyword = this.form.district; //关键字 
+        if(!keyword){
+            return
+        }
+        this.search('district',keyword)
+    },
+    search(levelSub,keyword) {
+        //清除地图上所有覆盖物
+        for (var i = 0, l = this.polygons.length; i < l; i++) {
+            this.polygons[i].setMap(null);
+        }
+        console.log(this.distCluster);
+        // this.distCluster.setData([
+            // "113.665412,34.757975",
+            // "113.671767,34.815528",
+            // "113.671867,34.825528",
+            // "113.735978,34.728131",
+            // "120.412618,36.382612",
+            // "112.985037,23.15046",
+            // "126.687123,45.787618"
+        // ])
+ 
+        
+        if(!keyword){
+            return;
+        }
+
+        this.district.setLevel(levelSub); //行政区级别
+        this.district.setExtensions('all');
+        //行政区查询
+        //按照adcode进行查询可以保证数据返回的唯一性
+        this.district.search(keyword,(status, result)=>{
+            if(status === 'complete'){
+                this.getData(result.districtList[0],levelSub);
+            }
+        });
+    },
+    addMassMarkers(){
+        //设置数据源,data需要是一个数组
+        // this.pointSimplifierIns.setData(data);
+
+        //监听事件
+        this.pointSimplifierIns.on('pointClick pointMouseover pointMouseout', function(e, record) {
+            console.log(e.type, record);
+        });
+    }
+},
+//生命周期 - 创建完成(可以访问当前this实例)
+created() {
+
+},
+//生命周期 - 挂载完成(可以访问DOM元素)
+mounted() {
+    this.getEquipList()
+    // setTimeout(()=>{
+        this.districtFun()
+    // },3000)
+},
+beforeCreate() {}, //生命周期 - 创建之前
+beforeMount() {}, //生命周期 - 挂载之前
+beforeUpdate() {}, //生命周期 - 更新之前
+updated() {}, //生命周期 - 更新之后
+beforeDestroy() {}, //生命周期 - 销毁之前
+destroyed() {}, //生命周期 - 销毁完成
+activated() {}, //如果页面有keep-alive缓存功能,这个函数会触发
+}
+</script>
+<style scoped lang='less'>
+.map,#container{
+    width: 100%;
+    height: 100%;
+}
+.leftNavBox{
+    position: absolute;
+    left: 100px;
+    top: 160px;
+    bottom:0;
+    /deep/.el-select{
+        width: 1.4rem;
+    }
+    .listBox{
+        width: 4.25rem;
+        height: 90%;
+        margin-top: 16px;
+        border-radius: 6px;
+        background: rgba(255,255,255,.58);
+        box-shadow: 0px 3px 9px 0px #a7a7a7;
+        .projectSearch{
+            display: flex;
+            justify-content: space-between;
+            align-items: center;
+            padding: .15rem;
+            background: #182037;
+            color: #fff;
+            font-size: .175rem;
+            border-radius: 6px 6px 0 0;
+            /deep/.el-input{
+                width: 2.5rem;
+            }
+        }
+    }
+}
+</style>

+ 845 - 0
src/pages/plantGuard/irrigate/irrigate.vue

@@ -0,0 +1,845 @@
+<!-- 灌溉地图展示 -->
+<template>
+<div class='map'>
+    <div id="container">加载数据,请稍候...</div>
+    <!-- 设备列表 -->
+    <div class="equipListBox">
+        <div class="searchTop">
+            <div>设别列表</div>
+            <div>
+                <el-input
+                    size="small"
+                    placeholder="请选择设备"
+                    suffix-icon="el-icon-search"
+                    v-model="searchVal">
+                </el-input>
+            </div>
+        </div>
+        <div class="inner">
+            <div class="scroll">
+                <el-scrollbar>
+                <div class="equipList">
+                    <div class="item"
+                    v-for="item in 23" :key="item">
+                        <img src="../../../../static/images/irrigate/sbIcon.png" alt="">
+                        水泵484515515
+                    </div>
+                    <div class="item">
+                        <img src="../../../../static/images/irrigate/sbIcon.png" alt="">
+                        水泵11111
+                    </div>
+                </div>
+                </el-scrollbar>
+            </div>   
+        </div>
+        
+    </div>
+    <!-- 环形菜单 -->
+    <div class="navMenu">
+        <div class="mainMenu" @click="subMenuToggle">
+            <div>
+                <i class="el-icon-menu"></i>
+                <div>菜单</div>
+            </div>
+        </div>
+        <div class="subMenu" ref="subMenu" @click="subMenuState(1)">
+           <div class="itemMenu itemMenu1">
+                <div>预警</div>
+            </div>
+            <div class="itemMenu itemMenu2" @click="subMenuState(2)">
+                <div>状态</div>
+            </div>
+            <div class="itemMenu itemMenu3" @click="subMenuState(3)">
+                <div>气象</div>
+            </div> 
+        </div>
+        
+    </div>
+    <!-- 设备预警 -->
+    <div class="equipWarnBox suspensionBox">
+        <div class="top">
+            <div>设备预警</div>
+            <div>
+                <i class="el-icon-caret-right"></i>
+            </div>
+        </div>
+        <div class="inner">
+            <div class="wranTitle">
+                <div v-for="(item,index) in wranTitle" v-bind:key="item" :class="[index==1?'wranmsg':'']" >{{item}}</div >
+            </div>
+            <div class="equipList">
+                <div class="scroll-content" ref="scrollContent" :style="{ top }" @mouseenter="Stop()" @mouseleave="Up()">
+                <!-- <div class=""   @mouseenter="Stop()" @mouseleave="Up()"> -->
+                    <div class="wranInfo" v-for="item in scrollWranList" v-bind:key="item.id" >
+                        <div>{{item.equipName}}</div>
+                        <div class="wranmsg">{{item.msg}}{{item.msg}}</div>
+                        <div>{{item.time}}</div>
+                        <div class="state">{{item.state}}</div>
+                    </div >
+                </div>
+            </div>  
+        </div>
+        
+    </div>
+    <!-- 设备状态 -->
+    <div class="equipCtrlBox suspensionBox">
+        <div class="top">
+            <div>设备状态</div>
+            <div>
+                <i class="el-icon-caret-right"></i>
+            </div>
+        </div>
+        <div class="inner">
+            <el-scrollbar>
+                <div class="equipList">
+                    <div class="equipState" v-for="item in scrollWranList" v-bind:key="item.id" >
+                        <div>
+                            <span class="name">{{item.equipName}}</span>
+                            <el-switch
+                                v-model="warnShow"
+                                active-color="#0295ff"
+                                inactive-color="#b6b6b6">
+                            </el-switch>
+                        </div>
+                    </div >
+                </div>
+            </el-scrollbar>
+        </div>
+        
+    </div>
+    <!-- 气象要素 -->
+    <div class="qxzEquipBox suspensionBox">
+        <div class="top">
+            <div>
+                <span>气象要素</span>
+                <span class="uptime">(2021-04-21 12:00:00)</span>
+            </div>
+            <div>
+                <span class="historyBtn">历史数据</span>
+                <i class="el-icon-caret-right"></i>
+            </div>
+        </div>
+        <div class="inner">
+            <el-scrollbar>
+            <div class="equipList">
+                <div class="equipState" v-for="item in 20" v-bind:key="item.id" >
+                    <div>
+                        <img src="../../../../static/images/irrigate/qxdev/164.png" alt="">
+                    </div>
+                    <div>
+                        <div class="val">30°C</div>
+                        <div class="name">大气温度</div>
+                    </div>
+                </div >
+            </div>  
+            </el-scrollbar>
+        </div>
+        
+    </div>
+    <!-- 设备提示框 -->
+    <dcfPopUP ref="dcfPopUP"></dcfPopUP>
+    <sbPopUP ref="sbPopUP"></sbPopUP>
+    <sqPopUP ref="sqPopUP"></sqPopUP>
+    <sfjPopUP ref="sfjPopUP"></sfjPopUP>
+    <wranPopUP ref="wranPopUP"></wranPopUP>
+</div>
+</template>
+
+<script>
+//这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等)
+//例如:import 《组件名称》 from '《组件路径》';
+const dcfPopUP = ()=> import('./popUp/dcfPopUp')
+const sbPopUP = ()=> import('./popUp/sbPopUp')
+const sqPopUP = ()=> import('./popUp/sqPopUP')
+const sfjPopUP = ()=> import('./popUp/sfjPopUP')
+// const wranPopUP = ()=> import('./wranPopUP')
+import wranPopUP from './popUp/wranPopUP'
+export default {
+//import引入的组件需要注入到对象中才能使用
+components: {
+    dcfPopUP,
+    sbPopUP,
+    sqPopUP,
+    sfjPopUP,
+    wranPopUP,
+},
+data() {
+//这里存放数据
+return {
+    map:null,
+    center:[116.3683244,39.915085],
+    zoom:4.5,
+    tileLayer1:null,
+    tileLayer2:null,
+    searchVal:'',
+    equipData:[],
+    marker:null,
+    markerList:[],
+    infoWindow:null,
+    // subMenu状态 0是旋转0度  1是180度
+    subMenu:0,
+    warnShow:false,
+    equipShow:false,
+    qxzElShow:true,
+    // 设别预警滚动
+    wranTitle:['设备编号','预警信息','时间','状态'],
+    scrollWranList: [
+        {
+            equipName:'水泵123456',
+            msg:'液体流速≥500mm/s',
+            time:'2021-4-26',
+            state:'未读',
+        },
+        {
+            equipName:'水泵654321',
+            msg:'液体流速≥400mm/s',
+            time:'2021-4-25',
+            state:'未读',
+        },
+        {
+            equipName:'水泵456546',
+            msg:'液体流速≥500mm/s',
+            time:'2021-4-24',
+            state:'未读',
+        },
+        {
+            equipName:'水泵123456',
+            msg:'液体流速≥500mm/s',
+            time:'2021-4-23',
+            state:'未读',
+        },
+        {
+            equipName:'水泵123456',
+            msg:'液体流速≥500mm/s',
+            time:'2021-4-22',
+            state:'未读',
+        },
+        {
+            equipName:'水泵123456',
+            msg:'液体流速≥500mm/s',
+            time:'2021-4-21',
+            state:'未读',
+        },
+        {
+            equipName:'水泵123456',
+            msg:'液体流速≥500mm/s',
+            time:'2021-4-20',
+            state:'未读',
+        },
+        {
+            equipName:'水泵123456',
+            msg:'液体流速≥500mm/s',
+            time:'2021-4-19',
+            state:'未读',
+        },
+        {
+            equipName:'水泵123456',
+            msg:'液体流速≥500mm/s',
+            time:'2021-4-19',
+            state:'未读',
+        },
+        {
+            equipName:'水泵123456',
+            msg:'液体流速≥500mm/s',
+            time:'2021-4-19',
+            state:'未读',
+        },
+        {
+            equipName:'水泵123456',
+            msg:'液体流速≥500mm/s',
+            time:'2021-4-19',
+            state:'未读',
+        },
+        {
+            equipName:'水泵123456',
+            msg:'液体流速≥500mm/s',
+            time:'2021-4-19',
+            state:'未读',
+        },
+        {
+            equipName:'水泵123456',
+            msg:'液体流速≥500mm/s',
+            time:'2021-4-19',
+            state:'未读',
+        },
+        {
+            equipName:'水泵123456',
+            msg:'液体流速≥500mm/s',
+            time:'2021-4-19',
+            state:'未读',
+        },
+    ],
+    activeIndex: 0,
+    intnum: undefined,
+};
+},
+//监听属性 类似于data概念
+computed: {
+    top() {
+        return -this.activeIndex * 22 + 'px';
+    }
+},
+//监控data中的数据变化
+watch: {},
+//方法集合
+methods: {
+    initMap(){
+        //创建地图
+        var that = this
+        this.map = new AMap.Map('container', {
+            resizeEnable: true,
+            center:that.center,
+            zoom: that.zoom
+        });
+        AMap.plugin(
+            [
+            "AMap.ToolBar",
+            "AMap.Scale",
+            "AMap.MouseTool",
+            "AMap.Geocoder",
+            "AMap.PolyEditor",
+            ],
+            () => {
+            //   this.map.addControl(new AMap.ToolBar());
+            this.map.addControl(new AMap.Scale({position:'RB'}));
+
+            this.geocoder = new AMap.Geocoder({
+                city: "全国",
+                radius: 1000,
+            });
+            }
+        );
+        this.tileLayer1 = new AMap.TileLayer({
+            tileUrl:
+            "http://t{0,1,2,3,4,5,6,7}.tianditu.gov.cn/DataServer?T=img_w&tk=888bc7de1a5f14aa1b335b02e558d9b3&x=[x]&y=[y]&l=[z]",
+            zIndex: 10,
+        }); //卫星图层
+        this.tileLayer2 = new AMap.TileLayer({
+            // 图块取图地址
+            tileUrl:
+            "http://t{0,1,2,3,4,5,6,7}.tianditu.gov.cn/DataServer?T=cta_w&tk=888bc7de1a5f14aa1b335b02e558d9b3&x=[x]&y=[y]&l=[z]",
+            zIndex: 101,
+        });
+        this.map.add(this.tileLayer1);
+        // this.map.add(this.tileLayer2);
+        this.getEquipList()
+    },
+    getEquipList(){
+        this.equipData = [
+            {
+                imei:412155155,
+                type:1,
+                name:'水泵设备1',
+                lnglat:[116.3683244,39.915085]
+            },
+            {
+                imei:412155155,
+                type:1,
+                name:'水泵设备2',
+                lnglat:[116.3667244,39.915085]
+            },
+            {
+                imei:412155155,
+                type:2,
+                name:'施肥机设备',
+                lnglat:[116.3685244,39.917085]
+            },
+            {
+                imei:412155155,
+                type:3,
+                name:'电磁阀',
+                lnglat:[116.3675244,39.916085]
+            },
+            {
+                imei:412155155,
+                type:4,
+                name:'墒情站',
+                lnglat:[116.3695244,39.916085]
+            },
+        ]
+        this.map.clearMap();
+        this.equipData.forEach((item)=>{
+            if(item.type == 1){
+                var icon = '../../../../static/images/irrigate/sbPhoto.png'
+                // var icon = '../../../../static/images/1111.gif'
+            }else if(item.type == 2){
+                var icon = '../../../../static/images/irrigate/sfjPhoto.png'
+                // var icon = '../../../../static/images/icon5.svg'
+            }else if(item.type == 3){
+                var icon = '../../../../static/images/irrigate/dcfPhoto.png'
+            }else if(item.type == 4){
+                var icon = '../../../../static/images/irrigate/sqPhoto.png'
+            }
+            this.marker = new AMap.Marker({
+                position: new AMap.LngLat(item['lnglat'][0],item['lnglat'][1]),   // 经纬度对象,也可以是经纬度构成的一维数组[116.39, 39.9]
+                icon: icon,
+                offset: new AMap.Pixel(-13, -30),
+                title: item['name']
+            });
+            this.markerList.push(this.marker);
+            //信息窗体
+            this.marker.content = item['name'];
+            AMap.event.addListener(this.marker,'click',(event)=>{
+                this.markerClick(event,item)
+            });
+            AMap.event.addListener(this.map,'click',(event)=>{
+                if(this.infoWindow){
+                    this.infoWindow.close()
+                }
+                
+            });
+            // this.marker.on('click', this.markerClick);
+            // this.marker.emit('click', {target: this.marker,aa:123});
+        })
+        this.$nextTick(()=>{
+            this.map.add(this.markerList);
+            this.map.setFitView()
+        })
+        this.infoWindow = new AMap.InfoWindow({
+            isCustom: true,  //使用自定义窗体
+            offset: new AMap.Pixel(-105, -20),
+            // anchor:'bottom-righ'
+        });
+        this.$refs.wranPopUP.initialize({
+            currEquip: {},
+            visible: true,
+            infoWindow: this.infoWindow,
+        });
+        this.infoWindow.setContent(this.$refs.wranPopUP.$el);
+        this.infoWindow.open(this.map, this.equipData[0].lnglat);
+    },
+    markerClick(event,item){
+        this.infoWindow = new AMap.InfoWindow({
+            isCustom: true,  //使用自定义窗体
+            offset: new AMap.Pixel(16, -45)
+        });
+        console.log(event);
+        console.log(item);
+        if(item.type == 1){
+            this.$refs.dcfPopUP.initialize({
+                currEquip: {},
+                visible: true,
+                infoWindow: this.infoWindow,
+            });
+            this.infoWindow.setContent(this.$refs.dcfPopUP.$el);  
+        }else if(item.type == 2){
+            this.$refs.sbPopUP.initialize({
+                currEquip: {},
+                visible: true,
+                infoWindow: this.infoWindow,
+            });
+            this.infoWindow.setContent(this.$refs.sbPopUP.$el);
+        }else if(item.type == 3){
+            this.$refs.sqPopUP.initialize({
+                currEquip: {},
+                visible: true,
+                infoWindow: this.infoWindow,
+            });
+            this.infoWindow.setContent(this.$refs.sqPopUP.$el);
+        }else if(item.type == 4){
+            this.$refs.sfjPopUP.initialize({
+                currEquip: {},
+                visible: true,
+                infoWindow: this.infoWindow,
+            });
+            this.infoWindow.setContent(this.$refs.sfjPopUP.$el);
+        }
+        this.infoWindow.open(this.map, event.target.getPosition());
+        
+    },
+    // 环形菜单特效
+    subMenuToggle(){
+        if(this.subMenu == 0){
+            this.subMenu = 1;
+            this.$refs.subMenu.style.transform = 'rotate(0deg) scale(1)'
+        }else{
+            this.subMenu = 0;
+            this.$refs.subMenu.style.transform = 'rotate(124deg) scale(1.4)'
+        }
+    },
+    // 子菜单点击
+    subMenuState(flag){
+         if(flag == 1){
+            this.warnShow = !this.warnShow
+        }else if(flag == 2){
+            this.equipShow = !this.equipShow
+        }else if(flag == 3){
+            this.qxzElShow = !this.qxzElShow
+        }
+    },
+    ScrollUp() {
+        this.intnum = setInterval(_ => {
+            this.$refs.scrollContent.style.transition="top 0.5s";
+            if (this.activeIndex < this.scrollWranList.length-5) {
+                this.activeIndex += 1;
+            } else {
+                this.$refs.scrollContent.style.transition="none";
+                this.activeIndex = 0;
+            }
+        }, 1000);
+    },
+
+    Stop() {
+        clearInterval(this.intnum);
+    },
+    Up() {
+        this.ScrollUp();
+    }
+},
+//生命周期 - 创建完成(可以访问当前this实例)
+created() {
+//  this.ScrollUp();
+},
+//生命周期 - 挂载完成(可以访问DOM元素)
+mounted() {
+    this.initMap();
+    for(var i=0;i<4;i++){
+        this.scrollWranList.push(this.scrollWranList[i]);
+    }
+    this.$nextTick(()=>{
+        this.ScrollUp();
+    })
+},
+beforeCreate() {}, //生命周期 - 创建之前
+beforeMount() {}, //生命周期 - 挂载之前
+beforeUpdate() {}, //生命周期 - 更新之前
+updated() {}, //生命周期 - 更新之后
+beforeDestroy() {}, //生命周期 - 销毁之前
+destroyed() {
+    this.Stop()
+}, //生命周期 - 销毁完成
+activated() {}, //如果页面有keep-alive缓存功能,这个函数会触发
+}
+</script>
+<style scoped lang='less'>
+.map,#container{
+    width: 100%;
+    height: 100%;
+}
+
+.equipListBox{
+    position: absolute;
+    left: 110px;
+    top: 160px;
+    bottom: 3.125rem;
+    width: 3.5rem;
+    background: rgba(12,20,44,.80);
+    border-radius: 8px;
+    overflow: hidden;
+    .searchTop{
+        display: flex;
+        justify-content: space-between;
+        color: #fff;
+        align-items: center;
+        padding: 10px;
+        background: #0c142c;
+        .el-input{
+            width: 2.25rem;
+            input{
+                background: #ececec;
+                color: #000;
+                padding: 5px;
+                height: 27px;
+            }
+            /deep/.el-input__inner{
+                height: 28px;
+                line-height: 28px;
+
+            }
+        }
+    }
+    .inner{
+        position: absolute;
+        top: 52px;
+        bottom: -18px;
+        left: 0;
+        right: 0;
+        .scroll{
+            height: 100%;
+            overflow: auto;
+            .equipList{
+                .item{
+                    padding: .175rem;
+                    color: #fff;
+                    font-size: .175rem;
+                    // background: red;
+                    cursor: pointer;
+                    img{
+                        vertical-align: middle;
+                        margin-right: 2px;
+                    }
+                    &:hover{
+                        background: #0c142c;
+                    }
+                }
+                .item.active{
+                    background: #0c142c;
+                }
+
+            }
+        }
+        .scroll {
+            height: 100%;
+            overflow-y: hidden;
+            }
+            .el-scrollbar{
+            height: 100%;
+            }
+            .el-scrollbar__bar{
+            &.is-vertical{
+                width:100px;//滚动条宽度
+            }
+            }
+            .el-scrollbar__wrap{
+            overflow-y: auto;
+            overflow-x:hidden;
+            }
+            .el-scrollbar__thumb {
+            // 可设置滚动条颜色
+            background: red;
+        }
+    }
+    
+}
+// 悬浮框样式
+.suspensionBox{
+    position: absolute;
+    width: 400px;
+    background: rgba(12,20,44,.80);
+    border-radius: 8px;
+    overflow: hidden;
+    z-index: 9999;
+    .top{
+        display: flex;
+        justify-content: space-between;
+        color: #fff;
+        align-items: center;
+        padding: 10px;
+        background: #0c142c;
+    }
+}
+// 设备预警
+.equipWarnBox{
+    height: 190px;
+    right: 10px;
+    top: 160px;
+    .inner{
+        // height: 82px;
+        // overflow: hidden;
+        .wranTitle{
+            display: flex;
+            justify-content: space-around;
+            line-height: 33px;
+            color:#fff;
+            .wranmsg {
+                width: 157px;
+            }
+        }
+        .equipList{
+            height: 110px;
+            overflow: hidden;
+            .scroll-wrap {
+                height: 150px;
+                overflow: hidden;
+            }
+            .scroll-content {
+                position: relative;
+                transition: top 0.5s;
+                .wranInfo{
+                    line-height: 22px;
+                    color: #92c2f3;
+                    display: flex;
+                    justify-content: space-around;
+                    .wranmsg {
+                        width: 157px;
+                        overflow: hidden;
+                        white-space: nowrap;
+                        text-overflow: ellipsis;
+                    }
+                    .state{
+                        color: red;
+                    }
+                }
+            }
+            .scroll-content p {
+                line-height: 50px;
+                text-align: center;
+            }
+        }
+    }
+}
+.equipCtrlBox{
+    height: 180px;
+    right: 10px;
+    top: 357px;
+    .inner{
+        height: 132px;
+        overflow: hidden;
+        .el-scrollbar{
+            height: 149px;
+        }
+    }
+    .equipList{
+        display: flex;
+        flex-wrap: wrap;
+        .equipState{
+            color: #fff;
+            width: 33.333%;
+            margin-top: 13px;
+            text-align: center;
+            .name{
+                display: inline-block;
+                white-space: nowrap;
+                width: 87px;
+                overflow: hidden;
+                text-overflow: ellipsis;
+                vertical-align: middle;
+            }
+             /deep/.el-switch__core{
+                width:30px!important;
+                height:15px;
+                /*color:#409EFF;*/
+            }
+            /*设置圆*/
+            /deep/.el-switch__core::after{
+                width:14px;
+                height:14px;
+                margin-top:-1px;
+                margin-bottom: 2px;
+            }
+        }
+    }
+    
+}
+.qxzEquipBox{
+    height: 215px;
+    right: 10px;
+    top: 542px;
+    color: #fff;
+    .top{
+        .uptime{
+            color: #eee;
+        }
+        .historyBtn{
+            border: 1px solid #00c2ff;
+            color: #00c2ff;
+            border-radius: 14px;
+            padding: 2px 4px;
+            cursor: pointer;
+        }
+    }
+    .inner{
+        .el-scrollbar{
+            height: 198px;
+        }
+        .equipList{
+            display: flex;
+            flex-wrap: wrap;
+            padding-bottom: 10px;
+            .equipState{
+                width: 33.333%;
+                display: flex;
+                justify-content: center;
+                align-items: center;
+                margin-top: 10px;
+                >div:first-child{
+                    margin-right: 5px;
+                }
+                .val{
+                    font-size: 16px;
+                    background-image: -webkit-linear-gradient(bottom, #069dff, #09fdff);
+                    -webkit-background-clip: text;
+                    -webkit-text-fill-color: transparent;
+                    font-weight: 700;
+                }
+                .name{
+                    color: #92c2f3;
+                    width: 70px;
+                    overflow: hidden;
+                    text-overflow: ellipsis;
+                    white-space: nowrap;
+                }
+            }
+        }
+
+    }
+}
+// 环形菜单
+.navMenu{
+    position: fixed;
+    left: 110px;
+    bottom: 23px;
+    width: 135px;
+    height: 135px;
+    z-index: 9999;
+    >div{
+        position: absolute;
+        cursor: pointer;
+    }
+    .mainMenu{
+        left: 0;
+        bottom: 0;
+        z-index: 5;
+        // transform: scale(.8);
+        transition: all .3s;
+        
+        >div{
+            width: 70px;
+            height: 70px;
+            background: #0c142c;
+            border-radius: 50%;
+            color: #fff;
+            line-height: 18px;
+            font-size: 12px;
+            text-align: center;
+            >i{
+                font-size: 30px;
+                margin-top: 12px;
+            }
+        }
+        
+    }
+    .subMenu{
+        transform: rotate(124deg) scale(1.4);
+        transform-origin: 30px 100px;
+        position: absolute;
+        left: 0;
+        right: 0;
+        top: 0;
+        bottom: 0;
+        transition: all .5s;
+        .itemMenu{
+            transform: scale(1);
+            transition: all .3s;
+            position: absolute;
+            cursor: pointer;
+            &:hover{
+                transform: scale(1.1);
+            }
+            >div{
+                width: 40px;
+                height: 40px;
+                background: #0c142c;
+                border-radius: 50%;
+                color: #fff;
+                font-size: 12px;
+                line-height: 40px;
+                text-align: center;
+            }
+        }
+        .itemMenu1{
+            right: 65px;
+            bottom: 96px;
+        }
+        .itemMenu2{
+            right: 16px;
+            bottom: 64px;
+        }
+        .itemMenu3{
+            right: -1px;
+            bottom: 5px;
+        }
+    }
+    
+}
+</style>

+ 198 - 0
src/pages/plantGuard/irrigate/operatData.vue

@@ -0,0 +1,198 @@
+<!-- 操作记录 -->
+<template>
+  <div class="innerMargin">
+    <div class="box-card">
+        <template>
+            <el-tabs type="border-card" v-model="activeName"  @tab-click="handleClick">
+                <el-tab-pane label="水泵" name="first">
+                    <sbData></sbData>
+                </el-tab-pane>
+                <el-tab-pane label="水肥机" name="second">
+                    <sfjData></sfjData>
+                </el-tab-pane>
+                <el-tab-pane label="电磁阀" name="third">
+                    <dcfData></dcfData>
+                </el-tab-pane>
+            </el-tabs>
+        </template>
+    </div>
+  </div>
+</template>
+
+<script>
+//这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等)
+//例如:import 《组件名称》 from '《组件路径》';
+// const sbData = ()=> import('./sboperatData')
+import sbData from './operatData/sboperatData'
+import sfjData from './operatData/sfjoperatData'
+import dcfData from './operatData/dcfoperatData'
+export default {
+  //import引入的组件需要注入到对象中才能使用
+  components: {
+      sbData,
+      sfjData,
+      dcfData,
+      
+  },
+  data() {
+	  //这里存放数据
+    return {
+        activeName: 'first',
+        // 
+	    value1:"",
+        role: "",
+        username: "",
+        txtInner:"筛选测试用户",
+        userList: [],
+            userGroupList: [],
+        roleList: [],
+        page: 1,
+        totalNum: 0,
+
+    };
+  },
+  //监听属性 类似于data概念
+  computed: {
+    //获取用户类型
+		userType: function () {
+			return window.sessionStorage.getItem('myuser_type')
+		}
+  },
+  //监控data中的数据变化
+  watch: {},
+  //生命周期 - 创建完成(可以访问当前this实例)
+  created() {
+    
+  },
+  //生命周期 - 挂载完成(可以访问DOM元素)
+  mounted() {
+    this.getList();
+  },
+  //方法集合
+  methods: {
+    //获取用户列表
+    getList() {
+          this.userList = [
+			{
+				date:'2021-3-21',
+				order:'112544412577455',
+				equipId:'845521475322545522',
+				startTime:'2021-3-21 12:30:25',
+				endTime:'2021-3-21 12:36:25',
+				electricity:44,
+				water:38,
+				money:28
+			},
+			{
+				date:'2021-3-19',
+				order:'112544412577455',
+				equipId:'845556987322545522',
+				startTime:'2021-3-19 11:30:25',
+				endTime:'2021-3-19 11:36:25',
+				electricity:36,
+				water:21,
+				money:18
+			},
+			{
+				date:'2021-3-21',
+				order:'112544412577455',
+				equipId:'845521475322545522',
+				startTime:'2021-3-21 12:30:25',
+				endTime:'2021-3-21 12:36:25',
+				electricity:44,
+				water:38,
+				money:28
+			},
+			{
+				date:'2021-3-21',
+				order:'112544412577455',
+				equipId:'845521475322545522',
+				startTime:'2021-3-21 12:30:25',
+				endTime:'2021-3-21 12:36:25',
+				electricity:44,
+				water:38,
+				money:28
+			},{
+				date:'2021-3-21',
+				order:'112544412577455',
+				equipId:'845521475322545522',
+				startTime:'2021-3-21 12:30:25',
+				endTime:'2021-3-21 12:36:25',
+				electricity:44,
+				water:38,
+				money:28
+			},{
+				date:'2021-3-21',
+				order:'112544412577455',
+				equipId:'845521475322545522',
+				startTime:'2021-3-21 12:30:25',
+				endTime:'2021-3-21 12:36:25',
+				electricity:44,
+				water:38,
+				money:28
+			},{
+				date:'2021-3-21',
+				order:'112544412577455',
+				equipId:'845521475322545522',
+				startTime:'2021-3-21 12:30:25',
+				endTime:'2021-3-21 12:36:25',
+				electricity:44,
+				water:38,
+				money:28
+			},{
+				date:'2021-3-21',
+				order:'112544412577455',
+				equipId:'845521475322545522',
+				startTime:'2021-3-21 12:30:25',
+				endTime:'2021-3-21 12:36:25',
+				electricity:44,
+				water:38,
+				money:28
+			},{
+				date:'2021-3-21',
+				order:'112544412577455',
+				equipId:'845521475322545522',
+				startTime:'2021-3-21 12:30:25',
+				endTime:'2021-3-21 12:36:25',
+				electricity:44,
+				water:38,
+				money:28
+			},{
+				date:'2021-3-21',
+				order:'112544412577455',
+				equipId:'845521475322545522',
+				startTime:'2021-3-21 12:30:25',
+				endTime:'2021-3-21 12:36:25',
+				electricity:44,
+				water:38,
+				money:28
+			}
+		];
+          this.totalNum = 33;
+    },
+    handleClick(tab, event) {
+        console.log(tab, event);
+    },
+    changePage(value) {
+		this.page = value
+    },
+
+    
+  },
+  beforeCreate() {}, //生命周期 - 创建之前
+  beforeMount() {}, //生命周期 - 挂载之前
+  beforeUpdate() {}, //生命周期 - 更新之前
+  updated() {}, //生命周期 - 更新之后
+  beforeDestroy() {}, //生命周期 - 销毁之前
+  destroyed() {}, //生命周期 - 销毁完成
+  activated() {} //如果页面有keep-alive缓存功能,这个函数会触发
+};
+</script>
+<style lang='less' scoped>
+/deep/.el-tabs--border-card > .el-tabs__header .el-tabs__item.is-active {
+    color: #008cff;
+}
+/deep/.el-tabs--border-card > .el-tabs__header .el-tabs__item:not(.is-disabled):hover{
+    color: #008cff;
+}
+</style>

+ 236 - 0
src/pages/plantGuard/irrigate/operatData/dcfoperatData.vue

@@ -0,0 +1,236 @@
+<!-- 水泵操作记录 -->
+<template>
+  <div class="innerMargin">
+    <div class="box-card">
+		<div class="seaarchBox">
+			<div class="searchLeft">
+				<el-input size="small" placeholder="请输入内容" v-model="input3" class="input-with-select">
+					<el-button size="small" slot="append" icon="el-icon-search"></el-button>
+				</el-input>
+				<span class="title">时间选择:</span>
+				<el-date-picker
+					size="small"
+					v-model="value1"
+					type="daterange"
+					range-separator="至"
+					start-placeholder="开始日期"
+					end-placeholder="结束日期">
+				</el-date-picker>
+			</div>
+			<div class="exportRight">
+				<el-button size="small" type="primary">导 出</el-button>
+			</div>
+		</div>
+       <template>
+        <el-table :data="userList" stripe style="width: 100%">
+          <el-table-column prop="equipId"   fixed label="序号"></el-table-column>
+          <el-table-column prop="order" label="操作内容"></el-table-column>
+          <el-table-column prop="date" label="时间"></el-table-column>
+          <el-table-column prop="startTime"  label="操作账号"></el-table-column>
+        </el-table>
+      </template>
+      <el-pagination
+        background
+        :page-size="8"
+        layout="prev, pager, next, jumper"
+        :current-page="page"
+        :total="totalNum"
+        @current-change="changePage"
+      ></el-pagination>
+    </div>
+  </div>
+</template>
+
+<script>
+//这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等)
+//例如:import 《组件名称》 from '《组件路径》';
+export default {
+  //import引入的组件需要注入到对象中才能使用
+  data() {
+	  //这里存放数据
+    return {
+		activeName: 'first',
+		searchVal:'',
+		input3:'',
+        // 
+	    value1:"",
+        role: "",
+        username: "",
+        txtInner:"筛选测试用户",
+        userList: [],
+            userGroupList: [],
+        roleList: [],
+        page: 1,
+        totalNum: 0,
+
+    };
+  },
+  //监听属性 类似于data概念
+  computed: {
+    //获取用户类型
+		userType: function () {
+			return window.sessionStorage.getItem('myuser_type')
+		}
+  },
+  //监控data中的数据变化
+  watch: {},
+  //生命周期 - 创建完成(可以访问当前this实例)
+  created() {
+    
+  },
+  //生命周期 - 挂载完成(可以访问DOM元素)
+  mounted() {
+    this.getList();
+  },
+  //方法集合
+  methods: {
+    //获取用户列表
+    getList() {
+          this.userList = [
+			{
+				equipId:'1',
+				order:'打开水泵141515555开关',
+				date:'2021-3-21 12:30:25',
+				startTime:'云飞账号'
+			},
+			{
+				equipId:'2',
+				order:'关闭水泵141515555开关',
+				date:'2021-3-21 13:30:25',
+				startTime:'云飞账号'
+			},
+			{
+				equipId:'3',
+				order:'打开水泵141515555开关',
+				date:'2021-3-23 12:30:25',
+				startTime:'云飞账号'
+			},
+			{
+				equipId:'4',
+				order:'打开水泵141515555开关',
+				date:'2021-3-23 12:30:25',
+				startTime:'云飞账号'
+			},
+			{
+				equipId:'5',
+				order:'打开水泵141515555开关',
+				date:'2021-3-24 12:30:25',
+				startTime:'云飞账号'
+			},
+			{
+				equipId:'6',
+				order:'打开水泵141515555开关',
+				date:'2021-3-24 12:30:25',
+				startTime:'云飞账号'
+			},
+			{
+				equipId:'7',
+				order:'打开水泵141515555开关',
+				date:'2021-3-24 12:30:25',
+				startTime:'云飞账号'
+			},
+			{
+				equipId:'8',
+				order:'打开水泵141515555开关',
+				date:'2021-3-24 12:30:25',
+				startTime:'云飞账号'
+			},
+			{
+				equipId:'9',
+				order:'打开水泵141515555开关',
+				date:'2021-3-24 12:30:25',
+				startTime:'云飞账号'
+			},
+			{
+				equipId:'10',
+				order:'打开水泵141515555开关',
+				date:'2021-3-24 12:30:25',
+				startTime:'云飞账号'
+			},
+		];
+          this.totalNum = 33;
+    },
+    handleClick(tab, event) {
+        console.log(tab, event);
+    },
+    changePage(value) {
+		this.page = value
+    },
+
+    
+  },
+  beforeCreate() {}, //生命周期 - 创建之前
+  beforeMount() {}, //生命周期 - 挂载之前
+  beforeUpdate() {}, //生命周期 - 更新之前
+  updated() {}, //生命周期 - 更新之后
+  beforeDestroy() {}, //生命周期 - 销毁之前
+  destroyed() {}, //生命周期 - 销毁完成
+  activated() {} //如果页面有keep-alive缓存功能,这个函数会触发
+};
+</script>
+<style lang='less' scoped>
+.seaarchBox{
+	margin-bottom: 10px;
+	display: flex;
+	justify-content: space-between;
+	.searchLeft{
+		display: flex;
+		justify-content: space-between;
+		align-items: center;
+		.el-input{
+			width: 250px;
+		}
+		/deep/.el-input-group__append{
+			border-color: #43cdf6;
+		}
+		.title{
+			margin: 0 5px 0 15px;
+		}
+		.el-button{
+			background: #43cdf6;
+			color: #fff;
+    		border-color: #43cdf6;
+		}
+	}
+	.exportRight{
+		.el-button{
+			background: #43cdf6;
+			color: #fff;
+    		border-color: #43cdf6;
+		}
+	}
+}
+.search-box {
+  text-align: right;
+  .el-input {
+    width: 200px;
+    vertical-align: middle;
+  }
+  .el-select {
+    vertical-align: middle;
+  }
+}
+/deep/.el-table th, /deep/.el-table td{
+    text-align: center;
+}
+/deep/.el-table th{
+    background-color: #43cdf6;
+}
+/deep/.el-table thead{
+    color: #fff;
+}
+/deep/.el-table__body tr.hover-row > td{
+	background-color: rgba(67,205,246,.22);
+}
+// 分页为蓝色调
+/deep/.el-pagination .el-pager li.active{
+  background-color: #0295ff!important;  
+}
+/deep/.el-pagination.is-background .el-pager li:not(.disabled):hover{
+  color: #0295ff;
+}
+/deep/.el-input__inner:focus{
+  outline: none;
+  border-color: #0295ff;
+}
+</style>

+ 212 - 0
src/pages/plantGuard/irrigate/operatData/sboperatData.vue

@@ -0,0 +1,212 @@
+<!-- 水泵操作记录 -->
+<template>
+  <div class="innerMargin">
+    <div class="box-card">
+		<div class="seaarchBox">
+			<div class="searchLeft">
+				<el-input size="small" placeholder="请输入内容" v-model="input3" class="input-with-select">
+					<el-button size="small" slot="append" icon="el-icon-search"></el-button>
+				</el-input>
+				<span class="title">时间选择:</span>
+				<el-date-picker
+					size="small"
+					v-model="value1"
+					type="daterange"
+					range-separator="至"
+					start-placeholder="开始日期"
+					end-placeholder="结束日期">
+				</el-date-picker>
+			</div>
+			<div class="exportRight">
+				<el-button size="small" type="primary">导 出</el-button>
+			</div>
+		</div>
+       <template>
+        <el-table :data="userList" stripe style="width: 100%">
+          <el-table-column prop="equipId"   fixed label="序号"></el-table-column>
+          <el-table-column prop="order" label="操作内容"></el-table-column>
+          <el-table-column prop="date" label="时间"></el-table-column>
+          <el-table-column prop="startTime"  label="操作账号"></el-table-column>
+        </el-table>
+      </template>
+      <el-pagination
+        background
+        :page-size="8"
+        layout="prev, pager, next, jumper"
+        :current-page="page"
+        :total="totalNum"
+        @current-change="changePage"
+      ></el-pagination>
+    </div>
+  </div>
+</template>
+
+<script>
+//这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等)
+//例如:import 《组件名称》 from '《组件路径》';
+export default {
+  //import引入的组件需要注入到对象中才能使用
+  data() {
+	  //这里存放数据
+    return {
+		activeName: 'first',
+		searchVal:'',
+		input3:'',
+        // 
+	    value1:"",
+        role: "",
+        username: "",
+        txtInner:"筛选测试用户",
+        userList: [],
+            userGroupList: [],
+        roleList: [],
+        page: 1,
+        totalNum: 0,
+
+    };
+  },
+  //监听属性 类似于data概念
+  computed: {
+    //获取用户类型
+		userType: function () {
+			return window.sessionStorage.getItem('myuser_type')
+		}
+  },
+  //监控data中的数据变化
+  watch: {},
+  //生命周期 - 创建完成(可以访问当前this实例)
+  created() {
+    
+  },
+  //生命周期 - 挂载完成(可以访问DOM元素)
+  mounted() {
+    this.getList();
+  },
+  //方法集合
+  methods: {
+    //获取用户列表
+    getList() {
+          this.userList = [
+			{
+				equipId:'1',
+				order:'打开水泵141515555开关',
+				date:'2021-3-21 12:30:25',
+				startTime:'云飞账号'
+			},
+			{
+				equipId:'2',
+				order:'关闭水泵141515555开关',
+				date:'2021-3-21 13:30:25',
+				startTime:'云飞账号'
+			},
+			{
+				equipId:'3',
+				order:'打开水泵141515555开关',
+				date:'2021-3-23 12:30:25',
+				startTime:'云飞账号'
+			},
+			{
+				equipId:'4',
+				order:'打开水泵141515555开关',
+				date:'2021-3-23 12:30:25',
+				startTime:'云飞账号'
+			},
+			{
+				equipId:'5',
+				order:'打开水泵141515555开关',
+				date:'2021-3-24 12:30:25',
+				startTime:'云飞账号'
+			},
+			{
+				equipId:'6',
+				order:'打开水泵141515555开关',
+				date:'2021-3-24 12:30:25',
+				startTime:'云飞账号'
+			},
+		];
+          this.totalNum = 33;
+    },
+    handleClick(tab, event) {
+        console.log(tab, event);
+    },
+    changePage(value) {
+		this.page = value
+    },
+
+    
+  },
+  beforeCreate() {}, //生命周期 - 创建之前
+  beforeMount() {}, //生命周期 - 挂载之前
+  beforeUpdate() {}, //生命周期 - 更新之前
+  updated() {}, //生命周期 - 更新之后
+  beforeDestroy() {}, //生命周期 - 销毁之前
+  destroyed() {}, //生命周期 - 销毁完成
+  activated() {} //如果页面有keep-alive缓存功能,这个函数会触发
+};
+</script>
+<style lang='less' scoped>
+.seaarchBox{
+	margin-bottom: 10px;
+	display: flex;
+	justify-content: space-between;
+	.searchLeft{
+		display: flex;
+		justify-content: space-between;
+		align-items: center;
+		.el-input{
+			width: 250px;
+		}
+		/deep/.el-input-group__append{
+			border-color: #43cdf6;
+		}
+		.title{
+			margin: 0 5px 0 15px;
+		}
+		.el-button{
+			background: #43cdf6;
+			color: #fff;
+    		border-color: #43cdf6;
+		}
+	}
+	.exportRight{
+		.el-button{
+			background: #43cdf6;
+			color: #fff;
+    		border-color: #43cdf6;
+		}
+	}
+}
+.search-box {
+  text-align: right;
+  .el-input {
+    width: 200px;
+    vertical-align: middle;
+  }
+  .el-select {
+    vertical-align: middle;
+  }
+}
+/deep/.el-table th, /deep/.el-table td{
+    text-align: center;
+}
+/deep/.el-table th{
+    background-color: #43cdf6;
+}
+/deep/.el-table thead{
+    color: #fff;
+}
+/deep/.el-table__body tr.hover-row > td{
+	background-color: rgba(67,205,246,.22);
+}
+// 分页为蓝色调
+/deep/.el-pagination .el-pager li.active{
+  background-color: #0295ff!important;  
+}
+/deep/.el-pagination.is-background .el-pager li:not(.disabled):hover{
+  color: #0295ff;
+}
+/deep/.el-input__inner:focus{
+  outline: none;
+  border-color: #0295ff;
+}
+</style>

+ 238 - 0
src/pages/plantGuard/irrigate/operatData/sfjoperatData.vue

@@ -0,0 +1,238 @@
+<!-- 水泵操作记录 -->
+<template>
+  <div class="innerMargin">
+    <div class="box-card">
+		<div class="seaarchBox">
+			<div class="searchLeft">
+				<el-input size="small" placeholder="请输入内容" v-model="input3" class="input-with-select">
+					<el-button size="small" slot="append" icon="el-icon-search"></el-button>
+				</el-input>
+				<span class="title">时间选择:</span>
+				<el-date-picker
+					size="small"
+					v-model="value1"
+					type="daterange"
+					range-separator="至"
+					start-placeholder="开始日期"
+					end-placeholder="结束日期">
+				</el-date-picker>
+			</div>
+			<div class="exportRight">
+				<el-button size="small" type="primary">导 出</el-button>
+			</div>
+		</div>
+       <template>
+        <el-table :data="userList" stripe style="width: 100%">
+          <el-table-column prop="equipId"   fixed label="序号"></el-table-column>
+          <el-table-column prop="order" label="操作内容"></el-table-column>
+          <el-table-column prop="date" label="时间"></el-table-column>
+          <el-table-column prop="startTime"  label="操作账号"></el-table-column>
+        </el-table>
+      </template>
+      <el-pagination
+        background
+        :page-size="8"
+        layout="prev, pager, next, jumper"
+        :current-page="page"
+        :total="totalNum"
+        @current-change="changePage"
+      ></el-pagination>
+    </div>
+  </div>
+</template>
+
+<script>
+//这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等)
+//例如:import 《组件名称》 from '《组件路径》';
+export default {
+  //import引入的组件需要注入到对象中才能使用
+  data() {
+	  //这里存放数据
+    return {
+		activeName: 'first',
+		searchVal:'',
+		input3:'',
+        // 
+	    value1:"",
+        role: "",
+        username: "",
+        txtInner:"筛选测试用户",
+        userList: [],
+            userGroupList: [],
+        roleList: [],
+        page: 1,
+        totalNum: 0,
+
+    };
+  },
+  //监听属性 类似于data概念
+  computed: {
+    //获取用户类型
+		userType: function () {
+			return window.sessionStorage.getItem('myuser_type')
+		}
+  },
+  //监控data中的数据变化
+  watch: {},
+  //生命周期 - 创建完成(可以访问当前this实例)
+  created() {
+    
+  },
+  //生命周期 - 挂载完成(可以访问DOM元素)
+  mounted() {
+    this.getList();
+  },
+  //方法集合
+  methods: {
+    //获取用户列表
+    getList() {
+          this.userList = [
+			{
+				equipId:'145234324234',
+				order:'打开水泵141515555开关',
+				date:'2021-3-21 12:30:25',
+				startTime:'云飞账号'
+			},
+			{
+				equipId:'1423423423123',
+				order:'关闭水泵141515555开关',
+				date:'2021-3-21 13:30:25',
+				startTime:'云飞账号'
+			},
+			{
+				equipId:'1534342342342',
+				order:'打开水泵141515555开关',
+				date:'2021-3-23 12:30:25',
+				startTime:'云飞账号'
+			},
+			{
+				equipId:'1463453452355',
+				order:'打开水泵141515555开关',
+				date:'2021-3-23 12:30:25',
+				startTime:'云飞账号'
+			},
+			{
+				equipId:'1563453453455',
+				order:'打开水泵141515555开关',
+				date:'2021-3-24 12:30:25',
+				startTime:'云飞账号'
+			},
+			{
+				equipId:'1625654754455',
+				order:'打开水泵141515555开关',
+				date:'2021-3-24 12:30:25',
+				startTime:'云飞账号'
+			},
+			
+			{
+				equipId:'1563453453455',
+				order:'打开水泵141515555开关',
+				date:'2021-3-24 12:30:25',
+				startTime:'云飞账号'
+			},
+			{
+				equipId:'1625654754455',
+				order:'打开水泵141515555开关',
+				date:'2021-3-24 12:30:25',
+				startTime:'云飞账号'
+			},
+			
+			{
+				equipId:'1563453453455',
+				order:'打开水泵141515555开关',
+				date:'2021-3-24 12:30:25',
+				startTime:'云飞账号'
+			},
+			{
+				equipId:'1625654754455',
+				order:'打开水泵141515555开关',
+				date:'2021-3-24 12:30:25',
+				startTime:'云飞账号'
+			},
+		];
+          this.totalNum = 33;
+    },
+    handleClick(tab, event) {
+        console.log(tab, event);
+    },
+    changePage(value) {
+		this.page = value
+    },
+
+    
+  },
+  beforeCreate() {}, //生命周期 - 创建之前
+  beforeMount() {}, //生命周期 - 挂载之前
+  beforeUpdate() {}, //生命周期 - 更新之前
+  updated() {}, //生命周期 - 更新之后
+  beforeDestroy() {}, //生命周期 - 销毁之前
+  destroyed() {}, //生命周期 - 销毁完成
+  activated() {} //如果页面有keep-alive缓存功能,这个函数会触发
+};
+</script>
+<style lang='less' scoped>
+.seaarchBox{
+	margin-bottom: 10px;
+	display: flex;
+	justify-content: space-between;
+	.searchLeft{
+		display: flex;
+		justify-content: space-between;
+		align-items: center;
+		.el-input{
+			width: 250px;
+		}
+		/deep/.el-input-group__append{
+			border-color: #43cdf6;
+		}
+		.title{
+			margin: 0 5px 0 15px;
+		}
+		.el-button{
+			background: #43cdf6;
+			color: #fff;
+    		border-color: #43cdf6;
+		}
+	}
+	.exportRight{
+		.el-button{
+			background: #43cdf6;
+			color: #fff;
+    		border-color: #43cdf6;
+		}
+	}
+}
+.search-box {
+  text-align: right;
+  .el-input {
+    width: 200px;
+    vertical-align: middle;
+  }
+  .el-select {
+    vertical-align: middle;
+  }
+}
+/deep/.el-table th, /deep/.el-table td{
+    text-align: center;
+}
+/deep/.el-table th{
+    background-color: #43cdf6;
+}
+/deep/.el-table thead{
+    color: #fff;
+}
+/deep/.el-table__body tr.hover-row > td{
+	background-color: rgba(67,205,246,.22);
+}
+// 分页为蓝色调
+/deep/.el-pagination .el-pager li.active{
+  background-color: #0295ff!important;  
+}
+/deep/.el-pagination.is-background .el-pager li:not(.disabled):hover{
+  color: #0295ff;
+}
+/deep/.el-input__inner:focus{
+  outline: none;
+  border-color: #0295ff;
+}
+</style>

+ 195 - 0
src/pages/plantGuard/irrigate/popUp/dcfPopUp.vue

@@ -0,0 +1,195 @@
+<template>
+  <div v-show="visible">
+    <div class="infoWindowBox">
+        <div class="topNav">
+            <div class="title">电磁阀4215153265 <span>【在线】</span></div>
+            <div class="record">操作记录</div>
+        </div>
+        <div class="equipInfo">
+            <div class="equipImg">
+                <img src="../../../../../static/images/equipImg2.png" width="140px" alt="">
+            </div>
+            <div class="equipState"> 
+                <div>
+                    <span class="title">指令</span>
+                    <span class="state">关闭</span>
+                </div>
+                <div>
+                    <span class="title">状态</span>
+                    <span class="state">关闭</span>
+                </div>
+                <div>
+                    <span class="title">报警</span>
+                    <span class="state">正常</span>
+                </div>
+            </div>
+            
+        </div>
+        <div class="equipCtrl">
+            <div>
+                <span>灌溉模式:</span>
+                <el-radio v-model="irrigateModel" label="1">手动</el-radio>
+                <el-radio v-model="irrigateModel" label="2">自动</el-radio>  
+            </div>
+            <div>
+                <el-switch
+                    style="display: block"
+                    v-model="switchVal"
+                    active-color="#0295ff"
+                    inactive-color="#b6b6b6">
+                </el-switch>
+            </div>
+        </div>
+    </div>
+    <div class="amap-info-sharp">
+    </div>
+  </div>
+</template>
+<script>
+export default {
+  data() {
+    return {
+      infoWindow: null,
+      visible:false,
+      irrigateModel:"1",
+      switchVal:true,
+
+      currEquip: {
+        device_type_id:null,
+        device_id:null,
+        device_name:null,
+        city:null,
+        addtime:0,
+      }
+    };
+  },
+  methods: {
+    initialize(e) {
+      this.visible = e.visible;
+      this.currEquip = e.currEquip;
+      this.infoWindow = e.infoWindow;
+    },
+    //关闭
+    close() {
+      this.infoWindow.close();
+    },
+  },
+  mounted(){
+    let infoWindow = new AMap.InfoWindow({
+        isCustom: true,
+        content: '',
+        offset: new AMap.Pixel(5, -11),
+    });
+    this.initialize({
+        currEquip: {},
+        visible: false,
+        infoWindow: infoWindow,
+    })
+  }
+};
+</script>
+ 
+<style  scoped lang="less">
+.infoWindowBox{
+    box-shadow: 0px 0px 4px 0px #0161ff;
+    background: rgba(12,20,44,.80);
+    color: #fff;
+    padding: 20px;
+    border-radius: 10px;
+    width: 300px;
+    .topNav{
+        display: flex;
+        justify-content: space-between;
+        padding-bottom: 10px;
+        border-bottom: 1px solid #0b9ac5a6;
+        align-items: center;
+        .title{
+            font-size: 14px;
+            color: #04d5e8;
+            span{
+                color: #fbc900;
+            }
+        }
+        .record{
+            color: #01d5ed;
+            cursor: pointer;
+            &:hover{
+                text-decoration-line: underline;
+            }
+        }
+    }
+    .equipInfo{
+        display: flex;
+        justify-content: space-between;
+        align-items: center;
+        border-bottom: 1px solid #0b9ac5a6;
+        padding: 13px 0;
+        .equipImg{
+            img{
+                border-radius: 10px;
+            }
+        }
+        .equipState{
+            flex: 1;
+            margin-left: 15px;
+            >div{
+                line-height: 33px;
+            }
+            .title{
+                color: #04d5e8;
+            }
+            .state{
+                padding: 3px 70px 3px 8px;
+                color: #333;
+                background: rgba(255,255,255,.75);
+                margin-left: 6px;
+            }
+        }
+    }
+    .equipCtrl{
+        display: flex;
+        justify-content: space-between;
+        align-items: center;
+        margin-top: 16px;
+        color: #92c2f3;
+        /deep/.el-radio{
+            color: #92c2f3;
+        }
+    }
+}
+.amap-info-sharp{
+    bottom: 0;
+    left: 50%;
+    margin-left: -18px;
+    border-left: 10px solid transparent;
+    border-right: 10px solid transparent;
+    border-top: 10px solid rgba(12, 20, 44, 0.8);
+}
+/* .amap-info-sharp {
+  bottom: -8px;
+  left: 48.5%;
+  position: absolute;
+  color: #fff;
+  z-index: 0;
+}
+#del-div {
+  position: absolute;
+  right: 20px;
+  top: 20px;
+  transform: scale(1.2);
+}
+
+.equipInfoWindowTitle {
+  border-bottom: 2px solid #35a478;
+  line-height: 33px;
+  margin-bottom: 5px;
+}
+.equipInfoWindow {
+  color: #585858;
+  font-size: 14px;
+  line-height: 22px;
+  span {
+    color: #333;
+  }
+} */
+</style>

+ 311 - 0
src/pages/plantGuard/irrigate/popUp/sbPopUp.vue

@@ -0,0 +1,311 @@
+<template>
+  <div v-show="visible">
+    <div class="infoWindowBox">
+        <div class="topNav">
+            <div class="title">水泵1215488888 <span>【在线】</span></div>
+            <div>2020-01-23 12:20:23</div>
+            <div class="record">操作记录>></div>
+        </div>
+        <div v-if="show" class="equipInfo">
+          <div>
+            <div class="states">
+              <div class="item" v-for="item in 6" :key="item" >
+                <div class="imgIcon">
+                  <img src="../../../../../static/images/irrigate/sb/1.png" alt="">
+                </div>
+                <div class="itemVal">
+                  <div class="val">6438</div>
+                  <div class="name">累计流量m³</div>
+                </div>
+              </div>
+            </div>
+            <div class="regulation">
+              <span class="title">变频器调压:</span>
+              <el-slider v-model="regulator" :max="40"></el-slider>
+              <span class="val">{{regulator}}</span>
+              
+            </div>
+          </div>
+          
+            
+        </div>
+        <div v-if="!show" class="equipInfo">
+            <div>
+              <div class="warn">
+                <div>
+                  <span>任务序号:</span>
+                  <el-input
+                      size="small"
+                      placeholder="请输入"
+                      suffix-icon="el-icon-search"
+                      v-model="form.val">
+                  </el-input>
+                </div>
+                <div>
+                  <span>任务名称:</span>
+                  <el-input
+                      size="small"
+                      placeholder="请输入名称"
+                      suffix-icon="el-icon-search"
+                      v-model="form.val">
+                  </el-input>
+                </div>
+                <div>
+                  <span>预警要素:</span>
+                  <el-select size="small" v-model="form.val" placeholder="请选择预警要素">
+                    <el-option
+                      v-for="item in options"
+                      :key="item.value"
+                      :label="item.label"
+                      :value="item.value">
+                    </el-option>
+                  </el-select>
+                </div>
+                <div>
+                  <span>触发类型:</span>
+                  <el-select size="small" v-model="form.val" placeholder="请选择预警要素">
+                    <el-option
+                      v-for="item in options"
+                      :key="item.value"
+                      :label="item.label"
+                      :value="item.value">
+                    </el-option>
+                  </el-select>
+                </div>
+                <div>
+                  <span>预警下线:</span>
+                  <el-input
+                      size="small"
+                      placeholder="请输入预警下线"
+                      suffix-icon="el-icon-search"
+                      v-model="form.val">
+                  </el-input>
+                </div>
+                <div>
+                  <span>预警上线:</span>
+                  <el-input
+                      size="small"
+                      placeholder="请输入预警上线"
+                      suffix-icon="el-icon-search"
+                      v-model="form.val">
+                  </el-input>
+                </div>
+
+              </div>
+              <div class="ctrlBtn">
+                 <el-button size="mini" type="blueInfo">查看以往预警设置>></el-button>
+                 <el-button size="mini" type="blueInfo">预警记录</el-button>
+                 <el-button size="mini" type="blueInfo">保存</el-button>
+                 <el-button size="mini" type="grayInfo">清除</el-button>
+
+              </div>
+            </div>
+            
+        </div>
+        <div class="equipCtrl">
+            <div>
+                <el-button size="mini" :class="[show?'active':'']" @click="switchShow(1)">设备参数</el-button>
+                <el-button size="mini" :class="[show?'':'active']" @click="switchShow(0)" >预警设置</el-button> 
+            </div>
+            <div>
+                <el-switch
+                    style="display: block"
+                    v-model="switchVal"
+                    active-color="#0295ff"
+                    inactive-color="#b6b6b6">
+                </el-switch>
+            </div>
+        </div>
+    </div>
+    <div class="amap-info-sharp">
+    </div>
+  </div>
+</template>
+<script>
+export default {
+  data() {
+    return {
+      infoWindow: null,
+      visible:false,
+      irrigateModel:"1",
+      switchVal:true,
+      regulator:10,
+      show:true,
+      form:{
+        val:1
+      },
+      options: [{
+        value: '选项1',
+        label: '液位'
+      }, {
+        value: '选项2',
+        label: '累计流量'
+      }],
+
+      currEquip: {
+        device_type_id:null,
+        device_id:null,
+        device_name:null,
+        city:null,
+        addtime:0,
+      }
+    };
+  },
+  methods: {
+    initialize(e) {
+      this.visible = e.visible;
+      this.currEquip = e.currEquip;
+      this.infoWindow = e.infoWindow;
+    },
+    //关闭
+    close() {
+      this.infoWindow.close();
+    },
+    switchShow(falg){
+      this.show = falg
+    }
+  },
+  mounted(){
+    let infoWindow = new AMap.InfoWindow({
+        isCustom: true,
+        content: '',
+        offset: new AMap.Pixel(5, -11),
+    });
+    this.initialize({
+        currEquip: {},
+        visible: false,
+        infoWindow: infoWindow,
+    })
+  }
+};
+</script>
+ 
+<style  scoped lang="less">
+.infoWindowBox{
+    box-shadow: 0px 0px 4px 0px #0161ff;
+    background: rgba(12,20,44,.80);
+    color: #fff;
+    padding: 20px;
+    border-radius: 10px;
+    width: 400px;
+    .topNav{
+        display: flex;
+        justify-content: space-between;
+        padding-bottom: 10px;
+        border-bottom: 1px solid #0b9ac5a6;
+        align-items: center;
+        .title{
+            font-size: 14px;
+            color: #04d5e8;
+            span{
+                color: #fbc900;
+            }
+        }
+        .record{
+            color: #01d5ed;
+            cursor: pointer;
+            &:hover{
+                text-decoration-line: underline;
+            }
+        }
+    }
+    .equipInfo{
+      border-bottom: 1px solid #0b9ac5a6;
+      .states{
+        padding: 13px 0 0;
+        display: flex;
+        flex-wrap: wrap;
+        .item{
+          width: 33.33333%;
+          display: flex;
+          justify-content: space-around;
+          align-items: center;
+          margin-bottom: 10px;
+          .val{
+            font-size: 16px;
+            background-image: -webkit-linear-gradient(bottom,#069dff,#09fdff);
+            -webkit-background-clip: text;
+            -webkit-text-fill-color: transparent;
+            font-weight: 700;
+          }
+          .name{
+            color: #92c2f3;
+          }
+        }
+      }
+      .regulation{
+          color: #92c2f3;
+          display: flex;
+          align-items: center;
+          margin-bottom: 5px;
+          .el-slider{
+            width: 74%;
+          }
+          .val{
+            margin-left: 10px;
+          }
+      }
+      // 预警设置
+      .warn{
+        display: flex;
+        flex-wrap: wrap;
+        color: #92c2f3;
+        margin-top: 10px;
+        >div{
+          width: 50%;
+          display: flex;
+          justify-content: space-around;
+          align-items: center;
+          margin-bottom: 10px;
+          .el-input{
+            width: 120px;
+          }
+          .el-select{
+            width: 120px;
+          }
+          input{
+            background: #ffffffb8;
+            border-color: #ffffffb8;
+          }
+        }
+      }
+      .ctrlBtn{
+        display: flex;
+        justify-content: space-between;
+        align-items: center;
+        margin-bottom: 10px;
+      }
+    }
+    .equipCtrl{
+        display: flex;
+        justify-content: space-between;
+        align-items: center;
+        margin-top: 16px;
+        color: #92c2f3;
+        button{
+          color: #0295ff;
+          background: transparent;
+          border: 1px solid #0295ff;
+        }
+        button.active{
+          color: #0aacbe;
+          background: #0aacbe00;
+          border: 1px solid #0aacbe;
+        }
+    }
+}
+.amap-info-sharp{
+    bottom: 0;
+    left: 50%;
+    margin-left: -18px;
+    border-left: 10px solid transparent;
+    border-right: 10px solid transparent;
+    border-top: 10px solid rgba(12, 20, 44, 0.8);
+}
+/deep/.el-slider__bar {
+    background-color: #0295ff;
+}
+/deep/.el-slider__button {
+    border: solid 2px #0295ff;
+}
+</style>

+ 251 - 0
src/pages/plantGuard/irrigate/popUp/sfjPopUp.vue

@@ -0,0 +1,251 @@
+<template>
+  <div v-show="visible">
+    <div class="infoWindowBox">
+        <div class="topNav">
+            <div class="title">施肥机1215488888 <span>【在线】</span></div>
+            <div class="record">操作记录>></div>
+        </div>
+        <div v-if="show" class="equipInfo">
+          <div>
+            <div class="states">
+              <div class="item" v-for="item in 4" :key="item" >
+                <div class="imgIcon">
+                  <img src="../../../../../static/images/irrigate/sb/1.png" alt="">
+                </div>
+                <div class="itemVal">
+                  <div class="val">6438</div>
+                  <div class="name">电导率(EC)</div>
+                </div>
+              </div>
+            </div>
+            <div class="regulation">
+              <span class="title">采集时间:</span>
+              <span class="val">2020-12-25 12:45:30</span>
+              <i class="el-icon-refresh"></i>
+            </div>
+          </div>
+          
+            
+        </div>
+        <div v-if="!show" class="equipInfo">
+            <div>
+              <div class="ekSwitch" v-for="item in 3" :key="item">
+                <div>
+                  <span class="imgIcon">
+                    <img src="../../../../../static/images/irrigate/sf/sfBase.png" alt="">
+                  </span>
+                  <span class="name">注肥通道开关{{item}}</span>
+                  <span class="state">【在线】</span>
+                </div>
+                <div>
+                  <el-switch
+                      style="display: block"
+                      v-model="switchVal"
+                      active-color="#0295ff"
+                      inactive-color="#b6b6b6">
+                  </el-switch>
+                </div>
+              </div>
+            </div>
+            
+        </div>
+        <div class="equipCtrl">
+            <div>
+                <el-button size="mini" :class="[show?'active':'']" @click="switchShow(1)">设备参数</el-button>
+                <el-button size="mini" :class="[show?'':'active']" @click="switchShow(0)" >施肥控制</el-button> 
+            </div>
+            <div>
+                <el-switch
+                    style="display: block"
+                    v-model="switchVal"
+                    active-color="#0295ff"
+                    inactive-color="#b6b6b6">
+                </el-switch>
+            </div>
+        </div>
+    </div>
+    <div class="amap-info-sharp">
+    </div>
+  </div>
+</template>
+<script>
+export default {
+  data() {
+    return {
+      infoWindow: null,
+      visible:false,
+      irrigateModel:"1",
+      switchVal:true,
+      show:true,
+      form:{
+        val:1
+      },
+      options: [{
+        value: '选项1',
+        label: '液位'
+      }, {
+        value: '选项2',
+        label: '累计流量'
+      }],
+
+      currEquip: {
+        device_type_id:null,
+        device_id:null,
+        device_name:null,
+        city:null,
+        addtime:0,
+      }
+    };
+  },
+  methods: {
+    initialize(e) {
+      this.visible = e.visible;
+      this.currEquip = e.currEquip;
+      this.infoWindow = e.infoWindow;
+    },
+    //关闭
+    close() {
+      this.infoWindow.close();
+    },
+    switchShow(falg){
+      this.show = falg
+    }
+  },
+  mounted(){
+    let infoWindow = new AMap.InfoWindow({
+        isCustom: true,
+        content: '',
+        offset: new AMap.Pixel(5, -11),
+    });
+    this.initialize({
+        currEquip: {},
+        visible: false,
+        infoWindow: infoWindow,
+    })
+  }
+};
+</script>
+ 
+<style  scoped lang="less">
+.infoWindowBox{
+    box-shadow: 0px 0px 4px 0px #0161ff;
+    background: rgba(12,20,44,.80);
+    color: #fff;
+    padding: 20px;
+    border-radius: 10px;
+    width: 300px;
+    .topNav{
+        display: flex;
+        justify-content: space-between;
+        padding-bottom: 10px;
+        border-bottom: 1px solid #0b9ac5a6;
+        align-items: center;
+        .title{
+            font-size: 14px;
+            color: #04d5e8;
+            span{
+                color: #fbc900;
+            }
+        }
+        .record{
+            color: #01d5ed;
+            cursor: pointer;
+            &:hover{
+                text-decoration-line: underline;
+            }
+        }
+    }
+    .equipInfo{
+      border-bottom: 1px solid #0b9ac5a6;
+      .states{
+        padding: 13px 0 0;
+        display: flex;
+        flex-wrap: wrap;
+        .item{
+          width: 50%;
+          display: flex;
+          // justify-content: space-around;
+          align-items: center;
+          margin-bottom: 10px;
+          .itemVal{
+            margin-left: 10px;
+          }
+          .val{
+            font-size: 16px;
+            background-image: -webkit-linear-gradient(bottom,#069dff,#09fdff);
+            -webkit-background-clip: text;
+            -webkit-text-fill-color: transparent;
+            font-weight: 700;
+          }
+          .name{
+            color: #92c2f3;
+          }
+        }
+      }
+      .regulation{
+          color: #92c2f3;
+          text-align: center;
+          margin-bottom: 5px;
+          
+      }
+      // 施肥控制
+      .ekSwitch{
+        margin-top: 10px;
+        display: flex;
+        justify-content: space-between;
+        border: 1px solid #01abff;
+        padding: 5px 3px;
+        align-items: center;
+        border-radius: 6px;
+        .imgIcon{
+          border-right: 1px solid #5c7481;
+          padding-right: 6px;
+          margin-right: 4px;
+          img{
+            vertical-align: middle;
+          }
+        }
+        .name{
+          color: #92c2f3;
+        }
+        .state{
+          color: #fbc900;
+        }
+        &:last-child{
+          margin-bottom: 10px;
+        }
+      }
+    }
+    .equipCtrl{
+        display: flex;
+        justify-content: space-between;
+        align-items: center;
+        margin-top: 16px;
+        color: #92c2f3;
+        button{
+          color: #0295ff;
+          background: transparent;
+          border: 1px solid #0295ff;
+        }
+        button.active{
+          color: #0aacbe;
+          background: #0aacbe00;
+          border: 1px solid #0aacbe;
+        }
+    }
+}
+.amap-info-sharp{
+    bottom: 0;
+    left: 50%;
+    margin-left: -18px;
+    border-left: 10px solid transparent;
+    border-right: 10px solid transparent;
+    border-top: 10px solid rgba(12, 20, 44, 0.8);
+}
+/deep/.el-slider__bar {
+    background-color: #0295ff;
+}
+/deep/.el-slider__button {
+    border: solid 2px #0295ff;
+}
+</style>

+ 365 - 0
src/pages/plantGuard/irrigate/popUp/sqPopUp.vue

@@ -0,0 +1,365 @@
+<template>
+  <div v-show="visible">
+    <div class="infoWindowBox">
+        <div class="topNav">
+            <div class="title">墒情站1215488888 <span>【在线】</span></div>
+            <div>2020-01-23 12:20:23</div>
+            <div class="record">操作记录>></div>
+        </div>
+        <div v-if="show" class="equipInfo">
+          <div>
+            <div class="sqInner">
+              <div class="tier eq1">
+                <div class="val">
+                  <div>温度:50%</div>
+                  <div>湿度:40°C</div>
+                </div>
+                <div class="icon">
+                  <img src="../../../../../static/images/irrigate/sq/1.png" alt="">
+                </div>
+                <div class="line"></div>
+              </div>
+              <div class="tier eq2">
+                <div class="line"></div>
+                <div class="icon">
+                  <img src="../../../../../static/images/irrigate/sq/2.png" alt="">
+                </div>
+                <div class="val">
+                  <div>温度:50%</div>
+                  <div>湿度:40°C</div>
+                </div>
+              </div>
+              <div class="tier eq3">
+                <div class="val">
+                  <div>温度:50%</div>
+                  <div>湿度:40°C</div>
+                </div>
+                <div class="icon">
+                  <img src="../../../../../static/images/irrigate/sq/3.png" alt="">
+                </div>
+                <div class="line"></div>
+              </div>
+              <div class="tier eq4">
+                <div class="line"></div>
+                <div class="icon">
+                  <img src="../../../../../static/images/irrigate/sq/4.png" alt="">
+                </div>
+                <div class="val">
+                  <div>温度:50%</div>
+                  <div>湿度:40°C</div>
+                </div>
+                
+              </div>
+              <div class="tier eq5">
+                <div class="val">
+                  <div>温度:50%</div>
+                  <div>湿度:40°C</div>
+                </div>
+                <div class="icon">
+                  <img src="../../../../../static/images/irrigate/sq/5.png" alt="">
+                </div>
+                <div class="line"></div>
+              </div>
+              <div class="upTime">收集时间:2021-04-23 12:23:56</div>
+            </div>
+          </div>
+          
+            
+        </div>
+        <div v-if="!show" class="equipInfo">
+            <div>
+              <div class="warn">
+                <div>
+                  <span>任务序号:</span>
+                  <el-input
+                      size="small"
+                      placeholder="请输入"
+                      suffix-icon="el-icon-search"
+                      v-model="form.val">
+                  </el-input>
+                </div>
+                <div>
+                  <span>任务名称:</span>
+                  <el-input
+                      size="small"
+                      placeholder="请输入名称"
+                      suffix-icon="el-icon-search"
+                      v-model="form.val">
+                  </el-input>
+                </div>
+                <div>
+                  <span>预警要素:</span>
+                  <el-select size="small" v-model="form.val" placeholder="请选择预警要素">
+                    <el-option
+                      v-for="item in options"
+                      :key="item.value"
+                      :label="item.label"
+                      :value="item.value">
+                    </el-option>
+                  </el-select>
+                </div>
+                <div>
+                  <span>触发类型:</span>
+                  <el-select size="small" v-model="form.val" placeholder="请选择预警要素">
+                    <el-option
+                      v-for="item in options"
+                      :key="item.value"
+                      :label="item.label"
+                      :value="item.value">
+                    </el-option>
+                  </el-select>
+                </div>
+                <div>
+                  <span>预警下线:</span>
+                  <el-input
+                      size="small"
+                      placeholder="请输入预警下线"
+                      suffix-icon="el-icon-search"
+                      v-model="form.val">
+                  </el-input>
+                </div>
+                <div>
+                  <span>预警上线:</span>
+                  <el-input
+                      size="small"
+                      placeholder="请输入预警上线"
+                      suffix-icon="el-icon-search"
+                      v-model="form.val">
+                  </el-input>
+                </div>
+
+              </div>
+              <div class="ctrlBtn">
+                 <el-button size="mini" type="blueInfo">查看以往预警设置>></el-button>
+                 <el-button size="mini" type="blueInfo">预警记录</el-button>
+                 <el-button size="mini" type="blueInfo">保存</el-button>
+                 <el-button size="mini" type="grayInfo">清除</el-button>
+
+              </div>
+            </div>
+            
+        </div>
+        <div class="equipCtrl">
+            <div>
+                <el-button size="mini" :class="[show?'active':'']" @click="switchShow(1)">设备参数</el-button>
+                <el-button size="mini" :class="[show?'':'active']" @click="switchShow(0)" >预警设置</el-button> 
+            </div>
+            <div>
+                <el-switch
+                    style="display: block"
+                    v-model="switchVal"
+                    active-color="#0295ff"
+                    inactive-color="#b6b6b6">
+                </el-switch>
+            </div>
+        </div>
+    </div>
+    <div class="amap-info-sharp">
+    </div>
+  </div>
+</template>
+<script>
+export default {
+  data() {
+    return {
+      infoWindow: null,
+      visible:false,
+      irrigateModel:"1",
+      switchVal:true,
+      regulator:10,
+      show:true,
+      form:{
+        val:1
+      },
+      options: [{
+        value: '选项1',
+        label: '液位'
+      }, {
+        value: '选项2',
+        label: '累计流量'
+      }],
+
+      currEquip: {
+        device_type_id:null,
+        device_id:null,
+        device_name:null,
+        city:null,
+        addtime:0,
+      }
+    };
+  },
+  methods: {
+    initialize(e) {
+      this.visible = e.visible;
+      this.currEquip = e.currEquip;
+      this.infoWindow = e.infoWindow;
+    },
+    //关闭
+    close() {
+      this.infoWindow.close();
+    },
+    switchShow(falg){
+      this.show = falg
+    }
+  },
+  mounted(){
+    let infoWindow = new AMap.InfoWindow({
+        isCustom: true,
+        content: '',
+        offset: new AMap.Pixel(5, -11),
+    });
+    this.initialize({
+        currEquip: {},
+        visible: false,
+        infoWindow: infoWindow,
+    })
+  }
+};
+</script>
+ 
+<style  scoped lang="less">
+.infoWindowBox{
+    box-shadow: 0px 0px 4px 0px #0161ff;
+    background: rgba(12,20,44,.80);
+    color: #fff;
+    padding: 20px;
+    border-radius: 10px;
+    width: 400px;
+    .topNav{
+        display: flex;
+        justify-content: space-between;
+        padding-bottom: 10px;
+        border-bottom: 1px solid #0b9ac5a6;
+        align-items: center;
+        .title{
+            font-size: 14px;
+            color: #04d5e8;
+            span{
+                color: #fbc900;
+            }
+        }
+        .record{
+            color: #01d5ed;
+            cursor: pointer;
+            &:hover{
+                text-decoration-line: underline;
+            }
+        }
+    }
+    .equipInfo{
+      border-bottom: 1px solid #0b9ac5a6;
+      
+      .sqInner{
+            height: 200px;
+            background: url(../../../../../static/images/irrigate/sq/bj.png) no-repeat center;
+            position: relative;
+            .tier{
+              position: absolute;
+              display: flex;
+              justify-content: space-between;
+              align-items: center;
+              .val{
+                >div{
+                  font-weight: 700;
+                  background-image: -webkit-linear-gradient(bottom,#069dff,#09fdff);
+                  -webkit-background-clip: text;
+                  -webkit-text-fill-color: transparent;
+                }
+              }
+              .icon{
+                margin: 0 10px;
+              }
+              .line{
+                  width: 40px;
+                  height: 2px;
+                  background: #00c2ff;
+              }
+            }
+            .eq1{
+              top: 30px;
+            }
+            .eq2{
+              top: 50px;
+              right: 0px;
+            }
+            .eq3{
+              top: 80px;
+            }
+            .eq4{
+              top: 100px;
+              right: 0px;
+            }
+            .eq5{
+              top: 130px;
+            }
+            .upTime{
+              position: absolute;
+              bottom: 5px;
+              right: 0;
+              color: #c7c7c7;
+            }
+      }
+      // 预警设置
+      .warn{
+        display: flex;
+        flex-wrap: wrap;
+        color: #92c2f3;
+        margin-top: 10px;
+        >div{
+          width: 50%;
+          display: flex;
+          justify-content: space-around;
+          align-items: center;
+          margin-bottom: 10px;
+          .el-input{
+            width: 120px;
+          }
+          .el-select{
+            width: 120px;
+          }
+          input{
+            background: #ffffffb8;
+            border-color: #ffffffb8;
+          }
+        }
+      }
+      .ctrlBtn{
+        display: flex;
+        justify-content: space-between;
+        align-items: center;
+        margin-bottom: 10px;
+      }
+    }
+    .equipCtrl{
+        display: flex;
+        justify-content: space-between;
+        align-items: center;
+        margin-top: 16px;
+        color: #92c2f3;
+        button{
+          color: #0295ff;
+          background: transparent;
+          border: 1px solid #0295ff;
+        }
+        button.active{
+          color: #0aacbe;
+          background: #0aacbe00;
+          border: 1px solid #0aacbe;
+        }
+    }
+}
+.amap-info-sharp{
+    bottom: 0;
+    left: 50%;
+    margin-left: -18px;
+    border-left: 10px solid transparent;
+    border-right: 10px solid transparent;
+    border-top: 10px solid rgba(12, 20, 44, 0.8);
+}
+/deep/.el-slider__bar {
+    background-color: #0295ff;
+}
+/deep/.el-slider__button {
+    border: solid 2px #0295ff;
+}
+</style>

+ 91 - 0
src/pages/plantGuard/irrigate/popUp/wranPopUp.vue

@@ -0,0 +1,91 @@
+<template>
+  <div v-show="visible">
+    <div class="infoWindowBox">
+      <div class="inner">
+        <div>液体流速≥500</div>
+        <div><span>16:55:55</span> 预警</div>
+      </div>
+    </div>
+  </div>
+</template>
+<script>
+export default {
+  data() {
+    return {
+      infoWindow: null,
+      visible:false,
+      irrigateModel:"1",
+      switchVal:true,
+      show:true,
+      form:{
+        val:1
+      },
+      options: [{
+        value: '选项1',
+        label: '液位'
+      }, {
+        value: '选项2',
+        label: '累计流量'
+      }],
+
+      currEquip: {
+        device_type_id:null,
+        device_id:null,
+        device_name:null,
+        city:null,
+        addtime:0,
+      }
+    };
+  },
+  methods: {
+    initialize(e) {
+      this.visible = e.visible;
+      this.currEquip = e.currEquip;
+      this.infoWindow = e.infoWindow;
+    },
+    //关闭
+    close() {
+      this.infoWindow.close();
+    },
+    switchShow(falg){
+      this.show = falg
+    }
+  },
+  mounted(){
+    let infoWindow = new AMap.InfoWindow({
+        isCustom: true,
+        content: '',
+        offset: new AMap.Pixel(-225, -11),
+    });
+    this.initialize({
+        currEquip: {},
+        visible: false,
+        infoWindow: infoWindow,
+    })
+  }
+};
+</script>
+ 
+<style  scoped lang="less">
+.infoWindowBox{
+  background: url('../../../../../static/images/irrigate/wranBj.png') no-repeat;
+  width: 225px;
+  height: 69px;
+  background-size: 100%;
+  color: #fff;
+  .inner{
+    width: 137px;
+    text-align: right;
+    line-height: 27px;
+    padding: 6px 0;
+    font-size: 14px;
+     >div{
+      span{
+        font-size: 20px;
+      }
+    }
+  }
+ 
+}
+
+</style>

+ 192 - 0
src/pages/plantGuard/irrigate/wranData.vue

@@ -0,0 +1,192 @@
+<!-- 设备预警 -->
+<template>
+  <div class="innerMargin">
+    <div class="box-card">
+        <template>
+            <el-tabs type="border-card" v-model="activeName"  @tab-click="handleClick">
+                <el-tab-pane label="预警记录" name="first">
+                    <wranDataList></wranDataList>
+                </el-tab-pane>
+                <el-tab-pane label="预警设置" name="second">
+                    <wranDataSet></wranDataSet>
+                </el-tab-pane>
+            </el-tabs>
+        </template>
+    </div>
+  </div>
+</template>
+
+<script>
+//这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等)
+//例如:import 《组件名称》 from '《组件路径》';
+import wranDataList from './wranData/wranDataList'
+import wranDataSet from './wranData/wranDataSet'
+export default {
+  //import引入的组件需要注入到对象中才能使用
+  components: {
+      wranDataList,
+      wranDataSet,
+      
+  },
+  data() {
+	  //这里存放数据
+    return {
+        activeName: 'first',
+        // 
+	    value1:"",
+        role: "",
+        username: "",
+        txtInner:"筛选测试用户",
+        userList: [],
+            userGroupList: [],
+        roleList: [],
+        page: 1,
+        totalNum: 0,
+
+    };
+  },
+  //监听属性 类似于data概念
+  computed: {
+    //获取用户类型
+		userType: function () {
+			return window.sessionStorage.getItem('myuser_type')
+		}
+  },
+  //监控data中的数据变化
+  watch: {},
+  //生命周期 - 创建完成(可以访问当前this实例)
+  created() {
+    
+  },
+  //生命周期 - 挂载完成(可以访问DOM元素)
+  mounted() {
+    this.getList();
+  },
+  //方法集合
+  methods: {
+    //获取用户列表
+    getList() {
+          this.userList = [
+			{
+				date:'2021-3-21',
+				order:'112544412577455',
+				equipId:'845521475322545522',
+				startTime:'2021-3-21 12:30:25',
+				endTime:'2021-3-21 12:36:25',
+				electricity:44,
+				water:38,
+				money:28
+			},
+			{
+				date:'2021-3-19',
+				order:'112544412577455',
+				equipId:'845556987322545522',
+				startTime:'2021-3-19 11:30:25',
+				endTime:'2021-3-19 11:36:25',
+				electricity:36,
+				water:21,
+				money:18
+			},
+			{
+				date:'2021-3-21',
+				order:'112544412577455',
+				equipId:'845521475322545522',
+				startTime:'2021-3-21 12:30:25',
+				endTime:'2021-3-21 12:36:25',
+				electricity:44,
+				water:38,
+				money:28
+			},
+			{
+				date:'2021-3-21',
+				order:'112544412577455',
+				equipId:'845521475322545522',
+				startTime:'2021-3-21 12:30:25',
+				endTime:'2021-3-21 12:36:25',
+				electricity:44,
+				water:38,
+				money:28
+			},{
+				date:'2021-3-21',
+				order:'112544412577455',
+				equipId:'845521475322545522',
+				startTime:'2021-3-21 12:30:25',
+				endTime:'2021-3-21 12:36:25',
+				electricity:44,
+				water:38,
+				money:28
+			},{
+				date:'2021-3-21',
+				order:'112544412577455',
+				equipId:'845521475322545522',
+				startTime:'2021-3-21 12:30:25',
+				endTime:'2021-3-21 12:36:25',
+				electricity:44,
+				water:38,
+				money:28
+			},{
+				date:'2021-3-21',
+				order:'112544412577455',
+				equipId:'845521475322545522',
+				startTime:'2021-3-21 12:30:25',
+				endTime:'2021-3-21 12:36:25',
+				electricity:44,
+				water:38,
+				money:28
+			},{
+				date:'2021-3-21',
+				order:'112544412577455',
+				equipId:'845521475322545522',
+				startTime:'2021-3-21 12:30:25',
+				endTime:'2021-3-21 12:36:25',
+				electricity:44,
+				water:38,
+				money:28
+			},{
+				date:'2021-3-21',
+				order:'112544412577455',
+				equipId:'845521475322545522',
+				startTime:'2021-3-21 12:30:25',
+				endTime:'2021-3-21 12:36:25',
+				electricity:44,
+				water:38,
+				money:28
+			},{
+				date:'2021-3-21',
+				order:'112544412577455',
+				equipId:'845521475322545522',
+				startTime:'2021-3-21 12:30:25',
+				endTime:'2021-3-21 12:36:25',
+				electricity:44,
+				water:38,
+				money:28
+			}
+		];
+          this.totalNum = 33;
+    },
+    handleClick(tab, event) {
+        console.log(tab, event);
+    },
+    changePage(value) {
+		this.page = value
+    },
+
+    
+  },
+  beforeCreate() {}, //生命周期 - 创建之前
+  beforeMount() {}, //生命周期 - 挂载之前
+  beforeUpdate() {}, //生命周期 - 更新之前
+  updated() {}, //生命周期 - 更新之后
+  beforeDestroy() {}, //生命周期 - 销毁之前
+  destroyed() {}, //生命周期 - 销毁完成
+  activated() {} //如果页面有keep-alive缓存功能,这个函数会触发
+};
+</script>
+<style lang='less' scoped>
+/deep/.el-tabs--border-card > .el-tabs__header .el-tabs__item.is-active {
+    color: #008cff;
+}
+/deep/.el-tabs--border-card > .el-tabs__header .el-tabs__item:not(.is-disabled):hover{
+    color: #008cff;
+}
+</style>

+ 276 - 0
src/pages/plantGuard/irrigate/wranData/wranDataList.vue

@@ -0,0 +1,276 @@
+<!-- 预警历史记录 -->
+<template>
+  <div class="innerMargin">
+    <div class="box-card">
+		<div class="seaarchBox">
+			<div class="searchLeft">
+				<el-input size="small" placeholder="请输入内容" v-model="input3" class="input-with-select">
+					<el-button size="small" slot="append" icon="el-icon-search"></el-button>
+				</el-input>
+				<span class="title">设备类型:</span>
+				<el-select size="small" v-model="input3" placeholder="请选择">
+					<el-option
+					v-for="item in options"
+					:key="item.value"
+					:label="item.label"
+					:value="item.value">
+					</el-option>
+				</el-select>
+				<span class="title">时间选择:</span>
+				<el-date-picker
+					size="small"
+					v-model="value1"
+					type="daterange"
+					range-separator="至"
+					start-placeholder="开始日期"
+					end-placeholder="结束日期">
+				</el-date-picker>
+			</div>
+			<div class="exportRight">
+				<el-button size="small" class="renBtn" type="primary">标记未读</el-button>
+				<el-button size="small" class="darkblueBtn" type="primary">标记已读</el-button>
+				<el-button size="small" class="blueBtn" type="primary">导 出</el-button>
+			</div>
+		</div>
+       <template>
+        <el-table :data="userList" stripe style="width: 100%">
+			<el-table-column
+				type="selection"
+				width="55">
+			</el-table-column>
+			<el-table-column prop="equipId"   fixed label="序号"></el-table-column>
+			<el-table-column prop="order" label="任务名称"></el-table-column>
+			<el-table-column prop="date" label="时间"></el-table-column>
+			<el-table-column prop="date1" width="400px" label="信息"></el-table-column>
+			<el-table-column prop="startTime"  label="状态"></el-table-column>
+        </el-table>
+      </template>
+      <el-pagination
+        background
+        :page-size="8"
+        layout="prev, pager, next, jumper"
+        :current-page="page"
+        :total="totalNum"
+        @current-change="changePage"
+      ></el-pagination>
+    </div>
+  </div>
+</template>
+
+<script>
+//这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等)
+//例如:import 《组件名称》 from '《组件路径》';
+export default {
+  //import引入的组件需要注入到对象中才能使用
+  data() {
+	  //这里存放数据
+    return {
+		activeName: 'first',
+		searchVal:'',
+		input3:'',
+		options: [{
+          value: '水泵',
+          label: '水泵'
+        },{
+          value: '水肥机',
+          label: '水肥机'
+        },{
+          value: '电磁阀',
+          label: '电磁阀'
+        }],
+        // 
+	    value1:"",
+        role: "",
+        username: "",
+        txtInner:"筛选测试用户",
+        userList: [],
+            userGroupList: [],
+        roleList: [],
+        page: 1,
+        totalNum: 0,
+
+    };
+  },
+  //监听属性 类似于data概念
+  computed: {
+    //获取用户类型
+		userType: function () {
+			return window.sessionStorage.getItem('myuser_type')
+		}
+  },
+  //监控data中的数据变化
+  watch: {},
+  //生命周期 - 创建完成(可以访问当前this实例)
+  created() {
+    
+  },
+  //生命周期 - 挂载完成(可以访问DOM元素)
+  mounted() {
+    this.getList();
+  },
+  //方法集合
+  methods: {
+    //获取用户列表
+    getList() {
+          this.userList = [
+			{
+				equipId:'145234324234',
+				order:'水泵任务',
+				date:'2021-3-21 12:30:25',
+				date1:'墒情站(145234324234)的雨量低于2㎜,目前为0.0㎜',
+				startTime:'已读',
+			},
+			{
+				equipId:'145234324234',
+				order:'水泵任务',
+				date:'2021-3-21 12:30:25',
+				date1:'墒情站(145234324234)的雨量低于2㎜,目前为0.0㎜',
+				startTime:'已读',
+			},{
+				equipId:'145234324234',
+				order:'水泵任务',
+				date:'2021-3-21 12:30:25',
+				date1:'墒情站(145234324234)的雨量低于2㎜,目前为0.0㎜',
+				startTime:'未读',
+			},{
+				equipId:'145234324234',
+				order:'水泵任务',
+				date:'2021-3-21 12:30:25',
+				date1:'墒情站(145234324234)的雨量低于2㎜,目前为0.0㎜',
+				startTime:'已读',
+			},{
+				equipId:'145234324234',
+				order:'水泵任务',
+				date:'2021-3-21 12:30:25',
+				date1:'墒情站(145234324234)的雨量低于2㎜,目前为0.0㎜',
+				startTime:'未读',
+			},{
+				equipId:'145234324234',
+				order:'水泵任务',
+				date:'2021-3-21 12:30:25',
+				date1:'墒情站(145234324234)的雨量低于2㎜,目前为0.0㎜',
+				startTime:'已读',
+			},{
+				equipId:'145234324234',
+				order:'水泵任务',
+				date:'2021-3-21 12:30:25',
+				date1:'墒情站(145234324234)的雨量低于2㎜,目前为0.0㎜',
+				startTime:'已读',
+			},{
+				equipId:'145234324234',
+				order:'水泵任务',
+				date:'2021-3-21 12:30:25',
+				date1:'墒情站(145234324234)的雨量低于2㎜,目前为0.0㎜',
+				startTime:'已读',
+			},{
+				equipId:'145234324234',
+				order:'水泵任务',
+				date:'2021-3-21 12:30:25',
+				date1:'墒情站(145234324234)的雨量低于2㎜,目前为0.0㎜',
+				startTime:'已读',
+			},{
+				equipId:'145234324234',
+				order:'水泵任务',
+				date:'2021-3-21 12:30:25',
+				date1:'墒情站(145234324234)的雨量低于2㎜,目前为0.0㎜',
+				startTime:'已读',
+			},
+		];
+          this.totalNum = 33;
+    },
+    handleClick(tab, event) {
+        console.log(tab, event);
+    },
+    changePage(value) {
+		this.page = value
+    },
+
+    
+  },
+  beforeCreate() {}, //生命周期 - 创建之前
+  beforeMount() {}, //生命周期 - 挂载之前
+  beforeUpdate() {}, //生命周期 - 更新之前
+  updated() {}, //生命周期 - 更新之后
+  beforeDestroy() {}, //生命周期 - 销毁之前
+  destroyed() {}, //生命周期 - 销毁完成
+  activated() {} //如果页面有keep-alive缓存功能,这个函数会触发
+};
+</script>
+<style lang='less' scoped>
+.seaarchBox{
+	margin-bottom: 10px;
+	display: flex;
+	justify-content: space-between;
+	.searchLeft{
+		display: flex;
+		justify-content: space-between;
+		align-items: center;
+		.el-input{
+			width: 250px;
+		}
+		/deep/.el-input-group__append{
+			border-color: #43cdf6;
+		}
+		.title{
+			margin: 0 5px 0 15px;
+		}
+		.el-button{
+			background: #43cdf6;
+			color: #fff;
+    		border-color: #43cdf6;
+		}
+	}
+	.exportRight{
+		.renBtn{
+			background: #ff6262;
+			border-color: #ff6262;
+		}
+		.darkblueBtn{
+			background: #3762ff;
+			border-color: #3762ff;
+		}
+		.blueBtn{
+			background: #43cdf6;
+			border-color: #43cdf6;
+		}
+	}
+}
+.search-box {
+  text-align: right;
+  .el-input {
+    width: 200px;
+    vertical-align: middle;
+  }
+  .el-select {
+    vertical-align: middle;
+  }
+}
+/deep/.el-table th, /deep/.el-table td{
+    text-align: center;
+}
+/deep/.el-table th{
+    background-color: #43cdf6;
+}
+/deep/.el-table thead{
+    color: #fff;
+}
+/deep/.el-table__body tr.hover-row > td{
+	background-color: rgba(67,205,246,.22);
+}
+// 分页为蓝色调
+/deep/.el-pagination .el-pager li.active{
+  background-color: #0295ff!important;  
+}
+/deep/.el-pagination.is-background .el-pager li:not(.disabled):hover{
+  color: #0295ff;
+}
+/deep/.el-input__inner:focus{
+  outline: none;
+  border-color: #0295ff;
+}
+// table复选框
+/deep/.el-checkbox__input.is-checked .el-checkbox__inner{
+	background-color: #3762ff;
+    border-color: #3762ff;
+}
+</style>

+ 307 - 0
src/pages/plantGuard/irrigate/wranData/wranDataSet.vue

@@ -0,0 +1,307 @@
+<!-- 预警设置 -->
+<template>
+  <div class="innerMargin">
+    <div class="box-card">
+		<div class="seaarchBox">
+			<div class="searchLeft">
+				<el-input size="small" placeholder="请输入内容" v-model="input3" class="input-with-select">
+					<el-button size="small" slot="append" icon="el-icon-search"></el-button>
+				</el-input>
+				<span class="title">设备类型:</span>
+				<el-select size="small" v-model="input3" placeholder="请选择设备类型">
+					<el-option
+					v-for="item in options"
+					:key="item.value"
+					:label="item.label"
+					:value="item.value">
+					</el-option>
+				</el-select>
+				<span class="title">时间选择:</span>
+				<el-date-picker
+					size="small"
+					v-model="value1"
+					type="daterange"
+					range-separator="至"
+					start-placeholder="开始日期"
+					end-placeholder="结束日期">
+				</el-date-picker>
+			</div>
+			<div class="exportRight">
+				<el-button size="small" class="darkblueBtn" type="primary">新增预警</el-button>
+				<el-button size="small" class="blueBtn" type="primary">导 出</el-button>
+			</div>
+		</div>
+       <template>
+        <el-table :data="userList" stripe style="width: 100%">
+			<el-table-column prop="order" label="任务名称"></el-table-column>
+			<el-table-column prop="equipId" label="设备名称"></el-table-column>
+			<el-table-column prop="sensor" label="传感器"></el-table-column>
+			<el-table-column prop="upline" label="上线"></el-table-column>
+			<el-table-column prop="offline" label="下线"></el-table-column>
+			<el-table-column prop="date" label="时间"></el-table-column>
+			<el-table-column prop="startTime" width="200px" label="操作">
+				<template slot-scope="scope">
+					<el-button type="blueInfo" size="mini" plain>修改</el-button>
+					<el-button type="warning" size="mini" plain>停用</el-button>
+					<el-button type="danger" size="mini" plain>删除</el-button>
+				</template>
+			</el-table-column>
+        </el-table>
+      </template>
+      <el-pagination
+        background
+        :page-size="8"
+        layout="prev, pager, next, jumper"
+        :current-page="page"
+        :total="totalNum"
+        @current-change="changePage"
+      ></el-pagination>
+    </div>
+  </div>
+</template>
+
+<script>
+//这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等)
+//例如:import 《组件名称》 from '《组件路径》';
+export default {
+  //import引入的组件需要注入到对象中才能使用
+  data() {
+	  //这里存放数据
+    return {
+		activeName: 'first',
+		searchVal:'',
+		input3:'',
+		options: [{
+          value: '水泵',
+          label: '水泵'
+        },{
+          value: '水肥机',
+          label: '水肥机'
+        },{
+          value: '电磁阀',
+          label: '电磁阀'
+        }],
+        // 
+	    value1:"",
+        role: "",
+        username: "",
+        txtInner:"筛选测试用户",
+        userList: [],
+            userGroupList: [],
+        roleList: [],
+        page: 1,
+        totalNum: 0,
+
+    };
+  },
+  //监听属性 类似于data概念
+  computed: {
+    //获取用户类型
+		userType: function () {
+			return window.sessionStorage.getItem('myuser_type')
+		}
+  },
+  //监控data中的数据变化
+  watch: {},
+  //生命周期 - 创建完成(可以访问当前this实例)
+  created() {
+    
+  },
+  //生命周期 - 挂载完成(可以访问DOM元素)
+  mounted() {
+    this.getList();
+  },
+  //方法集合
+  methods: {
+    //获取用户列表
+    getList() {
+          this.userList = [
+			{
+				equipId:'水泵145234324234',
+				order:'水泵任务',
+				sensor:'用水量(t)',
+				date:'2021-3-21 12:30:25',
+				upline:'20',
+				offline:'20',
+				startTime:'已读',
+			},
+			{
+				equipId:'水泵145234324234',
+				order:'水泵任务',
+				sensor:'用水量(t)',
+				date:'2021-3-21 12:30:25',
+				upline:'20',
+				offline:'20',
+				startTime:'已读',
+			},{
+				equipId:'水泵145234324234',
+				order:'水泵任务',
+				sensor:'用水量(t)',
+				date:'2021-3-21 12:30:25',
+				upline:'20',
+				offline:'20',
+				startTime:'已读',
+			},{
+				equipId:'水泵145234324234',
+				order:'水泵任务',
+				sensor:'用水量(t)',
+				date:'2021-3-21 12:30:25',
+				upline:'20',
+				offline:'20',
+				startTime:'已读',
+			},{
+				equipId:'水泵145234324234',
+				order:'水泵任务',
+				sensor:'用水量(t)',
+				date:'2021-3-21 12:30:25',
+				upline:'20',
+				offline:'20',
+				startTime:'已读',
+			},{
+				equipId:'水泵145234324234',
+				order:'水泵任务',
+				sensor:'用水量(t)',
+				date:'2021-3-21 12:30:25',
+				upline:'20',
+				offline:'20',
+				startTime:'已读',
+			},{
+				equipId:'水泵145234324234',
+				order:'水泵任务',
+				sensor:'用水量(t)',
+				date:'2021-3-21 12:30:25',
+				upline:'20',
+				offline:'20',
+				startTime:'已读',
+			},{
+				equipId:'水泵145234324234',
+				order:'水泵任务',
+				sensor:'用水量(t)',
+				date:'2021-3-21 12:30:25',
+				upline:'20',
+				offline:'20',
+				startTime:'已读',
+			},{
+				equipId:'水泵145234324234',
+				order:'水泵任务',
+				sensor:'用水量(t)',
+				date:'2021-3-21 12:30:25',
+				upline:'20',
+				offline:'20',
+				startTime:'已读',
+			},{
+				equipId:'水泵145234324234',
+				order:'水泵任务',
+				sensor:'用水量(t)',
+				date:'2021-3-21 12:30:25',
+				upline:'20',
+				offline:'20',
+				startTime:'已读',
+			},{
+				equipId:'水泵145234324234',
+				order:'水泵任务',
+				sensor:'用水量(t)',
+				date:'2021-3-21 12:30:25',
+				upline:'20',
+				offline:'20',
+				startTime:'已读',
+			},
+		];
+          this.totalNum = 33;
+    },
+    handleClick(tab, event) {
+        console.log(tab, event);
+    },
+    changePage(value) {
+		this.page = value
+    },
+
+    
+  },
+  beforeCreate() {}, //生命周期 - 创建之前
+  beforeMount() {}, //生命周期 - 挂载之前
+  beforeUpdate() {}, //生命周期 - 更新之前
+  updated() {}, //生命周期 - 更新之后
+  beforeDestroy() {}, //生命周期 - 销毁之前
+  destroyed() {}, //生命周期 - 销毁完成
+  activated() {} //如果页面有keep-alive缓存功能,这个函数会触发
+};
+</script>
+<style lang='less' scoped>
+.seaarchBox{
+	margin-bottom: 10px;
+	display: flex;
+	justify-content: space-between;
+	.searchLeft{
+		display: flex;
+		justify-content: space-between;
+		align-items: center;
+		.el-input{
+			width: 250px;
+		}
+		/deep/.el-input-group__append{
+			border-color: #43cdf6;
+		}
+		.title{
+			margin: 0 5px 0 15px;
+		}
+		.el-button{
+			background: #43cdf6;
+			color: #fff;
+    		border-color: #43cdf6;
+		}
+	}
+	.exportRight{
+		.renBtn{
+			background: #ff6262;
+			border-color: #ff6262;
+		}
+		.darkblueBtn{
+			background: #3762ff;
+			border-color: #3762ff;
+		}
+		.blueBtn{
+			background: #43cdf6;
+			border-color: #43cdf6;
+		}
+	}
+}
+.search-box {
+  text-align: right;
+  .el-input {
+    width: 200px;
+    vertical-align: middle;
+  }
+  .el-select {
+    vertical-align: middle;
+  }
+}
+/deep/.el-table th, /deep/.el-table td{
+    text-align: center;
+}
+/deep/.el-table th{
+    background-color: #43cdf6;
+}
+/deep/.el-table thead{
+    color: #fff;
+}
+/deep/.el-table__body tr.hover-row > td,/deep/.el-table--enable-row-hover .el-table__body tr:hover > td{
+	background-color: rgba(67,205,246,.22);
+}
+// 分页为蓝色调
+/deep/.el-pagination .el-pager li.active{
+  background-color: #0295ff!important;  
+}
+/deep/.el-pagination.is-background .el-pager li:not(.disabled):hover{
+  color: #0295ff;
+}
+/deep/.el-input__inner:focus{
+  outline: none;
+  border-color: #0295ff;
+}
+// table复选框
+/deep/.el-checkbox__input.is-checked .el-checkbox__inner{
+	background-color: #3762ff;
+    border-color: #3762ff;
+}
+</style>

+ 122 - 68
src/pages/plantGuard/page1.vue

@@ -55,7 +55,30 @@
 				></el-input>
       </div>
       <div class="equipListBox" id="equipListBox"  v-loading="equipListloading" >
-        <div class="equipList" >
+        <div class="innerList">
+            <div class="scroll">
+              <el-scrollbar>
+                <div class="equipList">
+                  <div v-for="(item,index) in equipListCurr" :key="index" :class="[index==equipListActive?'active':'','equipItem']" @click="equipMarkerClick(item)">
+                    <div>
+                      <div class="equipId">
+                        <span :class="item.device_status?'online':'offline'"></span>
+                        {{item.device_name || item.device_id}}
+                      </div>
+                      <div class="equipCity">{{item.city}}</div>
+                    </div>
+                    <div>
+                      <div class="equipType">{{item.device_type_id | equipType}}</div>
+                      <div class="equipTime">{{item.addtime*1000 | formatTime}}</div>
+
+                    </div>
+                  </div>
+                </div>
+              </el-scrollbar>
+          </div> 
+        </div>
+        
+        <!-- <div class="equipList" >
           <div v-for="(item,index) in equipListCurr" :key="index" :class="[index==equipListActive?'active':'','equipItem']" @click="equipMarkerClick(item)">
             <div>
               <div class="equipId">
@@ -70,7 +93,7 @@
 
             </div>
           </div>
-        </div>
+        </div> -->
       </div>
       
     </equip-list>
@@ -686,7 +709,6 @@ export default {
             center: this.center,
             resizeEnable: true,
             zoom: 4,
-            lang: "en",
         });
         AMap.plugin(
         [
@@ -1254,76 +1276,108 @@ export default {
 .equipListBox{
     position: absolute;
     left: 0;
-    right: .4375rem;
+    right: 0;
     top: 70px;
     bottom: 0;
-    overflow: auto;
-  .equipList{
-    // padding: 20px;
-    .equipItem{
-      padding: .125rem .0875rem;
-      cursor: pointer;
-      display: flex;
-      justify-content: space-between;
-      margin: .1875rem;
-      border: 1px dashed transparent;
-      border-bottom: 1px dashed #ddd;
-      padding-bottom: .125rem;
-      color: #8b8b8b;
-      >div{
-        flex: 1;
-        overflow: hidden;
-      }
-      .equipId{
-        line-height: .425rem;
-        font-size: .175rem;
-        color: #000;
-        font-weight: 700;
-        text-overflow: ellipsis;
-        white-space: nowrap;
-        overflow: hidden;
-        span{
-          display: inline-block;
-          width: .1125rem;
-          height: .1125rem;
-          border-radius: 50%;
-          margin-right: .0375rem;
-        }
-        span.online{
-          background: #0195ff;
+    overflow: hidden;
+    .innerList{
+        position: absolute;
+        top: 0;
+        bottom: -18px;
+        left: 0;
+        right: 0;
+        .scroll{
+            height: 100%;
+            overflow: auto;
+            .equipList{
+              // padding: 20px;
+              .equipItem{
+                padding: .125rem .0875rem;
+                cursor: pointer;
+                display: flex;
+                justify-content: space-between;
+                margin: .1875rem;
+                border: 1px dashed transparent;
+                border-bottom: 1px dashed #ddd;
+                padding-bottom: .125rem;
+                color: #8b8b8b;
+                >div{
+                  flex: 1;
+                  overflow: hidden;
+                }
+                .equipId{
+                  line-height: .425rem;
+                  font-size: .175rem;
+                  color: #000;
+                  font-weight: 700;
+                  text-overflow: ellipsis;
+                  white-space: nowrap;
+                  overflow: hidden;
+                  span{
+                    display: inline-block;
+                    width: .1125rem;
+                    height: .1125rem;
+                    border-radius: 50%;
+                    margin-right: .0375rem;
+                  }
+                  span.online{
+                    background: #0195ff;
+                  }
+                  span.offline{
+                    background: red;
+                  }
+                }
+                .equipCity{
+                  text-indent: .2rem;
+                  text-overflow: ellipsis;
+                  white-space: nowrap;
+                  overflow: hidden;
+                }
+                .equipType{
+                  line-height: .425rem;
+                  font-size: .175rem;
+                  color: #0195ff;
+                  font-weight: 700;
+                  text-align: right;
+                  text-overflow: ellipsis;
+                  white-space: nowrap;
+                  overflow: hidden;
+                }
+                .equipTime{
+                  text-align: right;
+                  text-overflow: ellipsis;
+                  white-space: nowrap;
+                  overflow: hidden;
+                }
+              }
+              .equipItem.active{
+                border: 1px dashed #0195ff;
+                box-shadow: 0px 0px 5px 1px #39acff;
+              }
+            }
         }
-        span.offline{
-          background: red;
+        .scroll {
+            height: 100%;
+            overflow-y: hidden;
+            }
+            .el-scrollbar{
+            height: 100%;
+            }
+            .el-scrollbar__bar{
+            &.is-vertical{
+                width:100px;//滚动条宽度
+            }
+            }
+            .el-scrollbar__wrap{
+            overflow-y: auto;
+            overflow-x:hidden;
+            }
+            .el-scrollbar__thumb {
+            // 可设置滚动条颜色
+            background: red;
         }
-      }
-      .equipCity{
-        text-indent: .2rem;
-        text-overflow: ellipsis;
-        white-space: nowrap;
-        overflow: hidden;
-      }
-      .equipType{
-        line-height: .425rem;
-        font-size: .175rem;
-        color: #0195ff;
-        font-weight: 700;
-        text-align: right;
-        text-overflow: ellipsis;
-        white-space: nowrap;
-        overflow: hidden;
-      }
-      .equipTime{
-        text-align: right;
-        text-overflow: ellipsis;
-        white-space: nowrap;
-        overflow: hidden;
-      }
     }
-    .equipItem.active{
-      border: 1px dashed #0195ff;
-      box-shadow: 0px 0px 5px 1px #39acff;
-    }
-  }
+  
 }
 .jkTitle{
   display: flex;

+ 19 - 4
src/router/index.js

@@ -146,6 +146,9 @@ const Page9 = () => import('@/Pages/plantGuard/page9') //水价管理-地图展
 const Page10 = () => import('@/Pages/plantGuard/page10') //水价管理-地图展示
 const Page11 = () => import('@/Pages/plantGuard/page11') //水价管理-地图展示
 const MapView = () => import( /* webpackChunkName: "shouye" */ '@/components/home/MapView')
+const Irrigate = () => import('@/Pages/plantGuard/irrigate/irrigate') //智能灌溉-灌溉展示
+const OperatData = () => import('@/Pages/plantGuard/irrigate/operatData') //智能灌溉-操作记录
+const WranData = () => import('@/Pages/plantGuard/irrigate/wranData') //智能灌溉-设备预警
 
 Vue.use(Router)
 
@@ -193,10 +196,22 @@ export default new Router({
           meta: { title: '数据监测',order:0 ,navname:'数据目录管理',}
         },
         {
-          path: 'page3',
-          name: 'page3',
-          component: Page3,
-          meta: { title: '智能灌溉系统',order:2 ,navname:'系统管理',}
+          path: 'irrigate',
+          name: 'irrigate',
+          component: Irrigate,
+          meta: { title: '智能灌溉系统',order:2 ,navname:'灌溉展示',}
+        },
+        {
+          path: 'operatData',
+          name: 'operatData',
+          component: OperatData,
+          meta: { title: '智能灌溉系统',order:2 ,navname:'操作记录',}
+        },
+        {
+          path: 'wranData',
+          name: 'wranData',
+          component: WranData,
+          meta: { title: '智能灌溉系统',order:2 ,navname:'设备预警',}
         },
         {
           path: 'page4',

BIN
static/images/baseIcon.png


BIN
static/images/irrigate/dcfIcon.png


BIN
static/images/irrigate/dcfPhoto.png


BIN
static/images/irrigate/qxdev/164.png


BIN
static/images/irrigate/qxdev/165.png


BIN
static/images/irrigate/qxdev/166.png


BIN
static/images/irrigate/qxdev/167.png


BIN
static/images/irrigate/qxdev/168.png


BIN
static/images/irrigate/qxdev/169.png


BIN
static/images/irrigate/qxdev/170.png


BIN
static/images/irrigate/qxdev/171.png


BIN
static/images/irrigate/qxdev/172.png


BIN
static/images/irrigate/qxdev/173.png


BIN
static/images/irrigate/qxdev/174.png


BIN
static/images/irrigate/qxdev/175.png


BIN
static/images/irrigate/qxdev/213.png


BIN
static/images/irrigate/qxdev/214.png


BIN
static/images/irrigate/qxdev/215.png


BIN
static/images/irrigate/qxdev/216.png


BIN
static/images/irrigate/qxdev/icon_100.png


BIN
static/images/irrigate/qxdev/icon_101.png


BIN
static/images/irrigate/qxdev/icon_102.png


BIN
static/images/irrigate/qxdev/icon_103.png


BIN
static/images/irrigate/qxdev/icon_104.png


BIN
static/images/irrigate/qxdev/icon_105.png


BIN
static/images/irrigate/qxdev/icon_106.png


BIN
static/images/irrigate/qxdev/icon_107.png


BIN
static/images/irrigate/qxdev/icon_108.png


BIN
static/images/irrigate/qxdev/icon_109.png


BIN
static/images/irrigate/qxdev/icon_110.png


BIN
static/images/irrigate/qxdev/icon_111.png


BIN
static/images/irrigate/qxdev/icon_112.png


BIN
static/images/irrigate/qxdev/icon_113.png


BIN
static/images/irrigate/qxdev/icon_114.png


BIN
static/images/irrigate/qxdev/icon_115.png


BIN
static/images/irrigate/qxdev/icon_116.png


BIN
static/images/irrigate/qxdev/icon_117.png


BIN
static/images/irrigate/qxdev/icon_118.png


BIN
static/images/irrigate/qxdev/icon_119.png


BIN
static/images/irrigate/qxdev/icon_120.png


BIN
static/images/irrigate/qxdev/icon_121.png


BIN
static/images/irrigate/qxdev/icon_122.png


BIN
static/images/irrigate/qxdev/icon_123.png


BIN
static/images/irrigate/qxdev/icon_124.png


BIN
static/images/irrigate/qxdev/icon_125.png


BIN
static/images/irrigate/qxdev/icon_126.png


BIN
static/images/irrigate/qxdev/icon_127.png


BIN
static/images/irrigate/qxdev/icon_128.png


BIN
static/images/irrigate/qxdev/icon_129.png


BIN
static/images/irrigate/qxdev/icon_130.png


BIN
static/images/irrigate/qxdev/icon_131.png


BIN
static/images/irrigate/qxdev/icon_132.png


BIN
static/images/irrigate/qxdev/icon_133.png


BIN
static/images/irrigate/qxdev/icon_134.png


BIN
static/images/irrigate/qxdev/icon_135.png


BIN
static/images/irrigate/qxdev/icon_136.png


BIN
static/images/irrigate/qxdev/icon_138.png


BIN
static/images/irrigate/qxdev/icon_139.png


BIN
static/images/irrigate/qxdev/icon_140.png


BIN
static/images/irrigate/qxdev/icon_141.png


BIN
static/images/irrigate/qxdev/icon_142.png


BIN
static/images/irrigate/qxdev/icon_143.png


BIN
static/images/irrigate/qxdev/icon_144.png


BIN
static/images/irrigate/qxdev/icon_145.png


BIN
static/images/irrigate/qxdev/icon_146.png


BIN
static/images/irrigate/qxdev/icon_147.png


BIN
static/images/irrigate/qxdev/icon_147_1.png


BIN
static/images/irrigate/qxdev/icon_148.png


BIN
static/images/irrigate/qxdev/icon_148_1.png


BIN
static/images/irrigate/qxdev/icon_149.png


BIN
static/images/irrigate/qxdev/icon_149_1.png


BIN
static/images/irrigate/qxdev/icon_150.png


BIN
static/images/irrigate/qxdev/icon_151.png


BIN
static/images/irrigate/qxdev/icon_152.png


BIN
static/images/irrigate/qxdev/icon_153.png


BIN
static/images/irrigate/qxdev/icon_154.png


BIN
static/images/irrigate/qxdev/icon_155.png


BIN
static/images/irrigate/qxdev/icon_156.png


+ 0 - 0
static/images/irrigate/qxdev/icon_157.png


Някои файлове не бяха показани, защото твърде много файлове са промени