Browse Source

明天年猪基本信息

East 4 years ago
parent
commit
7bfa4716e3

+ 13 - 0
src/mock/modules/sys-menu.js

@@ -586,6 +586,19 @@ var navDataList = [
         'orderNum': 16,
         'open': null,
         'list': null
+      },
+      {
+        'menuId': 48,
+        'parentId': 31,
+        'parentName': null,
+        'name': '栏期管理',
+        'url': 'basicdata/bperiod',
+        'perms': null,
+        'type': 1,
+        'icon': '',
+        'orderNum': 17,
+        'open': null,
+        'list': null
       }
     ]
   },

+ 423 - 0
src/views/modules/basicdata/bperiod.vue

@@ -0,0 +1,423 @@
+<template>
+  <div class="bunit">
+    <el-form
+      :inline="true"
+      :model="dataForm"
+      @keyup.enter.native="getDataList()">
+      <el-form-item>
+        <el-input
+          v-model="dataForm.key"
+          placeholder="关键字"
+          clearable>
+        </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="number"
+        header-align="center"
+        align="center"
+        label="栏期编号">
+      </el-table-column>
+      <el-table-column
+        prop="phNumber"
+        header-align="center"
+        align="center"
+        label="所属猪舍">
+      </el-table-column>
+      <el-table-column
+        prop="name"
+        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="success" size="mini" @click="addOrUpdateHandle(scope.row)">修改</el-button>
+          <el-button v-if="isAuth('sys:user:delete')" type="danger" size="mini" @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="所属牧场">
+          <el-select v-model="form.pastureId" placeholder="请选择所属牧场" @change="getPasture">
+            <el-option
+              v-for="item in pastureList"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id">
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="所属猪舍">
+          <el-select v-model="form.pigstyId" placeholder="请选择所属猪舍" @change="getPigsty">
+            <el-option
+              v-for="item in phSelectedList"
+              :key="item.id"
+              :label="item.number"
+              :value="item.id">
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="单元序号">
+          <el-input v-model="form.number" placeholder="请输入栏期编号"></el-input>
+        </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>
+</template>
+<script>
+export default {
+  data () {
+    return {
+      dataForm: {
+        key: ''
+      },
+      dataList: [
+        {
+          id: '',
+          number: '',
+          phNumber: '',
+          name: '',
+        }
+      ],
+      pageIndex: 1,
+      pageSize: 10,
+      totalPage: 0,
+      dataListLoading: false,
+      selectionDataList: [],
+      visible: false,
+      form: {
+        id: '',
+        number: '',
+        pastureId: '',
+        pigstyId: ''
+      },
+      pastureList: [], // 牧场list
+      pighouseList: [], // 猪舍list
+      phSelectedList: [] // 选择过牧场后的猪舍list
+    }
+  },
+  mounted () {
+    this.getDataList()
+  },
+  methods: {
+    // 获取数据列表
+    getDataList () {
+      this.dataListLoading = true
+      this.$http({
+        url: this.$http.adornUrl('/management/period/list'),
+        method: 'post',
+        params: this.$http.adornParams({
+          page: 1,
+          limit: 10,
+          keywords: this.dataForm.key
+        })
+      }).then(async ({ data }) => {
+        // 获取所有牧场
+        let pastureResult = await this.$http({
+          url: this.$http.adornUrl('/management/pasture/findAll'),
+          method: 'post'
+        })
+        pastureResult.data.all && (this.pastureList = pastureResult.data.all)
+        // 获取所有猪舍
+        let pighouseResult = await this.$http({
+          url: this.$http.adornUrl('/management/pigsty/findAll'),
+          method: 'post'
+        })
+        pighouseResult.data.all && (this.pighouseList = pighouseResult.data.all)
+        if (data && data.code === 0) {
+          this.dataList = data.page.list
+          this.totalPage = data.page.totalCount
+          // 牧场对应
+          this.dataList.forEach(item => {
+            for (let pasture of this.pastureList) {
+              if (item.pastureId === pasture.id) {
+                item.name = pasture.name
+                break
+              }
+            }
+          });
+          // 猪舍对应
+          this.dataList.forEach(item => {
+            for (let pighouse of this.pighouseList) {
+              if (item.pigstyId === pighouse.id) {
+                item.phNumber = pighouse.number
+                break
+              }
+            }
+          });
+          this.phSelectedList = this.pighouseList
+        } 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()
+    },
+    // 获取到了牧场 → 限制猪舍
+    getPasture (val) {
+      this.phSelectedList = []
+      this.pighouseList.forEach(item => {
+        if (item.pastureId === val) {
+          this.phSelectedList.push(item)
+        }
+      });
+      // 如果已有选中的猪舍,且该猪舍不属于该牧场,则清空猪舍选择
+      let i;
+      for (i = 0; i < this.phSelectedList.length; i++) {
+        let item = this.phSelectedList[i];
+        if (item.id === this.form.pigstyId) {
+          break
+        }
+      }
+      if (i === this.phSelectedList.length) {
+        this.form.pigstyId = ''
+      }
+    },
+    // 获取到猪舍
+    getPigsty (val) {
+      //  → 反向确定牧场
+      for (let item of this.pighouseList) {
+        if (item.id === val) {
+          this.form.pastureId = item.pastureId
+          break
+        }
+      }
+      // → 先获取猪舍,没有确定牧场的情况下,限制猪舍
+      this.phSelectedList = []
+      this.pighouseList.forEach(item => {
+        if (item.pastureId === this.form.pastureId) {
+          this.phSelectedList.push(item)
+        }
+      });
+    },
+    // 新增 or 修改单元
+    addOrUpdateHandle (row) {
+      // 显示牧场新增 or 修改面板
+      this.visible = true
+      if (row) {
+        this.form = row
+        console.log(row);
+      }
+    },
+    // 选择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)
+        }
+        if (this.selectionDataList.length <= 0) {
+          return
+        }
+        this.$http({
+          url: this.$http.adornUrl('/management/period/delete'),
+          method: 'post',
+          data: this.$http.adornData(this.selectionDataList, false)
+        }).then(result => {
+          console.log(result);
+          if (result.data.code === 0) {
+            this.resetForm()
+            this.$message({
+              message: '成功删除栏期',
+              type: 'success',
+              duration: 1000
+            })
+          } else {
+            this.$message.error('删除栏期失败');
+          }
+          this.selectionDataList = []
+        })
+      }).catch(() => {})
+    },
+    formSubmit () {
+      if (this.form.id) {
+        /** 修改 */
+        // 输入是否完整
+        if (!this.confirmComplete()) {
+          return
+        }
+        // 输入是否合法
+        if (!this.confirmInput()) {
+          return
+        }
+        // 进行修改操作
+        this.$http({
+          url: this.$http.adornUrl('/management/period/update'),
+          method: 'post',
+          data: this.$http.adornData({
+            id: this.form.id,
+            number: this.form.number,
+            pastureId: this.form.pastureId,
+            pigstyId: this.form.pigstyId
+          })
+        }).then(result => {
+          if (result.data.code === 0) {
+            this.resetForm();
+            this.visible = false;
+            this.$message({
+              message: '成功修改栏期信息',
+              type: 'success',
+              duration: 1000
+            })
+          } else {
+            this.$message.error('修改栏期信息失败');
+          }
+        })
+      } else {
+        /** 新增 */
+        // 输入是否完整
+        if (!this.confirmComplete(1)) {
+          return
+        }
+        // 输入是否合法
+        if (!this.confirmInput()) {
+          return
+        }
+        // 进行新增操作
+        this.$http({
+          url: this.$http.adornUrl('/management/period/save'),
+          method: 'post',
+          data: this.$http.adornData({
+            number: this.form.number,
+            pastureId: this.form.pastureId,
+            pigstyId: this.form.pigstyId
+          })
+        }).then(result => {
+          if (result.data.code === 0) {
+            this.resetForm();
+            this.visible = false;
+            this.$message({
+              message: '成功添加栏期',
+              type: 'success',
+              duration: 1000
+            })
+          } else {
+            this.$message.error('添加失败');
+          }
+        })
+      }
+    },
+    // 清空form
+    resetForm () {
+      for (let i in this.form) {
+        this.form[i] = ''
+      }
+      this.getDataList()
+    },
+    // 取消
+    cancel () {
+      this.visible = false
+      this.resetForm()
+    },
+    // 校验输入是否完整
+    validComplete (val) {
+      val && (delete this.form.id, delete this.form.deleted, delete this.form.gmtCreate, delete this.form.gmtModified, delete this.form.name, delete this.form.phNumber)
+      console.log(this.form);
+      for (let i in this.form) {
+        if (!this.form[i].toString()) {
+          return false
+        }
+      }
+      return true
+    },
+    // 如不完整,则提示
+    confirmComplete (val) {
+      if (this.validComplete(val)) {
+        return true
+      }
+      this.$confirm(`请输入完整`, '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        console.log('牧场输入不完整')
+      }).catch(() => {})
+      return false
+    },
+    // 校验输入是否合法,此处只校验单元序号
+    validInput () {
+      // 只允许中文、英文、数字、-、_的输入,取反
+      const reg = /[^\a-\z\A-\Z0-9\u4E00-\u9FA5\_\-]/g
+      if (reg.test(this.form.number)) {
+        return false
+      }
+      return true
+    },
+    // 如不合法,则提示
+    confirmInput () {
+      if (this.validInput()) {
+        return true
+      }
+      this.$confirm(`只允许输入中英文、数字、-与_`, '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        console.log('单元序号输入不合法')
+      }).catch(() => {})
+      return false
+    },
+    getchange (val) {
+      console.log(val);
+    }
+  }
+}
+</script>
+<style scoped>
+</style>

+ 127 - 88
src/views/modules/basicdata/bpighouse.vue

@@ -7,7 +7,7 @@
       <el-form-item>
         <el-input
           v-model="dataForm.key"
-          placeholder="用户名/用户操作"
+          placeholder="关键字"
           clearable>
         </el-input>
       </el-form-item>
@@ -94,7 +94,7 @@
         ref="form"
         @keyup.enter.native="formSubmit()"
         label-width="80px">
-        <el-form-item label="所属牧场" prop="name">
+        <el-form-item label="所属牧场">
           <el-select v-model="form.pastureId" placeholder="请选择所属牧场">
             <el-option
               v-for="item in pastureList"
@@ -104,11 +104,11 @@
             </el-option>
           </el-select>
         </el-form-item>
-        <el-form-item label="猪舍编号" prop="number">
+        <el-form-item label="猪舍编号">
           <el-input v-model="form.number" placeholder="猪舍编号"></el-input>
         </el-form-item>
-        <el-form-item label="养殖员" prop="location">
-          <el-select v-model="form.feeder" placeholder="请选择养殖员">
+        <el-form-item label="养殖员">
+          <el-select v-model="form.feederId" placeholder="请选择养殖员">
             <el-option
               v-for="item in employeeList"
               :key="item.id"
@@ -151,7 +151,7 @@ export default {
         id: "",
         number: "",
         pastureId: "",
-        feeder: "",
+        feederId: "",
       },
       pastureList: [], // 牧场list
       employeeList: [] // 养殖员list
