杨磊
24 分钟以前 ee213bf458d3961a0560ce3b68a3ad38322ece97
src/views/classManage/classHome.vue
@@ -26,8 +26,8 @@
              </div>
              <div class="infoBox">
                <div class="main">{{ currentClass?.bookName }}</div>
                <div class="job">作者:{{ classInfo?.author ?? '-' }}</div>
                <div class="job">ISBN:{{ classInfo?.isbn ?? '-' }}</div>
                <div class="job">作者:{{ currentClass?.author ?? '-' }}</div>
                <div class="job">ISBN:{{ currentClass?.isbn ?? '-' }}</div>
              </div>
            </div>
            <div class="line"></div>
@@ -69,7 +69,7 @@
              <span>班级通知</span>
              <el-icon
                style="cursor: pointer"
                color="#FF6D00"
                color="#019e58"
                v-if="noticeList.length > 0 && userInfo.role == 'Teacher'"
                @click="toInfo"
              >
@@ -98,7 +98,7 @@
              <span>班组话题</span>
              <el-icon
                style="cursor: pointer"
                color="#FF6D00"
                color="#019e58"
                v-if="messageList.length > 0"
                @click="toTalk"
              >
@@ -131,7 +131,7 @@
              <span>班级作业概览</span>
              <!-- <el-icon
                style="cursor: pointer"
                color="#FF6D00"
                color="#019e58"
                v-if="tableData.length > 0"
                @click="toWorkList"
              >
@@ -155,7 +155,7 @@
              <span>教学互动</span>
              <el-icon
                style="cursor: pointer"
                color="#FF6D00"
                color="#019e58"
                v-if="tableData.length > 0"
                @click="toTeaching"
              >
@@ -255,7 +255,7 @@
const Sloading = ref(false)
onMounted(() => {
  const userCache: any = localStorage.getItem('jesk-userInfo')
  const userCache: any = localStorage.getItem(config.userInfoKey)
  if (userCache) {
    userInfo.value = JSON.parse(userCache)
  }
@@ -270,7 +270,7 @@
    await toClipboard(val.refCode)
    ElMessage({
      message: '复制成功',
      type: 'success'
      type: 'success',
    })
  } catch (e) {
    console.error(e)
@@ -281,12 +281,15 @@
const getData = () => {
  MG.edu
    .getCourseClass({
      ClassIdOrRefCode: String(classInfo.id)
      ClassIdOrRefCode: String(classInfo.id),
    })
    .then((res: any) => {
    .then(async (res: any) => {
      if (res) {
        const detail = await getBookDetail(res.linkProductDto.product.id)
        res.bookName = res.linkProductDto.product.name
        res.bookIcon = getPublicImage(res.linkProductDto.product.icon, 100)
        res.bookIcon = detail.icon ?? defaultImg
        res.author = detail.author
        res.isbn = detail.isbn
        res.classTime =
          moment(res.beginDate).format('YYYY.MM.DD') +
          '--' +
@@ -302,17 +305,17 @@
const getTopicInfo = () => {
  const pramas = {
    classId: classInfo.id,
    refCodes: [config.refCodes.message, config.refCodes.talk]
    refCodes: [config.refCode.message, config.refCode.talk],
  }
  MG.edu.getClassTopic(pramas).then((res: any) => {
    const list = res
    messageTopicInfo.value = list.find((item: any) => item.refCode == config.refCodes.message)
    messageTopicInfo.value = list.find((item: any) => item.refCode == config.refCode.message)
    if (messageTopicInfo.value.id) {
      sessionStorage.messageId = messageTopicInfo.value.id
      noticeLoading.value = true
      getNotice()
    }
    talkTopicInfo.value = list.find((item: any) => item.refCode == config.refCodes.talk)
    talkTopicInfo.value = list.find((item: any) => item.refCode == config.refCode.talk)
    if (talkTopicInfo.value.id) {
      sessionStorage.talkId = talkTopicInfo.value.id
      messageLoading.value = true
@@ -331,8 +334,8 @@
    sort: {
      type: 'Desc',
      field: 'CreateDate',
      subSorts: []
    }
      subSorts: [],
    },
  }
  MG.ugc.getTopicMessageList(data).then((res: any) => {
    noticeLoading.value = false
@@ -340,7 +343,7 @@
    noticeList.value = list.map((item: any) => {
      return {
        ...item,
        createDate: moment(item.createDate).format('YYYY-MM-DD')
        createDate: moment(item.createDate).format('YYYY-MM-DD'),
      }
    })
  })
@@ -356,8 +359,8 @@
    sort: {
      type: 'Desc',
      field: 'CreateDate',
      subSorts: []
    }
      subSorts: [],
    },
  }
  MG.ugc.getTopicMessageList(data).then((res: any) => {
    messageLoading.value = false
@@ -374,7 +377,7 @@
        ...item,
        index: i + 1,
        createDate: moment(item.createDate).format('YYYY-MM-DD HH:mm:ss'),
        updateDate: moment(item.updateDate).format('YYYY-MM-DD HH:mm:ss')
        updateDate: moment(item.updateDate).format('YYYY-MM-DD HH:mm:ss'),
      }
    })
  })
@@ -391,9 +394,9 @@
      {
        value: 'Normal',
        field: 'State',
        subFilters: []
      }
    ]
        subFilters: [],
      },
    ],
  }
  MG.identity.getGroupUserList(data).then((res: any) => {
    const { datas } = res
@@ -424,7 +427,7 @@
        return {
          ...item,
          index: index + 1,
          createDate: moment(item.createDate).format('YYYY-MM-DD')
          createDate: moment(item.createDate).format('YYYY-MM-DD'),
        }
      })
    }
