Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
S
sun
Project
Project
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
钟尚武
sun
Commits
89443bb1
Commit
89443bb1
authored
Nov 25, 2018
by
Davve
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
完成用户创建接口
parent
932a0316
Hide whitespace changes
Inline
Side-by-side
Showing
22 changed files
with
704 additions
and
414 deletions
+704
-414
group.py
api/group.py
+51
-12
push.py
api/push.py
+1
-2
star.py
api/star.py
+2
-2
topic.py
api/topic.py
+17
-48
urls.py
api/urls.py
+27
-21
user.py
api/user.py
+53
-15
group.js
vu/src/api/group.js
+27
-2
topic.js
vu/src/api/topic.js
+8
-0
user.js
vu/src/api/user.js
+25
-0
index.js
vu/src/mock/index.js
+1
-1
list.vue
vu/src/views/account/list.vue
+1
-1
GroupDetail.vue
vu/src/views/group/components/GroupDetail.vue
+177
-86
list.vue
vu/src/views/group/list.vue
+29
-9
PickDetail.vue
vu/src/views/pick/components/PickDetail.vue
+3
-3
PushDetail.vue
vu/src/views/push/components/PushDetail.vue
+3
-3
list.vue
vu/src/views/push/list.vue
+1
-1
StarDetail.vue
vu/src/views/star/components/StarDetail.vue
+8
-6
list.vue
vu/src/views/star/list.vue
+2
-2
TopicDetail.vue
vu/src/views/topic/components/TopicDetail.vue
+111
-79
list.vue
vu/src/views/topic/list.vue
+8
-16
UserDetail.vue
vu/src/views/user/components/UserDetail.vue
+129
-84
list.vue
vu/src/views/user/list.vue
+20
-21
No files found.
api/group.py
View file @
89443bb1
...
@@ -3,32 +3,33 @@
...
@@ -3,32 +3,33 @@
# __author__ = "chenwei"
# __author__ = "chenwei"
# Date: 2018/11/15
# Date: 2018/11/15
import
json
from
utils.base
import
APIView
from
utils.base
import
APIView
class
GroupListView
(
APIView
):
class
GroupListView
(
APIView
):
def
get
(
self
,
request
):
def
get
(
self
,
request
):
offset
=
int
(
request
.
GET
.
get
(
'page'
,
0
))
offset
=
int
(
request
.
GET
.
get
(
'page'
,
0
))
coun
t
=
int
(
request
.
GET
.
get
(
'limit'
,
10
))
limi
t
=
int
(
request
.
GET
.
get
(
'limit'
,
10
))
filters
=
self
.
handle_filter
(
request
.
GET
.
get
(
'filter'
,
""
))
filters
=
self
.
handle_filter
(
request
.
GET
.
get
(
'filter'
,
""
))
try
:
try
:
data
=
self
.
rpc
[
'venus/
community/group/list'
](
filters
=
filters
,
offset
=
offset
,
count
=
coun
t
)
.
unwrap
()
data
=
self
.
rpc
[
'venus/
sun/group/list'
](
filters
=
filters
,
offset
=
(
offset
-
1
)
*
limit
,
limit
=
limi
t
)
.
unwrap
()
except
Exception
as
e
:
except
Exception
as
e
:
raise
e
raise
e
return
data
return
data
def
post
(
self
,
request
):
def
post
(
self
,
request
):
group_
ids
=
request
.
POST
.
get
(
'ids'
,
''
)
.
split
()
ids
=
request
.
POST
.
get
(
'ids'
,
''
)
.
split
()
type
=
request
.
POST
.
get
(
'type'
)
type
=
request
.
POST
.
get
(
'type'
)
filter
s
=
{}
update
s
=
{}
if
type
==
'offline'
:
if
type
==
'offline'
:
filter
s
[
'is_online'
]
=
False
update
s
[
'is_online'
]
=
False
elif
type
==
'recommend'
:
elif
type
==
'
is_
recommend'
:
filter
s
[
'is_recommend'
]
=
True
update
s
[
'is_recommend'
]
=
True
else
:
else
:
filter
s
[
'is_online'
]
=
True
update
s
[
'is_online'
]
=
True
try
:
try
:
self
.
rpc
[
'venus/
community/group/batch/update'
](
filters
=
filters
,
group_ids
=
group_
ids
)
.
unwrap
()
self
.
rpc
[
'venus/
sun/group/batch/update'
](
updates
=
updates
,
ids
=
ids
)
.
unwrap
()
except
Exception
as
e
:
except
Exception
as
e
:
raise
e
raise
e
return
{
return
{
...
@@ -43,7 +44,46 @@ class GroupUpdateOrCreate(APIView):
...
@@ -43,7 +44,46 @@ class GroupUpdateOrCreate(APIView):
data
=
self
.
rpc
[
'venus/sun/group/get'
](
id
=
id
)
.
unwrap
()
data
=
self
.
rpc
[
'venus/sun/group/get'
](
id
=
id
)
.
unwrap
()
except
Exception
as
e
:
except
Exception
as
e
:
raise
e
raise
e
return
[
data
]
return
data
def
post
(
self
,
request
):
def
post
(
self
,
request
):
pass
id
=
request
.
POST
.
get
(
'id'
)
\ No newline at end of file
data
=
{
'name'
:
request
.
POST
.
get
(
'name'
,
''
),
'description'
:
request
.
POST
.
get
(
'description'
,
''
),
'creator_id'
:
request
.
POST
.
get
(
'group_leader'
,
''
),
'star_ids'
:
json
.
loads
(
request
.
POST
.
get
(
'star'
,
''
))
.
split
(
','
),
# TODO是否需要加
'is_online'
:
request
.
POST
.
get
(
'is_online'
,
''
),
'is_recommend'
:
request
.
POST
.
get
(
'is_recommend'
,
''
),
'user_ids'
:
json
.
loads
(
request
.
POST
.
get
(
'user_ids'
,
''
))
}
try
:
self
.
rpc
[
'venus/sun/group/edit'
](
id
=
id
,
data
=
data
)
.
unwrap
()
except
Exception
as
e
:
raise
e
return
{
'message'
:
'更新成功'
}
class
GroupRelatedUser
(
APIView
):
def
get
(
self
,
request
):
id
=
request
.
GET
.
get
(
'id'
)
offset
=
int
(
request
.
GET
.
get
(
'page'
,
0
))
count
=
int
(
request
.
GET
.
get
(
'limit'
,
10
))
filters
=
{
'group_id'
:
id
}
try
:
data
=
self
.
rpc
[
'venus/sun/group/user/list'
](
filters
=
filters
,
offset
=
offset
,
limit
=
count
)
.
unwrap
()
except
Exception
as
e
:
raise
e
return
data
class
GroupRelatedUserGET
(
APIView
):
def
get
(
self
,
request
):
id
=
request
.
GET
.
get
(
'id'
)
try
:
data
=
self
.
rpc
[
'venus/sun/group/user/get'
](
id
=
id
)
.
unwrap
()
except
Exception
as
e
:
raise
e
return
[
data
,
]
api/push.py
View file @
89443bb1
...
@@ -2,10 +2,9 @@
...
@@ -2,10 +2,9 @@
# -*- coding: utf-8 -*-
# -*- coding: utf-8 -*-
# __author__ = "chenwei"
# __author__ = "chenwei"
# Date: 2018/11/15
# Date: 2018/11/15
import
datetime
from
utils.base
import
APIView
from
utils.base
import
APIView
from
utils.time_utils
import
utc_to_datetime
,
unix_time_to_datetime
,
analysis_time
from
utils.time_utils
import
analysis_time
class
PushListView
(
APIView
):
class
PushListView
(
APIView
):
...
...
api/star.py
View file @
89443bb1
...
@@ -13,7 +13,7 @@ class StarListView(APIView):
...
@@ -13,7 +13,7 @@ class StarListView(APIView):
limit
=
int
(
request
.
GET
.
get
(
'limit'
,
10
))
limit
=
int
(
request
.
GET
.
get
(
'limit'
,
10
))
filter
=
self
.
handle_filter
(
request
.
GET
.
get
(
'filter'
,
""
))
filter
=
self
.
handle_filter
(
request
.
GET
.
get
(
'filter'
,
""
))
try
:
try
:
data
=
self
.
rpc
[
'venus/sun/star/list'
](
offset
=
page
,
limit
=
limit
,
filters
=
filter
)
.
unwrap
()
data
=
self
.
rpc
[
'venus/sun/star/list'
](
offset
=
(
page
-
1
)
*
limit
,
limit
=
limit
,
filters
=
filter
)
.
unwrap
()
except
Exception
as
e
:
except
Exception
as
e
:
raise
e
raise
e
return
data
return
data
...
@@ -57,7 +57,7 @@ class StarRelatedGroup(APIView):
...
@@ -57,7 +57,7 @@ class StarRelatedGroup(APIView):
count
=
int
(
request
.
GET
.
get
(
'limit'
,
10
))
count
=
int
(
request
.
GET
.
get
(
'limit'
,
10
))
filters
=
{
'star_id'
:
id
}
filters
=
{
'star_id'
:
id
}
try
:
try
:
data
=
self
.
rpc
[
'venus/sun/group/list'
](
filters
=
filters
,
offset
=
offse
t
,
limit
=
count
)
.
unwrap
()
data
=
self
.
rpc
[
'venus/sun/group/list'
](
filters
=
filters
,
offset
=
(
offset
-
1
)
*
coun
t
,
limit
=
count
)
.
unwrap
()
except
Exception
as
e
:
except
Exception
as
e
:
raise
e
raise
e
return
data
return
data
api/topic.py
View file @
89443bb1
...
@@ -10,11 +10,11 @@ from utils.time_utils import analysis_time
...
@@ -10,11 +10,11 @@ from utils.time_utils import analysis_time
class
TopicListView
(
APIView
):
class
TopicListView
(
APIView
):
def
get
(
self
,
request
):
def
get
(
self
,
request
):
page
=
int
(
request
.
GET
.
get
(
'page'
,
0
))
offset
=
int
(
request
.
GET
.
get
(
'page'
,
0
))
limit
=
int
(
request
.
GET
.
get
(
'limit'
,
10
))
limit
=
int
(
request
.
GET
.
get
(
'limit'
,
10
))
filter
=
self
.
handle_filter
(
request
.
GET
.
get
(
'filter'
,
""
))
filter
=
self
.
handle_filter
(
request
.
GET
.
get
(
'filter'
,
""
))
try
:
try
:
data
=
self
.
rpc
[
'venus/sun/topic/list'
](
offset
=
page
,
limit
=
limit
,
filters
=
filter
)
.
unwrap
()
data
=
self
.
rpc
[
'venus/sun/topic/list'
](
offset
=
(
offset
-
1
)
*
limit
,
limit
=
limit
,
filters
=
filter
)
.
unwrap
()
except
Exception
as
e
:
except
Exception
as
e
:
raise
e
raise
e
return
data
return
data
...
@@ -24,7 +24,7 @@ class TopicUpdateOrCreateView(APIView):
...
@@ -24,7 +24,7 @@ class TopicUpdateOrCreateView(APIView):
def
get
(
self
,
request
):
def
get
(
self
,
request
):
id
=
request
.
GET
.
get
(
'id'
)
id
=
request
.
GET
.
get
(
'id'
)
try
:
# TODO 少返回了is_online
try
:
data
=
self
.
rpc
[
'venus/sun/topic/get'
](
id
=
id
)
.
unwrap
()
data
=
self
.
rpc
[
'venus/sun/topic/get'
](
id
=
id
)
.
unwrap
()
except
Exception
as
e
:
except
Exception
as
e
:
raise
e
raise
e
...
@@ -38,14 +38,14 @@ class TopicUpdateOrCreateView(APIView):
...
@@ -38,14 +38,14 @@ class TopicUpdateOrCreateView(APIView):
data
=
{
data
=
{
'topic_images'
:
topic_images
,
'topic_images'
:
topic_images
,
'topic
_ids'
:
json
.
loads
(
request
.
POST
.
get
(
'topic_ids'
,
''
)),
# 'reply
_ids': json.loads(request.POST.get('topic_ids', '')),
'video_url'
:
request
.
POST
.
get
(
'video_url'
,
''
),
'video_url'
:
request
.
POST
.
get
(
'video_url'
,
''
),
'posting_time'
:
posting_time
,
'posting_time'
:
posting_time
,
'content'
:
request
.
POST
.
get
(
'content'
,
''
),
'content'
:
request
.
POST
.
get
(
'content'
,
''
),
'content_level'
:
request
.
POST
.
get
(
'content_level'
,
''
),
'content_level'
:
request
.
POST
.
get
(
'content_level'
,
''
),
'group_
name
'
:
request
.
POST
.
get
(
'group_name'
,
''
),
'group_
id
'
:
request
.
POST
.
get
(
'group_name'
,
''
),
'user_id'
:
request
.
POST
.
get
(
'user_
id
'
,
''
),
'user_id'
:
request
.
POST
.
get
(
'user_
name
'
,
''
),
'star_
name
'
:
request
.
POST
.
get
(
'star_name'
,
''
),
'star_
id
'
:
request
.
POST
.
get
(
'star_name'
,
''
),
'tag_ids'
:
json
.
loads
(
request
.
POST
.
get
(
'tag_ids'
,
[])),
'tag_ids'
:
json
.
loads
(
request
.
POST
.
get
(
'tag_ids'
,
[])),
}
}
try
:
try
:
...
@@ -60,28 +60,15 @@ class TopicUpdateOrCreateView(APIView):
...
@@ -60,28 +60,15 @@ class TopicUpdateOrCreateView(APIView):
class
ReplyUpdateOrCreateView
(
APIView
):
class
ReplyUpdateOrCreateView
(
APIView
):
def
get
(
self
,
request
):
def
get
(
self
,
request
):
id
=
request
.
GET
.
get
(
'id'
)
id
=
request
.
GET
.
get
(
'id'
)
page
=
int
(
request
.
GET
.
get
(
'page'
,
0
))
offset
=
int
(
request
.
GET
.
get
(
'page'
,
0
))
limit
=
int
(
request
.
GET
.
get
(
'limit'
,
10
))
limit
=
int
(
request
.
GET
.
get
(
'limit'
,
10
))
filter
=
self
.
handle_filter
(
request
.
GET
.
get
(
'filter'
,
""
))
filter
=
self
.
handle_filter
(
request
.
GET
.
get
(
'filter'
,
""
))
filter
.
update
({
'id'
:
id
})
filter
.
update
({
'topic_id'
:
id
})
try
:
try
:
data
=
self
.
rpc
[
'venus/sun/topic/reply/list'
](
offset
=
page
,
limit
=
limit
,
filters
=
filter
)
.
unwrap
()
data
=
self
.
rpc
[
'venus/sun/topic/reply/list'
](
offset
=
(
offset
-
1
)
*
limit
,
limit
=
limit
,
filters
=
filter
)
.
unwrap
()
except
Exception
as
e
:
except
Exception
as
e
:
data
=
[
raise
e
{
return
data
'id'
:
1
,
'reply_name'
:
'真好'
,
'be_reply_name'
:
'王二'
,
'create_time'
:
'2018-09-10 23:23:23'
,
'reply_type'
:
'贴主的评论'
,
'content'
:
'内容真好'
,
},
]
return
{
'total'
:
10
,
'data'
:
data
}
def
post
(
self
,
request
):
def
post
(
self
,
request
):
reply_ids
=
json
.
loads
(
request
.
POST
.
get
(
'reply_ids'
,
[]))
reply_ids
=
json
.
loads
(
request
.
POST
.
get
(
'reply_ids'
,
[]))
...
@@ -97,32 +84,14 @@ class ReplyUpdateOrCreateView(APIView):
...
@@ -97,32 +84,14 @@ class ReplyUpdateOrCreateView(APIView):
class
ReplyCreate
(
APIView
):
class
ReplyCreate
(
APIView
):
def
post
(
self
,
request
):
def
post
(
self
,
request
):
data
=
{
data
=
{
'
topic_id'
:
request
.
POST
.
get
(
'topic
_id'
),
'
user_id'
:
request
.
POST
.
get
(
'user
_id'
),
'repl
y_name'
:
request
.
POST
.
get
(
'reply_name'
),
'repl
ied_id'
:
request
.
POST
.
get
(
"replied_id"
,
None
),
'
be_reply_name'
:
request
.
POST
.
get
(
'be_reply_name'
),
'
topic_id'
:
request
.
POST
.
get
(
"topic_id"
,
None
),
'content'
:
request
.
POST
.
get
(
'content'
),
'content'
:
request
.
POST
.
get
(
'content'
),
}
}
try
:
try
:
data
=
self
.
rpc
[
'venus/sun/topic/reply/create'
](
data
=
data
)
.
unwrap
()
data
=
self
.
rpc
[
'venus/sun/topic/reply/edit'
](
id
=
None
,
data
=
data
)
.
unwrap
()
"""
data = {
'id': 1,
'reply_type': 1,
'create_time': '2108-09-92 12:12:12',
'reply_name': 'xxxxx',
'be_reply_name': 'xxxxxx',
'content': '测试测试',
}
"""
except
Exception
as
e
:
except
Exception
as
e
:
# raise e
raise
e
data
=
{
'id'
:
6
,
'reply_type'
:
"贴住的评论"
,
'create_time'
:
'2108-09-92 12:12:12'
,
'reply_name'
:
'xxxxx'
,
'be_reply_name'
:
'xxxxxx'
,
'content'
:
'测试测试'
,
}
return
{
'data'
:
data
}
return
{
'data'
:
data
}
api/urls.py
View file @
89443bb1
...
@@ -20,35 +20,41 @@ from .token import *
...
@@ -20,35 +20,41 @@ from .token import *
urlpatterns
=
[
urlpatterns
=
[
# 登陆,注销相关
# 登陆,注销相关
url
(
r'account/login$'
,
LoginView
.
as_view
()),
url
(
r'
^
account/login$'
,
LoginView
.
as_view
()),
url
(
r'account/logout$'
,
LogoutView
.
as_view
()),
url
(
r'
^
account/logout$'
,
LogoutView
.
as_view
()),
url
(
r'account/get$'
,
LoginView
.
as_view
()),
url
(
r'
^
account/get$'
,
LoginView
.
as_view
()),
url
(
r'account/list$'
,
AccountList
.
as_view
()),
url
(
r'
^
account/list$'
,
AccountList
.
as_view
()),
url
(
r'account/list/update$'
,
AccountList
.
as_view
()),
url
(
r'
^
account/list/update$'
,
AccountList
.
as_view
()),
url
(
r'account/detail$'
,
AccountUpdateOrCreateView
.
as_view
()),
url
(
r'
^
account/detail$'
,
AccountUpdateOrCreateView
.
as_view
()),
url
(
r'account/create$'
,
AccountUpdateOrCreateView
.
as_view
()),
url
(
r'
^
account/create$'
,
AccountUpdateOrCreateView
.
as_view
()),
# user相关
# user相关
url
(
r'user/list$'
,
UserListView
.
as_view
()),
url
(
r'^user/list$'
,
UserListView
.
as_view
()),
url
(
r'^user/get$'
,
UserUpdateOrCreate
.
as_view
()),
url
(
r'^user/create$'
,
UserUpdateOrCreate
.
as_view
()),
url
(
r'^user/group/list$'
,
UserGroupView
.
as_view
()),
# group相关
# group相关
url
(
r'group/list$'
,
GroupListView
.
as_view
()),
url
(
r'^group/list$'
,
GroupListView
.
as_view
()),
url
(
r'group/update$'
,
GroupListView
.
as_view
()),
url
(
r'^group/list/update$'
,
GroupListView
.
as_view
()),
url
(
r'group/detail'
,
GroupUpdateOrCreate
.
as_view
()),
url
(
r'^group/get$'
,
GroupUpdateOrCreate
.
as_view
()),
url
(
r'group/create$'
,
GroupUpdateOrCreate
.
as_view
()),
url
(
r'^group/user/list$'
,
GroupRelatedUser
.
as_view
()),
url
(
r'^group/user/get$'
,
GroupRelatedUserGET
.
as_view
()),
# topic相关
# topic相关
url
(
r'topic/list$'
,
TopicListView
.
as_view
()),
url
(
r'
^
topic/list$'
,
TopicListView
.
as_view
()),
url
(
r'
topic/detail
'
,
TopicUpdateOrCreateView
.
as_view
()),
url
(
r'
^topic/detail$
'
,
TopicUpdateOrCreateView
.
as_view
()),
url
(
r'
topic/creacte
'
,
TopicUpdateOrCreateView
.
as_view
()),
url
(
r'
^topic/create$
'
,
TopicUpdateOrCreateView
.
as_view
()),
url
(
r'
topic/reply/list
'
,
ReplyUpdateOrCreateView
.
as_view
()),
url
(
r'
^topic/reply/list$
'
,
ReplyUpdateOrCreateView
.
as_view
()),
url
(
r'
topic/reply/batch_delete
'
,
ReplyUpdateOrCreateView
.
as_view
()),
url
(
r'
^topic/reply/batch_delete$
'
,
ReplyUpdateOrCreateView
.
as_view
()),
url
(
r'
topic/reply/create
'
,
ReplyCreate
.
as_view
()),
url
(
r'
^topic/reply/create$
'
,
ReplyCreate
.
as_view
()),
# star相关
# star相关
url
(
r'star/list$'
,
StarListView
.
as_view
()),
url
(
r'
^
star/list$'
,
StarListView
.
as_view
()),
url
(
r'
star/create
'
,
StarUpdateOrCreate
.
as_view
()),
url
(
r'
^star/create$
'
,
StarUpdateOrCreate
.
as_view
()),
url
(
r'
star/detail
'
,
StarUpdateOrCreate
.
as_view
()),
url
(
r'
^star/detail$
'
,
StarUpdateOrCreate
.
as_view
()),
url
(
r'star/star_related_group_info'
,
StarRelatedGroup
.
as_view
()),
url
(
r'
^
star/star_related_group_info'
,
StarRelatedGroup
.
as_view
()),
# push相关
# push相关
url
(
r'push/list$'
,
PushListView
.
as_view
()),
url
(
r'push/list$'
,
PushListView
.
as_view
()),
...
...
api/user.py
View file @
89443bb1
...
@@ -3,7 +3,9 @@
...
@@ -3,7 +3,9 @@
# __author__ = "chenwei"
# __author__ = "chenwei"
# Date: 2018/11/15
# Date: 2018/11/15
import
json
from
utils.base
import
APIView
from
utils.base
import
APIView
from
utils.time_utils
import
analysis_time
class
UserListView
(
APIView
):
class
UserListView
(
APIView
):
...
@@ -12,20 +14,56 @@ class UserListView(APIView):
...
@@ -12,20 +14,56 @@ class UserListView(APIView):
limit
=
int
(
request
.
GET
.
get
(
'limit'
,
10
))
limit
=
int
(
request
.
GET
.
get
(
'limit'
,
10
))
filter
=
self
.
handle_filter
(
request
.
GET
.
get
(
'filter'
,
""
))
filter
=
self
.
handle_filter
(
request
.
GET
.
get
(
'filter'
,
""
))
try
:
try
:
data
=
self
.
rpc
[
'venus/
community/user/get'
](
offset
=
page
,
limit
=
limit
,
filters
=
filter
)
.
unwrap
()
data
=
self
.
rpc
[
'venus/
sun/user/list'
](
offset
=
(
page
-
1
)
*
limit
,
limit
=
limit
,
filters
=
filter
)
.
unwrap
()
except
Exception
as
e
:
except
Exception
as
e
:
data
=
{
raise
e
'total'
:
200
,
return
data
'data'
:
[
{
"id"
:
1
,
'username'
:
'alex'
,
'phone'
:
'12345678912'
,
'email'
:
'http://www.baid.com'
,
'group_nums'
:
23
,
'topic_num'
:
12
,
'group_identify'
:
'组长,长老'
,
'user_identify'
:
'普通用户'
,
'is_recommend'
:
1
},
class
UserUpdateOrCreate
(
APIView
):
{
"id"
:
2
,
'username'
:
'ttt'
,
'phone'
:
'12345678912'
,
'email'
:
'http://www.baid.com'
,
'group_nums'
:
23
,
def
get
(
self
,
request
):
'topic_num'
:
12
,
'group_identify'
:
'长老'
,
'user_identify'
:
'马甲用户'
,
'is_recommend'
:
0
},
id
=
request
.
GET
.
get
(
'id'
)
{
"id"
:
3
,
'username'
:
'xcc'
,
'phone'
:
'12345678912'
,
'email'
:
'http://www.baid.com'
,
'group_nums'
:
23
,
try
:
'topic_num'
:
12
,
'group_identify'
:
'精英'
,
'user_identify'
:
'普通用户'
,
'is_recommend'
:
1
},
data
=
self
.
rpc
[
'venus/sun/user/get'
](
id
=
id
)
.
unwrap
()
{
"id"
:
4
,
'username'
:
'aaa'
,
'phone'
:
'12345678912'
,
'email'
:
'http://www.baid.com'
,
'group_nums'
:
23
,
except
Exception
as
e
:
'topic_num'
:
12
,
'group_identify'
:
'高级会有'
,
'user_identify'
:
'马甲用户'
,
'is_recommend'
:
0
},
raise
e
]
return
data
def
post
(
self
,
request
):
id
=
request
.
POST
.
get
(
'id'
,
''
)
show_time
=
analysis_time
(
request
.
POST
.
get
(
'show_time'
,
0
))
data
=
{
'is_recommend'
:
request
.
POST
.
get
(
'is_recommend'
),
'avatar'
:
request
.
POST
.
get
(
'avatar'
),
'nick_name'
:
request
.
POST
.
get
(
'nick_name'
),
'tag_ids'
:
request
.
POST
.
get
(
'tag_ids'
),
'is_puppet'
:
request
.
POST
.
get
(
'is_puppet'
),
'city'
:
request
.
POST
.
get
(
'city'
),
'show_time'
:
show_time
,
'phone'
:
request
.
POST
.
get
(
'phone'
),
'email'
:
request
.
POST
.
get
(
'email'
),
'gender'
:
request
.
POST
.
get
(
'gender'
),
'group_ids'
:
json
.
loads
(
request
.
POST
.
get
(
'group_ids'
)),
}
}
return
data
try
:
\ No newline at end of file
self
.
rpc
[
'venus/sun/user/edit'
](
id
=
id
,
data
=
data
)
.
unwrap
()
except
Exception
as
e
:
raise
e
return
{
'message'
:
'更新成功'
}
class
UserGroupView
(
APIView
):
def
get
(
self
,
request
):
user_id
=
request
.
GET
.
get
(
'id'
)
try
:
data
=
self
.
rpc
[
'venus/sun/user/group/list'
](
user_id
=
user_id
)
.
unwrap
()
except
Exception
as
e
:
raise
e
return
{
'total'
:
1
,
'data'
:
data
}
\ No newline at end of file
vu/src/api/group.js
View file @
89443bb1
...
@@ -10,7 +10,7 @@ export function fetchList(query) {
...
@@ -10,7 +10,7 @@ export function fetchList(query) {
export
function
OffLineOrOnLine
(
data
)
{
export
function
OffLineOrOnLine
(
data
)
{
return
request
({
return
request
({
url
:
'/api/group/update'
,
url
:
'/api/group/
list/
update'
,
method
:
'post'
,
method
:
'post'
,
data
data
})
})
...
@@ -18,8 +18,33 @@ export function OffLineOrOnLine(data) {
...
@@ -18,8 +18,33 @@ export function OffLineOrOnLine(data) {
export
function
GroupDetail
(
id
)
{
export
function
GroupDetail
(
id
)
{
return
request
({
return
request
({
url
:
'/api/group/
detail
'
,
url
:
'/api/group/
get
'
,
method
:
'get'
,
method
:
'get'
,
params
:
{
id
}
params
:
{
id
}
})
})
}
}
export
function
createGroup
(
data
)
{
return
request
({
url
:
'/api/group/create'
,
method
:
'post'
,
data
})
}
export
function
fetchGroupRelateduser
(
query
)
{
return
request
({
url
:
'/api/group/user/list'
,
method
:
'get'
,
params
:
query
})
}
export
function
GroupUserDetail
(
id
)
{
return
request
({
url
:
'/api/group/user/get'
,
method
:
'get'
,
params
:
{
id
}
})
}
vu/src/api/topic.js
View file @
89443bb1
...
@@ -56,3 +56,11 @@ export function DelReply(data) {
...
@@ -56,3 +56,11 @@ export function DelReply(data) {
data
data
})
})
}
}
export
function
ModifyReply
(
data
)
{
return
request
({
url
:
'/api/topic/reply/create'
,
method
:
'post'
,
data
})
}
vu/src/api/user.js
View file @
89443bb1
...
@@ -16,3 +16,28 @@ export function OffLineOrOnLine(data) {
...
@@ -16,3 +16,28 @@ export function OffLineOrOnLine(data) {
data
data
})
})
}
}
export
function
UserDetail
(
id
)
{
return
request
({
url
:
'/api/user/get'
,
method
:
'get'
,
params
:
{
id
}
})
}
export
function
fetchGroupUser
(
query
)
{
return
request
({
url
:
'/api/user/group/list'
,
method
:
'get'
,
params
:
query
})
}
export
function
userCreate
(
data
)
{
return
request
({
url
:
'/api/user/create'
,
method
:
'post'
,
data
,
})
}
vu/src/mock/index.js
View file @
89443bb1
...
@@ -21,7 +21,7 @@ Mock.XHR.prototype.send = function() {
...
@@ -21,7 +21,7 @@ Mock.XHR.prototype.send = function() {
// 登录相关
// 登录相关
Mock
.
mock
(
/
\/
login
\/
login/
,
'post'
,
loginAPI
.
loginByUsername
)
Mock
.
mock
(
/
\/
login
\/
login/
,
'post'
,
loginAPI
.
loginByUsername
)
Mock
.
mock
(
/
\/
login
\/
logout/
,
'post'
,
loginAPI
.
logout
)
Mock
.
mock
(
/
\/
login
\/
logout/
,
'post'
,
loginAPI
.
logout
)
Mock
.
mock
(
/
\/
user
\/
info
\.
*/
,
'get'
,
loginAPI
.
getUserInfo
)
//
Mock.mock(/\/user\/info\.*/, 'get', loginAPI.getUserInfo)
// 文章相关
// 文章相关
Mock
.
mock
(
/
\/
article
\/
list/
,
'get'
,
articleAPI
.
getList
)
Mock
.
mock
(
/
\/
article
\/
list/
,
'get'
,
articleAPI
.
getList
)
...
...
vu/src/views/account/list.vue
View file @
89443bb1
...
@@ -105,7 +105,7 @@ export default {
...
@@ -105,7 +105,7 @@ export default {
this
.
getList
()
this
.
getList
()
},
},
handleFilter
()
{
handleFilter
()
{
this
.
listQuery
.
page
=
0
this
.
listQuery
.
page
=
1
this
.
getList
()
this
.
getList
()
},
},
handleCreate
()
{
handleCreate
()
{
...
...
vu/src/views/group/components/GroupDetail.vue
View file @
89443bb1
...
@@ -3,7 +3,7 @@
...
@@ -3,7 +3,7 @@
<el-form
ref=
"postForm"
:model=
"postForm"
:rules=
"rules"
class=
"form-container"
>
<el-form
ref=
"postForm"
:model=
"postForm"
:rules=
"rules"
class=
"form-container"
>
<sticky
:class-name=
"'sub-navbar '+postForm.status"
>
<sticky
:class-name=
"'sub-navbar '+postForm.status"
>
<el-button
v-loading=
"loading"
style=
"margin-left: 10px;"
type=
"success"
@
click=
"submitForm"
>
发布
<el-button
v-loading=
"loading"
style=
"margin-left: 10px;"
type=
"success"
@
click=
"submitForm"
>
保存
</el-button>
</el-button>
</sticky>
</sticky>
<div
class=
"createPost-main-container"
>
<div
class=
"createPost-main-container"
>
...
@@ -26,42 +26,54 @@
...
@@ -26,42 +26,54 @@
<el-row>
<el-row>
<el-col
:span=
"8"
>
<el-col
:span=
"8"
>
<el-form-item
label-width=
"75px"
label=
"明星称号:"
class=
"postInfo-container-item"
>
<el-form-item
label-width=
"75px"
label=
"明星称号:"
class=
"postInfo-container-item"
>
<el-select
v-model=
"postForm.star_name"
:remote-method=
"getRemoteStarList"
filterable
remote
multiple
value-key=
"id"
<el-select
placeholder=
"搜索明星"
style=
"width: 100%"
>
v-model=
"postForm.star"
<el-option
v-for=
"(item,index) in starListOptions"
:key=
"item+index"
:label=
"item.name"
:value=
"item.id"
/>
:remote-method=
"getRemoteStarList"
filterable
remote
multiple
reserve-keyword
value-key=
"id"
placeholder=
"搜索明星"
style=
"width: 100%"
>
<el-option
v-for=
"(item,index) in starListOptions"
:key=
"item+index"
:label=
"item.name"
:value=
"item.id"
/>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"8"
>
<el-col
:span=
"8"
>
<el-form-item
label-width=
"75px"
label=
"小组组长:"
class=
"postInfo-container-item"
>
<el-form-item
label-width=
"75px"
label=
"小组组长:"
class=
"postInfo-container-item"
>
<el-select
v-model=
"postForm.group_leader"
:remote-method=
"getRemoteUserList"
filterable
remote
multiple
value-key=
"id"
<el-select
v-model=
"postForm.user_id"
:remote-method=
"getRemoteUserList"
filterable
remote
placeholder=
"搜索明星"
style=
"width: 100%"
>
value-key=
"id"
<el-option
v-for=
"(item,index) in starListOptions"
:key=
"item+index"
:label=
"item.name"
:value=
"item.id"
/>
placeholder=
"搜索用户"
style=
"width: 100%"
>
<el-option
v-for=
"(item,index) in userListOptions"
:key=
"item+index"
:label=
"item.name"
:value=
"item.id"
/>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"8"
>
<el-col
:span=
"8"
>
<el-form-item
style=
"margin-bottom: 20px;"
label-width=
"75px"
label=
"组员数量:"
prop=
"user_nums"
>
<el-form-item
style=
"margin-bottom: 20px;"
label-width=
"75px"
label=
"组员数量:"
prop=
"user_nums"
>
<el-input
v-model=
"postForm.user_nums"
type=
"number"
placeholder=
"请输入内容"
style=
"width: 230px;"
readonly
/>
<el-input
v-model=
"postForm.user_nums"
type=
"number"
placeholder=
"请输入内容"
style=
"width: 230px;"
disabled
/>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
</el-row>
</el-row>
<el-row>
<el-row>
<el-col
:span=
"8"
>
<el-col
:span=
"8"
>
<el-form-item
style=
"margin-bottom: 20px;"
label-width=
"75px"
label=
"下线小组:"
>
<el-form-item
style=
"margin-bottom: 20px;"
label-width=
"75px"
label=
"下线小组:"
>
<el-radio-group
v-model=
"postForm.is_online"
>
<el-radio-group
v-model=
"postForm.is_online"
>
<el-radio
:label=
"1"
>
是
</el-radio>
<el-radio
:label=
"1"
>
是
</el-radio>
<el-radio
:label=
"0"
>
否
</el-radio>
<el-radio
:label=
"0"
>
否
</el-radio>
</el-radio-group>
</el-radio-group>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"8"
>
<el-col
:span=
"8"
>
<el-form-item
style=
"margin-bottom: 20px;"
label-width=
"75px"
label=
"推荐小组:"
>
<el-form-item
style=
"margin-bottom: 20px;"
label-width=
"75px"
label=
"推荐小组:"
>
<el-radio-group
v-model=
"postForm.is_recommend"
>
<el-radio-group
v-model=
"postForm.is_recommend"
>
<el-radio
:label=
"1"
>
是
</el-radio>
<el-radio
:label=
"1"
>
是
</el-radio>
<el-radio
:label=
"0"
>
否
</el-radio>
<el-radio
:label=
"0"
>
否
</el-radio>
</el-radio-group>
</el-radio-group>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"8"
>
<el-col
:span=
"8"
>
...
@@ -86,47 +98,50 @@
...
@@ -86,47 +98,50 @@
</div>
</div>
<div
style=
"margin-bottom:50px;"
>
<div
style=
"margin-bottom:50px;"
>
<div
class=
"filter-container"
>
<div
class=
"filter-container"
>
<el-input
:placeholder=
"'添加用户'"
v-model=
"listQuery.filter.value"
style=
"width: 180px;"
<el-select
v-model=
"temp_user_ids"
:remote-method=
"getRemoteUserList"
filterable
remote
class=
"filter-item"
value-key=
"id"
@
keyup
.
enter
.
native=
"appendUser"
/>
placeholder=
"用户"
style=
"width: 220px"
>
<el-option
v-for=
"(item,index) in userListOptions"
:key=
"item+index"
:label=
"item.id + ':' + item.name"
:value=
"item.id"
/>
</el-select>
<el-button
v-waves
class=
"filter-item"
type=
"primary"
icon=
"el-icon-edit"
@
click=
"appendUser"
>
添加
<el-button
v-waves
class=
"filter-item"
type=
"primary"
icon=
"el-icon-edit"
@
click=
"appendUser"
>
添加
</el-button>
</el-button>
<el-button
v-waves
class=
"filter-item"
type=
"primary"
icon=
"el-icon-delete"
@
click=
"delUser"
>
移除
<el-button
v-waves
class=
"filter-item"
type=
"primary"
icon=
"el-icon-delete"
@
click=
"delUser"
>
移除
</el-button>
</el-button>
</div>
</div>
<el-table
:data=
"
list
"
border
fit
highlight-current-row
style=
"width: 100%"
<el-table
:data=
"
data
"
border
fit
highlight-current-row
style=
"width: 100%"
ref=
"multipleTable"
@
selection-change=
"handleSelectionChange"
>
ref=
"multipleTable"
@
selection-change=
"handleSelectionChange"
>
<el-table-column
type=
"selection"
width=
"76"
align=
"center"
></el-table-column>
<el-table-column
type=
"selection"
width=
"76"
align=
"center"
></el-table-column>
<el-table-column
align=
"center"
label=
"用户ID "
>
<el-table-column
align=
"center"
label=
"用户ID "
>
<template
slot-scope=
"scope"
>
<template
slot-scope=
"scope"
>
<router-link
:to=
"'/push/edit/'+scope.row.id"
class=
"link-type"
>
<router-link
:to=
"'/push/edit/'+scope.row.
user_
id"
class=
"link-type"
>
<span>
{{
scope
.
row
.
id
}}
</span>
<span>
{{
scope
.
row
.
user_
id
}}
</span>
</router-link>
</router-link>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
align=
"center"
label=
"用户名"
>
<el-table-column
align=
"center"
label=
"用户名"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
user
name
}}
</span>
<span>
{{
scope
.
row
.
nick_
name
}}
</span>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
align=
"center"
label=
"联系电话"
>
<el-table-column
align=
"center"
label=
"联系电话"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
phone
}}
</span>
<span>
{{
scope
.
row
.
phone
}}
</span>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
align=
"center"
label=
"发布帖子数"
>
<el-table-column
align=
"center"
label=
"发布帖子数"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
topic_nums
}}
</span>
<span>
{{
scope
.
row
.
topic_nums
}}
</span>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
align=
"center"
label=
"用户身份"
>
<el-table-column
align=
"center"
label=
"用户身份"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
user_identi
t
y
}}
</span>
<span>
{{
scope
.
row
.
user_identi
f
y
}}
</span>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
align=
"center"
label=
"组内身份
"
>
<el-table-column
align=
"center"
label=
"组内身份"
v-if=
"isEdit
"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
internal_identit
y
}}
</span>
<span>
{{
scope
.
row
.
group_identif
y
}}
</span>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
...
@@ -151,19 +166,35 @@
...
@@ -151,19 +166,35 @@
import
waves
from
'@/directive/waves'
import
waves
from
'@/directive/waves'
import
Pagination
from
'@/components/Pagination'
import
Pagination
from
'@/components/Pagination'
import
{
validateURL
}
from
'@/utils/validate'
import
{
createGroup
,
GroupDetail
,
fetchGroupRelateduser
,
GroupUserDetail
}
from
'@/api/group'
import
{
fetchList
}
from
'@/api/user'
import
{
starSearch
,
userSearch
}
from
'@/api/remoteSearch'
import
{
starSearch
,
userSearch
}
from
'@/api/remoteSearch'
import
{
isInArray
,
removeByvale
}
from
"@/utils"
;
function
Assembledata
(
target
,
source
)
{
var
region_data
=
[]
console
.
log
(
target
,
source
)
for
(
var
i
=
0
;
i
<
target
.
length
;
i
++
){
if
(
isInArray
(
source
,
target
[
i
][
'name'
])){
region_data
.
push
(
target
[
i
][
'id'
])
removeByvale
(
source
,
target
[
i
][
'name'
]);
}
}
region_data
.
push
(...
source
)
return
region_data
.
join
(
','
)
}
const
defaultForm
=
{
const
defaultForm
=
{
status
:
'draft'
,
status
:
'draft'
,
title
:
''
,
// 文章题目
name
:
''
,
// 小组名称
name
:
''
,
// 文章内容
description
:
''
,
// 小组简介
description
:
''
,
// 文章摘要
display_time
:
undefined
,
// 前台展示时间
id
:
undefined
,
id
:
undefined
,
user_nums
:
0
,
user_nums
:
0
,
group_leader
:
''
,
user_id
:
''
,
star
:
[],
is_online
:
1
,
is_recommend
:
1
,
user_ids
:
[],
}
}
export
default
{
export
default
{
...
@@ -188,39 +219,32 @@
...
@@ -188,39 +219,32 @@
callback
()
callback
()
}
}
}
}
const
validateSourceUri
=
(
rule
,
value
,
callback
)
=>
{
if
(
value
)
{
if
(
validateURL
(
value
))
{
callback
()
}
else
{
this
.
$message
({
message
:
'外链url填写不正确'
,
type
:
'error'
})
callback
(
new
Error
(
'外链url填写不正确'
))
}
}
else
{
callback
()
}
}
return
{
return
{
postForm
:
Object
.
assign
({},
defaultForm
),
postForm
:
Object
.
assign
({},
defaultForm
),
loading
:
false
,
loading
:
false
,
userListOptions
:
[],
rules
:
{
rules
:
{
title
:
[{
validator
:
validateRequire
}],
title
:
[{
validator
:
validateRequire
}],
content
:
[{
validator
:
validateRequire
}],
content
:
[{
validator
:
validateRequire
}],
},
},
tempRoute
:
{},
tempRoute
:
{},
temp_user_ids
:
''
,
user_ids
:
[],
starListOptions
:
[],
starListOptions
:
[],
userListOptions
:
[],
userListOptions
:
[],
// 小组相关
// 小组相关
list
:
null
,
list
:
null
,
total
:
1
,
tableData
:
[],
temp
:{
user_id
:
''
,
user_name
:
''
,
user_ids
:
[],
star_ids
:
[],
},
del_list
:
[],
total
:
0
,
listLoading
:
true
,
listLoading
:
true
,
multipleSelection
:
[],
multipleSelection
:
[],
del_list
:
[],
listQuery
:
{
listQuery
:
{
page
:
0
,
page
:
0
,
limit
:
10
,
limit
:
10
,
...
@@ -235,6 +259,20 @@
...
@@ -235,6 +259,20 @@
contentShortLength
()
{
contentShortLength
()
{
return
this
.
postForm
.
description
.
length
return
this
.
postForm
.
description
.
length
},
},
data
()
{
return
this
.
tableData
.
filter
((
d
)
=>
{
let
is_del
=
false
;
for
(
let
i
=
0
;
i
<
this
.
del_list
.
length
;
i
++
)
{
if
(
d
.
user_id
==
this
.
del_list
[
i
].
user_id
)
{
is_del
=
true
;
break
}
}
if
(
!
is_del
)
{
return
d
}
})
}
},
},
created
()
{
created
()
{
if
(
this
.
isEdit
)
{
if
(
this
.
isEdit
)
{
...
@@ -249,24 +287,61 @@
...
@@ -249,24 +287,61 @@
},
},
methods
:
{
methods
:
{
fetchData
(
id
)
{
fetchData
(
id
)
{
fetchArticle
(
id
).
then
(
response
=>
{
GroupDetail
(
id
).
then
(
response
=>
{
this
.
postForm
=
response
.
data
let
rep
=
response
.
data
.
data
let
temp_star_list
=
[]
this
.
postForm
=
response
.
data
.
data
this
.
temp
.
user_id
=
rep
.
creator
.
id
this
.
postForm
.
user_id
=
this
.
temp
.
user_name
=
rep
.
creator
.
name
// TODO
for
(
let
i
=
0
;
i
<
rep
.
star
.
length
;
i
++
){
temp_star_list
.
push
(
rep
.
star
[
i
][
'name'
])
this
.
temp
.
star_ids
.
push
(
rep
.
star
[
i
])
}
this
.
postForm
.
star
=
temp_star_list
}).
catch
(
err
=>
{
}).
catch
(
err
=>
{
console
.
log
(
err
)
console
.
log
(
err
)
})
})
},
},
submitForm
()
{
submitForm
()
{
this
.
postForm
.
display_time
=
parseInt
(
this
.
display_time
/
1000
)
console
.
log
(
this
.
postForm
)
this
.
$refs
.
postForm
.
validate
(
valid
=>
{
this
.
$refs
.
postForm
.
validate
(
valid
=>
{
if
(
valid
)
{
if
(
valid
)
{
this
.
loading
=
true
this
.
loading
=
true
this
.
$notify
({
if
(
this
.
postForm
.
user_id
===
this
.
temp
.
user_name
){
title
:
'成功'
,
this
.
postForm
.
user_id
=
this
.
temp
.
user_id
message
:
'发布文章成功'
,
}
type
:
'success'
,
let
user_ids
=
[]
duration
:
2000
for
(
let
i
=
0
;
i
<
this
.
tableData
.
length
;
i
++
){
})
user_ids
.
push
(
this
.
tableData
[
i
].
user_id
)
}
if
(
this
.
isEdit
){
this
.
postForm
.
star
=
Assembledata
(
this
.
temp
.
star_ids
,
this
.
postForm
.
star
)
}
this
.
postForm
.
user_ids
=
JSON
.
stringify
(
user_ids
);
createGroup
(
this
.
postForm
).
then
(
response
=>
{
this
.
$notify
({
title
:
'成功'
,
message
:
response
.
data
.
data
.
message
,
type
:
'success'
,
duration
:
2000
})
setTimeout
(()
=>
{
this
.
$router
.
push
(
'/group/list'
)
},
1000
)
}).
catch
(
err
=>
{
this
.
$notify
({
title
:
'失败'
,
message
:
'操作失败'
,
type
:
'danger'
,
duration
:
2000
})
});
this
.
postForm
.
status
=
'published'
this
.
postForm
.
status
=
'published'
this
.
loading
=
false
this
.
loading
=
false
}
else
{
}
else
{
...
@@ -275,13 +350,6 @@
...
@@ -275,13 +350,6 @@
}
}
})
})
},
},
getRemoteUserList
(
query
)
{
userSearch
(
query
).
then
(
response
=>
{
if
(
!
response
.
data
.
items
)
return
this
.
userListOptions
=
response
.
data
.
items
.
map
(
v
=>
v
.
name
)
})
},
// 添加组员相关
// 添加组员相关
handleSelectionChange
(
val
)
{
handleSelectionChange
(
val
)
{
this
.
multipleSelection
=
val
;
this
.
multipleSelection
=
val
;
...
@@ -295,29 +363,52 @@
...
@@ -295,29 +363,52 @@
this
.
getList
()
this
.
getList
()
},
},
appendUser
()
{
appendUser
()
{
if
(
isInArray
(
this
.
user_ids
,
this
.
temp_user_ids
))
{
this
.
$message
({
message
:
'数据添加重复'
,
type
:
'error'
})
return
false
;
}
GroupUserDetail
(
this
.
temp_user_ids
).
then
(
response
=>
{
if
(
!
response
.
data
.
data
)
return
this
.
tableData
.
push
(...
response
.
data
.
data
)
this
.
total
=
this
.
tableData
.
length
})
this
.
user_ids
.
push
(
this
.
temp_user_ids
)
this
.
temp_user_ids
=
''
},
},
delUser
()
{
delUser
()
{
this
.
del_list
.
push
(...
this
.
multipleSelection
)
},
},
getList
()
{
getList
()
{
this
.
listLoading
=
true
this
.
listLoading
=
true
fetchList
(
this
.
listQuery
).
then
(
response
=>
{
let
id
=
this
.
$route
.
params
&&
this
.
$route
.
params
.
id
;
this
.
list
=
[]
this
.
listQuery
.
id
=
this
.
$route
.
params
&&
this
.
$route
.
params
.
id
this
.
total
=
100
fetchGroupRelateduser
(
this
.
list
.
listQuery
).
then
(
response
=>
{
let
rep
=
response
.
data
.
data
.
data
this
.
tableData
=
response
.
data
.
data
.
data
this
.
total
=
response
.
data
.
data
.
total
for
(
let
i
=
0
;
i
<
rep
.
length
;
i
++
){
this
.
user_ids
.
push
(
rep
[
i
].
user_id
)
}
this
.
listLoading
=
false
this
.
listLoading
=
false
})
})
},
},
getRemoteStarList
(
query
){
starSearch
(
query
).
then
(
response
=>
{
// 远程搜索
getRemoteUserList
(
query
)
{
userSearch
(
query
).
then
(
response
=>
{
if
(
!
response
.
data
.
data
.
data
)
return
if
(
!
response
.
data
.
data
.
data
)
return
this
.
sta
rListOptions
=
response
.
data
.
data
.
data
this
.
use
rListOptions
=
response
.
data
.
data
.
data
})
})
},
},
getRemote
UserList
(
query
)
{
getRemote
StarList
(
query
)
{
use
rSearch
(
query
).
then
(
response
=>
{
sta
rSearch
(
query
).
then
(
response
=>
{
if
(
!
response
.
data
.
data
.
data
)
return
if
(
!
response
.
data
.
data
.
data
)
return
this
.
starListOptions
=
response
.
data
.
data
.
data
this
.
starListOptions
=
response
.
data
.
data
.
data
console
.
log
(
response
.
data
.
data
.
data
)
})
})
},
},
}
}
...
...
vu/src/views/group/list.vue
View file @
89443bb1
...
@@ -5,10 +5,17 @@
...
@@ -5,10 +5,17 @@
<el-select
v-model=
"listQuery.filter.key"
:placeholder=
"'搜索字段'"
clearable
class=
"filter-item"
style=
"width: 110px"
>
<el-select
v-model=
"listQuery.filter.key"
:placeholder=
"'搜索字段'"
clearable
class=
"filter-item"
style=
"width: 110px"
>
<el-option
v-for=
"item in SearchTypeOptions"
:key=
"item.key"
:label=
"item.display_name"
:value=
"item.key"
/>
<el-option
v-for=
"item in SearchTypeOptions"
:key=
"item.key"
:label=
"item.display_name"
:value=
"item.key"
/>
</el-select>
</el-select>
<el-select
v-model=
"listQuery.filter.is_online"
:placeholder=
"'是否下线'"
clearable
class=
"filter-item"
style=
"width: 110px"
>
<el-option
v-for=
"item in OnlineTypeOptions"
:key=
"item.key"
:label=
"item.display_name"
:value=
"item.key"
/>
</el-select>
<el-select
v-model=
"listQuery.filter.is_recommend"
:placeholder=
"'是否推荐'"
clearable
class=
"filter-item"
style=
"width: 110px"
>
<el-option
v-for=
"item in recommendTypeOptions"
:key=
"item.key"
:label=
"item.display_name"
:value=
"item.key"
/>
</el-select>
<el-button
v-waves
class=
"filter-item"
type=
"primary"
icon=
"el-icon-search"
@
click=
"handleFilter"
>
搜索
</el-button>
<el-button
v-waves
class=
"filter-item"
type=
"primary"
icon=
"el-icon-search"
@
click=
"handleFilter"
>
搜索
</el-button>
<el-button
class=
"filter-item"
style=
"margin-left: 10px;"
type=
"primary"
icon=
"el-icon-edit"
@
click=
"handleCreate"
>
创建
</el-button>
<el-button
class=
"filter-item"
style=
"margin-left: 10px;"
type=
"primary"
icon=
"el-icon-edit"
@
click=
"handleCreate"
>
创建
</el-button>
<el-button
class=
"filter-item"
style=
"margin-left: 10px;"
type=
"primary"
icon=
"el-icon-edit"
@
click=
"handleOfflineOrOnline('offline')"
>
下线
</el-button>
<el-button
class=
"filter-item"
style=
"margin-left: 10px;"
type=
"primary"
icon=
"el-icon-edit"
@
click=
"handleOfflineOrOnline('offline')"
>
下线
</el-button>
<el-button
class=
"filter-item"
style=
"margin-left: 10px;"
type=
"primary"
icon=
"el-icon-edit"
@
click=
"handleOfflineOrOnline('online')"
>
上线
</el-button>
<el-button
class=
"filter-item"
style=
"margin-left: 10px;"
type=
"primary"
icon=
"el-icon-edit"
@
click=
"handleOfflineOrOnline('online')"
>
上线
</el-button>
<el-button
class=
"filter-item"
style=
"margin-left: 10px;"
type=
"primary"
icon=
"el-icon-edit"
@
click=
"handleOfflineOrOnline('is_recommend')"
>
推荐
</el-button>
</div>
</div>
<el-table
v-loading=
"listLoading"
:data=
"list"
border
fit
highlight-current-row
style=
"width: 100%"
ref=
"multipleTable"
@
selection-change=
"handleSelectionChange"
>
<el-table
v-loading=
"listLoading"
:data=
"list"
border
fit
highlight-current-row
style=
"width: 100%"
ref=
"multipleTable"
@
selection-change=
"handleSelectionChange"
>
<el-table-column
type=
"selection"
align=
"center"
></el-table-column>
<el-table-column
type=
"selection"
align=
"center"
></el-table-column>
...
@@ -28,7 +35,7 @@
...
@@ -28,7 +35,7 @@
<el-table-column
align=
"center"
label=
"小组简介"
>
<el-table-column
align=
"center"
label=
"小组简介"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
desc
}}
</span>
<span>
{{
scope
.
row
.
desc
ription
}}
</span>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
...
@@ -61,13 +68,13 @@
...
@@ -61,13 +68,13 @@
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
align=
"center"
label=
"
下
线"
>
<el-table-column
align=
"center"
label=
"
是否在
线"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<el-tag
:type=
"scope.row.is_online | isOnlineFilter"
>
{{
scope
.
row
.
is_online
==
1
?
'是'
:
'否'
}}
</el-tag>
<el-tag
:type=
"scope.row.is_online | isOnlineFilter"
>
{{
scope
.
row
.
is_online
==
1
?
'是'
:
'否'
}}
</el-tag>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
align=
"center"
label=
"推荐"
>
<el-table-column
align=
"center"
label=
"
是否
推荐"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<el-tag
:type=
"scope.row.is_recommend | isOnlineFilter"
>
{{
scope
.
row
.
is_recommend
==
1
?
'是'
:
'否'
}}
</el-tag>
<el-tag
:type=
"scope.row.is_recommend | isOnlineFilter"
>
{{
scope
.
row
.
is_recommend
==
1
?
'是'
:
'否'
}}
</el-tag>
</
template
>
</
template
>
...
@@ -120,12 +127,22 @@ export default {
...
@@ -120,12 +127,22 @@ export default {
filter
:
{
filter
:
{
value
:
''
,
value
:
''
,
key
:
''
,
key
:
''
,
is_online
:
''
,
is_recommend
:
''
,
},
},
},
},
SearchTypeOptions
:[
SearchTypeOptions
:[
{
'key'
:
'id'
,
'display_name'
:
'小组ID'
},
{
'key'
:
'id'
,
'display_name'
:
'小组ID'
},
{
'key'
:
'content'
,
'display_name'
:
'小组名称'
},
{
'key'
:
'name'
,
'display_name'
:
'小组名称'
},
]
],
OnlineTypeOptions
:
[
{
'key'
:
0
,
'display_name'
:
'否'
},
{
'key'
:
1
,
'display_name'
:
'是'
},
],
recommendTypeOptions
:
[
{
'key'
:
0
,
'display_name'
:
'否'
},
{
'key'
:
1
,
'display_name'
:
'是'
},
],
}
}
},
},
created
()
{
created
()
{
...
@@ -135,6 +152,7 @@ export default {
...
@@ -135,6 +152,7 @@ export default {
getList
()
{
getList
()
{
this
.
listLoading
=
true
this
.
listLoading
=
true
fetchList
(
this
.
listQuery
).
then
(
response
=>
{
fetchList
(
this
.
listQuery
).
then
(
response
=>
{
console
.
log
(
response
.
data
.
data
.
data
)
this
.
list
=
response
.
data
.
data
.
data
this
.
list
=
response
.
data
.
data
.
data
this
.
total
=
response
.
data
.
data
.
total
this
.
total
=
response
.
data
.
data
.
total
this
.
listLoading
=
false
this
.
listLoading
=
false
...
@@ -152,11 +170,11 @@ export default {
...
@@ -152,11 +170,11 @@ export default {
this
.
getList
()
this
.
getList
()
},
},
handleFilter
()
{
handleFilter
()
{
this
.
listQuery
.
page
=
0
this
.
listQuery
.
page
=
1
this
.
getList
()
this
.
getList
()
},
},
handleCreate
()
{
handleCreate
()
{
this
.
$router
.
push
(
'/
push
/create'
)
this
.
$router
.
push
(
'/
group
/create'
)
},
},
handleOfflineOrOnline
(
val
){
handleOfflineOrOnline
(
val
){
const
length
=
this
.
multipleSelection
.
length
;
const
length
=
this
.
multipleSelection
.
length
;
...
@@ -165,14 +183,16 @@ export default {
...
@@ -165,14 +183,16 @@ export default {
for
(
let
i
=
0
;
i
<
length
;
i
++
)
{
for
(
let
i
=
0
;
i
<
length
;
i
++
)
{
if
(
val
===
'offline'
){
if
(
val
===
'offline'
){
this
.
multipleSelection
[
i
].
is_online
=
0
this
.
multipleSelection
[
i
].
is_online
=
0
}
else
{
}
else
if
(
val
==
'is_recommend'
){
this
.
multipleSelection
[
i
].
is_recommend
=
1
}
else
{
this
.
multipleSelection
[
i
].
is_online
=
1
this
.
multipleSelection
[
i
].
is_online
=
1
}
}
str
+=
this
.
multipleSelection
[
i
].
id
+
' '
;
str
+=
this
.
multipleSelection
[
i
].
id
+
' '
;
}
}
OffLineOrOnLine
({
type
:
val
,
ids
:
str
}).
then
(
response
=>
{
OffLineOrOnLine
({
type
:
val
,
ids
:
str
}).
then
(
response
=>
{
this
.
multipleSelection
=
[];
this
.
multipleSelection
=
[];
response
.
data
.
data
.
message
this
.
$message
.
success
(
response
.
data
.
data
.
message
);
this
.
$message
.
success
(
response
.
data
.
data
.
message
);
})
})
},
},
...
...
vu/src/views/pick/components/PickDetail.vue
View file @
89443bb1
...
@@ -53,19 +53,19 @@
...
@@ -53,19 +53,19 @@
<el-col
:span=
"8"
>
<el-col
:span=
"8"
>
<el-form-item
style=
"margin-bottom: 40px;"
label-width=
"45px"
label=
"pickid:"
prop=
"id"
v-if=
"isEdit"
>
<el-form-item
style=
"margin-bottom: 40px;"
label-width=
"45px"
label=
"pickid:"
prop=
"id"
v-if=
"isEdit"
>
<el-input
:rows=
"1"
v-model=
"postForm.id"
type=
"number"
class=
"article-textarea"
<el-input
:rows=
"1"
v-model=
"postForm.id"
type=
"number"
class=
"article-textarea"
style=
"width: 120px"
readonly
/>
style=
"width: 120px"
disabled
/>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"8"
>
<el-col
:span=
"8"
>
<el-form-item
style=
"margin-bottom: 40px;"
label-width=
"75px"
label=
"pick用户:"
prop=
"user_nums"
v-if=
"isEdit"
>
<el-form-item
style=
"margin-bottom: 40px;"
label-width=
"75px"
label=
"pick用户:"
prop=
"user_nums"
v-if=
"isEdit"
>
<el-input
:rows=
"1"
v-model=
"postForm.user_nums"
type=
"number"
class=
"article-textarea"
<el-input
:rows=
"1"
v-model=
"postForm.user_nums"
type=
"number"
class=
"article-textarea"
style=
"width: 120px"
readonly
/>
style=
"width: 120px"
disabled
/>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"8"
>
<el-col
:span=
"8"
>
<el-form-item
style=
"margin-bottom: 40px;"
label-width=
"85px"
label=
"创建时间:"
prop=
"create_time"
v-if=
"isEdit"
>
<el-form-item
style=
"margin-bottom: 40px;"
label-width=
"85px"
label=
"创建时间:"
prop=
"create_time"
v-if=
"isEdit"
>
<el-input
:rows=
"1"
v-model=
"postForm.create_time"
type=
"text"
class=
"article-textarea"
<el-input
:rows=
"1"
v-model=
"postForm.create_time"
type=
"text"
class=
"article-textarea"
style=
"width: 170px"
readonly
/>
style=
"width: 170px"
disabled
/>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
</el-row>
</el-row>
...
...
vu/src/views/push/components/PushDetail.vue
View file @
89443bb1
...
@@ -22,20 +22,20 @@
...
@@ -22,20 +22,20 @@
<el-col
:span=
"8"
>
<el-col
:span=
"8"
>
<el-form-item
style=
"margin-bottom: 40px;"
label-width=
"75px"
label=
"推送ID:"
prop=
"id"
v-if=
"isEdit"
>
<el-form-item
style=
"margin-bottom: 40px;"
label-width=
"75px"
label=
"推送ID:"
prop=
"id"
v-if=
"isEdit"
>
<el-input
:rows=
"1"
v-model=
"postForm.id"
type=
"text"
class=
"article-textarea"
<el-input
:rows=
"1"
v-model=
"postForm.id"
type=
"text"
class=
"article-textarea"
style=
"width: 180px"
readonly
v-if=
"isEdit"
/>
style=
"width: 180px"
disabled
v-if=
"isEdit"
/>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"8"
>
<el-col
:span=
"8"
>
<el-form-item
style=
"margin-bottom: 40px;"
label-width=
"75px"
label=
"创建时间:"
prop=
"create_time"
v-if=
"isEdit"
>
<el-form-item
style=
"margin-bottom: 40px;"
label-width=
"75px"
label=
"创建时间:"
prop=
"create_time"
v-if=
"isEdit"
>
<el-input
:rows=
"1"
v-model=
"postForm.create_time"
type=
"text"
class=
"article-textarea"
<el-input
:rows=
"1"
v-model=
"postForm.create_time"
type=
"text"
class=
"article-textarea"
style=
"width: 199px"
readonly
v-if=
"isEdit"
/>
style=
"width: 199px"
disabled
v-if=
"isEdit"
/>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"8"
>
<el-col
:span=
"8"
>
<el-form-item
style=
"margin-bottom: 40px;"
label-width=
"75px"
label=
"创建用户:"
v-if=
"isEdit"
>
<el-form-item
style=
"margin-bottom: 40px;"
label-width=
"75px"
label=
"创建用户:"
v-if=
"isEdit"
>
<el-input
:rows=
"1"
v-model=
"postForm.user.name"
type=
"text"
class=
"article-textarea"
<el-input
:rows=
"1"
v-model=
"postForm.user.name"
type=
"text"
class=
"article-textarea"
style=
"width: 180px"
readonly
v-if=
"isEdit"
/>
style=
"width: 180px"
disabled
v-if=
"isEdit"
/>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
</el-row>
</el-row>
...
...
vu/src/views/push/list.vue
View file @
89443bb1
...
@@ -107,7 +107,7 @@ export default {
...
@@ -107,7 +107,7 @@ export default {
this
.
getList
()
this
.
getList
()
},
},
handleFilter
()
{
handleFilter
()
{
this
.
listQuery
.
page
=
0
this
.
listQuery
.
page
=
1
this
.
getList
()
this
.
getList
()
},
},
handleCreate
()
{
handleCreate
()
{
...
...
vu/src/views/star/components/StarDetail.vue
View file @
89443bb1
...
@@ -24,13 +24,13 @@
...
@@ -24,13 +24,13 @@
<el-row>
<el-row>
<el-col
:span=
"12"
>
<el-col
:span=
"12"
>
<el-form-item
style=
"margin-bottom: 20px;"
label-width=
"75px"
label=
"明星ID:"
v-if=
"isEdit"
>
<el-form-item
style=
"margin-bottom: 20px;"
label-width=
"75px"
label=
"明星ID:"
v-if=
"isEdit"
>
<el-input
v-model=
"postForm.id"
type=
"text"
style=
"width: 230px;"
readonly
/>
<el-input
v-model=
"postForm.id"
type=
"text"
style=
"width: 230px;"
disabled
/>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"12"
>
<el-col
:span=
"12"
>
<el-form-item
style=
"margin-bottom: 20px;"
label-width=
"75px"
label=
"创建时间:"
v-if=
"isEdit"
>
<el-form-item
style=
"margin-bottom: 20px;"
label-width=
"75px"
label=
"创建时间:"
v-if=
"isEdit"
>
<el-input
v-model=
"postForm.create_time"
type=
"text"
placeholder=
"请输入内容"
style=
"width: 230px;"
<el-input
v-model=
"postForm.create_time"
type=
"text"
placeholder=
"请输入内容"
style=
"width: 230px;"
readonly
/>
disabled
/>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
</el-row>
</el-row>
...
@@ -39,20 +39,20 @@
...
@@ -39,20 +39,20 @@
<el-col
:span=
"12"
>
<el-col
:span=
"12"
>
<el-form-item
style=
"margin-bottom: 20px;"
label-width=
"75px"
label=
"用户数:"
<el-form-item
style=
"margin-bottom: 20px;"
label-width=
"75px"
label=
"用户数:"
v-if=
"isEdit"
>
v-if=
"isEdit"
>
<el-input
v-model=
"postForm.user_nums"
type=
"number"
style=
"width: 220px;"
readonly
/>
<el-input
v-model=
"postForm.user_nums"
type=
"number"
style=
"width: 220px;"
disabled
/>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"12"
>
<el-col
:span=
"12"
>
<el-form-item
style=
"margin-bottom: 20px;"
label-width=
"75px"
label=
"帖子数:"
<el-form-item
style=
"margin-bottom: 20px;"
label-width=
"75px"
label=
"帖子数:"
v-if=
"isEdit"
>
v-if=
"isEdit"
>
<el-input
v-model=
"postForm.topic_nums"
type=
"number"
style=
"width: 220px;"
readonly
/>
<el-input
v-model=
"postForm.topic_nums"
type=
"number"
style=
"width: 220px;"
disabled
/>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
</el-row>
</el-row>
<el-row>
<el-row>
<el-col
:span=
"12"
>
<el-col
:span=
"12"
>
<el-form-item
style=
"margin-bottom: 20px;"
label-width=
"75px"
label=
"小组数:"
v-if=
"isEdit"
>
<el-form-item
style=
"margin-bottom: 20px;"
label-width=
"75px"
label=
"小组数:"
v-if=
"isEdit"
>
<el-input
v-model=
"postForm.group_nums"
type=
"number"
style=
"width: 220px;"
readonly
/>
<el-input
v-model=
"postForm.group_nums"
type=
"number"
style=
"width: 220px;"
disabled
/>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"12"
>
<el-col
:span=
"12"
>
...
@@ -288,6 +288,7 @@
...
@@ -288,6 +288,7 @@
if
(
valid
)
{
if
(
valid
)
{
this
.
loading
=
true
this
.
loading
=
true
this
.
postForm
.
group_ids
=
JSON
.
stringify
(
this
.
group_ids
);
this
.
postForm
.
group_ids
=
JSON
.
stringify
(
this
.
group_ids
);
console
.
log
(
this
.
postForm
.
group_ids
)
// 处理未修改标签
// 处理未修改标签
if
(
this
.
temp_city_name
===
this
.
postForm
.
city
){
if
(
this
.
temp_city_name
===
this
.
postForm
.
city
){
this
.
postForm
.
city
=
this
.
temp_city_id
;
this
.
postForm
.
city
=
this
.
temp_city_id
;
...
@@ -350,7 +351,8 @@
...
@@ -350,7 +351,8 @@
this
.
temp_group_ids
=
''
this
.
temp_group_ids
=
''
},
},
delUser
()
{
delUser
()
{
this
.
postForm
.
group_ids
.
push
(...
this
.
multipleSelection
)
this
.
del_list
.
push
(...
this
.
multipleSelection
)
},
},
handleSelectionChange
(
val
)
{
handleSelectionChange
(
val
)
{
this
.
multipleSelection
=
val
;
this
.
multipleSelection
=
val
;
...
...
vu/src/views/star/list.vue
View file @
89443bb1
...
@@ -60,7 +60,7 @@
...
@@ -60,7 +60,7 @@
</el-table>
</el-table>
<pagination
v-show=
"total>0"
:total=
"total"
:page
=
"listQuery.page"
:limit
=
"listQuery.limit"
style=
"margin-left: 150px;"
@
pagination=
"getList"
/>
<pagination
v-show=
"total>0"
:total=
"total"
:page
.
sync=
"listQuery.page"
:limit
.
sync
=
"listQuery.limit"
style=
"margin-left: 150px;"
@
pagination=
"getList"
/>
</div>
</div>
</template>
</template>
...
@@ -162,7 +162,7 @@ export default {
...
@@ -162,7 +162,7 @@ export default {
})
})
},
},
handleFilter
()
{
handleFilter
()
{
this
.
listQuery
.
page
=
0
this
.
listQuery
.
page
=
1
this
.
getList
()
this
.
getList
()
},
},
handleCreate
()
{
handleCreate
()
{
...
...
vu/src/views/topic/components/TopicDetail.vue
View file @
89443bb1
...
@@ -19,13 +19,13 @@
...
@@ -19,13 +19,13 @@
<el-col
:span=
"12"
>
<el-col
:span=
"12"
>
<el-form-item
label-width=
"75px"
label=
"帖子ID:"
class=
"postInfo-container-item"
v-if=
"isEdit"
>
<el-form-item
label-width=
"75px"
label=
"帖子ID:"
class=
"postInfo-container-item"
v-if=
"isEdit"
>
<el-input
:rows=
"1"
v-model=
"postForm.id"
type=
"number"
class=
"article-textarea"
<el-input
:rows=
"1"
v-model=
"postForm.id"
type=
"number"
class=
"article-textarea"
style=
"width: 230px"
readonly
/>
style=
"width: 230px"
disabled
/>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"12"
>
<el-col
:span=
"12"
>
<el-form-item
label-width=
"75px"
label=
"举报时间:"
class=
"postInfo-container-item"
v-if=
"isEdit"
>
<el-form-item
label-width=
"75px"
label=
"举报时间:"
class=
"postInfo-container-item"
v-if=
"isEdit"
>
<el-input
:rows=
"1"
v-model=
"postForm.reported_time"
type=
"text"
class=
"article-textarea"
<el-input
:rows=
"1"
v-model=
"postForm.reported_time"
type=
"text"
class=
"article-textarea"
style=
"width: 230px"
readonly
/>
style=
"width: 230px"
disabled
/>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
</el-row>
</el-row>
...
@@ -34,13 +34,15 @@
...
@@ -34,13 +34,15 @@
<el-form-item
label-width=
"65px"
label=
"发帖人:"
class=
"postInfo-container-item"
>
<el-form-item
label-width=
"65px"
label=
"发帖人:"
class=
"postInfo-container-item"
>
<el-select
v-model=
"postForm.user_name"
:remote-method=
"getRemoteUserList"
filterable
remote
<el-select
v-model=
"postForm.user_name"
:remote-method=
"getRemoteUserList"
filterable
remote
placeholder=
"搜索用户"
style=
"width: 230px;margin-left: 10px"
>
placeholder=
"搜索用户"
style=
"width: 230px;margin-left: 10px"
>
<el-option
v-for=
"(item,index) in userListOptions"
:key=
"item+index"
:label=
"item.name"
:value=
"item.id"
/>
<el-option
v-for=
"(item,index) in userListOptions"
:key=
"item+index"
:label=
"item.name"
:value=
"item.id"
/>
</el-select>
</el-select>
<el-tag
type=
"danger"
v-if=
"postForm.is_puppet"
>
马甲
</el-tag>
<el-tag
type=
"danger"
v-if=
"postForm.is_puppet"
>
马甲
</el-tag>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"12"
>
<el-col
:span=
"12"
>
<el-form-item
label-width=
"75px"
label=
"发帖时间:"
class=
"postInfo-container-item"
prop=
"posting_time"
>
<el-form-item
label-width=
"75px"
label=
"发帖时间:"
class=
"postInfo-container-item"
prop=
"posting_time"
>
<el-date-picker
<el-date-picker
v-model=
"postForm.posting_time "
v-model=
"postForm.posting_time "
type=
"datetime"
type=
"datetime"
...
@@ -57,7 +59,8 @@
...
@@ -57,7 +59,8 @@
<el-form-item
label-width=
"75px"
label=
"明星名称:"
class=
"postInfo-container-item"
>
<el-form-item
label-width=
"75px"
label=
"明星名称:"
class=
"postInfo-container-item"
>
<el-select
v-model=
"postForm.star_name"
:remote-method=
"getRemoteStarList"
filterable
remote
<el-select
v-model=
"postForm.star_name"
:remote-method=
"getRemoteStarList"
filterable
remote
placeholder=
"搜索明星"
style=
"width: 230px"
>
placeholder=
"搜索明星"
style=
"width: 230px"
>
<el-option
v-for=
"(item,index) in starListOptions"
:key=
"item+index"
:label=
"item.name"
:value=
"item.id"
/>
<el-option
v-for=
"(item,index) in starListOptions"
:key=
"item+index"
:label=
"item.name"
:value=
"item.id"
/>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
...
@@ -66,7 +69,8 @@
...
@@ -66,7 +69,8 @@
<el-form-item
label-width=
"75px"
label=
"小组名称:"
class=
"postInfo-container-item"
>
<el-form-item
label-width=
"75px"
label=
"小组名称:"
class=
"postInfo-container-item"
>
<el-select
v-model=
"postForm.group_name"
:remote-method=
"getRemoteGroupList"
filterable
remote
<el-select
v-model=
"postForm.group_name"
:remote-method=
"getRemoteGroupList"
filterable
remote
placeholder=
"搜索小组"
style=
"width: 230px"
>
placeholder=
"搜索小组"
style=
"width: 230px"
>
<el-option
v-for=
"(item,index) in groupListOptions"
:key=
"item+index"
:label=
"item.name"
:value=
"item.id"
/>
<el-option
v-for=
"(item,index) in groupListOptions"
:key=
"item+index"
:label=
"item.name"
:value=
"item.id"
/>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
...
@@ -84,9 +88,11 @@
...
@@ -84,9 +88,11 @@
<el-col
:span=
"12"
>
<el-col
:span=
"12"
>
<el-form-item
label-width=
"75px"
label=
"标签:"
class=
"postInfo-container-item"
>
<el-form-item
label-width=
"75px"
label=
"标签:"
class=
"postInfo-container-item"
>
<el-select
v-model=
"postForm.tag_ids"
:remote-method=
"getRemoteTagList"
filterable
remote
multiple
value-key=
"id"
<el-select
v-model=
"postForm.tag_ids"
:remote-method=
"getRemoteTagList"
filterable
remote
multiple
value-key=
"id"
placeholder=
"搜索标签"
style=
"width: 230px"
>
placeholder=
"搜索标签"
style=
"width: 230px"
>
<el-option
v-for=
"(item,index) in tagListOptions"
:key=
"item+index"
:label=
"item.name"
:value=
"item.id"
/>
<el-option
v-for=
"(item,index) in tagListOptions"
:key=
"item+index"
:label=
"item.name"
:value=
"item.id"
/>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
...
@@ -169,30 +175,33 @@
...
@@ -169,30 +175,33 @@
</div>
</div>
<div
style=
"margin-bottom:50px;"
>
<div
style=
"margin-bottom:50px;"
>
<div
class=
"filter-container"
>
<div
class=
"filter-container"
>
<el-select
v-model=
"listQuery.filter.replyType"
:placeholder=
"'评论搜索'"
clearable
class=
"filter-item"
style=
"width: 120px"
>
<el-select
v-model=
"listQuery.filter.replyType"
:placeholder=
"'评论搜索'"
clearable
class=
"filter-item"
<el-option
v-for=
"item in ReplyTypeOptions"
:key=
"item.key"
:label=
"item.display_name"
:value=
"item.key"
/>
style=
"width: 120px"
>
<el-option
v-for=
"item in ReplyTypeOptions"
:key=
"item.key"
:label=
"item.display_name"
:value=
"item.key"
/>
</el-select>
</el-select>
<el-button
v-waves
class=
"filter-item"
type=
"primary"
icon=
"el-icon-search"
@
click=
"handleFilter"
>
搜索
</el-button>
<el-button
v-waves
class=
"filter-item"
type=
"primary"
icon=
"el-icon-search"
@
click=
"handleFilter"
>
搜索
<el-button
class=
"filter-item"
type=
"primary"
icon=
"el-icon-edit"
@
click=
"reply"
>
回复
</el-button>
</el-button>
<el-button
class=
"filter-item"
type=
"primary"
icon=
"el-icon-edit"
@
click=
"reply('')"
>
回复话题
</el-button>
<el-button
v-waves
class=
"filter-item"
type=
"primary"
icon=
"el-icon-delete"
@
click=
"delreply"
>
下线
<el-button
v-waves
class=
"filter-item"
type=
"primary"
icon=
"el-icon-delete"
@
click=
"delreply"
>
下线
</el-button>
</el-button>
</div>
</div>
<el-table
:data=
"list"
border
fit
highlight-current-row
style=
"width: 100%"
<el-table
:data=
"list"
border
fit
highlight-current-row
style=
"width: 100%"
ref=
"multipleTable"
@
selection-change=
"handleSelectionChange"
>
ref=
"multipleTable"
@
selection-change=
"handleSelectionChange"
>
<el-table-column
type=
"selection"
align=
"center"
></el-table-column>
<el-table-column
type=
"selection"
align=
"center"
></el-table-column>
<el-table-column
align=
"center"
label=
"
帖子
ID "
>
<el-table-column
align=
"center"
label=
"
回复
ID "
>
<template
slot-scope=
"scope"
>
<template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
id
}}
</span>
<span>
{{
scope
.
row
.
id
}}
</span>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
align=
"center"
label=
"评论用户"
>
<el-table-column
align=
"center"
label=
"评论用户"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
reply_
name
}}
</span>
<span>
{{
scope
.
row
.
reply_
user
.
id
}}
</span>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
align=
"center"
label=
"被评论用户"
>
<el-table-column
align=
"center"
label=
"被评论用户"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
be_reply_name
}}
</span>
<span>
{{
scope
.
row
.
be_reply_
user
.
name
}}
</span>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
align=
"center"
label=
"评论时间"
>
<el-table-column
align=
"center"
label=
"评论时间"
>
...
@@ -205,12 +214,22 @@
...
@@ -205,12 +214,22 @@
<span>
{{
scope
.
row
.
reply_type
}}
</span>
<span>
{{
scope
.
row
.
reply_type
}}
</span>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
align=
"center"
label=
"评论内容"
>
<el-table-column
label=
"评论内容"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
content
}}
</span>
<span
>
{{
scope
.
row
.
content
}}
</span>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
align=
"center"
label=
"操作"
>
<
template
slot-scope=
"scope"
>
<el-button
class=
"filter-item"
type=
"primary"
icon=
"el-icon-edit"
@
click=
"reply(scope.row)"
>
回复
</el-button>
</
template
>
</el-table-column>
</el-table>
</el-table>
<pagination
v-show=
"total>0"
:total=
"total"
:page
.
sync=
"listQuery.page"
:limit
.
sync=
"listQuery.limit"
<pagination
v-show=
"total>0"
:total=
"total"
:page
.
sync=
"listQuery.page"
:limit
.
sync=
"listQuery.limit"
...
@@ -225,15 +244,8 @@
...
@@ -225,15 +244,8 @@
<el-dialog
:visible
.
sync=
"dialogFormVisible"
>
<el-dialog
:visible
.
sync=
"dialogFormVisible"
>
<el-form
ref=
"dataForm"
:rules=
"rules"
:model=
"temp"
label-position=
"left"
label-width=
"70px"
<el-form
ref=
"dataForm"
:rules=
"rules"
:model=
"temp"
label-position=
"left"
label-width=
"70px"
style=
"width: 400px; margin-left:50px;"
>
style=
"width: 400px; margin-left:50px;"
>
<el-form-item
:label=
"'被评论用户'"
prop=
"be_reply_name"
>
<el-form-item
:label=
"'评论用户'"
prop=
"user_name"
>
<el-select
v-model=
"temp.be_reply_name"
:remote-method=
"getRemoteUserList"
filterable
remote
<el-select
v-model=
"temp.user_id"
:remote-method=
"getRemoteUserList"
filterable
remote
value-key=
"id"
placeholder=
"搜索用户"
style=
"width: 100%"
>
<el-option
v-for=
"(item,index) in userListOptions"
:key=
"item+index"
:label=
"item.name"
:value=
"item.id"
/>
</el-select>
</el-form-item>
<el-form-item
:label=
"'评论用户'"
prop=
"reply_name"
>
<el-select
v-model=
"temp.reply_name"
:remote-method=
"getRemoteUserList"
filterable
remote
value-key=
"id"
value-key=
"id"
placeholder=
"搜索用户"
style=
"width: 100%"
>
placeholder=
"搜索用户"
style=
"width: 100%"
>
<el-option
v-for=
"(item,index) in userListOptions"
:key=
"item+index"
:label=
"item.name"
:value=
"item.id"
/>
<el-option
v-for=
"(item,index) in userListOptions"
:key=
"item+index"
:label=
"item.name"
:value=
"item.id"
/>
...
@@ -263,7 +275,7 @@
...
@@ -263,7 +275,7 @@
import
Modal
from
'@/components/Modal'
import
Modal
from
'@/components/Modal'
import
VideoPlayer
from
'@/components/Video'
import
VideoPlayer
from
'@/components/Video'
import
waves
from
'@/directive/waves'
import
waves
from
'@/directive/waves'
import
{
createRemark
,
fetchTopic
,
createTopic
,
fetchReply
,
DelReply
}
from
'@/api/topic'
import
{
createRemark
,
fetchTopic
,
createTopic
,
fetchReply
,
DelReply
,
ModifyReply
}
from
'@/api/topic'
import
{
fetchList
}
from
'@/api/user'
import
{
fetchList
}
from
'@/api/user'
import
{
getToken
}
from
'@/api/qiniu'
import
{
getToken
}
from
'@/api/qiniu'
import
{
postVideo
}
from
'@/api/upload'
import
{
postVideo
}
from
'@/api/upload'
...
@@ -272,8 +284,8 @@
...
@@ -272,8 +284,8 @@
function
Assembledata
(
target
,
source
)
{
function
Assembledata
(
target
,
source
)
{
var
region_data
=
[]
var
region_data
=
[]
for
(
var
i
=
0
;
i
<
target
.
length
;
i
++
)
{
for
(
var
i
=
0
;
i
<
target
.
length
;
i
++
)
{
if
(
isInArray
(
source
,
target
[
i
][
'name'
])){
if
(
isInArray
(
source
,
target
[
i
][
'name'
]))
{
region_data
.
push
(
target
[
i
][
'id'
])
region_data
.
push
(
target
[
i
][
'id'
])
removeByvale
(
source
,
target
[
i
][
'name'
]);
removeByvale
(
source
,
target
[
i
][
'name'
]);
}
}
...
@@ -291,6 +303,7 @@
...
@@ -291,6 +303,7 @@
topic_ids
:
[],
topic_ids
:
[],
content_level
:
''
,
content_level
:
''
,
group_name
:
''
,
group_name
:
''
,
reported_time
:
''
,
user_name
:
''
,
user_name
:
''
,
star_name
:
''
,
star_name
:
''
,
is_puppet
:
''
,
is_puppet
:
''
,
...
@@ -327,7 +340,6 @@
...
@@ -327,7 +340,6 @@
// 搜索相关
// 搜索相关
userListOptions
:
[],
userListOptions
:
[],
groupListOptions
:
[],
groupListOptions
:
[],
tagListOptions
:
[],
starListOptions
:
[],
starListOptions
:
[],
// 表单验证相关
// 表单验证相关
...
@@ -348,12 +360,12 @@
...
@@ -348,12 +360,12 @@
},
},
expireTimeOption
:
{
expireTimeOption
:
{
disabledDate
(
date
){
disabledDate
(
date
)
{
return
date
.
getTime
()
<=
Date
.
now
();
return
date
.
getTime
()
<=
Date
.
now
();
}
}
},
},
temp_data
:{
temp_data
:
{
star_id
:
''
,
star_id
:
''
,
star_name
:
''
,
star_name
:
''
,
group_id
:
''
,
group_id
:
''
,
...
@@ -380,6 +392,7 @@
...
@@ -380,6 +392,7 @@
tagListOptions
:
[],
tagListOptions
:
[],
is_puppet
:
0
,
is_puppet
:
0
,
listQuery
:
{
listQuery
:
{
id
:
''
,
page
:
0
,
page
:
0
,
limit
:
10
,
limit
:
10
,
filter
:
{
filter
:
{
...
@@ -407,9 +420,8 @@
...
@@ -407,9 +420,8 @@
},
},
temp
:
{
temp
:
{
remark
:
''
,
user_id
:
''
,
be_remarked_user
:
''
,
content
:
''
,
remark_user
:
''
,
},
},
dialogFormVisible
:
false
,
dialogFormVisible
:
false
,
dialogStatus
:
''
,
dialogStatus
:
''
,
...
@@ -430,7 +442,7 @@
...
@@ -430,7 +442,7 @@
if
(
this
.
isEdit
)
{
if
(
this
.
isEdit
)
{
const
id
=
this
.
$route
.
params
&&
this
.
$route
.
params
.
id
const
id
=
this
.
$route
.
params
&&
this
.
$route
.
params
.
id
this
.
fetchData
(
id
)
this
.
fetchData
(
id
)
this
.
getList
(
id
)
this
.
getList
()
}
else
{
}
else
{
this
.
postForm
=
Object
.
assign
({},
defaultForm
)
this
.
postForm
=
Object
.
assign
({},
defaultForm
)
getToken
().
then
(
response
=>
{
getToken
().
then
(
response
=>
{
...
@@ -442,6 +454,7 @@
...
@@ -442,6 +454,7 @@
methods
:
{
methods
:
{
fetchData
(
id
)
{
fetchData
(
id
)
{
fetchTopic
(
id
).
then
(
response
=>
{
fetchTopic
(
id
).
then
(
response
=>
{
console
.
log
(
response
.
data
.
data
.
data
)
let
star
=
response
.
data
.
data
.
data
.
star
let
star
=
response
.
data
.
data
.
data
.
star
let
group
=
response
.
data
.
data
.
data
.
group
let
group
=
response
.
data
.
data
.
data
.
group
let
user
=
response
.
data
.
data
.
data
.
user
let
user
=
response
.
data
.
data
.
data
.
user
...
@@ -450,7 +463,7 @@
...
@@ -450,7 +463,7 @@
this
.
postForm
=
response
.
data
.
data
.
data
this
.
postForm
=
response
.
data
.
data
.
data
for
(
let
i
=
0
;
i
<
tags
.
length
;
i
++
)
{
for
(
let
i
=
0
;
i
<
tags
.
length
;
i
++
)
{
temp_tag
.
push
(
tags
[
i
].
name
);
// 把每个标签的名称压入
temp_tag
.
push
(
tags
[
i
].
name
);
// 把每个标签的名称压入
this
.
temp_data
.
tag_ids
.
push
(
tags
[
i
].
id
)
// 每个标签的ID 压入暂存
this
.
temp_data
.
tag_ids
.
push
(
tags
[
i
].
id
)
// 每个标签的ID 压入暂存
}
}
...
@@ -480,12 +493,21 @@
...
@@ -480,12 +493,21 @@
if
(
valid
)
{
if
(
valid
)
{
this
.
loading
=
true
this
.
loading
=
true
if
(
this
.
isEdit
){
if
(
this
.
isEdit
)
{
this
.
postForm
.
tag_ids
=
Assembledata
(
this
.
temp_data
.
tag_ids
,
this
.
postForm
.
tag_ids
)
this
.
postForm
.
tag_ids
=
Assembledata
(
this
.
temp_data
.
tag_ids
,
this
.
postForm
.
tag_ids
)
}
else
{
}
else
{
this
.
postForm
.
tag_ids
=
JSON
.
stringify
(
this
.
postForm
.
tag_ids
)
this
.
postForm
.
tag_ids
=
JSON
.
stringify
(
this
.
postForm
.
tag_ids
)
}
}
if
(
this
.
postForm
.
user_name
===
this
.
temp
.
user_name
){
this
.
postForm
.
user_name
=
this
.
temp
.
user_id
;
}
if
(
this
.
postForm
.
star_name
===
this
.
temp
.
star_name
){
this
.
postForm
.
star_name
=
this
.
temp
.
star_id
;
}
if
(
this
.
postForm
.
group_name
===
this
.
temp
.
group_name
){
this
.
postForm
.
group_name
=
this
.
temp
.
group_id
;
}
// 序列化图片
// 序列化图片
this
.
postForm
.
topic_images
=
JSON
.
stringify
(
this
.
edit
.
hospital_pics
);
this
.
postForm
.
topic_images
=
JSON
.
stringify
(
this
.
edit
.
hospital_pics
);
...
@@ -502,7 +524,7 @@
...
@@ -502,7 +524,7 @@
duration
:
2000
duration
:
2000
})
})
setTimeout
(()
=>
{
setTimeout
(()
=>
{
this
.
$router
.
push
(
'/
topic
/list'
)
this
.
$router
.
push
(
'/
group
/list'
)
},
1000
)
},
1000
)
}).
catch
(
err
=>
{
}).
catch
(
err
=>
{
...
@@ -526,7 +548,6 @@
...
@@ -526,7 +548,6 @@
// 远程数据搜索
// 远程数据搜索
getRemoteUserList
(
query
)
{
getRemoteUserList
(
query
)
{
userSearch
(
query
).
then
(
response
=>
{
userSearch
(
query
).
then
(
response
=>
{
console
.
log
(
response
.
data
.
data
.
data
)
if
(
!
response
.
data
.
data
.
data
)
return
if
(
!
response
.
data
.
data
.
data
)
return
this
.
userListOptions
=
response
.
data
.
data
.
data
this
.
userListOptions
=
response
.
data
.
data
.
data
})
})
...
@@ -550,31 +571,32 @@
...
@@ -550,31 +571,32 @@
})
})
},
},
// reply() {
//
// },
delreply
()
{
delreply
()
{
const
length
=
this
.
multipleSelection
.
length
const
length
=
this
.
multipleSelection
.
length
let
del_list
=
[]
let
del_list
=
[]
for
(
let
i
=
0
;
i
<
length
;
i
++
){
for
(
let
i
=
0
;
i
<
length
;
i
++
)
{
del_list
.
push
(
this
.
multipleSelection
[
i
].
id
)
del_list
.
push
(
this
.
multipleSelection
[
i
].
id
)
}
}
DelReply
({
'reply_ids'
:
JSON
.
stringify
(
del_list
)}).
then
(
response
=>
{
DelReply
({
'reply_ids'
:
JSON
.
stringify
(
del_list
)}).
then
(
response
=>
{
this
.
$message
({
this
.
$message
({
message
:
response
.
data
.
data
.
message
,
message
:
response
.
data
.
data
.
message
,
type
:
'success'
type
:
'success'
})
})
})
setTimeout
(()
=>
{
})
this
.
$router
.
go
(
0
)
setTimeout
(()
=>
{
},
1000
)
this
.
$router
.
go
(
0
)
},
1000
)
},
},
getList
(
id
)
{
getList
()
{
this
.
listLoading
=
true
this
.
listLoading
=
true
this
.
listQuery
.
id
=
id
this
.
listQuery
.
id
=
this
.
$route
.
params
&&
this
.
$route
.
params
.
id
fetchReply
(
this
.
listQuery
).
then
(
response
=>
{
fetchReply
(
this
.
listQuery
).
then
(
response
=>
{
this
.
list
=
response
.
data
.
data
.
data
const
items
=
response
.
data
.
data
.
data
this
.
list
=
items
.
map
(
v
=>
{
this
.
$set
(
v
,
'edit'
,
false
)
v
.
originalcontent
=
v
.
content
return
v
})
this
.
total
=
response
.
data
.
data
.
total
this
.
total
=
response
.
data
.
data
.
total
this
.
listLoading
=
false
this
.
listLoading
=
false
})
})
...
@@ -582,11 +604,9 @@
...
@@ -582,11 +604,9 @@
// 图片上传
// 图片上传
dropzoneS
(
file
)
{
dropzoneS
(
file
)
{
console
.
log
(
file
)
this
.
$message
({
message
:
'Upload success'
,
type
:
'success'
})
this
.
$message
({
message
:
'Upload success'
,
type
:
'success'
})
},
},
dropzoneR
(
file
)
{
dropzoneR
(
file
)
{
console
.
log
(
file
)
this
.
$message
({
message
:
'Delete success'
,
type
:
'success'
})
this
.
$message
({
message
:
'Delete success'
,
type
:
'success'
})
},
},
uploadPics
(
images
)
{
uploadPics
(
images
)
{
...
@@ -606,14 +626,6 @@
...
@@ -606,14 +626,6 @@
handleSelectionChange
(
val
)
{
handleSelectionChange
(
val
)
{
this
.
multipleSelection
=
val
;
this
.
multipleSelection
=
val
;
},
},
handleSizeChange
(
val
)
{
this
.
listQuery
.
limit
=
val
this
.
getList
()
},
handleCurrentChange
(
val
)
{
this
.
listQuery
.
page
=
val
this
.
getList
()
},
// 上传视频
// 上传视频
uploadVideo
(
e
)
{
uploadVideo
(
e
)
{
...
@@ -690,7 +702,6 @@
...
@@ -690,7 +702,6 @@
type
:
'video/mp4'
,
type
:
'video/mp4'
,
src
:
this
.
videoUrl
()
src
:
this
.
videoUrl
()
}]
}]
console
.
log
(
this
.
opts
.
sources
)
},
},
videoUrl
()
{
videoUrl
()
{
return
VIDEO_PREFIX
+
this
.
edit
.
video_url
return
VIDEO_PREFIX
+
this
.
edit
.
video_url
...
@@ -698,19 +709,29 @@
...
@@ -698,19 +709,29 @@
resetTemp
()
{
resetTemp
()
{
this
.
temp
=
{
this
.
temp
=
{
'reply_name'
:
''
,
user_id
:
''
,
'be_reply_name'
:
''
,
content
:
''
,
'content'
:
''
,
}
}
},
},
reply
()
{
reply
(
row
)
{
this
.
resetTemp
()
this
.
resetTemp
()
if
(
row
){
this
.
temp
.
replied_id
=
row
.
id
}
this
.
dialogStatus
=
'create'
this
.
dialogStatus
=
'create'
this
.
dialogFormVisible
=
true
this
.
dialogFormVisible
=
true
this
.
$nextTick
(()
=>
{
this
.
$nextTick
(()
=>
{
this
.
$refs
[
'dataForm'
].
clearValidate
()
this
.
$refs
[
'dataForm'
].
clearValidate
()
})
})
},
},
handleSizeChange
(
val
)
{
this
.
listQuery
.
limit
=
val
this
.
getList
()
},
handleCurrentChange
(
val
)
{
this
.
listQuery
.
page
=
val
this
.
getList
()
},
createData
()
{
createData
()
{
this
.
$refs
[
'dataForm'
].
validate
((
valid
)
=>
{
this
.
$refs
[
'dataForm'
].
validate
((
valid
)
=>
{
if
(
valid
)
{
if
(
valid
)
{
...
@@ -729,16 +750,27 @@
...
@@ -729,16 +750,27 @@
},
},
handleFilter
()
{
handleFilter
()
{
this
.
listQuery
.
page
=
0
this
.
listQuery
.
offset
=
1
this
.
getList
(
this
.
postForm
.
id
);
this
.
getList
();
},
},
}
}
}
}
</
script
>
</
script
>
<
style
rel=
"stylesheet/scss"
lang=
"scss"
scoped
>
<
style
rel=
"stylesheet/scss"
lang=
"scss"
scoped
>
@import
"src/styles/mixin.scss"
;
@import
"src/styles/mixin.scss"
;
.edit-input
{
padding-right
:
100px
;
}
.cancel-btn
{
position
:
absolute
;
right
:
15px
;
top
:
10px
;
}
.up-video
{
.up-video
{
.video-items
{
.video-items
{
float
:
left
;
float
:
left
;
...
...
vu/src/views/topic/list.vue
View file @
89443bb1
...
@@ -8,12 +8,12 @@
...
@@ -8,12 +8,12 @@
<el-select
v-model=
"listQuery.filter.is_online"
:placeholder=
"'上线'"
clearable
class=
"filter-item"
style=
"width: 100px"
>
<el-select
v-model=
"listQuery.filter.is_online"
:placeholder=
"'上线'"
clearable
class=
"filter-item"
style=
"width: 100px"
>
<el-option
v-for=
"item in BooleanTypeOptions"
:key=
"item.key"
:label=
"item.display_name"
:value=
"item.key"
/>
<el-option
v-for=
"item in BooleanTypeOptions"
:key=
"item.key"
:label=
"item.display_name"
:value=
"item.key"
/>
</el-select>
</el-select>
<el-select
v-model=
"listQuery.filter.
is_reported
"
:placeholder=
"'举报'"
clearable
class=
"filter-item"
style=
"width: 100px"
>
<el-select
v-model=
"listQuery.filter.
complaints__isnull
"
:placeholder=
"'举报'"
clearable
class=
"filter-item"
style=
"width: 100px"
>
<el-option
v-for=
"item in ReBooleanTypeOptions"
:key=
"item.key"
:label=
"item.display_name"
:value=
"item.key"
/>
<el-option
v-for=
"item in ReBooleanTypeOptions"
:key=
"item.key"
:label=
"item.display_name"
:value=
"item.key"
/>
</el-select>
</el-select>
<el-select
v-model=
"listQuery.filter.is_puppet"
:placeholder=
"'马甲'"
clearable
class=
"filter-item"
style=
"width: 100px"
>
<el-select
v-model=
"listQuery.filter.is_puppet"
:placeholder=
"'马甲'"
clearable
class=
"filter-item"
style=
"width: 100px"
>
<el-option
v-for=
"item in
Re
BooleanTypeOptions"
:key=
"item.key"
:label=
"item.display_name"
:value=
"item.key"
/>
<el-option
v-for=
"item in BooleanTypeOptions"
:key=
"item.key"
:label=
"item.display_name"
:value=
"item.key"
/>
</el-select>
</el-select>
<el-select
v-model=
"listQuery.filter.content_level"
:placeholder=
"'帖子星级'"
clearable
class=
"filter-item"
style=
"width: 100px"
>
<el-select
v-model=
"listQuery.filter.content_level"
:placeholder=
"'帖子星级'"
clearable
class=
"filter-item"
style=
"width: 100px"
>
...
@@ -23,7 +23,6 @@
...
@@ -23,7 +23,6 @@
<el-button
class=
"filter-item"
style=
"margin-left: 10px;"
type=
"primary"
icon=
"el-icon-edit"
@
click=
"handleCreate"
>
创建
</el-button>
<el-button
class=
"filter-item"
style=
"margin-left: 10px;"
type=
"primary"
icon=
"el-icon-edit"
@
click=
"handleCreate"
>
创建
</el-button>
<el-button
class=
"filter-item"
style=
"margin-left: 10px;"
type=
"primary"
icon=
"el-icon-edit"
@
click=
"handleOfflineOrOnline('offline')"
>
下线
</el-button>
<el-button
class=
"filter-item"
style=
"margin-left: 10px;"
type=
"primary"
icon=
"el-icon-edit"
@
click=
"handleOfflineOrOnline('offline')"
>
下线
</el-button>
<el-button
class=
"filter-item"
style=
"margin-left: 10px;"
type=
"primary"
icon=
"el-icon-edit"
@
click=
"handleOfflineOrOnline('online')"
>
上线
</el-button>
<el-button
class=
"filter-item"
style=
"margin-left: 10px;"
type=
"primary"
icon=
"el-icon-edit"
@
click=
"handleOfflineOrOnline('online')"
>
上线
</el-button>
<el-button
class=
"filter-item"
style=
"margin-left: 10px;"
type=
"primary"
icon=
"el-icon-edit"
@
click=
"handleOfflineOrOnline('is_reported')"
>
推荐
</el-button>
</div>
</div>
<el-table
v-loading=
"listLoading"
:data=
"list"
border
fit
highlight-current-row
style=
"width: 100%"
ref=
"multipleTable"
@
selection-change=
"handleSelectionChange"
>
<el-table
v-loading=
"listLoading"
:data=
"list"
border
fit
highlight-current-row
style=
"width: 100%"
ref=
"multipleTable"
@
selection-change=
"handleSelectionChange"
>
<el-table-column
type=
"selection"
align=
"center"
></el-table-column>
<el-table-column
type=
"selection"
align=
"center"
></el-table-column>
...
@@ -80,18 +79,13 @@
...
@@ -80,18 +79,13 @@
<el-table-column
align=
"center"
label=
"下线"
>
<el-table-column
align=
"center"
label=
"下线"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<el-tag
:type=
"scope.row.is_online | isOnlineFilter"
>
{{
scope
.
row
.
is_online
==
1
?
'是'
:
'否'
}}
</el-tag>
<el-tag
:type=
"scope.row.is_online | isOnlineFilter"
>
{{
scope
.
row
.
is_online
===
1
?
'是'
:
'否'
}}
</el-tag>
</
template
>
</el-table-column>
<el-table-column
align=
"center"
label=
"推荐"
>
<
template
slot-scope=
"scope"
>
<el-tag
:type=
"scope.row.is_reported | isOnlineFilter"
>
{{
scope
.
row
.
is_reported
==
1
?
'是'
:
'否'
}}
</el-tag>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
</el-table>
</el-table>
<pagination
v-show=
"total>0"
:total=
"total"
:page
=
"listQuery.page"
:limit
=
"listQuery.limit"
style=
"margin-left: 150px;"
@
pagination=
"getList"
/>
<pagination
v-show=
"total>0"
:total=
"total"
:page
.
sync=
"listQuery.page"
:limit
.
sync
=
"listQuery.limit"
style=
"margin-left: 150px;"
@
pagination=
"getList"
/>
</div>
</div>
</template>
</template>
...
@@ -146,8 +140,8 @@ export default {
...
@@ -146,8 +140,8 @@ export default {
{
'key'
:
0
,
'display_name'
:
'否'
}
{
'key'
:
0
,
'display_name'
:
'否'
}
],
],
ReBooleanTypeOptions
:
[
ReBooleanTypeOptions
:
[
{
'key'
:
1
,
'display_name'
:
'是'
},
{
'key'
:
0
,
'display_name'
:
'是'
},
{
'key'
:
0
,
'display_name'
:
'否'
}
{
'key'
:
1
,
'display_name'
:
'否'
}
],
],
SearchTypeOptions
:[
SearchTypeOptions
:[
{
'key'
:
'id'
,
'display_name'
:
'帖子ID'
},
{
'key'
:
'id'
,
'display_name'
:
'帖子ID'
},
...
@@ -193,8 +187,6 @@ export default {
...
@@ -193,8 +187,6 @@ export default {
for
(
let
i
=
0
;
i
<
length
;
i
++
)
{
for
(
let
i
=
0
;
i
<
length
;
i
++
)
{
if
(
val
===
'offline'
){
if
(
val
===
'offline'
){
this
.
multipleSelection
[
i
].
is_online
=
0
this
.
multipleSelection
[
i
].
is_online
=
0
}
else
if
(
val
===
'is_reported'
){
this
.
multipleSelection
[
i
].
is_reported
=
0
}
else
{
}
else
{
this
.
multipleSelection
[
i
].
is_online
=
1
this
.
multipleSelection
[
i
].
is_online
=
1
}
}
...
@@ -207,11 +199,11 @@ export default {
...
@@ -207,11 +199,11 @@ export default {
})
})
},
},
handleFilter
()
{
handleFilter
()
{
this
.
listQuery
.
page
=
0
this
.
listQuery
.
page
=
1
this
.
getList
()
this
.
getList
()
},
},
handleCreate
()
{
handleCreate
()
{
this
.
$router
.
push
(
'/
pick
/create'
)
this
.
$router
.
push
(
'/
topic
/create'
)
}
}
}
}
}
}
...
...
vu/src/views/user/components/UserDetail.vue
View file @
89443bb1
...
@@ -20,39 +20,39 @@
...
@@ -20,39 +20,39 @@
<el-row>
<el-row>
<el-col
:span=
"12"
>
<el-col
:span=
"12"
>
<el-form-item
style=
"margin-bottom: 20px;"
label-width=
"75px"
label=
"ID:"
v-if=
"isEdit"
>
<el-form-item
style=
"margin-bottom: 20px;"
label-width=
"75px"
label=
"ID:"
v-if=
"isEdit"
>
<el-input
v-model=
"postForm.
id"
type=
"text"
style=
"width: 230px;"
readonly
/>
<el-input
v-model=
"postForm.
user_id"
type=
"text"
style=
"width: 230px;"
disabled
/>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"12"
>
<el-col
:span=
"12"
>
<el-form-item
style=
"margin-bottom: 20px;"
label-width=
"75px"
label=
"注册时间:"
v-if=
"isEdit"
>
<el-form-item
style=
"margin-bottom: 20px;"
label-width=
"75px"
label=
"注册时间:"
v-if=
"isEdit"
>
<el-input
v-model=
"postForm.create_time"
type=
"text"
style=
"width: 230px;"
<el-input
v-model=
"postForm.create_time"
type=
"text"
style=
"width: 230px;"
readonly
/>
disabled
/>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
</el-row>
</el-row>
<el-row>
<el-row>
<el-col
:span=
"12"
>
<el-col
:span=
"12"
>
<el-form-item
style=
"margin-bottom: 20px;"
label-width=
"75px"
label=
"密码:"
v-if=
"isEdit"
>
<el-form-item
style=
"margin-bottom: 20px;"
label-width=
"75px"
label=
"密码:"
v-if=
"isEdit"
>
<el-input
v-model=
"postForm.password"
type=
"text"
style=
"width: 230px;"
readonly
/>
<el-input
v-model=
"postForm.password"
type=
"text"
style=
"width: 230px;"
disabled
/>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"12"
>
<el-col
:span=
"12"
>
<el-form-item
style=
"margin-bottom: 20px;"
label-width=
"75px"
label=
"帖子:"
v-if=
"isEdit"
>
<el-form-item
style=
"margin-bottom: 20px;"
label-width=
"75px"
label=
"帖子:"
v-if=
"isEdit"
>
<el-input
v-model=
"postForm.topic_nums"
type=
"text"
style=
"width: 230px;"
<el-input
v-model=
"postForm.topic_nums"
type=
"text"
style=
"width: 230px;"
readonly
/>
disabled
/>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
</el-row>
</el-row>
<el-row>
<el-row>
<el-col
:span=
"12"
>
<el-col
:span=
"12"
>
<el-form-item
style=
"margin-bottom: 20px;"
label-width=
"75px"
label=
"用户名:"
prop=
"username"
>
<el-form-item
style=
"margin-bottom: 20px;"
label-width=
"75px"
label=
"用户名:"
prop=
"username"
>
<el-input
v-model=
"postForm.
user
name"
type=
"text"
style=
"width: 230px"
/>
<el-input
v-model=
"postForm.
nick_
name"
type=
"text"
style=
"width: 230px"
/>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"12"
>
<el-col
:span=
"12"
>
<el-form-item
label-width=
"75px"
label=
"展示时间:"
class=
"postInfo-container-item"
>
<el-form-item
label-width=
"75px"
label=
"展示时间:"
class=
"postInfo-container-item"
>
<el-date-picker
v-model=
"postForm.show_time "
type=
"datetime"
format=
"yyyy-MM-dd HH:mm:ss"
<el-date-picker
v-model=
"postForm.show_time "
type=
"datetime"
format=
"yyyy-MM-dd HH:mm:ss"
placeholder=
"选择日期时间"
style=
"width: 230px"
/>
placeholder=
"选择日期时间"
:picker-options=
"expireTimeOption"
style=
"width: 230px"
/>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
</el-row>
</el-row>
...
@@ -81,8 +81,8 @@
...
@@ -81,8 +81,8 @@
</el-col>
</el-col>
<el-col
:span=
"12"
>
<el-col
:span=
"12"
>
<el-form-item
label-width=
"75px"
label=
"地区:"
>
<el-form-item
label-width=
"75px"
label=
"地区:"
>
<el-select
v-model=
"postForm.
region"
:remote-method=
"getRemoteGroup
List"
filterable
remote
<el-select
v-model=
"postForm.
city"
:remote-method=
"getRemoteCity
List"
filterable
remote
multiple
value-key=
"id"
value-key=
"id"
placeholder=
"搜索地区"
style=
"width: 230px"
>
placeholder=
"搜索地区"
style=
"width: 230px"
>
<el-option
v-for=
"(item,index) in regionListOptions"
:key=
"item+index"
:label=
"item.name"
<el-option
v-for=
"(item,index) in regionListOptions"
:key=
"item+index"
:label=
"item.name"
:value=
"item.id"
/>
:value=
"item.id"
/>
...
@@ -93,7 +93,7 @@
...
@@ -93,7 +93,7 @@
<el-row>
<el-row>
<el-col
:span=
"24"
>
<el-col
:span=
"24"
>
<el-form-item
label-width=
"75px"
label=
"标签:"
>
<el-form-item
label-width=
"75px"
label=
"标签:"
>
<el-select
v-model=
"postForm.
region
"
:remote-method=
"getRemoteTagList"
filterable
remote
<el-select
v-model=
"postForm.
tag_ids
"
:remote-method=
"getRemoteTagList"
filterable
remote
multiple
value-key=
"id"
multiple
value-key=
"id"
placeholder=
"搜索地区"
style=
"width: 720px"
>
placeholder=
"搜索地区"
style=
"width: 720px"
>
<el-option
v-for=
"(item,index) in tagListOptions"
:key=
"item+index"
:label=
"item.name"
<el-option
v-for=
"(item,index) in tagListOptions"
:key=
"item+index"
:label=
"item.name"
...
@@ -105,7 +105,7 @@
...
@@ -105,7 +105,7 @@
<el-row>
<el-row>
<el-col
:span=
"12"
>
<el-col
:span=
"12"
>
<el-form-item
style=
"margin-bottom: 20px;margin-left: 10px"
label-width=
"75px"
label=
"马甲号:"
>
<el-form-item
style=
"margin-bottom: 20px;margin-left: 10px"
label-width=
"75px"
label=
"马甲号:"
>
<el-radio-group
v-model=
"postForm.is_
online
"
>
<el-radio-group
v-model=
"postForm.is_
puppet
"
>
<el-radio
:label=
"1"
>
是
</el-radio>
<el-radio
:label=
"1"
>
是
</el-radio>
<el-radio
:label=
"0"
>
否
</el-radio>
<el-radio
:label=
"0"
>
否
</el-radio>
</el-radio-group>
</el-radio-group>
...
@@ -139,9 +139,11 @@
...
@@ -139,9 +139,11 @@
</div>
</div>
<div
style=
"margin-bottom:50px;"
>
<div
style=
"margin-bottom:50px;"
>
<div
class=
"filter-container"
>
<div
class=
"filter-container"
>
<el-input
:placeholder=
"'添加小组'"
v-model=
"listQuery.filter.value"
style=
"width: 180px;"
<el-select
v-model=
"temp_group_ids"
:remote-method=
"getRemoteGroupList"
filterable
remote
class=
"filter-item"
value-key=
"id"
@
keyup
.
enter
.
native=
"appendGroup"
/>
placeholder=
"小组"
style=
"width: 220px"
>
<el-option
v-for=
"(item,index) in groupListOptions"
:key=
"item+index"
:label=
"item.id + ':' + item.name"
:value=
"item.id"
/>
</el-select>
<el-button
v-waves
class=
"filter-item"
type=
"primary"
icon=
"el-icon-edit"
@
click=
"appendGroup"
>
添加
<el-button
v-waves
class=
"filter-item"
type=
"primary"
icon=
"el-icon-edit"
@
click=
"appendGroup"
>
添加
</el-button>
</el-button>
</div>
</div>
...
@@ -159,12 +161,12 @@
...
@@ -159,12 +161,12 @@
</el-table-column>
</el-table-column>
<el-table-column
align=
"center"
label=
"小组简介"
>
<el-table-column
align=
"center"
label=
"小组简介"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
description
}}
</span>
<span>
{{
scope
.
row
.
description
}}
</span>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
align=
"center"
label=
"组长"
>
<el-table-column
align=
"center"
label=
"组长"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
creator
}}
</span>
<span>
{{
scope
.
row
.
creator
.
name
}}
</span>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
align=
"center"
label=
"帖子数"
>
<el-table-column
align=
"center"
label=
"帖子数"
>
...
@@ -174,7 +176,7 @@
...
@@ -174,7 +176,7 @@
</el-table-column>
</el-table-column>
<el-table-column
align=
"center"
label=
"组内身份"
>
<el-table-column
align=
"center"
label=
"组内身份"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
user_identit
y
}}
</span>
<span>
{{
scope
.
row
.
group_identif
y
}}
</span>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
...
@@ -198,27 +200,40 @@
...
@@ -198,27 +200,40 @@
import
waves
from
'@/directive/waves'
import
waves
from
'@/directive/waves'
import
Pagination
from
'@/components/Pagination'
import
Pagination
from
'@/components/Pagination'
import
{
validateURL
}
from
'@/utils/validate'
import
{
validateURL
}
from
'@/utils/validate'
import
{
fetchArticle
,
getList
}
from
'@/api/article'
import
{
UserDetail
,
fetchGroupUser
,
userCreate
}
from
'@/api/user'
import
{
regionSearch
,
tagSearch
}
from
'@/api/remoteSearch'
import
{
GroupDetail
}
from
'@/api/group'
import
{
regionSearch
,
tagSearch
,
groupSearch
,
citySearch
}
from
'@/api/remoteSearch'
import
{
isInArray
,
removeByvale
}
from
"@/utils"
;
function
Assembledata
(
target
,
source
)
{
var
region_data
=
[]
for
(
var
i
=
0
;
i
<
target
.
length
;
i
++
){
if
(
isInArray
(
source
,
target
[
i
][
'name'
])){
region_data
.
push
(
target
[
i
][
'id'
])
removeByvale
(
source
,
target
[
i
][
'name'
]);
}
}
region_data
.
push
(...
source
)
return
region_data
.
join
(
','
)
}
const
defaultForm
=
{
const
defaultForm
=
{
status
:
'draft'
,
status
:
'draft'
,
title
:
''
,
// 文章题目
content
:
''
,
// 文章内容
source_uri
:
''
,
// 文章外链
image_uri
:
''
,
// 文章图片
display_time
:
undefined
,
// 前台展示时间
id
:
undefined
,
platforms
:
[
'a-platform'
],
comment_disabled
:
false
,
importance
:
0
,
uploadType
:
''
,
uploadType
:
''
,
is_recommend
:
1
,
is_recommend
:
1
,
is_online
:
1
,
user_id
:
''
,
create_time
:
''
,
topic_nums
:
0
,
password
:
''
,
avatar
:
''
,
nick_name
:
''
,
tag_ids
:
[],
is_puppet
:
1
,
city
:
''
,
}
}
export
default
{
export
default
{
name
:
'
Group
Detail'
,
name
:
'
User
Detail'
,
components
:
{
Tinymce
,
MDinput
,
Upload
,
Sticky
,
Pagination
},
components
:
{
Tinymce
,
MDinput
,
Upload
,
Sticky
,
Pagination
},
directives
:
{
waves
},
directives
:
{
waves
},
props
:
{
props
:
{
...
@@ -257,20 +272,24 @@
...
@@ -257,20 +272,24 @@
return
{
return
{
postForm
:
Object
.
assign
({},
defaultForm
),
postForm
:
Object
.
assign
({},
defaultForm
),
loading
:
false
,
loading
:
false
,
userListOptions
:
[],
group_ids
:
[],
groupListOptions
:
[],
rules
:
{
rules
:
{
image_uri
:
[{
validator
:
validateRequire
}],
image_uri
:
[{
validator
:
validateRequire
}],
title
:
[{
validator
:
validateRequire
}],
title
:
[{
validator
:
validateRequire
}],
content
:
[{
validator
:
validateRequire
}],
content
:
[{
validator
:
validateRequire
}],
source_uri
:
[{
validator
:
validateSourceUri
,
trigger
:
'blur'
}]
source_uri
:
[{
validator
:
validateSourceUri
,
trigger
:
'blur'
}]
},
},
expireTimeOption
:
{
disabledDate
(
date
){
return
date
.
getTime
()
<=
Date
.
now
();
}
},
tempRoute
:
{},
tempRoute
:
{},
listQuery
:
{
listQuery
:
{
page
:
0
,
page
:
1
,
limit
:
10
,
limit
:
10
,
filter
:
{
filter
:
{
value
:
''
,
key
:
''
,
},
},
},
},
GenderTypeOptions
:
[
GenderTypeOptions
:
[
...
@@ -279,12 +298,18 @@
...
@@ -279,12 +298,18 @@
],
],
regionListOptions
:
[],
regionListOptions
:
[],
tagListOptions
:
[],
tagListOptions
:
[],
temp_group_ids
:
''
,
uploadType
:
99
,
uploadType
:
99
,
list
:
null
,
list
:
[]
,
total
:
1
,
total
:
0
,
listLoading
:
true
,
listLoading
:
true
,
multipleSelection
:
[],
multipleSelection
:
[],
del_list
:
[],
del_list
:
[],
temp
:
{
tags
:[],
city_temp
:
''
,
group_ids
:
[]
}
}
}
},
},
computed
:
{
computed
:
{
...
@@ -300,43 +325,59 @@
...
@@ -300,43 +325,59 @@
}
else
{
}
else
{
this
.
postForm
=
Object
.
assign
({},
defaultForm
)
this
.
postForm
=
Object
.
assign
({},
defaultForm
)
}
}
// Why need to make a copy of this.$route here?
// Because if you enter this page and quickly switch tag, may be in the execution of the setTagsViewTitle function, this.$route is no longer pointing to the current page
// https://github.com/PanJiaChen/vue-element-admin/issues/1221
this
.
tempRoute
=
Object
.
assign
({},
this
.
$route
)
this
.
tempRoute
=
Object
.
assign
({},
this
.
$route
)
},
},
methods
:
{
methods
:
{
fetchData
(
id
)
{
fetchData
(
id
)
{
fetchArticle
(
id
).
then
(
response
=>
{
UserDetail
(
id
).
then
(
response
=>
{
this
.
postForm
=
response
.
data
let
rep
=
response
.
data
.
data
// Just for test
let
temp_tags
=
[]
this
.
postForm
.
title
+=
` Article Id:
${
this
.
postForm
.
id
}
`
this
.
postForm
=
response
.
data
.
data
this
.
postForm
.
content_short
+=
` Article Id:
${
this
.
postForm
.
id
}
`
console
.
log
(
rep
.
tag_list
.
length
)
for
(
let
i
=
0
;
i
<
rep
.
tag_list
.
length
;
i
++
){
temp_tags
.
push
(
rep
.
tag_list
[
i
].
name
)
this
.
temp
.
tags
.
push
(
rep
.
tag_list
[
i
])
}
this
.
postForm
.
tag_ids
=
temp_tags
// Set tagsview title
this
.
setTagsViewTitle
()
}).
catch
(
err
=>
{
}).
catch
(
err
=>
{
console
.
log
(
err
)
console
.
log
(
err
)
})
})
},
},
setTagsViewTitle
()
{
const
title
=
this
.
lang
===
'zh'
?
'编辑文章'
:
'Edit Article'
const
route
=
Object
.
assign
({},
this
.
tempRoute
,
{
title
:
`
${
title
}
-
${
this
.
postForm
.
id
}
`
})
this
.
$store
.
dispatch
(
'updateVisitedView'
,
route
)
},
submitForm
()
{
submitForm
()
{
this
.
postForm
.
display_time
=
parseInt
(
this
.
display_time
/
1000
)
console
.
log
(
this
.
postForm
)
this
.
$refs
.
postForm
.
validate
(
valid
=>
{
this
.
$refs
.
postForm
.
validate
(
valid
=>
{
if
(
valid
)
{
if
(
valid
)
{
this
.
loading
=
true
this
.
loading
=
true
this
.
$notify
({
this
.
postForm
.
group_ids
=
JSON
.
stringify
(
this
.
temp
.
group_ids
)
title
:
'成功'
,
message
:
'发布文章成功'
,
if
(
this
.
isEdit
){
type
:
'success'
,
this
.
postForm
.
tag_ids
=
Assembledata
(
this
.
temp
.
tags
,
this
.
postForm
.
tag_ids
)
duration
:
2000
}
else
{
})
this
.
postForm
.
tag_ids
=
this
.
postForm
.
tag_ids
.
join
(
','
)
}
userCreate
(
this
.
postForm
).
then
(
response
=>
{
this
.
$notify
({
title
:
'成功'
,
message
:
response
.
data
.
data
.
message
,
type
:
'success'
,
duration
:
2000
})
setTimeout
(()
=>
{
this
.
$router
.
push
(
'/user/list'
)
},
1000
)
}).
catch
(
err
=>
{
this
.
$notify
({
title
:
'失败'
,
message
:
'操作失败'
,
type
:
'danger'
,
duration
:
2000
})
});
this
.
postForm
.
status
=
'published'
this
.
postForm
.
status
=
'published'
this
.
loading
=
false
this
.
loading
=
false
}
else
{
}
else
{
...
@@ -345,35 +386,34 @@
...
@@ -345,35 +386,34 @@
}
}
})
})
},
},
draftForm
()
{
appendGroup
()
{
if
(
this
.
postForm
.
content
.
length
===
0
||
this
.
postForm
.
title
.
length
===
0
)
{
if
(
isInArray
(
this
.
group_ids
,
this
.
temp_group_ids
))
{
this
.
$message
({
this
.
$message
({
message
:
'
请填写必要的标题和内容
'
,
message
:
'
数据添加重复
'
,
type
:
'
warning
'
type
:
'
error
'
})
})
return
return
false
;
}
}
this
.
$message
({
GroupDetail
(
this
.
temp_group_ids
).
then
(
response
=>
{
message
:
'保存成功'
,
if
(
!
response
.
data
.
data
)
return
type
:
'success'
,
console
.
log
(
response
.
data
.
data
)
showClose
:
true
,
console
.
log
(
this
.
list
)
duration
:
1000
this
.
list
.
push
(
response
.
data
.
data
)
this
.
total
=
this
.
list
.
length
})
})
this
.
postForm
.
status
=
'draft'
this
.
temp
.
group_ids
.
push
(
this
.
temp_group_ids
)
this
.
temp_group_ids
=
''
},
},
getRemote
User
List
(
query
)
{
getRemote
Group
List
(
query
)
{
user
Search
(
query
).
then
(
response
=>
{
group
Search
(
query
).
then
(
response
=>
{
if
(
!
response
.
data
.
items
)
return
if
(
!
response
.
data
.
data
.
data
)
return
this
.
userListOptions
=
response
.
data
.
items
.
map
(
v
=>
v
.
name
)
this
.
groupListOptions
=
response
.
data
.
data
.
data
})
})
},
},
appendGroup
()
{
getRemoteCityList
(
query
)
{
citySearch
(
query
).
then
(
response
=>
{
},
if
(
!
response
.
data
.
data
.
data
)
return
getRemoteGroupList
(
query
)
{
this
.
regionListOptions
=
response
.
data
.
data
.
data
regionSearch
(
query
).
then
(
response
=>
{
if
(
!
response
.
data
.
items
)
return
this
.
userListOptions
=
response
.
data
.
data
.
data
})
})
},
},
getRemoteTagList
(
query
)
{
getRemoteTagList
(
query
)
{
...
@@ -384,9 +424,14 @@
...
@@ -384,9 +424,14 @@
},
},
getList
()
{
getList
()
{
this
.
listLoading
=
true
this
.
listLoading
=
true
fetchList
(
this
.
listQuery
).
then
(
response
=>
{
this
.
listQuery
.
id
=
this
.
$route
.
params
&&
this
.
$route
.
params
.
id
this
.
list
=
[]
fetchGroupUser
(
this
.
listQuery
).
then
(
response
=>
{
this
.
total
=
100
let
rep
=
response
.
data
.
data
.
data
this
.
list
=
response
.
data
.
data
.
data
this
.
total
=
response
.
data
.
data
.
total
for
(
let
i
=
0
;
i
<
rep
.
length
;
i
++
){
this
.
temp
.
group_ids
.
push
(
rep
[
i
].
id
)
}
this
.
listLoading
=
false
this
.
listLoading
=
false
})
})
},
},
...
...
vu/src/views/user/list.vue
View file @
89443bb1
...
@@ -8,9 +8,9 @@
...
@@ -8,9 +8,9 @@
<el-select
v-model=
"listQuery.filter.user_type"
:placeholder=
"'用户身份'"
clearable
class=
"filter-item"
style=
"width: 110px"
>
<el-select
v-model=
"listQuery.filter.user_type"
:placeholder=
"'用户身份'"
clearable
class=
"filter-item"
style=
"width: 110px"
>
<el-option
v-for=
"item in UserTypeOptions"
:key=
"item.key"
:label=
"item.display_name"
:value=
"item.key"
/>
<el-option
v-for=
"item in UserTypeOptions"
:key=
"item.key"
:label=
"item.display_name"
:value=
"item.key"
/>
</el-select>
</el-select>
<
el-select
v-model=
"listQuery.filter.group_type"
:placeholder=
"'组内身份'"
clearable
class=
"filter-item"
style=
"width: 110px"
>
<
!--
<el-select
v-model=
"listQuery.filter.group_type"
:placeholder=
"'组内身份'"
clearable
class=
"filter-item"
style=
"width: 110px"
>
--
>
<
el-option
v-for=
"item in IdentifyTypeOptions"
:key=
"item.key"
:label=
"item.display_name"
:value=
"item.key"
/
>
<
!--
<el-option
v-for=
"item in IdentifyTypeOptions"
:key=
"item.key"
:label=
"item.display_name"
:value=
"item.key"
/>
--
>
<
/el-select
>
<
!--
</el-select>
--
>
<el-select
v-model=
"listQuery.filter.is_recommend"
:placeholder=
"'推荐'"
clearable
class=
"filter-item"
style=
"width: 100px"
>
<el-select
v-model=
"listQuery.filter.is_recommend"
:placeholder=
"'推荐'"
clearable
class=
"filter-item"
style=
"width: 100px"
>
<el-option
v-for=
"item in ReBooleanTypeOptions"
:key=
"item.key"
:label=
"item.display_name"
:value=
"item.key"
/>
<el-option
v-for=
"item in ReBooleanTypeOptions"
:key=
"item.key"
:label=
"item.display_name"
:value=
"item.key"
/>
</el-select>
</el-select>
...
@@ -19,59 +19,59 @@
...
@@ -19,59 +19,59 @@
<el-button
class=
"filter-item"
style=
"margin-left: 10px;"
type=
"primary"
icon=
"el-icon-edit"
@
click=
"handleOfflineOrOnline('recommend')"
>
推荐
</el-button>
<el-button
class=
"filter-item"
style=
"margin-left: 10px;"
type=
"primary"
icon=
"el-icon-edit"
@
click=
"handleOfflineOrOnline('recommend')"
>
推荐
</el-button>
</div>
</div>
<el-table
v-loading=
"listLoading"
:data=
"list"
border
fit
highlight-current-row
style=
"width: 100%"
ref=
"multipleTable"
@
selection-change=
"handleSelectionChange"
>
<el-table
v-loading=
"listLoading"
:data=
"list"
border
fit
highlight-current-row
style=
"width: 100%"
ref=
"multipleTable"
@
selection-change=
"handleSelectionChange"
>
<el-table-column
type=
"selection"
width=
"55"
align=
"center"
></el-table-column>
<el-table-column
type=
"selection"
align=
"center"
></el-table-column>
<el-table-column
align=
"center"
label=
"用户ID "
width=
"80"
>
<el-table-column
align=
"center"
label=
"用户ID "
width=
"80"
>
<template
slot-scope=
"scope"
>
<template
slot-scope=
"scope"
>
<router-link
:to=
"'/
pick/edit/'+scope.row.
id"
class=
"link-type"
>
<router-link
:to=
"'/
user/edit/'+scope.row.user_
id"
class=
"link-type"
>
<span>
{{
scope
.
row
.
id
}}
</span>
<span>
{{
scope
.
row
.
user_
id
}}
</span>
</router-link>
</router-link>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
width=
"140px"
align=
"center"
label=
"用户名"
>
<el-table-column
align=
"center"
label=
"用户名"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
user
name
}}
</span>
<span>
{{
scope
.
row
.
nick_
name
}}
</span>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
width=
"140px"
align=
"center"
label=
"联系电话"
>
<el-table-column
align=
"center"
label=
"联系电话"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
phone
}}
</span>
<span>
{{
scope
.
row
.
phone
}}
</span>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
width=
"180px"
align=
"center"
label=
"邮箱"
>
<el-table-column
align=
"center"
label=
"邮箱"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
email
}}
</span>
<span>
{{
scope
.
row
.
email
}}
</span>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
width=
"70px"
align=
"center"
label=
"关注小组"
>
<el-table-column
align=
"center"
label=
"关注小组"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
group_nums
}}
</span>
<span>
{{
scope
.
row
.
group_nums
}}
</span>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
width=
"70px"
align=
"center"
label=
"帖子数"
>
<el-table-column
align=
"center"
label=
"帖子数"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
topic_num
}}
</span>
<span>
{{
scope
.
row
.
topic_num
s
}}
</span>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<
el-table-column
width=
"150px"
align=
"center"
label=
"组内身份"
>
<
!--<el-table-column width="150px" align="center" label="组内身份">--
>
<
template
slot-scope=
"scope"
>
<
!--<template slot-scope="scope">--
>
<
span>
{{
scope
.
row
.
group_identify
}}
</span
>
<
!--<span>{{ scope.row.group_identify }}</span>--
>
<
/
template
>
<
!--</template>--
>
<
/el-table-column
>
<
!--</el-table-column>--
>
<el-table-column
width=
"100px"
align=
"center"
label=
"用户身份"
>
<el-table-column
align=
"center"
label=
"用户身份"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
user_identify
}}
</span>
<span>
{{
scope
.
row
.
user_identify
}}
</span>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
width=
"80px"
align=
"center"
label=
"推荐"
>
<el-table-column
align=
"center"
label=
"推荐"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<el-tag
:type=
"scope.row.is_recommend | isOnlineFilter"
>
{{
scope
.
row
.
is_recommend
==
1
?
'是'
:
'否'
}}
</el-tag>
<el-tag
:type=
"scope.row.is_recommend | isOnlineFilter"
>
{{
scope
.
row
.
is_recommend
==
1
?
'是'
:
'否'
}}
</el-tag>
</
template
>
</
template
>
...
@@ -191,7 +191,6 @@ export default {
...
@@ -191,7 +191,6 @@ export default {
}
}
OffLineOrOnLine
({
type
:
val
,
ids
:
str
}).
then
(
response
=>
{
OffLineOrOnLine
({
type
:
val
,
ids
:
str
}).
then
(
response
=>
{
this
.
multipleSelection
=
[];
this
.
multipleSelection
=
[];
response
.
data
.
data
.
message
this
.
$message
.
success
(
response
.
data
.
data
.
message
);
this
.
$message
.
success
(
response
.
data
.
data
.
message
);
})
})
},
},
...
...
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