Преглед изворни кода

2021.05.12 输入没有控制完

East пре 4 година
родитељ
комит
ab2436db77

+ 42 - 17
src/views/modules/basicdata/bpighouse.vue

@@ -69,14 +69,18 @@
         <template slot-scope="scope">
           <el-button
             v-if="isAuth('sys:user:update')"
-            type="text"
-            size="small"
-            @click="addOrUpdateHandle(scope.row)">修改</el-button>
+            type="success"
+            size="mini"
+            @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>
+            type="danger"
+            size="mini"
+            @click="deleteHandle(scope.row.id)">
+            删除
+          </el-button>
         </template>
       </el-table-column>
     </el-table>
@@ -104,7 +108,14 @@
           <el-input v-model="form.number" placeholder="猪舍编号"></el-input>
         </el-form-item>
         <el-form-item label="养殖员" prop="location">
-          <el-input v-model="form.feeder" placeholder="养殖员姓名"></el-input>
+          <el-select v-model="form.feeder" placeholder="请选择养殖员">
+            <el-option
+              v-for="item in employeeList"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id">
+            </el-option>
+          </el-select>
         </el-form-item>
       </el-form>
       <span slot="footer" class="dialog-footer">
@@ -143,9 +154,10 @@ export default {
         feeder: "",
       },
       pastureList: [], // 牧场list
+      employeeList: [] // 养殖员list
     };
   },
-  created() {
+  mounted() {
     this.getDataList();
   },
   methods: {
@@ -156,16 +168,22 @@ export default {
         url: this.$http.adornUrl("/management/pigsty/list"),
         method: "post",
         params: this.$http.adornParams({
-          // page: this.pageIndex,
-          // limit: this.pageSize,
-          // key: this.dataForm.key,
-        }),
+          page: 1,
+          limit: 10,
+          keywords: this.dataForm.key
+        })
       }).then(async ({ data }) => {
         let pastureResult = await this.$http({
-          url: this.$http.adornUrl("/management/pasture/list"),
-          method: "post",
+          url: this.$http.adornUrl("/management/pasture/findAll"),
+          method: "post"
+        });
+        pastureResult.data.all && (this.pastureList = pastureResult.data.all)
+        let employeeResult = await this.$http({
+          url: this.$http.adornUrl("/management/employee/findAll"),
+          method: "post"
         });
-        this.pastureList = pastureResult.data.page.list;
+        employeeResult.data.all && (this.employeeList = employeeResult.data.all)
+        console.log(this.employeeList);
         if (data && data.code === 0) {
           this.dataList = data.page.list;
           this.totalPage = data.page.totalCount;
@@ -176,7 +194,14 @@ export default {
                 break;
               }
             }
+            for (let feeder of this.employeeList) {
+              if (parseInt(item.feederId) === feeder.id) {
+                item["feeder"] = feeder.name;
+                break;
+              }
+            }
           });
