вухуху

master
Алексей Алексей 2026-06-16 08:34:28 +10:00
parent cd4c66e5c6
commit 36561fc1bb
5 changed files with 227 additions and 191 deletions

349
code/Cargo.lock generated

File diff suppressed because it is too large Load Diff

View File

@ -164,9 +164,9 @@ impl eframe::App for App<'_> {
} }
struct MainTabViewer { struct MainTabViewer {
positions: Arc<RwLock<Option<Vec<Position>>>>,
workers: Arc<RwLock<Vec<Worker>>>, workers: Arc<RwLock<Vec<Worker>>>,
equipment: Arc<RwLock<Option<Vec<Equipment>>>>, equipment: Arc<RwLock<Option<Vec<Equipment>>>>,
db_oper: DBOperator, db_oper: DBOperator,
worker_tabs: WorkerTabViewer, worker_tabs: WorkerTabViewer,
worker_tree: egui_dock::DockState<Tab>, worker_tree: egui_dock::DockState<Tab>,
@ -183,9 +183,6 @@ impl Default for MainTabViewer {
let rt = tokio::runtime::Runtime::new().unwrap(); let rt = tokio::runtime::Runtime::new().unwrap();
let db_oper = rt.block_on(async { DBOperator::new().await }); let db_oper = rt.block_on(async { DBOperator::new().await });
Self { Self {
positions: Arc::new(RwLock::new(Option::Some(
rt.block_on(async { db_oper.get_position().await.unwrap() }),
))),
workers: Arc::new(RwLock::new( workers: Arc::new(RwLock::new(
rt.block_on(async { db_oper.get_workers().await.unwrap() }), rt.block_on(async { db_oper.get_workers().await.unwrap() }),
)), )),
@ -317,7 +314,7 @@ impl MainTabViewer {
.insert("name".into(), eq.name.clone()); .insert("name".into(), eq.name.clone());
self.equipment_modal_state self.equipment_modal_state
.data .data
.insert("inv_numver".into(), eq.inv_number.clone()); .insert("inv_number".into(), eq.inv_number.clone());
self.equipment_modal_state self.equipment_modal_state
.data .data
.insert("worker_id".into(), eq.worker.id.to_string()); .insert("worker_id".into(), eq.worker.id.to_string());
@ -335,10 +332,14 @@ impl MainTabViewer {
.insert("name".into(), eq.name.clone()); .insert("name".into(), eq.name.clone());
self.equipment_modal_state self.equipment_modal_state
.data .data
.insert("inv_numver".into(), eq.inv_number.clone()); .insert("inv_number".into(), eq.inv_number.clone());
self.equipment_modal_state self.equipment_modal_state
.data .data
.insert("worker_id".into(), eq.worker.id.to_string()); .insert("worker_id".into(), eq.worker.id.to_string());
self.equipment_modal_state.data.insert(
"maintenance_date".into(),
eq.maintenance_date.date_naive().to_string(),
);
} }
}); });
} }
@ -365,19 +366,37 @@ impl MainTabViewer {
ui.end_row(); ui.end_row();
ui.label("Ответственный"); ui.label("Ответственный");
egui::ComboBox::new("process_equipment_combobox", "").show_ui(ui, |ui| { let workname = self
for wkrk in self.workers.read().clone().iter() { .workers
ui.selectable_value( .read()
&mut self .clone()
.iter()
.find(|w| {
w.id.to_string()
== self
.equipment_modal_state .equipment_modal_state
.data .data
.get_mut("worker_id") .get("worker_id")
.unwrap(), .unwrap()
&mut wkrk.id.to_string(), .clone()
wkrk.full_name.clone(), })
); .unwrap()
} .full_name
}); .clone();
egui::ComboBox::new("process_equipment_combobox", "")
.selected_text(workname)
.show_ui(ui, |ui| {
for wkrk in self.workers.read().clone().iter() {
ui.selectable_value(
self.equipment_modal_state
.data
.get_mut("worker_id")
.unwrap(),
wkrk.id.to_string(),
&wkrk.full_name,
);
}
});
ui.end_row(); ui.end_row();
ui.label("Дата последнего\nтехобслуживания"); ui.label("Дата последнего\nтехобслуживания");
@ -388,6 +407,13 @@ impl MainTabViewer {
.unwrap(), .unwrap(),
); );
}); });
} else {
ui.label("Вы уверены, что хотите удалить:");
ui.strong(format!(
"{} | {}?",
self.equipment_modal_state.data.get("name").unwrap(),
self.equipment_modal_state.data.get("inv_number").unwrap()
));
} }
}); });
} }
@ -406,9 +432,7 @@ impl MainTabViewer {
.id(id) .id(id)
.show_inside(ui, &mut self.material_tabs); .show_inside(ui, &mut self.material_tabs);
} }
fn show_salary(&mut self, ui: &mut egui::Ui) { fn show_salary(&mut self, ui: &mut egui::Ui) {}
ui.label("Помогите");
}
fn show_settings(&mut self, ui: &mut egui::Ui) { fn show_settings(&mut self, ui: &mut egui::Ui) {
ui.checkbox(&mut self.is_dark_theme, "Тёмная тема"); ui.checkbox(&mut self.is_dark_theme, "Тёмная тема");

View File

@ -7,6 +7,7 @@ mod payment_tab;
mod recipe_tab; mod recipe_tab;
mod tab; mod tab;
mod worker_tab; mod worker_tab;
mod worker_database;
// mod schema; // mod schema;
fn main() { fn main() {
dotenvy::dotenv().ok(); dotenvy::dotenv().ok();

View File

@ -2,7 +2,9 @@ use crate::{
database::DBOperator, database::DBOperator,
tab::{TABS_CAN_BE_WINDOWS, Tab, TabTypes}, tab::{TABS_CAN_BE_WINDOWS, Tab, TabTypes},
}; };
/*
* Я не придумал, зачем я сделал данный файл. Мой глупый разум решил, что он нужен.
*/
pub struct PaymentTabViewer { pub struct PaymentTabViewer {
db_oper: DBOperator, db_oper: DBOperator,
is_admin: bool, is_admin: bool,

View File