This commit is contained in:
hamid zarghami
2025-03-03 15:29:50 +03:30
parent 37081ae981
commit dcf786330c
8 changed files with 53 additions and 15 deletions
+10
View File
@@ -150,3 +150,13 @@ tbody tr {
direction: rtl;
font-family: "irancell" !important;
}
* {
scrollbar-width: none; /* برای فایرفاکس */
-ms-overflow-style: none; /* برای اینترنت اکسپلورر و اج */
}
/* برای Webkit (کروم، سافاری و اپرا) */
*::-webkit-scrollbar {
display: none;
}
+6 -2
View File
@@ -95,10 +95,14 @@ const CustomerList: FC = () => {
<Td text={item.email ? item.email : ''} />
<Td text={item.subscriptionsCount} />
<Td text={''}>
<div className='text-[#0047FF]'>{item.invoicesCount} صورت حساب</div>
<Link to={Pages.receipts.index + `?user=${item.id}`}>
<div className='text-[#0047FF]'>{item.invoicesCount} صورت حساب</div>
</Link>
</Td>
<Td text={''}>
<div className='text-[#0047FF]'>{item.ticketsCount} تیکت</div>
<Link to={Pages.ticket.list + `?user=${item.id}`}>
<div className='text-[#0047FF]'>{item.ticketsCount} تیکت</div>
</Link>
</Td>
<Td text={''}>
<Link to={Pages.ticket.detail + '1'}>
+11 -1
View File
@@ -1,4 +1,4 @@
import { FC, useState } from 'react'
import { FC, useEffect, useState } from 'react'
import { useTranslation } from 'react-i18next'
import Tabs from '../../components/Tabs'
import { CloseCircle, FolderOpen, WalletCheck, WalletRemove } from 'iconsax-react'
@@ -12,10 +12,12 @@ import { useGetCustomers } from '../customer/hooks/useCustomerData'
import Input from '../../components/Input'
import { CustomerItemType } from '../customer/types/CustomerTypes'
import DatePickerComponent from '../../components/DatePicker'
import { useSearchParams } from 'react-router-dom'
const ReceiptsList: FC = () => {
const { t } = useTranslation('global')
const [searchParams] = useSearchParams()
const [activeTab, setActiveTab] = useState<"PENDING" | "PAID" | "CANCELED" | "EXPIRED">('PENDING')
const [customerId, setCustomerId] = useState<string>('')
const [search, setSearch] = useState<string>('')
@@ -23,6 +25,14 @@ const ReceiptsList: FC = () => {
const getInvoices = useGetInvoices(activeTab, customerId, search, date)
const getCustomers = useGetCustomers()
useEffect(() => {
const urlCustomerId = searchParams.get('user')
if (urlCustomerId) {
setCustomerId(urlCustomerId)
}
}, [searchParams])
return (
<div className='mt-4'>
<div>
@@ -1,6 +1,5 @@
import { FC } from 'react'
import { useTranslation } from 'react-i18next'
import SwitchComponent from '../../../components/Switch'
import CheckBoxComponent from '../../../components/CheckBoxComponent'
import Input from '../../../components/Input'
import UploadBoxDraggble from '../../../components/UploadBoxDraggble'
@@ -28,12 +27,12 @@ const AddServiceSidebar: FC<Props> = (props: Props) => {
<div className='text-sm'>
{t('service.service_status')}
</div>
<div className='flex gap-1'>
{/* <div className='flex gap-1'>
<SwitchComponent
active={formik.values.isDanakSuggest}
onChange={(e) => formik.setFieldValue('isDanakSuggest', e)}
/>
</div>
</div> */}
</div>
<div className='mt-8 items-center flex '>
+13 -3
View File
@@ -1,9 +1,9 @@
import { FC, useState } from 'react'
import { FC, useEffect, useState } from 'react'
import { useTranslation } from 'react-i18next'
import { Eye, MessageRemove, MessageTick, MessageTime } from 'iconsax-react'
import Tabs from '../../components/Tabs'
import Td from '../../components/Td'
import { Link } from 'react-router-dom'
import { Link, useSearchParams } from 'react-router-dom'
import { Pages } from '../../config/Pages'
import { useGetTickets } from './hooks/useTicketData'
import moment from 'moment-jalaali'
@@ -12,8 +12,18 @@ import { TicketItemType } from './types/TicketTypes'
const TicketList: FC = () => {
const { t } = useTranslation('global')
const [searchParams] = useSearchParams()
const [customerId, setCustomerId] = useState<string>('')
const [activeTab, setActiveTab] = useState<'ANSWERED' | 'PENDING' | 'CLOSED'>('PENDING')
const getTicket = useGetTickets(activeTab)
const getTicket = useGetTickets(activeTab, customerId)
useEffect(() => {
const urlCustomerId = searchParams.get('user')
if (urlCustomerId) {
setCustomerId(urlCustomerId)
}
}, [searchParams])
return (
<div className='mt-4'>
+3 -3
View File
@@ -2,10 +2,10 @@ import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
import * as api from "../service/TicketServiec";
import { AddMessageTicketType, CreateCategoryType } from "../types/TicketTypes";
export const useGetTickets = (status: string) => {
export const useGetTickets = (status: string, customerId?: string) => {
return useQuery({
queryKey: ["tickets", status],
queryFn: () => api.getTickets(status),
queryKey: ["tickets", status, customerId],
queryFn: () => api.getTickets(status, customerId),
});
};
+6 -2
View File
@@ -1,8 +1,12 @@
import axios from "../../../config/axios";
import { AddMessageTicketType, CreateCategoryType } from "../types/TicketTypes";
export const getTickets = async (status: string) => {
const { data } = await axios.get(`/tickets/admin?status=${status}`);
export const getTickets = async (status: string, customerId?: string) => {
let query = `/tickets/admin?status=${status}`;
if (customerId) {
query += `&userId=${customerId}`;
}
const { data } = await axios.get(query);
return data;
};
+2 -1
View File
@@ -9,6 +9,7 @@ import moment from 'moment-jalaali'
import Pagination from '../../components/Pagination'
import Input from '../../components/Input'
import DatePickerComponent from '../../components/DatePicker'
import { NumberFormat } from '../../config/func'
const TransactionList: FC = () => {
@@ -74,7 +75,7 @@ const TransactionList: FC = () => {
<tr key={item.id}>
<Td text={item.numericId + ''} />
<Td text={item.description} />
<Td text={item.amount} />
<Td text={NumberFormat(+item.amount)} />
<Td text={moment(item.createdAt).format('jYYYY-jMM-jDD')} />
<Td text={''}>
<Detail />