fix(c1): 状态变更目标态允许转入 dead/terminated 终态
- statusOptions 仅排除当前态,不再排除 dead/terminated(二者是合法目标态) - 当前态为 dead/terminated 时隐藏整个状态变更区块(源态守卫,不可再变更) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
49043881ba
commit
ebbd46899c
@ -26,7 +26,7 @@
|
||||
<el-descriptions-item label="备注" :span="2">{{ elder.note ?? '-' }}</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
|
||||
<div v-permission="'elder:status-change'">
|
||||
<div v-if="!isTerminal" v-permission="'elder:status-change'">
|
||||
<el-divider content-position="left">状态变更</el-divider>
|
||||
<el-form inline>
|
||||
<el-form-item label="目标状态">
|
||||
@ -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<void> {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user