From 32cfe3d7dfdf1f32e3c1075b38decc216c54feb4 Mon Sep 17 00:00:00 2001 From: JIe Date: Wed, 26 Mar 2025 15:10:09 +0800 Subject: [PATCH] =?UTF-8?q?SN=E5=8F=B7=E9=80=BB=E8=BE=91=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main.rs | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/src/main.rs b/src/main.rs index 0ca7267..b1f2750 100644 --- a/src/main.rs +++ b/src/main.rs @@ -67,6 +67,7 @@ struct MysqlConfig { password: String, database: String, work_order: String, + order_number: String } #[derive(Debug, Clone)] enum Message { @@ -77,6 +78,7 @@ enum Message { PasswordChanged(String), DatabaseChanged(String), WorkOrderChanged(String), + OrderNumberChanged(String), LabelChanged(String), TypeSelected(DownloadType), OnlineChecked(bool), @@ -127,6 +129,10 @@ impl MainWindow { self.mysql_config.work_order = work_order; Task::none() } + Message::OrderNumberChanged(order_number) =>{ + self.mysql_config.order_number = order_number; + Task::none() + } Message::TypeSelected(download_type) => { self.selection = Some(download_type); Task::none() @@ -241,6 +247,8 @@ impl MainWindow { text_input("Database", &self.mysql_config.database).on_input(Message::DatabaseChanged); let work_order_input = text_input("WorkOrder", &self.mysql_config.work_order) .on_input(Message::WorkOrderChanged); + let order_number_input = text_input("OrderNumber", &self.mysql_config.order_number) + .on_input(Message::OrderNumberChanged); let label_input = text_input("label", &self.label) .on_input(Message::LabelChanged) .on_submit(Message::Start()) @@ -248,7 +256,8 @@ impl MainWindow { let content = column![ row![ip_input, port_input].spacing(5), row![username_input, password_input].spacing(5), - row![database_input, work_order_input].spacing(5), + row![database_input, order_number_input].spacing(5), + row![work_order_input].spacing(5), row![ radio( "App", @@ -292,18 +301,22 @@ impl MainWindow { fn start(&mut self, sender: Sender) -> () { let mes_config = self.mysql_config.clone(); - let label = self.label.clone(); + let mut label = self.label.clone(); let download_type: DownloadType = self.selection.unwrap(); let online = self.is_online.clone(); if label == "" { add_log("请输入Label".to_string()); return; } + label = label.replace(":", ""); + label = label.to_uppercase(); + label = self.mysql_config.order_number.clone() + &label[label.len() - 6..]; if label.contains(":"){ add_log("Label不合法".to_string()); self.label = "".to_string(); return; } + add_log("Label: ".to_string() + label.as_str()); std::thread::spawn(move || { sleep(std::time::Duration::from_secs(5)); let mut download_wrapper = download_wrapper::DownloadWrapper::new(); @@ -450,6 +463,10 @@ impl MainWindow { "work_order".to_string(), self.mysql_config.work_order.clone().into(), ); + config.insert( + "order_number".to_string(), + self.mysql_config.order_number.clone().into(), + ); config.insert("is_online".to_string(), self.is_online.clone().into()); config.insert( "selection".to_string(), @@ -470,6 +487,7 @@ impl MainWindow { self.mysql_config.password = config["password"].as_str().unwrap().to_string(); self.mysql_config.database = config["database"].as_str().unwrap().to_string(); self.mysql_config.work_order = config["work_order"].as_str().unwrap().to_string(); + self.mysql_config.order_number = config["order_number"].as_str().unwrap().to_string(); self.is_online = config["is_online"].as_bool().unwrap(); match config["selection"].as_str().unwrap() { "BootLoader" => {