Merge remote-tracking branch 'origin/master'

# Conflicts:
#	src/App.vue
This commit is contained in:
yuping
2023-03-09 18:06:07 +08:00
2 changed files with 3 additions and 136 deletions

View File

@@ -10,7 +10,6 @@
<!--
-->
<div id="container">
<!-- <div id="nav">
<router-link
v-for="item in routes"
@@ -38,7 +37,7 @@ import {useRoute} from "vue-router/dist/vue-router";
import {USER_INFO} from "@/api/api";
import {IsPhone} from "@/api/utils";
console.log("版本1.2.2------------");
console.log("版本1.2.4------------");
const store = useStore();
const { path } = useRoute();
onMounted(() => {
@@ -51,7 +50,6 @@ onMounted(() => {
}
}
});
function getUserInfo() {
if (import.meta.env.MODE === "development" || import.meta.env.MODE === "test") {
request(USER_INFO, {}).then(res => {
@@ -76,22 +74,18 @@ function getUserInfo() {
color: #2c3e50;
height: 100%;
}
.return {
right: 0 !important;
}
.preNext {
right: 115px !important;
margin-top: 4px;
}
#container {
display: flex;
width: 100%;
min-height: 100%;
background-color: rgba(242, 245, 247, 1);
// background-color: #ccc;
#nav {
width: 220px;
@@ -103,26 +97,22 @@ function getUserInfo() {
box-sizing: border-box;
background: #f1f1f1;
box-shadow: 0 5px 15px 8px rgba(1, 22, 54, 0.795);
.link {
text-decoration: none;
color: rgb(0, 0, 0);
padding: 10px;
transition: all 0.4s;
text-align: center;
&:hover {
background: rgba(4, 37, 223, 0.274);
color: #f1f1f1;
}
&.active {
color: #f1f1f1;
background: rgba(17, 120, 255, 0.74);
}
}
}
main {
flex: 1;
width: 100%;
@@ -130,4 +120,4 @@ function getUserInfo() {
box-sizing: border-box;
}
}
</style>
</style>

View File

@@ -6,8 +6,6 @@
<div>课程列表</div>
<div style="margin-left: 6px; margin-right: 6px">/</div>
<div style="font-weight: 700">课程报名</div>
<div v-if="pName != ''" class="return">
<div style="display: flex" @click="returnclick">
<el-button style="color:#0073FB"><img class="img2" style="margin-right:11px;cursor: pointer;"
@@ -17,7 +15,6 @@
</div>
</div>
<!-- 面包屑导航 -->
<!-- 基本信息 -->
<div class="bascinfo">
<div style="display:flex;">
@@ -62,7 +59,6 @@
</div>
</div>
<!-- 基本信息 -->
<!-- 详细信息 -->
<div class="detailinfo">
<div class="detail">
@@ -117,11 +113,9 @@
</button>
</UploadPostImg>
</div>
<button class="btntwo" @click="submitComment" v-loading="submitLoading">发表评论</button>
</div>
</div>
<div class="thinline"></div>
<div class="bottom">
<div v-for="(row, i) in commontList" :key="i" style="margin-bottom: 24px;">
@@ -213,7 +207,6 @@
</div>
</div>
</div>
<!-- 回复分页 -->
<div style="display:flex;justify-content:center;align-items:center;margin-top:36px;margin-bottom:36px;">
<!-- 分页 -->
@@ -226,7 +219,6 @@
@current-change="handleCurrentChange"
/>
</div>
<div
class="discuss clearfix"
v-if="commontList && commontList.length">
@@ -271,7 +263,6 @@
</div>
</div>
</div>
</div>
</div>
@@ -329,7 +320,6 @@
<!-- 详细信息 -->
</div>
</template>
<script setup>
import {computed, reactive, toRefs, watch, onUnmounted, ref} from "vue";
import FileTypeImg from "@/components/FileTypeImg.vue";
@@ -337,7 +327,6 @@ import {request, useRequest} from "@/api/request";
import {
STU_OFFCOURSE_DETAIL,
FACETEACH_SIGNUP,
COMMENT_ADD,
COMMENT_LIST,
COMMENT_PRAISE,
@@ -348,7 +337,6 @@ import {useRoute, useRouter} from "vue-router";
import {useUserInfo} from "@/api/utils";
import {ElMessage, messageConfig} from "element-plus";
import dayjs from "dayjs";
const router = useRouter();
const returnclick = () => {
router.back();
@@ -356,13 +344,10 @@ const returnclick = () => {
const {
query: {courseId, type, id: taskId},
} = useRoute();
const {data = {}} = useRequest(STU_OFFCOURSE_DETAIL, {courseId});
const teacherInfo = useUserInfo(
computed(() => data.value?.planDto?.teacherId)
);
const state = reactive({
activeName: "first",
enclosure: "",
@@ -380,7 +365,6 @@ const download = (url) => {
const downloads = (url) => {
ElMessage.warning("未在有效时间范围内,请耐心等待!");
};
//判断能否报名 (TODO-大于面授课截止时间就不能报名了,其余均可以)
function isSignClick() {
let endTime = new Date(data.value.planDto?.endTime).getTime()
@@ -392,16 +376,13 @@ function isSignClick() {
}
console.log(state.isAllowSign)
}
watch(data,()=>{
isSignClick();
})
// 查看更多-展开回复列表
function lookMore(i) {
i == spreadReply.value ? spreadReply.value = -1 : spreadReply.value = i;
}
// 获取评论数据
const hfPage = ref({
currentPage: 1,
@@ -434,7 +415,6 @@ const getData = () => {
submitReplayLoading.value = false;
})
}
// 回复分页
function handleCurrentChange(e, k) {
console.log('分页打印', e, k)
@@ -442,10 +422,7 @@ function handleCurrentChange(e, k) {
hfPage.value.pageNo = e;
getData();
}
getData()
const disDetail = ref({});
const commontList = ref([]);
const spreadReply = ref(-1);
@@ -454,7 +431,6 @@ const replayComment = ref({
content: "",
pid: "",
});
// 清空回复及评论输入框
const clearText = () => {
disComment.value.content = "";
@@ -462,46 +438,36 @@ const clearText = () => {
fileListCommentRelpay.value = [];
replayComment.value.content = "";
}
// 评论图片展示数组
const fileListComment = ref([]);
// 回复图片展示数组
const fileListCommentRelpay = ref([]);
// 上传图片成功返回的URL
const uploadBack = (e) => {
console.log('--------->', e)
fileListComment.value.push(e)
}
const uploadReplyBack = (e) => {
console.log('--------->', e)
fileListCommentRelpay.value.push(e)
}
function removeImg(i) {
fileListCommentRelpay.value.splice(i, 1);
}
function removeCommentImg(i) {
fileListComment.value.splice(i, 1);
}
function commentLike(obj) {
obj.praised ? (obj.praiseNum = Number(obj.praiseNum) - 1) : (obj.praiseNum = Number(obj.praiseNum) + 1);
obj.praised = !obj.praised;
request(COMMENT_PRAISE, { targetId: obj.id, type: 1 });
}
function commentComment(obj) {
console.log(obj)
replayComment.value.placeholder = "@ " + obj.createName;
replayComment.value.pid = obj.id;
}
const submitLoading = ref(false);
// 提交评论
function submitComment() {
if(disComment.value.content==""){
@@ -533,9 +499,7 @@ function submitComment() {
console.log(err)
});
}
const submitReplayLoading = ref(false);
// 回复评论
function submitReplayComment() {
if(replayComment.value.content==""){
@@ -569,7 +533,6 @@ function submitReplayComment() {
submitReplayLoading.value = false;
});
}
// 报名
function onLineSignUp(isAgain) {
if (!state.isAllowSign) {
@@ -587,14 +550,12 @@ function onLineSignUp(isAgain) {
data.value.isRefused = false;
ElMessage.success(isAgain? "重新报名成功" : "报名成功");
}
function formateArr(strs) {
let arrs = strs.split(',')
console.log('112233', arrs)
return arrs
}
</script>
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style lang="scss">
.faceteach {
@@ -604,7 +565,6 @@ function formateArr(strs) {
font-size: 14px;
line-height: 24px;
}
.bascinfo {
width: 100%;
height: 310px;
@@ -614,7 +574,6 @@ function formateArr(strs) {
display: flex;
justify-content: space-between;
align-items: center;
.btn {
width: 146px;
height: 46px;
@@ -631,7 +590,6 @@ function formateArr(strs) {
cursor: pointer;
margin-right: 96px;
}
.title {
font-size: 20px;
font-weight: 800;
@@ -639,7 +597,6 @@ function formateArr(strs) {
line-height: 24px;
margin-left: -9px;
}
.time {
font-size: 14px;
color: #6e7b84;
@@ -648,11 +605,9 @@ function formateArr(strs) {
align-items: center;
}
}
.return {
position: absolute;
right: 10%;
.text {
text-align: center;
display: flex;
@@ -660,37 +615,31 @@ function formateArr(strs) {
align-items: center;
}
}
.detailinfo {
width: 100%;
margin-top: 20px;
display: flex;
align-items: flex-start;
.detail {
flex: 1;
margin-right: 20px;
.detailT {
min-height: 263px;
background: #ffffff;
border-radius: 8px;
color: rgba(51, 51, 51, 1);
.title {
display: flex;
align-items: center;
padding-top: 39px;
position: relative;
}
.title .text {
margin-left: 8px;
font-size: 16px;
color: rgba(51, 51, 51, 1);
font-weight: 800;
}
.title .box {
width: 75px;
height: 10px;
@@ -699,7 +648,6 @@ function formateArr(strs) {
left: 23px;
top: 53px;
}
.content {
margin-left: 8px;
font-size: 14px;
@@ -710,30 +658,25 @@ function formateArr(strs) {
padding-bottom: 30px;
}
}
.detailB {
min-height: 363px;
background: #ffffff;
border-radius: 8px;
margin-top: 20px;
.wenxintishi {
display: flex;
justify-content: stretch;
padding: 72px;
}
.el-tabs__item {
height: 69px;
padding: 25px 7px 0px 52px;
font-size: 14px;
font-weight: 500;
}
.el-tabs__nav-wrap::after {
background-color: rgba(56, 125, 247, 0.2);
}
.enclosure {
height: 89px;
margin-left: 51px;
@@ -742,7 +685,6 @@ function formateArr(strs) {
display: flex;
justify-content: space-between;
align-items: center;
.enclosureL {
display: flex;
align-items: center;
@@ -751,7 +693,6 @@ function formateArr(strs) {
color: #677d86;
line-height: 24px;
}
.download {
display: flex;
align-items: center;
@@ -762,7 +703,6 @@ function formateArr(strs) {
cursor: pointer;
}
}
.work {
margin-left: 51px;
margin-right: 40px;
@@ -771,14 +711,12 @@ function formateArr(strs) {
align-items: center;
margin-top: 37px;
}
.work .question {
font-size: 14px;
font-weight: 500;
color: #333330;
line-height: 18px;
}
.work .submit {
width: 126px;
height: 46px;
@@ -796,14 +734,12 @@ function formateArr(strs) {
}
}
}
.teacher {
width: 434px;
min-height: 500px;
// height: 10%;
background-color: rgba(255, 255, 255, 1);
border-radius: 8px;
.title {
display: flex;
align-items: center;
@@ -811,14 +747,12 @@ function formateArr(strs) {
position: relative;
margin-left: 48px;
}
.title .text {
margin-left: 8px;
font-size: 16px;
color: rgba(51, 51, 51, 1);
font-weight: 800;
}
.title .box {
width: 75px;
height: 10px;
@@ -827,7 +761,6 @@ function formateArr(strs) {
left: 23px;
top: 53px;
}
.teacheritem {
margin-left: 48px;
margin-right: 48px;
@@ -836,23 +769,19 @@ function formateArr(strs) {
padding: 25px 0px;
display: flex;
position: relative;
// align-items: center;
}
.teacheritem .peopleimg {
width: 60px;
height: 60px;
border-radius: 30px;
}
.teacheritem {
.nameSpan {
width: 190px;
display: flex;
align-items: center;
justify-content: center;
.teacherName {
font-size: 14px;
font-weight: bold;
@@ -861,17 +790,13 @@ function formateArr(strs) {
align-items: center;
}
}
}
.teacheritem {
.nameSpan {
width: 190px;
display: flex;
align-items: center;
justify-content: center;
.teacherName {
font-size: 14px;
font-weight: bold;
@@ -880,16 +805,13 @@ function formateArr(strs) {
align-items: center;
}
}
}
.teacheritem .introduce {
font-size: 14px;
font-weight: 500;
color: #394145;
margin-top: 14px;
}
.teacheritem .follow {
width: 80px;
height: 30px;
@@ -908,8 +830,6 @@ function formateArr(strs) {
cursor: pointer;
}
}
}
}
.bascinfor {
@@ -925,7 +845,6 @@ function formateArr(strs) {
// max-height: 110px;
margin-left: 88px;
margin-top: 44px;
.words {
position: absolute;
right: 15px;
@@ -935,7 +854,6 @@ function formateArr(strs) {
font-weight: 500;
color: #333330;
}
.el-textarea__inner {
font-size: 14px;
font-weight: 500;
@@ -946,14 +864,12 @@ function formateArr(strs) {
background-color: rgba(245, 246, 247, 1);
padding: 11px 25px;
}
.el-textarea__inner::placeholder {
font-size: 14px;
font-weight: 500;
color: #666666;
line-height: 24px;
}
// .el-input__inner {
// &::-webkit-input-placeholder {
// /* WebKit browsers 适配谷歌 */
@@ -967,7 +883,6 @@ function formateArr(strs) {
.allimg {
position: relative;
display: flex;
.imgone {
margin-top: 24px;
width: 55px;
@@ -976,7 +891,6 @@ function formateArr(strs) {
background-image: url(../../assets/image/px.png);
background-size: 100%;
}
.cha {
cursor: pointer;
top: 15px;
@@ -990,13 +904,10 @@ function formateArr(strs) {
background-size: 100%;
}
}
.uploadAnd {
margin-top: 21px;
.btwwo {
cursor: pointer;
.image {
padding-top: 8px;
width: 18px;
@@ -1004,7 +915,6 @@ function formateArr(strs) {
// margin-top: 10px;
margin-left: -60px;
}
.shangchuan {
position: absolute;
right: 20px;
@@ -1016,18 +926,15 @@ function formateArr(strs) {
color: #2478ff;
line-height: 24px;
}
width: 126px;
height: 36px;
border: none;
background-color: #fff;
}
.btnone {
cursor: pointer;
position: absolute;
right: 140px;
.image {
padding-top: 8px;
width: 18px;
@@ -1035,7 +942,6 @@ function formateArr(strs) {
// margin-top: 10px;
margin-left: -60px;
}
.shangchuan {
position: absolute;
right: 20px;
@@ -1047,14 +953,12 @@ function formateArr(strs) {
color: #2478ff;
line-height: 24px;
}
width: 126px;
height: 36px;
border: 1px solid #2478ff;
border-radius: 4px;
background-color: #fff;
}
.btntwo {
cursor: pointer;
position: absolute;
@@ -1070,7 +974,6 @@ function formateArr(strs) {
}
}
}
.thinline {
margin-top: 66px;
// width: 1635px;
@@ -1078,7 +981,6 @@ function formateArr(strs) {
margin-left: -50px;
opacity: 0.2;
}
.bottom {
margin-top: 31px;
// width: 100px;
@@ -1086,7 +988,6 @@ function formateArr(strs) {
// background-color: #bfa;
.header {
display: flex;
.avator {
width: 41px;
height: 41px;
@@ -1094,7 +995,6 @@ function formateArr(strs) {
// background-image: url(../../assets/image/px.png);
background-size: 100%;
}
.id {
margin-left: 8px;
font-size: 14px;
@@ -1103,7 +1003,6 @@ function formateArr(strs) {
color: #333333;
line-height: 41px;
}
.showCareer {
margin-left: 7px;
height: 41px;
@@ -1112,7 +1011,6 @@ function formateArr(strs) {
color: #666666;
line-height: 41px;
}
.idThink {
margin-left: 17px;
height: 41px;
@@ -1122,7 +1020,6 @@ function formateArr(strs) {
line-height: 41px;
}
}
.discuss {
margin-left: 48px;
margin-top: 23px;
@@ -1135,7 +1032,6 @@ function formateArr(strs) {
width: 100%;
display: flex;
position: relative;
.talkmain {
margin-right: 25px;
margin-top: 2px;
@@ -1143,7 +1039,6 @@ function formateArr(strs) {
font-weight: 500;
color: #666666;
}
// .talk {
// position: absolute;
// right: 0;
@@ -1153,33 +1048,27 @@ function formateArr(strs) {
// background-size: 100%;
// }
}
.intime {
margin-top: 11px;
font-size: 14px;
font-weight: 500;
color: #999999;
}
.likeYou {
margin-top: 15px;
display: flex;
.same {
width: 14px;
height: 14px;
}
.pinglun {
background-image: url(../../assets/image/pinglun.png);
background-size: 100%;
}
.dianzan {
background-image: url(../../assets/image/dianzan2.png);
background-size: 100%;
}
.count {
margin-left: 7px;
margin-top: -1px;
@@ -1188,7 +1077,6 @@ function formateArr(strs) {
color: #b3bdc4;
}
}
.reply {
display: flex;
margin-top: 32px;
@@ -1200,7 +1088,6 @@ function formateArr(strs) {
height: 29px;
border-radius: 50%;
}
.sameuser {
margin-left: 14px;
line-height: 29px;
@@ -1209,7 +1096,6 @@ function formateArr(strs) {
color: #333333;
font-size: 14px;
}
.centerreply {
height: 29px;
font-size: 14px;
@@ -1219,17 +1105,14 @@ function formateArr(strs) {
margin-left: 23px;
margin-right: 17px;
}
.avaone {
// background-image: url(../../assets/image/px.png);
background-size: 100%;
}
.avatwo {
// background-image: url(../../assets/image/px.png);
background-size: 100%;
}
.replytime {
margin-left: 17px;
height: 29px;
@@ -1239,11 +1122,9 @@ function formateArr(strs) {
line-height: 29px;
}
}
.allreplyimg {
display: flex;
margin-top: 21px;
.singleimg {
margin-right: 7px;
width: 65px;
@@ -1253,11 +1134,9 @@ function formateArr(strs) {
background-size: 100%;
}
}
.mainreply {
display: flex;
margin-top: 16px;
.replydetail {
height: 23px;
font-size: 14px;
@@ -1266,9 +1145,7 @@ function formateArr(strs) {
line-height: 23px;
margin-right: 11px;
}
}
.inreply {
position: relative;
margin-top: -22px;
@@ -1278,4 +1155,4 @@ function formateArr(strs) {
}
}
}
</style>
</style>