@@ -499,6 +462,7 @@ import { ElMessageBox, ElMessage } from 'element-plus'
import { updateClassworkeval, updateClassworkdata } from '@/api/classTask'
import { getTimeDate } from '@/utils/date'
import ReFilePreview from '@/components/refile-preview/index.vue'
+import { quizStrToList } from '@/utils/comm';
const userStore = useUserStore()
@@ -842,6 +806,47 @@ const acceptParams = (params) => {
analysisScoreOpen.value = true
}
+const formatWorkAnswer = (quItem) => {
+ let format = '';
+ if (!Array.isArray(quItem.workanswerFormat)) {
+ format = quItem.workanswerFormat.replace(/<[^>]+>/g, '')
+ } else {
+ format = quItem.workanswerFormat.map(item => item.replace(/<[^>]+>/g, '')).join('、');
+ }
+ return format;
+}
+// 根据题型处理学生答案
+const formatFeedContent = (stuItem, quItem) => {
+ let format = '';
+
+ if (quItem.workdesc == '' || quItem.workdesc == '[]') {
+ // 非单选题和多选题
+ const arr = stuItem.feedcontent.split('#');
+ return arr.map(item => {
+ if (item == '') {
+ item = '空';
+ }
+ return item;
+ }).join('、');
+ }else {
+ const list = quizStrToList(quItem.workdesc);
+ format = list.map((item,index) =>{
+ if (quItem.worktype == '单选题') {
+ const workdesc = item.replace(/<[^>]*>/g,'');
+ const feedcontent = stuItem.feedcontent.replace(/<[^>]*>/g,'');
+ if(workdesc == feedcontent){
+ return (String.fromCharCode(65+Number(index)))
+ }
+ } else if (quItem.worktype == '多选题') {
+ const arr = stuItem.feedcontent.split(',');
+ return arr.map(item => String.fromCharCode(65+Number(item))).join('');
+ }
+ }).filter(Boolean)[0];
+ }
+
+ return format;
+}
+
// 提交批改评分
const onClassWorkFormScoreSave = () => {
console.log(classWorkFormScore)
diff --git a/src/renderer/src/views/classTask/container/item-dialog.vue b/src/renderer/src/views/classTask/container/item-dialog.vue
index 053a7b5..c5691ab 100644
--- a/src/renderer/src/views/classTask/container/item-dialog.vue
+++ b/src/renderer/src/views/classTask/container/item-dialog.vue
@@ -383,7 +383,7 @@ const getClassWorkStudentList = (rowId) => {
// 默认获取已交的学生列表
tableRadio.list =
classWorkAnalysis.classworkdata &&
- classWorkAnalysis.classworkdata.filter((item) => item.resultcount > 0)
+ classWorkAnalysis.classworkdata.filter((item) => item.finishtimelength != '0')
tableRadio.value = '1'
tableRadio.num0 = classWorkAnalysis.classworkdata.length - tableRadio.list.length
tableRadio.num1 = tableRadio.list.length
@@ -506,12 +506,12 @@ const tableRadioChange = (e) => {
console.log(e,'??????')
console.log("学生列表:", classWorkAnalysis.classworkdata)
if(e=='1'){
- tableRadio.list = classWorkAnalysis.classworkdata.filter(item => item.resultcount > 0)
+ tableRadio.list = classWorkAnalysis.classworkdata.filter(item => item.finishtimelength != '0')
tableRadio.value = '1';
tableRadio.num0 = classWorkAnalysis.classworkdata.length - tableRadio.list.length;
tableRadio.num1 = tableRadio.list.length;
}else if(e=='0'){
- tableRadio.list = classWorkAnalysis.classworkdata.filter(item => item.resultcount == 0)
+ tableRadio.list = classWorkAnalysis.classworkdata.filter(item => item.finishtimelength == '0')
tableRadio.value = '0';
tableRadio.num0 = tableRadio.list.length;
tableRadio.num1 = classWorkAnalysis.classworkdata.length - tableRadio.list.length;
diff --git a/src/renderer/src/views/classTask/container/newTask/taskTypeView.vue b/src/renderer/src/views/classTask/container/newTask/taskTypeView.vue
new file mode 100644
index 0000000..e0f3ac9
--- /dev/null
+++ b/src/renderer/src/views/classTask/container/newTask/taskTypeView.vue
@@ -0,0 +1,454 @@
+
+
+
+
+
+
+
+
+
+ {{ item }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 查找
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ scope.row.entpname }} {{ scope.row.editusername }}
+ {{ scope.row.worktag }}
+
+
+
+
+
+
+ 添加
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
{{ item.worktype }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/renderer/src/views/classTask/newClassTask.vue b/src/renderer/src/views/classTask/newClassTask.vue
new file mode 100644
index 0000000..3bf6214
--- /dev/null
+++ b/src/renderer/src/views/classTask/newClassTask.vue
@@ -0,0 +1,164 @@
+
+
+
+
+
+
+
+
+
+
+ 作业范围
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/renderer/src/views/classTaskAssign/index.vue b/src/renderer/src/views/classTaskAssign/index.vue
new file mode 100644
index 0000000..4c28672
--- /dev/null
+++ b/src/renderer/src/views/classTaskAssign/index.vue
@@ -0,0 +1,242 @@
+
+
+
+
+
+
+
+ 作业设计
+ 作业布置
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/renderer/src/views/desktop/index.vue b/src/renderer/src/views/desktop/index.vue
index 95679c4..e99bd75 100644
--- a/src/renderer/src/views/desktop/index.vue
+++ b/src/renderer/src/views/desktop/index.vue
@@ -45,6 +45,8 @@ import { useRouter } from 'vue-router'
import workTrend from './container/work-trend.vue'
import outLink from '@/utils/linkConfig'
import * as echarts from 'echarts'
+import { useGetClassWork } from '@/hooks/useGetClassWork'
+
const router = useRouter()
const { ipcRenderer } = window.electron || {}
@@ -85,7 +87,7 @@ const menuList = [{
// path: '/prepare'
// },
{
- name: '教学实施',
+ name: '教学实践',
icon: 'icon-jiaoxuefenxi',
path: '/prepare'
},
@@ -105,7 +107,11 @@ const menuList = [{
name: '作业设计',
icon: 'icon-jiaoxuefansi',
isOuter: true,
- path: '/teaching/classtaskassign?titleName=作业布置&&openDialog=newClassTask'
+ path: '/teaching/classtaskassign?titleName=作业布置&openDialog=newClassTask'
+ //path: '/newClassTask'
+ //path: '/classTaskAssign'
+ //isOuter: true,
+ //path: '/teaching/classtaskassign?titleName=作业布置&&openDialog=newClassTask'
},
{
name: '作业布置',
@@ -160,6 +166,15 @@ const clickMenu = ({isOuter, path, disabled}) =>{
if(isOuter){
let configObj = outLink().getBaseData()
let fullPath = configObj.fullPath + path
+ if(path == '/teaching/classtaskassign?titleName=作业布置&openDialog=newClassTask' || path == '/teaching/classtaskassign?titleName=作业布置'){
+ // 头部 教材分析打开外部链接需要当前章节ID
+ const { levelFirstId, levelSecondId } = JSON.parse(localStorage.getItem('unitId'))
+
+ let unitId = levelSecondId ? levelSecondId : levelFirstId
+ fullPath = fullPath + `&unitId=${unitId}`
+
+ console.log(fullPath)
+ }
fullPath = fullPath.replaceAll('//', '/')
// 通知主进程
ipcRenderer.send('openWindow', {
@@ -218,8 +233,21 @@ onMounted(async ()=>{
]
}
chartInstance.setOption(option);
+ // 初始化 获取教材下面的单元 + 章节
+ getSubjectInit();
})
+
+const getSubjectInit = async () => {
+ //查看本地是否有缓存
+ let unitId = localStorage.getItem('unitId')
+ if(unitId){
+ // 有缓存不用管
+ } else{
+ // 没有 就获取 获取教材下面的单元 + 章节
+ useGetClassWork();
+ }
+}
diff --git a/src/renderer/src/views/examReport/index.vue b/src/renderer/src/views/examReport/index.vue
index 8a67c39..8548fa9 100644
--- a/src/renderer/src/views/examReport/index.vue
+++ b/src/renderer/src/views/examReport/index.vue
@@ -260,7 +260,7 @@ onMounted(() => {