mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/learning-system-portal.git
synced 2025-12-11 03:46:44 +08:00
Merge branch 'stat' of https://codeup.aliyun.com/6265f483e4166464dc2f9c14/boeu/portal into stat
This commit is contained in:
@@ -15,7 +15,9 @@ body {
|
||||
text-rendering: optimizeLegibility;
|
||||
font-family: Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Arial, sans-serif;
|
||||
}
|
||||
|
||||
:not([class*="icon"]):not(.fa):not(.fas):not(i) {
|
||||
font-family: "Menlo", "苹方-简" !important;
|
||||
}
|
||||
.el-message {
|
||||
top: 15%!important
|
||||
}
|
||||
@@ -389,3 +391,4 @@ li{
|
||||
line-height: 50px;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -351,7 +351,7 @@
|
||||
// }
|
||||
.portal-images-title{
|
||||
vertical-align: top;
|
||||
padding: 2px 12px;
|
||||
// padding: 2px 12px;
|
||||
line-height: 24px;
|
||||
}
|
||||
/**滚动条的宽度*/
|
||||
@@ -587,6 +587,8 @@
|
||||
}
|
||||
}
|
||||
.qa-top{
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
& span:first-child{
|
||||
// height: 24px;
|
||||
background: rgba($color: #387DF7, $alpha: 0.05);
|
||||
|
||||
@@ -97,3 +97,6 @@
|
||||
.uc-select{
|
||||
width: 125px;
|
||||
}
|
||||
.el-select-dropdown__item{
|
||||
text-align: center;
|
||||
}
|
||||
168
src/components/Portal/artauthor.vue
Normal file
168
src/components/Portal/artauthor.vue
Normal file
@@ -0,0 +1,168 @@
|
||||
<template>
|
||||
<div class="item-author">
|
||||
<div style="width:40px;height:40px;" @click="toHome()">
|
||||
<!-- <el-avatar shape="square" size="small" :src="userAvatar" v-if="userAvatar"></el-avatar> -->
|
||||
<!-- <div v-else class="uavatar"><span class="uavatar-text">{{avatarText}}</span></div> -->
|
||||
<el-avatar :size="40" shape="circle" :src="userAvatar" v-if="userAvatar"></el-avatar>
|
||||
<div v-else class="uavatar">
|
||||
<div v-if="sex == null" style="border-radius: 50%;width: 40px;height: 40px;"></div>
|
||||
<div v-else>
|
||||
<div class="mravat" v-if="sex === 1 "><img style="width:40px;height:40px;vertical-align: bottom;" src="../../../public/images/Avatarman.png" alt=""></div>
|
||||
<div class="mravat" v-else><img style="width:40px;height:40px;vertical-align: bottom;" src="../../../public/images/Avatarwoman.png" alt=""></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="author-right" v-if="!onlyAvatar" style="padding-left: 14px;font-size: 14px;">
|
||||
<div>
|
||||
<span style="color: #333333;font-weight: 400;font-size: 16px;">{{userName}}</span>
|
||||
<span class="author-text" v-if="userInfo && userInfo!=''">({{userInfo}})</span>
|
||||
</div>
|
||||
<span class="autname">{{ usersign }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
|
||||
export default {
|
||||
props:{
|
||||
avatar:{
|
||||
type:String,
|
||||
default:''
|
||||
},
|
||||
width:{
|
||||
type:String,
|
||||
default:'200px'
|
||||
},
|
||||
sex:{
|
||||
type:Number,
|
||||
},
|
||||
name:{
|
||||
type:String,
|
||||
default:''
|
||||
},
|
||||
sign:{
|
||||
type:String,
|
||||
default:''
|
||||
},
|
||||
|
||||
aid:{
|
||||
type:String,
|
||||
default:''
|
||||
},
|
||||
info:{
|
||||
type:String,
|
||||
default:''
|
||||
},
|
||||
onlyAvatar:{
|
||||
type:Boolean,
|
||||
default:false
|
||||
}
|
||||
},
|
||||
data(){
|
||||
return {
|
||||
baseUrl:process.env.VUE_APP_FILE_BASE_URL,
|
||||
userAvatar:'',
|
||||
userName:'',
|
||||
userInfo:'',
|
||||
usersex:null,
|
||||
usersign:'',
|
||||
}
|
||||
},
|
||||
created() {
|
||||
// this.userAvatar=require("@/assets/images/user/default.png");
|
||||
},
|
||||
mounted() {
|
||||
this.userName=this.name;
|
||||
if(this.avatar && this.avatar!=''){
|
||||
this.userAvatar=this.avatar;
|
||||
}
|
||||
this.userInfo=this.info;
|
||||
this.usersex = this.sex;
|
||||
this.usersign = this.sign;
|
||||
},
|
||||
methods:{
|
||||
toHome() {
|
||||
// ,query:{id:item.objId || item.id}
|
||||
if(this.aid){
|
||||
this.$router.push({path:this.$xpage.getHomePath(this.aid)})
|
||||
}else{
|
||||
this.$message.error("参数错误");
|
||||
}
|
||||
|
||||
}
|
||||
},
|
||||
watch:{
|
||||
name(newVal,oldVal){
|
||||
this.userName=newVal;
|
||||
},
|
||||
sign(newVal,oldVal){
|
||||
this.usersign=newVal;
|
||||
},
|
||||
avatar(newVal,oldVal){
|
||||
if(newVal){
|
||||
this.userAvatar=this.baseUrl+newVal;
|
||||
}
|
||||
},
|
||||
aid(newVal,oldVal){
|
||||
if(newVal){
|
||||
this.aid=newVal;
|
||||
}
|
||||
},
|
||||
sex(newVal,oldVal){
|
||||
this.usersex=newVal;
|
||||
},
|
||||
info(newVal,oldVal){
|
||||
this.userInfo=newVal;
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
|
||||
.mravat{
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
img{
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
}
|
||||
.autname{
|
||||
color: #666666;
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
line-height: 25px;
|
||||
}
|
||||
|
||||
.item-author{
|
||||
// font-size: 0.9em;
|
||||
line-height: 18px;
|
||||
display: flex;
|
||||
.author-text{
|
||||
font-size: 12px;
|
||||
color: #999999;
|
||||
font-weight: 300;
|
||||
margin-left: 10px;
|
||||
}
|
||||
.uavatar{
|
||||
// border: 1px solid #73adfe;
|
||||
// width: 28px;
|
||||
// height: 28px;
|
||||
// background: #d9e9ff;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
.uavatar-text{
|
||||
transform: scale(0.8);
|
||||
font-size: 12px;
|
||||
color: #73adfe;
|
||||
}
|
||||
img{
|
||||
border-radius: 50%;
|
||||
width: 28px;
|
||||
height: 28px;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -72,7 +72,8 @@
|
||||
<div class="comment" v-for="(com,comIdx) in list" :key="com.id">
|
||||
<div class="comment-top">
|
||||
<div class="comment-author">
|
||||
<authorInfo :aid="com.sysCreateAid" :avatar="com.avatar" :name="com.sysCreateBy" :sex="com.sex" :info="com.orgInfo"></authorInfo>
|
||||
<authorInfo :aid="com.sysCreateAid" :avatar="com.avatar" :name="com.sysCreateBy" :sex="com.sex" :info="com.orgInfo" :sign="com.sign"></authorInfo>
|
||||
<!-- <span class="signtext">{{ com.sign }}</span> -->
|
||||
</div>
|
||||
</div>
|
||||
<div class="comment-body" >
|
||||
@@ -114,7 +115,7 @@
|
||||
<div class="comment" v-for="(reply,replyIdx) in com.replyList" :key="reply.id" :class="replyIdx===com.replyList.length-1 ? 'comment-last' : ''">
|
||||
<div class="comment-top">
|
||||
<div class="comment-author">
|
||||
<authorInfo :aid="reply.sysCreateAid" :avatar="reply.avatar" :name="reply.sysCreateBy" :sex="reply.sex" :info="reply.orgInfo"></authorInfo>
|
||||
<authorInfo :aid="reply.sysCreateAid" :avatar="reply.avatar" :name="reply.sysCreateBy" :sex="reply.sex" :info="reply.orgInfo" :sign="reply.sign"></authorInfo>
|
||||
<span style="margin-left: 10px;color: #8590A6;font-size:14px; ">
|
||||
<svg-icon style="font-size: 10px;margin-right: 0;" icon-class="triangle"></svg-icon>
|
||||
</span>
|
||||
@@ -238,7 +239,7 @@
|
||||
import interactBar from "@/components/Portal/interactBar.vue";
|
||||
import apiComment from '@/api/modules/comments.js'
|
||||
import apiUser from '@/api/system/user.js'
|
||||
import authorInfo from '@/components/Portal/authorInfo.vue';
|
||||
import authorInfo from '@/components/Portal/artauthor.vue';
|
||||
// import author from '@/components/Portal/author.vue';
|
||||
import { mapGetters } from 'vuex';
|
||||
export default {
|
||||
@@ -405,6 +406,8 @@
|
||||
item.avatar=author.avatar;
|
||||
item.orgInfo=author.orgInfo;
|
||||
item.sex=author.sex;
|
||||
item.sign=author.sign
|
||||
console.log(list,'评论信息')
|
||||
return true;
|
||||
}else{
|
||||
return false;
|
||||
@@ -447,6 +450,7 @@
|
||||
res.result.list.forEach(item=>{
|
||||
item.avatar='';
|
||||
item.orgInfo='';
|
||||
item.sign='';
|
||||
item.isAll=false;
|
||||
//item.sex=null;
|
||||
allList.push(item);
|
||||
@@ -456,6 +460,7 @@
|
||||
reply.avatar='';
|
||||
reply.orgInfo='';
|
||||
reply.sex=null;
|
||||
reply.sign='';
|
||||
reply.isAll=false;
|
||||
allList.push(reply);
|
||||
ids.push(reply.sysCreateAid);
|
||||
@@ -793,6 +798,9 @@
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.signtext{
|
||||
|
||||
}
|
||||
|
||||
.publish-button{
|
||||
// line-height: 30px;
|
||||
|
||||
@@ -250,15 +250,21 @@ export default {
|
||||
if(this.type==5){
|
||||
content='回答'
|
||||
}
|
||||
if(this.type==6){
|
||||
content='课程笔记'
|
||||
}
|
||||
if(this.type==60){
|
||||
content='课程笔记评论'
|
||||
}
|
||||
// 点赞type
|
||||
if(this.type==10){
|
||||
content='课程评论点赞'
|
||||
content='课程评论'
|
||||
}
|
||||
if(this.type==20){
|
||||
content='文章评论点赞'
|
||||
content='文章评论'
|
||||
}
|
||||
if(this.type==30){
|
||||
content='案例评论点赞'
|
||||
content='案例评论'
|
||||
}
|
||||
content=sendName+typeText+content+'-'+title
|
||||
let message={
|
||||
|
||||
@@ -302,6 +302,14 @@ export default {
|
||||
</script>
|
||||
|
||||
<style scoped rel="stylesheet/scss" lang="scss">
|
||||
::v-deep .el-dropdown-menu__item:not(.is-disabled):hover{
|
||||
background-color: #fff !important;
|
||||
color: #0059FF !important;
|
||||
}
|
||||
::v-deep.el-dropdown-menu {
|
||||
text-align: center;
|
||||
border: none !important;
|
||||
}
|
||||
//定义消息的图标的样式,按ui,未完成
|
||||
.msg-icon{
|
||||
font-size:16px;
|
||||
|
||||
@@ -144,6 +144,7 @@ import {userAvatarText,cutFullName} from "@/utils/tools.js";
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
|
||||
.ranking-link{
|
||||
font-size: 16px;
|
||||
font-weight: 600;
|
||||
|
||||
@@ -251,6 +251,14 @@ export default {
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
::v-deep .el-dropdown-menu__item:not(.is-disabled):hover{
|
||||
background-color: #fff !important;
|
||||
color: #0059FF !important;
|
||||
}
|
||||
::v-deep.el-dropdown-menu {
|
||||
text-align: center;
|
||||
border: none !important;
|
||||
}
|
||||
::v-deep .el-avatar{
|
||||
margin-right: 8px;
|
||||
img{
|
||||
|
||||
@@ -131,7 +131,7 @@
|
||||
<span class="portal-right-text blue-one">
|
||||
<img :src="getPic(index)" alt="">
|
||||
</span>
|
||||
<span class="portal-title-desc two-line-ellipsis title-line-ellipsis" style="font-size: 14px;">{{ item.name }}</span>
|
||||
<span class="portal-title-desc two-line-ellipsis title-line-ellipsis" style="font-size: 14px;color: #04243C;">{{ item.name }}</span>
|
||||
</a>
|
||||
<div class="list-active">
|
||||
<div class="list-content">
|
||||
@@ -214,7 +214,7 @@
|
||||
<span class="portal-right-text orange-one">
|
||||
<img :src="getPic(index)" alt="">
|
||||
</span>
|
||||
<span class="portal-title-desc two-line-ellipsis" style="font-size: 14px;">{{ item.title }}</span>
|
||||
<span class="portal-title-desc two-line-ellipsis" style="font-size: 14px;color: #04243C;line-height: 26px;">{{ item.title }}</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@@ -64,8 +64,7 @@
|
||||
<div class="answer" v-for="(item, index) of answerList" :key="item.id" :style="index === answerList.length - 1 ? 'border-bottom:none;' : ''">
|
||||
<div class="answer-top">
|
||||
<div>
|
||||
<author :aid="item.sysCreateAid" :avatar="item.avatar" :name="item.sysCreateBy" :info="item.orgInfo" :sex="item.sex"></author>
|
||||
<div class="sign">{{item.sign}}</div>
|
||||
<author :aid="item.sysCreateAid" :avatar="item.avatar" :name="item.sysCreateBy" :info="item.orgInfo" :sex="item.sex" :sign="item.sign"></author>
|
||||
</div>
|
||||
<div>
|
||||
<span v-if="detailData.isResolve && item.isBest" style="color: #ffb30f">最佳答案</span>
|
||||
@@ -123,7 +122,7 @@
|
||||
:class="i === item.answers.length - 1 ? 'comment-last' : ''">
|
||||
<div class="comment-top">
|
||||
<div class="comment-author">
|
||||
<author :aid="con.sysCreateAid" :avatar="con.avatar" :name="con.sysCreateBy" :sex="con.sex"></author>
|
||||
<author :aid="con.sysCreateAid" :avatar="con.avatar" :name="con.sysCreateBy" :sex="con.sex" :sign="con.sign"></author>
|
||||
<span class="comment-author-text">回复</span>
|
||||
<span style="margin-left: 10px; font-size:14px">{{ con.replayName }}</span>
|
||||
</div>
|
||||
@@ -290,7 +289,7 @@ import portalFooter from "@/components/PortalFooter.vue";
|
||||
import interactBar from "@/components/Portal/interactBar.vue";
|
||||
import editQuestion from "@/components/Qa/editQuestion.vue";
|
||||
import timeShow from "@/components/Portal/datetimeShow.vue";
|
||||
import author from "@/components/Portal/authorInfo.vue";
|
||||
import author from "@/components/Portal/artauthor.vue";
|
||||
import portalFloatTools from "@/components/PortalFloatTools.vue";
|
||||
import apiQa from "@/api/modules/qa.js";
|
||||
import apiUser from "@/api/system/user.js";
|
||||
@@ -468,6 +467,7 @@ export default {
|
||||
res.result.avatar = "";
|
||||
res.result.name = "";
|
||||
res.result.orgInfo = "";
|
||||
res.result.sign= "";
|
||||
res.result.sex = null;
|
||||
this.detailData = res.result;
|
||||
if (JSON.stringify(this.detailData) != "{}") {
|
||||
@@ -596,8 +596,8 @@ export default {
|
||||
if (author.aid == item.sysCreateAid) {
|
||||
item.avatar = author.avatar;
|
||||
item.orgInfo = author.orgInfo;
|
||||
item.sign = author.sign
|
||||
item.sex = author.sex;
|
||||
item.sign=author.sign;
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
|
||||
@@ -430,7 +430,7 @@
|
||||
this.current_teacher_follow = true;
|
||||
} else if(res.status == 400){
|
||||
this.$message.warning(res.message);
|
||||
this.current_teacher_follow = true;
|
||||
this.current_teacher_follow = false;
|
||||
}else{
|
||||
this.$message.error(res.message);
|
||||
}
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
<h4>个人签名</h4>
|
||||
</div>
|
||||
<div class="base-info">
|
||||
<label class="label" style="width:70px;text-align: left;">我的签名</label>
|
||||
<label class="label" style="min-width:70px;text-align: left;">我的签名</label>
|
||||
<p class="info-text" style="width:540px" v-show="!signData.isEdit">{{form.sign}}</p>
|
||||
<el-input v-show="signData.isEdit" style="width:40%;height:40px" type="textarea" v-model="signData.sign" :rows="1"></el-input>
|
||||
<el-button v-show="signData.isEdit" style="margin-left:110px" @click="signData.isEdit = false">取消</el-button>
|
||||
|
||||
@@ -516,9 +516,9 @@ export default {
|
||||
background-color: #fff !important;
|
||||
color: #0059FF !important;
|
||||
}
|
||||
::v-deep.el-dropdown-menu {
|
||||
border: none !important;
|
||||
}
|
||||
::v-deep.el-dropdown-menu {
|
||||
border: none !important;
|
||||
}
|
||||
.page-ranking-col{
|
||||
min-width: 430px;
|
||||
//padding-right:30px;
|
||||
|
||||
Reference in New Issue
Block a user