@@ -196,18 +196,17 @@ export default {
             }
             for (let feeder of this.employeeList) {
               if (parseInt(item.feederId) === feeder.id) {
-                item["feeder"] = feeder.name;
-                break;
+                item["feeder"] = feeder.name
+                break
               }
             }
-          });
-          console.log(this.dataList);
+          })
         } else {
-          this.dataList = [];
-          this.totalPage = 0;
+          this.dataList = []
+          this.totalPage = 0
         }
-        this.dataListLoading = false;
-      });
+        this.dataListLoading = false
+      })
     },
     // 每页数
     sizeChangeHandle(val) {
@@ -263,7 +262,7 @@ export default {
                 duration: 1000,
               });
             } else {
-              this.$message.error("删除牧场失败");
+              this.$message.error('删除失败:' + result.data.msg);
             }
             this.resetForm();
             this.selectionDataList = [];
@@ -273,80 +272,70 @@ export default {
     },
     formSubmit() {
       if (this.form.id) {
-        // 修改
-        if (this.form.number && this.form.pastureId && this.form.feeder) {
-          // 进行修改操作
-          this.$http({
-            url: this.$http.adornUrl("/management/pigsty/update"),
-            method: "post",
-            data: this.$http.adornData({
-              id: this.form.id,
-              number: this.form.number,
-              pastureId: this.form.pastureId,
-              feederId: this.form.feeder,
-            }),
-          }).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(() => {});
+        /** 修改 */
+        // 输入是否完整
+        if (!this.confirmComplete()) {
+          return
+        }
+        // 输入是否合法
+        if (!this.confirmInput()) {
+          return
         }
+          // 进行修改操作
+        this.$http({
+          url: this.$http.adornUrl("/management/pigsty/update"),
+          method: "post",
+          data: this.$http.adornData({
+            id: this.form.id,
+            number: this.form.number,
+            pastureId: this.form.pastureId,
+            feederId: this.form.feederId,
+          }),
+        }).then((result) => {
+          if (result.data.code === 0) {
+            this.resetForm();
+            this.visible = false;
+            this.$message({
+              message: "成功修改猪舍信息",
+              type: "success",
+              duration: 1000,
+            });
+          } else {
+            this.$message.error("修改猪舍信息失败");
+          }
+        })
       } else {
-        // 新增
-        if (this.form.number && this.form.pastureId && this.form.feeder) {
-          // 进行新增操作
-          this.$http({
-            url: this.$http.adornUrl("/management/pigsty/save"),
-            method: "post",
-            data: this.$http.adornData({
-              number: this.form.number,
-              pastureId: this.form.pastureId,
-              feederId: this.form.feeder,
-            }),
-          }).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(() => {});
+        /** 新增 */
+        // 输入是否完整
+        if (!this.confirmComplete(1)) {
+          return
+        }
+        // 输入是否合法
+        if (!this.confirmInput()) {
+          return
         }
+        // 进行新增操作
+        this.$http({
+          url: this.$http.adornUrl("/management/pigsty/save"),
+          method: "post",
+          data: this.$http.adornData({
+            number: this.form.number,
+            pastureId: this.form.pastureId,
+            feederId: this.form.feederId,
+          }),
+        }).then((result) => {
+          if (result.data.code === 0) {
+            this.resetForm();
+            this.visible = false;
+            this.$message({
+              message: "成功添加猪舍",
+              type: "success",
+              duration: 1000,
+            });
+          } else {
+            this.$message.error("添加猪舍失败");
+          }
+        })
       }
     },
     // 清空form
@@ -361,8 +350,58 @@ export default {
       this.visible = false;
       this.resetForm();
     },
-  },
-};
+    // 校验输入是否完整
+    validComplete (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
+        }
+      }
+      return true
+    },
+    // 如不完整,则提示
+    confirmComplete (val) {
+      if (this.validComplete(val)) {
+        return true
+      }
+      this.$confirm(`请输入完整`, '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        console.log('牧场输入不完整')
+      }).catch(() => {})
+      return false
+    },
+    // 校验输入是否合法,此处只校验猪舍编号
+    validInput () {
+      // 只允许中文、英文、数字、-、_的输入,取反
+      const reg = /[^\a-\z\A-\Z0-9\u4E00-\u9FA5\_\-]/g
+      if (reg.test(this.form.number)) {
+        return false
+      }
+      return true
+    },
+    // 如不合法,则提示
+    confirmInput () {
+      if (this.validInput()) {
+        return true
+      }
+      this.$confirm(`只允许输入中英文、数字、-与_`, '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        console.log('猪舍编号输入不合法')
+      }).catch(() => {})
+      return false
+    },
+    getchange (val) {
+      console.log(val);
+    }
+  }
+}
 </script>
 <style scoped>
 </style>

