Files
ghatreh_admin/src/pages/menuPages/giftCards/hooks/orderColumns.tsx
T

269 lines
6.6 KiB
TypeScript

import type { BaseTableColumn } from '@core/type/baseTable'
import { toJalali, toJalaliNoTime, toTime } from '@core/utils/useDataTime'
import CustomTag from '@/components/CustomTag.vue'
import { usePrice } from '@core/utils/usePrice'
/*import BudgetSelect from '@/components/BudgetSelect.vue'
import { useStaticApiListsStore } from '@/store/staticApisStore'
import type { FilterSelect } from '@/model/filterSelect'
import type { DocItem } from '@/model/docType'*/
//define store
//const store = useStaticApiListsStore()
//document types
/*let docTypes: DocItem[]*/
/*onMounted(async () => {
docTypes = await store.readyDocTypeList()
})
const filteredDocTypes: FilterSelect = docTypes?.map((x: DocItem) => {
return {
label: x.title,
value: x.id
}
})*/
export const cols: BaseTableColumn[] = [
{
title: 'ردیف',
dataIndex: 'id',
key: 'id',
filterable: false,
sortable: false,
customRender: (record: any) => {
return record.index + 1
}
},
{
title: 'کد ',
dataIndex: 'id',
key: 'id',
type: 'Number'
// className: 'column-money'
},
{
title: 'نوع کد',
dataIndex: 'unit',
key: 'unit',
filterable: false,
customRender: ({ record }) => {
switch (record.unit) {
case 2:
return (
<div class="flex justify-center">
<CustomTag textColor="#C53030" bgColor="#FECACA">
کارت هدیه طلایی
</CustomTag>
</div>
)
case 1:
return (
<div class="flex justify-center">
<CustomTag textColor="#25855A" bgColor="#E3F4E9">
کارت هدیه ریالی
</CustomTag>
</div>
)
case 3:
return (
<div class="flex justify-center">
<CustomTag textColor="#377ef4" bgColor="#ccedff">
کد تخفیف
</CustomTag>
</div>
)
}
}
},
{
title: 'تعداد کد ها',
dataIndex: 'count',
key: 'count',
type: 'Number'
},
{
title: 'مقدار',
dataIndex: 'amount',
key: 'amount',
type: 'Text',
customRender: (record: any) => {
if (record.record.unit==3)
return `${record.text*100} درصد`
else if (record.record.unit==2)
return `${record.text} گرم`
else return'-'
}
},
{
title: 'مبلغ کل (ریال)',
dataIndex: 'total',
key: 'total',
type: 'Number',
customRender: (data) => {
if (data.record.unit==1)
return usePrice(data.record?.total ?? 0, true, '')
else
return '-'
}
},
{
title: 'کد یکتا',
dataIndex: 'unique_code',
key: 'unique_code',
type: 'Text'
},
{
title: 'تعداد استفاده شده',
dataIndex: 'used_count',
key: 'used_count',
type: 'Number'
},
{
title: 'نام پویش',
dataIndex: 'name',
key: 'name',
type: 'Text',
customRender: ({ record }) => {
return record.name ?? '-'
}
},
// {
// title: 'مشتری',
// dataIndex: 'customer.name',
// key: 'customer.name',
// type: 'Text',
// customRender: ({ record }) => {
// return record.customer?.name ?? '-'
// }
// },
// {
// title: 'شماره موبایل مشتری',
// dataIndex: 'customer.mobile',
// key: 'customer.mobile',
// type: 'Number',
// customRender: ({ record }) => {
// return record.customer?.mobile ?? '-'
// }
// },
{
title: 'توضیحات',
dataIndex: 'description',
key: 'description',
type: 'Text'
},
{
title: 'وضعیت',
dataIndex: 'sts',
key: 'sts',
filterable: false,
customRender: ({ record }) => {
switch (record.sts) {
case 1:
return (
<div class="flex justify-center">
<CustomTag textColor="#ca8a04" bgColor="#fef3c7">
{record.sts_str}
</CustomTag>
</div>
)
case 2:
return (
<div class="flex justify-center">
<CustomTag textColor="#25855A" bgColor="#E3F4E9">
{record.sts_str}
</CustomTag>
</div>
)
default:
return (
<div class="flex justify-center">
<CustomTag textColor="#C53030" bgColor="#FECACA">
{record.sts_str}
</CustomTag>
</div>
)
}
}
},
{
title: 'تاریخ ثبت',
dataIndex: 'created_at',
key: 'created_at',
type: 'DateTime',
customRender: (record: any) => {
return toJalali(record.record.created_at)
}
},
{
title: 'تاریخ انقضا',
dataIndex: 'expiry_date',
key: 'expiry_date',
type: 'DateTime',
customRender: (record: any) => {
return toJalali(record.record.expiry_date)
}
},
/*{
title: 'نقش',
dataIndex: 'user_type_record',
key: 'user_type_record',
type: 'Select',
filterable: false,
sortable: false,
filterComponentProps: {
multiple: true
},
filterField: 'user_type_obj.id',
filterComponent: ReadyUserTypeSelect,
/!* customRender: (record: any) => {
return record.record.user_type_record?.value
}*!/
customRender: ({ record }) => {
const items = record.is_admin ? (
<CustomTag textColor="#25855A" bgColor="#E3F4E9">
ادمین
</CustomTag>
) : (
record.user_type_obj.map((item: { title: any }, index: any) => {
if (item) {
return (
<CustomTag textColor="#25855A" bgColor="#E3F4E9">
{item?.title}
</CustomTag>
)
}
})
)
return <div class="flex justify-center items-center gap-2">{items}</div>
}
},
{
title: 'حوزه',
dataIndex: 'section',
key: 'section'
},
{
title: 'شماره موبایل',
dataIndex: 'mobile',
type: 'Number',
key: 'mobile'
},
{
title: 'تاریخ ثبت',
dataIndex: 'created_at',
key: 'created_at',
type: 'DateTime',
customRender: (record: any) => {
return toJalaliNoTime(record.record.created_at)
}
},*/
{
title: 'عملیات',
dataIndex: 'action',
key: 'action',
slot: 'action',
fixed: 'right',
filterable: false
}
]