fix(#769): zhaoyun (文件合入)
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user