diff --git a/src/renderer/src/api/classTask/index.js b/src/renderer/src/api/classTask/index.js
index a01867e..8a95531 100644
--- a/src/renderer/src/api/classTask/index.js
+++ b/src/renderer/src/api/classTask/index.js
@@ -89,6 +89,13 @@ export function updateClassworkdata(data) {
data: data
})
}
+export function updateClassWorkDataAutoFinish(data) {
+ return request({
+ url: '/education/classworkdata/updAutoFinish',
+ method: 'put',
+ data: data
+ })
+}
// 修改classwork
export function updateClasswork(data) {
@@ -118,90 +125,90 @@ export function addClassworkeval(data) {
// 查询evaluationclue列表
export function listEvaluationclue(query) {
return request({
- url: '/education/evaluationclue/list',
- method: 'get',
- params: query
+ url: '/education/evaluationclue/list',
+ method: 'get',
+ params: query
})
}
// 查询evaluationclue详细
export function getEvaluationclue(id) {
return request({
- url: '/education/evaluationclue/' + id,
- method: 'get'
+ url: '/education/evaluationclue/' + id,
+ method: 'get'
})
}
// 新增evaluationclue
export function addEvaluationclueReturnId(data) {
return request({
- url: '/education/evaluationclue/addReturnId',
- method: 'post',
- data: data
+ url: '/education/evaluationclue/addReturnId',
+ method: 'post',
+ data: data
})
}
// 新增evaluationclue
export function addEvaluationclue(data) {
return request({
- url: '/education/evaluationclue',
- method: 'post',
- data: data
+ url: '/education/evaluationclue',
+ method: 'post',
+ data: data
})
}
// 修改evaluationclue
export function updateEvaluationclue(data) {
return request({
- url: '/education/evaluationclue',
- method: 'put',
- data: data
+ url: '/education/evaluationclue',
+ method: 'put',
+ data: data
})
}
// 删除evaluationclue
export function delEvaluationclue(id) {
return request({
- url: '/education/evaluationclue/' + id,
- method: 'delete'
+ url: '/education/evaluationclue/' + id,
+ method: 'delete'
})
}
// 新增evaluationclue,保存base64图片
export function saveBase64File(data) {
return request({
- url: '/education/evaluationclue/saveBase64File',
- method: 'post',
- data: data
+ url: '/education/evaluationclue/saveBase64File',
+ method: 'post',
+ data: data
})
}
// 新增evaluationclue,上传
export function saveEvaluationClueUploadFile(data) {
return request({
- url: '/education/evaluationclue/saveUploadFile',
- method: 'post',
- data: data
+ url: '/education/evaluationclue/saveUploadFile',
+ method: 'post',
+ data: data
})
}
// 读取文件内容
export function readFile(data) {
return fetch(import.meta.env.VITE_APP_RES_FILE_PATH + data.cluelink, {
- method: "get",
- headers: {
- 'Content-Type': 'text/plain', // 请求头设置为纯文本
- 'Accept': 'text/plain' // 接受头设置为纯文本
- },
+ method: "get",
+ headers: {
+ 'Content-Type': 'text/plain', // 请求头设置为纯文本
+ 'Accept': 'text/plain' // 接受头设置为纯文本
+ },
})
- .then(response => response.text())
- .then(text => {
- return Promise.resolve(text);
- })
- .catch(error => {
- console.error('读取文件出错:', error);
- return Promise.reject();
- });
+ .then(response => response.text())
+ .then(text => {
+ return Promise.resolve(text);
+ })
+ .catch(error => {
+ console.error('读取文件出错:', error);
+ return Promise.reject();
+ });
/*return request({
url: '/education/evaluationclue/readFile',
method: 'post',
diff --git a/src/renderer/src/store/modules/classTask.js b/src/renderer/src/store/modules/classTask.js
deleted file mode 100644
index f0008cf..0000000
--- a/src/renderer/src/store/modules/classTask.js
+++ /dev/null
@@ -1,28 +0,0 @@
-import { defineStore } from 'pinia'
-import { } from '@/api/classTask/index.js'
-import { listClassmain } from '@/api/classManage/index'
-
-const useClassTaskStore = defineStore('classTask',{
- state: () => ({
- classListIds: [],
- }),
- actions: {
- listClassmain(params) {
- // 获取班级列表
- return new Promise((resolve, reject) => {
- listClassmain(params)
- .then((res) => {
- this.classListIds = res.rows&&res.rows.map((item) => item.id)
- resolve(res)
- })
- .catch((error) => {
- reject(error)
- })
- })
- },
- },
- persist: true
-})
-export default useClassTaskStore
-
-
diff --git a/src/renderer/src/utils/date.js b/src/renderer/src/utils/date.js
index d967f24..b411c49 100644
--- a/src/renderer/src/utils/date.js
+++ b/src/renderer/src/utils/date.js
@@ -167,3 +167,61 @@ export function getTomorrow() {
return tomorrow;
}
+/**
+ * 当前日期的 前几天
+ * @param {*} index 天数
+ * @param {*} format true 返回中国标准时间:Wed Oct 02 2024 08:00:00 GMT+0800 (中国标准时间) 格式; false 返回标准时间格式 YYYY-MM-DD
+ * @returns
+ */
+export function getTheOtherDay(index, format=true) {
+ let date = new Date();
+ var year = date.getFullYear()
+ var month = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1
+ var day = date.getDate()- index < 10 ? '0' + (date.getDate()- index) : date.getDate()- index
+
+ // 前 index 天的时间
+ if(format){
+ let tomorrow = `${year}-${month}-${day}`;
+ return new Date(tomorrow);
+ }else{
+ let tomorrow = `${year}-${month}-${day}`;
+ return tomorrow;
+ }
+}
+/**
+ * 当前日期的 后几天
+ * @param {*} index 天数
+ * @param {*} format true 返回中国标准时间:Wed Oct 02 2024 08:00:00 GMT+0800 (中国标准时间) 格式; false 返回标准时间格式 YYYY-MM-DD
+ * @returns
+ */
+export function getTheOtheNextDay(index, format=true) {
+ const date = new Date();
+ var year = date.getFullYear()
+ var month = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1
+ var day = date.getDate()+ index < 10 ? '0' + (date.getDate()+ index) : date.getDate()+ index
+
+ // 前 index 天的时间
+ if(format){
+ const tomorrow = `${year}-${month}-${day}`;
+ return new Date(tomorrow);
+ }else{
+ const tomorrow = `${year}-${month}-${day}`;
+ return tomorrow;
+ }
+}
+
+
+/**
+ * Wed Oct 02 2024 08:00:00 GMT+0800 (中国标准时间) 转为日期格式: YYYY-MM-DD
+ *
+ * @param {*} format
+ * @returns
+ */
+export const getDateFormatDate = (newDate)=> {
+ const now = newDate; // new Date();
+ const year = now.getFullYear();
+ const month = (now.getMonth() + 1).toString().padStart(2, '0');
+ const day = now.getDate().toString().padStart(2, '0');
+
+ return `${year}-${month}-${day}`;
+}
diff --git a/src/renderer/src/views/classTask/classTask.vue b/src/renderer/src/views/classTask/classTask.vue
index 055fa37..46897d7 100644
--- a/src/renderer/src/views/classTask/classTask.vue
+++ b/src/renderer/src/views/classTask/classTask.vue
@@ -4,20 +4,16 @@
-
@@ -27,7 +23,7 @@
-
@@ -61,25 +56,29 @@ import { ref, onMounted, onUnmounted, computed, watch } from 'vue'
import { listByDeadDate, listClassworkdata } from '@/api/classTask'
import TaskItem from '@/views/classTask/container/classTask/task-item.vue'
-// import ItemDialog from '@/views/classTask/container/item-dialog.vue'
import { useToolState } from '@/store/modules/tool'
-import { getCurrentTime } from '@/utils/date'
+import { getDateFormatDate, getTheOtherDay, getTheOtheNextDay } from '@/utils/date'
import useUserStore from '@/store/modules/user'
-import useClassTaskStore from "@/store/modules/classTask";
import {createWindow} from '@/utils/tool'
-import {sessionStore} from '@/utils/store'
import {debounce } from '@/utils/comm'
const toolState = useToolState();
-
-const classTaskStore = useClassTaskStore()
const userStore = useUserStore().user
-// const itemDialogRef = ref(null)
-const tabOptions = ref(['进行中', '已结束'])
-const tabActive = ref('进行中')
+
+const tabOptions = ref(['待批改', '已批改'])
+const tabActive = ref('待批改')
const dataList = ref([])
-const EndDate = ref(getCurrentTime('YYYY-MM-DD'))
+// 默认起止时间:当前日期前2天后3天;默认查询一周的数据
+const startEndDate = ref([
+ getTheOtherDay(3),
+ getTheOtheNextDay(3),
+])
+const defaultTime = ref<[Date, Date]>([
+ getTheOtherDay(3),
+ getTheOtheNextDay(3),
+])
+
// 所有班级作业列表
const classWorkList = ref([])
@@ -91,23 +90,18 @@ const loading = ref(false)
const activeDataList = computed(() => {
return classWorkList.value
})
+const doneDataList = computed(() => {
+ return classWorkList.value
+})
const deleteReserv = (item) => {
console.log('删除待开发', item)
// dataList.value = dataList.value.filter((is) => {
// return is.id !== item.id
// })
}
-const doneDataList = computed(() => {
- return classWorkList.value
-})
-// 当日之后的日期禁用
-const disabledDate = (time) => {
- return time.getTime() > Date.now()
-}
-// 截止日期改变
-const changeEndDate = (val) => {
- console.log('截止日期改变', val)
+const changeStartEndDate = (val) => {
+ console.log('起止日期改变', val)
getData() // 加载数据
}
@@ -115,245 +109,202 @@ const changeEndDate = (val) => {
const getData = async () => {
classWorkList.value = []
loading.value = true
- // 1、班级列表
- // getClassList()
- // 2、班级作业
+ // 1、班级作业
await getClassWorkList()
- // 3、班级学生作业 包含多个班级
+ // 2、班级学生作业 包含多个班级
getStudentClassWorkData()
loading.value = false
}
+
/**
- * 1、获取班级列表数据
- * TODO 这里暂时取班级id的list,后续需要在修改
- */
-const getClassList = () => {
- if(classTaskStore.classListIds.length==0){
- // 获取 班级列表ids 这里暂时取班级id的list,后续需要在修改
- classTaskStore.listClassmain({ classuserid: userStore.userId, pageSize: 100, status: 'open' })
- }
-}
-/**
- * 2、获取班级作业
+ * 1、获取班级作业
*/
const getClassWorkList = async () => {
- //if(classTaskStore.classListIds.length>0){
- {
- // 班级作业数据,包含多个班级 homeworklist
- const response = await listByDeadDate({
- edituserid: userStore.userId, // 老师的id
- edustage: userStore.edustage, // 学段
- edusubject: userStore.edusubject,//学科
- // deaddate: tabActive.value === '进行中'? getTomorrow() : EndDate.value,// 进行中:明天,已结束:选择的日期 弃用
- deaddate: EndDate.value,// 进行中:明天,已结束:选择的日期
- status: '1', // 作业状态:1-已发布
- orderby: 'deaddate DESC',
- pageSize: 100,
- })
+ // 班级作业数据,包含多个班级 homeworklist
+ const response = await listByDeadDate({
+ edituserid: userStore.userId, // 老师的id
+ edustage: userStore.edustage, // 学段
+ edusubject: userStore.edusubject,//学科
+ startdate: tabActive.value === '待批改'? '' : getDateFormatDate(startEndDate.value[0]),
+ deaddate: tabActive.value === '待批改'? '' : getDateFormatDate(startEndDate.value[1]),// 待批改:明天,已批改:选择的日期
+ status: tabActive.value === '待批改'? '1' : '2', // 作业状态:1-已发布
+ orderby: 'deaddate DESC',
+ pageSize: 100,
+ })
- /**
- * 2024-10-17 由于 后面截止时间加了 时分,特加判断
- * 1、进行中、以前是以明天判断。现改为传当天的日期,并根据当前日期的时分与截止日期进行判断,
- * 2、已结束、以前默认是以明天判断。现依然以明天为判断,并根据当前日期时分大于截止日期时分判断。
- */
- let list = [];
- if(tabActive.value === '进行中'){
- // 进行中 当前日期时间 小于 截止 日期时间
- list = response.rows&&response.rows.filter(item => item.deaddate && getCurrentTime('YYYY-MM-DD HH:mm') < item.deaddate); // 进行中
- }else{
- list = response.rows&&response.rows.filter(item => item.deaddate && getCurrentTime('YYYY-MM-DD HH:mm') > item.deaddate); // 已结束
+ let list = response.rows || [];
+ for (var i = 0; i < list.length; i++) {
+ // 初始化部分新增字段值
+ list[i].workdatalist = [] // 当前任务中有多少个学生的数据集合
+ list[i].workdatalistVisible = false
+ list[i].feedtimelength = 0 // 已交的学生人中,汇总计算用时
+ list[i].rightAnswerCount = 0
+ list[i].scoingRate = 0 + '%' // 得分率
+ list[i].averagetime = 0 // 平均用时
+
+ // ----------------------------------------------
+ // 处理任务类型的UI
+ if (list[i].worktype == '学习目标定位') {
+ list[i].workclass = 'success'
+ list[i].workcodesList = JSON.parse(list[i].workcodes)
+ } else if (list[i].worktype == '教材研读') {
+ list[i].workclass = 'primary'
+ } else if (list[i].worktype == '框架梳理') {
+ list[i].workclass = 'warning'
+ } else if (list[i].worktype == '学科定位') {
+ list[i].workclass = 'info'
+ } else if (list[i].worktype == '习题训练') {
+ list[i].workclass = 'danger'
+ } else {
+ list[i].workclass = ''
}
-
-
- for (var i = 0; i < list.length; i++) {
- // 初始化部分新增字段值
- list[i].workdatalist = []
- list[i].workdatacount = 0 // 人数
- list[i].workdatalistVisible = false
- list[i].workdatafeedbackcount = 0 // 已交人数
- list[i].feedtimelength = 0
- list[i].rightAnswerCount = 0
- list[i].scoingRate = 0 + '%' // 得分率
- list[i].averagetime = 0 // 平均用时
-
- // ----------------------------------------------
- // 处理任务类型的UI
- if (list[i].worktype == '学习目标定位') {
- list[i].workclass = 'success'
- list[i].workcodesList = JSON.parse(list[i].workcodes)
- } else if (list[i].worktype == '教材研读') {
- list[i].workclass = 'primary'
- } else if (list[i].worktype == '框架梳理') {
- list[i].workclass = 'warning'
- } else if (list[i].worktype == '学科定位') {
- list[i].workclass = 'info'
- } else if (list[i].worktype == '习题训练') {
- list[i].workclass = 'danger'
- } else {
- list[i].workclass = ''
- }
- // 如果是习题训练任务,则检查一共有多少道
- if (list[i].entpcourseworklist != '') {
- list[i].entpcourseworklistarray = JSON.parse(
- '[' + list[i].entpcourseworklist + ']'
- )
- } else {
- list[i].entpcourseworklistarray = []
- }
- // 根据 classworkdatastudentids 初始化判断分配的人数
- if (
- list[i].classworkdatastudentids != '' &&
- list[i].classworkdatastudentids != null &&
- list[i].classworkdatastudentids != 'null'
- ) {
- const stuList = JSON.parse('[' + list[i].classworkdatastudentids + ']')
- list[i].workdatacount = stuList.length
- }
+ // 如果是习题训练任务,则检查一共有多少道
+ if (list[i].entpcourseworklist != '') {
+ list[i].entpcourseworklistarray = JSON.parse(
+ '[' + list[i].entpcourseworklist + ']'
+ )
+ } else {
+ list[i].entpcourseworklistarray = []
}
- // 显示分配人数(workdatacount)>0 的
- if (list && list.length > 0) {
- classWorkList.value = list && list.filter((item) => item.workdatacount > 0)
- //TODO: 这里没分页,貌似这个 total 不重要,后续看
- total.value = 0
- }else{
- classWorkList.value = []
- total.value = 0
- }
- loading.value = false
}
+
+ // 显示分配人数(workdataresultsum)>0 的
+ if (list && list.length > 0) {
+ classWorkList.value = list && list.filter((item) => item.workdataresultsum > 0)
+ //TODO: 这里没分页,貌似这个 total 不重要,后续看
+ total.value = 0
+ }else{
+ classWorkList.value = []
+ total.value = 0
+ }
+ loading.value = false
}
/**
- * 3、获取多个班级学生作业数据
+ * 2、获取多个班级学生作业数据
+ * 查询已交的列表
+ * @param workList :需要更新的作业list
+ * @param Refresh :true 不用刷新,false 需要刷新
*/
-const getStudentClassWorkData = async() => {
- // const { chapterId } = await useGetHomework(props.bookobj.node)
- // this.entpcourseid = chapterId
- //if(classTaskStore.classListIds.length>0){
- // listClassworkdataByDeadDate({
- // edituserid: userStore.userId, // 老师的id
- // classids: classTaskStore.classListIds.join(','),
- // edusubject: userStore.edusubject,//学科
- // deaddate: tabActive.value === '进行中'? getTomorrow() : EndDate.value,// 进行中:明天,已结束:选择的日期
- // deaddate: EndDate.value,// 进行中:明天,已结束:选择的日期
- // //status: '1', // 作业状态:1-已发布
- // orderby: "deaddate DESC",//
- // pageSize: 1000,
- // })
+const getStudentClassWorkData = async(workList = [], Refresh = true) => {
+ // 获取 已交的 列表数据(workdataresultcount 已交的学生数)
+ let SubmitClWorkList = [];
+ if(Refresh){
+ SubmitClWorkList = classWorkList.value.filter((item) => item.workdataresultcount > 0) ;
+ }else{
+ SubmitClWorkList = workList;
+ }
- // listClassworkdataNew({
- // classworkids: ids, // 作业id
- // edituserid: userStore.userId, // 老师的id
- // edusubject: userStore.edusubject,//学科
- // evalStatus: 1,
- // pageSize: 1000,
- // })
+ console.log('有提交的作业', SubmitClWorkList)
+ const ids = SubmitClWorkList&&SubmitClWorkList.map((item) => item.id).join(',');
+ if (ids == '') {
+ return;
+ }
+ listClassworkdata({
+ classworkids: ids,
+ pageSize: 1000,
+ }).then((res) => {
+ for (var t = 0; t < classWorkList.value.length; t++) {
+ for (var i = 0; i < res.rows.length; i++) {
+ // finishtimelength != '0' 已交
+ if (res.rows[i].classworkid == classWorkList.value[t].id && res.rows[i].finishtimelength != '0') {
+ console.log('==================')
+ // 有几个学生完成/正在完成学习任务
+ // 至少resultcount不是0
+ //classWorkList.value[t].workdataresultcount++
-
- {
- const ids = classWorkList.value.map((item) => item.id).join(',');
- if (ids == '') {
- return;
- }
- listClassworkdata({
- classworkids: ids,
- pageSize: 1000,
- }).then((res) => {
- for (var t = 0; t < classWorkList.value.length; t++) {
- for (var i = 0; i < res.rows.length; i++) {
- if (res.rows[i].classworkid == classWorkList.value[t].id && res.rows[i].finishtimelength != '0') {
- console.log('==================')
- // 有几个学生完成/正在完成学习任务
- // 至少resultcount不是0
- classWorkList.value[t].workdatafeedbackcount++
+ // 已交的学生人中,汇总计算用时
+ classWorkList.value[t].feedtimelength += parseInt(res.rows[i].finishtimelength)
- // 在参与学习任务的人中,汇总计算用时
- classWorkList.value[t].feedtimelength += parseInt(res.rows[i].finishtimelength)
+ // 计算得分率
+ if (
+ res.rows[i].classworkevallist != '' &&
+ res.rows[i].classworkevallist != null &&
+ res.rows[i].classworkevallist != 'null'
+ ) {
+ let replacedString = res.rows[i].classworkevallist.replace(/""/g, '"')
+ // 将标签中双引号改为转义, 测试数据: "{\"id\":172907, \"rating\":0, \"teacherRating\":0, \"entpcourseworkid\":358520, \"feedcontent\":\"④①⑤③②\", \"score\":4, \"rightanswer\":\"④①⑤③②\"},{\"id\":172908, \"rating\":0, \"teacherRating\":0, \"entpcourseworkid\":358521, \"feedcontent\":\"气壮山威,鲲鹏展翅楚云飞\", \"score\":4, \"rightanswer\":\"志远天高,春风杨柳麓山青\"},{\"id\":172909, \"rating\":0, \"teacherRating\":0, \"entpcourseworkid\":363096, \"feedcontent\":\"《红烛》化用“蜡矩”这一古典意象,赋予它新的含义,赞美了红烛以“蜡炬成灰”来点亮世界的奉献精神。\", \"score\":4, \"rightanswer\":\"《立在地球边上放号》中,全诗采用间接抒情的方式,描绘了太平洋的浪潮,吟唱了一曲惊心动魄的力的颂歌,意在赞美摧毁旧世界、创造新生活的“五四”精神。\"},{\"id\":172910, \"rating\":0, \"teacherRating\":0, \"entpcourseworkid\":363098, \"feedcontent\":\"毛泽东重游橘子洲,面对如画的秋色和大好的革命形势,回忆过去战斗的岁月,不禁心潮起伏,浮想联翩。\", \"score\":4, \"rightanswer\":\"毛泽东重游橘子洲,面对如画的秋色和大好的革命形势,回忆过去战斗的岁月,不禁心潮起伏,浮想联翩。\"},{\"id\":172911, \"rating\":0, \"teacherRating\":0, \"entpcourseworkid\":363100, \"feedcontent\":\"毛泽东重游橘子洲,面对如画的秋色和大好的革命形势,回忆过去战斗的岁月,不禁心潮起伏,浮想联翩。\", \"score\":4, \"rightanswer\":\"毛泽东重游橘子洲,面对如画的秋色和大好的革命形势,回忆过去战斗的岁月,不禁心潮起伏,浮想联翩。\"}"
+ replacedString = escapeHtmlQuotes(res.rows[i].classworkevallist).replace(
+ /"(\[.*\])"/g,
+ '$1'
+ )
+ replacedString = escapeHtmlQuotes(res.rows[i].classworkevallist)
+ var evalarray
+ try {
+ evalarray = JSON.parse('[' + res.rows[i].classworkevallist + ']')
+ } catch {
+ evalarray = JSON.parse('[' + replacedString + ']')
+ }
- // 计算得分率
- if (
- res.rows[i].classworkevallist != '' &&
- res.rows[i].classworkevallist != null &&
- res.rows[i].classworkevallist != 'null'
- ) {
- let replacedString = res.rows[i].classworkevallist.replace(/""/g, '"')
- // 将标签中双引号改为转义, 测试数据: "{\"id\":172907, \"rating\":0, \"teacherRating\":0, \"entpcourseworkid\":358520, \"feedcontent\":\"④①⑤③②\", \"score\":4, \"rightanswer\":\"④①⑤③②\"},{\"id\":172908, \"rating\":0, \"teacherRating\":0, \"entpcourseworkid\":358521, \"feedcontent\":\"气壮山威,鲲鹏展翅楚云飞\", \"score\":4, \"rightanswer\":\"志远天高,春风杨柳麓山青\"},{\"id\":172909, \"rating\":0, \"teacherRating\":0, \"entpcourseworkid\":363096, \"feedcontent\":\"《红烛》化用“蜡矩”这一古典意象,赋予它新的含义,赞美了红烛以“蜡炬成灰”来点亮世界的奉献精神。\", \"score\":4, \"rightanswer\":\"《立在地球边上放号》中,全诗采用间接抒情的方式,描绘了太平洋的浪潮,吟唱了一曲惊心动魄的力的颂歌,意在赞美摧毁旧世界、创造新生活的“五四”精神。\"},{\"id\":172910, \"rating\":0, \"teacherRating\":0, \"entpcourseworkid\":363098, \"feedcontent\":\"毛泽东重游橘子洲,面对如画的秋色和大好的革命形势,回忆过去战斗的岁月,不禁心潮起伏,浮想联翩。\", \"score\":4, \"rightanswer\":\"毛泽东重游橘子洲,面对如画的秋色和大好的革命形势,回忆过去战斗的岁月,不禁心潮起伏,浮想联翩。\"},{\"id\":172911, \"rating\":0, \"teacherRating\":0, \"entpcourseworkid\":363100, \"feedcontent\":\"毛泽东重游橘子洲,面对如画的秋色和大好的革命形势,回忆过去战斗的岁月,不禁心潮起伏,浮想联翩。\", \"score\":4, \"rightanswer\":\"毛泽东重游橘子洲,面对如画的秋色和大好的革命形势,回忆过去战斗的岁月,不禁心潮起伏,浮想联翩。\"}"
- replacedString = escapeHtmlQuotes(res.rows[i].classworkevallist).replace(
- /"(\[.*\])"/g,
- '$1'
- )
- replacedString = escapeHtmlQuotes(res.rows[i].classworkevallist)
- var evalarray
- try {
- evalarray = JSON.parse('[' + res.rows[i].classworkevallist + ']')
- } catch {
- evalarray = JSON.parse('[' + replacedString + ']')
+ for (var e = 0; e < evalarray.length; e++) {
+ if (res.rows[i].worktype == '常规作业') {
+ evalarray[e].feedcontent = escapeHtmlQuotes(evalarray[e].feedcontent).replace(
+ /"(\[.*\])"/g,
+ '$1'
+ )
+ evalarray[e].feedcontent = escapeHtmlQuotes(evalarray[e].feedcontent)
}
-
- for (var e = 0; e < evalarray.length; e++) {
- if (res.rows[i].worktype == '常规作业') {
- evalarray[e].feedcontent = escapeHtmlQuotes(evalarray[e].feedcontent).replace(
- /"(\[.*\])"/g,
- '$1'
- )
- evalarray[e].feedcontent = escapeHtmlQuotes(evalarray[e].feedcontent)
- }
- if (evalarray[e].feedcontent == evalarray[e].rightanswer) {
- // 正确,得分
- classWorkList.value[t].rightAnswerCount++
- }
+ if (evalarray[e].feedcontent == evalarray[e].rightanswer) {
+ // 正确,得分
+ classWorkList.value[t].rightAnswerCount++
}
}
}
- // 当前这个学习任务,共推送给了几个学生,workdatacount
- if (res.rows[i].classworkid == classWorkList.value[t].id) {
- classWorkList.value[t].workdatalist.push(res.rows[i])
- }
}
- // 计算完成进度 workdatacount人数要大于0
- if (
- classWorkList.value[t].workdataresultcount > 0 &&
- classWorkList.value[t].workdatacount > 0
- ) {
- classWorkList.value[t].finishpercent = parseInt(
- (classWorkList.value[t].workdataresultcount / classWorkList.value[t].workdatacount) * 100
- )
- } else {
- classWorkList.value[t].finishpercent = 0
+ // 当前这个学习任务,共推送给了几个学生,workdataresultsum
+ if (res.rows[i].classworkid == classWorkList.value[t].id) {
+ classWorkList.value[t].workdatalist.push(res.rows[i])
}
-
- // 以下四个参数,都要计算
- // 2024-04-12,酉阳,by jackyshen
-
- // 计算参与学习任务的平均用时
- if (classWorkList.value[t].workdatafeedbackcount > 0) {
- classWorkList.value[t].averagetime = Math.ceil(classWorkList.value[t].feedtimelength / classWorkList.value[t].workdatafeedbackcount / 60).toFixed(0)
- } else {
- classWorkList.value[t].averagetime = 0
- }
-
- // 计算批阅异常,需要获取每个题目的类型,找出主观题
- // 暂缓
-
- // 计算平均得分率: 正确题数/(题目总数*学生人数)*100
- if (
- classWorkList.value[t].entpcourseworklistarray &&
- classWorkList.value[t].entpcourseworklistarray.length > 0
- ) {
- var dd =
- (classWorkList.value[t].rightAnswerCount /
- (classWorkList.value[t].entpcourseworklistarray.length *
- classWorkList.value[t].workdatacount)) *
- 100
- classWorkList.value[t].scoingRate = dd.toFixed(0) + '%'
- } else {
- classWorkList.value[t].scoingRate = '0%'
- }
- // 设定典型作答,需要获取每个题目的类型,找出主观题
- // 暂缓
}
- })
- }
+
+
+ // 计算完成进度: workdataresultcount 学生提交了的个数; workdataresultsum 人数要大于0;
+ if (classWorkList.value[t].workdataresultcount > 0 && classWorkList.value[t].workdataresultsum > 0 ) {
+ classWorkList.value[t].finishpercent = parseInt(
+ (classWorkList.value[t].workdataresultcount / classWorkList.value[t].workdataresultsum) * 100
+ )
+ } else {
+ classWorkList.value[t].finishpercent = 0
+ }
+
+ /** 计算 已批阅进度 */
+ // workdataresultsum 人数 teacherrationgcount 已批阅人数
+ // 已批阅百分比: (人数-已批阅数) / 人数 * 100
+ if (classWorkList.value[t].workdataresultsum > 0) {
+ classWorkList.value[t].teacherCorrectionProgress = parseInt(
+ ((classWorkList.value[t].teacherrationgcount) / classWorkList.value[t].workdataresultsum) * 100
+ )
+ } else {
+ classWorkList.value[t].teacherCorrectionProgress = 0
+ }
+
+ // 以下四个参数,都要计算
+ // 2024-04-12,酉阳,by jackyshen
+
+ // 计算参与学习任务的平均用时:学生总用时/ 提交学生数
+ if (classWorkList.value[t].workdataresultcount > 0) {
+ classWorkList.value[t].averagetime = Math.ceil(classWorkList.value[t].feedtimelength / classWorkList.value[t].workdataresultcount / 60).toFixed(0)
+ } else {
+ classWorkList.value[t].averagetime = 0
+ }
+
+ // 计算平均得分率: 正确题数/(题目总数*学生人数)*100
+ if (
+ classWorkList.value[t].entpcourseworklistarray &&
+ classWorkList.value[t].entpcourseworklistarray.length > 0
+ ) {
+ var dd =
+ (classWorkList.value[t].rightAnswerCount /
+ (classWorkList.value[t].entpcourseworklistarray.length *
+ classWorkList.value[t].workdataresultsum)) *
+ 100
+ classWorkList.value[t].scoingRate = dd.toFixed(0) + '%'
+ } else {
+ classWorkList.value[t].scoingRate = '0%'
+ }
+ }
+ })
+
}
@@ -379,6 +330,7 @@ const getStudentClassWorkDataPolling = () => {
getStudentVisible()
// 在轮询
pollingST.value = setInterval(() => {
+ console.log('轮询查询学生作业进度')
getStudentVisible()
}, 1000 * 10)
}
@@ -413,75 +365,56 @@ onUnmounted(() => {
// [作业反馈] - 实际查询逻辑
const getStudentVisible = async () => {
- if (classTaskStore.classListIds.length <= 0) {
- return
+ if(!classWorkList.value.length>0){
+ return;
}
- // 班级作业数据,多个班级
const response = await listByDeadDate({
- classidarray: classTaskStore.classListIds.join(','),
edituserid: userStore.userId, // 老师的id
- edustage: userStore.edustage,// 学段
+ edustage: userStore.edustage, // 学段
edusubject: userStore.edusubject,//学科
- // deaddate: tabActive.value === '进行中'? getTomorrow() : EndDate.value,// 进行中:明天,已结束:选择的日期
- deaddate: EndDate.value,// 进行中:明天,已结束:选择的日期
- status: '1', // 作业状态:1-已发布
- // orderby: 'concat(deaddate,uniquekey) DESC',
+ startdate: tabActive.value === '待批改'? '' : getDateFormatDate(startEndDate.value[0]),
+ deaddate: tabActive.value === '待批改'? '' : getDateFormatDate(startEndDate.value[1]),// 待批改:明天,已批改:选择的日期
+ status: tabActive.value === '待批改'? '1' : '2', // 作业状态:1-已发布
orderby: 'deaddate DESC',
- pageSize: 100
+ pageSize: 100,
})
- /**
- * 2024-10-17 由于 后面截止时间加了 时分,特加判断
- * 1、进行中、以前是以明天判断。现改为传当天的日期,并根据当前日期的时分与截止日期进行判断,
- * 2、已结束、以前默认是以明天判断。现依然以明天为判断,并根据当前日期时分大于截止日期时分判断。
- */
- let list = [];
- if(tabActive.value === '进行中'){
- // 进行中 当前日期时间 小于 截止 日期时间
- list = response.rows&&response.rows.filter(item => item.deaddate && getCurrentTime('YYYY-MM-DD HH:mm') < item.deaddate); // 进行中
- }else{
- list = response.rows&&response.rows.filter(item => item.deaddate && getCurrentTime('YYYY-MM-DD HH:mm') > item.deaddate); // 已结束
- }
+ let list = response.rows || [];
- const curWorkList = list
-
- /**
- * warn: 这里仅更新了finishpercent(进度条), 且当前作业布置推送新任务时, curWorkList中会查到新的任务与当前页面中this.classWorkList长度不一致,
- * 故这里需循环this.classWorkList且只更新当前页面中的存在的任务进度
- */
- for (let t = 0; t < classWorkList.value.length; t++) {
- // 当前时间超过[作业任务]截止时间的跳过
- // if( getDateTime > classWorkList.value[t].deaddate ){
- // continue;
- // }
- // 确保当前拿到的任务与页面中存在的任务能一对一(避免因删除其他操作而删除作业任务导致两个数组的index不统一而越界)
- let curWork = curWorkList.find((work) => work.id === classWorkList.value[t].id)
- // workdataresultcount 完成人数 workdatacount人数要大于0
- if (curWork && curWork.workdataresultcount > 0 && classWorkList.value[t].workdatacount > 0) {
- classWorkList.value[t].workdataresultcount = curWork.workdataresultcount
- // 桌面端貌似不需要进度条了?
- classWorkList.value[t].finishpercent = parseInt(
- (classWorkList.value[t].workdataresultcount / classWorkList.value[t].workdatacount) * 100
- )
- // 计算参与学习任务的平均用时
- if (classWorkList.value[t].workdatafeedbackcount > 0) {
- classWorkList.value[t].averagetime = Math.ceil(classWorkList.value[t].feedtimelength / classWorkList.value[t].workdatafeedbackcount / 60).toFixed(0)
- } else {
- classWorkList.value[t].averagetime = 0
+ let newList = [];
+ for(let i = 0; i < classWorkList.value.length; i++){
+ // 父list的id与子list的id相等,在进行对比;若是不等? 有可能是老师批阅完了这个list数据,变成了已批改状态中,则父list数据需要删除
+ const isList = list.filter((item) => item.id === classWorkList.value[i].id);
+ if(isList.length === 0){
+ // 父list的id与子list的id不相等,则删除父list数据
+ classWorkList.value.splice(i,1);
+ }
+ for(let j = 0; j < list.length; j++){
+ // workdataresultcount 学生提交了的个数;
+ if(classWorkList.value[i].id === list[j].id && classWorkList.value[i].workdataresultcount != list[j].workdataresultcount){
+ // 学生提交数 != 学生提交数?
+ newList.push(list[j]);
}
- // 更新批阅数
- classWorkList.value[t].teacherrationgcount = curWork.teacherrationgcount
- } else {
- // 学生未完成,但是老师批改了?
- if(curWork && curWork.workdataresultcount == 0){
- // 更新批改数
- classWorkList.value[t].teacherrationgcount = curWork.teacherrationgcount
+ // teacherrationgcount 已批阅人数
+ if(classWorkList.value[i].id === list[j].id && classWorkList.value[i].teacherrationgcount != list[j].teacherrationgcount){
+ // 更新批阅进度条
+ if (classWorkList.value[i].workdataresultsum > 0) {
+ // 更新批阅数、 进度条
+ classWorkList.value[i].teacherrationgcount = list[j].teacherrationgcount;
+ classWorkList.value[i].teacherCorrectionProgress = parseInt(
+ ((list[j].teacherrationgcount) / list[j].workdataresultsum) * 100
+ )
+ } else {
+ classWorkList.value[i].teacherCorrectionProgress = 0
+ }
}
- classWorkList.value[t].finishpercent = 0
}
}
-
- return 1
+ if(newList.length>0){
+ // 更新学生提交后的数据? 作业进度条、平均用时、得分率
+ const list = newList&&newList.filter((item) => item.workdataresultcount > 0) ;
+ getStudentClassWorkData(list,false);
+ }
}
@@ -489,16 +422,27 @@ const getStudentVisible = async () => {
watch(
() => [dataList, toolState.isTaskWin],
() => {
- console.log('=监听到批改窗口打开了===', toolState.isTaskWin)
+ console.log('监听--批改窗口是否打开===', toolState.isTaskWin)
if(!toolState.isTaskWin){
-
- closeDialog();// 开启轮询
+ if(tabActive.value === '待批改'){
+ closeDialog();// 开启轮询
+ }
}
}
)
+
watch(tabActive, (newVal,oldVal)=>{
console.log('newVal',newVal);
getData() // 加载数据
+ if(newVal === '待批改'){
+ // 轮询查询
+ console.log('监听---开启轮询')
+ closeDialog();
+ }else{
+ // 关闭轮询
+ console.log('监听---关闭轮询')
+ clearInterval(pollingST.value);
+ }
})
diff --git a/src/renderer/src/views/classTask/container/classTask/item-dialog-score.vue b/src/renderer/src/views/classTask/container/classTask/item-dialog-score.vue
index e00d892..66b2890 100644
--- a/src/renderer/src/views/classTask/container/classTask/item-dialog-score.vue
+++ b/src/renderer/src/views/classTask/container/classTask/item-dialog-score.vue
@@ -427,7 +427,7 @@ import useUserStore from '@/store/modules/user'
import { ref, reactive } from 'vue'
// import { Plus } from '@element-plus/icons-vue'
import { ElMessageBox, ElMessage } from 'element-plus'
-import { updateClassworkeval, updateClassworkdata, getClassworkdata, updateClassworkevalList } from '@/api/classTask'
+import { updateClassworkeval,updateClasswork, updateClassWorkDataAutoFinish, getClassworkdata, updateClassworkevalList } from '@/api/classTask'
import { getTimeDate } from '@/utils/date'
import ReFilePreview from '@/components/refile-preview/index.vue'
import { quizStrToList } from '@/utils/comm';
@@ -871,6 +871,13 @@ const onSubmit = () => {
})
return
}
+ /** 1、 更新当前作业是否已经批阅完成 */
+ // TODO updateClasswork
+
+
+
+
+ /** 2、 更新每个学生的批阅 */
var formd = {
id: dialogProps.value.studentObj.id, // this.activeClassWork.id;
@@ -878,7 +885,7 @@ const onSubmit = () => {
updatedate: getTimeDate(),// = year+'-'+month+'-'+day+' '+hh+':'+mm;
};
// 更新作业批改状态
- updateClassworkdata(formd).then(res => {
+ updateClassWorkDataAutoFinish(formd).then(res => {
})
// 更新题目批改
diff --git a/src/renderer/src/views/classTask/container/classTask/task-item.vue b/src/renderer/src/views/classTask/container/classTask/task-item.vue
index 50fbf48..484a703 100644
--- a/src/renderer/src/views/classTask/container/classTask/task-item.vue
+++ b/src/renderer/src/views/classTask/container/classTask/task-item.vue
@@ -14,31 +14,40 @@
| 截止时间:{{ item.deaddate }} | {{ tabactive }}
+
+
+
+
+ 已交(
+
+ {{ item.workdataresultcount }}
+ {{ item.workdataresultcount }}
+ /{{ item.workdataresultsum }}
+
+ )
+
+
+
+
+
+
+ 已批阅({{ item.teacherrationgcount}})
+
+
+
+
+
+ {{ item.workdataresultsum }}
+ 练习次数
+
+
+
+ {{ item.teacherrationgcount?item.workdataresultsum - item.teacherrationgcount:item.workdataresultsum }}
+ 引用次数
+
+
- {{ item.workdataresultcount }}
- {{ item.workdataresultcount }}
- /{{ item.workdatacount }}
- 已交
-
-
-
- {{ item.teacherrationgcount?item.workdatacount - item.teacherrationgcount:item.workdatacount }}
- 待批阅
-
-
-
-
-
{{ item.averagetime }}分钟
平均用时
@@ -97,6 +106,11 @@ const props = defineProps({
}
}
}
+ .class-reserv-item-progress {
+ width: 200px;
+ padding: 0 10px;
+ font-size: 14px;
+ }
.class-reserv-item-tool {
margin-left: 10px;
display: flex;
diff --git a/src/renderer/src/views/classTask/container/item-dialog.vue b/src/renderer/src/views/classTask/container/item-dialog.vue
deleted file mode 100644
index 717cb0d..0000000
--- a/src/renderer/src/views/classTask/container/item-dialog.vue
+++ /dev/null
@@ -1,821 +0,0 @@
-
-
-
-
-
- {{ classWorkAnalysis.title }}完成情况
- {{
- classWorkAnalysis.worktype
- }}
-
-
-
-
- 作业批阅
- 逐题讲评
- 训练报告
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 未提交
- {{ scope.row.updatedate }}
-
-
-
-
- {{scope.row.getScore || 0}}
-
-
-
-
-
- 待批阅
-
-
- 完美
- 优秀
- 良好
- 及格
- 不及格
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/renderer/src/views/classTask/container/newTask/taskTypeView.vue b/src/renderer/src/views/classTask/container/newTask/taskTypeView.vue
index 3252c0f..833a403 100644
--- a/src/renderer/src/views/classTask/container/newTask/taskTypeView.vue
+++ b/src/renderer/src/views/classTask/container/newTask/taskTypeView.vue
@@ -238,7 +238,7 @@ import { useRouter } from 'vue-router'
import {listEntpcoursework, listEntpcourseworkNew, getEntpcoursework} from '@/api/education/entpCourseWork'
import { addClassworkReturnId } from '@/api/teaching/classwork'
-import { updateClasswork, listEvaluationclue,readFile, listClassworkeval,delClassworkeval,addClassworkeval,updateClassworkeval } from '@/api/classTask'
+import { updateClasswork, listEvaluationclue, listClassworkeval,delClassworkeval,addClassworkeval,updateClassworkeval } from '@/api/classTask'
import { listEvaluation } from '@/api/subject'
import { listEntpcoursefile } from '@/api/education/entpcoursefile'
import { listKnowledgePoint } from "@/api/knowledge/knowledgePoint";
@@ -250,6 +250,7 @@ import FileUpload from "@/components/FileUpload/index.vue";
import whiteboard from '@/components/whiteboard/whiteboard.vue'
import prevReadMsgDialog from '@/views/classTask/container/newTask/prevReadMsg-Dialog.vue'
import examDetailsDrawer from '@/components/exam-question/examDetailsDrawer.vue'
+import { JYApiListCT, JYApiListOriginYear, JYApiListSO} from "@/utils/examQuestion/jyeoo"
import { useToolState } from '@/store/modules/tool'
import useUserStore from '@/store/modules/user'
@@ -877,7 +878,19 @@ const showExamAnalyseDrawer = (row) => {
-onMounted(() => {
+onMounted(async() => {
+ // 获取当前学科下的试题题型
+ const name = userStore.edustage + userStore.edusubject;
+ const jyCT = await JYApiListCT(proxy, name);
+ if (jyCT.length == 0) {
+ ElMessage.error('获取题型失败!');
+ return;
+ }
+ entpCourseWorkTypeList.value = jyCT;
+ // 获取当前学科下的试题年份
+ entpCourseWorkYearList.value = JYApiListOriginYear();
+ entpCourseWorkGroupList.value = await JYApiListSO(proxy, name);
+
})
watch(() => props.propsformobj.uniquekey, (newVal) => {
diff --git a/src/renderer/src/views/classTask/teachClassTask.vue b/src/renderer/src/views/classTask/teachClassTask.vue
index 2ae3647..fb69948 100644
--- a/src/renderer/src/views/classTask/teachClassTask.vue
+++ b/src/renderer/src/views/classTask/teachClassTask.vue
@@ -677,9 +677,7 @@ const handleClassOverviewOpen = (type) =>{
}
}
})
- const allTeacherRating = allTopic.reduce((acc, cur) => {
- return acc + cur.teacherRating;
- },0)
+ const allTeacherRating = allTopic.reduce((acc, cur) => acc + cur.teacherRating, 0)
rightAnswer > 0?item.scoingRate = (score/allTeacherRating * 100).toFixed(0):item.scoingRate = ''
item.getScore = score
diff --git a/src/renderer/src/views/desktop/container/work-trend.vue b/src/renderer/src/views/desktop/container/work-trend.vue
index d723e5a..38391f5 100644
--- a/src/renderer/src/views/desktop/container/work-trend.vue
+++ b/src/renderer/src/views/desktop/container/work-trend.vue
@@ -14,14 +14,15 @@
{{ item.uniquekey }}
- {{
- getCurrentTime('YYYY-MM-DD HH:mm') > item.deaddate ? '已结束' : '进行中' }}
- {{ item.worktype }}
+
+ 待批改
+ {{ item.worktype }}
{{ item.classcaption }} | 截止时间:{{ item.deaddate }}
-
{{ item.workdataresultcount }} / {{ item.workdatacount }}
+
{{ item.workdataresultcount }} / {{ item.workdataresultsum }}
已交
@@ -52,9 +53,10 @@ const getHomework = async () => {
const { edustage, edusubject } = user
try {
const { rows } = await homeworklist({ edituserid: user.userId, edustage, edusubject, deaddate: getTomorrow(), status: '1', orderby: 'deaddate DESC', pageSize: 500 })
- // 只展示进行中的
- homeworkList.value = rows.filter(item => item.deaddate && item.uniquekey && getCurrentTime('YYYY-MM-DD HH:mm') < item.deaddate) // 当前日期的时分与截止日期进行判断
- // homeworkList.value = rows.filter(item => item.deaddate && item.uniquekey && getTomorrow() <= item.deaddate) //大于今天的才算进行中 弃用
+ // 只展示待批改的
+ //homeworkList.value = rows.filter(item => item.deaddate && item.uniquekey && getCurrentTime('YYYY-MM-DD HH:mm') < item.deaddate) // 当前日期的时分与截止日期进行判断
+ // homeworkList.value = rows.filter(item => item.deaddate && item.uniquekey && getTomorrow() <= item.deaddate) //大于今天的才算待批改 弃用
+ homeworkList.value = rows || [];
homeworkList.value.forEach((item) => {
// 处理任务类型的UI
if (item.worktype == '学习目标定位') {
@@ -72,7 +74,6 @@ const getHomework = async () => {
item.workclass = ''
}
- item.workdatacount = JSON.parse('[' + item.classworkdatastudentids + ']').length
// 如果是习题训练任务,则检查一共有多少道
if (item.entpcourseworklist != '') {
item.entpcourseworklistarray = JSON.parse(
@@ -102,7 +103,8 @@ const onClickItem = (item) => {
}
const tagType = (time) => {
- return getCurrentTime('YYYY-MM-DD HH:mm') > time ? 'info' : 'warning'
+ return 'warning';
+ //return getCurrentTime('YYYY-MM-DD HH:mm') > time ? 'info' : 'warning'
}
diff --git a/src/renderer/src/views/tool/createHomework.js b/src/renderer/src/views/tool/createHomework.js
index dc1a8cf..bb633d8 100644
--- a/src/renderer/src/views/tool/createHomework.js
+++ b/src/renderer/src/views/tool/createHomework.js
@@ -43,6 +43,15 @@ export const createHomework = ({ uniquekey, evalid, data, entpcourseid }) => {
let classWorkList = []
+// 将标签中的双引号增加转义
+let escapeHtmlQuotes = (str) => {
+ // 后端已replace双引号, 故前端不用在处理
+ const regex1 = /\\+/g; // 匹配多个反斜杠
+ let result = str.replace(regex1, '\\');
+ result = str.replace(/(?'); //替换\n而不替换\\n 为 \\n
+ return result;
+}
+
/**
* 获取班级作业
*/
@@ -52,8 +61,8 @@ export const getClassWorkList = async (id) => {
/**
* 2024-10-17 由于 后面截止时间加了 时分,特加判断
- * 1、进行中、以前是以明天判断。现改为传当天的日期,并根据当前日期的时分与截止日期进行判断,
- * 2、已结束、以前默认是以明天判断。现依然以明天为判断,并根据当前日期时分大于截止日期时分判断。
+ * 1、待批改、以前是以明天判断。现改为传当天的日期,并根据当前日期的时分与截止日期进行判断,
+ * 2、已批改、以前默认是以明天判断。现依然以明天为判断,并根据当前日期时分大于截止日期时分判断。
*/
let list = response.rows
@@ -61,7 +70,6 @@ export const getClassWorkList = async (id) => {
for (var i = 0; i < list.length; i++) {
// 初始化部分新增字段值
list[i].workdatalist = []
- list[i].workdatacount = 0 // 人数
list[i].workdatalistVisible = false
list[i].workdatafeedbackcount = 0 // 已交人数
list[i].feedtimelength = 0
@@ -91,19 +99,10 @@ export const getClassWorkList = async (id) => {
} else {
list[i].entpcourseworklistarray = []
}
- // 根据 classworkdatastudentids 初始化判断分配的人数
- if (
- list[i].classworkdatastudentids != '' &&
- list[i].classworkdatastudentids != null &&
- list[i].classworkdatastudentids != 'null'
- ) {
- const stuList = JSON.parse('[' + list[i].classworkdatastudentids + ']')
- list[i].workdatacount = stuList.length
- }
}
- // 显示分配人数(workdatacount)>0 的
+ // 显示分配人数(workdataresultsum)>0 的
if (list && list.length > 0) {
- classWorkList = list && list.filter((item) => item.workdatacount > 0)
+ classWorkList = list && list.filter((item) => item.workdataresultsum > 0)
//TODO: 这里没分页,貌似这个 total 不重要,后续看
} else {
classWorkList = []
@@ -171,18 +170,18 @@ export const getStudentClassWorkData = async () => {
}
}
}
- // 当前这个学习任务,共推送给了几个学生,workdatacount
+ // 当前这个学习任务,共推送给了几个学生,workdataresultsum
if (res.rows[i].classworkid == classWorkList[t].id) {
classWorkList[t].workdatalist.push(res.rows[i])
}
}
- // 计算完成进度 workdatacount人数要大于0
+ // 计算完成进度 workdataresultsum 人数要大于0
if (
classWorkList[t].workdataresultcount > 0 &&
- classWorkList[t].workdatacount > 0
+ classWorkList[t].workdataresultsum > 0
) {
classWorkList[t].finishpercent = parseInt(
- (classWorkList[t].workdataresultcount / classWorkList[t].workdatacount) * 100
+ (classWorkList[t].workdataresultcount / classWorkList[t].workdataresultsum) * 100
)
} else {
classWorkList[t].finishpercent = 0
@@ -211,7 +210,7 @@ export const getStudentClassWorkData = async () => {
var dd =
(classWorkList[t].rightAnswerCount /
(classWorkList[t].entpcourseworklistarray.length *
- classWorkList[t].workdatacount)) *
+ classWorkList[t].workdataresultsum)) *
100
classWorkList[t].scoingRate = dd.toFixed(0) + '%'
} else {