From 20ed3009b39809a41154343d947dca34db539363 Mon Sep 17 00:00:00 2001 From: ultrageese Date: Sat, 23 May 2026 20:02:30 +1000 Subject: [PATCH] =?UTF-8?q?=D0=93=D0=BE=D1=81=D0=BF=D0=BE=D0=B4=D0=B8=20?= =?UTF-8?q?=D0=98=D0=B8=D1=81=D1=83=D1=81=D0=B5=20=D0=A5=D1=80=D0=B8=D1=81?= =?UTF-8?q?=D1=82=D0=B5=20=D0=B4=D0=B0=D0=B9=20=D0=BC=D0=BD=D0=B5=20=D1=81?= =?UTF-8?q?=D0=B8=D0=BB=20=D0=B4=D0=BE=D0=BF=D0=B8=D1=81=D0=B0=D1=82=D1=8C?= =?UTF-8?q?=20=D0=BA=D1=83=D1=80=D1=81=D0=BE=D0=B2=D1=83=D1=8E=20=D0=B4?= =?UTF-8?q?=D0=BE=20=D0=B7=D0=B0=D1=89=D0=B8=D1=82=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- code/src/app.rs | 45 ++++++++++++++++++++++++++++++++++++++------- 1 file changed, 38 insertions(+), 7 deletions(-) diff --git a/code/src/app.rs b/code/src/app.rs index 855d437..81f2736 100644 --- a/code/src/app.rs +++ b/code/src/app.rs @@ -59,6 +59,10 @@ impl Default for App{ Tab{ tab_type: TabTypes::Product, title: "Продукция".to_owned() + }, + Tab{ + tab_type: TabTypes::Settings, + title: "Настройки".to_owned(), } ]); @@ -80,6 +84,13 @@ impl eframe::App for App{ .style(Style::from_egui(ui.style().as_ref())) .show_inside(ui, &mut self.main_viewer); } + fn update(&mut self, ctx: &egui::Context, frame: &mut eframe::Frame) { + if (self.main_viewer.is_dark_theme){ + ctx.set_visuals(egui::Visuals::dark()); + }else{ + ctx.set_visuals(egui::Visuals::light()); + } + } } struct MainTabViewer { @@ -88,8 +99,9 @@ struct MainTabViewer { equipment: Arc>>>, db_oper: DBOperator, worker_tabs: WorkerTabViewer, - worker_tree: egui_dock::DockState, + worker_tree: egui_dock::DockState, rt: tokio::runtime::Runtime, + is_dark_theme: bool, } impl Default for MainTabViewer{ @@ -115,7 +127,8 @@ impl Default for MainTabViewer{ tab_type:TabTypes::WorkerPosition, } ]), - rt + rt, + is_dark_theme: true } } } @@ -149,13 +162,17 @@ impl MainTabViewer{ .default_open(false) .show(ui, |ui|{ ui.horizontal(|ui|{ - ui.monospace("Инвентарный номер: "); + ui.monospace("Инвентарный номер:"); ui.label(&eq.inv_number); }); ui.horizontal(|ui|{ - ui.monospace("Ответственный: "); + ui.monospace("Ответственный:"); ui.label(&eq.worker.full_name); }); + ui.horizontal(|ui|{ + ui.monospace("Дата последнего техобслуживания:"); + ui.label(&eq.maintenance_date.date_naive().to_string()); + }); }); }); @@ -181,6 +198,11 @@ impl MainTabViewer{ fn show_salary(&mut self, ui: &mut egui::Ui){ } + fn show_settings(&mut self, ui: &mut egui::Ui){ + ui.horizontal(|ui|{ + ui.checkbox(&mut self.is_dark_theme, "Тёмная тема"); + }); + } } impl egui_dock::TabViewer for MainTabViewer{ @@ -203,6 +225,9 @@ impl egui_dock::TabViewer for MainTabViewer{ TabTypes::Material => { &self.show_material(ui); }, + TabTypes::Settings =>{ + &self.show_settings(ui); + }, _ =>{ ui.label("This is not"); } @@ -222,6 +247,7 @@ impl egui_dock::TabViewer for MainTabViewer{ struct WorkerTabViewer{ workers: Arc>>>, positions: Arc>>>, + add_modal: egui::Modal, } @@ -229,7 +255,9 @@ impl WorkerTabViewer{ fn show_worker(&mut self, ui: &mut egui::Ui){ ui.horizontal(|ui|{ if ui.button("Добавить").clicked() { - + &self.add_modal.show(ui.ctx(), |ui|{ + ui.label("goida"); + }); }; if ui.button("Уволить").clicked() { @@ -261,13 +289,15 @@ impl WorkerTabViewer{ } } fn show_position(&mut self, ui: &mut egui::Ui){ - for eq in self.positions.read().clone().unwrap().iter(){ ui.push_id(&eq.name, |ui|{ egui::CollapsingHeader::new(&eq.name) .default_open(false) .show(ui, |ui|{ - ui.label(eq.wage.to_string()); + ui.horizontal(|ui|{ + ui.monospace("Оклад:"); + ui.label(format!("${}",eq.wage)); + }); }) }); @@ -303,6 +333,7 @@ impl Default for WorkerTabViewer{ let db_oper = rt.block_on(async{DBOperator::new().await}); Self { workers: Arc::new(RwLock::new(Option::Some(rt.block_on(async{db_oper.get_workers().await.unwrap()})))) , positions: Arc::new(RwLock::new(Option::Some(rt.block_on(async{db_oper.get_position().await.unwrap()})))), + add_modal: egui::Modal::new(egui::Id::new("Добавление")), } } } \ No newline at end of file