panhui 7 tahun lalu
induk
melakukan
166bc2903e

+ 15 - 7
src/main/vue/src/entries/admin.js

@@ -167,8 +167,7 @@ Vue.mixin({
 });
 });
 
 
 //serviceName, methodName, params,返回类型:list/json,tableKey:默认牛号,日期转换格式:YYYY-MM-DD
 //serviceName, methodName, params,返回类型:list/json,tableKey:默认牛号,日期转换格式:YYYY-MM-DD
-Vue.prototype.getHaleInfo = function(serviceName, methodName, params, type, newkey, dateType) {
-    console.log(newkey)
+Vue.prototype.getHaleInfo = function(serviceName, methodName, params, type, newkey, dateTypeType) {
     return new Promise((resolve, reject) => {
     return new Promise((resolve, reject) => {
         var data = {
         var data = {
             "serviceName": serviceName,
             "serviceName": serviceName,
@@ -192,19 +191,24 @@ Vue.prototype.getHaleInfo = function(serviceName, methodName, params, type, newk
                     useKey = newkey
                     useKey = newkey
                 }
                 }
 
 
+                var useDateType = 'YYYY-MM-DD'
+                if (dateTypeType) {
+                    useDateType = dateTypeType
+                }
+
                 if (res.data.data[useKey]) {
                 if (res.data.data[useKey]) {
                     list.push(res.data.data)
                     list.push(res.data.data)
                 } else {
                 } else {
                     list = res.data.data
                     list = res.data.data
                 }
                 }
-
                 list.forEach(item => {
                 list.forEach(item => {
                     for (var key in item) {
                     for (var key in item) {
+
                         if (key.indexOf('日期') != -1) {
                         if (key.indexOf('日期') != -1) {
-                            item[key] = format(new Date(item[key]), dateType ? dateType : 'YYYY-MM-DD', { locale: zh })
+                            item[key] = format(new Date(item[key]), useDateType, { locale: zh })
                         }
                         }
                         if (key.indexOf('时间') != -1) {
                         if (key.indexOf('时间') != -1) {
-                            item[key] = format(new Date(item[key]), dateType ? dateType : 'YYYY-MM-DD HH:mm:ss', { locale: zh })
+                            item[key] = format(new Date(item[key]), useDateType, { locale: zh })
                         }
                         }
                     }
                     }
                 })
                 })
@@ -215,10 +219,10 @@ Vue.prototype.getHaleInfo = function(serviceName, methodName, params, type, newk
                 jsonp = res.data.data
                 jsonp = res.data.data
                 for (var key in jsonp) {
                 for (var key in jsonp) {
                     if (key.indexOf('日期') != -1) {
                     if (key.indexOf('日期') != -1) {
-                        jsonp[key] = format(new Date(jsonp[key]), dateType ? dateType : 'YYYY-MM-DD', { locale: zh })
+                        jsonp[key] = format(new Date(jsonp[key]), dateTypeType ? dateTypeType : 'YYYY-MM-DD', { locale: zh })
                     }
                     }
                     if (key.indexOf('时间') != -1) {
                     if (key.indexOf('时间') != -1) {
-                        jsonp[key] = format(new Date(jsonp[key]), dateType ? dateType : 'YYYY-MM-DD HH:mm:ss', { locale: zh })
+                        jsonp[key] = format(new Date(jsonp[key]), dateTypeType ? dateTypeType : 'YYYY-MM-DD HH:mm:ss', { locale: zh })
                     }
                     }
                 }
                 }
                 resolve(jsonp)
                 resolve(jsonp)
@@ -300,6 +304,10 @@ Vue.prototype.getCowInfo = function(cowID, type, isBack) {
     })
     })
 }
 }
 
 
+Vue.prototype.getTime = function(str, useDateType) {
+    return format(new Date(str), useDateType, { locale: zh })
+}
+
 const updateTableHeight = () => {
 const updateTableHeight = () => {
     try {
     try {
         const total = document.getElementsByTagName('main')[0].clientHeight;
         const total = document.getElementsByTagName('main')[0].clientHeight;

+ 810 - 0
src/main/vue/src/pages/HandleDiagnosis.vue

@@ -0,0 +1,810 @@
+<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="过抗检测日期" 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" 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" 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-switch v-model="formData.isChangeGroup" active-text="是" inactive-text="否"></el-switch>
+        </el-form-item>
+        <el-row>
+          <el-table class="handleTable" border :data="drugList" style="width: 100%" size="mini">
+            <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="医嘱" align="center"></el-table-column>
+          </el-table>
+        </el-row>
+        <el-row style="margin:10px 0 20px;">
+          <el-button type="primary" plain size="mini" @click="changeDrug">修改处方</el-button>
+        </el-row>
+
+        <el-form-item label="发病症状">
+          <el-select v-model="formData.symptom" multiple placeholder="请选择">
+            <el-option v-for="item in typeList" :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.breastArea_FL=(formData.breastArea_FL+1)%5" :style="{backgroundColor:breastArea[formData.breastArea_FL].color}">{{breastArea[formData.breastArea_FL].lable}}</div>
+            <div class="item" @click="formData.breastArea_FR=(formData.breastArea_FR+1)%5" :style="{backgroundColor:breastArea[formData.breastArea_FR].color}">{{breastArea[formData.breastArea_FR].lable}}</div>
+            <div class="item" @click="formData.breastArea_BL=(formData.breastArea_BL+1)%5" :style="{backgroundColor:breastArea[formData.breastArea_BL].color}">{{breastArea[formData.breastArea_BL].lable}}</div>
+            <div class="item" @click="formData.breastArea_BR=(formData.breastArea_BR+1)%5" :style="{backgroundColor:breastArea[formData.breastArea_BR].color}">{{breastArea[formData.breastArea_BR].lable}}</div>
+          </div>
+        </el-form-item>
+
+        <el-form-item label="体温">
+          <el-select v-model="formData.bodyTemp" placeholder="请选择">
+            <el-option v-for="item in temperatureList" :key="item.val" :label="item.lable" :value="item.val"></el-option>
+          </el-select>
+        </el-form-item>
+
+        <el-form-item label="瘤胃蠕动">
+          <el-select v-model="formData.rumen" placeholder="请选择">
+            <el-option v-for="item in [{lable:'正常',val:1},{lable:'异常',val:0}]" :key="item.val" :label="item.lable" :value="item.val"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="心率">
+          <el-select v-model="formData.heartRate" placeholder="请选择">
+            <el-option v-for="item in [{lable:'正常',val:1},{lable:'异常',val:0}]" :key="item.val" :label="item.lable" :value="item.val"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="可视黏膜">
+          <el-select v-model="formData.visibleMocus" placeholder="请选择">
+            <el-option v-for="item in ['正常','异常']" :key="item" :label="item" :value="item"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="精神状态">
+          <el-select v-model="formData.mentalState" placeholder="请选择">
+            <el-option v-for="item in ['正常','异常']" :key="item" :label="item" :value="item"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="粪便">
+          <el-select v-model="formData.defecationCase" placeholder="请选择">
+            <el-option v-for="item in ['正常','异常']" :key="item" :label="item" :value="item"></el-option>
+          </el-select>
+        </el-form-item>
+
+        <div style="margin-top:80px">
+          <el-button @click="onSave(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-dialog title="治疗处方登记" :visible.sync="dialogVisible" width="50%">
+      <center>
+        <h3>{{formData.category}}————{{formData.name}}</h3>
+      </center>
+      <el-row type="flex" justify="center" style="margin-bottom:20px">
+        <el-select v-model="prescription" placeholder="请选择预设处方" @change="changeuseDrugList">
+          <el-option v-for="item in prescriptionList" :key="item.name" :label="item.name" :value="item.name"></el-option>
+        </el-select>
+      </el-row>
+      <el-row>
+        <el-table class="handleTable" border :data="useDrugList" style="width: 100%" size="mini">
+          <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="医嘱" align="center"></el-table-column>
+          <el-table-column label="操作" align="center" fixed="right">
+            <template slot-scope="scope">
+              <el-button @click="deleteRow(scope.row,scope.$index)" type="danger" size="mini" plain>删除</el-button>
+            </template>
+          </el-table-column>
+        </el-table>
+      </el-row>
+
+      <el-row style="margin-top:20px">
+        <el-button type="primary" size="mini" @click="innerVisible=true">添加药</el-button>
+      </el-row>
+
+      <el-dialog width="30%" title="添加药" :visible.sync="innerVisible" append-to-body>
+        <el-tree v-if="!innerinnerVisible" :data="allDrugList" :props="{
+          children: 'children',
+          label: '药品名称'
+        }" @node-click="handleNodeClick"></el-tree>
+
+        <el-form v-if="innerinnerVisible" ref="form" :model="addForm" label-width="50px">
+          <el-form-item label="药名">
+            <el-input v-model="addForm['药品名称']" disabled></el-input>
+          </el-form-item>
+          <el-form-item label="用法">
+            <el-select v-model="addForm['使用方法']" placeholder="请选择预设处方">
+              <el-option v-for="item in  ['穿刺', '外敷', '口服', '灌注', '乳注', '包扎', '插胃管', '其他']" :key="item" :label="item" :value="item"></el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item label="剂量">
+            <el-input v-model="addForm['剂量']"></el-input>
+          </el-form-item>
+          <el-form-item label="医嘱">
+            <el-input type="textarea" v-model="addForm['医嘱']"></el-input>
+          </el-form-item>
+        </el-form>
+        <span slot="footer" class="dialog-footer">
+          <el-button @click="innerinnerVisible = false">取 消</el-button>
+          <el-button type="primary" @click="sureAdd">确定添加</el-button>
+        </span>
+      </el-dialog>
+
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="dialogVisible = false">取 消</el-button>
+        <el-button type="primary" @click="sureDrug">确 定</el-button>
+      </span>
+    </el-dialog>
+  </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)
+    })
+  },
+  data() {
+    return {
+      saving: false,
+      formData: {
+        "cowID": '',
+        "diseaseDate": '',
+        "currFarm": '',
+        "currGroup": '',
+        "currCategory": '',
+        "groCode": '',
+        "repCode": '',
+        "currLact": '',
+        "category": '',
+        "name": '',
+        "symptom": [],
+        "bodyTemp": 2,
+        "isChangeGroup": false,
+        "heartRate": '',
+        "breathing": '',
+        "rumen": '',
+        "visibleMocus": '',
+        "mentalState": '',
+        "defecationCase": '',
+        "area_FL": 0,
+        "area_FR": 0,
+        "area_BL": 0,
+        "area_BR": 0,
+        "breastArea_FL": 0,
+        "breastArea_FR": 0,
+        "breastArea_BL": 0,
+        "breastArea_BR": 0,
+        "veterinary": '',
+      },
+      methods: ['人工观察', '计步器揭发', '同期发情'],
+      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
+      }],
+      breastArea: [{
+        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)'
+      }]
+    }
+  },
+  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.findUser) {
+          list.push(item)
+        }
+      })
+      return list
+    },
+    findUserList() {
+      var list = []
+      this.list.forEach(item => {
+        if (list.indexOf(item['发病揭发人']) == -1) {
+          list.push(item['发病揭发人'])
+        }
+      })
+      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', 'getDiagnoseTask', [
+        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
+      }
+
+      if (isSick && this.formData.symptom.length == 0) {
+        this.$message({
+          message: '请选择发病症状',
+          type: 'warning'
+        });
+        return
+      }
+
+      if (isSick && this.drugList.length == 0) {
+        this.$message({
+          message: '请选择处方',
+          type: 'warning'
+        });
+        return
+      }
+      var formData = { ...this.formData }
+      formData.symptom = formData.symptom.join(';')
+      formData.area_FL = formData.breastArea_FL
+      formData.area_FR = formData.breastArea_FR
+      formData.area_BL = formData.breastArea_BL
+      formData.area_BR = formData.breastArea_BR
+      formData.diseaseDate = Date.parse(new Date(formData.diseaseDate)) + 28800000
+
+      this.getHaleInfo('wsVeterinary', 'diseaseDiagnose', [
+        formData, formData.category, formData.name, isSick
+      ], 'json').then((data) => {
+        console.log(data)
+        if (data.rtnCode == -1) {
+          // this.$message({
+          //     message: data.rtnMessage,
+          //     type: 'warning'
+          // });
+
+          this.$alert(data.rtnMessage, '提示', {
+            confirmButtonText: '确定',
+            callback: action => {
+              this.formData.cowID = ''
+            }
+          });
+        }
+        else {
+          this.saveDrug(0)
+        }
+      })
+    },
+    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;
+    },
+    saveDrug(index) {
+      if (index >= this.drugList.length) {
+        this.$message({
+          message: '保存成功',
+          type: 'success'
+        });
+        this.getList()
+        this.drugList = []
+        this.formData.cowID = ''
+        return
+      }
+
+      var prescriptionNO = this.getTime('', 'YYMMDD') + this.newGuid().replace(/-/g, '').toUpperCase().substr(0, 10)
+
+      this.getHaleInfo('wsVeterinary', 'addPrescription', [
+        {
+          "prescriptionNO": prescriptionNO,
+          "cowID": this.formData.cowID,
+          "prescriptionDate": Date.parse(new Date()),
+          "currFarm": this.$store.state.farmName,
+          "currGroup": this.editCowInfo['当前牛舍'],
+          "bodyTemp": this.formData.bodyTemp,
+          "heartRate": this.formData.heartRate,
+          "breathing": this.formData.breathing,
+          "rumen": this.formData.rumen,
+          "visibleMocus": this.formData.visibleMocus,
+          "mentalState": this.formData.mentalState,
+          "defecationCase": this.formData.defecationCase,
+          "area_FL": this.formData.breastArea_FL,
+          "area_FR": this.formData.breastArea_FR,
+          "area_BL": this.formData.breastArea_BL,
+          "area_BR": this.formData.breastArea_BR,
+          "drugNO": this.drugList[index]['药品编号'] || " ",
+          "drugName": this.drugList[index]['药品名称'] || " ",
+          "drugAmount": this.drugList[index]['剂量'] || " ",
+          "treatMethod": this.drugList[index]['使用方法'] || " ",
+          "doctorAdvice": this.editCowInfo['兽医'],
+          "operators": this.$store.state.userInfo.username,
+          "operatTime": Date.parse(new Date()),
+
+        }, this.editCowInfo['牛号'], this.formData.category, this.formData, name, prescriptionNO
+      ], 'json').then((data) => {
+        console.log(data)
+        if (data.rtnCode == -1) {
+
+          this.$alert(data.rtnMessage, '提示', {
+            confirmButtonText: '确定',
+            callback: action => {
+              this.formData.cowID = ''
+            }
+          });
+        }
+        else {
+          this.saveDrug(index + 1)
+        }
+      })
+
+    },
+    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['发病日期'],
+        "currFarm": this.$store.state.farmName,
+        "currGroup": row['当前牛舍'],
+        "currCategory": row['当前状态'],
+        "groCode": row['泌乳状态'],
+        "repCode": row['繁殖状态'],
+        "currLact": row['当前胎次'],
+        "category": row['疾病类型'],
+        "name": row['疾病名称'],
+        "symptom": [],
+        "bodyTemp": 2,
+        "isChangeGroup": false,
+        "heartRate": 1,
+        "breathing": 1,
+        "rumen": 1,
+        "visibleMocus": '正常',
+        "mentalState": '正常',
+        "defecationCase": '正常',
+        "area_FL": 0,
+        "area_FR": 0,
+        "area_BL": 0,
+        "area_BR": 0,
+        "breastArea_FL": row['发病时左前区'],
+        "breastArea_FR": row['发病时右前区'],
+        "breastArea_BL": row['发病时左后区'],
+        "breastArea_BR": row['发病时右后区'],
+        "veterinary": this.$store.state.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>

