mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/fe-manage.git
synced 2025-12-10 11:26:45 +08:00
feat:增加学习路径图-学员管理-列表操作-查看、调整、导出
This commit is contained in:
@@ -78,8 +78,9 @@ export const delStudent = (obj) =>
|
|||||||
http.post("/admin/router/deleteStudent", obj);
|
http.post("/admin/router/deleteStudent", obj);
|
||||||
|
|
||||||
// 获取学员路径图进度明细
|
// 获取学员路径图进度明细
|
||||||
export const stuProgress = (obj) =>
|
export const stuProgress = (params) => http.get('/admin/router/studentProcess', {params});
|
||||||
http.post("/admin/router/studentProcess", obj);
|
// export const stuProgress = (obj) =>http.post("/admin/router/studentProcess", obj);
|
||||||
|
|
||||||
//编辑学习路径基本信息
|
//编辑学习路径基本信息
|
||||||
export const editLearnInfo = (obj) => http.post('/admin/router/editInfo', obj)
|
export const editLearnInfo = (obj) => http.post('/admin/router/editInfo', obj)
|
||||||
|
|
||||||
|
|||||||
@@ -15,14 +15,15 @@
|
|||||||
@click="closeDrawer"
|
@click="closeDrawer"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div class="main">
|
<a-spin v-if="loading" :spinning="loading"/>
|
||||||
|
<div v-if="!loading" class="main">
|
||||||
<div class="stuinfor">
|
<div class="stuinfor">
|
||||||
<div class="portrait">
|
<div class="portrait">
|
||||||
<img src="../../assets/images/studentimg/character.png" />
|
<img src="../../assets/images/studentimg/character.png" />
|
||||||
</div>
|
</div>
|
||||||
<div class="stumation">
|
<div class="stumation">
|
||||||
<div class="stuname">{{pro.userInfoBo.userName}}</div>
|
<div class="stuname">{{pro.userInfoBo.userName}}</div>
|
||||||
<div class="stugangw">{{pro.userInfoBo.deptName+'-'+pro.userInfoBo.jobName}}</div>
|
<div class="stugangw">{{pro.userInfoBo.deptName?pro.userInfoBo.deptName:"" + '-' + pro.userInfoBo.jobName?pro.userInfoBo.jobName:""}}</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="sortbox">
|
<div class="sortbox">
|
||||||
<div class="sortname">进度排名</div>
|
<div class="sortname">进度排名</div>
|
||||||
@@ -46,7 +47,7 @@
|
|||||||
<span class="total">/{{pro.totalReqCnt}}</span>
|
<span class="total">/{{pro.totalReqCnt}}</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<a-divider
|
<!-- <a-divider
|
||||||
type="vertical"
|
type="vertical"
|
||||||
style="
|
style="
|
||||||
height: 49px;
|
height: 49px;
|
||||||
@@ -59,16 +60,16 @@
|
|||||||
<div class="sortnub">
|
<div class="sortnub">
|
||||||
<span class="nub1">{{pro.certCnt}}</span>
|
<span class="nub1">{{pro.certCnt}}</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div> -->
|
||||||
</div>
|
</div>
|
||||||
<div class="secondrow">
|
<div class="secondrow">
|
||||||
<div class="rowleft">产品经理管理 - 腾飞班1</div>
|
<div class="rowleft">{{ pro.name }}</div>
|
||||||
<div class="rowbox" @click="showProMess">
|
<!-- <div class="rowbox" @click="showProMess">
|
||||||
<div class="shuom">说明</div>
|
<div class="shuom">说明</div>
|
||||||
<div><img src="../../assets/images/studentimg/chak.png" /></div>
|
<div><img src="../../assets/images/studentimg/chak.png" /></div>
|
||||||
</div>
|
</div> -->
|
||||||
</div>
|
</div>
|
||||||
<div v-for="(item,index) in pro.chapterProcessList" class="mainbox"
|
<!-- <div v-for="(item) in pro.chapterProcessList" class="mainbox"
|
||||||
style="margin-top: 15px; height: 56px"
|
style="margin-top: 15px; height: 56px"
|
||||||
:key="item.chapterId">
|
:key="item.chapterId">
|
||||||
<div class="rowtitle" @click="changeDown">
|
<div class="rowtitle" @click="changeDown">
|
||||||
@@ -81,7 +82,7 @@
|
|||||||
"
|
"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div class="titletext">关卡{{index}} {{item.chapterName}}</div>
|
<div class="titletext">{{item.chapterName}}</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div :style="{ display: showDown ? 'block' : 'none' }">
|
<div :style="{ display: showDown ? 'block' : 'none' }">
|
||||||
@@ -99,11 +100,105 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</div> -->
|
||||||
|
|
||||||
|
<div class="mainbox">
|
||||||
|
<a-collapse v-model:activeKey="stageListActive">
|
||||||
|
<template #expandIcon="{ isActive }">
|
||||||
|
<img
|
||||||
|
style="margin-right: 20px"
|
||||||
|
:src="
|
||||||
|
isActive
|
||||||
|
? require('../../assets/images/studentimg/open.png')
|
||||||
|
: require('../../assets/images/studentimg/close.png')
|
||||||
|
"
|
||||||
|
/>
|
||||||
|
<div></div>
|
||||||
|
</template>
|
||||||
|
<a-collapse-panel
|
||||||
|
v-for="value in pro.chapterProcessList"
|
||||||
|
:key="value.chapterId"
|
||||||
|
:header="value.chapterName"
|
||||||
|
|
||||||
|
>
|
||||||
|
<template #extra >
|
||||||
|
<div @click.stop="">
|
||||||
|
<div class="rowbox">
|
||||||
|
<a-popover title="关卡说明">
|
||||||
|
<template #content>
|
||||||
|
<p>{{value.remark}}</p>
|
||||||
|
</template>
|
||||||
|
<div class="shuom">说明</div>
|
||||||
|
</a-popover>
|
||||||
|
<div><img src="../../assets/images/studentimg/chak.png" /></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<div
|
||||||
|
class="rowclass"
|
||||||
|
v-for="(item, key) in value.taskProcessList"
|
||||||
|
:key="key"
|
||||||
|
>
|
||||||
|
|
||||||
|
<div class="leftclass">
|
||||||
|
<div>
|
||||||
|
<img
|
||||||
|
:src="
|
||||||
|
item.type === 1
|
||||||
|
? require('../../assets/images/leveladd/zai.png')
|
||||||
|
: item.type === 2
|
||||||
|
? require('../../assets/images/leveladd/mian.png')
|
||||||
|
: item.type === 3
|
||||||
|
? require('../../assets/images/leveladd/an.png')
|
||||||
|
: item.type === 4
|
||||||
|
? require('../../assets/images/leveladd/zuo.png')
|
||||||
|
: item.type === 5
|
||||||
|
? require('../../assets/images/leveladd/kao.png')
|
||||||
|
: item.type === 6
|
||||||
|
? require('../../assets/images/leveladd/zhi.png')
|
||||||
|
: item.type === 7
|
||||||
|
? require('../../assets/images/leveladd/wai.png')
|
||||||
|
: item.type === 8
|
||||||
|
? require('../../assets/images/leveladd/tao.png')
|
||||||
|
: item.type === 9
|
||||||
|
? require('../../assets/images/leveladd/huo.png')
|
||||||
|
: item.type === 10
|
||||||
|
? require('../../assets/images/leveladd/ce.png')
|
||||||
|
: item.type === 11
|
||||||
|
? require('../../assets/images/leveladd/diao.png')
|
||||||
|
: item.type === 12
|
||||||
|
? require('../../assets/images/leveladd/tou.png')
|
||||||
|
: item.type === 13
|
||||||
|
? require('../../assets/images/leveladd/diao.png')
|
||||||
|
: null
|
||||||
|
"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div class="text1">{{ checkType(item.type) }}</div>
|
||||||
|
<div class="text2">{{ item.name }}</div>
|
||||||
|
</div>
|
||||||
|
<div class="alreadyclass">
|
||||||
|
<div class="alimg">
|
||||||
|
<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>
|
||||||
|
</a-collapse>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div class="btnn">
|
<div class="btnn">
|
||||||
<button class="btn2">关闭</button>
|
<button class="btn2" @click="closeDrawer">关闭</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</a-drawer>
|
</a-drawer>
|
||||||
@@ -114,7 +209,7 @@
|
|||||||
import { reactive, toRefs } from "vue";
|
import { reactive, toRefs } from "vue";
|
||||||
import CheckStuMess from "./CheckStuMess.vue";
|
import CheckStuMess from "./CheckStuMess.vue";
|
||||||
import {stuProgress} from "@/api/index1";
|
import {stuProgress} from "@/api/index1";
|
||||||
import {message} from "ant-design-vue";
|
// import {message} from "ant-design-vue";
|
||||||
export default {
|
export default {
|
||||||
name: "CheckStu",
|
name: "CheckStu",
|
||||||
components: { CheckStuMess },
|
components: { CheckStuMess },
|
||||||
@@ -126,13 +221,19 @@ export default {
|
|||||||
studentId: {
|
studentId: {
|
||||||
type: Number,
|
type: Number,
|
||||||
default: null,
|
default: null,
|
||||||
}
|
},
|
||||||
|
routerId: {
|
||||||
|
type: Number,
|
||||||
|
default: null,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
setup(props, ctx) {
|
setup(props, ctx) {
|
||||||
const state = reactive({
|
const state = reactive({
|
||||||
StuMessvisible: false,
|
StuMessvisible: false,
|
||||||
showDown: false,
|
showDown: false,
|
||||||
pro:null,
|
pro:null,
|
||||||
|
loading:true,
|
||||||
|
stageListActive: 0,
|
||||||
});
|
});
|
||||||
const closeDrawer = () => {
|
const closeDrawer = () => {
|
||||||
ctx.emit("update:CheckStuvisible", false);
|
ctx.emit("update:CheckStuvisible", false);
|
||||||
@@ -151,21 +252,24 @@ export default {
|
|||||||
state.showDown = !state.showDown;
|
state.showDown = !state.showDown;
|
||||||
};
|
};
|
||||||
const getStuProgress = () => {
|
const getStuProgress = () => {
|
||||||
|
state.loading = true
|
||||||
let obj = {
|
let obj = {
|
||||||
routerId:100,
|
routerId:props.routerId,
|
||||||
studentId:props.studentId
|
studentId:props.studentId
|
||||||
}
|
}
|
||||||
stuProgress(obj).then(res => {
|
stuProgress(obj).then(res => {
|
||||||
message.success("操作成功")
|
console.log("查询当前学员进度信息success",res)
|
||||||
state.pro = res.data.data
|
state.pro = res.data.data
|
||||||
|
state.loading = false
|
||||||
console.log(res)
|
console.log(res)
|
||||||
}).catch(err => {
|
}).catch(err => {
|
||||||
message.error("操作失败"+err)
|
console.log("查询当前学员进度信息err",err)
|
||||||
|
state.loading = false
|
||||||
console.log(err)
|
console.log(err)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
const checkType = (type) => {
|
const checkType = (type) => {
|
||||||
let typeRules = [
|
let typeRules = [
|
||||||
"",
|
"",
|
||||||
"在线",
|
"在线",
|
||||||
@@ -317,28 +421,115 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// .mainbox {
|
||||||
|
// // height: 463px;
|
||||||
|
// margin-right: 37px;
|
||||||
|
// margin-top: 32px;
|
||||||
|
// border: 1px solid rgba(221, 238, 255, 1);
|
||||||
|
// border-radius: 6px;
|
||||||
|
// .rowtitle {
|
||||||
|
// height: 56px;
|
||||||
|
// background: rgba(240, 246, 252, 1);
|
||||||
|
// display: flex;
|
||||||
|
// align-items: center;
|
||||||
|
// .titleimg {
|
||||||
|
// width: 20px;
|
||||||
|
// height: 20px;
|
||||||
|
// margin-left: 23px;
|
||||||
|
// }
|
||||||
|
// .titletext {
|
||||||
|
// color: rgba(51, 51, 51, 1);
|
||||||
|
// font-size: 16px;
|
||||||
|
// font-weight: 500;
|
||||||
|
// margin-left: 16px;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// .rowclass {
|
||||||
|
// height: 81px;
|
||||||
|
// border-bottom: 1px solid rgba(221, 238, 255, 1);
|
||||||
|
// display: flex;
|
||||||
|
// justify-content: space-between;
|
||||||
|
// align-items: center;
|
||||||
|
// .leftclass {
|
||||||
|
// display: flex;
|
||||||
|
// margin-left: 25px;
|
||||||
|
// align-items: center;
|
||||||
|
// .text1 {
|
||||||
|
// color: #000000;
|
||||||
|
// font-size: 14px;
|
||||||
|
// font-weight: 500;
|
||||||
|
// margin-left: 25px;
|
||||||
|
// }
|
||||||
|
// .text2 {
|
||||||
|
// color: rgba(51, 51, 51, 0.8);
|
||||||
|
// font-size: 14px;
|
||||||
|
// margin-left: 65px;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// .alreadyclass {
|
||||||
|
// display: flex;
|
||||||
|
// margin-right: 57px;
|
||||||
|
// .alimg {
|
||||||
|
// height: 16px;
|
||||||
|
// width: 16px;
|
||||||
|
// }
|
||||||
|
// .altext {
|
||||||
|
// color: rgba(56, 125, 247, 1);
|
||||||
|
// font-size: 14px;
|
||||||
|
// margin-left: 16px;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
.mainbox {
|
.mainbox {
|
||||||
// height: 463px;
|
// height: 463px;
|
||||||
margin-right: 37px;
|
margin-right: 37px;
|
||||||
margin-top: 32px;
|
margin-top: 32px;
|
||||||
border: 1px solid rgba(221, 238, 255, 1);
|
//border: 1px solid rgba(221, 238, 255, 1);
|
||||||
border-radius: 6px;
|
//border-radius: 6px;
|
||||||
.rowtitle {
|
.rowbox {
|
||||||
height: 56px;
|
width: 64px;
|
||||||
background: rgba(240, 246, 252, 1);
|
height: 24px;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
margin-left: 24px;
|
||||||
|
border: 1px solid rgba(64, 158, 255, 1);
|
||||||
|
background: rgba(64, 158, 255, 0.1);
|
||||||
|
margin-right: 480px;
|
||||||
|
cursor: pointer;
|
||||||
|
.shuom {
|
||||||
|
color: rgba(64, 158, 255, 1);
|
||||||
|
font-size: 14px;
|
||||||
|
line-height: 20px;
|
||||||
|
margin-right: 5px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.ant-collapse {
|
||||||
|
background-color: #ffffff;
|
||||||
|
border: 0;
|
||||||
|
}
|
||||||
|
.ant-collapse-content > .ant-collapse-content-box {
|
||||||
|
padding: 0;
|
||||||
|
border: 0;
|
||||||
|
}
|
||||||
|
.ant-collapse > .ant-collapse-item {
|
||||||
|
border: 1px solid rgba(221, 238, 255, 1);
|
||||||
|
border-radius: 6px;
|
||||||
|
margin-bottom: 15px;
|
||||||
|
border-bottom: 0px;
|
||||||
|
}
|
||||||
|
.ant-collapse-content {
|
||||||
|
border-top: 0;
|
||||||
|
}
|
||||||
|
.ant-collapse-header {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
.titleimg {
|
height: 56px;
|
||||||
width: 20px;
|
background-color: rgba(240, 246, 252, 1);
|
||||||
height: 20px;
|
font-size: 16px;
|
||||||
margin-left: 23px;
|
color: rgba(51, 51, 51, 1);
|
||||||
}
|
font-weight: 500;
|
||||||
.titletext {
|
|
||||||
color: rgba(51, 51, 51, 1);
|
|
||||||
font-size: 16px;
|
|
||||||
font-weight: 500;
|
|
||||||
margin-left: 16px;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
.rowclass {
|
.rowclass {
|
||||||
height: 81px;
|
height: 81px;
|
||||||
|
|||||||
@@ -525,12 +525,13 @@
|
|||||||
</a-tab-pane>
|
</a-tab-pane>
|
||||||
<a-tab-pane key="3" tab="学员管理" force-render>
|
<a-tab-pane key="3" tab="学员管理" force-render>
|
||||||
<TableStudent
|
<TableStudent
|
||||||
|
v-if="isreload"
|
||||||
:type="2"
|
:type="2"
|
||||||
:id="routerId"
|
:id="routerId"
|
||||||
:stage="stage"
|
:stage="stage"
|
||||||
:columns="tableDataFunc()"
|
:columns="tableDataFunc()"
|
||||||
>
|
>
|
||||||
<!-- <template #extension="{ data: { record } }">
|
<template #extension="{ data: { record } }">
|
||||||
<div style="display: flex">
|
<div style="display: flex">
|
||||||
<div
|
<div
|
||||||
@click="showStudent(record)"
|
@click="showStudent(record)"
|
||||||
@@ -557,7 +558,43 @@
|
|||||||
调整
|
调整
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template> -->
|
</template>
|
||||||
|
</TableStudent>
|
||||||
|
<TableStudent
|
||||||
|
v-else
|
||||||
|
:type="2"
|
||||||
|
:id="routerId"
|
||||||
|
:stage="stage"
|
||||||
|
:columns="tableDataFunc()"
|
||||||
|
>
|
||||||
|
<template #extension="{ data: { record } }">
|
||||||
|
<div style="display: flex">
|
||||||
|
<div
|
||||||
|
@click="showStudent(record)"
|
||||||
|
style="
|
||||||
|
color: #4ea6ff;
|
||||||
|
font-size: 14px;
|
||||||
|
text-align: center;
|
||||||
|
margin-left: 20px;
|
||||||
|
cursor: pointer;
|
||||||
|
"
|
||||||
|
>
|
||||||
|
查看
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
@click="setLevels(record)"
|
||||||
|
style="
|
||||||
|
color: #4ea6ff;
|
||||||
|
font-size: 14px;
|
||||||
|
text-align: center;
|
||||||
|
margin-left: 20px;
|
||||||
|
cursor: pointer;
|
||||||
|
"
|
||||||
|
>
|
||||||
|
调整
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
</TableStudent>
|
</TableStudent>
|
||||||
</a-tab-pane>
|
</a-tab-pane>
|
||||||
<!-- 1211注释 待开放 -->
|
<!-- 1211注释 待开放 -->
|
||||||
@@ -861,21 +898,21 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="mid">
|
<div class="mid">
|
||||||
<div class="inher">
|
<div class="inher">
|
||||||
<div class="cur">当前关卡:关卡2</div>
|
<div class="cur">当前关卡:{{ curLevelName }}</div>
|
||||||
<div class="select">
|
<div class="select">
|
||||||
<a-select
|
<a-select
|
||||||
v-model:value="curLevel"
|
v-model:value="curLevel"
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
placeholder="请选择关卡"
|
placeholder="请选择关卡"
|
||||||
:options="projectNameList4"
|
:options="statess"
|
||||||
@change="selectProjectName4"
|
@change="selectProjectName4"
|
||||||
allowClear
|
allowClear
|
||||||
showSearch
|
showSearch
|
||||||
></a-select>
|
></a-select>
|
||||||
</div>
|
</div>
|
||||||
<div class="btn">
|
<div class="btn">
|
||||||
<button class="sameb btn1">取消</button>
|
<button class="sameb btn1" style="cursor:pointer;" @click="closeChangeModal">取消</button>
|
||||||
<button class="sameb btn2">确定</button>
|
<button class="sameb btn2" style="cursor:pointer;" @click="changeLevel">确定</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -1019,6 +1056,7 @@
|
|||||||
<!-- 学员管理查看抽屉 -->
|
<!-- 学员管理查看抽屉 -->
|
||||||
<check-stu
|
<check-stu
|
||||||
v-model:CheckStuvisible="CheckStuvisible"
|
v-model:CheckStuvisible="CheckStuvisible"
|
||||||
|
v-model:routerId="routerId"
|
||||||
v-model:studentId="studentId"
|
v-model:studentId="studentId"
|
||||||
/>
|
/>
|
||||||
<!-- 面授学员抽屉 -->
|
<!-- 面授学员抽屉 -->
|
||||||
@@ -1269,7 +1307,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import { ref, reactive, toRefs, onMounted, createVNode, watch } from "vue";
|
import { ref, reactive, toRefs, onMounted, createVNode, watch, defineEmits } from "vue";
|
||||||
import { ExclamationCircleOutlined } from "@ant-design/icons-vue";
|
import { ExclamationCircleOutlined } from "@ant-design/icons-vue";
|
||||||
import { message, Modal } from "ant-design-vue";
|
import { message, Modal } from "ant-design-vue";
|
||||||
// import PathAddStu from "../../components/drawers/pathStuAdd";
|
// import PathAddStu from "../../components/drawers/pathStuAdd";
|
||||||
@@ -1295,13 +1333,14 @@ import { codeUrl } from "../../api/method";
|
|||||||
import TwoDimensionalCode from "../../components/TwoDimensionalCode.vue";
|
import TwoDimensionalCode from "../../components/TwoDimensionalCode.vue";
|
||||||
import TableStudent from "@/components/student/TableStudent";
|
import TableStudent from "@/components/student/TableStudent";
|
||||||
// import * as student from "@/api/student";
|
// import * as student from "@/api/student";
|
||||||
import { getStuPage } from "@/api/index1";
|
import { getStuPage, moveStudent } from "@/api/index1";
|
||||||
|
|
||||||
import RouterFaceTeachManage from "../../components/drawers/router/RouterFaceTeachManage";
|
import RouterFaceTeachManage from "../../components/drawers/router/RouterFaceTeachManage";
|
||||||
import RouterExaminationManage from "../../components/drawers/router/RouterExaminationManage";
|
import RouterExaminationManage from "../../components/drawers/router/RouterExaminationManage";
|
||||||
import RouterEvaluationManage from "../../components/drawers/router/RouterEvaluationManage";
|
import RouterEvaluationManage from "../../components/drawers/router/RouterEvaluationManage";
|
||||||
import RouterHomeworkManage from "../../components/drawers/router/RouterHomeworkManage";
|
import RouterHomeworkManage from "../../components/drawers/router/RouterHomeworkManage";
|
||||||
import RouterCommonManage from "../../components/drawers/router/RouterCommonManage";
|
import RouterCommonManage from "../../components/drawers/router/RouterCommonManage";
|
||||||
|
import { func } from "vue-types";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "LevelAdd",
|
name: "LevelAdd",
|
||||||
@@ -1331,6 +1370,7 @@ export default {
|
|||||||
// const store = useStore();
|
// const store = useStore();
|
||||||
const state = reactive({
|
const state = reactive({
|
||||||
stage: [],
|
stage: [],
|
||||||
|
statess: [],
|
||||||
routerId: storage.get("routerId")
|
routerId: storage.get("routerId")
|
||||||
? JSON.parse(storage.get("routerId"))
|
? JSON.parse(storage.get("routerId"))
|
||||||
: null, //学习路径页面传的学习路径id
|
: null, //学习路径页面传的学习路径id
|
||||||
@@ -1434,7 +1474,9 @@ export default {
|
|||||||
sh: false,
|
sh: false,
|
||||||
nodata: true,
|
nodata: true,
|
||||||
closeDeleteAll: false,
|
closeDeleteAll: false,
|
||||||
curLevel: "",
|
curLevel: undefined,
|
||||||
|
curLevelName: "",
|
||||||
|
curStuID:"",
|
||||||
taskSyllabusActive: 0,
|
taskSyllabusActive: 0,
|
||||||
//在线管理等页面传递参数
|
//在线管理等页面传递参数
|
||||||
showTimeText: "",
|
showTimeText: "",
|
||||||
@@ -1516,6 +1558,7 @@ export default {
|
|||||||
location.href.indexOf("http://") !== -1
|
location.href.indexOf("http://") !== -1
|
||||||
? "http://111.231.196.214:12016/"
|
? "http://111.231.196.214:12016/"
|
||||||
: location.href.slice(0, location.href.indexOf("/m")) + "/upload/",
|
: location.href.slice(0, location.href.indexOf("/m")) + "/upload/",
|
||||||
|
isreload: true
|
||||||
});
|
});
|
||||||
|
|
||||||
const levelList = reactive({
|
const levelList = reactive({
|
||||||
@@ -1691,6 +1734,9 @@ export default {
|
|||||||
state.visible = true;
|
state.visible = true;
|
||||||
};
|
};
|
||||||
const closeChangeModal = () => {
|
const closeChangeModal = () => {
|
||||||
|
state.curLevel = undefined;
|
||||||
|
state.curStuID = "";
|
||||||
|
state.curLevelName = "";
|
||||||
state.visiblene = false;
|
state.visiblene = false;
|
||||||
};
|
};
|
||||||
const showAddStu = () => {
|
const showAddStu = () => {
|
||||||
@@ -2146,6 +2192,10 @@ export default {
|
|||||||
id: e.chapterId,
|
id: e.chapterId,
|
||||||
name: e.name,
|
name: e.name,
|
||||||
}));
|
}));
|
||||||
|
state.statess = res.data.data.chapterList.map((e) => ({
|
||||||
|
value: e.chapterId,
|
||||||
|
label: e.name,
|
||||||
|
}));
|
||||||
state.taskSyllabus = data;
|
state.taskSyllabus = data;
|
||||||
// for(let i in data) {
|
// for(let i in data) {
|
||||||
// state.taskSyllabus[i].name = data[i].name
|
// state.taskSyllabus[i].name = data[i].name
|
||||||
@@ -2483,16 +2533,52 @@ export default {
|
|||||||
// 点击学员管理-查看学员操作
|
// 点击学员管理-查看学员操作
|
||||||
function showStudent(record) {
|
function showStudent(record) {
|
||||||
console.log(record)
|
console.log(record)
|
||||||
state.Seevisible = true;
|
state.CheckStuvisible = true;
|
||||||
state.checkStuId = record.studentId;
|
state.studentId = record.studentId;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 调整关卡
|
// 调整关卡
|
||||||
function setLevels(record) {
|
function setLevels(record) {
|
||||||
console.log(record)
|
console.log(record)
|
||||||
|
state.curLevelName = record.currentStageName;
|
||||||
|
state.curStuID = record.id;
|
||||||
state.visiblene = true;
|
state.visiblene = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 选择要调整的关卡
|
||||||
|
function selectProjectName4(e){
|
||||||
|
console.log(e)
|
||||||
|
state.curLevel = e;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 点击确定 调整关卡
|
||||||
|
function changeLevel() {
|
||||||
|
state.isreload = false;
|
||||||
|
if(!state.curLevel){
|
||||||
|
message.error("请选择关卡")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
moveStudent({targetId: state.curLevel, ids: [state.curStuID]}).then(res => {
|
||||||
|
console.log(res)
|
||||||
|
state.visiblene = false;
|
||||||
|
message.destroy();
|
||||||
|
state.isreload = true;
|
||||||
|
message.success("调整关卡成功")
|
||||||
|
state.curLevel = undefined;
|
||||||
|
state.curStuID = "";
|
||||||
|
state.curLevelName = "";
|
||||||
|
getStudent();
|
||||||
|
}).catch(err=>{
|
||||||
|
console.log(err)
|
||||||
|
state.visiblene = false;
|
||||||
|
message.error("调整关卡失败");
|
||||||
|
state.isreload = true;
|
||||||
|
state.curLevel = undefined;
|
||||||
|
state.curStuID = "";
|
||||||
|
state.curLevelName = "";
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
...toRefs(state),
|
...toRefs(state),
|
||||||
...toRefs(levelList),
|
...toRefs(levelList),
|
||||||
@@ -2561,6 +2647,8 @@ export default {
|
|||||||
downloadFile,
|
downloadFile,
|
||||||
showStudent,
|
showStudent,
|
||||||
setLevels,
|
setLevels,
|
||||||
|
selectProjectName4,
|
||||||
|
changeLevel
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user