lex-xin 4 months ago
parent
commit
be446f2eee

+ 1 - 0
src/views/cloudPractice/instrument.ts

@@ -53,6 +53,7 @@ export const onlyVisible = (xml: string, partIndex: number): string => {
    if (!xml) return ""
    const xmlParse = new DOMParser().parseFromString(xml, "text/xml")
    const partList = xmlParse.getElementsByTagName("part-list")?.[0]?.getElementsByTagName("score-part") || []
+   // @typescript-eslint/no-unused-vars
    const partListNames = Array.from(partList).map(item => item.getElementsByTagName("part-name")?.[0].textContent || "")
    const parts: any = xmlParse.getElementsByTagName("part")
    // const firstTimeInfo = parts[0]?.getElementsByTagName('metronome')[0]?.parentElement?.parentElement?.cloneNode(true)

+ 1 - 0
src/views/cloudTextbooks/chooseDialog.vue

@@ -129,6 +129,7 @@ function handleCourseClick(value: any) {
       query: {
          source: "search",
          search: queryStr.value,
+         knowledgePointId: value.knowledgePointId,
          materialId: value.id
       }
    })

+ 3 - 3
src/views/cloudTextbooks/searchCollapse/searchCollapse.vue

@@ -129,7 +129,7 @@ function handleClick(value: any) {
       > .el-collapse-item__header {
          border-bottom-color: transparent;
          &.is-active {
-            border-bottom-color: #f2f2f2;
+            border-bottom-color: #f2f2f2 !important;
          }
       }
       &:last-child {
@@ -277,7 +277,7 @@ function handleClick(value: any) {
          align-items: center;
          // padding: 0 10px 0 24px;
          padding: 0;
-         margin-bottom: 6px;
+         // margin-bottom: 6px;
          cursor: pointer;
          // &.isActive {
          // background: #f0f0f0;
@@ -288,7 +288,7 @@ function handleClick(value: any) {
          // }
          // }
          .courseTitleCon {
-            padding: 12px 0 0 10px;
+            padding: 4px 0 20px 10px;
             flex-grow: 1;
             overflow: hidden;
             margin-right: 8px;

+ 1 - 1
src/views/cloudTextbooks/useData.ts

@@ -265,6 +265,7 @@ export const useDataDetailList = () => {
                item.id = item.coursewareDetailId
                item.name = item.coursewareDetailName
             })
+            flattenCoursewareListData = []
             listSearchData.value = filterPointList(resultList)
             flattenCoursewareList.value = flattenCoursewareListData
             if (flattenCoursewareList.value[0]) {
@@ -310,7 +311,6 @@ export const useDataDetailList = () => {
 
    function filterPointList(pointList: any[], parentData?: { ids: string[]; name: string }): any[] {
       // 设置父级及以上id数组和父级name
-      flattenCoursewareListData = []
       return pointList.map(point => {
          if (point.children) {
             return Object.assign(point, {

+ 1 - 0
src/views/coursewarePlay/components/courseCollapse/courseCollapse.vue

@@ -109,6 +109,7 @@ function handleClick(value: any) {
 }
 
 function formatName(name: string) {
+   // console.log(name, searchStr.value, "searchStr")
    if (!name || !searchStr.value) return name
    const search: any = searchStr.value
    return name.replace(search, `<span style="color: #F67146;">${search}</span>`)

+ 24 - 7
src/views/coursewarePlay/coursewarePlay.vue

@@ -130,8 +130,8 @@
                description="暂无搜索结果"
             />
             <courseCollapse
-               :activeCollapse="activeCourseware"
-               :search="searchObj.search"
+               :activeCollapse="tempActiveCourseware || activeCourseware"
+               :search="searchObj.tempSearch || searchObj.search"
                :courseList="tempCoursewareList"
                @handleClick="handleCourseClick"
             />
@@ -202,10 +202,12 @@ const searchObj = reactive({
    isSearch: false, // 是否搜索 标识
    queryStr: route.query.search as any,
    source: route.query.source as any, // 从哪里来的
-   search: route.query.search as any // 默认的搜索条件 -
+   search: route.query.search as any, // 默认的搜索条件 -
+   tempSearch: route.query.search as any
 })
 
 // 选中的知识点
+const tempActiveCourseware: any = ref() // 临时数据
 const activeCourseware = computed<undefined | Record<string, any>>(() => {
    return flattenCoursewareList.value[activeCoursewareIndex.value]
 })
@@ -380,6 +382,14 @@ function handlePointList(pointList: any[], isSearch?: boolean) {
          index > -1 && (activeCoursewareIndex.value = index)
       }
       flattenCoursewareList.value = deepCopy(flattenCoursewareListData)
+   } else {
+      if (flattenCoursewareListData[0]) {
+         // 默认展开第一个
+         tempActiveCourseware.value = {
+            ...flattenCoursewareListData[0],
+            id: null
+         }
+      }
    }
    tempCoursewareList.value = list
    tempFlattenCoursewareList.value = deepCopy(flattenCoursewareListData)
@@ -429,7 +439,7 @@ function handleChangeCourseware(index: -1 | 1) {
 }
 function handleCourseClick(value: any) {
    // 选择之后初始化数据
-   searchObj.search = JSON.parse(JSON.stringify(searchObj.queryStr))
+   searchObj.search = JSON.parse(JSON.stringify(searchObj.tempSearch))
    coursewareList.value = deepCopy(tempCoursewareList.value)
    flattenCoursewareList.value = deepCopy(tempFlattenCoursewareList.value)
    activeCoursewareIndex.value = flattenCoursewareList.value.findIndex((item: any) => {
@@ -509,7 +519,10 @@ function preventDefaultContextmenu(event: MouseEvent) {
 }
 function handleKeydown(e: KeyboardEvent) {
    const key = e.key
-
+   // 打开弹窗之后快捷键失效
+   if (drawerShow.value || drawerMenuShow.value) {
+      return
+   }
    if (key === " ") {
       closeAllModalFrame()
       drawerShow.value = false
@@ -542,6 +555,7 @@ function handleToolClick(type: string) {
    } else if (type === "point") {
       tempCoursewareList.value = deepCopy(coursewareList.value)
       searchObj.queryStr = JSON.parse(JSON.stringify(searchObj.search))
+      tempActiveCourseware.value = null
       drawerShow.value = true
    }
 }
@@ -671,6 +685,7 @@ function onTitleTip(type: "phaseGoals" | "checkItem", text: string) {
 function handleQuery() {
    //
    searchObj.isSearch = true
+   searchObj.tempSearch = JSON.parse(JSON.stringify(searchObj.queryStr))
    getLessCoursewareList()
 }
 </script>
@@ -933,12 +948,14 @@ function handleQuery() {
 .empty {
    height: calc(100vh - 54px);
    :deep(.el-empty__image) {
-      width: 238px;
+      width: 228px;
    }
 
    :deep(.el-empty__description) {
-      font-size: 18px;
       color: #aaa;
+      p {
+         font-size: 18px;
+      }
    }
 }
 </style>