panhui 7 år sedan
förälder
incheckning
7b4ffeb24b

+ 5 - 5
src/main/vue/src/pages/Departs.vue

@@ -143,11 +143,11 @@ export default {
             this.menu = {
                 id: data.extra.id,
                 departName: data.extra.departName,
-                departCode: data.extra.departCode,
-                misInclude: data.extra.misInclude,
-                misOrgCode: data.extra.misOrgCode,
-                misOrgName: data.extra.misOrgName,
-                misChild: data.extra.misChild,
+                departCode: data.extra.departCode||'',
+                misInclude: data.extra.misInclude||'',
+                misOrgCode: data.extra.misOrgCode||'',
+                misOrgName: data.extra.misOrgName||'',
+                misChild: data.extra.misChild||'',
             };
             this.dialogVisible = true;
         },

+ 1 - 1
src/main/vue/src/pages/HandleAbortion.vue

@@ -38,7 +38,7 @@
         <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 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="当前牛只信信息">

+ 345 - 0
src/main/vue/src/pages/HandleBlindMilk.vue

@@ -0,0 +1,345 @@
+<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-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?"盲乳":item.name}}</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: []
+    }
+  },
+  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.$message({
+          message: '请录入离场牛只牛号',
+          type: 'warning'
+        });
+        return
+      }
+      var formData = { ...this.formData }
+      formData.checkDate = Date.parse(new Date())
+
+      this.statusList.forEach(item => {
+        formData['status' + item.key] = item.value
+        if (item.befor && !item.value) {
+          formData['removeDate' + item.key] = Date.parse(new Date())
+          formData['removeMan' + item.key] = this.userInfo.username
+        }
+
+        if (item.value) {
+          formData['markDate' + item.key] = Date.parse(new Date())
+          formData['markMan' + item.key] = this.userInfo.username
+        }
+      })
+
+
+
+      this.getHaleInfo('wsVeterinary', 'addBlind', [
+        formData
+      ], '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('wsVeterinary', 'getBlindByCowID', [
+        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]
+          })
+        })
+
+
+        if (data['左前乳区状态'] == 'true') {
+          this.statusList[0].value = true
+          this.statusList[0].befor = true
+        }
+        else {
+          this.statusList[0].value = false
+          this.statusList[0].befor = false
+        }
+
+
+        if (data['右前乳区状态'] == 'true') {
+          this.statusList[1].value = true
+          this.statusList[1].befor = true
+        }
+        else {
+          this.statusList[1].value = false
+          this.statusList[1].befor = false
+        }
+
+
+        if (data['左后乳区状态'] == 'true') {
+          this.statusList[2].value = true
+          this.statusList[2].befor = true
+        }
+        else {
+          this.statusList[2].value = false
+          this.statusList[2].befor = false
+        }
+
+
+        if (data['右后乳区状态'] == 'true') {
+          this.statusList[3].value = true
+          this.statusList[3].befor = true
+        }
+        else {
+          this.statusList[3].value = false
+          this.statusList[3].befor = false
+        }
+
+
+
+        // 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>

+ 2 - 2
src/main/vue/src/pages/HandleCalf.vue

@@ -6,7 +6,7 @@
 
                     <span>{{list.length}}头奶牛</span>
                 </div>
-                <el-table class="handleTable" border :data="list" style="width: 100%" :height='(allHeight-70)+"px"' size='small' @row-click='rowClick'>
+                <el-table class="handleTable" border :data="list" style="width: 100%" :height="(allHeight-70)+'px'" size='small' @row-click='rowClick'>
                     <el-table-column prop="母牛号" label="母牛号" fixed="left" align="center">
                     </el-table-column>
                     <el-table-column prop="当前牛舍" label="牛舍" align="center">
@@ -74,7 +74,7 @@
         <el-aside class="containAside" width="450px" style=" margin-left: 10px;">
             <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 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="当前牛只信信息">

+ 1 - 1
src/main/vue/src/pages/HandleCalving.vue

@@ -46,7 +46,7 @@
         <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 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="当前牛只信信息">

+ 1 - 1
src/main/vue/src/pages/HandleEstrusEvent.vue

@@ -32,7 +32,7 @@
         <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 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="当前牛只信信息">

+ 210 - 150
src/main/vue/src/pages/HandleFeeding.vue

@@ -7,16 +7,16 @@
                     <!-- <span>{{list.length}}头奶牛</span> -->
                 </div>
                 <div class="selectContent">
-                    <el-select v-model="task" placeholder="请选择同期任务" style="width:180px">
-                        <el-option v-for="item in taskList" :key="item" :label="item" :value="item">
+                    <el-select v-model="task" placeholder="请选择围产期护理" style="width:230px">
+                        <el-option v-for="item in taskList" :key="item.type" :label="item.name" :value="item.type">
                         </el-option>
                     </el-select>
 
-                    <el-select v-model="cowshed" placeholder="请选择牛舍" style="width:180px">
+                    <el-select v-model="cowshed" placeholder="请选择牛舍" style="width:230px">
                         <el-option v-for="item in cowShedList" :key="item" :label="item" :value="item">
                         </el-option>
                     </el-select>
-                    <el-button type="primary" plain @click="filitDayList=filitDay">筛选</el-button>
+                    <!-- <el-button type="primary" plain @click="filitDayList=filitDay">筛选</el-button> -->
 
                 </div>
                 <div class="tableNum">
@@ -27,24 +27,33 @@
                     </el-table-column>
                     <el-table-column prop="当前牛舍" label="牛舍" align="center">
                     </el-table-column>
-                    <el-table-column prop="繁殖状态" label="繁殖状态" align="center" min-width="100">
+                    <el-table-column prop="当前胎次" label="当前胎次" align="center" width="70">
                     </el-table-column>
-                    <el-table-column prop="产后|初检后" label="产后|初检后" width="100px" align="center">
+                    <el-table-column prop="繁殖状态" label="繁殖状态" align="center">
                     </el-table-column>
-                    <el-table-column prop="最近配种日期" label="最近配种" align="center">
+                    <el-table-column prop="泌乳状态" label="泌乳状态" align="center">
                     </el-table-column>
-                    <el-table-column prop="月龄" label="月龄" align="center">
+                    <el-table-column v-if="task==2" prop="配种日期" label="配种日期" width="120px" align="center">
                     </el-table-column>
-                     <el-table-column prop="父号" label="父号" width="140px"  align="center">
+                    <el-table-column v-if="task==2" prop="预产日期" label="预产日期" width="120px" align="center">
                     </el-table-column>
-                     <el-table-column prop="操作方案" label="操作方案" width="200px" align="center">
+                    <el-table-column v-if="task!=2" prop="产犊日期" label="产犊日期" width="120px" align="center">
                     </el-table-column>
+                    <el-table-column v-if="task==1" prop="产犊类型" label="产犊类型" align="center">
+                    </el-table-column>
+                    <el-table-column v-if="task==1" prop="提示日期" label="提示日期" width="120px" align="center">
+                    </el-table-column>
+                    <el-table-column v-if="task==3" prop="投喂博威钙次数" label="投喂博威钙次数" width="120px" align="center">
+                    </el-table-column>
+                    <el-table-column v-if="task==3" prop="投喂博威钙时间" label="投喂博威钙时间" width="160px" align="center">
+                    </el-table-column>
+
                 </el-table>
             </div>
         </el-aside>
         <el-main class="containMain">
-            <div class="contentTitle">投喂淄博钙信息登记</div>
-            <el-form ref="form" :model="formData" label-width="80px" style="margin-top:20px;">
+            <div class="contentTitle">{{nowTaskJson.name}}信息登记</div>
+            <el-form ref="form" :model="formData" style="margin-top:20px;" label-width="120px">
                 <el-form-item label="" label-width="0">
                     <el-input v-model="formData.cowID" disabled 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> -->
@@ -52,43 +61,32 @@
                 <div class="sub" v-if="tableData.length>0">
                     操作牛号:{{tableData[0].value}}
                 </div>
-                <!-- <el-form-item label="建议配种">
-                    <el-radio-group v-model="formData.isMate">
-                        <el-radio label="0">是</el-radio>
-                        <el-radio label="1">否</el-radio>
-                    </el-radio-group>
-                </el-form-item> -->
-                <el-form-item label="配种方式">
-                    <el-select v-model="              formData.mateMode" placeholder="请选择">
-                        <el-option v-for="item in mateModes" :key="item['详细方式']" :label="item['详细方式']" :value="item['详细方式']">
-                        </el-option>
-                    </el-select>
-                </el-form-item>
-                <el-form-item label="配种冻精">
-                    <el-select v-model="formData.bull" placeholder="请选择">
-                        <el-option v-for="item in bulls" :key="item['牛号']" :label="item['牛号']" :value="item['牛号']">
-                        </el-option>
-                    </el-select>
+                <div style="margin:20px">
+                    <div style="margin-bottom:10px">{{nowTaskJson.use}}</div>
 
