Compare commits
2 Commits
3630863b18
...
90953eed61
| Author | SHA1 | Date | |
|---|---|---|---|
| 90953eed61 | |||
| 136662fdaa |
@@ -3,7 +3,6 @@
|
|||||||
<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=" 耳号" prop="allEarNumbers">
|
<el-form-item label=" 耳号" prop="allEarNumbers">
|
||||||
<div style="display: flex; align-items: center; gap: 10px; flex-wrap: wrap;">
|
<div style="display: flex; align-items: center; gap: 10px; flex-wrap: wrap;">
|
||||||
<!-- 主选择器:不显示已选标签 -->
|
|
||||||
<el-select
|
<el-select
|
||||||
v-model="queryParams.allEarNumbers"
|
v-model="queryParams.allEarNumbers"
|
||||||
multiple
|
multiple
|
||||||
@@ -28,7 +27,6 @@
|
|||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
|
|
||||||
<!-- 辅助粘贴输入框 -->
|
|
||||||
<el-input
|
<el-input
|
||||||
v-model="pasteInput"
|
v-model="pasteInput"
|
||||||
placeholder="或粘贴多个耳号(空格/换行/逗号分隔)"
|
placeholder="或粘贴多个耳号(空格/换行/逗号分隔)"
|
||||||
@@ -42,7 +40,6 @@
|
|||||||
</template>
|
</template>
|
||||||
</el-input>
|
</el-input>
|
||||||
|
|
||||||
<!-- 耳号计数显示 -->
|
|
||||||
<el-tag
|
<el-tag
|
||||||
v-if="queryParams.allEarNumbers && queryParams.allEarNumbers.length > 0"
|
v-if="queryParams.allEarNumbers && queryParams.allEarNumbers.length > 0"
|
||||||
type="info"
|
type="info"
|
||||||
@@ -52,7 +49,6 @@
|
|||||||
已选: {{ queryParams.allEarNumbers.length }} 个
|
已选: {{ queryParams.allEarNumbers.length }} 个
|
||||||
</el-tag>
|
</el-tag>
|
||||||
|
|
||||||
<!-- 清空按钮 -->
|
|
||||||
<el-button
|
<el-button
|
||||||
type="danger"
|
type="danger"
|
||||||
plain
|
plain
|
||||||
@@ -64,13 +60,11 @@
|
|||||||
</el-button>
|
</el-button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- 已选耳号展示区域(默认显示2个,可展开) -->
|
|
||||||
<div
|
<div
|
||||||
v-if="queryParams.allEarNumbers && queryParams.allEarNumbers.length > 0"
|
v-if="queryParams.allEarNumbers && queryParams.allEarNumbers.length > 0"
|
||||||
class="selected-ear-numbers-display"
|
class="selected-ear-numbers-display"
|
||||||
style="margin-top: 10px;"
|
style="margin-top: 10px;"
|
||||||
>
|
>
|
||||||
<!-- 显示前2个或全部耳号 -->
|
|
||||||
<el-tag
|
<el-tag
|
||||||
v-for="(tag, index) in displayedEarNumbers"
|
v-for="(tag, index) in displayedEarNumbers"
|
||||||
:key="tag"
|
:key="tag"
|
||||||
@@ -82,7 +76,6 @@
|
|||||||
{{ tag }}
|
{{ tag }}
|
||||||
</el-tag>
|
</el-tag>
|
||||||
|
|
||||||
<!-- 展开/收起按钮 -->
|
|
||||||
<el-button
|
<el-button
|
||||||
v-if="queryParams.allEarNumbers.length > defaultShowCount"
|
v-if="queryParams.allEarNumbers.length > defaultShowCount"
|
||||||
type="primary"
|
type="primary"
|
||||||
@@ -112,14 +105,25 @@
|
|||||||
<el-option label="流产" value="流产" />
|
<el-option label="流产" value="流产" />
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item label="技术员" prop="technician">
|
<el-form-item label="技术员" prop="technician">
|
||||||
<el-input
|
<el-select
|
||||||
v-model="queryParams.technician"
|
v-model="queryParams.technician"
|
||||||
placeholder="请输入技术员"
|
placeholder="请选择技术员"
|
||||||
|
filterable
|
||||||
clearable
|
clearable
|
||||||
@keyup.enter="handleQuery"
|
style="width: 200px"
|
||||||
|
@change="handleQuery"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="item in technicalOptions"
|
||||||
|
:key="item.value"
|
||||||
|
:label="item.label"
|
||||||
|
:value="item.value"
|
||||||
/>
|
/>
|
||||||
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item label="孕检方式" prop="way">
|
<el-form-item label="孕检方式" prop="way">
|
||||||
<el-select v-model="queryParams.way" placeholder="请选择孕检方式" clearable>
|
<el-select v-model="queryParams.way" placeholder="请选择孕检方式" clearable>
|
||||||
<el-option label="B超" value="B超" />
|
<el-option label="B超" value="B超" />
|
||||||
@@ -185,8 +189,6 @@
|
|||||||
|
|
||||||
<el-table v-loading="loading" :data="Pregnancy_TestList" @selection-change="handleSelectionChange">
|
<el-table v-loading="loading" :data="Pregnancy_TestList" @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" width="120" />
|
<el-table-column label="耳号" align="center" prop="manageTags" width="120" />
|
||||||
<el-table-column label="品种" align="center" prop="variety" width="100" />
|
<el-table-column label="品种" align="center" prop="variety" width="100" />
|
||||||
<el-table-column label="事件类型" align="center" width="80">
|
<el-table-column label="事件类型" align="center" width="80">
|
||||||
@@ -258,10 +260,8 @@
|
|||||||
@pagination="getList"
|
@pagination="getList"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<!-- 添加或修改孕检记录对话框 -->
|
|
||||||
<el-dialog :title="title" v-model="open" width="900px" append-to-body>
|
<el-dialog :title="title" v-model="open" width="900px" append-to-body>
|
||||||
<el-form ref="Pregnancy_TestRef" :model="form" :rules="rules" label-width="120px">
|
<el-form ref="Pregnancy_TestRef" :model="form" :rules="rules" label-width="120px">
|
||||||
<!-- 基本信息 -->
|
|
||||||
<el-row :gutter="30">
|
<el-row :gutter="30">
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="耳号" prop="manageTags">
|
<el-form-item label="耳号" prop="manageTags">
|
||||||
@@ -315,7 +315,20 @@
|
|||||||
<el-row :gutter="30">
|
<el-row :gutter="30">
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="技术员" prop="technician">
|
<el-form-item label="技术员" prop="technician">
|
||||||
<el-input v-model="form.technician" placeholder="请输入技术员" />
|
<el-select
|
||||||
|
v-model="form.technician"
|
||||||
|
placeholder="请选择技术员"
|
||||||
|
filterable
|
||||||
|
clearable
|
||||||
|
style="width: 100%"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="item in technicalOptions"
|
||||||
|
:key="item.value"
|
||||||
|
:label="item.label"
|
||||||
|
:value="item.value"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
@@ -337,7 +350,6 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
<!-- 配种信息显示 -->
|
|
||||||
<el-divider content-position="left">配种信息</el-divider>
|
<el-divider content-position="left">配种信息</el-divider>
|
||||||
<el-row :gutter="30" v-if="breedInfo.manageTags">
|
<el-row :gutter="30" v-if="breedInfo.manageTags">
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
@@ -388,6 +400,7 @@ import {
|
|||||||
getBreedInfoByManageTags,
|
getBreedInfoByManageTags,
|
||||||
searchEarNumbers
|
searchEarNumbers
|
||||||
} from "@/api/Pregnancy_Test/Pregnancy_Test"
|
} from "@/api/Pregnancy_Test/Pregnancy_Test"
|
||||||
|
import { getUserByPost } from '@/api/common/user' // 新增引入
|
||||||
import { ref, computed, nextTick } from 'vue'
|
import { ref, computed, nextTick } from 'vue'
|
||||||
import { ArrowUp, ArrowDown, Plus, Delete } from '@element-plus/icons-vue'
|
import { ArrowUp, ArrowDown, Plus, Delete } from '@element-plus/icons-vue'
|
||||||
import {parseTime} from "@/utils/ruoyi.js";
|
import {parseTime} from "@/utils/ruoyi.js";
|
||||||
@@ -399,6 +412,9 @@ const earNumberLoading = ref(false) // 耳号加载状态
|
|||||||
const isExpanded = ref(false) // 控制耳号展开/折叠状态
|
const isExpanded = ref(false) // 控制耳号展开/折叠状态
|
||||||
const defaultShowCount = 2 // 默认显示的耳号数量
|
const defaultShowCount = 2 // 默认显示的耳号数量
|
||||||
|
|
||||||
|
// 新增:技术员选项
|
||||||
|
const technicalOptions = ref([])
|
||||||
|
|
||||||
// 计算属性:控制显示的耳号列表
|
// 计算属性:控制显示的耳号列表
|
||||||
const displayedEarNumbers = computed(() => {
|
const displayedEarNumbers = computed(() => {
|
||||||
if (!queryParams.value.allEarNumbers || queryParams.value.allEarNumbers.length === 0) {
|
if (!queryParams.value.allEarNumbers || queryParams.value.allEarNumbers.length === 0) {
|
||||||
@@ -476,6 +492,24 @@ const data = reactive({
|
|||||||
|
|
||||||
const { queryParams, form, rules } = toRefs(data)
|
const { queryParams, form, rules } = toRefs(data)
|
||||||
|
|
||||||
|
// 新增:获取技术员列表
|
||||||
|
const fetchTechnicalList = () => {
|
||||||
|
getUserByPost({ postCode: "techs" })
|
||||||
|
.then(res => {
|
||||||
|
if (res.code === 200 && Array.isArray(res.data)) {
|
||||||
|
technicalOptions.value = res.data.map(item => ({
|
||||||
|
value: item.nickName,
|
||||||
|
label: item.nickName
|
||||||
|
}))
|
||||||
|
} else {
|
||||||
|
technicalOptions.value = []
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch(err => {
|
||||||
|
technicalOptions.value = []
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
/** 处理粘贴事件 */
|
/** 处理粘贴事件 */
|
||||||
function handlePaste(event) {
|
function handlePaste(event) {
|
||||||
nextTick(() => {
|
nextTick(() => {
|
||||||
@@ -866,6 +900,7 @@ function handleDebugTest() {
|
|||||||
|
|
||||||
// 页面初始化
|
// 页面初始化
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
|
fetchTechnicalList() // 初始化加载技术员列表
|
||||||
console.log("页面初始化,开始加载数据")
|
console.log("页面初始化,开始加载数据")
|
||||||
getList()
|
getList()
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -1,10 +1,8 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="app-container">
|
<div class="app-container">
|
||||||
<el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="80px">
|
<el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="80px">
|
||||||
<!-- 修改母羊耳号查询组件 -->
|
|
||||||
<el-form-item label="耳号" prop="allEarNumbers">
|
<el-form-item label="耳号" prop="allEarNumbers">
|
||||||
<div style="display: flex; align-items: center; gap: 10px; flex-wrap: wrap;">
|
<div style="display: flex; align-items: center; gap: 10px; flex-wrap: wrap;">
|
||||||
<!-- 主选择器:不显示已选标签 -->
|
|
||||||
<el-select
|
<el-select
|
||||||
v-model="queryParams.allEarNumbers"
|
v-model="queryParams.allEarNumbers"
|
||||||
multiple
|
multiple
|
||||||
@@ -29,7 +27,6 @@
|
|||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
|
|
||||||
<!-- 辅助粘贴输入框 -->
|
|
||||||
<el-input
|
<el-input
|
||||||
v-model="pasteInput"
|
v-model="pasteInput"
|
||||||
placeholder="或粘贴多个耳号(空格/换行/逗号分隔)"
|
placeholder="或粘贴多个耳号(空格/换行/逗号分隔)"
|
||||||
@@ -43,7 +40,6 @@
|
|||||||
</template>
|
</template>
|
||||||
</el-input>
|
</el-input>
|
||||||
|
|
||||||
<!-- 耳号计数显示 -->
|
|
||||||
<el-tag
|
<el-tag
|
||||||
v-if="queryParams.allEarNumbers && queryParams.allEarNumbers.length > 0"
|
v-if="queryParams.allEarNumbers && queryParams.allEarNumbers.length > 0"
|
||||||
type="info"
|
type="info"
|
||||||
@@ -53,7 +49,6 @@
|
|||||||
已选: {{ queryParams.allEarNumbers.length }} 个
|
已选: {{ queryParams.allEarNumbers.length }} 个
|
||||||
</el-tag>
|
</el-tag>
|
||||||
|
|
||||||
<!-- 清空按钮 -->
|
|
||||||
<el-button
|
<el-button
|
||||||
type="danger"
|
type="danger"
|
||||||
plain
|
plain
|
||||||
@@ -65,13 +60,11 @@
|
|||||||
</el-button>
|
</el-button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- 已选耳号展示区域(默认显示2个,可展开) -->
|
|
||||||
<div
|
<div
|
||||||
v-if="queryParams.allEarNumbers && queryParams.allEarNumbers.length > 0"
|
v-if="queryParams.allEarNumbers && queryParams.allEarNumbers.length > 0"
|
||||||
class="selected-ear-numbers-display"
|
class="selected-ear-numbers-display"
|
||||||
style="margin-top: 10px;"
|
style="margin-top: 10px;"
|
||||||
>
|
>
|
||||||
<!-- 显示前2个或全部耳号 -->
|
|
||||||
<el-tag
|
<el-tag
|
||||||
v-for="(tag, index) in displayedEarNumbers"
|
v-for="(tag, index) in displayedEarNumbers"
|
||||||
:key="tag"
|
:key="tag"
|
||||||
@@ -83,7 +76,6 @@
|
|||||||
{{ tag }}
|
{{ tag }}
|
||||||
</el-tag>
|
</el-tag>
|
||||||
|
|
||||||
<!-- 展开/收起按钮 -->
|
|
||||||
<el-button
|
<el-button
|
||||||
v-if="queryParams.allEarNumbers.length > defaultShowCount"
|
v-if="queryParams.allEarNumbers.length > defaultShowCount"
|
||||||
type="primary"
|
type="primary"
|
||||||
@@ -99,7 +91,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<!-- 其他查询条件保持不变 -->
|
|
||||||
<el-form-item label="母羊品种" prop="femaleBreed">
|
<el-form-item label="母羊品种" prop="femaleBreed">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="queryParams.femaleBreed"
|
v-model="queryParams.femaleBreed"
|
||||||
@@ -116,14 +107,25 @@
|
|||||||
@keyup.enter="handleQuery"
|
@keyup.enter="handleQuery"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item label="技术员" prop="technician">
|
<el-form-item label="技术员" prop="technician">
|
||||||
<el-input
|
<el-select
|
||||||
v-model="queryParams.technician"
|
v-model="queryParams.technician"
|
||||||
placeholder="请输入技术员"
|
placeholder="请选择技术员"
|
||||||
|
filterable
|
||||||
clearable
|
clearable
|
||||||
@keyup.enter="handleQuery"
|
style="width: 200px"
|
||||||
|
@change="handleQuery"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="item in technicalOptions"
|
||||||
|
:key="item.value"
|
||||||
|
:label="item.label"
|
||||||
|
:value="item.value"
|
||||||
/>
|
/>
|
||||||
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item label="所在牧场" prop="farm">
|
<el-form-item label="所在牧场" prop="farm">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="queryParams.farm"
|
v-model="queryParams.farm"
|
||||||
@@ -246,7 +248,6 @@
|
|||||||
@pagination="getList"
|
@pagination="getList"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<!-- 添加或修改产羔记录对话框 -->
|
|
||||||
<el-dialog :title="title" v-model="open" width="900px" append-to-body>
|
<el-dialog :title="title" v-model="open" width="900px" append-to-body>
|
||||||
<el-form ref="lambing_recordsRef" :model="form" :rules="rules" label-width="120px">
|
<el-form ref="lambing_recordsRef" :model="form" :rules="rules" label-width="120px">
|
||||||
<el-row :gutter="20">
|
<el-row :gutter="20">
|
||||||
@@ -284,9 +285,23 @@
|
|||||||
<el-input v-model="form.pregnancyDays" placeholder="怀孕天数" readonly />
|
<el-input v-model="form.pregnancyDays" placeholder="怀孕天数" readonly />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="技术员" prop="technician">
|
<el-form-item label="技术员" prop="technician">
|
||||||
<el-input v-model="form.technician" placeholder="请输入技术员" />
|
<el-select
|
||||||
|
v-model="form.technician"
|
||||||
|
placeholder="请选择技术员"
|
||||||
|
filterable
|
||||||
|
clearable
|
||||||
|
style="width: 100%"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="item in technicalOptions"
|
||||||
|
:key="item.value"
|
||||||
|
:label="item.label"
|
||||||
|
:value="item.value"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
@@ -332,7 +347,6 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<!-- 显示已选择的耳号标签 -->
|
|
||||||
<div v-if="queryParams.femaleEarNumbers && queryParams.femaleEarNumbers.length > 0" class="selected-ear-numbers">
|
<div v-if="queryParams.femaleEarNumbers && queryParams.femaleEarNumbers.length > 0" class="selected-ear-numbers">
|
||||||
<span style="margin-right: 10px; color: #606266;">已选择耳号:</span>
|
<span style="margin-right: 10px; color: #606266;">已选择耳号:</span>
|
||||||
<el-tag
|
<el-tag
|
||||||
@@ -346,7 +360,6 @@
|
|||||||
</el-tag>
|
</el-tag>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- 羔羊信息录入 -->
|
|
||||||
<div v-if="form.lambsBorn > 0 && showLambForms">
|
<div v-if="form.lambsBorn > 0 && showLambForms">
|
||||||
<el-divider content-position="left">羔羊信息录入</el-divider>
|
<el-divider content-position="left">羔羊信息录入</el-divider>
|
||||||
<div v-for="(lamb, index) in lambForms" :key="index" class="lamb-form-item">
|
<div v-for="(lamb, index) in lambForms" :key="index" class="lamb-form-item">
|
||||||
@@ -430,7 +443,6 @@
|
|||||||
</template>
|
</template>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
|
|
||||||
<!-- 产羔详情对话框 -->
|
|
||||||
<el-dialog title="产羔详情" v-model="detailOpen" width="1000px" append-to-body>
|
<el-dialog title="产羔详情" v-model="detailOpen" width="1000px" append-to-body>
|
||||||
<el-descriptions :column="3" border>
|
<el-descriptions :column="3" border>
|
||||||
<el-descriptions-item label="母羊耳号">{{ detailData.femaleEarNumber }}</el-descriptions-item>
|
<el-descriptions-item label="母羊耳号">{{ detailData.femaleEarNumber }}</el-descriptions-item>
|
||||||
@@ -481,6 +493,7 @@
|
|||||||
|
|
||||||
<script setup name="Lambing_records">
|
<script setup name="Lambing_records">
|
||||||
import { listLambing_records, getLambing_records, delLambing_records, addLambing_records, updateLambing_records, getLambDetail, getVarietyList, getBreedingInfo,searchEarNumbers } from "@/api/breed/lambing_records"
|
import { listLambing_records, getLambing_records, delLambing_records, addLambing_records, updateLambing_records, getLambDetail, getVarietyList, getBreedingInfo,searchEarNumbers } from "@/api/breed/lambing_records"
|
||||||
|
import { getUserByPost } from '@/api/common/user' // 新增引入
|
||||||
import { ref, computed, nextTick } from 'vue'
|
import { ref, computed, nextTick } from 'vue'
|
||||||
import { ArrowUp, ArrowDown, Plus, Delete } from '@element-plus/icons-vue'
|
import { ArrowUp, ArrowDown, Plus, Delete } from '@element-plus/icons-vue'
|
||||||
|
|
||||||
@@ -491,6 +504,9 @@ const earNumberLoading = ref(false) // 耳号加载状态
|
|||||||
const isExpanded = ref(false) // 控制耳号展开/折叠状态
|
const isExpanded = ref(false) // 控制耳号展开/折叠状态
|
||||||
const defaultShowCount = 2 // 默认显示的耳号数量
|
const defaultShowCount = 2 // 默认显示的耳号数量
|
||||||
|
|
||||||
|
// 新增:技术员选项
|
||||||
|
const technicalOptions = ref([])
|
||||||
|
|
||||||
// 计算属性:控制显示的耳号列表
|
// 计算属性:控制显示的耳号列表
|
||||||
const displayedEarNumbers = computed(() => {
|
const displayedEarNumbers = computed(() => {
|
||||||
if (!queryParams.value.allEarNumbers || queryParams.value.allEarNumbers.length === 0) {
|
if (!queryParams.value.allEarNumbers || queryParams.value.allEarNumbers.length === 0) {
|
||||||
@@ -552,6 +568,25 @@ const data = reactive({
|
|||||||
})
|
})
|
||||||
|
|
||||||
const { queryParams, form, rules } = toRefs(data)
|
const { queryParams, form, rules } = toRefs(data)
|
||||||
|
|
||||||
|
// 新增:获取技术员列表
|
||||||
|
const fetchTechnicalList = () => {
|
||||||
|
getUserByPost({ postCode: "techs" })
|
||||||
|
.then(res => {
|
||||||
|
if (res.code === 200 && Array.isArray(res.data)) {
|
||||||
|
technicalOptions.value = res.data.map(item => ({
|
||||||
|
value: item.nickName,
|
||||||
|
label: item.nickName
|
||||||
|
}))
|
||||||
|
} else {
|
||||||
|
technicalOptions.value = []
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch(err => {
|
||||||
|
technicalOptions.value = []
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
/** 处理粘贴事件 */
|
/** 处理粘贴事件 */
|
||||||
function handlePaste(event) {
|
function handlePaste(event) {
|
||||||
nextTick(() => {
|
nextTick(() => {
|
||||||
@@ -953,6 +988,7 @@ function handleExport() {
|
|||||||
|
|
||||||
// 页面初始化
|
// 页面初始化
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
|
fetchTechnicalList() // 初始化加载技术员列表
|
||||||
console.log('页面初始化开始')
|
console.log('页面初始化开始')
|
||||||
getVarietyData() // 先获取品种列表
|
getVarietyData() // 先获取品种列表
|
||||||
.then(() => {
|
.then(() => {
|
||||||
|
|||||||
@@ -41,20 +41,16 @@
|
|||||||
v-model="queryParams.technicianList"
|
v-model="queryParams.technicianList"
|
||||||
multiple
|
multiple
|
||||||
filterable
|
filterable
|
||||||
remote
|
|
||||||
reserve-keyword
|
|
||||||
placeholder="请输入技术员搜索"
|
|
||||||
:remote-method="searchTechnician"
|
|
||||||
:loading="technicianLoading"
|
|
||||||
style="width: 200px"
|
|
||||||
clearable
|
clearable
|
||||||
|
placeholder="请选择技术员"
|
||||||
|
style="width: 200px"
|
||||||
@change="handleQuery"
|
@change="handleQuery"
|
||||||
>
|
>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in technicianOptions"
|
v-for="item in technicalOptions"
|
||||||
:key="item"
|
:key="item.value"
|
||||||
:label="item"
|
:label="item.label"
|
||||||
:value="item"
|
:value="item.value"
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@@ -154,8 +150,13 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item label="技术员" prop="tecahnician">
|
<el-form-item label="技术员" prop="tecahnician">
|
||||||
<el-select v-model="form.tecahnician" filterable allow-create default-first-option placeholder="请输入或选择技术员">
|
<el-select v-model="form.tecahnician" filterable clearable placeholder="请选择技术员" style="width: 100%">
|
||||||
<el-option v-for="user in userOptions" :key="user.userName" :label="user.nickName" :value="user.nickName"></el-option>
|
<el-option
|
||||||
|
v-for="item in technicalOptions"
|
||||||
|
:key="item.value"
|
||||||
|
:label="item.label"
|
||||||
|
:value="item.value"
|
||||||
|
></el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
@@ -174,7 +175,8 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup name="Drymilk">
|
<script setup name="Drymilk">
|
||||||
import { listDrymilk, getDrymilk, delDrymilk, addDrymilk, updateDrymilk, searchEarNumbers, searchTechnicians } from "@/api/drymilk/drymilk"
|
import { listDrymilk, getDrymilk, delDrymilk, addDrymilk, updateDrymilk, searchEarNumbers } from "@/api/drymilk/drymilk"
|
||||||
|
import { getUserByPost } from '@/api/common/user' // 新增引入
|
||||||
import { listUser } from "@/api/system/user";
|
import { listUser } from "@/api/system/user";
|
||||||
import axios from 'axios';
|
import axios from 'axios';
|
||||||
import { getToken } from "@/utils/auth";
|
import { getToken } from "@/utils/auth";
|
||||||
@@ -198,9 +200,8 @@ const userOptions = ref([])
|
|||||||
const earNumberLoading = ref(false)
|
const earNumberLoading = ref(false)
|
||||||
const earNumberOptions = ref([])
|
const earNumberOptions = ref([])
|
||||||
|
|
||||||
// 技术员搜索变量
|
// 新增:技术员选项
|
||||||
const technicianLoading = ref(false)
|
const technicalOptions = ref([])
|
||||||
const technicianOptions = ref([])
|
|
||||||
|
|
||||||
const data = reactive({
|
const data = reactive({
|
||||||
form: {},
|
form: {},
|
||||||
@@ -223,6 +224,24 @@ const data = reactive({
|
|||||||
|
|
||||||
const { queryParams, form, rules } = toRefs(data)
|
const { queryParams, form, rules } = toRefs(data)
|
||||||
|
|
||||||
|
// 新增:获取技术员列表
|
||||||
|
const fetchTechnicalList = () => {
|
||||||
|
getUserByPost({ postCode: "techs" })
|
||||||
|
.then(res => {
|
||||||
|
if (res.code === 200 && Array.isArray(res.data)) {
|
||||||
|
technicalOptions.value = res.data.map(item => ({
|
||||||
|
value: item.nickName,
|
||||||
|
label: item.nickName
|
||||||
|
}))
|
||||||
|
} else {
|
||||||
|
technicalOptions.value = []
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch(err => {
|
||||||
|
technicalOptions.value = []
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
/** 远程搜索耳号 */
|
/** 远程搜索耳号 */
|
||||||
function searchEarNumber(query) {
|
function searchEarNumber(query) {
|
||||||
if (query) {
|
if (query) {
|
||||||
@@ -240,23 +259,6 @@ function searchEarNumber(query) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 远程搜索技术员 */
|
|
||||||
function searchTechnician(query) {
|
|
||||||
if (query) {
|
|
||||||
technicianLoading.value = true;
|
|
||||||
searchTechnicians(query).then(res => {
|
|
||||||
technicianLoading.value = false;
|
|
||||||
const list = res.data || res.msg || res;
|
|
||||||
technicianOptions.value = Array.isArray(list) ? list : [];
|
|
||||||
}).catch(err => {
|
|
||||||
technicianLoading.value = false;
|
|
||||||
technicianOptions.value = [];
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
technicianOptions.value = [];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/** 查询干奶记录列表 */
|
/** 查询干奶记录列表 */
|
||||||
function getList() {
|
function getList() {
|
||||||
loading.value = true
|
loading.value = true
|
||||||
@@ -317,7 +319,6 @@ function resetQuery() {
|
|||||||
queryParams.value.manageTagsList = []
|
queryParams.value.manageTagsList = []
|
||||||
queryParams.value.technicianList = []
|
queryParams.value.technicianList = []
|
||||||
earNumberOptions.value = []
|
earNumberOptions.value = []
|
||||||
technicianOptions.value = []
|
|
||||||
proxy.resetForm("queryRef")
|
proxy.resetForm("queryRef")
|
||||||
handleQuery()
|
handleQuery()
|
||||||
}
|
}
|
||||||
@@ -402,4 +403,5 @@ function handleExport() {
|
|||||||
getList()
|
getList()
|
||||||
getSheepfoldList()
|
getSheepfoldList()
|
||||||
getUserList()
|
getUserList()
|
||||||
|
fetchTechnicalList() // 初始化加载技术员列表
|
||||||
</script>
|
</script>
|
||||||
@@ -3,7 +3,6 @@
|
|||||||
<el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="80px">
|
<el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="80px">
|
||||||
<el-form-item label="耳号" prop="allEarNumbers">
|
<el-form-item label="耳号" prop="allEarNumbers">
|
||||||
<div style="display: flex; align-items: center; gap: 10px; flex-wrap: wrap;">
|
<div style="display: flex; align-items: center; gap: 10px; flex-wrap: wrap;">
|
||||||
<!-- 主选择器:不显示已选标签 -->
|
|
||||||
<el-select
|
<el-select
|
||||||
v-model="queryParams.allEarNumbers"
|
v-model="queryParams.allEarNumbers"
|
||||||
multiple
|
multiple
|
||||||
@@ -28,7 +27,6 @@
|
|||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
|
|
||||||
<!-- 辅助粘贴输入框 -->
|
|
||||||
<el-input
|
<el-input
|
||||||
v-model="pasteInput"
|
v-model="pasteInput"
|
||||||
placeholder="或粘贴多个耳号(空格/换行/逗号分隔)"
|
placeholder="或粘贴多个耳号(空格/换行/逗号分隔)"
|
||||||
@@ -42,7 +40,6 @@
|
|||||||
</template>
|
</template>
|
||||||
</el-input>
|
</el-input>
|
||||||
|
|
||||||
<!-- 耳号计数显示 -->
|
|
||||||
<el-tag
|
<el-tag
|
||||||
v-if="queryParams.allEarNumbers && queryParams.allEarNumbers.length > 0"
|
v-if="queryParams.allEarNumbers && queryParams.allEarNumbers.length > 0"
|
||||||
type="info"
|
type="info"
|
||||||
@@ -52,7 +49,6 @@
|
|||||||
已选: {{ queryParams.allEarNumbers.length }} 个
|
已选: {{ queryParams.allEarNumbers.length }} 个
|
||||||
</el-tag>
|
</el-tag>
|
||||||
|
|
||||||
<!-- 清空按钮 -->
|
|
||||||
<el-button
|
<el-button
|
||||||
type="danger"
|
type="danger"
|
||||||
plain
|
plain
|
||||||
@@ -64,13 +60,11 @@
|
|||||||
</el-button>
|
</el-button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- 已选耳号展示区域(默认显示2个,可展开) -->
|
|
||||||
<div
|
<div
|
||||||
v-if="queryParams.allEarNumbers && queryParams.allEarNumbers.length > 0"
|
v-if="queryParams.allEarNumbers && queryParams.allEarNumbers.length > 0"
|
||||||
class="selected-ear-numbers-display"
|
class="selected-ear-numbers-display"
|
||||||
style="margin-top: 10px;"
|
style="margin-top: 10px;"
|
||||||
>
|
>
|
||||||
<!-- 显示前2个或全部耳号 -->
|
|
||||||
<el-tag
|
<el-tag
|
||||||
v-for="(tag, index) in displayedEarNumbers"
|
v-for="(tag, index) in displayedEarNumbers"
|
||||||
:key="tag"
|
:key="tag"
|
||||||
@@ -82,7 +76,6 @@
|
|||||||
{{ tag }}
|
{{ tag }}
|
||||||
</el-tag>
|
</el-tag>
|
||||||
|
|
||||||
<!-- 展开/收起按钮 -->
|
|
||||||
<el-button
|
<el-button
|
||||||
v-if="queryParams.allEarNumbers.length > defaultShowCount"
|
v-if="queryParams.allEarNumbers.length > defaultShowCount"
|
||||||
type="primary"
|
type="primary"
|
||||||
@@ -123,14 +116,24 @@
|
|||||||
</el-option>
|
</el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item label="技术员" prop="technician">
|
<el-form-item label="技术员" prop="technician">
|
||||||
<el-input
|
<el-select
|
||||||
v-model="queryParams.technician"
|
v-model="queryParams.technician"
|
||||||
placeholder="请输入技术员"
|
placeholder="请选择技术员"
|
||||||
|
filterable
|
||||||
clearable
|
clearable
|
||||||
@keyup.enter="handleQuery"
|
style="width: 200px"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="item in technicalOptions"
|
||||||
|
:key="item.value"
|
||||||
|
:label="item.label"
|
||||||
|
:value="item.value"
|
||||||
/>
|
/>
|
||||||
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
|
<el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
|
||||||
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
|
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
|
||||||
@@ -181,7 +184,6 @@
|
|||||||
|
|
||||||
<el-table v-loading="loading" :data="miscarriageList" @selection-change="handleSelectionChange">
|
<el-table v-loading="loading" :data="miscarriageList" @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="datetime" width="100" fixed="left">
|
<el-table-column label="流产日期" align="center" prop="datetime" width="100" fixed="left">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<span>{{ parseTime(scope.row.datetime, '{y}-{m}-{d}') }}</span>
|
<span>{{ parseTime(scope.row.datetime, '{y}-{m}-{d}') }}</span>
|
||||||
@@ -245,7 +247,6 @@
|
|||||||
@pagination="getList"
|
@pagination="getList"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<!-- 添加或修改流产记录对话框 -->
|
|
||||||
<el-dialog :title="title" v-model="open" width="600px" append-to-body>
|
<el-dialog :title="title" v-model="open" width="600px" append-to-body>
|
||||||
<el-form ref="miscarriageRef" :model="form" :rules="rules" label-width="100px">
|
<el-form ref="miscarriageRef" :model="form" :rules="rules" label-width="100px">
|
||||||
<el-row>
|
<el-row>
|
||||||
@@ -273,7 +274,6 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
<!-- 羊只信息显示区域 -->
|
|
||||||
<el-row v-if="sheepInfoVisible">
|
<el-row v-if="sheepInfoVisible">
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
<div class="sheep-info-card" :style="sheepInfoCardStyle">
|
<div class="sheep-info-card" :style="sheepInfoCardStyle">
|
||||||
@@ -316,9 +316,23 @@
|
|||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="技术员" prop="technician">
|
<el-form-item label="技术员" prop="technician">
|
||||||
<el-input v-model="form.technician" placeholder="请输入技术员" />
|
<el-select
|
||||||
|
v-model="form.technician"
|
||||||
|
placeholder="请选择技术员"
|
||||||
|
filterable
|
||||||
|
clearable
|
||||||
|
style="width: 100%;"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="item in technicalOptions"
|
||||||
|
:key="item.value"
|
||||||
|
:label="item.label"
|
||||||
|
:value="item.value"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
@@ -375,7 +389,8 @@ import {
|
|||||||
getSheepInfo,
|
getSheepInfo,
|
||||||
getReasonOptions, searchEarNumbers
|
getReasonOptions, searchEarNumbers
|
||||||
} from "@/api/miscarriage/miscarriage"
|
} from "@/api/miscarriage/miscarriage"
|
||||||
import { ref, computed, nextTick } from 'vue'
|
import { getUserByPost } from '@/api/common/user' // 新增引入
|
||||||
|
import { ref, computed, nextTick, onMounted } from 'vue' // 修改:引入 onMounted
|
||||||
import { ArrowUp, ArrowDown, Plus, Delete } from '@element-plus/icons-vue'
|
import { ArrowUp, ArrowDown, Plus, Delete } from '@element-plus/icons-vue'
|
||||||
|
|
||||||
// 响应式数据
|
// 响应式数据
|
||||||
@@ -385,6 +400,9 @@ const earNumberLoading = ref(false) // 耳号加载状态
|
|||||||
const isExpanded = ref(false) // 控制耳号展开/折叠状态
|
const isExpanded = ref(false) // 控制耳号展开/折叠状态
|
||||||
const defaultShowCount = 2 // 默认显示的耳号数量
|
const defaultShowCount = 2 // 默认显示的耳号数量
|
||||||
|
|
||||||
|
// 新增:技术员选项
|
||||||
|
const technicalOptions = ref([])
|
||||||
|
|
||||||
// 计算属性:控制显示的耳号列表
|
// 计算属性:控制显示的耳号列表
|
||||||
const displayedEarNumbers = computed(() => {
|
const displayedEarNumbers = computed(() => {
|
||||||
if (!queryParams.value.allEarNumbers || queryParams.value.allEarNumbers.length === 0) {
|
if (!queryParams.value.allEarNumbers || queryParams.value.allEarNumbers.length === 0) {
|
||||||
@@ -483,6 +501,24 @@ const sheepInfoCardStyle = computed(() => {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
// 新增:获取技术员列表
|
||||||
|
const fetchTechnicalList = () => {
|
||||||
|
getUserByPost({ postCode: "techs" })
|
||||||
|
.then(res => {
|
||||||
|
if (res.code === 200 && Array.isArray(res.data)) {
|
||||||
|
technicalOptions.value = res.data.map(item => ({
|
||||||
|
value: item.nickName,
|
||||||
|
label: item.nickName
|
||||||
|
}))
|
||||||
|
} else {
|
||||||
|
technicalOptions.value = []
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch(err => {
|
||||||
|
technicalOptions.value = []
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
/** 查询流产记录列表 */
|
/** 查询流产记录列表 */
|
||||||
function getList() {
|
function getList() {
|
||||||
loading.value = true
|
loading.value = true
|
||||||
@@ -814,8 +850,12 @@ function handleExport() {
|
|||||||
}, `miscarriage_${new Date().getTime()}.xlsx`)
|
}, `miscarriage_${new Date().getTime()}.xlsx`)
|
||||||
}
|
}
|
||||||
|
|
||||||
getList()
|
// 页面初始化
|
||||||
getReasonOptionsList()
|
onMounted(() => {
|
||||||
|
getList()
|
||||||
|
getReasonOptionsList()
|
||||||
|
fetchTechnicalList() // 初始化加载技术员列表
|
||||||
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
|
|||||||
@@ -80,19 +80,15 @@
|
|||||||
v-model="queryParams.technicianList"
|
v-model="queryParams.technicianList"
|
||||||
multiple
|
multiple
|
||||||
filterable
|
filterable
|
||||||
remote
|
|
||||||
reserve-keyword
|
|
||||||
placeholder="请输入技术员"
|
|
||||||
:remote-method="remoteSearchTechnician"
|
|
||||||
:loading="loadingSearch"
|
|
||||||
clearable
|
clearable
|
||||||
|
placeholder="请选择技术员"
|
||||||
style="width: 200px"
|
style="width: 200px"
|
||||||
>
|
>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in technicianOptions"
|
v-for="item in technicalOptions"
|
||||||
:key="item"
|
:key="item.value"
|
||||||
:label="item"
|
:label="item.label"
|
||||||
:value="item"
|
:value="item.value"
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@@ -102,19 +98,15 @@
|
|||||||
v-model="queryParams.handlerList"
|
v-model="queryParams.handlerList"
|
||||||
multiple
|
multiple
|
||||||
filterable
|
filterable
|
||||||
remote
|
|
||||||
reserve-keyword
|
|
||||||
placeholder="请输入处理人"
|
|
||||||
:remote-method="remoteSearchHandler"
|
|
||||||
:loading="loadingSearch"
|
|
||||||
clearable
|
clearable
|
||||||
|
placeholder="请选择处理人"
|
||||||
style="width: 200px"
|
style="width: 200px"
|
||||||
>
|
>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in handlerOptions"
|
v-for="item in technicalOptions"
|
||||||
:key="item"
|
:key="item.value"
|
||||||
:label="item"
|
:label="item.label"
|
||||||
:value="item"
|
:value="item.value"
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@@ -312,9 +304,23 @@
|
|||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="技术员" prop="technician">
|
<el-form-item label="技术员" prop="technician">
|
||||||
<el-input v-model="form.technician" placeholder="请输入技术员"/>
|
<el-select
|
||||||
|
v-model="form.technician"
|
||||||
|
placeholder="请选择技术员"
|
||||||
|
filterable
|
||||||
|
clearable
|
||||||
|
style="width: 100%"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="item in technicalOptions"
|
||||||
|
:key="item.value"
|
||||||
|
:label="item.label"
|
||||||
|
:value="item.value"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
@@ -322,7 +328,20 @@
|
|||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="处理人" prop="handler">
|
<el-form-item label="处理人" prop="handler">
|
||||||
<el-input v-model="form.handler" placeholder="请输入处理人"/>
|
<el-select
|
||||||
|
v-model="form.handler"
|
||||||
|
placeholder="请选择处理人"
|
||||||
|
filterable
|
||||||
|
clearable
|
||||||
|
style="width: 100%"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="item in technicalOptions"
|
||||||
|
:key="item.value"
|
||||||
|
:label="item.label"
|
||||||
|
:value="item.value"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
@@ -360,9 +379,10 @@ import {
|
|||||||
getSheepInfo,
|
getSheepInfo,
|
||||||
getDiseaseTree,
|
getDiseaseTree,
|
||||||
searchEarNo,
|
searchEarNo,
|
||||||
searchTechnician,
|
// searchTechnician, // 移除旧的远程搜索接口
|
||||||
searchHandler
|
// searchHandler // 移除旧的远程搜索接口
|
||||||
} from "@/api/sheep_death/death"
|
} from "@/api/sheep_death/death"
|
||||||
|
import { getUserByPost } from '@/api/common/user' // 新增引入
|
||||||
|
|
||||||
// 响应式数据
|
// 响应式数据
|
||||||
const pasteInput = ref('') // 批量粘贴输入框
|
const pasteInput = ref('') // 批量粘贴输入框
|
||||||
@@ -371,6 +391,9 @@ const earNumberLoading = ref(false) // 耳号加载状态
|
|||||||
const isExpanded = ref(false) // 控制耳号展开/折叠状态
|
const isExpanded = ref(false) // 控制耳号展开/折叠状态
|
||||||
const defaultShowCount = 2 // 默认显示的耳号数量
|
const defaultShowCount = 2 // 默认显示的耳号数量
|
||||||
|
|
||||||
|
// 新增:技术员选项
|
||||||
|
const technicalOptions = ref([])
|
||||||
|
|
||||||
// 计算属性:控制显示的耳号列表
|
// 计算属性:控制显示的耳号列表
|
||||||
const displayedEarNumbers = computed(() => {
|
const displayedEarNumbers = computed(() => {
|
||||||
if (!queryParams.value.allEarNumbers || queryParams.value.allEarNumbers.length === 0) {
|
if (!queryParams.value.allEarNumbers || queryParams.value.allEarNumbers.length === 0) {
|
||||||
@@ -403,8 +426,8 @@ const diseaseSubtypeOptions = ref([])
|
|||||||
// 远程搜索相关变量
|
// 远程搜索相关变量
|
||||||
const loadingSearch = ref(false)
|
const loadingSearch = ref(false)
|
||||||
const earNoOptions = ref([])
|
const earNoOptions = ref([])
|
||||||
const technicianOptions = ref([])
|
// const technicianOptions = ref([]) // 移除旧变量
|
||||||
const handlerOptions = ref([])
|
// const handlerOptions = ref([]) // 移除旧变量
|
||||||
|
|
||||||
const data = reactive({
|
const data = reactive({
|
||||||
form: {},
|
form: {},
|
||||||
@@ -434,6 +457,25 @@ const data = reactive({
|
|||||||
})
|
})
|
||||||
|
|
||||||
const {queryParams, form, rules} = toRefs(data)
|
const {queryParams, form, rules} = toRefs(data)
|
||||||
|
|
||||||
|
// 新增:获取技术员列表
|
||||||
|
const fetchTechnicalList = () => {
|
||||||
|
getUserByPost({ postCode: "techs" })
|
||||||
|
.then(res => {
|
||||||
|
if (res.code === 200 && Array.isArray(res.data)) {
|
||||||
|
technicalOptions.value = res.data.map(item => ({
|
||||||
|
value: item.nickName,
|
||||||
|
label: item.nickName
|
||||||
|
}))
|
||||||
|
} else {
|
||||||
|
technicalOptions.value = []
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch(err => {
|
||||||
|
technicalOptions.value = []
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
/** 处理粘贴事件 */
|
/** 处理粘贴事件 */
|
||||||
function handlePaste(event) {
|
function handlePaste(event) {
|
||||||
nextTick(() => {
|
nextTick(() => {
|
||||||
@@ -589,31 +631,7 @@ function remoteSearchEarNo(query) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 远程搜索技术员 */
|
// 移除旧的 remoteSearchTechnician 和 remoteSearchHandler 函数
|
||||||
function remoteSearchTechnician(query) {
|
|
||||||
if (query) {
|
|
||||||
loadingSearch.value = true
|
|
||||||
searchTechnician(query).then(res => {
|
|
||||||
technicianOptions.value = res.data || []
|
|
||||||
loadingSearch.value = false
|
|
||||||
})
|
|
||||||
} else {
|
|
||||||
technicianOptions.value = []
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/** 远程搜索处理人 */
|
|
||||||
function remoteSearchHandler(query) {
|
|
||||||
if (query) {
|
|
||||||
loadingSearch.value = true
|
|
||||||
searchHandler(query).then(res => {
|
|
||||||
handlerOptions.value = res.data || []
|
|
||||||
loadingSearch.value = false
|
|
||||||
})
|
|
||||||
} else {
|
|
||||||
handlerOptions.value = []
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/** 获取疾病树形列表 */
|
/** 获取疾病树形列表 */
|
||||||
function getDiseaseTreeData() {
|
function getDiseaseTreeData() {
|
||||||
@@ -777,6 +795,7 @@ function handleExport() {
|
|||||||
// 初始化
|
// 初始化
|
||||||
getDiseaseTreeData()
|
getDiseaseTreeData()
|
||||||
getList()
|
getList()
|
||||||
|
fetchTechnicalList() // 初始化加载技术员列表
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
|
|||||||
Reference in New Issue
Block a user