93 lines
3.2 KiB
Vue
93 lines
3.2 KiB
Vue
<template>
|
|
<DocSectionText v-bind="$attrs">
|
|
<p>Additional content at the other side of the line can be provided with the <i>opposite</i> property.</p>
|
|
</DocSectionText>
|
|
<div class="card">
|
|
<Timeline :value="events">
|
|
<template #opposite="slotProps">
|
|
<small class="p-text-secondary">{{ slotProps.item.date }}</small>
|
|
</template>
|
|
<template #content="slotProps">
|
|
{{ slotProps.item.status }}
|
|
</template>
|
|
</Timeline>
|
|
</div>
|
|
<DocSectionCode :code="code" />
|
|
</template>
|
|
|
|
<script>
|
|
export default {
|
|
data() {
|
|
return {
|
|
events: [
|
|
{ status: 'Ordered', date: '15/10/2020 10:30', icon: 'pi pi-shopping-cart', color: '#9C27B0' },
|
|
{ status: 'Processing', date: '15/10/2020 14:00', icon: 'pi pi-cog', color: '#673AB7' },
|
|
{ status: 'Shipped', date: '15/10/2020 16:15', icon: 'pi pi-shopping-cart', color: '#FF9800' },
|
|
{ status: 'Delivered', date: '16/10/2020 10:00', icon: 'pi pi-check', color: '#607D8B' }
|
|
],
|
|
code: {
|
|
basic: `<Timeline :value="events">
|
|
<template #opposite="slotProps">
|
|
<small class="p-text-secondary">{{slotProps.item.date}}</small>
|
|
</template>
|
|
<template #content="slotProps">
|
|
{{slotProps.item.status}}
|
|
</template>
|
|
</Timeline>`,
|
|
options: `<template>
|
|
<div class="card">
|
|
<Timeline :value="events">
|
|
<template #opposite="slotProps">
|
|
<small class="p-text-secondary">{{slotProps.item.date}}</small>
|
|
</template>
|
|
<template #content="slotProps">
|
|
{{slotProps.item.status}}
|
|
</template>
|
|
</Timeline>
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
export default {
|
|
data() {
|
|
return {
|
|
events: [
|
|
{ status: 'Ordered', date: '15/10/2020 10:30', icon: 'pi pi-shopping-cart', color: '#9C27B0'},
|
|
{ status: 'Processing', date: '15/10/2020 14:00', icon: 'pi pi-cog', color: '#673AB7' },
|
|
{ status: 'Shipped', date: '15/10/2020 16:15', icon: 'pi pi-shopping-cart', color: '#FF9800' },
|
|
{ status: 'Delivered', date: '16/10/2020 10:00', icon: 'pi pi-check', color: '#607D8B' }
|
|
]
|
|
};
|
|
}
|
|
};
|
|
<\/script>`,
|
|
composition: `<template>
|
|
<div class="card">
|
|
<Timeline :value="events">
|
|
<template #opposite="slotProps">
|
|
<small class="p-text-secondary">{{slotProps.item.date}}</small>
|
|
</template>
|
|
<template #content="slotProps">
|
|
{{slotProps.item.status}}
|
|
</template>
|
|
</Timeline>
|
|
</div>
|
|
</template>
|
|
|
|
<script setup>
|
|
import { ref } from "vue";
|
|
|
|
const events = ref([
|
|
{ status: 'Ordered', date: '15/10/2020 10:30', icon: 'pi pi-shopping-cart', color: '#9C27B0'},
|
|
{ status: 'Processing', date: '15/10/2020 14:00', icon: 'pi pi-cog', color: '#673AB7' },
|
|
{ status: 'Shipped', date: '15/10/2020 16:15', icon: 'pi pi-shopping-cart', color: '#FF9800' },
|
|
{ status: 'Delivered', date: '16/10/2020 10:00', icon: 'pi pi-check', color: '#607D8B' }
|
|
]);
|
|
|
|
<\/script>`
|
|
}
|
|
};
|
|
}
|
|
};
|
|
</script>
|