This commit is contained in:
liuyuan
2025-05-23 17:25:51 +08:00
parent 30042fdfb9
commit d8bfb66827
10 changed files with 205 additions and 48 deletions

View File

@@ -10,8 +10,14 @@
<view class="item " v-for="(item, index) in taskList" @click="clickReply(item)">
<view class="leve1 flex_box">
<view class="pp" style="flex: 1;" v-html="item.content"></view>
<text v-if="item.scoreSuccess == 0 && classState != '2'" class="red light"></text>
<text v-if="item.scoreSuccess > 0" class="score" style="padding-left: 10rpx;">{{item.score}}</text>
<text v-if="item.otherInfo.userNoCount > 0" class="red light"></text>
<text v-if="item.scoreSuccess == 3" class="score" style="padding-left: 10rpx;">{{item.score}}</text>
<view class="score noscore" v-else-if=" classState == '1' || classState == '3' ">
<text v-show="item.scoreInfos < 3 && item.haveGiveScore">等待其他评分员评分</text>
<text v-show="item.scoreInfos < 3 && (item.scoreInfo=='' || !item.haveGiveScore) && roleCode.includes('4')">请您评分</text>
<text v-show="item.scoreInfos < 3 && ( roleCode.includes('1') || roleCode.includes('1') || roleCode.includes('主任') || roleCode.includes('副主任'))">已开始评分</text>
</view>
<!-- <text v-if="" class="blue light"></text> -->
</view>
<view :class="['leve2']">
@@ -49,7 +55,7 @@
<!-- <view class="date">
日期{{curReplay.createTime}}
</view> -->
<view class="score" v-show="curReplay.scoreSuccess >= 1">
<view class="score" v-show="curReplay.scoreSuccess >= 3">
分数{{curReplay.score}}
</view>
<view class="score noscore" v-if="curReplay.scoreSuccess == 0 && (classState == '1' || classState == '3')">
@@ -58,7 +64,7 @@
<view class="" style="color: #999; font-size: 26rpx; margin-top: 20rpx;" v-if="curReplay.scoreSuccess == 0 && (classState == '0' || classState == '2')">
不可评分
</view>
<template v-if="(roleCode.includes('4') || roleCode.includes('5')) && curReplay.scoreSuccess < 1 && (classState == '3' || classState == '1')">
<template v-if="(roleCode.includes('4') || roleCode.includes('5')) && curReplay.scoreSuccess < 3 && (classState == '3' || classState == '1')">
<view class="" style=" padding: 10rpx 10rpx; margin-top: 20rpx;">
<view class="scoreBox flex_box">
<text>分数</text>

View File

@@ -63,14 +63,13 @@
</view>
</view>
<view class="" style="margin-top: 20rpx;">
<view class="score" v-if="item.scoreSuccess >= 2">
<view class="score" v-if="item.scoreSuccess >= 3">
分数:{{item.score}}
</view>
<view class="score noscore" v-else-if="item.scoreInfo != '' && (classState == '1' || classState == '3')">
<text v-show="item.scoreInfos < 2 && item.haveGiveScore">等待其他评分员评分</text>
<text v-show="item.scoreInfos < 2 && !item.haveGiveScore && roleCode.includes('4')">请您评分</text>
<text v-show="item.scoreInfos < 2 && ( roleCode.includes('1') || roleCode.includes('1') || roleCode.includes('主任') || roleCode.includes('副主任'))">已开始评分</text>
<!-- <button v-show="item.scoreInfos >= 2" class="getScore" @click.stop="getRealScore(item.id)" >生成成绩</button> -->
<view class="score noscore" v-else-if=" classState == '1' || classState == '3' ">
<text v-show="item.scoreInfos < 3 && item.haveGiveScore">等待其他评分员评分</text>
<text v-show="item.scoreInfos < 3 && (item.scoreInfo=='' || !item.haveGiveScore) && roleCode.includes('4')">请您评分</text>
<text v-show="item.scoreInfos < 3 && ( roleCode.includes('1') || roleCode.includes('1') || roleCode.includes('主任') || roleCode.includes('副主任'))">已开始评分</text>
</view>
<view class="score noscore" v-else-if="classState == '1' || classState == '3'">未开始评分</view>
<view class="date">
@@ -118,7 +117,7 @@
<view class="score noscore" v-show="curReplay.scoreSuccess == 0">
未开始评分
</view>
<template v-if="(roleCode.includes('4') || roleCode.includes('5')) && curReplay.scoreSuccess < 2 && (classState == '1' || classState == '3')">
<template v-if="(roleCode.includes('4') || roleCode.includes('5')) && curReplay.scoreSuccess < 3 && (classState == '1' || classState == '3')">
<view class="" style=" padding: 10rpx 10rpx; margin-top: 20rpx;">
<view class="scoreBox flex_box">
<text>分数</text>
@@ -499,15 +498,15 @@
}
console.log('item.scoreInfo',item.scoreInfo);
if(item.scoreInfo != ""){
var i = 0
for(var kk in JSON.parse(item.scoreInfo)){
console.log(kk);
if(kk == this.userInfo.id){
item.haveGiveScore = true
var i = 0
for(var kk in JSON.parse(item.scoreInfo)){
console.log(kk);
if(kk == this.userInfo.id){
item.haveGiveScore = true
}
i++
}
i++
}
item.scoreInfos = i
item.scoreInfos = i
}
console.log('item.scoreInfos',item.scoreInfos, item.haveGiveScore);
})