-                    <div>
-                        <el-popover placement="right" width="200" trigger="hover">
-                            <div class="conetnt">
-                                <div class="item" v-for="(item,key) in bullMsg">
-                                    <div class="item-title">{{key}}</div>
-                                    <div class="text">{{item}}</div>
-                                </div>
-                            </div>
-                            <el-button type="text" slot="reference">查看此冻精详情</el-button>
-                        </el-popover>
-                    </div>
-                </el-form-item>
-
-                <!-- <el-form-item label="配种员">
-                    <el-select v-model="formData.person" placeholder="请选择">
-                        <el-option v-for="item in [userInfo.username]" :key="item" :label="item" :value="item">
-                        </el-option>
-                    </el-select>
-                </el-form-item> -->
+                    <el-radio-group v-model="formData.isUse">
+                        <el-radio label="1">是</el-radio>
+                        <el-radio v-if="task==1" label="0">否</el-radio>
+                    </el-radio-group>
+                </div>
+                <template v-if="task==1&&formData.isUse=='1'">
+                    <el-form-item label="体温">
+                        <el-select v-model="bodyTemp" placeholder="请选择围产期护理" style="width:230px">
+                            <el-option v-for="item in temperatureList" :key="item" :label="item" :value="item">
+                            </el-option>
+                        </el-select>
+                    </el-form-item>
+                    <el-form-item label="疾病名称">
+                        <el-select v-model="name" placeholder="请选择围产期护理" style="width:230px">
+                            <el-option v-for="item in allDiseaseInfo" :key="item['名称']" :label="item['名称']" :value="item['名称']">
+                            </el-option>
+                        </el-select>
+                    </el-form-item>
+                    <el-form-item label="转入兽医院">
+                        <el-switch v-model="formData.isCheck">
+                        </el-switch>
+                    </el-form-item>
+                </template>
 
                 <div style="margin-top:80px">
                     <el-button @click="onSave" type="primary" style="width:98px;" size="mediu">确认保存</el-button>
@@ -99,7 +97,7 @@
         <el-aside class="containAside" width="450px" style=" margin-left: 10px;">
             <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 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="当前牛只信信息">
