转群,体尺测量,体况评分,乳况评分,修蹄,去势部分模糊查询+多耳号输入,排序优化

This commit is contained in:
zyh
2026-01-16 12:40:16 +08:00
parent e6beaf3b25
commit 7cd525be98
12 changed files with 308 additions and 55 deletions

View File

@@ -9,9 +9,16 @@
<el-date-picker v-model="daterangeMeasureDate" value-format="YYYY-MM-DD" type="daterange" range-separator="-"
start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>
</el-form-item>
<el-form-item label="管理耳号" prop="manageTags">
<el-input v-model="queryParams.manageTags" placeholder="请输入管理耳号" clearable @keyup.enter="handleQuery"
style="max-width: 160px;" />
<el-form-item label="管理耳号" prop="manageTagsList">
<el-select v-model="queryParams.manageTagsList" multiple filterable remote reserve-keyword
placeholder="请输入耳号,支持多选" :remote-method="searchEarNumber" :loading="earLoading" allow-create
default-first-option style="width: 260px">
<el-option v-for="item in earOptions" :key="item" :label="item" :value="item" />
</el-select>
<el-button type="text" @click="clearEarNumbers"
v-if="queryParams.manageTagsList && queryParams.manageTagsList.length > 0" style="margin-left: 8px">
清空
</el-button>
</el-form-item>
<el-form-item label="羊舍" prop="sheepfoldId">
<el-select v-model="queryParams.sheepfoldId" placeholder="请选择羊舍" style="min-width:150px" clearable>
@@ -33,7 +40,13 @@
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<div v-if="queryParams.manageTagsList && queryParams.manageTagsList.length > 0" class="selected-ear-numbers">
<span style="margin-right: 10px; color: #606266;">已选耳号</span>
<el-tag v-for="tag in queryParams.manageTagsList" :key="tag" closable @close="removeEarNumber(tag)"
style="margin-right: 8px;">
{{ tag }}
</el-tag>
</div>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="Plus" @click="handleAdd"
@@ -196,7 +209,7 @@
</template>
<script setup name="Body_measure">
import { listBody_measure, getBody_measure, delBody_measure, addBody_measure, updateBody_measure, getSheepTypeList } from "@/api/produce/bodyManage/body_measure"
import { listBody_measure, getBody_measure, delBody_measure, addBody_measure, updateBody_measure, getSheepTypeList, searchEarNumbers } from "@/api/produce/bodyManage/body_measure"
import { getSheepByManageTags } from "@/api/produce/manage_sheep/changeVariety"
import { listSheepfold_management as listSheepfold } from '@/api/fileManagement/sheepfold_management'
import { getVarietyOptions } from '@/api/produce/other/fixHoof'
@@ -251,7 +264,8 @@ const data = reactive({
})
const { queryParams, form, rules } = toRefs(data)
const earOptions = ref([])
const earLoading = ref(false)
//查询体尺测量列表
function getList() {
loading.value = true
@@ -340,6 +354,7 @@ function resetQuery() {
queryParams.value.varietyId = null;
data.varietyName = '';
daterangeMeasureDate.value = [];
queryParams.value.manageTagsList = []
proxy.resetForm("queryRef");
handleQuery();
}
@@ -435,7 +450,20 @@ function loadSheepTypeList() {
});
}
function searchEarNumber(query) {
if (!query) { earOptions.value = []; return }
earLoading.value = true
searchEarNumbers(query.trim()).then(res => {
earOptions.value = res.data || []
}).finally(() => earLoading.value = false)
}
function clearEarNumbers() {
queryParams.value.manageTagsList = []
}
function removeEarNumber(tag) {
const idx = queryParams.value.manageTagsList.indexOf(tag)
if (idx > -1) queryParams.value.manageTagsList.splice(idx, 1)
}
onMounted(() => {
getSheepfoldOptions()
loadSheepTypeList()
@@ -443,3 +471,11 @@ onMounted(() => {
getList()
})
</script>
<style scoped>
.selected-ear-numbers{
margin-bottom: 16px;
padding: 10px;
background: #f5f7fa;
border-radius: 4px;
}
</style>