Genel düzenlemeler
This commit is contained in:
parent
260784d016
commit
f17d1da1bd
6 changed files with 4 additions and 189 deletions
|
|
@ -12,7 +12,7 @@ export const mockCalendarEvents: MaintenanceCalendarEvent[] = [
|
|||
date: new Date("2024-02-12"),
|
||||
startTime: "09:00",
|
||||
endTime: "11:00",
|
||||
status: "scheduled",
|
||||
status: WorkOrderStatusEnum.Created,
|
||||
priority: PriorityEnum.High,
|
||||
assignedTo: "Mehmet Kaya",
|
||||
workCenterCode: "CNC-001",
|
||||
|
|
@ -25,7 +25,7 @@ export const mockCalendarEvents: MaintenanceCalendarEvent[] = [
|
|||
date: new Date("2024-02-15"),
|
||||
startTime: "08:00",
|
||||
endTime: "12:00",
|
||||
status: "scheduled",
|
||||
status: WorkOrderStatusEnum.Created,
|
||||
priority: PriorityEnum.Urgent,
|
||||
assignedTo: "Ali Demir",
|
||||
workCenterCode: "COMP-001",
|
||||
|
|
@ -64,7 +64,7 @@ export const mockCalendarEvents: MaintenanceCalendarEvent[] = [
|
|||
date: new Date("2024-02-14"),
|
||||
startTime: "13:00",
|
||||
endTime: "15:00",
|
||||
status: "scheduled",
|
||||
status: WorkOrderStatusEnum.Created,
|
||||
priority: PriorityEnum.Normal,
|
||||
assignedTo: "Sema Korkmaz",
|
||||
workCenterCode: "HYD-001",
|
||||
|
|
@ -77,7 +77,7 @@ export const mockCalendarEvents: MaintenanceCalendarEvent[] = [
|
|||
date: new Date("2024-02-16"),
|
||||
startTime: "16:00",
|
||||
endTime: "18:00",
|
||||
status: "scheduled",
|
||||
status: WorkOrderStatusEnum.Created,
|
||||
priority: PriorityEnum.Low,
|
||||
assignedTo: "Hasan Çelik",
|
||||
workCenterCode: "ELEC-001",
|
||||
|
|
|
|||
|
|
@ -1,36 +0,0 @@
|
|||
import Card from '@/components/ui/Card'
|
||||
import GrowShrinkTag from '@/components/shared/GrowShrinkTag'
|
||||
import { showDbDateAsIs } from '@/utils/dateUtils'
|
||||
|
||||
const Widget = ({
|
||||
label,
|
||||
datavalue,
|
||||
datagrowShrink,
|
||||
valuePrefix,
|
||||
date,
|
||||
}: {
|
||||
label: string
|
||||
datavalue: number
|
||||
datagrowShrink: number
|
||||
valuePrefix: string
|
||||
date: string
|
||||
}) => {
|
||||
return (
|
||||
<Card>
|
||||
<h6 className="font-semibold mb-4 text-sm">{label}</h6>
|
||||
<div className="flex justify-between items-center">
|
||||
<div>
|
||||
<h3 className="font-bold">
|
||||
{datavalue} {valuePrefix}
|
||||
</h3>
|
||||
<p>
|
||||
<span className="font-semibold">{showDbDateAsIs(date)}</span>
|
||||
</p>
|
||||
</div>
|
||||
<GrowShrinkTag value={datagrowShrink} suffix="%" />
|
||||
</div>
|
||||
</Card>
|
||||
)
|
||||
}
|
||||
|
||||
export default Widget
|
||||
|
|
@ -1,28 +0,0 @@
|
|||
import { Card } from '@/components/ui'
|
||||
import Chart from '../list/Chart'
|
||||
|
||||
const WidgetBarChart = ({
|
||||
chartKey,
|
||||
startDateFormat,
|
||||
endDateFormat,
|
||||
}: {
|
||||
chartKey: string
|
||||
startDateFormat: string
|
||||
endDateFormat: string
|
||||
}) => {
|
||||
return (
|
||||
<Card className={'col-span-2'}>
|
||||
<div className="flex items-center justify-between">
|
||||
<h4>Top Selling</h4>
|
||||
</div>
|
||||
|
||||
<Chart
|
||||
key={`Chart-${chartKey}`}
|
||||
listFormCode="Chart-0001"
|
||||
filter={`{"startDate":"${startDateFormat}", "endDate":"${endDateFormat}"}`}
|
||||
/>
|
||||
</Card>
|
||||
)
|
||||
}
|
||||
|
||||
export default WidgetBarChart
|
||||
|
|
@ -1,45 +0,0 @@
|
|||
import DatePickerRange from '@/components/ui/DatePicker/DatePickerRange'
|
||||
import Button from '@/components/ui/Button'
|
||||
import { FaFilter } from 'react-icons/fa';
|
||||
import { useLocalization } from '@/utils/hooks/useLocalization'
|
||||
import dayjs from 'dayjs'
|
||||
|
||||
const WidgetFilter = ({
|
||||
onFilter,
|
||||
handleDateChange,
|
||||
startDate,
|
||||
endDate
|
||||
}: {
|
||||
onFilter(): void,
|
||||
handleDateChange(value: [Date | null, Date | null]): void,
|
||||
startDate: number,
|
||||
endDate: number
|
||||
}) => {
|
||||
const { translate } = useLocalization()
|
||||
const dateFormat = 'MMM DD, YYYY'
|
||||
|
||||
return (
|
||||
<div className="lg:flex items-center justify-between mb-4 gap-3">
|
||||
<div className="mb-4 lg:mb-0">
|
||||
<h3>{translate('::Welcome')}</h3>
|
||||
</div>
|
||||
<div className="flex flex-col lg:flex-row lg:items-center gap-3">
|
||||
<DatePickerRange
|
||||
value={[
|
||||
dayjs(startDate * 1000).toDate(),
|
||||
dayjs(endDate * 1000).toDate()
|
||||
]}
|
||||
inputFormat={dateFormat}
|
||||
size="sm"
|
||||
style={{ width: '100%' }}
|
||||
onChange={handleDateChange}
|
||||
/>
|
||||
<Button size="sm" icon={<FaFilter />} onClick={onFilter}>
|
||||
Filter
|
||||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
||||
export default WidgetFilter
|
||||
|
|
@ -1,39 +0,0 @@
|
|||
import { Card, Progress } from '@/components/ui'
|
||||
|
||||
const WidgetProgress = ({ percent }: { percent: number }) => {
|
||||
const ProgressInfo = ({ precent }: { precent?: string }) => {
|
||||
return (
|
||||
<div>
|
||||
<h3 className="font-bold">{precent}%</h3>
|
||||
<p className="text-center">Average</p>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
||||
return (
|
||||
<Card>
|
||||
<h4>Performance</h4>
|
||||
<div className="mt-10">
|
||||
<Progress
|
||||
variant="circle"
|
||||
percent={percent}
|
||||
showInfo={true}
|
||||
size="sm"
|
||||
width={200}
|
||||
className="flex justify-center"
|
||||
strokeWidth={4}
|
||||
customInfo={<ProgressInfo precent={percent.toFixed(1)} />}
|
||||
/>
|
||||
</div>
|
||||
<div className="text-center mt-10">
|
||||
<p className="font-semibold">
|
||||
"The customer's performance indicates the accuracy and efficiency of orders based on the
|
||||
average measured meters. It provides insight into how well the requested order lengths
|
||||
align with the actual measurements."
|
||||
</p>
|
||||
</div>
|
||||
</Card>
|
||||
)
|
||||
}
|
||||
|
||||
export default WidgetProgress
|
||||
|
|
@ -1,37 +0,0 @@
|
|||
import { Loading } from '@/components/shared'
|
||||
import Widget from './Widget'
|
||||
import { WidgetsData } from '@/proxy/dashboard/models'
|
||||
|
||||
const Widgets = ({
|
||||
loading,
|
||||
widgetData,
|
||||
}: {
|
||||
loading: boolean
|
||||
widgetData: WidgetsData[] | undefined
|
||||
}) => {
|
||||
return (
|
||||
<Loading loading={loading}>
|
||||
<div className="grid grid-cols-1 lg:grid-cols-3 lg:gap-4 gap-3">
|
||||
{widgetData?.map((item, index) => {
|
||||
const formattedValue = new Intl.NumberFormat(undefined, {
|
||||
minimumFractionDigits: 1,
|
||||
maximumFractionDigits: 1,
|
||||
}).format(item.datavalue)
|
||||
|
||||
return (
|
||||
<Widget
|
||||
key={index}
|
||||
datagrowShrink={item.datagrowShrink}
|
||||
datavalue={formattedValue}
|
||||
label={item.label}
|
||||
valuePrefix={item.valuePrefix}
|
||||
date={item.date}
|
||||
/>
|
||||
)
|
||||
})}
|
||||
</div>
|
||||
</Loading>
|
||||
)
|
||||
}
|
||||
|
||||
export default Widgets
|
||||
Loading…
Reference in a new issue