Господи Иисусе Христе дай мне сил дописать курсовую до защиты

master
Алексей Алексей 2026-05-23 20:02:30 +10:00
parent b44669e3ac
commit 20ed3009b3
1 changed files with 38 additions and 7 deletions

View File

@ -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<RwLock<Option<Vec<Equipment>>>>,
db_oper: DBOperator,
worker_tabs: WorkerTabViewer,
worker_tree: egui_dock::DockState<Tab>,
worker_tree: egui_dock::DockState<Tab>,
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<RwLock<Option<Vec<Worker>>>>,
positions: Arc<RwLock<Option<Vec<Position>>>>,
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("Добавление")),
}
}
}