This commit is contained in:
小杨 2024-10-23 15:50:17 +08:00
commit 24ce28f2e2
14 changed files with 83 additions and 73 deletions

View File

@ -32,9 +32,9 @@ export const editListItem = (row, courseObj) => {
worktype: '', // 设计中的作业类型 worktype: '', // 设计中的作业类型
quizlist: [], // 设计中的试题列表 quizlist: [], // 设计中的试题列表
chooseWorkLists: [],// 设计中的框架梳理list chooseWorkLists: [],// 设计中的框架梳理list
fileHomeworkList: [],// 设计中的主题作业list fileHomeworkList: [],// 设计中的常规作业list
whiteboardObj: '',// 设计中的创作展示对象 whiteboardObj: '',// 设计中的课堂展示对象
question: '', // 设计中的[创作展示]的问题 question: '', // 设计中的[课堂展示]的问题
}; };
console.log('编辑的行', row); console.log('编辑的行', row);
@ -53,8 +53,8 @@ export const editListItem = (row, courseObj) => {
classtaskObj.worktype= row.worktype; // 设计中的作业类型 classtaskObj.worktype= row.worktype; // 设计中的作业类型
classtaskObj.quizlist= []; // 设计中的试题列表 classtaskObj.quizlist= []; // 设计中的试题列表
classtaskObj.chooseWorkLists = []; //设计中的 框架梳理list classtaskObj.chooseWorkLists = []; //设计中的 框架梳理list
classtaskObj.fileHomeworkList = []; //设计中的 主题作业list classtaskObj.fileHomeworkList = []; //设计中的 常规作业list
classtaskObj.whiteboardObj = ''; //设计中的 创作展示对象 classtaskObj.whiteboardObj = ''; //设计中的 课堂展示对象
if (row.worktype == '框架梳理') { if (row.worktype == '框架梳理') {
@ -96,19 +96,19 @@ export const editListItem = (row, courseObj) => {
} }
}) })
} }
else if (row.worktype == '创作展示') { else if (row.worktype == '课堂展示') {
console.log('row.创作展示', row.workcodes); console.log('row.课堂展示', row.workcodes);
const workcodes = JSON.parse(row.workcodes); const workcodes = JSON.parse(row.workcodes);
classtaskObj.whiteboardObj = JSON.stringify(workcodes.json); classtaskObj.whiteboardObj = JSON.stringify(workcodes.json);
classtaskObj.question = row.worktag; classtaskObj.question = row.worktag;
// console.log('创作展示', classtaskObj); // console.log('课堂展示', classtaskObj);
return resolve(classtaskObj); return resolve(classtaskObj);
} }
else if (row.worktype == '主题作业') { else if (row.worktype == '常规作业') {
if(isJson(row.workcodes)){ if(isJson(row.workcodes)){
classtaskObj.fileHomeworkList = JSON.parse(row.workcodes); classtaskObj.fileHomeworkList = JSON.parse(row.workcodes);
// //
// console.log('主题作业', classtaskObj); // console.log('常规作业', classtaskObj);
return resolve(classtaskObj); return resolve(classtaskObj);
} }
} }

View File

@ -86,11 +86,11 @@ const getHomeWorkList = async () => {
// res.rows[i].workcodesList = JSON.parse(res.rows[i].workcodes); // res.rows[i].workcodesList = JSON.parse(res.rows[i].workcodes);
// } else // } else
// 课标研读 目标设定 教材研读 框架梳理 学科定位 TODO 后续接入在添加 // 课标研读 目标设定 教材研读 框架梳理 学科定位 TODO 后续接入在添加
if (res.rows[i].worktype == '创作展示') { if (res.rows[i].worktype == '课堂展示') {
res.rows[i].workclass = 'primary'; res.rows[i].workclass = 'primary';
} else if (res.rows[i].worktype == '框架梳理') { } else if (res.rows[i].worktype == '框架梳理') {
res.rows[i].workclass = 'warning'; res.rows[i].workclass = 'warning';
} else if (res.rows[i].worktype == '主题作业') { } else if (res.rows[i].worktype == '常规作业') {
res.rows[i].workclass = 'info'; res.rows[i].workclass = 'info';
} else if (res.rows[i].worktype == '习题训练') { } else if (res.rows[i].worktype == '习题训练') {
res.rows[i].workclass = 'danger'; res.rows[i].workclass = 'danger';

View File

@ -36,8 +36,8 @@ export class MsgEnum {
* | MSG_pushQuizOfClassWorkdata2Public | 老师端把选中的学生习题作业推到大屏 | pushQuizOfClassWorkdata2Public | * | MSG_pushQuizOfClassWorkdata2Public | 老师端把选中的学生习题作业推到大屏 | pushQuizOfClassWorkdata2Public |
* | MSG_pushClassWorkdata2Public | 老师端把选中的学生作业推到大屏 | pushClassWorkdata2Public | * | MSG_pushClassWorkdata2Public | 老师端把选中的学生作业推到大屏 | pushClassWorkdata2Public |
* | MSG_shareStudentPresentdata2All | 把某个学生的展示成果数据推给全班所有学生 | shareStudentPresentdata2All | * | MSG_shareStudentPresentdata2All | 把某个学生的展示成果数据推给全班所有学生 | shareStudentPresentdata2All |
* | MSG_pushStudentPresentdata2Public | 老师端创作展示活动把选中的学生展示数据推到大屏 | pushStudentPresentdata2Public | * | MSG_pushStudentPresentdata2Public | 老师端课堂展示活动把选中的学生展示数据推到大屏 | pushStudentPresentdata2Public |
* | MSG_pushClassWorkPresentList2Public | 老师端创作展示活动任务列表推到大屏 | pushClassWorkPresentList2Public | * | MSG_pushClassWorkPresentList2Public | 老师端课堂展示活动任务列表推到大屏 | pushClassWorkPresentList2Public |
* | MSG_activePageType | 课标研读-分页切换 | activePageType | * | MSG_activePageType | 课标研读-分页切换 | activePageType |
* | MSG_slideFlapping | 幻灯片-切换 | slideFlapping | * | MSG_slideFlapping | 幻灯片-切换 | slideFlapping |
* | MSG_anmationclick | 幻灯片-动画切换 | anmationclick | * | MSG_anmationclick | 幻灯片-动画切换 | anmationclick |
@ -46,7 +46,7 @@ export class MsgEnum {
* | MSG_classtaskfeedback | 老师端接收到学生反馈消息-课堂测练中的其他任务 | classtaskfeedback | * | MSG_classtaskfeedback | 老师端接收到学生反馈消息-课堂测练中的其他任务 | classtaskfeedback |
* | MSG_studentfeedback | 老师端学生反馈的消息具体要看其中的feedbackkey类别较繁杂 | studentfeedback | * | MSG_studentfeedback | 老师端学生反馈的消息具体要看其中的feedbackkey类别较繁杂 | studentfeedback |
* | MSG_studentfeedbackcancel | 老师端学生反馈的消息取消如取消学会了取消困惑 | studentfeedbackcancel | * | MSG_studentfeedbackcancel | 老师端学生反馈的消息取消如取消学会了取消困惑 | studentfeedbackcancel |
* | MSG_classshowdata | 学生提交的创作展示数据-要在老师端显示再由老师选择推送到公屏上 | classshowdata | * | MSG_classshowdata | 学生提交的课堂展示数据-要在老师端显示再由老师选择推送到公屏上 | classshowdata |
* | MSG_classWorkOfPresentDataUpdate | 学生在公屏上展示并完善后保存后老师端要更新 | classWorkOfPresentDataUpdate | * | MSG_classWorkOfPresentDataUpdate | 学生在公屏上展示并完善后保存后老师端要更新 | classWorkOfPresentDataUpdate |
* | MSG_classlecturePagesrc | 课堂讲授活动选择不同的内容 | classlecturePagesrc | * | MSG_classlecturePagesrc | 课堂讲授活动选择不同的内容 | classlecturePagesrc |
* | --- | 以下为新定义-消息头 | --- | * | --- | 以下为新定义-消息头 | --- |
@ -66,9 +66,9 @@ export class MsgEnum {
MSG_pushClassWorkdata2Public : 'pushClassWorkdata2Public', MSG_pushClassWorkdata2Public : 'pushClassWorkdata2Public',
/** @desc: 把某个学生的展示成果数据推给全班所有学生 */ /** @desc: 把某个学生的展示成果数据推给全班所有学生 */
MSG_shareStudentPresentdata2All : 'shareStudentPresentdata2All', MSG_shareStudentPresentdata2All : 'shareStudentPresentdata2All',
/** @desc: 老师端:创作展示活动,把选中的学生展示数据,推到大屏 */ /** @desc: 老师端:课堂展示活动,把选中的学生展示数据,推到大屏 */
MSG_pushStudentPresentdata2Public : 'pushStudentPresentdata2Public', MSG_pushStudentPresentdata2Public : 'pushStudentPresentdata2Public',
/** @desc: 老师端:创作展示活动,任务列表,推到大屏 */ /** @desc: 老师端:课堂展示活动,任务列表,推到大屏 */
MSG_pushClassWorkPresentList2Public : 'pushClassWorkPresentList2Public', MSG_pushClassWorkPresentList2Public : 'pushClassWorkPresentList2Public',
/** @desc: 课标研读-分页切换 */ /** @desc: 课标研读-分页切换 */
MSG_activePageType : 'activePageType', MSG_activePageType : 'activePageType',
@ -86,7 +86,7 @@ export class MsgEnum {
MSG_studentfeedback : 'studentfeedback', MSG_studentfeedback : 'studentfeedback',
/** @desc: 老师端:学生反馈的消息取消,如取消学会了,取消困惑 */ /** @desc: 老师端:学生反馈的消息取消,如取消学会了,取消困惑 */
MSG_studentfeedbackcancel : 'studentfeedbackcancel', MSG_studentfeedbackcancel : 'studentfeedbackcancel',
/** @desc: 学生提交的创作展示数据-要在老师端显示,再由老师选择推送到公屏上 */ /** @desc: 学生提交的课堂展示数据-要在老师端显示,再由老师选择推送到公屏上 */
MSG_classshowdata : 'classshowdata', MSG_classshowdata : 'classshowdata',
/** @desc: 学生在公屏上展示并完善后,保存后,老师端要更新 */ /** @desc: 学生在公屏上展示并完善后,保存后,老师端要更新 */
MSG_classWorkOfPresentDataUpdate : 'classWorkOfPresentDataUpdate', MSG_classWorkOfPresentDataUpdate : 'classWorkOfPresentDataUpdate',

View File

@ -291,7 +291,7 @@ const getStudentClassWorkData = async() => {
} }
for (var e = 0; e < evalarray.length; e++) { for (var e = 0; e < evalarray.length; e++) {
if (res.rows[i].worktype == '主题作业') { if (res.rows[i].worktype == '常规作业') {
evalarray[e].feedcontent = escapeHtmlQuotes(evalarray[e].feedcontent).replace( evalarray[e].feedcontent = escapeHtmlQuotes(evalarray[e].feedcontent).replace(
/"(\[.*\])"/g, /"(\[.*\])"/g,
'$1' '$1'

View File

@ -148,9 +148,9 @@
</template> </template>
</div> </div>
</div> </div>
<!-- TODO 创作展示 预览待开发--> <!-- TODO 课堂展示 预览待开发-->
<!-- 主题作业包含多个格式图片略缩图展示点击放大其他附件跳转另外弹窗查看 --> <!-- 常规作业包含多个格式图片略缩图展示点击放大其他附件跳转另外弹窗查看 -->
<div v-if="currentTag=='主题作业'" :style="{'padding': '15px', 'overflow': 'auto'}"> <div v-if="currentTag=='常规作业'" :style="{'padding': '15px', 'overflow': 'auto'}">
<div style="margin: 5px; background-color: white"> <div style="margin: 5px; background-color: white">
<div v-if="workConfObj.teacherFeedContentList.length > 0"> <div v-if="workConfObj.teacherFeedContentList.length > 0">
<div class="image_list"> <div class="image_list">
@ -362,9 +362,9 @@ const currentTag = ref('');// 当前作业类型
const workConfObj = reactive({ const workConfObj = reactive({
quizlist: [], // list quizlist: [], // list
chooseWorkLists: [], // chooseWorkLists: [], //
teacherFeedContentList: [],// teacherFeedContentList: [],//
teachFileList: [], // list teachFileList: [], // list
teachImageList: [],// list teachImageList: [],// list
}); });
// //
@ -440,11 +440,11 @@ const queryPushRecords = (row) => {
// res.rows[i].workcodesList = JSON.parse(res.rows[i].workcodes); // res.rows[i].workcodesList = JSON.parse(res.rows[i].workcodes);
// } else // } else
// TODO // TODO
if (res.rows[i].worktype == '创作展示') { if (res.rows[i].worktype == '课堂展示') {
res.rows[i].workclass = 'primary'; res.rows[i].workclass = 'primary';
} else if (res.rows[i].worktype == '框架梳理') { } else if (res.rows[i].worktype == '框架梳理') {
res.rows[i].workclass = 'warning'; res.rows[i].workclass = 'warning';
} else if (res.rows[i].worktype == '主题作业') { } else if (res.rows[i].worktype == '常规作业') {
res.rows[i].workclass = 'info'; res.rows[i].workclass = 'info';
} else if (res.rows[i].worktype == '习题训练') { } else if (res.rows[i].worktype == '习题训练') {
res.rows[i].workclass = 'danger'; res.rows[i].workclass = 'danger';
@ -686,9 +686,9 @@ const handleWorkTitleEdit = (row, index, type) => {
}) })
} }
//TODO //TODO
if(row.worktype == '主题作业'){ if(row.worktype == '常规作业'){
console.log(row,'主题作业'); console.log(row,'常规作业');
workConfObj.teacherFeedContentList = []; workConfObj.teacherFeedContentList = [];
workConfObj.teachImageList = []; workConfObj.teachImageList = [];
workConfObj.teachFileList = []; workConfObj.teachFileList = [];
@ -795,13 +795,13 @@ const prevRead = (item) => {
proxy.$refs.prevReadMsgDialogRef.openDialog(item); proxy.$refs.prevReadMsgDialogRef.openDialog(item);
} }
/** /**
* 主题作业其他附件预览 * 常规作业其他附件预览
*/ */
const openFile = () => { const openFile = () => {
const obj = { const obj = {
teacherFeedContentList: workConfObj.teacherFeedContentList,// teacherFeedContentList: workConfObj.teacherFeedContentList,//
teachFileList: workConfObj.teachFileList, // list teachFileList: workConfObj.teachFileList, // list
teachImageList: workConfObj.teachImageList,// list teachImageList: workConfObj.teachImageList,// list
} }
proxy.$refs.prevReadImgFileDialogRef.acceptParams(obj); proxy.$refs.prevReadImgFileDialogRef.acceptParams(obj);
} }

View File

@ -136,11 +136,11 @@
</div> </div>
</div> </div>
<!-- 题目内容主题作业创作展示 --> <!-- 题目内容常规作业课堂展示 -->
<div <div
v-if=" v-if="
dialogProps.studentObj.worktype == '主题作业' || dialogProps.studentObj.worktype == '常规作业' ||
dialogProps.studentObj.worktype == '创作展示' || dialogProps.studentObj.worktype == '课堂展示' ||
dialogProps.studentObj.worktype == '框架梳理' dialogProps.studentObj.worktype == '框架梳理'
" "
> >
@ -152,11 +152,11 @@
<span>{{ sIndex + 1 }}{{ stuItem.score ? stuItem.score : 0 }}</span> <span>{{ sIndex + 1 }}{{ stuItem.score ? stuItem.score : 0 }}</span>
</div> </div>
</template> </template>
<!-- 主题作业 --> <!-- 常规作业 -->
<div <div
v-if=" v-if="
dialogProps.studentObj.worktype == '主题作业' || dialogProps.studentObj.worktype == '常规作业' ||
dialogProps.studentObj.worktype == '创作展示' || dialogProps.studentObj.worktype == '课堂展示' ||
dialogProps.studentObj.worktype == '框架梳理' dialogProps.studentObj.worktype == '框架梳理'
" "
> >
@ -210,8 +210,8 @@
<!-- 学生答题展示 --> <!-- 学生答题展示 -->
<div v-if="feedContentList.length > 0"> <div v-if="feedContentList.length > 0">
<div v-if="dialogProps.studentObj.worktype == '主题作业' && stuItem.rightanswer != ''&& stuItem.rightanswer != null"> <div v-if="dialogProps.studentObj.worktype == '常规作业' && stuItem.rightanswer != ''&& stuItem.rightanswer != null">
<!-- 主题作业学生有的会答复 --> <!-- 常规作业学生有的会答复 -->
<p style="padding: 10px 0;text-align: left;">学生答复内容</p> <p style="padding: 10px 0;text-align: left;">学生答复内容</p>
<div style="padding: 0 20px;text-align: left;">{{stuItem.rightanswer}}</div> <div style="padding: 0 20px;text-align: left;">{{stuItem.rightanswer}}</div>
</div> </div>
@ -450,11 +450,11 @@ const dialogProps = ref({
studentQuizAllList: [], //list studentQuizAllList: [], //list
quizlist: [] // list quizlist: [] // list
}) })
//list //list
const feedContentList = ref([]) const feedContentList = ref([])
const imageList = ref([]) const imageList = ref([])
const fileList = ref([]) const fileList = ref([])
// list // list
const teacherFeedContentList = ref([]) const teacherFeedContentList = ref([])
const teachImageList = ref([]) const teachImageList = ref([])
const teachFileList = ref([]) const teachFileList = ref([])
@ -700,9 +700,9 @@ const acceptParams = async (params) => {
}) })
} else { } else {
// //
if (params.studentObj.worktype == '主题作业') { if (params.studentObj.worktype == '常规作业') {
try { try {
// datacontent TODO // datacontent TODO
const res = await getClassworkdata(params.studentObj.id); const res = await getClassworkdata(params.studentObj.id);
if(res.data.datacontent != ''){ if(res.data.datacontent != ''){
const teachWorkFileList = JSON.parse(res.data.datacontent); const teachWorkFileList = JSON.parse(res.data.datacontent);
@ -754,7 +754,7 @@ const acceptParams = async (params) => {
} }
}) })
} else if ( } else if (
params.studentObj.worktype == '创作展示' || params.studentObj.worktype == '课堂展示' ||
params.studentObj.worktype == '框架梳理' params.studentObj.worktype == '框架梳理'
) { ) {
params.studentQuizAllList.forEach((item) => { params.studentQuizAllList.forEach((item) => {
@ -766,7 +766,7 @@ const acceptParams = async (params) => {
classWorkFormScore.teacherremark = item.teacherremark // classWorkFormScore.teacherremark = item.teacherremark //
// rightanswer"https://wzyzoss.eos-chongqing-3.cmecloud.cn/2024/9/5/c5d8e00a93364dd3b975f669afa217f9.png" // rightanswer"https://wzyzoss.eos-chongqing-3.cmecloud.cn/2024/9/5/c5d8e00a93364dd3b975f669afa217f9.png"
// //
console.log(item.rightanswer, '----------创作展示学生答题------------------') console.log(item.rightanswer, '----------课堂展示学生答题------------------')
if (item.rightanswer != '' && item.rightanswer != null) { if (item.rightanswer != '' && item.rightanswer != null) {
if ( if (

View File

@ -59,7 +59,7 @@ const props = defineProps({})
const fileReadopen = ref(false) const fileReadopen = ref(false)
// list // list
const teacherFeedContentList = ref([]) const teacherFeedContentList = ref([])
const teachImageList = ref([]) const teachImageList = ref([])
const teachFileList = ref([]) const teachFileList = ref([])

View File

@ -429,7 +429,7 @@ const getStudentClassWorkDataDetail = (row) => {
// ? wevalres.rows[w].feedcontent.replace(/<[^>]+>/g, '') // ? wevalres.rows[w].feedcontent.replace(/<[^>]+>/g, '')
// : wevalres.rows[w].feedcontent // : wevalres.rows[w].feedcontent
if (classWorkAnalysis.row.worktype == '主题作业') { if (classWorkAnalysis.row.worktype == '常规作业') {
wevalres.rows[w].feedcontent = JSON.parse(wevalres.rows[w].feedcontent) wevalres.rows[w].feedcontent = JSON.parse(wevalres.rows[w].feedcontent)
} }
if (wevalres.rows[w].feedcontent != '') { if (wevalres.rows[w].feedcontent != '') {

View File

@ -18,7 +18,7 @@
<!-- 作业资源 --> <!-- 作业资源 -->
<el-row class="middle"> <el-row class="middle">
<el-col :span="24" style="height: 100%; overflow: hidden;"> <el-col :span="24" style="height: 100%; overflow: hidden;">
<div v-if="classWorkForm.worktype == '创作展示'" style="height: 100%; display: flex; flex-direction: column;"> <div v-if="classWorkForm.worktype == '课堂展示'" style="height: 100%; display: flex; flex-direction: column;">
<div style="flex: 0 0 auto;"> <div style="flex: 0 0 auto;">
<el-form-item label="问题"> <el-form-item label="问题">
<el-input v-model="classWorkForm.question" type="text" placeholder="请输入问题" /> <el-input v-model="classWorkForm.question" type="text" placeholder="请输入问题" />
@ -130,7 +130,7 @@
<!-- 非习题训练常规作业 --> <!-- 非习题训练常规作业 -->
<div v-if="classWorkForm.worktype!='习题训练'"> <div v-if="classWorkForm.worktype!='习题训练'">
<div :style="{ 'overflow': 'auto'}"> <div :style="{ 'overflow': 'auto'}">
<template v-if="classWorkForm.worktype!='主题作业'"> <template v-if="classWorkForm.worktype!='常规作业'">
<template v-for="(item, index) in workResource.teachResourceList" :key="item"> <template v-for="(item, index) in workResource.teachResourceList" :key="item">
<div v-if="item.worktype==classWorkForm.worktype" style="border-bottom: 1px dotted;display: flex;justify-content: space-between;"> <div v-if="item.worktype==classWorkForm.worktype" style="border-bottom: 1px dotted;display: flex;justify-content: space-between;">
<div style="margin-bottom: 5px; padding-left: 15px;display: flex;flex-direction: row;align-items: center;"> <div style="margin-bottom: 5px; padding-left: 15px;display: flex;flex-direction: row;align-items: center;">
@ -152,7 +152,7 @@
</div> </div>
</template> </template>
</template> </template>
<template v-if="classWorkForm.worktype =='主题作业'"> <template v-if="classWorkForm.worktype =='常规作业'">
<div v-loading="fileLoading" class="upload-homework"> <div v-loading="fileLoading" class="upload-homework">
<FileUpload v-model="classWorkForm.fileHomeworkList" :fileSize="800" :fileType="['mp3','mp4','doc','docx','xlsx','xls','pdf','ppt','pptx','jpg','jpeg','gif','png','txt']"/> <FileUpload v-model="classWorkForm.fileHomeworkList" :fileSize="800" :fileType="['mp3','mp4','doc','docx','xlsx','xls','pdf','ppt','pptx','jpg','jpeg','gif','png','txt']"/>
</div> </div>
@ -208,7 +208,7 @@
<!-- 作业说明 --> <!-- 作业说明 -->
<el-row class="bottom"> <el-row class="bottom">
<el-col :span="12"> <el-col :span="12">
<el-form-item v-if="classWorkForm.worktype != '创作展示'" label="作业说明" style="margin: 10px 0;"> <el-form-item v-if="classWorkForm.worktype != '课堂展示'" label="作业说明" style="margin: 10px 0;">
<el-col :span="15" style="padding: 0px"> <el-col :span="15" style="padding: 0px">
<!-- <el-input v-model="classWorkForm.title" type="textarea" :rows="1" placeholder="请输入作业说明"/> --> <!-- <el-input v-model="classWorkForm.title" type="textarea" :rows="1" placeholder="请输入作业说明"/> -->
<el-input v-model="classWorkForm.title" style="width: 400px" placeholder="请输入作业说明"/> <el-input v-model="classWorkForm.title" style="width: 400px" placeholder="请输入作业说明"/>
@ -352,16 +352,16 @@ let classWorkForm = reactive({
quizlist: props.propsformobj.quizlist?cloneDeep(props.propsformobj.quizlist):[], // quizlist: props.propsformobj.quizlist?cloneDeep(props.propsformobj.quizlist):[], //
chooseWorkLists: props.propsformobj.chooseWorkLists?cloneDeep(props.propsformobj.chooseWorkLists):[], // list chooseWorkLists: props.propsformobj.chooseWorkLists?cloneDeep(props.propsformobj.chooseWorkLists):[], // list
fileHomeworkList: props.propsformobj.fileHomeworkList?cloneDeep(props.propsformobj.fileHomeworkList):[], // fileHomeworkList: props.propsformobj.fileHomeworkList?cloneDeep(props.propsformobj.fileHomeworkList):[], //
whiteboardObj: props.propsformobj.whiteboardObj?cloneDeep(props.propsformobj.whiteboardObj):'', // - whiteboardObj: props.propsformobj.whiteboardObj?cloneDeep(props.propsformobj.whiteboardObj):'', // -
question: props.propsformobj.question?cloneDeep(props.propsformobj.question):'', // - question: props.propsformobj.question?cloneDeep(props.propsformobj.question):'', // -
}); // }); //
// --------------------------------------------------- // ---------------------------------------------------
// const listWorkType = ref(['', '', '', '']); // // const listWorkType = ref(['', '', '', '']); //
const listWorkType = ref(['习题训练', '创作展示', '主题作业']); // const listWorkType = ref(['习题训练', '课堂展示', '常规作业']); //
// ------- // -------
const boardLoading = ref(false); const boardLoading = ref(false);
//---------- //----------
const fileLoading = ref(false); // loading const fileLoading = ref(false); // loading
/*** /***
@ -638,7 +638,7 @@ const handleClassWorkSave = async () => {
if (classWorkForm.worktype === "创作展示") { if (classWorkForm.worktype === "课堂展示") {
boardLoading.value = true boardLoading.value = true
let canvasJson = proxy.$refs.boardref.getCanvasJson() let canvasJson = proxy.$refs.boardref.getCanvasJson()
let canvasBase64 = await proxy.$refs.boardref.getCanvasBase64() let canvasBase64 = await proxy.$refs.boardref.getCanvasBase64()
@ -651,7 +651,7 @@ const handleClassWorkSave = async () => {
addClassworkReturnId(cform).then(() => { addClassworkReturnId(cform).then(() => {
ElMessage({ type: 'success', message: '作业设计成功!'}); ElMessage({ type: 'success', message: '作业设计成功!'});
// //
classWorkForm.worktype = "创作展示"; classWorkForm.worktype = "课堂展示";
classWorkForm.uniquekey = props.propsformobj.uniquekey, // classWorkForm.uniquekey = props.propsformobj.uniquekey, //
classWorkForm.title = ""; classWorkForm.title = "";
classWorkForm.question = ""; classWorkForm.question = "";
@ -667,7 +667,7 @@ const handleClassWorkSave = async () => {
boardLoading.value = false boardLoading.value = false
} }
} }
else if(classWorkForm.worktype === "主题作业"){ else if(classWorkForm.worktype === "常规作业"){
fileLoading.value = true fileLoading.value = true
cform.workcodes = JSON.stringify(classWorkForm.fileHomeworkList); cform.workcodes = JSON.stringify(classWorkForm.fileHomeworkList);
cform.entpcourseworklist = JSON.stringify([{'id':-2, 'score': '10'}]); cform.entpcourseworklist = JSON.stringify([{'id':-2, 'score': '10'}]);
@ -675,7 +675,7 @@ const handleClassWorkSave = async () => {
addClassworkReturnId(cform).then(() => { addClassworkReturnId(cform).then(() => {
ElMessage({ type: 'success', message: '作业设计成功!'}); ElMessage({ type: 'success', message: '作业设计成功!'});
// //
classWorkForm.worktype = "主题作业"; classWorkForm.worktype = "常规作业";
classWorkForm.uniquekey = props.propsformobj.uniquekey, // classWorkForm.uniquekey = props.propsformobj.uniquekey, //
classWorkForm.title = ""; classWorkForm.title = "";
classWorkForm.quizlist = [], // classWorkForm.quizlist = [], //
@ -757,7 +757,7 @@ const editWork = async (cform) =>{
ElMessage.error('请先添加作业资源!'); ElMessage.error('请先添加作业资源!');
return; return;
} }
}else if (classWorkForm.worktype == '创作展示' || classWorkForm.worktype == '主题作业') { }else if (classWorkForm.worktype == '课堂展示' || classWorkForm.worktype == '常规作业') {
// //
}else { }else {
@ -842,13 +842,13 @@ const editWork = async (cform) =>{
let res = await updateClassworkeval(uplParams); let res = await updateClassworkeval(uplParams);
} }
} }
else if (classWorkForm.worktype=='创作展示') { else if (classWorkForm.worktype=='课堂展示') {
let canvasJson = proxy.$refs.boardref.getCanvasJson() let canvasJson = proxy.$refs.boardref.getCanvasJson()
let canvasBase64 = await proxy.$refs.boardref.getCanvasBase64() let canvasBase64 = await proxy.$refs.boardref.getCanvasBase64()
cform.workcodes = JSON.stringify({json: canvasJson, base64: canvasBase64}); cform.workcodes = JSON.stringify({json: canvasJson, base64: canvasBase64});
cform.worktag = classWorkForm.question; cform.worktag = classWorkForm.question;
} }
else if (classWorkForm.worktype=='主题作业') { else if (classWorkForm.worktype=='常规作业') {
// 1. (, ) // 1. (, )
cform.workcodes = JSON.stringify(classWorkForm.fileHomeworkList); cform.workcodes = JSON.stringify(classWorkForm.fileHomeworkList);
} }

View File

@ -68,8 +68,8 @@ const classWorkForm = reactive({
quizlist: classtaskObj? JSON.parse(classtaskObj).quizlist : [], // quizlist: classtaskObj? JSON.parse(classtaskObj).quizlist : [], //
chooseWorkLists: classtaskObj? JSON.parse(classtaskObj).chooseWorkLists : [],// list chooseWorkLists: classtaskObj? JSON.parse(classtaskObj).chooseWorkLists : [],// list
fileHomeworkList: classtaskObj? JSON.parse(classtaskObj).fileHomeworkList : [],// list fileHomeworkList: classtaskObj? JSON.parse(classtaskObj).fileHomeworkList : [],// list
whiteboardObj: classtaskObj? JSON.parse(classtaskObj).whiteboardObj : '',// whiteboardObj: classtaskObj? JSON.parse(classtaskObj).whiteboardObj : '',//
question: classtaskObj? JSON.parse(classtaskObj).question : '',// question: classtaskObj? JSON.parse(classtaskObj).question : '',//
}) })

View File

@ -422,7 +422,7 @@ const getStudentClassWorkDataDetail = (row) => {
// ? wevalres.rows[w].feedcontent.replace(/<[^>]+>/g, '') // ? wevalres.rows[w].feedcontent.replace(/<[^>]+>/g, '')
// : wevalres.rows[w].feedcontent // : wevalres.rows[w].feedcontent
if (classWorkAnalysis.row.worktype == '主题作业') { if (classWorkAnalysis.row.worktype == '常规作业') {
wevalres.rows[w].feedcontent = JSON.parse(wevalres.rows[w].feedcontent) wevalres.rows[w].feedcontent = JSON.parse(wevalres.rows[w].feedcontent)
} }
if (wevalres.rows[w].feedcontent != '') { if (wevalres.rows[w].feedcontent != '') {

View File

@ -110,6 +110,10 @@ const curNode = reactive({
data: {} data: {}
}) })
const props = defineProps(['curNode'])
const sendHomework = (row,type) => { const sendHomework = (row,type) => {
if(type == 'item'){ if(type == 'item'){
// //
@ -222,7 +226,8 @@ onMounted(async () => {
entpcourseid.value = route.query.entpcourseid entpcourseid.value = route.query.entpcourseid
lesson.value = route.query.label lesson.value = route.query.label
// mounted // mounted
curNode.data = sessionStore.get('subject.curNode') // curNode.data = sessionStore.get('subject.curNode')
curNode.data = props.curNode
getHomework() getHomework()
getResource() getResource()
}) })

View File

@ -25,7 +25,7 @@
<div class="c-popover" :style="`--top: ${topPos}px;--height:${hPost}px;`" v-show="isVisible"> <div class="c-popover" :style="`--top: ${topPos}px;--height:${hPost}px;`" v-show="isVisible">
<div class="content" v-if="isVisible"> <div class="content" v-if="isVisible">
<slot name="content"> <slot name="content">
<homework v-if="activeObj?.prop === 'resource'" /> <homework v-if="activeObj?.prop === 'resource'" :curNode="curNode" />
<span v-else style="color:red;">{{activeObj}}</span> <span v-else style="color:red;">{{activeObj}}</span>
</slot> </slot>
</div> </div>
@ -35,6 +35,7 @@
</template> </template>
<script setup> <script setup>
import { computed, defineProps, ref, reactive, watchEffect, onMounted } from 'vue' import { computed, defineProps, ref, reactive, watchEffect, onMounted } from 'vue'
import { sessionStore } from '@/utils/store'
import homework from './homework.vue'; import homework from './homework.vue';
// - // -
@ -63,6 +64,8 @@ const topPos = ref(30) // 顶部距离-内容的距离
const hPost = ref(0) // - const hPost = ref(0) // -
const isFold = ref(false) // const isFold = ref(false) //
let posBtnAll = {} // let posBtnAll = {} //
let curNode = null //
// === === // === ===
const list = computed(() => props.data.map((o,i) => { const list = computed(() => props.data.map((o,i) => {
o.style = getStyle(o.style, i) o.style = getStyle(o.style, i)
@ -71,6 +74,8 @@ const list = computed(() => props.data.map((o,i) => {
onMounted(() => { onMounted(() => {
posBtnAll = btnRef.value.getBoundingClientRect() posBtnAll = btnRef.value.getBoundingClientRect()
hPost.value = posBtnAll.height hPost.value = posBtnAll.height
curNode = sessionStore.get('subject.curNode')
}) })
// === === // === ===
// //

View File

@ -11,7 +11,7 @@ export const createHomework = ({ uniquekey, evalid, data, entpcourseid }) =>{
formObj.entpid = usertore.deptId; formObj.entpid = usertore.deptId;
formObj.level = 1; formObj.level = 1;
formObj.parentid = 0; formObj.parentid = 0;
formObj.worktype = '主题作业'; formObj.worktype = '常规作业';
formObj.workkey = ''; formObj.workkey = '';
formObj.worktag = ''; formObj.worktag = '';