ticket fix
This commit is contained in:
@@ -9,23 +9,10 @@ const OrderDetail: FC = () => {
|
||||
const { id } = useParams()
|
||||
const { data } = useGetOrderDetails(id!)
|
||||
|
||||
|
||||
const orderData = {
|
||||
orderId: '۱۲۲۴۵',
|
||||
title: 'شاپینگ بک',
|
||||
designer: 'عباس حسینی',
|
||||
quantity: '۱۰۰',
|
||||
estimatedDate: '۱۴۰۵/۰۶/۰۶/۱۳',
|
||||
description: 'لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ، و با استفاده از طراحان گرافیک است، چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است، و برای شرایط فعلی تکنولوژی مورد نیاز، و کاربردهای متنوع با هدف بهبود ابزارهای کاربردی می باشد، کتابهای زیادی در شصت و سه درصد گذشته حال و آینده، شناخت فراوان جامعه و متخصصان را می طلبد، تا با نرم افزارها شناخت بیشتری را برای طراحان رایانه ای علی الخصوص طراحان خلاق...'
|
||||
}
|
||||
|
||||
|
||||
return (
|
||||
<div className="w-full min-h-screen bg-[#eceef6] p-6">
|
||||
{/* Header Section */}
|
||||
<div className="flex items-start justify-between mb-6">
|
||||
|
||||
|
||||
<div className="text-sm text-[#8C90A3]">
|
||||
سفارش #{data?.data?.orderNumber}
|
||||
</div>
|
||||
@@ -60,7 +47,7 @@ const OrderDetail: FC = () => {
|
||||
</div>
|
||||
<div className='flex items-center gap-2'>
|
||||
<div className="text-xs text-desc">نام طرح:</div>
|
||||
<div className="text-sm font-medium text-black">{orderData.designer}</div>
|
||||
<div className="text-sm font-medium text-black">{'orderData.designer'}</div>
|
||||
</div>
|
||||
<div className='flex items-center gap-2'>
|
||||
<div className="text-xs text-desc">تعداد:</div>
|
||||
|
||||
@@ -7,21 +7,24 @@ import { useVoiceRecorder } from '@/hooks/useVoiceRecorder'
|
||||
import { Play, Pause } from 'iconsax-react'
|
||||
import { useMultiUpload, useSingleUpload } from '@/pages/uploader/hooks/useUploader'
|
||||
import type { AddTicketType } from '../type/Types'
|
||||
import { useAddTicket, useGetTickets } from '../hooks/useOrderData'
|
||||
import { useAddTicket, useGetOrderDetails, useGetTickets } from '../hooks/useOrderData'
|
||||
import { useParams } from 'react-router-dom'
|
||||
import { toast } from '@/shared/toast'
|
||||
import { extractErrorMessage, getFileNameAndExtensionFromUrl } from '@/config/func'
|
||||
import VoicePlayer from '@/components/VoicePlayer'
|
||||
import Select from '@/components/Select'
|
||||
|
||||
|
||||
|
||||
const TicketSection: FC = () => {
|
||||
|
||||
const { id } = useParams()
|
||||
const { data: order } = useGetOrderDetails(id!)
|
||||
const [itemId, setItemId] = useState<string>('')
|
||||
const [message, setMessage] = useState('')
|
||||
const [files, setFiles] = useState<File[]>([])
|
||||
const addTicket = useAddTicket()
|
||||
const { data, refetch } = useGetTickets(id!)
|
||||
const { data, refetch } = useGetTickets(itemId)
|
||||
const singleUpload = useSingleUpload()
|
||||
const multiUpload = useMultiUpload()
|
||||
|
||||
@@ -66,7 +69,7 @@ const TicketSection: FC = () => {
|
||||
})
|
||||
}
|
||||
|
||||
addTicket.mutate({ orderId: id!, params: params }, {
|
||||
addTicket.mutate({ orderId: itemId, params: params }, {
|
||||
onSuccess: () => {
|
||||
toast('پیام شما با موفقیت ارسال شد')
|
||||
refetch()
|
||||
@@ -90,12 +93,24 @@ const TicketSection: FC = () => {
|
||||
return (
|
||||
<div className="bg-white rounded-2xl p-6">
|
||||
{/* Designer Name */}
|
||||
<div className="mt-6">
|
||||
<div className="mt-6 rowTwoInput">
|
||||
<Input
|
||||
label="نام طراح"
|
||||
placeholder="عباس حسینی"
|
||||
readOnly
|
||||
/>
|
||||
|
||||
<Select
|
||||
items={order?.data?.items?.map((item) => {
|
||||
return {
|
||||
label: item.product?.title,
|
||||
value: item.id + ''
|
||||
}
|
||||
}) || []}
|
||||
onChange={(e) => setItemId(e.target.value)}
|
||||
label='انتخاب محصول'
|
||||
placeholder='انتخاب'
|
||||
/>
|
||||
</div>
|
||||
{
|
||||
data?.data?.map((item) => {
|
||||
|
||||
@@ -67,14 +67,14 @@ export const getOrderDetails = async (id: string) => {
|
||||
return data;
|
||||
};
|
||||
|
||||
export const getTickets = async (orderId: string) => {
|
||||
export const getTickets = async (id: string) => {
|
||||
const { data } = await axios.get<TicketsResponseType>(
|
||||
`/public/ticket/order/${orderId}`
|
||||
`/public/ticket/order/item/${id}`
|
||||
);
|
||||
return data;
|
||||
};
|
||||
|
||||
export const addTicket = async (orderId: string, params: AddTicketType) => {
|
||||
const { data } = await axios.post(`/public/ticket/order/${orderId}`, params);
|
||||
export const addTicket = async (id: string, params: AddTicketType) => {
|
||||
const { data } = await axios.post(`/public/ticket/order/item/${id}`, params);
|
||||
return data;
|
||||
};
|
||||
|
||||
@@ -82,6 +82,7 @@ export interface MyOrderType extends RowDataType {
|
||||
total: number;
|
||||
items: {
|
||||
adminDescription?: string;
|
||||
id: number;
|
||||
attachments: {
|
||||
type: string;
|
||||
url: string;
|
||||
|
||||
Reference in New Issue
Block a user