소스 검색

饮用水

xsh 3 년 전
부모
커밋
372e7db812
7개의 변경된 파일506개의 추가작업 그리고 61개의 파일을 삭제
  1. 261 19
      package-lock.json
  2. 1 1
      package.json
  3. 28 1
      src/utils/api.js
  4. 173 15
      src/views/Env/DrinkWater.vue
  5. 2 2
      src/views/Env/PigHouseEnv.vue
  6. 12 2
      src/views/Env/chart/ChartWaterPie.vue
  7. 29 21
      src/views/dashboard/chart/ChartWater.vue

+ 261 - 19
package-lock.json

@@ -1122,6 +1122,12 @@
         "to-fast-properties": "^2.0.0"
       }
     },
+    "@gar/promisify": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.2.tgz",
+      "integrity": "sha512-82cpyJyKRoQoRi+14ibCeGPu0CwypgtBAdBhq1WfvagpCZNKqwXbKwXllYSMG91DhmG4jt9gN8eP6lGOtozuaw==",
+      "dev": true
+    },
     "@hapi/address": {
       "version": "2.1.4",
       "resolved": "https://registry.nlark.com/@hapi/address/download/@hapi/address-2.1.4.tgz",
@@ -1188,6 +1194,69 @@
       "integrity": "sha1-K1o6s/kYzKSKjHVMCBaOPwPrphs=",
       "dev": true
     },
+    "@npmcli/fs": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.0.0.tgz",
+      "integrity": "sha512-8ltnOpRR/oJbOp8vaGUnipOi3bqkcW+sLHFlyXIr08OGHmVJLB1Hn7QtGXbYcpVtH1gAYZTlmDXtE4YV0+AMMQ==",
+      "dev": true,
+      "requires": {
+        "@gar/promisify": "^1.0.1",
+        "semver": "^7.3.5"
+      },
+      "dependencies": {
+        "lru-cache": {
+          "version": "6.0.0",
+          "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+          "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+          "dev": true,
+          "requires": {
+            "yallist": "^4.0.0"
+          }
+        },
+        "semver": {
+          "version": "7.3.5",
+          "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
+          "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==",
+          "dev": true,
+          "requires": {
+            "lru-cache": "^6.0.0"
+          }
+        },
+        "yallist": {
+          "version": "4.0.0",
+          "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+          "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+          "dev": true
+        }
+      }
+    },
+    "@npmcli/move-file": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz",
+      "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==",
+      "dev": true,
+      "requires": {
+        "mkdirp": "^1.0.4",
+        "rimraf": "^3.0.2"
+      },
+      "dependencies": {
+        "mkdirp": {
+          "version": "1.0.4",
+          "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
+          "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
+          "dev": true
+        },
+        "rimraf": {
+          "version": "3.0.2",
+          "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
+          "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+          "dev": true,
+          "requires": {
+            "glob": "^7.1.3"
+          }
+        }
+      }
+    },
     "@simonwep/pickr": {
       "version": "1.7.4",
       "resolved": "https://registry.npmjs.org/@simonwep/pickr/-/pickr-1.7.4.tgz",
@@ -2177,6 +2246,16 @@
       "integrity": "sha1-vxEWycdYxRt6kz0pa3LCIe2UKLY=",
       "dev": true
     },
+    "aggregate-error": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz",
+      "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==",
+      "dev": true,
+      "requires": {
+        "clean-stack": "^2.0.0",
+        "indent-string": "^4.0.0"
+      }
+    },
     "ajv": {
       "version": "6.12.6",
       "resolved": "https://registry.nlark.com/ajv/download/ajv-6.12.6.tgz?cache=0&sync_timestamp=1631470871211&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fajv%2Fdownload%2Fajv-6.12.6.tgz",
@@ -3319,6 +3398,12 @@
         }
       }
     },
+    "clean-stack": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz",
+      "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==",
+      "dev": true
+    },
     "cli-cursor": {
       "version": "2.1.0",
       "resolved": "https://registry.nlark.com/cli-cursor/download/cli-cursor-2.1.0.tgz?cache=0&sync_timestamp=1629747481175&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcli-cursor%2Fdownload%2Fcli-cursor-2.1.0.tgz",
@@ -3631,34 +3716,97 @@
       }
     },
     "compression-webpack-plugin": {
-      "version": "9.0.0",
-      "resolved": "https://registry.npmjs.org/compression-webpack-plugin/-/compression-webpack-plugin-9.0.0.tgz",
-      "integrity": "sha512-V2KmQqaUkErPT+ZcUGHa8zWpIw1oTYaC7wjGewJm053GWAoY04GfU5B/NZ/JSz1eFp9MggMdLQpEHe1TJAQY1A==",
+      "version": "5.0.2",
+      "resolved": "https://registry.npmjs.org/compression-webpack-plugin/-/compression-webpack-plugin-5.0.2.tgz",
+      "integrity": "sha512-F2G4cQfsMZ6CiPlG22Q5EDUCqnfyZqTjyJP5cMgNYUbBg/dUzV3hto8yTFFIogDCTWooVbePHQE0qL6FrJUSsA==",
       "dev": true,
       "requires": {
-        "schema-utils": "^3.1.0",
-        "serialize-javascript": "^6.0.0"
-      },
-      "dependencies": {
-        "schema-utils": {
-          "version": "3.1.1",
-          "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz",
-          "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==",
+        "cacache": "^15.0.5",
+        "find-cache-dir": "^3.3.1",
+        "schema-utils": "^2.7.0",
+        "serialize-javascript": "^4.0.0",
+        "webpack-sources": "^1.4.3"
+      },
+      "dependencies": {
+        "cacache": {
+          "version": "15.3.0",
+          "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz",
+          "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==",
+          "dev": true,
+          "requires": {
+            "@npmcli/fs": "^1.0.0",
+            "@npmcli/move-file": "^1.0.1",
+            "chownr": "^2.0.0",
+            "fs-minipass": "^2.0.0",
+            "glob": "^7.1.4",
+            "infer-owner": "^1.0.4",
+            "lru-cache": "^6.0.0",
+            "minipass": "^3.1.1",
+            "minipass-collect": "^1.0.2",
+            "minipass-flush": "^1.0.5",
+            "minipass-pipeline": "^1.2.2",
+            "mkdirp": "^1.0.3",
+            "p-map": "^4.0.0",
+            "promise-inflight": "^1.0.1",
+            "rimraf": "^3.0.2",
+            "ssri": "^8.0.1",
+            "tar": "^6.0.2",
+            "unique-filename": "^1.1.1"
+          }
+        },
+        "chownr": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
+          "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==",
+          "dev": true
+        },
+        "lru-cache": {
+          "version": "6.0.0",
+          "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+          "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
           "dev": true,
           "requires": {
-            "@types/json-schema": "^7.0.8",
-            "ajv": "^6.12.5",
-            "ajv-keywords": "^3.5.2"
+            "yallist": "^4.0.0"
           }
         },
-        "serialize-javascript": {
-          "version": "6.0.0",
-          "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz",
-          "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==",
+        "mkdirp": {
+          "version": "1.0.4",
+          "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
+          "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
+          "dev": true
+        },
+        "p-map": {
+          "version": "4.0.0",
+          "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz",
+          "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==",
+          "dev": true,
+          "requires": {
+            "aggregate-error": "^3.0.0"
+          }
+        },
+        "rimraf": {
+          "version": "3.0.2",
+          "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
+          "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
           "dev": true,
           "requires": {
-            "randombytes": "^2.1.0"
+            "glob": "^7.1.3"
           }
+        },
+        "ssri": {
+          "version": "8.0.1",
+          "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz",
+          "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==",
+          "dev": true,
+          "requires": {
+            "minipass": "^3.1.1"
+          }
+        },
+        "yallist": {
+          "version": "4.0.0",
+          "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+          "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+          "dev": true
         }
       }
     },
@@ -5801,6 +5949,15 @@
         "universalify": "^0.1.0"
       }
     },
