ticket with order item
This commit is contained in:
@@ -7,21 +7,24 @@ import { useVoiceRecorder } from '@/hooks/useVoiceRecorder'
|
|||||||
import { Play, Pause } from 'iconsax-react'
|
import { Play, Pause } from 'iconsax-react'
|
||||||
import { useMultiUpload, useSingleUpload } from '@/pages/uploader/hooks/useUploader'
|
import { useMultiUpload, useSingleUpload } from '@/pages/uploader/hooks/useUploader'
|
||||||
import type { AddTicketType } from '../types/Types'
|
import type { AddTicketType } from '../types/Types'
|
||||||
import { useAddTicket, useGetTickets } from '../hooks/useOrderData'
|
import { useAddTicket, useGetOrderDetails, useGetTickets } from '../hooks/useOrderData'
|
||||||
import { useParams } from 'react-router-dom'
|
import { useParams } from 'react-router-dom'
|
||||||
import { toast } from '@/shared/toast'
|
import { toast } from '@/shared/toast'
|
||||||
import { extractErrorMessage, getFileNameAndExtensionFromUrl } from '@/config/func'
|
import { extractErrorMessage, getFileNameAndExtensionFromUrl } from '@/config/func'
|
||||||
import VoicePlayer from '@/components/VoicePlayer'
|
import VoicePlayer from '@/components/VoicePlayer'
|
||||||
|
import Select from '@/components/Select'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const TicketSection: FC = () => {
|
const TicketSection: FC = () => {
|
||||||
|
|
||||||
const { id } = useParams()
|
const { id } = useParams()
|
||||||
|
const [itemId, setItemId] = useState<string>('')
|
||||||
|
const { data: order } = useGetOrderDetails(id!)
|
||||||
const [message, setMessage] = useState('')
|
const [message, setMessage] = useState('')
|
||||||
const [files, setFiles] = useState<File[]>([])
|
const [files, setFiles] = useState<File[]>([])
|
||||||
const addTicket = useAddTicket()
|
const addTicket = useAddTicket()
|
||||||
const { data, refetch } = useGetTickets(id!)
|
const { data, refetch } = useGetTickets(itemId)
|
||||||
const singleUpload = useSingleUpload()
|
const singleUpload = useSingleUpload()
|
||||||
const multiUpload = useMultiUpload()
|
const multiUpload = useMultiUpload()
|
||||||
|
|
||||||
@@ -66,7 +69,7 @@ const TicketSection: FC = () => {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
addTicket.mutate({ orderId: id!, params: params }, {
|
addTicket.mutate({ orderId: itemId, params: params }, {
|
||||||
onSuccess: () => {
|
onSuccess: () => {
|
||||||
toast('پیام شما با موفقیت ارسال شد')
|
toast('پیام شما با موفقیت ارسال شد')
|
||||||
refetch()
|
refetch()
|
||||||
@@ -90,12 +93,24 @@ const TicketSection: FC = () => {
|
|||||||
return (
|
return (
|
||||||
<div className="bg-white rounded-2xl p-6">
|
<div className="bg-white rounded-2xl p-6">
|
||||||
{/* Designer Name */}
|
{/* Designer Name */}
|
||||||
<div className="mt-6">
|
<div className="mt-6 rowTwoInput">
|
||||||
<Input
|
<Input
|
||||||
label="نام طراح"
|
label="نام طراح"
|
||||||
placeholder="عباس حسینی"
|
placeholder="عباس حسینی"
|
||||||
readOnly
|
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>
|
</div>
|
||||||
{
|
{
|
||||||
data?.data?.map((item) => {
|
data?.data?.map((item) => {
|
||||||
|
|||||||
@@ -25,7 +25,10 @@ export const getTickets = async (orderId: string) => {
|
|||||||
return data;
|
return data;
|
||||||
};
|
};
|
||||||
|
|
||||||
export const addTicket = async (orderId: string, params: AddTicketType) => {
|
export const addTicket = async (ticketId: string, params: AddTicketType) => {
|
||||||
const { data } = await axios.post(`/admin/ticket/order/${orderId}`, params);
|
const { data } = await axios.post(
|
||||||
|
`/admin/ticket/order/item/${ticketId}`,
|
||||||
|
params
|
||||||
|
);
|
||||||
return data;
|
return data;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -118,6 +118,7 @@ export interface MyOrderType extends RowDataType {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export type OrderItemType = {
|
export type OrderItemType = {
|
||||||
|
id: number;
|
||||||
adminDescription?: string;
|
adminDescription?: string;
|
||||||
attachments: {
|
attachments: {
|
||||||
type: string;
|
type: string;
|
||||||
|
|||||||
Reference in New Issue
Block a user