From 4459d3fe2a85e05321f53ea34815cca644f6bd31 Mon Sep 17 00:00:00 2001 From: qmstyle Date: Sat, 15 Mar 2025 14:09:54 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=A0=E9=99=A4=202025=E5=B9=B43=E6=9C=8815?= =?UTF-8?q?=E6=97=A511:59:52?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../online/exam/ui/api/DataLoad.java | 1 + .../exam/ui/api/model/UserDataLoad.java | 11 +++++++- .../ui/components/DynamicTableComponent.java | 26 +++++++++++++++---- .../DynamicTableComponentCallBack.java | 3 +++ .../DynamicTableComponentCallBackImpl.java | 5 ++++ 5 files changed, 40 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/zhangmeng/online/exam/ui/api/DataLoad.java b/src/main/java/com/zhangmeng/online/exam/ui/api/DataLoad.java index d8b419a..19ccb80 100644 --- a/src/main/java/com/zhangmeng/online/exam/ui/api/DataLoad.java +++ b/src/main/java/com/zhangmeng/online/exam/ui/api/DataLoad.java @@ -22,4 +22,5 @@ public interface DataLoad { Map saveForm(Map map); public void deleteData(String id); + } diff --git a/src/main/java/com/zhangmeng/online/exam/ui/api/model/UserDataLoad.java b/src/main/java/com/zhangmeng/online/exam/ui/api/model/UserDataLoad.java index 35460cf..a646fa4 100644 --- a/src/main/java/com/zhangmeng/online/exam/ui/api/model/UserDataLoad.java +++ b/src/main/java/com/zhangmeng/online/exam/ui/api/model/UserDataLoad.java @@ -39,6 +39,7 @@ public class UserDataLoad implements DataLoad { userMap.put("用户名", new SimpleStringProperty(user.getString("username"))); userMap.put("电子邮箱", new SimpleStringProperty(user.getString("email"))); userMap.put("手机号码", new SimpleStringProperty(user.getString("phone"))); + userMap.put("id", new SimpleStringProperty(user.getString("id"))); userMapList.add(userMap); } @@ -71,6 +72,14 @@ public class UserDataLoad implements DataLoad { @Override public void deleteData(String id) { - + Map map = new HashMap<>(); + map.put("id", id); + String result = HttpUtils.POST(ApiUtils.API_URL + "/user/delete", map); + JSONObject jsonObject = JSON.parseObject(result); + if (jsonObject.getIntValue("code") == 200){ + AlertUtils.alert_msg("删除成功!"); + }else { + AlertUtils.alert_warning("删除失败!"); + } } } diff --git a/src/main/java/com/zhangmeng/online/exam/ui/components/DynamicTableComponent.java b/src/main/java/com/zhangmeng/online/exam/ui/components/DynamicTableComponent.java index b0353aa..597d666 100644 --- a/src/main/java/com/zhangmeng/online/exam/ui/components/DynamicTableComponent.java +++ b/src/main/java/com/zhangmeng/online/exam/ui/components/DynamicTableComponent.java @@ -9,10 +9,7 @@ import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.geometry.Insets; import javafx.geometry.Pos; -import javafx.scene.control.Button; -import javafx.scene.control.Pagination; -import javafx.scene.control.TableColumn; -import javafx.scene.control.TableView; +import javafx.scene.control.*; import javafx.scene.control.cell.MapValueFactory; import javafx.scene.control.cell.TextFieldTableCell; import javafx.scene.layout.HBox; @@ -64,7 +61,7 @@ public class DynamicTableComponent extends VBox { // 动态生成列(示例字段)‌:ml-citation{ref="3,4" data="citationList"} List columns ; if (!dataList.isEmpty()){ - columns= Arrays.asList(dataList.get(0).keySet().toArray(new String[0])); + columns= Arrays.asList(dataList.get(0).keySet().toArray(new String[0])).stream().filter(key -> !key.equals("id")).toList(); }else { columns=keys; } @@ -81,10 +78,29 @@ public class DynamicTableComponent extends VBox { }); column.prefWidthProperty().bind(tableView.widthProperty().divide(finalColumns.size())); + tableView.getColumns().add(column); }); data.addAll(dataList); + ContextMenu contextMenu = new ContextMenu(); + MenuItem menuItem = new MenuItem("删除"); + menuItem.setOnAction(new EventHandler() { + @Override + public void handle(ActionEvent event) { + Map selectedItem = tableView.getSelectionModel().getSelectedItem(); + if (selectedItem!= null) { + SimpleStringProperty id = selectedItem.get("id"); + if (id!= null) { + callBack.delete(id.get()); + } + } + data.remove(tableView.getSelectionModel().getSelectedItem()); + } + }); + contextMenu.getItems().add(menuItem); + tableView.setContextMenu(contextMenu); + ///添加按钮 Button button = new Button("新增"); button.setOnAction(event -> { diff --git a/src/main/java/com/zhangmeng/online/exam/ui/components/callBack/DynamicTableComponentCallBack.java b/src/main/java/com/zhangmeng/online/exam/ui/components/callBack/DynamicTableComponentCallBack.java index df82e6d..d5b9a50 100644 --- a/src/main/java/com/zhangmeng/online/exam/ui/components/callBack/DynamicTableComponentCallBack.java +++ b/src/main/java/com/zhangmeng/online/exam/ui/components/callBack/DynamicTableComponentCallBack.java @@ -24,4 +24,7 @@ public interface DynamicTableComponentCallBack { public void Add(Parent node, Stage primaryStage, DynamicTableComponent dynamicTableComponent); public Parent getAddForm(); + + void delete(String s); + } diff --git a/src/main/java/com/zhangmeng/online/exam/ui/components/callBack/DynamicTableComponentCallBackImpl.java b/src/main/java/com/zhangmeng/online/exam/ui/components/callBack/DynamicTableComponentCallBackImpl.java index 23c94cf..affa77b 100644 --- a/src/main/java/com/zhangmeng/online/exam/ui/components/callBack/DynamicTableComponentCallBackImpl.java +++ b/src/main/java/com/zhangmeng/online/exam/ui/components/callBack/DynamicTableComponentCallBackImpl.java @@ -52,6 +52,11 @@ public class DynamicTableComponentCallBackImpl implements DynamicTableComponentC return this.node; } + @Override + public void delete(String s) { + dataLoad.deleteData(s); + } + public DataLoad getDataLoad() { return dataLoad; }