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}`);
}
/**
* 专业分类
* */
const majorTypes=function (){
return ajax.get('/xboe/m/boe/cases/majorTypes');
}
export default {
indexList,
queryList,
@@ -104,5 +111,6 @@ export default {
query,
usernameList,
queryPraises,
queryComments
queryComments,
majorTypes
}

View File

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

View File

@@ -126,9 +126,12 @@
{{ca.sysCreateTime.substring(0,10)}}
</div> -->
<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}}
</span>
</el-tooltip>
<div class="case-text three-line-ellipsis">
{{ca.summary}}
</div>

View File

@@ -43,12 +43,19 @@
<interactBar :data="caseDetail" :type="3" :comments="false" :shares="true" :unicom="true"></interactBar>
</div>
</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">
{{ caseDetail.content }}
</div> -->
<pdfPreview v-if="pdfPath" :filePath="pdfPath"></pdfPreview>
</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-box" id="pdfTopBox">
<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>
<div id="fixd-box">
<el-card class="ranking-card" >
<!-- <el-card class="ranking-card" >
<div slot="header">
<span style="font-size: 14px;font-weight: 600;color: #333333;">贡献榜</span>
</div>
<div style="padding-bottom:10px">
<el-row class="ranking-title">
<!-- <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>
<el-row class="ranking-title bacolor" v-for="(item, index) in ankingList" :key="index" >
<el-col :span="6" style="height:34px">
<img v-if="index===0" :src="`${webBaseUrl}/images/first.png`"/>
@@ -98,14 +103,11 @@
<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>
</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-tooltip>
<!-- <el-col class="center" style="color: #FF8E00;" :span="5">{{ item.score }}</el-col> -->
</el-row>
</div>
</el-card>
<div style="height: 10px;"></div>
</el-card> -->
<!-- <div style="height: 10px;"></div> -->
<el-card class="ranking-card" >
<div slot="header">
<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`"/>
<span style="margin-left: 10px" v-if="index!=2&&index!=0&&index!=1">{{index+1}}</span>
</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-tooltip>
<!-- <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`"/>
<span style="margin-left: 10px" v-if="index!=2&&index!=0&&index!=1">{{index+1}}</span>
</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-tooltip>
<!-- <el-col class="center" style="color: #FF8E00;" :span="5">{{ item.score }}</el-col> -->
@@ -187,6 +189,7 @@ export default {
},
data() {
return {
Internet:3,//1是成功 2是是失败 3是检测中
noData:true,
zoomShow:true,
isTopBoxShow:true,
@@ -209,7 +212,33 @@ export default {
};
},
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.$watermark.set(this.userInfo.name+this.userInfo.loginName);
if (this.resolveId) {
@@ -226,6 +255,27 @@ export default {
);
},
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() {
let key = "org_domain";
apiDict.items(key).then(res => {
@@ -325,7 +375,7 @@ export default {
}
if(scrollTop > 630) {
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 {
document.querySelector('#fixd-box').style.cssText = "position: static";
}
@@ -406,6 +456,15 @@ export default {
</script>
<style scoped lang="scss">
.pdftext{
span{
font-size: 25px;
color: #ccc;
font-weight: bold;
line-height: 200px;
}
text-align: center;
}
.fixd-box-show{
display: none;
}

View File

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

View File

@@ -434,7 +434,23 @@ export default {
this.category = "";
this.categorySub = "";
}
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();
}
}