Merge branch 'master' of codeup.aliyun.com:6265f483e4166464dc2f9c14/boeu/portal into online

This commit is contained in:
dongruihua
2022-06-23 16:23:24 +08:00
7 changed files with 152 additions and 43 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 27 KiB

View File

@@ -93,6 +93,13 @@ const queryComments=function(pageSize){
return ajax.get(`/xboe/m/boe/cases/query-comments?pageSize=${pageSize}`); return ajax.get(`/xboe/m/boe/cases/query-comments?pageSize=${pageSize}`);
} }
/**
* 专业分类
* */
const majorTypes=function (){
return ajax.get('/xboe/m/boe/cases/majorTypes');
}
export default { export default {
indexList, indexList,
queryList, queryList,
@@ -104,5 +111,6 @@ export default {
query, query,
usernameList, usernameList,
queryPraises, queryPraises,
queryComments queryComments,
majorTypes
} }

View File

@@ -181,10 +181,9 @@ export default {
this.isFavorite = newVal; this.isFavorite = newVal;
}, },
data(newVal,oldVal){ data(newVal,oldVal){
// console.log(newVal,'newVal'); if(newVal && newVal.id!=''){
// if(newVal && newVal.id!=''){ this.checkHas();
// this.checkHas(); }
// }
} }
}, },
created(){ created(){

View File

@@ -126,9 +126,12 @@
{{ca.sysCreateTime.substring(0,10)}} {{ca.sysCreateTime.substring(0,10)}}
</div> --> </div> -->
<a :href="'case/detail?id='+ca.id" > <a :href="'case/detail?id='+ca.id" >
<span class="case-title one-line-ellipsis"> <el-tooltip class="item" :content="ca.title" placement="bottom" effect="light" :visible-arrow="false" popper-class="text-tooltip">
<span class="case-title one-line-ellipsis">
{{ca.title}} {{ca.title}}
</span> </span>
</el-tooltip>
<div class="case-text three-line-ellipsis"> <div class="case-text three-line-ellipsis">
{{ca.summary}} {{ca.summary}}
</div> </div>

View File

@@ -43,12 +43,19 @@
<interactBar :data="caseDetail" :type="3" :comments="false" :shares="true" :unicom="true"></interactBar> <interactBar :data="caseDetail" :type="3" :comments="false" :shares="true" :unicom="true"></interactBar>
</div> </div>
</el-card> </el-card>
<el-card :body-style="{ padding: '0px' }" class="jianjie" id="pdfPreview"> <el-card v-if="Internet == 1" :body-style="{ padding: '0px' }" class="jianjie" id="pdfPreview">
<!-- <div class="content"> <!-- <div class="content">
{{ caseDetail.content }} {{ caseDetail.content }}
</div> --> </div> -->
<pdfPreview v-if="pdfPath" :filePath="pdfPath"></pdfPreview> <pdfPreview v-if="pdfPath" :filePath="pdfPath"></pdfPreview>
</el-card> </el-card>
<el-card v-if="Internet == 2" style="background-color:#eee" class="jianjie pdftext" id="pdfPreview">
<span>案例内容只能在内网环境下查看</span>
</el-card>
<el-card v-else-if="Internet == 3" style="background-color:#eee" class="jianjie pdftext" id="pdfPreview">
<span>网络安全检测中</span>
</el-card>
<div class="postfixt-bot"> <div class="postfixt-bot">
<div class="postfixt-bot-box" id="pdfTopBox"> <div class="postfixt-bot-box" id="pdfTopBox">
<div style="display: flex;justify-content: space-between;"> <div style="display: flex;justify-content: space-between;">
@@ -82,15 +89,13 @@
<div style="width: 245px;margin-left: 5px;" :class="zoomShow?'':'fixd-box-show'"> <div style="width: 245px;margin-left: 5px;" :class="zoomShow?'':'fixd-box-show'">
<div> <div>
<div id="fixd-box"> <div id="fixd-box">
<el-card class="ranking-card" > <!-- <el-card class="ranking-card" >
<div slot="header"> <div slot="header">
<span style="font-size: 14px;font-weight: 600;color: #333333;">贡献榜</span> <span style="font-size: 14px;font-weight: 600;color: #333333;">贡献榜</span>
</div> </div>
<div style="padding-bottom:10px"> <div style="padding-bottom:10px">
<el-row class="ranking-title"> <el-row class="ranking-title">
<!-- <el-col :span="15" style="color: #333333;font-size: 14px;">名称</el-col> --> </el-row>
<!-- <el-col :offset="4" :span="5" class="center" style="color: #333333;font-size: 14px;">分数</el-col> -->
</el-row>
<el-row class="ranking-title bacolor" v-for="(item, index) in ankingList" :key="index" > <el-row class="ranking-title bacolor" v-for="(item, index) in ankingList" :key="index" >
<el-col :span="6" style="height:34px"> <el-col :span="6" style="height:34px">
<img v-if="index===0" :src="`${webBaseUrl}/images/first.png`"/> <img v-if="index===0" :src="`${webBaseUrl}/images/first.png`"/>
@@ -98,14 +103,11 @@
<img v-if="index===2" :src="`${webBaseUrl}/images/third.png`"/> <img v-if="index===2" :src="`${webBaseUrl}/images/third.png`"/>
<span style="margin-left: 10px" v-if="index!=2&&index!=0&&index!=1">{{index+1}}</span> <span style="margin-left: 10px" v-if="index!=2&&index!=0&&index!=1">{{index+1}}</span>
</el-col> </el-col>
<el-tooltip :enterable="false" effect="light" :content="item.sysCreateUname" placement="bottom" :visible-arrow="false" popper-class="text-tooltip">
<el-col :span="15" class="title-line-ellipsis"> {{ item.sysCreateUname }}</el-col> <el-col :span="15" class="title-line-ellipsis"> {{ item.sysCreateUname }}</el-col>
</el-tooltip>
<!-- <el-col class="center" style="color: #FF8E00;" :span="5">{{ item.score }}</el-col> -->
</el-row> </el-row>
</div> </div>
</el-card> </el-card> -->
<div style="height: 10px;"></div> <!-- <div style="height: 10px;"></div> -->
<el-card class="ranking-card" > <el-card class="ranking-card" >
<div slot="header"> <div slot="header">
<span style="font-size: 14px;font-weight: 600;color: #333333;">人气榜</span> <span style="font-size: 14px;font-weight: 600;color: #333333;">人气榜</span>
@@ -122,7 +124,7 @@
<img v-if="index===2" :src="`${webBaseUrl}/images/third.png`"/> <img v-if="index===2" :src="`${webBaseUrl}/images/third.png`"/>
<span style="margin-left: 10px" v-if="index!=2&&index!=0&&index!=1">{{index+1}}</span> <span style="margin-left: 10px" v-if="index!=2&&index!=0&&index!=1">{{index+1}}</span>
</el-col> </el-col>
<el-tooltip :enterable="false" @click.native="jumpRouter(item)" effect="light" :content="item.title" placement="bottom" :visible-arrow="false" popper-class="text-tooltip"> <el-tooltip :enterable="false" @click.native="jumpRouter(item)" effect="light" :content="item.title + '' + item.authorName+ ')'" placement="bottom" :visible-arrow="false" popper-class="text-tooltip">
<el-col :span="15" style="cursor: pointer;" class="title-line-ellipsis"> {{ item.title }}</el-col> <el-col :span="15" style="cursor: pointer;" class="title-line-ellipsis"> {{ item.title }}</el-col>
</el-tooltip> </el-tooltip>
<!-- <el-col class="center" style="color: #FF8E00;" :span="5">{{ item.score }}</el-col> --> <!-- <el-col class="center" style="color: #FF8E00;" :span="5">{{ item.score }}</el-col> -->
@@ -146,7 +148,7 @@
<img v-if="index===2" :src="`${webBaseUrl}/images/third.png`"/> <img v-if="index===2" :src="`${webBaseUrl}/images/third.png`"/>
<span style="margin-left: 10px" v-if="index!=2&&index!=0&&index!=1">{{index+1}}</span> <span style="margin-left: 10px" v-if="index!=2&&index!=0&&index!=1">{{index+1}}</span>
</el-col> </el-col>
<el-tooltip :enterable="false" @click.native="jumpRouter(item)" effect="light" :content="item.title" placement="bottom" :visible-arrow="false" popper-class="text-tooltip"> <el-tooltip :enterable="false" @click.native="jumpRouter(item)" effect="light" :content="item.title + '' + item.authorName+ ')'" placement="bottom" :visible-arrow="false" popper-class="text-tooltip">
<el-col :span="15" style="cursor: pointer;" class="title-line-ellipsis"> {{ item.title }}</el-col> <el-col :span="15" style="cursor: pointer;" class="title-line-ellipsis"> {{ item.title }}</el-col>
</el-tooltip> </el-tooltip>
<!-- <el-col class="center" style="color: #FF8E00;" :span="5">{{ item.score }}</el-col> --> <!-- <el-col class="center" style="color: #FF8E00;" :span="5">{{ item.score }}</el-col> -->
@@ -187,6 +189,7 @@ export default {
}, },
data() { data() {
return { return {
Internet:3,//1是成功 2是是失败 3是检测中
noData:true, noData:true,
zoomShow:true, zoomShow:true,
isTopBoxShow:true, isTopBoxShow:true,
@@ -209,7 +212,33 @@ export default {
}; };
}, },
mounted() { mounted() {
//this.pdfPath=this.basePath+'/case/demo1.pdf'; let $this = this;
this.Intsucc();
let xmlhttp=this.getXmlHttpRequest();
let timedOut = false;
let timer = setTimeout(function(){
timedOut = true;
xmlhttp.abort();
}, 5000);
xmlhttp.open("HEAD", "http://uapi.boe.com.cn",true);
xmlhttp.send();
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4) {
if (xmlhttp.status==200){
clearTimeout(timer);
$this.Internet = 1;
}else{
clearTimeout(timer);
$this.Internet = 2;
}
}else{
if(imedOut) return;//忽略中止请求
clearTimeout(timer);//取消等待的超时
}
}
this.resolveId = this.$route.query.id; this.resolveId = this.$route.query.id;
this.$watermark.set(this.userInfo.name+this.userInfo.loginName); this.$watermark.set(this.userInfo.name+this.userInfo.loginName);
if (this.resolveId) { if (this.resolveId) {
@@ -226,6 +255,27 @@ export default {
); );
}, },
methods: { methods: {
getXmlHttpRequest() {
if (window.XMLHttpRequest) {
return new XMLHttpRequest();
}
else if (window.ActiveXObject) {
return new ActiveXObject("Microsoft.XMLHTTP");
}
},
Intsucc(){
const loading = this.$loading({
lock: true,
text: '正在进行安全检测',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
});
setTimeout(() => {
loading.close();
}, 2000);
},
getdomain() { getdomain() {
let key = "org_domain"; let key = "org_domain";
apiDict.items(key).then(res => { apiDict.items(key).then(res => {
@@ -325,7 +375,7 @@ export default {
} }
if(scrollTop > 630) { if(scrollTop > 630) {
this.isTopBoxShow = true; this.isTopBoxShow = true;
document.querySelector('#fixd-box').style.cssText = "position: fixed;top: -500px;width:245.5px"; document.querySelector('#fixd-box').style.cssText = "position: fixed;top: -250px;width:245.5px";
} else { } else {
document.querySelector('#fixd-box').style.cssText = "position: static"; document.querySelector('#fixd-box').style.cssText = "position: static";
} }
@@ -406,6 +456,15 @@ export default {
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
.pdftext{
span{
font-size: 25px;
color: #ccc;
font-weight: bold;
line-height: 200px;
}
text-align: center;
}
.fixd-box-show{ .fixd-box-show{
display: none; display: none;
} }

View File

@@ -49,14 +49,14 @@
<div style="flex:1" id="searchBox"> <div style="flex:1" id="searchBox">
<el-radio-group v-model="queryCondition.majorType" size="mini" @change="search()"> <el-radio-group v-model="queryCondition.majorType" size="mini" @change="search()">
<el-radio-button :label="null">全部</el-radio-button> <el-radio-button :label="null">全部</el-radio-button>
<el-radio-button v-for="item in Profess" :key="item.code" :label="item.code" > {{ item.name }} </el-radio-button> <el-radio-button v-for="item in speciData" :key="item.code" :label="item.code" > {{ item.name }} </el-radio-button>
</el-radio-group> </el-radio-group>
</div> </div>
</div> </div>
</el-col> </el-col>
</el-row> </el-row>
</div> </div>
<div class="searBox" v-if="searchwd"> <div class="searBox" v-if="speciData.length > 15">
<el-button type="text" id="closeSearchBtn" @click="closeSearch"> <el-button type="text" id="closeSearchBtn" @click="closeSearch">
{{word}} {{word}}
<i :class="showAll ? 'el-icon-arrow-up ': 'el-icon-arrow-down'"></i> <i :class="showAll ? 'el-icon-arrow-up ': 'el-icon-arrow-down'"></i>
@@ -131,15 +131,12 @@
<div style="width: 245px;margin-left: 5px;"> <div style="width: 245px;margin-left: 5px;">
<div> <div>
<div id="fixd-box"> <div id="fixd-box">
<el-card class="ranking-card" > <!-- <el-card class="ranking-card" >
<div slot="header"> <div slot="header">
<span style="font-size: 14px;font-weight: 600;color: #333333;">贡献榜</span> <span style="font-size: 14px;font-weight: 600;color: #333333;">贡献榜</span>
</div> </div>
<div style="padding-bottom:10px"> <div style="padding-bottom:10px">
<el-row class="ranking-title"> <el-row class="ranking-title"> </el-row>
<!-- <el-col :span="15" style="color: #333333;font-size: 14px;">名称</el-col> -->
<!-- <el-col :offset="4" :span="5" class="center" style="color: #333333;font-size: 14px;">分数</el-col> -->
</el-row>
<el-row class="ranking-title bacolor" v-for="(item, index) in ankingList" :key="index" > <el-row class="ranking-title bacolor" v-for="(item, index) in ankingList" :key="index" >
<el-col :span="6" style="height:34px"> <el-col :span="6" style="height:34px">
<img v-if="index===0" :src="`${webBaseUrl}/images/first.png`"/> <img v-if="index===0" :src="`${webBaseUrl}/images/first.png`"/>
@@ -147,14 +144,11 @@
<img v-if="index===2" :src="`${webBaseUrl}/images/third.png`"/> <img v-if="index===2" :src="`${webBaseUrl}/images/third.png`"/>
<span style="margin-left: 10px" v-if="index!=2&&index!=0&&index!=1">{{index+1}}</span> <span style="margin-left: 10px" v-if="index!=2&&index!=0&&index!=1">{{index+1}}</span>
</el-col> </el-col>
<el-tooltip :enterable="false" effect="light" :content="'名称('+ item.sysCreateUname + ')'" :visible-arrow="false" popper-class="text-tooltip" placement="bottom">
<el-col :span="15" class="title-line-ellipsis"> {{ item.sysCreateUname }}</el-col> <el-col :span="15" class="title-line-ellipsis"> {{ item.sysCreateUname }}</el-col>
</el-tooltip>
<!-- <el-col class="center" style="color: #FF8E00;" :span="5">{{ item.score }}</el-col> -->
</el-row> </el-row>
</div> </div>
</el-card> </el-card> -->
<div style="height: 10px;"></div> <!-- <div style="height: 10px;"></div> -->
<el-card class="ranking-card" > <el-card class="ranking-card" >
<div slot="header"> <div slot="header">
<span style="font-size: 14px;font-weight: 600;color: #333333;">人气榜</span> <span style="font-size: 14px;font-weight: 600;color: #333333;">人气榜</span>
@@ -171,7 +165,7 @@
<img v-if="index===2" :src="`${webBaseUrl}/images/third.png`"/> <img v-if="index===2" :src="`${webBaseUrl}/images/third.png`"/>
<span style="margin-left: 10px" v-if="index!=2&&index!=0&&index!=1">{{index+1}}</span> <span style="margin-left: 10px" v-if="index!=2&&index!=0&&index!=1">{{index+1}}</span>
</el-col> </el-col>
<el-tooltip :enterable="false" @click.native="jumpRouter(item)" effect="light" :content="item.title" placement="bottom" :visible-arrow="false" popper-class="text-tooltip"> <el-tooltip :enterable="false" @click.native="jumpRouter(item)" effect="light" :content="item.title + '' + item.authorName+ ')'" placement="bottom" :visible-arrow="false" popper-class="text-tooltip">
<el-col :span="15" style="cursor: pointer;" class="title-line-ellipsis"> {{ item.title }}</el-col> <el-col :span="15" style="cursor: pointer;" class="title-line-ellipsis"> {{ item.title }}</el-col>
</el-tooltip> </el-tooltip>
<!-- <el-col class="center" style="color: #FF8E00;" :span="5">{{ item.score }}</el-col> --> <!-- <el-col class="center" style="color: #FF8E00;" :span="5">{{ item.score }}</el-col> -->
@@ -195,7 +189,7 @@
<img v-if="index===2" :src="`${webBaseUrl}/images/third.png`"/> <img v-if="index===2" :src="`${webBaseUrl}/images/third.png`"/>
<span style="margin-left: 10px" v-if="index!=2&&index!=0&&index!=1">{{index+1}}</span> <span style="margin-left: 10px" v-if="index!=2&&index!=0&&index!=1">{{index+1}}</span>
</el-col> </el-col>
<el-tooltip :enterable="false" @click.native="jumpRouter(item)" effect="light" :content="item.title" placement="bottom" :visible-arrow="false" popper-class="text-tooltip"> <el-tooltip :enterable="false" @click.native="jumpRouter(item)" effect="light" :content="item.title + '' + item.authorName+ ')'" placement="bottom" :visible-arrow="false" popper-class="text-tooltip">
<el-col :span="15" style="cursor: pointer;" class="title-line-ellipsis"> {{ item.title }}</el-col> <el-col :span="15" style="cursor: pointer;" class="title-line-ellipsis"> {{ item.title }}</el-col>
</el-tooltip> </el-tooltip>
<!-- <el-col class="center" style="color: #FF8E00;" :span="5">{{ item.score }}</el-col> --> <!-- <el-col class="center" style="color: #FF8E00;" :span="5">{{ item.score }}</el-col> -->
@@ -272,6 +266,7 @@ export default {
}, },
data() { data() {
return { return {
speciData:[],
moreState: 1, // 1 加载更多 2 加载中 3无数据 moreState: 1, // 1 加载更多 2 加载中 3无数据
isSeach: false, isSeach: false,
searchwd: true, searchwd: true,
@@ -296,8 +291,8 @@ export default {
orderField: "comments", orderField: "comments",
// breCommend:null, // breCommend:null,
keyWord: "", keyWord: "",
majorType:'', //专业分类 majorType:null, //专业分类
orgDomain: '', // 组织领域 orgDomain: null, // 组织领域
orderAsc: false orderAsc: false
}, },
keyWord: "", keyWord: "",
@@ -313,6 +308,12 @@ export default {
}, },
mounted() { mounted() {
if(this.searchTags.length == 0){
console.log('gyigyu')
this.queryCondition.majorType = null;
this.queryCondition.orgDomain = null;
};
this.specialized();
this.$nextTick(function() { this.$nextTick(function() {
this.closeSearch(); this.closeSearch();
}); });
@@ -332,6 +333,7 @@ export default {
// this.getCaseData(); // this.getCaseData();
this.search(); this.search();
window.addEventListener("scroll", this.handleScroll); window.addEventListener("scroll", this.handleScroll);
}, },
watch: { watch: {
@@ -347,6 +349,15 @@ export default {
window.removeEventListener("scroll", this.handleScroll); window.removeEventListener("scroll", this.handleScroll);
}, },
methods: { methods: {
specialized(){
apiCase.majorTypes().then(res =>{
if(res.status == 200){
this.speciData = res.result
}
})
},
jumcasedet(item) { jumcasedet(item) {
this.$router.push({path:'/case/detail',query:{id:item.id}}); this.$router.push({path:'/case/detail',query:{id:item.id}});
@@ -487,7 +498,7 @@ export default {
} }
if (scrollTop > 630) { if (scrollTop > 630) {
document.querySelector("#fixd-box").style.cssText = document.querySelector("#fixd-box").style.cssText =
"position: fixed;top: -500px;width:245.5px"; "position: fixed;top: -250px;width:245.5px";
} else { } else {
document.querySelector("#fixd-box").style.cssText = "position: static"; document.querySelector("#fixd-box").style.cssText = "position: static";
} }
@@ -609,13 +620,15 @@ export default {
} }
}, },
tagsClose(tag, index) { tagsClose(tag, index) {
for (let i in this.queryCondition) { for (let i in this.queryCondition) {
if (tag.type === i) { if (tag.type === i) {
if (i == "majorType") { if (i == "majorType") {
this.queryCondition.majorType = 0; this.queryCondition.majorType = '';
} }
if (i == "orgDomain") { if (i == "orgDomain") {
this.queryCondition.orgDomain = 0; this.queryCondition.orgDomain = '';
} }
if (i == "keyWord") { if (i == "keyWord") {
this.queryCondition.keyWord = ""; this.queryCondition.keyWord = "";
@@ -623,9 +636,17 @@ export default {
} }
this.queryCondition[i] = ""; this.queryCondition[i] = "";
this.searchTags.splice(index, 1); this.searchTags.splice(index, 1);
if (i == "majorType") {
this.queryCondition.majorType = null;
}
if (i == "orgDomain") {
this.queryCondition.orgDomain = null;
}
this.getCaseData(); this.getCaseData();
} }
} }
}, },
getCaseUserData(caseList) { getCaseUserData(caseList) {
let ids = caseList.map((item, index) => { let ids = caseList.map((item, index) => {
@@ -674,6 +695,9 @@ export default {
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
::v-deep .el-radio-button{
margin-right:0px;
}
::v-deep .el-button { ::v-deep .el-button {
border-radius: 0px; border-radius: 0px;
} }

View File

@@ -434,7 +434,23 @@ export default {
this.category = ""; this.category = "";
this.categorySub = ""; this.categorySub = "";
} }
this.searchTags.splice(index, 1); this.searchTags.splice(index, 1);
if(i === 'type') {
this.category = null;
this.categorySub = null;
}
if (i === "sysType1") {
this.types.sysTypes = null;
}
if (i === "sysType2") {
this.types.subOne = null;
}
if (i === "sysType3") {
this.types.subTow = null;
}
this.searchData(); this.searchData();
} }
} }