Commit bc1a4ba5 authored by 黄奎's avatar 黄奎

页面修改

parent acbf7c79
<template>
<view class="rulesPopup-box">
<van-popup :show="show" :round="true" @close="closepopup">
<view class="rulesPopup-box">
<van-icon class="rulesPopup-closure" name="cross" @click="closepopup"/>
<view class="rulesPopup-title">自定义评论规则</view>
<view class="rulesPopup-content">
<input v-model="uploadParm.ExamName" class="rulesPopup-name" placeholder="请输入本组自定义规则名称"/>
<view class="rulesPopup-RuleSettings">
<text class="RuleSettings-title">规则设置</text>
<view class="RuleSettings-slider">
<van-slider v-model="value" bar-height="10rpx" active-color="#ee0a24">
<template #button>
<div class="custom-button">{{ value }}</div>
</template>
</van-slider>
<!-- <van-slider v-model="valueNum" range
bar-height="4px" active-color="#ee0a24"
@change="onChange" /> -->
</view>
</view>
</view>
<view class="RuleSettings-content">
<textarea placeholder="请填写评论内容"></textarea>
</view>
<view class="rulesPopup-save flex">
<view @click="save">保存</view>
</view>
</view>
</van-popup>
<van-popup :show="show" :round="true" @close="closepopup">
<view class="rulesPopup-box">
<van-icon class="rulesPopup-closure" name="cross" @click="closepopup" />
<view class="rulesPopup-title">自定义评论规则</view>
<view class="rulesPopup-content">
<input v-model="ruleObj.Title" class="rulesPopup-name" placeholder="请输入本组自定义规则名称" />
<view class="rulesPopup-RuleSettings">
<text class="RuleSettings-title">规则设置</text>
<view class="RuleSettings-slider">
<van-slider v-model="valueNum" :range="isRange" @change="onChange" />
</view>
</view>
</view>
<view class="RuleSettings-content">
<textarea placeholder="请填写评论内容" v-model="ruleObj.Info"></textarea>
</view>
<view class="rulesPopup-save flex">
<view @click="save">保存</view>
</view>
</view>
</van-popup>
</view>
</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: {
},
emits: ['change'],
components: {},
setup(props,ctx) {
// 双滑块模式时,值必须是数组
const value = ref([10, 50]);
let {
setup(props, ctx) {
let {
proxy
} = getCurrentInstance();
let data = reactive({
valueNum: ref([0, 0]),
show: false,
loading: false,
valueNum: [10, 50],
show: false,
loading: false,
isRange: true,
ruleObj: {
DetailId: 0, //详情编号
Title: "", //标题
StartNum: 0, //开始值
EndNum: 0, //结束值
Info: "", //评价
}
});
let methods = {
showFun(){
data.show = true
},
closepopup(){
data.show = false
},
onChange(value){
console.log(value)
// data.valueNum = value
// console.log(data.valueNum)
},
save(){
data.show = false
}
};
let methods = {
showFun(item) {
if (item) {
data.ruleObj.DetailId = item.DetailId;
data.ruleObj.StartNum = item.StartNum;
data.ruleObj.EndNum = item.EndNum;
data.ruleObj.Info = item.Info;
} else {
data.ruleObj.DetailId = 0;
data.ruleObj.StartNum = 0;
data.ruleObj.EndNum = 0;
data.ruleObj.Info = "";
}
data.show = true
},
closepopup() {
data.show = false
},
onChange(value) {
console.log(value)
},
save() {
data.ruleObj.StartNum = data.valueNum[0];
data.ruleObj.EndNum = data.valueNum[1];
ctx.emit("change", data.ruleObj);
data.show = false
}
};
let that = methods;
return {
...toRefs(data),
value,
...methods
...methods
};
},
onLoad(){
},
onShow() {
onLoad() {
},
onShow() {
}
};
</script>
<style scoped>
.custom-button {
width: 26rpx;
color: #fff;
font-size: 20rpx;
line-height: 36rpx;
text-align: center;
background-color: #ee0a24;
border-radius: 100rpx;
}
.RuleSettings-slider{
padding: 52rpx 0 66rpx 0;
}
.rulesPopup-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;
}
.rulesPopup-save{
justify-content: flex-end;
margin-top: 40rpx;
}
.RuleSettings-content textarea{
width: 100%;
}
.RuleSettings-content{
background: #F7F7F7;
border-radius: 30rpx;
min-height: 152rpx;
padding: 37rpx 43rpx;
}
.RuleSettings-title{
font-size: 30rpx;
font-weight: bold;
color: #282828;
}
.rulesPopup-box .noData{
.custom-button {
width: 26rpx;
color: #fff;
font-size: 20rpx;
line-height: 36rpx;
text-align: center;
flex:1;
background-color: #ee0a24;
border-radius: 100rpx;
}
.RuleSettings-slider {
padding: 52rpx 0 66rpx 0;
}
.rulesPopup-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;
}
.rulesPopup-save {
justify-content: flex-end;
margin-top: 40rpx;
}
.RuleSettings-content textarea {
width: 100%;
}
.rulesPopup-box .noData image{
width:200rpx;
.RuleSettings-content {
background: #F7F7F7;
border-radius: 30rpx;
min-height: 152rpx;
padding: 37rpx 43rpx;
}
.RuleSettings-title {
font-size: 30rpx;
font-weight: bold;
color: #282828;
}
.rulesPopup-box .noData {
text-align: center;
flex: 1;
width: 100%;
}
.rulesPopup-box .noData image {
width: 200rpx;
margin-bottom: 40rpx;
}
.rulesPopup-box .noData view{
.rulesPopup-box .noData view {
font-size: 24rpx;
color: #cecece;
text-align: center;
}
.rulesPopup-RuleSettings{
background: #FCEEEF;
border-radius: 30rpx;
padding: 35rpx 41rpx;
margin-top: 51rpx;
margin-bottom: 40rpx;
}
.rulesPopup-name{
background-color: #F7F7F7;
text-align: center;
border: 1px solid #F7F7F7;
height: 88rpx;
line-height: 88rpx;
padding: 0 10rpx;
border-radius: 44rpx;
font-size: 30rpx;
letter-spacing: 1rpx;
}
.rulesPopup-title{
width: 100%;
text-align: center;
font-size: 30rpx;
font-weight: 500;
margin-bottom: 73rpx;
letter-spacing: 1rpx;
}
.rulesPopup-closure{
position: absolute;
right: 31rpx;
top: 31rpx;
color: #282828;
font-size: 38rpx;
}
.rulesPopup-box{
position: relative;
width: 548rpx;
padding: 48rpx 55rpx 60rpx 55rpx;
}
.rulesPopup-box{
}
.rulesPopup-RuleSettings {
background: #FCEEEF;
border-radius: 30rpx;
padding: 35rpx 41rpx;
margin-top: 51rpx;
margin-bottom: 40rpx;
}
.rulesPopup-name {
background-color: #F7F7F7;
text-align: center;
border: 1px solid #F7F7F7;
height: 88rpx;
line-height: 88rpx;
padding: 0 10rpx;
border-radius: 44rpx;
font-size: 30rpx;
letter-spacing: 1rpx;
}
.rulesPopup-title {
width: 100%;
text-align: center;
font-size: 30rpx;
font-weight: 500;
margin-bottom: 73rpx;
letter-spacing: 1rpx;
}
.rulesPopup-closure {
position: absolute;
right: 31rpx;
top: 31rpx;
color: #282828;
font-size: 38rpx;
}
.rulesPopup-box {
position: relative;
width: 548rpx;
padding: 48rpx 55rpx 60rpx 55rpx;
}
.rulesPopup-box {}
</style>
......@@ -6,44 +6,19 @@
<text class="commentRulesList-header-title">评论规则</text>
</view>
</navbar>
<!-- <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>默认评论规则</text>
</view>
<view class="commentRulesList-list">
<view class="commentRulesList-cross" @click="deleteRules">
<van-icon name="cross" />
</view>
<view class="commentRulesList-img flex">
<view>百分比: 0%-40%</view>
<van-image @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">
这位学员很优秀,平时课上的问题都
能积极回答,正确率非常高
。这次考试得分也很高,希望再接再厉
</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> -->
<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">
<view class="commentRulesList-cross" v-if="courseRule.Id>0" @click="deleteRules(item,index)">
<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" />
<van-image v-if="courseRule.Id>0" @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="commentRulesList-comment">
{{item.Info}}
......@@ -60,17 +35,17 @@
<text @click="addRules">添加自定义规则</text>
<view class="Wire"></view>
</view>
<view class="save flex"><text @click="saveRules">保存</text></view>
<view class="save flex"><text v-if="!isDefaultRule" @click="saveRules">保存</text></view>
</view>
</view>
<rulesPopup ref="getrulesPopup"></rulesPopup>
<rulesPopup ref="getrulesPopup" @change="changeData"></rulesPopup>
</view>
</template>
<script>
import rulesPopup from '@/components/setComments/rulesPopup'
import setComments from '@/components/setComments/setComments'
import {
ref,
ref,
reactive,
toRefs,
onMounted,
......@@ -84,11 +59,12 @@
},
components: {
navbar,
setComments,
rulesPopup
},
setup() {
let { refs } = getCurrentInstance();
let {
refs
} = getCurrentInstance();
let {
proxy
} = getCurrentInstance();
......@@ -96,58 +72,70 @@
Msg: {
CourseId: '',
},
showPhone: false,
showLogin: true, //多次点击
HomeWorkId:'',
jobDetails: {},
dataList:[],
pageState:'more',
courseRule: {}, //课程规则
//课程规则
courseRule: {
Id: 0,
Title: "",
CourseId: 0,
CommentDetails: [], //规则详情
}, //课程规则
isDefaultRule: true, //是否是默认规则(
detailItem: {}, //当前编辑项
});
let methods = {
back() {
uni.navigateBack({
delta: 1
})
},
saveRules(){//保存规则
},
addRules(){//添加规则
data.show = true
refs.getrulesPopup.$vm.showFun()
},
editRules(){//编辑规则
data.show = true
refs.getrulesPopup.$vm.showFun()
},
deleteRules (){//删除规则
uni.showModal({
title: '提示',
content: '将删除该规则,是否继续',
success: function (res) {
if (res.confirm) {
console.log('---')
} else if (res.cancel) {
uni.showToast({
title:'已取消',
icon:'none',
duration: 500
})
}
}
});
},
editRules() { //编辑规则
},
saveRules() { //保存规则
proxy.$request("/Teacher/SetCourseComment", data.courseRule).then(res => {
if (res) {
uni.showToast({
title: '操作成功!',
icon: 'none',
duration: 500
})
this.getCourseRule()
}
})
},
//添加规则
addRules() {
data.show = true
refs.getrulesPopup.$vm.showFun()
},
//编辑规则
editRules(item) {
data.show = true
refs.getrulesPopup.$vm.showFun(item)
},
deleteRules() { //删除规则
//删除规则
deleteRules(item, index) {
let self=this;
uni.showModal({
title: '提示',
content: '将删除该规则,是否继续',
success: function(res) {
if (res.confirm) {
console.log('---')
if (item.DetailId > 0) {
let delMsg = {
DetailIds: item.DetailId
};
proxy.$request("/Teacher/RemoveCourseCommentDetail", delMsg).then(res => {
if (res.Code == 1) {
uni.showToast({
title: '删除成功!',
icon: 'none',
duration: 500
});
self.getCourseRule();
}
})
} else {
data.courseRule.CommentDetails.splice(index, 1);
}
} else if (res.cancel) {
uni.showToast({
title: '已取消',
......@@ -162,9 +150,49 @@
getCourseRule() {
proxy.$request("/Teacher/GetCourseComment", data.Msg).then(res => {
if (res) {
data.courseRule = res.Data;
var tempData = res.Data;
if (tempData) {
data.courseRule.Id = tempData.Id;
data.courseRule.Title = tempData.Title;
data.courseRule.CourseId = tempData.CourseId;
data.courseRule.CommentDetails = tempData.CommentDetails;
}
if (res.Data.Id == 0) {
data.isDefaultRule = true;
} else {
data.isDefaultRule = false;
}
}
})
},
//获取子组件数据
changeData(item) {
console.log("item", item);
if (item) {
if (item.Title && item.Title != '') {
data.courseRule.Title = item.Title
}
if (data.isDefaultRule) {
data.courseRule.CommentDetails = [];
}
let obj = {
DetailId: item.DetailId,
StartNum: item.StartNum,
EndNum: item.EndNum,
Info: item.Info
}
if (item.DetailId > 0 && data.courseRule.CommentDetails.length > 0) {
let chooseIndex = data.courseRule.CommentDetails.findIndex(qitem => qitem.DetailId == item.DetailId);
data.courseRule.CommentDetails[chooseIndex].StartNum = obj.StartNum;
data.courseRule.CommentDetails[chooseIndex].EndNum = obj.EndNum;
data.courseRule.CommentDetails[chooseIndex].Info = obj.Info;
} else {
data.courseRule.CommentDetails.push(obj)
}
}
if (data.isDefaultRule) {
data.isDefaultRule = false;
}
}
}
return {
......@@ -195,128 +223,151 @@
color: #cecece;
text-align: center;
}
.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;
z-index: 1;
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;
}
.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;
z-index: 1;
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;
}
.save {
margin-left: 24rpx;
}
......
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