增加档案功能

This commit is contained in:
2026-08-29 22:06:00 +08:00
parent 2dfc6d6aaf
commit 79217187ac
21 changed files with 2015 additions and 488 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/compensation',
'/apps/oa/compensation/index.vue',
'Money',
6,
1,
1,
'[2]',
2,
'员工薪资档案与月度工资核算'
FROM DUAL
WHERE NOT EXISTS (
SELECT 1
FROM (SELECT * FROM `yz_system_menu`) AS t
WHERE t.`path` = '/apps/oa/compensation'
);
-- 修正历史或手工新增菜单的动态组件路径及基础属性。
UPDATE `yz_system_menu`
SET
`pid` = @oa_pid,
`title` = '薪酬管理',
`component_path` = '/apps/oa/compensation/index.vue',
`icon` = 'Money',
`sort` = 6,
`status` = 1,
`is_visible` = 1,
`views` = '[2]',
`type` = 2,
`remark` = '员工薪资档案与月度工资核算'
WHERE `path` = '/apps/oa/compensation';
+73 -78
View File
@@ -1,96 +1,91 @@
-- 组织架构菜单(租户端):进销存与办公自动化各自一套入口,指向共用页面组件。
--
-- 前置:yz_system_menu 中已存在 path 为 /apps/erp 与 /apps/oa 的模块目录菜单。
-- 若不存在,脚本会自动创建这两个目录菜单。
-- views 字段:[1] 平台端 / [2] 租户端 / [1,2] 双端。组织架构属于租户端,固定为 [2]。
-- type 字段:1-目录 2-页面。
--
-- 脚本可重复执行:按 path 判重,已存在的菜单会更新组件路径与标题。
-- 全局基础设置:组织架构、人员管理、职位管理
-- 三项功能使用统一组织数据,统一归入全局“基础设置”,不再隶属 OA 或 ERP。
-- views:[2] 租户后台;type:1-目录,2-页面。
-- 可重复执行。最后会删除 OA / ERP 下的历史重复页面菜单。
-- ---------------------------------------------------------------------------
-- 1. 确保模块目录存在
-- ---------------------------------------------------------------------------
INSERT INTO `yz_system_menu` (`pid`, `title`, `path`, `component_path`, `icon`, `sort`, `status`, `is_visible`, `views`, `type`, `remark`)
SELECT 0, '进销存', '/apps/erp', '', 'Goods', 30, 1, 1, '[2]', 1, '进销存模块'
-- 1. 确保全局“基础设置”目录存在
INSERT INTO `yz_system_menu`
(`pid`, `title`, `path`, `component_path`, `icon`, `sort`, `status`, `is_visible`, `views`, `type`, `remark`)
SELECT
0, '基础设置', '/basic-settings', '', 'Setting', 20, 1, 1, '[2]', 1, '全局基础数据维护'
FROM DUAL
WHERE NOT EXISTS (
SELECT 1 FROM (SELECT * FROM `yz_system_menu`) AS t WHERE t.`path` = '/apps/erp'
SELECT 1 FROM (SELECT * FROM `yz_system_menu`) AS t
WHERE t.`path` = '/basic-settings'
);
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, '办公自动化模块'
SET @basic_settings_pid := (
SELECT `id` FROM `yz_system_menu`
WHERE `path` = '/basic-settings'
ORDER BY `id` LIMIT 1
);
-- 2. 创建全局入口
INSERT INTO `yz_system_menu`
(`pid`, `title`, `path`, `component_path`, `icon`, `sort`, `status`, `is_visible`, `views`, `type`, `remark`)
SELECT
@basic_settings_pid, '组织架构', '/basic-settings/organization',
'/basicSettings/organization/index.vue', 'OfficeBuilding', 1, 1, 1, '[2]', 2,
'全局组织架构维护,与所有业务模块共用'
FROM DUAL
WHERE NOT EXISTS (
SELECT 1 FROM (SELECT * FROM `yz_system_menu`) AS t WHERE t.`path` = '/apps/oa'
SELECT 1 FROM (SELECT * FROM `yz_system_menu`) AS t
WHERE t.`path` = '/basic-settings/organization'
);
SET @erp_pid := (SELECT `id` FROM `yz_system_menu` WHERE `path` = '/apps/erp' ORDER BY `id` LIMIT 1);
SET @oa_pid := (SELECT `id` FROM `yz_system_menu` WHERE `path` = '/apps/oa' ORDER BY `id` LIMIT 1);
-- ---------------------------------------------------------------------------
-- 2. 进销存:组织架构 / 员工管理 / 职位管理
-- ---------------------------------------------------------------------------
INSERT INTO `yz_system_menu` (`pid`, `title`, `path`, `component_path`, `icon`, `sort`, `status`, `is_visible`, `views`, `type`, `remark`)
SELECT @erp_pid, '组织架构', '/apps/erp/organization', '/apps/erp/organization/index.vue', 'OfficeBuilding', 1, 1, 1, '[2]', 2, '与OA共用组织数据'
INSERT INTO `yz_system_menu`
(`pid`, `title`, `path`, `component_path`, `icon`, `sort`, `status`, `is_visible`, `views`, `type`, `remark`)
SELECT
@basic_settings_pid, '人员管理', '/basic-settings/employee',
'/basicSettings/employee/index.vue', 'User', 2, 1, 1, '[2]', 2,
'全局人员维护,与所有业务模块共用'
FROM DUAL
WHERE NOT EXISTS (
SELECT 1 FROM (SELECT * FROM `yz_system_menu`) AS t WHERE t.`path` = '/apps/erp/organization'
SELECT 1 FROM (SELECT * FROM `yz_system_menu`) AS t
WHERE t.`path` = '/basic-settings/employee'
);
INSERT INTO `yz_system_menu` (`pid`, `title`, `path`, `component_path`, `icon`, `sort`, `status`, `is_visible`, `views`, `type`, `remark`)
SELECT @erp_pid, '员工管理', '/apps/erp/employee', '/apps/erp/employee/index.vue', 'User', 2, 1, 1, '[2]', 2, '与OA共用员工数据'
INSERT INTO `yz_system_menu`
(`pid`, `title`, `path`, `component_path`, `icon`, `sort`, `status`, `is_visible`, `views`, `type`, `remark`)
SELECT
@basic_settings_pid, '职位管理', '/basic-settings/position',
'/basicSettings/position/index.vue', 'Postcard', 3, 1, 1, '[2]', 2,
'全局职位维护,与所有业务模块共用'
FROM DUAL
WHERE NOT EXISTS (
SELECT 1 FROM (SELECT * FROM `yz_system_menu`) AS t WHERE t.`path` = '/apps/erp/employee'
SELECT 1 FROM (SELECT * FROM `yz_system_menu`) AS t
WHERE t.`path` = '/basic-settings/position'
);
INSERT INTO `yz_system_menu` (`pid`, `title`, `path`, `component_path`, `icon`, `sort`, `status`, `is_visible`, `views`, `type`, `remark`)
SELECT @erp_pid, '职位管理', '/apps/erp/position', '/apps/erp/position/index.vue', 'Postcard', 3, 1, 1, '[2]', 2, '与OA共用职位数据'
FROM DUAL
WHERE NOT EXISTS (
SELECT 1 FROM (SELECT * FROM `yz_system_menu`) AS t WHERE t.`path` = '/apps/erp/position'
-- 3. 修正已存在的全局入口
UPDATE `yz_system_menu`
SET `pid` = @basic_settings_pid, `title` = '组织架构',
`component_path` = '/basicSettings/organization/index.vue',
`icon` = 'OfficeBuilding', `sort` = 1, `status` = 1, `is_visible` = 1,
`views` = '[2]', `type` = 2, `remark` = '全局组织架构维护,与所有业务模块共用'
WHERE `path` = '/basic-settings/organization';
UPDATE `yz_system_menu`
SET `pid` = @basic_settings_pid, `title` = '人员管理',
`component_path` = '/basicSettings/employee/index.vue',
`icon` = 'User', `sort` = 2, `status` = 1, `is_visible` = 1,
`views` = '[2]', `type` = 2, `remark` = '全局人员维护,与所有业务模块共用'
WHERE `path` = '/basic-settings/employee';
UPDATE `yz_system_menu`
SET `pid` = @basic_settings_pid, `title` = '职位管理',
`component_path` = '/basicSettings/position/index.vue',
`icon` = 'Postcard', `sort` = 3, `status` = 1, `is_visible` = 1,
`views` = '[2]', `type` = 2, `remark` = '全局职位维护,与所有业务模块共用'
WHERE `path` = '/basic-settings/position';
-- 4. 删除历史 OA / ERP 下的重复页面入口,不删除模块目录本身。
DELETE FROM `yz_system_menu`
WHERE `path` IN (
'/apps/erp/organization',
'/apps/erp/employee',
'/apps/erp/position',
'/apps/oa/organization',
'/apps/oa/employee',
'/apps/oa/position'
);
-- ---------------------------------------------------------------------------
-- 3. 办公自动化:组织架构 / 人员管理 / 职位管理
-- ---------------------------------------------------------------------------
INSERT INTO `yz_system_menu` (`pid`, `title`, `path`, `component_path`, `icon`, `sort`, `status`, `is_visible`, `views`, `type`, `remark`)
SELECT @oa_pid, '组织架构', '/apps/oa/organization', '/apps/oa/organization/index.vue', 'OfficeBuilding', 1, 1, 1, '[2]', 2, '与进销存共用组织数据'
FROM DUAL
WHERE NOT EXISTS (
SELECT 1 FROM (SELECT * FROM `yz_system_menu`) AS t WHERE t.`path` = '/apps/oa/organization'
);
INSERT INTO `yz_system_menu` (`pid`, `title`, `path`, `component_path`, `icon`, `sort`, `status`, `is_visible`, `views`, `type`, `remark`)
SELECT @oa_pid, '人员管理', '/apps/oa/employee', '/apps/oa/employee/index.vue', 'User', 2, 1, 1, '[2]', 2, '与进销存共用员工数据'
FROM DUAL
WHERE NOT EXISTS (
SELECT 1 FROM (SELECT * FROM `yz_system_menu`) AS t WHERE t.`path` = '/apps/oa/employee'
);
INSERT INTO `yz_system_menu` (`pid`, `title`, `path`, `component_path`, `icon`, `sort`, `status`, `is_visible`, `views`, `type`, `remark`)
SELECT @oa_pid, '职位管理', '/apps/oa/position', '/apps/oa/position/index.vue', 'Postcard', 3, 1, 1, '[2]', 2, '与进销存共用职位数据'
FROM DUAL
WHERE NOT EXISTS (
SELECT 1 FROM (SELECT * FROM `yz_system_menu`) AS t WHERE t.`path` = '/apps/oa/position'
);
-- ---------------------------------------------------------------------------
-- 4. 修正已有菜单的组件路径(历史数据可能指向旧组件)
-- ---------------------------------------------------------------------------
UPDATE `yz_system_menu` SET `component_path` = '/apps/erp/organization/index.vue', `type` = 2, `views` = '[2]'
WHERE `path` = '/apps/erp/organization';
UPDATE `yz_system_menu` SET `component_path` = '/apps/erp/employee/index.vue', `type` = 2, `views` = '[2]'
WHERE `path` = '/apps/erp/employee';
UPDATE `yz_system_menu` SET `component_path` = '/apps/erp/position/index.vue', `type` = 2, `views` = '[2]'
WHERE `path` = '/apps/erp/position';
UPDATE `yz_system_menu` SET `component_path` = '/apps/oa/organization/index.vue', `type` = 2, `views` = '[2]'
WHERE `path` = '/apps/oa/organization';
UPDATE `yz_system_menu` SET `component_path` = '/apps/oa/employee/index.vue', `type` = 2, `views` = '[2]'
WHERE `path` = '/apps/oa/employee';
UPDATE `yz_system_menu` SET `component_path` = '/apps/oa/position/index.vue', `type` = 2, `views` = '[2]'
WHERE `path` = '/apps/oa/position';