Forráskód Böngészése

eventRecord Disease

epans 1 éve
szülő
commit
b3e7fe86c9

+ 432 - 2
src/views/basicSettings/DiseaseManagement.vue

@@ -1,7 +1,74 @@
 <template>
  
   <div>
-        1.1版本页面,待开发
+
+
+    <el-card class="box-card">
+      <!-- 搜索区域 -->
+      <div class="search-bx1">
+          <el-input v-model="searchData.name" placeholder="疾病类型"  style="width: 220px;" class="g-mr20" clearable />
+          <el-button type="primary"   @click="form_search">搜索</el-button>
+          <el-button type="primary"   @click="form_clear">重置</el-button>
+          <el-button type="primary"   @click="form_add">添加</el-button>
+           <!-- <el-button type="primary"   @click="form_export">导出</el-button> -->
+      </div>
+
+ 
+      <!-- 表格 -->
+      <el-table   key="0"  :data="tableList"  v-loading="tableLoading" element-loading-text="给我一点时间"    border fit>
+        <el-table-column label="序号"  width="50px" align="center">
+          <template slot-scope="scope">
+            <span>{{ scope.row.id }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="类型名称" min-width="150px" align="center">
+          <template slot-scope="scope">
+            <span>{{ scope.row.name }}</span>
+          </template>
+        </el-table-column>
+    
+         
+ 
+        <!-- <el-table-column  label="状态"  min-width="100px" align="center">
+          <template slot-scope="scope">
+            <el-switch v-model="scope.row.mg_state" active-color="#13ce66" inactive-color="#ff4949" :active-value="1" :inactive-value="0"   />
+          </template>
+        </el-table-column> -->
+
+        <el-table-column label="操作" align="center" width="300" class-name="small-padding fixed-width" fixed="right">
+          <template slot-scope="scope">
+             <!-- 修改按钮 -->
+             <el-button type="primary" size="mini" icon="el-icon-edit" @click="form_edit(scope.row)">修改</el-button>
+             <!-- 删除按钮 -->
+             <el-button type="danger" size="mini" icon="el-icon-delete" @click="form_delete(scope.row)">删除</el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+
+      <!-- 分页区域 -->
+      <el-pagination  @size-change="change_size_page"  @current-change="change_current_page"  :current-page="searchData.page" :page-sizes="[1,5,10,20,30,50]"  :page-size="searchData.page_size" layout="total, prev, pager, next" :total="searchData.total"/>
+    </el-card>
+
+
+    <!-- 弹窗 新增or修改 -->
+    <el-dialog  :title="addFormTxt[addFormStatus]" :visible.sync="addFormShow" @close="add_dialog_close" width="50%">
+      <div class="">
+        <el-form  ref="addFormRef"  :rules="addFormRules"  :model="addForm"  label-position="right" label-width="100px"  style="width:50%;margin:0 auto 50px">
+            <el-form-item label="类型名称:" prop="name">
+                <el-input   v-model="addForm.name"  ></el-input>  
+            </el-form-item>
+           
+            
+        </el-form>
+        <div slot="footer" class="dialog-footer">
+          <el-button type="primary" @click="addFormStatus==='create'?add_dialog_save():edit_dialog_save()">确认</el-button>
+          <el-button @click="addFormShow = false">关闭</el-button>
+        </div>
+      </div>
+    </el-dialog>
+
+ 
+    
   </div>
 
 
@@ -20,17 +87,380 @@ export default {
     return {
 
  
+
+      //接口 - 获取 - 表格
+      url_get_table:'/api/v1/ops/base_setting/category_table/list',
+      //接口 - 新增 - 表格
+      url_add_table:'/api/v1/ops/base_setting/category_table/add',  
+      //接口 - 修改 - 表格
+      url_edit_table:'/api/v1/ops/base_setting/category_table/update', 
+      //接口 - 删除 - 表格
+      url_delete_table:'/api/v1/ops/base_setting/category_table/is_show', 
+      
+      //接口 - 下拉框 列表 
+      url_get_select1:'/role/getAll',
+
+      //按钮权限
+      isButtonEdit:false,
+
+      //获取 - 表格数据 - 参数
+      searchData:{
+        name: "",
+        category_type:3, //工单发1,疾病发3
+        page: 1,  //页码
+        page_size: 10,   //每页数量
+        total:0,  //总页数
+        pastureId: ""
+      },
+      tableLoading: false,
+      //表格内容
+      tableList:[
+        //  { username:"admin", id:100, date:'2023-12-01',email:'测试信息1123',roleList:[2,3] },
+        // { username:"epans", id:200, date:'2023-12-01',email:'测试信息1123',roleList:[] },
+        // { username:"derek", id:300, date:'2023-12-01',email:'测试信息1123' },
+        // { username:"admin", id:100, date:'2023-12-01',email:'测试信息1123' },
+        // { username:"epans", id:200, date:'2023-12-01',email:'测试信息1123' },
+        // { username:"derek", id:300, date:'2023-12-01',email:'测试信息1123' },
+        // { username:"admin", id:100, date:'2023-12-01',email:'测试信息1123' },
+        // { username:"epans", id:200, date:'2023-12-01',email:'测试信息1123' },
+        // { username:"derek", id:300, date:'2023-12-01',email:'测试信息1123' },
+        // { username:"admin", id:100, date:'2023-12-01',email:'测试信息1123' },
+        // { username:"epans", id:200, date:'2023-12-01',email:'测试信息1123' },
+        // { username:"derek", id:300, date:'2023-12-01',email:'测试信息1123' },
+      ],
+
+
+      
+      pastureList:[
+    
+      ],
+
+    
+
+ 
+
+
+      addFormShow:false,
+      addFormStatus: '',
+      addFormTxt: {  edit: '修改',  create: '新增' },
+      addForm:{
+        name:'',id:'' 
+      },
+
+      addFormRules:{
+        name: [
+          { required: true, message: '类型必填', trigger: 'blur' },
+        ],
+   
+
+      },
+
      
        
     }
   },
   created(){
-  
+      //获取按钮权限
+      // this.get_auto_buttons 
+     
+
+     //获取下拉框
+     // this.get_select_list1()
+
+      //表格 - 初始化 
+      this.get_table_data()
+
+     
 
     
   },
   methods:{
 
+    get_auto_buttons() {
+      // 编辑
+      const isButtonEdit = checkButtons(this.$store.state.buttonsList, "用户管理编辑")
+      this.isButtonEdit = isButtonEdit
+      console.log('this.isButtonEdit==========',this.isButtonEdit)
+    },
+    
+    //获取 下拉框
+    get_select_list1(){
+        var me = this
+        ajaxDataGet(me.url_get_select1, {"roleName": "",  "page": 1,   "page_size": 1000}).then(e => {
+          console.log("下拉框1:",e)
+
+          //打印请求成功结果
+          if(e.data == null || e.data == undefined ||e.data.length == 0   ){
+            me.roleList = []
+          } else {
+            me.roleList = e.data
+          }
+
+         
+  
+        })
+
+
+        ajaxDataGet('/authdata/pasture', {  "page": 1,   "page_size": 1000}).then(e => {
+          console.log("牧场下拉框1:",e)
+
+          //打印请求成功结果
+          if(e.data == null || e.data == undefined ||e.data.length == 0   ){
+            me.pastureList = []
+          } else {
+            me.pastureList = e.data
+          }
+  
+        })
+
+    
+    },
+
+    
+    //获取 表格
+    get_table_data() {
+ 
+     var me = this
+
+     me.tableLoading = true
+     console.log("searchData======>", me.searchData)
+
+      var send_url = me.url_get_table + '?page=' + me.searchData.page +  '&page_size=' + me.searchData.page_size
+
+      ajaxDataPost(send_url,  me.searchData).then(e => {
+        console.log("表格请求结果:",e)
+          //打印请求成功结果
+          if(e.code == 200 ){
+            me.tableList = e.data.list
+            me.searchData.total = e.data.total;	// 总数
+            me.searchData.page = e.data.page;	//页码
+            me.searchData.page_size = e.data.page_size;	//每页数量
+           
+          } else {
+            me.$message({ type: 'error', message: '请求表格列表失败!' + e.msg, duration: 2000 })
+          }
+
+          setTimeout(() => {
+            me.tableLoading = false
+          }, 100)
+  
+        })
+
+       
+    },
+    //搜索 查询表格
+    form_search(){
+      var me = this
+      console.log('请求表格列表searchData',me.searchData)
+      me.get_table_data()
+
+    },
+
+    //重置 表格
+    form_clear(){
+      var me = this
+      me.searchData.name = ""
+      me.get_table_data()
+    },
+
+    //监听 page_size 改变的事件
+    change_size_page(item){
+      console.log(item)
+     // this.searchData.page_size = item
+      //  this.getUserList()
+    },
+
+    //监听 page 改变的事件
+    change_current_page(item){
+      console.log(item)
+       this.searchData.page = item
+       this.get_table_data()
+    },
+
+    //清空弹窗表单信息
+    reset_form(){
+      this.addForm.name = ''
+    },
+
+    //新增
+    form_add() {
+      this.reset_form()
+      this.addFormStatus = 'create'
+      this.addFormShow = true
+      this.$nextTick(() => {
+        this.$refs['addFormRef'].clearValidate()
+      })
+    },
+
+    //编辑
+    form_edit(row) {
+      console.log('行内容row=========', row)
+      //编辑行内容赋值
+      this.addForm = Object.assign({}, row)  
+      this.addFormStatus = 'edit'
+      this.addFormShow = true
+      this.$nextTick(() => {
+        this.$refs['addFormRef'].clearValidate()
+      })
+    },
+
+
+    //新增关闭
+    add_dialog_close(){
+       //内容重置
+       this.$refs['addFormRef'].resetFields()
+    },
+
+    //新增 保存
+    add_dialog_save() {
+      var me = this
+      this.$refs['addFormRef'].validate(valid => {
+        //验证成功
+        if (valid) {
+          //发起请求
+          var send_data = {
+              "name": me.addForm.name,
+              "category_type":3  //0 无效 3 疾病类型
+          }
+          console.log("弹窗参数:", send_data)
+
+          //关闭弹窗
+          // me.addFormShow = false
+         //加载 - 发送新增保存
+           ajaxDataPost(me.url_add_table, send_data).then(e => {
+                console.log("新增结果:",e)
+                //打印请求成功结果
+                if(e.code == 200  ){
+                  me.$message({ type: 'success', message: '新增成功!'  , duration: 2000 })
+                  //关闭弹窗
+                  me.addFormShow = false
+                  me.get_table_data()
+                } else {
+                  me.$message({ type: 'error', message: '新增失败!' + e.msg, duration: 2000 })
+                }
+            })
+         
+        }
+      })
+    },
+    //编辑 保存
+    edit_dialog_save(){
+      var me = this
+      this.$refs['addFormRef'].validate(valid => {
+        //验证成功
+        if (valid) {
+          //发起请求
+          var send_data = {
+              "name": me.addForm.name,
+              "id": me.addForm.id,
+          }
+          console.log("弹窗参数:", send_data)
+
+          //关闭弹窗
+          // me.addFormShow = false
+         //加载 - 发送新增保存
+         ajaxDataPut(me.url_edit_table, send_data).then(e => {
+                console.log("编辑结果:",e)
+                //打印请求成功结果
+                if(e.code == 200  ){
+                  me.$message({ type: 'success', message: '编辑成功!'  , duration: 2000 })
+                  //关闭弹窗
+                  me.addFormShow = false
+                  me.get_table_data()
+                } else {
+                  me.$message({ type: 'error', message: '编辑失败!' + e.msg, duration: 2000 })
+                }
+            })
+         
+        }
+      })
+    },
+
+
+    
+    
+
+
+
+    form_delete(row) {
+      var me = this
+
+       me.$confirm('此操作将永久删除该文件, 是否继续?', '提示', {
+          confirmButtonText: '确定',
+          cancelButtonText: '取消',
+          type: 'warning'
+        }).then(() => {
+            console.log("删除的ID参数:", row.id)
+
+            var send_data = { 
+              "category_type":3,   // 1 工单类型  2 栏舍组 3 疾病
+              "name": row.name,
+              "id": row.id,
+          }
+            //加载 - 发送新增保存
+            ajaxDataPost(me.url_delete_table, send_data).then(e => {
+                console.log("编辑结果:",e)
+                //打印请求成功结果
+                if(e.code == 200  ){
+                  me.$message({ type: 'success',  message: '删除成功!'  });
+                  me.get_table_data()
+                } else {
+                  me.$message({ type: 'error', message: '删除失败!' + e.msg, duration: 2000 })
+                }
+            })
+
+        
+ 
+          
+        }).catch(() => {
+          me.$message({
+            type: 'info',
+            message: '已取消删除'
+          });          
+        });
+
+
+       
+    },
+
+ 
+    form_export() {
+    //获取请求表格数据的参数
+    //this.download.getdataListParm.parammaps = this.tableObj.getdataListParm.parammaps
+    //请求表格
+    // GetDataByName(this.download.getdataListParm).then(response => {
+    //     if (response.data.list !== null) {
+    //       this.download.list = response.data.list
+    //     } else {
+    //       this.download.list = []
+    //     }
+    //     var excelDatas = [
+    //       {
+    //         tHeader: ['表头1', '表头2', '表头3', '表头4',],
+    //         filterVal: ['title1', 'title2', 'title3', 'title4'],
+    //         tableDatas: this.download.list,
+    //         sheetName: 'Sheet1'
+    //       }
+    //     ]
+    //     json2excel(excelDatas, '表格大标题', true, 'xlsx')
+    // })
+
+    var excelDatas = [
+        {
+            tHeader: ['表头1', '表头2', '表头3', '表头4',],
+            filterVal: ['title1', 'title2', 'title3', 'title4'],
+            tableDatas: [ 
+                {title1: "内容1",title2: "内容2",title3: "内容3",title4: "内容4"},
+                {title1: "内容11",title2: "内容22",title3: "内容32",title4: "内容44"},
+                {title1: "内容111",title2: "内容222",title3: "内容333",title4: "内容444"},
+            ],
+            sheetName: 'Sheet1'
+        }
+    ]
+    json2excel(excelDatas, '表格大标题', true, 'xlsx')
+}
+
+     
 
   }
 }

