Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
jinli gu
Litemall
Commits
1aa9f87d
Commit
1aa9f87d
authored
Jan 14, 2020
by
Junling Bu
Browse files
feat[litemall-admin, litemall-admin-api]: 专题支持批量删除
parent
ba34d881
Changes
6
Hide whitespace changes
Inline
Side-by-side
litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/web/AdminTopicController.java
View file @
1aa9f87d
package
org.linlinjava.litemall.admin.web
;
import
io.swagger.models.auth.In
;
import
org.apache.commons.logging.Log
;
import
org.apache.commons.logging.LogFactory
;
import
org.apache.shiro.authz.annotation.RequiresPermissions
;
import
org.linlinjava.litemall.admin.annotation.RequiresPermissionsDesc
;
import
org.linlinjava.litemall.core.util.JacksonUtil
;
import
org.linlinjava.litemall.core.util.ResponseUtil
;
import
org.linlinjava.litemall.core.validator.Order
;
import
org.linlinjava.litemall.core.validator.Sort
;
...
...
@@ -114,4 +116,12 @@ public class AdminTopicController {
return
ResponseUtil
.
ok
();
}
@RequiresPermissions
(
"admin:topic:batch-delete"
)
@RequiresPermissionsDesc
(
menu
=
{
"推广管理"
,
"专题管理"
},
button
=
"批量删除"
)
@PostMapping
(
"/batch-delete"
)
public
Object
batchDelete
(
@RequestBody
String
body
)
{
List
<
Integer
>
ids
=
JacksonUtil
.
parseIntegerList
(
body
,
"ids"
);
topicService
.
deleteByIds
(
ids
);
return
ResponseUtil
.
ok
();
}
}
litemall-admin/package.json
View file @
1aa9f87d
...
...
@@ -44,6 +44,7 @@
},
"dependencies"
:
{
"@tinymce/tinymce-vue"
:
"3.0.1"
,
"lodash"
:
"^4.17.11"
,
"v-charts"
:
"1.19.0"
,
"axios"
:
"0.18.1"
,
"clipboard"
:
"2.0.4"
,
...
...
@@ -83,9 +84,7 @@
"html-webpack-plugin"
:
"3.2.0"
,
"husky"
:
"1.3.1"
,
"lint-staged"
:
"8.1.5"
,
"mockjs"
:
"1.0.1-beta3"
,
"node-sass"
:
"^4.9.0"
,
"plop"
:
"2.3.0"
,
"runjs"
:
"^4.3.2"
,
"sass-loader"
:
"^7.1.0"
,
"script-ext-html-webpack-plugin"
:
"2.1.3"
,
...
...
litemall-admin/src/api/topic.js
View file @
1aa9f87d
...
...
@@ -39,3 +39,11 @@ export function deleteTopic(data) {
data
})
}
export
function
batchDeleteTopic
(
data
)
{
return
request
({
url
:
'
/topic/batch-delete
'
,
method
:
'
post
'
,
data
})
}
litemall-admin/src/styles/index.scss
View file @
1aa9f87d
...
...
@@ -181,6 +181,12 @@ aside {
}
}
.operator-container
{
padding-bottom
:
10px
;
display
:
flex
;
justify-content
:
flex-end
;
}
//refine vue-multiselect plugin
.multiselect
{
line-height
:
16px
;
...
...
litemall-admin/src/views/promotion/topic.vue
View file @
1aa9f87d
...
...
@@ -3,18 +3,24 @@
<!-- 查询和其他操作 -->
<div
class=
"filter-container"
>
<el-input
v-model=
"listQuery.title"
clearable
class=
"filter-item"
style=
"width: 200px;"
placeholder=
"请输入专题标题"
/>
<el-input
v-model=
"listQuery.subtitle"
clearable
class=
"filter-item"
style=
"width: 200px;"
placeholder=
"请输入专题子标题"
/>
<el-input
v-model=
"listQuery.title"
clearable
class=
"filter-item"
style=
"width: 200px;"
placeholder=
"请输入专题标题"
/>
<el-input
v-model=
"listQuery.subtitle"
clearable
class=
"filter-item"
style=
"width: 200px;"
placeholder=
"请输入专题子标题"
/>
<el-button
v-permission=
"['GET /admin/topic/list']"
class=
"filter-item"
type=
"primary"
icon=
"el-icon-search"
@
click=
"handleFilter"
>
查找
</el-button>
<el-button
v-permission=
"['POST /admin/topic/create']"
class=
"filter-item"
type=
"primary"
icon=
"el-icon-edit"
@
click=
"handleCreate"
>
添加
</el-button>
<el-button
:loading=
"downloadLoading"
class=
"filter-item"
type=
"primary"
icon=
"el-icon-download"
@
click=
"handleDownload"
>
导出
</el-button>
</div>
<div
class=
"operator-container"
>
<el-button
v-permission=
"['GET /admin/topic/list']"
class=
"filter-item"
type=
"danger"
icon=
"el-icon-delete"
@
click=
"handleBatchDelete"
>
批量删除
</el-button>
</div>
<!-- 查询结果 -->
<el-table
v-loading=
"listLoading"
:data=
"list"
element-loading-text=
"正在查询中。。。"
border
fit
highlight-current-row
>
<el-table-column
align=
"center"
label=
"专题标题"
prop=
"title"
/>
<el-table
v-loading=
"listLoading"
:data=
"list"
element-loading-text=
"正在查询中。。。"
border
fit
highlight-current-row
@
selection-change=
"handleSelectionChange"
>
<el-table-column
type=
"selection"
width=
"55"
/>
<el-table-column
align=
"center"
label=
"专题标题"
prop=
"title"
/>
<el-table-column
align=
"center"
label=
"专题子标题"
min-width=
"200"
prop=
"subtitle"
/>
<el-table-column
align=
"center"
label=
"专题子标题"
min-width=
"200"
prop=
"subtitle"
/>
<el-table-column
align=
"center"
property=
"picUrl"
label=
"图片"
>
<template
slot-scope=
"scope"
>
...
...
@@ -25,15 +31,15 @@
<el-table-column
align=
"center"
label=
"专题详情"
prop=
"content"
>
<
template
slot-scope=
"scope"
>
<el-dialog
:visible.sync=
"contentDialogVisible"
title=
"专题详情"
>
<div
v-html=
"contentDetail"
/>
<div
v-html=
"contentDetail"
/>
</el-dialog>
<el-button
type=
"primary"
size=
"mini"
@
click=
"showContent(scope.row.content)"
>
查看
</el-button>
</
template
>
</el-table-column>
<el-table-column
align=
"center"
label=
"底价"
prop=
"price"
/>
<el-table-column
align=
"center"
label=
"底价"
prop=
"price"
/>
<el-table-column
align=
"center"
label=
"阅读数量"
prop=
"readCount"
/>
<el-table-column
align=
"center"
label=
"阅读数量"
prop=
"readCount"
/>
<el-table-column
align=
"center"
label=
"操作"
min-width=
"100"
class-name=
"small-padding fixed-width"
>
<
template
slot-scope=
"scope"
>
...
...
@@ -82,9 +88,10 @@
</
style
>
<
script
>
import
{
listTopic
,
deleteTopic
}
from
'
@/api/topic
'
import
{
listTopic
,
deleteTopic
,
batchDeleteTopic
}
from
'
@/api/topic
'
import
BackToTop
from
'
@/components/BackToTop
'
import
Pagination
from
'
@/components/Pagination
'
// Secondary package based on el-pagination
import
_
from
'
lodash
'
export
default
{
name
:
'
Topic
'
,
...
...
@@ -102,6 +109,7 @@ export default {
sort
:
'
add_time
'
,
order
:
'
desc
'
},
multipleSelection
:
[],
contentDetail
:
''
,
contentDialogVisible
:
false
,
downloadLoading
:
false
...
...
@@ -152,10 +160,37 @@ export default {
})
})
},
handleSelectionChange
(
val
)
{
this
.
multipleSelection
=
val
},
showContent
(
content
)
{
this
.
contentDetail
=
content
this
.
contentDialogVisible
=
true
},
handleBatchDelete
()
{
if
(
this
.
multipleSelection
.
length
===
0
)
{
this
.
$message
.
error
(
'
请选择至少一条记录
'
)
return
}
const
ids
=
[]
_
.
forEach
(
this
.
multipleSelection
,
function
(
item
)
{
ids
.
push
(
item
.
id
)
})
batchDeleteTopic
({
ids
:
ids
})
.
then
(
response
=>
{
this
.
$notify
.
success
({
title
:
'
成功
'
,
message
:
'
批量删除专题成功
'
})
this
.
getList
()
})
.
catch
(
response
=>
{
this
.
$notify
.
error
({
title
:
'
失败
'
,
message
:
response
.
data
.
errmsg
})
})
},
handleDownload
()
{
this
.
downloadLoading
=
true
import
(
'
@/vendor/Export2Excel
'
).
then
(
excel
=>
{
...
...
litemall-db/src/main/java/org/linlinjava/litemall/db/service/LitemallTopicService.java
View file @
1aa9f87d
...
...
@@ -2,6 +2,7 @@ package org.linlinjava.litemall.db.service;
import
com.github.pagehelper.PageHelper
;
import
org.linlinjava.litemall.db.dao.LitemallTopicMapper
;
import
org.linlinjava.litemall.db.domain.LitemallGroupon
;
import
org.linlinjava.litemall.db.domain.LitemallTopic
;
import
org.linlinjava.litemall.db.domain.LitemallTopic.Column
;
import
org.linlinjava.litemall.db.domain.LitemallTopicExample
;
...
...
@@ -100,4 +101,12 @@ public class LitemallTopicService {
}
public
void
deleteByIds
(
List
<
Integer
>
ids
)
{
LitemallTopicExample
example
=
new
LitemallTopicExample
();
example
.
or
().
andIdIn
(
ids
).
andDeletedEqualTo
(
false
);
LitemallTopic
topic
=
new
LitemallTopic
();
topic
.
setUpdateTime
(
LocalDateTime
.
now
());
topic
.
setDeleted
(
true
);
topicMapper
.
updateByExampleSelective
(
topic
,
example
);
}
}
Write
Preview
Supports
Markdown
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