|
@@ -2,68 +2,69 @@
|
|
|
<div class="Index">
|
|
|
<header class="header">
|
|
|
<div class="left">
|
|
|
- <chart-a class="chart_a"></chart-a>
|
|
|
+ <chart-a class="chart_a" :data1="chart_a_data.data1" :data2="chart_a_data.data2"></chart-a>
|
|
|
</div>
|
|
|
<div class="right">
|
|
|
- <chart-b></chart-b>
|
|
|
+ <chart-b :data="chart_b_data.data"></chart-b>
|
|
|
</div>
|
|
|
</header>
|
|
|
<section class="section">
|
|
|
<ul class="ul">
|
|
|
<li class="li">
|
|
|
<span class="title">总产仔数</span>
|
|
|
- <span class="content">2141</span>
|
|
|
+ <span class="content">{{ info.allDeliver }}</span>
|
|
|
</li>
|
|
|
<li class="li">
|
|
|
<span class="title">总活仔数</span>
|
|
|
- <span class="content">2035</span>
|
|
|
+ <span class="content">{{ info.allWeaning }}</span>
|
|
|
</li>
|
|
|
<li class="li">
|
|
|
<span class="title">均产仔数</span>
|
|
|
- <span class="content">11</span>
|
|
|
+ <span class="content">{{ info.avgDeliver }}</span>
|
|
|
</li>
|
|
|
<li class="li">
|
|
|
<span class="title">均断奶活仔数</span>
|
|
|
- <span class="content">10</span>
|
|
|
+ <span class="content">{{ info.avgWeaning }}</span>
|
|
|
</li>
|
|
|
<li class="li">
|
|
|
<span class="title">均断奶天数</span>
|
|
|
- <span class="content">21</span>
|
|
|
+ <span class="content">{{ info.avgWeaningPeriod }}</span>
|
|
|
</li>
|
|
|
<li class="li">
|
|
|
<span class="title">均断奶存活率</span>
|
|
|
- <span class="content">97%</span>
|
|
|
+ <span class="content">{{ (info.weaningRate*100).toFixed(2) }}%</span>
|
|
|
</li>
|
|
|
</ul>
|
|
|
</section>
|
|
|
<footer class="footer">
|
|
|
- <el-carousel height="150px" :interval="5000" direction="vertical" indicator-position="none">
|
|
|
- <el-carousel-item>
|
|
|
- <div class="item item_1">
|
|
|
+ <el-carousel
|
|
|
+ height="150px"
|
|
|
+ :interval="5000"
|
|
|
+ direction="vertical"
|
|
|
+ indicator-position="none"
|
|
|
+ >
|
|
|
+ <el-carousel-item v-for="item in tableData" :key="item.id">
|
|
|
+ <div class="item item_1" v-if="item.status == 0">
|
|
|
<div class="left el-icon-mobile-phone"></div>
|
|
|
<div class="right">
|
|
|
<p class="top">消息警报</p>
|
|
|
- <p class="middle">1耳标457865号母猪产仔存活率低于70%</p>
|
|
|
+ <p class="middle">{{ item.message }}</p>
|
|
|
<span class="bottom">查看详情</span>
|
|
|
</div>
|
|
|
</div>
|
|
|
- </el-carousel-item>
|
|
|
- <el-carousel-item>
|
|
|
- <div class="item item_2">
|
|
|
+ <div class="item item_1" v-else-if="item.status == 1">
|
|
|
<div class="left el-icon-mobile-phone"></div>
|
|
|
<div class="right">
|
|
|
<p class="top">消息警报</p>
|
|
|
- <p class="middle">2耳标457865号母猪产仔存活率低于70%</p>
|
|
|
+ <p class="middle">{{ item.message }}</p>
|
|
|
<span class="bottom">查看详情</span>
|
|
|
</div>
|
|
|
</div>
|
|
|
- </el-carousel-item>
|
|
|
- <el-carousel-item>
|
|
|
- <div class="item item_3">
|
|
|
+ <div class="item item_1" v-else>
|
|
|
<div class="left el-icon-mobile-phone"></div>
|
|
|
<div class="right">
|
|
|
<p class="top">消息警报</p>
|
|
|
- <p class="middle">3耳标457865号母猪产仔存活率低于70%</p>
|
|
|
+ <p class="middle">{{ item.message }}</p>
|
|
|
<span class="bottom">查看详情</span>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -74,10 +75,12 @@
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
-import { mapActions } from "vuex";
|
|
|
import chart_a from "./charts/chart_a";
|
|
|
import chart_b from "./charts/chart_b";
|
|
|
|
|
|
+import { reqIndexInfo } from "@/api/index.js";
|
|
|
+import { reqProductionWarnList } from "@/api/infoInform.js";
|
|
|
+
|
|
|
export default {
|
|
|
name: "Index",
|
|
|
components: {
|
|
@@ -85,25 +88,63 @@ export default {
|
|
|
"chart-b": chart_b
|
|
|
},
|
|
|
data() {
|
|
|
- return {};
|
|
|
+ return {
|
|
|
+ info: {},
|
|
|
+ chart_a_data: {
|
|
|
+ data1: [],
|
|
|
+ data2: []
|
|
|
+ },
|
|
|
+ chart_b_data: {
|
|
|
+ data: []
|
|
|
+ },
|
|
|
+ tableData: []
|
|
|
+ };
|
|
|
+ },
|
|
|
+ created() {
|
|
|
+ this.getIndexInfo();
|
|
|
+ this.getProductionWarnList();
|
|
|
},
|
|
|
- created() {},
|
|
|
methods: {
|
|
|
- ...mapActions(["fetch"]),
|
|
|
- get() {
|
|
|
- this.fetch({
|
|
|
- api: "aaa",
|
|
|
- method: "GET",
|
|
|
- data: {},
|
|
|
- success: res => {
|
|
|
+ getIndexInfo() {
|
|
|
+ reqIndexInfo()
|
|
|
+ .then(res => {
|
|
|
console.log(res);
|
|
|
- },
|
|
|
- fail: err => {
|
|
|
- console.log(err);
|
|
|
- if (err.errMsg) this.$message.error(err.errMsg);
|
|
|
- else this.$message.error("服务器发生异常");
|
|
|
- }
|
|
|
- });
|
|
|
+ this.info = res;
|
|
|
+ this.chart_a_data.data1 = [
|
|
|
+ {
|
|
|
+ value: res.feed + res.entry + res.weaning,
|
|
|
+ name: "已用产床"
|
|
|
+ },
|
|
|
+ { value: res.empty, name: "未用产床" }
|
|
|
+ ];
|
|
|
+ this.chart_a_data.data2 = [
|
|
|
+ { value: res.entry, name: "待产" },
|
|
|
+ { value: res.feed, name: "已产" },
|
|
|
+ { value: res.weaning, name: "断奶" },
|
|
|
+ { value: res.empty, name: "空产床" }
|
|
|
+ ];
|
|
|
+ this.chart_b_data.data = [
|
|
|
+ res.weaning,
|
|
|
+ res.feed,
|
|
|
+ res.entry,
|
|
|
+ res.empty,
|
|
|
+ res.feed + res.entry + res.weaning,
|
|
|
+ res.feed + res.entry + res.weaning + res.empty
|
|
|
+ ];
|
|
|
+ })
|
|
|
+ .catch(err => {
|
|
|
+ console.error(err);
|
|
|
+ });
|
|
|
+ },
|
|
|
+ getProductionWarnList() {
|
|
|
+ reqProductionWarnList({ pageSize: 1000, pageNum: 1 })
|
|
|
+ .then(res => {
|
|
|
+ console.log(res.content)
|
|
|
+ this.tableData = res.content;
|
|
|
+ })
|
|
|
+ .catch(err => {
|
|
|
+ console.error(err);
|
|
|
+ });
|
|
|
}
|
|
|
}
|
|
|
};
|
|
@@ -154,50 +195,50 @@ export default {
|
|
|
}
|
|
|
}
|
|
|
.footer {
|
|
|
- .item{
|
|
|
+ .item {
|
|
|
height: 100%;
|
|
|
display: flex;
|
|
|
box-sizing: border-box;
|
|
|
border-radius: 10px;
|
|
|
align-items: center;
|
|
|
-
|
|
|
- .left{
|
|
|
+
|
|
|
+ .left {
|
|
|
font-size: 30px;
|
|
|
margin-left: 20px;
|
|
|
margin-right: 20px;
|
|
|
}
|
|
|
- .right{
|
|
|
- .top{
|
|
|
+ .right {
|
|
|
+ .top {
|
|
|
font-size: 20px;
|
|
|
font-weight: 600;
|
|
|
color: #746363;
|
|
|
}
|
|
|
- .middle{
|
|
|
+ .middle {
|
|
|
font-size: 16px;
|
|
|
color: #999;
|
|
|
}
|
|
|
- .bottom{
|
|
|
+ .bottom {
|
|
|
font-size: 16px;
|
|
|
color: rgb(48, 115, 240);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- .item_1{
|
|
|
- background-color: #EBF5FF;
|
|
|
- .left{
|
|
|
- color: #0079FE;
|
|
|
+ .item_1 {
|
|
|
+ background-color: #ebf5ff;
|
|
|
+ .left {
|
|
|
+ color: #0079fe;
|
|
|
}
|
|
|
}
|
|
|
- .item_2{
|
|
|
- background-color: #E6FAF0;
|
|
|
- .left{
|
|
|
- color: #4BD863;
|
|
|
+ .item_2 {
|
|
|
+ background-color: #e6faf0;
|
|
|
+ .left {
|
|
|
+ color: #4bd863;
|
|
|
}
|
|
|
}
|
|
|
- .item_3{
|
|
|
- background-color: #FFEEE6;
|
|
|
- .left{
|
|
|
- color: #FF3B30;
|
|
|
+ .item_3 {
|
|
|
+ background-color: #ffeee6;
|
|
|
+ .left {
|
|
|
+ color: #ff3b30;
|
|
|
}
|
|
|
}
|
|
|
}
|