feat:学员获取 搜索重置查看 关卡阶段定位

This commit is contained in:
宋文超
2022-11-17 16:16:14 +08:00
parent 2129610601
commit 54b6e4d6ec
10 changed files with 473 additions and 430 deletions

View File

@@ -1,17 +1,14 @@
import http from "./config";
// 创建考试信息接口
export const createExamination = (obj) => http.post('/examination/createExamination',obj,{
export const createExamination = (obj) => http.post('/examination/createExamination', obj);
// 根据Id删除考试信息
export const deleteExaminationById = (obj) => http.post('/examination/deleteExaminationById', obj);
// 根据ID获取考试信息详情
export const queryExaminationDetailById = (obj) => http.post('/examination/queryExaminationDetailById', obj, {
headers: {
'token': '123'
'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'
}
});
// 根据Id删除考试信息
export const deleteExaminationById = (obj) => http.post('/examination/deleteExaminationById',obj);
// 根据ID获取考试信息详情
export const queryExaminationDetailById = (obj) => http.post('/examination/queryExaminationDetailById',obj,{headers: {
'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'
}
});
// 创建考试信息接口
export const updateExamination = (obj) => http.post('/examination/updateExamination',obj);
export const updateExamination = (obj) => http.post('/examination/updateExamination', obj);

View File

@@ -4,25 +4,13 @@ import http from "./config";
export const getLiveBroadcastInfor = (obj) => http.get('/liveBroadcast', { params: obj })
//创建直播接口
export const createLiveBroadcast = (obj) => http.post('/liveBroadcast/createLiveBroadcast', obj, {
headers: {
'token': '123'
}
})
export const createLiveBroadcast = (obj) => http.post('/liveBroadcast/createLiveBroadcast', obj)
//直播信息删除接口
export const deleteLiveBroadcast = (obj) => http.post('/liveBroadcast/deleteLiveBroadcast', obj, {
headers: {
'token': '123'
}
})
export const deleteLiveBroadcast = (obj) => http.post('/liveBroadcast/deleteLiveBroadcast', obj)
//直播信息修改接口
export const updateLiveBroadcastMessage = (obj) => http.post('/liveBroadcast/updateLiveBroadcastMessage', obj, {
headers: {
'token': '123'
}
})
export const updateLiveBroadcastMessage = (obj) => http.post('/liveBroadcast/updateLiveBroadcastMessage', obj)
//获取全部评估信息接口
export const queryAssessmentDetailList = (obj) => http.post('/assessment/queryAssessmentDetailList', obj)

View File

@@ -26,3 +26,6 @@ export const overview = (obj) => http.get('/admin/project/overview', { params: o
//设置项目积分规则
export const setScoreRule = (obj) => http.post('/admin/project/setScoreRule', obj)
//获取学员积分明细列表
export const studentScoreList = (obj) => http.post('/admin/project/studentScoreList', obj)

View File

@@ -1,10 +1,6 @@
import http from "./config";
//获取任务列表
export const getTask = (obj) => http.get('/admin/project/detail', { params: obj }, {
headers: {
'token': '123'
}
})
export const getTask = (obj) => http.get('/admin/project/detail', { params: obj })
//项目里的新建或编辑阶段任务
export const addTask = (obj) => http.post('/admin/project/editTask', obj)

View File

@@ -1,15 +1,11 @@
import http from "./config";
// 创建作业信息接口
export const createWorkTask = (obj) =>
http.post("/work/createWorkTask", obj, {
headers: {
token: "123",
},
});
http.post("/work/createWorkTask", obj);
// 删除作业信息接口
export const deleteWorkTask = (obj) => http.post("/work/deleteWorkTask", obj);
// 根据ID获取作业信息详情
export const queryWorkDetailById = (obj) => http.post('/work/queryWorkDetailById',obj,{
export const queryWorkDetailById = (obj) => http.post('/work/queryWorkDetailById', obj, {
headers: {
'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'
}

View File

@@ -175,6 +175,7 @@ export default {
state.textV1 = "";
message.success(`${props.edit ? "编辑" : "新增"}关卡任务成功`);
localStorage.setItem("stageId", props.chooseStageId);
localStorage.setItem("chapterId", props.isactive);
};
const queryDiscuss = () => {
if (props.edit) {

View File

@@ -9,16 +9,16 @@
<div class="groupname" style="width: 42px">姓名</div>
<a-input
class="ant-input"
v-model:value="value"
v-model:value="searchNameValue"
placeholder="请输入姓名"
/>
</div>
<div class="groupright">
<div class="btn1">
<div class="btn1" @click="searchStu">
<img src="../../assets/images/courseManage/search0.png" />
<span class="btn1text">搜索</span>
</div>
<div class="btn2">
<div class="btn2" @click="resetStud">
<img src="../../assets/images/courseManage/reset1.png" />
<span class="btn2text">重置</span>
</div>
@@ -36,6 +36,7 @@
/>
<div class="pa">
<a-pagination
v-if="tableDataTotal > 10"
showSizeChanger="true"
showQuickJumper="true"
hideOnSinglePage="true"
@@ -43,6 +44,7 @@
:current="currentPage"
:total="tableDataTotal"
class="pagination"
@change="changePagination"
/>
</div>
</div>
@@ -277,16 +279,21 @@
>
</a-tabs>
</div>
<stu-score-detail v-model:Svisible="Svisible" />
<stu-score-detail
v-model:Svisible="Svisible"
v-model:studentId="checkStuId"
v-model:projectId="proId"
/>
</template>
<script>
import StuScoreDetail from "../../components/drawers/StuScoreDetail";
import { reactive, toRefs, computed } from "vue";
import { reactive, toRefs, computed, onMounted } from "vue";
import * as api from "../../api/index1";
// import { message } from "ant-design-vue";
// import { scoreRule } from "../../api/indexTaskadd"; //获取项目积分规则
import { setScoreRule } from "../../api/indexTaskadd"; //设置项目积分规则
import { getProjStu } from "../../api/indexProjStu";
export default {
name: "ProjectScore",
components: {
@@ -301,42 +308,15 @@ export default {
setup(props) {
const state = reactive({
tabledataStu: [
{
key: 1,
name: "小李",
bum: "产研部",
gangw: "产品经理",
group: "好好学习",
diploma: "0",
operation: "查看",
},
{
key: 2,
name: "小刘",
bum: "产研部",
gangw: "产品经理",
group: "天天向上",
diploma: "0",
operation: "查看",
},
{
key: 3,
name: "小王",
bum: "产研部",
gangw: "后端",
group: "好好学习",
diploma: "0",
operation: "查看",
},
{
key: 4,
name: "小赵",
bum: "产研部",
gangw: "前端",
group: "天天向上",
diploma: "0",
operation: "查看",
},
// {
// key: 1,
// name: "小李",
// bum: "产研部",
// gangw: "产品经理",
// group: "好好学习",
// diploma: "0",
// operation: "查看",
// },
],
tablecolumnStu: [
@@ -387,6 +367,20 @@ export default {
width: 60,
align: "center",
className: "operation",
customRender: (value) => {
return (
<div
style="color:#387df7;cursor:pointer"
onClick={() => {
state.Svisible = true;
console.log(value.record.key);
state.checkStuId = value.record.key;
}}
>
查看
</div>
);
},
},
],
datascore: [
@@ -450,7 +444,6 @@ export default {
activeKeyScore: "2",
stuName: "请输入姓名",
todayvalue: "1",
tableDataTotal: 30,
stuValue: false,
Svisible: false,
score1: null,
@@ -468,6 +461,12 @@ export default {
seven2: null,
edit: true,
searchRankName: null, //榜单搜索名称
pageSize: 10,
currentPage: 1,
tableDataTotal: null,
searchNameValue: null, //学员获取的姓名
checkStuId: null,
proId: null,
});
const getTableData = () => {
let datas = state.tabledataStu;
@@ -599,6 +598,66 @@ export default {
state.edit = true;
};
const getStu = (obj) => {
state.proId = props.projectId;
let objn = obj || {
deptIds: [],
groupId: "",
groupName: "",
name: "",
pageNo: state.currentPage,
pageSize: 10,
projectId: props.projectId,
topFlag: "",
};
getProjStu(objn).then((res) => {
console.log("dedaole", res.data.data.rows);
let result = res.data.data.rows;
state.tableDataTotal = res.data.data.total;
setStuData(result);
});
};
const setStuData = (tabledata) => {
let data = tabledata;
let array = [];
data.map((item) => {
let obj = {
key: item.studentId,
name: item.name,
bum: item.userInfoBo.deptName,
gangw: item.userInfoBo.jobName,
group: item.groupName,
diploma: "0",
// operation: "查看",
};
array.push(obj);
});
state.tabledataStu = array;
};
const changePagination = (current) => {
state.currentPage = current;
getStu();
};
const searchStu = () => {
let obj = {
deptIds: [],
groupId: "",
groupName: "",
name: state.searchNameValue,
pageNo: state.currentPage,
pageSize: 10,
projectId: props.projectId,
topFlag: "",
};
getStu(obj);
};
const resetStud = () => {
state.searchNameValue = null;
getStu();
};
onMounted(() => {
getStu();
});
return {
...toRefs(state),
typeChange,
@@ -609,6 +668,11 @@ export default {
scoreRank,
editRule,
scoresum,
getStu,
setStuData,
changePagination,
searchStu,
resetStud,
};
},
// computed: {

View File

@@ -17,7 +17,6 @@
</div>
<div class="contentMain">
<div class="main">
<div class="tableBox" style="margin-top: 20px; margin-bottom: 100px">
<a-table
style="border: 1px solid #f2f6fe"
@@ -26,10 +25,10 @@
:loading="tableDataTotal === -1 ? true : false"
@expand="expandTable"
:pagination="false"
/>
<div class="pa">
<a-pagination
v-if="tableDataTotal > 10"
showSizeChanger="true"
showQuickJumper="true"
hideOnSinglePage="true"
@@ -37,6 +36,7 @@
:current="currentPage"
:total="tableDataTotal"
class="pagination"
@change="changePagination"
/>
</div>
</div>
@@ -51,14 +51,24 @@
</template>
<script>
import { toRefs, reactive } from "vue";
export default {
import { toRefs, reactive } from "vue";
import { studentScoreList } from "../../api/indexProjStu";
import { toDate } from "@/api/method";
export default {
name: "StuScoreDetail",
props: {
Svisible: {
type: Boolean,
default: false,
},
studentId: {
type: Number,
default: null,
},
projectId: {
type: Number,
default: null,
},
},
setup(props, ctx) {
@@ -67,98 +77,17 @@
pageSize: 10,
currentPage: 1,
tableDataTotal: 100,
selectedRowKeys: [],
tableDataTotal: null,
// selectedRowKeys: [],
tabledata: [
{
key: 1,
time: "2019-12-12 12:12",
score: "12",
type: "完成任务",
from: "【在线】如何成为产品经理",
},
{
key: 1,
time: "2019-12-12 12:12",
score: "12",
type: "完成任务",
from: "【在线】如何成为产品经理",
},
{
key: 1,
time: "2019-12-12 12:12",
score: "12",
type: "完成任务",
from: "【在线】如何成为产品经理",
},
{
key: 1,
time: "2019-12-12 12:12",
score: "12",
type: "完成任务",
from: "【在线】如何成为产品经理",
},
{
key: 1,
time: "2019-12-12 12:12",
score: "12",
type: "完成任务",
from: "【在线】如何成为产品经理",
},
{
key: 1,
time: "2019-12-12 12:12",
score: "12",
type: "完成任务",
from: "【在线】如何成为产品经理",
},
{
key: 1,
time: "2019-12-12 12:12",
score: "12",
type: "完成任务",
from: "【在线】如何成为产品经理",
},
{
key: 1,
time: "2019-12-12 12:12",
score: "12",
type: "完成任务",
from: "【在线】如何成为产品经理",
},
{
key: 1,
time: "2019-12-12 12:12",
score: "12",
type: "完成任务",
from: "【在线】如何成为产品经理",
},
{
key: 1,
time: "2019-12-12 12:12",
score: "12",
type: "完成任务",
from: "【在线】如何成为产品经理",
},
{
key: 1,
time: "2019-12-12 12:12",
score: "12",
type: "完成任务",
from: "【在线】如何成为产品经理",
},
// {
// key: 1,
// time: "2019-12-12 12:12",
// score: "12",
// type: "完成任务",
// from: "【在线】如何成为产品经理",
// },
],
tablecolumns: [
{
@@ -193,24 +122,63 @@
align: "center",
className: "h",
},
],
});
const closeDrawer = () => {
ctx.emit("update:Svisible", false);
};
const getData = () => {
let obj = {
pageNo: state.currentPage,
pageSize: 10,
projectId: props.projectId,
studentId: props.studentId,
};
studentScoreList(obj).then((res) => {
console.log("dede", res.data.data);
let result = res.data.data;
state.tableDataTotal = result.pageSize;
if (result.pageSize > 0) {
setTable(result.rows);
}
});
};
const afterVisibleChange = () => {
getData();
};
const setTable = (tabledata) => {
let data = tabledata;
let array = [];
data.map((item) => {
let obj = {
time: toDate(item.createTime / 1000, "Y-M-D h-m"),
score: item.score,
type: "完成任务",
from: item.source,
};
array.push(obj);
});
state.tabledata = array;
};
const changePagination = (current) => {
state.currentPage = current;
getData();
};
return {
...toRefs(state),
closeDrawer,
afterVisibleChange,
getData,
setTable,
changePagination,
};
},
};
};
</script>
<style lang="scss" >
.StuScore{
.StuScore {
.drawerMain {
min-width: 600px;
margin: 0px 32px 0px 32px;
@@ -250,11 +218,11 @@
.ant-table-thead > tr > th {
background-color: rgba(239, 244, 252, 1) !important;
color: rgba(0, 0, 0, 0.8500);
color: rgba(0, 0, 0, 0.85);
}
.ant-table-cell {
color: rgba(0, 0, 0, 0.6500);
color: rgba(0, 0, 0, 0.65);
}
.ant-table-selection-column {
@@ -265,11 +233,9 @@
background-color: #eff4fc !important;
}
.ant-table-tbody
> tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)
> td {
background: #f6f9fd;
}
.ant-table-tbody > tr > td {
@@ -283,7 +249,7 @@
.pa {
margin-top: 20px;
width: 100%;
flex:1;
flex: 1;
display: flex;
justify-content: center;
}
@@ -323,5 +289,5 @@
}
}
}
}
}
</style>

View File

@@ -213,9 +213,15 @@
</div>
<!-- 添加在线侧弹窗 -->
<div>
<add-online v-model:addonlineVisible="addonlinevisible" @changeData="updateTableData" v-model:edit="edit"
v-model:projectId="projectId" v-model:chooseStageId="chooseStageId" v-model:projectTaskId="projectTaskId"
v-model:EditOnlineId="EditOnlineId" />
<add-online
v-model:addonlineVisible="addonlinevisible"
@changeData="updateTableData"
v-model:edit="edit"
v-model:projectId="projectId"
v-model:chooseStageId="chooseStageId"
v-model:projectTaskId="projectTaskId"
v-model:EditOnlineId="EditOnlineId"
/>
</div>
<!-- 添加在线侧弹窗 -->
<div class="lin"></div>
@@ -238,9 +244,15 @@
</div>
<!-- 添加案例侧弹窗 -->
<div>
<add-case v-model:addcaseVisible="addcasevisible" @changeData="updateTableData" v-model:edit="edit"
v-model:projectId="projectId" v-model:chooseStageId="chooseStageId" v-model:projectTaskId="projectTaskId"
v-model:EditCaseId="EditCaseId" />
<add-case
v-model:addcaseVisible="addcasevisible"
@changeData="updateTableData"
v-model:edit="edit"
v-model:projectId="projectId"
v-model:chooseStageId="chooseStageId"
v-model:projectTaskId="projectTaskId"
v-model:EditCaseId="EditCaseId"
/>
</div>
<!-- 添加案例侧弹窗 -->
<div class="lin"></div>
@@ -966,8 +978,8 @@
import { reactive, toRefs, onMounted, onUnmounted } from "vue";
import AddStu from "../../components/drawers/AddLevelAddStu";
import ImpStu from "../../components/drawers/AddLevelImportStu";
import AddOnline from "../../components/drawers/AddOnline.vue"
import AddCase from "../../components/drawers/AddCase.vue"
import AddOnline from "../../components/drawers/AddOnline.vue";
import AddCase from "../../components/drawers/AddCase.vue";
import AddHomework from "../../components/drawers/AddHomework.vue";
import AddTest from "../../components/drawers/AddTest.vue";
import AddDiscuss from "../../components/drawers/AddDiscuss.vue";
@@ -1221,8 +1233,8 @@ export default {
deleteModal: false, // 删除弹窗
deleteID: "", // 要删除的任务的id
editID: "", // 要编辑的任务id
EditOnlineId:"", // 要编辑的 workid
EditCaseId:"",
EditOnlineId: "", // 要编辑的 workid
EditCaseId: "",
EditWorkId: "",
EditTestId: "",
EditRefId: "",
@@ -1249,8 +1261,8 @@ export default {
adddiscussvisible: false, //讨论抽屉
isStudiscuss: false,
addactivevisible: false, //活动抽屉
addonlinevisible:false,
addcasevisible:false,
addonlinevisible: false,
addcasevisible: false,
addhomeworkvisible: false,
addtestvisible: false,
addevalvisible: false,
@@ -1272,6 +1284,7 @@ export default {
projectId: null,
projectTaskId: null,
chooseStageId: null,
chooseChapterId: null,
});
//新建关卡
@@ -1328,17 +1341,17 @@ export default {
state.isLevel = false;
};
//在线抽屉
const showDrawerAddOnline = (id,eleId)=>{
const showDrawerAddOnline = (id, eleId) => {
state.addonlinevisible = true;
state.EditWorkId = id;
state.routerTaskId = eleId;
}
};
//案例抽屉
const showDrawerAddCase = (id,eleId)=>{
const showDrawerAddCase = (id, eleId) => {
state.addcasevisible = true;
state.EditWorkId = id;
state.routerTaskId = eleId;
}
};
// 作业和考试的抽屉
const showDrawerAddHomework = (id, eleId) => {
console.log("homework==============", id, state.isactive);
@@ -1434,6 +1447,7 @@ export default {
GetRouterDetail(state.routerId)
.then((res) => {
console.log("res.data.data.chapterList", res.data.data.chapterList);
//给level赋初始值
state.level = res.data.data.chapterList;
state.styTitle = res.data.data.routerInfo.name;
state.creTime = toDate(
@@ -1448,9 +1462,15 @@ export default {
item["label"] = item.name;
});
if (state.level.length > 0) {
let chapter = localStorage.getItem("chapterId");
if (chapter !== null) {
dataAssignment(chapter);//用哪个的任务表
state.isactive = chapter;//哪个亮
} else {
dataAssignment(state.level[0].chapterId);
state.isactive = state.level[0].chapterId;
}
}
state.deleteModal = false;
})
.catch((err) => {
@@ -1674,6 +1694,7 @@ export default {
state.selectRow = []; //选择行
state.selectAll = 0; //0未选择1全选2部分选择
dataAssignment(chapterId);
state.chooseChapterId = chapterId;
};
const gqxy_hShow = () => {
state.gqxy_hs = !state.gqxy_hs;
@@ -1811,6 +1832,8 @@ export default {
console.log("移动成功", res);
message.destroy();
message.success("移动成功");
localStorage.setItem("chapterId", state.chooseChapterId);
getDetail();
})
.catch((err) => {
console.log("移动失败", err);
@@ -1910,7 +1933,13 @@ export default {
const rowSelection = {
onSelect: (selectedRows, selected, selectedRowKeys) => {
console.log(
"selectedRowKeys", selectedRowKeys, "selectedRows", selectedRows, "selected", selected);
"selectedRowKeys",
selectedRowKeys,
"selectedRows",
selectedRows,
"selected",
selected
);
console.log(selectedRows.assessmentId);
state.assessmentId = selectedRows.assessmentId;
state.assessmentName = selectedRows.name;
@@ -1944,12 +1973,12 @@ export default {
let arr = res.data.data.rows;
if (res.status === 200) {
getTableDate(arr);
console.log('---------------项目信息---------------------------');
console.log("---------------项目信息---------------------------");
}
})
.catch((err) => {
console.log("获取全部项目信息接口失败", err);
console.log('+++++++++++++++++++++++++++++++++++++++++++++++');
console.log("+++++++++++++++++++++++++++++++++++++++++++++++");
// state.createLoading = false;
});
};
@@ -1964,7 +1993,7 @@ export default {
})
.then((res) => {
console.log(res, 11111);
message.success(`${state.editproj ? '编辑' : '新增'}关卡任务成功`)
message.success(`${state.editproj ? "编辑" : "新增"}关卡任务成功`);
// ctx.emit("changeData", false);
closeDrawer();
state.addLoading = false;
@@ -1972,7 +2001,7 @@ export default {
.catch((err) => {
console.log(err, 1111);
});
}
};
onMounted(() => {
// createCase();
getAllProjText();

View File

@@ -1395,6 +1395,7 @@ export default {
//获取任务列表
const getTask = () => {
// console.log("state.projectId", state.projectId);
let obj = {
projectId: state.projectId,
// projectId: 28,
@@ -1409,29 +1410,31 @@ export default {
state.picUrl = res.data.data.projectInfo.picUrl;
let leng = res.data.data.stageList.length;
if (leng > 0) {
// let stage = localStorage.getItem("stageId")
// ? localStorage.getItem("stageId")
// : null;
// if (stage !== null) {
// // console.log("找到了origin", originStageList);
// let originStageList = res.data.data.stageList.find((item) => {
// item.stageId == stage;
// });
// getTableData(originStageList.taskList);
// console.log("找到了origin", originStageList);
// } else {
// let arr = res.data.data.stageList[0].taskList;
// console.log("任务列表", arr);
// getTableData(arr);
// }
let stage = localStorage.getItem("stageId")
? localStorage.getItem("stageId")
: null;
console.log("zhaodaole", stage);
if (stage !== null) {
let stageList = res.data.data.stageList; //阶段数组
let result = stageList.find((item) => item.stageId == stage);
console.log("又找到了", result);
getTableData(result.taskList);
} else {
let arr = res.data.data.stageList[0].taskList;
console.log("任务列表", stage, arr);
console.log("任务列表", arr);
getTableData(arr);
}
// let stageList = res.data.data.stageList; //阶段数组
// let result = stageList.find((item) => item.stageId == stage);
// console.log("又找到了", result);
// getTableData(result.taskList);
// 每次都获取了第一条taskList
// let arr = res.data.data.stageList[0].taskList;
// console.log("任务列表", stage, arr);
// getTableData(arr);
}
let stagearr = res.data.data.stageList;
let arrlist = state.curLevel;