feat: search deal by id and deal id column
This commit is contained in:
@@ -6,6 +6,11 @@ import { ActionIcon, Image } from "@mantine/core";
|
|||||||
const useDealsTableColumns = () => {
|
const useDealsTableColumns = () => {
|
||||||
return useMemo<MRT_ColumnDef<DealSummary>[]>(
|
return useMemo<MRT_ColumnDef<DealSummary>[]>(
|
||||||
() => [
|
() => [
|
||||||
|
{
|
||||||
|
accessorKey: "id",
|
||||||
|
header: "Номер",
|
||||||
|
size: 20,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
header: "Маркетплейс",
|
header: "Маркетплейс",
|
||||||
size: 10,
|
size: 10,
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import { BaseMarketplaceSchema, ClientSchema } from "../../../client";
|
|||||||
import { DealStatusType } from "../../../shared/enums/DealStatus.ts";
|
import { DealStatusType } from "../../../shared/enums/DealStatus.ts";
|
||||||
|
|
||||||
type State = {
|
type State = {
|
||||||
|
id: number | null;
|
||||||
marketplace: BaseMarketplaceSchema | null;
|
marketplace: BaseMarketplaceSchema | null;
|
||||||
dealStatus: DealStatusType | null;
|
dealStatus: DealStatusType | null;
|
||||||
client: ClientSchema | null;
|
client: ClientSchema | null;
|
||||||
@@ -13,6 +14,7 @@ const useDealsPageState = () => {
|
|||||||
const { objects } = useDealSummariesFull();
|
const { objects } = useDealSummariesFull();
|
||||||
const form = useForm<State>({
|
const form = useForm<State>({
|
||||||
initialValues: {
|
initialValues: {
|
||||||
|
id: null,
|
||||||
marketplace: null,
|
marketplace: null,
|
||||||
dealStatus: null,
|
dealStatus: null,
|
||||||
client: null,
|
client: null,
|
||||||
@@ -21,6 +23,11 @@ const useDealsPageState = () => {
|
|||||||
const [data, setData] = useState(objects);
|
const [data, setData] = useState(objects);
|
||||||
const applyFilters = () => {
|
const applyFilters = () => {
|
||||||
let result = objects;
|
let result = objects;
|
||||||
|
if (form.values.id) {
|
||||||
|
result = result.filter(
|
||||||
|
obj => obj.id === form.values.id
|
||||||
|
)
|
||||||
|
}
|
||||||
if (form.values.marketplace) {
|
if (form.values.marketplace) {
|
||||||
result = result.filter(
|
result = result.filter(
|
||||||
obj => obj.baseMarketplace?.key === form.values.marketplace?.key
|
obj => obj.baseMarketplace?.key === form.values.marketplace?.key
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ import DealEditDrawer from "../drawers/DealEditDrawer/DealEditDrawer.tsx";
|
|||||||
import { DealPageContextProvider } from "../contexts/DealPageContext.tsx";
|
import { DealPageContextProvider } from "../contexts/DealPageContext.tsx";
|
||||||
import { modals } from "@mantine/modals";
|
import { modals } from "@mantine/modals";
|
||||||
import { DealService, DealSummaryReorderRequest } from "../../../client";
|
import { DealService, DealSummaryReorderRequest } from "../../../client";
|
||||||
import { ActionIcon, Flex, rem, Text } from "@mantine/core";
|
import { ActionIcon, Flex, NumberInput, rem, Text } from "@mantine/core";
|
||||||
import classNames from "classnames";
|
import classNames from "classnames";
|
||||||
import { notifications } from "../../../shared/lib/notifications.ts";
|
import { notifications } from "../../../shared/lib/notifications.ts";
|
||||||
import { IconMenu2, IconMenuDeep } from "@tabler/icons-react";
|
import { IconMenu2, IconMenuDeep } from "@tabler/icons-react";
|
||||||
@@ -345,6 +345,12 @@ export const LeadsPage: FC = () => {
|
|||||||
? "flex"
|
? "flex"
|
||||||
: "none",
|
: "none",
|
||||||
}}>
|
}}>
|
||||||
|
<NumberInput
|
||||||
|
min={1}
|
||||||
|
step={1}
|
||||||
|
placeholder={"Введите номер"}
|
||||||
|
{...form.getInputProps("id")}
|
||||||
|
/>
|
||||||
<DealStatusSelect
|
<DealStatusSelect
|
||||||
onClear={() =>
|
onClear={() =>
|
||||||
form.setFieldValue("dealStatus", null)
|
form.setFieldValue("dealStatus", null)
|
||||||
|
|||||||
Reference in New Issue
Block a user