linan 4 yıl önce
ebeveyn
işleme
4d25f31ee6

+ 16 - 68
src/api/breed.js

@@ -1,83 +1,31 @@
 import { ajax } from "../sdk/ajax";
+/* 智能养殖 */
 
-/* seedSheepFile import { reqSeedSheepList } from '@/api/breed.js' */
-// 获取种羊档案
-export const reqSeedSheepList = (data) => ajax("post", "/farm-huyang/sheep/list", data)
+// 零散信息 Breed_info
+export const reqBreed_info = () => ajax("post", "/farm-huyang/produceConfig/other")
 
-// 新增种羊档案
-export const reqAddSeedSheepFile = (data) => ajax("post", "/farm-huyang/sheep/add", data)
+export const reqSetBreed_info = (data) => ajax("post", "/farm-huyang/produceConfig/setOther", data)
 
-// 删除种羊档案
-export const reqDelSeedSheepFile = (data) => ajax("post", "/farm-huyang/sheep/delete", data)
 
+// 种羊等级分布
+export const reqSheepDistribute = () => ajax("post", "/farm-huyang/produceConfig/sheepDistribute")
 
-/* 采精记录  Semen*/
-export const reqSemenList = (data) => ajax("post", "/farm-huyang/semen/list", data)
+export const reqSetSheepDistribute = (data) => ajax("post", "/farm-huyang/produceConfig/setSheepDistribute", data)
 
-export const reqAddOrUpdateSemen = (data) => ajax("post", "/farm-huyang/semen/addOrUpdate", data)
 
-export const reqDelSemen = (id) => ajax("post", "/farm-huyang/semen/delete", {id})
+// 牧场存栏 SheepLivestock
+export const reqSheepLivestock = () => ajax("post", "/farm-huyang/produceConfig/sheepLivestock")
 
+export const reqSetSheepLivestock = (data) => ajax("post", "/farm-huyang/produceConfig/setSheepLivestock", data)
 
-/* 查情记录  matingS*/
-export const reqmatingSList = (data) => ajax("post", "/farm-huyang/estrus/list", data)
 
-export const reqAddOrUpdatematingS = (data) => ajax("post", "/farm-huyang/estrus/addOrUpdate", data)
+// 消息提醒 Warn
+export const reqWarn = () => ajax("post", "/farm-huyang/produceConfig/warning")
 
-export const reqDelmatingS = (id) => ajax("post", "/farm-huyang/estrus/delete", {id})
+export const reqSetWarn = (data) => ajax("post", "/farm-huyang/produceConfig/setWarning", data)
 
 
-/* 配种记录  Mating*/
-export const reqMatingList = (data) => ajax("post", "/farm-huyang/breeding/list", data)
+// 谱系 Genealogy
+export const reqGenealogy = () => ajax("post", "/farm-huyang/produceConfig/genealogy")
 
-export const reqAddOrUpdateMating = (data) => ajax("post", "/farm-huyang/breeding/addOrUpdate", data)
-
-export const reqDelMating = (id) => ajax("post", "/farm-huyang/breeding/delete", {id})
-
-
-/* 妊检记录  PregnancyTest*/
-export const reqPregnancyTestList = (data) => ajax("post", "/farm-huyang/pregnancy/list", data)
-
-export const reqAddOrUpdatePregnancyTest = (data) => ajax("post", "/farm-huyang/pregnancy/addOrUpdate", data)
-
-export const reqDelPregnancyTest = (id) => ajax("post", "/farm-huyang/pregnancy/delete", {id})
-
-
-/* 分娩记录  Parturition*/
-export const reqParturitionList = (data) => ajax("post", "/farm-huyang/deliver/list", data)
-
-export const reqAddOrUpdateParturition = (data) => ajax("post", "/farm-huyang/deliver/addOrUpdate", data)
-
-export const reqDelParturition = (id) => ajax("post", "/farm-huyang/deliver/delete", {id})
-
-
-/* 断奶记录  Weaning*/
-export const reqWeaningList = (data) => ajax("post", "/farm-huyang/weaning/list", data)
-
-export const reqAddOrUpdateWeaning = (data) => ajax("post", "/farm-huyang/weaning/addOrUpdate", data)
-
-export const reqDelWeaning = (id) => ajax("post", "/farm-huyang/weaning/delete", {id})
-
-
-/* 离场记录  OffField*/
-export const reqOffFieldList = (data) => ajax("post", "/farm-huyang/departure/list", data)
-
-export const reqAddOrUpdateOffField = (data) => ajax("post", "/farm-huyang/departure/addOrUpdate", data)
-
-export const reqDelOffField = (id) => ajax("post", "/farm-huyang/departure/delete", {id})
-
-
-/* 转舍记录  ShiftField*/
-export const reqShiftFieldList = (data) => ajax("post", "/farm-huyang/transfer/list", data)
-
-export const reqAddOrUpdateShiftField = (data) => ajax("post", "/farm-huyang/transfer/addOrUpdate", data)
-
-export const reqDelShiftField = (id) => ajax("post", "/farm-huyang/transfer/delete", {id})
-
-
-/* 商品羊档案 CommoditySheepFile reqAddOrUpdateCommoditySheepFile */
-export const reqCommoditySheepFileList = (data) => ajax("post", "/farm-huyang/commercial/list", data)
-
-export const reqAddCommoditySheepFile = (data) => ajax("post", "/farm-huyang/commercial/add", data)
-
-export const reqDelCommoditySheepFile = (id) => ajax("post", "/farm-huyang/commercial/delete", {id})
+export const reqSetGenealogy = (data) => ajax("post", "/farm-huyang/produceConfig/setGenealogy", data)

