panhui 7 years ago
parent
commit
a64c328cb3

+ 8 - 4
src/main/vue/src/pages/HandleBlindMilk.vue

@@ -4,8 +4,10 @@
       <div class="contentTitle">盲乳登记</div>
       <el-form ref="form" :model="formData" label-width="80px" style="margin-top:20px;">
         <el-form-item label label-width="0">
-          <el-input v-model="formData.cowID" clearable prefix-icon="el-icon-search" style="width:300px" maxlength="8"></el-input>
-          <el-button type="primary" @click="getNowCow" style="width:90px;margin-left:12px">确认</el-button>
+          <!-- <el-input v-model="formData.cowID" clearable prefix-icon="el-icon-search" style="width:300px" maxlength="8"></el-input>
+          <el-button type="primary" @click="getNowCow" style="width:90px;margin-left:12px">确认</el-button> -->
+          <el-autocomplete prefix-icon="el-icon-search" v-model="formData.cowID" :fetch-suggestions="queryCow" placeholder="请输入牛号" style="width:300px" clearable @select="getNowCow"></el-autocomplete>
+        
         </el-form-item>
 
         <div class="sub" v-if="tableData.length>0">操作牛号:{{tableData[0].value}}</div>
@@ -102,7 +104,8 @@ export default {
       allReason: [],
       LeftClass: [],
       LeftWhere: [],
-      tableData: []
+      tableData: [],
+      editRow:{}
     }
   },
   computed: {
@@ -143,7 +146,7 @@ export default {
   },
   methods: {
     onSave() {
-      if (!this.formData.cowID) {
+      if (this.formData.cowID!=this.editRow['牛号']) {
         this.$message({
           message: '请录入离场牛只牛号',
           type: 'warning'
@@ -213,6 +216,7 @@ export default {
       this.getHaleInfo('wsVeterinary', 'getBlindByCowID', [
         this.formData.cowID
       ], 'json').then((data) => {
+        this.editRow=data
         // console.log(data)
         data = this.JsonSort(['牛号', '当前牛舍'], data)
         var list = []

+ 4 - 1
src/main/vue/src/pages/HandleCalf.vue

@@ -261,6 +261,8 @@ export default {
             this.editCowInfo = {}
             this.tableData = []
             this.getList()
+            this.formData.isAlive = false
+            this.formData.isStay = false
           }
 
         }
@@ -268,7 +270,8 @@ export default {
     },
     getNowCow() {
       this.getCowInfo(this.formData.cowID, 1, true).then((data) => {
-
+        this.formData.isAlive = true
+        this.formData.isStay = true
       }).catch(() => {
         this.formData.cowID = ''
       })

+ 163 - 0
src/main/vue/src/pages/HandleChamfer.vue

@@ -0,0 +1,163 @@
+<template>
+  <el-container style="flex-grow:1">
+    <el-main class="containMain">
+      <div class="contentTitle">{{pageTitle}}</div>
+      <el-form ref="form" :model="formData" label-width="80px" style="margin-top:20px;">
+        <el-form-item label label-width="0">
+          <el-autocomplete prefix-icon="el-icon-search" v-model="formData.cowID" :fetch-suggestions="queryCow" placeholder="请输入牛号" style="width:300px" clearable @select="getNowCow"></el-autocomplete>
+          <el-button type="primary" @click="getNowCow" style="width:90px;margin-left:12px">确认</el-button>
+        </el-form-item>
+        <div class="sub" v-if="tableData.length>0">操作牛号:{{tableData[0].value}}</div>
+        <el-form-item label="去角方法">
+          <el-select v-model="formData.way" placeholder="请选择">
+            <el-option v-for="item in ['苛性钾涂抹法']" :key="item" :label="item" :value="item"></el-option>
+          </el-select>
+        </el-form-item>
+
+        <div style="margin-top:80px">
+          <el-button @click="onSave" type="primary" style="width:98px;" size="mediu">提交信息</el-button>
+        </div>
+      </el-form>
+    </el-main>
+    <el-aside class="containAside" width="450px">
+      <div class="asideInfo">
+        <div class="contentTitle">牛只信息</div>
+        <el-table class="handleTable" border :data="tableData" style="width: 100%" :height="(allHeight-70)+'px'" size="small">
+          <el-table-column prop="key" label="参数"></el-table-column>
+          <el-table-column prop="value" label="当前牛只信信息"></el-table-column>
+        </el-table>
+      </div>
+    </el-aside>
+  </el-container>
+</template>
+<script>
+import formValidator from '../formValidator'
+import axios from 'axios'
+import { mapState } from 'vuex'
+export default {
+  created() {
+
+  },
+  data() {
+    return {
+      saving: false,
+      formData: {
+        cowID: '',
+        way: "苛性钾涂抹法"
+      },
+      tableData: [],
+      editRow: {}
+    }
+  },
+  computed: {
+    ...mapState(['userInfo', 'allHeight']),
+    pageTitle() {
+      return this.$route.meta.title
+    }
+  },
+  watch: {
+  },
+  methods: {
+    onSave() {
+      if (this.formData.cowID != this.editRow['牛号']) {
+        this.$message({
+          message: '请录入牛只牛号',
+          type: 'warning'
+        });
+        return
+      }
+
+
+      this.getHaleInfo('wsCalving', 'addHornInfo', [
+         this.formData.cowID,this.formData.way,'',this.userInfo.username
+      ], 'json').then((data) => {
+        console.log(data)
+        if (data.rtnCode == -1) {
+          // this.$message({
+          //     message: data.rtnMessage,
+          //     type: 'warning'
+          // });
+          this.$alert(data.rtnMessage, '提示', {
+            confirmButtonText: '确定',
+            callback: action => {
+              this.formData.cowID = ''
+            }
+          });
+        }
+        else {
+          this.$message({
+            message: '录入成功',
+            type: 'success'
+          });
+          this.formData.cowID = ''
+        }
+      })
+    },
+    getNowCow() {
+      this.getHaleInfo('wsVeterinary', 'getFeedMagnetByCowID', [this.formData.cowID], 'json').then((data) => {
+        // console.log(data)
+        data = this.JsonSort(['牛号', '当前牛舍', '繁殖状态', '泌乳状态', '投喂磁石日期', '投喂磁石人'], data)
+        var list = []
+        Object.keys(data).forEach(item => {
+          list.push({
+            key: item,
+            value: data[item]
+          })
+        })
+
+        // console.log(list)
+
+        this.tableData = list
+        this.editRow = data
+
+      }).catch(() => {
+        this.formData.cowID = ''
+      })
+    },
+
+  }
+}
+</script>
+<style lang="less" scoped>
+.containMain {
+  background: rgba(255, 255, 255, 1);
+  border-radius: 4px;
+  padding: 15px;
+  // margin-right: 10px;
+  .contentTitle {
+    border-bottom: 1px solid #f2f4f5;
+  }
+  // min-width: 450px;
+
+  .sub {
+    font-size: 14px;
+    font-weight: 600;
+    color: rgba(102, 102, 102, 1);
+    line-height: 20px;
+    margin-bottom: 40px;
+    padding-left: 20px;
+  }
+}
+
+.contentTitle {
+  font-size: 16px;
+  font-weight: bold;
+  color: rgba(0, 0, 0, 1);
+  line-height: 22px;
+  letter-spacing: 1px;
+  padding-bottom: 14px;
+}
+
+.containAside {
+  padding: 0;
+  margin-left: 10px;
+  display: flex;
+  flex-direction: column;
+  .asideInfo {
+    flex-grow: 1;
+    background: rgba(255, 255, 255, 1);
+    border-radius: 4px;
+    padding: 15px;
+  }
+}
+</style>

+ 33 - 11
src/main/vue/src/pages/HandleDiagnosis.vue

@@ -28,9 +28,8 @@
     <el-main class="containMain">
       <div class="contentTitle">{{pageTitle}}</div>
       <el-form ref="form" :model="formData" label-width="80px" style="margin-top:20px;width:522px;">
-        <el-form-item label label-width="0">
-          <el-input v-model="formData.cowID" disabled prefix-icon="el-icon-search" style="width:300px" maxlength="8" clearable></el-input>
-          <!-- <el-button type="primary" @click="getNowCow" style="width:90px;margin-left:12px">确认</el-button> -->
+       <el-form-item label label-width="0">
+          <el-autocomplete v-model="formData.cowID" :fetch-suggestions="querySearchAsync" style="width:200px" clearable placeholder="请输入内容" @select="chooseCow"></el-autocomplete>
         </el-form-item>
         <div class="sub" v-if="tableData.length>0">操作牛号:{{editCowInfo['牛号']}}</div>
         <el-form-item label="发病日期">
@@ -404,15 +403,19 @@ export default {
       })
       return list
 
+    },
+    allCowList(){
+      var list=[]
+      this.list.forEach(item=>{
+        var jsonp={...item}
+        jsonp.value=item['牛号']
+        list.push(jsonp)
+      })
+      return list
     }
   },
   watch: {
-    'formData.cowID'() {
-      if (this.formData.cowID.length != 8) {
-        return
-      }
-
-    },
+   
     'formData.num'() {
       setTimeout(() => {
         this.formData.describe = this.describeList[0]
@@ -510,7 +513,9 @@ export default {
       })
     },
     onSave(isSick) {
-      if (!this.formData.cowID) {
+
+
+      if (this.formData.cowID!=this.editCowInfo['牛号']) {
         this.$message({
           message: '请录入牛只牛号',
           type: 'warning'
@@ -727,7 +732,24 @@ export default {
         this.addForm = data
         this.innerinnerVisible = true
       }
-    }
+    },
+      querySearchAsync(queryString, cb) {
+        var restaurants = this.allCowList;
+        var results = queryString ? restaurants.filter(this.createStateFilter(queryString)) : restaurants;
+
+      
+        var timeout = setTimeout(() => {
+          cb(results);
+        }, 3000 * Math.random());
+      },
+      createStateFilter(queryString) {
+        return (state) => {
+          return (state.value.toLowerCase().indexOf(queryString.toLowerCase()) === 0);
+        };
+      },
+      chooseCow(val){
+        this.rowClick(val)
+      }
   }
 }
 </script>

+ 35 - 4
src/main/vue/src/pages/HandleDryMilk.vue

@@ -36,7 +36,8 @@
       <div class="contentTitle">干奶信息登记</div>
       <el-form ref="form" :model="formData" label-width="100px" style="margin-top:20px;width:522px;">
         <el-form-item label label-width="0">
-          <el-input v-model="formData.cowID" prefix-icon="el-icon-search" disabled style="width:300px"></el-input>
+            <el-autocomplete v-model="formData.cowID" prefix-icon="el-icon-search"  :fetch-suggestions="querySearchAsync" style="width:200px" clearable placeholder="请输入内容" @select="chooseCow"></el-autocomplete>
+       
           <!-- <el-button type="primary" @click="getNowCow" style="width:90px;margin-left:12px">确认</el-button> -->
         </el-form-item>
         <div class="sub" v-if="tableData.length>0">操作牛号:{{tableData[0].value}}</div>
@@ -128,7 +129,8 @@ export default {
       task: '干奶预警',
       isBath: false,
       chooseList: [],
-      loading: false
+      loading: false,
+      editRow:{}
     }
   },
   computed: {
@@ -176,6 +178,15 @@ export default {
       })
       return list
     },
+    allCowList(){
+      var list=[]
+      this.list.forEach(item=>{
+        var jsonp={...item}
+        jsonp.value=item['牛号']
+        list.push(jsonp)
+      })
+      return list
+    }
   },
   watch: {
     task() {
@@ -194,7 +205,7 @@ export default {
       })
     },
     onSave() {
-      if (!this.formData.cowID) {
+      if (this.formData.cowID!=this.editRow['牛号']) {
         this.$message({
           message: '请录入牛只牛号',
           type: 'warning'
@@ -302,6 +313,8 @@ export default {
         })
       })
 
+
+
       // console.log(list)
 
       this.tableData = list
@@ -334,6 +347,7 @@ export default {
         }
 
         var jsonp = { ...row }
+        this.editRow=row
 
         this.getNowCow(jsonp)
       }
@@ -348,7 +362,24 @@ export default {
         this.formData.cowID = ''
       }
 
-    }
+    },
+      querySearchAsync(queryString, cb) {
+        var restaurants = this.allCowList;
+        var results = queryString ? restaurants.filter(this.createStateFilter(queryString)) : restaurants;
+
+      
+        var timeout = setTimeout(() => {
+          cb(results);
+        }, 3000 * Math.random());
+      },
+      createStateFilter(queryString) {
+        return (state) => {
+          return (state.value.toLowerCase().indexOf(queryString.toLowerCase()) === 0);
+        };
+      },
+      chooseCow(val){
+        this.rowClick(val)
+      }
   }
 }
 </script>

+ 4 - 2
src/main/vue/src/pages/HandleFeedingMagnet.vue

@@ -40,7 +40,8 @@ export default {
       formData: {
         cowID: '',
       },
-      tableData: []
+      tableData: [],
+      editRow:{}
     }
   },
   computed: {
@@ -60,7 +61,7 @@ export default {
   },
   methods: {
     onSave() {
-      if (this.formData.cowID.length != 8) {
+      if (this.formData.cowID!=this.editRow['牛号']) {
         this.$message({
           message: '请录入牛只牛号',
           type: 'warning'
@@ -111,6 +112,7 @@ export default {
         // console.log(list)
 
         this.tableData = list
+        this.editRow=data
 
       }).catch(() => {
         this.formData.cowID = ''

+ 241 - 254
src/main/vue/src/pages/HandleLeaveAdd.vue

@@ -1,69 +1,59 @@
 <template>
-    <el-container style="flex-grow:1">
-        <el-main class="containMain">
-            <div class="contentTitle">离场登记</div>
-            <el-form ref="form" :model="formData" label-width="80px" style="margin-top:20px;">
-                <el-form-item label="" label-width="0">
-                    <el-input v-model="formData.cowID" prefix-icon="el-icon-search" style="width:300px" maxlength="8"></el-input>
-                    <el-button type="primary" @click="getNowCow" style="width:90px;margin-left:12px">确认</el-button>
-                </el-form-item>
-                <div class="sub" v-if="tableData.length>0">
-                    操作牛号:{{tableData[0].value}}
-                </div>
-                <el-form-item label="离场方式">
-                    <el-select v-model="formData.LeftClass" placeholder="请选择">
-                        <el-option v-for="item in LeftClass" :key="item['名称']" :label="item['名称']" :value="item['名称']">
-                        </el-option>
-                    </el-select>
-                </el-form-item>
-                <el-form-item label="离场去向">
-                    <el-select v-model="formData.LeftWhere" placeholder="请选择">
-                        <el-option v-for="item in LeftWhere" :key="item['名称']" :label="item['名称']" :value="item['名称']">
-                        </el-option>
-                    </el-select>
-                </el-form-item>
-                <el-form-item label="离场原因">
-                    <el-select v-model="formData.reason" placeholder="请选择">
-                        <el-option v-for="item in reasons" :key="item" :label="item" :value="item">
-                        </el-option>
-                    </el-select>
-                </el-form-item>
-                <el-form-item label="处理意见">
-                    <el-select v-model="formData.remark" placeholder="请选择">
-                        <el-option v-for="item in remarks" :key="item" :label="item" :value="item">
-                        </el-option>
-                    </el-select>
-                </el-form-item>
-                <el-form-item label="主动淘汰?">
-                    <el-radio-group v-model="formData.isActived">
-                        <el-radio label="1">是</el-radio>
-                        <el-radio label="0">否</el-radio>
-                    </el-radio-group>
-                </el-form-item>
-                <el-form-item label="残值">
-                    <el-input v-model="formData.remainValue" style="width:220px"></el-input>
-                </el-form-item>
+  <el-container style="flex-grow:1">
+    <el-main class="containMain">
+      <div class="contentTitle">离场登记</div>
+      <el-form ref="form" :model="formData" label-width="80px" style="margin-top:20px;">
+        <el-form-item label label-width="0">
+          <el-autocomplete prefix-icon="el-icon-search" v-model="formData.cowID" :fetch-suggestions="queryCow" placeholder="请输入牛号" style="width:300px" clearable @select="getNowCow"></el-autocomplete>
+        </el-form-item>
+        <div class="sub" v-if="tableData.length>0">操作牛号:{{tableData[0].value}}</div>
+        <el-form-item label="离场方式">
+          <el-select v-model="formData.LeftClass" placeholder="请选择">
+            <el-option v-for="item in LeftClass" :key="item['名称']" :label="item['名称']" :value="item['名称']"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="离场去向">
+          <el-select v-model="formData.LeftWhere" placeholder="请选择">
+            <el-option v-for="item in LeftWhere" :key="item['名称']" :label="item['名称']" :value="item['名称']"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="离场原因">
+          <el-select v-model="formData.reason" placeholder="请选择">
+            <el-option v-for="item in reasons" :key="item" :label="item" :value="item"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="处理意见">
+          <el-select v-model="formData.remark" placeholder="请选择">
+            <el-option v-for="item in remarks" :key="item" :label="item" :value="item"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="主动淘汰?">
+          <el-radio-group v-model="formData.isActived">
+            <el-radio label="1">是</el-radio>
+            <el-radio label="0">否</el-radio>
+          </el-radio-group>
+        </el-form-item>
+        <el-form-item label="残值">
+          <el-input v-model="formData.remainValue" style="width:220px"></el-input>
+        </el-form-item>
 
-                <div style="margin-top:80px">
-                    <el-button @click="onSave" type="primary" style="width:98px;" size="mediu">确认保存</el-button>
+        <div style="margin-top:80px">
+          <el-button @click="onSave" type="primary" style="width:98px;" size="mediu">确认保存</el-button>
+        </div>
+      </el-form>
+    </el-main>
+    <el-aside class="containAside" width="450px">
+      <div class="asideInfo">
+        <div class="contentTitle">牛只信息</div>
+        <el-table class="handleTable" border :data="tableData" style="width: 100%" :height="(allHeight-70)+'px'" size="small">
+          <el-table-column prop="key" label="参数"></el-table-column>
+          <el-table-column prop="value" label="当前牛只信信息"></el-table-column>
+        </el-table>
+      </div>
+    </el-aside>
+  </el-container>
 
-                </div>
-            </el-form>
-        </el-main>
-        <el-aside class="containAside" width="450px">
-            <div class="asideInfo">
-                <div class="contentTitle">牛只信息</div>
-                <el-table class="handleTable" border :data="tableData" style="width: 100%" :height="(allHeight-70)+'px'" size='small'>
-                    <el-table-column prop="key" label="参数">
-                    </el-table-column>
-                    <el-table-column prop="value" label="当前牛只信信息">
-                    </el-table-column>
-                </el-table>
-            </div>
-        </el-aside>
-    </el-container>
-
-    <!-- <div>
+  <!-- <div>
         <el-form :model="formData" :rules="rules" ref="form" label-width="80px" label-position="right" size="small"
                  style="max-width: 500px;">
             <el-form-item prop="icon" label="头像">
@@ -114,227 +104,224 @@
                 <el-button @click="$router.go(-1)">取消</el-button>
             </el-form-item>
         </el-form>
-    </div> -->
+  </div>-->
 </template>
 <script>
 import formValidator from '../formValidator'
 import axios from 'axios'
 import { mapState } from 'vuex'
 export default {
-    created() {
+  created() {
 
-        this.getHaleInfo('wsCow', 'getUserDict', ['LeftReason'], 'list').then((data) => {
-            this.allReason = data
-            this.formData.reason = data[0]['类别']
-        })
+    this.getHaleInfo('wsCow', 'getUserDict', ['LeftReason'], 'list').then((data) => {
+      this.allReason = data
+      this.formData.reason = data[0]['类别']
+    })
 
-        this.getHaleInfo('wsCow', 'getUserDict', ['LeftClass'], 'list').then((data) => {
-            this.LeftClass = data
-        })
+    this.getHaleInfo('wsCow', 'getUserDict', ['LeftClass'], 'list').then((data) => {
+      this.LeftClass = data
+    })
 
-        this.getHaleInfo('wsCow', 'getUserDict', ['LeftWhere'], 'list').then((data) => {
-            this.LeftWhere = data
+    this.getHaleInfo('wsCow', 'getUserDict', ['LeftWhere'], 'list').then((data) => {
+      this.LeftWhere = data
+    })
+  },
+  data() {
+    return {
+      saving: false,
+      formData: {
+        cowID: '',
+        LeftClass: '淘汰',
+        LeftWhere: '无害化处理',
+        reason: '',
+        remark: '',
+        isActived: "0",
+        remainValue: '1',
+        operators: ''
+      },
+      rules: {
+        icon: [
+          { required: true, message: '请上传头像', trigger: 'blur' },
+        ],
+        username: [
+          { required: true, message: '请输入昵称', trigger: 'blur' },
+        ],
+        phone: [
+          { required: true, message: '请输入手机号', trigger: 'blur' },
+          {
+            validator: (rule, value, callback) => {
+              if (!value) {
+                callback(new Error('请输入手机号'));
+              } else if (/^1[3-9]\d{9}$/.test(value)) {
+                callback();
+              } else {
+                callback(new Error('请输入正确的手机号'));
+              }
+            }, trigger: 'blur'
+          }
+        ],
+        password: [
+          { required: true, message: '请输入密码', trigger: 'blur' },
+        ],
+        roleId: [
+          { required: true, message: '请选择角色', trigger: 'blur' },
+        ]
+      },
+      roles: [],
+      departs: [],
+      allReason: [],
+      LeftClass: [],
+      LeftWhere: [],
+      tableData: [],
+      editRow: {}
+    }
+  },
+  computed: {
+    ...mapState(['userInfo', 'allHeight']),
+    reasons() {
+      var list = []
+      this.allReason.forEach(item => {
+        if (list.indexOf(item['类别']) == -1) {
+          list.push(item['类别'])
+        }
+      })
+      return list
+    },
+    remarks() {
+      var list = []
+      if (this.formData.reason) {
+        this.allReason.forEach(item => {
+          if (item['类别'] == this.formData.reason) {
+            list.push(item['名称'])
+          }
         })
+      }
+      return list
+    }
+  },
+  watch: {
+    'formData.reason'() {
+      setTimeout(() => {
+        this.formData.remark = this.remarks[0]
+      }, 100)
     },
-    data() {
-        return {
-            saving: false,
-            formData: {
-                cowID: '',
-                LeftClass: '淘汰',
-                LeftWhere: '无害化处理',
-                reason: '',
-                remark: '',
-                isActived: "0",
-                remainValue: '1',
-                operators: ''
-            },
-            rules: {
-                icon: [
-                    { required: true, message: '请上传头像', trigger: 'blur' },
-                ],
-                username: [
-                    { required: true, message: '请输入昵称', trigger: 'blur' },
-                ],
-                phone: [
-                    { required: true, message: '请输入手机号', trigger: 'blur' },
-                    {
-                        validator: (rule, value, callback) => {
-                            if (!value) {
-                                callback(new Error('请输入手机号'));
-                            } else if (/^1[3-9]\d{9}$/.test(value)) {
-                                callback();
-                            } else {
-                                callback(new Error('请输入正确的手机号'));
-                            }
-                        }, trigger: 'blur'
-                    }
-                ],
-                password: [
-                    { required: true, message: '请输入密码', trigger: 'blur' },
-                ],
-                roleId: [
-                    { required: true, message: '请选择角色', trigger: 'blur' },
-                ]
-            },
-            roles: [],
-            departs: [],
-            allReason: [],
-            LeftClass: [],
-            LeftWhere: [],
-            tableData: []
+  },
+  methods: {
+    onSave() {
+      if (this.formData.cowID != this.editRow['牛号']) {
+        this.$message({
+          message: '请录入离场牛只牛号',
+          type: 'warning'
+        });
+        return
+      }
+      this.formData.operators = this.userInfo.username
+      var list = []
+      Object.keys(this.formData).forEach(item => {
+        if (item == 'isActive') {
+          list.push(this.formData.isActive == '1' ? true : false)
         }
-    },
-    computed: {
-        ...mapState(['userInfo', 'allHeight']),
-        reasons() {
-            var list = []
-            this.allReason.forEach(item => {
-                if (list.indexOf(item['类别']) == -1) {
-                    list.push(item['类别'])
-                }
-            })
-            return list
-        },
-        remarks() {
-            var list = []
-            if (this.formData.reason) {
-                this.allReason.forEach(item => {
-                    if (item['类别'] == this.formData.reason) {
-                        list.push(item['名称'])
-                    }
-                })
-            }
-            return list
+        else {
+          list.push(this.formData[item])
+        }
+
+      })
+      this.getHaleInfo('wsCow', 'addLeftInfo', list, 'json').then((data) => {
+        // console.log(data)
+        if (data.rtnCode == -1) {
+          this.$message({
+            message: data.rtnMessage,
+            type: 'warning'
+          });
+          this.formData.cowID = ''
+        }
+        else {
+          this.$message({
+            message: '离场信息录入成功',
+            type: 'warning'
+          });
+          this.formData.cowID = ''
         }
+      })
     },
-    watch: {
-        'formData.reason'() {
-            setTimeout(() => {
-                this.formData.remark = this.remarks[0]
-            }, 100)
-        },
-        'formData.cowID'() {
-            if (this.formData.cowID.length != 8) {
-                return
-            }
-            this.getNowCow()
+    submit() {
+      var data = JSON.parse(JSON.stringify(this.formData));
+      this.$http.post({
+        url: this.formData.id ? '/userInfo/update' : '/userInfo/save',
+        data: data
+      }).then(res => {
+        if (res.success) {
+          this.$message.success('成功');
+          this.$router.go(-1);
+        } else {
+          this.$message.warning('失败')
         }
+      });
     },
-    methods: {
-        onSave() {
-            if (!this.formData.cowID) {
-                this.$message({
-                    message: '请录入离场牛只牛号',
-                    type: 'warning'
-                });
-                return
-            }
-            this.formData.operators = this.userInfo.username
-            var list = []
-            Object.keys(this.formData).forEach(item => {
-                if (item == 'isActive') {
-                    list.push(this.formData.isActive == '1' ? true : false)
-                }
-                else {
-                    list.push(this.formData[item])
-                }
+    getNowCow() {
 
-            })
-            this.getHaleInfo('wsCow', 'addLeftInfo', list, 'json').then((data) => {
-                // console.log(data)
-                if (data.rtnCode == -1) {
-                    this.$message({
-                        message: data.rtnMessage,
-                        type: 'warning'
-                    });
-                    this.formData.cowID = ''
-                }
-                else {
-                    this.$message({
-                        message: '离场信息录入成功',
-                        type: 'warning'
-                    });
-                    this.formData.cowID = ''
-                }
-            })
-        },
-        submit() {
-            var data = JSON.parse(JSON.stringify(this.formData));
-            this.$http.post({
-                url: this.formData.id ? '/userInfo/update' : '/userInfo/save',
-                data: data
-            }).then(res => {
-                if (res.success) {
-                    this.$message.success('成功');
-                    this.$router.go(-1);
-                } else {
-                    this.$message.warning('失败')
-                }
-            });
-        },
-        getNowCow() {
+      this.getCowInfo(this.formData.cowID).then((data) => {
+        // console.log(data)
+        var list = []
+        Object.keys(data).forEach(item => {
+          list.push({
+            key: item,
+            value: data[item]
+          })
+        })
 
-            this.getCowInfo(this.formData.cowID).then((data) => {
-                // console.log(data)
-                var list = []
-                Object.keys(data).forEach(item => {
-                    list.push({
-                        key: item,
-                        value: data[item]
-                    })
-                })
 
-                // console.log(list)
+        this.editRow = data
+        // console.log(list)
 
-                this.tableData = list
-            }).catch(() => {
-                this.formData.cowID = ''
-            })
-        }
+        this.tableData = list
+      }).catch(() => {
+        this.formData.cowID = ''
+      })
     }
+  }
 }
 </script>
 <style lang="less" scoped>
 .containMain {
-    background: rgba(255, 255, 255, 1);
-    border-radius: 4px;
-    padding: 15px;
-    // margin-right: 10px;
-    .contentTitle {
-        border-bottom: 1px solid #f2f4f5;
-    }
-    // min-width: 450px;
+  background: rgba(255, 255, 255, 1);
+  border-radius: 4px;
+  padding: 15px;
+  // margin-right: 10px;
+  .contentTitle {
+    border-bottom: 1px solid #f2f4f5;
+  }
+  // min-width: 450px;
 
-    .sub{
-        font-size:14px;
-font-weight:600;
-color:rgba(102,102,102,1);
-line-height:20px;
-margin-bottom: 40px;
-padding-left: 20px;
-    }
+  .sub {
+    font-size: 14px;
+    font-weight: 600;
+    color: rgba(102, 102, 102, 1);
+    line-height: 20px;
+    margin-bottom: 40px;
+    padding-left: 20px;
+  }
 }
 
 .contentTitle {
-    font-size: 16px;
-    font-weight: bold;
-    color: rgba(0, 0, 0, 1);
-    line-height: 22px;
-    letter-spacing: 1px;
-    padding-bottom: 14px;
+  font-size: 16px;
+  font-weight: bold;
+  color: rgba(0, 0, 0, 1);
+  line-height: 22px;
+  letter-spacing: 1px;
+  padding-bottom: 14px;
 }
 
 .containAside {
-    padding: 0;
-    margin-left: 10px;
-    display: flex;
-    flex-direction: column;
-    .asideInfo {
-        flex-grow: 1;
-        background: rgba(255, 255, 255, 1);
-        border-radius: 4px;
-        padding: 15px;
-    }
+  padding: 0;
+  margin-left: 10px;
+  display: flex;
+  flex-direction: column;
+  .asideInfo {
+    flex-grow: 1;
+    background: rgba(255, 255, 255, 1);
+    border-radius: 4px;
+    padding: 15px;
+  }
 }
-</style>
+</style>

+ 291 - 0
src/main/vue/src/pages/HandleMamma.vue

@@ -0,0 +1,291 @@
+<template>
+  <el-container style="flex-grow:1">
+    <el-main class="containMain">
+      <div class="contentTitle">除副乳登记</div>
+      <el-form ref="form" :model="formData" label-width="80px" style="margin-top:20px;">
+        <el-form-item label label-width="0">
+          <!-- <el-input v-model="formData.cowID" clearable prefix-icon="el-icon-search" style="width:300px" maxlength="8"></el-input>
+          <el-button type="primary" @click="getNowCow" style="width:90px;margin-left:12px">确认</el-button> -->
+          <el-autocomplete prefix-icon="el-icon-search" v-model="formData.cowID" :fetch-suggestions="queryCow" placeholder="请输入牛号" style="width:300px" clearable @select="getNowCow"></el-autocomplete>
+        
+        </el-form-item>
+
+        <div class="sub" v-if="tableData.length>0">操作牛号:{{tableData[0].value}}</div>
+        <el-form-item label="乳区状态">
+          <div class="list">
+            <div class="item" v-for="item in statusList" @click="item.value=!item.value" :class="{active:item.value}">{{item.value?"副乳":"无副乳"}}</div>
+          </div>
+        </el-form-item>
+        <div style="margin-top:80px">
+          <el-button @click="onSave" type="primary" style="width:98px;" size="mediu">确认保存</el-button>
+        </div>
+      </el-form>
+    </el-main>
+    <el-aside class="containAside" width="450px">
+      <div class="asideInfo">
+        <div class="contentTitle">牛只信息</div>
+        <el-table class="handleTable" border :data="tableData" style="width: 100%" :height="(allHeight-70)+'px'" size="small">
+          <el-table-column prop="key" label="参数"></el-table-column>
+          <el-table-column prop="value" label="当前牛只信信息"></el-table-column>
+        </el-table>
+      </div>
+    </el-aside>
+  </el-container>
+</template>
+<script>
+import formValidator from '../formValidator'
+import axios from 'axios'
+import { mapState } from 'vuex'
+export default {
+  created() {
+
+
+  },
+  data() {
+    return {
+      saving: false,
+      formData: {
+        cowID: '',
+        checkDate: Date.parse(new Date()),
+      },
+      statusList: [
+        {
+          key: '_FL',
+          value: false,
+          name: '左前',
+          befor: false
+        }, {
+          key: '_FR',
+          value: false,
+          name: '右前',
+          befor: false
+        }, {
+          key: '_BL',
+          value: false,
+          name: '左后',
+          befor: false
+        }, {
+          key: '_BR',
+          value: false,
+          name: '右后',
+          befor: false
+        }
+      ],
+      rules: {
+        icon: [
+          { required: true, message: '请上传头像', trigger: 'blur' },
+        ],
+        username: [
+          { required: true, message: '请输入昵称', trigger: 'blur' },
+        ],
+        phone: [
+          { required: true, message: '请输入手机号', trigger: 'blur' },
+          {
+            validator: (rule, value, callback) => {
+              if (!value) {
+                callback(new Error('请输入手机号'));
+              } else if (/^1[3-9]\d{9}$/.test(value)) {
+                callback();
+              } else {
+                callback(new Error('请输入正确的手机号'));
+              }
+            }, trigger: 'blur'
+          }
+        ],
+        password: [
+          { required: true, message: '请输入密码', trigger: 'blur' },
+        ],
+        roleId: [
+          { required: true, message: '请选择角色', trigger: 'blur' },
+        ]
+      },
+      roles: [],
+      departs: [],
+      allReason: [],
+      LeftClass: [],
+      LeftWhere: [],
+      tableData: [],
+      editRow:{}
+    }
+  },
+  computed: {
+    ...mapState(['userInfo', 'allHeight']),
+    reasons() {
+      var list = []
+      this.allReason.forEach(item => {
+        if (list.indexOf(item['类别']) == -1) {
+          list.push(item['类别'])
+        }
+      })
+      return list
+    },
+    remarks() {
+      var list = []
+      if (this.formData.reason) {
+        this.allReason.forEach(item => {
+          if (item['类别'] == this.formData.reason) {
+            list.push(item['名称'])
+          }
+        })
+      }
+      return list
+    }
+  },
+  watch: {
+    'formData.reason'() {
+      setTimeout(() => {
+        this.formData.remark = this.remarks[0]
+      }, 100)
+    },
+    'formData.cowID'() {
+      if (this.formData.cowID.length != 8) {
+        return
+      }
+      this.getNowCow()
+    }
+  },
+  methods: {
+    onSave() {
+      if (this.formData.cowID!=this.editRow['牛号']) {
+        this.$message({
+          message: '请录入离场牛只牛号',
+          type: 'warning'
+        });
+        return
+      }
+      this.getHaleInfo('wsCalving', 'addSpareteatInfo', [
+        this.formData.cowID,this.statusList[0].value?1:0,this.statusList[1].value?1:0,this.statusList[2].value?1:0,this.statusList[3].value?1:0,this.userInfo.username
+      ], 'json').then((data) => {
+        // console.log(data)
+        if (data.rtnCode == -1) {
+          this.$message({
+            message: data.rtnMessage,
+            type: 'warning'
+          });
+          this.formData.cowID = ''
+        }
+        else {
+          this.$message({
+            message: '盲乳录入成功',
+            type: 'success'
+          });
+          this.formData.cowID = ''
+        }
+      })
+    },
+    submit() {
+      var data = JSON.parse(JSON.stringify(this.formData));
+      this.$http.post({
+        url: this.formData.id ? '/userInfo/update' : '/userInfo/save',
+        data: data
+      }).then(res => {
+        if (res.success) {
+          this.$message.success('成功');
+          this.$router.go(-1);
+        } else {
+          this.$message.warning('失败')
+        }
+      });
+    },
+    getNowCow() {
+      if (this.formData.cowID.length != 8) {
+        this.$message({
+          message: '牛号错误',
+          type: 'warning'
+        });
+        return
+      }
+      this.getHaleInfo('wsCow', 'getCowExtendInfoByCowID', [
+        this.formData.cowID,3
+      ], 'json').then((data) => {
+        this.editRow=data
+        // console.log(data)
+        data = this.JsonSort(['牛号', '当前牛舍'], data)
+        var list = []
+        Object.keys(data).forEach(item => {
+          list.push({
+            key: item,
+            value: data[item]
+          })
+        })
+
+
+
+        // console.log(list)
+
+        this.tableData = list
+      }).catch(() => {
+        this.formData.cowID = ''
+      })
+    }
+  }
+}
+</script>
+<style lang="less" scoped>
+.containMain {
+  background: rgba(255, 255, 255, 1);
+  border-radius: 4px;
+  padding: 15px;
+  // margin-right: 10px;
+  .contentTitle {
+    border-bottom: 1px solid #f2f4f5;
+  }
+  // min-width: 450px;
+
+  .sub {
+    font-size: 14px;
+    font-weight: 600;
+    color: rgba(102, 102, 102, 1);
+    line-height: 20px;
+    margin-bottom: 40px;
+    padding-left: 20px;
+  }
+}
+
+.contentTitle {
+  font-size: 16px;
+  font-weight: bold;
+  color: rgba(0, 0, 0, 1);
+  line-height: 22px;
+  letter-spacing: 1px;
+  padding-bottom: 14px;
+}
+
+.containAside {
+  padding: 0;
+  margin-left: 10px;
+  display: flex;
+  flex-direction: column;
+  .asideInfo {
+    flex-grow: 1;
+    background: rgba(255, 255, 255, 1);
+    border-radius: 4px;
+    padding: 15px;
+  }
+}
+
+.list {
+  display: flex;
+  flex-wrap: wrap;
+  width: 130px;
+  justify-content: space-between;
+
+  .item {
+    width: 60px;
+    height: 60px;
+    background: rgba(133, 195, 6, 1);
+    border-radius: 4px;
+    margin-bottom: 10px;
+    font-size: 13px;
+    font-weight: bold;
+    line-height: 60px;
+    text-align: center;
+    color: rgba(255, 255, 255, 1);
+    cursor: pointer;
+
+    &.active {
+      background: rgba(0, 70, 104, 1);
+    }
+  }
+}
+</style>

+ 6 - 0
src/main/vue/src/pages/HandlePhoto.vue

@@ -154,6 +154,12 @@ export default {
           message: '提交成功',
           type: 'success'
         });
+        this.formData = {
+          cowID: '',
+          left: '',
+          front: '',
+          right: ''
+        }
         return
       }
       var formData = new FormData()

+ 17 - 12
src/main/vue/src/pages/HandleTransferHouse.vue

@@ -10,17 +10,19 @@
             </div>
             <el-form ref="form" :model="formData" label-width="80px" style="margin-top:20px;">
                 <el-form-item label="" label-width="0" v-if="transform=='自定义转牛'">
-                    <el-input v-model="formData.cowID" prefix-icon="el-icon-search" style="width:300px" maxlength="8"></el-input>
-                    <el-button type="primary" @click="getNowCow" style="width:90px;margin-left:12px">确认</el-button>
+                    <!-- <el-input v-model="formData.cowID" prefix-icon="el-icon-search" style="width:300px" maxlength="8"></el-input>
+                    <el-button type="primary" @click="getNowCow" style="width:90px;margin-left:12px">确认</el-button> -->
+                      <el-autocomplete prefix-icon="el-icon-search" v-model="formData.cowID" :fetch-suggestions="queryCow" placeholder="请输入牛号" style="width:300px" clearable @select="getNowCow"></el-autocomplete>
+        
                 </el-form-item>
 
                 <el-card v-if="formData.list.length>0" style="margin-bottom:20px">
-                    <el-row type='flex'>
-                        <div class="item" v-for="(item,index) in formData.list">
+                    <div style="flex-wrap: wrap;display:flex;">
+                        <div class="item" v-for="(item,index) in formData.list" style="margin-bottom:10px">
                             <span> {{item}}</span>
                             <i class="el-icon-error" @click="delCow(index)"></i>
                         </div>
-                    </el-row>
+                    </div>
                 </el-card>
 
                 <el-form-item label="转出牛舍" v-if="transform=='整舍转牛'">
@@ -135,12 +137,12 @@ export default {
                 this.formData.remark = this.remarks[0]
             }, 100)
         },
-        'formData.cowID'() {
-            if (this.formData.cowID.length != 8) {
-                return
-            }
-            this.getNowCow()
-        }
+        // 'formData.cowID'() {
+        //     if (this.formData.cowID.length != 8) {
+        //         return
+        //     }
+        //     this.getNowCow()
+        // }
     },
     methods: {
         getCowshed() {
@@ -269,7 +271,10 @@ export default {
                     })
                 })
                 this.tableData = list
-                this.formData.list.push(data['牛号'])
+                if(this.formData.list.indexOf(data['牛号'])==-1){
+this.formData.list.push(data['牛号'])
+                }
+                
             }).catch(() => {
                 this.formData.cowID = ''
             })

+ 31 - 12
src/main/vue/src/pages/HandleTreatment.vue

@@ -6,7 +6,7 @@
           {{pageTitle}}
           <!-- <span>{{list.length}}头奶牛</span> -->
         </div>
-        <div class="selectContent">
+        <div class="selectContent" >
           <el-select v-model="findUser" placeholder="请选择发病揭发人" style="width:230px">
             <el-option v-for="item in findUserList" :key="item" :label="item" :value="item"></el-option>
           </el-select>
@@ -28,12 +28,11 @@
       <div class="contentTitle">{{pageTitle}}</div>
       <el-form ref="form" :model="formData" label-width="80px" style="margin-top:20px;width:522px;">
         <el-form-item label label-width="0">
-          <el-input v-model="formData.cowID" disabled prefix-icon="el-icon-search" style="width:300px" maxlength="8" clearable></el-input>
-          <!-- <el-button type="primary" @click="getNowCow" style="width:90px;margin-left:12px">确认</el-button> -->
+          <el-autocomplete v-model="formData.cowID" :fetch-suggestions="querySearchAsync" style="width:200px" clearable placeholder="请输入内容" @select="chooseCow"></el-autocomplete>
         </el-form-item>
         <div class="sub" v-if="tableData.length>0">操作牛号:{{editCowInfo['牛号']}}</div>
         <el-form-item label="发病日期">
-          <el-input v-model="formData.diseaseDate" disabled style="width:217px"></el-input>
+          <el-input v-model="formData.diseaseDate" disabled style="width:217px" ></el-input>
         </el-form-item>
         <!-- <el-form-item label="疾病类型">
           <el-select v-model="formData.category" placeholder="请选择">
@@ -448,15 +447,18 @@ export default {
       })
       return list
 
+    },
+    allCowList(){
+      var list=[]
+      this.list.forEach(item=>{
+        var jsonp={...item}
+        jsonp.value=item['牛号']
+        list.push(jsonp)
+      })
+      return list
     }
   },
   watch: {
-    'formData.cowID'() {
-      if (this.formData.cowID.length != 8) {
-        return
-      }
-
-    },
     'formData.num'() {
       setTimeout(() => {
         this.formData.describe = this.describeList[0]
@@ -554,7 +556,7 @@ export default {
       })
     },
     onSave(isSick) {
-      if (!this.formData.cowID) {
+      if (this.formData.cowID!=this.editCowInfo['牛号']) {
         this.$message({
           message: '请录入牛只牛号',
           type: 'warning'
@@ -787,7 +789,24 @@ export default {
         this.addForm = data
         this.innerinnerVisible = true
       }
-    }
+    },
+      querySearchAsync(queryString, cb) {
+        var restaurants = this.allCowList;
+        var results = queryString ? restaurants.filter(this.createStateFilter(queryString)) : restaurants;
+
+      
+        var timeout = setTimeout(() => {
+          cb(results);
+        }, 3000 * Math.random());
+      },
+      createStateFilter(queryString) {
+        return (state) => {
+          return (state.value.toLowerCase().indexOf(queryString.toLowerCase()) === 0);
+        };
+      },
+      chooseCow(val){
+        this.rowClick(val)
+      }
   }
 }
 </script>

+ 668 - 648
src/main/vue/src/router/index.js

@@ -7,663 +7,683 @@ Vue.use(Router);
 
 const router = new Router({
     routes: [{
-        path: '/',
-        component: () =>
-            import('../pages/Admin'),
-        children: [{
             path: '/',
-            redirect: 'dashboard'
-        },
-        {
-            path: '/404',
-            name: '404',
-            component: () =>
-                import('../pages/404')
-        },
-        {
-            path: '/dashboard',
-            name: 'dashboard',
-            component: () =>
-                import('../pages/Dashboard')
-        },
-        {
-            path: '/users',
-            name: 'users',
-            component: () =>
-                import('../pages/Users')
-        },
-        {
-            path: '/user',
-            name: 'user',
-            component: () =>
-                import('../pages/User')
-        },
-        {
-            path: '/menus',
-            name: 'menus',
-            component: () =>
-                import('../pages/Menus')
-        },
-        {
-            path: '/roles',
-            name: 'roles',
-            component: () =>
-                import('../pages/Roles')
-        },
-        {
-            path: '/role',
-            name: 'role',
-            component: () =>
-                import('../pages/Role')
-        },
-        {
-            path: '/api',
-            name: 'api',
-            component: () =>
-                import('../pages/Api')
-        },
-        {
-            path: '/genCodes',
-            name: 'genCodes',
-            component: () =>
-                import('../pages/GenCodes')
-        },
-        {
-            path: '/genCode',
-            name: 'genCode',
-            component: () =>
-                import('../pages/GenCode')
-        },
-        {
-            path: '/permissions',
-            name: 'permissions',
-            component: () =>
-                import('../pages/Permissions')
-        },
-        {
-            path: '/permission',
-            name: 'permission',
-            component: () =>
-                import('../pages/Permission')
-        },
-        {
-            path: '/departs',
-            name: 'departs',
-            component: () =>
-                import('../pages/Departs')
-        },
-        {
-            path: '/lineChart',
-            name: 'lineChart',
-            component: () =>
-                import('../pages/LineChart')
-        },
-        {
-            path: '/barChart',
-            name: 'barChart',
-            component: () =>
-                import('../pages/BarChart')
-        },
-        {
-            path: '/polarAreaChart',
-            name: 'polarAreaChart',
-            component: () =>
-                import('../pages/PolarAreaChart')
-        },
-        {
-            path: '/pieChart',
-            name: 'pieChart',
-            component: () =>
-                import('../pages/PieChart')
-        },
-        {
-            path: '/radarChart',
-            name: 'radarChart',
-            component: () =>
-                import('../pages/RadarChart')
-        },
-        {
-            path: '/bubbleChart',
-            name: 'bubbleChart',
-            component: () =>
-                import('../pages/BubbleChart')
-        },
-        {
-            path: '/processModels',
-            name: 'processModels',
-            component: () =>
-                import('../pages/ProcessModels')
-        },
-        {
-            path: '/processDefinitions',
-            name: 'processDefinitions',
-            component: () =>
-                import('../pages/ProcessDefinitions')
-        },
-        {
-            path: '/myProcesses',
-            name: 'myProcesses',
-            component: () =>
-                import('../pages/MyProcesses')
-        },
-        {
-            path: '/myTasks',
-            name: 'myTasks',
-            component: () =>
-                import('../pages/MyTasks')
-        },
-        {
-            path: '/completeTaskDynamic',
-            name: 'CompleteTaskDynamic',
-            component: () =>
-                import('../pages/CompleteTaskDynamic')
-        },
-        {
-            path: '/tableShouyiYaopinxinxis',
-            name: 'tableShouyiYaopinxinxis',
-            component: () =>
-                import('../pages/TableShouyiYaopinxinxis')
-        },
-        {
-            path: '/tableShouyiYaopinxinxi',
-            name: 'tableShouyiYaopinxinxi',
-            component: () =>
-                import('../pages/TableShouyiYaopinxinxi')
-        },
-        {
-            path: '/testAaas',
-            name: 'testAaas',
-            component: () =>
-                import('../pages/TestAaas')
-        },
-        {
-            path: '/testAaa',
-            name: 'testAaa',
-            component: () =>
-                import('../pages/TestAaa')
-        },
-        {
-            path: '/testAaaLineChart',
-            name: 'testAaaLineChart',
-            component: () =>
-                import('../pages/TestAaaLineChart')
-        },
-        {
-            path: '/commonQuerys',
-            name: 'commonQuerys',
-            component: () =>
-                import('../pages/CommonQuerys')
-        },
-        {
-            path: '/commonQuery',
-            name: 'commonQuery',
-            component: () =>
-                import('../pages/CommonQuery')
-        },
-        {
-            path: '/commonIframe',
-            name: 'commonIframe',
-            component: () =>
-                import('../pages/CommonIframe')
-        },
-        {
-            path: '/queryConfigs',
-            name: 'queryConfigs',
-            component: () =>
-                import('../pages/QueryConfigs')
-        },
-        {
-            path: '/queryConfig',
-            name: 'queryConfig',
-            component: () =>
-                import('../pages/QueryConfig')
-        },
-        {
-            path: '/testBbbs',
-            name: 'testBbbs',
-            component: () =>
-                import('../pages/TestBbbs')
-        },
-        {
-            path: '/testBbb',
-            name: 'testBbb',
-            component: () =>
-                import('../pages/TestBbb')
-        },
-        {
-            path: '/testBbbCopys',
-            name: 'testBbbCopys',
-            component: () =>
-                import('../pages/TestBbbCopys')
-        },
-        {
-            path: '/testBbbCopy',
-            name: 'testBbbCopy',
-            component: () =>
-                import('../pages/TestBbbCopy')
-        },
-        {
-            path: '/dataSourceInfos',
-            name: 'dataSourceInfos',
-            component: () =>
-                import('../pages/DataSourceInfos')
-        },
-        {
-            path: '/dataSourceInfo',
-            name: 'dataSourceInfo',
-            component: () =>
-                import('../pages/DataSourceInfo')
-        },
-        {
-            path: '/testSqlserverAaas',
-            name: 'testSqlserverAaas',
-            component: () =>
-                import('../pages/TestSqlserverAaas')
-        },
-        {
-            path: '/TestSqlserverAaa',
-            name: 'TestSqlserverAaa',
-            component: () =>
-                import('../pages/TestSqlserverAaa')
-        },
-        {
-            path: '/deploySystem',
-            name: 'DeploySystem',
-            component: () =>
-                import('../pages/DeploySystem')
-        },
-        {
-            path: '/testDeploy',
-            name: 'TestDeploy',
-            component: () =>
-                import('../pages/TestDeploy')
-        },
-        {
-            path: '/testDeploys',
-            name: 'TestDeploys',
-            component: () =>
-                import('../pages/TestDeploys')
-        },
-        {
-            path: '/testaaaone',
-            name: 'Testaaaone',
-            component: () =>
-                import('../pages/Testaaaone')
-        },
-        {
-            path: '/testaaaones',
-            name: 'Testaaaones',
-            component: () =>
-                import('../pages/Testaaaones')
-        },
-        {
-            path: '/testgit',
-            name: 'Testgit',
             component: () =>
-                import('../pages/Testgit')
-        },
-        {
-            path: '/testgits',
-            name: 'Testgits',
-            component: () =>
-                import('../pages/Testgits')
-        },
-        {
-            path: '/testCaidan',
-            name: 'TestCaidan',
-            component: () =>
-                import('../pages/TestCaidan')
-        },
-        {
-            path: '/testCaidans',
-            name: 'TestCaidans',
-            component: () =>
-                import('../pages/TestCaidans')
-        },
-        {
-            path: '/tableNiuseRongliang',
-            name: 'TableNiuseRongliang',
-            component: () =>
-                import('../pages/TableNiuseRongliang')
-        },
-        {
-            path: '/tableNiuseRongliangs',
-            name: 'TableNiuseRongliangs',
-            component: () =>
-                import('../pages/TableNiuseRongliangs')
-        },
-        /**INSERT_LOCATION**/
+                import ('../pages/Admin'),
+            children: [{
+                    path: '/',
+                    redirect: 'dashboard'
+                },
+                {
+                    path: '/404',
+                    name: '404',
+                    component: () =>
+                        import ('../pages/404')
+                },
+                {
+                    path: '/dashboard',
+                    name: 'dashboard',
+                    component: () =>
+                        import ('../pages/Dashboard')
+                },
+                {
+                    path: '/users',
+                    name: 'users',
+                    component: () =>
+                        import ('../pages/Users')
+                },
+                {
+                    path: '/user',
+                    name: 'user',
+                    component: () =>
+                        import ('../pages/User')
+                },
+                {
+                    path: '/menus',
+                    name: 'menus',
+                    component: () =>
+                        import ('../pages/Menus')
+                },
+                {
+                    path: '/roles',
+                    name: 'roles',
+                    component: () =>
+                        import ('../pages/Roles')
+                },
+                {
+                    path: '/role',
+                    name: 'role',
+                    component: () =>
+                        import ('../pages/Role')
+                },
+                {
+                    path: '/api',
+                    name: 'api',
+                    component: () =>
+                        import ('../pages/Api')
+                },
+                {
+                    path: '/genCodes',
+                    name: 'genCodes',
+                    component: () =>
+                        import ('../pages/GenCodes')
+                },
+                {
+                    path: '/genCode',
+                    name: 'genCode',
+                    component: () =>
+                        import ('../pages/GenCode')
+                },
+                {
+                    path: '/permissions',
+                    name: 'permissions',
+                    component: () =>
+                        import ('../pages/Permissions')
+                },
+                {
+                    path: '/permission',
+                    name: 'permission',
+                    component: () =>
+                        import ('../pages/Permission')
+                },
+                {
+                    path: '/departs',
+                    name: 'departs',
+                    component: () =>
+                        import ('../pages/Departs')
+                },
+                {
+                    path: '/lineChart',
+                    name: 'lineChart',
+                    component: () =>
+                        import ('../pages/LineChart')
+                },
+                {
+                    path: '/barChart',
+                    name: 'barChart',
+                    component: () =>
+                        import ('../pages/BarChart')
+                },
+                {
+                    path: '/polarAreaChart',
+                    name: 'polarAreaChart',
+                    component: () =>
+                        import ('../pages/PolarAreaChart')
+                },
+                {
+                    path: '/pieChart',
+                    name: 'pieChart',
+                    component: () =>
+                        import ('../pages/PieChart')
+                },
+                {
+                    path: '/radarChart',
+                    name: 'radarChart',
+                    component: () =>
+                        import ('../pages/RadarChart')
+                },
+                {
+                    path: '/bubbleChart',
+                    name: 'bubbleChart',
+                    component: () =>
+                        import ('../pages/BubbleChart')
+                },
+                {
+                    path: '/processModels',
+                    name: 'processModels',
+                    component: () =>
+                        import ('../pages/ProcessModels')
+                },
+                {
+                    path: '/processDefinitions',
+                    name: 'processDefinitions',
+                    component: () =>
+                        import ('../pages/ProcessDefinitions')
+                },
+                {
+                    path: '/myProcesses',
+                    name: 'myProcesses',
+                    component: () =>
+                        import ('../pages/MyProcesses')
+                },
+                {
+                    path: '/myTasks',
+                    name: 'myTasks',
+                    component: () =>
+                        import ('../pages/MyTasks')
+                },
+                {
+                    path: '/completeTaskDynamic',
+                    name: 'CompleteTaskDynamic',
+                    component: () =>
+                        import ('../pages/CompleteTaskDynamic')
+                },
+                {
+                    path: '/tableShouyiYaopinxinxis',
+                    name: 'tableShouyiYaopinxinxis',
+                    component: () =>
+                        import ('../pages/TableShouyiYaopinxinxis')
+                },
+                {
+                    path: '/tableShouyiYaopinxinxi',
+                    name: 'tableShouyiYaopinxinxi',
+                    component: () =>
+                        import ('../pages/TableShouyiYaopinxinxi')
+                },
+                {
+                    path: '/testAaas',
+                    name: 'testAaas',
+                    component: () =>
+                        import ('../pages/TestAaas')
+                },
+                {
+                    path: '/testAaa',
+                    name: 'testAaa',
+                    component: () =>
+                        import ('../pages/TestAaa')
+                },
+                {
+                    path: '/testAaaLineChart',
+                    name: 'testAaaLineChart',
+                    component: () =>
+                        import ('../pages/TestAaaLineChart')
+                },
+                {
+                    path: '/commonQuerys',
+                    name: 'commonQuerys',
+                    component: () =>
+                        import ('../pages/CommonQuerys')
+                },
+                {
+                    path: '/commonQuery',
+                    name: 'commonQuery',
+                    component: () =>
+                        import ('../pages/CommonQuery')
+                },
+                {
+                    path: '/commonIframe',
+                    name: 'commonIframe',
+                    component: () =>
+                        import ('../pages/CommonIframe')
+                },
+                {
+                    path: '/queryConfigs',
+                    name: 'queryConfigs',
+                    component: () =>
+                        import ('../pages/QueryConfigs')
+                },
+                {
+                    path: '/queryConfig',
+                    name: 'queryConfig',
+                    component: () =>
+                        import ('../pages/QueryConfig')
+                },
+                {
+                    path: '/testBbbs',
+                    name: 'testBbbs',
+                    component: () =>
+                        import ('../pages/TestBbbs')
+                },
+                {
+                    path: '/testBbb',
+                    name: 'testBbb',
+                    component: () =>
+                        import ('../pages/TestBbb')
+                },
+                {
+                    path: '/testBbbCopys',
+                    name: 'testBbbCopys',
+                    component: () =>
+                        import ('../pages/TestBbbCopys')
+                },
+                {
+                    path: '/testBbbCopy',
+                    name: 'testBbbCopy',
+                    component: () =>
+                        import ('../pages/TestBbbCopy')
+                },
+                {
+                    path: '/dataSourceInfos',
+                    name: 'dataSourceInfos',
+                    component: () =>
+                        import ('../pages/DataSourceInfos')
+                },
+                {
+                    path: '/dataSourceInfo',
+                    name: 'dataSourceInfo',
+                    component: () =>
+                        import ('../pages/DataSourceInfo')
+                },
+                {
+                    path: '/testSqlserverAaas',
+                    name: 'testSqlserverAaas',
+                    component: () =>
+                        import ('../pages/TestSqlserverAaas')
+                },
+                {
+                    path: '/TestSqlserverAaa',
+                    name: 'TestSqlserverAaa',
+                    component: () =>
+                        import ('../pages/TestSqlserverAaa')
+                },
+                {
+                    path: '/deploySystem',
+                    name: 'DeploySystem',
+                    component: () =>
+                        import ('../pages/DeploySystem')
+                },
+                {
+                    path: '/testDeploy',
+                    name: 'TestDeploy',
+                    component: () =>
+                        import ('../pages/TestDeploy')
+                },
+                {
+                    path: '/testDeploys',
+                    name: 'TestDeploys',
+                    component: () =>
+                        import ('../pages/TestDeploys')
+                },
+                {
+                    path: '/testaaaone',
+                    name: 'Testaaaone',
+                    component: () =>
+                        import ('../pages/Testaaaone')
+                },
+                {
+                    path: '/testaaaones',
+                    name: 'Testaaaones',
+                    component: () =>
+                        import ('../pages/Testaaaones')
+                },
+                {
+                    path: '/testgit',
+                    name: 'Testgit',
+                    component: () =>
+                        import ('../pages/Testgit')
+                },
+                {
+                    path: '/testgits',
+                    name: 'Testgits',
+                    component: () =>
+                        import ('../pages/Testgits')
+                },
+                {
+                    path: '/testCaidan',
+                    name: 'TestCaidan',
+                    component: () =>
+                        import ('../pages/TestCaidan')
+                },
+                {
+                    path: '/testCaidans',
+                    name: 'TestCaidans',
+                    component: () =>
+                        import ('../pages/TestCaidans')
+                },
+                {
+                    path: '/tableNiuseRongliang',
+                    name: 'TableNiuseRongliang',
+                    component: () =>
+                        import ('../pages/TableNiuseRongliang')
+                },
+                {
+                    path: '/tableNiuseRongliangs',
+                    name: 'TableNiuseRongliangs',
+                    component: () =>
+                        import ('../pages/TableNiuseRongliangs')
+                },
+                /**INSERT_LOCATION**/
 
-        {
-            path: '/handleLeaveAdd',
-            name: 'handleLeaveAdd',
-            component: () =>
-                import('../pages/HandleLeaveAdd'),
-            meta: {
-                type: '手持机录入',
-                title: '离场登记'
-            }
-        },
+                {
+                    path: '/handleLeaveAdd',
+                    name: 'handleLeaveAdd',
+                    component: () =>
+                        import ('../pages/HandleLeaveAdd'),
+                    meta: {
+                        type: '手持机录入',
+                        title: '离场登记'
+                    }
+                },
 
-        {
-            path: '/handleEstrusEvent',
-            name: 'handleEstrusEvent',
-            component: () =>
-                import('../pages/HandleEstrusEvent'),
-            meta: {
-                type: '手持机录入',
-                title: '发情事件'
-            }
-        },
+                {
+                    path: '/handleEstrusEvent',
+                    name: 'handleEstrusEvent',
+                    component: () =>
+                        import ('../pages/HandleEstrusEvent'),
+                    meta: {
+                        type: '手持机录入',
+                        title: '发情事件'
+                    }
+                },
 
-        {
-            path: '/handleMatch',
-            name: 'handleMatch',
-            component: () =>
-                import('../pages/HandleMatch'),
-            meta: {
-                type: '手持机录入',
-                title: '配种任务'
-            }
-        },
-        {
-            path: '/handleSimultaneousMatch',
-            name: 'handleSimultaneousMatch',
-            component: () =>
-                import('../pages/HandleSimultaneousMatch'),
-            meta: {
-                type: '手持机录入',
-                title: '同期配种'
-            }
-        },
-        {
-            path: '/handleInitial',
-            name: 'handleInitial',
-            component: () =>
-                import('../pages/HandleInitial'),
-            meta: {
-                type: '手持机录入',
-                title: '初检录入'
-            }
-        },
-        {
-            path: '/handleRecheck',
-            name: 'handleRecheck',
-            component: () =>
-                import('../pages/HandleRecheck'),
-            meta: {
-                type: '手持机录入',
-                title: '复检录入'
-            }
-        },
-        {
-            path: '/handleAbortion',
-            name: 'handleAbortion',
-            component: () =>
-                import('../pages/HandleAbortion'),
-            meta: {
-                type: '手持机录入',
-                title: '流产登记'
-            }
-        },
-        {
-            path: '/handleDryMilk',
-            name: 'handleDryMilk',
-            component: () =>
-                import('../pages/HandleDryMilk'),
-            meta: {
-                type: '手持机录入',
-                title: '干奶登记'
-            }
-        },
-        {
-            path: '/handlePerinatalCare',
-            name: 'handlePerinatalCare',
-            component: () =>
-                import('../pages/HandlePerinatalCare'),
-            meta: {
-                type: '手持机录入',
-                title: '围产期护理'
-            }
-        },
-        {
-            path: '/handleFeeding',
-            name: 'handleFeeding',
-            component: () =>
-                import('../pages/HandleFeeding'),
-            meta: {
-                type: '手持机录入',
-                title: '投喂博威钙'
-            }
-        },
-        {
-            path: '/handleHoofCare',
-            name: 'handleHoofCare',
-            component: () =>
-                import('../pages/HandleHoofCare'),
-            meta: {
-                type: '手持机录入',
-                title: '修蹄保健'
-            }
-        },
-        {
-            path: '/handleTransferHouse',
-            name: 'handleTransferHouse',
-            component: () =>
-                import('../pages/HandleTransferHouse'),
-            meta: {
-                type: '手持机录入',
-                title: '奶牛转舍'
-            }
-        },
-        {
-            path: '/handleCalving',
-            name: 'handleCalving',
-            component: () =>
-                import('../pages/HandleCalving'),
-            meta: {
-                type: '手持机录入',
-                title: '产犊登记'
-            }
-        },
-        {
-            path: '/handleCalf',
-            name: 'handleCalf',
-            component: () =>
-                import('../pages/HandleCalf'),
-            meta: {
-                type: '手持机录入',
-                title: '犊牛登记'
-            }
-        },
-        {
-            path: '/handlePerinatal',
-            name: 'handlePerinatal',
-            component: () =>
-                import('../pages/HandlePerinatal'),
-            meta: {
-                type: '手持机录入',
-                title: '产前围产'
-            }
-        },
-        {
-            path: '/handleDiagnosis',
-            name: 'handleDiagnosis',
-            component: () =>
-                import('../pages/HandleDiagnosis'),
-            meta: {
-                type: '手持机录入',
-                title: '疾病确诊'
-            }
-        },
-        {
-            path: '/handleTreatment',
-            name: 'handleTreatment',
-            component: () =>
-                import('../pages/HandleTreatment'),
-            meta: {
-                type: '手持机录入',
-                title: '日常治疗'
-            }
-        },
-        {
-            path: '/handleSampling',
-            name: 'handleSampling',
-            component: () =>
-                import('../pages/HandleSampling'),
-            meta: {
-                type: '手持机录入',
-                title: '过抗采样'
-            }
-        },
-        {
-            path: '/handleOutcome',
-            name: 'handleOutcome',
-            component: () =>
-                import('../pages/HandleOutcome'),
-            meta: {
-                type: '手持机录入',
-                title: '转归处理'
-            }
-        },
-        {
-            path: '/handleBlindMilk',
-            name: 'handleBlindMilk',
-            component: () =>
-                import('../pages/HandleBlindMilk'),
-            meta: {
-                type: '手持机录入',
-                title: '盲乳登记'
-            }
-        },
-        {
-            path: '/handleGrowth',
-            name: 'handleGrowth',
-            component: () =>
-                import('../pages/HandleGrowth'),
-            meta: {
-                type: '手持机录入',
-                title: '盲乳登记'
-            }
-        },
-        {
-            path: '/handleProhibition',
-            name: 'handleProhibition',
-            component: () =>
-                import('../pages/HandleProhibition'),
-            meta: {
-                type: '手持机录入',
-                title: '禁配解禁'
-            }
-        },
-        {
-            path: '/handleFeedingMagnet',
-            name: 'handleFeedingMagnet',
-            component: () =>
-                import('../pages/HandleFeedingMagnet'),
-            meta: {
-                type: '手持机录入 ',
-                title: '投喂磁石'
-            }
-        },
-        {
-            path: '/handleImmunopotency',
-            name: 'handleImmunopotency',
-            component: () =>
-                import('../pages/HandleImmunopotency'),
-            meta: {
-                type: '手持机录入 ',
-                title: '免疫效价'
-            }
-        },
-        {
-            path: '/handlePhoto',
-            name: 'handlePhoto',
-            component: () =>
-                import('../pages/HandlePhoto'),
-            meta: {
-                type: '手持机录入 ',
-                title: '犊牛拍照'
-            }
-        },
-        {
-            path: '/handleBeestings',
-            name: 'handleBeestings',
-            component: () =>
-                import('../pages/HandleBeestings'),
-            meta: {
-                type: '手持机录入 ',
-                title: '初乳饲喂'
-            }
-        },
-        {
-            path: '/handleWeaning',
-            name: 'handleWeaning',
-            component: () =>
-                import('../pages/HandleWeaning'),
-            meta: {
-                type: '手持机录入 ',
-                title: '断奶登记'
-            }
-        },
-        {
-            path: '/handleApproach',
-            name: 'handleApproach',
-            component: () =>
-                import('../pages/HandleApproach'),
-            meta: {
-                type: '手持机录入 ',
-                title: '进场登记'
-            }
-        },
-        {
-            path: '/handleTransition',
-            name: 'handleTransition',
-            component: () =>
-                import('../pages/HandleTransition'),
-            meta: {
-                type: '手持机录入 ',
-                title: '转场登记'
-            }
-        },
-        {
-            path: '/handleTuberculosis',
-            name: 'handleTuberculosis',
-            component: () =>
-                import('../pages/HandleTuberculosis'),
-            meta: {
-                type: '手持机录入 ',
-                title: '结核检验'
-            }
-        },
-        {
-            path: '/handleQuarantine',
-            name: 'handleQuarantine',
-            component: () =>
-                import('../pages/HandleQuarantine'),
-            meta: {
-                type: '手持机录入 ',
-                title: '布疫检疫'
-            }
+                {
+                    path: '/handleMatch',
+                    name: 'handleMatch',
+                    component: () =>
+                        import ('../pages/HandleMatch'),
+                    meta: {
+                        type: '手持机录入',
+                        title: '配种任务'
+                    }
+                },
+                {
+                    path: '/handleSimultaneousMatch',
+                    name: 'handleSimultaneousMatch',
+                    component: () =>
+                        import ('../pages/HandleSimultaneousMatch'),
+                    meta: {
+                        type: '手持机录入',
+                        title: '同期配种'
+                    }
+                },
+                {
+                    path: '/handleInitial',
+                    name: 'handleInitial',
+                    component: () =>
+                        import ('../pages/HandleInitial'),
+                    meta: {
+                        type: '手持机录入',
+                        title: '初检录入'
+                    }
+                },
+                {
+                    path: '/handleRecheck',
+                    name: 'handleRecheck',
+                    component: () =>
+                        import ('../pages/HandleRecheck'),
+                    meta: {
+                        type: '手持机录入',
+                        title: '复检录入'
+                    }
+                },
+                {
+                    path: '/handleAbortion',
+                    name: 'handleAbortion',
+                    component: () =>
+                        import ('../pages/HandleAbortion'),
+                    meta: {
+                        type: '手持机录入',
+                        title: '流产登记'
+                    }
+                },
+                {
+                    path: '/handleDryMilk',
+                    name: 'handleDryMilk',
+                    component: () =>
+                        import ('../pages/HandleDryMilk'),
+                    meta: {
+                        type: '手持机录入',
+                        title: '干奶登记'
+                    }
+                },
+                {
+                    path: '/handlePerinatalCare',
+                    name: 'handlePerinatalCare',
+                    component: () =>
+                        import ('../pages/HandlePerinatalCare'),
+                    meta: {
+                        type: '手持机录入',
+                        title: '围产期护理'
+                    }
+                },
+                {
+                    path: '/handleFeeding',
+                    name: 'handleFeeding',
+                    component: () =>
+                        import ('../pages/HandleFeeding'),
+                    meta: {
+                        type: '手持机录入',
+                        title: '投喂博威钙'
+                    }
+                },
+                {
+                    path: '/handleHoofCare',
+                    name: 'handleHoofCare',
+                    component: () =>
+                        import ('../pages/HandleHoofCare'),
+                    meta: {
+                        type: '手持机录入',
+                        title: '修蹄保健'
+                    }
+                },
+                {
+                    path: '/handleTransferHouse',
+                    name: 'handleTransferHouse',
+                    component: () =>
+                        import ('../pages/HandleTransferHouse'),
+                    meta: {
+                        type: '手持机录入',
+                        title: '奶牛转舍'
+                    }
+                },
+                {
+                    path: '/handleCalving',
+                    name: 'handleCalving',
+                    component: () =>
+                        import ('../pages/HandleCalving'),
+                    meta: {
+                        type: '手持机录入',
+                        title: '产犊登记'
+                    }
+                },
+                {
+                    path: '/handleCalf',
+                    name: 'handleCalf',
+                    component: () =>
+                        import ('../pages/HandleCalf'),
+                    meta: {
+                        type: '手持机录入',
+                        title: '犊牛登记'
+                    }
+                },
+                {
+                    path: '/handlePerinatal',
+                    name: 'handlePerinatal',
+                    component: () =>
+                        import ('../pages/HandlePerinatal'),
+                    meta: {
+                        type: '手持机录入',
+                        title: '产前围产'
+                    }
+                },
+                {
+                    path: '/handleDiagnosis',
+                    name: 'handleDiagnosis',
+                    component: () =>
+                        import ('../pages/HandleDiagnosis'),
+                    meta: {
+                        type: '手持机录入',
+                        title: '疾病确诊'
+                    }
+                },
+                {
+                    path: '/handleTreatment',
+                    name: 'handleTreatment',
+                    component: () =>
+                        import ('../pages/HandleTreatment'),
+                    meta: {
+                        type: '手持机录入',
+                        title: '日常治疗'
+                    }
+                },
+                {
+                    path: '/handleSampling',
+                    name: 'handleSampling',
+                    component: () =>
+                        import ('../pages/HandleSampling'),
+                    meta: {
+                        type: '手持机录入',
+                        title: '过抗采样'
+                    }
+                },
+                {
+                    path: '/handleOutcome',
+                    name: 'handleOutcome',
+                    component: () =>
+                        import ('../pages/HandleOutcome'),
+                    meta: {
+                        type: '手持机录入',
+                        title: '转归处理'
+                    }
+                },
+                {
+                    path: '/handleBlindMilk',
+                    name: 'handleBlindMilk',
+                    component: () =>
+                        import ('../pages/HandleBlindMilk'),
+                    meta: {
+                        type: '手持机录入',
+                        title: '盲乳登记'
+                    }
+                },
+                {
+                    path: '/handleGrowth',
+                    name: 'handleGrowth',
+                    component: () =>
+                        import ('../pages/HandleGrowth'),
+                    meta: {
+                        type: '手持机录入',
+                        title: '盲乳登记'
+                    }
+                },
+                {
+                    path: '/handleProhibition',
+                    name: 'handleProhibition',
+                    component: () =>
+                        import ('../pages/HandleProhibition'),
+                    meta: {
+                        type: '手持机录入',
+                        title: '禁配解禁'
+                    }
+                },
+                {
+                    path: '/handleFeedingMagnet',
+                    name: 'handleFeedingMagnet',
+                    component: () =>
+                        import ('../pages/HandleFeedingMagnet'),
+                    meta: {
+                        type: '手持机录入 ',
+                        title: '投喂磁石'
+                    }
+                },
+                {
+                    path: '/handleImmunopotency',
+                    name: 'handleImmunopotency',
+                    component: () =>
+                        import ('../pages/HandleImmunopotency'),
+                    meta: {
+                        type: '手持机录入 ',
+                        title: '免疫效价'
+                    }
+                },
+                {
+                    path: '/handlePhoto',
+                    name: 'handlePhoto',
+                    component: () =>
+                        import ('../pages/HandlePhoto'),
+                    meta: {
+                        type: '手持机录入 ',
+                        title: '犊牛拍照'
+                    }
+                },
+                {
+                    path: '/handleBeestings',
+                    name: 'handleBeestings',
+                    component: () =>
+                        import ('../pages/HandleBeestings'),
+                    meta: {
+                        type: '手持机录入 ',
+                        title: '初乳饲喂'
+                    }
+                },
+                {
+                    path: '/handleWeaning',
+                    name: 'handleWeaning',
+                    component: () =>
+                        import ('../pages/HandleWeaning'),
+                    meta: {
+                        type: '手持机录入 ',
+                        title: '断奶登记'
+                    }
+                },
+                {
+                    path: '/handleApproach',
+                    name: 'handleApproach',
+                    component: () =>
+                        import ('../pages/HandleApproach'),
+                    meta: {
+                        type: '手持机录入 ',
+                        title: '进场登记'
+                    }
+                },
+                {
+                    path: '/handleTransition',
+                    name: 'handleTransition',
+                    component: () =>
+                        import ('../pages/HandleTransition'),
+                    meta: {
+                        type: '手持机录入 ',
+                        title: '转场登记'
+                    }
+                },
+                {
+                    path: '/handleTuberculosis',
+                    name: 'handleTuberculosis',
+                    component: () =>
+                        import ('../pages/HandleTuberculosis'),
+                    meta: {
+                        type: '手持机录入 ',
+                        title: '结核检验'
+                    }
+                },
+                {
+                    path: '/handleQuarantine',
+                    name: 'handleQuarantine',
+                    component: () =>
+                        import ('../pages/HandleQuarantine'),
+                    meta: {
+                        type: '手持机录入 ',
+                        title: '布疫检疫'
+                    }
+                },
+                {
+                    path: '/handleDisinfection',
+                    name: 'handleDisinfection',
+                    component: () =>
+                        import ('../pages/HandleDisinfection'),
+                    meta: {
+                        type: '手持机录入 ',
+                        title: '消毒登记'
+                    }
+                },
+                {
+                    path: '/handleChamfer',
+                    name: 'handleChamfer',
+                    component: () =>
+                        import ('../pages/HandleChamfer'),
+                    meta: {
+                        type: '手持机录入 ',
+                        title: '去角登记'
+                    }
+                },
+                {
+                    path: '/handleMamma',
+                    name: 'handleMamma',
+                    component: () =>
+                        import ('../pages/HandleMamma'),
+                    meta: {
+                        type: '手持机录入 ',
+                        title: '除副乳登记'
+                    }
+                }
+            ]
         },
         {
-            path: '/handleDisinfection',
-            name: 'handleDisinfection',
+            path: '/login',
+            name: 'login',
             component: () =>
-                import('../pages/HandleDisinfection'),
-            meta: {
-                type: '手持机录入 ',
-                title: '消毒登记'
-            }
+                import ('../pages/Login')
         }
-        ]
-    },
-    {
-        path: '/login',
-        name: 'login',
-        component: () =>
-            import('../pages/Login')
-    }
     ]
 });
 router.beforeEach((to, from, next) => {