+ 386 - 408
src/main/vue/src/pages/HandleDryMilk.vue

@@ -1,460 +1,438 @@
 <template>
 <template>
-    <el-container style="flex-grow:1" v-loading="loading">
-        <el-aside class="containAside" width="500px" style=" margin-right: 10px;">
-            <div class="asideInfo">
-                <div class="contentTitle">{{pageTitle}}
-
-                    <span></span>
-                </div>
-                <div class="selectContent">
-                    <el-select v-model="task" placeholder="请选择干奶任务" style="width:180px">
-                        <el-option v-for="item in ['提前干奶','干奶预警']" :key="item" :label="item" :value="item">
-                        </el-option>
-                    </el-select>
-                    <el-select v-model="cowshed" placeholder="请选择牛舍" style="width:180px">
-                        <el-option v-for="item in cowShedList" :key="item" :label="item" :value="item">
-                        </el-option>
-                    </el-select>
-
-                    <el-button type="primary" plain @click="isBath=!isBath">{{isBath?'单头':'批量'}}</el-button>
-
-                </div>
-                <div class="tableNum">
-                    {{filitList.length}}头奶牛
-                </div>
-                <el-table class="handleTable" border :data="filitList" style="width: 100%" @selection-change="handleSelectionChange" :height='(allHeight-184)+"px"' size='small' @row-click='rowClick'>
-                    <el-table-column type="selection" v-if='isBath'>
-                    </el-table-column>
-                    <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="建议干奶日期" min-width="100" align="center">
-                    </el-table-column>
-                    <el-table-column prop="配种日期" label="配种日期" min-width="100" align="center">
-                    </el-table-column>
-                    <el-table-column prop="预产日期" label="预产日期" min-width="100" 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>
-            </div>
-        </el-aside>
-        <el-main class="containMain">
-            <div class="contentTitle">干奶信息登记</div>
-            <el-form ref="form" :model="formData" label-width="100px" style="margin-top:20px;">
-                <el-form-item label="" label-width="0">
-                    <el-input v-model="formData.cowID" prefix-icon="el-icon-search" disabled style="width:300px"></el-input>
-                    <!-- <el-button type="primary" @click="getNowCow" style="width:90px;margin-left:12px">确认</el-button> -->
-                </el-form-item>
-                <div class="sub" v-if="tableData.length>0">
-                    操作牛号:{{tableData[0].value}}
-                </div>
-
-                <el-form-item label="干奶类型">
-                    <el-select v-model="formData.dryType" placeholder="请选择">
-                        <el-option v-for="item in ['提前干奶', '推后干奶', '正常干奶']" :key="item" :label="item" :value="item">
-                        </el-option>
-                    </el-select>
-                </el-form-item>
-                <el-form-item label="是否异常干奶">
-                    <el-radio-group v-model="formData.isAbnormal">
-                        <el-radio label="0">是</el-radio>
-                        <el-radio label="1">否</el-radio>
-                    </el-radio-group>
-                </el-form-item>
-                <el-form-item label="异常干奶原因" v-if="formData.isAbnormal=='0'">
-                    <el-select v-model="formData.abnormalReason" placeholder="请选择">
-                        <el-option v-for="item in  ['禁配', '营养代谢性疾病', '消化系统疾病', '乳房疾病', '四肢疾病', '外科感染', '损伤', '疝']" :key="item" :label="item" :value="item">
-                        </el-option>
-                    </el-select>
-                </el-form-item>
-                <el-form-item label="药物名称">
-                    <el-select v-model="formData.drugName" placeholder="请选择">
-                        <el-option v-for="item in ['安倍宁', '奶扶舒', '齐利宁', '乳炎平', '赛福魁']" :key="item" :label="item" :value="item">
-                        </el-option>
-                    </el-select>
-                </el-form-item>
-                <el-form-item label="药物剂量">
-                    <el-input v-model="formData.drugDose" style="width:215px"></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" style=" margin-left: 10px;" v-if="!isBath">
-            <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>
+  <el-container style="flex-grow:1" v-loading="loading">
+    <el-aside class="containAside" width="500px" style=" margin-right: 10px;">
+      <div class="asideInfo">
+        <div class="contentTitle">
+          {{pageTitle}}
+          <span></span>
+        </div>
+        <div class="selectContent">
+          <el-select v-model="task" placeholder="请选择干奶任务" style="width:180px">
+            <el-option v-for="item in ['提前干奶','干奶预警']" :key="item" :label="item" :value="item"></el-option>
+          </el-select>
+          <el-select v-model="cowshed" placeholder="请选择牛舍" style="width:180px">
+            <el-option v-for="item in cowShedList" :key="item" :label="item" :value="item"></el-option>
+          </el-select>
+
+          <el-button type="primary" plain @click="isBath=!isBath">{{isBath?'单头':'批量'}}</el-button>
+        </div>
+        <div class="tableNum">{{filitList.length}}头奶牛</div>
+        <el-table class="handleTable" border :data="filitList" style="width: 100%" @selection-change="handleSelectionChange" :height="(allHeight-184)+'px'" size="small" @row-click="rowClick">
+          <el-table-column type="selection" v-if="isBath"></el-table-column>
+          <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="建议干奶日期" min-width="100" align="center"></el-table-column>
+          <el-table-column prop="配种日期" label="配种日期" min-width="100" align="center"></el-table-column>
+          <el-table-column prop="预产日期" label="预产日期" min-width="100" 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>
+      </div>
+    </el-aside>
+    <el-main class="containMain">
+      <div class="contentTitle">干奶信息登记</div>
+      <el-form ref="form" :model="formData" label-width="100px" style="margin-top:20px;">
+        <el-form-item label label-width="0">
+          <el-input v-model="formData.cowID" prefix-icon="el-icon-search" disabled style="width:300px"></el-input>
+          <!-- <el-button type="primary" @click="getNowCow" style="width:90px;margin-left:12px">确认</el-button> -->
+        </el-form-item>
+        <div class="sub" v-if="tableData.length>0">操作牛号:{{tableData[0].value}}</div>
+
+        <el-form-item label="干奶类型">
+          <el-select v-model="formData.dryType" placeholder="请选择">
+            <el-option v-for="item in ['提前干奶', '推后干奶', '正常干奶']" :key="item" :label="item" :value="item"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="是否异常干奶">
+          <el-radio-group v-model="formData.isAbnormal">
+            <el-radio label="0">是</el-radio>
+            <el-radio label="1">否</el-radio>
+          </el-radio-group>
+        </el-form-item>
+        <el-form-item label="异常干奶原因" v-if="formData.isAbnormal=='0'">
+          <el-select v-model="formData.abnormalReason" placeholder="请选择">
+            <el-option v-for="item in  ['禁配', '营养代谢性疾病', '消化系统疾病', '乳房疾病', '四肢疾病', '外科感染', '损伤', '疝']" :key="item" :label="item" :value="item"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="药物名称">
+          <el-select v-model="formData.drugName" placeholder="请选择">
+            <el-option v-for="item in ['安倍宁', '奶扶舒', '齐利宁', '乳炎平', '赛福魁']" :key="item" :label="item" :value="item"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="药物剂量">
+          <el-input v-model="formData.drugDose" style="width:215px"></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" style=" margin-left: 10px;" v-if="!isBath">
+      <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>
 </template>
 <script>
 <script>
 import formValidator from '../formValidator'
 import formValidator from '../formValidator'
 import axios from 'axios'
 import axios from 'axios'
 import { mapState } from 'vuex'
 import { mapState } from 'vuex'
 export default {
 export default {
-    created() {
-        //妊娠检查列表
-        this.getList()
-        // //配种方式
-        // 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
-        // ], 'list').then((data) => {
-        //     this.bulls = data
-        // })
+  created() {
+    //妊娠检查列表
+    this.getList()
+    // //配种方式
+    // 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
+    // ], 'list').then((data) => {
+    //     this.bulls = data
+    // })
+
+  },
+  data() {
+    return {
+      saving: false,
+      formData: {
+        cowID: '',
+        dryDate: '',
+        currFarm: '',
+        currGroup: '',
+        mateDate: '',
+        currCategory: '',
+        dryType: '正常干奶',
+        isAbnormal: '1',
+        abnormalReason: '禁配',
+        isDrugTreated: true,
+        drugName: '安倍宁',
+        drugDose: ''
+      },
+      mateModes: [],
+      methods: ['人工观察', '计步器揭发', '同期发情'],
+      bulls: [],
+      tableData: [],
+      list: [],
+      cowshed: '',
+      task: '干奶预警',
+      isBath: false,
+      chooseList: [],
+      loading: false
+    }
+  },
+  computed: {
+    ...mapState(['userInfo', 'allHeight']),
+    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
+
 
 
     },
     },
-    data() {
-        return {
-            saving: false,
-            formData: {
-                cowID: '',
-                dryDate: '',
-                currFarm: '',
-                currGroup: '',
-                mateDate: '',
-                currCategory: '',
-                dryType: '正常干奶',
-                isAbnormal: '1',
-                abnormalReason: '禁配',
-                isDrugTreated: true,
-                drugName: '安倍宁',
-                drugDose: ''
-            },
-            mateModes: [],
-            methods: ['人工观察', '计步器揭发', '同期发情'],
-            bulls: [],
-            tableData: [],
-            list: [],
-            cowshed: '',
-            task: '干奶预警',
-            isBath: false,
-            chooseList: [],
-            loading: false
+    filitList() {
+      var list = []
+      if (this.cowshed) {
+        if (this.cowshed == '全部牛舍') {
+          list = this.list
         }
         }
-    },
-    computed: {
-        ...mapState(['userInfo', 'allHeight']),
-        pageTitle() {
-            return this.$route.meta.title
-        },
-        bullMsg() {
-            var jsonp = {}
-            if (this.formData.bull) {
-                this.bulls.forEach(item => {
-                    if (item['牛号'] == this.formData.bull) {
-                        jsonp = item
-                    }
-                })
+        else {
+          this.list.forEach(item => {
+            if (item['当前牛舍'] == this.cowshed) {
+              list.push(item)
             }
             }
+          })
+        }
 
 
-            return jsonp
+      }
+      return list
+    },
+    cowShedList() {
+      var list = ['全部牛舍']
+      this.list.forEach(item => {
+        if (list.indexOf(item['当前牛舍']) === -1) {
+          list.push(item['当前牛舍'])
+        }
+      })
+      return list
+    },
+  },
+  watch: {
+    task() {
+      this.getList()
+      this.cowshed = ''
+    }
+  },
+  methods: {
+    getList() {
+      this.getHaleInfo('wsVeterinary', 'getDryMilkTask', [this.$store.state.farmName, this.task == '提前干奶'], 'list').then((data) => {
+        console.log(data)
+        this.list = data
 
 
 
 
-        },
-        filitList() {
-            var list = []
-            if (this.cowshed) {
-                if (this.cowshed == '全部牛舍') {
-                    list = this.list
-                }
-                else {
-                    this.list.forEach(item => {
-                        if (item['当前牛舍'] == this.cowshed) {
-                            list.push(item)
-                        }
-                    })
-                }
 
 
+      })
+    },
+    onSave() {
+      if (!this.formData.cowID) {
+        this.$message({
+          message: '请录入牛只牛号',
+          type: 'warning'
+        });
+        return
+      }
+
+      if (!this.formData.drugDose) {
+        this.$message({
+          message: '请录入药物剂量',
+          type: 'warning'
+        });
+        return
+      }
+
+      if (this.isBath) {
+        this.saveList(0)
+        return
+      }
+
+      var formData = { ...this.formData }
+      formData.isAbnormal = (formData.isAbnormal == '0')
+      if (!formData.isAbnormal) {
+        delete formData.abnormalReason
+      }
+
+      this.getHaleInfo('wsVeterinary', 'addDryMilk', [formData], 'json').then((data) => {
+        console.log(data)
+        if (data.rtnCode == -1) {
+          this.$alert(data.rtnMessage, '提示', {
+            confirmButtonText: '确定',
+            callback: action => {
+              this.formData.cowID = ''
             }
             }
-            return list
-        },
-        cowShedList() {
-            var list = ['全部牛舍']
-            this.list.forEach(item => {
-                if (list.indexOf(item['当前牛舍']) === -1) {
-                    list.push(item['当前牛舍'])
-                }
-            })
-            return list
-        },
+          });
+        }
+        else {
+          this.$message({
+            message: '录入成功',
+            type: 'success'
+          });
+          this.formData.cowID = ''
+          this.getList()
+        }
+      })
     },
     },
-    watch: {
-        task() {
+    saveList(index) {
+      this.loading = true
+      if (index >= this.chooseList.length) {
+        this.loading = false
+        this.$alert('成功录入' + this.chooseList.length + '头干奶信息', '成功', {
+          confirmButtonText: '确定',
+          callback: action => {
+            this.chooseList = []
             this.getList()
             this.getList()
-            this.cowshed=''
+            this.formData.cowID = ''
+          }
+        });
+        return
+      }
+      var formData = {
+        cowID: this.chooseList[index]['牛号'],
+        dryDate: Date.parse(new Date()),
+        currFarm: this.chooseList[index]['牧场'],
+        currGroup: this.chooseList[index]['当前牛舍'],
+        mateDate: Date.parse(new Date(this.chooseList[index]['配种日期'])),
+        currCategory: this.chooseList[index]['当前牛舍'],
+        dryType: this.formData.dryType,
+        isAbnormal: this.formData.isAbnormal == '0',
+        abnormalReason: this.formData.abnormalReason,
+        isDrugTreated: true,
+        drugName: this.formData.drugName,
+        drugDose: this.formData.drugDose
+      }
+
+      if (!formData.isAbnormal) {
+        delete formData.abnormalReason
+      }
+
+      this.getHaleInfo('wsVeterinary', 'addDryMilk', [formData], 'json').then((data) => {
+        console.log(data)
+        if (data.rtnCode == -1) {
+          this.loading = false
+          this.$alert(this.chooseList[index]['牛号'] + data.rtnMessage + ',已录入' + index + '头牛,录入中断', '提示', {
+            confirmButtonText: '确定',
+            callback: action => {
+              this.chooseList = []
+              this.getList()
+              this.formData.cowID = ''
+            }
+          });
+        }
+        else {
+          this.saveList(index + 1)
         }
         }
+      })
     },
     },
-    methods: {
-        getList() {
-            this.getHaleInfo('wsVeterinary', 'getDryMilkTask', [this.$store.state.farmName, this.task == '提前干奶'], 'list').then((data) => {
-                console.log(data)
-                this.list = data
-
-
-
-            })
-        },
-        onSave() {
-            if (!this.formData.cowID) {
-                this.$message({
-                    message: '请录入牛只牛号',
-                    type: 'warning'
-                });
-                return
-            }
+    getNowCow(row) {
+      // console.log(row)
+      var list = []
+      Object.keys(row).forEach(item => {
+        list.push({
+          key: item,
+          value: row[item]
+        })
+      })
 
 
-            if (!this.formData.drugDose) {
-                this.$message({
-                    message: '请录入药物剂量',
-                    type: 'warning'
-                });
-                return
-            }
+      // console.log(list)
 
 
-            if (this.isBath) {
-                this.saveList(0)
-                return
-            }
+      this.tableData = list
 
 
-            var formData = { ...this.formData }
-            formData.isAbnormal = (formData.isAbnormal == '0')
-            if (!formData.isAbnormal) {
-                delete formData.abnormalReason
-            }
 
 
-            this.getHaleInfo('wsVeterinary', 'addDryMilk', [formData], '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()
-                }
-            })
-        },
-        saveList(index) {
-            this.loading = true
-            if (index >= this.chooseList.length) {
-                this.loading = false
-                this.$alert('成功录入' + this.chooseList.length + '头干奶信息', '成功', {
-                    confirmButtonText: '确定',
-                    callback: action => {
-                        this.chooseList = []
-                        this.getList()
-                        this.formData.cowID = ''
-                    }
-                });
-                return
-            }
-            var formData = {
-                cowID: this.chooseList[index]['牛号'],
-                dryDate: Date.parse(new Date()),
-                currFarm: this.chooseList[index]['牧场'],
-                currGroup: this.chooseList[index]['当前牛舍'],
-                mateDate: Date.parse(new Date(this.chooseList[index]['配种日期'])),
-                currCategory: this.chooseList[index]['当前牛舍'],
-                dryType: this.formData.dryType,
-                isAbnormal: this.formData.isAbnormal == '0',
-                abnormalReason: this.formData.abnormalReason,
-                isDrugTreated: true,
-                drugName: this.formData.drugName,
-                drugDose: this.formData.drugDose
-            }
+    },
+    rowClick(row) {
+      // console.log(row)
+      if (!this.isBath) {
+        // this.formData = {
+        //     cowID: row['牛号'],
+        //     geCheckMethod: '直肠检测法',
+        //     geCheckResult: '',
+        //     isReCheck: false,
+        //     operators: ''
+        // }
+        this.formData = {
+          cowID: row['牛号'],
+          dryDate: Date.parse(new Date()),
+          currFarm: row['牧场'],
+          currGroup: row['当前牛舍'],
+          mateDate: Date.parse(new Date(row['配种日期'])),
+          currCategory: row['当前牛舍'],
+          dryType: '正常干奶',
+          isAbnormal: '1',
+          abnormalReason: '禁配',
+          isDrugTreated: true,
+          drugName: '安倍宁',
+          drugDose: ''
+        }
 
 
-            if (!formData.isAbnormal) {
-                delete formData.abnormalReason
-            }
+        var jsonp = { ...row }
 
 
-            this.getHaleInfo('wsVeterinary', 'addDryMilk', [formData], 'json').then((data) => {
-                console.log(data)
-                if (data.rtnCode == -1) {
-                    this.loading = false
-                    this.$alert(this.chooseList[index]['牛号'] + data.rtnMessage + ',已录入' + index + '头牛,录入中断', '提示', {
-                        confirmButtonText: '确定',
-                        callback: action => {
-                            this.chooseList = []
-                            this.getList()
-                            this.formData.cowID = ''
-                        }
-                    });
-                }
-                else {
-                    this.saveList(index + 1)
-                }
-            })
-        },
-        getNowCow(row) {
-            // console.log(row)
-            var list = []
-            Object.keys(row).forEach(item => {
-                list.push({
-                    key: item,
-                    value: row[item]
-                })
-            })
-
-            // console.log(list)
-
-            this.tableData = list
-
-
-        },
-        rowClick(row) {
-            // console.log(row)
-            if (!this.isBath) {
-                // this.formData = {
-                //     cowID: row['牛号'],
-                //     geCheckMethod: '直肠检测法',
-                //     geCheckResult: '',
-                //     isReCheck: false,
-                //     operators: ''
-                // }
-                this.formData = {
-                    cowID: row['牛号'],
-                    dryDate: Date.parse(new Date()),
-                    currFarm: row['牧场'],
-                    currGroup: row['当前牛舍'],
-                    mateDate: Date.parse(new Date(row['配种日期'])),
-                    currCategory: row['当前牛舍'],
-                    dryType: '正常干奶',
-                    isAbnormal: '1',
-                    abnormalReason: '禁配',
-                    isDrugTreated: true,
-                    drugName: '安倍宁',
-                    drugDose: ''
-                }
-
-                var jsonp = { ...row }
-
-                this.getNowCow(jsonp)
-            }
+        this.getNowCow(jsonp)
+      }
 
 
-        },
-        handleSelectionChange(val) {
-            this.chooseList = val
-            if (val.length > 0) {
-                this.formData.cowID = val[0]['牛号'] + '...'
-            }
-            else {
-                this.formData.cowID = ''
-            }
+    },
+    handleSelectionChange(val) {
+      this.chooseList = val
+      if (val.length > 0) {
+        this.formData.cowID = val[0]['牛号'] + '...'
+      }
+      else {
+        this.formData.cowID = ''
+      }
 
 
-        }
     }
     }
