mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/fe-manage.git
synced 2025-12-10 19:36:46 +08:00
提交
This commit is contained in:
@@ -18,8 +18,8 @@ import { boeRequest } from "@/api/request";
|
|||||||
// "application/x-www-form-urlencoded";
|
// "application/x-www-form-urlencoded";
|
||||||
axios.defaults.withCredentials = true;
|
axios.defaults.withCredentials = true;
|
||||||
const http = axios.create({
|
const http = axios.create({
|
||||||
baseURL: '/growth',
|
// baseURL: '/growth',
|
||||||
// baseURL: process.env.VUE_APP_BASE_API_GROWTH,
|
baseURL: process.env.VUE_APP_BASE_API_GROWTH,
|
||||||
timeout: 1000 * 15,
|
timeout: 1000 * 15,
|
||||||
// headers: { "Content-Type": "multipart/form-data" },
|
// headers: { "Content-Type": "multipart/form-data" },
|
||||||
headers: { "Content-Type": "application/json" },
|
headers: { "Content-Type": "application/json" },
|
||||||
|
|||||||
@@ -104,6 +104,17 @@
|
|||||||
},
|
},
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
// 专业力
|
||||||
|
if (
|
||||||
|
n.indexOf("/growthaddpath") !== -1 ||n.indexOf("/GrowthAddPath") !== -1
|
||||||
|
) {
|
||||||
|
state.list = [
|
||||||
|
{
|
||||||
|
name: "专业力必修",
|
||||||
|
href: "/growthaddpath",
|
||||||
|
},
|
||||||
|
];
|
||||||
|
}
|
||||||
if (
|
if (
|
||||||
n.indexOf("/pathmanage") !== -1 ||n.indexOf("/PathManage") !== -1
|
n.indexOf("/pathmanage") !== -1 ||n.indexOf("/PathManage") !== -1
|
||||||
) {
|
) {
|
||||||
|
|||||||
@@ -1,46 +1,53 @@
|
|||||||
<template>
|
<template>
|
||||||
<div
|
<div
|
||||||
class="navLeft"
|
class="navLeft"
|
||||||
:style="{
|
:style="{
|
||||||
width: packup ? '100px' : '208px',
|
width: packup ? '100px' : '208px',
|
||||||
height: screenHeight - 80 + 'px',
|
height: screenHeight - 80 + 'px',
|
||||||
}"
|
}"
|
||||||
>
|
>
|
||||||
<div style="display: flex; justify-content: flex-end">
|
<div style="display: flex; justify-content: flex-end">
|
||||||
<img
|
<img
|
||||||
class="packup"
|
class="packup"
|
||||||
src="../assets/images/navleft/packup.png"
|
src="../assets/images/navleft/packup.png"
|
||||||
@click="packUp"
|
@click="packUp"
|
||||||
:style="{ 'margin-right': packup ? '36px' : '14px' }"
|
:style="{ 'margin-right': packup ? '36px' : '14px' }"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
style="width: 100%; margin-top: 26px"
|
style="width: 100%; margin-top: 26px"
|
||||||
:style="{ display: packup ? 'none' : 'block' }"
|
:style="{ display: packup ? 'none' : 'block' }"
|
||||||
>
|
>
|
||||||
<a-menu
|
<a-menu
|
||||||
id="dddddd"
|
id="dddddd"
|
||||||
:open-keys="openKeys"
|
:open-keys="openKeys"
|
||||||
:selectedKeys="selectedKeys"
|
:selectedKeys="selectedKeys"
|
||||||
style="width: 208px"
|
style="width: 208px"
|
||||||
mode="inline"
|
mode="inline"
|
||||||
@openChange="onOpenChange"
|
@openChange="onOpenChange"
|
||||||
@select="selectItem"
|
@select="selectItem"
|
||||||
>
|
>
|
||||||
<a-sub-menu v-if="checkMenu('coursereviewedn,coursereviewed,projectreviewedn,projectreviewed')" key="sub10"
|
<a-sub-menu
|
||||||
@titleClick="titleClick">
|
v-if="
|
||||||
|
checkMenu(
|
||||||
|
'coursereviewedn,coursereviewed,projectreviewedn,projectreviewed'
|
||||||
|
)
|
||||||
|
"
|
||||||
|
key="sub10"
|
||||||
|
@titleClick="titleClick"
|
||||||
|
>
|
||||||
<template #icon>
|
<template #icon>
|
||||||
<div class="imgBox">
|
<div class="imgBox">
|
||||||
<img
|
<img
|
||||||
style="width: 22px; height: 22px"
|
style="width: 22px; height: 22px"
|
||||||
src="../assets/images/navleft/review.png"
|
src="../assets/images/navleft/review.png"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<template #title>审核管理</template>
|
<template #title>审核管理</template>
|
||||||
<a-menu-item key="sub10-1" v-if="checkMenu('coursereviewedn')">
|
<a-menu-item key="sub10-1" v-if="checkMenu('coursereviewedn')">
|
||||||
<span
|
<span
|
||||||
:class="{
|
:class="{
|
||||||
circleActive: selectedKeys[0] === 'sub10-1' ? true : false,
|
circleActive: selectedKeys[0] === 'sub10-1' ? true : false,
|
||||||
circle: selectedKeys[0] === 'sub10-1' ? false : true,
|
circle: selectedKeys[0] === 'sub10-1' ? false : true,
|
||||||
}"
|
}"
|
||||||
@@ -49,7 +56,7 @@
|
|||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
<a-menu-item key="sub10-2" v-if="checkMenu('coursereviewed')">
|
<a-menu-item key="sub10-2" v-if="checkMenu('coursereviewed')">
|
||||||
<span
|
<span
|
||||||
:class="{
|
:class="{
|
||||||
circleActive: selectedKeys[0] === 'sub10-2' ? true : false,
|
circleActive: selectedKeys[0] === 'sub10-2' ? true : false,
|
||||||
circle: selectedKeys[0] === 'sub10-2' ? false : true,
|
circle: selectedKeys[0] === 'sub10-2' ? false : true,
|
||||||
}"
|
}"
|
||||||
@@ -58,7 +65,7 @@
|
|||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
<a-menu-item key="sub10-3" v-if="checkMenu('projectreviewedn')">
|
<a-menu-item key="sub10-3" v-if="checkMenu('projectreviewedn')">
|
||||||
<span
|
<span
|
||||||
:class="{
|
:class="{
|
||||||
circleActive: selectedKeys[0] === 'sub10-3' ? true : false,
|
circleActive: selectedKeys[0] === 'sub10-3' ? true : false,
|
||||||
circle: selectedKeys[0] === 'sub10-3' ? false : true,
|
circle: selectedKeys[0] === 'sub10-3' ? false : true,
|
||||||
}"
|
}"
|
||||||
@@ -67,7 +74,7 @@
|
|||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
<a-menu-item key="sub10-4" v-if="checkMenu('projectreviewed')">
|
<a-menu-item key="sub10-4" v-if="checkMenu('projectreviewed')">
|
||||||
<span
|
<span
|
||||||
:class="{
|
:class="{
|
||||||
circleActive: selectedKeys[0] === 'sub10-4' ? true : false,
|
circleActive: selectedKeys[0] === 'sub10-4' ? true : false,
|
||||||
circle: selectedKeys[0] === 'sub10-4' ? false : true,
|
circle: selectedKeys[0] === 'sub10-4' ? false : true,
|
||||||
}"
|
}"
|
||||||
@@ -76,39 +83,63 @@
|
|||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
</a-sub-menu>
|
</a-sub-menu>
|
||||||
|
|
||||||
<a-menu-item key="sub1" @titleClick="titleClick" v-if="checkMenu('learningpath')">
|
<a-menu-item
|
||||||
|
key="sub1"
|
||||||
|
@titleClick="titleClick"
|
||||||
|
v-if="checkMenu('learningpath')"
|
||||||
|
>
|
||||||
<div class="imgBox">
|
<div class="imgBox">
|
||||||
<img
|
<img
|
||||||
style="width: 20px; height: 18px"
|
style="width: 20px; height: 18px"
|
||||||
src="../assets/images/navleft/studyPath.png"
|
src="../assets/images/navleft/studyPath.png"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<router-link to="/learningpath">学习路径图</router-link>
|
<router-link to="/learningpath">学习路径图</router-link>
|
||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
<!-- 专业力必修 -->
|
<!-- 专业力必修 -->
|
||||||
<a-menu-item key="sub25" @titleClick="titleClick" v-if="checkMenu('growthpath')">
|
<a-menu-item
|
||||||
|
key="sub25"
|
||||||
|
@titleClick="titleClick"
|
||||||
|
v-if="checkMenu('growthpath') && !checkMenu('growthpathadd')"
|
||||||
|
>
|
||||||
<div class="imgBox">
|
<div class="imgBox">
|
||||||
<img
|
<img
|
||||||
style="width: 20px; height: 18px"
|
style="width: 20px; height: 18px"
|
||||||
src="../assets/images/navleft/pathIcon.png"
|
src="../assets/images/navleft/pathIcon.png"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<router-link to="/growthpath">专业力必修</router-link>
|
<router-link to="/growthpath">专业力必修</router-link>
|
||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
|
<a-menu-item
|
||||||
<a-sub-menu key="sub2" @titleClick="titleClick" v-if="checkMenu('projectmanage,templatelibrary')">
|
key="sub25"
|
||||||
|
@titleClick="titleClick"
|
||||||
|
v-if="checkMenu('growthpathadd')"
|
||||||
|
>
|
||||||
|
<div class="imgBox">
|
||||||
|
<img
|
||||||
|
style="width: 20px; height: 18px"
|
||||||
|
src="../assets/images/navleft/pathIcon.png"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<router-link to="/growthaddpath">专业力必修</router-link>
|
||||||
|
</a-menu-item>
|
||||||
|
<a-sub-menu
|
||||||
|
key="sub2"
|
||||||
|
@titleClick="titleClick"
|
||||||
|
v-if="checkMenu('projectmanage,templatelibrary')"
|
||||||
|
>
|
||||||
<template #icon>
|
<template #icon>
|
||||||
<div class="imgBox">
|
<div class="imgBox">
|
||||||
<img
|
<img
|
||||||
style="width: 15px; height: 15px"
|
style="width: 15px; height: 15px"
|
||||||
src="../assets/images/navleft/project.png"
|
src="../assets/images/navleft/project.png"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<template #title>项目中心</template>
|
<template #title>项目中心</template>
|
||||||
<a-menu-item key="sub2-1" v-if="checkMenu('projectmanage')">
|
<a-menu-item key="sub2-1" v-if="checkMenu('projectmanage')">
|
||||||
<span
|
<span
|
||||||
:class="{
|
:class="{
|
||||||
circleActive: selectedKeys[0] === 'sub2-1' ? true : false,
|
circleActive: selectedKeys[0] === 'sub2-1' ? true : false,
|
||||||
circle: selectedKeys[0] === 'sub2-1' ? false : true,
|
circle: selectedKeys[0] === 'sub2-1' ? false : true,
|
||||||
}"
|
}"
|
||||||
@@ -117,7 +148,7 @@
|
|||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
<a-menu-item key="sub2-2" v-if="checkMenu('templatelibrary')">
|
<a-menu-item key="sub2-2" v-if="checkMenu('templatelibrary')">
|
||||||
<span
|
<span
|
||||||
:class="{
|
:class="{
|
||||||
circleActive: selectedKeys[0] === 'sub2-2' ? true : false,
|
circleActive: selectedKeys[0] === 'sub2-2' ? true : false,
|
||||||
circle: selectedKeys[0] === 'sub2-2' ? false : true,
|
circle: selectedKeys[0] === 'sub2-2' ? false : true,
|
||||||
}"
|
}"
|
||||||
@@ -126,19 +157,26 @@
|
|||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
</a-sub-menu>
|
</a-sub-menu>
|
||||||
|
|
||||||
<a-sub-menu key="sub3" v-if="checkMenu('coursewaremanage,onlinemanage,coursemanage,courserecommended')">
|
<a-sub-menu
|
||||||
|
key="sub3"
|
||||||
|
v-if="
|
||||||
|
checkMenu(
|
||||||
|
'coursewaremanage,onlinemanage,coursemanage,courserecommended'
|
||||||
|
)
|
||||||
|
"
|
||||||
|
>
|
||||||
<template #icon>
|
<template #icon>
|
||||||
<div class="imgBox">
|
<div class="imgBox">
|
||||||
<img
|
<img
|
||||||
style="width: 18px; height: 15px"
|
style="width: 18px; height: 15px"
|
||||||
src="../assets/images/navleft/course.png"
|
src="../assets/images/navleft/course.png"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<template #title>课程库</template>
|
<template #title>课程库</template>
|
||||||
<a-menu-item key="sub3-1" v-if="checkMenu('coursewaremanage')">
|
<a-menu-item key="sub3-1" v-if="checkMenu('coursewaremanage')">
|
||||||
<span
|
<span
|
||||||
:class="{
|
:class="{
|
||||||
circleActive: selectedKeys[0] === 'sub3-1' ? true : false,
|
circleActive: selectedKeys[0] === 'sub3-1' ? true : false,
|
||||||
circle: selectedKeys[0] === 'sub3-1' ? false : true,
|
circle: selectedKeys[0] === 'sub3-1' ? false : true,
|
||||||
}"
|
}"
|
||||||
@@ -147,7 +185,7 @@
|
|||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
<a-menu-item key="sub3-2" v-if="checkMenu('onlinemanage')">
|
<a-menu-item key="sub3-2" v-if="checkMenu('onlinemanage')">
|
||||||
<span
|
<span
|
||||||
:class="{
|
:class="{
|
||||||
circleActive: selectedKeys[0] === 'sub3-2' ? true : false,
|
circleActive: selectedKeys[0] === 'sub3-2' ? true : false,
|
||||||
circle: selectedKeys[0] === 'sub3-2' ? false : true,
|
circle: selectedKeys[0] === 'sub3-2' ? false : true,
|
||||||
}"
|
}"
|
||||||
@@ -156,7 +194,7 @@
|
|||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
<a-menu-item key="sub3-3" v-if="checkMenu('coursemanage')">
|
<a-menu-item key="sub3-3" v-if="checkMenu('coursemanage')">
|
||||||
<span
|
<span
|
||||||
:class="{
|
:class="{
|
||||||
circleActive: selectedKeys[0] === 'sub3-3' ? true : false,
|
circleActive: selectedKeys[0] === 'sub3-3' ? true : false,
|
||||||
circle: selectedKeys[0] === 'sub3-3' ? false : true,
|
circle: selectedKeys[0] === 'sub3-3' ? false : true,
|
||||||
}"
|
}"
|
||||||
@@ -165,7 +203,7 @@
|
|||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
<a-menu-item key="sub3-4">
|
<a-menu-item key="sub3-4">
|
||||||
<span
|
<span
|
||||||
:class="{
|
:class="{
|
||||||
circleActive: selectedKeys[0] === 'sub3-4' ? true : false,
|
circleActive: selectedKeys[0] === 'sub3-4' ? true : false,
|
||||||
circle: selectedKeys[0] === 'sub3-4' ? false : true,
|
circle: selectedKeys[0] === 'sub3-4' ? false : true,
|
||||||
}"
|
}"
|
||||||
@@ -183,11 +221,15 @@
|
|||||||
</div>
|
</div>
|
||||||
<span>考试中心</span>
|
<span>考试中心</span>
|
||||||
</a-menu-item> -->
|
</a-menu-item> -->
|
||||||
<a-menu-item key="sub5" @titleClick="titleClick" v-if="checkMenu('researchmanage')">
|
<a-menu-item
|
||||||
|
key="sub5"
|
||||||
|
@titleClick="titleClick"
|
||||||
|
v-if="checkMenu('researchmanage')"
|
||||||
|
>
|
||||||
<div class="imgBox">
|
<div class="imgBox">
|
||||||
<img
|
<img
|
||||||
style="width: 16px; height: 16px"
|
style="width: 16px; height: 16px"
|
||||||
src="../assets/images/navleft/survey.png"
|
src="../assets/images/navleft/survey.png"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<router-link to="/researchmanage">评估管理</router-link>
|
<router-link to="/researchmanage">评估管理</router-link>
|
||||||
@@ -213,18 +255,25 @@
|
|||||||
<router-link to="/dictmanage">字典管理</router-link>
|
<router-link to="/dictmanage">字典管理</router-link>
|
||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
</a-sub-menu> -->
|
</a-sub-menu> -->
|
||||||
<a-menu-item key="sub21" @titleClick="titleClick" v-if="checkMenu('audiencemanage')">
|
<a-menu-item
|
||||||
|
key="sub21"
|
||||||
|
@titleClick="titleClick"
|
||||||
|
v-if="checkMenu('audiencemanage')"
|
||||||
|
>
|
||||||
<div class="imgBox">
|
<div class="imgBox">
|
||||||
<img
|
<img
|
||||||
style="width: 16px; height: 16px"
|
style="width: 16px; height: 16px"
|
||||||
src="../assets/images/navleft/review.png"
|
src="../assets/images/navleft/review.png"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<router-link to="/audiencemanage">受众管理</router-link>
|
<router-link to="/audiencemanage">受众管理</router-link>
|
||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
<a-menu-item key="sub5" v-if="checkMenu('systemManage')">
|
<a-menu-item key="sub5" v-if="checkMenu('systemManage')">
|
||||||
<div class="imgBox">
|
<div class="imgBox">
|
||||||
<img style="width: 16px; height: 16px" src="../assets/images/navleft/system.png"/>
|
<img
|
||||||
|
style="width: 16px; height: 16px"
|
||||||
|
src="../assets/images/navleft/system.png"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
<router-link to="/researchmanage">评估管理</router-link>
|
<router-link to="/researchmanage">评估管理</router-link>
|
||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
@@ -269,20 +318,23 @@
|
|||||||
<!-- <router-link to="/systemmanage">系统管理</router-link> -->
|
<!-- <router-link to="/systemmanage">系统管理</router-link> -->
|
||||||
<!-- </a-menu-item> -->
|
<!-- </a-menu-item> -->
|
||||||
|
|
||||||
<a-sub-menu key="sub11" @titleClick="titleClick"
|
<a-sub-menu
|
||||||
v-if="checkMenu('questionmanage,papermanage,examinationcenter')">
|
key="sub11"
|
||||||
|
@titleClick="titleClick"
|
||||||
|
v-if="checkMenu('questionmanage,papermanage,examinationcenter')"
|
||||||
|
>
|
||||||
<template #icon>
|
<template #icon>
|
||||||
<div class="imgBox">
|
<div class="imgBox">
|
||||||
<img
|
<img
|
||||||
style="width: 16px; height: 16px"
|
style="width: 16px; height: 16px"
|
||||||
src="../assets/images/navleft/test.png"
|
src="../assets/images/navleft/test.png"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<template #title>考试</template>
|
<template #title>考试</template>
|
||||||
<a-menu-item key="sub11-1" v-if="checkMenu('questionmanage')">
|
<a-menu-item key="sub11-1" v-if="checkMenu('questionmanage')">
|
||||||
<span
|
<span
|
||||||
:class="{
|
:class="{
|
||||||
circleActive: selectedKeys[0] === 'sub11-1' ? true : false,
|
circleActive: selectedKeys[0] === 'sub11-1' ? true : false,
|
||||||
circle: selectedKeys[0] === 'sub11-1' ? false : true,
|
circle: selectedKeys[0] === 'sub11-1' ? false : true,
|
||||||
}"
|
}"
|
||||||
@@ -291,7 +343,7 @@
|
|||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
<a-menu-item key="sub11-2" v-if="checkMenu('papermanage')">
|
<a-menu-item key="sub11-2" v-if="checkMenu('papermanage')">
|
||||||
<span
|
<span
|
||||||
:class="{
|
:class="{
|
||||||
circleActive: selectedKeys[0] === 'sub11-2' ? true : false,
|
circleActive: selectedKeys[0] === 'sub11-2' ? true : false,
|
||||||
circle: selectedKeys[0] === 'sub11-2' ? false : true,
|
circle: selectedKeys[0] === 'sub11-2' ? false : true,
|
||||||
}"
|
}"
|
||||||
@@ -300,7 +352,7 @@
|
|||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
<a-menu-item key="sub11-3" v-if="checkMenu('examinationcenter')">
|
<a-menu-item key="sub11-3" v-if="checkMenu('examinationcenter')">
|
||||||
<span
|
<span
|
||||||
:class="{
|
:class="{
|
||||||
circleActive: selectedKeys[0] === 'sub11-3' ? true : false,
|
circleActive: selectedKeys[0] === 'sub11-3' ? true : false,
|
||||||
circle: selectedKeys[0] === 'sub11-3' ? false : true,
|
circle: selectedKeys[0] === 'sub11-3' ? false : true,
|
||||||
}"
|
}"
|
||||||
@@ -319,19 +371,23 @@
|
|||||||
</a-menu-item> -->
|
</a-menu-item> -->
|
||||||
<!-- 案例修改 -->
|
<!-- 案例修改 -->
|
||||||
<!-- <a-sub-menu key="sub12" @titleClick="titleClick" v-if="checkMenu('casemanage')"> -->
|
<!-- <a-sub-menu key="sub12" @titleClick="titleClick" v-if="checkMenu('casemanage')"> -->
|
||||||
<a-sub-menu key="sub12" @titleClick="titleClick" v-if="checkMenu('casemanage,caserecommended')">
|
<a-sub-menu
|
||||||
|
key="sub12"
|
||||||
|
@titleClick="titleClick"
|
||||||
|
v-if="checkMenu('casemanage,caserecommended')"
|
||||||
|
>
|
||||||
<template #icon>
|
<template #icon>
|
||||||
<div class="imgBox">
|
<div class="imgBox">
|
||||||
<img
|
<img
|
||||||
style="width: 16px; height: 16px"
|
style="width: 16px; height: 16px"
|
||||||
src="../assets/images/navleft/case.png"
|
src="../assets/images/navleft/case.png"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<template #title>案例</template>
|
<template #title>案例</template>
|
||||||
<a-menu-item key="sub12-1" v-if="checkMenu('casemanage')">
|
<a-menu-item key="sub12-1" v-if="checkMenu('casemanage')">
|
||||||
<span
|
<span
|
||||||
:class="{
|
:class="{
|
||||||
circleActive: selectedKeys[0] === 'sub12-1' ? true : false,
|
circleActive: selectedKeys[0] === 'sub12-1' ? true : false,
|
||||||
circle: selectedKeys[0] === 'sub12-1' ? false : true,
|
circle: selectedKeys[0] === 'sub12-1' ? false : true,
|
||||||
}"
|
}"
|
||||||
@@ -340,7 +396,7 @@
|
|||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
<a-menu-item key="sub12-2" v-if="checkMenu('caserecommended')">
|
<a-menu-item key="sub12-2" v-if="checkMenu('caserecommended')">
|
||||||
<span
|
<span
|
||||||
:class="{
|
:class="{
|
||||||
circleActive: selectedKeys[0] === 'sub12-2' ? true : false,
|
circleActive: selectedKeys[0] === 'sub12-2' ? true : false,
|
||||||
circle: selectedKeys[0] === 'sub12-2' ? false : true,
|
circle: selectedKeys[0] === 'sub12-2' ? false : true,
|
||||||
}"
|
}"
|
||||||
@@ -349,19 +405,27 @@
|
|||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
</a-sub-menu>
|
</a-sub-menu>
|
||||||
<!-- 教师专区 -->
|
<!-- 教师专区 -->
|
||||||
<a-sub-menu key="sub22" @titleClick="titleClick" v-if="checkMenu('gratefulnotice,gratefulcarousel,teacherempowerment,teachertopic,tooldown,teacheropinion,instructorcertification')">
|
<a-sub-menu
|
||||||
|
key="sub22"
|
||||||
|
@titleClick="titleClick"
|
||||||
|
v-if="
|
||||||
|
checkMenu(
|
||||||
|
'gratefulnotice,gratefulcarousel,teacherempowerment,teachertopic,tooldown,teacheropinion,instructorcertification'
|
||||||
|
)
|
||||||
|
"
|
||||||
|
>
|
||||||
<template #icon>
|
<template #icon>
|
||||||
<div class="imgBox">
|
<div class="imgBox">
|
||||||
<img
|
<img
|
||||||
style="width: 16px; height: 16px"
|
style="width: 16px; height: 16px"
|
||||||
src="../assets/images/navleft/grateful.png"
|
src="../assets/images/navleft/grateful.png"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<template #title>教师专区</template>
|
<template #title>教师专区</template>
|
||||||
<a-menu-item key="sub22-1" v-if="checkMenu('gratefulnotice')">
|
<a-menu-item key="sub22-1" v-if="checkMenu('gratefulnotice')">
|
||||||
<span
|
<span
|
||||||
:class="{
|
:class="{
|
||||||
circleActive: selectedKeys[0] === 'sub22-1' ? true : false,
|
circleActive: selectedKeys[0] === 'sub22-1' ? true : false,
|
||||||
circle: selectedKeys[0] === 'sub22-1' ? false : true,
|
circle: selectedKeys[0] === 'sub22-1' ? false : true,
|
||||||
}"
|
}"
|
||||||
@@ -370,16 +434,16 @@
|
|||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
<a-menu-item key="sub22-2" v-if="checkMenu('gratefulcarousel')">
|
<a-menu-item key="sub22-2" v-if="checkMenu('gratefulcarousel')">
|
||||||
<span
|
<span
|
||||||
:class="{
|
:class="{
|
||||||
circleActive: selectedKeys[0] === 'sub22-2' ? true : false,
|
circleActive: selectedKeys[0] === 'sub22-2' ? true : false,
|
||||||
circle: selectedKeys[0] === 'sub22-2' ? false : true,
|
circle: selectedKeys[0] === 'sub22-2' ? false : true,
|
||||||
}"
|
}"
|
||||||
></span>
|
></span>
|
||||||
<router-link to="/gratefulcarousel">轮播图</router-link>
|
<router-link to="/gratefulcarousel">轮播图</router-link>
|
||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
<a-menu-item key="sub22-3" v-if="checkMenu('teacherempowerment')">
|
<a-menu-item key="sub22-3" v-if="checkMenu('teacherempowerment')">
|
||||||
<span
|
<span
|
||||||
:class="{
|
:class="{
|
||||||
circleActive: selectedKeys[0] === 'sub22-3' ? true : false,
|
circleActive: selectedKeys[0] === 'sub22-3' ? true : false,
|
||||||
circle: selectedKeys[0] === 'sub22-3' ? false : true,
|
circle: selectedKeys[0] === 'sub22-3' ? false : true,
|
||||||
}"
|
}"
|
||||||
@@ -387,9 +451,12 @@
|
|||||||
<router-link to="/teacherempowerment">教师赋能</router-link>
|
<router-link to="/teacherempowerment">教师赋能</router-link>
|
||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
|
|
||||||
<a-menu-item key="sub22-7" v-if="checkMenu('instructorcertification')">
|
<a-menu-item
|
||||||
|
key="sub22-7"
|
||||||
|
v-if="checkMenu('instructorcertification')"
|
||||||
|
>
|
||||||
<span
|
<span
|
||||||
:class="{
|
:class="{
|
||||||
circleActive: selectedKeys[0] === 'sub22-7' ? true : false,
|
circleActive: selectedKeys[0] === 'sub22-7' ? true : false,
|
||||||
circle: selectedKeys[0] === 'sub22-7' ? false : true,
|
circle: selectedKeys[0] === 'sub22-7' ? false : true,
|
||||||
}"
|
}"
|
||||||
@@ -399,16 +466,16 @@
|
|||||||
|
|
||||||
<a-menu-item key="sub22-4" v-if="checkMenu('teachertopic')">
|
<a-menu-item key="sub22-4" v-if="checkMenu('teachertopic')">
|
||||||
<span
|
<span
|
||||||
:class="{
|
:class="{
|
||||||
circleActive: selectedKeys[0] === 'sub22-4' ? true : false,
|
circleActive: selectedKeys[0] === 'sub22-4' ? true : false,
|
||||||
circle: selectedKeys[0] === 'sub22-4' ? false : true,
|
circle: selectedKeys[0] === 'sub22-4' ? false : true,
|
||||||
}"
|
}"
|
||||||
></span>
|
></span>
|
||||||
<router-link to="/teachertopic">认证讲师库</router-link>
|
<router-link to="/teachertopic">认证讲师库</router-link>
|
||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
<a-menu-item key="sub22-5" v-if="checkMenu('tooldown')">
|
<a-menu-item key="sub22-5" v-if="checkMenu('tooldown')">
|
||||||
<span
|
<span
|
||||||
:class="{
|
:class="{
|
||||||
circleActive: selectedKeys[0] === 'sub22-5' ? true : false,
|
circleActive: selectedKeys[0] === 'sub22-5' ? true : false,
|
||||||
circle: selectedKeys[0] === 'sub22-5' ? false : true,
|
circle: selectedKeys[0] === 'sub22-5' ? false : true,
|
||||||
}"
|
}"
|
||||||
@@ -417,7 +484,7 @@
|
|||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
<a-menu-item key="sub22-6" v-if="checkMenu('teacheropinion')">
|
<a-menu-item key="sub22-6" v-if="checkMenu('teacheropinion')">
|
||||||
<span
|
<span
|
||||||
:class="{
|
:class="{
|
||||||
circleActive: selectedKeys[0] === 'sub22-6' ? true : false,
|
circleActive: selectedKeys[0] === 'sub22-6' ? true : false,
|
||||||
circle: selectedKeys[0] === 'sub22-6' ? false : true,
|
circle: selectedKeys[0] === 'sub22-6' ? false : true,
|
||||||
}"
|
}"
|
||||||
@@ -425,16 +492,27 @@
|
|||||||
<router-link to="/teacheropinion">意见</router-link>
|
<router-link to="/teacheropinion">意见</router-link>
|
||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
</a-sub-menu>
|
</a-sub-menu>
|
||||||
<a-sub-menu key="sub24" @titleClick="titleClick" v-if="checkMenu('lecturer,lecturerRecords,lecturerExpense,lecturerSummary,lecturerTrainOrg,')">
|
<a-sub-menu
|
||||||
|
key="sub24"
|
||||||
|
@titleClick="titleClick"
|
||||||
|
v-if="
|
||||||
|
checkMenu(
|
||||||
|
'lecturer,lecturerRecords,lecturerExpense,lecturerSummary,lecturerTrainOrg,'
|
||||||
|
)
|
||||||
|
"
|
||||||
|
>
|
||||||
<template #icon>
|
<template #icon>
|
||||||
<div class="imgBox">
|
<div class="imgBox">
|
||||||
<img style="width: 15px; height: 15px" src="../assets/images/navleft/project.png" />
|
<img
|
||||||
|
style="width: 15px; height: 15px"
|
||||||
|
src="../assets/images/navleft/project.png"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<template #title>讲师管理</template>
|
<template #title>讲师管理</template>
|
||||||
<a-menu-item key="sub24-1" v-if="checkMenu('lecturer')">
|
<a-menu-item key="sub24-1" v-if="checkMenu('lecturer')">
|
||||||
<span
|
<span
|
||||||
:class="{
|
:class="{
|
||||||
circleActive: selectedKeys[0] === 'sub24-1' ? true : false,
|
circleActive: selectedKeys[0] === 'sub24-1' ? true : false,
|
||||||
circle: selectedKeys[0] === 'sub24-1' ? false : true,
|
circle: selectedKeys[0] === 'sub24-1' ? false : true,
|
||||||
}"
|
}"
|
||||||
@@ -443,8 +521,8 @@
|
|||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
<a-menu-item key="sub24-2" v-if="checkMenu('lecturerRecords')">
|
<a-menu-item key="sub24-2" v-if="checkMenu('lecturerRecords')">
|
||||||
<span
|
<span
|
||||||
:class="{
|
:class="{
|
||||||
circleActive : selectedKeys[0] === 'sub24-2' ? true : false,
|
circleActive: selectedKeys[0] === 'sub24-2' ? true : false,
|
||||||
circle: selectedKeys[0] === 'sub24-2' ? false : true,
|
circle: selectedKeys[0] === 'sub24-2' ? false : true,
|
||||||
}"
|
}"
|
||||||
></span>
|
></span>
|
||||||
@@ -452,8 +530,8 @@
|
|||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
<a-menu-item key="sub24-3" v-if="checkMenu('lecturerExpense')">
|
<a-menu-item key="sub24-3" v-if="checkMenu('lecturerExpense')">
|
||||||
<span
|
<span
|
||||||
:class="{
|
:class="{
|
||||||
circleActive: selectedKeys[0] === 'sub24-3' ? true : false,
|
circleActive: selectedKeys[0] === 'sub24-3' ? true : false,
|
||||||
circle: selectedKeys[0] === 'sub24-3' ? false : true,
|
circle: selectedKeys[0] === 'sub24-3' ? false : true,
|
||||||
}"
|
}"
|
||||||
></span>
|
></span>
|
||||||
@@ -461,8 +539,8 @@
|
|||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
<a-menu-item key="sub24-4" v-if="checkMenu('lecturerSummary')">
|
<a-menu-item key="sub24-4" v-if="checkMenu('lecturerSummary')">
|
||||||
<span
|
<span
|
||||||
:class="{
|
:class="{
|
||||||
circleActive: selectedKeys[0] === 'sub24-4' ? true : false,
|
circleActive: selectedKeys[0] === 'sub24-4' ? true : false,
|
||||||
circle: selectedKeys[0] === 'sub24-4' ? false : true,
|
circle: selectedKeys[0] === 'sub24-4' ? false : true,
|
||||||
}"
|
}"
|
||||||
></span>
|
></span>
|
||||||
@@ -470,45 +548,57 @@
|
|||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
<a-menu-item key="sub24-5" v-if="checkMenu('lecturerTrainOrg')">
|
<a-menu-item key="sub24-5" v-if="checkMenu('lecturerTrainOrg')">
|
||||||
<span
|
<span
|
||||||
:class="{
|
:class="{
|
||||||
circleActive: selectedKeys[0] === 'sub24-5' ? true : false,
|
circleActive: selectedKeys[0] === 'sub24-5' ? true : false,
|
||||||
circle: selectedKeys[0] === 'sub24-5' ? false : true,
|
circle: selectedKeys[0] === 'sub24-5' ? false : true,
|
||||||
}"
|
}"
|
||||||
></span>
|
></span>
|
||||||
<router-link to="/organization">培训发生组织</router-link>
|
<router-link to="/organization">培训发生组织</router-link>
|
||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
</a-sub-menu>
|
</a-sub-menu>
|
||||||
<a-menu-item key="sub13" @titleClick="titleClick" v-if="checkMenu('articlemanage')">
|
<a-menu-item
|
||||||
|
key="sub13"
|
||||||
|
@titleClick="titleClick"
|
||||||
|
v-if="checkMenu('articlemanage')"
|
||||||
|
>
|
||||||
<div class="imgBox">
|
<div class="imgBox">
|
||||||
<img
|
<img
|
||||||
style="width: 20px; height: 20px"
|
style="width: 20px; height: 20px"
|
||||||
src="../assets/images/navleft/article.png"
|
src="../assets/images/navleft/article.png"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<router-link to="/articlemanage">文章管理</router-link>
|
<router-link to="/articlemanage">文章管理</router-link>
|
||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
<a-menu-item key="sub14" @titleClick="titleClick" v-if="checkMenu('qamanage')">
|
<a-menu-item
|
||||||
|
key="sub14"
|
||||||
|
@titleClick="titleClick"
|
||||||
|
v-if="checkMenu('qamanage')"
|
||||||
|
>
|
||||||
<div class="imgBox">
|
<div class="imgBox">
|
||||||
<img
|
<img
|
||||||
style="width: 20px; height: 20px"
|
style="width: 20px; height: 20px"
|
||||||
src="../assets/images/navleft/qa.png"
|
src="../assets/images/navleft/qa.png"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<router-link to="/qamanage">问答管理</router-link>
|
<router-link to="/qamanage">问答管理</router-link>
|
||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
<a-sub-menu key="sub23" @titleClick="titleClick" v-if="checkMenu('evaluationupload')">
|
<a-sub-menu
|
||||||
|
key="sub23"
|
||||||
|
@titleClick="titleClick"
|
||||||
|
v-if="checkMenu('evaluationupload')"
|
||||||
|
>
|
||||||
<template #icon>
|
<template #icon>
|
||||||
<div class="imgBox">
|
<div class="imgBox">
|
||||||
<img
|
<img
|
||||||
style="width: 16px; height: 16px"
|
style="width: 16px; height: 16px"
|
||||||
src="../assets/images/navleft/grateful.png"
|
src="../assets/images/navleft/grateful.png"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<template #title>测评</template>
|
<template #title>测评</template>
|
||||||
<a-menu-item key="sub23-1" v-if="checkMenu('evaluationupload')">
|
<a-menu-item key="sub23-1" v-if="checkMenu('evaluationupload')">
|
||||||
<span
|
<span
|
||||||
:class="{
|
:class="{
|
||||||
circleActive: selectedKeys[0] === 'sub23-1' ? true : false,
|
circleActive: selectedKeys[0] === 'sub23-1' ? true : false,
|
||||||
circle: selectedKeys[0] === 'sub23-1' ? false : true,
|
circle: selectedKeys[0] === 'sub23-1' ? false : true,
|
||||||
}"
|
}"
|
||||||
@@ -517,7 +607,7 @@
|
|||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
<a-menu-item key="sub23-2">
|
<a-menu-item key="sub23-2">
|
||||||
<span
|
<span
|
||||||
:class="{
|
:class="{
|
||||||
circleActive: selectedKeys[0] === 'sub22-2' ? true : false,
|
circleActive: selectedKeys[0] === 'sub22-2' ? true : false,
|
||||||
circle: selectedKeys[0] === 'sub22-2' ? false : true,
|
circle: selectedKeys[0] === 'sub22-2' ? false : true,
|
||||||
}"
|
}"
|
||||||
@@ -525,17 +615,28 @@
|
|||||||
<a target="_blank" :href="evaluationManagement">测评管理</a>
|
<a target="_blank" :href="evaluationManagement">测评管理</a>
|
||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
</a-sub-menu>
|
</a-sub-menu>
|
||||||
<a-menu-item key="sub15" @titleClick="titleClick" v-if="checkMenu('download')">
|
<a-menu-item
|
||||||
|
key="sub15"
|
||||||
|
@titleClick="titleClick"
|
||||||
|
v-if="checkMenu('download')"
|
||||||
|
>
|
||||||
<div class="imgBox">
|
<div class="imgBox">
|
||||||
<img
|
<img
|
||||||
style="width: 20px; height: 20px"
|
style="width: 20px; height: 20px"
|
||||||
src="../assets/images/navleft/qa.png"
|
src="../assets/images/navleft/qa.png"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<router-link to="/download">下载中心</router-link>
|
<router-link to="/download">下载中心</router-link>
|
||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
<!-- 20230804影藏 20230815放开-->
|
<!-- 20230804影藏 20230815放开-->
|
||||||
<a-sub-menu key="sub17" v-if="checkMenu('operational,learningpathmap,reportproject,curriculum,caseess,reportarticle,questionsandanswers,reportexamination,overvoew,employeelearning')">
|
<a-sub-menu
|
||||||
|
key="sub17"
|
||||||
|
v-if="
|
||||||
|
checkMenu(
|
||||||
|
'operational,learningpathmap,reportproject,curriculum,caseess,reportarticle,questionsandanswers,reportexamination,overvoew,employeelearning'
|
||||||
|
)
|
||||||
|
"
|
||||||
|
>
|
||||||
<template #icon>
|
<template #icon>
|
||||||
<div class="imgBox">
|
<div class="imgBox">
|
||||||
<img
|
<img
|
||||||
@@ -554,7 +655,15 @@
|
|||||||
></span>
|
></span>
|
||||||
<router-link to="/operational">运营数据概览</router-link>
|
<router-link to="/operational">运营数据概览</router-link>
|
||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
<a-sub-menu key="sub17-2" class="treeMenu" v-if="checkMenu('learningpathmap,reportproject,curriculum,caseess,reportarticle,questionsandanswers,reportexamination')">
|
<a-sub-menu
|
||||||
|
key="sub17-2"
|
||||||
|
class="treeMenu"
|
||||||
|
v-if="
|
||||||
|
checkMenu(
|
||||||
|
'learningpathmap,reportproject,curriculum,caseess,reportarticle,questionsandanswers,reportexamination'
|
||||||
|
)
|
||||||
|
"
|
||||||
|
>
|
||||||
<template #icon>
|
<template #icon>
|
||||||
<div class="img"></div>
|
<div class="img"></div>
|
||||||
</template>
|
</template>
|
||||||
@@ -604,7 +713,10 @@
|
|||||||
></span>
|
></span>
|
||||||
<router-link to="/reportarticle">文章</router-link>
|
<router-link to="/reportarticle">文章</router-link>
|
||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
<a-menu-item key="sub17-2-6" v-if="checkMenu('questionsandanswers')">
|
<a-menu-item
|
||||||
|
key="sub17-2-6"
|
||||||
|
v-if="checkMenu('questionsandanswers')"
|
||||||
|
>
|
||||||
<span
|
<span
|
||||||
:class="{
|
:class="{
|
||||||
circleActive: selectedKeys[0] === 'sub17-2-6' ? true : false,
|
circleActive: selectedKeys[0] === 'sub17-2-6' ? true : false,
|
||||||
@@ -623,7 +735,11 @@
|
|||||||
<router-link to="/reportexamination">考试</router-link>
|
<router-link to="/reportexamination">考试</router-link>
|
||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
</a-sub-menu>
|
</a-sub-menu>
|
||||||
<a-sub-menu key="sub17-3" class="treeMenu" v-if="checkMenu('overvoew,employeelearning')">
|
<a-sub-menu
|
||||||
|
key="sub17-3"
|
||||||
|
class="treeMenu"
|
||||||
|
v-if="checkMenu('overvoew,employeelearning')"
|
||||||
|
>
|
||||||
<template #icon>
|
<template #icon>
|
||||||
<div class="img"></div>
|
<div class="img"></div>
|
||||||
</template>
|
</template>
|
||||||
@@ -647,27 +763,32 @@
|
|||||||
<router-link to="/employeelearning">员工学习数据</router-link>
|
<router-link to="/employeelearning">员工学习数据</router-link>
|
||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
</a-sub-menu>
|
</a-sub-menu>
|
||||||
<a-menu-item key="sub17-4" v-if="checkMenu('trainingnewmanager')||checkOrgs()">
|
<a-menu-item
|
||||||
|
key="sub17-4"
|
||||||
|
v-if="checkMenu('trainingnewmanager') || checkOrgs()"
|
||||||
|
>
|
||||||
<span
|
<span
|
||||||
:class="{
|
:class="{
|
||||||
circleActive: selectedKeys[0] === 'sub17-4' ? true : false,
|
circleActive: selectedKeys[0] === 'sub17-4' ? true : false,
|
||||||
circle: selectedKeys[0] === 'sub17-4' ? false : true,
|
circle: selectedKeys[0] === 'sub17-4' ? false : true,
|
||||||
}"
|
}"
|
||||||
></span>
|
></span>
|
||||||
<router-link to="/trainingnewmanager">新任管理者培训数据</router-link>
|
<router-link to="/trainingnewmanager"
|
||||||
|
>新任管理者培训数据</router-link
|
||||||
|
>
|
||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
</a-sub-menu>
|
</a-sub-menu>
|
||||||
<a-menu-item key="sub16" v-if="checkMenu('OldSystemManage')">
|
<a-menu-item key="sub16" v-if="checkMenu('OldSystemManage')">
|
||||||
<div class="imgBox">
|
<div class="imgBox">
|
||||||
<img
|
<img
|
||||||
style="width: 22px; height: 22px"
|
style="width: 22px; height: 22px"
|
||||||
src="../assets/images/navleft/review.png"
|
src="../assets/images/navleft/review.png"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<a target="_blank" :href="oldManage">旧版管理员界面</a>
|
<a target="_blank" :href="oldManage">旧版管理员界面</a>
|
||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
|
|
||||||
<!-- <router-link target="_blank" to="/oldsystemmanage">旧版管理员界面</router-link> -->
|
<!-- <router-link target="_blank" to="/oldsystemmanage">旧版管理员界面</router-link> -->
|
||||||
<a-menu-item key="sub17" v-if="checkMenu('ReadingClubManage')">
|
<a-menu-item key="sub17" v-if="checkMenu('ReadingClubManage')">
|
||||||
<div class="imgBox">
|
<div class="imgBox">
|
||||||
<img
|
<img
|
||||||
@@ -689,17 +810,17 @@
|
|||||||
</a-menu>
|
</a-menu>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
style="width: 100%; margin-top: 26px"
|
style="width: 100%; margin-top: 26px"
|
||||||
:style="{ display: packup ? 'block' : 'none' }"
|
:style="{ display: packup ? 'block' : 'none' }"
|
||||||
class="packupMenu"
|
class="packupMenu"
|
||||||
>
|
>
|
||||||
<a-menu
|
<a-menu
|
||||||
id="dddddd"
|
id="dddddd"
|
||||||
v-model:openKeys="openKeys2"
|
v-model:openKeys="openKeys2"
|
||||||
v-model:selectedKeys="selectedKeys2"
|
v-model:selectedKeys="selectedKeys2"
|
||||||
style="width: 100px"
|
style="width: 100px"
|
||||||
mode="inline"
|
mode="inline"
|
||||||
@click="handleClick"
|
@click="handleClick"
|
||||||
>
|
>
|
||||||
<a-menu-item key="sub10" @titleClick="titleClick">
|
<a-menu-item key="sub10" @titleClick="titleClick">
|
||||||
<router-link to="/coursereviewedn">审核</router-link>
|
<router-link to="/coursereviewedn">审核</router-link>
|
||||||
@@ -752,7 +873,7 @@
|
|||||||
<router-link to="/tooldown">教师专区</router-link>
|
<router-link to="/tooldown">教师专区</router-link>
|
||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
<a-menu-item key="sub24" v-if="lecturerPath()" @titleClick="titleClick">
|
<a-menu-item key="sub24" v-if="lecturerPath()" @titleClick="titleClick">
|
||||||
<router-link :to="'/'+lecturerPath()">讲师管理</router-link>
|
<router-link :to="'/' + lecturerPath()">讲师管理</router-link>
|
||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
<a-menu-item key="sub13" @titleClick="titleClick">
|
<a-menu-item key="sub13" @titleClick="titleClick">
|
||||||
<router-link to="/articlemanage">文章</router-link>
|
<router-link to="/articlemanage">文章</router-link>
|
||||||
@@ -767,9 +888,7 @@
|
|||||||
<router-link to="/evaluationupload">测评</router-link>
|
<router-link to="/evaluationupload">测评</router-link>
|
||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
<a-menu-item key="sub18" v-if="checkMenu('OldSystemManage')">
|
<a-menu-item key="sub18" v-if="checkMenu('OldSystemManage')">
|
||||||
|
<router-link target="_blank" to="/oldsystemmanage">旧版</router-link>
|
||||||
<router-link target="_blank" to="/oldsystemmanage">旧版</router-link>
|
|
||||||
|
|
||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
<a-menu-item key="sub19" v-if="checkMenu('ReadingClubManage')">
|
<a-menu-item key="sub19" v-if="checkMenu('ReadingClubManage')">
|
||||||
<router-link to="/readingclubmanage">业务</router-link>
|
<router-link to="/readingclubmanage">业务</router-link>
|
||||||
@@ -783,18 +902,25 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import {reactive, toRefs, onMounted, onUnmounted, watch } from "vue";
|
import { reactive, toRefs, onMounted, onUnmounted, watch } from "vue";
|
||||||
import {useRoute} from "vue-router";
|
import { useRoute } from "vue-router";
|
||||||
import {useStore} from "vuex";
|
import { useStore } from "vuex";
|
||||||
import {checkMenu,checkOrgs,lecturerRoute} from "@/utils/utils";
|
import { checkMenu, checkOrgs, lecturerRoute } from "@/utils/utils";
|
||||||
import { reportOrgs } from "@/api/indexProject";
|
import { reportOrgs } from "@/api/indexProject";
|
||||||
export default {
|
export default {
|
||||||
name: "NavLeft",
|
name: "NavLeft",
|
||||||
setup() {
|
setup() {
|
||||||
const store = useStore();
|
const store = useStore();
|
||||||
const state = reactive({
|
const state = reactive({
|
||||||
lecturerRoute:['lecturerlist','teachingrecord','lecturerfeemanagement','lecturerfeestatistics','organization'],
|
lecturerRoute: [
|
||||||
lecturerAdmin:'lecturer,lecturerRecords,lecturerExpense,lecturerSummary,lecturerTrainOrg',
|
"lecturerlist",
|
||||||
|
"teachingrecord",
|
||||||
|
"lecturerfeemanagement",
|
||||||
|
"lecturerfeestatistics",
|
||||||
|
"organization",
|
||||||
|
],
|
||||||
|
lecturerAdmin:
|
||||||
|
"lecturer,lecturerRecords,lecturerExpense,lecturerSummary,lecturerTrainOrg",
|
||||||
packup: false,
|
packup: false,
|
||||||
screenHeight: document.body.clientHeight, // 屏幕 高度
|
screenHeight: document.body.clientHeight, // 屏幕 高度
|
||||||
rootSubmenuKeys: [
|
rootSubmenuKeys: [
|
||||||
@@ -828,17 +954,17 @@ export default {
|
|||||||
"sub29",
|
"sub29",
|
||||||
],
|
],
|
||||||
openKeys: localStorage.getItem("openKeys")
|
openKeys: localStorage.getItem("openKeys")
|
||||||
? JSON.parse(localStorage.getItem("openKeys"))
|
? JSON.parse(localStorage.getItem("openKeys"))
|
||||||
: ["sub1"], //默认打开以及打开的一级导航
|
: ["sub1"], //默认打开以及打开的一级导航
|
||||||
selectedKeys: localStorage.getItem("selectedKeys")
|
selectedKeys: localStorage.getItem("selectedKeys")
|
||||||
? JSON.parse(localStorage.getItem("selectedKeys"))
|
? JSON.parse(localStorage.getItem("selectedKeys"))
|
||||||
: ["sub1"], //默认选择以及选择的二级导航
|
: ["sub1"], //默认选择以及选择的二级导航
|
||||||
openKeys2: localStorage.getItem("openKeys")
|
openKeys2: localStorage.getItem("openKeys")
|
||||||
? JSON.parse(localStorage.getItem("openKeys"))
|
? JSON.parse(localStorage.getItem("openKeys"))
|
||||||
: ["sub1"], //默认打开以及打开的一级导航
|
: ["sub1"], //默认打开以及打开的一级导航
|
||||||
selectedKeys2: localStorage.getItem("openKeys")
|
selectedKeys2: localStorage.getItem("openKeys")
|
||||||
? JSON.parse(localStorage.getItem("openKeys"))
|
? JSON.parse(localStorage.getItem("openKeys"))
|
||||||
: ["sub1"], //默认选择以及选择的二级导航
|
: ["sub1"], //默认选择以及选择的二级导航
|
||||||
|
|
||||||
keysList: [
|
keysList: [
|
||||||
{
|
{
|
||||||
@@ -1194,22 +1320,22 @@ export default {
|
|||||||
selectedKeys: "sub21",
|
selectedKeys: "sub21",
|
||||||
pagename: "受众管理",
|
pagename: "受众管理",
|
||||||
},
|
},
|
||||||
|
|
||||||
],
|
],
|
||||||
oldManage: window.location.protocol + process.env.VUE_APP_OLD_MANAGE,
|
oldManage: window.location.protocol + process.env.VUE_APP_OLD_MANAGE,
|
||||||
evaluationManagement: window.location.protocol + process.env.VUE_APP_EVA_MANAGE
|
evaluationManagement:
|
||||||
|
window.location.protocol + process.env.VUE_APP_EVA_MANAGE,
|
||||||
});
|
});
|
||||||
|
|
||||||
const onOpenChange = (openKeys) => {
|
const onOpenChange = (openKeys) => {
|
||||||
const latestOpenKey = openKeys.find(
|
const latestOpenKey = openKeys.find(
|
||||||
(key) => state.openKeys.indexOf(key) === -1
|
(key) => state.openKeys.indexOf(key) === -1
|
||||||
);
|
);
|
||||||
if (state.rootSubmenuKeys.indexOf(latestOpenKey) === -1) {
|
if (state.rootSubmenuKeys.indexOf(latestOpenKey) === -1) {
|
||||||
state.openKeys = openKeys;
|
state.openKeys = openKeys;
|
||||||
console.log('111',openKeys)
|
console.log("111", openKeys);
|
||||||
} else {
|
} else {
|
||||||
state.openKeys = latestOpenKey ? [latestOpenKey] : [];
|
state.openKeys = latestOpenKey ? [latestOpenKey] : [];
|
||||||
console.log('222222222222222')
|
console.log("222222222222222");
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
const selectItem = (e) => {
|
const selectItem = (e) => {
|
||||||
@@ -1218,14 +1344,14 @@ export default {
|
|||||||
if (e.key === value.selectedKeys) {
|
if (e.key === value.selectedKeys) {
|
||||||
localStorage.setItem("openKeys", JSON.stringify([value.openKeys]));
|
localStorage.setItem("openKeys", JSON.stringify([value.openKeys]));
|
||||||
localStorage.setItem(
|
localStorage.setItem(
|
||||||
"selectedKeys",
|
"selectedKeys",
|
||||||
JSON.stringify([value.selectedKeys])
|
JSON.stringify([value.selectedKeys])
|
||||||
);
|
);
|
||||||
// console.log('2222',[value.openKeys,value.openKeys2])
|
// console.log('2222',[value.openKeys,value.openKeys2])
|
||||||
state.openKeys = [value.openKeys,value.openKeys2];
|
state.openKeys = [value.openKeys, value.openKeys2];
|
||||||
// state.openKeys=['sub17', 'sub17-2']
|
// state.openKeys=['sub17', 'sub17-2']
|
||||||
state.selectedKeys = [value.selectedKeys];
|
state.selectedKeys = [value.selectedKeys];
|
||||||
state.openKeys2 = [value.openKeys,value.openKeys2];
|
state.openKeys2 = [value.openKeys, value.openKeys2];
|
||||||
state.selectedKeys2 = [value.openKeys];
|
state.selectedKeys2 = [value.openKeys];
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -1233,81 +1359,81 @@ export default {
|
|||||||
|
|
||||||
const route = useRoute();
|
const route = useRoute();
|
||||||
watch(
|
watch(
|
||||||
() => route.fullPath,
|
() => route.fullPath,
|
||||||
(n) => {
|
(n) => {
|
||||||
console.log("监听路由", n, store.state.openpages, state.keysList);
|
console.log("监听路由", n, store.state.openpages, state.keysList);
|
||||||
// console.log("new:" + n.toLowerCase() + ",old:" + o);
|
// console.log("new:" + n.toLowerCase() + ",old:" + o);
|
||||||
let arr = state.keysList;
|
let arr = state.keysList;
|
||||||
if(!arr.some(page => page.href === n)){
|
if (!arr.some((page) => page.href === n)) {
|
||||||
console.log('不存在',n)
|
console.log("不存在", n);
|
||||||
return
|
return;
|
||||||
|
}
|
||||||
|
arr.map((value) => {
|
||||||
|
if (n.toLowerCase() === value.href) {
|
||||||
|
localStorage.setItem("openKeys", JSON.stringify([value.openKeys]));
|
||||||
|
localStorage.setItem(
|
||||||
|
"selectedKeys",
|
||||||
|
JSON.stringify([value.selectedKeys])
|
||||||
|
);
|
||||||
|
state.openKeys = [value.openKeys, value.openKeys2];
|
||||||
|
state.selectedKeys = [value.selectedKeys];
|
||||||
|
state.openKeys2 = [value.openKeys, value.openKeys2];
|
||||||
|
state.selectedKeys2 = [value.openKeys];
|
||||||
}
|
}
|
||||||
arr.map((value) => {
|
});
|
||||||
if (n.toLowerCase() === value.href) {
|
let openpages = store.state.openpages;
|
||||||
localStorage.setItem("openKeys", JSON.stringify([value.openKeys]));
|
if (openpages.length === 0) {
|
||||||
localStorage.setItem(
|
let pagename = state.keysList.filter((a) => {
|
||||||
"selectedKeys",
|
return a.href === n.toLowerCase();
|
||||||
JSON.stringify([value.selectedKeys])
|
|
||||||
);
|
|
||||||
state.openKeys = [value.openKeys,value.openKeys2];
|
|
||||||
state.selectedKeys = [value.selectedKeys];
|
|
||||||
state.openKeys2 = [value.openKeys,value.openKeys2];
|
|
||||||
state.selectedKeys2 = [value.openKeys];
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
let openpages = store.state.openpages;
|
if (pagename && pagename.length !== 0) {
|
||||||
if (openpages.length === 0) {
|
let obj = {
|
||||||
let pagename = state.keysList.filter((a) => {
|
pagename: pagename[0].pagename,
|
||||||
return a.href === n.toLowerCase();
|
href: n.toLowerCase(),
|
||||||
});
|
active: true,
|
||||||
if (pagename && pagename.length !== 0) {
|
};
|
||||||
let obj = {
|
openpages.push(obj);
|
||||||
pagename: pagename[0].pagename,
|
}
|
||||||
href: n.toLowerCase(),
|
} else {
|
||||||
active: true,
|
for (let i = 0; i < openpages.length; i++) {
|
||||||
};
|
openpages[i].active = false;
|
||||||
openpages.push(obj);
|
}
|
||||||
}
|
for (let i = 0; i < openpages.length; i++) {
|
||||||
} else {
|
openpages[i].active = false;
|
||||||
for (let i = 0; i < openpages.length; i++) {
|
if (n.toLowerCase() === openpages[i].href) {
|
||||||
openpages[i].active = false;
|
console.log("已存在", openpages[i]);
|
||||||
}
|
openpages[i].active = true;
|
||||||
for (let i = 0; i < openpages.length; i++) {
|
break;
|
||||||
openpages[i].active = false;
|
} else {
|
||||||
if (n.toLowerCase() === openpages[i].href) {
|
if (i === openpages.length - 1) {
|
||||||
console.log("已存在", openpages[i]);
|
let pagename = state.keysList.filter((a) => {
|
||||||
openpages[i].active = true;
|
return a.href === n.toLowerCase();
|
||||||
break;
|
});
|
||||||
} else {
|
if (pagename && pagename.length !== 0) {
|
||||||
if (i === openpages.length - 1) {
|
let obj = {
|
||||||
let pagename = state.keysList.filter((a) => {
|
pagename: pagename[0].pagename,
|
||||||
return a.href === n.toLowerCase();
|
href: n.toLowerCase(),
|
||||||
});
|
active: true,
|
||||||
if (pagename && pagename.length !== 0) {
|
};
|
||||||
let obj = {
|
openpages.push(obj);
|
||||||
pagename: pagename[0].pagename,
|
|
||||||
href: n.toLowerCase(),
|
|
||||||
active: true,
|
|
||||||
};
|
|
||||||
openpages.push(obj);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
localStorage.setItem("openpages", JSON.stringify(openpages));
|
|
||||||
store.commit("chengeOpenpages", openpages);
|
|
||||||
|
|
||||||
// store.getters.chengeOpenpages(openpages)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
localStorage.setItem("openpages", JSON.stringify(openpages));
|
||||||
|
store.commit("chengeOpenpages", openpages);
|
||||||
|
|
||||||
|
// store.getters.chengeOpenpages(openpages)
|
||||||
|
}
|
||||||
);
|
);
|
||||||
const packUp = () => {
|
const packUp = () => {
|
||||||
state.packup = !state.packup;
|
state.packup = !state.packup;
|
||||||
};
|
};
|
||||||
const lecturerPath = () => {
|
const lecturerPath = () => {
|
||||||
return state.lecturerRoute[lecturerRoute(state.lecturerAdmin)]
|
return state.lecturerRoute[lecturerRoute(state.lecturerAdmin)];
|
||||||
}
|
};
|
||||||
const getClientHeight = () => {
|
const getClientHeight = () => {
|
||||||
state.screenHeight = document.body.clientHeight;
|
state.screenHeight = document.body.clientHeight;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -174,7 +174,7 @@
|
|||||||
<div class="btnbox">
|
<div class="btnbox">
|
||||||
<a-input-number
|
<a-input-number
|
||||||
min="0"
|
min="0"
|
||||||
:disabled="formData.id"
|
:disabled="formData.id"
|
||||||
v-model:value="formData.info.passLine"
|
v-model:value="formData.info.passLine"
|
||||||
style="width: 400px; height: 40px; border-radius: 8px"
|
style="width: 400px; height: 40px; border-radius: 8px"
|
||||||
/>
|
/>
|
||||||
@@ -188,7 +188,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="textarea">
|
<div class="textarea">
|
||||||
<a-textarea
|
<a-textarea
|
||||||
:disabled="formData.id"
|
:disabled="formData.id"
|
||||||
v-model:value="formData.info.examinationExplain"
|
v-model:value="formData.info.examinationExplain"
|
||||||
placeholder="请输入考试说明"
|
placeholder="请输入考试说明"
|
||||||
show-count
|
show-count
|
||||||
@@ -209,7 +209,7 @@
|
|||||||
<span>允许重复考试:</span>
|
<span>允许重复考试:</span>
|
||||||
<a-input-number
|
<a-input-number
|
||||||
:min="-1"
|
:min="-1"
|
||||||
:disabled="formData.id"
|
:disabled="formData.id"
|
||||||
:max="999999"
|
:max="999999"
|
||||||
:precision="0"
|
:precision="0"
|
||||||
style="
|
style="
|
||||||
@@ -236,7 +236,7 @@
|
|||||||
<a-radio-group
|
<a-radio-group
|
||||||
style="margin-right: 12px"
|
style="margin-right: 12px"
|
||||||
v-model:value="formData.info.showAnswers"
|
v-model:value="formData.info.showAnswers"
|
||||||
:disabled="formData.id"
|
:disabled="formData.id"
|
||||||
>
|
>
|
||||||
<a-radio :value="'1'">允许查看</a-radio>
|
<a-radio :value="'1'">允许查看</a-radio>
|
||||||
<a-radio :value="'2'">不允许查看</a-radio>
|
<a-radio :value="'2'">不允许查看</a-radio>
|
||||||
@@ -250,7 +250,7 @@
|
|||||||
<div class="btnbox">
|
<div class="btnbox">
|
||||||
<a-radio-group
|
<a-radio-group
|
||||||
style="margin-right: 12px"
|
style="margin-right: 12px"
|
||||||
:disabled="formData.id"
|
:disabled="formData.id"
|
||||||
v-model:value="formData.info.showAnalysis"
|
v-model:value="formData.info.showAnalysis"
|
||||||
>
|
>
|
||||||
<a-radio :value="'1'">允许查看</a-radio>
|
<a-radio :value="'1'">允许查看</a-radio>
|
||||||
@@ -265,7 +265,7 @@
|
|||||||
<div class="btnbox">
|
<div class="btnbox">
|
||||||
<a-radio-group
|
<a-radio-group
|
||||||
style="margin-right: 12px"
|
style="margin-right: 12px"
|
||||||
:disabled="formData.id"
|
:disabled="formData.id"
|
||||||
v-model:value="formData.info.scoringModel"
|
v-model:value="formData.info.scoringModel"
|
||||||
>
|
>
|
||||||
<a-radio :value="'1'">最高一次</a-radio>
|
<a-radio :value="'1'">最高一次</a-radio>
|
||||||
@@ -281,7 +281,7 @@
|
|||||||
<div class="btnbox">
|
<div class="btnbox">
|
||||||
<a-radio-group
|
<a-radio-group
|
||||||
style="margin-right: 12px"
|
style="margin-right: 12px"
|
||||||
:disabled="formData.id"
|
:disabled="formData.id"
|
||||||
v-model:value="formData.info.questionArrangement"
|
v-model:value="formData.info.questionArrangement"
|
||||||
>
|
>
|
||||||
<a-radio :value="'1'">试题乱序</a-radio>
|
<a-radio :value="'1'">试题乱序</a-radio>
|
||||||
@@ -435,7 +435,7 @@ const initValue = {
|
|||||||
examinationPaperId: "",
|
examinationPaperId: "",
|
||||||
examinationStartTime: "",
|
examinationStartTime: "",
|
||||||
examinationEndTime: "",
|
examinationEndTime: "",
|
||||||
examinationDuration: 0,
|
examinationDuration: "",
|
||||||
passLine: "",
|
passLine: "",
|
||||||
examType: 1,
|
examType: 1,
|
||||||
source: "",
|
source: "",
|
||||||
@@ -541,14 +541,11 @@ function timeChange(time, timeStr) {
|
|||||||
// 系统考试
|
// 系统考试
|
||||||
async function confirm() {
|
async function confirm() {
|
||||||
console.log(formData.value);
|
console.log(formData.value);
|
||||||
if (formData.value.info.examinationName.trim() == "") {
|
if (!formData.value.info.examinationName) {
|
||||||
message.warning("请输入考试名称");
|
message.warning("请输入考试名称");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (
|
if (formData.value.info.examType != 1 && !formData.value.info.source) {
|
||||||
formData.value.info.source.trim() == "" &&
|
|
||||||
formData.value.info.examType != 1
|
|
||||||
) {
|
|
||||||
message.warning("请输入数据来源");
|
message.warning("请输入数据来源");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -557,10 +554,6 @@ async function confirm() {
|
|||||||
throw Error("数据校验不通过");
|
throw Error("数据校验不通过");
|
||||||
});
|
});
|
||||||
if (formData.value.info.examType == 1) {
|
if (formData.value.info.examType == 1) {
|
||||||
if (formData.value.info.examinationName.trim() == "") {
|
|
||||||
message.warning("请输入考试名称");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (dayjs().isAfter(dayjs(formData.value.info.examinationEndTime))) {
|
if (dayjs().isAfter(dayjs(formData.value.info.examinationEndTime))) {
|
||||||
message.warning("考试结束时间不能小于当前时间");
|
message.warning("考试结束时间不能小于当前时间");
|
||||||
return;
|
return;
|
||||||
@@ -598,11 +591,10 @@ function openDrawer(row) {
|
|||||||
row.info.examinationEndTime,
|
row.info.examinationEndTime,
|
||||||
]);
|
]);
|
||||||
row && (formData.value = row);
|
row && (formData.value = row);
|
||||||
row &&
|
validate = Form.useForm(
|
||||||
(validate = Form.useForm(
|
formData.value.info,
|
||||||
formData.value.info,
|
formData.value.info.examType == 2 ? outerRule : innerRule
|
||||||
row.info.examType == 2 ? outerRule : innerRule
|
).validate;
|
||||||
).validate);
|
|
||||||
visible.value = true;
|
visible.value = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -123,7 +123,7 @@ div
|
|||||||
<div
|
<div
|
||||||
class="btnss"
|
class="btnss"
|
||||||
style="margin-top: 20px; flex-wrap: wrap"
|
style="margin-top: 20px; flex-wrap: wrap"
|
||||||
v-if="checkPer(permissions, createId) && data?.length"
|
v-if="data?.length"
|
||||||
>
|
>
|
||||||
<div
|
<div
|
||||||
:class="{ notClick: courseSelectRows.length > 0 }"
|
:class="{ notClick: courseSelectRows.length > 0 }"
|
||||||
@@ -249,7 +249,6 @@ import * as api from "@/api/index1";
|
|||||||
import { saveStu } from "@/api/index1";
|
import { saveStu } from "@/api/index1";
|
||||||
import BaseTable from "@/components/common/BaseTable";
|
import BaseTable from "@/components/common/BaseTable";
|
||||||
import { message } from "ant-design-vue";
|
import { message } from "ant-design-vue";
|
||||||
import { checkPer } from "@/utils/utils";
|
|
||||||
import { COURSE_PLAN_LIST, STUDENT_LIST } from "@/api/apis";
|
import { COURSE_PLAN_LIST, STUDENT_LIST } from "@/api/apis";
|
||||||
import dialog from "@/utils/dialog";
|
import dialog from "@/utils/dialog";
|
||||||
import qrCode from "@/utils/qrCode";
|
import qrCode from "@/utils/qrCode";
|
||||||
@@ -314,11 +313,7 @@ const props = defineProps({
|
|||||||
const params = ref({ pid: 0, type: 18 });
|
const params = ref({ pid: 0, type: 18 });
|
||||||
const courseSelectRows = ref([]);
|
const courseSelectRows = ref([]);
|
||||||
const infoId = computed(() => props.datasource.growthId);
|
const infoId = computed(() => props.datasource.growthId);
|
||||||
const taskId = computed(() =>
|
|
||||||
props.type === 1
|
|
||||||
? props.datasource.projectTaskId
|
|
||||||
: props.datasource.routerTaskId
|
|
||||||
);
|
|
||||||
const offcoursePlanId = computed(
|
const offcoursePlanId = computed(
|
||||||
() => data.value[coursePlanIndex.value]?.id || ""
|
() => data.value[coursePlanIndex.value]?.id || ""
|
||||||
);
|
);
|
||||||
@@ -344,8 +339,7 @@ const addUserConfirm = (stuSelectRows, projectSelectRows) => {
|
|||||||
};
|
};
|
||||||
const planParams = computed(() => ({
|
const planParams = computed(() => ({
|
||||||
type: props.type,
|
type: props.type,
|
||||||
offcourseId: props.datasource?.courseId,
|
offcourseId: props.datasource?.taskId,
|
||||||
taskId: props.datasource?.id,
|
|
||||||
}));
|
}));
|
||||||
const columns = ref([
|
const columns = ref([
|
||||||
{
|
{
|
||||||
@@ -562,17 +556,15 @@ const batchSign = () => {
|
|||||||
.attendanceSign({
|
.attendanceSign({
|
||||||
courseId: offcoursePlanId.value,
|
courseId: offcoursePlanId.value,
|
||||||
ids: courseSelectRows.value?.map((t) => t.studentId),
|
ids: courseSelectRows.value?.map((t) => t.studentId),
|
||||||
taskId: taskId.value,
|
taskId: props.datasource.id,
|
||||||
taskType: props.datasource.taskType,
|
taskType: props.datasource.taskType,
|
||||||
type: 4,
|
type: 3,
|
||||||
})
|
})
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
message.success("签到成功");
|
message.success("签到成功");
|
||||||
tableRef.value.toLoading();
|
|
||||||
})
|
})
|
||||||
.catch((err) => {
|
.catch((err) => {
|
||||||
message.error("签到失败");
|
message.error("签到失败");
|
||||||
tableRef.value.toLoading();
|
|
||||||
});
|
});
|
||||||
tableRef.value.fetch();
|
tableRef.value.fetch();
|
||||||
},
|
},
|
||||||
@@ -588,11 +580,9 @@ const batchSignAll = () => {
|
|||||||
})
|
})
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
message.success("签到成功");
|
message.success("签到成功");
|
||||||
tableRef.value.toLoading();
|
|
||||||
})
|
})
|
||||||
.catch((err) => {
|
.catch((err) => {
|
||||||
message.error("签到失败");
|
message.error("签到失败");
|
||||||
tableRef.value.toLoading();
|
|
||||||
});
|
});
|
||||||
tableRef.value.fetch();
|
tableRef.value.fetch();
|
||||||
},
|
},
|
||||||
@@ -609,18 +599,18 @@ function stuSign(text) {
|
|||||||
courseId: offcoursePlanId.value,
|
courseId: offcoursePlanId.value,
|
||||||
ids: [text.record.studentId],
|
ids: [text.record.studentId],
|
||||||
studentName: text.record.studentName,
|
studentName: text.record.studentName,
|
||||||
taskId: taskId.value,
|
taskId: props.datasource.id,
|
||||||
taskType: props.datasource.taskType,
|
taskType: props.datasource.taskType,
|
||||||
type: 4,
|
type: 3,
|
||||||
});
|
});
|
||||||
text.record.leaveStatus &&
|
text.record.leaveStatus &&
|
||||||
api.attendanceLeave({
|
api.attendanceLeave({
|
||||||
courseId: offcoursePlanId.value,
|
courseId: offcoursePlanId.value,
|
||||||
ids: [text.record.studentId],
|
ids: [text.record.studentId],
|
||||||
studentName: text.record.studentName,
|
studentName: text.record.studentName,
|
||||||
taskId: taskId.value,
|
taskId: props.datasource.id,
|
||||||
taskType: props.datasource.taskType,
|
taskType: props.datasource.taskType,
|
||||||
type: 4,
|
type: 3,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -118,11 +118,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div class="btnss" style="margin-top: 20px" v-if="data?.length">
|
||||||
class="btnss"
|
|
||||||
style="margin-top: 20px"
|
|
||||||
v-if="checkPer(permissions, createId) && data?.length"
|
|
||||||
>
|
|
||||||
<div class="btn btn1" style="margin-right: 20px" @click="hasten()">
|
<div class="btn btn1" style="margin-right: 20px" @click="hasten()">
|
||||||
<div class="wz">催促学习</div>
|
<div class="wz">催促学习</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -279,7 +275,6 @@ const courseSelectRows = ref([]);
|
|||||||
const planParams = computed(() => ({
|
const planParams = computed(() => ({
|
||||||
type: props.type,
|
type: props.type,
|
||||||
offcourseId: props.datasource?.taskId,
|
offcourseId: props.datasource?.taskId,
|
||||||
taskId: props.datasource?.id,
|
|
||||||
}));
|
}));
|
||||||
const {
|
const {
|
||||||
data = [],
|
data = [],
|
||||||
|
|||||||
@@ -153,7 +153,6 @@ const rulesRef = ref({
|
|||||||
},
|
},
|
||||||
],
|
],
|
||||||
});
|
});
|
||||||
let validate = Form.useForm(formData.value.info, rulesRef).validate;
|
|
||||||
|
|
||||||
const closeDrawer = () => {
|
const closeDrawer = () => {
|
||||||
visible.value = false;
|
visible.value = false;
|
||||||
@@ -206,6 +205,7 @@ async function confirm() {
|
|||||||
});
|
});
|
||||||
closeDrawer();
|
closeDrawer();
|
||||||
}
|
}
|
||||||
|
let validate = null;
|
||||||
function openDrawer(row) {
|
function openDrawer(row) {
|
||||||
row && (formData.value = row);
|
row && (formData.value = row);
|
||||||
row &&
|
row &&
|
||||||
@@ -213,7 +213,7 @@ function openDrawer(row) {
|
|||||||
dayjs(row.info.submitStartTime, "YYYY-MM-DD HH:mm"),
|
dayjs(row.info.submitStartTime, "YYYY-MM-DD HH:mm"),
|
||||||
dayjs(row.info.submitEndTime, "YYYY-MM-DD HH:mm"),
|
dayjs(row.info.submitEndTime, "YYYY-MM-DD HH:mm"),
|
||||||
]);
|
]);
|
||||||
row && (validate = Form.useForm(formData.value.info, rulesRef).validate);
|
validate = Form.useForm(formData.value.info, rulesRef).validate;
|
||||||
visible.value = true;
|
visible.value = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -80,7 +80,6 @@
|
|||||||
<div
|
<div
|
||||||
class="btnss"
|
class="btnss"
|
||||||
style="margin-top: 20px"
|
style="margin-top: 20px"
|
||||||
v-if="checkGrowthPer(permissions)"
|
|
||||||
>
|
>
|
||||||
<div class="btn btn1" @click="godie" style="margin-right: 20px">
|
<div class="btn btn1" @click="godie" style="margin-right: 20px">
|
||||||
<div class="img1"></div>
|
<div class="img1"></div>
|
||||||
@@ -93,10 +92,14 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<template v-if="datasource.taskType == 4">
|
<template v-if="datasource.taskType == 4">
|
||||||
<div class="btn btn2" @click="exportHomeWorkShow">
|
<div
|
||||||
|
class="btn btn2"
|
||||||
|
@click="exportHomeWorkShow"
|
||||||
|
style="margin-left: 20px"
|
||||||
|
>
|
||||||
<div class="wz">导出作业</div>
|
<div class="wz">导出作业</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="btn btn2">
|
<div class="btn btn2" style="margin-left: 20px">
|
||||||
<div class="wz" @click="showEntryScore">导入成绩</div>
|
<div class="wz" @click="showEntryScore">导入成绩</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@@ -383,33 +386,33 @@ export default {
|
|||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
let obj = {
|
// let obj = {
|
||||||
title: "操作",
|
// title: "操作",
|
||||||
dataIndex: "finishStatus",
|
// dataIndex: "finishStatus",
|
||||||
key: "finishStatus",
|
// key: "finishStatus",
|
||||||
width: 60,
|
// width: 60,
|
||||||
align: "center",
|
// align: "center",
|
||||||
ellipsis: true,
|
// ellipsis: true,
|
||||||
className: "h",
|
// className: "h",
|
||||||
customRender: (text) => {
|
// customRender: (text) => {
|
||||||
return (
|
// return (
|
||||||
<div class="racona">
|
// <div class="racona">
|
||||||
<a
|
// <a
|
||||||
style={{ color: text.record.finishStatus == 1 ? "" : "#666" }}
|
// style={{ color: text.record.finishStatus == 1 ? "" : "#666" }}
|
||||||
onClick={() => {
|
// onClick={() => {
|
||||||
text.record.finishStatus == 1 && showassess(text.record);
|
// text.record.finishStatus == 1 && showassess(text.record);
|
||||||
}}
|
// }}
|
||||||
>
|
// >
|
||||||
查看
|
// 查看
|
||||||
</a>
|
// </a>
|
||||||
</div>
|
// </div>
|
||||||
);
|
// );
|
||||||
},
|
// },
|
||||||
};
|
// };
|
||||||
|
|
||||||
/* 评估查看操作 */
|
/* 评估查看操作 */
|
||||||
if (props.datasource.taskType == 11) {
|
if (props.datasource.taskType == 11) {
|
||||||
columns.push(obj);
|
// columns.push(obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
return columns;
|
return columns;
|
||||||
@@ -547,8 +550,8 @@ export default {
|
|||||||
return `${url}?${searchParams.toString()}`;
|
return `${url}?${searchParams.toString()}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
//显示导出作业弹窗
|
//显示导出作业弹窗
|
||||||
const exportHomeWorkShow = () => {
|
const exportHomeWorkShow = () => {
|
||||||
// state.exportHomeWorkV = true;
|
// state.exportHomeWorkV = true;
|
||||||
// exportHomeWork();
|
// exportHomeWork();
|
||||||
let obj = {
|
let obj = {
|
||||||
@@ -579,7 +582,6 @@ export default {
|
|||||||
return {
|
return {
|
||||||
...toRefs(state),
|
...toRefs(state),
|
||||||
selectCompletionStatus,
|
selectCompletionStatus,
|
||||||
checkGrowthPer,
|
|
||||||
showassess,
|
showassess,
|
||||||
closeDrawer,
|
closeDrawer,
|
||||||
exportHomeWorkShow,
|
exportHomeWorkShow,
|
||||||
|
|||||||
1242
src/views/growthpath/GrowthAddPath.vue
Normal file
1242
src/views/growthpath/GrowthAddPath.vue
Normal file
File diff suppressed because it is too large
Load Diff
@@ -570,6 +570,23 @@ export default {
|
|||||||
align: "center",
|
align: "center",
|
||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
title: "总完成人数",
|
||||||
|
dataIndex: "comLearnNum",
|
||||||
|
key: "comLearnNum",
|
||||||
|
align: "center",
|
||||||
|
ellipsis: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "完成比例",
|
||||||
|
dataIndex: "ratio",
|
||||||
|
key: "ratio",
|
||||||
|
align: "center",
|
||||||
|
ellipsis: true,
|
||||||
|
customRender: ({ record }) => {
|
||||||
|
return `${record.ratio * 100}%`;
|
||||||
|
},
|
||||||
|
},
|
||||||
{
|
{
|
||||||
title: "状态",
|
title: "状态",
|
||||||
dataIndex: "isPublished",
|
dataIndex: "isPublished",
|
||||||
@@ -580,6 +597,13 @@ export default {
|
|||||||
return record.isPublished ? "已发布" : "未发布";
|
return record.isPublished ? "已发布" : "未发布";
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
title: "更新时间",
|
||||||
|
dataIndex: "updateTime",
|
||||||
|
key: "updateTime",
|
||||||
|
align: "center",
|
||||||
|
ellipsis: true,
|
||||||
|
},
|
||||||
|
|
||||||
// {
|
// {
|
||||||
// title: "归属人",
|
// title: "归属人",
|
||||||
|
|||||||
@@ -905,7 +905,7 @@ export default {
|
|||||||
visibleEwm.value[item.id] = !visibleEwm.value[item.id];
|
visibleEwm.value[item.id] = !visibleEwm.value[item.id];
|
||||||
const planParams = {
|
const planParams = {
|
||||||
type: 4,
|
type: 4,
|
||||||
taskId: item.id,
|
offcourseId: item.taskId,
|
||||||
};
|
};
|
||||||
await courseData(planParams).then((res) => {
|
await courseData(planParams).then((res) => {
|
||||||
qrCodeItems.value = res.data.data.map((dataItem) => ({
|
qrCodeItems.value = res.data.data.map((dataItem) => ({
|
||||||
@@ -959,7 +959,7 @@ export default {
|
|||||||
visibleEwmpg.value[item.id] = !visibleEwmpg.value[item.id];
|
visibleEwmpg.value[item.id] = !visibleEwmpg.value[item.id];
|
||||||
const planParams = {
|
const planParams = {
|
||||||
type: 4,
|
type: 4,
|
||||||
taskId: item.id,
|
offcourseId: item.taskId,
|
||||||
};
|
};
|
||||||
await courseData(planParams).then((res) => {
|
await courseData(planParams).then((res) => {
|
||||||
const qrCodeItemspgItem = res.data.data.map((dataItem) => ({
|
const qrCodeItemspgItem = res.data.data.map((dataItem) => ({
|
||||||
@@ -982,6 +982,9 @@ export default {
|
|||||||
url: `${location.protocol}//${location.host}/student-h5/investigatpage?id=${qrCodeItemspg.value[0].id}&type=3&infoId=${qrCodeItemspg.value[0].id}&courseId=${qrCodeItemspg.value[0].assessmentId}&chapterOrStageId=0&level=${courseName}`,
|
url: `${location.protocol}//${location.host}/student-h5/investigatpage?id=${qrCodeItemspg.value[0].id}&type=3&infoId=${qrCodeItemspg.value[0].id}&courseId=${qrCodeItemspg.value[0].assessmentId}&chapterOrStageId=0&level=${courseName}`,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
if (qrCodeItemspg.value.length == 0) {
|
||||||
|
message.info("暂无评估二维码");
|
||||||
|
}
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -18,16 +18,16 @@ module.exports = defineConfig({
|
|||||||
overlay: false,// 解决代码抛出异常
|
overlay: false,// 解决代码抛出异常
|
||||||
},
|
},
|
||||||
proxy: {
|
proxy: {
|
||||||
// "/professional": {
|
"/professional": {
|
||||||
// target: 'http://192.168.31.211:32002',
|
target: 'http://192.168.38.211:32002',
|
||||||
// // target: 'http://192.168.50.195:32002',
|
// target: 'http://192.168.50.195:32002',
|
||||||
// // target: 'http://192.168.86.195:32002',
|
// target: 'http://192.168.86.195:32002',
|
||||||
// changeOrigin: true,
|
|
||||||
// },
|
|
||||||
"/growth": {
|
|
||||||
target: 'https:' + process.env.VUE_APP_BOE_API_URL,
|
|
||||||
changeOrigin: true,
|
changeOrigin: true,
|
||||||
},
|
},
|
||||||
|
// "/growth": {
|
||||||
|
// target: 'https:' + process.env.VUE_APP_BOE_API_URL,
|
||||||
|
// changeOrigin: true,
|
||||||
|
// },
|
||||||
"/manageApi": {
|
"/manageApi": {
|
||||||
target: 'https:' + process.env.VUE_APP_PROXY_URL,
|
target: 'https:' + process.env.VUE_APP_PROXY_URL,
|
||||||
changeOrigin: true, //表示是否改变原域名
|
changeOrigin: true, //表示是否改变原域名
|
||||||
|
|||||||
Reference in New Issue
Block a user