修蹄,去势修改,新增羊只页面

This commit is contained in:
zyh 2025-07-14 16:40:36 +08:00
parent 5d4b182f8d
commit d26bd861fd
5 changed files with 128 additions and 144 deletions

View File

@ -42,3 +42,11 @@ export function delTrans_group(id) {
method: 'delete'
})
}
// 获取羊舍列表
export function listSheepfold() {
return request({
url: '/produce/sheepfold/list',
method: 'get',
});
}

View File

@ -1,48 +1,4 @@
// import request from '@/utils/request'
// // 查询修蹄列表
// export function listFixHoof(query) {
// return request({
// url: '/produce/other/fixHoof/list',
// method: 'get',
// params: query
// })
// }
// // 查询修蹄详细
// export function getFixHoof(id) {
// return request({
// url: '/produce/other/fixHoof' + id,
// method: 'get'
// })
// }
// // 新增修蹄
// export function addFixHoof(data) {
// return request({
// url: '/produce/other/fixHoof',
// method: 'post',
// data: data
// })
// }
// // 修改修蹄
// export function updateFixHoof(data) {
// return request({
// url: '/produce/other/fixHoof/',
// method: 'put',
// data: data
// })
// }
// // 删除修蹄
// export function delFixHoof(id) {
// return request({
// url: '/produce/other/fixHoof/' + id,
// method: 'delete'
// })
// }
// fixHoof.js
import request from '@/utils/request'
// 查询修蹄列表
export function listFixHoof(query) {
@ -55,7 +11,7 @@ export function listFixHoof(query) {
// 查询修蹄详细
export function getFixHoof(id) {
return request({
url: '/produce/other/fixHoof/${id}',
url: `/produce/other/fixHoof/${id}`,
method: 'get'
})
}

View File

@ -1,18 +1,20 @@
<template>
<div class="app-container">
<el-button type="warning" @click="handleExportForm">导出当前表单</el-button>
<el-button type="info" plain icon="Upload" @click="handleImport"
<el-button type="warning" icon="Upload" @click="handleExportForm">导出</el-button>
<el-button type="primary" plain icon="Plus" @click="handleImport"
v-hasPermi="['produce:add_sheep:import']">导入</el-button>
<el-form :model="form" ref="formRef" label-position="left" label-width="100px">
<el-form :model="form" ref="formRef" label-position="left" label-width="100px" style="margin-top:15px">
<el-row :gutter="20">
<el-col :span="10">
<el-form-item label="羊只id" prop="sheepId">
<el-input v-model="form.sheepId" placeholder="请输入羊只id" />
<el-form-item label="耳号" prop="earNumber">
<el-input v-model="form.earNumber" placeholder="请输入羊只id" />
</el-form-item>
</el-col>
<el-col :span="10">
<el-form-item label="羊舍" prop="sheepfold">
<el-input v-model="form.sheepfold" placeholder="请输入羊舍" />
<el-select v-model="form.sheepfold" placeholder="请选择羊舍" clearable>
<el-option v-for="item in sheepfoldOptions" :key="item.id" :label="item.sheepfoldName" :value="item.id" />
</el-select>
</el-form-item>
</el-col>
</el-row>
@ -46,6 +48,8 @@
<el-select v-model="form.gender" placeholder="请选择性别">
<el-option label="公" value="1" />
<el-option label="母" value="0" />
<el-option label="阉羊" value="2" />
<el-option label="兼性" value="3" />
</el-select>
</el-form-item>
</el-col>
@ -105,9 +109,10 @@
<script setup>
import { ref } from 'vue';
import { addSheep } from '@/api/produce/manage_sheep/add_sheep/add_sheep';
import { listSheepfold_management as listSheepfold } from '@/api/sheepfold_management/sheepfold_management';
const form = ref({
sheepId: '',
earNumber: '',
sheepfold: '',
father: '',
mother: '',
@ -124,8 +129,8 @@ const form = ref({
const formRef = ref(null);
const rules = {
sheepId: [{ required: true, message: '请输入羊只id', trigger: 'blur' }],
sheepfold: [{ required: true, message: '请输入羊舍', trigger: 'blur' }],
earNumber: [{ required: true, message: '请输入耳号', trigger: 'blur' }],
sheepfold: [{ required: true, message: '请输入羊舍', trigger: 'change' }],
father: [{ message: '请输入父号', trigger: 'blur' }],
mother: [{ message: '请输入母号', trigger: 'blur' }],
bornWeight: [{ required: true, message: '请输入出生体重', trigger: 'blur' }],
@ -160,7 +165,7 @@ const submitForm = () => {
};
const resetForm = () => {
form.value = {
sheepId: '',
earNumber: '',
sheepfold: '',
father: '',
mother: '',
@ -214,6 +219,20 @@ function handleImportSuccess(res) {
function handleImportError(err) {
proxy.$modal.msgError(JSON.parse(err.message)?.msg || '导入失败');
}
/**获取羊舍数据 */
const sheepfoldOptions = ref([]);
function getSheepfoldOptions() {
listSheepfold({ pageNum: 1, pageSize: 9999 }).then(res => {
sheepfoldOptions.value = res.rows;
});
}
onMounted(() => {
getSheepfoldOptions();
});
</script>
<style scoped>

View File

@ -4,11 +4,15 @@
<el-form-item label="羊只id" prop="sheepId">
<el-input v-model="queryParams.sheepId" placeholder="请输入羊只id" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="转入羊舍" prop="foldTo">
<el-input v-model="queryParams.foldTo" placeholder="请输入转入羊舍" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="转出羊舍" prop="foldFrom">
<el-input v-model="queryParams.foldFrom" placeholder="请输入转出羊舍" clearable @keyup.enter="handleQuery" />
<el-select v-model="queryParams.foldFrom" placeholder="请选择转出羊舍" style="min-width:150px" clearable>
<el-option v-for="item in sheepfoldOptions" :key="item.id" :label="item.sheepfoldName" :value="item.id" />
</el-select>
</el-form-item>
<el-form-item label="转入羊舍" prop="foldTo">
<el-select v-model="queryParams.foldTo" placeholder="请选择转入羊舍" style="min-width:150px" clearable>
<el-option v-for="item in sheepfoldOptions" :key="item.id" :label="item.sheepfoldName" :value="item.id" />
</el-select>
</el-form-item>
<el-form-item label="状态" prop="status">
<el-select v-model="queryParams.status" style="width: 150px;" placeholder="请选择状态" clearable>
@ -49,9 +53,9 @@
<el-table-column type="selection" width="55" align="center" />
<!-- <el-table-column label="${comment}" align="center" prop="id" /> -->
<el-table-column label="羊只id" align="center" prop="sheepId" />
<el-table-column label="转入羊舍" align="center" prop="foldTo" />
<el-table-column label="转出羊舍" align="center" prop="foldFrom" />
<el-table-column label="转群原因" align="center" prop="reason" min-width="160">
<el-table-column label="转出羊舍" align="center" prop="foldFromName" />
<el-table-column label="转入羊舍" align="center" prop="foldToName" />
<el-table-column label="转群原因" align="center" prop="reason" min-width="160">
<template #default="scope">
<dict-tag :options="trans_group_reason" :value="scope.row.reason" />
</template>
@ -83,8 +87,8 @@
</el-table-column>
</el-table>
<pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize"
@pagination="getList" />
<pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum"
v-model:limit="queryParams.pageSize" @pagination="getList" />
<!-- 添加或修改转群记录对话框 -->
<el-dialog :title="title" v-model="open" width="500px" append-to-body>
@ -92,11 +96,15 @@
<el-form-item label="羊只id" prop="sheepId">
<el-input v-model="form.sheepId" placeholder="请输入羊只id" />
</el-form-item>
<el-form-item label="转入羊舍" prop="foldTo">
<el-input v-model="form.foldTo" placeholder="请输入转入羊舍" />
</el-form-item>
<el-form-item label="转出羊舍" prop="foldFrom">
<el-input v-model="form.foldFrom" placeholder="请输入转出羊舍" />
<el-select v-model="form.foldFrom" placeholder="请选择转出羊舍" clearable>
<el-option v-for="fold in sheepfoldOptions" :key="fold.id" :label="fold.sheepfoldName" :value="fold.id" />
</el-select>
</el-form-item>
<el-form-item label="转入羊舍" prop="foldTo">
<el-select v-model="form.foldTo" placeholder="请选择转入羊舍" clearable>
<el-option v-for="fold in sheepfoldOptions" :key="fold.id" :label="fold.sheepfoldName" :value="fold.id" />
</el-select>
</el-form-item>
<el-form-item label="转群原因" prop="reason">
<el-select v-model="form.reason" placeholder="请选择转群原因">
@ -155,6 +163,7 @@
<script setup name="Trans_group">
import { listTrans_group, getTrans_group, delTrans_group, addTrans_group, updateTrans_group } from "@/api/produce/manage_sheep/trans_group/trans_group"
import { listSheepfold_management as listSheepfold } from '@/api/sheepfold_management/sheepfold_management';
const { proxy } = getCurrentInstance()
const { trans_group_reason, status } = proxy.useDict('trans_group_reason', 'status')
@ -317,7 +326,7 @@ function handleDelete(row) {
function handleExport() {
proxy.download('/produce/manage_sheep/trans_group/export', {
...queryParams.value
}, `trans_group_${new Date().getTime()}.xlsx`)
}, `trans_group_${new Date().getTime()}.xlsx`);
}
getList()
@ -356,4 +365,18 @@ function handleApproveReject() {
proxy.$modal.msgError(`审批失败:${error}`);
});
}
//
const sheepfoldOptions = ref([]);
function getSheepfoldOptions() {
listSheepfold({ pageNum: 1, pageSize: 9999 }).then(res => {
sheepfoldOptions.value = res.rows; // [{id, sheepfoldName}, ...]
});
}
onMounted(() => {
getList();
getSheepfoldOptions();
});
</script>

View File

@ -2,76 +2,38 @@
<div class="app-container">
<el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="羊只id" prop="sheepId">
<el-input
v-model="queryParams.sheepId"
placeholder="请输入羊只id"
clearable
@keyup.enter="handleQuery"
/>
<el-input v-model="queryParams.sheepId" placeholder="请输入羊只id" clearable @keyup.enter="handleQuery" />
</el-form-item>
<!-- 羊舍 -->
<el-form-item label="羊舍id" prop="sheepfold">
<el-input
v-model="queryParams.sheepfold"
placeholder="请输入羊舍id"
clearable
@keyup.enter="handleQuery"
/>
<el-form-item label="羊舍" prop="sheepfold">
<el-select v-model="queryParams.sheepfold" placeholder="请选择羊舍" style="min-width: 150px;" clearable>
<el-option v-for="item in sheepfoldOptions" :key="item.id" :label="item.sheepfoldName" :value="item.id" />
</el-select>
</el-form-item>
<el-form-item label="创建时间" style="width: 308px">
<el-date-picker
v-model="daterangeCreateTime"
value-format="YYYY-MM-DD"
type="daterange"
range-separator="-"
start-placeholder="开始日期"
end-placeholder="结束日期"
></el-date-picker>
<el-date-picker v-model="daterangeCreateTime" value-format="YYYY-MM-DD" type="daterange" range-separator="-"
start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="Plus"
@click="handleAdd"
v-hasPermi="['fixHoof:fixHoof:add']"
>新增</el-button>
<el-button type="primary" plain icon="Plus" @click="handleAdd"
v-hasPermi="['fixHoof:fixHoof:add']">新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="Edit"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['fixHoof:fixHoof:edit']"
>修改</el-button>
<el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate"
v-hasPermi="['fixHoof:fixHoof:edit']">修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="Delete"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['fixHoof:fixHoof:remove']"
>删除</el-button>
<el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete"
v-hasPermi="['fixHoof:fixHoof:remove']">删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="Download"
@click="handleExport"
v-hasPermi="['fixHoof:fixHoof:export']"
>导出</el-button>
<el-button type="warning" plain icon="Download" @click="handleExport"
v-hasPermi="['fixHoof:fixHoof:export']">导出</el-button>
</el-col>
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
@ -80,7 +42,7 @@
<el-table-column type="selection" width="55" align="center" />
<!-- <el-table-column label="${comment}" align="center" prop="id" /> -->
<el-table-column label="羊只id" align="center" prop="sheepId" />
<el-table-column label="羊舍id" align="center" prop="sheepfold" />
<el-table-column label="羊舍名称" align="center" prop="sheepfoldName" />
<el-table-column label="备注" align="center" prop="comment" />
<el-table-column label="技术员" align="center" prop="technician" />
<el-table-column label="创建人" align="center" prop="createBy" />
@ -91,19 +53,16 @@
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template #default="scope">
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['fixHoof:fixHoof:edit']">修改</el-button>
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['fixHoof:fixHoof:remove']">删除</el-button>
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)"
v-hasPermi="['fixHoof:fixHoof:edit']">修改</el-button>
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)"
v-hasPermi="['fixHoof:fixHoof:remove']">删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
v-model:page="queryParams.pageNum"
v-model:limit="queryParams.pageSize"
@pagination="getList"
/>
<pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum"
v-model:limit="queryParams.pageSize" @pagination="getList" />
<!-- 添加或修改修蹄对话框 -->
<el-dialog :title="title" v-model="open" width="500px" append-to-body>
@ -111,8 +70,10 @@
<el-form-item label="羊只id" prop="sheepId">
<el-input v-model="form.sheepId" placeholder="请输入羊只id" />
</el-form-item>
<el-form-item label="羊舍id" prop="sheepfold">
<el-input v-model="form.sheepfold" placeholder="请输入羊舍id" />
<el-form-item label="羊舍" prop="sheepfold">
<el-select v-model="form.sheepfold" placeholder="请选择羊舍" clearable>
<el-option v-for="fold in sheepfoldOptions" :key="fold.id" :label="fold.sheepfoldName" :value="fold.id" />
</el-select>
</el-form-item>
<el-form-item label="备注" prop="comment">
<el-input v-model="form.comment" placeholder="请输入备注" />
@ -133,6 +94,7 @@
<script setup name="FixHoof">
import { listFixHoof, getFixHoof, delFixHoof, addFixHoof, updateFixHoof } from "@/api/produce/other/fixHoof/fixHoof"
import { listSheepfold_management as listSheepfold } from '@/api/sheepfold_management/sheepfold_management';
const { proxy } = getCurrentInstance()
@ -178,14 +140,18 @@ const { queryParams, form, rules } = toRefs(data)
/** 查询修蹄列表 */
function getList() {
loading.value = true
queryParams.value.params = {}
if (null != daterangeCreateTime && '' != daterangeCreateTime) {
queryParams.value.params["beginCreateTime"] = daterangeCreateTime.value[0]
queryParams.value.params["endCreateTime"] = daterangeCreateTime.value[1]
// null
const q = { ...queryParams.value }
if (q.sheepId === '') q.sheepId = null
if (q.sheepfold === '') q.sheepfold = null
q.params = {}
if (daterangeCreateTime.value?.length) {
q.params.beginCreateTime = daterangeCreateTime.value[0]
q.params.endCreateTime = daterangeCreateTime.value[1]
}
listFixHoof(queryParams.value).then(response => {
fixHoofList.value = response.rows
total.value = response.total
listFixHoof(q).then(res => {
fixHoofList.value = res.rows
total.value = res.total
loading.value = false
})
}
@ -272,12 +238,12 @@ function submitForm() {
/** 删除按钮操作 */
function handleDelete(row) {
const _ids = row.id || ids.value
proxy.$modal.confirm('是否确认删除修蹄编号为"' + _ids + '"的数据项?').then(function() {
proxy.$modal.confirm('是否确认删除修蹄编号为"' + _ids + '"的数据项?').then(function () {
return delFixHoof(_ids)
}).then(() => {
getList()
proxy.$modal.msgSuccess("删除成功")
}).catch(() => {})
}).catch(() => { })
}
/** 导出按钮操作 */
@ -287,5 +253,17 @@ function handleExport() {
}, `fixHoof_${new Date().getTime()}.xlsx`)
}
/**加载所有羊舍*/
const sheepfoldOptions = ref([]);
function getSheepfoldOptions() {
listSheepfold({ pageNum: 1, pageSize: 9999 }).then(res => {
sheepfoldOptions.value = res.rows;
});
}
onMounted(() => {
getList();
getSheepfoldOptions();
});
getList()
</script>