2025年3月15日16:51:20
parent
4459d3fe2a
commit
d8a843b2cf
|
|
@ -2,6 +2,7 @@ package com.zhangmeng.online.exam.ui.api;
|
|||
|
||||
import javafx.beans.property.SimpleStringProperty;
|
||||
import javafx.scene.Parent;
|
||||
import javafx.stage.Stage;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
|
@ -23,4 +24,6 @@ public interface DataLoad {
|
|||
|
||||
public void deleteData(String id);
|
||||
|
||||
public void editData(String s, Stage stage);
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -26,20 +26,25 @@ import java.util.Map;
|
|||
*/
|
||||
public class UserForm extends Form {
|
||||
|
||||
private TextField username_field;
|
||||
private PasswordField password_field;
|
||||
private TextField phone_field;
|
||||
private TextField email_field;
|
||||
|
||||
public UserForm() {
|
||||
|
||||
Label username_label = new Label("用户名:");
|
||||
username_label.setLayoutX(83.0);
|
||||
username_label.setLayoutY(64.0);
|
||||
|
||||
TextField username_field = new TextField();
|
||||
username_field = new TextField();
|
||||
username_field.setLayoutX(162.0);
|
||||
username_field.setLayoutY(60.0);
|
||||
username_field.setPrefHeight(23.0);
|
||||
username_field.setPrefWidth(289.0);
|
||||
username_field.setPromptText("请输入用户名");
|
||||
|
||||
PasswordField password_field = new PasswordField();
|
||||
password_field = new PasswordField();
|
||||
password_field.setLayoutX(162.0);
|
||||
password_field.setLayoutY(117.0);
|
||||
password_field.setPrefHeight(23.0);
|
||||
|
|
@ -54,7 +59,7 @@ public class UserForm extends Form {
|
|||
phone_label.setLayoutX(87.0);
|
||||
phone_label.setLayoutY(169.0);
|
||||
|
||||
TextField phone_field = new TextField();
|
||||
phone_field = new TextField();
|
||||
phone_field.setLayoutX(162.0);
|
||||
phone_field.setLayoutY(165.0);
|
||||
phone_field.setPrefHeight(23.0);
|
||||
|
|
@ -65,7 +70,7 @@ public class UserForm extends Form {
|
|||
email_label.setLayoutX(87.0);
|
||||
email_label.setLayoutY(224.0);
|
||||
|
||||
TextField email_field = new TextField();
|
||||
email_field = new TextField();
|
||||
email_field.setLayoutX(162.0);
|
||||
email_field.setLayoutY(220.0);
|
||||
email_field.setPrefHeight(23.0);
|
||||
|
|
@ -106,4 +111,37 @@ public class UserForm extends Form {
|
|||
submit_button,
|
||||
password_label);
|
||||
}
|
||||
|
||||
|
||||
public TextField getUsername_field() {
|
||||
return username_field;
|
||||
}
|
||||
|
||||
public void setUsername_field(TextField username_field) {
|
||||
this.username_field = username_field;
|
||||
}
|
||||
|
||||
public PasswordField getPassword_field() {
|
||||
return password_field;
|
||||
}
|
||||
|
||||
public void setPassword_field(PasswordField password_field) {
|
||||
this.password_field = password_field;
|
||||
}
|
||||
|
||||
public TextField getPhone_field() {
|
||||
return phone_field;
|
||||
}
|
||||
|
||||
public void setPhone_field(TextField phone_field) {
|
||||
this.phone_field = phone_field;
|
||||
}
|
||||
|
||||
public TextField getEmail_field() {
|
||||
return email_field;
|
||||
}
|
||||
|
||||
public void setEmail_field(TextField email_field) {
|
||||
this.email_field = email_field;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ import com.zhangmeng.online.exam.ui.api.DataLoad;
|
|||
import com.zhangmeng.online.exam.ui.utils.HttpUtils;
|
||||
import javafx.beans.property.SimpleStringProperty;
|
||||
import javafx.scene.Parent;
|
||||
import javafx.stage.Stage;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
|
|
@ -61,4 +62,9 @@ public class PermissionDataLoad implements DataLoad {
|
|||
public void deleteData(String id) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void editData(String id, Stage stage) {
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ import com.zhangmeng.online.exam.ui.api.DataLoad;
|
|||
import com.zhangmeng.online.exam.ui.utils.HttpUtils;
|
||||
import javafx.beans.property.SimpleStringProperty;
|
||||
import javafx.scene.Parent;
|
||||
import javafx.stage.Stage;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
|
|
@ -62,4 +63,9 @@ public class QuestionDataLoad implements DataLoad {
|
|||
public Map<String, Object> saveForm(Map<String, Object> map) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void editData(String s, Stage stage) {
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ import com.zhangmeng.online.exam.ui.api.DataLoad;
|
|||
import com.zhangmeng.online.exam.ui.utils.HttpUtils;
|
||||
import javafx.beans.property.SimpleStringProperty;
|
||||
import javafx.scene.Parent;
|
||||
import javafx.stage.Stage;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
|
|
@ -63,4 +64,9 @@ public class RoleDataLoad implements DataLoad {
|
|||
public void deleteData(String id) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void editData(String id, Stage stage) {
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON;
|
|||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.zhangmeng.online.exam.ui.api.DataLoad;
|
||||
import com.zhangmeng.online.exam.ui.api.form.UserForm;
|
||||
import com.zhangmeng.online.exam.ui.utils.AlertUtils;
|
||||
import com.zhangmeng.online.exam.ui.utils.HttpUtils;
|
||||
import javafx.beans.property.SimpleStringProperty;
|
||||
|
|
@ -12,6 +13,7 @@ import java.util.*;
|
|||
|
||||
import com.zhangmeng.online.exam.ui.api.ApiUtils;
|
||||
import javafx.scene.Parent;
|
||||
import javafx.stage.Stage;
|
||||
|
||||
/**
|
||||
* @author zm
|
||||
|
|
@ -37,13 +39,13 @@ public class UserDataLoad implements DataLoad {
|
|||
Map<String, SimpleStringProperty> userMap = new HashMap<>();
|
||||
userMap.put("序号", new SimpleStringProperty(user.getString("id")));
|
||||
userMap.put("用户名", new SimpleStringProperty(user.getString("username")));
|
||||
userMap.put("电子邮箱", new SimpleStringProperty(user.getString("email")));
|
||||
userMap.put("手机号码", new SimpleStringProperty(user.getString("phone")));
|
||||
userMap.put("电子邮箱", new SimpleStringProperty(user.getString("email")));
|
||||
userMap.put("id", new SimpleStringProperty(user.getString("id")));
|
||||
userMapList.add(userMap);
|
||||
}
|
||||
|
||||
ApiUtils.DataView dataView = new ApiUtils.DataView(Arrays.asList("序号", "用户名", "电子邮箱", "手机号码"), userMapList).setDataLoad(this).setPageNum(pageNum).setPageSize(pageSize).setTotal(total);
|
||||
ApiUtils.DataView dataView = new ApiUtils.DataView(Arrays.asList("序号", "用户名","手机号码", "电子邮箱" ), userMapList).setDataLoad(this).setPageNum(pageNum).setPageSize(pageSize).setTotal(total);
|
||||
dataView.setDataLoad(this);
|
||||
return dataView;
|
||||
}
|
||||
|
|
@ -82,4 +84,25 @@ public class UserDataLoad implements DataLoad {
|
|||
AlertUtils.alert_warning("删除失败!");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void editData(String id,Stage stage) {
|
||||
|
||||
UserForm userForm = new UserForm();
|
||||
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
map.put("id", id);
|
||||
String result = HttpUtils.GET(ApiUtils.API_URL + "/user/getUser", map);
|
||||
JSONObject jsonObject = JSON.parseObject(result);
|
||||
JSONObject data = jsonObject.getJSONObject("data");
|
||||
String username = data.getString("username");
|
||||
userForm.getUsername_field().setText(username);
|
||||
String email = data.getString("email");
|
||||
userForm.getEmail_field().setText(email);
|
||||
String phone = data.getString("phone");
|
||||
userForm.getPhone_field().setText(phone);
|
||||
String password = data.getString("password");
|
||||
userForm.getPassword_field().setText(password);
|
||||
AlertUtils.alert("编辑用户信息", (Parent) userForm, stage);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -59,12 +59,12 @@ public class DynamicTableComponent extends VBox {
|
|||
tableView.prefHeightProperty().bind(this.heightProperty());
|
||||
tableView.prefWidthProperty().bind(this.widthProperty());
|
||||
// 动态生成列(示例字段):ml-citation{ref="3,4" data="citationList"}
|
||||
List<String> columns ;
|
||||
if (!dataList.isEmpty()){
|
||||
columns= Arrays.asList(dataList.get(0).keySet().toArray(new String[0])).stream().filter(key -> !key.equals("id")).toList();
|
||||
}else {
|
||||
columns=keys;
|
||||
}
|
||||
List<String> columns = keys ;
|
||||
// if (!dataList.isEmpty()){
|
||||
// columns= Arrays.asList(dataList.get(0).keySet().toArray(new String[0])).stream().filter(key -> !key.equals("id")).toList();
|
||||
// }else {
|
||||
// columns=keys;
|
||||
// }
|
||||
List<String> finalColumns = columns;
|
||||
columns.forEach(col -> {
|
||||
TableColumn<Map<String,SimpleStringProperty>, String> column = new TableColumn<>(col);
|
||||
|
|
@ -84,8 +84,24 @@ public class DynamicTableComponent extends VBox {
|
|||
data.addAll(dataList);
|
||||
|
||||
ContextMenu contextMenu = new ContextMenu();
|
||||
MenuItem menuItem = new MenuItem("删除");
|
||||
menuItem.setOnAction(new EventHandler<ActionEvent>() {
|
||||
|
||||
MenuItem editItem = new MenuItem("编辑");
|
||||
|
||||
editItem.setOnAction(new EventHandler<ActionEvent>() {
|
||||
@Override
|
||||
public void handle(ActionEvent event) {
|
||||
Map<String, SimpleStringProperty> selectedItem = tableView.getSelectionModel().getSelectedItem();
|
||||
if (selectedItem!= null) {
|
||||
SimpleStringProperty id = selectedItem.get("id");
|
||||
if (id!= null) {
|
||||
callBack.edit(id.get(), DynamicTableComponent.this);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
MenuItem deleteItem = new MenuItem("删除");
|
||||
deleteItem.setOnAction(new EventHandler<ActionEvent>() {
|
||||
@Override
|
||||
public void handle(ActionEvent event) {
|
||||
Map<String, SimpleStringProperty> selectedItem = tableView.getSelectionModel().getSelectedItem();
|
||||
|
|
@ -98,7 +114,7 @@ public class DynamicTableComponent extends VBox {
|
|||
data.remove(tableView.getSelectionModel().getSelectedItem());
|
||||
}
|
||||
});
|
||||
contextMenu.getItems().add(menuItem);
|
||||
contextMenu.getItems().addAll(editItem,deleteItem);
|
||||
tableView.setContextMenu(contextMenu);
|
||||
|
||||
///添加按钮
|
||||
|
|
|
|||
|
|
@ -27,4 +27,6 @@ public interface DynamicTableComponentCallBack {
|
|||
|
||||
void delete(String s);
|
||||
|
||||
void edit(String s,DynamicTableComponent dynamicTableComponent);
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -57,6 +57,12 @@ public class DynamicTableComponentCallBackImpl implements DynamicTableComponentC
|
|||
dataLoad.deleteData(s);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void edit(String id,DynamicTableComponent table) {
|
||||
Stage stage = (Stage) table.getScene().getWindow();
|
||||
dataLoad.editData(id, stage);
|
||||
}
|
||||
|
||||
public DataLoad getDataLoad() {
|
||||
return dataLoad;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue