xsh 3 年之前
父节点
当前提交
b9b392ad99

+ 180 - 5
package-lock.json

@@ -3910,6 +3910,14 @@
         "safer-buffer": "^2.1.0"
       }
     },
+    "echarts": {
+      "version": "4.9.0",
+      "resolved": "https://registry.npmjs.org/echarts/-/echarts-4.9.0.tgz",
+      "integrity": "sha512-+ugizgtJ+KmsJyyDPxaw2Br5FqzuBnyOWwcxPKO6y0gc5caYcfnEUIlNStx02necw8jmKmTafmpHhGo4XDtEIA==",
+      "requires": {
+        "zrender": "4.3.2"
+      }
+    },
     "editions": {
       "version": "1.3.4",
       "resolved": "https://registry.npm.taobao.org/editions/download/editions-1.3.4.tgz?cache=0&sync_timestamp=1604222047516&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feditions%2Fdownload%2Feditions-1.3.4.tgz",
@@ -6948,6 +6956,11 @@
         "ansi-regex": "^2.0.0"
       }
     },
+    "has-bigints": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz",
+      "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA=="
+    },
     "has-flag": {
       "version": "3.0.0",
       "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
@@ -6964,8 +6977,7 @@
     "has-symbols": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz",
-      "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=",
-      "dev": true
+      "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q="
     },
     "has-unicode": {
       "version": "2.0.1",
@@ -7654,6 +7666,11 @@
       "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
       "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0="
     },
+    "is-bigint": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.2.tgz",
+      "integrity": "sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA=="
+    },
     "is-binary-path": {
       "version": "1.0.1",
       "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz",
@@ -7662,6 +7679,14 @@
         "binary-extensions": "^1.0.0"
       }
     },
+    "is-boolean-object": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.1.tgz",
+      "integrity": "sha512-bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng==",
+      "requires": {
+        "call-bind": "^1.0.2"
+      }
+    },
     "is-buffer": {
       "version": "1.1.6",
       "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
@@ -7720,8 +7745,7 @@
     "is-date-object": {
       "version": "1.0.1",
       "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz",
-      "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=",
-      "dev": true
+      "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY="
     },
     "is-descriptor": {
       "version": "0.1.6",
@@ -7819,6 +7843,11 @@
       "resolved": "https://registry.npm.taobao.org/is-negated-glob/download/is-negated-glob-1.0.0.tgz",
       "integrity": "sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI="
     },
+    "is-negative-zero": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz",
+      "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w=="
+    },
     "is-number": {
       "version": "3.0.0",
       "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
@@ -7837,6 +7866,11 @@
         }
       }
     },
+    "is-number-object": {
+      "version": "1.0.5",
+      "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.5.tgz",
+      "integrity": "sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw=="
+    },
     "is-path-cwd": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz",
@@ -7921,6 +7955,11 @@
       "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
       "dev": true
     },
+    "is-string": {
+      "version": "1.0.6",
+      "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.6.tgz",
+      "integrity": "sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w=="
+    },
     "is-svg": {
       "version": "2.1.0",
       "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-2.1.0.tgz",
@@ -7934,7 +7973,6 @@
       "version": "1.0.2",
       "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz",
       "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==",
-      "dev": true,
       "requires": {
         "has-symbols": "^1.0.0"
       }
@@ -14499,6 +14537,11 @@
       "integrity": "sha512-OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA==",
       "dev": true
     },
+    "object-inspect": {
+      "version": "1.10.3",
+      "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.10.3.tgz",
+      "integrity": "sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw=="
+    },
     "object-keys": {
       "version": "1.1.1",
       "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
@@ -16221,6 +16264,70 @@
       "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=",
       "dev": true
     },
+    "promise.prototype.finally": {
+      "version": "3.1.2",
+      "resolved": "https://registry.npmjs.org/promise.prototype.finally/-/promise.prototype.finally-3.1.2.tgz",
+      "integrity": "sha512-A2HuJWl2opDH0EafgdjwEw7HysI8ff/n4lW4QEVBCUXFk9QeGecBWv0Deph0UmLe3tTNYegz8MOjsVuE6SMoJA==",
+      "requires": {
+        "define-properties": "^1.1.3",
+        "es-abstract": "^1.17.0-next.0",
+        "function-bind": "^1.1.1"
+      },
+      "dependencies": {
+        "es-abstract": {
+          "version": "1.18.3",
+          "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.3.tgz",
+          "integrity": "sha512-nQIr12dxV7SSxE6r6f1l3DtAeEYdsGpps13dR0TwJg1S8gyp4ZPgy3FZcHBgbiQqnoqSTb+oC+kO4UQ0C/J8vw==",
+          "requires": {
+            "call-bind": "^1.0.2",
+            "es-to-primitive": "^1.2.1",
+            "function-bind": "^1.1.1",
+            "get-intrinsic": "^1.1.1",
+            "has": "^1.0.3",
+            "has-symbols": "^1.0.2",
+            "is-callable": "^1.2.3",
+            "is-negative-zero": "^2.0.1",
+            "is-regex": "^1.1.3",
+            "is-string": "^1.0.6",
+            "object-inspect": "^1.10.3",
+            "object-keys": "^1.1.1",
+            "object.assign": "^4.1.2",
+            "string.prototype.trimend": "^1.0.4",
+            "string.prototype.trimstart": "^1.0.4",
+            "unbox-primitive": "^1.0.1"
+          }
+        },
+        "es-to-primitive": {
+          "version": "1.2.1",
+          "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
+          "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
+          "requires": {
+            "is-callable": "^1.1.4",
+            "is-date-object": "^1.0.1",
+            "is-symbol": "^1.0.2"
+          }
+        },
+        "has-symbols": {
+          "version": "1.0.2",
+          "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz",
+          "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw=="
+        },
+        "is-callable": {
+          "version": "1.2.3",
+          "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz",
+          "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ=="
+        },
+        "is-regex": {
+          "version": "1.1.3",
+          "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.3.tgz",
+          "integrity": "sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==",
+          "requires": {
+            "call-bind": "^1.0.2",
+            "has-symbols": "^1.0.2"
+          }
+        }
+      }
+    },
     "proto-list": {
       "version": "1.2.4",
       "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz",
@@ -18155,6 +18262,24 @@
         "strip-ansi": "^3.0.0"
       }
     },
+    "string.prototype.trimend": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz",
+      "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==",
+      "requires": {
+        "call-bind": "^1.0.2",
+        "define-properties": "^1.1.3"
+      }
+    },
+    "string.prototype.trimstart": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz",
+      "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==",
+      "requires": {
+        "call-bind": "^1.0.2",
+        "define-properties": "^1.1.3"
+      }
+    },
     "string_decoder": {
       "version": "0.10.31",
       "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
@@ -18977,6 +19102,24 @@
       "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==",
       "dev": true
     },
+    "unbox-primitive": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz",
+      "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==",
+      "requires": {
+        "function-bind": "^1.1.1",
+        "has-bigints": "^1.0.1",
+        "has-symbols": "^1.0.2",
+        "which-boxed-primitive": "^1.0.2"
+      },
+      "dependencies": {
+        "has-symbols": {
+          "version": "1.0.2",
+          "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz",
+          "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw=="
+        }
+      }
+    },
     "unc-path-regex": {
       "version": "0.1.2",
       "resolved": "https://registry.npm.taobao.org/unc-path-regex/download/unc-path-regex-0.1.2.tgz",
@@ -20349,6 +20492,33 @@
         "isexe": "^2.0.0"
       }
     },
+    "which-boxed-primitive": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz",
+      "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==",
+      "requires": {
+        "is-bigint": "^1.0.1",
+        "is-boolean-object": "^1.1.0",
+        "is-number-object": "^1.0.4",
+        "is-string": "^1.0.5",
+        "is-symbol": "^1.0.3"
+      },
+      "dependencies": {
+        "has-symbols": {
+          "version": "1.0.2",
+          "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz",
+          "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw=="
+        },
+        "is-symbol": {
+          "version": "1.0.4",
+          "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz",
+          "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==",
+          "requires": {
+            "has-symbols": "^1.0.2"
+          }
+        }
+      }
+    },
     "which-module": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz",
@@ -20512,6 +20682,11 @@
           "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo="
         }
       }
+    },
+    "zrender": {
+      "version": "4.3.2",
+      "resolved": "https://registry.npmjs.org/zrender/-/zrender-4.3.2.tgz",
+      "integrity": "sha512-bIusJLS8c4DkIcdiK+s13HiQ/zjQQVgpNohtd8d94Y2DnJqgM1yjh/jpDb8DoL6hd7r8Awagw8e3qK/oLaWr3g=="
     }
   }
 }

+ 2 - 0
package.json

@@ -17,6 +17,7 @@
     "axios": "0.17.1",
     "babel-plugin-component": "0.10.1",
     "babel-polyfill": "6.26.0",
+    "echarts": "^4.9.0",
     "element-china-area-data": "^5.0.2",
     "element-ui": "2.8.2",
     "gulp": "4.0.2",
