linan 4 anos atrás
pai
commit
d50a95e8c8

+ 4 - 1
src/api/material.js

@@ -1,4 +1,4 @@
-import { ajax } from "../sdk/ajax";
+import { ajax, upload } from "../sdk/ajax";
 // 物料管理
 
 /* 基础信息  BasicsInfo*/
@@ -31,3 +31,6 @@ export const reqAddMOutStore = (data) => ajax("post", "/farm-huyang/stockOut/add
 export const reqDelMOutStore = (id) => ajax("post", "/farm-huyang/stockOut/delete", {id})
 
 
+/* 图片上传 */
+export const reqUploadImg = (data) => upload("/farm-huyang/common/pic", data)
+

+ 127 - 0
src/components/uploadImg/test.vue

@@ -0,0 +1,127 @@
+<template>
+    <div>
+        <el-upload
+            action="#"
+            list-type="picture-card"
+            :before-upload="beforeUpload"
+            :auto-upload="true"
+        >
+            <i slot="default" class="el-icon-plus"></i>
+            <div slot="file" slot-scope="{file}">
+                <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
+                <!-- <img class="el-upload-list__item-thumbnail" :src="imgUrl" alt /> -->
+                <span class="el-upload-list__item-actions">
+                    <span
+                        class="el-upload-list__item-preview"
+                        @click="handlePictureCardPreview(file)"
+                    >
+                        <i class="el-icon-zoom-in"></i>
+                    </span>
+                    <span
+                        v-if="!disabled"
+                        class="el-upload-list__item-delete"
+                        @click="handleDownload(file)"
+                    >
+                        <i class="el-icon-download"></i>
+                    </span>
+                    <span
+                        v-if="!disabled"
+                        class="el-upload-list__item-delete"
+                        @click="handleRemove(file)"
+                    >
+                        <i class="el-icon-delete"></i>
+                    </span>
+                </span>
+            </div>
+        </el-upload>
+        <el-dialog :visible.sync="dialogVisible">
+            <img width="100%" :src="imgUrl" alt />
+        </el-dialog>
+    </div>
+</template>
+
+
+<script>
+import { reqUploadImg } from "@/api/material.js";
+// http://192.168.1.5:8016/files/2ceed3f6bfbfd9fc6d6c9b8c455158ec-1000.jpg  $attrs.value
+// http://192.168.1.5:8016/files/v2-996be5e52e4b43d08ae6ca8cae80b0fd_r.jpg
+// http://192.168.1.5:8016/files/v2-a862735c06feb9edce4369859daf5c12_r.jpg
+export default {
+    data() {
+        return {
+            dialogVisible: false,
+            disabled: false
+        };
+    },
+    props: {
+        value: String
+    },
+    watch: {
+        value(v, ov) {
+            console.log(v);
+        }
+    },
+    computed: {
+        imgUrl() {
+            return this.value;
+        }
+    },
+    created() {},
+    methods: {
+        beforeUpload(file) {
+            let formData = new FormData();
+            formData.append("photo", file, encodeURIComponent(file.name));
+            reqUploadImg(formData)
+                .then(res => {
+                    console.log(res);
+                    // this.$attrs.value = res
+                    // this.value = res;
+                    this.$emit("on-msg", res);
+                    // this.$set(this, 'value', res)
+                    console.log();
+                })
+                .catch(err => {
+                    console.log(err);
+                });
+            return false;
+        },
+        handleRemove(file) {
+            console.log(file);
+        },
+        handlePictureCardPreview(file) {
+            this.imgUrl = file.url;
+            this.dialogVisible = true;
+        },
+        handleDownload(file) {
+            console.log(file);
+        }
+    }
+};
+</script>
+
+
+<style lang="scss" scope>
+.avatar-uploader .el-upload {
+    border: 1px dashed #d9d9d9;
+    border-radius: 6px;
+    cursor: pointer;
+    position: relative;
+    overflow: hidden;
+}
+.avatar-uploader .el-upload:hover {
+    border-color: #409eff;
+}
+.avatar-uploader-icon {
+    font-size: 28px;
+    color: #8c939d;
+    width: 178px;
+    height: 178px;
+    line-height: 178px;
+    text-align: center;
+}
+.avatar {
+    width: 178px;
+    height: 178px;
+    display: block;
+}
+</style>

+ 112 - 0
src/components/uploadImg/uploadImg.vue

@@ -0,0 +1,112 @@
+<template>
+    <div>
+        <el-upload
+            class="avatar-uploader"
+            action="http://115.238.57.190:8010/farm-huyang/common/pic"
+            :headers="{'x-auth-token': token}"
+            name="photo"
+            :show-file-list="false"
+            :on-success="handleAvatarSuccess"
+            :before-upload="beforeAvatarUpload"
+        >
+            <img v-if="imageUrl" :src="imageUrl" class="avatar" />
+            <i v-else class="el-icon-plus avatar-uploader-icon"></i>
+        </el-upload>
+    </div>
+</template>
+
+
+<script>
+import { reqUploadImg } from "@/api/material.js";
+// http://192.168.1.5:8016/files/2ceed3f6bfbfd9fc6d6c9b8c455158ec-1000.jpg  $attrs.value
+// http://192.168.1.5:8016/files/v2-996be5e52e4b43d08ae6ca8cae80b0fd_r.jpg
+// http://192.168.1.5:8016/files/v2-a862735c06feb9edce4369859daf5c12_r.jpg
+export default {
+    data() {
+        return {
+            imageUrl: ""
+        };
+    },
+    props: {
+        value: String
+    },
+    watch: {
+        value(v, ov) {
+            console.log(v);
+        }
+    },
+    computed: {
+        imgUrl() {
+            return this.value;
+        }
+    },
+    beforeCreate() {
+        this.token = localStorage.getItem("token")
+    },
+    created() {},
+    methods: {
+        beforeUpload(file) {
+            // let formData = new FormData();
+            // formData.append("photo", file);
+            // reqUploadImg(formData)
+            //     .then(res => {
+            //         console.log(res);
+            //         // this.$attrs.value = res
+            //         // this.value = res;
+            //         this.dialogImageUrl = res;
+            //         this.$emit("on-msg", res);
+            //         // this.$set(this, 'value', res)
+            //         console.log();
+            //     })
+            //     .catch(err => {
+            //         console.log(err);
+            //     });
+            // return false;
+        },
+        handleAvatarSuccess(res, file) {
+            console.log('===========')
+            console.log(res)
+            this.imageUrl = URL.createObjectURL(file.raw);
+        },
+        beforeAvatarUpload(file) {
+            const isJPG = file.type === "image/jpeg";
+            const isLt2M = file.size / 1024 / 1024 < 2;
+
+            if (!isJPG) {
+                this.$message.error("上传头像图片只能是 JPG 格式!");
+            }
+            if (!isLt2M) {
+                this.$message.error("上传头像图片大小不能超过 2MB!");
+            }
+            return isJPG && isLt2M;
+        }
+    }
+};
+</script>
+
+
+<style lang="scss" scope>
+.avatar-uploader .el-upload {
+    border: 1px dashed #d9d9d9;
+    border-radius: 6px;
+    cursor: pointer;
+    position: relative;
+    overflow: hidden;
+}
+.avatar-uploader .el-upload:hover {
+    border-color: #409eff;
+}
+.avatar-uploader-icon {
+    font-size: 28px;
+    color: #8c939d;
+    width: 178px;
+    height: 178px;
+    line-height: 178px;
+    text-align: center;
+}
+.avatar {
+    width: 178px;
+    height: 178px;
+    display: block;
+}
+</style>

+ 32 - 4
src/sdk/ajax.js

@@ -15,14 +15,14 @@ Vue.use(VueAxios, axios)
 /* 常用ajax封装 (固定URL) */
 export const ajax = function (type = "post", url, params) {
     let token = localStorage.getItem("token")
-    if(type.toLowerCase() == 'get'){
+    if (type.toLowerCase() == 'get') {
         return new Promise((resole, reject) => {
             axios({
                 method: type,
                 url: serverAddress + url,
                 params,
-                paramsSerializer: function(params) {
-                    return Qs.stringify(params, {arrayFormat: 'brackets'})
+                paramsSerializer: function (params) {
+                    return Qs.stringify(params, { arrayFormat: 'brackets' })
                 },
                 headers: {
                     'Content-Type': 'application/x-www-form-urlencoded',
@@ -63,5 +63,33 @@ export const ajax = function (type = "post", url, params) {
             });
         });
     }
-    
 }
+
+
+
+export const upload = function (url, data) {
+    let token = localStorage.getItem("token")
+    return new Promise((resole, reject) => {
+        axios({
+            method: 'POST',
+            url: serverAddress + url,
+            data,
+            headers: {
+                'Content-Type': 'multipart/form-data',
+                '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);
+        });
+    });
+}
+
+

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

@@ -23,7 +23,7 @@
         <section>
             <article class="table">
                 <el-table :data="tableData" tooltip-effect="dark" style="width: 100%">
-                    <el-table-column prop="id" label="种羊编码" width="100"></el-table-column>
+                    <el-table-column prop="id" label="种羊编码" width="100"></el-table-column>
                     <el-table-column label="入场时间" width="200">
                         <template v-slot="scope">
                             <span>{{ scope.row['entryTime'].substr(0,10) }}</span>
@@ -94,6 +94,10 @@
                         :rules="rules"
                         label-width="140px"
                     >
+                        <el-form-item label="种羊编码">
+                            <el-input v-model="formData.id"></el-input>
+                        </el-form-item>
+
                         <el-form-item label="日龄">
                             <el-input v-model="formData.dayOfAge"></el-input>
                         </el-form-item>
@@ -191,6 +195,7 @@ export default {
             isShow: false,
             rules,
             formData: {
+                id: '',
                 dayOfAge: "222",
                 source: 1,
                 position: "",

+ 12 - 0
src/views/harmless/harmlessConfirm.vue

@@ -30,6 +30,7 @@
                     <el-table-column prop="sheepId" label="羊只编号"></el-table-column>
                     <el-table-column prop="number" label="数量"></el-table-column>
                     <el-table-column prop="cause" label="原因"></el-table-column>
+                    <el-table-column prop="opeUser" label="处理人"></el-table-column>
                     <el-table-column prop="position" label="当前位置"></el-table-column>
                     <el-table-column label="状态">
                         <template v-slot="scope">
@@ -81,6 +82,16 @@
                         <el-form-item label="原因">
                             <el-input type="textarea" autosize v-model="formData.cause"></el-input>
                         </el-form-item>
+                        <el-form-item label="处理人">
+                            <el-select v-model="formData.opeUser" filterable placeholder="请选择">
+                                <el-option
+                                    v-for="item in $store.state['workerList']"
+                                    :key="item.id"
+                                    :label="`${item.name}(${item.position})`"
+                                    :value="item.id"
+                                ></el-option>
+                            </el-select>
+                        </el-form-item>
                         <el-form-item label="当前位置">
                             <el-input v-model="formData.position"></el-input>
                         </el-form-item>
@@ -128,6 +139,7 @@ export default {
                 sheepId: "12,192,33",
                 number: 3,
                 cause: "运损",
+                opeUser: null,
                 position: "无害化冷库",
                 status: this.$store.state['harmlessConfirmStatus'][0].value
             },

+ 37 - 9
src/views/material/basicsInfo.vue

@@ -121,9 +121,15 @@
                         <el-form-item label="注意事项">
                             <el-input type="textarea" autosize v-model="formData.note"></el-input>
                         </el-form-item>
-                        <el-form-item label="图片地址">
+                        <!-- <el-form-item label="图片地址">
                             <el-input v-model="formData.img"></el-input>
+                        </el-form-item> -->
+                        <el-form-item label="图片地址">
+                            <uploadImg v-model="formData.img" @on-msg="onMsg"></uploadImg>
                         </el-form-item>
+                        <!-- <el-form-item label="图片地址">
+                            <input @change="cc" type="file" value="">
+                        </el-form-item> -->
                         <el-form-item label="状态">
                             <el-radio-group v-model="formData.density">
                                 <el-radio
@@ -145,34 +151,40 @@
 </template>
 
 <script>
+import uploadImg from '@/components/uploadImg/uploadImg'
 import {
     reqBasicsInfoList,
     reqAddOrUpdateBasicsInfo,
-    reqDelBasicsInfo
+    reqDelBasicsInfo,
 } from "@/api/material.js";
 
 const pageSize = 10;
 const rules = {};
 
+
 export default {
     name: "BasicsInfoInfo",
+    components: {
+        uploadImg
+    },
     data() {
         return {
+            imageUrl: '',
             search: "",
             pageNum: 1,
             tableData: [],
             totalPages: 0,
             isShow: false,
             formData: {
-                name: "玉米赤霉醇",
-                periodOfValidity: 360,
+                name: "",
+                periodOfValidity: null,
                 unit: this.$store.state["periodOfValidityUnit"][0].value,
-                safeThreshold: 150,
+                safeThreshold: null,
                 specifications: "盒",
-                usageIntro: "内服",
+                usageIntro: "",
                 factory: "xx药厂",
                 note: "",
-                img: "2.jpg",
+                img: "",
                 density: this.$store.state["drugStatus"][1].value
             },
             isAdd: false,
@@ -185,6 +197,11 @@ export default {
     },
     computed: {},
     methods: {
+        
+        onMsg(imgUrl) {
+            console.log(imgUrl)
+            this.formData.img = imgUrl
+        },
         submitForm(formName) {
             this.$refs[formName].validate(valid => {
                 if (valid) {
@@ -195,7 +212,7 @@ export default {
                             // 获取基础药品列表 给后面下拉选择器使用
                             this.$store.dispatch("getDrugBasicsList");
                             this.$message.success("成功!");
-                            // this.isShow = false
+                            this.isShow = false
                         })
                         .catch(err => {
                             console.log(err);
@@ -224,7 +241,18 @@ export default {
         add() {
             this.isShow = true;
             // 有id是update 没id是add
-            delete this.formData.id;
+            this.formData = {
+                name: "",
+                periodOfValidity: null,
+                unit: this.$store.state["periodOfValidityUnit"][0].value,
+                safeThreshold: null,
+                specifications: "盒",
+                usageIntro: "",
+                factory: "xx药厂",
+                note: "",
+                img: "",
+                density: this.$store.state["drugStatus"][1].value
+            }
         },
         edit(row) {
             this.formData = row;

+ 93 - 156
src/views/production/productionWarn.vue

@@ -1,177 +1,114 @@
 <template>
     <div class="productionWarn">
         <h2 style="margin-bottom: 20px;padding-bottom:7px;border-bottom:2px solid #ddd">生产预警</h2>
-
-        <header id="header">
-            
-            <el-row type="flex">
-                <el-col :span="4">
-                    <el-select v-model="value" placeholder="请选择">
-                        <el-option label="1区" value="11"></el-option>
-                        <el-option label="2区" value="22"></el-option>
-                    </el-select>
-                </el-col>
-                <el-col :span="4">
-                    <el-select v-model="value" placeholder="请选择">
-                        <el-option label="1舍" value="13"></el-option>
-                        <el-option label="2舍" value="24"></el-option>
-                    </el-select>
-                </el-col>
-                <el-col :span="4">
-                    <el-select v-model="value" placeholder="请选择">
-                        <el-option label="可用" value="15"></el-option>
-                        <el-option label="可用" value="26"></el-option>
-                    </el-select>
-                </el-col>
-                <el-col :span="4">
-                    <el-button type="primary">查找</el-button>
-                </el-col>
-                <el-col :span="4">
-                    <el-button type="primary">新增</el-button>
-                </el-col>
-            </el-row>
-        </header>
-        <section>
-            <article class="table">
-                <el-table
-                    ref="multipleTable"
-                    :data="tableData"
-                    tooltip-effect="dark"
-                    style="width: 100%"
-                    @selection-change="handleSelectionChange"
-                >
-                    <el-table-column type="selection" width="55"></el-table-column>
-                    <el-table-column prop="a" label="屠宰批次"></el-table-column>
-                    <el-table-column prop="b" label="产品名称"></el-table-column>
-                    <el-table-column prop="c" label="排酸时间"></el-table-column>
-                    <el-table-column prop="d" label="排酸前重量"></el-table-column>
-                    <el-table-column prop="e" label="排酸后重量"></el-table-column>
-                    <el-table-column prop="f" label="排酸损耗"></el-table-column>
-                    <el-table-column prop="g" label="负责人员"></el-table-column>
-                    <!-- <el-table-column label="操作" width="150">
-                        <template slot-scope="scope">
-                            <el-button @click="edit(scope.row)" type="text" size="small">编辑</el-button>
-                            <el-popconfirm title="是否删除此设备的信息?" @onConfirm="del(scope.row)">
-                                <el-button slot="reference" type="text" size="small">删除</el-button>
-                            </el-popconfirm>
-                        </template>
-                    </el-table-column> -->
-                </el-table>
-                <div style="margin-top: 20px">
-                    <el-button @click="toggleSelection([tableData[1], tableData[2]])">切换第二、第三行的选中状态</el-button>
-                    <el-button @click="toggleSelection()">取消选择</el-button>
-                    <el-button @click="inStore">入待宰栏</el-button>
+        <section class="section">
+            <h3>预警信息:</h3>
+            <article class="item item_1">
+                <div class="left el-icon-mobile-phone"></div>
+                <div class="right">
+                    <p class="top">消息警报</p>
+                    <p class="middle">伊维菌素已经低于安全库存请及时补充!</p>
+                    <span class="bottom">查看详情</span>
+                </div>
+            </article>
+            <article class="item item_1">
+                <div class="left el-icon-mobile-phone"></div>
+                <div class="right">
+                    <p class="top">消息警报</p>
+                    <p class="middle">2622种母羊还有七天到达预产期请注意!</p>
+                    <span class="bottom">查看详情</span>
+                </div>
+            </article>
+            <article class="item item_1">
+                <div class="left el-icon-mobile-phone"></div>
+                <div class="right">
+                    <p class="top">消息警报</p>
+                    <p class="middle">3456种母羊已经到达可断奶日期,请及时断奶!</p>
+                    <span class="bottom">查看详情</span>
+                </div>
+            </article>
+            <article class="item item_1">
+                <div class="left el-icon-mobile-phone"></div>
+                <div class="right">
+                    <p class="top">消息警报</p>
+                    <p class="middle">伊维菌素已经低于安全库存请及时补充!</p>
+                    <span class="bottom">查看详情</span>
+                </div>
+            </article>
+            <article class="item item_1">
+                <div class="left el-icon-mobile-phone"></div>
+                <div class="right">
+                    <p class="top">消息警报</p>
+                    <p class="middle">2622种母羊还有七天到达预产期请注意!</p>
+                    <span class="bottom">查看详情</span>
+                </div>
+            </article>
+            <article class="item item_1">
+                <div class="left el-icon-mobile-phone"></div>
+                <div class="right">
+                    <p class="top">消息警报</p>
+                    <p class="middle">3456种母羊已经到达可断奶日期,请及时断奶!</p>
+                    <span class="bottom">查看详情</span>
                 </div>
-
-                <el-row type="flex" justify="end">
-                    <el-col :span="8" class="pagination">
-                        <el-pagination
-                            @current-change="pageChange"
-                            background
-                            layout="prev, pager, next"
-                            :page-count="10"
-                        ></el-pagination>
-                    </el-col>
-                </el-row>
             </article>
         </section>
     </div>
 </template>
 
 <script>
-
-const pageSize = 10
-const tableData = [
-                {
-                    a: "15463",
-                    b: "胴体",
-                    c: "2020-07-14",
-                    d: "49kg",
-                    e: "48kg",
-                    f: "1.6%",
-                    g: "张小刚",
-                },
-                {
-                    a: "15463",
-                    b: "带骨羊前腿",
-                    c: "2020-07-14",
-                    d: "49kg",
-                    e: "48kg",
-                    f: "1.6%",
-                    g: "张小刚",
-                },
-                {
-                    a: "15463",
-                    b: "羔羊肉卷",
-                    c: "2020-07-14",
-                    d: "49kg",
-                    e: "48kg",
-                    f: "1.6%",
-                    g: "张小刚",
-                },
-                {
-                    a: "15463",
-                    b: "胴体",
-                    c: "2020-07-14",
-                    d: "49kg",
-                    e: "48kg",
-                    f: "1.6%",
-                    g: "张小刚",
-                },
-                {
-                    a: "15463",
-                    b: "羔羊肉卷",
-                    c: "2020-07-14",
-                    d: "49kg",
-                    e: "48kg",
-                    f: "1.6%",
-                    g: "张小刚",
-                },
-                
-                
-            ]
-
 export default {
     data() {
-        return {
-            value: "",
-            multipleSelection: [],
-            page: 1,
-            tableData
-        };
+        return {};
     },
     created() {},
-    methods: {
-        toggleSelection(rows) {
-            if (rows) {
-                rows.forEach(row => {
-                    this.$refs.multipleTable.toggleRowSelection(row);
-                });
-            } else {
-                this.$refs.multipleTable.clearSelection();
-            }
-        },
-        // 入待宰栏
-        inStore() {},
-        handleSelectionChange(val) {
-            this.multipleSelection = val;
-        },
-        edit(row) {},
-        del(row) {},
-        pageChange(p) {
-            console.log(p);
-        }
-    }
+    methods: {}
 };
 </script>
 
 <style lang="scss" scoped>
-#header {
-    margin-bottom: 15px;
-}
-.table {
-    .pagination {
-        margin-top: 20px;
+.productionWarn {
+    .section{
+        padding: 0 3%;
+        h3{
+            color: #333;
+            font-size: 22px;
+            margin-bottom: 30px;
+        }
+        .item{
+            height: 110px;
+            margin: 15px 0;
+            display: flex;
+            box-sizing: border-box;
+            border-radius: 10px;
+            align-items: center;
+            
+            .left{
+                font-size: 30px;
+                margin-left: 20px;
+                margin-right: 20px;
+            }
+            .right{
+                .top{
+                    font-size: 20px;
+                    font-weight: 600;
+                    color: #746363;
+                }
+                .middle{
+                    font-size: 16px;
+                    color: #999;
+                }
+                .bottom{
+                    font-size: 16px;
+                    color: rgb(48, 115, 240);
+                }
+            }
+        }
+        .item_1{
+            background-color: #FFF5E6;
+            .left{
+                color: #FE9400;
+            }
+        }
     }
 }
 </style>

src/views/statisticAnalysis/charts/EEveDis.vue → src/views/statisticAnalysis/charts/E-EveDis.vue


src/views/statisticAnalysis/charts/EEveLevelDis.vue → src/views/statisticAnalysis/charts/E-EveLevelDis.vue


src/views/statisticAnalysis/charts/EGiveBirth.vue → src/views/statisticAnalysis/charts/E-GiveBirth.vue


src/views/statisticAnalysis/charts/EOutSheepfold.vue → src/views/statisticAnalysis/charts/E-OutSheepfold.vue


+ 6 - 6
src/views/statisticAnalysis/existSstatistic.vue

@@ -5,10 +5,10 @@
         <h2 style="margin-bottom: 20px;padding-bottom:7px;border-bottom:2px solid #ddd">存栏统计</h2>
         <header class="header">
             <div class="left">
-                <E-Eve-Dis></E-Eve-Dis>
+                <E-EveDis></E-EveDis>
             </div>
             <div class="right">
-                <E-Eve-Level-Dis></E-Eve-Level-Dis>
+                <E-EveLevelDis></E-EveLevelDis>
             </div>
         </header>
         <section class="section">
@@ -54,14 +54,14 @@
 </template>
 
 <script>
-import EEveDis from "./charts/EEveDis";
-import EEveLevelDis from "./charts/EEveLevelDis";
+import EEveDis from "./charts/E-EveDis";
+import EEveLevelDis from "./charts/E-EveLevelDis";
 
 export default {
     name: "Index",
     components: {
-        "E-Eve-Dis": EEveDis,
-        "E-Eve-Level-Dis": EEveLevelDis
+        EEveDis,
+        EEveLevelDis
     },
     data() {
         return {};

+ 6 - 6
src/views/statisticAnalysis/productData.vue

@@ -3,10 +3,10 @@
         <h2 style="margin-bottom: 20px;padding-bottom:7px;border-bottom:2px solid #ddd">生产统计</h2>
         <header class="header">
             <div class="left">
-                <E-Out-Sheepfold></E-Out-Sheepfold>
+                <E-OutSheepfold></E-OutSheepfold>
             </div>
             <div class="right">
-                <E-Give-Birth></E-Give-Birth>
+                <E-GiveBirth></E-GiveBirth>
             </div>
         </header>
         <section class="section">
@@ -38,14 +38,14 @@
 </template>
 
 <script>
-import EOutSheepfold from "./charts/EOutSheepfold";
-import EGiveBirth from "./charts/EGiveBirth";
+import EOutSheepfold from "./charts/E-OutSheepfold";
+import EGiveBirth from "./charts/E-GiveBirth";
 
 export default {
     name: "Index",
     components: {
-        "E-Out-Sheepfold": EOutSheepfold,
-        "E-Give-Birth": EGiveBirth
+        EOutSheepfold,
+        EGiveBirth
     },
     data() {
         return {};