+  }
 }
 }
 </script>
 </script>
 <style lang="less" scoped>
 <style lang="less" scoped>
 .containMain {
 .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;
-    }
+  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 {
 .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;
-    }
+  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 {
 .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;
 }
 }
 
 
 .tableNum {
 .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;
 }
 }
 
 
 .containAside {
 .containAside {
-    padding: 0;
-
-    display: flex;
-    flex-direction: column;
-    .asideInfo {
-        flex-grow: 1;
-        background: rgba(255, 255, 255, 1);
-        border-radius: 4px;
-        padding: 15px;
-    }
+  padding: 0;
+
+  display: flex;
+  flex-direction: column;
+  .asideInfo {
+    flex-grow: 1;
+    background: rgba(255, 255, 255, 1);
+    border-radius: 4px;
+    padding: 15px;
+  }
 }
 }
 
 
 .item {
 .item {
-    .item-title {
-        font-size: 14px;
-        font-weight: bold;
+  .item-title {
+    font-size: 14px;
+    font-weight: bold;
 
 
-        color: rgba(0, 0, 0, 1);
-        line-height: 20px;
-        letter-spacing: 1px;
-    }
+    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;
-    }
+  .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>
 </style>

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

@@ -43,7 +43,7 @@
             </div>
             </div>
         </el-aside>
         </el-aside>
         <el-main class="containMain">
         <el-main class="containMain">
-            <div class="contentTitle">同期配种信息登记</div>
+            <div class="contentTitle">投喂淄博钙信息登记</div>
             <el-form ref="form" :model="formData" label-width="80px" style="margin-top:20px;">
             <el-form ref="form" :model="formData" label-width="80px" style="margin-top:20px;">
                 <el-form-item label="" label-width="0">
                 <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-input v-model="formData.cowID" disabled prefix-icon="el-icon-search" style="width:300px" maxlength="8"></el-input>
@@ -59,7 +59,7 @@
                     </el-radio-group>
                     </el-radio-group>
                 </el-form-item> -->
                 </el-form-item> -->
                 <el-form-item label="配种方式">
                 <el-form-item label="配种方式">
-                    <el-select v-model="formData.mateMode" placeholder="请选择">
+                    <el-select v-model="              formData.mateMode" placeholder="请选择">
                         <el-option v-for="item in mateModes" :key="item['详细方式']" :label="item['详细方式']" :value="item['详细方式']">
                         <el-option v-for="item in mateModes" :key="item['详细方式']" :label="item['详细方式']" :value="item['详细方式']">
                         </el-option>
                         </el-option>
                     </el-select>
                     </el-select>

+ 368 - 0
src/main/vue/src/pages/HandlePerinatal.vue

@@ -0,0 +1,368 @@
+<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="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>
+
+                    <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>
+            </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]
+            }
+        })
+
+
+
+
+    },
+    data() {
+        return {
+            saving: false,
+            formData: {
+                cowID: '',
+                difficulty: '',
+                method: '人工观察',
+                num: '1',
+                describe: '',
+                type: '正产',
+                isSeeTires: true,
+            },
+            methods: ['人工观察', '计步器揭发', '同期发情'],
+            tableData: [],
+            difficultyList: [],
+            editCowInfo: {},
+            list: [],
+            cowShed: ''
+        }
+    },
+    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
+        }
+    },
+    watch: {
+        'formData.cowID'() {
+            if (this.formData.cowID.length != 8) {
+                return
+            }
+            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.formData.cowID) {
+                this.$message({
+                    message: '请录入牛只牛号',
+                    type: 'warning'
+                });
+                return
+            }
+
+            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 {
+
+
+                    this.$confirm('产犊信息录入成功,是否立即进入犊牛信息录入', '提示', {
+                        confirmButtonText: '是',
+                        cancelButtonText: '否',
+                        type: 'success'
+                    }).then(() => {
+                        this.$router.push({
+                            name: "handleCalf",
+                            query: {
+                                cowID: this.editCowInfo['牛号']
+                            }
+                        })
+                    }).catch(() => {
+                        this.formData.cowID = ''
+                        this.getList()
+                    });
+                }
+            })
+        },
+        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.formData.cowID=row['牛号']
+            this.getNowCow()
+        }
+    }
+}
+</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;
+}
+</style>

