|
@@ -4,169 +4,85 @@
|
|
|
* @Date:2024-03-29 15:29:06
|
|
|
-->
|
|
|
<template>
|
|
|
- <div class="curriculumList_gym">
|
|
|
+ <div class="curriculumList_gym" v-for="item in props.curriculumData" :key="item.id" @click="handleClickDetail(item.id, item.teachMode)">
|
|
|
<div class="head">
|
|
|
<div class="timeBox">
|
|
|
<img class="timeImg" src="@/img/curriculum/sj.png" />
|
|
|
- <div class="time">2024-01-27 15:00-15:30</div>
|
|
|
- </div>
|
|
|
- <div class="operateBox">
|
|
|
- <img class="dangerImg" src="@/img/curriculum/jg.png" />
|
|
|
- <div class="operateBtn">配置课件</div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="curriculumName">
|
|
|
- <div class="leftCon">
|
|
|
- <img class="xxImg" src="@/img/curriculum/xx.png" />
|
|
|
- <img class="typeImg" src="@/img/curriculum/Band.png" />
|
|
|
- <div class="className">
|
|
|
- <ellipsisScroll :title="'乐团课·单簧管进阶提高体验课'" />
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="rightCon">
|
|
|
- <img src="@/img/curriculum/qd.png" />
|
|
|
- <div>签到</div>
|
|
|
- <img class="qtImg" src="@/img/curriculum/qt.png" />
|
|
|
- <div>签退</div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="endCon">
|
|
|
- <div class="addressCon">
|
|
|
- <div class="adressBox">
|
|
|
- <div>上课学生:</div>
|
|
|
- <div class="adress">
|
|
|
- <ellipsisScroll :title="'武汉市红领巾小学'" />
|
|
|
- </div>
|
|
|
+ <div class="time">
|
|
|
+ {{ item.classDate && format(item.classDate) }} {{ item.startClassTime && format(item.startClassTime, "hh:ii") }}-{{
|
|
|
+ item.endClassTime && format(item.endClassTime, "hh:ii")
|
|
|
+ }}
|
|
|
</div>
|
|
|
- <div>上课学生:陈琪</div>
|
|
|
- </div>
|
|
|
- <div class="operate" @click="handleClickDetail">
|
|
|
- <div>查看详情</div>
|
|
|
- <img class="jtImg" src="@/img/curriculum/jt.png" />
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="curriculumList_gym">
|
|
|
- <div class="head">
|
|
|
- <div class="timeBox">
|
|
|
- <img class="timeImg" src="@/img/curriculum/sj.png" />
|
|
|
- <div class="time">2024-01-27 15:00-15:30</div>
|
|
|
</div>
|
|
|
<div class="operateBox">
|
|
|
- <img class="dangerImg" src="@/img/curriculum/jg.png" />
|
|
|
- <div class="operateBtn">配置课件</div>
|
|
|
+ <template v-if="item.status === 'UNDERWAY' && !item.coursewareDetailId">
|
|
|
+ <img class="dangerImg" src="@/img/curriculum/jg.png" />
|
|
|
+ <div class="operateBtn" @click.stop="handleSetUpCourseware(item.id, item.teachMode)">配置课件</div>
|
|
|
+ </template>
|
|
|
+ <template v-else-if="item.status === 'NOT_START'">
|
|
|
+ <div class="noStart">未开始</div>
|
|
|
+ </template>
|
|
|
+ <template v-else-if="item.status === 'UNDERWAY'">
|
|
|
+ <div class="ing">进行中</div>
|
|
|
+ </template>
|
|
|
+ <template v-else>
|
|
|
+ <div class="end">已结束</div>
|
|
|
+ </template>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="curriculumName">
|
|
|
<div class="leftCon">
|
|
|
- <img class="xxImg" src="@/img/curriculum/xx.png" />
|
|
|
- <img class="typeImg" src="@/img/curriculum/Band.png" />
|
|
|
+ <img class="xxImg" :src="item.teachMode === 'ONLINE' ? require('@/img/curriculum/xs.png') : require('@/img/curriculum/xx.png')" />
|
|
|
+ <img class="typeImg" :src="require(`@/img/curriculum/${classImgType[item.type as keyof typeof classImgType]}.png`)" />
|
|
|
<div class="className">
|
|
|
- <ellipsisScroll :title="'乐团课·单簧管进阶提高体验课'" />
|
|
|
+ <ellipsisScroll :title="`${classNameType[item.type as keyof typeof classNameType]}·${item.name}`" />
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="rightCon">
|
|
|
- <img src="@/img/curriculum/qd.png" />
|
|
|
- <div>签到</div>
|
|
|
- <img class="qtImg" src="@/img/curriculum/qt.png" />
|
|
|
- <div>签退</div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="endCon">
|
|
|
- <div class="addressCon">
|
|
|
- <div class="adressBox">
|
|
|
- <div>上课学生:</div>
|
|
|
- <div class="adress">
|
|
|
- <ellipsisScroll :title="'武汉市红领巾小学'" />
|
|
|
- </div>
|
|
|
+ <img
|
|
|
+ :src="
|
|
|
+ item.signInStatusEnum === 1
|
|
|
+ ? require('@/img/curriculum/qd1.png')
|
|
|
+ : item.signInStatusEnum === 0
|
|
|
+ ? require('@/img/curriculum/qd2.png')
|
|
|
+ : require('@/img/curriculum/qd.png')
|
|
|
+ "
|
|
|
+ />
|
|
|
+ <div :class="[item.signInStatusEnum === 1 ? 'signIn' : item.signInStatusEnum === 0 && 'abnormalSignIn']">
|
|
|
+ {{ item.signInStatusEnum === 1 ? "正常签到" : item.signInStatusEnum === 0 ? "异常签到" : "未签到" }}
|
|
|
</div>
|
|
|
- <div>上课学生:陈琪</div>
|
|
|
- </div>
|
|
|
- <div class="operate">
|
|
|
- <div>查看详情</div>
|
|
|
- <img class="jtImg" src="@/img/curriculum/jt.png" />
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="curriculumList_gym">
|
|
|
- <div class="head">
|
|
|
- <div class="timeBox">
|
|
|
- <img class="timeImg" src="@/img/curriculum/sj.png" />
|
|
|
- <div class="time">2024-01-27 15:00-15:30</div>
|
|
|
- </div>
|
|
|
- <div class="operateBox">
|
|
|
- <img class="dangerImg" src="@/img/curriculum/jg.png" />
|
|
|
- <div class="operateBtn">配置课件</div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="curriculumName">
|
|
|
- <div class="leftCon">
|
|
|
- <img class="xxImg" src="@/img/curriculum/xx.png" />
|
|
|
- <img class="typeImg" src="@/img/curriculum/Band.png" />
|
|
|
- <div class="className">
|
|
|
- <ellipsisScroll :title="'乐团课·单簧管进阶提高体验课'" />
|
|
|
+ <img
|
|
|
+ class="qtImg"
|
|
|
+ :src="
|
|
|
+ item.signOutStatusEnum === 1
|
|
|
+ ? require('@/img/curriculum/qt1.png')
|
|
|
+ : item.signOutStatusEnum === 0
|
|
|
+ ? require('@/img/curriculum/qt2.png')
|
|
|
+ : require('@/img/curriculum/qt.png')
|
|
|
+ "
|
|
|
+ />
|
|
|
+ <div :class="[item.signOutStatusEnum === 1 ? 'signOut' : item.signOutStatusEnum === 0 && 'abnormalSignOut']">
|
|
|
+ {{ item.signOutStatusEnum === 1 ? "正常签退" : item.signOutStatusEnum === 0 ? "异常签退" : "未签退" }}
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div class="rightCon">
|
|
|
- <img src="@/img/curriculum/qd.png" />
|
|
|
- <div>签到</div>
|
|
|
- <img class="qtImg" src="@/img/curriculum/qt.png" />
|
|
|
- <div>签退</div>
|
|
|
- </div>
|
|
|
</div>
|
|
|
<div class="endCon">
|
|
|
<div class="addressCon">
|
|
|
<div class="adressBox">
|
|
|
- <div>上课学生:</div>
|
|
|
+ <div>上课地点:</div>
|
|
|
<div class="adress">
|
|
|
- <ellipsisScroll :title="'武汉市红领巾小学'" />
|
|
|
+ <ellipsisScroll :title="item.teachMode === 'ONLINE' ? '网络教室' : item.schoolName" />
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div>上课学生:陈琪</div>
|
|
|
- </div>
|
|
|
- <div class="operate">
|
|
|
- <div>查看详情</div>
|
|
|
- <img class="jtImg" src="@/img/curriculum/jt.png" />
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="curriculumList_gym">
|
|
|
- <div class="head">
|
|
|
- <div class="timeBox">
|
|
|
- <img class="timeImg" src="@/img/curriculum/sj.png" />
|
|
|
- <div class="time">2024-01-27 15:00-15:30</div>
|
|
|
- </div>
|
|
|
- <div class="operateBox">
|
|
|
- <img class="dangerImg" src="@/img/curriculum/jg.png" />
|
|
|
- <div class="operateBtn">配置课件</div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="curriculumName">
|
|
|
- <div class="leftCon">
|
|
|
- <img class="xxImg" src="@/img/curriculum/xx.png" />
|
|
|
- <img class="typeImg" src="@/img/curriculum/Band.png" />
|
|
|
- <div class="className">
|
|
|
- <ellipsisScroll :title="'乐团课·单簧管进阶提高体验课'" />
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="rightCon">
|
|
|
- <img src="@/img/curriculum/qd.png" />
|
|
|
- <div>签到</div>
|
|
|
- <img class="qtImg" src="@/img/curriculum/qt.png" />
|
|
|
- <div>签退</div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="endCon">
|
|
|
- <div class="addressCon">
|
|
|
<div class="adressBox">
|
|
|
<div>上课学生:</div>
|
|
|
<div class="adress">
|
|
|
- <ellipsisScroll :title="'武汉市红领巾小学'" />
|
|
|
+ <ellipsisScroll :title="item.studentNames" />
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div>上课学生:陈琪</div>
|
|
|
</div>
|
|
|
- <div class="operate">
|
|
|
+ <div class="btnGoClass" v-if="item.status === 'UNDERWAY'" @click.stop="handleStartClass(item.id, item.teachMode)">开始上课</div>
|
|
|
+ <div class="btnDetail" v-else @click.stop="handleClickDetail(item.id, item.teachMode)">
|
|
|
<div>查看详情</div>
|
|
|
<img class="jtImg" src="@/img/curriculum/jt.png" />
|
|
|
</div>
|
|
@@ -175,21 +91,39 @@
|
|
|
</template>
|
|
|
|
|
|
<script setup lang="ts">
|
|
|
-import modalFrame from "@/plugin/modalFrame"
|
|
|
-import curriculumDetail from "../../curriculumDetail.vue"
|
|
|
+import { format } from "@/libs/tools"
|
|
|
+import { useCurriculumDetail, useSetUpCourseware } from "../../index"
|
|
|
+import { handleStartClass_gym, isONLINE_gym } from "@/views/curriculum/hooks/useStartClass"
|
|
|
+import { classImgType, classNameType } from "@/views/curriculum/type"
|
|
|
+
|
|
|
+const props = defineProps<{
|
|
|
+ curriculumData: any[]
|
|
|
+}>()
|
|
|
+const emits = defineEmits<{
|
|
|
+ (e: "update"): void
|
|
|
+}>()
|
|
|
|
|
|
-function handleClickDetail() {
|
|
|
- //点击跳转详情
|
|
|
- modalFrame({
|
|
|
- template: curriculumDetail,
|
|
|
- width: 989,
|
|
|
- height: 760,
|
|
|
- btnShow: [],
|
|
|
- modalData: {
|
|
|
- id: "123"
|
|
|
- },
|
|
|
- maskClose: true,
|
|
|
- className: "curriculumDetail"
|
|
|
+//查看详情
|
|
|
+function handleClickDetail(id: string, teachMode: string) {
|
|
|
+ if (isONLINE_gym(teachMode)) {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ useCurriculumDetail(id)
|
|
|
+}
|
|
|
+// 开始上课
|
|
|
+function handleStartClass(id: string, teachMode: string) {
|
|
|
+ if (isONLINE_gym(teachMode)) {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ handleStartClass_gym(id)
|
|
|
+}
|
|
|
+// 配置课表
|
|
|
+function handleSetUpCourseware(id: string, teachMode: string) {
|
|
|
+ if (isONLINE_gym(teachMode)) {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ useSetUpCourseware(id, () => {
|
|
|
+ emits("update")
|
|
|
})
|
|
|
}
|
|
|
</script>
|
|
@@ -240,6 +174,21 @@ function handleClickDetail() {
|
|
|
opacity: $opacity-hover;
|
|
|
}
|
|
|
}
|
|
|
+ .noStart {
|
|
|
+ font-weight: 500;
|
|
|
+ font-size: 20px;
|
|
|
+ color: #777777;
|
|
|
+ }
|
|
|
+ .ing {
|
|
|
+ font-weight: 500;
|
|
|
+ font-size: 20px;
|
|
|
+ color: #f67146;
|
|
|
+ }
|
|
|
+ .end {
|
|
|
+ font-weight: 500;
|
|
|
+ font-size: 20px;
|
|
|
+ color: #aaaaaa;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
.curriculumName {
|
|
@@ -251,6 +200,7 @@ function handleClickDetail() {
|
|
|
flex-grow: 1;
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
|
+ overflow: hidden;
|
|
|
.xxImg {
|
|
|
flex-shrink: 0;
|
|
|
width: 46px;
|
|
@@ -269,7 +219,6 @@ function handleClickDetail() {
|
|
|
font-weight: 600;
|
|
|
font-size: 24px;
|
|
|
color: #333333;
|
|
|
- max-width: 520px;
|
|
|
}
|
|
|
}
|
|
|
.rightCon {
|
|
@@ -285,6 +234,14 @@ function handleClickDetail() {
|
|
|
font-weight: 500;
|
|
|
font-size: 20px;
|
|
|
color: #aaaaaa;
|
|
|
+ &.signIn,
|
|
|
+ &.signOut {
|
|
|
+ color: #01c199;
|
|
|
+ }
|
|
|
+ &.abnormalSignIn,
|
|
|
+ &.abnormalSignOut {
|
|
|
+ color: #ff0000;
|
|
|
+ }
|
|
|
}
|
|
|
.qtImg {
|
|
|
margin-left: 34px;
|
|
@@ -299,6 +256,7 @@ function handleClickDetail() {
|
|
|
padding-bottom: 22px;
|
|
|
.addressCon {
|
|
|
flex-grow: 1;
|
|
|
+ overflow: hidden;
|
|
|
& > div {
|
|
|
font-weight: 500;
|
|
|
font-size: 16px;
|
|
@@ -314,12 +272,26 @@ function handleClickDetail() {
|
|
|
flex-shrink: 0;
|
|
|
}
|
|
|
.adress {
|
|
|
- max-width: 620px;
|
|
|
+ flex-grow: 1;
|
|
|
overflow: hidden;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- .operate {
|
|
|
+ .btnGoClass {
|
|
|
+ flex-shrink: 0;
|
|
|
+ font-weight: 500;
|
|
|
+ font-size: 20px;
|
|
|
+ color: #ffffff;
|
|
|
+ padding: 11px 14px;
|
|
|
+ background: #ff8057;
|
|
|
+ border-radius: 21px;
|
|
|
+ text-align: center;
|
|
|
+ cursor: pointer;
|
|
|
+ &:hover {
|
|
|
+ opacity: $opacity-hover;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .btnDetail {
|
|
|
flex-shrink: 0;
|
|
|
display: flex;
|
|
|
align-items: center;
|