2024-11-25 15:02:01 +08:00
|
|
|
<script setup lang="ts">
|
2024-12-12 16:07:42 +08:00
|
|
|
import type { Flow } from '#/api/workflow/instance/model';
|
|
|
|
|
2024-11-25 15:02:01 +08:00
|
|
|
import { Timeline, TimelineItem } from 'ant-design-vue';
|
|
|
|
|
|
|
|
/**
|
|
|
|
* TODO: 仅为demo 后期会替换
|
|
|
|
*/
|
2024-12-12 16:07:42 +08:00
|
|
|
import { VbenAvatar } from '@vben/common-ui';
|
2024-11-25 15:02:01 +08:00
|
|
|
|
|
|
|
const props = defineProps<{
|
2024-12-12 16:07:42 +08:00
|
|
|
list: Flow[];
|
2024-11-25 15:02:01 +08:00
|
|
|
}>();
|
|
|
|
</script>
|
|
|
|
|
|
|
|
<template>
|
|
|
|
<Timeline>
|
|
|
|
<TimelineItem v-for="item in props.list" :key="item.id">
|
|
|
|
<template #dot>
|
|
|
|
<div class="relative rounded-full border">
|
2024-12-12 16:07:42 +08:00
|
|
|
<VbenAvatar :alt="item.approveName" class="size-[36px]" src="" />
|
2024-11-25 15:02:01 +08:00
|
|
|
<div
|
|
|
|
class="border-background absolute bottom-0 right-0 size-[16px] rounded-full border-2 bg-green-500 content-['']"
|
|
|
|
>
|
|
|
|
<div class="flex items-center justify-center">
|
|
|
|
<span class="icon-[mdi--success-bold] text-white"></span>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</template>
|
2024-12-12 16:07:42 +08:00
|
|
|
<div class="ml-2 flex flex-col gap-0.5">
|
|
|
|
<div class="font-bold">{{ item.nodeName }}</div>
|
|
|
|
<div>{{ item.approveName }}</div>
|
|
|
|
<div>{{ item.updateTime }}</div>
|
|
|
|
<div v-if="item.message" class="rounded-lg border p-1">
|
|
|
|
<span class="opacity-70">{{ item.message }}</span>
|
2024-11-25 15:02:01 +08:00
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</TimelineItem>
|
|
|
|
</Timeline>
|
|
|
|
</template>
|