+ 117 - 70
src/views/modules/basicdata/branch.vue

@@ -7,7 +7,7 @@
       <el-form-item>
         <el-input
           v-model="dataForm.key"
-          placeholder="用户名/用户操作"
+          placeholder="关键字"
           clearable
         ></el-input>
       </el-form-item>
@@ -217,78 +217,72 @@ export default {
     },
     formSubmit () {
       if (this.form.id) {
-        // 修改
-        if (this.form.name && this.form.manager && this.form.location && this.form.buildTime) {
-          // 进行修改操作
-          this.$http({
-            url: this.$http.adornUrl('/management/pasture/update'),
-            method: 'post',
-            data: this.$http.adornData({
-              id: this.form.id,
-              location: this.form.location,
-              manager: this.form.manager,
-              name: this.form.name,
-              buildTime: this.form.buildTime
-            })
-          }).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(() => {})
+        /** 修改 */
+        // 输入是否完整
+        if (!this.confirmComplete()) {
+          return
         }
-      } else {
-        // 新增
-        if (this.form.name && this.form.manager && this.form.location && this.form.buildTime) {
-          // 进行新增操作
-          this.$http({
-            url: this.$http.adornUrl('/management/pasture/save'),
-            method: 'post',
-            data: this.$http.adornData({
-              location: this.form.location,
-              manager: this.form.manager,
-              name: this.form.name,
-              buildTime: this.form.buildTime
-            })
-          }).then(result => {
-            if (result.data.code === 0) {
-              this.resetForm();
-              this.visible = false;
-              this.$message({
-                message: '成功添加牧场',
-                type: 'success',
-                duration: 1000
-              })
-            } else {
-              this.$message.error('添加牧场失败');
-            }
+        // 输入是否合法
+        if (!this.confirmInput()) {
+          return
+        }
+        // 进行修改操作
+        this.$http({
+          url: this.$http.adornUrl('/management/pasture/update'),
+          method: 'post',
+          data: this.$http.adornData({
+            id: this.form.id,
+            location: this.form.location,
+            manager: this.form.manager,
+            name: this.form.name,
+            buildTime: this.form.buildTime
           })
-        } else {
-          // 请输入完整
-          this.$confirm(`请输入完整`, '提示', {
-            confirmButtonText: '确定',
-            cancelButtonText: '取消',
-            type: 'warning'
-          }).then(() => {
-            return
-          }).catch(() => {})
+        }).then(result => {
+          if (result.data.code === 0) {
+            this.resetForm();
+            this.visible = false;
+            this.$message({
+              message: '成功修改牧场信息',
+              type: 'success',
+              duration: 1000
+            })
+          } else {
+            this.$message.error('修改牧场信息失败');
+          }
+        })
+      } else {
+        /** 新增 */
+        // 输入是否完整
+        if (!this.confirmComplete(1)) {
+          return
         }
+        // 输入是否合法
+        if (!this.confirmInput()) {
+          return
+        }
+        // 进行新增操作
+        this.$http({
+          url: this.$http.adornUrl('/management/pasture/save'),
+          method: 'post',
+          data: this.$http.adornData({
+            location: this.form.location,
+            manager: this.form.manager,
+            name: this.form.name,
+            buildTime: this.form.buildTime
+          })
+        }).then(result => {
+          if (result.data.code === 0) {
+            this.resetForm();
+            this.visible = false;
+            this.$message({
+              message: '成功添加牧场',
+              type: 'success',
+              duration: 1000
+            })
+          } else {
+            this.$message.error('添加牧场失败');
+          }
+        })
       }
     },
     // 清空form
@@ -302,6 +296,59 @@ export default {
     cancel () {
       this.visible = false
       this.resetForm()
+    },
+    // 校验输入是否完整
+    validComplete (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
+        }
+      }
+      return true
+    },
+    // 如不完整,则提示
+    confirmComplete (val) {
+      if (this.validComplete(val)) {
+        return true
+      }
+      this.$confirm(`请输入完整`, '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        console.log('牧场输入不完整');
+      }).catch(() => {})
+      return false
+    },
+    // 校验输入是否合法
+    validInput () {
+      // 只允许中文、英文、数字、-、_的输入,取反
+      const reg = /[^\a-\z\A-\Z0-9\u4E00-\u9FA5\_\-]/g
+      if (reg.test(this.form.name)) {
+        return false
+      }
+      if (reg.test(this.form.manager)) {
+        return false
+      }
+      if (reg.test(this.form.location)) {
+        return false
+      }
+      return true
+    },
+    // 如不合法,则提示
+    confirmInput () {
+      if (this.validInput()) {
+        return true
+      }
+      this.$confirm(`只允许输入中英文、数字、-与_`, '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        console.log('输入不合法');
+      }).catch(() => {})
+      return false
     }
   }
 }