+ 22 - 7
src/views/cowManagement/EventRecord.vue

@@ -303,7 +303,7 @@ export default {
       addFormStatus: '',
       addFormTxt: {  edit: '修改',  create: '新增' },
       addForm:{
-        calf_code:'',id:'' ,event_kind:undefined
+        calf_code:'',id:'' ,event_kind:undefined,medication:'',remark:''
       },
 
       addFormRules:{
@@ -354,12 +354,12 @@ export default {
 
       //  下拉框 - 疾病 
       diseaseNameList: [
-        {id: 1, name: "腹泻"}, 
-        {id: 2, name: "便秘"}, 
-        {id: 3, name: "下痢"},
-        {id: 4, name: "脐炎"},
-        {id: 5, name: "肺炎"},
-        {id: 6, name: "软瘫衰弱"}
+        // {id: 1, name: "腹泻"}, 
+        // {id: 2, name: "便秘"}, 
+        // {id: 3, name: "下痢"},
+        // {id: 4, name: "脐炎"},
+        // {id: 5, name: "肺炎"},
+        // {id: 6, name: "软瘫衰弱"}
       ], 
 
       //  下拉框 - 栏舍
@@ -417,6 +417,21 @@ export default {
         })
 
 
+        ajaxDataPost('/api/v1/ops/base_setting/category_table/list?page=1&page_size=10000', {category_type:3}).then(e => {
+          console.log("疾病下拉框:",e)
+
+          if(e.code == 200 ){
+            me.diseaseNameList = e.data.list
+           
+          } else {
+            me.diseaseNameList = []
+          }
+        })
+
+
+        
+
+
 
   
 

+ 924 - 0
src/views/cowManagement/EventRecord10.vue

@@ -0,0 +1,924 @@
+<template>
+ 
+  <div>
+
+
+    <el-card class="box-card">
+      <!-- 搜索区域 -->
+      <div class="search-bx1">
+          <el-select v-model="searchData.source" filterable placeholder="操作方式" class="g-mr20" style="width: 180px;" clearable>
+                <el-option v-for="item in sourceList" :key="item.id" :label="item.name" :value="item.id" />
+          </el-select>
+
+       
+
+          <el-input v-model="searchData.operation_user" placeholder="操作人"  style="width: 220px;" class="g-mr20" clearable />
+
+          <el-date-picker v-model="searchData.inputDatetime1" class="g-mr20" type="daterange" range-separator="至" start-placeholder="操作日期" end-placeholder="操作日期" style="width: 250px;" />
+
+
+          <el-button type="primary"   @click="form_search">搜索</el-button>
+          <el-button type="primary"   @click="form_clear">重置</el-button>
+          <el-button type="primary"  v-if="isButtonEdit"  @click="form_add">添加</el-button>
+           <!-- <el-button type="primary"   @click="form_export">导出</el-button> -->
+      </div>
+
+ 
+      <!-- 表格 -->
+      <el-table   key="0"  :data="tableList"  v-loading="tableLoading" element-loading-text="给我一点时间"    border fit>
+          <el-table-column label="序号"  width="50px" align="center">
+            <template slot-scope="scope">
+              <span>{{ scope.row.id }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="牛号" min-width="120px" align="center" show-overflow-tooltip>
+            <template slot-scope="scope">
+              <span>{{ scope.row.calf_code  }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="犊牛类型" min-width="120px" align="center" show-overflow-tooltip>
+            <template slot-scope="scope">
+              <span>{{ scope.row.calf_category_name  }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="事件类型" min-width="120px" align="center" show-overflow-tooltip>
+            <template slot-scope="scope">
+              <span v-if="scope.row.event_kind == 1">称重</span>
+              <span v-if="scope.row.event_kind == 2">饲喂</span>
+              <span v-if="scope.row.event_kind == 3">粪便情况</span>
+              <span v-if="scope.row.event_kind == 4">测量体温</span>
+              <span v-if="scope.row.event_kind == 5">测量心跳</span>
+              <span v-if="scope.row.event_kind == 6">测量呼吸</span>
+              <span v-if="scope.row.event_kind == 7">疾病</span>
+              <span v-if="scope.row.event_kind == 8">病愈</span>
+              <span v-if="scope.row.event_kind == 9">去角</span>
+              <span v-if="scope.row.event_kind == 10">去副乳</span>
+              <span v-if="scope.row.event_kind == 11">转栏</span>
+              <span v-if="scope.row.event_kind == 12">出栏</span>
+              <span v-if="scope.row.event_kind == 13">死亡</span>
+
+            </template>
+          </el-table-column>
+          <el-table-column label="事件描述" min-width="120px" align="center" show-overflow-tooltip>
+            <template slot-scope="scope">
+              <span>{{ scope.row.description  }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="备注" min-width="120px" align="center" show-overflow-tooltip>
+            <template slot-scope="scope">
+              <span>{{ scope.row.remark  }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="来源" min-width="120px" align="center" show-overflow-tooltip>
+            <template slot-scope="scope">
+              <span v-if="scope.row.source == 2">录入</span>
+              <span v-if="scope.row.source == 1">导入</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="操作人" min-width="120px" align="center" show-overflow-tooltip>
+            <template slot-scope="scope">
+              <span>{{ scope.row.operation_user  }}</span>
+            </template>
+          </el-table-column>
+
+          <el-table-column label="操作日期" min-width="120px" align="center" show-overflow-tooltip>
+            <template slot-scope="scope">
+              <span>{{ scope.row.operation_time  }}</span>
+            </template>
+          </el-table-column>
+         
+  
+
+        <el-table-column label="操作" align="center" width="300" class-name="small-padding fixed-width" fixed="right">
+          <template slot-scope="scope">
+             <!-- 修改按钮 -->
+             <el-button type="primary" v-if="isButtonEdit" size="mini" icon="el-icon-edit" @click="form_edit(scope.row)">修改</el-button>
+             <!-- 删除按钮 -->
+             <el-button type="danger" v-if="isButtonEdit" size="mini" icon="el-icon-delete" @click="form_delete(scope.row)">删除</el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+
+      <!-- 分页区域 -->
+      <el-pagination  @size-change="change_size_page"  @current-change="change_current_page"  :current-page="searchData.page" :page-sizes="[1,5,10,20,30,50]"  :page-size="searchData.page_size" layout="total, prev, pager, next" :total="searchData.total"/>
+    </el-card>
+
+
+    <!-- 弹窗 新增or修改 -->
+    <el-dialog  :title="addFormTxt[addFormStatus]" :visible.sync="addFormShow" @close="add_dialog_close" width="50%">
+      <div class="">
+        <el-form  ref="addFormRef"  :rules="addFormRules"  :model="addForm"  label-position="right" label-width="170px"  style="width:50%;margin:0 auto 50px">
+             
+
+            <el-row>
+                <el-form-item label="牛号:" prop="calf_code">
+                  <el-select ref="calf_code" v-model="addForm.calf_code" filterable placeholder="请选择" style="width: 100%;"  @change = "change_cow" :disabled="addFormStatus=='edit'" >
+                    <el-option v-for="item in cowNameList" :key="item.calf_code" :label="item.calf_code" :value="item.calf_code" />
+                  </el-select>
+                </el-form-item>
+            
+                <el-form-item label="犊牛类型:" prop="calf_category_name">
+                  <el-input ref="calf_category_name" v-model="addForm.calf_category_name"    disabled />
+                </el-form-item> 
+          
+                <el-form-item label="事件类型:" prop="event_kind">
+                  <el-select ref="event_kind" v-model="addForm.event_kind" filterable placeholder="请选择"  style="width: 100%;"  :disabled="addFormStatus=='edit'" >
+                    <el-option v-for="item in eventNameList" :key="item.id" :label="item.name" :value="item.id"  />
+                  </el-select>
+                </el-form-item>
+   
+            </el-row>
+
+             <!-- 1 称重 2 饲喂 3 粪便情况 4 测量体温 5 测量心跳 6 测量呼吸 7 疾病 8 病愈 9 去角 10 去副乳 11 转栏 12 出栏 13 死亡 -->
+             <!-- 称重 -->
+            <el-row   v-if="addForm.event_kind == 1" >
+               <el-form-item label="体重:" prop="weight">
+                  <el-input ref="weight" v-model="addForm.weight"   />
+                </el-form-item> 
+            </el-row>
+            <!-- 饲喂 -->
+            <el-row   v-if="addForm.event_kind == 2">
+                <el-form-item label="一班进食量:" prop="first_class_food_number"  >
+                  <el-input ref="first_class_food_number" v-model="addForm.first_class_food_number"   />
+                </el-form-item> 
+                <el-form-item label="二班进食量:" prop="second_class_food_number" v-if="class_num == 2 || class_num == 3 || class_num == 4">
+                  <el-input ref="second_class_food_number" v-model="addForm.second_class_food_number"   />
+                </el-form-item> 
+                <el-form-item label="三班进食量:" prop="third_class_food_number" v-if="class_num == 3 || class_num == 4 ">
+                  <el-input ref="third_class_food_number" v-model="addForm.third_class_food_number"  />
+                </el-form-item> 
+                <el-form-item label="四班进食量:" prop="fourth_class_food_number" v-if="class_num == 4">
+                  <el-input ref="fourth_class_food_number" v-model="addForm.fourth_class_food_number"  />
+                </el-form-item> 
+            </el-row>
+            <!-- 粪便情况 -->
+            <el-row   v-if="addForm.event_kind == 3">
+                <el-form-item label="粪便评分:" prop="fecal_score">
+                  <el-select ref="fecal_score" v-model="addForm.fecal_score" filterable placeholder="请选择"  style="width: 100%;"  >
+                    <el-option v-for="item in scoreNameList" :key="item.id" :label="item.name" :value="item.id" />
+                  </el-select>
+                </el-form-item>
+            </el-row>
+            <!-- 测量体温 -->
+            <el-row   v-if="addForm.event_kind == 4" >
+               <el-form-item label="体温(℃):" prop="temp">
+                  <el-input ref="temp" v-model="addForm.temp"   />
+                </el-form-item> 
+            </el-row>
+            <!-- 测量心跳 -->
+            <el-row   v-if="addForm.event_kind == 5" >
+               <el-form-item label="心跳频率(次/分钟):" prop="heartbeat">
+                  <el-input ref="heartbeat" v-model="addForm.heartbeat"   />
+                </el-form-item> 
+            </el-row>
+            <!-- 测量呼吸 -->
+            <el-row   v-if="addForm.event_kind == 6" >
+               <el-form-item label="呼吸频率(次/分钟):" prop="breathe">
+                  <el-input ref="breathe" v-model="addForm.breathe"   />
+                </el-form-item> 
+            </el-row>
+            <!-- 疾病 -->
+            <el-row   v-if="addForm.event_kind == 7" >
+               <el-form-item label="疾病名称:" prop="diseased_type">
+                  <el-select ref="diseased_type" v-model="addForm.diseased_type" filterable placeholder="请选择"  style="width: 100%;"  >
+                    <el-option v-for="item in diseaseNameList" :key="item.id" :label="item.name" :value="item.id" />
+                  </el-select>
+                </el-form-item>
+                <el-form-item label="用药:" prop="medication">
+                  <el-input ref="medication" v-model="addForm.medication"   />
+                </el-form-item> 
+            </el-row>
+            <!-- 转投栏舍 -->
+            <el-row   v-if="addForm.event_kind == 11" >
+                <el-form-item label="原栏舍:" prop="original_barn_name">
+                  <el-input ref="original_barn_name" v-model="addForm.original_barn_name"   disabled/>
+                </el-form-item> 
+                <el-form-item label="转投栏舍:" prop="new_barn_id">
+                  <el-select ref="new_barn_id" v-model="addForm.new_barn_id" filterable placeholder="请选择"  style="width: 100%;"  @change = "change_cowshed" >
+                    <el-option v-for="item in cowshedList" :key="item.id" :label="item.name" :value="item.id" />
+                  </el-select>
+                </el-form-item>
+            </el-row>
+            <!-- 死亡 -->
+            <el-row   v-if="addForm.event_kind == 13" >
+               <el-form-item label="死亡原因:" prop="reason">
+                  <el-input ref="reason" v-model="addForm.reason"   />
+                </el-form-item> 
+            </el-row>
+
+            <el-row  >
+                <el-form-item label="备注:" prop="remark">
+                  <el-input ref="remark" v-model="addForm.remark"   />
+                </el-form-item>
+            </el-row>
+
+ 
+           
+            
+        </el-form>
+        <div slot="footer" class="dialog-footer">
+          <el-button type="primary" @click="addFormStatus==='create'?add_dialog_save():edit_dialog_save()">确认</el-button>
+          <el-button @click="addFormShow = false">关闭</el-button>
+        </div>
+      </div>
+    </el-dialog>
+
+ 
+    
+  </div>
+
+
+</template> 
+
+<script>
+import {  ajaxDataGet, ajaxDataPost, ajaxDataPut, ajaxDataDelete, checkButtons} from '@/api/common'
+import { parseTime, json2excel } from '@/utils/index.js'
+export default {
+  data() {
+
+
+    
+ 
+  
+    return {
+
+ 
+
+      //接口 - 获取 - 表格
+      url_get_table:'/api/v1/ops/event/list',
+      //接口 - 新增 - 表格
+      url_add_table:'/api/v1/ops/event/add',  
+      //接口 - 修改 - 表格
+      url_edit_table:'/api/v1/ops/event/update', 
+      //接口 - 删除 - 表格
+      url_delete_table:'/api/v1/ops/event', 
+      
+      //接口 - 下拉框 列表 
+      url_get_select1:'/role/getAll',
+
+      //按钮权限
+      isButtonEdit:false,
+
+      //获取 - 表格数据 - 参数
+      searchData:{
+        operation_user: "",
+        inputDatetime1:"",
+        min_operation_time:"",
+        min_operation_time:"",
+        source:undefined,
+        page: 1,  //页码
+        page_size: 10,   //每页数量
+        total:0,  //总页数
+        pastureId: ""
+      },
+      tableLoading: false,
+      //表格内容
+      tableList:[
+        //  { username:"admin", id:100, date:'2023-12-01',email:'测试信息1123',roleList:[2,3] },
+        // { username:"epans", id:200, date:'2023-12-01',email:'测试信息1123',roleList:[] },
+        // { username:"derek", id:300, date:'2023-12-01',email:'测试信息1123' },
+        // { username:"admin", id:100, date:'2023-12-01',email:'测试信息1123' },
+        // { username:"epans", id:200, date:'2023-12-01',email:'测试信息1123' },
+        // { username:"derek", id:300, date:'2023-12-01',email:'测试信息1123' },
+        // { username:"admin", id:100, date:'2023-12-01',email:'测试信息1123' },
+        // { username:"epans", id:200, date:'2023-12-01',email:'测试信息1123' },
+        // { username:"derek", id:300, date:'2023-12-01',email:'测试信息1123' },
+        // { username:"admin", id:100, date:'2023-12-01',email:'测试信息1123' },
+        // { username:"epans", id:200, date:'2023-12-01',email:'测试信息1123' },
+        // { username:"derek", id:300, date:'2023-12-01',email:'测试信息1123' },
+      ],
+
+
+      
+      pastureList:[
+    
+      ],
+
+    
+
+ 
+
+
+      addFormShow:false,
+      addFormStatus: '',
+      addFormTxt: {  edit: '修改',  create: '新增' },
+      addForm:{
+        calf_code:'',id:'' ,event_kind:undefined
+      },
+
+      addFormRules:{
+        calf_code: [ { required: true, message: '牛号必填', trigger: 'blur' },  ],
+        event_kind: [ { required: true, message: '事件类型必选', trigger: 'blur' },  ],
+
+      },
+
+      //  下拉框 - 操作方式 
+      sourceList: [
+        {id: 1, name: "导入"}, 
+        {id: 2, name: "录入"},
+     
+      ], 
+
+      //  下拉框 - 犊牛类型 
+      cowNameList: [
+    
+      ], 
+
+
+      //  下拉框 - 事件类型 
+      eventNameList: [
+        {id: 1, name: "称重"}, 
+        {id: 2, name: "饲喂"}, 
+        {id: 3, name: "粪便情况"},
+        {id: 4, name: "测量体温"},
+        {id: 5, name: "测量心跳"},
+        {id: 6, name: "测量呼吸"},
+        {id: 7, name: "疾病"},
+        {id: 8, name: "痊愈"},
+        {id: 9, name: "去角"},
+        {id: 10, name: "去副乳"},
+        {id: 11, name: "转投栏舍"},
+        {id: 12, name: "出栏"},
+        {id: 13, name: "死亡"},
+      ], 
+
+
+      //  下拉框 - 粪便评分 
+      scoreNameList: [
+        {id: 5, name: "5分"}, 
+        {id: 4, name: "4分"}, 
+        {id: 3, name: "3分"},
+        {id: 2, name: "2分"},
+        {id: 1, name: "1分"},
+      ], 
+
+      //  下拉框 - 疾病 
+      diseaseNameList: [
+        {id: 1, name: "腹泻"}, 
+        {id: 2, name: "便秘"}, 
+        {id: 3, name: "下痢"},
+        {id: 4, name: "脐炎"},
+        {id: 5, name: "肺炎"},
+        {id: 6, name: "软瘫衰弱"}
+      ], 
+
+      //  下拉框 - 栏舍
+      cowshedList: [
+        // {id: "栏舍组1", name: "栏舍组1"}, 
+        // {id: "栏舍组2", name: "栏舍组2"}, 
+        // {id: "栏舍组3", name: "栏舍组3"}
+      ], 
+      class_num:4,
+
+     
+       
+    }
+  },
+  created(){
+      //获取按钮权限
+      const isButtonEdit = checkButtons(this.$store.state.buttonsList, "事件记录编辑")
+      this.isButtonEdit = isButtonEdit
+      console.log('this.isButtonEdit==========',this.isButtonEdit)
+
+     //获取下拉框
+      this.get_select_list1()
+
+   var me = this
+
+       //表格 - 初始化 
+      setTimeout(function () {
+        me.get_table_data()
+			}, 1000);
+
+     
+      
+
+     
+
+    
+  },
+  methods:{
+
+ 
+    
+    //获取 下拉框
+    get_select_list1(){
+        var me = this
+
+        ajaxDataPost('/api/v1/ops/calf/list?page=1&page_size=10000', {}).then(e => {
+          console.log("牛只下拉框:",e)
+
+          if(e.code == 200 ){
+            me.cowNameList = e.data.list
+           
+          } else {
+            me.cowNameList = []
+          }
+        })
+
+
+
+  
+
+        ajaxDataPost('/api/v1/ops/barn/list?page=1&page_size=1000', {}).then(e => {
+          console.log("栏舍下拉框:",e)
+
+          if(e.code == 200 ){
+            me.cowshedList = e.data.list
+           
+          } else {
+            me.cowshedList = []
+          }
+        })
+
+
+      // 班次数量下拉框
+      ajaxDataGet('/api/v1/ops/calf_feed/enum/list').then(e => {
+        console.log(e)
+        if(e.code === 200){
+          var class_num = e.data.class_list.length
+        } else {
+          var class_num = 4
+        }
+        console.log("class_num========",class_num)
+        me.class_num = class_num
+      })
+
+ 
+
+    
+    },
+
+    
+    //获取 表格
+    get_table_data() {
+ 
+     var me = this
+
+     me.tableLoading = true
+     console.log("searchData======>", me.searchData)
+
+
+     
+      if( me.searchData.source == ""){
+        me.searchData.source = undefined
+      }
+
+      var send_url = me.url_get_table + '?page=' + me.searchData.page +  '&page_size=' + me.searchData.page_size
+
+      ajaxDataPost(send_url,  me.searchData).then(e => {
+        console.log("表格请求结果:",e)
+          //打印请求成功结果
+          if(e.code == 200 ){
+            me.tableList = e.data.list
+            me.searchData.total = e.data.total;	// 总数
+            me.searchData.page = e.data.page;	//页码
+            me.searchData.page_size = e.data.page_size;	//每页数量
+           
+          } else {
+            me.$message({ type: 'error', message: '请求表格列表失败!' + e.msg, duration: 2000 })
+          }
+
+          setTimeout(() => {
+            me.tableLoading = false
+          }, 100)
+  
+        })
+
+       
+    },
+    //搜索 查询表格
+    form_search(){
+      var me = this
+      console.log('请求表格列表searchData',me.searchData)
+      if (me.searchData.inputDatetime1 !== '' && me.searchData.inputDatetime1 !== null) {
+          me.searchData.min_operation_time = parseTime(me.searchData.inputDatetime1[0], '{y}-{m}-{d}')
+          me.searchData.max_operation_time = parseTime(me.searchData.inputDatetime1[1], '{y}-{m}-{d}')
+        } else {
+          me.searchData.inputDatetime1 = ''
+          me.searchData.min_operation_time = ''
+          me.searchData.max_operation_time = ''
+        }
+      me.get_table_data()
+
+    },
+
+    //重置 表格
+    form_clear(){
+      var me = this
+      me.searchData.operation_user = ""
+      me.searchData.inputDatetime1 = ""
+      me.searchData.min_operation_time = ""
+      me.searchData.min_operation_time = ""
+      me.searchData.source = undefined
+      me.searchData.page = 1
+      me.searchData.page_size = 10
+
+    
+
+      me.get_table_data()
+    },
+
+    //监听 page_size 改变的事件
+    change_size_page(item){
+      console.log(item)
+     // this.searchData.page_size = item
+      //  this.getUserList()
+    },
+
+    //监听 page 改变的事件
+    change_current_page(item){
+      console.log(item)
+       this.searchData.page = item
+       this.get_table_data()
+    },
+
+    //清空弹窗表单信息
+    reset_form(){
+      this.addForm.calf_code = ''
+      this.addForm.id = ''
+      this.addForm.event_kind = undefined
+      this.addForm.remark = ''
+
+ 
+    },
+
+    //监听 - 更改牛号
+    change_cow(value){
+      var me = this 
+      console.log("更改牛号Id",value)
+      var item  = me.cowNameList.find(obj => obj.calf_code == value)
+      console.log("更改牛号当前的内容",item)
+      me.addForm.calf_code = item.calf_code
+      me.addForm.calf_category_id = item.calf_category_id
+      me.addForm.calf_category_name = item.calf_category_name
+      me.addForm.original_barn_id = item.barn_id
+      me.addForm.original_barn_name = item.barn_name
+          
+    },
+     //监听 - 更改栏舍
+    change_cowshed(value){
+      var me = this 
+      console.log("更改栏舍Id",value)
+      var item  = me.cowshedList.find(obj => obj.id == value)
+      console.log("更改栏舍当前的内容",item)
+  
+      
+      me.addForm.new_barn_string = item.name
+          
+    },
+
+    //新增
+    form_add() {
+      this.reset_form()
+      this.addFormStatus = 'create'
+      this.addFormShow = true
+      this.$nextTick(() => {
+        this.$refs['addFormRef'].clearValidate()
+      })
+    },
+
+    //编辑
+    form_edit(row) {
+      console.log('行内容row=========', row)
+      if(row.message && row.message !== ""){
+        var messageTxt = JSON.parse(row.message)
+        //编辑行内容赋值
+        this.addForm  = Object.assign({}, row ,messageTxt)  
+      } else {
+        this.addForm  = Object.assign({}, row)  
+      }
+ 
+      
+
+    
+
+      console.log("this.addForm=========",this.addForm)
+      this.addFormStatus = 'edit'
+      this.addFormShow = true
+      this.$nextTick(() => {
+        this.$refs['addFormRef'].clearValidate()
+      })
+    },
+
+
+    //新增关闭
+    add_dialog_close(){
+       //内容重置
+       this.$refs['addFormRef'].resetFields()
+    },
+
+    //新增 保存
+    add_dialog_save() {
+      var me = this
+      this.$refs['addFormRef'].validate(valid => {
+        //验证成功
+        if (valid) {
+          //发起请求
+          
+          var send_data = {
+              "calf_code": me.addForm.calf_code,
+              "calf_category_id":  me.addForm.calf_category_id,
+              "calf_category_name": me.addForm.calf_category_name,
+              "event_kind":me.addForm.event_kind,
+              "remark": me.addForm.remark,
+              "source": 2,
+              "message": "",
+          }
+          console.log("弹窗参数:", send_data)
+
+          // event_kind 1 称重 2 饲喂 3 粪便情况 4 测量体温 5 测量心跳 6 测量呼吸 7 疾病 8 病愈 9 去角 10 去副乳 11 转栏 12 出栏 13 死亡
+          var event_kind = me.addForm.event_kind
+          if(event_kind == 1){
+            var messageTxt = {
+              "weight":  parseFloat(me.addForm.weight)
+            }
+            send_data.message = JSON.stringify(messageTxt)
+          }
+          if(event_kind == 2){
+            var messageTxt = {
+              "first_class_food_number":  parseFloat(me.addForm.first_class_food_number),
+              "second_class_food_number":  parseFloat(me.addForm.second_class_food_number),
+              "third_class_food_number":  parseFloat(me.addForm.third_class_food_number),
+              "fourth_class_food_number":  parseFloat(me.addForm.fourth_class_food_number),
+            }
+            send_data.message = JSON.stringify(messageTxt)
+          }
+
+          if(event_kind == 3){
+            var messageTxt = {
+              "fecal_score":  me.addForm.fecal_score  
+            }
+            send_data.message = JSON.stringify(messageTxt)
+          }
+
+          if(event_kind == 4){
+            var messageTxt = {
+              "temp":   parseFloat(me.addForm.temp)
+            }
+            send_data.message = JSON.stringify(messageTxt)
+          }
+
+          if(event_kind == 5){
+            var messageTxt = {
+              "heartbeat":  parseFloat(me.addForm.heartbeat)
+            }
+            send_data.message = JSON.stringify(messageTxt)
+          }
+
+          if(event_kind == 6){
+            var messageTxt = {
+              "breathe":  parseFloat(me.addForm.breathe)
+            }
+            send_data.message = JSON.stringify(messageTxt)
+          }
+
+          if(event_kind == 7){
+            var messageTxt = {
+              "diseased_type":  me.addForm.diseased_type,
+              "medication":  me.addForm.medication,
+            }
+            send_data.message = JSON.stringify(messageTxt)
+          }
+
+          if(event_kind == 11){
+            var messageTxt = {
+              "original_barn_id":   parseFloat(me.addForm.original_barn_id),
+              "original_barn_name":  me.addForm.original_barn_name,
+              "new_barn_id":   parseFloat(me.addForm.new_barn_id),
+              "new_barn_string":  me.addForm.new_barn_string,
+            }
+            send_data.message = JSON.stringify(messageTxt)
+          }
+
+          
+          if(event_kind == 13){
+            var messageTxt = {
+              "reason":  me.addForm.reason
+            }
+            send_data.message = JSON.stringify(messageTxt)
+          }
+
+      
+ 
+
+          //关闭弹窗
+          // me.addFormShow = false
+         //加载 - 发送新增保存
+           ajaxDataPost(me.url_add_table, send_data).then(e => {
+                console.log("新增结果:",e)
+                //打印请求成功结果
+                if(e.code == 200  ){
+                  me.$message({ type: 'success', message: '新增成功!'  , duration: 2000 })
+                  //关闭弹窗
+                  me.addFormShow = false
+                  me.get_table_data()
+                } else {
+                  me.$message({ type: 'error', message: '新增失败!' + e.msg, duration: 2000 })
+                }
+            })
+         
+        }
+      })
+    },
+    //编辑 保存
+    edit_dialog_save(){
+      var me = this
+      this.$refs['addFormRef'].validate(valid => {
+        //验证成功
+        if (valid) {
+          //发起请求
+        
+          
+          var send_data = {
+             "id": me.addForm.id,
+              "calf_code": me.addForm.calf_code,
+              "calf_category_id":  me.addForm.calf_category_id,
+              "calf_category_name": me.addForm.calf_category_name,
+              "event_kind":me.addForm.event_kind,
+              "remark": me.addForm.remark,
+              "source": 2,
+              "message": "",
+          }
+          console.log("弹窗参数:", send_data)
+
+          // event_kind 1 称重 2 饲喂 3 粪便情况 4 测量体温 5 测量心跳 6 测量呼吸 7 疾病 8 病愈 9 去角 10 去副乳 11 转栏 12 出栏 13 死亡
+          var event_kind = me.addForm.event_kind
+          if(event_kind == 1){
+            var messageTxt = {
+              "weight":  parseFloat(me.addForm.weight)
+            }
+            send_data.message = JSON.stringify(messageTxt)
+          }
+          if(event_kind == 2){
+            var messageTxt = {
+              "first_class_food_number":  parseFloat(me.addForm.first_class_food_number),
+              "second_class_food_number":  parseFloat(me.addForm.second_class_food_number),
+              "third_class_food_number":  parseFloat(me.addForm.third_class_food_number),
+              "fourth_class_food_number":  parseFloat(me.addForm.fourth_class_food_number),
+            }
+            send_data.message = JSON.stringify(messageTxt)
+          }
+
+          if(event_kind == 3){
+            var messageTxt = {
+              "fecal_score":  me.addForm.fecal_score  
+            }
+            send_data.message = JSON.stringify(messageTxt)
+          }
+
+          if(event_kind == 4){
+            var messageTxt = {
+              "temp":   parseFloat(me.addForm.temp)
+            }
+            send_data.message = JSON.stringify(messageTxt)
+          }
+
+          if(event_kind == 5){
+            var messageTxt = {
+              "heartbeat":  parseFloat(me.addForm.heartbeat)
+            }
+            send_data.message = JSON.stringify(messageTxt)
+          }
+
+          if(event_kind == 6){
+            var messageTxt = {
+              "breathe":  parseFloat(me.addForm.breathe)
+            }
+            send_data.message = JSON.stringify(messageTxt)
+          }
+
+          if(event_kind == 7){
+            var messageTxt = {
+              "diseased_type":  me.addForm.diseased_type,
+              "medication":  me.addForm.medication,
+            }
+            send_data.message = JSON.stringify(messageTxt)
+          }
+
+          if(event_kind == 11){
+            var messageTxt = {
+              "original_barn_id":   parseFloat(me.addForm.original_barn_id),
+              "original_barn_name":  me.addForm.original_barn_name,
+              "new_barn_id":   parseFloat(me.addForm.new_barn_id),
+              "new_barn_string":  me.addForm.new_barn_string,
+            }
+            send_data.message = JSON.stringify(messageTxt)
+          }
+
+          
+          if(event_kind == 13){
+            var messageTxt = {
+              "reason":  me.addForm.reason
+            }
+            send_data.message = JSON.stringify(messageTxt)
+          }
+
+      
+          //关闭弹窗
+          // me.addFormShow = false
+         //加载 - 发送新增保存
+         ajaxDataPut(me.url_edit_table, send_data).then(e => {
+                console.log("编辑结果:",e)
+                //打印请求成功结果
+                if(e.code == 200  ){
+                  me.$message({ type: 'success', message: '编辑成功!'  , duration: 2000 })
+                  //关闭弹窗
+                  me.addFormShow = false
+                  me.get_table_data()
+                } else {
+                  me.$message({ type: 'error', message: '编辑失败!' + e.msg, duration: 2000 })
+                }
+            })
+         
+        }
+      })
+    },
+
+
+    
+    
+
+
+
+    form_delete(row) {
+      var me = this
+
+       me.$confirm('是否删除此条内容?', '提示', {
+          confirmButtonText: '确定',
+          cancelButtonText: '取消',
+          type: 'warning'
+        }).then(() => {
+            console.log("删除的ID参数:", row.id)
+            //加载 - 发送新增保存
+            ajaxDataDelete(me.url_delete_table + '/' +row.id, {}).then(e => {
+                console.log("编辑结果:",e)
+                //打印请求成功结果
+                if(e.code == 200  ){
+                  me.$message({ type: 'success',  message: '删除成功!'  });
+                  me.get_table_data()
+                } else {
+                  me.$message({ type: 'error', message: '删除失败!' + e.msg, duration: 2000 })
+                }
+            })
+
+        
+ 
+          
+        }).catch(() => {
+          me.$message({
+            type: 'info',
+            message: '已取消删除'
+          });          
+        });
+
+
+       
+    },
+
+ 
+    form_export() {
+    //获取请求表格数据的参数
+    //this.download.getdataListParm.parammaps = this.tableObj.getdataListParm.parammaps
+    //请求表格
+    // GetDataByName(this.download.getdataListParm).then(response => {
+    //     if (response.data.list !== null) {
+    //       this.download.list = response.data.list
+    //     } else {
+    //       this.download.list = []
+    //     }
+    //     var excelDatas = [
+    //       {
+    //         tHeader: ['表头1', '表头2', '表头3', '表头4',],
+    //         filterVal: ['title1', 'title2', 'title3', 'title4'],
+    //         tableDatas: this.download.list,
+    //         sheetName: 'Sheet1'
+    //       }
+    //     ]
+    //     json2excel(excelDatas, '表格大标题', true, 'xlsx')
+    // })
+
+    var excelDatas = [
+        {
+            tHeader: ['表头1', '表头2', '表头3', '表头4',],
+            filterVal: ['title1', 'title2', 'title3', 'title4'],
+            tableDatas: [ 
+                {title1: "内容1",title2: "内容2",title3: "内容3",title4: "内容4"},
+                {title1: "内容11",title2: "内容22",title3: "内容32",title4: "内容44"},
+                {title1: "内容111",title2: "内容222",title3: "内容333",title4: "内容444"},
+            ],
+            sheetName: 'Sheet1'
+        }
+    ]
+    json2excel(excelDatas, '表格大标题', true, 'xlsx')
+}
+
+     
+
+  }
+}
+</script>
+<!-- 加了scoped,则是仅在此组件里生效 -->
+<style scoped>
+
+</style>

+ 939 - 0
src/views/cowManagement/EventRecord11.vue

@@ -0,0 +1,939 @@
+<template>
+ 
+  <div>
+
+
+    <el-card class="box-card">
+      <!-- 搜索区域 -->
+      <div class="search-bx1">
+          <el-select v-model="searchData.source" filterable placeholder="操作方式" class="g-mr20" style="width: 180px;" clearable>
+                <el-option v-for="item in sourceList" :key="item.id" :label="item.name" :value="item.id" />
+          </el-select>
+
+       
+
+          <el-input v-model="searchData.operation_user" placeholder="操作人"  style="width: 220px;" class="g-mr20" clearable />
+
+          <el-date-picker v-model="searchData.inputDatetime1" class="g-mr20" type="daterange" range-separator="至" start-placeholder="操作日期" end-placeholder="操作日期" style="width: 250px;" />
+
+
+          <el-button type="primary"   @click="form_search">搜索</el-button>
+          <el-button type="primary"   @click="form_clear">重置</el-button>
+          <el-button type="primary"  v-if="isButtonEdit"  @click="form_add">添加</el-button>
+           <!-- <el-button type="primary"   @click="form_export">导出</el-button> -->
+      </div>
+
+ 
+      <!-- 表格 -->
+      <el-table   key="0"  :data="tableList"  v-loading="tableLoading" element-loading-text="给我一点时间"    border fit>
+          <el-table-column label="序号"  width="50px" align="center">
+            <template slot-scope="scope">
+              <span>{{ scope.row.id }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="牛号" min-width="120px" align="center" show-overflow-tooltip>
+            <template slot-scope="scope">
+              <span>{{ scope.row.calf_code  }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="犊牛类型" min-width="120px" align="center" show-overflow-tooltip>
+            <template slot-scope="scope">
+              <span>{{ scope.row.calf_category_name  }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="事件类型" min-width="120px" align="center" show-overflow-tooltip>
+            <template slot-scope="scope">
+              <span v-if="scope.row.event_kind == 1">称重</span>
+              <span v-if="scope.row.event_kind == 2">饲喂</span>
+              <span v-if="scope.row.event_kind == 3">粪便情况</span>
+              <span v-if="scope.row.event_kind == 4">测量体温</span>
+              <span v-if="scope.row.event_kind == 5">测量心跳</span>
+              <span v-if="scope.row.event_kind == 6">测量呼吸</span>
+              <span v-if="scope.row.event_kind == 7">疾病</span>
+              <span v-if="scope.row.event_kind == 8">病愈</span>
+              <span v-if="scope.row.event_kind == 9">去角</span>
+              <span v-if="scope.row.event_kind == 10">去副乳</span>
+              <span v-if="scope.row.event_kind == 11">转栏</span>
+              <span v-if="scope.row.event_kind == 12">出栏</span>
+              <span v-if="scope.row.event_kind == 13">死亡</span>
+
+            </template>
+          </el-table-column>
+          <el-table-column label="事件描述" min-width="120px" align="center" show-overflow-tooltip>
+            <template slot-scope="scope">
+              <span>{{ scope.row.description  }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="备注" min-width="120px" align="center" show-overflow-tooltip>
+            <template slot-scope="scope">
+              <span>{{ scope.row.remark  }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="来源" min-width="120px" align="center" show-overflow-tooltip>
+            <template slot-scope="scope">
+              <span v-if="scope.row.source == 2">录入</span>
+              <span v-if="scope.row.source == 1">导入</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="操作人" min-width="120px" align="center" show-overflow-tooltip>
+            <template slot-scope="scope">
+              <span>{{ scope.row.operation_user  }}</span>
+            </template>
+          </el-table-column>
+
+          <el-table-column label="操作日期" min-width="120px" align="center" show-overflow-tooltip>
+            <template slot-scope="scope">
+              <span>{{ scope.row.operation_time  }}</span>
+            </template>
+          </el-table-column>
+         
+  
+
+        <el-table-column label="操作" align="center" width="300" class-name="small-padding fixed-width" fixed="right">
+          <template slot-scope="scope">
+             <!-- 修改按钮 -->
+             <el-button type="primary" v-if="isButtonEdit" size="mini" icon="el-icon-edit" @click="form_edit(scope.row)">修改</el-button>
+             <!-- 删除按钮 -->
+             <el-button type="danger" v-if="isButtonEdit" size="mini" icon="el-icon-delete" @click="form_delete(scope.row)">删除</el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+
+      <!-- 分页区域 -->
+      <el-pagination  @size-change="change_size_page"  @current-change="change_current_page"  :current-page="searchData.page" :page-sizes="[1,5,10,20,30,50]"  :page-size="searchData.page_size" layout="total, prev, pager, next" :total="searchData.total"/>
+    </el-card>
+
+
+    <!-- 弹窗 新增or修改 -->
+    <el-dialog  :title="addFormTxt[addFormStatus]" :visible.sync="addFormShow" @close="add_dialog_close" width="50%">
+      <div class="">
+        <el-form  ref="addFormRef"  :rules="addFormRules"  :model="addForm"  label-position="right" label-width="170px"  style="width:50%;margin:0 auto 50px">
+             
+
+            <el-row>
+                <el-form-item label="牛号:" prop="calf_code">
+                  <el-select ref="calf_code" v-model="addForm.calf_code" filterable placeholder="请选择" style="width: 100%;"  @change = "change_cow" :disabled="addFormStatus=='edit'" >
+                    <el-option v-for="item in cowNameList" :key="item.calf_code" :label="item.calf_code" :value="item.calf_code" />
+                  </el-select>
+                </el-form-item>
+            
+                <el-form-item label="犊牛类型:" prop="calf_category_name">
+                  <el-input ref="calf_category_name" v-model="addForm.calf_category_name"    disabled />
+                </el-form-item> 
+          
+                <el-form-item label="事件类型:" prop="event_kind">
+                  <el-select ref="event_kind" v-model="addForm.event_kind" filterable placeholder="请选择"  style="width: 100%;"  :disabled="addFormStatus=='edit'" >
+                    <el-option v-for="item in eventNameList" :key="item.id" :label="item.name" :value="item.id"  />
+                  </el-select>
+                </el-form-item>
+   
+            </el-row>
+
+             <!-- 1 称重 2 饲喂 3 粪便情况 4 测量体温 5 测量心跳 6 测量呼吸 7 疾病 8 病愈 9 去角 10 去副乳 11 转栏 12 出栏 13 死亡 -->
+             <!-- 称重 -->
+            <el-row   v-if="addForm.event_kind == 1" >
+               <el-form-item label="体重:" prop="weight">
+                  <el-input ref="weight" v-model="addForm.weight"   />
+                </el-form-item> 
+            </el-row>
+            <!-- 饲喂 -->
+            <el-row   v-if="addForm.event_kind == 2">
+                <el-form-item label="一班进食量:" prop="first_class_food_number"  >
+                  <el-input ref="first_class_food_number" v-model="addForm.first_class_food_number"   />
+                </el-form-item> 
+                <el-form-item label="二班进食量:" prop="second_class_food_number" v-if="class_num == 2 || class_num == 3 || class_num == 4">
+                  <el-input ref="second_class_food_number" v-model="addForm.second_class_food_number"   />
+                </el-form-item> 
+                <el-form-item label="三班进食量:" prop="third_class_food_number" v-if="class_num == 3 || class_num == 4 ">
+                  <el-input ref="third_class_food_number" v-model="addForm.third_class_food_number"  />
+                </el-form-item> 
+                <el-form-item label="四班进食量:" prop="fourth_class_food_number" v-if="class_num == 4">
+                  <el-input ref="fourth_class_food_number" v-model="addForm.fourth_class_food_number"  />
+                </el-form-item> 
+            </el-row>
+            <!-- 粪便情况 -->
+            <el-row   v-if="addForm.event_kind == 3">
+                <el-form-item label="粪便评分:" prop="fecal_score">
+                  <el-select ref="fecal_score" v-model="addForm.fecal_score" filterable placeholder="请选择"  style="width: 100%;"  >
+                    <el-option v-for="item in scoreNameList" :key="item.id" :label="item.name" :value="item.id" />
+                  </el-select>
+                </el-form-item>
+            </el-row>
+            <!-- 测量体温 -->
+            <el-row   v-if="addForm.event_kind == 4" >
+               <el-form-item label="体温(℃):" prop="temp">
+                  <el-input ref="temp" v-model="addForm.temp"   />
+                </el-form-item> 
+            </el-row>
+            <!-- 测量心跳 -->
+            <el-row   v-if="addForm.event_kind == 5" >
+               <el-form-item label="心跳频率(次/分钟):" prop="heartbeat">
+                  <el-input ref="heartbeat" v-model="addForm.heartbeat"   />
+                </el-form-item> 
+            </el-row>
+            <!-- 测量呼吸 -->
+            <el-row   v-if="addForm.event_kind == 6" >
+               <el-form-item label="呼吸频率(次/分钟):" prop="breathe">
+                  <el-input ref="breathe" v-model="addForm.breathe"   />
+                </el-form-item> 
+            </el-row>
+            <!-- 疾病 -->
+            <el-row   v-if="addForm.event_kind == 7" >
+               <el-form-item label="疾病名称:" prop="diseased_type">
+                  <el-select ref="diseased_type" v-model="addForm.diseased_type" filterable placeholder="请选择"  style="width: 100%;"  >
+                    <el-option v-for="item in diseaseNameList" :key="item.id" :label="item.name" :value="item.id" />
+                  </el-select>
+                </el-form-item>
+                <el-form-item label="用药:" prop="medication">
+                  <el-input ref="medication" v-model="addForm.medication"   />
+                </el-form-item> 
+            </el-row>
+            <!-- 转投栏舍 -->
+            <el-row   v-if="addForm.event_kind == 11" >
+                <el-form-item label="原栏舍:" prop="original_barn_name">
+                  <el-input ref="original_barn_name" v-model="addForm.original_barn_name"   disabled/>
+                </el-form-item> 
+                <el-form-item label="转投栏舍:" prop="new_barn_id">
+                  <el-select ref="new_barn_id" v-model="addForm.new_barn_id" filterable placeholder="请选择"  style="width: 100%;"  @change = "change_cowshed" >
+                    <el-option v-for="item in cowshedList" :key="item.id" :label="item.name" :value="item.id" />
+                  </el-select>
+                </el-form-item>
+            </el-row>
+            <!-- 死亡 -->
+            <el-row   v-if="addForm.event_kind == 13" >
+               <el-form-item label="死亡原因:" prop="reason">
+                  <el-input ref="reason" v-model="addForm.reason"   />
+                </el-form-item> 
+            </el-row>
+
+            <el-row  >
+                <el-form-item label="备注:" prop="remark">
+                  <el-input ref="remark" v-model="addForm.remark"   />
+                </el-form-item>
+            </el-row>
+
+ 
+           
+            
+        </el-form>
+        <div slot="footer" class="dialog-footer">
+          <el-button type="primary" @click="addFormStatus==='create'?add_dialog_save():edit_dialog_save()">确认</el-button>
+          <el-button @click="addFormShow = false">关闭</el-button>
+        </div>
+      </div>
+    </el-dialog>
+
+ 
+    
+  </div>
+
+
+</template> 
+
+<script>
+import {  ajaxDataGet, ajaxDataPost, ajaxDataPut, ajaxDataDelete, checkButtons} from '@/api/common'
+import { parseTime, json2excel } from '@/utils/index.js'
+export default {
+  data() {
+
+
+    
+ 
+  
+    return {
+
+ 
+
+      //接口 - 获取 - 表格
+      url_get_table:'/api/v1/ops/event/list',
+      //接口 - 新增 - 表格
+      url_add_table:'/api/v1/ops/event/add',  
+      //接口 - 修改 - 表格
+      url_edit_table:'/api/v1/ops/event/update', 
+      //接口 - 删除 - 表格
+      url_delete_table:'/api/v1/ops/event', 
+      
+      //接口 - 下拉框 列表 
+      url_get_select1:'/role/getAll',
+
+      //按钮权限
+      isButtonEdit:false,
+
+      //获取 - 表格数据 - 参数
+      searchData:{
+        operation_user: "",
+        inputDatetime1:"",
+        min_operation_time:"",
+        min_operation_time:"",
+        source:undefined,
+        page: 1,  //页码
+        page_size: 10,   //每页数量
+        total:0,  //总页数
+        pastureId: ""
+      },
+      tableLoading: false,
+      //表格内容
+      tableList:[
+        //  { username:"admin", id:100, date:'2023-12-01',email:'测试信息1123',roleList:[2,3] },
+        // { username:"epans", id:200, date:'2023-12-01',email:'测试信息1123',roleList:[] },
+        // { username:"derek", id:300, date:'2023-12-01',email:'测试信息1123' },
+        // { username:"admin", id:100, date:'2023-12-01',email:'测试信息1123' },
+        // { username:"epans", id:200, date:'2023-12-01',email:'测试信息1123' },
+        // { username:"derek", id:300, date:'2023-12-01',email:'测试信息1123' },
+        // { username:"admin", id:100, date:'2023-12-01',email:'测试信息1123' },
+        // { username:"epans", id:200, date:'2023-12-01',email:'测试信息1123' },
+        // { username:"derek", id:300, date:'2023-12-01',email:'测试信息1123' },
+        // { username:"admin", id:100, date:'2023-12-01',email:'测试信息1123' },
+        // { username:"epans", id:200, date:'2023-12-01',email:'测试信息1123' },
+        // { username:"derek", id:300, date:'2023-12-01',email:'测试信息1123' },
+      ],
+
+
+      
+      pastureList:[
+    
+      ],
+
+    
+
+ 
+
+
+      addFormShow:false,
+      addFormStatus: '',
+      addFormTxt: {  edit: '修改',  create: '新增' },
+      addForm:{
+        calf_code:'',id:'' ,event_kind:undefined,medication:'',remark:''
+      },
+
+      addFormRules:{
+        calf_code: [ { required: true, message: '牛号必填', trigger: 'blur' },  ],
+        event_kind: [ { required: true, message: '事件类型必选', trigger: 'blur' },  ],
+
+      },
+
+      //  下拉框 - 操作方式 
+      sourceList: [
+        {id: 1, name: "导入"}, 
+        {id: 2, name: "录入"},
+     
+      ], 
+
+      //  下拉框 - 犊牛类型 
+      cowNameList: [
+    
+      ], 
+
+
+      //  下拉框 - 事件类型 
+      eventNameList: [
+        {id: 1, name: "称重"}, 
+        {id: 2, name: "饲喂"}, 
+        {id: 3, name: "粪便情况"},
+        {id: 4, name: "测量体温"},
+        {id: 5, name: "测量心跳"},
+        {id: 6, name: "测量呼吸"},
+        {id: 7, name: "疾病"},
+        {id: 8, name: "痊愈"},
+        {id: 9, name: "去角"},
+        {id: 10, name: "去副乳"},
+        {id: 11, name: "转投栏舍"},
+        {id: 12, name: "出栏"},
+        {id: 13, name: "死亡"},
+      ], 
+
+
+      //  下拉框 - 粪便评分 
+      scoreNameList: [
+        {id: 5, name: "5分"}, 
+        {id: 4, name: "4分"}, 
+        {id: 3, name: "3分"},
+        {id: 2, name: "2分"},
+        {id: 1, name: "1分"},
+      ], 
+
+      //  下拉框 - 疾病 
+      diseaseNameList: [
+        // {id: 1, name: "腹泻"}, 
+        // {id: 2, name: "便秘"}, 
+        // {id: 3, name: "下痢"},
+        // {id: 4, name: "脐炎"},
+        // {id: 5, name: "肺炎"},
+        // {id: 6, name: "软瘫衰弱"}
+      ], 
+
+      //  下拉框 - 栏舍
+      cowshedList: [
+        // {id: "栏舍组1", name: "栏舍组1"}, 
+        // {id: "栏舍组2", name: "栏舍组2"}, 
+        // {id: "栏舍组3", name: "栏舍组3"}
+      ], 
+      class_num:4,
+
+     
+       
+    }
+  },
+  created(){
+      //获取按钮权限
+      const isButtonEdit = checkButtons(this.$store.state.buttonsList, "事件记录编辑")
+      this.isButtonEdit = isButtonEdit
+      console.log('this.isButtonEdit==========',this.isButtonEdit)
+
+     //获取下拉框
+      this.get_select_list1()
+
+   var me = this
+
+       //表格 - 初始化 
+      setTimeout(function () {
+        me.get_table_data()
+			}, 1000);
+
+     
+      
+
+     
+
+    
+  },
+  methods:{
+
+ 
+    
+    //获取 下拉框
+    get_select_list1(){
+        var me = this
+
+        ajaxDataPost('/api/v1/ops/calf/list?page=1&page_size=10000', {}).then(e => {
+          console.log("牛只下拉框:",e)
+
+          if(e.code == 200 ){
+            me.cowNameList = e.data.list
+           
+          } else {
+            me.cowNameList = []
+          }
+        })
+
+
+        ajaxDataPost('/api/v1/ops/base_setting/category_table/list?page=1&page_size=10000', {category_type:3}).then(e => {
+          console.log("疾病下拉框:",e)
+
+          if(e.code == 200 ){
+            me.diseaseNameList = e.data.list
+           
+          } else {
+            me.diseaseNameList = []
+          }
+        })
+
+
+        
+
+
+
+  
+
+        ajaxDataPost('/api/v1/ops/barn/list?page=1&page_size=1000', {}).then(e => {
+          console.log("栏舍下拉框:",e)
+
+          if(e.code == 200 ){
+            me.cowshedList = e.data.list
+           
+          } else {
+            me.cowshedList = []
+          }
+        })
+
+
+      // 班次数量下拉框
+      ajaxDataGet('/api/v1/ops/calf_feed/enum/list').then(e => {
+        console.log(e)
+        if(e.code === 200){
+          var class_num = e.data.class_list.length
+        } else {
+          var class_num = 4
+        }
+        console.log("class_num========",class_num)
+        me.class_num = class_num
+      })
+
+ 
+
+    
+    },
+
+    
+    //获取 表格
+    get_table_data() {
+ 
+     var me = this
+
+     me.tableLoading = true
+     console.log("searchData======>", me.searchData)
+
+
+     
+      if( me.searchData.source == ""){
+        me.searchData.source = undefined
+      }
+
+      var send_url = me.url_get_table + '?page=' + me.searchData.page +  '&page_size=' + me.searchData.page_size
+
+      ajaxDataPost(send_url,  me.searchData).then(e => {
+        console.log("表格请求结果:",e)
+          //打印请求成功结果
+          if(e.code == 200 ){
+            me.tableList = e.data.list
+            me.searchData.total = e.data.total;	// 总数
+            me.searchData.page = e.data.page;	//页码
+            me.searchData.page_size = e.data.page_size;	//每页数量
+           
+          } else {
+            me.$message({ type: 'error', message: '请求表格列表失败!' + e.msg, duration: 2000 })
+          }
+
+          setTimeout(() => {
+            me.tableLoading = false
+          }, 100)
+  
+        })
+
+       
+    },
+    //搜索 查询表格
+    form_search(){
+      var me = this
+      console.log('请求表格列表searchData',me.searchData)
+      if (me.searchData.inputDatetime1 !== '' && me.searchData.inputDatetime1 !== null) {
+          me.searchData.min_operation_time = parseTime(me.searchData.inputDatetime1[0], '{y}-{m}-{d}')
+          me.searchData.max_operation_time = parseTime(me.searchData.inputDatetime1[1], '{y}-{m}-{d}')
+        } else {
+          me.searchData.inputDatetime1 = ''
+          me.searchData.min_operation_time = ''
+          me.searchData.max_operation_time = ''
+        }
+      me.get_table_data()
+
+    },
+
+    //重置 表格
+    form_clear(){
+      var me = this
+      me.searchData.operation_user = ""
+      me.searchData.inputDatetime1 = ""
+      me.searchData.min_operation_time = ""
+      me.searchData.min_operation_time = ""
+      me.searchData.source = undefined
+      me.searchData.page = 1
+      me.searchData.page_size = 10
+
+    
+
+      me.get_table_data()
+    },
+
+    //监听 page_size 改变的事件
+    change_size_page(item){
+      console.log(item)
+     // this.searchData.page_size = item
+      //  this.getUserList()
+    },
+
+    //监听 page 改变的事件
+    change_current_page(item){
+      console.log(item)
+       this.searchData.page = item
+       this.get_table_data()
+    },
+
+    //清空弹窗表单信息
+    reset_form(){
+      this.addForm.calf_code = ''
+      this.addForm.id = ''
+      this.addForm.event_kind = undefined
+      this.addForm.remark = ''
+
+ 
+    },
+
+    //监听 - 更改牛号
+    change_cow(value){
+      var me = this 
+      console.log("更改牛号Id",value)
+      var item  = me.cowNameList.find(obj => obj.calf_code == value)
+      console.log("更改牛号当前的内容",item)
+      me.addForm.calf_code = item.calf_code
+      me.addForm.calf_category_id = item.calf_category_id
+      me.addForm.calf_category_name = item.calf_category_name
+      me.addForm.original_barn_id = item.barn_id
+      me.addForm.original_barn_name = item.barn_name
+          
+    },
+     //监听 - 更改栏舍
+    change_cowshed(value){
+      var me = this 
+      console.log("更改栏舍Id",value)
+      var item  = me.cowshedList.find(obj => obj.id == value)
+      console.log("更改栏舍当前的内容",item)
+  
+      
+      me.addForm.new_barn_string = item.name
+          
+    },
+
+    //新增
+    form_add() {
+      this.reset_form()
+      this.addFormStatus = 'create'
+      this.addFormShow = true
+      this.$nextTick(() => {
+        this.$refs['addFormRef'].clearValidate()
+      })
+    },
+
+    //编辑
+    form_edit(row) {
+      console.log('行内容row=========', row)
+      if(row.message && row.message !== ""){
+        var messageTxt = JSON.parse(row.message)
+        //编辑行内容赋值
+        this.addForm  = Object.assign({}, row ,messageTxt)  
+      } else {
+        this.addForm  = Object.assign({}, row)  
+      }
+ 
+      
+
+    
+
+      console.log("this.addForm=========",this.addForm)
+      this.addFormStatus = 'edit'
+      this.addFormShow = true
+      this.$nextTick(() => {
+        this.$refs['addFormRef'].clearValidate()
+      })
+    },
+
+
+    //新增关闭
+    add_dialog_close(){
+       //内容重置
+       this.$refs['addFormRef'].resetFields()
+    },
+
+    //新增 保存
+    add_dialog_save() {
+      var me = this
+      this.$refs['addFormRef'].validate(valid => {
+        //验证成功
+        if (valid) {
+          //发起请求
+          
+          var send_data = {
+              "calf_code": me.addForm.calf_code,
+              "calf_category_id":  me.addForm.calf_category_id,
+              "calf_category_name": me.addForm.calf_category_name,
+              "event_kind":me.addForm.event_kind,
+              "remark": me.addForm.remark,
+              "source": 2,
+              "message": "",
+          }
+          console.log("弹窗参数:", send_data)
+
+          // event_kind 1 称重 2 饲喂 3 粪便情况 4 测量体温 5 测量心跳 6 测量呼吸 7 疾病 8 病愈 9 去角 10 去副乳 11 转栏 12 出栏 13 死亡
+          var event_kind = me.addForm.event_kind
+          if(event_kind == 1){
+            var messageTxt = {
+              "weight":  parseFloat(me.addForm.weight)
+            }
+            send_data.message = JSON.stringify(messageTxt)
+          }
+          if(event_kind == 2){
+            var messageTxt = {
+              "first_class_food_number":  parseFloat(me.addForm.first_class_food_number),
+              "second_class_food_number":  parseFloat(me.addForm.second_class_food_number),
+              "third_class_food_number":  parseFloat(me.addForm.third_class_food_number),
+              "fourth_class_food_number":  parseFloat(me.addForm.fourth_class_food_number),
+            }
+            send_data.message = JSON.stringify(messageTxt)
+          }
+
+          if(event_kind == 3){
+            var messageTxt = {
+              "fecal_score":  me.addForm.fecal_score  
+            }
+            send_data.message = JSON.stringify(messageTxt)
+          }
+
+          if(event_kind == 4){
+            var messageTxt = {
+              "temp":   parseFloat(me.addForm.temp)
+            }
+            send_data.message = JSON.stringify(messageTxt)
+          }
+
+          if(event_kind == 5){
+            var messageTxt = {
+              "heartbeat":  parseFloat(me.addForm.heartbeat)
+            }
+            send_data.message = JSON.stringify(messageTxt)
+          }
+
+          if(event_kind == 6){
+            var messageTxt = {
+              "breathe":  parseFloat(me.addForm.breathe)
+            }
+            send_data.message = JSON.stringify(messageTxt)
+          }
+
+          if(event_kind == 7){
+            var messageTxt = {
+              "diseased_type":  me.addForm.diseased_type,
+              "medication":  me.addForm.medication,
+            }
+            send_data.message = JSON.stringify(messageTxt)
+          }
+
+          if(event_kind == 11){
+            var messageTxt = {
+              "original_barn_id":   parseFloat(me.addForm.original_barn_id),
+              "original_barn_name":  me.addForm.original_barn_name,
+              "new_barn_id":   parseFloat(me.addForm.new_barn_id),
+              "new_barn_string":  me.addForm.new_barn_string,
+            }
+            send_data.message = JSON.stringify(messageTxt)
+          }
+
+          
+          if(event_kind == 13){
+            var messageTxt = {
+              "reason":  me.addForm.reason
+            }
+            send_data.message = JSON.stringify(messageTxt)
+          }
+
+      
+ 
+
+          //关闭弹窗
+          // me.addFormShow = false
+         //加载 - 发送新增保存
+           ajaxDataPost(me.url_add_table, send_data).then(e => {
+                console.log("新增结果:",e)
+                //打印请求成功结果
+                if(e.code == 200  ){
+                  me.$message({ type: 'success', message: '新增成功!'  , duration: 2000 })
+                  //关闭弹窗
+                  me.addFormShow = false
+                  me.get_table_data()
+                } else {
+                  me.$message({ type: 'error', message: '新增失败!' + e.msg, duration: 2000 })
+                }
+            })
+         
+        }
+      })
+    },
+    //编辑 保存
+    edit_dialog_save(){
+      var me = this
+      this.$refs['addFormRef'].validate(valid => {
+        //验证成功
+        if (valid) {
+          //发起请求
+        
+          
+          var send_data = {
+             "id": me.addForm.id,
+              "calf_code": me.addForm.calf_code,
+              "calf_category_id":  me.addForm.calf_category_id,
+              "calf_category_name": me.addForm.calf_category_name,
+              "event_kind":me.addForm.event_kind,
+              "remark": me.addForm.remark,
+              "source": 2,
+              "message": "",
+          }
+          console.log("弹窗参数:", send_data)
+
+          // event_kind 1 称重 2 饲喂 3 粪便情况 4 测量体温 5 测量心跳 6 测量呼吸 7 疾病 8 病愈 9 去角 10 去副乳 11 转栏 12 出栏 13 死亡
+          var event_kind = me.addForm.event_kind
+          if(event_kind == 1){
+            var messageTxt = {
+              "weight":  parseFloat(me.addForm.weight)
+            }
+            send_data.message = JSON.stringify(messageTxt)
+          }
+          if(event_kind == 2){
+            var messageTxt = {
+              "first_class_food_number":  parseFloat(me.addForm.first_class_food_number),
+              "second_class_food_number":  parseFloat(me.addForm.second_class_food_number),
+              "third_class_food_number":  parseFloat(me.addForm.third_class_food_number),
+              "fourth_class_food_number":  parseFloat(me.addForm.fourth_class_food_number),
+            }
+            send_data.message = JSON.stringify(messageTxt)
+          }
+
+          if(event_kind == 3){
+            var messageTxt = {
+              "fecal_score":  me.addForm.fecal_score  
+            }
+            send_data.message = JSON.stringify(messageTxt)
+          }
+
+          if(event_kind == 4){
+            var messageTxt = {
+              "temp":   parseFloat(me.addForm.temp)
+            }
+            send_data.message = JSON.stringify(messageTxt)
+          }
+
+          if(event_kind == 5){
+            var messageTxt = {
+              "heartbeat":  parseFloat(me.addForm.heartbeat)
+            }
+            send_data.message = JSON.stringify(messageTxt)
+          }
+
+          if(event_kind == 6){
+            var messageTxt = {
+              "breathe":  parseFloat(me.addForm.breathe)
+            }
+            send_data.message = JSON.stringify(messageTxt)
+          }
+
+          if(event_kind == 7){
+            var messageTxt = {
+              "diseased_type":  me.addForm.diseased_type,
+              "medication":  me.addForm.medication,
+            }
+            send_data.message = JSON.stringify(messageTxt)
+          }
+
+          if(event_kind == 11){
+            var messageTxt = {
+              "original_barn_id":   parseFloat(me.addForm.original_barn_id),
+              "original_barn_name":  me.addForm.original_barn_name,
+              "new_barn_id":   parseFloat(me.addForm.new_barn_id),
+              "new_barn_string":  me.addForm.new_barn_string,
+            }
+            send_data.message = JSON.stringify(messageTxt)
+          }
+
+          
+          if(event_kind == 13){
+            var messageTxt = {
+              "reason":  me.addForm.reason
+            }
+            send_data.message = JSON.stringify(messageTxt)
+          }
+
+      
+          //关闭弹窗
+          // me.addFormShow = false
+         //加载 - 发送新增保存
+         ajaxDataPut(me.url_edit_table, send_data).then(e => {
+                console.log("编辑结果:",e)
+                //打印请求成功结果
+                if(e.code == 200  ){
+                  me.$message({ type: 'success', message: '编辑成功!'  , duration: 2000 })
+                  //关闭弹窗
+                  me.addFormShow = false
+                  me.get_table_data()
+                } else {
+                  me.$message({ type: 'error', message: '编辑失败!' + e.msg, duration: 2000 })
+                }
+            })
+         
+        }
+      })
+    },
+
+
+    
+    
+
+
+
+    form_delete(row) {
+      var me = this
+
+       me.$confirm('是否删除此条内容?', '提示', {
+          confirmButtonText: '确定',
+          cancelButtonText: '取消',
+          type: 'warning'
+        }).then(() => {
+            console.log("删除的ID参数:", row.id)
+            //加载 - 发送新增保存
+            ajaxDataDelete(me.url_delete_table + '/' +row.id, {}).then(e => {
+                console.log("编辑结果:",e)
+                //打印请求成功结果
+                if(e.code == 200  ){
+                  me.$message({ type: 'success',  message: '删除成功!'  });
+                  me.get_table_data()
+                } else {
+                  me.$message({ type: 'error', message: '删除失败!' + e.msg, duration: 2000 })
+                }
+            })
+
+        
+ 
+          
+        }).catch(() => {
+          me.$message({
+            type: 'info',
+            message: '已取消删除'
+          });          
+        });
+
+
+       
+    },
+
+ 
+    form_export() {
+    //获取请求表格数据的参数
+    //this.download.getdataListParm.parammaps = this.tableObj.getdataListParm.parammaps
+    //请求表格
+    // GetDataByName(this.download.getdataListParm).then(response => {
+    //     if (response.data.list !== null) {
+    //       this.download.list = response.data.list
+    //     } else {
+    //       this.download.list = []
+    //     }
+    //     var excelDatas = [
+    //       {
+    //         tHeader: ['表头1', '表头2', '表头3', '表头4',],
+    //         filterVal: ['title1', 'title2', 'title3', 'title4'],
+    //         tableDatas: this.download.list,
+    //         sheetName: 'Sheet1'
+    //       }
+    //     ]
+    //     json2excel(excelDatas, '表格大标题', true, 'xlsx')
+    // })
+
+    var excelDatas = [
+        {
+            tHeader: ['表头1', '表头2', '表头3', '表头4',],
+            filterVal: ['title1', 'title2', 'title3', 'title4'],
+            tableDatas: [ 
+                {title1: "内容1",title2: "内容2",title3: "内容3",title4: "内容4"},
+                {title1: "内容11",title2: "内容22",title3: "内容32",title4: "内容44"},
+                {title1: "内容111",title2: "内容222",title3: "内容333",title4: "内容444"},
+            ],
+            sheetName: 'Sheet1'
+        }
+    ]
+    json2excel(excelDatas, '表格大标题', true, 'xlsx')
+}
+
+     
+
+  }
+}
+</script>
+<!-- 加了scoped,则是仅在此组件里生效 -->
+<style scoped>
+
+</style>

+ 172 - 4
src/views/formulaPlan/FormulaTemplate.vue

@@ -118,6 +118,7 @@
 
          <el-row :gutter="20"  >
             <el-button type="primary"   @click="add_step">增加一个阶段</el-button>
+            <el-button type="primary"   @click="feed_proganmme">智能饲喂方案</el-button>
          </el-row>
 
 
@@ -196,8 +197,9 @@
               </el-table-column>
             </el-table>
          </el-row>
-
-
+          <el-row>
+             <div id="chartLine4"  style="width: 100%;height:360px;"></div>
+          </el-row>
 
         </el-form>
         <div slot="footer" class="dialog-footer">
@@ -207,8 +209,8 @@
       </div>
     </el-dialog>
 
-     <!-- 弹窗 新增or修改 -->
-     <el-dialog  :title="addFormTxtStep[addFormStatusStep]" :visible.sync="addFormShowStep" @close="add_step_close" width="80%">
+     <!-- 弹窗 新增or修改 阶段 -->
+    <el-dialog  :title="addFormTxtStep[addFormStatusStep]" :visible.sync="addFormShowStep" @close="add_step_close" width="80%">
       <div class="">
         <el-form  ref="addFormRefStep"  :rules="addFormRulesStep"  :model="addFormStep"  label-position="right" label-width="150px"  style="width:80%;margin:0 auto 50px">
 
@@ -296,6 +298,10 @@
 
 
 
+         
+
+
+
 
         </el-form>
         <div slot="footer" class="dialog-footer">
@@ -306,6 +312,66 @@
     </el-dialog>
 
 
+
+     <!-- 弹窗 智能方案 -->
+     <el-dialog   title="智能方案" :visible.sync="feedFormShow" @close="add_step_close" width="80%">
+      <div class="">
+        <el-form  ref="feedFormStatusStep"  :rules="addFormRulesStep"  :model="feedFormStep"  label-position="right" label-width="150px"  style="width:80%;margin:0 auto 50px">
+
+ 
+
+          <el-row :gutter="20"  >
+            <h2> 通过简单设置,系统将根据算法自动生成犊牛整个饲喂阶段的日饲喂量。  </h2>
+            <h2> 注:只需设置起始、截止以及任意一个中间日龄(中间阶段的日龄可自行添加,添加越多算法越精准,至少设置1个中间日龄的饲喂量)  </h2>
+          
+          </el-row>
+          <el-row :gutter="20"  >
+            <el-button type="primary"   @click="add_step">增加中间日龄</el-button>
+          </el-row>
+
+
+          <el-row>
+              <!-- 表格 -->
+              <el-table   key="0"  ref="tableStep" :data="tableListStep"  v-loading="tableLoadingStep" element-loading-text="给我一点时间"    border fit>
+                <el-table-column label="阶段"  width="50px" align="center">
+                  <template slot-scope="scope">
+                    <span>{{ scope.row.id }}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column label="开始日龄" min-width="150px" align="center">
+                  <template slot-scope="scope">
+                    <span>{{ scope.row.start_daily_age }}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column label="结束日龄" min-width="150px" align="center">
+                  <template slot-scope="scope">
+                    <span>{{ scope.row.end_daily_age }}</span>
+                  </template>
+                </el-table-column>
+               
+            
+
+                <el-table-column label="操作" align="center" width="300" class-name="small-padding fixed-width" fixed="right">
+                  <template slot-scope="scope">
+                    <!-- 修改按钮 -->
+                    <el-button type="primary"  v-if="isButtonEdit"  size="mini" icon="el-icon-edit" @click="edit_step(scope.$index, scope.row)">修改</el-button>
+                    <!-- 删除按钮 -->
+                    <el-button type="danger"  v-if="isButtonEdit" size="mini" icon="el-icon-delete" @click="delete_step(scope.$index, scope.row)">删除</el-button>
+                  </template>
+                </el-table-column>
+              </el-table>
+          </el-row>
+
+
+
+        </el-form>
+        <div slot="footer" class="dialog-footer">
+          <el-button type="primary" @click="addFormStatusStep==='create'?add_step_save():edit_step_save()">确认</el-button>
+          <el-button @click="addFormShowStep = false">关闭</el-button>
+        </div>
+      </div>
+    </el-dialog>
+    
   </div>
 
 
@@ -314,6 +380,7 @@
 <script>
 import {  ajaxDataGet, ajaxDataPost, ajaxDataPut, ajaxDataDelete, checkButtons} from '@/api/common'
 import { parseTime, json2excel } from '@/utils/index.js'
+import * as echarts from 'echarts';
 export default {
   data() {
 
@@ -450,9 +517,41 @@ export default {
       },
 
 
+      chart4: {
+        getdataListParm: {
+          name: 'cowSumOfFarm',
+          page: 1,offset: 1,pagecount: '',returntype: 'Map',
+          parammaps: {  cityName: 'ALL'  }
+        }
+      },
+      //图表实例
+      chartLine4: null,
+      //图表数据
+      chartLine4_data: {
+        month:  ['2022-1','2022-2','2022-3','2022-4','2022-5','2022-6','2022-7','2022-8','2022-9','2022-10','2022-11','2022-12'],
+        num1: [42, 61, 66, 67, 61, 58, 59, 68, 79, 80, 79.5, 78],
+        num2: [24, 34, 39, 38, 32, 30, 32, 38, 42, 44, 43, 41],
+      },
+
+
+      feedFormShow:false,
+      feedFormStatusStep: '',
+      feedFormTxtStep: {  edit: '修改',  create: '新增' },
+      feedFormStep:{
+        name:'',id:'' ,  daily_feed_number:undefined,first_class_ratio:undefined,second_class_ratio:undefined,third_class_ratio:undefined,fourth_class_ratio:undefined,allow_class_error:undefined 
+      },
+
+
       class_num:4
 
     }
+  },
+
+  mounted() {
+    
+
+     
+
   },
   created(){
 
@@ -665,8 +764,14 @@ export default {
 
       this.addFormStatus = 'edit'
       this.addFormShow = true
+ 
+      
+
+
       this.$nextTick(() => {
         this.$refs['addFormRef'].clearValidate()
+         //加载 - 图表假数据
+        this.roadchartLine4(this.chartLine4_data)
       })
     },
 
@@ -835,6 +940,17 @@ export default {
       })
     },
 
+
+    feed_proganmme() {
+ 
+    
+      this.feedFormShow = true
+      this.$nextTick(() => {
+        this.$refs['addFormRefStep'].clearValidate()
+      })
+
+    },
+
     //编辑
     edit_step(index, row) {
       this.stepIndex = index
@@ -980,6 +1096,58 @@ export default {
     },
 
 
+    //图表数据加载
+    roadchartLine4(chartLine4_data) {
+      if (this.chartLine4 != null) {
+        this.chartLine4.dispose()
+      }
+      this.chartLine4 = echarts.init(document.getElementById('chartLine4'))
+      var option = {
+        title: { text: '', left: 'center'},
+        tooltip: {  trigger: 'item' },
+        grid: {  show:true,left: "10%", top:'23%', right:'10%', },
+        color:['#f19610', '#1bff7b' ],
+  
+        xAxis: [
+          { 
+            type: 'category', 
+            axisTick: { show: true  },  
+            axisLabel: {  color:'#fff',   interval: 0  ,rotate:0},
+            axisLine: { LineStyle: {color:'#fff'}  },
+            data: chartLine4_data.month
+            
+          } 
+        ],
+        yAxis: [
+          { 
+            type: 'value',  
+            axisTick: { show: false  },  
+            axisLabel: {  color:'#fff'  },
+            axisLine: { LineStyle: {color:'#fff'}  },
+            axisLabel: {  color:'#fff'  },
+            
+          }
+        ],
+        series: [
+          {
+            name: '奶',type: 'line',
+            label: {show: true,position: 'inside' },
+            data: chartLine4_data.num1
+          },
+          {
+            name: '代乳粉',type: 'line',
+            label: {show: true,position: 'inside' },
+            data: chartLine4_data.num2
+          },
+        ]
+  
+      }
+      
+      this.chartLine4.setOption(option)
+      window.onresize = function () {
+        this.chartLine4.resize()
+      }
+    },
 
     form_export() {
     //获取请求表格数据的参数