linan 4 年之前
父節點
當前提交
8e0122938b

+ 61 - 0
src/api/butcher.js

@@ -0,0 +1,61 @@
+import { ajax } from "../sdk/ajax";
+/* 屠宰管控 */
+
+// 企业采购 Quarantine
+export const reqQuarantine = () => ajax("post", "/farm-huyang/screen/slaughter-system/quarantine/get")
+
+export const reqSetQuarantine = (data) => ajax("post", "/farm-huyang/screen/slaughter-system/quarantine/save", data)
+
+
+// 成本比例 Cost
+export const reqCost = () => ajax("post", "/farm-huyang/screen/slaughter-system/cost/get")
+
+export const reqSetCost = (data) => ajax("post", "/farm-huyang/screen/slaughter-system/cost/save", data)
+
+
+// 检疫合格率 QuarantinePass
+export const reqQuarantinePass = () => ajax("post", "/farm-huyang/screen/slaughter-system/quarantine-pass/get")
+
+export const reqSetQuarantinePass = (data) => ajax("post", "/farm-huyang/screen/slaughter-system/quarantine-pass/save", data)
+
+
+// 入栏待宰 WaitSlaughter
+export const reqWaitSlaughter = () => ajax("post", "/farm-huyang/screen/slaughter-system/wait-slaughter/get")
+
+export const reqSetWaitSlaughter = (data) => ajax("post", "/farm-huyang/screen/slaughter-system/wait-slaughter/save", data)
+
+
+// 头部信息 Head
+export const reqHead = () => ajax("post", "/farm-huyang/screen/slaughter-system/head/get")
+
+export const reqSetHead = (data) => ajax("post", "/farm-huyang/screen/slaughter-system/head/save", data)
+
+
+// 产品库存 ProductInventory
+export const reqProductInventory = () => ajax("post", "/farm-huyang/screen/slaughter-system/product-inventory/get")
+
+export const reqSetProductInventory = (data) => ajax("post", "/farm-huyang/screen/slaughter-system/product-inventory/save", data)
+
+
+// 死淘数量 NumberDead
+export const reqNumberDead = () => ajax("post", "/farm-huyang/screen/slaughter-system/number-dead/get")
+
+export const reqSetNumberDead = (data) => ajax("post", "/farm-huyang/screen/slaughter-system/number-dead/save", data)
+
+
+// 排酸损耗 AcidLoss
+export const reqAcidLoss = () => ajax("post", "/farm-huyang/screen/slaughter-system/number-dead/get")
+
+export const reqSetAcidLoss = (data) => ajax("post", "/farm-huyang/screen/slaughter-system/number-dead/save", data)
+
+
+// 销售统计 SaleCount
+export const reqSaleCount = () => ajax("post", "/farm-huyang/screen/slaughter-system/sale-count/get")
+
+export const reqSetSaleCount = (data) => ajax("post", "/farm-huyang/screen/slaughter-system/sale-count/save", data)
+
+
+// 在场批次 OnBatch
+export const reqOnBatch = () => ajax("post", "/farm-huyang/screen/slaughter-system/on-batch/get")
+
+export const reqSetOnBatch = (data) => ajax("post", "/farm-huyang/screen/slaughter-system/on-batch/save", data)

+ 32 - 0
src/api/product.js

@@ -0,0 +1,32 @@
+import { ajax } from "../sdk/ajax";
+/* 产品管控 */
+
+
+// 羊皮价格 SheepSkin
+export const reqSheepSkin = () => ajax("post", "/farm-huyang/screen/product-system/sheep-skin/get")
+
+export const reqSetSheepSkin = (data) => ajax("post", "/farm-huyang/screen/product-system/sheep-skin/save", data)
+
+
+// 羊血价格 SheepBlood
+export const reqSheepBlood = () => ajax("post", "/farm-huyang/screen/product-system/sheep-blood/get")
+
+export const reqSetSheepBlood = (data) => ajax("post", "/farm-huyang/screen/product-system/sheep-blood/save", data)
+
+
+// 羊杂销售额 SheepMixed
+export const reqSheepMixed = () => ajax("post", "/farm-huyang/screen/product-system/sheep-mixed/get")
+
+export const reqSetSheepMixed = (data) => ajax("post", "/farm-huyang/screen/product-system/sheep-mixed/save", data)
+
+
+// 仓库使用率 WarehouseU
+export const reqWarehouseU = () => ajax("post", "/farm-huyang/screen/product-system/warehouse-utilization/get")
+
+export const reqSetWarehouseU = (data) => ajax("post", "/farm-huyang/screen/product-system/warehouse-utilization/save", data)
+
+
+// 头部信息 HeadSum
+export const reqHeadSum = () => ajax("post", "/farm-huyang/screen/product-system/head-sum/get")
+
+export const reqSetHeadSum = (data) => ajax("post", "/farm-huyang/screen/product-system/head-sum/save", data)

+ 95 - 0
src/router/routes.js

@@ -19,6 +19,24 @@ import sheepSale from '@/views/breed/sheepSale.vue'
 import sale from '@/views/breed/sale.vue'
 import environment from '@/views/breed/environment.vue'
 
