Merge remote-tracking branch 'origin/main'

This commit is contained in:
zyk
2026-03-07 18:45:24 +08:00
16 changed files with 144 additions and 55 deletions

View File

@@ -42,3 +42,11 @@ export function delDeworm(id) {
method: 'delete'
})
}
// 查询耳号
export function searchEarNumbers(query) {
return request({
url: '/biosafety/deworm/searchEarNumbers',
method: 'get',
params: { sheepNo: query }
})
}

View File

@@ -42,3 +42,12 @@ export function delDiagnosis(id) {
method: 'delete'
})
}
// 查询耳号
export function searchEarNumbers(query) {
return request({
url: '/diagnosis/diagnosis/searchEarNumbers',
method: 'get',
params: { sheepNo: query }
})
}

View File

@@ -42,3 +42,11 @@ export function delDisinfect(id) {
method: 'delete'
})
}
export function searchSheepfold(query) {
return request({
url: '/biosafety/disinfect/searchSheepfold',
method: 'get',
params: {sheepfold: query}
})
}

View File

@@ -42,3 +42,12 @@ export function delHealth(id) {
method: 'delete'
})
}
// 查询耳号
export function searchEarNumbers(query) {
return request({
url: '/biosafety/health/searchEarNumbers',
method: 'get',
params: { sheepNo: query }
})
}

View File

@@ -42,3 +42,12 @@ export function delImmunity(id) {
method: 'delete'
})
}
// 查询耳号
export function searchEarNumbers(query) {
return request({
url: '/biosafety/immunity/searchEarNumbers',
method: 'get',
params: { sheepNo: query }
})
}

View File

@@ -42,3 +42,12 @@ export function delQuarantine(id) {
method: 'delete'
})
}
// 查询耳号
export function searchEarNumbers(query) {
return request({
url: '/biosafety/quarantine/searchEarNumbers',
method: 'get',
params: { sheepNo: query }
})
}

View File

@@ -42,3 +42,12 @@ export function delTreatment(id) {
method: 'delete'
})
}
// 查询耳号
export function searchEarNumbers(query) {
return request({
url: '/treatment/treatment/searchEarNumbers',
method: 'get',
params: { sheepNo: query }
})
}

View File

@@ -42,3 +42,12 @@ export function delUsageInfo(id) {
method: 'delete'
})
}
// 查询耳号
export function searchEarNumbers(query) {
return request({
url: '/biosafety/usageInfo/searchEarNumbers',
method: 'get',
params: { sheepNo: query }
})
}

View File