View File

@@ -11,7 +11,7 @@
<view class="leve1 flex_box">
<text style="font-size: 30rpx; font-weight: blod; flex: 1;">{{item.title}}</text>
<template v-if="item.otherInfo.userNoCount > 0">
<text v-if="item.otherInfo.userNoCount > 0 && item.scoreSuccess <= 1" class="red light_text">{{item.otherInfo.userNoCount}}</text>
<text v-if="item.otherInfo.userNoCount > 0" class="red light_text">{{item.otherInfo.userNoCount}}</text>
<!-- <text v-if="item.otherInfo.userNoCount > 0 && item.scoreSuccess >= 2" class="blue light_text">{{item.otherInfo.userNoCount}}</text> -->
<!-- <text v-else class="score" style="padding-left: 10rpx;">{{item.score}}'</text> -->
</template>

View File

@@ -15,10 +15,20 @@
<!-- {{item.content}} -->
</view>
<view class="leve3">
<view class="score" v-if="item.scoreSuccess >= 1">
<view class="score" v-if="item.scoreSuccess >= 3">
分数{{item.score}}
</view>
<view class="score noscore" v-else>未评分</view>
<!-- <view class="score noscore" v-else>未评分</view> -->
<view class="score noscore" v-else-if=" classState == '1' || classState == '3' ">
<text v-show="item.scoreInfos < 3 && item.haveGiveScore">等待其他评分员评分</text>
<text v-show="item.scoreInfos < 3 && !item.haveGiveScore && roleCode.includes('4')">请您评分</text>
<text v-show="item.scoreInfos < 3 && ( roleCode.includes('1') || roleCode.includes('1') || roleCode.includes('主任') || roleCode.includes('副主任'))">已开始评分</text>
</view>
<view class="score noscore" v-else-if="classState == '1' || classState == '3'">未开始评分</view>
<view class="date">
{{item.createTime}}
</view>
@@ -58,7 +68,7 @@
/ {{curReplay.createUser.tel}}
</view>
</scroll-view>
<view class="score" v-show="curReplay.scoreSuccess >= 1">
<view class="score" v-show="curReplay.scoreSuccess >= 3">
分数{{curReplay.score}}
</view>
<view class="score noscore" v-show="curReplay.scoreSuccess == 0">
@@ -66,7 +76,7 @@
</view>
<!-- -->
<template
v-if="(roleCode.includes('4') || roleCode.includes('5')) && curReplay.scoreSuccess < 1 && (classState == '1' || classState == '3')">
v-if="(roleCode.includes('4') || roleCode.includes('5')) && curReplay.scoreSuccess < 3 && (classState == '1' || classState == '3')">
<view class="" style=" padding: 10rpx 10rpx; margin-top: 20rpx;">
<view class="scoreBox flex_box">
<text>分数</text>
@@ -88,7 +98,9 @@
<script>
import $http from '@/config/requestConfig.js';
// const taskLIst1 = require('@/data/taskList.json')
import {
mapState
} from "vuex";
export default {
data() {
return {
@@ -154,6 +166,9 @@
},
// onBackPress() {
// },
computed: {
...mapState(["userInfo"]),
},
methods: {
moveHandle() {
return false;
@@ -244,15 +259,24 @@
// },1000)
},
clickTask(item) {
// this.noScroll()
// console.log('item',item);
console.log('item',item);
this.curReplay = item
this.form = {
...item
}
if (this.form.scoreSuccess == 0) {
if (this.form.scoreSuccess == 0 || item.scoreInfo=='') {
this.form.score = undefined
}
if(item.scoreInfo != ''){
for (let k in item.scoreInfo){
if(k == this.userInfo.id){
this.form.score = item.scoreInfo[k]
break
}
}
}
if (item.img != '') {
var _list = item.img.split(',')
_list.forEach(item => {
@@ -293,9 +317,25 @@
if (res.code == 0) {
if (res.page.records.length > 0) {
console.log('数据获取成功', res.page.records);
var lis = res.page.records
this.taskList = this.taskList.concat(lis)
// this.taskList = taskLIst1.page.records // 测试数据
var list = res.page.records
list.forEach(item => {
item.scoreInfos = 0
item.haveGiveScore = false
if(item.scoreInfo != ""){
var i = 0
for(var kk in JSON.parse(item.scoreInfo)){
if(kk == this.userInfo.id){
item.haveGiveScore = true
}
i++
}
item.scoreInfos = i
}
})
this.taskList = this.taskList.concat(list)
if (res.page.pages > this.pPage) {
this.status = 0;
} else {
@@ -305,7 +345,6 @@
this.status = 3; // 暂无数据
}
this.loadFlag = false;
console.log('res', res);
uni.hideLoading()
}
}).catch(e => {

View File

@@ -520,7 +520,31 @@
ref="commonAdvertisement"
:list="advertisementList"
></common-advertisement>
<!-- <music-play :playList="myList"></music-play> -->
<uni-popup ref="customModal1" type="dialog">
<view class="my-modal">
<view class="my-modal__hd">考试周结束前需要完成全部评分</view>
<view class="my-modal__bd">
<text class="multi-line-text">{{ msg }}</text>
</view>
<view class="my-modal__ft">
<button @click="confirm1">知道了</button>
</view>
</view>
</uni-popup>
<uni-popup ref="customModal2" type="dialog">
<view class="my-modal">
<view class="my-modal__hd">提示</view>
<view class="my-modal__bd">
<view class="multi-line-text">
<text style=" display: inline-block;" v-for="(item, index) in sysNotices_list" :key="index">{{item.content}}</text>
</view>
</view>
<view class="my-modal__ft">
<button @click="confirm2">知道了</button>
</view>
</view>
</uni-popup>
</view>
</template>
@@ -597,6 +621,10 @@ export default {
fixed: null,
//vip活动
superList: [],
msg: '',
sysNotices_list: [],
idString: ''
};
},
onPageScroll(e) {
@@ -605,10 +633,11 @@ export default {
//第一次加载
onLoad(e) {
uni.hideTabBar();
//提示评分
this.editScoreRemind();
this.getSysNotices();
this.$nextTick(() => {
//提示评分
this.editScoreRemind();
this.getAdvertisement();
});
},
@@ -720,6 +749,52 @@ export default {
"Content-Type": "application/json",
},
})
.then(async (res) => {
if(res.code==0&&res.msg){
this.$refs.customModal1.open();
this.msg = res.msg;
}
});
},
//提醒结课
async getSysNotices() {
await $http
.request({
url: "common/sysNotice/getSysNotices",
method: "POST",
data: { },
header: {
"Content-Type": "application/json",
},
})
.then(async (res) => {
if(res.list&&res.list.length>0){
this.sysNotices_list = res.list;
this.idString = res.list.map(item => item.id).join(', ');
this.$refs.customModal2.open();
}
});
},
//知道了
confirm1(){
this.$refs.customModal1.close();
},
//知道了
confirm2(){
this.$refs.customModal2.close();
this.readSysNotice();
},
//已读记录
async readSysNotice() {
await $http
.request({
url: "common/sysNotice/readSysNotice",
method: "POST",
data: { id: this.idString},
header: {
"Content-Type": "application/json",
},
})
.then(async (res) => {
});
@@ -2133,4 +2208,43 @@ export default {
margin-right: 0;
}
}
/* 完全自由的样式控制 */
.my-modal {
width: 260px;
margin: 0 auto;
background: #fff;
border-radius: 12px;
overflow: hidden;
}
.my-modal__hd {
padding: 20rpx;
font-size: 32rpx;
font-weight: bold;
background: #f8f8f8;
}
.my-modal__bd {
padding: 30rpx;
color: #666;
line-height: 42rpx;
/* 可随意修改内容区域样式 */
font-size: 28rpx;
border-bottom: 1px solid #eee;
overflow-y: scroll;
height: 150px;
max-height: 150px;
}
.my-modal__ft button {
padding: 10rpx;
flex: 1;
font-size: 30rpx;
margin: 0;
border-radius: 0;
background: none;
color: #258feb;
}
.multi-line-text{
white-space: pre-line; /* 保留换行符并自动换行 */
}
</style>