算是个管理系统,包含所有我想要写的东西。
而你,我的朋友,如果你有想做却一直没做的东西,那么欢迎来到这里,我们一起实现。
git clone https://github.com/ying2gege/zimu-admin.git [project-name]
cd [project-name]
npm run install
npm run dev
由于本人服务器正在规划中,暂未接入,所以需要在本地配置后端相关工具。
后端基于 express
,ORM
采用 typeorm
,数据库采用 mysql
。
-
本地安装
mysql
环境。 可百度/谷歌相关安装流程,mac
电脑可参考Mac 使用 Mysql。 -
安装
mysql
可视化工具,如datagrip
,navicat
等,可百度/谷歌搜索对应工具的安装步骤。 -
启动
mysql
服务,并使用mysql
工具连接到本地服务。 本地服务默认Host
为localhost
,端口为3306
,默认用户名为root
,默认密码为空。 -
创建一个名为
zimuadmin
的数据库。 可控制台执行以下命令:
# 创建数据库
CREATE DATABASE IF NOT EXISTS zimuadmin DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
或在可视化工具中手动新建。
-
修改服务端目录
server
数据库相关环境变量:DB_NAME、DB_USER、DB_PASSWORD。 -
建表
- 角色表
zm-role
- 角色表
create table `zm-role`
(
id int auto_increment,
code varchar(100) not null comment '角色编码',
name varchar(100) not null comment '角色名称',
status varchar(50) null comment '状态',
createdBy varchar(100) null comment '创建人',
createdAt datetime null comment '创建时间',
updatedBy varchar(100) null comment '更新人',
updatedAt datetime null comment '更新时间',
constraint `zm-role_code_uindex`
unique (code),
constraint `zm-role_id_uindex`
unique (id)
)
comment '角色管理表';
alter table `zm-role`
add primary key (id);
- 权限表
zm-auth
create table `zm-auth`
(
id int auto_increment,
code varchar(100) not null comment '权限编码',
name varchar(100) null comment '权限名称',
status varchar(50) null comment '状态',
created_by varchar(100) null comment '创建人',
created_at datetime null comment '创建人',
updated_by varchar(100) null comment '更新人',
updated_at datetime null comment '更新时间',
constraint `zm-auth_code_uindex`
unique (code),
constraint `zm-auth_id_uindex`
unique (id)
)
comment '权限表';
alter table `zm-auth`
add primary key (id);
- 用户表
zm-user
create table `zm-user`
(
id int auto_increment,
job_no varchar(100) not null comment '工号',
name varchar(100) null comment '姓名',
sex varchar(1) null comment '性别',
tel varchar(20) null comment '手机号',
email varchar(50) null comment '邮箱',
address varchar(200) null comment '地址',
status varchar(50) null comment '状态',
created_by varchar(100) null comment '创建人',
created_at datetime null comment '创建人',
updated_by varchar(100) null comment '更新人',
updated_at datetime null comment '更新时间',
constraint `zm-user_id_uindex`
unique (id),
constraint `zm-user_job_no_uindex`
unique (job_no)
)
comment '用户表';
alter table `zm-user`
add primary key (id);
- 菜单表
zm-menu
create table `zm-menu`
(
id int auto_increment,
code varchar(100) not null comment '菜单编码',
name varchar(100) null comment '菜单名称',
type varchar(10) null comment '菜单类型:菜单menu or 按钮button',
level int null comment '层级',
sort int null comment '排序',
icon varchar(50) null comment '菜单图标',
status varchar(50) null comment '状态',
created_by varchar(100) null comment '创建人',
created_at datetime null comment '创建时间',
updated_by varchar(100) null comment '更新人',
updated_at datetime null comment '更新时间',
constraint `zm-menu_code_uindex`
unique (code),
constraint `zm-menu_id_uindex`
unique (id)
)
comment '菜单表';
alter table `zm-menu`
add primary key (id);
- 角色-权限中间表
zm-role-auth-relation
create table `zm-role-auth-relation`
(
id int auto_increment,
role_id int null comment '角色id',
auth_id int null comment '权限id',
created_by varchar(100) null comment '创建人',
created_at datetime null comment '创建时间',
updated_by varchar(100) null comment '更新人',
updated_at datetime null comment '更新时间',
constraint `zm-role-auth-relation_id_uindex`
unique (id)
);
alter table `zm-role-auth-relation`
add primary key (id);
- 角色-用户中间表
zm-role-user-relation
create table `zm-role-user-relation`
(
id int auto_increment,
role_id int null comment '角色id',
user_id int null comment '用户id',
created_by varchar(100) null comment '创建人',
created_at datetime null comment '创建时间',
updated_by varchar(100) null comment '更新人',
updated_at datetime null comment '更新时间',
constraint `zm-role-user-relation_id_uindex`
unique (id)
)
comment '角色-用户中间表';
alter table `zm-role-user-relation`
add primary key (id);
- 权限-菜单中间表
create table `zm-auth-menu-relation`
(
id int auto_increment
primary key,
auth_id int null comment '权限id',
menu_id int null comment '菜单id',
created_by varchar(100) null comment '创建人',
created_at datetime null comment '创建时间',
updated_by varchar(100) null comment '更新人',
updated_at datetime null comment '更新时间',
constraint `zm-auth-menu-relation_id_uindex`
unique (id)
)
comment '权限-菜单中间表';
- 创建期初数据
- 插入一个超级管理员用户(Super)(后门,默认赋予所有权限,不需要手动分配)。
- 插入系统管理菜单(系统管理 => 角色管理、权限管理、用户管理、菜单管理)。
根目录下执行 pnpm server
,启动后端服务。