@@ -27,6 +28,7 @@
     "lodash": "4.17.5",
     "node-sass": "4.13.1",
     "npm": "^6.9.0",
+    "promise.prototype.finally": "^3.1.2",
     "sass-loader": "6.0.6",
     "svg-sprite-loader": "3.7.3",
     "vue": "2.5.16",

+ 60 - 0
src/components/TableFooter.vue

@@ -0,0 +1,60 @@
+<template>
+  <div style="margin-top: 20px; height: 50px">
+    <el-pagination background
+                   style="float: right; display: inline-block"
+                   :total="totals"
+                   layout="total, sizes, prev, pager, next, jumper"
+                   @size-change="sizeChange"
+                   @current-change="pageChange"
+                   :page-sizes="sizesArray"
+                   :page-size="size"></el-pagination>
+  </div>
+</template>
+
+<script>
+export default {
+  name: 'TableFooter',
+  data () {
+    return {
+
+    }
+  },
+  props: {
+    totals: {
+      type: Number,
+      default () {
+        return 0
+      }
+    },
+    sizesArray: {
+      type: Array,
+      default () {
+        return [10, 20, 40, 60, 80, 100]
+      }
+    },
+    size: {
+      type: Number,
+      default () {
+        return 20
+      }
+    }
+  },
+  methods: {
+    sizeChange (value) {
+      this.$emit('sizeChange', value)
+    },
+    pageChange (value) {
+      this.$emit('pageChange', value)
+    }
+  }
+}
+</script>
+
+<style scoped>
+  /deep/ .el-pagination__jump {
+    color: white;
+  }
+  /deep/ .el-pagination__total {
+    color: white;
+  }
+</style>

+ 3 - 0
src/main.js

@@ -10,8 +10,10 @@ import '@/assets/scss/index.scss'
 import httpRequest from '@/utils/httpRequest' // api: https://github.com/axios/axios
 import { isAuth } from '@/utils'
 import cloneDeep from 'lodash/cloneDeep'
+import echarts from 'echarts';
 
 Vue.use(VueCookie)
+require('promise.prototype.finally').shim()
 Vue.config.productionTip = false
 
 // 非生产环境, 适配mockjs模拟数据                 // api: https://github.com/nuysoft/Mock
