修改编辑bug

This commit is contained in:
wuweihua
2026-11-05 13:15:51 +08:00
parent 308526ecee
commit 218001e6ae
@@ -385,18 +385,35 @@ const emptyTip = computed(() => {
})
/** Resolve version id: prop first, else reload package current version. */
/** Resolve version id: editing prop/local first; never replace with package EFFECT version. */
const resolvedPsvId = ref(props.psvId)
watch(() => props.psvId, v => { if (v != null && v !== '') resolvedPsvId.value = v })
function knownPsvId() {
if (props.psvId != null && props.psvId !== '') return props.psvId
if (resolvedPsvId.value != null && resolvedPsvId.value !== '') return resolvedPsvId.value
return null
}
async function resolvePsvId(force) {
if (!force && resolvedPsvId.value != null && resolvedPsvId.value !== '') {
return resolvedPsvId.value
const known = knownPsvId()
// Keep the version being edited. force must NOT switch to data.version (EFFECT).
if (known != null && !force) {
resolvedPsvId.value = known
return known
}
if (!props.priceSetId) return null
if (!props.priceSetId) return known
const res = await api.getPriceSet(props.priceSetId)
const data = res.data || {}
const versions = data.versions || []
if (known != null) {
const still = versions.find(v => v && String(v.psvId) === String(known))
if (still && still.psvId != null) {
resolvedPsvId.value = still.psvId
return still.psvId
}
}
// Only when no editing psvId (e.g. brand-new draft): fall back to package current.
const fromData = (data.version && data.version.psvId) ? data.version : null
const current = fromData || versions[0] || {}
if (current.psvId != null) {
@@ -594,7 +611,8 @@ async function canOpenImport() {
return false
}
if (props.livePersist) {
const psvId = await resolvePsvId(true)
// Use the version being edited (props.psvId). Do not force-refresh to EFFECT.
const psvId = await resolvePsvId(false)
if (!psvId) {
proxy.$modal.msgWarning('缺少套餐版本,请先保存基本信息')
return false