修改提出的bug
@@ -11,7 +11,7 @@ VITE_APP_BASE_API_Url = 'https://aitstest.jlbank.com.cn:7001'
|
||||
# http://25.18.122.65:7001/download/dev-jax.apk
|
||||
# app入口
|
||||
#VITE_APP_BASE_API_Url = 'http://25.16.122.65:7001'
|
||||
#VITE_APP_BASE_API_Url = 'http://25.18.122.91:9786'
|
||||
#VITE_APP_BASE_API_Url = 'http://25.16.122.91:9786'
|
||||
#VITE_APP_BASE_API_Url = 'http://25.18.122.66:9786'
|
||||
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<image :src="imgUrlShow" fit="cover"></image>
|
||||
<image :src="imgUrlShow" fit="cover" :mode="mode"></image>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
@@ -30,7 +30,11 @@
|
||||
isCache:{
|
||||
type: Boolean,
|
||||
default: false
|
||||
}
|
||||
},
|
||||
mode:{
|
||||
type: String,
|
||||
default: 'widthFix'
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<view class="components_custom_file_upload_div pic-cell">
|
||||
<view v-for="(item,index) in fileList" class="img_div pic-item">
|
||||
<image-preview :imgId="item.fileId" class="img"></image-preview>
|
||||
<view v-for="(item,index) in fileList" class="img_div pic-item" @click="pic_click(item, index)">
|
||||
<image-preview :imgId="item.fileId" class="img" mode="aspectFill"></image-preview>
|
||||
</view>
|
||||
<view @tap="upload" v-show="show_upload_button">
|
||||
<view class=" add_icon"></view>
|
||||
@@ -25,6 +25,14 @@
|
||||
const show_upload_button = computed(() => {
|
||||
return !props.readonly && props.limit > fileList.length
|
||||
})
|
||||
const pic_click = (item, index) => {
|
||||
common.show('提示', '是否删除图片' + (index + 1)).then(res => {
|
||||
if (res) {
|
||||
fileList.splice(index, 1)
|
||||
emits('update:modelValue', fileList.map(res => res.fileId))
|
||||
}
|
||||
})
|
||||
}
|
||||
// 定义props
|
||||
const props = defineProps({
|
||||
modelValue: {
|
||||
@@ -56,19 +64,13 @@
|
||||
fileId: res
|
||||
})))
|
||||
}
|
||||
// else if ((typeof newVal === "String") && newVal !== '') {
|
||||
// fileList.push({
|
||||
// fileId: newVal
|
||||
// })
|
||||
// }
|
||||
}, {
|
||||
deep: true,
|
||||
immediate: true
|
||||
})
|
||||
// 定义emits
|
||||
const emits = defineEmits(['update:modelValue'])
|
||||
|
||||
|
||||
|
||||
onMounted(() => {
|
||||
|
||||
})
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { toRefs, ref, computed, unref, onMounted, onUnmounted, defineEmits, nextTick } from 'vue';
|
||||
import { toRefs, ref, computed, unref, onMounted, onUnmounted, nextTick } from 'vue';
|
||||
const emit = defineEmits(['uploadVoice', 'submitAnswer','startRecord'])
|
||||
const props = defineProps({
|
||||
answerType:{
|
||||
|
||||
@@ -1,88 +1,84 @@
|
||||
<template>
|
||||
<view class="comment_div">
|
||||
<scroll-view class="scroll-view" :scroll-y="true" :show-scrollbar="false">
|
||||
|
||||
<view class="message_div" v-for="(item,index) in message_list">
|
||||
<view class="head_div">
|
||||
<image-preview v-if="item.userIconImgId" class="img-box img"
|
||||
:src="item.userIconImgId"></image-preview>
|
||||
<image v-else src="/static/images/me/default_user_avatar.png" class="img"></image>
|
||||
<view class="empty_message_div" v-if="message_list.length == 0">
|
||||
<image class="img" src="@/static/images/courseDetail/empty_message.png"></image>
|
||||
</view>
|
||||
<!-- message_list -->
|
||||
<view class="message_div" v-for="(item,index) in message_list">
|
||||
<view class="head_div">
|
||||
<image-preview v-if="item.userIconImgId" class="img-box img" :src="item.userIconImgId"></image-preview>
|
||||
<image v-else src="/static/images/me/default_user_avatar.png" class="img"></image>
|
||||
</view>
|
||||
<view class="msg_content">
|
||||
<view class="title_div">
|
||||
<view class="name">{{item.userName}}</view>
|
||||
<view class="title_tip">{{item.bbsTagDesc}}</view>
|
||||
</view>
|
||||
<view class="msg_content">
|
||||
<view class="title_div">
|
||||
<view class="name">{{item.userName}}</view>
|
||||
<view class="title_tip">{{item.bbsTagDesc}}</view>
|
||||
</view>
|
||||
<view class="title">
|
||||
{{item.bbsContent}}
|
||||
</view>
|
||||
<view class="img_div pic-cell">
|
||||
<image-preview v-for="img in item.imgIdList" :imgId="img" class="pic-item"></image-preview>
|
||||
</view>
|
||||
<view class="time_and_reply">
|
||||
<view class="time">{{item.bbsTm.substr(0,16)}}</view>
|
||||
<view class="reply" @click="click_reply(item, item.bbsId, index)">回复</view>
|
||||
</view>
|
||||
<view class="show_close_div" v-if="item.children?.length" @click="item.show = !item.show">
|
||||
<template v-if="item.show">
|
||||
<view>收起</view>
|
||||
<view class="back_div">
|
||||
<view class="back-icon"></view>
|
||||
</view>
|
||||
</template>
|
||||
<template v-else>
|
||||
<view>展开{{item.children?.length}}条回复</view>
|
||||
<view class="back_div">
|
||||
<view class="back-icon"></view>
|
||||
</view>
|
||||
</template>
|
||||
</view>
|
||||
<view class="children" v-if="item.show">
|
||||
<view class="message_div" v-for="childrenItem in item.children">
|
||||
<view class="head_div">
|
||||
<image-preview v-if="childrenItem.userIconImgId" class="img-box img"
|
||||
:src="childrenItem.userIconImgId"></image-preview>
|
||||
<image v-else src="/static/images/me/default_user_avatar.png" class="img"></image>
|
||||
</view>
|
||||
<view class="msg_content">
|
||||
<view class="title_div">
|
||||
<view class="name">{{childrenItem.userName}}</view>
|
||||
<view class="arrow"></view>
|
||||
<view class="name">{{childrenItem.rtnUName}}</view>
|
||||
|
||||
</view>
|
||||
<view class="title">
|
||||
{{childrenItem.bbsContent}}
|
||||
</view>
|
||||
<view class="img_div">
|
||||
</view>
|
||||
<view class="time_and_reply">
|
||||
<view class="time">{{childrenItem.bbsTm.substr(0,16)}}</view>
|
||||
<view class="reply"
|
||||
@click="click_reply(childrenItem, childrenItem.parentId, index)">回复
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="title">
|
||||
{{item.bbsContent}}
|
||||
</view>
|
||||
<view class="img_div pic-cell">
|
||||
<image-preview v-for="img in item.imgIdList" :imgId="img" class="pic-item"></image-preview>
|
||||
</view>
|
||||
<view class="time_and_reply">
|
||||
<view class="time">{{item.bbsTm.substr(0,16)}}</view>
|
||||
<view class="reply" @click="click_reply(item, item.bbsId, index)">回复</view>
|
||||
</view>
|
||||
<view class="show_close_div" v-if="item.children?.length" @click="item.show = !item.show">
|
||||
<template v-if="item.show">
|
||||
<view>收起</view>
|
||||
<view class="back_div">
|
||||
<view class="back-icon"></view>
|
||||
</view>
|
||||
</template>
|
||||
<template v-else>
|
||||
<view>展开{{item.children?.length}}条回复</view>
|
||||
<view class="back_div">
|
||||
<view class="back-icon"></view>
|
||||
</view>
|
||||
</template>
|
||||
</view>
|
||||
<view class="children" v-if="item.show">
|
||||
<view class="message_div" v-for="childrenItem in item.children">
|
||||
<view class="head_div">
|
||||
<image-preview v-if="childrenItem.userIconImgId" class="img-box img"
|
||||
:src="childrenItem.userIconImgId"></image-preview>
|
||||
<image v-else src="/static/images/me/default_user_avatar.png" class="img"></image>
|
||||
</view>
|
||||
<view class="msg_content">
|
||||
<view class="title_div">
|
||||
<view class="name">{{childrenItem.userName}}</view>
|
||||
<view class="arrow"></view>
|
||||
<view class="name">{{childrenItem.rtnUName}}</view>
|
||||
|
||||
</view>
|
||||
<view class="title">
|
||||
{{childrenItem.bbsContent}}
|
||||
</view>
|
||||
<view class="img_div">
|
||||
</view>
|
||||
<view class="time_and_reply">
|
||||
<view class="time">{{childrenItem.bbsTm.substr(0,16)}}</view>
|
||||
<view class="reply" @click="click_reply(childrenItem, childrenItem.parentId, index)">回复
|
||||
</view>
|
||||
</view>
|
||||
|
||||
|
||||
</view>
|
||||
</view>
|
||||
|
||||
|
||||
</view>
|
||||
|
||||
</view>
|
||||
<view class="send_evaluate_div_height"></view>
|
||||
</scroll-view>
|
||||
</view>
|
||||
<view class="send_evaluate_div">
|
||||
<uv-button type="primary" class="send_evaluate"
|
||||
@click="common.navigateTo('/pages/courseDetail/submit?crsNum='+props.crsNum+'&imgId='+props.imgId)">发布评价</uv-button>
|
||||
</view>
|
||||
|
||||
<uni-popup ref="popup" background-color="red">
|
||||
|
||||
<view class="bottom_reply_input_div">
|
||||
<uv-input v-model="reply_data.bbsContent" placeholderStyle='color:#999999;font-size:26rpx'
|
||||
:placeholder="reply_data.placeholder" :focus="true">
|
||||
:placeholder="reply_data.placeholder" :focus="true" :maxlength="160">
|
||||
</uv-input>
|
||||
<view class="" style="display: flex;flex-direction: column; margin:10rpx 20rpx;">
|
||||
<view class="fl1"></view>
|
||||
@@ -169,22 +165,31 @@
|
||||
Object.assign(message_list, body)
|
||||
})
|
||||
}
|
||||
defineExpose({getData})
|
||||
defineExpose({
|
||||
getData
|
||||
})
|
||||
onMounted(() => {
|
||||
getData()
|
||||
})
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
|
||||
|
||||
.empty_message_div{
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
padding: 80rpx 0;
|
||||
.img{
|
||||
width: 288rpx;
|
||||
height: 276rpx;
|
||||
}
|
||||
}
|
||||
.pic-cell {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
justify-content: flex-start;
|
||||
}
|
||||
|
||||
|
||||
.pic-item {
|
||||
margin-right: 16rpx;
|
||||
width: 170rpx;
|
||||
@@ -193,31 +198,29 @@
|
||||
// background-color: red;
|
||||
margin-bottom: 24rpx;
|
||||
}
|
||||
|
||||
|
||||
.send_evaluate_div_height {
|
||||
height: 170rpx;
|
||||
}
|
||||
|
||||
.send_evaluate_div {
|
||||
position: absolute;
|
||||
bottom: 0rpx;
|
||||
width: calc(100% - 80rpx);
|
||||
padding-top: 10rpx;
|
||||
padding-bottom: 30rpx;
|
||||
position: fixed;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
width: 100%;
|
||||
padding: 10rpx 20rpx 30rpx 20rpx;
|
||||
// padding-top: 10rpx;
|
||||
// padding-bottom: 30rpx;
|
||||
background-color: #ffffff;
|
||||
|
||||
// background-color: red;
|
||||
:deep(.uv-button-wrapper) {
|
||||
.uv-button {
|
||||
border-radius: 14rpx;
|
||||
height: 92rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.scroll-view {
|
||||
|
||||
position: relative;
|
||||
height: calc(100vh - 88rpx - 162rpx - 256rpx - 50rpx);
|
||||
overflow: hidden;
|
||||
|
||||
}
|
||||
|
||||
// 顶部随着输入法弹出的框
|
||||
@@ -271,8 +274,6 @@
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
.message_div:not(:first-child) {
|
||||
margin-top: 30rpx;
|
||||
}
|
||||
@@ -280,6 +281,8 @@
|
||||
.message_div {
|
||||
// margin-top: 30rpx;
|
||||
display: flex;
|
||||
margin-left: 20rpx;
|
||||
margin-right: 20rpx;
|
||||
|
||||
.head_div {
|
||||
.img {
|
||||
@@ -401,11 +404,11 @@
|
||||
}
|
||||
|
||||
.comment_div {
|
||||
padding: 20rpx 20rpx 20rpx 40rpx;
|
||||
padding: 20rpx 0 20rpx 0;
|
||||
background-color: #ffffff;
|
||||
border-radius: 24rpx;
|
||||
position: relative;
|
||||
height: calc(100vh - 88rpx - 162rpx - 256rpx - 70rpx);
|
||||
overflow: hidden;
|
||||
// height: calc(100vh - 88rpx - 162rpx - 256rpx - 70rpx);
|
||||
// overflow: hidden;
|
||||
}
|
||||
</style>
|
||||
@@ -32,7 +32,7 @@
|
||||
</view>
|
||||
</view>
|
||||
<view class="bottom-right">
|
||||
<image src="/src/static/images/courseDetail/mipmap-xhdpi/ditu.png" class="right-img" mode="widthFix"></image>
|
||||
<image src="/src/static/images/courseDetail/ditu.png" class="right-img" mode="widthFix"></image>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@@ -1,24 +1,26 @@
|
||||
<template>
|
||||
<view class="point-item mb-30" v-for="(item, index) in modelValue?.pgrphData || []" :key="item.index">
|
||||
<view class="flex">
|
||||
<view class="point-item mb-30" v-for="(item, index) in modelValue?.pgrphData || []" :key="item.index"
|
||||
@click="toDetail(item)" :class="item.pgrphStdyStateName == '已学习' ? 'learn' : 'unlearn'">
|
||||
<view class="top mb-30">
|
||||
<view class="blue-ball">
|
||||
<view class="ball"></view>
|
||||
</view>
|
||||
<view class="item-label" @click="toDetail(item)">
|
||||
<view class="fz-30 font_pf fw-400 mb-30">知识点0{{ index + 1 }}</view>
|
||||
<view class="fz-30 font_pf fw-400 mb-36">{{ item.pgrphContent }}</view>
|
||||
<view class="fz-30 font_pf title">知识点0{{ index + 1 }}</view>
|
||||
<view class="fl1">
|
||||
|
||||
</view>
|
||||
<view class="font_pf fz-24 study-status" >
|
||||
{{ item.pgrphStdyStateName }}
|
||||
</view>
|
||||
|
||||
</view>
|
||||
<view class="pt-8">
|
||||
<view class="font_pf fz-24" :class="item.pgrphStdyStateName == '已学习' ? 'learn' : 'unlearn'">
|
||||
{{ item.pgrphStdyStateName }}</view>
|
||||
<view class="bottom">
|
||||
<view class="fz-30 font_pf text">{{ item.pgrphContent }}</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
|
||||
|
||||
import common from '@/common/common';
|
||||
const emit = defineEmits(['toStudyPrgh'])
|
||||
|
||||
@@ -31,16 +33,43 @@
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.learn{
|
||||
.study-status{
|
||||
color: #1DD17A;
|
||||
}
|
||||
.title,.text{
|
||||
color: #000;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
}
|
||||
.unlearn{
|
||||
.study-status{
|
||||
color: #666666;
|
||||
}
|
||||
color: #666;
|
||||
}
|
||||
.point-item {
|
||||
background-color: #fff;
|
||||
display: flex;
|
||||
// display: flex;
|
||||
padding-top: 24rpx;
|
||||
padding-left: 36rpx;
|
||||
padding-right: 52rpx;
|
||||
padding-bottom: 36rpx;
|
||||
border-radius: 22rpx;
|
||||
justify-content: space-between;
|
||||
|
||||
// justify-content: space-between;
|
||||
// margin-left: 16rpx;
|
||||
// margin-right: 16rpx;
|
||||
.top {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.bottom {
|
||||
padding-left: 12rpx;
|
||||
}
|
||||
|
||||
.blue-ball {
|
||||
padding-top: 16rpx;
|
||||
margin-right: 12rpx;
|
||||
|
||||
@@ -1,80 +1,92 @@
|
||||
<template>
|
||||
<view class="max_page detail-main" style="overflow: hidden;">
|
||||
<image src="/src/static/images/courseDetail/mipmap-xhdpi/bg.png" mode="widthFix" class="back-image"></image>
|
||||
<view class="back_div" @click="common.navigateBack()">
|
||||
<view class="back-icon"></view>
|
||||
</view>
|
||||
<view class="detail-body">
|
||||
<view class="head-title font_pf">
|
||||
<view class="title-text">{{ form.crsName }}</view>
|
||||
<view class="title-num">
|
||||
<view class="num-item">
|
||||
<image class="title-icon" src="/src/static/images/courseDetail/mipmap-xhdpi/zhishidian.png"
|
||||
mode="widthFix"></image>
|
||||
<view class="mr-10">知识点</view>
|
||||
<view class="c-000">{{ form.pgrphNum }}</view>
|
||||
</view>
|
||||
<view class="num-item">
|
||||
<image class="title-icon" src="/src/static/images/courseDetail/mipmap-xhdpi/yixue.png"
|
||||
mode="widthFix"></image>
|
||||
<view class="mr-10">已学</view>
|
||||
<view class="c-000">{{ form.styParaGraphNum }}</view>
|
||||
<view class="max_page ">
|
||||
<nav-bar :is_seat="false" :backgroundColor="bgOpacity"></nav-bar>
|
||||
<scroll-view :scroll-y="tabAct!=4" class="scroll detail-main" @scroll="scroll_fun">
|
||||
<view class="bg_div">
|
||||
<image-preview class="img_100 " :imgId="form.imgId" mode="widthFix"></image-preview>
|
||||
<!-- <image :src="form.imgId" mode="widthFix" class="back-image"></image> -->
|
||||
</view>
|
||||
<view class="back_div" @click="common.navigateBack()">
|
||||
<view class="back-icon"></view>
|
||||
</view>
|
||||
<view class="detail-body">
|
||||
<view class="head-title font_pf">
|
||||
<view class="title-text">{{ form.crsName || '' }}</view>
|
||||
<view class="title-num">
|
||||
<view class="num-item">
|
||||
<image class="title-icon" src="/src/static/images/courseDetail/zhishidian.png"
|
||||
mode="widthFix"></image>
|
||||
<view class="mr-10">知识点</view>
|
||||
<view class="c-000">{{ form.pgrphNum || 0 }}</view>
|
||||
</view>
|
||||
<view class="num-item">
|
||||
<image class="title-icon" src="/src/static/images/courseDetail/yixue.png"
|
||||
mode="widthFix"></image>
|
||||
<view class="mr-10">已学</view>
|
||||
<view class="c-000">{{ form.styParaGraphNum || 0 }}</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="body-box">
|
||||
<view class="body-tab">
|
||||
<uv-tabs class="font_pf" :current="tabAct" :list="tabList" @change="tabSwitch" :scrollable="false"
|
||||
line-color="#0066FF"
|
||||
:active-style="{ color: '#323E57', 'font-weight': 600, 'font-size': '30rpx' }"
|
||||
:inactive-style="{ color: '#666666', 'font-size': '30rpx' }"></uv-tabs>
|
||||
</view>
|
||||
<view class="body-box">
|
||||
<view class="body-tab">
|
||||
<uv-tabs class="font_pf" :current="tabAct" :list="tabList" @change="tabSwitch"
|
||||
:scrollable="false" line-color="#0066FF"
|
||||
:active-style="{ color: '#323E57', 'font-weight': 600, 'font-size': '30rpx' }"
|
||||
:inactive-style="{ color: '#666666', 'font-size': '30rpx' }"></uv-tabs>
|
||||
</view>
|
||||
|
||||
<view class="course-info" v-if="tabAct == 0">
|
||||
<introduceVue v-model="form"></introduceVue>
|
||||
</view>
|
||||
<view class="point" v-if="tabAct == 1">
|
||||
<knowledge v-model="form" @toStudyPrgh="toStudyPrgh"></knowledge>
|
||||
</view>
|
||||
<view class="evaluate" v-if="tabAct == 2">
|
||||
<comment ref="commentRef" :crsNum="form.crsNum" :imgId="form.imgId"></comment>
|
||||
</view>
|
||||
<view class="course-info" v-if="tabAct == 0">
|
||||
<introduceVue v-model="form"></introduceVue>
|
||||
</view>
|
||||
<view class="point" v-if="tabAct == 1">
|
||||
<knowledge v-model="form" @toStudyPrgh="toStudyPrgh"></knowledge>
|
||||
</view>
|
||||
<view class="evaluate" v-if="tabAct == 2">
|
||||
<comment ref="commentRef" :crsNum="form.crsNum" :imgId="form.imgId"></comment>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
</scroll-view>
|
||||
<view class="btn-box btn-box-height font_pf" v-if="[0,1].includes(tabAct)">
|
||||
|
||||
<uv-button type="primary"
|
||||
@click="common.navigateTo('/pages/course/study?crsNum='+crsNum+'&crsId='+form.crsId)">去学习</uv-button>
|
||||
<uv-button type="primary">去练习</uv-button>
|
||||
<uv-button type="primary">去考试</uv-button>
|
||||
|
||||
|
||||
<!-- <template v-if="tabAct == 2">
|
||||
<uv-button type="primary" class="send_evaluate"
|
||||
@click="common.navigateTo('/pages/courseDetail/submit?crsNum='+crsNum)">发布评价</uv-button>
|
||||
</template> -->
|
||||
|
||||
<uv-button type="primary" class="send_evaluate"
|
||||
@click="common.navigateTo('/pages/courseDetail/submit?crsNum='+crsNum)">发布评价</uv-button>
|
||||
</template> -->
|
||||
|
||||
</view>
|
||||
</view>
|
||||
|
||||
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import {
|
||||
reactive,
|
||||
ref
|
||||
ref,
|
||||
computed
|
||||
} from 'vue';
|
||||
|
||||
import {
|
||||
onLoad,onShow
|
||||
} from '@dcloudio/uni-app';
|
||||
onShow,
|
||||
onLoad,
|
||||
onUnload
|
||||
} from '@dcloudio/uni-app'
|
||||
import {
|
||||
getCourseDetailApi
|
||||
} from '@/api/courseDetail.js';
|
||||
// import {formatDate2} from '@/common/common.js'
|
||||
import common from '@/common/common';
|
||||
import introduceVue from './components/introduce.vue';
|
||||
import knowledge from './components/knowledge.vue';
|
||||
import comment from './components/comment.vue';
|
||||
|
||||
|
||||
// tab栏
|
||||
const tabList = ref([{
|
||||
name: '课程介绍'
|
||||
@@ -83,10 +95,12 @@
|
||||
}, {
|
||||
name: '评价'
|
||||
}]);
|
||||
|
||||
const commentRef = ref(null);
|
||||
const form = ref({});
|
||||
const crsNum = ref('');
|
||||
const tabAct = ref(0);
|
||||
const scrollTop = ref(0);
|
||||
const tabSwitch = (item) => {
|
||||
tabAct.value = item.index;
|
||||
};
|
||||
@@ -98,41 +112,52 @@
|
||||
});
|
||||
form.value = body;
|
||||
};
|
||||
const toStudyPrgh = (info) => {
|
||||
common.navigateTo('/pages/course/study?crsNum=' + crsNum.value + '&crsId=' + form.value.crsId + '&pgrphId=' +
|
||||
info.pgrphId)
|
||||
}
|
||||
|
||||
const bgOpacity = computed(() => {
|
||||
if (scrollTop.value <= 20) return `rgba(255,255,255,0)`;
|
||||
const opacity = Math.min(1, (scrollTop.value - 20) / 80);
|
||||
return `rgba(255,255,255,${opacity})`;
|
||||
});
|
||||
const scroll_fun = (e) => {
|
||||
scrollTop.value = e.detail.scrollTop
|
||||
}
|
||||
onLoad((params) => {
|
||||
crsNum.value = params.crsNum;
|
||||
getData();
|
||||
});
|
||||
onShow(() => {
|
||||
if (common.getPageCache('GLOBAL_TRIGGER_UPDATE_REFRESH_KEY')) {
|
||||
uni.$on('refresh_comment_data', () => {
|
||||
commentRef.value.getData();
|
||||
}
|
||||
})
|
||||
});
|
||||
onUnload(() => {
|
||||
uni.$off('refresh_comment_data')
|
||||
});
|
||||
const toStudyPrgh = (info)=>{
|
||||
common.navigateTo('/pages/course/study?crsNum='+crsNum.value+'&crsId='+form.value.crsId+'&pgrphId=' + info.pgrphId)
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
|
||||
.back_div {
|
||||
margin-right: 10rpx;
|
||||
position: absolute;
|
||||
position: fixed;
|
||||
left: 46rpx;
|
||||
top: 64rpx;
|
||||
|
||||
.back-icon {
|
||||
position: relative;
|
||||
width: 40rpx;
|
||||
height: 40rpx;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
|
||||
.back-icon::before,
|
||||
.back-icon::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
|
||||
|
||||
.back-icon::after {
|
||||
top: 25%;
|
||||
left: 25%;
|
||||
@@ -143,21 +168,28 @@
|
||||
transform: rotate(-45deg);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.detail-main {
|
||||
background-color: #f5f5f5;
|
||||
position: relative;
|
||||
height: 100%;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.scroll {
|
||||
height: 100vh;
|
||||
}
|
||||
|
||||
.detail-body {
|
||||
box-sizing: border-box;
|
||||
min-height: calc(100vh - 256rpx);
|
||||
// min-height: calc(100vh - 256rpx);
|
||||
position: absolute;
|
||||
top: 256rpx;
|
||||
border-radius: 23rpx 23rpx 0rpx 0rpx;
|
||||
width: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
||||
}
|
||||
|
||||
.body-head {
|
||||
@@ -165,14 +197,20 @@
|
||||
background-color: red;
|
||||
}
|
||||
|
||||
.back-image {
|
||||
position: absolute;
|
||||
.bg_div {
|
||||
position: fixed;
|
||||
width: 100%;
|
||||
|
||||
.back-image {
|
||||
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.head-title {
|
||||
border-radius: 24rpx 24rpx 0rpx 0rpx;
|
||||
height: 162rpx;
|
||||
// height: 162rpx;
|
||||
background-color: #ffffff;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
||||
@@ -18,21 +18,15 @@
|
||||
<view class="tips font_pf">最多可添加4张图片</view>
|
||||
<view class="num">
|
||||
<view class="num-pic">
|
||||
<image-preview class="img_100" :imgId="imgId" :isCache="true"></image-preview>
|
||||
<image-preview class="img_100" :imgId="imgId" :isCache="true" mode="aspectFill"></image-preview>
|
||||
<!-- <img class="w_100" src="/src/static/images/test/touxiang.png" mode="widthFix" /> -->
|
||||
</view>
|
||||
<view class="num-box">
|
||||
<view class="font_pf fz-28 c-666">综合评分(1-11)</view>
|
||||
<view class="font_pf fz-28 c-666">综合评分(1-10)</view>
|
||||
<view class="slider-box">
|
||||
<!-- <uv-slider step="1" activeColor="#0066FF" :blockSize="14" v-model="formData.bbsGrade"
|
||||
:min="0" :max="10"></uv-slider> -->
|
||||
<slider :min="0" :max="10" :value="formData.bbsGrade" :step="0.1" :show-value="true"
|
||||
<slider :min="0" :max="10" :value="10" @change="sliderChange" :step="0.1" :show-value="true"
|
||||
:blockSize="14"></slider>
|
||||
</view>
|
||||
<!-- <view class="flex-jcsb">
|
||||
<view class="font_pf fz-30 c-000">0</view>
|
||||
<view class="font_pf fz-30 c-000 tar">10</view>
|
||||
</view> -->
|
||||
</view>
|
||||
</view>
|
||||
<view class="tab">
|
||||
@@ -78,6 +72,10 @@
|
||||
"bbsContent": '', // 评价内容
|
||||
})
|
||||
const imgId = ref('')
|
||||
const sliderChange = (event) => {
|
||||
formData.bbsGrade = event.detail.value
|
||||
}
|
||||
|
||||
const submit = () => {
|
||||
if (formData.bbsContent === '') {
|
||||
if (formData.bbsTag == 'SUG') {
|
||||
@@ -89,9 +87,8 @@
|
||||
publishCrsEvaluation(formData).then(res => {
|
||||
common.msg('发表成功')
|
||||
setTimeout(() => {
|
||||
common.navigateBack(1, () => {
|
||||
common.setPageCache('GLOBAL_TRIGGER_UPDATE_REFRESH_KEY', true)
|
||||
})
|
||||
uni.$emit('refresh_comment_data')
|
||||
common.navigateBack()
|
||||
}, 500)
|
||||
})
|
||||
}
|
||||
|
||||
@@ -131,7 +131,7 @@
|
||||
<uv-skeleton :loading="!item.crsNum" :rows="3" avatar avatar-shape="square" :title="false">
|
||||
<view class="item" @click="goto_course_detail(item.crsNum)">
|
||||
<view class="left">
|
||||
<image-preview class="img-box img" :imgId="item.imgThumbId"></image-preview>
|
||||
<image-preview class="img-box img" :imgId="item.imgThumbId" mode="aspectFit"></image-preview>
|
||||
</view>
|
||||
<view class="right">
|
||||
<view class="title ellipsis-text">{{item.crsName}}</view>
|
||||
@@ -164,7 +164,7 @@
|
||||
<uv-skeleton :loading="!item.crsNum" :rows="3" avatar avatar-shape="square" :title="false">
|
||||
<view class="item" @click="goto_course_detail(item.crsNum)">
|
||||
<view class="left">
|
||||
<image-preview class="img-box img" :imgId="item.imgThumbId"></image-preview>
|
||||
<image-preview class="img-box img" :imgId="item.imgThumbId" mode="aspectFit"></image-preview>
|
||||
</view>
|
||||
<view class="right">
|
||||
<view class="title ellipsis-text">{{item.crsName}}</view>
|
||||
@@ -196,7 +196,7 @@
|
||||
<uv-skeleton :loading="!item.crsNum" :rows="3" avatar avatar-shape="square" :title="false">
|
||||
<view class="item" @click="goto_course_detail(item.crsNum)">
|
||||
<view class="left">
|
||||
<image-preview class="img-box img" :imgId="item.imgThumbId"></image-preview>
|
||||
<image-preview class="img-box img" :imgId="item.imgThumbId" mode="aspectFit"></image-preview>
|
||||
</view>
|
||||
<view class="right">
|
||||
<view class="title ellipsis-text">{{item.crsName}}</view>
|
||||
|
||||
|
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 38 KiB |
|
After Width: | Height: | Size: 8.7 KiB |
|
Before Width: | Height: | Size: 526 KiB |
|
Before Width: | Height: | Size: 601 B After Width: | Height: | Size: 601 B |
|
Before Width: | Height: | Size: 416 B After Width: | Height: | Size: 416 B |