PTViewer added to Data components I

pull/6439/head
tugcekucukoglu 2024-09-18 16:09:24 +03:00
parent 8db74e2da6
commit f404a5c3a1
11 changed files with 161 additions and 40 deletions

View File

@ -11,16 +11,16 @@
<script> <script>
import DocApiTable from '@/components/doc/DocApiTable.vue'; import DocApiTable from '@/components/doc/DocApiTable.vue';
import { getPTOptions } from '@/components/doc/helpers'; import { getPTOptions } from '@/components/doc/helpers';
import PTImage from './PTImage.vue'; import PTViewer from './PTViewer.vue';
export default { export default {
data() { data() {
return { return {
docs: [ docs: [
{ {
id: 'pt.image', id: 'pt.viewer',
label: 'Wireframe', label: 'Viewer',
component: PTImage component: PTViewer
}, },
{ {
id: 'pt.doc.datatable', id: 'pt.doc.datatable',

View File

@ -1,8 +0,0 @@
<template>
<DocSectionText v-bind="$attrs">
<p>{{ $attrs.description }}</p>
</DocSectionText>
<div class="card">
<img class="w-full" src="https://primefaces.org/cdn/primevue/images/pt/dataview.jpg" />
</div>
</template>

View File

@ -0,0 +1,81 @@
<template>
<DocSectionText v-bind="$attrs" />
<DocPTViewer :docs="docs">
<DataView :value="products">
<template #list="slotProps">
<div class="flex flex-col">
<div v-for="(item, index) in slotProps.items" :key="index">
<div class="flex flex-col sm:flex-row sm:items-center gap-4">
<div class="md:w-40 relative">
<img class="rounded w-36" :src="`https://primefaces.org/cdn/primevue/images/product/${item.image}`" :alt="item.name" />
<div class="dark:bg-surface-900 absolute rounded-border" style="left: 4px; top: 4px">
<Tag :value="item.inventoryStatus" :severity="getSeverity(item)"></Tag>
</div>
</div>
<div class="flex flex-col md:flex-row justify-between md:items-center flex-1 gap-6">
<div class="flex flex-row md:flex-col justify-between items-start gap-2">
<div>
<span class="font-medium text-surface-500 dark:text-surface-400 text-sm">{{ item.category }}</span>
<div class="text-lg font-medium mt-2">{{ item.name }}</div>
</div>
<div class="bg-surface-100 p-1" style="border-radius: 30px">
<div class="bg-surface-0 flex items-center gap-2 justify-center py-1 px-2" style="border-radius: 30px; box-shadow: 0px 1px 2px 0px rgba(0, 0, 0, 0.04), 0px 1px 2px 0px rgba(0, 0, 0, 0.06)">
<span class="text-surface-900 font-medium text-sm">{{ item.rating }}</span>
<i class="pi pi-star-fill text-yellow-500"></i>
</div>
</div>
</div>
<div class="flex flex-col md:items-end gap-8">
<span class="text-xl font-semibold">${{ item.price }}</span>
<div class="flex flex-row-reverse md:flex-row gap-2">
<Button icon="pi pi-heart" outlined></Button>
<Button icon="pi pi-shopping-cart" label="Buy Now" :disabled="item.inventoryStatus === 'OUTOFSTOCK'" class="flex-auto md:flex-initial whitespace-nowrap"></Button>
</div>
</div>
</div>
</div>
</div>
</div>
</template>
</DataView>
</DocPTViewer>
</template>
<script>
import { getPTOptions } from '@/components/doc/helpers';
import { ProductService } from '@/service/ProductService';
export default {
data() {
return {
products: null,
docs: [
{
data: getPTOptions('DataView'),
key: 'DataView'
}
]
};
},
mounted() {
ProductService.getProductsSmall().then((data) => (this.products = data.slice(0, 3)));
},
methods: {
getSeverity(product) {
switch (product.inventoryStatus) {
case 'INSTOCK':
return 'success';
case 'LOWSTOCK':
return 'warn';
case 'OUTOFSTOCK':
return 'danger';
default:
return null;
}
}
}
};
</script>

View File

@ -11,16 +11,16 @@
<script> <script>
import DocApiTable from '@/components/doc/DocApiTable.vue'; import DocApiTable from '@/components/doc/DocApiTable.vue';
import { getPTOptions } from '@/components/doc/helpers'; import { getPTOptions } from '@/components/doc/helpers';
import PTImage from './PTImage.vue'; import PTViewer from './PTViewer.vue';
export default { export default {
data() { data() {
return { return {
docs: [ docs: [
{ {
id: 'pt.image', id: 'pt.viewer',
label: 'Wireframe', label: 'Viewer',
component: PTImage component: PTViewer
}, },
{ {
id: 'pt.doc.dataview', id: 'pt.doc.dataview',

View File

@ -1,8 +0,0 @@
<template>
<DocSectionText v-bind="$attrs">
<p>{{ $attrs.description }}</p>
</DocSectionText>
<div class="card">
<img class="w-full" src="https://primefaces.org/cdn/primevue/images/pt/orderlist.jpg" />
</div>
</template>

View File

@ -0,0 +1,32 @@
<template>
<DocSectionText v-bind="$attrs" />
<DocPTViewer :docs="docs">
<OrderList v-model="products" dataKey="id" breakpoint="575px" pt:pcList:root="w-full sm:w-56">
<template #option="{ option }">
{{ option.name }}
</template>
</OrderList>
</DocPTViewer>
</template>
<script>
import { getPTOptions } from '@/components/doc/helpers';
import { ProductService } from '@/service/ProductService';
export default {
data() {
return {
products: null,
docs: [
{
data: getPTOptions('OrderList'),
key: 'OrderList'
}
]
};
},
mounted() {
ProductService.getProductsSmall().then((data) => (this.products = data));
}
};
</script>

View File

@ -11,16 +11,16 @@
<script> <script>
import DocApiTable from '@/components/doc/DocApiTable.vue'; import DocApiTable from '@/components/doc/DocApiTable.vue';
import { getPTOptions } from '@/components/doc/helpers'; import { getPTOptions } from '@/components/doc/helpers';
import PTImage from './PTImage.vue'; import PTViewer from './PTViewer.vue';
export default { export default {
data() { data() {
return { return {
docs: [ docs: [
{ {
id: 'pt.image', id: 'pt.viewer',
label: 'Wireframe', label: 'Viewer',
component: PTImage component: PTViewer
}, },
{ {
id: 'pt.doc.orderlist', id: 'pt.doc.orderlist',

View File

@ -1,8 +0,0 @@
<template>
<DocSectionText v-bind="$attrs">
<p>{{ $attrs.description }}</p>
</DocSectionText>
<div class="card">
<img class="w-full" src="https://primefaces.org/cdn/primevue/images/pt/picklist.jpg" />
</div>
</template>

View File

@ -0,0 +1,32 @@
<template>
<DocSectionText v-bind="$attrs" />
<DocPTViewer :docs="ptViewerDoc">
<PickList v-model="products" dataKey="id" breakpoint="1400px" class="w-full">
<template #option="{ option }">
{{ option.name }}
</template>
</PickList>
</DocPTViewer>
</template>
<script>
import { getPTOptions } from '@/components/doc/helpers';
import { ProductService } from '@/service/ProductService';
export default {
data() {
return {
products: null,
ptViewerDoc: [
{
data: getPTOptions('PickList'),
key: 'PickList'
}
]
};
},
mounted() {
ProductService.getProductsSmall().then((data) => (this.products = [data, []]));
}
};
</script>

View File

@ -11,16 +11,16 @@
<script> <script>
import DocApiTable from '@/components/doc/DocApiTable.vue'; import DocApiTable from '@/components/doc/DocApiTable.vue';
import { getPTOptions } from '@/components/doc/helpers'; import { getPTOptions } from '@/components/doc/helpers';
import PTImage from './PTImage.vue'; import PTViewer from './PTViewer.vue';
export default { export default {
data() { data() {
return { return {
docs: [ docs: [
{ {
id: 'pt.image', id: 'pt.viewer',
label: 'Wireframe', label: 'Viewer',
component: PTImage component: PTViewer
}, },
{ {
id: 'pt.doc.picklist', id: 'pt.doc.picklist',