+ 0 - 36
src/api/material.js

@@ -1,36 +0,0 @@
-import { ajax, upload } from "../sdk/ajax";
-// 物料管理
-
-/* 基础信息  BasicsInfo*/
-export const reqBasicsInfoList = (data) => ajax("post", "/farm-huyang/materiel/list", data)
-
-export const reqAddOrUpdateBasicsInfo = (data) => ajax("post", "/farm-huyang/materiel/addOrUpdate", data)
-
-export const reqDelBasicsInfo = (id) => ajax("post", "/farm-huyang/materiel/delete", {id})
-
-
-/* 物料库存  Store*/
-export const reqStoreList = (data) => ajax("post", "/farm-huyang/stock/list", data)
-
-export const reqAddStore = (data) => ajax("post", "/farm-huyang/stock/add", data)
-
-
-/* 物料入库  MInStore*/
-export const reqMInStoreList = (data) => ajax("post", "/farm-huyang/stockIn/list", data)
-
-export const reqAddMInStore = (data) => ajax("post", "/farm-huyang/stockIn/add", data)
-
-export const reqDelMInStore = (id) => ajax("post", "/farm-huyang/stockIn/delete", {id})
-
-
-/* 物料出库  MOutStore*/
-export const reqMOutStoreList = (data) => ajax("post", "/farm-huyang/stockOut/list", data)
-
-export const reqAddMOutStore = (data) => ajax("post", "/farm-huyang/stockOut/add", data)
-
-export const reqDelMOutStore = (id) => ajax("post", "/farm-huyang/stockOut/delete", {id})
-
-
-/* 图片上传 */
-// export const reqUploadImg = (data) => upload("/farm-huyang/common/pic", data)
-

+ 0 - 34
src/api/production.js

@@ -1,34 +0,0 @@
-import { ajax } from "../sdk/ajax";
-
-
-/* 批次管理  Batch*/
-export const reqBatchList = (data) => ajax("post", "/farm-huyang/batch/list", data)
-
-export const reqSeedEweSheepList = (data) => ajax("post", "/farm-huyang/commercial/listForBatch", data)
-
-export const reqAddBatch = (data) => ajax("post", "/farm-huyang/batch/create", data)
-
-
-
-/* 调拨转舍  ShiftField*/
-export const reqShiftFieldList = (data) => ajax("post", "/farm-huyang/batchTransfer/list", data)
-
-export const reqAddShiftField = (data) => ajax("post", "/farm-huyang/batchTransfer/add", data)
-
-
-/* 死淘管理  DieWeedOut*/
-export const reqDieWeedOutList = (data) => ajax("post", "/farm-huyang/culling/list", data)
-
-export const reqAddDieWeedOut = (data) => ajax("post", "/farm-huyang/culling/add", data)
-
-
-/* 耳标管理  EarTag*/
-export const reqEarTagList = (data) => ajax("post", "/farm-huyang/earTag/list", data)
-
-export const reqAddEarTag = (data) => ajax("post", "/farm-huyang/earTag/add", data)
-
-
-/* 检测报告  ExaminingReport*/
-export const reqExaminingReportList = (data) => ajax("post", "/farm-huyang/test/list", data)
-
-export const reqAddExaminingReport = (data) => ajax("post", "/farm-huyang/test/add", data)

+ 38 - 59
src/components/formList/formList.vue

@@ -1,7 +1,7 @@
 <template>
     <div>
         <el-button
-            v-show="value[lable[0]].length == 0"
+            v-show="value.length == 0"
             @click="plus"
             type="primary"
             icon="el-icon-plus"
@@ -11,31 +11,29 @@
             type="flex"
             :gutter="10"
             align="middle"
-            v-for="(item, index) in listLength"
+            v-for="(item, index) in value"
             :key="index"
             style="margin:15px"
         >
-            <div v-for="(S_item, S_index) in title" :key="S_index">
-                <el-col
-                    :style="{width: titleWidth}"
-                    class="label"
-                >{{ title[S_index] || lable[S_index] }}:</el-col>
+            <div v-for="(S_item, S_index) in title" :key="S_index" class="cell">
+                <el-col :style="{width: titleWidth}" class="label">{{ title[S_index] || lable[S_index] }}:</el-col>
                 <el-col :style="{width: inputWidth}">
-                    <el-input v-model="value[lable[S_index]][index]"></el-input>
+                    <!-- <el-input v-model="value[lable[S_index]][index]"></el-input> -->
+                    <el-input v-model="value[index][lable[S_index]]" :type="type" autosize></el-input>
                 </el-col>
             </div>
 
             <el-col :style="{width: '120px'}">
                 <el-button
-                    v-show="listLength.length == index+1"
-                    @click="plus"
+                    v-show="value.length == index+1"
+                    @click="plus(index)"
                     type="primary"
                     icon="el-icon-plus"
                     circle
                 ></el-button>
                 <el-button
-                    v-show="listLength.length > 1 && listLength.length==index + 1"
-                    @click="minus"
+                    v-show="value.length > 0"
+                    @click="minus(index)"
                     icon="el-icon-minus"
                     circle
                 ></el-button>
@@ -46,17 +44,20 @@
 
 <script>
 /* 
-v-model  数据结构 {key: Array, val: Array}  key 和 val 字段可自定义
+v-model  数据结构 [{key: [], val: []}]  key 和 val 字段可自定义
 titleWidth String lable的宽 统一设置 默认值100px
 inputWidth String input的宽 统一设置 默认值200px
-title Array 设置输入框的标题 不设置默认取 v-model 对象的key
+title Array  设置输入框的标题 不设置默认取 v-model 对象的key
+type String input 类型
 
 
-<formList v-model="data"></formList>
-data: {
-    时间: [1,2,33],
-    值: [1,2,3,4,5]
-},
+<formList v-model="dataF" :title="['值','时间']"></formList>
+dataF: [
+    {key:'a', value: 1},
+    {key:'a', value: 1},
+    {key:'a', value: 1},
+    {key:'a', value: 1}
+]
 
 事件
 */
