order progressing

This commit is contained in:
hamid zarghami
2026-02-23 10:40:58 +03:30
parent 4f1884d98b
commit 377c484278
5 changed files with 53 additions and 33 deletions
@@ -1,6 +1,8 @@
import { type FC } from 'react';
import { Eye } from 'iconsax-react';
import { Link } from 'react-router-dom';
import StatusCircle from '@/components/StatusCircle';
import { Paths } from '@/config/Paths';
import { type Order, type OrderStatus } from './types/OrderTypes';
// کامپوننت رندر شماره سفارش
@@ -37,7 +39,7 @@ export const OrderDateRenderer: FC<{ order: Order }> = ({ order }) => {
// کامپوننت رندر وضعیت سفارش
export const OrderStatusRenderer: FC<{ order: Order }> = ({ order }) => {
const getStatusConfig = (status: OrderStatus) => {
const getStatusConfig = (status: OrderStatus | string) => {
switch (status) {
case 'در حال طراحی':
return {
@@ -93,14 +95,11 @@ export const OrderMessagesRenderer: FC<{ order: Order }> = ({ order }) => {
// کامپوننت رندر آیکون مشاهده
export const OrderViewRenderer: FC<{ order: Order }> = ({ order }) => {
return (
<button
className="p-1 hover:bg-gray-100 rounded-full transition-colors"
onClick={() => {
// اینجا می‌توانید منطق مشاهده جزئیات را اضافه کنید
console.log('View order:', order.id);
}}
<Link
to={Paths.orderDetails + order.id}
className="p-1 hover:bg-gray-100 rounded-full transition-colors inline-block"
>
<Eye color='black' size={16} />
</button>
<Eye color="black" size={16} />
</Link>
);
};
+23 -3
View File
@@ -2,7 +2,10 @@ import Table from '@/components/Table'
import { type FC } from 'react'
import { type ColumnType } from '@/components/types/TableTypes'
import { type Order } from './types/OrderTypes'
import { ordersData } from './data/ordersData'
import { useGetMyOrders } from '@/pages/order/hooks/useOrderData'
import { TabMyRequestsEnum } from '@/pages/order/enum/OrderEnum'
import { orderStatusLabels } from '@/pages/order/constants/statusLabels'
import moment from 'moment-jalaali'
import {
OrderNumberRenderer,
OrderTitleRenderer,
@@ -11,8 +14,24 @@ import {
OrderMessagesRenderer,
OrderViewRenderer
} from './OrderTableComponents'
import type { OrderType } from '@/pages/order/type/Types'
const mapOrderToRow = (order: OrderType): Order => ({
id: order.id,
number: String(order.orderNumber ?? order.id),
title: order.title,
creationDate: {
gregorian: moment(order.createdAt).format('YYYY-MM-DD'),
persian: moment(order.createdAt).format('jYYYY/jMM/jDD')
},
status: orderStatusLabels[order.status] ?? order.status,
unreadMessages: 0
})
const Orders: FC = () => {
const { data, isLoading } = useGetMyOrders(1, TabMyRequestsEnum.IN_PROGRESS)
const orders: Order[] = (data?.data ?? []).map(mapOrderToRow)
const columns: ColumnType<Order>[] = [
{
title: 'شماره',
@@ -55,10 +74,11 @@ const Orders: FC = () => {
<Table<Order>
columns={columns}
data={ordersData}
data={orders}
isLoading={isLoading}
/>
</div>
)
}
export default Orders
export default Orders
@@ -8,7 +8,7 @@ export interface Order extends RowDataType {
gregorian: string;
persian: string;
};
status: OrderStatus;
status: OrderStatus | string;
unreadMessages: number;
[key: string]: unknown;
}
+2 -20
View File
@@ -5,25 +5,7 @@ import moment from 'moment-jalaali'
import { useGetOrderDetails } from './hooks/useOrderData'
import TicketSection from './components/TicketSection'
import { getFileNameAndExtensionFromUrl } from '@/config/func'
import { RequestStatusEnum } from './enum/OrderEnum'
const statusLabels: Record<string, string> = {
[RequestStatusEnum.CREATED]: 'ایجاد شده',
[RequestStatusEnum.INVOICED]: 'فاکتور شده',
[RequestStatusEnum.WAITING_to_CONFIRM_INVOICE]: 'در انتظار تایید فاکتور',
[RequestStatusEnum.DESIGN_INITIATED]: 'شروع طراحی',
[RequestStatusEnum.DESIGN_FINISHED]: 'طراحی تمام شده',
[RequestStatusEnum.DESIGN_REVISION]: 'بازنگری طراحی',
[RequestStatusEnum.READY_TO_PRINTING]: 'آماده چاپ',
[RequestStatusEnum.IN_PRINTING]: 'در حال چاپ',
[RequestStatusEnum.AFTER_PRINT_COVER]: 'پس از چاپ جلد',
[RequestStatusEnum.AFTER_PRINT_CARTONING]: 'کارتن‌سازی',
[RequestStatusEnum.AFTER_PRINT_BOXING]: 'بسته‌بندی',
[RequestStatusEnum.READY_FOR_DELIVERY]: 'آماده ارسال',
[RequestStatusEnum.DELIVERED]: 'تحویل شده',
[RequestStatusEnum.FINISHED]: 'پایان یافته',
[RequestStatusEnum.CANCELED]: 'لغو شده',
}
import { orderStatusLabels } from './constants/statusLabels'
const OrderDetail: FC = () => {
const { id } = useParams()
@@ -84,7 +66,7 @@ const OrderDetail: FC = () => {
<div className="text-xs text-desc">وضعیت:</div>
<div className="text-sm font-medium text-black">
{order?.status
? statusLabels[order.status] ?? order.status
? orderStatusLabels[order.status] ?? order.status
: '-'}
</div>
</div>
+19
View File
@@ -0,0 +1,19 @@
import { RequestStatusEnum } from '../enum/OrderEnum'
export const orderStatusLabels: Record<string, string> = {
[RequestStatusEnum.CREATED]: 'ایجاد شده',
[RequestStatusEnum.INVOICED]: 'فاکتور شده',
[RequestStatusEnum.WAITING_to_CONFIRM_INVOICE]: 'در انتظار تایید فاکتور',
[RequestStatusEnum.DESIGN_INITIATED]: 'شروع طراحی',
[RequestStatusEnum.DESIGN_FINISHED]: 'طراحی تمام شده',
[RequestStatusEnum.DESIGN_REVISION]: 'بازنگری طراحی',
[RequestStatusEnum.READY_TO_PRINTING]: 'آماده چاپ',
[RequestStatusEnum.IN_PRINTING]: 'در حال چاپ',
[RequestStatusEnum.AFTER_PRINT_COVER]: 'پس از چاپ جلد',
[RequestStatusEnum.AFTER_PRINT_CARTONING]: 'کارتن‌سازی',
[RequestStatusEnum.AFTER_PRINT_BOXING]: 'بسته‌بندی',
[RequestStatusEnum.READY_FOR_DELIVERY]: 'آماده ارسال',
[RequestStatusEnum.DELIVERED]: 'تحویل شده',
[RequestStatusEnum.FINISHED]: 'پایان یافته',
[RequestStatusEnum.CANCELED]: 'لغو شده',
}