- {/* افزودن نوبت → صفحهٔ کامل */}
- {!isRepresentation && (
-
- )}
+ {/* سمت راست: تاریخ + سرویس + سوییچ نما (مطابق طرح) */}
+
-
setFilters(f => ({ ...f, staffUuid: v }))} />
+ setFilters(f => ({ ...f, itemUuid: v }))}
+ />
+
+
+
+
+ {/* سمت چپ: فیلتر + افزودن نوبت */}
-
-
- {/* انتخاب پزشک (admin / clinic) */}
- {!isDoctor && (
-
- ({ value: d.uuid, label: d.name }))}
- value={selectedDoctorUuid || null}
- onChange={(v) => setSelectedDoctorUuid(v ? String(v) : '')}
- placeholder="انتخاب پزشک..."
- isClearable
- height={36}
- />
-
+ {!isRepresentation && (
+
)}
-
-
-
-
{/* کارت اصلی — تب دکترها (هدر) + محتوا */}
@@ -399,7 +408,7 @@ export default function AppointmentsPage() {
borderRadius: 'var(--r)', overflow: 'hidden',
}}>
{showDoctorTabs && (
-
{viewMode === 'table' ? (
@@ -458,16 +467,15 @@ export default function AppointmentsPage() {
);
}
-/** فیلتر پرسنل نوار ابزار — ردیفهای بارگذاریشدهٔ روز را بر اساس پرسنل فیلتر میکند. */
-function StaffFilterSelect({ value, onChange }: { value: string; onChange: (v: string) => void }) {
- const staffQ = useQuery
>({
- queryKey: ['staff-list'], queryFn: () => api.get('/api/v1/staff'),
- });
+/** فیلتر سرویس نوار ابزار — ردیفهای بارگذاریشدهٔ روز را بر اساس سرویس فیلتر میکند. */
+function ServiceFilterSelect({ value, options, onChange }: {
+ value: string; options: { uuid: string; name: string }[]; onChange: (v: string) => void;
+}) {
return (
-