Browse Source

完成繁殖管理 下9个模块

linan 4 years ago
parent
commit
b063d7bce3

+ 1 - 0
README.md

@@ -1,3 +1,4 @@
 # vue-module
 
 适用于[vue-module-loader](https://github.com/mqhe2007/vue-module-loader)的微前端模块工程
+

+ 1 - 0
package.json

@@ -11,6 +11,7 @@
     "cnpm": "^6.1.1",
     "core-js": "^3.3.2",
     "element-ui": "^2.13.2",
+    "moment": "^2.27.0",
     "vue": "^2.6.10",
     "vue-module-loader": "^1.0.3",
     "vue-router": "^3.1.3",

+ 64 - 0
src/api/breed.js

@@ -9,3 +9,67 @@ export const reqAddSeedSheepFile = (data) => ajax("post", "/farm-huyang/sheep/ad
 
 // 删除种羊档案
 export const reqDelSeedSheepFile = (data) => ajax("post", "/farm-huyang/sheep/delete", data)
+
+
+/* 采精记录  Semen*/
+export const reqSemenList = (data) => ajax("post", "/farm-huyang/semen/list", data)
+
+export const reqAddOrUpdateSemen = (data) => ajax("post", "/farm-huyang/semen/addOrUpdate", data)
+
+export const reqDelSemen = (id) => ajax("post", "/farm-huyang/semen/delete", {id})
+
+
+/* 查情记录  matingS*/
+export const reqmatingSList = (data) => ajax("post", "/farm-huyang/estrus/list", data)
+
+export const reqAddOrUpdatematingS = (data) => ajax("post", "/farm-huyang/estrus/addOrUpdate", data)
+
+export const reqDelmatingS = (id) => ajax("post", "/farm-huyang/estrus/delete", {id})
+
+
+/* 配种记录  Mating*/
+export const reqMatingList = (data) => ajax("post", "/farm-huyang/breeding/list", data)
+
+export const reqAddOrUpdateMating = (data) => ajax("post", "/farm-huyang/breeding/addOrUpdate", data)
+
+export const reqDelMating = (id) => ajax("post", "/farm-huyang/breeding/delete", {id})
+
+
+/* 妊检记录  PregnancyTest*/
+export const reqPregnancyTestList = (data) => ajax("post", "/farm-huyang/pregnancy/list", data)
+
+export const reqAddOrUpdatePregnancyTest = (data) => ajax("post", "/farm-huyang/pregnancy/addOrUpdate", data)
+
+export const reqDelPregnancyTest = (id) => ajax("post", "/farm-huyang/pregnancy/delete", {id})
+
+
+/* 分娩记录  Parturition*/
+export const reqParturitionList = (data) => ajax("post", "/farm-huyang/deliver/list", data)
+
+export const reqAddOrUpdateParturition = (data) => ajax("post", "/farm-huyang/deliver/addOrUpdate", data)
+
+export const reqDelParturition = (id) => ajax("post", "/farm-huyang/deliver/delete", {id})
+
+
+/* 断奶记录  Weaning*/
+export const reqWeaningList = (data) => ajax("post", "/farm-huyang/weaning/list", data)
+
+export const reqAddOrUpdateWeaning = (data) => ajax("post", "/farm-huyang/weaning/addOrUpdate", data)
+
+export const reqDelWeaning = (id) => ajax("post", "/farm-huyang/weaning/delete", {id})
+
+
+/* 离场记录  OffField*/
+export const reqOffFieldList = (data) => ajax("post", "/farm-huyang/departure/list", data)
+
+export const reqAddOrUpdateOffField = (data) => ajax("post", "/farm-huyang/departure/addOrUpdate", data)
+
+export const reqDelOffField = (id) => ajax("post", "/farm-huyang/departure/delete", {id})
+
+
+/* 转舍记录  ShiftField*/
+export const reqShiftFieldList = (data) => ajax("post", "/farm-huyang/transfer/list", data)
+
+export const reqAddOrUpdateShiftField = (data) => ajax("post", "/farm-huyang/transfer/addOrUpdate", data)
+
+export const reqDelShiftField = (id) => ajax("post", "/farm-huyang/transfer/delete", {id})

+ 15 - 0
src/api/fileInfo.js

@@ -14,4 +14,19 @@ export const reqUpdatePasture = (data) => ajax("get", "/publics/sysconf/update",
 
 
 
+/* 栋舍信息  Build = areaInfo*/
+export const reqBuildList = (data) => ajax("post", "/farm-huyang/building/list", data)
+
+export const reqAddOrUpdateBuild = (data) => ajax("post", "/farm-huyang/building/addOrUpdate", data)
+
+export const reqDelBuild = (id) => ajax("post", "/farm-huyang/building/delete", {id})
+
+
+
+/* 员工信息  Worker*/
+export const reqWorkerList = (data) => ajax("post", "/farm-huyang/employee/list", data)
+
+export const reqAddOrUpdateWorker = (data) => ajax("post", "/farm-huyang/employee/addOrUpdate", data)
+
+export const reqDelWorker = (id) => ajax("post", "/farm-huyang/employee/delete", {id})
 

+ 4 - 0
src/main.js

@@ -9,6 +9,10 @@ import vueModuleLoader from 'vue-module-loader'
 import localModule from './module'
 import './assets/css/reset.scss'
 
+import moment from 'moment'
+moment.locale('zh-cn');  // 汉化
+Vue.prototype.$moment = moment;  // 赋值使用
+
 Vue.use(vueModuleLoader, { store }).use(ElementUI);
 
 

+ 31 - 7
src/store/index.js

@@ -3,25 +3,49 @@ import Vuex from 'vuex'
 // [ seedSheedSource, seedSheedLevel, seedSheedStatus ]
 import publicType from './publicType.js' // 公共的类型 
 
+import { reqWorkerList, reqBuildList } from "@/api/fileInfo.js";
+
+
 Vue.use(Vuex)
 
 export default new Vuex.Store({
 	strict: true,
 	state: {
 		token: localStorage.getItem("token"),
+		workerList: [{id:1}], // 员工列表 (加{id:1} 是为了防止刷新时报错,因为设置默认值时用到过)
+		areaList: [{id:1}],
 		...publicType
 	},
-	getters: {
-		token: state => state.token,
-	},
+	getters: {},
 	mutations: {
-		setToken(state, token) {
-			state.token = token
+		
+		setWorkerList(state, workerList) {
+			state.workerList = workerList
+		},
+		setAreaList(state, areaList) {
+			state.areaList = areaList
 		}
 	},
 	actions: {
-		login({ commit }, token) {
-			commit('setToken', token)
+		/* 获取员工列表 登录后再 home、workerInfo时调用了*/
+		getWorkerList({ commit }) {
+			reqWorkerList({
+				searchStr: '',
+				pageSize: 1000,
+				pageNum: 1
+			}).then(res => {
+				commit('setWorkerList', res.content)
+			})
 		},
+		/* 获取栋舍列表 登录后再 home、workerInfo时调用了*/
+		getAreaList({ commit }) {
+			reqBuildList({
+				searchStr: '',
+				pageSize: 1000,
+				pageNum: 1
+			}).then(res => {
+				commit('setAreaList', res.content)
+			})
+		}
 	}
 })

+ 48 - 15
src/store/publicType.js

@@ -1,27 +1,60 @@
 // 种羊来源 类型
 const seedSheedSource = [
-    {label: "本场出生", value: 1},
-    {label: "它场转入", value: 2}
+    { label: "本场出生", value: 1 },
+    { label: "它场转入", value: 2 }
 ]
 
 // 种羊等级
 const seedSheedLevel = [
-    {label: "甲", value: 1},
-    {label: "乙", value: 2},
-    {label: "丙", value: 3},
-    {label: "丁", value: 4}
+    { label: "甲", value: 1 },
+    { label: "乙", value: 2 },
+    { label: "丙", value: 3 },
+    { label: "丁", value: 4 }
 ]
 
 // 种羊状态
 const seedSheedStatus = [
-    {label: "后备", value: 1},
-    {label: "采精", value: 2},
-    {label: "查情", value: 3},
-    {label: "配种", value: 4},
-    {label: "妊检", value: 5},
-    {label: "分娩", value: 6},
-    {label: "断奶", value: 7},
-    {label: "淘汰", value: 8}
+    { label: "后备", value: 1 },
+    { label: "采精", value: 2 },
+    { label: "查情", value: 3 },
+    { label: "配种", value: 4 },
+    { label: "妊检", value: 5 },
+    { label: "分娩", value: 6 },
+    { label: "断奶", value: 7 },
+    { label: "淘汰", value: 8 }
 ]
 
-export default {seedSheedSource, seedSheedLevel, seedSheedStatus}
+// 精液色泽
+const seedColor = [
+    { label: "正常", value: 1 },
+    { label: "异常", value: 0 }
+]
+
+// 精液密度
+const seedDensity = [
+    { label: "密", value: 1 },
+    { label: "中", value: 2 },
+    { label: "稀", value: 3 }
+]
+
+// 怀孕状态
+const fetationStatus = [
+    { label: "正常", value: 1 },
+    { label: "空怀", value: 2 },
+    { label: "流产", value: 3 },
+    { label: "死胎", value: 4 }
+]
+
+// 发情状态
+const estrusStatus = [
+    { label: "未发情", value: 0 },
+    { label: "发情", value: 1 }
+]
+/* workerList 员工列表  动态获取了 在home.vue中获取了 */
+/* areaList 栋舍信息  动态获取了 在home.vue中获取了 */
+
+export default { seedSheedSource, seedSheedLevel, seedSheedStatus, seedColor, seedDensity, fetationStatus, estrusStatus }
+
+
+
+

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

@@ -113,6 +113,13 @@ export default {
             localStorage.getItem("defaultUnfoldedMenu")
         ];
         this.menuCollapse = JSON.parse(localStorage.getItem("menuCollapse"));
+        
+    },
+    mounted() {
+        // 获取员工列表 给后面下拉选择器使用
+        this.$store.dispatch('getWorkerList')
+        // 获取栋舍列表 给后面下拉选择器使用
+        this.$store.dispatch('getAreaList')
     },
     methods: {
         // 收取菜单按钮

+ 209 - 71
src/views/breed/collectSeedLog.vue

@@ -4,13 +4,13 @@
         <header id="header">
             <el-row type="flex" :gutter="20">
                 <el-col :span="4">
-                    <el-input v-model="value" placeholder="请选择"/>
+                    <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="getSemenList">查找</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>
@@ -22,23 +22,49 @@
                     tooltip-effect="dark"
                     style="width: 100%"
                 >
-                    <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 prop="g" label="饲养员"></el-table-column>
-                    <el-table-column prop="g" label="等级评级"></el-table-column>
-                    <!-- <el-table-column label="操作" width="150">
+                    <el-table-column prop="id" label="序号"></el-table-column>
+                    <el-table-column prop="sheepId" label="种公羊编码"></el-table-column>
+                    <el-table-column label="等级">
+                        <template v-slot="scope">
+                            <div v-for="item in $store.state['seedSheedLevel']" :key="item.value">
+                                <span v-if="item.value == scope.row['level']">{{ item.label }}</span>
+                            </div>
+                        </template>
+                    </el-table-column>
+                    <el-table-column prop="opeTime" label="采精时间"></el-table-column>
+                    <el-table-column prop="yield" label="射精量(ml)"></el-table-column>
+                    <el-table-column label="密度">
+                        <template v-slot="scope">
+                            <div v-for="item in $store.state['seedDensity']" :key="item.value">
+                                <span v-if="item.value == scope.row['density']">{{ item.label }}</span>
+                            </div>
+                        </template>
+                    </el-table-column>
+                    <el-table-column prop="vigour" label="活力"></el-table-column>
+                    <el-table-column label="色泽">
+                        <template v-slot="scope">
+                            <div v-for="item in $store.state['seedColor']" :key="item.value">
+                                <span v-if="item.value == scope.row['color']">{{ item.label }}</span>
+                            </div>
+                        </template>
+                    </el-table-column>
+                    <el-table-column prop="times" label="倍数"></el-table-column>
+                    <el-table-column prop="total" label="精液总量(ml)"></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 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>
                         </template>
-                    </el-table-column> -->
+                    </el-table-column>
                 </el-table>
 
                 <el-row type="flex" justify="end">
@@ -47,82 +73,194 @@
                             @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="addSemen" :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-select v-model="formData.level" placeholder="请选择">
+                                <el-option
+                                    v-for="item in $store.state['seedSheedLevel']"
+                                    :key="item.value"
+                                    :label="item.label"
+                                    :value="item.value"
+                                ></el-option>
+                            </el-select>
+                        </el-form-item>
+                        <el-form-item label="采精时间">
+                            <el-date-picker
+                                v-model="formData.opeTime"
+                                type="date"
+                                value-format="yyyy-MM-dd HH:mm:ss"
+                                placeholder="选择日期"
+                            ></el-date-picker>
+                        </el-form-item>
+                        <el-form-item label="射精量(ml)">
+                            <el-input v-model="formData.yield"></el-input>
+                        </el-form-item>
+                        <el-form-item label="密度">
+                            <el-radio-group v-model="formData.density">
+                                <el-radio
+                                    v-for="item in $store.state['seedDensity']"
+                                    :key="item.value"
+                                    :label="item.value"
+                                >{{ item.label }}</el-radio>
+                            </el-radio-group>
+                        </el-form-item>
+                        <el-form-item label="活力">
+                            <el-input v-model="formData.vigour"></el-input>
+                        </el-form-item>
+                        <el-form-item label="色泽">
+                            <el-radio-group v-model="formData.color">
+                                <el-radio
+                                    v-for="item in $store.state['seedColor']"
+                                    :key="item.value"
+                                    :label="item.value"
+                                >{{ item.label }}</el-radio>
+                            </el-radio-group>
+                        </el-form-item>
+                        <el-form-item label="倍数">
+                            <el-input v-model="formData.times"></el-input>
+                        </el-form-item>
+                        <el-form-item label="精液总量(ml)">
+                            <el-input v-model="formData.total"></el-input>
+                        </el-form-item>
+                        <el-form-item label="操作人">
+                            <el-select v-model="formData.opeUser" 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('addSemen')">保 存</el-button>
+                        </el-form-item>
+                    </el-form>
+                </el-col>
+            </el-row>
+        </el-dialog>
     </div>
 </template>
 
 <script>
+import {
+    reqSemenList,
+    reqAddOrUpdateSemen,
+    reqDelSemen
+} from "@/api/breed.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: "collectSeedLog",
     data() {
         return {
-            value: "",
-            page: 1,
-            tableData
+            search: "",
+            pageNum: 1,
+            tableData: [],
+            totalPages: 0,
+            isShow: false,
+            formData: {
+                sheepId: "12",
+                level: this.$store.state['seedSheedLevel'][0].value,
+                opeTime: this.$moment().format('YYYY-MM-DD HH:mm:ss'),
+                yield: "0.4",
+                density: this.$store.state['seedDensity'][0].value,
+                vigour: "0.8",
+                color: this.$store.state['seedColor'][0].value,
+                times: "8",
+                total: "3",
+                opeUser: this.$store.state['workerList'][0].id
+            },
+            isAdd: false,
+            rules
         };
     },
-    created() {},
+    created() {
+        // 入库管理列表
+        this.getSemenList();
+    },
     methods: {
-        edit(row) {},
-        del(row) {},
+        submitForm(formName) {
+            this.$refs[formName].validate(valid => {
+                if (valid) {
+                    reqAddOrUpdateSemen(this.formData)
+                        .then(res => {
+                            // 入库管理列表
+                            this.getSemenList();
+                            this.$message.success("成功!");
+                            // this.isShow = false
+                        })
+                        .catch(err => {
+                            console.log(err);
+                            this.$message.error("失败!");
+                        });
+                } else {
+                    return false;
+                }
+            });
+        },
+        // 入库管理列表
+        getSemenList() {
+            reqSemenList({
+                searchStr: this.search,
+                pageSize,
+                pageNum: this.pageNum
+            })
+                .then(res => {
+                    this.tableData = res.content;
+                    this.totalPages = res.totalPages;
+                })
+                .catch(err => {
+                    console.log(err);
+                });
+        },
+        add() {
+            this.isShow = true;
+            // 有id是update 没id是add
+            delete this.formData.id;
+        },
+        edit(row) {
+            this.formData = row;
+            this.isShow = true;
+        },
+        del(row) {
+            reqDelSemen(row.id)
+                .then(res => {
+                    // 入库管理列表
+                    this.getSemenList();
+                    if (res.code == "success") {
+                        this.$message.success(res.msg);
+                    }
+                    if (res.errCode == "delete failed") {
+                        this.$message.error(res.errMsg);
+                    }
+                })
+                .catch(err => {
+                    console.log(err);
+                    this.$message.error("删除失败!");
+                });
+        },
         pageChange(p) {
             console.log(p);
+            this.pageNum = p;
+            // 入库管理列表
+            this.getSemenList();
         }
     }
 };

+ 190 - 65
src/views/breed/matingLog.vue

@@ -4,13 +4,13 @@
         <header id="header">
             <el-row type="flex" :gutter="20">
                 <el-col :span="4">
-                    <el-input v-model="value" placeholder="请选择"/>
+                    <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="getMatingList">查找</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>
@@ -22,20 +22,45 @@
                     tooltip-effect="dark"
                     style="width: 100%"
                 >
-                    <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 label="操作" width="150">
+                    <el-table-column prop="id" label="序号"></el-table-column>
+
+                    <el-table-column prop="femaleSheepId" label="种母羊编码"></el-table-column>
+
+                    <el-table-column label="种母羊等级">
+                        <template v-slot="scope">
+                            <div v-for="item in $store.state['seedSheedLevel']" :key="item.value">
+                                <span v-if="item.value == scope.row['femaleLevel']">{{ item.label }}</span>
+                            </div>
+                        </template>
+                    </el-table-column>
+
+                    <el-table-column prop="maleSheepId" label="种公羊编码"></el-table-column>
+
+                    <el-table-column label="种公羊等级">
+                        <template v-slot="scope">
+                            <div v-for="item in $store.state['seedSheedLevel']" :key="item.value">
+                                <span v-if="item.value == scope.row['maleLevel']">{{ item.label }}</span>
+                            </div>
+                        </template>
+                    </el-table-column>
+
+                    <el-table-column prop="opeTime" 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 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>
                         </template>
-                    </el-table-column>-->
+                    </el-table-column>
                 </el-table>
 
                 <el-row type="flex" justify="end">
@@ -44,79 +69,179 @@
                             @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="addMating" :model="formData" :rules="rules" label-width="140px">
+                        <el-form-item label="种母羊编码">
+                            <el-input v-model="formData.femaleSheepId"></el-input>
+                        </el-form-item>
+
+                        <el-form-item label="种母羊等级">
+                            <el-select v-model="formData.femaleLevel" placeholder="请选择">
+                                <el-option
+                                    v-for="item in $store.state['seedSheedLevel']"
+                                    :key="item.value"
+                                    :label="item.label"
+                                    :value="item.value"
+                                ></el-option>
+                            </el-select>
+                        </el-form-item>
+
+                        <el-form-item label="种公羊编码">
+                            <el-input v-model="formData.maleSheepId"></el-input>
+                        </el-form-item>
+
+                        <el-form-item label="种公羊等级">
+                            <el-select v-model="formData.maleLevel" placeholder="请选择">
+                                <el-option
+                                    v-for="item in $store.state['seedSheedLevel']"
+                                    :key="item.value"
+                                    :label="item.label"
+                                    :value="item.value"
+                                ></el-option>
+                            </el-select>
+                        </el-form-item>
+
+                        <el-form-item label="配种时间">
+                            <el-date-picker
+                                v-model="formData.opeTime"
+                                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" 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('addMating')">保 存</el-button>
+                        </el-form-item>
+                    </el-form>
+                </el-col>
+            </el-row>
+        </el-dialog>
     </div>
 </template>
 
 <script>
+import {
+    reqMatingList,
+    reqAddOrUpdateMating,
+    reqDelMating
+} from "@/api/breed.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 rules = {};
 
 export default {
+    name: "matingLog",
     data() {
         return {
-            value: "",
-            page: 1,
-            tableData
+            search: "",
+            pageNum: 1,
+            tableData: [],
+            totalPages: 0,
+            isShow: false,
+            formData: {
+                femaleSheepId: "182",
+                femaleLevel: this.$store.state['seedSheedLevel'][0].value,
+                maleSheepId: "121",
+                maleLevel: this.$store.state['seedSheedLevel'][0].value,
+                opeTime: this.$moment().format('YYYY-MM-DD HH:mm:ss'),
+                opeUser: this.$store.state['workerList'][0].id
+            },
+            isAdd: false,
+            rules
         };
     },
-    created() {},
+    created() {
+        // 入库管理列表
+        this.getMatingList();
+    },
     methods: {
-        edit(row) {},
-        del(row) {},
+        submitForm(formName) {
+            this.$refs[formName].validate(valid => {
+                if (valid) {
+                    reqAddOrUpdateMating(this.formData)
+                        .then(res => {
+                            // 入库管理列表
+                            this.getMatingList();
+                            this.$message.success("成功!");
+                            // this.isShow = false
+                        })
+                        .catch(err => {
+                            console.log(err);
+                            this.$message.error("失败!");
+                        });
+                } else {
+                    return false;
+                }
+            });
+        },
+        // 入库管理列表
+        getMatingList() {
+            reqMatingList({
+                searchStr: this.search,
+                pageSize,
+                pageNum: this.pageNum
+            })
+                .then(res => {
+                    this.tableData = res.content;
+                    this.totalPages = res.totalPages;
+                })
+                .catch(err => {
+                    console.log(err);
+                });
+        },
+        add() {
+            this.isShow = true;
+            // 有id是update 没id是add
+            delete this.formData.id;
+        },
+        edit(row) {
+            this.formData = row;
+            this.isShow = true;
+        },
+        del(row) {
+            reqDelMating(row.id)
+                .then(res => {
+                    // 入库管理列表
+                    this.getMatingList();
+                    if (res.code == "success") {
+                        this.$message.success(res.msg);
+                    }
+                    if (res.errCode == "delete failed") {
+                        this.$message.error(res.errMsg);
+                    }
+                })
+                .catch(err => {
+                    console.log(err);
+                    this.$message.error("删除失败!");
+                });
+        },
         pageChange(p) {
             console.log(p);
+            this.pageNum = p;
+            // 入库管理列表
+            this.getMatingList();
         }
     }
 };

+ 185 - 69
src/views/breed/matingSuccLog.vue

@@ -1,16 +1,16 @@
 <template>
-    <div class="matingSuccLog">
+    <div class="matingSSuccLog">
         <h2 style="margin-bottom: 20px;padding-bottom:7px;border-bottom:2px solid #ddd">查情记录</h2>
         <header id="header">
             <el-row type="flex" :gutter="20">
                 <el-col :span="4">
-                    <el-input v-model="value" placeholder="请选择"/>
+                    <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="getmatingSList">查找</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>
@@ -22,20 +22,45 @@
                     tooltip-effect="dark"
                     style="width: 100%"
                 >
-                    <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 label="操作" width="150">
+                    <el-table-column prop="id" label="序号"></el-table-column>
+
+                    <el-table-column prop="sheepId" label="种母羊编号"></el-table-column>
+
+                    <el-table-column label="种母羊等级">
+                        <template v-slot="scope">
+                            <div v-for="item in $store.state['seedSheedLevel']" :key="item.value">
+                                <span v-if="item.value == scope.row['level']">{{ item.label }}</span>
+                            </div>
+                        </template>
+                    </el-table-column>
+
+                    <el-table-column prop="opeTime" label="查情时间"></el-table-column>
+
+                    <el-table-column label="是否发情">
+                        <template v-slot="scope">
+                            <div v-for="item in $store.state['estrusStatus']" :key="item.value">
+                                <span v-if="item.value == scope.row['ifEstrus']">{{ item.label }}</span>
+                            </div>
+                        </template>
+                    </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 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>
                         </template>
-                    </el-table-column> -->
+                    </el-table-column>
                 </el-table>
 
                 <el-row type="flex" justify="end">
@@ -44,82 +69,173 @@
                             @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="addmatingS" :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-select v-model="formData.level" placeholder="请选择">
+                                <el-option
+                                    v-for="item in $store.state['seedSheedLevel']"
+                                    :key="item.value"
+                                    :label="item.label"
+                                    :value="item.value"
+                                ></el-option>
+                            </el-select>
+                        </el-form-item>
+
+                        <el-form-item label="查情时间">
+                            <el-date-picker
+                                v-model="formData.opeTime"
+                                type="date"
+                                value-format="yyyy-MM-dd HH:mm:ss"
+                                placeholder="选择日期"
+                            ></el-date-picker>
+                        </el-form-item>
+
+                        <el-form-item label="是否发情">
+                            <el-radio-group v-model="formData.ifEstrus">
+                                <el-radio
+                                    v-for="item in $store.state['estrusStatus']"
+                                    :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" 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('addmatingS')">保 存</el-button>
+                        </el-form-item>
+                    </el-form>
+                </el-col>
+            </el-row>
+        </el-dialog>
     </div>
 </template>
 
 <script>
+import {
+    reqmatingSList,
+    reqAddOrUpdatematingS,
+    reqDelmatingS
+} from "@/api/breed.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: "matingSSuccLog",
     data() {
         return {
-            value: "",
-            page: 1,
-            tableData
+            search: "",
+            pageNum: 1,
+            tableData: [],
+            totalPages: 0,
+            isShow: false,
+            formData: {
+                sheepId: "182",
+                level: this.$store.state['seedSheedLevel'][0].value,
+                opeTime: this.$moment().format("YYYY-MM-DD HH:mm:ss"),
+                ifEstrus: this.$store.state['estrusStatus'][0].value,
+                opeUser: this.$store.state['workerList'][0].id,
+            },
+            isAdd: false,
+            rules
         };
     },
-    created() {},
+    created() {
+        // 入库管理列表
+        this.getmatingSList();
+    },
     methods: {
-        edit(row) {},
-        del(row) {},
+        submitForm(formName) {
+            this.$refs[formName].validate(valid => {
+                if (valid) {
+                    reqAddOrUpdatematingS(this.formData)
+                        .then(res => {
+                            // 入库管理列表
+                            this.getmatingSList();
+                            this.$message.success("成功!");
+                            // this.isShow = false
+                        })
+                        .catch(err => {
+                            console.log(err);
+                            this.$message.error("失败!");
+                        });
+                } else {
+                    return false;
+                }
+            });
+        },
+        // 入库管理列表
+        getmatingSList() {
+            reqmatingSList({
+                searchStr: this.search,
+                pageSize,
+                pageNum: this.pageNum
+            })
+                .then(res => {
+                    this.tableData = res.content;
+                    this.totalPages = res.totalPages;
+                })
+                .catch(err => {
+                    console.log(err);
+                });
+        },
+        add() {
+            this.isShow = true;
+            // 有id是update 没id是add
+            delete this.formData.id;
+        },
+        edit(row) {
+            this.formData = row;
+            this.isShow = true;
+        },
+        del(row) {
+            reqDelmatingS(row.id)
+                .then(res => {
+                    // 入库管理列表
+                    this.getmatingSList();
+                    if (res.code == "success") {
+                        this.$message.success(res.msg);
+                    }
+                    if (res.errCode == "delete failed") {
+                        this.$message.error(res.errMsg);
+                    }
+                })
+                .catch(err => {
+                    console.log(err);
+                    this.$message.error("删除失败!");
+                });
+        },
         pageChange(p) {
             console.log(p);
+            this.pageNum = p;
+            // 入库管理列表
+            this.getmatingSList();
         }
     }
 };

+ 169 - 69
src/views/breed/offFieldLog.vue

@@ -4,13 +4,13 @@
         <header id="header">
             <el-row type="flex" :gutter="20">
                 <el-col :span="4">
-                    <el-input v-model="value" placeholder="请选择"/>
+                    <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="getOffFieldList">查找</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>
@@ -22,21 +22,30 @@
                     tooltip-effect="dark"
                     style="width: 100%"
                 >
-                    <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">
+                    <el-table-column prop="id" label="序号"></el-table-column>
+                    <el-table-column prop="sheepId" label="羊只编码"></el-table-column>
+                    <el-table-column prop="opeTime" label="离场时间"></el-table-column>
+                    <el-table-column prop="ageOfDay" label="日龄(天)"></el-table-column>
+                    <el-table-column prop="weight" label="离场体重(kg)"></el-table-column>
+                    <el-table-column prop="cause" 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 }}</span>
+                            </div>
+                        </template>
+                    </el-table-column>
+                    <el-table-column prop="remark" 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>
                         </template>
-                    </el-table-column> -->
+                    </el-table-column>
                 </el-table>
 
                 <el-row type="flex" justify="end">
@@ -45,82 +54,173 @@
                             @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="addOffField" :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.opeTime"
+                                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.ageOfDay"></el-input>
+                        </el-form-item>
+
+                        <el-form-item label="离场体重(kg)">
+                            <el-input v-model="formData.weight"></el-input>
+                        </el-form-item>
+
+                        <el-form-item label="离场原因">
+                            <el-radio-group v-model="formData.cause">
+                                <el-radio :label="1">淘汰</el-radio>
+                                <el-radio :label="2">死亡</el-radio>
+                            </el-radio-group>
+                        </el-form-item>
+
+                        <el-form-item label="饲养员">
+                            <el-select v-model="formData.opeUser" 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="testarea" 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('addOffField')">保 存</el-button>
+                        </el-form-item>
+                    </el-form>
+                </el-col>
+            </el-row>
+        </el-dialog>
     </div>
 </template>
 
 <script>
+import {
+    reqOffFieldList,
+    reqAddOrUpdateOffField,
+    reqDelOffField
+} from "@/api/breed.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: "OffFieldLog",
     data() {
         return {
-            value: "",
-            page: 1,
-            tableData
+            search: "",
+            pageNum: 1,
+            tableData: [],
+            totalPages: 0,
+            isShow: false,
+            formData: {
+                sheepId: "182",
+                opeTime: this.$moment().format("YYYY-MM-DD HH:mm:ss"),
+                ageOfDay: '32',
+                weight: 5.8,
+                cause: 1,
+                opeUser: this.$store.state['workerList'][0].id,
+                remark: "这只小羊不乖!!"
+            },
+            isAdd: false,
+            rules
         };
     },
-    created() {},
+    created() {
+        // 离场记录  列表
+        this.getOffFieldList();
+    },
     methods: {
-        edit(row) {},
-        del(row) {},
+        submitForm(formName) {
+            this.$refs[formName].validate(valid => {
+                if (valid) {
+                    reqAddOrUpdateOffField(this.formData)
+                        .then(res => {
+                            // 离场记录 列表
+                            this.getOffFieldList();
+                            this.$message.success("成功!");
+                            // this.isShow = false
+                        })
+                        .catch(err => {
+                            console.log(err);
+                            this.$message.error("失败!");
+                        });
+                } else {
+                    return false;
+                }
+            });
+        },
+        // 离场记录 列表
+        getOffFieldList() {
+            reqOffFieldList({
+                searchStr: this.search,
+                pageSize,
+                pageNum: this.pageNum
+            })
+                .then(res => {
+                    this.tableData = res.content;
+                    this.totalPages = res.totalPages;
+                })
+                .catch(err => {
+                    console.log(err);
+                });
+        },
+        add() {
+            this.isShow = true;
+            // 有id是update 没id是add
+            delete this.formData.id;
+        },
+        edit(row) {
+            this.formData = row;
+            this.isShow = true;
+        },
+        del(row) {
+            reqDelOffField(row.id)
+                .then(res => {
+                    // 离场记录 列表
+                    this.getOffFieldList();
+                    if (res.code == "success") {
+                        this.$message.success(res.msg);
+                    }
+                    if (res.errCode == "delete failed") {
+                        this.$message.error(res.errMsg);
+                    }
+                })
+                .catch(err => {
+                    console.log(err);
+                    this.$message.error("删除失败!");
+                });
+        },
         pageChange(p) {
             console.log(p);
+            this.pageNum = p;
+            // 离场记录 列表
+            this.getOffFieldList();
         }
     }
 };

+ 177 - 74
src/views/breed/parturitionLog.vue

@@ -4,13 +4,13 @@
         <header id="header">
             <el-row type="flex" :gutter="20">
                 <el-col :span="4">
-                    <el-input v-model="value" placeholder="请选择"/>
+                    <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="getParturitionList">查找</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>
@@ -21,24 +21,33 @@
                     :data="tableData"
                     tooltip-effect="dark"
                     style="width: 100%"
-                    @selection-change="handleSelectionChange"
                 >
-                    <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 prop="g" label="操作人"></el-table-column>
-                    <!-- <el-table-column label="操作" width="150">
+                    <el-table-column prop="id" label="序号"></el-table-column>
+                    <el-table-column prop="sheepId" label="种母羊编号"></el-table-column>
+                    <el-table-column prop="opeTime" label="分娩时间"></el-table-column>
+                    <el-table-column prop="number" label="产羔个数"></el-table-column>
+                    <el-table-column prop="averageWeight" label="羔羊均重(kg)"></el-table-column>
+                    <el-table-column prop="healthyNum" label="健仔数"></el-table-column>
+                    <el-table-column prop="weakNum" label="弱仔数"></el-table-column>
+                    <el-table-column prop="mummyNum" label="木乃伊"></el-table-column>
+                    <el-table-column prop="deadNum" 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 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>
                         </template>
-                    </el-table-column> -->
+                    </el-table-column>
                 </el-table>
 
                 <el-row type="flex" justify="end">
@@ -47,86 +56,180 @@
                             @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="addParturition" :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.opeTime"
+                                type="date"
+                                value-format="yyyy-MM-dd HH:mm:ss"
+                                placeholder="选择日期"
+                            ></el-date-picker>
+                        </el-form-item>
+
+                        <el-form-item label="产羔个数">
+                            <el-input-number v-model="formData.number" :min="0" :max="5" label="描述文字"></el-input-number>
+                        </el-form-item>
+
+                        <el-form-item label="羔羊均重(kg)">
+                            <el-input v-model="formData.averageWeight"></el-input>
+                        </el-form-item>
+
+                        <el-form-item label="健仔数">
+                            <el-input-number v-model="formData.healthyNum" :min="0" :max="5" label="描述文字"></el-input-number>
+                        </el-form-item>
+
+                        <el-form-item label="弱仔数">
+                            <el-input-number v-model="formData.weakNum" :min="0" :max="5" label="描述文字"></el-input-number>
+                        </el-form-item>
+
+                        <el-form-item label="木乃伊">
+                            <el-input-number v-model="formData.mummyNum" :min="0" :max="5" label="描述文字"></el-input-number>
+                        </el-form-item>
+
+                        <el-form-item label="死羔数">
+                            <el-input-number v-model="formData.deadNum" :min="0" :max="5" label="描述文字"></el-input-number>
+                        </el-form-item>
+
+                        <el-form-item label="操作人">
+                            <el-select v-model="formData.opeUser" 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('addParturition')">保 存</el-button>
+                        </el-form-item>
+                    </el-form>
+                </el-col>
+            </el-row>
+        </el-dialog>
     </div>
 </template>
 
 <script>
+import {
+    reqParturitionList,
+    reqAddOrUpdateParturition,
+    reqDelParturition
+} from "@/api/breed.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: "parturitionLog",
     data() {
         return {
-            value: "",
-            multipleSelection: [],
-            page: 1,
-            tableData
+            search: "",
+            pageNum: 1,
+            tableData: [],
+            totalPages: 0,
+            isShow: false,
+            formData: {
+                sheepId: "182",
+                opeTime: this.$moment().format("YYYY-MM-DD HH:mm:ss"),
+                number: 1,
+                averageWeight: '3.1',
+                healthyNum: 1,
+                weakNum: 0,
+                mummyNum: 0,
+                deadNum: 0,
+                opeUser: this.$store.state['workerList'][0].id,
+            },
+            isAdd: false,
+            rules
         };
     },
-    created() {},
+    created() {
+        // 入库管理列表
+        this.getParturitionList();
+    },
     methods: {
-        handleSelectionChange(val) {
-            this.multipleSelection = val;
+        submitForm(formName) {
+            this.$refs[formName].validate(valid => {
+                if (valid) {
+                    reqAddOrUpdateParturition(this.formData)
+                        .then(res => {
+                            // 入库管理列表
+                            this.getParturitionList();
+                            this.$message.success("成功!");
+                            // this.isShow = false
+                        })
+                        .catch(err => {
+                            console.log(err);
+                            this.$message.error("失败!");
+                        });
+                } else {
+                    return false;
+                }
+            });
+        },
+        // 入库管理列表
+        getParturitionList() {
+            reqParturitionList({
+                searchStr: this.search,
+                pageSize,
+                pageNum: this.pageNum
+            })
+                .then(res => {
+                    this.tableData = res.content;
+                    this.totalPages = res.totalPages;
+                })
+                .catch(err => {
+                    console.log(err);
+                });
+        },
+        add() {
+            this.isShow = true;
+            // 有id是update 没id是add
+            delete this.formData.id;
+        },
+        edit(row) {
+            this.formData = row;
+            this.isShow = true;
+        },
+        del(row) {
+            reqDelParturition(row.id)
+                .then(res => {
+                    // 入库管理列表
+                    this.getParturitionList();
+                    if (res.code == "success") {
+                        this.$message.success(res.msg);
+                    }
+                    if (res.errCode == "delete failed") {
+                        this.$message.error(res.errMsg);
+                    }
+                })
+                .catch(err => {
+                    console.log(err);
+                    this.$message.error("删除失败!");
+                });
         },
-        edit(row) {},
-        del(row) {},
         pageChange(p) {
             console.log(p);
+            this.pageNum = p;
+            // 入库管理列表
+            this.getParturitionList();
         }
     }
 };

