Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
cms-admin
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
EzijingWeb
cms-admin
Commits
88ad610c
提交
88ad610c
authored
5月 14, 2021
作者:
王鹏飞
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update
上级
b0bd4238
隐藏空白字符变更
内嵌
并排
正在显示
5 个修改的文件
包含
263 行增加
和
59 行删除
+263
-59
contentManage.js
src/api/contentManage.js
+69
-0
index.vue
src/pages/content-manage/ads/index.vue
+59
-18
index.vue
src/pages/content-manage/article/index.vue
+80
-19
index.vue
src/pages/content-manage/image-text/index.vue
+52
-22
user.js
src/store/modules/user.js
+3
-0
没有找到文件。
src/api/contentManage.js
浏览文件 @
88ad610c
...
...
@@ -40,6 +40,21 @@ export function publishAd(id, data) {
export
function
auditAd
(
id
,
data
)
{
return
httpRequest
.
post
(
`/api/cms/admin/v1/advertisement/
${
id
}
/audit`
,
data
)
}
/**
* 置顶广告
* @param {string} id
* @param {number} data.is_top 是否置顶:0否 1是
*/
export
function
topAd
(
id
,
data
)
{
return
httpRequest
.
post
(
`/api/cms/admin/v1/advertisement/
${
id
}
/top`
,
data
)
}
/**
* 批量删除广告
* @param {string} data.ids
*/
export
function
batchDeleteAd
(
data
)
{
return
httpRequest
.
post
(
'/api/cms/admin/v1/advertisement/batch-delete'
,
data
)
}
/* ------------------------------------文章------------------------------------ */
/**
...
...
@@ -57,6 +72,14 @@ export function getArticleList(params) {
export
function
createArticle
(
data
)
{
return
httpRequest
.
post
(
'/api/cms/admin/v1/article/create'
,
data
)
}
/**
* 更新文章
* @param {string} id
* @param {number} data
*/
export
function
updateArticle
(
id
,
data
)
{
return
httpRequest
.
put
(
`/api/cms/admin/v1/article/
${
id
}
/update`
,
data
)
}
/**
* 发布文章
* @param {string} id
...
...
@@ -65,6 +88,29 @@ export function createArticle(data) {
export
function
publishArticle
(
id
,
data
)
{
return
httpRequest
.
post
(
`/api/cms/admin/v1/article/
${
id
}
/publish`
,
data
)
}
/**
* 置顶文章
* @param {string} id
* @param {number} data.is_top 是否置顶:0否 1是
*/
export
function
topArticle
(
id
,
data
)
{
return
httpRequest
.
post
(
`/api/cms/admin/v1/article/
${
id
}
/top`
,
data
)
}
/**
* 推荐文章
* @param {string} id
* @param {number} data.is_recommend 是否推荐:0否 1是
*/
export
function
recommendArticle
(
id
,
data
)
{
return
httpRequest
.
post
(
`/api/cms/admin/v1/article/
${
id
}
/recommend`
,
data
)
}
/**
* 批量删除文章
* @param {string} data.ids
*/
export
function
batchDeleteArticle
(
data
)
{
return
httpRequest
.
post
(
'/api/cms/admin/v1/article/batch-delete'
,
data
)
}
/* ------------------------------------图文------------------------------------ */
/**
...
...
@@ -76,6 +122,14 @@ export function publishArticle(id, data) {
export
function
getImgTextList
(
params
)
{
return
httpRequest
.
get
(
'/api/cms/admin/v1/img-texts'
,
{
params
})
}
/**
* 更新图文
* @param {string} id
* @param {number} data
*/
export
function
updateImgText
(
id
,
data
)
{
return
httpRequest
.
put
(
`/api/cms/admin/v1/img-text/
${
id
}
/update`
,
data
)
}
/**
* 发布图文
* @param {string} id
...
...
@@ -92,3 +146,18 @@ export function publishImgText(id, data) {
export
function
getProjectContentTypeList
(
type
,
id
)
{
return
httpRequest
.
get
(
`/api/cms/admin/v1/type/
${
type
}
/project/
${
id
}
`
)
}
/**
* 置顶图文
* @param {string} id
* @param {number} data.is_top 是否置顶:0否 1是
*/
export
function
topImgText
(
id
,
data
)
{
return
httpRequest
.
post
(
`/api/cms/admin/v1/img-text/
${
id
}
/top`
,
data
)
}
/**
* 批量删除图文
* @param {string} data.ids
*/
export
function
batchDeleteImgText
(
data
)
{
return
httpRequest
.
post
(
'/api/cms/admin/v1/img-text/batch-delete'
,
data
)
}
src/pages/content-manage/ads/index.vue
浏览文件 @
88ad610c
...
...
@@ -2,7 +2,7 @@
<div
class=
"ads page_container"
>
<table-list
v-bind=
"tableOptions"
ref=
"tableList"
@
selection-change=
"handleSelectionChange"
>
<template
#
header-aside
>
<el-button
type=
"primary"
size=
"mini"
@
click=
"handleCreate"
>
新建广告
</el-button>
<el-button
type=
"primary"
size=
"mini"
@
click=
"handleCreate"
v-if=
"hasCreate"
>
新建广告
</el-button>
</
template
>
<el-tabs
v-model=
"activeName"
type=
"card"
@
tab-click=
"handleTabClick"
>
<el-tab-pane
label=
"全部"
name=
"0"
></el-tab-pane>
...
...
@@ -32,11 +32,13 @@
</
template
>
<!-- 置顶状态 -->
<
template
v-slot:top-status=
"{ row }"
>
<el-switch
:active-value=
"1"
:inactive-value=
"0"
v-model=
"row.is_top"
></el-switch>
<el-switch
:active-value=
"1"
:inactive-value=
"0"
v-model=
"row.is_top"
@
change=
"handleTop(row)"
></el-switch>
</
template
>
<
template
#
footer
>
<el-button
size=
"mini"
:disabled=
"!multipleSelection.length"
@
click=
"handleRemove"
>
删除
</el-button>
<el-button
size=
"mini"
:disabled=
"!multipleSelection.length"
@
click=
"handleRemove"
v-if=
"hasDelete"
>
删除
</el-button
>
</
template
>
</table-list>
<el-drawer
:visible
.
sync=
"drawerVisible"
size=
"1100px"
:destroy-on-close=
"true"
ref=
"ad_drawer"
>
...
...
@@ -64,7 +66,14 @@
</el-form-item>
</
template
>
</drawer-form>
<el-dialog
title=
"审核广告"
:visible
.
sync=
"dialogVisible"
width=
"460px"
append-to-body
:destroy-on-close=
"true"
ref=
"auditDialog"
>
<el-dialog
title=
"审核广告"
:visible
.
sync=
"dialogVisible"
width=
"460px"
append-to-body
:destroy-on-close=
"true"
ref=
"auditDialog"
>
<audit-form
@
dialogClose=
"dialogVisible = false"
@
auditSubmit=
"handleAuditSubmit"
/>
</el-dialog>
</el-drawer>
...
...
@@ -74,22 +83,13 @@
import
TableList
from
'@/components/TableList'
import
DrawerForm
from
'../components/DrawerForm.vue'
import
AuditForm
from
'../components/AuditForm.vue'
import
{
getAdList
,
createAd
,
publishAd
,
upda
teAd
,
auditAd
}
from
'@/api/contentManage'
import
{
getAdList
,
createAd
,
updateAd
,
publishAd
,
topAd
,
batchDele
teAd
,
auditAd
}
from
'@/api/contentManage'
export
default
{
components
:
{
TableList
,
DrawerForm
,
AuditForm
},
data
()
{
return
{
activeName
:
''
,
drawerVisible
:
false
,
projectList
:
[
{
project_id
:
'111'
,
project_name
:
'官网'
},
{
project_id
:
'222'
,
project_name
:
'kellet'
}
],
typeList
:
[
{
id
:
'111'
,
name
:
'banner广告'
},
{
id
:
'222'
,
name
:
'侧边栏广告'
},
{
id
:
'333'
,
name
:
'正文区广告'
}
],
drawFormOptions
:
{
type
:
''
,
pageType
:
2
,
...
...
@@ -101,6 +101,21 @@ export default {
}
},
computed
:
{
// 权限列表
permissions
()
{
return
this
.
$store
.
state
.
user
.
permissions
},
// 创建权限
hasCreate
()
{
return
this
.
permissions
.
includes
(
'content-function-advert-create'
)
},
// 删除权限
hasDelete
()
{
return
this
.
permissions
.
includes
(
'content-function-advert-delete'
)
},
projectList
()
{
return
this
.
$store
.
state
.
user
.
projects
},
drawTitle
()
{
if
(
this
.
drawFormOptions
.
type
===
'create'
)
return
'新建广告'
else
if
(
this
.
drawFormOptions
.
type
===
'edit'
)
return
'编辑广告'
...
...
@@ -119,8 +134,8 @@ export default {
placeholder
:
'项目'
,
prop
:
'project_id'
,
options
:
this
.
projectList
,
labelKey
:
'
project_
name'
,
valueKey
:
'
project_
id'
labelKey
:
'name'
,
valueKey
:
'id'
},
{
type
:
'input'
,
placeholder
:
'ID'
,
prop
:
'id_title'
},
{
...
...
@@ -165,7 +180,23 @@ export default {
// 发布
handlePublish
(
row
)
{
publishAd
(
row
.
id
,
{
is_publish
:
row
.
is_publish
}).
then
(
res
=>
{
this
.
$message
.
success
(
'更改状态成功'
)
if
(
res
.
code
===
0
)
{
this
.
$message
.
success
(
'更改状态成功'
)
}
else
{
row
.
is_publish
=
row
.
is_publish
?
0
:
1
this
.
$message
.
error
(
res
.
message
)
}
})
},
// 置顶
handleTop
(
row
)
{
topAd
(
row
.
id
,
{
is_top
:
row
.
is_top
}).
then
(
res
=>
{
if
(
res
.
code
===
0
)
{
this
.
$message
.
success
(
'更改状态成功'
)
}
else
{
row
.
is_top
=
row
.
is_top
?
0
:
1
this
.
$message
.
error
(
res
.
message
)
}
})
},
// 选择
...
...
@@ -173,7 +204,17 @@ export default {
this
.
multipleSelection
=
value
},
// 删除
handleRemove
()
{},
handleRemove
()
{
const
ids
=
this
.
multipleSelection
.
map
(
item
=>
item
.
id
)
batchDeleteAd
({
ids
}).
then
(
res
=>
{
if
(
res
.
code
===
0
)
{
this
.
$message
.
success
(
'删除成功'
)
this
.
$refs
.
tableList
.
refetch
(
true
)
}
else
{
this
.
$message
.
error
(
res
.
message
)
}
})
},
handleCreate
()
{
this
.
drawFormOptions
.
type
=
'create'
this
.
drawerVisible
=
true
...
...
src/pages/content-manage/article/index.vue
浏览文件 @
88ad610c
<
template
>
<div
class=
"article page_container"
>
<table-list
v-bind=
"tableOptions"
ref=
"tableList"
>
<table-list
v-bind=
"tableOptions"
ref=
"tableList"
@
selection-change=
"handleSelectionChange"
>
<template
#
header-aside
>
<el-button
type=
"primary"
size=
"mini"
@
click=
"handleCreate"
>
新建文章
</el-button>
<el-button
type=
"primary"
size=
"mini"
@
click=
"handleCreate"
v-if=
"hasCreate"
>
新建文章
</el-button>
</
template
>
<el-tabs
v-model=
"activeName"
type=
"card"
@
tab-click=
"handleTabClick"
>
<el-tab-pane
label=
"全部"
name=
"0"
></el-tab-pane>
...
...
@@ -32,11 +32,22 @@
</
template
>
<!-- 置顶状态 -->
<
template
v-slot:top-status=
"{ row }"
>
<el-switch
:active-value=
"1"
:inactive-value=
"0"
v-model=
"row.is_top"
></el-switch>
<el-switch
:active-value=
"1"
:inactive-value=
"0"
v-model=
"row.is_top"
@
change=
"handleTop(row)"
></el-switch>
</
template
>
<!-- 推荐状态 -->
<
template
v-slot:recommend-status=
"{ row }"
>
<el-switch
:active-value=
"1"
:inactive-value=
"0"
v-model=
"row.is_recommend"
></el-switch>
<el-switch
:active-value=
"1"
:inactive-value=
"0"
v-model=
"row.is_recommend"
@
change=
"handleRecommend(row)"
></el-switch>
</
template
>
<
template
#
footer
>
<el-button
size=
"mini"
:disabled=
"!multipleSelection.length"
@
click=
"handleRemove"
v-if=
"hasDelete"
>
删除
</el-button
>
</
template
>
</table-list>
<el-drawer
:visible
.
sync=
"drawerVisible"
size=
"1100px"
:destroy-on-close=
"true"
>
...
...
@@ -69,30 +80,37 @@
<
script
>
import
DrawerForm
from
'../components/DrawerForm.vue'
import
TableList
from
'@/components/TableList'
import
{
getArticleList
,
publishArticle
}
from
'@/api/contentManage'
import
{
getArticleList
,
publishArticle
,
topArticle
,
recommendArticle
,
batchDeleteArticle
}
from
'@/api/contentManage'
export
default
{
data
()
{
return
{
activeName
:
'
0
'
,
activeName
:
''
,
drawerVisible
:
false
,
projectList
:
[
{
project_id
:
'111'
,
project_name
:
'官网'
},
{
project_id
:
'222'
,
project_name
:
'kellet'
}
],
typeList
:
[
{
id
:
'111'
,
name
:
'banner广告'
},
{
id
:
'222'
,
name
:
'侧边栏广告'
},
{
id
:
'333'
,
name
:
'正文区广告'
}
],
drawFormOptions
:
{
type
:
''
,
pageType
:
1
},
drawItem
:
''
,
dialogVisible
:
false
dialogVisible
:
false
,
multipleSelection
:
[]
}
},
computed
:
{
// 权限列表
permissions
()
{
return
this
.
$store
.
state
.
user
.
permissions
},
// 创建权限
hasCreate
()
{
return
this
.
permissions
.
includes
(
'content-function-acticle-create'
)
},
// 删除权限
hasDelete
()
{
return
this
.
permissions
.
includes
(
'content-function-acticle-delete'
)
},
projectList
()
{
return
this
.
$store
.
state
.
user
.
projects
},
drawTitle
()
{
if
(
this
.
drawFormOptions
.
type
===
'create'
)
return
'新建文章'
else
if
(
this
.
drawFormOptions
.
type
===
'edit'
)
return
'编辑文章'
...
...
@@ -111,8 +129,8 @@ export default {
placeholder
:
'项目'
,
prop
:
'project_id'
,
options
:
this
.
projectList
,
labelKey
:
'
project_
name'
,
valueKey
:
'
project_
id'
labelKey
:
'name'
,
valueKey
:
'id'
},
{
type
:
'input'
,
placeholder
:
'ID'
,
prop
:
'id_title'
},
{
...
...
@@ -125,6 +143,7 @@ export default {
}
],
columns
:
[
{
type
:
'selection'
},
{
prop
:
'image_url'
,
label
:
'图片'
,
slots
:
'image'
},
{
prop
:
'id'
,
label
:
'文章ID'
,
slots
:
'table-id'
},
{
prop
:
'title'
,
label
:
'标题'
},
...
...
@@ -158,7 +177,49 @@ export default {
// 发布
handlePublish
(
row
)
{
publishArticle
(
row
.
id
,
{
is_publish
:
row
.
is_publish
}).
then
(
res
=>
{
this
.
$message
.
success
(
'更改状态成功'
)
if
(
res
.
code
===
0
)
{
this
.
$message
.
success
(
'更改状态成功'
)
}
else
{
row
.
is_publish
=
row
.
is_publish
?
0
:
1
this
.
$message
.
error
(
res
.
message
)
}
})
},
// 置顶
handleTop
(
row
)
{
topArticle
(
row
.
id
,
{
is_top
:
row
.
is_top
}).
then
(
res
=>
{
if
(
res
.
code
===
0
)
{
this
.
$message
.
success
(
'更改状态成功'
)
}
else
{
row
.
is_top
=
row
.
is_top
?
0
:
1
this
.
$message
.
error
(
res
.
message
)
}
})
},
// 推荐
handleRecommend
(
row
)
{
recommendArticle
(
row
.
id
,
{
is_recommend
:
row
.
is_recommend
}).
then
(
res
=>
{
if
(
res
.
code
===
0
)
{
this
.
$message
.
success
(
'更改状态成功'
)
}
else
{
row
.
is_recommend
=
row
.
is_recommend
?
0
:
1
this
.
$message
.
error
(
res
.
message
)
}
})
},
// 选择
handleSelectionChange
(
value
)
{
this
.
multipleSelection
=
value
},
// 删除
handleRemove
()
{
const
ids
=
this
.
multipleSelection
.
map
(
item
=>
item
.
id
)
batchDeleteArticle
({
ids
}).
then
(
res
=>
{
if
(
res
.
code
===
0
)
{
this
.
$message
.
success
(
'删除成功'
)
this
.
$refs
.
tableList
.
refetch
(
true
)
}
else
{
this
.
$message
.
error
(
res
.
message
)
}
})
},
handleCreate
()
{
...
...
src/pages/content-manage/image-text/index.vue
浏览文件 @
88ad610c
<
template
>
<div
class=
"image-text page_container"
>
<table-list
v-bind=
"tableOptions"
ref=
"tableList"
>
<table-list
v-bind=
"tableOptions"
ref=
"tableList"
@
selection-change=
"handleSelectionChange"
>
<template
#
header-aside
>
<el-button
type=
"primary"
size=
"mini"
@
click=
"handleCreate"
>
新建文章
</el-button>
<el-button
type=
"primary"
size=
"mini"
@
click=
"handleCreate"
v-if=
"hasCreate"
>
新建文章
</el-button>
</
template
>
<el-tabs
v-model=
"activeName"
type=
"card"
@
tab-click=
"handleTabClick"
>
<el-tab-pane
label=
"全部"
name=
"0"
></el-tab-pane>
...
...
@@ -30,9 +30,11 @@
@
change=
"handlePublish(row)"
></el-switch>
</
template
>
<!-- 置顶状态 -->
<
template
v-slot:top-status=
"{ row }"
>
<el-switch
:active-value=
"1"
:inactive-value=
"0"
v-model=
"row.is_top"
></el-switch>
<
template
#
footer
>
<el-button
size=
"mini"
:disabled=
"!multipleSelection.length"
@
click=
"handleRemove"
v-if=
"hasDelete"
>
删除
</el-button
>
</
template
>
</table-list>
<el-drawer
:visible
.
sync=
"drawerVisible"
size=
"1100px"
:destroy-on-close=
"true"
>
...
...
@@ -65,30 +67,37 @@
<
script
>
import
DrawerForm
from
'../components/DrawerForm.vue'
import
TableList
from
'@/components/TableList'
import
{
getImgTextList
,
publishImgText
}
from
'@/api/contentManage'
import
{
getImgTextList
,
publishImgText
,
batchDeleteImgText
}
from
'@/api/contentManage'
export
default
{
data
()
{
return
{
activeName
:
'
0
'
,
activeName
:
''
,
drawerVisible
:
false
,
projectList
:
[
{
project_id
:
'111'
,
project_name
:
'官网'
},
{
project_id
:
'222'
,
project_name
:
'kellet'
}
],
typeList
:
[
{
id
:
'111'
,
name
:
'banner广告'
},
{
id
:
'222'
,
name
:
'侧边栏广告'
},
{
id
:
'333'
,
name
:
'正文区广告'
}
],
drawFormOptions
:
{
type
:
''
,
pageType
:
3
},
drawItem
:
''
,
dialogVisible
:
false
dialogVisible
:
false
,
multipleSelection
:
[]
}
},
computed
:
{
// 权限列表
permissions
()
{
return
this
.
$store
.
state
.
user
.
permissions
},
// 创建权限
hasCreate
()
{
return
this
.
permissions
.
includes
(
'content-function-imgtext-create'
)
},
// 删除权限
hasDelete
()
{
return
this
.
permissions
.
includes
(
'content-function-imgtext-delete'
)
},
projectList
()
{
return
this
.
$store
.
state
.
user
.
projects
},
drawTitle
()
{
const
type
=
this
.
drawFormOptions
.
type
if
(
type
===
'create'
)
return
'新建图文'
...
...
@@ -108,8 +117,8 @@ export default {
placeholder
:
'项目'
,
prop
:
'project_id'
,
options
:
this
.
projectList
,
labelKey
:
'
project_
name'
,
valueKey
:
'
project_
id'
labelKey
:
'name'
,
valueKey
:
'id'
},
{
type
:
'input'
,
placeholder
:
'ID'
,
prop
:
'id_title'
},
{
...
...
@@ -122,8 +131,9 @@ export default {
}
],
columns
:
[
{
type
:
'selection'
},
{
prop
:
'image_url'
,
label
:
'图片'
,
slots
:
'image'
},
{
prop
:
'id'
,
label
:
'
广告
ID'
,
slots
:
'table-id'
},
{
prop
:
'id'
,
label
:
'
图文
ID'
,
slots
:
'table-id'
},
{
prop
:
'title'
,
label
:
'标题'
},
{
prop
:
'start_time'
,
label
:
'开始时间'
},
{
prop
:
'end_time'
,
label
:
'结束时间'
},
...
...
@@ -133,7 +143,6 @@ export default {
{
prop
:
'sso_user.real_name'
,
label
:
'创建人'
},
{
prop
:
'audit_status'
,
label
:
'审核状态'
,
slots
:
'review-status'
},
{
prop
:
'is_show'
,
label
:
'发布状态'
,
slots
:
'publish-status'
},
{
prop
:
'is_top'
,
label
:
'置顶状态/权重'
,
slots
:
'top-status'
},
{
prop
:
'created_at'
,
label
:
'创建时间'
}
]
}
...
...
@@ -154,7 +163,28 @@ export default {
// 发布
handlePublish
(
row
)
{
publishImgText
(
row
.
id
,
{
is_publish
:
row
.
is_publish
}).
then
(
res
=>
{
this
.
$message
.
success
(
'更改状态成功'
)
if
(
res
.
code
===
0
)
{
this
.
$message
.
success
(
'更改状态成功'
)
}
else
{
row
.
is_publish
=
row
.
is_publish
?
0
:
1
this
.
$message
.
error
(
res
.
message
)
}
})
},
// 选择
handleSelectionChange
(
value
)
{
this
.
multipleSelection
=
value
},
// 删除
handleRemove
()
{
const
ids
=
this
.
multipleSelection
.
map
(
item
=>
item
.
id
)
batchDeleteImgText
({
ids
}).
then
(
res
=>
{
if
(
res
.
code
===
0
)
{
this
.
$message
.
success
(
'删除成功'
)
this
.
$refs
.
tableList
.
refetch
(
true
)
}
else
{
this
.
$message
.
error
(
res
.
message
)
}
})
},
handleCreate
()
{
...
...
src/store/modules/user.js
浏览文件 @
88ad610c
...
...
@@ -23,6 +23,9 @@ const user = {
setPermissions
(
state
,
permissions
)
{
state
.
permissions
=
permissions
},
setHasRolesPermissions
(
state
,
hasRolesPermissions
)
{
state
.
hasRolesPermissions
=
hasRolesPermissions
},
setProjects
(
state
,
projects
)
{
state
.
projects
=
projects
}
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论