add package

This commit is contained in:
Timi
2026-09-01 01:14:54 +08:00
parent 100d4c4c44
commit 2d94abfb32
39 changed files with 4425 additions and 59 deletions
+14 -9
View File
@@ -15,6 +15,7 @@
:hover="canReadEvent && !!(record.event?.id || record.eventId)"
@click="toEventDetail"
/>
<t-cell title="业务类型" :note="getEventBizTypeText(record.event?.bizType)" />
<t-cell v-if="record.numberValue !== undefined && record.numberValue !== null" title="事件数值" :note="getNumberValueText(record)" />
<t-cell v-if="record.pointValue !== undefined && record.pointValue !== null" title="提交积分值" :note="getPointValueText(record.pointValue, pointLedgerChangeType)" />
<t-cell v-if="record.earnedPointValue !== undefined && record.earnedPointValue !== null" title="本次积分变化" :note="getPointValueText(record.earnedPointValue, pointLedgerChangeType)" />
@@ -111,6 +112,7 @@ import type { PhotoItem } from "@/types/Photo";
import type { PointLedgerChangeType } from "@/types/Point";
import { getAttachmentReadURL } from "@/utils/attachment";
import { buildEventOptionSelectionMap } from "@/utils/eventOption";
import { getEventBizTypeText, isPackagePurchaseEvent } from "@/utils/event";
import { getErrorMessage } from "@/utils/error";
import { formatEventNumberValue } from "@/utils/eventValue";
import { Message } from "@/utils/message";
@@ -133,9 +135,10 @@ const isVerifying = ref(false);
const isDeleting = ref(false);
const verifyDialogVisible = ref(false);
const canUpdateRecord = computed(() => userStore.hasPermissions(permissionCodes.eventRecord.update));
const canVerifyRecord = computed(() => userStore.hasPermissions(permissionCodes.eventRecord.verify));
const canDeleteRecord = computed(() => userStore.hasPermissions(permissionCodes.eventRecord.delete));
const isPackagePurchaseRecord = computed(() => isPackagePurchaseEvent(record.value?.event));
const canUpdateRecord = computed(() => !!record.value && !isPackagePurchaseRecord.value && userStore.hasPermissions(permissionCodes.eventRecord.update));
const canVerifyRecord = computed(() => !!record.value && !isPackagePurchaseRecord.value && userStore.hasPermissions(permissionCodes.eventRecord.verify));
const canDeleteRecord = computed(() => !!record.value && !isPackagePurchaseRecord.value && userStore.hasPermissions(permissionCodes.eventRecord.delete));
const canReadEvent = computed(() => userStore.hasPermissions(permissionCodes.event.read));
const recordPhotoItemList = computed(() => (record.value?.attachmentList || [])
.filter(item => !!item.id)
@@ -149,7 +152,7 @@ const recordPhotoList = computed(() => recordPhotoItemList.value.map(item => ite
async function submitPhotoItems(photoItems: PhotoItem[]): Promise<void> {
const currentRecord = record.value;
if (!currentRecord?.id) {
if (!currentRecord?.id || isPackagePurchaseRecord.value) {
throw new Error("登记记录不存在");
}
@@ -260,7 +263,7 @@ async function confirmVerifyRecord(): Promise<void> {
async function submitVerifyRecord(record: EventRecord, attachmentList: Attachment[]): Promise<void> {
const id = record.id;
if (!id) {
if (!id || isPackagePurchaseRecord.value) {
throw new Error("登记事件记录不存在");
}
@@ -313,7 +316,7 @@ function confirmRemoveRecord(): void {
}
async function removeRecord(id: string): Promise<void> {
if (isDeleting.value) {
if (isDeleting.value || isPackagePurchaseRecord.value) {
return;
}
@@ -338,7 +341,7 @@ async function removeRecord(id: string): Promise<void> {
async function toEdit(): Promise<void> {
const recordId = String(route.params.id || "");
if (!recordId) {
if (!recordId || !canUpdateRecord.value) {
return;
}
await router.push(`/management/registration-event-records/${recordId}/edit`);
@@ -380,12 +383,14 @@ watch(() => route.params.id, async () => {
await loadRecord();
}, { immediate: true });
onMounted(() => {
function updateNavBarAction(): void {
navBarStore.clearRight();
if (canUpdateRecord.value) {
navBarStore.setRightText("编辑", "var(--td-brand-color)", toEdit);
}
});
}
watch(canUpdateRecord, updateNavBarAction, { immediate: true });
onUnmounted(() => {
navBarStore.clearRight();