linan 4 年之前
父节点
当前提交
2e7753f391

+ 10 - 0
src/api/deliveryRoomManagement.js

@@ -7,3 +7,13 @@ export const reqDeliveryRoom = (data) => ajax("post", "/farm-piglet/table/list",
 export const reqBedInfo = (data) => ajax("post", "/farm-piglet/table/one", data)
 export const reqPiggyData = (data) => ajax("post", "/analyse/piggy/piggyData", data)
 
+
+/* 产房配置 DeliveryRoomConfig*/
+export const reqDeliveryRoomConfig = (data) => ajax("post", "/farm-piglet/table/device", data)
+
+/* 产床绑定 */
+export const reqDeliveryRoomBind = (data) => ajax("post", "/farm-piglet//bind/list", data)
+
+
+/* 详情里的耳标温度 */
+export const reqEarTagTemp = (data) => ajax("post", "/analyse/eartag/reportList", data)

+ 11 - 1
src/api/system.js

@@ -8,9 +8,19 @@ export const reqAddOrUpdateDeviceConfig = (data) => {
     if(data.id) {
         return ajax("post", "/publics/sysconf/update", data)
     } else {
-        // return ajax("post", "/publics/sysconf/add", {code: 'piglet_deviceConfig', conf: JSON.stringify(data.conf), name: '猪仔管家设备配置'})
         return ajax("post", "/publics/sysconf/add", data)
     }
 }
 
 
+/* 获取软件配置 SoftwareSet*/
+export const reqSoftwareSet = () => ajax("get", "/publics/sysconf/get", {code: 'piglet_softwareSet'})
+// 添加设备配置
+export const reqAddOrUpdateSoftwareSet = (data) => {
+    if(data.id) {
+        return ajax("post", "/publics/sysconf/update", data)
+    } else {
+        return ajax("post", "/publics/sysconf/add", data)
+    }
+}
+

+ 17 - 1
src/sdk/ajax.js

@@ -42,7 +42,7 @@ export const ajax = function (type = "post", url, params) {
         });
     } else {
         return new Promise((resole, reject) => {
-            axios({
+            /* axios({
                 method: type,
                 url: serverAddress + url,
                 params,
@@ -60,6 +60,22 @@ export const ajax = function (type = "post", url, params) {
                 resole(res.data);
             }).catch((err) => {
                 reject(err);
+            }); */
+            axios.post(serverAddress + url, Qs.stringify(params), {
+                headers: {
+                    'Content-Type': 'application/x-www-form-urlencoded',
+                    'x-auth-token': token
+                }
+            }).then((res) => {
+                switch (res.data.errCode) {
+                    case 'request_not_authorize': // 登录过期
+                        let url = window.location.protocol + "//" + window.location.host + "/#/login"
+                        window.location.replace(url)
+                        break;
+                }
+                resole(res.data);
+            }).catch((err) => {
+                reject(err);
             });
         });
     }

+ 7 - 7
src/views/deliveryRoomManagement/DeliveryRoom.vue

@@ -99,7 +99,7 @@
                     <div class="info" v-if="item.status == 2">
                         <p class="p">
                             <span class="title">母猪耳标:</span>
-                            <span class="content">{{ item.id }}</span>
+                            <span class="content">{{ item.litter.mother.earTagNo }}</span>
                         </p>
                         <p class="p">
                             <span class="title">入床时间:</span>
@@ -113,7 +113,7 @@
                     <div class="info" v-else-if="item.status == 3">
                         <p class="p">
                             <span class="title">母猪耳标:</span>
-                            <span class="content">{{ item.id }}</span>
+                            <span class="content">{{ item.litter.mother.earTagNo }}</span>
                         </p>
                         <p class="p">
                             <span class="title">产子时间:</span>
@@ -131,7 +131,7 @@
                     <div class="info" v-else-if="item.status == 4">
                         <p class="p">
                             <span class="title">母猪耳标:</span>
-                            <span class="content">{{ item.id }}</span>
+                            <span class="content">{{ item.litter.mother.earTagNo }}</span>
                         </p>
                         <p class="p">
                             <span class="title">断奶时间:</span>
@@ -175,7 +175,7 @@ import { reqDeliveryRoom } from "@/api/deliveryRoomManagement.js";
 const pageSize = 10;
 const rules = {};
 
-let list = [
+/* let list = [
     {
         type: 1,
         id: 16532
@@ -204,13 +204,13 @@ let list = [
         type: 3,
         id: 16551
     }
-];
+]; */
 
 export default {
     name: "deliveryRoom",
     data() {
         return {
-            list,
+            list: [],
             rules,
             pageSize,
             page: 1,
@@ -248,7 +248,7 @@ export default {
                 this.$message.warning("产床为空!")
                 return
             }
-            this.$router.push({ path: "Detail", query: { code:bed.code } });
+            this.$router.push({ path: "Detail", query: { code:bed.code, status: bed.status } });
         },
         getBasicsInfoList() {},
         pageChange(p) {

+ 54 - 95
src/views/deliveryRoomManagement/deliveryBedBind.vue

@@ -2,46 +2,42 @@
     <div class="deliveryBedBind">
         <h2 style="margin-bottom: 20px;padding-bottom:7px;border-bottom:2px solid #ddd">产床绑定</h2>
         <header id="header">
-            <el-row type="flex">
+            <el-row type="flex" :gutter="20">
                 <el-col :span="3">
-                    <el-select v-model="value" placeholder="请选择">
-                        <el-option label="item.label" value="item.value"></el-option>
-                        <el-option label="item.label" value="item.value"></el-option>
+                    <el-select v-model="S_form.building" placeholder="请选择栋舍">
+                        <el-option label="保育一舍" :value="1"></el-option>
+                        <el-option label="保育二舍" :value="2"></el-option>
                     </el-select>
                 </el-col>
                 <el-col :span="3">
-                    <el-select v-model="value" placeholder="请选择">
-                        <el-option label="item.label" value="item.value"></el-option>
-                        <el-option label="item.label" value="item.value"></el-option>
+                    <el-select v-model="S_form.house" placeholder="请选择产房">
+                        <el-option label="厂房一号" :value="1"></el-option>
+                        <el-option label="厂房二号" :value="2"></el-option>
+                        <el-option label="厂房三号" :value="3"></el-option>
                     </el-select>
                 </el-col>
                 <el-col :span="3">
-                    <el-select v-model="value" placeholder="请选择">
-                        <el-option label="item.label" value="item.value"></el-option>
-                        <el-option label="item.label" value="item.value"></el-option>
+                    <el-input v-model="S_form.table" placeholder="请输入产床"></el-input>
+                </el-col>
+                <el-col :span="3">
+                    <el-select v-model="S_form.status" placeholder="请选择状态">
+                        <el-option label="不可用" :value="0"></el-option>
+                        <el-option label="可用" :value="1"></el-option>
                     </el-select>
                 </el-col>
                 <el-col :span="3">
-                    <el-button type="primary">查找</el-button>
+                    <el-button type="primary" @click="getDeliveryRoomBind">查找</el-button>
                 </el-col>
             </el-row>
         </header>
         <section>
             <article class="table">
                 <el-table :data="tableData" border style="width: 100%">
-                    <el-table-column prop="aa" sortable label="母猪编号" width="180"></el-table-column>
-                    <el-table-column prop="ab" sortable label="绑定日期" width="180"></el-table-column>
-                    <el-table-column prop="ac" sortable label="产床编号"></el-table-column>
-                    <el-table-column prop="ad" sortable label="操作人"></el-table-column>
-                    <el-table-column prop="ae" 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 prop="litter.mother.earTagNo" sortable label="母猪耳标" width="180"></el-table-column>
+                    <el-table-column prop="code" sortable label="产床编码" width="180"></el-table-column>
+                    <el-table-column prop="feeder" label="饲养员"></el-table-column>
+                    <el-table-column prop="house.name" label="位置"></el-table-column>
+                    <el-table-column prop="created" label="绑定时间"></el-table-column>
                 </el-table>
                 <el-row type="flex" justify="end">
                     <el-col :span="8" class="pagination">
@@ -49,7 +45,7 @@
                             @current-change="pageChange"
                             background
                             layout="prev, pager, next"
-                            :total="1000"
+                            :total="Number(totalPages)"
                         ></el-pagination>
                     </el-col>
                 </el-row>
@@ -59,86 +55,49 @@
 </template>
 
 <script>
+import { reqDeliveryRoom } from "@/api/deliveryRoomManagement.js";
 const pageSize = 10;
 
 export default {
-    name: 'deliveryBedBind',
+    name: "deliveryBedBind",
     data() {
         return {
             value: "",
-            tableData: [
-                {
-                    aa: "1924",
-                    ab: "2020-08-01",
-                    ac: "210",
-                    ad: "1",
-                    ae: "分娩01舍"
-                },
-                {
-                    aa: "2054",
-                    ab: "2020-08-01",
-                    ac: "285",
-                    ad: "2",
-                    ae: "分娩10舍"
-                },
-                {
-                    aa: "5487",
-                    ab: "2020-08-09",
-                    ac: "185",
-                    ad: "1",
-                    ae: "分娩54舍"
-                },
-                {
-                    aa: "5487",
-                    ab: "2020-08-09",
-                    ac: "185",
-                    ad: "1",
-                    ae: "分娩48舍"
-                },
-                {
-                    aa: "5487",
-                    ab: "2020-08-09",
-                    ac: "185",
-                    ad: "1",
-                    ae: "分娩65舍"
-                },
-                {
-                    aa: "5487",
-                    ab: "2020-08-09",
-                    ac: "185",
-                    ad: "1",
-                    ae: "分娩72舍"
-                },
-                {
-                    aa: "5487",
-                    ab: "2020-08-09",
-                    ac: "185",
-                    ad: "1",
-                    ae: "分娩18舍"
-                },
-                {
-                    aa: "5487",
-                    ab: "2020-08-09",
-                    ac: "185",
-                    ad: "1",
-                    ae: "分娩16舍"
-                },
-                {
-                    aa: "5487",
-                    ab: "2020-08-09",
-                    ac: "185",
-                    ad: "1",
-                    ae: "分娩24舍"
-                }
-            ]
+            page: 1,
+            S_form: {
+                building: null,
+                house: null,
+                table: null,
+                status: null
+            },
+            tableData: [],
+            totalPages: 1
         };
     },
-    created() {},
+    created() {
+        this.getDeliveryRoomBind();
+    },
     methods: {
-        edit(row) {},
-        del(row) {},
+        getDeliveryRoomBind() {
+            reqDeliveryRoom({
+                pageNum: this.page,
+                pageSize,
+                ...this.S_form
+            })
+                .then(res => {
+                    console.log(res)
+                    this.tableData = res.content.filter(item => {
+                        // if(!!item.litter&&!!item.litter.mother.earTagNo) return item
+                        return !!item.litter&&!!item.litter.mother.earTagNo
+                    });
+                    this.totalPages = res.totalPages;
+                })
+                .catch(err => {
+                    console.error(err);
+                });
+        },
         pageChange(p) {
-            console.log(p)
+            this.page = p;
         }
     }
 };

+ 58 - 95
src/views/deliveryRoomManagement/deliveryRoomConfig.vue

@@ -2,47 +2,43 @@
     <div class="deliveryRoomConfig">
         <h2 style="margin-bottom: 20px;padding-bottom:7px;border-bottom:2px solid #ddd">产房配置</h2>
         <header id="header">
-            <el-row type="flex">
+            <el-row type="flex" :gutter="20">
                 <el-col :span="3">
-                    <el-select v-model="value" placeholder="请选择">
-                        <el-option label="item.label" value="item.value"></el-option>
-                        <el-option label="item.label" value="item.value"></el-option>
+                    <el-select v-model="S_form.building" placeholder="请选择栋舍">
+                        <el-option label="保育一舍" :value="1"></el-option>
+                        <el-option label="保育二舍" :value="2"></el-option>
                     </el-select>
                 </el-col>
                 <el-col :span="3">
-                    <el-select v-model="value" placeholder="请选择">
-                        <el-option label="item.label" value="item.value"></el-option>
-                        <el-option label="item.label" value="item.value"></el-option>
+                    <el-select v-model="S_form.house" placeholder="请选择产房">
+                        <el-option label="厂房一号" :value="1"></el-option>
+                        <el-option label="厂房二号" :value="2"></el-option>
+                        <el-option label="厂房三号" :value="3"></el-option>
                     </el-select>
                 </el-col>
                 <el-col :span="3">
-                    <el-select v-model="value" placeholder="请选择">
-                        <el-option label="item.label" value="item.value"></el-option>
-                        <el-option label="item.label" value="item.value"></el-option>
+                    <el-input v-model="S_form.table" placeholder="请输入产床"></el-input>
+                </el-col>
+                 <el-col :span="3">
+                    <el-select v-model="S_form.status" placeholder="请选择状态">
+                        <el-option label="不可用" :value="0"></el-option>
+                        <el-option label="可用" :value="1"></el-option>
                     </el-select>
                 </el-col>
                 <el-col :span="3">
-                    <el-button type="primary">查找</el-button>
+                    <el-button type="primary" @click="getDeliveryRoomConfig">查找</el-button>
                 </el-col>
             </el-row>
         </header>
         <section>
             <article class="table">
                 <el-table :data="tableData" border style="width: 100%">
-                    <el-table-column prop="aa" sortable label="产床编号" width="180"></el-table-column>
-                    <el-table-column prop="ab" sortable label="安装日期" width="180"></el-table-column>
-                    <el-table-column prop="ac" sortable label="设备名称"></el-table-column>
-                    <el-table-column prop="ad" sortable label="设备编号"></el-table-column>
-                    <el-table-column prop="ae" label="位置"></el-table-column>
-                    <el-table-column prop="ad" 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 prop="table.code" sortable label="产床编号" width="180"></el-table-column>
+                    <el-table-column prop="device.installTime" sortable label="安装日期" width="180"></el-table-column>
+                    <el-table-column prop="device.name" sortable label="设备名称"></el-table-column>
+                    <el-table-column prop="device.code" sortable label="设备编号"></el-table-column>
+                    <el-table-column prop="table.house.name" label="位置"></el-table-column>
+                    <el-table-column prop="statusName" label="状态"></el-table-column>
                 </el-table>
                 <el-row type="flex" justify="end">
                     <el-col :span="8" class="pagination">
@@ -50,7 +46,7 @@
                             @current-change="pageChange"
                             background
                             layout="prev, pager, next"
-                            :total="1000"
+                            :total="Number(totalPages)"
                         ></el-pagination>
                     </el-col>
                 </el-row>
@@ -60,6 +56,7 @@
 </template>
 
 <script>
+import { reqDeliveryRoomConfig } from "@/api/deliveryRoomManagement.js";
 const pageSize = 10;
 
 export default {
@@ -67,79 +64,45 @@ export default {
     data() {
         return {
             value: "",
-            tableData: [
-                {
-                    aa: "1924",
-                    ab: "2020-08-01",
-                    ac: "210",
-                    ad: "1",
-                    ae: "分娩01舍"
-                },
-                {
-                    aa: "2054",
-                    ab: "2020-08-01",
-                    ac: "285",
-                    ad: "2",
-                    ae: "分娩10舍"
-                },
-                {
-                    aa: "5487",
-                    ab: "2020-08-09",
-                    ac: "185",
-                    ad: "1",
-                    ae: "分娩54舍"
-                },
-                {
-                    aa: "5487",
-                    ab: "2020-08-09",
-                    ac: "185",
-                    ad: "1",
-                    ae: "分娩48舍"
-                },
-                {
-                    aa: "5487",
-                    ab: "2020-08-09",
-                    ac: "185",
-                    ad: "1",
-                    ae: "分娩65舍"
-                },
-                {
-                    aa: "5487",
-                    ab: "2020-08-09",
-                    ac: "185",
-                    ad: "1",
-                    ae: "分娩72舍"
-                },
-                {
-                    aa: "5487",
-                    ab: "2020-08-09",
-                    ac: "185",
-                    ad: "1",
-                    ae: "分娩18舍"
-                },
-                {
-                    aa: "5487",
-                    ab: "2020-08-09",
-                    ac: "185",
-                    ad: "1",
-                    ae: "分娩16舍"
-                },
-                {
-                    aa: "5487",
-                    ab: "2020-08-09",
-                    ac: "185",
-                    ad: "1",
-                    ae: "分娩24舍"
-                }
-            ]
+            page: 1,
+            S_form: {
+                building: null,
+                house: null,
+                table: null,
+                status: null,
+            },
+            tableData: [],
+            totalPages: 1
         };
     },
-    created() {},
+    created() {
+        this.getDeliveryRoomConfig()
+    },
     methods: {
-        edit(row) {},
-        del(row) {},
+        getDeliveryRoomConfig() {
+            reqDeliveryRoomConfig({
+                pageNum: this.page,
+                pageSize,
+                ...this.S_form,
+            })
+                .then(res => {
+                    this.tableData = res.content
+                    // device.status
+                    this.tableData.forEach(item => {
+                        if(item.device&&item.device.status==1) {
+                            item.statusName = '可用'
+                        } else {
+                            item.statusName = '不可用'
+                        }
+                    })
+                    this.totalPages = res.totalPages
+                })
+                .catch(err => {
+                    console.error(err);
+                });
+        },
         pageChange(p) {
-            console.log(p)
+            this.page = p
         }
     }
 };

+ 224 - 83
src/views/deliveryRoomManagement/detail/Detail.vue

@@ -12,7 +12,6 @@
                             v-model="date"
                             @change="pickerChange"
                             type="date"
-                            value-format="yyyy-MM-dd"
                             placeholder="选择日期"
                         ></el-date-picker>
                     </div>
@@ -30,25 +29,45 @@
                     <ul>
                         <li>
                             <span class="titel">母猪耳标:</span>
-                            <el-link class="content" type="primary" v-if="bed" @click="isShow=true">
-                                {{bed.litter.mother.earTagNo}}
-                            </el-link>
+                            <el-link
+                                class="content"
+                                type="primary"
+                                v-if="bed"
+                                @click="isShow=true"
+                                style="font-size: 25px"
+                            >{{bed.litter.mother.earTagNo}}</el-link>
                         </li>
                         <li>
+                            <span class="titel">状态:</span>
+                            <span
+                                class="content"
+                                style="font-size:20px"
+                            >{{ bed.status==2?"上床":bed.status==3?"分娩":bed.status==4?"断奶":"" }}</span>
+                        </li>
+                        <li v-if="bed.status == 2">
                             <span class="titel">上床时间:</span>
                             <span class="content">{{ bed.created }}</span>
                         </li>
-                        <li>
+                        <li v-if="bed.status == 2">
                             <span class="titel">预计产仔:</span>
                             <span class="content">{{ bed.litter.dueDate }}</span>
                         </li>
+                        <li v-if="bed.status == 3">
+                            <span class="titel">产子时间:</span>
+                            <span class="content">{{ bed.litter.deliverTime }}</span>
+                        </li>
+
+                        <li v-if="bed.status == 4">
+                            <span class="titel">断奶时间:</span>
+                            <span class="content">{{ bed.litter.weaningTime }}</span>
+                        </li>
                     </ul>
                 </div>
                 <!-- <div>
                     <ul>99</ul>
-                </div> -->
+                </div>-->
             </article>
-            <article class="pigletInfo" v-if="bed">
+            <article class="pigletInfo" v-if="bed && bed.status!=2">
                 <h3 class="title">
                     <span>猪仔情况</span>
                     <span>生产时间:{{ bed.litter.deliverTime }}</span>
@@ -78,7 +97,7 @@
                         :width="200"
                     ></el-progress>
                     <el-progress
-                            v-if="bed.status < 4"
+                        v-if="bed.status < 4"
                         type="circle"
                         :percentage="100"
                         :stroke-width="22"
@@ -98,15 +117,15 @@
             </article>
             <article class="carousel">
                 <div class="contianer" v-if="empty[0].length>0">
-                    <el-carousel height="400px" indicator-position="none" :interval="3000">
-                        <el-carousel-item v-for="(item, index) in empty[0]" :key="item + index">
+                    <el-carousel height="360px" indicator-position="none" :interval="3000">
+                        <el-carousel-item v-for="(item, index) in empty[0]" :key="index">
                             <img :src="item" style="width:100%" />
                         </el-carousel-item>
                     </el-carousel>
                 </div>
                 <div class="contianer" v-if="empty[1].length>0">
-                    <el-carousel height="400px" indicator-position="none" :interval="3000">
-                        <el-carousel-item v-for="(item, index) in empty[1]" :key="item + index">
+                    <el-carousel height="360px" indicator-position="none" :interval="3000">
+                        <el-carousel-item v-for="(item, index) in empty[1]" :key="index">
                             <img :src="item" style="width:100%" />
                         </el-carousel-item>
                     </el-carousel>
@@ -114,22 +133,78 @@
             </article>
             <article class="charts">
                 <div>
-                    <E-Con-T :dataArr="dataArr" :timeArr="timeArr"></E-Con-T>
+                    <E-Con-T :dataArr="containerT" :timeArr="containertime"></E-Con-T>
                 </div>
                 <div>
-                    <E-Sow-T :dataArr="dataArr" :timeArr="timeArr"></E-Sow-T>
+                    <E-Sow-T :dataArr="animalTemp" :timeArr="time"></E-Sow-T>
                 </div>
                 <div>
-                    <E-Env-T :dataArr="dataArr" :timeArr="timeArr"></E-Env-T>
+                    <E-Env-T :dataArr="envTemp" :timeArr="time"></E-Env-T>
                 </div>
                 <div>
-                    <E-Ele-T :dataArr="dataArr" :timeArr="timeArr"></E-Ele-T>
+                    <E-Ele-T :dataArr="battery" :timeArr="time"></E-Ele-T>
                 </div>
             </article>
         </section>
 
         <el-dialog title="母猪信息" :visible.sync="isShow" width="40%">
-            母猪信息
+            <ul class="dialog">
+                <li class="cell">
+                    <span>入场时间:</span>
+                    <span>2020-08-19</span>
+                </li>
+                <li class="cell">
+                    <span>品种:</span>
+                    <span>大白</span>
+                </li>
+                <li class="cell">
+                    <span>当前状态:</span>
+                    <span>怀孕</span>
+                </li>
+                <li class="cell">
+                    <span>窝均活仔:</span>
+                    <span>11头</span>
+                </li>
+                <li class="cell">
+                    <span>配种胎次:</span>
+                    <span>1次</span>
+                </li>
+                <li class="cell">
+                    <span>日龄:</span>
+                    <span>395天</span>
+                </li>
+                <li class="cell">
+                    <span>窝均断奶:</span>
+                    <span>10头</span>
+                </li>
+            </ul>
+            <h3 class="hr">分娩情况</h3>
+            <article class="dialog_article">
+                <el-steps direction="vertical" :active="active" finish-status="success">
+                    <el-step title="断奶">
+                        <template v-slot:description>
+                            <span class="description">2020-08-08 断奶头数:14头 断奶窝重109.80kg</span>
+                        </template>
+                    </el-step>
+                    <el-step title="分娩">
+                        <template v-slot:description>
+                            <span class="description">总仔:14 健:14 弱:0 活:14 木:0 死:0</span>
+                        </template>
+                    </el-step>
+                    <el-step title="妊检" description="妊检结果:阳性">
+                        <template v-slot:description>
+                            <span class="description">妊检结果:阳性</span>
+                        </template>
+                    </el-step>
+                    <el-step title="配种">
+                        <template v-slot:description>
+                            <span
+                                class="description"
+                            >配种天数:115 配种公猪:27003 配种时间:2020-04-25 预产期:2020-07-17 配种方式:人工授精</span>
+                        </template>
+                    </el-step>
+                </el-steps>
+            </article>
         </el-dialog>
     </div>
 </template>
@@ -148,10 +223,11 @@ import empty5 from "../../../assets/img/empty5.jpg";
 
 import {
     reqBedInfo,
-    reqPiggyData
+    reqPiggyData,
+    reqEarTagTemp
 } from "@/api/deliveryRoomManagement.js";
 
-import {fabric} from "fabric"
+import { fabric } from "fabric";
 
 // 时间选择器配置
 const pickerOptions = {
@@ -212,87 +288,131 @@ export default {
     },
     data() {
         return {
-            bed:null,
+            active: 3,
+            bed: null,
             date: "",
             format,
-            empty: [[],[]],
+            empty: [[], []],
             isShow: false,
-            timeArr: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
-            dataArr: [32, 32, 31, 35, 30, 29, 36, 32, 31, 35, 35, 36],
-            piggyData:null,
-            imgData:null,
+            containerT: [],
+            containertime: [],
+            time: [],
+            envTemp: [],
+            animalTemp: [],
+            battery: [],
+            piggyData: null,
+            imgData: null
         };
     },
     created() {
-        //this.$route.query.id
-        this.getDeliveryTable(this.$route.query.code)
+        //this.$route.query.id   bed.litter.mother.earTagNo
+        this.getDeliveryTable(this.$route.query.code);
     },
     beforeDestroy() {},
     methods: {
-        getDeliveryTable(code){
-            let data = {code}
-            reqBedInfo(data).then(res=>{
-                console.log(res)
-                this.bed = res
-                //加载分析系统 设备数据
-                if(this.bed.deviceId && this.bed.deviceCh)
-                    this.getPiggyData(this.bed.deviceId,this.bed.deviceCh)
-            }).catch(err=>{
-                console.error(err);
+        getDeliveryTable(code) {
+            let data = { code };
+            reqBedInfo(data)
+                .then(res => {
+                    console.log(res);
+                    this.bed = res;
+                    console.log(99999999999999);
+                    // 获取耳标温度
+                    this.getEarTagTemp();
+                    //加载分析系统 设备数据
+                    if (this.bed.deviceId && this.bed.deviceCh >= 0)
+                        this.getPiggyData(this.bed.deviceId, this.bed.deviceCh);
+                })
+                .catch(err => {
+                    console.error(err);
+                });
+        },
+        // 获取耳标温度
+        getEarTagTemp() {
+            reqEarTagTemp({
+                deviceId: this.bed.litter.mother.earTagId,
+                start: new Date().getTime() - 3600 * 1000,
+                end: new Date().getTime()
             })
+                .then(res => {
+                    console.log(res);
+                    this.time = []
+                    this.envTemp = []
+                    this.animalTemp = []
+                    this.battery = []
+                    res.content.forEach(item => {
+                        this.time.unshift(item.time)
+                        this.envTemp.unshift(item.envTemp)
+                        this.animalTemp.unshift(item.animalTemp)
+                        this.battery.unshift(item.battery * 100)
+                    })
+                })
+                .catch(err => {
+                    console.error(err);
+                });
         },
-        getPiggyData(deviceId,ch){
-            let end = new Date().getTime()
-            let start = end - 36000000 //向前一个小时
-            let data ={deviceId,ch,start,end}
-            reqPiggyData(data).then(res=>{
-                console.log(res)
-                this.piggyData = res.content
-                if(this.piggyData.length>0){
-                    for(let i=0;i<this.piggyData.length;i++){
-                        this.loadImage(this.piggyData[i],i)
+        getPiggyData(deviceId, ch) {
+            let end = new Date().getTime();
+            let start = end - 36000000; //向前一个小时
+            let data = { deviceId, ch, start, end };
+            reqPiggyData(data)
+                .then(res => {
+                    this.piggyData = res.content;
+                    if (this.piggyData.length > 0) {
+                        this.containerT = [];
+                        this.containertime = [];
+                        for (let i = 0; i < this.piggyData.length; i++) {
+                            this.loadImage(this.piggyData[i], i);
+                            //
+                            this.containerT.unshift(this.piggyData[i].temp);
+                            this.containertime.unshift(this.piggyData[i].created);
+                        }
                     }
-                }
-            }).catch(err=>{
-                console.error(err)
-            })
+                })
+                .catch(err => {
+                    console.error(err);
+                });
         },
-        loadImage(piggydata,y){
+        loadImage(piggydata, y) {
             //每个有两个图片
-            let file1 = piggydata.file1
-            let ai1 = JSON.parse(piggydata.aiData1)
-            this.drawImage(file1,ai1,0,y)
-            let file2 = piggydata.file2
-            let ai2 = JSON.parse(piggydata.aiData2)
-            this.drawImage(file2,ai2,1,y)
+            let file1 = piggydata.file1;
+            let ai1 = JSON.parse(piggydata.aiData1);
+            this.drawImage(file1, ai1, 0, y);
+            let file2 = piggydata.file2;
+            let ai2 = JSON.parse(piggydata.aiData2);
+            this.drawImage(file2, ai2, 1, y);
         },
-        drawImage(file,ai,x,y){//x一维,y二维
+        drawImage(file, ai, x, y) {
+            //x一维,y二维
             let canvas = new fabric.Canvas(file);
-            canvas.clear()
-            let img = document.createElement("img")
-            img.onload =  () => {
-                canvas.setWidth(img.width)
-                canvas.setHeight(img.height)
-                let ci = new fabric.Image(img)
-                canvas.insertAt(ci,0)
+            canvas.clear();
+            let img = document.createElement("img");
+            img.onload = () => {
+                canvas.setWidth(img.width);
+                canvas.setHeight(img.height);
+                let ci = new fabric.Image(img);
+                canvas.insertAt(ci, 0);
                 //画画
-                if(ai.result === 'success'){
-                    for(let i=0;i<ai.piggy.length;i++){
-                        let o = ai.piggy[i]
-                        canvas.insertAt(new fabric.Circle({
-                            left:o.point[0]-5,
-                            top:o.point[1]-5,
-                            radius:10,
-                            fill:'red'
-                        }),i+1)//0被图片占了
+                if (ai.result === "success") {
+                    for (let i = 0; i < ai.piggy.length; i++) {
+                        let o = ai.piggy[i];
+                        canvas.insertAt(
+                            new fabric.Circle({
+                                left: o.point[0] - 5,
+                                top: o.point[1] - 5,
+                                radius: 10,
+                                fill: "red"
+                            }),
+                            i + 1
+                        ); //0被图片占了
                     }
                 }
                 let tmp = canvas.toDataURL("image/png");
-                this.empty[x][y] = tmp
-                this.$forceUpdate()
-            }
-            img.crossOrigin='Anonymous'
-            img.src = "http://115.238.57.190:8888/uploads/"+file
+                this.empty[x][y] = tmp;
+                this.$forceUpdate();
+            };
+            img.crossOrigin = "Anonymous";
+            img.src = "http://115.238.57.190:8888/uploads/" + file;
             // console.log("http://115.238.57.190:8888/uploads/"+file)
         },
         // 请求厂房列表
@@ -347,17 +467,18 @@ export default {
         .video {
             margin: 30px;
             .mainInfo {
+                font-size: 17px;
                 > ul {
                     background-color: #eee;
                     border-radius: 10px;
                     padding: 15px;
-                    >li{
+                    > li {
                         margin: 5px 15px;
-                        >.titel{
+                        > .titel {
                             font-weight: 600;
                             color: #444;
                         }
-                        >.content{
+                        > .content {
                             font-size: 16px;
                         }
                     }
@@ -394,6 +515,26 @@ export default {
         }
     }
 }
+.dialog {
+    display: flex;
+    flex-wrap: wrap;
+    font-size: 18px;
+    padding: 25px;
+    .cell {
+        width: 45%;
+        margin: 4px;
+    }
+}
+.hr {
+    margin: 25px;
+}
+.dialog_article {
+    height: 300px;
+    margin: 20px;
+    .description {
+        font-size: 17px;
+    }
+}
 
 // border: 1px solid #00f;
 </style>

+ 1 - 1
src/views/statisticAnalysis/charts/Ea.vue

@@ -1,6 +1,6 @@
 <template>
     <div class="Ea">
-        <div id="Ea" style="width: 70%;height:500px;"></div>
+        <div id="Ea" style="width: 70%;height:400px;"></div>
     </div>
 </template>
 

+ 1 - 1
src/views/statisticAnalysis/charts/Eb.vue

@@ -1,6 +1,6 @@
 <template>
     <div class="Eb">
-        <div id="Eb" style="width: 70%;height:500px;"></div>
+        <div id="Eb" style="width: 70%;height:400px;"></div>
     </div>
 </template>
 

+ 23 - 13
src/views/system/deviceConfig.vue

@@ -63,23 +63,23 @@ export default {
             rules,
             reqInfo: {},
             formData: {
-                serverAddress: 'http://',
-                timeInterval: '5',
-                T1_3: '25',
-                T4_7: '25',
-                T8_14: '25',
-                T15_30: '25'
+                serverAddress: "",
+                timeInterval: "",
+                T1_3: "",
+                T4_7: "",
+                T8_14: "",
+                T15_30: ""
             }
         };
     },
     created() {
-        this.AddOrUpdateDeviceConfig()
+        this.getDeviceConfig();
     },
     methods: {
         submitForm(formName) {
             this.$refs[formName].validate(valid => {
                 if (valid) {
-                    console.log("555")
+                    this.AddOrUpdateDeviceConfig();
                 } else {
                     return false;
                 }
@@ -89,6 +89,10 @@ export default {
             reqDeviceConfig()
                 .then(res => {
                     console.log(res);
+                    this.reqInfo = res;
+                    res.conf.data.forEach(item => {
+                        this.formData[item.key] = item.val;
+                    });
                 })
                 .catch(err => {
                     console.error(err);
@@ -100,16 +104,22 @@ export default {
                 tempArr.push({ key, val: this.formData[key] });
             }
             this.reqInfo.conf = JSON.stringify({
-                data: JSON.stringify(tempArr)
+                data: tempArr
             });
-            reqAddOrUpdateDeviceConfig( this.reqInfo )
+            reqAddOrUpdateDeviceConfig(this.reqInfo)
                 .then(res => {
                     console.log(res);
+                    this.getDeviceConfig();
+                    if (res.errCode) {
+                        this.$message.error(res.errMsg);
+                    } else {
+                        this.$message.success("成功");
+                    }
                 })
                 .catch(err => {
                     console.error(err);
                 });
-        },
+        }
     }
 };
 </script>
@@ -118,8 +128,8 @@ export default {
 .deviceConfig {
     .section {
         width: 650px;
-        background-color: #eee;
-        border-radius: 15px;
+        // background-color: #eee;
+        // border-radius: 15px;
         padding: 30px;
     }
 }

+ 74 - 23
src/views/system/softwareSet.vue

@@ -7,76 +7,76 @@
                 <el-row type="flex" align="middle">
                     日龄超过
                     <el-col :span="2" style="margin:10px 8px">
-                        <el-input v-model.number="formData.aa" @blur="save"></el-input>
+                        <el-input v-model.number="formData.a" @blur="AddOrUpdateSoftwareSet"></el-input>
                     </el-col>的母猪
                 </el-row>
                 <el-row type="flex" align="middle">
                     分娩胎次超过
                     <el-col :span="2" style="margin:10px 8px">
-                        <el-input v-model.number="formData.bb" @blur="save"></el-input>
+                        <el-input v-model.number="formData.b" @blur="AddOrUpdateSoftwareSet"></el-input>
                     </el-col>的母猪
                 </el-row>
                 <el-row type="flex" align="middle">
                     连续
                     <el-col :span="2" style="margin:10px 8px">
-                        <el-input v-model.number="formData.cc" @blur="save"></el-input>
+                        <el-input v-model.number="formData.c1" @blur="AddOrUpdateSoftwareSet"></el-input>
                     </el-col>胎或者累计
                     <el-col :span="2" style="margin:10px 8px">
-                        <el-input v-model.number="formData.dd" @blur="save"></el-input>
+                        <el-input v-model.number="formData.c2" @blur="AddOrUpdateSoftwareSet"></el-input>
                     </el-col>胎以上分娩仔猪在
                     <el-col :span="2" style="margin:10px 8px">
-                        <el-input v-model.number="formData.ee" @blur="save"></el-input>
+                        <el-input v-model.number="formData.c3" @blur="AddOrUpdateSoftwareSet"></el-input>
                     </el-col>头以下的母猪
                 </el-row>
                 <el-row type="flex" align="middle">
                     连续
                     <el-col :span="2" style="margin:10px 8px">
-                        <el-input v-model.number="formData.ff" @blur="save"></el-input>
+                        <el-input v-model.number="formData.d1" @blur="AddOrUpdateSoftwareSet"></el-input>
                     </el-col>胎或者累计
                     <el-col :span="2" style="margin:10px 8px">
-                        <el-input v-model.number="formData.gg" @blur="save"></el-input>
+                        <el-input v-model.number="formData.d2" @blur="AddOrUpdateSoftwareSet"></el-input>
                     </el-col>胎以上分娩仔猪存活率低于
                     <el-col :span="2" style="margin:10px 8px">
-                        <el-input v-model="formData.hh" @blur="save"></el-input>
+                        <el-input v-model="formData.d3" @blur="AddOrUpdateSoftwareSet"></el-input>
                     </el-col>% 头以下的母猪
                 </el-row>
                 <el-row type="flex" align="middle">
                     连续
                     <el-col :span="2" style="margin:10px 8px">
-                        <el-input v-model.number="formData.ii" @blur="save"></el-input>
+                        <el-input v-model.number="formData.e1" @blur="AddOrUpdateSoftwareSet"></el-input>
                     </el-col>胎或者累计
                     <el-col :span="2" style="margin:10px 8px">
-                        <el-input v-model.number="formData.jj" @blur="save"></el-input>
+                        <el-input v-model.number="formData.e2" @blur="AddOrUpdateSoftwareSet"></el-input>
                     </el-col>胎以上断奶仔猪存活率低于
                     <el-col :span="2" style="margin:10px 8px">
-                        <el-input v-model="formData.kk" @blur="save"></el-input>
+                        <el-input v-model="formData.e3" @blur="AddOrUpdateSoftwareSet"></el-input>
                     </el-col>% 头以下的母猪
                 </el-row>
             </article>
             <article>
-                <h3 class="title">淘汰母猪条件设置</h3>
+                <h3 class="title">生产条件设置</h3>
                 <el-row type="flex" align="middle">
                     到达预产期前
                     <el-col :span="2" style="margin:10px 8px">
-                        <el-input v-model.number="formData.ac" @blur="save"></el-input>
+                        <el-input v-model.number="formData.f" @blur="AddOrUpdateSoftwareSet"></el-input>
                     </el-col>天提醒关注
                 </el-row>
                 <el-row type="flex" align="middle">
                     分娩后
                     <el-col :span="2" style="margin:10px 8px">
-                        <el-input v-model.number="formData.ad" @blur="save"></el-input>
+                        <el-input v-model.number="formData.g" @blur="AddOrUpdateSoftwareSet"></el-input>
                     </el-col>天提醒断奶
                 </el-row>
                 <el-row type="flex" align="middle">
                     断奶后
                     <el-col :span="2" style="margin:10px 8px">
-                        <el-input v-model.number="formData.ae" @blur="save"></el-input>
+                        <el-input v-model.number="formData.h" @blur="AddOrUpdateSoftwareSet"></el-input>
                     </el-col>天提醒转舍
                 </el-row>
                 <el-row type="flex" align="middle">
                     母猪温度高于
                     <el-col :span="2" style="margin:10px 8px">
-                        <el-input v-model.number="formData.af" @blur="save"></el-input>
+                        <el-input v-model.number="formData.i" @blur="AddOrUpdateSoftwareSet"></el-input>
                     </el-col>℃提醒高温预警
                 </el-row>
             </article>
@@ -86,17 +86,68 @@
 
 
 <script>
+import { reqSoftwareSet, reqAddOrUpdateSoftwareSet } from "@/api/system.js";
+
 export default {
     name: "softwareSet",
     data() {
         return {
-            formData: {}
+            formData: {
+                a: "",
+                b: "",
+                c1: "",
+                c2: "",
+                c3: "",
+                d1: "",
+                d2: "",
+                d3: "",
+                e1: "",
+                e2: "",
+                e3: "",
+                f: "",
+                g: "",
+                h: "",
+                i: ""
+            }
         };
     },
-    created() {},
+    created() {
+        this.getSoftwareSet();
+    },
     methods: {
-        save() {
-            console.log(this.formData)
+        getSoftwareSet() {
+            reqSoftwareSet()
+                .then(res => {
+                    this.reqInfo = res;
+                    res.conf.data.forEach(item => {
+                        this.formData[item.key] = item.val;
+                    });
+                })
+                .catch(err => {
+                    console.error(err);
+                });
+        },
+        AddOrUpdateSoftwareSet() {
+            let tempArr = [];
+            for (const key in this.formData) {
+                tempArr.push({ key, val: this.formData[key] });
+            }
+            this.reqInfo.conf = JSON.stringify({
+                data: tempArr
+            });
+            reqAddOrUpdateSoftwareSet(this.reqInfo)
+                .then(res => {
+                    console.log(res);
+                    this.getSoftwareSet();
+                    if (res.errCode) {
+                        this.$message.error(res.errMsg);
+                    } else {
+                        this.$message.success("成功");
+                    }
+                })
+                .catch(err => {
+                    console.error(err);
+                });
         }
     }
 };
@@ -106,12 +157,12 @@ export default {
 .softwareSet {
     .section {
         width: 800px;
-        background-color: #eee;
-        border-radius: 15px;
+        // background-color: #eee;
+        // border-radius: 15px;
         padding: 30px;
         article {
             color: #666;
-            
+
             .title {
                 color: #555;
             }