fix: pagetype详情页只读模式无效的问题

This commit is contained in:
jingrow 2026-05-21 23:00:45 +08:00
parent 3c4ae07656
commit 7f3fd4fc04
2 changed files with 17 additions and 11 deletions

View File

@ -410,14 +410,12 @@ const activeTab = ref('default')
const loading = ref(false)
const initialLoading = ref(true)
// canDelete _can_delete if_owner
watch(() => record._can_delete, (val) => {
if (isNew.value) {
canDelete.value = false
} else {
canDelete.value = val === 1 || val === undefined
}
}, { immediate: true })
// canEdit/canDelete _can_write/_can_delete if_owner
watch(() => [record._can_write, record._can_delete] as const, ([writeVal, deleteVal]) => {
if (isNew.value) return // canEdit permissionStore.canWrite
canEdit.value = writeVal === 1
canDelete.value = deleteVal === 1
})
const isSubmittable = computed(() => !!pageMeta.value?.is_submittable)
const pageStatus = computed(() => record.pagestatus ?? record.pagestatus ?? -1) //
@ -971,10 +969,13 @@ async function loadMeta() {
if (pageMeta.value.is_virtual) {
canEdit.value = false
canDelete.value = false
} else {
} else if (isNew.value) {
canEdit.value = permissionStore.canWrite(pagetypeName)
// canDelete record._can_delete watcher if_owner
// loadDetail _can_delete
canDelete.value = false
} else {
// canEdit/canDelete record._can_write/_can_delete watcher loadDetail
// false
canEdit.value = false
canDelete.value = false
}

View File

@ -524,6 +524,11 @@ class BasePage:
if value := getattr(self, key, None):
pg[key] = value
# 行级权限标记(由 API 层设置,如 v2.py read_pg
for key in ("_can_read", "_can_write", "_can_delete"):
if hasattr(self, key):
pg[key] = getattr(self, key)
return pg
def as_json(self):