+    "fs-minipass": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz",
+      "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==",
+      "dev": true,
+      "requires": {
+        "minipass": "^3.0.0"
+      }
+    },
     "fs-write-stream-atomic": {
       "version": "1.0.10",
       "resolved": "https://registry.npm.taobao.org/fs-write-stream-atomic/download/fs-write-stream-atomic-1.0.10.tgz",
@@ -6554,6 +6711,12 @@
       "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
       "dev": true
     },
+    "indent-string": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
+      "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
+      "dev": true
+    },
     "indexes-of": {
       "version": "1.0.1",
       "resolved": "https://registry.nlark.com/indexes-of/download/indexes-of-1.0.1.tgz",
@@ -7783,6 +7946,51 @@
         }
       }
     },
+    "minipass-collect": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz",
+      "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==",
+      "dev": true,
+      "requires": {
+        "minipass": "^3.0.0"
+      }
+    },
+    "minipass-flush": {
+      "version": "1.0.5",
+      "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz",
+      "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==",
+      "dev": true,
+      "requires": {
+        "minipass": "^3.0.0"
+      }
+    },
+    "minipass-pipeline": {
+      "version": "1.2.4",
+      "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz",
+      "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==",
+      "dev": true,
+      "requires": {
+        "minipass": "^3.0.0"
+      }
+    },
+    "minizlib": {
+      "version": "2.1.2",
+      "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz",
+      "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==",
+      "dev": true,
+      "requires": {
+        "minipass": "^3.0.0",
+        "yallist": "^4.0.0"
+      },
+      "dependencies": {
+        "yallist": {
+          "version": "4.0.0",
+          "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+          "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+          "dev": true
+        }
+      }
+    },
     "mississippi": {
       "version": "3.0.0",
       "resolved": "https://registry.npm.taobao.org/mississippi/download/mississippi-3.0.0.tgz",
@@ -10851,6 +11059,40 @@
       "integrity": "sha1-ofzMBrWNth/XpF2i2kT186Pme6I=",
       "dev": true
     },
+    "tar": {
+      "version": "6.1.11",
+      "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz",
+      "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==",
+      "dev": true,
+      "requires": {
+        "chownr": "^2.0.0",
+        "fs-minipass": "^2.0.0",
+        "minipass": "^3.0.0",
+        "minizlib": "^2.1.1",
+        "mkdirp": "^1.0.3",
+        "yallist": "^4.0.0"
+      },
+      "dependencies": {
+        "chownr": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
+          "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==",
+          "dev": true
+        },
+        "mkdirp": {
+          "version": "1.0.4",
+          "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
+          "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
+          "dev": true
+        },
+        "yallist": {
+          "version": "4.0.0",
+          "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+          "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+          "dev": true
+        }
+      }
+    },
     "terser": {
       "version": "4.8.0",
       "resolved": "https://registry.nlark.com/terser/download/terser-4.8.0.tgz",

+ 1 - 1
package.json

@@ -27,7 +27,7 @@
     "@vue/cli-plugin-vuex": "~4.5.0",
     "@vue/cli-service": "~4.5.0",
     "babel-eslint": "^10.1.0",
-    "compression-webpack-plugin": "^9.0.0",
+    "compression-webpack-plugin": "^5.0.0",
     "eslint": "^6.7.2",
     "eslint-plugin-vue": "^6.2.2",
     "less": "^4.1.1",

+ 28 - 1
src/utils/api.js

@@ -491,7 +491,7 @@ export function getUid(data) {
   })
 }
 
