diff --git a/screen-vue/src/api/bizModule.js b/screen-vue/src/api/bizModule.js
new file mode 100644
index 0000000..d7a8c43
--- /dev/null
+++ b/screen-vue/src/api/bizModule.js
@@ -0,0 +1,12 @@
+import request from '@/utils/request'
+
+/**
+ * 获取指标信息列表
+ */
+export function getHomeModuleList(params) {
+ return request({
+ url: '/biz/homeModule/list',
+ method: 'get',
+ params: params
+ })
+}
\ No newline at end of file
diff --git a/screen-vue/src/components/Layout/index.vue b/screen-vue/src/components/Layout/index.vue
index a891ab2..faf9d10 100644
--- a/screen-vue/src/components/Layout/index.vue
+++ b/screen-vue/src/components/Layout/index.vue
@@ -325,9 +325,10 @@ const handleFullScreen = () => {
}
const handleBigScreen = () => {
- if (!isMounted.value) return
- const baseUrl = window.location.origin + "/#/bigScreen";
- window.open(baseUrl, '_blank');
+ const { href } = router.resolve({
+ path: "/bigScreen"
+ });
+ window.open(href, '_blank');
}
const handleCommand = (cmd) => {
diff --git a/screen-vue/src/router/index.js b/screen-vue/src/router/index.js
index 4e8b934..fb15d8c 100644
--- a/screen-vue/src/router/index.js
+++ b/screen-vue/src/router/index.js
@@ -3,10 +3,46 @@ import Login from '@/views/Login.vue'
import Page404 from '@/views/error/404.vue'
import Layout from '@/components/Layout/index.vue'
import Dashboard from '@/views/desktop/index.vue'
-import bigScreen from '@/views/screen/index.vue'
+import BigScreen from '@/views/screen/index.vue'
+import BigScreenWork from '@/views/screen/Work/index.vue'
import { useUserStore } from '@/stores/user'
import { ElMessage } from 'element-plus'
+const bigScreenModules = import.meta.glob('../views/screen/**/{index,list}.vue', {
+ eager: false,
+ import: 'default'
+})
+
+const generateBigScreenRoutes = () => {
+ const routes = []
+
+ Object.entries(bigScreenModules).forEach(([filePath, module]) => {
+ if (filePath === '../views/screen/index.vue') return;
+
+ const routePath = filePath
+ .replace('../views', '')
+ .replace('.vue', '')
+ .toLowerCase();
+
+ const finalPath = routePath;
+ const routeName = finalPath
+ .split('/')
+ .filter(Boolean)
+ .map(seg => seg.charAt(0).toUpperCase() + seg.slice(1))
+ .join('')
+ || 'SystemRoleIndex';
+
+ routes.push({
+ path: finalPath,
+ name: routeName,
+ component: module,
+ meta: { requiresAuth: true }
+ })
+ })
+
+ return routes
+}
+
const modules = import.meta.glob('../views/**/{index,list}.vue', {
eager: false,
import: 'default'
@@ -18,10 +54,10 @@ const generateRoutes = () => {
Object.entries(modules).forEach(([filePath, module]) => {
const excludePaths = [
'views/Login.vue',
- 'views/desktop/index.vue',
- 'views/error/',
+ 'views/desktop/index.vue',
+ 'views/error/',
'views/screen/',
- ]
+ ]
if (excludePaths.some(path => filePath.includes(path))) {
return
}
@@ -40,7 +76,8 @@ const generateRoutes = () => {
routes.push({
path: routePath,
name: routeName || 'SystemRoleIndex',
- component: module
+ component: module,
+ meta: { requiresAuth: true }
})
})
@@ -56,9 +93,22 @@ const routes = [
},
{
path: '/bigScreen',
- name: 'bigScreen',
- component: bigScreen,
- meta: { requiresAuth: true }
+ name: 'BigScreen',
+ component: BigScreen,
+ meta: { requiresAuth: true },
+ children: [
+ {
+ path: '/bigScreenWork',
+ name: 'BigScreenWork',
+ component: BigScreenWork
+ },
+ ...generateBigScreenRoutes(),
+ {
+ path: '/:pathMatch(.*)*',
+ name: 'BigScreen404',
+ component: Page404
+ }
+ ]
},
{
path: '/',
diff --git a/screen-vue/src/views/database/screen/form.vue b/screen-vue/src/views/database/screen/form.vue
new file mode 100644
index 0000000..bc9b1b9
--- /dev/null
+++ b/screen-vue/src/views/database/screen/form.vue
@@ -0,0 +1,147 @@
+
+
- * 前端控制器 + * 前端控制器 *
* * @author gaoxq @@ -17,6 +21,13 @@ import org.springframework.web.bind.annotation.RestController; @RequestMapping("/biz/homeModule") public class HomeModuleController { + @Resource + private HomeModuleService moduleService; + + @GetMapping("list") + public Result> getList() { + return Result.success(moduleService.list()); + } public Result+ * 前端控制器 + *
+ * + * @author gaoxq + * @since 2026-03-07 + */ +@RestController +@RequestMapping("/biz/homeModuleGroup") +public class HomeModuleGroupController { + + + @Resource + private HomeModuleGroupService moduleGroupService; + + @GetMapping("list") + public Result> getList(){ + return Result.success(moduleGroupService.list()); + } + +} diff --git a/src/main/java/com/mini/mybigscreen/biz/domain/HomeModule.java b/src/main/java/com/mini/mybigscreen/biz/domain/HomeModule.java index 381795f..917efa1 100644 --- a/src/main/java/com/mini/mybigscreen/biz/domain/HomeModule.java +++ b/src/main/java/com/mini/mybigscreen/biz/domain/HomeModule.java @@ -4,12 +4,8 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; - -import java.io.Serial; import java.io.Serializable; import java.time.LocalDateTime; - -import com.mini.mybigscreen.Model.BaseEntity; import lombok.Getter; import lombok.Setter; @@ -19,14 +15,13 @@ import lombok.Setter; * * * @author gaoxq - * @since 2026-02-27 + * @since 2026-03-07 */ @Getter @Setter @TableName("biz_home_module") -public class HomeModule extends BaseEntity implements Serializable { +public class HomeModule implements Serializable { - @Serial private static final long serialVersionUID = 1L; @TableField("create_time") @@ -47,9 +42,18 @@ public class HomeModule extends BaseEntity implements Serializable { @TableField("module_code") private String moduleCode; + @TableField("path") + private String path; + + @TableField("title_name") + private String titleName; + /** * 说明描述 */ @TableField("remark") private String remark; + + @TableField("ustatus") + private String ustatus; } diff --git a/src/main/java/com/mini/mybigscreen/biz/domain/HomeModuleGroup.java b/src/main/java/com/mini/mybigscreen/biz/domain/HomeModuleGroup.java new file mode 100644 index 0000000..e6f0b25 --- /dev/null +++ b/src/main/java/com/mini/mybigscreen/biz/domain/HomeModuleGroup.java @@ -0,0 +1,38 @@ +package com.mini.mybigscreen.biz.domain; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import java.io.Serializable; +import java.time.LocalDateTime; +import lombok.Getter; +import lombok.Setter; + +/** + *+ * + *
+ * + * @author gaoxq + * @since 2026-03-07 + */ +@Getter +@Setter +@TableName("biz_home_module_group") +public class HomeModuleGroup implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableField("create_time") + private LocalDateTime createTime; + + @TableId(value = "group_id", type = IdType.AUTO) + private String groupId; + + @TableField("group_name") + private String groupName; + + @TableField("ustatus") + private Integer ustatus; +} diff --git a/src/main/java/com/mini/mybigscreen/biz/mapper/HomeModuleGroupMapper.java b/src/main/java/com/mini/mybigscreen/biz/mapper/HomeModuleGroupMapper.java new file mode 100644 index 0000000..cfdbf44 --- /dev/null +++ b/src/main/java/com/mini/mybigscreen/biz/mapper/HomeModuleGroupMapper.java @@ -0,0 +1,16 @@ +package com.mini.mybigscreen.biz.mapper; + +import com.github.yulichang.base.MPJBaseMapper; +import com.mini.mybigscreen.biz.domain.HomeModuleGroup; + +/** + *+ * Mapper 接口 + *
+ * + * @author gaoxq + * @since 2026-03-07 + */ +public interface HomeModuleGroupMapper extends MPJBaseMapper+ * 服务类 + *
+ * + * @author gaoxq + * @since 2026-03-07 + */ +public interface HomeModuleGroupService extends IService+ * 服务实现类 + *
+ * + * @author gaoxq + * @since 2026-03-07 + */ +@Service +public class HomeModuleGroupServiceImpl extends ServiceImpl