linan hace 4 años
padre
commit
d60d8c971a

+ 24 - 0
src/api/production.js

@@ -6,3 +6,27 @@ export const reqBatchList = (data) => ajax("post", "/farm-huyang/batch/list", da
 
 export const reqAddBatch = (data) => ajax("post", "/farm-huyang/batch/create", data)
 
+
+
+/* 调拨转舍  ShiftField*/
+export const reqShiftFieldList = (data) => ajax("post", "/farm-huyang/batchTransfer/list", data)
+
+export const reqAddShiftField = (data) => ajax("post", "/farm-huyang/batchTransfer/add", data)
+
+
+/* 调拨转舍  DieWeedOut*/
+export const reqDieWeedOutList = (data) => ajax("post", "/farm-huyang/culling/list", data)
+
+export const reqAddDieWeedOut = (data) => ajax("post", "/farm-huyang/culling/add", data)
+
+
+/* 耳标管理  EarTag*/
+export const reqEarTagList = (data) => ajax("post", "/farm-huyang/earTag/list", data)
+
+export const reqAddEarTag = (data) => ajax("post", "/farm-huyang/earTag/add", data)
+
+
+/* 检测报告  ExaminingReport*/
+export const reqExaminingReportList = (data) => ajax("post", "/farm-huyang/test/list", data)
+
+export const reqAddExaminingReport = (data) => ajax("post", "/farm-huyang/test/add", data)

+ 17 - 2
src/store/index.js

@@ -4,6 +4,7 @@ import Vuex from 'vuex'
 import publicType from './publicType.js' // 公共的类型 
 import { reqWorkerList, reqBuildList } from "@/api/fileInfo.js";
 import { reqBasicsInfoList} from "@/api/material.js";
+import { reqBatchList } from "@/api/production.js";
 
 Vue.use(Vuex)
 
@@ -14,6 +15,7 @@ export default new Vuex.Store({
 		workerList: [{id:1}], // 员工列表 (加{id:1} 是为了防止刷新时报错,因为设置默认值时用到过)
 		areaList: [{id:1}],  // 栋舍列表
 		drugBasicsList: [{id:1}],  // 基础药品列表
+		batchList: [],  // 批次列表
 		...publicType
 	},
 	getters: {},
@@ -27,6 +29,9 @@ export default new Vuex.Store({
 		},
 		setDrugBasicsList(state, drugBasicsList) {
 			state.drugBasicsList = drugBasicsList
+		},
+		seetBatchList(state, batchList) {
+			state.batchList = batchList
 		}
 	},
 	actions: {
@@ -40,7 +45,7 @@ export default new Vuex.Store({
 				commit('setWorkerList', res.content)
 			})
 		},
-		/* 获取栋舍列表 登录后 home、areaInfo时调用了*/
+		/* 获取栋舍列表 登录后 home、areaInfo时调用了*/
 		getAreaList({ commit }) {
 			reqBuildList({
 				searchStr: '',
@@ -50,7 +55,7 @@ export default new Vuex.Store({
 				commit('setAreaList', res.content)
 			})
 		},
-		/* 获取基础药品列表 登录后 home时调用了*/
+		/* 获取基础药品列表 登录后 home时调用了*/
 		getDrugBasicsList({ commit }) {
 			reqBasicsInfoList({
 				searchStr: '',
@@ -59,6 +64,16 @@ export default new Vuex.Store({
 			}).then(res => {
 				commit('setDrugBasicsList', res.content)
 			})
+		},
+		/* 获取批次列表 登录后在 home、batch.vue时调用了*/
+		getBatchList({ commit }) {
+			reqBatchList({
+				searchStr: '',
+				pageSize: 1000,
+				pageNum: 1
+			}).then(res => {
+				commit('seetBatchList', res.content)
+			})
 		}
 	}
 })

+ 14 - 1
src/store/publicType.js

@@ -89,14 +89,27 @@ const harmlessConfirmStatus = [
     { label: "未确认", value: 0 },
     { label: "已确认", value: 1 }
 ]
+
+// 检测羊对象类型 (examiningReport.vue) 
+const examiningSheepType = [
+    { label: "羊只", value: 1 },
+    { label: "批次", value: 2 }
+]
+
+// 检测结果类型 (examiningReport.vue) 
+const examiningReportType = [
+    { label: "未通过", value: 0 },
+    { label: "通过", value: 1 }
+]
 /* workerList 员工列表  动态获取了 在home.vue中获取了 */
 /* areaList 栋舍信息  动态获取了 在home.vue中获取了 */
 /* drugBasicsList 基础药品列表   动态获取了 在home.vue中获取了 */
+/* batchList 批次列表   动态获取了 在home.vue、batch.vue中获取了 */
 
 export default {
     seedSheedSource, seedSheedLevel, seedSheedStatus, seedColor, seedDensity,
     fetationStatus, estrusStatus, vaccineStyle, sheepType, cureStatus, periodOfValidityUnit
-    , drugStatus, harmlessConfirmStatus
+    , drugStatus, harmlessConfirmStatus, examiningSheepType, examiningReportType
 }
 
 

+ 2 - 0
src/views/Home/Home.vue

@@ -122,6 +122,8 @@ export default {
         this.$store.dispatch('getAreaList')
         // 获取基础药品列表 给后面下拉选择器使用
         this.$store.dispatch('getDrugBasicsList')
+        // 获取批次列表 给后面下拉选择器使用
+        this.$store.dispatch('getBatchList')
     },
     methods: {
         // 收取菜单按钮

+ 11 - 6
src/views/fileInfo/workerInfo.vue

@@ -23,11 +23,16 @@
                 >
                     <el-table-column prop="id" label="序号" width="80"></el-table-column>
                     <el-table-column prop="name" label="姓名"></el-table-column>
-                    <el-table-column prop="gender" label="性别"></el-table-column>
+                    <el-table-column prop="gender" label="性别">
+                        <template v-slot="scope">
+                            <span v-if="scope.row.gender==1">男</span>
+                            <span v-if="scope.row.gender==2">女</span>
+                        </template>
+                    </el-table-column>
                     <el-table-column prop="age" label="年龄"></el-table-column>
                     <el-table-column prop="position" label="职位"></el-table-column>
                     <el-table-column label="当前状态">
-                        <template slot-scope="scope">
+                        <template v-slot="scope">
                             <span v-if="scope.row['status']==1">在职</span>
                             <span v-else>离职</span>
                         </template>
@@ -38,7 +43,7 @@
                     <el-table-column prop="duty" label="责任区域"></el-table-column>
                     <el-table-column prop="entryTime" label="入职时间"></el-table-column>
                     <el-table-column label="操作" width="150">
-                        <template slot-scope="scope">
+                        <template v-slot="scope">
                             <el-button @click="edit(scope.row)" type="text" size="small">编辑</el-button>
                             <el-popconfirm title="是否删除此设备的信息?" @onConfirm="del(scope.row)">
                                 <el-button slot="reference" type="text" size="small">删除</el-button>
@@ -69,8 +74,8 @@
                         </el-form-item>
                         <el-form-item label="性别">
                             <el-radio-group v-model="formData.gender">
-                                <el-radio label="1">男</el-radio>
-                                <el-radio label="2">女</el-radio>
+                                <el-radio :label="1">男</el-radio>
+                                <el-radio :label="2">女</el-radio>
                             </el-radio-group>
                         </el-form-item>
                         <el-form-item label="年龄">
@@ -123,7 +128,7 @@ export default {
             isShow: false,
             formData: {
                 name: "王炸",
-                gender: "1",
+                gender: 1,
                 age: "22",
                 farmName: "xx牧场",
                 position: "饲养员",

+ 2 - 0
src/views/production/batch.vue

@@ -188,6 +188,8 @@ export default {
                 if (valid) {
                     reqAddBatch(this.formData)
                         .then(res => {
+                            // 获取批次列表 给后面下拉选择器使用
+                            this.$store.dispatch("getBatchList");
                             // 批次列表
                             this.getBatchList();
                             // 获取种羊档案列表

+ 120 - 113
src/views/production/dieWeedOut.vue

@@ -1,67 +1,39 @@
 <template>
-    <div class="dieWeedOut">
+    <div class="DieWeedOut">
         <h2 style="margin-bottom: 20px;padding-bottom:7px;border-bottom:2px solid #ddd">死淘管理</h2>
-
         <header id="header">
-            
-            <el-row type="flex">
-                <el-col :span="4">
-                    <el-select v-model="value" placeholder="请选择">
-                        <el-option label="1区" value="11"></el-option>
-                        <el-option label="2区" value="22"></el-option>
-                    </el-select>
-                </el-col>
-                <el-col :span="4">
-                    <el-select v-model="value" placeholder="请选择">
-                        <el-option label="1舍" value="13"></el-option>
-                        <el-option label="2舍" value="24"></el-option>
-                    </el-select>
-                </el-col>
+            <el-row type="flex" :gutter="20">
                 <el-col :span="4">
-                    <el-select v-model="value" placeholder="请选择">
-                        <el-option label="可用" value="15"></el-option>
-                        <el-option label="可用" value="26"></el-option>
-                    </el-select>
+                    <el-input v-model="search" placeholder="请输入"></el-input>
                 </el-col>
                 <el-col :span="4">
-                    <el-button type="primary">查找</el-button>
+                    <el-button type="primary" @click="getDieWeedOutList">查找</el-button>
                 </el-col>
                 <el-col :span="4">
-                    <el-button type="primary">新增</el-button>
+                    <el-button type="primary" @click="add">新增</el-button>
                 </el-col>
             </el-row>
         </header>
         <section>
             <article class="table">
                 <el-table
-                    ref="multipleTable"
                     :data="tableData"
                     tooltip-effect="dark"
                     style="width: 100%"
-                    @selection-change="handleSelectionChange"
                 >
-                    <el-table-column type="selection" width="55"></el-table-column>
-                    <el-table-column prop="a" label="屠宰批次"></el-table-column>
-                    <el-table-column prop="b" label="产品名称"></el-table-column>
-                    <el-table-column prop="c" label="排酸时间"></el-table-column>
-                    <el-table-column prop="d" label="排酸前重量"></el-table-column>
-                    <el-table-column prop="e" label="排酸后重量"></el-table-column>
-                    <el-table-column prop="f" label="排酸损耗"></el-table-column>
-                    <el-table-column prop="g" label="负责人员"></el-table-column>
-                    <!-- <el-table-column label="操作" width="150">
-                        <template slot-scope="scope">
-                            <el-button @click="edit(scope.row)" type="text" size="small">编辑</el-button>
-                            <el-popconfirm title="是否删除此设备的信息?" @onConfirm="del(scope.row)">
-                                <el-button slot="reference" type="text" size="small">删除</el-button>
-                            </el-popconfirm>
+                    <el-table-column prop="id" label="序号"></el-table-column>
+                    <el-table-column prop="sheepId" label="羊只编码"></el-table-column>
+                    <el-table-column prop="cullingTime" label="死淘时间"></el-table-column>
+                    <el-table-column label="操作人">
+                        <template v-slot="scope">
+                            <div v-for="item in $store.state['workerList']" :key="item.value">
+                                <span v-if="item.id == scope.row['opeUser']">{{ `${item.name}(${item.position})` }}</span>
+                            </div>
                         </template>
-                    </el-table-column> -->
+                    </el-table-column>
+                    <el-table-column prop="cause" label="淘汰原因"></el-table-column>
+                    <el-table-column prop="remark" label="备注"></el-table-column>
                 </el-table>
-                <div style="margin-top: 20px">
-                    <el-button @click="toggleSelection([tableData[1], tableData[2]])">切换第二、第三行的选中状态</el-button>
-                    <el-button @click="toggleSelection()">取消选择</el-button>
-                    <el-button @click="inStore">入待宰栏</el-button>
-                </div>
 
                 <el-row type="flex" justify="end">
                     <el-col :span="8" class="pagination">
@@ -69,97 +41,132 @@
                             @current-change="pageChange"
                             background
                             layout="prev, pager, next"
-                            :page-count="10"
+                            :page-count="Number(totalPages)"
                         ></el-pagination>
                     </el-col>
                 </el-row>
             </article>
         </section>
+
+        <el-dialog title="新增" :visible.sync="isShow" width="40%">
+            <el-row type="flex">
+                <el-col :span="20">
+                    <el-form ref="addDieWeedOut" :model="formData" :rules="rules" label-width="140px">
+                        <el-form-item label="羊只编码">
+                            <el-input v-model="formData.sheepId"></el-input>
+                        </el-form-item>
+                        <el-form-item label="死淘时间">
+                            <el-date-picker
+                                v-model="formData.cullingTime"
+                                type="date"
+                                value-format="yyyy-MM-dd HH:mm:ss"
+                                placeholder="选择日期"
+                            ></el-date-picker>
+                        </el-form-item>
+                        <el-form-item label="操作人">
+                            <el-select v-model="formData.opeUser" filterable placeholder="请选择">
+                                <el-option
+                                    v-for="item in $store.state['workerList']"
+                                    :key="item.id"
+                                    :label="`${item.name}(${item.position})`"
+                                    :value="item.id"
+                                ></el-option>
+                            </el-select>
+                        </el-form-item>
+                        <el-form-item label="淘汰原因">
+                            <el-input type="textarea" autosize v-model="formData.cause"></el-input>
+                        </el-form-item>
+                        <el-form-item label="备注">
+                            <el-input type="textarea" autosize v-model="formData.remark"></el-input>
+                        </el-form-item>
+                        <el-form-item>
+                            <el-button @click="isShow=false">取 消</el-button>
+                            <el-button type="primary" @click="submitForm('addDieWeedOut')">保 存</el-button>
+                        </el-form-item>
+                    </el-form>
+                </el-col>
+            </el-row>
+        </el-dialog>
     </div>
 </template>
 
 <script>
+import {
+    reqDieWeedOutList,
+    reqAddDieWeedOut
+} from "@/api/production.js";
 
-const pageSize = 10
-const tableData = [
-                {
-                    a: "15463",
-                    b: "胴体",
-                    c: "2020-07-14",
-                    d: "49kg",
-                    e: "48kg",
-                    f: "1.6%",
-                    g: "张小刚",
-                },
-                {
-                    a: "15463",
-                    b: "带骨羊前腿",
-                    c: "2020-07-14",
-                    d: "49kg",
-                    e: "48kg",
-                    f: "1.6%",
-                    g: "张小刚",
-                },
-                {
-                    a: "15463",
-                    b: "羔羊肉卷",
-                    c: "2020-07-14",
-                    d: "49kg",
-                    e: "48kg",
-                    f: "1.6%",
-                    g: "张小刚",
-                },
-                {
-                    a: "15463",
-                    b: "胴体",
-                    c: "2020-07-14",
-                    d: "49kg",
-                    e: "48kg",
-                    f: "1.6%",
-                    g: "张小刚",
-                },
-                {
-                    a: "15463",
-                    b: "羔羊肉卷",
-                    c: "2020-07-14",
-                    d: "49kg",
-                    e: "48kg",
-                    f: "1.6%",
-                    g: "张小刚",
-                },
-                
-                
-            ]
+const pageSize = 10;
+const rules = {};
 
 export default {
+    name: "DieWeedOut",
     data() {
         return {
-            value: "",
-            multipleSelection: [],
-            page: 1,
-            tableData
+            search: "",
+            pageNum: 1,
+            tableData: [],
+            totalPages: 0,
+            isShow: false,
+            formData: {
+                sheepId: "35",
+                cullingTime: this.$moment().format('YYYY-MM-DD HH:mm:ss'),
+                opeUser: null,
+                cause: "产子太少弱仔多",
+                remark: "备注"
+            },
+            rules
         };
     },
-    created() {},
+    created() {
+        // 死淘管理列表
+        this.getDieWeedOutList();
+    },
     methods: {
-        toggleSelection(rows) {
-            if (rows) {
-                rows.forEach(row => {
-                    this.$refs.multipleTable.toggleRowSelection(row);
+        submitForm(formName) {
+            this.$refs[formName].validate(valid => {
+                if (valid) {
+                    reqAddDieWeedOut(this.formData)
+                        .then(res => {
+                            // 死淘管理列表
+                            this.getDieWeedOutList();
+                            this.$message.success("成功!");
+                            // this.isShow = false
+                        })
+                        .catch(err => {
+                            console.log(err);
+                            this.$message.error("失败!");
+                        });
+                } else {
+                    return false;
+                }
+            });
+        },
+        // 死淘管理列表
+        getDieWeedOutList() {
+            reqDieWeedOutList({
+                searchStr: this.search,
+                pageSize,
+                pageNum: this.pageNum
+            })
+                .then(res => {
+                    this.tableData = res.content;
+                    this.totalPages = res.totalPages;
+                })
+                .catch(err => {
+                    console.log(err);
                 });
-            } else {
-                this.$refs.multipleTable.clearSelection();
-            }
         },
-        // 入待宰栏
-        inStore() {},
-        handleSelectionChange(val) {
-            this.multipleSelection = val;
+        add() {
+            this.isShow = true;
+            // 有id是update 没id是add
+            delete this.formData.id;
         },
-        edit(row) {},
-        del(row) {},
         pageChange(p) {
             console.log(p);
+            this.pageNum = p;
+            // 死淘管理列表
+            this.getDieWeedOutList();
         }
     }
 };

+ 120 - 113
src/views/production/earTag.vue

@@ -1,67 +1,39 @@
 <template>
-    <div class="earTag">
+    <div class="EarTag">
         <h2 style="margin-bottom: 20px;padding-bottom:7px;border-bottom:2px solid #ddd">耳标管理</h2>
-
         <header id="header">
-            
-            <el-row type="flex">
-                <el-col :span="4">
-                    <el-select v-model="value" placeholder="请选择">
-                        <el-option label="1区" value="11"></el-option>
-                        <el-option label="2区" value="22"></el-option>
-                    </el-select>
-                </el-col>
-                <el-col :span="4">
-                    <el-select v-model="value" placeholder="请选择">
-                        <el-option label="1舍" value="13"></el-option>
-                        <el-option label="2舍" value="24"></el-option>
-                    </el-select>
-                </el-col>
+            <el-row type="flex" :gutter="20">
                 <el-col :span="4">
-                    <el-select v-model="value" placeholder="请选择">
-                        <el-option label="可用" value="15"></el-option>
-                        <el-option label="可用" value="26"></el-option>
-                    </el-select>
+                    <el-input v-model="search" placeholder="请输入"></el-input>
                 </el-col>
                 <el-col :span="4">
-                    <el-button type="primary">查找</el-button>
+                    <el-button type="primary" @click="getEarTagList">查找</el-button>
                 </el-col>
                 <el-col :span="4">
-                    <el-button type="primary">新增</el-button>
+                    <el-button type="primary" @click="add">新增</el-button>
                 </el-col>
             </el-row>
         </header>
         <section>
             <article class="table">
                 <el-table
-                    ref="multipleTable"
                     :data="tableData"
                     tooltip-effect="dark"
                     style="width: 100%"
-                    @selection-change="handleSelectionChange"
                 >
-                    <el-table-column type="selection" width="55"></el-table-column>
-                    <el-table-column prop="a" label="屠宰批次"></el-table-column>
-                    <el-table-column prop="b" label="产品名称"></el-table-column>
-                    <el-table-column prop="c" label="排酸时间"></el-table-column>
-                    <el-table-column prop="d" label="排酸前重量"></el-table-column>
-                    <el-table-column prop="e" label="排酸后重量"></el-table-column>
-                    <el-table-column prop="f" label="排酸损耗"></el-table-column>
-                    <el-table-column prop="g" label="负责人员"></el-table-column>
-                    <!-- <el-table-column label="操作" width="150">
-                        <template slot-scope="scope">
-                            <el-button @click="edit(scope.row)" type="text" size="small">编辑</el-button>
-                            <el-popconfirm title="是否删除此设备的信息?" @onConfirm="del(scope.row)">
-                                <el-button slot="reference" type="text" size="small">删除</el-button>
-                            </el-popconfirm>
+                    <el-table-column prop="id" label="序号"></el-table-column>
+                    <el-table-column prop="earTag" label="耳标编码"></el-table-column>
+                    <el-table-column prop="sheepId" label="羊只编码"></el-table-column>
+                    <el-table-column prop="bindTime" label="上标时间"></el-table-column>
+                    <el-table-column prop="position" label="上标地点"></el-table-column>
+                    <el-table-column label="上标人员">
+                        <template v-slot="scope">
+                            <div v-for="item in $store.state['workerList']" :key="item.value">
+                                <span v-if="item.id == scope.row['opeUser']">{{ `${item.name}(${item.position})` }}</span>
+                            </div>
                         </template>
-                    </el-table-column> -->
+                    </el-table-column>
                 </el-table>
-                <div style="margin-top: 20px">
-                    <el-button @click="toggleSelection([tableData[1], tableData[2]])">切换第二、第三行的选中状态</el-button>
-                    <el-button @click="toggleSelection()">取消选择</el-button>
-                    <el-button @click="inStore">入待宰栏</el-button>
-                </div>
 
                 <el-row type="flex" justify="end">
                     <el-col :span="8" class="pagination">
@@ -69,97 +41,132 @@
                             @current-change="pageChange"
                             background
                             layout="prev, pager, next"
-                            :page-count="10"
+                            :page-count="Number(totalPages)"
                         ></el-pagination>
                     </el-col>
                 </el-row>
             </article>
         </section>
+
+        <el-dialog title="新增" :visible.sync="isShow" width="40%">
+            <el-row type="flex">
+                <el-col :span="20">
+                    <el-form ref="addEarTag" :model="formData" :rules="rules" label-width="140px">
+                        <el-form-item label="耳标编码">
+                            <el-input v-model="formData.earTag"></el-input>
+                        </el-form-item>
+                        <el-form-item label="羊只编码">
+                            <el-input v-model="formData.sheepId"></el-input>
+                        </el-form-item>
+                        <el-form-item label="上标时间">
+                            <el-date-picker
+                                v-model="formData.bindTime"
+                                type="date"
+                                value-format="yyyy-MM-dd HH:mm:ss"
+                                placeholder="选择日期"
+                            ></el-date-picker>
+                        </el-form-item>
+                        <el-form-item label="上标地点">
+                            <el-input v-model="formData.position"></el-input>
+                        </el-form-item>
+                        <el-form-item label="上标人员">
+                            <el-select v-model="formData.opeUser" filterable placeholder="请选择">
+                                <el-option
+                                    v-for="item in $store.state['workerList']"
+                                    :key="item.id"
+                                    :label="`${item.name}(${item.position})`"
+                                    :value="item.id"
+                                ></el-option>
+                            </el-select>
+                        </el-form-item>
+                        <el-form-item>
+                            <el-button @click="isShow=false">取 消</el-button>
+                            <el-button type="primary" @click="submitForm('addEarTag')">保 存</el-button>
+                        </el-form-item>
+                    </el-form>
+                </el-col>
+            </el-row>
+        </el-dialog>
     </div>
 </template>
 
 <script>
+import {
+    reqEarTagList,
+    reqAddEarTag
+} from "@/api/production.js";
 
-const pageSize = 10
-const tableData = [
-                {
-                    a: "15463",
-                    b: "胴体",
-                    c: "2020-07-14",
-                    d: "49kg",
-                    e: "48kg",
-                    f: "1.6%",
-                    g: "张小刚",
-                },
-                {
-                    a: "15463",
-                    b: "带骨羊前腿",
-                    c: "2020-07-14",
-                    d: "49kg",
-                    e: "48kg",
-                    f: "1.6%",
-                    g: "张小刚",
-                },
-                {
-                    a: "15463",
-                    b: "羔羊肉卷",
-                    c: "2020-07-14",
-                    d: "49kg",
-                    e: "48kg",
-                    f: "1.6%",
-                    g: "张小刚",
-                },
-                {
-                    a: "15463",
-                    b: "胴体",
-                    c: "2020-07-14",
-                    d: "49kg",
-                    e: "48kg",
-                    f: "1.6%",
-                    g: "张小刚",
-                },
-                {
-                    a: "15463",
-                    b: "羔羊肉卷",
-                    c: "2020-07-14",
-                    d: "49kg",
-                    e: "48kg",
-                    f: "1.6%",
-                    g: "张小刚",
-                },
-                
-                
-            ]
+const pageSize = 10;
+const rules = {};
 
 export default {
+    name: "EarTag",
     data() {
         return {
-            value: "",
-            multipleSelection: [],
-            page: 1,
-            tableData
+            search: "",
+            pageNum: 1,
+            tableData: [],
+            totalPages: 0,
+            isShow: false,
+            formData: {
+                earTag: "das5d45ad515g",
+                sheepId: "35",
+                bindTime: this.$moment().format('YYYY-MM-DD HH:mm:ss'),
+                position: "后备一舍",
+                opeUser: null
+            },
+            rules
         };
     },
-    created() {},
+    created() {
+        // 死淘管理列表
+        this.getEarTagList();
+    },
     methods: {
-        toggleSelection(rows) {
-            if (rows) {
-                rows.forEach(row => {
-                    this.$refs.multipleTable.toggleRowSelection(row);
+        submitForm(formName) {
+            this.$refs[formName].validate(valid => {
+                if (valid) {
+                    reqAddEarTag(this.formData)
+                        .then(res => {
+                            // 死淘管理列表
+                            this.getEarTagList();
+                            this.$message.success("成功!");
+                            // this.isShow = false
+                        })
+                        .catch(err => {
+                            console.log(err);
+                            this.$message.error("失败!");
+                        });
+                } else {
+                    return false;
+                }
+            });
+        },
+        // 死淘管理列表
+        getEarTagList() {
+            reqEarTagList({
+                searchStr: this.search,
+                pageSize,
+                pageNum: this.pageNum
+            })
+                .then(res => {
+                    this.tableData = res.content;
+                    this.totalPages = res.totalPages;
+                })
+                .catch(err => {
+                    console.log(err);
                 });
-            } else {
-                this.$refs.multipleTable.clearSelection();
-            }
         },
-        // 入待宰栏
-        inStore() {},
-        handleSelectionChange(val) {
-            this.multipleSelection = val;
+        add() {
+            this.isShow = true;
+            // 有id是update 没id是add
+            delete this.formData.id;
         },
-        edit(row) {},
-        del(row) {},
         pageChange(p) {
             console.log(p);
+            this.pageNum = p;
+            // 死淘管理列表
+            this.getEarTagList();
         }
     }
 };

+ 154 - 113
src/views/production/examiningReport.vue

@@ -1,67 +1,53 @@
 <template>
-    <div class="examiningReport">
+    <div class="ExaminingReport">
         <h2 style="margin-bottom: 20px;padding-bottom:7px;border-bottom:2px solid #ddd">检测报告</h2>
-
         <header id="header">
-            
-            <el-row type="flex">
-                <el-col :span="4">
-                    <el-select v-model="value" placeholder="请选择">
-                        <el-option label="1区" value="11"></el-option>
-                        <el-option label="2区" value="22"></el-option>
-                    </el-select>
-                </el-col>
+            <el-row type="flex" :gutter="20">
                 <el-col :span="4">
-                    <el-select v-model="value" placeholder="请选择">
-                        <el-option label="1舍" value="13"></el-option>
-                        <el-option label="2舍" value="24"></el-option>
-                    </el-select>
+                    <el-input v-model="search" placeholder="请输入"></el-input>
                 </el-col>
                 <el-col :span="4">
-                    <el-select v-model="value" placeholder="请选择">
-                        <el-option label="可用" value="15"></el-option>
-                        <el-option label="可用" value="26"></el-option>
-                    </el-select>
+                    <el-button type="primary" @click="getExaminingReportList">查找</el-button>
                 </el-col>
                 <el-col :span="4">
-                    <el-button type="primary">查找</el-button>
-                </el-col>
-                <el-col :span="4">
-                    <el-button type="primary">新增</el-button>
+                    <el-button type="primary" @click="add">新增</el-button>
                 </el-col>
             </el-row>
         </header>
         <section>
             <article class="table">
                 <el-table
-                    ref="multipleTable"
                     :data="tableData"
                     tooltip-effect="dark"
                     style="width: 100%"
-                    @selection-change="handleSelectionChange"
                 >
-                    <el-table-column type="selection" width="55"></el-table-column>
-                    <el-table-column prop="a" label="屠宰批次"></el-table-column>
-                    <el-table-column prop="b" label="产品名称"></el-table-column>
-                    <el-table-column prop="c" label="排酸时间"></el-table-column>
-                    <el-table-column prop="d" label="排酸前重量"></el-table-column>
-                    <el-table-column prop="e" label="排酸后重量"></el-table-column>
-                    <el-table-column prop="f" label="排酸损耗"></el-table-column>
-                    <el-table-column prop="g" label="负责人员"></el-table-column>
-                    <!-- <el-table-column label="操作" width="150">
-                        <template slot-scope="scope">
-                            <el-button @click="edit(scope.row)" type="text" size="small">编辑</el-button>
-                            <el-popconfirm title="是否删除此设备的信息?" @onConfirm="del(scope.row)">
-                                <el-button slot="reference" type="text" size="small">删除</el-button>
-                            </el-popconfirm>
+                    <el-table-column prop="id" label="序号"></el-table-column>
+                    <el-table-column prop="targetCode" label="羊只编码(批次)"></el-table-column>
+                    <el-table-column label="检测对象">
+                        <template v-slot="scope">
+                            <div v-for="item in $store.state['examiningSheepType']" :key="item.value">
+                                <span v-if="item.value == scope.row['targetType']">{{ item.label }}</span>
+                            </div>
+                        </template>
+                    </el-table-column>
+                    <el-table-column prop="testTime" label="抗体检测时间"></el-table-column>
+                    <el-table-column prop="number" label="抽样个数"></el-table-column>
+                    <el-table-column prop="testFor" label="抗体检测项目"></el-table-column>
+                    <el-table-column label="结果">
+                        <template v-slot="scope">
+                            <div v-for="item in $store.state['examiningReportType']" :key="item.value">
+                                <span v-if="item.value == scope.row['result']">{{ item.label }}</span>
+                            </div>
                         </template>
-                    </el-table-column> -->
+                    </el-table-column>
+                    <el-table-column label="检测人">
+                        <template v-slot="scope">
+                            <div v-for="item in $store.state['workerList']" :key="item.value">
+                                <span v-if="item.id == scope.row['opeUser']">{{ `${item.name}(${item.position})` }}</span>
+                            </div>
+                        </template>
+                    </el-table-column>
                 </el-table>
-                <div style="margin-top: 20px">
-                    <el-button @click="toggleSelection([tableData[1], tableData[2]])">切换第二、第三行的选中状态</el-button>
-                    <el-button @click="toggleSelection()">取消选择</el-button>
-                    <el-button @click="inStore">入待宰栏</el-button>
-                </div>
 
                 <el-row type="flex" justify="end">
                     <el-col :span="8" class="pagination">
@@ -69,97 +55,152 @@
                             @current-change="pageChange"
                             background
                             layout="prev, pager, next"
-                            :page-count="10"
+                            :page-count="Number(totalPages)"
                         ></el-pagination>
                     </el-col>
                 </el-row>
             </article>
         </section>
+
+        <el-dialog title="新增" :visible.sync="isShow" width="40%">
+            <el-row type="flex">
+                <el-col :span="20">
+                    <el-form ref="addExaminingReport" :model="formData" :rules="rules" label-width="140px">
+                        <el-form-item label="羊只编码(批次)">
+                            <el-input v-model="formData.targetCode"></el-input>
+                        </el-form-item>
+                        <el-form-item label="测试对象">
+                            <el-radio-group v-model="formData.targetType">
+                                <el-radio
+                                    v-for="item in $store.state['examiningSheepType']"
+                                    :key="item.value"
+                                    :label="item.value"
+                                >{{ item.label }}</el-radio>
+                            </el-radio-group>
+                        </el-form-item>
+                        <el-form-item label="检测时间">
+                            <el-date-picker
+                                v-model="formData.testTime"
+                                type="date"
+                                value-format="yyyy-MM-dd HH:mm:ss"
+                                placeholder="选择日期"
+                            ></el-date-picker>
+                        </el-form-item>
+                        <el-form-item label="抽样数">
+                            <el-input v-model.number="formData.number"></el-input>
+                        </el-form-item>
+                        <el-form-item label="抗体检测项目">
+                            <el-input v-model.number="formData.testFor"></el-input>
+                        </el-form-item>
+                        <el-form-item label="结果">
+                            <el-radio-group v-model="formData.result">
+                                <el-radio
+                                    v-for="item in $store.state['examiningReportType']"
+                                    :key="item.value"
+                                    :label="item.value"
+                                >{{ item.label }}</el-radio>
+                            </el-radio-group>
+                        </el-form-item>
+                        <el-form-item label="检测人">
+                            <el-select v-model="formData.opeUser" filterable placeholder="请选择">
+                                <el-option
+                                    v-for="item in $store.state['workerList']"
+                                    :key="item.id"
+                                    :label="`${item.name}(${item.position})`"
+                                    :value="item.id"
+                                ></el-option>
+                            </el-select>
+                        </el-form-item>
+                        <el-form-item>
+                            <el-button @click="isShow=false">取 消</el-button>
+                            <el-button type="primary" @click="submitForm('addExaminingReport')">保 存</el-button>
+                        </el-form-item>
+                    </el-form>
+                </el-col>
+            </el-row>
+        </el-dialog>
     </div>
 </template>
 
 <script>
+import {
+    reqExaminingReportList,
+    reqAddExaminingReport
+} from "@/api/production.js";
 
-const pageSize = 10
-const tableData = [
-                {
-                    a: "15463",
-                    b: "胴体",
-                    c: "2020-07-14",
-                    d: "49kg",
-                    e: "48kg",
-                    f: "1.6%",
-                    g: "张小刚",
-                },
-                {
-                    a: "15463",
-                    b: "带骨羊前腿",
-                    c: "2020-07-14",
-                    d: "49kg",
-                    e: "48kg",
-                    f: "1.6%",
-                    g: "张小刚",
-                },
-                {
-                    a: "15463",
-                    b: "羔羊肉卷",
-                    c: "2020-07-14",
-                    d: "49kg",
-                    e: "48kg",
-                    f: "1.6%",
-                    g: "张小刚",
-                },
-                {
-                    a: "15463",
-                    b: "胴体",
-                    c: "2020-07-14",
-                    d: "49kg",
-                    e: "48kg",
-                    f: "1.6%",
-                    g: "张小刚",
-                },
-                {
-                    a: "15463",
-                    b: "羔羊肉卷",
-                    c: "2020-07-14",
-                    d: "49kg",
-                    e: "48kg",
-                    f: "1.6%",
-                    g: "张小刚",
-                },
-                
-                
-            ]
+const pageSize = 10;
+const rules = {};
 
 export default {
+    name: "ExaminingReport",
     data() {
         return {
-            value: "",
-            multipleSelection: [],
-            page: 1,
-            tableData
+            search: "",
+            pageNum: 1,
+            tableData: [],
+            totalPages: 0,
+            isShow: false,
+            formData: {
+                targetCode: "das5d45ad515g",
+                targetType: this.$store.state['examiningSheepType'][0].value,
+                testTime: this.$moment().format('YYYY-MM-DD HH:mm:ss'),
+                number: 15,
+                testFor: "抗体检测项目",
+                result: this.$store.state['examiningReportType'][0].value,
+                opeUser: null
+            },
+            rules
         };
     },
-    created() {},
+    created() {
+        // 检测报告列表
+        this.getExaminingReportList();
+    },
     methods: {
-        toggleSelection(rows) {
-            if (rows) {
-                rows.forEach(row => {
-                    this.$refs.multipleTable.toggleRowSelection(row);
+        submitForm(formName) {
+            this.$refs[formName].validate(valid => {
+                if (valid) {
+                    reqAddExaminingReport(this.formData)
+                        .then(res => {
+                            // 检测报告列表
+                            this.getExaminingReportList();
+                            this.$message.success("成功!");
+                            // this.isShow = false
+                        })
+                        .catch(err => {
+                            console.log(err);
+                            this.$message.error("失败!");
+                        });
+                } else {
+                    return false;
+                }
+            });
+        },
+        // 检测报告列表
+        getExaminingReportList() {
+            reqExaminingReportList({
+                searchStr: this.search,
+                pageSize,
+                pageNum: this.pageNum
+            })
+                .then(res => {
+                    this.tableData = res.content;
+                    this.totalPages = res.totalPages;
+                })
+                .catch(err => {
+                    console.log(err);
                 });
-            } else {
-                this.$refs.multipleTable.clearSelection();
-            }
         },
-        // 入待宰栏
-        inStore() {},
-        handleSelectionChange(val) {
-            this.multipleSelection = val;
+        add() {
+            this.isShow = true;
+            // 有id是update 没id是add
+            delete this.formData.id;
         },
-        edit(row) {},
-        del(row) {},
         pageChange(p) {
             console.log(p);
+            this.pageNum = p;
+            // 检测报告列表
+            this.getExaminingReportList();
         }
     }
 };

+ 133 - 111
src/views/production/shiftField.vue

@@ -1,65 +1,41 @@
 <template>
-    <div class="shiftField">
+    <div class="ShiftField">
         <h2 style="margin-bottom: 20px;padding-bottom:7px;border-bottom:2px solid #ddd">调拨转舍</h2>
         <header id="header">
-            <el-row type="flex">
-                <el-col :span="4">
-                    <el-select v-model="value" placeholder="请选择">
-                        <el-option label="1区" value="11"></el-option>
-                        <el-option label="2区" value="22"></el-option>
-                    </el-select>
-                </el-col>
+            <el-row type="flex" :gutter="20">
                 <el-col :span="4">
-                    <el-select v-model="value" placeholder="请选择">
-                        <el-option label="1舍" value="13"></el-option>
-                        <el-option label="2舍" value="24"></el-option>
-                    </el-select>
+                    <el-input v-model="search" placeholder="请输入"></el-input>
                 </el-col>
                 <el-col :span="4">
-                    <el-select v-model="value" placeholder="请选择">
-                        <el-option label="可用" value="15"></el-option>
-                        <el-option label="可用" value="26"></el-option>
-                    </el-select>
+                    <el-button type="primary" @click="getShiftFieldList">查找</el-button>
                 </el-col>
                 <el-col :span="4">
-                    <el-button type="primary">查找</el-button>
-                </el-col>
-                <el-col :span="4">
-                    <el-button type="primary">新增</el-button>
+                    <el-button type="primary" @click="add">新增</el-button>
                 </el-col>
             </el-row>
         </header>
         <section>
             <article class="table">
                 <el-table
-                    ref="multipleTable"
                     :data="tableData"
                     tooltip-effect="dark"
                     style="width: 100%"
-                    @selection-change="handleSelectionChange"
                 >
-                    <el-table-column type="selection" width="55"></el-table-column>
-                    <el-table-column prop="a" label="屠宰批次"></el-table-column>
-                    <el-table-column prop="b" label="产品名称"></el-table-column>
-                    <el-table-column prop="c" label="排酸时间"></el-table-column>
-                    <el-table-column prop="d" label="排酸前重量"></el-table-column>
-                    <el-table-column prop="e" label="排酸后重量"></el-table-column>
-                    <el-table-column prop="f" label="排酸损耗"></el-table-column>
-                    <el-table-column prop="g" label="负责人员"></el-table-column>
-                    <!-- <el-table-column label="操作" width="150">
-                        <template slot-scope="scope">
-                            <el-button @click="edit(scope.row)" type="text" size="small">编辑</el-button>
-                            <el-popconfirm title="是否删除此设备的信息?" @onConfirm="del(scope.row)">
-                                <el-button slot="reference" type="text" size="small">删除</el-button>
-                            </el-popconfirm>
+                    <el-table-column prop="id" label="序号"></el-table-column>
+                    <el-table-column prop="created" label="转舍时间"></el-table-column>
+                    <el-table-column prop="batchNo" label="转舍批次"></el-table-column>
+                    <el-table-column prop="fromBuilding" label="转出位置"></el-table-column>
+                    <el-table-column prop="toBuilding" label="转入位置"></el-table-column>
+                    <el-table-column prop="number" label="数量"></el-table-column>
+                    <el-table-column label="执行人">
+                        <template v-slot="scope">
+                            <div v-for="item in $store.state['workerList']" :key="item.value">
+                                <span v-if="item.id == scope.row['opeUser']">{{ `${item.name}(${item.position})` }}</span>
+                            </div>
                         </template>
-                    </el-table-column> -->
+                    </el-table-column>
+                    <el-table-column prop="remark" label="备注"></el-table-column>
                 </el-table>
-                <div style="margin-top: 20px">
-                    <el-button @click="toggleSelection([tableData[1], tableData[2]])">切换第二、第三行的选中状态</el-button>
-                    <el-button @click="toggleSelection()">取消选择</el-button>
-                    <el-button @click="inStore">入待宰栏</el-button>
-                </div>
 
                 <el-row type="flex" justify="end">
                     <el-col :span="8" class="pagination">
@@ -67,97 +43,143 @@
                             @current-change="pageChange"
                             background
                             layout="prev, pager, next"
-                            :page-count="10"
+                            :page-count="Number(totalPages)"
                         ></el-pagination>
                     </el-col>
                 </el-row>
             </article>
         </section>
+
+        <el-dialog title="新增/编辑" :visible.sync="isShow" width="40%">
+            <el-row type="flex">
+                <el-col :span="20">
+                    <el-form ref="addShiftField" :model="formData" :rules="rules" label-width="140px">
+                        <el-form-item label="转舍时间">
+                            <el-date-picker
+                                v-model="formData.created"
+                                type="date"
+                                value-format="yyyy-MM-dd HH:mm:ss"
+                                placeholder="选择日期"
+                            ></el-date-picker>
+                        </el-form-item>
+                        <el-form-item label="转舍批次">
+                            <el-select v-model="formData.batchNo" filterable placeholder="请选择">
+                                <el-option
+                                    v-for="item in $store.state['batchList']"
+                                    :key="item.batchNo"
+                                    :label="`${item.batchNo}`"
+                                    :value="item.batchNo"
+                                ></el-option>
+                            </el-select>
+                        </el-form-item>
+                        <el-form-item label="转出位置">
+                            <el-input v-model="formData.fromBuilding"></el-input>
+                        </el-form-item>
+                        <el-form-item label="转入位置">
+                            <el-input v-model="formData.toBuilding"></el-input>
+                        </el-form-item>
+                        <el-form-item label="执行人">
+                            <el-select v-model="formData.opeUser" filterable placeholder="请选择">
+                                <el-option
+                                    v-for="item in $store.state['workerList']"
+                                    :key="item.id"
+                                    :label="`${item.name}(${item.position})`"
+                                    :value="item.id"
+                                ></el-option>
+                            </el-select>
+                        </el-form-item>
+                        <el-form-item label="备注">
+                            <el-input type="textarea" autosize v-model="formData.remark"></el-input>
+                        </el-form-item>
+                        <el-form-item>
+                            <el-button @click="isShow=false">取 消</el-button>
+                            <el-button type="primary" @click="submitForm('addShiftField')">保 存</el-button>
+                        </el-form-item>
+                    </el-form>
+                </el-col>
+            </el-row>
+        </el-dialog>
     </div>
 </template>
 
 <script>
+import {
+    reqShiftFieldList,
+    reqAddShiftField
+} from "@/api/production.js";
 
-const pageSize = 10
-const tableData = [
-                {
-                    a: "15463",
-                    b: "胴体",
-                    c: "2020-07-14",
-                    d: "49kg",
-                    e: "48kg",
-                    f: "1.6%",
-                    g: "张小刚",
-                },
-                {
-                    a: "15463",
-                    b: "带骨羊前腿",
-                    c: "2020-07-14",
-                    d: "49kg",
-                    e: "48kg",
-                    f: "1.6%",
-                    g: "张小刚",
-                },
-                {
-                    a: "15463",
-                    b: "羔羊肉卷",
-                    c: "2020-07-14",
-                    d: "49kg",
-                    e: "48kg",
-                    f: "1.6%",
-                    g: "张小刚",
-                },
-                {
-                    a: "15463",
-                    b: "胴体",
-                    c: "2020-07-14",
-                    d: "49kg",
-                    e: "48kg",
-                    f: "1.6%",
-                    g: "张小刚",
-                },
-                {
-                    a: "15463",
-                    b: "羔羊肉卷",
-                    c: "2020-07-14",
-                    d: "49kg",
-                    e: "48kg",
-                    f: "1.6%",
-                    g: "张小刚",
-                },
-                
-                
-            ]
+const pageSize = 10;
+const rules = {};
 
 export default {
+    name: "ShiftField",
     data() {
         return {
-            value: "",
-            multipleSelection: [],
-            page: 1,
-            tableData
+            search: "",
+            pageNum: 1,
+            tableData: [],
+            totalPages: 0,
+            isShow: false,
+            formData: {
+                created: this.$moment().format('YYYY-MM-DD HH:mm:ss'),
+                batchNo: "",
+                fromBuilding: "种猪舍",
+                toBuilding: "育肥舍",
+                opeUser: null,
+                remark: "备注"
+            },
+            rules
         };
     },
-    created() {},
+    created() {
+        // 调拨转舍列表
+        this.getShiftFieldList();
+    },
     methods: {
-        toggleSelection(rows) {
-            if (rows) {
-                rows.forEach(row => {
-                    this.$refs.multipleTable.toggleRowSelection(row);
+        submitForm(formName) {
+            this.$refs[formName].validate(valid => {
+                if (valid) {
+                    reqAddShiftField(this.formData)
+                        .then(res => {
+                            // 调拨转舍列表
+                            this.getShiftFieldList();
+                            this.$message.success("成功!");
+                            // this.isShow = false
+                        })
+                        .catch(err => {
+                            console.log(err);
+                            this.$message.error("失败!");
+                        });
+                } else {
+                    return false;
+                }
+            });
+        },
+        // 调拨转舍列表
+        getShiftFieldList() {
+            reqShiftFieldList({
+                searchStr: this.search,
+                pageSize,
+                pageNum: this.pageNum
+            })
+                .then(res => {
+                    this.tableData = res.content;
+                    this.totalPages = res.totalPages;
+                })
+                .catch(err => {
+                    console.log(err);
                 });
-            } else {
-                this.$refs.multipleTable.clearSelection();
-            }
         },
-        // 入待宰栏
-        inStore() {},
-        handleSelectionChange(val) {
-            this.multipleSelection = val;
+        add() {
+            this.isShow = true;
+            // 有id是update 没id是add
+            delete this.formData.id;
         },
-        edit(row) {},
-        del(row) {},
         pageChange(p) {
             console.log(p);
+            this.pageNum = p;
+            // 调拨转舍列表
+            this.getShiftFieldList();
         }
     }
 };