产羔,孕检,流产,干奶,死亡模块技术员下拉框修改

This commit is contained in:
ll
2026-02-06 22:24:40 +08:00
parent 072cd4cca5
commit 136662fdaa
5 changed files with 271 additions and 139 deletions

View File

@@ -3,7 +3,6 @@
<el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label=" 耳号" prop="allEarNumbers">
<div style="display: flex; align-items: center; gap: 10px; flex-wrap: wrap;">
<!-- 主选择器不显示已选标签 -->
<el-select
v-model="queryParams.allEarNumbers"
multiple
@@ -28,7 +27,6 @@
/>
</el-select>
<!-- 辅助粘贴输入框 -->
<el-input
v-model="pasteInput"
placeholder="或粘贴多个耳号(空格/换行/逗号分隔)"
@@ -42,7 +40,6 @@
</template>
</el-input>
<!-- 耳号计数显示 -->
<el-tag
v-if="queryParams.allEarNumbers && queryParams.allEarNumbers.length > 0"
type="info"
@@ -52,7 +49,6 @@
已选: {{ queryParams.allEarNumbers.length }}
</el-tag>
<!-- 清空按钮 -->
<el-button
type="danger"
plain
@@ -64,13 +60,11 @@
</el-button>
</div>
<!-- 已选耳号展示区域默认显示2个可展开 -->
<div
v-if="queryParams.allEarNumbers && queryParams.allEarNumbers.length > 0"
class="selected-ear-numbers-display"
style="margin-top: 10px;"
>
<!-- 显示前2个或全部耳号 -->
<el-tag
v-for="(tag, index) in displayedEarNumbers"
:key="tag"
@@ -82,7 +76,6 @@
{{ tag }}
</el-tag>
<!-- 展开/收起按钮 -->
<el-button
v-if="queryParams.allEarNumbers.length > defaultShowCount"
type="primary"
@@ -112,14 +105,25 @@
<el-option label="流产" value="流产" />
</el-select>
</el-form-item>
<el-form-item label="技术员" prop="technician">
<el-input
v-model="queryParams.technician"
placeholder="请输入技术员"
<el-select
v-model="queryParams.technician"
placeholder="请选择技术员"
filterable
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 label="孕检方式" prop="way">
<el-select v-model="queryParams.way" placeholder="请选择孕检方式" clearable>
<el-option label="B超" value="B超" />
@@ -185,8 +189,6 @@
<el-table v-loading="loading" :data="Pregnancy_TestList" @selection-change="handleSelectionChange">
<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="variety" width="100" />
<el-table-column label="事件类型" align="center" width="80">
@@ -258,10 +260,8 @@
@pagination="getList"
/>
<!-- 添加或修改孕检记录对话框 -->
<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-row :gutter="30">
<el-col :span="12">
<el-form-item label="耳号" prop="manageTags">
@@ -315,7 +315,20 @@
<el-row :gutter="30">
<el-col :span="12">
<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-col>
<el-col :span="12">
@@ -337,7 +350,6 @@
</el-col>
</el-row>
<!-- 配种信息显示 -->
<el-divider content-position="left">配种信息</el-divider>
<el-row :gutter="30" v-if="breedInfo.manageTags">
<el-col :span="8">
@@ -388,6 +400,7 @@ import {
getBreedInfoByManageTags,
searchEarNumbers
} from "@/api/Pregnancy_Test/Pregnancy_Test"
import { getUserByPost } from '@/api/common/user' // 新增引入
import { ref, computed, nextTick } from 'vue'
import { ArrowUp, ArrowDown, Plus, Delete } from '@element-plus/icons-vue'
import {parseTime} from "@/utils/ruoyi.js";
@@ -399,6 +412,9 @@ const earNumberLoading = ref(false) // 耳号加载状态
const isExpanded = ref(false) // 控制耳号展开/折叠状态
const defaultShowCount = 2 // 默认显示的耳号数量
// 新增:技术员选项
const technicalOptions = ref([])
// 计算属性:控制显示的耳号列表
const displayedEarNumbers = computed(() => {
if (!queryParams.value.allEarNumbers || queryParams.value.allEarNumbers.length === 0) {
@@ -476,6 +492,24 @@ const data = reactive({
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) {
nextTick(() => {
@@ -866,6 +900,7 @@ function handleDebugTest() {
// 页面初始化
onMounted(() => {
fetchTechnicalList() // 初始化加载技术员列表
console.log("页面初始化,开始加载数据")
getList()
})

View File

@@ -1,10 +1,8 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="80px">
<!-- 修改母羊耳号查询组件 -->
<el-form-item label="耳号" prop="allEarNumbers">
<div style="display: flex; align-items: center; gap: 10px; flex-wrap: wrap;">
<!-- 主选择器不显示已选标签 -->
<el-select
v-model="queryParams.allEarNumbers"
multiple
@@ -29,7 +27,6 @@
/>
</el-select>
<!-- 辅助粘贴输入框 -->
<el-input
v-model="pasteInput"
placeholder="或粘贴多个耳号(空格/换行/逗号分隔)"
@@ -43,7 +40,6 @@
</template>
</el-input>
<!-- 耳号计数显示 -->
<el-tag
v-if="queryParams.allEarNumbers && queryParams.allEarNumbers.length > 0"
type="info"
@@ -53,7 +49,6 @@
已选: {{ queryParams.allEarNumbers.length }}
</el-tag>
<!-- 清空按钮 -->
<el-button
type="danger"
plain
@@ -65,13 +60,11 @@
</el-button>
</div>
<!-- 已选耳号展示区域默认显示2个可展开 -->
<div
v-if="queryParams.allEarNumbers && queryParams.allEarNumbers.length > 0"
class="selected-ear-numbers-display"
style="margin-top: 10px;"
>
<!-- 显示前2个或全部耳号 -->
<el-tag
v-for="(tag, index) in displayedEarNumbers"
:key="tag"
@@ -83,7 +76,6 @@
{{ tag }}
</el-tag>
<!-- 展开/收起按钮 -->
<el-button
v-if="queryParams.allEarNumbers.length > defaultShowCount"
type="primary"
@@ -99,7 +91,6 @@
</div>
</el-form-item>
<!-- 其他查询条件保持不变 -->
<el-form-item label="母羊品种" prop="femaleBreed">
<el-input
v-model="queryParams.femaleBreed"
@@ -116,14 +107,25 @@
@keyup.enter="handleQuery"
/>
</el-form-item>
<el-form-item label="技术员" prop="technician">
<el-input
<el-select
v-model="queryParams.technician"
placeholder="请输入技术员"
placeholder="请选择技术员"
filterable
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 label="所在牧场" prop="farm">
<el-input
v-model="queryParams.farm"
@@ -246,7 +248,6 @@
@pagination="getList"
/>
<!-- 添加或修改产羔记录对话框 -->
<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-row :gutter="20">
@@ -284,9 +285,23 @@
<el-input v-model="form.pregnancyDays" placeholder="怀孕天数" readonly />
</el-form-item>
</el-col>
<el-col :span="12">
<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-col>
</el-row>
@@ -332,7 +347,6 @@
</el-form-item>
</el-col>
</el-row>
<!-- 显示已选择的耳号标签 -->
<div v-if="queryParams.femaleEarNumbers && queryParams.femaleEarNumbers.length > 0" class="selected-ear-numbers">
<span style="margin-right: 10px; color: #606266;">已选择耳号</span>
<el-tag
@@ -346,7 +360,6 @@
</el-tag>
</div>
<!-- 羔羊信息录入 -->
<div v-if="form.lambsBorn > 0 && showLambForms">
<el-divider content-position="left">羔羊信息录入</el-divider>
<div v-for="(lamb, index) in lambForms" :key="index" class="lamb-form-item">
@@ -430,7 +443,6 @@
</template>
</el-dialog>
<!-- 产羔详情对话框 -->
<el-dialog title="产羔详情" v-model="detailOpen" width="1000px" append-to-body>
<el-descriptions :column="3" border>
<el-descriptions-item label="母羊耳号">{{ detailData.femaleEarNumber }}</el-descriptions-item>
@@ -481,6 +493,7 @@
<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 { getUserByPost } from '@/api/common/user' // 新增引入
import { ref, computed, nextTick } from 'vue'
import { ArrowUp, ArrowDown, Plus, Delete } from '@element-plus/icons-vue'
@@ -491,6 +504,9 @@ const earNumberLoading = ref(false) // 耳号加载状态
const isExpanded = ref(false) // 控制耳号展开/折叠状态
const defaultShowCount = 2 // 默认显示的耳号数量
// 新增:技术员选项
const technicalOptions = ref([])
// 计算属性:控制显示的耳号列表
const displayedEarNumbers = computed(() => {
if (!queryParams.value.allEarNumbers || queryParams.value.allEarNumbers.length === 0) {
@@ -552,6 +568,25 @@ const data = reactive({
})
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) {
nextTick(() => {
@@ -953,6 +988,7 @@ function handleExport() {
// 页面初始化
onMounted(() => {
fetchTechnicalList() // 初始化加载技术员列表
console.log('页面初始化开始')
getVarietyData() // 先获取品种列表
.then(() => {

View File

@@ -41,20 +41,16 @@
v-model="queryParams.technicianList"
multiple
filterable
remote
reserve-keyword
placeholder="请输入技术员搜索"
:remote-method="searchTechnician"
:loading="technicianLoading"
style="width: 200px"
clearable
placeholder="请选择技术员"
style="width: 200px"
@change="handleQuery"
>
<el-option
v-for="item in technicianOptions"
:key="item"
:label="item"
:value="item"
v-for="item in technicalOptions"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
@@ -154,8 +150,13 @@
</el-form-item>
<el-form-item label="技术员" prop="tecahnician">
<el-select v-model="form.tecahnician" filterable allow-create default-first-option placeholder="请输入或选择技术员">
<el-option v-for="user in userOptions" :key="user.userName" :label="user.nickName" :value="user.nickName"></el-option>
<el-select v-model="form.tecahnician" filterable clearable placeholder="请选择技术员" style="width: 100%">
<el-option
v-for="item in technicalOptions"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
@@ -174,7 +175,8 @@
</template>
<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 axios from 'axios';
import { getToken } from "@/utils/auth";
@@ -198,9 +200,8 @@ const userOptions = ref([])
const earNumberLoading = ref(false)
const earNumberOptions = ref([])
// 技术员搜索变量
const technicianLoading = ref(false)
const technicianOptions = ref([])
// 新增:技术员选项
const technicalOptions = ref([])
const data = reactive({
form: {},
@@ -223,6 +224,24 @@ const data = reactive({
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) {
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() {
loading.value = true
@@ -317,7 +319,6 @@ function resetQuery() {
queryParams.value.manageTagsList = []
queryParams.value.technicianList = []
earNumberOptions.value = []
technicianOptions.value = []
proxy.resetForm("queryRef")
handleQuery()
}
@@ -402,4 +403,5 @@ function handleExport() {
getList()
getSheepfoldList()
getUserList()
fetchTechnicalList() // 初始化加载技术员列表
</script>

View File

@@ -3,7 +3,6 @@
<el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="80px">
<el-form-item label="耳号" prop="allEarNumbers">
<div style="display: flex; align-items: center; gap: 10px; flex-wrap: wrap;">
<!-- 主选择器不显示已选标签 -->
<el-select
v-model="queryParams.allEarNumbers"
multiple
@@ -28,7 +27,6 @@
/>
</el-select>
<!-- 辅助粘贴输入框 -->
<el-input
v-model="pasteInput"
placeholder="或粘贴多个耳号(空格/换行/逗号分隔)"
@@ -42,7 +40,6 @@
</template>
</el-input>
<!-- 耳号计数显示 -->
<el-tag
v-if="queryParams.allEarNumbers && queryParams.allEarNumbers.length > 0"
type="info"
@@ -52,7 +49,6 @@
已选: {{ queryParams.allEarNumbers.length }}
</el-tag>
<!-- 清空按钮 -->
<el-button
type="danger"
plain
@@ -64,13 +60,11 @@
</el-button>
</div>
<!-- 已选耳号展示区域默认显示2个可展开 -->
<div
v-if="queryParams.allEarNumbers && queryParams.allEarNumbers.length > 0"
class="selected-ear-numbers-display"
style="margin-top: 10px;"
>
<!-- 显示前2个或全部耳号 -->
<el-tag
v-for="(tag, index) in displayedEarNumbers"
:key="tag"
@@ -82,7 +76,6 @@
{{ tag }}
</el-tag>
<!-- 展开/收起按钮 -->
<el-button
v-if="queryParams.allEarNumbers.length > defaultShowCount"
type="primary"
@@ -123,14 +116,24 @@
</el-option>
</el-select>
</el-form-item>
<el-form-item label="技术员" prop="technician">
<el-input
v-model="queryParams.technician"
placeholder="请输入技术员"
clearable
@keyup.enter="handleQuery"
/>
<el-select
v-model="queryParams.technician"
placeholder="请选择技术员"
filterable
clearable
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-button type="primary" icon="Search" @click="handleQuery">搜索</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-column type="selection" width="55" align="center" />
<!-- 日期作为第一列 -->
<el-table-column label="流产日期" align="center" prop="datetime" width="100" fixed="left">
<template #default="scope">
<span>{{ parseTime(scope.row.datetime, '{y}-{m}-{d}') }}</span>
@@ -245,7 +247,6 @@
@pagination="getList"
/>
<!-- 添加或修改流产记录对话框 -->
<el-dialog :title="title" v-model="open" width="600px" append-to-body>
<el-form ref="miscarriageRef" :model="form" :rules="rules" label-width="100px">
<el-row>
@@ -273,7 +274,6 @@
</el-col>
</el-row>
<!-- 羊只信息显示区域 -->
<el-row v-if="sheepInfoVisible">
<el-col :span="24">
<div class="sheep-info-card" :style="sheepInfoCardStyle">
@@ -316,9 +316,23 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<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-col>
</el-row>
@@ -375,7 +389,8 @@ import {
getSheepInfo,
getReasonOptions, searchEarNumbers
} 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'
// 响应式数据
@@ -385,6 +400,9 @@ const earNumberLoading = ref(false) // 耳号加载状态
const isExpanded = ref(false) // 控制耳号展开/折叠状态
const defaultShowCount = 2 // 默认显示的耳号数量
// 新增:技术员选项
const technicalOptions = ref([])
// 计算属性:控制显示的耳号列表
const displayedEarNumbers = computed(() => {
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() {
loading.value = true
@@ -814,8 +850,12 @@ function handleExport() {
}, `miscarriage_${new Date().getTime()}.xlsx`)
}
getList()
getReasonOptionsList()
// 页面初始化
onMounted(() => {
getList()
getReasonOptionsList()
fetchTechnicalList() // 初始化加载技术员列表
})
</script>
<style scoped>

View File

@@ -80,19 +80,15 @@
v-model="queryParams.technicianList"
multiple
filterable
remote
reserve-keyword
placeholder="请输入技术员"
:remote-method="remoteSearchTechnician"
:loading="loadingSearch"
clearable
placeholder="请选择技术员"
style="width: 200px"
>
<el-option
v-for="item in technicianOptions"
:key="item"
:label="item"
:value="item"
v-for="item in technicalOptions"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
@@ -102,19 +98,15 @@
v-model="queryParams.handlerList"
multiple
filterable
remote
reserve-keyword
placeholder="请输入处理人"
:remote-method="remoteSearchHandler"
:loading="loadingSearch"
clearable
placeholder="请选择处理人"
style="width: 200px"
>
<el-option
v-for="item in handlerOptions"
:key="item"
:label="item"
:value="item"
v-for="item in technicalOptions"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
@@ -312,9 +304,23 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<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-col>
</el-row>
@@ -322,7 +328,20 @@
<el-row>
<el-col :span="12">
<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-col>
<el-col :span="12">
@@ -360,9 +379,10 @@ import {
getSheepInfo,
getDiseaseTree,
searchEarNo,
searchTechnician,
searchHandler
// searchTechnician, // 移除旧的远程搜索接口
// searchHandler // 移除旧的远程搜索接口
} from "@/api/sheep_death/death"
import { getUserByPost } from '@/api/common/user' // 新增引入
// 响应式数据
const pasteInput = ref('') // 批量粘贴输入框
@@ -371,6 +391,9 @@ const earNumberLoading = ref(false) // 耳号加载状态
const isExpanded = ref(false) // 控制耳号展开/折叠状态
const defaultShowCount = 2 // 默认显示的耳号数量
// 新增:技术员选项
const technicalOptions = ref([])
// 计算属性:控制显示的耳号列表
const displayedEarNumbers = computed(() => {
if (!queryParams.value.allEarNumbers || queryParams.value.allEarNumbers.length === 0) {
@@ -403,8 +426,8 @@ const diseaseSubtypeOptions = ref([])
// 远程搜索相关变量
const loadingSearch = ref(false)
const earNoOptions = ref([])
const technicianOptions = ref([])
const handlerOptions = ref([])
// const technicianOptions = ref([]) // 移除旧变量
// const handlerOptions = ref([]) // 移除旧变量
const data = reactive({
form: {},
@@ -434,6 +457,25 @@ const data = reactive({
})
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) {
nextTick(() => {
@@ -589,31 +631,7 @@ function remoteSearchEarNo(query) {
}
}
/** 远程搜索技术员 */
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 = []
}
}
// 移除旧的 remoteSearchTechnician 和 remoteSearchHandler 函数
/** 获取疾病树形列表 */
function getDiseaseTreeData() {
@@ -777,6 +795,7 @@ function handleExport() {
// 初始化
getDiseaseTreeData()
getList()
fetchTechnicalList() // 初始化加载技术员列表
</script>
<style scoped>