fix(#769): zhaoyun (文件合入)

This commit is contained in:
2026-06-20 03:34:28 +08:00
committed by 华佗
parent aec3bf3e34
commit 70c46fc990

View File

@@ -340,7 +340,7 @@
:filter-method="filterSurgery"
style="width: 100%"
@change="handleSurgeryChange"
@visible-change="(visible) => { if (visible) filterSurgery('') }"
@visible-change="(visible) => { isSelectingSurgery.value = false; if (visible) filterSurgery('') }"
>
<el-option
v-for="item in surgeryNameList"
@@ -420,7 +420,7 @@
:filter-method="filterSurgery"
style="width: 100%"
@change="(val) => handleSecondarySurgeryChange(val, scope.row)"
@visible-change="(visible) => { if (visible) filterSurgery('') }"
@visible-change="(visible) => { isSelectingSurgery.value = false; if (visible) filterSurgery('') }"
>
<el-option
v-for="item in surgeryNameList"
@@ -502,6 +502,7 @@
:filter-method="filterAnesthesia"
style="width: 100%"
@change="(val) => handleSecondaryAnesthesiaChange(val, scope.row)"
@visible-change="(visible) => { isSelectingAnesthesia.value = false; if (visible) filterAnesthesia('') }"
>
<el-option
v-for="item in anesthesiaNameList"
@@ -962,6 +963,8 @@ const surgeryLoading = ref(false)
const anesthesiaLoading = ref(false)
let surgerySearchTimer = null
let anesthesiaSearchTimer = null
const isSelectingSurgery = ref(false)
const isSelectingAnesthesia = ref(false)
const surgeryList = ref([])
const open = ref(false)
const viewOpen = ref(false)
@@ -1418,6 +1421,8 @@ function doSearchAnesthesia(query) {
// 本地过滤手术项目
function filterSurgery(query) {
// 🔧 BugFix#769: 选择手术时不重置列表,防止下拉框闪烁
if (isSelectingSurgery.value) return
if (!query) {
surgeryNameList.value = allSurgeryItems.value
} else {
@@ -1430,6 +1435,8 @@ function filterSurgery(query) {
// 本地过滤麻醉项目
function filterAnesthesia(query) {
// 🔧 BugFix#769: 选择麻醉时不重置列表,防止下拉框闪烁
if (isSelectingAnesthesia.value) return
if (!query) {
anesthesiaNameList.value = allAnesthesiaItems.value
} else {
@@ -1495,6 +1502,8 @@ function loadSurgeryAndAnesthesiaOptions() {
// 手术项目选择变更
function handleSurgeryChange(val) {
// 🔧 BugFix#769: 标记正在选择,防止 visible-change 重置列表导致闪烁
isSelectingSurgery.value = true
// 🔧 BugFix#318: 确保 surgeryName 被正确设置
form.value.surgeryName = val
const selected = surgeryNameList.value.find(item => item.name === val)
@@ -1514,6 +1523,8 @@ function handleSurgeryChange(val) {
// 麻醉项目选择变更
function handleAnesthesiaChange(val) {
// 🔧 BugFix#769: 标记正在选择,防止 visible-change 重置列表导致闪烁
isSelectingAnesthesia.value = true
const selected = anesthesiaNameList.value.find(item => item.name === val)
if (selected) {
// 设置麻醉费用 (增加对多种字段名和类型的兼容)
@@ -1527,6 +1538,8 @@ function handleAnesthesiaChange(val) {
// 次要手术麻醉项目选择变更
function handleSecondaryAnesthesiaChange(val, row) {
// 🔧 BugFix#769: 标记正在选择,防止 visible-change 重置列表导致闪烁
isSelectingAnesthesia.value = true
const selected = anesthesiaNameList.value.find(item => item.name === val)
if (selected) {
// 设置该次要手术的麻醉费用
@@ -1551,6 +1564,8 @@ function mapAnesthesiaNameToEnum(name) {
// 次要手术项目选择变更
function handleSecondarySurgeryChange(val, row) {
// 🔧 BugFix#769: 标记正在选择,防止 visible-change 重置列表导致闪烁
isSelectingSurgery.value = true
const selected = surgeryNameList.value.find(item => item.name === val)
if (selected) {
row.surgeryCode = selected.busNo