2026-01-24 17:45:54 +03:30
|
|
|
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: 'direction',
|
|
|
|
|
key: 'direction',
|
|
|
|
|
filterable: false,
|
|
|
|
|
customRender: ({ record }) => {
|
|
|
|
|
switch (record.direction) {
|
|
|
|
|
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>
|
|
|
|
|
)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: 'نام و نام خانوادگی',
|
|
|
|
|
dataIndex: 'customer.name',
|
|
|
|
|
key: 'customer.name',
|
|
|
|
|
type: 'Text'
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: 'شماره موبایل',
|
|
|
|
|
dataIndex: 'customer.mobile',
|
|
|
|
|
key: 'customer.mobile',
|
|
|
|
|
type: 'Number'
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: 'مقدار (گرم)',
|
|
|
|
|
dataIndex: 'amount',
|
|
|
|
|
key: 'amount',
|
|
|
|
|
type: 'Text'
|
|
|
|
|
},
|
|
|
|
|
/*{
|
|
|
|
|
title: 'کارمزد ریالی',
|
|
|
|
|
dataIndex: 'service_charge_price',
|
|
|
|
|
key: 'service_charge_price',
|
|
|
|
|
type: 'Number',
|
|
|
|
|
customRender(data) {
|
|
|
|
|
return usePrice(data.record?.service_charge_price ?? 0, true, '')
|
|
|
|
|
}
|
|
|
|
|
// className: 'column-money'
|
|
|
|
|
},*/
|
|
|
|
|
{
|
|
|
|
|
title: 'کارمزد طلایی',
|
|
|
|
|
dataIndex: 'service_charge',
|
|
|
|
|
key: 'service_charge',
|
|
|
|
|
type: 'Number',
|
|
|
|
|
customRender(data) {
|
|
|
|
|
return data.record?.service_charge
|
|
|
|
|
}
|
|
|
|
|
// className: 'column-money'
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: 'قیمت هر گرم طلا برای مشتری (ریال)',
|
|
|
|
|
dataIndex: 'price',
|
|
|
|
|
key: 'price',
|
|
|
|
|
type: 'Text',
|
|
|
|
|
customRender(data) {
|
|
|
|
|
return usePrice(data.record?.price ?? 0, true, '')
|
|
|
|
|
}
|
|
|
|
|
},
|
2026-06-01 17:10:30 +03:30
|
|
|
/* {
|
2026-01-24 17:45:54 +03:30
|
|
|
title: 'قیمت هر گرم طلا در لیمان',
|
|
|
|
|
dataIndex: 'limanPrice',
|
|
|
|
|
key: 'limanPrice',
|
|
|
|
|
type: 'Text',
|
|
|
|
|
customRender(data) {
|
|
|
|
|
return usePrice(data.record?.total_price_liman ?? 0, true, '')
|
|
|
|
|
}
|
2026-06-01 17:10:30 +03:30
|
|
|
},*/
|
2026-01-24 17:45:54 +03:30
|
|
|
{
|
|
|
|
|
title: 'قیمت کل برای مشتری (ریال)',
|
|
|
|
|
dataIndex: 'total_price',
|
|
|
|
|
key: 'total_price',
|
|
|
|
|
type: 'Text',
|
|
|
|
|
customRender(data) {
|
|
|
|
|
return usePrice(data.record?.total_price ?? 0, true, '')
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
|
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: '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
|
|
|
|
|
}
|
|
|
|
|
]
|