Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
V
vue_django_test
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
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
周田
vue_django_test
Commits
cedde1f3
Commit
cedde1f3
authored
Sep 08, 2023
by
周田
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat:删除协议的某个版本
parent
93ed262e
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
101 additions
and
4 deletions
+101
-4
CollapseTable.vue
frontend/src/components/protocol/CollapseTable.vue
+24
-1
protocol.vue
frontend/src/views/protocol/protocol.vue
+3
-3
models.py
protocol_version_manage/models.py
+10
-0
urls.py
protocol_version_manage/urls.py
+1
-0
views.py
protocol_version_manage/views.py
+63
-0
xdc.sqlite
xdc.sqlite
+0
-0
No files found.
frontend/src/components/protocol/CollapseTable.vue
View file @
cedde1f3
...
...
@@ -4,7 +4,6 @@
<div
class=
"left"
>
<div
class=
"mr-4"
>
协议版本
</div>
<el-select
v-model=
"currentVersion"
@
change=
"changeProtocolVersion"
>
<!-- TODO: 选择协议版本 -->
<el-option
v-for=
"option in options"
:key=
"option.value"
...
...
@@ -30,6 +29,7 @@
</el-upload>
<el-button
v-else
@
click=
"downloadFile"
>
下载原始文件
</el-button>
<el-button
@
click=
"addCmd = true"
>
新增指令
</el-button>
<el-button
@
click=
"deleteProtocol"
>
删除该版本协议
</el-button>
</div>
</div>
...
...
@@ -274,6 +274,29 @@ const downloadFile = () => {
console
.
log
(
"downloadFile"
);
};
// 删除协议
const
deleteProtocol
=
()
=>
{
console
.
log
(
currentVersion
.
value
,
props
.
name
);
axios
.
post
(
'/api/protocol_vesrion_manage/delete_protocol_vesrion/'
,
{
version
:
currentVersion
.
value
,
protocol_name
:
props
.
name
,
})
.
then
(()
=>
{
ElMessage
({
type
:
'success'
,
message
:
'删除成功'
,
})
options
.
value
=
options
.
value
.
filter
((
item
)
=>
item
.
value
!==
currentVersion
.
value
)
currentVersion
.
value
=
options
.
value
[
0
].
value
changeProtocolVersion
()
})
.
catch
((
err
)
=>
{
console
.
log
(
err
);
ElMessage
.
error
(
'删除失败'
)
})
}
</
script
>
<
style
>
...
...
frontend/src/views/protocol/protocol.vue
View file @
cedde1f3
...
...
@@ -12,7 +12,7 @@
<el-dialog
title=
"新增协议"
v-model=
"isShow"
>
<el-form>
<el-form-item
label=
"协议名称"
:label-width=
"formLabelWidth"
>
<el-input
autocomplete=
"off"
/>
<el-input
v-model=
"protocolName"
autocomplete=
"off"
/>
</el-form-item>
</el-form>
<template
#
footer
>
...
...
@@ -48,10 +48,10 @@ onMounted(() => {
})
})
// TODO:添加协议
const
protocolName
=
ref
<
string
>
(
''
)
const
addProtocol
=
()
=>
{
isShow
.
value
=
false
console
.
log
(
'addProtocol'
)
console
.
log
(
protocolName
.
value
)
}
</
script
>
...
...
protocol_version_manage/models.py
View file @
cedde1f3
...
...
@@ -22,6 +22,9 @@ class AllDevCmdDefineAndVersion(models.Model):
lua_script_out
=
models
.
TextField
()
# Field name made lowercase.
version
=
models
.
TextField
()
def
__hash__
(
self
)
->
int
:
return
super
()
.
__hash__
()
def
__eq__
(
self
,
__value
:
object
)
->
bool
:
if
not
isinstance
(
__value
,
AllDevCmdDefineAndVersion
):
return
False
...
...
@@ -66,6 +69,9 @@ class AllProtocolDefinAndVersion(models.Model):
cmd_explain
=
models
.
TextField
()
# Field name made lowercase.
version
=
models
.
TextField
()
def
__hash__
(
self
)
->
int
:
return
super
()
.
__hash__
()
def
__eq__
(
self
,
__value
:
object
)
->
bool
:
if
not
isinstance
(
__value
,
AllProtocolDefinAndVersion
):
return
False
...
...
@@ -88,6 +94,10 @@ class CurrentDevVersion(models.Model):
protocol_name
=
models
.
TextField
(
primary_key
=
True
)
# Field name made lowercase.
version
=
models
.
TextField
()
def
__hash__
(
self
)
->
int
:
return
super
()
.
__hash__
()
class
Meta
:
db_table
=
'CurrentDevVersion'
...
...
protocol_version_manage/urls.py
View file @
cedde1f3
...
...
@@ -15,6 +15,7 @@ urlpatterns = [
re_path
(
r'^protocol_version_manage/file_download/(?P<protocol_name>.+)/(?P<version>.+)/$'
,
views
.
raw_file_download
),
re_path
(
r'^all_protocol_version/$'
,
views
.
AllProtocolVersionViewSet
.
as_view
({
'get'
:
'list'
})),
re_path
(
r'^protocol_vesrion_manage/delete_protocol_vesrion/$'
,
views
.
delete_protocol_vesrion
),
]
urlpatterns
+=
router
.
urls
protocol_version_manage/views.py
View file @
cedde1f3
...
...
@@ -197,5 +197,68 @@ def raw_file_download(request, protocol_name, version):
class
CurrentDevVersionViewSet
(
GenericViewSet
,
ListModelMixin
):
"""
获取所有协议当前的版本
"""
queryset
=
CurrentDevVersion
.
objects
.
all
()
serializer_class
=
CurrentDevVersionSerializer
@swagger_auto_schema
(
methods
=
[
'POST'
],
request_body
=
openapi
.
Schema
(
type
=
openapi
.
TYPE_OBJECT
,
properties
=
{
'protocol_name'
:
openapi
.
Schema
(
type
=
openapi
.
TYPE_STRING
),
'version'
:
openapi
.
Schema
(
type
=
openapi
.
TYPE_STRING
),
}
))
@api_view
([
'POST'
])
def
delete_protocol_vesrion
(
request
):
"""
删除特定版本的协议
"""
protocol_name
=
request
.
data
.
get
(
'protocol_name'
)
version
=
request
.
data
.
get
(
'version'
)
print
(
version
,
protocol_name
)
if
protocol_name
is
None
or
version
is
None
:
return
Response
(
status
=
status
.
HTTP_400_BAD_REQUEST
)
all_cmds
=
AllProtocolDefinAndVersion
.
objects
.
filter
(
protocol_name
=
protocol_name
)
.
all
()
for
cmd
in
all_cmds
:
cmd_vesrions
=
json
.
loads
(
cmd
.
version
)
if
len
(
cmd_vesrions
)
==
1
and
version
in
cmd_vesrions
:
# 这个命令是这个版本独有的
cmd
.
delete
()
elif
version
in
cmd_vesrions
:
cmd_vesrions
.
remove
(
version
)
cmd
.
version
=
json
.
dumps
(
cmd_vesrions
)
cmd
.
save
()
else
:
# 这个命令不在这个版本中
continue
all_fields
=
AllDevCmdDefineAndVersion
.
objects
.
filter
(
cmd_name
=
cmd
.
cmd_name
)
.
all
()
for
field
in
all_fields
:
field_versions
=
json
.
loads
(
field
.
version
)
if
len
(
field_versions
)
==
1
and
version
in
field_versions
:
# 这个字段是这个版本独有的
field
.
delete
()
elif
version
in
field_versions
:
field_versions
.
remove
(
version
)
field
.
version
=
json
.
dumps
(
field_versions
)
field
.
save
()
else
:
# 这个字段不在这个版本中
continue
protocol_vesrions
=
AllProtocolVersion
.
objects
.
filter
(
protocol_name
=
protocol_name
)
.
first
()
protocol_vesrions_l
:
list
=
json
.
loads
(
protocol_vesrions
.
version_paths
)
vesrions_l
:
list
=
[
version_paths
[
'version'
]
for
version_paths
in
protocol_vesrions_l
]
if
len
(
vesrions_l
)
==
1
:
# 这个版本是这个协议独有的
protocol_vesrions
.
delete
()
elif
version
in
vesrions_l
:
protocol_vesrions_l
.
pop
(
vesrions_l
.
index
(
version
))
protocol_vesrions
.
version_paths
=
json
.
dumps
(
protocol_vesrions_l
)
protocol_vesrions
.
save
()
return
Response
(
status
=
status
.
HTTP_200_OK
)
xdc.sqlite
View file @
cedde1f3
No preview for this file type
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