Commit b9b676cb authored by anxixi's avatar anxixi

内容管理相关开发

parent f9ebd09c
......@@ -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:'',
......
......@@ -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: '发布文章'}
},
]
},
{
......
......@@ -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
<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="searchs.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="searchs.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="searchs.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>
......
<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>
......
......@@ -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="showState" label="数据名称" align="center">
<el-table-column prop="dataName" 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="expertData" style="margin:0 100px 0 60px">
<el-form-item label="数据名称:" prop="showTitle">
<el-input v-model="expertData.showTitle" 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="formData" style="margin:0 100px 0 60px">
<el-form-item label="数据名称:" prop="dataName">
<el-input v-model="formData.dataName" 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.getselectBaseShowList();
this.getsearchBaseData();
},
//设置个数
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>
<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\u4e00-\u9fa5 ]{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
......@@ -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>
......
......@@ -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>
......
......@@ -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)">
......
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