+/* 屠宰管控 */
+import head from '@/views/butcher/head.vue'
+import quarantine from '@/views/butcher/quarantine.vue'
+import quarantinePass from '@/views/butcher/quarantinePass.vue'
+import waitSlaughter from '@/views/butcher/waitSlaughter.vue'
+import cost from '@/views/butcher/cost.vue'
+import productInventory from '@/views/butcher/productInventory.vue'
+import numberDead from '@/views/butcher/numberDead.vue'
+import acidLoss from '@/views/butcher/acidLoss.vue'
+import saleCount from '@/views/butcher/saleCount.vue'
+import onBatch from '@/views/butcher/onBatch.vue'
+
+/* 产品管控 */
+import headSum from '@/views/product/headSum.vue'
+import sheepSkin from '@/views/product/sheepSkin.vue'
+import sheepBlood from '@/views/product/sheepBlood.vue'
+import sheepMixed from '@/views/product/sheepMixed.vue'
+import warehouseUtilization from '@/views/product/warehouseUtilization.vue'
 
 
 export default [
@@ -108,6 +126,83 @@ export default [
 				name: 'environment',
 				component: environment
 			},
+			/* 屠宰管控 */
+			{
+				path: 'head',
+				name: 'head',
+				component: head
+			},
+			{
+				path: 'quarantine',
+				name: 'quarantine',
+				component: quarantine
+			},
+			{
+				path: 'quarantinePass',
+				name: 'quarantinePass',
+				component: quarantinePass
+			},
+			{
+				path: 'waitSlaughter',
+				name: 'waitSlaughter',
+				component: waitSlaughter
+			},
+			{
+				path: 'cost',
+				name: 'cost',
+				component: cost
+			},
+			{
+				path: 'productInventory',
+				name: 'productInventory',
+				component: productInventory
+			},
+			{
+				path: 'numberDead',
+				name: 'numberDead',
+				component: numberDead
+			},
+			{
+				path: 'acidLoss',
+				name: 'acidLoss',
+				component: acidLoss
+			},
+			{
+				path: 'saleCount',
+				name: 'saleCount',
+				component: saleCount
+			},
+			{
+				path: 'onBatch',
+				name: 'onBatch',
+				component: onBatch
+			},
+			/* 产品管控 */
+			{
+				path: 'headSum',
+				name: 'headSum',
+				component: headSum
+			},
+			{
+				path: 'sheepSkin',
+				name: 'sheepSkin',
+				component: sheepSkin
+			},
+			{
+				path: 'sheepBlood',
+				name: 'sheepBlood',
+				component: sheepBlood
+			},
+			{
+				path: 'sheepMixed',
+				name: 'sheepMixed',
+				component: sheepMixed
+			},
+			{
+				path: 'warehouseUtilization',
+				name: 'warehouseUtilization',
+				component: warehouseUtilization
+			},
 		]
 	},
 ]

+ 20 - 16
src/views/Home/mencCofig.js

@@ -81,40 +81,44 @@ export const menuData = [
         disabled: false, // 是否禁用
         childList: [
             {
-                optionName: '主要信息',
-                routerName: "workerInfo"
+                optionName: '头部信息',
+                routerName: "head"
             },
             {
                 optionName: '企业采购',
-                routerName: "firmInfo"
+                routerName: "quarantine"
             },
             {
                 optionName: '检疫合格率',
-                routerName: "pastureInfo"
+                routerName: "quarantinePass"
+            },
+            {
+                optionName: '入栏待宰',
+                routerName: "waitSlaughter"
             },
             {
                 optionName: '成本比例',
-                routerName: "areaInfo"
+                routerName: "cost"
             },
             {
                 optionName: '产品库存',
-                routerName: "workerInfo"
+                routerName: "productInventory"
             },
             {
                 optionName: '死淘数量',
-                routerName: "test"
+                routerName: "numberDead"
             },
             {
                 optionName: '排酸损耗',
-                routerName: "test"
+                routerName: "acidLoss"
             },
             {
                 optionName: '销售统计',
-                routerName: "test"
+                routerName: "saleCount"
             },
             {
                 optionName: '在场批次',
-                routerName: "test"
+                routerName: "onBatch"
             }
         ]
     },
