diff --git a/src/pages/event/EventDetail.vue b/src/pages/event/EventDetail.vue
index 718bc66..33d5fea 100644
--- a/src/pages/event/EventDetail.vue
+++ b/src/pages/event/EventDetail.vue
@@ -38,6 +38,14 @@
未配置
+
@@ -121,6 +129,7 @@ const defaultColor = "#2f88ff";
const canUpdate = computed(() => userStore.hasPermissions(permissionCodes.event.update));
const canDeleteEvent = computed(() => userStore.hasPermissions(permissionCodes.event.delete));
+const canReadEventRecord = computed(() => userStore.hasPermissions(permissionCodes.eventRecord.read));
const isGlobalManager = computed(() => userStore.hasRoles(gaoRoleCodes.globalManager));
const storeName = computed(() => {
const storeId = event.value?.storeId;
@@ -295,6 +304,31 @@ async function removeEvent(eventId: string): Promise {
// ---------- 导航 ----------
+async function toEventRecordList(): Promise {
+ const eventId = event.value?.id || String(route.params.id || "");
+ if (!eventId || !canReadEventRecord.value) {
+ return;
+ }
+ await router.push({
+ name: "EventRecordList",
+ query: {
+ eventIds: eventId,
+ transitionDepth: String(getCurrentRouteDepth() + 1)
+ }
+ });
+}
+
+function getCurrentRouteDepth(): number {
+ const transitionDepth = Array.isArray(route.query.transitionDepth)
+ ? route.query.transitionDepth[0]
+ : route.query.transitionDepth;
+ const depth = Number(transitionDepth);
+ if (transitionDepth && Number.isInteger(depth) && 0 <= depth && depth <= 20) {
+ return depth;
+ }
+ return Number(route.meta.depth ?? 0);
+}
+
async function toEdit(): Promise {
const eventId = String(route.params.id || "");
if (!canUpdate.value || !eventId) {
diff --git a/src/pages/event/EventList.vue b/src/pages/event/EventList.vue
index 774bba4..cbd4d8f 100644
--- a/src/pages/event/EventList.vue
+++ b/src/pages/event/EventList.vue
@@ -10,11 +10,14 @@
@scrolltolower="fetch"
>
+
-
+
+
+ 删除
+
+
+
+
@@ -60,6 +74,7 @@