数据初始化配置

pull/1/head
李强 2021-02-27 18:22:21 +08:00
parent e9e8808d40
commit 1fc497fba0
31 changed files with 579 additions and 103 deletions

View File

@ -97,10 +97,12 @@ npm run build:prod
5. 执行迁移命令: 5. 执行迁移命令:
python3 manage.py makemigrations python3 manage.py makemigrations
python3 manage.py migrate python3 manage.py migrate
5. 创建 admin 用户 5. 初始化数据
python3 manage.py createsuperuser python3 manage.py initialization
6. 启动项目 6. 启动项目
python3 manage.py runserver 0.0.0.0:8000 python3 manage.py runserver 0.0.0.0:8000
初始账号demo 密码123456
~~~ ~~~

View File

@ -0,0 +1,49 @@
import logging
import os
from django.core.management.base import BaseCommand
from django.db import connection
from scripts import getSql
logger = logging.getLogger(__name__)
class Command(BaseCommand):
"""
项目初始化命令: python manage.py initialization
创建管理员命令: python manage.py initialization
"""
def customSql(self, sql_list):
"""
批量执行sql
:param sql_list:
:return:
"""
with connection.cursor() as cursor:
for sql in sql_list:
cursor.execute(sql)
connection.commit()
def init(self, sql_filename, model_name):
"""
初始化
:param sql_filename: sql存放位置
:param model_name: 模块名
:return:
"""
logger.info(f'正在初始化[{model_name}]中...')
self.customSql(getSql(sql_filename))
logger.info(f'[{model_name}]初始化完成!')
def handle(self, *args, **options):
self.init(os.path.join('system', 'system_dictdata.sql'), '字典管理')
self.init(os.path.join('system', 'system_dictdetails.sql'), '字典详情')
self.init(os.path.join('system', 'system_configsettings.sql'), '参数设置')
self.init(os.path.join('permission', 'permission_post.sql'), '岗位管理')
self.init(os.path.join('permission', 'permission_dept.sql'), '部门管理')
self.init(os.path.join('permission', 'permission_menu.sql'), '菜单管理')
self.init(os.path.join('permission', 'permission_role.sql'), '角色管理')
self.init(os.path.join('permission', 'permission_userprofile.sql'), '用户管理')

View File

@ -1,5 +1,5 @@
from django.db.models import CASCADE from django.db.models import CASCADE
from django.db.models import CharField, IntegerField, BooleanField, ForeignKey from django.db.models import CharField, IntegerField, ForeignKey
from apps.op_drf.models import CoreModel from apps.op_drf.models import CoreModel
@ -7,11 +7,12 @@ from apps.op_drf.models import CoreModel
class Dept(CoreModel): class Dept(CoreModel):
deptName = CharField(max_length=64, verbose_name="部门名称") deptName = CharField(max_length=64, verbose_name="部门名称")
orderNum = IntegerField(verbose_name="显示排序") orderNum = IntegerField(verbose_name="显示排序")
owner = CharField(max_length=32, verbose_name="负责人", null=True) owner = CharField(max_length=32, verbose_name="负责人", null=True, blank=True)
phone = CharField(max_length=32, verbose_name="联系电话", null=True) phone = CharField(max_length=32, verbose_name="联系电话", null=True, blank=True)
email = CharField(max_length=32, verbose_name="邮箱", null=True) email = CharField(max_length=32, verbose_name="邮箱", null=True, blank=True)
status = CharField(max_length=8, verbose_name="部门状态", null=True) status = CharField(max_length=8, verbose_name="部门状态", null=True, blank=True)
parentId = ForeignKey(to='Dept', null=True, on_delete=CASCADE, default=False, verbose_name="上级部门") parentId = ForeignKey(to='Dept', on_delete=CASCADE, default=False, verbose_name="上级部门",
db_constraint=False, null=True, blank=True)
class Meta: class Meta:
verbose_name = '部门管理' verbose_name = '部门管理'

View File

@ -1,4 +1,4 @@
from django.db.models import IntegerField, BooleanField, ForeignKey, CharField, CASCADE from django.db.models import IntegerField, ForeignKey, CharField, CASCADE
from apps.op_drf.models import CoreModel from apps.op_drf.models import CoreModel
@ -19,19 +19,19 @@ class Menu(CoreModel):
('OPTIONS', 'OPTIONS'), ('OPTIONS', 'OPTIONS'),
('TRACE', 'TRACE'), ('TRACE', 'TRACE'),
) )
parentId = ForeignKey(to='Menu', on_delete=CASCADE, null=True, verbose_name="上级菜单") parentId = ForeignKey(to='Menu', on_delete=CASCADE, verbose_name="上级菜单", null=True, blank=True, )
menuType = CharField(max_length=8,choices=MENU_TYPE_CHOICES, verbose_name="菜单类型") menuType = CharField(max_length=8, choices=MENU_TYPE_CHOICES, verbose_name="菜单类型")
icon = CharField(max_length=64, verbose_name="菜单图标", null=True) icon = CharField(max_length=64, verbose_name="菜单图标", null=True, blank=True)
name = CharField(max_length=64, verbose_name="菜单名称") name = CharField(max_length=64, verbose_name="菜单名称")
orderNum = IntegerField(verbose_name="显示排序") orderNum = IntegerField(verbose_name="显示排序")
isFrame = CharField(max_length=8,verbose_name="是否外链") isFrame = CharField(max_length=8, verbose_name="是否外链")
web_path = CharField(max_length=128, verbose_name="前端路由地址", null=True) web_path = CharField(max_length=128, verbose_name="前端路由地址", null=True, blank=True)
component_path = CharField(max_length=128, verbose_name="前端组件路径", null=True) component_path = CharField(max_length=128, verbose_name="前端组件路径", null=True, blank=True)
interface_path = CharField(max_length=256, verbose_name="后端接口路径", null=True) interface_path = CharField(max_length=256, verbose_name="后端接口路径", null=True, blank=True)
interface_method = CharField(choices=METHOD_CHOICE, max_length=16, default='GET', verbose_name="接口请求方式") interface_method = CharField(choices=METHOD_CHOICE, max_length=16, default='GET', verbose_name="接口请求方式")
perms = CharField(max_length=256, verbose_name="权限标识", null=True) perms = CharField(max_length=256, verbose_name="权限标识", null=True, blank=True)
status = CharField(max_length=8,verbose_name="菜单状态") status = CharField(max_length=8, verbose_name="菜单状态")
visible = CharField(max_length=8,verbose_name="显示状态") visible = CharField(max_length=8, verbose_name="显示状态")
isCache = CharField(max_length=8, verbose_name="是否缓存") isCache = CharField(max_length=8, verbose_name="是否缓存")
class Meta: class Meta:

View File

@ -8,7 +8,7 @@ class Post(CoreModel):
postCode = CharField(max_length=32, verbose_name="岗位编码") postCode = CharField(max_length=32, verbose_name="岗位编码")
postSort = IntegerField(verbose_name="岗位顺序") postSort = IntegerField(verbose_name="岗位顺序")
status = CharField(max_length=8, verbose_name="岗位状态") status = CharField(max_length=8, verbose_name="岗位状态")
remark = TextField(verbose_name="备注", help_text="备注", null=True) remark = TextField(verbose_name="备注", help_text="备注", null=True, blank=True)
class Meta: class Meta:
verbose_name = '岗位管理' verbose_name = '岗位管理'

View File

@ -16,10 +16,10 @@ class Role(CoreModel):
roleSort = IntegerField(verbose_name="角色顺序") roleSort = IntegerField(verbose_name="角色顺序")
status = CharField(max_length=8, verbose_name="角色状态") status = CharField(max_length=8, verbose_name="角色状态")
admin = BooleanField(default=False, verbose_name="是否为admin") admin = BooleanField(default=False, verbose_name="是否为admin")
dataScope = CharField(max_length=8, choices=DATASCOPE_CHOICES, verbose_name="权限范围") dataScope = CharField(max_length=8,default='1', choices=DATASCOPE_CHOICES, verbose_name="权限范围",)
remark = TextField(verbose_name="备注", help_text="备注", null=True) remark = TextField(verbose_name="备注", help_text="备注", null=True, blank=True)
dept = ManyToManyField(to='Dept', verbose_name='数据权限-关联部门') dept = ManyToManyField(to='Dept', verbose_name='数据权限-关联部门', db_constraint=False)
menu = ManyToManyField(to='Menu', verbose_name='关联菜单权限') menu = ManyToManyField(to='Menu', verbose_name='关联菜单权限', db_constraint=False)
class Meta: class Meta:
verbose_name = '角色管理' verbose_name = '角色管理'

View File