+          console.log(this.dataList);
         } else {
           this.dataList = [];
           this.totalPage = 0;
@@ -258,7 +283,7 @@ export default {
               id: this.form.id,
               number: this.form.number,
               pastureId: this.form.pastureId,
-              feeder: this.form.feeder,
+              feederId: this.form.feeder,
             }),
           }).then((result) => {
             if (result.data.code === 0) {
@@ -295,7 +320,7 @@ export default {
             data: this.$http.adornData({
               number: this.form.number,
               pastureId: this.form.pastureId,
-              feeder: this.form.feeder,
+              feederId: this.form.feeder,
             }),
           }).then((result) => {
             if (result.data.code === 0) {

+ 10 - 5
src/views/modules/basicdata/branch.vue

@@ -4,7 +4,7 @@
       :inline="true"
       :model="dataForm"
       @keyup.enter.native="getDataList()">
-      <!-- <el-form-item>
+      <el-form-item>
         <el-input
           v-model="dataForm.key"
           placeholder="用户名/用户操作"
@@ -13,7 +13,7 @@
       </el-form-item>
       <el-form-item>
         <el-button @click="getDataList()">查询</el-button>
-      </el-form-item> -->
+      </el-form-item>
       <el-form-item>
         <el-button v-if="isAuth('sys:role:save')" type="primary" @click="addOrUpdateHandle()">新增</el-button>
       </el-form-item>
@@ -63,8 +63,8 @@
         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>
+          <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>
@@ -139,7 +139,12 @@ export default {
       this.dataListLoading = true
       this.$http({
         url: this.$http.adornUrl('/management/pasture/list'),
-        method: 'post'
+        method: 'post',
+        params: this.$http.adornParams({
+          page: 1,
+          limit: 10,
+          keywords: this.dataForm.key
+        })
       }).then(({ data }) => {
         if (data && data.code === 0) {
           this.dataList = data.page.list

+ 12 - 7
src/views/modules/basicdata/bunit.vue

@@ -56,8 +56,8 @@
         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>
+          <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>
@@ -139,20 +139,25 @@ export default {
       this.dataListLoading = true
       this.$http({
         url: this.$http.adornUrl('/management/unit/list'),
-        method: 'post'
+        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/list'),
+          url: this.$http.adornUrl('/management/pasture/findAll'),
           method: 'post'
         })
-        pastureResult.data.page && (this.pastureList = pastureResult.data.page.list)
+        pastureResult.data.all && (this.pastureList = pastureResult.data.all)
         // 获取所有猪舍
         let pighouseResult = await this.$http({
-          url: this.$http.adornUrl('/management/pigsty/list'),
+          url: this.$http.adornUrl('/management/pigsty/findAll'),
           method: 'post'
         })
-        pighouseResult.data.page && (this.pighouseList = pighouseResult.data.page.list)
+        pighouseResult.data.all && (this.pighouseList = pighouseResult.data.all)
         if (data && data.code === 0) {
           this.dataList = data.page.list
           this.totalPage = data.page.totalCount

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

@@ -220,26 +220,31 @@ export default {
       this.dataListLoading = true
       this.$http({
         url: this.$http.adornUrl('/management/yearpigbase/list'),
-        method: 'post'
+        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/list'),
+          url: this.$http.adornUrl('/management/pasture/findAll'),
           method: 'post'
         })
-        this.pastureList = pastureResult.data.page.list
+        pastureResult.data.all && (this.pastureList = pastureResult.data.all)
         // 获取所有猪舍
         let pighouseResult = await this.$http({
-          url: this.$http.adornUrl('/management/pigsty/list'),
+          url: this.$http.adornUrl('/management/pigsty/findAll'),
           method: 'post'
         })
-        this.pighouseList = pighouseResult.data.page.list
+        pighouseResult.data.all && (this.pighouseList = pighouseResult.data.all)
         // 获取所有单元
         let unitResult = await this.$http({
-          url: this.$http.adornUrl('/management/unit/list'),
+          url: this.$http.adornUrl('/management/unit/findAll'),
           method: 'post'
         })
-        this.unitList = unitResult.data.page.list
+        unitResult.data.all && (this.unitList = unitResult.data.all)
         if (data && data.code === 0) {
           this.dataList = data.page.list
           this.totalPage = data.page.totalCount

+ 121 - 182
src/views/modules/pigfarm/pfperson.vue

@@ -57,10 +57,12 @@
         label="离场时间">
       </el-table-column>
       <el-table-column
-        prop="jobStauts"
         header-align="center"
         align="center"
         label="当前在岗">
+        <template slot-scope="scope">
+          {{scope.row.jobStatus? '是': '否'}}
+        </template>
       </el-table-column>
       <el-table-column
         fixed="right"
@@ -79,35 +81,37 @@
       :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 label="姓名">
+         <el-input v-model="form.name" placeholder="养殖员姓名"></el-input>
+        </el-form-item>
+        <el-form-item label="职位">
+          <el-input v-model="form.position" placeholder="职位"></el-input>
+        </el-form-item>
+        <el-form-item label="当前在岗">
+          <el-select v-model="form.jobStatus" placeholder="请选择当前是否在岗">
+            <el-option
+              v-for="item in options"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value">
+            </el-option>
+          </el-select>
         </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 label="入场时间">
+          <el-date-picker
+            v-model="form.approachTime"
+            type="datetime"
+            value-format="yyyy-MM-dd HH:mm:ss"
+            placeholder="选择日期时间">
+          </el-date-picker>
         </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 label="离场时间">
+          <el-date-picker
+            v-model="form.departureTime"
+            type="datetime"
+            value-format="yyyy-MM-dd HH:mm:ss"
+            placeholder="选择日期时间">
+          </el-date-picker>
         </el-form-item>
       </el-form>
       <span slot="footer" class="dialog-footer">
@@ -141,11 +145,22 @@ export default {
       visible: false,
       form: {
         id: '',
-        pigletEartag: [],
-        sowEartag: [],
-        boarEartag: []
+        name: '',
+        position: '',
+        approachTime: '',
+        departureTime: '',
+        jobStatus: ''
       },
-      options: [],
+      options: [
+        {
+          value: true,
+          label: '是'
+        },
+        {
+          value: false,
+          label: '否'
+        }
+      ],
       pigs: []
     }
   },
@@ -153,22 +168,35 @@ export default {
     this.getDataList()
   },
   mounted () {
-    this.getCascader()
+    // this.getCascader()
   },
   methods: {
     // 获取数据列表
     getDataList () {
       this.dataListLoading = true
       this.$http({
-        url: this.$http.adornUrl('/management/yearpigpedigree/list'),
-        method: 'post'
+        url: this.$http.adornUrl('/management/employee/list'),
+        method: 'post',
+        params: this.$http.adornParams({
+          page: 1,
+          limit: 10,
+          keywords: this.dataForm.key
+        })
       }).then(({ data }) => {
+        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.$confirm(`查询养殖员信息失败`, '提示', {
+            confirmButtonText: '确定',
+            cancelButtonText: '取消',
+            type: 'warning'
+          }).then(() => {
+            return
+          }).catch(() => {})
         }
         this.dataListLoading = false
       })
@@ -189,131 +217,19 @@ export default {
       // 显示谱系新增 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
-          }
-        }
-        // 获取母亲耳标
-        for (let item of this.pigs) {
-          if (item.value === row.sowEartag) {
-            this.form.sowEartag = item.cascader
-            break
-          }
-        }
-        // 获取父亲耳标
-        for (let item of this.pigs) {
-          if (item.value === row.boarEartag) {
-            this.form.boarEartag = item.cascader
-            break
-          }
-        }
+        this.form = row
       }
     },
-    // 获取级联选择器
-    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: []
-          }
-          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
-              }
-            }
-          });
-          // 将所有单元放进猪舍里面
-          units.forEach(unit => {
-            for (let item of pigstys) {
-              if (unit.pigstyId === item.value) {
-                item.children.push(unit)
-                break
-              }
-            }
-          });
-          // 将所有猪舍放进牧场里
-          pigstys.forEach(pigsty => {
-            for (let item of pastures) {
-              if (pigsty.pastureId === item.value) {
-                item.children.push(pigsty)
-                break
-              }
-            }
-          });
-        }
-        this.options = pastures
-      })
-    },
-    // 选择n个牧场
+    // 选择n个养殖员
     selectionChangeHandle (val) {
       this.selectionDataList = []
       val.forEach(item => {
         this.selectionDataList.push(item.id)
       });
     },
-    // 删除n个牧场
+    // 删除n个养殖员
     deleteHandle (id) {
-      this.$confirm(`确定删除小猪谱系信息?`, '提示', {
+      this.$confirm(`确定删除养殖员信息?`, '提示', {
         confirmButtonText: '确定',
         cancelButtonText: '取消',
         type: 'warning'
@@ -326,18 +242,18 @@ export default {
           return
         }
         this.$http({
-          url: this.$http.adornUrl('/management/yearpigpedigree/delete'),
+          url: this.$http.adornUrl('/management/employee/delete'),
           method: 'post',
           data: this.$http.adornData(this.selectionDataList, false)
         }).then(result => {
           if (result.data.code === 0) {
             this.$message({
-              message: '成功删除小猪谱系信息',
+              message: '成功删除养殖员信息',
               type: 'success',
               duration: 1000
             })
           } else {
-            this.$message.error('删除小猪谱系信息失败');
+            this.$message.error('删除养殖员信息失败');
           }
           this.resetForm()
           this.selectionDataList = []
@@ -345,42 +261,35 @@ export default {
       }).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()) {
+          // 检查入场时间、立场时间、当前在岗
+          if (!this.confirmJobStatus()) {
+            return
+          }
           // 进行修改操作
           this.$http({
-            url: this.$http.adornUrl('/management/yearpigpedigree/update'),
+            url: this.$http.adornUrl('/management/employee/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]
+              position: this.form.position,
+              approachTime: this.form.approachTime,
+              departureTime: this.form.departureTime,
+              jobStatus: this.form.jobStatus
             })
           }).then(result => {
             if (result.data.code === 0) {
               this.resetForm();
               this.visible = false;
               this.$message({
-                message: '成功修改小猪谱系信息',
+                message: '成功修改养殖员信息',
                 type: 'success',
                 duration: 1000
               })
             } else {
-              this.$message.error('修改小猪谱系信息失败');
+              this.$message.error('修改养殖员信息失败');
             }
           })
         } else {
@@ -396,26 +305,32 @@ export default {
       } else {
         // 新增
         if (this.confirmInput(1)) {
+          // 检查入场时间、立场时间、当前在岗
+          if (!this.confirmJobStatus()) {
+            return
+          }
           // 进行新增操作
           this.$http({
-            url: this.$http.adornUrl('/management/yearpigpedigree/save'),
+            url: this.$http.adornUrl('/management/employee/save'),
             method: 'post',
             data: this.$http.adornData({
-              pigletEartag: this.form.pigletEartag[3],
-              sowEartag: this.form.sowEartag[3],
-              boarEartag: this.form.boarEartag[3]
+              name: this.form.name,
+              position: this.form.position,
+              approachTime: this.form.approachTime,
+              departureTime: this.form.departureTime,
+              jobStatus: this.form.jobStatus
             })
           }).then(result => {
             if (result.data.code === 0) {
               this.resetForm();
               this.visible = false;
               this.$message({
-                message: '成功添加小猪谱系信息',
+                message: '成功添加养殖员信息',
                 type: 'success',
                 duration: 1000
               })
             } else {
-              this.$message.error('添加小猪谱系信息失败');
+              this.$message.error('添加养殖员信息失败');
             }
           })
         } else {
@@ -432,8 +347,6 @@ export default {
     },
     // 判断新增/修改时是否输入完整
     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()) {
@@ -445,15 +358,41 @@ export default {
     // 清空form
     resetForm () {
       for (let i in this.form) {
-        this.form[i] = []
+        this.form[i] = ''
       }
-      this.form.id = ''
       this.getDataList()
     },
     // 取消
     cancel () {
       this.visible = false
       this.resetForm()
+    },
+    // 判断当前在岗是否正确
+    getJobStatus () {
+      let start = new Date(this.form.approachTime)
+      let end = new Date(this.form.departureTime)
+      let now = new Date()
+      if (start <= now && now <= end) {
+        return 1
+      } else if (start < end) {
+        return 2
+      }
+      return 0
+    },
+    // 判断当前在岗与入场时间、离场时间是否有冲突
+    confirmJobStatus () {
+      if ((this.getJobStatus() === 1  && this.form.jobStatus) || (this.getJobStatus() === 2  && !this.form.jobStatus)) {
+        return true
+      }
+      this.$confirm(`请检查当前在岗、入场时间与离场时间`, '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        // return false
+        console.log('新增养殖员有误');
+      }).catch(() => {})
+      return false
     }
   }
 }