diff --git a/package-lock.json b/package-lock.json index ab40081..2f8549e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -24,7 +24,7 @@ "clsx": "^2.1.1", "iconsax-react": "^0.0.8", "iranianbanklogos": "^3.1.2", - "jalaali-js": "^1.2.7", + "moment-jalaali": "^0.10.1", "react": "^18.3.1", "react-dom": "^18.3.1", "react-hook-form": "^7.52.2", @@ -41,6 +41,7 @@ }, "devDependencies": { "@tanstack/eslint-plugin-query": "^5.51.15", + "@types/moment-jalaali": "^0.7.9", "tailwindcss": "^3.4.7" } }, @@ -4881,6 +4882,16 @@ "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", "license": "MIT" }, + "node_modules/@types/moment-jalaali": { + "version": "0.7.9", + "resolved": "https://registry.npmjs.org/@types/moment-jalaali/-/moment-jalaali-0.7.9.tgz", + "integrity": "sha512-gsDOoAzRnCfQTbfdlUrCvX6R0wIto6CvwfvV2C3j4qJLK+DEiTK8Rl/xlOCBO9C6qeUfX8oyZ2UfjnXJTOvHSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "moment": ">=2.14.0" + } + }, "node_modules/@types/node": { "version": "16.18.104", "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.104.tgz", @@ -13963,6 +13974,39 @@ "mkdirp": "bin/cmd.js" } }, + "node_modules/moment": { + "version": "2.30.1", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz", + "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/moment-jalaali": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/moment-jalaali/-/moment-jalaali-0.10.1.tgz", + "integrity": "sha512-/iwLtt3onvI6wFydUSTj10nFeNkD9sZ0fSY1gmqC2dwt1yGYJun6agI7E7SiBYi8uzGlt3P4KuPYCMLiv43E+g==", + "license": "MIT", + "dependencies": { + "jalaali-js": "^1.1.0", + "moment": "^2.22.2", + "moment-timezone": "^0.5.21", + "rimraf": "^3.0.2" + } + }, + "node_modules/moment-timezone": { + "version": "0.5.45", + "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.45.tgz", + "integrity": "sha512-HIWmqA86KcmCAhnMAN0wuDOARV/525R2+lOLotuGFzn4HO+FH+/645z2wx0Dt3iDv6/p61SIvKnDstISainhLQ==", + "license": "MIT", + "dependencies": { + "moment": "^2.29.4" + }, + "engines": { + "node": "*" + } + }, "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", diff --git a/package.json b/package.json index 33fb4b1..620c775 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ "clsx": "^2.1.1", "iconsax-react": "^0.0.8", "iranianbanklogos": "^3.1.2", - "jalaali-js": "^1.2.7", + "moment-jalaali": "^0.10.1", "react": "^18.3.1", "react-dom": "^18.3.1", "react-hook-form": "^7.52.2", @@ -60,6 +60,7 @@ }, "devDependencies": { "@tanstack/eslint-plugin-query": "^5.51.15", + "@types/moment-jalaali": "^0.7.9", "tailwindcss": "^3.4.7" } } diff --git a/src/components/common/table.tsx b/src/components/common/table.tsx index 9771040..a04a386 100644 --- a/src/components/common/table.tsx +++ b/src/components/common/table.tsx @@ -9,7 +9,7 @@ type Props = { data: any sorting: SortingState, setSorting: React.Dispatch>, - tableStatus?: boolean + tableStatus?: string | number } export const Table: FC = ({ columns, data, setSorting, sorting, tableStatus }) => { @@ -67,7 +67,7 @@ export const Table: FC = ({ columns, data, setSorting, sorting, tableStat ))} - {tableStatus &&
امتیاز من: 65
} + {tableStatus &&
امتیاز من: {tableStatus}
} ); diff --git a/src/components/installation-reports/index.tsx b/src/components/installation-reports/index.tsx index ca94058..3b2f744 100644 --- a/src/components/installation-reports/index.tsx +++ b/src/components/installation-reports/index.tsx @@ -1,6 +1,6 @@ import { installationReportsCol } from "../../utility/reports" import { Table } from "../common/table" -import { useState } from "react" +import { useEffect, useState } from "react" import { SortingState } from "@tanstack/react-table" import { useQuery } from "@tanstack/react-query" import { getRegisterDeviceList } from "../../services/api/register-device" @@ -12,8 +12,12 @@ export const InstallationReports = () => { queryFn: getRegisterDeviceList }) + useEffect(() => { + console.log("data =>", data) + }, [data]) + if (isLoading) return

