mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/fe-student.git
synced 2025-12-11 03:46:48 +08:00
init
This commit is contained in:
@@ -2,9 +2,9 @@
|
|||||||
<div class="moreactive" style="padding: 30px">
|
<div class="moreactive" style="padding: 30px">
|
||||||
<!-- 面包屑导航 -->
|
<!-- 面包屑导航 -->
|
||||||
<div class="crumb">
|
<div class="crumb">
|
||||||
<div>混合制项目</div>
|
<div>{{ pName }}</div>
|
||||||
<div style="margin-left: 6px; margin-right: 6px">/</div>
|
<div style="margin-left: 6px; margin-right: 6px">/</div>
|
||||||
<div>管理者进阶-腾飞班</div>
|
<div>{{ sName }}</div>
|
||||||
<div style="margin-left: 6px; margin-right: 6px">/</div>
|
<div style="margin-left: 6px; margin-right: 6px">/</div>
|
||||||
<div style="font-weight: 700; font-size: 16px">投票详情</div>
|
<div style="font-weight: 700; font-size: 16px">投票详情</div>
|
||||||
|
|
||||||
@@ -24,8 +24,8 @@
|
|||||||
<div class="left">
|
<div class="left">
|
||||||
<div class="title">
|
<div class="title">
|
||||||
<img
|
<img
|
||||||
style="width: 20px; height: 20px"
|
style="width: 20px; height: 20px"
|
||||||
src="../../assets/image/yuan.png"
|
src="../../assets/image/yuan.png"
|
||||||
/>
|
/>
|
||||||
<div class="text">参与情况</div>
|
<div class="text">参与情况</div>
|
||||||
<div class="box"></div>
|
<div class="box"></div>
|
||||||
@@ -36,8 +36,8 @@
|
|||||||
<div class="item1" style="color: #089dff">
|
<div class="item1" style="color: #089dff">
|
||||||
{{
|
{{
|
||||||
dataInfo.numberOfInvolved || dataInfo.numberOfInvolved == 0
|
dataInfo.numberOfInvolved || dataInfo.numberOfInvolved == 0
|
||||||
? dataInfo.numberOfInvolved
|
? dataInfo.numberOfInvolved
|
||||||
: "-"
|
: "-"
|
||||||
}}
|
}}
|
||||||
</div>
|
</div>
|
||||||
<div class="item2">参与数</div>
|
<div class="item2">参与数</div>
|
||||||
@@ -46,8 +46,8 @@
|
|||||||
<div class="item1" style="color: #387df7">
|
<div class="item1" style="color: #387df7">
|
||||||
{{
|
{{
|
||||||
dataInfo.votesTotal || dataInfo.votesTotal == 0
|
dataInfo.votesTotal || dataInfo.votesTotal == 0
|
||||||
? dataInfo.votesTotal
|
? dataInfo.votesTotal
|
||||||
: "-"
|
: "-"
|
||||||
}}
|
}}
|
||||||
</div>
|
</div>
|
||||||
<div class="item2">总票数</div>
|
<div class="item2">总票数</div>
|
||||||
@@ -56,8 +56,8 @@
|
|||||||
<div class="item1" style="color: #00c6ff">
|
<div class="item1" style="color: #00c6ff">
|
||||||
{{
|
{{
|
||||||
dataInfo.numberOfBrowse || dataInfo.numberOfBrowse == 0
|
dataInfo.numberOfBrowse || dataInfo.numberOfBrowse == 0
|
||||||
? dataInfo.numberOfBrowse
|
? dataInfo.numberOfBrowse
|
||||||
: "-"
|
: "-"
|
||||||
}}
|
}}
|
||||||
</div>
|
</div>
|
||||||
<div class="item2">浏览数</div>
|
<div class="item2">浏览数</div>
|
||||||
@@ -66,8 +66,8 @@
|
|||||||
|
|
||||||
<div class="title">
|
<div class="title">
|
||||||
<img
|
<img
|
||||||
style="width: 20px; height: 20px"
|
style="width: 20px; height: 20px"
|
||||||
src="../../assets/image/yuan.png"
|
src="../../assets/image/yuan.png"
|
||||||
/>
|
/>
|
||||||
<div class="text">参与投票</div>
|
<div class="text">参与投票</div>
|
||||||
<div class="box"></div>
|
<div class="box"></div>
|
||||||
@@ -75,9 +75,9 @@
|
|||||||
|
|
||||||
<div class="join">
|
<div class="join">
|
||||||
<div
|
<div
|
||||||
v-for="(item, index) in dataInfo.ballotVo?.voteStemVoList"
|
v-for="(item, index) in dataInfo.ballotVo?.voteStemVoList"
|
||||||
:key="index"
|
:key="index"
|
||||||
style="margin-bottom: 41px"
|
style="margin-bottom: 41px"
|
||||||
>
|
>
|
||||||
<div class="stem">
|
<div class="stem">
|
||||||
<div>{{ item.orderNumber }}、</div>
|
<div>{{ item.orderNumber }}、</div>
|
||||||
@@ -85,21 +85,21 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="options">
|
<div class="options">
|
||||||
<div
|
<div
|
||||||
v-for="(value, key) in item.optionDetailList"
|
v-for="(value, key) in item.optionDetailList"
|
||||||
:key="key"
|
:key="key"
|
||||||
style="
|
style="
|
||||||
width: 140px;
|
width: 140px;
|
||||||
margin-right: 114px;
|
margin-right: 114px;
|
||||||
margin-bottom: 25px;
|
margin-bottom: 25px;
|
||||||
"
|
"
|
||||||
>
|
>
|
||||||
<img
|
<img
|
||||||
style="width: 140px; height: 140px; border-radius: 8px"
|
style="width: 140px; height: 140px; border-radius: 8px"
|
||||||
:src="value.optionPictureAddress"
|
:src="value.optionPictureAddress"
|
||||||
/>
|
/>
|
||||||
<div class="radio">
|
<div class="radio">
|
||||||
<label>
|
<label>
|
||||||
<input type="radio" name="one" value="right" />
|
<input type="radio" name="one" value="right"/>
|
||||||
<div class="option"></div>
|
<div class="option"></div>
|
||||||
<div class="opt-text">{{ value.optionName }}</div>
|
<div class="opt-text">{{ value.optionName }}</div>
|
||||||
</label>
|
</label>
|
||||||
@@ -109,7 +109,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
style="
|
style="
|
||||||
width: 100%;
|
width: 100%;
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
@@ -122,8 +122,8 @@
|
|||||||
<div class="right">
|
<div class="right">
|
||||||
<div class="righttitle">
|
<div class="righttitle">
|
||||||
<img
|
<img
|
||||||
style="width: 20px; height: 20px"
|
style="width: 20px; height: 20px"
|
||||||
src="../../assets/image/yuan.png"
|
src="../../assets/image/yuan.png"
|
||||||
/>
|
/>
|
||||||
<div class="text">投票时间</div>
|
<div class="text">投票时间</div>
|
||||||
<div class="box"></div>
|
<div class="box"></div>
|
||||||
@@ -140,21 +140,21 @@
|
|||||||
<div class="endtimetext">
|
<div class="endtimetext">
|
||||||
距离结束还有
|
距离结束还有
|
||||||
<span class="te">{{
|
<span class="te">{{
|
||||||
parseInt(
|
parseInt(
|
||||||
dayjs(dataInfo?.voteEndTime).diff(dayjs(), "minute") / 60
|
dayjs(dataInfo?.voteEndTime).diff(dayjs(), "minute") / 60
|
||||||
)
|
)
|
||||||
}}</span
|
}}</span
|
||||||
> 小时 <span class="te">{{
|
> 小时 <span class="te">{{
|
||||||
dayjs(dataInfo?.voteEndTime).diff(dayjs(), "minute") % 60
|
dayjs(dataInfo?.voteEndTime).diff(dayjs(), "minute") % 60
|
||||||
}}</span
|
}}</span
|
||||||
> 分钟
|
> 分钟
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="righttitle">
|
<div class="righttitle">
|
||||||
<img
|
<img
|
||||||
style="width: 20px; height: 20px"
|
style="width: 20px; height: 20px"
|
||||||
src="../../assets/image/yuan.png"
|
src="../../assets/image/yuan.png"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<div class="text">投票说明</div>
|
<div class="text">投票说明</div>
|
||||||
@@ -162,8 +162,8 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="explain clearfix">
|
<div class="explain clearfix">
|
||||||
<div
|
<div
|
||||||
class="explaincontent"
|
class="explaincontent"
|
||||||
v-html="
|
v-html="
|
||||||
dataInfo?.voteExplain ? dataInfo?.voteExplain : '暂无说明'
|
dataInfo?.voteExplain ? dataInfo?.voteExplain : '暂无说明'
|
||||||
"
|
"
|
||||||
></div>
|
></div>
|
||||||
@@ -177,16 +177,13 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { useRequest } from "@/api/request";
|
import {useRequest} from "@/api/request";
|
||||||
import {
|
import {
|
||||||
ROUTER_CHAPTER_LIST,
|
|
||||||
ROUTER_LIST,
|
|
||||||
TASK_VOTE_DETAIL,
|
|
||||||
VOTE_DETAIL2,
|
VOTE_DETAIL2,
|
||||||
} from "@/api/api";
|
} from "@/api/api";
|
||||||
import dayjs from "dayjs";
|
import dayjs from "dayjs";
|
||||||
import { useRoute } from "vue-router/dist/vue-router";
|
import {useRoute} from "vue-router/dist/vue-router";
|
||||||
import { watch, reactive, toRefs } from "vue";
|
import {watch, reactive, toRefs} from "vue";
|
||||||
// const { data } = useRequest(TASK_VOTE_DETAIL, {});
|
// const { data } = useRequest(TASK_VOTE_DETAIL, {});
|
||||||
// console.log("datadatadata", data);
|
// console.log("datadatadata", data);
|
||||||
// const state = reactive({
|
// const state = reactive({
|
||||||
@@ -194,12 +191,13 @@ import { watch, reactive, toRefs } from "vue";
|
|||||||
// });
|
// });
|
||||||
// let { votedetail } = toRefs(state);
|
// let { votedetail } = toRefs(state);
|
||||||
const {
|
const {
|
||||||
query: { courseId },
|
query: {courseId, pName, sName},
|
||||||
} = useRoute();
|
} = useRoute();
|
||||||
//获取基本信息
|
//获取基本信息
|
||||||
const { data: dataInfo } = useRequest(VOTE_DETAIL2(courseId));
|
const {data: dataInfo} = useRequest(VOTE_DETAIL2(courseId));
|
||||||
|
|
||||||
const submitVote = () => {};
|
const submitVote = () => {
|
||||||
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<!-- Add "scoped" attribute to limit CSS to this component only -->
|
<!-- Add "scoped" attribute to limit CSS to this component only -->
|
||||||
@@ -399,26 +397,26 @@ const submitVote = () => {};
|
|||||||
.allbox1 {
|
.allbox1 {
|
||||||
margin-right: 22px;
|
margin-right: 22px;
|
||||||
background: linear-gradient(
|
background: linear-gradient(
|
||||||
0deg,
|
0deg,
|
||||||
rgba(160, 193, 230, 0) 0%,
|
rgba(160, 193, 230, 0) 0%,
|
||||||
rgba(161, 195, 231, 0.2) 100%
|
rgba(161, 195, 231, 0.2) 100%
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
.allbox2 {
|
.allbox2 {
|
||||||
margin-right: 22px;
|
margin-right: 22px;
|
||||||
background: linear-gradient(
|
background: linear-gradient(
|
||||||
0deg,
|
0deg,
|
||||||
rgba(177, 219, 229, 0) 0%,
|
rgba(177, 219, 229, 0) 0%,
|
||||||
rgba(172, 216, 227, 0.2) 100%
|
rgba(172, 216, 227, 0.2) 100%
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
.allbox3 {
|
.allbox3 {
|
||||||
background: linear-gradient(
|
background: linear-gradient(
|
||||||
0deg,
|
0deg,
|
||||||
rgba(195, 209, 234, 0) 0%,
|
rgba(195, 209, 234, 0) 0%,
|
||||||
rgba(191, 206, 231, 0.2) 100%
|
rgba(191, 206, 231, 0.2) 100%
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -453,6 +451,7 @@ const submitVote = () => {};
|
|||||||
margin-top: 32px;
|
margin-top: 32px;
|
||||||
margin-left: 21px;
|
margin-left: 21px;
|
||||||
flex: 1;
|
flex: 1;
|
||||||
|
|
||||||
.stem {
|
.stem {
|
||||||
display: flex;
|
display: flex;
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
@@ -460,22 +459,26 @@ const submitVote = () => {};
|
|||||||
color: #333330;
|
color: #333330;
|
||||||
line-height: 38px;
|
line-height: 38px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.options {
|
.options {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
}
|
}
|
||||||
|
|
||||||
.radio {
|
.radio {
|
||||||
margin-top: 14px;
|
margin-top: 14px;
|
||||||
margin-left: -16px;
|
margin-left: -16px;
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
|
|
||||||
.radio label {
|
.radio label {
|
||||||
line-height: 20px;
|
line-height: 20px;
|
||||||
position: relative;
|
position: relative;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
font-weight: normal;
|
font-weight: normal;
|
||||||
|
|
||||||
.opt-text {
|
.opt-text {
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
|
|||||||
@@ -2,9 +2,9 @@
|
|||||||
<div class="moreactive">
|
<div class="moreactive">
|
||||||
<!-- 面包屑导航 -->
|
<!-- 面包屑导航 -->
|
||||||
<div class="crumb">
|
<div class="crumb">
|
||||||
<div>混合制项目</div>
|
<div>{{ pName }}</div>
|
||||||
<div style="margin-left: 6px; margin-right: 6px">/</div>
|
<div style="margin-left: 6px; margin-right: 6px">/</div>
|
||||||
<div>管理者进阶-腾飞班</div>
|
<div>{{ sName }}</div>
|
||||||
<div style="margin-left: 6px; margin-right: 6px">/</div>
|
<div style="margin-left: 6px; margin-right: 6px">/</div>
|
||||||
<div style="font-weight: 700; font-size: 16px">辩论详情</div>
|
<div style="font-weight: 700; font-size: 16px">辩论详情</div>
|
||||||
<div class="preNext">
|
<div class="preNext">
|
||||||
@@ -85,7 +85,7 @@ import { TASK_VOTE_DETAIL, VOTE_DETAIL } from "@/api/api";
|
|||||||
import { useRoute } from "vue-router/dist/vue-router";
|
import { useRoute } from "vue-router/dist/vue-router";
|
||||||
|
|
||||||
const {
|
const {
|
||||||
query: { id: voteSubmitId },
|
query: { id: voteSubmitId, pName, sName },
|
||||||
} = useRoute();
|
} = useRoute();
|
||||||
const { data } = useRequest(TASK_VOTE_DETAIL, { voteSubmitId });
|
const { data } = useRequest(TASK_VOTE_DETAIL, { voteSubmitId });
|
||||||
const { data: voteDetail } = useRequest(VOTE_DETAIL, { voteSubmitId });
|
const { data: voteDetail } = useRequest(VOTE_DETAIL, { voteSubmitId });
|
||||||
|
|||||||
@@ -5,9 +5,9 @@
|
|||||||
style="display: flex; align-items: center; justify-content: space-between"
|
style="display: flex; align-items: center; justify-content: space-between"
|
||||||
>
|
>
|
||||||
<div class="crumb">
|
<div class="crumb">
|
||||||
<div>混合制项目</div>
|
<div>{{ pName }}</div>
|
||||||
<div style="margin-left: 6px; margin-right: 6px">/</div>
|
<div style="margin-left: 6px; margin-right: 6px">/</div>
|
||||||
<div>管理者进阶-腾飞班</div>
|
<div>{{ sName }}</div>
|
||||||
<div style="margin-left: 6px; margin-right: 6px">/</div>
|
<div style="margin-left: 6px; margin-right: 6px">/</div>
|
||||||
<div style="font-weight: 700; font-size: 16px">讨论详情</div>
|
<div style="font-weight: 700; font-size: 16px">讨论详情</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -110,7 +110,7 @@ import { useRoute, useRouter } from "vue-router";
|
|||||||
|
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const {
|
const {
|
||||||
query: { id, type },
|
query: { id, type, pName, sName },
|
||||||
} = useRoute();
|
} = useRoute();
|
||||||
|
|
||||||
const param = ref({
|
const param = ref({
|
||||||
|
|||||||
@@ -5,9 +5,9 @@
|
|||||||
style="display: flex; align-items: center; justify-content: space-between"
|
style="display: flex; align-items: center; justify-content: space-between"
|
||||||
>
|
>
|
||||||
<div class="crumb">
|
<div class="crumb">
|
||||||
<div>混合制项目</div>
|
<div>{{ pName }}</div>
|
||||||
<div style="margin-left: 6px; margin-right: 6px">/</div>
|
<div style="margin-left: 6px; margin-right: 6px">/</div>
|
||||||
<div>管理者进阶-腾飞班</div>
|
<div>{{ sName }}</div>
|
||||||
<div style="margin-left: 6px; margin-right: 6px">/</div>
|
<div style="margin-left: 6px; margin-right: 6px">/</div>
|
||||||
<div style="font-weight: 700; font-size: 16px">讨论详情</div>
|
<div style="font-weight: 700; font-size: 16px">讨论详情</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -295,7 +295,7 @@ import {
|
|||||||
import UploadImg from "@/components/img/UploadImg.vue";
|
import UploadImg from "@/components/img/UploadImg.vue";
|
||||||
|
|
||||||
const {
|
const {
|
||||||
query: { id, discussSubmitId, type },
|
query: { id, discussSubmitId, type, pName, sName },
|
||||||
} = useRoute();
|
} = useRoute();
|
||||||
|
|
||||||
const { data: commontList, fetchData: commonFetch } = usePage(COMMENT_LIST, {
|
const { data: commontList, fetchData: commonFetch } = usePage(COMMENT_LIST, {
|
||||||
|
|||||||
@@ -5,9 +5,9 @@
|
|||||||
style="display: flex; align-items: center; justify-content: space-between"
|
style="display: flex; align-items: center; justify-content: space-between"
|
||||||
>
|
>
|
||||||
<div class="crumb">
|
<div class="crumb">
|
||||||
<div>混合制项目</div>
|
<div>{{ pName }}</div>
|
||||||
<div style="margin-left: 6px; margin-right: 6px">/</div>
|
<div style="margin-left: 6px; margin-right: 6px">/</div>
|
||||||
<div>管理者进阶-腾飞班</div>
|
<div>{{ sName }}</div>
|
||||||
<div style="margin-left: 6px; margin-right: 6px">/</div>
|
<div style="margin-left: 6px; margin-right: 6px">/</div>
|
||||||
<div style="font-weight: 700; font-size: 16px">考试详情</div>
|
<div style="font-weight: 700; font-size: 16px">考试详情</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -119,7 +119,7 @@ import { usePage, useRequest } from "@/api/request";
|
|||||||
import { COMMENT_LIST, DISCUSS_DETAIL, EXAMINATION_QUERY } from "@/api/api";
|
import { COMMENT_LIST, DISCUSS_DETAIL, EXAMINATION_QUERY } from "@/api/api";
|
||||||
|
|
||||||
const {
|
const {
|
||||||
query: { id, discussSubmitId },
|
query: { id, discussSubmitId, pName, sName },
|
||||||
} = useRoute();
|
} = useRoute();
|
||||||
|
|
||||||
const { data } = useRequest(EXAMINATION_QUERY(159), {});
|
const { data } = useRequest(EXAMINATION_QUERY(159), {});
|
||||||
|
|||||||
@@ -2,9 +2,9 @@
|
|||||||
<div class="homework" style="padding: 30px">
|
<div class="homework" style="padding: 30px">
|
||||||
<!-- 面包屑导航 -->
|
<!-- 面包屑导航 -->
|
||||||
<div class="crumb">
|
<div class="crumb">
|
||||||
<div>混合制项目</div>
|
<div>{{ pName }}</div>
|
||||||
<div style="margin-left: 6px; margin-right: 6px">/</div>
|
<div style="margin-left: 6px; margin-right: 6px">/</div>
|
||||||
<div>管理者进阶-腾飞班</div>
|
<div>{{ sName }}</div>
|
||||||
<div style="margin-left: 6px; margin-right: 6px">/</div>
|
<div style="margin-left: 6px; margin-right: 6px">/</div>
|
||||||
<div style="font-weight: 700; font-size: 16px">作业详情</div>
|
<div style="font-weight: 700; font-size: 16px">作业详情</div>
|
||||||
|
|
||||||
@@ -268,7 +268,7 @@ const sbValue = ref({
|
|||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
|
|
||||||
const {
|
const {
|
||||||
query: {courseId: workId, type, id: taskId},
|
query: {courseId: workId, type, id: taskId, pName, sName},
|
||||||
} = useRoute();
|
} = useRoute();
|
||||||
|
|
||||||
const {data} = useRequest(TASK_WORK_DETAIL, {workId, taskId});
|
const {data} = useRequest(TASK_WORK_DETAIL, {workId, taskId});
|
||||||
|
|||||||
@@ -2,9 +2,9 @@
|
|||||||
<div class="moreactive" style="padding: 30px">
|
<div class="moreactive" style="padding: 30px">
|
||||||
<!-- 面包屑导航 -->
|
<!-- 面包屑导航 -->
|
||||||
<div class="crumb">
|
<div class="crumb">
|
||||||
<div>混合制项目</div>
|
<div>{{ pName }}</div>
|
||||||
<div style="margin-left: 6px; margin-right: 6px">/</div>
|
<div style="margin-left: 6px; margin-right: 6px">/</div>
|
||||||
<div>管理者进阶-腾飞班</div>
|
<div>{{ sName }}</div>
|
||||||
<div style="margin-left: 6px; margin-right: 6px">/</div>
|
<div style="margin-left: 6px; margin-right: 6px">/</div>
|
||||||
<div style="font-weight: 700; font-size: 16px">直播详情</div>
|
<div style="font-weight: 700; font-size: 16px">直播详情</div>
|
||||||
|
|
||||||
@@ -161,7 +161,7 @@ import { useUserInfo } from "@/api/utils";
|
|||||||
import { ElMessage } from "element-plus";
|
import { ElMessage } from "element-plus";
|
||||||
|
|
||||||
const {
|
const {
|
||||||
query: { courseId: liveId, id: taskId, type },
|
query: { courseId: liveId, id: taskId, type, pName, sName },
|
||||||
} = useRoute();
|
} = useRoute();
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
|
|
||||||
|
|||||||
@@ -2,9 +2,9 @@
|
|||||||
<div class="moreactive" style="padding: 30px">
|
<div class="moreactive" style="padding: 30px">
|
||||||
<!-- 面包屑导航 -->
|
<!-- 面包屑导航 -->
|
||||||
<div class="crumb">
|
<div class="crumb">
|
||||||
<div>混合制项目</div>
|
<div>{{ pName }}</div>
|
||||||
<div style="margin-left: 6px; margin-right: 6px">/</div>
|
<div style="margin-left: 6px; margin-right: 6px">/</div>
|
||||||
<div>管理者进阶-腾飞班</div>
|
<div>{{ sName }}</div>
|
||||||
<div style="margin-left: 6px; margin-right: 6px">/</div>
|
<div style="margin-left: 6px; margin-right: 6px">/</div>
|
||||||
<div style="font-weight: 700; font-size: 16px">活动详情</div>
|
<div style="font-weight: 700; font-size: 16px">活动详情</div>
|
||||||
|
|
||||||
@@ -137,7 +137,7 @@ import {useRoute} from "vue-router/dist/vue-router";
|
|||||||
import {ElMessage} from "element-plus";
|
import {ElMessage} from "element-plus";
|
||||||
|
|
||||||
const {
|
const {
|
||||||
query: {courseId: activityId, id: taskId, type},
|
query: {courseId: activityId, id: taskId, type, pName, sName},
|
||||||
} = useRoute();
|
} = useRoute();
|
||||||
|
|
||||||
const {data} = useRequest(ACTIVITY, {activityId});
|
const {data} = useRequest(ACTIVITY, {activityId});
|
||||||
|
|||||||
@@ -2,12 +2,12 @@
|
|||||||
<div class="pathdetails" style="padding: 30px">
|
<div class="pathdetails" style="padding: 30px">
|
||||||
<!-- 面包屑导航 -->
|
<!-- 面包屑导航 -->
|
||||||
<div class="crumb">
|
<div class="crumb">
|
||||||
<div>产品经理学习路径图</div>
|
<!-- <div>产品经理学习路径图</div>-->
|
||||||
<div style="margin-left: 6px; margin-right: 6px">/</div>
|
<!-- <div style="margin-left: 6px; margin-right: 6px">/</div>-->
|
||||||
<div style="font-weight: 700">路径图详情</div>
|
<div style="font-weight: 700">项目详情</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- 面包屑导航 -->
|
<!-- 面包屑导航 -->
|
||||||
<div class="pdname">中级产品经理</div>
|
<div class="pdname">{{ useInfo.bandDesc }}</div>
|
||||||
<!-- 详细信息 -->
|
<!-- 详细信息 -->
|
||||||
<div class="detailinfo">
|
<div class="detailinfo">
|
||||||
<div class="detailL">
|
<div class="detailL">
|
||||||
@@ -132,36 +132,31 @@
|
|||||||
<el-tabs v-model="activeName" @tab-click="handleClick">
|
<el-tabs v-model="activeName" @tab-click="handleClick">
|
||||||
<el-tab-pane label="课程公告" name="first">
|
<el-tab-pane label="课程公告" name="first">
|
||||||
<div class="notice">
|
<div class="notice">
|
||||||
请各位选课的同学提前阅读本课程的
|
{{data.remark || '暂无公告'}}
|
||||||
“教学大纲与计划”“课程考核要求”与“学习要求”
|
|
||||||
,并按给定的中学化学教学主题分好小组 <br />
|
|
||||||
每位同学在网上学习的活动轨迹都会自动被系统记录将作为大家个人线上参与的评价依据;<br />
|
|
||||||
请大家务必在规定的时间内提交作业,否则会被系统自动记录为“迟交”或“未交”则会影响线上参与的平时成
|
|
||||||
绩;<br />
|
|
||||||
</div>
|
</div>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane label="共享文档" name="second">
|
<el-tab-pane label="共享文档" name="second">
|
||||||
<div style="padding: 19px 30px 17px 28px">
|
<!-- <div style="padding: 19px 30px 17px 28px">-->
|
||||||
<div
|
<!-- <div-->
|
||||||
v-for="(value, index) in sharedoc"
|
<!-- v-for="(value, index) in sharedoc"-->
|
||||||
:key="index"
|
<!-- :key="index"-->
|
||||||
style="
|
<!-- style="-->
|
||||||
display: flex;
|
<!-- display: flex;-->
|
||||||
align-items: center;
|
<!-- align-items: center;-->
|
||||||
margin-bottom: 15px;
|
<!-- margin-bottom: 15px;-->
|
||||||
"
|
<!-- "-->
|
||||||
>
|
<!-- >-->
|
||||||
<img :src="value.img" style="width: 22px; height: 26px" />
|
<!-- <img :src="value.img" style="width: 22px; height: 26px" />-->
|
||||||
<div class="sharedocname">{{ value.name }}</div>
|
<!-- <div class="sharedocname">{{ value.name }}</div>-->
|
||||||
<div class="download">
|
<!-- <div class="download">-->
|
||||||
<img
|
<!-- <img-->
|
||||||
src="../../assets/image/download.png"
|
<!-- src="../../assets/image/download.png"-->
|
||||||
style="width: 16px; height: 15px"
|
<!-- style="width: 16px; height: 15px"-->
|
||||||
/>
|
<!-- />-->
|
||||||
<div style="margin-left: 7px">下载</div>
|
<!-- <div style="margin-left: 7px">下载</div>-->
|
||||||
</div>
|
<!-- </div>-->
|
||||||
</div>
|
<!-- </div>-->
|
||||||
</div>
|
<!-- </div>-->
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
</el-tabs>
|
</el-tabs>
|
||||||
</div>
|
</div>
|
||||||
@@ -302,7 +297,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { reactive, ref } from "vue";
|
import {computed, reactive, ref} from "vue";
|
||||||
import word from "@/assets/image/file/word.png";
|
import word from "@/assets/image/file/word.png";
|
||||||
import ppt from "@/assets/image/file/ppt.png";
|
import ppt from "@/assets/image/file/ppt.png";
|
||||||
import pdf from "@/assets/image/file/pdf.png";
|
import pdf from "@/assets/image/file/pdf.png";
|
||||||
@@ -315,13 +310,15 @@ import img from "@/assets/image/uploadimg.png";
|
|||||||
import { useRequest, request } from "@/api/request";
|
import { useRequest, request } from "@/api/request";
|
||||||
import { PROJECT_PROCESS, ROUTER_PROCESS, LINK_DETAILS } from "@/api/api";
|
import { PROJECT_PROCESS, ROUTER_PROCESS, LINK_DETAILS } from "@/api/api";
|
||||||
import { useRoute, useRouter } from "vue-router";
|
import { useRoute, useRouter } from "vue-router";
|
||||||
|
import store from "@/store";
|
||||||
|
|
||||||
const {
|
const {
|
||||||
query: { courseId },
|
query: { courseId },
|
||||||
} = useRoute();
|
} = useRoute();
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const { data } = useRequest(PROJECT_PROCESS, { projectId: courseId });
|
const { data } = useRequest(PROJECT_PROCESS, { projectId: courseId });
|
||||||
console.log("data", data);
|
const useInfo = computed(() => store.state.userInfo);
|
||||||
|
|
||||||
const activeName = ref("first");
|
const activeName = ref("first");
|
||||||
|
|
||||||
const handleClick = (tab, event) => {
|
const handleClick = (tab, event) => {
|
||||||
|
|||||||
@@ -20,42 +20,42 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div :style="{ display: !showmapdetail ? 'flex' : 'none' }">
|
<div :style="{ display: !showmapdetail ? 'flex' : 'none' }">
|
||||||
<!-- <el-popover width="475px" trigger="hover" popper-class="lppopover">-->
|
<!-- <el-popover width="475px" trigger="hover" popper-class="lppopover">-->
|
||||||
<!-- <div>-->
|
<!-- <div>-->
|
||||||
<!-- <div class="finish">-->
|
<!-- <div class="finish">-->
|
||||||
<!-- <img-->
|
<!-- <img-->
|
||||||
<!-- src="../../assets/image/circle.png"-->
|
<!-- src="../../assets/image/circle.png"-->
|
||||||
<!-- style="width: 20px; height: 20px"-->
|
<!-- style="width: 20px; height: 20px"-->
|
||||||
<!-- />-->
|
<!-- />-->
|
||||||
<!-- <div class="text">未完成</div>-->
|
<!-- <div class="text">未完成</div>-->
|
||||||
<!-- <div class="box"></div>-->
|
<!-- <div class="box"></div>-->
|
||||||
<!-- </div>-->
|
<!-- </div>-->
|
||||||
<!-- <div-->
|
<!-- <div-->
|
||||||
<!-- v-for="(value, index) in unCompleteTaskList"-->
|
<!-- v-for="(value, index) in unCompleteTaskList"-->
|
||||||
<!-- :key="index"-->
|
<!-- :key="index"-->
|
||||||
<!-- class="tasks"-->
|
<!-- class="tasks"-->
|
||||||
<!-- :style="{-->
|
<!-- :style="{-->
|
||||||
<!-- 'border-bottom':-->
|
<!-- 'border-bottom':-->
|
||||||
<!-- index === unCompleteTaskList.length - 1-->
|
<!-- index === unCompleteTaskList.length - 1-->
|
||||||
<!-- ? null-->
|
<!-- ? null-->
|
||||||
<!-- : '1px solid rgba(229, 228, 228, 1)',-->
|
<!-- : '1px solid rgba(229, 228, 228, 1)',-->
|
||||||
<!-- }"-->
|
<!-- }"-->
|
||||||
<!-- >-->
|
<!-- >-->
|
||||||
<!-- <div style="font-size: 14px; font-weight: 500; color: #677d86">-->
|
<!-- <div style="font-size: 14px; font-weight: 500; color: #677d86">-->
|
||||||
<!-- {{ value.name }}-->
|
<!-- {{ value.name }}-->
|
||||||
<!-- </div>-->
|
<!-- </div>-->
|
||||||
<!-- <img-->
|
<!-- <img-->
|
||||||
<!-- style="width: 20px; height: 20px"-->
|
<!-- style="width: 20px; height: 20px"-->
|
||||||
<!-- src="../../assets/image/go.png"-->
|
<!-- src="../../assets/image/go.png"-->
|
||||||
<!-- @click="toUnTask(chapterId)"-->
|
<!-- @click="toUnTask(chapterId)"-->
|
||||||
<!-- />-->
|
<!-- />-->
|
||||||
<!-- </div>-->
|
<!-- </div>-->
|
||||||
<!-- </div>-->
|
<!-- </div>-->
|
||||||
<!-- <template #reference>-->
|
<!-- <template #reference>-->
|
||||||
<!-- todo #学习路径 只会有一个未完成任务么?是否是直接跳到任务详情-->
|
<!-- todo #学习路径 只会有一个未完成任务么?是否是直接跳到任务详情-->
|
||||||
<!-- <div class="titleR">进入未完成任务</div>-->
|
<!-- <div class="titleR">进入未完成任务</div>-->
|
||||||
<!-- </template>-->
|
<!-- </template>-->
|
||||||
<!-- </el-popover>-->
|
<!-- </el-popover>-->
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
:style="{ display: showmapdetail ? 'flex' : 'none' }"
|
:style="{ display: showmapdetail ? 'flex' : 'none' }"
|
||||||
@@ -140,7 +140,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
import {reactive, toRefs, ref, onMounted} from "vue";
|
import {reactive, toRefs, ref, onMounted, computed} from "vue";
|
||||||
import nostarted from "../../assets/image/nostarted.png";
|
import nostarted from "../../assets/image/nostarted.png";
|
||||||
import completed from "../../assets/image/completed.png";
|
import completed from "../../assets/image/completed.png";
|
||||||
import ongoing from "../../assets/image/ongoing.png";
|
import ongoing from "../../assets/image/ongoing.png";
|
||||||
@@ -152,22 +152,16 @@ import {
|
|||||||
} from "@/api/api";
|
} from "@/api/api";
|
||||||
import {useImage} from "@/api/utils";
|
import {useImage} from "@/api/utils";
|
||||||
import {useRouter} from "vue-router";
|
import {useRouter} from "vue-router";
|
||||||
import {GET_USER_INFO} from "@/api/ThirdApi";
|
import store from "@/store";
|
||||||
|
|
||||||
const detail = ref();
|
const detail = ref();
|
||||||
const useInfo = ref({});
|
const useInfo = computed(() => store.state.userInfo);
|
||||||
const {data} = usePage(ROUTER_LIST, {});
|
const {data} = usePage(ROUTER_LIST, {});
|
||||||
|
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
|
|
||||||
// const {unCompleteTaskList} = useRequest(ROUTER_UNCOMPLETE_LIST, {});
|
// const {unCompleteTaskList} = useRequest(ROUTER_UNCOMPLETE_LIST, {});
|
||||||
|
|
||||||
onMounted(()=>{
|
|
||||||
boeRequest(GET_USER_INFO).then(res=>{
|
|
||||||
useInfo.value=res.result
|
|
||||||
})
|
|
||||||
})
|
|
||||||
|
|
||||||
const state = reactive({
|
const state = reactive({
|
||||||
showmapdetail: false,
|
showmapdetail: false,
|
||||||
});
|
});
|
||||||
@@ -177,7 +171,7 @@ const returnfun = () => {
|
|||||||
state.showmapdetail = false;
|
state.showmapdetail = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
async function gofun({routerId}) {
|
async function gofun({routerId, name: routerName}) {
|
||||||
// console.log(routerId)
|
// console.log(routerId)
|
||||||
// const data = await request(ROUTER_CHAPTER_LIST, {stuChapterListVo: {routerId}})
|
// const data = await request(ROUTER_CHAPTER_LIST, {stuChapterListVo: {routerId}})
|
||||||
// detail.value = data.data
|
// detail.value = data.data
|
||||||
@@ -185,8 +179,8 @@ async function gofun({routerId}) {
|
|||||||
// router.push({path: "/pathdetails", query: {routerId}});
|
// router.push({path: "/pathdetails", query: {routerId}});
|
||||||
import.meta.env.DEV ? router.push({
|
import.meta.env.DEV ? router.push({
|
||||||
path: "/pathdetails",
|
path: "/pathdetails",
|
||||||
query: {routerId}
|
query: {routerId, routerName}
|
||||||
}) : window.parent.location.href = `http://u-pre.boe.com/pc/forward?to=/fe-student/pathdetails¶ms=${encodeURIComponent(`routerId=${routerId}`)}`
|
}) : window.parent.location.href = `http://u-pre.boe.com/pc/forward?to=/fe-student/pathdetails¶ms=${encodeURIComponent(`routerId=${routerId}&routerName=${routerName}`)}`
|
||||||
}
|
}
|
||||||
|
|
||||||
function toUnTask() {
|
function toUnTask() {
|
||||||
|
|||||||
@@ -2,12 +2,12 @@
|
|||||||
<div class="pathdetails" style="padding: 30px">
|
<div class="pathdetails" style="padding: 30px">
|
||||||
<!-- 面包屑导航 -->
|
<!-- 面包屑导航 -->
|
||||||
<div class="crumb">
|
<div class="crumb">
|
||||||
<div>产品经理学习路径图</div>
|
<div>{{ routerName }}</div>
|
||||||
<div style="margin-left: 6px; margin-right: 6px">/</div>
|
<div style="margin-left: 6px; margin-right: 6px">/</div>
|
||||||
<div style="font-weight: 700">路径图详情</div>
|
<div style="font-weight: 700">路径图详情</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- 面包屑导航 -->
|
<!-- 面包屑导航 -->
|
||||||
<div class="pdname">中级产品经理</div>
|
<div class="pdname">{{ useInfo.bandDesc }}</div>
|
||||||
<!-- 详细信息 -->
|
<!-- 详细信息 -->
|
||||||
<div class="detailinfo">
|
<div class="detailinfo">
|
||||||
<div class="detailL">
|
<div class="detailL">
|
||||||
@@ -114,7 +114,7 @@
|
|||||||
:style="{
|
:style="{
|
||||||
background: `${types.path[value.type] ? '#2478ff' : '#999'}`,
|
background: `${types.path[value.type] ? '#2478ff' : '#999'}`,
|
||||||
}"
|
}"
|
||||||
@click="toFinish(value,i.name)"
|
@click="toFinish(value,i.chapterName)"
|
||||||
>
|
>
|
||||||
{{
|
{{
|
||||||
value.status === 1
|
value.status === 1
|
||||||
@@ -149,36 +149,31 @@
|
|||||||
<el-tabs v-model="activeName" @tab-click="handleClick">
|
<el-tabs v-model="activeName" @tab-click="handleClick">
|
||||||
<el-tab-pane label="课程公告" name="first">
|
<el-tab-pane label="课程公告" name="first">
|
||||||
<div class="notice">
|
<div class="notice">
|
||||||
请各位选课的同学提前阅读本课程的
|
{{data.remark || '暂无公告'}}
|
||||||
“教学大纲与计划”“课程考核要求”与“学习要求”
|
|
||||||
,并按给定的中学化学教学主题分好小组 <br/>
|
|
||||||
每位同学在网上学习的活动轨迹都会自动被系统记录将作为大家个人线上参与的评价依据;<br/>
|
|
||||||
请大家务必在规定的时间内提交作业,否则会被系统自动记录为“迟交”或“未交”则会影响线上参与的平时成
|
|
||||||
绩;<br/>
|
|
||||||
</div>
|
</div>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane label="共享文档" name="second">
|
<el-tab-pane label="共享文档" name="second">
|
||||||
<div style="padding: 19px 30px 17px 28px">
|
<!-- <div style="padding: 19px 30px 17px 28px">-->
|
||||||
<div
|
<!-- <div-->
|
||||||
v-for="(value, index) in sharedoc"
|
<!-- v-for="(value, index) in sharedoc"-->
|
||||||
:key="index"
|
<!-- :key="index"-->
|
||||||
style="
|
<!-- style="-->
|
||||||
display: flex;
|
<!-- display: flex;-->
|
||||||
align-items: center;
|
<!-- align-items: center;-->
|
||||||
margin-bottom: 15px;
|
<!-- margin-bottom: 15px;-->
|
||||||
"
|
<!-- "-->
|
||||||
>
|
<!-- >-->
|
||||||
<img :src="value.img" style="width: 22px; height: 26px"/>
|
<!-- <img :src="value.img" style="width: 22px; height: 26px"/>-->
|
||||||
<div class="sharedocname">{{ value.name }}</div>
|
<!-- <div class="sharedocname">{{ value.name }}</div>-->
|
||||||
<div class="download">
|
<!-- <div class="download">-->
|
||||||
<img
|
<!-- <img-->
|
||||||
src="../../assets/image/download.png"
|
<!-- src="../../assets/image/download.png"-->
|
||||||
style="width: 16px; height: 15px"
|
<!-- style="width: 16px; height: 15px"-->
|
||||||
/>
|
<!-- />-->
|
||||||
<div style="margin-left: 7px">下载</div>
|
<!-- <div style="margin-left: 7px">下载</div>-->
|
||||||
</div>
|
<!-- </div>-->
|
||||||
</div>
|
<!-- </div>-->
|
||||||
</div>
|
<!-- </div>-->
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
</el-tabs>
|
</el-tabs>
|
||||||
</div>
|
</div>
|
||||||
@@ -352,15 +347,17 @@ import {ROUTER_PROCESS, LINK_DETAILS} from "@/api/api";
|
|||||||
import {useRoute, useRouter} from "vue-router";
|
import {useRoute, useRouter} from "vue-router";
|
||||||
import {ElMessage} from "element-plus";
|
import {ElMessage} from "element-plus";
|
||||||
import {useUserInfo} from "@/api/utils";
|
import {useUserInfo} from "@/api/utils";
|
||||||
|
import store from "@/store";
|
||||||
|
|
||||||
const {
|
const {
|
||||||
query: {routerId},
|
query: {routerId,routerName},
|
||||||
} = useRoute();
|
} = useRoute();
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const {data} = useRequest(ROUTER_PROCESS, {routerId});
|
const {data} = useRequest(ROUTER_PROCESS, {routerId});
|
||||||
const {avatar: userAvatar} = useUserInfo(
|
const {avatar: userAvatar} = useUserInfo(
|
||||||
computed(() => data.value?.userInfoBo?.userId)
|
computed(() => data.value?.userInfoBo?.userId)
|
||||||
);
|
);
|
||||||
|
const useInfo = computed(() => store.state.userInfo);
|
||||||
|
|
||||||
const activeName = ref("first");
|
const activeName = ref("first");
|
||||||
|
|
||||||
@@ -461,7 +458,7 @@ function toFinish(d, sName) {
|
|||||||
}
|
}
|
||||||
router.push({
|
router.push({
|
||||||
path: types.value.path[d.type],
|
path: types.value.path[d.type],
|
||||||
query: {id: d.routerTaskId, type: 1, courseId: d.courseId, pName: data.name, sName},
|
query: {id: d.routerTaskId, type: 1, courseId: d.courseId, pName: data.value.name, sName},
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -5,9 +5,9 @@
|
|||||||
style="display: flex; align-items: center; justify-content: space-between"
|
style="display: flex; align-items: center; justify-content: space-between"
|
||||||
>
|
>
|
||||||
<div class="crumb">
|
<div class="crumb">
|
||||||
<div>混合制项目</div>
|
<div>{{ pName }}</div>
|
||||||
<div style="margin-left: 6px; margin-right: 6px">/</div>
|
<div style="margin-left: 6px; margin-right: 6px">/</div>
|
||||||
<div>管理者进阶-腾飞班</div>
|
<div>{{ sName }}</div>
|
||||||
<div style="margin-left: 6px; margin-right: 6px">/</div>
|
<div style="margin-left: 6px; margin-right: 6px">/</div>
|
||||||
<div style="font-weight: 700; font-size: 16px">调研详情</div>
|
<div style="font-weight: 700; font-size: 16px">调研详情</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -178,7 +178,7 @@ import {
|
|||||||
import {ElMessage} from "element-plus";
|
import {ElMessage} from "element-plus";
|
||||||
|
|
||||||
const {
|
const {
|
||||||
query: {courseId, id: taskId, type},
|
query: {courseId, id: taskId, type, pName, sName},
|
||||||
} = useRoute();
|
} = useRoute();
|
||||||
|
|
||||||
const {data} = useRequest(ASSESSMENT_QUERY(courseId), {id: courseId});
|
const {data} = useRequest(ASSESSMENT_QUERY(courseId), {id: courseId});
|
||||||
|
|||||||
Reference in New Issue
Block a user