ソースを参照

formulatemplate

epans 1 年間 前
コミット
5a8c3083ea

+ 728 - 0
src/views/cowShedManagement/CowCowShed10.vue

@@ -0,0 +1,728 @@
+<template>
+ 
+  <div>
+
+
+    <el-card class="box-card">
+      <!-- 搜索区域 -->
+      <div class="search-bx1">
+          <el-input v-model="searchData.name" placeholder="栏舍名称"  style="width: 180px;" class="g-mr20" clearable />
+          <el-input v-model="searchData.barn_group_name" placeholder="栏舍组"  style="width: 180px;" class="g-mr20" clearable />
+          <el-input v-model="searchData.number" placeholder="身份卡ID"  style="width: 180px;" class="g-mr20" clearable />
+          <el-select v-model="searchData.status" filterable placeholder="栏舍状态" class="g-mr20" style="width: 180px;" clearable>
+            <el-option v-for="item in statusList" :key="item.id" :label="item.value" :value="item.id" />
+          </el-select>
+          <!-- <el-select v-model="searchData.barn_group_id" filterable placeholder="犊牛状态" class="g-mr20" style="width: 180px;" clearable>
+            <el-option v-for="item in barnGroupList" :key="item.id" :label="item.value" :value="item.id" />
+          </el-select> -->
+          <el-button type="primary"   @click="form_search">搜索</el-button>
+          <el-button type="primary"   @click="form_clear">重置</el-button>
+          <!-- <el-button   type="primary"   @click="tab_view">切换视图</el-button> -->
+          <el-button type="primary"  v-if="isButtonEdit"  @click="form_add">添加</el-button>
+           <!-- <el-button type="primary"   @click="form_export">导出</el-button> -->
+      </div>
+
+ 
+
+      <div   v-if = "tabView == 'table'">
+        <!-- 表格 -->
+        <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="150px" align="center">
+            <template slot-scope="scope">
+              <span>{{ scope.row.barn_group_name }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="身份卡ID" min-width="150px" align="center">
+            <template slot-scope="scope">
+              <span>{{ scope.row.number }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="栏舍状态" min-width="150px" align="center">
+            <template slot-scope="scope">
+              <span v-if ="scope.row.status == 1">正常</span>
+              <span v-if ="scope.row.status == 2">疾病</span>
+              <span v-if ="scope.row.status == 3">断奶</span>
+              <span v-if ="scope.row.status == 4">空栏</span>
+  
+            </template>
+          </el-table-column>
+    
+          <el-table-column label="犊牛状态" min-width="150px" align="center">
+            <template slot-scope="scope">
+              <span v-if="scope.row.calf_status == 0">未知</span>
+              <span v-if="scope.row.calf_status == 1">健康</span>
+              <span v-if="scope.row.calf_status == 2">生病</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"/>
+      </div>
+      <div   v-if = "tabView == 'view'"  >
+        <el-row :gutter="20">
+          
+          <el-col :span="12">
+            <div>
+              <el-row :gutter="10">
+    
+                <el-col :span="4" :offset="4">
+                  <span class = "column-item column-color1"  ></span>
+                  <span class = "column-txt">正常</span>
+                </el-col>
+                <el-col :span="4">
+                  <span class = "column-item column-color2"  ></span>
+                  <span class = "column-txt">发病</span>
+                </el-col>
+                <el-col :span="4">
+                  <span class = "column-item column-color3"  ></span>
+                  <span class = "column-txt">断奶</span>
+                </el-col>
+                <el-col :span="4">
+                  <span class = "column-item column-color4"  ></span>
+                  <span class = "column-txt">空栏</span>
+                </el-col>
+              </el-row>
+            </div>
+            <div v-for="item in columnViewList" :key="index">
+              <el-row :gutter="10">
+                <el-col :span="4">{{item.title}}</el-col>
+                <el-col :span="20">
+                  <!-- 数量不定的栏舍 -->
+                  <el-col :span="3" v-for="items in item.arrList" :key="index">
+
+                    <div style = "margin-bottom:20px;text-align:center">
+                      <span class = "column-item column-color1" v-if="items.status == '正常'"></span>
+                      <span class = "column-item column-color2" v-if="items.status == '发病'"></span>
+                      <span class = "column-item column-color3" v-if="items.status == '断奶'"></span>
+                      <span class = "column-item column-color4" v-if="items.status == '空栏'"></span>
+                      <span class = "column-txt">{{items.cowshedname}}</span>
+                    </div>
+                  </el-col>
+                </el-col>
+              </el-row>
+            </div>
+            
+  
+          </el-col>
+          <el-col :span="12">
+              <!-- 图表 -->
+            <div id="chartPie1"  style="width: 100%;height:400px;"></div>  
+          </el-col>
+        </el-row>
+        
+      </div>
+    </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="身份卡ID:" prop="number">
+                <el-input   v-model="addForm.number"  placeholder="用于加奶枪识别牛只信息及饲喂量"  ></el-input>  
+            </el-form-item>
+            <el-form-item label="栏舍名称:" prop="name">
+                <el-input   v-model="addForm.name"    ></el-input>  
+            </el-form-item>       
+            <el-form-item label="栏舍组:" prop="barn_group_id">
+              <el-select  v-model="addForm.barn_group_id" filterable placeholder="请选择" class="filter-item" style="width: 100%;" >
+                <el-option v-for="item in barnGroupList" :key="item.id" :label="item.name" :value="item.id" />
+              </el-select>
+            </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>
+
+
+</template> 
+
+<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() {
+
+
+    
+ 
+  
+    return {
+
+ 
+
+      //接口 - 获取 - 表格
+      url_get_table:'/api/v1/ops/barn/list',
+      //接口 - 新增 - 表格
+      url_add_table:'/api/v1/ops/barn/add',  
+      //接口 - 修改 - 表格
+      url_edit_table:'/api/v1/ops/barn/update', 
+      //接口 - 删除 - 表格
+      url_delete_table:'/api/v1/ops/barn/delete', 
+      
+      //接口 - 下拉框 列表 
+      url_get_select1:'/api/v1/ops/calf_feed/enum/list',
+
+      //接口 - 下拉框 列表 栏舍组
+      url_get_select2:'/api/v1/ops/barn_group/list?page=1&page_size=1000',
+
+      //按钮权限
+      isButtonEdit:false,
+
+
+      //切换视图模式, table 表格,view 图
+      tabView:'table',
+
+
+      //视图模式中的栏舍
+      columnViewList:[
+        {
+          title:"A001",
+          arrList:[
+              { id: '1', cowshedname: '001',cowshebar: 'A001',status: '正常'  },
+              { id: '1', cowshedname: '003',cowshebar: 'A001',status: '发病'  },
+              { id: '1', cowshedname: '005',cowshebar: 'A001',status: '正常'  },
+              { id: '1', cowshedname: '007',cowshebar: 'A001',status: '正常'  },
+              { id: '1', cowshedname: '009',cowshebar: 'A001',status: '正常'  },
+              { id: '1', cowshedname: '011',cowshebar: 'A001',status: '正常'  },
+              { id: '1', cowshedname: '012',cowshebar: 'A001',status: '正常'  },
+              { id: '1', cowshedname: '014',cowshebar: 'A001',status: '正常'  },
+              { id: '1', cowshedname: '016',cowshebar: 'A001',status: '正常'  },
+              { id: '1', cowshedname: '018',cowshebar: 'A001',status: '正常'  },
+    
+          ]
+        },
+        {
+          title:"A002",
+          arrList:[
+              { id: '1', cowshedname: '002',cowshebar: 'A002',status: '空栏'  },
+              { id: '1', cowshedname: '004',cowshebar: 'A002',status: '正常'  },
+              { id: '1', cowshedname: '006',cowshebar: 'A002',status: '正常'  },
+              { id: '1', cowshedname: '008',cowshebar: 'A002',status: '正常'  },
+              { id: '1', cowshedname: '010',cowshebar: 'A002',status: '正常'  },
+              { id: '1', cowshedname: '013',cowshebar: 'A002',status: '正常'  },
+              { id: '1', cowshedname: '015',cowshebar: 'A002',status: '正常'  },
+              { id: '1', cowshedname: '017',cowshebar: 'A002',status: '正常'  },
+              { id: '1', cowshedname: '019',cowshebar: 'A002',status: '正常'  },
+          ]
+        } 
+      ],
+
+      //获取 - 表格数据 - 参数
+      searchData:{
+        name: "",
+        barn_group_name: "",
+        number: "",
+        status: 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' },
+      ],
+
+
+      //栏舍状态
+      statusList:[
+        {id: 1, value: '正常'},
+        {id: 2, value: '疾病'},
+        {id: 3, value: '断奶'},
+        {id: 4, value: '空栏'},
+      ],
+
+     //图表实例
+     chartPie1: null,
+      //图表数据
+      chartPie1_data: {  num1:5.26,num2:0,num3:5.26,num4:89.48 },
+
+      //栏舍组下拉
+      barnGroupList:[
+         
+      ],
+
+
+      addFormShow:false,
+      addFormStatus: '',
+      addFormTxt: {  edit: '修改',  create: '新增' },
+      addForm:{
+        number:undefined,name:'',barn_group_id:undefined,id:'' 
+      },
+
+      addFormRules:{
+        number: [ { required: true, message: '身份卡ID必填', trigger: 'blur' },  ],
+        name: [ { required: true, message: '类型名称必填', trigger: 'blur' },  ],
+        barn_group_id: [ { required: true, message: '栏舍组必填', trigger: 'blur' },  ],
+
+      },
+
+     
+       
+    }
+  },
+  created(){
+      //获取按钮权限
+      const isButtonEdit = checkButtons(this.$store.state.buttonsList, "牛只栏舍编辑")
+      this.isButtonEdit = isButtonEdit
+      console.log('this.isButtonEdit==========',this.isButtonEdit)
+     
+
+     //获取下拉框
+     this.get_select_list1()
+
+      //表格 - 初始化 
+      this.get_table_data()
+
+     
+
+    
+  },
+  methods:{
+
+  
+    
+    //获取 下拉框
+    get_select_list1(){
+        var me = this
+        ajaxDataPost(me.url_get_select2, { name: ""}).then(e => {
+          console.log("栏舍组下拉框:",e)
+
+          if(e.data.list == null || e.data.list == undefined ||e.data.list.length == 0   ){
+            me.barnGroupList = []
+          } else {
+            me.barnGroupList = e.data.list
+          }
+
+         
+  
+        })
+
+
+        // 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)
+
+
+     
+     if( me.searchData.status == ""){
+        me.searchData.status = 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)
+      me.get_table_data()
+
+    },
+
+    //重置 表格
+    form_clear(){
+      var me = this
+      me.searchData.name = ""
+      me.searchData.name = ""
+      me.searchData.barn_group_name = undefined
+      me.searchData.number = ""
+
+   
+
+      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.name = ''
+      this.addForm.id = undefined
+      this.addForm.barn_group_id = undefined
+      this.addForm.number = ''
+       
+    },
+
+    //新增
+    form_add() {
+      this.reset_form()
+      this.addFormStatus = 'create'
+      this.addFormShow = true
+      this.$nextTick(() => {
+        this.$refs['addFormRef'].clearValidate()
+      })
+    },
+
+    //编辑
+    form_edit(row) {
+      this.reset_form()
+      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,
+              "barn_group_id": me.addForm.barn_group_id,
+              "number": me.addForm.number,
+
+          }
+          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 = {
+    
+              "id": me.addForm.id,
+              "name": me.addForm.name,
+              "barn_group_id": me.addForm.barn_group_id,
+              "number": me.addForm.number,
+          }
+
+          // var name = this.barnGroupList.find(obj => obj.id == me.addForm.barn_group_id).name
+          // console.log(name)
+
+           // 编辑保存
+          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 })
+                }
+            })
+         
+        }
+      })
+    },
+
+
+    
+    
+    //监听 - 切换视图
+    tab_view(){
+      //切换视图模式,table表格,view图
+      if(this.tabView == 'table'){
+        this.tabView = 'view'
+        setTimeout(() => {
+          this.roadchartPie1()
+        }, 500)
+        
+      } else {
+        this.tabView = 'table'
+      }
+
+    },
+
+
+    //图表数据加载
+    roadchartPie1() {
+
+      if (this.chartPie1 != null) {
+        this.chartPie1.dispose()
+      }
+      this.chartPie1 = echarts.init(document.getElementById('chartPie1'))
+      var option = {
+        tooltip: {  trigger: 'item'  },
+        series: [
+          {
+            name: '',
+            type: 'pie',
+            radius: [10, 100],
+            center: ['50%', '50%'],
+            
+            itemStyle: {
+              borderRadius: 8
+            },
+            label: {
+              formatter: '{b|{b}:}  {per|{d}%}  ',
+              backgroundColor: '#F6F8FC',
+              borderColor: '#8C8D8E',
+              borderWidth: 1,
+              borderRadius: 4,
+              lineHeight: 22,
+              rich: {
+                b: {
+                  color: '#4C5058',
+                  fontSize: 14,
+                  fontWeight: 'bold',
+                  lineHeight: 33
+                },
+                per: {
+                  color: '#fff',
+                  backgroundColor: '#4C5058',
+                  padding: [3, 4],
+                  borderRadius: 4
+                }
+              }
+            },
+            data: [
+              //  { value: 300, name: '合同收入' },
+              // { value: 200, name: '维修服务收入' },
+              // { value: 200, name: '现场服务收入' },
+              // { value: 20, name: '远程服务收入' }
+              { value: this.chartPie1_data.num1, name: '发病' },
+              { value: this.chartPie1_data.num2, name: '断奶提醒' },
+              { value: this.chartPie1_data.num3, name: '空栏' },
+              { value: this.chartPie1_data.num4, name: '正常' }
+          
+            ]
+          }
+        ]
+      }
+
+
+      this.chartPie1.setOption(option)
+      window.onresize = function () {
+        this.chartPie1.resize()
+      }
+    },
+
+
+    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>
+ 
+.column-item{display: block;height:20px;width:30px;background-color:#d7d7d7; border-radius: 4px;    margin:0 auto;}
+.column-color1{background-color:#4b7902;}
+.column-color2{background-color:#d9001b;}
+.column-color3{background-color:#8080ff;}
+.column-color4{background-color:#d7d7d7;}
+.column-txt{display: block;}
+</style>

+ 728 - 0
src/views/cowShedManagement/CowCowShed11.vue

@@ -0,0 +1,728 @@
+<template>
+ 
+  <div>
+
+
+    <el-card class="box-card">
+      <!-- 搜索区域 -->
+      <div class="search-bx1">
+          <el-input v-model="searchData.name" placeholder="栏舍名称"  style="width: 180px;" class="g-mr20" clearable />
+          <el-input v-model="searchData.barn_group_name" placeholder="栏舍组"  style="width: 180px;" class="g-mr20" clearable />
+          <el-input v-model="searchData.number" placeholder="身份卡ID"  style="width: 180px;" class="g-mr20" clearable />
+          <el-select v-model="searchData.status" filterable placeholder="栏舍状态" class="g-mr20" style="width: 180px;" clearable>
+            <el-option v-for="item in statusList" :key="item.id" :label="item.value" :value="item.id" />
+          </el-select>
+          <!-- <el-select v-model="searchData.barn_group_id" filterable placeholder="犊牛状态" class="g-mr20" style="width: 180px;" clearable>
+            <el-option v-for="item in barnGroupList" :key="item.id" :label="item.value" :value="item.id" />
+          </el-select> -->
+          <el-button type="primary"   @click="form_search">搜索</el-button>
+          <el-button type="primary"   @click="form_clear">重置</el-button>
+          <!-- <el-button   type="primary"   @click="tab_view">切换视图</el-button> -->
+          <el-button type="primary"  v-if="isButtonEdit"  @click="form_add">添加</el-button>
+           <!-- <el-button type="primary"   @click="form_export">导出</el-button> -->
+      </div>
+
+ 
+
+      <div   v-if = "tabView == 'table'">
+        <!-- 表格 -->
+        <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="150px" align="center">
+            <template slot-scope="scope">
+              <span>{{ scope.row.barn_group_name }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="身份卡ID" min-width="150px" align="center">
+            <template slot-scope="scope">
+              <span>{{ scope.row.number }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="栏舍状态" min-width="150px" align="center">
+            <template slot-scope="scope">
+              <span v-if ="scope.row.status == 1">正常</span>
+              <span v-if ="scope.row.status == 2">疾病</span>
+              <span v-if ="scope.row.status == 3">断奶</span>
+              <span v-if ="scope.row.status == 4">空栏</span>
+  
+            </template>
+          </el-table-column>
+    
+          <el-table-column label="犊牛状态" min-width="150px" align="center">
+            <template slot-scope="scope">
+              <span v-if="scope.row.calf_status == 0">未知</span>
+              <span v-if="scope.row.calf_status == 1">健康</span>
+              <span v-if="scope.row.calf_status == 2">生病</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"/>
+      </div>
+      <div   v-if = "tabView == 'view'"  >
+        <el-row :gutter="20">
+          
+          <el-col :span="12">
+            <div>
+              <el-row :gutter="10">
+    
+                <el-col :span="4" :offset="4">
+                  <span class = "column-item column-color1"  ></span>
+                  <span class = "column-txt">正常</span>
+                </el-col>
+                <el-col :span="4">
+                  <span class = "column-item column-color2"  ></span>
+                  <span class = "column-txt">发病</span>
+                </el-col>
+                <el-col :span="4">
+                  <span class = "column-item column-color3"  ></span>
+                  <span class = "column-txt">断奶</span>
+                </el-col>
+                <el-col :span="4">
+                  <span class = "column-item column-color4"  ></span>
+                  <span class = "column-txt">空栏</span>
+                </el-col>
+              </el-row>
+            </div>
+            <div v-for="item in columnViewList" :key="index">
+              <el-row :gutter="10">
+                <el-col :span="4">{{item.title}}</el-col>
+                <el-col :span="20">
+                  <!-- 数量不定的栏舍 -->
+                  <el-col :span="3" v-for="items in item.arrList" :key="index">
+
+                    <div style = "margin-bottom:20px;text-align:center">
+                      <span class = "column-item column-color1" v-if="items.status == '正常'"></span>
+                      <span class = "column-item column-color2" v-if="items.status == '发病'"></span>
+                      <span class = "column-item column-color3" v-if="items.status == '断奶'"></span>
+                      <span class = "column-item column-color4" v-if="items.status == '空栏'"></span>
+                      <span class = "column-txt">{{items.cowshedname}}</span>
+                    </div>
+                  </el-col>
+                </el-col>
+              </el-row>
+            </div>
+            
+  
+          </el-col>
+          <el-col :span="12">
+              <!-- 图表 -->
+            <div id="chartPie1"  style="width: 100%;height:400px;"></div>  
+          </el-col>
+        </el-row>
+        
+      </div>
+    </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="身份卡ID:" prop="number">
+                <el-input   v-model="addForm.number"  placeholder="用于加奶枪识别牛只信息及饲喂量"  ></el-input>  
+            </el-form-item>
+            <el-form-item label="栏舍名称:" prop="name">
+                <el-input   v-model="addForm.name"    ></el-input>  
+            </el-form-item>       
+            <el-form-item label="栏舍组:" prop="barn_group_id">
+              <el-select  v-model="addForm.barn_group_id" filterable placeholder="请选择" class="filter-item" style="width: 100%;" >
+                <el-option v-for="item in barnGroupList" :key="item.id" :label="item.name" :value="item.id" />
+              </el-select>
+            </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>
+
+
+</template> 
+
+<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() {
+
+
+    
+ 
+  
+    return {
+
+ 
+
+      //接口 - 获取 - 表格
+      url_get_table:'/api/v1/ops/barn/list',
+      //接口 - 新增 - 表格
+      url_add_table:'/api/v1/ops/barn/add',  
+      //接口 - 修改 - 表格
+      url_edit_table:'/api/v1/ops/barn/update', 
+      //接口 - 删除 - 表格
+      url_delete_table:'/api/v1/ops/barn/delete', 
+      
+      //接口 - 下拉框 列表 
+      url_get_select1:'/api/v1/ops/calf_feed/enum/list',
+
+      //接口 - 下拉框 列表 栏舍组
+      url_get_select2:'/api/v1/ops/barn_group/list?page=1&page_size=1000',
+
+      //按钮权限
+      isButtonEdit:false,
+
+
+      //切换视图模式, table 表格,view 图
+      tabView:'table',
+
+
+      //视图模式中的栏舍
+      columnViewList:[
+        {
+          title:"A001",
+          arrList:[
+              { id: '1', cowshedname: '001',cowshebar: 'A001',status: '正常'  },
+              { id: '1', cowshedname: '003',cowshebar: 'A001',status: '发病'  },
+              { id: '1', cowshedname: '005',cowshebar: 'A001',status: '正常'  },
+              { id: '1', cowshedname: '007',cowshebar: 'A001',status: '正常'  },
+              { id: '1', cowshedname: '009',cowshebar: 'A001',status: '正常'  },
+              { id: '1', cowshedname: '011',cowshebar: 'A001',status: '正常'  },
+              { id: '1', cowshedname: '012',cowshebar: 'A001',status: '正常'  },
+              { id: '1', cowshedname: '014',cowshebar: 'A001',status: '正常'  },
+              { id: '1', cowshedname: '016',cowshebar: 'A001',status: '正常'  },
+              { id: '1', cowshedname: '018',cowshebar: 'A001',status: '正常'  },
+    
+          ]
+        },
+        {
+          title:"A002",
+          arrList:[
+              { id: '1', cowshedname: '002',cowshebar: 'A002',status: '空栏'  },
+              { id: '1', cowshedname: '004',cowshebar: 'A002',status: '正常'  },
+              { id: '1', cowshedname: '006',cowshebar: 'A002',status: '正常'  },
+              { id: '1', cowshedname: '008',cowshebar: 'A002',status: '正常'  },
+              { id: '1', cowshedname: '010',cowshebar: 'A002',status: '正常'  },
+              { id: '1', cowshedname: '013',cowshebar: 'A002',status: '正常'  },
+              { id: '1', cowshedname: '015',cowshebar: 'A002',status: '正常'  },
+              { id: '1', cowshedname: '017',cowshebar: 'A002',status: '正常'  },
+              { id: '1', cowshedname: '019',cowshebar: 'A002',status: '正常'  },
+          ]
+        } 
+      ],
+
+      //获取 - 表格数据 - 参数
+      searchData:{
+        name: "",
+        barn_group_name: "",
+        number: "",
+        status: 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' },
+      ],
+
+
+      //栏舍状态
+      statusList:[
+        {id: 1, value: '正常'},
+        {id: 2, value: '疾病'},
+        {id: 3, value: '断奶'},
+        {id: 4, value: '空栏'},
+      ],
+
+     //图表实例
+     chartPie1: null,
+      //图表数据
+      chartPie1_data: {  num1:5.26,num2:0,num3:5.26,num4:89.48 },
+
+      //栏舍组下拉
+      barnGroupList:[
+         
+      ],
+
+
+      addFormShow:false,
+      addFormStatus: '',
+      addFormTxt: {  edit: '修改',  create: '新增' },
+      addForm:{
+        number:undefined,name:'',barn_group_id:undefined,id:'' 
+      },
+
+      addFormRules:{
+        number: [ { required: true, message: '身份卡ID必填', trigger: 'blur' },  ],
+        name: [ { required: true, message: '类型名称必填', trigger: 'blur' },  ],
+        barn_group_id: [ { required: true, message: '栏舍组必填', trigger: 'blur' },  ],
+
+      },
+
+     
+       
+    }
+  },
+  created(){
+      //获取按钮权限
+      const isButtonEdit = checkButtons(this.$store.state.buttonsList, "牛只栏舍编辑")
+      this.isButtonEdit = isButtonEdit
+      console.log('this.isButtonEdit==========',this.isButtonEdit)
+     
+
+     //获取下拉框
+     this.get_select_list1()
+
+      //表格 - 初始化 
+      this.get_table_data()
+
+     
+
+    
+  },
+  methods:{
+
+  
+    
+    //获取 下拉框
+    get_select_list1(){
+        var me = this
+        ajaxDataPost(me.url_get_select2, { name: ""}).then(e => {
+          console.log("栏舍组下拉框:",e)
+
+          if(e.data.list == null || e.data.list == undefined ||e.data.list.length == 0   ){
+            me.barnGroupList = []
+          } else {
+            me.barnGroupList = e.data.list
+          }
+
+         
+  
+        })
+
+
+        // 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)
+
+
+     
+     if( me.searchData.status == ""){
+        me.searchData.status = 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)
+      me.get_table_data()
+
+    },
+
+    //重置 表格
+    form_clear(){
+      var me = this
+      me.searchData.name = ""
+      me.searchData.name = ""
+      me.searchData.barn_group_name = undefined
+      me.searchData.number = ""
+
+   
+
+      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.name = ''
+      this.addForm.id = undefined
+      this.addForm.barn_group_id = undefined
+      this.addForm.number = ''
+       
+    },
+
+    //新增
+    form_add() {
+      this.reset_form()
+      this.addFormStatus = 'create'
+      this.addFormShow = true
+      this.$nextTick(() => {
+        this.$refs['addFormRef'].clearValidate()
+      })
+    },
+
+    //编辑
+    form_edit(row) {
+      this.reset_form()
+      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,
+              "barn_group_id": me.addForm.barn_group_id,
+              "number": me.addForm.number,
+
+          }
+          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 = {
+    
+              "id": me.addForm.id,
+              "name": me.addForm.name,
+              "barn_group_id": me.addForm.barn_group_id,
+              "number": me.addForm.number,
+          }
+
+          // var name = this.barnGroupList.find(obj => obj.id == me.addForm.barn_group_id).name
+          // console.log(name)
+
+           // 编辑保存
+          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 })
+                }
+            })
+         
+        }
+      })
+    },
+
+
+    
+    
+    //监听 - 切换视图
+    tab_view(){
+      //切换视图模式,table表格,view图
+      if(this.tabView == 'table'){
+        this.tabView = 'view'
+        setTimeout(() => {
+          this.roadchartPie1()
+        }, 500)
+        
+      } else {
+        this.tabView = 'table'
+      }
+
+    },
+
+
+    //图表数据加载
+    roadchartPie1() {
+
+      if (this.chartPie1 != null) {
+        this.chartPie1.dispose()
+      }
+      this.chartPie1 = echarts.init(document.getElementById('chartPie1'))
+      var option = {
+        tooltip: {  trigger: 'item'  },
+        series: [
+          {
+            name: '',
+            type: 'pie',
+            radius: [10, 100],
+            center: ['50%', '50%'],
+            
+            itemStyle: {
+              borderRadius: 8
+            },
+            label: {
+              formatter: '{b|{b}:}  {per|{d}%}  ',
+              backgroundColor: '#F6F8FC',
+              borderColor: '#8C8D8E',
+              borderWidth: 1,
+              borderRadius: 4,
+              lineHeight: 22,
+              rich: {
+                b: {
+                  color: '#4C5058',
+                  fontSize: 14,
+                  fontWeight: 'bold',
+                  lineHeight: 33
+                },
+                per: {
+                  color: '#fff',
+                  backgroundColor: '#4C5058',
+                  padding: [3, 4],
+                  borderRadius: 4
+                }
+              }
+            },
+            data: [
+              //  { value: 300, name: '合同收入' },
+              // { value: 200, name: '维修服务收入' },
+              // { value: 200, name: '现场服务收入' },
+              // { value: 20, name: '远程服务收入' }
+              { value: this.chartPie1_data.num1, name: '发病' },
+              { value: this.chartPie1_data.num2, name: '断奶提醒' },
+              { value: this.chartPie1_data.num3, name: '空栏' },
+              { value: this.chartPie1_data.num4, name: '正常' }
+          
+            ]
+          }
+        ]
+      }
+
+
+      this.chartPie1.setOption(option)
+      window.onresize = function () {
+        this.chartPie1.resize()
+      }
+    },
+
+
+    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>
+ 
+.column-item{display: block;height:20px;width:30px;background-color:#d7d7d7; border-radius: 4px;    margin:0 auto;}
+.column-color1{background-color:#4b7902;}
+.column-color2{background-color:#d9001b;}
+.column-color3{background-color:#8080ff;}
+.column-color4{background-color:#d7d7d7;}
+.column-txt{display: block;}
+</style>

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

@@ -118,7 +118,6 @@
 
          <el-row :gutter="20"  >
             <el-button type="primary"   @click="add_step">增加一个阶段</el-button>
-            <el-button type="primary"   @click="feed_proganmme">智能饲喂方案</el-button>
          </el-row>
 
 
@@ -197,9 +196,8 @@
               </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">
@@ -209,8 +207,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">
 
@@ -298,10 +296,6 @@
 
 
 
-         
-
-
-
 
         </el-form>
         <div slot="footer" class="dialog-footer">
@@ -312,66 +306,6 @@
     </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>
 
 
@@ -380,7 +314,6 @@
 <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() {
 
@@ -517,41 +450,9 @@ 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(){
 
@@ -764,14 +665,8 @@ export default {
 
       this.addFormStatus = 'edit'
       this.addFormShow = true
- 
-      
-
-
       this.$nextTick(() => {
         this.$refs['addFormRef'].clearValidate()
-         //加载 - 图表假数据
-        this.roadchartLine4(this.chartLine4_data)
       })
     },
 
@@ -940,17 +835,6 @@ export default {
       })
     },
 
-
-    feed_proganmme() {
- 
-    
-      this.feedFormShow = true
-      this.$nextTick(() => {
-        this.$refs['addFormRefStep'].clearValidate()
-      })
-
-    },
-
     //编辑
     edit_step(index, row) {
       this.stepIndex = index
@@ -1096,58 +980,6 @@ 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() {
     //获取请求表格数据的参数

+ 117 - 21
src/views/formulaPlan/FormulaTemplate11.vue

@@ -197,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">
@@ -297,6 +298,10 @@
 
 
 
+         
+
+
+
 
         </el-form>
         <div slot="footer" class="dialog-footer">
@@ -309,16 +314,14 @@
 
 
      <!-- 弹窗 智能方案 -->
-     <el-dialog   title="智能方案" :visible.sync="feedFormShow" @close="add_step_close" width="80%">
+     <el-dialog   title="智能方案" :visible.sync="feedFormShow" @close="add_feed_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-form  ref="feedFormStatus"    :model="feedForm"  label-position="right" label-width="150px"  style="width:80%;margin:0 auto 50px">
 
  
-
           <el-row :gutter="20"  >
-            <h2> 通过简单设置,系统将根据算法自动生成犊牛整个饲喂阶段的日饲喂量。  </h2>
-            <h2> 注:只需设置起始、截止以及任意一个中间日龄(中间阶段的日龄可自行添加,添加越多算法越精准,至少设置1个中间日龄的饲喂量)  </h2>
-          
+            <h4> 通过简单设置,系统将根据算法自动生成犊牛整个饲喂阶段的日饲喂量。  </h4>
+            <h4> 注:只需设置起始、截止以及任意一个中间日龄(中间阶段的日龄可自行添加,添加越多算法越精准,至少设置1个中间日龄的饲喂量)  </h4>         
           </el-row>
           <el-row :gutter="20"  >
             <el-button type="primary"   @click="add_step">增加中间日龄</el-button>
@@ -327,26 +330,27 @@
 
           <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">
+              <el-table   key="0"  ref="tableFeed" :data="tableListFeed"  element-loading-text="给我一点时间"    border fit>
+                <el-table-column label="内容"  min-width="150px" align="center">
                   <template slot-scope="scope">
-                    <span>{{ scope.row.id }}</span>
+                    <span>{{ scope.row.name }}</span>
                   </template>
                 </el-table-column>
-                <el-table-column label="开始日龄" min-width="150px" align="center">
+                <el-table-column label="日龄" min-width="100px" align="center">
                   <template slot-scope="scope">
-                    <span>{{ scope.row.start_daily_age }}</span>
+                      <el-input  v-model="scope.row.daynumber" type="number" step="0.01" style="width:95%;padding:10px 0;" />
                   </template>
                 </el-table-column>
-                <el-table-column label="结束日龄" min-width="150px" align="center">
+                <el-table-column label="饲喂量" min-width="100px" align="center">
                   <template slot-scope="scope">
-                    <span>{{ scope.row.end_daily_age }}</span>
+                     <el-input  v-model="scope.row.daykg" type="number" step="0.01" style="width:95%;padding:10px 0;" />
+               
                   </template>
                 </el-table-column>
                
             
 
-                <el-table-column label="操作" align="center" width="300" class-name="small-padding fixed-width" fixed="right">
+                <el-table-column label="操作" align="center" min-width="200px" 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>
@@ -361,7 +365,7 @@
 
         </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 type="primary" @click="addFormStatusStep==='create'?add_feed_save():edit_step_save()">确认</el-button>
           <el-button @click="addFormShowStep = false">关闭</el-button>
         </div>
       </div>
@@ -375,6 +379,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() {
 
@@ -511,17 +516,46 @@ export default {
       },
 
 
+      chart4: {
+        getdataListParm: {
+          name: 'cowSumOfFarm',
+          page: 1,offset: 1,pagecount: '',returntype: 'Map',
+          parammaps: {  cityName: 'ALL'  }
+        }
+      },
+      //图表实例
+      chartLine4: null,
+      //图表数据
+      chartLine4_data: {
+        month:  ['1','3','5','6','11','12','14','15','40'],
+        num1: [2, 4, 6, 8, 2, 3, 4, 6, 8],
+        num2: [3, 5, 7, 9, 1, 3, 5, 7, 8],
+      },
+
+
       feedFormShow:false,
-      feedFormStatusStep: '',
-      feedFormTxtStep: {  edit: '修改',  create: '新增' },
-      feedFormStep:{
+      feedFormStatus: '',
+      feedFormTxt: {  edit: '修改',  create: '新增' },
+      feedForm:{
         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 
       },
 
+      tableListFeed:[
+        {name:'起始日龄',daynumber:0,daykg:0,},
+        {name:'中间阶段',daynumber:0,daykg:0,},
+        {name:'截止日期',daynumber:0,daykg:0,},
+      ],
 
       class_num:4
 
     }
+  },
+
+  mounted() {
+    
+
+     
+
   },
   created(){
 
@@ -734,8 +768,14 @@ export default {
 
       this.addFormStatus = 'edit'
       this.addFormShow = true
+ 
+      
+
+
       this.$nextTick(() => {
         this.$refs['addFormRef'].clearValidate()
+         //加载 - 图表假数据
+        this.roadchartLine4(this.chartLine4_data)
       })
     },
 
@@ -910,11 +950,17 @@ export default {
     
       this.feedFormShow = true
       this.$nextTick(() => {
-        this.$refs['addFormRefStep'].clearValidate()
+   
       })
 
     },
 
+    add_feed_close(){
+       //内容重置
+       this.feedFormShow = false
+    },
+
+
     //编辑
     edit_step(index, row) {
       this.stepIndex = index
@@ -1060,6 +1106,56 @@ 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: {      interval: 0  ,rotate:0},
+            axisLine: { LineStyle: {color:'#fff'}  },
+            data: chartLine4_data.month
+            
+          } 
+        ],
+        yAxis: [
+          { 
+            type: 'value',  
+            axisTick: { show: true },  
+   
+            
+          }
+        ],
+        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() {
     //获取请求表格数据的参数