+ 870 - 0
src/main/vue/src/pages/HandleTreatment.vue

@@ -0,0 +1,870 @@
+<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-switch v-model="formData.isChangeGroup" active-text="是" inactive-text="否"></el-switch>
+        </el-form-item>-->
+        <el-row>
+          <el-table class="handleTable" border :data="drugList" style="width: 100%" size="mini">
+            <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="医嘱" align="center"></el-table-column>
+          </el-table>
+        </el-row>
+        <el-row style="margin:10px 0 20px;">
+          <el-button type="primary" plain size="mini" @click="changeDrug">修改处方</el-button>
+        </el-row>
+
+        <!-- <el-form-item label="发病症状">
+          <el-select v-model="formData.symptom" multiple placeholder="请选择">
+            <el-option v-for="item in typeList" :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.breastArea_FL=(formData.breastArea_FL+1)%5" :style="{backgroundColor:breastArea[formData.breastArea_FL].color}">{{breastArea[formData.breastArea_FL].lable}}</div>
+            <div class="item" @click="formData.breastArea_FR=(formData.breastArea_FR+1)%5" :style="{backgroundColor:breastArea[formData.breastArea_FR].color}">{{breastArea[formData.breastArea_FR].lable}}</div>
+            <div class="item" @click="formData.breastArea_BL=(formData.breastArea_BL+1)%5" :style="{backgroundColor:breastArea[formData.breastArea_BL].color}">{{breastArea[formData.breastArea_BL].lable}}</div>
+            <div class="item" @click="formData.breastArea_BR=(formData.breastArea_BR+1)%5" :style="{backgroundColor:breastArea[formData.breastArea_BR].color}">{{breastArea[formData.breastArea_BR].lable}}</div>
+          </div>
+        </el-form-item>
+        <el-form-item label="体温">
+          <el-select v-model="formData.bodyTemp" placeholder="请选择">
+            <el-option v-for="item in temperatureList" :key="item.val" :label="item.lable" :value="item.val"></el-option>
+          </el-select>
+        </el-form-item>
+
+        <el-form-item label="瘤胃蠕动">
+          <el-select v-model="formData.rumen" placeholder="请选择">
+            <el-option v-for="item in [{lable:'正常',val:1},{lable:'异常',val:0}]" :key="item.val" :label="item.lable" :value="item.val"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="心率">
+          <el-select v-model="formData.heartRate" placeholder="请选择">
+            <el-option v-for="item in [{lable:'正常',val:1},{lable:'异常',val:0}]" :key="item.val" :label="item.lable" :value="item.val"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="可视黏膜">
+          <el-select v-model="formData.visibleMocus" placeholder="请选择">
+            <el-option v-for="item in ['正常','异常']" :key="item" :label="item" :value="item"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="精神状态">
+          <el-select v-model="formData.mentalState" placeholder="请选择">
+            <el-option v-for="item in ['正常','异常']" :key="item" :label="item" :value="item"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="粪便">
+          <el-select v-model="formData.defecationCase" placeholder="请选择">
+            <el-option v-for="item in ['正常','异常']" :key="item" :label="item" :value="item"></el-option>
+          </el-select>
+        </el-form-item>
+
+        <div style="margin-top:80px">
+          <el-button @click="onSave(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-dialog title="治疗处方登记" :visible.sync="dialogVisible" width="50%">
+      <center>
+        <h3>{{formData.category}}————{{formData.name}}</h3>
+      </center>
+      <el-row type="flex" justify="center" style="margin-bottom:20px">
+        <el-select v-model="prescription" placeholder="请选择预设处方" @change="changeuseDrugList">
+          <el-option v-for="item in prescriptionList" :key="item.name" :label="item.name" :value="item.name"></el-option>
+        </el-select>
+      </el-row>
+      <el-row>
+        <el-table class="handleTable" border :data="useDrugList" style="width: 100%" size="mini">
+          <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="医嘱" align="center"></el-table-column>
+          <el-table-column label="操作" align="center" fixed="right">
+            <template slot-scope="scope">
+              <el-button @click="deleteRow(scope.row,scope.$index)" type="danger" size="mini" plain>删除</el-button>
+            </template>
+          </el-table-column>
+        </el-table>
+      </el-row>
+
+      <el-row style="margin-top:20px">
+        <el-button type="primary" size="mini" @click="innerVisible=true">添加药</el-button>
+      </el-row>
+
+      <el-dialog width="30%" title="添加药" :visible.sync="innerVisible" append-to-body>
+        <el-tree v-if="!innerinnerVisible" :data="allDrugList" :props="{
+          children: 'children',
+          label: '药品名称'
+        }" @node-click="handleNodeClick"></el-tree>
+
+        <el-form v-if="innerinnerVisible" ref="form" :model="addForm" label-width="50px">
+          <el-form-item label="药名">
+            <el-input v-model="addForm['药品名称']" disabled></el-input>
+          </el-form-item>
+          <el-form-item label="用法">
+            <el-select v-model="addForm['使用方法']" placeholder="请选择预设处方">
+              <el-option v-for="item in  ['穿刺', '外敷', '口服', '灌注', '乳注', '包扎', '插胃管', '其他']" :key="item" :label="item" :value="item"></el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item label="剂量">
+            <el-input v-model="addForm['剂量']"></el-input>
+          </el-form-item>
+          <el-form-item label="医嘱">
+            <el-input type="textarea" v-model="addForm['医嘱']"></el-input>
+          </el-form-item>
+        </el-form>
+        <span slot="footer" class="dialog-footer">
+          <el-button @click="innerinnerVisible = false">取 消</el-button>
+          <el-button type="primary" @click="sureAdd">确定添加</el-button>
+        </span>
+      </el-dialog>
+
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="dialogVisible = false">取 消</el-button>
+        <el-button type="primary" @click="sureDrug">确 定</el-button>
+      </span>
+    </el-dialog>
+
+    <el-dialog width="30%" :title="'牛号'+formData.cowID+'停药'" :visible.sync="stopDrug">
+      <el-form :model="stopForm" label-width="80px">
+        <el-form-item label="停药日期">
+          <el-select v-model="stopForm.stopDate" placeholder="停药日期">
+            <el-option v-for="item in  ['当天']" :key="item" :label="item" :value="item"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="过抗采样">
+          <el-select v-model="stopForm.sampleDate" placeholder="过抗采样">
+            <el-option v-for="item in  [{
+                title: '当天',
+                key: 0
+            }, {
+                title: '1天',
+                key: 1
+            }, {
+                title: '2天',
+                key: 2
+            }, {
+                title: '3天',
+                key: 3
+            }, {
+                title: '4天',
+                key: 4
+            }, {
+                title: '5天',
+                key: 5
+            }]" :key="item.key" :label="item.title" :value="item.key"></el-option>
+          </el-select>
+        </el-form-item>
+      </el-form>
+
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="stopDrug = false">取 消</el-button>
+        <el-button type="primary" @click="sureStop">确 定</el-button>
+      </span>
+    </el-dialog>
+  </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)
+    })
+  },
+  data() {
+    return {
+      saving: false,
+      formData: {
+        "cowID": '',
+        "diseaseDate": '',
+        "currFarm": '',
+        "currGroup": '',
+        "currCategory": '',
+        "groCode": '',
+        "repCode": '',
+        "currLact": '',
+        "category": '',
+        "name": '',
+        "symptom": [],
+        "bodyTemp": 2,
+        "isChangeGroup": false,
+        "heartRate": '',
+        "breathing": '',
+        "rumen": '',
+        "visibleMocus": '',
+        "mentalState": '',
+        "defecationCase": '',
+        "area_FL": 0,
+        "area_FR": 0,
+        "area_BL": 0,
+        "area_BR": 0,
+        "breastArea_FL": 0,
+        "breastArea_FR": 0,
+        "breastArea_BL": 0,
+        "breastArea_BR": 0,
+        "veterinary": '',
+      },
+      methods: ['人工观察', '计步器揭发', '同期发情'],
+      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
+      }],
+      breastArea: [{
+        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 == '其他疾病') {
+          if (this.findUserList.indexOf(item['疾病类型']) == -1) {
+            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
+      }
+
+
+      if (isSick && this.drugList.length == 0) {
+        this.$message({
+          message: '请添加处方',
+          type: 'warning'
+        });
+        return
+      }
+      var formData = { ...this.formData }
+      formData.symptom = formData.symptom.join(';')
+      formData.area_FL = formData.breastArea_FL
+      formData.area_FR = formData.breastArea_FR
+      formData.area_BL = formData.breastArea_BL
+      formData.area_BR = formData.breastArea_BR
+      formData.diseaseDate = Date.parse(new Date(formData.diseaseDate)) + 28800000
+
+      if (isSick) {
+        this.saveDrug(0)
+      }
+      else {
+        this.stopDrug = true
+        this.stopForm = {
+          stopDate: '当天',
+          sampleDate: 0
+        }
+      }
+    },
+    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;
+    },
+    saveDrug(index) {
+      if (index >= this.drugList.length) {
+        this.$message({
+          message: '保存成功',
+          type: 'success'
+        });
+        this.getList()
+        this.drugList = []
+        this.formData.cowID = ''
+        return
+      }
+
+      this.getHaleInfo('wsVeterinary', 'addPrescription', [
+        {
+          "prescriptionNO": this.editCowInfo['处方编号'],
+          "cowID": this.formData.cowID,
+          "prescriptionDate": Date.parse(new Date()),
+          "currFarm": this.$store.state.farmName,
+          "currGroup": this.editCowInfo['当前牛舍'],
+          "bodyTemp": this.formData.bodyTemp,
+          "heartRate": this.formData.heartRate,
+          "breathing": this.formData.breathing,
+          "rumen": this.formData.rumen,
+          "visibleMocus": this.formData.visibleMocus,
+          "mentalState": this.formData.mentalState,
+          "defecationCase": this.formData.defecationCase,
+          "area_FL": this.formData.breastArea_FL,
+          "area_FR": this.formData.breastArea_FR,
+          "area_BL": this.formData.breastArea_BL,
+          "area_BR": this.formData.breastArea_BR,
+          "drugNO": this.drugList[index]['药品编号'] || " ",
+          "drugName": this.drugList[index]['药品名称'] || " ",
+          "drugAmount": this.drugList[index]['剂量'] || " ",
+          "treatMethod": this.drugList[index]['使用方法'] || " ",
+          "doctorAdvice": this.editCowInfo['兽医'],
+          "operators": this.$store.state.userInfo.username,
+          "operatTime": Date.parse(new Date()),
+
+        }, this.editCowInfo['牛号'], this.formData.category, this.formData, name, this.editCowInfo['处方编号']
+      ], 'json').then((data) => {
+        console.log(data)
+        if (data.rtnCode == -1) {
+
+          this.$alert(data.rtnMessage, '提示', {
+            confirmButtonText: '确定',
+            callback: action => {
+              this.formData.cowID = ''
+            }
+          });
+        }
+        else {
+          this.saveDrug(index + 1)
+        }
+      })
+
+    },
+    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['发病日期'],
+        "currFarm": this.$store.state.farmName,
+        "currGroup": row['当前牛舍'],
+        "currCategory": row['当前状态'],
+        "groCode": row['泌乳状态'],
+        "repCode": row['繁殖状态'],
+        "currLact": row['当前胎次'],
+        "category": row['疾病类型'],
+        "name": row['疾病名称'],
+        "symptom": [],
+        "bodyTemp": 2,
+        "isChangeGroup": false,
+        "heartRate": 1,
+        "breathing": 1,
+        "rumen": 1,
+        "visibleMocus": '正常',
+        "mentalState": '正常',
+        "defecationCase": '正常',
+        "area_FL": 0,
+        "area_FR": 0,
+        "area_BL": 0,
+        "area_BR": 0,
+        "breastArea_FL": parseInt(row['发病时左前区'] || 0),
+        "breastArea_FR": parseInt(row['发病时右前区'] || 0),
+        "breastArea_BL": parseInt(row['发病时左后区'] || 0),
+        "breastArea_BR": parseInt(row['发病时右后区'] || 0),
+        "veterinary": this.$store.state.userInfo.username,
+      }
+      var list = []
+      Object.keys(row).forEach(item => {
+        list.push({
+          key: item,
+          value: row[item]
+        })
+      })
+      this.tableData = list
+
+
+      this.getHaleInfo('wsVeterinary', 'getLastPrescription', [
+        this.editCowInfo['牛号'], this.editCowInfo['处方编号']
+      ], 'list', '药品名称').then((data) => {
+        console.log(data)
+        this.drugList = data
+      })
+    },
+    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>

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

@@ -475,6 +475,36 @@ const router = new Router({
                         type: '手持机录入',
                         type: '手持机录入',
                         title: '犊牛登记'
                         title: '犊牛登记'
                     }
                     }
+                },
+                {
+                    path: '/handlePerinatal',
+                    name: 'handlePerinatal',
+                    component: () =>
+                        import ('../pages/HandlePerinatal'),
+                    meta: {
+                        type: '手持机录入',
+                        title: '产前围产'
+                    }
+                },
+                {
+                    path: '/handleDiagnosis',
+                    name: 'handleDiagnosis',
+                    component: () =>
+                        import ('../pages/HandleDiagnosis'),
+                    meta: {
+                        type: '手持机录入',
+                        title: '疾病确诊'
+                    }
+                },
+                {
+                    path: '/handleTreatment',
+                    name: 'handleTreatment',
+                    component: () =>
+                        import ('../pages/HandleTreatment'),
+                    meta: {
+                        type: '手持机录入',
+                        title: '日常治疗'
+                    }
                 }
                 }
             ]
             ]
         },
         },