增加通知公告功能

This commit is contained in:
2026-09-08 23:22:49 +08:00
parent beaeb4a234
commit 672c22d9b6
12 changed files with 1416 additions and 6 deletions
+69
View File
@@ -0,0 +1,69 @@
-- 通知公告菜单(租户端):挂在“办公自动化”模块目录下。
--
-- 说明:
-- 1. 本脚本只创建/修正 yz_system_menu 菜单记录,不涉及通知公告业务数据表。
-- 2. 路由由前端根据登录接口返回的菜单数据动态注册;
-- 不需要在 backend/src/router/index.js 中增加静态业务路由。
-- 3. 执行完成后,请在角色菜单权限关联表中为目标角色授予“通知公告”菜单权限,
-- 然后退出重登或清理菜单缓存。
--
-- views: [2] = 租户端
-- type: 1 = 目录,2 = 页面
-- 脚本可重复执行:通过 path 判重,已有记录会被修正为当前配置。
-- 确保“办公自动化”父级目录存在。
INSERT INTO `yz_system_menu`
(`pid`, `title`, `path`, `component_path`, `icon`, `sort`, `status`, `is_visible`, `views`, `type`, `remark`)
SELECT
0, '办公自动化', '/apps/oa', '', 'Document', 31, 1, 1, '[2]', 1, '办公自动化模块'
FROM DUAL
WHERE NOT EXISTS (
SELECT 1
FROM (SELECT * FROM `yz_system_menu`) AS t
WHERE t.`path` = '/apps/oa'
);
SET @oa_pid := (
SELECT `id`
FROM `yz_system_menu`
WHERE `path` = '/apps/oa'
ORDER BY `id`
LIMIT 1
);
-- 新增“通知公告”页面菜单。
INSERT INTO `yz_system_menu`
(`pid`, `title`, `path`, `component_path`, `icon`, `sort`, `status`, `is_visible`, `views`, `type`, `remark`)
SELECT
@oa_pid,
'通知公告',
'/apps/oa/notice',
'/apps/oa/notice/index.vue',
'Bell',
7,
1,
1,
'[2]',
2,
'通知公告发布与管理'
FROM DUAL
WHERE NOT EXISTS (
SELECT 1
FROM (SELECT * FROM `yz_system_menu`) AS t
WHERE t.`path` = '/apps/oa/notice'
);
-- 修正历史或手工新增菜单的动态组件路径及基础属性。
UPDATE `yz_system_menu`
SET
`pid` = @oa_pid,
`title` = '通知公告',
`component_path` = '/apps/oa/notice/index.vue',
`icon` = 'Bell',
`sort` = 7,
`status` = 1,
`is_visible` = 1,
`views` = '[2]',
`type` = 2,
`remark` = '通知公告发布与管理'
WHERE `path` = '/apps/oa/notice';
+25
View File
@@ -0,0 +1,25 @@
-- OA 通知公告表
-- 在租户业务库执行以下语句创建表结构。
-- 数据按租户 tid 隔离;发布后对租户内所有后台用户可见。
CREATE TABLE `yz_backend_oa_notice` (
`id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`tid` int NOT NULL DEFAULT '0' COMMENT '租户ID',
`title` varchar(255) NOT NULL DEFAULT '' COMMENT '公告标题',
`content` text NULL COMMENT '公告内容',
`notice_type` tinyint NOT NULL DEFAULT '0' COMMENT '类型 0-通知 1-公告 2-活动',
`level` tinyint NOT NULL DEFAULT '0' COMMENT '紧急程度 0-普通 1-重要 2-紧急',
`status` tinyint NOT NULL DEFAULT '0' COMMENT '状态 0-草稿 1-已发布 2-已下架',
`is_top` tinyint NOT NULL DEFAULT '0' COMMENT '是否置顶 0-否 1-是',
`publish_time` datetime DEFAULT NULL COMMENT '发布时间',
`publisher_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '发布人ID',
`publisher_name` varchar(100) NOT NULL DEFAULT '' COMMENT '发布人姓名',
`read_count` int NOT NULL DEFAULT '0' COMMENT '阅读次数',
`is_deleted` tinyint NOT NULL DEFAULT '0' COMMENT '是否删除 0-否 1-是',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`delete_time` datetime DEFAULT NULL COMMENT '删除时间',
PRIMARY KEY (`id`),
KEY `idx_tid_status` (`tid`,`status`),
KEY `idx_tid_top` (`tid`,`is_top`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='OA通知公告表';