@@ -22,6 +24,7 @@ if (process.env.NODE_ENV !== 'production') {
 // 挂载全局
 Vue.prototype.$http = httpRequest // ajax请求方法
 Vue.prototype.isAuth = isAuth     // 权限方法
+Vue.prototype.$echarts = echarts
 
 // 保存整站vuex本地储存初始状态
 window.SITE_CONFIG['storeState'] = cloneDeep(store.state)

+ 71 - 2
src/store/index.js

@@ -13,7 +13,11 @@ export default new Vuex.Store({
     user
   },
   state: {
-    manList: []
+    manList: [],
+    illnesList: [],
+    causeList: [],
+    symptomList: [],
+    tmentplanList: []
   },
   mutations: {
     // 重置vuex本地储存状态
@@ -21,6 +25,22 @@ export default new Vuex.Store({
       Object.keys(state).forEach((key) => {
         state[key] = cloneDeep(window.SITE_CONFIG['storeState'][key])
       })
+    },
+    // 人员列表
+    setManList (state, data) {
+      state.manList = data
+    },
+    setIllnes (state, data) {
+      state.illnesList = data
+    },
+    setCause (state, data) {
+      state.causeList = data
+    },
+    setSymptom (state, data) {
+      state.symptomList = data
+    },
+    setTmentplan (state, data) {
+      state.tmentplanList = data
     }
   },
   actions: {
@@ -29,7 +49,56 @@ export default new Vuex.Store({
         url: http.adornUrl('/management/employee/findAll'),
         method: 'get'
       }).then(res => {
-        console.log(res);
+        if (res.data.code === 0) {
+          content.commit('setManList', res.data.all)
+          // content.state.manList = res.data.all
+        }
+      })
+    },
+    // 疾病表
+    getIllnes (content) {
+      http({
+        url: http.adornUrl('/management/healthdisease/findAll'),
+        method: 'get'
+        // `${url}/management/healthdisease/findAll`
+      }).then(res => {
+        if (res.data.code === 0) {
+          content.commit('setIllnes', res.data.all)
+            // content.state.illnesList = res.all
+        }
+      })
+    },
+    // 病因表
+    getCause (content) {
+      http({
+        url: http.adornUrl('/management/healthdiseasecause/findAll'),
+        method: 'get'
+      }).then(res => {
+        if (res.data.code === 0) {
+          content.commit('setCause', res.data.all)
+        }
+      })
+    },
+    // 症状表
+    getSymptom (content) {
+      http({
+        url: http.adornUrl('/management/healthsymptom/findAll'),
+        method: 'get'
+      }).then(res => {
+        if (res.data.code === 0) {
+          content.commit('setSymptom', res.data.all)
+        }
+      })
+    },
+    // 治疗方案表
+    getTmentplan (content) {
+      http({
+        url: http.adornUrl('/management/healthtreatmentplan/findAll'),
+        method: 'get'
+      }).then(res => {
+        if (res.data.code === 0) {
+          content.commit('setTmentplan', res.data.all)
+        }
       })
     }
   },

+ 1 - 3
src/utils/httpRequest.js

@@ -5,9 +5,7 @@ import qs from 'qs'
 import merge from 'lodash/merge'
 import { clearLoginInfo } from '@/utils'
 
-var cookies = document.cookie.split(' ')
-var cookie = cookies[1].split('=')
-var farmId = cookie[1]
+let farmId = localStorage.getItem('farmId');
 
 const http = axios.create({
   timeout: 1000 * 30,

+ 1 - 0
src/utils/index.js

@@ -52,6 +52,7 @@ export function treeDataTranslate (data, id = 'id', pid = 'parentId') {
  * 清除登录信息
  */
 export function clearLoginInfo () {
+  localStorage.removeItem('farmId')
   Vue.cookie.delete('token')
   store.commit('resetStore')
   router.options.isAddDynamicMenuRoutes = false

+ 1 - 0
src/views/common/login.vue

@@ -82,6 +82,7 @@
               if (data && data.code === 0) {
                 this.$cookie.set('token', data.token)
                 this.$cookie.set('farmId', data.farmId)
+                localStorage.setItem('farmId', data.farmId)
                 this.$router.replace({ name: 'home' })
               } else {
                 this.getCaptcha()

+ 576 - 0
src/views/modules/health/hdisease.vue

@@ -0,0 +1,576 @@
+<template>
+  <div class="hdisease">
+    <el-container>
+      <el-header>
+        <div class="rect" style="padding-bottom: 10px">
+          <el-form
+              :inline="true"
+              :model="searchForm"
+              size="mini">
+            <el-form-item style="width: 200px">
+              <el-input placeholder="耳标" style="width: 200px" v-model="searchForm.earTag"></el-input>
+            </el-form-item>
+            <el-form-item label="症 状">
+              <el-select v-model="searchForm.sympotomName">
+                <el-option v-for="item in symptomList" :key="item.id" :label="item.sympotomName" :value="item.sympotomName"></el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item label="病 因">
+              <el-select v-model="searchForm.causeName">
+                <el-option v-for="item in causeList" :key="item.id" :label="item.causeName" :value="item.causeName"></el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item label="疾病名称">
+              <el-select v-model="searchForm.diseaseName">
+                <el-option v-for="item in illnesList" :key="item.id" :label="item.idseaseName" :value="item.idseaseName"></el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item label="医生姓名">
+              <el-select v-model="searchForm.doctor">
+                <el-option v-for="item in manList" :key="item.id" :label="item.name" :value="item.name"></el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item label="治疗方案">
+              <el-select v-model="searchForm.treatmentPlan">
+                <el-option v-for="item in tmentplanList" :key="item.id" :label="item.medicantName" :value="item.medicantName"></el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item>
+              <el-button icon="el-icon-search" @click="search">查 询</el-button>
+            </el-form-item>
+          </el-form>
+        </div>
+      </el-header>
+      <el-main>
+        <div class="rect" style="margin-top: 20px">
+          <el-form size="mini" :inline="true">
+            <el-form-item>
+              <el-button
+                  icon="el-icon-plus"
+                  @click="visible = true">
+                新 增
+              </el-button>
+              <el-button
+                  icon="el-icon-delete"
+                  @click="delAll">
+                删 除
+              </el-button>
+            </el-form-item>
+          </el-form>
+          <el-table
+              id="select"
+              height="530"
+              :data="tableData"
+              @selection-change="selectionChangeHandle"
+              v-loading="dataListLoading"
+              style="width: 100%"
+              ref="table"
+              stripe
+              border
+              :header-cell-style="{background:'rgb(245,245,245)',color:'#000',height: '45px',fontSize: '13px',fontWeight: 'normal',borderBottom: '1px solid #ccc'}"
+              :cell-style="{color: '#888',fontSize: '13px'}"
+              size="mini">
+            <el-table-column
+                type="selection"
+                header-align="center"
+                align="center"
+                width="50">
+            </el-table-column>
+            <el-table-column
+                prop="pigId"
+                header-align="center"
+                align="center"
+                label="猪只耳标">
+            </el-table-column>
+            <el-table-column
+                prop="diseaseName"
+                header-align="center"
+                align="center"
+                label="疾病名称">
+            </el-table-column>
+            <el-table-column
+                prop="diseaseTime"
+                header-align="center"
+                align="center"
+                label="发病时间">
+            </el-table-column>
+            <el-table-column
+                prop="symptomName"
+                header-align="center"
+                align="center"
+                label="症 状">
+            </el-table-column>
+            <el-table-column
+                prop="causeName"
+                header-align="center"
+                align="center"
+                label="病 因">
+            </el-table-column>
+            <el-table-column
+                prop="diagnosisTime"
+                header-align="center"
+                align="center"
+                label="诊断时间">
+            </el-table-column>
+            <el-table-column
+                prop="doctor"
+                header-align="center"
+                align="center"
+                label="兽医姓名">
+            </el-table-column>
+            <el-table-column
+                prop="treatmentPlan"
+                header-align="center"
+                align="center"
+                label="治疗方案">
+            </el-table-column>
+<!--            <el-table-column-->
+<!--                header-align="center"-->
+<!--                align="center"-->
+<!--                label="治疗结果">-->
+<!--              <template slot-scope="scope">-->
+<!--                <span v-if="scope.row.result === 1">康 复</span>-->
+<!--                <span v-else-if="scope.row.result === 2">死 亡</span>-->
+<!--                <span v-else-if="scope.row.result === 3">无害化处理</span>-->
+<!--              </template>-->
+<!--            </el-table-column>-->
+            <el-table-column
+                fixed="right"
+                header-align="center"
+                align="center"
+                label="操作">
+              <template slot-scope="scope">
+                <el-button
+                    v-if="isAuth('sys:user:update')"
+                    type="text"
+                    size="medium"
+                    @click="addOrUpdateHandle(scope.row)"
+                    style="color: rgb(24,144,255)">
+                  修改
+                </el-button>
+                <el-button
+                    v-if="isAuth('sys:user:delete')"
+                    type="text"
+                    size="medium"
+                    @click="deleteHandle(scope.row.id)"
+                    style="color: rgb(24,144,255)">
+                  删除
+                </el-button>
+              </template>
+            </el-table-column>
+          </el-table>
+          <div class="block">
+            <table-footer
+                :totals="total"
+                :size="limit"
+                @sizeChange="sizeChange"
+                @pageChange="pageChange"></table-footer>
+          </div>
+        </div>
+        <!--  弹框      -->
+        <el-dialog
+            :title="!dataForm.id ? '新增' : '修改'"
+            :close-on-click-modal="false"
+            :visible.sync="visible"
+            width="600px">
+          <el-form
+              :model="dataForm"
+              :rules="dataRule"
+              ref="dataForm"
+              @keyup.enter.native="dataFormSubmit()"
+              label-width="80px"
+              size="mini"
+              style="margin-left: 20px;width: 500px">
+            <el-form-item label="猪只耳标" prop="pigId">
+              <el-input
+                  type="text"
+                  placeholder="请输入耳标号"
+                  v-model="dataForm.pigId"
+                  :disabled="dataForm.id? true: false">
+              </el-input>
+            </el-form-item>
+            <el-form-item label="疾病名称" prop="diseaseName">
+              <el-select v-model="dataForm.diseaseName">
+                <el-option v-for="item in illnesList" :key="item.id" :value="item.idseaseName" :label="item.idseaseName"></el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item label="发病时间" prop="diseaseName">
+              <el-date-picker
+                  v-model="dataForm.diseaseTime"
+                  type="datetime"
+                  placeholder="选择日期时间"
+                  value-format="yyyy-MM-dd HH:mm:ss"
+                  >
+              </el-date-picker>
+            </el-form-item>
+            <el-form-item label="症 状">
+              <el-select v-model="dataForm.sympotomName">
+                <el-option v-for="item in symptomList" :key="item.id" :label="item.sympotomName" :value="item.sympotomName"></el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item label="病 因" prop="causeName">
+              <el-select v-model="dataForm.causeName">
+                <el-option v-for="item in causeList" :key="item.id" :value="item.causeName" :label="item.causeName"></el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item label="兽医姓名" prop="doctorId">
+              <el-select
+                  @change="onChangeMan($event)"
+                  v-model="dataForm.doctorId">
+                <el-option
+                    v-for="item in manList"
+                    :key="item.id"
+                    :label="item.name"
+                    :value="item.id">
+                </el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item label="诊断时间">
+              <el-date-picker
+                  v-model="dataForm.diagnosisTime"
+                  type="date"
+                  placeholder="选择日期时间"
+                  value-format="yyyy-MM-dd"
+              >
+              </el-date-picker>
+            </el-form-item>
+            <el-form-item label="治疗方案">
+              <el-select v-model="dataForm.treatmentPlan">
+                <el-option v-for="item in tmentplanList" :key="item.id" :label="item.medicantName" :value="item.medicantName"></el-option>
+              </el-select>
+            </el-form-item>
+<!--            <el-form-item label="治疗结果">-->
+<!--              <el-select v-model="dataForm.result">-->
+<!--                <el-option v-for="item in options" :key="item.id" :label="item.name" :value="item.id"></el-option>-->
+<!--              </el-select>-->
+<!--            </el-form-item>-->
+<!--            <el-form-item label="隔离状态">-->
+<!--              <el-select v-model="dataForm.isolationStatus">-->
+<!--                <el-option v-for="item in options1" :key="item.id" :label="item.name" :value="item.id"></el-option>-->
+<!--              </el-select>-->
+<!--            </el-form-item>-->
+<!--            <el-form-item label="出栏时间">-->
+<!--              <el-date-picker-->
+<!--                  v-model="dataForm.offTime"-->
+<!--                  type="date"-->
+<!--                  placeholder="选择日期时间"-->
+<!--                  value-format="yyyy-MM-dd"-->
+<!--              >-->
+<!--              </el-date-picker>-->
+<!--            </el-form-item>-->
+          </el-form>
+          <span slot="footer" class="dialog-footer">
+            <el-button size="mini" @click="onCancel">关闭</el-button>
+            <el-button size="mini" type="primary" @click="dataFormSubmit()">确定</el-button>
+          </span>
+        </el-dialog>
+      </el-main>
+    </el-container>
+  </div>
+</template>
+
+<script>
+import {mapState, mapActions} from 'vuex'
+import TableFooter from '../../../components/TableFooter'
+export default {
+  name: 'hdisease',
+  data () {
+    return {
+      searchForm: {
+        earTag: '',
+        causeName: '',
+        diseaseName: '',
+        doctor: '',
+        treatmentPlan: ''
+      },
+      dataListLoading: false,
+      page: 1,
+      limit: 20,
+      tableData: [],
+      total: 0,
+      visible: false,
+      selectList: [],
+      dataForm: {
+        id: '',
+        pigId: '',
+        isolationStatus: '',
+        doctorId: '',
+        doctor: '',
+        diseaseName: '',
+        diseaseTime: '',
+        diagnosisTime: '',
+        treatmentPlan: '',
+        causeName: '',
+        sympotomName: '',
+        result: 1,
+        offTime: ''
+      },
+      options: [
+        {
+          id: 1,
+          name: '康复'
+        },
+        {
+          id: 2,
+          name: '死亡'
+        },
+        {
+          id: 3,
+          name: '无害化处理'
+        }
+      ],
+      options1: [
+        {
+          id: 1,
+          name: '未隔离'
+        },
+        {
+          id: 2,
+          name: '隔离'
+        }
+      ],
+      dataRule: {}
+    }
+  },
+  components: {
+    TableFooter
+  },
+  computed: {
+    ...mapState(['manList', 'causeList', 'illnesList', 'symptomList', 'tmentplanList'])
+  },
+  methods: {
+    ...mapActions(['getManList', 'getTmentplan', 'getSymptom', 'getCause', 'getIllnes']),
+    search () {
+      this.init()
+    },
+    init () {
+      let params = {
+        page: this.page,
+        limit: this.limit,
+        eartag: this.searchForm.earTag,
+        diseaseName: this.searchForm.diseaseName,
+        causeName: this.searchForm.causeName,
+        doctor: this.searchForm.doctor,
+        treatmentPlan: this.searchForm.treatmentPlan
+      }
+      this.dataListLoading = true
+      this.$http({
+        url: this.$http.adornUrl('/management/healthmedicalrecord/list'),
+        method: 'post',
+        data: this.$http.adornData(params, true)
+      })
+      .then(res => {
+        if (res.data.code === 0) {
+          this.tableData = res.data.page.list
+          this.total = res.data.page.totalCount
+        }
+      }).finally(() => {
+        this.dataListLoading = false
+      })
+    },
+    // 修改size
+    sizeChange (val) {
+      this.limit = val
+      this.init()
+    },
+    // 修改页数
+    pageChange (val) {
+      this.page = val
+      this.init()
+    },
+    // 批量删除
+    delAll () {
+      if (this.selectList.length > 0) {
+        let that = this
+        this.$confirm('此操作将永久删除这些数据, 是否继续?', '提示', {
+          confirmButtonText: '确定',
+          cancelButtonText: '取消',
+          type: 'warning'
+        }).then(() => {
+          that.$http({
+            url: that.$http.adornUrl('/management/healthmedicalrecord/delete'),
+            method: 'post',
+            data: that.$http.adornData(that.selectList, false)
+          })
+              .then(res => {
+                if (res.data.code === 0) {
+                  this.$message.success('删除成功!')
+                  this.init()
+                } else {
+                  this.$message.error(res.data.msg)
+                }
+              })
+        }).catch(() => {
+          this.$message({
+            type: 'info',
+            message: '已取消删除'
+          })
+        })
+      } else {
+        this.$message.error('请选择要删除的数据!')
+      }
+    },
+    selectionChangeHandle (val) {
+      this.selectList = []
+      val.forEach(item => {
+        this.selectList.push(item.id)
+      })
+    },
+    addOrUpdateHandle (row) {
+      this.visible = true
+      this.dataForm = {
+        id: row.id,
+        pigId: row.pigId,
+        isolationStatus: row.isolationStatus,
+        doctorId: row.doctorId,
+        doctor: row.doctor,
+        diseaseName: row.diseaseName,
+        diseaseTime: row.diseaseTime,
+        diagnosisTime: row.diagnosisTime,
+        treatmentPlan: row.treatmentPlan,
+        causeName: row.causeName,
+        sympotomName: row.symptomName,
+        result: row.result,
+        offTime: row.offTime
+      }
+    },
+    deleteHandle (id) {
+      let ids = [id]
+      let that = this
+      this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        that.$http({
+          url: that.$http.adornUrl('/management/healthmedicalrecord/delete'),
+          method: 'post',
+          data: that.$http.adornData(ids, false)
+        })
+            .then(res => {
+              if (res.data.code === 0) {
+                this.$message.success('删除成功!')
+                this.init()
+              } else {
+                this.$message.error(res.data.msg)
+              }
+            })
+      }).catch(() => {
+        this.$message({
+          type: 'info',
+          message: '已取消删除'
+        })
+      })
+    },
+    onChangeMan (id) {
+      let man = {}
+      man = this.manList.find(item => {
+        return item.id === id
+      })
+      this.dataForm.doctor = man.name
+    },
+    // 取消
+    onCancel () {
+      this.reset()
+      this.visible = false
+    },
+    dataFormSubmit () {
+      this.$refs['dataForm'].validate((valid) => {
+        if (valid) {
+          let params = {
+            id: this.dataForm.id == '' ? undefined : this.dataForm.id,
+            pigId: this.dataForm.pigId,
+            isolationStatus: this.dataForm.isolationStatus,
+            doctorId: this.dataForm.doctorId,
+            doctor: this.dataForm.doctor,
+            diseaseName: this.dataForm.diseaseName,
+            diseaseTime: this.dataForm.diseaseTime,
+            diagnosisTime: this.dataForm.diagnosisTime,
+            treatmentPlan: this.dataForm.treatmentPlan,
+            causeName: this.dataForm.causeName,
+            result: this.dataForm.result,
+            offTime: this.dataForm.offTime,
+            symptomName: this.dataForm.sympotomName
+          }
+          this.$http({
+            url: this.$http.adornUrl(`${!this.dataForm.id ? '/management/healthmedicalrecord/save' : '/management/healthmedicalrecord/update'}`),
+            method: 'post',
+            data: this.$http.adornData(params, true)
+          }).then(({data}) => {
+            if (data && data.code === 0) {
+              this.visible = false
+              this.$message({
+                message: '操作成功',
+                type: 'success',
+                duration: 1500
+              })
+              this.init()
+            } else {
+              this.$message.error(data.msg)
+            }
+          })
+        }
+      })
+    },
+    reset () {
+      this.dataForm = {
+        id: '',
+        pigId: '',
+        isolationStatus: '',
+        doctorId: '',
+        doctor: '',
+        diseaseName: '',
+        diseaseTime: '',
+        diagnosisTime: '',
+        treatmentPlan: '',
+        causeName: '',
+        sympotomName: '',
+        result: 1,
+        offTime: ''
+      }
+    }
+  },
+  created () {
+    this.getIllnes()
+    this.getManList()
+    this.getTmentplan()
+    this.getSymptom()
+    this.getCause()
+  },
+  mounted () {
+    this.init()
+  }
+}
+</script>
+
+<style scoped>
+  .rect {
+    background-color: #fff;
+    padding: 30px 15px;
+    border-radius: 5px;
+    border: 1px solid #e8e8e8;
+  }
+  /deep/ .el-table--mini td, .el-table--mini th {
+    padding: 3px 0 !important;
+    height: 20px !important;
+  }
+  /deep/ .el-checkbox__input.is-checked+.el-checkbox__label {
+    color: rgb(24,144,255);
+    background-color: rgb(24,144,255);
+    border-color: rgb(24,144,255);
+  }
+  /deep/.el-table .el-checkbox__input.is-checked .el-checkbox__inner, .el-checkbox__input.is-indeterminate .el-checkbox__inner {
+    background-color: rgb(24,144,255);
+    border-color: rgb(24,144,255);
+  }
+  /deep/.el-table .el-checkbox__inner:hover {
+    border-color: rgb(24,144,255);
+  }
+  /deep/.el-table .el-checkbox__input.is-focus .el-checkbox__inner {
+    border-color: rgb(24,144,255);
+  }
+  /deep/.el-table #select .cell .el-checkbox__input.is-checked .el-checkbox__inner, .el-checkbox__input.is-indeterminate .el-checkbox__inner {
+    background-color: rgb(24,144,255);
+    border-color: rgb(24,144,255);
+  }
+</style>

+ 319 - 0
src/views/modules/health/hrecord.vue

@@ -0,0 +1,319 @@
+<template>
+  <div class="hrecord">
+    <el-container>
+      <el-header>
+        <div class="rect" style="padding-bottom: 10px">
+          <el-form
+              :inline="true"
+              :model="searchForm"
+              size="mini">
+            <el-form-item style="width: 200px">
+              <el-input placeholder="耳标" style="width: 200px" v-model="searchForm.earTag"></el-input>
+            </el-form-item>
+            <el-form-item label="症 状">
+              <el-select v-model="searchForm.sympotomName">
+                <el-option v-for="item in symptomList" :key="item.id" :label="item.sympotomName" :value="item.sympotomName"></el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item label="病 因">
+              <el-select v-model="searchForm.causeName">
+                <el-option v-for="item in causeList" :key="item.id" :label="item.causeName" :value="item.causeName"></el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item label="疾病名称">
+              <el-select v-model="searchForm.diseaseName">
+                <el-option v-for="item in illnesList" :key="item.id" :label="item.idseaseName" :value="item.idseaseName"></el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item label="医生姓名">
+              <el-select v-model="searchForm.doctor">
+                <el-option v-for="item in manList" :key="item.id" :label="item.name" :value="item.name"></el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item label="治疗方案">
+              <el-select v-model="searchForm.treatmentPlan">
+                <el-option v-for="item in tmentplanList" :key="item.id" :label="item.medicantName" :value="item.medicantName"></el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item>
+              <el-button icon="el-icon-search" @click="search">查 询</el-button>
+            </el-form-item>
+          </el-form>
+        </div>
+      </el-header>
+      <el-main>
+        <div class="rect" style="margin-top: 20px">
+          <el-table
+              id="select"
+              height="530"
+              :data="tableData"
+              v-loading="dataListLoading"
+              style="width: 100%"
+              ref="table"
+              stripe
+              border
+              :header-cell-style="{background:'rgb(245,245,245)',color:'#000',height: '45px',fontSize: '13px',fontWeight: 'normal',borderBottom: '1px solid #ccc'}"
+              :cell-style="{color: '#888',fontSize: '13px'}"
+              size="mini">
+            <el-table-column
+                prop="pigId"
+                header-align="center"
+                align="center"
+                label="猪只耳标">
+            </el-table-column>
+            <el-table-column
+                prop="diseaseName"
+                header-align="center"
+                align="center"
+                label="疾病名称">
+            </el-table-column>
+            <el-table-column
+                prop="diseaseTime"
+                header-align="center"
+                align="center"
+                label="发病时间">
+            </el-table-column>
+            <el-table-column
+                prop="symptomName"
+                header-align="center"
+                align="center"
+                label="症 状">
+            </el-table-column>
+            <el-table-column
+                prop="causeName"
+                header-align="center"
+                align="center"
+                label="病 因">
+            </el-table-column>
+            <el-table-column
+                prop="diagnosisTime"
+                header-align="center"
+                align="center"
+                label="诊断时间">
+            </el-table-column>
+            <el-table-column
+                prop="doctor"
+                header-align="center"
+                align="center"
+                label="兽医姓名">
+            </el-table-column>
+            <el-table-column
+                prop="treatmentPlan"
+                header-align="center"
+                align="center"
+                label="治疗方案">
+            </el-table-column>
+            <el-table-column
+                header-align="center"
+                align="center"
+                label="治疗结果">
+              <template slot-scope="scope">
+                <span v-if="scope.row.result === 1">康 复</span>
+                <span v-else-if="scope.row.result === 2">死 亡</span>
+                <span v-else-if="scope.row.result === 3">无害化处理</span>
+              </template>
+            </el-table-column>
+            <el-table-column
+                header-align="center"
+                align="center"
+                label="隔离状态">
+              <template slot-scope="scope">
+                <span v-if="scope.row.isolationStatus === 1">未隔离</span>
+                <span v-else-if="scope.row.isolationStatus === 2">隔 离</span>
+              </template>
+            </el-table-column>
+            <el-table-column
+                prop="offTime"
+                header-align="center"
+                align="center"
+                label="出栏时间">
+            </el-table-column>
+            <el-table-column label="操作">
+              <template slot-scope="scope">
+                <el-button
+                    type="text"
+                    size="medium"
+                    @click="look(scope.row)"
+                    style="color: rgb(24,144,255)">
+                  查看温度曲线
+                </el-button>
+              </template>
+            </el-table-column>
+          </el-table>
+          <div class="block">
+            <table-footer
+                :totals="total"
+                :size="limit"
+                @sizeChange="sizeChange"
+                @pageChange="pageChange"></table-footer>
+          </div>
+        </div>
+      </el-main>
+      <el-dialog
+          :title="'温度曲线'"
+          :close-on-click-modal="false"
+          :visible.sync="visible"
+          width="650px">
+        <div style="width: 100%; height: 600px"></div>
+      </el-dialog>
+    </el-container>
+  </div>
+</template>
+
+<script>
+import TableFooter from '../../../components/TableFooter'
+import {mapActions, mapState} from 'vuex'
+export default {
+  name: 'hrecord',
+  data () {
+    return {
+      searchForm: {
+        earTag: '',
+        causeName: '',
+        diseaseName: '',
+        doctor: '',
+        treatmentPlan: ''
+      },
+      dataListLoading: false,
+      page: 1,
+      limit: 20,
+      tableData: [],
+      total: 0,
+      visible: false,
+      selectList: [],
+      dataForm: {
+        id: '',
+        pigId: '',
+        isolationStatus: '',
+        doctorId: '',
+        doctor: '',
+        diseaseName: '',
+        diseaseTime: '',
+        diagnosisTime: '',
+        treatmentPlan: '',
+        causeName: '',
+        sympotomName: '',
+        result: 1,
+        offTime: ''
+      },
+      options: [
+        {
+          id: 1,
+          name: '康复'
+        },
+        {
+          id: 2,
+          name: '死亡'
+        },
+        {
+          id: 3,
+          name: '无害化处理'
+        }
+      ],
+      options1: [
+        {
+          id: 1,
+          name: '未隔离'
+        },
+        {
+          id: 2,
+          name: '隔离'
+        }
+      ],
+      dataRule: {}
+    }
+  },
+  components: {
+    TableFooter
+  },
+  computed: {
+    ...mapState(['manList', 'causeList', 'illnesList', 'symptomList', 'tmentplanList'])
+  },
+  methods: {
+    ...mapActions(['getManList', 'getTmentplan', 'getSymptom', 'getCause', 'getIllnes']),
+    search () {
+      this.init()
+    },
+    init () {
+      let params = {
+        page: this.page,
+        limit: this.limit,
+        eartag: this.searchForm.earTag,
+        diseaseName: this.searchForm.diseaseName,
+        causeName: this.searchForm.causeName,
+        doctor: this.searchForm.doctor,
+        treatmentPlan: this.searchForm.treatmentPlan
+      }
+      this.dataListLoading = true
+      this.$http({
+        url: this.$http.adornUrl('/management/healthmedicalrecord/list'),
+        method: 'post',
+        data: this.$http.adornData(params, true)
+      })
+          .then(res => {
+            if (res.data.code === 0) {
+              this.tableData = res.data.page.list
+              this.total = res.data.page.totalCount
+            }
+          }).finally(() => {
+            this.dataListLoading = false
+          })
+    },
+    // 修改size
+    sizeChange (val) {
+      this.limit = val
+      this.init()
+    },
+    // 修改页数
+    pageChange (val) {
+      this.page = val
+      this.init()
+    },
+    look (row) {
+      this.visible = true
+    }
+  },
+  created () {
+    this.getIllnes()
+    this.getManList()
+    this.getTmentplan()
+    this.getSymptom()
+    this.getCause()
+  },
+  mounted () {
+    this.init()
+  }
+}
+</script>
+
+<style scoped>
+.rect {
+  background-color: #fff;
+  padding: 30px 15px;
+  border-radius: 5px;
+  border: 1px solid #e8e8e8;
+}
+/deep/ .el-table--mini td, .el-table--mini th {
+  padding: 3px 0 !important;
+  height: 20px !important;
+}
+/deep/ .el-checkbox__input.is-checked+.el-checkbox__label {
+  color: rgb(24,144,255);
+  background-color: rgb(24,144,255);
+  border-color: rgb(24,144,255);
+}
+/deep/.el-table .el-checkbox__input.is-checked .el-checkbox__inner, .el-checkbox__input.is-indeterminate .el-checkbox__inner {
+  background-color: rgb(24,144,255);
+  border-color: rgb(24,144,255);
+}
+/deep/.el-table .el-checkbox__inner:hover {
+  border-color: rgb(24,144,255);
+}
+/deep/.el-table .el-checkbox__input.is-focus .el-checkbox__inner {
+  border-color: rgb(24,144,255);
+}
+/deep/.el-table #select .cell .el-checkbox__input.is-checked .el-checkbox__inner, .el-checkbox__input.is-indeterminate .el-checkbox__inner {
+  background-color: rgb(24,144,255);
+  border-color: rgb(24,144,255);
+}
+</style>

+ 592 - 0
src/views/modules/health/htreat.vue

@@ -0,0 +1,592 @@
+<template>
+  <div class="htreat">
+    <el-container>
+      <el-header>
+        <div class="rect" style="padding-bottom: 10px">
+          <el-form
+              :inline="true"
+              :model="searchForm"
+              size="mini">
+            <el-form-item style="width: 200px">
+              <el-input placeholder="耳标" style="width: 200px" v-model="searchForm.earTag"></el-input>
+            </el-form-item>
+            <el-form-item label="症 状">
+              <el-select v-model="searchForm.sympotomName">
+                <el-option v-for="item in symptomList" :key="item.id" :label="item.sympotomName" :value="item.sympotomName"></el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item label="病 因">
+              <el-select v-model="searchForm.causeName">
+                <el-option v-for="item in causeList" :key="item.id" :label="item.causeName" :value="item.causeName"></el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item label="疾病名称">
+              <el-select v-model="searchForm.diseaseName">
+                <el-option v-for="item in illnesList" :key="item.id" :label="item.idseaseName" :value="item.idseaseName"></el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item label="医生姓名">
+              <el-select v-model="searchForm.doctor">
+                <el-option v-for="item in manList" :key="item.id" :label="item.name" :value="item.name"></el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item label="治疗方案">
+              <el-select v-model="searchForm.treatmentPlan">
+                <el-option v-for="item in tmentplanList" :key="item.id" :label="item.medicantName" :value="item.medicantName"></el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item>
+              <el-button icon="el-icon-search" @click="search">查 询</el-button>
+            </el-form-item>
+          </el-form>
+        </div>
+      </el-header>
+      <el-main>
+        <div class="rect" style="margin-top: 20px">
+          <el-form size="mini" :inline="true">
+            <el-form-item>
+<!--              <el-button-->
+<!--                  icon="el-icon-plus"-->
+<!--                  @click="visible = true">-->
+<!--                新 增-->
+<!--              </el-button>-->
+              <el-button
+                  icon="el-icon-delete"
+                  @click="delAll">
+                删 除
+              </el-button>
+            </el-form-item>
+          </el-form>
+          <el-table
+              id="select"
+              height="530"
+              :data="tableData"
+              @selection-change="selectionChangeHandle"
+              v-loading="dataListLoading"
+              style="width: 100%"
+              ref="table"
+              stripe
+              border
+              :header-cell-style="{background:'rgb(245,245,245)',color:'#000',height: '45px',fontSize: '13px',fontWeight: 'normal',borderBottom: '1px solid #ccc'}"
+              :cell-style="{color: '#888',fontSize: '13px'}"
+              size="mini">
+            <el-table-column
+                type="selection"
+                header-align="center"
+                align="center"
+                width="50">
+            </el-table-column>
+            <el-table-column
+                prop="pigId"
+                header-align="center"
+                align="center"
+                label="猪只耳标">
+            </el-table-column>
+            <el-table-column
+                prop="diseaseName"
+                header-align="center"
+                align="center"
+                label="疾病名称">
+            </el-table-column>
+            <el-table-column
+                prop="diseaseTime"
+                header-align="center"
+                align="center"
+                label="发病时间">
+            </el-table-column>
+            <el-table-column
+                prop="symptomName"
+                header-align="center"
+                align="center"
+                label="症 状">
+            </el-table-column>
+            <el-table-column
+                prop="causeName"
+                header-align="center"
+                align="center"
+                label="病 因">
+            </el-table-column>
+            <el-table-column
+                prop="diagnosisTime"
+                header-align="center"
+                align="center"
+                label="诊断时间">
+            </el-table-column>
+            <el-table-column
+                prop="doctor"
+                header-align="center"
+                align="center"
+                label="兽医姓名">
+            </el-table-column>
+            <el-table-column
+                prop="treatmentPlan"
+                header-align="center"
+                align="center"
+                label="治疗方案">
+            </el-table-column>
+            <el-table-column
+                header-align="center"
+                align="center"
+                label="治疗结果">
+              <template slot-scope="scope">
+                <span v-if="scope.row.result === 1">康 复</span>
+                <span v-else-if="scope.row.result === 2">死 亡</span>
+                <span v-else-if="scope.row.result === 3">无害化处理</span>
+              </template>
+            </el-table-column>
+<!--            <el-table-column-->
+<!--                header-align="center"-->
+<!--                align="center"-->
+<!--                label="隔离状态">-->
+<!--              <template slot-scope="scope">-->
+<!--                <span v-if="scope.row.isolationStatus === 1">未隔离</span>-->
+<!--                <span v-else-if="scope.row.isolationStatus === 2">隔 离</span>-->
+<!--              </template>-->
+<!--            </el-table-column>-->
+<!--            <el-table-column-->
+<!--                prop="offTime"-->
+<!--                header-align="center"-->
+<!--                align="center"-->
+<!--                label="出栏时间">-->
+<!--            </el-table-column>-->
+            <el-table-column
+                fixed="right"
+                header-align="center"
+                align="center"
+                label="操作">
+              <template slot-scope="scope">
+                <el-button
+                    v-if="isAuth('sys:user:update')"
+                    type="text"
+                    size="medium"
+                    @click="addOrUpdateHandle(scope.row)"
+                    style="color: rgb(24,144,255)">
+                  修改
+                </el-button>
+                <el-button
+                    v-if="isAuth('sys:user:delete')"
+                    type="text"
+                    size="medium"
+                    @click="deleteHandle(scope.row.id)"
+                    style="color: rgb(24,144,255)">
+                  删除
+                </el-button>
+              </template>
+            </el-table-column>
+          </el-table>
+          <div class="block">
+            <table-footer
+                :totals="total"
+                :size="limit"
+                @sizeChange="sizeChange"
+                @pageChange="pageChange"></table-footer>
+          </div>
+        </div>
+        <!--  弹框      -->
+        <el-dialog
+            :title="!dataForm.id ? '新增' : '修改'"
+            :close-on-click-modal="false"
+            :visible.sync="visible"
+            width="600px">
+          <el-form
+              :model="dataForm"
+              :rules="dataRule"
+              ref="dataForm"
+              @keyup.enter.native="dataFormSubmit()"
+              label-width="80px"
+              size="mini"
+              style="margin-left: 20px;width: 500px">
+            <el-form-item label="猪只耳标" prop="pigId">
+              <el-input
+                  type="text"
+                  placeholder="请输入耳标号"
+                  v-model="dataForm.pigId"
+                  :disabled="dataForm.id? true: false">
+              </el-input>
+            </el-form-item>
+            <el-form-item label="疾病名称" prop="diseaseName" >
+              <el-select v-model="dataForm.diseaseName" disabled>
+                <el-option v-for="item in illnesList" :key="item.id" :value="item.idseaseName" :label="item.idseaseName"></el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item label="发病时间" prop="diseaseName">
+              <el-date-picker
+                  disabled
+                  v-model="dataForm.diseaseTime"
+                  type="datetime"
+                  placeholder="选择日期时间"
+                  value-format="yyyy-MM-dd HH:mm:ss"
+              >
+              </el-date-picker>
+            </el-form-item>
+            <el-form-item label="症 状">
+              <el-select v-model="dataForm.sympotomName" disabled>
+                <el-option v-for="item in symptomList" :key="item.id" :label="item.sympotomName" :value="item.sympotomName"></el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item label="病 因" prop="causeName">
+              <el-select v-model="dataForm.causeName" disabled>
+                <el-option v-for="item in causeList" :key="item.id" :value="item.causeName" :label="item.causeName"></el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item label="兽医姓名" prop="doctorId">
+              <el-select
+                  @change="onChangeMan($event)"
+                  v-model="dataForm.doctorId" disabled>
+                <el-option
+                    v-for="item in manList"
+                    :key="item.id"
+                    :label="item.name"
+                    :value="item.id">
+                </el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item label="诊断时间">
+              <el-date-picker
+                  disabled
+                  v-model="dataForm.diagnosisTime"
+                  type="date"
+                  placeholder="选择日期时间"
+                  value-format="yyyy-MM-dd"
+              >
+              </el-date-picker>
+            </el-form-item>
+            <el-form-item label="治疗方案" >
+              <el-select v-model="dataForm.treatmentPlan" disabled>
+                <el-option v-for="item in tmentplanList" :key="item.id" :label="item.medicantName" :value="item.medicantName"></el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item label="治疗结果">
+              <el-select v-model="dataForm.result">
+                <el-option v-for="item in options" :key="item.id" :label="item.name" :value="item.id"></el-option>
+              </el-select>
+            </el-form-item>
+<!--            <el-form-item label="隔离状态">-->
+<!--              <el-select v-model="dataForm.isolationStatus">-->
+<!--                <el-option v-for="item in options1" :key="item.id" :label="item.name" :value="item.id"></el-option>-->
+<!--              </el-select>-->
+<!--            </el-form-item>-->
+<!--            <el-form-item label="出栏时间">-->
+<!--              <el-date-picker-->
+<!--                  v-model="dataForm.offTime"-->
+<!--                  type="date"-->
+<!--                  placeholder="选择日期时间"-->
+<!--                  value-format="yyyy-MM-dd"-->
+<!--              >-->
+<!--              </el-date-picker>-->
+<!--            </el-form-item>-->
+          </el-form>
+          <span slot="footer" class="dialog-footer">
+            <el-button size="mini" @click="onCancel">关闭</el-button>
+            <el-button size="mini" type="primary" @click="dataFormSubmit()">确定</el-button>
+          </span>
+        </el-dialog>
+      </el-main>
+    </el-container>
+  </div>
+</template>
+<script>
+import TableFooter from '../../../components/TableFooter'
+import {mapActions, mapState} from 'vuex'
+export default {
+  name: 'htreat',
+  data () {
+    return {
+      searchForm: {
+        earTag: '',
+        causeName: '',
+        diseaseName: '',
+        doctor: '',
+        treatmentPlan: ''
+      },
+      dataListLoading: false,
+      page: 1,
+      limit: 20,
+      tableData: [],
+      total: 0,
+      visible: false,
+      selectList: [],
+      dataForm: {
+        id: '',
+        pigId: '',
+        isolationStatus: '',
+        doctorId: '',
+        doctor: '',
+        diseaseName: '',
+        diseaseTime: '',
+        diagnosisTime: '',
+        treatmentPlan: '',
+        causeName: '',
+        sympotomName: '',
+        result: 1,
+        offTime: ''
+      },
+      options: [
+        {
+          id: 1,
+          name: '康复'
+        },
+        {
+          id: 2,
+          name: '死亡'
+        },
+        {
+          id: 3,
+          name: '无害化处理'
+        }
+      ],
+      options1: [
+        {
+          id: 1,
+          name: '未隔离'
+        },
+        {
+          id: 2,
+          name: '隔离'
+        }
+      ],
+      dataRule: {}
+    }
+  },
+  components: {
+    TableFooter
+  },
+  computed: {
+    ...mapState(['manList', 'causeList', 'illnesList', 'symptomList', 'tmentplanList'])
+  },
+  methods: {
+    ...mapActions(['getManList', 'getTmentplan', 'getSymptom', 'getCause', 'getIllnes']),
+    search () {
+      this.init()
+    },
+    init () {
+      let params = {
+        page: this.page,
+        limit: this.limit,
+        eartag: this.searchForm.earTag,
+        diseaseName: this.searchForm.diseaseName,
+        causeName: this.searchForm.causeName,
+        doctor: this.searchForm.doctor,
+        treatmentPlan: this.searchForm.treatmentPlan
+      }
+      this.dataListLoading = true
+      this.$http({
+        url: this.$http.adornUrl('/management/healthmedicalrecord/list'),
+        method: 'post',
+        data: this.$http.adornData(params, true)
+      })
+          .then(res => {
+            if (res.data.code === 0) {
+              this.tableData = res.data.page.list
+              this.total = res.data.page.totalCount
+            }
+          }).finally(() => {
+            this.dataListLoading = false
+          })
+    },
+    // 修改size
+    sizeChange (val) {
+      this.limit = val
+      this.init()
+    },
+    // 修改页数
+    pageChange (val) {
+      this.page = val
+      this.init()
+    },
+    // 批量删除
+    delAll () {
+      if (this.selectList.length > 0) {
+        let that = this
+        this.$confirm('此操作将永久删除这些数据, 是否继续?', '提示', {
+          confirmButtonText: '确定',
+          cancelButtonText: '取消',
+          type: 'warning'
+        }).then(() => {
+          that.$http({
+            url: that.$http.adornUrl('/management/healthmedicalrecord/delete'),
+            method: 'post',
+            data: that.$http.adornData(that.selectList, false)
+          })
+              .then(res => {
+                if (res.data.code === 0) {
+                  this.$message.success('删除成功!')
+                  this.init()
+                } else {
+                  this.$message.error(res.data.msg)
+                }
+              })
+        }).catch(() => {
+          this.$message({
+            type: 'info',
+            message: '已取消删除'
+          })
+        })
+      } else {
+        this.$message.error('请选择要删除的数据!')
+      }
+    },
+    selectionChangeHandle (val) {
+      this.selectList = []
+      val.forEach(item => {
+        this.selectList.push(item.id)
+      })
+    },
+    addOrUpdateHandle (row) {
+      this.visible = true
+      this.dataForm = {
+        id: row.id,
+        pigId: row.pigId,
+        isolationStatus: row.isolationStatus,
+        doctorId: row.doctorId,
+        doctor: row.doctor,
+        diseaseName: row.diseaseName,
+        diseaseTime: row.diseaseTime,
+        diagnosisTime: row.diagnosisTime,
+        treatmentPlan: row.treatmentPlan,
+        causeName: row.causeName,
+        sympotomName: row.symptomName,
+        result: row.result,
+        offTime: row.offTime
+      }
+    },
+    deleteHandle (id) {
+      let ids = [id]
+      let that = this
+      this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        that.$http({
+          url: that.$http.adornUrl('/management/healthmedicalrecord/delete'),
+          method: 'post',
+          data: that.$http.adornData(ids, false)
+        })
+            .then(res => {
+              if (res.data.code === 0) {
+                this.$message.success('删除成功!')
+                this.init()
+              } else {
+                this.$message.error(res.data.msg)
+              }
+            })
+      }).catch(() => {
+        this.$message({
+          type: 'info',
+          message: '已取消删除'
+        })
+      })
+    },
+    onChangeMan (id) {
+      let man = {}
+      man = this.manList.find(item => {
+        return item.id === id
+      })
+      this.dataForm.doctor = man.name
+    },
+    // 取消
+    onCancel () {
+      this.reset()
+      this.visible = false
+    },
+    dataFormSubmit () {
+      this.$refs['dataForm'].validate((valid) => {
+        if (valid) {
+          let params = {
+            id: this.dataForm.id == '' ? undefined : this.dataForm.id,
+            pigId: this.dataForm.pigId,
+            isolationStatus: this.dataForm.isolationStatus,
+            doctorId: this.dataForm.doctorId,
+            doctor: this.dataForm.doctor,
+            diseaseName: this.dataForm.diseaseName,
+            diseaseTime: this.dataForm.diseaseTime,
+            diagnosisTime: this.dataForm.diagnosisTime,
+            treatmentPlan: this.dataForm.treatmentPlan,
+            causeName: this.dataForm.causeName,
+            result: this.dataForm.result,
+            offTime: this.dataForm.offTime,
+            symptomName: this.dataForm.sympotomName
+          }
+          this.$http({
+            url: this.$http.adornUrl(`${!this.dataForm.id ? '/management/healthmedicalrecord/save' : '/management/healthmedicalrecord/update'}`),
+            method: 'post',
+            data: this.$http.adornData(params, true)
+          }).then(({data}) => {
+            if (data && data.code === 0) {
+              this.visible = false
+              this.$message({
+                message: '操作成功',
+                type: 'success',
+                duration: 1500
+              })
+              this.init()
+            } else {
+              this.$message.error(data.msg)
+            }
+          })
+        }
+      })
+    },
+    reset () {
+      this.dataForm = {
+        id: '',
+        pigId: '',
+        isolationStatus: '',
+        doctorId: '',
+        doctor: '',
+        diseaseName: '',
+        diseaseTime: '',
+        diagnosisTime: '',
+        treatmentPlan: '',
+        causeName: '',
+        sympotomName: '',
+        result: 1,
+        offTime: ''
+      }
+    }
+  },
+  created () {
+    this.getIllnes()
+    this.getManList()
+    this.getTmentplan()
+    this.getSymptom()
+    this.getCause()
+  },
+  mounted () {
+    this.init()
+  }
+}
+</script>
+
+<style scoped>
+  .rect {
+    background-color: #fff;
+    padding: 30px 15px;
+    border-radius: 5px;
+    border: 1px solid #e8e8e8;
+  }
+  /deep/ .el-table--mini td, .el-table--mini th {
+    padding: 3px 0 !important;
+    height: 20px !important;
+  }
+  /deep/ .el-checkbox__input.is-checked+.el-checkbox__label {
+    color: rgb(24,144,255);
+    background-color: rgb(24,144,255);
+    border-color: rgb(24,144,255);
+  }
+  /deep/.el-table .el-checkbox__input.is-checked .el-checkbox__inner, .el-checkbox__input.is-indeterminate .el-checkbox__inner {
+    background-color: rgb(24,144,255);
+    border-color: rgb(24,144,255);
+  }
+  /deep/.el-table .el-checkbox__inner:hover {
+    border-color: rgb(24,144,255);
+  }
+  /deep/.el-table .el-checkbox__input.is-focus .el-checkbox__inner {
+    border-color: rgb(24,144,255);
+  }
+  /deep/.el-table #select .cell .el-checkbox__input.is-checked .el-checkbox__inner, .el-checkbox__input.is-indeterminate .el-checkbox__inner {
+    background-color: rgb(24,144,255);
+    border-color: rgb(24,144,255);
+  }
+</style>

+ 390 - 0
src/views/modules/health/hvaccine.vue

@@ -0,0 +1,390 @@
+<template>
+  <div class="hvaccine">
+    <el-container>
+      <el-header>
+        <div class="rect" style="padding-bottom: 10px">
+          <el-form
+              :inline="true"
+              :model="searchForm"
+              size="mini">
+            <el-form-item style="width: 200px">
+              <el-input placeholder="耳标" style="width: 200px" v-model="searchForm.earTag"></el-input>
+            </el-form-item>
+            <el-form-item>
+              <el-button icon="el-icon-search" @click="init">查 询</el-button>
+            </el-form-item>
+            <el-form-item>
+              <el-button icon="el-icon-circle-close">清 空</el-button>
+            </el-form-item>
+          </el-form>
+        </div>
+      </el-header>
+      <el-main>
+        <div class="rect" style="margin-top: 20px">
+          <el-form size="mini" :inline="true">
+            <el-form-item>
+              <el-button
+                  icon="el-icon-plus"
+                  @click="visible = true">
+                新 增
+              </el-button>
+              <el-button
+                  icon="el-icon-delete"
+                  @click="delAll">
+                删 除
+              </el-button>
+            </el-form-item>
+          </el-form>
+          <el-table
+              id="select"
+              height="530"
+              :data="tableData"
+              @selection-change="selectionChangeHandle"
+              v-loading="dataListLoading"
+              style="width: 100%"
+              ref="table"
+              stripe
+              border
+              :header-cell-style="{background:'rgb(245,245,245)',color:'#000',height: '45px',fontSize: '13px',fontWeight: 'normal',borderBottom: '1px solid #ccc'}"
+              :cell-style="{color: '#888',fontSize: '13px'}"
+              size="mini">
+            <el-table-column
+                type="selection"
+                header-align="center"
+                align="center"
+                width="50">
+            </el-table-column>
+            <el-table-column
+                prop="id"
+                header-align="center"
+                align="center"
+                label="id">
+            </el-table-column>
+            <el-table-column
+                prop="pigId"
+                header-align="center"
+                align="center"
+                label="猪只耳标">
+            </el-table-column>
+            <el-table-column
+                prop="vaccineName"
+                header-align="center"
+                align="center"
+                label="疫苗名称">
+            </el-table-column>
+            <el-table-column
+                prop="createTime"
+                header-align="center"
+                align="center"
+                label="创建时间">
+            </el-table-column>
+            <el-table-column
+                prop="manName"
+                header-align="center"
+                align="center"
+                label="操作人">
+            </el-table-column>
+            <el-table-column
+                fixed="right"
+                header-align="center"
+                align="center"
+                label="操作">
+              <template slot-scope="scope">
+                <el-button
+                    v-if="isAuth('sys:user:update')"
+                    type="text"
+                    size="medium"
+                    @click="addOrUpdateHandle(scope.row)"
+                    style="color: rgb(24,144,255)">
+                  修改
+                </el-button>
+                <el-button
+                    v-if="isAuth('sys:user:delete')"
+                    type="text"
+                    size="medium"
+                    @click="deleteHandle(scope.row.id)"
+                    style="color: rgb(24,144,255)">
+                  删除
+                </el-button>
+              </template>
+            </el-table-column>
+          </el-table>
+          <div class="block">
+            <table-footer
+                :totals="total"
+                :size="limit"
+                @sizeChange="sizeChange"
+                @pageChange="pageChange"></table-footer>
+          </div>
+        </div>
+        <!--  弹框      -->
+        <el-dialog
+            :title="!dataForm.id ? '新增' : '修改'"
+            :close-on-click-modal="false"
+            :visible.sync="visible"
+            width="600px">
+          <el-form
+              :model="dataForm"
+              :rules="dataRule"
+              ref="dataForm"
+              @keyup.enter.native="dataFormSubmit()"
+              label-width="80px"
+              size="mini"
+              style="margin-left: 20px;width: 500px">
+            <el-form-item label="猪只耳标" prop="pigId">
+              <el-input
+                  type="textarea"
+                  :rows="2"
+                  placeholder="每个耳标之间用英文逗号隔开,最多可以添加50头猪"
+                  v-model="dataForm.pigId"
+                  :disabled="dataForm.id? true: false">
+              </el-input>
+            </el-form-item>
+            <el-form-item label="疫苗名称" prop="vaccine">
+              <el-input v-model="dataForm.vaccineName" placeholder="请输入疫苗名称"></el-input>
+            </el-form-item>
+            <el-form-item label="操作人" prop="manId">
+              <el-select
+                  ref="slelctRef"
+                  @change="onChangeMan($event)"
+                  v-model="dataForm.manId"
+                  style="width: 100%">
+                <el-option
+                    v-for="item in manList"
+                    :key="item.id"
+                    :label="item.name"
+                    :value="item.id">
+                </el-option>
+              </el-select>
+            </el-form-item>
+
+
+          </el-form>
+          <span slot="footer" class="dialog-footer">
+      <el-button size="mini" @click="onCancel">关闭</el-button>
+      <el-button size="mini" type="primary" @click="dataFormSubmit()">确定</el-button>
+    </span>
+        </el-dialog>
+      </el-main>
+    </el-container>
+  </div>
+</template>
+
+<script>
+import TableFooter from '../../../components/TableFooter'
+import {mapState, mapActions} from 'vuex'
+export default {
+  name: 'hvaccine',
+  components: {
+    TableFooter
+  },
+  data () {
+    return {
+      searchForm: {
+        earTag: ''
+      },
+      tableData: [],
+      dataListLoading: false,
+      page: 1,
+      limit: 20,
+      total: 0,
+      dataForm: {
+        id: '',
+        pigId: '',
+        vaccineName: '',
+        manId: '',
+        manName: ''
+      },
+      visible: false,
+      dataRule: {
+        pigId: [
+          {required: true, message: '猪只耳标不能为空', trigger: 'blur'}
+        ],
+        vaccine: [
+          {required: true, message: '疫苗名称不能为空', trigger: 'blur'}
+        ],
+        manId: [
+          {required: true, message: '操作人不能为空', trigger: 'change'}
+        ]
+      },
+      selectList: []
+    }
+  },
+  computed: {
+    ...mapState(['manList'])
+  },
+  methods: {
+    ...mapActions(['getManList']),
+    // 修改size
+    sizeChange (val) {
+      this.limit = val
+      this.init()
+    },
+    // 修改页数
+    pageChange (val) {
+      this.page = val
+      this.init()
+    },
+    init () {
+      this.dataListLoading = true
+      let params = {
+        page: this.page,
+        limit: this.limit,
+        eartag: this.searchForm.earTag
+      }
+      this.$http({
+        url: this.$http.adornUrl('/management/healthimmunerecord/list'),
+        method: 'post',
+        data: this.$http.adornData(params, false)
+      })
+      .then(res => {
+        if (res.data.code === 0) {
+          this.tableData = res.data.page.list
+          this.total = res.data.page.totalCount
+        }
+      }).finally(() => {
+        this.dataListLoading = false
+      })
+    },
+    selectionChangeHandle (val) {
+      this.selectList = []
+      val.forEach(item => {
+        this.selectList.push(item.id)
+      })
+    },
+    // 修改
+    addOrUpdateHandle (row) {
+      this.dataForm = {
+        id: row.id,
+        pigId: row.pigId,
+        vaccineName: row.vaccineName,
+        manId: row.manId
+      }
+      this.visible = true
+    },
+    deleteHandle (id) {
+      let ids = [id]
+      this.$http({
+        url: this.$http.adornUrl('/management/healthimmunerecord/delete'),
+        method: 'post',
+        data: this.$http.adornData(ids, false)
+      })
+      .then(res => {
+        if (res.data.code === 0) {
+          this.$message.success('删除成功!')
+          this.init()
+        } else {
+          this.$message.error(res.data.msg)
+        }
+      })
+    },
+    onChangeMan (id) {
+      let man = {}
+      man = this.manList.find(item => {
+        return item.id === id
+      })
+      this.dataForm.manName = man.name
+    },
+    dataFormSubmit () {
+      this.$refs['dataForm'].validate((valid) => {
+        if (valid) {
+          let params = {
+            id: this.dataForm.id == '' ? undefined : this.dataForm.id,
+            eartags: this.dataForm.pigId,
+            vaccineName: this.dataForm.vaccineName,
+            manId: this.dataForm.manId,
+            manName: this.dataForm.manName
+          }
+          this.$http({
+            url: this.$http.adornUrl(`${!this.dataForm.id ? '/management/healthimmunerecord/saveAll' : '/management/healthimmunerecord/update'}`),
+            method: 'post',
+            data: this.$http.adornData(params, true)
+          }).then(({data}) => {
+            if (data && data.code === 0) {
+              this.visible = false
+              this.$message({
+                message: '操作成功',
+                type: 'success',
+                duration: 1500
+              })
+              this.init()
+            } else {
+              this.$message.error(data.msg)
+            }
+          })
+        }
+      })
+    },
+    delAll () {
+      this.$http({
+        url: this.$http.adornUrl('/management/healthimmunerecord/delete'),
+        method: 'post',
+        data: this.$http.adornData(this.selectList, false)
+      })
+      .then(res => {
+        if (res.data.code === 0) {
+          this.$message.success('删除成功')
+          this.init()
+        } else {
+          this.$message.error(res.data.msg)
+        }
+      })
+    },
+    // 关闭模态框
+    onCancel () {
+      this.visible = false
+      this.reset()
+    },
+    reset () {
+      this.dataForm = {
+        id: '',
+        pigId: '',
+        vaccine: '',
+        manId: '',
+        manName: ''
+      }
+    }
+  },
+  created () {
+    this.getManList()
+  },
+  mounted () {
+    this.init()
+  }
+}
+</script>
+
+<style scoped>
+  .hvaccine {
+
+  }
+  .rect {
+    background-color: #fff;
+    padding: 30px 15px;
+    border-radius: 5px;
+    border: 1px solid #e8e8e8;
+  }
+  /deep/ .el-table--mini td, .el-table--mini th {
+    padding: 3px 0 !important;
+    height: 20px !important;
+  }
+  /deep/ .el-checkbox__input.is-checked+.el-checkbox__label {
+    color: rgb(24,144,255);
+    background-color: rgb(24,144,255);
+    border-color: rgb(24,144,255);
+  }
+  /deep/.el-table .el-checkbox__input.is-checked .el-checkbox__inner, .el-checkbox__input.is-indeterminate .el-checkbox__inner {
+    background-color: rgb(24,144,255);
+    border-color: rgb(24,144,255);
+  }
+  /deep/.el-table .el-checkbox__inner:hover {
+    border-color: rgb(24,144,255);
+  }
+  /deep/.el-table .el-checkbox__input.is-focus .el-checkbox__inner {
+    border-color: rgb(24,144,255);
+  }
+  /deep/.el-table #select .cell .el-checkbox__input.is-checked .el-checkbox__inner, .el-checkbox__input.is-indeterminate .el-checkbox__inner {
+    background-color: rgb(24,144,255);
+    border-color: rgb(24,144,255);
+  }
+</style>

+ 0 - 11
src/views/modules/pighealth/phfeed.vue

@@ -1,11 +0,0 @@
-<template>
-  <div>
-    采食数据
-  </div>
-</template>
-<script>
-export default {
-}
-</script>
-<style scoped>
-</style>