ticket fix

This commit is contained in:
hamid zarghami
2026-02-03 09:53:43 +03:30
parent 8dbfcdad53
commit 4c0041db17
5 changed files with 26 additions and 23 deletions
+1 -1
View File
@@ -1,3 +1,3 @@
VITE_TOKEN_NAME = 'negareh_t'
VITE_REFRESH_TOKEN_NAME = 'negareh_rt'
VITE_API_BASE_URL = 'http://10.24.161.1:4000'
VITE_API_BASE_URL = 'http://192.168.99.218:4000'
+1 -14
View File
@@ -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>
+19 -4
View File
@@ -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) => {
+4 -4
View File
@@ -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;
};
+1
View File
@@ -82,6 +82,7 @@ export interface MyOrderType extends RowDataType {
total: number;
items: {
adminDescription?: string;
id: number;
attachments: {
type: string;
url: string;