|
@@ -1,435 +1,590 @@
|
|
|
<template>
|
|
|
- <div class="branch">
|
|
|
- <el-form
|
|
|
- :inline="true"
|
|
|
- :model="dataForm"
|
|
|
- @keyup.enter.native="getDataList()">
|
|
|
- <el-form-item style="width: 500px">
|
|
|
- <el-input
|
|
|
- v-model="dataForm.key"
|
|
|
- placeholder="请输入关键字"
|
|
|
- clearable style="width: 500px"></el-input>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item>
|
|
|
- <el-button @click="getDataList()">查询</el-button>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item>
|
|
|
- <el-button v-if="isAuth('sys:role:save')" type="primary" @click="addOrUpdateHandle()">新增</el-button>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item>
|
|
|
- <el-button v-if="isAuth('sys:role:delete')" type="danger" @click="deleteHandle()" :disabled="selectionDataList.length <= 0">批量删除</el-button>
|
|
|
- </el-form-item>
|
|
|
- </el-form>
|
|
|
- <el-table
|
|
|
- :data="dataList"
|
|
|
- @selection-change="selectionChangeHandle"
|
|
|
- v-loading="dataListLoading"
|
|
|
- style="width: 100%">
|
|
|
- <el-table-column
|
|
|
- type="selection"
|
|
|
- header-align="center"
|
|
|
- align="center"
|
|
|
- width="50">
|
|
|
- </el-table-column>
|
|
|
- <el-table-column
|
|
|
- prop="pigletEartag"
|
|
|
- header-align="center"
|
|
|
- align="center"
|
|
|
- label="小猪耳标">
|
|
|
- </el-table-column>
|
|
|
- <el-table-column
|
|
|
- prop="sowEartag"
|
|
|
- header-align="center"
|
|
|
- align="center"
|
|
|
- label="母亲耳标">
|
|
|
- </el-table-column>
|
|
|
- <el-table-column
|
|
|
- prop="boarEartag"
|
|
|
- header-align="center"
|
|
|
- align="center"
|
|
|
- label="父亲耳标">
|
|
|
- </el-table-column>
|
|
|
- <el-table-column
|
|
|
- fixed="right"
|
|
|
- header-align="center"
|
|
|
- align="center"
|
|
|
- label="操作">
|
|
|
- <template slot-scope="scope">
|
|
|
- <el-button v-if="isAuth('sys:user:update')" type="text" size="small" @click="addOrUpdateHandle(scope.row)">修改</el-button>
|
|
|
- <el-button v-if="isAuth('sys:user:delete')" type="text" size="small" @click="deleteHandle(scope.row.id)">删除</el-button>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- </el-table>
|
|
|
- <el-dialog
|
|
|
- :title="!form.id ? '新增' : '修改'"
|
|
|
- :close-on-click-modal="false"
|
|
|
- :visible.sync="visible"
|
|
|
- @close="cancel">
|
|
|
- <el-form :model="form" ref="form" @keyup.enter.native="formSubmit()" label-width="80px">
|
|
|
- <el-form-item label="小猪耳标">
|
|
|
- <!-- <div class="block">
|
|
|
- <el-cascader
|
|
|
- v-model="form.pigletEartag"
|
|
|
- :options="options"
|
|
|
- :props="{ expandTrigger: 'hover' }"
|
|
|
- @change="handleChange"></el-cascader>
|
|
|
- </div> -->
|
|
|
- <el-cascader :options="options" :show-all-levels="false" v-model="form.pigletEartag" clearable></el-cascader>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="母亲耳标">
|
|
|
- <el-cascader :options="options" :show-all-levels="false" v-model="form.sowEartag" clearable></el-cascader>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="父亲耳标">
|
|
|
- <el-cascader :options="options" :show-all-levels="false" v-model="form.boarEartag" clearable></el-cascader>
|
|
|
- </el-form-item>
|
|
|
- </el-form>
|
|
|
- <span slot="footer" class="dialog-footer">
|
|
|
- <el-button @click="cancel">取消</el-button>
|
|
|
- <el-button type="primary" @click="formSubmit()">确定</el-button>
|
|
|
- </span>
|
|
|
- </el-dialog>
|
|
|
+ <div class="mod-role">
|
|
|
+ <el-container>
|
|
|
+ <!-- form表单 -->
|
|
|
+ <el-header>
|
|
|
+ <div class="rect rect-form">
|
|
|
+ <el-form :inline="true" :model="form" @keyup.enter.native="getDataList()" size="mini" ref="form">
|
|
|
+ <el-form-item>
|
|
|
+ <el-input v-model="form.eartag" placeholder="耳标" clearable></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item style="width: 140px">
|
|
|
+ <el-select placeholder="性别" v-model="form.sex">
|
|
|
+ <el-option
|
|
|
+ v-for="item in gender"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.value">
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item style="width: 140px">
|
|
|
+ <el-select placeholder="品种" v-model="form.breed">
|
|
|
+ <el-option
|
|
|
+ v-for="item in breed"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.value">
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item style="width: 140px">
|
|
|
+ <el-select placeholder="健康状态" v-model="form.healthStatus">
|
|
|
+ <el-option
|
|
|
+ v-for="item in healthStatus"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.value">
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item style="width: 140px">
|
|
|
+ <el-select placeholder="养殖状态" v-model="form.outFenceStatus">
|
|
|
+ <el-option
|
|
|
+ v-for="item in outFenceStatus"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.value">
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item style="width: 140px">
|
|
|
+ <el-select placeholder="猪舍" v-model="form.pigstyId" @change="pigstyChange">
|
|
|
+ <el-option
|
|
|
+ v-for="item in pigstyList"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.value">
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item style="width: 140px">
|
|
|
+ <el-select placeholder="单元" v-model="form.unitId" @change="ifPigsty('unitId')">
|
|
|
+ <el-option
|
|
|
+ v-for="item in unitSelectedList"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.value">
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item style="width: 140px">
|
|
|
+ <el-select placeholder="栏期" v-model="form.periodId" @change="ifPigsty('periodId')">
|
|
|
+ <el-option
|
|
|
+ v-for="item in periodSelectedList"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.value">
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ <el-form-item>
|
|
|
+ <el-button @click="getDataList()" icon="el-icon-search">查 询</el-button>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item>
|
|
|
+ <el-button
|
|
|
+ icon="el-icon-circle-close"
|
|
|
+ @click="clearAll">清 空</el-button>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ </div>
|
|
|
+ </el-header>
|
|
|
+ <!-- role表格 -->
|
|
|
+ <el-main>
|
|
|
+ <div class="rect rect-table">
|
|
|
+ <!-- 新增 删除按钮 -->
|
|
|
+ <el-form inline size="mini">
|
|
|
+ <el-form-item>
|
|
|
+ <el-button
|
|
|
+ icon="el-icon-plus"
|
|
|
+ @click="addOrUpdateHandle()">
|
|
|
+ 新 增
|
|
|
+ </el-button>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item>
|
|
|
+ <el-button
|
|
|
+ icon="el-icon-delete"
|
|
|
+ type="danger"
|
|
|
+ @click="deleteHandle()"
|
|
|
+ :disabled="dataListSelections.length <= 0">
|
|
|
+ 删 除
|
|
|
+ </el-button>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item>
|
|
|
+ <el-button
|
|
|
+ icon="el-icon-edit"
|
|
|
+ type="danger"
|
|
|
+ @click="addOrUpdateHandle()"
|
|
|
+ :disabled="dataListSelections.length <= 0">
|
|
|
+ 批量修改
|
|
|
+ </el-button>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+
|
|
|
+ <el-table
|
|
|
+ :data="dataList"
|
|
|
+ border
|
|
|
+ stripe
|
|
|
+ v-loading="dataListLoading"
|
|
|
+ @selection-change="selectionChangeHandle"
|
|
|
+ style="width: 100%;"
|
|
|
+ size="mini"
|
|
|
+ height="540"
|
|
|
+ :header-cell-style="{background:'rgb(245,245,245)',color:'#000',height: '45px',fontSize: '13px',fontWeight: 'normal',borderBottom: '1px solid #ccc'}"
|
|
|
+ :cell-style="{color: '#888',fontSize: '13px'}">
|
|
|
+ <el-table-column
|
|
|
+ type="selection"
|
|
|
+ header-align="center"
|
|
|
+ align="center"
|
|
|
+ width="50">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="id"
|
|
|
+ header-align="center"
|
|
|
+ align="center"
|
|
|
+ label="id">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="eartag"
|
|
|
+ header-align="center"
|
|
|
+ align="center"
|
|
|
+ label="耳标">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="sex"
|
|
|
+ header-align="center"
|
|
|
+ align="center"
|
|
|
+ label="性别">
|
|
|
+ </el-table-column>
|
|
|
+ <!-- <el-table-column
|
|
|
+ prop="birthday"
|
|
|
+ header-align="center"
|
|
|
+ align="center"
|
|
|
+ label="出生日期">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ header-align="center"
|
|
|
+ align="center"
|
|
|
+ label="健康状态">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <span>{{scope.row.healthStatus? '健康': '不健康'}}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ header-align="center"
|
|
|
+ align="center"
|
|
|
+ label="养殖状态">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <span>{{scope.row.outFenceStatus? '出栏': '育肥'}}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="breed"
|
|
|
+ header-align="center"
|
|
|
+ align="center"
|
|
|
+ label="品种">
|
|
|
+ </el-table-column> -->
|
|
|
+ <el-table-column
|
|
|
+ prop="pigstyName"
|
|
|
+ header-align="center"
|
|
|
+ align="center"
|
|
|
+ label="猪舍">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="unitName"
|
|
|
+ header-align="center"
|
|
|
+ align="center"
|
|
|
+ label="单元">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="periodName"
|
|
|
+ header-align="center"
|
|
|
+ align="center"
|
|
|
+ label="栏期">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ fixed="right"
|
|
|
+ header-align="center"
|
|
|
+ align="center"
|
|
|
+ label="操作">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-button
|
|
|
+ type="text"
|
|
|
+ size="medium"
|
|
|
+ style="color: rgb(24,144,255)"
|
|
|
+ @click="detailsHandle(scope.row)">
|
|
|
+ 查看谱系
|
|
|
+ </el-button>
|
|
|
+ <!-- <el-button
|
|
|
+ type="text"
|
|
|
+ size="medium"
|
|
|
+ @click="addOrUpdateHandle(scope.row)"
|
|
|
+ style="color: rgb(24,144,255)">
|
|
|
+ 编辑
|
|
|
+ </el-button> -->
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ <el-pagination
|
|
|
+ @size-change="sizeChangeHandle"
|
|
|
+ @current-change="currentChangeHandle"
|
|
|
+ :current-page="pageIndex"
|
|
|
+ :page-sizes="[10, 20, 50, 100]"
|
|
|
+ :page-size="pageSize"
|
|
|
+ :total="totalPage"
|
|
|
+ layout="total, sizes, prev, pager, next, jumper">
|
|
|
+ </el-pagination>
|
|
|
+ <!-- 弹窗, 新增 / 修改 -->
|
|
|
+ <Details v-if="detailsVisible" ref="details" @refreshDataList="getDataList"></Details>
|
|
|
+ </div>
|
|
|
+ </el-main>
|
|
|
+
|
|
|
+
|
|
|
+ </el-container>
|
|
|
</div>
|
|
|
</template>
|
|
|
+
|
|
|
<script>
|
|
|
-export default {
|
|
|
- data () {
|
|
|
- return {
|
|
|
- dataForm: {
|
|
|
- key: ''
|
|
|
- },
|
|
|
- dataList: [
|
|
|
- {
|
|
|
- buildTime: '',
|
|
|
- id: '',
|
|
|
- location: '',
|
|
|
- manager: '',
|
|
|
- name: '',
|
|
|
- }
|
|
|
- ],
|
|
|
- pageIndex: 1,
|
|
|
- pageSize: 10,
|
|
|
- totalPage: 0,
|
|
|
- dataListLoading: false,
|
|
|
- selectionDataList: [],
|
|
|
- visible: false,
|
|
|
- form: {
|
|
|
- id: '',
|
|
|
- pigletEartag: [],
|
|
|
- sowEartag: [],
|
|
|
- boarEartag: []
|
|
|
- },
|
|
|
- options: [],
|
|
|
- pigs: []
|
|
|
- }
|
|
|
- },
|
|
|
- created () {
|
|
|
- this.getDataList()
|
|
|
- },
|
|
|
- mounted () {
|
|
|
- this.getCascader()
|
|
|
- },
|
|
|
- methods: {
|
|
|
- // 获取数据列表
|
|
|
- getDataList () {
|
|
|
- this.dataListLoading = true
|
|
|
- this.$http({
|
|
|
- url: this.$http.adornUrl('/management/yearpigpedigree/list'),
|
|
|
- method: 'post'
|
|
|
- }).then(({ data }) => {
|
|
|
- if (data && data.code === 0) {
|
|
|
- this.dataList = data.page.list
|
|
|
- this.totalPage = data.page.totalCount
|
|
|
- } else {
|
|
|
- this.dataList = []
|
|
|
- this.totalPage = 0
|
|
|
- }
|
|
|
- this.dataListLoading = false
|
|
|
- })
|
|
|
- },
|
|
|
- // 每页数
|
|
|
- sizeChangeHandle (val) {
|
|
|
- this.pageSize = val
|
|
|
- this.pageIndex = 1
|
|
|
- this.getDataList()
|
|
|
- },
|
|
|
- // 当前页
|
|
|
- currentChangeHandle (val) {
|
|
|
- this.pageIndex = val
|
|
|
- this.getDataList()
|
|
|
- },
|
|
|
- // 新增 or 修改谱系信息
|
|
|
- addOrUpdateHandle (row) {
|
|
|
- // 显示谱系新增 or 修改面板
|
|
|
- this.visible = true
|
|
|
- if (row) {
|
|
|
- this.form.id = row.id
|
|
|
- // 获取小猪耳标
|
|
|
- for (let item of this.pigs) {
|
|
|
- if (item.value === row.pigletEartag) {
|
|
|
- this.form.pigletEartag = item.cascader
|
|
|
- break
|
|
|
+ import Details from './pbped-details.vue'
|
|
|
+ export default {
|
|
|
+ data () {
|
|
|
+ return {
|
|
|
+ form: {
|
|
|
+ eartag: '',
|
|
|
+ sex: '',
|
|
|
+ breed: '',
|
|
|
+ healthStatus: '',
|
|
|
+ outFenceStatus: '',
|
|
|
+ periodId: '',
|
|
|
+ pigstyId: '',
|
|
|
+ unitId: ''
|
|
|
+ },
|
|
|
+ dataList: [],
|
|
|
+ pageIndex: 1,
|
|
|
+ pageSize: 10,
|
|
|
+ totalPage: 0,
|
|
|
+ dataListLoading: false,
|
|
|
+ dataListSelections: [],
|
|
|
+ detailsVisible: false,
|
|
|
+ farmId: undefined,
|
|
|
+ gender: [
|
|
|
+ {
|
|
|
+ value: '公',
|
|
|
+ label: '公'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ value: '母',
|
|
|
+ label: '母'
|
|
|
}
|
|
|
- }
|
|
|
- // 获取母亲耳标
|
|
|
- for (let item of this.pigs) {
|
|
|
- if (item.value === row.sowEartag) {
|
|
|
- this.form.sowEartag = item.cascader
|
|
|
- break
|
|
|
+ ],
|
|
|
+ breed: [
|
|
|
+ {
|
|
|
+ value: 1,
|
|
|
+ label: '杜巴嘉'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ value: 2,
|
|
|
+ label: '长白'
|
|
|
}
|
|
|
- }
|
|
|
- // 获取父亲耳标
|
|
|
- for (let item of this.pigs) {
|
|
|
- if (item.value === row.boarEartag) {
|
|
|
- this.form.boarEartag = item.cascader
|
|
|
- break
|
|
|
+ ],
|
|
|
+ healthStatus: [
|
|
|
+ {
|
|
|
+ value: true,
|
|
|
+ label: '健康'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ value: false,
|
|
|
+ label: '不健康'
|
|
|
}
|
|
|
- }
|
|
|
+ ],
|
|
|
+ outFenceStatus: [
|
|
|
+ {
|
|
|
+ value: 0,
|
|
|
+ label: '育肥'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ value: 1,
|
|
|
+ label: '出栏'
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ periodList: [], // 所有栏期
|
|
|
+ periodSelectedList: [], // 根据栋舍限制的栏期
|
|
|
+ pigstyList: [], // 所有栋舍
|
|
|
+ unitList: [], // 所有单元
|
|
|
+ unitSelectedList: [], // 根据栋舍限制的单元
|
|
|
+ labelPosition: 'right'
|
|
|
}
|
|
|
},
|
|
|
- // 获取级联选择器
|
|
|
- getCascader () {
|
|
|
- // 获取所有年猪信息
|
|
|
- this.$http({
|
|
|
- url: this.$http.adornUrl('/management/yearpigbase/list'),
|
|
|
- method: 'post'
|
|
|
- }).then(async ({ data }) => {
|
|
|
- // 获取所有牧场信息
|
|
|
- let pastureResult = await this.$http({
|
|
|
- url: this.$http.adornUrl('/management/pasture/list'),
|
|
|
- method: 'post'
|
|
|
- })
|
|
|
- let pastures = []
|
|
|
- pastureResult.data.page.list.forEach(pasture => {
|
|
|
- let item = {
|
|
|
- label: pasture.name,
|
|
|
- value: pasture.id,
|
|
|
- children: []
|
|
|
- }
|
|
|
- pastures.push(item)
|
|
|
- });
|
|
|
- // 获取所有猪舍信息
|
|
|
- let pigstyResult = await this.$http({
|
|
|
- url: this.$http.adornUrl('/management/pigsty/list'),
|
|
|
- method: 'post'
|
|
|
- })
|
|
|
- let pigstys = []
|
|
|
- pigstyResult.data.page.list.forEach(pigsty => {
|
|
|
- let item = {
|
|
|
- label: pigsty.number,
|
|
|
- value: pigsty.id,
|
|
|
- pastureId: pigsty.pastureId,
|
|
|
- children: []
|
|
|
- }
|
|
|
- pigstys.push(item)
|
|
|
- });
|
|
|
- // 获取所有单元信息
|
|
|
- let unitResult = await this.$http({
|
|
|
- url: this.$http.adornUrl('/management/unit/list'),
|
|
|
- method: 'post'
|
|
|
- })
|
|
|
- let units = []
|
|
|
- unitResult.data.page.list.forEach(unit => {
|
|
|
- let item = {
|
|
|
- label: unit.number,
|
|
|
- value: unit.id,
|
|
|
- pigstyId: unit.pigstyId,
|
|
|
- pastureId: unit.pastureId,
|
|
|
- children: []
|
|
|
+ components: {
|
|
|
+ Details
|
|
|
+ },
|
|
|
+ activated () {
|
|
|
+ this.getDataList()
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ // 获取数据列表
|
|
|
+ getDataList () {
|
|
|
+ this.dataListLoading = true
|
|
|
+ this.$http({
|
|
|
+ url: this.$http.adornUrl('/management/yearpigbase/list'),
|
|
|
+ method: 'get',
|
|
|
+ params: this.$http.adornParams({
|
|
|
+ 'page': this.pageIndex,
|
|
|
+ 'limit': this.pageSize
|
|
|
+ // 'username': this.form.username,
|
|
|
+ // 'departmentCode': this.form.departmentCode,
|
|
|
+ // 'jobCode': this.form.jobCode,
|
|
|
+ // 'sex': this.form.gender,
|
|
|
+ // 'farmId': this.farmId
|
|
|
+ })
|
|
|
+ }).then(async({data}) => {
|
|
|
+ // // 获取所有牧场
|
|
|
+ // let pastureList = []
|
|
|
+ // let pastureResult = await this.$http({
|
|
|
+ // url: this.$http.adornUrl("/management/farm/findAll"),
|
|
|
+ // method: "post",
|
|
|
+ // })
|
|
|
+ // pastureResult.data.all && (pastureList = pastureResult.data.all)
|
|
|
+ // 栋舍List
|
|
|
+ this.pigstyList = []
|
|
|
+ let pigstyList = []
|
|
|
+ let pigstyR = await this.$http({
|
|
|
+ url: this.$http.adornUrl("/management/pigsty/findAll"),
|
|
|
+ method: "get",
|
|
|
+ params: this.$http.adornParams({})
|
|
|
+ })
|
|
|
+ pigstyR.data.all && (pigstyList = pigstyR.data.all)
|
|
|
+ pigstyList.forEach(pigsty => {
|
|
|
+ let item = {
|
|
|
+ value: pigsty.id,
|
|
|
+ label: pigsty.number
|
|
|
+ }
|
|
|
+ this.pigstyList.push(item)
|
|
|
+ })
|
|
|
+ // 单元List
|
|
|
+ this.unitList = []
|
|
|
+ let unitList = []
|
|
|
+ let unitR = await this.$http({
|
|
|
+ url: this.$http.adornUrl("/management/unit/findAll"),
|
|
|
+ method: "get",
|
|
|
+ params: this.$http.adornParams({})
|
|
|
+ })
|
|
|
+ unitR.data.all && (unitList = unitR.data.all)
|
|
|
+ unitList.forEach(unit => {
|
|
|
+ let item = {
|
|
|
+ value: unit.id,
|
|
|
+ label: unit.number,
|
|
|
+ pigstyId: unit.pigstyId,
|
|
|
+ farmId: unit.farmId
|
|
|
+ }
|
|
|
+ this.unitList.push(item)
|
|
|
+ })
|
|
|
+ this.unitSelectedList = this.unitList
|
|
|
+ // 栏期List
|
|
|
+ this.periodList = []
|
|
|
+ let periodList = []
|
|
|
+ let periodR = await this.$http({
|
|
|
+ url: this.$http.adornUrl("/management/period/findAll"),
|
|
|
+ method: "get",
|
|
|
+ params: this.$http.adornParams({})
|
|
|
+ })
|
|
|
+ periodR.data.all && (periodList = periodR.data.all)
|
|
|
+ periodList.forEach(period => {
|
|
|
+ let item = {
|
|
|
+ value: period.id,
|
|
|
+ label: period.number,
|
|
|
+ pigstyId: period.pigstyId
|
|
|
+ }
|
|
|
+ this.periodList.push(item)
|
|
|
+ })
|
|
|
+ this.periodSelectedList = this.periodList
|
|
|
+ // 获取猪只List
|
|
|
+ if (data && data.code === 0) {
|
|
|
+ this.dataList = data.page.list
|
|
|
+ this.totalPage = data.page.totalCount
|
|
|
+ } else {
|
|
|
+ this.dataList = []
|
|
|
+ this.totalPage = 0
|
|
|
+ this.$message.error(data.msg)
|
|
|
}
|
|
|
- units.push(item)
|
|
|
- });
|
|
|
- if (data && data.code === 0) {
|
|
|
- let pigs = data.page.list
|
|
|
- // 将所有猪放进单元中
|
|
|
- pigs.forEach(pig => {
|
|
|
- for (let item of units) {
|
|
|
- if (pig.unitId === item.value) {
|
|
|
- let p = {
|
|
|
- label: pig.eartag,
|
|
|
- value: pig.eartag,
|
|
|
- cascader: [item.pastureId, item.pigstyId, item.value, pig.eartag]
|
|
|
- }
|
|
|
- item.children.push(p)
|
|
|
- this.pigs.push(p)
|
|
|
- break
|
|
|
+ // 猪只信息与单元、牧场、栏期、栋舍对应
|
|
|
+ this.dataList.forEach((item) => {
|
|
|
+ // 单元对应
|
|
|
+ for (let unit of this.unitList) {
|
|
|
+ if (item.unitId === unit.value) {
|
|
|
+ item.unitNumber = unit.label;
|
|
|
+ item.farmId = unit.farmId;
|
|
|
+ item.pigstyId = unit.pigstyId;
|
|
|
+ break;
|
|
|
}
|
|
|
}
|
|
|
- });
|
|
|
- // 将所有单元放进猪舍里面
|
|
|
- units.forEach(unit => {
|
|
|
- for (let item of pigstys) {
|
|
|
- if (unit.pigstyId === item.value) {
|
|
|
- item.children.push(unit)
|
|
|
- break
|
|
|
+ // // 牧场对应
|
|
|
+ // for (let pasture of pastureList) {
|
|
|
+ // if (item.farmId === pasture.id) {
|
|
|
+ // item.name = pasture.name;
|
|
|
+ // break;
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // 栋舍对应
|
|
|
+ for (let pighouse of this.pigstyList) {
|
|
|
+ if (item.pigstyId === pighouse.value) {
|
|
|
+ item.phNumber = pighouse.label;
|
|
|
+ break;
|
|
|
}
|
|
|
}
|
|
|
- });
|
|
|
- // 将所有猪舍放进牧场里
|
|
|
- pigstys.forEach(pigsty => {
|
|
|
- for (let item of pastures) {
|
|
|
- if (pigsty.pastureId === item.value) {
|
|
|
- item.children.push(pigsty)
|
|
|
- break
|
|
|
+ // 栏期对应
|
|
|
+ for (let period of this.periodList) {
|
|
|
+ if (item.periodId === period.value) {
|
|
|
+ item.periodNumber = period.label;
|
|
|
+ break;
|
|
|
}
|
|
|
}
|
|
|
- });
|
|
|
- }
|
|
|
- this.options = pastures
|
|
|
- })
|
|
|
- },
|
|
|
- // 选择n个牧场
|
|
|
- selectionChangeHandle (val) {
|
|
|
- this.selectionDataList = []
|
|
|
- val.forEach(item => {
|
|
|
- this.selectionDataList.push(item.id)
|
|
|
- });
|
|
|
- },
|
|
|
- // 删除n个牧场
|
|
|
- deleteHandle (id) {
|
|
|
- this.$confirm(`确定删除小猪谱系信息?`, '提示', {
|
|
|
- confirmButtonText: '确定',
|
|
|
- cancelButtonText: '取消',
|
|
|
- type: 'warning'
|
|
|
- }).then(() => {
|
|
|
- // 删除操作
|
|
|
- if (id) {
|
|
|
- this.selectionDataList.push(id)
|
|
|
+ })
|
|
|
+ this.dataListLoading = false
|
|
|
+ })
|
|
|
+ },
|
|
|
+ // 根据栋舍选择限制单元和栏期
|
|
|
+ pigstyChange (val) {
|
|
|
+ this.unitSelectedList = this.unitList.filter(item => item.pigstyId === val)
|
|
|
+ this.periodSelectedList = this.periodList.filter(item => item.pigstyId === val)
|
|
|
+ },
|
|
|
+ // 需要先选择猪舍,才能选择单元或栏期
|
|
|
+ ifPigsty (val) {
|
|
|
+ if (!this.form.pigstyId) {
|
|
|
+ this.$message.error('请先选择猪舍')
|
|
|
+ this.form[val] = ''
|
|
|
}
|
|
|
- if (this.selectionDataList.length <= 0) {
|
|
|
- return
|
|
|
+ },
|
|
|
+ // form表单清空,单元SelectedList 和 栏期SelectedList重置
|
|
|
+ clearAll () {
|
|
|
+ for (let i in this.form) {
|
|
|
+ this.form[i] = ''
|
|
|
}
|
|
|
- this.$http({
|
|
|
- url: this.$http.adornUrl('/management/yearpigpedigree/delete'),
|
|
|
- method: 'post',
|
|
|
- data: this.$http.adornData(this.selectionDataList, false)
|
|
|
- }).then(result => {
|
|
|
- if (result.data.code === 0) {
|
|
|
- this.$message({
|
|
|
- message: '成功删除小猪谱系信息',
|
|
|
- type: 'success',
|
|
|
- duration: 1000
|
|
|
- })
|
|
|
- } else {
|
|
|
- this.$message.error('删除小猪谱系信息失败');
|
|
|
- }
|
|
|
- this.resetForm()
|
|
|
- this.selectionDataList = []
|
|
|
+ this.unitSelectedList = this.unitList
|
|
|
+ this.periodSelectedList = this.periodList
|
|
|
+ },
|
|
|
+ // 每页数
|
|
|
+ sizeChangeHandle (val) {
|
|
|
+ this.pageSize = val
|
|
|
+ this.pageIndex = 1
|
|
|
+ this.getDataList()
|
|
|
+ },
|
|
|
+ // 当前页
|
|
|
+ currentChangeHandle (val) {
|
|
|
+ this.pageIndex = val
|
|
|
+ this.getDataList()
|
|
|
+ },
|
|
|
+ // 多选
|
|
|
+ selectionChangeHandle (val) {
|
|
|
+ this.dataListSelections = val
|
|
|
+ },
|
|
|
+ // 查看谱系
|
|
|
+ detailsHandle (pig) {
|
|
|
+ this.detailsVisible = true
|
|
|
+ // var ids = id ? [id] : this.dataListSelections.map(item => {
|
|
|
+ // return {
|
|
|
+ // id: item.id,
|
|
|
+ // eartag: item.eartag
|
|
|
+ // }
|
|
|
+ // })
|
|
|
+ this.$nextTick(() => {
|
|
|
+ this.$refs.details.init(pig.eartag)
|
|
|
})
|
|
|
- }).catch(() => {})
|
|
|
- },
|
|
|
- formSubmit () {
|
|
|
- if (this.form.pigletEartag[3] === this.form.sowEartag[3] || this.form.pigletEartag[3] === this.form.boarEartag[3] || this.form.sowEartag[3] === this.form.boarEartag[3]) {
|
|
|
- // 请勿选择相同猪
|
|
|
- this.$confirm(`请勿选择相同猪`, '提示', {
|
|
|
- confirmButtonText: '确定',
|
|
|
- cancelButtonText: '取消',
|
|
|
- type: 'warning'
|
|
|
- }).then(() => {
|
|
|
- return
|
|
|
- }).catch(() => {})
|
|
|
- return
|
|
|
- }
|
|
|
- // 正常操作
|
|
|
- if (this.form.id) {
|
|
|
- // 修改
|
|
|
- if (this.confirmInput()) {
|
|
|
- // 进行修改操作
|
|
|
- this.$http({
|
|
|
- url: this.$http.adornUrl('/management/yearpigpedigree/update'),
|
|
|
- method: 'post',
|
|
|
- data: this.$http.adornData({
|
|
|
- id: this.form.id,
|
|
|
- pigletEartag: this.form.pigletEartag[3],
|
|
|
- sowEartag: this.form.sowEartag[3],
|
|
|
- boarEartag: this.form.boarEartag[3]
|
|
|
- })
|
|
|
- }).then(result => {
|
|
|
- if (result.data.code === 0) {
|
|
|
- this.resetForm();
|
|
|
- this.visible = false;
|
|
|
- this.$message({
|
|
|
- message: '成功修改小猪谱系信息',
|
|
|
- type: 'success',
|
|
|
- duration: 1000
|
|
|
- })
|
|
|
- } else {
|
|
|
- this.$message.error('修改小猪谱系信息失败');
|
|
|
- }
|
|
|
- })
|
|
|
- } else {
|
|
|
- // 请输入完整
|
|
|
- this.$confirm(`请输入完整`, '提示', {
|
|
|
- confirmButtonText: '确定',
|
|
|
- cancelButtonText: '取消',
|
|
|
- type: 'warning'
|
|
|
- }).then(() => {
|
|
|
- return
|
|
|
- }).catch(() => {})
|
|
|
- }
|
|
|
- } else {
|
|
|
- // 新增
|
|
|
- if (this.confirmInput(1)) {
|
|
|
- // 进行新增操作
|
|
|
+ },
|
|
|
+ // 删除
|
|
|
+ deleteHandle (id) {
|
|
|
+ var ids = id ? [id] : this.dataListSelections.map(item => {
|
|
|
+ return item.id
|
|
|
+ })
|
|
|
+ this.$confirm(`确定对[id=${ids.join(',')}]进行[${id ? '删除' : '批量删除'}]操作?`, '提示', {
|
|
|
+ confirmButtonText: '确定',
|
|
|
+ cancelButtonText: '取消',
|
|
|
+ type: 'warning'
|
|
|
+ }).then(() => {
|
|
|
this.$http({
|
|
|
- url: this.$http.adornUrl('/management/yearpigpedigree/save'),
|
|
|
+ url: this.$http.adornUrl('/management/yearpigbase/delete'),
|
|
|
method: 'post',
|
|
|
- data: this.$http.adornData({
|
|
|
- pigletEartag: this.form.pigletEartag[3],
|
|
|
- sowEartag: this.form.sowEartag[3],
|
|
|
- boarEartag: this.form.boarEartag[3]
|
|
|
- })
|
|
|
- }).then(result => {
|
|
|
- if (result.data.code === 0) {
|
|
|
- this.resetForm();
|
|
|
- this.visible = false;
|
|
|
+ data: this.$http.adornData(ids, false)
|
|
|
+ }).then(({data}) => {
|
|
|
+ if (data && data.code === 0) {
|
|
|
this.$message({
|
|
|
- message: '成功添加小猪谱系信息',
|
|
|
+ message: '操作成功',
|
|
|
type: 'success',
|
|
|
- duration: 1000
|
|
|
+ duration: 1500,
|
|
|
+ onClose: () => {
|
|
|
+ this.getDataList()
|
|
|
+ }
|
|
|
})
|
|
|
} else {
|
|
|
- this.$message.error('添加小猪谱系信息失败');
|
|
|
+ this.$message.error(data.msg)
|
|
|
}
|
|
|
})
|
|
|
- } else {
|
|
|
- // 请输入完整
|
|
|
- this.$confirm(`请输入完整`, '提示', {
|
|
|
- confirmButtonText: '确定',
|
|
|
- cancelButtonText: '取消',
|
|
|
- type: 'warning'
|
|
|
- }).then(() => {
|
|
|
- return
|
|
|
- }).catch(() => {})
|
|
|
- }
|
|
|
+ }).catch(() => {})
|
|
|
}
|
|
|
},
|
|
|
- // 判断新增/修改时是否输入完整
|
|
|
- confirmInput (val) {
|
|
|
- console.log('判断是否输入完整');
|
|
|
- console.log(val);
|
|
|
- val && (delete this.form.id, delete this.form.deleted, delete this.form.gmtCreate, delete this.form.gmtModified)
|
|
|
- for (let i in this.form) {
|
|
|
- if (!this.form[i].toString()) {
|
|
|
- return false
|
|
|
+ watch: {
|
|
|
+ 'form.pigstyId': {
|
|
|
+ handler(newValue, oldValue) {
|
|
|
+ if (oldValue) {
|
|
|
+ this.form.unitId = ''
|
|
|
+ this.form.periodId = ''
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
- return true
|
|
|
- },
|
|
|
- // 清空form
|
|
|
- resetForm () {
|
|
|
- for (let i in this.form) {
|
|
|
- this.form[i] = []
|
|
|
- }
|
|
|
- this.form.id = ''
|
|
|
- this.getDataList()
|
|
|
- },
|
|
|
- // 取消
|
|
|
- cancel () {
|
|
|
- this.visible = false
|
|
|
- this.resetForm()
|
|
|
}
|
|
|
}
|
|
|
-}
|
|
|
</script>
|
|
|
<style scoped>
|
|
|
-</style>
|
|
|
+.rect {
|
|
|
+ background-color: #fff;
|
|
|
+ padding: 30px 15px;
|
|
|
+ border-radius: 5px;
|
|
|
+ border: 1px solid #e8e8e8;
|
|
|
+}
|
|
|
+.rect-form {
|
|
|
+ padding-bottom: 10px;
|
|
|
+}
|
|
|
+.rect-table {
|
|
|
+ margin-top: 20px;
|
|
|
+}
|
|
|
+.demo-table-expand {
|
|
|
+ font-size: 0;
|
|
|
+ margin-left: 40px;
|
|
|
+}
|
|
|
+.demo-table-expand label {
|
|
|
+ width: 90px;
|
|
|
+ color: #99a9bf;
|
|
|
+}
|
|
|
+.demo-table-expand .el-form-item {
|
|
|
+ margin-right: 0;
|
|
|
+ margin-bottom: 0;
|
|
|
+ width: 80%;
|
|
|
+}
|
|
|
+.el-table .height {
|
|
|
+ background: rgba(254, 254, 254, 0.5);
|
|
|
+}
|
|
|
+/deep/ .el-table--mini td, .el-table--mini th {
|
|
|
+ padding: 3px 0 !important;
|
|
|
+ height: 20px !important;
|
|
|
+}
|
|
|
+/deep/ .el-checkbox__input.is-checked+.el-checkbox__label {
|
|
|
+ color: rgb(24,144,255);
|
|
|
+ background-color: rgb(24,144,255);
|
|
|
+ border-color: rgb(24,144,255);
|
|
|
+}
|
|
|
+/deep/.el-table .el-checkbox__input.is-checked .el-checkbox__inner, .el-checkbox__input.is-indeterminate .el-checkbox__inner {
|
|
|
+ background-color: rgb(24,144,255);
|
|
|
+ border-color: rgb(24,144,255);
|
|
|
+}
|
|
|
+/deep/.el-table .el-checkbox__inner:hover {
|
|
|
+ border-color: rgb(24,144,255);
|
|
|
+}
|
|
|
+/deep/.el-table .el-checkbox__input.is-focus .el-checkbox__inner {
|
|
|
+ border-color: rgb(24,144,255);
|
|
|
+}
|
|
|
+/deep/.el-table #select .cell .el-checkbox__input.is-checked .el-checkbox__inner, .el-checkbox__input.is-indeterminate .el-checkbox__inner {
|
|
|
+ background-color: rgb(24,144,255);
|
|
|
+ border-color: rgb(24,144,255);
|
|
|
+}
|
|
|
+</style>
|