From e1c8ab42d925b10d554226f6354f3286d56407b2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E7=99=BD=E4=BA=86=E4=B8=AA=E7=99=BD?= <543593352@qq.com>
Date: Mon, 4 Nov 2024 11:25:58 +0800
Subject: [PATCH 1/5] =?UTF-8?q?=E4=BD=9C=E4=B8=9A=E6=89=B9=E6=94=B9?=
=?UTF-8?q?=EF=BC=9A=E9=9C=80=E6=B1=82=E5=8F=98=E6=9B=B4=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../src/views/classTask/classTask.vue | 66 ++++++++++++-------
.../container/classTask/task-item.vue | 31 +++++----
.../src/views/classTask/teachClassTask.vue | 4 +-
.../views/desktop/container/work-trend.vue | 6 +-
src/renderer/src/views/tool/createHomework.js | 13 +++-
5 files changed, 75 insertions(+), 45 deletions(-)
diff --git a/src/renderer/src/views/classTask/classTask.vue b/src/renderer/src/views/classTask/classTask.vue
index 055fa37..b05159b 100644
--- a/src/renderer/src/views/classTask/classTask.vue
+++ b/src/renderer/src/views/classTask/classTask.vue
@@ -4,7 +4,7 @@
-
+
{
edituserid: userStore.userId, // 老师的id
edustage: userStore.edustage, // 学段
edusubject: userStore.edusubject,//学科
- // deaddate: tabActive.value === '进行中'? getTomorrow() : EndDate.value,// 进行中:明天,已结束:选择的日期 弃用
- deaddate: EndDate.value,// 进行中:明天,已结束:选择的日期
+ // deaddate: tabActive.value === '待批改'? getTomorrow() : EndDate.value,// 待批改:明天,已批改:选择的日期 弃用
+ deaddate: EndDate.value,// 待批改:明天,已批改:选择的日期
status: '1', // 作业状态:1-已发布
orderby: 'deaddate DESC',
pageSize: 100,
@@ -153,15 +153,15 @@ const getClassWorkList = async () => {
/**
* 2024-10-17 由于 后面截止时间加了 时分,特加判断
- * 1、进行中、以前是以明天判断。现改为传当天的日期,并根据当前日期的时分与截止日期进行判断,
- * 2、已结束、以前默认是以明天判断。现依然以明天为判断,并根据当前日期时分大于截止日期时分判断。
+ * 1、待批改、以前是以明天判断。现改为传当天的日期,并根据当前日期的时分与截止日期进行判断,
+ * 2、已批改、以前默认是以明天判断。现依然以明天为判断,并根据当前日期时分大于截止日期时分判断。
*/
let list = [];
- if(tabActive.value === '进行中'){
- // 进行中 当前日期时间 小于 截止 日期时间
- list = response.rows&&response.rows.filter(item => item.deaddate && getCurrentTime('YYYY-MM-DD HH:mm') < item.deaddate); // 进行中
+ 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); // 已结束
+ list = response.rows&&response.rows.filter(item => item.deaddate && getCurrentTime('YYYY-MM-DD HH:mm') > item.deaddate); // 已批改
}
@@ -234,8 +234,8 @@ const getStudentClassWorkData = async() => {
// edituserid: userStore.userId, // 老师的id
// classids: classTaskStore.classListIds.join(','),
// edusubject: userStore.edusubject,//学科
- // deaddate: tabActive.value === '进行中'? getTomorrow() : EndDate.value,// 进行中:明天,已结束:选择的日期
- // deaddate: EndDate.value,// 进行中:明天,已结束:选择的日期
+ // deaddate: tabActive.value === '待批改'? getTomorrow() : EndDate.value,// 待批改:明天,已批改:选择的日期
+ // deaddate: EndDate.value,// 待批改:明天,已批改:选择的日期
// //status: '1', // 作业状态:1-已发布
// orderby: "deaddate DESC",//
// pageSize: 1000,
@@ -318,8 +318,17 @@ const getStudentClassWorkData = async() => {
classWorkList.value[t].finishpercent = parseInt(
(classWorkList.value[t].workdataresultcount / classWorkList.value[t].workdatacount) * 100
)
+ // 计算-已完成批阅数 : 人数-已批阅数
+ // teacherCorrectionProgress 老师已批阅进度条:
+ // workdataresultcount 完成人数
+ // teacherrationgcount 已批阅人数
+ // 已批阅百分比: (人数-已批阅数) / 人数 * 100
+ classWorkList.value[t].teacherCorrectionProgress = parseInt(
+ ((classWorkList.value[t].teacherrationgcount) / classWorkList.value[t].workdataresultcount) * 100
+ )
} else {
classWorkList.value[t].finishpercent = 0
+ classWorkList.value[t].teacherCorrectionProgress = 0
}
// 以下四个参数,都要计算
@@ -379,6 +388,7 @@ const getStudentClassWorkDataPolling = () => {
getStudentVisible()
// 在轮询
pollingST.value = setInterval(() => {
+ console.log('轮询查询学生作业进度')
getStudentVisible()
}, 1000 * 10)
}
@@ -422,8 +432,8 @@ const getStudentVisible = async () => {
edituserid: userStore.userId, // 老师的id
edustage: userStore.edustage,// 学段
edusubject: userStore.edusubject,//学科
- // deaddate: tabActive.value === '进行中'? getTomorrow() : EndDate.value,// 进行中:明天,已结束:选择的日期
- deaddate: EndDate.value,// 进行中:明天,已结束:选择的日期
+ // deaddate: tabActive.value === '待批改'? getTomorrow() : EndDate.value,// 待批改:明天,已批改:选择的日期
+ deaddate: EndDate.value,// 待批改:明天,已批改:选择的日期
status: '1', // 作业状态:1-已发布
// orderby: 'concat(deaddate,uniquekey) DESC',
orderby: 'deaddate DESC',
@@ -432,15 +442,15 @@ const getStudentVisible = async () => {
/**
* 2024-10-17 由于 后面截止时间加了 时分,特加判断
- * 1、进行中、以前是以明天判断。现改为传当天的日期,并根据当前日期的时分与截止日期进行判断,
- * 2、已结束、以前默认是以明天判断。现依然以明天为判断,并根据当前日期时分大于截止日期时分判断。
+ * 1、待批改、以前是以明天判断。现改为传当天的日期,并根据当前日期的时分与截止日期进行判断,
+ * 2、已批改、以前默认是以明天判断。现依然以明天为判断,并根据当前日期时分大于截止日期时分判断。
*/
let list = [];
- if(tabActive.value === '进行中'){
- // 进行中 当前日期时间 小于 截止 日期时间
- list = response.rows&&response.rows.filter(item => item.deaddate && getCurrentTime('YYYY-MM-DD HH:mm') < item.deaddate); // 进行中
+ 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); // 已结束
+ list = response.rows&&response.rows.filter(item => item.deaddate && getCurrentTime('YYYY-MM-DD HH:mm') > item.deaddate); // 已批改
}
const curWorkList = list
@@ -471,6 +481,15 @@ const getStudentVisible = async () => {
}
// 更新批阅数
classWorkList.value[t].teacherrationgcount = curWork.teacherrationgcount
+
+ // 计算-已完成批阅数 : 已批阅数
+ // teacherCorrectionProgress 老师已批阅进度条:
+ // workdataresultcount 完成人数
+ // teacherrationgcount 已批阅人数
+ // 已批阅百分比: (已批阅数) / 人数 * 100
+ classWorkList.value[t].teacherCorrectionProgress = parseInt(
+ ((curWork.teacherrationgcount) / curWork.workdataresultcount) * 100
+ )
} else {
// 学生未完成,但是老师批改了?
if(curWork && curWork.workdataresultcount == 0){
@@ -478,6 +497,7 @@ const getStudentVisible = async () => {
classWorkList.value[t].teacherrationgcount = curWork.teacherrationgcount
}
classWorkList.value[t].finishpercent = 0
+ classWorkList.value[t].teacherCorrectionProgress = 0
}
}
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..965e394 100644
--- a/src/renderer/src/views/classTask/container/classTask/task-item.vue
+++ b/src/renderer/src/views/classTask/container/classTask/task-item.vue
@@ -14,7 +14,18 @@
| 截止时间:{{ item.deaddate }} | {{ tabactive }}
-
+
-->
-
-
{{ item.averagetime }}分钟
平均用时
@@ -97,6 +96,10 @@ const props = defineProps({
}
}
}
+ .class-reserv-item-progress {
+ width: 200px;
+ font-size: 14px;
+ }
.class-reserv-item-tool {
margin-left: 10px;
display: flex;
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..26ca4c8 100644
--- a/src/renderer/src/views/desktop/container/work-trend.vue
+++ b/src/renderer/src/views/desktop/container/work-trend.vue
@@ -15,7 +15,7 @@
{{ item.uniquekey }}
{{
- getCurrentTime('YYYY-MM-DD HH:mm') > item.deaddate ? '已结束' : '进行中' }}
+ getCurrentTime('YYYY-MM-DD HH:mm') > item.deaddate ? '已批改' : '待批改' }}
{{ item.worktype }}
{{ item.classcaption }} | 截止时间:{{ item.deaddate }}
@@ -52,9 +52,9 @@ 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 && getTomorrow() <= item.deaddate) //大于今天的才算待批改 弃用
homeworkList.value.forEach((item) => {
// 处理任务类型的UI
if (item.worktype == '学习目标定位') {
diff --git a/src/renderer/src/views/tool/createHomework.js b/src/renderer/src/views/tool/createHomework.js
index dc1a8cf..f51751c 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
From b07a4e07b9dd4932a7ce6dddbf426bed76616949 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E7=99=BD=E4=BA=86=E4=B8=AA=E7=99=BD?= <543593352@qq.com>
Date: Mon, 4 Nov 2024 15:36:00 +0800
Subject: [PATCH 2/5] =?UTF-8?q?=E4=BD=9C=E4=B8=9A=E6=89=B9=E6=94=B9?=
=?UTF-8?q?=EF=BC=9A=E9=9C=80=E6=B1=82=E6=9B=B4=E6=96=B0=EF=BC=8C=E7=95=8C?=
=?UTF-8?q?=E9=9D=A2=E8=B0=83=E6=95=B4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../src/views/classTask/classTask.vue | 73 +++++++++----------
.../container/classTask/task-item.vue | 49 ++++++++-----
.../views/desktop/container/work-trend.vue | 3 +-
src/renderer/src/views/tool/createHomework.js | 24 ++----
4 files changed, 73 insertions(+), 76 deletions(-)
diff --git a/src/renderer/src/views/classTask/classTask.vue b/src/renderer/src/views/classTask/classTask.vue
index b05159b..e034d45 100644
--- a/src/renderer/src/views/classTask/classTask.vue
+++ b/src/renderer/src/views/classTask/classTask.vue
@@ -168,7 +168,6 @@ const getClassWorkList = async () => {
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
@@ -200,19 +199,10 @@ const getClassWorkList = async () => {
} 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.value = list && list.filter((item) => item.workdatacount > 0)
+ classWorkList.value = list && list.filter((item) => item.workdataresultsum > 0)
//TODO: 这里没分页,貌似这个 total 不重要,后续看
total.value = 0
}else{
@@ -305,29 +295,32 @@ const getStudentClassWorkData = async() => {
}
}
}
- // 当前这个学习任务,共推送给了几个学生,workdatacount
+ // 当前这个学习任务,共推送给了几个学生,workdataresultsum
if (res.rows[i].classworkid == classWorkList.value[t].id) {
classWorkList.value[t].workdatalist.push(res.rows[i])
}
}
- // 计算完成进度 workdatacount人数要大于0
+ // 计算完成进度 workdataresultsum人数要大于0
if (
classWorkList.value[t].workdataresultcount > 0 &&
- classWorkList.value[t].workdatacount > 0
+ classWorkList.value[t].workdataresultsum > 0
) {
classWorkList.value[t].finishpercent = parseInt(
- (classWorkList.value[t].workdataresultcount / classWorkList.value[t].workdatacount) * 100
- )
- // 计算-已完成批阅数 : 人数-已批阅数
- // teacherCorrectionProgress 老师已批阅进度条:
- // workdataresultcount 完成人数
- // teacherrationgcount 已批阅人数
- // 已批阅百分比: (人数-已批阅数) / 人数 * 100
- classWorkList.value[t].teacherCorrectionProgress = parseInt(
- ((classWorkList.value[t].teacherrationgcount) / classWorkList.value[t].workdataresultcount) * 100
+ (classWorkList.value[t].workdataresultcount / classWorkList.value[t].workdataresultsum) * 100
)
} else {
classWorkList.value[t].finishpercent = 0
+ }
+
+ /** 计算 已批阅进度 */
+ // workdataresultsum 人数 teacherrationgcount 已批阅人数
+ // 已批阅百分比: (人数-已批阅数) / 人数 * 100
+ if (classWorkList.value[t].workdataresultsum > 0) {
+ // teacherCorrectionProgress 老师已批阅进度条:
+ classWorkList.value[t].teacherCorrectionProgress = parseInt(
+ ((classWorkList.value[t].teacherrationgcount) / classWorkList.value[t].workdataresultsum) * 100
+ )
+ } else {
classWorkList.value[t].teacherCorrectionProgress = 0
}
@@ -352,7 +345,7 @@ const getStudentClassWorkData = async() => {
var dd =
(classWorkList.value[t].rightAnswerCount /
(classWorkList.value[t].entpcourseworklistarray.length *
- classWorkList.value[t].workdatacount)) *
+ classWorkList.value[t].workdataresultsum)) *
100
classWorkList.value[t].scoingRate = dd.toFixed(0) + '%'
} else {
@@ -466,12 +459,12 @@ const getStudentVisible = async () => {
// }
// 确保当前拿到的任务与页面中存在的任务能一对一(避免因删除其他操作而删除作业任务导致两个数组的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) {
+ // workdataresultcount 完成人数 workdataresultsum人数要大于0
+ if (curWork && curWork.workdataresultcount > 0 && classWorkList.value[t].workdataresultsum > 0) {
classWorkList.value[t].workdataresultcount = curWork.workdataresultcount
// 桌面端貌似不需要进度条了?
classWorkList.value[t].finishpercent = parseInt(
- (classWorkList.value[t].workdataresultcount / classWorkList.value[t].workdatacount) * 100
+ (classWorkList.value[t].workdataresultcount / classWorkList.value[t].workdataresultsum) * 100
)
// 计算参与学习任务的平均用时
if (classWorkList.value[t].workdatafeedbackcount > 0) {
@@ -479,17 +472,7 @@ const getStudentVisible = async () => {
} else {
classWorkList.value[t].averagetime = 0
}
- // 更新批阅数
- classWorkList.value[t].teacherrationgcount = curWork.teacherrationgcount
- // 计算-已完成批阅数 : 已批阅数
- // teacherCorrectionProgress 老师已批阅进度条:
- // workdataresultcount 完成人数
- // teacherrationgcount 已批阅人数
- // 已批阅百分比: (已批阅数) / 人数 * 100
- classWorkList.value[t].teacherCorrectionProgress = parseInt(
- ((curWork.teacherrationgcount) / curWork.workdataresultcount) * 100
- )
} else {
// 学生未完成,但是老师批改了?
if(curWork && curWork.workdataresultcount == 0){
@@ -497,6 +480,20 @@ const getStudentVisible = async () => {
classWorkList.value[t].teacherrationgcount = curWork.teacherrationgcount
}
classWorkList.value[t].finishpercent = 0
+ }
+
+ /** 计算 已批阅进度 */
+ // workdataresultsum 人数 teacherrationgcount 已批阅人数
+ // 已批阅百分比: (人数-已批阅数) / 人数 * 100
+ if (curWork && curWork.workdataresultsum > 0) {
+ // 更新批阅数
+ classWorkList.value[t].teacherrationgcount = curWork.teacherrationgcount
+
+ // teacherCorrectionProgress 老师已批阅进度条:
+ classWorkList.value[t].teacherCorrectionProgress = parseInt(
+ ((curWork.teacherrationgcount) / curWork.workdataresultsum) * 100
+ )
+ } else {
classWorkList.value[t].teacherCorrectionProgress = 0
}
}
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 965e394..f5625f6 100644
--- a/src/renderer/src/views/classTask/container/classTask/task-item.vue
+++ b/src/renderer/src/views/classTask/container/classTask/task-item.vue
@@ -15,27 +15,37 @@
-
-
- 已交
-
-
-
-
- 已批阅
-
-
-
+
+
+
+
+ 已批阅({{ item.teacherrationgcount}})
+
+
+
+
+
+ {{ item.workdataresultsum }}
+ 练习次数
+
+
+
+ {{ item.teacherrationgcount?item.workdataresultsum - item.teacherrationgcount:item.workdataresultsum }}
+ 引用次数
+
+
-
{{ item.workdataresultcount }} / {{ item.workdatacount }}
+
{{ item.workdataresultcount }} / {{ item.workdataresultsum }}
已交
@@ -72,7 +72,6 @@ const getHomework = async () => {
item.workclass = ''
}
- item.workdatacount = JSON.parse('[' + item.classworkdatastudentids + ']').length
// 如果是习题训练任务,则检查一共有多少道
if (item.entpcourseworklist != '') {
item.entpcourseworklistarray = JSON.parse(
diff --git a/src/renderer/src/views/tool/createHomework.js b/src/renderer/src/views/tool/createHomework.js
index f51751c..bb633d8 100644
--- a/src/renderer/src/views/tool/createHomework.js
+++ b/src/renderer/src/views/tool/createHomework.js
@@ -70,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
@@ -100,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 = []
@@ -180,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
@@ -220,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 {
From 033c0a3b19d0a75719e75a06014ef4412456d2e5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E7=99=BD=E4=BA=86=E4=B8=AA=E7=99=BD?= <543593352@qq.com>
Date: Mon, 4 Nov 2024 17:31:30 +0800
Subject: [PATCH 3/5] =?UTF-8?q?=E4=BD=9C=E4=B8=9A=E6=89=B9=E9=98=85?=
=?UTF-8?q?=EF=BC=9A=E5=BE=85=E7=BB=A7=E7=BB=AD=E5=AE=8C=E5=96=84?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/renderer/src/api/classTask/index.js | 77 ++++++++++---------
src/renderer/src/utils/date.js | 16 ++++
.../src/views/classTask/classTask.vue | 61 +++++++++++----
.../container/classTask/item-dialog-score.vue | 11 ++-
.../container/classTask/task-item.vue | 2 +-
5 files changed, 115 insertions(+), 52 deletions(-)
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/utils/date.js b/src/renderer/src/utils/date.js
index d967f24..b66f892 100644
--- a/src/renderer/src/utils/date.js
+++ b/src/renderer/src/utils/date.js
@@ -167,3 +167,19 @@ export function getTomorrow() {
return tomorrow;
}
+
+/**
+ * date() z转为日期格式
+ * @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');
+ // const hours = now.getHours().toString().padStart(2, '0');
+ // const minutes = now.getMinutes().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 e034d45..736450b 100644
--- a/src/renderer/src/views/classTask/classTask.vue
+++ b/src/renderer/src/views/classTask/classTask.vue
@@ -19,6 +19,16 @@
/>
+
+
+
@@ -63,7 +73,7 @@ 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 { getCurrentTime, getDateFormatDate } from '@/utils/date'
import useUserStore from '@/store/modules/user'
import useClassTaskStore from "@/store/modules/classTask";
import {createWindow} from '@/utils/tool'
@@ -81,6 +91,16 @@ const tabActive = ref('待批改')
const dataList = ref([])
const EndDate = ref(getCurrentTime('YYYY-MM-DD'))
+const startEndDate = ref([
+ new Date(2024, 9, 1, 0, 0, 0),
+ new Date(2024, 11, 1, 23, 59, 59),
+])
+const defaultTime = ref<[Date, Date]>([
+ new Date(2024, 9, 1, 0, 0, 0),
+ new Date(2024, 11, 1, 23, 59, 59),
+])
+console.log(new Date(2000, 1, 1, 0, 0, 0),'-------------------' )
+
// 所有班级作业列表
const classWorkList = ref([])
const total = ref(0)
@@ -110,6 +130,14 @@ const changeEndDate = (val) => {
console.log('截止日期改变', val)
getData() // 加载数据
}
+const changeStartEndDate = (val) => {
+ console.log('启止日期改变', val)
+ console.log('startEndDate', startEndDate.value)
+ console.log('startEndDate-0', getDateFormatDate(startEndDate.value[0]))
+ console.log('startEndDate-1', getDateFormatDate(startEndDate.value[1]))
+
+ getData() // 加载数据
+}
// 获取数据
const getData = async () => {
@@ -145,8 +173,9 @@ const getClassWorkList = async () => {
edustage: userStore.edustage, // 学段
edusubject: userStore.edusubject,//学科
// deaddate: tabActive.value === '待批改'? getTomorrow() : EndDate.value,// 待批改:明天,已批改:选择的日期 弃用
- deaddate: EndDate.value,// 待批改:明天,已批改:选择的日期
- status: '1', // 作业状态:1-已发布
+ 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,
})
@@ -156,15 +185,15 @@ const getClassWorkList = async () => {
* 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 = [];
+ // 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 = []
@@ -226,7 +255,9 @@ const getStudentClassWorkData = async() => {
// edusubject: userStore.edusubject,//学科
// deaddate: tabActive.value === '待批改'? getTomorrow() : EndDate.value,// 待批改:明天,已批改:选择的日期
// deaddate: EndDate.value,// 待批改:明天,已批改:选择的日期
- // //status: '1', // 作业状态:1-已发布
+ // startdate: tabActive.value === '待批改'? '' : getDateFormatDate(startEndDate.value[0]),
+ // deaddate:tabActive.value === '待批改'? '' : getDateFormatDate(startEndDate.value[1]),
+ // //status: tabActive.value === '待批改'? '1' : '2', // 作业状态:1-已发布
// orderby: "deaddate DESC",//
// pageSize: 1000,
// })
@@ -426,8 +457,10 @@ const getStudentVisible = async () => {
edustage: userStore.edustage,// 学段
edusubject: userStore.edusubject,//学科
// deaddate: tabActive.value === '待批改'? getTomorrow() : EndDate.value,// 待批改:明天,已批改:选择的日期
- deaddate: EndDate.value,// 待批改:明天,已批改:选择的日期
- status: '1', // 作业状态:1-已发布
+ // deaddate: EndDate.value,// 待批改:明天,已批改:选择的日期
+ startdate: tabActive.value === '待批改'? '' : getDateFormatDate(startEndDate.value[0]),
+ deaddate: tabActive.value === '待批改'? '' : getDateFormatDate(startEndDate.value[1]),
+ status: tabActive.value === '待批改'? '1' : '2', // 作业状态:1-已发布
// orderby: 'concat(deaddate,uniquekey) DESC',
orderby: 'deaddate DESC',
pageSize: 100
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 f5625f6..484a703 100644
--- a/src/renderer/src/views/classTask/container/classTask/task-item.vue
+++ b/src/renderer/src/views/classTask/container/classTask/task-item.vue
@@ -35,7 +35,7 @@
-
+
{{ item.workdataresultsum }}
练习次数
From 2407e66e6693731dfc79e54cdb9139045aa430dd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E7=99=BD=E4=BA=86=E4=B8=AA=E7=99=BD?= <543593352@qq.com>
Date: Tue, 5 Nov 2024 11:12:14 +0800
Subject: [PATCH 4/5] =?UTF-8?q?=E4=BD=9C=E4=B8=9A=E6=89=B9=E6=94=B9?=
=?UTF-8?q?=EF=BC=9A=E5=B7=B2=E6=89=B9=E6=94=B9=E6=97=A5=E6=9C=9F=E6=9B=B4?=
=?UTF-8?q?=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/renderer/src/utils/date.js | 48 +++++++++++++++++--
.../src/views/classTask/classTask.vue | 22 ++++-----
2 files changed, 54 insertions(+), 16 deletions(-)
diff --git a/src/renderer/src/utils/date.js b/src/renderer/src/utils/date.js
index b66f892..b411c49 100644
--- a/src/renderer/src/utils/date.js
+++ b/src/renderer/src/utils/date.js
@@ -167,9 +167,53 @@ 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;
+ }
+}
+
/**
- * date() z转为日期格式
+ * Wed Oct 02 2024 08:00:00 GMT+0800 (中国标准时间) 转为日期格式: YYYY-MM-DD
+ *
* @param {*} format
* @returns
*/
@@ -178,8 +222,6 @@ export const getDateFormatDate = (newDate)=> {
const year = now.getFullYear();
const month = (now.getMonth() + 1).toString().padStart(2, '0');
const day = now.getDate().toString().padStart(2, '0');
- // const hours = now.getHours().toString().padStart(2, '0');
- // const minutes = now.getMinutes().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 736450b..50a7f39 100644
--- a/src/renderer/src/views/classTask/classTask.vue
+++ b/src/renderer/src/views/classTask/classTask.vue
@@ -73,7 +73,7 @@ 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, getDateFormatDate } from '@/utils/date'
+import { getCurrentTime, getDateFormatDate, getTheOtherDay, getTheOtheNextDay } from '@/utils/date'
import useUserStore from '@/store/modules/user'
import useClassTaskStore from "@/store/modules/classTask";
import {createWindow} from '@/utils/tool'
@@ -90,16 +90,16 @@ const tabOptions = ref(['待批改', '已批改'])
const tabActive = ref('待批改')
const dataList = ref([])
const EndDate = ref(getCurrentTime('YYYY-MM-DD'))
-
+// 默认起止时间:当前日期前2天后3天;默认查询一周的数据
const startEndDate = ref([
- new Date(2024, 9, 1, 0, 0, 0),
- new Date(2024, 11, 1, 23, 59, 59),
+ getTheOtherDay(3),
+ getTheOtheNextDay(3),
])
const defaultTime = ref<[Date, Date]>([
- new Date(2024, 9, 1, 0, 0, 0),
- new Date(2024, 11, 1, 23, 59, 59),
+ getTheOtherDay(3),
+ getTheOtheNextDay(3),
])
-console.log(new Date(2000, 1, 1, 0, 0, 0),'-------------------' )
+
// 所有班级作业列表
const classWorkList = ref([])
@@ -131,11 +131,7 @@ const changeEndDate = (val) => {
getData() // 加载数据
}
const changeStartEndDate = (val) => {
- console.log('启止日期改变', val)
- console.log('startEndDate', startEndDate.value)
- console.log('startEndDate-0', getDateFormatDate(startEndDate.value[0]))
- console.log('startEndDate-1', getDateFormatDate(startEndDate.value[1]))
-
+ console.log('起止日期改变', val)
getData() // 加载数据
}
@@ -180,7 +176,7 @@ const getClassWorkList = async () => {
pageSize: 100,
})
- /**
+ /** 2024-11-02 需求更改;弃用
* 2024-10-17 由于 后面截止时间加了 时分,特加判断
* 1、待批改、以前是以明天判断。现改为传当天的日期,并根据当前日期的时分与截止日期进行判断,
* 2、已批改、以前默认是以明天判断。现依然以明天为判断,并根据当前日期时分大于截止日期时分判断。
From 1cc0bf965e8d7cd2fde8e2609aa6f3372ced1eff Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E7=99=BD=E4=BA=86=E4=B8=AA=E7=99=BD?= <543593352@qq.com>
Date: Tue, 5 Nov 2024 11:15:06 +0800
Subject: [PATCH 5/5] 1
---
.../src/views/classTask/classTask.vue | 21 +------------------
1 file changed, 1 insertion(+), 20 deletions(-)
diff --git a/src/renderer/src/views/classTask/classTask.vue b/src/renderer/src/views/classTask/classTask.vue
index 50a7f39..7b28e7c 100644
--- a/src/renderer/src/views/classTask/classTask.vue
+++ b/src/renderer/src/views/classTask/classTask.vue
@@ -5,20 +5,6 @@
-
{
const disabledDate = (time) => {
return time.getTime() > Date.now()
}
-// 截止日期改变
-const changeEndDate = (val) => {
- console.log('截止日期改变', val)
- getData() // 加载数据
-}
+
const changeStartEndDate = (val) => {
console.log('起止日期改变', val)
getData() // 加载数据