+ 199 - 73
src/views/breed/pregnancyTestLog.vue

@@ -1,16 +1,16 @@
 <template>
     <div class="pregnancyTestLog">
-        <h2 style="margin-bottom: 20px;padding-bottom:7px;border-bottom:2px solid #ddd">断奶信息</h2>
+        <h2 style="margin-bottom: 20px;padding-bottom:7px;border-bottom:2px solid #ddd">妊检记录</h2>
         <header id="header">
             <el-row type="flex" :gutter="20">
                 <el-col :span="4">
-                    <el-input v-model="value" placeholder="请选择"/>
+                    <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="getPregnancyTestList">查找</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>
@@ -21,22 +21,45 @@
                     :data="tableData"
                     tooltip-effect="dark"
                     style="width: 100%"
-                    @selection-change="handleSelectionChange"
                 >
-                    <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 label="操作" width="150">
+                    <el-table-column prop="id" label="序号"></el-table-column>
+
+                    <el-table-column prop="sheepId" label="种母羊编号"></el-table-column>
+
+                    <el-table-column prop="opeTime" label="妊检时间"></el-table-column>
+
+                    <el-table-column label="状态">
+                        <template v-slot="scope">
+                            <div v-for="item in $store.state['fetationStatus']" :key="item.value">
+                                <span v-if="item.value == scope.row['status']">{{ item.label }}</span>
+                            </div>
+                        </template>
+                    </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 prop="position" label="当前位置"></el-table-column>
+
+                    <el-table-column prop="number" label="怀胎个数"></el-table-column>
+
+                    <el-table-column prop="remark" 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>
                         </template>
-                    </el-table-column> -->
+                    </el-table-column>
                 </el-table>
 
                 <el-row type="flex" justify="end">
@@ -45,86 +68,189 @@
                             @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="addPregnancyTest"
+                        :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.opeTime"
+                                type="date"
+                                value-format="yyyy-MM-dd HH:mm:ss"
+                                placeholder="选择日期"
+                            ></el-date-picker>
+                        </el-form-item>
+
+                        <el-form-item label="状态">
+                            <!-- <el-radio-group v-model="formData.ifEstrus">
+                                <el-radio
+                                    v-for="item in $store.state['fetationStatus']"
+                                    :key="item.value"
+                                    :label="item.value"
+                                >{{ item.label }}</el-radio>
+                            </el-radio-group> -->
+                            <el-select v-model="formData.status" placeholder="请选择">
+                                <el-option
+                                    v-for="item in $store.state['fetationStatus']"
+                                    :key="item.value"
+                                    :label="item.label"
+                                    :value="item.value"
+                                ></el-option>
+                            </el-select>
+                        </el-form-item>
+
+                        <el-form-item label="操作人">
+                            <el-select v-model="formData.opeUser" 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 v-model="formData.position"></el-input>
+                        </el-form-item>
+
+                        <el-form-item label="怀胎个数">
+                            <el-input v-model="formData.number"></el-input>
+                        </el-form-item>
+
+                        <el-form-item label="备注">
+                            <el-input type="textarea" 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('addPregnancyTest')">保 存</el-button>
+                        </el-form-item>
+                    </el-form>
+                </el-col>
+            </el-row>
+        </el-dialog>
     </div>
 </template>
 
 <script>
+import {
+    reqPregnancyTestList,
+    reqAddOrUpdatePregnancyTest,
+    reqDelPregnancyTest
+} from "@/api/breed.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: "pregnancyTestLog",
     data() {
         return {
-            value: "",
-            multipleSelection: [],
-            page: 1,
-            tableData
+            search: "",
+            pageNum: 1,
+            tableData: [],
+            totalPages: 0,
+            isShow: false,
+            formData: {
+                sheepId: "182",
+                opeTime: this.$moment().format("YYYY-MM-DD HH:mm:ss"),
+                status: this.$store.state['fetationStatus'][0].value,
+                opeUser: this.$store.state['workerList'][0].id,
+                position: "配怀2舍",
+                number: '2',
+                remark: '这只羊怀孕了',
+            },
+            isAdd: false,
+            rules
         };
     },
-    created() {},
+    created() {
+        // 入库管理列表
+        this.getPregnancyTestList();
+    },
     methods: {
-        handleSelectionChange(val) {
-            this.multipleSelection = val;
+        submitForm(formName) {
+            this.$refs[formName].validate(valid => {
+                if (valid) {
+                    reqAddOrUpdatePregnancyTest(this.formData)
+                        .then(res => {
+                            // 入库管理列表
+                            this.getPregnancyTestList();
+                            this.$message.success("成功!");
+                            // this.isShow = false
+                        })
+                        .catch(err => {
+                            console.log(err);
+                            this.$message.error("失败!");
+                        });
+                } else {
+                    return false;
+                }
+            });
+        },
+        // 入库管理列表
+        getPregnancyTestList() {
+            reqPregnancyTestList({
+                searchStr: this.search,
+                pageSize,
+                pageNum: this.pageNum
+            })
+                .then(res => {
+                    this.tableData = res.content;
+                    this.totalPages = res.totalPages;
+                })
+                .catch(err => {
+                    console.log(err);
+                });
+        },
+        add() {
+            this.isShow = true;
+            // 有id是update 没id是add
+            delete this.formData.id;
+        },
+        edit(row) {
+            this.formData = row;
+            this.isShow = true;
+        },
+        del(row) {
+            reqDelPregnancyTest(row.id)
+                .then(res => {
+                    // 入库管理列表
+                    this.getPregnancyTestList();
+                    if (res.code == "success") {
+                        this.$message.success(res.msg);
+                    }
+                    if (res.errCode == "delete failed") {
+                        this.$message.error(res.errMsg);
+                    }
+                })
+                .catch(err => {
+                    console.log(err);
+                    this.$message.error("删除失败!");
+                });
         },
-        edit(row) {},
-        del(row) {},
         pageChange(p) {
             console.log(p);
+            this.pageNum = p;
+            // 入库管理列表
+            this.getPregnancyTestList();
         }
     }
 };

