Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
E
evm-store
Project overview
Project overview
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wanli
evm-store
Commits
ca07dd6a
Commit
ca07dd6a
authored
Sep 11, 2021
by
wanli
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
✨
feat: 更新菜单模块
parent
1f538659
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
38 additions
and
17 deletions
+38
-17
tools/build_out/application/app.py
tools/build_out/application/app.py
+2
-2
tools/build_out/controllers/menu.py
tools/build_out/controllers/menu.py
+6
-5
tools/build_out/models/menu.py
tools/build_out/models/menu.py
+17
-8
tools/build_out/views/menu.py
tools/build_out/views/menu.py
+13
-2
No files found.
tools/build_out/application/app.py
View file @
ca07dd6a
...
@@ -7,7 +7,6 @@ from flask_jwt_extended import ( JWTManager )
...
@@ -7,7 +7,6 @@ from flask_jwt_extended import ( JWTManager )
from
flask_sqlalchemy
import
SQLAlchemy
from
flask_sqlalchemy
import
SQLAlchemy
from
flask_marshmallow
import
Marshmallow
from
flask_marshmallow
import
Marshmallow
from
hashids
import
Hashids
from
hashids
import
Hashids
from
webcreator.response
import
ResponseCode
,
response_result
from
webcreator.log
import
logger
from
webcreator.log
import
logger
from
.config
import
config
from
.config
import
config
...
@@ -39,7 +38,8 @@ def expired_token_callback(jwt_header, jwt_payload):
...
@@ -39,7 +38,8 @@ def expired_token_callback(jwt_header, jwt_payload):
# 无效令牌
# 无效令牌
@
jwt
.
invalid_token_loader
@
jwt
.
invalid_token_loader
def
invalid_token_callback
(
error
):
# we have to keep the argument here, since it's passed in by the caller internally
def
invalid_token_callback
(
error
,
**
kwargs
):
# we have to keep the argument here, since it's passed in by the caller internally
print
(
"///////////////////////////////////"
,
kwargs
)
return
jsonify
({
return
jsonify
({
'code'
:
401
,
'code'
:
401
,
'msg'
:
'invalid token'
,
'msg'
:
'invalid token'
,
...
...
tools/build_out/controllers/menu.py
View file @
ca07dd6a
...
@@ -64,7 +64,7 @@ class MenuResource(object):
...
@@ -64,7 +64,7 @@ class MenuResource(object):
return
False
,
ResponseCode
.
HTTP_NOT_FOUND
return
False
,
ResponseCode
.
HTTP_NOT_FOUND
def
create
(
self
,
params
=
{},
jwt
=
{}):
def
create
(
self
,
params
=
{},
jwt
=
{}):
user
=
db
.
session
.
query
(
UserModel
)
.
filter
(
UserModel
.
uuid
==
jwt
.
get
(
"uuid"
))
.
one_or_none
()
user
=
db
.
session
.
query
(
UserModel
,
UserModel
.
id
)
.
filter
(
UserModel
.
uuid
==
jwt
.
get
(
"uuid"
))
.
one_or_none
()
if
not
user
:
if
not
user
:
return
False
,
ResponseCode
.
USER_NOT_EXISTS
return
False
,
ResponseCode
.
USER_NOT_EXISTS
# 接口字段可能和数据库字段不一致
# 接口字段可能和数据库字段不一致
...
@@ -72,9 +72,9 @@ class MenuResource(object):
...
@@ -72,9 +72,9 @@ class MenuResource(object):
data
=
dict
(
is_delete
=
False
,
sort
=
0
,
remarks
=
""
)
data
=
dict
(
is_delete
=
False
,
sort
=
0
,
remarks
=
""
)
data
.
update
({
data
.
update
({
'create_by'
:
user
.
id
,
'create_by'
:
user
.
id
,
'create_at'
:
datetime
.
n
i
w
(),
'create_at'
:
datetime
.
n
o
w
(),
'update_by'
:
user
.
id
,
'update_by'
:
user
.
id
,
'update_at'
:
datetime
.
now
()
'update_at'
:
datetime
.
now
()
,
})
})
for
k
in
params
.
keys
():
for
k
in
params
.
keys
():
if
k
in
extends
:
if
k
in
extends
:
...
@@ -84,15 +84,16 @@ class MenuResource(object):
...
@@ -84,15 +84,16 @@ class MenuResource(object):
data
[
k
]
=
params
[
k
]
data
[
k
]
=
params
[
k
]
if
data
.
get
(
"sort"
)
==
0
:
if
data
.
get
(
"sort"
)
==
0
:
data
.
sort
=
db
.
session
.
query
(
MenuModel
)
.
filter
()
.
count
()
+
1
data
[
"sort"
]
=
db
.
session
.
query
(
MenuModel
)
.
filter
()
.
count
()
+
1
# 默认设置sort等于表内记录个数
# 默认设置sort等于表内记录个数
logger
.
info
(
data
.
sort
)
result
=
MenuModel
(
**
data
)
result
=
MenuModel
(
**
data
)
db
.
session
.
add
(
result
)
db
.
session
.
add
(
result
)
db
.
session
.
commit
()
db
.
session
.
commit
()
return
True
,
ResponseCode
.
HTTP_SUCCESS
return
True
,
ResponseCode
.
HTTP_SUCCESS
def
treeList
(
self
,
params
=
{},
jwt
=
{}):
def
treeList
(
self
,
params
=
{},
jwt
=
{}):
self
.
print_tree
(
"home"
)
filters
=
[
MenuModel
.
is_delete
==
False
]
filters
=
[
MenuModel
.
is_delete
==
False
]
result
=
db
.
session
.
query
(
MenuModel
)
.
filter
(
*
filters
)
.
order_by
(
MenuModel
.
sort
)
.
order_by
(
MenuModel
.
update_at
.
desc
())
.
all
()
result
=
db
.
session
.
query
(
MenuModel
)
.
filter
(
*
filters
)
.
order_by
(
MenuModel
.
sort
)
.
order_by
(
MenuModel
.
update_at
.
desc
())
.
all
()
data
=
[]
data
=
[]
...
...
tools/build_out/models/menu.py
View file @
ca07dd6a
...
@@ -19,24 +19,29 @@ class MenuModel(PrimaryModel, BaseNestedSets):
...
@@ -19,24 +19,29 @@ class MenuModel(PrimaryModel, BaseNestedSets):
__tablename__
=
'evm_menu'
__tablename__
=
'evm_menu'
id
=
db
.
Column
(
db
.
Integer
,
primary_key
=
True
)
id
=
db
.
Column
(
db
.
Integer
,
primary_key
=
True
)
visible
=
db
.
Column
(
db
.
Boolean
)
# disabled = db.Column(db.Boolean, default = False)
icon
=
db
.
Column
(
db
.
String
(
100
),
nullable
=
True
,
default
=
''
)
name
=
db
.
Column
(
db
.
String
(
100
),
nullable
=
True
)
name
=
db
.
Column
(
db
.
String
(
100
),
nullable
=
True
)
# tree_id = db.Column(db.Integer, default=0, nullable = True)
# parent_id = db.Column(db.Integer, db.ForeignKey("evm_menu.id"), default=0, nullable = True) # 这句话会由mptt自动插入进去
# parent_id = db.Column(db.Integer, db.ForeignKey("evm_menu.id"), default=0, nullable = True) # 这句话会由mptt自动插入进去
path
=
db
.
Column
(
db
.
String
(
100
),
nullable
=
True
)
path
=
db
.
Column
(
db
.
String
(
100
),
nullable
=
True
)
disabled
=
db
.
Column
(
db
.
Boolean
,
nullable
=
True
,
default
=
False
)
# lft = db.Column(db.String(100), nullable = True)
fixed
=
db
.
Column
(
db
.
Boolean
,
nullable
=
False
,
default
=
False
)
# rgt = db.Column(db.String(100), nullable = True)
has_children
=
db
.
Column
(
db
.
Boolean
,
nullable
=
True
,
default
=
False
)
# visible = db.Column(db.Boolean, default = True)
icon
=
db
.
Column
(
db
.
String
(
100
),
nullable
=
True
,
default
=
''
)
# level = db.Column(db.Integer, primary_key=True)
# disabled = db.Column(db.Boolean, nullable = True, default = False)
# fixed = db.Column(db.Boolean, nullable = False, default = False)
# has_children = db.Column(db.Boolean, nullable = True, default = False)
# create_at = db.Column(db.DateTime, default=datetime.now) # 下面这些被注释的字段,都已经从PrimaryModel继承过来了,无需重写
# create_at = db.Column(db.DateTime, default=datetime.now) # 下面这些被注释的字段,都已经从PrimaryModel继承过来了,无需重写
# create_by = db.Column(db.String(64))
# create_by = db.Column(db.String(64))
# update_at = db.Column(db.DateTime, default=datetime.now)
# update_at = db.Column(db.DateTime, default=datetime.now)
# update_by = db.Column(db.String(64))
# update_by = db.Column(db.String(64))
# remarks = db.Column(db.String(255), default="")
# remarks = db.Column(db.String(255), default="")
# sort = db.Column(db.Integer, default=0)
# sort = db.Column(db.Integer, default=0)
# is_delete = db.Column(db.B
OOLEAN
, default=0)
# is_delete = db.Column(db.B
oolean
, default=0)
# parent = db.Column(db.Integer, db.ForeignKey('evm_menu.id'), index=True)
# parent = db.Column(db.Integer, db.ForeignKey('evm_menu.id'), index=True)
# 这句话的含义请百度sqlalchemy表自关联,https://www.jianshu.com/p/fa611ab55dd2
# 这句话的含义请百度sqlalchemy表自关联,https://www.jianshu.com/p/fa611ab55dd2
parent
=
db
.
relationship
(
"MenuModel"
,
remote_side
=
[
id
],
backref
=
"
ppp
"
)
parent
=
db
.
relationship
(
"MenuModel"
,
remote_side
=
[
id
],
backref
=
"
children
"
)
# sqlalchemy_mptt 调优
# sqlalchemy_mptt 调优
# sqlalchemy_mptt 在混入ORM对象时,只对rgt, lft, level 设置了索引,导致每次 CRUD操作都需要从头到尾查找。
# sqlalchemy_mptt 在混入ORM对象时,只对rgt, lft, level 设置了索引,导致每次 CRUD操作都需要从头到尾查找。
...
@@ -50,7 +55,7 @@ class MenuModel(PrimaryModel, BaseNestedSets):
...
@@ -50,7 +55,7 @@ class MenuModel(PrimaryModel, BaseNestedSets):
db
.
Index
(
'parent_idx'
,
'parent_id'
),
db
.
Index
(
'parent_idx'
,
'parent_id'
),
)
)
def
__init__
(
self
,
name
=
None
,
parentId
=
None
,
path
=
""
,
disabled
=
False
,
fixed
=
False
,
hasChildren
=
False
,
icon
=
''
,
is_delete
=
False
,
sort
=
0
,
remarks
=
""
):
def
__init__
(
self
,
name
=
None
,
parentId
=
None
,
path
=
""
,
disabled
=
False
,
fixed
=
False
,
hasChildren
=
False
,
icon
=
''
,
is_delete
=
False
,
sort
=
0
,
create_by
=
None
,
create_at
=
None
,
update_by
=
None
,
update_at
=
None
,
remarks
=
""
):
self
.
name
=
name
self
.
name
=
name
self
.
parent_id
=
parentId
self
.
parent_id
=
parentId
self
.
path
=
path
self
.
path
=
path
...
@@ -60,6 +65,10 @@ class MenuModel(PrimaryModel, BaseNestedSets):
...
@@ -60,6 +65,10 @@ class MenuModel(PrimaryModel, BaseNestedSets):
self
.
icon
=
icon
self
.
icon
=
icon
self
.
is_delete
=
is_delete
self
.
is_delete
=
is_delete
self
.
sort
=
sort
self
.
sort
=
sort
self
.
create_by
=
create_by
self
.
create_at
=
create_at
self
.
update_by
=
update_by
self
.
update_at
=
update_at
self
.
remarks
=
remarks
self
.
remarks
=
remarks
def
__repr__
(
self
):
def
__repr__
(
self
):
...
...
tools/build_out/views/menu.py
View file @
ca07dd6a
...
@@ -184,14 +184,25 @@ class MenuList(Resource):
...
@@ -184,14 +184,25 @@ class MenuList(Resource):
]
]
}
}
]
]
return
response_result
(
ResponseCode
.
HTTP_SUCCESS
,
data
=
result
)
signalManager
.
actionTreelist
.
emit
()
return
response_result
(
ResponseCode
.
HTTP_SUCCESS
,
data
=
result
)
@
jwt_required
(
locations
=
[
"headers"
])
def
post
(
self
):
def
post
(
self
):
self
.
parser
.
add_argument
(
"icon"
,
type
=
str
,
location
=
"json"
,
required
=
True
)
self
.
parser
.
add_argument
(
"path"
,
type
=
str
,
location
=
"json"
,
required
=
True
)
self
.
parser
.
add_argument
(
"name"
,
type
=
str
,
location
=
"json"
,
required
=
True
)
args
=
self
.
parser
.
parse_args
()
try
:
try
:
json_payload
=
request
.
json
json_payload
=
request
.
json
print
(
"--------------------->>>>"
,
args
)
logger
.
warn
(
json_payload
)
logger
.
warn
(
json_payload
)
return
response_result
(
ResponseCode
.
HTTP_INVAILD_REQUEST
)
result
=
signalManager
.
actionMenuCreate
.
emit
(
json_payload
,
jwt
=
get_jwt_identity
())
print
(
"=====================>>>>"
,
result
)
return
response_result
(
ResponseCode
.
HTTP_SUCCESS
)
except
Exception
as
e
:
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
current_app
.
logger
.
error
(
e
)
return
response_result
(
ResponseCode
.
HTTP_SERVER_ERROR
)
return
response_result
(
ResponseCode
.
HTTP_SERVER_ERROR
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment