- 模型去掉 defaultSoftDelete=0,避免 ThinkPHP 软删过滤导致新增记录"隐形" - 菜单 paths 改相对路径并新增「自录数据统计」目录,迁移已有菜单 - Lists/Overview 补部门关联、支持按部门筛选 - 数据权限改由 self_input_stats_view_all_roles 白名单 + DataScope 控制, 编辑/删除完全交给按钮权限校验(移除"仅本人可改"硬限制) - 新增 /stats.self_input/mediaSourceOptions 接口,统计页/账户消耗页/录入弹窗 共用 useMediaSourceOptions + MediaSourceSelect,去重动态加载 Co-authored-by: Cursor <cursoragent@cursor.com>
146 lines
7.3 KiB
SQL
146 lines
7.3 KiB
SQL
-- 自录数据统计菜单(挂在「数据统计」目录下)
|
|
-- 目录: /stats/self_input(自录数据统计)
|
|
-- 子菜单:
|
|
-- 自录转化统计 -> /stats/self_input
|
|
-- 账户消耗录入 -> /stats/self_input/account_cost
|
|
-- 子菜单 paths 为相对父级目录的路径片段。
|
|
|
|
-- ========== 已执行旧版 SQL 的环境:迁移到「自录数据统计」目录 ==========
|
|
SET @stats_root_id = (
|
|
SELECT `id` FROM `zyt_system_menu`
|
|
WHERE `paths` = '/stats' AND `type` = 'M'
|
|
ORDER BY `id` ASC
|
|
LIMIT 1
|
|
);
|
|
|
|
INSERT INTO `zyt_system_menu`
|
|
(`pid`, `type`, `name`, `icon`, `sort`, `perms`, `paths`, `component`, `selected`, `params`, `is_show`, `is_disable`, `create_time`, `update_time`)
|
|
SELECT
|
|
@stats_root_id, 'M', '自录数据统计', '', 5, '', 'self_input', '', '', '', 1, 0, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()
|
|
FROM DUAL
|
|
WHERE @stats_root_id IS NOT NULL
|
|
AND NOT EXISTS (
|
|
SELECT 1 FROM `zyt_system_menu`
|
|
WHERE `pid` = @stats_root_id AND `type` = 'M' AND `name` = '自录数据统计'
|
|
);
|
|
|
|
SET @self_input_group_id = (
|
|
SELECT `id` FROM `zyt_system_menu`
|
|
WHERE `pid` = @stats_root_id AND `type` = 'M' AND `name` = '自录数据统计'
|
|
ORDER BY `id` ASC
|
|
LIMIT 1
|
|
);
|
|
|
|
UPDATE `zyt_system_menu`
|
|
SET `pid` = @self_input_group_id,
|
|
`paths` = '',
|
|
`component` = 'stats/self_input/index',
|
|
`sort` = 1
|
|
WHERE `perms` = 'stats.self_input/overview'
|
|
AND @self_input_group_id IS NOT NULL;
|
|
|
|
UPDATE `zyt_system_menu`
|
|
SET `pid` = @self_input_group_id,
|
|
`paths` = 'account_cost',
|
|
`component` = 'stats/self_input/account_cost',
|
|
`sort` = 2
|
|
WHERE `perms` = 'stats.personal_account_cost/lists'
|
|
AND @self_input_group_id IS NOT NULL;
|
|
|
|
-- ========== 全新安装:目录 + 子菜单 + 按钮权限 ==========
|
|
SET @stats_root_id = (
|
|
SELECT `id` FROM `zyt_system_menu`
|
|
WHERE `paths` = '/stats' AND `type` = 'M'
|
|
ORDER BY `id` ASC
|
|
LIMIT 1
|
|
);
|
|
|
|
INSERT INTO `zyt_system_menu`
|
|
(`pid`, `type`, `name`, `icon`, `sort`, `perms`, `paths`, `component`, `selected`, `params`, `is_show`, `is_disable`, `create_time`, `update_time`)
|
|
SELECT
|
|
@stats_root_id, 'M', '自录数据统计', '', 5, '', 'self_input', '', '', '', 1, 0, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()
|
|
FROM DUAL
|
|
WHERE @stats_root_id IS NOT NULL
|
|
AND NOT EXISTS (
|
|
SELECT 1 FROM `zyt_system_menu`
|
|
WHERE `pid` = @stats_root_id AND `type` = 'M' AND `name` = '自录数据统计'
|
|
);
|
|
|
|
SET @self_input_group_id = (
|
|
SELECT `id` FROM `zyt_system_menu`
|
|
WHERE `pid` = @stats_root_id AND `type` = 'M' AND `name` = '自录数据统计'
|
|
ORDER BY `id` ASC
|
|
LIMIT 1
|
|
);
|
|
|
|
INSERT INTO `zyt_system_menu`
|
|
(`pid`, `type`, `name`, `icon`, `sort`, `perms`, `paths`, `component`, `selected`, `params`, `is_show`, `is_disable`, `create_time`, `update_time`)
|
|
SELECT
|
|
@self_input_group_id, 'C', '自录转化统计', '', 1, 'stats.self_input/overview', '', 'stats/self_input/index', '', '', 1, 0, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()
|
|
FROM DUAL
|
|
WHERE @self_input_group_id IS NOT NULL
|
|
AND NOT EXISTS (
|
|
SELECT 1 FROM `zyt_system_menu`
|
|
WHERE `perms` = 'stats.self_input/overview'
|
|
);
|
|
|
|
SET @self_input_menu_id = (
|
|
SELECT `id` FROM `zyt_system_menu`
|
|
WHERE `perms` = 'stats.self_input/overview'
|
|
LIMIT 1
|
|
);
|
|
|
|
INSERT INTO `zyt_system_menu`
|
|
(`pid`, `type`, `name`, `icon`, `sort`, `perms`, `paths`, `component`, `selected`, `params`, `is_show`, `is_disable`, `create_time`, `update_time`)
|
|
SELECT @self_input_menu_id, 'A', '查看业绩', '', 1, 'stats.personal_yeji/lists', '', '', '', '', 1, 0, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()
|
|
FROM DUAL WHERE @self_input_menu_id IS NOT NULL AND NOT EXISTS (SELECT 1 FROM `zyt_system_menu` WHERE `perms` = 'stats.personal_yeji/lists');
|
|
|
|
INSERT INTO `zyt_system_menu`
|
|
(`pid`, `type`, `name`, `icon`, `sort`, `perms`, `paths`, `component`, `selected`, `params`, `is_show`, `is_disable`, `create_time`, `update_time`)
|
|
SELECT @self_input_menu_id, 'A', '新增业绩', '', 2, 'stats.personal_yeji/add', '', '', '', '', 1, 0, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()
|
|
FROM DUAL WHERE @self_input_menu_id IS NOT NULL AND NOT EXISTS (SELECT 1 FROM `zyt_system_menu` WHERE `perms` = 'stats.personal_yeji/add');
|
|
|
|
INSERT INTO `zyt_system_menu`
|
|
(`pid`, `type`, `name`, `icon`, `sort`, `perms`, `paths`, `component`, `selected`, `params`, `is_show`, `is_disable`, `create_time`, `update_time`)
|
|
SELECT @self_input_menu_id, 'A', '编辑业绩', '', 3, 'stats.personal_yeji/edit', '', '', '', '', 1, 0, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()
|
|
FROM DUAL WHERE @self_input_menu_id IS NOT NULL AND NOT EXISTS (SELECT 1 FROM `zyt_system_menu` WHERE `perms` = 'stats.personal_yeji/edit');
|
|
|
|
INSERT INTO `zyt_system_menu`
|
|
(`pid`, `type`, `name`, `icon`, `sort`, `perms`, `paths`, `component`, `selected`, `params`, `is_show`, `is_disable`, `create_time`, `update_time`)
|
|
SELECT @self_input_menu_id, 'A', '删除业绩', '', 4, 'stats.personal_yeji/delete', '', '', '', '', 1, 0, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()
|
|
FROM DUAL WHERE @self_input_menu_id IS NOT NULL AND NOT EXISTS (SELECT 1 FROM `zyt_system_menu` WHERE `perms` = 'stats.personal_yeji/delete');
|
|
|
|
INSERT INTO `zyt_system_menu`
|
|
(`pid`, `type`, `name`, `icon`, `sort`, `perms`, `paths`, `component`, `selected`, `params`, `is_show`, `is_disable`, `create_time`, `update_time`)
|
|
SELECT
|
|
@self_input_group_id, 'C', '账户消耗录入', '', 2, 'stats.personal_account_cost/lists', 'account_cost', 'stats/self_input/account_cost', '', '', 1, 0, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()
|
|
FROM DUAL
|
|
WHERE @self_input_group_id IS NOT NULL
|
|
AND NOT EXISTS (
|
|
SELECT 1 FROM `zyt_system_menu`
|
|
WHERE `perms` = 'stats.personal_account_cost/lists'
|
|
);
|
|
|
|
SET @personal_cost_menu_id = (
|
|
SELECT `id` FROM `zyt_system_menu`
|
|
WHERE `perms` = 'stats.personal_account_cost/lists'
|
|
LIMIT 1
|
|
);
|
|
|
|
INSERT INTO `zyt_system_menu`
|
|
(`pid`, `type`, `name`, `icon`, `sort`, `perms`, `paths`, `component`, `selected`, `params`, `is_show`, `is_disable`, `create_time`, `update_time`)
|
|
SELECT @personal_cost_menu_id, 'A', '新增消耗', '', 1, 'stats.personal_account_cost/add', '', '', '', '', 1, 0, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()
|
|
FROM DUAL WHERE @personal_cost_menu_id IS NOT NULL AND NOT EXISTS (SELECT 1 FROM `zyt_system_menu` WHERE `perms` = 'stats.personal_account_cost/add');
|
|
|
|
INSERT INTO `zyt_system_menu`
|
|
(`pid`, `type`, `name`, `icon`, `sort`, `perms`, `paths`, `component`, `selected`, `params`, `is_show`, `is_disable`, `create_time`, `update_time`)
|
|
SELECT @personal_cost_menu_id, 'A', '编辑消耗', '', 2, 'stats.personal_account_cost/edit', '', '', '', '', 1, 0, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()
|
|
FROM DUAL WHERE @personal_cost_menu_id IS NOT NULL AND NOT EXISTS (SELECT 1 FROM `zyt_system_menu` WHERE `perms` = 'stats.personal_account_cost/edit');
|
|
|
|
INSERT INTO `zyt_system_menu`
|
|
(`pid`, `type`, `name`, `icon`, `sort`, `perms`, `paths`, `component`, `selected`, `params`, `is_show`, `is_disable`, `create_time`, `update_time`)
|
|
SELECT @personal_cost_menu_id, 'A', '删除消耗', '', 3, 'stats.personal_account_cost/delete', '', '', '', '', 1, 0, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()
|
|
FROM DUAL WHERE @personal_cost_menu_id IS NOT NULL AND NOT EXISTS (SELECT 1 FROM `zyt_system_menu` WHERE `perms` = 'stats.personal_account_cost/delete');
|
|
|
|
-- 角色需勾选新目录「自录数据统计」后,子菜单权限才会一并生效(与 likeadmin 菜单树授权一致)
|