Compare commits

...

4 Commits

Author SHA1 Message Date
48d75db032 Fix Bug #550: 检查项目与方法选择完全解耦 — 移除 handleItemSelect 中自动选方法的逻辑,用户需在右侧手动勾选方法
根因: 勾选项目时 pickDefaultMethod 自动设置 selectedMethod,
导致 isMethodSelected 判定为已选中,右侧检查方法 checkbox 被动勾选。

修复: 移除自动选择逻辑,项目勾选与检查方法选择完全独立。

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-19 10:07:21 +08:00
83ea8b7027 Fix Bug #550: 检查申请项目选择交互优化 — isMethodSelected 排除 methodAutoSelected 避免联动冲突,移除冗余套餐标签+加宽面板+橙色边框区分套餐
根因: handleItemSelect 中 pickDefaultMethod 自动设置 selectedMethod 后,
isMethodSelected 没有区分手动/自动选中,导致右侧检查方法 checkbox 被动勾选。

修复:
1. isMethodSelected 增加 !item.methodAutoSelected 条件,过滤自动选中的方法
2. handleItemSelect 设置/清除 methodAutoSelected 标记
3. 移除已选卡片冗余"套餐"标签,改用 is-package 类+左侧橙色边框区分
4. 已选面板 max-width 从 280px 加宽到 340px,减少名称截断

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-19 10:06:53 +08:00
724760edec Fix Bug #545: 清理 handleNodeClick 中重复的 longTermFlag 字段 — 第三次提交时重复添加了 longTermFlag: 0(第887行和第889行各有一处),移除重复项
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-19 10:06:52 +08:00
70b500c9f7 Fix Bug #545: 补全诊断添加处缺失的 longTermFlag 默认值 — 第三个 push 调用缺少 longTermFlag: 0,导致通过此路径添加的诊断该字段为 undefined
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-19 10:06:52 +08:00

View File

@@ -440,9 +440,8 @@
class="selected-item-card"
:class="{ 'is-expanded': item.expanded }"
>
<!-- Bug #384修复 + #426修复: 项目卡片头部,可展开/收起 -->
<div class="card-header" @click="toggleItemExpand(item)">
<el-tag v-if="item.isPackage || item.packageName" size="small" type="warning" style="margin-right: 4px; flex-shrink: 0;">套餐</el-tag>
<!-- Bug #384修复 + #426修复 + #550修复: 项目卡片头部,移除冗余"套餐"标签 -->
<div class="card-header" @click="toggleItemExpand(item)" :class="{ 'is-package': item.isPackage || item.packageName }">
<el-tooltip :content="item.name" placement="top" :show-after="400">
<span class="card-name">{{ item.name }}</span>
</el-tooltip>
@@ -1360,9 +1359,10 @@ function handleDelete(row) {
}
// Bug #428修复: 判断某个检查方法是否已被选中(任意项目关联了该方法)
// Bug #550修复: 排除 methodAutoSelected 的项目,避免自动选中的方法导致右侧 checkbox 被动勾选
function isMethodSelected(method, cat) {
return selectedItems.value.some(item =>
item.selectedMethod?.id === method.id && item.checkType === cat.typeName
item.selectedMethod?.id === method.id && item.checkType === cat.typeName && !item.methodAutoSelected
);
}
@@ -1521,11 +1521,8 @@ async function handleItemSelect(checked, item, cat) {
// 必须用数组里的响应式行,不能继续改局部 newRowpush 后列表内是 proxy改 raw 对象不会触发右侧卡片更新(会一直卡在「加载中」)
const row = selectedItems.value[selectedItems.value.length - 1];
// 右侧不再展示「检查方法」列表:自动选默认方法(保存、计价仍依赖 selectedMethod
if (methods.length >= 1) {
row.selectedMethod = pickDefaultMethod(methods, item);
}
updateMethodDisplay();
// Bug #550修复: 不再自动选择方法,项目与方法选择完全解耦
// 用户需在右侧"检查方法"区域手动勾选方法
// 有套餐 ID 时默认展开(先显示加载区,明细写入行对象 packageDetailsDisplay
row.expanded = !!getPackageCarrier(row)?.packageId;
@@ -1958,7 +1955,7 @@ defineExpose({ getList });
.selected-panel {
width: 220px;
min-width: 200px;
max-width: 280px;
max-width: 340px; /* Bug #550修复: 从280px加宽到340px让项目名更完整显示 */
flex-shrink: 0;
display: flex;
flex-direction: column;
@@ -2008,6 +2005,11 @@ defineExpose({ getList });
background: linear-gradient(180deg, #ecf5ff 0%, #e3eef8 100%);
}
/* Bug #550修复: 套餐项目左侧加橙色边框标识,与普通项目区分 */
.selected-item-card .card-header.is-package {
border-left: 3px solid #e6a23c;
}
.selected-item-card.is-expanded .card-header {
border-bottom-color: #ebeef5;
}