LODING .....

return ( - +
) } \ No newline at end of file diff --git a/src/services/api/register-device.ts b/src/services/api/register-device.ts index 00fab33..914819a 100644 --- a/src/services/api/register-device.ts +++ b/src/services/api/register-device.ts @@ -1,4 +1,4 @@ import { RegisterDeviceResponse } from "../../types"; import axiosInstance from "../axios"; -export const getRegisterDeviceList = () => axiosInstance.get("/gps/register-device") \ No newline at end of file +export const getRegisterDeviceList = () => axiosInstance.get("/gps/register-device") \ No newline at end of file diff --git a/src/types/index.ts b/src/types/index.ts index 0acdba5..f6b2360 100644 --- a/src/types/index.ts +++ b/src/types/index.ts @@ -177,4 +177,33 @@ export interface RegisterDeviceResponse { updated_at: string, __v: number, id: string +} + +export interface RegisterDeviceData { + status: number, + _id: string, + deviceId: RegisterDeviceData[] | [], + registerDate: string, + userId: string, + created_at: string, + updated_at: string, + __v: number, + id: string +} + + +export interface RegisterDeviceId { + tomanPrice: number, + dollarProfit: number, + profit: number, + status: number, + _id: string, + IMEI: string, + model: string, + score: number, + renewalProfit: number, + created_at: string, + updated_at: string, + __v: number, + id: string } \ No newline at end of file diff --git a/src/utility/getDate.tsx b/src/utility/getDate.tsx index f8b1ea4..19d67c7 100644 --- a/src/utility/getDate.tsx +++ b/src/utility/getDate.tsx @@ -1,7 +1,10 @@ -const jalaali = require('jalaali-js'); +import moment from "moment-jalaali"; export const getJalaaliDate = () => { - const today = new Date(); - const jalaaliDate = jalaali.toJalaali(today.getFullYear(), today.getMonth() + 1, today.getDate()); - return `${jalaaliDate.jy}/${String(jalaaliDate.jm).padStart(2, '0')}/${String(jalaaliDate.jd).padStart(2, '0')}`; + const date: Date = new Date() + return moment(date).format('jYYYY/jM/jD') +} + +export const formatDateToPersian = (date: string | Date) => { + return moment(date).format("jYYYY/jM/jD HH:mm") } diff --git a/src/utility/reports.tsx b/src/utility/reports.tsx index d5c5daf..d4047b7 100644 --- a/src/utility/reports.tsx +++ b/src/utility/reports.tsx @@ -1,18 +1,21 @@ import { ShieldCross, ShieldTick } from "iconsax-react"; import { createColumns } from "../components/common/create-col"; import { colConfig } from "../types"; +import { formatDateToPersian } from "./getDate"; const columnConfigs: colConfig[] | [] = [ { accessor: "status", header: "وضعیت", - cellRenderer: (info) => info.getValue() ? : + cellRenderer: (info) => info.getValue() === 1 ? : }, - { accessor: "dollar", header: "دلار" }, - { accessor: "score", header: "امتیاز" }, - { accessor: "device_model", header: "مدل دستگاه" }, - { accessor: "imei_number", header: "شماره IMEI" }, - { accessor: "install_date", header: "تاریخ نصب", cellRenderer: (info) => info.getValue() &&

{info.getValue()}

}, - { accessor: "install_iemi", header: "تاریخ ثبت IMEI", cellRenderer: (info) => info.getValue() &&

{info.getValue()}

}, + { + accessor: "deviceId.dollarProfit", header: "دلار" + }, + { accessor: "deviceId.score", header: "امتیاز" }, + { accessor: "deviceId.model", header: "مدل دستگاه" }, + { accessor: "deviceId.IMEI", header: "شماره IMEI" }, + { accessor: "deviceId.created_at", header: "تاریخ نصب", cellRenderer: (info) => info.getValue() &&

{formatDateToPersian(info.getValue())}

}, + { accessor: "registerDate", header: "تاریخ ثبت IMEI", cellRenderer: (info) => info.getValue() &&

{formatDateToPersian(info.getValue())}

}, ]; export const installationReportsCol = createColumns(columnConfigs); \ No newline at end of file