Commit 8843958a authored by 罗超's avatar 罗超

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

parents be2effe7 c739cb7a
...@@ -308,6 +308,6 @@ ...@@ -308,6 +308,6 @@
} }
.JobComponents-box { .JobComponents-box {
/* background: #FFFFFF; */
} }
</style> </style>
...@@ -157,6 +157,6 @@ ...@@ -157,6 +157,6 @@
} }
.CommentsComponents-box { .CommentsComponents-box {
background: #FFFFFF;
} }
</style> </style>
...@@ -228,7 +228,7 @@ ...@@ -228,7 +228,7 @@
.examComponents-center-box::after { /* div是你需要添加背景图片的盒子*/ .examComponents-center-box::after { /* div是你需要添加背景图片的盒子*/
content: ""; content: "";
background-image: url(https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1654062518000_33.png); /* background-image: url(https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1654062518000_33.png); */
background-position: right 20rpx top 43rpx; background-position: right 20rpx top 43rpx;
background-size: 74rpx auto; background-size: 74rpx auto;
background-repeat: no-repeat; background-repeat: no-repeat;
...@@ -265,7 +265,6 @@ ...@@ -265,7 +265,6 @@
} }
.examComponents-box { .examComponents-box {
background: #FFFFFF;
margin-top: 30rpx; margin-top: 30rpx;
} }
</style> </style>
...@@ -16,9 +16,9 @@ ...@@ -16,9 +16,9 @@
<td class="analysisTest-td" style="min-width: 56rpx;" :style="{'min-width':(item.KnowledgePoint.length*20+20)+'rpx'}" v-for="(item,index) in ScoreList" :key="index"> <td class="analysisTest-td" style="min-width: 56rpx;" :style="{'min-width':(item.KnowledgePoint.length*20+20)+'rpx'}" v-for="(item,index) in ScoreList" :key="index">
<view class="analysisTest-number">{{item.Sort}}</view> <view class="analysisTest-number">{{item.Sort}}</view>
<view class="analysisTest-difficulty"> <view class="analysisTest-difficulty">
<view v-if="item.Difficulty == '易'"><van-icon name="star" v-for="(s,i) in 1" :key="i"/></view> <template v-if="item.Difficulty == '易'"><van-icon name="star" v-for="(s,i) in 1" :key="i"/></template>
<view v-else-if="item.Difficulty == '中'"><van-icon name="star" v-for="(s,i) in 2" :key="i"/></view> <template v-else-if="item.Difficulty == '中'"><van-icon name="star" v-for="(s,i) in 2" :key="i"/></template>
<view v-else-if="item.Difficulty == '难'"><van-icon name="star" v-for="(s,i) in 3" :key="i"/></view> <template v-else-if="item.Difficulty == '难'"><van-icon name="star" v-for="(s,i) in 3" :key="i"/></template>
</view> </view>
<view class="analysisTest-KnowledgePoint">{{item.KnowledgePoint}}</view> <view class="analysisTest-KnowledgePoint">{{item.KnowledgePoint}}</view>
<view class="analysisTest-ScoreOne">{{item.QScore}}</view> <view class="analysisTest-ScoreOne">{{item.QScore}}</view>
......
...@@ -223,9 +223,10 @@ ...@@ -223,9 +223,10 @@
position: relative; position: relative;
} }
.examDetailsComponents-time text{ .examDetailsComponents-time text{
width: 50rpx;
font-size: 20rpx; font-size: 20rpx;
font-weight: bold; font-weight: bold;
white-space: nowrap; white-space: wrap;
margin-top: 18rpx; margin-top: 18rpx;
margin-left: 4rpx; margin-left: 4rpx;
} }
......
...@@ -9,7 +9,8 @@ ...@@ -9,7 +9,8 @@
<view class="rulesPopup-RuleSettings"> <view class="rulesPopup-RuleSettings">
<text class="RuleSettings-title">规则设置</text> <text class="RuleSettings-title">规则设置</text>
<view class="RuleSettings-slider"> <view class="RuleSettings-slider">
<van-slider v-model="valueNum" range @change="onChange" /> <sRegionSlider :minValue="minValue" :maxValue="maxValue" :step="1"
@up="up" @down="down" @move="move" />
</view> </view>
</view> </view>
</view> </view>
...@@ -24,6 +25,7 @@ ...@@ -24,6 +25,7 @@
</view> </view>
</template> </template>
<script> <script>
import sRegionSlider from '@/components/sregionslider/sregionslider'
import { import {
ref, ref,
reactive, reactive,
...@@ -37,17 +39,18 @@ ...@@ -37,17 +39,18 @@
uploadFile uploadFile
} from "@/utils/index"; } from "@/utils/index";
export default { export default {
components: {
sRegionSlider
},
props: { props: {
}, },
emits: ['change'], emits: ['change'],
components: {},
setup(props, ctx) { setup(props, ctx) {
let { let {
proxy proxy
} = getCurrentInstance(); } = getCurrentInstance();
let data = reactive({ let data = reactive({
valueNum: [10, 50],
show: false, show: false,
loading: false, loading: false,
isRange: true, isRange: true,
...@@ -57,9 +60,22 @@ ...@@ -57,9 +60,22 @@
StartNum: 0, //开始值 StartNum: 0, //开始值
EndNum: 0, //结束值 EndNum: 0, //结束值
Info: "", //评价 Info: "", //评价
} },
minValue:0,
maxValue:10
}); });
let methods = { let methods = {
chage(minValue,maxValue){
data.minValue = minValue;
data.maxValue = maxValue;
},
up(e){
// console.log(e);//// e中包含了原有的e信息, 并添加了custom对象
data.minValue = e.custom.minValue;
data.maxValue = e.custom.maxValue;
},
down(e){ },
move(e){ },
showFun(item) { showFun(item) {
if (item) { if (item) {
data.ruleObj.DetailId = item.DetailId; data.ruleObj.DetailId = item.DetailId;
...@@ -113,7 +129,7 @@ ...@@ -113,7 +129,7 @@
} }
.RuleSettings-slider { .RuleSettings-slider {
padding: 52rpx 0 66rpx 0; padding: 0 0 30rpx 0;
} }
.rulesPopup-save view { .rulesPopup-save view {
......
...@@ -83,7 +83,7 @@ ...@@ -83,7 +83,7 @@
}, },
addComments(){ addComments(){
uni.navigateTo({ uni.navigateTo({
url: '/pages/setComments/commentRulesList' url: '/pages/setComments/commentRulesList?show=' + true
}) })
}, },
goComment(item){ goComment(item){
......
<template>
<view clipchildren= false>
<text class="loading" :style="{opacity: lineLeft===0 ? '1' : '0'}">loading...</text>
<view class="fj-slider-box" :style="{opacity: lineLeft!==0 ? '1' : '0'}" clipchildren= false>
<view class="tip" :style="{left:`${tipLeft}px`,opacity: tipShow ? '1' : '1'}">
{{curValue}}%
<view class="h"></view>
</view>
<view class="fj-slider" clipchildren= false>
<view class="fj-line" ref="fj-line">
<view class="scale-box">
<view class="scale flex">
<view></view><view></view><view></view><view></view>
<view></view><view></view><view></view><view></view>
</view>
</view>
</view>
<view v-if="maxLeft-minLeft>=0" class="fj-line-pull" :style="{left: `${minLeft + touchWidth/2}px`, width:`${Math.abs(maxLeft - minLeft)}px`}"></view>
<view v-else class="fj-line-pull" :style="{left: `${minLeft + touchWidth/2- Math.abs(maxLeft - minLeft) }px`, width:`${Math.abs(maxLeft - minLeft)}px`}"></view>
<view
class="fj-touch-left" ref="fjtouchleft"
@touchstart="touchstart($event, 'min')"
@touchmove="touchmove($event, 'min')"
@touchend="touchend($event, 'min')"
:style="{left:`${minLeft}px`}"
>
</view>
<view
class="fj-touch-right"
@touchstart="touchstart($event, 'max')"
@touchmove="touchmove($event, 'max')"
@touchend="touchend($event, 'max')"
:style="{left:`${maxLeft}px`}"
>
</view>
</view>
<view class="fj-value">
<text class="fj-v-l" :style="{color: showMinNum===fillMinValue ? '#333' : '#999'}">{{fillMinValue}}</text>
<text class="fj-v-r" :style="{color: showMaxNum===fillValue ? '#333' : '#999'}">{{fillValue}}</text>
</view>
</view>
</view>
</template>
<script>
// #ifndef APP-PLUS
const createSelectorQuery = (that) => {
let query = uni.createSelectorQuery().in(that);
// #ifdef MP-ALIPAY
query = my.createSelectorQuery();
// #endif
return query;
}
// #endif
// #ifdef APP-PLUS
const dom = weex.requireModule('dom');
// #endif
export default {
name:'s-region-slider',
props: {
fillValue: {
type: Number,
default: 100,
},
fillMinValue: {
type: Number,
default: 0,
},
minValue: {
type: Number,
default: 0,
},
maxValue: {
type: Number,
default: 100,
},
step: {
type: Number,
default: 1,
},
},
watch: {
minValue(newVal, oldVla){
if(newVal < this.fillMinValue || this.maxValue > this.fillValue){
console.error(`请在${this.fillMinValue}-${this.fillValue}范围中设置`)
return;
}
this.sMinValue = newVal - this.fillMinValue;
this.showMinNum = newVal;
this.minLeft = this.sMinValue / this.percentage;
},
maxValue(newVal, oldVla){
if(this.minValue<this.fillMinValue || newVal>this.fillValue){
console.error(`请在${this.fillMinValue}-${this.fillValue}范围中设置`)
return;
}
this.sMaxValue = newVal - this.fillMinValue;
this.showMaxNum = newVal;
this.maxLeft = this.sMaxValue / this.percentage;
},
fillValue(newVal, oldVla){
this.sFillValue = this.fillValue;
}
},
data() {
return {
tipShow:false,
tipLeft:0,
minLeft: 0,
maxLeft: 0,
touchWidth:30,
lineWidth:0,
lineLeft:0,
showMinNum:0,
showMaxNum:0,
curValue:0,
sMinValue:0,
sMaxValue:0,
sFillValue:0,
sFillMinValue:0,
percentage: 0,
disX:0
};
},
mounted(){
this.$nextTick().then(() => {
this.envir({
classname:'.fj-touch-left',
refname:this.$refs.fjtouchleft,
fn:(ret)=>{
this.touchWidth = ret.width;
}
})
this.envir({
classname:'.fj-line',
refname:this.$refs['fj-line'],
fn:(ret)=>{
this.lineWidth = ret.width;
this.lineLeft = ret.left;//
this.sMinValue = (this.minValue - this.fillMinValue) >0 ? this.minValue - this.fillMinValue:0;
this.sMaxValue = (this.maxValue - this.fillMinValue) > 0 ? this.maxValue - this.fillMinValue: 0;
this.sFillValue = (this.fillValue - this.fillMinValue) >0 ?this.fillValue - this.fillMinValue:0;
this.percentage = this.sFillValue / this.lineWidth;
this.minLeft = this.sMinValue / this.percentage;
this.maxLeft = this.sMaxValue / this.percentage;
this.showMaxNum = this.sMaxValue + this.fillMinValue;
this.showMinNum = this.sMinValue + this.fillMinValue;
}
})
})
},
methods: {
envir(opt){
setTimeout(() => {
// #ifdef APP-PLUS
dom.getComponentRect(opt.refname, ret => {
const option = ret.size
opt.fn({
width: option.width,
height:option.height,
top: option.top,
bottom: option.bottom,
left: option.left,
right: option.right,
})
})
// #endif
// #ifndef APP-PLUS
createSelectorQuery(this).select(opt.classname).boundingClientRect().exec((data)=>{
const option = data[0];
opt.fn({
width: option.width,
height:option.height,
top: option.top,
bottom: option.bottom,
left: option.left,
right: option.right,
})
})
// #endif
},200)
},
touchstart(e, type) {
this.$emit('down', {
...e,
custom:{
type,
minValue: this.showMinNum,
maxValue: this.showMaxNum
}
})
},
touchmove(e, type) {
// #ifndef APP-PLUS
const disX = e.touches[0].clientX - this.lineLeft
// #endif
// #ifdef APP-PLUS
const disX = e.touches[0].screenX - this.lineLeft
// #endif
if(disX < 0 || disX > this.lineWidth ) { return;}
if(type === 'min'){
this.minLeft = Math.floor(disX);
if(this.minLeft < 0) { this.minLeft = 0; return; }
if(this.maxLeft > this.lineWidth) { this.maxLeft = this.lineWidth; return; }
//if(this.maxLeft - this.minLeft <= this.touchWidth ) {this.minLeft = this.maxLeft - this.touchWidth; return;}
this.curValue = Math.floor(this.minLeft * this.percentage);
}
if(type === 'max'){
this.maxLeft = Math.ceil(disX);
if(this.minLeft < 0) { this.minLeft = 0; return; }
if(this.maxLeft > this.lineWidth) { this.maxLeft = this.lineWidth; return; }
// if(this.maxLeft - this.minLeft <= this.touchWidth ) {this.maxLeft = this.minLeft + this.touchWidth;return;}
this.curValue = Math.round(this.maxLeft * this.percentage);
}
this.tipShow = true;
this.tipLeft = Math.round((this.curValue) / this.percentage);
this.tipLeft = this.tipLeft >= this.lineWidth?this.lineWidth:this.tipLeft
this.tipLeft = this.tipLeft <= 0?0:this.tipLeft
this.curValue = this.curValue + this.fillMinValue;
this.$emit('move', {
...e,
custom:{
type,
minValue: this.showMinNum,
maxValue: this.showMaxNum,
curValue: this.curValue,
}
})
},
touchend(e, type) {
if(type === 'min') {
if(this.step === 1){
this.sMinValue = this.curValue - this.fillMinValue;
}else{
const stepnum = Math.round((this.minLeft * this.percentage) / this.step);
this.sMinValue = stepnum * this.step;
this.minLeft = this.sMinValue / this.percentage;
}
}
if(type === 'max') {
if(this.step === 1){
this.sMaxValue = this.curValue - this.fillMinValue;
}else{
const stepnum = Math.round((this.maxLeft * this.percentage) / this.step);
this.sMaxValue = stepnum * this.step;
if(this.sFillValue - this.sMaxValue < this.step) { this.sMaxValue = this.sFillValue}
this.maxLeft = this.sMaxValue / this.percentage;
}
}
this.tipShow = false;
if(this.sMinValue <= this.sMaxValue) {
this.showMaxNum = this.sMaxValue + this.fillMinValue;
this.showMinNum = this.sMinValue + this.fillMinValue;
}else{
this.showMaxNum = this.sMinValue + this.fillMinValue;
this.showMinNum = this.sMaxValue + this.fillMinValue;
}
this.$emit('up', {
...e,
custom:{
type,
minValue: this.showMinNum < this.fillMinValue ?this.fillMinValue:this.showMinNum,
maxValue: this.showMaxNum > this.fillValue?this.fillValue:this.showMaxNum
}
})
},
},
};
</script>
<style scoped>
.scale view{
width: 2px;
height: 5px;
background: #282828;
border-radius: 1px;
}
.scale{
justify-content: space-between;
}
.scale-box{
position: absolute;
left: 10%;
right: 10%;
bottom: -3px;
}
.fj-slider-box{font-size:14px;}
.loading{font-size:14px;text-align: center;display: block;}
.fj-value{position: relative;height:20px;}
.fj-v-l,.fj-v-r{font-size: 14px;position: absolute;}
.fj-v-l{left:0;}
.fj-v-r{right:0;}
.fj-slider {
position: relative;
height: 30px;
margin-top: 2px;
}
.fj-touch-left,.fj-touch-right {
opacity: 1 ;
position: absolute;
height: 15px;
width: 30px;
border-radius: 4px;
background: rgba(227,64,76,1);
z-index: 3;
margin-top: 7px;
box-shadow: 0px 0px 21px 0px rgba(201, 23, 39, 0.34);
}
.tip{
width: 37px;
position: relative;
padding: 1px 5px;
background: #FFFDFD;
color: rgba(227,64,76,1);
border-radius: 6px;
z-index: 4;
font-size: 14px;
text-align: center;
}
.h{
position: absolute;
display: inline-block;
width: 0px;
height: 0px;
left: 13px;
bottom: -5px;
border-left: 3px solid transparent;
border-right: 3px solid transparent;
border-top: 6px solid #FFFDFD;
}
.fj-line{position: relative;}
.fj-line, .fj-line-pull {
height: 5px;
background: #999;
position: absolute;
top:14px;
left: 15px;
right: 15px;
z-index: 1;
border-radius: 5px;
}
.fj-line-pull{z-index: 2;background: #282828;}
</style>
...@@ -10,8 +10,13 @@ ...@@ -10,8 +10,13 @@
<view class="jobDetails-content flex" style="flex-direction: column;flex:1;height:1px"> <view class="jobDetails-content flex" style="flex-direction: column;flex:1;height:1px">
<view class="jobDetails-content-header"> <view class="jobDetails-content-header">
<view class="jobDetails-conten-title flex"> <view class="jobDetails-conten-title flex">
<text>{{CreateTime}}</text> <view class="conten-title-left flex">
<view>{{ExamName}}</view> <text>{{CreateTime}}</text>
<view>{{ExamName}}</view>
</view>
<view class="conten-title-right">
<text>仅查看未匹配学员</text>
</view>
</view> </view>
<view class="jobDetails-num-box flex"> <view class="jobDetails-num-box flex">
<view class="jobDetails-num flex"> <view class="jobDetails-num flex">
...@@ -121,20 +126,35 @@ ...@@ -121,20 +126,35 @@
justify-content: space-between; justify-content: space-between;
padding: 70rpx 185rpx 35rpx 185rpx; padding: 70rpx 185rpx 35rpx 185rpx;
} }
.jobDetails-conten-title view{ .conten-title-right text{
background: #C91727;
border-radius: 27rpx;
font-size: 24rpx;
font-weight: bold;
color: #FFFFFF;
padding: 10rpx 19rpx;
display: block;
}
.conten-title-right{
flex-shrink: 0;
}
.conten-title-left view{
font-size: 50rpx; font-size: 50rpx;
font-weight: 800; font-weight: 800;
} }
.jobDetails-conten-title text{ .conten-title-left text{
font-size: 36rpx; font-size: 36rpx;
font-weight: 400; font-weight: 400;
margin-bottom: 10rpx; margin-bottom: 10rpx;
} }
.conten-title-left{
color: #282828;
flex-direction: column;
}
.jobDetails-conten-title{ .jobDetails-conten-title{
padding: 50rpx 50rpx 0 50rpx; padding: 50rpx 50rpx 0 50rpx;
flex-direction: column;
color: #282828;
letter-spacing: 1rpx; letter-spacing: 1rpx;
justify-content: space-between;
} }
.jobDetails-content-header{ .jobDetails-content-header{
......
...@@ -86,11 +86,16 @@ ...@@ -86,11 +86,16 @@
show:false show:false
}); });
let methods = { let methods = {
back() { back() {
uni.navigateBack({ uni.navigateBack({
delta: 1 delta: 1
}) })
}, },
// 关闭规则弹窗
closure(){
refs.getrulesPopup.$vm.closepopup()
},
saveRules() { //保存规则 saveRules() { //保存规则
proxy.$request("/Teacher/SetCourseComment", data.courseRule).then(res => { proxy.$request("/Teacher/SetCourseComment", data.courseRule).then(res => {
if (res) { if (res) {
...@@ -111,9 +116,9 @@ ...@@ -111,9 +116,9 @@
//编辑规则 //编辑规则
editRules(item) { editRules(item) {
data.show = true data.show = true
refs.getrulesPopup.$vm.showFun(item) refs.getrulesPopup.$vm.showFun(item)
}, },
//删除规则 //删除规则
deleteRules(item, index) { deleteRules(item, index) {
let self=this; let self=this;
...@@ -205,6 +210,18 @@ ...@@ -205,6 +210,18 @@
}, },
onLoad(option) { onLoad(option) {
this.Msg.CourseId = option.CourseId; this.Msg.CourseId = option.CourseId;
if(option.show){
this.show = option.show
this.addRules()
}
if(option.CourseId){
this.show = true
this.addRules()
setTimeout(()=>{
this.show = false
this.closure()
},200)
}
this.getCourseRule(); this.getCourseRule();
}, },
}; };
......
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