Browse Source

室内环境检测的猪舍有问题

East 3 years ago
parent
commit
4cccebb0be

+ 1 - 1
config/index.js

@@ -23,7 +23,7 @@ module.exports = {
     },
 
     // Various Dev Server settings
-    host: 'localhost',
+    host: '192.168.1.113',
     //host: 'localhost', // can be overwritten by process.env.HOST
     port: 8001, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined
     autoOpenBrowser: true,

+ 7 - 3
src/utils/httpRequest.js

@@ -8,7 +8,9 @@ import { clearLoginInfo } from '@/utils'
 // var cookies = document.cookie.split(' ')
 // var cookie = cookies[1].split('=')
 // var farmId = cookie[1]
-let farmId = localStorage.getItem('farmId') === 'null'? undefined: parseInt(localStorage.getItem('farmId'));
+let farmId = localStorage.getItem('farmId') === 'null'? undefined: parseInt(localStorage.getItem('farmId'))
+// let formFarmId = Vue.cookie.get('formFarmId') === null? undefined: parseInt(Vue.cookie.get('formFarmId'));
+// console.log(Vue.cookie.get('formFarmId'));
 
 const http = axios.create({
   timeout: 1000 * 30,
@@ -58,7 +60,8 @@ http.adornUrl = (actionName) => {
 http.adornParams = (params = {}, openDefultParams = true) => {
   var defaults = {
     't': new Date().getTime(),
-    farmId: farmId
+    farmId: farmId,
+    formFarmId: Vue.cookie.get('formFarmId') === null? undefined: parseInt(Vue.cookie.get('formFarmId'))
   }
   return openDefultParams ? merge(defaults, params) : params
 }
@@ -74,7 +77,8 @@ http.adornParams = (params = {}, openDefultParams = true) => {
 http.adornData = (data = {}, openDefultdata = true, contentType = 'json') => {
   var defaults = {
     't': new Date().getTime(),
-    farmId: farmId
+    farmId: farmId,
+    formFarmId: Vue.cookie.get('formFarmId') === null? undefined: parseInt(Vue.cookie.get('formFarmId'))
   }
   data = openDefultdata ? merge(defaults, data) : data
   return contentType === 'json' ? JSON.stringify(data) : qs.stringify(data)

+ 1 - 0
src/views/main-navbar.vue

@@ -201,6 +201,7 @@
       farmChange (val) {
         // 管理员选择牧场
         this.$cookie.set('formFarmId', val)
+        location.reload()
       },
       // 修改密码
       updatePasswordHandle () {

+ 4 - 2
src/views/modules/alarm/indoor.vue

@@ -223,7 +223,8 @@
           let farmList = []
           let farmResult = await this.$http({
             url: this.$http.adornUrl("/management/farm/findAll"),
-            method: "post",
+            method: "get",
+            params: this.$http.adornParams({})
           })
           farmResult.data.all && (farmList = farmResult.data.all)
           farmList.forEach(farm => {
@@ -238,7 +239,8 @@
           let pigstyList = []
           let pigstyR = await this.$http({
             url: this.$http.adornUrl("/management/pigsty/findAll"),
-            method: "get"
+            method: "get",
+            params: this.$http.adornParams({})
           })
           pigstyR.data.all && (pigstyList = pigstyR.data.all)
           pigstyList.forEach(pigsty => {

+ 2 - 1
src/views/modules/alarm/meteo.vue

@@ -205,7 +205,8 @@
           let farmList = []
           let farmResult = await this.$http({
             url: this.$http.adornUrl("/management/farm/findAll"),
-            method: "post",
+            method: "get",
+            params: this.$http.adornParams({})
           })
           farmResult.data.all && (farmList = farmResult.data.all)
           farmList.forEach(farm => {

+ 4 - 2
src/views/modules/alarm/temp.vue

@@ -230,7 +230,8 @@
           let farmList = []
           let farmResult = await this.$http({
             url: this.$http.adornUrl("/management/farm/findAll"),
-            method: "post",
+            method: "get",
+            params: this.$http.adornParams({})
           })
           farmResult.data.all && (farmList = farmResult.data.all)
           farmList.forEach(farm => {
@@ -245,7 +246,8 @@
           let pigstyList = []
           let pigstyR = await this.$http({
             url: this.$http.adornUrl("/management/pigsty/findAll"),
-            method: "get"
+            method: "get",
+            params: this.$http.adornParams({})
           })
           pigstyR.data.all && (pigstyList = pigstyR.data.all)
           pigstyList.forEach(pigsty => {

+ 4 - 2
src/views/modules/alarm/water.vue

@@ -223,7 +223,8 @@
           let farmList = []
           let farmResult = await this.$http({
             url: this.$http.adornUrl("/management/farm/findAll"),
-            method: "post",
+            method: "get",
+            params: this.$http.adornParams({})
           })
           farmResult.data.all && (farmList = farmResult.data.all)
           farmList.forEach(farm => {
@@ -238,7 +239,8 @@
           let pigstyList = []
           let pigstyR = await this.$http({
             url: this.$http.adornUrl("/management/pigsty/findAll"),
-            method: "get"
+            method: "get",
+            params: this.$http.adornParams({})
           })
           pigstyR.data.all && (pigstyList = pigstyR.data.all)
           pigstyList.forEach(pigsty => {

+ 1 - 1
src/views/modules/basic/breed.vue

@@ -159,7 +159,7 @@ export default {
       this.dataListLoading = true;
       this.$http({
         url: this.$http.adornUrl("/management/basebloodline/list"),
-        method: "post",
+        method: "get",
         params: this.$http.adornParams({
           page: this.pageIndex,
           limit: this.pageSize

+ 4 - 2
src/views/modules/basic/feeder.vue

@@ -340,7 +340,8 @@ export default {
             position: this.form.position,
             approachTime: this.form.approachTime,
             departureTime: this.form.departureTime,
-            jobStatus: this.form.jobStatus
+            jobStatus: this.form.jobStatus,
+            farmId: parseInt(this.$cookie.get('formFarmId'))
           })
         }).then(result => {
           if (result.data.code === 0) {
@@ -374,7 +375,8 @@ export default {
             position: this.form.position,
             approachTime: this.form.approachTime,
             departureTime: this.form.departureTime,
-            jobStatus: this.form.jobStatus
+            jobStatus: this.form.jobStatus,
+            farmId: parseInt(this.$cookie.get('formFarmId'))
           })
         }).then(result => {
           if (result.data.code === 0) {

+ 8 - 4
src/views/modules/basic/period.vue

@@ -210,13 +210,15 @@ export default {
         // 获取所有牧场
         let farmResult = await this.$http({
           url: this.$http.adornUrl('/management/farm/findAll'),
-          method: 'post'
+          method: 'get',
+          params: this.$http.adornParams({})
         })
         farmResult.data.all && (this.farmList = farmResult.data.all)
         // 获取所有猪舍
         let pighouseResult = await this.$http({
           url: this.$http.adornUrl('/management/pigsty/findAll'),
-          method: 'post'
+          method: 'get',
+          params: this.$http.adornParams({})
         })
         pighouseResult.data.all && (this.pighouseList = pighouseResult.data.all)
         if (data && data.code === 0) {
@@ -313,14 +315,16 @@ export default {
       // 解决猪舍、牧场已删除,但该页面仍不变问题
       this.$http({
         url: this.$http.adornUrl("/management/farm/findAll"),
-        method: "post"
+        method: "get",
+        params: this.$http.adornParams({})
       }).then(async ({ data }) => {
         if (data && data.code === 0) {
           this.farmList = data.all
           // 获取猪舍
           let pighouseResult = await this.$http({
             url: this.$http.adornUrl('/management/pigsty/findAll'),
-            method: 'post'
+            method: 'get',
+            params: this.$http.adornParams({})
           })
           pighouseResult.data.all && (this.pighouseList = pighouseResult.data.all)
           this.phSelectedList = this.pighouseList

+ 5 - 3
src/views/modules/basic/pigsty.vue

@@ -214,7 +214,7 @@ export default {
       this.dataListLoading = true;
       this.$http({
         url: this.$http.adornUrl("/management/pigsty/list"),
-        method: "post",
+        method: "get",
         params: this.$http.adornParams({
           page: this.pageIndex,
           limit: this.pageSize,
@@ -223,12 +223,14 @@ export default {
       }).then(async ({ data }) => {
         let farmResult = await this.$http({
           url: this.$http.adornUrl("/management/farm/findAll"),
-          method: "post"
+          method: "get",
+          params: this.$http.adornParams({})
         });
         farmResult.data.all && (this.farmList = farmResult.data.all)
         let employeeResult = await this.$http({
           url: this.$http.adornUrl("/management/employee/findAll"),
-          method: "post"
+          method: "get",
+          params: this.$http.adornParams({})
         });
         employeeResult.data.all && (this.employeeList = employeeResult.data.all)
         console.log(this.employeeList);

+ 5 - 3
src/views/modules/basic/unit.vue

@@ -213,7 +213,7 @@ export default {
       this.dataListLoading = true
       this.$http({
         url: this.$http.adornUrl('/management/unit/list'),
-        method: 'post',
+        method: 'get',
         params: this.$http.adornParams({
           page: 1,
           limit: 10,
@@ -223,13 +223,15 @@ export default {
         // 获取所有牧场
         let farmResult = await this.$http({
           url: this.$http.adornUrl('/management/farm/findAll'),
-          method: 'post'
+          method: 'get',
+          params: this.$http.adornParams({})
         })
         farmResult.data.all && (this.farmList = farmResult.data.all)
         // 获取所有猪舍
         let pighouseResult = await this.$http({
           url: this.$http.adornUrl('/management/pigsty/findAll'),
-          method: 'post'
+          method: 'get',
+          params: this.$http.adornParams({})
         })
         pighouseResult.data.all && (this.pighouseList = pighouseResult.data.all)
         if (data && data.code === 0) {

+ 0 - 0
src/views/modules/breed/beartag.vue


+ 0 - 134
src/views/modules/breed/bfeed-add-or-update.vue

@@ -1,134 +0,0 @@
-<template>
-  <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"
-      style="margin-left: 20px;width: 500px"
-      size="mini">
-      <el-form-item label="角色名称" prop="roleName">
-        <el-input v-model="dataForm.roleName" placeholder="角色名称"></el-input>
-      </el-form-item>
-      <el-form-item label="备注" prop="remark">
-        <el-input v-model="dataForm.remark" placeholder="备注"></el-input>
-      </el-form-item>
-      <el-form-item size="mini" label="授权">
-        <el-tree
-          :data="menuList"
-          :props="menuListTreeProps"
-          node-key="menuId"
-          ref="menuListTree"
-          :default-expand-all="true"
-          show-checkbox>
-        </el-tree>
-      </el-form-item>
-    </el-form>
-    <span slot="footer" class="dialog-footer">
-      <el-button size="mini" @click="visible = false">关闭</el-button>
-      <el-button size="mini" type="primary" @click="dataFormSubmit()">确定</el-button>
-    </span>
-  </el-dialog>
-</template>
-
-<script>
-  import { treeDataTranslate } from '@/utils'
-  export default {
-    data () {
-      return {
-        visible: false,
-        menuList: [],
-        menuListTreeProps: {
-          label: 'name',
-          children: 'children'
-        },
-        dataForm: {
-          id: 0,
-          roleName: '',
-          remark: ''
-        },
-        dataRule: {
-          roleName: [
-            { required: true, message: '角色名称不能为空', trigger: 'blur' }
-          ]
-        },
-        tempKey: -666666 // 临时key, 用于解决tree半选中状态项不能传给后台接口问题. # 待优化
-      }
-    },
-    methods: {
-      init (id) {
-        this.dataForm.id = id || 0
-        this.$http({
-          url: this.$http.adornUrl('/sys/menu/list'),
-          method: 'get',
-          params: this.$http.adornParams()
-        }).then(({data}) => {
-          this.menuList = treeDataTranslate(data, 'menuId')
-        }).then(() => {
-          this.visible = true
-          this.$nextTick(() => {
-            this.$refs['dataForm'].resetFields()
-            this.$refs.menuListTree.setCheckedKeys([])
-          })
-        }).then(() => {
-          if (this.dataForm.id) {
-            this.$http({
-              url: this.$http.adornUrl(`/sys/role/info/${this.dataForm.id}`),
-              method: 'get',
-              params: this.$http.adornParams()
-            }).then(({data}) => {
-              if (data && data.code === 0) {
-                this.dataForm.roleName = data.role.roleName
-                this.dataForm.remark = data.role.remark
-                var idx = data.role.menuIdList.indexOf(this.tempKey)
-                if (idx !== -1) {
-                  data.role.menuIdList.splice(idx, data.role.menuIdList.length - idx)
-                }
-                this.$refs.menuListTree.setCheckedKeys(data.role.menuIdList)
-              }
-            })
-          }
-        })
-      },
-      // 表单提交
-      dataFormSubmit () {
-        this.$refs['dataForm'].validate((valid) => {
-          if (valid) {
-            this.$http({
-              url: this.$http.adornUrl(`/sys/role/${!this.dataForm.id ? 'save' : 'update'}`),
-              method: 'post',
-              data: this.$http.adornData({
-                'roleId': this.dataForm.id || undefined,
-                'roleName': this.dataForm.roleName,
-                'remark': this.dataForm.remark,
-                'menuIdList': [].concat(this.$refs.menuListTree.getCheckedKeys(), [this.tempKey], this.$refs.menuListTree.getHalfCheckedKeys())
-              })
-            }).then(({data}) => {
-              if (data && data.code === 0) {
-                this.$message({
-                  message: '操作成功',
-                  type: 'success',
-                  duration: 1500,
-                  onClose: () => {
-                    this.visible = false
-                    this.$emit('refreshDataList')
-                  }
-                })
-              } else {
-                this.$message.error(data.msg)
-              }
-            })
-          }
-        })
-      }
-    }
-  }
-</script>
-<style scoped>
-
-</style>

+ 85 - 69
src/views/modules/breed/bfeed.vue

@@ -2,7 +2,7 @@
   <div class="mod-role">
     <div class="rect rect-form">
       <el-form size="mini" :inline="true" :model="dataForm" @keyup.enter.native="getDataList()">
-        <el-form-item style="width: 100px">
+        <!-- <el-form-item style="width: 100px">
           <el-select placeholder="猪舍"></el-select>
         </el-form-item>
         <el-form-item style="width: 100px">
@@ -16,7 +16,7 @@
         </el-form-item>
         <el-form-item>
           <el-input v-model="dataForm.roleName" placeholder="角色名称" clearable></el-input>
-        </el-form-item>
+        </el-form-item> -->
         <el-form-item>
           <el-button 
             icon="el-icon-search"
@@ -27,7 +27,7 @@
       </el-form>
     </div>
     <div class="rect rect-table">
-      <el-form size="mini" :inline="true" :model="dataForm" @keyup.enter.native="getDataList()">
+      <!-- <el-form size="mini" :inline="true" :model="dataForm" @keyup.enter.native="getDataList()">
         <el-form-item>
           <el-button 
             icon="el-icon-plus"
@@ -41,61 +41,74 @@
             @click="deleteHandle()" 
             :disabled="dataListSelections.length <= 0">删 除</el-button>
         </el-form-item>
-      </el-form>
+      </el-form> -->
       <el-table
         :data="dataList"
         border
         stripe
         size="mini"
-        height="540"
+        height="587"
         v-loading="dataListLoading"
-        @selection-change="selectionChangeHandle"
         style="width: 100%;"
         :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'}">
-        <el-table-column
+        <!-- <el-table-column
           type="selection"
           header-align="center"
+          align="center">
+        </el-table-column> -->
+        <el-table-column
+          prop="eartagNo"
+          header-align="center"
+          align="center"
+          label="耳标">
+        </el-table-column>
+        <el-table-column
+          prop="pigHomeName"
+          header-align="center"
           align="center"
-          width="50">
+          label="所属猪舍">
         </el-table-column>
         <el-table-column
-          prop="roleId"
+          prop="unitName"
           header-align="center"
           align="center"
-          width="80"
-          label="ID">
+          label="所属单元">
         </el-table-column>
         <el-table-column
-          prop="roleName"
+          prop="feedIntake"
           header-align="center"
           align="center"
-          label="角色名称">
+          label="采食量">
         </el-table-column>
         <el-table-column
-          prop="remark"
+          prop="weight"
           header-align="center"
           align="center"
-          label="备注">
+          label="当前重量">
         </el-table-column>
         <el-table-column
-          prop="createTime"
+          prop="weightIncrease"
           header-align="center"
           align="center"
-          width="180"
-          label="创建时间">
+          label="体重增加量">
         </el-table-column>
         <el-table-column
+          prop="date"
+          header-align="center"
+          align="center"
+          label="采集时间">
+        </el-table-column>
+        <!-- <el-table-column
           fixed="right"
           header-align="center"
           align="center"
-          width="150"
           label="操作">
           <template slot-scope="scope">
-            <el-button v-if="isAuth('sys:role:update')" type="text" size="small" @click="addOrUpdateHandle(scope.row.roleId)">修改</el-button>
-            <el-button v-if="isAuth('sys:role:delete')" type="text" size="small" @click="deleteHandle(scope.row.roleId)">删除</el-button>
+            <el-button type="text" size="small" @click="addOrUpdateHandle(scope.row.id)">修改</el-button>
+            <el-button type="text" size="small" @click="deleteHandle(scope.row.id)">删除</el-button>
           </template>
-        </el-table-column>
+        </el-table-column> -->
       </el-table>
       <el-pagination
         @size-change="sizeChangeHandle"
@@ -107,13 +120,13 @@
         layout="total, sizes, prev, pager, next, jumper">
       </el-pagination>
       <!-- 弹窗, 新增 / 修改 -->
-      <add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList"></add-or-update>
+      <!-- <add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList"></add-or-update> -->
     </div>
   </div>
 </template>
 
 <script>
-  import AddOrUpdate from './bfeed-add-or-update'
+  // import AddOrUpdate from './bfeed-add-or-update'
   export default {
     data () {
       return {
@@ -125,13 +138,13 @@
         pageSize: 10,
         totalPage: 0,
         dataListLoading: false,
-        dataListSelections: [],
-        addOrUpdateVisible: false
+        // dataListSelections: [],
+        // addOrUpdateVisible: false
       }
     },
-    components: {
-      AddOrUpdate
-    },
+    // components: {
+    //   AddOrUpdate
+    // },
     activated () {
       this.getDataList()
     },
@@ -147,6 +160,7 @@
             'limit': this.pageSize
           })
         }).then(({data}) => {
+          console.log('这是饲料种类配方');
           console.log(data);
           if (data && data.code === 0) {
             this.dataList = data.page.list
@@ -171,46 +185,48 @@
         this.getDataList()
       },
       // 多选
-      selectionChangeHandle (val) {
-        this.dataListSelections = val
-      },
-      // 新增 / 修改
-      addOrUpdateHandle (id) {
-        this.addOrUpdateVisible = true
-        this.$nextTick(() => {
-          this.$refs.addOrUpdate.init(id)
-        })
-      },
-      // 删除
-      deleteHandle (id) {
-        var ids = id ? [id] : this.dataListSelections.map(item => {
-          return item.roleId
-        })
-        this.$confirm(`确定对[id=${ids.join(',')}]进行[${id ? '删除' : '批量删除'}]操作?`, '提示', {
-          confirmButtonText: '确定',
-          cancelButtonText: '取消',
-          type: 'warning'
-        }).then(() => {
-          this.$http({
-            url: this.$http.adornUrl('/sys/role/delete'),
-            method: 'post',
-            data: this.$http.adornData(ids, false)
-          }).then(({data}) => {
-            if (data && data.code === 0) {
-              this.$message({
-                message: '操作成功',
-                type: 'success',
-                duration: 1500,
-                onClose: () => {
-                  this.getDataList()
-                }
-              })
-            } else {
-              this.$message.error(data.msg)
-            }
-          })
-        }).catch(() => {})
-      }
+      // selectionChangeHandle (val) {
+      //   this.dataListSelections = val
+      // },
+      // // 新增 / 修改
+      // addOrUpdateHandle (id) {
+      //   console.log(id);
+      //   this.addOrUpdateVisible = true
+      //   this.$nextTick(() => {
+      //     this.$refs.addOrUpdate.init(id)
+      //   })
+      // },
+      // // 删除
+      // deleteHandle (id) {
+      //   var ids = id ? [id] : this.dataListSelections.map(item => {
+      //     return item.id
+      //   })
+      //   this.$confirm(`确定对[id=${ids.join(',')}]进行[${id ? '删除' : '批量删除'}]操作?`, '提示', {
+      //     confirmButtonText: '确定',
+      //     cancelButtonText: '取消',
+      //     type: 'warning'
+      //   }).then(() => {
+      //     this.$http({
+      //       url: this.$http.adornUrl('/management/breedfeedweighe/delete'),
+      //       method: 'post',
+      //       data: this.$http.adornData(ids, false)
+      //     }).then(({data}) => {
+      //       if (data && data.code === 0) {
+      //         this.getDataList()
+      //         this.$message({
+      //           message: '操作成功',
+      //           type: 'success',
+      //           duration: 1500,
+      //           // onClose: () => {
+      //           //   this.getDataList()
+      //           // }
+      //         })
+      //       } else {
+      //         this.$message.error(data.msg)
+      //       }
+      //     })
+      //   }).catch(() => {})
+      // }
     }
   }
 </script>

+ 127 - 0
src/views/modules/breed/bfood-add-or-update.vue

@@ -0,0 +1,127 @@
+<template>
+  <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"
+      style="margin-left: 20px;width: 500px"
+      size="mini">
+      <el-form-item label="饲料名称" prop="ingredients">
+        <el-input v-model="dataForm.ingredients"></el-input>
+      </el-form-item>
+      <el-form-item label="详细信息" prop="details">
+        <el-input v-model="dataForm.details"></el-input>
+      </el-form-item>
+      <el-form-item label="使用阶段" prop="stage">
+        <el-input v-model="dataForm.stage"></el-input>
+      </el-form-item>
+      <el-form-item label="备注" prop="remark">
+        <el-input v-model="dataForm.remark"></el-input>
+      </el-form-item>
+    </el-form>
+    <span slot="footer" class="dialog-footer">
+      <el-button size="mini" @click="visible = false">关闭</el-button>
+      <el-button size="mini" type="primary" @click="dataFormSubmit()">确定</el-button>
+    </span>
+  </el-dialog>
+</template>
+
+<script>
+  export default {
+    data () {
+      return {
+        visible: false,
+        menuList: [],
+        menuListTreeProps: {
+          label: 'name',
+          children: 'children'
+        },
+        dataForm: {
+          id: 0,
+          ingredients: '',
+          details: '',
+          stage: '',
+          remark: ''
+        },
+        dataRule: {
+          ingredients: [
+            { required: true, message: '饲料名称不能为空', trigger: 'blur' }
+          ],
+          details: [
+            { required: true, message: '详细信息不能为空', trigger: 'blur' }
+          ],
+          stage: [
+            { required: true, message: '使用阶段不能为空', trigger: 'blur' }
+          ]
+        },
+        tempKey: -666666 // 临时key, 用于解决tree半选中状态项不能传给后台接口问题. # 待优化
+      }
+    },
+    methods: {
+      init (id) {
+        this.dataForm.id = id || 0
+        this.visible = true
+        this.$nextTick(() => {
+          this.$refs['dataForm'].resetFields()
+        })
+        console.log(id);
+        if (this.dataForm.id) {
+          this.$http({
+            url: this.$http.adornUrl(`/management/basefeedformula/info/${this.dataForm.id}`),
+            method: 'get',
+            params: this.$http.adornParams()
+          }).then(({data}) => {
+            console.log(data);
+            if (data && data.code === 0) {
+              this.dataForm.ingredients = data.baseFeedFormula.ingredients
+              this.dataForm.details = data.baseFeedFormula.details
+              this.dataForm.stage = data.baseFeedFormula.stage
+              this.dataForm.remark = data.baseFeedFormula.remark
+            }
+          })
+        }
+      },
+      // 表单提交
+      dataFormSubmit () {
+        this.$refs['dataForm'].validate((valid) => {
+          if (valid) {
+            this.$http({
+              url: this.$http.adornUrl(`/management/basefeedformula/${!this.dataForm.id ? 'save' : 'update'}`),
+              method: 'post',
+              data: this.$http.adornData({
+                'id': this.dataForm.id || undefined,
+                'ingredients': this.dataForm.ingredients,
+                'details': this.dataForm.details,
+                'stage': this.dataForm.stage,
+                'remark': this.dataForm.remark || undefined
+              })
+            }).then(({data}) => {
+              if (data && data.code === 0) {
+                this.visible = false
+                this.$emit('refreshDataList')
+                this.$message({
+                  message: '操作成功',
+                  type: 'success',
+                  duration: 1500,
+                  // onClose: () => {
+                  // }
+                })
+              } else {
+                this.$message.error(data.msg)
+              }
+            })
+          }
+        })
+      }
+    }
+  }
+</script>
+<style scoped>
+
+</style>

+ 268 - 0
src/views/modules/breed/bfood.vue

@@ -0,0 +1,268 @@
+<template>
+  <div class="mod-role">
+    <div class="rect rect-form">
+      <el-form size="mini" :inline="true" :model="dataForm" @keyup.enter.native="getDataList()">
+        <!-- <el-form-item style="width: 100px">
+          <el-select placeholder="猪舍"></el-select>
+        </el-form-item>
+        <el-form-item style="width: 100px">
+          <el-select placeholder="单元"></el-select>
+        </el-form-item>
+        <el-form-item style="width: 100px">
+          <el-select placeholder="栏期"></el-select>
+        </el-form-item>
+        <el-form-item>
+          <el-input v-model="dataForm.roleName" placeholder="角色名称" clearable></el-input>
+        </el-form-item>
+        <el-form-item>
+          <el-input v-model="dataForm.roleName" placeholder="角色名称" clearable></el-input>
+        </el-form-item> -->
+        <el-form-item>
+          <el-button 
+            icon="el-icon-search"
+            @click="getDataList()">
+            查 询
+          </el-button>
+        </el-form-item>
+      </el-form>
+    </div>
+    <div class="rect rect-table">
+      <el-form size="mini" :inline="true" :model="dataForm" @keyup.enter.native="getDataList()">
+        <el-form-item>
+          <el-button 
+            icon="el-icon-plus"
+            v-if="isAuth('sys:role:save')" 
+            type="primary" 
+            @click="addOrUpdateHandle()">新 增</el-button>
+          <el-button 
+            icon="el-icon-delete"
+            v-if="isAuth('sys:role:delete')" 
+            type="danger" 
+            @click="deleteHandle()" 
+            :disabled="dataListSelections.length <= 0">删 除</el-button>
+        </el-form-item>
+      </el-form>
+      <el-table
+        :data="dataList"
+        border
+        stripe
+        size="mini"
+        height="540"
+        v-loading="dataListLoading"
+        @selection-change="selectionChangeHandle"
+        style="width: 100%;"
+        :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'}">
+        <el-table-column
+          type="selection"
+          header-align="center"
+          align="center">
+        </el-table-column>
+        <el-table-column
+          prop="ingredients"
+          header-align="center"
+          align="center"
+          label="饲料名称">
+        </el-table-column>
+        <el-table-column
+          prop="details"
+          header-align="center"
+          align="center"
+          label="详细信息">
+        </el-table-column>
+        <el-table-column
+          prop="stage"
+          header-align="center"
+          align="center"
+          label="使用阶段">
+        </el-table-column>
+        <el-table-column
+          prop="remark"
+          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 type="text" size="small" @click="addOrUpdateHandle(scope.row.id)">修改</el-button>
+            <el-button type="text" size="small" @click="deleteHandle(scope.row.id)">删除</el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+      <el-pagination
+        @size-change="sizeChangeHandle"
+        @current-change="currentChangeHandle"
+        :current-page="pageIndex"
+        :page-sizes="[10, 20, 50, 100]"
+        :page-size="pageSize"
+        :total="totalPage"
+        layout="total, sizes, prev, pager, next, jumper">
+      </el-pagination>
+      <!-- 弹窗, 新增 / 修改 -->
+      <add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList"></add-or-update>
+    </div>
+  </div>
+</template>
+
+<script>
+  import AddOrUpdate from './bfood-add-or-update'
+  export default {
+    data () {
+      return {
+        dataForm: {
+          roleName: ''
+        },
+        dataList: [],
+        pageIndex: 1,
+        pageSize: 10,
+        totalPage: 0,
+        dataListLoading: false,
+        dataListSelections: [],
+        addOrUpdateVisible: false
+      }
+    },
+    components: {
+      AddOrUpdate
+    },
+    activated () {
+      this.getDataList()
+    },
+    methods: {
+      // 获取数据列表
+      getDataList () {
+        this.dataListLoading = true
+        this.$http({
+          url: this.$http.adornUrl('/management/basefeedformula/list'),
+          method: 'get',
+          params: this.$http.adornParams({
+            'page': this.pageIndex,
+            'limit': this.pageSize
+          })
+        }).then(({data}) => {
+          console.log('这是饲料种类配方');
+          console.log(data);
+          if (data && data.code === 0) {
+            this.dataList = data.page.list
+            this.totalPage = data.page.totalCount
+          } else {
+            this.dataList = []
+            this.totalPage = 0
+            this.$message.error(data.msg)
+          }
+          this.dataListLoading = false
+        })
+      },
+      // 每页数
+      sizeChangeHandle (val) {
+        this.pageSize = val
+        this.pageIndex = 1
+        this.getDataList()
+      },
+      // 当前页
+      currentChangeHandle (val) {
+        this.pageIndex = val
+        this.getDataList()
+      },
+      // 多选
+      selectionChangeHandle (val) {
+        this.dataListSelections = val
+      },
+      // 新增 / 修改
+      addOrUpdateHandle (id) {
+        console.log(id);
+        this.addOrUpdateVisible = true
+        this.$nextTick(() => {
+          this.$refs.addOrUpdate.init(id)
+        })
+      },
+      // 删除
+      deleteHandle (id) {
+        var ids = id ? [id] : this.dataListSelections.map(item => {
+          return item.id
+        })
+        this.$confirm(`确定对[id=${ids.join(',')}]进行[${id ? '删除' : '批量删除'}]操作?`, '提示', {
+          confirmButtonText: '确定',
+          cancelButtonText: '取消',
+          type: 'warning'
+        }).then(() => {
+          this.$http({
+            url: this.$http.adornUrl('/management/basefeedformula/delete'),
+            method: 'post',
+            data: this.$http.adornData(ids, false)
+          }).then(({data}) => {
+            if (data && data.code === 0) {
+              this.getDataList()
+              this.$message({
+                message: '操作成功',
+                type: 'success',
+                duration: 1500,
+                // onClose: () => {
+                //   this.getDataList()
+                // }
+              })
+            } else {
+              this.$message.error(data.msg)
+            }
+          })
+        }).catch(() => {})
+      }
+    }
+  }
+</script>
+<style scoped>
+.rect {
+  background-color: #fff;
+  padding: 30px 15px;
+  border-radius: 5px;
+  border: 1px solid #e8e8e8;
+}
+.rect-form {
+  padding-bottom: 10px;
+}
+.rect-table {
+  margin-top: 20px;
+}
+.demo-table-expand {
+  font-size: 0;
+  margin-left: 40px;
+}
+.demo-table-expand label {
+  width: 90px;
+  color: #99a9bf;
+}
+.demo-table-expand .el-form-item {
+  margin-right: 0;
+  margin-bottom: 0;
+  width: 80%;
+}
+.el-table .height {
+  background: rgba(254, 254, 254, 0.5);
+}
+/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>

+ 2 - 1
src/views/modules/envir/ealarm.vue

@@ -226,7 +226,8 @@
           let farmList = []
           let farmResult = await this.$http({
             url: this.$http.adornUrl("/management/farm/findAll"),
-            method: "post",
+            method: "get",
+            params: this.$http.adornParams({})
           })
           farmResult.data.all && (farmList = farmResult.data.all)
           farmList.forEach(farm => {

+ 7 - 60
src/views/modules/envir/eindoor.vue

@@ -12,19 +12,9 @@
               <el-button type="warning" :disabled="abnormalStatus===true" @click="changeClick">异常</el-button>
             </el-form-item>
             <el-form-item style="width: 140px">
-              <el-select placeholder="牧场" v-model="form.farmId" :disabled="farmId > 0" @change="farmChange">
+              <el-select placeholder="猪舍" v-model="form.pigstyId">
                 <el-option
-                  v-for="item in farmList"
-                  :key="item.value"
-                  :label="item.label"
-                  :value="item.value">
-                </el-option>
-              </el-select>
-            </el-form-item>
-            <el-form-item style="width: 140px">
-              <el-select placeholder="猪舍" v-model="form.pigstyId" @change="pigstyChange">
-                <el-option
-                  v-for="item in pigstySelectedList"
+                  v-for="item in pigstyList"
                   :key="item.value"
                   :label="item.label"
                   :value="item.value">
@@ -80,12 +70,6 @@
               label="当前日期">
             </el-table-column>
             <el-table-column
-              prop="farmName"
-              header-align="center"
-              align="center"
-              label="牧场">
-            </el-table-column>
-            <el-table-column
               prop="pigstyName"
               header-align="center"
               align="center"
@@ -150,9 +134,7 @@
         totalPage: 0,
         dataListLoading: false,
         farmId: undefined,
-        farmList: [], // 牧场List
         pigstyList: [], // 猪舍List
-        pigstySelectedList: [], // 根据牧场限制的猪舍SelectedList
         labelPosition: 'right',
         abnormalStatus: false,
         pigsty: {
@@ -168,6 +150,7 @@
       // 获取数据列表
       getDataList () {
         this.farmId = this.$cookie.get('farmId') === 'null'? undefined: parseInt(this.$cookie.get('farmId'))
+        this.form.farmId = parseInt(this.$cookie.get('farmId'))
         this.dataListLoading = true
         this.$http({
           url: this.$http.adornUrl('/management/indoorEnvironment/list'),
@@ -189,39 +172,23 @@
             this.totalPage = 0
             this.$message.error(data.msg)
           }
-          // 获取所有牧场
-          this.farmList = []
-          let farmList = []
-          let farmResult = await this.$http({
-            url: this.$http.adornUrl("/management/farm/findAll"),
-            method: "post",
-          })
-          farmResult.data.all && (farmList = farmResult.data.all)
-          farmList.forEach(farm => {
-            let item = {
-              label: farm.name,
-              value: farm.id
-            }
-            this.farmList.push(item)
-          })
           // 栋舍List
           this.pigstyList = []
           let pigstyList = []
           let pigstyR = await this.$http({
             url: this.$http.adornUrl("/management/pigsty/findAll"),
-            method: "get"
+            method: "get",
+            params: this.$http.adornParams({})
           })
           pigstyR.data.all && (pigstyList = pigstyR.data.all)
+          // FIXME: 到这儿了,猪舍有点问题
           pigstyList.forEach(pigsty => {
             let item = {
               value: pigsty.id,
-              label: pigsty.number,
-              farmId: pigsty.farmId
+              label: pigsty.name
             }
             this.pigstyList.push(item)
           })
-          this.pigstySelectedList = this.pigstyList
-          this.form.farmId = (this.form.farmId || this.farmId) || undefined
           this.dataListLoading = false
         })
       },
@@ -230,26 +197,6 @@
         this.abnormalStatus = !this.abnormalStatus
         this.getDataList()
       },
-      // 根据牧场选择限制猪舍
-      farmChange (val) {
-        this.pigstySelectedList = this.pigstyList.filter(item => item.farmId === val)
-        if (this.pigsty.farmId === val) {
-          return
-        }
-        this.form.pigstyId = ''
-      },
-      // 根据猪舍选择确定牧场
-      pigstyChange (val) {
-        for (let pigsty of this.pigstyList) {
-          if (pigsty.value === val) {
-            this.form.farmId = pigsty.farmId
-            this.pigsty.farmId = pigsty.farmId
-            this.pigsty.pigstyId = val
-            break
-          }
-        }
-        this.farmChange(this.form.farmId)
-      },
       // 获取起始与结束时间
       timeChange (val) {
         let start = new Date(val[0])

+ 2 - 1
src/views/modules/envir/emeteo.vue

@@ -165,7 +165,8 @@
           let farmList = []
           let farmResult = await this.$http({
             url: this.$http.adornUrl("/management/farm/findAll"),
-            method: "post",
+            method: "get",
+            params: this.$http.adornParams({})
           })
           farmResult.data.all && (farmList = farmResult.data.all)
           farmList.forEach(farm => {

+ 4 - 2
src/views/modules/envir/ewater.vue

@@ -172,7 +172,8 @@
           let farmList = []
           let farmResult = await this.$http({
             url: this.$http.adornUrl("/management/farm/findAll"),
-            method: "post",
+            method: "get",
+            params: this.$http.adornParams({})
           })
           farmResult.data.all && (farmList = farmResult.data.all)
           farmList.forEach(farm => {
@@ -188,7 +189,8 @@
           let pigstyList = []
           let pigstyR = await this.$http({
             url: this.$http.adornUrl("/management/pigsty/findAll"),
-            method: "get"
+            method: "get",
+            params: this.$http.adornParams({})
           })
           pigstyR.data.all && (pigstyList = pigstyR.data.all)
           pigstyList.forEach(pigsty => {

+ 30 - 27
src/views/modules/pigbasic/pbbasic.vue

@@ -451,7 +451,7 @@
                 label-width="80px"
                 size="mini"
                 style="padding: 0 60px 0 40px">
-                <el-form-item label="所属牧场" prop="farmId">
+                <!-- <el-form-item label="所属牧场" prop="farmId">
                   <el-select
                     v-model="form.farmId"
                     placeholder="请选择所属牧场"
@@ -465,7 +465,7 @@
                       :value="item.id">
                     </el-option>
                   </el-select>
-                </el-form-item>
+                </el-form-item> -->
                 <el-form-item label="所属猪舍" prop="pigstyId">
                   <el-select
                     v-model="form.pigstyId"
@@ -627,7 +627,7 @@ export default {
         periodId: "",
         farmId: "",
       },
-      pastureList: [], // 牧场list
+      // pastureList: [], // 牧场list
       pighouseList: [], // 猪舍list
       phSelectedList: [], // 选择过牧场后的猪舍list
       unitList: [], // 单元list
@@ -702,36 +702,39 @@ export default {
       // 获取所有猪只信息
       this.$http({
         url: this.$http.adornUrl("/management/yearpigbase/list"),
-        method: "post",
+        method: "get",
         params: this.$http.adornParams({
           page: this.pageIndex,
           limit: this.pageSize,
           keywords: '',
         }),
       }).then(async ({ data }) => {
-        // 获取所有牧场
-        let pastureResult = await this.$http({
-          url: this.$http.adornUrl("/management/farm/findAll"),
-          method: "post",
-        });
-        pastureResult.data.all && (this.pastureList = pastureResult.data.all);
+        // // 获取所有牧场
+        // let pastureResult = await this.$http({
+        //   url: this.$http.adornUrl("/management/farm/findAll"),
+        //   method: "get",
+        //   params: this.$http.adornParams({})
+        // });
+        // pastureResult.data.all && (this.pastureList = pastureResult.data.all);
         // 获取所有猪舍
         let pighouseResult = await this.$http({
           url: this.$http.adornUrl("/management/pigsty/findAll"),
-          method: "post",
+          method: "get",
+          params: this.$http.adornParams({})
         });
-        pighouseResult.data.all &&
-          (this.pighouseList = pighouseResult.data.all);
+        pighouseResult.data.all && (this.pighouseList = pighouseResult.data.all);
         // 获取所有单元
         let unitResult = await this.$http({
           url: this.$http.adornUrl("/management/unit/findAll"),
-          method: "post",
+          method: "get",
+          params: this.$http.adornParams({})
         });
         unitResult.data.all && (this.unitList = unitResult.data.all);
         // 获取所有栏期
         let periodResult = await this.$http({
           url: this.$http.adornUrl("/management/period/findAll"),
-          method: "post",
+          method: "get",
+          params: this.$http.adornParams({})
         });
         periodResult.data.all && (this.periodList = periodResult.data.all);
         if (data && data.code === 0) {
@@ -749,15 +752,15 @@ export default {
               }
             }
           });
-          // 牧场对应
-          this.dataList.forEach((item) => {
-            for (let pasture of this.pastureList) {
-              if (item.farmId === pasture.id) {
-                item.name = pasture.name;
-                break;
-              }
-            }
-          });
+          // // 牧场对应
+          // this.dataList.forEach((item) => {
+          //   for (let pasture of this.pastureList) {
+          //     if (item.farmId === pasture.id) {
+          //       item.name = pasture.name;
+          //       break;
+          //     }
+          //   }
+          // });
           // 猪舍对应
           this.dataList.forEach((item) => {
             for (let pighouse of this.pighouseList) {
@@ -1022,7 +1025,7 @@ export default {
         this.selectionDataList.push(item.id);
       });
     },
-    // 删除n个牧场
+    // 删除n个
     deleteHandle(id) {
       this.$confirm(`确定删除年猪?`, "提示", {
         showCancelButton: true,
@@ -1091,11 +1094,11 @@ export default {
             weight: parseFloat(this.form.weight),
             whereDidYouGo: this.form.whereDidYouGo,
             breed: this.form.breed,
-            pigstyId: this.form.phNumber,
             birthday: this.form.birthday,
             sex: this.form.sex,
             periodId: this.form.periodId,
             pigstyId: this.form.pigstyId,
+            farmId: parseInt(this.$cookie.get('formFarmId'))
           }),
         }).then((result) => {
           if (result.data.code === 0) {
@@ -1149,11 +1152,11 @@ export default {
             weight: parseInt(this.form.weight),
             whereDidYouGo: this.form.whereDidYouGo,
             breed: this.form.breed,
-            pigstyId: this.form.phNumber,
             birthday: this.form.birthday,
             sex: this.form.sex,
             periodId: this.form.periodId,
             pigstyId: this.form.pigstyId,
+            farmId: parseInt(this.$cookie.get('formFarmId'))
           }),
         }).then((result) => {
           if (result.data.code === 0) {

+ 53 - 60
src/views/modules/pigbasic/pbentry-add-or-update.vue

@@ -21,10 +21,11 @@
           :disabled="dataForm.id? true: false">
         </el-input>
       </el-form-item>
-      <el-form-item label="舍" prop="pigstyId">
+      <el-form-item label="舍" prop="pigstyId">
         <el-select 
           v-model="dataForm.pigstyId"
-          style="width: 100%">
+          style="width: 100%"
+          @change="pigstyChange">
           <el-option
             v-for="item in pigstyList"
             :key="item.value"
@@ -36,7 +37,8 @@
       <el-form-item label="单元" prop="unitId">
         <el-select 
           v-model="dataForm.unitId"
-          style="width: 100%">
+          style="width: 100%"
+          @change="ifPigsty('unitId')">
           <el-option
             v-for="item in unitList"
             :key="item.value"
@@ -48,7 +50,8 @@
       <el-form-item label="栏期" prop="periodId">
         <el-select 
           v-model="dataForm.periodId"
-          style="width: 100%">
+          style="width: 100%" 
+          @change="ifPigsty('periodId')">
           <el-option
             v-for="item in periodList"
             :key="item.value"
@@ -152,31 +155,8 @@
 </template>
 
 <script>
-  // import { treeDataTranslate } from '@/utils'
-  import { isEmail, isMobile } from '@/utils/validate'
   export default {
     data () {
-      var validateEmail = (rule, value, callback) => {
-        // if (!isEmail(value)) {
-        //   callback(new Error('邮箱格式错误'))
-        // } else {
-        //   callback()
-        // }
-        if (value === '') {
-          callback()
-        } else if (!isEmail(value)) {
-          callback(new Error('邮箱格式错误'))
-        } else {
-          callback()
-        }
-      }
-      var validateMobile = (rule, value, callback) => {
-        if (!isMobile(value)) {
-          callback(new Error('手机号格式错误'))
-        } else {
-          callback()
-        }
-      }
       return {
         visible: false,
         dataForm: {
@@ -207,33 +187,7 @@
           ],
           periodId: [
             { required: true, message: '栏期不能为空', trigger: 'blur' }
-          ],
-          // mobile: [
-          //   { required: true, message: '手机号码不能为空', trigger: 'blur' },
-          //   { validator: validateMobile, trigger: 'blur' }
-          // ],
-          // email: [
-          //   // { required: true, message: '邮箱不能为空', trigger: 'blur' },
-          //   { validator: validateEmail, trigger: 'blur' }
-          // ],
-          // farmId: [
-          //   // { required: true, message: '牧场不能为空', trigger: 'blur' }
-          // ],
-          // departmentCode: [
-          //   // { required: true, message: '部门不能为空', trigger: 'blur' }
-          // ],
-          // jobCode: [
-          //   // { required: true, message: '岗位不能为空', trigger: 'blur' }
-          // ],
-          // address: [
-          //   // { required: true, message: '住址不能为空', trigger: 'blur' }
-          // ],
-          // roleIdList: [
-          //   // { required: true, message: '角色不能为空', trigger: 'blur' }
-          // ],
-          // status: [
-          //   // { required: true, message: '状态不能为空', trigger: 'blur' }
-          // ]
+          ]
         },
         gender: [
           {
@@ -305,15 +259,29 @@
         if (pigs.length) {
           this.$http({
             url: this.$http.adornUrl(`/management/yearpigbase/info/${pigs[0].id}`),
-            method: "get"
+            method: "get",
+            params: this.$http.adornParams({})
           }).then(({data}) => {
-            console.log(data.yearPigBase)
-            // this.dataForm
+            this.dataForm.id = data.yearPigBase.id
+            this.dataForm.eartag = data.yearPigBase.eartag
+            this.dataForm.pigstyId = data.yearPigBase.pigstyId
+            this.dataForm.unitId = data.yearPigBase.unitId
+            this.dataForm.periodId = data.yearPigBase.periodId
+            this.dataForm.sex = data.yearPigBase.sex
+            this.dataForm.birthday = data.yearPigBase.birthday
+            this.dataForm.healthStatus = data.yearPigBase.healthStatus
+            this.dataForm.weight = data.yearPigBase.weight
+            this.dataForm.originPlace = data.yearPigBase.originPlace
+            this.dataForm.breed = data.yearPigBase.breed
+            this.dataForm.outFenceStatus = data.yearPigBase.outFenceStatus
+            this.dataForm.motherEartag = data.yearPigBase.motherEartag
+            this.dataForm.fatherEartag = data.yearPigBase.fatherEartag
           })
         }
         this.$http({
           url: this.$http.adornUrl("/management/pigsty/findAll"),
-          method: "get"
+          method: "get",
+          params: this.$http.adornParams({})
         }).then(async({ data }) => {
           // 栋舍List
           this.pigstyList = []
@@ -331,7 +299,8 @@
           let unitList = []
           let unitR = await this.$http({
             url: this.$http.adornUrl("/management/unit/findAll"),
-            method: "get"
+            method: "get",
+            params: this.$http.adornParams({})
           })
           unitR.data.all && (unitList = unitR.data.all)
           unitList.forEach(unit => {
@@ -349,7 +318,8 @@
           let periodList = []
           let periodR = await this.$http({
             url: this.$http.adornUrl("/management/period/findAll"),
-            method: "get"
+            method: "get",
+            params: this.$http.adornParams({})
           })
           periodR.data.all && (periodList = periodR.data.all)
           periodList.forEach(period => {
@@ -368,6 +338,18 @@
           
         })
       },
+      // 根据栋舍选择限制单元和栏期
+      pigstyChange (val) {
+        this.unitSelectedList = this.unitList.filter(item => item.pigstyId === val)
+        this.periodSelectedList = this.periodList.filter(item => item.pigstyId === val)
+      },
+      // 需要先选择猪舍,才能选择单元或栏期
+      ifPigsty (val) {
+        if (!this.dataForm.pigstyId) {
+          this.$message.error('请先选择猪舍')
+          this.dataForm[val] = ''
+        }
+      },
       // 表单提交
       dataFormSubmit () {
         this.$refs['dataForm'].validate((valid) => {
@@ -379,6 +361,7 @@
               data: this.$http.adornData({
                 'id': this.dataForm.id || undefined,
                 'eartag': this.dataForm.eartag,
+                'farmId': parseInt(this.$cookie.get('formFarmId')),
                 'pigstyId': this.dataForm.pigstyId,
                 'unitId': this.dataForm.unitId,
                 'periodId': this.dataForm.periodId,
@@ -430,6 +413,16 @@
           }).catch(() => {});
         }
       }
+    },
+    watch: {
+      'dataForm.pigstyId': {
+        handler(newValue, oldValue) {
+          if (oldValue) {
+            this.dataForm.unitId = ''
+            this.dataForm.periodId = ''
+          }
+        }
+      }
     }
   }
 </script>

+ 49 - 69
src/views/modules/pigbasic/pbentry.vue

@@ -49,9 +49,9 @@
               </el-select>
             </el-form-item>
             <el-form-item style="width: 140px">
-              <el-select placeholder="栏期" v-model="form.periodId">
+              <el-select placeholder="猪舍" v-model="form.pigstyId" @change="pigstyChange">
                 <el-option
-                  v-for="item in periodSelectedList"
+                  v-for="item in pigstyList"
                   :key="item.value"
                   :label="item.label"
                   :value="item.value">
@@ -59,9 +59,9 @@
               </el-select>
             </el-form-item>
             <el-form-item style="width: 140px">
-              <el-select placeholder="栋舍" v-model="form.pigstyId" @change="pigstyChange">
+              <el-select placeholder="单元" v-model="form.unitId" @change="ifPigsty('unitId')">
                 <el-option
-                  v-for="item in pigstyList"
+                  v-for="item in unitSelectedList"
                   :key="item.value"
                   :label="item.label"
                   :value="item.value">
@@ -69,9 +69,9 @@
               </el-select>
             </el-form-item>
             <el-form-item style="width: 140px">
-              <el-select placeholder="单元" v-model="form.unitId">
+              <el-select placeholder="栏期" v-model="form.periodId" @change="ifPigsty('periodId')">
                 <el-option
-                  v-for="item in unitSelectedList"
+                  v-for="item in periodSelectedList"
                   :key="item.value"
                   :label="item.label"
                   :value="item.value">
@@ -143,7 +143,8 @@
               prop="id"
               header-align="center"
               align="center"
-              label="id">
+              label="id"
+              width="80">
             </el-table-column>
             <el-table-column
               prop="eartag"
@@ -155,7 +156,8 @@
               prop="sex"
               header-align="center"
               align="center"
-              label="性别">
+              label="性别"
+              width="80">
             </el-table-column>
             <el-table-column
               prop="birthday"
@@ -166,7 +168,8 @@
             <el-table-column
               header-align="center"
               align="center"
-              label="健康状态">
+              label="健康状态"
+              width="100">
               <template slot-scope="scope">
                 <span>{{scope.row.healthStatus? '健康': '不健康'}}</span>
               </template>
@@ -174,7 +177,8 @@
             <el-table-column
               header-align="center"
               align="center"
-              label="养殖状态">
+              label="养殖状态"
+              width="100">
               <template slot-scope="scope">
                 <span>{{scope.row.outFenceStatus? '出栏': '育肥'}}</span>
               </template>
@@ -183,22 +187,23 @@
               prop="breed"
               header-align="center"
               align="center"
-              label="品种">
+              label="品种"
+              width="100">
             </el-table-column>
             <el-table-column
-              prop="phNumber"
+              prop="pigstyName"
               header-align="center"
               align="center"
-              label="舍">
+              label="舍">
             </el-table-column>
             <el-table-column
-              prop="unitNumber"
+              prop="unitName"
               header-align="center"
               align="center"
               label="单元">
             </el-table-column>
             <el-table-column
-              prop="periodNumber"
+              prop="periodName"
               header-align="center"
               align="center"
               label="栏期">
@@ -330,27 +335,16 @@
           method: 'get',
           params: this.$http.adornParams({
             'page': this.pageIndex,
-            'limit': this.pageSize,
-            // 'username': this.form.username,
-            // 'departmentCode': this.form.departmentCode,
-            // 'jobCode': this.form.jobCode,
-            // 'sex': this.form.gender,
-            // 'farmId': this.farmId
+            'limit': this.pageSize
           })
         }).then(async({data}) => {
-          // // 获取所有牧场
-          // let pastureList = []
-          // let pastureResult = await this.$http({
-          //   url: this.$http.adornUrl("/management/farm/findAll"),
-          //   method: "post",
-          // })
-          // pastureResult.data.all && (pastureList = pastureResult.data.all)
           // 栋舍List
           this.pigstyList = []
           let pigstyList = []
           let pigstyR = await this.$http({
             url: this.$http.adornUrl("/management/pigsty/findAll"),
-            method: "get"
+            method: "get",
+            params: this.$http.adornParams({})
           })
           pigstyR.data.all && (pigstyList = pigstyR.data.all)
           pigstyList.forEach(pigsty => {
@@ -365,15 +359,15 @@
           let unitList = []
           let unitR = await this.$http({
             url: this.$http.adornUrl("/management/unit/findAll"),
-            method: "get"
+            method: "get",
+            params: this.$http.adornParams({})
           })
           unitR.data.all && (unitList = unitR.data.all)
           unitList.forEach(unit => {
             let item = {
               value: unit.id,
               label: unit.number,
-              pigstyId: unit.pigstyId,
-              farmId: unit.farmId
+              pigstyId: unit.pigstyId
             }
             this.unitList.push(item)
           })
@@ -383,7 +377,8 @@
           let periodList = []
           let periodR = await this.$http({
             url: this.$http.adornUrl("/management/period/findAll"),
-            method: "get"
+            method: "get",
+            params: this.$http.adornParams({})
           })
           periodR.data.all && (periodList = periodR.data.all)
           periodList.forEach(period => {
@@ -404,39 +399,6 @@
             this.totalPage = 0
             this.$message.error(data.msg)
           }
-          // 猪只信息与单元、牧场、栏期、栋舍对应
-          this.dataList.forEach((item) => {
-            // 单元对应
-            for (let unit of this.unitList) {
-              if (item.unitId === unit.value) {
-                item.unitNumber = unit.label;
-                item.farmId = unit.farmId;
-                item.pigstyId = unit.pigstyId;
-                break;
-              }
-            }
-            // // 牧场对应
-            // for (let pasture of pastureList) {
-            //   if (item.farmId === pasture.id) {
-            //     item.name = pasture.name;
-            //     break;
-            //   }
-            // }
-            // 栋舍对应
-            for (let pighouse of this.pigstyList) {
-              if (item.pigstyId === pighouse.value) {
-                item.phNumber = pighouse.label;
-                break;
-              }
-            }
-            // 栏期对应
-            for (let period of this.periodList) {
-              if (item.periodId === period.value) {
-                item.periodNumber = period.label;
-                break;
-              }
-            }
-          })
           this.dataListLoading = false
         })
       },
@@ -445,6 +407,13 @@
         this.unitSelectedList = this.unitList.filter(item => item.pigstyId === val)
         this.periodSelectedList = this.periodList.filter(item => item.pigstyId === val)
       },
+      // 需要先选择猪舍,才能选择单元或栏期
+      ifPigsty (val) {
+        if (!this.form.pigstyId) {
+          this.$message.error('请先选择猪舍')
+          this.form[val] = ''
+        }
+      },
       // form表单清空,单元SelectedList 和 栏期SelectedList重置
       clearAll () {
         for (let i in this.form) {
@@ -501,16 +470,27 @@
                 message: '操作成功',
                 type: 'success',
                 duration: 1500,
-                onClose: () => {
-                  this.getDataList()
-                }
+                // onClose: () => {
+                //   this.getDataList()
+                // }
               })
+              this.getDataList()
             } else {
               this.$message.error(data.msg)
             }
           })
         }).catch(() => {})
       }
+    },
+    watch: {
+      'form.pigstyId': {
+        handler(newValue, oldValue) {
+          if (oldValue) {
+            this.form.unitId = ''
+            this.form.periodId = ''
+          }
+        }
+      }
     }
   }
 </script>

+ 536 - 0
src/views/modules/pigbasic/pbped-details.vue

@@ -0,0 +1,536 @@
+<template>
+  <el-dialog title="谱系" :visible.sync="outerVisible">
+    <!-- 谱系信息 -->
+    <el-table
+      :data="dataList"
+      border
+      stripe
+      style="width: 100%;"
+      size="mini"
+      :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'}">
+      <el-table-column
+        header-align="center"
+        align="center"
+        label="身份">
+        <template slot-scope="scope">
+          <span>{{getName(scope.row.name)}}</span>
+        </template>
+      </el-table-column>
+      <el-table-column
+        prop="eartag"
+        header-align="center"
+        align="center"
+        label="耳标">
+      </el-table-column>
+      <el-table-column
+        prop="dayAge"
+        header-align="center"
+        align="center"
+        label="日龄">
+      </el-table-column>
+      <el-table-column
+        prop="weight"
+        header-align="center"
+        align="center"
+        label="体重(千克)">
+      </el-table-column>
+      <el-table-column
+        prop="breed"
+        header-align="center"
+        align="center"
+        label="品种">
+      </el-table-column>
+      <el-table-column
+        prop="originPlace"
+        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
+            type="text"
+            size="medium"
+            style="color: rgb(24,144,255)"
+            @click="detailsHandle(scope.row)">
+            查看谱系
+          </el-button>
+          <el-button
+            type="text"
+            size="medium"
+            @click="addOrUpdateHandle(scope.row)"
+            style="color: rgb(24,144,255)">
+            编辑
+          </el-button>
+        </template>
+      </el-table-column> -->
+    </el-table>
+    <!-- <el-dialog
+      width="30%"
+      title="内层 Dialog"
+      :visible.sync="innerVisible"
+      append-to-body>
+    </el-dialog> -->
+    <div slot="footer" class="dialog-footer">
+      <el-button size="small" @click="outerVisible = false">关闭</el-button>
+      <!-- <el-button type="primary" @click="innerVisible = true">打开内层 Dialog</el-button> -->
+    </div>
+  </el-dialog>
+  <!-- <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="eartag">
+        <el-input
+          type="textarea"
+          :rows="2"
+          placeholder="每个耳标之间用英文逗号隔开,最多可以添加50头猪"
+          v-model="dataForm.eartag"
+          :disabled="dataForm.id? true: false">
+        </el-input>
+      </el-form-item>
+      <el-form-item label="栋舍" prop="pigstyId">
+        <el-select 
+          v-model="dataForm.pigstyId"
+          style="width: 100%">
+          <el-option
+            v-for="item in pigstyList"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value">
+          </el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="单元" prop="unitId">
+        <el-select 
+          v-model="dataForm.unitId"
+          style="width: 100%">
+          <el-option
+            v-for="item in unitList"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value">
+          </el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="栏期" prop="periodId">
+        <el-select 
+          v-model="dataForm.periodId"
+          style="width: 100%">
+          <el-option
+            v-for="item in periodList"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value">
+          </el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="性别" prop="sex">
+        <el-select 
+          v-model="dataForm.sex"
+          style="width: 100%">
+          <el-option
+            v-for="item in gender"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value">
+          </el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="出生日期" prop="birthday">
+        <el-date-picker
+          v-model="dataForm.birthday"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="请选择出生日期"
+          @change="changeBirth"
+          style="width: 100%">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="健康状态" prop="healthStatus">
+        <el-select 
+          v-model="dataForm.healthStatus"
+          style="width: 100%">
+          <el-option
+            v-for="item in healthStatus"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value">
+          </el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="体重" prop="weight">
+        <el-input-number
+          v-model="dataForm.weight"
+          :step="0.01"
+          :max="1000000"
+          :min="0"
+          style="width: 91%">
+        </el-input-number>
+        千克
+      </el-form-item>
+      <el-form-item label="产地" prop="originPlace">
+        <el-select 
+          v-model="dataForm.originPlace"
+          style="width: 100%">
+          <el-option
+            v-for="item in originPlaceList"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value">
+          </el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="品种" prop="breed">
+        <el-select 
+          v-model="dataForm.breed"
+          style="width: 100%">
+          <el-option
+            v-for="item in breedList"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value">
+          </el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="养殖状态" prop="outFenceStatus">
+        <el-select 
+          v-model="dataForm.outFenceStatus"
+          style="width: 100%">
+          <el-option
+            v-for="item in outFenceStatus"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value">
+          </el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="父亲" prop="fatherEartag">
+        <el-input v-model="dataForm.fatherEartag"></el-input>
+      </el-form-item>
+      <el-form-item label="母亲" prop="motherEartag">
+        <el-input v-model="dataForm.motherEartag"></el-input>
+      </el-form-item>
+    </el-form>
+    <span slot="footer" class="dialog-footer">
+      <el-button size="mini" @click="visible = false">关闭</el-button>
+      <el-button size="mini" type="primary" @click="dataFormSubmit()">确定</el-button>
+    </span>
+  </el-dialog> -->
+</template>
+
+<script>
+  // import { treeDataTranslate } from '@/utils'
+  export default {
+    data () {
+      return {
+        visible: false,
+        outerVisible: false,
+        innerVisible: false,
+        dataForm: {
+          id: '',
+          eartag: '',
+          pigstyId: '',
+          unitId: '',
+          periodId: '',
+          sex: '',
+          birthday: '',
+          healthStatus: true,
+          weight: '',
+          originPlace: '',
+          breed: '',
+          outFenceStatus: 0,
+          motherEartag: '',
+          fatherEartag: ''
+        },
+        dataRule: {
+          eartag: [
+            { required: true, message: '耳标不能为空', trigger: 'blur' }
+          ],
+          pigstyId: [
+            { required: true, message: '栋舍不能为空', trigger: 'blur' }
+          ],
+          unitId: [
+            { required: true, message: '单元不能为空', trigger: 'blur' }
+          ],
+          periodId: [
+            { required: true, message: '栏期不能为空', trigger: 'blur' }
+          ],
+          // mobile: [
+          //   { required: true, message: '手机号码不能为空', trigger: 'blur' },
+          //   { validator: validateMobile, trigger: 'blur' }
+          // ],
+          // email: [
+          //   // { required: true, message: '邮箱不能为空', trigger: 'blur' },
+          //   { validator: validateEmail, trigger: 'blur' }
+          // ],
+          // farmId: [
+          //   // { required: true, message: '牧场不能为空', trigger: 'blur' }
+          // ],
+          // departmentCode: [
+          //   // { required: true, message: '部门不能为空', trigger: 'blur' }
+          // ],
+          // jobCode: [
+          //   // { required: true, message: '岗位不能为空', trigger: 'blur' }
+          // ],
+          // address: [
+          //   // { required: true, message: '住址不能为空', trigger: 'blur' }
+          // ],
+          // roleIdList: [
+          //   // { required: true, message: '角色不能为空', trigger: 'blur' }
+          // ],
+          // status: [
+          //   // { required: true, message: '状态不能为空', trigger: 'blur' }
+          // ]
+        },
+        gender: [
+          {
+            value: '公',
+            label: '公'
+          },
+          {
+            value: '母',
+            label: '母'
+          }
+        ],
+        pigstyList: [], // 栋舍List
+        unitList: [], // 单元List
+        unitSelectedList: [], // 单元SelectedList
+        periodList: [], // 栏期List
+        periodSelectedList: [], // 栏期SelectedList
+        healthStatus: [
+          {
+            value: true,
+            label: '健康'
+          },
+          {
+            value: false,
+            label: '不健康'
+          }
+        ],
+        breedList: [
+          {
+            value: 1,
+            label: '杜巴嘉'
+          },
+          {
+            value: 2,
+            label: '长白'
+          }
+        ], // 品种List
+        originPlaceList: [], // 产地List
+        outFenceStatus: [
+          {
+            value: 0,
+            label: '育肥'
+          },
+          {
+            value: 1,
+            label: '出栏'
+          }
+        ],
+        dataList: []
+      }
+    },
+    methods: {
+      getName(val) {
+        let names = {
+          'self': '自身',
+          'father': '父亲',
+          'mother': '母亲',
+          'fathermother': '祖母',
+          'fatherfather': '祖父',
+          'mothermother': '外祖母',
+          'motherfather': '外祖父',
+        }
+        return names[val]
+      },
+      // 在pbentry.vue调用该方法
+      init (eartag) {
+        this.outerVisible = true
+        this.$http({
+          url: this.$http.adornUrl(`/management/yearpigbase/queryByRelationship`),
+          method: "get",
+          params: this.$http.adornParams({
+            'eartag': eartag
+          })
+        }).then(({data}) => {
+          if (data && data.code === 0) {
+            this.dataList = data.Result.value
+            console.log(this.dataList);
+            console.log(data.Result.value);
+          } else {
+            this.dataList = []
+            this.$message.error(data.msg)
+          }
+        })
+        // this.dataForm.id = ''
+        // this.$nextTick(() => {
+        //   this.$refs['dataForm'].resetFields()
+        //   if (pigs.length > 0) {
+        //     console.log(pigs);
+        //     let ids = []
+        //     let eartags = []
+        //     pigs.forEach(pig => {
+        //       ids.push(pig.id)
+        //       eartags.push(pig.eartag)
+        //     })
+        //     this.dataForm.id = ids.join()
+        //     this.dataForm.eartag = eartags.join()
+        //   }
+        // })
+        // if (pigs.length) {
+        //   this.$http({
+        //     url: this.$http.adornUrl(`/management/yearpigbase/info/${pigs[0].id}`),
+        //     method: "get",
+        //     params: this.$http.adornParams({})
+        //   }).then(({data}) => {
+        //     console.log(data.yearPigBase)
+        //     // this.dataForm
+        //   })
+        // }
+        // this.$http({
+        //   url: this.$http.adornUrl("/management/pigsty/findAll"),
+        //   method: "get",
+        //   params: this.$http.adornParams({})
+        // }).then(async({ data }) => {
+        //   // 栋舍List
+        //   this.pigstyList = []
+        //   let pigstyList = []
+        //   data.all && (pigstyList = data.all)
+        //   pigstyList.forEach(pigsty => {
+        //     let item = {
+        //       value: pigsty.id,
+        //       label: pigsty.number
+        //     }
+        //     this.pigstyList.push(item)
+        //   })
+        //   // 单元List
+        //   this.unitList = []
+        //   let unitList = []
+        //   let unitR = await this.$http({
+        //     url: this.$http.adornUrl("/management/unit/findAll"),
+        //     method: "get",
+        //     params: this.$http.adornParams({})
+        //   })
+        //   unitR.data.all && (unitList = unitR.data.all)
+        //   unitList.forEach(unit => {
+        //     let item = {
+        //       value: unit.id,
+        //       label: unit.number,
+        //       pigstyId: unit.pigstyId,
+        //       farmId: unit.farmId
+        //     }
+        //     this.unitList.push(item)
+        //   })
+        //   this.unitSelectedList = this.unitList
+        //   // 栏期List
+        //   this.periodList = []
+        //   let periodList = []
+        //   let periodR = await this.$http({
+        //     url: this.$http.adornUrl("/management/period/findAll"),
+        //     method: "get",
+        //     params: this.$http.adornParams({})
+        //   })
+        //   periodR.data.all && (periodList = periodR.data.all)
+        //   periodList.forEach(period => {
+        //     let item = {
+        //       value: period.id,
+        //       label: period.number,
+        //       pigstyId: period.pigstyId
+        //     }
+        //     this.periodList.push(item)
+        //   })
+        //   this.periodSelectedList = this.periodList
+
+
+
+
+          
+        // })
+      },
+      // 表单提交
+      dataFormSubmit () {
+        this.$refs['dataForm'].validate((valid) => {
+          console.log(valid);
+          if (valid) {
+            this.$http({
+              url: this.$http.adornUrl(`${!this.dataForm.id ?'/management/yearpigbase/batchLairage': '/management/yearpigbase/update'}`),
+              method: 'post',
+              data: this.$http.adornData({
+                'id': this.dataForm.id || undefined,
+                'eartag': this.dataForm.eartag,
+                'pigstyId': this.dataForm.pigstyId,
+                'unitId': this.dataForm.unitId,
+                'periodId': this.dataForm.periodId,
+                'sex': this.dataForm.sex,
+                'birthday': this.dataForm.birthday,
+                'healthStatus': this.dataForm.healthStatus,
+                'weight': this.dataForm.weight,
+                'originPlace': this.dataForm.originPlace,
+                'breed': this.dataForm.breed,
+                'outFenceTime': this.dataForm.outFenceTime,
+                'motherEartag': this.dataForm.motherEartag,
+                'fatherEartag': this.dataForm.fatherEartag
+              })
+            }).then(({data}) => {
+              if (data && data.code === 0) {
+                this.visible = false
+                this.$emit('refreshDataList')
+                this.$message({
+                  message: '操作成功',
+                  type: 'success',
+                  duration: 1500,
+                  // onClose: () => {
+                  //   this.visible = false
+                  //   this.$emit('refreshDataList')
+                  // }
+                })
+                // this.resetForm()
+                this.visible = false
+              } else {
+                this.$message.error(data.msg)
+              }
+            })
+          }
+        })
+      },
+      // 获取出生日期
+      changeBirth(val) {
+        let birth = new Date(val);
+        let now = new Date();
+        let days = now.getTime() - birth.getTime();
+        if (days < 0) {
+          this.$confirm(`出生日期有误`, "提示", {
+            confirmButtonText: "确定",
+            cancelButtonText: "取消",
+            type: "warning",
+          }).then(() => {
+            this.dataForm.birthday = ''
+            console.log("还没出生呢...");
+          }).catch(() => {});
+        }
+      }
+    }
+  }
+</script>
+<style scoped>
+/deep/ .el-table--mini td, .el-table--mini th {
+  padding: 3px 0 !important;
+  height: 20px !important;
+}
+</style>

+ 555 - 400
src/views/modules/pigbasic/pbpedigree.vue

@@ -1,435 +1,590 @@
 <template>
-  <div class="branch">
-    <el-form
-      :inline="true"
-      :model="dataForm"
-      @keyup.enter.native="getDataList()">
-      <el-form-item style="width: 500px">
-        <el-input
-          v-model="dataForm.key"
-          placeholder="请输入关键字"
-          clearable style="width: 500px"></el-input>
-      </el-form-item>
-      <el-form-item>
-        <el-button @click="getDataList()">查询</el-button>
-      </el-form-item>
-      <el-form-item>
-        <el-button v-if="isAuth('sys:role:save')" type="primary" @click="addOrUpdateHandle()">新增</el-button>
-      </el-form-item>
-      <el-form-item>
-        <el-button v-if="isAuth('sys:role:delete')" type="danger" @click="deleteHandle()" :disabled="selectionDataList.length <= 0">批量删除</el-button>
-      </el-form-item>
-    </el-form>
-    <el-table
-      :data="dataList"
-      @selection-change="selectionChangeHandle"
-      v-loading="dataListLoading"
-      style="width: 100%">
-      <el-table-column
-        type="selection"
-        header-align="center"
-        align="center"
-        width="50">
-      </el-table-column>
-      <el-table-column
-        prop="pigletEartag"
-        header-align="center"
-        align="center"
-        label="小猪耳标">
-      </el-table-column>
-      <el-table-column
-        prop="sowEartag"
-        header-align="center"
-        align="center"
-        label="母亲耳标">
-      </el-table-column>
-      <el-table-column
-        prop="boarEartag"
-        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="small" @click="addOrUpdateHandle(scope.row)">修改</el-button>
-          <el-button v-if="isAuth('sys:user:delete')" type="text" size="small" @click="deleteHandle(scope.row.id)">删除</el-button>
-        </template>
-      </el-table-column>
-    </el-table>
-    <el-dialog
-      :title="!form.id ? '新增' : '修改'"
-      :close-on-click-modal="false"
-      :visible.sync="visible"
-      @close="cancel">
-      <el-form :model="form" ref="form" @keyup.enter.native="formSubmit()" label-width="80px">
-        <el-form-item label="小猪耳标">
-          <!-- <div class="block">
-            <el-cascader
-              v-model="form.pigletEartag"
-              :options="options"
-              :props="{ expandTrigger: 'hover' }"
-              @change="handleChange"></el-cascader>
-          </div> -->
-          <el-cascader :options="options" :show-all-levels="false" v-model="form.pigletEartag" clearable></el-cascader>
-        </el-form-item>
-        <el-form-item label="母亲耳标">
-          <el-cascader :options="options" :show-all-levels="false" v-model="form.sowEartag" clearable></el-cascader>
-        </el-form-item>
-        <el-form-item label="父亲耳标">
-          <el-cascader :options="options" :show-all-levels="false" v-model="form.boarEartag" clearable></el-cascader>
-        </el-form-item>
-      </el-form>
-      <span slot="footer" class="dialog-footer">
-        <el-button @click="cancel">取消</el-button>
-        <el-button type="primary" @click="formSubmit()">确定</el-button>
-      </span>
-    </el-dialog>
+  <div class="mod-role">
+    <el-container>
+      <!-- form表单 -->
+      <el-header>
+        <div class="rect rect-form">
+          <el-form :inline="true" :model="form" @keyup.enter.native="getDataList()" size="mini" ref="form">
+            <el-form-item>
+              <el-input v-model="form.eartag" placeholder="耳标" clearable></el-input>
+            </el-form-item>
+            <el-form-item style="width: 140px">
+              <el-select placeholder="性别" v-model="form.sex">
+                <el-option
+                  v-for="item in gender"
+                  :key="item.value"
+                  :label="item.label"
+                  :value="item.value">
+                </el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item style="width: 140px">
+              <el-select placeholder="品种" v-model="form.breed">
+                <el-option
+                  v-for="item in breed"
+                  :key="item.value"
+                  :label="item.label"
+                  :value="item.value">
+                </el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item style="width: 140px">
+              <el-select placeholder="健康状态" v-model="form.healthStatus">
+                <el-option
+                  v-for="item in healthStatus"
+                  :key="item.value"
+                  :label="item.label"
+                  :value="item.value">
+                </el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item style="width: 140px">
+              <el-select placeholder="养殖状态" v-model="form.outFenceStatus">
+                <el-option
+                  v-for="item in outFenceStatus"
+                  :key="item.value"
+                  :label="item.label"
+                  :value="item.value">
+                </el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item style="width: 140px">
+              <el-select placeholder="猪舍" v-model="form.pigstyId" @change="pigstyChange">
+                <el-option
+                  v-for="item in pigstyList"
+                  :key="item.value"
+                  :label="item.label"
+                  :value="item.value">
+                </el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item style="width: 140px">
+              <el-select placeholder="单元" v-model="form.unitId" @change="ifPigsty('unitId')">
+                <el-option
+                  v-for="item in unitSelectedList"
+                  :key="item.value"
+                  :label="item.label"
+                  :value="item.value">
+                </el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item style="width: 140px">
+              <el-select placeholder="栏期" v-model="form.periodId" @change="ifPigsty('periodId')">
+                <el-option
+                  v-for="item in periodSelectedList"
+                  :key="item.value"
+                  :label="item.label"
+                  :value="item.value">
+                </el-option>
+              </el-select>
+            </el-form-item>
+
+            <el-form-item>
+              <el-button @click="getDataList()" icon="el-icon-search">查 询</el-button>
+            </el-form-item>
+            <el-form-item>
+              <el-button 
+                icon="el-icon-circle-close"
+                @click="clearAll">清 空</el-button>
+            </el-form-item>
+          </el-form>
+        </div>
+      </el-header>
+      <!-- role表格 -->
+      <el-main>
+        <div class="rect rect-table">
+          <!-- 新增 删除按钮 -->
+          <el-form inline size="mini">
+            <el-form-item>
+              <el-button 
+                icon="el-icon-plus" 
+                @click="addOrUpdateHandle()">
+                新 增
+              </el-button>
+            </el-form-item>
+            <el-form-item>
+              <el-button 
+                icon="el-icon-delete" 
+                type="danger" 
+                @click="deleteHandle()" 
+                :disabled="dataListSelections.length <= 0">
+                删 除
+              </el-button>
+            </el-form-item>
+            <el-form-item>
+              <el-button 
+                icon="el-icon-edit" 
+                type="danger" 
+                @click="addOrUpdateHandle()" 
+                :disabled="dataListSelections.length <= 0">
+                批量修改
+              </el-button>
+            </el-form-item>
+          </el-form>
+          
+          <el-table
+            :data="dataList"
+            border
+            stripe
+            v-loading="dataListLoading"
+            @selection-change="selectionChangeHandle"
+            style="width: 100%;"
+            size="mini"
+            height="540"
+            :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'}">
+            <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="eartag"
+              header-align="center"
+              align="center"
+              label="耳标">
+            </el-table-column>
+            <el-table-column
+              prop="sex"
+              header-align="center"
+              align="center"
+              label="性别">
+            </el-table-column>
+            <!-- <el-table-column
+              prop="birthday"
+              header-align="center"
+              align="center"
+              label="出生日期">
+            </el-table-column>
+            <el-table-column
+              header-align="center"
+              align="center"
+              label="健康状态">
+              <template slot-scope="scope">
+                <span>{{scope.row.healthStatus? '健康': '不健康'}}</span>
+              </template>
+            </el-table-column>
+            <el-table-column
+              header-align="center"
+              align="center"
+              label="养殖状态">
+              <template slot-scope="scope">
+                <span>{{scope.row.outFenceStatus? '出栏': '育肥'}}</span>
+              </template>
+            </el-table-column>
+            <el-table-column
+              prop="breed"
+              header-align="center"
+              align="center"
+              label="品种">
+            </el-table-column> -->
+            <el-table-column
+              prop="pigstyName"
+              header-align="center"
+              align="center"
+              label="猪舍">
+            </el-table-column>
+            <el-table-column
+              prop="unitName"
+              header-align="center"
+              align="center"
+              label="单元">
+            </el-table-column>
+            <el-table-column
+              prop="periodName"
+              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
+                  type="text"
+                  size="medium"
+                  style="color: rgb(24,144,255)"
+                  @click="detailsHandle(scope.row)">
+                  查看谱系
+                </el-button>
+                <!-- <el-button
+                  type="text"
+                  size="medium"
+                  @click="addOrUpdateHandle(scope.row)"
+                  style="color: rgb(24,144,255)">
+                  编辑
+                </el-button> -->
+              </template>
+            </el-table-column>
+          </el-table>
+          <el-pagination
+            @size-change="sizeChangeHandle"
+            @current-change="currentChangeHandle"
+            :current-page="pageIndex"
+            :page-sizes="[10, 20, 50, 100]"
+            :page-size="pageSize"
+            :total="totalPage"
+            layout="total, sizes, prev, pager, next, jumper">
+          </el-pagination>
+          <!-- 弹窗, 新增 / 修改 -->
+          <Details v-if="detailsVisible" ref="details" @refreshDataList="getDataList"></Details>
+        </div>
+      </el-main>
+      
+      
+    </el-container>
   </div>
 </template>
+
 <script>
-export default {
-  data () {
-    return {
-      dataForm: {
-        key: ''
-      },
-      dataList: [
-        {
-          buildTime: '',
-          id: '',
-          location: '',
-          manager: '',
-          name: '',
-        }
-      ],
-      pageIndex: 1,
-      pageSize: 10,
-      totalPage: 0,
-      dataListLoading: false,
-      selectionDataList: [],
-      visible: false,
-      form: {
-        id: '',
-        pigletEartag: [],
-        sowEartag: [],
-        boarEartag: []
-      },
-      options: [],
-      pigs: []
-    }
-  },
-  created () {
-    this.getDataList()
-  },
-  mounted () {
-    this.getCascader()
-  },
-  methods: {
-    // 获取数据列表
-    getDataList () {
-      this.dataListLoading = true
-      this.$http({
-        url: this.$http.adornUrl('/management/yearpigpedigree/list'),
-        method: 'post'
-      }).then(({ data }) => {
-        if (data && data.code === 0) {
-          this.dataList = data.page.list
-          this.totalPage = data.page.totalCount
-        } else {
-          this.dataList = []
-          this.totalPage = 0
-        }
-        this.dataListLoading = false
-      })
-    },
-    // 每页数
-    sizeChangeHandle (val) {
-      this.pageSize = val
-      this.pageIndex = 1
-      this.getDataList()
-    },
-    // 当前页
-    currentChangeHandle (val) {
-      this.pageIndex = val
-      this.getDataList()
-    },
-    // 新增 or 修改谱系信息
-    addOrUpdateHandle (row) {
-      // 显示谱系新增 or 修改面板
-      this.visible = true
-      if (row) {
-        this.form.id = row.id
-        // 获取小猪耳标
-        for (let item of this.pigs) {
-          if (item.value === row.pigletEartag) {
-            this.form.pigletEartag = item.cascader
-            break
+  import Details from './pbped-details.vue'
+  export default {
+    data () {
+      return {
+        form: {
+          eartag: '',
+          sex: '',
+          breed: '',
+          healthStatus: '',
+          outFenceStatus: '',
+          periodId: '',
+          pigstyId: '',
+          unitId: ''
+        },
+        dataList: [],
+        pageIndex: 1,
+        pageSize: 10,
+        totalPage: 0,
+        dataListLoading: false,
+        dataListSelections: [],
+        detailsVisible: false,
+        farmId: undefined,
+        gender: [
+          {
+            value: '公',
+            label: '公'
+          },
+          {
+            value: '母',
+            label: '母'
           }
-        }
-        // 获取母亲耳标
-        for (let item of this.pigs) {
-          if (item.value === row.sowEartag) {
-            this.form.sowEartag = item.cascader
-            break
+        ],
+        breed: [
+          {
+            value: 1,
+            label: '杜巴嘉'
+          },
+          {
+            value: 2,
+            label: '长白'
           }
-        }
-        // 获取父亲耳标
-        for (let item of this.pigs) {
-          if (item.value === row.boarEartag) {
-            this.form.boarEartag = item.cascader
-            break
+        ],
+        healthStatus: [
+          {
+            value: true,
+            label: '健康'
+          },
+          {
+            value: false,
+            label: '不健康'
           }
-        }
+        ],
+        outFenceStatus: [
+          {
+            value: 0,
+            label: '育肥'
+          },
+          {
+            value: 1,
+            label: '出栏'
+          }
+        ],
+        periodList: [], // 所有栏期
+        periodSelectedList: [], // 根据栋舍限制的栏期
+        pigstyList: [], // 所有栋舍
+        unitList: [], // 所有单元
+        unitSelectedList: [], // 根据栋舍限制的单元
+        labelPosition: 'right'
       }
     },
-    // 获取级联选择器
-    getCascader () {
-      // 获取所有年猪信息
-      this.$http({
-        url: this.$http.adornUrl('/management/yearpigbase/list'),
-        method: 'post'
-      }).then(async ({ data }) => {
-        // 获取所有牧场信息
-        let pastureResult = await this.$http({
-          url: this.$http.adornUrl('/management/pasture/list'),
-          method: 'post'
-        })
-        let pastures = []
-        pastureResult.data.page.list.forEach(pasture => {
-          let item = {
-            label: pasture.name,
-            value: pasture.id,
-            children: []
-          }
-          pastures.push(item)
-        });
-        // 获取所有猪舍信息
-        let pigstyResult = await this.$http({
-          url: this.$http.adornUrl('/management/pigsty/list'),
-          method: 'post'
-        })
-        let pigstys = []
-        pigstyResult.data.page.list.forEach(pigsty => {
-          let item = {
-            label: pigsty.number,
-            value: pigsty.id,
-            pastureId: pigsty.pastureId,
-            children: []
-          }
-          pigstys.push(item)
-        });
-        // 获取所有单元信息
-        let unitResult = await this.$http({
-          url: this.$http.adornUrl('/management/unit/list'),
-          method: 'post'
-        })
-        let units = []
-        unitResult.data.page.list.forEach(unit => {
-          let item = {
-            label: unit.number,
-            value: unit.id,
-            pigstyId: unit.pigstyId,
-            pastureId: unit.pastureId,
-            children: []
+    components: {
+      Details
+    },
+    activated () {
+      this.getDataList()
+    },
+    methods: {
+      // 获取数据列表
+      getDataList () {
+        this.dataListLoading = true
+        this.$http({
+          url: this.$http.adornUrl('/management/yearpigbase/list'),
+          method: 'get',
+          params: this.$http.adornParams({
+            'page': this.pageIndex,
+            'limit': this.pageSize
+            // 'username': this.form.username,
+            // 'departmentCode': this.form.departmentCode,
+            // 'jobCode': this.form.jobCode,
+            // 'sex': this.form.gender,
+            // 'farmId': this.farmId
+          })
+        }).then(async({data}) => {
+          // // 获取所有牧场
+          // let pastureList = []
+          // let pastureResult = await this.$http({
+          //   url: this.$http.adornUrl("/management/farm/findAll"),
+          //   method: "post",
+          // })
+          // pastureResult.data.all && (pastureList = pastureResult.data.all)
+          // 栋舍List
+          this.pigstyList = []
+          let pigstyList = []
+          let pigstyR = await this.$http({
+            url: this.$http.adornUrl("/management/pigsty/findAll"),
+            method: "get",
+            params: this.$http.adornParams({})
+          })
+          pigstyR.data.all && (pigstyList = pigstyR.data.all)
+          pigstyList.forEach(pigsty => {
+            let item = {
+              value: pigsty.id,
+              label: pigsty.number
+            }
+            this.pigstyList.push(item)
+          })
+          // 单元List
+          this.unitList = []
+          let unitList = []
+          let unitR = await this.$http({
+            url: this.$http.adornUrl("/management/unit/findAll"),
+            method: "get",
+            params: this.$http.adornParams({})
+          })
+          unitR.data.all && (unitList = unitR.data.all)
+          unitList.forEach(unit => {
+            let item = {
+              value: unit.id,
+              label: unit.number,
+              pigstyId: unit.pigstyId,
+              farmId: unit.farmId
+            }
+            this.unitList.push(item)
+          })
+          this.unitSelectedList = this.unitList
+          // 栏期List
+          this.periodList = []
+          let periodList = []
+          let periodR = await this.$http({
+            url: this.$http.adornUrl("/management/period/findAll"),
+            method: "get",
+            params: this.$http.adornParams({})
+          })
+          periodR.data.all && (periodList = periodR.data.all)
+          periodList.forEach(period => {
+            let item = {
+              value: period.id,
+              label: period.number,
+              pigstyId: period.pigstyId
+            }
+            this.periodList.push(item)
+          })
+          this.periodSelectedList = this.periodList
+          // 获取猪只List
+          if (data && data.code === 0) {
+            this.dataList = data.page.list
+            this.totalPage = data.page.totalCount
+          } else {
+            this.dataList = []
+            this.totalPage = 0
+            this.$message.error(data.msg)
           }
-          units.push(item)
-        });
-        if (data && data.code === 0) {
-          let pigs = data.page.list
-          // 将所有猪放进单元中
-          pigs.forEach(pig => {
-            for (let item of units) {
-              if (pig.unitId === item.value) {
-                let p = {
-                  label: pig.eartag,
-                  value: pig.eartag,
-                  cascader: [item.pastureId, item.pigstyId, item.value, pig.eartag]
-                }
-                item.children.push(p)
-                this.pigs.push(p)
-                break
+          // 猪只信息与单元、牧场、栏期、栋舍对应
+          this.dataList.forEach((item) => {
+            // 单元对应
+            for (let unit of this.unitList) {
+              if (item.unitId === unit.value) {
+                item.unitNumber = unit.label;
+                item.farmId = unit.farmId;
+                item.pigstyId = unit.pigstyId;
+                break;
               }
             }
-          });
-          // 将所有单元放进猪舍里面
-          units.forEach(unit => {
-            for (let item of pigstys) {
-              if (unit.pigstyId === item.value) {
-                item.children.push(unit)
-                break
+            // // 牧场对应
+            // for (let pasture of pastureList) {
+            //   if (item.farmId === pasture.id) {
+            //     item.name = pasture.name;
+            //     break;
+            //   }
+            // }
+            // 栋舍对应
+            for (let pighouse of this.pigstyList) {
+              if (item.pigstyId === pighouse.value) {
+                item.phNumber = pighouse.label;
+                break;
               }
             }
-          });
-          // 将所有猪舍放进牧场里
-          pigstys.forEach(pigsty => {
-            for (let item of pastures) {
-              if (pigsty.pastureId === item.value) {
-                item.children.push(pigsty)
-                break
+            // 栏期对应
+            for (let period of this.periodList) {
+              if (item.periodId === period.value) {
+                item.periodNumber = period.label;
+                break;
               }
             }
-          });
-        }
-        this.options = pastures
-      })
-    },
-    // 选择n个牧场
-    selectionChangeHandle (val) {
-      this.selectionDataList = []
-      val.forEach(item => {
-        this.selectionDataList.push(item.id)
-      });
-    },
-    // 删除n个牧场
-    deleteHandle (id) {
-      this.$confirm(`确定删除小猪谱系信息?`, '提示', {
-        confirmButtonText: '确定',
-        cancelButtonText: '取消',
-        type: 'warning'
-      }).then(() => {
-        // 删除操作
-        if (id) {
-          this.selectionDataList.push(id)
+          })
+          this.dataListLoading = false
+        })
+      },
+      // 根据栋舍选择限制单元和栏期
+      pigstyChange (val) {
+        this.unitSelectedList = this.unitList.filter(item => item.pigstyId === val)
+        this.periodSelectedList = this.periodList.filter(item => item.pigstyId === val)
+      },
+      // 需要先选择猪舍,才能选择单元或栏期
+      ifPigsty (val) {
+        if (!this.form.pigstyId) {
+          this.$message.error('请先选择猪舍')
+          this.form[val] = ''
         }
-        if (this.selectionDataList.length <= 0) {
-          return
+      },
+      // form表单清空,单元SelectedList 和 栏期SelectedList重置
+      clearAll () {
+        for (let i in this.form) {
+          this.form[i] = ''
         }
-        this.$http({
-          url: this.$http.adornUrl('/management/yearpigpedigree/delete'),
-          method: 'post',
-          data: this.$http.adornData(this.selectionDataList, false)
-        }).then(result => {
-          if (result.data.code === 0) {
-            this.$message({
-              message: '成功删除小猪谱系信息',
-              type: 'success',
-              duration: 1000
-            })
-          } else {
-            this.$message.error('删除小猪谱系信息失败');
-          }
-          this.resetForm()
-          this.selectionDataList = []
+        this.unitSelectedList = this.unitList
+        this.periodSelectedList = this.periodList
+      },
+      // 每页数
+      sizeChangeHandle (val) {
+        this.pageSize = val
+        this.pageIndex = 1
+        this.getDataList()
+      },
+      // 当前页
+      currentChangeHandle (val) {
+        this.pageIndex = val
+        this.getDataList()
+      },
+      // 多选
+      selectionChangeHandle (val) {
+        this.dataListSelections = val
+      },
+      // 查看谱系
+      detailsHandle (pig) {
+        this.detailsVisible = true
+        // var ids = id ? [id] : this.dataListSelections.map(item => {
+        //   return {
+        //     id: item.id,
+        //     eartag: item.eartag
+        //   }
+        // })
+        this.$nextTick(() => {
+          this.$refs.details.init(pig.eartag)
         })
-      }).catch(() => {})
-    },
-    formSubmit () {
-      if (this.form.pigletEartag[3] === this.form.sowEartag[3] || this.form.pigletEartag[3] === this.form.boarEartag[3] || this.form.sowEartag[3] === this.form.boarEartag[3]) {
-        // 请勿选择相同猪
-        this.$confirm(`请勿选择相同猪`, '提示', {
-            confirmButtonText: '确定',
-            cancelButtonText: '取消',
-            type: 'warning'
-          }).then(() => {
-            return
-          }).catch(() => {})
-          return
-      }
-      // 正常操作
-      if (this.form.id) {
-        // 修改
-        if (this.confirmInput()) {
-          // 进行修改操作
-          this.$http({
-            url: this.$http.adornUrl('/management/yearpigpedigree/update'),
-            method: 'post',
-            data: this.$http.adornData({
-              id: this.form.id,
-              pigletEartag: this.form.pigletEartag[3],
-              sowEartag: this.form.sowEartag[3],
-              boarEartag: this.form.boarEartag[3]
-            })
-          }).then(result => {
-            if (result.data.code === 0) {
-              this.resetForm();
-              this.visible = false;
-              this.$message({
-                message: '成功修改小猪谱系信息',
-                type: 'success',
-                duration: 1000
-              })
-            } else {
-              this.$message.error('修改小猪谱系信息失败');
-            }
-          })
-        } else {
-          // 请输入完整
-          this.$confirm(`请输入完整`, '提示', {
-            confirmButtonText: '确定',
-            cancelButtonText: '取消',
-            type: 'warning'
-          }).then(() => {
-            return
-          }).catch(() => {})
-        }
-      } else {
-        // 新增
-        if (this.confirmInput(1)) {
-          // 进行新增操作
+      },
+      // 删除
+      deleteHandle (id) {
+        var ids = id ? [id] : this.dataListSelections.map(item => {
+          return item.id
+        })
+        this.$confirm(`确定对[id=${ids.join(',')}]进行[${id ? '删除' : '批量删除'}]操作?`, '提示', {
+          confirmButtonText: '确定',
+          cancelButtonText: '取消',
+          type: 'warning'
+        }).then(() => {
           this.$http({
-            url: this.$http.adornUrl('/management/yearpigpedigree/save'),
+            url: this.$http.adornUrl('/management/yearpigbase/delete'),
             method: 'post',
-            data: this.$http.adornData({
-              pigletEartag: this.form.pigletEartag[3],
-              sowEartag: this.form.sowEartag[3],
-              boarEartag: this.form.boarEartag[3]
-            })
-          }).then(result => {
-            if (result.data.code === 0) {
-              this.resetForm();
-              this.visible = false;
+            data: this.$http.adornData(ids, false)
+          }).then(({data}) => {
+            if (data && data.code === 0) {
               this.$message({
-                message: '成功添加小猪谱系信息',
+                message: '操作成功',
                 type: 'success',
-                duration: 1000
+                duration: 1500,
+                onClose: () => {
+                  this.getDataList()
+                }
               })
             } else {
-              this.$message.error('添加小猪谱系信息失败');
+              this.$message.error(data.msg)
             }
           })
-        } else {
-          // 请输入完整
-          this.$confirm(`请输入完整`, '提示', {
-            confirmButtonText: '确定',
-            cancelButtonText: '取消',
-            type: 'warning'
-          }).then(() => {
-            return
-          }).catch(() => {})
-        }
+        }).catch(() => {})
       }
     },
-    // 判断新增/修改时是否输入完整
-    confirmInput (val) {
-      console.log('判断是否输入完整');
-      console.log(val);
-      val && (delete this.form.id, delete this.form.deleted, delete this.form.gmtCreate, delete this.form.gmtModified)
-      for (let i in this.form) {
-        if (!this.form[i].toString()) {
-          return false
+    watch: {
+      'form.pigstyId': {
+        handler(newValue, oldValue) {
+          if (oldValue) {
+            this.form.unitId = ''
+            this.form.periodId = ''
+          }
         }
       }
-      return true
-    },
-    // 清空form
-    resetForm () {
-      for (let i in this.form) {
-        this.form[i] = []
-      }
-      this.form.id = ''
-      this.getDataList()
-    },
-    // 取消
-    cancel () {
-      this.visible = false
-      this.resetForm()
     }
   }
-}
 </script>
 <style scoped>
-</style>
+.rect {
+  background-color: #fff;
+  padding: 30px 15px;
+  border-radius: 5px;
+  border: 1px solid #e8e8e8;
+}
+.rect-form {
+  padding-bottom: 10px;
+}
+.rect-table {
+  margin-top: 20px;
+}
+.demo-table-expand {
+  font-size: 0;
+  margin-left: 40px;
+}
+.demo-table-expand label {
+  width: 90px;
+  color: #99a9bf;
+}
+.demo-table-expand .el-form-item {
+  margin-right: 0;
+  margin-bottom: 0;
+  width: 80%;
+}
+.el-table .height {
+  background: rgba(254, 254, 254, 0.5);
+}
+/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>