Compare commits
2 Commits
0391d9dfe7
...
a03cab2608
Author | SHA1 | Date | |
---|---|---|---|
a03cab2608 | |||
393083b0db |
@ -52,3 +52,12 @@ export function delSheep_grouping(id) {
|
|||||||
method: 'delete'
|
method: 'delete'
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 根据耳号批量新增分组映射
|
||||||
|
export function addByEarTags(data) {
|
||||||
|
return request({
|
||||||
|
url: '/sheep_grouping/sheep_grouping/addByEarTags',
|
||||||
|
method: 'post',
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
@ -1,14 +1,14 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="app-container">
|
<div class="app-container">
|
||||||
<el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="68px">
|
<el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="68px">
|
||||||
<el-form-item label="羊只ID" prop="sheepId">
|
<!-- <el-form-item label="羊只ID" prop="sheepId">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="queryParams.sheepId"
|
v-model="queryParams.sheepId"
|
||||||
placeholder="请输入羊只ID"
|
placeholder="请输入羊只ID"
|
||||||
clearable
|
clearable
|
||||||
@keyup.enter="handleQuery"
|
@keyup.enter="handleQuery"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item> -->
|
||||||
<el-form-item label="耳号" prop="bsManageTags">
|
<el-form-item label="耳号" prop="bsManageTags">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="queryParams.bsManageTags"
|
v-model="queryParams.bsManageTags"
|
||||||
@ -82,9 +82,9 @@
|
|||||||
|
|
||||||
<el-table v-loading="loading" :data="sheep_groupingList" @selection-change="handleSelectionChange">
|
<el-table v-loading="loading" :data="sheep_groupingList" @selection-change="handleSelectionChange">
|
||||||
<el-table-column type="selection" width="55" align="center"/>
|
<el-table-column type="selection" width="55" align="center"/>
|
||||||
<el-table-column label="主键ID" align="center" prop="id" sortable/>
|
<!-- <el-table-column label="主键ID" align="center" prop="id" sortable/> -->
|
||||||
<el-table-column label="羊只ID" align="center" prop="sheep_id" sortable/>
|
<!-- <el-table-column label="羊只ID" align="center" prop="sheep_id" sortable/>
|
||||||
<el-table-column label="分组ID" align="center" prop="group_id" sortable/>
|
<el-table-column label="分组ID" align="center" prop="group_id" sortable/> -->
|
||||||
<el-table-column label="分组名称" align="center" prop="groupName" sortable>
|
<el-table-column label="分组名称" align="center" prop="groupName" sortable>
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
{{ getGroupName(scope.row.group_id) }}
|
{{ getGroupName(scope.row.group_id) }}
|
||||||
@ -127,8 +127,11 @@
|
|||||||
<!-- 添加或修改羊只分组关联对话框 -->
|
<!-- 添加或修改羊只分组关联对话框 -->
|
||||||
<el-dialog :title="title" v-model="open" width="500px" append-to-body>
|
<el-dialog :title="title" v-model="open" width="500px" append-to-body>
|
||||||
<el-form ref="sheep_groupingRef" :model="form" :rules="rules" label-width="80px">
|
<el-form ref="sheep_groupingRef" :model="form" :rules="rules" label-width="80px">
|
||||||
<el-form-item label="羊只ID" prop="sheepId">
|
<!-- <el-form-item label="羊只ID" prop="sheepId">
|
||||||
<el-input v-model="form.sheepId" placeholder="请输入羊只ID" />
|
<el-input v-model="form.sheepId" placeholder="请输入羊只ID" />
|
||||||
|
</el-form-item> -->
|
||||||
|
<el-form-item label="耳号列表" prop="earTags">
|
||||||
|
<el-input type="textarea" :rows="4" v-model="form.earTags" :disabled="form.earTagsDisabled" placeholder="请输入耳号,多个耳号用逗号或换行分隔"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="分组" prop="groupId">
|
<el-form-item label="分组" prop="groupId">
|
||||||
<el-select v-model="form.groupId" placeholder="请选择分组" clearable>
|
<el-select v-model="form.groupId" placeholder="请选择分组" clearable>
|
||||||
@ -155,7 +158,7 @@
|
|||||||
import { listSheep_grouping, getSheep_grouping, delSheep_grouping, addSheep_grouping, updateSheep_grouping } from "@/api/fileManagement/sheep_grouping"
|
import { listSheep_grouping, getSheep_grouping, delSheep_grouping, addSheep_grouping, updateSheep_grouping } from "@/api/fileManagement/sheep_grouping"
|
||||||
import {listLeafGroup} from "@/api/fileManagement/group_management"
|
import {listLeafGroup} from "@/api/fileManagement/group_management"
|
||||||
import {listSheep_grouping_join} from "@/api/fileManagement/sheep_grouping"
|
import {listSheep_grouping_join} from "@/api/fileManagement/sheep_grouping"
|
||||||
|
import { addByEarTags } from '@/api/fileManagement/sheep_grouping'
|
||||||
|
|
||||||
const { proxy } = getCurrentInstance()
|
const { proxy } = getCurrentInstance()
|
||||||
|
|
||||||
@ -172,7 +175,11 @@ const leafGroupOptions = ref([])
|
|||||||
const { sheep_gender } = proxy.useDict('sheep_gender')
|
const { sheep_gender } = proxy.useDict('sheep_gender')
|
||||||
|
|
||||||
const data = reactive({
|
const data = reactive({
|
||||||
form: {},
|
form: {
|
||||||
|
earTags: '',
|
||||||
|
groupId: null,
|
||||||
|
earTagsDisabled: false // 新增字段:是否禁用耳号输入框
|
||||||
|
},
|
||||||
queryParams: {
|
queryParams: {
|
||||||
pageNum: 1,
|
pageNum: 1,
|
||||||
pageSize: 10,
|
pageSize: 10,
|
||||||
@ -182,12 +189,12 @@ const data = reactive({
|
|||||||
},
|
},
|
||||||
leafGroupOptions: [],
|
leafGroupOptions: [],
|
||||||
rules: {
|
rules: {
|
||||||
sheepId: [
|
earTags: [
|
||||||
{ required: true, message: "羊只ID不能为空", trigger: "blur" }
|
{ required: true, message: "耳号不能为空", trigger: "blur" }
|
||||||
],
|
],
|
||||||
groupId: [
|
groupId: [
|
||||||
{ required: true, message: "分组ID不能为空", trigger: "change" }
|
{ required: true, message: "分组不能为空", trigger: "change" }
|
||||||
]
|
],
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -205,22 +212,16 @@ const { queryParams, form, rules } = toRefs(data)
|
|||||||
|
|
||||||
import { getSheep_file } from '@/api/fileManagement/sheep_file'
|
import { getSheep_file } from '@/api/fileManagement/sheep_file'
|
||||||
|
|
||||||
|
|
||||||
async function getList() {
|
async function getList() {
|
||||||
loading.value = true
|
loading.value = true
|
||||||
try {
|
try {
|
||||||
// 1. 把耳号字符串拆成数组
|
|
||||||
const params = {
|
const params = {
|
||||||
...queryParams.value,
|
...queryParams.value,
|
||||||
bsManageTags: queryParams.value.bsManageTags
|
bsManageTags: queryParams.value.bsManageTags || undefined
|
||||||
? String(queryParams.value.bsManageTags)
|
|
||||||
.split(/[,,\s]+/)
|
|
||||||
.map(s => s.trim())
|
|
||||||
.filter(Boolean)
|
|
||||||
: undefined
|
|
||||||
}
|
}
|
||||||
console.log(params)
|
|
||||||
const { rows, total: t } = await listSheep_grouping_join(params)
|
const { rows, total: t } = await listSheep_grouping_join(params)
|
||||||
console.log(rows)
|
|
||||||
sheep_groupingList.value = rows
|
sheep_groupingList.value = rows
|
||||||
total.value = t
|
total.value = t
|
||||||
} finally {
|
} finally {
|
||||||
@ -266,6 +267,8 @@ function handleSelectionChange(selection) {
|
|||||||
/** 新增按钮操作 */
|
/** 新增按钮操作 */
|
||||||
function handleAdd() {
|
function handleAdd() {
|
||||||
reset()
|
reset()
|
||||||
|
form.value.earTagsDisabled = false // 允许输入耳号
|
||||||
|
form.value.earTags = '' // 确保新增时输入框为空
|
||||||
open.value = true
|
open.value = true
|
||||||
title.value = "添加羊只分组关联"
|
title.value = "添加羊只分组关联"
|
||||||
}
|
}
|
||||||
@ -273,35 +276,98 @@ function handleAdd() {
|
|||||||
/** 修改按钮操作 */
|
/** 修改按钮操作 */
|
||||||
function handleUpdate(row) {
|
function handleUpdate(row) {
|
||||||
reset()
|
reset()
|
||||||
const _id = row.id || ids.value
|
form.value = {...row,
|
||||||
getSheep_grouping(_id).then(response => {
|
earTags: row.bs_manage_tags,
|
||||||
form.value = response.data
|
groupId: row.group_id,
|
||||||
|
originalGroupId: row.group_id, // 用于前端预校验
|
||||||
|
earTagsDisabled: true
|
||||||
|
}
|
||||||
open.value = true
|
open.value = true
|
||||||
title.value = "修改羊只分组关联"
|
title.value = "修改羊只分组关联"
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 提交按钮 */
|
|
||||||
|
// /** 提交按钮 */
|
||||||
|
// function submitForm() {
|
||||||
|
// proxy.$refs["sheep_groupingRef"].validate(valid => {
|
||||||
|
// if (valid) {
|
||||||
|
// if (form.value.id != null) {
|
||||||
|
// updateSheep_grouping(form.value).then(response => {
|
||||||
|
// proxy.$modal.msgSuccess("修改成功")
|
||||||
|
// open.value = false
|
||||||
|
// getList()
|
||||||
|
// })
|
||||||
|
// } else {
|
||||||
|
// addSheep_grouping(form.value).then(response => {
|
||||||
|
// proxy.$modal.msgSuccess("新增成功")
|
||||||
|
// open.value = false
|
||||||
|
// getList()
|
||||||
|
// })
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// })
|
||||||
|
// }
|
||||||
|
|
||||||
|
|
||||||
function submitForm() {
|
function submitForm() {
|
||||||
proxy.$refs["sheep_groupingRef"].validate(valid => {
|
proxy.$refs["sheep_groupingRef"].validate(valid => {
|
||||||
if (valid) {
|
if (!valid) return;
|
||||||
|
|
||||||
|
// ── 1. 修改模式(单条) ──
|
||||||
if (form.value.id != null) {
|
if (form.value.id != null) {
|
||||||
updateSheep_grouping(form.value).then(response => {
|
|
||||||
proxy.$modal.msgSuccess("修改成功")
|
// 前端预校验:是否已在此分组
|
||||||
open.value = false
|
if (form.value.groupId === form.value.originalGroupId) {
|
||||||
getList()
|
proxy.$modal.msgWarning("该羊已在此分组,无需修改");
|
||||||
})
|
return;
|
||||||
|
}
|
||||||
|
// 只需要更新分组
|
||||||
|
|
||||||
|
console.log(form.value)
|
||||||
|
const data = {
|
||||||
|
id: form.value.id,
|
||||||
|
sheepId:form.value.sheep_id,
|
||||||
|
groupId: form.value.groupId
|
||||||
|
};
|
||||||
|
updateSheep_grouping(data).then(() => {
|
||||||
|
proxy.$modal.msgSuccess("修改成功");
|
||||||
|
open.value = false;
|
||||||
|
getList();
|
||||||
|
});
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ── 2. 新增模式(耳号批量) ──
|
||||||
|
const earTags = form.value.earTags
|
||||||
|
.split(/[,\n,\s]+/)
|
||||||
|
.map(tag => tag.trim())
|
||||||
|
.filter(tag => tag);
|
||||||
|
|
||||||
|
const data = { earTags, groupId: form.value.groupId };
|
||||||
|
|
||||||
|
addByEarTags(data)
|
||||||
|
.then(res => {
|
||||||
|
if (res.data?.success) {
|
||||||
|
proxy.$modal.msgSuccess(`新增成功,共 ${res.data.inserted} 条`);
|
||||||
|
open.value = false;
|
||||||
|
getList();
|
||||||
} else {
|
} else {
|
||||||
addSheep_grouping(form.value).then(response => {
|
const missing = res.data?.missing || [];
|
||||||
proxy.$modal.msgSuccess("新增成功")
|
const already = res.data?.alreadyInGroup || [];
|
||||||
open.value = false
|
if (missing.length) {
|
||||||
getList()
|
proxy.$modal.alertError(`以下耳号不存在:${missing.join(", ")}`);
|
||||||
})
|
} else if (already.length) {
|
||||||
|
proxy.$modal.alertWarning(`以下耳号已在该分组:${already.join(", ")}`);
|
||||||
|
} else {
|
||||||
|
proxy.$modal.alertWarning("所有羊只已存在于该分组");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
.catch(() => proxy.$modal.msgError("系统异常,请联系管理员"));
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/** 删除按钮操作 */
|
/** 删除按钮操作 */
|
||||||
function handleDelete(row) {
|
function handleDelete(row) {
|
||||||
const _ids = row.id || ids.value
|
const _ids = row.id || ids.value
|
||||||
|
Loading…
x
Reference in New Issue
Block a user