Спаси и сохрани
parent
14c9038df2
commit
07a8d64167
|
|
@ -7,7 +7,7 @@ use crate::{
|
||||||
Worker,
|
Worker,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
use egui::{TextBuffer, mutex::RwLock};
|
use egui::{TextBuffer, Vec2, mutex::RwLock};
|
||||||
use egui_dock::{DockArea, Style, TabViewer};
|
use egui_dock::{DockArea, Style, TabViewer};
|
||||||
use egui_extras::{Column, TableBuilder};
|
use egui_extras::{Column, TableBuilder};
|
||||||
use sqlx::types::BigDecimal;
|
use sqlx::types::BigDecimal;
|
||||||
|
|
@ -171,9 +171,22 @@ impl Default for MainTabViewer {
|
||||||
impl MainTabViewer {
|
impl MainTabViewer {
|
||||||
fn show_equipment(&mut self, ui: &mut egui::Ui) {
|
fn show_equipment(&mut self, ui: &mut egui::Ui) {
|
||||||
ui.horizontal(|ui| {
|
ui.horizontal(|ui| {
|
||||||
if ui.button("Добавить").clicked() {}
|
if ui.button("Добавить").clicked() {
|
||||||
if ui.button("Редактировать").clicked() {}
|
self.equipment_modal_state.is_open = true;
|
||||||
if ui.button("Удалить").clicked() {}
|
self.equipment_modal_state.status = ModalStatus::Add;
|
||||||
|
self.equipment_modal_state
|
||||||
|
.data
|
||||||
|
.insert("id".into(), "0".into());
|
||||||
|
self.equipment_modal_state
|
||||||
|
.data
|
||||||
|
.insert("name".into(), "".into());
|
||||||
|
self.equipment_modal_state
|
||||||
|
.data
|
||||||
|
.insert("inv_numver".into(), "".into());
|
||||||
|
self.equipment_modal_state
|
||||||
|
.data
|
||||||
|
.insert("worker_id".into(), "0".into());
|
||||||
|
}
|
||||||
});
|
});
|
||||||
let mut table = TableBuilder::new(ui)
|
let mut table = TableBuilder::new(ui)
|
||||||
.striped(true)
|
.striped(true)
|
||||||
|
|
@ -186,9 +199,6 @@ impl MainTabViewer {
|
||||||
.column(Column::auto())
|
.column(Column::auto())
|
||||||
.sense(egui::Sense::click())
|
.sense(egui::Sense::click())
|
||||||
.header(30.0, |mut header| {
|
.header(30.0, |mut header| {
|
||||||
header.col(|ui| {
|
|
||||||
ui.heading("ID");
|
|
||||||
});
|
|
||||||
header.col(|ui| {
|
header.col(|ui| {
|
||||||
ui.heading("Название");
|
ui.heading("Название");
|
||||||
});
|
});
|
||||||
|
|
@ -199,15 +209,13 @@ impl MainTabViewer {
|
||||||
ui.heading("Ответственный");
|
ui.heading("Ответственный");
|
||||||
});
|
});
|
||||||
header.col(|ui| {
|
header.col(|ui| {
|
||||||
ui.heading("Дата последнего\nя техобслуживания");
|
ui.heading("Дата последнего\nтехобслуживания");
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
.body(|mut body| {
|
.body(|mut body| {
|
||||||
|
body.ui_mut().style_mut().interaction.selectable_labels = false;
|
||||||
for eq in self.equipment.read().clone().unwrap().iter() {
|
for eq in self.equipment.read().clone().unwrap().iter() {
|
||||||
body.row(20.0, |mut row| {
|
body.row(20.0, |mut row| {
|
||||||
row.col(|ui| {
|
|
||||||
ui.label(eq.id.to_string());
|
|
||||||
});
|
|
||||||
row.col(|ui| {
|
row.col(|ui| {
|
||||||
ui.label(&eq.name);
|
ui.label(&eq.name);
|
||||||
});
|
});
|
||||||
|
|
@ -220,12 +228,64 @@ impl MainTabViewer {
|
||||||
row.col(|ui| {
|
row.col(|ui| {
|
||||||
ui.label(eq.maintenance_date.date_naive().to_string());
|
ui.label(eq.maintenance_date.date_naive().to_string());
|
||||||
});
|
});
|
||||||
|
row.col(|ui| {
|
||||||
|
if ui.button("Удалить").clicked() {
|
||||||
|
println!("WOr!k");
|
||||||
|
}
|
||||||
|
});
|
||||||
if row.response().double_clicked() {
|
if row.response().double_clicked() {
|
||||||
println!("I love Paris!");
|
self.equipment_modal_state.is_open = true;
|
||||||
|
self.equipment_modal_state.status = ModalStatus::Edit;
|
||||||
|
self.equipment_modal_state
|
||||||
|
.data
|
||||||
|
.insert("id".into(), eq.id.to_string());
|
||||||
|
self.equipment_modal_state
|
||||||
|
.data
|
||||||
|
.insert("name".into(), eq.name.clone());
|
||||||
|
self.equipment_modal_state
|
||||||
|
.data
|
||||||
|
.insert("inv_numver".into(), eq.inv_number.clone());
|
||||||
|
self.equipment_modal_state
|
||||||
|
.data
|
||||||
|
.insert("worker_id".into(), eq.worker.id.to_string());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
if self.equipment_modal_state.is_open {
|
||||||
|
egui::Modal::new(egui::Id::new("process_equipment_modal")).show(ui.ctx(), |ui| {
|
||||||
|
if ui.button("Закрыть").clicked() {
|
||||||
|
self.equipment_modal_state.is_open = false;
|
||||||
|
}
|
||||||
|
egui::Grid::new("process_equipment_grid").show(ui, |ui| {
|
||||||
|
ui.label("Название");
|
||||||
|
let mut name = self.equipment_modal_state.data.get_mut("name").unwrap();
|
||||||
|
ui.add_sized(Vec2::new(200.0, 20.0), egui::TextEdit::singleline(name));
|
||||||
|
ui.end_row();
|
||||||
|
|
||||||
|
ui.label("Инв. номер");
|
||||||
|
let mut inv_num = self
|
||||||
|
.equipment_modal_state
|
||||||
|
.data
|
||||||
|
.get_mut("inv_number")
|
||||||
|
.unwrap();
|
||||||
|
ui.text_edit_singleline(inv_num);
|
||||||
|
ui.end_row();
|
||||||
|
|
||||||
|
ui.label("Ответственный");
|
||||||
|
// egui::ComboBox::new("process_equipment_combobox");
|
||||||
|
ui.end_row();
|
||||||
|
|
||||||
|
ui.label("Дата последнего\nтехобслуживания");
|
||||||
|
let mut maintenance = self
|
||||||
|
.equipment_modal_state
|
||||||
|
.data
|
||||||
|
.get_mut("maintenance_date")
|
||||||
|
.unwrap();
|
||||||
|
ui.text_edit_singleline(maintenance);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn show_worker(&mut self, ui: &mut egui::Ui) {
|
fn show_worker(&mut self, ui: &mut egui::Ui) {
|
||||||
|
|
|
||||||
|
|
@ -1,21 +1,22 @@
|
||||||
#![cfg_attr(not(debug_assertions), windows_subsystem = "windows")]
|
#![cfg_attr(not(debug_assertions), windows_subsystem = "windows")]
|
||||||
|
|
||||||
|
|
||||||
mod app;
|
mod app;
|
||||||
mod models;
|
|
||||||
mod database;
|
mod database;
|
||||||
|
mod models;
|
||||||
// mod schema;
|
// mod schema;
|
||||||
fn main()
|
fn main() {
|
||||||
{
|
dotenvy::dotenv().ok();
|
||||||
dotenvy::dotenv().ok();
|
|
||||||
database::estabilish_connection();
|
database::estabilish_connection();
|
||||||
let native_opts = eframe::NativeOptions {
|
let native_opts = eframe::NativeOptions {
|
||||||
viewport: egui::ViewportBuilder::default()
|
viewport: egui::ViewportBuilder::default()
|
||||||
.with_inner_size([400.0,300.0])
|
.with_inner_size([700.0, 300.0])
|
||||||
.with_min_inner_size([300.0,200.0]),
|
.with_min_inner_size([650.0, 200.0]),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
};
|
};
|
||||||
|
|
||||||
eframe::run_native("BCS", native_opts, Box::new(|cc| Ok(Box::new(app::App::new(cc)))),);
|
eframe::run_native(
|
||||||
|
"BCS",
|
||||||
}
|
native_opts,
|
||||||
|
Box::new(|cc| Ok(Box::new(app::App::new(cc)))),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue