feat:合并

This commit is contained in:
lixg
2023-02-09 09:36:36 +08:00
18 changed files with 342 additions and 235 deletions

4
.env
View File

@@ -23,6 +23,8 @@ VUE_APP_COURSE_STUDY=//u-pre.boe.com/pc/course/studyindex?id=
# 导入学员模板
VUE_APP_UP_LOAD_STUDENT_TEMPLATE=导入学员模版-1673963663229.xlsx
# 外部考试导入成绩模板
VUE_APP_UP_LOAD_STUDENT_SCORE_TEMPLATE=导入成绩模版-1673963663229.xlsx
#在线
VITE_BOE_ONLINE_CLASS_URL=//u-pre.boe.com/pc/course/studyindex?id=
@@ -31,4 +33,4 @@ VITE_BOE_CASS_DETAIL_URL=//u-pre.boe.com/pc/case/detail?id=
#考试
VITE_BOE_EXAM_DETAIL_URL=//u-pre.boe.com/pc/exam/test?id=
#h5的基本url
VUE_APP_H5=//u-pre.boe.com/mobile/student-h5
VUE_APP_H5=//u-pre.boe.com/mobile/student-h5

View File

@@ -8,6 +8,8 @@ VUE_APP_BOE_API_URL=//u-pre.boe.com
# 导入学员模板
VUE_APP_UP_LOAD_STUDENT_TEMPLATE=导入学员模版-1673963663229.xlsx
# 外部考试导入成绩模板
VUE_APP_UP_LOAD_STUDENT_SCORE_TEMPLATE=导入成绩模版-1673963663229.xlsx
#在线
VITE_BOE_ONLINE_CLASS_URL=//u-pre.boe.com/pc/course/studyindex?id=
VITE_BOE_CASS_DETAIL_URL=//u-pre.boe.com/pc/case/detail?id=

View File

@@ -14,6 +14,9 @@ VUE_APP_IFRAME_STUDENT_URL=//u.boe.com/pc/loading
VUE_APP_COURSE_STUDY=//u.boe.com/pc/course/studyindex?id=
VUE_APP_UP_LOAD_STUDENT_TEMPLATE=导入学员模版-1673963663229.xlsx
# 外部考试导入成绩模板
VUE_APP_UP_LOAD_STUDENT_SCORE_TEMPLATE=导入成绩模版-1673963663229.xlsx
VITE_BOE_ONLINE_CLASS_URL=//u.boe.com/pc/course/studyindex?id=
VITE_BOE_CASS_DETAIL_URL=//u.boe.com/pc/case/detail?id=
VITE_BOE_EXAM_DETAIL_URL=//u.boe.com/pc/exam/test?id=

View File

@@ -14,6 +14,8 @@ VUE_APP_IFRAME_STUDENT_URL=//u.boe.com/pc-release/loading
VUE_APP_COURSE_STUDY=//u.boe.com/pc-release/course/studyindex?id=
VUE_APP_UP_LOAD_STUDENT_TEMPLATE=导入学员模版-1673963663229.xlsx
# 外部考试导入成绩模板
VUE_APP_UP_LOAD_STUDENT_SCORE_TEMPLATE=导入成绩模版-1673963663229.xlsx
VITE_BOE_ONLINE_CLASS_URL=//u.boe.com/pc-release/course/studyindex?id=
VITE_BOE_CASS_DETAIL_URL=//u.boe.com/pc-release/case/detail?id=
VITE_BOE_EXAM_DETAIL_URL=//u.boe.com/pc-release/exam/test?id=

View File

