|
|
|
|
@ -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('该活动曾审核通过,无法删除')
|
|
|
|
|
|