mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/fe-manage.git
synced 2025-12-10 03:16:44 +08:00
Merge branch 'develop' of ssh://gitlab.dongwu-inc.com:10022/BOE/fe-manage into develop
This commit is contained in:
1
.env
1
.env
@@ -18,6 +18,7 @@ VUE_APP_OUTPUT_DIR=./dist
|
|||||||
VUE_APP_IFRAME_URL=//u-pre.boe.com/pc/iframe
|
VUE_APP_IFRAME_URL=//u-pre.boe.com/pc/iframe
|
||||||
# 学员端路由
|
# 学员端路由
|
||||||
VUE_APP_IFRAME_STUDENT_URL=//u-pre.boe.com/pc/loading
|
VUE_APP_IFRAME_STUDENT_URL=//u-pre.boe.com/pc/loading
|
||||||
|
VUE_APP_IFRAME_TEACHER_URL=//u-pre.boe.com/pc/need/waitaudit
|
||||||
|
|
||||||
# 课程二维码
|
# 课程二维码
|
||||||
VUE_APP_COURSE_STUDY=//u-pre.boe.com/pc/course/studyindex?id=
|
VUE_APP_COURSE_STUDY=//u-pre.boe.com/pc/course/studyindex?id=
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ VUE_APP_BOE_API_URL=//u.boe.com
|
|||||||
|
|
||||||
VUE_APP_IFRAME_URL=//u.boe.com/pc/iframe
|
VUE_APP_IFRAME_URL=//u.boe.com/pc/iframe
|
||||||
VUE_APP_IFRAME_STUDENT_URL=//u.boe.com/pc/loading
|
VUE_APP_IFRAME_STUDENT_URL=//u.boe.com/pc/loading
|
||||||
|
VUE_APP_IFRAME_TEACHER_URL=//u-pre.boe.com/pc/need/waitaudit
|
||||||
|
|
||||||
VUE_APP_COURSE_STUDY=//u.boe.com/pc/course/studyindex?id=
|
VUE_APP_COURSE_STUDY=//u.boe.com/pc/course/studyindex?id=
|
||||||
|
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ VUE_APP_BOE_API_URL=//u.boe.com
|
|||||||
|
|
||||||
VUE_APP_IFRAME_URL=//u.boe.com/pc-release/iframe
|
VUE_APP_IFRAME_URL=//u.boe.com/pc-release/iframe
|
||||||
VUE_APP_IFRAME_STUDENT_URL=//u.boe.com/pc-release/loading
|
VUE_APP_IFRAME_STUDENT_URL=//u.boe.com/pc-release/loading
|
||||||
|
VUE_APP_IFRAME_TEACHER_URL=//u-pre.boe.com/pc-release/need/waitaudit
|
||||||
|
|
||||||
VUE_APP_COURSE_STUDY=//u.boe.com/pc-release/course/studyindex?id=
|
VUE_APP_COURSE_STUDY=//u.boe.com/pc-release/course/studyindex?id=
|
||||||
|
|
||||||
|
|||||||
@@ -280,6 +280,7 @@ const organizationalTree = []
|
|||||||
const iframeUrl = window.location.protocol + process.env.VUE_APP_IFRAME_URL
|
const iframeUrl = window.location.protocol + process.env.VUE_APP_IFRAME_URL
|
||||||
//学员端路由
|
//学员端路由
|
||||||
const studentUrl = window.location.protocol + process.env.VUE_APP_IFRAME_STUDENT_URL
|
const studentUrl = window.location.protocol + process.env.VUE_APP_IFRAME_STUDENT_URL
|
||||||
|
const teacherUrl = window.location.protocol + process.env.VUE_APP_IFRAME_TEACHER_URL
|
||||||
|
|
||||||
//二维码
|
//二维码
|
||||||
const codeUrl = window.location.protocol + "//u-pre.boe.com"
|
const codeUrl = window.location.protocol + "//u-pre.boe.com"
|
||||||
@@ -297,5 +298,6 @@ export {
|
|||||||
organizationalTree,
|
organizationalTree,
|
||||||
iframeUrl,
|
iframeUrl,
|
||||||
studentUrl,
|
studentUrl,
|
||||||
|
teacherUrl,
|
||||||
codeUrl,
|
codeUrl,
|
||||||
}
|
}
|
||||||
@@ -1,39 +1,46 @@
|
|||||||
<template>
|
<template>
|
||||||
<div
|
<div
|
||||||
class="navLeft"
|
class="navLeft"
|
||||||
:style="{
|
:style="{
|
||||||
width: packup ? '100px' : '208px',
|
width: packup ? '100px' : '208px',
|
||||||
'min-height': screenHeight - 80 + 'px',
|
'min-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>
|
||||||
@@ -42,7 +49,7 @@
|
|||||||
<span
|
<span
|
||||||
:class="{
|
:class="{
|
||||||
circleActive: selectedKeys[0] === 'sub10-5',
|
circleActive: selectedKeys[0] === 'sub10-5',
|
||||||
circle: selectedKeys[0]!=='sub10-5',
|
circle: selectedKeys[0] !== 'sub10-5',
|
||||||
}"
|
}"
|
||||||
></span>
|
></span>
|
||||||
<router-link to="/TobeOnlineReviewed">待审核在线课</router-link>
|
<router-link to="/TobeOnlineReviewed">待审核在线课</router-link>
|
||||||
@@ -51,14 +58,14 @@
|
|||||||
<span
|
<span
|
||||||
:class="{
|
:class="{
|
||||||
circleActive: selectedKeys[0] === 'sub10-6',
|
circleActive: selectedKeys[0] === 'sub10-6',
|
||||||
circle: selectedKeys[0]!=='sub10-6',
|
circle: selectedKeys[0] !== 'sub10-6',
|
||||||
}"
|
}"
|
||||||
></span>
|
></span>
|
||||||
<router-link to="/OnlineReviewed">已审核在线课</router-link>
|
<router-link to="/OnlineReviewed">已审核在线课</router-link>
|
||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
<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,
|
||||||
}"
|
}"
|
||||||
@@ -67,7 +74,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,
|
||||||
}"
|
}"
|
||||||
@@ -76,7 +83,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,
|
||||||
}"
|
}"
|
||||||
@@ -85,7 +92,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,
|
||||||
}"
|
}"
|
||||||
@@ -94,29 +101,37 @@
|
|||||||
</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-sub-menu key="sub2" @titleClick="titleClick" v-if="checkMenu('projectmanage,templatelibrary')">
|
<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,
|
||||||
}"
|
}"
|
||||||
@@ -125,7 +140,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,
|
||||||
}"
|
}"
|
||||||
@@ -134,19 +149,22 @@
|
|||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
</a-sub-menu>
|
</a-sub-menu>
|
||||||
|
|
||||||
<a-sub-menu key="sub3" v-if="checkMenu('coursewaremanage,onlinemanage,coursemanage')">
|
<a-sub-menu
|
||||||
|
key="sub3"
|
||||||
|
v-if="checkMenu('coursewaremanage,onlinemanage,coursemanage')"
|
||||||
|
>
|
||||||
<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,
|
||||||
}"
|
}"
|
||||||
@@ -155,7 +173,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,
|
||||||
}"
|
}"
|
||||||
@@ -164,7 +182,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,
|
||||||
}"
|
}"
|
||||||
@@ -182,56 +200,65 @@
|
|||||||
</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>
|
||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
|
|
||||||
<a-sub-menu key="sub6" v-if="checkMenu('OldSystemManage','ReadingClubManage','dictmanage')">
|
<!-- <a-sub-menu
|
||||||
|
key="sub6"
|
||||||
|
v-if="checkMenu('OldSystemManage', 'ReadingClubManage', 'dictmanage')"
|
||||||
|
>
|
||||||
<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="sub6-1" v-if="checkMenu('OldSystemManage')">
|
<a-menu-item key="sub6-1" v-if="checkMenu('OldSystemManage')">
|
||||||
<span
|
<span
|
||||||
:class="{
|
:class="{
|
||||||
circleActive: selectedKeys[0] === 'sub6-1',
|
circleActive: selectedKeys[0] === 'sub6-1',
|
||||||
circle: selectedKeys[0]!=='sub6-1',
|
circle: selectedKeys[0] !== 'sub6-1',
|
||||||
}"
|
}"
|
||||||
></span>
|
></span>
|
||||||
<router-link to="/OldSystemManage">旧版管理员界面</router-link>
|
<router-link to="/OldSystemManage">旧版管理员界面</router-link>
|
||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
<a-menu-item key="sub6-2" v-if="checkMenu('ReadingClubManage')">
|
<a-menu-item key="sub6-2" v-if="checkMenu('ReadingClubManage')">
|
||||||
<span
|
<span
|
||||||
:class="{
|
:class="{
|
||||||
circleActive: selectedKeys[0] === 'sub6-2',
|
circleActive: selectedKeys[0] === 'sub6-2',
|
||||||
circle: selectedKeys[0]!=='sub6-2',
|
circle: selectedKeys[0] !== 'sub6-2',
|
||||||
}"
|
}"
|
||||||
></span>
|
></span>
|
||||||
<router-link to="/ReadingClubManage">业务支援读书会管理</router-link>
|
<router-link to="/ReadingClubManage"
|
||||||
|
>业务支援读书会管理</router-link
|
||||||
|
>
|
||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
<a-menu-item key="sub6-4" v-if="checkMenu('dictmanage')">
|
<a-menu-item key="sub6-4" v-if="checkMenu('dictmanage')">
|
||||||
<span
|
<span
|
||||||
:class="{
|
:class="{
|
||||||
circleActive: selectedKeys[0] === 'sub6-4',
|
circleActive: selectedKeys[0] === 'sub6-4',
|
||||||
circle: selectedKeys[0]!=='sub6-4',
|
circle: selectedKeys[0] !== 'sub6-4',
|
||||||
}"
|
}"
|
||||||
></span>
|
></span>
|
||||||
<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-sub-menu key="sub7" v-if="checkMenu('AudienceManage')">
|
<!-- <a-sub-menu key="sub7" v-if="checkMenu('AudienceManage')">
|
||||||
<template #icon>
|
<template #icon>
|
||||||
<div class="imgBox">
|
<div class="imgBox">
|
||||||
<img
|
<img
|
||||||
@@ -250,8 +277,16 @@
|
|||||||
></span>
|
></span>
|
||||||
<router-link to="/AudienceManage">受众管理</router-link>
|
<router-link to="/AudienceManage">受众管理</router-link>
|
||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
</a-sub-menu>
|
</a-sub-menu> -->
|
||||||
|
<a-menu-item key="sub7" v-if="checkMenu('AudienceManage')">
|
||||||
|
<div class="imgBox">
|
||||||
|
<img
|
||||||
|
style="width: 22px; height: 22px"
|
||||||
|
src="../assets/images/navleft/review.png"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<router-link to="/audiencemanage">受众管理</router-link>
|
||||||
|
</a-menu-item>
|
||||||
<!-- <a-menu-item key="sub5" v-if="checkMenu('researchmanage')">
|
<!-- <a-menu-item key="sub5" v-if="checkMenu('researchmanage')">
|
||||||
<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"/>
|
||||||
@@ -299,20 +334,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,
|
||||||
}"
|
}"
|
||||||
@@ -321,7 +359,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,
|
||||||
}"
|
}"
|
||||||
@@ -330,7 +368,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,
|
||||||
}"
|
}"
|
||||||
@@ -338,69 +376,129 @@
|
|||||||
<router-link to="/examinationcenter">考试管理</router-link>
|
<router-link to="/examinationcenter">考试管理</router-link>
|
||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
</a-sub-menu>
|
</a-sub-menu>
|
||||||
<a-menu-item key="sub12" @titleClick="titleClick" v-if="checkMenu('casemanage')">
|
<a-menu-item
|
||||||
|
key="sub12"
|
||||||
|
@titleClick="titleClick"
|
||||||
|
v-if="checkMenu('casemanage')"
|
||||||
|
>
|
||||||
<div class="imgBox">
|
<div class="imgBox">
|
||||||
<img
|
<img
|
||||||
style="width: 20px; height: 20px"
|
style="width: 20px; height: 20px"
|
||||||
src="../assets/images/navleft/case.png"
|
src="../assets/images/navleft/case.png"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<router-link to="/casemanage">案例管理</router-link>
|
<router-link to="/casemanage">案例管理</router-link>
|
||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
<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-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>
|
||||||
|
|
||||||
|
<a-menu-item key="sub16" v-if="checkMenu('OldSystemManage')">
|
||||||
|
<div class="imgBox">
|
||||||
|
<img
|
||||||
|
style="width: 22px; height: 22px"
|
||||||
|
src="../assets/images/navleft/review.png"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<router-link to="/oldsystemmanage">旧版管理员界面</router-link>
|
||||||
|
</a-menu-item>
|
||||||
|
<a-menu-item key="sub17" v-if="checkMenu('ReadingClubManage')">
|
||||||
|
<div class="imgBox">
|
||||||
|
<img
|
||||||
|
style="width: 22px; height: 22px"
|
||||||
|
src="../assets/images/navleft/review.png"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<router-link to="/readingclubmanage">业务支援读书会管理</router-link>
|
||||||
|
</a-menu-item>
|
||||||
|
<a-menu-item key="sub18" v-if="checkMenu('dictmanage')">
|
||||||
|
<div class="imgBox">
|
||||||
|
<img
|
||||||
|
style="width: 22px; height: 22px"
|
||||||
|
src="../assets/images/navleft/review.png"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<router-link to="/dictmanage">字典管理</router-link>
|
||||||
|
</a-menu-item>
|
||||||
</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" v-if="checkMenu('coursereviewedn')">
|
<a-menu-item
|
||||||
|
key="sub10"
|
||||||
|
@titleClick="titleClick"
|
||||||
|
v-if="checkMenu('coursereviewedn')"
|
||||||
|
>
|
||||||
<router-link to="/coursereviewedn">审核</router-link>
|
<router-link to="/coursereviewedn">审核</router-link>
|
||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
<a-menu-item key="sub1" @titleClick="titleClick" v-if="checkMenu('learningpath')">
|
<a-menu-item
|
||||||
|
key="sub1"
|
||||||
|
@titleClick="titleClick"
|
||||||
|
v-if="checkMenu('learningpath')"
|
||||||
|
>
|
||||||
<router-link to="/learningpath">学习</router-link>
|
<router-link to="/learningpath">学习</router-link>
|
||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
|
|
||||||
<a-menu-item key="sub2" @titleClick="titleClick" v-if="checkMenu('projectmanage')">
|
<a-menu-item
|
||||||
|
key="sub2"
|
||||||
|
@titleClick="titleClick"
|
||||||
|
v-if="checkMenu('projectmanage')"
|
||||||
|
>
|
||||||
<router-link to="/projectmanage">项目</router-link>
|
<router-link to="/projectmanage">项目</router-link>
|
||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
|
|
||||||
<a-menu-item key="sub3" @titleClick="titleClick" v-if="checkMenu('coursewaremanage')">
|
<a-menu-item
|
||||||
|
key="sub3"
|
||||||
|
@titleClick="titleClick"
|
||||||
|
v-if="checkMenu('coursewaremanage')"
|
||||||
|
>
|
||||||
<router-link to="/coursewaremanage">课程</router-link>
|
<router-link to="/coursewaremanage">课程</router-link>
|
||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
<!-- 2022-12-10注释 后面放开 -->
|
<!-- 2022-12-10注释 后面放开 -->
|
||||||
@@ -408,9 +506,16 @@
|
|||||||
<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')"
|
||||||
|
>
|
||||||
<router-link to="/researchmanage">评估</router-link>
|
<router-link to="/researchmanage">评估</router-link>
|
||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
|
<a-menu-item key="sub7" v-if="checkMenu('AudienceManage')">
|
||||||
|
<router-link to="/audiencemanage">受众</router-link>
|
||||||
|
</a-menu-item>
|
||||||
<!-- 2022-12-10注释 后面放开 -->
|
<!-- 2022-12-10注释 后面放开 -->
|
||||||
<!-- <a-menu-item key="sub6" @titleClick="titleClick">
|
<!-- <a-menu-item key="sub6" @titleClick="titleClick">
|
||||||
<span>报表</span>
|
<span>报表</span>
|
||||||
@@ -427,31 +532,61 @@
|
|||||||
<span>系统</span>
|
<span>系统</span>
|
||||||
</a-menu-item> -->
|
</a-menu-item> -->
|
||||||
|
|
||||||
<a-menu-item key="sub11" @titleClick="titleClick" v-if="checkMenu('examinationcenter')">
|
<a-menu-item
|
||||||
|
key="sub11"
|
||||||
|
@titleClick="titleClick"
|
||||||
|
v-if="checkMenu('examinationcenter')"
|
||||||
|
>
|
||||||
<router-link to="/examinationcenter">考试</router-link>
|
<router-link to="/examinationcenter">考试</router-link>
|
||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
<a-menu-item key="sub12" @titleClick="titleClick" v-if="checkMenu('casemanage')">
|
<a-menu-item
|
||||||
|
key="sub12"
|
||||||
|
@titleClick="titleClick"
|
||||||
|
v-if="checkMenu('casemanage')"
|
||||||
|
>
|
||||||
<router-link to="/casemanage">案例</router-link>
|
<router-link to="/casemanage">案例</router-link>
|
||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
<a-menu-item key="sub13" @titleClick="titleClick" v-if="checkMenu('articlemanage')">
|
<a-menu-item
|
||||||
|
key="sub13"
|
||||||
|
@titleClick="titleClick"
|
||||||
|
v-if="checkMenu('articlemanage')"
|
||||||
|
>
|
||||||
<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')"
|
||||||
|
>
|
||||||
<router-link to="/qamanage">问答</router-link>
|
<router-link to="/qamanage">问答</router-link>
|
||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
<a-menu-item key="sub15" @titleClick="titleClick" v-if="checkMenu('download')">
|
<a-menu-item
|
||||||
|
key="sub15"
|
||||||
|
@titleClick="titleClick"
|
||||||
|
v-if="checkMenu('download')"
|
||||||
|
>
|
||||||
<router-link to="/download">下载</router-link>
|
<router-link to="/download">下载</router-link>
|
||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
|
|
||||||
|
<a-menu-item key="sub16" v-if="checkMenu('OldSystemManage')">
|
||||||
|
<router-link to="/oldsystemmanage">旧版</router-link>
|
||||||
|
</a-menu-item>
|
||||||
|
<a-menu-item key="sub17" v-if="checkMenu('ReadingClubManage')">
|
||||||
|
<router-link to="/readingclubmanage">业务</router-link>
|
||||||
|
</a-menu-item>
|
||||||
|
<a-menu-item key="sub18" v-if="checkMenu('dictmanage')">
|
||||||
|
<router-link to="/dictmanage">字典</router-link>
|
||||||
|
</a-menu-item>
|
||||||
</a-menu>
|
</a-menu>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</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} from "@/utils/utils";
|
import { checkMenu } from "@/utils/utils";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "NavLeft",
|
name: "NavLeft",
|
||||||
@@ -476,19 +611,22 @@ export default {
|
|||||||
"sub13",
|
"sub13",
|
||||||
"sub14",
|
"sub14",
|
||||||
"sub15",
|
"sub15",
|
||||||
|
"sub16",
|
||||||
|
"sub17",
|
||||||
|
"sub18",
|
||||||
],
|
],
|
||||||
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: [
|
||||||
{
|
{
|
||||||
@@ -643,6 +781,30 @@ export default {
|
|||||||
selectedKeys: "sub15",
|
selectedKeys: "sub15",
|
||||||
pagename: "下载中心",
|
pagename: "下载中心",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
href: "/audiencemanage",
|
||||||
|
openKeys: "sub7",
|
||||||
|
selectedKeys: "sub7",
|
||||||
|
pagename: "受众管理",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
href: "/oldsystemmanage",
|
||||||
|
openKeys: "sub16",
|
||||||
|
selectedKeys: "sub16",
|
||||||
|
pagename: "旧版管理员界面",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
href: "/readingclubmanage",
|
||||||
|
openKeys: "sub17",
|
||||||
|
selectedKeys: "sub17",
|
||||||
|
pagename: "业务支援读书会管理",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
href: "/dictmanage",
|
||||||
|
openKeys: "sub18",
|
||||||
|
selectedKeys: "sub18",
|
||||||
|
pagename: "字典管理",
|
||||||
|
},
|
||||||
],
|
],
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -650,7 +812,7 @@ export default {
|
|||||||
|
|
||||||
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;
|
||||||
@@ -665,8 +827,8 @@ 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])
|
||||||
);
|
);
|
||||||
state.openKeys = [value.openKeys];
|
state.openKeys = [value.openKeys];
|
||||||
state.selectedKeys = [value.selectedKeys];
|
state.selectedKeys = [value.selectedKeys];
|
||||||
@@ -678,70 +840,70 @@ 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;
|
||||||
arr.map((value) => {
|
arr.map((value) => {
|
||||||
if (n.toLowerCase() === value.href) {
|
if (n.toLowerCase() === value.href) {
|
||||||
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])
|
||||||
);
|
);
|
||||||
state.openKeys = [value.openKeys];
|
state.openKeys = [value.openKeys];
|
||||||
state.selectedKeys = [value.selectedKeys];
|
state.selectedKeys = [value.selectedKeys];
|
||||||
state.openKeys2 = [value.openKeys];
|
state.openKeys2 = [value.openKeys];
|
||||||
state.selectedKeys2 = [value.openKeys];
|
state.selectedKeys2 = [value.openKeys];
|
||||||
}
|
}
|
||||||
|
});
|
||||||
|
let openpages = store.state.openpages;
|
||||||
|
if (openpages.length === 0) {
|
||||||
|
let pagename = state.keysList.filter((a) => {
|
||||||
|
return a.href === n.toLowerCase();
|
||||||
});
|
});
|
||||||
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;
|
||||||
|
|||||||
@@ -46,7 +46,7 @@
|
|||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
import {computed, reactive} from "vue";
|
import {computed, reactive} from "vue";
|
||||||
import {studentUrl} from "@/api/method";
|
import {studentUrl,teacherUrl} from "@/api/method";
|
||||||
import router from "@/router";
|
import router from "@/router";
|
||||||
import {useStore, createStore} from "vuex";
|
import {useStore, createStore} from "vuex";
|
||||||
|
|
||||||
@@ -67,6 +67,11 @@ const state = reactive({
|
|||||||
name: "学员",
|
name: "学员",
|
||||||
go: studentUrl,
|
go: studentUrl,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
id:3,
|
||||||
|
name: "教师",
|
||||||
|
go: teacherUrl,
|
||||||
|
}
|
||||||
],
|
],
|
||||||
visible: false,
|
visible: false,
|
||||||
});
|
});
|
||||||
@@ -124,7 +129,7 @@ const logOut = () => {
|
|||||||
|
|
||||||
.roleItems {
|
.roleItems {
|
||||||
width: 109px;
|
width: 109px;
|
||||||
height: 90px;
|
height: 120px;
|
||||||
padding-top: 10px;
|
padding-top: 10px;
|
||||||
background: #ffffff;
|
background: #ffffff;
|
||||||
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.21);
|
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.21);
|
||||||
|
|||||||
@@ -940,6 +940,7 @@ export default {
|
|||||||
};
|
};
|
||||||
const signQR = () => {
|
const signQR = () => {
|
||||||
console.log("props.datasource", props.datasource);
|
console.log("props.datasource", props.datasource);
|
||||||
|
console.log("是项目还是路径图啊")
|
||||||
state.codevisible = true;
|
state.codevisible = true;
|
||||||
state.codeInfo = {
|
state.codeInfo = {
|
||||||
title: "【签到】二维码",
|
title: "【签到】二维码",
|
||||||
@@ -948,7 +949,7 @@ export default {
|
|||||||
process.env.VUE_APP_BASE_API +
|
process.env.VUE_APP_BASE_API +
|
||||||
`/admin/student/studentSign?taskId=${props.datasource.id}&taskType=${
|
`/admin/student/studentSign?taskId=${props.datasource.id}&taskType=${
|
||||||
props.datasource.type
|
props.datasource.type
|
||||||
}&type=${1}`,
|
}&type=${props.datasource.routerId?2:1}`,
|
||||||
};
|
};
|
||||||
console.log("codeInfo", state.codeInfo);
|
console.log("codeInfo", state.codeInfo);
|
||||||
state.codeIndex = 0;
|
state.codeIndex = 0;
|
||||||
|
|||||||
@@ -219,7 +219,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="btnbox">
|
<div class="btnbox">
|
||||||
<a-input v-model:value="formData.source"
|
<a-input v-model:value="formData.source"
|
||||||
style="width: 400px; height: 40px; border-radius: 8px" :disabled="taskIndex >= 0 && isEdit"
|
style="width: 400px; height: 40px; border-radius: 8px"
|
||||||
placeholder="请输入数据来源" show-count :maxlength="420" />
|
placeholder="请输入数据来源" show-count :maxlength="420" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -228,7 +228,7 @@
|
|||||||
<span style="margin-right: 3px">考试说明:</span>
|
<span style="margin-right: 3px">考试说明:</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="textarea">
|
<div class="textarea">
|
||||||
<a-textarea v-model:value="formData.externalExplain" placeholder="请输入考试说明" allow-clear show-count :disabled="taskIndex >= 0 && isEdit"
|
<a-textarea v-model:value="formData.examinationExplain" placeholder="请输入考试说明" allow-clear show-count
|
||||||
:maxlength="200" :rows="6" />
|
:maxlength="200" :rows="6" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -266,7 +266,8 @@ const initValue = {
|
|||||||
showAnalysis: 2,
|
showAnalysis: 2,
|
||||||
scoringModel: 2,
|
scoringModel: 2,
|
||||||
questionArrangement: 4,
|
questionArrangement: 4,
|
||||||
externalExplain: ""
|
externalExplain: "",
|
||||||
|
examinationExplain: ""
|
||||||
}
|
}
|
||||||
const formData = ref(initValue)
|
const formData = ref(initValue)
|
||||||
const innerRule = {
|
const innerRule = {
|
||||||
|
|||||||
@@ -31,6 +31,8 @@
|
|||||||
>
|
>
|
||||||
{{items.optionName}}
|
{{items.optionName}}
|
||||||
</a-radio>
|
</a-radio>
|
||||||
|
<br/>
|
||||||
|
<img v-if="items.optionPictureAddress" :src="items.optionPictureAddress" alt="" srcset="" style="width: 100px; height:100px;margin-top: 5px;margin-bottom: 5px;">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</a-radio-group>
|
</a-radio-group>
|
||||||
@@ -151,9 +153,8 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
console.log(choiceArr)
|
||||||
state.currentChoice = choiceArr
|
state.currentChoice = choiceArr
|
||||||
|
|
||||||
|
|
||||||
}).catch(err=>{
|
}).catch(err=>{
|
||||||
console.log(err)
|
console.log(err)
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -117,13 +117,22 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="alreadyclass">
|
<div class="alreadyclass">
|
||||||
<div class="alimg">
|
<div class="alimg">
|
||||||
<img :src="
|
<!-- <img :src="
|
||||||
item.complete === '已完成'
|
item.complete === '已完成'
|
||||||
? require('../../assets/images/studentimg/complete.png')
|
? require('../../assets/images/studentimg/complete.png')
|
||||||
: require('../../assets/images/studentimg/notice.png')
|
: require('../../assets/images/studentimg/notice.png')
|
||||||
"/>
|
"/>
|
||||||
</div>
|
</div>
|
||||||
<div class="altext">{{ item.complete }}</div>
|
<div class="altext">{{ item.complete }}</div> -->
|
||||||
|
<img
|
||||||
|
:src="
|
||||||
|
item.status === 1
|
||||||
|
? require('../../assets/images/studentimg/complete.png')
|
||||||
|
: require('../../assets/images/studentimg/notice.png')
|
||||||
|
"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div class="altext">{{ item.status === 0 ? "进行中" : item.status === 1 ? "已完成" : "未开始" }}</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</a-collapse-panel>
|
</a-collapse-panel>
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
>
|
>
|
||||||
<div class="drawerMain">
|
<div class="drawerMain">
|
||||||
<div class="header">
|
<div class="header">
|
||||||
<div class="headerTitle">学员获取详情</div>
|
<div class="headerTitle">学员获取详情1</div>
|
||||||
<img
|
<img
|
||||||
style="width: 29px; height: 29px; cursor: pointer"
|
style="width: 29px; height: 29px; cursor: pointer"
|
||||||
src="../../assets/images/basicinfo/close.png"
|
src="../../assets/images/basicinfo/close.png"
|
||||||
@@ -26,7 +26,7 @@
|
|||||||
@expand="expandTable"
|
@expand="expandTable"
|
||||||
:pagination="false"
|
:pagination="false"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<div class="pa">
|
<div class="pa">
|
||||||
<a-pagination
|
<a-pagination
|
||||||
v-if="tableDataTotal > 10"
|
v-if="tableDataTotal > 10"
|
||||||
@@ -50,7 +50,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</a-drawer>
|
</a-drawer>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { toRefs, reactive } from "vue";
|
import { toRefs, reactive } from "vue";
|
||||||
import { studentScoreList } from "../../api/indexProjStu";
|
import { studentScoreList } from "../../api/indexProjStu";
|
||||||
@@ -178,7 +178,7 @@ export default {
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" >
|
<style lang="scss" >
|
||||||
.StuScore {
|
.StuScore {
|
||||||
.drawerMain {
|
.drawerMain {
|
||||||
@@ -292,4 +292,4 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -41,17 +41,22 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<div class="box1" v-for="(itteems, indexss) in values.assessmentSingleChoiceVoList" style="margin-left: 55px; margin-top: 20px" :key="indexss">
|
<div class="box1" v-for="(itteems, indexss) in values.assessmentSingleChoiceVoList" style="margin-left: 55px; margin-top: 20px; flex-direction:column; justify-content:flex-start;align-items:flex-start;" :key="indexss">
|
||||||
<div class="asstype">选择{{indexss+1}}:</div>
|
<div style="display:flex;">
|
||||||
<div style="display:flex;justify-content:center;align-items:center;">
|
<div class="asstype">选择{{indexss+1}}:</div>
|
||||||
<div v-if="itteems.select" style="display:flex;justify-content:center;align-items:center;width:16px;height:16px;border-radius:8px;border:1px solid rgba(151, 151, 151, 0.29);margin-right: 8px;">
|
<div style="display:flex;justify-content:center;align-items:center;">
|
||||||
<div style="width:8px;height:8px;border-radius:4px;background-color:#409eff;"></div>
|
<div v-if="itteems.select" style="display:flex;justify-content:center;align-items:center;width:16px;height:16px;border-radius:8px;border:1px solid rgba(151, 151, 151, 0.29);margin-right: 8px;">
|
||||||
|
<div style="width:8px;height:8px;border-radius:4px;background-color:#409eff;"></div>
|
||||||
|
</div>
|
||||||
|
<div v-else style="width:16px;height:16px;border-radius:8px;border:1px solid rgba(151, 151, 151, 0.29);margin-right: 8px;"></div>
|
||||||
|
{{itteems.singleOptionName}}
|
||||||
</div>
|
</div>
|
||||||
<div v-else style="width:16px;height:16px;border-radius:8px;border:1px solid rgba(151, 151, 151, 0.29);margin-right: 8px;"></div>
|
|
||||||
{{itteems.singleOptionName}}
|
|
||||||
</div>
|
</div>
|
||||||
|
<img v-if="itteems?.singleOptionPictureAddress" :src="itteems?.singleOptionPictureAddress" alt="" srcset="" style="width: 140px;height:140px;margin-top:5px;">
|
||||||
|
<div v-else-if="isExistImg(values.assessmentSingleChoiceVoList, 1)" style="width: 140px;height:140px;margin-top:5px;"></div>
|
||||||
<!-- <a-radio :value="indexs" defaultValue>{{iitem.singleOptionName}}</a-radio> -->
|
<!-- <a-radio :value="indexs" defaultValue>{{iitem.singleOptionName}}</a-radio> -->
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div style="margin-bottom:30px;"></div>
|
<div style="margin-bottom:30px;"></div>
|
||||||
</div>
|
</div>
|
||||||
@@ -68,15 +73,19 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<div class="box1" v-for="(itteems, indexss) in values.multipleChoiceVoList" style="margin-left: 55px; margin-top: 20px" :key="indexss">
|
<div class="box1" v-for="(itteems, indexss) in values.multipleChoiceVoList" style="margin-left: 55px; margin-top: 20px; flex-direction:column; justify-content:flex-start;align-items:flex-start;" :key="indexss">
|
||||||
<div class="asstype">选择{{indexss+1}}:</div>
|
<div style="display:flex;">
|
||||||
<div style="display:flex;justify-content:center;align-items:center;">
|
<div class="asstype">选择{{indexss+1}}:</div>
|
||||||
<div v-if="itteems.select" style="display:flex;justify-content:center;align-items:center;width:16px;height:16px;border-radius:8px;border:1px solid rgba(151, 151, 151, 0.29);margin-right: 8px;">
|
<div style="display:flex;justify-content:center;align-items:center;">
|
||||||
<div style="width:8px;height:8px;border-radius:4px;background-color:#409eff;"></div>
|
<div v-if="itteems.select" style="display:flex;justify-content:center;align-items:center;width:16px;height:16px;border-radius:8px;border:1px solid rgba(151, 151, 151, 0.29);margin-right: 8px;">
|
||||||
|
<div style="width:8px;height:8px;border-radius:4px;background-color:#409eff;"></div>
|
||||||
|
</div>
|
||||||
|
<div v-else style="width:16px;height:16px;border-radius:8px;border:1px solid rgba(151, 151, 151, 0.29);margin-right: 8px;"></div>
|
||||||
|
{{itteems.multipleOptionName}}
|
||||||
</div>
|
</div>
|
||||||
<div v-else style="width:16px;height:16px;border-radius:8px;border:1px solid rgba(151, 151, 151, 0.29);margin-right: 8px;"></div>
|
|
||||||
{{itteems.multipleOptionName}}
|
|
||||||
</div>
|
</div>
|
||||||
|
<img v-if="itteems?.multipleOptionPictureAddress" :src="itteems?.multipleOptionPictureAddress" alt="" srcset="" style="width: 140px;height:140px;margin-top:5px;">
|
||||||
|
<div v-else-if="isExistImg(values.multipleChoiceVoList, 2)" style="width: 140px;height:140px;margin-top:5px;"></div>
|
||||||
<!-- <a-radio :value="indexs" defaultValue>{{iitem.singleOptionName}}</a-radio> -->
|
<!-- <a-radio :value="indexs" defaultValue>{{iitem.singleOptionName}}</a-radio> -->
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -217,10 +226,31 @@ export default {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// 判断当前题目中是否有的选项有图片有的没有
|
||||||
|
const isExistImg = (data, index) => {
|
||||||
|
let exist = false;
|
||||||
|
data.forEach((i,n)=>{
|
||||||
|
console.log(i,n)
|
||||||
|
if(index==1){
|
||||||
|
if(i.singleOptionPictureAddress){
|
||||||
|
exist = true;
|
||||||
|
return exist;
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
if(i.multipleOptionPictureAddress){
|
||||||
|
exist = true;
|
||||||
|
return exist;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
return exist;
|
||||||
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
...toRefs(state),
|
...toRefs(state),
|
||||||
afterVisibleChange,
|
afterVisibleChange,
|
||||||
closeDrawer,
|
closeDrawer,
|
||||||
|
isExistImg
|
||||||
// change,
|
// change,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -370,10 +370,10 @@ export default {
|
|||||||
'courseId': props.datasource.courseId,//任务的Id
|
'courseId': props.datasource.courseId,//任务的Id
|
||||||
'courseName': props.title,//任务的名称
|
'courseName': props.title,//任务的名称
|
||||||
'logo': '1',//项目或径的标识 1-项目 2-路径图 3面授课
|
'logo': '1',//项目或径的标识 1-项目 2-路径图 3面授课
|
||||||
'routerTaskId': props.datasource.routerId,//任务的routerTaskld或projectTaskld
|
'routerTaskId': props.datasource.projectId,//任务的routerTaskld或projectTaskld
|
||||||
'targetId': props.datasource.routerId,//路径图的就是routerId,项目的是projectId;根据这张图来看的话
|
'targetId': props.datasource.projectId,//路径图的就是routerId,项目的是projectId;根据这张图来看的话
|
||||||
'taskType': props.datasource.type,//催促的任务的类型
|
'taskType': props.datasource.type,//催促的任务的类型
|
||||||
'chapterId': props.datasource.chapterId,//阶段或关卡Id
|
'chapterId': props.datasource.stageId,//阶段或关卡Id
|
||||||
};
|
};
|
||||||
batchSendMessage(obj).then(res => {
|
batchSendMessage(obj).then(res => {
|
||||||
console.log(res)
|
console.log(res)
|
||||||
|
|||||||
@@ -366,10 +366,10 @@
|
|||||||
'courseId': props.datasource.courseId,//任务的Id
|
'courseId': props.datasource.courseId,//任务的Id
|
||||||
'courseName': props.title,//任务的名称
|
'courseName': props.title,//任务的名称
|
||||||
'logo': '1',//项目或径的标识 1-项目 2-路径图 3面授课
|
'logo': '1',//项目或径的标识 1-项目 2-路径图 3面授课
|
||||||
'routerTaskId': props.datasource.routerId,//任务的routerTaskld或projectTaskld
|
'routerTaskId': props.datasource.projectId,//任务的routerTaskld或projectTaskld
|
||||||
'targetId': props.datasource.routerId,//路径图的就是routerId,项目的是projectId;根据这张图来看的话
|
'targetId': props.datasource.projectId,//路径图的就是routerId,项目的是projectId;根据这张图来看的话
|
||||||
'taskType': props.datasource.type,//催促的任务的类型
|
'taskType': props.datasource.type,//催促的任务的类型
|
||||||
'chapterId': props.datasource.chapterId,//阶段或关卡Id
|
'chapterId': props.datasource.stageId,//阶段或关卡Id
|
||||||
};
|
};
|
||||||
batchSendMessage(obj).then(res => {
|
batchSendMessage(obj).then(res => {
|
||||||
message.success("催促" + props.title + "成功");
|
message.success("催促" + props.title + "成功");
|
||||||
|
|||||||
@@ -500,7 +500,6 @@ export default {
|
|||||||
|
|
||||||
// 导出数据
|
// 导出数据
|
||||||
function exportTaskStu() {
|
function exportTaskStu() {
|
||||||
debugger
|
|
||||||
if(props.datasource.type==1){
|
if(props.datasource.type==1){
|
||||||
{/* 在线课导出 */}
|
{/* 在线课导出 */}
|
||||||
window.open(`${process.env.VUE_APP_BASE_API}/admin/online/manage/exportOnline?chapterId=${props.datasource.chapterId}&type=${2}&targetId=${props.datasource.routerId}&taskId=${props.datasource.courseId}`)
|
window.open(`${process.env.VUE_APP_BASE_API}/admin/online/manage/exportOnline?chapterId=${props.datasource.chapterId}&type=${2}&targetId=${props.datasource.routerId}&taskId=${props.datasource.courseId}`)
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
* @Author: lixg lixg@dongwu-inc.com
|
* @Author: lixg lixg@dongwu-inc.com
|
||||||
* @Date: 2023-02-23 14:57:21
|
* @Date: 2023-02-23 14:57:21
|
||||||
* @LastEditors: lixg lixg@dongwu-inc.com
|
* @LastEditors: lixg lixg@dongwu-inc.com
|
||||||
* @LastEditTime: 2023-02-24 22:54:03
|
* @LastEditTime: 2023-03-07 17:30:12
|
||||||
* @FilePath: /fe-manage/src/components/project/OrgClassCheck.vue
|
* @FilePath: /fe-manage/src/components/project/OrgClassCheck.vue
|
||||||
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
||||||
-->
|
-->
|
||||||
|
|||||||
@@ -692,7 +692,6 @@ const deleteId = ref(null);
|
|||||||
const deleteTargetId = ref(null);
|
const deleteTargetId = ref(null);
|
||||||
const deleteType = ref(null);
|
const deleteType = ref(null);
|
||||||
function del(id, row) {
|
function del(id, row) {
|
||||||
debugger
|
|
||||||
if (row.isLeader === "1") {
|
if (row.isLeader === "1") {
|
||||||
return message.warning("" + row.name + "是小组长,请勿删除!");
|
return message.warning("" + row.name + "是小组长,请勿删除!");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,10 +31,16 @@ export function traverseArr(arr, traverseObj, saveOld = false) {
|
|||||||
const admin = [5, 6, 8, 9, 11, 12];
|
const admin = [5, 6, 8, 9, 11, 12];
|
||||||
|
|
||||||
//检查 管理权和归属权
|
//检查 管理权和归属权
|
||||||
export function checkPer(per) {
|
export function checkPer(per,createId) {
|
||||||
|
if(createId && store?.state?.userInfo?.id === createId){
|
||||||
|
return true;
|
||||||
|
}
|
||||||
if (store?.state?.userInfo?.roleList.some(t => t.code === "system-admin")) {
|
if (store?.state?.userInfo?.roleList.some(t => t.code === "system-admin")) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
if (store?.state?.userInfo?.isHrbp) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
if (!per) {
|
if (!per) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1251,6 +1251,7 @@
|
|||||||
:id="offcoursePlanId"
|
:id="offcoursePlanId"
|
||||||
:columns="stuColumns"
|
:columns="stuColumns"
|
||||||
:visable="sm_hs"
|
:visable="sm_hs"
|
||||||
|
:permissions="permissions"
|
||||||
:isgetStudent="isgetStudent"
|
:isgetStudent="isgetStudent"
|
||||||
>
|
>
|
||||||
<template #extension="{ data: { record } }">
|
<template #extension="{ data: { record } }">
|
||||||
@@ -2154,6 +2155,8 @@ export default defineComponent({
|
|||||||
const sysTypeOptions = computed(() => store.state.content_type);
|
const sysTypeOptions = computed(() => store.state.content_type);
|
||||||
|
|
||||||
const state = reactive({
|
const state = reactive({
|
||||||
|
permissions:null,
|
||||||
|
createId:null,
|
||||||
workInfo: {},
|
workInfo: {},
|
||||||
examInfo: {},
|
examInfo: {},
|
||||||
tableLoading: false,
|
tableLoading: false,
|
||||||
@@ -3839,11 +3842,7 @@ export default defineComponent({
|
|||||||
key: "8",
|
key: "8",
|
||||||
align: "center",
|
align: "center",
|
||||||
customRender: ({ record }) =>
|
customRender: ({ record }) =>
|
||||||
itm.courseScore === -1
|
record.assessmentStatus?"已评估" : "未评估",
|
||||||
? "-"
|
|
||||||
: record.assessmentStatus
|
|
||||||
? "已评估"
|
|
||||||
: "未评估",
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "评分",
|
title: "评分",
|
||||||
@@ -3854,7 +3853,7 @@ export default defineComponent({
|
|||||||
customRender: ({ record }) => {
|
customRender: ({ record }) => {
|
||||||
return (
|
return (
|
||||||
<div class="racona">
|
<div class="racona">
|
||||||
{record.studentScore !== -1 ? record.studentScore : "-"}
|
{record.assessmentScore || "-"}
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
// switch (String(record.status)) {
|
// switch (String(record.status)) {
|
||||||
@@ -4554,8 +4553,8 @@ export default defineComponent({
|
|||||||
}
|
}
|
||||||
state.offcourseId = item.id;
|
state.offcourseId = item.id;
|
||||||
state.newCourseName = item.name;
|
state.newCourseName = item.name;
|
||||||
|
state.permissions = item.permissions;
|
||||||
getTableDate3();
|
getTableDate3();
|
||||||
|
|
||||||
state.stm_hs = true;
|
state.stm_hs = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -4579,12 +4578,15 @@ export default defineComponent({
|
|||||||
console.log(state.kk_inputV1);
|
console.log(state.kk_inputV1);
|
||||||
console.log(state.kk_inputV2);
|
console.log(state.kk_inputV2);
|
||||||
console.log(state.selectTime);
|
console.log(state.selectTime);
|
||||||
|
getTableDate();
|
||||||
getTableDate3();
|
getTableDate3();
|
||||||
};
|
};
|
||||||
const handleRestTable = () => {
|
const handleRestTable = () => {
|
||||||
|
debugger
|
||||||
state.kk_inputV1 = "";
|
state.kk_inputV1 = "";
|
||||||
state.kk_inputV2 = "";
|
state.kk_inputV2 = "";
|
||||||
state.selectTime = "";
|
state.selectTime = "";
|
||||||
|
getTableDate();
|
||||||
getTableDate3();
|
getTableDate3();
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -4660,6 +4662,8 @@ export default defineComponent({
|
|||||||
state.om_1 = true;
|
state.om_1 = true;
|
||||||
state.ft_1 = true;
|
state.ft_1 = true;
|
||||||
state.manageStuLoading = true;
|
state.manageStuLoading = true;
|
||||||
|
state.permissions = item.permissions;
|
||||||
|
state.createId = item.createId;
|
||||||
console.log(787666, item);
|
console.log(787666, item);
|
||||||
state.faceClassification = item.contentTxt;
|
state.faceClassification = item.contentTxt;
|
||||||
state.faceStatus = item.status;
|
state.faceStatus = item.status;
|
||||||
|
|||||||
@@ -86,16 +86,29 @@
|
|||||||
{{ qdms_inputV2.length }}/50
|
{{ qdms_inputV2.length }}/50
|
||||||
</span>
|
</span>
|
||||||
</div> -->
|
</div> -->
|
||||||
<div>
|
<div
|
||||||
<OrgClassCheck
|
v-if="orgSelectNames"
|
||||||
v-model:value="orgSelect"
|
style="
|
||||||
v-model:name="orgSelectName"
|
margin-bottom: 10px;
|
||||||
:disabled="true"
|
height: 27px;
|
||||||
></OrgClassCheck>
|
line-height: 27px;
|
||||||
|
margin-left: 10px;
|
||||||
|
font-weight: 450;
|
||||||
|
"
|
||||||
|
>
|
||||||
|
<span
|
||||||
|
v-for="(i, k) in orgSelectNames"
|
||||||
|
:key="k"
|
||||||
|
style="margin-right: 20px"
|
||||||
|
>{{ i }}</span
|
||||||
|
>
|
||||||
</div>
|
</div>
|
||||||
<div style="margin-top: 10px">
|
<div
|
||||||
|
style="margin-bottom: 10px"
|
||||||
|
v-if="selectJobId.length !== 0"
|
||||||
|
>
|
||||||
<a-select
|
<a-select
|
||||||
v-model:value="selectJobId"
|
v-model:value="selectJobId" v-if="selectJobId.length > 0"
|
||||||
mode="multiple"
|
mode="multiple"
|
||||||
style="width: 440px; min-height: 40px"
|
style="width: 440px; min-height: 40px"
|
||||||
placeholder="请选择岗位"
|
placeholder="请选择岗位"
|
||||||
@@ -109,9 +122,9 @@
|
|||||||
disabled
|
disabled
|
||||||
></a-select>
|
></a-select>
|
||||||
</div>
|
</div>
|
||||||
<div style="margin-top: 10px">
|
<div v-if="selectBandId.length !== 0">
|
||||||
<a-select
|
<a-select
|
||||||
v-model:value="selectBandId"
|
v-model:value="selectBandId" v-if="selectBandId.length > 0"
|
||||||
mode="multiple"
|
mode="multiple"
|
||||||
style="width: 440px; min-height: 40px"
|
style="width: 440px; min-height: 40px"
|
||||||
placeholder="请选择Band"
|
placeholder="请选择Band"
|
||||||
@@ -344,7 +357,7 @@
|
|||||||
<script>
|
<script>
|
||||||
import { reactive, toRefs, defineComponent, watch, computed } from "vue";
|
import { reactive, toRefs, defineComponent, watch, computed } from "vue";
|
||||||
import { useStore } from "vuex";
|
import { useStore } from "vuex";
|
||||||
import OrgClassCheck from "@/components/project/OrgClassCheck";
|
// import OrgClassCheck from "@/components/project/OrgClassCheck";
|
||||||
import OrgClass from "@/components/project/OrgClass";
|
import OrgClass from "@/components/project/OrgClass";
|
||||||
import { detail } from "@/api/indexCourse";
|
import { detail } from "@/api/indexCourse";
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
@@ -359,7 +372,7 @@ export default defineComponent({
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
OrgClassCheck,
|
// OrgClassCheck,
|
||||||
OrgClass,
|
OrgClass,
|
||||||
},
|
},
|
||||||
setup(props, { emit }) {
|
setup(props, { emit }) {
|
||||||
@@ -387,6 +400,7 @@ export default defineComponent({
|
|||||||
sourceBelongId: [],
|
sourceBelongId: [],
|
||||||
sourceBelongName: [],
|
sourceBelongName: [],
|
||||||
sourceBelongFullName: [],
|
sourceBelongFullName: [],
|
||||||
|
orgSelectNames: "",
|
||||||
});
|
});
|
||||||
|
|
||||||
const sysTypeOptions = computed(() => store.state.content_type);
|
const sysTypeOptions = computed(() => store.state.content_type);
|
||||||
@@ -411,6 +425,7 @@ export default defineComponent({
|
|||||||
let item = res.data.data;
|
let item = res.data.data;
|
||||||
if (item.jobTypeIds) {
|
if (item.jobTypeIds) {
|
||||||
state.selectJobId = item.jobTypeIds.split(",");
|
state.selectJobId = item.jobTypeIds.split(",");
|
||||||
|
console.log("selectJobId" + JSON.stringify(state.selectJobId));
|
||||||
}
|
}
|
||||||
if (item.bandIds) {
|
if (item.bandIds) {
|
||||||
state.selectBandId = item.bandIds.split(",");
|
state.selectBandId = item.bandIds.split(",");
|
||||||
@@ -434,6 +449,7 @@ export default defineComponent({
|
|||||||
});
|
});
|
||||||
console.log("arrObj-------------", arrObj);
|
console.log("arrObj-------------", arrObj);
|
||||||
state.orgSelect = arrObj;
|
state.orgSelect = arrObj;
|
||||||
|
state.orgSelectNames = orgSelectNames;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -474,6 +490,19 @@ export default defineComponent({
|
|||||||
const handleCancel = () => {
|
const handleCancel = () => {
|
||||||
console.log("关闭");
|
console.log("关闭");
|
||||||
emit("cancel");
|
emit("cancel");
|
||||||
|
//目标任务
|
||||||
|
state.orgSelect = [];
|
||||||
|
state.orgSelectName = [];
|
||||||
|
state.orgSelectFullName = [];
|
||||||
|
state.selectJobName = [];
|
||||||
|
state.selectJobId = [];
|
||||||
|
state.selectBandName = [];
|
||||||
|
state.selectBandId = [];
|
||||||
|
//资源归属
|
||||||
|
state.sourceBelongId = [];
|
||||||
|
state.sourceBelongName = [];
|
||||||
|
state.sourceBelongFullName = [];
|
||||||
|
state.orgSelectNames = "";
|
||||||
};
|
};
|
||||||
|
|
||||||
function openDown(link) {
|
function openDown(link) {
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
src="@/assets/images/basicinfo/add.png"
|
src="@/assets/images/basicinfo/add.png"
|
||||||
/>
|
/>
|
||||||
<span v-if="ft_eidt" class="headerLeftText">编辑面授课</span>
|
<span v-if="ft_eidt" class="headerLeftText">编辑面授课</span>
|
||||||
<span v-else class="headerLeftText">新建面授课</span>
|
<span v-else class="headerLeftText"></span>
|
||||||
</div>
|
</div>
|
||||||
<div style="margin-right: 57px; cursor: pointer">
|
<div style="margin-right: 57px; cursor: pointer">
|
||||||
<img
|
<img
|
||||||
@@ -827,11 +827,11 @@ export default defineComponent({
|
|||||||
//保存面授课
|
//保存面授课
|
||||||
const handlePush = async (param) => {
|
const handlePush = async (param) => {
|
||||||
console.log(
|
console.log(
|
||||||
"组织、岗位、Band、资源归属选择",
|
"组织、岗位、Band、资源归属选择" + JSON.stringify(state)
|
||||||
state.orgSelect,
|
// state.orgSelect,
|
||||||
state.selectJobId,
|
// state.selectJobId,
|
||||||
state.selectBandId,
|
// state.selectBandId,
|
||||||
state.sourceBelongId
|
// state.sourceBelongId
|
||||||
);
|
);
|
||||||
let files = "";
|
let files = "";
|
||||||
if (state.imgList.length) {
|
if (state.imgList.length) {
|
||||||
@@ -841,8 +841,8 @@ export default defineComponent({
|
|||||||
}
|
}
|
||||||
files = files.slice(0, files.length - 1);
|
files = files.slice(0, files.length - 1);
|
||||||
|
|
||||||
let orgSelectIds = [];
|
let orgSelectIds = "";
|
||||||
let orgSelectNames = [];
|
let orgSelectNames = "";
|
||||||
if (state.orgSelect && state.orgSelect.length) {
|
if (state.orgSelect && state.orgSelect.length) {
|
||||||
state.orgSelect.forEach((item) => {
|
state.orgSelect.forEach((item) => {
|
||||||
orgSelectIds += item.value + ",";
|
orgSelectIds += item.value + ",";
|
||||||
|
|||||||
@@ -113,12 +113,12 @@
|
|||||||
type="link"
|
type="link"
|
||||||
>编辑</a-button
|
>编辑</a-button
|
||||||
>
|
>
|
||||||
<a-button
|
<!-- <a-button
|
||||||
v-if="record.state === '已发布' && checkPer(record.permissions)"
|
v-if="record.state === '已发布' && checkPer(record.permissions)"
|
||||||
@click="getLearnPathInfo(record.id)"
|
@click="getLearnPathInfo(record.id)"
|
||||||
type="link"
|
type="link"
|
||||||
>编辑</a-button
|
>编辑</a-button
|
||||||
>
|
> -->
|
||||||
<a-button @click="manage(record.id)" type="link">管理</a-button>
|
<a-button @click="manage(record.id)" type="link">管理</a-button>
|
||||||
<DropDown v-if="checkPer(record.permissions)" value="授权">
|
<DropDown v-if="checkPer(record.permissions)" value="授权">
|
||||||
<OwnerTableModelStudent
|
<OwnerTableModelStudent
|
||||||
|
|||||||
@@ -19,7 +19,7 @@
|
|||||||
<div v-if="action == 1" class="line"></div>
|
<div v-if="action == 1" class="line"></div>
|
||||||
<div
|
<div
|
||||||
class="pubIcon"
|
class="pubIcon"
|
||||||
v-if="(action == 1 || action == 0) && checkPer(permissions)"
|
v-if="(action == 1 || action == 0) && checkPer(permissions,createId)"
|
||||||
@click="pubIcon(action)"
|
@click="pubIcon(action)"
|
||||||
>
|
>
|
||||||
<img class="img2" src="../../assets/images/leveladd/pub.png" />
|
<img class="img2" src="../../assets/images/leveladd/pub.png" />
|
||||||
@@ -53,7 +53,7 @@
|
|||||||
<div class="onerow">
|
<div class="onerow">
|
||||||
<div class="taskmain">快速创建路径图详情</div>
|
<div class="taskmain">快速创建路径图详情</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="second" v-if="checkPer(permissions)">
|
<div class="second" v-if="checkPer(permissions,createId)">
|
||||||
<div @click="totask">
|
<div @click="totask">
|
||||||
<div
|
<div
|
||||||
class="taskbox"
|
class="taskbox"
|
||||||
@@ -331,7 +331,7 @@
|
|||||||
<router-link
|
<router-link
|
||||||
:to="{ path: '/leveladddetail', query: { routerId: routerId } }"
|
:to="{ path: '/leveladddetail', query: { routerId: routerId } }"
|
||||||
class="editright"
|
class="editright"
|
||||||
v-if="checkPer(permissions)"
|
v-if="checkPer(permissions,createId)"
|
||||||
>
|
>
|
||||||
<img
|
<img
|
||||||
class="editimg"
|
class="editimg"
|
||||||
@@ -578,7 +578,7 @@
|
|||||||
<a-button
|
<a-button
|
||||||
type="link"
|
type="link"
|
||||||
@click="setLevels(record)"
|
@click="setLevels(record)"
|
||||||
v-if="checkPer(permissions)"
|
v-if="checkPer(permissions,createId)"
|
||||||
>调整</a-button
|
>调整</a-button
|
||||||
>
|
>
|
||||||
</template>
|
</template>
|
||||||
@@ -601,7 +601,7 @@
|
|||||||
class="oneedi"
|
class="oneedi"
|
||||||
@click="showbtn"
|
@click="showbtn"
|
||||||
v-show="twobtn"
|
v-show="twobtn"
|
||||||
v-if="checkPer(permissions)"
|
v-if="checkPer(permissions,createId)"
|
||||||
>
|
>
|
||||||
编辑
|
编辑
|
||||||
</div>
|
</div>
|
||||||
@@ -692,7 +692,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</a-tab-pane>
|
</a-tab-pane>
|
||||||
|
|
||||||
<a-tab-pane key="2" tab="共享文档" v-if="checkPer(permissions)">
|
<a-tab-pane key="2" tab="共享文档" v-if="checkPer(permissions,createId)">
|
||||||
<div class="sametab">
|
<div class="sametab">
|
||||||
<div class="Gcon">
|
<div class="Gcon">
|
||||||
<div class="pad"></div>
|
<div class="pad"></div>
|
||||||
@@ -1424,6 +1424,7 @@ export default {
|
|||||||
const stuRef = ref();
|
const stuRef = ref();
|
||||||
// const store = useStore();
|
// const store = useStore();
|
||||||
const state = reactive({
|
const state = reactive({
|
||||||
|
createId:null,
|
||||||
permissions: "",
|
permissions: "",
|
||||||
hasTask: false,
|
hasTask: false,
|
||||||
stage: [],
|
stage: [],
|
||||||
@@ -2289,6 +2290,7 @@ export default {
|
|||||||
.then((res) => {
|
.then((res) => {
|
||||||
console.log("router-list", res);
|
console.log("router-list", res);
|
||||||
state.fileList = JSON.parse(res.data.data.routerInfo.attach);
|
state.fileList = JSON.parse(res.data.data.routerInfo.attach);
|
||||||
|
state.createId = res.data.data.routerInfo.createId;
|
||||||
state.permissions = res.data.data.routerInfo.permissions;
|
state.permissions = res.data.data.routerInfo.permissions;
|
||||||
console.log("asdasdasd-------->", state.fileList);
|
console.log("asdasdasd-------->", state.fileList);
|
||||||
state.docChecked =
|
state.docChecked =
|
||||||
|
|||||||
@@ -199,7 +199,7 @@
|
|||||||
>结束</a-button
|
>结束</a-button
|
||||||
>
|
>
|
||||||
<a-button
|
<a-button
|
||||||
v-if="record.status !== -1 && record.type === 3"
|
v-if="record.status == -1"
|
||||||
@click="showBackFinashModal(record.id)"
|
@click="showBackFinashModal(record.id)"
|
||||||
type="link"
|
type="link"
|
||||||
>撤回</a-button
|
>撤回</a-button
|
||||||
|
|||||||
@@ -826,7 +826,7 @@
|
|||||||
>
|
>
|
||||||
<div style="width: 90%">
|
<div style="width: 90%">
|
||||||
<div class="grouptitle">
|
<div class="grouptitle">
|
||||||
<div class="goodgruop">{{ item.groupName }}</div>
|
<div class="goodgruop" :title="item.groupName" >{{ item.groupName }}</div>
|
||||||
<div class="more">
|
<div class="more">
|
||||||
<span
|
<span
|
||||||
style="color: rgba(0, 0, 0, 0.45); cursor: pointer"
|
style="color: rgba(0, 0, 0, 0.45); cursor: pointer"
|
||||||
@@ -846,7 +846,7 @@
|
|||||||
<div class="grocenter">
|
<div class="grocenter">
|
||||||
<div class="leader1">进度</div>
|
<div class="leader1">进度</div>
|
||||||
<a-progress
|
<a-progress
|
||||||
:percent="(item.completeRatio || 0) * 100"
|
:percent="Math.round((item.completeRatio || 0) * 100)"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
@@ -3091,10 +3091,13 @@ export default {
|
|||||||
state.isEdit = isEdit;
|
state.isEdit = isEdit;
|
||||||
state.stugroup = true;
|
state.stugroup = true;
|
||||||
state.groupInfo = item || {};
|
state.groupInfo = item || {};
|
||||||
state.groupMemberCountContrast = item.groupMemberCount;
|
if (isEdit) {
|
||||||
|
state.groupMemberCountContrast = item.groupMemberCount;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
const closeModal2 = () => {
|
const closeModal2 = () => {
|
||||||
state.stugroup = false;
|
state.stugroup = false;
|
||||||
|
state.buttonLoading = false
|
||||||
state.groupInfo = {};
|
state.groupInfo = {};
|
||||||
state.groupMemberCountContrast = null;
|
state.groupMemberCountContrast = null;
|
||||||
getGroup();
|
getGroup();
|
||||||
@@ -3931,7 +3934,6 @@ export default {
|
|||||||
};
|
};
|
||||||
//创建小组
|
//创建小组
|
||||||
const createGroup = async () => {
|
const createGroup = async () => {
|
||||||
debugger;
|
|
||||||
console.log("state.groupPageList" + state.groupPageList);
|
console.log("state.groupPageList" + state.groupPageList);
|
||||||
const id = state.groupInfo.id;
|
const id = state.groupInfo.id;
|
||||||
const d = state.groupPageList
|
const d = state.groupPageList
|
||||||
@@ -6792,6 +6794,12 @@ export default {
|
|||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
line-height: 36px;
|
line-height: 36px;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
|
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
white-space: nowrap;
|
||||||
|
cursor: pointer;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.more {
|
.more {
|
||||||
|
|||||||
@@ -105,7 +105,7 @@ export default {
|
|||||||
evalStuListDataTotal: 0,
|
evalStuListDataTotal: 0,
|
||||||
evalCurrentPage: 1
|
evalCurrentPage: 1
|
||||||
});
|
});
|
||||||
|
|
||||||
const getInfoDate = async () => {
|
const getInfoDate = async () => {
|
||||||
state.tableDataTotalLoading = true;
|
state.tableDataTotalLoading = true;
|
||||||
await queryAssessmentDetailList({
|
await queryAssessmentDetailList({
|
||||||
@@ -144,7 +144,7 @@ export default {
|
|||||||
|
|
||||||
// 导出学员信息
|
// 导出学员信息
|
||||||
function exportStudentInfo() {
|
function exportStudentInfo() {
|
||||||
window.open(`${process.env.VUE_APP_BASE_API}/admin/assessment/manage/exportAssessmentMessage?assessmentId=${router.currentRoute.value.params.id}`)
|
window.open(`${process.env.VUE_APP_BASE_API}/admin/assessment/manage/exportAssessmentMessage?courseId=${router.currentRoute.value.params.id}`)
|
||||||
}
|
}
|
||||||
|
|
||||||
//分页
|
//分页
|
||||||
@@ -324,7 +324,7 @@ export default {
|
|||||||
showassess,
|
showassess,
|
||||||
changePaginationStu,
|
changePaginationStu,
|
||||||
exportStudentInfo,
|
exportStudentInfo,
|
||||||
createName,
|
createName,
|
||||||
createTime
|
createTime
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
@@ -507,4 +507,4 @@ export default {
|
|||||||
.btn2:active {
|
.btn2:active {
|
||||||
background: #0982ff;
|
background: #0982ff;
|
||||||
}
|
}
|
||||||
}</style>
|
}</style>
|
||||||
|
|||||||
@@ -74,11 +74,11 @@
|
|||||||
<div class="inname">配置权重</div>
|
<div class="inname">配置权重</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="in" style="display: flex">
|
<div class="in" style="display: flex">
|
||||||
<div class="assess">
|
<!-- <div class="assess">
|
||||||
<div class="assesstype">评估类型</div>
|
<div class="assesstype">评估类型</div>
|
||||||
<div class="assesswhole">整体评估</div>
|
<div class="assesswhole">整体评估</div>
|
||||||
</div>
|
</div> -->
|
||||||
<div class="assess" style="margin-left: 50px; position: relative">
|
<div class="assess" style="position: relative">
|
||||||
<div class="assesstype">权重比例</div>
|
<div class="assesstype">权重比例</div>
|
||||||
<div class="assesswhole" style="background: #ffffff">
|
<div class="assesswhole" style="background: #ffffff">
|
||||||
<a-input-number
|
<a-input-number
|
||||||
|
|||||||
Reference in New Issue
Block a user