diff --git a/src/main/java/com/zhangmeng/online/exam/ui/admin/IndexPage.java b/src/main/java/com/zhangmeng/online/exam/ui/admin/IndexPage.java index 23a1703..78b872f 100644 --- a/src/main/java/com/zhangmeng/online/exam/ui/admin/IndexPage.java +++ b/src/main/java/com/zhangmeng/online/exam/ui/admin/IndexPage.java @@ -1,17 +1,11 @@ package com.zhangmeng.online.exam.ui.admin; -import com.zhangmeng.online.exam.ui.api.ApiUtils; +import com.zhangmeng.online.exam.ui.utils.ApiUtils; import com.zhangmeng.online.exam.ui.layouts.SideMenu; import com.zhangmeng.online.exam.ui.layouts.TopMenu; -import javafx.scene.control.MenuBar; -import javafx.scene.control.SplitPane; import javafx.scene.layout.AnchorPane; import javafx.scene.layout.BorderPane; import javafx.scene.layout.StackPane; -import javafx.scene.layout.VBox; - -import java.util.ArrayList; -import java.util.List; /** * @author zm diff --git a/src/main/java/com/zhangmeng/online/exam/ui/admin/LoginPage.java b/src/main/java/com/zhangmeng/online/exam/ui/admin/LoginPage.java index ae4d618..183afcb 100644 --- a/src/main/java/com/zhangmeng/online/exam/ui/admin/LoginPage.java +++ b/src/main/java/com/zhangmeng/online/exam/ui/admin/LoginPage.java @@ -1,10 +1,7 @@ package com.zhangmeng.online.exam.ui.admin; import com.alibaba.fastjson2.JSONObject; -import com.zhangmeng.online.exam.ui.api.ApiUtils; -import com.zhangmeng.online.exam.ui.components.ExamButtonComponent; -import com.zhangmeng.online.exam.ui.components.ExamComponent; -import com.zhangmeng.online.exam.ui.components.ShortAnswerComponent; +import com.zhangmeng.online.exam.ui.utils.ApiUtils; import com.zhangmeng.online.exam.ui.utils.AlertUtils; import com.zhangmeng.online.exam.ui.utils.HttpUtils; import javafx.beans.value.ChangeListener; @@ -18,7 +15,6 @@ import javafx.scene.image.Image; import javafx.scene.image.ImageView; import javafx.scene.layout.*; import javafx.stage.Stage; -import javafx.stage.Window; import javafx.util.Duration; import java.util.HashMap; 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 6c7013d..d114242 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 @@ -1,11 +1,10 @@ package com.zhangmeng.online.exam.ui.api; -import javafx.beans.property.SimpleStringProperty; +import com.zhangmeng.online.exam.ui.utils.ApiUtils; import javafx.scene.Parent; import javafx.scene.control.MenuItem; import javafx.stage.Stage; -import java.util.Collection; import java.util.List; import java.util.Map; diff --git a/src/main/java/com/zhangmeng/online/exam/ui/api/form/RoleForm.java b/src/main/java/com/zhangmeng/online/exam/ui/api/form/RoleForm.java index 0875553..ab40cad 100644 --- a/src/main/java/com/zhangmeng/online/exam/ui/api/form/RoleForm.java +++ b/src/main/java/com/zhangmeng/online/exam/ui/api/form/RoleForm.java @@ -1,19 +1,8 @@ package com.zhangmeng.online.exam.ui.api.form; -import com.zhangmeng.online.exam.ui.api.ApiUtils; -import com.zhangmeng.online.exam.ui.api.DataLoad; import com.zhangmeng.online.exam.ui.api.form.base.Form; -import com.zhangmeng.online.exam.ui.api.model.UserDataLoad; -import com.zhangmeng.online.exam.ui.components.DynamicTableComponent; -import com.zhangmeng.online.exam.ui.components.callBack.DynamicTableComponentCallBack; import com.zhangmeng.online.exam.ui.controller.RoleEditController; -import com.zhangmeng.online.exam.ui.controller.UserEditController; -import javafx.beans.property.SimpleStringProperty; -import javafx.collections.ObservableList; import javafx.fxml.FXMLLoader; -import javafx.scene.control.*; -import javafx.scene.layout.AnchorPane; -import javafx.stage.Stage; import java.io.IOException; diff --git a/src/main/java/com/zhangmeng/online/exam/ui/api/form/SubjectForm.java b/src/main/java/com/zhangmeng/online/exam/ui/api/form/SubjectForm.java new file mode 100644 index 0000000..2c3b8a4 --- /dev/null +++ b/src/main/java/com/zhangmeng/online/exam/ui/api/form/SubjectForm.java @@ -0,0 +1,36 @@ +package com.zhangmeng.online.exam.ui.api.form; + +import com.zhangmeng.online.exam.ui.api.form.base.Form; +import com.zhangmeng.online.exam.ui.controller.RoleEditController; +import com.zhangmeng.online.exam.ui.controller.SubjectEditController; +import javafx.fxml.FXMLLoader; + +import java.io.IOException; + +/** + * @author zm + * @date 2025/4/11 9:25 + * @version: 1.0 + */ +public class SubjectForm extends Form { + + private SubjectEditController controller; + + public SubjectForm() { + try { + FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("/fxml/subject-edit.fxml")); + this.getChildren().add(fxmlLoader.load()); + this.controller = fxmlLoader.getController(); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + public SubjectEditController getController() { + return controller; + } + + public void setController(SubjectEditController controller) { + this.controller = controller; + } +} diff --git a/src/main/java/com/zhangmeng/online/exam/ui/api/form/UserForm.java b/src/main/java/com/zhangmeng/online/exam/ui/api/form/UserForm.java index bfaafd4..03d26ab 100644 --- a/src/main/java/com/zhangmeng/online/exam/ui/api/form/UserForm.java +++ b/src/main/java/com/zhangmeng/online/exam/ui/api/form/UserForm.java @@ -1,26 +1,10 @@ package com.zhangmeng.online.exam.ui.api.form; -import com.zhangmeng.online.exam.ui.api.ApiUtils; -import com.zhangmeng.online.exam.ui.api.DataLoad; import com.zhangmeng.online.exam.ui.api.form.base.Form; -import com.zhangmeng.online.exam.ui.api.model.UserDataLoad; -import com.zhangmeng.online.exam.ui.components.DynamicTableComponent; -import com.zhangmeng.online.exam.ui.components.callBack.DynamicTableComponentCallBack; import com.zhangmeng.online.exam.ui.controller.UserEditController; -import javafx.beans.property.SimpleStringProperty; -import javafx.collections.ObservableList; import javafx.fxml.FXMLLoader; -import javafx.scene.control.Button; -import javafx.scene.control.Label; -import javafx.scene.control.PasswordField; -import javafx.scene.control.TextField; -import javafx.scene.layout.AnchorPane; -import javafx.stage.Stage; -import javafx.stage.Window; import java.io.IOException; -import java.util.HashMap; -import java.util.Map; /** * @author zm diff --git a/src/main/java/com/zhangmeng/online/exam/ui/api/model/AnswerDataLoad.java b/src/main/java/com/zhangmeng/online/exam/ui/api/model/AnswerDataLoad.java index a0bfb05..a96c392 100644 --- a/src/main/java/com/zhangmeng/online/exam/ui/api/model/AnswerDataLoad.java +++ b/src/main/java/com/zhangmeng/online/exam/ui/api/model/AnswerDataLoad.java @@ -3,9 +3,8 @@ package com.zhangmeng.online.exam.ui.api.model; import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONObject; -import com.zhangmeng.online.exam.ui.api.ApiUtils; +import com.zhangmeng.online.exam.ui.utils.ApiUtils; 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; diff --git a/src/main/java/com/zhangmeng/online/exam/ui/api/model/OptionDataLoad.java b/src/main/java/com/zhangmeng/online/exam/ui/api/model/OptionDataLoad.java index f61fc31..4f287a9 100644 --- a/src/main/java/com/zhangmeng/online/exam/ui/api/model/OptionDataLoad.java +++ b/src/main/java/com/zhangmeng/online/exam/ui/api/model/OptionDataLoad.java @@ -3,9 +3,8 @@ package com.zhangmeng.online.exam.ui.api.model; import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONObject; -import com.zhangmeng.online.exam.ui.api.ApiUtils; +import com.zhangmeng.online.exam.ui.utils.ApiUtils; 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; diff --git a/src/main/java/com/zhangmeng/online/exam/ui/api/model/PaperDataLoad.java b/src/main/java/com/zhangmeng/online/exam/ui/api/model/PaperDataLoad.java index df2ecb1..0356cd8 100644 --- a/src/main/java/com/zhangmeng/online/exam/ui/api/model/PaperDataLoad.java +++ b/src/main/java/com/zhangmeng/online/exam/ui/api/model/PaperDataLoad.java @@ -3,22 +3,16 @@ package com.zhangmeng.online.exam.ui.api.model; import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONObject; -import com.zhangmeng.online.exam.ui.admin.IndexPage; -import com.zhangmeng.online.exam.ui.api.ApiUtils; +import com.zhangmeng.online.exam.ui.utils.ApiUtils; import com.zhangmeng.online.exam.ui.api.DataLoad; -import com.zhangmeng.online.exam.ui.api.form.UserForm; -import com.zhangmeng.online.exam.ui.components.DynamicTableComponent; import com.zhangmeng.online.exam.ui.components.PaperViewComponent; import com.zhangmeng.online.exam.ui.components.callBack.PaperViewComponentCallBackImpl; import com.zhangmeng.online.exam.ui.utils.AlertUtils; import com.zhangmeng.online.exam.ui.utils.HttpUtils; import javafx.beans.property.SimpleStringProperty; -import javafx.css.Styleable; -import javafx.scene.Node; import javafx.scene.Parent; import javafx.scene.control.ContextMenu; import javafx.scene.control.MenuItem; -import javafx.scene.control.TableView; import javafx.scene.layout.BorderPane; import javafx.stage.Stage; diff --git a/src/main/java/com/zhangmeng/online/exam/ui/api/model/PermissionDataLoad.java b/src/main/java/com/zhangmeng/online/exam/ui/api/model/PermissionDataLoad.java index 1ef196b..70a9403 100644 --- a/src/main/java/com/zhangmeng/online/exam/ui/api/model/PermissionDataLoad.java +++ b/src/main/java/com/zhangmeng/online/exam/ui/api/model/PermissionDataLoad.java @@ -3,31 +3,24 @@ package com.zhangmeng.online.exam.ui.api.model; import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONObject; -import com.zhangmeng.online.exam.ui.api.ApiUtils; +import com.zhangmeng.online.exam.ui.utils.ApiUtils; import com.zhangmeng.online.exam.ui.api.DataLoad; import com.zhangmeng.online.exam.ui.api.form.PermissionForm; -import com.zhangmeng.online.exam.ui.api.form.UserForm; import com.zhangmeng.online.exam.ui.controller.PermissionEditController; -import com.zhangmeng.online.exam.ui.controller.UserEditController; import com.zhangmeng.online.exam.ui.module.Permission; -import com.zhangmeng.online.exam.ui.module.Role; -import com.zhangmeng.online.exam.ui.module.User; import com.zhangmeng.online.exam.ui.service.PermissionService; -import com.zhangmeng.online.exam.ui.service.RoleService; import com.zhangmeng.online.exam.ui.utils.AlertUtils; import com.zhangmeng.online.exam.ui.utils.FxUtils; import com.zhangmeng.online.exam.ui.utils.HttpUtils; import javafx.beans.property.SimpleStringProperty; -import javafx.collections.FXCollections; import javafx.scene.Parent; import javafx.scene.control.MenuItem; import javafx.stage.Stage; import java.util.*; -import static com.zhangmeng.online.exam.ui.api.ApiUtils.API_URL; +import static com.zhangmeng.online.exam.ui.utils.ApiUtils.API_URL; import static com.zhangmeng.online.exam.ui.utils.FxUtils.Permission_DynamicTableComponent; -import static com.zhangmeng.online.exam.ui.utils.FxUtils.Role_DynamicTableComponent; /** * @author zm diff --git a/src/main/java/com/zhangmeng/online/exam/ui/api/model/ProfessionDataLoad.java b/src/main/java/com/zhangmeng/online/exam/ui/api/model/ProfessionDataLoad.java index 07e8ed0..65db9e3 100644 --- a/src/main/java/com/zhangmeng/online/exam/ui/api/model/ProfessionDataLoad.java +++ b/src/main/java/com/zhangmeng/online/exam/ui/api/model/ProfessionDataLoad.java @@ -3,9 +3,8 @@ package com.zhangmeng.online.exam.ui.api.model; import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONObject; -import com.zhangmeng.online.exam.ui.api.ApiUtils; +import com.zhangmeng.online.exam.ui.utils.ApiUtils; 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; diff --git a/src/main/java/com/zhangmeng/online/exam/ui/api/model/QuestionDataLoad.java b/src/main/java/com/zhangmeng/online/exam/ui/api/model/QuestionDataLoad.java index 0491a94..bd3d5a7 100644 --- a/src/main/java/com/zhangmeng/online/exam/ui/api/model/QuestionDataLoad.java +++ b/src/main/java/com/zhangmeng/online/exam/ui/api/model/QuestionDataLoad.java @@ -3,10 +3,9 @@ package com.zhangmeng.online.exam.ui.api.model; import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONObject; -import com.zhangmeng.online.exam.ui.api.ApiUtils; +import com.zhangmeng.online.exam.ui.utils.ApiUtils; import com.zhangmeng.online.exam.ui.api.DataLoad; import com.zhangmeng.online.exam.ui.api.form.QuestionForm; -import com.zhangmeng.online.exam.ui.api.form.UserForm; import com.zhangmeng.online.exam.ui.controller.QuestionEditController; import com.zhangmeng.online.exam.ui.module.QuestionType; import com.zhangmeng.online.exam.ui.module.SubjectType; @@ -16,17 +15,14 @@ import com.zhangmeng.online.exam.ui.utils.AlertUtils; import com.zhangmeng.online.exam.ui.utils.FxUtils; import com.zhangmeng.online.exam.ui.utils.HttpUtils; import javafx.beans.property.SimpleStringProperty; -import javafx.fxml.FXMLLoader; import javafx.scene.Parent; -import javafx.scene.Scene; import javafx.scene.control.MenuItem; -import javafx.stage.Modality; import javafx.stage.Stage; -import java.io.IOException; import java.util.*; -import static com.zhangmeng.online.exam.ui.api.ApiUtils.API_URL; +import static com.zhangmeng.online.exam.ui.utils.ApiUtils.API_URL; +import static com.zhangmeng.online.exam.ui.utils.FxUtils.Question_DynamicTableComponent; /** * @author zm @@ -77,7 +73,16 @@ public class QuestionDataLoad implements DataLoad { @Override public void deleteData(String id) { - + Map map = new HashMap<>(); + map.put("id", id); + String result = HttpUtils.POST(ApiUtils.API_URL + "/question/delete", map); + JSONObject jsonObject = JSON.parseObject(result); + if (jsonObject.getIntValue("code") == 200) { + AlertUtils.alert_msg("删除成功!"); + FxUtils.FX_BEANS.get(Question_DynamicTableComponent).flushData(); + } else { + AlertUtils.alert_warning("删除失败!"); + } } @Override diff --git a/src/main/java/com/zhangmeng/online/exam/ui/api/model/QuestionOptionDataLoad.java b/src/main/java/com/zhangmeng/online/exam/ui/api/model/QuestionOptionDataLoad.java index 4bbe764..3e56a23 100644 --- a/src/main/java/com/zhangmeng/online/exam/ui/api/model/QuestionOptionDataLoad.java +++ b/src/main/java/com/zhangmeng/online/exam/ui/api/model/QuestionOptionDataLoad.java @@ -3,9 +3,8 @@ package com.zhangmeng.online.exam.ui.api.model; import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONObject; -import com.zhangmeng.online.exam.ui.api.ApiUtils; +import com.zhangmeng.online.exam.ui.utils.ApiUtils; 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; diff --git a/src/main/java/com/zhangmeng/online/exam/ui/api/model/RoleDataLoad.java b/src/main/java/com/zhangmeng/online/exam/ui/api/model/RoleDataLoad.java index 6edd88d..8469e46 100644 --- a/src/main/java/com/zhangmeng/online/exam/ui/api/model/RoleDataLoad.java +++ b/src/main/java/com/zhangmeng/online/exam/ui/api/model/RoleDataLoad.java @@ -3,26 +3,20 @@ package com.zhangmeng.online.exam.ui.api.model; import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONObject; -import com.zhangmeng.online.exam.ui.api.ApiUtils; +import com.zhangmeng.online.exam.ui.utils.ApiUtils; import com.zhangmeng.online.exam.ui.api.DataLoad; import com.zhangmeng.online.exam.ui.api.form.RoleForm; -import com.zhangmeng.online.exam.ui.api.form.UserForm; -import com.zhangmeng.online.exam.ui.components.PaperViewComponent; import com.zhangmeng.online.exam.ui.components.PermissionChooseComponent; -import com.zhangmeng.online.exam.ui.components.callBack.PaperViewComponentCallBackImpl; import com.zhangmeng.online.exam.ui.controller.PermissionChooseController; import com.zhangmeng.online.exam.ui.controller.RoleEditController; -import com.zhangmeng.online.exam.ui.controller.UserEditController; import com.zhangmeng.online.exam.ui.module.Permission; import com.zhangmeng.online.exam.ui.module.Role; import com.zhangmeng.online.exam.ui.module.RoleType; -import com.zhangmeng.online.exam.ui.module.User; import com.zhangmeng.online.exam.ui.service.RoleService; import com.zhangmeng.online.exam.ui.utils.AlertUtils; import com.zhangmeng.online.exam.ui.utils.FxUtils; import com.zhangmeng.online.exam.ui.utils.HttpUtils; import javafx.beans.property.SimpleStringProperty; -import javafx.collections.FXCollections; import javafx.scene.Parent; import javafx.scene.control.ContextMenu; import javafx.scene.control.MenuItem; @@ -31,7 +25,7 @@ import javafx.stage.Stage; import java.util.*; -import static com.zhangmeng.online.exam.ui.api.ApiUtils.API_URL; +import static com.zhangmeng.online.exam.ui.utils.ApiUtils.API_URL; import static com.zhangmeng.online.exam.ui.utils.FxUtils.Role_DynamicTableComponent; /** diff --git a/src/main/java/com/zhangmeng/online/exam/ui/api/model/SubjectDataLoad.java b/src/main/java/com/zhangmeng/online/exam/ui/api/model/SubjectDataLoad.java index 060bd9b..51fe081 100644 --- a/src/main/java/com/zhangmeng/online/exam/ui/api/model/SubjectDataLoad.java +++ b/src/main/java/com/zhangmeng/online/exam/ui/api/model/SubjectDataLoad.java @@ -3,10 +3,14 @@ package com.zhangmeng.online.exam.ui.api.model; import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONObject; -import com.zhangmeng.online.exam.ui.api.ApiUtils; +import com.zhangmeng.online.exam.ui.api.form.SubjectForm; +import com.zhangmeng.online.exam.ui.controller.SubjectEditController; +import com.zhangmeng.online.exam.ui.module.Subject; +import com.zhangmeng.online.exam.ui.service.SubjectService; +import com.zhangmeng.online.exam.ui.utils.ApiUtils; 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.FxUtils; import com.zhangmeng.online.exam.ui.utils.HttpUtils; import javafx.beans.property.SimpleStringProperty; import javafx.scene.Parent; @@ -39,13 +43,16 @@ public class SubjectDataLoad implements DataLoad { Map userMap = new HashMap<>(); userMap.put("序号", new SimpleStringProperty(user.getString("id"))); userMap.put("学科名称", new SimpleStringProperty(user.getString("name"))); + userMap.put("学科名称_name", new SimpleStringProperty(user.getString("name"))); userMap.put("学科代码", new SimpleStringProperty(user.getString("code"))); + userMap.put("学科代码_code", new SimpleStringProperty(user.getString("code"))); userMap.put("学科描述", new SimpleStringProperty(user.getString("description"))); + userMap.put("学科描述_description", new SimpleStringProperty(user.getString("description"))); 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; } @@ -64,9 +71,9 @@ public class SubjectDataLoad implements DataLoad { public Map saveForm(Map map) { String result = HttpUtils.POST(ApiUtils.API_URL + "/subject/save", map); JSONObject jsonObject = JSON.parseObject(result); - if (jsonObject.getIntValue("code") == 200){ + if (jsonObject.getIntValue("code") == 200) { AlertUtils.alert_msg("保存成功!"); - }else { + } else { AlertUtils.alert_warning("保存失败!"); } return null; @@ -78,22 +85,37 @@ public class SubjectDataLoad implements DataLoad { map.put("id", id); String result = HttpUtils.POST(ApiUtils.API_URL + "/subject/delete", map); JSONObject jsonObject = JSON.parseObject(result); - if (jsonObject.getIntValue("code") == 200){ + if (jsonObject.getIntValue("code") == 200) { AlertUtils.alert_msg("删除成功!"); - }else { + } else { AlertUtils.alert_warning("删除失败!"); } } @Override - public void editData(String id,Stage stage) { - + public void editData(String id, Stage stage) { + SubjectForm subjectForm = new SubjectForm(); + SubjectEditController controller = subjectForm.getController(); + Subject subject = SubjectService.getSubjectById(id); + controller.setSubject(subject); + FxUtils.alert("编辑学科信息", (Parent) subjectForm, stage,true); } @Override public void updateData(String id, String name, String oldValue, String newValue) { - + Map map = new HashMap<>(); + map.put("id", id); + map.put("fieldName", name); + map.put("oldValue", oldValue == null ? "" : oldValue); + map.put("newValue", newValue); + String result = HttpUtils.POST(ApiUtils.API_URL + "/subject/update", map); + JSONObject jsonObject = JSON.parseObject(result); + if (jsonObject.getIntValue("code") == 200) { + AlertUtils.alert_msg("更新成功!"); + } else { + AlertUtils.alert_warning("更新失败!"); + } } @Override 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 de6a335..53d3d06 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 @@ -15,9 +15,8 @@ import javafx.beans.property.SimpleStringProperty; import java.util.*; -import com.zhangmeng.online.exam.ui.api.ApiUtils; +import com.zhangmeng.online.exam.ui.utils.ApiUtils; import javafx.collections.FXCollections; -import javafx.collections.ObservableList; import javafx.scene.Parent; import javafx.scene.control.MenuItem; import javafx.stage.Stage; 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 d0b2380..742c83e 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 @@ -1,6 +1,6 @@ package com.zhangmeng.online.exam.ui.components; -import com.zhangmeng.online.exam.ui.api.ApiUtils; +import com.zhangmeng.online.exam.ui.utils.ApiUtils; import com.zhangmeng.online.exam.ui.api.DataLoad; import com.zhangmeng.online.exam.ui.components.callBack.DynamicTableComponentCallBack; import com.zhangmeng.online.exam.ui.utils.AlertUtils; @@ -9,19 +9,14 @@ import javafx.collections.FXCollections; import javafx.collections.ObservableList; import javafx.event.ActionEvent; import javafx.event.EventHandler; -import javafx.geometry.Insets; -import javafx.geometry.Pos; import javafx.scene.control.*; import javafx.scene.control.cell.MapValueFactory; import javafx.scene.control.cell.TextFieldTableCell; -import javafx.scene.layout.HBox; import javafx.scene.layout.VBox; import javafx.stage.Stage; -import javafx.stage.Window; import org.casic.javafx.control.PaginationPicker; import java.util.*; -import java.util.concurrent.atomic.AtomicBoolean; /** @@ -33,6 +28,8 @@ import java.util.concurrent.atomic.AtomicBoolean; */ public class DynamicTableComponent extends VBox { + private HeaderComponent headerComponent; + private DynamicTableComponentCallBack callBack; private TableView> tableView; @@ -172,6 +169,12 @@ public class DynamicTableComponent extends VBox { }); this.getChildren().add(button); this.setSpacing(10); + + + if (headerComponent != null){ + this.getChildren().add(headerComponent); + } + this.getChildren().addAll(tableView); //初始化一个分页 @@ -197,4 +200,12 @@ public class DynamicTableComponent extends VBox { data.clear(); data.addAll(callBack.flushData(ApiUtils.PAGE_NUM, ApiUtils.PAGE_SIZE).getDataList()); } + + public HeaderComponent getHeaderComponent() { + return headerComponent; + } + + public void setHeaderComponent(HeaderComponent headerComponent) { + this.headerComponent = headerComponent; + } } diff --git a/src/main/java/com/zhangmeng/online/exam/ui/components/ExamComponent.java b/src/main/java/com/zhangmeng/online/exam/ui/components/ExamComponent.java index 8f9623e..2881f02 100644 --- a/src/main/java/com/zhangmeng/online/exam/ui/components/ExamComponent.java +++ b/src/main/java/com/zhangmeng/online/exam/ui/components/ExamComponent.java @@ -3,23 +3,15 @@ package com.zhangmeng.online.exam.ui.components; import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONObject; -import com.zhangmeng.online.exam.ui.api.ApiUtils; +import com.zhangmeng.online.exam.ui.utils.ApiUtils; import com.zhangmeng.online.exam.ui.utils.HttpUtils; import javafx.beans.property.SimpleIntegerProperty; -import javafx.beans.property.SimpleStringProperty; -import javafx.beans.value.WritableValue; import javafx.collections.FXCollections; import javafx.collections.ObservableList; -import javafx.css.StyleableProperty; import javafx.geometry.Insets; -import javafx.scene.AccessibleRole; import javafx.scene.Node; -import javafx.scene.control.Button; -import javafx.scene.control.Label; import javafx.scene.control.ScrollPane; -import javafx.scene.layout.FlowPane; import javafx.scene.layout.VBox; -import javafx.scene.text.Font; import java.util.*; diff --git a/src/main/java/com/zhangmeng/online/exam/ui/components/HeaderComponent.java b/src/main/java/com/zhangmeng/online/exam/ui/components/HeaderComponent.java new file mode 100644 index 0000000..47bca28 --- /dev/null +++ b/src/main/java/com/zhangmeng/online/exam/ui/components/HeaderComponent.java @@ -0,0 +1,11 @@ +package com.zhangmeng.online.exam.ui.components; + +import javafx.scene.layout.HBox; + +/** + * @author zm + * @date 2025/4/11 9:17 + * @version: 1.0 + */ +public class HeaderComponent extends HBox { +} diff --git a/src/main/java/com/zhangmeng/online/exam/ui/components/PaperViewComponent.java b/src/main/java/com/zhangmeng/online/exam/ui/components/PaperViewComponent.java index 2b7ab7d..bf7bd10 100644 --- a/src/main/java/com/zhangmeng/online/exam/ui/components/PaperViewComponent.java +++ b/src/main/java/com/zhangmeng/online/exam/ui/components/PaperViewComponent.java @@ -1,12 +1,9 @@ package com.zhangmeng.online.exam.ui.components; -import com.zhangmeng.online.exam.ui.api.ApiUtils; -import com.zhangmeng.online.exam.ui.api.DataLoad; +import com.zhangmeng.online.exam.ui.utils.ApiUtils; import com.zhangmeng.online.exam.ui.components.callBack.PaperViewComponentCallBack; import com.zhangmeng.online.exam.ui.utils.AlertUtils; import javafx.application.Platform; -import javafx.beans.InvalidationListener; -import javafx.beans.Observable; import javafx.beans.property.SimpleIntegerProperty; import javafx.beans.property.SimpleStringProperty; import javafx.collections.FXCollections; @@ -29,7 +26,6 @@ import org.casic.javafx.control.PaginationPicker; import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.Set; /** * 试题展示组件 diff --git a/src/main/java/com/zhangmeng/online/exam/ui/components/SingleChoiceComponent.java b/src/main/java/com/zhangmeng/online/exam/ui/components/SingleChoiceComponent.java index c9cbe4c..fc726da 100644 --- a/src/main/java/com/zhangmeng/online/exam/ui/components/SingleChoiceComponent.java +++ b/src/main/java/com/zhangmeng/online/exam/ui/components/SingleChoiceComponent.java @@ -1,6 +1,6 @@ package com.zhangmeng.online.exam.ui.components; -import com.zhangmeng.online.exam.ui.api.ApiUtils; +import com.zhangmeng.online.exam.ui.utils.ApiUtils; import javafx.beans.property.SimpleStringProperty; import javafx.geometry.Insets; import javafx.scene.control.*; diff --git a/src/main/java/com/zhangmeng/online/exam/ui/components/TrueFalseComponent.java b/src/main/java/com/zhangmeng/online/exam/ui/components/TrueFalseComponent.java index fffc6ea..af1fbb9 100644 --- a/src/main/java/com/zhangmeng/online/exam/ui/components/TrueFalseComponent.java +++ b/src/main/java/com/zhangmeng/online/exam/ui/components/TrueFalseComponent.java @@ -1,6 +1,6 @@ package com.zhangmeng.online.exam.ui.components; -import com.zhangmeng.online.exam.ui.api.ApiUtils; +import com.zhangmeng.online.exam.ui.utils.ApiUtils; import javafx.beans.property.SimpleStringProperty; import javafx.geometry.Insets; import javafx.scene.control.Button; 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 be6df0c..22aaaf7 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 @@ -1,16 +1,10 @@ package com.zhangmeng.online.exam.ui.components.callBack; -import com.zhangmeng.online.exam.ui.api.ApiUtils; -import com.zhangmeng.online.exam.ui.api.DataLoad; +import com.zhangmeng.online.exam.ui.utils.ApiUtils; import com.zhangmeng.online.exam.ui.components.DynamicTableComponent; -import javafx.beans.property.SimpleStringProperty; -import javafx.scene.Node; import javafx.scene.Parent; import javafx.stage.Stage; -import java.util.List; -import java.util.Map; - /** * @author zm * @date 2025/3/14 15:34 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 065096b..9397327 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 @@ -1,21 +1,13 @@ package com.zhangmeng.online.exam.ui.components.callBack; -import com.zhangmeng.online.exam.ui.api.ApiUtils; +import com.zhangmeng.online.exam.ui.utils.ApiUtils; import com.zhangmeng.online.exam.ui.api.DataLoad; -import com.zhangmeng.online.exam.ui.api.form.UserForm; -import com.zhangmeng.online.exam.ui.api.form.base.Form; import com.zhangmeng.online.exam.ui.components.DynamicTableComponent; -import com.zhangmeng.online.exam.ui.utils.AlertUtils; import com.zhangmeng.online.exam.ui.utils.FxUtils; -import javafx.beans.property.SimpleStringProperty; -import javafx.collections.ObservableList; import javafx.scene.Node; import javafx.scene.Parent; import javafx.stage.Stage; -import java.util.List; -import java.util.Map; - /** * @author zm * @date 2025/3/14 15:35 diff --git a/src/main/java/com/zhangmeng/online/exam/ui/components/callBack/PaperViewComponentCallBack.java b/src/main/java/com/zhangmeng/online/exam/ui/components/callBack/PaperViewComponentCallBack.java index 7796b0e..c693c2e 100644 --- a/src/main/java/com/zhangmeng/online/exam/ui/components/callBack/PaperViewComponentCallBack.java +++ b/src/main/java/com/zhangmeng/online/exam/ui/components/callBack/PaperViewComponentCallBack.java @@ -1,10 +1,9 @@ package com.zhangmeng.online.exam.ui.components.callBack; -import com.zhangmeng.online.exam.ui.api.ApiUtils; +import com.zhangmeng.online.exam.ui.utils.ApiUtils; import javafx.beans.property.SimpleStringProperty; import javafx.collections.ObservableList; -import java.util.List; import java.util.Map; /** diff --git a/src/main/java/com/zhangmeng/online/exam/ui/components/callBack/PaperViewComponentCallBackImpl.java b/src/main/java/com/zhangmeng/online/exam/ui/components/callBack/PaperViewComponentCallBackImpl.java index 38a9c54..d6ab993 100644 --- a/src/main/java/com/zhangmeng/online/exam/ui/components/callBack/PaperViewComponentCallBackImpl.java +++ b/src/main/java/com/zhangmeng/online/exam/ui/components/callBack/PaperViewComponentCallBackImpl.java @@ -3,7 +3,7 @@ package com.zhangmeng.online.exam.ui.components.callBack; import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONObject; -import com.zhangmeng.online.exam.ui.api.ApiUtils; +import com.zhangmeng.online.exam.ui.utils.ApiUtils; import com.zhangmeng.online.exam.ui.api.DataLoad; import com.zhangmeng.online.exam.ui.api.model.PaperDataLoad; import com.zhangmeng.online.exam.ui.api.model.QuestionDataLoad; @@ -12,7 +12,6 @@ import com.zhangmeng.online.exam.ui.utils.HttpUtils; import javafx.beans.property.SimpleStringProperty; import javafx.collections.ObservableList; -import java.util.ArrayList; import java.util.List; import java.util.Map; diff --git a/src/main/java/com/zhangmeng/online/exam/ui/controller/LoginController.java b/src/main/java/com/zhangmeng/online/exam/ui/controller/LoginController.java index 39ca4db..0de0365 100644 --- a/src/main/java/com/zhangmeng/online/exam/ui/controller/LoginController.java +++ b/src/main/java/com/zhangmeng/online/exam/ui/controller/LoginController.java @@ -1,10 +1,8 @@ package com.zhangmeng.online.exam.ui.controller; import com.alibaba.fastjson2.JSONObject; -import com.zhangmeng.online.exam.ui.admin.IndexPage; -import com.zhangmeng.online.exam.ui.admin.LoginPage; import com.zhangmeng.online.exam.ui.admin.PaperPage; -import com.zhangmeng.online.exam.ui.api.ApiUtils; +import com.zhangmeng.online.exam.ui.utils.ApiUtils; import com.zhangmeng.online.exam.ui.module.User; import com.zhangmeng.online.exam.ui.service.UserService; import com.zhangmeng.online.exam.ui.utils.AlertUtils; @@ -18,7 +16,6 @@ import javafx.fxml.FXML; import javafx.fxml.FXMLLoader; import javafx.scene.Parent; import javafx.scene.Scene; -import javafx.scene.control.Alert; import javafx.scene.control.Button; import javafx.scene.control.TextField; import javafx.scene.image.Image; diff --git a/src/main/java/com/zhangmeng/online/exam/ui/controller/MainController.java b/src/main/java/com/zhangmeng/online/exam/ui/controller/MainController.java index 9440653..43f6139 100644 --- a/src/main/java/com/zhangmeng/online/exam/ui/controller/MainController.java +++ b/src/main/java/com/zhangmeng/online/exam/ui/controller/MainController.java @@ -1,18 +1,11 @@ package com.zhangmeng.online.exam.ui.controller; -import com.alibaba.fastjson2.JSON; -import com.alibaba.fastjson2.JSONArray; -import com.alibaba.fastjson2.JSONObject; -import com.zhangmeng.online.exam.ui.admin.IndexPage; -import com.zhangmeng.online.exam.ui.admin.UserListPage; -import com.zhangmeng.online.exam.ui.api.ApiUtils; +import com.zhangmeng.online.exam.ui.utils.ApiUtils; import com.zhangmeng.online.exam.ui.components.DynamicTableComponent; import com.zhangmeng.online.exam.ui.components.callBack.DynamicTableComponentCallBackImpl; -import com.zhangmeng.online.exam.ui.layouts.SideMenu; import com.zhangmeng.online.exam.ui.module.MenuData; import com.zhangmeng.online.exam.ui.module.User; import com.zhangmeng.online.exam.ui.utils.FxUtils; -import com.zhangmeng.online.exam.ui.utils.HttpUtils; import javafx.fxml.FXML; import javafx.fxml.FXMLLoader; import javafx.geometry.Insets; @@ -24,9 +17,6 @@ import javafx.scene.control.*; import javafx.scene.layout.HBox; import javafx.stage.Stage; -import java.util.ArrayList; -import java.util.List; - import com.zhangmeng.online.exam.ui.service.UserService; import javafx.util.Callback; diff --git a/src/main/java/com/zhangmeng/online/exam/ui/controller/PaperEditController.java b/src/main/java/com/zhangmeng/online/exam/ui/controller/PaperEditController.java index ca2d2bf..ee45209 100644 --- a/src/main/java/com/zhangmeng/online/exam/ui/controller/PaperEditController.java +++ b/src/main/java/com/zhangmeng/online/exam/ui/controller/PaperEditController.java @@ -1,21 +1,17 @@ package com.zhangmeng.online.exam.ui.controller; import com.alibaba.fastjson2.JSONObject; -import com.zhangmeng.online.exam.ui.api.ApiUtils; +import com.zhangmeng.online.exam.ui.utils.ApiUtils; import com.zhangmeng.online.exam.ui.components.DynamicTableComponent; -import com.zhangmeng.online.exam.ui.module.QuestionType; import com.zhangmeng.online.exam.ui.module.SubjectType; -import com.zhangmeng.online.exam.ui.service.RoleService; import com.zhangmeng.online.exam.ui.service.SubjectService; import com.zhangmeng.online.exam.ui.service.UserService; import com.zhangmeng.online.exam.ui.utils.AlertUtils; import com.zhangmeng.online.exam.ui.utils.FxUtils; import com.zhangmeng.online.exam.ui.utils.HttpUtils; -import javafx.collections.FXCollections; import javafx.event.ActionEvent; import javafx.fxml.FXML; import javafx.scene.control.*; -import javafx.scene.control.cell.CheckBoxListCell; import javafx.scene.layout.HBox; import javafx.stage.Stage; import javafx.util.Callback; diff --git a/src/main/java/com/zhangmeng/online/exam/ui/controller/QuestionEditController.java b/src/main/java/com/zhangmeng/online/exam/ui/controller/QuestionEditController.java index 5dacd70..55a13d9 100644 --- a/src/main/java/com/zhangmeng/online/exam/ui/controller/QuestionEditController.java +++ b/src/main/java/com/zhangmeng/online/exam/ui/controller/QuestionEditController.java @@ -1,7 +1,5 @@ package com.zhangmeng.online.exam.ui.controller; -import com.zhangmeng.online.exam.ui.api.ApiUtils; -import com.zhangmeng.online.exam.ui.api.model.QuestionDataLoad; import com.zhangmeng.online.exam.ui.components.DynamicTableComponent; import com.zhangmeng.online.exam.ui.module.QuestionType; import com.zhangmeng.online.exam.ui.module.SubjectType; @@ -12,14 +10,10 @@ import com.zhangmeng.online.exam.ui.utils.FxUtils; import javafx.beans.property.SimpleLongProperty; import javafx.event.ActionEvent; import javafx.fxml.FXML; -import javafx.scene.Parent; import javafx.scene.control.*; import javafx.stage.Stage; -import javafx.stage.Window; -import javafx.util.Callback; import javafx.util.StringConverter; -import java.util.List; import java.util.Map; import static com.zhangmeng.online.exam.ui.utils.FxUtils.FX_BEANS; diff --git a/src/main/java/com/zhangmeng/online/exam/ui/controller/SubjectEditController.java b/src/main/java/com/zhangmeng/online/exam/ui/controller/SubjectEditController.java new file mode 100644 index 0000000..f32a302 --- /dev/null +++ b/src/main/java/com/zhangmeng/online/exam/ui/controller/SubjectEditController.java @@ -0,0 +1,104 @@ +package com.zhangmeng.online.exam.ui.controller; + +import com.zhangmeng.online.exam.ui.module.Subject; +import com.zhangmeng.online.exam.ui.service.SubjectService; +import com.zhangmeng.online.exam.ui.utils.AlertUtils; +import com.zhangmeng.online.exam.ui.utils.FxUtils; +import javafx.event.ActionEvent; +import javafx.fxml.FXML; +import javafx.scene.control.PasswordField; +import javafx.scene.control.TextField; +import javafx.stage.Stage; + +import static com.zhangmeng.online.exam.ui.utils.FxUtils.Subject_DynamicTableComponent; + +/** + * @author zm + * @date 2025/4/11 9:26 + * @version: 1.0 + */ +public class SubjectEditController { + + @FXML + public TextField nameField; + + @FXML + public TextField codeField; + + @FXML + public TextField descField; + + private Subject subject; + + public void setSubject(Subject subject) { + this.subject = subject; + this.nameField.setText(subject.getName()); + this.codeField.setText(subject.getCode()); + this.descField.setText(subject.getDesc()); + nameField.textProperty().bindBidirectional(subject.nameProperty()); + codeField.textProperty().bindBidirectional(subject.codeProperty()); + descField.textProperty().bindBidirectional(subject.descProperty()); + } + + @FXML + public void initialize() { + nameField.setPromptText("请输入科目名称"); + codeField.setPromptText("请输入考试代码"); + descField.setPromptText("请输入科目描述"); + subject = new Subject(); + nameField.textProperty().bindBidirectional(subject.nameProperty()); + codeField.textProperty().bindBidirectional(subject.codeProperty()); + descField.textProperty().bindBidirectional(subject.descProperty()); + } + + @FXML + public void handleSave(ActionEvent actionEvent) { + + if (nameField.getText().isEmpty()){ + AlertUtils.alert_msg("科目名称不能为空!"); + return; + } + + if (codeField.getText().isEmpty()){ + AlertUtils.alert_msg("科目代码不能为空!"); + return; + } + + if (descField.getText().isEmpty()){ + AlertUtils.alert_msg("科目描述不能为空!"); + return; + } + + System.out.println("科目名称:" + subject.getName() + + " 科目代码:" + subject.getCode() + + " 科目描述:" + subject.getDesc() + ); + + boolean isSuccess = SubjectService.saveSubject(subject); + if (isSuccess){ + if (subject.getId()!= null){ + AlertUtils.alert_msg("保存成功!"); + }else { + AlertUtils.alert_msg("更新成功!"); + } + closeDialog(); + FxUtils.FX_BEANS.get(Subject_DynamicTableComponent).flushData(); + + }else { + AlertUtils.alert_msg("操作失败!"); + } + } + + public void handleCancel(ActionEvent actionEvent) { + closeDialog(); + } + + public Subject getSubject() { + return subject; + } + + private void closeDialog() { + Stage stage = (Stage) nameField.getScene().getWindow(); + stage.close(); + } +} diff --git a/src/main/java/com/zhangmeng/online/exam/ui/layouts/SideMenu.java b/src/main/java/com/zhangmeng/online/exam/ui/layouts/SideMenu.java index 36a5a42..cd48129 100644 --- a/src/main/java/com/zhangmeng/online/exam/ui/layouts/SideMenu.java +++ b/src/main/java/com/zhangmeng/online/exam/ui/layouts/SideMenu.java @@ -1,28 +1,20 @@ package com.zhangmeng.online.exam.ui.layouts; import com.zhangmeng.online.exam.ui.admin.IndexPage; -import com.zhangmeng.online.exam.ui.api.ApiUtils; +import com.zhangmeng.online.exam.ui.utils.ApiUtils; import com.zhangmeng.online.exam.ui.components.DynamicTableComponent; -import com.zhangmeng.online.exam.ui.components.ShortAnswerComponent; import com.zhangmeng.online.exam.ui.components.callBack.DynamicTableComponentCallBackImpl; -import javafx.beans.property.SimpleMapProperty; -import javafx.beans.property.SimpleStringProperty; import javafx.beans.value.ChangeListener; import javafx.beans.value.ObservableValue; import javafx.geometry.Insets; -import javafx.scene.Parent; import javafx.scene.Scene; import javafx.scene.control.Accordion; -import javafx.scene.control.Button; import javafx.scene.control.Label; import javafx.scene.control.TitledPane; import javafx.scene.layout.HBox; import javafx.scene.layout.VBox; -import java.util.ArrayList; import java.util.List; -import java.util.Map; -import java.util.Set; /** diff --git a/src/main/java/com/zhangmeng/online/exam/ui/module/Subject.java b/src/main/java/com/zhangmeng/online/exam/ui/module/Subject.java new file mode 100644 index 0000000..d083aeb --- /dev/null +++ b/src/main/java/com/zhangmeng/online/exam/ui/module/Subject.java @@ -0,0 +1,68 @@ +package com.zhangmeng.online.exam.ui.module; + +import javafx.beans.property.SimpleIntegerProperty; +import javafx.beans.property.SimpleStringProperty; + +/** + * @author zm + * @date 2025/4/11 9:37 + * @version: 1.0 + */ +public class Subject { + + private final SimpleStringProperty id = new SimpleStringProperty(); + private final SimpleStringProperty name = new SimpleStringProperty(); + private final SimpleStringProperty code = new SimpleStringProperty(); + private final SimpleStringProperty desc = new SimpleStringProperty(); + + public Subject() { + } + + public String getId() { + return id.get(); + } + + public SimpleStringProperty idProperty() { + return id; + } + + public void setId(String id) { + this.id.set(id); + } + + public String getName() { + return name.get(); + } + + public SimpleStringProperty nameProperty() { + return name; + } + + public void setName(String name) { + this.name.set(name); + } + + public String getCode() { + return code.get(); + } + + public SimpleStringProperty codeProperty() { + return code; + } + + public void setCode(String code) { + this.code.set(code); + } + + public String getDesc() { + return desc.get(); + } + + public SimpleStringProperty descProperty() { + return desc; + } + + public void setDesc(String desc) { + this.desc.set(desc); + } +} diff --git a/src/main/java/com/zhangmeng/online/exam/ui/service/PermissionService.java b/src/main/java/com/zhangmeng/online/exam/ui/service/PermissionService.java index 6ab278e..6864ee1 100644 --- a/src/main/java/com/zhangmeng/online/exam/ui/service/PermissionService.java +++ b/src/main/java/com/zhangmeng/online/exam/ui/service/PermissionService.java @@ -3,7 +3,7 @@ package com.zhangmeng.online.exam.ui.service; import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONObject; -import com.zhangmeng.online.exam.ui.api.ApiUtils; +import com.zhangmeng.online.exam.ui.utils.ApiUtils; import com.zhangmeng.online.exam.ui.module.Permission; import com.zhangmeng.online.exam.ui.utils.AlertUtils; import com.zhangmeng.online.exam.ui.utils.FxUtils; @@ -14,7 +14,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import static com.zhangmeng.online.exam.ui.api.ApiUtils.API_URL; +import static com.zhangmeng.online.exam.ui.utils.ApiUtils.API_URL; import static com.zhangmeng.online.exam.ui.utils.FxUtils.Permission_DynamicTableComponent; /** diff --git a/src/main/java/com/zhangmeng/online/exam/ui/service/QuestionService.java b/src/main/java/com/zhangmeng/online/exam/ui/service/QuestionService.java index c6b8d96..3e89551 100644 --- a/src/main/java/com/zhangmeng/online/exam/ui/service/QuestionService.java +++ b/src/main/java/com/zhangmeng/online/exam/ui/service/QuestionService.java @@ -2,7 +2,7 @@ package com.zhangmeng.online.exam.ui.service; import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONObject; -import com.zhangmeng.online.exam.ui.api.ApiUtils; +import com.zhangmeng.online.exam.ui.utils.ApiUtils; import com.zhangmeng.online.exam.ui.module.QuestionType; import com.zhangmeng.online.exam.ui.utils.AlertUtils; import com.zhangmeng.online.exam.ui.utils.HttpUtils; diff --git a/src/main/java/com/zhangmeng/online/exam/ui/service/RoleService.java b/src/main/java/com/zhangmeng/online/exam/ui/service/RoleService.java index 0d258de..40f4ab2 100644 --- a/src/main/java/com/zhangmeng/online/exam/ui/service/RoleService.java +++ b/src/main/java/com/zhangmeng/online/exam/ui/service/RoleService.java @@ -3,15 +3,11 @@ package com.zhangmeng.online.exam.ui.service; import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONObject; -import com.zhangmeng.online.exam.ui.api.ApiUtils; +import com.zhangmeng.online.exam.ui.utils.ApiUtils; import com.zhangmeng.online.exam.ui.module.Permission; import com.zhangmeng.online.exam.ui.module.Role; import com.zhangmeng.online.exam.ui.module.RoleType; -import com.zhangmeng.online.exam.ui.module.User; -import com.zhangmeng.online.exam.ui.utils.AlertUtils; -import com.zhangmeng.online.exam.ui.utils.FxUtils; import com.zhangmeng.online.exam.ui.utils.HttpUtils; -import javafx.beans.property.SimpleStringProperty; import javafx.collections.ObservableList; import java.util.ArrayList; @@ -19,8 +15,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import static com.zhangmeng.online.exam.ui.api.ApiUtils.API_URL; -import static com.zhangmeng.online.exam.ui.utils.FxUtils.User_DynamicTableComponent; +import static com.zhangmeng.online.exam.ui.utils.ApiUtils.API_URL; /** * @author zm diff --git a/src/main/java/com/zhangmeng/online/exam/ui/service/SubjectService.java b/src/main/java/com/zhangmeng/online/exam/ui/service/SubjectService.java index 98772e5..c022171 100644 --- a/src/main/java/com/zhangmeng/online/exam/ui/service/SubjectService.java +++ b/src/main/java/com/zhangmeng/online/exam/ui/service/SubjectService.java @@ -1,9 +1,10 @@ package com.zhangmeng.online.exam.ui.service; +import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONObject; -import com.zhangmeng.online.exam.ui.api.ApiUtils; -import com.zhangmeng.online.exam.ui.module.QuestionType; +import com.zhangmeng.online.exam.ui.module.Subject; +import com.zhangmeng.online.exam.ui.utils.ApiUtils; import com.zhangmeng.online.exam.ui.module.SubjectType; import com.zhangmeng.online.exam.ui.utils.HttpUtils; @@ -31,4 +32,34 @@ public class SubjectService { } return questionTypes; } + + public static boolean saveSubject(Subject subject) { + + Map map = new HashMap<>(); + map.put("id", subject.getId() == null? "" : subject.getId()); + map.put("name", subject.getName()); + map.put("desc", subject.getDesc()); + map.put("code", subject.getCode()); + String result = HttpUtils.POST(ApiUtils.API_URL + "/subject/saveSubject", map); + JSONObject jsonObject = JSON.parseObject(result); + return jsonObject.getIntValue("code") == 200; + } + + public static Subject getSubjectById(String id) { + + Subject subject = null ; + Map params = new HashMap<>(); + params.put("id", id); + String result = HttpUtils.GET(ApiUtils.API_URL + "/subject/getSubjectById",params); + JSONObject jsonObject = JSON.parseObject(result); + if (jsonObject.getIntValue("code") == 200) { + subject = new Subject(); + JSONObject data = jsonObject.getJSONObject("data"); + subject.setId(data.getString("id")); + subject.setName(data.getString("name")); + subject.setCode(data.getString("code")); + subject.setDesc(data.getString("desc")); + } + return subject; + } } diff --git a/src/main/java/com/zhangmeng/online/exam/ui/service/UserService.java b/src/main/java/com/zhangmeng/online/exam/ui/service/UserService.java index 5513406..2a0b75c 100644 --- a/src/main/java/com/zhangmeng/online/exam/ui/service/UserService.java +++ b/src/main/java/com/zhangmeng/online/exam/ui/service/UserService.java @@ -3,18 +3,14 @@ package com.zhangmeng.online.exam.ui.service; import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONObject; -import com.zhangmeng.online.exam.ui.api.ApiUtils; +import com.zhangmeng.online.exam.ui.utils.ApiUtils; import com.zhangmeng.online.exam.ui.module.MenuData; import com.zhangmeng.online.exam.ui.module.User; import com.zhangmeng.online.exam.ui.utils.AlertUtils; import com.zhangmeng.online.exam.ui.utils.FxUtils; import com.zhangmeng.online.exam.ui.utils.HttpUtils; -import javafx.fxml.FXMLLoader; -import javafx.scene.Parent; -import javafx.scene.Scene; import javafx.scene.control.Label; import javafx.scene.control.TreeItem; -import javafx.stage.Stage; import com.zhangmeng.online.exam.ui.module.Role; import java.util.ArrayList; import java.util.HashMap; diff --git a/src/main/java/com/zhangmeng/online/exam/ui/user/UserPage.java b/src/main/java/com/zhangmeng/online/exam/ui/user/UserPage.java index bc13ea7..f66c711 100644 --- a/src/main/java/com/zhangmeng/online/exam/ui/user/UserPage.java +++ b/src/main/java/com/zhangmeng/online/exam/ui/user/UserPage.java @@ -1,6 +1,6 @@ package com.zhangmeng.online.exam.ui.user; -import com.zhangmeng.online.exam.ui.api.ApiUtils; +import com.zhangmeng.online.exam.ui.utils.ApiUtils; import com.zhangmeng.online.exam.ui.layouts.SideMenu; import com.zhangmeng.online.exam.ui.layouts.TopMenu; import javafx.scene.layout.AnchorPane; diff --git a/src/main/java/com/zhangmeng/online/exam/ui/api/ApiUtils.java b/src/main/java/com/zhangmeng/online/exam/ui/utils/ApiUtils.java similarity index 98% rename from src/main/java/com/zhangmeng/online/exam/ui/api/ApiUtils.java rename to src/main/java/com/zhangmeng/online/exam/ui/utils/ApiUtils.java index a211920..b0307cf 100644 --- a/src/main/java/com/zhangmeng/online/exam/ui/api/ApiUtils.java +++ b/src/main/java/com/zhangmeng/online/exam/ui/utils/ApiUtils.java @@ -1,6 +1,7 @@ -package com.zhangmeng.online.exam.ui.api; +package com.zhangmeng.online.exam.ui.utils; import com.zhangmeng.online.exam.ui.admin.IndexPage; +import com.zhangmeng.online.exam.ui.api.DataLoad; import com.zhangmeng.online.exam.ui.api.form.*; import com.zhangmeng.online.exam.ui.api.model.*; import com.zhangmeng.online.exam.ui.components.DynamicTableComponent; @@ -86,6 +87,7 @@ public class ApiUtils { public static DataView getSubjectList() { DataLoad dataLoad = new SubjectDataLoad(); + dataLoad.setForm(new SubjectForm()); return dataLoad.loadData(PAGE_NUM,PAGE_SIZE); } diff --git a/src/main/java/com/zhangmeng/online/exam/ui/utils/FxUtils.java b/src/main/java/com/zhangmeng/online/exam/ui/utils/FxUtils.java index d911457..1889f09 100644 --- a/src/main/java/com/zhangmeng/online/exam/ui/utils/FxUtils.java +++ b/src/main/java/com/zhangmeng/online/exam/ui/utils/FxUtils.java @@ -49,6 +49,10 @@ public class FxUtils { form = new QuestionForm(); } + if (form instanceof SubjectForm) { + form = new SubjectForm(); + } + Scene scene = new Scene(form); Stage dialogStage = new Stage(); dialogStage.setTitle(title); @@ -82,6 +86,10 @@ public class FxUtils { form = new PermissionForm(); } + if (form instanceof SubjectForm){ + form = new SubjectForm(); + } + Scene scene = null; if (!isEdit) { scene = new Scene(form); diff --git a/src/main/resources/fxml/subject-edit.fxml b/src/main/resources/fxml/subject-edit.fxml new file mode 100644 index 0000000..1d58007 --- /dev/null +++ b/src/main/resources/fxml/subject-edit.fxml @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + +