mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/learning-system-portal.git
synced 2025-12-22 09:16:44 +08:00
Merge branch 'master' of codeup.aliyun.com:6265f483e4166464dc2f9c14/boeu/portal into online
This commit is contained in:
Binary file not shown.
|
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 27 KiB |
@@ -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
|
||||
}
|
||||
|
||||
@@ -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(){
|
||||
|
||||
@@ -126,9 +126,12 @@
|
||||
{{ca.sysCreateTime.substring(0,10)}}
|
||||
</div> -->
|
||||
<a :href="'case/detail?id='+ca.id" >
|
||||
<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>
|
||||
|
||||
@@ -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,14 +89,12 @@
|
||||
<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 class="ranking-title bacolor" v-for="(item, index) in ankingList" :key="index" >
|
||||
<el-col :span="6" style="height:34px">
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user