@@ -28,6 +28,8 @@ import BreadCrumb from "@/components/BreadCrumb";
import zhCN from "ant-design-vue/es/locale/zh_CN";
import * as api1 from "@/api/index1";
import * as api2 from "@/api/index";
import {boeRequest} from "@/api/request";
import {USER_PERMISSION} from "@/api/ThirdApi";
const store = useStore();
const isLogin = ref(false);
@@ -60,6 +62,7 @@ function init() {
initDict("projectPic");
initDict("sysType");
getMemberInfo();
getUserPermission();
}
function unloadHandler() {
@@ -102,6 +105,12 @@ async function initDict(key, localStory = false) {
store.commit("SET_DICT", {key, data: list});
}
function getUserPermission(){
boeRequest(USER_PERMISSION,{permissionType:'PAGE'}).then(res=>{
store.commit("SET_PERMISSION", res.result.flatMap(t=>t?.permissionPageList.map(s=>s.url)));
})
}
const getDictList = (param) => api1.getDictTree({setCode: param,}).then((res) => res.data.data);
</script>
<style lang="scss">

View File

@@ -2,4 +2,5 @@
export const USER_LIST = '/userbasic/user/searchList post'
export const ORG_LIST = '/userbasic/org/list post'
export const ORG_CHILD_LIST = '/userbasic/org/info post'
export const AUDIENCE_LIST = '/userbasic/audience/list post'
export const AUDIENCE_LIST = '/userbasic/audience/list post'
export const USER_PERMISSION = '/userbasic/permission/listByUser post'

View File

@@ -2,7 +2,7 @@
* @Author: lixg lixg@dongwu-inc.com
* @Date: 2022-11-04 22:45:31
* @LastEditors: lixg lixg@dongwu-inc.com
* @LastEditTime: 2023-02-09 09:28:39
* @LastEditTime: 2023-02-09 09:36:11
* @FilePath: /fe-manage/src/api/index1.js
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
@@ -89,6 +89,8 @@ export const editLearnInfo = (obj) => http.post('/admin/router/editInfo', obj)
//项目积分榜单
// export const scoreRank = (obj) => http.post("/admin/project/scoreRank", obj);
export const scoreRank = (params) => http.get('/points/top/list', { params })
// 项目进度排行
export const completionRank = (params) => http.get('/stu/project/rank_list/completion_list', { params })
//排行榜
export const billboard = (obj) => http.post("/admin/project/billboard", obj);
//项目基础信息-----------------------------------
@@ -211,4 +213,8 @@ export const stuCertList = (obj) => http.get('/admin/certificate/stuCertList', {
//更新学员证书
export const cancelOrAuth = (obj) => http.post('/admin/certificate/cancelOrAuth', obj)
//获取项目总积分
export const allPoints = (obj) => http.get('/points/project/allPoints', { params: obj })
export const allPoints = (obj) => http.get('/points/project/allPoints', { params: obj })
export const updateStuCert = (obj) => http.post('/admin/certificate/updateStuCert', obj)
// 外部考试导入成绩
export const ImportExternalExamScore = (obj) => http.post('/admin/external/exam/manage/importExternalExamScore', obj, { headers: { "Content-Type": "multipart/form-data" } })

View File

@@ -45,4 +45,7 @@ export const AttendanceLeave = (obj) => http.post('/stu/task/attendance/leave',
export const AttendanceSign = (obj) => http.post('/stu/task/attendance/sign', obj)
// 查询项目管理的信息
export const QueryProjectManageDetail = (obj) => http.post('/project/management/queryProjectManageDetail', obj)
export const QueryProjectManageDetail = (obj) => http.post('/project/management/queryProjectManageDetail', obj)
// 获取外部考试信息的接口
export const QueryExternalExamManageDetail = (obj) => http.post('/admin/external/exam/manage/queryExternalExamManageDetail', obj)

View File

@@ -30,7 +30,7 @@
<div style="height: 176px; margin-bottom: 20px">
<a-upload-dragger
v-model:fileList="fileList"
:action="importHomeWork"
:action="importScore"
name="uploadFile"
:multiple="true"
@change="handleChange"
@@ -38,6 +38,8 @@
:data="{
type: type,
targetId: Number(id),
chapterId:chapterId,
taskId:taskId
}"
>
<p class="ant-upload-drag-icon">
@@ -199,7 +201,7 @@
type: Boolean,
default: false,
},
//type=1 项目 type=2 路径图
//type=1 路径图 type=2 项目
type: {
type: String,
default: null,
@@ -208,6 +210,18 @@
type: Number,
default: null,
},
targetId: {
type: Number,
default: null,
},
taskId: {
type: Number,
default: null,
},
chapterId: {
type: Number,
default: null,
},
pid: {
type: Number,
default: null,
@@ -220,8 +234,8 @@
setup(props, ctx) {
const state = reactive({
fileType: ["xls", "xlsx"],
importHomeWork:
process.env.VUE_APP_BASE_API + "/admin/student/importHomeWork",
importScore:
process.env.VUE_APP_BASE_API + "/admin/external/exam/manage/importExternalExamScore",
uploadpercent: -1,
uploadErr: false, //上传失败
addLoading: false,
@@ -230,6 +244,10 @@
errNum: 0, //失败数据数
downloadErrUrl: null, //下载失败数据
fileName: "",
locationHref:location.href.indexOf("http://") !== -1
? "http://43.143.139.204:12016/"
: location.href.slice(0, location.href.indexOf("/m")) + "/upload/",
template: process.env.VUE_APP_UP_LOAD_STUDENT_SCORE_TEMPLATE
});
const closeDrawer = () => {
ctx.emit("update:eScorevisibleExternalExternal", false);
@@ -365,7 +383,8 @@
}
};
function downTemplate() {
window.open(`${process.env.VUE_APP_BASE_API}/admin/student/exportHomeWorkTemplate?taskId=${props.id || ''}&type=${props.type || ''}&pid=${props.pid || ''}&thirdType=3`);
console.log(state.locationHref + state.template)
window.open(state.locationHref + state.template);
}
return {

View File

@@ -297,8 +297,8 @@ export default {
},
{
title: "PDF状态",
dataIndex: "PDFstatus",
key: "PDFstatus",
dataIndex: "finishStatus",
key: "finishStatus",
width: 60,
align: "center",
ellipsis: true,
@@ -306,7 +306,7 @@ export default {
customRender: (text) => {
return (
<div class="racona">
<span> {text.record.PDFstatus?text.record.PDFstatus:"-"}</span>
<span> {text.record.finishStatus == 0 || text.record.finishStatus==null ? "未生成" :text.record.finishStatus == 1 ?"已生成":"未生成"}</span>
</div>
);
},

View File

@@ -115,7 +115,12 @@
</div> -->
</div>
<!-- 导出成绩抽屉 -->
<ExportAchievement v-model:eScorevisibleExternalExternal="eScorevisibleExternalExternal" :type="1" />
<ExportAchievement
v-model:eScorevisibleExternalExternal="eScorevisibleExternalExternal"
:type="2"
:targetId="datasource.projectId"
:taskId="datasource.projectTaskId"
:chapterId="datasource.stageId" />
</a-drawer>
</template>
@@ -125,7 +130,6 @@
import ExportAchievement from "../ExportAchievement.vue";
import * as api from '../../../api/indexTaskManage';
// import * as api from "../../../api/index";
export default {
name: "ProjectExternalExamManage",
components: {
@@ -165,13 +169,13 @@
},
{
id: 2,
value: "10",
label: "未通过",
value: "1",
label: "进行中",
},
{
id: 3,
value: "1",
label: "已通过",
value: "9",
label: "已完成",
},
],
selectedRowKeys: [],
@@ -184,15 +188,15 @@
tablecolumns: [
{
title: "工号",
dataIndex: "studentUserNo",
key: "studentUserNo",
width: 60,
dataIndex: "studentCode",
key: "studentCode",
width: 120,
align: "center",
className: "h head",
customRender: (text) => {
return (
<div class="racona">
<span> {text.record.studentUserNo?text.record.studentUserNo:"-"}</span>
<span> {text.record.studentCode?text.record.studentCode:"-"}</span>
</div>
);
},
@@ -202,8 +206,8 @@
dataIndex: "studentName",
key: "studentName",
width: 50,
align: "left",
className: "h head",
align: "center",
className: "h",
customRender: (text) => {
return (
<div class="racona">
@@ -219,7 +223,6 @@
width: 60,
align: "center",
ellipsis: true,
className: "h",
customRender: (text) => {
return (
<div class="racona">
@@ -235,7 +238,7 @@
width: 60,
align: "center",
ellipsis: true,
className: "h",
className: "h",
customRender: (text) => {
return (
<div class="racona">
@@ -245,25 +248,25 @@
},
},
{
title: "考试次数",
dataIndex: "num",
key: "num",
title: "学员关卡",
dataIndex: "currentStageId",
key: "currentStageId",
width: 60,
align: "center",
ellipsis: true,
className: "h",
customRender: (text) => {
return (
className: "h",
customRender: () => {
return (
<div class="racona">
<span> {text.record.num?text.record.num:"-"}</span>
<span> {props.levelName}</span>
</div>
);
},
},
{
title: "成绩",
dataIndex: "examinationScore",
key: "examinationScore",
title: "考试次数",
dataIndex: "testNumber",
key: "testNumber",
width: 60,
align: "center",
ellipsis: true,
@@ -271,7 +274,23 @@
customRender: (text) => {
return (
<div class="racona">
<span> {text.record.examinationScore?text.record.examinationScore:"-"}</span>
<span> {text.record.testNumber?text.record.testNumber:"-"}</span>
</div>
);
},
},
{
title: "成绩",
dataIndex: "score",
key: "score",
width: 60,
align: "center",
ellipsis: true,
className: "h",
customRender: (text) => {
return (
<div class="racona">
<span> {text.record.score?text.record.score:"-"}</span>
</div>
);
},
@@ -279,8 +298,8 @@
{
title: "完成时间",
dataIndex: "examinationSubmitTime",
key: "examinationSubmitTime",
dataIndex: "finishedTime",
key: "finishedTime",
width: 60,
align: "center",
ellipsis: true,
@@ -288,20 +307,20 @@
customRender: (text) => {
return (
<div class="racona">
<span> {text.record.examinationSubmitTime?text.record.examinationSubmitTime:"-"}</span>
<span> {text.record.finishedTime?text.record.finishedTime:"-"}</span>
</div>
);
},
},
{
title: "任务状态",
dataIndex: "finishStatus",
key: "finishStatus",
dataIndex: "status",
key: "status",
width: 60,
align: "center",
ellipsis: true,
className: "h",
customRender: ({record:{finishStatus}}) => ({1:'通过',2:'未通过'}[finishStatus] || '未开始'),
customRender: ({record:{status}}) => ({0:'未开始',1:'进行中',9:'已完成'}[status] || '未开始'),
},
],
loadingData: true
@@ -318,6 +337,7 @@
const afterVisibleChange = (bol) => {
if (bol == true) {
state.loadingData = true;
console.log(props.datasource)
getData();
}
};
@@ -348,17 +368,17 @@
// 获取数据
function getData() {
api.AssessmentManagementMessage({
api.QueryExternalExamManageDetail({
chapterId: props.datasource.stageId,
pageNo: state.currentPage,
pageSize: state.pageSize,
currentStageId: props.datasource.stageId,
type: 1,
pid: props.datasource.projectId,
taskId: props.datasource.projectTaskId,
taskType: props.datasource.type,
status: state.projectName,
studentName: state.name,
targetId: props.datasource.projectId,
taskId: props.datasource.projectTaskId,
type: 2,
}).then(res=>{
console.log(res)
state.tabledata = res.data.data.records;
state.tableDataTotal = res.data.data.total;
state.loadingData = false;
@@ -387,7 +407,7 @@
{/* 导出数据 */}
function exportData() {
window.open(`${process.env.VUE_APP_BASE_API}/admin/student/exportTaskStudent?currentStageId=${props.datasource.stageId}&type=${1}&pid=${props.datasource.projectId}&taskId=${props.datasource.projectTaskId}&taskType=${props.datasource.type}`)
window.open(`${process.env.VUE_APP_BASE_API}/admin/external/exam/manage/exportExternalExam?chapterId=${props.datasource.stageId}&type=${2}&targetId=${props.datasource.projectId}&taskId=${props.datasource.projectTaskId}`)
}
return {

View File

@@ -294,8 +294,8 @@ export default {
},
{
title: "PDF状态",
dataIndex: "PDFstatus",
key: "PDFstatus",
dataIndex: "finishStatus",
key: "finishStatus",
width: 60,
align: "center",
ellipsis: true,
@@ -303,7 +303,7 @@ export default {
customRender: (text) => {
return (
<div class="racona">
<span> {text.record.PDFstatus?text.record.PDFstatus:"-"}</span>
<span> {text.record.finishStatus == 0 || text.record.finishStatus==null ? "未生成" :text.record.finishStatus == 1 ?"已生成":"未生成"}</span>
</div>
);
},

View File

@@ -114,7 +114,12 @@
</div>-->
</div>
<!-- 导出成绩抽屉 -->
<ExportAchievement v-model:eScorevisibleExternalExternal="eScorevisibleExternalExternal" :type="2" />
<ExportAchievement
v-model:eScorevisibleExternalExternal="eScorevisibleExternalExternal"
:type="1"
:targetId="datasource.routerId"
:taskId="datasource.routerTaskId"
:chapterId="datasource.chapterId" />
</a-drawer>
</template>
@@ -168,13 +173,13 @@
},
{
id: 2,
value: "10",
label: "未通过",
value: "1",
label: "进行中",
},
{
id: 3,
value: "1",
label: "已通过",
value: "9",
label: "已完成",
},
],
selectedRowKeys: [],
@@ -187,15 +192,15 @@
tablecolumns: [
{
title: "工号",
dataIndex: "studentUserNo",
key: "studentUserNo",
dataIndex: "studentCode",
key: "studentCode",
width: 120,
align: "center",
className: "h head",
customRender: (text) => {
return (
<div class="racona">
<span> {text.record.studentUserNo?text.record.studentUserNo:"-"}</span>
<span> {text.record.studentCode?text.record.studentCode:"-"}</span>
</div>
);
},
@@ -264,8 +269,8 @@
},
{
title: "考试次数",
dataIndex: "num",
key: "num",
dataIndex: "testNumber",
key: "testNumber",
width: 60,
align: "center",
ellipsis: true,
@@ -273,7 +278,7 @@
customRender: (text) => {
return (
<div class="racona">
<span> {text.record.num?text.record.num:"-"}</span>
<span> {text.record.testNumber?text.record.testNumber:"-"}</span>
</div>
);
},
@@ -289,7 +294,7 @@
customRender: (text) => {
return (
<div class="racona">
<span> {text.record.examinationScore?text.record.examinationScore:"-"}</span>
<span> {text.record.score?text.record.score:"-"}</span>
</div>
);
},
@@ -297,8 +302,8 @@
{
title: "完成时间",
dataIndex: "examinationSubmitTime",
key: "examinationSubmitTime",
dataIndex: "finishedTime",
key: "finishedTime",
width: 60,
align: "center",
ellipsis: true,
@@ -306,20 +311,20 @@
customRender: (text) => {
return (
<div class="racona">
<span> {text.record.examinationSubmitTime?text.record.examinationSubmitTime:"-"}</span>
<span> {text.record.finishedTime?text.record.finishedTime:"-"}</span>
</div>
);
},
},
{
title: "任务状态",
dataIndex: "finishStatus",
key: "finishStatus",
dataIndex: "status",
key: "status",
width: 60,
align: "center",
ellipsis: true,
className: "h",
customRender: ({record:{finishStatus}}) => ({1:'通过',2:'未通过'}[finishStatus] || '未开始'),
customRender: ({record:{status}}) => ({0:'未开始',1:'进行中',9:'已完成'}[status] || '未开始'),
},
],
loadingData: true
@@ -366,17 +371,17 @@
// 获取数据
function getData() {
api.AssessmentManagementMessage({
api.QueryExternalExamManageDetail({
chapterId: props.datasource.chapterId,
pageNo: state.currentPage,
pageSize: state.pageSize,
currentStageId: props.datasource.chapterId,
type: 2,
pid: props.datasource.routerId,
taskId: props.datasource.routerTaskId,
taskType: props.datasource.type,
status: state.projectName,
studentName: state.name,
targetId: props.datasource.routerId,
taskId: props.datasource.routerTaskId,
type: 1,
}).then(res=>{
console.log(res)
state.tabledata = res.data.data.records;
state.tableDataTotal = res.data.data.total;
state.loadingData = false;
@@ -406,19 +411,7 @@
{/* 导出数据 */}
function exportData() {
// window.open(`${process.env.VUE_APP_BASE_API}/admin/exam/manage/exportExam?chapterId=${props.datasource.chapterId}&targetId=${props.datasource.routerId}&taskId=${props.datasource.courseId}&type=${1}`)
window.open(`${process.env.VUE_APP_BASE_API}/admin/student/exportTaskStudent?currentStageId=${props.datasource.chapterId}&type=${2}&pid=${props.datasource.routerId}&taskId=${props.datasource.routerTaskId}&taskType=${props.datasource.type}`)
{/* api.ExportExam({
"chapterId": props.datasource.chapterId,
"targetId": props.datasource.routerId,
"taskId": props.datasource.courseId,
"type": 1
}).then(res=>{
console.log(res)
}).catch(err=>{
console.log(err)
}) */}
window.open(`${process.env.VUE_APP_BASE_API}/admin/external/exam/manage/exportExternalExam?chapterId=${props.datasource.chapterId}&type=${1}&targetId=${props.datasource.routerId}&taskId=${props.datasource.routerTaskId}`)
}
return {
...toRefs(state),

View File

@@ -66,6 +66,9 @@ export default createStore({
},
SET_projectTemplateId(state, projectTemplateId) {
state.projectTemplateId = projectTemplateId;
},
SET_PERMISSION(state,permissions){
state.menus = permissions;
}

View File

@@ -40,9 +40,7 @@ export function checkPer(per) {
return (per + "").split(',').some(t => admin.some(s => s == t))
}
export function checkMenu(path='') {
// return store?.state?.menus.some(t => path.includes(t));
console.log(path)
return true;
return store?.state?.menus.some(t => path.split(',').some(s=>'/'+s===t));
}

View File

@@ -4039,7 +4039,7 @@ export default defineComponent({
if (state.copy_hs) {
console.log(2222222);
if (state.offcourseId && state.offcoursePlanId) {
copyCoursePlan({offcoursePlanId:state.offcourseId}).then(() => {
copyCoursePlan({offcoursePlanId:state.offcoursePlanId}).then(() => {
message.destroy();
message.success("复制成功");
getTableDate3();

View File

@@ -114,7 +114,7 @@
<a-button v-if="record.status!==3" @click="showDeleteModal(record.projectId)" type="link" danger>删除</a-button>
<a-button v-if="record.status===3" @click="showStartModal(record.projectId)" type="link">存为模版</a-button>
<a-button v-if="record.status===3 && record.type===3" @click="showStopModal(record.projectId)" type="link">结束</a-button>
<a-button v-if="record.status===-1 && record.type===3" @click="showBackFinashModal(record.projectId)" type="link">撤回</a-button>
<a-button v-if="record.status!==-1 && record.type===3" @click="showBackFinashModal(record.projectId)" type="link">撤回</a-button>
</DropDown>
</a-space>
</template>

View File

@@ -877,11 +877,11 @@
</div>
</div>
<div class="right">
<div class="btn btn1" @click="rankSearch">
<div class="btn btn1" @click="rankSearch" style="cursor: pointer;">
<div class="img1"></div>
<div class="te">搜索</div>
</div>
<div class="btn btn2" @click="rankReset">
<div class="btn btn2" @click="rankReset" style="cursor: pointer;">
<div class="img2"></div>
<div class="te">重置</div>
</div>
@@ -896,12 +896,14 @@
<div class="right">
<a-select
v-model:value="valuestu1"
@change="jdSelectChange"
style="width: 80px; margin-right: 16px"
:options="rankjindu"
>
</a-select>
<a-select
v-model:value="valuestu2"
@change="jdSelectChange1"
style="width: 112px"
:options="rankjieduan"
></a-select>
@@ -912,7 +914,7 @@
<a-table
:columns="jindutablecolumns"
:data-source="jindutabledata"
:loading="tableDataTotal === -1 ? true : false"
:loading="processRankLoading"
expandRowByClick="true"
:scroll="{ y: 330 }"
@expand="expandTable"
@@ -928,6 +930,7 @@
<a-select
v-model:value="valuestu3"
style="width: 80px"
@change="jfSelectChange"
:options="rankxuefen"
></a-select>
</div>
@@ -937,7 +940,7 @@
<a-table
:columns="xuefentablecolumns"
:data-source="xuefentabledata"
:loading="tableDataTotal === -1 ? true : false"
:loading="scoreRankLoading"
expandRowByClick="true"
:scroll="{ y: 330 }"
@expand="expandTable"
@@ -2299,19 +2302,19 @@ export default {
projectTaskId: "", //项目任务任务id
//进度排行学员
rankjindu: [
{ value: "学员", label: "学员" },
{ value: "小组", label: "小组" },
{ value: 0, label: "学员" },
{ value: 1, label: "小组" },
],
valuestu1: "学员",
valuestu1: 0,
//进度排行阶段
rankjieduan: [{ value: "第一阶段", label: "第一阶段" }],
valuestu2: "第一阶段",
rankjieduan: [],
valuestu2: "",
//积分排行
rankxuefen: [
{ value: "学员", label: "学员" },
{ value: "小组", label: "小组" },
{ value: 0, label: "学员" },
{ value: 1, label: "小组" },
],
valuestu3: "学员",
valuestu3: 0,
//学时排行
rankxueshi: [
{ value: "学员", label: "学员" },
@@ -2359,7 +2362,7 @@ export default {
checkedBOEU: false, //是否BOEU实施
radioV1: "",
radioV2: "",
activeKey: "7", //1:概览 2.任务...
activeKey: "1", //1:概览 2.任务...
activeKey1: "8", //8:学员管理 9小组管理
activeKey2: "3",
activeKeyNotice: "11",
@@ -2408,83 +2411,31 @@ export default {
ChangeGroupId: null, //要换组的学生的小组id
fileList: [], //文件列表
//进度排行表
jindutabledata: [
{
rank: "1",
name: "哈哈",
jd: "80%",
},
{
rank: "2",
name: "哈哈",
jd: "70%",
},
{
rank: "3",
name: "哈哈",
jd: "70%",
},
{
rank: "4",
name: "哈哈",
jd: "70%",
},
{
rank: "5",
name: "哈哈",
jd: "70%",
},
{
rank: "6",
name: "哈哈",
jd: "70%",
},
{
rank: "7",
name: "哈哈",
jd: "70%",
},
{
rank: "8",
name: "哈哈",
jd: "70%",
},
{
rank: "9",
name: "哈哈",
jd: "70%",
},
{
rank: "10",
name: "哈哈",
jd: "70%",
},
],
jindutabledata: [],
jindutablecolumns: [
{
title: "排名",
dataIndex: "rank",
key: "rank",
dataIndex: "index",
key: "index",
width: 50,
align: "center",
className: "h",
customRender: (text) => {
if (text.record.rank == "1") {
if (text.record.index == "1") {
return (
<img
style={{ width: 24, height: 24 }}
src={require("../../assets/images/taskpage/one.png")}
/>
);
} else if (text.record.rank == "2") {
} else if (text.record.index == "2") {
return (
<img
style={{ width: 24, height: 24 }}
src={require("../../assets/images/taskpage/two.png")}
/>
);
} else if (text.record.rank == "3") {
} else if (text.record.index == "3") {
return (
<img
style={{ width: 24, height: 24 }}
@@ -2492,7 +2443,7 @@ export default {
/>
);
} else {
return <div>{text.record.rank}</div>;
return <div>{text.record.index}</div>;
}
},
},
@@ -2507,91 +2458,43 @@ export default {
{
title: "进度",
dataIndex: "jd",
key: "jd",
dataIndex: "rateStr",
key: "rateStr",
width: 50,
align: "center",
className: "h",
},
],
scoreRankLoading:true,
processRankLoading:true,
//学分排行表
xuefentabledata: [
{
rank: "1",
name: "哈哈",
jd: "80",
},
{
rank: "2",
name: "哈哈",
jd: "70",
},
{
rank: "3",
name: "哈哈",
jd: "70",
},
{
rank: "4",
name: "哈哈",
jd: "70",
},
{
rank: "5",
name: "哈哈",
jd: "70",
},
{
rank: "6",
name: "哈哈",
jd: "70",
},
{
rank: "7",
name: "哈哈",
jd: "70",
},
{
rank: "8",
name: "哈哈",
jd: "70",
},
{
rank: "9",
name: "哈哈",
jd: "70",
},
{
rank: "10",
name: "哈哈",
jd: "7",
},
],
xuefentablecolumns: [
{
title: "排名",
dataIndex: "rank",
key: "rank",
dataIndex: "index",
key: "index",
width: 50,
align: "center",
className: "h",
customRender: (text) => {
if (text.record.rank == "1") {
if (text.record.index == "1") {
return (
<img
style={{ width: 24, height: 24 }}
src={require("../../assets/images/taskpage/one.png")}
/>
);
} else if (text.record.rank == "2") {
} else if (text.record.index == "2") {
return (
<img
style={{ width: 24, height: 24 }}
src={require("../../assets/images/taskpage/two.png")}
/>
);
} else if (text.record.rank == "3") {
} else if (text.record.index == "3") {
return (
<img
style={{ width: 24, height: 24 }}
@@ -2599,7 +2502,7 @@ export default {
/>
);
} else {
return <div>{text.record.rank}</div>;
return <div>{text.record.index}</div>;
}
},
},
@@ -2614,8 +2517,8 @@ export default {
{
title: "积分",
dataIndex: "jd",
key: "jd",
dataIndex: "pointsCountStr",
key: "pointsCountStr",
width: 50,
align: "center",
className: "h",
@@ -2887,6 +2790,103 @@ export default {
fileUrl: process.env.VUE_APP_FILE_PATH,
});
// 排行榜 - start
// 积分排行榜 Top10
// 项目积分切换查询 -- 学员 小组
const jfSelectChange = (e) => {
console.log(e)
scoreRank();
}
const jdSelectChange = (e) => {
console.log(e)
completionRank();
}
const jdSelectChange1 = (e) => {
console.log(e)
completionRank();
}
//项目积分榜单
const scoreRank = (period, type) => {
state.scoreRankLoading = true;
state.datascore = [];
state.datascoreg = [];
console.log("projectId----->", state.projectId,period, type);
console.log('我是查询榜单传递的数据',{
projectId: state.projectId, // 项目id
name: "", // 名字,没有则传空字符串
startTime: state.rankStartTime?state.rankStartTime:0, // 数据查询的起始时间 10位时间戳
endTime: state.rankEndTime?state.rankEndTime:0,
size: 10, // 前多少名
type: Number(state.valuestu3), // 查询类型 0 学员积分榜 1 小组积分榜
})
let obj = {
projectId: 290, // 项目id
name: "", // 名字,没有则传空字符串
startTime: state.rankStartTime?state.rankStartTime:0, // 数据查询的起始时间 10位时间戳
endTime: state.rankEndTime?state.rankEndTime:0,
size: 10, // 前多少名
type: Number(state.valuestu3), // 查询类型 0 学员积分榜 1 小组积分榜
};
api
.scoreRank(obj)
.then((res) => {
console.log("获取项目积分-榜单", res);
if(res.data.code==200){
state.datascore = res.data.data;
state.datascoreg = res.data.data;
state.xuefentabledata = res.data.data;
state.scoreRankLoading = false;
}else{
state.datascore = [];
state.datascoreg = [];
state.xuefentabledata = [];
state.scoreRankLoading = false;
}
})
.catch((err) => {
console.log("获取项目积分-榜单失败", err);
message.destroy();
message.error('榜单获取失败');
state.datascore = [];
state.datascoreg = [];
state.xuefentabledata = [];
state.scoreRankLoading = false;
});
};
// 项目进度榜单
const completionRank = () => {
state.processRankLoading = true;
let obj = {
projectId: 290, // 项目id
startTime: state.rankStartTime?state.rankStartTime:0, // 数据查询的起始时间 10位时间戳
endTime: state.rankEndTime?state.rankEndTime:0,
stageId: state.valuestu2, // 阶段ID
type: Number(state.valuestu3), // 查询类型 0 学员积分榜 1 小组积分榜
}
console.log('我是获取得项目进度排行榜--》', obj)
api.completionRank(obj).then(res=>{
console.log('项目进度榜单获取',res)
if(res.data.datas){
state.jindutabledata = res.data.datas;
state.processRankLoading = false;
}else{
state.jindutabledata = [];
state.processRankLoading = false;
}
}).catch(err=>{
console.log(err)
state.jindutabledata = [];
state.processRankLoading = false;
})
}
// 排行榜 - end
const levelList = reactive({
projectInfoOverview: {
// 整体数据概览
@@ -2948,6 +2948,28 @@ export default {
}
}
levelList.stageList = res.data.data.stageList;
if(levelList.stageList.length==1){
// 无解段任务
state.rankjieduan = [{value:0, label:'无阶段'}];
state.valuestu2 = 0;
}else{
// 有阶段任务
let arrStage = []
for(let i=0; i<levelList.stageList.length;i++){
if(levelList.stageList[i].stageId!=='0'){
let obj = {
value:levelList.stageList[i].stageId,
label:levelList.stageList[i].name
}
arrStage.push(obj)
}
}
state.rankjieduan = arrStage;
state.valuestu2 = arrStage[0].value;
}
console.log('----------------------------------->', res.data.data.stageList)
//暂时传个固定的id用 到时候看数据里面是否有在更换
// state.projectTaskId = res.data.data.stageList[0].taskList[0].projectTaskId
let leng = res.data.data.stageList.length;
@@ -3601,11 +3623,17 @@ export default {
//排行榜
if (e == 6) {
//获取进度榜
getbillboard(1, 1);
// getbillboard(1, 1);
//获取学分榜
getbillboard(2, 1);
// getbillboard(2, 1);
//获取学时榜
getbillboard(3, 1);
// getbillboard(3, 1);
// 获取积分排行榜
scoreRank();
// 获取项目进度排行榜
completionRank();
} else if (e == 3) {
state.tabFlag = true;
} else {
@@ -3652,11 +3680,16 @@ state.ischeckCertificate=false
//搜索
const rankSearch = () => {
//获取进度榜
getbillboard(1, 1);
// getbillboard(1, 1);
//获取学分榜
getbillboard(2, 1);
// getbillboard(2, 1);
//获取学时榜
getbillboard(3, 1);
// getbillboard(3, 1);
// 获取积分排行
scoreRank();
// 获取项目进度排行榜
completionRank();
};
//重置
const rankReset = () => {
@@ -3664,6 +3697,11 @@ state.ischeckCertificate=false
state.rankEndTime = null;
state.valueDate = null;
state.valueName = null;
// 获取积分排行
scoreRank();
// 获取项目进度排行榜
completionRank();
};
// end -----排行榜----------------排行榜----------------------排行榜-----------排行榜----------
@@ -4776,6 +4814,14 @@ state.ischeckCertificate=false
previewPic,
getCertificate,
checkCertificate,
scoreRank,
jfSelectChange,
completionRank,
jdSelectChange,
jdSelectChange1,
};
},
};