+ 1 - 1
src/views/breed/seedSheepFile.vue

@@ -23,7 +23,7 @@
                     style="width: 100%"
                 >
                     <el-table-column prop="id" label="种母羊编码" width="100"></el-table-column>
-                    <el-table-column prop="created" label="入场时间" width="200"></el-table-column>
+                    <el-table-column prop="entryTime" label="入场时间" width="200"></el-table-column>
                     <el-table-column prop="dayOfAge" label="入场日龄"></el-table-column>
                     <el-table-column label="种羊来源">
                         <template v-slot="scope">

+ 208 - 69
src/views/breed/shiftFieldLog.vue

@@ -4,13 +4,13 @@
         <header id="header">
             <el-row type="flex" :gutter="20">
                 <el-col :span="4">
-                    <el-input v-model="value" placeholder="请选择"/>
+                    <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="getShiftFieldList">查找</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>
@@ -22,21 +22,50 @@
                     tooltip-effect="dark"
                     style="width: 100%"
                 >
-                    <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">
+                    <el-table-column prop="id" label="序号"></el-table-column>
+                    <el-table-column prop="sheepId" label="羊只编码"></el-table-column>
+                    <el-table-column prop="opeTime" label="转舍时间"></el-table-column>
+                    <el-table-column label="转出栋舍">
+                        <template v-slot="scope">
+                            <div v-for="item in $store.state['areaList']" :key="item.value">
+                                <span
+                                    v-if="item.id == scope.row['fromBuilding']"
+                                >{{ item.name }}</span>
+                            </div>
+                        </template>
+                    </el-table-column>
+                    <el-table-column prop="fromEnclosure" label="转出栏位"></el-table-column>
+
+                    <el-table-column label="转入栋舍">
+                        <template v-slot="scope">
+                            <div v-for="item in $store.state['areaList']" :key="item.value">
+                                <span
+                                    v-if="item.id == scope.row['toBuilding']"
+                                >{{ item.name }}</span>
+                            </div>
+                        </template>
+                    </el-table-column>
+                    <el-table-column prop="toEnclosure" label="转入栏位"></el-table-column>
+
+                    <el-table-column prop="weight" label="转出重量(kg)"></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 }}</span>
+                            </div>
+                        </template>
+                    </el-table-column>
+                    <el-table-column prop="remark" 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>
                         </template>
-                    </el-table-column> -->
+                    </el-table-column>
                 </el-table>
 
                 <el-row type="flex" justify="end">
@@ -45,82 +74,192 @@
                             @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-input v-model="formData.sheepId"></el-input>
+                        </el-form-item>
+
+                        <el-form-item label="转舍时间">
+                            <el-date-picker
+                                v-model="formData.opeTime"
+                                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" placeholder="请选择">
+                                <el-option
+                                    v-for="item in $store.state['areaList']"
+                                    :key="item.id"
+                                    :label="`${item.name}`"
+                                    :value="item.id"
+                                ></el-option>
+                            </el-select>
+                        </el-form-item>
+                        <el-form-item label="转出栏位">
+                            <el-input v-model="formData.fromEnclosure"></el-input>
+                        </el-form-item>
+
+                        <el-form-item label="转入栋舍">
+                            <el-select v-model="formData.toBuilding" placeholder="请选择">
+                                <el-option
+                                    v-for="item in $store.state['areaList']"
+                                    :key="item.id"
+                                    :label="`${item.name}`"
+                                    :value="item.id"
+                                ></el-option>
+                            </el-select>
+                        </el-form-item>
+                        <el-form-item label="转入栏位">
+                            <el-input v-model="formData.toEnclosure"></el-input>
+                        </el-form-item>
+
+                        <el-form-item label="转出重量(kg)">
+                            <el-input v-model="formData.weight"></el-input>
+                        </el-form-item>
+
+                        <el-form-item label="操作人">
+                            <el-select v-model="formData.opeUser" 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="testarea" 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,
+    reqAddOrUpdateShiftField,
+    reqDelShiftField
+} from "@/api/breed.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: "shiftFieldLog",
     data() {
         return {
-            value: "",
-            page: 1,
-            tableData
+            search: "",
+            pageNum: 1,
+            tableData: [],
+            totalPages: 0,
+            isShow: false,
+            formData: {
+                sheepId: "182",
+                opeTime: this.$moment().format("YYYY-MM-DD HH:mm:ss"),
+                fromBuilding: this.$store.state['areaList'][0].id,
+                fromEnclosure: '01号栏位',
+                toBuilding: this.$store.state['areaList'][0].id,
+                toEnclosure: '02号栏位',
+                weight: '42',
+                opeUser: this.$store.state['workerList'][0].id,
+                remark: "这只羊不乖!!"
+            },
+            isAdd: false,
+            rules
         };
     },
-    created() {},
+    created() {
+        // 离场记录  列表
+        this.getShiftFieldList();
+    },
     methods: {
-        edit(row) {},
-        del(row) {},
+        submitForm(formName) {
+            this.$refs[formName].validate(valid => {
+                if (valid) {
+                    reqAddOrUpdateShiftField(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);
+                });
+        },
+        add() {
+            this.isShow = true;
+            // 有id是update 没id是add
+            delete this.formData.id;
+        },
+        edit(row) {
+            this.formData = row;
+            this.isShow = true;
+        },
+        del(row) {
+            reqDelShiftField(row.id)
+                .then(res => {
+                    // 离场记录 列表
+                    this.getShiftFieldList();
+                    if (res.code == "success") {
+                        this.$message.success(res.msg);
+                    }
+                    if (res.errCode == "delete failed") {
+                        this.$message.error(res.errMsg);
+                    }
+                })
+                .catch(err => {
+                    console.log(err);
+                    this.$message.error("删除失败!");
+                });
+        },
         pageChange(p) {
             console.log(p);
+            this.pageNum = p;
+            // 离场记录 列表
+            this.getShiftFieldList();
         }
     }
 };

+ 160 - 70
src/views/breed/weaningLog.vue

@@ -4,13 +4,13 @@
         <header id="header">
             <el-row type="flex" :gutter="20">
                 <el-col :span="4">
-                    <el-input v-model="value" placeholder="请选择"/>
+                    <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="getWeaningList">查找</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>
@@ -22,22 +22,29 @@
                     tooltip-effect="dark"
                     style="width: 100%"
                 >
-                    <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 prop="g" label="操作人"></el-table-column>
-                    <!-- <el-table-column label="操作" width="150">
+                    <el-table-column prop="id" label="序号"></el-table-column>
+                    <el-table-column prop="opeTime" label="断奶时间"></el-table-column>
+                    <el-table-column prop="sheepId" label="种母羊编码"></el-table-column>
+                    <el-table-column prop="number" label="羔羊数量(只)"></el-table-column>
+                    <el-table-column prop="weight" label="断奶均重量(kg)"></el-table-column>
+                    <el-table-column prop="cost" 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 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>
                         </template>
-                    </el-table-column> -->
+                    </el-table-column>
                 </el-table>
 
                 <el-row type="flex" justify="end">
@@ -46,82 +53,165 @@
                             @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="addWeaning" :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.opeTime"
+                                type="date"
+                                value-format="yyyy-MM-dd HH:mm:ss"
+                                placeholder="选择日期"
+                            ></el-date-picker>
+                        </el-form-item>
+
+                        <el-form-item label="羔羊数量">
+                            <el-input-number v-model="formData.number" :min="0" :max="5" label="描述文字"></el-input-number>
+                        </el-form-item>
+
+                        <el-form-item label="断奶均重量(kg)">
+                            <el-input v-model="formData.weight"></el-input>
+                        </el-form-item>
+
+                        <el-form-item label="断奶成本">
+                            <el-input v-model="formData.cost"></el-input>
+                        </el-form-item>
+
+                        <el-form-item label="操作人">
+                            <el-select v-model="formData.opeUser" 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('addWeaning')">保 存</el-button>
+                        </el-form-item>
+                    </el-form>
+                </el-col>
+            </el-row>
+        </el-dialog>
     </div>
 </template>
 
 <script>
+import {
+    reqWeaningList,
+    reqAddOrUpdateWeaning,
+    reqDelWeaning
+} from "@/api/breed.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: "weaningLog",
     data() {
         return {
-            value: "",
-            page: 1,
-            tableData
+            search: "",
+            pageNum: 1,
+            tableData: [],
+            totalPages: 0,
+            isShow: false,
+            formData: {
+                opeTime: this.$moment().format("YYYY-MM-DD HH:mm:ss"),
+                sheepId: "182",
+                number: 1,
+                weight: '3.1',
+                cost: '482',
+                opeUser: this.$store.state['workerList'][0].id,
+            },
+            isAdd: false,
+            rules
         };
     },
-    created() {},
+    created() {
+        // 入库管理列表
+        this.getWeaningList();
+    },
     methods: {
-        edit(row) {},
-        del(row) {},
+        submitForm(formName) {
+            this.$refs[formName].validate(valid => {
+                if (valid) {
+                    reqAddOrUpdateWeaning(this.formData)
+                        .then(res => {
+                            // 入库管理列表
+                            this.getWeaningList();
+                            this.$message.success("成功!");
+                            // this.isShow = false
+                        })
+                        .catch(err => {
+                            console.log(err);
+                            this.$message.error("失败!");
+                        });
+                } else {
+                    return false;
+                }
+            });
+        },
+        // 入库管理列表
+        getWeaningList() {
+            reqWeaningList({
+                searchStr: this.search,
+                pageSize,
+                pageNum: this.pageNum
+            })
+                .then(res => {
+                    this.tableData = res.content;
+                    this.totalPages = res.totalPages;
+                })
+                .catch(err => {
+                    console.log(err);
+                });
+        },
+        add() {
+            this.isShow = true;
+            // 有id是update 没id是add
+            delete this.formData.id;
+        },
+        edit(row) {
+            this.formData = row;
+            this.isShow = true;
+        },
+        del(row) {
+            reqDelWeaning(row.id)
+                .then(res => {
+                    // 入库管理列表
+                    this.getWeaningList();
+                    if (res.code == "success") {
+                        this.$message.success(res.msg);
+                    }
+                    if (res.errCode == "delete failed") {
+                        this.$message.error(res.errMsg);
+                    }
+                })
+                .catch(err => {
+                    console.log(err);
+                    this.$message.error("删除失败!");
+                });
+        },
         pageChange(p) {
             console.log(p);
+            this.pageNum = p;
+            // 入库管理列表
+            this.getWeaningList();
         }
     }
 };

+ 138 - 70
src/views/fileInfo/areaInfo.vue

@@ -1,16 +1,17 @@
 <template>
+    <!-- 静态  栋舍信息 areaInfo-->
     <div class="areaInfo">
         <h2 style="margin-bottom: 20px;padding-bottom:7px;border-bottom:2px solid #ddd">栋舍信息</h2>
         <header id="header">
             <el-row type="flex" :gutter="20">
                 <el-col :span="4">
-                    <el-input v-model="value" placeholder="请选择"/>
+                    <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="getBuildList">查找</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>
@@ -22,22 +23,24 @@
                     tooltip-effect="dark"
                     style="width: 100%"
                 >
-                    <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">
+                    <el-table-column prop="id" label="序号" width="80"></el-table-column>
+                    <el-table-column prop="name" label="栋舍" width="180"></el-table-column>
+                    <el-table-column prop="capacity" label="最大容量" width="180"></el-table-column>
+                    <el-table-column prop="manager" label="负责人">
+                        <template v-slot="scope">
+                            <div v-for="item in $store.state['workerList']" :key="item.value">
+                                <span v-if="item.id == scope.row['manager']">{{ item.name }}</span>
+                            </div>
+                        </template>
+                    </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>
                         </template>
-                    </el-table-column> -->
+                    </el-table-column>
                 </el-table>
 
                 <el-row type="flex" justify="end">
@@ -46,82 +49,147 @@
                             @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="addBuild" :model="formData" :rules="rules" label-width="140px">
+                        <el-form-item label="栋舍名字">
+                            <el-input v-model="formData.name"></el-input>
+                        </el-form-item>
+
+                        <el-form-item label="最大容量">
+                            <el-input v-model="formData.capacity"></el-input>
+                        </el-form-item>
+
+                        <el-form-item label="负责人">
+                            <el-select v-model="formData.manager" 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('addBuild')">保 存</el-button>
+                        </el-form-item>
+                    </el-form>
+                </el-col>
+            </el-row>
+        </el-dialog>
     </div>
 </template>
 
 <script>
+import {
+    reqBuildList,
+    reqAddOrUpdateBuild,
+    reqDelBuild
+} from "@/api/fileInfo.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: "areaInfo",
     data() {
         return {
-            value: "",
-            page: 1,
-            tableData
+            search: "",
+            pageNum: 1,
+            tableData: [],
+            totalPages: 0,
+            isShow: false,
+            formData: {
+                name: "保育一舍",
+                capacity: "156",
+                manager: this.$store.state.workerList[0].id
+            },
+            isAdd: false,
+            rules
         };
     },
-    created() {},
+    created() {
+        // 入库管理列表
+        this.getBuildList();
+    },
     methods: {
-        edit(row) {},
-        del(row) {},
+        submitForm(formName) {
+            this.$refs[formName].validate(valid => {
+                if (valid) {
+                    reqAddOrUpdateBuild(this.formData)
+                        .then(res => {
+                            // 入库管理列表
+                            this.getBuildList();
+                            this.$message.success("成功!");
+                            // this.isShow = false;
+                        })
+                        .catch(err => {
+                            console.log(err);
+                            this.$message.error("失败!");
+                        });
+                    // 获取栋舍列表 给后面下拉选择器使用
+                    this.$store.dispatch("getAreaList");
+                } else {
+                    return false;
+                }
+            });
+        },
+        // 入库管理列表
+        getBuildList() {
+            reqBuildList({
+                searchStr: this.search,
+                pageSize,
+                pageNum: this.pageNum
+            })
+                .then(res => {
+                    this.tableData = res.content;
+                    this.totalPages = res.totalPages;
+                })
+                .catch(err => {
+                    console.log(err);
+                });
+        },
+        add() {
+            this.isShow = true;
+            // 有id是update 没id是add
+            delete this.formData.id;
+        },
+        edit(row) {
+            this.formData = row;
+            this.isShow = true;
+        },
+        del(row) {
+            reqDelBuild(row.id)
+                .then(res => {
+                    console.log(res);
+                    // 入库管理列表
+                    this.getBuildList();
+                    if (res.code == "success") {
+                        this.$message.success(res.msg);
+                    }
+                    if (res.errCode == "delete failed") {
+                        this.$message.error(res.errMsg);
+                    }
+                })
+                .catch(err => {
+                    console.log(err);
+                });
+        },
         pageChange(p) {
             console.log(p);
+            this.pageNum = p;
+            // 入库管理列表
+            this.getBuildList();
         }
     }
 };

+ 154 - 99
src/views/fileInfo/workerInfo.vue

@@ -2,30 +2,15 @@
     <div class="workerInfo">
         <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="getWorkerList">查找</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>
@@ -36,27 +21,32 @@
                     :data="tableData"
                     tooltip-effect="dark"
                     style="width: 100%"
-                    @selection-change="handleSelectionChange"
                 >
-                    <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 prop="g" label="当前状态"></el-table-column>
-                    <el-table-column prop="g" label="户籍"></el-table-column>
-                    <!-- <el-table-column label="操作" width="150">
+                    <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="age" label="年龄"></el-table-column>
+                    <el-table-column prop="position" label="职位"></el-table-column>
+                    <el-table-column label="当前状态">
+                        <template slot-scope="scope">
+                            <span v-if="scope.row['status']==1">在职</span>
+                            <span v-else>离职</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column prop="phone" label="联系电话"></el-table-column>
+                    <el-table-column prop="birthPlace" label="户籍地"></el-table-column>
+                    <el-table-column prop="farmName" label="所属牧场"></el-table-column>
+                    <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">
                             <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>
                         </template>
-                    </el-table-column> -->
+                    </el-table-column>
                 </el-table>
-                
 
                 <el-row type="flex" justify="end">
                     <el-col :span="8" class="pagination">
@@ -64,95 +54,160 @@
                             @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="addWorker" :model="formData" :rules="rules" label-width="140px">
