diff --git a/src/components/elder-detail.vue b/src/components/elder-detail.vue
index e45ef15..5982348 100644
--- a/src/components/elder-detail.vue
+++ b/src/components/elder-detail.vue
@@ -26,7 +26,7 @@
{{ elder.note ?? '-' }}
-
+
状态变更
@@ -83,11 +83,16 @@ const changing = ref(false)
const statusForm = reactive({ toStatus: '', changeReason: '' })
-/** 目标状态下拉:排除当前状态 + 不可逆终态(dead/terminated)。 */
+/** 终态(dead/terminated):后端 IRREVERSIBLE 源态守卫,禁止从终态再变更 → 隐藏整个状态变更区块。 */
+const isTerminal = computed(() => {
+ const s = elder.value?.treatStatus
+ return s === 'dead' || s === 'terminated'
+})
+
+/** 目标状态下拉:允许转入全部十态(含 dead/terminated 合法目标态),仅排除当前态。 */
const statusOptions = computed(() => {
- const exclude = new Set(['dead', 'terminated'])
- if (elder.value?.treatStatus) exclude.add(elder.value.treatStatus)
- return TREAT_STATUS_OPTIONS.filter((o) => !exclude.has(o.value))
+ const current = elder.value?.treatStatus
+ return TREAT_STATUS_OPTIONS.filter((o) => o.value !== current)
})
async function load(): Promise {