mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/fe-student.git
synced 2025-12-06 09:26:46 +08:00
@@ -282,14 +282,14 @@
|
||||
<div class="box"></div>
|
||||
</div>
|
||||
<!-- todo #面授课接口 讲师缺少img和介绍-->
|
||||
<div class="teacheritem">
|
||||
<img class="peopleimg" :src="teacherInfo?.avatar"/>
|
||||
<div class="teacheritem" v-for="(item,index) in teacherItem">
|
||||
<img class="peopleimg" :src="item.avatar"/>
|
||||
<div class="nameSpan" style="align-items: flex-start;justify-content:flex-start;flex-direction: column;padding-left: 10px;">
|
||||
<div class="teacherName" style="padding: 5px 0;">
|
||||
{{ data.planDto?.teacher }}
|
||||
{{ item.realName }}
|
||||
</div>
|
||||
<!-- <div class="introduce">{{ data.planDto?.bandDesc }}</div> -->
|
||||
<div class="introduce" style="margin: 0;">{{useOrgName(teacherInfo.orgNamePath)}}</div>
|
||||
<div class="introduce" style="margin: 0;">{{useOrgName(item.orgNamePath)}}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -298,9 +298,9 @@
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import {computed, onBeforeMount, onUnmounted, ref} from "vue";
|
||||
import {computed, onBeforeMount, onUnmounted, ref,watch} from "vue";
|
||||
import FileTypeImg from "@/components/FileTypeImg.vue";
|
||||
import {request, useRequest} from "@/api/request";
|
||||
import {request, useRequest,boeRequest} from "@/api/request";
|
||||
import {STU_OFFCOURSE_DETAIL, TASK_OFFCOURSE_NOTASK_SIGN,} from "@/api/api";
|
||||
import {useRoute, useRouter} from "vue-router";
|
||||
import {useUserInfo} from "@/api/utils";
|
||||
@@ -308,6 +308,7 @@ import {ElMessage} from "element-plus";
|
||||
import dayjs from "dayjs";
|
||||
import isBetween from "dayjs/plugin/isBetween";
|
||||
import { useOrgName } from "@/hooks/useOrgName.js";
|
||||
import {BASE, GET_USER_LIST,GET_USER_INFO_OLDURL} from "@/api/ThirdApi";
|
||||
|
||||
const router = useRouter();
|
||||
|
||||
@@ -324,7 +325,42 @@ const { data } = useRequest(STU_OFFCOURSE_DETAIL, {
|
||||
courseId,
|
||||
usePermission: true,
|
||||
});
|
||||
const teacherInfo = useUserInfo(computed(() => data.value?.planDto?.teacherId));
|
||||
watch(data, (newVal) => {
|
||||
// newVal.planDto.offteachers.map(item => teacherInfos(item.teacherId));
|
||||
const teacherIdsArray = newVal.planDto.offteachers.map(item => item.teacherId);
|
||||
const teacherItemArr = []
|
||||
teacherIdsArray.forEach(id => {
|
||||
teacherItemArr.push(boeRequest(GET_USER_INFO_OLDURL, { userId: id }))
|
||||
})
|
||||
Promise.all(teacherItemArr).then(responses => {
|
||||
responses.map((arr)=>{
|
||||
const userInfo = arr.result;
|
||||
userInfo.avatar = userInfo?.avatar
|
||||
? userInfo?.avatar.includes('upload')
|
||||
? userInfo?.avatar
|
||||
: '/upload' + userInfo?.avatar
|
||||
: '/800e23f7-b58c-4192-820d-0c6a2b7544cc.png';
|
||||
const index = teacherIdsArray.indexOf(userInfo.userId)
|
||||
userInfo.realName = newVal.planDto.offteachers[index].teacherName
|
||||
teacherItem.value.push(userInfo)
|
||||
})
|
||||
}).catch(error => {
|
||||
console.log(error)
|
||||
})
|
||||
});
|
||||
const teacherItem = ref([])
|
||||
// const teacherInfos = async (id) => {
|
||||
// const res = await boeRequest(GET_USER_INFO_OLDURL, { userId: id });
|
||||
// const userInfo = res.result;
|
||||
// console.log(userInfo,'userInfo')
|
||||
// userInfo.avatar = userInfo?.avatar
|
||||
// ? userInfo?.avatar.includes('upload')
|
||||
// ? userInfo?.avatar
|
||||
// : '/upload' + userInfo?.avatar
|
||||
// : '/800e23f7-b58c-4192-820d-0c6a2b7544cc.png';
|
||||
// teacherItem.value.push(...userInfo)
|
||||
// }
|
||||
// const teacherInfo = useUserInfo(computed(() => data.value?.planDto?.offteachers[0].teacherId));
|
||||
const isAllowSign = computed(() => dayjs().isBetween(dayjs(data.value.planDto?.beginTime).subtract(data.value.planDto?.beforeStart || 0, "minute"), dayjs(data.value.planDto?.afterStart ? data.value.planDto?.beginTime : data.value.planDto?.endTime).add(data.value.planDto?.afterStart || 0, "minute")));
|
||||
|
||||
const handleClick = (tab, event) => {
|
||||
@@ -383,6 +419,7 @@ function toSurvery() {
|
||||
chapterOrStageId: 0,
|
||||
sName: data.value.planDto.name,
|
||||
type: 3,
|
||||
isSubmitTrue:data.value.isSurvery
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
@@ -94,16 +94,15 @@
|
||||
<div class="box"></div>
|
||||
</div>
|
||||
<!-- todo #面授课接口 讲师缺少img和介绍-->
|
||||
<div class="teacheritem">
|
||||
<img class="peopleimg" :src="teacherInfo.avatar"/>
|
||||
<div class="nameSpan" style="align-items: flex-start;justify-content:flex-start;flex-direction: column;padding-left: 10px;">
|
||||
<div class="teacheritem" v-for="(item,index) in teacherItem">
|
||||
<img class="peopleimg" :src="item.avatar"/>
|
||||
<div class="nameSpan" style="align-items: flex-start;justify-content:flex-start;flex-direction: column;padding-left: 10px;">
|
||||
<div class="teacherName" style="padding: 5px 0;">
|
||||
{{ data.planDto?.teacher }}
|
||||
{{ item.realName }}
|
||||
</div>
|
||||
<!-- <div class="introduce">{{ data.planDto?.bandDesc }}</div> -->
|
||||
<div class="introduce" style="margin: 0;">{{useOrgName(teacherInfo.orgNamePath)}}</div>
|
||||
<div class="introduce" style="margin: 0;">{{useOrgName(item.orgNamePath)}}</div>
|
||||
</div>
|
||||
<!-- <div class="follow">+ 关注</div>-->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -112,9 +111,9 @@
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import {computed, reactive, toRefs, watch, onUnmounted} from "vue";
|
||||
import {computed, reactive, toRefs, watch, onUnmounted,ref} from "vue";
|
||||
import FileTypeImg from "@/components/FileTypeImg.vue";
|
||||
import {request, useRequest} from "@/api/request";
|
||||
import {request, useRequest,boeRequest} from "@/api/request";
|
||||
import {
|
||||
STU_OFFCOURSE_DETAIL,
|
||||
FACETEACH_SIGNUP
|
||||
@@ -124,6 +123,7 @@ import {useUserInfo} from "@/api/utils";
|
||||
import {ElMessage, messageConfig} from "element-plus";
|
||||
import dayjs from "dayjs";
|
||||
import { useOrgName } from "@/hooks/useOrgName.js";
|
||||
import {BASE, GET_USER_LIST,GET_USER_INFO_OLDURL} from "@/api/ThirdApi";
|
||||
|
||||
const router = useRouter();
|
||||
const returnclick = () => {
|
||||
@@ -134,9 +134,43 @@ const {
|
||||
} = useRoute();
|
||||
|
||||
const {data} = useRequest(STU_OFFCOURSE_DETAIL, {courseId});
|
||||
const teacherInfo = useUserInfo(
|
||||
computed(() => data.value?.planDto?.teacherId)
|
||||
);
|
||||
watch(data, (newVal) => {
|
||||
// newVal.planDto.offteachers.map(item => teacherInfos(item.teacherId));
|
||||
const teacherIdsArray = newVal.planDto.offteachers.map(item => item.teacherId);
|
||||
const teacherItemArr = []
|
||||
teacherIdsArray.forEach(id => {
|
||||
teacherItemArr.push(boeRequest(GET_USER_INFO_OLDURL, { userId: id }))
|
||||
})
|
||||
Promise.all(teacherItemArr).then(responses => {
|
||||
responses.map((arr)=>{
|
||||
const userInfo = arr.result;
|
||||
userInfo.avatar = userInfo?.avatar
|
||||
? userInfo?.avatar.includes('upload')
|
||||
? userInfo?.avatar
|
||||
: '/upload' + userInfo?.avatar
|
||||
: '/800e23f7-b58c-4192-820d-0c6a2b7544cc.png';
|
||||
const index = teacherIdsArray.indexOf(userInfo.userId)
|
||||
userInfo.realName = newVal.planDto.offteachers[index].teacherName
|
||||
teacherItem.value.push(userInfo)
|
||||
})
|
||||
}).catch(error => {
|
||||
console.log(error)
|
||||
})
|
||||
});
|
||||
const teacherItem = ref([])
|
||||
// const teacherInfos = async (id) => {
|
||||
// const res = await boeRequest(GET_USER_INFO_OLDURL, { userId: id });
|
||||
// const userInfo = res.result;
|
||||
// userInfo.avatar = userInfo.avatar
|
||||
// ? userInfo.avatar.includes('upload')
|
||||
// ? userInfo.avatar
|
||||
// : '/upload' + userInfo.avatar
|
||||
// : '/800e23f7-b58c-4192-820d-0c6a2b7544cc.png';
|
||||
// teacherItem.value.push(userInfo)
|
||||
// };
|
||||
// const teacherInfo = useUserInfo(
|
||||
// computed(() => data.value?.planDto?.teacherId)
|
||||
// );
|
||||
|
||||
const state = reactive({
|
||||
activeName: "first",
|
||||
|
||||
@@ -92,14 +92,14 @@
|
||||
<div class="box"></div>
|
||||
</div>
|
||||
<!-- todo #面授课接口 讲师缺少img和介绍-->
|
||||
<div class="teacheritem">
|
||||
<img class="peopleimg" :src="teacherInfo.avatar"/>
|
||||
<div class="teacheritem" v-for="(item,index) in teacherItem">
|
||||
<img class="peopleimg" :src="item.avatar"/>
|
||||
<div class="nameSpan" style="align-items: flex-start;justify-content:flex-start;flex-direction: column;padding-left: 10px;">
|
||||
<div class="teacherName" style="padding: 5px 0;">
|
||||
{{ data.planDto?.teacher }}
|
||||
{{ item.realName }}
|
||||
</div>
|
||||
<!-- <div class="introduce">{{ data.planDto?.bandDesc }}</div> -->
|
||||
<div class="introduce" style="margin: 0;">{{useOrgName(teacherInfo.orgNamePath)}}</div>
|
||||
<div class="introduce" style="margin: 0;">{{useOrgName(item.orgNamePath)}}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -111,7 +111,7 @@
|
||||
<script setup>
|
||||
import {computed, reactive, toRefs, watch, onUnmounted, ref} from "vue";
|
||||
import FileTypeImg from "@/components/FileTypeImg.vue";
|
||||
import {request, useRequest} from "@/api/request";
|
||||
import {request, useRequest,boeRequest} from "@/api/request";
|
||||
import {
|
||||
STU_OFFCOURSE_DETAIL,
|
||||
FACETEACH_SIGNUP
|
||||
@@ -121,6 +121,7 @@ import {useUserInfo} from "@/api/utils";
|
||||
import {ElMessage, messageConfig} from "element-plus";
|
||||
import dayjs from "dayjs";
|
||||
import { useOrgName } from "@/hooks/useOrgName.js";
|
||||
import {BASE, GET_USER_LIST,GET_USER_INFO_OLDURL} from "@/api/ThirdApi";
|
||||
|
||||
const router = useRouter();
|
||||
const returnclick = () => {
|
||||
@@ -131,7 +132,40 @@ const {
|
||||
} = useRoute();
|
||||
|
||||
const {data} = useRequest(STU_OFFCOURSE_DETAIL, {courseId});
|
||||
|
||||
watch(data, (newVal) => {
|
||||
// newVal.planDto.offteachers.map(item => teacherInfos(item.teacherId));
|
||||
const teacherIdsArray = newVal.planDto.offteachers.map(item => item.teacherId);
|
||||
const teacherItemArr = []
|
||||
teacherIdsArray.forEach(id => {
|
||||
teacherItemArr.push(boeRequest(GET_USER_INFO_OLDURL, { userId: id }))
|
||||
})
|
||||
Promise.all(teacherItemArr).then(responses => {
|
||||
responses.map((arr)=>{
|
||||
const userInfo = arr.result;
|
||||
userInfo.avatar = userInfo?.avatar
|
||||
? userInfo?.avatar.includes('upload')
|
||||
? userInfo?.avatar
|
||||
: '/upload' + userInfo?.avatar
|
||||
: '/800e23f7-b58c-4192-820d-0c6a2b7544cc.png';
|
||||
const index = teacherIdsArray.indexOf(userInfo.userId)
|
||||
userInfo.realName = newVal.planDto.offteachers[index].teacherName
|
||||
teacherItem.value.push(userInfo)
|
||||
})
|
||||
}).catch(error => {
|
||||
console.log(error)
|
||||
})
|
||||
});
|
||||
const teacherItem = ref([])
|
||||
// const teacherInfos = async (id) => {
|
||||
// const res = await boeRequest(GET_USER_INFO_OLDURL, { userId: id });
|
||||
// const userInfo = res.result;
|
||||
// userInfo.avatar = userInfo.avatar
|
||||
// ? userInfo.avatar.includes('upload')
|
||||
// ? userInfo.avatar
|
||||
// : '/upload' + userInfo.avatar
|
||||
// : '/800e23f7-b58c-4192-820d-0c6a2b7544cc.png';
|
||||
// teacherItem.value.push(userInfo)
|
||||
// };
|
||||
const teacherInfo = useUserInfo(computed(() => data.value?.planDto?.teacherId));
|
||||
const activeName = ref("first");
|
||||
|
||||
|
||||
@@ -302,15 +302,15 @@
|
||||
<div class="box"></div>
|
||||
</div>
|
||||
<!-- todo #面授课接口 讲师缺少img和介绍-->
|
||||
<div class="teacheritem">
|
||||
<img class="peopleimg" :src="teacherInfo.avatar"/>
|
||||
<div class="teacheritem" v-for="(item,index) in teacherItem">
|
||||
<img class="peopleimg" :src="item.avatar"/>
|
||||
<div class="nameSpan" style="align-items: flex-start;justify-content:flex-start;flex-direction: column;padding-left: 10px;">
|
||||
<div class="teacherName" style="padding: 5px 0;">
|
||||
{{ data.planDto?.teacher }}
|
||||
{{ item.realName }}
|
||||
</div>
|
||||
<div class="introduce" style="margin: 0;">{{useOrgName(teacherInfo.orgNamePath)}}</div>
|
||||
<!-- <div class="introduce">{{ data.planDto?.bandDesc }}</div> -->
|
||||
<div class="introduce" style="margin: 0;">{{useOrgName(item.orgNamePath)}}</div>
|
||||
</div>
|
||||
<!-- <div class="follow">+ 关注</div>-->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -320,7 +320,7 @@
|
||||
<script setup>
|
||||
import {computed, reactive, toRefs, watch, onUnmounted, ref, onBeforeMount} from "vue";
|
||||
import FileTypeImg from "@/components/FileTypeImg.vue";
|
||||
import {request, useRequest} from "@/api/request";
|
||||
import {request, useRequest,boeRequest} from "@/api/request";
|
||||
import {
|
||||
STU_OFFCOURSE_DETAIL,
|
||||
FACETEACH_SIGNUP,
|
||||
@@ -336,6 +336,7 @@ import {ElMessage, messageConfig} from "element-plus";
|
||||
import dayjs from "dayjs";
|
||||
import isBetween from "dayjs/plugin/isBetween";
|
||||
import { useOrgName } from "@/hooks/useOrgName.js";
|
||||
import {BASE, GET_USER_LIST,GET_USER_INFO_OLDURL} from "@/api/ThirdApi";
|
||||
const router = useRouter();
|
||||
onBeforeMount(() => dayjs.extend(isBetween));
|
||||
|
||||
@@ -345,7 +346,40 @@ const returnclick = () => {
|
||||
const { query: {courseId} } = useRoute();
|
||||
const {data = {}} = useRequest(STU_OFFCOURSE_DETAIL, {courseId});
|
||||
console.log(data.value);
|
||||
|
||||
watch(data, (newVal) => {
|
||||
// newVal.planDto.offteachers.map(item => teacherInfos(item.teacherId));
|
||||
const teacherIdsArray = newVal.planDto.offteachers.map(item => item.teacherId);
|
||||
const teacherItemArr = []
|
||||
teacherIdsArray.forEach(id => {
|
||||
teacherItemArr.push(boeRequest(GET_USER_INFO_OLDURL, { userId: id }))
|
||||
})
|
||||
Promise.all(teacherItemArr).then(responses => {
|
||||
responses.map((arr)=>{
|
||||
const userInfo = arr.result;
|
||||
userInfo.avatar = userInfo?.avatar
|
||||
? userInfo?.avatar.includes('upload')
|
||||
? userInfo?.avatar
|
||||
: '/upload' + userInfo?.avatar
|
||||
: '/800e23f7-b58c-4192-820d-0c6a2b7544cc.png';
|
||||
const index = teacherIdsArray.indexOf(userInfo.userId)
|
||||
userInfo.realName = newVal.planDto.offteachers[index].teacherName
|
||||
teacherItem.value.push(userInfo)
|
||||
})
|
||||
}).catch(error => {
|
||||
console.log(error)
|
||||
})
|
||||
});
|
||||
const teacherItem = ref([])
|
||||
// const teacherInfos = async (id) => {
|
||||
// const res = await boeRequest(GET_USER_INFO_OLDURL, { userId: id });
|
||||
// const userInfo = res.result;
|
||||
// userInfo.avatar = userInfo.avatar
|
||||
// ? userInfo.avatar.includes('upload')
|
||||
// ? userInfo.avatar
|
||||
// : '/upload' + userInfo.avatar
|
||||
// : '/800e23f7-b58c-4192-820d-0c6a2b7544cc.png';
|
||||
// teacherItem.value.push(userInfo)
|
||||
// };
|
||||
const teacherInfo = useUserInfo( computed(() => data.value?.planDto?.teacherId));
|
||||
const activeName = ref("first");
|
||||
const isCourseEnd = computed(() => dayjs(data.value.planDto?.endTime).isBefore(dayjs()));
|
||||
|
||||
@@ -65,6 +65,22 @@
|
||||
@click="signClick"
|
||||
>{{ data.signFlag ? "已签到" : "签到" }}
|
||||
</botton>
|
||||
<botton
|
||||
v-if="data.planDto?.evalFlag !== 0"
|
||||
:style="{
|
||||
background: `${
|
||||
new Date(data.planDto?.beginTime).getTime() >
|
||||
new Date().getTime()
|
||||
? '#999'
|
||||
: data.isSurvery
|
||||
? '#999'
|
||||
: 'rgb(57, 146, 249)'
|
||||
}`,
|
||||
}"
|
||||
class="btn"
|
||||
@click="toSurvery"
|
||||
>{{ data.isSurvery ? "已评估" : "评估" }}
|
||||
</botton>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -132,14 +148,14 @@
|
||||
<div class="text">面授课讲师</div>
|
||||
<div class="box"></div>
|
||||
</div>
|
||||
<div class="teacheritem">
|
||||
<img class="peopleimg" :src="teacherInfo.avatar"/>
|
||||
<div class="teacheritem" v-for="(item,index) in teacherItem">
|
||||
<img class="peopleimg" :src="item.avatar"/>
|
||||
<div class="nameSpan" style="align-items: flex-start;justify-content:flex-start;flex-direction: column;padding-left: 10px;">
|
||||
<div class="teacherName" style="padding: 5px 0;">
|
||||
{{ data.planDto?.teacher }}
|
||||
{{ item.realName }}
|
||||
</div>
|
||||
<!-- <div class="introduce">{{ data.planDto?.bandDesc }}</div> -->
|
||||
<div class="introduce" style="margin: 0;">{{useOrgName(teacherInfo.orgNamePath)}}</div>
|
||||
<div class="introduce" style="margin: 0;">{{useOrgName(item.orgNamePath)}}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -148,9 +164,9 @@
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import {computed, onBeforeMount, onUnmounted, ref} from "vue";
|
||||
import {computed, onBeforeMount, onUnmounted, ref,watch} from "vue";
|
||||
import FileTypeImg from "@/components/FileTypeImg.vue";
|
||||
import {request, useRequest} from "@/api/request";
|
||||
import {request, useRequest,boeRequest} from "@/api/request";
|
||||
import {STU_OFFCOURSE_DETAIL, TASK_OFFCOURSE_NOTASK_SIGN,} from "@/api/api";
|
||||
import {useRoute, useRouter} from "vue-router";
|
||||
import {useUserInfo} from "@/api/utils";
|
||||
@@ -158,6 +174,7 @@ import {ElMessage} from "element-plus";
|
||||
import dayjs from "dayjs";
|
||||
import isBetween from "dayjs/plugin/isBetween";
|
||||
import { useOrgName } from "@/hooks/useOrgName.js";
|
||||
import {BASE, GET_USER_LIST,GET_USER_INFO_OLDURL} from "@/api/ThirdApi";
|
||||
|
||||
const router = useRouter();
|
||||
|
||||
@@ -168,6 +185,40 @@ const returnclick = () => router.back();
|
||||
const { query: { courseId }} = useRoute();
|
||||
|
||||
const { data } = useRequest(STU_OFFCOURSE_DETAIL, { courseId, usePermission: true, });
|
||||
watch(data, (newVal) => {
|
||||
// newVal.planDto.offteachers.map(item => teacherInfos(item.teacherId));
|
||||
const teacherIdsArray = newVal.planDto.offteachers.map(item => item.teacherId);
|
||||
const teacherItemArr = []
|
||||
teacherIdsArray.forEach(id => {
|
||||
teacherItemArr.push(boeRequest(GET_USER_INFO_OLDURL, { userId: id }))
|
||||
})
|
||||
Promise.all(teacherItemArr).then(responses => {
|
||||
responses.map((arr)=>{
|
||||
const userInfo = arr.result;
|
||||
userInfo.avatar = userInfo?.avatar
|
||||
? userInfo?.avatar.includes('upload')
|
||||
? userInfo?.avatar
|
||||
: '/upload' + userInfo?.avatar
|
||||
: '/800e23f7-b58c-4192-820d-0c6a2b7544cc.png';
|
||||
const index = teacherIdsArray.indexOf(userInfo.userId)
|
||||
userInfo.realName = newVal.planDto.offteachers[index].teacherName
|
||||
teacherItem.value.push(userInfo)
|
||||
})
|
||||
}).catch(error => {
|
||||
console.log(error)
|
||||
})
|
||||
});
|
||||
const teacherItem = ref([])
|
||||
// const teacherInfos = async (id) => {
|
||||
// const res = await boeRequest(GET_USER_INFO_OLDURL, { userId: id });
|
||||
// const userInfo = res.result;
|
||||
// userInfo.avatar = userInfo.avatar
|
||||
// ? userInfo.avatar.includes('upload')
|
||||
// ? userInfo.avatar
|
||||
// : '/upload' + userInfo.avatar
|
||||
// : '/800e23f7-b58c-4192-820d-0c6a2b7544cc.png';
|
||||
// teacherItem.value.push(userInfo)
|
||||
// };
|
||||
const teacherInfo = useUserInfo(computed(() => data.value?.planDto?.teacherId));
|
||||
const isAllowSign = computed(() => dayjs().isBetween(dayjs(data.value?.planDto?.beginTime).subtract(data.value?.planDto?.beforeStart || 0, "minute"), dayjs(data.value?.planDto?.afterStart ? data.value?.planDto?.beginTime : data.value?.planDto?.endTime).add(data.value?.planDto?.afterStart || 0, "minute")));
|
||||
|
||||
@@ -199,6 +250,28 @@ const signClick = () => {
|
||||
ElMessage.warning("签到成功");
|
||||
request(TASK_OFFCOURSE_NOTASK_SIGN, { courseId: courseId, taskId: courseId, type: 3 });
|
||||
};
|
||||
function toSurvery() {
|
||||
if (dayjs().isBefore(data.value.planDto.beginTime)) {
|
||||
ElMessage.warning("课程未开始,请耐心等待!");
|
||||
return;
|
||||
}
|
||||
if (!data.value.planDto.evalFlag) {
|
||||
ElMessage.warning("此课程无评估");
|
||||
return;
|
||||
}
|
||||
router.push({
|
||||
path: "/surveydetail",
|
||||
query:{
|
||||
id: data.value.planDto.id,
|
||||
courseId: data.value.planDto.assessmentId,
|
||||
pName: "面授课",
|
||||
infoId: data.value.planDto.id,
|
||||
chapterOrStageId: 0,
|
||||
sName: data.value.planDto.name,
|
||||
type: 3,
|
||||
}
|
||||
});
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
|
||||
@@ -199,7 +199,7 @@
|
||||
</div>
|
||||
<!-- 个人信息及学习进度 -->
|
||||
<!-- 学员积分及个人完成度排行榜 -->
|
||||
<div class="detailRB">
|
||||
<div class="detailRB" v-if="data.rankFlag">
|
||||
<div class="info">
|
||||
<div
|
||||
style="display:flex;justify-content: space-between;align-items: center;height: 56px;padding-left: 27px;padding-right: 27px;">
|
||||
@@ -757,7 +757,7 @@ function continueLearn(lastLearnedId) {
|
||||
z-index: 9;
|
||||
}
|
||||
.el-popper {
|
||||
// z-index: 0 !important;
|
||||
z-index: 0 !important;
|
||||
}
|
||||
.pathdetails {
|
||||
.el-dialog__body{
|
||||
|
||||
@@ -34,6 +34,11 @@
|
||||
<!-- 标题 -->
|
||||
<!-- 基本信息 -->
|
||||
<div class="bascinfo">
|
||||
<div class="header_wrap" v-if="data.projectInfoList&&type!=1">
|
||||
<div class="header_wrap_item" v-if="level!=0">项目名称:{{ data.projectInfoList[0].projectName }}</div>
|
||||
<div class="header_wrap_item">开课名称:{{ data.projectInfoList[0].courseName }}</div>
|
||||
<div>培训讲师:{{ data.projectInfoList.map(item => item.teacherName).join(',') }}</div>
|
||||
</div>
|
||||
<div>
|
||||
<div class="question" v-for="(value, index) in questionList " :key="index"
|
||||
:style="{ 'margin-top': index === 0 ? '57px' : '41px' }">
|
||||
@@ -176,7 +181,7 @@
|
||||
</div>
|
||||
<el-dialog v-model="centerDialogVisible" title="" width="20%" center :show-close="false" :align-center="true">
|
||||
<div style="text-align: center;font-size:16px;"> <span style="color:black">
|
||||
提交成功
|
||||
您已完成评估
|
||||
</span></div>
|
||||
<template #footer>
|
||||
<span class="dialog-footer">
|
||||
@@ -222,7 +227,7 @@ import dayjs from "dayjs";
|
||||
import {useTaskPage} from "@/api/useCommon";
|
||||
|
||||
const {
|
||||
query: { courseId, id: taskId, infoId, type, pName, sName, chapterOrStageId, projectStatus, projectEndTime },
|
||||
query: { courseId, id: taskId, infoId, type, pName, sName, chapterOrStageId, projectStatus, projectEndTime,isSubmitTrue,level },
|
||||
} = useRoute();
|
||||
const router = useRouter();
|
||||
const returnclick = () => {
|
||||
@@ -236,7 +241,7 @@ const { data } = useRequest(ASSESSMENT_QUERY(courseId), {
|
||||
chapterOrStageId,
|
||||
targetId: infoId ? infoId : 0
|
||||
});
|
||||
|
||||
console.log(data,'data')
|
||||
// 答题时间
|
||||
const answerTime = dayjs(new Date()).format("YYYY-MM-DD HH:mm:ss");
|
||||
|
||||
@@ -275,6 +280,10 @@ function orderArr(a, b) {
|
||||
return arrs;
|
||||
}
|
||||
onMounted(() => {
|
||||
if(isSubmitTrue==true){
|
||||
open();
|
||||
return
|
||||
}
|
||||
useRequest(ASSESSMENT_QUERY(courseId), {
|
||||
id: courseId,
|
||||
type,
|
||||
@@ -421,7 +430,15 @@ function submit() {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
|
||||
.header_wrap{
|
||||
margin: 10px 0 0 0;
|
||||
padding: 5px 0 5px 10px;
|
||||
background: #fff;
|
||||
margin-left: -680px;
|
||||
.header_wrap_item{
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
}
|
||||
.question .text {
|
||||
font-size: 16px;
|
||||
font-weight: 500;
|
||||
|
||||
@@ -167,7 +167,13 @@ export default defineConfig(({ command, mode }) =>
|
||||
},'/vote/editVoteInvolvedAndBrowse': {
|
||||
target: loadEnv(mode, process.cwd()).VITE_PROXY_URL,
|
||||
changeOrigin: true,
|
||||
}
|
||||
},'/stu/project/process': {
|
||||
target: loadEnv(mode, process.cwd()).VITE_PROXY_URL,
|
||||
changeOrigin: true,
|
||||
},'/stu/project/rank_list/point_list': {
|
||||
target: loadEnv(mode, process.cwd()).VITE_PROXY_URL,
|
||||
changeOrigin: true,
|
||||
},
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user