Commit 89443bb1 authored by Davve's avatar Davve

完成用户创建接口

parent 932a0316
...@@ -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))
count = int(request.GET.get('limit', 10)) limit = 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=count).unwrap() data = self.rpc['venus/sun/group/list'](filters=filters, offset=(offset-1)*limit, limit=limit).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')
filters = {} updates = {}
if type == 'offline': if type == 'offline':
filters['is_online'] = False updates['is_online'] = False
elif type == 'recommend': elif type == 'is_recommend':
filters['is_recommend'] = True updates['is_recommend'] = True
else: else:
filters['is_online'] = True updates['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, ]
...@@ -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):
......
...@@ -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=offset, limit=count).unwrap() data = self.rpc['venus/sun/group/list'](filters=filters, offset=(offset-1) * count, limit=count).unwrap()
except Exception as e: except Exception as e:
raise e raise e
return data return data
...@@ -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'),
'reply_name': request.POST.get('reply_name'), 'replied_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}
...@@ -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()),
......
...@@ -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
...@@ -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 }
})
}
...@@ -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
})
}
...@@ -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,
})
}
...@@ -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)
......
...@@ -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() {
......
...@@ -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.username }}</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_identity }}</span> <span>{{ scope.row.user_identify }}</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_identity }}</span> <span>{{ scope.row.group_identify }}</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.starListOptions = response.data.data.data this.userListOptions = response.data.data.data
}) })
}, },
getRemoteUserList(query){ getRemoteStarList(query) {
userSearch(query).then(response => { starSearch(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)
}) })
}, },
} }
......
...@@ -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.description }}</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);
}) })
}, },
......
...@@ -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>
......
...@@ -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>
......
...@@ -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() {
......
...@@ -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;
......
...@@ -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() {
......
...@@ -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;
......
...@@ -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 ReBooleanTypeOptions" :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')
} }
} }
} }
......
...@@ -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.username" 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="getRemoteGroupList" filterable remote <el-select v-model="postForm.city" :remote-method="getRemoteCityList" 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_identity }}</span> <span>{{ scope.row.group_identify }}</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: 'GroupDetail', name: 'UserDetail',
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 = ''
}, },
getRemoteUserList(query) { getRemoteGroupList(query) {
userSearch(query).then(response => { groupSearch(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
}) })
}, },
......
...@@ -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.username }}</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_nums }}</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);
}) })
}, },
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment