ruoyi-plus-vben5/apps/web-antd/src/views/workflow/components/approval-timeline.vue

42 lines
1.2 KiB
Vue
Raw Normal View History

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>