修改编辑bug
This commit is contained in:
@@ -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)
|
const resolvedPsvId = ref(props.psvId)
|
||||||
watch(() => props.psvId, v => { if (v != null && v !== '') resolvedPsvId.value = v })
|
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) {
|
async function resolvePsvId(force) {
|
||||||
if (!force && resolvedPsvId.value != null && resolvedPsvId.value !== '') {
|
const known = knownPsvId()
|
||||||
return resolvedPsvId.value
|
// 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 res = await api.getPriceSet(props.priceSetId)
|
||||||
const data = res.data || {}
|
const data = res.data || {}
|
||||||
const versions = data.versions || []
|
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 fromData = (data.version && data.version.psvId) ? data.version : null
|
||||||
const current = fromData || versions[0] || {}
|
const current = fromData || versions[0] || {}
|
||||||
if (current.psvId != null) {
|
if (current.psvId != null) {
|
||||||
@@ -594,7 +611,8 @@ async function canOpenImport() {
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
if (props.livePersist) {
|
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) {
|
if (!psvId) {
|
||||||
proxy.$modal.msgWarning('缺少套餐版本,请先保存基本信息')
|
proxy.$modal.msgWarning('缺少套餐版本,请先保存基本信息')
|
||||||
return false
|
return false
|
||||||
|
|||||||
Reference in New Issue
Block a user