Commit e87edc18 authored by 罗超's avatar 罗超

Merge branch 'master' of http://gitlab.oytour.com/youjie/thinkapp

parents 3a3bf6e0 e564b053
......@@ -225,15 +225,17 @@
border: 3px solid #FFFFFF;
box-shadow: 0px 0px 12px 0px rgba(255, 255, 255, 0.46);
}
.examComponents-center-box::after { /* div是你需要添加背景图片的盒子*/
content: "";
background-image: url(https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1654062518000_33.png);
background-position: 30rpx bottom;
background-position: right 20rpx top 43rpx;
background-size: 74rpx auto;
background-repeat: no-repeat;
opacity: 1;
opacity: 0.3;
position: absolute;
top: 0rpx;
top: 0;
left: 0;
bottom: 0;
right: 0;
}
......
<template>
<view class="commentDetailsList-box">
<view class="commentDetailsList-add" @click="goAdd">
<van-icon name="plus" /><text>增加评论</text> </view>
<view class="index-student-information">
<view class="commentDetailsList-content">
<view class="commentDetailsList-list" v-for="(item,index) in CourseCommentTimesList" :key="index">
<!-- <view class="commentDetailsList-cross" @click="deleteRules">
<van-icon name="plus" />
<text>增加评论</text>
</view>
<view class="index-student-information">
<view class="commentDetailsList-content">
<view class="commentDetailsList-list" v-for="(item,index) in CourseCommentTimesList" :key="index">
<!-- <view class="commentDetailsList-cross" @click="deleteRules">
<van-icon name="cross" />
</view> -->
<view class="commentDetailsList-img flex">
<view>{{item.StuName}}</view>
<view class="flex">
<text>{{item.ShowTypeStr}}</text>
<van-image @click="editRules(item)" class="img" width="31rpx" height="30rpx" fit="cover" src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1653980151000_180.png" />
</view>
<view class="Wire"></view>
</view>
<view class="commentDetailsList-comment">
{{item.Info}}
</view>
</view>
</view>
<view class="noData">
<image src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1653902791000_806.png" mode="widthFix"></image>
<view>暂无评论规则数据</view>
</view>
</view>
<template v-show="show">
<commentDetailsPopu ref="getcommentPopup" @change="changeData"></commentDetailsPopu>
</template>
<view class="commentDetailsList-img flex">
<view>{{item.StuName}}</view>
<view class="flex">
<text>{{item.ShowTypeStr}}</text>
<van-image @click="editRules(item)" class="img" width="31rpx" height="30rpx" fit="cover" src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1653980151000_180.png" />
</view>
<view class="Wire"></view>
</view>
<view class="commentDetailsList-comment">
{{item.Info}}
</view>
</view>
</view>
<view class="noData">
<image src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1653902791000_806.png" mode="widthFix"></image>
<view>暂无评论规则数据</view>
</view>
</view>
<template v-show="show">
<commentDetailsPopu ref="getcommentPopup" @change="changeData"></commentDetailsPopu>
</template>
</view>
</template>
<script>
import commentDetailsPopu from '@/components/setComments/commentDetailsPopu'
import commentDetailsPopu from '@/components/setComments/commentDetailsPopu'
import {
ref,
ref,
reactive,
toRefs,
onMounted,
......@@ -46,62 +47,66 @@
} from "vue";
import navbar from '../../components/navbar.vue'
export default {
props: ["CourseCommentTimesList"],
props: ["CourseCommentTimesList", "qMsg"],
emits: ['refreshData'],
components: {
navbar,
commentDetailsPopu
commentDetailsPopu
},
setup(props, context) {
let { refs } = getCurrentInstance();
let {
refs
} = getCurrentInstance();
let {
proxy
} = getCurrentInstance();
let data = reactive({
dataList: [],
show:false
show: false
});
let methods = {
goAdd(){
uni.navigateTo({
url: '/pages/setComments/addComment'
goAdd() {
let url = '/pages/setComments/addComment?CourseId=' + this.qMsg.CourseId + "&CommentTimes=" + this.qMsg.CommentTimes;
console.log("url", url);
uni.navigateTo({
url: url
})
},
},
back() {
uni.navigateBack({
delta: 1
})
},
addRules(){//添加规则
data.show = true
refs.getcommentPopup.$vm.showFun()
},
editRules(item){//编辑规则
data.show = true
refs.getcommentPopup.$vm.showFun(item)
},
deleteRules (){//删除规则
uni.showModal({
title: '提示',
content: '将删除该评价,是否继续',
success: function (res) {
if (res.confirm) {
console.log('---')
} else if (res.cancel) {
uni.showToast({
title:'已取消',
icon:'none',
duration: 500
})
}
}
});
},
addRules() { //添加规则
data.show = true
refs.getcommentPopup.$vm.showFun()
},
editRules(item) { //编辑规则
data.show = true
refs.getcommentPopup.$vm.showFun(item)
},
deleteRules() { //删除规则
uni.showModal({
title: '提示',
content: '将删除该评价,是否继续',
success: function(res) {
if (res.confirm) {
console.log('---')
} else if (res.cancel) {
uni.showToast({
title: '已取消',
icon: 'none',
duration: 500
})
}
}
});
},
clickOptionsShow(item) {
item.optionsShow = !item.optionsShow;
},
//实在评价可见性
clickoptions(item,subItem) {
clickoptions(item, subItem) {
let showTypeMsg = {
CourseId: item.CourseId,
Times: item.Times,
......@@ -109,24 +114,23 @@
};
proxy.$request("/Teacher/SetStuCommentShowTypeByTimes", showTypeMsg).then(res => {
if (res) {
}
})
item.optionsShow = false;
//调用父组件方法
context.emit('refreshData');
},
//刷新数据
changeData()
{
changeData() {
//调用父组件方法
context.emit('refreshData');
}
};
//监听属性数组
watch(() => props["CourseCommentTimesList"], (newValue, oldValue) => {
if (newValue != oldValue && newValue && newValue.length > 0) {
data.dataList = newValue;
}
......@@ -139,12 +143,12 @@
};
},
onLoad(option) {
},
};
</script>
<style scoped>
.noData {
.noData {
text-align: center;
flex: 1;
width: 100%;
......
<template>
<van-popup :show="show" :round="true" position="bottom"
custom-style="height: 80%" @close="closepopup">
<view class="studentsPopu-box flex">
<view class="studentsPopu-title">选择学员 <text>(2/50)</text></view>
<view class="studentsPopu-search flex">
<van-search
:value="Keywords"
shape="round"
style="border-radius: 20rpx;width: 100%;"
input-align="center"
background="#F6F6F6"
@change="searchKeywords"
placeholder="请输入搜索关键词"
/>
</view>
<view class="studentsPopuImg">
<view class="studentsPopu-img-box flex">
<view class="studentsPopu-img-list active flex" @click="clickChoose">
<view class="studentsPopu-imgbox flex">
<view class="studentsPopu-img flex">
<view>
<van-image width="119rpx" height="119rpx" fit="cover"
src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1653894197000_691.png" />
</view>
</view>
</view>
<text class="studentsPopu-text">学员名称</text>
</view>
<view class="studentsPopu-img-list flex" @click="clickChoose">
<view class="studentsPopu-imgbox flex">
<view class="studentsPopu-img flex">
<view>
<van-image width="119rpx" height="119rpx" fit="cover"
src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1653894197000_691.png" />
</view>
</view>
</view>
<text class="studentsPopu-text">学员名称</text>
</view>
</view>
</view>
<view class="footer">
<view class="studentsPopu-save flex">
<view @click="save">确认</view>
</view>
</view>
</view>
</van-popup>
<van-popup :show="show" :round="true" position="bottom" custom-style="height: 80%" @close="closepopup">
<view class="studentsPopu-box flex">
<view class="studentsPopu-title">
选择学员 <text>({{chooseStuArray?chooseStuArray.length:0}} / {{stuList?stuList.length:0}})</text>
</view>
<view class="studentsPopu-search flex">
<van-search :value="Keywords" shape="round" style="border-radius: 20rpx;width: 100%;" input-align="center"
background="#F6F6F6" @change="searchKeywords" placeholder="请输入搜索关键词" />
</view>
<view class="studentsPopuImg">
<view class="studentsPopu-img-box flex">
<template v-for="(item,index) in stuList">
<view class="studentsPopu-img-list active flex" @click="clickChoose(item)">
<view class="studentsPopu-imgbox flex">
<view class="studentsPopu-img flex">
<view>
<van-image width="119rpx" height="119rpx" fit="cover" src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1653894197000_691.png" />
</view>
</view>
</view>
<text class="studentsPopu-text">{{item.StuName}}</text>
</view>
</template>
</view>
</view>
<view class="footer">
<view class="studentsPopu-save flex">
<view @click="save">确认</view>
</view>
</view>
</view>
</van-popup>
</template>
<script>
import {
ref,
ref,
reactive,
toRefs,
onMounted,
getCurrentInstance,
inject,
watch
watch
} from "vue";
import { uploadFile } from "@/utils/index";
import {
uploadFile
} from "@/utils/index";
export default {
props: {
},
props: ["courseStuList"],
emits: ['getdata'],
components: {},
setup(props,ctx) {
let {
setup(props, ctx) {
let {
proxy
} = getCurrentInstance();
let data = reactive({
show: false,
loading: false,
Keywords:''
show: false,
loading: false,
Keywords: '',
stuList: [],
chooseStuArray: []
});
let methods = {
// 选中
clickChoose(item) {
data.chooseStuArray.push(item);
},
// 搜索
searchKeywords() {
},
showFun() {
data.show = true
},
closepopup() {
data.show = false
},
save() {
ctx.emit("getdata", data.chooseStuArray);
data.show = false
}
};
//监听属性数组
watch(() => props["courseStuList"], (newValue, oldValue) => {
if (newValue != oldValue && newValue && newValue.length > 0) {
data.stuList = newValue;
}
}, {
deep: true,
});
let methods = {
// 选中
clickChoose(){
},
// 搜索
searchKeywords(){
},
showFun(){
data.show = true
},
closepopup(){
data.show = false
},
save(){
data.show = false
}
};
let that = methods;
return {
...toRefs(data),
...methods
...methods
};
},
onLoad(){
},
onShow() {
onLoad() {
},
onShow() {
}
};
</script>
<style scoped>
.studentsPopu-text{
.studentsPopu-text {
text-align: center;
font-weight: 500;
font-size: 26rpx;
......@@ -116,88 +112,102 @@
letter-spacing: 1rpx;
margin-top: 15rpx;
}
.studentsPopu-img view{
.studentsPopu-img view {
width: 119rpx;
height: 119rpx;
/* border: 1rpx solid #E5E5E5; */
background: #E5E5E5;
background: #E5E5E5;
border-radius: 50%;
overflow: hidden;
}
.studentsPopu-img-list.active .studentsPopu-img{
background: #C91928;
box-shadow: 0rpx 0rpx 59rpx 0rpx rgba(201, 23, 39, 0.34);
}
.studentsPopu-img{
.studentsPopu-img-list.active .studentsPopu-img {
background: #C91928;
box-shadow: 0rpx 0rpx 59rpx 0rpx rgba(201, 23, 39, 0.34);
}
.studentsPopu-img {
width: 130rpx;
height: 130rpx;
background: #FFFFFF;
box-shadow: 0rpx 6rpx 29rpx 0rpx rgba(76, 76, 76, 0.09);
box-shadow: 0rpx 6rpx 29rpx 0rpx rgba(76, 76, 76, 0.09);
border-radius: 50%;
justify-content: center;
align-items: center;
justify-content: center;
align-items: center;
}
.studentsPopu-imgbox{
.studentsPopu-imgbox {
justify-content: center;
}
.studentsPopu-img-list{
.studentsPopu-img-list {
flex: 0 0 25%;
flex-direction: column;
}
.studentsPopu-img-box{
height: 90%;
.studentsPopu-img-box {
height: 90%;
padding: 40rpx 25rpx;
flex-wrap: wrap;
margin-bottom: 100rpx;
overflow-y: auto;
margin-bottom: 100rpx;
overflow-y: auto;
}
.studentsPopuImg {
max-height: 670rpx;
overflow: hidden;
}
.studentsPopu-search {
padding: 30rpx 27rpx 5rpx 27rpx;
}
.studentsPopu-title text {
font-size: 26rpx;
color: #949494;
font-weight: 400;
margin-left: 20rpx;
}
.studentsPopu-title {
font-size: 36rpx;
font-weight: 800;
color: #282828;
letter-spacing: 1rpx;
padding: 48rpx 55rpx 0 55rpx;
}
.studentsPopu-save view {
background: #C91727;
font-size: 30rpx;
font-weight: bold;
letter-spacing: 1rpx;
width: 260rpx;
line-height: 88rpx;
border-radius: 44rpx;
text-align: center;
color: #FFFFFF;
}
.studentsPopu-save {
justify-content: center;
margin-top: 40rpx;
margin-bottom: 40rpx;
}
.studentsPopu-box {
background: #f6f6f6;
/* padding: 48rpx 0 60rpx 0; */
flex-direction: column;
height: 100%;
overflow: hidden;
}
.footer {
position: fixed;
left: 0;
right: 0;
bottom: 0;
}
.studentsPopuImg{
max-height: 670rpx;
overflow: hidden;
}
.studentsPopu-search{
padding: 30rpx 27rpx 5rpx 27rpx;
}
.studentsPopu-title text{
font-size: 26rpx;
color: #949494;
font-weight: 400;
margin-left: 20rpx;
}
.studentsPopu-title{
font-size: 36rpx;
font-weight: 800;
color: #282828;
letter-spacing: 1rpx;
padding: 48rpx 55rpx 0 55rpx;
}
.studentsPopu-save view{
background: #C91727;
font-size: 30rpx;
font-weight: bold;
letter-spacing: 1rpx;
width: 260rpx;
line-height: 88rpx;
border-radius: 44rpx;
text-align: center;
color: #FFFFFF;
}
.studentsPopu-save{
justify-content: center;
margin-top: 40rpx;
margin-bottom: 40rpx;
}
.studentsPopu-box{
background: #f6f6f6;
/* padding: 48rpx 0 60rpx 0; */
flex-direction: column;
height: 100%;
overflow: hidden;
}
.footer{
position: fixed;
left: 0;
right: 0;
bottom: 0;
}
</style>
......@@ -10,7 +10,7 @@
<view class="addComment-title flex">
<van-icon name="friends-o" />
<text>
选择学员 (0)
选择学员 ({{postMsg.ChooseStuList?postMsg.ChooseStuList.length:0}})
</text>
</view>
<view class="addComment-img-box flex">
......@@ -24,30 +24,32 @@
</view>
<text class="addComment-text">添加学员</text>
</view>
<view class="addComment-img-list flex">
<view class="addComment-imgbox flex">
<view class="addComment-img">
<view>
<van-image width="119rpx" height="119rpx" fit="cover"
src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1653894197000_691.png" />
<template v-for="(item,index) in postMsg.ChooseStuList">
<view class="addComment-img-list flex">
<view class="addComment-imgbox flex">
<view class="addComment-img">
<view>
<van-image width="119rpx" height="119rpx" fit="cover" src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1653894197000_691.png" />
</view>
</view>
</view>
<text class="addComment-text">{{item.StuName}}</text>
</view>
<text class="addComment-text">学员名称</text>
</view>
</template>
</view>
<view class="addComment-textarea-box">
<view class="content-textarea-box">
<textarea placeholder="请填写评论内容"></textarea>
<textarea placeholder="请填写评论内容" v-model="postMsg.Info"></textarea>
</view>
<view class="Sure-button flex">
<view v-if="clickShow" @click="clickSure" >确定</view>
<view v-else class="active" >确定</view>
<view v-if="clickShow" @click="clickSure">确定</view>
<view v-else class="active">确定</view>
</view>
</view>
<template v-show="show">
<studentsPopu ref="getstudentsPopup"></studentsPopu>
<studentsPopu ref="getstudentsPopup" :courseStuList="StuList" @getdata="getChooseStu"></studentsPopu>
</template>
</view>
<view class="addComment-bj"></view>
......@@ -107,58 +109,67 @@
checked: '1',
Msg: {
CourseId: '',
CommentTimes: 0, //评论次数
},
courseTimeList: [], //课程自动生成评论次数
courseRule: {}, //课程评价规则
clickShow:true,
show:false
postMsg: {
CourseId: '',
ChooseStuList: [],
Times: 0,
Info: "", //评论内容
},
StuList: [], //课程学员列表
clickShow: true,
show: false
});
let methods = {
back() {
uni.navigateBack({
delta: 1
})
},
// 点击弹出学员列表
selectStudents(){
selectStudents() {
data.show = true
setTimeout(()=>{
setTimeout(() => {
refs.getstudentsPopup.$vm.showFun()
},500)
}, 500)
},
// 点击确定
clickSure(){
data.clickShow = false
console.log(data.clickShow)
},
radioChange(e) {
console.log("打印国家名称", e.target.value)
},
//获取课程评论次数列表
getCourseCommentTimes() {
proxy.$request("/Teacher/GetCourseCommentTimes", data.Msg).then(res => {
if (res) {
data.courseTimeList = res.Data;
clickSure() {
data.clickShow = false;
data.postMsg.Times = data.Msg.CommentTimes;
data.postMsg.CourseId = data.Msg.CourseId;
proxy.$request("/Teacher/BatchSetStuComment", data.postMsg).then(res => {
if (res.Code == 1) {
uni.showToast({
title: '操作成功!',
icon: 'none',
duration: 500
})
}
})
},
//获取课程评价规则信息
getCourseRule() {
proxy.$request("/Teacher/GetCourseComment", data.Msg).then(res => {
//课程学员列表
getChooseStu(array) {
if (array) {
data.postMsg.ChooseStuList = array
}
},
//根据课程编号获取课程学员
getCourseStu() {
let stuMsg = {
courseId: data.Msg.CourseId
};
proxy.$request("/Teacher/GetCourseStu", stuMsg).then(res => {
console.log("res", res);
if (res) {
data.courseRule = res.Data;
data.StuList = res.Data;
}
})
},
goRules() {
uni.navigateTo({
url: '/pages/setComments/commentRulesList?CourseId=' + data.Msg.CourseId
})
}
};
return {
...toRefs(data),
...methods
......@@ -166,18 +177,19 @@
},
onLoad(option) {
this.Msg.CourseId = option.CourseId;
this.getCourseRule();
this.getCourseCommentTimes();
this.Msg.CommentTimes = option.CommentTimes;
this.getCourseStu();
},
};
</script>
<style scoped>
.Sure-button view.active{
.Sure-button view.active {
background-color: #F6F6F6;
color: #C91727;
}
.Sure-button view{
.Sure-button view {
width: 359rpx;
line-height: 88rpx;
background-color: #C91727;
......@@ -188,27 +200,32 @@
text-align: center;
letter-spacing: 1rpx;
}
.Sure-button{
.Sure-button {
justify-content: center;
margin-top: 67rpx;
}
.content-textarea-box textarea{
.content-textarea-box textarea {
width: 100%;
}
.content-textarea-box{
.content-textarea-box {
background: #F6F6F6;
border-radius: 30rpx;
padding: 33rpx 37rpx;
min-height: 537rpx;
}
.addComment-textarea-box{
.addComment-textarea-box {
border-radius: 50rpx 50rpx 0 0;
/* background: #FFFFFF; */
background: url('https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1654049334000_485.png') no-repeat top 0 center #FFFFFF;
background-size: 141rpx 41rpx;
padding: 50rpx 50rpx 37rpx 50rpx;
}
.addComment-text{
.addComment-text {
text-align: center;
font-weight: 500;
font-size: 26rpx;
......@@ -216,14 +233,16 @@
letter-spacing: 1rpx;
margin-top: 15rpx;
}
.addComment-img-list.activeOne .addComment-img view{
.addComment-img-list.activeOne .addComment-img view {
text-align: center;
line-height: 123rpx;
color: #DCDCDC;
font-weight: bold;
font-size: 50rpx;
}
.addComment-img view{
.addComment-img view {
width: 119rpx;
height: 119rpx;
border: 1rpx solid #DBDBDB;
......@@ -231,58 +250,69 @@
margin: 5rpx;
overflow: hidden;
}
.addComment-img{
.addComment-img {
width: 130rpx;
height: 130rpx;
background: #FFFFFF;
border-radius: 50%;
}
.addComment-imgbox{
.addComment-imgbox {
justify-content: center;
}
.addComment-img-list{
.addComment-img-list {
flex: 0 0 25%;
flex-direction: column;
}
.addComment-img-box{
.addComment-img-box {
padding: 0 20rpx;
flex-wrap: wrap;
margin-bottom: 50rpx;
}
.addComment-title van-icon{
.addComment-title van-icon {
font-size: 38rpx;
margin-right: 20rpx;
}
.addComment-title{
.addComment-title {
font-size: 30rpx;
font-weight: bold;
color: #282828;
letter-spacing: 1rpx;
padding: 54rpx 50rpx 42rpx 50rpx;
}
.addComment-header-box{
padding: 20rpx 42rpx;
.addComment-header-box {
padding: 20rpx 42rpx;
flex-direction: row;
align-items: center;
}
.addComment-header-title{
font-size: 32rpx;
font-weight: 500;
color: #282828;
flex:1;
text-align: center;
padding-right: 40rpx;
.addComment-header-title {
font-size: 32rpx;
font-weight: 500;
color: #282828;
flex: 1;
text-align: center;
padding-right: 40rpx;
}
.addComment-header-left{
font-size: 40rpx;
position: relative;
z-index: 3;
.addComment-header-left {
font-size: 40rpx;
position: relative;
z-index: 3;
}
.addComment-content{
.addComment-content {
position: relative;
z-index: 1;
}
.addComment-bj{
.addComment-bj {
position: fixed;
right: 0;
left: 0;
......@@ -291,6 +321,7 @@
z-index: 0;
background: #F6F6F6;
}
.navbarSticky {
display: sticky;
top: 0;
......
......@@ -25,7 +25,7 @@
</view>
</view>
</view>
<commentDetails :CourseCommentTimesList="courseTimeList" @refreshData="getStuCommentList"></commentDetails>
<commentDetails :qMsg="Msg" :CourseCommentTimesList="courseTimeList" @refreshData="getStuCommentList"></commentDetails>
</view>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment