feat: 新增数据管理模块(区域管理)及修复前端已知问题
后端(bms-back):
- 新增区域管理完整后端:Domain/Mapper/Service/Controller + MyBatis XML
- 新增 RestTemplateConfig 配置类,用于第三方API调用
- 新增 countries.json 本地国家数据源(105个国家)
- RuoYiApplication 加 @EnableAsync 支持异步任务
- application-druid.yml 修复 Druid 连接池字符集配置(SET NAMES utf8mb4)
- logback.xml 日志路径改为 ${user.dir}/logs 避免沙箱写入受限
- pom.xml 增加 JVM 编码参数(-Dfile.encoding=UTF-8)
- 新增 sql/bms_region.sql 建表脚本+菜单权限
前端(bms-front):
- 新增区域管理页面(列表/编辑/状态切换/同步国家数据/导出)
- 新增同步日志功能(内嵌为区域管理弹窗,移除独立菜单)
- 新增 API 层: region.js / region-log.js
- 修复 BasicForm/index.vue 缺失 import FormControl 导致搜索栏控件不渲染
- 修复 user/role/region 三个页面 el-switch 初始化时弹 undefined 提示
This commit is contained in:
@@ -0,0 +1,90 @@
|
||||
-- ----------------------------
|
||||
-- 1、国家/区域表
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS bms_region;
|
||||
CREATE TABLE bms_region (
|
||||
region_id BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '区域ID',
|
||||
country_name_cn VARCHAR(100) DEFAULT NULL COMMENT '中文名',
|
||||
country_name_en VARCHAR(100) NOT NULL COMMENT '英文名',
|
||||
country_code_2 VARCHAR(2) NOT NULL COMMENT 'ISO两位码',
|
||||
country_code_3 VARCHAR(3) DEFAULT NULL COMMENT 'ISO三位码',
|
||||
continent VARCHAR(50) DEFAULT NULL COMMENT '洲/大区',
|
||||
sub_region VARCHAR(50) DEFAULT NULL COMMENT '子区域',
|
||||
currency_code VARCHAR(10) DEFAULT NULL COMMENT '货币代码',
|
||||
currency_name VARCHAR(50) DEFAULT NULL COMMENT '货币名称',
|
||||
currency_symbol VARCHAR(10) DEFAULT NULL COMMENT '货币符号',
|
||||
phone_prefix VARCHAR(10) DEFAULT NULL COMMENT '电话前缀',
|
||||
flag_emoji VARCHAR(10) DEFAULT NULL COMMENT '国旗emoji',
|
||||
flag_url VARCHAR(500) DEFAULT NULL COMMENT '国旗图片URL',
|
||||
is_independent CHAR(1) NOT NULL DEFAULT '1' COMMENT '是否独立(1是 0否)',
|
||||
is_eu CHAR(1) NOT NULL DEFAULT '0' COMMENT '是否欧盟成员(1是 0否)',
|
||||
status CHAR(1) NOT NULL DEFAULT '0' COMMENT '状态(0正常 1停用)',
|
||||
del_flag CHAR(1) NOT NULL DEFAULT '0' COMMENT '删除标志(0存在 2删除)',
|
||||
create_by VARCHAR(64) DEFAULT '' COMMENT '创建者',
|
||||
create_time DATETIME DEFAULT NULL COMMENT '创建时间',
|
||||
update_by VARCHAR(64) DEFAULT '' COMMENT '更新者',
|
||||
update_time DATETIME DEFAULT NULL COMMENT '更新时间',
|
||||
remark VARCHAR(500) DEFAULT NULL COMMENT '备注',
|
||||
PRIMARY KEY (region_id),
|
||||
UNIQUE INDEX idx_country_code_2 (country_code_2),
|
||||
INDEX idx_country_name_cn (country_name_cn),
|
||||
INDEX idx_country_name_en (country_name_en),
|
||||
INDEX idx_continent (continent)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='国家/区域表';
|
||||
|
||||
-- ----------------------------
|
||||
-- 2、区域数据同步日志表
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS bms_region_sync_log;
|
||||
CREATE TABLE bms_region_sync_log (
|
||||
log_id BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '日志ID',
|
||||
sync_type VARCHAR(20) NOT NULL DEFAULT 'ALL' COMMENT '同步类型(ALL全量)',
|
||||
status VARCHAR(20) NOT NULL DEFAULT 'PROCESSING' COMMENT '状态(PENDING/PROCESSING/SUCCESS/FAILED)',
|
||||
total_count INT(11) DEFAULT 0 COMMENT 'API返回总数',
|
||||
insert_count INT(11) DEFAULT 0 COMMENT '新增数',
|
||||
update_count INT(11) DEFAULT 0 COMMENT '更新数',
|
||||
fail_count INT(11) DEFAULT 0 COMMENT '失败数',
|
||||
duration_ms BIGINT(20) DEFAULT 0 COMMENT '耗时(毫秒)',
|
||||
error_msg TEXT DEFAULT NULL COMMENT '错误信息',
|
||||
create_by VARCHAR(64) DEFAULT '' COMMENT '创建者',
|
||||
create_time DATETIME DEFAULT NULL COMMENT '创建时间',
|
||||
update_by VARCHAR(64) DEFAULT '' COMMENT '更新者',
|
||||
update_time DATETIME DEFAULT NULL COMMENT '更新时间',
|
||||
PRIMARY KEY (log_id),
|
||||
INDEX idx_status (status),
|
||||
INDEX idx_create_time (create_time)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='区域数据同步日志表';
|
||||
|
||||
-- ----------------------------
|
||||
-- 3、菜单数据
|
||||
-- ----------------------------
|
||||
-- 一级菜单: 数据管理
|
||||
INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, remark)
|
||||
VALUES ('数据管理', 0, 6, 'data', NULL, 1, 0, 'M', '0', '0', '', 'chart', 'admin', sysdate(), '数据管理目录');
|
||||
|
||||
SET @parentId = LAST_INSERT_ID();
|
||||
|
||||
-- 二级菜单: 区域管理
|
||||
INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, remark)
|
||||
VALUES ('区域管理', @parentId, 1, 'region', 'data/region/index', 1, 0, 'C', '0', '0', 'data:region:list', 'international', 'admin', sysdate(), '');
|
||||
|
||||
SET @regionMenuId = LAST_INSERT_ID();
|
||||
|
||||
-- 二级菜单: 同步日志
|
||||
INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, remark)
|
||||
VALUES ('同步日志', @parentId, 2, 'region/sync-log', 'data/region/sync-log/index', 1, 0, 'C', '0', '0', 'data:region:log:list', 'log', 'admin', sysdate(), '');
|
||||
|
||||
-- 按钮权限 (区域管理)
|
||||
INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, remark)
|
||||
VALUES ('区域查询', @regionMenuId, 1, '', NULL, 1, 0, 'F', '0', '0', 'data:region:query', '#', 'admin', sysdate(), '');
|
||||
INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, remark)
|
||||
VALUES ('区域编辑', @regionMenuId, 2, '', NULL, 1, 0, 'F', '0', '0', 'data:region:edit', '#', 'admin', sysdate(), '');
|
||||
INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, remark)
|
||||
VALUES ('区域删除', @regionMenuId, 3, '', NULL, 1, 0, 'F', '0', '0', 'data:region:remove', '#', 'admin', sysdate(), '');
|
||||
INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, remark)
|
||||
VALUES ('数据同步', @regionMenuId, 4, '', NULL, 1, 0, 'F', '0', '0', 'data:region:sync', '#', 'admin', sysdate(), '');
|
||||
|
||||
-- 按钮权限 (同步日志)
|
||||
SET @logMenuId = @regionMenuId + 1;
|
||||
INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, remark)
|
||||
VALUES ('日志删除', @logMenuId, 1, '', NULL, 1, 0, 'F', '0', '0', 'data:region:log:remove', '#', 'admin', sysdate(), '');
|
||||
Reference in New Issue
Block a user