将数据操作全部改为迁移脚本
This commit is contained in:
@@ -1,6 +1,3 @@
|
||||
from applications import create_app
|
||||
|
||||
app = create_app()
|
||||
|
||||
if __name__ == '__main__':
|
||||
app.run()
|
||||
|
||||
@@ -30,10 +30,29 @@ def create_app(config_name=None):
|
||||
configure_uploads(app, photos)
|
||||
|
||||
logo()
|
||||
|
||||
register_shell(app)
|
||||
return app
|
||||
|
||||
|
||||
def register_shell(app: Flask):
|
||||
@app.cli.command()
|
||||
def create():
|
||||
"""测试关系"""
|
||||
from .extensions import db
|
||||
from .models import Power, User
|
||||
from .models import PowerSchema
|
||||
power_schema = PowerSchema(many=True) # 用已继承 ma.ModelSchema 类的自定制类生成序列化类
|
||||
user = User.query.get(1)
|
||||
power_list = []
|
||||
for role in user.role:
|
||||
if role.enable:
|
||||
for power in role.power:
|
||||
# 权限被启用
|
||||
if power.enable and power:
|
||||
power_list.append(power)
|
||||
power_dict = sorted(power_list, key=lambda i: i['sort'])
|
||||
|
||||
|
||||
def logo():
|
||||
print('''
|
||||
_____ _ _ ______ _ _
|
||||
|
||||
@@ -3,7 +3,7 @@ from flask import session, make_response, current_app
|
||||
from flask_login import current_user
|
||||
|
||||
from applications.common.utils.gen_captcha import gen_captcha
|
||||
from applications.models.admin_power import PowerSchema
|
||||
from applications.models.rights.power import PowerSchema
|
||||
|
||||
|
||||
# 授权路由存入session
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
from applications.common.utils.validate import xss_escape
|
||||
from applications.extensions import db
|
||||
from applications.models.admin_power import Power, PowerSchema2
|
||||
from applications.models.rights.power import Power, PowerSchema2
|
||||
from applications.models import Role
|
||||
from applications.common.curd import model_to_dicts
|
||||
|
||||
@@ -3,7 +3,7 @@ from sqlalchemy import and_
|
||||
from applications.common.utils.validate import xss_escape
|
||||
from applications.extensions import db
|
||||
from applications.models import Role, RoleSchema
|
||||
from applications.models.admin_power import Power, PowerSchema2
|
||||
from applications.models.rights.power import Power, PowerSchema2
|
||||
from applications.models import User
|
||||
|
||||
# 获取角色对象
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
from flask import Flask
|
||||
|
||||
from .init_databases import register_script
|
||||
from .init_sqlalchemy import db, ma, init_databases
|
||||
from .init_login import init_login_manager
|
||||
from .init_debug_tool import init_debug_tool
|
||||
@@ -13,3 +14,4 @@ def init_plugs(app: Flask) -> None:
|
||||
init_databases(app)
|
||||
init_template_directives(app)
|
||||
init_error_views(app)
|
||||
register_script(app)
|
||||
|
||||
@@ -0,0 +1,304 @@
|
||||
from flask import Flask
|
||||
|
||||
|
||||
def add_data(fields, data_list, obj):
|
||||
from applications.extensions import db
|
||||
for _data in data_list:
|
||||
dept = obj()
|
||||
for key, value in dict(zip(fields, _data)).items():
|
||||
setattr(dept, key, value)
|
||||
db.session.add(dept)
|
||||
db.session.commit()
|
||||
|
||||
|
||||
def create_dept_data():
|
||||
"""创建化部门数据"""
|
||||
from applications.models import Dept
|
||||
_data_list = [
|
||||
(1, 0, '总公司', 1, '就眠仪式', '12312345679', '123qq.com', 1, None, '这是总公司', None, '2021-06-01 17:23:20'),
|
||||
(4, 1, '济南分公司', 2, '就眠仪式', '12312345678', '1234qq.com', 1, None, '这是济南', '2021-06-01 17:24:33',
|
||||
'2021-06-01 17:25:19'),
|
||||
(5, 1, '唐山分公司', 4, 'mkg', '12312345678', '123@qq.com', 1, None, '这是唐山', '2021-06-01 17:25:15',
|
||||
'2021-06-01 17:25:20'),
|
||||
(7, 4, '济南分公司开发部', 5, '就眠仪式', '12312345678', '123@qq.com', 1, None, '测试', '2021-06-01 17:27:39',
|
||||
'2021-06-01 17:27:39'),
|
||||
(8, 5, '唐山测试部', 6, 'mkg', '12312345678', '123@qq.com', 1, None, '测试部', '2021-06-01 17:28:27',
|
||||
'2021-06-01 17:28:27'),
|
||||
]
|
||||
_fields = ['id', 'parent_id', 'dept_name', 'sort', 'leader', 'phone', 'email', 'status', 'remark', 'address',
|
||||
'create_at', 'update_at']
|
||||
add_data(_fields, _data_list, Dept)
|
||||
|
||||
|
||||
def create_admin_dict_data():
|
||||
from applications.models import DictData, DictType
|
||||
|
||||
_fields = ['id', 'data_label', 'data_value', 'type_code', 'is_default', 'enable', 'remark', 'create_time',
|
||||
'update_time', ]
|
||||
_data_list = [
|
||||
(8, '男', 'boy', 'user_sex', None, 1, '男 : body', '2021-04-16 13:36:34', '2021-04-16 14:05:06'),
|
||||
(9, '女', 'girl', 'user_sex', None, 1, '女 : girl', '2021-04-16 13:36:55', '2021-04-16 13:36:55'),
|
||||
]
|
||||
|
||||
add_data(_fields, _data_list, DictData)
|
||||
_fields = ['id', 'type_name', 'type_code', 'description', 'enable', 'create_time', 'update_time', ]
|
||||
_data_list = [
|
||||
(1, '用户性别', 'user_sex', '用户性别', 1, None, '2021-04-16 13:37:11')
|
||||
]
|
||||
add_data(_fields, _data_list, DictType)
|
||||
|
||||
|
||||
def create_admin_photo():
|
||||
from applications.models import Photo
|
||||
|
||||
_fields = [
|
||||
'id',
|
||||
'name',
|
||||
'href',
|
||||
'mime',
|
||||
'size',
|
||||
'create_time',
|
||||
]
|
||||
_data_list = [
|
||||
(3, '6958819_pear-admin_1607443454_1.png',
|
||||
'http://127.0.0.1:5000/_uploads/photos/6958819_pear-admin_1607443454_1.png', 'image/png', '2204',
|
||||
'2021-03-19 18:53:02'),
|
||||
(17, '1617291580000.jpg', 'http://127.0.0.1:5000/_uploads/photos/1617291580000.jpg', 'image/png', '94211',
|
||||
'2021-04-01 23:39:41'),
|
||||
]
|
||||
add_data(_fields, _data_list, Photo)
|
||||
|
||||
|
||||
def create_admin_power():
|
||||
from applications.models import Power
|
||||
|
||||
_data_list = \
|
||||
[
|
||||
(1, '系统管理', '0', '', None, None, '0', 'layui-icon layui-icon-set-fill', 1, None, None, 1),
|
||||
(3, '用户管理', '1', 'admin:user:main', '/admin/user/', '_iframe', '1',
|
||||
'layui-icon layui-icon layui-icon layui-icon layui-icon-rate', 1, None, None, 1),
|
||||
(4, '权限管理', '1', 'admin:power:main', '/admin/power/', '_iframe', '1', None, 2, None, None, 1),
|
||||
(9, '角色管理', '1', 'admin:role:main', '/admin/role', '_iframe', '1', 'layui-icon layui-icon-username', 2,
|
||||
'2021-03-16 22:24:58', '2021-03-25 19:15:24', 1),
|
||||
(
|
||||
12, '系统监控', '1', 'admin:monitor:main', '/admin/monitor', '_iframe', '1',
|
||||
'layui-icon layui-icon-vercode', 5,
|
||||
'2021-03-18 22:05:19', '2021-03-25 19:15:27', 1),
|
||||
(13, '日志管理', '1', 'admin:log:main', '/admin/log', '_iframe', '1', 'layui-icon layui-icon-read', 4,
|
||||
'2021-03-18 22:37:10', '2021-06-03 11:06:25', 1),
|
||||
(17, '文件管理', '0', '', '', '', '0', 'layui-icon layui-icon-camera', 2, '2021-03-19 18:56:23',
|
||||
'2021-03-25 19:15:08', 1),
|
||||
(18, '图片上传', '1', 'admin:file:main', '/admin/file', '_iframe', '17', 'layui-icon layui-icon-camera', 5,
|
||||
'2021-03-19 18:57:19', '2021-03-25 19:15:13', 1),
|
||||
(21, '权限增加', '2', 'admin:power:add', '', '', '4', 'layui-icon layui-icon-add-circle', 1,
|
||||
'2021-03-22 19:43:52',
|
||||
'2021-03-25 19:15:22', 1),
|
||||
(22, '用户增加', '2', 'admin:user:add', '', '', '3', 'layui-icon layui-icon-add-circle', 1,
|
||||
'2021-03-22 19:45:40',
|
||||
'2021-03-25 19:15:17', 1),
|
||||
(23, '用户编辑', '2', 'admin:user:edit', '', '', '3', 'layui-icon layui-icon-rate', 2, '2021-03-22 19:46:15',
|
||||
'2021-03-25 19:15:18', 1),
|
||||
(24, '用户删除', '2', 'admin:user:remove', '', '', '3', 'layui-icon None', 3, '2021-03-22 19:46:51',
|
||||
'2021-03-25 19:15:18', 1),
|
||||
(25, '权限编辑', '2', 'admin:power:edit', '', '', '4', 'layui-icon layui-icon-edit', 2, '2021-03-22 19:47:36',
|
||||
'2021-03-25 19:15:22', 1),
|
||||
(26, '用户删除', '2', 'admin:power:remove', '', '', '4', 'layui-icon layui-icon-delete', 3,
|
||||
'2021-03-22 19:48:17',
|
||||
'2021-03-25 19:15:23', 1),
|
||||
(27, '用户增加', '2', 'admin:role:add', '', '', '9', 'layui-icon layui-icon-add-circle', 1,
|
||||
'2021-03-22 19:49:09',
|
||||
'2021-03-25 19:15:24', 1),
|
||||
(28, '角色编辑', '2', 'admin:role:edit', '', '', '9', 'layui-icon layui-icon-edit', 2, '2021-03-22 19:49:41',
|
||||
'2021-03-25 19:15:25', 1),
|
||||
(
|
||||
29, '角色删除', '2', 'admin:role:remove', '', '', '9', 'layui-icon layui-icon-delete', 3,
|
||||
'2021-03-22 19:50:15',
|
||||
'2021-03-25 19:15:26', 1),
|
||||
(30, '角色授权', '2', 'admin:role:power', '', '', '9', 'layui-icon layui-icon-component', 4,
|
||||
'2021-03-22 19:50:54',
|
||||
'2021-03-25 19:15:26', 1),
|
||||
(31, '图片增加', '2', 'admin:file:add', '', '', '18', 'layui-icon layui-icon-add-circle', 1,
|
||||
'2021-03-22 19:58:05',
|
||||
'2021-03-25 19:15:28', 1),
|
||||
(32, '图片删除', '2', 'admin:file:delete', '', '', '18', 'layui-icon layui-icon-delete', 2,
|
||||
'2021-03-22 19:58:45',
|
||||
'2021-03-25 19:15:29', 1),
|
||||
(44, '数据字典', '1', 'admin:dict:main', '/admin/dict', '_iframe', '1', 'layui-icon layui-icon-console', 6,
|
||||
'2021-04-16 13:59:49', '2021-04-16 13:59:49', 1),
|
||||
(45, '字典增加', '2', 'admin:dict:add', '', '', '44', 'layui-icon ', 1,
|
||||
'2021-04-16 14:00:59', '2021-04-16 14:00:59', 1),
|
||||
(46, '字典修改', '2', 'admin:dict:edit', '', '', '44', 'layui-icon ', 2, '2021-04-16 14:01:33',
|
||||
'2021-04-16 14:01:33', 1),
|
||||
(47, '字典删除', '2', 'admin:dict:remove', '', '', '44', 'layui-icon ', 3, '2021-04-16 14:02:06',
|
||||
'2021-04-16 14:02:06', 1),
|
||||
(48, '部门管理', '1', 'admin:dept:main', '/dept', '_iframe', '1', 'layui-icon layui-icon-group', 3,
|
||||
'2021-06-01 16:22:11', '2021-06-01 16:22:11', 1),
|
||||
(49, '部门增加', '2', 'admin:dept:add', '', '', '48', 'layui-icon None', 1, '2021-06-01 17:35:52',
|
||||
'2021-06-01 17:36:15', 1),
|
||||
(50, '部门编辑', '2', 'admin:dept:edit', '', '', '48', 'layui-icon ', 2, '2021-06-01 17:36:41',
|
||||
'2021-06-01 17:36:41', 1),
|
||||
(51, '部门删除', '2', 'admin:dept:remove', '', '', '48', 'layui-icon None', 3, '2021-06-01 17:37:15',
|
||||
'2021-06-01 17:37:26', 1),
|
||||
]
|
||||
_fields = [
|
||||
'id',
|
||||
'name',
|
||||
'type',
|
||||
'code',
|
||||
'url',
|
||||
'open_type',
|
||||
'parent_id',
|
||||
'icon',
|
||||
'sort',
|
||||
'create_time',
|
||||
'update_time',
|
||||
'enable',
|
||||
]
|
||||
|
||||
add_data(_fields, _data_list, Power)
|
||||
|
||||
|
||||
def create_admin_role():
|
||||
from applications.models import Role
|
||||
|
||||
_fields = [
|
||||
'id',
|
||||
'name',
|
||||
'code',
|
||||
'remark',
|
||||
'details',
|
||||
'sort',
|
||||
'create_time',
|
||||
'update_time',
|
||||
'enable',
|
||||
]
|
||||
_data_list = [
|
||||
(1, '管理员', 'admin', None, '管理员', 1, None, None, 1),
|
||||
(2, '普通用户', 'common', None, '只有查看,没有增删改权限', 2, '2021-03-22 20:02:38', '2021-04-01 22:29:56', 1),
|
||||
]
|
||||
|
||||
add_data(_fields, _data_list, Role)
|
||||
|
||||
|
||||
def create_admin_role_power():
|
||||
from applications.models import user_role
|
||||
from applications.extensions import db
|
||||
|
||||
_data_list = [
|
||||
(237, 1, 1),
|
||||
(238, 3, 1),
|
||||
(239, 4, 1),
|
||||
(240, 9, 1),
|
||||
(241, 12, 1),
|
||||
(242, 13, 1),
|
||||
(243, 17, 1),
|
||||
(244, 18, 1),
|
||||
(245, 21, 1),
|
||||
(246, 22, 1),
|
||||
(247, 23, 1),
|
||||
(248, 24, 1),
|
||||
(249, 25, 1),
|
||||
(250, 26, 1),
|
||||
(251, 27, 1),
|
||||
(252, 28, 1),
|
||||
(253, 29, 1),
|
||||
(254, 30, 1),
|
||||
(255, 31, 1),
|
||||
(256, 32, 1),
|
||||
(257, 44, 1),
|
||||
(258, 45, 1),
|
||||
(259, 46, 1),
|
||||
(260, 47, 1),
|
||||
(261, 48, 1),
|
||||
(262, 49, 1),
|
||||
(263, 50, 1),
|
||||
(264, 51, 1),
|
||||
(265, 1, 2),
|
||||
(266, 3, 2),
|
||||
(267, 4, 2),
|
||||
(268, 9, 2),
|
||||
(269, 12, 2),
|
||||
(270, 13, 2),
|
||||
(271, 17, 2),
|
||||
(272, 18, 2),
|
||||
(273, 44, 2),
|
||||
(274, 48, 2),
|
||||
]
|
||||
|
||||
# add_data(_fields, _data_list, UserRole)
|
||||
for data in _data_list:
|
||||
db.session.execute('insert into admin_role_power VALUES (%s, %s, %s);' % data)
|
||||
db.session.commit()
|
||||
|
||||
|
||||
def create_admin_user():
|
||||
from applications.models import User
|
||||
|
||||
_fields = [
|
||||
'id',
|
||||
'username',
|
||||
'password_hash',
|
||||
'create_at',
|
||||
'update_at',
|
||||
'enable',
|
||||
'realname',
|
||||
'remark',
|
||||
'avatar',
|
||||
'dept_id',
|
||||
]
|
||||
_data_list = [
|
||||
(1, 'admin', 'pbkdf2:sha256:150000$raM7mDSr$58fe069c3eac01531fc8af85e6fc200655dd2588090530084d182e6ec9d52c85',
|
||||
None, '2021-06-01 17:28:55', 1, '超级管理', '要是不能把握时机,就要终身蹭蹬,一事无成!',
|
||||
'http://127.0.0.1:5000/_uploads/photos/1617291580000.jpg', 1),
|
||||
(7, 'test', 'pbkdf2:sha256:150000$cRS8bYNh$adb57e64d929863cf159f924f74d0634f1fecc46dba749f1bfaca03da6d2e3ac',
|
||||
'2021-03-22 20:03:42', '2021-06-01 17:29:47', 1, '超级管理', '要是不能把握时机,就要终身蹭蹬,一事无成',
|
||||
'/static/admin/admin/images/avatar.jpg', 1),
|
||||
(8, 'wind', 'pbkdf2:sha256:150000$skME1obT$6a2c20cd29f89d7d2f21d9e373a7e3445f70ebce3ef1c3a555e42a7d17170b37',
|
||||
'2021-06-01 17:30:39', '2021-06-01 17:30:52', 1, '风', None, '/static/admin/admin/images/avatar.jpg', 7),
|
||||
]
|
||||
|
||||
add_data(_fields, _data_list, User)
|
||||
|
||||
|
||||
def create_admin_user_role():
|
||||
from applications.extensions import db
|
||||
|
||||
_data_list = [
|
||||
(21, 1, 1),
|
||||
(22, 7, 2),
|
||||
(24, 8, 2),
|
||||
]
|
||||
|
||||
# add_data(_fields, _data_list, UserRole)
|
||||
for data in _data_list:
|
||||
db.session.execute('insert into admin_user_role VALUES (%s, %s, %s);' % data)
|
||||
db.session.commit()
|
||||
|
||||
|
||||
def create_example():
|
||||
from applications.models import DictData
|
||||
|
||||
_fields = []
|
||||
_data_list = []
|
||||
|
||||
add_data(_fields, _data_list, DictData)
|
||||
|
||||
|
||||
def register_script(app: Flask):
|
||||
@app.cli.command()
|
||||
def init_db():
|
||||
"""数据库初始化"""
|
||||
create_dept_data()
|
||||
create_admin_dict_data()
|
||||
create_admin_photo()
|
||||
create_admin_power()
|
||||
create_admin_role()
|
||||
create_admin_role_power()
|
||||
create_admin_user()
|
||||
create_admin_user_role()
|
||||
|
||||
@app.cli.command()
|
||||
def turn():
|
||||
from applications.extensions import db
|
||||
db.drop_all()
|
||||
db.create_all()
|
||||
@@ -1,6 +1,7 @@
|
||||
from flask import Flask
|
||||
from flask_sqlalchemy import SQLAlchemy
|
||||
from flask_marshmallow import Marshmallow
|
||||
from flask_migrate import Migrate
|
||||
from marshmallow import fields
|
||||
from marshmallow.validate import (
|
||||
URL, Email, Range, Length, Equal, Regexp,
|
||||
@@ -47,8 +48,10 @@ fields.Boolean.default_error_messages = {
|
||||
|
||||
db = SQLAlchemy()
|
||||
ma = Marshmallow()
|
||||
migrate = Migrate()
|
||||
|
||||
|
||||
def init_databases(app: Flask):
|
||||
db.init_app(app)
|
||||
ma.init_app(app)
|
||||
migrate.init_app(app, db)
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
from .admin_dept import Dept, DeptSchema
|
||||
from .admin_dict import DictType, DictData, DictTypeSchema, DictDataSchema
|
||||
from .admin_log import AdminLog, LogSchema
|
||||
from .admin_photo import Photo, PhotoSchema
|
||||
from .admin_power import Power, PowerSchema, PowerSchema2
|
||||
from .admin_role import Role, RoleSchema
|
||||
from .admin_role_power import role_power
|
||||
from .admin_user import User, UserSchema
|
||||
from .admin_user_role import user_role
|
||||
from .dept import Dept, DeptSchema
|
||||
from .dict_models import DictType, DictData, DictTypeSchema, DictDataSchema
|
||||
from .log import AdminLog, LogSchema
|
||||
from applications.models.file.photo import Photo, PhotoSchema
|
||||
from applications.models.rights.power import Power, PowerSchema, PowerSchema2
|
||||
from applications.models.rights.role import Role, RoleSchema
|
||||
from applications.models.rights.role_power import role_power
|
||||
from applications.models.users.employee import User, UserSchema
|
||||
from applications.models.rights.user_role import user_role
|
||||
|
||||
@@ -11,13 +11,15 @@ class Power(db.Model):
|
||||
code = db.Column(db.String(30), comment='权限标识')
|
||||
url = db.Column(db.String(255), comment='权限路径')
|
||||
open_type = db.Column(db.String(10), comment='打开方式')
|
||||
parent_id = db.Column(db.Integer, comment='父类编号')
|
||||
parent_id = db.Column(db.Integer, db.ForeignKey("admin_power.id"), comment='父类编号')
|
||||
icon = db.Column(db.String(128), comment='图标')
|
||||
sort = db.Column(db.Integer, comment='排序')
|
||||
create_time = db.Column(db.DateTime, default=datetime.datetime.now, comment='创建时间')
|
||||
update_time = db.Column(db.DateTime, default=datetime.datetime.now, onupdate=datetime.datetime.now, comment='更新时间')
|
||||
enable = db.Column(db.Integer, comment='是否开启')
|
||||
|
||||
parent = db.relationship("Power", remote_side=[id]) # 自关联
|
||||
|
||||
|
||||
# 权限models序列化类
|
||||
class PowerSchema(ma.Schema):
|
||||
@@ -33,7 +33,7 @@
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">邮箱</label>
|
||||
<div class="layui-input-block">
|
||||
<div class="layui-input-block">x`
|
||||
<input type="text" value="{{ dept.email }}" name="email" lay-verify="title" autocomplete="off"
|
||||
placeholder="请输入标题"
|
||||
class="layui-input">
|
||||
|
||||
@@ -58,6 +58,7 @@
|
||||
<div id="sideMenu"></div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 内容主题 -->
|
||||
<div class="layui-body">
|
||||
<div id="content"></div>
|
||||
</div>
|
||||
|
||||
@@ -93,7 +93,7 @@
|
||||
|
||||
dtree.renderSelect({
|
||||
elem: '#selectParent',
|
||||
url: '/admin/power/selectParent',
|
||||
url: '{{ url_for('rights.select_parent') }}',
|
||||
method: 'get',
|
||||
selectInputName: { nodeId: 'parentId', context: 'powerName' },
|
||||
skin: 'layui',
|
||||
@@ -126,7 +126,7 @@
|
||||
form.on('submit(power-save)', function (data) {
|
||||
data.field.icon = 'layui-icon ' + data.field.icon
|
||||
$.ajax({
|
||||
url: '/admin/power/save',
|
||||
url: '{{ url_for('rights.save') }}',
|
||||
data: JSON.stringify(data.field),
|
||||
dataType: 'json',
|
||||
contentType: 'application/json',
|
||||
|
||||
@@ -105,7 +105,7 @@
|
||||
|
||||
dtree.renderSelect({
|
||||
elem: '#selectParent',
|
||||
url: '/admin/power/selectParent',
|
||||
url: '{{ url_for('rights.select_parent')}}',
|
||||
method: 'get',
|
||||
selectInputName: { nodeId: 'parentId', context: 'powerName' },
|
||||
skin: 'layui',
|
||||
@@ -138,7 +138,7 @@
|
||||
form.on('submit(power-save)', function (data) {
|
||||
data.field.icon = 'layui-icon ' + data.field.icon
|
||||
$.ajax({
|
||||
url: '/admin/power/update',
|
||||
url: '{{ url_for('rights.update') }}',
|
||||
data: JSON.stringify(data.field),
|
||||
dataType: 'json',
|
||||
contentType: 'application/json',
|
||||
@@ -191,7 +191,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
window.init("{{ power.type}}")
|
||||
window.init("{{ power.type }}")
|
||||
})
|
||||
</script>
|
||||
<script>
|
||||
|
||||
@@ -92,7 +92,7 @@
|
||||
let treetable = layui.treetable
|
||||
let popup = layui.popup
|
||||
|
||||
let MODULE_PATH = '/admin/power/'
|
||||
let MODULE_PATH = '/rights/'
|
||||
|
||||
window.render = function () {
|
||||
treetable.render({
|
||||
@@ -105,7 +105,7 @@
|
||||
treeDefaultClose: true,
|
||||
toolbar: '#power-toolbar',
|
||||
elem: '#power-table',
|
||||
url: '/admin/power/data',
|
||||
url: '{{ url_for('rights.data') }}',
|
||||
page: false,
|
||||
cols: [
|
||||
[
|
||||
@@ -180,7 +180,7 @@
|
||||
}
|
||||
let loading = layer.load()
|
||||
$.ajax({
|
||||
url: '/admin/power/' + operate,
|
||||
url: MODULE_PATH + operate,
|
||||
data: JSON.stringify({ powerId: this.value }),
|
||||
dataType: 'json',
|
||||
contentType: 'application/json',
|
||||
|
||||
@@ -4,7 +4,6 @@ from applications.view.admin.admin_log import admin_log
|
||||
from applications.view.admin.dict import admin_dict
|
||||
from applications.view.admin.index import admin_bp
|
||||
from applications.view.admin.file import admin_file
|
||||
from applications.view.admin.power import admin_power
|
||||
from applications.view.admin.role import admin_role
|
||||
from applications.view.admin.user import admin_user
|
||||
from applications.view.admin.monitor import admin_monitor_bp
|
||||
@@ -16,6 +15,5 @@ def register_admin_views(app: Flask):
|
||||
app.register_blueprint(admin_file)
|
||||
app.register_blueprint(admin_monitor_bp)
|
||||
app.register_blueprint(admin_log)
|
||||
app.register_blueprint(admin_power)
|
||||
app.register_blueprint(admin_role)
|
||||
app.register_blueprint(admin_dict)
|
||||
|
||||
@@ -3,6 +3,7 @@ from flask import Blueprint, Flask
|
||||
rights_bp = Blueprint('rights', __name__, url_prefix='/rights')
|
||||
|
||||
from . import routes
|
||||
from . import view
|
||||
|
||||
|
||||
def register_rights_view(app: Flask):
|
||||
|
||||
@@ -1,37 +1,37 @@
|
||||
from flask import Blueprint, render_template, request, jsonify
|
||||
from applications.common.admin import power_curd
|
||||
from applications.common.utils.http import success_api, fail_api
|
||||
from applications.common.utils.rights import authorize
|
||||
from flask import render_template, request, jsonify
|
||||
|
||||
admin_power = Blueprint('adminPower', __name__, url_prefix='/admin/power')
|
||||
from . import rights_bp
|
||||
from ...common.admin import rights_curd
|
||||
from ...common.utils.http import success_api, fail_api
|
||||
from ...common.utils.rights import authorize
|
||||
|
||||
|
||||
@admin_power.get('/')
|
||||
@rights_bp.get('/')
|
||||
@authorize("admin:power:main", log=True)
|
||||
def index():
|
||||
return render_template('admin/power/main.html')
|
||||
|
||||
|
||||
@admin_power.get('/data')
|
||||
@rights_bp.get('/data')
|
||||
@authorize("admin:power:main", log=True)
|
||||
def data():
|
||||
power_data = power_curd.get_power_dict()
|
||||
power_data = rights_curd.get_power_dict()
|
||||
res = {
|
||||
"data": power_data
|
||||
}
|
||||
return jsonify(res)
|
||||
|
||||
|
||||
@admin_power.get('/add')
|
||||
@rights_bp.get('/add')
|
||||
@authorize("admin:power:add", log=True)
|
||||
def add():
|
||||
return render_template('admin/power/add.html')
|
||||
|
||||
|
||||
@admin_power.get('/selectParent')
|
||||
@rights_bp.get('/selectParent')
|
||||
@authorize("admin:power:main", log=True)
|
||||
def select_parent():
|
||||
power_data = power_curd.select_parent()
|
||||
power_data = rights_curd.select_parent()
|
||||
res = {
|
||||
"status": {"code": 200, "message": "默认"},
|
||||
"data": power_data
|
||||
@@ -41,19 +41,19 @@ def select_parent():
|
||||
|
||||
|
||||
# 增加
|
||||
@admin_power.post('/save')
|
||||
@rights_bp.post('/save')
|
||||
@authorize("admin:power:add", log=True)
|
||||
def save():
|
||||
req = request.json
|
||||
power_curd.save_power(req)
|
||||
rights_curd.save_power(req)
|
||||
return success_api(msg="成功")
|
||||
|
||||
|
||||
# 权限编辑
|
||||
@admin_power.get('/edit/<int:_id>')
|
||||
@rights_bp.get('/edit/<int:_id>')
|
||||
@authorize("admin:power:edit", log=True)
|
||||
def edit(_id):
|
||||
power = power_curd.get_power_by_id(_id)
|
||||
power = rights_curd.get_power_by_id(_id)
|
||||
icon = str(power.icon).split()
|
||||
if len(icon) == 2:
|
||||
icon = icon[1]
|
||||
@@ -63,22 +63,22 @@ def edit(_id):
|
||||
|
||||
|
||||
# 权限更新
|
||||
@admin_power.put('/update')
|
||||
@rights_bp.put('/update')
|
||||
@authorize("admin:power:edit", log=True)
|
||||
def update():
|
||||
res = power_curd.update_power(request.json)
|
||||
res = rights_curd.update_power(request.json)
|
||||
if not res:
|
||||
return fail_api(msg="更新权限失败")
|
||||
return success_api(msg="更新权限成功")
|
||||
|
||||
|
||||
# 启用权限
|
||||
@admin_power.put('/enable')
|
||||
@rights_bp.put('/enable')
|
||||
@authorize("admin:power:edit", log=True)
|
||||
def enable():
|
||||
_id = request.json.get('powerId')
|
||||
if id:
|
||||
res = power_curd.enable_status(_id)
|
||||
res = rights_curd.enable_status(_id)
|
||||
if not res:
|
||||
return fail_api(msg="出错啦")
|
||||
return success_api(msg="启用成功")
|
||||
@@ -86,12 +86,12 @@ def enable():
|
||||
|
||||
|
||||
# 禁用权限
|
||||
@admin_power.put('/disable')
|
||||
@rights_bp.put('/disable')
|
||||
@authorize("admin:power:edit", log=True)
|
||||
def dis_enable():
|
||||
_id = request.json.get('powerId')
|
||||
if id:
|
||||
res = power_curd.disable_status(_id)
|
||||
res = rights_curd.disable_status(_id)
|
||||
if not res:
|
||||
return fail_api(msg="出错啦")
|
||||
return success_api(msg="禁用成功")
|
||||
@@ -99,10 +99,10 @@ def dis_enable():
|
||||
|
||||
|
||||
# 权限删除
|
||||
@admin_power.delete('/remove/<int:_id>')
|
||||
@rights_bp.delete('/remove/<int:_id>')
|
||||
@authorize("admin:power:remove", log=True)
|
||||
def remove(_id):
|
||||
r = power_curd.remove_power(_id)
|
||||
r = rights_curd.remove_power(_id)
|
||||
if r:
|
||||
return success_api(msg="删除成功")
|
||||
else:
|
||||
@@ -110,9 +110,9 @@ def remove(_id):
|
||||
|
||||
|
||||
# 批量删除
|
||||
@admin_power.delete('/batchRemove')
|
||||
@rights_bp.delete('/batchRemove')
|
||||
@authorize("admin:power:remove", log=True)
|
||||
def batch_remove():
|
||||
ids = request.form.getlist('ids[]')
|
||||
power_curd.batch_remove(ids)
|
||||
rights_curd.batch_remove(ids)
|
||||
return success_api(msg="批量删除成功")
|
||||
@@ -11,7 +11,7 @@
|
||||
|
||||
# Logging configuration
|
||||
[loggers]
|
||||
keys = root,sqlalchemy,alembic
|
||||
keys = root,sqlalchemy,alembic,flask_migrate
|
||||
|
||||
[handlers]
|
||||
keys = console
|
||||
@@ -34,6 +34,11 @@ level = INFO
|
||||
handlers =
|
||||
qualname = alembic
|
||||
|
||||
[logger_flask_migrate]
|
||||
level = INFO
|
||||
handlers =
|
||||
qualname = flask_migrate
|
||||
|
||||
[handler_console]
|
||||
class = StreamHandler
|
||||
args = (sys.stderr,)
|
||||
|
||||
+6
-11
@@ -3,8 +3,6 @@ from __future__ import with_statement
|
||||
import logging
|
||||
from logging.config import fileConfig
|
||||
|
||||
from sqlalchemy import engine_from_config
|
||||
from sqlalchemy import pool
|
||||
from flask import current_app
|
||||
|
||||
from alembic import context
|
||||
@@ -13,7 +11,7 @@ from alembic import context
|
||||
# access to the values within the .ini file in use.
|
||||
config = context.config
|
||||
|
||||
# Interpret the configs file for Python logging.
|
||||
# Interpret the config file for Python logging.
|
||||
# This line sets up loggers basically.
|
||||
fileConfig(config.config_file_name)
|
||||
logger = logging.getLogger('alembic.env')
|
||||
@@ -24,12 +22,13 @@ logger = logging.getLogger('alembic.env')
|
||||
# target_metadata = mymodel.Base.metadata
|
||||
config.set_main_option(
|
||||
'sqlalchemy.url',
|
||||
str(current_app.extensions['migrate'].db.engine.url).replace('%', '%%'))
|
||||
str(current_app.extensions['migrate'].db.get_engine().url).replace(
|
||||
'%', '%%'))
|
||||
target_metadata = current_app.extensions['migrate'].db.metadata
|
||||
|
||||
# other values from the configs, defined by the needs of env.py,
|
||||
# other values from the config, defined by the needs of env.py,
|
||||
# can be acquired:
|
||||
# my_important_option = configs.get_main_option("my_important_option")
|
||||
# my_important_option = config.get_main_option("my_important_option")
|
||||
# ... etc.
|
||||
|
||||
|
||||
@@ -72,11 +71,7 @@ def run_migrations_online():
|
||||
directives[:] = []
|
||||
logger.info('No changes in schema detected.')
|
||||
|
||||
connectable = engine_from_config(
|
||||
config.get_section(config.config_ini_section),
|
||||
prefix='sqlalchemy.',
|
||||
poolclass=pool.NullPool,
|
||||
)
|
||||
connectable = current_app.extensions['migrate'].db.get_engine()
|
||||
|
||||
with connectable.connect() as connection:
|
||||
context.configure(
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
"""changge
|
||||
|
||||
Revision ID: 0893a714a376
|
||||
Revises: 296c80a9d6e8
|
||||
Create Date: 2021-06-14 01:21:16.185099
|
||||
|
||||
"""
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
|
||||
|
||||
# revision identifiers, used by Alembic.
|
||||
revision = '0893a714a376'
|
||||
down_revision = '296c80a9d6e8'
|
||||
branch_labels = None
|
||||
depends_on = None
|
||||
|
||||
|
||||
def upgrade():
|
||||
# ### commands auto generated by Alembic - please adjust! ###
|
||||
op.create_foreign_key(None, 'admin_power', 'admin_power', ['parent_id'], ['id'])
|
||||
op.create_foreign_key(None, 'admin_role_power', 'admin_role', ['role_id'], ['id'])
|
||||
op.create_foreign_key(None, 'admin_role_power', 'admin_power', ['power_id'], ['id'])
|
||||
op.create_foreign_key(None, 'admin_user_role', 'admin_role', ['role_id'], ['id'])
|
||||
op.create_foreign_key(None, 'admin_user_role', 'admin_user', ['user_id'], ['id'])
|
||||
# ### end Alembic commands ###
|
||||
|
||||
|
||||
def downgrade():
|
||||
# ### commands auto generated by Alembic - please adjust! ###
|
||||
op.drop_constraint(None, 'admin_user_role', type_='foreignkey')
|
||||
op.drop_constraint(None, 'admin_user_role', type_='foreignkey')
|
||||
op.drop_constraint(None, 'admin_role_power', type_='foreignkey')
|
||||
op.drop_constraint(None, 'admin_role_power', type_='foreignkey')
|
||||
op.drop_constraint(None, 'admin_power', type_='foreignkey')
|
||||
# ### end Alembic commands ###
|
||||
@@ -1,8 +1,8 @@
|
||||
"""empty message
|
||||
"""init
|
||||
|
||||
Revision ID: ec21e19825ff
|
||||
Revision ID: 296c80a9d6e8
|
||||
Revises:
|
||||
Create Date: 2021-04-27 11:54:00.453274
|
||||
Create Date: 2021-06-14 00:44:22.947817
|
||||
|
||||
"""
|
||||
from alembic import op
|
||||
@@ -10,7 +10,7 @@ import sqlalchemy as sa
|
||||
|
||||
|
||||
# revision identifiers, used by Alembic.
|
||||
revision = 'ec21e19825ff'
|
||||
revision = '296c80a9d6e8'
|
||||
down_revision = None
|
||||
branch_labels = None
|
||||
depends_on = None
|
||||
@@ -30,6 +30,21 @@ def upgrade():
|
||||
sa.Column('create_time', sa.DateTime(), nullable=True),
|
||||
sa.PrimaryKeyConstraint('id')
|
||||
)
|
||||
op.create_table('admin_dept',
|
||||
sa.Column('id', sa.Integer(), nullable=False, comment='部门ID'),
|
||||
sa.Column('parent_id', sa.Integer(), nullable=True, comment='父级编号'),
|
||||
sa.Column('dept_name', sa.String(length=50), nullable=True, comment='部门名称'),
|
||||
sa.Column('sort', sa.Integer(), nullable=True, comment='排序'),
|
||||
sa.Column('leader', sa.String(length=50), nullable=True, comment='负责人'),
|
||||
sa.Column('phone', sa.String(length=20), nullable=True, comment='联系方式'),
|
||||
sa.Column('email', sa.String(length=50), nullable=True, comment='邮箱'),
|
||||
sa.Column('status', sa.Integer(), nullable=True, comment='状态(1开启,0关闭)'),
|
||||
sa.Column('remark', sa.Text(), nullable=True, comment='备注'),
|
||||
sa.Column('address', sa.String(length=255), nullable=True, comment='详细地址'),
|
||||
sa.Column('create_at', sa.DateTime(), nullable=True, comment='创建时间'),
|
||||
sa.Column('update_at', sa.DateTime(), nullable=True, comment='创建时间'),
|
||||
sa.PrimaryKeyConstraint('id')
|
||||
)
|
||||
op.create_table('admin_dict_data',
|
||||
sa.Column('id', sa.Integer(), nullable=False),
|
||||
sa.Column('data_label', sa.String(length=255), nullable=True, comment='字典类型名称'),
|
||||
@@ -64,16 +79,17 @@ def upgrade():
|
||||
op.create_table('admin_power',
|
||||
sa.Column('id', sa.Integer(), nullable=False, comment='权限编号'),
|
||||
sa.Column('name', sa.String(length=255), nullable=True, comment='权限名称'),
|
||||
sa.Column('type', sa.String(length=1), nullable=True, comment='权限类型'),
|
||||
sa.Column('type', sa.SmallInteger(), nullable=True, comment='权限类型'),
|
||||
sa.Column('code', sa.String(length=30), nullable=True, comment='权限标识'),
|
||||
sa.Column('url', sa.String(length=255), nullable=True, comment='权限路径'),
|
||||
sa.Column('open_type', sa.String(length=10), nullable=True, comment='打开方式'),
|
||||
sa.Column('parent_id', sa.Integer(), nullable=True, comment='父类编号'),
|
||||
sa.Column('icon', sa.String(length=128), nullable=True, comment='图标'),
|
||||
sa.Column('sort', sa.Integer(), nullable=True, comment='排序'),
|
||||
sa.Column('create_time', sa.DateTime(), nullable=True, comment='创建时间'),
|
||||
sa.Column('update_time', sa.DateTime(), nullable=True, comment='更新时间'),
|
||||
sa.Column('enable', sa.Integer(), nullable=True, comment='是否开启'),
|
||||
sa.Column('parent_id', sa.Integer(), nullable=True, comment='父类编号'),
|
||||
sa.ForeignKeyConstraint(['parent_id'], ['admin_power.id'], ),
|
||||
sa.PrimaryKeyConstraint('id')
|
||||
)
|
||||
op.create_table('admin_role',
|
||||
@@ -96,6 +112,7 @@ def upgrade():
|
||||
sa.Column('remark', sa.String(length=255), nullable=True, comment='备注'),
|
||||
sa.Column('password_hash', sa.String(length=128), nullable=True, comment='哈希密码'),
|
||||
sa.Column('enable', sa.Integer(), nullable=True, comment='启用'),
|
||||
sa.Column('dept_id', sa.Integer(), nullable=True, comment='部门id'),
|
||||
sa.Column('create_at', sa.DateTime(), nullable=True, comment='创建时间'),
|
||||
sa.Column('update_at', sa.DateTime(), nullable=True, comment='创建时间'),
|
||||
sa.PrimaryKeyConstraint('id')
|
||||
@@ -129,5 +146,6 @@ def downgrade():
|
||||
op.drop_table('admin_photo')
|
||||
op.drop_table('admin_dict_type')
|
||||
op.drop_table('admin_dict_data')
|
||||
op.drop_table('admin_dept')
|
||||
op.drop_table('admin_admin_log')
|
||||
# ### end Alembic commands ###
|
||||
@@ -1,28 +0,0 @@
|
||||
"""empty message
|
||||
|
||||
Revision ID: 7634e028e338
|
||||
Revises: 8b664608a7c7
|
||||
Create Date: 2021-06-01 16:43:50.853692
|
||||
|
||||
"""
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
|
||||
|
||||
# revision identifiers, used by Alembic.
|
||||
revision = '7634e028e338'
|
||||
down_revision = '8b664608a7c7'
|
||||
branch_labels = None
|
||||
depends_on = None
|
||||
|
||||
|
||||
def upgrade():
|
||||
# ### commands auto generated by Alembic - please adjust! ###
|
||||
op.add_column('admin_user', sa.Column('dept_id', sa.Integer(), nullable=True, comment='部门id'))
|
||||
# ### end Alembic commands ###
|
||||
|
||||
|
||||
def downgrade():
|
||||
# ### commands auto generated by Alembic - please adjust! ###
|
||||
op.drop_column('admin_user', 'dept_id')
|
||||
# ### end Alembic commands ###
|
||||
@@ -1,42 +0,0 @@
|
||||
"""empty message
|
||||
|
||||
Revision ID: 8b664608a7c7
|
||||
Revises: ec21e19825ff
|
||||
Create Date: 2021-06-01 14:37:20.327189
|
||||
|
||||
"""
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
|
||||
|
||||
# revision identifiers, used by Alembic.
|
||||
revision = '8b664608a7c7'
|
||||
down_revision = 'ec21e19825ff'
|
||||
branch_labels = None
|
||||
depends_on = None
|
||||
|
||||
|
||||
def upgrade():
|
||||
# ### commands auto generated by Alembic - please adjust! ###
|
||||
op.create_table('admin_dept',
|
||||
sa.Column('id', sa.Integer(), nullable=False, comment='部门ID'),
|
||||
sa.Column('parent_id', sa.Integer(), nullable=True, comment='父级编号'),
|
||||
sa.Column('dept_name', sa.String(length=50), nullable=True, comment='部门名称'),
|
||||
sa.Column('sort', sa.Integer(), nullable=True, comment='排序'),
|
||||
sa.Column('leader', sa.String(length=50), nullable=True, comment='负责人'),
|
||||
sa.Column('phone', sa.String(length=20), nullable=True, comment='联系方式'),
|
||||
sa.Column('email', sa.String(length=50), nullable=True, comment='邮箱'),
|
||||
sa.Column('status', sa.Integer(), nullable=True, comment='状态(1开启,0关闭)'),
|
||||
sa.Column('remark', sa.Text(), nullable=True, comment='备注'),
|
||||
sa.Column('address', sa.String(length=255), nullable=True, comment='详细地址'),
|
||||
sa.Column('create_at', sa.DateTime(), nullable=True, comment='创建时间'),
|
||||
sa.Column('update_at', sa.DateTime(), nullable=True, comment='创建时间'),
|
||||
sa.PrimaryKeyConstraint('id')
|
||||
)
|
||||
# ### end Alembic commands ###
|
||||
|
||||
|
||||
def downgrade():
|
||||
# ### commands auto generated by Alembic - please adjust! ###
|
||||
op.drop_table('admin_dept')
|
||||
# ### end Alembic commands ###
|
||||
@@ -1,69 +0,0 @@
|
||||
import sys
|
||||
from dotenv import dotenv_values
|
||||
|
||||
sys.path.append('../')
|
||||
import sqlparse
|
||||
import pymysql
|
||||
|
||||
config = dotenv_values('.env')
|
||||
|
||||
# MySql配置信息
|
||||
HOST = config.get('MYSQL_PASSWORD') or '127.0.0.1'
|
||||
PORT = config.get('MYSQL_PORT') or 3306
|
||||
DATABASE = config.get('MYSQL_DATABASE') or 'PearAdminFlask'
|
||||
USERNAME = config.get('MYSQL_USERNAME') or 'root'
|
||||
PASSWORD = config.get('MYSQL_PASSWORD') or '123456'
|
||||
|
||||
|
||||
def is_exist_database():
|
||||
db = pymysql.connect(host=HOST, port=int(PORT), user=USERNAME, password=PASSWORD, charset='utf8mb4')
|
||||
cursor1 = db.cursor()
|
||||
sql = "select * from information_schema.SCHEMATA WHERE SCHEMA_NAME = '%s' ; " % DATABASE
|
||||
res = cursor1.execute(sql)
|
||||
db.close()
|
||||
return res
|
||||
|
||||
|
||||
def init_database():
|
||||
db = pymysql.connect(host=HOST, port=int(PORT), user=USERNAME, password=PASSWORD, charset='utf8mb4')
|
||||
cursor1 = db.cursor()
|
||||
sql = "CREATE DATABASE IF NOT EXISTS %s" % DATABASE
|
||||
res = cursor1.execute(sql)
|
||||
db.close()
|
||||
return res
|
||||
|
||||
|
||||
def execute_fromfile(filename):
|
||||
db = pymysql.connect(host=HOST, port=int(PORT), user=USERNAME, password=PASSWORD, database=DATABASE,
|
||||
charset='utf8mb4')
|
||||
fd = open(filename, 'r', encoding='utf-8')
|
||||
cursor = db.cursor()
|
||||
sqlfile = fd.read()
|
||||
sqlfile = sqlparse.format(sqlfile, strip_comments=True).strip()
|
||||
|
||||
sqlcommamds = sqlfile.split(';')
|
||||
|
||||
for command in sqlcommamds:
|
||||
try:
|
||||
cursor.execute(command)
|
||||
db.commit()
|
||||
|
||||
except Exception as msg:
|
||||
|
||||
db.rollback()
|
||||
db.close()
|
||||
|
||||
|
||||
def init_db():
|
||||
if is_exist_database():
|
||||
print('数据库已经存在,为防止误初始化,请收动删除 %s 数据库' % str(DATABASE))
|
||||
return
|
||||
if init_database():
|
||||
print('数据库%s创建成功' % str(DATABASE))
|
||||
execute_fromfile('pear.sql')
|
||||
print('表创建成功')
|
||||
print('欢迎使用pear-admin-flask,请使用 flask run 命令启动程序')
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
init_db()
|
||||
-326
@@ -1,326 +0,0 @@
|
||||
/*
|
||||
Navicat Premium Data Transfer
|
||||
|
||||
Source Server : phpmystudy
|
||||
Source Server Type : MySQL
|
||||
Source Server Version : 50726
|
||||
Source Host : localhost:3306
|
||||
Source Schema : pearadminflask
|
||||
|
||||
Target Server Type : MySQL
|
||||
Target Server Version : 50726
|
||||
File Encoding : 65001
|
||||
|
||||
Date: 03/06/2021 11:23:03
|
||||
*/
|
||||
|
||||
SET NAMES utf8mb4;
|
||||
SET FOREIGN_KEY_CHECKS = 0;
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for admin_admin_log
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `admin_admin_log`;
|
||||
CREATE TABLE `admin_admin_log` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`method` varchar(10) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL,
|
||||
`uid` int(11) NULL DEFAULT NULL,
|
||||
`url` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL,
|
||||
`desc` text CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL,
|
||||
`ip` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL,
|
||||
`user_agent` text CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL,
|
||||
`create_time` datetime(0) NULL DEFAULT NULL,
|
||||
`success` int(11) NULL DEFAULT NULL,
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 641 CHARACTER SET = utf8 COLLATE = utf8_unicode_ci ROW_FORMAT = DYNAMIC;
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of admin_admin_log
|
||||
-- ----------------------------
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for admin_dept
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `admin_dept`;
|
||||
CREATE TABLE `admin_dept` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '部门ID',
|
||||
`parent_id` int(11) NULL DEFAULT NULL COMMENT '父级编号',
|
||||
`dept_name` varchar(50) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '部门名称',
|
||||
`sort` int(11) NULL DEFAULT NULL COMMENT '排序',
|
||||
`leader` varchar(50) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '负责人',
|
||||
`phone` varchar(20) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '联系方式',
|
||||
`email` varchar(50) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '邮箱',
|
||||
`status` int(11) NULL DEFAULT NULL COMMENT '状态(1开启,0关闭)',
|
||||
`remark` text CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL COMMENT '备注',
|
||||
`address` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '详细地址',
|
||||
`create_at` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
|
||||
`update_at` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 9 CHARACTER SET = utf8 COLLATE = utf8_unicode_ci ROW_FORMAT = Dynamic;
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of admin_dept
|
||||
-- ----------------------------
|
||||
INSERT INTO `admin_dept` VALUES (1, 0, '总公司', 1, '就眠仪式', '12312345679', '123qq.com', 1, NULL, '这是总公司', NULL, '2021-06-01 17:23:20');
|
||||
INSERT INTO `admin_dept` VALUES (4, 1, '济南分公司', 2, '就眠仪式', '12312345678', '1234qq.com', 1, NULL, '这是济南', '2021-06-01 17:24:33', '2021-06-01 17:25:19');
|
||||
INSERT INTO `admin_dept` VALUES (5, 1, '唐山分公司', 4, 'mkg', '12312345678', '123@qq.com', 1, NULL, '这是唐山', '2021-06-01 17:25:15', '2021-06-01 17:25:20');
|
||||
INSERT INTO `admin_dept` VALUES (7, 4, '济南分公司开发部', 5, '就眠仪式', '12312345678', '123@qq.com', 1, NULL, '测试', '2021-06-01 17:27:39', '2021-06-01 17:27:39');
|
||||
INSERT INTO `admin_dept` VALUES (8, 5, '唐山测试部', 6, 'mkg', '12312345678', '123@qq.com', 1, NULL, '测试部', '2021-06-01 17:28:27', '2021-06-01 17:28:27');
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for admin_dict_data
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `admin_dict_data`;
|
||||
CREATE TABLE `admin_dict_data` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`data_label` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '字典类型名称',
|
||||
`data_value` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '字典类型标识',
|
||||
`type_code` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '字典类型描述',
|
||||
`is_default` int(11) NULL DEFAULT NULL COMMENT '是否默认',
|
||||
`enable` int(11) NULL DEFAULT NULL COMMENT '是否开启',
|
||||
`remark` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '备注',
|
||||
`create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
|
||||
`update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 10 CHARACTER SET = utf8 COLLATE = utf8_unicode_ci ROW_FORMAT = DYNAMIC;
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of admin_dict_data
|
||||
-- ----------------------------
|
||||
INSERT INTO `admin_dict_data` VALUES (8, '男', 'boy', 'user_sex', NULL, 1, '男 : body', '2021-04-16 13:36:34', '2021-04-16 14:05:06');
|
||||
INSERT INTO `admin_dict_data` VALUES (9, '女', 'girl', 'user_sex', NULL, 1, '女 : girl', '2021-04-16 13:36:55', '2021-04-16 13:36:55');
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for admin_dict_type
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `admin_dict_type`;
|
||||
CREATE TABLE `admin_dict_type` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`type_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '字典类型名称',
|
||||
`type_code` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '字典类型标识',
|
||||
`description` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '字典类型描述',
|
||||
`enable` int(11) NULL DEFAULT NULL COMMENT '是否开启',
|
||||
`create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
|
||||
`update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8 COLLATE = utf8_unicode_ci ROW_FORMAT = DYNAMIC;
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of admin_dict_type
|
||||
-- ----------------------------
|
||||
INSERT INTO `admin_dict_type` VALUES (1, '用户性别', 'user_sex', '用户性别', 1, NULL, '2021-04-16 13:37:11');
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for admin_photo
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `admin_photo`;
|
||||
CREATE TABLE `admin_photo` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`name` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
|
||||
`href` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL,
|
||||
`mime` char(50) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
|
||||
`size` char(30) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
|
||||
`create_time` datetime(0) NULL DEFAULT NULL,
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 18 CHARACTER SET = utf8 COLLATE = utf8_unicode_ci ROW_FORMAT = DYNAMIC;
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of admin_photo
|
||||
-- ----------------------------
|
||||
INSERT INTO `admin_photo` VALUES (3, '6958819_pear-admin_1607443454_1.png', 'http://127.0.0.1:5000/_uploads/photos/6958819_pear-admin_1607443454_1.png', 'image/png', '2204', '2021-03-19 18:53:02');
|
||||
INSERT INTO `admin_photo` VALUES (17, '1617291580000.jpg', 'http://127.0.0.1:5000/_uploads/photos/1617291580000.jpg', 'image/png', '94211', '2021-04-01 23:39:41');
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for admin_power
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `admin_power`;
|
||||
CREATE TABLE `admin_power` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '权限编号',
|
||||
`name` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '权限名称',
|
||||
`type` varchar(1) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '权限类型',
|
||||
`code` varchar(30) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '权限标识',
|
||||
`url` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '权限路径',
|
||||
`open_type` varchar(10) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '打开方式',
|
||||
`parent_id` varchar(19) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '父类编号',
|
||||
`icon` varchar(128) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '图标',
|
||||
`sort` int(11) NULL DEFAULT NULL COMMENT '排序',
|
||||
`create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
|
||||
`update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间',
|
||||
`enable` int(11) NULL DEFAULT NULL COMMENT '是否开启',
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 52 CHARACTER SET = utf8 COLLATE = utf8_unicode_ci ROW_FORMAT = DYNAMIC;
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of admin_power
|
||||
-- ----------------------------
|
||||
INSERT INTO `admin_power` VALUES (1, '系统管理', '0', '', NULL, NULL, '0', 'layui-icon layui-icon-set-fill', 1, NULL, NULL, 1);
|
||||
INSERT INTO `admin_power` VALUES (3, '用户管理', '1', 'admin:user:main', '/admin/user/', '_iframe', '1', 'layui-icon layui-icon layui-icon layui-icon layui-icon-rate', 1, NULL, NULL, 1);
|
||||
INSERT INTO `admin_power` VALUES (4, '权限管理', '1', 'admin:power:main', '/admin/power/', '_iframe', '1', NULL, 2, NULL, NULL, 1);
|
||||
INSERT INTO `admin_power` VALUES (9, '角色管理', '1', 'admin:role:main', '/admin/role', '_iframe', '1', 'layui-icon layui-icon-username', 2, '2021-03-16 22:24:58', '2021-03-25 19:15:24', 1);
|
||||
INSERT INTO `admin_power` VALUES (12, '系统监控', '1', 'admin:monitor:main', '/admin/monitor', '_iframe', '1', 'layui-icon layui-icon-vercode', 5, '2021-03-18 22:05:19', '2021-03-25 19:15:27', 1);
|
||||
INSERT INTO `admin_power` VALUES (13, '日志管理', '1', 'admin:log:main', '/admin/log', '_iframe', '1', 'layui-icon layui-icon-read', 4, '2021-03-18 22:37:10', '2021-06-03 11:06:25', 1);
|
||||
INSERT INTO `admin_power` VALUES (17, '文件管理', '0', '', '', '', '0', 'layui-icon layui-icon-camera', 2, '2021-03-19 18:56:23', '2021-03-25 19:15:08', 1);
|
||||
INSERT INTO `admin_power` VALUES (18, '图片上传', '1', 'admin:file:main', '/admin/file', '_iframe', '17', 'layui-icon layui-icon-camera', 5, '2021-03-19 18:57:19', '2021-03-25 19:15:13', 1);
|
||||
INSERT INTO `admin_power` VALUES (21, '权限增加', '2', 'admin:power:add', '', '', '4', 'layui-icon layui-icon-add-circle', 1, '2021-03-22 19:43:52', '2021-03-25 19:15:22', 1);
|
||||
INSERT INTO `admin_power` VALUES (22, '用户增加', '2', 'admin:user:add', '', '', '3', 'layui-icon layui-icon-add-circle', 1, '2021-03-22 19:45:40', '2021-03-25 19:15:17', 1);
|
||||
INSERT INTO `admin_power` VALUES (23, '用户编辑', '2', 'admin:user:edit', '', '', '3', 'layui-icon layui-icon-rate', 2, '2021-03-22 19:46:15', '2021-03-25 19:15:18', 1);
|
||||
INSERT INTO `admin_power` VALUES (24, '用户删除', '2', 'admin:user:remove', '', '', '3', 'layui-icon None', 3, '2021-03-22 19:46:51', '2021-03-25 19:15:18', 1);
|
||||
INSERT INTO `admin_power` VALUES (25, '权限编辑', '2', 'admin:power:edit', '', '', '4', 'layui-icon layui-icon-edit', 2, '2021-03-22 19:47:36', '2021-03-25 19:15:22', 1);
|
||||
INSERT INTO `admin_power` VALUES (26, '用户删除', '2', 'admin:power:remove', '', '', '4', 'layui-icon layui-icon-delete', 3, '2021-03-22 19:48:17', '2021-03-25 19:15:23', 1);
|
||||
INSERT INTO `admin_power` VALUES (27, '用户增加', '2', 'admin:role:add', '', '', '9', 'layui-icon layui-icon-add-circle', 1, '2021-03-22 19:49:09', '2021-03-25 19:15:24', 1);
|
||||
INSERT INTO `admin_power` VALUES (28, '角色编辑', '2', 'admin:role:edit', '', '', '9', 'layui-icon layui-icon-edit', 2, '2021-03-22 19:49:41', '2021-03-25 19:15:25', 1);
|
||||
INSERT INTO `admin_power` VALUES (29, '角色删除', '2', 'admin:role:remove', '', '', '9', 'layui-icon layui-icon-delete', 3, '2021-03-22 19:50:15', '2021-03-25 19:15:26', 1);
|
||||
INSERT INTO `admin_power` VALUES (30, '角色授权', '2', 'admin:role:power', '', '', '9', 'layui-icon layui-icon-component', 4, '2021-03-22 19:50:54', '2021-03-25 19:15:26', 1);
|
||||
INSERT INTO `admin_power` VALUES (31, '图片增加', '2', 'admin:file:add', '', '', '18', 'layui-icon layui-icon-add-circle', 1, '2021-03-22 19:58:05', '2021-03-25 19:15:28', 1);
|
||||
INSERT INTO `admin_power` VALUES (32, '图片删除', '2', 'admin:file:delete', '', '', '18', 'layui-icon layui-icon-delete', 2, '2021-03-22 19:58:45', '2021-03-25 19:15:29', 1);
|
||||
INSERT INTO `admin_power` VALUES (44, '数据字典', '1', 'admin:dict:main', '/admin/dict', '_iframe', '1', 'layui-icon layui-icon-console', 6, '2021-04-16 13:59:49', '2021-04-16 13:59:49', 1);
|
||||
INSERT INTO `admin_power` VALUES (45, '字典增加', '2', 'admin:dict:add', '', '', '44', 'layui-icon ', 1, '2021-04-16 14:00:59', '2021-04-16 14:00:59', 1);
|
||||
INSERT INTO `admin_power` VALUES (46, '字典修改', '2', 'admin:dict:edit', '', '', '44', 'layui-icon ', 2, '2021-04-16 14:01:33', '2021-04-16 14:01:33', 1);
|
||||
INSERT INTO `admin_power` VALUES (47, '字典删除', '2', 'admin:dict:remove', '', '', '44', 'layui-icon ', 3, '2021-04-16 14:02:06', '2021-04-16 14:02:06', 1);
|
||||
INSERT INTO `admin_power` VALUES (48, '部门管理', '1', 'admin:dept:main', '/dept', '_iframe', '1', 'layui-icon layui-icon-group', 3, '2021-06-01 16:22:11', '2021-06-01 16:22:11', 1);
|
||||
INSERT INTO `admin_power` VALUES (49, '部门增加', '2', 'admin:dept:add', '', '', '48', 'layui-icon None', 1, '2021-06-01 17:35:52', '2021-06-01 17:36:15', 1);
|
||||
INSERT INTO `admin_power` VALUES (50, '部门编辑', '2', 'admin:dept:edit', '', '', '48', 'layui-icon ', 2, '2021-06-01 17:36:41', '2021-06-01 17:36:41', 1);
|
||||
INSERT INTO `admin_power` VALUES (51, '部门删除', '2', 'admin:dept:remove', '', '', '48', 'layui-icon None', 3, '2021-06-01 17:37:15', '2021-06-01 17:37:26', 1);
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for admin_role
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `admin_role`;
|
||||
CREATE TABLE `admin_role` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '角色ID',
|
||||
`name` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '角色名称',
|
||||
`code` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '角色标识',
|
||||
`remark` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '备注',
|
||||
`details` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '详情',
|
||||
`sort` int(11) NULL DEFAULT NULL COMMENT '排序',
|
||||
`create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
|
||||
`update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间',
|
||||
`enable` int(11) NULL DEFAULT NULL COMMENT '是否启用',
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8 COLLATE = utf8_unicode_ci ROW_FORMAT = DYNAMIC;
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of admin_role
|
||||
-- ----------------------------
|
||||
INSERT INTO `admin_role` VALUES (1, '管理员', 'admin', NULL, '管理员', 1, NULL, NULL, 1);
|
||||
INSERT INTO `admin_role` VALUES (2, '普通用户', 'common', NULL, '只有查看,没有增删改权限', 2, '2021-03-22 20:02:38', '2021-04-01 22:29:56', 1);
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for admin_role_power
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `admin_role_power`;
|
||||
CREATE TABLE `admin_role_power` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '标识',
|
||||
`power_id` int(11) NULL DEFAULT NULL COMMENT '用户编号',
|
||||
`role_id` int(11) NULL DEFAULT NULL COMMENT '角色编号',
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
INDEX `power_id`(`power_id`) USING BTREE,
|
||||
INDEX `role_id`(`role_id`) USING BTREE,
|
||||
CONSTRAINT `admin_role_power_ibfk_1` FOREIGN KEY (`power_id`) REFERENCES `admin_power` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT,
|
||||
CONSTRAINT `admin_role_power_ibfk_2` FOREIGN KEY (`role_id`) REFERENCES `admin_role` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 275 CHARACTER SET = utf8 COLLATE = utf8_unicode_ci ROW_FORMAT = DYNAMIC;
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of admin_role_power
|
||||
-- ----------------------------
|
||||
INSERT INTO `admin_role_power` VALUES (237, 1, 1);
|
||||
INSERT INTO `admin_role_power` VALUES (238, 3, 1);
|
||||
INSERT INTO `admin_role_power` VALUES (239, 4, 1);
|
||||
INSERT INTO `admin_role_power` VALUES (240, 9, 1);
|
||||
INSERT INTO `admin_role_power` VALUES (241, 12, 1);
|
||||
INSERT INTO `admin_role_power` VALUES (242, 13, 1);
|
||||
INSERT INTO `admin_role_power` VALUES (243, 17, 1);
|
||||
INSERT INTO `admin_role_power` VALUES (244, 18, 1);
|
||||
INSERT INTO `admin_role_power` VALUES (245, 21, 1);
|
||||
INSERT INTO `admin_role_power` VALUES (246, 22, 1);
|
||||
INSERT INTO `admin_role_power` VALUES (247, 23, 1);
|
||||
INSERT INTO `admin_role_power` VALUES (248, 24, 1);
|
||||
INSERT INTO `admin_role_power` VALUES (249, 25, 1);
|
||||
INSERT INTO `admin_role_power` VALUES (250, 26, 1);
|
||||
INSERT INTO `admin_role_power` VALUES (251, 27, 1);
|
||||
INSERT INTO `admin_role_power` VALUES (252, 28, 1);
|
||||
INSERT INTO `admin_role_power` VALUES (253, 29, 1);
|
||||
INSERT INTO `admin_role_power` VALUES (254, 30, 1);
|
||||
INSERT INTO `admin_role_power` VALUES (255, 31, 1);
|
||||
INSERT INTO `admin_role_power` VALUES (256, 32, 1);
|
||||
INSERT INTO `admin_role_power` VALUES (257, 44, 1);
|
||||
INSERT INTO `admin_role_power` VALUES (258, 45, 1);
|
||||
INSERT INTO `admin_role_power` VALUES (259, 46, 1);
|
||||
INSERT INTO `admin_role_power` VALUES (260, 47, 1);
|
||||
INSERT INTO `admin_role_power` VALUES (261, 48, 1);
|
||||
INSERT INTO `admin_role_power` VALUES (262, 49, 1);
|
||||
INSERT INTO `admin_role_power` VALUES (263, 50, 1);
|
||||
INSERT INTO `admin_role_power` VALUES (264, 51, 1);
|
||||
INSERT INTO `admin_role_power` VALUES (265, 1, 2);
|
||||
INSERT INTO `admin_role_power` VALUES (266, 3, 2);
|
||||
INSERT INTO `admin_role_power` VALUES (267, 4, 2);
|
||||
INSERT INTO `admin_role_power` VALUES (268, 9, 2);
|
||||
INSERT INTO `admin_role_power` VALUES (269, 12, 2);
|
||||
INSERT INTO `admin_role_power` VALUES (270, 13, 2);
|
||||
INSERT INTO `admin_role_power` VALUES (271, 17, 2);
|
||||
INSERT INTO `admin_role_power` VALUES (272, 18, 2);
|
||||
INSERT INTO `admin_role_power` VALUES (273, 44, 2);
|
||||
INSERT INTO `admin_role_power` VALUES (274, 48, 2);
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for admin_user
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `admin_user`;
|
||||
CREATE TABLE `admin_user` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户ID',
|
||||
`username` varchar(20) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '用户名',
|
||||
`password_hash` varchar(128) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '哈希密码',
|
||||
`create_at` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
|
||||
`update_at` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
|
||||
`enable` int(11) NULL DEFAULT NULL COMMENT '启用',
|
||||
`realname` varchar(20) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '真实名字',
|
||||
`remark` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '备注',
|
||||
`avatar` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '头像',
|
||||
`dept_id` int(11) NULL DEFAULT NULL COMMENT '部门id',
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 9 CHARACTER SET = utf8 COLLATE = utf8_unicode_ci ROW_FORMAT = DYNAMIC;
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of admin_user
|
||||
-- ----------------------------
|
||||
INSERT INTO `admin_user` VALUES (1, 'admin', 'pbkdf2:sha256:150000$raM7mDSr$58fe069c3eac01531fc8af85e6fc200655dd2588090530084d182e6ec9d52c85', NULL, '2021-06-01 17:28:55', 1, '超级管理', '要是不能把握时机,就要终身蹭蹬,一事无成!', 'http://127.0.0.1:5000/_uploads/photos/1617291580000.jpg', 1);
|
||||
INSERT INTO `admin_user` VALUES (7, 'test', 'pbkdf2:sha256:150000$cRS8bYNh$adb57e64d929863cf159f924f74d0634f1fecc46dba749f1bfaca03da6d2e3ac', '2021-03-22 20:03:42', '2021-06-01 17:29:47', 1, '超级管理', '要是不能把握时机,就要终身蹭蹬,一事无成', '/static/admin/admin/images/avatar.jpg', 1);
|
||||
INSERT INTO `admin_user` VALUES (8, 'wind', 'pbkdf2:sha256:150000$skME1obT$6a2c20cd29f89d7d2f21d9e373a7e3445f70ebce3ef1c3a555e42a7d17170b37', '2021-06-01 17:30:39', '2021-06-01 17:30:52', 1, '风', NULL, '/static/admin/admin/images/avatar.jpg', 7);
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for admin_user_role
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `admin_user_role`;
|
||||
CREATE TABLE `admin_user_role` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '标识',
|
||||
`user_id` int(11) NULL DEFAULT NULL COMMENT '用户编号',
|
||||
`role_id` int(11) NULL DEFAULT NULL COMMENT '角色编号',
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
INDEX `role_id`(`role_id`) USING BTREE,
|
||||
INDEX `user_id`(`user_id`) USING BTREE,
|
||||
CONSTRAINT `admin_user_role_ibfk_1` FOREIGN KEY (`role_id`) REFERENCES `admin_role` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT,
|
||||
CONSTRAINT `admin_user_role_ibfk_2` FOREIGN KEY (`user_id`) REFERENCES `admin_user` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 25 CHARACTER SET = utf8 COLLATE = utf8_unicode_ci ROW_FORMAT = DYNAMIC;
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of admin_user_role
|
||||
-- ----------------------------
|
||||
INSERT INTO `admin_user_role` VALUES (21, 1, 1);
|
||||
INSERT INTO `admin_user_role` VALUES (22, 7, 2);
|
||||
INSERT INTO `admin_user_role` VALUES (24, 8, 2);
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for alembic_version
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `alembic_version`;
|
||||
CREATE TABLE `alembic_version` (
|
||||
`version_num` varchar(32) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
|
||||
PRIMARY KEY (`version_num`) USING BTREE
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_unicode_ci ROW_FORMAT = DYNAMIC;
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of alembic_version
|
||||
-- ----------------------------
|
||||
INSERT INTO `alembic_version` VALUES ('7634e028e338');
|
||||
|
||||
SET FOREIGN_KEY_CHECKS = 1;
|
||||
Reference in New Issue
Block a user