Merge branch 'develop' of ssh://gitlab.dongwu-inc.com:10022/BOE/fe-manage into develop

This commit is contained in:
wuxt
2023-03-08 00:46:50 +08:00
27 changed files with 516 additions and 255 deletions

1
.env
View File

@@ -18,6 +18,7 @@ VUE_APP_OUTPUT_DIR=./dist
VUE_APP_IFRAME_URL=//u-pre.boe.com/pc/iframe
# 学员端路由
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=

View File

@@ -10,6 +10,7 @@ VUE_APP_BOE_API_URL=//u.boe.com
VUE_APP_IFRAME_URL=//u.boe.com/pc/iframe
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=

View File

@@ -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_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=

View File

@@ -280,6 +280,7 @@ const organizationalTree = []
const iframeUrl = window.location.protocol + process.env.VUE_APP_IFRAME_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"
@@ -297,5 +298,6 @@ export {
organizationalTree,
iframeUrl,
studentUrl,
teacherUrl,
codeUrl,
}

View File

@@ -27,8 +27,15 @@
@openChange="onOpenChange"
@select="selectItem"
>
<a-sub-menu v-if="checkMenu('coursereviewedn,coursereviewed,projectreviewedn,projectreviewed')" key="sub10"
@titleClick="titleClick">
<a-sub-menu
v-if="
checkMenu(
'coursereviewedn,coursereviewed,projectreviewedn,projectreviewed'
)
"
key="sub10"
@titleClick="titleClick"
>
<template #icon>
<div class="imgBox">
<img
@@ -94,7 +101,11 @@
</a-menu-item>
</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">
<img
style="width: 20px; height: 18px"
@@ -104,7 +115,11 @@
<router-link to="/learningpath">学习路径图</router-link>
</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>
<div class="imgBox">
<img
@@ -134,7 +149,10 @@
</a-menu-item>
</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>
<div class="imgBox">
<img
@@ -182,7 +200,11 @@
</div>
<span>考试中心</span>
</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">
<img
style="width: 16px; height: 16px"
@@ -192,7 +214,10 @@
<router-link to="/researchmanage">评估管理</router-link>
</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>
<div class="imgBox">
<img
@@ -218,7 +243,9 @@
circle: selectedKeys[0] !== 'sub6-2',
}"
></span>
<router-link to="/ReadingClubManage">业务支援读书会管理</router-link>
<router-link to="/ReadingClubManage"
>业务支援读书会管理</router-link
>
</a-menu-item>
<a-menu-item key="sub6-4" v-if="checkMenu('dictmanage')">
<span
@@ -229,9 +256,9 @@
></span>
<router-link to="/dictmanage">字典管理</router-link>
</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>
<div class="imgBox">
<img
@@ -250,8 +277,16 @@
></span>
<router-link to="/AudienceManage">受众管理</router-link>
</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')">
<div class="imgBox">
<img style="width: 16px; height: 16px" src="../assets/images/navleft/system.png"/>
@@ -299,8 +334,11 @@
<!-- <router-link to="/systemmanage">系统管理</router-link> -->
<!-- </a-menu-item> -->
<a-sub-menu key="sub11" @titleClick="titleClick"
v-if="checkMenu('questionmanage,papermanage,examinationcenter')">
<a-sub-menu
key="sub11"
@titleClick="titleClick"
v-if="checkMenu('questionmanage,papermanage,examinationcenter')"
>
<template #icon>
<div class="imgBox">
<img
@@ -309,7 +347,7 @@
/>
</div>
</template>
<template #title>考试</template>
<template #title>考试中心</template>
<a-menu-item key="sub11-1" v-if="checkMenu('questionmanage')">
<span
:class="{
@@ -338,7 +376,11 @@
<router-link to="/examinationcenter">考试管理</router-link>
</a-menu-item>
</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">
<img
style="width: 20px; height: 20px"
@@ -347,7 +389,11 @@
</div>
<router-link to="/casemanage">案例管理</router-link>
</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">
<img
style="width: 20px; height: 20px"
@@ -356,7 +402,11 @@
</div>
<router-link to="/articlemanage">文章管理</router-link>
</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">
<img
style="width: 20px; height: 20px"
@@ -365,7 +415,11 @@
</div>
<router-link to="/qamanage">问答管理</router-link>
</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">
<img
style="width: 20px; height: 20px"
@@ -374,6 +428,34 @@
</div>
<router-link to="/download">下载中心</router-link>
</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>
</div>
<div
@@ -389,18 +471,34 @@
mode="inline"
@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>
</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>
</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>
</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>
</a-menu-item>
<!-- 2022-12-10注释 后面放开 -->
@@ -408,9 +506,16 @@
<span>考试</span>
</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>
</a-menu-item>
<a-menu-item key="sub7" v-if="checkMenu('AudienceManage')">
<router-link to="/audiencemanage">受众</router-link>
</a-menu-item>
<!-- 2022-12-10注释 后面放开 -->
<!-- <a-menu-item key="sub6" @titleClick="titleClick">
<span>报表</span>
@@ -427,21 +532,51 @@
<span>系统</span>
</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>
</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>
</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>
</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>
</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>
</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>
</div>
</div>
@@ -476,6 +611,9 @@ export default {
"sub13",
"sub14",
"sub15",
"sub16",
"sub17",
"sub18",
],
openKeys: localStorage.getItem("openKeys")
? JSON.parse(localStorage.getItem("openKeys"))
@@ -643,6 +781,30 @@ export default {
selectedKeys: "sub15",
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: "字典管理",
},
],
});

View File

@@ -46,7 +46,7 @@
</template>
<script setup>
import {computed, reactive} from "vue";
import {studentUrl} from "@/api/method";
import {studentUrl,teacherUrl} from "@/api/method";
import router from "@/router";
import {useStore, createStore} from "vuex";
@@ -67,6 +67,11 @@ const state = reactive({
name: "学员",
go: studentUrl,
},
{
id:3,
name: "教师",
go: teacherUrl,
}
],
visible: false,
});
@@ -124,7 +129,7 @@ const logOut = () => {
.roleItems {
width: 109px;
height: 90px;
height: 120px;
padding-top: 10px;
background: #ffffff;
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.21);

View File

@@ -940,6 +940,7 @@ export default {
};
const signQR = () => {
console.log("props.datasource", props.datasource);
console.log("是项目还是路径图啊")
state.codevisible = true;
state.codeInfo = {
title: "【签到】二维码",
@@ -948,7 +949,7 @@ export default {
process.env.VUE_APP_BASE_API +
`/admin/student/studentSign?taskId=${props.datasource.id}&taskType=${
props.datasource.type
}&type=${1}`,
}&type=${props.datasource.routerId?2:1}`,
};
console.log("codeInfo", state.codeInfo);
state.codeIndex = 0;

View File

@@ -219,7 +219,7 @@
</div>
<div class="btnbox">
<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" />
</div>
</div>
@@ -228,7 +228,7 @@
<span style="margin-right: 3px">考试说明</span>
</div>
<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" />
</div>
</div>
@@ -266,7 +266,8 @@ const initValue = {
showAnalysis: 2,
scoringModel: 2,
questionArrangement: 4,
externalExplain: ""
externalExplain: "",
examinationExplain: ""
}
const formData = ref(initValue)
const innerRule = {

View File

@@ -31,6 +31,8 @@
>
{{items.optionName}}
</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>
</a-radio-group>
@@ -151,9 +153,8 @@ export default {
}
}
}
console.log(choiceArr)
state.currentChoice = choiceArr
}).catch(err=>{
console.log(err)
})

View File

@@ -117,13 +117,22 @@
</div>
<div class="alreadyclass">
<div class="alimg">
<img :src="
<!-- <img :src="
item.complete === '已完成'
? require('../../assets/images/studentimg/complete.png')
: require('../../assets/images/studentimg/notice.png')
"/>
</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>
</a-collapse-panel>

View File

@@ -8,7 +8,7 @@
>
<div class="drawerMain">
<div class="header">
<div class="headerTitle">学员获取详情</div>
<div class="headerTitle">学员获取详情1</div>
<img
style="width: 29px; height: 29px; cursor: pointer"
src="../../assets/images/basicinfo/close.png"

View File

@@ -41,7 +41,8 @@
</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 style="display:flex;">
<div class="asstype">选择{{indexss+1}}</div>
<div style="display:flex;justify-content:center;align-items:center;">
<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;">
@@ -50,8 +51,12 @@
<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> -->
</div>
</div>
<div style="margin-bottom:30px;"></div>
</div>
@@ -68,7 +73,8 @@
</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 style="display:flex;">
<div class="asstype">选择{{indexss+1}}</div>
<div style="display:flex;justify-content:center;align-items:center;">
<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;">
@@ -77,6 +83,9 @@
<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> -->
</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 {
...toRefs(state),
afterVisibleChange,
closeDrawer,
isExistImg
// change,
};
},

View File

@@ -370,10 +370,10 @@ export default {
'courseId': props.datasource.courseId,//任务的Id
'courseName': props.title,//任务的名称
'logo': '1',//项目或径的标识 1-项目 2-路径图 3面授课
'routerTaskId': props.datasource.routerId,//任务的routerTaskld或projectTaskld
'targetId': props.datasource.routerId,//路径图的就是routerId,项目的是projectId;根据这张图来看的话
'routerTaskId': props.datasource.projectId,//任务的routerTaskld或projectTaskld
'targetId': props.datasource.projectId,//路径图的就是routerId,项目的是projectId;根据这张图来看的话
'taskType': props.datasource.type,//催促的任务的类型
'chapterId': props.datasource.chapterId,//阶段或关卡Id
'chapterId': props.datasource.stageId,//阶段或关卡Id
};
batchSendMessage(obj).then(res => {
console.log(res)

View File

@@ -366,10 +366,10 @@
'courseId': props.datasource.courseId,//任务的Id
'courseName': props.title,//任务的名称
'logo': '1',//项目或径的标识 1-项目 2-路径图 3面授课
'routerTaskId': props.datasource.routerId,//任务的routerTaskld或projectTaskld
'targetId': props.datasource.routerId,//路径图的就是routerId,项目的是projectId;根据这张图来看的话
'routerTaskId': props.datasource.projectId,//任务的routerTaskld或projectTaskld
'targetId': props.datasource.projectId,//路径图的就是routerId,项目的是projectId;根据这张图来看的话
'taskType': props.datasource.type,//催促的任务的类型
'chapterId': props.datasource.chapterId,//阶段或关卡Id
'chapterId': props.datasource.stageId,//阶段或关卡Id
};
batchSendMessage(obj).then(res => {
message.success("催促" + props.title + "成功");

View File

@@ -500,7 +500,6 @@ export default {
// 导出数据
function exportTaskStu() {
debugger
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}`)

View File

@@ -2,7 +2,7 @@
* @Author: lixg lixg@dongwu-inc.com
* @Date: 2023-02-23 14:57:21
* @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
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->

View File

@@ -692,7 +692,6 @@ const deleteId = ref(null);
const deleteTargetId = ref(null);
const deleteType = ref(null);
function del(id, row) {
debugger
if (row.isLeader === "1") {
return message.warning("" + row.name + "是小组长,请勿删除!");
}

View File

@@ -31,10 +31,16 @@ export function traverseArr(arr, traverseObj, saveOld = false) {
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")) {
return true;
}
if (store?.state?.userInfo?.isHrbp) {
return true;
}
if (!per) {
return false;
}

View File

@@ -1251,6 +1251,7 @@
:id="offcoursePlanId"
:columns="stuColumns"
:visable="sm_hs"
:permissions="permissions"
:isgetStudent="isgetStudent"
>
<template #extension="{ data: { record } }">
@@ -2154,6 +2155,8 @@ export default defineComponent({
const sysTypeOptions = computed(() => store.state.content_type);
const state = reactive({
permissions:null,
createId:null,
workInfo: {},
examInfo: {},
tableLoading: false,
@@ -3839,11 +3842,7 @@ export default defineComponent({
key: "8",
align: "center",
customRender: ({ record }) =>
itm.courseScore === -1
? "-"
: record.assessmentStatus
? "已评估"
: "未评估",
record.assessmentStatus?"已评估" : "未评估",
},
{
title: "评分",
@@ -3854,7 +3853,7 @@ export default defineComponent({
customRender: ({ record }) => {
return (
<div class="racona">
{record.studentScore !== -1 ? record.studentScore : "-"}
{record.assessmentScore || "-"}
</div>
);
// switch (String(record.status)) {
@@ -4554,8 +4553,8 @@ export default defineComponent({
}
state.offcourseId = item.id;
state.newCourseName = item.name;
state.permissions = item.permissions;
getTableDate3();
state.stm_hs = true;
};
@@ -4579,12 +4578,15 @@ export default defineComponent({
console.log(state.kk_inputV1);
console.log(state.kk_inputV2);
console.log(state.selectTime);
getTableDate();
getTableDate3();
};
const handleRestTable = () => {
debugger
state.kk_inputV1 = "";
state.kk_inputV2 = "";
state.selectTime = "";
getTableDate();
getTableDate3();
};
@@ -4660,6 +4662,8 @@ export default defineComponent({
state.om_1 = true;
state.ft_1 = true;
state.manageStuLoading = true;
state.permissions = item.permissions;
state.createId = item.createId;
console.log(787666, item);
state.faceClassification = item.contentTxt;
state.faceStatus = item.status;

View File

@@ -86,16 +86,29 @@
{{ qdms_inputV2.length }}/50
</span>
</div> -->
<div>
<OrgClassCheck
v-model:value="orgSelect"
v-model:name="orgSelectName"
:disabled="true"
></OrgClassCheck>
<div
v-if="orgSelectNames"
style="
margin-bottom: 10px;
height: 27px;
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 style="margin-top: 10px">
<div
style="margin-bottom: 10px"
v-if="selectJobId.length !== 0"
>
<a-select
v-model:value="selectJobId"
v-model:value="selectJobId" v-if="selectJobId.length > 0"
mode="multiple"
style="width: 440px; min-height: 40px"
placeholder="请选择岗位"
@@ -109,9 +122,9 @@
disabled
></a-select>
</div>
<div style="margin-top: 10px">
<div v-if="selectBandId.length !== 0">
<a-select
v-model:value="selectBandId"
v-model:value="selectBandId" v-if="selectBandId.length > 0"
mode="multiple"
style="width: 440px; min-height: 40px"
placeholder="请选择Band"
@@ -344,7 +357,7 @@
<script>
import { reactive, toRefs, defineComponent, watch, computed } from "vue";
import { useStore } from "vuex";
import OrgClassCheck from "@/components/project/OrgClassCheck";
// import OrgClassCheck from "@/components/project/OrgClassCheck";
import OrgClass from "@/components/project/OrgClass";
import { detail } from "@/api/indexCourse";
export default defineComponent({
@@ -359,7 +372,7 @@ export default defineComponent({
},
},
components: {
OrgClassCheck,
// OrgClassCheck,
OrgClass,
},
setup(props, { emit }) {
@@ -387,6 +400,7 @@ export default defineComponent({
sourceBelongId: [],
sourceBelongName: [],
sourceBelongFullName: [],
orgSelectNames: "",
});
const sysTypeOptions = computed(() => store.state.content_type);
@@ -411,6 +425,7 @@ export default defineComponent({
let item = res.data.data;
if (item.jobTypeIds) {
state.selectJobId = item.jobTypeIds.split(",");
console.log("selectJobId" + JSON.stringify(state.selectJobId));
}
if (item.bandIds) {
state.selectBandId = item.bandIds.split(",");
@@ -434,6 +449,7 @@ export default defineComponent({
});
console.log("arrObj-------------", arrObj);
state.orgSelect = arrObj;
state.orgSelectNames = orgSelectNames;
}
}
});
@@ -474,6 +490,19 @@ export default defineComponent({
const handleCancel = () => {
console.log("关闭");
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) {

View File

@@ -17,7 +17,7 @@
src="@/assets/images/basicinfo/add.png"
/>
<span v-if="ft_eidt" class="headerLeftText">编辑面授课</span>
<span v-else class="headerLeftText">新建面授课</span>
<span v-else class="headerLeftText"></span>
</div>
<div style="margin-right: 57px; cursor: pointer">
<img
@@ -827,11 +827,11 @@ export default defineComponent({
//保存面授课
const handlePush = async (param) => {
console.log(
"组织、岗位、Band、资源归属选择",
state.orgSelect,
state.selectJobId,
state.selectBandId,
state.sourceBelongId
"组织、岗位、Band、资源归属选择" + JSON.stringify(state)
// state.orgSelect,
// state.selectJobId,
// state.selectBandId,
// state.sourceBelongId
);
let files = "";
if (state.imgList.length) {
@@ -841,8 +841,8 @@ export default defineComponent({
}
files = files.slice(0, files.length - 1);
let orgSelectIds = [];
let orgSelectNames = [];
let orgSelectIds = "";
let orgSelectNames = "";
if (state.orgSelect && state.orgSelect.length) {
state.orgSelect.forEach((item) => {
orgSelectIds += item.value + ",";

View File

@@ -113,12 +113,12 @@
type="link"
>编辑</a-button
>
<a-button
<!-- <a-button
v-if="record.state === '已发布' && checkPer(record.permissions)"
@click="getLearnPathInfo(record.id)"
type="link"
>编辑</a-button
>
> -->
<a-button @click="manage(record.id)" type="link">管理</a-button>
<DropDown v-if="checkPer(record.permissions)" value="授权">
<OwnerTableModelStudent

View File

@@ -19,7 +19,7 @@
<div v-if="action == 1" class="line"></div>
<div
class="pubIcon"
v-if="(action == 1 || action == 0) && checkPer(permissions)"
v-if="(action == 1 || action == 0) && checkPer(permissions,createId)"
@click="pubIcon(action)"
>
<img class="img2" src="../../assets/images/leveladd/pub.png" />
@@ -53,7 +53,7 @@
<div class="onerow">
<div class="taskmain">快速创建路径图详情</div>
</div>
<div class="second" v-if="checkPer(permissions)">
<div class="second" v-if="checkPer(permissions,createId)">
<div @click="totask">
<div
class="taskbox"
@@ -331,7 +331,7 @@
<router-link
:to="{ path: '/leveladddetail', query: { routerId: routerId } }"
class="editright"
v-if="checkPer(permissions)"
v-if="checkPer(permissions,createId)"
>
<img
class="editimg"
@@ -578,7 +578,7 @@
<a-button
type="link"
@click="setLevels(record)"
v-if="checkPer(permissions)"
v-if="checkPer(permissions,createId)"
>调整</a-button
>
</template>
@@ -601,7 +601,7 @@
class="oneedi"
@click="showbtn"
v-show="twobtn"
v-if="checkPer(permissions)"
v-if="checkPer(permissions,createId)"
>
编辑
</div>
@@ -692,7 +692,7 @@
</div>
</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="Gcon">
<div class="pad"></div>
@@ -1424,6 +1424,7 @@ export default {
const stuRef = ref();
// const store = useStore();
const state = reactive({
createId:null,
permissions: "",
hasTask: false,
stage: [],
@@ -2289,6 +2290,7 @@ export default {
.then((res) => {
console.log("router-list", res);
state.fileList = JSON.parse(res.data.data.routerInfo.attach);
state.createId = res.data.data.routerInfo.createId;
state.permissions = res.data.data.routerInfo.permissions;
console.log("asdasdasd-------->", state.fileList);
state.docChecked =

View File

@@ -199,7 +199,7 @@
>结束</a-button
>
<a-button
v-if="record.status !== -1 && record.type === 3"
v-if="record.status == -1"
@click="showBackFinashModal(record.id)"
type="link"
>撤回</a-button

View File

@@ -826,7 +826,7 @@
>
<div style="width: 90%">
<div class="grouptitle">
<div class="goodgruop">{{ item.groupName }}</div>
<div class="goodgruop" :title="item.groupName" >{{ item.groupName }}</div>
<div class="more">
<span
style="color: rgba(0, 0, 0, 0.45); cursor: pointer"
@@ -846,7 +846,7 @@
<div class="grocenter">
<div class="leader1">进度</div>
<a-progress
:percent="(item.completeRatio || 0) * 100"
:percent="Math.round((item.completeRatio || 0) * 100)"
/>
</div>
<div
@@ -3091,10 +3091,13 @@ export default {
state.isEdit = isEdit;
state.stugroup = true;
state.groupInfo = item || {};
if (isEdit) {
state.groupMemberCountContrast = item.groupMemberCount;
}
};
const closeModal2 = () => {
state.stugroup = false;
state.buttonLoading = false
state.groupInfo = {};
state.groupMemberCountContrast = null;
getGroup();
@@ -3931,7 +3934,6 @@ export default {
};
//创建小组
const createGroup = async () => {
debugger;
console.log("state.groupPageList" + state.groupPageList);
const id = state.groupInfo.id;
const d = state.groupPageList
@@ -6792,6 +6794,12 @@ export default {
font-size: 16px;
line-height: 36px;
font-weight: 600;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
cursor: pointer;
}
.more {

View File

@@ -144,7 +144,7 @@ export default {
// 导出学员信息
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}`)
}
//分页

View File

@@ -74,11 +74,11 @@
<div class="inname">配置权重</div>
</div>
<div class="in" style="display: flex">
<div class="assess">
<!-- <div class="assess">
<div class="assesstype">评估类型</div>
<div class="assesswhole">整体评估</div>
</div>
<div class="assess" style="margin-left: 50px; position: relative">
</div> -->
<div class="assess" style="position: relative">
<div class="assesstype">权重比例</div>
<div class="assesswhole" style="background: #ffffff">
<a-input-number