超管编辑

master
lion 3 weeks ago
parent 2ccccf6689
commit 5b9d05a0d2

@ -452,11 +452,12 @@ const bookingForm = reactive({
days: [] as BookingDayRow[],
})
/** 单场活动仍可编辑表单,但场次与预约配置随活动一并保存;已结束时不再提交场次以避免误操作 */
/** 编辑活动弹窗内加载场次预约设置 */
const activityModalBookingLoading = ref(false)
/** 已结束时默认冻结场次提交(防误操作);超级管理员仍可编辑并随活动一并保存场次 */
const canSaveSessionsWithActivity = computed(
() => formScheduleStatus.value !== 'ended',
() => formScheduleStatus.value !== 'ended' || currentUser.value?.full_admin_access === true,
)
const reservationKindLabelBookingField = computed(() => {
@ -925,12 +926,12 @@ function isActivityCreator(row: Activity): boolean {
return sid != null && Number(sid) === Number(currentUser.value?.id)
}
/** 删除:仅限从未出现过「审核通过」记录的待审核或已退回活动;已通过至少一次后不能再删 */
/** 删除:超管可操作(无报名记录时接口可删);非超管仍为待审/退回且无「曾审核通过」记录时由创建人删除 */
function canEditActivityRow(row: Activity): boolean {
if (isSuperAdmin()) return true
if ((row.approve_audit_logs_count ?? 0) > 0) return false
const st = row.audit_status
if (st !== 'pending' && st !== 'rejected') return false
if (isSuperAdmin()) return true
return isActivityCreator(row)
}
@ -939,15 +940,11 @@ function isPlatformSubmittedActivity(row: Activity): boolean {
return row.submitted_by == null
}
/** 列表「编辑」:创建人或超管代录;待审核时仅创建人/超管(平台代录)可继续改;已结束不可编辑 */
/** 列表「编辑」:超管可编辑全部(含已结束);非超管仅创建人且未结束时可改 */
function canShowActivityEditButton(row: Activity): boolean {
if (isSuperAdmin()) return true
if (row.schedule_status === 'ended') return false
if (row.audit_status === 'pending') {
return isActivityCreator(row) || (isSuperAdmin() && isPlatformSubmittedActivity(row))
}
if (isActivityCreator(row)) return true
if (isSuperAdmin() && isPlatformSubmittedActivity(row)) return true
return false
return isActivityCreator(row)
}
/** 列表操作列:已退回时创建人显示「编辑并提交」 */
@ -957,8 +954,8 @@ function activityListEditButtonLabel(row: Activity): string {
}
function assertCanOpenActivityEditor(row: Activity): boolean {
if (isSuperAdmin()) return true
if (isActivityCreator(row)) return true
if (isSuperAdmin() && isPlatformSubmittedActivity(row)) return true
Message.warning(
isPlatformSubmittedActivity(row)
? '该平台代录的活动仅超级管理员可编辑'
@ -1002,6 +999,7 @@ function canOpenActivityVerify(row: Activity): boolean {
}
function assertCanEditActivityRow(row: Activity, _action: string): boolean {
if (isSuperAdmin()) return true
if (canEditActivityRow(row)) return true
if ((row.approve_audit_logs_count ?? 0) > 0) {
Message.warning('该活动曾审核通过,无法删除')

Loading…
Cancel
Save