+                        <el-form-item label="姓名">
+                            <el-input v-model="formData.name"></el-input>
+                        </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-group>
+                        </el-form-item>
+                        <el-form-item label="年龄">
+                            <el-input v-model="formData.age"></el-input>
+                        </el-form-item>
+                        <el-form-item label="所属牧场">
+                            <el-input v-model="formData.farmName"></el-input>
+                        </el-form-item>
+                        <el-form-item label="职位">
+                            <el-input v-model="formData.position"></el-input>
+                        </el-form-item>
+                        <el-form-item label="联系电话">
+                            <el-input v-model="formData.phone"></el-input>
+                        </el-form-item>
+                        <el-form-item label="户籍地">
+                            <el-input v-model="formData.birthPlace"></el-input>
+                        </el-form-item>
+                        <el-form-item label="责任区域">
+                            <el-input v-model="formData.duty"></el-input>
+                        </el-form-item>
+                        <el-form-item>
+                            <el-button @click="isShow=false">取 消</el-button>
+                            <el-button type="primary" @click="submitForm('addWorker')">保 存</el-button>
+                        </el-form-item>
+                    </el-form>
+                </el-col>
+            </el-row>
+        </el-dialog>
     </div>
 </template>
 
 <script>
+import {
+    reqWorkerList,
+    reqAddOrUpdateWorker,
+    reqDelWorker
+} from "@/api/fileInfo.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: "workerInfo",
     data() {
         return {
-            value: "",
-            multipleSelection: [],
-            page: 1,
-            tableData
+            search: "",
+            pageNum: 1,
+            tableData: [],
+            totalPages: 0,
+            isShow: false,
+            formData: {
+                name: "王炸",
+                gender: "1",
+                age: "22",
+                farmName: "xx牧场",
+                position: "饲养员",
+                phone: "18202780511",
+                birthPlace: "浙江",
+                duty: "保育一舍,保育二舍"
+            },
+            isAdd: false,
+            rules
         };
     },
-    created() {},
+    created() {
+        // 入库管理列表
+        this.getWorkerList();
+    },
     methods: {
-        toggleSelection(rows) {
-            if (rows) {
-                rows.forEach(row => {
-                    this.$refs.multipleTable.toggleRowSelection(row);
+        submitForm(formName) {
+            this.$refs[formName].validate(valid => {
+                if (valid) {
+                    reqAddOrUpdateWorker(this.formData)
+                        .then(res => {
+                            // 入库管理列表
+                            this.getWorkerList();
+                            this.$message.success("成功!");
+                            this.isShow = false;
+                        })
+                        .catch(err => {
+                            console.log(err);
+                            this.$message.error("失败!");
+                        });
+                    // 获取员工列表 给后面下拉选择器使用
+                    this.$store.dispatch("getWorkerList");
+                } else {
+                    return false;
+                }
+            });
+        },
+        // 入库管理列表
+        getWorkerList() {
+            reqWorkerList({
+                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) {
+            this.formData = row;
+            this.isShow = true;
+        },
+        del(row) {
+            reqDelWorker(row.id)
+                .then(res => {
+                    // 入库管理列表
+                    this.getWorkerList();
+                    if (res.code == "success") {
+                        this.$message.success(res.msg);
+                    }
+                    if (res.errCode == "delete failed") {
+                        this.$message.error(res.errMsg);
+                    }
+                })
+                .catch(err => {
+                    console.log(err);
+                    this.$message.error("删除失败!");
+                });
         },
-        edit(row) {},
-        del(row) {},
         pageChange(p) {
             console.log(p);
+            this.pageNum = p;
+            // 入库管理列表
+            this.getWorkerList();
         }
     }
 };

+ 230 - 3
src/views/template/Ab.vue

@@ -1,20 +1,247 @@
 <template>
-    <div class="GroupRecord">
+    <div class="weaningLog">
+        <h2 style="margin-bottom: 20px;padding-bottom:7px;border-bottom:2px solid #ddd">断奶信息</h2>
+        <header id="header">
+            <el-row type="flex" :gutter="20">
+                <el-col :span="4">
+                    <el-input v-model="search" placeholder="请选择"></el-input>
+                </el-col>
+                <el-col :span="4">
+                    <el-button type="primary" @click="getParturitionList">查找</el-button>
+                </el-col>
+                <el-col :span="4">
+                    <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%"
+                >
+                    <el-table-column prop="id" label="序号"></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 prop="g" 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 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>
+                        </template>
+                    </el-table-column>
+                </el-table>
+
+                <el-row type="flex" justify="end">
+                    <el-col :span="8" class="pagination">
+                        <el-pagination
+                            @current-change="pageChange"
+                            background
+                            layout="prev, pager, next"
+                            :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="addParturition" :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.opeTime"
+                                type="date"
+                                value-format="yyyy-MM-dd HH:mm:ss"
+                                placeholder="选择日期"
+                            ></el-date-picker>
+                        </el-form-item>
+
+                        <el-form-item label="产羔个数">
+                            <el-input-number v-model="formData.number" :min="0" :max="5" label="描述文字"></el-input-number>
+                        </el-form-item>
+
+                        <el-form-item label="羔羊均重(kg)">
+                            <el-input v-model="formData.averageWeight"></el-input>
+                        </el-form-item>
+
+                        <el-form-item label="健仔数">
+                            <el-input-number v-model="formData.healthyNum" :min="0" :max="5" label="描述文字"></el-input-number>
+                        </el-form-item>
+
+                        <el-form-item label="弱仔数">
+                            <el-input-number v-model="formData.weakNum" :min="0" :max="5" label="描述文字"></el-input-number>
+                        </el-form-item>
+
+                        <el-form-item label="木乃伊">
+                            <el-input-number v-model="formData.mummyNum" :min="0" :max="5" label="描述文字"></el-input-number>
+                        </el-form-item>
+
+                        <el-form-item label="死羔数">
+                            <el-input-number v-model="formData.deadNum" :min="0" :max="5" label="描述文字"></el-input-number>
+                        </el-form-item>
+
+                        <el-form-item label="操作人">
+                            <el-select v-model="formData.opeUser" 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('addParturition')">保 存</el-button>
+                        </el-form-item>
+                    </el-form>
+                </el-col>
+            </el-row>
+        </el-dialog>
     </div>
 </template>
 
 <script>
+import {
+    reqParturitionList,
+    reqAddOrUpdateParturition,
+    reqDelParturition
+} from "@/api/breed.js";
+
+const pageSize = 10;
+const rules = {};
+
 export default {
+    name: "weaningLog",
     data() {
         return {
+            search: "",
+            pageNum: 1,
+            tableData: [],
+            totalPages: 0,
+            isShow: false,
+            formData: {
+                sheepId: "182",
+                opeTime: this.$moment().format("YYYY-MM-DD HH:mm:ss"),
+                number: 1,
+                averageWeight: '3.1',
+                healthyNum: 1,
+                weakNum: 0,
+                mummyNum: 0,
+                deadNum: 0,
+                opeUser: this.$store.state['workerList'][0].id || 1,
+            },
+            isAdd: false,
+            rules
         };
     },
-    created() {},
+    created() {
+        // 入库管理列表
+        this.getParturitionList();
+    },
     methods: {
+        submitForm(formName) {
+            this.$refs[formName].validate(valid => {
+                if (valid) {
+                    reqAddOrUpdateParturition(this.formData)
+                        .then(res => {
+                            // 入库管理列表
+                            this.getParturitionList();
+                            this.$message.success("成功!");
+                            // this.isShow = false
+                        })
+                        .catch(err => {
+                            console.log(err);
+                            this.$message.error("失败!");
+                        });
+                } else {
+                    return false;
+                }
+            });
+        },
+        // 入库管理列表
+        getParturitionList() {
+            reqParturitionList({
+                searchStr: this.search,
+                pageSize,
+                pageNum: this.pageNum
+            })
+                .then(res => {
+                    this.tableData = res.content;
+                    this.totalPages = res.totalPages;
+                })
+                .catch(err => {
+                    console.log(err);
+                });
+        },
+        add() {
+            this.isShow = true;
+            // 有id是update 没id是add
+            delete this.formData.id;
+        },
+        edit(row) {
+            this.formData = row;
+            this.isShow = true;
+        },
+        del(row) {
+            reqDelParturition(row.id)
+                .then(res => {
+                    // 入库管理列表
+                    this.getParturitionList();
+                    if (res.code == "success") {
+                        this.$message.success(res.msg);
+                    }
+                    if (res.errCode == "delete failed") {
+                        this.$message.error(res.errMsg);
+                    }
+                })
+                .catch(err => {
+                    console.log(err);
+                    this.$message.error("删除失败!");
+                });
+        },
+        pageChange(p) {
+            console.log(p);
+            this.pageNum = p;
+            // 入库管理列表
+            this.getParturitionList();
+        }
     }
 };
 </script>
 
 <style lang="scss" scoped>
-
+#header {
+    margin-bottom: 15px;
+}
+.table {
+    .pagination {
+        margin-top: 20px;
+    }
+}
 </style>