@@ -124,24 +128,24 @@ export const menuData = [
         disabled: false, // 是否禁用
         childList: [
             {
-                optionName: '主要信息',
-                routerName: "workerInfo"
+                optionName: '头部信息',
+                routerName: "headSum"
             },
             {
                 optionName: '羊皮价格',
-                routerName: "firmInfo"
+                routerName: "sheepSkin"
             },
             {
                 optionName: '羊血价格',
-                routerName: "pastureInfo"
+                routerName: "sheepBlood"
             },
             {
                 optionName: '羊杂销售额',
-                routerName: "areaInfo"
+                routerName: "sheepMixed"
             },
             {
                 optionName: '仓库使用率',
-                routerName: "workerInfo"
+                routerName: "warehouseUtilization"
             },
             {
                 optionName: '产品库存',

+ 3 - 2
src/views/breed/ageDistribute.vue

@@ -72,10 +72,11 @@ export default {
             this.$confirm("确定更新信息?").then(() => {
                 reqSetAgeDistribute(this.form)
                     .then(res => {
-                        if (res.errcode) {
-                            this.$message.error("更新失败!");
+                        if (res.errCode) {
+                            this.$message.error(res.errMsg);
                         } else {
                             this.$message.success("更新成功!");
+                            this.getAgeDistribute();
                         }
                     })
                     .catch(err => {

+ 3 - 2
src/views/breed/breed_info.vue

@@ -50,10 +50,11 @@ export default {
             this.$confirm("确定更新信息?").then(() => {
                 reqSetBreed_info(this.form)
                     .then(res => {
-                        if (res.errcode) {
-                            this.$message.error("更新失败!");
+                        if (res.errCode) {
+                            this.$message.error(res.errMsg);
                         } else {
                             this.$message.success("更新成功!");
+                            this.getBreed_info();
                         }
                     })
                     .catch(err => {

+ 3 - 2
src/views/breed/environment.vue

@@ -47,10 +47,11 @@ export default {
                     humidity: humidity.join(",")
                 })
                     .then(res => {
-                        if (res.errcode) {
-                            this.$message.error("更新失败!");
+                        if (res.errCode) {
+                            this.$message.error(res.errMsg);
                         } else {
                             this.$message.success("更新成功!");
+                            this.getEnvironment();
                         }
                     })
                     .catch(err => {

+ 3 - 2
src/views/breed/genealogy.vue

@@ -58,9 +58,10 @@ export default {
             this.$confirm("确定更新信息?").then(() => {
                 reqSetGenealogy(this.form)
                     .then(res => {
-                        if (res.errcode) {
-                            this.$message.error("更新失败!");
+                        if (res.errCode) {
+                            this.$message.error(res.errMsg);
                         } else {
+                            this.getGenealogy();
                             this.$message.success("更新成功!");
                         }
                     })

+ 3 - 2
src/views/breed/lambDistribute.vue

@@ -47,9 +47,10 @@ export default {
             this.$confirm("确定更新信息?").then(() => {
                 reqSetLambDistribute(this.form)
                     .then(res => {
-                        if (res.errcode) {
-                            this.$message.error("更新失败!");
+                        if (res.errCode) {
+                            this.$message.error(res.errMsg);
                         } else {
+                            this.getLambDistribute();
                             this.$message.success("更新成功!");
                         }
                     })

+ 3 - 2
src/views/breed/poopSale.vue

@@ -30,9 +30,10 @@ export default {
             this.$confirm("确定更新信息?").then(() => {
                 reqSetPoopSale({ time: time.join(","), money: money.join(",") })
                     .then(res => {
-                        if (res.errcode) {
-                            this.$message.error("更新失败!");
+                        if (res.errCode) {
+                            this.$message.error(res.errMsg);
                         } else {
+                            this.getPoopSale();
                             this.$message.success("更新成功!");
                         }
                     })

+ 3 - 2
src/views/breed/sale.vue

@@ -59,9 +59,10 @@ export default {
                     thirdMoney: thirdMoney.join(",")
                 })
                     .then(res => {
-                        if (res.errcode) {
-                            this.$message.error("更新失败!");
+                        if (res.errCode) {
+                            this.$message.error(res.errMsg);
                         } else {
+                            this.getSale();
                             this.$message.success("更新成功!");
                         }
                     })

+ 3 - 2
src/views/breed/sheepDistribute.vue

@@ -45,9 +45,10 @@ export default {
             this.$confirm("确定更新信息?").then(() => {
                 reqSetSheepDistribute(this.form)
                     .then(res => {
-                        if (res.errcode) {
-                            this.$message.error("更新失败!");
+                        if (res.errCode) {
+                            this.$message.error(res.errMsg);
                         } else {
+                            this.getSheepDistribute();
                             this.$message.success("更新成功!");
                         }
                     })

+ 3 - 2
src/views/breed/sheepLivestock.vue

@@ -50,9 +50,10 @@ export default {
             this.$confirm("确定更新信息?").then(() => {
                 reqSetSheepLivestock(this.form)
                     .then(res => {
-                        if (res.errcode) {
-                            this.$message.error("更新失败!");
+                        if (res.errCode) {
+                            this.$message.error(res.errMsg);
                         } else {
+                            this.getSheepLivestock();
                             this.$message.success("更新成功!");
                         }
                     })

+ 3 - 2
src/views/breed/sheepSale.vue

@@ -30,9 +30,10 @@ export default {
             this.$confirm("确定更新信息?").then(() => {
                 reqSetSheepSale({ month: month.join(","), number: number.join(",") })
                     .then(res => {
-                        if (res.errcode) {
-                            this.$message.error("更新失败!");
+                        if (res.errCode) {
+                            this.$message.error(res.errMsg);
                         } else {
+                            this.getSheepSale();
                             this.$message.success("更新成功!");
                         }
                     })

+ 3 - 2
src/views/breed/warn.vue

@@ -34,9 +34,10 @@ export default {
             this.$confirm("确定更新信息?").then(() => {
                 reqSetWarn({ content: data.join("--") })
                     .then(res => {
-                        if (res.errcode) {
-                            this.$message.error("更新失败!");
+                        if (res.errCode) {
+                            this.$message.error(res.errMsg);
                         } else {
+                            this.getWarn();
                             this.$message.success("更新成功!");
                         }
                     })

+ 73 - 0
src/views/butcher/acidLoss.vue

@@ -0,0 +1,73 @@
+<template>
+    <!-- acidLoss -->
+    <div class="AcidLoss">
+        <h2 style="margin-bottom: 20px;padding-bottom:7px;border-bottom:2px solid #ddd">排酸损耗</h2>
+        <formList v-model="list" :title="['时间','值(%)']" inputWidth="200px"></formList>
+        <el-button style="margin-left:510px" type="primary" @click="onSubmit">更新信息</el-button>
+    </div>
+</template>
+
+<script>
+import { reqAcidLoss, reqSetAcidLoss } from "@/api/butcher.js";
+export default {
+    name: "AcidLoss",
+    data() {
+        return {
+            id: '-1',
+            list: [{ keyList: "" , valueList: ""}]
+        };
+    },
+    created() {
+        this.getAcidLoss();
+    },
+    methods: {
+        onSubmit() {
+            let keyList = [];
+            let valueList = [];
+            this.list.forEach(item => {
+                keyList.push(item.keyList);
+                valueList.push(item.valueList);
+            });
+            this.$confirm("确定更新信息?").then(() => {
+                reqSetAcidLoss({id: this.id, keyList: keyList.toString(), valueList: valueList.toString()})
+                    .then(res => {
+                        console.log(res);
+                        if (res.errCode) {
+                            this.$message.error(res.errMsg);
+                        } else {
+                            this.getAcidLoss();
+                            this.$message.success("更新成功!");
+                        }
+                    })
+                    .catch(err => {
+                        console.log(err);
+                        this.$message.error("更新失败!");
+                    });
+            });
+        },
+        getAcidLoss() {
+            reqAcidLoss()
+                .then(res => {
+                    this.id = res.id
+                    let arr2 = res.conf['valueList']
+                    this.list = [];
+                    res.conf['keyList'].forEach((item, i) => {
+                        this.list.push({ 'keyList': item , 'valueList': arr2[i]});
+                    });
+                })
+                .catch(err => {
+                    console.error(err);
+                });
+        }
+    }
+};
+</script>
+
+<style lang="scss" scoped>
+.AcidLoss {
+    .left {
+        width: 400px;
+        margin-left: 50px;
+    }
+}
+</style>

+ 109 - 0
src/views/butcher/cost.vue

@@ -0,0 +1,109 @@
+<template>
+    <!-- cost -->
+    <div class="Cost">
+        <h2 style="margin-bottom: 20px;padding-bottom:7px;border-bottom:2px solid #ddd">成本比例</h2>
+        <div class="left">
+            <el-form ref="form" :model="form" label-width="140px">
+                <el-form-item label="总和">
+                    <h1>{{ result }}%</h1>
+                </el-form-item>
+                <el-form-item label="购买成本(%)">
+                    <el-input v-model="form.purchaseCost"></el-input>
+                </el-form-item>
+                <el-form-item label="运输成本(%)">
+                    <el-input v-model="form.transportationCost"></el-input>
+                </el-form-item>
+                <el-form-item label="人工成本(%)">
+                    <el-input v-model="form.laborCost"></el-input>
+                </el-form-item>
+                <el-form-item label="消毒成本(%)">
+                    <el-input v-model="form.disinfectionCost"></el-input>
+                </el-form-item>
+                <el-form-item label="折旧成本(%)">
+                    <el-input v-model="form.depreciationCost"></el-input>
+                </el-form-item>
+                <el-form-item label="排酸损耗(%)">
+                    <el-input v-model="form.acidLoss"></el-input>
+                </el-form-item>
+                <el-form-item>
+                    <el-button style="margin-left:60%" type="primary" @click="onSubmit">更新信息</el-button>
+                </el-form-item>
+            </el-form>
+        </div>
+    </div>
+</template>
+
+<script>
+import { reqCost, reqSetCost } from "@/api/butcher.js";
+export default {
+    name: "Cost",
+    data() {
+        return {
+            form: {
+                id: "-1",
+                purchaseCost: "",
+                transportationCost: "",
+                laborCost: "",
+                disinfectionCost: "",
+                depreciationCost: "",
+                acidLoss: ""
+            }
+        };
+    },
+    created() {
+        this.getCost();
+    },
+    computed: {
+        result() {
+            return (
+                1*this.form.purchaseCost +
+                1*this.form.transportationCost +
+                1*this.form.laborCost +
+                1*this.form.disinfectionCost +
+                1*this.form.disinfectionCost +
+                1*this.form.depreciationCost +
+                1*this.form.acidLoss
+            );
+        }
+    },
+    methods: {
+        onSubmit() {
+            this.$confirm("确定更新信息?").then(() => {
+                console.log(this.form);
+                reqSetCost(this.form)
+                    .then(res => {
+                        if (res.errCode) {
+                            this.$message.error(res.errMsg);
+                        } else {
+                            this.getCost();
+                            this.$message.success("更新成功!");
+                        }
+                    })
+                    .catch(err => {
+                        console.log(err);
+                        this.$message.error("更新失败!");
+                    });
+            });
+        },
+        getCost() {
+            reqCost()
+                .then(res => {
+                    this.form = res.conf;
+                    this.form.id = res.id;
+                })
+                .catch(err => {
+                    console.error(err);
+                });
+        }
+    }
+};
+</script>
+
+<style lang="scss" scoped>
+.Cost {
+    .left {
+        width: 400px;
+        margin-left: 50px;
+    }
+}
+</style>

+ 89 - 0
src/views/butcher/head.vue

@@ -0,0 +1,89 @@
+<template>
+    <!-- head -->
+    <div class="Head">
+        <h2 style="margin-bottom: 20px;padding-bottom:7px;border-bottom:2px solid #ddd">头部信息</h2>
+        <div class="left">
+            <el-form ref="form" :model="form" label-width="140px">
+                <el-form-item label="总存栏待宰">
+                    <el-input v-model="form.carcass"></el-input>
+                </el-form-item>
+                <el-form-item label="未检疫数量">
+                    <el-input v-model="form.productInventory"></el-input>
+                </el-form-item>
+                <el-form-item label="胴体数量">
+                    <el-input v-model="form.totalSlaughter"></el-input>
+                </el-form-item>
+                <el-form-item label="产品库存">
+                    <el-input v-model="form.noQuarantined"></el-input>
+                </el-form-item>
+                <el-form-item label="出肉率">
+                    <el-input v-model="form.meatRate"></el-input>
+                </el-form-item>
+                <el-form-item>
+                    <el-button style="margin-left:60%" type="primary" @click="onSubmit">更新信息</el-button>
+                </el-form-item>
+            </el-form>
+        </div>
+    </div>
+</template>
+
+<script>
+import { reqHead, reqSetHead } from "@/api/butcher.js";
+export default {
+    name: "Head",
+    data() {
+        return {
+            form: {
+                id: "-1",
+                carcass: "",
+                productInventory: "",
+                totalSlaughter: "",
+                noQuarantined: "",
+                meatRate: ""
+            }
+        };
+    },
+    created() {
+        this.getHead();
+    },
+    methods: {
+        onSubmit() {
+            this.$confirm("确定更新信息?").then(() => {
+                console.log(this.form);
+                reqSetHead(this.form)
+                    .then(res => {
+                        if (res.errCode) {
+                            this.$message.error(res.errMsg);
+                        } else {
+                            this.getHead();
+                            this.$message.success("更新成功!");
+                        }
+                    })
+                    .catch(err => {
+                        console.log(err);
+                        this.$message.error("更新失败!");
+                    });
+            });
+        },
+        getHead() {
+            reqHead()
+                .then(res => {
+                    this.form = res.conf;
+                    this.form.id = res.id;
+                })
+                .catch(err => {
+                    console.error(err);
+                });
+        }
+    }
+};
+</script>
+
+<style lang="scss" scoped>
+.Head {
+    .left {
+        width: 400px;
+        margin-left: 50px;
+    }
+}
+</style>

+ 73 - 0
src/views/butcher/numberDead.vue

@@ -0,0 +1,73 @@
+<template>
+    <!-- numberDead -->
+    <div class="NumberDead">
+        <h2 style="margin-bottom: 20px;padding-bottom:7px;border-bottom:2px solid #ddd">死淘数量</h2>
+        <formList v-model="list" :title="['时间','死淘数量']" inputWidth="200px"></formList>
+        <el-button style="margin-left:510px" type="primary" @click="onSubmit">更新信息</el-button>
+    </div>
+</template>
+
+<script>
+import { reqNumberDead, reqSetNumberDead } from "@/api/butcher.js";
+export default {
+    name: "NumberDead",
+    data() {
+        return {
+            id: '-1',
+            list: [{ keyList: "" , valueList: ""}]
+        };
+    },
+    created() {
+        this.getNumberDead();
+    },
+    methods: {
+        onSubmit() {
+            let keyList = [];
+            let valueList = [];
+            this.list.forEach(item => {
+                keyList.push(item.keyList);
+                valueList.push(item.valueList);
+            });
+            this.$confirm("确定更新信息?").then(() => {
+                reqSetNumberDead({id: this.id, keyList: keyList.toString(), valueList: valueList.toString()})
+                    .then(res => {
+                        console.log(res);
+                        if (res.errCode) {
+                            this.$message.error(res.errMsg);
+                        } else {
+                            this.getNumberDead();
+                            this.$message.success("更新成功!");
+                        }
+                    })
+                    .catch(err => {
+                        console.log(err);
+                        this.$message.error("更新失败!");
+                    });
+            });
+        },
+        getNumberDead() {
+            reqNumberDead()
+                .then(res => {
+                    this.id = res.id
+                    let arr2 = res.conf['valueList']
+                    this.list = [];
+                    res.conf['keyList'].forEach((item, i) => {
+                        this.list.push({ 'keyList': item , 'valueList': arr2[i]});
+                    });
+                })
+                .catch(err => {
+                    console.error(err);
+                });
+        }
+    }
+};
+</script>
+
+<style lang="scss" scoped>
+.NumberDead {
+    .left {
+        width: 400px;
+        margin-left: 50px;
+    }
+}
+</style>

+ 73 - 0
src/views/butcher/onBatch.vue

@@ -0,0 +1,73 @@
+<template>
+    <!-- onBatch -->
+    <div class="SaleCount">
+        <h2 style="margin-bottom: 20px;padding-bottom:7px;border-bottom:2px solid #ddd">在场批次</h2>
+        <formList v-model="list" :title="['时间','数量']" inputWidth="200px"></formList>
+        <el-button style="margin-left:510px" type="primary" @click="onSubmit">更新信息</el-button>
+    </div>
+</template>
+
+<script>
+import { reqSaleCount, reqSetSaleCount } from "@/api/butcher.js";
+export default {
+    name: "SaleCount",
+    data() {
+        return {
+            id: '-1',
+            list: [{ keyList: "" , valueList: ""}]
+        };
+    },
+    created() {
+        this.getSaleCount();
+    },
+    methods: {
+        onSubmit() {
+            let keyList = [];
+            let valueList = [];
+            this.list.forEach(item => {
+                keyList.push(item.keyList);
+                valueList.push(item.valueList);
+            });
+            this.$confirm("确定更新信息?").then(() => {
+                reqSetSaleCount({id: this.id, keyList: keyList.toString(), valueList: valueList.toString()})
+                    .then(res => {
+                        console.log(res);
+                        if (res.errCode) {
+                            this.$message.error(res.errMsg);
+                        } else {
+                            this.getSaleCount();
+                            this.$message.success("更新成功!");
+                        }
+                    })
+                    .catch(err => {
+                        console.log(err);
+                        this.$message.error("更新失败!");
+                    });
+            });
+        },
+        getSaleCount() {
+            reqSaleCount()
+                .then(res => {
+                    this.id = res.id
+                    let arr2 = res.conf['valueList']
+                    this.list = [];
+                    res.conf['keyList'].forEach((item, i) => {
+                        this.list.push({ 'keyList': item , 'valueList': arr2[i]});
+                    });
+                })
+                .catch(err => {
+                    console.error(err);
+                });
+        }
+    }
+};
+</script>
+
+<style lang="scss" scoped>
+.SaleCount {
+    .left {
+        width: 400px;
+        margin-left: 50px;
+    }
+}
+</style>

+ 73 - 0
src/views/butcher/productInventory.vue

@@ -0,0 +1,73 @@
+<template>
+    <!-- productInventory -->
+    <div class="ProductInventory">
+        <h2 style="margin-bottom: 20px;padding-bottom:7px;border-bottom:2px solid #ddd">产品库存</h2>
+        <formList v-model="list" :title="['产品名','库存数量']" inputWidth="200px"></formList>
+        <el-button style="margin-left:510px" type="primary" @click="onSubmit">更新信息</el-button>
+    </div>
+</template>
+
+<script>
+import { reqProductInventory, reqSetProductInventory } from "@/api/butcher.js";
+export default {
+    name: "ProductInventory",
+    data() {
+        return {
+            id: '-1',
+            list: [{ keyList: "" , valueList: ""}]
+        };
+    },
+    created() {
+        this.getProductInventory();
+    },
+    methods: {
+        onSubmit() {
+            let keyList = [];
+            let valueList = [];
+            this.list.forEach(item => {
+                keyList.push(item.keyList);
+                valueList.push(item.valueList);
+            });
+            this.$confirm("确定更新信息?").then(() => {
+                reqSetProductInventory({id: this.id, keyList: keyList.toString(), valueList: valueList.toString()})
+                    .then(res => {
+                        console.log(res);
+                        if (res.errCode) {
+                            this.$message.error(res.errMsg);
+                        } else {
+                            this.getProductInventory();
+                            this.$message.success("更新成功!");
+                        }
+                    })
+                    .catch(err => {
+                        console.log(err);
+                        this.$message.error("更新失败!");
+                    });
+            });
+        },
+        getProductInventory() {
+            reqProductInventory()
+                .then(res => {
+                    this.id = res.id
+                    let arr2 = res.conf['valueList']
+                    this.list = [];
+                    res.conf['keyList'].forEach((item, i) => {
+                        this.list.push({ 'keyList': item , 'valueList': arr2[i]});
+                    });
+                })
+                .catch(err => {
+                    console.error(err);
+                });
+        }
+    }
+};
+</script>
+
+<style lang="scss" scoped>
+.ProductInventory {
+    .left {
+        width: 400px;
+        margin-left: 50px;
+    }
+}
+</style>

+ 81 - 0
src/views/butcher/quarantine.vue

@@ -0,0 +1,81 @@
+<template>
+    <!-- quarantine -->
+    <div class="Quarantine">
+        <h2 style="margin-bottom: 20px;padding-bottom:7px;border-bottom:2px solid #ddd">零散信息</h2>
+        <div class="left">
+            <el-form ref="form" :model="form" label-width="140px">
+                <el-form-item label="未检疫">
+                    <el-input v-model="form.noQuarantined"></el-input>
+                </el-form-item>
+                <el-form-item label="已检疫">
+                    <el-input v-model="form.quarantined"></el-input>
+                </el-form-item>
+                <el-form-item label="总存栏">
+                    <el-input v-model="form.total"></el-input>
+                </el-form-item>
+                <el-form-item>
+                    <el-button style="margin-left:60%" type="primary" @click="onSubmit">更新信息</el-button>
+                </el-form-item>
+            </el-form>
+        </div>
+    </div>
+</template>
+
+<script>
+import { reqQuarantine, reqSetQuarantine } from "@/api/butcher.js";
+export default {
+    name: "Quarantine",
+    data() {
+        return {
+            form: {
+                id: '-1',
+                noQuarantined: "",
+                quarantined: "",
+                total: ""
+            }
+        };
+    },
+    created() {
+        this.getQuarantine();
+    },
+    methods: {
+        onSubmit() {
+            this.$confirm("确定更新信息?").then(() => {
+                console.log(this.form)
+                reqSetQuarantine(this.form)
+                    .then(res => {
+                        if (res.errCode) {
+                            this.$message.error(res.errMsg);
+                        } else {
+                            this.getQuarantine();
+                            this.$message.success("更新成功!");
+                        }
+                    })
+                    .catch(err => {
+                        console.log(err);
+                        this.$message.error("更新失败!");
+                    });
+            });
+        },
+        getQuarantine() {
+            reqQuarantine()
+                .then(res => {
+                    this.form = res.conf;
+                    this.form.id = res.id
+                })
+                .catch(err => {
+                    console.error(err);
+                });
+        }
+    }
+};
+</script>
+
+<style lang="scss" scoped>
+.Quarantine {
+    .left {
+        width: 400px;
+        margin-left: 50px;
+    }
+}
+</style>

+ 73 - 0
src/views/butcher/quarantinePass.vue

@@ -0,0 +1,73 @@
+<template>
+    <!-- quarantinePass -->
+    <div class="QuarantinePass">
+        <h2 style="margin-bottom: 20px;padding-bottom:7px;border-bottom:2px solid #ddd">检疫合格率</h2>
+        <formList v-model="list" :title="['批次','值(%)']" inputWidth="200px"></formList>
+        <el-button style="margin-left:510px" type="primary" @click="onSubmit">更新信息</el-button>
+    </div>
+</template>
+
+<script>
+import { reqQuarantinePass, reqSetQuarantinePass } from "@/api/butcher.js";
+export default {
+    name: "QuarantinePass",
+    data() {
+        return {
+            id: '-1',
+            list: [{ keyList: "" , valueList: ""}]
+        };
+    },
+    created() {
+        this.getQuarantinePass();
+    },
+    methods: {
+        onSubmit() {
+            let keyList = [];
+            let valueList = [];
+            this.list.forEach(item => {
+                keyList.push(item.keyList);
+                valueList.push(item.valueList);
+            });
+            this.$confirm("确定更新信息?").then(() => {
+                reqSetQuarantinePass({id: this.id, keyList: keyList.toString(), valueList: valueList.toString()})
+                    .then(res => {
+                        console.log(res);
+                        if (res.errCode) {
+                            this.$message.error(res.errMsg);
+                        } else {
+                            this.getQuarantinePass();
+                            this.$message.success("更新成功!");
+                        }
+                    })
+                    .catch(err => {
+                        console.log(err);
+                        this.$message.error("更新失败!");
+                    });
+            });
+        },
+        getQuarantinePass() {
+            reqQuarantinePass()
+                .then(res => {
+                    this.id = res.id
+                    let arr2 = res.conf['valueList']
+                    this.list = [];
+                    res.conf['keyList'].forEach((item, i) => {
+                        this.list.push({ 'keyList': item , 'valueList': arr2[i]});
+                    });
+                })
+                .catch(err => {
+                    console.error(err);
+                });
+        }
+    }
+};
+</script>
+
+<style lang="scss" scoped>
+.QuarantinePass {
+    .left {
+        width: 400px;
+        margin-left: 50px;
+    }
+}
+</style>

+ 73 - 0
src/views/butcher/saleCount.vue

@@ -0,0 +1,73 @@
+<template>
+    <!-- saleCount -->
+    <div class="SaleCount">
+        <h2 style="margin-bottom: 20px;padding-bottom:7px;border-bottom:2px solid #ddd">销售统计</h2>
+        <formList v-model="list" :title="['时间','值(万元)']" inputWidth="200px"></formList>
+        <el-button style="margin-left:510px" type="primary" @click="onSubmit">更新信息</el-button>
+    </div>
+</template>
+
+<script>
+import { reqSaleCount, reqSetSaleCount } from "@/api/butcher.js";
+export default {
+    name: "SaleCount",
+    data() {
+        return {
+            id: '-1',
+            list: [{ keyList: "" , valueList: ""}]
+        };
+    },
+    created() {
+        this.getSaleCount();
+    },
+    methods: {
+        onSubmit() {
+            let keyList = [];
+            let valueList = [];
+            this.list.forEach(item => {
+                keyList.push(item.keyList);
+                valueList.push(item.valueList);
+            });
+            this.$confirm("确定更新信息?").then(() => {
+                reqSetSaleCount({id: this.id, keyList: keyList.toString(), valueList: valueList.toString()})
+                    .then(res => {
+                        console.log(res);
+                        if (res.errCode) {
+                            this.$message.error(res.errMsg);
+                        } else {
+                            this.getSaleCount();
+                            this.$message.success("更新成功!");
+                        }
+                    })
+                    .catch(err => {
+                        console.log(err);
+                        this.$message.error("更新失败!");
+                    });
+            });
+        },
+        getSaleCount() {
+            reqSaleCount()
+                .then(res => {
+                    this.id = res.id
+                    let arr2 = res.conf['valueList']
+                    this.list = [];
+                    res.conf['keyList'].forEach((item, i) => {
+                        this.list.push({ 'keyList': item , 'valueList': arr2[i]});
+                    });
+                })
+                .catch(err => {
+                    console.error(err);
+                });
+        }
+    }
+};
+</script>
+
+<style lang="scss" scoped>
+.SaleCount {
+    .left {
+        width: 400px;
+        margin-left: 50px;
+    }
+}
+</style>

+ 69 - 0
src/views/butcher/waitSlaughter.vue

@@ -0,0 +1,69 @@
+<template>
+    <!-- waitSlaughter -->
+    <div class="WaitSlaughter">
+        <h2 style="margin-bottom: 20px;padding-bottom:7px;border-bottom:2px solid #ddd">入栏待宰</h2>
+        <formList v-model="list" :title="['待宰信息']" inputWidth="600px" type="textarea"></formList>
+        <el-button style="margin-left:510px" type="primary" @click="onSubmit">更新信息</el-button>
+    </div>
+</template>
+
+<script>
+import { reqWaitSlaughter, reqSetWaitSlaughter } from "@/api/butcher.js";
+export default {
+    name: "WaitSlaughter",
+    data() {
+        return {
+            id: '-1',
+            list: [{ dataList: ""}]
+        };
+    },
+    created() {
+        this.getWaitSlaughter();
+    },
+    methods: {
+        onSubmit() {
+            let dataList = [];
+            this.list.forEach(item => {
+                dataList.push(item.dataList);
+            });
+            this.$confirm("确定更新信息?").then(() => {
+                reqSetWaitSlaughter({id: this.id, dataList: dataList.toString()})
+                    .then(res => {
+                        if (res.errCode) {
+                            this.$message.error(res.errMsg);
+                        } else {
+                            this.getWaitSlaughter();
+                            this.$message.success("更新成功!");
+                        }
+                    })
+                    .catch(err => {
+                        console.log(err);
+                        this.$message.error("更新失败!");
+                    });
+            });
+        },
+        getWaitSlaughter() {
+            reqWaitSlaughter()
+                .then(res => {
+                    this.id = res.id
+                    this.list = [];
+                    res.conf['dataList'].forEach((item, i) => {
+                        this.list.push({ 'dataList': item });
+                    });
+                })
+                .catch(err => {
+                    console.error(err);
+                });
+        }
+    }
+};
+</script>
+
+<style lang="scss" scoped>
+.WaitSlaughter {
+    .left {
+        width: 400px;
+        margin-left: 50px;
+    }
+}
+</style>

+ 85 - 0
src/views/product/headSum.vue

@@ -0,0 +1,85 @@
+<template>
+    <!-- HeadSum -->
+    <div class="HeadSum">
+        <h2 style="margin-bottom: 20px;padding-bottom:7px;border-bottom:2px solid #ddd">仓库使用率</h2>
+        <div class="left">
+            <el-form ref="form" :model="form" label-width="140px">
+                <el-form-item label="产品总数">
+                    <el-input v-model="form.totalProduct"></el-input>
+                </el-form-item>
+                <el-form-item label="今日出库数">
+                    <el-input v-model="form.stockOut"></el-input>
+                </el-form-item>
+                <el-form-item label="今日入库数">
+                    <el-input v-model="form.stockIn"></el-input>
+                </el-form-item>
+                <el-form-item>
+                    <el-button style="margin-left:60%" type="primary" @click="onSubmit">更新信息</el-button>
+                </el-form-item>
+            </el-form>
+        </div>
+    </div>
+</template>
+
+<script>
+import {
+    reqHeadSum,
+    reqSetHeadSum
+} from "@/api/product.js";
+export default {
+    name: "HeadSum",
+    data() {
+        return {
+            form: {
+                id: "-1",
+                totalProduct: "",
+                stockOut: "",
+                stockIn: ""
+            }
+        };
+    },
+    created() {
+        this.getHeadSum();
+    },
+    methods: {
+        onSubmit() {
+            this.$confirm("确定更新信息?").then(() => {
+                console.log(this.form);
+                reqSetHeadSum(this.form)
+                    .then(res => {
+                        if (res.errCode) {
+                            this.$message.error(res.errMsg);
+                        } else {
+                            this.getHeadSum();
+                            this.$message.success("更新成功!");
+                        }
+                    })
+                    .catch(err => {
+                        console.log(err);
+                        this.$message.error("更新失败!");
+                    });
+            });
+        },
+        getHeadSum() {
+            console.log("99999999")
+            reqHeadSum()
+                .then(res => {
+                    this.form = res.conf;
+                    this.form.id = res.id;
+                })
+                .catch(err => {
+                    console.error(err);
+                });
+        }
+    }
+};
+</script>
+
+<style lang="scss" scoped>
+.HeadSum {
+    .left {
+        width: 400px;
+        margin-left: 50px;
+    }
+}
+</style>

+ 73 - 0
src/views/product/sheepBlood.vue

@@ -0,0 +1,73 @@
+<template>
+    <!-- sheepBlood -->
+    <div class="SheepBlood">
+        <h2 style="margin-bottom: 20px;padding-bottom:7px;border-bottom:2px solid #ddd">羊皮价格</h2>
+        <formList v-model="list" :title="['时间','价格(元)']" inputWidth="200px"></formList>
+        <el-button style="margin-left:510px" type="primary" @click="onSubmit">更新信息</el-button>
+    </div>
+</template>
+
+<script>
+import { reqSheepBlood, reqSetSheepBlood } from "@/api/product.js";
+export default {
+    name: "SheepBlood",
+    data() {
+        return {
+            id: '-1',
+            list: [{ keyList: "" , valueList: ""}]
+        };
+    },
+    created() {
+        this.getSheepBlood();
+    },
+    methods: {
+        onSubmit() {
+            let keyList = [];
+            let valueList = [];
+            this.list.forEach(item => {
+                keyList.push(item.keyList);
+                valueList.push(item.valueList);
+            });
+            this.$confirm("确定更新信息?").then(() => {
+                reqSetSheepBlood({id: this.id, keyList: keyList.toString(), valueList: valueList.toString()})
+                    .then(res => {
+                        console.log(res);
+                        if (res.errCode) {
+                            this.$message.error(res.errMsg);
+                        } else {
+                            this.getSheepBlood();
+                            this.$message.success("更新成功!");
+                        }
+                    })
+                    .catch(err => {
+                        console.log(err);
+                        this.$message.error("更新失败!");
+                    });
+            });
+        },
+        getSheepBlood() {
+            reqSheepBlood()
+                .then(res => {
+                    this.id = res.id
+                    let arr2 = res.conf['valueList']
+                    this.list = [];
+                    res.conf['keyList'].forEach((item, i) => {
+                        this.list.push({ 'keyList': item , 'valueList': arr2[i]});
+                    });
+                })
+                .catch(err => {
+                    console.error(err);
+                });
+        }
+    }
+};
+</script>
+
+<style lang="scss" scoped>
+.SheepBlood {
+    .left {
+        width: 400px;
+        margin-left: 50px;
+    }
+}
+</style>

+ 73 - 0
src/views/product/sheepMixed.vue

@@ -0,0 +1,73 @@
+<template>
+    <!-- sheepMixed -->
+    <div class="SheepMixed">
+        <h2 style="margin-bottom: 20px;padding-bottom:7px;border-bottom:2px solid #ddd">羊杂销售额</h2>
+        <formList v-model="list" :title="['时间','销售额(元)']" inputWidth="200px" titleWidth="120px"></formList>
+        <el-button style="margin-left:510px" type="primary" @click="onSubmit">更新信息</el-button>
+    </div>
+</template>
+
+<script>
+import { reqSheepMixed, reqSetSheepMixed } from "@/api/product.js";
+export default {
+    name: "SheepMixed",
+    data() {
+        return {
+            id: '-1',
+            list: [{ keyList: "" , valueList: ""}]
+        };
+    },
+    created() {
+        this.getSheepMixed();
+    },
+    methods: {
+        onSubmit() {
+            let keyList = [];
+            let valueList = [];
+            this.list.forEach(item => {
+                keyList.push(item.keyList);
+                valueList.push(item.valueList);
+            });
+            this.$confirm("确定更新信息?").then(() => {
+                reqSetSheepMixed({id: this.id, keyList: keyList.toString(), valueList: valueList.toString()})
+                    .then(res => {
+                        console.log(res);
+                        if (res.errCode) {
+                            this.$message.error(res.errMsg);
+                        } else {
+                            this.getSheepMixed();
+                            this.$message.success("更新成功!");
+                        }
+                    })
+                    .catch(err => {
+                        console.log(err);
+                        this.$message.error("更新失败!");
+                    });
+            });
+        },
+        getSheepMixed() {
+            reqSheepMixed()
+                .then(res => {
+                    this.id = res.id
+                    let arr2 = res.conf['valueList']
+                    this.list = [];
+                    res.conf['keyList'].forEach((item, i) => {
+                        this.list.push({ 'keyList': item , 'valueList': arr2[i]});
+                    });
+                })
+                .catch(err => {
+                    console.error(err);
+                });
+        }
+    }
+};
+</script>
+
+<style lang="scss" scoped>
+.SheepMixed {
+    .left {
+        width: 400px;
+        margin-left: 50px;
+    }
+}
+</style>

+ 73 - 0
src/views/product/sheepSkin.vue

@@ -0,0 +1,73 @@
+<template>
+    <!-- sheepSkin -->
+    <div class="SheepSkin">
+        <h2 style="margin-bottom: 20px;padding-bottom:7px;border-bottom:2px solid #ddd">羊皮价格</h2>
+        <formList v-model="list" :title="['时间','价格(元)']" inputWidth="200px"></formList>
+        <el-button style="margin-left:510px" type="primary" @click="onSubmit">更新信息</el-button>
+    </div>
+</template>
+
+<script>
+import { reqSheepSkin, reqSetSheepSkin } from "@/api/product.js";
+export default {
+    name: "SheepSkin",
+    data() {
+        return {
+            id: '-1',
+            list: [{ keyList: "" , valueList: ""}]
+        };
+    },
+    created() {
+        this.getSheepSkin();
+    },
+    methods: {
+        onSubmit() {
+            let keyList = [];
+            let valueList = [];
+            this.list.forEach(item => {
+                keyList.push(item.keyList);
+                valueList.push(item.valueList);
+            });
+            this.$confirm("确定更新信息?").then(() => {
+                reqSetSheepSkin({id: this.id, keyList: keyList.toString(), valueList: valueList.toString()})
+                    .then(res => {
+                        console.log(res);
+                        if (res.errCode) {
+                            this.$message.error(res.errMsg);
+                        } else {
+                            this.getSheepSkin();
+                            this.$message.success("更新成功!");
+                        }
+                    })
+                    .catch(err => {
+                        console.log(err);
+                        this.$message.error("更新失败!");
+                    });
+            });
+        },
+        getSheepSkin() {
+            reqSheepSkin()
+                .then(res => {
+                    this.id = res.id
+                    let arr2 = res.conf['valueList']
+                    this.list = [];
+                    res.conf['keyList'].forEach((item, i) => {
+                        this.list.push({ 'keyList': item , 'valueList': arr2[i]});
+                    });
+                })
+                .catch(err => {
+                    console.error(err);
+                });
+        }
+    }
+};
+</script>
+
+<style lang="scss" scoped>
+.SheepSkin {
+    .left {
+        width: 400px;
+        margin-left: 50px;
+    }
+}
+</style>

+ 85 - 0
src/views/product/warehouseUtilization.vue

@@ -0,0 +1,85 @@
+<template>
+    <!-- headSum -->
+    <div class="WarehouseU">
+        <h2 style="margin-bottom: 20px;padding-bottom:7px;border-bottom:2px solid #ddd">头部信息</h2>
+        <div class="left">
+            <el-form ref="form" :model="form" label-width="140px">
+                <el-form-item label="容量">
+                    <el-input v-model="form.capacity"></el-input>
+                </el-form-item>
+                <el-form-item label="使用">
+                    <el-input v-model="form.used"></el-input>
+                </el-form-item>
+                <el-form-item label="未使用">
+                    <el-input v-model="form.unused"></el-input>
+                </el-form-item>
+                <el-form-item>
+                    <el-button style="margin-left:60%" type="primary" @click="onSubmit">更新信息</el-button>
+                </el-form-item>
+            </el-form>
+        </div>
+    </div>
+</template>
+
+<script>
+import {
+    reqWarehouseU,
+    reqSetWarehouseU
+} from "@/api/product.js";
+export default {
+    name: "WarehouseU",
+    data() {
+        return {
+            form: {
+                id: "-1",
+                capacity: "",
+                used: "",
+                unused: ""
+            }
+        };
+    },
+    created() {
+        this.getWarehouseU();
+    },
+    methods: {
+        onSubmit() {
+            this.$confirm("确定更新信息?").then(() => {
+                console.log(this.form);
+                reqSetWarehouseU(this.form)
+                    .then(res => {
+                        if (res.errCode) {
+                            this.$message.error(res.errMsg);
+                        } else {
+                            this.getWarehouseU();
+                            this.$message.success("更新成功!");
+                        }
+                    })
+                    .catch(err => {
+                        console.log(err);
+                        this.$message.error("更新失败!");
+                    });
+            });
+        },
+        getWarehouseU() {
+            console.log("99999999")
+            reqWarehouseU()
+                .then(res => {
+                    this.form = res.conf;
+                    this.form.id = res.id;
+                })
+                .catch(err => {
+                    console.error(err);
+                });
+        }
+    }
+};
+</script>
+
+<style lang="scss" scoped>
+.WarehouseU {
+    .left {
+        width: 400px;
+        margin-left: 50px;
+    }
+}
+</style>