转群,体尺测量,体况评分,乳况评分,修蹄,去势部分模糊查询+多耳号输入,排序优化
This commit is contained in:
@@ -49,3 +49,12 @@ export function getSheepTypeList() {
|
|||||||
method: 'get'
|
method: 'get'
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 远程模糊搜索耳号
|
||||||
|
export function searchEarNumbers(query) {
|
||||||
|
return request({
|
||||||
|
url: '/body_measure/body_measure/search_ear_numbers',
|
||||||
|
method: 'get',
|
||||||
|
params: { query }
|
||||||
|
})
|
||||||
|
}
|
||||||
@@ -42,3 +42,12 @@ export function delBody_score(id) {
|
|||||||
method: 'delete'
|
method: 'delete'
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 远程模糊搜索耳号
|
||||||
|
export function searchEarNumbers(query) {
|
||||||
|
return request({
|
||||||
|
url: '/body_score/body_score/search_ear_numbers',
|
||||||
|
method: 'get',
|
||||||
|
params: { query }
|
||||||
|
})
|
||||||
|
}
|
||||||
@@ -42,3 +42,12 @@ export function delBreast_rating(id) {
|
|||||||
method: 'delete'
|
method: 'delete'
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 远程模糊搜索耳号
|
||||||
|
export function searchEarNumbers(query) {
|
||||||
|
return request({
|
||||||
|
url: '/breast_rating/breast_rating/search_ear_numbers',
|
||||||
|
method: 'get',
|
||||||
|
params: { query }
|
||||||
|
})
|
||||||
|
}
|
||||||
@@ -50,17 +50,6 @@ export function listSheepfold() {
|
|||||||
method: 'get',
|
method: 'get',
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//审批转群记录
|
|
||||||
export function approveScTransGroup(data) {
|
|
||||||
return request({
|
|
||||||
url: '/produce/manage_sheep/trans_group/approve',
|
|
||||||
method: 'put',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
// 获取所有牧场列表
|
// 获取所有牧场列表
|
||||||
export function listRanch() {
|
export function listRanch() {
|
||||||
return request({
|
return request({
|
||||||
@@ -69,3 +58,12 @@ export function listRanch() {
|
|||||||
params: { pageNum: 1, pageSize: 9999 }
|
params: { pageNum: 1, pageSize: 9999 }
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 远程模糊搜索耳号
|
||||||
|
export function searchEarNumbers(query) {
|
||||||
|
return request({
|
||||||
|
url: '/produce/manage_sheep/trans_group/search_ear_numbers',
|
||||||
|
method: 'get',
|
||||||
|
params: { query }
|
||||||
|
})
|
||||||
|
}
|
||||||
@@ -42,3 +42,12 @@ export function delCastrate(id) {
|
|||||||
method: 'delete'
|
method: 'delete'
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 远程模糊搜索耳号
|
||||||
|
export function searchEarNumbers(query) {
|
||||||
|
return request({
|
||||||
|
url: '/produce/other/castrate/search_ear_numbers',
|
||||||
|
method: 'get',
|
||||||
|
params: { query }
|
||||||
|
})
|
||||||
|
}
|
||||||
@@ -75,5 +75,12 @@ export function getSheepBySheepfoldId(id) {
|
|||||||
params:{ id: String(id) }
|
params:{ id: String(id) }
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
// 远程模糊搜索耳号
|
||||||
|
export function searchEarNumbers(query) {
|
||||||
|
return request({
|
||||||
|
url: '/produce/other/fixHoof/search_ear_numbers',
|
||||||
|
method: 'get',
|
||||||
|
params: { query }
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -9,9 +9,16 @@
|
|||||||
<el-date-picker v-model="daterangeMeasureDate" value-format="YYYY-MM-DD" type="daterange" range-separator="-"
|
<el-date-picker v-model="daterangeMeasureDate" value-format="YYYY-MM-DD" type="daterange" range-separator="-"
|
||||||
start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>
|
start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="管理耳号" prop="manageTags">
|
<el-form-item label="管理耳号" prop="manageTagsList">
|
||||||
<el-input v-model="queryParams.manageTags" placeholder="请输入管理耳号" clearable @keyup.enter="handleQuery"
|
<el-select v-model="queryParams.manageTagsList" multiple filterable remote reserve-keyword
|
||||||
style="max-width: 160px;" />
|
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>
|
||||||
<el-form-item label="羊舍" prop="sheepfoldId">
|
<el-form-item label="羊舍" prop="sheepfoldId">
|
||||||
<el-select v-model="queryParams.sheepfoldId" placeholder="请选择羊舍" style="min-width:150px" clearable>
|
<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-button icon="Refresh" @click="resetQuery">重置</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</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-row :gutter="10" class="mb8">
|
||||||
<el-col :span="1.5">
|
<el-col :span="1.5">
|
||||||
<el-button type="primary" plain icon="Plus" @click="handleAdd"
|
<el-button type="primary" plain icon="Plus" @click="handleAdd"
|
||||||
@@ -196,7 +209,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup name="Body_measure">
|
<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 { getSheepByManageTags } from "@/api/produce/manage_sheep/changeVariety"
|
||||||
import { listSheepfold_management as listSheepfold } from '@/api/fileManagement/sheepfold_management'
|
import { listSheepfold_management as listSheepfold } from '@/api/fileManagement/sheepfold_management'
|
||||||
import { getVarietyOptions } from '@/api/produce/other/fixHoof'
|
import { getVarietyOptions } from '@/api/produce/other/fixHoof'
|
||||||
@@ -251,7 +264,8 @@ const data = reactive({
|
|||||||
})
|
})
|
||||||
|
|
||||||
const { queryParams, form, rules } = toRefs(data)
|
const { queryParams, form, rules } = toRefs(data)
|
||||||
|
const earOptions = ref([])
|
||||||
|
const earLoading = ref(false)
|
||||||
//查询体尺测量列表
|
//查询体尺测量列表
|
||||||
function getList() {
|
function getList() {
|
||||||
loading.value = true
|
loading.value = true
|
||||||
@@ -340,6 +354,7 @@ function resetQuery() {
|
|||||||
queryParams.value.varietyId = null;
|
queryParams.value.varietyId = null;
|
||||||
data.varietyName = '';
|
data.varietyName = '';
|
||||||
daterangeMeasureDate.value = [];
|
daterangeMeasureDate.value = [];
|
||||||
|
queryParams.value.manageTagsList = []
|
||||||
proxy.resetForm("queryRef");
|
proxy.resetForm("queryRef");
|
||||||
handleQuery();
|
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(() => {
|
onMounted(() => {
|
||||||
getSheepfoldOptions()
|
getSheepfoldOptions()
|
||||||
loadSheepTypeList()
|
loadSheepTypeList()
|
||||||
@@ -443,3 +471,11 @@ onMounted(() => {
|
|||||||
getList()
|
getList()
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
<style scoped>
|
||||||
|
.selected-ear-numbers{
|
||||||
|
margin-bottom: 16px;
|
||||||
|
padding: 10px;
|
||||||
|
background: #f5f7fa;
|
||||||
|
border-radius: 4px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -5,9 +5,16 @@
|
|||||||
<el-date-picker v-model="daterangeDatetime" value-format="YYYY-MM-DD" type="daterange" range-separator="-"
|
<el-date-picker v-model="daterangeDatetime" value-format="YYYY-MM-DD" type="daterange" range-separator="-"
|
||||||
start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>
|
start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="管理耳号" prop="manageTags">
|
<el-form-item label="管理耳号" prop="manageTagsList">
|
||||||
<el-input v-model="queryParams.manageTags" placeholder="请输入管理耳号" clearable @keyup.enter="handleQuery"
|
<el-select v-model="queryParams.manageTagsList" multiple filterable remote reserve-keyword
|
||||||
style="max-width: 160px;" />
|
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>
|
||||||
<el-form-item label="品种" prop="varietyId">
|
<el-form-item label="品种" prop="varietyId">
|
||||||
<el-select v-model="queryParams.varietyId" placeholder="请选择品种" clearable style="min-width:150px">
|
<el-select v-model="queryParams.varietyId" placeholder="请选择品种" clearable style="min-width:150px">
|
||||||
@@ -24,7 +31,13 @@
|
|||||||
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
|
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</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-row :gutter="10" class="mb8">
|
||||||
<el-col :span="1.5">
|
<el-col :span="1.5">
|
||||||
<el-button type="primary" plain icon="Plus" @click="handleAdd"
|
<el-button type="primary" plain icon="Plus" @click="handleAdd"
|
||||||
@@ -55,7 +68,7 @@
|
|||||||
<span>{{ parseTime(scope.row.datetime, '{y}-{m}-{d}') }}</span>
|
<span>{{ parseTime(scope.row.datetime, '{y}-{m}-{d}') }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="体况评分" align="center" prop="score" min-width="100px" sortable/>
|
<el-table-column label="体况评分" align="center" prop="score" min-width="100px" sortable />
|
||||||
<el-table-column label="羊舍" align="center" prop="sheepfoldName" min-width="100px" />
|
<el-table-column label="羊舍" align="center" prop="sheepfoldName" min-width="100px" />
|
||||||
<el-table-column label="备注" align="center" prop="comment" min-width="130px" />
|
<el-table-column label="备注" align="center" prop="comment" min-width="130px" />
|
||||||
<el-table-column label="技术员" align="center" prop="technician" />
|
<el-table-column label="技术员" align="center" prop="technician" />
|
||||||
@@ -116,7 +129,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup name="Body_score">
|
<script setup name="Body_score">
|
||||||
import { listBody_score, getBody_score, delBody_score, addBody_score, updateBody_score } from "@/api/produce/bodyManage/body_score"
|
import { listBody_score, getBody_score, delBody_score, addBody_score, updateBody_score ,searchEarNumbers} from "@/api/produce/bodyManage/body_score"
|
||||||
import { listSheepfold_management as listSheepfold } from '@/api/fileManagement/sheepfold_management'
|
import { listSheepfold_management as listSheepfold } from '@/api/fileManagement/sheepfold_management'
|
||||||
import { checkSheepByManageTags, getVarietyOptions } from "@/api/produce/other/fixHoof"
|
import { checkSheepByManageTags, getVarietyOptions } from "@/api/produce/other/fixHoof"
|
||||||
import { getCurrentInstance, ref, reactive, toRefs } from 'vue'
|
import { getCurrentInstance, ref, reactive, toRefs } from 'vue'
|
||||||
@@ -173,7 +186,8 @@ const data = reactive({
|
|||||||
})
|
})
|
||||||
|
|
||||||
const { queryParams, form, rules } = toRefs(data)
|
const { queryParams, form, rules } = toRefs(data)
|
||||||
|
const earOptions = ref([])
|
||||||
|
const earLoading = ref(false)
|
||||||
/** 查询体况评分列表 */
|
/** 查询体况评分列表 */
|
||||||
function getList() {
|
function getList() {
|
||||||
loading.value = true
|
loading.value = true
|
||||||
@@ -264,6 +278,7 @@ function resetQuery() {
|
|||||||
daterangeDatetime.value = []
|
daterangeDatetime.value = []
|
||||||
daterangeCreateTime.value = []
|
daterangeCreateTime.value = []
|
||||||
queryParams.value.varietyId = null;
|
queryParams.value.varietyId = null;
|
||||||
|
queryParams.value.manageTagsList = []
|
||||||
proxy.resetForm("queryRef")
|
proxy.resetForm("queryRef")
|
||||||
handleQuery()
|
handleQuery()
|
||||||
}
|
}
|
||||||
@@ -345,10 +360,31 @@ function loadVarietyOptions() {
|
|||||||
varietyOptions.value = res.rows;
|
varietyOptions.value = res.rows;
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
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(() => {
|
onMounted(() => {
|
||||||
loadVarietyOptions()
|
loadVarietyOptions()
|
||||||
getSheepfoldOptions()
|
getSheepfoldOptions()
|
||||||
getList()
|
getList()
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
<style scoped>
|
||||||
|
.selected-ear-numbers{
|
||||||
|
margin-bottom: 16px;
|
||||||
|
padding: 10px;
|
||||||
|
background: #f5f7fa;
|
||||||
|
border-radius: 4px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -9,9 +9,16 @@
|
|||||||
<el-date-picker v-model="daterangeEventDate" value-format="YYYY-MM-DD" type="daterange" range-separator="-"
|
<el-date-picker v-model="daterangeEventDate" value-format="YYYY-MM-DD" type="daterange" range-separator="-"
|
||||||
start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>
|
start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="管理耳号" prop="manageTags">
|
<el-form-item label="管理耳号" prop="manageTagsList">
|
||||||
<el-input v-model="queryParams.manageTags" placeholder="请输入耳号搜索" clearable @keyup.enter="handleQuery"
|
<el-select v-model="queryParams.manageTagsList" multiple filterable remote reserve-keyword
|
||||||
style="max-width: 160px;" />
|
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>
|
||||||
<el-form-item label="品种" prop="varietyId">
|
<el-form-item label="品种" prop="varietyId">
|
||||||
<el-select v-model="queryParams.varietyId" placeholder="请选择品种" clearable style="min-width:150px">
|
<el-select v-model="queryParams.varietyId" placeholder="请选择品种" clearable style="min-width:150px">
|
||||||
@@ -47,7 +54,13 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
|
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
<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-table v-loading="loading" :data="breast_ratingList" @selection-change="handleSelectionChange">
|
<el-table v-loading="loading" :data="breast_ratingList" @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="管理耳号" align="center" prop="manageTags" min-width="100px" fixed />
|
<el-table-column label="管理耳号" align="center" prop="manageTags" min-width="100px" fixed />
|
||||||
@@ -134,7 +147,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup name="Breast_rating">
|
<script setup name="Breast_rating">
|
||||||
import { listBreast_rating, getBreast_rating, delBreast_rating, addBreast_rating, updateBreast_rating } from "@/api/produce/bodyManage/breast_rating"
|
import { listBreast_rating, getBreast_rating, delBreast_rating, addBreast_rating, updateBreast_rating, searchEarNumbers } from "@/api/produce/bodyManage/breast_rating"
|
||||||
import { checkSheepByManageTags, getVarietyOptions } from "@/api/produce/other/fixHoof"
|
import { checkSheepByManageTags, getVarietyOptions } from "@/api/produce/other/fixHoof"
|
||||||
import { listSheepfold_management as listSheepfold } from '@/api/fileManagement/sheepfold_management'
|
import { listSheepfold_management as listSheepfold } from '@/api/fileManagement/sheepfold_management'
|
||||||
import { getCurrentInstance, reactive, ref } from "vue"
|
import { getCurrentInstance, reactive, ref } from "vue"
|
||||||
@@ -190,7 +203,8 @@ const data = reactive({
|
|||||||
})
|
})
|
||||||
|
|
||||||
const { queryParams, form, rules } = toRefs(data)
|
const { queryParams, form, rules } = toRefs(data)
|
||||||
|
const earOptions = ref([])
|
||||||
|
const earLoading = ref(false)
|
||||||
/** 查询乳房评分列表 */
|
/** 查询乳房评分列表 */
|
||||||
function getList() {
|
function getList() {
|
||||||
loading.value = true
|
loading.value = true
|
||||||
@@ -272,6 +286,7 @@ function handleQuery() {
|
|||||||
function resetQuery() {
|
function resetQuery() {
|
||||||
daterangeCreateTime.value = []
|
daterangeCreateTime.value = []
|
||||||
daterangeEventDate.value = [];
|
daterangeEventDate.value = [];
|
||||||
|
queryParams.value.manageTagsList = []
|
||||||
proxy.resetForm("queryRef")
|
proxy.resetForm("queryRef")
|
||||||
handleQuery()
|
handleQuery()
|
||||||
}
|
}
|
||||||
@@ -361,10 +376,31 @@ function loadVarietyOptions() {
|
|||||||
varietyOptions.value = res.rows;
|
varietyOptions.value = res.rows;
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
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(() => {
|
onMounted(() => {
|
||||||
loadVarietyOptions()
|
loadVarietyOptions()
|
||||||
getSheepfoldOptions()
|
getSheepfoldOptions()
|
||||||
getList()
|
getList()
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
<style scoped>
|
||||||
|
.selected-ear-numbers {
|
||||||
|
margin-bottom: 16px;
|
||||||
|
padding: 10px;
|
||||||
|
background: #f5f7fa;
|
||||||
|
border-radius: 4px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -5,9 +5,16 @@
|
|||||||
<el-date-picker v-model="daterangeTransDate" value-format="YYYY-MM-DD" type="daterange" range-separator="-"
|
<el-date-picker v-model="daterangeTransDate" value-format="YYYY-MM-DD" type="daterange" range-separator="-"
|
||||||
start-placeholder="开始日期" end-placeholder="结束日期" />
|
start-placeholder="开始日期" end-placeholder="结束日期" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="管理耳号" prop="manageTags">
|
<el-form-item label="管理耳号" prop="manageTagsList">
|
||||||
<el-input v-model="queryParams.manageTags" placeholder="请输入耳号" clearable @keyup.enter="handleQuery"
|
<el-select v-model="queryParams.manageTagsList" multiple filterable remote reserve-keyword
|
||||||
style="width: 150px;" />
|
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>
|
||||||
<el-form-item label="转出羊舍" prop="foldFrom" style="width: 308px">
|
<el-form-item label="转出羊舍" prop="foldFrom" style="width: 308px">
|
||||||
<el-select v-model="queryParams.foldFrom" placeholder="请选择转出羊舍" style="min-width:150px" clearable>
|
<el-select v-model="queryParams.foldFrom" placeholder="请选择转出羊舍" style="min-width:150px" clearable>
|
||||||
@@ -34,7 +41,13 @@
|
|||||||
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
|
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</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-row :gutter="10" class="mb8">
|
||||||
<el-col :span="1.5">
|
<el-col :span="1.5">
|
||||||
<el-button type="primary" plain icon="Plus" @click="handleAdd"
|
<el-button type="primary" plain icon="Plus" @click="handleAdd"
|
||||||
@@ -154,7 +167,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup name="Trans_group">
|
<script setup name="Trans_group">
|
||||||
import { listTrans_group, getTrans_group, delTrans_group, addTrans_group, updateTrans_group, approveScTransGroup, listRanch } from '@/api/produce/manage_sheep/trans_group'
|
import { listTrans_group, getTrans_group, delTrans_group, addTrans_group, updateTrans_group, listRanch, searchEarNumbers } from '@/api/produce/manage_sheep/trans_group'
|
||||||
import { listSheepfold_management as listSheepfold } from '@/api/fileManagement/sheepfold_management'
|
import { listSheepfold_management as listSheepfold } from '@/api/fileManagement/sheepfold_management'
|
||||||
import { checkSheepByManageTags, getSheepBySheepfoldId } from '@/api/produce/other/fixHoof'
|
import { checkSheepByManageTags, getSheepBySheepfoldId } from '@/api/produce/other/fixHoof'
|
||||||
import { getSheepTypeList } from "@/api/produce/bodyManage/body_measure"
|
import { getSheepTypeList } from "@/api/produce/bodyManage/body_measure"
|
||||||
@@ -214,7 +227,8 @@ const data = reactive({
|
|||||||
},
|
},
|
||||||
});
|
});
|
||||||
const { queryParams, form, rules } = toRefs(data);
|
const { queryParams, form, rules } = toRefs(data);
|
||||||
|
const earOptions = ref([])
|
||||||
|
const earLoading = ref(false)
|
||||||
/** 查询转群记录列表 */
|
/** 查询转群记录列表 */
|
||||||
function getList() {
|
function getList() {
|
||||||
loading.value = true;
|
loading.value = true;
|
||||||
@@ -492,6 +506,7 @@ function handleQuery() {
|
|||||||
//重置搜索框
|
//重置搜索框
|
||||||
function resetQuery() {
|
function resetQuery() {
|
||||||
daterangeTransDate.value = [];
|
daterangeTransDate.value = [];
|
||||||
|
queryParams.value.manageTagsList = []
|
||||||
proxy.resetForm('queryRef');
|
proxy.resetForm('queryRef');
|
||||||
handleQuery();
|
handleQuery();
|
||||||
}
|
}
|
||||||
@@ -658,7 +673,20 @@ function loadSheepTypeList() {
|
|||||||
sheepTypeOptions.value = [];
|
sheepTypeOptions.value = [];
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
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(() => {
|
onMounted(() => {
|
||||||
loadSheepfold();
|
loadSheepfold();
|
||||||
loadRanchList();
|
loadRanchList();
|
||||||
@@ -676,4 +704,10 @@ onMounted(() => {
|
|||||||
border-radius: 12px;
|
border-radius: 12px;
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
}
|
}
|
||||||
|
.selected-ear-numbers{
|
||||||
|
margin-bottom: 16px;
|
||||||
|
padding: 10px;
|
||||||
|
background: #f5f7fa;
|
||||||
|
border-radius: 4px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
@@ -6,9 +6,16 @@
|
|||||||
<el-date-picker v-model="daterangeEventDate" value-format="YYYY-MM-DD" type="daterange" range-separator="-"
|
<el-date-picker v-model="daterangeEventDate" value-format="YYYY-MM-DD" type="daterange" range-separator="-"
|
||||||
start-placeholder="开始日期" end-placeholder="结束日期" />
|
start-placeholder="开始日期" end-placeholder="结束日期" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="管理耳号" prop="manageTags">
|
<el-form-item label="管理耳号" prop="manageTagsList">
|
||||||
<el-input v-model="queryParams.manageTags" placeholder="请输入管理耳号" clearable @keyup.enter="handleQuery"
|
<el-select v-model="queryParams.manageTagsList" multiple filterable remote reserve-keyword
|
||||||
style="width: 150px;" />
|
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>
|
||||||
<el-form-item label="羊舍" prop="sheepfold">
|
<el-form-item label="羊舍" prop="sheepfold">
|
||||||
<el-select v-model="queryParams.sheepfold" placeholder="请选择羊舍" style="min-width:150px" clearable>
|
<el-select v-model="queryParams.sheepfold" placeholder="请选择羊舍" style="min-width:150px" clearable>
|
||||||
@@ -25,7 +32,13 @@
|
|||||||
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
|
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</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-row :gutter="10" class="mb8">
|
||||||
<el-col :span="1.5">
|
<el-col :span="1.5">
|
||||||
@@ -120,7 +133,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup name="castrate">
|
<script setup name="castrate">
|
||||||
import { listCastrate, getCastrate, delCastrate, addCastrate, updateCastrate } from '@/api/produce/other/castrate'
|
import { listCastrate, getCastrate, delCastrate, addCastrate, searchEarNumbers } from '@/api/produce/other/castrate'
|
||||||
import { checkSheepByManageTags, getVarietyOptions, getSheepBySheepfoldId } from '@/api/produce/other/fixHoof'
|
import { checkSheepByManageTags, getVarietyOptions, getSheepBySheepfoldId } from '@/api/produce/other/fixHoof'
|
||||||
import { listSheepfold_management as listSheepfold } from '@/api/fileManagement/sheepfold_management'
|
import { listSheepfold_management as listSheepfold } from '@/api/fileManagement/sheepfold_management'
|
||||||
|
|
||||||
@@ -175,6 +188,8 @@ const data = reactive({
|
|||||||
})
|
})
|
||||||
|
|
||||||
const { queryParams, form, rules } = toRefs(data)
|
const { queryParams, form, rules } = toRefs(data)
|
||||||
|
const earOptions = ref([])
|
||||||
|
const earLoading = ref(false)
|
||||||
//通过羊舍获取羊只
|
//通过羊舍获取羊只
|
||||||
function loadSheepBySheepfold() {
|
function loadSheepBySheepfold() {
|
||||||
const sheepfoldId = form.value.sheepfold;
|
const sheepfoldId = form.value.sheepfold;
|
||||||
@@ -311,6 +326,7 @@ function handleQuery() {
|
|||||||
function resetQuery() {
|
function resetQuery() {
|
||||||
daterangeCreateTime.value = []
|
daterangeCreateTime.value = []
|
||||||
daterangeEventDate.value = []
|
daterangeEventDate.value = []
|
||||||
|
queryParams.value.manageTagsList = []
|
||||||
proxy.resetForm('queryRef')
|
proxy.resetForm('queryRef')
|
||||||
handleQuery()
|
handleQuery()
|
||||||
}
|
}
|
||||||
@@ -443,7 +459,20 @@ function getSheepfoldOptions() {
|
|||||||
sheepfoldOptions.value = res.rows
|
sheepfoldOptions.value = res.rows
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
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(() => {
|
onMounted(() => {
|
||||||
getSheepfoldOptions()
|
getSheepfoldOptions()
|
||||||
getVarietyOptions()
|
getVarietyOptions()
|
||||||
@@ -459,4 +488,10 @@ onMounted(() => {
|
|||||||
border-radius: 12px;
|
border-radius: 12px;
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
}
|
}
|
||||||
|
.selected-ear-numbers{
|
||||||
|
margin-bottom: 16px;
|
||||||
|
padding: 10px;
|
||||||
|
background: #f5f7fa;
|
||||||
|
border-radius: 4px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
@@ -5,9 +5,16 @@
|
|||||||
<el-date-picker v-model="daterangeEventDate" value-format="YYYY-MM-DD" type="daterange" range-separator="-"
|
<el-date-picker v-model="daterangeEventDate" value-format="YYYY-MM-DD" type="daterange" range-separator="-"
|
||||||
start-placeholder="开始日期" end-placeholder="结束日期" />
|
start-placeholder="开始日期" end-placeholder="结束日期" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="管理耳号" prop="manageTags">
|
<el-form-item label="管理耳号" prop="manageTagsList">
|
||||||
<el-input v-model="queryParams.manageTags" placeholder="请输入管理耳号" clearable @keyup.enter="handleQuery"
|
<el-select v-model="queryParams.manageTagsList" multiple filterable remote reserve-keyword
|
||||||
style="width: 150px;" />
|
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>
|
||||||
<el-form-item label="羊舍" prop="sheepfold">
|
<el-form-item label="羊舍" prop="sheepfold">
|
||||||
<el-select v-model="queryParams.sheepfold" placeholder="请选择羊舍" style="min-width:150px" clearable>
|
<el-select v-model="queryParams.sheepfold" placeholder="请选择羊舍" style="min-width:150px" clearable>
|
||||||
@@ -24,7 +31,13 @@
|
|||||||
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
|
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</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-row :gutter="10" class="mb8">
|
||||||
<el-col :span="1.5">
|
<el-col :span="1.5">
|
||||||
@@ -120,7 +133,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup name="FixHoof">
|
<script setup name="FixHoof">
|
||||||
import { listFixHoof, getFixHoof, delFixHoof, addFixHoof, updateFixHoof, checkSheepByManageTags, getVarietyOptions, getSheepBySheepfoldId } from '@/api/produce/other/fixHoof'
|
import { listFixHoof, getFixHoof, delFixHoof, addFixHoof, updateFixHoof, checkSheepByManageTags, getVarietyOptions, getSheepBySheepfoldId,searchEarNumbers } from '@/api/produce/other/fixHoof'
|
||||||
import { listSheepfold_management as listSheepfold } from '@/api/fileManagement/sheepfold_management'
|
import { listSheepfold_management as listSheepfold } from '@/api/fileManagement/sheepfold_management'
|
||||||
|
|
||||||
const { proxy } = getCurrentInstance()
|
const { proxy } = getCurrentInstance()
|
||||||
@@ -172,7 +185,8 @@ const data = reactive({
|
|||||||
})
|
})
|
||||||
|
|
||||||
const { queryParams, form, rules } = toRefs(data)
|
const { queryParams, form, rules } = toRefs(data)
|
||||||
|
const earOptions = ref([])
|
||||||
|
const earLoading = ref(false)
|
||||||
//根据羊舍获取羊只
|
//根据羊舍获取羊只
|
||||||
function loadSheepBySheepfold() {
|
function loadSheepBySheepfold() {
|
||||||
const currentSheepfoldId = form.value.sheepfold;
|
const currentSheepfoldId = form.value.sheepfold;
|
||||||
@@ -300,6 +314,7 @@ function resetQuery() {
|
|||||||
daterangeCreateTime.value = []
|
daterangeCreateTime.value = []
|
||||||
daterangeEventDate.value = []
|
daterangeEventDate.value = []
|
||||||
queryParams.value.varietyId = null
|
queryParams.value.varietyId = null
|
||||||
|
queryParams.value.manageTagsList = []
|
||||||
proxy.resetForm('queryRef')
|
proxy.resetForm('queryRef')
|
||||||
handleQuery()
|
handleQuery()
|
||||||
}
|
}
|
||||||
@@ -389,7 +404,20 @@ function getSheepfoldOptions() {
|
|||||||
sheepfoldOptions.value = res.rows
|
sheepfoldOptions.value = res.rows
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
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(() => {
|
onMounted(() => {
|
||||||
getSheepfoldOptions()
|
getSheepfoldOptions()
|
||||||
getVarietyOptions()
|
getVarietyOptions()
|
||||||
@@ -405,4 +433,11 @@ onMounted(() => {
|
|||||||
border-radius: 12px;
|
border-radius: 12px;
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.selected-ear-numbers {
|
||||||
|
margin-bottom: 16px;
|
||||||
|
padding: 10px;
|
||||||
|
background: #f5f7fa;
|
||||||
|
border-radius: 4px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
Reference in New Issue
Block a user