Explorar o código

地理信息展示页面编写

zhangyun %!s(int64=4) %!d(string=hai) anos
pai
achega
0ba9249906
Modificáronse 62 ficheiros con 8342 adicións e 450 borrados
  1. 46 36
      index.html
  2. 1 0
      package.json
  3. 118 3
      src/assets/icon/demo_index.html
  4. 23 3
      src/assets/icon/iconfont.css
  5. 1 1
      src/assets/icon/iconfont.js
  6. 35 0
      src/assets/icon/iconfont.json
  7. BIN=BIN
      src/assets/icon/iconfont.ttf
  8. BIN=BIN
      src/assets/icon/iconfont.woff
  9. BIN=BIN
      src/assets/icon/iconfont.woff2
  10. 2 2
      src/components/home/MapView.vue
  11. 32 18
      src/components/index.vue
  12. 2 0
      src/main.js
  13. 1031 0
      src/pages/geoservers/geoservers.vue
  14. 315 259
      src/pages/plantGuard/disasterWarn/disasterWarn.vue
  15. 1124 0
      src/pages/plantGuard/geoinfo/map2.vue
  16. 15 86
      src/pages/plantGuard/geoinfo/mapdisplay.vue
  17. 60 0
      src/pages/plantGuard/geoinfo/mapindex.vue
  18. 8 5
      src/pages/plantGuard/irrigate/index.vue
  19. 8 5
      src/pages/plantGuard/irrigate/irrigate.vue
  20. 2 2
      src/pages/plantGuard/irrigate/popUp/setLocation.vue
  21. 6 3
      src/pages/plantGuard/page9.vue
  22. 5 3
      src/pages/plantGuard/plantProtection/base.vue
  23. 0 14
      src/pages/plantGuard/plantProtection/baseComponents/equipHistoryDate.vue
  24. 2 2
      src/pages/plantGuard/plantProtection/baseComponents/twentyFourHistoryDate.vue
  25. 2 2
      src/pages/plantGuard/sysManage/roleManage.vue
  26. 2 0
      src/pages/plantGuard/sysManage/topicManage.vue
  27. 3 0
      src/pages/plantGuard/sysManage/userManage.vue
  28. 290 0
      src/pages/plantGuard/waterPrice/icmanage.vue
  29. 475 0
      src/pages/plantGuard/waterPrice/operatingrecord.vue
  30. 351 0
      src/pages/plantGuard/waterPrice/peasantnorm.vue
  31. 360 0
      src/pages/plantGuard/waterPrice/watercalculate.vue
  32. 861 0
      src/pages/plantGuard/waterPrice/waterindex.vue
  33. 863 0
      src/pages/plantGuard/waterPrice/waterindexbase.vue
  34. 228 0
      src/pages/plantGuard/waterPrice/waterindexmodule.vue
  35. 443 0
      src/pages/plantGuard/waterPrice/waternorm.vue
  36. 368 0
      src/pages/plantGuard/waterPrice/watertransaction.vue
  37. 841 0
      src/pages/plantGuard/waterPrice/watserstatement.vue
  38. 333 0
      src/pages/plantGuard/waterPrice/wellsmanage.vue
  39. 81 1
      src/router/index.js
  40. 5 5
      src/util/http.js
  41. BIN=BIN
      static/images/gaobiao.ico
  42. BIN=BIN
      static/images/geoserver/1.png
  43. BIN=BIN
      static/images/geoserver/2.png
  44. BIN=BIN
      static/images/geoserver/henan.png
  45. BIN=BIN
      static/images/geoserver/huaxian.jpg
  46. BIN=BIN
      static/images/geoserver/ruzhou.jpg
  47. BIN=BIN
      static/images/geoserver/yanjin.jpg
  48. BIN=BIN
      static/images/geoserver/yunfei.png
  49. BIN=BIN
      static/images/jiantou.png
  50. BIN=BIN
      static/images/waterindex/1.png
  51. BIN=BIN
      static/images/waterindex/2.png
  52. BIN=BIN
      static/images/waterindex/3.png
  53. BIN=BIN
      static/images/waterindex/4.png
  54. BIN=BIN
      static/images/waterindex/5.png
  55. BIN=BIN
      static/images/waterindex/6.png
  56. BIN=BIN
      static/images/waterindex/7.png
  57. BIN=BIN
      static/images/waterindex/8.png
  58. BIN=BIN
      static/images/waterindex/9.png
  59. BIN=BIN
      static/images/waterindex/hours.png
  60. BIN=BIN
      static/images/waterindex/jianguo.png
  61. BIN=BIN
      static/images/waterindex/left.png
  62. BIN=BIN
      static/images/waterindex/right.png

+ 46 - 36
index.html

@@ -1,53 +1,63 @@
 <!DOCTYPE html>
 <html>
-  <head>
-    <meta charset="utf-8">
-    <meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no">
-    <title>高标准农田管理系统</title>
-    <!-- 可隐藏地址栏,仅针对IOS的Safari(注:IOS7.0版本以后,safari上已看不到效果) -->
-    <meta name="apple-mobile-web-app-capable" content="yes"/>
-    <!-- 仅针对IOS的Safari顶端状态条的样式(可选default/black/black-translucent ) -->
-    <meta name="apple-mobile-web-app-status-bar-style" content="black"/>
-    <!-- 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=1.4.15&key=3939967b919a8003377dd113fc445a3d&plugin=AMap.PolygonEditor,AMap.DistrictSearch,AMap.Geocoder,AMap.PolyEditor"></script>
-    <!-- <script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=dpxgaz5jyHbmg7cVAXjbxjVmOZp7TGcd"></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.0/main.js?v=1.0.11"></script>
-    <script src="https://openlayers.org/en/v3.20.1/build/ol.js"></script>
-    <script src="https://unpkg.com/gcoord/dist/gcoord.js"></script>
-
-    <style>
-    .figEldialog .el-dialog{
+
+<head>
+  <meta charset="utf-8">
+  <meta name="viewport"
+    content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no">
+  <title>高标准农田管理系统</title>
+  <link rel="SHORTCUT ICON" href="./static/images/gaobiao.ico">
+  <!-- 可隐藏地址栏,仅针对IOS的Safari(注:IOS7.0版本以后,safari上已看不到效果) -->
+  <meta name="apple-mobile-web-app-capable" content="yes" />
+  <!-- 仅针对IOS的Safari顶端状态条的样式(可选default/black/black-translucent ) -->
+  <meta name="apple-mobile-web-app-status-bar-style" content="black" />
+  <!-- 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=1.4.15&key=bd1582190896ab05afb30aa8161d14c2&plugin=AMap.PolygonEditor,AMap.DistrictSearch,AMap.Geocoder,AMap.PolyEditor"></script>
+  <!-- <script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=dpxgaz5jyHbmg7cVAXjbxjVmOZp7TGcd"></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.0/main.js?v=1.0.11"></script>
+  <script src="https://openlayers.org/en/v3.20.1/build/ol.js"></script>
+  <script src="https://unpkg.com/gcoord/dist/gcoord.js"></script>
+  <style>
+    .figEldialog .el-dialog {
       background: rgba(12, 20, 44, 0.8);
     }
-    .figEldialog .el-dialog .el-dialog__header{
+
+    .figEldialog .el-dialog .el-dialog__header {
       border-bottom: 1px solid #0c142c;
       background: #0c142c;
     }
-    .figEldialog .el-dialog .el-dialog__header .el-dialog__title{
+
+    .figEldialog .el-dialog .el-dialog__header .el-dialog__title {
       color: #fff;
-          font-size: 18px;
-          letter-spacing: 1px;
+      font-size: 18px;
+      letter-spacing: 1px;
     }
-    .figEldialog .el-dialog .el-dialog__header .el-dialog__title >span{
+
+    .figEldialog .el-dialog .el-dialog__header .el-dialog__title>span {
       background-color: #04d5e8 !important;
       width: 5px !important;
       margin-right: 9px !important;
     }
-    .figEldialog .el-dialog .el-dialog__body{
-      padding:0 20px 30px;
+
+    .figEldialog .el-dialog .el-dialog__body {
+      padding: 0 20px 30px;
     }
-    .figEldialog .el-dialog .el-dialog__body .el-form-item__label{
+
+    .figEldialog .el-dialog .el-dialog__body .el-form-item__label {
       color: #fff;
     }
-    </style>
-  </head>
-  <body>
-    <div id="app"></div>
-  </body>
+  </style>
+</head>
+
+<body>
+  <div id="app"></div>
+</body>
+
 </html>

+ 1 - 0
package.json

@@ -18,6 +18,7 @@
     "element-ui": "^2.14.1",
     "es6-promise": "^4.2.8",
     "highcharts": "^8.0.4",
+    "ol": "^6.9.0",
     "qrcodejs2": "^0.0.2",
     "swiper": "^3.4.2",
     "tinymce": "^4.8.2",

+ 118 - 3
src/assets/icon/demo_index.html

@@ -55,6 +55,36 @@
           <ul class="icon_lists dib-box">
           
             <li class="dib">
+              <span class="icon iconfont">&#xe639;</span>
+                <div class="name">水井</div>
+                <div class="code-name">&amp;#xe639;</div>
+              </li>
+          
+            <li class="dib">
+              <span class="icon iconfont">&#xe6b0;</span>
+                <div class="name">财务管理</div>
+                <div class="code-name">&amp;#xe6b0;</div>
+              </li>
+          
+            <li class="dib">
+              <span class="icon iconfont">&#xe6b6;</span>
+                <div class="name">发票</div>
+                <div class="code-name">&amp;#xe6b6;</div>
+              </li>
+          
+            <li class="dib">
+              <span class="icon iconfont">&#xe6b9;</span>
+                <div class="name">施工配合</div>
+                <div class="code-name">&amp;#xe6b9;</div>
+              </li>
+          
+            <li class="dib">
+              <span class="icon iconfont">&#xe6d1;</span>
+                <div class="name">收支存</div>
+                <div class="code-name">&amp;#xe6d1;</div>
+              </li>
+          
+            <li class="dib">
               <span class="icon iconfont">&#xe6c8;</span>
                 <div class="name">定点巡查</div>
                 <div class="code-name">&amp;#xe6c8;</div>
@@ -612,9 +642,9 @@
 <pre><code class="language-css"
 >@font-face {
   font-family: 'iconfont';
-  src: url('iconfont.woff2?t=1622876999330') format('woff2'),
-       url('iconfont.woff?t=1622876999330') format('woff'),
-       url('iconfont.ttf?t=1622876999330') format('truetype');
+  src: url('iconfont.woff2?t=1635907392024') format('woff2'),
+       url('iconfont.woff?t=1635907392024') format('woff'),
+       url('iconfont.ttf?t=1635907392024') format('truetype');
 }
 </code></pre>
           <h3 id="-iconfont-">第二步:定义使用 iconfont 的样式</h3>
@@ -641,6 +671,51 @@
         <ul class="icon_lists dib-box">
           
           <li class="dib">
+            <span class="icon iconfont icon-shuijing"></span>
+            <div class="name">
+              水井
+            </div>
+            <div class="code-name">.icon-shuijing
+            </div>
+          </li>
+          
+          <li class="dib">
+            <span class="icon iconfont icon-caiwuguanli"></span>
+            <div class="name">
+              财务管理
+            </div>
+            <div class="code-name">.icon-caiwuguanli
+            </div>
+          </li>
+          
+          <li class="dib">
+            <span class="icon iconfont icon-fapiao"></span>
+            <div class="name">
+              发票
+            </div>
+            <div class="code-name">.icon-fapiao
+            </div>
+          </li>
+          
+          <li class="dib">
+            <span class="icon iconfont icon-shigongpeihe"></span>
+            <div class="name">
+              施工配合
+            </div>
+            <div class="code-name">.icon-shigongpeihe
+            </div>
+          </li>
+          
+          <li class="dib">
+            <span class="icon iconfont icon-shouzhicun"></span>
+            <div class="name">
+              收支存
+            </div>
+            <div class="code-name">.icon-shouzhicun
+            </div>
+          </li>
+          
+          <li class="dib">
             <span class="icon iconfont icon-dingdianxuncha"></span>
             <div class="name">
               定点巡查
@@ -1479,6 +1554,46 @@
           
             <li class="dib">
                 <svg class="icon svg-icon" aria-hidden="true">
+                  <use xlink:href="#icon-shuijing"></use>
+                </svg>
+                <div class="name">水井</div>
+                <div class="code-name">#icon-shuijing</div>
+            </li>
+          
+            <li class="dib">
+                <svg class="icon svg-icon" aria-hidden="true">
+                  <use xlink:href="#icon-caiwuguanli"></use>
+                </svg>
+                <div class="name">财务管理</div>
+                <div class="code-name">#icon-caiwuguanli</div>
+            </li>
+          
+            <li class="dib">
+                <svg class="icon svg-icon" aria-hidden="true">
+                  <use xlink:href="#icon-fapiao"></use>
+                </svg>
+                <div class="name">发票</div>
+                <div class="code-name">#icon-fapiao</div>
+            </li>
+          
+            <li class="dib">
+                <svg class="icon svg-icon" aria-hidden="true">
+                  <use xlink:href="#icon-shigongpeihe"></use>
+                </svg>
+                <div class="name">施工配合</div>
+                <div class="code-name">#icon-shigongpeihe</div>
+            </li>
+          
+            <li class="dib">
+                <svg class="icon svg-icon" aria-hidden="true">
+                  <use xlink:href="#icon-shouzhicun"></use>
+                </svg>
+                <div class="name">收支存</div>
+                <div class="code-name">#icon-shouzhicun</div>
+            </li>
+          
+            <li class="dib">
+                <svg class="icon svg-icon" aria-hidden="true">
                   <use xlink:href="#icon-dingdianxuncha"></use>
                 </svg>
                 <div class="name">定点巡查</div>

+ 23 - 3
src/assets/icon/iconfont.css

@@ -1,8 +1,8 @@
 @font-face {
   font-family: "iconfont"; /* Project id 2453932 */
-  src: url('iconfont.woff2?t=1622876999330') format('woff2'),
-       url('iconfont.woff?t=1622876999330') format('woff'),
-       url('iconfont.ttf?t=1622876999330') format('truetype');
+  src: url('iconfont.woff2?t=1635907392024') format('woff2'),
+       url('iconfont.woff?t=1635907392024') format('woff'),
+       url('iconfont.ttf?t=1635907392024') format('truetype');
 }
 
 .iconfont {
@@ -13,6 +13,26 @@
   -moz-osx-font-smoothing: grayscale;
 }
 
+.icon-shuijing:before {
+  content: "\e639";
+}
+
+.icon-caiwuguanli:before {
+  content: "\e6b0";
+}
+
+.icon-fapiao:before {
+  content: "\e6b6";
+}
+
+.icon-shigongpeihe:before {
+  content: "\e6b9";
+}
+
+.icon-shouzhicun:before {
+  content: "\e6d1";
+}
+
 .icon-dingdianxuncha:before {
   content: "\e6c8";
 }

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 1 - 1
src/assets/icon/iconfont.js


+ 35 - 0
src/assets/icon/iconfont.json

@@ -6,6 +6,41 @@
   "description": "",
   "glyphs": [
     {
+      "icon_id": "2117105",
+      "name": "水井",
+      "font_class": "shuijing",
+      "unicode": "e639",
+      "unicode_decimal": 58937
+    },
+    {
+      "icon_id": "18438522",
+      "name": "财务管理",
+      "font_class": "caiwuguanli",
+      "unicode": "e6b0",
+      "unicode_decimal": 59056
+    },
+    {
+      "icon_id": "18454498",
+      "name": "发票",
+      "font_class": "fapiao",
+      "unicode": "e6b6",
+      "unicode_decimal": 59062
+    },
+    {
+      "icon_id": "18468106",
+      "name": "施工配合",
+      "font_class": "shigongpeihe",
+      "unicode": "e6b9",
+      "unicode_decimal": 59065
+    },
+    {
+      "icon_id": "18716116",
+      "name": "收支存",
+      "font_class": "shouzhicun",
+      "unicode": "e6d1",
+      "unicode_decimal": 59089
+    },
+    {
       "icon_id": "18621423",
       "name": "定点巡查",
       "font_class": "dingdianxuncha",

BIN=BIN
src/assets/icon/iconfont.ttf


BIN=BIN
src/assets/icon/iconfont.woff


BIN=BIN
src/assets/icon/iconfont.woff2


+ 2 - 2
src/components/home/MapView.vue

@@ -454,13 +454,13 @@ export default {
           this.xyzTileLayer = new AMap.TileLayer({
             // 图块取图地址
             getTileUrl:
-              "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]",
+              "http://t{0,1,2,3,4,5,6,7}.tianditu.gov.cn/DataServer?T=img_w&tk=6e5cb1bfc017afcac7a21836cf81a884&x=[x]&y=[y]&l=[z]",
             zIndex: 100
           });
           this.xyzTileLayer2 = new AMap.TileLayer({
             // 图块取图地址
             getTileUrl:
-              "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]",
+              "http://t{0,1,2,3,4,5,6,7}.tianditu.gov.cn/DataServer?T=cta_w&tk=6e5cb1bfc017afcac7a21836cf81a884&x=[x]&y=[y]&l=[z]",
             zIndex: 101
           });
           o.add(this.xyzTileLayer);

+ 32 - 18
src/components/index.vue

@@ -210,9 +210,9 @@ export default {
         12: "icon-rizhi",
         13: "icon-yujing",
         14: "icon-1",
-        15: "icon-1",
-        16: "icon-yen-2",
-        17: "icon-inbox-1",
+        15: "icon-dingdianxuncha",
+        16: "icon-shuizhi",
+        17: "icon-shiming",
         18: "icon-inbox-1",
         19: "icon-inbox-1",
         20: "icon-yonghu2",
@@ -221,6 +221,11 @@ export default {
         23: "icon-shiming",
         24: "icon-BIM",
         25: "icon-BIM",
+        26: "icon-shuijing",
+        27: "icon-fapiao",
+        28: "icon-caiwuguanli",
+        29: "icon-shouzhicun",
+        30: "icon-shigongpeihe",
       },
       //动态标签
       // menuTabs:[{ "path": "/plantGuard/base", "name": "设备列表", "par": "农林植保", "order": 0 } ],
@@ -564,22 +569,24 @@ export default {
           //   }
           // }
           var items = menuLists;
-          var paths = this.$route.path  //当前路由地址
-          var Findex = paths.indexOf("/",1) // 当前地址第一个 / 的位置
-          var Sindex = paths.indexOf("/",Findex)// 当前地址第二个 / 的位置
-          var newpath = "" //获取到当前路由对用的页面
-          if(Sindex==-1){//判断是否存在第二个 /
-            newpath = paths.slice(Findex+1,Sindex) // 截取路由中当前页面的地址
-          }else{
-            newpath = paths.slice(Findex+1)// 截取路由中当前页面的地址
+          var paths = this.$route.path; //当前路由地址
+          var Findex = paths.indexOf("/", 1); // 当前地址第一个 / 的位置
+          var Sindex = paths.indexOf("/", Findex); // 当前地址第二个 / 的位置
+          var newpath = ""; //获取到当前路由对用的页面
+          if (Sindex == -1) {
+            //判断是否存在第二个 /
+            newpath = paths.slice(Findex + 1, Sindex); // 截取路由中当前页面的地址
+          } else {
+            newpath = paths.slice(Findex + 1); // 截取路由中当前页面的地址
           }
-          console.log(newpath)
-          for (var i = 0; i < items.length; i++) { // 循环遍历 查看对应的页面地址
+          console.log(newpath);
+          for (var i = 0; i < items.length; i++) {
+            // 循环遍历 查看对应的页面地址
             if (items[i].children) {
               for (var j = 0; j < items[i].children.length; j++) {
-                if (items[i].children[j].path==newpath) {
-                  console.log(items[i].name)
-                  this.currTopMenuId = items[i].name
+                if (items[i].children[j].path == newpath) {
+                  console.log(items[i].name);
+                  this.currTopMenuId = items[i].name;
                 }
               }
             }
@@ -815,13 +822,14 @@ export default {
   padding: 0 !important;
   .tabsNav {
     position: fixed;
-    background: #fff;
+    background: #eef0f4;
     z-index: 3000;
     width: 100%;
   }
   .content {
     padding-top: 56px;
     height: calc(100vh - 136px);
+    background-color: #eef0f4;
     .innerMargin {
       padding: 0px 20px 20px;
     }
@@ -830,10 +838,16 @@ export default {
 /deep/.el-tabs__nav .el-tabs__item:nth-child(1) span {
   display: none;
 }
-
+/deep/.el-tabs__nav-scroll{
+  background-color: #fff;
+}
+/deep/.el-tabs__item{
+  // background-color: #fff;
+}
 /deep/.el-tabs__item.is-active,
 /deep/.el-tabs__item:hover {
   color: #0295ff;
+  
 }
 /deep/.el-radio__input.is-checked .el-radio__inner {
   border-color: #0195ff;

+ 2 - 0
src/main.js

@@ -202,6 +202,8 @@ router.beforeEach((to, from, next) => {
     }
   } else if (to.name == 'PlantGuard') {
     next()
+  } else if (to.path == '/RemoteSensing') {
+    next()
   } else {
     // let type = to.meta.login_require; //是否需要登录,为了解决扫码在手机上看
     axios({

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 1031 - 0
src/pages/geoservers/geoservers.vue


+ 315 - 259
src/pages/plantGuard/disasterWarn/disasterWarn.vue

@@ -19,22 +19,48 @@
         <div class="scroll">
           <el-scrollbar>
             <div class="equipList">
-                <div class="item"
-                v-for="(item,index) in equipData" :key="index" @click="lookEquip(item)">
-                    <div class="">
-                        <img :src="require('../../../../static/images/disasterWarn/navicon.png')" alt="">
-                        <span :ref="`equipName${index}`" v-if="item.key==0">{{item.name}}</span>
-                        <el-input class="changeNameVal" v-else v-model="editNameval" placeholder="请输入内容"></el-input>
-                    </div>
-                    <div>
-                      <i @click.stop="editName('edit',item,index)" v-show="item.key==0" class="el-icon-edit"></i>
-                      <i @click.stop="editName('cancel',item,index)" v-show="item.key==1" class="el-icon-close"></i>
-                      <i @click.stop="editName('save',item,index)" v-show="item.key==1" class="el-icon-check"></i>
-                    </div>
+              <div
+                class="item"
+                v-for="(item, index) in equipData"
+                :key="index"
+                @click="lookEquip(item)"
+              >
+                <div class="">
+                  <img
+                    :src="
+                      require('../../../../static/images/disasterWarn/navicon.png')
+                    "
+                    alt=""
+                  />
+                  <span :ref="`equipName${index}`" v-if="item.key == 0">{{
+                    item.name
+                  }}</span>
+                  <el-input
+                    class="changeNameVal"
+                    v-else
+                    v-model="editNameval"
+                    placeholder="请输入内容"
+                  ></el-input>
                 </div>
-                <div class="item" v-if="!equipData.length">
-                   暂无数据 
+                <div>
+                  <i
+                    @click.stop="editName('edit', item, index)"
+                    v-show="item.key == 0"
+                    class="el-icon-edit"
+                  ></i>
+                  <i
+                    @click.stop="editName('cancel', item, index)"
+                    v-show="item.key == 1"
+                    class="el-icon-close"
+                  ></i>
+                  <i
+                    @click.stop="editName('save', item, index)"
+                    v-show="item.key == 1"
+                    class="el-icon-check"
+                  ></i>
                 </div>
+              </div>
+              <div class="item" v-if="!equipData.length">暂无数据</div>
             </div>
           </el-scrollbar>
         </div>
@@ -42,7 +68,13 @@
     </div>
     <!-- 设备提示框 -->
     <windowPopUp ref="windowPopUp"></windowPopUp>
-    <sidebarWarn :qxzName="equips.qxzName" :jkName="equips.jkName" :projectName="equips.projectName" @setQxzEleName='setQxzEleName' ref="sidebarWarnRef"></sidebarWarn>
+    <sidebarWarn
+      :qxzName="equips.qxzName"
+      :jkName="equips.jkName"
+      :projectName="equips.projectName"
+      @setQxzEleName="setQxzEleName"
+      ref="sidebarWarnRef"
+    ></sidebarWarn>
     <div class="popupInner">
       <!-- 设备预警 -->
       <div v-show="equipWarnBox" class="equipWarnBox suspensionBox">
@@ -55,10 +87,12 @@
         <div class="inner">
           <div class="wranTitle">
             <div
-              v-for="(item,index) in wranTitle"
+              v-for="(item, index) in wranTitle"
               v-bind:key="item"
-              :class="[index==1?'wranmsg':'']"
-            >{{item}}</div>
+              :class="[index == 1 ? 'wranmsg' : '']"
+            >
+              {{ item }}
+            </div>
           </div>
           <div class="equipList">
             <div
@@ -68,10 +102,14 @@
               @mouseenter="Stop()"
               @mouseleave="Up()"
             >
-              <div class="wranInfo" v-for="item in scrollWranList" v-bind:key="item.id">
-                <div>{{item.device_id}}</div>
-                <div class="wranmsg">{{item.warning_info}}</div>
-                <div>{{item.warning_time*1000 | formatTime}}</div>
+              <div
+                class="wranInfo"
+                v-for="item in scrollWranList"
+                v-bind:key="item.id"
+              >
+                <div>{{ item.device_id }}</div>
+                <div class="wranmsg">{{ item.warning_info }}</div>
+                <div>{{ (item.warning_time * 1000) | formatTime }}</div>
               </div>
             </div>
           </div>
@@ -90,27 +128,41 @@
       @close="closeQxzDialogVisible"
     >
       <template slot="title">
-          <div class="avue-crud__dialog__header">
-              <span class="el-dialog__title">
-              <span style="display:inline-block;background-color: #3478f5;width:3px;height:20px;margin-right:5px; float: left;margin-top:2px"></span>
-                要素名称修改
+        <div class="avue-crud__dialog__header">
+          <span class="el-dialog__title">
+            <span
+              style="
+                display: inline-block;
+                background-color: #3478f5;
+                width: 3px;
+                height: 20px;
+                margin-right: 5px;
+                float: left;
+                margin-top: 2px;
+              "
+            ></span>
+            要素名称修改
+          </span>
+        </div>
+      </template>
+      <div class="equipEleData">
+        <el-scrollbar>
+          <div class="equipEleList">
+            <div v-for="(item, index) in changeQxzEleName" :key="index">
+              <span>{{ item.e }}</span>
+              <span>{{ item.defaultName }}</span>
+              <span class="inp">
+                <el-input
+                  v-model="item.editname"
+                  @blur="changeQxzName(item, index)"
+                  placeholder="请输入内容"
+                ></el-input>
               </span>
-          </div>
-        </template>
-        <div class="equipEleData">
-          <el-scrollbar >
-            <div class="equipEleList">
-              <div v-for="(item,index) in changeQxzEleName" :key="index">
-                <span>{{item.e}}</span>
-                <span>{{item.defaultName}}</span>
-                <span class="inp">
-                  <el-input v-model="item.editname" @blur="changeQxzName(item,index)" placeholder="请输入内容"></el-input>
-                </span>
-              </div> 
             </div>
-          </el-scrollbar>
-        </div>
-        <!-- <div class="equipEleSaveBtn">
+          </div>
+        </el-scrollbar>
+      </div>
+      <!-- <div class="equipEleSaveBtn">
           <el-button type="grayInfo" size="small" >重置</el-button>
           <el-button type="blueInfo" size="small" >保存</el-button>
         </div> -->
@@ -121,58 +173,58 @@
 <script>
 //这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等)
 //例如:import 《组件名称》 from '《组件路径》';
-import windowPopUp from "./windowPopUp"
-import sidebarWarn from "./sidebarWarn"
+import windowPopUp from "./windowPopUp";
+import sidebarWarn from "./sidebarWarn";
 
 // 要素配置表
-import eleList from "../../../../static/js/irrigate/eleList.json"
+import eleList from "../../../../static/js/irrigate/eleList.json";
 export default {
   //import引入的组件需要注入到对象中才能使用
   components: {
     windowPopUp,
-    sidebarWarn
+    sidebarWarn,
   },
   data() {
     //这里存放数据
     return {
-      user_id:'',
-      equips:{
-        qxzId:'',
-        qxzDid:'',
-        qxzName:'',
-        jkId:'',
-        jkDid:'',
-        jkName:'',
-        projectName:'',
+      user_id: "",
+      equips: {
+        qxzId: "",
+        qxzDid: "",
+        qxzName: "",
+        jkId: "",
+        jkDid: "",
+        jkName: "",
+        projectName: "",
       },
       map: null,
       center: [116.3683244, 39.915085],
       zoom: 4.5,
       tileLayer1: null,
       tileLayer2: null,
-      equipWarnBox:true,//预警信息弹框
+      equipWarnBox: true, //预警信息弹框
       // 设备列表
       equipData: [],
       equipAllList: [],
-      editNameval:'',
+      editNameval: "",
       // 设备预警滚动
       wranTitle: ["设备ID", "预警信息", "时间"],
       scrollWranList: [],
       activeIndex: 0,
-  
+
       searchVal: "",
       marker: null,
       markerList: [],
       infoWindow: null,
-      qxzDialogVisible:false,
-      changeQxzEleName:[],
+      qxzDialogVisible: false,
+      changeQxzEleName: [],
     };
   },
   //监听属性 类似于data概念
   computed: {
     top() {
       return -this.activeIndex * 22 + "px";
-    }
+    },
   },
   //监控data中的数据变化
   watch: {},
@@ -184,7 +236,12 @@ export default {
       this.map = new AMap.Map("container", {
         resizeEnable: true,
         center: that.center,
-        zoom: that.zoom
+        zoom: that.zoom,
+        layers: [
+          new AMap.TileLayer.Satellite({
+            zIndex: 9,
+          }),
+        ], //加载卫星图
       });
       AMap.plugin(
         [
@@ -192,7 +249,7 @@ export default {
           "AMap.Scale",
           "AMap.MouseTool",
           "AMap.Geocoder",
-          "AMap.PolyEditor"
+          "AMap.PolyEditor",
         ],
         () => {
           //   this.map.addControl(new AMap.ToolBar());
@@ -200,20 +257,22 @@ export default {
 
           this.geocoder = new AMap.Geocoder({
             city: "全国",
-            radius: 1000
+            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
+          "http://t{0,1,2,3,4,5,6,7}.tianditu.gov.cn/DataServer?T=img_w&tk=6e5cb1bfc017afcac7a21836cf81a884&x=[x]&y=[y]&l=[z]",
+        zIndex: 10,
+        detectRetina: true,
       }); //卫星图层
       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
+          "http://t{0,1,2,3,4,5,6,7}.tianditu.gov.cn/DataServer?T=cta_w&tk=6e5cb1bfc017afcac7a21836cf81a884&x=[x]&y=[y]&l=[z]",
+        zIndex: 10,
+        detectRetina: true,
       });
       this.map.add(this.tileLayer1);
       this.map.add(this.tileLayer2);
@@ -235,73 +294,73 @@ export default {
         method: "post",
         url: "/api/api_gateway?method=weather.weather.warning_page",
         data: this.qs.stringify({
-          user_id:this.user_id
-        })
-      }).then(res => {
+          user_id: this.user_id,
+        }),
+      }).then((res) => {
         var dat = res.data.data.ids;
         this.equipAllList = [];
-        for(var i = 0;i<dat.length;i++){
-          if(i == 0){
+        for (var i = 0; i < dat.length; i++) {
+          if (i == 0) {
             this.equipAllList.push({
-              name:dat[i].name,
-              lnglat:dat[i].lnglat,
-              equips:[dat[i]]
-            })
-          }else{
-            for(var z = 0;z<this.equipAllList.length;z++){
-              if(dat[i].name == this.equipAllList[z].name){
-                this.equipAllList[z].equips.push(dat[i])
+              name: dat[i].name,
+              lnglat: dat[i].lnglat,
+              equips: [dat[i]],
+            });
+          } else {
+            for (var z = 0; z < this.equipAllList.length; z++) {
+              if (dat[i].name == this.equipAllList[z].name) {
+                this.equipAllList[z].equips.push(dat[i]);
                 break;
               }
-              if(z == this.equipAllList.length-1){
+              if (z == this.equipAllList.length - 1) {
                 this.equipAllList.push({
-                  name:dat[i].name,
-                  lnglat:dat[i].lnglat,
-                  equips:[dat[i]]
-                })
+                  name: dat[i].name,
+                  lnglat: dat[i].lnglat,
+                  equips: [dat[i]],
+                });
                 break;
               }
             }
           }
-          if(i == dat.length-1){
+          if (i == dat.length - 1) {
             console.log(this.equipAllList);
-            this.equipData = this.equipAllList.filter((item)=>{
-              item.key=0;//用于修改设备名input是否展示
-              return item.equips.length==2
-            })
+            this.equipData = this.equipAllList.filter((item) => {
+              item.key = 0; //用于修改设备名input是否展示
+              return item.equips.length == 2;
+            });
             console.log(this.equipData);
             this.renderEle();
           }
         }
-
       });
     },
     // 渲染点标注
     renderEle() {
       this.map.remove(this.markerList);
       this.markerList = [];
-      this.equipData.forEach(item => {
-        var icon = "../../../../static/images/disasterWarn/disasterWarnIcon.svg";
+      this.equipData.forEach((item) => {
+        var icon =
+          "../../../../static/images/disasterWarn/disasterWarnIcon.svg";
         var itemlnglat = item["lnglat"];
         this.marker = new AMap.Marker({
           position: new AMap.LngLat(itemlnglat[0], itemlnglat[1]), // 经纬度对象,也可以是经纬度构成的一维数组[116.39, 39.9]
-          icon: new AMap.Icon({            
-              image: icon,
-              size: new AMap.Size(50, 50),  //图标大小
-              imageSize: new AMap.Size(50, 50)
+          icon: new AMap.Icon({
+            image: icon,
+            size: new AMap.Size(50, 50), //图标大小
+            imageSize: new AMap.Size(50, 50),
           }),
           offset: new AMap.Pixel(-13, -30),
-          title: item["name"]
+          title: item["name"],
         });
         // 设置点标记的动画效果,此处为弹跳效果
         // this.marker.setAnimation('AMAP_ANIMATION_BOUNCE');
         this.markerList.push(this.marker);
         //信息窗体
         this.marker.content = item["name"];
-        AMap.event.addListener(this.marker, "click", event => {
+        AMap.event.addListener(this.marker, "click", (event) => {
           this.markerClick(event, item);
         });
-        AMap.event.addListener(this.map, "click", event => {
+        AMap.event.addListener(this.map, "click", (event) => {
           if (this.infoWindow) {
             this.infoWindow.close();
           }
@@ -313,76 +372,76 @@ export default {
       });
       this.infoWindow = new AMap.InfoWindow({
         isCustom: true, //使用自定义窗体
-        offset: new AMap.Pixel(-105, -20)
+        offset: new AMap.Pixel(-105, -20),
         // anchor:'bottom-righ'
       });
     },
     markerClick(event, item) {
-      if(item.equips[0].device_type_id == 11){
-        this.equips.qxzId = item.equips[0].device_id
-        this.equips.qxzName = item.equips[0].device_name
-        this.equips.qxzDid = item.equips[0].d_id
-      }else{
-        this.equips.qxzId = item.equips[1].device_id
-        this.equips.qxzName = item.equips[1].device_name
-        this.equips.qxzDid = item.equips[1].d_id
+      if (item.equips[0].device_type_id == 11) {
+        this.equips.qxzId = item.equips[0].device_id;
+        this.equips.qxzName = item.equips[0].device_name;
+        this.equips.qxzDid = item.equips[0].d_id;
+      } else {
+        this.equips.qxzId = item.equips[1].device_id;
+        this.equips.qxzName = item.equips[1].device_name;
+        this.equips.qxzDid = item.equips[1].d_id;
       }
-      if(item.equips[0].device_type_id == 12){
-        this.equips.jkId = item.equips[0].device_id
-        this.equips.jkName = item.equips[0].device_name
-        this.equips.jkDid = item.equips[0].d_id
-      }else{
-        this.equips.jkId = item.equips[1].device_id
-        this.equips.jkName = item.equips[1].device_name
-        this.equips.jkDid = item.equips[1].d_id
+      if (item.equips[0].device_type_id == 12) {
+        this.equips.jkId = item.equips[0].device_id;
+        this.equips.jkName = item.equips[0].device_name;
+        this.equips.jkDid = item.equips[0].d_id;
+      } else {
+        this.equips.jkId = item.equips[1].device_id;
+        this.equips.jkName = item.equips[1].device_name;
+        this.equips.jkDid = item.equips[1].d_id;
       }
-      this.equips.projectName=item.name
-      this.$store.commit('setData',{
-        name:'jk_wran_id',
-        val:this.equips.jkId
-      })
-      this.$store.commit('setData',{
-        name:'jk_wran_did',
-        val:this.equips.jkDid
-      })
-      this.$store.commit('setData',{
-        name:'jk_wran_name',
-        val:this.equips.projectName
-      })
-      this.$store.commit('setData',{
-        name:'qxz_wran_id',
-        val:this.equips.qxzId
-      })
-      this.$store.commit('setData',{
-        name:'qxz_wran_did',
-        val:this.equips.qxzDid
-      })
+      this.equips.projectName = item.name;
+      this.$store.commit("setData", {
+        name: "jk_wran_id",
+        val: this.equips.jkId,
+      });
+      this.$store.commit("setData", {
+        name: "jk_wran_did",
+        val: this.equips.jkDid,
+      });
+      this.$store.commit("setData", {
+        name: "jk_wran_name",
+        val: this.equips.projectName,
+      });
+      this.$store.commit("setData", {
+        name: "qxz_wran_id",
+        val: this.equips.qxzId,
+      });
+      this.$store.commit("setData", {
+        name: "qxz_wran_did",
+        val: this.equips.qxzDid,
+      });
       this.equipWarnBox = false;
       this.$refs.sidebarWarnRef.toggleMenuShow();
       this.$refs.sidebarWarnRef.getQxzEle();
       this.$refs.sidebarWarnRef.getMonitor();
       this.infoWindow = new AMap.InfoWindow({
         isCustom: true, //使用自定义窗体
-        offset: new AMap.Pixel(16, -45)
+        offset: new AMap.Pixel(16, -45),
       });
       this.$refs.windowPopUp.initialize({
-        currEquip: {device_type_id:1234},
+        currEquip: { device_type_id: 1234 },
         visible: true,
-        infoWindow: this.infoWindow
+        infoWindow: this.infoWindow,
       });
       this.infoWindow.setContent(this.$refs.windowPopUp.$el);
-      if(event){
+      if (event) {
         this.infoWindow.open(this.map, event.target.getPosition());
-      }else{
+      } else {
         this.infoWindow.open(this.map, item.lnglat);
       }
     },
-    lookEquip(item){
-      this.map.setCenter(item.lnglat)
-      this.map.setZoom(17)
-      this.markerClick('', item);
+    lookEquip(item) {
+      this.map.setCenter(item.lnglat);
+      this.map.setZoom(10);
+      this.markerClick("", item);
     },
-    getWranInfo(){
+    getWranInfo() {
       this.$axios({
         method: "post",
         url: "/api/api_gateway?method=weather.weather.warning_info", //forecast.forecast_system.equip_photo
@@ -390,17 +449,17 @@ export default {
           page_size: 10,
         }),
       })
-      .then((res) => {
-        if(res.data.message == ""){
-          this.scrollWranList = res.data.data.data
-        }
-      })
-      .catch((err) => {
-        console.log(err);
-      });
+        .then((res) => {
+          if (res.data.message == "") {
+            this.scrollWranList = res.data.data.data;
+          }
+        })
+        .catch((err) => {
+          console.log(err);
+        });
     },
     ScrollUp() {
-      this.intnum = setInterval(_ => {
+      this.intnum = setInterval((_) => {
         this.$refs.scrollContent.style.transition = "top 0.5s";
         if (this.activeIndex < this.scrollWranList.length - 5) {
           this.activeIndex += 1;
@@ -416,91 +475,91 @@ export default {
     Up() {
       this.ScrollUp();
     },
-    equipWarnBoxShow(){
-      this.equipWarnBox=true;
+    equipWarnBoxShow() {
+      this.equipWarnBox = true;
     },
-    editName(ctrl,item,index2){
-      if(ctrl == 'edit'){
-        this.equipData.forEach((item,index)=>{
-          this.$set(this.equipData[index],'key',0);
-        })
-        this.$set(this.equipData[index2],'key',1);
+    editName(ctrl, item, index2) {
+      if (ctrl == "edit") {
+        this.equipData.forEach((item, index) => {
+          this.$set(this.equipData[index], "key", 0);
+        });
+        this.$set(this.equipData[index2], "key", 1);
         this.editNameval = this.equipData[index2].name;
       }
-      if(ctrl == 'cancel'){
-        
-        this.equipData.forEach((item)=>{
-          item.key = 0
-        })
+      if (ctrl == "cancel") {
+        this.equipData.forEach((item) => {
+          item.key = 0;
+        });
       }
-      if(ctrl == 'save'){
-        var id = item.equips[0].device_id+','+item.equips[1].device_id
+      if (ctrl == "save") {
+        var id = item.equips[0].device_id + "," + item.equips[1].device_id;
         this.$axios({
           method: "post",
           url: "/api/api_gateway?method=weather.weather.warning_change",
           data: this.qs.stringify({
             device_id: id,
             name: this.editNameval,
-          })
-        }).then(res => {
+          }),
+        }).then((res) => {
           if (res.data.message == "") {
-                this.$message({
-                  type: "success",
-                  message: "修改成功",
-                });
-                this.equipData.forEach((item,index)=>{
-                  this.$set(this.equipData[index],'key',0);
-                })
-                this.equipData[index2].name = this.editNameval
-                this.$forceUpdate();
-              }else{
-                this.$message({
-                  type: "error",
-                  message: res.data.message,
-                });
-              }
-        })
+            this.$message({
+              type: "success",
+              message: "修改成功",
+            });
+            this.equipData.forEach((item, index) => {
+              this.$set(this.equipData[index], "key", 0);
+            });
+            this.equipData[index2].name = this.editNameval;
+            this.$forceUpdate();
+          } else {
+            this.$message({
+              type: "error",
+              message: res.data.message,
+            });
+          }
+        });
       }
       this.$forceUpdate();
-      
     },
-    setQxzEleName(data){
-      this.qxzDialogVisible = true
-      this.changeQxzEleName = data;     
+    setQxzEleName(data) {
+      this.qxzDialogVisible = true;
+      this.changeQxzEleName = data;
     },
-    changeQxzName(item,index){
-      this.$confirm('是否更改要素名称?', '提示', {
-        confirmButtonText: '确定',
-        cancelButtonText: '取消',
-        type: 'warning'
-      }).then(() => {
-        this.$axios({
-        method: "post",
-        url: "/api/api_gateway?method=weather.weather.qxz_config_change",
-        data: this.qs.stringify({
-          device_id:this.$store.state.qxz_wran_id,
-          ekey:item.e,
-          conf:item.editname+'#'+item.unit
-        })
-      }).then(res => {
-        if(res.data.message == ""){
-          this.$message({
-            message: '修改成功',
-            type: 'success'
-          });
-        }
+    changeQxzName(item, index) {
+      this.$confirm("是否更改要素名称?", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
       })
-      }).catch(() => {
-          this.changeQxzEleName[index].editname = this.changeQxzEleName[index].name
-      });
+        .then(() => {
+          this.$axios({
+            method: "post",
+            url: "/api/api_gateway?method=weather.weather.qxz_config_change",
+            data: this.qs.stringify({
+              device_id: this.$store.state.qxz_wran_id,
+              ekey: item.e,
+              conf: item.editname + "#" + item.unit,
+            }),
+          }).then((res) => {
+            if (res.data.message == "") {
+              this.$message({
+                message: "修改成功",
+                type: "success",
+              });
+            }
+          });
+        })
+        .catch(() => {
+          this.changeQxzEleName[index].editname =
+            this.changeQxzEleName[index].name;
+        });
     },
-    closeQxzDialogVisible(){
+    closeQxzDialogVisible() {
       this.$refs.sidebarWarnRef.getQxzEle();
-    }
+    },
   },
   //生命周期 - 创建完成(可以访问当前this实例)
-  created() {
-  },
+  created() {},
   //生命周期 - 挂载完成(可以访问DOM元素)
   mounted() {
     this.user_id = this.$store.state.disasterWarnUserId;
@@ -517,7 +576,7 @@ export default {
   destroyed() {
     this.Stop();
   }, //生命周期 - 销毁完成
-  activated() {} //如果页面有keep-alive缓存功能,这个函数会触发
+  activated() {}, //如果页面有keep-alive缓存功能,这个函数会触发
 };
 </script>
 <style scoped lang='less'>
@@ -576,34 +635,34 @@ export default {
           cursor: pointer;
           display: flex;
           justify-content: space-between;
-          >div{
-                display: flex;
+          > div {
+            display: flex;
             justify-content: left;
             align-items: center;
           }
-          >span:nth-child(1){
+          > span:nth-child(1) {
             width: 72%;
             overflow: hidden;
             white-space: nowrap;
             text-overflow: ellipsis;
           }
-          >div{
-            i{
+          > div {
+            i {
               font-size: 20px;
             }
-            i:nth-child(1){
+            i:nth-child(1) {
               font-size: 18px;
               display: none;
             }
-            i:nth-child(2){
+            i:nth-child(2) {
               color: red;
             }
-            i:nth-child(3){
+            i:nth-child(3) {
               color: green;
             }
           }
-          >span:nth-child(2){
-              font-size: 14px;
+          > span:nth-child(2) {
+            font-size: 14px;
           }
           img {
             margin-right: 2px;
@@ -611,8 +670,8 @@ export default {
           &:hover {
             background: #0c142c;
           }
-          .changeNameVal{
-            /deep/.el-input__inner{
+          .changeNameVal {
+            /deep/.el-input__inner {
               background: none;
               outline: none;
               border: 1px solid #6b6b6b;
@@ -622,9 +681,9 @@ export default {
             }
           }
         }
-        .item:hover{
-          >div{
-            i:nth-child(1){
+        .item:hover {
+          > div {
+            i:nth-child(1) {
               display: block;
             }
           }
@@ -697,14 +756,14 @@ export default {
       justify-content: space-around;
       line-height: 33px;
       color: #fff;
-      >div:nth-child(1){
+      > div:nth-child(1) {
         width: 100px;
-        text-indent:14px;
+        text-indent: 14px;
       }
       .wranmsg {
         width: 170px;
       }
-      >div:nth-child(3){
+      > div:nth-child(3) {
         width: 120px;
       }
     }
@@ -742,50 +801,49 @@ export default {
   }
 }
 
-
 // 设备定位弹框
-/deep/.setlnglatBox{
+/deep/.setlnglatBox {
   box-shadow: 0px 0px 4px 0px #0161ff;
   background: rgba(12, 20, 44, 0.8);
   border-radius: 8px;
 }
-/deep/.setlnglatBox .el-dialog__header{
+/deep/.setlnglatBox .el-dialog__header {
   background: #0c142c;
   padding: 10px 20px;
   border-bottom: 1px solid #0c142c;
 }
-/deep/.setlnglatBox .el-dialog__header .el-dialog__title{
+/deep/.setlnglatBox .el-dialog__header .el-dialog__title {
   color: #fff;
   font-size: 14px;
 }
-/deep/.setlnglatBox .el-dialog__headerbtn .el-dialog__close{
+/deep/.setlnglatBox .el-dialog__headerbtn .el-dialog__close {
   color: #fff;
 }
 // 设置要素名称
-.equipEleData{
-  .el-scrollbar{
+.equipEleData {
+  .el-scrollbar {
     height: 230px;
-    /deep/.el-scrollbar__wrap{
+    /deep/.el-scrollbar__wrap {
       overflow-x: hidden;
     }
-    /deep/.el-scrollbar__thumb{
+    /deep/.el-scrollbar__thumb {
       background: #0165b8;
     }
   }
-  .equipEleList{
+  .equipEleList {
     display: flex;
     justify-content: left;
     flex-wrap: wrap;
-    >div{
+    > div {
       display: flex;
       align-items: center;
       margin: 10px 0;
       width: 100%;
-      span:nth-child(1){
+      span:nth-child(1) {
         color: #04d5e8;
         width: 33px;
       }
-      span:nth-child(2){
+      span:nth-child(2) {
         color: #04d5e8;
         width: 135px;
         white-space: nowrap;
@@ -793,9 +851,9 @@ export default {
         overflow: hidden;
         margin-right: 10px;
       }
-      .inp{
+      .inp {
         width: 200px;
-        /deep/input{
+        /deep/input {
           background: none;
           outline: none;
           border: 1px solid #0c142c;
@@ -805,12 +863,10 @@ export default {
           background: #0c142c;
         }
       }
-      
     }
   }
 }
-.equipEleSaveBtn{
+.equipEleSaveBtn {
   text-align: right;
 }
-
 </style>

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 1124 - 0
src/pages/plantGuard/geoinfo/map2.vue


+ 15 - 86
src/pages/plantGuard/geoinfo/mapdisplay.vue

@@ -3,10 +3,6 @@
   <div class="mapbox">
     <div id="container"></div>
     <div id="map" v-show="canvasdisplay" v-loading="loading">
-      <!-- <div class="ol-toggle-options ol-unselectable">
-            <a title="Toggle options toolbar" onClick="toggleControlPanel()"
-                href="#toggle">...</a>
-        </div> -->
       <div class="mapdel" @click="canvasdisplay = false">×</div>
     </div>
     <div id="wrapper">
@@ -210,7 +206,8 @@ export default {
         zIndex: 50,
       });
       polygon.on("click", (e) => {
-        this.dialogVisible = true;
+        this.canvasdisplay = true;
+        console.log(this.canvasdisplay)
         console.log(e);
       });
       this.polygon = polygon;
@@ -218,76 +215,6 @@ export default {
       // 缩放地图到合适的视野级别
       this.map.setFitView([polygon]);
     },
-    //   var polyEditor = new AMap.PolyEditor(this.map, polygon);
-    //   this.polyEditor = polyEditor;
-    //   polyEditor.on("addnode", function (event) {
-    //     console.log("触发事件:addnode");
-    //   });
-
-    //   polyEditor.on("adjust", function (event) {
-    //     console.log("触发事件:adjust");
-    //   });
-
-    //   polyEditor.on("removenode", function (event) {
-    //     console.log("触发事件:removenode");
-    //   });
-
-    //   polyEditor.on("end", function (event) {
-    //     console.log("触发事件: end");
-    //   });
-    // },
-    // //创建新的地块
-    // polyEditoradd() {
-    //   if(this.polygon){
-    //     this.$message({
-    //       message: "亲,您已存在一个地块了!",
-    //       type: "warning",
-    //     });
-    //   }else{
-    //     if (this.path.length<3) {
-    //     this.$message({
-    //       message: "亲,您还没有选定地块的区域哦!",
-    //       type: "warning",
-    //     });
-    //   } else {
-    //     // this.addpolygon();
-    //     this.deleteall();
-    //   }
-    //   }
-    // },
-    // //开始圈地
-    // polyEditoropen() {
-    //   if (this.path.length == 0) {
-    //     this.$message({
-    //       message: "亲,您还没有创建地块哦!",
-    //       type: "warning",
-    //     });
-    //   } else {
-    //     this.polyEditor.open();
-    //   }
-    // },
-    // //结束圈地
-    // polyEditorclose() {
-    //   if (this.path.length == 0) {
-    //     this.$message({
-    //       message: "亲,您还没有创建地块哦!",
-    //       type: "warning",
-    //     });
-    //   } else {
-    //     this.polyEditor.close();
-    //   }
-    // },
-    // //删除地块
-    // polyEditordel() {
-    //   if (this.polygon) {
-    //     this.$message({
-    //       message: "亲,您还没有创建地块哦!",
-    //       type: "warning",
-    //     });
-    //   } else {
-    //     this.map.remove(this.polygon);
-    //   }
-    // },
     // 切片转经度
     tile2lon(x, z) {
       return (x / Math.pow(2, z)) * 360 - 180;
@@ -326,13 +253,13 @@ export default {
           );
           // console.log(t1,t2)
           // 查询对象
-          let url = "http://192.168.1.17:18080/geoserver/zhai/wms?";
+          let url = "http://8.136.98.49:18080/geoserver/yunfei/wms?";
           let params = {
             service: "WMS",
-            version: "1.3.0",
+            version: "1.1.0",
             transparent: true,
             request: "GetMap",
-            layers: "zhai:result",
+            layers: "yunfei:result",
             width: 769,
             height: 620,
             srs: "EPSG:3857",
@@ -389,12 +316,12 @@ export default {
       });
       var source = new ol.source.ImageWMS({
         ratio: 1,
-        url: "http://192.168.1.17:18080/geoserver/zhai/wms",
+        url: "http://8.136.98.49:18080/geoserver/yunfei/wms",
         params: {
           FORMAT: format,
-          VERSION: "1.1.1",
+          VERSION: "1.1.0",
           STYLES: "",
-          LAYERS: "zhai:result",
+          LAYERS: "yunfei:result",
           exceptions: "application/vnd.ogc.se_inimage",
         },
       });
@@ -407,16 +334,18 @@ export default {
         this.loading = false;
       });
       source.on("imageloaderror", function () {
-        alert(11111);
+        // alert(11111);
       });
+      //http://8.136.98.49:18080/geoserver/yunfei/
+      //http://8.136.98.49:18080/geoserver/gwc/service/wmts?
       var source2 = new ol.source.TileWMS({
-        url: "http://192.168.1.17:18080/geoserver/zhai/wms",
+        url: "http://8.136.98.49:18080/geoserver/yunfei/wms",
         params: {
           FORMAT: format,
-          VERSION: "1.1.1",
+          VERSION: "1.1.0",
           tiled: true,
           STYLES: "",
-          LAYERS: "zhai:result",
+          LAYERS: "yunfei:result",
           exceptions: "application/vnd.ogc.se_inimage",
           tilesOrigin: bounds[0] + "," + bounds[1], //bounds 的第一项
           bbox: "",
@@ -468,7 +397,7 @@ export default {
         });
       };
       var beijing = gcoord.transform(
-        [113.68258608341216, 34.811427520345376],
+        [113.68258608341216, 34.811427520353476],
         gcoord.GCJ02,
         gcoord.EPSG3857
       );

+ 60 - 0
src/pages/plantGuard/geoinfo/mapindex.vue

@@ -0,0 +1,60 @@
+
+<!--  -->
+<template>
+  <div class="">
+    <div class="map" id="map"></div>
+  </div>
+</template>
+
+<script>
+//这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等)
+
+export default {
+  //import引入的组件需要注入到对象中才能使用
+  components: {},
+  data() {
+    //这里存放数据
+    return {
+      map: null,
+      GaodeUrl:
+        "http://webrd01.is.autonavi.com/appmaptile?x={x}&y={y}&z={z}&lang=zh_cn&scale=1&style=8",
+    };
+  },
+  //监听属性 类似于data概念
+  computed: {},
+  //监控data中的数据变化
+  watch: {},
+  //方法集合
+  methods: {},
+  beforeCreate() {}, //生命周期 - 创建之前
+  //生命周期 - 创建完成(可以访问当前this实例)
+  created() {},
+  beforeMount() {}, //生命周期 - 挂载之前
+  //生命周期 - 挂载完成(可以访问DOM元素)
+  mounted() {
+    var map = new ol.Map({
+      view: new ol.View({
+        center: [0, 0],
+        zoom: 2,
+      }),
+      layers: [
+        new ol.layer.Tile({
+          source: new ol.source.OSM(),
+        }),
+      ],
+      target: "map",
+    });
+  },
+  beforeUpdate() {}, //生命周期 - 更新之前
+  updated() {}, //生命周期 - 更新之后
+  beforeDestroy() {}, //生命周期 - 销毁之前
+  destroyed() {}, //生命周期 - 销毁完成
+  activated() {}, //如果页面有keep-alive缓存功能,这个函数会触发
+};
+</script>
+<style>
+.map{
+    width: 100%;
+    height: 100vh;
+}
+</style>

+ 8 - 5
src/pages/plantGuard/irrigate/index.vue

@@ -110,7 +110,10 @@ methods: {
     this.map = new AMap.Map("container", {
       resizeEnable: true,
       center: that.center,
-      zoom: that.zoom
+      zoom: that.zoom,
+      layers: [new AMap.TileLayer.Satellite({
+          zIndex:9
+        })], //加载卫星图
     });
     AMap.plugin(
       [
@@ -132,17 +135,17 @@ methods: {
     );
     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]",
+        "http://t{0,1,2,3,4,5,6,7}.tianditu.gov.cn/DataServer?T=img_w&tk=6e5cb1bfc017afcac7a21836cf81a884&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]",
+        "http://t{0,1,2,3,4,5,6,7}.tianditu.gov.cn/DataServer?T=cta_w&tk=6e5cb1bfc017afcac7a21836cf81a884&x=[x]&y=[y]&l=[z]",
       zIndex: 101
     });
-    // this.map.add(this.tileLayer1);
-    // this.map.add(this.tileLayer2);
+    this.map.add(this.tileLayer1);
+    this.map.add(this.tileLayer2);
     this.getEquipList();
     this.districtFun();
   },

+ 8 - 5
src/pages/plantGuard/irrigate/irrigate.vue

@@ -389,7 +389,10 @@ export default {
       this.map = new AMap.Map("container", {
         resizeEnable: true,
         center: that.center,
-        zoom: that.zoom
+        zoom: that.zoom,
+        expandZoomRange:true,
+        zooms:[3,23],//设置最大、最小缩放等级
+        layers: [new AMap.TileLayer.Satellite()], //加载卫星图
       });
       AMap.plugin(
         [
@@ -411,17 +414,17 @@ export default {
       );
       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]",
+          "http://t{0,1,2,3,4,5,6,7}.tianditu.gov.cn/DataServer?T=img_w&tk=6e5cb1bfc017afcac7a21836cf81a884&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]",
+          "http://t{0,1,2,3,4,5,6,7}.tianditu.gov.cn/DataServer?T=cta_w&tk=6e5cb1bfc017afcac7a21836cf81a884&x=[x]&y=[y]&l=[z]",
         zIndex: 101
       });
-      // this.map.add(this.tileLayer1);
-      // this.map.add(this.tileLayer2);
+      this.map.add(this.tileLayer1);
+      this.map.add(this.tileLayer2);
       this.getEquipList();
     },
     getEquipList() {

+ 2 - 2
src/pages/plantGuard/irrigate/popUp/setLocation.vue

@@ -81,13 +81,13 @@ export default {
       );
       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]",
+          "http://t{0,1,2,3,4,5,6,7}.tianditu.gov.cn/DataServer?T=img_w&tk=6e5cb1bfc017afcac7a21836cf81a884&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]",
+          "http://t{0,1,2,3,4,5,6,7}.tianditu.gov.cn/DataServer?T=cta_w&tk=6e5cb1bfc017afcac7a21836cf81a884&x=[x]&y=[y]&l=[z]",
         zIndex: 101
       });
       // this.map.add(this.tileLayer1);

+ 6 - 3
src/pages/plantGuard/page9.vue

@@ -170,7 +170,10 @@ export default {
       this.map = new AMap.Map("container", {
         resizeEnable: true,
         center: that.center,
-        zoom: that.zoom
+        zoom: that.zoom,
+        layers: [new AMap.TileLayer.Satellite({
+          zIndex:9
+        })], //加载卫星图
       });
       AMap.plugin(
         [
@@ -192,13 +195,13 @@ export default {
       );
       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]",
+          "http://t{0,1,2,3,4,5,6,7}.tianditu.gov.cn/DataServer?T=img_w&tk=6e5cb1bfc017afcac7a21836cf81a884&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]",
+          "http://t{0,1,2,3,4,5,6,7}.tianditu.gov.cn/DataServer?T=cta_w&tk=6e5cb1bfc017afcac7a21836cf81a884&x=[x]&y=[y]&l=[z]",
         zIndex: 101
       });
       this.map.add(this.tileLayer1);

+ 5 - 3
src/pages/plantGuard/plantProtection/base.vue

@@ -832,13 +832,13 @@ export default {
       );
       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]",
+          "http://t{0,1,2,3,4,5,6,7}.tianditu.gov.cn/DataServer?T=img_w&tk=6e5cb1bfc017afcac7a21836cf81a884&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]",
+          "http://t{0,1,2,3,4,5,6,7}.tianditu.gov.cn/DataServer?T=cta_w&tk=6e5cb1bfc017afcac7a21836cf81a884&x=[x]&y=[y]&l=[z]",
         zIndex: 101,
       });
       this.map.add(this.tileLayer1);
@@ -1611,5 +1611,7 @@ export default {
 /deep/.equipTabs .el-tabs__item{
   color: #cccccc;
 }
-
+/deep/.el-tabs__nav-scroll{
+  background-color: transparent;
+}
 </style>

+ 0 - 14
src/pages/plantGuard/plantProtection/baseComponents/equipHistoryDate.vue

@@ -200,20 +200,6 @@ export default {
           },
         },
         series: ChartData,
-        // series: [
-        //   {
-        //     name: ChartData[0].name,
-        //     data: ChartData[0].dat,
-        //   },
-        //   {
-        //     name: ChartData[1].name,
-        //     data: ChartData[1].dat,
-        //   },
-        //   {
-        //     name: ChartData[2].name,
-        //     data: ChartData[2].dat,
-        //   },
-        // ],
         colors: ["#00e29d", "#6cbbff", "#ff3f3f"],
         credits: {
           //去掉默认的highcharts.com

+ 2 - 2
src/pages/plantGuard/plantProtection/baseComponents/twentyFourHistoryDate.vue

@@ -2,7 +2,7 @@
 <template>
   <div class="equipInfo">
     <div>
-      <el-table class="customTable" :data="data24" stripe style="width: 100%" :header-cell-style="{background:'#1b222f',color:'#ddd',borderBottom: '1px solid #7d7d7d'}" >
+      <el-table class="customTable" :data="data24"  style="width: 100%" :header-cell-style="{background:'#1b222f',color:'#ddd',borderBottom: '1px solid #7d7d7d'}" >
 				<el-table-column prop="e" label="传感器通道"></el-table-column>
 				<el-table-column prop="name" label="通道名称"></el-table-column>
 				<el-table-column prop="min" label="最小值"></el-table-column>
@@ -87,7 +87,7 @@ export default {
 <style scoped lang="less">
 // table样式
 /deep/.customTable.el-table tr,/deep/.customTable.el-table .headerth th.is-leaf{
-    background-color: #1b222f;
+    background-color: #1b222f ;
     border-bottom: 1px solid #434343;
     color: #eee;
 } 

+ 2 - 2
src/pages/plantGuard/sysManage/roleManage.vue

@@ -32,7 +32,7 @@
             </el-table>
           </template>
           <!-- 添加角色对话框 -->
-          <el-dialog title="添加角色" :visible.sync="AddRoleDialogVisible" width="40%" @close="addRoleDialogClosed">
+          <el-dialog title="添加角色" :visible.sync="AddRoleDialogVisible" top="15%" width="40%" @close="addRoleDialogClosed">
             <el-form
             :model="addRoleForm"
             ref="addRoleFormRef"
@@ -52,7 +52,7 @@
             </span>
           </el-dialog>
           <!-- 编辑角色对话框 -->
-          <el-dialog title="编辑角色" :visible.sync="editRoleDialogVisible" width="40%" @close="editRoleDialogClosed">
+          <el-dialog title="编辑角色" :visible.sync="editRoleDialogVisible" top="15%" width="40%" @close="editRoleDialogClosed">
             <el-form
             :model="editRoleForm"
             ref="editRoleFormRef"

+ 2 - 0
src/pages/plantGuard/sysManage/topicManage.vue

@@ -100,6 +100,7 @@
                :visible.sync="detailDialogVisible"
                class="detailDialog"
                width="30%"
+			   top="15%"
             >
                <!-- <p>
                   <span>主题名称 :</span>
@@ -188,6 +189,7 @@
                :visible.sync="addUserGroupDialogVisible"
                class="editDialog"
                width="25%"
+			   top="15%"
             >
                <el-form ref="form" :model="adduserGroupForm" label-width="100px">
                   <el-form-item label="主题名称">

+ 3 - 0
src/pages/plantGuard/sysManage/userManage.vue

@@ -1286,6 +1286,9 @@ export default {
     vertical-align: middle;
   }
 }
+/deep/.el-form{
+  padding: 20px;
+}
 /deep/.el-table th {
   background-color: #232733;
 }

+ 290 - 0
src/pages/plantGuard/waterPrice/icmanage.vue

@@ -0,0 +1,290 @@
+<!-- ic卡管理 -->
+<template>
+  <div class="">
+    <el-card class="box-card">
+      <div class="peasantnorm_title">
+        <div class="peasantnorm_title_left">
+          <i class="el-icon-s-grid"></i>IC卡信息
+        </div>
+        <div class="peasantnorm_title_right">
+          <el-input
+            placeholder="请输入城市"
+            v-model="serterinfo.city"
+            size="mini"
+          >
+            <template slot="append"><i class="el-icon-search"></i></template>
+          </el-input>
+          <el-input
+            placeholder="请输入农户名称"
+            v-model="serterinfo.wellname"
+            size="mini"
+          >
+            <template slot="append"><i class="el-icon-search"></i></template>
+          </el-input>
+          <el-input
+            placeholder="请输入卡号"
+            v-model="serterinfo.wellID"
+            size="mini"
+          >
+            <template slot="append"><i class="el-icon-search"></i></template>
+          </el-input>
+          <el-button
+            type="info"
+            size="mini"
+            @click="dialogVisible = !dialogVisible"
+            >新增</el-button
+          >
+          <el-button type="info" size="mini">导出</el-button>
+        </div>
+      </div>
+      <div class="peasantnorm_table">
+        <el-table :data="userdata" stripe style="width: 100%">
+          <el-table-column prop="city" label="所属城市" width="180">
+          </el-table-column>
+          <el-table-column prop="iccid" label="卡号" width="180">
+          </el-table-column>
+          <el-table-column
+            prop="peasantname"
+            label="农户名称"
+            width="200px"
+          ></el-table-column>
+          <el-table-column
+            prop="usewateragg"
+            label="累计用水"
+          ></el-table-column>
+          <el-table-column
+            prop="useelectricityagg"
+            label="累计用电"
+          ></el-table-column>
+          <el-table-column prop="moneyagg" label="累计金额"></el-table-column>
+          <el-table-column
+            prop="moneyresidue"
+            label="剩余金额"
+          ></el-table-column>
+          <el-table-column prop="uptime" label="更新时间" width="200px">
+            <template slot-scope="scope">{{
+              (scope.row.uptime * 1000) | formatTime
+            }}</template>
+          </el-table-column>
+          <el-table-column label="操作" width="200">
+            <template>
+              <el-button size="mini" type="danger">删除</el-button>
+            </template>
+          </el-table-column>
+        </el-table>
+        <el-pagination background layout="prev, pager, next" :total="1000">
+        </el-pagination>
+      </div>
+    </el-card>
+    <el-dialog title="提示" :visible.sync="dialogVisible" width="25%" top="15%">
+      <div class="adddialog">
+        <el-form
+          label-position="right"
+          label-width="80px"
+          :model="formLabelAlign"
+        >
+          <el-form-item label="用户名称">
+            <el-input v-model="formLabelAlign.peasantname"></el-input>
+          </el-form-item>
+          <el-form-item label="所属城市">
+            <el-input v-model="formLabelAlign.city"></el-input>
+          </el-form-item>
+        </el-form>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="dialogVisible = false">取 消</el-button>
+        <el-button type="primary" @click="watersubmit">确 定</el-button>
+      </span>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+//这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等)
+
+export default {
+  //import引入的组件需要注入到对象中才能使用
+  components: {},
+  data() {
+    //这里存放数据
+    return {
+      dialogVisible: false, //新增弹框显示及隐藏
+      serterinfo: {
+        city: "",
+        wellname: "",
+        wellID: "",
+      },
+      userdata: [
+        {
+          city: "河南省郑州市金水区", //所属城市
+          iccid: "88454515151", //ic卡id
+          peasantname: "李建国",
+          usewateragg: "50", //累计用水
+          useelectricityagg: "3000", //累计用电
+          moneyagg: "50", //累计金额
+          moneyresidue: "50", //剩余金额
+          uptime: "1636007408", //最新更新时间
+        },
+        {
+          city: "河南省郑州市金水区", //所属城市
+          iccid: "88454515151", //ic卡id
+          peasantname: "李建国",
+          usewateragg: "50", //累计用水
+          useelectricityagg: "3000", //累计用电
+          moneyagg: "50", //累计金额
+          moneyresidue: "50", //剩余金额
+          uptime: "1636007408", //最新更新时间
+        },
+        {
+          city: "河南省郑州市金水区", //所属城市
+          iccid: "88454515151", //ic卡id
+          peasantname: "李建国",
+          usewateragg: "50", //累计用水
+          useelectricityagg: "3000", //累计用电
+          moneyagg: "50", //累计金额
+          moneyresidue: "50", //剩余金额
+          uptime: "1636007408", //最新更新时间
+        },
+        {
+          city: "河南省郑州市金水区", //所属城市
+          iccid: "88454515151", //ic卡id
+          peasantname: "李建国",
+          usewateragg: "50", //累计用水
+          useelectricityagg: "3000", //累计用电
+          moneyagg: "50", //累计金额
+          moneyresidue: "50", //剩余金额
+          uptime: "1636007408", //最新更新时间
+        },
+        {
+          city: "河南省郑州市金水区", //所属城市
+          iccid: "88454515151", //ic卡id
+          peasantname: "李建国",
+          usewateragg: "50", //累计用水
+          useelectricityagg: "3000", //累计用电
+          moneyagg: "50", //累计金额
+          moneyresidue: "50", //剩余金额
+          uptime: "1636007408", //最新更新时间
+        },
+        {
+          city: "河南省郑州市金水区", //所属城市
+          iccid: "88454515151", //ic卡id
+          peasantname: "李建国",
+          usewateragg: "50", //累计用水
+          useelectricityagg: "3000", //累计用电
+          moneyagg: "50", //累计金额
+          moneyresidue: "50", //剩余金额
+          uptime: "1636007408", //最新更新时间
+        },
+      ],
+      formLabelAlign: {
+        peasantname: "",
+        city: "",
+      },
+    };
+  },
+  //监听属性 类似于data概念
+  computed: {},
+  //监控data中的数据变化
+  watch: {},
+  //方法集合
+  methods: {
+    watersubmit() {
+      this.dialogVisible = !this.dialogVisible;
+    },
+    compilewater(item) {
+      this.dialogVisible = !this.dialogVisible;
+      this.formLabelAlign.peasantname = item.peasantname;
+      this.formLabelAlign.city = item.city;
+    },
+    watersubmit() {
+      //弹框确认键
+      this.dialogVisible = !this.dialogVisible;
+      for (var key in this.formLabelAlign) {
+        this.formLabelAlign[key] = "";
+      }
+    },
+  },
+  beforeCreate() {}, //生命周期 - 创建之前
+  //生命周期 - 创建完成(可以访问当前this实例)
+  created() {},
+  beforeMount() {}, //生命周期 - 挂载之前
+  //生命周期 - 挂载完成(可以访问DOM元素)
+  mounted() {},
+  beforeUpdate() {}, //生命周期 - 更新之前
+  updated() {}, //生命周期 - 更新之后
+  beforeDestroy() {}, //生命周期 - 销毁之前
+  destroyed() {}, //生命周期 - 销毁完成
+  activated() {}, //如果页面有keep-alive缓存功能,这个函数会触发
+};
+</script>
+<style scoped lang="less">
+.box-card {
+  width: 98%;
+  height: 83vh;
+  margin: 0 auto;
+}
+.peasantnorm_title {
+  display: flex;
+  justify-content: space-between;
+  .peasantnorm_title_left {
+    font-size: 16px;
+    font-weight: 700;
+    .el-icon-s-grid {
+      margin-right: 5px;
+      font-size: 20px;
+      color: #0195ff;
+    }
+  }
+  .peasantnorm_title_right {
+    width: 42%;
+    display: flex;
+    justify-content: space-around;
+    /deep/.el-input {
+      width: 200px;
+    }
+    /deep/.el-input-group__append {
+      background-color: #0195ff;
+      color: #fff;
+      width: 28px;
+      padding: 0;
+      text-align: center;
+    }
+    /deep/.el-button--info {
+      background-color: #0195ff;
+      border-color: #0195ff;
+    }
+  }
+}
+.peasantnorm_table {
+  margin-top: 20px;
+  /deep/.el-table__header {
+    th {
+      background-color: #2c3757;
+      color: #fff;
+    }
+  }
+}
+/deep/.el-dialog__body {
+  padding: 30px 20px 0;
+}
+/deep/.el-dialog__footer {
+  padding-top: 0;
+}
+.adddialog {
+  width: 85%;
+  margin: 0 auto;
+  /deep/.el-form-item {
+    margin-bottom: 10px;
+  }
+  /deep/.el-form-item__content {
+    display: flex;
+    .el-input {
+      width: 240px;
+      margin-right: 10px;
+    }
+  }
+}
+/deep/.el-pagination.is-background .el-pager li:not(.disabled).active{
+  background-color: #0195ff !important;
+}
+</style>

+ 475 - 0
src/pages/plantGuard/waterPrice/operatingrecord.vue

@@ -0,0 +1,475 @@
+<!-- 操作记录 -->
+<template>
+  <div class="">
+    <el-card class="box-card">
+      <div class="waternorebox">
+        <div class="cityinfo">
+          <p class="cityinfo_title"><i class="el-icon-s-grid"></i>地址信息</p>
+          <div class="cityinfo_tree">
+            <el-tree
+            :data="city"
+            :props="defaultProps"
+            @node-click="handleNodeClick"
+          ></el-tree>
+          </div>
+        </div>
+        <div class="linebetween"></div>
+        <div class="tanleinfo">
+          <div class="tableinfo_title">
+            <div class="tableinfo_title_tab">
+              <p
+                :class="selectnum == 0 ? 'selectp' : 'nonep'"
+                @click="selecttab(0)"
+              >
+                消费记录
+              </p>
+              <p
+                :class="selectnum == 1 ? 'selectp' : 'nonep'"
+                @click="selecttab(1)"
+              >
+                充值记录
+              </p>
+            </div>
+            <div class="tableinfo_title_sea">
+              <el-input
+                placeholder="请输入内容"
+                v-model="searchdata.input1"
+                size="mini"
+              >
+                <template slot="append"
+                  ><i class="el-icon-search"></i
+                ></template>
+              </el-input>
+              <el-input
+                placeholder="请输入内容"
+                v-model="searchdata.input2"
+                size="mini"
+              >
+                <template slot="append"
+                  ><i class="el-icon-search"></i
+                ></template>
+              </el-input>
+              <el-button type="info" size="mini" height="28px">导出</el-button>
+            </div>
+          </div>
+          <div class="tableinfo_table">
+            <div class="tablebox" v-loading="tableloading">
+              <el-table
+                :data="consumedata"
+                stripe
+                style="width: 100%"
+                v-if="selectnum == 0"
+              >
+                <el-table-column prop="wellid" label="机井编号">
+                </el-table-column>
+                <el-table-column prop="userid" label="用户卡号">
+                </el-table-column>
+                <el-table-column prop="offtime" label="开启时间" width="180">
+                  <template slot-scope="scope">{{
+                    (scope.row.offtime * 1000) | formatTime
+                  }}</template>
+                </el-table-column>
+                <el-table-column prop="ontime" label="关闭时间" width="180">
+                  <template slot-scope="scope">{{
+                    (scope.row.ontime * 1000) | formatTime
+                  }}</template>
+                </el-table-column>
+                <el-table-column prop="irrigateduration" label="灌溉时长(min)">
+                </el-table-column>
+                <el-table-column prop="oncetricity" label="本次用电量(度)">
+                </el-table-column>
+                <el-table-column prop="oncewater" label="本次用水量(吨)">
+                </el-table-column>
+                <el-table-column prop="usewater" label="累计用水量(吨)">
+                </el-table-column>
+                <el-table-column prop="oncemoney" label="使用金额(元)">
+                </el-table-column>
+                <el-table-column prop="balance" label="卡剩余金额(元)">
+                </el-table-column>
+                <el-table-column prop="residuewater" label="剩余水量(吨)">
+                </el-table-column>
+              </el-table>
+              <el-table
+                :data="rechargedata"
+                stripe
+                style="width: 100%"
+                v-if="selectnum == 1"
+              >
+              <el-table-column prop="id" label="序号">
+                </el-table-column>
+                <el-table-column prop="userid" label="用户卡号">
+                </el-table-column>
+                <el-table-column prop="rechargetime" label="充值时间">
+                  <template slot-scope="scope">{{
+                    (scope.row.rechargetime * 1000) | formatTime
+                  }}</template>
+                </el-table-column>
+                <el-table-column prop="rechargewater" label="充值水量(吨)">
+                </el-table-column>
+                <el-table-column prop="rechargemoney" label="充值金额(元)">
+                </el-table-column>
+                <el-table-column prop="balance" label="充值后金额(元)">
+                </el-table-column>
+                <el-table-column prop="operator" label="操作人">
+                </el-table-column>
+              </el-table>
+            </div>
+            <el-pagination background layout="prev, pager, next" :total="1000">
+            </el-pagination>
+          </div>
+        </div>
+      </div>
+    </el-card>
+  </div>
+</template>
+
+<script>
+//这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等)
+
+export default {
+  //import引入的组件需要注入到对象中才能使用
+  components: {},
+  data() {
+    //这里存放数据
+    return {
+      city: [
+        {
+          name: "河南省",
+          id: "04",
+          children: [
+            {
+              name: "郑州市",
+              id: "04-1",
+              children: [
+                {
+                  name: "金水区基地",
+                  id: "04-1-1",
+                },
+                {
+                  name: "二七区基地",
+                  id: "04-1-2",
+                },
+                {
+                  name: "高新区基地",
+                  id: "04-1-3",
+                },
+              ],
+            },
+            {
+              name: "信阳市",
+              id: "04-2",
+              children: [
+                {
+                  name: "潢川县",
+                  id: "04-2-1",
+                },
+                {
+                  name: "固始县",
+                  id: "04-2-2",
+                },
+                {
+                  name: "淮滨县",
+                  id: "04-2-3",
+                  children: [
+                    {
+                      name: "王店乡",
+                      id: "04-2-3-1",
+                      children: [
+                        {
+                          name: "北庙基地",
+                          id: "04-2-3-1-1",
+                        },
+                        {
+                          name: "杨楼基地",
+                          id: "04-2-3-1-2",
+                        },
+                      ],
+                    },
+                    {
+                      name: "张庄乡",
+                      id: "04-2-3-2",
+                    },
+                    {
+                      name: "台头乡",
+                      id: "04-2-3-3",
+                    },
+                  ],
+                },
+              ],
+            },
+          ],
+        },
+        {
+          name: "河北省",
+          id: "05",
+        },
+        {
+          name: "湖南省",
+          id: "06",
+        },
+      ],
+      selectnum: 0, //切换的数值
+      defaultProps: {
+        //省市县树状图规则
+        children: "children",
+        label: "name",
+      },
+      input2: "", //搜索框,
+      consumedata: [
+        //消费记录
+        {
+          wellid: "125478451", //机井编号
+          userid: "4841121211", //用户卡号
+          offtime: "1636076311", //开启时间
+          ontime: "1636076311", //关闭时间
+          irrigateduration: "60", //灌溉时长
+          oncewater: "60", //本次用水
+          oncetricity: "60", //本次用电
+          usewater: "60", //累计用水量
+          oncemoney: "60", //使用金额
+          balance: "120", //卡剩余金额
+          residuewater: "120", //剩余水量
+        },
+        {
+          wellid: "125478451", //机井编号
+          userid: "4841121211", //用户卡号
+          offtime: "1636076311", //开启时间
+          ontime: "1636076311", //关闭时间
+          irrigateduration: "60", //灌溉时长
+          oncewater: "60", //本次用水
+          oncetricity: "60", //本次用电
+          usewater: "60", //累计用水量
+          oncemoney: "60", //使用金额
+          balance: "120", //卡剩余金额
+          residuewater: "120", //剩余水量
+        },
+        {
+          wellid: "125478451", //机井编号
+          userid: "4841121211", //用户卡号
+          offtime: "1636076311", //开启时间
+          ontime: "1636076311", //关闭时间
+          irrigateduration: "60", //灌溉时长
+          oncewater: "60", //本次用水
+          oncetricity: "60", //本次用电
+          usewater: "60", //累计用水量
+          oncemoney: "60", //使用金额
+          balance: "120", //卡剩余金额
+          residuewater: "120", //剩余水量
+        },
+        {
+          wellid: "125478451", //机井编号
+          userid: "4841121211", //用户卡号
+          offtime: "1636076311", //开启时间
+          ontime: "1636076311", //关闭时间
+          irrigateduration: "60", //灌溉时长
+          oncewater: "60", //本次用水
+          oncetricity: "60", //本次用电
+          usewater: "60", //累计用水量
+          oncemoney: "60", //使用金额
+          balance: "120", //卡剩余金额
+          residuewater: "120", //剩余水量
+        },
+        {
+          wellid: "125478451", //机井编号
+          userid: "4841121211", //用户卡号
+          offtime: "1636076311", //开启时间
+          ontime: "1636076311", //关闭时间
+          irrigateduration: "60", //灌溉时长
+          oncewater: "60", //本次用水
+          oncetricity: "60", //本次用电
+          usewater: "60", //累计用水量
+          oncemoney: "60", //使用金额
+          balance: "120", //卡剩余金额
+          residuewater: "120", //剩余水量
+        },
+      ],
+      rechargedata: [
+        {
+          id:"1",
+          userid: "4841121211", //用户卡号
+          rechargetime: "1636076311", //充值时间
+          rechargewater: "50", //充值水量
+          rechargemoney: "50", //充值金额
+          balance: "170", //充值后金额
+          operator: "李建国", //操作人
+        },
+        {
+          id:"2",
+          userid: "4841121211", //用户卡号
+          rechargetime: "1636076311", //充值时间
+          rechargewater: "50", //充值水量
+          rechargemoney: "50", //充值金额
+          balance: "170", //充值后金额
+          operator: "李建国", //操作人
+        },
+        {
+          id:"3",
+          userid: "4841121211", //用户卡号
+          rechargetime: "1636076311", //充值时间
+          rechargewater: "50", //充值水量
+          rechargemoney: "50", //充值金额
+          balance: "170", //充值后金额
+          operator: "李建国", //操作人
+        },
+        {
+          id:"4",
+          userid: "4841121211", //用户卡号
+          rechargetime: "1636076311", //充值时间
+          rechargewater: "50", //充值水量
+          rechargemoney: "50", //充值金额
+          balance: "170", //充值后金额
+          operator: "李建国", //操作人
+        },
+        {
+          id:"5",
+          userid: "4841121211", //用户卡号
+          rechargetime: "1636076311", //充值时间
+          rechargewater: "50", //充值水量
+          rechargemoney: "50", //充值金额
+          balance: "170", //充值后金额
+          operator: "李建国", //操作人
+        },
+      ],
+      searchdata: {
+        //搜索值
+        input1: "",
+        input2: "",
+      },
+      tableloading: false,
+    };
+  },
+  //监听属性 类似于data概念
+  computed: {},
+  //监控data中的数据变化
+  watch: {},
+  //方法集合
+  methods: {
+    handleNodeClick(data) {
+      console.log(data);
+      this.input2 = data.name;
+    },
+    selecttab(index) {
+      this.selectnum = index;
+      this.tableloading = true;
+      setTimeout(() => {
+        this.tableloading = false;
+      }, 1000);
+    },
+  },
+  beforeCreate() {}, //生命周期 - 创建之前
+  //生命周期 - 创建完成(可以访问当前this实例)
+  created() {},
+  beforeMount() {}, //生命周期 - 挂载之前
+  //生命周期 - 挂载完成(可以访问DOM元素)
+  mounted() {},
+  beforeUpdate() {}, //生命周期 - 更新之前
+  updated() {}, //生命周期 - 更新之后
+  beforeDestroy() {}, //生命周期 - 销毁之前
+  destroyed() {}, //生命周期 - 销毁完成
+  activated() {}, //如果页面有keep-alive缓存功能,这个函数会触发
+};
+</script>
+<style scoped lang="less">
+.box-card {
+  width: 98%;
+  height: 83vh;
+  margin: 0 auto;
+}
+.waternorebox {
+  width: 100%;
+  height: 80vh;
+  display: flex;
+  justify-content: space-between;
+  .cityinfo {
+    width: 15%;
+    .cityinfo_title {
+      font-size: 16px;
+      font-weight: 700;
+      .el-icon-s-grid {
+        margin-right: 5px;
+        font-size: 20px;
+        color: #0195ff;
+      }
+    }
+    /deep/.el-tree-node {
+      margin-top: 10px;
+    }
+    .cityinfo_tree {
+        height: 95%;
+        overflow: auto;
+      }
+  }
+  .linebetween {
+      width: 2px;
+      background-color: #eef0f4;
+      // height: 79vh;
+      height: 100%;
+    }
+  .tanleinfo {
+    width: 83%;
+    .tableinfo_title {
+      width: 100%;
+      display: flex;
+      justify-content: space-between;
+      .tableinfo_title_tab {
+        display: flex;
+        .nonep {
+          width: 80px;
+          height: 26px;
+          line-height: 26px;
+          text-align: center;
+          border: 1px solid #0195ff;
+          color: #0195ff;
+        }
+        .selectp {
+          width: 80px;
+          height: 26px;
+          line-height: 26px;
+          text-align: center;
+          border: 1px solid #0195ff;
+          background-color: #0195ff;
+          color: #fff;
+        }
+      }
+      .tableinfo_title_sea {
+        display: flex;
+        // justify-content: space-around;
+        /deep/.el-input {
+          width: 200px;
+          margin-right: 10px;
+        }
+        /deep/.el-input-group__append {
+          background-color: #0195ff;
+          color: #fff;
+          width: 28px;
+          padding: 0;
+          text-align: center;
+        }
+        /deep/.el-button--info {
+          background-color: #0195ff;
+          border-color: #0195ff;
+        }
+      }
+      /deep/.el-input-group__append {
+        background-color: #0195ff;
+        color: #fff;
+        width: 28px;
+        padding: 0;
+        text-align: center;
+      }
+    }
+    .tableinfo_table {
+      margin-top: 20px;
+      /deep/.el-table__header {
+        th {
+          background-color: #2c3757;
+          color: #fff;
+        }
+      }
+    }
+  }
+}
+/deep/.el-pagination.is-background .el-pager li:not(.disabled).active{
+  background-color: #0195ff !important;
+}
+</style>

+ 351 - 0
src/pages/plantGuard/waterPrice/peasantnorm.vue

@@ -0,0 +1,351 @@
+<!-- 农户定额 -->
+<template>
+  <div class="">
+    <el-card class="box-card">
+      <div class="peasantnorm_title">
+        <div class="peasantnorm_title_left">
+          <i class="el-icon-s-grid"></i>农户信息
+        </div>
+        <div class="peasantnorm_title_right">
+          <el-input
+            placeholder="请输入城市名称"
+            v-model="serterinfo.cityname"
+            size="mini"
+          >
+            <template slot="append"><i class="el-icon-search"></i></template>
+          </el-input>
+          <el-input
+            placeholder="请输入农户名称"
+            v-model="serterinfo.username"
+            size="mini"
+          >
+            <template slot="append"><i class="el-icon-search"></i></template>
+          </el-input>
+          <el-input
+            placeholder="请输入年度"
+            v-model="serterinfo.annual"
+            size="mini"
+          >
+            <template slot="append"><i class="el-icon-search"></i></template>
+          </el-input>
+          <el-button
+            type="info"
+            size="mini"
+            @click="dialogVisible = !dialogVisible"
+            >新增</el-button
+          >
+        </div>
+      </div>
+      <div class="peasantnorm_table">
+        <el-table :data="userdata" stripe style="width: 100%">
+          <el-table-column prop="city" label="所属城市" width="180">
+          </el-table-column>
+          <el-table-column prop="username" label="农户名称" width="180">
+          </el-table-column>
+          <el-table-column prop="IC" label="卡号"></el-table-column>
+          <el-table-column
+            prop="irrigationarea"
+            label="灌溉面积(亩)"
+          ></el-table-column>
+          <el-table-column
+            prop="averagequota"
+            label="亩均定额(吨/亩)"
+          ></el-table-column>
+          <el-table-column
+            prop="wateryield"
+            label="水量定额(吨)"
+          ></el-table-column>
+          <el-table-column
+            prop="usewater"
+            label="已用水量(吨)"
+          ></el-table-column>
+          <el-table-column prop="pricing" label="定价"></el-table-column>
+          <el-table-column prop="uptime" label="更新时间">
+            <template slot-scope="scope">{{
+              (scope.row.uptime * 1000) | formatTime
+            }}</template>
+          </el-table-column>
+          <el-table-column label="操作" width="200">
+            <template slot-scope="scope">
+              <!-- <template> -->
+              <el-button size="mini" type="info">用水报表</el-button>
+              <el-button
+                size="mini"
+                type="warning"
+                @click="compilewater(scope.row)"
+                >编辑</el-button
+              >
+              <!--  -->
+            </template>
+          </el-table-column>
+        </el-table>
+        <el-pagination background layout="prev, pager, next" :total="1000">
+        </el-pagination>
+      </div>
+    </el-card>
+    <el-dialog title="提示" :visible.sync="dialogVisible" width="25%" top="15%">
+      <div class="adddialog">
+        <el-form
+          label-position="right"
+          label-width="80px"
+          :model="formLabelAlign"
+        >
+          <el-form-item label="农户名称">
+            <el-input v-model="formLabelAlign.username"></el-input>
+          </el-form-item>
+          <el-form-item label="所属城市">
+            <el-input v-model="formLabelAlign.city"></el-input>
+          </el-form-item>
+          <el-form-item label="所属年度">
+            <el-input v-model="formLabelAlign.year"></el-input>
+          </el-form-item>
+          <el-form-item label="农户卡号">
+            <el-input v-model="formLabelAlign.IC"></el-input>
+          </el-form-item>
+          <el-form-item label="灌溉面积">
+            <el-input v-model="formLabelAlign.irrigationarea"></el-input>亩
+          </el-form-item>
+          <el-form-item label="亩均定额">
+            <el-input v-model="formLabelAlign.averagequota"></el-input>吨/亩
+          </el-form-item>
+          <el-form-item label="水量配额">
+            <el-input v-model="formLabelAlign.wateryield"></el-input>吨
+          </el-form-item>
+          <el-form-item label="执行定价">
+            <el-select
+              v-model="formLabelAlign.pricing"
+              placeholder="请选择执行定价"
+            >
+              <el-option
+                v-for="item in pricing"
+                :key="item.value"
+                :label="item.name"
+                :value="item.value"
+              ></el-option>
+            </el-select>
+          </el-form-item>
+        </el-form>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="dialogVisible = false">取 消</el-button>
+        <el-button type="primary" @click="watersubmit">确 定</el-button>
+      </span>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+//这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等)
+
+export default {
+  //import引入的组件需要注入到对象中才能使用
+  components: {},
+  data() {
+    //这里存放数据
+    return {
+      dialogVisible: false, //新增弹框显示及隐藏
+      serterinfo: {
+        cityname: "",
+        username: "",
+        annual: "",
+      },
+      userdata: [
+        {
+          city: "郑州", //所属城市
+          username: "李建国", //用户名称
+          year: "2021", //年度
+          IC: "4841121211", //ic卡
+          irrigationarea: "100", //灌溉面积
+          averagequota: "30", //亩均定额
+          wateryield: "3000", //水量定额
+          usewater: "1580", //已用水
+          pricing: "一号水价", //定价
+          uptime: "1636007408",
+        },
+        {
+          city: "郑州", //所属城市
+          username: "李建国", //用户名称
+          year: "2021", //年度
+          IC: "4841121211", //ic卡
+          irrigationarea: "100", //灌溉面积
+          averagequota: "30", //亩均定额
+          wateryield: "3000", //水量定额
+          usewater: "1580", //已用水
+          pricing: "一号水价", //定价
+          uptime: "1636007408",
+        },
+        {
+          city: "郑州", //所属城市
+          username: "李建国", //用户名称
+          year: "2021", //年度
+          IC: "4841121211", //ic卡
+          irrigationarea: "100", //灌溉面积
+          averagequota: "30", //亩均定额
+          wateryield: "3000", //水量定额
+          usewater: "1580", //已用水
+          pricing: "一号水价", //定价
+          uptime: "1636007408",
+        },
+        {
+          city: "郑州", //所属城市
+          username: "李建国", //用户名称
+          year: "2021", //年度
+          IC: "4841121211", //ic卡
+          irrigationarea: "100", //灌溉面积
+          averagequota: "30", //亩均定额
+          wateryield: "3000", //水量定额
+          usewater: "1580", //已用水
+          pricing: "一号水价", //定价
+          uptime: "1636007408",
+        },
+        {
+          city: "郑州", //所属城市
+          username: "李建国", //用户名称
+          year: "2021", //年度
+          IC: "4841121211", //ic卡
+          irrigationarea: "100", //灌溉面积
+          averagequota: "30", //亩均定额
+          wateryield: "3000", //水量定额
+          usewater: "1580", //已用水
+          pricing: "一号水价", //定价
+          uptime: "1636007408",
+        },
+      ],
+      formLabelAlign: {
+        city: "", //城市名
+        username: "", //用户数量
+        year: "", //年度
+        irrigationarea: "", //灌溉面积
+        IC: "", //ic卡
+        averagequota: "", //亩均定额
+        wateryield: "", //水量定额
+        pricing: "",
+      },
+      pricing: [
+        {
+          name: "一号定价",
+          value: "1",
+        },
+        {
+          name: "二号定价",
+          value: "2",
+        },
+        {
+          name: "三号定价",
+          value: "3",
+        },
+      ], //定价
+    };
+  },
+  //监听属性 类似于data概念
+  computed: {},
+  //监控data中的数据变化
+  watch: {},
+  //方法集合
+  methods: {
+    watersubmit() {
+      this.dialogVisible = !this.dialogVisible;
+    },
+    compilewater(item) {
+      this.dialogVisible = !this.dialogVisible;
+      this.formLabelAlign.city = item.city;
+      this.formLabelAlign.username = item.username;
+      this.formLabelAlign.year = item.year;
+      this.formLabelAlign.irrigationarea = item.irrigationarea;
+      this.formLabelAlign.IC = item.IC;
+      this.formLabelAlign.averagequota = item.averagequota;
+      this.formLabelAlign.wateryield = item.wateryield;
+      this.formLabelAlign.pricing = item.pricing;
+    },
+    watersubmit() {
+      //弹框确认键盘
+      this.dialogVisible = !this.dialogVisible;
+      for (var key in this.formLabelAlign) {
+        this.formLabelAlign[key] = "";
+      }
+    },
+  },
+  beforeCreate() {}, //生命周期 - 创建之前
+  //生命周期 - 创建完成(可以访问当前this实例)
+  created() {},
+  beforeMount() {}, //生命周期 - 挂载之前
+  //生命周期 - 挂载完成(可以访问DOM元素)
+  mounted() {},
+  beforeUpdate() {}, //生命周期 - 更新之前
+  updated() {}, //生命周期 - 更新之后
+  beforeDestroy() {}, //生命周期 - 销毁之前
+  destroyed() {}, //生命周期 - 销毁完成
+  activated() {}, //如果页面有keep-alive缓存功能,这个函数会触发
+};
+</script>
+<style scoped lang="less">
+.box-card {
+  width: 98%;
+  height: 83vh;
+  margin: 0 auto;
+}
+.peasantnorm_title {
+  display: flex;
+  justify-content: space-between;
+  .peasantnorm_title_left {
+    font-size: 16px;
+    font-weight: 700;
+    .el-icon-s-grid {
+      margin-right: 5px;
+      font-size: 20px;
+      color: #0195ff;
+    }
+  }
+  .peasantnorm_title_right {
+    width: 40%;
+    display: flex;
+    justify-content: space-around;
+    /deep/.el-input {
+      width: 200px;
+    }
+    /deep/.el-input-group__append {
+      background-color: #0195ff;
+      color: #fff;
+      width: 28px;
+      padding: 0;
+      text-align: center;
+    }
+    /deep/.el-button--info {
+      background-color: #0195ff;
+      border-color: #0195ff;
+    }
+  }
+}
+.peasantnorm_table {
+  margin-top: 20px;
+  /deep/.el-table__header {
+    th {
+      background-color: #2c3757;
+      color: #fff;
+    }
+  }
+}
+/deep/.el-dialog__body {
+  padding: 30px 20px 0;
+}
+/deep/.el-dialog__footer {
+  padding-top: 0;
+}
+.adddialog {
+  width: 85%;
+  margin: 0 auto;
+  /deep/.el-form-item {
+    margin-bottom: 10px;
+  }
+  /deep/.el-form-item__content {
+    display: flex;
+    .el-input {
+      width: 240px;
+      margin-right: 10px;
+    }
+  }
+}
+/deep/.el-pagination.is-background .el-pager li:not(.disabled).active{
+  background-color: #0195ff !important;
+}
+</style>

+ 360 - 0
src/pages/plantGuard/waterPrice/watercalculate.vue

@@ -0,0 +1,360 @@
+<!-- 执行定价 -->
+<template>
+  <div class="">
+    <el-card class="box-card">
+      <div class="peasantnorm_title">
+        <div class="peasantnorm_title_left">
+          <i class="el-icon-s-grid"></i>水价管理
+        </div>
+        <div class="peasantnorm_title_right">
+          <el-input
+            placeholder="请输入城市"
+            v-model="serterinfo.watername"
+            size="mini"
+          >
+            <template slot="append"><i class="el-icon-search"></i></template>
+          </el-input>
+          <el-button
+            type="info"
+            size="mini"
+            @click="dialogVisible = !dialogVisible"
+            >新增</el-button
+          >
+        </div>
+      </div>
+      <div class="peasantnorm_table">
+        <el-table :data="userdata" stripe style="width: 100%">
+          <el-table-column prop="watername" label="名称" >
+          </el-table-column>
+          <el-table-column prop="firstwan" label="一阶水量(吨)" >
+          </el-table-column>
+          <el-table-column prop="firstwam" label="一阶水价(元)" >
+          </el-table-column>
+          <el-table-column prop="firsteln" label="一阶电量(度)" >
+          </el-table-column>
+          <el-table-column prop="firstelm" label="一阶电价(元)" >
+          </el-table-column>
+          <el-table-column prop="secondwan" label="二阶水量(吨)" >
+          </el-table-column>
+          <el-table-column prop="secondwam" label="二阶水价(元)" >
+          </el-table-column>
+          <el-table-column prop="secondeln" label="二阶电量(度)" >
+          </el-table-column>
+          <el-table-column prop="secondelm" label="二阶电价(元)" >
+          </el-table-column>
+          <el-table-column prop="thirdwan" label="三阶水量(吨)" >
+          </el-table-column>
+          <el-table-column prop="thirdwam" label="三阶水价(元)" >
+          </el-table-column>
+          <el-table-column prop="thirdeln" label="三阶电量(度)" >
+          </el-table-column>
+          <el-table-column prop="thirdelm" label="三阶电价(元)" >
+          </el-table-column>
+          <el-table-column prop="settime" label="更新时间" width="180px">
+            <template slot-scope="scope">{{
+              (scope.row.settime * 1000) | formatTime
+            }}</template>
+          </el-table-column>
+          <el-table-column label="操作">
+            <template>
+              <el-button size="mini" type="danger">删除</el-button>
+            </template>
+          </el-table-column>
+        </el-table>
+        <el-pagination background layout="prev, pager, next" :total="1000">
+        </el-pagination>
+      </div>
+    </el-card>
+    <el-dialog title="新增" :visible.sync="dialogVisible" width="40%" top="15%">
+      <div class="adddialog">
+        <el-form
+          label-position="right"
+          label-width="80px"
+          :model="formLabelAlign"
+        >
+          <el-form-item label="一阶水量">
+            <el-input v-model="formLabelAlign.firstwan"></el-input>吨;
+          </el-form-item>
+          <el-form-item label="一阶水价">
+            <el-input v-model="formLabelAlign.firstwam"></el-input>元/吨;
+          </el-form-item>
+          <el-form-item label="二阶水量">
+            <el-input v-model="formLabelAlign.secondwan"></el-input>吨;
+          </el-form-item>
+          <el-form-item label="二阶水价">
+            <el-input v-model="formLabelAlign.secondwam"></el-input>元/吨;
+          </el-form-item>
+          <el-form-item label="三阶水量">
+            <el-input v-model="formLabelAlign.thirdwan"></el-input>吨;
+          </el-form-item>
+          <el-form-item label="三阶水价">
+            <el-input v-model="formLabelAlign.thirdwam"></el-input>元/吨;
+          </el-form-item>
+          <el-form-item label="一阶电量">
+            <el-input v-model="formLabelAlign.firsteln"></el-input>度;
+          </el-form-item>
+          <el-form-item label="一阶电价">
+            <el-input v-model="formLabelAlign.firstelm"></el-input>元/度;
+          </el-form-item>
+          <el-form-item label="二阶电量">
+            <el-input v-model="formLabelAlign.secondeln"></el-input>度;
+          </el-form-item>
+          <el-form-item label="二阶电价">
+            <el-input v-model="formLabelAlign.secondelm"></el-input>元/度;
+          </el-form-item>
+          <el-form-item label="三阶电量">
+            <el-input v-model="formLabelAlign.thirdeln"></el-input>度;
+          </el-form-item>
+          <el-form-item label="三阶电价">
+            <el-input v-model="formLabelAlign.thirdelm"></el-input>元/度;
+          </el-form-item>
+        </el-form>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="dialogVisible = false">取 消</el-button>
+        <el-button type="primary" @click="watersubmit">确 定</el-button>
+      </span>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+//这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等)
+
+export default {
+  //import引入的组件需要注入到对象中才能使用
+  components: {},
+  data() {
+    //这里存放数据
+    return {
+      dialogVisible: false, //新增弹框显示及隐藏
+      serterinfo: {
+        watername: "",
+      },
+      userdata: [
+        {
+          watername:"一号水价",//水价名称
+          firstwan:"10",//一阶水量(吨)
+          firstwam:"10",//一阶水价(元)
+          firsteln:"10",//一阶电量(度)
+          firstelm:"10",//一阶电价(元)
+          secondwan:"10",//二阶水量(吨)
+          secondwam:"10",//二阶水价(元)
+          secondeln:"10",//二阶电量(度)
+          secondelm:"10",//二阶电价(元)
+          thirdwan:"10",//三阶水量(吨)
+          thirdwam:"10",//三阶水价(元)
+          thirdeln:"10",//三阶电量(度)
+          thirdelm:"10",//三阶电价(元)
+          settime:"1636076311",//设置时间
+        },
+        {
+          watername:"一号水价",//水价名称
+          firstwan:"10",//一阶水量(吨)
+          firstwam:"10",//一阶水价(元)
+          firsteln:"10",//一阶电量(度)
+          firstelm:"10",//一阶电价(元)
+          secondwan:"10",//二阶水量(吨)
+          secondwam:"10",//二阶水价(元)
+          secondeln:"10",//二阶电量(度)
+          secondelm:"10",//二阶电价(元)
+          thirdwan:"10",//三阶水量(吨)
+          thirdwam:"10",//三阶水价(元)
+          thirdeln:"10",//三阶电量(度)
+          thirdelm:"10",//三阶电价(元)
+          settime:"1636076311",//设置时间
+        },
+        {
+          watername:"一号水价",//水价名称
+          firstwan:"10",//一阶水量(吨)
+          firstwam:"10",//一阶水价(元)
+          firsteln:"10",//一阶电量(度)
+          firstelm:"10",//一阶电价(元)
+          secondwan:"10",//二阶水量(吨)
+          secondwam:"10",//二阶水价(元)
+          secondeln:"10",//二阶电量(度)
+          secondelm:"10",//二阶电价(元)
+          thirdwan:"10",//三阶水量(吨)
+          thirdwam:"10",//三阶水价(元)
+          thirdeln:"10",//三阶电量(度)
+          thirdelm:"10",//三阶电价(元)
+          settime:"1636076311",//设置时间
+        },
+        {
+          watername:"一号水价",//水价名称
+          firstwan:"10",//一阶水量(吨)
+          firstwam:"10",//一阶水价(元)
+          firsteln:"10",//一阶电量(度)
+          firstelm:"10",//一阶电价(元)
+          secondwan:"10",//二阶水量(吨)
+          secondwam:"10",//二阶水价(元)
+          secondeln:"10",//二阶电量(度)
+          secondelm:"10",//二阶电价(元)
+          thirdwan:"10",//三阶水量(吨)
+          thirdwam:"10",//三阶水价(元)
+          thirdeln:"10",//三阶电量(度)
+          thirdelm:"10",//三阶电价(元)
+          settime:"1636076311",//设置时间
+        },
+        {
+          watername:"一号水价",//水价名称
+          firstwan:"10",//一阶水量(吨)
+          firstwam:"10",//一阶水价(元)
+          firsteln:"10",//一阶电量(度)
+          firstelm:"10",//一阶电价(元)
+          secondwan:"10",//二阶水量(吨)
+          secondwam:"10",//二阶水价(元)
+          secondeln:"10",//二阶电量(度)
+          secondelm:"10",//二阶电价(元)
+          thirdwan:"10",//三阶水量(吨)
+          thirdwam:"10",//三阶水价(元)
+          thirdeln:"10",//三阶电量(度)
+          thirdelm:"10",//三阶电价(元)
+          settime:"1636076311",//设置时间
+        },
+        {
+          watername:"一号水价",//水价名称
+          firstwan:"10",//一阶水量(吨)
+          firstwam:"10",//一阶水价(元)
+          firsteln:"10",//一阶电量(度)
+          firstelm:"10",//一阶电价(元)
+          secondwan:"10",//二阶水量(吨)
+          secondwam:"10",//二阶水价(元)
+          secondeln:"10",//二阶电量(度)
+          secondelm:"10",//二阶电价(元)
+          thirdwan:"10",//三阶水量(吨)
+          thirdwam:"10",//三阶水价(元)
+          thirdeln:"10",//三阶电量(度)
+          thirdelm:"10",//三阶电价(元)
+          settime:"1636076311",//设置时间
+        },
+      ],
+      formLabelAlign: {
+          firstwan:"",//一阶水量(吨)
+          firstwam:"",//一阶水价(元)
+          firsteln:"",//一阶电量(度)
+          firstelm:"",//一阶电价(元)
+          secondwan:"",//二阶水量(吨)
+          secondwam:"",//二阶水价(元)
+          secondeln:"",//二阶电量(度)
+          secondelm:"",//二阶电价(元)
+          thirdwan:"",//三阶水量(吨)
+          thirdwam:"",//三阶水价(元)
+          thirdeln:"",//三阶电量(度)
+          thirdelm:"",//三阶电价(元)
+      },
+    };
+  },
+  //监听属性 类似于data概念
+  computed: {},
+  //监控data中的数据变化
+  watch: {},
+  //方法集合
+  methods: {
+    watersubmit() {
+      this.dialogVisible = !this.dialogVisible;
+    },
+    compilewater(item) {
+      this.dialogVisible = !this.dialogVisible;
+    },
+    watersubmit() {
+      //弹框确认键
+      this.dialogVisible = !this.dialogVisible;
+      for (var key in this.formLabelAlign) {
+        this.formLabelAlign[key] = "";
+      }
+    },
+  },
+  beforeCreate() {}, //生命周期 - 创建之前
+  //生命周期 - 创建完成(可以访问当前this实例)
+  created() {},
+  beforeMount() {}, //生命周期 - 挂载之前
+  //生命周期 - 挂载完成(可以访问DOM元素)
+  mounted() {},
+  beforeUpdate() {}, //生命周期 - 更新之前
+  updated() {}, //生命周期 - 更新之后
+  beforeDestroy() {}, //生命周期 - 销毁之前
+  destroyed() {}, //生命周期 - 销毁完成
+  activated() {}, //如果页面有keep-alive缓存功能,这个函数会触发
+};
+</script>
+<style scoped lang="less">
+.box-card {
+  width: 98%;
+  height: 83vh;
+  margin: 0 auto;
+}
+.peasantnorm_title {
+  display: flex;
+  justify-content: space-between;
+  .peasantnorm_title_left {
+    font-size: 16px;
+    font-weight: 700;
+    .el-icon-s-grid {
+      margin-right: 5px;
+      font-size: 20px;
+      color: #0195ff;
+    }
+  }
+  .peasantnorm_title_right {
+    display: flex;
+    /deep/.el-input {
+      width: 200px;
+      margin-right: 10px;
+    }
+    /deep/.el-input-group__append {
+      background-color: #0195ff;
+      color: #fff;
+      width: 28px;
+      padding: 0;
+      text-align: center;
+    }
+    /deep/.el-button--info {
+      background-color: #0195ff;
+      border-color: #0195ff;
+    }
+  }
+}
+.peasantnorm_table {
+  margin-top: 20px;
+  /deep/.el-table__header {
+    th {
+      background-color: #2c3757;
+      color: #fff;
+    }
+  }
+}
+/deep/.el-dialog__body {
+  padding: 30px 20px 0;
+}
+/deep/.el-dialog__footer {
+  padding-top: 0;
+}
+.adddialog {
+  width: 85%;
+  margin: 0 auto;
+  /deep/.el-form{
+    display: flex;
+    flex-wrap: wrap;
+  }
+  /deep/.el-input{
+    width: 180px !important;
+  }
+  /deep/.el-input__inner{
+    height: 30px;
+  }
+  /deep/.el-form-item {
+    margin-bottom: 10px;
+  }
+  /deep/.el-form-item__content {
+    display: flex;
+    .el-input {
+      width: 240px;
+      margin-right: 10px;
+    }
+  }
+}
+/deep/.el-pagination.is-background .el-pager li:not(.disabled).active{
+  background-color: #0195ff !important;
+}
+</style>

+ 861 - 0
src/pages/plantGuard/waterPrice/waterindex.vue

@@ -0,0 +1,861 @@
+<!-- 水价示范点 -->
+<template>
+  <div class="inner">
+    <div class="mapCover">
+      <div id="container">加载数据,请稍候...</div>
+    </div>
+    <div class="mapTypebox">
+      <el-radio-group v-model="mapType" @change="changeMapType">
+        <el-radio :label="0">标准图</el-radio>
+        <el-radio :label="1">卫星图{{ sidebarSJIndex }}</el-radio>
+      </el-radio-group>
+    </div>
+    <!-- <sidebarSJ :sidebarSJIndex="sidebarSJIndex"></sidebarSJ> -->
+    <div class="mapinfo">
+      <div class="mapinfo_btn">
+        <div @click="drawer = !drawer">
+          <img
+            src="../../../../static/images/waterindex/right.png"
+            alt=""
+            v-if="drawer"
+          />
+          <img
+            src="../../../../static/images/waterindex/left.png"
+            alt=""
+            v-else
+          />
+        </div>
+      </div>
+      <div class="mapinfo_info" v-if="drawer">
+        <div class="mapinfo_info_base">
+          <div class="mapinfo_base_title">
+            <div class="base_title_select">
+              <el-select
+                v-model="optionsvalue"
+                placeholder="请选择"
+                size="mini"
+                @change="basechange"
+              >
+                <el-option
+                  v-for="item in options"
+                  :key="item.value"
+                  :label="item.label"
+                  :value="item.value"
+                >
+                </el-option>
+              </el-select>
+              <img
+                src="../../../../static/images/jiantou.png"
+                alt=""
+                @click="tobase"
+              />
+            </div>
+            <div class="base_line">
+              <p></p>
+            </div>
+            <div class="base_info">
+              <div
+                class="base_info_item"
+                v-for="(item, index) in baseinfodata"
+                :key="index"
+              >
+                <img
+                  :src="
+                    '../../../../static/images/waterindex/' +
+                    (index + 1) +
+                    '.png'
+                  "
+                  alt=""
+                />
+                <div class="base_info_item_p">
+                  <p>{{ item.name }}</p>
+                  <p>{{ item.num }}</p>
+                </div>
+              </div>
+            </div>
+          </div>
+          <div class="mapinfo_base_body">
+            <div class="base_body_title">
+              <p>能耗统计</p>
+              <img src="../../../../static/images/jiantou.png" alt="" />
+            </div>
+            <div class="base_line">
+              <p></p>
+            </div>
+            <highcharts
+              class="highcharts"
+              :options="hisoptions"
+              v-if="Object.keys(hisoptions).length > 0"
+            ></highcharts>
+          </div>
+          <div class="mapinfo_base_footer">
+            <div class="base_body_title">
+              <p>年计划对比</p>
+              <img src="../../../../static/images/jiantou.png" alt="" />
+            </div>
+            <div class="base_line">
+              <p></p>
+            </div>
+            <highcharts
+              class="highcharts2"
+              :options="hiscolumn"
+              v-if="Object.keys(hiscolumn).length > 0"
+            ></highcharts>
+          </div>
+        </div>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+//这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等)
+//例如:import 《组件名称》 from '《组件路径》';
+import HighCharts from "highcharts";
+import DateSearch from "@/components/highStand/timeSearch";
+import sidebarSJ from "@/components/highStand/sidebarSJ";
+export default {
+  //import引入的组件需要注入到对象中才能使用
+  components: {
+    sidebarSJ,
+  },
+  data() {
+    //这里存放数据
+    return {
+      map: null,
+      center: [116.3683244, 39.915085],
+      zoom: 4.5,
+      tileLayer1: null,
+      tileLayer2: null,
+      mapType: 1,
+      equipStyleObject: [
+        {
+          url: require("@/assets/images/home/mapView/scd.png"), // 设别类型0
+          size: new AMap.Size(25, 15), // 图标大小
+          anchor: new AMap.Pixel(5, 5), // 图标显示位置偏移量,基准点为图标左上角
+        },
+        {
+          url: require("@/assets/images/home/mapView/scd.png"), // 设别类型1
+          size: new AMap.Size(25, 15), // 图标大小
+          anchor: new AMap.Pixel(5, 5), // 图标显示位置偏移量,基准点为图标左上角
+        },
+        {
+          url: require("@/assets/images/home/mapView/scd.png"), // 设别类型2
+          size: new AMap.Size(25, 15), // 图标大小
+          anchor: new AMap.Pixel(5, 5), // 图标显示位置偏移量,基准点为图标左上角
+        },
+        {
+          url: require("@/assets/images/home/mapView/cbd.png"), // 设别类型3
+          size: new AMap.Size(25, 15), // 图标大小
+          anchor: new AMap.Pixel(5, 5), // 图标显示位置偏移量,基准点为图标左上角
+        },
+        {
+          url: require("@/assets/images/home/mapView/xyq.png"), // 设别类型4
+          size: new AMap.Size(25, 15), // 图标大小
+          anchor: new AMap.Pixel(5, 5), // 图标显示位置偏移量,基准点为图标左上角
+        },
+        {
+          url: require("@/assets/images/home/mapView/qxz.png"), // 设别类型5
+          size: new AMap.Size(25, 15), // 图标大小
+          anchor: new AMap.Pixel(5, 5), // 图标显示位置偏移量,基准点为图标左上角
+        },
+        {
+          url: require("@/assets/images/home/mapView/jk.png"), // 设别类型6
+          size: new AMap.Size(25, 15), // 图标大小
+          anchor: new AMap.Pixel(5, 5), // 图标显示位置偏移量,基准点为图标左上角
+        },
+        {
+          url: require("@/assets/images/home/mapView/bzy.png"), // 设别类型7
+          size: new AMap.Size(25, 15), // 图标大小
+          anchor: new AMap.Pixel(5, 5), // 图标显示位置偏移量,基准点为图标左上角
+        },
+        {
+          url: require("@/assets/images/home/mapView/bzy.png"), // 设别类型8
+          size: new AMap.Size(25, 15), // 图标大小
+          anchor: new AMap.Pixel(5, 5), // 图标显示位置偏移量,基准点为图标左上角
+        },
+        {
+          url: require("@/assets/images/home/mapView/tccb.png"), // 设别类型9
+          size: new AMap.Size(25, 15), // 图标大小
+          anchor: new AMap.Pixel(5, 5), // 图标显示位置偏移量,基准点为图标左上角
+        },
+      ],
+      currentWindow: {
+        position: [0, 0],
+        content: "",
+        events: {},
+        visible: false,
+      },
+      queryInfo: {
+        equip_id: "",
+        d_id: "",
+        type: "",
+        model: "",
+      },
+      markers: [
+        {
+          addr: [93.659071, 35.133279],
+          projectname: "21号井基地",
+        },
+        {
+          addr: [89.791884, 41.734331],
+          projectname: "22号井基地",
+        },
+        {
+          addr: [112.028212, 36.628648],
+          projectname: "23号井基地",
+        },
+      ],
+      markersStatus: {
+        iconOffset: [-70, -70],
+        textOffset: [-35, 0],
+        icon: require("../../../../static/images/icon6.svg"),
+        events: {
+          click: (e) => {
+            console.log(this.markers[e.target.Ce.vid].addr);
+
+            var lnglat = this.markers[e.target.Ce.vid].addr;
+            this.switchWindow(lnglat, 1);
+          },
+          dragend: (e) => {},
+        },
+        visible: true,
+        draggable: false,
+      },
+      markerList: [],
+      marker: null,
+      txtLabels: [],
+      windows: [
+        {
+          position: [104.205946, 30.254208],
+          content:
+            '<div class="window0"><img src="../../../../static/images/windows0.png"><div class="btn btn1"></div><div class="btn btn2"></div></div>',
+          visible: false,
+          events: {
+            close() {
+              console.log("close infowindow1");
+            },
+          },
+        },
+      ],
+      infoWindow: null,
+      sidebarSJIndex: 0,
+      drawer: false, //详细菜单
+      optionsvalue: "21号井基地",
+      options: [
+        {
+          value: "选项1",
+          label: "21号井基地",
+        },
+        {
+          value: "选项2",
+          label: "22号井基地",
+        },
+        {
+          value: "选项3",
+          label: "23号井基地",
+        }
+      ],
+      baseinfodata: [
+        //基地信息模拟数据
+        {
+          name: "水井数目(口)",
+          num: "6438",
+        },
+        {
+          name: "使用电量(度)",
+          num: "6438",
+        },
+        {
+          name: "使用水量(方)",
+          num: "6438",
+        },
+        {
+          name: "用户数量(户)",
+          num: "6438",
+        },
+        {
+          name: "灌溉面积(亩)",
+          num: "6438",
+        },
+        {
+          name: "亩均水量(方)",
+          num: "6438",
+        },
+        {
+          name: "使用金额(元)",
+          num: "6438",
+        },
+        {
+          name: "亩均金额(元)",
+          num: "6438",
+        },
+        {
+          name: "计划水量(方)",
+          num: "6438",
+        },
+      ],
+      hisoptions: [], //折线图
+      hiscolumn: {
+        //柱状图
+        chart: {
+          type: "column",
+          zoomType: "x",
+          backgroundColor: "rgba(0,0,0,0)",
+        },
+        title: "none",
+        subtitle: "none",
+        credits: {
+          enabled: false,
+        },
+        legend: {
+          align: "right",
+          verticalAlign: "top",
+          itemStyle: {
+            color: "#fff",
+            fontSize: "10px",
+          },
+        },
+        xAxis: {
+          categories: ["2017", "2018", "2019", "2020", "2021"],
+          crosshair: true,
+          lineColor: "#fff",
+          labels: {
+            style: {
+              color: "#fff",
+            },
+          },
+        },
+        yAxis: {
+          min: 0,
+          title: "none",
+          lineColor: "#fff",
+          labels: {
+            style: {
+              color: "#fff",
+            },
+          },
+        },
+        tooltip: {
+          // head + 每个 point + footer 拼接成完整的 table
+          headerFormat:
+            '<span style="font-size:10px">{point.key}</span><table>',
+          pointFormat:
+            '<tr><td style="color:{series.color};padding:0">{series.name}: </td>' +
+            '<td style="padding:0"><b>{point.y:.1f} mm</b></td></tr>',
+          footerFormat: "</table>",
+          shared: true,
+          useHTML: true,
+        },
+        plotOptions: {
+          column: {
+            borderWidth: 0,
+          },
+        },
+        series: [
+          {
+            name: "实际用水量(方)",
+            data: [49.9, 71.5, 106.4, 129.2, 144.0],
+          },
+          {
+            name: "计划用水量(方)",
+            data: [83.6, 78.8, 98.5, 93.4, 106.0],
+          },
+          {
+            name: "计划亩均(方)",
+            data: [48.9, 38.8, 39.3, 41.4, 47.0],
+          },
+          {
+            name: "实际亩均(方)",
+            data: [42.4, 33.2, 34.5, 39.7, 52.6],
+          },
+        ],
+        colors: ["#00e29d", "#6cbbff", "#ff3f3f", "#f44ef2"],
+      },
+      ChartData: [], //折线图数据
+    };
+  },
+  //监听属性 类似于data概念
+  computed: {},
+  //监控data中的数据变化
+  watch: {},
+  //方法集合
+  methods: {
+    initMap() {
+      //创建地图
+      var that = this;
+      this.map = new AMap.Map("container", {
+        resizeEnable: true,
+        center: that.center,
+        zoom: that.zoom,
+        layers: [
+          new AMap.TileLayer.Satellite({
+            zIndex: 9,
+          }),
+        ], //加载卫星图
+      });
+      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=6e5cb1bfc017afcac7a21836cf81a884&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=6e5cb1bfc017afcac7a21836cf81a884&x=[x]&y=[y]&l=[z]",
+        zIndex: 101,
+      });
+      this.map.add(this.tileLayer1);
+      this.map.add(this.tileLayer2);
+      this.getEquipList();
+    },
+    changeMapType(val) {
+      if (val == 0) {
+        this.tileLayer1.hide();
+        this.tileLayer2.hide();
+      } else {
+        this.tileLayer1.show();
+        this.tileLayer2.show();
+      }
+    },
+
+    getEquipList() {
+      this.map.remove(this.markerList);
+      this.markerList = [];
+      var icon = "../../../../static/images/icon5.svg";
+      this.markers.forEach((item) => {
+        this.marker = new AMap.Marker({
+          position: new AMap.LngLat(item.addr[0], item.addr[1]), // 经纬度对象,也可以是经纬度构成的一维数组[116.39, 39.9]
+          icon: new AMap.Icon({
+            image: icon,
+            size: new AMap.Size(33, 40), //图标大小
+            imageSize: new AMap.Size(33, 40),
+          }),
+          offset: new AMap.Pixel(-13, -30),
+          title: item["projectname"],
+        });
+        this.markerList.push(this.marker);
+        AMap.event.addListener(this.marker, "click", (event) => {
+          // this.switchWindow(item.addr, 1);
+          this.drawer = true;
+          this.optionsvalue = item["projectname"]
+          console.log(event, item);
+        });
+        AMap.event.addListener(this.marker, "dblclick", (event) => {
+          this.$router.push("/plantGuard/WaterIndexBase");
+          console.log(event, item);
+        });
+        AMap.event.addListener(this.map, "click", (event) => {
+          if (this.infoWindow) {
+            this.infoWindow.close();
+          }
+        });
+      });
+
+      this.$nextTick(() => {
+        this.map.add(this.markerList);
+        this.map.setFitView();
+      });
+    },
+    equipMarkerClick(item) {},
+    switchWindow(addr, flag) {
+      this.infoWindow = new AMap.InfoWindow({
+        isCustom: true, //使用自定义窗
+        offset: new AMap.Pixel(130, -20),
+      });
+      this.infoWindow.setContent(
+        '<div class="window0"><img src="../../../../static/images/windows1.png"><div class="btn btn1" @click="detial1"></div><div class="btn btn2" @click="detial2"></div></div>'
+      );
+      this.infoWindow.open(this.map, addr);
+    },
+    detial1() {
+      this.sidebarSJIndex = 0;
+    },
+    detial2() {
+      this.sidebarSJIndex = 1;
+    },
+    optionFn(ChartData) {
+      //数据折线图
+      return {
+        chart: {
+          type: "areaspline",
+          zoomType: "x",
+          backgroundColor: "rgba(0,0,0,0)",
+        },
+        title: {
+          text: "",
+          align: "left",
+        },
+        lang: {
+          noData: "暂无数据",
+        },
+        noData: {
+          style: {
+            fontWeight: "bold",
+            fontSize: "15px",
+            color: "#303030",
+          },
+        },
+        xAxis: {
+          crosshair: true, //十字基准线
+          type: "datetime",
+          dateTimeLabelFormats: {
+            //根据时间间距X轴自动显示哪种格式
+            millisecond: "%H:%M:%S.%L",
+            second: "%H:%M:%S",
+            minute: "%H:%M",
+            hour: "%H:%M",
+            day: "%m-%d",
+            week: "%m-%d",
+            month: "%Y-%m",
+            year: "%Y",
+          },
+          lineColor: "#fff",
+          labels: {
+            style: {
+              color: "#fff",
+            },
+          },
+        },
+        yAxis: {
+          title: {
+            text: "",
+          },
+          lineColor: "#fff",
+          labels: {
+            style: {
+              color: "#fff",
+            },
+          },
+        },
+        legend: {
+          align: "right",
+          verticalAlign: "top",
+          itemStyle: {
+            color: "#fff",
+          },
+        },
+        plotOptions: {
+          series: {
+            label: {
+              connectorAllowed: false,
+            },
+            pointStart: 2010,
+          },
+        },
+        series: ChartData,
+        colors: ["#00e29d", "#6cbbff", "#ff3f3f"],
+        credits: {
+          //去掉默认的highcharts.com
+          enabled: false,
+        },
+        tooltip: {
+          // crosshairs: true,
+          shared: true, //折线共享
+          headerFormat: "<b>{point.x:%Y-%m-%e %H:%M:%S}</b><br>",
+        },
+        responsive: {
+          rules: [
+            {
+              condition: {
+                maxWidth: 500,
+              },
+              chartOptions: {
+                // legend: {
+                //   layout: "horizontal",
+                //   align: "center",
+                //   verticalAlign: "bottom",
+                // },
+              },
+            },
+          ],
+        },
+        previous: 0,
+      };
+    },
+    statistical() {
+      this.ChartData = [
+        {
+          name: "总金额",
+          data: [],
+        },
+        {
+          name: "亩均水量",
+          data: [],
+        },
+        {
+          name: "总使用水量",
+          data: [],
+        },
+      ];
+      this.$axios({
+        method: "POST",
+        url: "/api/api_gateway?method=forecast.worm_lamp.device_polyline_data",
+        data: this.qs.stringify({
+          device_type_id: 3,
+          d_id: "819",
+          end_time: Math.floor(+new Date/1000),
+          start_time: Math.floor(+new Date/1000-24*60*60*1000),
+        }),
+      }).then((res) => {
+        this.dataLoading = false;
+        if (res.data.data.length) {
+          var data = res.data.data;
+          for (let item of data) {
+            this.ChartData[0].data.unshift([
+              item.addtime * 1000 + 8 * 3600000,
+              Number(item.temperature),
+            ]);
+            this.ChartData[1].data.unshift([
+              item.addtime * 1000 + 8 * 3600000,
+              Number(item.humidity),
+            ]);
+            this.ChartData[2].data.unshift([
+              item.addtime * 1000 + 8 * 3600000,
+              Number(item.others),
+            ]);
+          }
+          this.hisoptions = this.optionFn(this.ChartData);
+          // this.loadingInstance.close();
+        } else {
+          this.hisoptions = {};
+        }
+      });
+    },
+    refreshData() {
+      HighCharts.setOptions({
+        // 所有语言文字相关配置都设置在 lang 里
+        lang: {
+          resetZoom: "刷新",
+          resetZoomTitle: "重置缩放比例",
+        },
+      });
+    },
+    tobase() {//跳转页面--基地详情
+      this.$router.push("/plantGuard/WaterIndexBase");
+    },
+    basechange(e){//基地切换
+      console.log(Number(e.slice(-1))-1)
+      this.map.setCenter(this.markers[Number(e.slice(-1))-1].addr);
+        this.map.setZoom(10)
+    }
+  },
+  //生命周期 - 创建完成(可以访问当前this实例)
+  created() {},
+  //生命周期 - 挂载完成(可以访问DOM元素)
+  mounted() {
+    this.initMap();
+    console.log(this.markers);
+    this.currentWindow = this.windows[0];
+    this.statistical();
+    this.refreshData();
+  },
+  beforeCreate() {}, //生命周期 - 创建之前
+  beforeMount() {}, //生命周期 - 挂载之前
+  beforeUpdate() {}, //生命周期 - 更新之前
+  updated() {}, //生命周期 - 更新之后
+  beforeDestroy() {}, //生命周期 - 销毁之前
+  destroyed() {}, //生命周期 - 销毁完成
+  activated() {}, //如果页面有keep-alive缓存功能,这个函数会触发
+};
+</script>
+<style scoped lang="less">
+.inner {
+  height: 100%;
+  position: relative;
+  .mapCover,
+  #container {
+    height: 100%;
+  }
+  .mapTypebox {
+    position: absolute;
+    right: 20px;
+    top: 30px;
+    background: #fff;
+    padding: 5px;
+    border-radius: 5px;
+  }
+  .mapinfo {
+    height: 100%;
+    position: absolute;
+    top: 0;
+    right: 0;
+    display: flex;
+    z-index: 999;
+    .mapinfo_btn {
+      height: 100%;
+      display: flex;
+      flex-direction: column;
+      justify-content: space-around;
+    }
+    .mapinfo_info {
+      width: 500px;
+      height: 100%;
+      background-color: rgba(0, 14, 57, 0.8);
+      .mapinfo_info_base {
+        padding: 20px;
+        .base_line {
+          width: 100%;
+          height: 0px;
+          background-color: #747474;
+          margin-top: 10px;
+          padding: 0.5px;
+          box-sizing: border-box;
+          p {
+            width: 10%;
+            height: 2px;
+            margin-top: -1.5px;
+            background-color: #04d5e8;
+            border-radius: 4px;
+          }
+        }
+        .mapinfo_base_title {
+          width: 100%;
+          .base_title_select {
+            width: 100%;
+            display: flex;
+            justify-content: space-between;
+            img {
+              width: 36px;
+              height: 14px;
+              margin-top: 5px;
+            }
+            /deep/.el-input__inner {
+              background-color: transparent;
+              border: none;
+              color: #e1ffff;
+              width: 150px;
+              font-size: 16px;
+              padding-left: 0;
+            }
+          }
+          .base_info {
+            display: flex;
+            margin-top: 10px;
+            flex-wrap: wrap;
+            justify-content: space-between;
+            .base_info_item {
+              display: flex;
+              margin-top: 20px;
+              img {
+                width: 50px;
+                height: 48px;
+                margin-right: 10px;
+              }
+              .base_info_item_p {
+                color: #fff;
+                p:first-child {
+                  color: #92c2f3;
+                }
+                p:last-child {
+                  font-size: 22px;
+                  background: linear-gradient(to top, #069dff, #09fdff);
+                  -webkit-background-clip: text;
+                  color: transparent;
+                }
+              }
+            }
+          }
+        }
+        .mapinfo_base_body {
+          margin-top: 20px;
+          .base_body_title {
+            display: flex;
+            justify-content: space-between;
+            p {
+              font-size: 16px;
+              color: #e1ffff;
+            }
+            img {
+              width: 36px;
+              height: 14px;
+              // margin-top: 5px;
+            }
+          }
+          .highcharts {
+            width: 100%;
+            height: 180px;
+            margin-top: 20px;
+          }
+        }
+        .mapinfo_base_footer {
+          margin-top: 10px;
+          .base_body_title {
+            display: flex;
+            justify-content: space-between;
+            p {
+              font-size: 16px;
+              color: #e1ffff;
+            }
+            img {
+              width: 36px;
+              height: 14px;
+              // margin-top: 5px;
+            }
+          }
+          .highcharts2 {
+            width: 100%;
+            height: 180px;
+            margin-top: 20px;
+          }
+        }
+      }
+    }
+  }
+}
+// 标注点提示文本
+/deep/.amap-marker-label {
+  background: transparent;
+  border: none;
+  color: red;
+  font-size: 14px;
+  font-weight: 700;
+  text-shadow: #fff 1px 0 0, #fff 0 1px 0, #fff -1px 0 0, #fff 0 -1px 0;
+}
+/deep/.amap-marker-label.blueMarker {
+  color: #ffa200;
+}
+/deep/.el-radio__input.is-checked .el-radio__inner {
+  border-color: #0195ff;
+  background: #0195ff;
+}
+/deep/.el-radio__input.is-checked + .el-radio__label {
+  color: #0195ff;
+}
+
+/deep/.window0 {
+  position: relative;
+  .btn {
+    position: absolute;
+    width: 77px;
+    height: 32px;
+    cursor: pointer;
+  }
+  .btn1 {
+    bottom: 20px;
+    left: 27px;
+  }
+  .btn2 {
+    left: 119px;
+    bottom: 20px;
+  }
+}
+</style>

+ 863 - 0
src/pages/plantGuard/waterPrice/waterindexbase.vue

@@ -0,0 +1,863 @@
+<!-- 基地详情 -->
+<template>
+  <div class="inner">
+    <div class="mapCover">
+      <div id="container">加载数据,请稍候...</div>
+    </div>
+    <div class="mapTypebox">
+      <el-radio-group v-model="mapType" @change="changeMapType">
+        <el-radio :label="0">标准图</el-radio>
+        <el-radio :label="1">卫星图{{ sidebarSJIndex }}</el-radio>
+      </el-radio-group>
+    </div>
+    <waterindexmodule ref="waterindexmodule"></waterindexmodule>
+    <div class="mapinfo">
+      <div class="mapinfo_btn">
+        <div @click="drawer = !drawer">
+          <img
+            src="../../../../static/images/waterindex/right.png"
+            alt=""
+            v-if="drawer"
+          />
+          <img
+            src="../../../../static/images/waterindex/left.png"
+            alt=""
+            v-else
+          />
+        </div>
+      </div>
+      <div class="mapinfo_info" v-show="drawer">
+        <div class="mapinfo_info_base">
+          <div class="mapinfo_base_title">
+            <div class="base_title_select">
+              <p>五号喷井管<span>【关闭】</span></p>
+              <img src="../../../../static/images/jiantou.png" alt="" />
+            </div>
+            <div class="base_line">
+              <p></p>
+            </div>
+            <div class="base_info">
+              <div class="base_info_item">
+                <div class="base_info_item_L">设备号</div>
+                <div class="base_info_item_R">888888888</div>
+              </div>
+              <div class="base_info_item">
+                <div class="base_info_item_L">所属村庄</div>
+                <div class="base_info_item_R">李家村</div>
+              </div>
+              <div class="base_info_item">
+                <div class="base_info_item_L">已用电量</div>
+                <div class="base_info_item_R">50度</div>
+              </div>
+              <div class="base_info_item">
+                <div class="base_info_item_L">已用水量</div>
+                <div class="base_info_item_R">200方</div>
+              </div>
+              <div class="base_info_item">
+                <div class="base_info_item_L">关联卡数</div>
+                <div class="base_info_item_R">55张</div>
+              </div>
+              <div class="base_info_item">
+                <div class="base_info_item_L">建立日期</div>
+                <div class="base_info_item_R">2021-11-08 14:00:00</div>
+              </div>
+              <div class="base_info_item">
+                <div class="base_info_item_L">用水额度</div>
+                <div class="base_info_item_R">5000吨</div>
+              </div>
+              <div class="base_info_item">
+                <div class="base_info_item_L">剩余水量</div>
+                <div class="base_info_item_R">50吨</div>
+              </div>
+              <div class="base_info_item">
+                <div class="base_info_item_L">详细地址</div>
+                <div class="base_info_item_R">郑州市金水区瀚海北金</div>
+              </div>
+            </div>
+          </div>
+          <div class="mapinfo_base_body">
+            <div class="base_body_title">
+              <p>使用统计</p>
+              <img src="../../../../static/images/jiantou.png" alt="" />
+            </div>
+            <div class="base_line">
+              <p></p>
+            </div>
+            <div class="base_body_info">
+              <div
+                id="progress"
+                ref="progress"
+                style="width: 150px; height: 150px"
+              ></div>
+              <div
+                id="progress2"
+                ref="progress2"
+                style="width: 150px; height: 150px"
+              ></div>
+              <div
+                id="progress3"
+                ref="progress3"
+                style="width: 150px; height: 150px"
+              ></div>
+            </div>
+          </div>
+          <div class="mapinfo_base_footer">
+            <div class="base_body_title">
+              <p>消费记录<span>2021/11/9</span></p>
+              <img src="../../../../static/images/jiantou.png" alt="" />
+            </div>
+            <div class="base_line">
+              <p></p>
+            </div>
+            <div class="base_footer_table">
+              <el-table :data="basetabledata" style="width: 100%">
+                <el-table-column prop="statetime" label="开始时间">
+                  <!-- <template slot-scope="scope">{{
+                    (scope.row.statetime * 1000) | formatTime
+                  }}</template> -->
+                </el-table-column>
+                <el-table-column prop="iccid" label="卡号" width="120">
+                </el-table-column>
+                <el-table-column prop="useelectricity" label="使用电量">
+                </el-table-column>
+                <el-table-column prop="usewater" label="使用水量">
+                </el-table-column>
+                <el-table-column prop="usemoney" label="使用金钱">
+                </el-table-column>
+              </el-table>
+            </div>
+          </div>
+        </div>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+//这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等)
+import echarts from "echarts";
+import waterindexmodule from "./waterindexmodule";
+export default {
+  //import引入的组件需要注入到对象中才能使用
+  components: {
+    waterindexmodule,
+  },
+  data() {
+    //这里存放数据
+    return {
+      center: [112.028212, 36.628648],
+      zoom: 10,
+      mapType: 1,
+      tileLayer1: null,
+      tileLayer2: null,
+      sidebarSJIndex: 0,
+      map: null,
+      markerList: [],
+      marker: null,
+      drawer: true, //弹框
+      basetabledata: [
+        //表格数据
+        {
+          statetime: "10:50", //开始时间
+          iccid: "88454515151", //卡号
+          usewater: "200方", //使用水量(方)
+          useelectricity: "200度", //使用电量(度)
+          usemoney: "200元", //使用金钱
+        },
+        {
+          statetime: "10:50", //开始时间
+          iccid: "88454515151", //卡号
+          usewater: "200方", //使用水量(方)
+          useelectricity: "200度", //使用电量(度)
+          usemoney: "200元", //使用金钱
+        },
+        {
+          statetime: "10:50", //开始时间
+          iccid: "88454515151", //卡号
+          usewater: "200方", //使用水量(方)
+          useelectricity: "200度", //使用电量(度)
+          usemoney: "200元", //使用金钱
+        },
+        {
+          statetime: "10:50", //开始时间
+          iccid: "88454515151", //卡号
+          usewater: "200方", //使用水量(方)
+          useelectricity: "200度", //使用电量(度)
+          usemoney: "200元", //使用金钱
+        },
+        {
+          statetime: "10:50", //开始时间
+          iccid: "88454515151", //卡号
+          usewater: "200方", //使用水量(方)
+          useelectricity: "200度", //使用电量(度)
+          usemoney: "200元", //使用金钱
+        },
+        {
+          statetime: "10:50", //开始时间
+          iccid: "88454515151", //卡号
+          usewater: "200方", //使用水量(方)
+          useelectricity: "200度", //使用电量(度)
+          usemoney: "200元", //使用金钱
+        },
+        {
+          statetime: "10:50", //开始时间
+          iccid: "88454515151", //卡号
+          usewater: "200方", //使用水量(方)
+          useelectricity: "200度", //使用电量(度)
+          usemoney: "200元", //使用金钱
+        },
+        {
+          statetime: "10:50", //开始时间
+          iccid: "88454515151", //卡号
+          usewater: "200方", //使用水量(方)
+          useelectricity: "200度", //使用电量(度)
+          usemoney: "200元", //使用金钱
+        },
+      ],
+    };
+  },
+  //监听属性 类似于data概念
+  computed: {},
+  //监控data中的数据变化
+  watch: {},
+  //方法集合
+  methods: {
+    intcharts(that, item) {
+      let angle = 0; //角度,用来做简单的动画效果的
+      let value = (item.num / item.nums) * 100;
+      var option = {
+        title: {
+          text: "{c|" + item.name + "}\n{a|" + item.num + "}\n{c|元}",
+          x: "center",
+          y: "center",
+          textStyle: {
+            rich: {
+              a: {
+                fontSize: 18,
+                color: "#29EEF3",
+                lineHeight: "30",
+              },
+
+              c: {
+                fontSize: 12,
+                color: "#ffffff",
+              },
+            },
+          },
+        },
+        legend: false,
+        series: [
+          {
+            name: "ring5",
+            type: "custom",
+            coordinateSystem: "none",
+            renderItem: function (params, api) {
+              return {
+                type: "arc",
+                shape: {
+                  cx: api.getWidth() / 2,
+                  cy: api.getHeight() / 2,
+                  r: (Math.min(api.getWidth(), api.getHeight()) / 2) * 0.7,
+                  startAngle: ((0 + angle) * Math.PI) / 180,
+                  endAngle: ((90 + angle) * Math.PI) / 180,
+                },
+                style: {
+                  stroke: "#0CD3DB",
+                  fill: "transparent",
+                  lineWidth: 1.5,
+                },
+                silent: true,
+              };
+            },
+            data: [0],
+          },
+          {
+            name: "ring5",
+            type: "custom",
+            coordinateSystem: "none",
+            renderItem: function (params, api) {
+              return {
+                type: "arc",
+                shape: {
+                  cx: api.getWidth() / 2,
+                  cy: api.getHeight() / 2,
+                  r: (Math.min(api.getWidth(), api.getHeight()) / 2) * 0.7,
+                  startAngle: ((180 + angle) * Math.PI) / 180,
+                  endAngle: ((270 + angle) * Math.PI) / 180,
+                },
+                style: {
+                  stroke: "#0CD3DB",
+                  fill: "transparent",
+                  lineWidth: 1.5,
+                },
+                silent: true,
+              };
+            },
+            data: [0],
+          },
+          {
+            name: "ring5",
+            type: "custom",
+            coordinateSystem: "none",
+            renderItem: function (params, api) {
+              return {
+                type: "arc",
+                shape: {
+                  cx: api.getWidth() / 2,
+                  cy: api.getHeight() / 2,
+                  r: (Math.min(api.getWidth(), api.getHeight()) / 2) * 0.8,
+                  startAngle: ((270 + -angle) * Math.PI) / 180,
+                  endAngle: ((40 + -angle) * Math.PI) / 180,
+                },
+                style: {
+                  stroke: "#0CD3DB",
+                  fill: "transparent",
+                  lineWidth: 1.5,
+                },
+                silent: true,
+              };
+            },
+            data: [0],
+          },
+          {
+            name: "ring5",
+            type: "custom",
+            coordinateSystem: "none",
+            renderItem: function (params, api) {
+              return {
+                type: "arc",
+                shape: {
+                  cx: api.getWidth() / 2,
+                  cy: api.getHeight() / 2,
+                  r: (Math.min(api.getWidth(), api.getHeight()) / 2) * 0.8,
+                  startAngle: ((90 + -angle) * Math.PI) / 180,
+                  endAngle: ((220 + -angle) * Math.PI) / 180,
+                },
+                style: {
+                  stroke: "#0CD3DB",
+                  fill: "transparent",
+                  lineWidth: 1.5,
+                },
+                silent: true,
+              };
+            },
+            data: [0],
+          },
+          {
+            name: "ring5",
+            type: "custom",
+            coordinateSystem: "none",
+            renderItem: function (params, api) {
+              let x0 = api.getWidth() / 2;
+              let y0 = api.getHeight() / 2;
+              let r = (Math.min(api.getWidth(), api.getHeight()) / 2) * 0.8;
+              let point = getCirlPoint(x0, y0, r, 90 + -angle);
+              return {
+                type: "circle",
+                shape: {
+                  cx: point.x,
+                  cy: point.y,
+                  r: 4,
+                },
+                style: {
+                  stroke: "#0CD3DB", //粉
+                  fill: "#0CD3DB",
+                },
+                silent: true,
+              };
+            },
+            data: [0],
+          },
+          {
+            name: "ring5", //绿点
+            type: "custom",
+            coordinateSystem: "none",
+            renderItem: function (params, api) {
+              let x0 = api.getWidth() / 2;
+              let y0 = api.getHeight() / 2;
+              let r = (Math.min(api.getWidth(), api.getHeight()) / 2) * 0.8;
+              let point = getCirlPoint(x0, y0, r, 270 + -angle);
+              return {
+                type: "circle",
+                shape: {
+                  cx: point.x,
+                  cy: point.y,
+                  r: 4,
+                },
+                style: {
+                  stroke: "#0CD3DB", //绿
+                  fill: "#0CD3DB",
+                },
+                silent: true,
+              };
+            },
+            data: [0],
+          },
+          {
+            name: "吃猪肉频率",
+            type: "pie",
+            radius: ["60%", "65%"],
+            silent: true,
+            clockwise: true,
+            startAngle: 90,
+            z: 0,
+            zlevel: 0,
+            label: {
+              normal: {
+                position: "center",
+              },
+            },
+            data: [
+              {
+                value: value,
+                name: "",
+                itemStyle: {
+                  normal: {
+                    color: {
+                      // 完成的圆环的颜色
+                      colorStops: [
+                        {
+                          offset: 0,
+                          color: "#4FADFD", // 0% 处的颜色
+                        },
+                        {
+                          offset: 1,
+                          color: "#28E8FA", // 100% 处的颜色
+                        },
+                      ],
+                    },
+                  },
+                },
+              },
+              {
+                value: 100 - value,
+                name: "",
+                label: {
+                  normal: {
+                    show: false,
+                  },
+                },
+                itemStyle: {
+                  normal: {
+                    color: "#173164",
+                  },
+                },
+              },
+            ],
+          },
+
+          {
+            name: "",
+            type: "gauge",
+            radius: "65%",
+            center: ["50%", "50%"],
+            startAngle: 0,
+            endAngle: 359.9,
+            splitNumber: 8,
+            hoverAnimation: true,
+            axisTick: {
+              show: false,
+            },
+            splitLine: {
+              length: 60,
+              lineStyle: {
+                width: 5,
+                color: "rgba(0, 14, 57, 0)",
+              },
+            },
+            axisLabel: {
+              show: false,
+            },
+            pointer: {
+              show: false,
+            },
+            axisLine: {
+              lineStyle: {
+                opacity: 0,
+              },
+            },
+            detail: {
+              show: false,
+            },
+            data: [
+              {
+                value: 0,
+                name: "",
+              },
+            ],
+          },
+        ],
+      };
+
+      //获取圆上面某点的坐标(x0,y0表示坐标,r半径,angle角度)
+      function getCirlPoint(x0, y0, r, angle) {
+        let x1 = x0 + r * Math.cos((angle * Math.PI) / 180);
+        let y1 = y0 + r * Math.sin((angle * Math.PI) / 180);
+        return {
+          x: x1,
+          y: y1,
+        };
+      }
+
+      function draw() {
+        angle = angle + 3;
+        that.setOption(option, true);
+        //window.requestAnimationFrame(draw);
+      }
+
+      setInterval(function () {
+        //用setInterval做动画感觉有问题
+        draw();
+      }, 100);
+    },
+    initMap() {
+      //创建地图
+      var that = this;
+      this.map = new AMap.Map("container", {
+        resizeEnable: true,
+        center: that.center,
+        zoom: that.zoom,
+        layers: [
+          new AMap.TileLayer.Satellite({
+            zIndex: 9,
+          }),
+        ], //加载卫星图
+      });
+      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=6e5cb1bfc017afcac7a21836cf81a884&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=6e5cb1bfc017afcac7a21836cf81a884&x=[x]&y=[y]&l=[z]",
+        zIndex: 101,
+      });
+      this.map.add(this.tileLayer1);
+      this.map.add(this.tileLayer2);
+      this.getEquipList();
+    },
+    changeMapType(val) {
+      if (val == 0) {
+        this.tileLayer1.hide();
+        this.tileLayer2.hide();
+      } else {
+        this.tileLayer1.show();
+        this.tileLayer2.show();
+      }
+    },
+    getEquipList() {
+      this.markers = [
+        {
+          addr: [112.028212, 36.628648],
+          projectname: "23号井",
+        },
+      ];
+      this.map.remove(this.markerList);
+      this.markerList = [];
+      var icon = "../../../../static/images/icon5.svg";
+      this.markers.forEach((item) => {
+        this.marker = new AMap.Marker({
+          position: new AMap.LngLat(item.addr[0], item.addr[1]), // 经纬度对象,也可以是经纬度构成的一维数组[116.39, 39.9]
+          icon: new AMap.Icon({
+            image: icon,
+            size: new AMap.Size(33, 40), //图标大小
+            imageSize: new AMap.Size(33, 40),
+          }),
+          offset: new AMap.Pixel(-13, -30),
+          title: item["projectname"],
+        });
+        this.markerList.push(this.marker);
+        AMap.event.addListener(this.marker, "click", (event) => {
+          this.switchWindow(item.addr, 1);
+        });
+        AMap.event.addListener(this.map, "click", (event) => {
+          if (this.infoWindow) {
+            this.infoWindow.close();
+          }
+        });
+      });
+
+      this.$nextTick(() => {
+        this.map.add(this.markerList);
+        this.map.setFitView();
+      });
+    },
+    switchWindow(addr, flag) {
+      console.log(this.$refs.waterindexmodule);
+      this.infoWindow = new AMap.InfoWindow({
+        isCustom: true, //使用自定义窗
+        offset: new AMap.Pixel(130, -20),
+      });
+      // this.infoWindow.setContent(
+      //   '<div class="window0"><img src="../../../../static/images/windows1.png"><div class="btn btn1" @click="detial1"></div><div class="btn btn2" @click="detial2"></div></div>'
+      // );
+      // this.infoWindow.open(this.map, addr);
+      var obj = {
+        device_type_id: "11811611755", //设备id
+        LngLat: "112.028212,36.628648", //经纬度
+        waterlevel: "500m", //水位
+        Normofwater: "500m³", //定额水量
+        totalelectricity: "500度", //累计电量
+        totalwater: "200m³", //累计水量
+        addtime: "1636442672", //上报时间
+        onoff: false, //设备开关
+      };
+      this.$refs.waterindexmodule.initialize({
+        currEquip: obj,
+        visible: true,
+        infoWindow: this.infoWindow,
+      });
+      this.infoWindow.setContent(this.$refs.waterindexmodule.$el);
+      this.infoWindow.open(this.map, addr);
+      // if(event){
+      //   this.infoWindow.open(this.map, event.target.getPosition());
+      // }else{
+      //   this.infoWindow.open(this.map, item.lnglat);
+      // }
+    },
+  },
+  beforeCreate() {}, //生命周期 - 创建之前
+  //生命周期 - 创建完成(可以访问当前this实例)
+  created() {},
+  beforeMount() {}, //生命周期 - 挂载之前
+  //生命周期 - 挂载完成(可以访问DOM元素)
+  mounted() {
+    this.initMap();
+    var obj = {
+      name: "总消费",
+      num: "22358",
+      nums: "22358",
+    };
+    var obj2 = {
+      name: "电力消费",
+      num: "10061.1",
+      nums: "22358",
+    };
+    var obj3 = {
+      name: "水费消费",
+      num: "12296.9",
+      nums: "22358",
+    };
+    this.myChart = echarts.init(document.getElementById("progress"));
+    this.myChart2 = echarts.init(document.getElementById("progress2"));
+    this.myChart3 = echarts.init(document.getElementById("progress3"));
+    this.intcharts(this.myChart, obj);
+    this.intcharts(this.myChart2, obj2);
+    this.intcharts(this.myChart3, obj3);
+    window.addEventListener("resize", () => {
+      this.myChart.resize();
+      this.myChart2.resize();
+      this.myChart3.resize();
+    });
+  },
+  beforeUpdate() {}, //生命周期 - 更新之前
+  updated() {}, //生命周期 - 更新之后
+  beforeDestroy() {}, //生命周期 - 销毁之前
+  destroyed() {}, //生命周期 - 销毁完成
+  activated() {}, //如果页面有keep-alive缓存功能,这个函数会触发
+};
+</script>
+<style scoped lang="less">
+.inner {
+  height: 100%;
+  position: relative;
+  .mapCover,
+  #container {
+    height: 100%;
+  }
+  .mapTypebox {
+    position: absolute;
+    right: 20px;
+    top: 30px;
+    background: #fff;
+    padding: 5px;
+    border-radius: 5px;
+  }
+  .mapinfo {
+    height: 100%;
+    position: absolute;
+    top: 0;
+    right: 0;
+    display: flex;
+    z-index: 999;
+    .mapinfo_btn {
+      height: 100%;
+      display: flex;
+      flex-direction: column;
+      justify-content: space-around;
+    }
+    .mapinfo_info {
+      width: 500px;
+      height: 100%;
+      background-color: rgba(0, 14, 57, 0.8);
+      .mapinfo_info_base {
+        padding: 20px;
+        .base_line {
+          width: 100%;
+          height: 0px;
+          background-color: #747474;
+          margin-top: 10px;
+          padding: 0.5px;
+          box-sizing: border-box;
+          p {
+            width: 10%;
+            height: 2px;
+            margin-top: -1.5px;
+            background-color: #04d5e8;
+            border-radius: 4px;
+          }
+        }
+        .mapinfo_base_title {
+          width: 100%;
+          .base_title_select {
+            width: 100%;
+            display: flex;
+            justify-content: space-between;
+            p {
+              font-size: 16px;
+              color: #e1ffff;
+              span {
+                color: #04d5e8;
+              }
+            }
+            img {
+              width: 36px;
+              height: 14px;
+              margin-top: 5px;
+            }
+          }
+          .base_info {
+            display: flex;
+            margin-top: 10px;
+            flex-wrap: wrap;
+            justify-content: space-between;
+            .base_info_item {
+              display: flex;
+              margin-bottom: 10px;
+              .base_info_item_L {
+                width: 80px;
+                height: 20px;
+                border: 1px solid #178beb;
+                color: #81b8f0;
+                text-align: center;
+                line-height: 20px;
+              }
+              .base_info_item_R {
+                width: 130px;
+                height: 20px;
+                color: #79ace1;
+                background-color: rgba(0, 95, 175, 0.25);
+                text-align: center;
+                line-height: 20px;
+                margin-left: 10px;
+              }
+            }
+            .base_info_item:last-child {
+              .base_info_item_R {
+                width: 368px;
+              }
+            }
+          }
+        }
+        .mapinfo_base_body {
+          margin-top: 20px;
+          .base_body_title {
+            display: flex;
+            justify-content: space-between;
+            p {
+              font-size: 16px;
+              color: #e1ffff;
+            }
+            img {
+              width: 36px;
+              height: 14px;
+              // margin-top: 5px;
+            }
+          }
+          .base_body_info {
+            display: flex;
+            justify-content: space-between;
+            padding: 20px 0 0;
+          }
+        }
+        .mapinfo_base_footer {
+          margin-top: 10px;
+          .base_body_title {
+            display: flex;
+            justify-content: space-between;
+            p {
+              font-size: 16px;
+              color: #e1ffff;
+              span {
+                font-size: 14px;
+                margin-left: 10px;
+              }
+            }
+            img {
+              width: 36px;
+              height: 14px;
+              // margin-top: 5px;
+            }
+          }
+          .base_footer_table {
+            font-size: 10px;
+            margin-top: 10px;
+            /deep/.el-table {
+              font-size: 10px;
+              background-color: transparent;
+              /deep/.el-table__row {
+                height: 30px;
+                padding: 0;
+              }
+              tr {
+                background-color: transparent;
+              }
+              td,
+              th {
+                height: 30px;
+                padding: 0;
+                background-color: transparent;
+              }
+              td {
+                color: #e1ffff;
+              }
+              th {
+                color: #79ace1;
+              }
+            }
+            /deep/.el-table th.is-leaf,
+            /deep/.el-table td {
+              border: none;
+            }
+            /deep/.el-table--group::after,
+            /deep/.el-table--border::after,
+            /deep/.el-table::before {
+              background-color: transparent;
+            }
+          }
+        }
+      }
+    }
+  }
+}
+</style>

+ 228 - 0
src/pages/plantGuard/waterPrice/waterindexmodule.vue

@@ -0,0 +1,228 @@
+<!--  -->
+<template>
+  <div class="" v-show="visible">
+    <div class="waterbasetime">
+      <div class="waterbasetime_title">
+        <span>五号喷灌井</span>
+        <span>【{{baseinfo.onoff?"开启":"关闭"}}】</span>
+      </div>
+      <div class="waterbasetime_body">
+        <div class="waterbasetime_body_top">
+          <img src="../../../../static/images/waterindex/hours.png" alt="" />
+          <div class="info">
+            <div class="info_item">
+              <p>设备号</p>
+              <p>{{baseinfo.device_type_id}}}</p>
+            </div>
+            <div class="info_item">
+              <p>经纬度</p>
+              <p>{{baseinfo.LngLat}}</p>
+            </div>
+            <div class="info_item">
+              <p>水&emsp;位</p>
+              <p>{{baseinfo.waterlevel}}</p>
+            </div>
+            <div class="info_item">
+              <p>定额水量</p>
+              <p>{{baseinfo.Normofwater}}</p>
+            </div>
+          </div>
+        </div>
+        <div class="waterbasetime_body_bot">
+          <div class="info_item_d">
+            <div class="info_item">
+              <p>累计电量</p>
+              <p>{{baseinfo.totalelectricity}}</p>
+            </div>
+            <div class="info_item">
+              <p>累计水量</p>
+              <p>{{baseinfo.totalwater}}</p>
+            </div>
+          </div>
+          <div class="info_item_long">
+            <p>上报时间</p>
+            <p>{{(baseinfo.addtime* 1000) | formatTime}}</p>
+          </div>
+        </div>
+      </div>
+      <div class="waterbasetime_footer">
+        <div class="footer_btn">设备详情</div>
+        <el-switch
+          v-model="baseinfo.onoff"
+          active-color="#0b93e8"
+          inactive-color="#ff4949"
+        >
+        </el-switch>
+      </div>
+      <div class="triangle">
+
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+//这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等)
+
+export default {
+  //import引入的组件需要注入到对象中才能使用
+  components: {},
+  data() {
+    //这里存放数据
+    return {
+      visible: false,
+      baseinfo:{},//设备详情
+    };
+  },
+  //监听属性 类似于data概念
+  computed: {},
+  //监控data中的数据变化
+  watch: {},
+  //方法集合
+  methods: {
+    initialize(e) {
+      console.log(e);
+      this.visible = e.visible;
+      this.baseinfo = e.currEquip
+    },
+  },
+  beforeCreate() {}, //生命周期 - 创建之前
+  //生命周期 - 创建完成(可以访问当前this实例)
+  created() {},
+  beforeMount() {}, //生命周期 - 挂载之前
+  //生命周期 - 挂载完成(可以访问DOM元素)
+  mounted() {},
+  beforeUpdate() {}, //生命周期 - 更新之前
+  updated() {}, //生命周期 - 更新之后
+  beforeDestroy() {}, //生命周期 - 销毁之前
+  destroyed() {}, //生命周期 - 销毁完成
+  activated() {}, //如果页面有keep-alive缓存功能,这个函数会触发
+};
+</script>
+<style scoped lang="less">
+.waterbasetime {
+  background-color: rgba(15, 34, 63, 0.78);
+  width: 355px;
+  padding: 10px 20px;
+  border: 1px solid #005faf;
+  position: relative;
+  .waterbasetime_title {
+    border-bottom: 1px solid #005faf;
+    padding-bottom: 10px;
+    span {
+      color: #b5b5b5;
+    }
+    span:first-child {
+      color: #04d5e8;
+      font-size: 16px;
+    }
+  }
+  .waterbasetime_body {
+    margin-top: 20px;
+    .waterbasetime_body_top {
+      display: flex;
+      img {
+        width: 140px;
+        height: 115px;
+      }
+      .info {
+        height: 115px;
+        padding: 5px 0;
+        .info_item {
+          display: flex;
+          margin-bottom: 10px;
+          p:first-child {
+            color: #04d5e8;
+            font-size: 12px;
+            width: 55px;
+            text-align: right;
+            margin-right: 10px;
+            line-height: 20px;
+          }
+          p:last-child {
+            width: 150px;
+            height: 20px;
+            background-color: #fff;
+            color: #606060;
+            line-height: 20px;
+            padding: 0 10px;
+            box-sizing: border-box;
+          }
+        }
+      }
+    }
+    .waterbasetime_body_bot {
+      border-bottom: 1px solid #005faf;
+      .info_item_d {
+        display: flex;
+        .info_item {
+          display: flex;
+          margin: 0 13px 10px 0;
+          p:first-child {
+            color: #04d5e8;
+            font-size: 12px;
+            width: 55px;
+            line-height: 20px;
+          }
+          p:last-child {
+            width: 116px;
+            height: 20px;
+            background-color: #fff;
+            color: #606060;
+            line-height: 20px;
+            padding: 0 10px;
+            box-sizing: border-box;
+          }
+        }
+      }
+      .info_item_long {
+        display: flex;
+        margin-bottom: 20px;
+        p:first-child {
+          color: #04d5e8;
+          font-size: 12px;
+          width: 55px;
+          line-height: 20px;
+        }
+        p:last-child {
+          width: 300px;
+          height: 20px;
+          background-color: #fff;
+          color: #606060;
+          line-height: 20px;
+          padding: 0 10px;
+          box-sizing: border-box;
+        }
+      }
+    }
+  }
+  .waterbasetime_footer {
+    display: flex;
+    margin-top: 10px;
+    justify-content: space-between;
+    .footer_btn {
+      width: 80px;
+      height: 25px;
+      border: 1px solid #04d5e8;
+      text-align: center;
+      line-height: 25px;
+      color: #04d5e8;
+      border-radius: 5px;
+    }
+  }
+  .triangle{
+    //   width: 15px;
+    //   height: 15px;
+    //   background-color: red;
+     width: 0;
+     height: 0;
+     border-left: 6px solid transparent;
+     border-right: 6px solid transparent;
+     border-top: 12px solid rgba(15, 34, 63, 0.78);
+      position: absolute;
+      bottom: -12px;
+      left: 65px;
+    //   border-top: 7.5px solid red;
+  }
+}
+</style>

+ 443 - 0
src/pages/plantGuard/waterPrice/waternorm.vue

@@ -0,0 +1,443 @@
+<!-- 水权定额 -->
+<template>
+  <div class="">
+    <el-card class="box-card">
+      <div class="waternorebox">
+        <div class="cityinfo">
+          <p class="cityinfo_title"><i class="el-icon-s-grid"></i>地址信息</p>
+          <div class="cityinfo_tree">
+            <el-tree
+              :data="city"
+              :props="defaultProps"
+              @node-click="handleNodeClick"
+            ></el-tree>
+          </div>
+        </div>
+        <div class="linebetween"></div>
+        <div class="tanleinfo">
+          <div class="tableinfo_title">
+            <div>
+              <el-input placeholder="请输入内容" v-model="input2" size="mini">
+                <template slot="append"
+                  ><i class="el-icon-search"></i
+                ></template>
+              </el-input>
+            </div>
+            <div>
+              <el-button type="info" size="mini">导出</el-button>
+              <el-button type="info" size="mini" @click="addwater"
+                >新增</el-button
+              >
+            </div>
+          </div>
+          <div class="tableinfo_table">
+            <div class="tablebox">
+              <el-table
+                :data="waterdata"
+                stripe
+                show-summary
+                :summary-method="getSummaries"
+                style="width: 100%"
+              >
+                <el-table-column prop="city" label="城市名称" width="180">
+                </el-table-column>
+                <el-table-column prop="usernum" label="农户数量(户)">
+                </el-table-column>
+                <el-table-column prop="wellnum" label="水井数量(口)">
+                </el-table-column>
+                <el-table-column prop="irrigationarea" label="灌溉面积(亩)">
+                </el-table-column>
+                <el-table-column prop="wateryield" label="水量定额(m³)">
+                </el-table-column>
+                <el-table-column prop="usewater" label="已用水量(m³)">
+                </el-table-column>
+                <el-table-column prop="usewatercost" label="已用水费(元)">
+                </el-table-column>
+                <el-table-column prop="useelectricity" label="已用电量(度)">
+                </el-table-column>
+                <el-table-column prop="useelectricitycost" label="已用电费(元)">
+                </el-table-column>
+                <el-table-column label="操作" width="200">
+                  <template slot-scope="scope">
+                    <!-- <template> -->
+                    <el-button size="mini" type="info" @click="tostate">用水报表</el-button>
+                    <el-button
+                      size="mini"
+                      type="warning"
+                      @click="compilewater(scope.row)"
+                      >编辑</el-button
+                    >
+                  </template>
+                </el-table-column>
+              </el-table>
+              <el-button type="info" size="mini" class="heji"
+                >用水报表</el-button
+              >
+            </div>
+            <el-pagination background layout="prev, pager, next" :total="1000">
+            </el-pagination>
+          </div>
+        </div>
+      </div>
+    </el-card>
+    <el-dialog
+      :title="title"
+      :visible.sync="dialogVisible"
+      width="25%"
+      top="15%"
+    >
+      <div class="adddialog">
+        <el-form
+          label-position="right"
+          label-width="80px"
+          :model="formLabelAlign"
+        >
+          <el-form-item label="城市名称">
+            <el-input v-model="formLabelAlign.city"></el-input>
+          </el-form-item>
+          <el-form-item label="农户数量">
+            <el-input v-model="formLabelAlign.usernum"></el-input>户
+          </el-form-item>
+          <el-form-item label="灌溉面积">
+            <el-input v-model="formLabelAlign.irrigationarea"></el-input>亩
+          </el-form-item>
+          <el-form-item label="水量配额">
+            <el-input v-model="formLabelAlign.wateryield"></el-input>吨
+          </el-form-item>
+        </el-form>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="dialogVisible = false">取 消</el-button>
+        <el-button type="primary" @click="watersubmit">确 定</el-button>
+      </span>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+//这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等)
+
+export default {
+  //import引入的组件需要注入到对象中才能使用
+  components: {},
+  data() {
+    //这里存放数据
+    return {
+      city: [
+        {
+          name: "河南省",
+          id: "04",
+          children: [
+            {
+              name: "郑州市",
+              id: "04-1",
+              children: [
+                {
+                  name: "金水区基地",
+                  id: "04-1-1",
+                },
+                {
+                  name: "二七区基地",
+                  id: "04-1-2",
+                },
+                {
+                  name: "高新区基地",
+                  id: "04-1-3",
+                },
+              ],
+            },
+            {
+              name: "信阳市",
+              id: "04-2",
+              children: [
+                {
+                  name: "潢川县",
+                  id: "04-2-1",
+                },
+                {
+                  name: "固始县",
+                  id: "04-2-2",
+                },
+                {
+                  name: "淮滨县",
+                  id: "04-2-3",
+                  children: [
+                    {
+                      name: "王店乡",
+                      id: "04-2-3-1",
+                      children: [
+                        {
+                          name: "北庙基地",
+                          id: "04-2-3-1-1",
+                        },
+                        {
+                          name: "杨楼基地",
+                          id: "04-2-3-1-2",
+                        },
+                      ],
+                    },
+                    {
+                      name: "张庄乡",
+                      id: "04-2-3-2",
+                    },
+                    {
+                      name: "台头乡",
+                      id: "04-2-3-3",
+                    },
+                  ],
+                },
+              ],
+            },
+          ],
+        },
+        {
+          name: "河北省",
+          id: "05",
+        },
+        {
+          name: "湖南省",
+          id: "06",
+        },
+      ],
+      defaultProps: {
+        //省市县树状图规则
+        children: "children",
+        label: "name",
+      },
+      input2: "", //搜索框,
+      waterdata: [
+        {
+          city: "郑州市", //城市名
+          usernum: "100", //用户数量
+          wellnum: "2", //水井数量
+          irrigationarea: "100", //灌溉面积
+          wateryield: "3000", //水量定额
+          usewater: "1580", //已用水
+          usewatercost: "2000", //已用水费
+          useelectricity: "2", //已用电
+          useelectricitycost: "4", //已用电费
+        },
+        {
+          city: "郑州市", //城市名
+          usernum: "100", //用户数量
+          wellnum: "2", //水井数量
+          irrigationarea: "100", //灌溉面积
+          wateryield: "3000", //水量定额
+          usewater: "1580", //已用水
+          usewatercost: "2000", //已用水费
+          useelectricity: "2", //已用电
+          useelectricitycost: "4", //已用电费
+        },
+        {
+          city: "郑州市", //城市名
+          usernum: "100", //用户数量
+          wellnum: "2", //水井数量
+          irrigationarea: "100", //灌溉面积
+          wateryield: "3000", //水量定额
+          usewater: "1580", //已用水
+          usewatercost: "2000", //已用水费
+          useelectricity: "2", //已用电
+          useelectricitycost: "4", //已用电费
+        },
+        {
+          city: "郑州市", //城市名
+          usernum: "100", //用户数量
+          wellnum: "2", //水井数量
+          irrigationarea: "100", //灌溉面积
+          wateryield: "3000", //水量定额
+          usewater: "1580", //已用水
+          usewatercost: "2000", //已用水费
+          useelectricity: "2", //已用电
+          useelectricitycost: "4", //已用电费
+        },
+        {
+          city: "郑州市", //城市名
+          usernum: "100", //用户数量
+          wellnum: "2", //水井数量
+          irrigationarea: "100", //灌溉面积
+          wateryield: "3000", //水量定额
+          usewater: "1580", //已用水
+          usewatercost: "2000", //已用水费
+          useelectricity: "2", //已用电
+          useelectricitycost: "4", //已用电费
+        },
+      ],
+      dialogVisible: false,
+      formLabelAlign: {
+        city: "", //城市名
+        usernum: "", //用户数量
+        irrigationarea: "", //灌溉面积
+        wateryield: "", //水量定额
+      },
+      title: "", //弹框表头
+    };
+  },
+  //监听属性 类似于data概念
+  computed: {},
+  //监控data中的数据变化
+  watch: {},
+  //方法集合
+  methods: {
+    handleNodeClick(data) {
+      console.log(data);
+      this.input2 = data.name;
+    },
+    getSummaries(param) {
+      //表格合计
+      const { columns, data } = param;
+      const sums = [];
+      columns.forEach((column, index) => {
+        if (index === 0) {
+          sums[index] = "总计";
+          return;
+        } else if (index === columns.length - 1) {
+          sums[index] = "";
+          return;
+        }
+        const values = data.map((item) => Number(item[column.property]));
+        if (!values.every((value) => isNaN(value))) {
+          sums[index] = values.reduce((prev, curr) => {
+            const value = Number(curr);
+            if (!isNaN(value)) {
+              return prev + curr;
+            } else {
+              return prev;
+            }
+          }, 0);
+          sums[index];
+        } else {
+          sums[index] = "N/A";
+        }
+      });
+      console.log(sums);
+      return sums;
+    },
+    compilewater(item) {
+      console.log(item);
+      this.title = "编辑";
+      this.formLabelAlign.city = item.city;
+      this.formLabelAlign.usernum = item.usernum;
+      this.formLabelAlign.irrigationarea = item.irrigationarea;
+      this.formLabelAlign.wateryield = item.wateryield;
+      this.dialogVisible = !this.dialogVisible;
+    },
+    addwater() {
+      this.dialogVisible = !this.dialogVisible;
+      this.title = "新增";
+    },
+    watersubmit() {
+      this.dialogVisible = !this.dialogVisible;
+      for (var key in this.formLabelAlign) {
+        this.formLabelAlign[key] = "";
+      }
+    },
+    tostate(){//跳转水价报表页面
+      this.$router.push("/plantGuard/WatseRstatement");
+    }
+  },
+  beforeCreate() {}, //生命周期 - 创建之前
+  //生命周期 - 创建完成(可以访问当前this实例)
+  created() {},
+  beforeMount() {}, //生命周期 - 挂载之前
+  //生命周期 - 挂载完成(可以访问DOM元素)
+  mounted() {},
+  beforeUpdate() {}, //生命周期 - 更新之前
+  updated() {}, //生命周期 - 更新之后
+  beforeDestroy() {}, //生命周期 - 销毁之前
+  destroyed() {}, //生命周期 - 销毁完成
+  activated() {}, //如果页面有keep-alive缓存功能,这个函数会触发
+};
+</script>
+<style scoped lang="less">
+.box-card {
+  width: 98%;
+  height: 83vh;
+  margin: 0 auto;
+  .waternorebox {
+    width: 100%;
+    height: 80vh;
+    display: flex;
+    justify-content: space-between;
+    .cityinfo {
+      width: 15%;
+      .cityinfo_title {
+        font-size: 16px;
+        font-weight: 700;
+        .el-icon-s-grid {
+          margin-right: 5px;
+          font-size: 20px;
+          color: #0195ff;
+        }
+      }
+      .cityinfo_tree {
+        height: 95%;
+        overflow: auto;
+      }
+      /deep/.el-tree-node {
+        margin-top: 10px;
+      }
+    }
+    .linebetween {
+      width: 2px;
+      background-color: #eef0f4;
+      // height: 79vh;
+      height: 100%;
+    }
+    .tanleinfo {
+      width: 83%;
+      .tableinfo_title {
+        width: 100%;
+        display: flex;
+        justify-content: space-between;
+        /deep/.el-input-group__append {
+          background-color: #0195ff;
+          color: #fff;
+          width: 28px;
+          padding: 0;
+          text-align: center;
+        }
+      }
+      .tableinfo_table {
+        margin-top: 20px;
+        .tablebox {
+          position: relative;
+          .heji {
+            position: absolute;
+            bottom: 10px;
+            right: 125px;
+          }
+        }
+        /deep/.el-table__header {
+          th {
+            background-color: #2c3757;
+            color: #fff;
+          }
+        }
+      }
+    }
+  }
+}
+/deep/.el-dialog__body {
+  padding: 30px 20px 0;
+}
+/deep/.el-dialog__footer {
+  padding-top: 0;
+}
+.adddialog {
+  width: 80%;
+  margin: 0 auto;
+  /deep/.el-form-item__content {
+    display: flex;
+    .el-input__inner {
+      width: 240px;
+    }
+  }
+}
+/deep/.el-button--info {
+  background-color: #0195ff;
+  border-color: #0195ff;
+}
+/deep/.el-pagination.is-background .el-pager li:not(.disabled).active {
+  background-color: #0195ff !important;
+}
+</style>

+ 368 - 0
src/pages/plantGuard/waterPrice/watertransaction.vue

@@ -0,0 +1,368 @@
+<!-- 水权交易 -->
+<template>
+  <div class="">
+    <div class="sac_box">
+      <div class="sac_left">
+        <p class="cityinfo_title"><i class="el-icon-s-grid"></i>水权交易</p>
+        <el-steps direction="vertical" :active="active">
+          <el-step title="请填写买方信息">
+            <template slot="description">
+              <div class="purchaserinfo" @click="tabactive(0)">
+                <p>
+                  <span>用户卡号:</span>
+                  <el-input
+                    v-model="dealinfo.purchaserinput"
+                    placeholder="请输入内容"
+                    size="mini"
+                  ></el-input>
+                </p>
+                <p>用户地址:河南省郑州市金水区</p>
+                <p>已分配水权:100吨</p>
+                <p>可交易水权:100吨</p>
+              </div>
+            </template>
+          </el-step>
+          <el-step title="请填写卖方信息">
+            <template slot="description">
+              <div class="purchaserinfo" @click="tabactive(1)">
+                <p>
+                  <span>用户卡号:</span>
+                  <el-input
+                    v-model="dealinfo.sellerinput"
+                    placeholder="请输入内容"
+                    size="mini"
+                  ></el-input>
+                </p>
+                <p>用户地址:河南省郑州市金水区</p>
+                <p>已分配水权:100吨</p>
+                <p>可交易水权:100吨</p>
+              </div>
+            </template>
+          </el-step>
+          <el-step title="请填写交易具体信息">
+            <template slot="description">
+              <div class="purchaserinfo" @click="tabactive(2)">
+                <p>
+                  <span>交易水量:</span>
+                  <el-input
+                    v-model="dealinfo.waternum"
+                    placeholder="请输入内容"
+                    size="mini"
+                    type="number"
+                  ></el-input>
+                  <span>m³</span>
+                </p>
+                <p>
+                  <span>交易单价:</span>
+                  <el-input
+                    v-model="dealinfo.unitprice"
+                    placeholder="请输入内容"
+                    size="mini"
+                    type="number"
+                  ></el-input>
+                  <span>元/m³</span>
+                </p>
+                <p>交易总金额:{{ dealinfo.waternum * dealinfo.unitprice }}元</p>
+              </div>
+            </template>
+          </el-step>
+        </el-steps>
+        <div class="functionnox">
+          <el-button type="info" size="small ">确认交易</el-button>
+          <el-button size="small ">清&#12288;&#12288;空</el-button>
+        </div>
+      </div>
+      <div class="sac_right">
+        <div class="sac_right_title">
+          <div class="sac_right_title_headline">
+            <p class="cityinfo_title"><i class="el-icon-s-grid"></i>交易历史</p>
+          </div>
+          <div class="sac_right_title_input">
+            <el-input
+              placeholder="请输入买方用户ID"
+              v-model="searchinfo.purchaserID"
+              size="mini"
+            >
+              <template slot="append"><i class="el-icon-search"></i></template>
+            </el-input>
+            <el-input
+              placeholder="请输入卖方用户ID"
+              v-model="searchinfo.sellerID"
+              size="mini"
+            >
+              <template slot="append"><i class="el-icon-search"></i></template>
+            </el-input>
+            <el-date-picker
+              v-model="searchinfo.time"
+              type="daterange"
+              range-separator="至"
+              start-placeholder="开始日期"
+              end-placeholder="结束日期"
+              size="mini"
+            >
+            </el-date-picker>
+          </div>
+        </div>
+        <div class="sac_right_table">
+          <el-table :data="dealtableinfo" stripe style="width: 100%">
+            <el-table-column prop="time" label="时间">
+              <template slot-scope="scope">{{
+                (scope.row.time * 1000) | formatTime
+              }}</template>
+            </el-table-column>
+            <el-table-column prop="selleruser" label="卖方用户">
+            </el-table-column>
+            <el-table-column prop="purchaseruser" label="买方用户">
+            </el-table-column>
+            <el-table-column
+              prop="dealwater"
+              label="交易水量(m³)"
+            ></el-table-column>
+            <el-table-column
+              prop="unitprice"
+              label="交易单价(元/m³)"
+            ></el-table-column>
+            <el-table-column
+              prop="rental"
+              label="交易总额(元)"
+            ></el-table-column>
+            <el-table-column prop="operator" label="操作人"></el-table-column>
+          </el-table>
+          <el-pagination background layout="prev, pager, next" :total="1000">
+          </el-pagination>
+        </div>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+//这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等)
+
+export default {
+  //import引入的组件需要注入到对象中才能使用
+  components: {},
+  data() {
+    //这里存放数据
+    return {
+      active: 0,
+      input: "",
+      dealinfo: {
+        //交易信息
+        purchaserinput: "", //买方信息
+        sellerinput: "", //卖方信息
+        waternum: "", //交易水量
+        unitprice: "", //单价
+      },
+      searchinfo: {
+        //搜索信息
+        purchaserID: "", //买方信息
+        sellerID: "", //卖方信息
+        time: "",
+      },
+      dealtableinfo: [
+        //交易历史记录
+        {
+          time: "1636076311", //时间
+          selleruser: "4845454411", //卖方用户
+          purchaseruser: "4845454411", //买方用户
+          dealwater: "150", //交易水量(m³)
+          unitprice: "10", //交易单价(元/m³)
+          rental: "1500", //交易总额(元)
+          operator: "李建国", //操作人
+        },
+        {
+          time: "1636076311", //时间
+          selleruser: "4845454411", //卖方用户
+          purchaseruser: "4845454411", //买方用户
+          dealwater: "150", //交易水量(m³)
+          unitprice: "10", //交易单价(元/m³)
+          rental: "1500", //交易总额(元)
+          operator: "李建国", //操作人
+        },
+        {
+          time: "1636076311", //时间
+          selleruser: "4845454411", //卖方用户
+          purchaseruser: "4845454411", //买方用户
+          dealwater: "150", //交易水量(m³)
+          unitprice: "10", //交易单价(元/m³)
+          rental: "1500", //交易总额(元)
+          operator: "李建国", //操作人
+        },
+        {
+          time: "1636076311", //时间
+          selleruser: "4845454411", //卖方用户
+          purchaseruser: "4845454411", //买方用户
+          dealwater: "150", //交易水量(m³)
+          unitprice: "10", //交易单价(元/m³)
+          rental: "1500", //交易总额(元)
+          operator: "李建国", //操作人
+        },
+        {
+          time: "1636076311", //时间
+          selleruser: "4845454411", //卖方用户
+          purchaseruser: "4845454411", //买方用户
+          dealwater: "150", //交易水量(m³)
+          unitprice: "10", //交易单价(元/m³)
+          rental: "1500", //交易总额(元)
+          operator: "李建国", //操作人
+        },
+        {
+          time: "1636076311", //时间
+          selleruser: "4845454411", //卖方用户
+          purchaseruser: "4845454411", //买方用户
+          dealwater: "150", //交易水量(m³)
+          unitprice: "10", //交易单价(元/m³)
+          rental: "1500", //交易总额(元)
+          operator: "李建国", //操作人
+        },
+      ],
+    };
+  },
+  //监听属性 类似于data概念
+  computed: {},
+  //监控data中的数据变化
+  watch: {},
+  //方法集合
+  methods: {
+    tabactive(index) {
+      
+      if (index == 1) {
+        if (this.dealinfo.purchaserinput == "") {
+          this.$message({
+            message: "请填写买方信息!!",
+            type: "warning",
+          });
+        }else{
+          this.active = index;
+        }
+      } else if (index == 2) {
+        if (this.dealinfo.sellerinput == "") {
+          this.$message({
+            message: "请填写卖方信息!!",
+            type: "warning",
+          });
+        }else{
+          this.active = index;
+        }
+      }
+    },
+  },
+  beforeCreate() {}, //生命周期 - 创建之前
+  //生命周期 - 创建完成(可以访问当前this实例)
+  created() {},
+  beforeMount() {}, //生命周期 - 挂载之前
+  //生命周期 - 挂载完成(可以访问DOM元素)
+  mounted() {},
+  beforeUpdate() {}, //生命周期 - 更新之前
+  updated() {}, //生命周期 - 更新之后
+  beforeDestroy() {}, //生命周期 - 销毁之前
+  destroyed() {}, //生命周期 - 销毁完成
+  activated() {}, //如果页面有keep-alive缓存功能,这个函数会触发
+};
+</script>
+<style lang="less" scoped>
+.sac_box {
+  width: 98%;
+  height: 83vh;
+  margin: 0 auto;
+  display: flex;
+  justify-content: space-between;
+}
+.sac_left {
+  width: 23%;
+  padding: 20px;
+  box-sizing: border-box;
+  background-color: #fff;
+  .el-steps {
+    height: 85%;
+  }
+  /deep/.el-step__head.is-finish {
+    color: #0195ff;
+    border-color: #0195ff;
+  }
+  /deep/.el-step__title.is-finish {
+    color: #0195ff;
+  }
+  /deep/.el-step__description.is-finish {
+    color: #0195ff;
+  }
+  .cityinfo_title {
+    font-size: 16px;
+    margin-bottom: 20px;
+    .el-icon-s-grid {
+      color: #0195ff;
+      font-size: 20px;
+      margin-right: 5px;
+    }
+  }
+  .purchaserinfo {
+    margin: 10px 0;
+    p {
+      display: flex;
+      line-height: 35px;
+      font-size: 14px;
+      /deep/.el-input {
+        width: 180px;
+        margin: 0 10px;
+      }
+    }
+  }
+  .functionnox {
+    margin: 20px 0 0 30px;
+    /deep/.el-button {
+      width: 80px;
+      height: 32px;
+    }
+    /deep/.el-button--default {
+      background-color: #aeaeae;
+      color: #fff;
+    }
+  }
+}
+.sac_right {
+  width: 76%;
+  background-color: #fff;
+  box-sizing: border-box;
+  padding: 20px;
+  .sac_right_title {
+    width: 100%;
+    display: flex;
+    justify-content: space-between;
+    .sac_right_title_headline {
+      font-size: 16px;
+      .el-icon-s-grid {
+        color: #0195ff;
+        font-size: 20px;
+        margin-right: 5px;
+      }
+    }
+    .sac_right_title_input {
+      display: flex;
+      /deep/.el-input {
+        width: 180px;
+        margin: 0 10px;
+      }
+      /deep/.el-input-group__append {
+        background-color: #0195ff;
+        color: #fff;
+        width: 28px;
+        padding: 0;
+        text-align: center;
+      }
+    }
+  }
+  .sac_right_table {
+    margin-top: 20px;
+    /deep/.el-table__header {
+      th {
+        background-color: #2c3757;
+        color: #fff;
+      }
+    }
+  }
+}
+/deep/.el-pagination.is-background .el-pager li:not(.disabled).active{
+  background-color: #0195ff !important;
+}
+</style>

+ 841 - 0
src/pages/plantGuard/waterPrice/watserstatement.vue

@@ -0,0 +1,841 @@
+<!--  -->
+<template>
+  <div class="statement">
+    <div class="statement_title">
+      <p class="cityinfo_title"><i class="el-icon-s-grid"></i>农户信息</p>
+      <div class="userinfobox">
+        <div class="userinfobox_left">
+          <img src="../../../../static/images/waterindex/jianguo.png" alt="" />
+          <div class="userinfobox_left_l">
+            <p>李建国</p>
+            <p>河南省郑州市金水区</p>
+            <p>2021-11-10 10:16:00</p>
+          </div>
+        </div>
+        <div class="userinfobox_right">
+          <div class="userinfobox_right_item">
+            <p>{{ usedata.irrigationarea }}</p>
+            <p>灌溉面积(亩)</p>
+          </div>
+          <div class="userinfobox_right_item">
+            <p>{{ usedata.usewater }}</p>
+            <p>已用水量(吨)</p>
+          </div>
+          <div class="userinfobox_right_item">
+            <p>{{ usedata.wateryield }}</p>
+            <p>水量定额(吨)</p>
+          </div>
+          <div class="userinfobox_right_item">
+            <p>{{ usedata.waterresidue }}</p>
+            <p>剩余水量(吨)</p>
+          </div>
+          <div class="userinfobox_right_item">
+            <p>{{ usedata.useelectricity }}</p>
+            <p>已用电量(度)</p>
+          </div>
+          <div class="userinfobox_right_item">
+            <p>{{ usedata.usewatercost }}</p>
+            <p>已用水费(元)</p>
+          </div>
+          <div class="userinfobox_right_item">
+            <p>{{ usedata.useelectricitycost }}</p>
+            <p>已用电费(元)</p>
+          </div>
+          <div class="userinfobox_right_item">
+            <p>{{ usedata.accumulatedusetime }}</p>
+            <p>累计使用时间(h)</p>
+          </div>
+        </div>
+      </div>
+    </div>
+    <div class="statement_body">
+      <div class="statement_body_left">
+        <div class="statement_body_left_title">
+          <p class="cityinfo_title"><i class="el-icon-s-grid"></i>用水统计</p>
+          <div class="statement_body_input">
+            <el-date-picker
+              v-model="value2"
+              type="daterange"
+              align="right"
+              unlink-panels
+              range-separator="至"
+              start-placeholder="开始日期"
+              end-placeholder="结束日期"
+              :picker-options="pickerOptions"
+              size="mini"
+            >
+            </el-date-picker>
+          </div>
+        </div>
+        <div class="statement_body_left_high">
+          <highcharts
+            class="highcharts"
+            :options="hisoptions"
+            v-if="Object.keys(hisoptions).length > 0"
+          ></highcharts>
+        </div>
+      </div>
+      <div class="statement_body_right">
+        <div class="statement_body_right_title">
+          <p class="cityinfo_title"><i class="el-icon-s-grid"></i>用水比例</p>
+          <div class="statement_body_input">
+            <el-select v-model="value" placeholder="请选择" size="mini">
+              <el-option
+                v-for="item in yearoptions"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value"
+              >
+              </el-option>
+            </el-select>
+          </div>
+        </div>
+        <div
+          id="progress"
+          style="width: 100%; height: 310px"
+          ref="progress"
+        ></div>
+        <div class="hint">
+          <p>外环:<span>用水比例</span></p>
+          <p>内环;<span>用电比例</span></p>
+        </div>
+      </div>
+    </div>
+    <div class="statement_footer">
+      <div class="statement_footer_title">
+        <!-- <p class="cityinfo_title"><i class="el-icon-s-grid"></i>使用历史</p> -->
+        <div class="tableinfo_title_tab">
+          <p
+            :class="selectnum == 0 ? 'selectp' : 'nonep'"
+            @click="selecttab(0)"
+          >
+            使用记录
+          </p>
+          <p
+            :class="selectnum == 1 ? 'selectp' : 'nonep'"
+            @click="selecttab(1)"
+          >
+            机井信息
+          </p>
+        </div>
+        <div class="statement_body_input">
+            <el-date-picker
+              v-model="value2"
+              type="daterange"
+              align="right"
+              unlink-panels
+              range-separator="至"
+              start-placeholder="开始日期"
+              end-placeholder="结束日期"
+              :picker-options="pickerOptions"
+              size="mini"
+            >
+            </el-date-picker>
+        </div>
+      </div>
+      <div class="tablebox" v-loading="tableloading">
+        <el-table
+          :data="consumedata"
+          stripe
+          style="width: 100%"
+          v-if="selectnum == 0"
+        >
+          <el-table-column prop="wellid" label="机井编号"> </el-table-column>
+          <el-table-column prop="userid" label="用户卡号"> </el-table-column>
+          <el-table-column prop="offtime" label="开启时间" width="180">
+            <template slot-scope="scope">{{
+              (scope.row.offtime * 1000) | formatTime
+            }}</template>
+          </el-table-column>
+          <el-table-column prop="ontime" label="关闭时间" width="180">
+            <template slot-scope="scope">{{
+              (scope.row.ontime * 1000) | formatTime
+            }}</template>
+          </el-table-column>
+          <el-table-column prop="irrigateduration" label="灌溉时长(min)">
+          </el-table-column>
+          <el-table-column prop="oncetricity" label="本次用电量(度)">
+          </el-table-column>
+          <el-table-column prop="oncewater" label="本次用水量(吨)">
+          </el-table-column>
+          <el-table-column prop="usewater" label="累计用水量(吨)">
+          </el-table-column>
+          <el-table-column prop="oncemoney" label="使用金额(元)">
+          </el-table-column>
+          <el-table-column prop="balance" label="卡剩余金额(元)">
+          </el-table-column>
+          <el-table-column prop="residuewater" label="剩余水量(吨)">
+          </el-table-column>
+        </el-table>
+        <el-table
+          :data="rechargedata"
+          stripe
+          style="width: 100%"
+          v-if="selectnum == 1"
+        >
+          <el-table-column prop="id" label="序号"> </el-table-column>
+          <el-table-column prop="userid" label="用户卡号"> </el-table-column>
+          <el-table-column prop="rechargetime" label="充值时间">
+            <template slot-scope="scope">{{
+              (scope.row.rechargetime * 1000) | formatTime
+            }}</template>
+          </el-table-column>
+          <el-table-column prop="rechargewater" label="充值水量(吨)">
+          </el-table-column>
+          <el-table-column prop="rechargemoney" label="充值金额(元)">
+          </el-table-column>
+          <el-table-column prop="balance" label="充值后金额(元)">
+          </el-table-column>
+          <el-table-column prop="operator" label="操作人"> </el-table-column>
+        </el-table>
+        <el-pagination background layout="prev, pager, next" :total="1000">
+        </el-pagination>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+//这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等)
+import HighCharts from "highcharts";
+import echarts from "echarts";
+export default {
+  //import引入的组件需要注入到对象中才能使用
+  components: {},
+  data() {
+    //这里存放数据
+    return {
+      usedata: {
+        //用户使用总数据
+        irrigationarea: "100", //灌溉面积(亩)
+        usewater: "1580", //已用水量(吨)
+        wateryield: "3000", //水量定额(吨)
+        waterresidue: "1420", //剩余水量(吨)
+        useelectricity: "2", //已用电量(度)
+        usewatercost: "2000", //已用水费(元)
+        useelectricitycost: "2300", //已用电费(元)
+        accumulatedusetime: "500", //累计使用时间(h)
+      },
+      value: "", //年度搜索
+      value2: "", //时间选择器时间段
+      pickerOptions: {
+        //时间选择器规则
+        shortcuts: [
+          {
+            text: "最近一周",
+            onClick(picker) {
+              const end = new Date();
+              const start = new Date();
+              start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
+              picker.$emit("pick", [start, end]);
+            },
+          },
+          {
+            text: "最近一个月",
+            onClick(picker) {
+              const end = new Date();
+              const start = new Date();
+              start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
+              picker.$emit("pick", [start, end]);
+            },
+          },
+          {
+            text: "最近三个月",
+            onClick(picker) {
+              const end = new Date();
+              const start = new Date();
+              start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
+              picker.$emit("pick", [start, end]);
+            },
+          },
+          {
+            text: "最近半年",
+            onClick(picker) {
+              const end = new Date();
+              const start = new Date();
+              start.setTime(start.getTime() - 3600 * 1000 * 24 * 180);
+              picker.$emit("pick", [start, end]);
+            },
+          },
+          {
+            text: "最近一年",
+            onClick(picker) {
+              const end = new Date();
+              const start = new Date();
+              start.setTime(start.getTime() - 3600 * 1000 * 24 * 365);
+              picker.$emit("pick", [start, end]);
+            },
+          },
+        ],
+      },
+      yearoptions: [], //年份选择
+      hisoptions: [], //折线图
+      selectnum: 0,
+      tableloading: false,
+      consumedata: [
+        //消费记录
+        {
+          wellid: "125478451", //机井编号
+          userid: "4841121211", //用户卡号
+          offtime: "1636076311", //开启时间
+          ontime: "1636076311", //关闭时间
+          irrigateduration: "60", //灌溉时长
+          oncewater: "60", //本次用水
+          oncetricity: "60", //本次用电
+          usewater: "60", //累计用水量
+          oncemoney: "60", //使用金额
+          balance: "120", //卡剩余金额
+          residuewater: "120", //剩余水量
+        },
+        {
+          wellid: "125478451", //机井编号
+          userid: "4841121211", //用户卡号
+          offtime: "1636076311", //开启时间
+          ontime: "1636076311", //关闭时间
+          irrigateduration: "60", //灌溉时长
+          oncewater: "60", //本次用水
+          oncetricity: "60", //本次用电
+          usewater: "60", //累计用水量
+          oncemoney: "60", //使用金额
+          balance: "120", //卡剩余金额
+          residuewater: "120", //剩余水量
+        },
+        {
+          wellid: "125478451", //机井编号
+          userid: "4841121211", //用户卡号
+          offtime: "1636076311", //开启时间
+          ontime: "1636076311", //关闭时间
+          irrigateduration: "60", //灌溉时长
+          oncewater: "60", //本次用水
+          oncetricity: "60", //本次用电
+          usewater: "60", //累计用水量
+          oncemoney: "60", //使用金额
+          balance: "120", //卡剩余金额
+          residuewater: "120", //剩余水量
+        },
+        {
+          wellid: "125478451", //机井编号
+          userid: "4841121211", //用户卡号
+          offtime: "1636076311", //开启时间
+          ontime: "1636076311", //关闭时间
+          irrigateduration: "60", //灌溉时长
+          oncewater: "60", //本次用水
+          oncetricity: "60", //本次用电
+          usewater: "60", //累计用水量
+          oncemoney: "60", //使用金额
+          balance: "120", //卡剩余金额
+          residuewater: "120", //剩余水量
+        },
+        {
+          wellid: "125478451", //机井编号
+          userid: "4841121211", //用户卡号
+          offtime: "1636076311", //开启时间
+          ontime: "1636076311", //关闭时间
+          irrigateduration: "60", //灌溉时长
+          oncewater: "60", //本次用水
+          oncetricity: "60", //本次用电
+          usewater: "60", //累计用水量
+          oncemoney: "60", //使用金额
+          balance: "120", //卡剩余金额
+          residuewater: "120", //剩余水量
+        },
+      ],
+      rechargedata: [
+        {
+          id: "1",
+          userid: "4841121211", //用户卡号
+          rechargetime: "1636076311", //充值时间
+          rechargewater: "50", //充值水量
+          rechargemoney: "50", //充值金额
+          balance: "170", //充值后金额
+          operator: "李建国", //操作人
+        },
+        {
+          id: "2",
+          userid: "4841121211", //用户卡号
+          rechargetime: "1636076311", //充值时间
+          rechargewater: "50", //充值水量
+          rechargemoney: "50", //充值金额
+          balance: "170", //充值后金额
+          operator: "李建国", //操作人
+        },
+        {
+          id: "3",
+          userid: "4841121211", //用户卡号
+          rechargetime: "1636076311", //充值时间
+          rechargewater: "50", //充值水量
+          rechargemoney: "50", //充值金额
+          balance: "170", //充值后金额
+          operator: "李建国", //操作人
+        },
+        {
+          id: "4",
+          userid: "4841121211", //用户卡号
+          rechargetime: "1636076311", //充值时间
+          rechargewater: "50", //充值水量
+          rechargemoney: "50", //充值金额
+          balance: "170", //充值后金额
+          operator: "李建国", //操作人
+        },
+        {
+          id: "5",
+          userid: "4841121211", //用户卡号
+          rechargetime: "1636076311", //充值时间
+          rechargewater: "50", //充值水量
+          rechargemoney: "50", //充值金额
+          balance: "170", //充值后金额
+          operator: "李建国", //操作人
+        },
+      ],
+    };
+  },
+  //监听属性 类似于data概念
+  computed: {},
+  //监控data中的数据变化
+  watch: {},
+  //方法集合
+  methods: {
+    statistical() {
+      this.ChartData = [
+        {
+          name: "用水量(m³)",
+          data: [],
+          fillColor: {
+            linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
+            stops: [
+              [0, "rgba(3,145,255,0.25)"],
+              [1, "#fff"],
+            ],
+          },
+        },
+        {
+          name: "用电量(°)",
+          data: [],
+          fillColor: {
+            linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
+            stops: [
+              [0, "rgba(79,212,170,0.25)"],
+              [1, "#fff"],
+            ],
+          },
+        },
+      ];
+      this.$axios({
+        method: "POST",
+        url: "/api/api_gateway?method=forecast.worm_lamp.device_polyline_data",
+        data: this.qs.stringify({
+          device_type_id: 3,
+          d_id: "819",
+          end_time: "1636422105",
+          start_time: (1635730905-24*60*60*30*3),
+        }),
+      }).then((res) => {
+        this.dataLoading = false;
+        if (res.data.data.length) {
+          var data = res.data.data;
+          for (let item of data) {
+            this.ChartData[0].data.unshift([
+              item.addtime * 1000 + 8 * 3600000,
+              Number(item.humidity),
+            ]);
+            this.ChartData[1].data.unshift([
+              item.addtime * 1000 + 8 * 3600000,
+              Number(item.others),
+            ]);
+          }
+          console.log(this.ChartData);
+          this.hisoptions = this.optionFn(this.ChartData);
+          // this.loadingInstance.close();
+        } else {
+          this.hisoptions = {};
+        }
+      });
+    },
+    optionFn(ChartData) {
+      //数据折线图
+      return {
+        chart: {
+          type: "area",
+          zoomType: "x",
+          backgroundColor: "rgba(0,0,0,0)",
+        },
+        title: {
+          text: "",
+          align: "left",
+        },
+        lang: {
+          noData: "暂无数据",
+        },
+        noData: {
+          style: {
+            fontWeight: "bold",
+            fontSize: "15px",
+            color: "#303030",
+          },
+        },
+        xAxis: {
+          crosshair: true, //十字基准线
+          type: "datetime",
+          dateTimeLabelFormats: {
+            //根据时间间距X轴自动显示哪种格式
+            millisecond: "%H:%M:%S.%L",
+            second: "%H:%M:%S",
+            minute: "%H:%M",
+            hour: "%H:%M",
+            day: "%m-%d",
+            week: "%m-%d",
+            month: "%Y-%m",
+            year: "%Y",
+          },
+          lineColor: "#000",
+          labels: {
+            style: {
+              color: "#000",
+            },
+          },
+        },
+        yAxis: {
+          title: {
+            text: "",
+          },
+          lineColor: "#000",
+          labels: {
+            style: {
+              color: "#000",
+            },
+          },
+        },
+        legend: {
+          align: "center",
+          verticalAlign: "top",
+          itemStyle: {
+            color: "#000",
+          },
+        },
+        plotOptions: {
+          series: {
+            label: {
+              connectorAllowed: false,
+            },
+            pointStart: 2010,
+            marker: {
+              enabled: false /*数据点是否显示*/,
+              radius: 5 /*数据点大小px*/,
+              //fillColor:'#ff3300'         /*数据点颜色*/
+            },
+          },
+        },
+        series: ChartData,
+        colors: ["#0391ff", "#4fd4aa"],
+        credits: {
+          //去掉默认的highcharts.com
+          enabled: false,
+        },
+        tooltip: {
+          // crosshairs: true,
+          shared: true, //折线共享
+          headerFormat: "<b>{point.x:%Y-%m-%e %H:%M:%S}</b><br>",
+        },
+        responsive: {
+          rules: [
+            {
+              condition: {
+                maxWidth: 500,
+              },
+              chartOptions: {},
+            },
+          ],
+        },
+        previous: 0,
+      };
+    },
+    setecharts() {
+      var obj = {
+        name: "总消费",
+        num: "22358",
+        nums: "22358",
+      };
+      this.intcharts();
+      window.addEventListener("resize", () => {
+        this.myChart.resize();
+      });
+    },
+    intcharts() {
+      var option = {
+        color: [
+          "#73c0de",
+          "#fac858",
+          "#ee6666",
+          "#91cc75",
+          "#5470c6",
+          "#bc69f6",
+          "#ff7e00",
+        ],
+        tooltip: {
+          trigger: "item",
+        },
+        legend: {
+          icon: "circle",
+          x: "right",
+          y: "center",
+          width: "100",
+          data: ["一号机井", "二号机井", "三号机井", "四号机井", "五号机井"],
+        },
+        series: [
+          {
+            name: "用电比例",
+            type: "pie",
+            selectedMode: "single",
+            radius: [0, "50%"],
+            label: false,
+            labelLine: {
+              show: false,
+            },
+            data: [
+              { value: 1548, name: "一号机井" },
+              { value: 775, name: "二号机井" },
+              { value: 679, name: "三号机井" },
+              { value: 888, name: "四号机井" },
+              { value: 951, name: "五号机井" },
+            ],
+          },
+          {
+            name: "用水比例",
+            type: "pie",
+            radius: ["65%", "80%"],
+            labelLine: {
+              length: 100,
+            },
+            label: false,
+            data: [
+              { value: 1048, name: "一号机井" },
+              { value: 335, name: "二号机井" },
+              { value: 310, name: "三号机井" },
+              { value: 251, name: "四号机井" },
+              { value: 234, name: "五号机井" },
+            ],
+          },
+        ],
+      };
+      echarts.init(document.getElementById("progress")).setOption(option);
+    },
+    selecttab(index) {
+      this.selectnum = index;
+    },
+  },
+  beforeCreate() {}, //生命周期 - 创建之前
+  //生命周期 - 创建完成(可以访问当前this实例)
+  created() {},
+  beforeMount() {}, //生命周期 - 挂载之前
+  //生命周期 - 挂载完成(可以访问DOM元素)
+  mounted() {
+    var time = new Date().getFullYear();
+    console.log(time);
+    for (var i = 0; i < 3; i++) {
+      var obj = {
+        value: "选项" + (i + 1),
+        label: time - i,
+      };
+      this.yearoptions.push(obj);
+    }
+    this.statistical();
+    this.setecharts();
+  },
+  beforeUpdate() {}, //生命周期 - 更新之前
+  updated() {}, //生命周期 - 更新之后
+  beforeDestroy() {}, //生命周期 - 销毁之前
+  destroyed() {}, //生命周期 - 销毁完成
+  activated() {}, //如果页面有keep-alive缓存功能,这个函数会触发
+};
+</script>
+<style lang="less" scoped>
+.statement {
+  width: 98%;
+  margin: 0 auto;
+}
+.statement_title {
+  width: 100%;
+  height: 160px;
+  background-color: #fff;
+  padding: 15px;
+  box-sizing: border-box;
+  .cityinfo_title {
+    font-size: 16px;
+    font-weight: 700;
+    .el-icon-s-grid {
+      margin-right: 5px;
+      font-size: 20px;
+      color: #0195ff;
+    }
+  }
+  .userinfobox {
+    display: flex;
+    margin-top: 20px;
+    .userinfobox_left {
+      display: flex;
+      width: 20%;
+      height: 74px;
+      border-right: 1px solid #eeeeee;
+      img {
+        width: 75px;
+        height: 74px;
+      }
+      .userinfobox_left_l {
+        margin-left: 20px;
+        p {
+          margin-top: 5px;
+        }
+        p:first-child {
+          font-size: 16px;
+          font-weight: 700;
+        }
+        p:nth-child(2) {
+          font-size: 14px;
+        }
+        p:last-child {
+          color: #0195ff;
+        }
+      }
+    }
+    .userinfobox_right {
+      width: 80%;
+      display: flex;
+      justify-content: space-around;
+      .userinfobox_right_item {
+        p {
+          margin-top: 10px;
+        }
+        p:first-child {
+          font-size: 18px;
+          font-weight: 700;
+          color: #0195ff;
+        }
+        p:last-child {
+          font-size: 14px;
+        }
+      }
+    }
+  }
+}
+.statement_body {
+  width: 100%;
+  display: flex;
+  margin-top: 10px;
+  justify-content: space-between;
+  .statement_body_left {
+    width: 67%;
+    background-color: #fff;
+    height: 400px;
+    padding: 15px;
+    box-sizing: border-box;
+    .cityinfo_title {
+      font-size: 16px;
+      font-weight: 700;
+      .el-icon-s-grid {
+        margin-right: 5px;
+        font-size: 20px;
+        color: #0195ff;
+      }
+    }
+    .statement_body_left_title {
+      display: flex;
+      justify-content: space-between;
+      .statement_body_input {
+        display: flex;
+      }
+    }
+    .statement_body_left_high {
+      width: 100%;
+      height: 300px;
+      margin-top: 20px;
+      .highcharts {
+        height: 330px;
+      }
+    }
+  }
+  .statement_body_right {
+    width: 32%;
+    background-color: #fff;
+    height: 400px;
+    padding: 15px;
+    box-sizing: border-box;
+    .cityinfo_title {
+      font-size: 16px;
+      font-weight: 700;
+      .el-icon-s-grid {
+        margin-right: 5px;
+        font-size: 20px;
+        color: #0195ff;
+      }
+    }
+    .statement_body_right_title {
+      display: flex;
+      justify-content: space-between;
+      .statement_body_input {
+        display: flex;
+      }
+    }
+    .hint {
+      display: flex;
+      width: 100%;
+      text-align: center;
+      justify-content: center;
+      p {
+        margin: 0 10px;
+        font-size: 14px;
+      }
+      span {
+        color: #0195ff;
+      }
+    }
+  }
+}
+.statement_footer {
+  width: 100%;
+  background-color: #fff;
+  padding: 15px;
+  box-sizing: border-box;
+  margin-top: 10px;
+  .statement_footer_title {
+    display: flex;
+    justify-content: space-between;
+    .tableinfo_title_tab {
+      display: flex;
+      .nonep {
+        width: 80px;
+        height: 26px;
+        line-height: 26px;
+        text-align: center;
+        border: 1px solid #0195ff;
+        color: #0195ff;
+      }
+      .selectp {
+        width: 80px;
+        height: 26px;
+        line-height: 26px;
+        text-align: center;
+        border: 1px solid #0195ff;
+        background-color: #0195ff;
+        color: #fff;
+      }
+    }
+  }
+  .tablebox {
+    margin-top: 20px;
+    /deep/.el-table__header {
+      th {
+        background-color: #2c3757;
+        color: #fff;
+      }
+    }
+  }
+}
+
+/deep/.el-input-group__append {
+  background-color: #0195ff;
+  color: #fff;
+  width: 28px;
+  padding: 0;
+  text-align: center;
+}
+</style>

+ 333 - 0
src/pages/plantGuard/waterPrice/wellsmanage.vue

@@ -0,0 +1,333 @@
+<!-- 机井管理 -->
+<template>
+  <div class="">
+    <el-card class="box-card">
+      <div class="peasantnorm_title">
+        <div class="peasantnorm_title_left">
+          <i class="el-icon-s-grid"></i>机井信息
+        </div>
+        <div class="peasantnorm_title_right">
+          <el-input
+            placeholder="请输入区域"
+            v-model="serterinfo.city"
+            size="mini"
+          >
+            <template slot="append"><i class="el-icon-search"></i></template>
+          </el-input>
+          <el-input
+            placeholder="请输入机井名称"
+            v-model="serterinfo.wellname"
+            size="mini"
+          >
+            <template slot="append"><i class="el-icon-search"></i></template>
+          </el-input>
+          <el-input
+            placeholder="请输入机井ID"
+            v-model="serterinfo.wellID"
+            size="mini"
+          >
+            <template slot="append"><i class="el-icon-search"></i></template>
+          </el-input>
+          <el-button
+            type="info"
+            size="mini"
+            @click="dialogVisible = !dialogVisible"
+            >新增</el-button
+          >
+          <el-button type="info" size="mini">导出</el-button>
+        </div>
+      </div>
+      <div class="peasantnorm_table">
+        <el-table :data="userdata" stripe style="width: 100%">
+          <el-table-column prop="wellname" label="机井名称" width="180">
+          </el-table-column>
+          <el-table-column prop="wellid" label="机井ID" width="180">
+          </el-table-column>
+          <el-table-column
+            prop="city"
+            label="所属城市"
+            width="200px"
+          ></el-table-column>
+          <el-table-column prop="lnglat" label="经纬度"></el-table-column>
+          <el-table-column prop="waterlevel" label="水位"></el-table-column>
+          <el-table-column
+            prop="wateryield"
+            label="水量定额(吨)"
+          ></el-table-column>
+          <el-table-column
+            prop="usewater"
+            label="已用水量(吨)"
+          ></el-table-column>
+          <el-table-column
+            prop="useelectricity"
+            label="已用电量(度)"
+          ></el-table-column>
+          <el-table-column prop="state" label="状态">
+            <template slot-scope="scope">
+              <span
+                :style="{
+                  color: scope.row.state == '在线' ? '#0195ff' : '#f00',
+                }"
+                >{{ scope.row.state }}</span
+              >
+            </template>
+          </el-table-column>
+          <el-table-column prop="uptime" label="更新时间" width="200px">
+            <template slot-scope="scope">{{
+              (scope.row.uptime * 1000) | formatTime
+            }}</template>
+          </el-table-column>
+          <el-table-column label="操作" width="200">
+            <template slot-scope="scope">
+              <!-- <template> -->
+              <el-button size="mini" type="info">用水报表</el-button>
+              <el-button
+                size="mini"
+                type="warning"
+                @click="compilewater(scope.row)"
+                >编辑</el-button
+              >
+              <!--  -->
+            </template>
+          </el-table-column>
+        </el-table>
+        <el-pagination background layout="prev, pager, next" :total="1000">
+        </el-pagination>
+      </div>
+    </el-card>
+    <el-dialog title="提示" :visible.sync="dialogVisible" width="25%" top="15%">
+      <div class="adddialog">
+        <el-form
+          label-position="right"
+          label-width="80px"
+          :model="formLabelAlign"
+        >
+          <el-form-item label="机井名称">
+            <el-input v-model="formLabelAlign.wellname"></el-input>
+          </el-form-item>
+          <el-form-item label="经纬度">
+            <el-input v-model="formLabelAlign.lnglat"></el-input>
+          </el-form-item>
+          <el-form-item label="所属城市">
+            <el-input v-model="formLabelAlign.city"></el-input>
+          </el-form-item>
+          <el-form-item label="水量配额">
+            <el-input v-model="formLabelAlign.wateryield"></el-input>吨
+          </el-form-item>
+        </el-form>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="dialogVisible = false">取 消</el-button>
+        <el-button type="primary" @click="watersubmit">确 定</el-button>
+      </span>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+//这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等)
+
+export default {
+  //import引入的组件需要注入到对象中才能使用
+  components: {},
+  data() {
+    //这里存放数据
+    return {
+      dialogVisible: false, //新增弹框显示及隐藏
+      serterinfo: {
+        city: "",
+        wellname: "",
+        wellID: "",
+      },
+      userdata: [
+        {
+          wellname: "机井一号", //机井名称
+          wellid: "88454515151", //机井id
+          city: "河南省郑州市金水区", //所属城市
+          lnglat: "236.25,12.5484", //经纬度
+          waterlevel: "100", //水位
+          wateryield: "3000", //水量配额
+          usewater: "50", //已用水
+          useelectricity: "50", //已用电
+          state: "在线", //状态
+          uptime: "1636007408", //最新更新时间
+        },
+        {
+          wellname: "机井一号", //机井名称
+          wellid: "88454515151", //机井id
+          city: "河南省郑州市金水区", //所属城市
+          lnglat: "236.25,12.5484", //经纬度
+          waterlevel: "100", //水位
+          wateryield: "3000", //水量配额
+          usewater: "50", //已用水
+          useelectricity: "50", //已用电
+          state: "在线", //状态
+          uptime: "1636007408", //最新更新时间
+        },
+        {
+          wellname: "机井一号", //机井名称
+          wellid: "88454515151", //机井id
+          city: "河南省郑州市金水区", //所属城市
+          lnglat: "236.25,12.5484", //经纬度
+          waterlevel: "100", //水位
+          wateryield: "3000", //水量配额
+          usewater: "50", //已用水
+          useelectricity: "50", //已用电
+          state: "在线", //状态
+          uptime: "1636007408", //最新更新时间
+        },
+        {
+          wellname: "机井一号", //机井名称
+          wellid: "88454515151", //机井id
+          city: "河南省郑州市金水区", //所属城市
+          lnglat: "236.25,12.5484", //经纬度
+          waterlevel: "100", //水位
+          wateryield: "3000", //水量配额
+          usewater: "50", //已用水
+          useelectricity: "50", //已用电
+          state: "离线", //状态
+          uptime: "1636007408", //最新更新时间
+        },
+        {
+          wellname: "机井一号", //机井名称
+          wellid: "88454515151", //机井id
+          city: "河南省郑州市金水区", //所属城市
+          lnglat: "236.25,12.5484", //经纬度
+          waterlevel: "100", //水位
+          wateryield: "3000", //水量配额
+          usewater: "50", //已用水
+          useelectricity: "50", //已用电
+          state: "离线", //状态
+          uptime: "1636007408", //最新更新时间
+        },
+      ],
+      formLabelAlign: {
+        wellname: "", //机井名称
+        lnglat: "", //经纬度
+        city: "",
+        wateryield: "", //水量配额
+      },
+      pricing: [
+        {
+          name: "一号定价",
+          value: "1",
+        },
+        {
+          name: "二号定价",
+          value: "2",
+        },
+        {
+          name: "三号定价",
+          value: "3",
+        },
+      ], //定价
+    };
+  },
+  //监听属性 类似于data概念
+  computed: {},
+  //监控data中的数据变化
+  watch: {},
+  //方法集合
+  methods: {
+    watersubmit() {
+      this.dialogVisible = !this.dialogVisible;
+    },
+    compilewater(item) {
+      this.dialogVisible = !this.dialogVisible;
+      this.formLabelAlign.wellname = item.wellname;
+      this.formLabelAlign.lnglat = item.lnglat;
+      this.formLabelAlign.city = item.city;
+      this.formLabelAlign.wateryield = item.wateryield;
+    },
+    watersubmit() {
+      //弹框确认键
+      this.dialogVisible = !this.dialogVisible;
+      for (var key in this.formLabelAlign) {
+        this.formLabelAlign[key] = "";
+      }
+    },
+  },
+  beforeCreate() {}, //生命周期 - 创建之前
+  //生命周期 - 创建完成(可以访问当前this实例)
+  created() {},
+  beforeMount() {}, //生命周期 - 挂载之前
+  //生命周期 - 挂载完成(可以访问DOM元素)
+  mounted() {},
+  beforeUpdate() {}, //生命周期 - 更新之前
+  updated() {}, //生命周期 - 更新之后
+  beforeDestroy() {}, //生命周期 - 销毁之前
+  destroyed() {}, //生命周期 - 销毁完成
+  activated() {}, //如果页面有keep-alive缓存功能,这个函数会触发
+};
+</script>
+<style scoped lang="less">
+.box-card {
+  width: 98%;
+  height: 83vh;
+  margin: 0 auto;
+}
+.peasantnorm_title {
+  display: flex;
+  justify-content: space-between;
+  .peasantnorm_title_left {
+    font-size: 16px;
+    font-weight: 700;
+    .el-icon-s-grid {
+      margin-right: 5px;
+      font-size: 20px;
+      color: #0195ff;
+    }
+  }
+  .peasantnorm_title_right {
+    width: 42%;
+    display: flex;
+    justify-content: space-around;
+    /deep/.el-input {
+      width: 200px;
+    }
+    /deep/.el-input-group__append {
+      background-color: #0195ff;
+      color: #fff;
+      width: 28px;
+      padding: 0;
+      text-align: center;
+    }
+    /deep/.el-button--info {
+      background-color: #0195ff;
+      border-color: #0195ff;
+    }
+  }
+}
+.peasantnorm_table {
+  margin-top: 20px;
+  /deep/.el-table__header {
+    th {
+      background-color: #2c3757;
+      color: #fff;
+    }
+  }
+}
+/deep/.el-dialog__body {
+  padding: 30px 20px 0;
+}
+/deep/.el-dialog__footer {
+  padding-top: 0;
+}
+.adddialog {
+  width: 85%;
+  margin: 0 auto;
+  /deep/.el-form-item {
+    margin-bottom: 10px;
+  }
+  /deep/.el-form-item__content {
+    display: flex;
+    .el-input {
+      width: 240px;
+      margin-right: 10px;
+    }
+  }
+}
+/deep/.el-pagination.is-background .el-pager li:not(.disabled).active{
+  background-color: #0195ff !important;
+}
+</style>

+ 81 - 1
src/router/index.js

@@ -43,6 +43,18 @@ const PhotoView = () => import('@/Pages/plantGuard/monitor/PhotoView')//监控-
 const Page9 = () => import('@/Pages/plantGuard/page9') //水价管理-地图展示
 const Page10 = () => import('@/Pages/plantGuard/page10') //水价管理-地图展示
 const Page11 = () => import('@/Pages/plantGuard/page11') //水价管理-地图展示
+// -------------------------------------水价管理-------------------------------------------------
+const WaterIndex = () => import('@/Pages/plantGuard/waterPrice/waterindex') //水价管理-水价示范点
+const WaterIndexBase = () => import('@/Pages/plantGuard/waterPrice/waterindexbase') //水价管理-基地详情
+const WaterNorm = () => import('@/Pages/plantGuard/waterPrice/waternorm') //水价管理-水权定额
+const PeasantNorm = () => import('@/Pages/plantGuard/waterPrice/peasantnorm') //水价管理-农户定额
+const WellsManage = () => import('@/Pages/plantGuard/waterPrice/wellsmanage') //水价管理-机井管理
+const IcManage = () => import('@/Pages/plantGuard/waterPrice/icmanage') //水价管理-IC卡管理
+const OperatingRecord = () => import('@/Pages/plantGuard/waterPrice/operatingrecord') //水价管理-操作记录
+const WaterCalculate = () => import('@/Pages/plantGuard/waterPrice/watercalculate') //水价管理-执行定价
+const WaterTransaction = () => import('@/Pages/plantGuard/waterPrice/watertransaction') //水价管理-水权交易
+const WatseRstatement = () => import('@/Pages/plantGuard/waterPrice/watserstatement') //水价管理-水权交易
+
 
 const IrrigateProject = () => import('@/Pages/plantGuard/irrigate/index') //智能灌溉-灌溉展示
 const Irrigate = () => import('@/Pages/plantGuard/irrigate/irrigate') //智能灌溉-灌溉展示
@@ -57,7 +69,10 @@ const DisasterWarnList = () => import('@/Pages/plantGuard/disasterWarn/disasterW
 const DisasterWarnSet = () => import('@/Pages/plantGuard/disasterWarn/disasterWarnSet') //灾害预警-预警历史记录
 
 //---------------------------------------农林植保----------------------------------------------------
-const MapDisplay = () => import('@/Pages/plantGuard/geoinfo/mapdisplay') //测试地图
+const MapDisplay = () => import('@/Pages/plantGuard/geoinfo/map2') //测试地图
+
+
+const RemoteSensing = () => import('@/Pages/geoservers/geoservers') 
 
 Vue.use(Router)
 
@@ -201,6 +216,66 @@ export default new Router({
           meta: { title: '水价管理',order:4,navname: '充值记录', keepAlive: false }
         },
         {
+          path: 'WaterIndex',
+          name: 'WaterIndex',
+          component: WaterIndex,
+          meta: { title: '水价管理',order:4,navname: '水价示范点', keepAlive: false }
+        },
+        {
+          path: 'WaterIndexBase',
+          name: 'WaterIndexBase',
+          component: WaterIndexBase,
+          meta: { title: '水价管理',order:4,navname: '基地详情', keepAlive: false }
+        },
+        {
+          path: 'WaterNorm',
+          name: 'WaterNorm',
+          component: WaterNorm,
+          meta: { title: '水价管理',order:4,navname: '水权定额', keepAlive: false }
+        },
+        {
+          path: 'PeasantNorm',
+          name: 'PeasantNorm',
+          component: PeasantNorm,
+          meta: { title: '水价管理',order:4,navname: '农户定额', keepAlive: false }
+        },
+        {
+          path: 'WellsManage',
+          name: 'WellsManage',
+          component: WellsManage,
+          meta: { title: '水价管理',order:4,navname: '机井管理', keepAlive: false }
+        },
+        {
+          path: 'IcManage',
+          name: 'IcManage',
+          component: IcManage,
+          meta: { title: '水价管理',order:4,navname: 'IC卡管理', keepAlive: false }
+        },
+        {
+          path: 'OperatingRecord',
+          name: 'OperatingRecord',
+          component: OperatingRecord,
+          meta: { title: '水价管理',order:4,navname: '操作记录', keepAlive: false }
+        },
+        {
+          path: 'WaterCalculate',
+          name: 'WaterCalculate',
+          component: WaterCalculate,
+          meta: { title: '水价管理',order:4,navname: '执行定价', keepAlive: false }
+        },
+        {
+          path: 'WaterTransaction',
+          name: 'WaterTransaction',
+          component: WaterTransaction,
+          meta: { title: '水价管理',order:4,navname: '水权交易', keepAlive: false }
+        },
+        {
+          path: 'WatseRstatement',
+          name: 'WatseRstatement',
+          component: WatseRstatement,
+          meta: { title: '水价管理',order:4,navname: '用水报表', keepAlive: false }
+        },
+        {
           path: 'personMsg',
           name:'PersonMsg',
           component: PersonMsg,
@@ -273,6 +348,11 @@ export default new Router({
       path: '/bHome',
       component: Bhome
     },
+
+    {
+      path: '/RemoteSensing',
+      component: RemoteSensing
+    },
   ],
   // mode:'history'
 })

+ 5 - 5
src/util/http.js

@@ -3,11 +3,11 @@ import {DOMIN} from './server.js'
 import Vue from 'vue'
 Vue.prototype.DOMIN = DOMIN
 
-// axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8';
-// axios.defaults.timeout = 30000;
-// axios.defaults.baseURL = DOMIN 
-// axios.defaults.withCredentials = true //axios请求时携带session
-// axios.defaults.crossDomain = true 
+axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8';
+axios.defaults.timeout = 30000;
+axios.defaults.baseURL = DOMIN 
+axios.defaults.withCredentials = true //axios请求时携带session
+axios.defaults.crossDomain = true 
 
 // axios请求前的拦截
 axios.interceptors.request.use(req => {

BIN=BIN
static/images/gaobiao.ico


BIN=BIN
static/images/geoserver/1.png


BIN=BIN
static/images/geoserver/2.png


BIN=BIN
static/images/geoserver/henan.png


BIN=BIN
static/images/geoserver/huaxian.jpg


BIN=BIN
static/images/geoserver/ruzhou.jpg


BIN=BIN
static/images/geoserver/yanjin.jpg


BIN=BIN
static/images/geoserver/yunfei.png


BIN=BIN
static/images/jiantou.png


BIN=BIN
static/images/waterindex/1.png


BIN=BIN
static/images/waterindex/2.png


BIN=BIN
static/images/waterindex/3.png


BIN=BIN
static/images/waterindex/4.png


BIN=BIN
static/images/waterindex/5.png


BIN=BIN
static/images/waterindex/6.png


BIN=BIN
static/images/waterindex/7.png


BIN=BIN
static/images/waterindex/8.png


BIN=BIN
static/images/waterindex/9.png


BIN=BIN
static/images/waterindex/hours.png


BIN=BIN
static/images/waterindex/jianguo.png


BIN=BIN
static/images/waterindex/left.png


BIN=BIN
static/images/waterindex/right.png