Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
T
techbook
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
front-end-dev
techbook
Commits
b9b676cb
Commit
b9b676cb
authored
May 12, 2020
by
anxixi
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
内容管理相关开发
parent
f9ebd09c
Show whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
1390 additions
and
296 deletions
+1390
-296
api.js
src/api/api.js
+4
-224
router.js
src/router.js
+5
-0
api.js
src/views/conmanagementpage/api/api.js
+105
-0
articleservice.vue
src/views/conmanagementpage/articleservice.vue
+277
-34
articlesettings.vue
src/views/conmanagementpage/articlesettings.vue
+56
-5
basedata.vue
src/views/conmanagementpage/basedata.vue
+270
-30
contentarticle.vue
src/views/conmanagementpage/contentarticle.vue
+668
-0
reportaudit.vue
src/views/specialactivity/reportaudit.vue
+3
-1
reportinside.vue
src/views/specialactivity/reportinside.vue
+1
-1
specialsummary.vue
src/views/specialactivity/specialsummary.vue
+1
-1
No files found.
src/api/api.js
View file @
b9b676cb
...
...
@@ -751,237 +751,17 @@ export default {
}
},
fetchPut
(
url
,
params
,
method
=
'PUT'
)
{
return
new
Promise
((
resolve
,
reject
)
=>
{
axios
({
method
:
method
,
url
:
base
+
url
,
data
:
params
,
cancelToken
:
new
axios
.
CancelToken
((
c
)
=>
{
_this
.
cancelSource
=
c
}),
headers
:
{
accessToken
:
publicFun
.
getCookie
(
"userInfo"
)?
JSON
.
parse
(
require
(
'js-base64'
).
Base64
.
decode
(
publicFun
.
getCookie
(
"userInfo"
))).
accessToken
:
''
,
deviceId
:
publicFun
.
getCookie
(
"getGuid32"
),
clientCode
:
clientCode
,
},
}).
then
((
response
)
=>
{
if
(
response
.
headers
.
loginstatus
==
2
){
publicFun
.
removeCookie
(
"userInfo"
);
}
if
(
response
.
data
.
code
==
90
||
response
.
data
.
code
==
999
){
window
.
localStorage
.
clear
();
this
.
cancelRequest
()
this
.
isToWhich
()
}
else
if
(
response
.
data
.
code
==
91
||
response
.
data
.
code
==
80
){
if
(
isMobile
){
Toast
(
response
.
data
.
msg
);
location
.
reload
();
}
else
{
MessageBox
.
alert
(
response
.
data
.
msg
,
{
confirmButtonText
:
i18n
.
t
(
"commonTips.confirm"
),
center
:
true
,
customClass
:
'alertDialog'
,
callback
:
action
=>
{
location
.
reload
();
}
});
}
}
else
if
(
response
.
data
.
code
==
500
){
if
(
isMobile
){
Toast
(
response
.
data
.
code
);
}
else
{
router
.
replace
(
"/notServer"
)
}
}
else
if
(
response
.
data
.
code
==
404
){
if
(
isMobile
){
Toast
(
response
.
data
.
code
);
}
else
{
router
.
replace
(
"/notFind"
)
}
}
else
if
(
response
.
data
.
code
==
998
||
response
.
data
.
code
==
996
){
if
(
isMobile
){
Toast
(
response
.
data
.
msg
);
window
.
localStorage
.
clear
();
this
.
cancelRequest
()
this
.
isToWhich
()
}
else
{
MessageBox
.
alert
(
response
.
data
.
msg
,
{
confirmButtonText
:
i18n
.
t
(
"commonTips.confirm"
),
center
:
true
,
customClass
:
'alertDialog'
,
callback
:
action
=>
{
window
.
localStorage
.
clear
();
this
.
cancelRequest
()
this
.
isToWhich
()
}
});
}
// console.log("踢出登录");
}
else
if
(
response
.
data
.
code
==
300
||
response
.
data
.
code
==
997
||
response
.
data
.
code
==
995
){
if
(
isMobile
){
Toast
(
response
.
data
.
msg
);
setTimeout
(
function
(){
router
.
go
(
-
1
);
},
2000
)
}
else
{
MessageBox
.
alert
(
response
.
data
.
msg
,
{
confirmButtonText
:
i18n
.
t
(
"commonTips.confirm"
),
center
:
true
,
customClass
:
'alertDialog'
,
callback
:
action
=>
{
router
.
go
(
-
1
);
}
});
}
}
else
{
resolve
(
response
.
data
)
}
}).
catch
((
error
)
=>
{
if
(
axios
.
isCancel
(
error
))
{
console
.
log
(
'Rquest canceled'
,
error
.
message
);
//请求如果被取消,这里是返回取消的message
}
else
{
reject
(
error
)
}
})
})
},
fetchDelete
(
url
,
method
=
'DELETE'
)
{
return
new
Promise
((
resolve
,
reject
)
=>
{
axios
({
method
:
method
,
url
:
base
+
url
,
cancelToken
:
new
axios
.
CancelToken
((
c
)
=>
{
_this
.
cancelSource
=
c
}),
headers
:
{
accessToken
:
publicFun
.
getCookie
(
"userInfo"
)?
JSON
.
parse
(
require
(
'js-base64'
).
Base64
.
decode
(
publicFun
.
getCookie
(
"userInfo"
))).
accessToken
:
''
,
deviceId
:
publicFun
.
getCookie
(
"getGuid32"
),
clientCode
:
clientCode
,
},
}).
then
((
response
)
=>
{
if
(
response
.
headers
.
loginstatus
==
2
){
publicFun
.
removeCookie
(
"userInfo"
);
}
if
(
response
.
data
.
code
==
90
||
response
.
data
.
code
==
999
){
window
.
localStorage
.
clear
();
this
.
cancelRequest
()
this
.
isToWhich
()
}
else
if
(
response
.
data
.
code
==
91
||
response
.
data
.
code
==
80
){
if
(
isMobile
){
Toast
(
response
.
data
.
msg
);
location
.
reload
();
}
else
{
MessageBox
.
alert
(
response
.
data
.
msg
,
{
confirmButtonText
:
i18n
.
t
(
"commonTips.confirm"
),
center
:
true
,
customClass
:
'alertDialog'
,
callback
:
action
=>
{
location
.
reload
();
}
});
}
}
else
if
(
response
.
data
.
code
==
500
){
if
(
isMobile
){
Toast
(
response
.
data
.
code
);
}
else
{
router
.
replace
(
"/notServer"
)
}
}
else
if
(
response
.
data
.
code
==
404
){
if
(
isMobile
){
Toast
(
response
.
data
.
code
);
}
else
{
router
.
replace
(
"/notFind"
)
}
}
else
if
(
response
.
data
.
code
==
998
||
response
.
data
.
code
==
996
){
if
(
isMobile
){
Toast
(
response
.
data
.
msg
);
window
.
localStorage
.
clear
();
this
.
cancelRequest
()
this
.
isToWhich
()
}
else
{
MessageBox
.
alert
(
response
.
data
.
msg
,
{
confirmButtonText
:
i18n
.
t
(
"commonTips.confirm"
),
center
:
true
,
customClass
:
'alertDialog'
,
callback
:
action
=>
{
window
.
localStorage
.
clear
();
this
.
cancelRequest
()
this
.
isToWhich
()
}
});
}
// console.log("踢出登录");
}
else
if
(
response
.
data
.
code
==
300
||
response
.
data
.
code
==
997
||
response
.
data
.
code
==
995
){
if
(
isMobile
){
Toast
(
response
.
data
.
msg
);
setTimeout
(
function
(){
router
.
go
(
-
1
);
},
2000
)
}
else
{
MessageBox
.
alert
(
response
.
data
.
msg
,
{
confirmButtonText
:
i18n
.
t
(
"commonTips.confirm"
),
center
:
true
,
customClass
:
'alertDialog'
,
callback
:
action
=>
{
router
.
go
(
-
1
);
}
});
}
}
else
{
resolve
(
response
.
data
)
}
}).
catch
((
error
)
=>
{
if
(
axios
.
isCancel
(
error
))
{
console
.
log
(
'Rquest canceled'
,
error
.
message
);
//请求如果被取消,这里是返回取消的message
}
else
{
reject
(
error
)
}
})
})
},
fetchPostImg
(
url
,
params
,
method
=
'POST'
)
{
var
langVal
=
url
.
indexOf
(
'?'
)
==
-
1
?
'?lang='
+
lang
:
'&lang='
+
lang
;
var
langVal
=
url
.
indexOf
(
'?'
)
==
-
1
?
'?lang='
+
lang
:
'&lang='
+
lang
,
_this
=
this
;
if
(
publicFun
.
getCookie
(
"userInfo"
))
{
return
new
Promise
((
resolve
,
reject
)
=>
{
axios
({
method
:
method
,
url
:
base
+
url
+
langVal
+
"&t="
+
Date
.
parse
(
new
Date
()),
data
:
params
,
cancelToken
:
new
axios
.
CancelToken
((
c
)
=>
{
_this
.
cancelSource
=
c
}),
headers
:
{
'Content-Type'
:
'multipart/form-data'
,
accessToken
:
publicFun
.
getCookie
(
"userInfo"
)?
JSON
.
parse
(
require
(
'js-base64'
).
Base64
.
decode
(
publicFun
.
getCookie
(
"userInfo"
))).
accessToken
:
''
,
...
...
src/router.js
View file @
b9b676cb
...
...
@@ -636,6 +636,11 @@ export default new Router({
component
:
resolve
=>
require
([
'views/conmanagementpage/basedata.vue'
],
resolve
),
meta
:
{
title
:
'数据字典'
}
},
{
path
:
'/contentarticle'
,
component
:
resolve
=>
require
([
'views/conmanagementpage/contentarticle.vue'
],
resolve
),
meta
:
{
title
:
'发布文章'
}
},
]
},
{
...
...
src/views/conmanagementpage/api/api.js
View file @
b9b676cb
...
...
@@ -45,4 +45,108 @@ export default {
addContentClassify
(
url
,
params
){
return
api
.
fetchPost
(
url
,
params
);
},
//技术领域
selectSmallBusinessTree
(){
return
api
.
fetchGet
(
'/business/industry/selectSmallBusinessTree'
);
},
//行业领域
selectBigBusinessTree
(){
return
api
.
fetchGet
(
'/business/industry/selectBigBusinessTree'
);
},
//数据字典列表
searchBaseData
(
params
){
return
api
.
fetchPost
(
'/base/article/searchBaseData'
,
params
);
},
//获取单个数据字典信息
getBaseData
(
params
)
{
return
api
.
fetchGet
(
'/base/article/getBaseData?dataId='
+
params
);
},
//添加数据字典
addBaseData
(
url
,
params
){
return
api
.
fetchPost
(
url
,
params
);
},
//删除单个数据字典
removeBaseData
(
params
)
{
return
api
.
fetchGet
(
'/base/article/removeBaseData?dataId='
+
params
);
},
// 发布文章
// 获取频道下拉
getSelectChannels
()
{
return
api
.
fetchGet
(
'/base/article/getSelectChannels'
);
},
// 获取分类下拉
getSelectClassifies
()
{
return
api
.
fetchGet
(
'/base/article/getSelectClassifies'
);
},
//通过code获取数据
selectDictList
(
params
){
return
api
.
fetchGet
(
'/business/dict/selectDictList?groupCode='
+
params
);
},
//获取数据字典下拉
getSelectData
(){
return
api
.
fetchGet
(
'/base/article/getSelectData'
);
},
//专家列表
searchProfessor
(
params
){
return
api
.
fetchPost
(
'/base/professor/searchProfessor'
,
params
);
},
//添加专家
addProfessor
(
params
){
return
api
.
fetchPost
(
'/base/subject/addProfessor'
,
params
);
},
//查询专家信息
searchAccount
(
params
)
{
return
api
.
fetchGet
(
'/base/subject/searchAccount?empAccount='
+
params
);
},
//发布文章
pushArticleContent
(
url
,
params
){
return
api
.
fetchPost
(
url
,
params
);
},
//敏感词检测
checkSensitiveContent
(
params
){
return
api
.
fetchPost
(
'/business/sensitive/checkSensitiveContent'
,
params
);
},
//频道列表条件
getChannelList
()
{
return
api
.
fetchGet
(
'/base/article/getChannelList'
);
},
//分类列表条件
getClassifyList
()
{
return
api
.
fetchGet
(
'/base/article/getClassifyList'
);
},
//文章列表
searchContents
(
params
){
return
api
.
fetchPost
(
'/base/article/searchContents'
,
params
);
},
//文章上线离线
onlineContent
(
params
){
return
api
.
fetchPost
(
'/base/article/onlineContent'
,
params
);
},
//删除文章
removeArticleContent
(
params
)
{
return
api
.
fetchGet
(
'/base/article/removeArticleContent?contentId='
+
params
);
},
//置顶等操作和取消
markContent
(
params
){
return
api
.
fetchPost
(
'/base/article/markContent'
,
params
);
},
//获取文章信息
getArticleContent
(
params
)
{
return
api
.
fetchGet
(
'/base/article/getArticleContent?contentId='
+
params
);
},
// 获取设置信息
getSettingInfo
()
{
return
api
.
fetchGet
(
'/base/article/getSettingInfo'
);
},
// 保存设置信息
saveSettingInfo
(
params
)
{
return
api
.
fetchPost
(
'/base/article/saveSettingInfo'
,
params
);
},
}
\ No newline at end of file
src/views/conmanagementpage/articleservice.vue
View file @
b9b676cb
<
template
>
<div
class=
"
projectTabadd
"
>
<el-row
class=
"
contentPadding
"
>
<div
class=
"
soutform"
style=
"margin-top: 20px;background: #ECECF2;
"
>
<el-row
class=
""
>
<el-row
class=
"tabPdding"
>
<el-row
class=
"statebottm"
>
<el-col
:span=
"12"
>
<!--
<page-screen
:screenlist=
"peopleTypelist"
:checkboxGroupstate=
"empTypeed"
:screenchildListIf=
"true"
ref=
"peopletypechild"
:titleName=
"$t('operationjson.usertype')"
@
changecheck=
"peopletypeData"
></page-screen>
-->
</el-col>
<el-col
:span=
"12"
>
<page-screen
:screenlist=
"authTypelist"
:checkboxGroupstate=
"registerTypeed"
:screenchildListIf=
"true"
ref=
"authtypechild"
:titleName=
"$t('operationjson.accounttype')"
@
changecheck=
"typeData"
></page-screen>
</el-col>
<page-screen
:screenlist=
"channelList"
:screenchildListIf=
"false"
ref=
"channelchild"
titleName=
"按频道检索 "
@
changecheck=
"channelData"
></page-screen>
</el-row>
<el-row
class=
"statebottm"
>
<page-screen
:screenlist=
"classifyList"
:screenchildListIf=
"false"
ref=
"classifychild"
titleName=
"按分类检索 "
@
changecheck=
"classifyData"
></page-screen>
</el-row>
<el-row
class=
"statebottm"
>
<el-col
:span=
"12"
>
<page-screen
:screenlist=
"authenticationstate"
:checkboxGroupstate=
"authenticationStateed"
:screenchildListIf=
"true"
ref=
"peopletypechild"
:titleName=
"$t('operationjson.Certificationstate')"
@
changecheck=
"authenticationData"
></page-screen>
</el-col>
<el-col
:span=
"12"
>
<page-screen
:screenlist=
"accountstate"
:checkboxGroupstate=
"frozenStateed"
:screenchildListIf=
"true"
ref=
"authtypechild"
:titleName=
"$t('usermanagement.accountstatus')"
@
changecheck=
"accountData"
></page-screen>
</el-col>
<page-screen
:screenlist=
"dictList"
:screenchildListIf=
"false"
ref=
"dictchild"
titleName=
"按分类检索 "
@
changecheck=
"dictData"
></page-screen>
</el-row>
<el-row
style=
"margin: 20px 0 0 10px"
class=
"contnetform"
>
<el-form
:inline=
"true"
label-width=
"
120px"
label-position=
"left"
:class=
"diven_zh?'':'contnetformen'"
style=
"width: 100%;"
>
<el-form-item
:label=
"$t('usermanagement.registrationtime')
"
>
<el-form
:inline=
"true"
label-width=
"
80px"
label-position=
"left"
style=
"width: 100%;"
>
<el-form-item
label=
"发布时间
"
>
<template
slot-scope=
"scope"
>
<div
style=
"display:flex;"
>
<el-date-picker
style=
"width: 200px;"
v-model=
"search.startTime"
type=
"datetime"
value-format=
"yyyy-MM-dd HH:mm:ss"
:placeholder=
"$t('operationjson.authBegin')"
></el-date-picker>
<el-date-picker
style=
"width: 200px;"
v-model=
"search
s
.startTime"
type=
"datetime"
value-format=
"yyyy-MM-dd HH:mm:ss"
:placeholder=
"$t('operationjson.authBegin')"
></el-date-picker>
<p
style=
"width: 50px;text-align: center"
>
{{
$t
(
'operationjson.tos'
)
}}
</p>
<el-date-picker
style=
"width: 200px;"
v-model=
"search.endTime"
type=
"datetime"
value-format=
"yyyy-MM-dd HH:mm:ss"
:placeholder=
"$t('operationjson.authEnd')"
></el-date-picker>
<el-input
style=
"width: 240px;margin-left: 20px;"
v-model=
"search
.empAccount
"
:placeholder=
"$t('commonTitle.searchThree')
"
></el-input>
<el-date-picker
style=
"width: 200px;"
v-model=
"search
s
.endTime"
type=
"datetime"
value-format=
"yyyy-MM-dd HH:mm:ss"
:placeholder=
"$t('operationjson.authEnd')"
></el-date-picker>
<el-input
style=
"width: 240px;margin-left: 20px;"
v-model=
"search
s.keyword
"
placeholder=
"请输入关键字
"
></el-input>
<el-button
type=
"primary"
style=
"width: 140px;margin-left: 20px"
@
click=
"searchCik"
>
{{
$t
(
'operationjson.search'
)
}}
</el-button>
</div>
</
template
>
...
...
@@ -36,26 +29,58 @@
</el-row>
</el-row>
<el-row>
<el-table
:data=
"tydata"
tooltip-effect=
"dark"
class=
"projectTable2"
>
<el-table-column
label=
"ID"
prop=
"channelId"
align=
"center"
width=
"50"
>
<el-row
class=
"contentPadding"
>
<el-form
:inline=
"true"
>
<el-form-item>
<el-button
type=
"primary"
@
click=
"newarticle"
>
发布文章
</el-button>
</el-form-item>
</el-form>
<el-table
:data=
"contentlist"
tooltip-effect=
"dark"
class=
"projectTable2"
>
<el-table-column
label=
"ID"
prop=
"contentId"
align=
"center"
width=
"50"
>
</el-table-column>
<el-table-column
prop=
"channelName"
label=
"频道名称"
align=
"center"
>
<el-table-column
prop=
"contentTitle"
label=
"标题"
align=
"center"
width=
"170"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
contentTitle
}}
<p>
<span
style=
"color: #FF5D5D;margin-right: 5px;"
v-if=
"scope.row.codeList && scope.row.codeList.indexOf('CT001') > -1"
>
[ 置顶 ]
</span>
<span
style=
"color: #FF9E29;margin-right: 5px;"
v-if=
"scope.row.codeList && scope.row.codeList.indexOf('CT002') > -1"
>
[ 推荐 ]
</span>
<span
style=
"color: #5D78FF"
v-if=
"scope.row.codeList && scope.row.codeList.indexOf('CT003') > -1"
>
[ 首页 ]
</span>
</p>
</
template
>
</el-table-column>
<el-table-column
prop=
"channelNames"
label=
"频道"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<span
v-for=
"(item,index) in scope.row.channelList"
:key=
"index"
>
{{
item
}}
<i>
{{
scope
.
row
.
channelList
.
length
-
1
==
index
?
''
:
'、'
}}
</i></span>
</
template
>
</el-table-column>
<el-table-column
prop=
"
channelNameEn"
label=
"英文名称
"
align=
"center"
>
<el-table-column
prop=
"
publishTime"
label=
"发布时间
"
align=
"center"
>
</el-table-column>
<el-table-column
prop=
"
contentNum"
label=
"内容数量
"
align=
"center"
>
<el-table-column
prop=
"
empName"
label=
"发布人
"
align=
"center"
>
</el-table-column>
<el-table-column
label=
"操作"
width=
"150"
align=
'center'
>
<el-table-column
prop=
"classifyNames"
label=
"分类"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<el-button
type=
"text"
@
click=
"editBaseShow(scope.row)"
>
查看
</el-button>
<el-button
type=
"text"
@
click=
"editBaseShow(scope.row)"
>
编辑
</el-button>
<el-button
type=
"text"
@
click=
"deleteBase(scope.row)"
>
删除
</el-button>
<span
v-for=
"(item,index) in scope.row.classifyList"
:key=
"index"
>
{{
item
}}
<i>
{{
scope
.
row
.
classifyList
.
length
-
1
==
index
?
''
:
'、'
}}
</i></span>
</
template
>
</el-table-column>
<el-table-column
label=
"排序"
width=
"120"
align=
'center'
>
<el-table-column
prop=
"contentNum"
label=
"阅读量/点赞数/评论数/分享数"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<el-input
@
blur=
"blursort(scope.row)"
v-model=
"scope.row.sort"
maxlength=
"6"
style=
"width: 60px;"
></el-input>
{{
scope
.
row
.
contentBrowse
}}
/
{{
scope
.
row
.
contentHot
}}
/
{{
scope
.
row
.
projectComments
}}
/
{{
scope
.
row
.
projectForward
}}
</
template
>
</el-table-column>
<el-table-column
prop=
"classifyNames"
label=
"上线状态"
align=
"center"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
contentState
==
0
?
'在线'
:
'离线'
}}
</
template
>
</el-table-column>
<el-table-column
label=
"操作"
width=
"200"
align=
'center'
>
<
template
slot-scope=
"scope"
>
<el-button
type=
"text"
@
click=
"editBaseShow(scope.row)"
>
查看
</el-button>
<el-button
type=
"text"
@
click=
"editarticle(scope.row)"
>
编辑
</el-button>
<el-button
type=
"text"
@
click=
"getonline(scope.row)"
>
{{
scope
.
row
.
contentState
==
0
?
'离线'
:
'在线'
}}
</el-button>
<el-button
type=
"text"
@
click=
"deleteContent(scope.row)"
>
删除
</el-button>
<el-button
type=
"text"
@
click=
"getmark(scope.row,1)"
>
{{
scope
.
row
.
codeList
&&
scope
.
row
.
codeList
.
indexOf
(
'CT001'
)
>
-
1
?
'取消置顶'
:
'置顶'
}}
</el-button>
<el-button
type=
"text"
@
click=
"getmark(scope.row,2)"
>
{{
scope
.
row
.
codeList
&&
scope
.
row
.
codeList
.
indexOf
(
'CT002'
)
>
-
1
?
'取消推荐'
:
'推荐'
}}
</el-button>
<el-button
type=
"text"
@
click=
"getmark(scope.row,3)"
>
{{
scope
.
row
.
codeList
&&
scope
.
row
.
codeList
.
indexOf
(
'CT003'
)
>
-
1
?
'取消首页'
:
'首页'
}}
</el-button>
</
template
>
</el-table-column>
<
template
slot=
"empty"
>
...
...
@@ -81,18 +106,236 @@
</template>
<
script
>
import
api
from
"./api/api"
;
import
pageScreen
from
"../../components/index/Pagescreen"
;
export
default
{
name
:
"articleservice"
,
data
()
{
return
{
cur_page
:
1
,
//页数
totalListResult
:
0
,
numberData
:
10
,
//设置个数
tydata
:[],
search
:{},
channelList
:[],
//频道检索
classifyList
:[],
//分类检索
dictList
:[],
searchs
:{},
contentlist
:[],
}
},
components
:{
pageScreen
},
methods
:
{
// 分页导航
handleCurrentChange
(
val
)
{
this
.
cur_page
=
val
;
this
.
getsearchBaseData
();
},
//设置个数
handleSizeChange
(
val
)
{
this
.
numberData
=
val
;
this
.
getsearchBaseData
();
},
//文章列表
getsearchContents
(){
let
params
=
{
pagination
:
{
number
:
this
.
numberData
,
start
:
0
,
numberOfPages
:
this
.
cur_page
||
1
,
totalItemCount
:
0
},
search
:
this
.
searchs
,
sort
:
{}
};
api
.
searchContents
(
params
).
then
(
response
=>
{
if
(
response
.
code
==
0
)
{
this
.
contentlist
=
response
.
result
.
records
;
this
.
totalListResult
=
response
.
result
.
total
;
}
else
{
this
.
$message
.
error
(
response
.
msg
);
}
})
.
catch
(
error
=>
{
console
.
log
(
"提交出错"
);
return
false
;
});
},
//条件查询
searchCik
(){
this
.
cur_page
=
1
;
this
.
getsearchContents
();
},
//频道检索
channelData
(
a
){
this
.
searchs
.
channelIds
=
a
;
this
.
searchCik
();
},
//分类检索
classifyData
(
a
){
this
.
searchs
.
classifyIds
=
a
;
this
.
searchCik
();
},
//
dictData
(
a
){
this
.
searchs
.
codes
=
a
;
this
.
searchCik
();
},
//分类列表条件
getClassifyList
(){
api
.
getClassifyList
().
then
(
response
=>
{
if
(
response
.
code
==
0
)
{
response
.
result
.
forEach
(
(
item
)
=>
{
item
.
checked
=
false
;
item
.
industryName
=
item
.
classifyName
;
item
.
industryId
=
item
.
classifyId
;
item
.
screenchildList
=
null
;
}
);
this
.
classifyList
=
response
.
result
;
}
else
{
this
.
$message
.
error
(
response
.
msg
);
}
})
.
catch
(
error
=>
{
console
.
log
(
"提交出错"
);
return
false
;
});
},
//频道列表条件
getChannelList
(){
api
.
getChannelList
().
then
(
response
=>
{
if
(
response
.
code
==
0
)
{
response
.
result
.
forEach
(
(
item
)
=>
{
item
.
checked
=
false
;
item
.
industryName
=
item
.
channelName
;
item
.
industryId
=
item
.
channelId
;
item
.
screenchildList
=
null
;
}
);
this
.
channelList
=
response
.
result
;
}
else
{
this
.
$message
.
error
(
response
.
msg
);
}
})
.
catch
(
error
=>
{
console
.
log
(
"提交出错"
);
return
false
;
});
},
//获取设置信息数据
getselectDictList
(){
api
.
selectDictList
(
'content_type'
).
then
(
response
=>
{
if
(
response
.
code
==
0
)
{
response
.
result
.
forEach
(
(
item
)
=>
{
item
.
checked
=
false
;
item
.
industryName
=
item
.
dictValue
;
item
.
industryId
=
item
.
dictKey
;
item
.
screenchildList
=
null
;
}
);
this
.
dictList
=
response
.
result
;
}
else
{
this
.
$message
.
error
(
response
.
msg
);
}
})
.
catch
(
error
=>
{
console
.
log
(
"提交出错"
);
return
false
;
})
},
//上线离线
getonline
(
row
){
let
params
=
{
contentId
:
row
.
contentId
,
contentState
:
row
.
contentState
==
0
?
1
:
0
,
};
api
.
onlineContent
(
params
).
then
(
response
=>
{
if
(
response
.
code
==
0
)
{
this
.
$message
.
success
(
'操作成功'
);
this
.
getsearchContents
();
}
else
{
this
.
$message
.
error
(
response
.
msg
);
}
})
.
catch
(
error
=>
{
console
.
log
(
"提交出错"
);
return
false
;
})
},
//删除
deleteContent
(
row
){
this
.
$confirm
(
'是否确认删除'
,
{
cancelButtonText
:
'取消'
,
confirmButtonText
:
'确认'
,
type
:
''
,
customClass
:
'deleteConfirm'
}).
then
(()
=>
{
api
.
removeArticleContent
(
row
.
contentId
).
then
(
response
=>
{
if
(
response
.
code
==
0
)
{
this
.
$message
.
success
(
'删除成功'
);
this
.
cur_page
=
1
;
this
.
getsearchContents
();
}
else
{
this
.
$message
.
error
(
response
.
msg
);
}
})
.
catch
(
error
=>
{
console
.
log
(
"提交出错"
);
return
false
;
});
}).
catch
(()
=>
{
});
},
//置顶等操作
getmark
(
row
,
state
){
let
code
=
''
;
let
flag
=
true
;
if
(
state
==
1
){
code
=
'CT001'
;
flag
=
row
.
codeList
&&
row
.
codeList
.
indexOf
(
'CT001'
)
>
-
1
?
1
:
0
;
}
else
if
(
state
==
2
){
code
=
'CT002'
;
flag
=
row
.
codeList
&&
row
.
codeList
.
indexOf
(
'CT002'
)
>
-
1
?
1
:
0
;
}
else
if
(
state
==
3
){
code
=
'CT003'
;
flag
=
row
.
codeList
&&
row
.
codeList
.
indexOf
(
'CT003'
)
>
-
1
?
1
:
0
;
}
let
params
=
{
code
:
code
,
contentId
:
row
.
contentId
,
flag
:
flag
,
};
api
.
markContent
(
params
).
then
(
response
=>
{
if
(
response
.
code
==
0
)
{
this
.
$message
.
success
(
'操作成功'
);
this
.
cur_page
=
1
;
this
.
getsearchContents
();
}
else
{
this
.
$message
.
error
(
response
.
msg
);
}
})
.
catch
(
error
=>
{
console
.
log
(
"提交出错"
);
return
false
;
});
},
//编辑
editarticle
(
row
){
this
.
$router
.
push
({
path
:
"/contentarticle"
,
query
:{
contentId
:
row
.
contentId
}});
},
//发布文章
newarticle
(){
this
.
$router
.
push
({
path
:
"/contentarticle"
,
query
:{}});
},
mounted
(){
},
mounted
(){
this
.
getChannelList
();
this
.
getClassifyList
();
this
.
getselectDictList
();
this
.
getsearchContents
();
}
}
</
script
>
...
...
src/views/conmanagementpage/articlesettings.vue
View file @
b9b676cb
<
template
>
<div>
文章设置
<div
class=
"projectTabadd"
>
<div
style=
"margin-top: 20px;"
>
<el-form
label-position=
"right"
label-width=
"180px"
class=
"contnetform180"
>
<el-form-item
label=
"免责声明:"
>
<el-input
v-model=
"infoData.settingStatementContent"
maxlength=
"500"
placeholder=
"请输入免责声明,最多可输入200个字"
style=
"width: 600px;"
type=
"textarea"
:rows=
"6"
></el-input>
</el-form-item>
<el-form-item
label=
" "
>
<el-button
type=
"primary"
@
click=
"getsaveSettingInfo"
>
保存
</el-button>
</el-form-item>
<el-form-item
label=
"评论功能:"
>
<el-switch
v-model=
"value"
@
change=
"getsaveSettingInfo"
active-color=
"#13ce66"
inactive-color=
"#ff4949"
>
</el-switch>
</el-form-item>
</el-form>
</div>
</div>
</
template
>
<
script
>
import
api
from
"./api/api"
;
export
default
{
name
:
"articlesettings"
,
data
()
{
return
{
value
:
true
,
infoData
:{},
}
},
methods
:
{
getsaveSettingInfo
(){
if
(
this
.
value
){
this
.
infoData
.
isOpenComment
=
1
;
}
else
{
this
.
infoData
.
isOpenComment
=
0
;
}
api
.
getSettingInfo
(
this
.
infoData
).
then
(
response
=>
{
if
(
response
.
code
==
0
)
{
this
.
$message
.
success
(
'保存成功'
);
}
else
{
this
.
$message
.
error
(
response
.
msg
);
}
})
.
catch
(
error
=>
{
console
.
log
(
"提交出错"
);
return
false
;
});
},
},
mounted
(){
api
.
getSettingInfo
().
then
(
response
=>
{
if
(
response
.
code
==
0
)
{
this
.
infoData
=
response
.
result
;
if
(
this
.
infoData
.
isOpenComment
==
1
){
this
.
value
=
true
;
}
else
{
this
.
value
=
false
;
}
}
else
{
this
.
$message
.
error
(
response
.
msg
);
}
})
.
catch
(
error
=>
{
console
.
log
(
"提交出错"
);
return
false
;
});
}
}
</
script
>
...
...
src/views/conmanagementpage/basedata.vue
View file @
b9b676cb
...
...
@@ -18,13 +18,16 @@
</el-form>
<el-row>
<el-table
:data=
"tydata"
tooltip-effect=
"dark"
class=
"projectTable2"
>
<el-table-column
prop=
"showState"
label=
"序号"
align=
"center"
>
<el-table-column
label=
"序号"
type=
"index"
align=
"center"
width=
"50"
>
<template
slot-scope=
"scope"
>
<span>
{{
(
cur_page
-
1
)
*
numberData
+
scope
.
$index
+
1
}}
</span>
</
template
>
</el-table-column>
<el-table-column
prop=
"
showStat
e"
label=
"数据名称"
align=
"center"
>
<el-table-column
prop=
"
dataNam
e"
label=
"数据名称"
align=
"center"
>
</el-table-column>
<el-table-column
prop=
"
showState
"
label=
"英文名称"
align=
"center"
>
<el-table-column
prop=
"
dataNameEn
"
label=
"英文名称"
align=
"center"
>
</el-table-column>
<el-table-column
prop=
"
showState
"
label=
"匹配关键词"
align=
"center"
>
<el-table-column
prop=
"
keywords
"
label=
"匹配关键词"
align=
"center"
>
</el-table-column>
<el-table-column
:label=
"$t('listjson.action')"
width=
"150"
align=
'center'
>
<
template
slot-scope=
"scope"
>
...
...
@@ -56,26 +59,56 @@
<!--新增-->
<el-dialog
:title=
"iseditadd?'
添加开机报':'编辑开机报
'"
:visible
.
sync=
"expertVisible"
:append-to-body=
"true"
:close-on-click-modal=
"false"
@
close=
"closeSensor"
class=
"dialogWrap"
>
<el-form
label-position=
"right"
label-width=
"120px"
:model=
"
expertData"
:rules=
"rules"
ref=
"expert
Data"
style=
"margin:0 100px 0 60px"
>
<el-form-item
label=
"数据名称:"
prop=
"
showTitl
e"
>
<el-input
v-model=
"
expertData.showTitl
e"
maxlength=
"36"
placeholder=
"请输入标题"
></el-input>
<el-dialog
:title=
"iseditadd?'
新建数据':'编辑数据
'"
:visible
.
sync=
"expertVisible"
:append-to-body=
"true"
:close-on-click-modal=
"false"
@
close=
"closeSensor"
class=
"dialogWrap"
>
<el-form
label-position=
"right"
label-width=
"120px"
:model=
"
formData"
:rules=
"rules"
ref=
"form
Data"
style=
"margin:0 100px 0 60px"
>
<el-form-item
label=
"数据名称:"
prop=
"
dataNam
e"
>
<el-input
v-model=
"
formData.dataNam
e"
maxlength=
"36"
placeholder=
"请输入标题"
></el-input>
</el-form-item>
<el-form-item
label=
"英文名称:"
prop=
"showTitle"
>
<el-input
v-model=
"
expertData.showTitle
"
maxlength=
"36"
placeholder=
"请输入标题"
></el-input>
<el-form-item
label=
"英文名称:"
>
<el-input
v-model=
"
formData.dataNameEn
"
maxlength=
"36"
placeholder=
"请输入标题"
></el-input>
</el-form-item>
<el-form-item
label=
"行业领域:"
prop=
"showTitle"
>
<el-input
v-model=
"expertData.showTitle"
maxlength=
"36"
placeholder=
"请输入标题"
></el-input>
<el-form-item
label=
"行业领域:"
prop=
"businessIndustryList"
>
<el-cascader
:options=
"bigoptions"
v-model=
"bigIndustrys"
:props=
"bigpropsd"
placeholder=
"请选择"
style=
"width: 100%;"
clearable
@
change=
"bigindustry"
>
</el-cascader>
</el-form-item>
<el-form-item
label=
"技术领域:"
prop=
"showTitle"
>
<el-input
v-model=
"expertData.showTitle"
maxlength=
"36"
placeholder=
"请输入标题"
></el-input>
<el-form-item
label=
"技术领域:"
prop=
"smallIndustryList"
>
<el-cascader
:options=
"options"
v-model=
"projectIndustryEditList"
:props=
"propsd"
placeholder=
"请选择"
style=
"width: 100%;"
clearable
@
change=
"industry"
>
</el-cascader>
</el-form-item>
<el-form-item
label=
"匹配关键词:"
prop=
"showTitle"
>
<el-input
v-model=
"expertData.showTitle"
maxlength=
"36"
placeholder=
"请输入标题"
></el-input>
<el-form-item
label=
"匹配关键词:"
ref=
"formLabel"
prop=
"dataKeywordList"
style=
"width: 100%;"
>
<el-row
v-if=
"formData.dataKeywordList.length > 0"
class=
"tagspan"
>
<el-tag
:key=
"tag.keywordsId"
v-for=
"tag in formData.dataKeywordList"
closable
:disable-transitions=
"false"
@
close=
"handleClose(tag)"
>
{{tag.keywordsName}}
</el-tag>
</el-row>
<el-row
v-if=
"tagIf"
>
<el-input
class=
"inputcs"
v-model=
"inputValue"
maxlength=
"10"
placeholder=
"添加关键字"
style=
"width: 170px;margin-right: 10px"
></el-input>
<el-button
style=
"height: 34px"
type=
"primary"
@
click=
"showInput"
size=
"small"
>
{{$t('releasejson.preservation')}}
</el-button>
<el-button
style=
"height: 34px"
@
click=
"hideInput"
size=
"small"
>
{{$t('releasejson.cancel')}}
</el-button>
</el-row>
<el-row
v-if=
"tagBtn"
>
<el-button
v-if=
"!tagIf"
@
click=
"tagIf=!tagIf"
type=
"primary"
plain
size=
"small"
style=
"font-size: 14px;height: 34px !important;font-weight:normal;line-height: 14px"
><i
class=
"iconfont icon-jiahao"
></i>
添加关键字
</el-button>
</el-row>
</el-form-item>
</el-form>
<el-row
style=
"padding-top: 20px;text-align: center"
>
<el-button
type=
"primary"
@
click=
"addexpert"
>
{{iseditadd?'
发布
':'保存'}}
</el-button>
<el-button
type=
"primary"
@
click=
"addexpert"
>
{{iseditadd?'
添加
':'保存'}}
</el-button>
<el-button
@
click=
"expertVisible = false"
>
取 消
</el-button>
</el-row>
</el-dialog>
...
...
@@ -84,7 +117,6 @@
<
script
>
import
api
from
"./api/api"
;
export
default
{
name
:
"basedata"
,
data
()
{
...
...
@@ -96,15 +128,41 @@
numberData
:
10
,
//设置个数
iseditadd
:
true
,
expertVisible
:
false
,
expertData
:{},
formData
:{
dataKeywordList
:[],
},
rules
:{
showTitle
:
[{
required
:
true
,
message
:
'请输入标题'
,
trigger
:
'blur'
}],
showPictureUrl
:
[{
required
:
true
,
message
:
'请上传展示图片'
,
trigger
:
'blur'
}],
showUrl
:
[{
required
:
true
,
message
:
'请输入完整链接'
,
trigger
:
'blur'
}],
showState
:
[{
required
:
true
,
message
:
'请选择上线状态'
,
trigger
:
'blur'
}],
dataName
:
[{
required
:
true
,
message
:
'请输入数据名称'
,
trigger
:
'blur'
}],
dataKeywordList
:
[{
required
:
true
,
message
:
'请添加匹配关键词'
,
trigger
:
'blur'
}],
businessIndustryList
:
[{
required
:
true
,
message
:
'请选择行业领域'
,
trigger
:
'blur'
}],
smallIndustryList
:
[{
required
:
true
,
message
:
'请选择技术领域'
,
trigger
:
'blur'
}],
},
stateData
:{},
screenlist
:
[],
propsd
:
{
children
:
'childrenList'
,
multiple
:
true
,
label
:
'industryName'
,
value
:
'industryId'
,
},
options
:[],
projectIndustryEditList
:[],
bigoptions
:[],
bigpropsd
:
{
children
:
'childrenList'
,
multiple
:
true
,
label
:
'industryName'
,
value
:
'industryId'
,
},
bigIndustrys
:[],
inputValue
:
''
,
tagIf
:
false
,
tagBtn
:
true
,
}
},
components
:
{
},
methods
:{
handleClick
(){
...
...
@@ -112,37 +170,219 @@
},
//关闭弹框
closeSensor
(){
this
.
formData
=
{
dataKeywordList
:[],
};
this
.
bigIndustrys
=
[];
this
.
projectIndustryEditList
=
[];
this
.
$refs
[
'formData'
].
resetFields
();
},
//新建
expertclk
(){
this
.
expertVisible
=
true
;
this
.
iseditadd
=
true
;
},
//保存
addexpert
(){
this
.
$refs
.
formData
.
validate
((
valid
)
=>
{
if
(
valid
)
{
let
isurledit
=
this
.
iseditadd
?
'/base/article/addBaseData'
:
'/base/article/editBaseData'
;
api
.
addBaseData
(
isurledit
,
this
.
formData
).
then
(
response
=>
{
if
(
response
.
code
==
0
)
{
this
.
expertVisible
=
false
;
this
.
$message
.
success
(
this
.
iseditadd
?
'添加成功'
:
'保存成功'
);
this
.
cur_page
=
1
;
this
.
getsearchBaseData
();
}
else
{
this
.
$message
.
error
(
response
.
msg
);
}
})
.
catch
(
error
=>
{
console
.
log
(
"提交出错"
);
return
false
;
});
}
});
},
// 分页导航
handleCurrentChange
(
val
)
{
this
.
cur_page
=
val
;
this
.
getse
lectBaseShowList
();
this
.
getse
archBaseData
();
},
//设置个数
handleSizeChange
(
val
)
{
this
.
numberData
=
val
;
this
.
getselectBaseShowList
();
this
.
getsearchBaseData
();
},
//列表
getsearchBaseData
(){
let
params
=
{
pagination
:
{
number
:
this
.
numberData
,
start
:
0
,
numberOfPages
:
this
.
cur_page
||
1
,
totalItemCount
:
0
},
search
:
this
.
search
,
};
api
.
searchBaseData
(
params
).
then
(
response
=>
{
if
(
response
.
code
==
0
)
{
this
.
tydata
=
response
.
result
.
records
;
this
.
totalListResult
=
response
.
result
.
total
;
}
else
{
this
.
$message
.
error
(
response
.
msgCode
);
}
})
.
catch
(
error
=>
{
console
.
log
(
"提交出错"
);
return
false
;
});
},
//编辑
editBaseShow
(
row
){
api
.
getBaseData
(
row
.
dataId
).
then
(
response
=>
{
if
(
response
.
code
==
0
)
{
this
.
formData
=
response
.
result
;
let
bigIndustrys
=
[];
let
projectIndustryEditList
=
[];
this
.
bigIndustrys
=
[];
this
.
projectIndustryEditList
=
[];
for
(
let
i
in
response
.
result
.
businessIndustryList
){
bigIndustrys
.
push
([
response
.
result
.
businessIndustryList
[
i
].
industryPid
,
response
.
result
.
businessIndustryList
[
i
].
industryId
]);
}
for
(
let
i
in
response
.
result
.
smallIndustryList
){
projectIndustryEditList
.
push
([
response
.
result
.
smallIndustryList
[
i
].
industryPid
,
response
.
result
.
smallIndustryList
[
i
].
industryId
]);
}
this
.
bigIndustrys
=
bigIndustrys
;
this
.
projectIndustryEditList
=
projectIndustryEditList
;
this
.
expertVisible
=
true
;
this
.
iseditadd
=
false
;
}
else
{
this
.
$message
.
error
(
response
.
msg
);
}
})
.
catch
(
error
=>
{
console
.
log
(
"提交出错"
);
return
false
;
});
},
//删除
deleteBase
(
row
){
this
.
$confirm
(
'是否确认删除'
,
{
cancelButtonText
:
'取消'
,
confirmButtonText
:
'确认'
,
type
:
''
,
customClass
:
'deleteConfirm'
}).
then
(()
=>
{
api
.
removeBaseData
(
row
.
dataId
).
then
(
response
=>
{
if
(
response
.
code
==
0
)
{
this
.
$message
.
success
(
'删除成功'
);
this
.
cur_page
=
1
;
this
.
getsearchBaseData
();
}
else
{
this
.
$message
.
error
(
response
.
msg
);
}
})
.
catch
(
error
=>
{
console
.
log
(
"提交出错"
);
return
false
;
});
}).
catch
(()
=>
{
});
},
//整合技术领域数据
industry
(
val
){
let
arr
=
[];
for
(
let
i
=
0
;
i
<
val
.
length
;
i
++
){
arr
.
push
({
industryPid
:
val
[
i
][
0
],
industryId
:
val
[
i
][
1
]})
};
this
.
formData
.
smallIndustryList
=
arr
;
},
//整合行业领域数据
bigindustry
(
val
){
let
arr
=
[];
for
(
let
i
=
0
;
i
<
val
.
length
;
i
++
){
arr
.
push
({
industryPid
:
val
[
i
][
0
],
industryId
:
val
[
i
][
1
]})
};
this
.
formData
.
businessIndustryList
=
arr
;
},
//添加小标签
showInput
(){
let
inputValue
=
this
.
inputValue
;
if
(
this
.
formData
.
dataKeywordList
){
if
(
this
.
formData
.
dataKeywordList
.
indexOf
({
keywordsName
:
inputValue
})
>
-
1
){
this
.
$message
.
error
(
this
.
$t
(
'releasejson.companylabelof'
));
return
}
if
(
inputValue
)
{
this
.
formData
.
dataKeywordList
.
push
({
keywordsName
:
inputValue
});
if
(
this
.
formData
.
dataKeywordList
.
length
>=
10
){
this
.
tagBtn
=
false
;
}
}
}
this
.
inputValue
=
''
;
this
.
tagIf
=
!
this
.
tagIf
;
this
.
$refs
.
formLabel
.
clearValidate
();
},
hideInput
(){
this
.
inputValue
=
''
;
this
.
tagIf
=
!
this
.
tagIf
;
if
(
this
.
formData
.
dataKeywordList
.
length
<=
10
){
this
.
tagBtn
=
true
;
}
},
//删除小标签
handleClose
(
tag
)
{
this
.
formData
.
dataKeywordList
.
splice
(
this
.
formData
.
dataKeywordList
.
indexOf
({
keywordsName
:
tag
}),
1
);
if
(
this
.
formData
.
dataKeywordList
.
length
<
10
){
this
.
tagBtn
=
true
;
}
},
//获取技术领域接口
smallbusinessselect
()
{
api
.
selectSmallBusinessTree
().
then
(
response
=>
{
if
(
response
.
code
==
0
)
{
this
.
options
=
response
.
result
;
}
else
{
this
.
$message
.
error
(
response
.
msg
);
}
}
)
.
catch
(
error
=>
{
console
.
log
(
"提交出错"
);
return
false
;
}
);
},
//获取行业领域接口
selectBigBusinessTree
()
{
api
.
selectBigBusinessTree
().
then
(
response
=>
{
if
(
response
.
code
==
0
)
{
this
.
bigoptions
=
response
.
result
;
}
else
{
this
.
$message
.
error
(
response
.
msg
);
}
}
)
.
catch
(
error
=>
{
console
.
log
(
"提交出错"
);
return
false
;
}
);
},
},
mounted
()
{
this
.
smallbusinessselect
();
this
.
selectBigBusinessTree
();
this
.
getsearchBaseData
();
}
}
</
script
>
<
style
scoped
lang=
"scss"
>
.el-tag
+
.el-tag
{
margin-left
:
10px
;
}
.el-tag--mini
{
height
:
20px
!
important
;
line-height
:
20px
!
important
;
}
</
style
>
src/views/conmanagementpage/contentarticle.vue
0 → 100644
View file @
b9b676cb
<
template
>
<div
class=
"soutform loginedWrapper"
>
<div
class=
"breadcrumb"
>
<el-breadcrumb
separator=
"/"
>
<el-breadcrumb-item
:to=
"
{ path: '/projectdynamics' }">
{{
$t
(
"releasejson.wrkbench"
)
}}
</el-breadcrumb-item>
<el-breadcrumb-item
:to=
"
{ path: '/conmanagement' }">内容管理
</el-breadcrumb-item>
<el-breadcrumb-item>
{{
$route
.
query
.
contentId
?
'编辑文章'
:
'发布文章'
}}
</el-breadcrumb-item>
</el-breadcrumb>
</div>
<div
class=
"projectTabadd"
>
<el-tabs
v-model=
"activeName"
>
<el-tab-pane
:label=
"$route.query.contentId?'编辑文章':'发布文章'"
name=
"first"
>
<div
style=
"margin-top: 20px;"
>
<el-form
label-position=
"right"
:model=
"formData"
:rules=
"rules"
ref=
"formData"
label-width=
"180px"
class=
"contnetform180"
>
<el-form-item
label=
"文章标题:"
prop=
"contentTitle"
>
<el-input
v-model=
"formData.contentTitle"
maxlength=
"36"
placeholder=
"请输入文章标题"
style=
"width: 600px;"
></el-input>
</el-form-item>
<el-form-item
label=
"选择频道:"
prop=
"channelIds"
>
<el-select
v-model=
"formData.channelIds"
multiple
placeholder=
"请选择"
style=
"width: 600px;"
>
<el-option
style=
"width: 600px;"
v-for=
"item in channels"
:key=
"item.channelId"
:label=
"item.channelName"
:value=
"item.channelId"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"选择分类:"
prop=
"classifyIds"
>
<el-select
v-model=
"formData.classifyIds"
multiple
placeholder=
"请选择"
style=
"width: 600px;"
>
<el-option
style=
"width: 600px;"
v-for=
"item in classifies"
:key=
"item.classifyId"
:label=
"item.classifyName"
:value=
"item.classifyId"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"请选择:"
prop=
"contentChoose"
>
<el-checkbox-group
v-model=
"formData.contentChoose"
>
<el-checkbox
v-for=
"(item,index) in dictList"
:label=
"item.dictKey"
:key=
"item.dictKey"
>
{{
item
.
dictValue
}}
</el-checkbox>
</el-checkbox-group>
</el-form-item>
<el-form-item
label=
"文章内容:"
ref=
"formintroduction"
prop=
"contentDetail"
style=
"width: 100%;"
>
<rich-text
@
dataEvent=
"statedata"
:channelIntroduction=
"formData.contentDetail"
></rich-text>
<div
v-show=
"false"
v-html=
"contentDiv"
id=
"content1"
></div>
</el-form-item>
<el-form-item
label=
"活动封面:"
prop=
"contentCoverUrl"
ref=
"formimg"
style=
"width: 100%;"
>
<el-checkbox
@
change=
"coverchange(formData.isCover)"
v-model=
"formData.isCover"
>
选取文中图片作为封面图
</el-checkbox>
<p
class=
"imgTitle"
>
封面图只支持PNG、JPG、jpeg格式,最大支持400K;建议图片尺寸500x400
</p>
<div
class=
"uploadImg"
>
<up-img
:actionUrl=
"'/base/upload/uploadOriginalImg'"
@
dataEvent=
"uploadimg"
:channelPic=
"formData.contentCoverUrl"
:upmax=
"0.4"
></up-img>
</div>
</el-form-item>
<el-form-item
label=
"摘要:"
prop=
"contentValidity"
style=
"width: 100%;"
>
<el-input
v-model=
"formData.contentValidity"
maxlength=
"200"
placeholder=
"请输入文章摘要,最多可输入200个字,该内容会出现在分享微信的简介里"
style=
"width: 600px;"
type=
"textarea"
:rows=
"4"
></el-input>
</el-form-item>
<el-form-item
label=
"是否开放评论:"
prop=
"isOpenComment"
style=
"width: 100%;"
>
<el-radio
@
change=
"commentchange(formData.isOpenComment)"
v-model=
"formData.isOpenComment"
:label=
"0"
>
是
</el-radio>
<el-radio
@
change=
"commentchange(formData.isOpenComment)"
v-model=
"formData.isOpenComment"
:label=
"1"
>
否
</el-radio>
</el-form-item>
<el-form-item
label=
"文章标签:"
prop=
"companyIntroduction"
style=
"width: 100%;"
>
<el-cascader
popper-class=
"cascaderNocheck"
:options=
"selectData"
v-model=
"selectIndustrys"
:props=
"selectpropsd"
placeholder=
"请选择"
style=
"width: 600px"
clearable
@
change=
"selectindustry"
>
</el-cascader>
<div
style=
"margin-top: 10px;"
>
<el-row
v-if=
"formData.contentLabels.length > 0"
class=
"tagspan"
>
<el-tag
v-for=
"tag in formData.contentLabels"
closable
:disable-transitions=
"false"
@
close=
"handleClose(tag)"
>
{{
tag
}}
</el-tag>
</el-row>
<el-row
v-if=
"tagIf"
>
<el-input
class=
"inputcs"
v-model=
"inputValue"
maxlength=
"10"
placeholder=
"添加自定义标签"
style=
"width: 170px;margin-right: 10px"
></el-input>
<el-button
style=
"height: 34px"
type=
"primary"
@
click=
"showInput"
size=
"small"
>
{{
$t
(
'releasejson.preservation'
)
}}
</el-button>
<el-button
style=
"height: 34px"
@
click=
"hideInput"
size=
"small"
>
{{
$t
(
'releasejson.cancel'
)
}}
</el-button>
</el-row>
<el-row
v-if=
"tagBtn"
>
<el-button
v-if=
"!tagIf"
@
click=
"tagIf=!tagIf"
type=
"primary"
plain
size=
"small"
style=
"font-size: 14px;height: 34px !important;font-weight:normal;line-height: 14px"
><i
class=
"iconfont icon-jiahao"
></i>
添加关键字
</el-button>
</el-row>
</div>
</el-form-item>
<el-form-item
label=
"发布时间:"
prop=
"publishType"
style=
"width: 100%;"
>
<el-radio
@
change=
"publishchange(formData.publishType)"
v-model=
"formData.publishType"
:label=
"0"
>
立即发布
</el-radio>
<el-radio
@
change=
"publishchange(formData.publishType)"
v-model=
"formData.publishType"
:label=
"1"
>
定时发布
</el-radio>
<el-date-picker
:disabled=
"formData.publishType == 0"
:picker-options=
"pickerDisabled"
v-model=
"formData.publishTime"
value-format=
"yyyy-MM-dd HH:mm:ss"
type=
"datetime"
placeholder=
"选择日期时间"
>
</el-date-picker>
</el-form-item>
<el-form-item
label=
"文章来源:"
prop=
"contentSourceType"
>
<div>
<el-radio
@
change=
"sourcechange(formData.contentSourceType)"
v-model=
"formData.contentSourceType"
:label=
"0"
>
原创
</el-radio>
<el-input
:disabled=
"formData.contentSourceType == 1"
v-model=
"formData.contentAuthor"
maxlength=
"36"
placeholder=
"请输入作者名称"
style=
"width: 600px;margin-left: 14px;"
></el-input>
</div>
<div
style=
"margin-top: 20px;"
>
<el-radio
@
change=
"sourcechange(formData.contentSourceType)"
v-model=
"formData.contentSourceType"
:label=
"1"
>
转载自
</el-radio>
<el-input
:disabled=
"formData.contentSourceType == 0"
v-model=
"formData.contentSource"
maxlength=
"36"
placeholder=
"请输入文章来源"
style=
"width: 280px;margin-right: 40px;"
></el-input>
<el-input
:disabled=
"formData.contentSourceType == 0"
v-model=
"formData.originalUrl"
maxlength=
"36"
placeholder=
"请输入原文链接"
style=
"width: 280px;"
></el-input>
</div>
</el-form-item>
<el-form-item
label=
"是否为推荐:"
prop=
"isRecommended"
style=
"width: 100%;"
>
<el-radio
@
change=
"recommendedchange(formData.isRecommended)"
v-model=
"formData.isRecommended"
:label=
"0"
>
否
</el-radio>
<el-radio
@
change=
"recommendedchange(formData.isRecommended)"
v-model=
"formData.isRecommended"
:label=
"1"
>
是
</el-radio>
<el-button
:disabled=
"formData.isRecommended == 0"
@
click=
"addobjfessor"
>
选择专家
</el-button>
<el-button
:disabled=
"formData.isRecommended == 0"
@
click=
"addVisible = true"
>
添加专家并选择
</el-button>
</el-form-item>
<div
style=
"display: flex;flex-wrap: wrap;width: 80%;margin-left: 160px"
v-if=
"objfessorData.empName"
>
<div
style=
"width: 150px;text-align: center;position: relative"
>
<p><img
:src=
"objfessorData.empLogo"
style=
"width: 90px;height: 90px;border-radius: 50%"
></p>
<p
style=
"margin: 10px 0"
>
{{
objfessorData
.
empName
}}
</p>
<p>
{{
objfessorData
.
professorTitle
}}
</p>
</div>
</div>
<el-form-item
label=
"上线状态:"
prop=
"contentState"
style=
"width: 100%;"
>
<el-radio
v-model=
"formData.contentState"
:label=
"0"
>
上线
</el-radio>
<el-radio
v-model=
"formData.contentState"
:label=
"1"
>
离线
</el-radio>
</el-form-item>
</el-form>
<el-row
style=
"margin: 40px 0 20px 0; text-align: center;width: 100%;"
>
<el-button
type=
"primary"
@
click=
"submitform"
>
提交
</el-button>
<el-button
@
click=
"backd"
plain
>
预览
</el-button>
<el-button
@
click=
"$router.push('/conmanagement')"
plain
>
取消
</el-button>
</el-row>
</div>
</el-tab-pane>
</el-tabs>
</div>
<!--查找专家-->
<el-dialog
title=
"选择专家"
:visible
.
sync=
"expertVisible"
:append-to-body=
"true"
:close-on-click-modal=
"false"
:show-close=
"true"
@
close=
"closeexpert"
class=
"dialogWrap"
>
<el-row
:gutter=
"20"
style=
"margin: 0 30px"
>
<div
style=
"border: 1px solid #C8CBE0;background: #F2F2F2"
>
<p
style=
"font-size: 14px;border-bottom: 1px solid #C8CBE0;padding: 15px 0 15px 20px;font-weight: bold;color: #565B79"
>
查找专家
</p>
<el-input
placeholder=
"请输入专家名称"
v-model=
"modelexpert"
style=
"padding: 15px;border-bottom: 1px solid #C8CBE0;"
class=
"input-with-select"
>
<el-button
slot=
"append"
@
click=
"searchexpert"
icon=
"el-icon-search"
></el-button>
</el-input>
<el-table
:data=
"searchexpertlist"
class=
"tabledialog"
>
<el-table-column
prop=
"empAccount"
label=
"账号"
align=
"center"
>
</el-table-column>
<el-table-column
prop=
"empName"
label=
"专家名称"
align=
"center"
>
</el-table-column>
<el-table-column
prop=
"professorTitle"
label=
"title"
align=
"center"
>
</el-table-column>
<el-table-column
prop=
"professorIntroduction"
label=
"专家介绍"
align=
"center"
>
</el-table-column>
<el-table-column
prop=
"empLogo"
label=
"专家头像"
align=
"center"
>
<template
slot-scope=
"scope"
>
<img
:src=
"scope.row.empLogo"
style=
"width: 40px;height: 40px;border-radius: 50%"
>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('listjson.action')"
width=
"80"
align=
'center'
>
<
template
slot-scope=
"scope"
>
<el-button
:disabled=
"scope.row.ischecked"
plain
size=
"mini"
type=
"primary"
@
click=
"addprofessor(scope.row)"
>
添加
</el-button>
</
template
>
</el-table-column>
<
template
slot=
"empty"
>
<i
class=
"iconfont icon-hezi501 datai"
></i>
<p
class=
"datap"
>
{{
$t
(
'listjson.notfoundyet'
)
}}
</p>
</
template
>
</el-table>
<div
class=
"pagination"
style=
"background: #ffffff;padding: 5px 0;text-align: center;"
>
<el-pagination
@
size-change=
"handleSizeChange"
@
current-change=
"handleCurrentChange"
background
:page-sizes=
"[10, 20, 30, 40, 50]"
:page-size=
"10"
:current-page=
"cur_page"
layout=
" total, prev, pager, next"
:total=
"totalListResult"
>
</el-pagination>
</div>
</div>
</el-row>
</el-dialog>
<!--新增专家-->
<el-dialog
title=
"添加专家"
:visible
.
sync=
"addVisible"
:append-to-body=
"true"
:close-on-click-modal=
"false"
@
close=
"closeSensor"
class=
"dialogWrap"
>
<el-form
label-position=
"right"
label-width=
"120px"
:model=
"expertData"
:rules=
"expertrules"
ref=
"expertData"
style=
"margin:0 100px 0 60px"
>
<el-form-item
label=
"绑定账号:"
prop=
"empAccount"
>
<el-input
@
blur=
"isempAccountblur"
v-model=
"expertData.empAccount"
></el-input>
</el-form-item>
<el-form-item
label=
"专家名称:"
prop=
"empName"
>
<el-input
maxlength=
"36"
v-model=
"expertData.empName"
></el-input>
</el-form-item>
<el-form-item
label=
"专家title:"
prop=
"professorTitle"
>
<el-input
maxlength=
"36"
v-model=
"expertData.professorTitle"
></el-input>
</el-form-item>
<el-form-item
label=
"专家介绍:"
prop=
"professorIntroduction"
>
<el-input
maxlength=
"500"
v-model=
"expertData.professorIntroduction"
type=
"textarea"
:rows=
"4"
></el-input>
</el-form-item>
<el-form-item
label=
"专家头像:"
ref=
"guestimg"
prop=
"empLogo"
>
<p
class=
"imgTitle"
>
请确保图片清晰、完整,仅支持PNG,JPG,最大不超过2M。
</p>
<div
class=
"uploadImg"
>
<el-input
v-if=
"false"
v-model=
"expertData.empLogo"
></el-input>
<uploadCover
v-if=
"addVisible"
:imgUrl=
"expertData.empLogo"
:upload_Url=
"'/base/upload/uploadOriginalImg'"
:maxsize=
"2"
@
postOneThing=
"guestimg"
>
</uploadCover>
</div>
</el-form-item>
</el-form>
<el-row
style=
"padding-top: 20px;text-align: center"
>
<el-button
type=
"primary"
@
click=
"addexpert"
>
保存
</el-button>
<el-button
@
click=
"expertVisible = false"
>
取 消
</el-button>
</el-row>
</el-dialog>
</div>
</template>
<
script
>
import
api
from
'./api/api'
import
richText
from
"../publishactivity/richtext"
;
import
upImg
from
"../publishactivity/upimg"
;
import
uploadCover
from
"../../components/common/uploadcover"
;
import
validate
from
"../../common/validate"
;
export
default
{
name
:
"contentarticle"
,
data
()
{
let
valuespace
=
(
rule
,
value
,
callback
)
=>
{
var
reg
=
/^
[
a-zA-Z
\u
4e00-
\u
9fa5
]{2,36}
$/
,
reg1
=
/^
\s
+$/g
;
if
(
reg
.
test
(
value
)
&&
reg1
.
test
(
value
))
{
callback
(
new
Error
(
'专家名称格式错误'
))
}
else
{
callback
()
}
};
return
{
formData
:{
channelIds
:[],
classifyIds
:[],
contentChoose
:[],
isCover
:
true
,
isOpenComment
:
0
,
dataKeywordList
:[],
publishType
:
0
,
contentSourceType
:
0
,
isRecommended
:
0
,
contentState
:
0
,
contentLabels
:[],
},
pickerDisabled
:
{
disabledDate
:
(
time
)
=>
{
return
time
.
getTime
()
<
new
Date
(
new
Date
().
toLocaleDateString
()).
getTime
();
}
},
//校验
rules
:
{
contentTitle
:
[{
required
:
true
,
message
:
'请输入文章标题'
,
trigger
:
'blur'
}],
channelIds
:
[{
required
:
true
,
message
:
'请选择频道'
,
trigger
:
'change'
}],
classifyIds
:
[{
required
:
true
,
message
:
'请选择分类'
,
trigger
:
'change'
}],
contentDetail
:
[{
required
:
true
,
message
:
'请输入文章内容'
,
trigger
:
'blur'
}],
contentValidity
:
[{
required
:
true
,
message
:
'请输入文章摘要'
,
trigger
:
'blur'
}],
},
expertrules
:
{
empAccount
:
[{
required
:
true
,
validator
:
validate
.
checkMobileAndEmail
,
trigger
:
'blur'
}],
empName
:
[{
required
:
true
,
message
:
'请输入专家名称'
,
trigger
:
'blur'
},
{
validator
:
valuespace
,
trigger
:
'blur'
}],
professorTitle
:
[{
required
:
true
,
message
:
'请输入专家title'
,
trigger
:
'blur'
}],
professorIntroduction
:
[{
required
:
true
,
message
:
'请输入专家介绍'
,
trigger
:
'blur'
}],
empLogo
:
[{
required
:
true
,
message
:
'请上传专家头像'
,
trigger
:
'blur'
}],
},
activeName
:
'first'
,
channels
:[],
//频道下拉
classifies
:[],
//分类下拉
dictList
:[],
//设置信息
selectData
:[],
selectpropsd
:
{
children
:
'keywordsList'
,
multiple
:
true
,
label
:
'dataName'
,
value
:
'id'
,
},
selectIndustrys
:[],
inputValue
:
''
,
tagIf
:
false
,
tagBtn
:
true
,
expertVisible
:
false
,
modelexpert
:
''
,
searchexpertlist
:[],
cur_page
:
1
,
//页数
totalListResult
:
0
,
numberData
:
10
,
//设置个数
objfessorData
:{},
addVisible
:
false
,
expertData
:{},
contentDiv
:
''
,
}
},
components
:{
richText
,
upImg
,
uploadCover
},
methods
:
{
submitform
(){
if
(
this
.
formData
.
publishType
==
1
&&
!
this
.
formData
.
publishTime
&&
this
.
formData
.
publishTime
!=
""
){
this
.
$message
.
error
(
'请选择发布时间'
)
return
}
if
(
this
.
formData
.
contentSourceType
==
1
&&
!
this
.
formData
.
contentSource
&&
this
.
formData
.
contentSource
!=
" "
){
this
.
$message
.
error
(
'请输入文章来源'
)
return
}
if
(
this
.
formData
.
contentSourceType
==
1
&&
this
.
formData
.
expertData
){
this
.
$message
.
error
(
'请输入文章来源'
)
return
}
if
(
this
.
formData
.
keywordList
.
length
+
this
.
formData
.
contentLabels
.
length
>
10
){
this
.
$message
.
error
(
'标签最多10个'
)
return
}
let
contentimg
=
document
.
getElementById
(
"content1"
).
getElementsByTagName
(
"img"
);
let
imgurlList
=
[];
for
(
let
i
=
0
;
i
<
contentimg
.
length
;
i
++
){
imgurlList
.
push
(
document
.
getElementById
(
"content1"
).
getElementsByTagName
(
"img"
)[
i
].
src
);
}
this
.
formData
.
contentUrls
=
imgurlList
;
this
.
$refs
.
formData
.
validate
((
valid
)
=>
{
if
(
valid
)
{
api
.
checkSensitiveContent
({
content
:
this
.
formData
.
contentDetail
}).
then
(
response
=>
{
if
(
response
.
code
==
0
)
{
if
(
this
.
formData
.
isCover
){
this
.
formData
.
isCover
=
0
;
}
else
{
this
.
formData
.
isCover
=
1
;
}
let
urls
=
this
.
$route
.
query
.
contentId
?
'/base/article/editArticleContent'
:
'/base/article/pushArticleContent'
api
.
pushArticleContent
(
urls
,
this
.
formData
).
then
(
response
=>
{
if
(
response
.
code
==
0
)
{
this
.
$message
.
success
(
this
.
$route
.
query
.
contentId
?
'编辑成功'
:
'发布成功'
);
this
.
$router
.
push
({
path
:
"/conmanagement"
,
query
:{}});
}
else
{
this
.
$message
.
error
(
response
.
msg
);
}
})
.
catch
(
error
=>
{
console
.
log
(
"提交出错"
);
return
false
;
});
}
else
{
this
.
$message
.
error
(
response
.
msg
);
}
})
.
catch
(
error
=>
{
console
.
log
(
"提交出错"
);
return
false
;
});
}
});
},
backd
(){
},
//富文本内容
statedata
(
val
){
this
.
formData
.
contentDetail
=
val
;
this
.
contentDiv
=
val
;
},
//处理上传封面图
uploadimg
(
url
){
this
.
formData
.
contentCoverUrl
=
url
;
},
//获取频道下拉数据
getSelectChannels
(){
api
.
getSelectChannels
().
then
(
response
=>
{
if
(
response
.
code
==
0
)
{
this
.
channels
=
response
.
result
;
}
else
{
this
.
$message
.
error
(
response
.
msgCode
);
}
})
.
catch
(
error
=>
{
console
.
log
(
"提交出错"
);
return
false
;
});
},
//获取分类下拉数据
getSelectClassifies
(){
api
.
getSelectClassifies
().
then
(
response
=>
{
if
(
response
.
code
==
0
)
{
this
.
classifies
=
response
.
result
;
}
else
{
this
.
$message
.
error
(
response
.
msgCode
);
}
})
.
catch
(
error
=>
{
console
.
log
(
"提交出错"
);
return
false
;
});
},
//获取数据字典下拉数据
getSelectData
(){
api
.
getSelectData
().
then
(
response
=>
{
if
(
response
.
code
==
0
)
{
this
.
selectData
=
response
.
result
;
}
else
{
this
.
$message
.
error
(
response
.
msgCode
);
}
})
.
catch
(
error
=>
{
console
.
log
(
"提交出错"
);
return
false
;
});
},
//整合数据字典数据
selectindustry
(
val
){
let
arr
=
[];
for
(
let
i
=
0
;
i
<
val
.
length
;
i
++
){
arr
.
push
({
dataId
:
val
[
i
][
0
],
id
:
val
[
i
][
1
]})
};
this
.
formData
.
keywordList
=
arr
;
},
//添加小标签
showInput
(){
let
inputValue
=
this
.
inputValue
;
if
(
this
.
formData
.
contentLabels
){
if
(
this
.
formData
.
contentLabels
.
indexOf
(
inputValue
)
>
-
1
){
this
.
$message
.
error
(
this
.
$t
(
'releasejson.companylabelof'
));
return
}
if
(
inputValue
)
{
this
.
formData
.
contentLabels
.
push
(
inputValue
);
if
(
this
.
formData
.
contentLabels
.
length
>=
10
){
this
.
tagBtn
=
false
;
}
}
}
this
.
inputValue
=
''
;
this
.
tagIf
=
!
this
.
tagIf
;
},
hideInput
(){
this
.
inputValue
=
''
;
this
.
tagIf
=
!
this
.
tagIf
;
if
(
this
.
formData
.
contentLabels
.
length
<=
10
){
this
.
tagBtn
=
true
;
}
},
//删除小标签
handleClose
(
tag
)
{
this
.
formData
.
contentLabels
.
splice
(
this
.
formData
.
contentLabels
.
indexOf
(
tag
),
1
);
if
(
this
.
formData
.
contentLabels
.
length
<
10
){
this
.
tagBtn
=
true
;
}
},
//获取设置信息数据
getselectDictList
(){
api
.
selectDictList
(
'content_type'
).
then
(
response
=>
{
if
(
response
.
code
==
0
)
{
this
.
dictList
=
response
.
result
;
}
else
{
this
.
$message
.
error
(
response
.
msg
);
}
})
.
catch
(
error
=>
{
console
.
log
(
"提交出错"
);
return
false
;
})
},
//专家列表弹出
addobjfessor
(){
this
.
expertVisible
=
true
;
this
.
getsearchProfessor
();
},
//条件查询专家列表
searchexpert
(){
this
.
cur_page
=
1
;
this
.
getsearchProfessor
();
},
// 分页导航
handleCurrentChange
(
val
)
{
this
.
cur_page
=
val
;
this
.
getsearchProfessor
();
},
//设置个数
handleSizeChange
(
val
)
{
this
.
numberData
=
val
;
this
.
getsearchProfessor
();
},
//专家列表
getsearchProfessor
(){
let
params
=
{
pagination
:
{
number
:
this
.
numberData
,
start
:
0
,
numberOfPages
:
this
.
cur_page
||
1
,
totalItemCount
:
0
},
search
:
{
empName
:
this
.
modelexpert
},
sort
:
{}
};
api
.
searchProfessor
(
params
).
then
(
response
=>
{
if
(
response
.
code
==
0
)
{
this
.
searchexpertlist
=
response
.
result
.
records
;
this
.
totalListResult
=
response
.
result
.
total
;
}
else
{
this
.
$message
.
error
(
response
.
msg
);
}
})
.
catch
(
error
=>
{
console
.
log
(
"提交出错"
);
return
false
;
});
},
//添加单个专家
addprofessor
(
val
){
this
.
$message
.
success
(
'添加成功'
);
this
.
objfessorData
=
val
;
this
.
formData
.
contentProfessor
=
val
;
this
.
expertVisible
=
false
;
},
//是否选择封面图
coverchange
(
val
){
},
//是否开放评论
commentchange
(
val
){
console
.
log
(
val
)
},
//发布时间切换
publishchange
(
val
){
if
(
val
==
0
){
this
.
formData
.
publishTime
=
''
;
}
},
//文章来源切换
sourcechange
(
val
){
if
(
val
==
0
){
this
.
formData
.
contentSource
=
''
;
this
.
formData
.
originalUrl
=
''
;
}
else
{
this
.
formData
.
contentAuthor
=
''
;
}
},
//是否为推荐
recommendedchange
(
val
){
if
(
val
==
0
){
this
.
objfessorData
=
{};
}
},
//添加专家
closeSensor
(){
this
.
expertData
=
{};
},
//专家列表
closeexpert
(){
this
.
modelexpert
=
''
;
},
guestimg
(
url
){
this
.
expertData
.
empLogo
=
url
;
this
.
$refs
.
guestimg
.
clearValidate
();
},
isempAccountblur
(){
this
.
$refs
[
'expertData'
].
validateField
(
'empAccount'
,
empAccountError
=>
{
//验证手机号码是否正确
var
empAccount
=
this
.
expertData
.
empAccount
;
if
(
!
empAccountError
)
{
api
.
searchAccount
(
this
.
expertData
.
empAccount
).
then
(
response
=>
{
if
(
response
.
code
==
0
)
{
if
(
response
.
result
){
this
.
expertData
=
response
.
result
;
}
else
{
this
.
expertData
=
{};
this
.
expertData
.
empLogo
=
''
;
this
.
expertData
.
empAccount
=
empAccount
;
}
}
else
{
this
.
$message
.
error
(
response
.
msg
);
}
})
.
catch
(
error
=>
{
console
.
log
(
"提交出错"
);
return
false
;
});
}
else
{
return
false
;
}
});
},
addexpert
(){
this
.
$refs
.
expertData
.
validate
((
valid
)
=>
{
if
(
valid
)
{
api
.
addProfessor
(
this
.
expertData
).
then
(
response
=>
{
if
(
response
.
code
==
0
)
{
this
.
objfessorData
=
response
.
result
;
this
.
formData
.
contentProfessor
=
response
.
result
;
this
.
addVisible
=
false
;
}
else
{
this
.
$message
.
error
(
response
.
msg
);
}
})
.
catch
(
error
=>
{
console
.
log
(
"提交出错"
);
return
false
;
});
}
});
},
},
mounted
(){
this
.
getSelectChannels
();
this
.
getSelectClassifies
();
this
.
getselectDictList
();
this
.
getSelectData
();
if
(
this
.
$route
.
query
.
contentId
){
api
.
getArticleContent
(
this
.
$route
.
query
.
contentId
).
then
(
response
=>
{
if
(
response
.
code
==
0
)
{
this
.
formData
=
response
.
result
;
if
(
!
this
.
formData
.
contentChoose
){
this
.
formData
.
contentChoose
=
[];
}
let
selectIndustrys
=
[];
this
.
selectIndustrys
=
[];
for
(
let
i
in
response
.
result
.
keywordList
){
selectIndustrys
.
push
([
response
.
result
.
keywordList
[
i
].
dataId
,
response
.
result
.
keywordList
[
i
].
id
]);
}
this
.
selectIndustrys
=
selectIndustrys
;
if
(
response
.
result
.
contentProfessor
){
this
.
objfessorData
=
response
.
result
.
contentProfessor
;
}
else
{
this
.
objfessorData
=
{};
}
}
else
{
this
.
$message
.
error
(
response
.
msg
);
}
})
.
catch
(
error
=>
{
console
.
log
(
"提交出错"
);
return
false
;
});
}
}
}
</
script
>
<
style
scoped
>
.el-tag
+
.el-tag
{
margin-left
:
10px
;
}
.el-tag--mini
{
height
:
20px
!important
;
line-height
:
20px
!important
;
}
</
style
>
\ No newline at end of file
src/views/specialactivity/reportaudit.vue
View file @
b9b676cb
...
...
@@ -53,7 +53,9 @@
<el-table
v-if=
"!istable"
:data=
"publishActivitydata"
tooltip-effect=
"dark"
class=
"projectTable2"
>
<el-table-column
label=
"序号"
type=
"index"
width=
"80"
></el-table-column>
<el-table-column
label=
"类型"
align=
"center"
>
项目评论
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
reportType
==
0
?
'项目评论'
:
scope
.
row
.
reportType
==
1
?
'文章评论'
:
'- -'
}}
</
template
>
</el-table-column>
<el-table-column
prop=
"reportCode"
label=
"举报原因"
align=
"center"
>
</el-table-column>
...
...
src/views/specialactivity/reportinside.vue
View file @
b9b676cb
...
...
@@ -18,7 +18,7 @@
<span>
{{
addData
.
commentsId
}}
</span>
</el-form-item>
<el-form-item
label=
"举报类型:"
style=
"width: 100%;"
>
<span>
项目评论
</span>
<span>
{{
addData
.
reportType
==
0
?
'项目评论'
:
addData
.
reportType
==
1
?
'文章评论'
:
'- -'
}}
</span>
</el-form-item>
<el-form-item
label=
"举报内容:"
style=
"width: 100%;"
>
<span
v-html=
"analyzeEmoji(addData.commentsContent)"
></span>
...
...
src/views/specialactivity/specialsummary.vue
View file @
b9b676cb
...
...
@@ -64,7 +64,7 @@
<el-button
type=
"text"
@
click=
"$router.push(
{path:'/subjectstatistics',query:{subjectId:scope.row.subjectId}})">
统计
</el-button>
<el-button
v-if=
"scope.row.subjectState != 0"
type=
"text"
@
click=
"$router.push(
{path:'/entrycolumn',query:{subjectId:scope.row.subjectId}})">
<el-button
type=
"text"
@
click=
"$router.push(
{path:'/entrycolumn',query:{subjectId:scope.row.subjectId}})">
报名列表
</el-button>
<el-button
v-if=
"scope.row.subjectState == 2"
type=
"text"
@
click=
"execute(scope.row)"
>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment