优化展示

This commit is contained in:
2025-11-22 14:06:46 +08:00
parent 147040a1d9
commit 60029d7580
6 changed files with 20 additions and 20 deletions

View File

@@ -20,7 +20,7 @@
<div style="padding: 10px 20px;"> <div style="padding: 10px 20px;">
<h4>各品种当前年龄简介</h4> <h4>各品种当前年龄简介</h4>
<el-table :data="props.row.pig_types" border> <el-table :data="props.row.pig_types" border>
<el-table-column prop="breed_name" label="品种"></el-table-column> <el-table-column prop="breed_name" label="品种"></el-table-column>
<el-table-column prop="description" label="描述"></el-table-column> <el-table-column prop="description" label="描述"></el-table-column>
<el-table-column prop="min_days" label="最小天数"></el-table-column> <el-table-column prop="min_days" label="最小天数"></el-table-column>
<el-table-column prop="max_days" label="最大天数"></el-table-column> <el-table-column prop="max_days" label="最大天数"></el-table-column>

View File

@@ -1,7 +1,7 @@
<template> <template>
<el-form :model="formData" :rules="rules" ref="formRef" label-width="120px"> <el-form :model="formData" :rules="rules" ref="formRef" label-width="120px">
<el-form-item label="品种名称" prop="name"> <el-form-item label="品种名称" prop="name">
<el-input v-model="formData.name" placeholder="请输入品种名称"></el-input> <el-input v-model="formData.name" placeholder="请输入品种名称"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="描述" prop="description"> <el-form-item label="描述" prop="description">
<el-input <el-input
@@ -83,7 +83,7 @@ export default {
const rules = { const rules = {
name: [ name: [
{ required: true, message: '请输入品种名称', trigger: 'blur' }, { required: true, message: '请输入品种名称', trigger: 'blur' },
{ min: 2, max: 50, message: '长度在 2 到 50 个字符', trigger: 'blur' }, { min: 2, max: 50, message: '长度在 2 到 50 个字符', trigger: 'blur' },
], ],
}; };

View File

@@ -4,7 +4,7 @@
<div style="margin-bottom: 20px; display: flex; align-items: center; gap: 10px;"> <div style="margin-bottom: 20px; display: flex; align-items: center; gap: 10px;">
<el-input <el-input
v-model="searchKeyword" v-model="searchKeyword"
placeholder="请输入品种名称" placeholder="请输入品种名称"
clearable clearable
style="width: 300px;" style="width: 300px;"
@keyup.enter="handleSearch" @keyup.enter="handleSearch"
@@ -12,7 +12,7 @@
<el-button type="primary" @click="handleSearch">搜索</el-button> <el-button type="primary" @click="handleSearch">搜索</el-button>
</div> </div>
<!-- 品种列表 --> <!-- 品种列表 -->
<el-table :data="tableData" style="width: 100%" v-loading="loading" row-key="id" <el-table :data="tableData" style="width: 100%" v-loading="loading" row-key="id"
:expand-row-keys="expandRowKeys" @expand-change="handleExpandChange"> :expand-row-keys="expandRowKeys" @expand-change="handleExpandChange">
<el-table-column type="expand"> <el-table-column type="expand">
@@ -126,8 +126,8 @@ export default {
pagination.value.total = response.data.pagination.total; pagination.value.total = response.data.pagination.total;
} }
} catch (error) { } catch (error) {
console.error('获取品种列表失败:', error); console.error('获取品种列表失败:', error);
ElMessage.error('获取品种列表失败'); ElMessage.error('获取品种列表失败');
} finally { } finally {
loading.value = false; loading.value = false;
} }
@@ -186,7 +186,7 @@ export default {
const handleDelete = (row) => { const handleDelete = (row) => {
ElMessageBox.confirm( ElMessageBox.confirm(
`确定要删除品种 "${row.name}" 吗?`, `确定要删除品种 "${row.name}" 吗?`,
'提示', '提示',
{ {
confirmButtonText: '确定', confirmButtonText: '确定',

View File

@@ -100,7 +100,7 @@
<el-icon> <el-icon>
<Tickets/> <Tickets/>
</el-icon> </el-icon>
<template #title>品种管理</template> <template #title>品种管理</template>
</el-menu-item> </el-menu-item>
</el-sub-menu> </el-sub-menu>

View File

@@ -41,7 +41,7 @@ const routes = [
{path: '/feed/raw-materials', component: RawMaterialList, meta: {requiresAuth: true, title: '原料管理'}}, {path: '/feed/raw-materials', component: RawMaterialList, meta: {requiresAuth: true, title: '原料管理'}},
{path: '/feed/nutrients', component: NutrientList, meta: {requiresAuth: true, title: '营养管理'}}, {path: '/feed/nutrients', component: NutrientList, meta: {requiresAuth: true, title: '营养管理'}},
{path: '/feed/pig-age-stages', component: PigAgeStageList, meta: {requiresAuth: true, title: '猪年龄阶段管理'}}, // 添加猪年龄阶段管理路由 {path: '/feed/pig-age-stages', component: PigAgeStageList, meta: {requiresAuth: true, title: '猪年龄阶段管理'}}, // 添加猪年龄阶段管理路由
{path: '/feed/pig-breeds', component: PigBreedList, meta: {requiresAuth: true, title: '品种管理'}}, // 添加品种管理路由 {path: '/feed/pig-breeds', component: PigBreedList, meta: {requiresAuth: true, title: '品种管理'}}, // 添加品种管理路由
{path: '/monitor/device-command-logs', component: DeviceCommandLogView, meta: {requiresAuth: true, title: '设备命令日志'}}, {path: '/monitor/device-command-logs', component: DeviceCommandLogView, meta: {requiresAuth: true, title: '设备命令日志'}},
{path: '/monitor/medication-logs', component: MedicationLogsView, meta: {requiresAuth: true, title: '用药记录'}}, {path: '/monitor/medication-logs', component: MedicationLogsView, meta: {requiresAuth: true, title: '用药记录'}},
{path: '/monitor/notifications', component: NotificationLogView, meta: {requiresAuth: true, title: '通知记录'}}, {path: '/monitor/notifications', component: NotificationLogView, meta: {requiresAuth: true, title: '通知记录'}},

View File

@@ -4,18 +4,18 @@
<template #header> <template #header>
<div class="card-header"> <div class="card-header">
<div class="title-container"> <div class="title-container">
<h2 class="page-title">品种管理</h2> <h2 class="page-title">品种管理</h2>
<el-button type="text" @click="refreshList" class="refresh-btn" title="刷新品种列表"> <el-button type="text" @click="refreshList" class="refresh-btn" title="刷新品种列表">
<el-icon :size="20"><Refresh /></el-icon> <el-icon :size="20"><Refresh /></el-icon>
</el-button> </el-button>
</div> </div>
<el-button type="primary" @click="handleAddPigBreed">添加品种</el-button> <el-button type="primary" @click="handleAddPigBreed">添加品种</el-button>
</div> </div>
</template> </template>
<pig-breed-table ref="pigBreedTableRef" @edit="handleEdit"></pig-breed-table> <pig-breed-table ref="pigBreedTableRef" @edit="handleEdit"></pig-breed-table>
</el-card> </el-card>
<!-- 添加/编辑品种弹窗 --> <!-- 添加/编辑品种弹窗 -->
<el-dialog <el-dialog
v-model="showDialog" v-model="showDialog"
:title="formTitle" :title="formTitle"
@@ -57,7 +57,7 @@ export default {
const showDialog = ref(false); const showDialog = ref(false);
const isEditMode = ref(false); const isEditMode = ref(false);
const currentEditData = ref(null); const currentEditData = ref(null);
const formTitle = ref('添加品种'); const formTitle = ref('添加品种');
const refreshList = () => { const refreshList = () => {
if (pigBreedTableRef.value) { if (pigBreedTableRef.value) {
@@ -65,9 +65,9 @@ export default {
} }
}; };
// 处理添加品种按钮点击事件 // 处理添加品种按钮点击事件
const handleAddPigBreed = () => { const handleAddPigBreed = () => {
formTitle.value = '添加品种'; formTitle.value = '添加品种';
isEditMode.value = false; // 新增模式 isEditMode.value = false; // 新增模式
currentEditData.value = null; // 清空编辑数据 currentEditData.value = null; // 清空编辑数据
showDialog.value = true; showDialog.value = true;
@@ -78,7 +78,7 @@ export default {
// 处理编辑按钮点击事件 // 处理编辑按钮点击事件
const handleEdit = (row) => { const handleEdit = (row) => {
formTitle.value = '编辑品种'; formTitle.value = '编辑品种';
isEditMode.value = true; // 编辑模式 isEditMode.value = true; // 编辑模式
currentEditData.value = { ...row }; // 存储当前编辑数据,进行深拷贝 currentEditData.value = { ...row }; // 存储当前编辑数据,进行深拷贝
showDialog.value = true; showDialog.value = true;
@@ -91,11 +91,11 @@ export default {
if (isEditMode.value) { if (isEditMode.value) {
// 编辑模式 // 编辑模式
await FeedApi.updatePigBreed(currentEditData.value.id, formData); await FeedApi.updatePigBreed(currentEditData.value.id, formData);
message = '品种更新成功'; message = '品种更新成功';
} else { } else {
// 新增模式 // 新增模式
await FeedApi.createPigBreed(formData); await FeedApi.createPigBreed(formData);
message = '品种添加成功'; message = '品种添加成功';
} }
ElMessage.success(message); ElMessage.success(message);
refreshList(); // 刷新列表 refreshList(); // 刷新列表