Commit 9738b0bf authored by youjie's avatar youjie

111

parents 31c84542 0204f873
...@@ -55,7 +55,8 @@ ...@@ -55,7 +55,8 @@
toRefs, toRefs,
onMounted, onMounted,
getCurrentInstance, getCurrentInstance,
inject inject,
watch
} from "vue"; } from "vue";
export default { export default {
...@@ -64,7 +65,6 @@ ...@@ -64,7 +65,6 @@
}, },
components: {}, components: {},
setup(props) { setup(props) {
let data = reactive({ let data = reactive({
dataList: props.dataList dataList: props.dataList
}); });
......
<template> <template>
<view class="setComments-box"> <view class="setComments-box">
<view class="setComments-add"><van-icon name="plus" /><text>创建评价</text> </view> <view class="setComments-add">
<van-icon name="plus" /><text>创建评价</text> </view>
<view class="index-student-information"> <view class="index-student-information">
<view class="setComments-content-box"> <view class="setComments-content-box">
<template v-for="(item,index) in dataList">
<view class="setComments-content"> <view class="setComments-content">
<view class="center-line"></view> <view class="center-line"></view>
<view class="setComments-title flex"> <view class="setComments-title flex">
<text class="setComments-title-left">第一次评价</text> <text class="setComments-title-left">{{item.Times}}次评价</text>
<view class="setComments-title-right"> <view class="setComments-title-right">
<view class="setComments-options flex"> <view class="setComments-options flex">
<view class="setComments-options-title flex" @click="clickOptionsShow"> <view class="setComments-options-title flex" @click="clickOptionsShow(item)">
<view class="point"></view> <view class="point"></view>
<text>{{optionsObj.text?optionsObj.text:'选择'}}</text> <text>{{item.ShowTypeStr}}</text>
<van-icon :name="optionsShow?'arrow-down':'arrow'" /> <van-icon :name="item.optionsShow?'arrow-down':'arrow'" />
</view> </view>
<view v-if="optionsShow" class="setComments-options-text flex"> <view v-if="item.optionsShow" class="setComments-options-text flex">
<text <text v-for="(subItem,index) in optionsList" :key="index" @click="clickoptions(item,subItem)">
v-for="(item,index) in optionsList" {{subItem.text}}
:key="index"
@click="clickoptions(item)">
{{item.text}}
</text> </text>
</view> </view>
</view> </view>
</view> </view>
</view> </view>
<view class="setComments-source flex"> <view class="setComments-source flex">
<text>来源: 5555</text> <text>来源:{{item.CreateTypeStr}}</text>
<view>时间:2022-05-30</view> <view>时间:{{item.CreateTime}}</view>
</view>
<view class="setComments-Evaluation">
<view>
<text>学员评价</text>
<text>评价规则</text>
</view>
</view> </view>
</view> </view>
</template>
</view> </view>
</view> </view>
</view> </view>
...@@ -46,70 +41,80 @@ ...@@ -46,70 +41,80 @@
toRefs, toRefs,
onMounted, onMounted,
getCurrentInstance, getCurrentInstance,
inject inject,
watch
} from "vue"; } from "vue";
import navbar from '../../components/navbar.vue' import navbar from '../../components/navbar.vue'
export default { export default {
props: { props: ["CourseCommentTimesList"],
emits: ['refreshData'],
},
components: { components: {
navbar, navbar,
}, },
setup() { setup(props, context) {
let { let {
proxy proxy
} = getCurrentInstance(); } = getCurrentInstance();
let data = reactive({ let data = reactive({
optionsObj:{ optionsList: [{
text:'', text: '可见',
value:'' value: 1
}, },
optionsShow:false, {
optionsList:[ text: '部分可见',
{ text: '部分可见', value: 0 }, value: 2
{ text: '可见', value: 1 }, },
{ text: '不可见', value: 2 }, {
], text: '不可见',
radioList:[ value: 3
{name:'使用默认配置',id:1,checked:true},
{name:'自定义评价',id:2}
],
checked:'1',
obj:{},
Msg: {
HomeWorkId: '',
}, },
showPhone: false, ],
showLogin: true, //多次点击 dataList: [],
HomeWorkId:'',
jobDetails: {},
dataList:[],
pageState:'more'
}); });
let methods = { let methods = {
back(){ back() {
uni.navigateBack({ uni.navigateBack({
delta: 1 delta: 1
}) })
}, },
clickOptionsShow(){ clickOptionsShow(item) {
data.optionsShow=!data.optionsShow item.optionsShow = !item.optionsShow;
}, },
clickoptions(item){ clickoptions(item,subItem) {
data.optionsObj = item
data.optionsShow = false let showTypeMsg = {
CourseId: item.CourseId,
Times: item.Times,
ShowType: subItem.value
};
proxy.$request("/Teacher/SetStuCommentShowTypeByTimes", showTypeMsg).then(res => {
if (res) {
}
})
item.optionsShow = false;
//调用父组件方法
context.emit('refreshData');
} }
};
//监听属性数组
watch(() => props["CourseCommentTimesList"], (newValue, oldValue) => {
if (newValue != oldValue && newValue && newValue.length > 0) {
data.dataList = newValue;
} }
}, {
deep: true,
});
return { return {
...toRefs(data), ...toRefs(data),
...methods ...methods
}; };
}, },
onLoad(option) { onLoad(option) {
this.Msg.HomeWorkId = option.HomeWorkId
},
},
}; };
</script> </script>
<style scoped> <style scoped>
......
...@@ -43,7 +43,7 @@ ...@@ -43,7 +43,7 @@
> >
<operation v-if="tabNme=='作业情况'" :dataList="homeWorks"></operation> <operation v-if="tabNme=='作业情况'" :dataList="homeWorks"></operation>
<studentList @selected="selectStuHandler" v-if="tabNme=='学生列表'" :dataList="students"></studentList> <studentList @selected="selectStuHandler" v-if="tabNme=='学生列表'" :dataList="students"></studentList>
<examList v-if="tabNme=='考试信息'" :dataList="exams" :CourseId="currentCourseId"></examList> <examList v-if="tabNme=='考试信息'" :dataList="exams"></examList>
</scroll-view> </scroll-view>
<Loadmore :state="pageState" /> <Loadmore :state="pageState" />
</view> </view>
...@@ -113,7 +113,7 @@ ...@@ -113,7 +113,7 @@
homeWorks:[], homeWorks:[],
exams:[], exams:[],
pageState: "more", pageState: "more",
currentCourseId:0, currentCourseId:189666293,
userData:{}, userData:{},
loading:false loading:false
}); });
...@@ -138,9 +138,9 @@ ...@@ -138,9 +138,9 @@
}, },
changeCourseHandler(id){ changeCourseHandler(id){
console.log(id,'........................') console.log(id,'........................')
data.Msg.CourseId=id data.Msg.courseId=189666293
data.OperationMsg.courseId=id data.OperationMsg.courseId=189666293
data.currentCourseId=id data.currentCourseId=189666293
methods.getCourseStuList() methods.getCourseStuList()
methods.getExamPageList() methods.getExamPageList()
methods.getCourseHomeWorkList() methods.getCourseHomeWorkList()
......
...@@ -2,10 +2,11 @@ ...@@ -2,10 +2,11 @@
<view class="commentRulesList-box"> <view class="commentRulesList-box">
<navbar class="navbarSticky" bg="#FFFFFF"> <navbar class="navbarSticky" bg="#FFFFFF">
<view class="commentRulesList-header-box flex"> <view class="commentRulesList-header-box flex">
<van-icon class="commentRulesList-header-left" name="arrow-left" @click="back"/> <van-icon class="commentRulesList-header-left" name="arrow-left" @click="back" />
<text class="commentRulesList-header-title">评论规则</text> <text class="commentRulesList-header-title">评论规则</text>
</view> </view>
</navbar> </navbar>
<<<<<<< .merge_file_a12332
<view class="commentRulesList-content"> <view class="commentRulesList-content">
<view class="commentRulesList-title flex"> <view class="commentRulesList-title flex">
<van-image class="img" width="35rpx" height="40rpx" fit="cover" <van-image class="img" width="35rpx" height="40rpx" fit="cover"
...@@ -42,6 +43,40 @@ ...@@ -42,6 +43,40 @@
</view> </view>
</view> </view>
<rulesPopup ref="getrulesPopup"></rulesPopup> <rulesPopup ref="getrulesPopup"></rulesPopup>
=======
<view class="commentRulesList-content">
<view class="commentRulesList-title flex">
<van-image class="img" width="35rpx" height="40rpx" fit="cover" src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1653980136000_413.png" />
<text>{{courseRule.Title}}</text>
</view>
<view class="commentRulesList-list" v-if="courseRule" v-for="(item,index) in courseRule.CommentDetails">
<view class="commentRulesList-cross" v-if="courseRule.Id>0" @click="deleteRules">
<van-icon name="cross" />
</view>
<view class="commentRulesList-img flex">
<view>百分比: {{item.StartNum}}%-{{item.EndNum}}%</view>
<van-image v-if="courseRule.Id>0" @click="editRules" 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="commentRulesList-comment">
{{item.Info}}
</view>
</view>
<view class="noData" v-else>
<image src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1653902791000_806.png" mode="widthFix"></image>
<view>暂无评论规则数据</view>
</view>
</view>
<view class="commentRulesList-footer-box">
<view class="commentRulesList-footer flex">
<view class="add flex">
<text>添加自定义规则</text>
<view class="Wire"></view>
</view>
<view class="save flex"><text>保存</text></view>
</view>
</view>
<rulesPopup></rulesPopup>
>>>>>>> .merge_file_a02420
</view> </view>
</template> </template>
<script> <script>
...@@ -66,38 +101,35 @@ ...@@ -66,38 +101,35 @@
rulesPopup rulesPopup
}, },
setup() { setup() {
<<<<<<< .merge_file_a12332
let { refs } = getCurrentInstance(); let { refs } = getCurrentInstance();
let { let {
=======
let {
>>>>>>> .merge_file_a02420
proxy proxy
} = getCurrentInstance(); } = getCurrentInstance();
let data = reactive({ let data = reactive({
value:1,
optionsList:[
{ text: '部分可见', value: 0 },
{ text: '可见不可见', value: 1 },
{ text: '活动商品', value: 2 },
],
radioList:[
{name:'使用默认配置',id:1,checked:true},
{name:'自定义评价',id:2}
],
checked:'1',
obj:{},
Msg: { Msg: {
HomeWorkId: '', CourseId: '',
}, },
<<<<<<< .merge_file_a12332
showPhone: false, showPhone: false,
showLogin: true, //多次点击 showLogin: true, //多次点击
HomeWorkId:'', HomeWorkId:'',
jobDetails: {}, jobDetails: {},
dataList:[], dataList:[],
pageState:'more', pageState:'more',
=======
courseRule: {}, //课程规则
>>>>>>> .merge_file_a02420
}); });
let methods = { let methods = {
back(){ back() {
uni.navigateBack({ uni.navigateBack({
delta: 1 delta: 1
}) })
<<<<<<< .merge_file_a12332
}, },
saveRules(){//保存规则 saveRules(){//保存规则
...@@ -131,32 +163,67 @@ ...@@ -131,32 +163,67 @@
onMounted (() => { onMounted (() => {
}) })
=======
},
editRules() { //编辑规则
},
deleteRules() { //删除规则
uni.showModal({
title: '提示',
content: '将删除该规则,是否继续',
success: function(res) {
if (res.confirm) {
console.log('---')
} else if (res.cancel) {
uni.showToast({
title: '已取消',
icon: 'none',
duration: 500
})
}
}
});
},
//获取课程规则信息
getCourseRule() {
proxy.$request("/Teacher/GetCourseComment", data.Msg).then(res => {
if (res) {
data.courseRule = res.Data;
}
})
}
}
>>>>>>> .merge_file_a02420
return { return {
...toRefs(data), ...toRefs(data),
...methods ...methods
}; };
}, },
onLoad(option) { onLoad(option) {
this.Msg.HomeWorkId = option.HomeWorkId this.Msg.CourseId = option.CourseId;
this.getCourseRule();
}, },
}; };
</script> </script>
<style scoped> <style scoped>
.noData{ .noData {
text-align: center; text-align: center;
flex:1; flex: 1;
width: 100%; width: 100%;
} }
.noData image{
width:200rpx; .noData image {
width: 200rpx;
margin-bottom: 40rpx; margin-bottom: 40rpx;
} }
.noData view{
.noData view {
font-size: 24rpx; font-size: 24rpx;
color: #cecece; color: #cecece;
text-align: center; text-align: center;
} }
<<<<<<< .merge_file_a12332
.save{ .save{
margin-left: 24rpx; margin-left: 24rpx;
} }
...@@ -280,6 +347,153 @@ ...@@ -280,6 +347,153 @@
padding-right: 40rpx; padding-right: 40rpx;
} }
.navbarSticky { .navbarSticky {
=======
.save {
margin-left: 24rpx;
}
.Wire {
width: 2rpx;
height: 32rpx;
background: #DCDCDC;
margin-left: 24rpx;
flex-shrink: 0;
margin-top: 25rpx;
}
.save text {
background: #D13A48;
color: #FFFFFF;
}
.add text {
background: #FFFFFF;
color: #D13A48;
}
.add text,
.save text {
line-height: 88rpx;
flex-grow: 2;
border: 1rpx solid #D13A48;
border-radius: 44rpx;
text-align: center;
font-weight: bold;
font-size: 30rpx;
letter-spacing: 1rpx;
}
.add,
.save {
flex: 0 0 50%;
flex-shrink: 0;
}
.commentRulesList-footer {
padding: 29rpx 70rpx;
align-items: center;
}
.commentRulesList-footer-box {
position: fixed;
left: 0;
right: 0;
bottom: 0;
background: #FFFFFF;
box-shadow: 0rpx 0rpx 21rpx 0rpx rgba(165, 165, 165, 0.34);
}
.commentRulesList-comment {
font-size: 30rpx;
font-weight: 400;
color: #282828;
line-height: 58rpx;
letter-spacing: 1rpx;
}
.commentRulesList-img .img {
margin-top: 5rpx;
flex-shrink: 0;
}
.commentRulesList-img view {
flex-grow: 1;
margin-right: 15rpx;
}
.commentRulesList-img {
justify-content: space-between;
align-items: center;
font-size: 30rpx;
font-weight: bold;
color: #D9868D;
margin-bottom: 34rpx;
}
.commentRulesList-cross {
position: absolute;
right: -12rpx;
top: -12rpx;
width: 44rpx;
height: 44rpx;
background: #FFFFFF;
box-shadow: 0rpx 0rpx 21rpx 0rpx rgba(165, 165, 165, 0.34);
border-radius: 10rpx;
font-size: 26rpx;
color: #D9868D;
text-align: center;
line-height: 44rpx;
}
.commentRulesList-list {
background: #FCEEEF;
border-radius: 30px;
position: relative;
padding: 37rpx 38rpx 36rpx 45rpx;
margin-bottom: 40rpx;
min-height: 290rpx;
}
.commentRulesList-title .img {
flex-shrink: 0;
display: inline-block;
margin-top: 5rpx;
}
.commentRulesList-title text {
font-size: 40rpx;
font-weight: bold;
color: #282828;
margin-left: 29rpx;
letter-spacing: 1rpx;
}
.commentRulesList-title {
align-items: center;
margin-bottom: 35rpx;
}
.commentRulesList-content {
padding: 0 50rpx;
margin-bottom: 240rpx;
}
.commentRulesList-box {
background: #FFFFFF;
}
.commentRulesList-header-title {
font-size: 32rpx;
font-weight: 500;
color: #282828;
flex: 1;
text-align: center;
padding-right: 40rpx;
}
.navbarSticky {
>>>>>>> .merge_file_a02420
display: sticky; display: sticky;
top: 0; top: 0;
z-index: 9; z-index: 9;
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<view class="setComments-index-box"> <view class="setComments-index-box">
<navbar class="navbarSticky" bg="#F6F6F6"> <navbar class="navbarSticky" bg="#F6F6F6">
<view class="setComments-index-header-box flex"> <view class="setComments-index-header-box flex">
<van-icon class="setComments-index-header-left" name="arrow-left" @click="back"/> <van-icon class="setComments-index-header-left" name="arrow-left" @click="back" />
<text class="setComments-index-header-title">设置评语</text> <text class="setComments-index-header-title">设置评语</text>
</view> </view>
</navbar> </navbar>
...@@ -10,26 +10,29 @@ ...@@ -10,26 +10,29 @@
<view class="setComments-index-setType flex"> <view class="setComments-index-setType flex">
<view class="setComments-setType-left flex"> <view class="setComments-setType-left flex">
<view> <view>
<van-image class="img" width="29rpx" height="29rpx" fit="cover" <van-image class="img" width="29rpx" height="29rpx" fit="cover" src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1653977710000_475.png" />
src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1653977710000_475.png" />
</view> </view>
<view class="setComments-setType-text flex"> <view class="setComments-setType-text flex">
<text>自定义评价</text> <text>
<view>从自动评价规则进入修改</view> <template v-if="courseRule&&courseRule.Id>0">自定义评价</template>
<template v-else>使用默认配置</template>
</text>
<view>
<template v-if="courseRule&&courseRule.Id>0">从自定义评价规则进入修改</template>
<template v-else>不喜欢默认配置可自行设置</template>
</view>
</view> </view>
</view> </view>
<view class="setComments-setType-right flex" @click="goRules"> <view class="setComments-setType-right flex" @click="goRules">
<view> <view>
<text>自动评价规则</text> <text>自定义评价</text>
<van-image class="img" width="14rpx" height="13rpx" fit="cover" <van-image class="img" width="14rpx" height="13rpx" fit="cover" src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1653977684000_601.png" />
src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1653977684000_601.png" />
</view> </view>
</view> </view>
</view> </view>
<setComments></setComments> <setComments :CourseCommentTimesList="courseTimeList" @refreshData="getCourseCommentTimes"></setComments>
</view> </view>
</view> </view>
</template> </template>
<script> <script>
...@@ -55,56 +58,89 @@ ...@@ -55,56 +58,89 @@
proxy proxy
} = getCurrentInstance(); } = getCurrentInstance();
let data = reactive({ let data = reactive({
value:1, value: 1,
optionsList:[ optionsList: [{
{ text: '部分可见', value: 0 }, text: '部分可见',
{ text: '可见不可见', value: 1 }, value: 0
{ text: '活动商品', value: 2 }, },
{
text: '可见不可见',
value: 1
},
{
text: '活动商品',
value: 2
},
], ],
radioList:[ radioList: [{
{name:'使用默认配置',id:1,checked:true}, name: '使用默认配置',
{name:'自定义评价',id:2} id: 1,
checked: true
},
{
name: '自定义评价',
id: 2
}
], ],
checked:'1', checked: '1',
obj:{},
Msg: { Msg: {
HomeWorkId: '', CourseId: '',
}, },
showPhone: false, courseTimeList: [], //课程自动生成评论次数
showLogin: true, //多次点击 courseRule: {}, //课程评价规则
HomeWorkId:'',
jobDetails: {},
dataList:[],
pageState:'more'
}); });
let methods = { let methods = {
back(){ back() {
uni.navigateBack({ uni.navigateBack({
delta: 1 delta: 1
}) })
}, },
goRules(){ radioChange(e) {
uni.navigateTo({ console.log("打印国家名称", e.target.value)
url:'/pages/setComments/commentRulesList' },
//获取课程评论次数列表
getCourseCommentTimes() {
proxy.$request("/Teacher/GetCourseCommentTimes", data.Msg).then(res => {
if (res) {
data.courseTimeList = res.Data;
}
}) })
},
//获取课程评价规则信息
getCourseRule() {
proxy.$request("/Teacher/GetCourseComment", data.Msg).then(res => {
if (res) {
data.courseRule = res.Data;
} }
})
},
goRules() {
uni.navigateTo({
url: '/pages/setComments/commentRulesList?CourseId=' + data.Msg.CourseId
})
} }
};
return { return {
...toRefs(data), ...toRefs(data),
...methods ...methods
}; };
}, },
onLoad(option) { onLoad(option) {
this.Msg.HomeWorkId = option.HomeWorkId this.Msg.CourseId = option.CourseId;
this.getCourseRule();
this.getCourseCommentTimes();
}, },
}; };
</script> </script>
<style scoped> <style scoped>
.setComments-setType-right view text{ .setComments-setType-right view text {
margin-right: 11rpx; margin-right: 11rpx;
} }
.setComments-setType-right view{
.setComments-setType-right view {
color: #D9868D; color: #D9868D;
background: #F5DEE0; background: #F5DEE0;
border-radius: 25rpx; border-radius: 25rpx;
...@@ -114,53 +150,63 @@ ...@@ -114,53 +150,63 @@
text-align: center; text-align: center;
letter-spacing: 1rpx; letter-spacing: 1rpx;
} }
.setComments-setType-right{
.setComments-setType-right {
flex-shrink: 0; flex-shrink: 0;
font-size: 24rpx; font-size: 24rpx;
font-weight: 500; font-weight: 500;
} }
.setComments-setType-text view{
.setComments-setType-text view {
font-size: 24rpx; font-size: 24rpx;
color: #AFAFAF; color: #AFAFAF;
font-weight: 400; font-weight: 400;
margin-top: 15rpx; margin-top: 15rpx;
} }
.setComments-setType-text text{
.setComments-setType-text text {
font-size: 30rpx; font-size: 30rpx;
font-weight: bold; font-weight: bold;
color: #282828; color: #282828;
} }
.setComments-setType-text{
.setComments-setType-text {
flex-direction: column; flex-direction: column;
margin-left: 26rpx; margin-left: 26rpx;
letter-spacing: 1rpx; letter-spacing: 1rpx;
} }
.setComments-setType-left view:first-child{
.setComments-setType-left view:first-child {
flex-shrink: 0; flex-shrink: 0;
} }
.setComments-setType-left{
.setComments-setType-left {
flex-grow: 1; flex-grow: 1;
margin-right: 32rpx; margin-right: 32rpx;
} }
.setComments-index-setType{
.setComments-index-setType {
background: #FCEEEF; background: #FCEEEF;
box-shadow: 0rpx 6rpx 52rpx 0rpx rgba(230, 65, 80, 0.19); box-shadow: 0px 6px 52px 0px rgba(230, 65, 80, 0.19);
border-radius: 50rpx; border-radius: 50px;
margin: 55rpx 50rpx 50rpx 50rpx; margin: 55rpx 50rpx 50rpx 50rpx;
padding: 33rpx 50rpx; padding: 33rpx 50rpx;
} }
.setComments-index-box{
.setComments-index-box {
background: #F6F6F6; background: #F6F6F6;
} }
.setComments-index-header-title{
.setComments-index-header-title {
font-size: 32rpx; font-size: 32rpx;
font-weight: 500; font-weight: 500;
color: #282828; color: #282828;
flex:1; flex: 1;
text-align: center; text-align: center;
padding-right: 40rpx; padding-right: 40rpx;
} }
.navbarSticky { .navbarSticky {
display: sticky; display: sticky;
top: 0; top: 0;
......
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