@@ -67,26 +68,15 @@ export default {
     },
     computed: {
         lable() {
-            return Object.keys(this.value) || ["key", "value"];
+            return Object.keys(this.value[0]) || ["key", "value"];
         },
-        listLength() {
-            let kL = this.value[this.lable[0]].length;
-            let vL = this.value[this.lable[1]].length;
-            let arr = [];
-            if (kL < vL) {
-                arr[vL - 1] = undefined;
-            } else {
-                arr[kL - 1] = undefined;
-            }
-            return arr;
-        }
     },
     props: {
         value: undefined,
         title: {
             type: Array,
             default() {
-                return Object.keys(this.value);
+                return Object.keys(this.value[0])
             }
         },
         titleWidth: {
@@ -96,43 +86,32 @@ export default {
         inputWidth: {
             type: String,
             default: "200px"
+        },
+        type: {
+            type: String,
+            default: "text"
         }
     },
     created() {},
-    mounted() {
-    },
     methods: {
-        minus() {
-            // 保证数组长度一致
-            let keyArr = this.value[this.lable[0]];
-            let valArr = this.value[this.lable[1]];
-            if (keyArr.length > valArr.length) {
-                valArr[keyArr.length - 1] = undefined;
-            } else if (keyArr.length < valArr.length) {
-                keyArr[valArr.length - 1] = undefined;
-            }
-            keyArr.pop();
-            valArr.pop();
+        minus(i) {
+            // this.value.pop();
+            this.value.splice(i,1);
         },
-        plus() {
-            // 保证数组长度一致
-            let keyArr = this.value[this.lable[0]];
-            let valArr = this.value[this.lable[1]];
-            if (keyArr.length > valArr.length) {
-                valArr[keyArr.length - 1] = undefined;
-            } else if (keyArr.length < valArr.length) {
-                keyArr[valArr.length - 1] = undefined;
-            }
-            keyArr.push("");
-            valArr.push("");
+        plus(i) {
+            this.value.push({});
         }
     }
 };
 </script>
 
 <style lang="scss" scope>
-.label {
-    text-align: right;
-    color: #444;
+.cell {
+    display: flex;
+    align-items: center;
+    .label {
+        text-align: right;
+        color: #444;
+    }
 }
 </style>

+ 44 - 25
src/components/formList/formList2.vue

@@ -1,7 +1,7 @@
 <template>
     <div>
         <el-button
-            v-show="value.length == 0"
+            v-show="value[lable[0]].length == 0"
             @click="plus"
             type="primary"
             icon="el-icon-plus"
@@ -11,28 +11,30 @@
             type="flex"
             :gutter="10"
             align="middle"
-            v-for="(item, index) in value"
+            v-for="(item, index) in listLength"
             :key="index"
             style="margin:15px"
         >
-            <div v-for="(S_item, S_index) in title" :key="S_index">
-                <el-col :style="{width: titleWidth}" class="label">{{ title[S_index] || lable[S_index] }}:</el-col>
+            <div v-for="(S_item, S_index) in title" :key="S_index" class="cell">
+                <el-col
+                    :style="{width: titleWidth}"
+                    class="label"
+                >{{ title[S_index] || lable[S_index] }}:</el-col>
                 <el-col :style="{width: inputWidth}">
-                    <!-- <el-input v-model="value[lable[S_index]][index]"></el-input> -->
-                    <el-input v-model="value[index][lable[S_index]]"></el-input>
+                    <el-input v-model="value[lable[S_index]][index]"></el-input>
                 </el-col>
             </div>
 
             <el-col :style="{width: '120px'}">
                 <el-button
-                    v-show="value.length == index+1"
+                    v-show="listLength.length == index+1"
                     @click="plus"
                     type="primary"
                     icon="el-icon-plus"
                     circle
                 ></el-button>
                 <el-button
-                    v-show="value.length > 1 && value.length==index + 1"
+                    v-show="listLength.length > 1 && listLength.length==index + 1"
                     @click="minus"
                     icon="el-icon-minus"
                     circle
@@ -44,38 +46,47 @@
 
 <script>
 /* 
-v-model  数据结构 [{key: [], val: []}]  key 和 val 字段可自定义
+v-model  数据结构 {key: Array, val: Array}  key 和 val 字段可自定义
 titleWidth String lable的宽 统一设置 默认值100px
 inputWidth String input的宽 统一设置 默认值200px
-title Array  设置输入框的标题 不设置默认取 v-model 对象的key
+title Array 设置输入框的标题 不设置默认取 v-model 对象的key
 
 
-<formList2 v-model="dataF" :title="['值','时间']"></formList2>
-dataF: [
-    {key:'a', value: 1},
-    {key:'a', value: 1},
-    {key:'a', value: 1},
-    {key:'a', value: 1}
-]
+<formList v-model="data"></formList>
+data: {
+    时间: [1,2,33],
+    值: [1,2,3,4,5]
+},
 
 事件
 */
 export default {
-    name: "formList2",
+    name: "formList",
     data() {
         return {};
     },
     computed: {
         lable() {
-            return Object.keys(this.value[0]) || ["key", "value"];
+            return Object.keys(this.value) || ["key", "value"];
         },
+        listLength() {
+            let kL = this.value[this.lable[0]].length;
+            let vL = this.value[this.lable[1]].length;
+            let arr = [];
+            if (kL < vL) {
+                arr[vL - 1] = undefined;
+            } else {
+                arr[kL - 1] = undefined;
+            }
+            return arr;
+        }
     },
     props: {
         value: undefined,
         title: {
             type: Array,
             default() {
-                return Object.keys(this.value[0])
+                return Object.keys(this.value);
             }
         },
         titleWidth: {
@@ -88,20 +99,28 @@ export default {
         }
     },
     created() {},
+    mounted() {},
     methods: {
         minus() {
-            this.value.pop();
+            // 保证数组长度一致
+            let keyArr = this.value[this.lable[0]];
+            keyArr.pop();
         },
         plus() {
-            this.value.push({});
+            let keyArr = this.value[this.lable[0]];
+            keyArr.push("");
         }
     }
 };
 </script>
 
 <style lang="scss" scope>
-.label {
-    text-align: right;
-    color: #444;
+.cell {
+    display: flex;
+    align-items: center;
+    .label {
+        text-align: right;
+        color: #444;
+    }
 }
 </style>

+ 4 - 1
src/main.js

@@ -7,13 +7,16 @@ import store from './store'
 import vueModuleLoader from 'vue-module-loader'
 import localModule from './module'
 import './assets/css/reset.scss'
-import 'default-passive-events' // ( https://www.jianshu.com/p/23850d4cade8 )
+// import 'default-passive-events' // ( https://www.jianshu.com/p/23850d4cade8 )
 // import echarts from "echarts";
 import moment from 'moment'
 moment.locale('zh-cn');  // 汉化
 Vue.prototype.$moment = moment; 
 // Vue.prototype.$echarts = echarts
 
+import formList from '@/components/formList/formList'
+Vue.component('formList', formList)
+
 Vue.use(vueModuleLoader, { store }).use(ElementUI);
 
 const app = new Vue({

+ 35 - 1
src/router/routes.js

@@ -6,6 +6,14 @@ import areaInfo from '@/views/fileInfo/areaInfo.vue'
 import workerInfo from '@/views/fileInfo/workerInfo.vue'
 import test from '@/views/fileInfo/test.vue'
 
+/* 智能养殖 */
+import breed_info from '@/views/breed/breed_info.vue'
+import sheepDistribute from '@/views/breed/sheepDistribute.vue'
+import sheepLivestock from '@/views/breed/sheepLivestock.vue'
+import warn from '@/views/breed/warn.vue'
+import genealogy from '@/views/breed/genealogy.vue'
+
+
 
 export default [
 	{
@@ -37,7 +45,33 @@ export default [
 				path: 'test',
 				name: 'test',
 				component: test
-			}
+			},
+			/* 智能养殖 */
+			{
+				path: 'breed_info',
+				name: 'breed_info',
+				component: breed_info
+			},
+			{
+				path: 'sheepDistribute',
+				name: 'sheepDistribute',
+				component: sheepDistribute
+			},
+			{
+				path: 'sheepLivestock',
+				name: 'sheepLivestock',
+				component: sheepLivestock
+			},
+			{
+				path: 'warn',
+				name: 'warn',
+				component: warn
+			},
+			{
+				path: 'genealogy',
+				name: 'genealogy',
+				component: genealogy
+			},
 		]
 	},
 ]

+ 1 - 4
src/sdk/ajax.js

@@ -42,10 +42,7 @@ export const ajax = function (type = "post", url, params) {
         });
     } else {
         return new Promise((resole, reject) => {
-            axios({
-                method: type,
-                url: serverAddress + url,
-                params,
+            axios.post(serverAddress + url, Qs.stringify(params), {
                 headers: {
                     'Content-Type': 'application/x-www-form-urlencoded',
                     'x-auth-token': token

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

@@ -190,6 +190,9 @@ export default {
                 margin-right: 5px;
                 background-color: #545c64;
                 border-radius: 15px;
+                /deep/ .el-menu{
+                    border-right: none;
+                }
                 // background-image: linear-gradient(to bottom, rgb(85, 70, 148) , rgb(41, 33, 85), rgb(41, 33, 85));
             }
             .col2 {

+ 17 - 5
src/views/Home/mencCofig.js

@@ -33,20 +33,32 @@ export const menuData = [
         disabled: false, // 是否禁用
         childList: [
             {
-                optionName: '主要信息',
-                routerName: "workerInfo"
+                optionName: '零散信息',
+                routerName: "breed_info"
             },
             {
                 optionName: '种羊等级分布',
-                routerName: "firmInfo"
+                routerName: "sheepDistribute"
             },
             {
                 optionName: '牧场存栏',
-                routerName: "pastureInfo"
+                routerName: "sheepLivestock"
             },
             {
                 optionName: '消息提醒',
-                routerName: "areaInfo"
+                routerName: "warn"
+            },
+            {
+                optionName: '谱系',
+                routerName: "genealogy"
+            },
+            {
+                optionName: '种羊年龄分布',
+                routerName: "warn"
+            },
+            {
+                optionName: '羔羊分布',
+                routerName: "warn"
             },
 
             {

+ 2 - 2
src/views/Login/Login.vue

@@ -44,7 +44,7 @@ export default {
     data() {
         return {
             form: {
-                userName: "huyang",
+                userName: "demo",
                 userPwd: "123456"
             },
             isShowDialog: false,
@@ -107,7 +107,7 @@ export default {
                 .then(res => {
                     this.isShowDialog = false;
                     //导航到 正式页面
-                    this.$router.replace("/home/firmInfo");
+                    this.$router.replace("/home/sheepDistribute");
                 })
                 .catch(err => {
                     if (err.errMsg) this.$message.error(err.errMsg);

+ 67 - 38
src/views/aaaaaaaa.vue

@@ -1,52 +1,81 @@
 <template>
-    <div>
-        <el-form>
-            <el-form-item label="当前位置">
-                <el-select v-model="formData.position" filterable placeholder="请选择">
-                    <el-option
-                        v-for="item in $store.state['areaList']"
-                        :key="item.id"
-                        :label="item.name"
-                        :value="item.name"
-                    ></el-option>
-                </el-select>
-            </el-form-item>
-
-            <el-form-item label="密度">
-                <el-radio-group v-model="formData.density">
-                    <el-radio
-                        v-for="item in $store.state['seedDensity']"
-                        :key="item.value"
-                        :label="item.value"
-                    >{{ item.label }}</el-radio>
-                </el-radio-group>
-            </el-form-item>
-
-            <el-form-item label="配种时间">
-                <el-date-picker
-                    v-model="formData.opeTime"
-                    type="date"
-                    value-format="yyyy-MM-dd HH:mm:ss"
-                    placeholder="选择日期"
-                ></el-date-picker>
-            </el-form-item>
-        </el-form>
+    <div class="SheepDistribute">
+        <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="120px">
+                <el-form-item label="甲">
+                    <el-input v-model="form.alpha"></el-input>
+                </el-form-item>
+                <el-form-item label="乙">
+                    <el-input v-model="form.beta"></el-input>
+                </el-form-item>
+                <el-form-item label="丙">
+                    <el-input v-model="form.gamma"></el-input>
+                </el-form-item>
+                <el-form-item label="丁">
+                    <el-input v-model="form.delta"></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 { reqSheepDistribute, reqSetSheepDistribute } from "@/api/breed.js";
 export default {
-    name: "Af",
+    name: "SheepDistribute",
     data() {
         return {
-            opeTime: this.$moment().format("YYYY-MM-DD"),
-            aa: this.$store.state['dispatchStatus'][0].value,
+            form: {
+                alpha: "",
+                beta: "",
+                gamma: "",
+                delta: ""
+            }
         };
     },
-    created() {},
+    created() {
+        this.getSheepDistribute();
+    },
     methods: {
-        
+        onSubmit() {
+            this.$confirm("确定更新信息?").then(() => {
+                reqSetSheepDistribute(this.form)
+                .then(res => {
+                    console.log(res)
+                    if(res.errcode) {
+                        this.$message.error("更新失败!");
+                    }
+                    this.$message.success("更新成功!");
+                })
+                .catch(err => {
+                    console.log(err);
+                    this.$message.error("更新失败!");
+                });
+            });
+            
+        },
+        getSheepDistribute() {
+            reqSheepDistribute()
+                .then(res => {
+                    this.form = res.conf
+                })
+                .catch(err => {
+                    console.error(err);
+                });
+        }
     }
 };
 </script>
+
+<style lang="scss" scoped>
+.SheepDistribute {
+    .left {
+        width: 400px;
+        margin-left: 50px;
+    }
+}
+</style>

+ 86 - 0
src/views/breed/breed_info.vue

@@ -0,0 +1,86 @@
+<template>
+<!-- breed_info -->
+    <div class="Breed_info">
+        <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.fodder"></el-input>
+                </el-form-item>
+                <el-form-item label="断奶存活率(单位 %)">
+                    <el-input v-model="form.weaning"></el-input>
+                </el-form-item>
+                <el-form-item label="仓库使用率(单位 %)">
+                    <el-input v-model="form.warehouse"></el-input>
+                </el-form-item>
+                <el-form-item label="配种分娩率(单位 %)">
+                    <el-input v-model="form.breeding"></el-input>
+                </el-form-item>
+                <el-form-item label="多羔率(单位 %)">
+                    <el-input v-model="form.kids"></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 { reqBreed_info, reqSetBreed_info } from "@/api/breed.js";
+export default {
+    name: "Breed_info",
+    data() {
+        return {
+            form: {
+                fodder: "",
+                weaning: "",
+                warehouse: "",
+                breeding: "",
+                kids: ""
+            }
+        };
+    },
+    created() {
+        this.getBreed_info();
+    },
+    methods: {
+        onSubmit() {
+            this.$confirm("确定更新信息?").then(() => {
+                reqSetBreed_info(this.form)
+                .then(res => {
+                    console.log(res)
+                    if(res.errcode) {
+                        this.$message.error("更新失败!");
+                    }
+                    this.$message.success("更新成功!");
+                })
+                .catch(err => {
+                    console.log(err);
+                    this.$message.error("更新失败!");
+                });
+            });
+            
+        },
+        getBreed_info() {
+            reqBreed_info()
+                .then(res => {
+                    this.form = res.conf
+                })
+                .catch(err => {
+                    console.error(err);
+                });
+        }
+    }
+};
+</script>
+
+<style lang="scss" scoped>
+.Breed_info {
+    .left {
+        width: 400px;
+        margin-left: 50px;
+    }
+}
+</style>

+ 94 - 0
src/views/breed/genealogy.vue

@@ -0,0 +1,94 @@
+<template>
+<!-- genealogy -->
+    <div class="Genealogy">
+        <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="100px">
+                <el-form-item label="本体">
+                    <el-input v-model="form.self"></el-input>
+                </el-form-item>
+                <el-form-item label="父">
+                    <el-input v-model="form.father"></el-input>
+                </el-form-item>
+                <el-form-item label="母">
+                    <el-input v-model="form.mother"></el-input>
+                </el-form-item>
+                <el-form-item label="父母">
+                    <el-input v-model="form.fm"></el-input>
+                </el-form-item>
+                <el-form-item label="父父">
+                    <el-input v-model="form.ff"></el-input>
+                </el-form-item>
+                <el-form-item label="母父">
+                    <el-input v-model="form.mf"></el-input>
+                </el-form-item>
+                <el-form-item label="母母">
+                    <el-input v-model="form.mm"></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 { reqGenealogy, reqSetGenealogy } from "@/api/breed.js";
+export default {
+    name: "Genealogy",
+    data() {
+        return {
+            form: {
+                self: "",
+                father: "",
+                mother: "",
+                fm: "",
+                ff: "",
+                mf: "",
+                mm: ""
+            }
+        };
+    },
+    created() {
+        this.getGenealogy();
+    },
+    methods: {
+        onSubmit() {
+            this.$confirm("确定更新信息?").then(() => {
+                reqSetGenealogy(this.form)
+                .then(res => {
+                    console.log(res)
+                    if(res.errcode) {
+                        this.$message.error("更新失败!");
+                    }
+                    this.$message.success("更新成功!");
+                })
+                .catch(err => {
+                    console.log(err);
+                    this.$message.error("更新失败!");
+                });
+            });
+            
+        },
+        getGenealogy() {
+            reqGenealogy()
+                .then(res => {
+                    this.form = res.conf
+                })
+                .catch(err => {
+                    console.error(err);
+                });
+        }
+    }
+};
+</script>
+
+<style lang="scss" scoped>
+.Genealogy {
+    .left {
+        width: 400px;
+        margin-left: 50px;
+    }
+}
+</style>

+ 81 - 0
src/views/breed/sheepDistribute.vue

@@ -0,0 +1,81 @@
+<template>
+    <div class="SheepDistribute">
+        <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="120px">
+                <el-form-item label="甲">
+                    <el-input v-model="form.alpha"></el-input>
+                </el-form-item>
+                <el-form-item label="乙">
+                    <el-input v-model="form.beta"></el-input>
+                </el-form-item>
+                <el-form-item label="丙">
+                    <el-input v-model="form.gamma"></el-input>
+                </el-form-item>
+                <el-form-item label="丁">
+                    <el-input v-model="form.delta"></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 { reqSheepDistribute, reqSetSheepDistribute } from "@/api/breed.js";
+export default {
+    name: "SheepDistribute",
+    data() {
+        return {
+            form: {
+                alpha: "",
+                beta: "",
+                gamma: "",
+                delta: ""
+            }
+        };
+    },
+    created() {
+        this.getSheepDistribute();
+    },
+    methods: {
+        onSubmit() {
+            this.$confirm("确定更新信息?").then(() => {
+                reqSetSheepDistribute(this.form)
+                .then(res => {
+                    console.log(res)
+                    if(res.errcode) {
+                        this.$message.error("更新失败!");
+                    }
+                    this.$message.success("更新成功!");
+                })
+                .catch(err => {
+                    console.log(err);
+                    this.$message.error("更新失败!");
+                });
+            });
+            
+        },
+        getSheepDistribute() {
+            reqSheepDistribute()
+                .then(res => {
+                    this.form = res.conf
+                })
+                .catch(err => {
+                    console.error(err);
+                });
+        }
+    }
+};
+</script>
+
+<style lang="scss" scoped>
+.SheepDistribute {
+    .left {
+        width: 400px;
+        margin-left: 50px;
+    }
+}
+</style>

+ 85 - 0
src/views/breed/sheepLivestock.vue

@@ -0,0 +1,85 @@
+<template>
+<!-- sheepLivestock -->
+    <div class="SheepLivestock">
+        <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="120px">
+                <el-form-item label="总存栏">
+                    <el-input v-model="form.all"></el-input>
+                </el-form-item>
+                <el-form-item label="种母羊存栏">
+                    <el-input v-model="form.ram"></el-input>
+                </el-form-item>
+                <el-form-item label="总公羊存栏">
+                    <el-input v-model="form.ewe"></el-input>
+                </el-form-item>
+                <el-form-item label="羔羊存栏">
+                    <el-input v-model="form.lamb"></el-input>
+                </el-form-item>
+                <el-form-item label="育肥羊存栏">
+                    <el-input v-model="form.commercial"></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 { reqSheepLivestock, reqSetSheepLivestock } from "@/api/breed.js";
+export default {
+    name: "SheepLivestock",
+    data() {
+        return {
+            form: {
+                all: "",
+                ram: "",
+                ewe: "",
+                lamb: "",
+                commercial: ""
+            }
+        };
+    },
+    created() {
+        this.getSheepLivestock();
+    },
+    methods: {
+        onSubmit() {
+            this.$confirm("确定更新信息?").then(() => {
+                reqSetSheepLivestock(this.form)
+                    .then(res => {
+                        console.log(res)
+                        if(res.errcode) {
+                            this.$message.error("更新失败!");
+                        }
+                        this.$message.success("更新成功!");
+                    })
+                    .catch(err => {
+                        console.log(err);
+                        this.$message.error("更新失败!");
+                    });
+            });
+        },
+        getSheepLivestock() {
+            reqSheepLivestock()
+                .then(res => {
+                    this.form = res.conf
+                })
+                .catch(err => {
+                    console.error(err);
+                });
+        }
+    }
+};
+</script>
+
+<style lang="scss" scoped>
+.SheepLivestock {
+    .left {
+        width: 400px;
+        margin-left: 50px;
+    }
+}
+</style>

+ 73 - 0
src/views/breed/warn.vue

@@ -0,0 +1,73 @@
+<template>
+    <!-- warn -->
+    <div class="Warn">
+        <h2 style="margin-bottom: 20px;padding-bottom:7px;border-bottom:2px solid #ddd">消息提醒</h2>
+        <formList v-model="list" :title="['消息']" type="textarea" inputWidth="600px"></formList>
+        <el-button style="margin-left:610px" type="primary" @click="onSubmit">更新信息</el-button>
+    </div>
+</template>
+
+<script>
+import { reqWarn, reqSetWarn } from "@/api/breed.js";
+export default {
+    name: "Warn",
+    data() {
+        return {
+            list: [{ key: "" }]
+        };
+    },
+    created() {
+        this.getWarn();
+    },
+    methods: {
+        /* 
+        无害化仓库已满请及时清理
+        14587号母羊已到达断奶时间请及时断奶
+        阿莫西林药品已经低于安全库存请补充
+        
+        */
+        onSubmit() {
+            let data = [];
+            this.list.forEach(item => {
+                data.push(item.msg);
+            });
+            this.$confirm("确定更新信息?").then(() => {
+                reqSetWarn({ content: data.join("--") })
+                    .then(res => {
+                        console.log(res);
+                        if (res.errcode) {
+                            this.$message.error("更新失败!");
+                        }
+                        this.$message.success("更新成功!");
+                    })
+                    .catch(err => {
+                        console.log(err);
+                        this.$message.error("更新失败!");
+                    });
+            });
+        },
+        getWarn() {
+            reqWarn()
+                .then(res => {
+                    console.log(res.conf.content);
+                    this.list = [];
+                    res.conf.content.split("--").forEach(item => {
+                        this.list.push({ msg: item });
+                    });
+                })
+                .catch(err => {
+                    console.error(err);
+                });
+        }
+    }
+};
+</script>
+
+<style lang="scss" scoped>
+.Warn {
+    .left {
+        width: 400px;
+        margin-left: 50px;
+    }
+}
+</style>

+ 38 - 0
src/views/breed/图表.vue

@@ -0,0 +1,38 @@
+<template>
+    <div class="sheepDistribute">
+        <h2 style="margin-bottom: 20px;padding-bottom:7px;border-bottom:2px solid #ddd">种羊等级分布</h2>
+        <formList v-model="data"></formList>
+        <!-- <formList2 v-model="dataF" :title="['值','时间']"></formList2> -->
+    </div>
+</template>
+
+<script>
+
+export default {
+    name: "sheepDistribute",
+    data() {
+        return {
+            data: {
+                时间: [1,2,33],
+                值: [1,2,3,4,5]
+            },
+            dataF: [
+                {key:'a', value: 1},
+                {key:'a', value: 1},
+                {key:'a', value: 1},
+                {key:'a', value: 1}
+            ]
+        };
+    },
+    created() {
+        console.log(this.data)
+    },
+    methods: {
+       
+    }
+};
+</script>
+
+<style lang="scss" scoped>
+
+</style>

+ 3 - 8
src/views/fileInfo/test.vue

@@ -1,19 +1,14 @@
 <template>
     <div class="workerInfo">
-        <formList v-model="data">
-            <span>1</span>
-            <span>2</span>
-            <span>3</span>
-            <span>4</span>
-        </formList>
+        <formList v-model="data"></formList>
         <!-- <formList2 v-model="dataF" :title="['值','时间']"></formList2> -->
         <formList2 v-model="dataF"></formList2>
     </div>
 </template>
 
 <script>
-import formList from '@/components/formList/formList'
-import formList2 from '@/components/formList/formList2'
+import formList from '@/components/formList/formList2'
+import formList2 from '@/components/formList/formList'
 
 export default {
     name: "test",