Merge remote-tracking branch 'origin/stat' into stat

This commit is contained in:
86182
2022-10-09 19:44:28 +08:00
36 changed files with 4435 additions and 5240 deletions

View File

@@ -14,7 +14,7 @@
</div>
<div class="newcote-text">
<el-input type="textarea" :autofocus="true" placeholder="好记性不如烂笔头,记录些什么吧~"
v-model="mynoteData.content" maxlength="200" :autosize="{ minRows: 18, maxRows: 20}"
v-model="mynoteData.content" maxlength="200" :autosize="{ minRows: 8, maxRows: 20}"
show-word-limit>
</el-input>
</div>
@@ -66,7 +66,7 @@
<span class="sm">{{mynoteData.openType == 1?'公开':'私密'}}</span>
<svg-icon style="float:right;font-size:26px;margin-top:16px" icon-class="spot"></svg-icon>
</p>
<div class="newcote-content" style="margin-top:10px;height:436px">
<div class="newcote-content" style="margin-top:10px;min-height:236px;height: 100%;">
<div class="newcote-time" v-if="mynoteData.playTime != 0">
<img src="../../../public/images/coteplay.png" />
{{formatSeconds(mynoteData.playTime)}}
@@ -277,11 +277,11 @@ export default {
// courseName: '',// 课程名称
openType: 9,// 1表不公开 9表完全公开
};
}, 2000)
// 是编辑新增
let event = {
key: "PublishNote",//后台的事件key
key: "PublishNote",//后台的事件key
title: '编辑了笔记',//事件的标题
parameters: "",//用户自定义参数 name:value,name:value
content: "编辑了笔记",//this.mynoteData.content,//事件的内容
@@ -294,7 +294,7 @@ export default {
}
this.$store.dispatch("userTrigger", event);
}
}
})
}
@@ -306,7 +306,7 @@ export default {
},
}
</script>
<style scoped lang="scss">
::v-deep .el-dropdown-menu__item:hover {
background: #333333;
@@ -329,7 +329,6 @@ export default {
position: absolute;
bottom: 0;
right: 200px;
.box-text {
padding: 12px 16px;
width: 252px;
@@ -409,7 +408,7 @@ export default {
margin: 30px 0px;
box-sizing: border-box;
padding: 35px 30px;
height: 474px;
height: 100%;
background-color: #F5F5F5;
}
@@ -417,7 +416,7 @@ export default {
margin: 30px 0px;
box-sizing: border-box;
padding: 8px 30px;
height: 550px;
min-height: 300px;
overflow-y: auto;
background-color: #fff;
@@ -436,7 +435,7 @@ export default {
font-size: 14px;
padding-bottom: 20px;
.more {
margin-top: 12px;
@@ -474,4 +473,3 @@ export default {
}
</style>

View File

@@ -15,7 +15,7 @@
<div class="user-content">
<div class="content-top">
<h6 content-bottom><router-link to="/homePage"> {{userData.data.name}}</router-link>
<h6 content-bottom><router-link to="/home/index"> {{userData.data.name}}</router-link>
</h6>
<div class="grade">
<div>{{userData.level}}</div>
@@ -23,7 +23,7 @@
</div>
<el-button round plain class="btn-user" size="small" v-if="pageId != userInfo.aid && !isFollowHas" @click="toFollow()">关注TA</el-button>
<el-button round plain class="btn-user" size="small" v-if="isFollowHas">已关注</el-button>
<el-button round plain class="btn-user" size="small"><router-link :to="'/homePage/leavingMessage?id='+pageId">去留言</router-link></el-button>
<el-button round plain class="btn-user" size="small"><router-link :to="'/home/leaving?id='+pageId">去留言</router-link></el-button>
</div>
<div class="content-bottom">
<p class="portal-summary-text">{{userData.data.sign}}</p>

View File

@@ -56,7 +56,7 @@
methods:{
toHome() {
// ,query:{id:item.objId || item.id}
this.$router.push({path:'/homePage?id='+this.aid})
this.$router.push({path:'/home/index?id='+this.aid})
}
},
watch:{

View File

@@ -73,7 +73,7 @@ import { userAvatarText } from "@/utils/tools.js";
methods:{
toHome() {
// ,query:{id:item.objId || item.id}
this.$router.push({path:'/homePage?id='+this.aid})
this.$router.push({path:'/home/index?id='+this.aid})
}
},
watch:{

View File

@@ -59,7 +59,7 @@
</div>
<div style="width: 90px;display: flex;justify-content: flex-end;">
<el-button @click="submit()" style="height: 52px;" type="primary">发布</el-button>
<el-button class="publish-button" @click="submit()" style="height: 30px;" type="primary">发布</el-button>
</div>
</div>
</div>
@@ -793,6 +793,11 @@
</script>
<style lang="scss" scoped>
.publish-button{
// line-height: 30px;
padding-top: 7px;
margin-top: 22px;
}
.anzhu{
font-size: 14px;
color: #999;

View File

@@ -2,7 +2,7 @@
<el-dialog
:close-on-click-modal="false"
:visible.sync="guideCollection"
:append-to-body="true"
:append-to-body="true"
top="90px"
width="900px">
<div class="gui-box">
@@ -20,8 +20,8 @@
<img class="banner-img" style=" margin: 0 auto;" :src="fileBaseUrl + item.img" alt="">
</swiper-slide>
<div class="swiper-pagination" slot="pagination"></div>
</swiper>
</div>
</swiper>
</div>
<p class="gui-text">{{description}}</p>
<el-button type="primary" class="btn-one" @click="goHome()">进入首页</el-button>
</div>
@@ -65,22 +65,25 @@
navigation: {
nextEl: '.swiper-button-next',
prevEl: '.swiper-button-prev',
},
},
},
}
},
created() {
//这里必须放在当前的Session存储中不能每次都调用
apiGuide.hasUser().then(res=>{
if(res.result) {
this.guideCollection = true;
} else {
this.guideCollection = false;
} else {
this.guideCollection = true;
//只是在显示时才调用
this.getlist();
}
})
this.getlist();
});
},
mounted() {
},
methods:{
goHome() {
@@ -94,14 +97,14 @@
}
})
},
showImg(item) {
this.resonimg = [];
if(item){
this.description = item.description;
this.resonimg = item.images;
}
// this.swiper.update();
},
notYet() {
@@ -110,7 +113,7 @@
},
},
watch:{
},
computed:{
swiper() {
@@ -135,7 +138,7 @@
right:-136px;
top:45px;
}
::v-deep .swiper-wrapper{
padding-bottom: 60px;
}
@@ -213,7 +216,7 @@
}
}
::v-deep .el-dialog{
// background: #fff url('/images/homeWu/interest.png') no-repeat;
// background: #fff url('/images/homeWu/interest.png') no-repeat;
border-radius: 10px;
.el-dialog__header{
display: none;

View File

@@ -11,7 +11,7 @@
<!--列表内容-->
<div class="comments-items" v-show="listShow">
<!--一个评论-->
<div class="zan-wu" v-if="list.length == 0">暂无评论</div>
<div class="zan-wu" v-if="list.length == 0">暂无公开笔记</div>
<div class="comment" v-for="(com,comIdx) in list" :key="com.id">
<div class="comment-top">
<div class="comment-author">

View File

@@ -1,31 +1,35 @@
<template>
<div class="portal-header">
<div class="portal-top">
<div class="portal-top" :style="{color:textColor}">
<div class="portal-top-left">
<div class="portal-top-logo">
<img src="../assets/logo/logo.png" v-if="current == 'qa'" style="width:160px;height: 27px;" />
<img src="../assets/logo/logo2.png" v-else style="width:160px;height: 27px;" />
<img src="../assets/logo/logo-white.png" v-if="textColor == '#fff' || textColor == '#ffffff'" style="width:160px;height: 27px;" />
<img src="../assets/logo/logo.png" v-else style="width:160px;height: 27px;" />
</div>
<div class="portal-top-nav">
<div class="top-nav" :class="current == 'index' ? 'current-nav' : ''">
<router-link to="/index">首页
<div :class="current == 'index' ? 'nav-bottbor' : ''"></div>
</router-link></div>
<div class="top-nav" :class="current == 'course' ? 'current-nav' : ''">
<div class="top-nav" :style="{color:textColor}" :class="current == 'index' ? activeNav : ''">
<router-link to="/index" >首页
<div :class="current == 'index' ? 'nav-bottbor' : ''"></div>
</router-link>
</div>
<div class="top-nav" :style="{color:textColor}" :class="current == 'course' ? activeNav : ''">
<router-link to="/course">课程
<div :class="current == 'course' ? 'nav-bottbor' : ''"></div>
</router-link></div>
<div class="top-nav" :class="current == 'article' ? 'current-nav' : ''">
<div :class="current == 'course' ? 'nav-bottbor' : ''"></div>
</router-link>
</div>
<div class="top-nav" :style="{color:textColor}" :class="current == 'article' ? activeNav : ''">
<router-link to="/article">文章
<div :class="current == 'article' ? 'nav-bottbor' : ''"></div>
</router-link></div>
<div class="top-nav" :class="current == 'qa' ? 'current-nav' : ''">
<router-link to="/qa">问答
<div :class="current == 'qa' ? 'nav-bottbor' : ''"></div>
</router-link></div>
<div :class="current == 'article' ? 'nav-bottbor' : ''"></div>
</router-link>
</div>
<div class="top-nav" :style="{color:textColor}" :class="current == 'qa' ? activeNav : ''">
<router-link to="/qa" >问答
<div :class="current == 'qa' ? 'nav-bottbor' : ''"></div>
</router-link>
</div>
<div class="top-nav">
<el-dropdown placement="bottom" @command="handleCommand">
<span class="el-dropdown-link" style="font-size:16px;cursor: pointer;">专区</span>
<span class="el-dropdown-link" style="font-size:16px;cursor: pointer;" :style="{color:textColor}">专区</span>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item command="one">BOE系列公开课</el-dropdown-item>
<el-dropdown-item command="two" divided>Grow180</el-dropdown-item>
@@ -35,12 +39,16 @@
</el-dropdown-menu>
</el-dropdown>
</div>
<div class="top-nav" :class="current == 'case' ? 'current-nav' : ''"><router-link to="/case">推荐案例
<div :class="current == 'case' ? 'nav-bottbor' : ''"></div>
</router-link></div>
<div class="top-nav" :class="current == 'follow' ? 'current-nav' : ''"><router-link to="/follow">我的关注
<div :class="current == 'follow' ? 'nav-bottbor' : ''"></div>
</router-link></div>
<div class="top-nav" :style="{color:textColor}" :class="current == 'case' ? activeNav : ''">
<router-link to="/case">推荐案例
<div :class="current == 'case' ? 'nav-bottbor' : ''"></div>
</router-link>
</div>
<div class="top-nav" :style="{color:textColor}" :class="current == 'follow' ? activeNav : ''">
<router-link to="/follow">我的关注
<div :class="current == 'follow' ? 'nav-bottbor' : ''"></div>
</router-link>
</div>
</div>
</div>
<div class="portal-top-right">
@@ -75,8 +83,8 @@
<div class="person-action-item">
<el-dropdown class="person-action-index">
<span class="el-dropdown-link">
<span v-if="current == 'qa'" style="color: #333;">学员</span>
<span v-else style="color: #fff;">学员</span><i class="el-icon-arrow-down el-icon--right"></i>
<span :style="{color:textColor}">学员</span>
<i class="el-icon-arrow-down el-icon--right"></i>
</span>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item><router-link to="/index">学员</router-link></el-dropdown-item>
@@ -87,7 +95,7 @@
</div>
<div class="person-action-item">
<el-dropdown>
<div class="el-dropdown-link" style="display:flex">
<div class="el-dropdown-link" style="display:flex" :style="{color:textColor}">
<div class="person-action-index">
<div v-if="userInfo.avatar !== '' " class="user-avatar">
<img :src="userInfo.avatar" style="width: 30px;height: 30px;"/>
@@ -97,21 +105,21 @@
<div v-else><img src="../../public/images/Avatarwoman.png" alt=""></div>
</div>
</div>
<div v-if="current == 'qa'" style="color:#333333 ;font-size: 14px;font-weight: 600;margin-top: 10px;">{{userInfo.name}}</div>
<div v-else style="color:#fff;font-size: 14px;font-weight: 600;margin-top: 10px;">{{userInfo.name}}</div>
<div v-if="current == 'qa'" style="font-size: 14px;font-weight: 600;margin-top: 10px;">{{userInfo.name}}</div>
<div v-else style="font-size: 14px;font-weight: 600;margin-top: 10px;">{{userInfo.name}}</div>
</div>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item @click.native="setCurIdentity(1)"><a :href="`${webBaseUrl}${isTiao ? '/uc/study/task' : '/uc/study/courses'}`">个人中心</a></el-dropdown-item>
<el-dropdown-item><router-link :to="'/homePage?id='+userInfo.aid">个人主页</router-link></el-dropdown-item>
<el-dropdown-item><router-link :to="'/home/index?id='+userInfo.aid">个人主页</router-link></el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</div>
<div class="person-action-item">
<div v-if="current == 'qa'" class="person-action-index" style="color:#333333" @click="logout()">
<div v-if="current == 'qa'" class="person-action-index" :style="{color:textColor}" @click="logout()">
<svg-icon style="margin-right: 4px;font-size:22px;" icon-class="black-out"></svg-icon>登出
</div>
<div v-else class="person-action-index" style="color:#fff" @click="logout()">
<svg-icon style="margin-right: 4px;font-size:22px;color: #333333;" icon-class="white-out"></svg-icon>登出
<div v-else class="person-action-index" :style="{color:textColor}" @click="logout()">
<svg-icon style="margin-right: 4px;font-size:22px;" icon-class="white-out"></svg-icon>登出
</div>
</div>
</div>
@@ -127,9 +135,7 @@ import apiMessage from '@/api/system/message.js';
import apiBoeCourse from '@/api/boe/course.js';
import InterestCollection from '@/components/Portal/interestCollection.vue'
import GuideBox from '@/components/Portal/guideBox.vue'
import {
userAvatarText
} from "@/utils/tools.js";
import {userAvatarText} from "@/utils/tools.js";
export default {
props: {
current: {
@@ -140,6 +146,10 @@ export default {
type: Boolean,
default: false,
},
textColor:{
type: String,
default: '',
},
goSearch:{
type: Number,
default: 0,
@@ -151,6 +161,12 @@ export default {
avatarText(){
return userAvatarText(this.userInfo.name);
},
activeNav(){
return {
'top-nav-active-blue': this.textColor=='#000000',
'top-nav-active-white': this.textColor=='#fff' || this.textColor=='#ffffff',
}
}
},
data() {
@@ -290,6 +306,33 @@ export default {
</script>
<style scoped rel="stylesheet/scss" lang="scss">
.top-nav-active-blue{
color: #387DF7;
a{color:#387DF7;}
div{
width: 75%;
height: 4px;
top: 75%;
left: 13%;
background: #387DF7;
border-radius: 5px;
position: absolute;
}
}
.top-nav-active-white{
color: #fff;
a{color:#fff;}
div{
width: 75%;
height: 4px;
top: 75%;
left: 13%;
background: #fff;
border-radius: 5px;
position: absolute;
}
}
.sear-but{
position: absolute;
bottom: 10%;

View File

@@ -1,6 +1,6 @@
<template>
<div class="uc-header xcontent">
<div class="header-box" >
<div class="uc-header">
<div class="uc-header-box" >
<div class="personalData">
<!-- <div >
<img src="../../../public/images/Avatarwoman.png" alt="">
@@ -8,8 +8,10 @@
<div class="uesr-avaer">
<img :src="userInfo.avatar" v-if="userInfo.avatar !== '' ">
<div v-else class="uavatar">
<router-link :to="'/home/index?id='+userInfo.aid">
<div v-if="sex === 1 "><img src="../../../public/images/Avatarman.png" alt=""></div>
<div v-else><img src="../../../public/images/Avatarwoman.png" alt=""></div>
</router-link>
</div>
</div>
@@ -48,7 +50,7 @@
<div class="learning-an"><span>{{uinfo.monthTotal}}</span>h</div>
</div>
<div class="learning-border" ></div>
<div class="learning-info" style="margin-left:22px">
<div class="learning-info">
<div class="learning-qus">当月学习天数</div>
<div class="learning-an"><span>{{uinfo.monthDay}}</span></div>
</div>
@@ -57,62 +59,14 @@
<div class="learning-an"><span>{{uinfo.monthTotalDay}}</span></div>
</div>
<div class="learning-border" ></div>
<div class="learning-info" style="margin-left:22px">
<div class="learning-info">
<div class="learning-qus">我的U币累计</div>
<div class="learning-an"><span>{{uinfo.uCurrency}}</span></div>
</div>
<div @click="jumrank" class="list">
BOE 排行榜 >>
<div class="learning-info">
<div @click="jumrank" style="cursor: pointer;" class="ranking-link"> BOE 排行榜 >></div>
</div>
</div>
<!-- <div style="display: flex;justify-content: flex-start;">
<div style="padding-left: 15px;">
<div style="height: 38px;padding-left: 5px;">
<span style="font-size: 20px;font-weight: 500;color: #333;">{{userInfo.name}}</span>
<span style="padding-left: 10px;color: #888888;font-size: 12px;cursor: pointer;">
<el-link @click="toPage('/user/Setting')" icon="el-icon-setting" type="info" :underline="false">个人设置</el-link>
</span>
</div>
<div style="height: 35px;padding-left: 5px;color:#7a7a7a;">
<span style="color: #7a7a7a;padding-right: 15px;" v-if="orgInfo">{{orgInfo}}</span>
目前海没有实时更新的策略暂未处理
<span>学习时长{{userInfo.studyTotalH}}小时</span>
</div>
<div>
<router-link to="/study/index"><span :class="{identity:true,active:curIdentity==1}" @click="setCurIdentity(1)">学员</span></router-link>
<router-link to="/teacher/index"><span v-if="identity == 2 || identity == 5" :class="{identity:true,active:curIdentity==2}" @click="setCurIdentity(2)">教师</span></router-link>
<router-link to="/manager/index"><span v-if="identity == 3 || identity == 5" :class="{identity:true,active:curIdentity==3}" @click="setCurIdentity(3)">管理员</span></router-link>
</div>
</div>
</div> -->
<!-- <div style="display: flex;justify-content: flex-end;padding-top: 35px;"> -->
<!-- q1没有课程表所以这里先隐藏
<div v-if="curIdentity==2" style="padding: 0px 40px 0px 0px;color: #1EA0FA;text-align: center;">
<div><i style="font-size: 40px;" class="el-icon-date"></i> <br/>授课表</div>
</div>
-->
<!---->
<!-- <div>
<div tabindex="1" class="upicon" @click="toPage('/user/myshare')">
<i class="el-icon-share"></i>
<div>我分享的</div>
</div>
</div>
<div>
<div tabindex="2" class="upicon" @click="toPage('/user/toshare')">
<i class="el-icon-s-promotion"></i>
<div>分享给我的</div>
</div>
</div>
<div>
<div tabindex="3" class="upicon" @click="toPage('/user/favorites')">
<i class="el-icon-star-on"></i>
<div>我的收藏</div>
</div>
</div> -->
<!-- </div> -->
</div>
</div>
</template>
@@ -184,7 +138,7 @@ import {userAvatarText,cutFullName} from "@/utils/tools.js";
this.uinfo.uCurrency = item.total;
}
});
}
}
})
},
setCurIdentity(iden){
@@ -202,19 +156,19 @@ import {userAvatarText,cutFullName} from "@/utils/tools.js";
</script>
<style lang="scss" scoped>
.list{
.ranking-link{
font-size: 16px;
font-weight: 600;
color: #333333;
margin-top: 20px;
}
.learningData{
width: 50%;
padding-top: 70px;
box-sizing: border-box;
margin-left:auto;
.learning-info{
float: left;
margin-left: 20px;
margin-right: 22px;
.learning-qus{
font-size: 14px;
@@ -254,7 +208,7 @@ import {userAvatarText,cutFullName} from "@/utils/tools.js";
vertical-align: top;
}
}
.medalbutt{
color: #333333;
font-size: 14px;
@@ -262,13 +216,11 @@ import {userAvatarText,cutFullName} from "@/utils/tools.js";
// float: left;
margin-top: 6px;
}
}
.personalData{
flex: 1;
padding-top: 40px;
padding-left: 115px;
box-sizing: border-box;
display: flex;
.uesr-avaer{
@@ -330,21 +282,21 @@ import {userAvatarText,cutFullName} from "@/utils/tools.js";
}
}
.header-box{
.uc-header-box{
display: flex;
justify-content: space-between;
height: 210px;
background: url('../../../public/images/userbgimg.png') no-repeat;
background-size:445px 210px;
background-position: right 0;
margin: 0 auto;
}
.uc-header{
height: 210px;
margin: 0 auto;
height: 210px;
background: #fff;
// background-color: #c9c2c2;
background-color: #fff;
background-image: url('../../../public/images/userbgimg.png') ;
background-repeat: no-repeat;
background-size:445px 210px;
background-position: right 0;
}
.upicon{
text-align: center;
@@ -386,8 +338,8 @@ import {userAvatarText,cutFullName} from "@/utils/tools.js";
padding-top: 10px;
color: #aa0000;
}
}
.uavatar{
}
.uavatar{
border-radius: 50%;
// border: 1px solid #73adfe;
// color: #73adfe;
@@ -399,13 +351,139 @@ import {userAvatarText,cutFullName} from "@/utils/tools.js";
border-radius: 50%;
// background: #d9e9ff;
div{
border-radius: 50%;
border-radius: 50%;
img{
border-radius: 50%;
border-radius: 50%;
width: 100px;
height: 100px;
}
}
}
@media screen and (max-width: 1366px){
.uc-header-box {
width: 1160px;
}
.learningData{
margin-left:auto;
.learning-info{
margin-left: 10px;
margin-right: 10px;
.learning-qus{
font-size: 12px;
}
.learning-an{
font-size: 12px;
}
}
}
.personalData{
.uesr-avaer{
margin-right: 10px;
}
.user-content{
.content-top{
.grade{
div{
width: 48px;
}
span{
font-size: 14px;
}
}
h6{
font-size: 26px;
}
span{
font-size: 14px;
margin-left: 5px;
margin-right: 10px;
}
.editbutt{
width: 80px;
height: 25px;
line-height: 5px;
text-align: center;
font-size: 12px;
}
}
}
}
.content-bottom{
.medalbutt{
margin-right: 20px;
}
}
}
@media screen and (max-width: 1680px) and (min-width:1367px){
.uc-header-box {
width: 1300px;
}
.learningData{
margin-left:auto;
.learning-info{
margin-left: 10px;
margin-right: 12px;
}
}
.personalData{
.uesr-avaer{
margin-right: 10px;
}
.user-content{
.content-top{
.grade{
div{
width: 48px;
}
span{
font-size: 14px;
}
}
h6{
font-size: 26px;
}
span{
font-size: 14px;
margin-left: 5px;
margin-right: 15px;
}
.editbutt{
width: 80px;
height: 25px;
line-height: 5px;
text-align: center;
font-size: 12px;
}
}
}
}
}
@media screen and (max-width: 1920px) and (min-width: 1681px){
.uc-header-box {
width: 1600px;
}
.learningData{
margin-left:auto;
.learning-info{
margin-left: 20px;
margin-right: 22px;
}
}
}
@media screen and (min-width: 1921px){
.uc-header-box {
width: 1800px;
}
.learningData{
margin-left:auto;
.learning-info{
margin-left: 30px;
margin-right: 30px;
}
}
}
</style>