Fix Bug #550
This commit is contained in:
@@ -741,8 +741,8 @@
|
||||
class="fold-strip fold-strip-project"
|
||||
:class="{ 'is-open': item.projectFoldExpanded }"
|
||||
>
|
||||
<div class="fold-strip-header" @click="toggleProjectFold(item)">
|
||||
<el-icon :class="['fold-chevron', { open: item.projectFoldExpanded }]">
|
||||
<div class="fold-strip-header" :class="{ 'no-chevron': !hasItemPackage(item) }" @click="hasItemPackage(item) && toggleProjectFold(item)">
|
||||
<el-icon v-if="hasItemPackage(item)" :class="['fold-chevron', { open: item.projectFoldExpanded }]">
|
||||
<ArrowDown />
|
||||
</el-icon>
|
||||
<div class="fold-header-main">
|
||||
@@ -756,38 +756,13 @@
|
||||
<el-icon><Close /></el-icon>
|
||||
</el-button>
|
||||
</div>
|
||||
</template>
|
||||
<template v-else>
|
||||
<div
|
||||
v-for="(item, idx) in selectedItems"
|
||||
:key="'project-' + item.id"
|
||||
class="selected-item-card"
|
||||
:class="{ 'is-expanded': item.projectFoldExpanded }"
|
||||
>
|
||||
<div
|
||||
class="fold-strip fold-strip-project"
|
||||
:class="{ 'is-open': item.projectFoldExpanded }"
|
||||
>
|
||||
<div
|
||||
class="fold-strip-header"
|
||||
:class="{ 'no-chevron': !hasItemPackage(item) }"
|
||||
@click="hasItemPackage(item) && toggleProjectFold(item)"
|
||||
>
|
||||
<el-icon
|
||||
v-if="hasItemPackage(item)"
|
||||
:class="['fold-chevron', { open: item.projectFoldExpanded }]"
|
||||
>
|
||||
<ArrowDown />
|
||||
</el-icon>
|
||||
<div class="fold-header-main">
|
||||
<span class="fold-kicker">检查项目</span>
|
||||
<el-tooltip
|
||||
:content="getDisplayItemName(item)"
|
||||
placement="top"
|
||||
:show-after="400"
|
||||
>
|
||||
<span class="fold-title line-clamp-2">{{ getDisplayItemName(item) }}</span>
|
||||
</el-tooltip>
|
||||
<!-- 仅当项目有套餐时展示明细区域,普通项目无明细可展示 -->
|
||||
<div v-if="hasItemPackage(item) && item.projectFoldExpanded" class="fold-strip-body">
|
||||
<div class="fold-package-wrap">
|
||||
<div v-if="item.packageDetailsLoading" class="package-details-loading">加载中...</div>
|
||||
<template v-else>
|
||||
<div v-if="getPackageDetailsList(item).length === 0" class="package-details-empty">
|
||||
暂无套餐明细
|
||||
</div>
|
||||
<span class="fold-price-strong">¥{{ formatDetailAmount(item.price || 0) }}</span>
|
||||
<el-button
|
||||
@@ -844,67 +819,50 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div v-else class="fold-strip-muted">暂无明细数据</div>
|
||||
</div>
|
||||
|
||||
<div
|
||||
v-for="(method, idx) in selectedMethods"
|
||||
:key="'method-' + method.id"
|
||||
class="selected-item-card"
|
||||
:class="{ 'is-expanded': method.expanded }"
|
||||
>
|
||||
<div
|
||||
class="fold-strip fold-strip-method"
|
||||
:class="{ 'is-open': method.expanded }"
|
||||
<div
|
||||
v-for="(method, idx) in selectedMethods"
|
||||
:key="'method-' + method.id"
|
||||
class="selected-item-card"
|
||||
:class="{ 'is-expanded': method.expanded }"
|
||||
>
|
||||
<div
|
||||
class="fold-strip fold-strip-method"
|
||||
:class="{ 'is-open': method.expanded }"
|
||||
>
|
||||
<div class="fold-strip-header" :class="{ 'no-chevron': !hasStandaloneMethodPackage(method) }" @click="hasStandaloneMethodPackage(method) && toggleSelectedMethodFold(method)">
|
||||
<el-icon v-if="hasStandaloneMethodPackage(method)" :class="['fold-chevron', { open: method.expanded }]">
|
||||
<ArrowDown />
|
||||
</el-icon>
|
||||
<div class="fold-header-main">
|
||||
<span class="fold-kicker">检查方法</span>
|
||||
<span
|
||||
class="fold-title fold-title-plain line-clamp-2"
|
||||
:title="getDisplayMethodName(method)"
|
||||
>
|
||||
{{ getDisplayMethodName(method) }}
|
||||
</span>
|
||||
</div>
|
||||
<span
|
||||
v-if="hasStandaloneMethodPackage(method)"
|
||||
class="fold-price-strong warn"
|
||||
>
|
||||
<div
|
||||
class="fold-strip-header"
|
||||
:class="{ 'no-chevron': !hasStandaloneMethodPackage(method) }"
|
||||
@click="hasStandaloneMethodPackage(method) && toggleSelectedMethodFold(method)"
|
||||
>
|
||||
<el-icon
|
||||
v-if="hasStandaloneMethodPackage(method)"
|
||||
:class="['fold-chevron', { open: method.expanded }]"
|
||||
>
|
||||
<ArrowDown />
|
||||
</el-icon>
|
||||
<div class="fold-header-main">
|
||||
<span class="fold-kicker">检查方法</span>
|
||||
<span
|
||||
class="fold-title fold-title-plain line-clamp-2"
|
||||
:title="getDisplayMethodName(method)"
|
||||
>
|
||||
{{ getDisplayMethodName(method) }}
|
||||
</span>
|
||||
¥{{ formatDetailAmount(method.packagePrice || method.price || 0) }}
|
||||
</span>
|
||||
<el-button link type="danger" size="small" @click.stop="handleRemoveMethod(idx)">
|
||||
<el-icon><Close /></el-icon>
|
||||
</el-button>
|
||||
</div>
|
||||
<!-- 仅当检查方法有套餐时展示明细 -->
|
||||
<div v-if="hasStandaloneMethodPackage(method) && method.expanded" class="fold-strip-body">
|
||||
<div class="fold-package-wrap fold-method-package-wrap">
|
||||
<div v-if="method.packageLoading" class="package-details-loading">加载中...</div>
|
||||
<template v-else>
|
||||
<div v-if="getStandaloneMethodPackageDetailsList(method).length === 0" class="package-details-empty">
|
||||
暂无检查方法套餐明细
|
||||
</div>
|
||||
<span
|
||||
v-if="hasStandaloneMethodPackage(method)"
|
||||
class="fold-price-strong warn"
|
||||
>
|
||||
¥{{ formatDetailAmount(method.packagePrice || method.price || 0) }}
|
||||
</span>
|
||||
<el-button
|
||||
link
|
||||
type="danger"
|
||||
size="small"
|
||||
@click.stop="handleRemoveMethod(idx)"
|
||||
>
|
||||
<el-icon><Close /></el-icon>
|
||||
</el-button>
|
||||
</div>
|
||||
<!-- 仅当检查方法有套餐时展示明细 -->
|
||||
<div
|
||||
v-if="hasStandaloneMethodPackage(method) && method.expanded"
|
||||
class="fold-strip-body"
|
||||
>
|
||||
<div class="fold-package-wrap fold-method-package-wrap">
|
||||
<div
|
||||
v-if="method.packageLoading"
|
||||
class="package-details-loading"
|
||||
>
|
||||
加载中...
|
||||
</div>
|
||||
<template v-else>
|
||||
<div v-else class="package-details-list method-package-list">
|
||||
<div
|
||||
v-if="getStandaloneMethodPackageDetailsList(method).length === 0"
|
||||
class="package-details-empty"
|
||||
@@ -933,9 +891,8 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
@@ -1009,7 +966,7 @@ const activeDetailTab = ref('applyForm');
|
||||
const applicationList = ref([]);
|
||||
const selectedItems = ref([]);
|
||||
const selectedMethods = ref([]);
|
||||
const methodPickerExpanded = ref(false);
|
||||
const methodPickerExpanded = ref(true);
|
||||
|
||||
// Bug #499: 查询过滤状态
|
||||
const searchForm = reactive({
|
||||
@@ -1530,6 +1487,8 @@ async function handleCategoryExpand(cat) {
|
||||
function handleCollapseChange(activeName) {
|
||||
// 始终记录当前激活的分类,确保 handleCategoryExpand 能正确忽略过期请求
|
||||
currentActiveCategory.value = activeName || null;
|
||||
// 切换分类时自动展开方法选择器,使关联的检查方法对医生可见
|
||||
methodPickerExpanded.value = true;
|
||||
|
||||
|
||||
if (activeName) {
|
||||
|
||||
Reference in New Issue
Block a user