@ -7,11 +7,6 @@ from apps.op_drf.fields import CreateDateTimeField, UpdateDateTimeField
class UserProfile(AbstractUser): class UserProfile(AbstractUser):
GENDER_CHOICES = (
(0, ""),
(1, ""),
(2, "未知"),
)
USER_TYPE_CHOICES = ( USER_TYPE_CHOICES = (
(0, "后台用户"), (0, "后台用户"),
(1, "前台用户"), (1, "前台用户"),
@ -19,16 +14,16 @@ class UserProfile(AbstractUser):
objects = UserManager() objects = UserManager()
username = CharField(max_length=150, unique=True, db_index=True, verbose_name='用户账号') username = CharField(max_length=150, unique=True, db_index=True, verbose_name='用户账号')
secret = CharField(max_length=255, default=uuid4, verbose_name='加密秘钥') secret = CharField(max_length=255, default=uuid4, verbose_name='加密秘钥')
email = CharField(max_length=255, verbose_name="邮箱", null=True) email = CharField(max_length=255, verbose_name="邮箱", null=True, blank=True)
mobile = CharField(max_length=255, verbose_name="电话", null=True) mobile = CharField(max_length=255, verbose_name="电话", null=True, blank=True)
avatar = TextField(verbose_name="头像",null=True) avatar = TextField(verbose_name="头像", null=True, blank=True)
name = CharField(max_length=40, verbose_name="姓名") name = CharField(max_length=40, verbose_name="姓名")
gender = IntegerField(default=2, choices=GENDER_CHOICES, verbose_name="性别") gender = CharField(max_length=8, verbose_name="性别", null=True, blank=True)
remark = TextField(verbose_name="备注", null=True) remark = TextField(verbose_name="备注", null=True)
user_type = IntegerField(default=2, choices=GENDER_CHOICES, verbose_name="用户类型") user_type = IntegerField(default=2, choices=USER_TYPE_CHOICES, verbose_name="用户类型")
post = ManyToManyField(to='Post', verbose_name='关联岗位') post = ManyToManyField(to='Post', verbose_name='关联岗位', db_constraint=False)
role = ManyToManyField(to='Role', verbose_name='关联角色') role = ManyToManyField(to='Role', verbose_name='关联角色', db_constraint=False)
dept = ForeignKey(to='Dept', verbose_name='归属部门', on_delete=CASCADE, null=True) dept = ForeignKey(to='Dept', verbose_name='归属部门', on_delete=CASCADE, db_constraint=False, null=True, blank=True)
create_datetime = CreateDateTimeField() create_datetime = CreateDateTimeField()
update_datetime = UpdateDateTimeField() update_datetime = UpdateDateTimeField()

View File

@ -189,7 +189,7 @@ class UserProfileSerializer(CustomModelSerializer):
简单用户序列化器 简单用户序列化器
""" """
admin = serializers.SerializerMethodField(read_only=True) admin = serializers.SerializerMethodField(read_only=True)
deptId = serializers.IntegerField(source='dept.id',read_only=True) deptId = serializers.IntegerField(source='dept.id', read_only=True)
def get_admin(self, obj: UserProfile): def get_admin(self, obj: UserProfile):
role_list = obj.role.all().values_list('admin', flat=True) role_list = obj.role.all().values_list('admin', flat=True)
@ -211,12 +211,13 @@ class UserProfileCreateUpdateSerializer(CustomModelSerializer):
post = PostSerializer(many=True, read_only=True) post = PostSerializer(many=True, read_only=True)
role = RoleSerializer(many=True, read_only=True) role = RoleSerializer(many=True, read_only=True)
username = serializers.CharField(required=True, max_length=150, username = serializers.CharField(required=True, max_length=150,
validators=[UniqueValidator(queryset=UserProfile.objects.all(), message="用戶已存在")], validators=[UniqueValidator(queryset=UserProfile.objects.all(), message="用戶已存在")],
error_messages={ error_messages={
"blank":"请输入用户名称", "blank": "请输入用户名称",
"required":"用户名称不能为空", "required": "用户名称不能为空",
"max_length":"用户名称过长", "max_length": "用户名称过长",
}) })
def get_admin(self, obj: UserProfile): def get_admin(self, obj: UserProfile):
role_list = obj.role.all().values_list('admin', flat=True) role_list = obj.role.all().values_list('admin', flat=True)
if True in list(set(role_list)): if True in list(set(role_list)):
@ -224,13 +225,12 @@ class UserProfileCreateUpdateSerializer(CustomModelSerializer):
return False return False
def validate(self, attrs: dict): def validate(self, attrs: dict):
return super().validate(attrs) return super().validate(attrs)
def save(self, **kwargs): def save(self, **kwargs):
self.validated_data['dept_id'] = self.initial_data.get('deptId',None) self.validated_data['dept_id'] = self.initial_data.get('deptId', None)
data = super().save(**kwargs) data = super().save(**kwargs)
data.set_password(self.initial_data.get('password',None)) data.set_password(self.initial_data.get('password', None))
data.save() data.save()
data.post.set(self.initial_data.get('postIds')) data.post.set(self.initial_data.get('postIds'))
data.role.set(self.initial_data.get('roleIds')) data.role.set(self.initial_data.get('roleIds'))

View File

@ -9,7 +9,7 @@ class ConfigSettings(CoreModel):
configValue = CharField(max_length=256, verbose_name="参数键值") configValue = CharField(max_length=256, verbose_name="参数键值")
configType = CharField(max_length=8,verbose_name="是否内置") configType = CharField(max_length=8,verbose_name="是否内置")
status = CharField(max_length=8, verbose_name="参数状态") status = CharField(max_length=8, verbose_name="参数状态")
remark = CharField(max_length=256, verbose_name="备注", null=True) remark = CharField(max_length=256, verbose_name="备注", null=True, blank=True)
class Meta: class Meta:
verbose_name = '参数设置' verbose_name = '参数设置'

View File

@ -7,7 +7,7 @@ class DictData(CoreModel):
dictName = CharField(max_length=64, verbose_name="字典名称") dictName = CharField(max_length=64, verbose_name="字典名称")
dictType = CharField(max_length=64, verbose_name="字典类型") dictType = CharField(max_length=64, verbose_name="字典类型")
status = CharField(max_length=8, verbose_name="字典状态") status = CharField(max_length=8, verbose_name="字典状态")
remark = CharField(max_length=256,verbose_name="备注", null=True) remark = CharField(max_length=256,verbose_name="备注", null=True, blank=True)
class Meta: class Meta:
verbose_name = '字典管理' verbose_name = '字典管理'

View File

@ -10,7 +10,7 @@ class DictDetails(CoreModel):
status = CharField(max_length=2, verbose_name="字典状态") status = CharField(max_length=2, verbose_name="字典状态")
sort = CharField(max_length=256, verbose_name="字典排序") sort = CharField(max_length=256, verbose_name="字典排序")
dict_data = ForeignKey(to='DictData', on_delete=CASCADE, verbose_name="关联字典") dict_data = ForeignKey(to='DictData', on_delete=CASCADE, verbose_name="关联字典")
remark = CharField(max_length=256, verbose_name="备注", null=True) remark = CharField(max_length=256, verbose_name="备注", null=True, blank=True)
class Meta: class Meta:
verbose_name = '字典详情' verbose_name = '字典详情'

View File

@ -5,11 +5,11 @@ from apps.op_drf.models import CoreModel
class WebSet(CoreModel): class WebSet(CoreModel):
name = CharField(max_length=64, verbose_name="站点名称") name = CharField(max_length=64, verbose_name="站点名称")
web_site = CharField(max_length=256, verbose_name="站点网址", null=True) web_site = CharField(max_length=256, verbose_name="站点网址", null=True, blank=True)
logo = CharField(max_length=256, verbose_name="网站Logo", null=True) logo = CharField(max_length=256, verbose_name="网站Logo", null=True, blank=True)
record_info = TextField(verbose_name="备案信息", null=True) record_info = TextField(verbose_name="备案信息", null=True, blank=True)
statistics_code = TextField(verbose_name="统计代码", null=True) statistics_code = TextField(verbose_name="统计代码", null=True, blank=True)
copyright_info = TextField(verbose_name="版权信息", null=True) copyright_info = TextField(verbose_name="版权信息", null=True, blank=True)
class Meta: class Meta:
verbose_name = '站点设置' verbose_name = '站点设置'

View File

@ -0,0 +1,13 @@
import os
def getSql(filename):
"""
获取文件内所有sql
:param filename: 例如os.path.join('permission','permission_dept.sql')
:return:
"""
pwd = os.path.join(os.getcwd(), 'scripts', filename)
with open(pwd) as fp:
content = fp.read()
return [ele for ele in content.split('\n') if not ele.startswith('--') and ele]

View File

@ -0,0 +1,42 @@
-- ----------------------------
-- 部门管理 初始化sql
-- Table structure for permission_dept
-- ----------------------------
-- DROP TABLE IF EXISTS `permission_dept`;
-- CREATE TABLE `permission_dept` (
-- `id` int(11) NOT NULL AUTO_INCREMENT,
-- `description` longtext,
-- `creator` varchar(255) DEFAULT NULL,
-- `modifier` varchar(255) DEFAULT NULL,
-- `update_datetime` datetime(6) DEFAULT NULL,
-- `create_datetime` datetime(6) DEFAULT NULL,
-- `deptName` varchar(64) NOT NULL,
-- `orderNum` int(11) NOT NULL,
-- `owner` varchar(32) DEFAULT NULL,
-- `phone` varchar(32) DEFAULT NULL,
-- `email` varchar(32) DEFAULT NULL,
-- `status` varchar(8) DEFAULT NULL,
-- `parentId_id` int(11) DEFAULT NULL,
-- PRIMARY KEY (`id`),
-- KEY `permission_dept_parentId_id_43a4fd49` (`parentId_id`) USING BTREE
-- ) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
-- ----------------------------
-- Records of permission_dept
-- ----------------------------
INSERT INTO `permission_dept` VALUES (1, '', 'admin', 'admin', '2021-02-27 07:26:20.518695', '2021-02-27 15:18:39.000000', 'XX创新科技', 1, NULL, '15888888888', 'cxkj@qq.com', '1', NULL);
INSERT INTO `permission_dept` VALUES (2, '', 'admin', 'admin', '2021-02-27 07:25:09.041807', '2021-02-27 07:25:09.041853', '北京总公司', 1, NULL, NULL, NULL, '1', 1);
INSERT INTO `permission_dept` VALUES (3, '', 'admin', 'admin', '2021-02-27 07:26:14.418894', '2021-02-27 07:25:25.195849', '上海分公司', 2, NULL, NULL, NULL, '1', 1);
INSERT INTO `permission_dept` VALUES (4, '', 'admin', 'admin', '2021-02-27 07:26:01.993095', '2021-02-27 07:25:38.904644', '杭州分公司', 4, NULL, NULL, NULL, '1', 1);
INSERT INTO `permission_dept` VALUES (5, '', 'admin', 'admin', '2021-02-27 07:28:15.854856', '2021-02-27 07:25:54.379081', '深圳分公司', 3, NULL, NULL, NULL, '0', 1);
INSERT INTO `permission_dept` VALUES (6, '', 'admin', 'admin', '2021-02-27 07:26:37.589741', '2021-02-27 07:26:37.589780', '研发部门', 1, NULL, NULL, NULL, '1', 2);
INSERT INTO `permission_dept` VALUES (7, '', 'admin', 'admin', '2021-02-27 07:26:47.781467', '2021-02-27 07:26:47.781511', '市场部门', 2, NULL, NULL, NULL, '1', 2);
INSERT INTO `permission_dept` VALUES (8, '', 'admin', 'admin', '2021-02-27 07:26:57.059878', '2021-02-27 07:26:57.059923', '测试部门', 3, NULL, NULL, NULL, '1', 2);
INSERT INTO `permission_dept` VALUES (9, '', 'admin', 'admin', '2021-02-27 07:27:06.088134', '2021-02-27 07:27:06.088178', '财务部门', 4, NULL, NULL, NULL, '1', 2);
INSERT INTO `permission_dept` VALUES (10, '', 'admin', 'admin', '2021-02-27 07:27:15.287731', '2021-02-27 07:27:15.287772', '运维部门', 5, NULL, NULL, NULL, '1', 2);
INSERT INTO `permission_dept` VALUES (11, '', 'admin', 'admin', '2021-02-27 07:27:24.834369', '2021-02-27 07:27:24.834413', '市场部门', 1, NULL, NULL, NULL, '1', 3);
INSERT INTO `permission_dept` VALUES (12, '', 'admin', 'admin', '2021-02-27 07:27:34.161898', '2021-02-27 07:27:34.161944', '财务部门', 2, NULL, NULL, NULL, '1', 3);
INSERT INTO `permission_dept` VALUES (13, '', 'admin', 'admin', '2021-02-27 07:28:20.474025', '2021-02-27 07:27:47.938676', '市场部门', 1, NULL, NULL, NULL, '0', 5);
INSERT INTO `permission_dept` VALUES (14, '', 'admin', 'admin', '2021-02-27 07:28:23.394188', '2021-02-27 07:27:53.794331', '财务部门', 2, NULL, NULL, NULL, '0', 5);
INSERT INTO `permission_dept` VALUES (15, '', 'admin', 'admin', '2021-02-27 07:28:03.368497', '2021-02-27 07:28:03.368540', '市场部门', 1, NULL, NULL, NULL, '1', 4);
INSERT INTO `permission_dept` VALUES (16, '', 'admin', 'admin', '2021-02-27 07:28:10.532392', '2021-02-27 07:28:10.532436', '财务部门', 2, NULL, NULL, NULL, '1', 4);

View File

@ -0,0 +1,44 @@
-- ----------------------------
-- 菜单管理初始化sql
-- Table structure for permission_menu
-- ----------------------------
-- DROP TABLE IF EXISTS `permission_menu`;
-- CREATE TABLE `permission_menu` (
-- `id` int(11) NOT NULL AUTO_INCREMENT,
-- `description` longtext,
-- `creator` varchar(255) DEFAULT NULL,
-- `modifier` varchar(255) DEFAULT NULL,
-- `update_datetime` datetime(6) DEFAULT NULL,
-- `create_datetime` datetime(6) DEFAULT NULL,
-- `menuType` varchar(8) NOT NULL,
-- `icon` varchar(64) DEFAULT NULL,
-- `name` varchar(64) NOT NULL,
-- `orderNum` int(11) NOT NULL,
-- `isFrame` varchar(8) NOT NULL,
-- `web_path` varchar(128) DEFAULT NULL,
-- `component_path` varchar(128) DEFAULT NULL,
-- `interface_path` varchar(256) DEFAULT NULL,
-- `interface_method` varchar(16) NOT NULL,
-- `perms` varchar(256) DEFAULT NULL,
-- `status` varchar(8) NOT NULL,
-- `visible` varchar(8) NOT NULL,
-- `isCache` varchar(8) NOT NULL,
-- `parentId_id` int(11) DEFAULT NULL,
-- PRIMARY KEY (`id`),
-- KEY `permission_menu_parentId_id_df49c7ef_fk_permission_menu_id` (`parentId_id`),
-- CONSTRAINT `permission_menu_parentId_id_df49c7ef_fk_permission_menu_id` FOREIGN KEY (`parentId_id`) REFERENCES `permission_menu` (`id`)
-- ) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
-- ----------------------------
-- Records of permission_menu
-- ----------------------------
INSERT INTO `permission_menu` VALUES (1, '', 'admin', 'admin', '2021-02-27 07:50:00.410101', '2021-02-27 07:41:28.660364', '0', 'system', '系统管理', 1, '1', 'system', '', '', 'GET', NULL, '1', '1', '1', NULL);
INSERT INTO `permission_menu` VALUES (2, '', 'admin', 'admin', '2021-02-27 07:51:14.500722', '2021-02-27 07:51:14.500768', '0', 'peoples', '权限管理', 2, '1', 'permission', '', '', 'GET', NULL, '1', '1', '1', NULL);
INSERT INTO `permission_menu` VALUES (3, '', 'admin', 'admin', '2021-02-27 08:20:40.164651', '2021-02-27 07:54:38.630670', '1', 'dict', '字典管理', 1, '1', 'system/dict', 'system/dict/index', 'system/dict/type', 'GET', 'system:dict:type:get', '1', '1', '1', 1);
INSERT INTO `permission_menu` VALUES (4, '', 'admin', 'admin', '2021-02-27 08:24:03.776515', '2021-02-27 08:06:51.019173', '1', 'edit', '参数管理', 2, '1', 'system/config', 'system/config/index', 'system/config/', 'GET', 'system:config:get', '1', '1', '1', 1);
INSERT INTO `permission_menu` VALUES (5, '', 'admin', 'admin', '2021-02-27 08:26:56.407590', '2021-02-27 08:25:37.339270', '1', 'post', '岗位管理', 1, '1', 'permission/post', 'permission/post/index', 'permission/post', 'GET', 'permission:post:get', '1', '1', '1', 2);
INSERT INTO `permission_menu` VALUES (6, '', 'admin', 'admin', '2021-02-27 08:26:48.454509', '2021-02-27 08:26:48.454553', '1', 'tree', '部门管理', 2, '1', 'permission/dept', 'permission/dept/index', 'permission/dept', 'GET', 'permission:dept:get', '1', '1', '1', 2);
INSERT INTO `permission_menu` VALUES (7, '', 'admin', 'admin', '2021-02-27 08:28:20.411115', '2021-02-27 08:28:20.411164', '1', 'tree-table', '菜单管理', 3, '1', 'permission/menu', 'permission/menu/index', 'permission/menus', 'GET', 'permission:menus:get', '1', '1', '1', 2);
INSERT INTO `permission_menu` VALUES (8, '', 'admin', 'admin', '2021-02-27 08:29:30.153322', '2021-02-27 08:29:30.153361', '1', 'peoples', '角色管理', 4, '1', 'permission/role', 'permission/role/index', 'permission/role', 'GET', 'permission:role:get', '1', '1', '1', 2);
INSERT INTO `permission_menu` VALUES (9, '', 'admin', 'admin', '2021-02-27 08:30:14.030845', '2021-02-27 08:30:14.030888', '1', 'user', '用户管理', 5, '1', 'permission/user', 'permission/user/index', 'permission/user', 'GET', 'permission:user:get', '1', '1', '1', 2);
INSERT INTO `permission_menu` VALUES (10, '', 'admin', 'admin', '2021-02-27 08:37:24.948235', '2021-02-27 08:36:04.824117', '0', 'guide', 'dvAdmin官网', 9, '0', 'https://django-vue-admin.com', '', NULL, 'GET', NULL, '1', '1', '1', NULL);

View File

@ -0,0 +1,27 @@
-- ----------------------------
-- 岗位管理初始化sql
-- Table structure for permission_post
-- ----------------------------
-- DROP TABLE IF EXISTS `permission_post`;
-- CREATE TABLE `permission_post` (
-- `id` int(11) NOT NULL AUTO_INCREMENT,
-- `description` longtext,
-- `creator` varchar(255) DEFAULT NULL,
-- `modifier` varchar(255) DEFAULT NULL,
-- `update_datetime` datetime(6) DEFAULT NULL,
-- `create_datetime` datetime(6) DEFAULT NULL,
-- `postName` varchar(64) NOT NULL,
-- `postCode` varchar(32) NOT NULL,
-- `postSort` int(11) NOT NULL,
-- `status` varchar(8) NOT NULL,
-- `remark` longtext,
-- PRIMARY KEY (`id`)
-- ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
-- ----------------------------
-- Records of permission_post
-- ----------------------------
INSERT INTO `permission_post` VALUES (1, '', 'admin', 'admin', '2021-02-27 07:16:10.725970', '2021-02-27 07:16:10.726016', '董事长', 'ceo', 1, '1', NULL);
INSERT INTO `permission_post` VALUES (2, '', 'admin', 'admin', '2021-02-27 07:16:28.139648', '2021-02-27 07:16:28.139689', '项目经理', 'ce', 2, '1', NULL);
INSERT INTO `permission_post` VALUES (3, '', 'admin', 'admin', '2021-02-27 07:16:39.843069', '2021-02-27 07:16:39.843114', '人力资源', 'hr', 3, '1', NULL);
INSERT INTO `permission_post` VALUES (4, '', 'admin', 'admin', '2021-02-27 07:16:51.082769', '2021-02-27 07:16:51.082813', '普通员工', 'user', 4, '1', NULL);

View File

@ -0,0 +1,115 @@
-- ----------------------------
-- 角色管理 初始化
-- Table structure for permission_role
-- ----------------------------
-- DROP TABLE IF EXISTS `permission_role`;
-- CREATE TABLE `permission_role` (
-- `id` int(11) NOT NULL AUTO_INCREMENT,
-- `description` longtext,
-- `creator` varchar(255) DEFAULT NULL,
-- `modifier` varchar(255) DEFAULT NULL,
-- `update_datetime` datetime(6) DEFAULT NULL,
-- `create_datetime` datetime(6) DEFAULT NULL,
-- `roleName` varchar(64) NOT NULL,
-- `roleKey` varchar(64) NOT NULL,
-- `roleSort` int(11) NOT NULL,
-- `status` varchar(8) NOT NULL,
-- `admin` tinyint(1) NOT NULL,
-- `dataScope` varchar(8) NOT NULL,
-- `remark` longtext,
-- PRIMARY KEY (`id`)
-- ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
-- ----------------------------
-- Records of permission_role
-- ----------------------------
INSERT INTO `permission_role` VALUES (1, '', 'admin', 'admin', '2021-02-27 08:48:23.225361', '2021-02-27 08:48:08.064911', '超级管理员', 'admin', 1, '1', 0, '2', NULL);
INSERT INTO `permission_role` VALUES (2, '', 'admin', 'admin', '2021-02-27 08:49:05.149632', '2021-02-27 08:48:47.317214', '普通角色', 'common', 2, '1', 0, '2', NULL);
-- ----------------------------
-- Table structure for permission_role_dept
-- ----------------------------
-- DROP TABLE IF EXISTS `permission_role_dept`;
-- CREATE TABLE `permission_role_dept` (
-- `id` int(11) NOT NULL AUTO_INCREMENT,
-- `role_id` int(11) NOT NULL,
-- `dept_id` int(11) NOT NULL,
-- PRIMARY KEY (`id`),
-- UNIQUE KEY `permission_role_dept_role_id_dept_id_1d89afeb_uniq` (`role_id`,`dept_id`),
-- KEY `permission_role_dept_role_id_99a9f232` (`role_id`) USING BTREE,
-- KEY `permission_role_dept_dept_id_cbe9076a` (`dept_id`) USING BTREE
-- ) ENGINE=InnoDB AUTO_INCREMENT=33 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
-- ----------------------------
-- Records of permission_role_dept
-- ----------------------------
INSERT INTO `permission_role_dept` VALUES (1, 1, 1);
INSERT INTO `permission_role_dept` VALUES (2, 1, 2);
INSERT INTO `permission_role_dept` VALUES (3, 1, 3);
INSERT INTO `permission_role_dept` VALUES (4, 1, 4);
INSERT INTO `permission_role_dept` VALUES (5, 1, 5);
INSERT INTO `permission_role_dept` VALUES (6, 1, 6);
INSERT INTO `permission_role_dept` VALUES (7, 1, 7);
INSERT INTO `permission_role_dept` VALUES (8, 1, 8);
INSERT INTO `permission_role_dept` VALUES (9, 1, 9);
INSERT INTO `permission_role_dept` VALUES (10, 1, 10);
INSERT INTO `permission_role_dept` VALUES (11, 1, 11);
INSERT INTO `permission_role_dept` VALUES (12, 1, 12);
INSERT INTO `permission_role_dept` VALUES (13, 1, 13);
INSERT INTO `permission_role_dept` VALUES (14, 1, 14);
INSERT INTO `permission_role_dept` VALUES (15, 1, 15);
INSERT INTO `permission_role_dept` VALUES (16, 1, 16);
INSERT INTO `permission_role_dept` VALUES (17, 2, 1);
INSERT INTO `permission_role_dept` VALUES (18, 2, 2);
INSERT INTO `permission_role_dept` VALUES (19, 2, 3);
INSERT INTO `permission_role_dept` VALUES (20, 2, 4);
INSERT INTO `permission_role_dept` VALUES (21, 2, 5);
INSERT INTO `permission_role_dept` VALUES (22, 2, 6);
INSERT INTO `permission_role_dept` VALUES (23, 2, 7);
INSERT INTO `permission_role_dept` VALUES (24, 2, 8);
INSERT INTO `permission_role_dept` VALUES (25, 2, 9);
INSERT INTO `permission_role_dept` VALUES (26, 2, 10);
INSERT INTO `permission_role_dept` VALUES (27, 2, 11);
INSERT INTO `permission_role_dept` VALUES (28, 2, 12);
INSERT INTO `permission_role_dept` VALUES (29, 2, 13);
INSERT INTO `permission_role_dept` VALUES (30, 2, 14);
INSERT INTO `permission_role_dept` VALUES (31, 2, 15);
INSERT INTO `permission_role_dept` VALUES (32, 2, 16);
-- ----------------------------
-- Table structure for permission_role_menu
-- ----------------------------
-- DROP TABLE IF EXISTS `permission_role_menu`;
-- CREATE TABLE `permission_role_menu` (
-- `id` int(11) NOT NULL AUTO_INCREMENT,
-- `role_id` int(11) NOT NULL,
-- `menu_id` int(11) NOT NULL,
-- PRIMARY KEY (`id`),
-- UNIQUE KEY `permission_role_menu_role_id_menu_id_bb9e5441_uniq` (`role_id`,`menu_id`),
-- KEY `permission_role_menu_role_id_33541d2b` (`role_id`) USING BTREE,
-- KEY `permission_role_menu_menu_id_0c24555f` (`menu_id`) USING BTREE
-- ) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
-- ----------------------------
-- Records of permission_role_menu
-- ----------------------------
INSERT INTO `permission_role_menu` VALUES (1, 1, 1);
INSERT INTO `permission_role_menu` VALUES (2, 1, 2);
INSERT INTO `permission_role_menu` VALUES (3, 1, 3);
INSERT INTO `permission_role_menu` VALUES (4, 1, 4);
INSERT INTO `permission_role_menu` VALUES (5, 1, 5);
INSERT INTO `permission_role_menu` VALUES (6, 1, 6);
INSERT INTO `permission_role_menu` VALUES (7, 1, 7);
INSERT INTO `permission_role_menu` VALUES (8, 1, 8);
INSERT INTO `permission_role_menu` VALUES (9, 1, 9);
INSERT INTO `permission_role_menu` VALUES (10, 1, 10);
INSERT INTO `permission_role_menu` VALUES (11, 2, 1);
INSERT INTO `permission_role_menu` VALUES (12, 2, 2);
INSERT INTO `permission_role_menu` VALUES (13, 2, 3);
INSERT INTO `permission_role_menu` VALUES (14, 2, 4);
INSERT INTO `permission_role_menu` VALUES (15, 2, 5);
INSERT INTO `permission_role_menu` VALUES (16, 2, 6);
INSERT INTO `permission_role_menu` VALUES (17, 2, 7);
INSERT INTO `permission_role_menu` VALUES (18, 2, 8);
INSERT INTO `permission_role_menu` VALUES (19, 2, 9);
INSERT INTO `permission_role_menu` VALUES (20, 2, 10);

View File

@ -0,0 +1,36 @@
-- ----------------------------
-- 用户管理 初始化sql
-- Table structure for permission_userprofile
-- ----------------------------
-- DROP TABLE IF EXISTS `permission_userprofile`;
-- CREATE TABLE `permission_userprofile` (
-- `id` int(11) NOT NULL AUTO_INCREMENT,
-- `password` varchar(128) NOT NULL,
-- `last_login` datetime(6) DEFAULT NULL,
-- `is_superuser` tinyint(1) NOT NULL,
-- `first_name` varchar(30) NOT NULL,
-- `last_name` varchar(150) NOT NULL,
-- `is_staff` tinyint(1) NOT NULL,
-- `is_active` tinyint(1) NOT NULL,
-- `date_joined` datetime(6) NOT NULL,
-- `username` varchar(150) NOT NULL,
-- `secret` varchar(255) NOT NULL,
-- `email` varchar(255) DEFAULT NULL,
-- `mobile` varchar(255) DEFAULT NULL,
-- `avatar` longtext,
-- `name` varchar(40) NOT NULL,
-- `gender` varchar(8) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL,
-- `remark` longtext,
-- `user_type` int(11) NOT NULL,
-- `create_datetime` datetime(6) DEFAULT NULL,
-- `update_datetime` datetime(6) DEFAULT NULL,
-- `dept_id` int(11) DEFAULT NULL,
-- PRIMARY KEY (`id`),
-- UNIQUE KEY `username` (`username`),
-- KEY `permission_userprofile_dept_id_bd5c7976` (`dept_id`) USING BTREE
-- ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
-- ----------------------------
-- Records of permission_userprofile
-- ----------------------------
INSERT INTO `permission_userprofile` VALUES (1, 'pbkdf2_sha256$150000$9Fs0I0yoaQ4s$cCe7ynmDuZMgDs1W9kNl7kGb6sBj+92UiF10n291Hq4=', '2021-02-27 06:20:28.214775', 1, '', '', 1, 1, '2021-02-27 06:20:09.188689', 'demo', '3704adf3-380f-4c27-a8da-60420e8cb4ab', 'demo@qq.com', NULL, NULL, '测试账号', '2', '1', 2, '2021-02-27 06:20:09.263192', '2021-02-27 09:14:30.009998', 8);

View File

@ -0,0 +1,27 @@
-- ----------------------------
-- 参数设置 初始化sql
-- Table structure for system_configsettings
-- ----------------------------
-- DROP TABLE IF EXISTS `system_configsettings`;
-- CREATE TABLE `system_configsettings` (
-- `id` int(11) NOT NULL AUTO_INCREMENT,
-- `description` longtext,
-- `creator` varchar(255) DEFAULT NULL,
-- `modifier` varchar(255) DEFAULT NULL,
-- `update_datetime` datetime(6) DEFAULT NULL,
-- `create_datetime` datetime(6) DEFAULT NULL,
-- `configName` varchar(64) NOT NULL,
-- `configKey` varchar(256) NOT NULL,
-- `configValue` varchar(256) NOT NULL,
-- `configType` varchar(8) NOT NULL,
-- `status` varchar(8) NOT NULL,
-- `remark` varchar(256) DEFAULT NULL,
-- PRIMARY KEY (`id`)
-- ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
-- ----------------------------
-- Records of system_configsettings
-- ----------------------------
INSERT INTO `system_configsettings` VALUES (1, '', 'admin', 'admin', '2021-02-27 07:14:48.935587', '2021-02-27 07:14:48.935634', '主框架页-默认皮肤样式名称', 'sys.index.skinName', 'skin-blue', 'Y', '1', '蓝色 skin-blue、绿色 skin-green、紫色 skin-purple、红色 skin-red、黄色 skin-yellow');
INSERT INTO `system_configsettings` VALUES (2, '', 'admin', 'admin', '2021-02-27 07:15:14.039924', '2021-02-27 07:15:14.039967', '用户管理-账号初始密码', 'sys.user.initPassword', '123456', 'Y', '1', '初始化密码 123456');
INSERT INTO `system_configsettings` VALUES (3, '', 'admin', 'admin', '2021-02-27 07:15:36.091655', '2021-02-27 07:15:36.091694', '主框架页-侧边栏主题', 'sys.index.sideTheme', 'theme-dark', 'Y', '1', '深色主题theme-dark浅色主题theme-light');

View File

@ -0,0 +1,33 @@
-- ----------------------------
-- 字典管理初始化sql
-- Table structure for system_dictdata
-- ----------------------------
-- DROP TABLE IF EXISTS `system_dictdata`;
-- CREATE TABLE `system_dictdata` (
-- `id` int(11) NOT NULL AUTO_INCREMENT,
-- `description` longtext,
-- `creator` varchar(255) DEFAULT NULL,
-- `modifier` varchar(255) DEFAULT NULL,
-- `update_datetime` datetime(6) DEFAULT NULL,
-- `create_datetime` datetime(6) DEFAULT NULL,
-- `dictName` varchar(64) NOT NULL,
-- `dictType` varchar(64) NOT NULL,
-- `status` varchar(8) NOT NULL,
-- `remark` varchar(256) DEFAULT NULL,
-- PRIMARY KEY (`id`)
-- ) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
-- ----------------------------
-- Records of system_dictdata
-- ----------------------------
INSERT INTO `system_dictdata` VALUES (1, '', 'admin', 'admin', '2021-02-27 06:22:24.215575', '2021-02-27 06:22:24.215617', '用户性别', 'sys_user_sex', '1', '用户性别列表');
INSERT INTO `system_dictdata` VALUES (2, '', 'admin', 'admin', '2021-02-27 06:24:38.126411', '2021-02-27 06:24:38.126456', '菜单状态', 'sys_show_hide', '1', '菜单状态列表');
INSERT INTO `system_dictdata` VALUES (3, '', 'admin', 'admin', '2021-02-27 06:24:54.943462', '2021-02-27 06:24:54.943516', '系统开关', 'sys_normal_disable', '1', '系统开关列表');
INSERT INTO `system_dictdata` VALUES (4, '', 'admin', 'admin', '2021-02-27 06:25:16.667651', '2021-02-27 06:25:16.667697', '任务状态', 'sys_job_status', '1', '任务状态列表');
INSERT INTO `system_dictdata` VALUES (5, '', 'admin', 'admin', '2021-02-27 06:25:34.967768', '2021-02-27 06:25:34.967812', '任务分组', 'sys_job_group', '1', '任务分组列表');
INSERT INTO `system_dictdata` VALUES (6, '', 'admin', 'admin', '2021-02-27 06:26:01.081973', '2021-02-27 06:26:01.082016', '系统是否', 'sys_yes_no', '1', '系统是否列表');
INSERT INTO `system_dictdata` VALUES (7, '', 'admin', 'admin', '2021-02-27 06:26:17.716100', '2021-02-27 06:26:17.716144', '通知类型', 'sys_notice_type', '1', '通知类型列表');
INSERT INTO `system_dictdata` VALUES (8, '', 'admin', 'admin', '2021-02-27 06:26:42.305470', '2021-02-27 06:26:42.305517', '通知状态', 'sys_notice_status', '1', '通知状态列表');
INSERT INTO `system_dictdata` VALUES (9, '', 'admin', 'admin', '2021-02-27 06:26:57.913406', '2021-02-27 06:26:57.913457', '操作类型', 'sys_oper_type', '1', '操作类型列表');
INSERT INTO `system_dictdata` VALUES (10, '', 'admin', 'admin', '2021-02-27 06:27:16.392863', '2021-02-27 06:27:16.392961', '系统状态', 'sys_common_status', '1', '登录状态列表');
INSERT INTO `system_dictdata` VALUES (11, '', 'admin', 'admin', '2021-02-27 07:59:30.310069', '2021-02-27 07:59:30.310115', '菜单类型', 'sys_menu_type', '1', '菜单类型');
INSERT INTO `system_dictdata` VALUES (12, '', 'admin', 'admin', '2021-02-27 07:59:47.677379', '2021-02-27 07:59:47.677423', '接口请求方式', 'sys_interface_method', '1', '接口请求方式');

View File

@ -0,0 +1,66 @@
-- ----------------------------
-- 字典详情初始化sql
-- Table structure for system_dictdetails
-- ----------------------------
-- DROP TABLE IF EXISTS `system_dictdetails`;
-- CREATE TABLE `system_dictdetails` (
-- `id` int(11) NOT NULL AUTO_INCREMENT,
-- `description` longtext,
-- `creator` varchar(255) DEFAULT NULL,
-- `modifier` varchar(255) DEFAULT NULL,
-- `update_datetime` datetime(6) DEFAULT NULL,
-- `create_datetime` datetime(6) DEFAULT NULL,
-- `dictLabel` varchar(64) NOT NULL,
-- `dictValue` varchar(256) NOT NULL,
-- `is_default` tinyint(1) NOT NULL,
-- `status` varchar(2) NOT NULL,
-- `sort` varchar(256) NOT NULL,
-- `remark` varchar(256) DEFAULT NULL,
-- `dict_data_id` int(11) NOT NULL,
-- PRIMARY KEY (`id`),
-- KEY `system_dictdetails_dict_data_id_0bfceb37_fk_system_dictdata_id` (`dict_data_id`),
-- CONSTRAINT `system_dictdetails_dict_data_id_0bfceb37_fk_system_dictdata_id` FOREIGN KEY (`dict_data_id`) REFERENCES `system_dictdata` (`id`)
-- ) ENGINE=InnoDB AUTO_INCREMENT=40 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
-- ----------------------------
-- Records of system_dictdetails
-- ----------------------------
INSERT INTO `system_dictdetails` VALUES (1, '', 'admin', 'admin', '2021-02-27 07:10:41.679229', '2021-02-27 06:28:44.246112', '', '0', 0, '1', '1', '性别男', 1);
INSERT INTO `system_dictdetails` VALUES (2, '', 'admin', 'admin', '2021-02-27 06:29:33.556002', '2021-02-27 06:29:03.591400', '', '1', 0, '1', '2', '性别女', 1);
INSERT INTO `system_dictdetails` VALUES (3, '', 'admin', 'admin', '2021-02-27 06:29:51.943789', '2021-02-27 06:29:17.544082', '未知', '2', 1, '1', '3', '性别未知', 1);
INSERT INTO `system_dictdetails` VALUES (4, '', 'admin', 'admin', '2021-02-27 07:10:27.513951', '2021-02-27 06:31:38.884136', '显示', '1', 1, '1', '1', '显示菜单', 2);
INSERT INTO `system_dictdetails` VALUES (5, '', 'admin', 'admin', '2021-02-27 07:10:30.824117', '2021-02-27 06:33:07.491136', '隐藏', '0', 0, '1', '2', '隐藏菜单', 2);
INSERT INTO `system_dictdetails` VALUES (6, '', 'admin', 'admin', '2021-02-27 07:00:47.233161', '2021-02-27 07:00:47.233220', '正常', '1', 1, '1', '1', '正常状态', 3);
INSERT INTO `system_dictdetails` VALUES (7, '', 'admin', 'admin', '2021-02-27 07:01:02.598169', '2021-02-27 07:01:02.598213', '停用', '0', 0, '1', '2', '停用状态', 3);
INSERT INTO `system_dictdetails` VALUES (8, '', 'admin', 'admin', '2021-02-27 07:02:03.014319', '2021-02-27 07:01:43.750881', '正常', '1', 1, '1', '1', '正常状态', 4);
INSERT INTO `system_dictdetails` VALUES (9, '', 'admin', 'admin', '2021-02-27 07:01:58.880996', '2021-02-27 07:01:58.881040', '暂停', '0', 0, '1', '2', '停用状态', 4);
INSERT INTO `system_dictdetails` VALUES (10, '', 'admin', 'admin', '2021-02-27 07:02:51.415658', '2021-02-27 07:02:51.415703', '默认', 'DEFAULT', 1, '1', '1', '默认分组', 5);
INSERT INTO `system_dictdetails` VALUES (11, '', 'admin', 'admin', '2021-02-27 07:03:13.560650', '2021-02-27 07:03:13.560696', '系统', 'SYSTEM', 0, '1', '2', '系统分组', 5);
INSERT INTO `system_dictdetails` VALUES (12, '', 'admin', 'admin', '2021-02-27 07:03:42.729915', '2021-02-27 07:03:42.729966', '', 'Y', 1, '1', '1', '系统默认是', 6);
INSERT INTO `system_dictdetails` VALUES (13, '', 'admin', 'admin', '2021-02-27 07:04:01.389829', '2021-02-27 07:04:01.389872', '', 'N', 0, '1', '2', '系统默认否', 6);
INSERT INTO `system_dictdetails` VALUES (14, '', 'admin', 'admin', '2021-02-27 07:04:25.094873', '2021-02-27 07:04:25.094917', '通知', '1', 1, '1', '1', '通知', 7);
INSERT INTO `system_dictdetails` VALUES (15, '', 'admin', 'admin', '2021-02-27 07:04:48.136899', '2021-02-27 07:04:48.136942', '公告', '2', 0, '1', '2', '公告', 7);
INSERT INTO `system_dictdetails` VALUES (16, '', 'admin', 'admin', '2021-02-27 07:05:19.801756', '2021-02-27 07:05:14.206563', '正常', '1', 1, '1', '1', '正常状态', 8);
INSERT INTO `system_dictdetails` VALUES (17, '', 'admin', 'admin', '2021-02-27 07:05:37.420621', '2021-02-27 07:05:37.420665', '关闭', '0', 0, '1', '2', '关闭状态', 8);
INSERT INTO `system_dictdetails` VALUES (18, '', 'admin', 'admin', '2021-02-27 07:06:46.397742', '2021-02-27 07:06:10.700351', '新增', '1', 0, '1', '1', '新增操作', 9);
INSERT INTO `system_dictdetails` VALUES (19, '', 'admin', 'admin', '2021-02-27 07:06:24.688730', '2021-02-27 07:06:24.688786', '修改', '2', 0, '1', '2', '修改操作', 9);
INSERT INTO `system_dictdetails` VALUES (20, '', 'admin', 'admin', '2021-02-27 07:06:43.320943', '2021-02-27 07:06:43.320988', '删除', '3', 0, '1', '3', '删除操作', 9);
INSERT INTO `system_dictdetails` VALUES (21, '', 'admin', 'admin', '2021-02-27 07:07:00.508951', '2021-02-27 07:07:00.508996', '授权', '4', 0, '1', '4', '授权操作', 9);
INSERT INTO `system_dictdetails` VALUES (22, '', 'admin', 'admin', '2021-02-27 07:07:38.550527', '2021-02-27 07:07:38.550573', '导出', '5', 0, '1', '5', '导出操作', 9);
INSERT INTO `system_dictdetails` VALUES (23, '', 'admin', 'admin', '2021-02-27 07:08:09.294696', '2021-02-27 07:08:09.294743', '导入', '6', 0, '1', '6', '导入操作', 9);
INSERT INTO `system_dictdetails` VALUES (24, '', 'admin', 'admin', '2021-02-27 07:08:32.640718', '2021-02-27 07:08:32.640763', '强退', '7', 0, '1', '7', '强退操作', 9);
INSERT INTO `system_dictdetails` VALUES (25, '', 'admin', 'admin', '2021-02-27 07:08:47.559833', '2021-02-27 07:08:47.559887', '生成', '8', 0, '1', '8', '生成操作', 9);
INSERT INTO `system_dictdetails` VALUES (26, '', 'admin', 'admin', '2021-02-27 07:09:13.410371', '2021-02-27 07:09:04.346547', '清空', '9', 0, '1', '9', '清空操作', 9);
INSERT INTO `system_dictdetails` VALUES (27, '', 'admin', 'admin', '2021-02-27 07:09:37.467839', '2021-02-27 07:09:37.467883', '正常', '1', 0, '1', '1', '正常状态', 10);
INSERT INTO `system_dictdetails` VALUES (28, '', 'admin', 'admin', '2021-02-27 07:10:17.235559', '2021-02-27 07:10:02.980623', '停用', '0', 0, '1', '2', '停用状态', 10);
INSERT INTO `system_dictdetails` VALUES (29, '', 'admin', 'admin', '2021-02-27 08:00:07.361327', '2021-02-27 08:00:07.361371', '目录', '0', 1, '1', '1', '目录', 11);
INSERT INTO `system_dictdetails` VALUES (30, '', 'admin', 'admin', '2021-02-27 08:00:27.832697', '2021-02-27 08:00:22.160349', '菜单', '1', 0, '1', '2', '菜单', 11);
INSERT INTO `system_dictdetails` VALUES (31, '', 'admin', 'admin', '2021-02-27 08:00:45.794325', '2021-02-27 08:00:45.794369', '按钮', '2', 0, '1', '3', '按钮', 11);
INSERT INTO `system_dictdetails` VALUES (32, '', 'admin', 'admin', '2021-02-27 08:02:22.957299', '2021-02-27 08:02:22.957364', 'GET', 'GET', 1, '1', '1', NULL, 12);
INSERT INTO `system_dictdetails` VALUES (33, '', 'admin', 'admin', '2021-02-27 08:02:37.650203', '2021-02-27 08:02:37.650291', 'POST', 'POST', 0, '1', '2', NULL, 12);
INSERT INTO `system_dictdetails` VALUES (34, '', 'admin', 'admin', '2021-02-27 08:02:56.731151', '2021-02-27 08:02:56.731262', 'PUT', 'PUT', 0, '1', '3', NULL, 12);
INSERT INTO `system_dictdetails` VALUES (35, '', 'admin', 'admin', '2021-02-27 08:03:19.639542', '2021-02-27 08:03:19.639611', 'PATCH', 'PATCH', 0, '1', '4', NULL, 12);
INSERT INTO `system_dictdetails` VALUES (36, '', 'admin', 'admin', '2021-02-27 08:03:31.746528', '2021-02-27 08:03:31.746574', 'DELETE', 'DELETE', 0, '1', '5', NULL, 12);
INSERT INTO `system_dictdetails` VALUES (37, '', 'admin', 'admin', '2021-02-27 08:03:41.277335', '2021-02-27 08:03:41.277383', 'HEAD', 'HEAD', 0, '0', '6', NULL, 12);
INSERT INTO `system_dictdetails` VALUES (38, '', 'admin', 'admin', '2021-02-27 08:03:50.891906', '2021-02-27 08:03:50.891950', 'OPTIONS', 'OPTIONS', 0, '0', '7', NULL, 12);
INSERT INTO `system_dictdetails` VALUES (39, '', 'admin', 'admin', '2021-02-27 08:04:00.460564', '2021-02-27 08:04:00.460610', 'TRACE', 'TRACE', 0, '0', '8', NULL, 12);

View File

@ -1,6 +1,5 @@
import { login, logout, getInfo } from '@/api/login' import {getInfo, login, logout} from '@/api/login'
import { getToken, setToken, removeToken } from '@/utils/auth' import {getToken, removeToken, setToken} from '@/utils/auth'
import {console} from "vuedraggable/src/util/helper";
const user = { const user = {
state: { state: {
@ -52,7 +51,7 @@ const user = {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
getInfo(state.token).then(res => { getInfo(state.token).then(res => {
const user = res.data.user const user = res.data.user
const avatar = user.avatar === "" ? require("@/assets/images/profile.jpg") : process.env.VUE_APP_BASE_API + user.avatar; const avatar = user.avatar ? process.env.VUE_APP_BASE_API + user.avatar : require("@/assets/images/profile.jpg");
if (res.data.roles && res.data.roles.length > 0) { // 验证返回的roles是否是一个非空数组 if (res.data.roles && res.data.roles.length > 0) { // 验证返回的roles是否是一个非空数组
commit('SET_ROLES', res.data.roles) commit('SET_ROLES', res.data.roles)
commit('SET_PERMISSIONS', res.data.permissions) commit('SET_PERMISSIONS', res.data.permissions)

View File

@ -54,11 +54,11 @@
</template> </template>
<script> <script>
import { getCodeImg } from "@/api/login"; import {getCodeImg} from "@/api/login";
import Cookies from "js-cookie"; import Cookies from "js-cookie";
import { encrypt, decrypt } from '@/utils/jsencrypt' import {decrypt, encrypt} from '@/utils/jsencrypt'
export default { export default {
name: "Login", name: "Login",
data() { data() {
return { return {
@ -100,7 +100,7 @@ export default {
methods: { methods: {
getCode() { getCode() {
getCodeImg().then(res => { getCodeImg().then(res => {
this.codeUrl = process.env.VUE_APP_BASE_API + res.data.image_url; this.codeUrl = res.data.image_url ? process.env.VUE_APP_BASE_API + res.data.image_url : require("@/assets/images/profile.jpg");
this.loginForm.uuid = res.data.key; this.loginForm.uuid = res.data.key;
}); });
}, },

View File

@ -289,14 +289,18 @@ export default {
submitForm: function() { submitForm: function() {
this.$refs["form"].validate(valid => { this.$refs["form"].validate(valid => {
if (valid) { if (valid) {
const cloneData = JSON.parse(JSON.stringify(this.form))
if (cloneData.parentId===0){
delete cloneData['parentId']
}
if (this.form.id != undefined) { if (this.form.id != undefined) {
updateDept(this.form).then(response => { updateDept(cloneData).then(response => {
this.msgSuccess("修改成功"); this.msgSuccess("修改成功");
this.open = false; this.open = false;
this.getList(); this.getList();
}); });
} else { } else {
addDept(this.form).then(response => { addDept(cloneData).then(response => {
this.msgSuccess("新增成功"); this.msgSuccess("新增成功");
this.open = false; this.open = false;
this.getList(); this.getList();

View File

@ -185,12 +185,13 @@
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item v-if="form.menuType != '0'" label="接口路径" prop="interface_path"> <el-form-item v-if="form.menuType != '0'" label="接口路径" prop="interface_path">
<el-input v-model="form.interface_path" placeholder="请输入后端接口路径"/> <el-input v-model="form.interface_path" placeholder="请输入后端接口路径" @change="CreatePerms"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" v-if="form.menuType != '0'"> <el-col :span="12" v-if="form.menuType != '0'">
<el-form-item label="请求方法" prop="interface_method"> <el-form-item label="请求方法" prop="interface_method">
<el-select v-model="form.interface_method" placeholder="请选择后端请求方法" clearable size="small"> <el-select v-model="form.interface_method" placeholder="请选择后端请求方法" clearable size="small"
@change="CreatePerms">
<el-option <el-option
v-for="dict in interfaceMethodOptions" v-for="dict in interfaceMethodOptions"
:key="dict.dictValue" :key="dict.dictValue"
@ -275,11 +276,8 @@
// //
statusOptions: [], statusOptions: [],
// //
menuTypeOptions: [{dictLabel: '目录', dictValue: '0',}, {dictLabel: '菜单', dictValue: '1',}, {dictLabel: '按钮', dictValue: '2',}], menuTypeOptions: [],
interfaceMethodOptions: [{dictLabel: 'GET', dictValue: 'GET',}, {dictLabel: 'POST', dictValue: 'POST',}, interfaceMethodOptions: [],
{dictLabel: 'PUT', dictValue: 'PUT',},{dictLabel: 'PATCH', dictValue: 'PATCH',}, {dictLabel: 'DELETE', dictValue: 'DELETE',},
{dictLabel: 'HEAD', dictValue: 'HEAD',}, {dictLabel: 'OPTIONS', dictValue: 'OPTIONS',},
{dictLabel: 'TRACE', dictValue: 'TRACE',},],
// //
queryParams: { queryParams: {
name: undefined, name: undefined,
@ -305,17 +303,28 @@
created() { created() {
this.getList(); this.getList();
this.getDicts("sys_show_hide").then(response => { this.getDicts("sys_show_hide").then(response => {
this.visibleOptions = response.data.results; this.visibleOptions = response.data;
}); });
this.getDicts("sys_normal_disable").then(response => { this.getDicts("sys_normal_disable").then(response => {
this.statusOptions = response.data; this.statusOptions = response.data;
}); });
this.getDicts("sys_menu_type").then(response => {
this.menuTypeOptions = response.data;
});
this.getDicts("sys_interface_method").then(response => {
this.interfaceMethodOptions = response.data;
});
}, },
methods: { methods: {
// //
selected(name) { selected(name) {
this.form.icon = name; this.form.icon = name;
}, },
/** 自动生成权限标识 */
CreatePerms() {
let res = this.form.interface_path + ":" + this.form.interface_method
this.form.perms = res.toLocaleLowerCase().replace(/(\/)/g,':').replace(/(::)/g,':').replace(/(^:)|(:$)/g, "")
},
/** 查询菜单列表 */ /** 查询菜单列表 */
getList() { getList() {
this.loading = true; this.loading = true;
@ -337,7 +346,7 @@
}, },
/** 查询菜单下拉树结构 */ /** 查询菜单下拉树结构 */
getTreeselect() { getTreeselect() {
listMenu().then(response => { listMenu({pageNum: 'all'}).then(response => {
this.menuOptions = []; this.menuOptions = [];
const menu = {id: 0, name: '主类目', children: []}; const menu = {id: 0, name: '主类目', children: []};
menu.children = this.handleTree(response.data, "id"); menu.children = this.handleTree(response.data, "id");
@ -371,8 +380,9 @@
web_path: undefined, web_path: undefined,
menuType: "0", menuType: "0",
orderNum: undefined, orderNum: undefined,
component_path: '', component_path: undefined,
interface_path: '', interface_path: undefined,
perms: undefined,
interface_method: 'GET', interface_method: 'GET',
isFrame: "1", isFrame: "1",
isCache: "1", isCache: "1",
@ -416,14 +426,18 @@
submitForm: function () { submitForm: function () {
this.$refs["form"].validate(valid => { this.$refs["form"].validate(valid => {
if (valid) { if (valid) {
const cloneData = JSON.parse(JSON.stringify(this.form))
if (cloneData.parentId===0){
delete cloneData['parentId']
}
if (this.form.id != undefined) { if (this.form.id != undefined) {
updateMenu(this.form).then(response => { updateMenu(cloneData).then(response => {
this.msgSuccess("修改成功"); this.msgSuccess("修改成功");
this.open = false; this.open = false;
this.getList(); this.getList();
}); });
} else { } else {
addMenu(this.form).then(response => { addMenu(cloneData).then(response => {
this.msgSuccess("新增成功"); this.msgSuccess("新增成功");
this.open = false; this.open = false;
this.getList(); this.getList();

View File

@ -111,8 +111,9 @@
<template slot-scope="scope"> <template slot-scope="scope">
<el-switch <el-switch
v-model="scope.row.status" v-model="scope.row.status"
active-value="0" active-value="1"
inactive-value="1" inactive-value="0"
disabled
@change="handleStatusChange(scope.row)" @change="handleStatusChange(scope.row)"
></el-switch> ></el-switch>
</template> </template>
@ -403,7 +404,7 @@ export default {
}, },
// //
handleStatusChange(row) { handleStatusChange(row) {
let text = row.status === "0" ? "启用" : "停用"; let text = row.status === "1" ? "启用" : "停用";
this.$confirm('确认要"' + text + '""' + row.roleName + '"角色吗?', "警告", { this.$confirm('确认要"' + text + '""' + row.roleName + '"角色吗?', "警告", {
confirmButtonText: "确定", confirmButtonText: "确定",
cancelButtonText: "取消", cancelButtonText: "取消",

View File

@ -243,7 +243,7 @@
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="用户性别"> <el-form-item label="用户性别">
<el-select v-model="form.sex" placeholder="请选择"> <el-select v-model="form.gender" placeholder="请选择">
<el-option <el-option
v-for="dict in sexOptions" v-for="dict in sexOptions"
:key="dict.dictValue" :key="dict.dictValue"
@ -274,7 +274,7 @@
:key="item.id" :key="item.id"
:label="item.postName" :label="item.postName"
:value="item.id" :value="item.id"
:disabled="item.status == 1" :disabled="item.status == 0"
></el-option> ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
@ -287,7 +287,7 @@
:key="item.id" :key="item.id"
:label="item.roleName" :label="item.roleName"
:value="item.id" :value="item.id"
:disabled="item.status == 1" :disabled="item.status == 0"
></el-option> ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
@ -530,7 +530,7 @@ export default {
password: undefined, password: undefined,
mobile: undefined, mobile: undefined,
email: undefined, email: undefined,
sex: undefined, gender: undefined,
is_active: false, is_active: false,
remark: undefined, remark: undefined,
postIds: [], postIds: [],
@ -574,11 +574,12 @@ export default {
this.getTreeselect(); this.getTreeselect();
const id = row.id || this.ids; const id = row.id || this.ids;
getUser(id).then(response => { getUser(id).then(response => {
this.form = response.data.data; let data = response.data.data
data['postIds'] = response.data.postIds
data['roleIds'] = response.data.roleIds
this.form = data;
this.postOptions = response.data.posts; this.postOptions = response.data.posts;
this.roleOptions = response.data.roles; this.roleOptions = response.data.roles;
this.form.postIds = response.data.postIds;
this.form.roleIds = response.data.roleIds;
this.open = true; this.open = true;
this.title = "修改用户"; this.title = "修改用户";
this.form.password = ""; this.form.password = "";

View File

@ -5,7 +5,7 @@
<el-select v-model="queryParams.dictType" size="small"> <el-select v-model="queryParams.dictType" size="small">
<el-option <el-option
v-for="item in typeOptions" v-for="item in typeOptions"
:key="item.dictId" :key="item.id"
:label="item.dictName" :label="item.dictName"
:value="item.dictType" :value="item.dictType"
/> />
@ -98,9 +98,9 @@
</el-table-column> </el-table-column>
<el-table-column label="状态" align="center" prop="status" :formatter="statusFormat" /> <el-table-column label="状态" align="center" prop="status" :formatter="statusFormat" />
<el-table-column label="备注" align="center" prop="remark" :show-overflow-tooltip="true" /> <el-table-column label="备注" align="center" prop="remark" :show-overflow-tooltip="true" />
<el-table-column label="创建时间" align="center" prop="createTime" width="180"> <el-table-column label="创建时间" align="center" prop="create_datetime" width="180">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime) }}</span> <span>{{ parseTime(scope.row.create_datetime) }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
@ -175,10 +175,10 @@
</template> </template>
<script> <script>
import { listData, getData, delData, addData, updateData, exportData } from "@/api/system/dict/data"; import {addData, delData, exportData, getData, listData, updateData} from "@/api/system/dict/data";
import { listType, getType } from "@/api/system/dict/type"; import {getType, listType} from "@/api/system/dict/type";
export default { export default {
name: "Data", name: "Data",
data() { data() {
return { return {
@ -250,8 +250,8 @@ export default {
}, },
/** 查询字典类型列表 */ /** 查询字典类型列表 */
getTypeList() { getTypeList() {
listType().then(response => { listType({pageNum: 'all'}).then(response => {
this.typeOptions = response.data.results; this.typeOptions = response.data;
}); });
}, },
/** 查询字典数据列表 */ /** 查询字典数据列表 */
@ -287,6 +287,13 @@ export default {
}, },
/** 搜索按钮操作 */ /** 搜索按钮操作 */
handleQuery() { handleQuery() {
let dictId = ''
this.typeOptions.map(val => {
if (val.dictType === this.queryParams.dictType) {
dictId = val.id
}
})
this.$route.params.dictId = dictId
this.queryParams.pageNum = 1; this.queryParams.pageNum = 1;
this.getList(); this.getList();
}, },

View File

@ -124,9 +124,9 @@
</el-table-column> </el-table-column>
<el-table-column label="状态" align="center" prop="status" :formatter="statusFormat" /> <el-table-column label="状态" align="center" prop="status" :formatter="statusFormat" />
<el-table-column label="备注" align="center" prop="remark" :show-overflow-tooltip="true" /> <el-table-column label="备注" align="center" prop="remark" :show-overflow-tooltip="true" />
<el-table-column label="创建时间" align="center" prop="createTime" width="180"> <el-table-column label="创建时间" align="center" prop="create_datetime" width="180">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime) }}</span> <span>{{ parseTime(scope.row.create_datetime) }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
@ -213,7 +213,7 @@ export default {
// //
open: false, open: false,
// //
statusOptions: [{dictLabel: '正常', dictValue: '1',}, {dictLabel: '停用', dictValue: '0',}], statusOptions: [],
// //
dateRange: [], dateRange: [],
// //
@ -239,9 +239,9 @@ export default {
}, },
created() { created() {
this.getList(); this.getList();
// this.getDicts("sys_normal_disable").then(response => { this.getDicts("sys_normal_disable").then(response => {
// this.statusOptions = response.data; this.statusOptions = response.data;
// }); });
}, },
methods: { methods: {
/** 查询字典类型列表 */ /** 查询字典类型列表 */