+ 115 - 71
src/views/modules/basicdata/bunit.vue

@@ -7,7 +7,7 @@
       <el-form-item>
         <el-input
           v-model="dataForm.key"
-          placeholder="牧场关键字"
+          placeholder="关键字"
           clearable>
         </el-input>
       </el-form-item>
@@ -68,7 +68,7 @@
       @close="cancel">
       <el-form :model="form" ref="form" @keyup.enter.native="formSubmit()" label-width="80px">
         <el-form-item label="所属牧场">
-          <el-select v-model="form.pastureId" placeholder="请选择所属牧场" @change="getPasture" ref="pasture">
+          <el-select v-model="form.pastureId" placeholder="请选择所属牧场" @change="getPasture">
             <el-option
               v-for="item in pastureList"
               :key="item.id"
@@ -87,7 +87,7 @@
             </el-option>
           </el-select>
         </el-form-item>
-        <el-form-item label="单元号">
+        <el-form-item label="单元号">
           <el-input v-model="form.number" placeholder="请输入单元序号"></el-input>
         </el-form-item>
       </el-form>
@@ -287,77 +287,70 @@ export default {
     },
     formSubmit () {
       if (this.form.id) {
-        // 修改
-        console.log(this.form);
-        if (this.form.number && this.form.pastureId) {
-          // 进行修改操作
-          this.$http({
-            url: this.$http.adornUrl('/management/unit/update'),
-            method: 'post',
-            data: this.$http.adornData({
-              id: this.form.id,
-              number: this.form.number,
-              pastureId: this.form.pastureId,
-              pigstyId: this.form.pigstyId
-            })
-          }).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(() => {})
+        /** 修改 */
+        // 输入是否完整
+        if (!this.confirmComplete()) {
+          return
         }
-      } else {
-        // 新增
-        if (this.form.number && this.form.pastureId) {
-          // 进行新增操作
-          this.$http({
-            url: this.$http.adornUrl('/management/unit/save'),
-            method: 'post',
-            data: this.$http.adornData({
-              number: this.form.number,
-              pastureId: this.form.pastureId,
-              pigstyId: this.form.pigstyId
-            })
-          }).then(result => {
-            if (result.data.code === 0) {
-              this.resetForm();
-              this.visible = false;
-              this.$message({
-                message: '成功添加单元',
-                type: 'success',
-                duration: 1000
-              })
-            } else {
-              this.$message.error('添加单元失败');
-            }
+        // 输入是否合法
+        if (!this.confirmInput()) {
+          return
+        }
+        // 进行修改操作
+        this.$http({
+          url: this.$http.adornUrl('/management/unit/update'),
+          method: 'post',
+          data: this.$http.adornData({
+            id: this.form.id,
+            number: this.form.number,
+            pastureId: this.form.pastureId,
+            pigstyId: this.form.pigstyId
           })
-        } else {
-          // 请输入完整
-          this.$confirm(`请输入完整`, '提示', {
-            confirmButtonText: '确定',
-            cancelButtonText: '取消',
-            type: 'warning'
-          }).then(() => {
-            return
-          }).catch(() => {})
+        }).then(result => {
+          if (result.data.code === 0) {
+            this.resetForm();
+            this.visible = false;
+            this.$message({
+              message: '成功修改单元信息',
+              type: 'success',
+              duration: 1000
+            })
+          } else {
+            this.$message.error('修改单元信息失败');
+          }
+        })
+      } else {
+        /** 新增 */
+        // 输入是否完整
+        if (!this.confirmComplete(1)) {
+          return
+        }
+        // 输入是否合法
+        if (!this.confirmInput()) {
+          return
         }
+        // 进行新增操作
+        this.$http({
+          url: this.$http.adornUrl('/management/unit/save'),
+          method: 'post',
+          data: this.$http.adornData({
+            number: this.form.number,
+            pastureId: this.form.pastureId,
+            pigstyId: this.form.pigstyId
+          })
+        }).then(result => {
+          if (result.data.code === 0) {
+            this.resetForm();
+            this.visible = false;
+            this.$message({
+              message: '成功添加单元',
+              type: 'success',
+              duration: 1000
+            })
+          } else {
+            this.$message.error('添加失败');
+          }
+        })
       }
     },
     // 清空form
@@ -371,6 +364,57 @@ export default {
     cancel () {
       this.visible = false
       this.resetForm()
+    },
+    // 校验输入是否完整
+    validComplete (val) {
+      val && (delete this.form.id, delete this.form.deleted, delete this.form.gmtCreate, delete this.form.gmtModified, delete this.form.name, delete this.form.phNumber)
+      console.log(this.form);
+      for (let i in this.form) {
+        if (!this.form[i].toString()) {
+          return false
+        }
+      }
+      return true
+    },
+    // 如不完整,则提示
+    confirmComplete (val) {
+      if (this.validComplete(val)) {
+        return true
+      }
+      this.$confirm(`请输入完整`, '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        console.log('牧场输入不完整')
+      }).catch(() => {})
+      return false
+    },
+    // 校验输入是否合法,此处只校验单元序号
+    validInput () {
+      // 只允许中文、英文、数字、-、_的输入,取反
+      const reg = /[^\a-\z\A-\Z0-9\u4E00-\u9FA5\_\-]/g
+      if (reg.test(this.form.number)) {
+        return false
+      }
+      return true
+    },
+    // 如不合法,则提示
+    confirmInput () {
+      if (this.validInput()) {
+        return true
+      }
+      this.$confirm(`只允许输入中英文、数字、-与_`, '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        console.log('单元序号输入不合法')
+      }).catch(() => {})
+      return false
+    },
+    getchange (val) {
+      console.log(val);
     }
   }
 }

+ 35 - 7
src/views/modules/pigbasic/pbbasic.vue

@@ -7,7 +7,7 @@
       <el-form-item>
         <el-input
           v-model="dataForm.key"
-          placeholder="牧场关键字"
+          placeholder="关键字"
           clearable>
         </el-input>
       </el-form-item>
@@ -72,7 +72,13 @@
         label="年猪耳标">
       </el-table-column>
       <el-table-column
-        prop="number"
+        prop="periodNumber"
+        header-align="center"
+        align="center"
+        label="所属栏期">
+      </el-table-column>
+      <el-table-column
+        prop="unitNumber"
         header-align="center"
         align="center"
         label="所属单元">
@@ -127,7 +133,6 @@
           </el-select>
         </el-form-item>
         <el-form-item label="单元序号">
-          <!-- <el-input v-model="form.number" placeholder="请输入单元序号"></el-input> -->
           <el-select v-model="form.unitId" placeholder="请选择所属单元" @change="getUnit">
             <el-option
               v-for="item in unSelectedList"
@@ -157,7 +162,7 @@
           <el-input v-model="form.weight" placeholder="请输入体重(千克)"></el-input>
         </el-form-item>
         <el-form-item label="品种">
-          <el-input v-model="form.variety" placeholder="请输入去向"></el-input>
+          <el-input v-model="form.variety" placeholder="请输入品种"></el-input>
         </el-form-item>
         <el-form-item label="去向">
           <el-input v-model="form.whereDidYouGo" placeholder="请输入去向"></el-input>
@@ -192,13 +197,18 @@ export default {
         dayAge: '',
         eartag: '',
         healthStatus: '',
-        variety: ''
+        breed: '',
+        birthday: '',
+        sex: '',
+        pigstyId: ''
       },
       pastureList: [], // 牧场list
       pighouseList: [], // 猪舍list
       phSelectedList: [], // 选择过牧场后的猪舍list
       unitList: [], // 单元list
       unSelectedList: [], // 选择过后的单元list
+      periodList: [], // 栏期list
+      peSelectedList: [], // 选择过后的栏期list
       health: [
         {
           value: true,
@@ -208,6 +218,16 @@ export default {
           value: false,
           label: '不健康'
         }
+      ],
+      sex: [
+        {
+          value: '公',
+          label: '公'
+        },
+        {
+          value: '母',
+          label: '母'
+        }
       ]
     }
   },
@@ -245,6 +265,11 @@ export default {
           method: 'post'
         })
         unitResult.data.all && (this.unitList = unitResult.data.all)
+        // 获取所有栏期
+        let periodResult = await this.$http({
+          url: this.$http.adornUrl('/management/period/findAll'),
+          method: 'post'
+        })
         if (data && data.code === 0) {
           this.dataList = data.page.list
           this.totalPage = data.page.totalCount
@@ -505,7 +530,10 @@ export default {
               healthStatus: this.form.healthStatus,
               weight: parseInt(this.form.weight),
               whereDidYouGo: this.form.whereDidYouGo,
-              variety: this.form.variety
+              breed: this.form.variety,
+              pigstyId: this.form.phNumber,
+              birthday: this.form.birthday,
+              sex: this.form.sex
             })
           }).then(result => {
             console.log(result);
@@ -537,7 +565,7 @@ export default {
     confirmInput (val) {
       console.log('判断是否输入完整');
       console.log(val);
-      val && (delete this.form.id, delete this.form.deleted, delete this.form.fosterStatus, delete this.form.gmtCreate, delete this.form.gmtModified, delete this.form.name, delete this.form.number, delete this.form.phNumber)
+      val && (delete this.form.id, delete this.form.deleted, delete this.form.fosterStatus, delete this.form.gmtCreate, delete this.form.gmtModified, delete this.form.name, delete this.form.number)
       console.log(this.form);
       for (let i in this.form) {
         if (!this.form[i].toString()) {

+ 1 - 15
src/views/modules/pigbasic/pbpedigree.vue

@@ -7,7 +7,7 @@
       <el-form-item>
         <el-input
           v-model="dataForm.key"
-          placeholder="用户名/用户操作"
+          placeholder="关键字"
           clearable
         ></el-input>
       </el-form-item>
@@ -78,23 +78,9 @@
           <el-cascader :options="options" :show-all-levels="false" v-model="form.pigletEartag" clearable></el-cascader>
         </el-form-item>
         <el-form-item label="母亲耳标">
-          <!-- <div class="block">
-            <el-cascader
-              v-model="form.sowEartag"
-              :options="options"
-              :props="{ expandTrigger: 'hover' }"
-              @change="handleChange"></el-cascader>
-          </div> -->
           <el-cascader :options="options" :show-all-levels="false" v-model="form.sowEartag" clearable></el-cascader>
         </el-form-item>
         <el-form-item label="父亲耳标">
-          <!-- <div class="block">
-            <el-cascader
-              v-model="form.boarEartag"
-              :options="options"
-              :props="{ expandTrigger: 'hover' }"
-              @change="handleChange"></el-cascader>
-          </div> -->
           <el-cascader :options="options" :show-all-levels="false" v-model="form.boarEartag" clearable></el-cascader>
         </el-form-item>
       </el-form>

+ 1 - 1
static/config/index.js

@@ -6,7 +6,7 @@
 
   // api接口请求地址
   // window.SITE_CONFIG['baseUrl'] = 'http://localhost:8080/renren-fast';
-  window.SITE_CONFIG['baseUrl'] = 'http://192.168.1.54:88/api';
+  window.SITE_CONFIG['baseUrl'] = 'http://192.168.1.44:88/api';
 
   // cdn地址 = 域名 + 版本号
   window.SITE_CONFIG['domain']  = './'; // 域名