-/* 查询 */
+/* 环境查询 */
 export function getByRoom(data) {
   return axios({
     url: '/produce/room/listByRoom',
@@ -499,3 +499,30 @@ export function getByRoom(data) {
     data: data
   })
 }
+
+/** 饮用水详情 **/
+export function getAllDayWater(data) {
+  return axios({
+    url: '/produce/monthWater/getAllDayWater',
+    method: 'get',
+    params: data
+  })
+}
+
+/** 饮用水全部 **/
+export function getListAllWater(data) {
+  return axios({
+    url: '/produce/dayWater/listAllWater',
+    method: 'post',
+    data: data
+  })
+}
+
+/** 栋舍饮用水 **/
+export function getListWater(data) {
+  return axios({
+    url: '/produce/dayWater/listWater',
+    method: 'post',
+    data: data
+  })
+}

+ 173 - 15
src/views/Env/DrinkWater.vue

@@ -2,27 +2,30 @@
   <div class="drinkWater">
     <div class="reply" :style="{color: color}">全场饮水情况</div>
     <x-form :formItems="formItems" :day="day" @setDay="setDay" @onClickType="onClickType"></x-form>
-    <div class="echarts">
+    <div class="echarts" v-if="allWaterCount && allWaterList.length > 0">
       <div class="echarts-l">
-        <chart-water-pie></chart-water-pie>
+        <chart-water-pie :waterCount="allWaterCount"></chart-water-pie>
       </div>
       <div class="echarts-r">
-        <chart-water></chart-water>
+        <chart-water :dataValue="allWaterList"></chart-water>
       </div>
     </div>
+    <div  class="echarts" v-else>
+      <el-empty description="暂无数据" style="width: 100%;"></el-empty>
+    </div>
     <br/>
     <div class="reply" :style="{color: color}">饮用水详情</div>
     <div class="carousel">
       <swiper class="swiper" :options="swiperOption">
-        <swiper-slide v-for="item in 10" :key="item" style="padding-top: 10px">
+        <swiper-slide v-for="(item, i) in list" :key="i" style="padding-top: 10px">
           <div class="box">
-            <p>育肥1栋1单元</p>
+            <p>{{item.room}}</p>
             <div class="flex">
               <div>
                 <i class="icon1"></i>
               </div>
               <div>
-                <span>145吨</span>
+                <span>{{item.water == null ? '设备暂无数据' : item.water + '吨'}}</span>
               </div>
             </div>
           </div>
@@ -34,15 +37,18 @@
     </div>
     <br/>
     <div class="reply" :style="{color: color}">筛选查询</div>
-    <x-form :formItems="selectItems" :day="day1" @setDay="setDay1" @onClickType="onClickType1"></x-form>
-    <div class="echarts">
+    <x-form :formItems="selectItems" :day="day1"  @setDay="setDay1" @setChange="setChange" @onClickType="onClickType1"></x-form>
+    <div class="echarts" v-if=" waterList.length > 0">
       <div class="echarts-l">
-        <chart-water-pie :id="'1'"></chart-water-pie>
+        <chart-water-pie :id="'1'" :waterCount="waterCount"></chart-water-pie>
       </div>
       <div class="echarts-r">
-        <chart-water :id="'1'" :dataValue="dataValue"></chart-water>
+        <chart-water :id="'1'" :dataValue="waterList" :room="waterRoom"></chart-water>
       </div>
     </div>
+    <div class="echarts" v-else>
+      <el-empty description="暂无数据" style="width: 100%;"></el-empty>
+    </div>
   </div>
 </template>
 
@@ -53,6 +59,9 @@ import ChartWater from "@/views/dashboard/chart/ChartWater";
 import { swiper, swiperSlide } from 'vue-awesome-swiper';
 import 'swiper/css/swiper.css';
 import { mapState } from 'vuex';
+import {getAllDayWater, getByFloor, getListAllWater, getListWater, getSchool, getUid} from "../../utils/api";
+import {timeDate} from "../../utils";
+
 export default {
   name: "DrinkWater",
   components: {
@@ -97,6 +106,13 @@ export default {
           col: 6
         },
         {
+          id: 6,
+          type: 'button',
+          text: '查询',
+          col: 2,
+          click: 'search'
+        },
+        {
           id: 5,
           type: 'button',
           text: '导出数据',
@@ -104,7 +120,7 @@ export default {
           click: 'derive'
         }
       ],
-      day: 2,
+      day: 1,
       swiperOption: {
         slidesPerView: 8,
         spaceBetween: 30,
@@ -127,13 +143,22 @@ export default {
           type: 'select',
           label: '栋舍:',
           placeholder: '请选择栋舍',
-          field: 'areaId',
+          field: 'floorId',
           options: [],
           col: 4
         },
         {
           id: 2,
           type: 'select',
+          label: '楼层:',
+          placeholder: '请选择楼层',
+          field: 'uid',
+          options: [],
+          col: 4
+        },
+        {
+          id: 10,
+          type: 'select',
           label: '单元:',
           placeholder: '请选择单元',
           field: 'unitId',
@@ -169,6 +194,13 @@ export default {
           col: 6
         },
         {
+          id: 8,
+          type: 'button',
+          text: '查询',
+          col: 1,
+          click: 'search'
+        },
+        {
           id: 7,
           type: 'button',
           text: '导出数据',
@@ -177,18 +209,144 @@ export default {
         }
       ],
       day1: 2,
-      dataValue: [12, 13, 10, 13, 9, 23, 21, 21, 24, 23, 14, 21, 21]
+      dataValue: [12, 13, 10, 13, 9, 23, 21, 21, 24, 23, 14, 21, 21],
+      list: [],
+      allWaterList: [],
+      allWaterCount: null,
+      waterList: [],
+      waterCount: null,
+      waterRoom: '',
     }
   },
   methods: {
+    init() {
+      getAllDayWater().then(res => {
+        if(res.code === 10000) {
+          this.list = res.data
+        }
+      })
+    },
+    initAllWater() {
+      getListAllWater({}).then(res => {
+        if(res.code === 10000) {
+          let that = this;
+          that.allWaterList = res.data.data;
+          that.allWaterCount = res.data.countWater;
+        }
+      })
+    },
+    initWater() {
+      getListWater({}).then(res => {
+        if(res.code === 10000) {
+          this.waterList = res.data.data;
+          this.waterCount = res.data.countWater;
+          this.waterRoom = res.data.room;
+        }
+      })
+    },
+    getSchool() {
+      getSchool().then(res => {
+        if(res.code === 10000) {
+          res.data.forEach(item => {
+            item.value = item.id;
+            item.label = item.floorName;
+          })
+          this.selectItems[0].options = res.data;
+        }
+      })
+    },
+    setChange(item) {
+      if(item.type === 'floorId') {
+        let params = {
+          floorId: item.data
+        }
+        getByFloor(params).then(res => {
+          res.data.forEach(item => {
+            item.value = item.uid;
+            item.label = item.alias
+          })
+          this.selectItems[1].options = res.data;
+        })
+      } else if(item.type === 'uid') {
+        let params = {
+          uid: item.data
+        }
+        getUid(params).then(res => {
+          res.data.forEach(item => {
+            item.value = item.id;
+            item.label = item.roomName
+          })
+          this.selectItems[2].options = res.data
+        })
+      }
+    },
     setDay(data) {
       this.day = data;
     },
-    onClickType() {},
+    onClickType(data) {
+      let params = {};
+      if(data.data.value1) {
+        params = {
+          startDate: data.data.value1[0],
+          endDate: data.data.value1[1],
+          type: 4
+        }
+      } else {
+        params = {
+          endDate: timeDate(new Date().getTime()),
+          type: this.day
+        }
+      }
+      getListAllWater(params).then(res => {
+        if(res.code === 10000) {
+          let that = this;
+          that.allWaterList = res.data.data;
+          that.allWaterCount = res.data.countWater;
+        }
+      })
+    },
     setDay1(data) {
       this.day1 = data;
     },
-    onClickType1() {}
+    onClickType1(data) {
+      if(data.type === 'search') {
+        let data1 = data.data;
+        if(data1.unitId) {
+          let params;
+          if(data1.value1) {
+            params = {
+              roomId: data1.unitId,
+              startDate: data1.value1[0],
+              endDate: data1.value1[1],
+              type: 4,
+            }
+          } else {
+            let end = timeDate(new Date().getTime())
+            params = {
+              roomId: data1.unitId,
+              endDate: end,
+              type: this.day1
+            }
+          }
+          getListWater(params).then(res => {
+            if(res.code === 10000) {
+              this.waterList = res.data.data;
+              this.waterCount = res.data.countWater;
+              this.waterRoom = res.data.room;
+            }
+          })
+        } else {
+          console.log(222)
+          this.$message.error('请选择栋舍楼层单元查询');
+        }
+      }
+    }
+  },
+  mounted() {
+    this.initAllWater()
+    this.initWater()
+    this.init()
+    this.getSchool()
   }
 }
 </script>

+ 2 - 2
src/views/Env/PigHouseEnv.vue

@@ -10,7 +10,7 @@
                 <i class="icon1"></i>
               </div>
               <div>
-                <span>{{item.temperature ? item.temperature + '℃' : '暂无数据'}}</span>
+                <span>{{item.temperature ? item.temperature + '℃' : '设备暂无数据'}}</span>
               </div>
             </div>
             <div style="margin-top: 20px" class="flex">
@@ -18,7 +18,7 @@
                 <i class="icon2"></i>
               </div>
               <div>
-                <span>{{item.humidity ? item.humidity + 'RH' : '暂无数据'}}</span>
+                <span>{{item.humidity ? item.humidity + 'RH' : '设备暂无数据'}}</span>
               </div>
             </div>
           </div>

+ 12 - 2
src/views/Env/chart/ChartWaterPie.vue

@@ -13,6 +13,10 @@ export default {
     id: {
       type: String,
       default: () => '0'
+    },
+    waterCount: {
+      type: String,
+      default: () => '0'
     }
   },
   data() {
@@ -26,11 +30,17 @@ export default {
         this.myChart.clear();
         this.init()
       }
+    },
+    waterCount(newVal) {
+      if(newVal) {
+        this.myChart.clear();
+        this.init()
+      }
     }
   },
   methods: {
     init() {
-      let data = [{name: '总饮水量', value: '123.1'}]
+      let data = [{name: '总饮水量', value: this.waterCount.toString()}]
       let formatNumber = function(num) {
         let reg = /(?=(\B)(\d{3})+$)/g;
         return num.toString().replace(reg, ',');
@@ -125,4 +135,4 @@ export default {
 
 <style scoped>
 
-</style>
+</style>

+ 29 - 21
src/views/dashboard/chart/ChartWater.vue

@@ -18,8 +18,12 @@ export default {
     },
     dataValue: {
       type: Array,
-      default: () => [120, 132, 101, 134, 90, 230, 210, 210, 245, 203, 124, 214, 210]
-    }
+      default: () => []
+    },
+    room: {
+      type: String,
+      default: () => '总'
+    },
   },
   computed: {
     ...mapState(['color'])
@@ -30,14 +34,32 @@ export default {
         this.myChart.clear();
         this.init()
       }
-    }
+    },
+    dataValue: {
+      handler(newVal) {
+        if(newVal) {
+          this.myChart.clear();
+          this.init()
+        }
+      },
+      deep: true
+    },
   },
   methods: {
     init() {
-      let dataAxis = ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月', '测试月'];
+      let dataAxis = [];
+      let data = [];
+      this.dataValue.forEach(item => {
+        dataAxis.push(item.createTime)
+        data.push(item.value)
+      })
       let start = dataAxis.length - 12;
       let end = dataAxis.length - 1;
       let options = {
+        title: {
+          text: this.room + '用水量统计',
+          left: 'center'
+        },
         tooltip: {
           trigger: 'axis',
         },
@@ -47,22 +69,8 @@ export default {
           startValue: start,
           endValue: end,
           show: false
-          // zoomOnMouseWheel: false,
-          // zoomLock: true,
+
         }],
-        // dataZoom: [
-        //
-        //   {
-        //     type: 'slider',
-        //     startValue: start,
-        //     endValue:end,
-        //     zoomOnMouseWheel: false,
-        //     zoomLock: true,
-        //   },
-        //   {
-        //     type: 'inside'
-        //   },
-        // ],
         xAxis: [
           {
             type: 'category',
@@ -121,7 +129,7 @@ export default {
                 }
               }
             },
-            data: this.dataValue
+            data: data
           }
         ]
       }
@@ -137,4 +145,4 @@ export default {
 
 <style scoped>
 
-</style>
+</style>