@@ -442,8 +445,8 @@
  router.push({
    path: '/talkingPoint',
    query: {
      classInfo: JSON.stringify(classInfo)
    }
      classInfo: JSON.stringify(classInfo),
    },
  })
}
@@ -453,8 +456,8 @@
  router.push({
    path: '/info',
    query: {
      classInfo: JSON.stringify(classInfo)
    }
      classInfo: JSON.stringify(classInfo),
    },
  })
}
@@ -469,7 +472,7 @@
    sort: {
      type: 'Desc',
      field: 'CreateDate',
      subSorts: []
      subSorts: [],
    },
    filterList: [
      // {
@@ -480,10 +483,10 @@
      {
        value: config.taskType.homeWork,
        field: 'Type',
        subFilters: []
      }
        subFilters: [],
      },
    ],
    groupId: classInfo?.id
    groupId: classInfo?.id,
  }
  MG.edu
    .getTaskList(data)
@@ -495,7 +498,7 @@
            return {
              ...item,
              beginDate: moment(item.beginDate).format('YYYY-MM-DD'),
              endDate: moment(item.endDate).format('YYYY-MM-DD')
              endDate: moment(item.endDate).format('YYYY-MM-DD'),
            }
          })
          .slice(0, 3)
@@ -507,9 +510,30 @@
      console.log(e)
    })
}
// 获取教材详情
const getBookDetail = async (id: string) => {
  const query = {
    path: '*',
    queryType: '*',
    productId: id,
    coverSize: {
      height: 300,
      width: 210,
    },
    fields: {
      author: [],
      isbn: [],
    },
  }
  const res = await MG.store.getProductDetail(query)
  return res.datas ?? null
}
</script>
<style lang="less" scoped>
.main {
  color: #019e58;
}
.nullBox {
  width: 100%;
  display: flex;
@@ -517,6 +541,7 @@
}
.classManagePage-box {
  padding: 20px;
  box-sizing: border-box;
  .classManagePage-nav {
    padding-bottom: 20px;
    border-bottom: 1px solid #e6e8ed;
@@ -531,6 +556,7 @@
        height: 190px;
        margin-top: 30px;
        border-radius: 10px;
        border: 1px solid #019e58;
        .title {
          width: 80px;
          text-align: center;
@@ -625,8 +651,6 @@
      .titleBox {
        display: flex;
        align-items: center;
        margin: 20px 0;
        font-size: 16px;
        .title {
          width: 100%;
          display: flex;
@@ -664,7 +688,6 @@
      .titleBox {
        display: flex;
        align-items: center;
        margin: 10px 0;
        .border {
          width: 4px;
          height: 23px;
@@ -675,7 +698,7 @@
    }
    .notBox {
      width: 100%;
      height: 100px;
      height: 120px;
      display: flex;
      align-items: center;
      justify-content: center;
@@ -694,11 +717,11 @@
    }
    .copyIdBtn {
      background-color: #fff;
      color: #3b93fe;
      padding: 0 6px;
      padding: 10px;
      border-radius: 50px;
      overflow: hidden;
      cursor: pointer;
      font-size: 14px;
    }
  }
  .avatarList {
@@ -746,6 +769,7 @@
    width: 100%;
    height: calc(100% - 63px);
    padding: 5px 25px;
    box-sizing: border-box;
    overflow: auto;
    .noticeItem {
      display: flex;