diff --git a/src/renderer/src/api/teaching/classwork.js b/src/renderer/src/api/teaching/classwork.js index 57da30d..3173201 100644 --- a/src/renderer/src/api/teaching/classwork.js +++ b/src/renderer/src/api/teaching/classwork.js @@ -42,4 +42,13 @@ export function delClasswork(id) { url: '/education/classwork/' + id, method: 'delete' }) +} + +// 新增classwork +export function addClassworkReturnId(data) { + return request({ + url: '/education/classwork/saveAndReturnId', + method: 'post', + data: data + }) } \ No newline at end of file diff --git a/src/renderer/src/components/choose-textbook/index.vue b/src/renderer/src/components/choose-textbook/index.vue index 69be80f..3c2a18c 100644 --- a/src/renderer/src/components/choose-textbook/index.vue +++ b/src/renderer/src/components/choose-textbook/index.vue @@ -75,6 +75,8 @@ const curBookImg = ref('') const curBookPath = ref('') // 上册 const volumeOne = ref([]) +// +const volumeTwo = ref([]) // 当前节点 const currentNode = reactive({ @@ -90,13 +92,14 @@ const defaultExpandedKeys = ref([]) const refTree = ref(null) -//获取教材下面的单元内容 +//获取教材下面的单元 + 章节 const getSubjectContent = async () => { treeLoading.value = true const params = { edusubject, edustage, - entpcourseedituserid: userId, + // entpcourseedituserid: userId, + itemgroup: 'textbook', pageSize: 500 } @@ -114,7 +117,8 @@ const getSubjectContent = async () => { * 不区分上下册 * 2024/08/20调整 */ - volumeOne.value = data.filter(item => item.level == 1) + // volumeOne.value = data.filter(item => item.level == 1 && item.semester == '上册') + // volumeTwo.value = data.filter(item => item.level == 1 && item.semester == '下册') getTreeData() } @@ -132,7 +136,9 @@ const changeBook = ({ id, itemtitle, avartar, fileurl }) => { const getTreeData = () => { //数据过滤 - let upData = transData(volumeOne.value) + let upData = transData(evaluationList.value) + + if(upData.length){ treeData.value = [...upData] } @@ -222,30 +228,33 @@ const transData = (data) => { let ary = [] data.forEach(item => { let obj = {} + // 根据当前教材ID 过滤出对应的单元、章节 if (item.rootid == curBookId.value) { - obj.label = item.itemtitle - obj.id = item.id - obj.itemtitle = item.itemtitle - obj.edudegree = item.edudegree - obj.edustage = item.edustage - obj.edusubject = item.edusubject - let ary2 = [] - evaluationList.value.forEach(el => { - let obj2 = {} - if (item.id == el.parentid) { - obj2 = { - label: el.itemtitle, - id: el.id, - itemtitle : el.itemtitle, - edudegree : el.edudegree, - edustage : el.edustage, - edusubject : el.edusubject, + if(item.level == 1){ + obj.label = item.itemtitle + obj.id = item.id + obj.itemtitle = item.itemtitle + obj.edudegree = item.edudegree + obj.edustage = item.edustage + obj.edusubject = item.edusubject + let ary2 = [] + evaluationList.value.forEach(el => { + let obj2 = {} + if (item.id == el.parentid) { + obj2 = { + label: el.itemtitle, + id: el.id, + itemtitle : el.itemtitle, + edudegree : el.edudegree, + edustage : el.edustage, + edusubject : el.edusubject, + } + ary2.push(obj2) } - ary2.push(obj2) - } - obj.children = ary2 - }) - ary.push(obj) + obj.children = ary2 + }) + ary.push(obj) + } } }) return ary @@ -254,8 +263,10 @@ const transData = (data) => { //获取教材 const getSubject = async () => { - const { rows } = await listEvaluation({ itemkey: "version", pageSize: 500 }) - subjectList.value = rows.filter(item => item.edustage == edustage && item.edusubject == edusubject && isHaveUnit(item.id)) + const { rows } = await listEvaluation({ itemkey: "version", edusubject, edustage, pageSize: 500 }) + + // subjectList.value = rows.filter(item => item.edustage == edustage && item.edusubject == edusubject) + subjectList.value = rows localStorage.setItem('subjectList', JSON.stringify(subjectList.value)) // 默认第一个 diff --git a/src/renderer/src/components/move-file/index.vue b/src/renderer/src/components/move-file/index.vue index 8e0a0bb..dfa7911 100644 --- a/src/renderer/src/components/move-file/index.vue +++ b/src/renderer/src/components/move-file/index.vue @@ -113,7 +113,8 @@ const getSubjectContent = async () => { const params = { edusubject, edustage, - entpcourseedituserid: userId, + // entpcourseedituserid: userId, + itemgroup: 'textbook', pageSize: 500 } let data; @@ -129,7 +130,7 @@ const getSubjectContent = async () => { * 不区分上下册 * 2024/08/20调整 */ - volumeOne.value = data.filter(item => item.level == 1) + // volumeOne.value = data.filter(item => item.level == 1) getTreeData() } @@ -141,8 +142,8 @@ const getSubject = async () => { subjectList.value = JSON.parse(localStorage.getItem('subjectList')) } else { - const { rows } = await listEvaluation({ itemkey: "version", pageSize: 500 }) - subjectList.value = rows.filter(item => item.edustage == edustage && item.edusubject == edusubject && isHaveUnit(item.id)) + const { rows } = await listEvaluation({ itemkey: "version", edusubject, edustage, pageSize: 500 }) + subjectList.value = rows localStorage.setItem('subjectList', JSON.stringify(subjectList.value)) } @@ -160,7 +161,7 @@ const isHaveUnit = (id) => { const getTreeData = () => { //数据过滤 - let upData = transData(volumeOne.value) + let upData = transData(evaluationList.value) if(upData.length){ treeData.value = [...upData] } @@ -248,26 +249,35 @@ const handleNodeClick = (data, node) => { const transData = (data) => { let ary = [] - data.forEach(item => { let obj = {} - + // 根据当前教材ID 过滤出对应的单元、章节 if (item.rootid == curBookId.value) { - obj.label = item.itemtitle - obj.id = item.id - let ary2 = [] - evaluationList.value.forEach(el => { - let obj2 = {} - if (item.id == el.parentid) { - obj2 = { - label: el.itemtitle, - id: el.id + if(item.level == 1){ + obj.label = item.itemtitle + obj.id = item.id + obj.itemtitle = item.itemtitle + obj.edudegree = item.edudegree + obj.edustage = item.edustage + obj.edusubject = item.edusubject + let ary2 = [] + evaluationList.value.forEach(el => { + let obj2 = {} + if (item.id == el.parentid) { + obj2 = { + label: el.itemtitle, + id: el.id, + itemtitle : el.itemtitle, + edudegree : el.edudegree, + edustage : el.edustage, + edusubject : el.edusubject, + } + ary2.push(obj2) } - ary2.push(obj2) - } - obj.children = ary2 - }) - ary.push(obj) + obj.children = ary2 + }) + ary.push(obj) + } } }) return ary diff --git a/src/renderer/src/views/tool/components/homework.vue b/src/renderer/src/views/tool/components/homework.vue index d6a29b3..f9287cc 100644 --- a/src/renderer/src/views/tool/components/homework.vue +++ b/src/renderer/src/views/tool/components/homework.vue @@ -81,8 +81,8 @@ import { ipcMsgSend, ipcMsgSend2, ipcMsgInvoke } from '@/utils/tool' import { useToolState } from '@/store/modules/tool' import Lesson from './lesson.vue'; import { parseCataByNode } from '@/utils/talkFile' -import outLink from '@/utils/linkConfig' import MsgEnum from '@/plugins/imChat/msgEnum' // 消息枚举 +import { createHomework } from '../createHomework' const route = useRoute(); const usertore = useUserStore().user @@ -129,16 +129,35 @@ const changeChapter = async (data)=>{ getResource() } - // 文件资源打开web AIX 布置作业 -const openFileLink = (item) =>{ - // key 对应的 linkConfig.js 外部链接配置 - let key = 'filehomework' - let configObj = outLink()[key] - ipcMsgSend2('openWindow', { - key, - fullPath: configObj.fullPath + `&fileShowName=${item.fileShowName}&fileFullPath=${item.fileFullPath}`, - cookieData: { ...configObj.data } - }) + // 资源推送 +const openFileLink = async (item) =>{ + /** + * 资源推送 + * 1:先生成作业 + * 2:再进行推送 + */ + + // 根据当前月份日期 生成一个作业编号 + const today = new Date(); + // 获取月份 + const month = String(today.getMonth() + 1).padStart(2, '0'); + // 获取当前日 + const day = String(today.getDate()).padStart(2, '0'); + // 生成一个作业编号 + const uniquekey = `${usertore.edusubject}-${month}${day}-${dataList.value.length + 1}` + + // 章节ID + const querySearch = toolStore.curSubjectNode.querySearch + const evalid = querySearch.levelSecondId ? querySearch.levelSecondId : querySearch.levelFirstId + + // 资源数据 + const data = [{name: item.fileShowName, ulr: item.fileFullPath}] + // 生成作业 + await createHomework({ uniquekey, evalid, data, entpcourseid: entpcourseid.value }) + // 查询作业 + getHomework() + let row = dataList.value.at(-1) + sendHomework(row) } diff --git a/src/renderer/src/views/tool/createHomework.js b/src/renderer/src/views/tool/createHomework.js new file mode 100644 index 0000000..be3006f --- /dev/null +++ b/src/renderer/src/views/tool/createHomework.js @@ -0,0 +1,37 @@ +import useUserStore from '@/store/modules/user' +import { addClassworkReturnId } from '@/api/teaching/classwork' + +export const createHomework = ({ uniquekey, evalid, data, entpcourseid }) =>{ + const usertore = useUserStore().user + + var formObj = {}; + formObj.id = 0; + + formObj.deaddate = ''; + formObj.entpid = usertore.deptId; + formObj.level = 1; + formObj.parentid = 0; + formObj.worktype = '常规作业'; + formObj.workkey = ''; + formObj.worktag = ''; + + formObj.uniquekey = uniquekey; + + formObj.classid = 0; + formObj.classcourseid = 0; + + formObj.entpcourseid = entpcourseid; + + formObj.slideid = 0; + + formObj.workcodes = JSON.stringify(data); + + formObj.edusubject = usertore.edusubject; + formObj.evalid = evalid + + formObj.edustage = usertore.edustage; + formObj.status = ''; + formObj.edituserid = usertore.userId; + formObj.entpcourseworklist = JSON.stringify([{'id':-2, 'score': '10'}]); + return addClassworkReturnId(formObj) +}