diff --git a/src/renderer/src/store/modules/classTask.js b/src/renderer/src/store/modules/classTask.js index fc64a44..5093052 100644 --- a/src/renderer/src/store/modules/classTask.js +++ b/src/renderer/src/store/modules/classTask.js @@ -2,6 +2,8 @@ import { defineStore } from 'pinia' import { } from '@/api/classTask/index.js' import { listClassmain } from '@/api/classManage/index' import { JYApiListCT, JYApiListOriginYear, JYApiListSO} from "@/utils/examQuestion/jyeoo" +import { listEvaluation } from '@/api/subject' +import { getBindlist, listKnowlegepointFormat } from '@/api/education/knowledgePoint' const useClassTaskStore = defineStore('classTask',{ state: () => ({ @@ -38,6 +40,7 @@ const useClassTaskStore = defineStore('classTask',{ {label: '2021', value: '2021'}, {label: '2020', value: '2020'}, ], // 习题查询条件 - 年份 + entpCourseWorkPointList: [], // 习题查询条件 - 知识点 }), actions: { listClassmain(params) { @@ -69,6 +72,36 @@ const useClassTaskStore = defineStore('classTask',{ console.error('更新第三方题源+题型err:', error); }); }, + + // 根据学科和学段获取知识点 + initJYPoint(params) { + /** + * 格式化知识点: 分两种情况 + * 1. 语文/英语: 获取学科下的所有知识点(该学科对应无章节与知识点绑定, 故只获取全知识点) + * 2. 其他: 获取当前章节下的所有知识点 + */ + this.entpCourseWorkPointList = []; + let id = params.levelSecondId!='' ? params.levelSecondId : params.levelFirstId; + if( params.edusubject == '语文' || params.edusubject == '英语'){ + id = params.textbookId; + listEvaluation({ edusubject: params.edusubject, edustage: params.edustage, itemkey: "subject", pageSize: 10 }).then((res => { + id = res.rows[0]?.id; + if (id) { + listKnowlegepointFormat({evalId: id, pageNum: 1, pageSize: 5000,}).then(res => { + this.entpCourseWorkPointList = formatKnowledgePoint(res.rows); + console.log('1.entpCourseWorkPointList->', this.entpCourseWorkPointList); + }); + } + })) + }else{ + getBindlist({ eid: id }).then(res => { + if (res.data && res.data.length > 0) { + this.entpCourseWorkPointList = res.data; + console.log('2.entpCourseWorkPointList->', this.entpCourseWorkPointList); + } + }) + } + }, }, persist: true }) @@ -108,4 +141,21 @@ const getJYCT = (params) => { reject(error) }) }) -} \ No newline at end of file +} + +/** + * @desc: 遍历原知识点数据, 将title字段转为knowTitle以供knowledgePointProps进行tree的格式转换显示 + * @return: {*} + * @param {*} list + */ +const formatKnowledgePoint = (list) => { + list.forEach(item => { + if (item.title && item.title != '') { + item.knowTitle = item.title; + } + if (item.children && Array.isArray(item.children)) { + formatKnowledgePoint(item.children); + } + }); + return list; +}; \ No newline at end of file diff --git a/src/renderer/src/views/classTask/newClassTaskAssign/myQuestion/index.vue b/src/renderer/src/views/classTask/newClassTaskAssign/myQuestion/index.vue index f091ce7..0751b77 100644 --- a/src/renderer/src/views/classTask/newClassTaskAssign/myQuestion/index.vue +++ b/src/renderer/src/views/classTask/newClassTaskAssign/myQuestion/index.vue @@ -17,6 +17,13 @@ + + 添加习题 + + + + + @@ -24,9 +31,6 @@ - - - 查找 - - 添加习题 -
diff --git a/src/renderer/src/views/classTask/newClassTaskAssign/questionUpload/quesItem/index.vue b/src/renderer/src/views/classTask/newClassTaskAssign/questionUpload/quesItem/index.vue index 7342773..1bf797f 100644 --- a/src/renderer/src/views/classTask/newClassTaskAssign/questionUpload/quesItem/index.vue +++ b/src/renderer/src/views/classTask/newClassTaskAssign/questionUpload/quesItem/index.vue @@ -50,7 +50,7 @@ { // 更新表单[知识点]回显 - if (initKonwPointFlagByUpdateForm.value) { - // 避免重复调用 - initKonwPointFlagByUpdateForm.value = false; + // if (initKonwPointFlagByUpdateForm.value) { + // // 避免重复调用 + // initKonwPointFlagByUpdateForm.value = false; - lessionid.value = props.bookobj.levelSecondId? props.bookobj.levelSecondId : props.bookobj.levelFirstId; - console.log('lessionid', lessionid.value); - // 拿到当前章节下得所有知识点 - if( props.bookobj.node.edusubject == '语文' || props.bookobj.node.edusubject == '英语' ){ - const res = await listEvaluation({ edusubject: props.bookobj.node.edusubject, edustage: props.bookobj.node.edustage, itemkey: "subject", pageSize: 10 }); - const id = res.rows[0]?.id; - if (id) { - const res = await listKnowlegepointFormat({evalId: id, pageNum: 1, pageSize: 5000,}); - curKnowledgePointList.value = updateKnowledgePoint(res.rows); - //console.log('updateKnowledgePoint->', res.rows); - } - } else { - const res = await getBindlist({ eid: lessionid.value }) - if (!res.data || res.data.length < 1) { - ElMessage.warning('当前章节下未绑定知识点,暂不更新该试题知识点!'); - curKnowledgePointList.value = []; - } - else { - curKnowledgePointList.value = res.data; - } - } - } + // lessionid.value = props.bookobj.levelSecondId? props.bookobj.levelSecondId : props.bookobj.levelFirstId; + // console.log('lessionid', lessionid.value); + // // 拿到当前章节下得所有知识点 + // if( props.bookobj.node.edusubject == '语文' || props.bookobj.node.edusubject == '英语' ){ + // const res = await listEvaluation({ edusubject: props.bookobj.node.edusubject, edustage: props.bookobj.node.edustage, itemkey: "subject", pageSize: 10 }); + // const id = res.rows[0]?.id; + // if (id) { + // const res = await listKnowlegepointFormat({evalId: id, pageNum: 1, pageSize: 5000,}); + // curKnowledgePointList.value = formatKnowledgePoint(res.rows); + // console.log('updateKnowledgePoint->', curKnowledgePointList.value); + // } + // } else { + // const res = await getBindlist({ eid: lessionid.value }) + // if (!res.data || res.data.length < 1) { + // ElMessage.warning('当前章节下未绑定知识点,暂不更新该试题知识点!'); + // curKnowledgePointList.value = []; + // } + // else { + // curKnowledgePointList.value = res.data; + // } + // } + // } //item.evalnodeid = '3772b,374112,374233'; let knowledgePointIdArr = []; const pointArr = item.evalnodeid.split(','); - if (curKnowledgePointList.value.length > 0 && pointArr.length > 0) { + if (entpCourseWorkPointList.length > 0 && pointArr.length > 0) { pointArr.forEach(element => { element = element.trim(); let point = []; - if (getCurKnowledgePointToForm(point, element, curKnowledgePointList.value)) { + if (getCurKnowledgePointToForm(point, element, entpCourseWorkPointList)) { point = point.reverse(); knowledgePointIdArr.push(point); } @@ -1747,33 +1748,33 @@ watch([ // props.bookobj.levelSecondId? props.bookobj.levelSecondId : props.bookobj.levelFirstId lessionid.value = props.bookobj.levelSecondId!='' ? props.bookobj.levelSecondId : props.bookobj.levelFirstId; - /** - * 格式化知识点: 分两种情况 - * 1. 语文/英语: 获取学科下的所有知识点(该学科对应无章节与知识点绑定, 故只获取全知识点) - * 2. 其他: 获取当前章节下的所有知识点 - */ - let id = lessionid.value; - if( props.bookobj.node.edusubject == '语文' || props.bookobj.node.edusubject == '英语'){ - id = props.bookobj.node.rootid; - const res = await listEvaluation({ edusubject: props.bookobj.node.edusubject, edustage: props.bookobj.node.edustage, itemkey: "subject", pageSize: 10 }); - id = res.rows[0]?.id; - if (id) { - listKnowlegepointFormat({evalId: id, pageNum: 1, pageSize: 5000,}).then(res => { - //console.log('listKnowlegepointFormat->', res.rows); - curKnowledgePointList.value = formatKnowledgePoint(res.rows); - }); - } - }else{ - getBindlist({ eid: id }).then(res => { - if (!res.data || res.data.length < 1) { - ElMessage.warning('当前章节下未绑定知识点,暂不更新该试题知识点!'); - curKnowledgePointList.value = []; - } - else { - curKnowledgePointList.value = res.data; - } - }) - } + // /** + // * 格式化知识点: 分两种情况 + // * 1. 语文/英语: 获取学科下的所有知识点(该学科对应无章节与知识点绑定, 故只获取全知识点) + // * 2. 其他: 获取当前章节下的所有知识点 + // */ + // let id = lessionid.value; + // if( props.bookobj.node.edusubject == '语文' || props.bookobj.node.edusubject == '英语'){ + // id = props.bookobj.node.rootid; + // const res = await listEvaluation({ edusubject: props.bookobj.node.edusubject, edustage: props.bookobj.node.edustage, itemkey: "subject", pageSize: 10 }); + // id = res.rows[0]?.id; + // if (id) { + // listKnowlegepointFormat({evalId: id, pageNum: 1, pageSize: 5000,}).then(res => { + // //console.log('listKnowlegepointFormat->', res.rows); + // curKnowledgePointList.value = formatKnowledgePoint(res.rows); + // }); + // } + // }else{ + // getBindlist({ eid: id }).then(res => { + // if (!res.data || res.data.length < 1) { + // ElMessage.warning('当前章节下未绑定知识点,暂不更新该试题知识点!'); + // curKnowledgePointList.value = []; + // } + // else { + // curKnowledgePointList.value = res.data; + // } + // }) + // } }) diff --git a/src/renderer/src/views/classTask/newClassTaskAssign/searchQuestion/index.vue b/src/renderer/src/views/classTask/newClassTaskAssign/searchQuestion/index.vue index a8d6f8d..d9b4e4a 100644 --- a/src/renderer/src/views/classTask/newClassTaskAssign/searchQuestion/index.vue +++ b/src/renderer/src/views/classTask/newClassTaskAssign/searchQuestion/index.vue @@ -18,9 +18,9 @@ - + @@ -132,7 +132,8 @@ const userStore = useUserStore().user const { entpCourseWorkTypeList, entpCourseWorkGroupList, - entpCourseWorkYearList + entpCourseWorkYearList, + entpCourseWorkPointList } = useClassTaskStore(); const props = defineProps({ @@ -146,12 +147,11 @@ const props = defineProps({ }, }) -const entpCourseWorkPointList = ref([ - {label: '不限', value: []}, -]); // 习题查询条件 - 知识点 -const knowledgePointProps = ref({value: 'thirdId', label: 'title'}); -//const knowledgePointProps = ref({value: 'thirdId', label: 'knowTitle'}); - +// const entpCourseWorkPointList = ref([ +// {label: '不限', value: []}, +// ]); // 习题查询条件 - 知识点 +const knowledgePointProps = reactive({value: 'thirdId', label: 'knowTitle'}); +//const knowledgePointProps = ref({value: 'thirdId', label: 'title'}); // 习题查询参数条件 const entpCourseWorkQueryParams = reactive({ @@ -193,7 +193,7 @@ const workResource = reactive({ onMounted(() => { console.log('entpCourseWorkTypeList', entpCourseWorkTypeList); // 知识点 (仅用更新一次) - getEntpCourseWorkPointList(); + //getEntpCourseWorkPointList(); debounceQueryData(); // 查询习题列表 }) @@ -258,7 +258,7 @@ const t = function(name, time) { // 年份 yearStr: entpCourseWorkQueryParams.yearStr !== '-1' ? entpCourseWorkQueryParams.yearStr:'', // 知识点 - thirdId: entpCourseWorkQueryParams.point&&entpCourseWorkQueryParams.point.length > 0 ? entpCourseWorkQueryParams.point[0]:'', + thirdId: entpCourseWorkQueryParams.point&&entpCourseWorkQueryParams.point.length > 0 ? entpCourseWorkQueryParams.point[entpCourseWorkQueryParams.point.length-1]:'', // 关键字 keyword: entpCourseWorkQueryParams.keyWord && entpCourseWorkQueryParams.keyWord !== '' ? entpCourseWorkQueryParams.keyWord:'', @@ -351,6 +351,7 @@ const handleQueryFromEntpCourseWork= async (queryType) => { } /** + * 注意: 该方法已不再使用, 具体知识点初始化方法查看 useClassTaskStore - 241230 * 3、知识点 */ const getEntpCourseWorkPointList = async () => { diff --git a/src/renderer/src/views/model/index.vue b/src/renderer/src/views/model/index.vue index 7cc18f3..df93528 100644 --- a/src/renderer/src/views/model/index.vue +++ b/src/renderer/src/views/model/index.vue @@ -451,6 +451,14 @@ const changeBook = async(data) => { }).then((res) => { currentFileList.value = [...res.rows] }) + + // 更新单元章节对应的知识点 + const pointParams = { + ...uploadData.value, + edustage: data.node.edustage, + edusubject: data.node.edusubject, + } + await classTaskStore.initJYPoint(pointParams); } const onchange = (item) => { let path = item.path diff --git a/src/renderer/src/views/prepare/index.vue b/src/renderer/src/views/prepare/index.vue index 807584c..66ba273 100644 --- a/src/renderer/src/views/prepare/index.vue +++ b/src/renderer/src/views/prepare/index.vue @@ -209,10 +209,12 @@ import * as commUtils from "@/utils/comm"; import msgUtils from "@/plugins/modal"; import * as Api_server from "@/api/apiService"; import * as API_entpcoursefile from "@/api/education/entpcoursefile"; +import useClassTaskStore from '@/store/modules/classTask' import { slidesToImg } from '@/utils/ppt' // ppt相关工具 import ChatWs from '@/plugins/socket' // 聊天socket if (!ChatWs.ws) ChatWs.init() +const classTaskStore = useClassTaskStore(); const toolStore = useToolState() const fs = require('fs') const { ipcRenderer } = window.electron || {} @@ -992,8 +994,8 @@ export default { let cata = parseCataByNode(data.node) this.currentNode = data.node this.uploadData.levelFirstId = cata[0] - this.uploadData.levelSecondId = cata[1] - this.uploadData.levelThirdId = cata[2] + this.uploadData.levelSecondId = cata[1] ?? '' + this.uploadData.levelThirdId = cata[2] ?? '' this.uploadData.textbookId = data.textBook.curBookId toolStore.curSubjectNode.querySearch = this.uploadData this.initHomeWork() @@ -1003,6 +1005,14 @@ export default { const res = await listEntpcourse(params) this.entp = res?.rows?.[0] || null sessionStore.set('curr.entp', this.entp) // 缓存当前课程信息 + + // 更新单元章节对应的知识点 + const pointParams = { + ...this.uploadData, + edustage: data.node.edustage, + edusubject: data.node.edusubject, + } + await classTaskStore.initJYPoint(pointParams); }, // 获取作业 async initHomeWork() {