From d67f2c5a524ae96e625512e970700958688ae933 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E2=80=9Czouyf=E2=80=9D?= <80906036@qq.com>
Date: Mon, 30 Dec 2024 16:33:56 +0800
Subject: [PATCH] =?UTF-8?q?[=E4=BD=9C=E4=B8=9A=E8=AE=BE=E8=AE=A1]=20-=20?=
=?UTF-8?q?=E7=9F=A5=E8=AF=86=E7=82=B9=E8=8E=B7=E5=8F=96=E4=BC=98=E5=8C=96?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/renderer/src/store/modules/classTask.js | 52 +++++++-
.../newClassTaskAssign/myQuestion/index.vue | 13 +-
.../questionUpload/quesItem/index.vue | 117 +++++++++---------
.../searchQuestion/index.vue | 25 ++--
src/renderer/src/views/model/index.vue | 8 ++
src/renderer/src/views/prepare/index.vue | 14 ++-
6 files changed, 150 insertions(+), 79 deletions(-)
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() {