@@ -115,18 +113,22 @@ import axios from 'axios'
 import { mapState } from 'vuex'
 export default {
     created() {
-        //配种列表
+        //任务列表
         this.getList(1)
-        //配种方式
-        this.getHaleInfo('wsCow', 'getUserDict', ['MateMode'], 'list').then((data) => {
-            this.mateModes = data
-            this.formData.mateMode = data[0]['详细方式']
-        })
-        //冻精列表
-        this.getHaleInfo('wsCow', 'getAllBullByFarmName', [
-            this.$store.state.farmName, true
+
+
+        //获取全部疾病
+        this.getHaleInfo('wsCow', 'getUserDict', [
+            'PostpartumCare'
         ], 'list').then((data) => {
-            this.bulls = data
+            this.allDiseaseInfo = data
+            if (data.length > 4) {
+                this.name = data[3]['名称']
+            } else if (data.length > 0) {
+                this.name = data[0]['名称']
+            }
+
+
         })
 
     },
@@ -135,10 +137,7 @@ export default {
             saving: false,
             formData: {
                 cowID: '',
-                isMate: '0',
-                mateMode: '',
-                bull: '',
-                person: '',
+                isUse: '1',
             },
             mateModes: [],
             methods: ['人工观察', '计步器揭发', '同期发情'],
@@ -146,8 +145,29 @@ export default {
             tableData: [],
             list: [],
             cowshed: '',
-            task: '产后空怀牛同期',
-            taskList: ['产后空怀牛同期', '产后尚未配种泌乳牛同期', '繁殖障碍处理', '青年牛未孕同期', '十四月龄青年牛同期', '15.2月龄青年牛同期', '血液孕检无胎牛同期']
+            task: 3,
+            name: '',
+            isCheck: false,
+            bodyTemp: '38.5-39度',
+            temperatureList: ['37度及以下', '37-37.5度', '37.5-38度', '38-38.5度', '38.5-39度', '39-39.5度', '39.5度-40度', '40-40.5度', '40.5-41度', '41度及以上'],
+            allDiseaseInfo: [],
+            taskList: [
+            //     {
+            //     name: '产前保健',
+            //     type: 2,
+            //     use: '请注射维生素E'
+            // }
+             {
+                name: '投喂博威钙',
+                type: 3,
+                use: '请投喂博威钙'
+            }
+            // , {
+            //     name: '产后保健',
+            //     type: 1,
+            //     use: '2-3胎次需要投服一粒博威钙,继续护理请点"是",结束护理请点"否"(注意:结束护理后,将不再提示护理操作)'
+            // }
+            ]
         }
     },
     computed: {
@@ -155,35 +175,11 @@ export default {
         pageTitle() {
             return this.$route.meta.title
         },
-        bullMsg() {
-            var jsonp = {}
-            if (this.formData.bull) {
-                this.bulls.forEach(item => {
-                    if (item['牛号'] == this.formData.bull) {
-                        jsonp = item
-                    }
-                })
-            }
-
-            return jsonp
 
-
-        },
-        taskCowList() {
-            var list = []
-            if(this.task){
-                this.list.forEach(item=>{
-                    if(item['操作方案']==this.task+'方案'){
-                        list.push(item)
-                    }
-                })
-            }
-            return list
-        },
         cowShedList() {
             var list = ['全部牛舍']
-            this.taskCowList.forEach(item=>{
-                if(list.indexOf(item['当前牛舍'])==-1){
+            this.list.forEach(item => {
+                if (list.indexOf(item['当前牛舍']) == -1) {
                     list.push(item['当前牛舍'])
                 }
             })
@@ -191,38 +187,44 @@ export default {
         },
         filitList() {
             var list = []
-            if(this.cowshed){
-                if(this.cowshed=='全部牛舍'){
-                    list=this.taskCowList
+            if (this.cowshed) {
+                if (this.cowshed == '全部牛舍') {
+                    list = this.list
                 }
-                else{
-                    this.taskCowList.forEach(item=>{
-                        if(item['当前牛舍']==this.cowshed){
+                else {
+                    this.list.forEach(item => {
+                        if (item['当前牛舍'] == this.cowshed) {
                             list.push(item)
                         }
                     })
                 }
             }
             return list
+        },
+        nowTaskJson() {
+            var jsonp = {}
+            if (this.task) {
+                this.taskList.forEach(item => {
+                    if (this.task == item.type) {
+                        jsonp = item
+                    }
+                })
+            }
+
+            return jsonp
         }
     },
     watch: {
-        'formData.reason'() {
-            setTimeout(() => {
-                this.formData.remark = this.remarks[0]
-            }, 100)
-        },
-        'formData.cowID'() {
-            if (this.formData.cowID.length != 8) {
-                return
-            }
-            this.getNowCow()
+        task() {
+            this.cowshed = ''
+            this.formData.cowID = ''
+            this.getList(1)
         }
     },
     methods: {
         getList(type) {
-            this.getHaleInfo('wsBreeding', 'getMultiMateTask', [
-                this.$store.state.farmName
+            this.getHaleInfo('wsVeterinary', 'getPCTask', [
+                this.$store.state.farmName, this.task
             ], 'list').then((data) => {
                 this.list = data
 
@@ -246,23 +248,43 @@ export default {
                 return
             }
 
-            if (!this.formData.bull) {
-                this.$message({
-                    message: '请选择冻精',
-                    type: 'warning'
-                });
-                return
+            var list = [{
+                name: '产前保健',
+                type: 'addInjectVitaInfo',
+                params: [
+                    this.formData['牛号'], this.formData['当前胎次'], this.userInfo.username
+                ]
+            }, {
+                name: '投喂博威钙',
+                type: 'addFeedCalInfo',
+                params: [
+                    this.formData['牛号'], Date.parse(new Date(this.formData['产犊日期'])), this.userInfo.username
+                ]
+            }, {
+                name: '产后保健',
+                type: 'addPCFinishInfo',
+            }]
+
+            if (this.task == 1) {
+                if (this.formData.isUse == '0') {
+                    this.badTreat()
+                    return
+                }
+                else {
+                    this.saveFeed()
+                    return
+                }
             }
 
+            var jsonp = {}
 
-            this.formData.operators = this.userInfo.username
+            list.forEach(item => {
+                if (item.name == this.nowTaskJson.name) {
+                    jsonp = item
+                }
+            })
 
-            this.getHaleInfo('wsBreeding', 'addHeatingInfo', [{
-                cowID: this.formData.cowID,
-                heatingDate: Date.parse(new Date()),
-                heatingCase: this.formData.sign,
-                exposeMode: this.formData.method
-            }], 'json').then((data) => {
+            this.getHaleInfo('wsVeterinary', jsonp.type, jsonp.params, 'json').then((data) => {
                 console.log(data)
                 if (data.rtnCode == -1) {
                     // this.$message({
@@ -286,45 +308,83 @@ export default {
                 }
             })
         },
-        getNowCow() {
-
-            this.getCowInfo(this.formData.cowID, 2).then((data) => {
-                // console.log(data)
-                var list = []
-                Object.keys(data).forEach(item => {
-                    list.push({
-                        key: item,
-                        value: data[item]
-                    })
-                })
-
-                // console.log(list)
-
-                this.tableData = list
-                if (data['繁殖状态'] == '复检有胎' || data['繁殖状态'] == '初检已孕') {
-                    this.$alert('当前牛号已经有胎,不允许录入配种信息,但目前允许选择冻精进行数据查看等。(可通过数据更正方式重置上次的妊检结果为未孕或无胎,再进行操作)', '提示', {
+        saveFeed() {
+            var name = this.name.split('-')
+            this.getHaleInfo('wsVeterinary', 'addPCInfo', [
+                {
+                    cowID: this.formData['牛号'],
+                    careDate: Date.parse(new Date()),
+                    calvingDate: Date.parse(new Date(this.formData['产犊日期'])),
+                    bodyTemp: this.temperatureList.indexOf(this.bodyTemp),
+                    diseaseDate: Date.parse(new Date(this.formData['提示日期'])),
+                    diseaseCategory: name[0],
+                    diseaseName: name[1],
+                    isToHospital: this.isCheck
+                }
+            ], 'json').then((data) => {
+                console.log(data)
+                if (data.rtnCode == -1) {
+                    this.$alert(data.rtnMessage, '提示', {
                         confirmButtonText: '确定',
                         callback: action => {
                             this.formData.cowID = ''
                         }
                     });
                 }
-            }).catch(() => {
-                this.formData.cowID = ''
+                else {
+                    this.$message({
+                        message: '录入成功',
+                        type: 'success'
+                    });
+                    this.formData.cowID = ''
+                    this.getList()
+                }
             })
+        },
+        badTreat() {
+            this.getHaleInfo('wsVeterinary', 'addPCFinishInfo', [
+                this.formData['牛号'], Date.parse(new Date(this.formData['产犊日期'])), '产犊', this.formData['产犊类型'], this.userInfo.username
+            ], 'json').then((data) => {
+                console.log(data)
+                if (data.rtnCode == -1) {
+                    this.$alert(data.rtnMessage, '提示', {
+                        confirmButtonText: '确定',
+                        callback: action => {
+                            this.formData.cowID = ''
+                        }
+                    });
+                }
+                else {
+                    this.$message({
+                        message: '录入成功',
+                        type: 'success'
+                    });
+                    this.formData.cowID = ''
+                    this.getList()
+                }
+            })
+        },
+        getNowCow(row) {
+            var list = []
+            Object.keys(row).forEach(item => {
+                list.push({
+                    key: item,
+                    value: row[item]
+                })
+            })
+
+            // console.log(list)
+
+            this.tableData = list
+
 
 
         },
         rowClick(row) {
-            this.formData = {
-                cowID: row['牛号'],
-                isMate: '0',
-                mateMode: this.mateModes[0]['详细方式'],
-                bull: '',
-                person: '',
-            }
-
-            this.getNowCow()
+            row.cowID = row['牛号']
+            row.isUse = '1'
+            this.formData = { ...row }
+            this.getNowCow(row)
         }
     }
 }

+ 210 - 0
src/main/vue/src/pages/HandleGrowth.vue

@@ -0,0 +1,210 @@
+<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-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-input v-model="formData.weight" style="width:200px;" placeholder="输入体重,单位kg"></el-input>
+        </el-form-item>
+
+        <el-form-item label="十字部高">
+          <el-input v-model="formData.tenHeight" style="width:200px;" placeholder="输入十字部高,单位cm"></el-input>
+        </el-form-item>
+
+        <el-form-item label="肩胛高">
+          <el-input v-model="formData.height" style="width:200px;" placeholder="输入肩胛高,单位cm"></el-input>
+        </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() {
+    //流产原因
+    this.getHaleInfo('wsBreeding', 'getUnnormalCalvReason', [], 'list').then((data) => {
+      this.reasons = data
+      this.formData.unnormalCalvReason = data[0]['名称']
+    })
+
+  },
+  data() {
+    return {
+      saving: false,
+      formData: {
+        "cowID": '',
+        "weight": '',
+        "tenHeight": '',
+        "height": ''
+      },
+      reasons: [],
+      tableData: []
+    }
+  },
+  computed: {
+    ...mapState(['userInfo', 'allHeight']),
+    pageTitle() {
+      return this.$route.meta.title
+    }
+  },
+  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.$message({
+          message: '请录入牛只牛号',
+          type: 'warning'
+        });
+        return
+      }
+
+      if (!this.formData.weight) {
+        this.$message({
+          message: '请录入测试体重',
+          type: 'warning'
+        });
+        return
+      }
+
+      if (!this.formData.tenHeight) {
+        this.$message({
+          message: '请录入十字部高',
+          type: 'warning'
+        });
+        return
+      }
+
+      if (!this.formData.height) {
+        this.$message({
+          message: '请录入肩胛高',
+          type: 'warning'
+        });
+        return
+      }
+
+      this.getHaleInfo('wsCalving', 'addGrowthMessure', [
+        this.formData.cowID, this.formData.weight, this.formData.tenHeight, this.formData.height, '', this.userInfo.username
+      ], 'json').then((data) => {
+        if (data.rtnCode == -1) {
+          this.$alert(data.rtnMessage, '提示', {
+            confirmButtonText: '确定',
+            callback: action => {
+              this.formData.cowID = ''
+            }
+          });
+        }
+        else {
+          this.$message({
+            message: '录入成功',
+            type: 'success'
+          });
+          this.formData = {
+            "cowID": '',
+            "weight": '',
+            "tenHeight": '',
+            "height": ''
+          }
+        }
+      })
+    },
+    getNowCow() {
+      if (this.formData.cowID.length != 8) {
+        return
+      }
+
+      this.getCowInfo(this.formData.cowID, 99).then((data) => {
+        // console.log(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;
+  }
+}
+</style>

+ 1 - 1
src/main/vue/src/pages/HandleHoofCare.vue

@@ -98,7 +98,7 @@
         <el-aside class="containAside" width="450px" style=" margin-left: 10px;">
             <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 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="当前牛只信信息">

+ 1 - 1
src/main/vue/src/pages/HandleInitial.vue

@@ -75,7 +75,7 @@
         <el-aside class="containAside" width="450px" style=" margin-left: 10px;">
             <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 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="当前牛只信信息">

+ 1 - 1
src/main/vue/src/pages/HandleLeaveAdd.vue

@@ -53,7 +53,7 @@
         <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 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="当前牛只信信息">

+ 2 - 2
src/main/vue/src/pages/HandleMatch.vue

@@ -6,7 +6,7 @@
 
                     <span>{{list.length}}头奶牛</span>
                 </div>
-                <el-table class="handleTable" border :data="list" style="width: 100%" :height='(allHeight-70)+"px"' size='small' @row-click='rowClick'>
+                <el-table class="handleTable" border :data="list" style="width: 100%" :height="(allHeight-70)+'px'" size='small' @row-click='rowClick'>
                     <el-table-column prop="牛号" label="牛号" fixed="left" align="center">
                     </el-table-column>
                     <el-table-column prop="当前牛舍" label="牛舍" align="center">
@@ -90,7 +90,7 @@
         <el-aside class="containAside" width="450px" style=" margin-left: 10px;">
             <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 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="当前牛只信信息">

+ 671 - 0
src/main/vue/src/pages/HandleOutcome.vue

@@ -0,0 +1,671 @@
+<template>
+  <el-container style="flex-grow:1">
+    <el-aside class="containAside" width="500px" style=" margin-right: 10px;">
+      <div class="asideInfo">
+        <div class="contentTitle">
+          {{pageTitle}}
+          <!-- <span>{{list.length}}头奶牛</span> -->
+        </div>
+        <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>
+          <!-- <el-button type="primary" plain @click="filitDayList=filitDay">筛选</el-button> -->
+        </div>
+        <div class="tableNum">{{filitList.length}}头奶牛</div>
+        <el-table class="handleTable" border :data="filitList" style="width: 100%" :height="(allHeight-184)+'px'" size="small" @row-click="rowClick">
+          <el-table-column prop="牛号" label="牛号" fixed="left" align="center"></el-table-column>
+          <el-table-column prop="发病日期" label="发病日期" width="160" align="center"></el-table-column>
+
+          <el-table-column prop="疾病类型" label="疾病类型" width="140" align="center"></el-table-column>
+          <el-table-column prop="疾病名称" label="疾病名称" width="160" align="center"></el-table-column>
+          <el-table-column prop="发病揭发人" label="揭发人" align="center"></el-table-column>
+          <el-table-column prop="过抗检测" label="过抗检测" align="center" width="100"></el-table-column>
+        </el-table>
+      </div>
+    </el-aside>
+    <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-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>
+        <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-form-item>
+        <!-- <el-form-item label="疾病类型">
+          <el-select v-model="formData.category" placeholder="请选择">
+            <el-option v-for="item in categoryList" :key="item" :label="item" :value="item"></el-option>
+          </el-select>
+        </el-form-item>-->
+        <el-form-item label="疾病名称">
+          <el-select v-model="formData.name" disabled placeholder="请选择">
+            <el-option v-for="item in nameList" :key="item" :label="item" :value="item"></el-option>
+          </el-select>
+        </el-form-item>
+
+        <el-form-item label="转归牛舍">
+          <el-select v-model="cowshed" placeholder="请选择">
+            <el-option v-for="item in cowshedList" :key="item['牛舍名称']" :label="item['牛舍名称']" :value="item['牛舍名称']"></el-option>
+          </el-select>
+        </el-form-item>
+
+        <el-form-item label="治愈日期">
+          <el-input v-model="formData.recureDate" style="width:217px"></el-input>
+        </el-form-item>
+
+        <el-form-item label="转归状况">
+          <el-select v-model="formData.recureStatus" placeholder="请选择">
+            <el-option v-for="item in ['治愈']" :key="item" :label="item" :value="item"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="乳区状态" v-if="formData.name=='乳房炎'">
+          <div class="selectVal">
+            <div class="item" @click="formData.RecureArea_FL=(formData.RecureArea_FL+1)%5" :style="{backgroundColor:RecureArea[formData.RecureArea_FL].color}">{{RecureArea[formData.RecureArea_FL].lable}}</div>
+            <div class="item" @click="formData.RecureArea_FR=(formData.RecureArea_FR+1)%5" :style="{backgroundColor:RecureArea[formData.RecureArea_FR].color}">{{RecureArea[formData.RecureArea_FR].lable}}</div>
+            <div class="item" @click="formData.RecureArea_BL=(formData.RecureArea_BL+1)%5" :style="{backgroundColor:RecureArea[formData.RecureArea_BL].color}">{{RecureArea[formData.RecureArea_BL].lable}}</div>
+            <div class="item" @click="formData.RecureArea_BR=(formData.RecureArea_BR+1)%5" :style="{backgroundColor:RecureArea[formData.RecureArea_BR].color}">{{RecureArea[formData.RecureArea_BR].lable}}</div>
+          </div>
+        </el-form-item>
+
+        <div style="margin-top:80px">
+          <el-button @click="onSave(true)" type="primary" style="width:98px;" size="mediu">转归处理</el-button>
+          <!-- <el-button @click="onSave(false)" type="warning" 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() {
+    //获取围产列表
+    this.getList(1)
+    //疾病类型
+    this.getHaleInfo('wsVeterinary', 'getDiseaseCategory', [], 'list', '疾病名称').then((data) => {
+      this.diseaseList = data
+      if (data.length > 0) {
+        setTimeout(() => {
+          this.formData.category = this.categoryList[0]
+          this.formData.name = this.nameList[0]
+        }, 500)
+      }
+    })
+
+    //药品列表
+    this.getHaleInfo('wsVeterinary', 'getAllMedicine', [], 'list', '药品编号').then((data) => {
+      this.allDrugList = this.getChild('#', data)
+    })
+
+    //牛舍列表
+    this.getHaleInfo('wsCow', 'getAllGroupByFarmName', [
+      this.$store.state.farmName
+    ], 'list', '牛舍编号').then((data) => {
+      var list = []
+      data.forEach(item => {
+        if (item["牛舍类别"] == "病牛舍") {
+          list.push(item)
+        }
+      })
+      this.cowshedList = list
+      if (list.length > 0) {
+        this.cowshed = list[0]['牛舍名称']
+      }
+
+    })
+  },
+  data() {
+    return {
+      cowshed: '',
+      cowshedList: [],
+      saving: false,
+      formData: {
+        "cowID": '',
+        "diseaseDate": '',
+        "category": '',
+        "name": '',
+        "RecureArea_FL": 0,
+        "RecureArea_FR": 0,
+        "RecureArea_BL": 0,
+        "RecureArea_BR": 0,
+        "recureDate": '',
+        "recureStatus": '治愈'
+      },
+      tableData: [],
+      diseaseList: [],
+      editCowInfo: {},
+      list: [],
+      findUser: '',
+      drugList: [],
+      dialogVisible: false,
+      prescriptionInfoList: [],
+      prescription: '',
+      useDrugList: [],
+      allDrugList: [],
+      innerVisible: false,
+      innerinnerVisible: false,
+      addForm: {
+        '药品名称': '',
+        '使用方法': '穿刺',
+        '剂量': 1,
+        '医嘱': ''
+      },
+      temperatureList: [{
+        lable: '37度及以下',
+        val: 0
+      }, {
+        lable: '37-37.5度',
+        val: 1
+      }, {
+        lable: '37.5-38度',
+        val: 2
+      }, {
+        lable: '38-38.5度',
+        val: 3
+      }, {
+        lable: '38.5-39度',
+        val: 4
+      }, {
+        lable: '39-39.5度',
+        val: 5
+      }, {
+        lable: '39.5度-40度',
+        val: 6
+      }, {
+        lable: '40-40.5度',
+        val: 7
+      }, {
+        lable: '40.5-41度',
+        val: 8
+      }, {
+        lable: '41度及以上',
+        val: 9
+      }],
+      RecureArea: [{
+        lable: '正常',
+        color: 'rgba(133,195,6,1)'
+      }, {
+        lable: '一级',
+        color: 'rgba(221,201,4,1)'
+      }, {
+        lable: '二级',
+        color: 'rgba(234,123,29,1)'
+      }, {
+        lable: '三级',
+        color: 'rgba(208,73,44,1)'
+      }, {
+        lable: '盲乳',
+        color: 'rgba(0,150,224,1)'
+      }],
+      stopDrug: false,
+      stopForm: {
+        stopDate: '当天',
+        sampleDate: 0
+      }
+    }
+  },
+  computed: {
+    ...mapState(['userInfo', 'allHeight']),
+    // describeList() {
+    //   var list = []
+    //   switch (this.formData.num) {
+    //     case "1":
+    //       list = ['单母胎', '单公胎']
+    //       break;
+    //     case "2":
+    //       list = ['双母胎', '双公胎', '龙凤胎']
+    //       break;
+    //     case "3":
+    //       list = ['三母胎', '三公胎', '两公一母', '两母一公']
+    //       break;
+    //   }
+    //   return list
+    // },
+    pageTitle() {
+      return this.$route.meta.title
+    },
+    filitList() {
+      var list = []
+      this.list.forEach(item => {
+        if (this.findUser == '全部') {
+          list.push(item)
+        }
+        else {
+          if (item['过抗检测'] == this.findUser) {
+            list.push(item)
+          }
+        }
+
+      })
+      return list
+    },
+    findUserList() {
+      var list = ['全部', '阴性', '阳性']
+      return list
+    },
+    nameList() {
+      var list = []
+      if (this.formData.category) {
+        this.diseaseList.forEach(item => {
+          if (list.indexOf(item['疾病名称']) == -1 && item['所属分类'] == this.formData.category) {
+            list.push(item['疾病名称'])
+          }
+        })
+      }
+      return list
+    },
+    categoryList() {
+      var list = []
+      this.diseaseList.forEach(item => {
+        if (list.indexOf(item['所属分类']) == -1) {
+          list.push(item['所属分类'])
+        }
+      })
+      return list
+    },
+    typeList() {
+      var list = []
+      if (this.formData.category && this.formData.name) {
+        this.diseaseList.forEach(item => {
+          if (item['疾病名称'] == this.formData.name && item['所属分类'] == this.formData.category) {
+            list = item['主要症状'].split(';')
+          }
+        })
+      }
+      return list
+    },
+    prescriptionList() {
+      var list = []
+      this.prescriptionInfoList.forEach(item => {
+        var flag = false
+        for (var i = 0; i < list.length; i++) {
+          if (list[i].name == item['处方名称']) {
+            flag = true
+            list[i].children.push(item)
+            break
+          }
+        }
+        if (!flag) {
+          var json = {
+            name: item['处方名称'],
+            children: [item]
+          }
+          list.push(json)
+        }
+      })
+      return list
+
+    }
+  },
+  watch: {
+    'formData.cowID'() {
+      if (this.formData.cowID.length != 8) {
+        return
+      }
+
+    },
+    'formData.num'() {
+      setTimeout(() => {
+        // this.formData.describe = this.describeList[0]
+      }, 100)
+    },
+    'formData.category'() {
+      setTimeout(() => {
+        this.formData.name = this.nameList[0]
+      }, 100)
+    },
+    dialogVisible() {
+      if (this.dialogVisible) {
+        this.getHaleInfo('wsCow', 'getDiseasePreInfo', [
+          this.formData.name
+        ], 'list', '疾病名称').then((data) => {
+          this.prescriptionInfoList = data
+        })
+      }
+    }
+  },
+  methods: {
+    deleteRow(row, index) {
+      this.useDrugList.splice(index, 1)
+    },
+    changeDrug() {
+      this.useDrugList = [...this.drugList]
+      this.dialogVisible = true
+    },
+    sureDrug() {
+      this.drugList = [...this.useDrugList]
+      this.dialogVisible = false
+    },
+    sureAdd() {
+      this.useDrugList.push(this.addForm)
+      this.innerinnerVisible = false
+      this.innerVisible = false
+    },
+    getChild(id, allList) {
+
+      var list = []
+      allList.forEach(item => {
+        if (id == "#") {
+
+          if (item['药品编号'].length == 2) {
+            var jsonp = item
+            jsonp['剂量'] = 1
+            jsonp['使用方法'] = '穿刺'
+            jsonp.children = this.getChild(item['药品编号'], allList)
+            list.push(jsonp)
+          }
+        }
+        else {
+          var name = item['药品编号'].slice(0, id.length)
+          if (item['药品编号'].length - id.length == 2 && name == id) {
+            var jsonp = item
+            jsonp['剂量'] = 1
+            jsonp['使用方法'] = '穿刺'
+            jsonp.children = this.getChild(item['药品编号'], allList)
+            list.push(jsonp)
+          }
+        }
+      })
+      return list
+    },
+    changeuseDrugList() {
+      console.log(this.prescription)
+      if (this.prescription) {
+        this.prescriptionList.forEach(item => {
+          if (item.name == this.prescription) {
+            this.useDrugList = this.useDrugList.concat(item.children)
+          }
+        })
+      }
+      console.log(this.useDrugList)
+    },
+    getList(type) {
+      this.getHaleInfo('wsVeterinary', 'getPreTask', [
+        this.$store.state.farmName
+      ], 'list', '', 'YYYY-MM-DD HH:mm:ss').then((data) => {
+        this.list = data
+        if (data.length > 0) {
+          setTimeout(() => {
+            this.findUser = this.findUserList[0]
+          }, 500)
+        }
+        if (this.list.length == 0 && type == 1) {
+          this.$alert('暂无需要处理的奶牛', '提示', {
+            confirmButtonText: '确定',
+            callback: action => {
+
+            }
+          });
+        }
+
+      })
+    },
+    onSave(isSick) {
+      if (!this.formData.cowID) {
+        this.$message({
+          message: '请录入牛只牛号',
+          type: 'warning'
+        });
+        return
+      }
+      var formData = { ...this.formData }
+      formData.diseaseDate = Date.parse(new Date(formData.diseaseDate)) + 28800000
+      formData.recureDate = Date.parse(new Date(formData.recureDate))
+      this.getHaleInfo('wsVeterinary', 'diseaseRecure', [
+        formData
+      ], 'json').then((data) => {
+        console.log(data)
+        if (data.rtnCode == -1) {
+          this.$alert(data.rtnMessage, '提示', {
+            confirmButtonText: '确定',
+            callback: action => {
+              this.formData.cowID = ''
+            }
+          });
+        }
+        else {
+          this.changeCowshed()
+        }
+      })
+
+    },
+    newGuid() {
+      var guid = "";
+      for (var i = 1; i <= 32; i++) {
+        var n = Math.floor(Math.random() * 16.0).toString(16);
+        guid += n;
+        if ((i == 8) || (i == 12) || (i == 16) || (i == 20))
+          guid += "-";
+      }
+      return guid;
+    },
+    changeCowshed() {
+
+      this.getHaleInfo('wsCow', 'changeGroup', [
+        this.formData.cowID, this.cowshed, '治愈出院', this.userInfo.username
+      ], 'json').then((data) => {
+        console.log(data)
+        if (data.rtnCode == -1) {
+
+          this.$alert(data.rtnMessage, '提示', {
+            confirmButtonText: '确定',
+            callback: action => {
+              this.formData.cowID = ''
+            }
+          });
+        }
+        else {
+          this.$message({
+            message: '提交成功',
+            type: 'success'
+          });
+          this.getList()
+          this.formData.cowID = ''
+        }
+      })
+
+    },
+    sureStop() {
+      var time = new Date(this.editCowInfo['发病日期']).getTime() + 28800000
+      var targetDate = new Date(time - 16 * 60 * 60 * 1000);
+      this.getHaleInfo('wsVeterinary', 'diseaseDrugEnd', [
+        this.editCowInfo['牛号'], Date.parse(targetDate), this.editCowInfo['疾病类型'], this.editCowInfo['疾病名称'], Date.parse(new Date()), (Date.parse(new Date()) + this.stopForm.sampleDate * 3600000)
+      ], 'json').then((data) => {
+        console.log(data)
+        if (data.rtnCode == -1) {
+
+          this.$alert(data.rtnMessage, '提示', {
+            confirmButtonText: '确定',
+            callback: action => {
+              this.formData.cowID = ''
+            }
+          });
+        }
+        else {
+          this.$message({
+            message: '保存成功',
+            type: 'success'
+          });
+          this.getList()
+          this.drugList = []
+          this.formData.cowID = ''
+          this.stopDrug = false
+        }
+      })
+    },
+    getNowCow() {
+
+      this.getHaleInfo('wsCow', 'getCowExtendInfoByCowID', [
+        this.formData.cowID, 3
+      ], 'json').then((data) => {
+        this.editCowInfo = data
+        // console.log(data)
+        var list = []
+        Object.keys(data).forEach(item => {
+          list.push({
+            key: item,
+            value: data[item]
+          })
+        })
+
+        // console.log(list)
+
+        this.tableData = list
+
+        if (data['繁殖状态'] != '复检有胎' && data['繁殖状态'] != '初检已孕') {
+          this.$alert('当前母牛无胎,不允许进行登记', '提示', {
+            confirmButtonText: '确定',
+            callback: action => {
+              this.formData.cowID = ''
+            }
+          });
+        }
+        else if (data['牛只类别'] == '成母牛' && parseInt(data['在胎天数']) < 150) {
+          this.$alert('当前奶牛是成母牛,且在胎天数小于150天,不允许登记产犊(青年牛210天内允许报早产)!', '提示', {
+            confirmButtonText: '确定',
+            callback: action => {
+              this.formData.cowID = ''
+            }
+          });
+        }
+
+        if (parseInt(data['在胎天数']) > 262) {
+          this.formData.type == '正产'
+        }
+        else {
+          this.formData.type == '早产'
+        }
+      }).catch(() => {
+        this.formData.cowID = ''
+      })
+    },
+    rowClick(row) {
+      this.editCowInfo = row
+      this.formData = {
+        "cowID": row['牛号'],
+        "diseaseDate": row['发病日期'],
+        "category": row['疾病类型'],
+        "name": row['疾病名称'],
+        "RecureArea_FL": parseInt(row['发病时左前区'] || 0),
+        "RecureArea_FR": parseInt(row['发病时右前区'] || 0),
+        "RecureArea_BL": parseInt(row['发病时左后区'] || 0),
+        "RecureArea_BR": parseInt(row['发病时右后区'] || 0),
+        "recureDate": this.getTime(new Date(), 'YYYY-MM-DD HH:mm:ss'),
+        "recureStatus": '治愈',
+        "recurePerson": this.userInfo.username
+      }
+      var list = []
+      Object.keys(row).forEach(item => {
+        list.push({
+          key: item,
+          value: row[item]
+        })
+      })
+      this.tableData = list
+
+
+    },
+    handleNodeClick(data) {
+      // console.log(data)
+      if (data.children.length == 0) {
+        data['使用方法'] = '穿刺'
+        data['剂量'] = 1
+        data['医嘱'] = ''
+        this.addForm = data
+        this.innerinnerVisible = true
+      }
+    }
+  }
+}
+</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;
+  }
+}
+.tableNum {
+  font-size: 13px;
+  font-weight: bold;
+  color: rgba(102, 102, 102, 1);
+  line-height: 18px;
+  padding-bottom: 15px;
+}
+.selectContent {
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+  padding: 20px 0;
+}
+
+.selectVal {
+  width: 140px;
+  display: flex;
+  align-items: center;
+  justify-content: space-around;
+  flex-wrap: wrap;
+
+  .item {
+    width: 60px;
+    border-radius: 4px;
+    height: 60px;
+    text-align: center;
+    font-size: 13px;
+    font-weight: bold;
+    color: rgba(255, 255, 255, 1);
+    line-height: 60px;
+    margin-bottom: 10px;
+    cursor: pointer;
+  }
+}
+</style>

+ 310 - 313
src/main/vue/src/pages/HandlePerinatal.vue

@@ -1,368 +1,365 @@
 <template>
-    <el-container style="flex-grow:1">
-        <el-aside class="containAside" width="500px" style=" margin-right: 10px;">
-            <div class="asideInfo">
-                <div class="contentTitle">{{pageTitle}}
+  <el-container style="flex-grow:1">
+    <el-aside class="containAside" width="500px" style=" margin-right: 10px;">
+      <div class="asideInfo">
+        <div class="contentTitle">
+          {{pageTitle}}
+          <!-- <span>{{list.length}}头奶牛</span> -->
+        </div>
+        <div class="selectContent">
+          <el-select v-model="cowShed" placeholder="请选择牛舍" style="width:230px">
+            <el-option v-for="item in cowShedList" :key="item" :label="item" :value="item"></el-option>
+          </el-select>
+          <!-- <el-button type="primary" plain @click="filitDayList=filitDay">筛选</el-button> -->
+        </div>
+        <div class="tableNum">{{filitList.length}}头奶牛</div>
+        <el-table class="handleTable" border :data="filitList" style="width: 100%" :height="(allHeight-184)+'px'" size="small" @row-click="rowClick">
+          <el-table-column prop="牛号" label="牛号" fixed="left" align="center"></el-table-column>
+          <el-table-column prop="当前牛舍" label="牛舍" align="center"></el-table-column>
 
-                    <!-- <span>{{list.length}}头奶牛</span> -->
-                </div>
-                <div class="selectContent">
+          <el-table-column prop="临产天数" label="临产天数" align="center"></el-table-column>
+          <el-table-column prop="怀孕天数" label="怀孕天数" align="center"></el-table-column>
+          <el-table-column prop="配种日期" label="配种日期" width="140" align="center"></el-table-column>
+          <el-table-column prop="预产日期" label="预产日期" width="140" align="center"></el-table-column>
+          <el-table-column prop="当前胎次" label="胎次" align="center" width="70"></el-table-column>
+        </el-table>
+      </div>
+    </el-aside>
+    <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-input v-model="formData.cowID" 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>
+        <div class="sub" v-if="tableData.length>0">操作牛号:{{editCowInfo['牛号']}}</div>
 
-                    <el-select v-model="cowShed" placeholder="请选择牛舍" style="width:230px">
-                        <el-option v-for="item in cowShedList" :key="item" :label="item" :value="item">
-                        </el-option>
-                    </el-select>
-                    <!-- <el-button type="primary" plain @click="filitDayList=filitDay">筛选</el-button> -->
+        <el-form-item label="围产牛舍">
+          <el-select v-model="chooseCowshed" placeholder="请选择">
+            <el-option v-for="item in chooseCowshedList" :key="item['牛舍编号']" :label="item['牛舍编号']" :value="item['牛舍编号']"></el-option>
+          </el-select>
+        </el-form-item>
 
-                </div>
-                <div class="tableNum">
-                    {{filitList.length}}头奶牛
-                </div>
-                <el-table class="handleTable" border :data="filitList" style="width: 100%" :height='(allHeight-184)+"px"' size='small' @row-click='rowClick'>
-                    <el-table-column prop="牛号" label="牛号" fixed="left" align="center">
-                    </el-table-column>
-                    <el-table-column prop="当前牛舍" label="牛舍" align="center">
-                    </el-table-column>
-
-                    <el-table-column prop="临产天数" label="临产天数" align="center">
-                    </el-table-column>
-                    <el-table-column prop="怀孕天数" label="怀孕天数" align="center">
-                    </el-table-column>
-                    <el-table-column prop="配种日期" label="配种日期" width="140" align="center">
-                    </el-table-column>
-                    <el-table-column prop="预产日期" label="预产日期" width="140" align="center">
-                    </el-table-column>
-                    <el-table-column prop="当前胎次" label="胎次" align="center" width="70">
-                    </el-table-column>
-
-                </el-table>
-            </div>
-        </el-aside>
-        <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-input v-model="formData.cowID" 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>
-                <div class="sub" v-if="tableData.length>0">
-                    操作牛号:{{editCowInfo['牛号']}}
-                </div>
-                <el-form-item label="产犊类型">
-                    <el-input v-model="formData.type" disabled style="width:217px"></el-input>
-                </el-form-item>
-                <el-form-item label="产犊数">
-                    <el-select v-model="formData.num" placeholder="请选择">
-                        <el-option v-for="item in ['1','2','3']" :key="item" :label="item" :value="item">
-                        </el-option>
-                    </el-select>
-                </el-form-item>
-                <el-form-item label="是否见胎">
-                    <el-switch v-model="formData.isSeeTires" active-text="是" inactive-text="否">
-                    </el-switch>
-
-                </el-form-item>
-                <el-form-item label="发情症状">
-                    <el-select v-model="formData.difficulty" placeholder="请选择">
-                        <el-option v-for="item in difficultyList" :key="item['名称']" :label="item['详细方式']" :value="item['名称']">
-                        </el-option>
-                    </el-select>
-                </el-form-item>
-                <el-form-item label="产犊描述">
-                    <el-select v-model="formData.describe" placeholder="请选择">
-                        <el-option v-for="item in describeList" :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>
+        <el-card v-if="chooseList.length>0" style="margin-bottom:20px">
+          <el-row type="flex" style="flex-wrap:wrap">
+            <div class="item" v-for="(item,index) in chooseList">
+              <span>{{item}}</span>
+              <i class="el-icon-error" @click="delCow(index)"></i>
             </div>
-        </el-aside>
-    </el-container>
+          </el-row>
+        </el-card>
 
+        <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() {
-        //获取围产列表
-        this.getList(1)
-        //产犊难易度
-        this.getHaleInfo('wsCalving', 'getCalvEase', [], 'list').then((data) => {
-            this.difficultyList = data
-            if (data.length > 0) {
-                this.formData.difficulty = data[0]['名称']
-                this.formData.describe = this.describeList[0]
-            }
-        })
+  created() {
+    //获取围产列表
+    this.getList(1)
+    //产犊难易度
+    this.getHaleInfo('wsCalving', 'getCalvEase', [], 'list').then((data) => {
+      this.difficultyList = data
+      if (data.length > 0) {
+        this.formData.difficulty = data[0]['名称']
+        this.formData.describe = this.describeList[0]
+      }
+    })
+
+    this.getHaleInfo('wsCow', 'getAllGroupByFarmName', [
+      this.$store.state.farmName
+    ], 'list', '牛舍编号').then((data) => {
+      var list = []
+      data.forEach(item => {
+        if (item["牛舍类别"] == "围产牛舍") {
+          list.push(item)
+        }
+      })
+      this.chooseCowshedList = list
+      if (list.length > 0) {
+        this.chooseCowshed = list[0]['牛舍名称']
+      }
 
+    })
 
 
 
+
+  },
+  data() {
+    return {
+      saving: false,
+      formData: {
+        cowID: '',
+        difficulty: '',
+        method: '人工观察',
+        num: '1',
+        describe: '',
+        type: '正产',
+        isSeeTires: true,
+      },
+      methods: ['人工观察', '计步器揭发', '同期发情'],
+      tableData: [],
+      difficultyList: [],
+      editCowInfo: {},
+      list: [],
+      cowShed: '',
+      chooseCowshedList: [],
+      chooseCowshed: '',
+      chooseList: []
+    }
+  },
+  computed: {
+    ...mapState(['userInfo', 'allHeight']),
+    describeList() {
+      var list = []
+      switch (this.formData.num) {
+        case "1":
+          list = ['单母胎', '单公胎']
+          break;
+        case "2":
+          list = ['双母胎', '双公胎', '龙凤胎']
+          break;
+        case "3":
+          list = ['三母胎', '三公胎', '两公一母', '两母一公']
+          break;
+      }
+      return list
+    },
+    pageTitle() {
+      return this.$route.meta.title
     },
-    data() {
-        return {
-            saving: false,
-            formData: {
-                cowID: '',
-                difficulty: '',
-                method: '人工观察',
-                num: '1',
-                describe: '',
-                type: '正产',
-                isSeeTires: true,
-            },
-            methods: ['人工观察', '计步器揭发', '同期发情'],
-            tableData: [],
-            difficultyList: [],
-            editCowInfo: {},
-            list: [],
-            cowShed: ''
+    filitList() {
+      var list = []
+      this.list.forEach(item => {
+        if (item['当前牛舍'] == this.cowShed) {
+          list.push(item)
         }
+      })
+      return list
     },
-    computed: {
-        ...mapState(['userInfo', 'allHeight']),
-        describeList() {
-            var list = []
-            switch (this.formData.num) {
-                case "1":
-                    list = ['单母胎', '单公胎']
-                    break;
-                case "2":
-                    list = ['双母胎', '双公胎', '龙凤胎']
-                    break;
-                case "3":
-                    list = ['三母胎', '三公胎', '两公一母', '两母一公']
-                    break;
-            }
-            return list
-        },
-        pageTitle() {
-            return this.$route.meta.title
-        },
-        filitList() {
-            var list = []
-            this.list.forEach(item => {
-                if (item['当前牛舍'] == this.cowShed) {
-                    list.push(item)
-                }
-            })
-            return list
-        },
-        cowShedList() {
-            var list = []
-            this.list.forEach(item => {
-                if (list.indexOf(item['当前牛舍']) == -1) {
-                    list.push(item['当前牛舍'])
-                }
-            })
-            return list
+    cowShedList() {
+      var list = []
+      this.list.forEach(item => {
+        if (list.indexOf(item['当前牛舍']) == -1) {
+          list.push(item['当前牛舍'])
         }
+      })
+      return list
+    }
+  },
+  watch: {
+    'formData.cowID'() {
+      if (this.formData.cowID.length != 8) {
+        return
+      }
+      this.getNowCow()
     },
-    watch: {
-        'formData.cowID'() {
-            if (this.formData.cowID.length != 8) {
-                return
+    'formData.num'() {
+      setTimeout(() => {
+        this.formData.describe = this.describeList[0]
+      }, 100)
+    }
+  },
+  methods: {
+    getList(type) {
+      this.getHaleInfo('wsCalving', 'getPerinatalTask', [
+        this.$store.state.farmName
+      ], 'list').then((data) => {
+        this.list = data
+        if (data.length > 0) {
+          setTimeout(() => {
+            this.cowShed = this.cowShedList[0]
+          }, 500)
+        }
+        if (this.list.length == 0 && type == 1) {
+          this.$alert('暂无需要处理的奶牛', '提示', {
+            confirmButtonText: '确定',
+            callback: action => {
+
             }
-            this.getNowCow()
-        },
-        'formData.num'() {
-            setTimeout(() => {
-                this.formData.describe = this.describeList[0]
-            }, 100)
+          });
         }
+
+      })
     },
-    methods: {
-        getList(type) {
-            this.getHaleInfo('wsCalving', 'getPerinatalTask', [
-                this.$store.state.farmName
-            ], 'list').then((data) => {
-                this.list = data
-                if (data.length > 0) {
-                    setTimeout(() => {
-                        this.cowShed = this.cowShedList[0]
-                    }, 500)
-                }
-                if (this.list.length == 0 && type == 1) {
-                    this.$alert('暂无需要处理的奶牛', '提示', {
-                        confirmButtonText: '确定',
-                        callback: action => {
+    onSave() {
+      if (this.chooseList.length == 0) {
+        this.$message({
+          message: '请录入转舍牛只牛号',
+          type: 'warning'
+        });
+        return
+      }
 
-                        }
-                    });
-                }
 
-            })
-        },
-        onSave() {
-            if (!this.formData.cowID) {
-                this.$message({
-                    message: '请录入牛只牛号',
-                    type: 'warning'
-                });
-                return
+      this.getHaleInfo('wsCow', 'bulkChangeGroup', [
+        this.chooseList, this.chooseCowshed, '围产调整', this.userInfo.username
+      ], 'json').then((data) => {
+        console.log(data)
+        if (data.rtnCode == -1) {
+          this.$alert(data.rtnMessage, '提示', {
+            confirmButtonText: '确定',
+            callback: action => {
+              this.formData.cowID = ''
+            }
+          });
+        }
+        else {
+          this.$alert('成功将' + data.rtnCode + '头牛进行转舍操作<br/>未成功转舍的牛只存在以下可能:<br/>1、牛号未在系统登录;<br/>2、牛只已经离场;<br/>3、当前牛舍与目标牛舍一致;<br/>4、牛只不在当前牧场', '提示', {
+            confirmButtonText: '确定',
+            dangerouslyUseHTMLString: true,
+            callback: action => {
+              this.chooseList = []
+              this.formData.cowID = ''
             }
+          });
 
-            this.getHaleInfo('wsCalving', 'addCalvingInfo', [
-                this.formData.cowID, this.formData.type, true, '', '', this.formData.num, this.formData.isSeeTires, '', '', '', '', this.formData.describe, this.userInfo.username, this.userInfo.username, this.formData.difficulty, ''
-            ], '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 {
+        }
+      })
+    },
+    getNowCow() {
+
+      if (this.formData.cowID.length != 8) {
+        return
+      }
+      var flag = false
 
+      this.list.forEach(item => {
+        if (item['牛号'] == this.formData.cowID) {
+          if (this.chooseList.indexOf(item['牛号']) == -1) {
+            this.chooseList.push(item['牛号'])
+          }
 
-                    this.$confirm('产犊信息录入成功,是否立即进入犊牛信息录入', '提示', {
-                        confirmButtonText: '是',
-                        cancelButtonText: '否',
-                        type: 'success'
-                    }).then(() => {
-                        this.$router.push({
-                            name: "handleCalf",
-                            query: {
-                                cowID: this.editCowInfo['牛号']
-                            }
-                        })
-                    }).catch(() => {
-                        this.formData.cowID = ''
-                        this.getList()
-                    });
-                }
+
+          var list = []
+          console.log(item)
+          Object.keys(item).forEach(todo => {
+            list.push({
+              key: todo,
+              value: item[todo]
             })
-        },
-        getNowCow() {
+          })
 
-            this.getHaleInfo('wsCow', 'getCowExtendInfoByCowID', [
-                this.formData.cowID, 3
-            ], 'json').then((data) => {
-                this.editCowInfo = data
-                // console.log(data)
-                var list = []
-                Object.keys(data).forEach(item => {
-                    list.push({
-                        key: item,
-                        value: data[item]
-                    })
-                })
+          // console.log(list)
 
-                // console.log(list)
+          this.tableData = list
+          flag = true
+        }
+      })
 
-                this.tableData = list
+      if (!flag) {
+        this.$message({
+          message: '牛号不在围产列表中',
+          type: 'warning'
+        });
+        this.formData.cowID = ''
+      }
 
-                if (data['繁殖状态'] != '复检有胎' && data['繁殖状态'] != '初检已孕') {
-                    this.$alert('当前母牛无胎,不允许进行登记', '提示', {
-                        confirmButtonText: '确定',
-                        callback: action => {
-                            this.formData.cowID = ''
-                        }
-                    });
-                }
-                else if (data['牛只类别'] == '成母牛' && parseInt(data['在胎天数']) < 150) {
-                    this.$alert('当前奶牛是成母牛,且在胎天数小于150天,不允许登记产犊(青年牛210天内允许报早产)!', '提示', {
-                        confirmButtonText: '确定',
-                        callback: action => {
-                            this.formData.cowID = ''
-                        }
-                    });
-                }
 
-                if (parseInt(data['在胎天数']) > 262) {
-                    this.formData.type == '正产'
-                }
-                else {
-                    this.formData.type == '早产'
-                }
-            }).catch(() => {
-                this.formData.cowID = ''
-            })
-        },
-        rowClick(row) {
-            this.formData.cowID=row['牛号']
-            this.getNowCow()
-        }
+    },
+    rowClick(row) {
+      this.formData.cowID = row['牛号']
+      this.getNowCow()
+    },
+    delCow(index) {
+      this.chooseList.splice(index, 1)
     }
+  }
 }
 </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;
+  }
 }
 .tableNum {
-    font-size: 13px;
-    font-weight: bold;
-    color: rgba(102, 102, 102, 1);
-    line-height: 18px;
-    padding-bottom: 15px;
+  font-size: 13px;
+  font-weight: bold;
+  color: rgba(102, 102, 102, 1);
+  line-height: 18px;
+  padding-bottom: 15px;
 }
 .selectContent {
-    display: flex;
-    align-items: center;
-    justify-content: space-between;
-    padding: 20px 0;
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+  padding: 20px 0;
+}
+
+.item {
+  width: 120px;
+  height: 30px;
+  background: rgba(236, 245, 255, 1);
+  border-radius: 2px;
+  border: 1px solid rgba(0, 150, 224, 1);
+  font-size: 14px;
+  font-weight: bold;
+  color: rgba(0, 150, 224, 1);
+  line-height: 30px;
+  letter-spacing: 1px;
+  padding: 0 10px;
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+  margin-right: 10px;
+  margin-bottom: 10px;
+  i {
+    cursor: pointer;
+  }
 }
 </style>

+ 1 - 1
src/main/vue/src/pages/HandlePerinatalCare.vue

@@ -97,7 +97,7 @@
         <el-aside class="containAside" width="450px" style=" margin-left: 10px;">
             <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 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="当前牛只信信息">

+ 1 - 1
src/main/vue/src/pages/HandleRecheck.vue

@@ -75,7 +75,7 @@
         <el-aside class="containAside" width="450px" style=" margin-left: 10px;">
             <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 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="当前牛只信信息">

+ 336 - 0
src/main/vue/src/pages/HandleSampling.vue

@@ -0,0 +1,336 @@
+<template>
+  <el-container style="flex-grow:1">
+    <el-aside class="containAside" width="500px" style=" margin-right: 10px;">
+      <div class="asideInfo">
+        <div class="contentTitle">
+          {{pageTitle}}
+          <span>{{list.length}}头奶牛</span>
+        </div>
+        <el-table class="handleTable" border :data="list" style="width: 100%" :height="(allHeight-70)+'px'" size="small" @row-click="rowClick">
+          <el-table-column prop="牛号" label="牛号" fixed="left" align="center"></el-table-column>
+          <el-table-column prop="发病日期" label="发病日期" align="center" width="140"></el-table-column>
+          <el-table-column prop="疾病类型" label="疾病类型" align="center" width="100"></el-table-column>
+          <el-table-column prop="疾病名称" label="疾病名称" align="center"></el-table-column>
+          <el-table-column prop="发病揭发人" label="发病揭发人" align="center" width="100"></el-table-column>
+          <el-table-column prop="过抗检测" label="过抗检测" align="center" width="100"></el-table-column>
+        </el-table>
+      </div>
+    </el-aside>
+    <el-main class="containMain">
+      <div class="contentTitle">过抗采样信息登记</div>
+      <el-form ref="form" :model="formData" style="margin-top:20px;" label-width="120px">
+        <el-form-item label label-width="0">
+          <el-autocomplete v-model="formData.cowID" style="width:300px" prefix-icon="el-icon-search" :fetch-suggestions="querySearchAsync" placeholder="请输入内容" @select="handleSelect"></el-autocomplete>
+          <!-- <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>
+        <div style="margin:20px">
+          <div style="margin-bottom:10px">请挤奶采样</div>
+
+          <el-radio-group v-model="formData.isUse">
+            <el-radio label="1">确认</el-radio>
+            <!-- <el-radio label="0">取消</el-radio> -->
+          </el-radio-group>
+        </div>
+
+        <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" style="margin-left: 10px;">
+      <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() {
+    //任务列表
+    this.getList(1)
+
+  },
+  data() {
+    return {
+      formData: {
+        cowID: '',
+        isUse: '1',
+      },
+      tableData: [],
+      list: [],
+      timeout: '',
+      editCow: {}
+    }
+  },
+  computed: {
+    ...mapState(['userInfo', 'allHeight']),
+    pageTitle() {
+      return this.$route.meta.title
+    },
+    restaurants() {
+      var list = []
+      this.list.forEach(item => {
+        list.push({
+          value: item['牛号']
+        })
+      })
+      return list
+    }
+  },
+  watch: {
+  },
+  methods: {
+    querySearchAsync(queryString, cb) {
+      var restaurants = this.restaurants;
+      var results = queryString ? restaurants.filter(this.createStateFilter(queryString)) : restaurants;
+      clearTimeout(this.timeout);
+      this.timeout = setTimeout(() => {
+        cb(results);
+      }, 3000 * Math.random());
+    },
+    createStateFilter(queryString) {
+      return (state) => {
+        return (state.value.toLowerCase().indexOf(queryString.toLowerCase()) === 0);
+      };
+    },
+    handleSelect(item) {
+      this.list.forEach(todo => {
+        if (todo['牛号'] == item.value) {
+          this.getNowCow(todo)
+        }
+      })
+    },
+    getList(type) {
+      this.getHaleInfo('wsVeterinary', 'getSampData', [
+        this.$store.state.farmName
+      ], 'list', '', 'YYYY-MM-DD HH:mm:ss').then((data) => {
+        this.list = data
+
+        if (this.list.length == 0 && type == 1) {
+          this.$alert('暂无需要处理的奶牛', '提示', {
+            confirmButtonText: '确定',
+            callback: action => {
+
+            }
+          });
+        }
+
+      })
+    },
+    onSave() {
+      if (!this.formData.cowID) {
+        this.$message({
+          message: '请录入牛只牛号',
+          type: 'warning'
+        });
+        return
+      }
+
+
+      if (this.formData.cowID != this.tableData[0].value) {
+        this.$message({
+          message: '该牛只号不需要采样',
+          type: 'warning'
+        });
+        return
+      }
+
+      console.log(Date.parse(new Date(this.editCow['发病日期'])))
+
+      this.getHaleInfo('wsVeterinary', 'diseaseSamp', [
+        this.formData.cowID, Date.parse(new Date(this.editCow['发病日期'])), this.editCow['疾病类型'], this.editCow['疾病名称']
+      ], 'json').then((data) => {
+        console.log(data)
+        if (data.rtnCode == -1) {
+          this.$alert(data.rtnMessage, '提示', {
+            confirmButtonText: '确定',
+            callback: action => {
+              this.formData.cowID = ''
+            }
+          });
+        }
+        else {
+          this.$message({
+            message: '录入成功',
+            type: 'success'
+          });
+          this.formData.cowID = ''
+          this.getList()
+        }
+      })
+    },
+    saveFeed() {
+      var name = this.name.split('-')
+      this.getHaleInfo('wsVeterinary', 'addPCInfo', [
+        {
+          cowID: this.formData['牛号'],
+          careDate: Date.parse(new Date()),
+          calvingDate: Date.parse(new Date(this.formData['产犊日期'])),
+          bodyTemp: this.temperatureList.indexOf(this.bodyTemp),
+          diseaseDate: Date.parse(new Date(this.formData['提示日期'])),
+          diseaseCategory: name[0],
+          diseaseName: name[1],
+          isToHospital: this.isCheck
+        }
+      ], 'json').then((data) => {
+        console.log(data)
+        if (data.rtnCode == -1) {
+          this.$alert(data.rtnMessage, '提示', {
+            confirmButtonText: '确定',
+            callback: action => {
+              this.formData.cowID = ''
+            }
+          });
+        }
+        else {
+          this.$message({
+            message: '录入成功',
+            type: 'success'
+          });
+          this.formData.cowID = ''
+          this.getList()
+        }
+      })
+    },
+    badTreat() {
+      this.getHaleInfo('wsVeterinary', 'addPCFinishInfo', [
+        this.formData['牛号'], Date.parse(new Date(this.formData['产犊日期'])), '产犊', this.formData['产犊类型'], this.userInfo.username
+      ], 'json').then((data) => {
+        console.log(data)
+        if (data.rtnCode == -1) {
+          this.$alert(data.rtnMessage, '提示', {
+            confirmButtonText: '确定',
+            callback: action => {
+              this.formData.cowID = ''
+            }
+          });
+        }
+        else {
+          this.$message({
+            message: '录入成功',
+            type: 'success'
+          });
+          this.formData.cowID = ''
+          this.getList()
+        }
+      })
+    },
+    getNowCow(row) {
+      var data = this.JsonSort(['牛号', '当前牛舍', '疾病类型', '疾病名称'], row)
+      var list = []
+      Object.keys(data).forEach(item => {
+        list.push({
+          key: item,
+          value: data[item]
+        })
+      })
+
+      // console.log(list)
+      this.editCow = data
+
+      this.tableData = list
+
+
+
+    },
+    rowClick(row) {
+      row.cowID = row['牛号']
+      row.isUse = '1'
+      this.formData = { ...row }
+      this.getNowCow(row)
+    }
+  }
+}
+</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;
+  span {
+    font-size: 13px;
+    color: rgba(102, 102, 102, 1);
+    line-height: 18px;
+    margin-left: 10px;
+  }
+}
+.selectContent {
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+  padding: 20px 0;
+}
+
+.tableNum {
+  font-size: 13px;
+  font-weight: bold;
+  color: rgba(102, 102, 102, 1);
+  line-height: 18px;
+  padding-bottom: 15px;
+}
+.containAside {
+  padding: 0;
+
+  display: flex;
+  flex-direction: column;
+  .asideInfo {
+    flex-grow: 1;
+    background: rgba(255, 255, 255, 1);
+    border-radius: 4px;
+    padding: 15px;
+  }
+}
+
+.item {
+  .item-title {
+    font-size: 14px;
+    font-weight: bold;
+
+    color: rgba(0, 0, 0, 1);
+    line-height: 20px;
+    letter-spacing: 1px;
+  }
+
+  .text {
+    font-size: 13px;
+    color: rgba(0, 0, 0, 1);
+    line-height: 18px;
+    letter-spacing: 1px;
+    word-wrap: break-word;
+    padding: 10px 0 15px;
+  }
+}
+</style>

+ 1 - 1
src/main/vue/src/pages/HandleSimultaneousMatch.vue

@@ -99,7 +99,7 @@
         <el-aside class="containAside" width="450px" style=" margin-left: 10px;">
             <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 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="当前牛只信信息">

+ 1 - 1
src/main/vue/src/pages/HandleTransferHouse.vue

@@ -60,7 +60,7 @@
         <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 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="当前牛只信信息">

+ 50 - 0
src/main/vue/src/router/index.js

@@ -505,6 +505,46 @@ const router = new Router({
                         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: '盲乳登记'
+                    }
                 }
             ]
         },
@@ -540,6 +580,16 @@ router.beforeEach((to, from, next) => {
             if (res.status === 200) {
                 if (res.data.success && res.data.data) {
                     store.commit('updateUserInfo', res.data.data);
+                    axios.get('/departInfo/userDeparts?userId=' + res.data.data.id).then(res => {
+                        if (res.status === 200) {
+                            if (res.data.success && res.data.data) {
+                                if (res.data.data.length > 0) {
+                                    store.commit('uploadfarmInfo', res.data.data[res.data.data.length - 1]);
+                                }
+
+                            }
+                        }
+                    })
                     next();
                     return;
                 }

+ 6 - 2
src/main/vue/src/vuex/index.js

@@ -9,8 +9,8 @@ export default new Vuex.Store({
         allHeight: 0,
         fetchingData: false,
         userInfo: null,
-        farmName: '金山',
-        farmNO: 10,
+        farmName: '',
+        farmNO: '',
         loginHistory: [{
             name: '/dashboard',
             title: '首页'
@@ -42,6 +42,10 @@ export default new Vuex.Store({
         },
         updateWindowSize(state, windowSize) {
             state.windowSize = windowSize
+        },
+        uploadfarmInfo(state, farmInfo) {
+            state.farmName = farmInfo.misOrgName
+            state.farmNO = parseInt(farmInfo.misOrgCode)
         }
     },
     actions: {}