From 8161575e76294d4e27b1e70985329a8913b5d8e2 Mon Sep 17 00:00:00 2001 From: user Date: Sat, 1 Mar 2025 10:40:18 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BC=98=E5=8C=96=E8=8F=9C=E5=8D=95?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E5=8A=9F=E8=83=BD=E5=92=8C=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=BA=93=E7=BB=93=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc/AICode.cmd | 7 +++- .../vxnet/pms/repository/MenuRepository.java | 3 ++ .../com/vxnet/pms/service/MenuService.java | 4 +-- .../com/vxnet/pms/web/rest/MenuResource.java | 4 +-- .../00000000000000_initial_schema.xml | 32 ++++++++--------- .../20240325000001_added_entity_Menu.xml | 36 +++++++++---------- .../20240325000002_added_entity_Company.xml | 20 +++++------ .../login-form/login-form.component.ts | 4 +-- .../webapp/app/admin/menu/menu.component.ts | 20 +++-------- src/main/webapp/app/admin/menu/menu.vue | 10 ++---- 10 files changed, 67 insertions(+), 73 deletions(-) diff --git a/doc/AICode.cmd b/doc/AICode.cmd index d91efeb..1401e6b 100644 --- a/doc/AICode.cmd +++ b/doc/AICode.cmd @@ -22,8 +22,12 @@ MySQL数据库要求如下: 10. 增加一个用户管理功能,允许用户自定义用户,用户可以自定义角色,角色可以自定义权限,用户可以自定义部门 11. 创建一个用户登陆web界面,登陆后显示一个JasperReport报表。 -12. 新增一个菜单数据表jhi_company,保存公司许可信息,后端API基本接口功能 和 +12. 新增一个数据表jhi_company,保存公司许可信息,后端API基本接口功能 和 liquibase 数据库初始化脚本,同时将数据库初始化脚本 打包到项目中。 + +13. 新增一个数据表jhi_region,保存地区信息,需要有层级关系,而且地区要有对应一个所属公司编号, + 后端API基本接口功能 和 liquibase 数据库初始化脚本,同时将数据库初始化脚本 打包到项目中。 + 对应打开的功能项,用户可以配置自定义菜单。 请将前端有现的静态菜单 增加到菜单表格 ,然后修改前端为动态菜单方式,读取数据库的菜单配置信息,并显示 @@ -53,6 +57,7 @@ mvn spring-boot:run -P dev ./mvnw clean package -DskipTests java -jar target/jewpms-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev +修改为使用Bootstrap Vue的模态框ID方式 请初始化git 连接到远程仓库 https://gitea.vxnet.cn/admingit/jewpms.git 提交更新项目代码 diff --git a/src/main/java/com/vxnet/pms/repository/MenuRepository.java b/src/main/java/com/vxnet/pms/repository/MenuRepository.java index 15d0cd7..0d6f6e7 100644 --- a/src/main/java/com/vxnet/pms/repository/MenuRepository.java +++ b/src/main/java/com/vxnet/pms/repository/MenuRepository.java @@ -11,6 +11,9 @@ import reactor.core.publisher.Mono; @Repository public interface MenuRepository extends R2dbcRepository { + @Query("SELECT * FROM jhi_menu ORDER BY id") + Flux findAll(Pageable pageable); + @Query("SELECT * FROM jhi_menu WHERE parent_id IS NULL ORDER BY order_num") Flux findRootMenus(); diff --git a/src/main/java/com/vxnet/pms/service/MenuService.java b/src/main/java/com/vxnet/pms/service/MenuService.java index 3957f72..99ebb99 100644 --- a/src/main/java/com/vxnet/pms/service/MenuService.java +++ b/src/main/java/com/vxnet/pms/service/MenuService.java @@ -65,8 +65,8 @@ public class MenuService { } @Transactional(readOnly = true) - public Flux getAllMenus() { - return menuRepository.findAll(); + public Flux getAllMenus(Pageable pageable) { + return menuRepository.findAll(pageable); } @Transactional(readOnly = true) diff --git a/src/main/java/com/vxnet/pms/web/rest/MenuResource.java b/src/main/java/com/vxnet/pms/web/rest/MenuResource.java index 9356310..0324b35 100644 --- a/src/main/java/com/vxnet/pms/web/rest/MenuResource.java +++ b/src/main/java/com/vxnet/pms/web/rest/MenuResource.java @@ -40,8 +40,8 @@ public class MenuResource { } @GetMapping("/menus") - public Flux getAllMenus() { - return menuService.getAllMenus(); + public Flux getAllMenus(@RequestParam(defaultValue = "0") int page, @RequestParam(defaultValue = "10") int size) { + return menuService.getAllMenus(PageRequest.of(page, size)); } @GetMapping("/menus/tree") diff --git a/src/main/resources/config/liquibase/changelog/00000000000000_initial_schema.xml b/src/main/resources/config/liquibase/changelog/00000000000000_initial_schema.xml index 251e052..bd06835 100644 --- a/src/main/resources/config/liquibase/changelog/00000000000000_initial_schema.xml +++ b/src/main/resources/config/liquibase/changelog/00000000000000_initial_schema.xml @@ -12,34 +12,34 @@ --> - + - + - - - - + + + + - - + + - - - - + + + + - - + + - - + + diff --git a/src/main/resources/config/liquibase/changelog/20240325000001_added_entity_Menu.xml b/src/main/resources/config/liquibase/changelog/20240325000001_added_entity_Menu.xml index b98c16a..6496ded 100644 --- a/src/main/resources/config/liquibase/changelog/20240325000001_added_entity_Menu.xml +++ b/src/main/resources/config/liquibase/changelog/20240325000001_added_entity_Menu.xml @@ -8,46 +8,46 @@ - + - + - + - - - + + + - - + + - + - + - - - - + + + + - + - + - + - + diff --git a/src/main/resources/config/liquibase/changelog/20240325000002_added_entity_Company.xml b/src/main/resources/config/liquibase/changelog/20240325000002_added_entity_Company.xml index 66bf4ab..0219e1b 100644 --- a/src/main/resources/config/liquibase/changelog/20240325000002_added_entity_Company.xml +++ b/src/main/resources/config/liquibase/changelog/20240325000002_added_entity_Company.xml @@ -8,22 +8,22 @@ - + - + - + - - - - - - - + + + + + + + diff --git a/src/main/webapp/app/account/login-form/login-form.component.ts b/src/main/webapp/app/account/login-form/login-form.component.ts index beae500..82b1169 100644 --- a/src/main/webapp/app/account/login-form/login-form.component.ts +++ b/src/main/webapp/app/account/login-form/login-form.component.ts @@ -9,8 +9,8 @@ export default defineComponent({ compatConfig: { MODE: 3 }, setup() { const authenticationError: Ref = ref(false); - const login: Ref = ref(null); - const password: Ref = ref(null); + const login: Ref = ref('admin'); + const password: Ref = ref('admin'); const rememberMe: Ref = ref(false); const route = useRoute(); const router = useRouter(); diff --git a/src/main/webapp/app/admin/menu/menu.component.ts b/src/main/webapp/app/admin/menu/menu.component.ts index 19fc404..d3d9860 100644 --- a/src/main/webapp/app/admin/menu/menu.component.ts +++ b/src/main/webapp/app/admin/menu/menu.component.ts @@ -6,6 +6,7 @@ import axios from 'axios'; import TreeTable from 'vue-table-with-tree-grid'; export default defineComponent({ + compatConfig: { MODE: 3 }, name: 'Menu', components: { TreeTable, @@ -17,6 +18,7 @@ export default defineComponent({ const isFetching = ref(false); const removeId = ref(null); const dialogTitle = ref(''); + const editDialogRef = ref(null); const columns = [ { @@ -101,9 +103,6 @@ export default defineComponent({ loadAll(); }; - const editDialogRef = ref(null); - const deleteDialogRef = ref(null); - const openDialog = () => { dialogTitle.value = t('jewpmsApp.menu.home.createLabel'); menu.value = { @@ -120,13 +119,7 @@ export default defineComponent({ lastmodby: '', version: 0, }; - const modal = document.getElementById('editDialog'); - if (modal) { - const bModal = (modal as any).__vue__.$refs.modal; - if (bModal) { - bModal.show(); - } - } + editDialogRef.value?.show(); }; const closeDialog = () => { @@ -141,8 +134,8 @@ export default defineComponent({ const prepareDelete = menuItem => { removeId.value = menuItem.id; - menu.value = menuItem; - deleteDialogRef.value?.show(); + menu.value = { ...menuItem }; + //deleteDialogRef.value?.show(); }; const save = async () => { @@ -166,7 +159,6 @@ export default defineComponent({ const removeMenu = async () => { try { await axios.delete(`api/menus/${removeId.value}`); - closeDialog(); loadAll(); } catch (err) { console.error('Error deleting menu:', err); @@ -192,10 +184,8 @@ export default defineComponent({ prepareDelete, save, removeMenu, - deleteMenu: removeMenu, getParentName, editDialogRef, - deleteDialogRef, }; }, }); diff --git a/src/main/webapp/app/admin/menu/menu.vue b/src/main/webapp/app/admin/menu/menu.vue index c91d05f..d0a512c 100644 --- a/src/main/webapp/app/admin/menu/menu.vue +++ b/src/main/webapp/app/admin/menu/menu.vue @@ -3,10 +3,6 @@

- Launch demo modal - -

Hello from modal!

-
- @@ -98,8 +94,8 @@ - -

+ +

{{ $t('jewpmsApp.menu.delete.question') }} id: {{ removeId }}