@@ -366,12 +366,11 @@
<script setup name="Deworm">
import { ref, reactive, onMounted, getCurrentInstance } from 'vue'
import { listDeworm, getDeworm, delDeworm, addDeworm, updateDeworm } from '@/api/biosafety/deworm'
import { listDeworm, getDeworm, delDeworm, addDeworm, updateDeworm, searchEarNumbers} from '@/api/biosafety/deworm'
import { listPrescription, getPrescription } from '@/api/biosafety/prescription'
import { listUnit } from '@/api/biosafety/unit'
import { listUsage } from '@/api/biosafety/usage'
import { listMedicine } from '@/api/biosafety/medicine'
import { searchEarNumbers } from '@/api/common/sheep'
import request from '@/utils/request'
import { parseTime } from '@/utils/ruoyi'
import { getUserByPost } from '@/api/common/user'
@@ -476,29 +475,44 @@
pasteInput.value = ''
}
/** 远程搜索耳号 */
function searchEarNumber(query) {
if (query !== '') {
earNumberLoading.value = true
const queries = query.trim().split(/[\s,]+/).filter(q => q)
if (queries.length === 1) {
// 单个耳号模糊搜索
searchEarNumbers(query).then(response => {
earNumberOptions.value = response.data || []
earNumberLoading.value = false
}).catch(() => {
earNumberOptions.value = []
earNumberLoading.value = false
})
} else {
// 多个耳号直接作为选项
earNumberOptions.value = queries
earNumberLoading.value = false
}
} else {
if (!query || query.trim() === '') {
earNumberOptions.value = []
return
}
earNumberLoading.value = true
// 统一转大写,去重
const queries = [...new Set(
query.trim().toUpperCase().split(/[\s,]+/).filter(q => q.length >= 1)
)]
if (queries.length === 0) {
earNumberOptions.value = []
earNumberLoading.value = false
return
}
if (queries.length === 1) {
// 单个耳号模糊搜索
searchEarNumbers(queries[0]).then(response => {
earNumberOptions.value = response.data || []
}).catch(() => {
earNumberOptions.value = []
}).finally(() => {
earNumberLoading.value = false
})
} else {
// 多个耳号:先显示,再后台校验
earNumberOptions.value = queries.map(q => ({ label: q, value: q, validating: true }))
earNumberLoading.value = false
// 可选:调用后端批量校验
validateEarNumbers(queries).then(validList => {
earNumberOptions.value = validList
})
}
}

View File

@@ -269,16 +269,10 @@
</el-dialog>
</div>
</template><script setup name="Diagnosis">
import {
listDiagnosis,
getDiagnosis,
delDiagnosis,
updateDiagnosis,
} from '@/api/biosafety/diagnosis'
import {listDiagnosis,getDiagnosis,delDiagnosis,updateDiagnosis,searchEarNumbers} from '@/api/biosafety/diagnosis'
import { listSheepfold_management } from '@/api/fileManagement/sheepfold_management'
import { listDisease } from '@/api/biosafety/disease'
import { getCurrentInstance, onMounted, ref, watch } from 'vue'
import { searchEarNumbers } from '@/api/common/sheep'
import { getUserByPost } from '@/api/common/user'
const technicalOptions = ref([]) //自定义技术员数组变量

View File

@@ -11,11 +11,17 @@
<el-form-item label="药品名称" prop="mediName">
<el-input v-model="queryParams.mediName" placeholder="请输入药品" clearable />
</el-form-item>
<el-form-item label="羊舍" prop="sheepfoldId">
<el-select v-model="queryParams.sheepfoldId" clearable placeholder="请选择羊舍" filterable style="width: 200px">
<el-option v-for="b in barns" :key="b.id" :label="b.sheepfoldName" :value="b.id" />
</el-select>
</el-form-item>
<el-form-item label="羊舍" prop="sheepfoldIds">
<el-select v-model="queryParams.sheepfoldIds" multiple collapse-tags collapse-tags-tooltip clearable
placeholder="全部羊舍" filterable style="width: 240px" @change="handleSheepfoldChange">
<el-option v-for="b in barns" :key="b.sheepfoldId"
:label="b.sheepfold_name"
:value="b.sheepfoldId"
/>
</el-select>
</el-form-item>
<el-form-item label="技术员" prop="technician">
<el-select v-model="queryParams.technician" filterable clearable placeholder="请输入技术员姓名" style="width: 100%"
@@ -296,7 +302,7 @@
<script setup name="Disinfect">
import { ref, reactive, onMounted, getCurrentInstance } from 'vue'
import { listDisinfect, getDisinfect, delDisinfect, addDisinfect, updateDisinfect } from '@/api/biosafety/disinfect'
import { listDisinfect, getDisinfect, delDisinfect, addDisinfect, updateDisinfect,searchSheepfold} from '@/api/biosafety/disinfect'
import { listPrescription, getPrescription } from '@/api/biosafety/prescription'
import { listUnit } from '@/api/biosafety/unit'
import { listUsage } from '@/api/biosafety/usage'
@@ -345,6 +351,7 @@ const queryParams = reactive({
pageNum: 1,
pageSize: 20,
sheepfoldId: null,
sheepfoldIds: [], // 新增一个数组属性用于多选羊舍
technician: null
})
@@ -567,13 +574,28 @@ function handleAddDetailEdit() {
editDetails.value.push({ mediId: null, dosage: 0, unit: null, usageId: null, manufacturer: null, batchNumber: null })
}
// 获取羊舍列表
const fetchBarns = async () => {
try {
const res = await searchSheepfold()
barns.value = res.data || []
} catch (error) {
console.error('获取羊舍失败:', error)
}
}
// 羊舍选择变化时自动刷新数据
const handleSheepfoldChange = (val) => {
getList(queryParams)
}
/* ---------- 初始加载 ---------- */
onMounted(() => {
getList()
/* 本地羊舍下拉 */
request({ url: '/sheepfold_management/sheepfold_management/list', method: 'get' }).then(res => {
barns.value = res.rows
})
fetchBarns()
listPrescription({ status: 1, persType: 3 }).then(res => {
presOptions.value = res.rows.map(item => ({ id: item.id, label: item.name }))
})

View File

@@ -374,14 +374,13 @@
<script setup name="Health">
import { ref, reactive, onMounted, getCurrentInstance } from 'vue'
import { listHealth, getHealth, delHealth, addHealth, updateHealth } from '@/api/biosafety/health'
import { listHealth, getHealth, delHealth, addHealth, updateHealth,searchEarNumbers } from '@/api/biosafety/health'
import { listPrescription, getPrescription } from '@/api/biosafety/prescription'
import { listUnit } from '@/api/biosafety/unit'
import { listUsage } from '@/api/biosafety/usage'
import { listMedicine } from '@/api/biosafety/medicine'
import request from '@/utils/request'
import { parseTime } from '@/utils/ruoyi'
import { searchEarNumbers } from '@/api/common/sheep'
import { getUserByPost } from '@/api/common/user'
const technicalOptions = ref([]) //自定义技术员数组变量

View File

@@ -371,14 +371,13 @@
<script setup name="Immunity">
import { ref, reactive, onMounted, getCurrentInstance } from 'vue'
import { listImmunity, getImmunity, delImmunity, addImmunity, updateImmunity } from '@/api/biosafety/immunity'
import { listImmunity, getImmunity, delImmunity, addImmunity, updateImmunity,searchEarNumbers } from '@/api/biosafety/immunity'
import { listPrescription, getPrescription } from '@/api/biosafety/prescription'
import { listUnit } from '@/api/biosafety/unit'
import { listUsage } from '@/api/biosafety/usage'
import { listMedicine } from '@/api/biosafety/medicine'
import request from '@/utils/request'
import { parseTime } from '@/utils/ruoyi'
import { searchEarNumbers } from '@/api/common/sheep'
import { getUserByPost } from '@/api/common/user'
const technicalOptions = ref([]) //自定义技术员数组变量

View File

@@ -399,19 +399,12 @@
</template>
<script setup name="Quarantine">
import {
listQuarantine,
getQuarantine,
delQuarantine,
addQuarantine,
updateQuarantine
} from '@/api/biosafety/quarantine'
import {listQuarantine,getQuarantine,delQuarantine,addQuarantine,updateQuarantine,searchEarNumbers} from '@/api/biosafety/quarantine'
import { listItems } from '@/api/biosafety/items'
import { listSample } from '@/api/biosafety/sample'
import request from '@/utils/request'
import { parseTime } from '@/utils/ruoyi'
import { useRouter } from 'vue-router'
import { searchEarNumbers } from '@/api/common/sheep'
import { getUserByPost } from '@/api/common/user'
const { proxy } = getCurrentInstance()

View File

@@ -528,7 +528,7 @@
<script setup>
import { ref, reactive, onMounted, getCurrentInstance } from 'vue'
import { listTreatment, getTreatment, delTreatment, addTreatment, updateTreatment } from '@/api/biosafety/treatment'
import { listTreatment, getTreatment, delTreatment, addTreatment, updateTreatment,searchEarNumbers } from '@/api/biosafety/treatment'
import { listDisease } from '@/api/biosafety/disease'
import { listSheepfold_management } from "@/api/fileManagement/sheepfold_management"
import { listPrescription, getPrescription } from '@/api/biosafety/prescription'
@@ -537,7 +537,6 @@ import { listUsage } from '@/api/biosafety/usage'
import { listMedicine } from '@/api/biosafety/medicine'
import request from '@/utils/request'
import { useRouter } from 'vue-router'
import { searchEarNumbers } from '@/api/common/sheep'
import { getUserByPost } from '@/api/common/user'
const technicalOptions = ref([]) //自定义技术员数组变量

View File

@@ -202,11 +202,10 @@
<script setup name="Usage">
import { listMedicine} from "@/api/biosafety/medicine"
import { listUsageInfo, getUsageInfo } from '@/api/biosafety/usageInfo'
import { listUsageInfo, getUsageInfo,searchEarNumbers } from '@/api/biosafety/usageInfo'
import { listUnit } from '@/api/biosafety/unit'
import { listUsage } from '@/api/biosafety/usage'
import { getCurrentInstance, reactive, ref, toRefs } from 'vue'
import { searchEarNumbers } from '@/api/common/sheep'
const { proxy } = getCurrentInstance()
const { pres_type } = proxy.useDict('pres_type')